KR950007879B1 - 제 산 기 - Google Patents

제 산 기 Download PDF

Info

Publication number
KR950007879B1
KR950007879B1 KR1019930700333A KR930700333A KR950007879B1 KR 950007879 B1 KR950007879 B1 KR 950007879B1 KR 1019930700333 A KR1019930700333 A KR 1019930700333A KR 930700333 A KR930700333 A KR 930700333A KR 950007879 B1 KR950007879 B1 KR 950007879B1
Authority
KR
South Korea
Prior art keywords
decoding
output
divisor
bit
processing means
Prior art date
Application number
KR1019930700333A
Other languages
English (en)
Other versions
KR930701784A (ko
Inventor
고오이찌 구로이와
Original Assignee
후지쓰 가부시끼가이샤
세끼자와 다다시
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후지쓰 가부시끼가이샤, 세끼자와 다다시 filed Critical 후지쓰 가부시끼가이샤
Publication of KR930701784A publication Critical patent/KR930701784A/ko
Application granted granted Critical
Publication of KR950007879B1 publication Critical patent/KR950007879B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/535Dividing only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/535Dividing only
    • G06F7/537Reduction of the number of iteration steps or stages, e.g. using the Sweeny-Robertson-Tocher [SRT] algorithm
    • G06F7/5375Non restoring calculation, where each digit is either negative, zero or positive, e.g. SRT
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • G06F7/487Multiplying; Dividing
    • G06F7/4873Dividing

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

내용 없음.

Description

[발명의 명칭]
제 산 기
[도면의 간단한 설명]
제1도는 종래예의 블록도.
제2도는 종래예의 요부구성도.
제3도는 본 발명의 원리도.
제4도는 본 발명을 적용한 벡터 프로세서의 전체 구성도.
제5도는 제4도의 제산회로(DIV)의 블록도.
제6도는 제5도의 가수제산부의 블록도.
제7도는 제6도의 배수발생부의 개념구성도.
제8도는 제6도의 가감산부의 블록도.
제9도는 제8도의 CPA의 블록도.
제10도는 제9도의 하나의 블록의 구성도.
제11도는 제6도의 셀렉트군의 하나의 셀렉터의 구성도.
제12도는 제6도의 상예측부(QP)의 예측 테이블도.
제13도는 제6도의 상예측부(QP)의 신호생성 테이블도.
제14도는 제6도의 상보정부(QG)의 보정조건 테이블도.
제15도는 종래예와 본 발명과의 지연시간을 대비하는 타이밍챠트.
[발명의 상세한 설명]
[기술분야]
본 발명은 제산기, 특히 고기수비회복형의 제산기이고 그 제산기 자체 또는 그 제산기를 포함하는 부동소수점 코프로세서나 벡터 프로세서에 관한 것이다.
[배경기술]
일반적으로 제산은 개념적으로는 승산의 역처리라고 생각되고 있으나, 승산과 많은 점에서 상이하다. 첫째로 제산에서는 전후처리가 독립이 아니고 순서성을 갖는 점이다. 승산에 있어서는 모든 부분적을 동시에 얻을 수 있기 때문에 이와 같은 순서성은 없고 따라서 승산에 비해서 제산에서는 연산사이클이 여분으로 걸린다.
둘째로 제산은 결정논적인 처리가 아니고 시행착오적인 처리라는 점이다. 즉 반복 연산과정에 있어서 부분상의 예측처리를 필요로 하고 예를들면 어느 디지트 집합중에서 일련상의 각 디지트를 선택한다는 디지트 선택 규칙이 사용된다.
제1도는 종래의 제산기의 블록도이고 고기수비회복형 제산기의 예이다. 여기서 제산방식은 디지트 집합의 차이로 회복형 제산(restoring division)과 비회복형 제산(nonrestoring division)으로 나눌 수 있다. 회복형은 필산에 의한 제산과 본질적으로 같고 실현도 용이하지만 상디지트중에 영(0)이 많으면 실행시간이 늦어질 수 있다. 이것은 부분잉여가 부의 경우에 부분잉여를 호복하기 위한 처리(가산)가 별도로 필요한데 기인한다. 이에 대해서 비회복형은 잉여의 절대치가 제수보다 작은 한 부의 잉여를 정의로 회복할 필요는 없고 이와 같은 여분의 가산처리를 요하지 않는 점에서 유리하다. 또 이와 같은 제산방법에 대해서는 예를 들면Computer Arithmetic PRINCIPLES, ARCHITECTURE AND DESIGNKai Hwang저, John Wiley & Sons Ins. 발생의 제7장 또는 일본국 특개소 61-7939호 공곱(1986년 1월 14일 공개)고기수비회복형 제산장치에 설명되어 있다.
고기수비회복형 제산기는 2보다 큰 기수(고기수)를 사용하므로 기수의 증대에 수반되어 제산명령의 실행에 필요한 반복회수를 급속하게 감소시킬 수 있어 실행시간을 단축화할 수 있다.
제1도에 있어서, 1은 제수 레지스터, 2는 피제수 레지스터, 3은 배수발생부, 4는 가감산부, 5는 보수발생부, 6은 상예측부, 7은 상보정부, 8은 상레지스터이다. 또 상예측부(6)은 회로규모 삭감을 위하여 부분잉여의 정·부중 어느것에 대응하는 하나가 구비되어 있다.
연산처리의 큰 흐름은 먼저 ① 제산레지스터(1)의 내용(DSR)을 m배(m는 배수발생부(3)에서 발생된 배수)하고 ②그 mDSR와 피제수 레지스터(2)의 내용(PR)를 가산한 후에 ③ 가산결과(부분잉여)의 최상위 비트(부호비트)에 따라서 셀렉터(5a)를 절환하여 가산결과의 부호비트를 제외한 상위 n비트(이하 편의적으로 n=5) 또는 보수변환회로(5b)의 출력(가산 결과의 부호비트를 제외한 상위 5비트를 보수변환한 것)중의 어느 한쪽을 디코더(5c)(상세 구성은 후술하는발명을 실시하기 위한 최량의 형태의 난에서 설명하겠다)에 준다. 예를들면 부호비트가 0(정의 부호)이면 가산결과의 5비트를 그대로 주어 부호비타가 1(부의 부호)이면 보수가 주어진다. 그리고 ④디코더(5c)의 출력과 제수레지스터(1)의 내용에 준하여 부분상 예측 신호를 생성하여 부분상을 결정한다는 일련의 동작을 디지트마다 반복한다.
그러나 이와 같은 종래의 제산기에 있어서는 가산결과(단 부호비틀르 제외한 상위 5비트) 또는 보수변환후의 동가산결과를 동가산결과의 부호비트에 따라서 택일적으로 선택하는 구성으로 되어 있기 때문에 부호 비트가 확정되기 까지는 디코더 처리를 개시할 수 없으므로 예를들면 가산결과의 부호비트를 제외한 상위 5비트의 확정시점에서 가산결과의 부호비트의 확정시까지의 지연시간(편의상 tα)이 디코더(5c)의 처리시간(편의상β)에 가산된다는 문제점이 있다. 특히 제산을 극히 다수회 반복하여 행하는 벡터 프로세서에서는 상기 지연에 의한 영향이 크다.
제2도는 보수발생부(5)의 구체적인 회로도이다. 부호비트를 제외한 5비트의 가산결과는 그대로 논리로 셀렉터(5a)의 A입력에 주어지는 동시에 인버터(보수변환회로(5b))에 의해서 논리반전(즉 보수변환)되어 B입력에 주어진다. A,B입력의 선택은 가산결과의 최상위비트(부호비트)에 의존하고 부호비트가 0이면 A입력이 1이면 B입력이 선택되도록 되어 있다.
여기서 가산결과의 전비트의 확정은 최상위비트(일반적으로 부호비트)로의 캐리(carry)전파 후이고 상기 셀렉터(5a)의 출력 즉 디코더(5c)로의 입력 확정은 적어도 가감산부(4)에 있어서의 캐리전파의 최대치에 상당하는 시간후이다. 그러나 셀렉터(5a)의 A,B입력에는 캐리전파의 최대치에 상당하는 시간전에 데이타가 주어지기 때문에 배선지연이나 인버터(5b)의 지연등을 무시하면 부호비트를 제외한 가산결과의 5비트의 확정시점에서 동가산결과의 부호비트의 확정시점까지의 시간에 상당하는 낭비적인 지연시간(tα)이 생기는 것이다.
본 발명은 이와 같은 기술적 과제에 비추어 행해진 것이며 캐리전파에 수반되어 발생되는 낭비적인 지연시간(tα)을 디코딩 처리시간(β)으로 흡수함으로써 한층 더 연산시간의 단축화를 도모함을 목적으로 한다.
[발명의 개시]
상기 목적을 달성하기 위하여 본 발명의 제산기는 그 원리도를 제3도에 나타낸 것과 같이 상예상치에 준한 정보에 의해서 제수의 배수치를 구하는 배수발생수단(10)과 이 제수의 배수치와 피제수와의 연산결과 및 이 연산결과의 극성을 나타내는 부호비트를 출력하는 연산처리수단(11)과 이 부호비트의 생성중에 디코딩을 개시하고 이 연산결과의 디코딩 신호와 이 연산결과의 보수의 디코딩 신호중의 한쪽을 상기 부호비트에 준하여 출력하는 디코딩 처리수단과 상기 디코딩 처리수단의 출력에 따라서 상예측치를 생성하는 상예측치 생성수단(14)을 구비한다. 더 바람직하기로는 상기 디코딩 처리수단은 복수의 출력단과 상기 연산결과를 디코딩하여 복수의 출력을 발생하는 디코더와 상기 복수의 출력단과 상기 디코더와의 사이에 접속된 상기부호 비트에 응답하여 제어하는 선택수단을 포함하고 상기 선택수단은 상기 연산결과를 디코딩한 디코딩 신호와 상기연산결과의 보수의 디코딩 신호중의 한쪽이 상기 부호비트에 따라서 출력되도록 상기 디코더의 복수의 출력과 상기 복수의 출력단자와의 접속관계를 절환한다. 본 발명에서는 연산결과의 최상위비트(부호비트)의 확정을 기다리지 않고 디코딩 처리가 개시되고 그후에 최상위비트가 확정된 시점에서 당해 최상위비트(부호비트)에 의해서 디코딩 결과가 선택된다. 따라서 캐리전파에 수반되어 발생되는 낭비적 지연시간(tα)을 디코딩 처리시간(tβ)에 의해서 흡수할 수 있어 연산시간의 단축화를 도모할 수 있다.
[발명의 실시하기 위한 최량의 형태]
본 발명의 제산기는 예를들면 제4도에 그 전체 구성도를 나타낸 벡터 프로세서에 사용할 수 있다. 벡터프로세서에서는 1회의 코맨드에 준하며 제산을 고속으로 극히 다수회 반복할 필요가 있기 때문에 1제산사이클을 단축할 수 있는 본 발명의 효과는 크다.
제4도에서 벡터 프로세서는 벡터 연산유니트(VU)(100), 버스유니트(BU)(200), 어드레스 유니트(AU)(300), 제어유니트(400) 및 코맨드버퍼 유니트(CBU)(500)로 되고 각 유니트간이 데이타버스(600)나 어드레스버스(700)을 거쳐서 서로 접속되어 있다.
벡터 연산유니트(100)는 벡터 데이타를 격납하는 벡터 레지스터(VR)(101), 스칼라데이타를 격납하는 스칼라레지스터(VSR)(102), 마스크데이타를 격납하는 벡터 마스크 레지스터(VMR)(103), 가산회로(ADD)(104), 승산회로(MUL)(105), 제산회로(DIV)(106), 마스크데이타 생성회로(107), 데이타 취입 래치(108) 및 데이타 출력 래치(109) 등을 포함한다. 상기 제산회로(106)가 본 발명의 제산기에 상당하는 것이다.
또 버스유니트(200)는 64비트폭의 데이타의 입출력을 조정하는 것, 어드레스 유니트(300)는 32비트폭의 어드레스의 입·출력을 조정하는 것, 제어유니트(400)는 파이프라인 콘트롤러(401)나 스코어보드(402) 및 디코딩유니트(403)을 포함하고 벡터 프로세서의 동작을 콘트롤 하는 것, 코맨드버퍼 유니트(500)는 1킬로바이트정도 용량의 벡터 코맨드 버퍼(VCB)(501)내에 연산에 필요한 각 코맨드를 격납하는 것이다. 또 어드레스 유니트(300)내의 VTR는 벡터 트랜스레이션 레지스터, TLB는 변환인덱스버퍼이고 이들은 가상 어드레스에서 실어드레스로의 변환시에 사용된다.
이와 같은 구성의 벡터 프로세서에 있어서 연산데이타는 로오드명령에 따라서 AU(300)에서 발생된 어드레스에 의해서 외부메모리로부터 독출되어 VU(101)의 데이타 취입 래치(108)를 거쳐서 VR(101)에 격납된다.
VCB(501)에 명령이 격납되면 CU(400)내의 코맨드 스타트레지스터(도시를 생략함)의 스타트비트에 “1”이 기입되고 CU(400)는 VCB(501)의 명령을 디코딩 유니트(403)로 보내어 VU(100)의 어느 파이프라인의 명령인지를 해독하여 그 결과를 VU(100)로 통지한다. 이 해독은 1사이클마다 행해지고 당연히 연산의 스타트도 1사이클마다에 걸린다. 그때에 상이한 연산기가 벡터 레지스터(101)를 공유할 우려가 있으나 그 체크는 CU(400)내의 파이프라인 콘트롤러(401) 및 스코어보드(402)가 행하여 공유를 회피하도록 되어 있다. 스타트가 걸린 연산기(ADD(104), MUL(105), DIV(106) 또는 마스크 데이타 생성회로(107)는 정해진 연산처리를 실행하고 그 연산결과는 스토어명령에 따라서 외부메모리에 기입된다.
여기서 VU(100)내의 연산처리는 로오드/스토어 파이프라인 처리, 마스크 파이프라인 처리, 그래픽 파이프라인 처리, 가감산 파이프라인 처리, 승산 파이프라인 처리 및 제산 파이프라인 처리로 나누어진다.
마스크 파이프라인 처리는 연산을 생략하는 데이타를 벡터 레지스터(103)와의 사이에서 주고 받는 처리이고 마스크 데이타 생성회로(107)에서 실행되고 또 그래픽 파이프라인 처리는 도형데이타의 파이프라인 처리이고 가산회로(104)에서 가감산 파이프라인 처리와 선택적으로 실행된다. 또 승산 파이프라인 처리는 승산회로(105)에서 또 제산 파이프라인 처리는 제산회로(106)에서 각각 실행된다. 따라서, 예를들면 가감산 파이프라인 처리나 승산 파이프라인 처리등과 병렬로 제산 파이프라인 처리를 실핼할 수 있다.
다음에 본 발명의 제산기를 적용시킨 제산회로(DIV)(106)에 대해서 제5도를 참조하면 그 구성 및 작용을 설명하겠다.
제산회로(106)는 IEEE규격에 준한 부동소수점 제산을 행하는것이며 제산전처리 및 형판정부(20), 지수연산부(21), 예외 및 비연산검출부(22), 라운팅된 출력판정부(23), 제어부(24) 및 가수제산부(40)로 구성되어 있다.
이하 IEEE규격에 준한 부동소수점배정도 연산을 예로하여 각 부를 상세히 설명하겠다.
먼저 제산전처리 및 형판정부(20)중 형판정부는 입력레지스터(OPD 및 OPN)에 각각 세트된 제수(D) 및 피제수(N)형, 즉 비수, 영, 무한대 또는 디노말(denormal)등을 판정하여 그 판정결과를 형판정 플래그 레지스터(EXC)에 세트한다. 또 전처리부에서는 제수(D) 및 피제수(N)의 부동소수점데이타에 대해서 부호(S)(1비트), 지수부(EXP)(11비트) 가수부(M)(52비트)를 각각 잘라내어 가수부(M)의 숨은 비트(IEEE)규격에서는 가수부(M)의 최상위비트의 하나 더 상위 1비트에 숨은 비트를 갖도록 정규화되어 있다)를 복원하고 또 피제수(N)의 가수부의 절대치가 제수(D)의 가수부의 절대치보다도 작도록 설정한다.
이와 같은 전처리부의 처리는 예를들면 OPD 및 OPN에 세트된 제수(D) 및 피제수(N)의 각각의 가수부를 잘라내어 숨은 비트를 복원한 후에 이들 2개의 데이타를 비교하여 피제수(N)의 가수부의 절대치가 제수(D)의 가수부의 절대치보다도 작을때에는 그대로 하는 한편 피제수(N)의 가수부의 절대치가 제수(D)의 가수부의 절대치보다도 클때에는 피제수(N)의 가수부를 우로 1비트 쉬프트(한자리수내림)하는 동시에 피제수(N)의 지수부(EXP)를 +1함으로써 실현시킬 수 있다. 이 전처리후의 피제수(N)의 지수부는 레지스터(EPN)에 피제수(N)의 가수부는 부분잉여 레지스터(PR)에 또 제수(D)의 지수부레지스터(EPD)에 제수(D)의 가수부는 제수레지스터(DSR)에 각각 세트된다.
다음에 지수연산부(21)에서는 지수치의 감산과 바이어스치의 가산을 행한다. 즉 제수(D)의 지수부의 보수치, 피제수(N)의 지수부의 값 및 IEEE규격에 규정된 바이어스치의 세가지를 가산하고 그 결과를 레지스터(EXP)에 세트한다.
또 예외 및 비연산검출부(22)에서는 예외 판정과 비연산의 검출을 행한다. 예외 판정으로서는 영제산 예외나 인밸리드 오퍼레이션(Invalid operation)예외등이 있고 이들은 제수(D) 및 피제수(N)의 데이타로 판정된다. 비연산 패턴으로서는 IEEE규격에 준하여 하기의 조합이 있다. 제수(D) 및 피제수(N)의 데이타로 패턴을 판정하고 하기 조합의 논리합에 의해서 정지신호(DSTOP#4)를 출력하여 규격패턴을 발생하도록 제어한다.
SNaN÷SNaN QNaN÷SNaN INF÷SNaN
NORM÷SNaN ZERO÷SNaN SNaN÷QNaN
QNaN÷QNaN INF÷QNaN NORM÷QNaN
ZERO÷QNaN SNaN÷INF QNaN÷INF
INF÷INF NORM÷INF ZERO÷INF
SNaN÷ZERO QNaN÷ZERO INF÷ZERO
QNaN÷ZERO ZERO÷ZERO SNaN÷NORM
QNaN÷NORM INF÷NOR NORM÷NORM
ZERO÷NORM
여기서, SNaN : Signaling NOT Number
QNaN : Quiet NOT Number
INF : 무한대
ZEROP : 영
NORM : 정규화수
(IEEE 754-1985 규격에서)
또 정지신호(DSTOP#X)는 제수(D) 및 피제수(N)의 데이타의 판정에 의해서 어서트된후에 하나의 연산 종료에서 네게이트될 때까지 액티브이다. DSTOP#X 이외의 다른 신호의 의미는 이하와 같다.
START#X : 제산회로(106) 전체의 동작개시를 지시하는 신호이고, 이 신호는 제4도의 제어유니트(CU)(400)로 만들어진다.
END#X : 제산회로(106) 전체의 동작정지를 지시하는 신호이고, 이 신호는 제4도의 제어유니트(CU)(400)로 만들어진다.
DRUN#X : 부분잉여 레지스터(PR), 가감산부(42), 보수발생부(43), 상예측부(44) 및 제수배수발생부(41)에 의해서 행해지는 반복제산의 동작개시와 종료를 지시하는 신호이고 동작개시의 지시는 상기 START#X의 발생후의 다음 클록에 동기되어 행해지고 또 동작종료의 지시는 상기 END#X에 응답하여 클록의 발생을 멈춤으로써 행해진다.
DCNTO#X~DCNT15#X : 상기 START#X의 발생후의 다음 클록에 동기되어 발생하는 신호이고 제산회로(106)의 각 레지스터(EPN,EPD,EXO,DSR,EXP,EXD,REM,QR,OPD 및 EXN)의 동작타이밍을 제어하는 신호이다. 최초에 발생되는 DCNTO#X로부터 최후에 발생되는 DCNT15#X까지의 16종의 클록신호로 구성된다.
다음에 가수제산부(40)에서는 기수를 16으로 한 비회복형 제산법에 의한 제산을 행한다. 이 가수제산부(40)는 제수배수발생부(이하 배수발생부라 한다)(41), 가감산부(42), 보수발생부(43), 상예측부(44) 및 상보정보(45)를 포함하는 동시에 제수레지스터(DSR), 피제수레지스터(PR) 및 상레지스터(QR)를 포함하는 구성으로 되어 있고 더 상세한 구성은 제6도에 나타냈다.
제6도에서는 배수발생부(41)를 약호 MULT로 가감산부(42)를 약호 ALU로, 상예측부(44)를 약호 QP로, 상보정부(45)를 약호 QC로 각각 나타내고 있다.
본 실시예에서는 기수가 16이므로 -15×제수, +14×제수, …,-1×제수,+1×제수, …14×제수, +15×제수의 모두 30가지의 제수배수 데이타가 필요하게 된다. 배수발생부(41)는 이 제수배수데이타를 만들기 위한 것이며 제7도에 그 개념도를 나타낸 것과 같이 소정의 배수선택신호(SELa)(상예측부(44)로 만들어진다)에 따라서 +16배,-16배,+8배 또는 -8배중 어느 배수(이하 배수 a라 함)을 발생하는 제1블록(41a)과 소정의 배수선택신호(SELb)에 따라서 +4배,-4배,+2배,또는 -2배의 어느 배수(이하 배수 b라함)을 발생하는 제2블록(41b)와 소정의 배수선택신호(SELc)에 따라서 +1배 또는 -1배의 어느 배수(이하 배수 c라함)을 발생하는 제3블록(41c)으로 된다.
예를들면 제1블록(41a)을 대표로 배수의 발생동작을 설명하면 먼저 제수레지스터(DSR)내의 데이타를 4비트 좌로 쉬프트한(4자리수를 올린) +16배 데이타와 동 4비트 좌로 쉬프타한 데이타의 보수를 취한 -16배 데이타와 제수레지스터(DSR)내의 데아타를 3비트 좌로 쉬프트한(3자리수 올린) +8배 데이타와 동 3비트 좌로 쉬프트한 데이타의 보수를 취한 -8배 데이타를 만들어 이들중의 하나를 SELa의 내용에 따라서 동작하는 셀렉터로 선택한다.
가감산부(42)는 제8도에 나타낸 것과 같이 4입력 자리수 올림 보조가산기(4입력 캐리세이브 에더)(CSA)와 CSA에서 출력되는 캐리 및 합(sum)을 가산하는 자리수올림전파 가산기(CPA)를 갖고 부분제수레지스터(PR)의 내용으로부터 배수(a), 배수(b) 및 배수(c)의 합을 감하고 MSB(최상위비트)의 부호비트(S)와 이 부호비트(S)를 제외한 상위 5비트로 된 가산결과를 출력한다. 이하 부호비트(S)를 제외한 상위의 5비트를가산결과의 절대치라 한다. 여기서, CPA는 제9도에 나타낸 바와 같이 4개의 블록 B0~B3으로 되고, 각 블록은 제10도에 그 구성을 나타낸 바와 같이 캐리가 있다고 상정하여 사전에 연산을 행하는 부분과 캐리가 없다고 상정하여 사전에 연산을 행하는 부분을 구비하고 이들의 양 연산부분의 출력을 하위측으로부터의 캐리입력에 따라서 선택하도록 되어 있다. 이에 의하면 최하위블록(B0)을 제외한 다른 블록(B1~B3)의 캐리전파지연을 최소한으로 억제할 수 있고 CPA의 연산시간을 최하위블록(B0)의 캐리전파지연에 상당하도록 할 수 있다. 단 당연하지만 각 블록의 셀렉터지연이나 배선지연등이 이에 가산된다.
가감산부(42)에서 출력되는 가산결과는 최상위블록(B3)의 16비트출력중의 상위 6비트이고 그 최상위비트가 부호비트(S), 나머지 5비트가 가산결과의 절대치로 된다. 따라서 가산결과의 절대치의 확정에서 부호비트(S)의 확정까지의 사이에는 최하위블록(B0)의 캐리전파지연에 각 블록마다의 셀렉터지연과 배선지연을 가산한 지연시간(전술한 tα에 상당)이 발생된다.
보수발생부(43)는 제6도에 그 구성을 나타낸 것과 같이 가산결과의 절대치를 디코딩하는 5입력 AND게이트군(43a)와 부호비트(S)에 따라서 그 디코딩 결과를 선택하는 32개의 2입력 셀렉터(SLOA, SLOB~SL15A, SL15K)로 된 셀렉터군(43b)으로 된다. AND게이트군(43a)은 가산결과의 비트수와 동일수의 입력을 갖는 32개의 5입력 AND게이트(G0~G31)로 되고 AND게이트의 각 입력에는 비트의 가중치가 [24,23,22,21,20]의 5비트 데이타(가산결과)가 주어져 있다. 각 AND게이트의 5개의 입력에는 좌단으로부터 우단으로 차례로 24비트, 23비트, 22비트, 21비트, 20비트가 입력된다. 본 실시예에서는 디코더는 하나이지만 부호비트에 따라서 셀렉터군(43b)에 의해서 디코딩신호의 D0~D31과 보수발생부(43)의 출력단과의 대응관계를 바꿈으로써 상기 가산결과를 디코딩한 결과와 상기 가산결과의 보수를 디코딩한 결과를 출력할 수 있도록 되어 있다.
예를들면 가상결과의 절대치를0(2)=0(10) 에 대한 보수는11111(2)=31(10) 이므로 가산결과가0(2) 일때 AND게이트(G0)의 디코딩 신호(D0)와 AND게이트(G31)의 디코딩 신호(D31)의 한쪽을 부호비트에 따라서 셀렉터(SLOA)에 의해서 선택하면 된다. 마찬가지로 동 절대치가1(2)=1(10) 일때에는 디코딩 신호(D1)와 디코딩 신호(D30)의 한쪽을 부호비트에 따라서 선택하면 된다. 또 5입력 AND 게이트(G1)는 입력이10(2)=2(10) 일때에는 디코딩 신호(D2)를 출력하고, G311(2)=3(10) , G4100(2)=4(10) , G5101(2)=5(10) , G6110(2)=6(10) , G7111(2)=7(10) , G81000(2)=8(10) , G91001(2)=9(10) , G101010(2)=10(10) , G111011(2)=11(10) , G121100(2)=12(10) , G131101(2)=13(10) , G141110(2)=14(10) , G151111(2)=15(10) , G1610000(2)=16(10) , G17100001(2)=17(10) , G1810010(2)=18(10) , G1910011(2)=19(10) , G2010100(2)=20(10) , G2110101(2)=21(10) , G2210110(2)=22(10) , G2310111(2)=23(10) , G24110024(10) , G2511001(2)=25(10) , G2611010(2)=26(10) , G2711011(2)=27(10) , G2811100(2)=28(10) , G2911101(2)=29(10) , G3011110(2)=30(10) , G3111111(2)=31(10) 일때에 각각 디코딩 신호(D3~D31)를 출력한다.
셀렉터군(43b)는 32개의 셀렉터(SLOA~SL15A,SLOB~SL15B)를 구비하는 것이고 가산결과의 절대치의 디코딩 결과와 가산결과의 보수의 디코딩 결과와 등가의 결과가 얻어질 수 있도록 디코딩 신호의 쌍이 입력되어 있다. 즉, D0와 D31의 쌍이 셀첵터(SLOA)에 입력되고, 마찬가지로 D1과 D30, D2과 D29, D3과 D28, D4과 D27, D5과 D26, D6과 D25, D7과 D24, D8과 D23, D9과 D22, D10과 D21, D11과 D20, D12과 D19, D13과 D18, D14과 D17, D15과 D16, D16과 D15, D17과 D14, D18과 D13, D19과 D12, D20과 D11, D21과 D10, D22과 D9, D23과 D8, D24과 D7, D25과 D6, D26과 D5, D27과 D4, D28과 D3, D29과 D2, D30과 D1, D31과 D0이 각각 쌍으로 되어 대응하는 셀렉터에 입력된다. 이와 같이 함으로써 디코더는 하나라도 입력데이타를 디코딩한 결과와 입력데이타와 보수를 디코딩한 결과가 얻어진다. 물론 디코더를 2종류 설비하여 그 출력을 부호비트에 따라서 선택해도 된다. 또 제11도는 셀렉터(대표로 SL0A, SL0B~SL15A,SL15B)의 바람직한 구성예이다.
2조의 트랜스퍼게이트(Ta, Tb)에 디코딩 신호 D0와 D31와(SL15에서는 D15와 D16)을 입력하는 동시에 부호비트(S)와 그 반전신호(Sx)에 의해서 그 ON/OFF동작을 택일적으로 콘트롤함으로써 D0와 D31(SL15에서는 D15와 D16)중 어느 한쪽을 선택할 수 있다.
여기서 본 실시예에 있어서의 보수발생부(43)의 특징은 첫째로 가산결과의 절대치가 확정되면 즉시 동 절대치의 디코딩 처리와 동 절대치의 보수의 디코딩 처리를 실행하고 그후에 부호비트(S)가 확정된 시점에서 이들 2가지 디코딩 결과를 선택하도록한 점에 있다. 이에 의해서 가산결과의 절대치의 확정시간과 부호비트(S)의 확정시간의 차에 상당하는 연산 지연시간(tα)을 디코딩 처리시간(tβ)으로 흡수할 수 있어 특히 반복회수가 많은 비회복형 제산연산의 처리시간을 대폭으로 단축할 수 있다는 현저한 효과를 발휘할 수 있다.
또 둘째의 특징은 가산결과의 절대치의 디코딩 결과와 동 절대치의 보수의 디코딩 결과의 쌍을 선택할 수 있게 한 점에 있다. 이에 의해서 디코딩 처리부의 회로규모를 종래와 동등하게 억제할 수 있고, 상기 제1특징과 합쳐져 특히 원터치·벡터 프로세서에 적합한 제산기를 제공할 수 있다.
다음에 상예측부(44)는 제수(D)의 상위 9비트(이하 Di라 함)와 보수발생부(43)으로부터의 부분잉여의 상위 5비트(이하 Pi라함)에 준하여 디지트마다의 부분상을 예측하는 제1기능을 구비한다. 이 제1기능에서는 예를들면 제12도에 나타낸 것과 같은 예측테이블이 사용된다. 또 예측테이블은 ROM등의 메모리위에 테이블매프의 형으로 전개해도 되고 또는 하드로직으로 구성해도 좋으나 처리속도의 점에서 후자가 바람직하다. 제12도에 있어서 종축에는 부분잉여의 상위 5비트(Pi)에 대응한0(16) 에서IF(16) 까지의 참조치(Pi')가 주어지고 횡축에는F(16) 에서0(16) 까지의 부분상의 예측치(이하 예측상(mi)이라 함)가 주어져 있다. 또 종축에 직교하는 선과 횡축에 직교하는 선의 각 교점에는 Pi와 mi의 조합에 대응한 참조치(Di')가 격납되어 있고 이 참조치(Di')는 제수(D)의 상위 9비트(Di)로 나타낼 수 있는 값중 몇개의 값을 뽑아내어 소정의 순서로 배열한 것이다. 이제 예를들면 Pi=OF(16) 이고 Di=100(16) 이면 도면중의 파선으로 나타낸 것과 같이 mi=F(16) 이 예측된다. 또 Di가 예를들면101(16) 이면 이101(16) 을 포함한 Di'의 범위100(16) ← →「112(16) 의 최소치, 즉 (100(16) 이 지정되고 마찬가지로 mi=F(16) 이 예측된다.
또 상예측부(44)는 상기 제1기능으로 예측된 예측상(mi)과 전회의 부호비트(S-1) 및 금회의 부호비트(S)에 준하여 배수선택신호(SELa~SELc)를 생성하는 제2기능을 구비한다.
이 제2기능에서는 예를들면 제13도에 나타낸 것과 같은 신호생성테이블이 사용된다. 제13도에 있어서 종축에는 예측상(mi)에 대응한0(10) 에서15(10) (2진 표현에서는0(2) 로부터1111(2) 까지의 참조치(mi')가 주어지고 종축의 각 값마다에 S-1=“0” 즉 전회의 부분잉여가 정의 값의 경우와 S=“1” 즉 금회의 부분잉여가 부의 값의 경우의 각각의 배수선택신호(SELa, SELb, SELc)가 격납되어 있다. 단 격납된 값은 각각 배율을 나타내고, 예를들면 0은 0배, -1은 -1배, …+16은 +16배를 나타내고 있다.
최후로 상보정부(45)는 금회의 반복에 있어서의 부분잉여의 부호비트(S)와 전회의 반복에 있어서의 부호비트(S-1)에 준하여 상예측부(44)에서 생성된 예측상(mi)을 보정하여 부분상 레지스터(QP)에 세트한다. 실제의 보정은 제14도에 그 개념도를 나타낸 것과 같이(1) S_=“0”(정의 부호) 또 S=“0”(정의 부호)의 경우에는 예측상을 그대로 QP에 세트하고 (2)S-1=“0”(정의 부호) 또 S=“0”(부의 부호)의 경우에는 예측상으로부터 1을 감한 값을 QP에 세트하고 (3)S-1=“1”(부의 부호) 또 S=“0”(정의 부호)의 경우에는 예측상의 2의 보수를 QP에 세트하고 (4)S-1=“1”(부의 부호) 또 S=“1”(부의 부호)의 경우에는 예측상의 1의 보수를 QP에 세트하도록 실행된다.
이상 설명한 바와 같이 본 실시예에서는 가감산부(42)에서 생성된 가산결과의 절대치 및 그 보수를 동 가산결과의 부호비트(S)가 확정되기전에 5입력 AND게이트군(43a)에 의해서 디코딩 처리하고 그후에 부호비트(S)가 확정된 시점에서 셀렉터군(43b)에 의해서 2개의 디코딩 결과중의 한쪽을 선택하도록 한 것이며 가감산부(42)에 있어서의 케리전파지연에 기인하는 가산결과의 절대치와 부호비트 사이의 시간차(tα)를 디코딩 처리시간(tβ)에 흡수할 수 있다. 즉 제15도의 타이밍챠트에 나타낸 것과 같이 가산결과의 절대치가 확정된 시점(t0)부터 상기 tα에 상당하는 시간후의 시점(t1)에서 가산결과의 부호비트가 확정되지만 종래예에서는 이 시점(t1)부터 셀렉터(5a)의 선택동작이 개시되고 또 선택동작이 종료시점(t3)부터 디코더(5b)의 동ㅈ가이 개시되기 때문에 결국 디코딩 결과가 출력되는 시점(t5)까지 부호비트의 지연시간(tα)+셀렉트 동작시간(tSEL)+디코딩 동작시간(tβ)의 긴 시간이 소비된다는 결점이 있다.
이에 대해서 본 실시예에서는 부호비트의 확정을 기다리지 않고 5입력 인버터군(43a)에 의한 디코딩 동작을 개시하므로 디코딩 동작이 개시시점(가산결과의 절대치의 확정시점(t0)에 대략일치)에서 디코딩 동작의 완료시점(t2)까지의 사이에 상기 tα를 흡수할 수 있어 전체의 동작지연을 5입력 AND게이트군(43a)의 동작지연(tβ)과 셀렉터군(43b)의 동작지연(tSEL)을 합한 정도로 감소시킬 수 있다. 또 셀렉터군(43b)는 부호비트의 확정시점(t1)에서 동작을 개시하므로 즉 디코딩 동작과 셀렉터의 준비동작이 동시에 진행되므로 셀렉터군(43b)의 동작지연(tSEL)의 일부 또는 대부분을 5입력 AND게이트군(43a)의 동작지연(tβ)에 흡수할 수 있다.
[산업상의 이용 가능성]
본 발명의 제산기는 가산결과로 부분잉여를 생성할때의 처리속도를 향상시킬 수 있으므로 비회복형 제산 방식의 제산기와 같이 재귀적인 수순을 반복하는 예를들면 부동소수점 코프로세서나 벡터 프로세서의 제산기에 적합하다.

Claims (6)

  1. 상예측치에 준한 정보에 의해서 배수치를 구하는 배수발생수단(10)과 이 제수의 배수치와 피제수와의 연산결과 및 이 연산결과의 극성을 나타내는 부호비트를 출력하는 연산처리수단(11)과, 상기 부호비트의 생성중에 디코딩을 개시하고 이 연산결과의 디코딩 신호와 이 연산결과의 보수의 디코딩 신호중의 한쪽을 상기 부호비트에 준하여 출력하는 디코딩 처리수단(12)과 상기 디코딩 처리수단의 출력에 따라서 상예측치를 생성하는 상예측치 생성수단(14)을 구비하는 것을 특징으로 하는 제산기.
  2. 제1항에 있어서, 상기 디코딩 처리수단(12)은 복수의 출력단과, 상기 연산결과를 디코딩하여 복수의 출력을 발생하는 디코더와, 상기 복수의 출력단과 상기 디코더와의 사이에 접속된 상기부호 비트에 응답하여 제어하는 선택수단을 포함하고 상기 선택수단은 상기 연산결과를 디코딩한 디코딩 신호와 상기연산결과의 보수의 디코딩 신호중의 한쪽이 상기 부호비트에 따라서 출력되도록 상기 디코더의 복수의 출력과 상기 복수의 출력단자와의 접속관계를 절환하는 것을 특징으로 하는 제산기.
  3. 제2항에 있어서, 상기 디코딩 처리수단(12)은 상기 연산처리수단(11)에서 출력되는 복수비트의 연산 결과를 각각 받아들이고 각각 다른 디코딩 논리의 복수의 논리게이트 회로를 포함하고 상기 선택수단은 상기 복수의 논리게이트의 출력중의 대응하는 2개를 각각 입력으로서 받아들여 상기 부호비트에 따라서 2개의 입력중의 한쪽을 선택하는 복수의 셀렉터를 포함함을 특징으로 하는 제산기.
  4. 제2항에 있어서, 상기 선택수단(13)은 상기 디코딩 처리수단(12)의 출력중에서 서로 보수관계에 있는 출력의 쌍을 받아들여 상기 부호비트가 정일때에는 상기 출력의 쌍중에서 보수가 아닌쪽의 출력을 선택하고 상기 부호비트가 부일때에는 보수인쪽의 출력을 선택하는 것인 제산기.
  5. 제1항에 있어서, 금회의 연산결과의 부호비트와 앞서회의 연산결과의 부호비트에 준하여 상기 예측치 생성수단(14)의 출력을 보정하는 상보정부(45)를 구비한 계산기.
  6. 벡터 연산에 필요한 가감승제산의 각 처리를 독립하여 실행하는 가산회로(104), 승산회로(105) 및 제산회로(106)를 적어도 포함하고, 상기 제산회로(106)는 제수(D) 및 피제수(N)의 각 부동소수점데이타에 대해서 제산전처리 및 형판정을 행하는 제산전처리 및 형판정부(20)와, 이 제산서치 및 형판정부(20)에 의해서 전처리가 행해진 제수(D) 및 피제수(N)의 부동소수점데이타중의 지수부끼리의 연산을 행하는 지수연산부(21)와 이 제산전처리 및 형판정부(20)에 의해서 전처리가 행해진 제수(D) 및 피제수(N)의 부동소수점 데이타중의 가수부에 대해서 소정의 앨고리즘에 준한 수순을 반복하여 행하여 상의 가수부데이타를 생성하는 가수제산부(40)를 구비하고, 상기 가수제산부(40)에 제1항 기재의 제산기를 구비한 벡터 프로세서.
KR1019930700333A 1991-06-07 1992-06-05 제 산 기 KR950007879B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP13663991 1991-06-07
JP91-136639 1991-06-07
PCT/JP1992/000725 WO1992022027A1 (en) 1991-06-07 1992-06-05 Divider

Publications (2)

Publication Number Publication Date
KR930701784A KR930701784A (ko) 1993-06-12
KR950007879B1 true KR950007879B1 (ko) 1995-07-21

Family

ID=15180014

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930700333A KR950007879B1 (ko) 1991-06-07 1992-06-05 제 산 기

Country Status (5)

Country Link
US (1) US5377135A (ko)
EP (1) EP0543024B1 (ko)
JP (1) JP3391448B2 (ko)
KR (1) KR950007879B1 (ko)
WO (1) WO1992022027A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69626596T2 (de) * 1995-10-20 2003-12-18 Kabushiki Kaisha Toshiba, Kawasaki Logische Schaltung, die nach dem Carry select Prinzip arbeitet
US5818745A (en) * 1996-05-31 1998-10-06 Intel Corporation Computer for performing non-restoring division
US5784307A (en) * 1996-05-31 1998-07-21 Intel Corporation Division algorithm for floating point or integer numbers
US6109777A (en) * 1997-04-16 2000-08-29 Compaq Computer Corporation Division with limited carry-propagation in quotient accumulation
US6012078A (en) * 1997-06-23 2000-01-04 Wood; Lawson A. Calculation unit
US6975629B2 (en) * 2000-03-22 2005-12-13 Texas Instruments Incorporated Processing packets based on deadline intervals
US8041927B2 (en) * 2008-04-16 2011-10-18 Nec Corporation Processor apparatus and method of processing multiple data by single instructions
JP5509839B2 (ja) * 2009-12-22 2014-06-04 富士通株式会社 通信装置、受信データ長判定方法、倍数判定回路及び受信データ長判定プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6054045A (ja) * 1983-09-02 1985-03-28 Hitachi Ltd 除算装置
JPS617939A (ja) * 1984-06-22 1986-01-14 Fujitsu Ltd 高基数非回復型除算装置
CA1231455A (en) * 1984-04-09 1988-01-12 Masayuki Ikeda Nonrestoring divider
US5031138A (en) * 1990-06-04 1991-07-09 International Business Machines Corporation Improved ratio decoder for use in a non-restoring binary division circuit

Also Published As

Publication number Publication date
JP3391448B2 (ja) 2003-03-31
WO1992022027A1 (en) 1992-12-10
EP0543024A4 (ko) 1994-02-02
EP0543024A1 (en) 1993-05-26
US5377135A (en) 1994-12-27
EP0543024B1 (en) 1998-09-02
KR930701784A (ko) 1993-06-12

Similar Documents

Publication Publication Date Title
US5128891A (en) High speed divider with square root capability
JP2662196B2 (ja) 演算結果正規化方法及び装置
EP0530372B1 (en) Numerical expression converter and vector processor using the same
US5426600A (en) Double precision division circuit and method for digital signal processor
KR950006584B1 (ko) 부동소수점 제산회로
US6549926B1 (en) SRT divider having several bits of each partial remainder one-hot encoded to minimize the logic levels needed to estimate quotient bits
US5931895A (en) Floating-point arithmetic processing apparatus
KR950007879B1 (ko) 제 산 기
US4773035A (en) Pipelined data processing system utilizing ideal floating point execution condition detection
US7016930B2 (en) Apparatus and method for performing operations implemented by iterative execution of a recurrence equation
US5506800A (en) Self-checking complementary adder unit
US4707783A (en) Ancillary execution unit for a pipelined data processing system
JPH01232423A (ja) 演算回路
US5432726A (en) Arithmetic unit for quantization/inverse quantigation
EP0442220B1 (en) Decoder
JP3462054B2 (ja) 並列加減算回路
JP3517162B2 (ja) 除算・開平演算装置
US7243119B1 (en) Floating point computing unit
EP0356940A2 (en) Finite state machine
JP2607759B2 (ja) 除算器
JP2608090B2 (ja) 高基数非回復型除算装置
JP3229057B2 (ja) 例外処理装置
JPH0370252B2 (ko)
JPS6149234A (ja) 浮動小数点乗算回路
JPH07319668A (ja) 冗長2進乗算器および冗長2進alu並びにプログラム制御回路

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20060711

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee