KR19980041776A - 자리올림수 교정을 갖는 휴즈된 부동 소수점 곱셈 및 누산 장치 - Google Patents

자리올림수 교정을 갖는 휴즈된 부동 소수점 곱셈 및 누산 장치 Download PDF

Info

Publication number
KR19980041776A
KR19980041776A KR1019970029390A KR19970029390A KR19980041776A KR 19980041776 A KR19980041776 A KR 19980041776A KR 1019970029390 A KR1019970029390 A KR 1019970029390A KR 19970029390 A KR19970029390 A KR 19970029390A KR 19980041776 A KR19980041776 A KR 19980041776A
Authority
KR
South Korea
Prior art keywords
adder
bit
multiplier
digit
output
Prior art date
Application number
KR1019970029390A
Other languages
English (en)
Other versions
KR100232962B1 (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 KR19980041776A publication Critical patent/KR19980041776A/ko
Application granted granted Critical
Publication of KR100232962B1 publication Critical patent/KR100232962B1/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/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products

Landscapes

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

Abstract

휴즈된 부동 소수점 곱셈 및 누산 장치는 합과 가수의 곱을 나타내는 자리올림수를 생성하기 위해 수정된 부스 알고리즘을 이용하는 곱셈기를 구비한다. 이와 같은 알고리즘의 결과는 가수 모두가 양일지라도 음의 값을 표현할 수 있는 합 또는 자리올림수라는 것이다. 음의 값은 곱셈기에서 부분 곱의 부호 확장 또는 부호 엔코딩으로부터의 부호 비트를 가질 수 있다. 부호화된 비트의 결과는 부호 비트를 취소하기 때문에 거짓 자리올림수 아웃이다. 3-비트 입력 가산기는 곱셈기로부터의 합과 자리올림수를 동시에 결합하고 누산을 수행한다. 가산기는 거짓 자리올림수를 억제하기 위해 자리올림수 교정 논리회로를 구비하고, 거짓 자리올림수가 누산되고 있는 값의 상위의 비트에 영향을 미치는 것을 방지한다.

Description

자리올림수 교정을 갖는 휴즈된 부동 소수점 곱셈 및 누산 장치
본 발명은 (A*B)1+C를 결정하는 곱셈 및 누산 연산을 수행하기 위한 디지탈 산술 회로 및 방법에 관한 것이다.
곱셈 및 누산 (MAC) 연산은 다른 값 A 및 B의 곱으로부터 하나의 값 C를 더하거나 뺌으로써 세개의 값 A, B 및 C을 결합한다. 곱셈기와 가산기를 구비하는 산술 회로는 개별적인 단계로 이와 같은 MAC 연산을 수행할 수 있어, 곱셈기를 이용하여 값 A 및 B를 곱하고, 그 결과를 라운드한 다음, 상기 가산기를 이용하여 곱에 값 C를 더하거나 또는 상기 곱으로부터 값 C를 뺀다. 선택적으로, 휴즈된(fused) MAC 장치는 곱셈과 누산을 병렬로 수행하고, MAC 연산의 처리 성능(지연과 정확도)을 향상시키기 위해 곱의 라운딩을 생략한다.
본 발명에서 참조로 인용되는 IEEE Journal of Solid-State Circuits, vol. 25, No. 5, October 1990, Hokenek 등에 의한 Second-Generation RISC Floating Point with Multiply-Add Fused는 곱 A*B의 결정 후 지연없이 값 C가 곱 A*B와 누산되도록 값 A 및 B의 곱셈과 병렬로 값 C에 대한 비트 정렬을 수행하는 부동 소수점 MAC 장치를 개시한다. 결과 A*B1+C는 에러를 유입할 수 있는 중간 곱 A*B를 라운드하거나 또는 트렁케이트하지 않고 누산된다. 부수적으로, 선두의 제로 예측기(anticipotor)는 결과 A*B1+C이 누산 직후 정규화되도록 값 C가 곱 A*B와 누산되는 동안 부동 소수점 표현에 따른 결과 A*B1+C를 정규화하는데 필요한 쉬프트를 식별한다. 따라서, 휴즈된 MAC 장치는 전반적으로 순차적으로 사용되는 곱셈기와 누산기보다 빠르고 정확하다.
휴즈된 MAC 장치의 단점은 병렬 연산을 수행하는데 필요한 회로의 복잡성의 증가 또는 크기이고, 덜 복잡하거나 덜 복잡한 휴즈된 MAC 장치의 필요성이 존재한다.
본 발명의 특징에 따르면, 휴즈된 부동 소수점 곱셈 및 누산 장치는 가수의 곱을 표현하는 합과 자리올림수를 생성하기 위해 수정된 부스 알고리즘을 이용하는 곱셈기를 구비한다. 상기 수정된 부스 알고리즘은 가수 및 결과로 나타나는 곱 모두가 양일 때에도 합 또는 자리올림수가 음의 값을 표현할 수 있게 한다. 음의 값은 곱셈기에서 부분 곱의 부호 확장으로부터의 부호 비트를 가질 수 있다. 선택적으로, 합과 자리올림수 모두는 부호 엔코딩 비트를 가질 수 있다. 부화화된 값의 결과는 음의 값의 부호 또는 부호 엔코딩을 취소로 인한 거짓 자리올림수(false carry)이다. 이와 같은 거짓 자리올림수는 어떠한 수학적 의미도 가지지 않으며 곱이 제 3의 가수와 누산될 때 상위의 비트에 영향을 미쳐서는 안된다. 본 발명의 실시예에서, 3-입력 가산기는 누산 값을 곱셈기로부터의 합과 자리올림수를 동시에 결합한다. 상기 가산기는 거짓 자리올림수를 억제하는 자리올림수 교정 논리회로를 구비하고 거짓 자리올림수가 누산의 상위의 비트에 영향을 미치는 것을 방지한다.
본 발명의 한 실시예에 따르면, 곱셈 및 누산 장치는 가수 Ma 및 Mb의 곱 Ma*Mb를 표현하는 합과 자리올림수 신호에 대한 출력 포트를 갖는 곱셈기와 자리올림수 교정 논리회로를 갖는 3-입력 가산기를 구비한다. 상기 3-입력 가산기는 제 1 가산기가 자리올림 보류 가산기(a carry-save adder)인 두개의 가산기를 구비한다. 상기 자리올림 보류 가산기는 곱셈기의 출력 포트에 결합된 두개의 입력 포트, 및 곱 Ma*Mb과 누산하기 위해 가수 Mc를 표현하는 데이타 신호의 제 1 부분을 수신하는, 출력 포트에 결합된 제 3 입력 포트를 구비한다. 상기 가수 Mc의 제 1 부분은 곱 Ma*Mb에서 비트로서 정렬(즉, 동일한 상대 크기를 갖는)된 부분이다. 제 2 가산기는 자리올림 보류 가산기의 출력 포트에 결합된 입력 포트를 갖는다. 자리올림수 교정 논리회로는 제 1 및 제 2 가산기에 결합되고, 곱셈기로부터의 자리올림수와 합의 덧셈으로 인한 자리올림수 비트를 억제한다. 곱셈 및 누산 장치는 3-입력 가산기로부터의 유효 자리올림수를 위해 제 2 부분이 증가되도록 데이타 신호의 제 2 부분을 수신하도록 결합된 증가기를 부수적으로 구비할 수 있다.
자리올림수 교정 논리회로는 다양한 형태를 취할 수 있다. 한 가지 형태는 부분 곱의 부호 엔코딩을 이용하는 곱셈기와 함께 사용되고, 제 1 및 제 2 가산기의 자리올림수 출력에 결합된 입력 단자를 갖는 AND 게이트를 구비한다. 본 실시예를 위해, 곱셈기는 함께 더해질 때의 합 및 자리올림수가 부호 엔코딩을 취소하는 결과로서 거짓 자리올림수를 항상 생성하여야 한다. 따라서, 가산기는 항상 거짓 자리올림수를 생성하고, 두개 가산기가 두개의 자리올림수 비트를 생성할 때에만 유효 자리올림수가 발생하여여야 한다.
선택적으로, 곱셈기가 부호 취소를 위한 거짓 자리올림수를 종종 발생하는 합과 자리올림수 신호를 발생하면, 부수적인 논리회로가 자리올림수-세이버 가산기의 입력에 제공되어 거짓 자리올림수가 생성될 지를 판단한다. 만약 거짓 자리올림수가 존재하면, 자리올림수 교정 논리회로는 거짓 자리올림수를 억제하고, 생성된 제 2 자리올림수를 전파한다. 만일 어떠한 거짓 자리올림수도 존재하지 않으면, 생성된 제 1 자리올림수는 유효이고 전파된다. 이와 같은 자리올림수 교정 논리회로의 한 가지 실시예는 자리올림수-세이버 가산기의 두 입력 포트에 결합된 NOR 게이트와, 제 1 가산기로부터의 자리올림수 출력에 그리고 상기 NOR 게이트에 결합된 XOR 게이트를 구비한다. 제 2 가산기로부터의 자리올림수 출력과 XOR 게이트로부터 출력은 교정된 자리올림수 신호를 생성하는 AND 게이트의 입력 단자에 결합된다. 다른 예시적인 실시예가 이하에 설명된다.
도 1, 도 2 및 도 3 은 본 발명의 실시예에 따라 휴즈된 부동 소수점 곱셈 및 누산 장치를 위한 가수 파이프라인, 지수 파이프라인, 및 부호 파이프라인 각각을 도시하는 블럭도.
도 4 는 도 1 의 가수 파이프라인을 위한 곱셈기의 블럭도.
도 5 는 도 4 의 곱셈기에서 부분곱을 더하기 위한 덧셈기의 블럭도.
도 6a 및 도 6b 는 도 4 의 곱셈기에서 부분곱을 더하기 위한 방법을 도시하는 도면.
도 7 은 가수 파이프라인의 정렬기 및 정규화 회로에서 곱셈기로부터의 비트가 쉬프터로부터의 비트를 갖는 관계를 도시하는 도면.
도 8a, 도 8b 및 도 8c 는 본 발명의 대체 실시예에 따른 캐피 교정 논리회로를 구비한 가산기의 일부를 도시하는 블럭도.
*도면의 주요 부분에 대한 부호의 설명*
100 : 가수 파이프라인
110 : 곱셈기
111, 112, 122, 222 : 멀티플렉서
115, 116, 231, 232, 233 : 래치
120 : 정렬기
128 : 변환기
200 : 지수 파이프라인
207 : 인버터
210, 211, 212, 213, 220 : 가산기
300 : 부호 파이프라인
410 : 부스 디코더
420 : 부분 곱 발생기
430 : 선택 논리회로
440 : 자리올림 보류 가산기
720 : 쉬프터
이하, 첨부한 도면을 참조로 하여 본 발명의 바람직한 실시예를 상술하며, 도면 전체를 통하여 동일한 부분에는 동일한 도면부호를 사용하기로 한다.
본 발명의 실시예에 따른 휴즈(fused)된 부동 소수점 곱셈 및 누산 (MAC) 장치는 곱셈기, 정렬기, 및 정규화 회로를 이용하여 결과 A*B1+C를 결정한다. 상기 곱셈기는 부분 곱을 결과로 나타나는 곱의 길이 또는 부분 곱의 부호 엔코드로 확장하는 수정된 부스 곱셈기일 수 있다. 부호 엔코딩은 곱셈기에서 부분 곱을 결합하는데 필요한 가산기 회로의 크기를 감소시킨다. 선택적인 실시예에서, 상기 곱셈기는, 가수 Ma 및 Mb의 곱 Ma*Mb을 곱 Ma*Mb의 MSB보다 상위인 최상위 비트 (MSB)를 가질 수 있는 제 3 가수 Mc와 누산되는 합 및 자리올림수 값으로서 표현한다. (본 발명에 사용된 바와 같이, 누산은 덧셈 또는 감산중 어느 하나를 가리킨다.) 자리올림수 아웃이 거짓 (즉, 부호 확장된 음의 값 또는 부호 엔코드된 값의 결과 덧셈)이고 억제되어야 하는 지를 결정하는 자리올림수 교정 논리회로에 의해 곱 Ma*Mb의 MSB가 제거되어 있는 보다 상위의 비트의 누산을 위한 부호 확장 회로 및 가산기 회로는 유효이고 보다 상위의 비트로 전파하여야 한다. 증가기는 유효 자리올림수 아웃에 응답하여 곱 Ma*Mb의 최상위 비트보다 상위인 Mc의 비트를 증가시킬 수 있다.
정렬기는 곱 Ma*Mb(곱 A*B를 위한 가수)과 누산하기 위해 값 C의 가수 Mc를 정렬시키고, 지수차 (Ea+Eb)-Ec (여기서, Ea, Eb, Ec는 값 A, B 및 C에 대한 각각의 지수이다.)로 가리켜진 바와 같이, 곱 A*B에 대한 값 C의 크기에 따라 각각의 MAC를 분류함으로써 단순화된다. 이와 같은 분류의 사용으로 가수 Ma*Mb와 누산하는데 필요한 가수 Mc를 쉬프트하는 쉬프터를 단순하게 한다. 각각의 분류에 대해, 쉬프터는 가변 쉬프트가 다음에 오는 고정 쉬프트를 수행할 수 있다. 제 1 클래스의 경우, 가수 Mc는 쉬프터에 MSB로서 로드되고, 어떠한 고정 쉬프트 또는 가변 쉬프트도 수행되지 않는다. 가수 Ma*Mb는 라운딩을 위해 스티키(sticky)를 제공한다. 제 2 클래스의 경우, 쉬프터는 어떠한 고정 쉬프트도 수행하지 않지만 상수로부터 지수차를 뺌으로써 결정된 가변 크기만큼 쉬프트한다. 제 3 및 제 4 클래스의 경우, 고정 우 쉬프트는 가수 Mc와 가수 Ma*Mb를 정렬시키고, 가변 쉬프트는 지수차 (Ea+Eb)-Ec로 가리켜진 양만큼 더욱 우 쉬프트한다. 누산은 가수 Mc의 비트를 가수 Ma*Mb로부터의 비트와 결합한다. 제 5 클래스는 가수 Mc를 어떠한 가변 쉬프트도 갖지 않는 쉬프터의 최하위 비트 (LSB)로 쉬프트하고, 가수 Mc는 가수 Ma*Mb를 라운드하는 것을 제외하고 무시된 스티키 비트를 제공한다.
정규화 회로는 또한 지수차 (Ea+Eb)-Ec로 가리켜진 바와 같이 곱 A*B에 대한 값 C의 크기에 따라 각각의 MAC 연산을 분류함으로써 단순화된다. 분류는 쉬프트 범위가 감소되기 때문에 거친 정규화(coarse normalization)를 위해 결과를 쉬프트하는 정규화 회로의 쉬프터를 단순하게 한다. 다시, 다른 클래스는 어떠한 쉬프트도 필요로 하지 않고 고정 쉬프트만을 필요로 하거나 또는 고정 쉬프트와 가변 쉬프트를 필요로 한다. 가변 쉬프트에서 쉬프트된 거리는 상대적으로 작고 지수차 또는 선두 제로/1 예측에 따른다.
본 발명의 한 실시예는 부동 소수점 값 A, B 및 C를 표현하는 입력 신호로부터 (A*B)1+C를 결정하는 휴즈된 MAC 장치이다. 부동 소수점 값에 대한 포맷은 기술 분야에 공지되어 있다. 예를 들어, IEEE-754 단일 정확도 데이타형은 부호를 가리키는 1 비트, 지수를 가리키는 8 비트, 및 가수를 가리키는 23 비트를 구비하는 32 비트를 이용하여 표현된다. 도 1, 2 및 3 은 IEEE-754 단일 정확도 데이타형을 지원하는 예시적인 MAC 장치를 통해 가수, 지수, 및 부호 데이타를 위한 각각의 파이프라인(100, 200, 및 300)을 도시한다. 가수 파이프라인(100)은 값 A 및 B에 대한 가수 Ma 및 Mb를 곱하고, 값 C에 대한 가수 Mc를 더하거나 빼고, IEEE-754 부동 소수점 포맷에 따라 결과로 나타나는 가수 RT를 정규화한다. 지수 파이프라인(200)은 값 A 및 B에 대해 지수 Ea와 Eb를 더하고, 가수 파이프라인(100)에서의 결과에 근거하여 지수 조정을 수행한다. 또한, 본 발명의 특징에 따르면, 지수 파이프라인(200)는 지수차 (Ea+Eb)-Ec를 결정하고 지수차는 MAC 연산을 위한 클래스를 결정한다. 상기 클래스는 이하에 서술된 바와 같이 곱 Ma*Mb와 누산하기 위해 가수 Mc를 정렬시키고 가수 결과 RT의 정규화에 사용된다. 부호 파이프라인(300)은 곱 A*B에 대한 부호 SP와 부호 SP와 값 C의 부호 Sc 간의 부호차 DIFF_SIGN을 결정하기 위해 값 A 및 B에 대해 부호 신호 Sa 및 Sb의 XOR을 수행한다. 덧셈을 위해, 부호 SP는 부호차가 제로가 아니고 곱 A*B의 크기가 곱 A*B의 크기보다 크지 않는 한 결과로 나타나는 부호 SR이다. 뺄셈을 위해, 부호 SP는 부호차가 제로가 아니고 값 C의 크기가 곱 A*B의 크기보다 크지 않는 한 결과로 나타나는 부호 SR이다.
예시적인 MAC 장치는 세개의 파이프라인 스테이지, 세개 클럭 사이클의 지연을 가지며, 단위 클럭 사이클당 하나의 MAC 연산을 완료할 수 있다. 스테이지 1은 곱 Ma*Mb를 결정하고, 곱 Ma*Mb와 누산하기 위해 가수 Mc를 정렬시킨다. 스테이지 2는 가수 Mc와 곱 Ma*Mb를 누산하고, 누산의 결과를 정규화하기 위해 선도 제로 또는 선두 1 예측을 수행한다. 스테이지 3은 결과를 라운드하고 정규화하거나 또는 오버플로우와 언더플로우 예외를 검출한다.
도 1 에 도시된 바와 같이, 가수 파이프라인(100)의 스테이지 1은 병렬로 동작하는 곱셈기(110)와 정렬기(120)를 구비한다. 멀티플렉서(111과 112) 및 레벨 트리거 래치(113과 114)는 곱셈기(110)에 대한 입력 신호를 선택한다. 신호 CLK1과 CLK2는 MAC 장치에 있는 래치를 제어하는 마스터와 슬레이브 클럭 신호이다. 멀티플렉서(122)는 정렬기(120)에 대한 입력 신호를 선택한다. 가수 파이프라인(122)에 대한 입력 신호 MA, MB, 0, RT 및 MC는 IEEE-754 단일 정확도 값의 가수를 표현하는 23-비트 포맷이다. 곱셈기(110)에 대한 가능한 입력 신호는 값 A에 대한 가수 Ma, 값 B에 대한 가수 Mb, (1)에 대한 가수, 및 MAC 장치로부터의 이전 결과였던 가수 RT를 가리키는 신호 MA, MB, 0, 및 RT를 포함한다. 23-비트 입력 신호는 각각의 X가23-비트 입력 신호로부터 대응하는 비트에 따른 1 또는 0인 형식 1.XXXXXXXXXXXXXXXXXXXXXXX의 24-비트 정형화된 가수를 표현한다. 따라서, 멀티플렉서(112)는 부동 소수점 덧셈 또는 뺄셈 (A*1)1+C 동안 1.0의 가수 값을 표현하는 23-비트 신호 0를 선택한다. 멀티플렉서(122)는 정렬기(120)가 처리할 수 있도록 래치(124)로 전달하는 신호 RT, MC, 및 0로부터의 입력 신호를 선택한다. 신호 0는 MAC 장치를 사용하여 곱셈 A*11+0를 수행할 때 선택된다. 다음에, 비록 많은 다른 가능성이 존재하지만 MA, MB, 및 MC의 선택을 가정한다.
암시된 선두 1 및 부호 비트 0은 곱셈기(110)가 두개의 25-비트 부호가 있는 값의 곱을 결정하기 전에 각각의 입력 신호에 첨부된다. 곱셈기(110)는 크기가 적어도 25 비트인 정수(즉, 가수)를 곱하기 위한 소정의 곱셈기 아키텍춰를 가질 수 있다. 곱셈기 아키텍춰는 기술분야에 공지되어 있다. 도 1 에 도시된 본 발명의 실시예에서, 곱셈기(110)는 단일 클럭 사이클로 곱을 발생하고, 합 및 자리올림수 신호 SUM 및 CRY의 형태로 곱을 표현한다. 신호 SUM 및 CRY는 2의 보수 포맷으로 곱 Ma*Mb를 발생하기 위해 함께 더해진다. 가수 Ma 및 Mb가 양이기 때문에 곱 Ma*Mb는 항상 양이어야 한다. 부호 파이프라인(300)(도 3 참조)은 부동 소수점 값의 부호를 처리한다.
도 4 는 부스 디코더(410), 부분 곱 발생기(420), 선택 논리회로(430), 및 자리올림 보류 가산기(440)를 구비하는 곱셈기(110)의 예시적인 실시예를 도시한다. 곱셈기(110)에 있는 부스 디코더(410)는 승수 Y를 디코드하는 반면에 부분 곱 발생기(420)는 쉬프트 및 2의 보수 또는 부호 엔코딩 연산을 수행함으로서 배수 피승수 X를 발생한다. 선택 논리회로(430)은 레코드된 승수 Y에 따라 피승수 X의 부분 곱 ppA 내지 ppM을 선택하고, 덧셈을 위해 선택된 부분 곱 ppA 내지 ppM을 가산기(440)에 제공한다. 가산기(440)는 부분 곱을 두개의 값: 신호 SUM 및 CRY로 표현된 합과 자리올림수 값으로 축소시키는, 도 5 에 도시된 바와 같은 왈레스 트리 가산기일 수 있다.
부스 디코더(410)와 선택 논리회로(430)은 승수 Y에 있는 비트 Yi+1, Yi(여기서, i는 2i*X의 5 배수중의 짝수 선택임)의 각 쌍에 대한 수정된 부스 알고리즘을 구현한다. 부분 곱에 대해 선택된 배수는 표 1에 도시된 바와 같이 비트 Yi+1, Yi및 Yi-1의 값에 따른다.
수정된 부스 디코딩
Yi+1 Yi Yi-1 선택된 부분 곱
0 0 0 0*2i*X
0 0 1 1*2i*X
0 1 0 1*2i*X
0 1 1 2*2i*X
1 0 0 -2*2i*X
1 0 1 -1*2i*X
1 1 0 -1*2i*X
1 1 1 0*2i*X
32-비트 부호가 있는 정수의 경우, 부스 디코더(410)와 선택 논리회로(430)은 가산기(440)가 신호 SUM와 CRY를 발생하기 위해 더하는 16 부분 곱 ppA 내지 ppP까지 선택한다. 부분 곱 ppA의 선택은 항상 0인 비트 Y-1을 사용한다. IEEE-754 표준에 따른 가수인 곱셈기 Y는 24-비트 부호가 없는(양) 값이다. 부호 비트 0을 가산한 후, 가수는 수정된 부스 디코딩을 위해 26 비트로 확장되는 부호인 25 비트 부호 값이다. 26 비트 값은 13 부분 곱 ppA 내지 ppM을 필요로 한다. 본 발명의 참조로 일체화된, 미국특허출원 번호 미제, 발명의 명칭 Parallel Multiplier that Supports Multiple Number with Different Bit Lengths(1996년 10월 21일 출원)은 가수 파이프라인(100)에 적합한 곱셈기를 개시한다. 상기 미국특허에 기술된 곱셈기는 32-비트 값까지 부호가 있는 정수 값을 곱하기 위한 32x32 곱셈기 또는 두개의 16x16 곱셈기 또는 동시의 16-비트 또는 8-비트 정수 곱셈을 위한 네개의 8x8 곱셈기로서 구성가능하다.
도 6a 는 본 발명의 제 1 대체 실시예에서 가산기(440)에 의해 수행된 덧셈을 도시한다. 도 6a 에서, 부분 곱 ppA 내지 ppM에 있는 비트는 A0...A24내지 M0...M24로서 식별되고, 1+2*2i*X 형태의 배수이다. 비트 SA내지 SM은 부분 곱 ppA 내지 ppM에 대한 부호 비트를 가리킨다. 부호가 없는 24-비트 가수의 곱셈의 경우, 부분 곱 ppM은 양이고 비트 M24은 제로이다. 도 6a 에서, 각각의 부분 곱 ppA 내지 ppM은 두개의 25-비트 부호 값의 곱의 비트 길이인, 50-비트로 확장된 부호이다.
도 6b 는 본 발명의 대체 실시예에서 가산기(440)에 의해 수행된 덧셈을 도시한다. 본 실시예에서, 각각의 부분 곱 ppA 내지 ppM이 양이고 부호 확장이 필요하지 않도록 부분 곱 ppA 내지 ppM에 바이어스가 부가된다. 각각의 부분 곱의 경우, 바이어스는 부분 곱 ppA 내지 ppL의 경우 부호 비트의 최하위 비트에 11b를 더하고, 부분 곱 ppM의 부호 비트에 1을 더한다. 이 덧셈은 반복되는 부호 SA내지 SL의 스트링을 제로의 스트링으로 변환한다. 바이어스의 전체 효과는 비트 25(A24의 좌측에 있는 비트)로 시작하여 비트 49(부호가 있는 결과인 마지막 비트)까지 확장하는 일련의 1을 포함하는 값을 더한다. 바이어스의 효과가 비트 49로부터의 자리올림수 아웃이도록 그 합에 부수적인 항 (1*225)이 더해진다. 도 6b 에 도시된 실시예는 부분 곱 ppA 내지 ppM에 있는 제로 값의 수를 증가시키고 가산기(440)에 필요한 가산기 회로를 단순화시킨다는 장점이 있다.
대체 실시예에 따라, 부분 곱의 조합으로부터의 결과는 50-비트 합과 자리올림수 신호 SUM과 CRY이다. 곱셈의 결과는 가수 값의 경우 양이어야 하지만, 합 또는 자리올림수 신호 SUM 또는 CRY는 비트 49 세트를 가질 수 있다. 래치(115 및 116)는 파이프라인(100)의 스테이지 2에서 래치(131 및 132)로 전달되는 곱셈기(110)로부터의 신호 SUM 및 CRY의 값을 보유한다. 각각의 신호 SUM 및 CRY는 50-비트 값을 제공한다. 각각의 50-비트 값은 자연적으로 두개의 24-비트 값을 곱한 결과인 48 비트와 신호 SUM 또는 CRY에 대한 부호 또는 엔코드된 부호를 가리키는 두개의 부수적인 비트를 포함한다.
Ma 및 Mb의 곱셈과 동시에, 정렬기(120)는 곱 Ma*Mb와 누산하기 위해 가수 Mc를 정렬시킨다. 정렬기(120)는 본 발명의 예시적인 실시예에서 100-비트 데이타 폭을 갖는 쉬프터를 구비한다. 도 7 은 각각 래치(115 및 116)에서 신호 SUM와 CRY로부터 비트를 갖는 쉬프터(720)에서의 비트의 정렬을 도시한다. 본 발명의 특징에 따르면, 쉬프터(720)는 쉬프트 연산의 배수 클래스를 수행하고, 이들 각각은 두개의 개별적인 쉬프트를 포함한다. 수행된 쉬프트 연산의 클래스는 값 A, B 및 C의 지수 Ea, Eb 및 Ec에 대한 차 δE=Ec-(Ea+Eb)에 따른다. 표 2는 5개의 정렬 클래스를 가리킨다.
정렬 클래스
클래스 조건 고정 쉬프트 가변 쉬프트
1 δE 1 27 쉬프트 없음 쉬프트 없음
2 27 δE 27 쉬프트 없음 우 27 - δE
3 δE = 0 우 27 쉬프트 없음
4 0 δE 1 -48 우 27 우 |δE|
5 -48 δE 우 27 또는 우 75 우 48 또는 쉬프트 없음
표 2의 경우, 24-비트 가수 Mc는 MAC 연산을 위해 차 δE와 클래스에 따라 쉬프트 되지 전에 100-비트 쉬프터(720)의 부분(721)으로 로드될 때 좌로 정렬된다.
클래스 1의 경우, 가수 Mc는 부분(721)에 남는다. 곱을 갖는 누산은 가수 Mc의 값을 바꾸지 않고, 가수 Mc는 결과에 대한 가수이다. 곱은 라운딩에 사용될 수 있는 스티키 비트를 제공한다. 클래스 2, 3 및 4의 경우, 가수 Mc의 일부와 곱이 중복하도록 쉬프트된다. 클랙스 3은 클래스 2 또는 4의 특수한 경우로 간주될 수 있다. 클래스 3에서, 가수 Mc는 신호 SUM과 CRY의 비트 48과 49가 부호 정보를 표현하기 때문에 곱의 제 1 정수 비트와 가수 Mc의 최상위 비트를 정렬시키는 27 비트만큼 우로 쉬프트된다. 클래스 5의 경우, 가수 Mc는 쉬프터(720)의 부분(723)으로 쉬프트되는데, 여기서 가수 Mc는 곱으로부터 발생된 라운딩 가수에 사용되는 스티키 비트를 제공한다.
지수 파이프라인(200)의 스테이지 1은 차 δE를 결정하고 스테이지 2 동안 누산하기 위해 가수 Mc를 적절히 쉬프트하는데 필요한 제어 신호를 발생한다. 지수 Ea, Eb 및 Ec는 IEEE-754 포맷에 따른 잉여 127 값이다. 인버터(201, 202, 및 203)는 Ea-1, Eb-1 및 Ec-1의 2의 보수인 9-비트 신호 포맷을 발생하기 위해 지수 Ea, Eb 및 Ec를 표현하는 8-비트 신호의 각 MSB를 반전시키고 복사한다. 래치(204와 205)는 본 실시예에서 자리올림 보류 가산기인 가산기(210)의 두개 입력 포트에 Ea-1과 Eb-1을 표현하는 9-비트 신호를 제공한다. 인버터(207)는 가산기(210)에 -Ec를 표현하는 신호를 인가하기 위해 Ec-1을 표현하는 9-비트 신호의 1의 보수를 수행한다. 가산기(210)는 (Ea+Eb)-(Ec+2) 또는 -δE-2를 표현하는 합 신호 S0와 자리올림수 신호 C0를 발생한다. 가산기(211, 212 및 213)은 신호 S0와 C0를 각각 29, 2 및 -46을 표현하는 신호와 결합한다. 만일 δE가 27이상이면 가산기(211)로부터의 합 S1은 음이다. 만일 δE이 제로 미만, 이상 또는 같으면, 가산기(212)로부터의 합 S2은 각각 음, 양 또는 제로이다. 만일 δE가 -49미만이면, 가산기(213)로부터의 합 S3은 양이다.
만일 δE가 0보다 작거나 같으면, 범위 선택 회로(217)는 쉬프터(720)로 하여금 Mc를 27 비트 위로 쉬프트시키게 하는 신호 ALIGN27을 어써트한다. 멀티플렉서(218)는 가변 쉬프트에 대한 카운트를 선택한다. 클래스 1의 경우, 가변 쉬프트는 제로 비트(쉬프트 없음)이다. 클래스 2의 경우, 가변 쉬프트는 27-δE 비트 우 쉬프트이고 합 S1은 쉬프트에 대한 카운트를 가리킨다. 클랙스 3와 4의 경우, 가변 쉬프트는 크기 -δE만큼 우이고, 합 S2는 쉬프트에 대한 카운트를 가리킨다. 클랙스 5에서, 제 2 쉬프트는 48 비트만큼 우 쉬프트이다.
지수 파이프라인(200)의 스테이지 1은 또한 (Ea+Eb)를 표현하는 신호를 발생하기 위해 Ea-1 및 Eb-1를 표현하는 9-비트 신호를 더하는, 자리올림수가 1로 세트된 가산기(220)를 또한 구비한다. 멀티플렉서(222)는 가산기(220)로부터의 신호 또는 δE가 제로보다 작거나 또는 큰가에 따라 Ec-1를 표현하는 신호중 어느 하나를 선택한다. 멀티플렉서(222)로부터의 출력 신호 ER1은 래치(224)를 통해 지수 파이프라인(200)의 스테이지 2에 있는 래치(231)로 전달된다. 지수 파이프라인(200)의 스테이지 2에서, 지수는 증가되고, 두개의 대체 지수 값 ER1 및 ER1+3은 래치(232와 233)를 통해 지수 스테이지(200)의 세번째 스테이지로 전달된다.
가수 파이프라인(100)의 정렬기(120)로부터의 정렬된 100-비트 가수는 100-비트 래치(126)에 저장되고, 거기서부터 변환기(XOR 게이트)(128)의 제 1 포트에 어써트된다. 누산이 곱 A*B로부터 값 C를 뺄 때, 변환기(128)는 정렬된 값을 반전(즉, 2의 보수를 수행한다.)시킨다. 다음에 변환기(128)는 정렬되고 가능하게 반전된 100-비트 값 XC를 파이프라인(100)의 스테이지 2에 있는 래치(133)으로 전달한다.
가수 파이프라인(100)의 스테이지 2는 곱셈기(110)로부터 곱 Ma*Mb로서 정렬된 비트의 누산을 수행하고, 곱 Ma*Mb로서 정렬되지 않은 부분을 전달하거나 또는 증가시킨다. 3:2 자리올림수-세이버 가산기(130)는 래치(131 및 132)로부터의 50-비트 합과 자리올림수 신호 SUM 및 CRY를 신호 XC의 일치하는 비트 25 내지 74와 결합한다. 가산기(140)는 스테이지 3으로 전달될 결과의 50 비트를 발생하기 위해 가산기(130)로부터의 합과 자리올림수 신호 SUMX 및 CRYX를 더한다. 가산기(130 및 140)는 결과의 비트 75 내지 99를 바꿀 수 있는 출력 자리올림수 비트를 처리하여야 한다. 신호 SUM 또는 CRY가 음수를 표현할 때에도 곱 Ma*Mb가 양이기 때문에, 부호 비트의 취소를 위해 거짓 자리올림수 아웃이 발생된다. 이 거짓 자리올림수는 신호 XC의 비트 75와 결합되어서는 안된다. 그러나, 다른 누산은 정확한 결과를 구하기 위해 비트 75와 결합되어야 하는 유효 자리올림수를 발생한다.
도 8a 는 도 6a 에 도시된 덧셈에 의해 제공된 바와 같이 곱셈기(110)가 부호가 있는 50-비트 값을 표현하는 합과 자리올림수 신호 SUM 및 CRY를 발생할 때 가산기(130 및 140)의 부분에서의 자리올림수 교정 회로를 도시한다. 도시된 가산기(130)의 부분은 신호 SUM 및 CRY로부터의 비트 48, 47 및 46와 신호 XC의 비트 73, 72 및 71를 각각 처리하는 세개의 3:2 자리올림수 세이브 가산기(836, 837 및 838)를 구비한다. 가산기(130)는 신호 SUM 및 CRY의 비트 0 내지 45와, 신호 XC의 비트 25 내지 70에 대해 유사한 3:2 가산기를 구비한다. 가산기(130)는 가산기(140)가 합 RSUM을 발생하기 위해 결합하는 자리올림수 및 세이브 신호 SUMX 및 CRYX를 발생한다. 도 8a 에 도시된 가산기(140)의 부분은 합 RSUM의 비트 48, 47 및 46에 대한 세개의 전 가산기(848, 847 및 846)를 구비한다. 가산기(140)은 또한 합 RSUM의 비트 49에 대한 반 가산기(859)를 구비한다. 반 가산기는 신호 SUM 및 CRY의 부호 비트(비트 49)가 무시되고 신호 XC의 비트 74가 가능한 자리올림수와 결합되기 때문에 충분하다.
만일 곱셈기(110)로부터의 신호 CRY 또는 SUM이 음수를 표현하면, 신호 CRY 및 SUM의 덧셈은 음의 부분 합에 대해 부호 비트 49를 소거하기 위해 비트 48로부터 자리올림수 아웃을 발생한다. 그러나, 신호 CRY(또는 SUM)의 비트 48은, 50-비트 신호 CRY 및 SUM이 두개의 24-비트 부호없는 값을 곱한 결과인 부호가 있는 값을 표현하고 따라서 상위 정보의 48 비트 만을 포함하기 때문에 신호 CRY(또는 SUM)의 부호 비트 49와 항상 같다. 두개의 부호없는 24-비트 수의 곱으로부터 신호 CRY 및 SUM의 원점은 많은 조건을 비트 CRY48및 SUM48에 위치시킨다. 특히, 신호 CRY와 SUM을 더한 결과가 양이고 두개의 음수의 덧셈이 음이어여 하기 때문에 비트 CRY48및 SUM48중 기껏 하나만이 1이다. 만일 비트 CRY48및 SUM48중 어느 하나만이 1이면, 신호 CRY와 SUM를 더하면 자리올림수 비트 49를 발생하여 음의 값의 부호 비트를 소거하고, 비트 48 내지 49로부터 제 1 자리올림수는 곱셈기(110)에 사용된 부호있는 산술의 결과로서 무시된다. 그러나, 만일 비트 CRY48및 SUM48중 어느 하나가 1이면, 비트 48로부터의 제 2 자리올림수는 결과의 비트 49가 증가되게 하는 유효 자리올림수이다.
본 발명에 따르면, 가산기(830)와 연결된 논리 게이트(810 및 820)는 부호가 있는 산술의 결과가 아닌 가산기(848)로부터의 자리올림수 비트만이 가산기(859)로 전파하도록 AND 게이트(860)를 제어한다. 도 8a 의 실시예에서, NOR 게이트(810)는 신호 CRY48및 SUM48에 결합된 입력 단자와 XOR 게이트(820)의 입력 단자에 결합된 출력 단자를 구비한다. XOR 게이트(820)의 제 2 입력 단자는 가산기(838)의 자리올림수 출력에 결합되고, XOR 게이트(820)의 출력 단자는 AND 게이트(860)의 입력 단자에 결합된다. AND 게이트(860)의 제 2 입력 단자는 가산기(848)로부터의 자리올림수 비트를 수신하도록 결합되고, AND 게이트(860)의 출력 단자는 가산기(859)에 교정된 자리올림수 비트를 제공하도록 결합된다. 만일 비트 CRY48및 SUM48가 1이면(즉, 만일 신호 SUM과 CRY중 하나가 음의 값을 표현하면), NOR 게이트(810)로부터의 출력은 0이고, 가산기(838)는 비트 XC73가 1이면 제 1 자리올림수 CRYX49를 어써트한다. 어써트될 때 CRYX49는, 만일 가산기(848)가 AND 제 2 자리올림수 비트를 발생하면 자리올림수 비트는 게이트(860)를 통해 전파하도록 XOR 게이트(820)로 하여금 AND 게이트(860)의 한 입력 단자를 1로 상승시키게 한다. 만일 CRY48및 SUM48모두가 0(즉, 신호 CRY 및 SUM이 양의 값을 나타내면)이면, NOR 게이트(810)로부터의 출력 신호는 1이 되어, 가산가(838)가 비트 CRYX49를 어써트하지 않기 때문에 SUM48가 XOR 게이트(820)로부터의 출력 신호를 1이 되게 한다. AND 게이트(860)는 발생되면 가산기(848)로부터 자리올림수 비트를 전파한다.
도 8a 의 자리올림수 교정 논리회로는 다양하게 변형될 수 있다. 예를 들어, NOR 게이트(810)는 비트 CRY48및 SUM48중 하나만이 1일 수 있기 때문에 XNOR 게이트로 교체될 수 있다. 또한, 신호 XC는, 가산기(859)로 자리올림수를 전파할 지를 선택할 때 자리올림수 교정 논리회로가 예를 들어 자리올림수 CRYX49대신에 비트 XC73를 사용할 수 있도록 가산기(130)로부터의 자리올림수가 존재하는 지를 가리킨다. 부수적으로, 자리올림수 교정 논리회로는 비트 49로부터의 자리올림수 비트(즉, 가산기(140)로부터)의 전파에 적용될 수 있다.
도 8b 는 가산기(140)로부터의 자리올림수 아웃의 교정을 위한 자리올림수 교정 논리회로의 실시예를 도시한다. 도 8b 의 자리올림수 교정 논리회로는 교정 논리회로가 비트 49와 연관된 가산기에 접속되고 XOR 게이트(820)가 비트 CRYX49보다는 비트 XC74를 수신하도록 결합된 입력 단자를 갖는 OR 게이트(825)로 교체된다. 3:2 자리올림수 세이브 가산기(839)로부터의 자리올림수 비트 CRYX50는 접속되지 않는다. 만일 비트 CRY49또는 SUM49가 1(즉, 신호 SUM 및 CRY중 하나가 음의 값을 나타내면)이면, NOR 게이트(810)로부터의 출력은 0이고, OR 게이트(825)로부터의 출력 신호는 신호 XC74가 1일 때에만 1이다. 따라서, 만일 신호 SUM과 CRY중 하나가 음의 값을 나타내면, AND 게이트(860)는 비트 XC74가 가산기(839)로부터 거짓 자리올림수를 유발하는 1일 때에만 가산기(849)로부터 자리올림수를 전파한다. 비트 SUM49와 CRY49가 모두 0이면(즉, 신호 SUM 및 CRY가 양의 값을 나타내면), XOR 게이트(810)로부터의 출력은 1이 되어 OR 게이트(825)로부터의 출력 신호가 1이 되게 하고, AND 게이트(860)는 자리올림수가 발생되면 가산기(849)로부터의 자리올림수를 전파한다.
만일 곱셈기(110)가 도 6b 에 도시된 것과 같은 부호 교정 부분 곱을 이용하면, 신호 SUM과 CRY의 덧셈은 비트 49로부터의 자리올림수가 되는 결과가 된다. 도 8a 및 도 8b 에 도시된 것과 같은 자리올림수 교정 논리회로는 또한 부호 교정 부분 곱을 위해 자리올림수를 교정한다. 예를 들어, 만일 비트 SUM49와 CRY49모두 또는 이들중 어느 하나가 1이면, 비트 49로부터의 첫번째 자리올림수는 부호 교정의 결과로서 무시되어야 하고, 두번째 자리올림수만이 가산기(140)로부터 전파되어야 한다. 만일 비트 SUM49와 CRY49중 어느 것도 1이 아니면, 비트 49로부터의 임의의 자리올림수가 가산기(140)로부터 전파되어야 한다. 도 8b 의 자리올림수 교정 논리회로는 이와 같은 기능을 정확하게 수행한다. 도 8a 의 자리올림수 교정 논리회로는 또한 게이트(810, 820 및 830)가 비트 48을 위한 가산기(838과 848) 보다는 비트 49를 위한 가산기(839 및 849)에 결합되어 있다면 가산기(859) 없이 사용될 수 있다.
도 8c 는 자리올림수 교정 논리회로가 AND 게이트(860)만을 구비하고 있는 본 발명의 실시예를 도시한다. 본 발명의 본 실시예는, 신호 SUM과 CRY를 생성하기 위해 부분 곱을 결합할 때에는 부호 교정과 연관된 자리올림수 아웃이 발생되지 않는 곱셈기와 함께 사용할 수 있다. 도 5 에 도시된 것과 같은 왈레스 트리 가산기를 갖는 곱셈기의 경우, 합 및 자리올림수 신호 SUM과 CRY를 발생할 때에는 비트 49로부터의 자리올림수 아웃은 결코 발생하지 않는다. 이와 같은 가산기로서, SUM49와 CRY49중 적어도 하나가 1과 같고, 신호 SUM, CRY, 및 XC를 가산할 때에는 거짓 자리올림수가 항상 발생된다. AND 게이트(860)는, 두개의 자리올림수 비트가 가산기(839)로부터 한개 그리고 가산기(849)로부터 한개 발생될 때에만 출력 자리올림수를 발생한다.
교정된 자리올림수 아웃은 래치(133)로부터 신호 XC의 비트 75 내지 99를 바꿀 수 있다. 가수 파이프라인(100)의 스테이지 2는 신호 XC의 최상위 25 비트 또는 최하위 25 비트중 어느 하나를 전송하기 위한 데이타 경로(160)를 구비한다. 데이타 경로(160)에서, 멀티플렉서(161)는 곱 A*B에 대한 값 C의 크기에 따라 최하위 비트 또는 최상위 비트중 어느 하나를 선택한다. 최상위 비트는 클래스 1및 2를 위해 클래스를 정렬하기 위해 선택된다. 클래스 3, 4 및 5의 경우, 누산은 비트 75에 자리올림수 아웃을 발생하지 않지만, 클래스 1 및 2를 정렬시키기 위해, 가산기(140)로부터의 자리올림수 아웃은 증가기(162)가 최상위 비트 75 내지 99를 증가시킬 것을 필요로 할 수 있다. 클래스 3, 4 및 5의 경우, 값 MC가 XOR 게이트(128)에 의해 1의 보수로 될 때, 증가기(162)는 2의 보수 변환을 완료한다. 따라서, 멀티플렉서(161)의 출력은 증가기(162)와 멀티플렉서(163)의 입력에 결합된다. 증가기(162)는 멀티플렉서(161)로부터 25-비트 입력 값에 1을 더하는 덧셈을 계산하고, 그 합을 멀티플렉서(163)의 제 2 입력에 공급한다. 멀티플렉서(163)는 클래스 1 또는 2에서 가산기(140)로부터의 자리올림수 아웃 비트가 존재하거나 또는 가수 Mc가 클래스 3, 4 및 5에서 1로 보수로 되었을 때 증가된 값을 선택한다. 멀티플렉서(161)는 값 C가 곱 A*B미만일 때 신호 XC의 최하위 비트를 선택하고, 이들 최하위 비트는 결과를 라운딩하기 위한 값 STICKYA를 가리킨다. 멀티플렉서(163)로부터 선택된 비트는 파이프라인의 스테이지 3에서 래치(165)를 통해 래치(171)로 전달된다.
가산기(130 및 140) 및 데이타 경로(160) 이외에, 가수 파이프라인(100)의 스테이지 2는 선두의 1/제로 예측기(150)를 구비한다. 공동 소유의 미국특허출원 제 미상, attorney docket No. 미상3, 발명의 명칭 Combined Leading One and Zero Anticipator는 파이프라인(100)에 사용하기에 적합한 선두 제로 예측기와 선두 1/제로 예측기를 기술한다. 선두 1/제로 예측기(150)는 곱셈기(110)에 의해 발생된 곱에 대응하는 범위에서 선두(즉, 연속하는 최상위)의 동일한 비트의 카운트 LZWA를 예측한다. 카운트 LZWA는 래치(151)에 저장되고, 그곳으로부터 가수 파이프라인(100)의 스테이지 3의 래치(173)으로 전달된다.
스테이지 3은 쉬프터(170)와 제어 논리회로(176)을 구비하는 정규화 회로를 구비한다. 정화화 회로는 스테이지 2에서 결정된 가수의 거친 정규화를 수행한다. 스테이지 2로부터의 75 비트는 도 7 에 도시된 바에 따라 쉬프터(170)로 로드된다. 특히, 가산기(140), 래치(141), 및 래치(172)로부터의 50 비트는 쉬프터(170)의 중앙부(772)로 로드된다. 래치(171)로부터의 25 비트는 쉬프터(170)의 부분(771)로 로드된다.
IEEE-754 데이타 포맷에 따르면, 결과에 대한 가수는 최상위 비트가 암시된 1이고 23 비트가 가수의 분수부를 나타내는 24-비트 정규화된 형식을 갖는다. 쉬프터(170)는 부호없는 최상위 비트가 쉬프터(170)의 비트 74와 정렬될 때까지 로드된 값을 좌 쉬프트한다. 본 발명의 특징에 따르면, MAC 연산은 Ec-(Ea+Eb)이고 쉬프터(170)가 정규화 클래스에 따라 선택된 쉬프트를 수행하는 δE 차이에 따라 정규화 클래스로 나뉘어진다. 표 3은 결과로 나타나는 가수를 적절히 정규화하는데 필요한 정규화 클래스와 쉬프트 카운트를 가리킨다.
정규화 클래스
클래스 조건 정규화 시프트 카운트
1 δE 1 27 쉬프트 없음
2 27 δE 0 27 - δE + LZWA
3 δE = 0 27 + LZWA
4 0 δE 1 -48 27+LZWA
5 -48 δE 27
정규화 제어 논리회로(176)은 거친 정규화에 필요한 쉬프트를 선택하기 위해 MAC 연산을 위해 카운트 LZWA, 차 δE, 및 정규화 클래스를 이용한다. 클래스 1의 경우, 값 C는 곱 A*B보다 훨씬 커 가수 Mc에 있는 비트가 효과적으로 결과로 나타나는 가수가 되게 된다. 부(772)에 있는 비트는 Mc의 임의의 비트보다 하위의 비트이고 가수 Mc에 대해 그 크기를 가리키기 위해 정확한 위치에 반드시 놓이지 않는다. 이와 같은 클래스의 경우, 부(721)에 있는 25 비트는 비트 99와 좌로 정렬된 가수 Mc를 포함하고, 정규화를 위해 어떠한 쉬프트도 필요하지 않다.
정규화 클래스 2의 경우, 가수 Mc로부터의 비트는 부분(771)에 있을 수 있지만, 가수 Mc는 비트 99와 좌로 정렬되지 않는다. 곱셈기(110)로부터의 비트는 가수 Mc에서 최하위 비트를 중복하지도 바꾸지도 않고, 가수 Mc에 있는 비트에 대해 정확한 위치에 놓인다. 최하위 비트로부터의 자리올림수는 최상위 비트를 좌로 1비트 쉬프트할 수 있다. 27-δE 비트 좌 쉬프트는 차 δE가 1보다 크면 최상위 비트를 좌로 정렬시킨다. 이하 서술되는 미세한 정규화는 이와 같은 경우에 적용된다. 만일 δE=1이면, 누산은 가수 Mc의 최상위 비트를 취소할 수 있고, 선두 제로/1 카운트에 따른 부가적인 쉬프트가 필요하다.
클래스 3와 4의 경우, 가수 Mc의 최상위 비트는 곱셈기(110)로부터의 곱의 최상위 비트 보다 작거나 같은 크기이다. 만일 곱 Ma*Mb의 최상위 비트가 가수 Mc와 누산함으로써 변경되지 않으면, 쉬프터(170)에 있는 비트 72(즉, 래치(172)로부터의 비트 47)는 결과로 나타나는 가수의 최상위 비트이고, 좌 쉬프트 27가 거친 정규화를 위해 필요하다. 그러나, 곱 Ma*Mb와 가수 Mc 간의 취소는 양의 결과에 대해 일련의 선두 제로 또는 음의 결과에 대해 일련의 선두 1을 생성할 수 있고, 쉬프터(170)에서 좌 정렬하기 위해 카운트 LZWA로 가리켜진 바와 같이 부수적인 좌 쉬프트가 필요하다.
클래스 5의 경우, 곱 A*B는 값 C보다 훨씬 커 어떠한 취소도 발생하지 않는다. 가수 Mc는 라운딩을 위한 것을 제외하고 무시될 수 있다. 쉬프터(170)에 있는 비트 72(즉 래치(172)로부터의 비트 47)는 결과로 나타나는 가수의 최상위 비트이고, 27 비트 좌 쉬프트가 거친 정규화를 위해 수행된다.
거친 정규화 후에 쉬프터(170)로부터의 25 최상위 비트는 쉬프터(170)에서 변환기(177)로 지나간다. 만일 그 결과가 음이면, 변환기(177)는 1의 보수를 수행하여 그 결과를 변환하고, 신호 SIGN_MAN이 변환 이전의 가수의 부호를 가리키기 위해 부호 파이프라인(300)(도 3 참조)의 스테이지 3으로 전달된다.
라운딩 논리회로(180)은 가수가 증가되어야(라운드 업) 하는지 또는 말아야 하는지를 바로 인접하는 비트와 스티키 비트로부터 결정한다. 라운딩 모드 신호 R_ MODE와 라운딩 부호 신호 R_SIGN는 IEEE-754 표준과 일치하여 수행된 라운딩 종류를 선택할 수 있다. 라운딩 논리회로(180)은 본 발명에서 중요하지 않으며, 라운딩 논리회로(180)은 기술분야에 공지된 임의 종류의 라운딩 논리회로일 수 있다.
쉬프트 논리회로(191)은 암시된 1(최상위 비트)을 제거하기 위해 거칠게 정규화된 가수를 좌로 1비트 쉬프트하고, 멀티플렉서(192)는 쉬프트 되거나 또는 쉬프트되지 가수중 어느 하나를 선택한다. 특히, 만일 거칠게 정규화된 가수의 MSB가 제로이면, 멀티플렉서(192)는 거친 정규화가 이미 최상위 비트를 제거하였기 때문에 쉬프트 되지 않은 버젼을 선택하고, 지수 교정이 필요하다는 것을 가리키기 위해 지수 파이프라인(200)의 스테이지 3으로 신호가 전달된다. 증가기(193)는 멀티플렉서(192)에 의해 선택된 가수를 증가시키고, 멀티플렉서(194)는 가수가 라운드 될 것인 지와 변환기(177)에 의해 변환되기 전에 가수가 음이었는 지에 따라 증가기(193)로부터 증가된 값 또는 멀티플렉서(192)로부터 증가되지 않은 값중 어느 하나를 선택한다. 만일 증가가 자리올림수를 유발하면, 신호가 지수 파이프라인(200)에 전달된다. 마지막 멀티플렉서(195)는, 지수 파이프라인(200)이 지수 오버플로우 또는 언더플로우를 검출하면 멀티플렉서(194)로부터 산출된 가수인 출력 가수 값 RT, 최대 값 MAX, 또는 최소 값 0을 선택한다.
자수 파이프라인(200)의 스테이지 3은 MAC 연산이 클래스 1 또는 2일 때의 지수 값인 출력 신호 ER2, 또는 MAC 연산이 클래스 3, 4 또는 5일 때 ER+3를 갖는 제 1 멀티플렉서(240)를 구비한다. 누산이 정규화 클래스 3, 4 및 5를 유발하는 취소를 교정하기 위해, 멀티플렉서(253)는 래치(173)로부터 카운트 LZWA의 반전을 선택하고, 가산기(251 및 252)는 지수 ER2에서 카운트 LZWA를 뺀다. 정규화 클래스 1과 2의 경우, 멀티플렉서(253)는 0을 선택하고, 가산기(251 및 252)는 지수 ER2에 0을 더한다. 가산기(251 및 252)는, 가산기(251)가 입력 자리올림수를 가지며 가산기(252)에 의해 발생된 합보다 큰 합 1을 발생한다는 점에서 다르다. 멀티플렉서(260)는 가수 파이프라인(100)에서 미세한 정규화가 쉬프트 논리회로(191)로부터 출력 값을 선택하는 지에 따라 가산기(251 또는 252)의 출력 신호로부터 선택된 출력 신호 ER3를 갖는다. 증가기(271)는 증가기(193)가 자리올림수를 유발할 때 지수를 교정한다. 인버터(273)는 2의 보수 포맷에서 IEEE-754 데이타형하의 지수에 필요한 잉여의 127 포매으로 ER3를 변환시킨다. 예외 검출 논리회로(280)은 언더플로우와 오버플로우 상태를 검출한다.
도 3 은 부호 파이프라인(300)를 도시한다. 부호 파이프라인(300)의 스테이지 1은 입력 래치(301 내지 306), XOR 게이트(310과 311), 및 출력 래치(321 내지 325)를 구비한다. 입력 래치(301, 302, 및 303)는 값 A, B 및 C의 각 부호 비트 SA, SB, 및 SC를 저장한다. 입력 래치(304, 305 및 306)는 곱셈 연산, MAC 장치가 다른 모드로 동작(즉, A*B 및 C에 대한 부호가 다를 때에는 더하거나 또는 A*B 및 C에 대한 부호가 동일할 때에는 빼는)한다는 것, 및 누산이 곱 A*B로부터 값 C를 빼는 지를 가리키는 신호 MPY, FMODE 및 ABSUBC를 저장한다. XOR 게이트(310)는 래치(301 및 302)에 결합된 입력 단자를 가지며, 만일 곱 A*B가 양이면 0을 그리고 만일 곱 A*B가 음이면 1인 신호 SP를 발생한다. XOR 게이트(311)는 래치(303)에 결합된 입력 단자를 가지며, XOR 게이트(310)의 출력 단자는 만일 곱 A*B와 값 C가 동일한 부호를 가지면(또는 그렇지 않으면) 0(또는 1)인 신호 DIFF_SIGN을 발생한다. 출력 래치(321 내지 325)는 신호 SP, DIFF_SIGN, MPY, FMODE, 및 ABSUBC를 스테이지 2로 전달한다.
부호 파이프라인(300)의 스테이지 2는, 파이프라인(100과 200)를 통해 MAC 연산의 진행과 동기하여 스테이지 3에서 신호 SP, DIFF_SIGN, MPY, FMODE, 및 ABSUBC를 입력 래치(351 또는 355)로 전달하는 입력 래치(341 내지 345)와 출력 래치(341 내지 345)를 포함한다. 스테이지 3에서, 멀티플렉서(361 내지 363)는 신호 SP 또는 신호 SP의 완료를 나타내는 신호중 어느 하나인 결과로 나타나는 부호 SR를 선택한다. 멀티플렉서(361)는 만일 FMODE와 DIFF_SIGN가 제로이면 신호 SP를 선택하고, 만일 FMODE가 1과 같으면 멀티플렉서(362)로부터 출력된 신호를 선택하고, 그리고 만일 FMODE가 1과 같지 않으면 멀티플렉서(363)으로부터 출력된 신호를 선택한다.
본 발명에 따른 가산기는 거짓 자리올림수를 억제하기 위해 자리올림수 교정 논리회로를 구비함으로써, 거짓 자리올림수가 누산되고 있는 값의 상위의 비트에 영향을 미치는 것을 방지한다.
본 발명을 특정의 바람직한 실시예에 관련하여 도시하고 설명하였지만, 본 발명이 그에 한정되는 것은 아니다. 특히, 상기 설명의 대부분이 IEEE-754 데이타 포맷에 초점을 두고 있지만, 본 발명의 대체 실시예는 다른 부동 소수점 데이타 포맷에도 적용할 수 있다. 다른 포맷의 경우에는, 기술분야의 숙련자는 알 수 있듯이 상기 실시예에 서술된 비트 위치가 다를 수 있다. 따라서, 이하의 특허청구의 범위에 의해 마련되는 본 발명의 정신이나 분야를 이탈하지 않는 한도내에서 본 발명이 다양하게 개조 및 변화될 수 있다는 것을 당 업계에서 통상의 지식을 가진 자는 용이하게 알 수 있다.

Claims (13)

  1. 곱셈 및 누산 장치에 있어서,
    제 1 및 제 2 출력 신호로 표현된 값의 합이 곱셈기에 의해 곱해질 제 1 및 제 2 값의 곱과 같으며, 제 1 출력 신호와 제 2 출력 신호 각각을 위한 제 1 출력 포트와 제 1 출력 포트를 갖는 곱셈기;
    상기 곱셈기의 제 1 출력 포트와 제 2 출력 포트에 각각 결합된 제 1 입력 포트와 제 2 입력 포트를 갖는 자리올림 보류 가산기, 곱과 누산될 제 3 값을 표현하는 데이타 신호의 제 1 부분을 수신하도록 결합된 제 1 입력 포트, 및 상기 자리올림 보류 가산기에 의해 발생된 합 비트와 자리올림수 비트 각각을 위한 제 1 출력 포트와 제 2 출력 포트를 구비하는 제 1 가산기;
    상기 자리올림 보류 가산기의 상기 제 1 및 제 2 출력 포트에 결합된 제 1 및 제 2 입력 포트를 갖는 제 2 가산기; 및
    상기 곱셈기로부터의 상기 출력 신호로 표현된 값의 덧셈으로 인한 자리올림수 비트를 억제하고 상기 제 1 및 제 2 가산기에 의해 발생되지 않는다면 상기 자리올림수 비트를 전파하기 위해 상기 제 1 및 제 2 가산기에 결합된 논리회로;를 구비하는 것을 특징으로 하는 곱셈 및 누산 장치.
  2. 제 1 항에 있어서,
    상기 제 1 부분에 있는 비트보다 상위인 제 3 값의 비트를 표현하는 데이타 신호의 제 2 부분에 결합된 증가기; 및 상기 데이타 신호의 제 2 부분을 수신하도록 결합된 제 1 입력 포트와 상기 증가기의 출력 포트에 결합된 제 2 입력 포트를 갖는 멀티플렉서를 더 구비하고, 상기 제 1 및 제 2 가산기로부터 전파된 자리올림수 비트는 상기 곱셈기에 의한 신호 선택을 제어하는 것을 특징으로 하는 곱셈 및 누산 장치.
  3. 제 2 항에 있어서,
    상기 논리회로는 상기 제 1 가산기에 결합된 제 1 입력 단자, 상기 제 2 가산기로부터의 자리올림수 출력에 결합된 제 2 입력 단자, 및 상기 멀티플렉서의 선택 단자에 결합된 출력 단자를 구비하는 것을 특징으로 하는 곱셈 및 누산 장치.
  4. 제 1 항에 있어서,
    상기 논리회로는 상기 제 1 가산기에 결합된 제 1 입력 단자, 상기 제 2 가산기로부터의 자리올림수 출력에 결합된 제 2 입력 단자, 및 논리회로가 전파하는 자리올림수 비트를 위한 출력 단자를 갖는 AND 게이트를 구비하는 것을 특징으로 하는 곱셈 및 누산 장치.
  5. 제 4 항에 있어서,
    상기 AND 게이트의 제 1 단자는 상기 자리올림 보류 가산기의 제 2 출력 포트의 최상위 비트에 결합되는 것을 특징으로 하는 곱셈 및 누산 장치.
  6. 제 4 항에 있어서,
    상기 자리올림 보류 가산기의 상기 제 1 및 제 2 입력 포트에 각각 결합된 제 1 및 제 2 입력 단자를 갖는 제 1 논리 게이트; 및 상기 제 1 논리 게이트의 출력 단자에 결합된 제 1 입력 단자와 상기 AND 게이트의 입력 단자에 결합된 출력 단자를 갖는 제 2 논리 게이트를 더 구비하는 것을 특징으로 하는 곱셈 및 누산 장치.
  7. 제 6 항에 있어서,
    상기 제 2 논리 게이트는 XOR 게이트이고 상기 자리올림 보류 가산기의 상기 제 2 출력 포트의 최상위 비트에 결합된 제 2 입력 단자를 갖는 것을 특징으로 하는 곱셈 및 누산 장치.
  8. 제 7 항에 있어서,
    상기 제1 논리 게이트는 NOR 게이트인 것을 특징으로 하는 곱셈 및 누산 장치.
  9. 제 6 항에 있어서,
    상기 제 2 논리 게이트는 OR 게이트이고 상기 자리올림 보류 가산기의 상기 제 3 입력 포트에 결합된 제 2 입력 단자를 갖는 것을 특징으로 하는 곱셈 및 누산 장치.
  10. 제 7 항에 있어서,
    상기 제 1 논리 게이트는 NOR 게이트인 것을 특징으로 하는 곱셈 및 누산 장치.
  11. 제 1 항에 있어서,
    상기 제 1 및 제 2 값은 부호없는 양의 값이고, 상기 곱셈기의 상기 제 1 및 제 2 출력 신호로 표현된 가능한 값은 음의 값을 포함하는 것을 특징으로 하는 곱셈 및 누산 장치.
  12. 제 11 항에 있어서,
    상기 곱셈기의 상기 제 1 및 제 2 출력 신호는 부호가 확장된 포맷인 것을 특징으로 하는 곱셈 및 누산 장치.
  13. 제 11 항에 있어서,
    상기 곱셈기의 상기 제 1 및 제 2 출력 신호는 부호가 엔코드된 포맷인 것을 특징으로 하는 곱셈 및 누산 장치.
KR1019970029390A 1996-11-18 1997-06-30 자리올림수 교정을 갖는 휴즈된 부동 소수점 곱셈 및 누산 장치 KR100232962B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8/751,563 1996-11-18
US08/751,563 US5928316A (en) 1996-11-18 1996-11-18 Fused floating-point multiply-and-accumulate unit with carry correction

Publications (2)

Publication Number Publication Date
KR19980041776A true KR19980041776A (ko) 1998-08-17
KR100232962B1 KR100232962B1 (ko) 1999-12-01

Family

ID=25022566

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970029390A KR100232962B1 (ko) 1996-11-18 1997-06-30 자리올림수 교정을 갖는 휴즈된 부동 소수점 곱셈 및 누산 장치

Country Status (2)

Country Link
US (1) US5928316A (ko)
KR (1) KR100232962B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100929423B1 (ko) * 2002-10-11 2009-12-03 매그나칩 반도체 유한회사 부동소수점의 복합 연산 장치
KR20170138143A (ko) * 2016-06-07 2017-12-15 목원대학교 산학협력단 단일 곱셈-누산 방법 및 장치

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6243733B1 (en) * 1998-09-16 2001-06-05 Cirrus Logic, Inc. Correct carry bit generation
US6205461B1 (en) * 1998-09-18 2001-03-20 Ati International Srl Floating point arithmetic logic unit leading zero count using fast approximate rounding
US6732259B1 (en) 1999-07-30 2004-05-04 Mips Technologies, Inc. Processor having a conditional branch extension of an instruction set architecture
US7242414B1 (en) * 1999-07-30 2007-07-10 Mips Technologies, Inc. Processor having a compare extension of an instruction set architecture
KR100331846B1 (ko) * 1999-04-02 2002-04-09 박종섭 실수 연산기
US6542915B1 (en) * 1999-06-17 2003-04-01 International Business Machines Corporation Floating point pipeline with a leading zeros anticipator circuit
US6912559B1 (en) 1999-07-30 2005-06-28 Mips Technologies, Inc. System and method for improving the accuracy of reciprocal square root operations performed by a floating-point unit
US6714197B1 (en) 1999-07-30 2004-03-30 Mips Technologies, Inc. Processor having an arithmetic extension of an instruction set architecture
US6631392B1 (en) 1999-07-30 2003-10-07 Mips Technologies, Inc. Method and apparatus for predicting floating-point exceptions
US6697832B1 (en) * 1999-07-30 2004-02-24 Mips Technologies, Inc. Floating-point processor with improved intermediate result handling
US7346643B1 (en) 1999-07-30 2008-03-18 Mips Technologies, Inc. Processor with improved accuracy for multiply-add operations
US6446104B1 (en) * 1999-09-15 2002-09-03 Sun Microsystems, Inc. Double precision floating point multiplier having a 32-bit booth-encoded array multiplier
US6996596B1 (en) 2000-05-23 2006-02-07 Mips Technologies, Inc. Floating-point processor with operating mode having improved accuracy and high performance
US7212959B1 (en) * 2001-08-08 2007-05-01 Stephen Clark Purcell Method and apparatus for accumulating floating point values
US7035331B2 (en) * 2002-02-20 2006-04-25 Intel Corporation Method and apparatus for performing a pixel averaging instruction
US6978426B2 (en) * 2002-04-10 2005-12-20 Broadcom Corporation Low-error fixed-width modified booth multiplier
US7126991B1 (en) * 2003-02-03 2006-10-24 Tibet MIMAR Method for programmable motion estimation in a SIMD processor
US7490119B2 (en) * 2003-12-11 2009-02-10 International Business Machines Corporation High speed adder design for a multiply-add based floating point unit
US7720900B2 (en) * 2005-09-09 2010-05-18 International Business Machines Corporation Fused multiply add split for multiple precision arithmetic
US7809783B2 (en) * 2006-02-15 2010-10-05 Qualcomm Incorporated Booth multiplier with enhanced reduction tree circuitry
US7797366B2 (en) * 2006-02-15 2010-09-14 Qualcomm Incorporated Power-efficient sign extension for booth multiplication methods and systems
US8161090B2 (en) * 2008-12-05 2012-04-17 Crossfield Technology LLC Floating-point fused add-subtract unit
US9092213B2 (en) 2010-09-24 2015-07-28 Intel Corporation Functional unit for vector leading zeroes, vector trailing zeroes, vector operand 1s count and vector parity calculation
US8667042B2 (en) * 2010-09-24 2014-03-04 Intel Corporation Functional unit for vector integer multiply add instruction
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
US9122517B2 (en) 2012-06-11 2015-09-01 International Business Machines Corporation Fused multiply-adder with booth-encoding
US9996320B2 (en) * 2015-12-23 2018-06-12 Intel Corporation Fused multiply-add (FMA) low functional unit

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4969118A (en) * 1989-01-13 1990-11-06 International Business Machines Corporation Floating point unit for calculating A=XY+Z having simultaneous multiply and add
US5241493A (en) * 1991-12-16 1993-08-31 International Business Machines Corporation Floating point arithmetic unit with size efficient pipelined multiply-add architecture
JPH05216624A (ja) * 1992-02-03 1993-08-27 Mitsubishi Electric Corp 演算装置
US5471410A (en) * 1994-10-14 1995-11-28 International Business Machines Corporation Method and apparatus for sticky and leading one detection
US5550767A (en) * 1994-10-14 1996-08-27 Ibm Corporation Method and apparatus for detecting underflow and overflow

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100929423B1 (ko) * 2002-10-11 2009-12-03 매그나칩 반도체 유한회사 부동소수점의 복합 연산 장치
KR20170138143A (ko) * 2016-06-07 2017-12-15 목원대학교 산학협력단 단일 곱셈-누산 방법 및 장치

Also Published As

Publication number Publication date
US5928316A (en) 1999-07-27
KR100232962B1 (ko) 1999-12-01

Similar Documents

Publication Publication Date Title
KR100232962B1 (ko) 자리올림수 교정을 갖는 휴즈된 부동 소수점 곱셈 및 누산 장치
US5796644A (en) Floating-point multiply-and-accumulate unit with classes for alignment and normalization
EP0483864B1 (en) Hardware arrangement for floating-point addition and subtraction
KR100302686B1 (ko) 독립적인승산및가산명령어를이용하여고정밀도승산-가산연산을수행하기위한방법및장치
USRE39385E1 (en) Method and apparatus for performing mathematical functions using polynomial approximation and a rectangular aspect ratio multiplier
KR100264962B1 (ko) 결합된 선두 1 및 선두 제로 예상기
EP0356153B1 (en) Radix-2**n divider method and apparatus using overlapped quotient bit selection and concurrent quotient rounding and correction
JPH01112332A (ja) 乗算及び算術論理演算機能を組合わせて使用する浮動小数点ユニット
US5677861A (en) Arithmetic apparatus for floating-point numbers
US7668892B2 (en) Data processing apparatus and method for normalizing a data value
US5623435A (en) Arithmetic unit capable of performing concurrent operations for high speed operation
EP0416308A2 (en) Rectangular array signed digit multiplier
KR100241072B1 (ko) 부동소수점 감산시 대량소거의 병렬예측 및 연산방법과 장치
US7433911B2 (en) Data processing apparatus and method for performing floating point addition
US7552165B2 (en) Method and system to implement an improved floating point adder with integrated adding and rounding
US7401107B2 (en) Data processing apparatus and method for converting a fixed point number to a floating point number
US5117384A (en) Method and apparatus for exponent adder
JPH09204295A (ja) スティッキービット検出回路
Vázquez et al. A high-performance significand BCD adder with IEEE 754-2008 decimal rounding
Schwarz Binary Floating-Point Unit Design: the fused multiply-add dataflow
JPH04355827A (ja) 開平演算装置
JP2919386B2 (ja) 浮動小数点数検出装置および浮動小数点数検出回路
EP0332215B1 (en) Operation circuit based on floating-point representation
US7003540B2 (en) Floating point multiplier for delimited operands
US20030050948A1 (en) Floating-point remainder computing unit, information processing apparatus and storage medium

Legal Events

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

Payment date: 20120831

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20130902

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee