KR920003493B1 - 부동 소숫점 표기를 기초로 하는 연산회로 - Google Patents

부동 소숫점 표기를 기초로 하는 연산회로 Download PDF

Info

Publication number
KR920003493B1
KR920003493B1 KR1019890003010A KR890003010A KR920003493B1 KR 920003493 B1 KR920003493 B1 KR 920003493B1 KR 1019890003010 A KR1019890003010 A KR 1019890003010A KR 890003010 A KR890003010 A KR 890003010A KR 920003493 B1 KR920003493 B1 KR 920003493B1
Authority
KR
South Korea
Prior art keywords
selector
supplied
selectors
inputs
shifter
Prior art date
Application number
KR1019890003010A
Other languages
English (en)
Other versions
KR890015120A (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 KR890015120A publication Critical patent/KR890015120A/ko
Application granted granted Critical
Publication of KR920003493B1 publication Critical patent/KR920003493B1/ko

Links

Images

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
    • 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/485Adding; Subtracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3868Bypass control, i.e. possibility to transfer an operand unchanged to the output

Abstract

내용 없음.

Description

부동 소숫점 표기를 기초로 하는 연산회로
제1도는 부동 소숫점 표기법을 기초로 하는 종래 연산회로의 블록도.
제2a도와 제2b도는 IEEE 754-185 규격 부동 소숫점 표기형식등을 설명하는 도.
제3도는 본 발명의 바람직한 실시예의 블록도.
제4도는 제3도의 구성에 사용된 부호판정기의 블록도.
본 발명은 일반적으로 부동소숫점 표기를 기초로 하는 연산회로에 관한 것이다.
일반적으로, 고정 소숫점 표기법은 그로부터 표현되는 수들의 범위가 좁기 때문에 매우 큰수를 표기할 수 없다. 더욱이, 대부분의 경우에 고정 소숫점 표기법은 단지 정수만을 취급한다. 이러한 이유들 때문에, 과학 및 공업기술에서 사용하기 위한 연산에 필요한 실수들을 표기할 수 있는 다른 표기법이 요구되고 있다. 이러한 견지에서, 지수와 계수라 불리는 두수를 조합하는 부동 소숫점 표기법이 제안되고 있다.
일반적인 부동 소숫점 수는 다음과 같이 표기된다.
Figure kpo00001
여기서, 'R'은 밑수이고, 'S'는 부호를 나타낸다. 부호가 양이면 S=0, 부호가 음이면 S=1이다. 또한, 'm'과 'e'는 각각 계수와 지수이다. 부동 소숫점 표기법은 식(1)의 표기와 고정 소숫점 표기를 결합하므로써 구성된다. 계수의 길이는 유효 자릿수들의 길이를 결정한다. 이러한 이유 때문에, 정밀도가 높은 수치를 필요로 하는 경우에, 계수부의 길이가 증가된 표기법이 사용되고 있다.
부동 소숫점 연산은 정수연산에 비해 다이나믹 범위가 넓고, 정밀도가 높다. 특히, 최근의 추세는 각종의 하이-레벨 연산요구를 만족할 수 있는 고속 연산요구가 나타나는 경향이 있다.
2개의 입력 오포란드를 처리하기 위한 종래의 부동 소숫점 연산회로는 셀렉터들, 지수부 비교기, 쉬프터, 산술논리장치(이하부터는 간단히 ALU라 칭함) 및 보수기를 포함한다. 입력 오퍼란드들은 예외없이 지수부 비교기, 쉬프터, ALU 및 보수기를 통과한다. 그러나, 어떤 오퍼란드들은 모든 부분들을 통과할 필요가 없는 경우들도 있다. 특히, 쉬프터와 보수기에서 일어나는 지연량은 ALU 에서 일어나는 지연랑과 같다. 이러한 견지에서, 종래의 부동 소숫점 연산회로에서 처리하는 신호에는 지연이 존재한다. 이러한 지연은 고속 부동 소숫점 연산을 방해한다.
그러므로, 본 발명의 일반적인 목적은 상기의 단점들이 제거된 부동 소숫점 표기법을 기초로 하는 연산회로를 제공함에 있다.
본 발명의 특별한 목적은 부동연산을 고속으로 행할 수 있는 부동 소숫점 표기법을 기초로 하는 연산회로를 제공함에 있다.
본 발명의 상기 목적들은 각각 부동 소숫점 표기법에 의하여 부호, 지수부 및 계수부로 표기된 2개의 입력숫자를 처리하기 위한 연산회로로써 성취될 수 있으며, 상기 연산회로는 두 입력숫자의 지수부의 값들을 서로 비교하고 두 입력숫자중에 하나의 계수부에 대해서 필요한 쉬프트들 수를 결정하여 두 입력숫자의 지수부의 값들 사이의 크기에 관한 상호관계를 나타내는 비교결과를 발생하는 비교수단과, 비교수단으로부터 공급된 비교결과를 기초로하여 두 입력숫자의 계수부들을 선택적으로 출력하기 위한 선택수단과, 두 입력숫자들의 지수부의 값들이 서로 상이할 때 선택적으로 공급된 상대적으로 작은 값을 갖는 계수부를 비교수단에 의하여 결정된 쉬프트 수만큼 이동시키고, 두 입력숫자들의 지수부의 값들이 서로 동일할 때 첫번째 바이패스선을 통하여 두 입력숫자들의 지수부중에 하나를 출력하기 위한 쉬프터와 첫번째 바이패스선을 포함하는 쉬프터 수단과, 쉬프터 수단으로부터 공급된 계수부와 선택수단으로부터 공급된 다른 계수부 사이의 소정연산을 행하여 연산결과를 발생하는 연산수단과, 두 지수부의 값들이 서로 동일할 때 2의 보수기를 통하여 연산결과를 출력하고, 두 지수부들의 값들이 서로 다를 때 두번째 바이패스선을 통하여 연산결과를 출력하고, 그에 의하여 최종 연산결과를 출력하는 2의 보수기와 두번째 바이패스선을 포함하는 보수 계산수단으로 구성된다.
본 발명의 다른 목적들, 특징들 및 장점들은 수반된 도면들에 의거하여 상세히 서술함으로써 명백하게 될 것이다.
본 발명의 이해를 쉽게하기 위하여 종래의 부동 소숫점 연산회로에 대해서 서술하기로 한다.
제1도는 각각 밑수 2를 갖는 두 입력숫자 A와 B(오퍼란드 A와 B)에 대하여 연산을 행하는 종래의 부동 소숫점 연산회로의 예를 설명하고 있다. 입력 오퍼란드 A의 계수부가 Am이고 그의 지수부가 Ae이고, 입력 오퍼란드 B의 계수부가 Bm이고 그의 지수부가 Be라고 하면, 입력 오퍼란드 A와 B는 다음과 같은 수식으로 나타낼 수 있다.
Figure kpo00002
산술 논리연산에서는, 입력 오퍼란드 A와 B 각각의 계수 및 지수부를 나누어서 연산할 필요가 있다. 입력 오퍼란드 A와 B가 설명된 연산회로에 공급되면, 입력 오퍼란드 A와 B의 지수부 Ae와 Be는 지수부 비교기 1에 공급되며, 입력 A 오퍼란드 A와 B의 계수부 Am과 Bm은 셀렉터 2와 3의 각각에 공급된다. 계수부 비교기 1은 Ae와 Be를 비교하고, 그 비교결과에 따라 셀렉터 3은 상대적으로 작은 값을 갖는 계수부들 중의 하나를 선택하여 쉬프터 4에 공급한다. 쉬프터 4는 두 지수부들의 값이 서로 동일하게 되도록 공급된 계수부를 이동한다. 상대적으로 큰 값을 갖는 다른 계수부의 입력 오퍼란드는 셀렉터 2에 의하여 선택되어, 그 상태로 ALU5에 공급된다. ALU5는 셀렉터 2로부터 공급된 입력 오퍼란드와 쉬프터 4로부터 공급된 이동시킨 입력 오퍼란드에 대해서 산술 논리 연산을 행한다.
연산 결과가 음인 경우에 (대부분 감산), ALU5의 출력은 2의 보수 형태로 표시된다. 이러한 견지에서 2의 보수기 6은 2의 보수표시를 일반적인 표시로 변환하기 위해 설치된다(IEEE 754-1985 규격형식 : IEEE는 Institute of Electrical and Electronics Engineers 약자). 필요에 따라, 2의 보수기 6에는 정규화 및 라운딩 (rounging)에 사용하기 위한 회로가 연결될 수 있다.
현재, 널리 사용되고 있는 2진 부동 소숫점 규격은 IEEE, DEC, IBM 및 MIL-Std-1750A에 의하여 제안되고 있다. 규격들의 각각은 단-정밀도(Single -Precision) 부동 소숫점 데이타를 32비트의 워어드 길이로 표시하고 있다. 또한, 각 규격은 배-정밀도(double-Precision) 부동 소숫점 데이타를 지지하고 있다. 그러나, 그 중에는 확장형식의 단-정밀도와 확장형식의 배-정밀도중 다른 데이타 형식을 지지하는 것도 있다.
IEEE의 작업그룹은 "ANSI/IEEE Std 754-1985"에서 표시하는 규격을 이식성 (flexible)이 높은 부동 소숫점 소프트웨어용의 규격으로서 강력히 제안하고 있다. 이러한 제안은 널리 지지되고 있으며, 지금부터 만들어지는 하드웨어의 대부분에 기본이 된다고 생각되어진다.
그러나, 제1도의 연산회로는 모든 입력 오퍼란드들이 예외없이 지수부 비교기 1, 쉬프터 4, ALU 5 및 보수기 6을 통과하는 배열로부터 발생하는 상술된 단점들을 갖는다. 이것은 데이타 처리에서의 지연을 일으킨다. 즉, 몇몇의 오퍼란드들은 연산회로의 모든 부분들을 통과할 필요가 없다. 가장큰 양의 지연을 일으키는 크리티컬 경로(critical)는 지수부 비교기 1, 쉬프터 4, ALU 5 및 보수기 6으로 이루어지는 경로이다. 일반적으로, 쉬프터 4와 보수기 6은 ALU 5에서 일어나는 지연과 거의 같은 지연을 일으킨다.
본 발명의 바람직한 실시예를 서술하기 전에, IEEE 규격 부동 소숫점 표기형식을 지금부터 설명하기로 한다. 제2a도는 IEEE 규격에 정의된 단-정밀도 표기이다. 제2a도에 도시된 바와 같이, 단-정밀도 부동 소숫점 형식은 부호(1비트), 지수부(8비트), 및 계수부(23비트)로 구성한다. 단-정밀도 부동 소숫점 형식의 모든 비트들은 32비트로 되어 있다. 제2b도에 도시된 바와 같이, 배-정밀도 부동 소숫점 형식은 부호(1비트), 지수부(11비트) 및 계수부(52비트)로 된 64비트로 이루어져 있다. 각 형식의 계수부는 1. XXXXXXX(X는 임의의 수, 숫자 '1'은 숨겨진 비트이다)로 표기된다. 지수부는 바이어스된 지수이며, 항상 양의 값을 갖는다.
부동 소숫점 연산의 일반적인 절차를 제1도에 의거하여 서술하기로 한다. 연산 절차의 첫번째 단계에서, 입력 오퍼란드 A의 지수부 Ae와 입력 오퍼란드 B의 지수부 Be는 지수부 비교기 1에서 서로 비교되며, 지수부들의 값들이 서로 일치하는데 필요한 쉬프트의 수가 결정된다. 두번째 단계에서, 쉬프터 4에 의하여 이동이 행해진다. 입력 오퍼란드 A와 B를 다음과 같이 가정한다.
A : 계수부 Am : 1.1 XXXXXXXXX, 계수부 Ae : 0011
B : 계수부 Bm : 1.1 XXXXXXXXX, 계수부 Be : 0001
이 경우에, 입력 오퍼란드 B는 다음과 같이 이동된다.
A : 1.1 XXXXXXXXX expl1
B : +)
Figure kpo00003
세번째 단계에서, 산술 논리 연산이 ALU 5에서 행해진다.
가산에 있어서, 입력 오퍼란드 A와 이동된 입력 오퍼란드 B는 간단히 더해진다. 이동된 입력 오퍼란드 B의 계수부가 Bms로 표시될 때, 가산결과의 계수부 Cm은 다음과 같다.
Figure kpo00004
감산(음의 수들의 가산도 포함)은 다음과 같다.
Figure kpo00005
Figure kpo00006
식(6)에서, LSB는 최하위 비트이다.
네번째 단계는 보수기 6에 의한 2의 보수연산이다. 감산의 결과가 음인 경우에, 이 결과는 2의 보수로서의 출력이다. 그러므로, 결과를 IEEE 규격형식으로 맞추기 위해서, 2의 보수연산이 행해진다.
Figure kpo00007
식(6)으로부터
Figure kpo00008
본 발명은 특별히 감산에 대해서 개선점을 갖는다. 본 발명은 다음과 같이 요약된다. 두 입력 오퍼란드의 지수부들의 값들이 서로 다르면, 상대적으로 작은 절대치를 나타내는 계수부가 쉬프터에 공급되며, 입력 오퍼란드의 이동된 계수부는 지연없이 제공되는 다른 계수부와 함께 ALU에 공급된다. ALU의 출력은 항상 양이며, 이에 따라 보수기를 바이패스하도록 허용된다. 한편, 두 입력 오퍼란드의 지수부들의 값들의 값들이 서로 동일하면, 두 계수부는 쉬프터를 바이패스하여 ALU에 공급된다. ALU의 출력은 항상 보수기에 공급된다. 상기의 설명으로부터 쉬프터와 보수기 15중의 하나를 바이패스할 수 있다는 것을 알수 있다. 결과적으로, 전체의 지연시간이 매우 감소된다.
본 발명의 바람직한 실시예를 제3도의 제4도에 의거하여 서술하기로 한다.
제3도는 본 발명의 바람직한 실시예의 블록도이다. 제3도에 따라, 실시예의 연산회로는 지수부 비교기 10, 셀렉터 11, 12, 쉬프터 13, ALU 14, 및 2의 보수기를 포함하며, 제1도에 도시된 대응부분들과 동일한 부분들은 동일 가능을 갖는다.
이 실시예에는 바이패스 13a, 15a, 부호 판정기 16, 및 셀렉터 17, 18이 새로 추가되어 있다. 부호 판정기 16은 입력 오퍼란드 A와 B의 부호, 지수부 비교기 10으로 부터 공급된 비교결과, 및 ALU 14의 출력의 부호가 공급된다. 부호판정기 16은 지수부 비교기 10으로부터 공급된 크기에 대한 비교결과와 ALU 14로부터 공급된 계수에 관한 연산결과의 부호를 기초로하여, 출력단자 Tout를 통하여 출력되는 최종의 연산결과의 부호를 결정한다. 부호 판정기 16에 대하여 추가로 서술하면 다음과 같다. 부호 판정기 16은 두 지수부들의 값들을 비교하는 지수부 비교기 10과 함께 비교회로를 구성하며, 비교결과를 사용하여 계수부들 중의 하나에 관한 쉬프트(쉬프트가 없는 경우도 포함)들의 수를 결정한다.
입력 오퍼란드 A와 B는 셀렉터 11과 12에 인가된다. 셀렉터 12는 지수부 비교기 10에 의하여 제어되며, 항상 두 입력 오퍼란드 A와 B중에 상대적으로 작은 값의 지수부를 갖는 하나를 선택한다. 셀렉터 11은 지수부 비교기 10에 의하여 제어되며, 항상 두 입력 오퍼란드 A와 B중에 상대적으로 큰 값의 지수부를 갖는 하나를 선택한다.
셀렉터 17은 쉬프터 13과 ALU 14 사이에 끼워지며, 셀렉터 12로부터 바이패스선 13a를 통하여 공급되는 계수부와 쉬프트 13으로부터 공급되는 계수부가 공급된다. 지수부 비교기 10으로부터 공급되는 쉬프트들의 수를 기초로 하여, 셀렉터 17은 두 입력신호들 중에 하나를 선택하여 ALU 14에 공급한다. 상세하게는, 쉬프트들의 수가 제로이면, 셀렉터 17은 바이패스선 13a를 선택하여, 셀렉터 12의 출력은 직접 ALU 14에 공급된다. 한편, 쉬프트들의 수가 제로가 아니면, 셀렉터 17은 쉬프터 13의 출력을 선택한다. 즉, 바이패스선 13a가 쉬프터 13에 관해서 제공된다.
셀렉터 18은 ALU 14로부터 바이패스선 15a를 통하여 공급되는 연산결과와 2의 보수기 15의 출력신호 중에 하나를 선택한다. 셀렉터 18은 지수부 비교기 10으로부터 공급되는 쉬프트들의 수에 의하여 제어된다. 쉬프트들의 수가 제로이면, 셀렉터 18은 2의 보수기 15의 출력신호를 선택한다. 쉬프트들의 수가 제로가 아니면, 셀렉터 18은 ALU 14로부터 공급되는 연산결과를 선택한다. 즉, 바이패스선 15a가 2의 보수기 15에 관해서 제공된다.
부호 판정기 16에 대한 구성의 예를 제4도의 의거하여 서술하기로 한다. 제4도에 있어서, 부호 판정기 16은 5개의 셀렉터(SEL1-SEL5) 16-1, 16-2, 16-3, 16-4, 및 16-5로 구성되나 셀렉터 16-1과 16-3 모두에는 입력 오퍼란드 A와 B의 부호에 데이타 As와 Bs가 제공되나 셀렉터 16-1과 16-3은 지수부 비교기 10으로부터 공급되는 비교결과 CMPe에 의하여 제어된다. 비교결과 CMPe는 표 1에 도시된 바와 같이 2-비트 코우드로 표시된다.
[표 5]
Figure kpo00009
셀렉터 16-1은 CS1이 선택된 부호 데이타를 표시하는 표 2에 도시된 바와 같이, 비교결과 CMPe의 값들에 따라 두 부호 데이타 As와 Bs중에 하나를 선택한다.
[표 2]
Figure kpo00010
셀렉터 16-3은 CS2이 선택된 부호 데이타를 표시하는 표 3에 도시된 바와 같이, 비교결과 CMPe의 값들에 따라 두 부호 데이타 As와 Bs중에 하나를 선택한다.
[표 3]
Figure kpo00011
선택된 신호 CS1은 셀렉터 16-2에 공급되며, 선택된 신호 CS2는 셀렉터 16-4에 공급된다. 셀렉터 16-2와 16-4에는 비교결과 CMPe와, ALU 14로부터 공급되는 부호 데이타 ALUS가 제공된다.
셀렉터 16-2는, DS1이 선택된 부호 데이타를 나타내는 표 4에 도시된 바와 같이, 비교결과 CMPe의 값들에 따라 두 입력신호들 중에 하나를 선택한다.
[표 4]
Figure kpo00012
셀렉터 16-4는, DS2가 선택된 부호 데이타를 표시하는 표 5에 도시된 바와 같이, 비교결과 CMPe의 값들에 따라 두 입력신호들 중에 하나를 선택한다.
[표 5]
Figure kpo00013
셀렉터 16-5에는 신호 DS1과 DS2가 공급된다. 셀렉터 16-5는 ALU 14행해져야만 하는 연산의 형을 지시하기 위해 사용된 명령 코우드 CMD의 값에 따라 입력신호 DS1과 DS2 중에 하나를 선택한다. 명령코우드 CMD가 '0'이면, 가산이 선택된다. 한편, 명령 코우드 CMD가 '1'이면 감산이 선택된다.
표 6은 명령 코우드 CMD의 값들과 그들에 따라 선택되는 신호들의 간의 상호관계를 도시한다.
[표 6]
Figure kpo00014
실시예의 연산에 대하여 서술하기로 한다. 일반적으로, 부동 소숫점 표기법을 기초로 하는 연산에서, 2의 보수연산은 ALU 14의 출력이 음인 경우만을 필요로 한다. 이것은 감산(음수들의 가산도 포함)에만 한정된다. 그러므로, 실시예의 연산은 주로 감산에 대해서 서술된다.
입력 오퍼란드 A와 B의 지수부들의 값들이 서로 상이할 경우에(Ae=Be), 지수부들의 값들 사이의 크기에 대한 상호관계는 지수부 비교기 10에 의하여 판별된다. 지수부 비교기 10은 지수부들의 값들 사이의 크기에 대한 차이에 따라 쉬프트들의 수를 쉬프터 13에 공급하며, 비교결과 CMPe를 셀렉터 11과 12에 공급한다. 비교결과 CMPe에 따라, 셀렉터 12는 상대적으로 작은 지수부 값을 갖는 입력 오퍼란드(상술된 실시예에서는 입력 오퍼란드 B)의 계수부를 선택한다. 선택된 계수부는 쉬프터 13에, 그리고 바이패스선 13a를 통하여 셀렉터 17에 공급된다. 쉬프터 13은 지수부 비교기 10에 의하여 지시된 쉬프트들의 수만큼 선택된 계수부를 이동시키며, 이동된 계수부를 셀렉터 17에 출력한다. Ae≠Be이면, 셀렉터 17은 쉬프터 13으로부터 공급되는 출력을 선택한다. 다음에, 셀렉터 17의 출력과 셀렉터 11의 출력 사이의 감산을 행한다. 감산의 결과는 항상 양이다. 그러므로, 감산의 결과는 셀렉터 18을 통하여 직접 출력된다.
이러한 방법에서, 감산은 작은 절대치의 지수부를 갖는 입력 오퍼란드등 중에 하나를 상대적으로 큰 절대치의 지수부를 갖는 다른 입력 오퍼란드들 중에 하나로부터 감산하는 방식으로 수행된다. 그에 의하여, 항상 양의 감산결과를 얻을 수 있기 때문에, 2의 보수기 15가 필요없다. 이것은 처리시간의 단축을 의미한다. 셀렉터 17과 18은 간단한 스위치들이기 때문에, 셀렉터 17과 18의 처리는 쉬프터 13 및 2의 보수기 15에 비해 훨씬 더 빠르다. 출력단자 Tout에서 얻을 수 있는 연산결과의 부호는 부호 판정기 16으로부터 공급된다. 본 경우에서, 입력 오퍼란드 B의 부호는 셀렉터 16-3에 의하여 선택되며, 부호 CS2는 셀렉터 16-4에 의하여 선택된다. 명령 코우드가 '1'이면(감산), 부호 DS2가 셀렉터 16-5에 의하여 선택된다. 이 경우에, 부호 DS2는 입력 오퍼란드 B의 반전된 부호이다.
Ae=Be인 경우, 입력 오퍼란드 A와 B 사이의 크기에 대한 상호관계는 입렵 오퍼란드들의 계수부가 조사될 때까지 판별될 수 없다. 또한, 감산의 결과가 음이될 가능성도 있다. 만일 감산결과가 음이면, ALU 14의 출력은 2의 보수기 15에 의하여 2의 보수연산을 행하여야만 한다. 한편, 지수들의 값들이 서로 동일하기 때문에, 쉬프터 13에 의하여 계수부를 이동할 필요가 없다. 즉, 이동 처리가 필요없다. 결과적으로, 처리속도를 향상시킬 수 있다.
지수부들의 값들이 동일하면, 쉬프트들의 수가 제로인 명령이 셀렉터 17와 18에 공급된다. 다음에, 셀렉터 17은 바이패스선 13a를 통하여 공급된 출력을 선택한다. ALU 14에 의하여 셀렉터 11과 17의 출력들 사이의 감산을 행한다.
ALU 14의 출력은 음이 될 수 있다. ALU 14의 출력의 부호 ALUS는 부호 판정기 16에 공급된다. 셀렉터 18은 항상 ALU 14의 출력의 부호 ALUS와 상관없이 2의 보수기 15의 출력을 선택한다. 다음에, 2의 보수기 15의 출력은 셀렉터 18에 의하여 선택되며, 출력단자 Tout를 통하여 출력된다.
Ae=Be이면, 비교결과 CMPe는 00이다. 그러므로, 신호 CS1과 CS2(제4도)는 제로이다. 또한 셀렉터 16-2와 16-4는 ALU 14의 출력의 부호 ALUS를 선택하다. 다음에 부호 ALUS는 셀렉터 16-5에 의하여 선택되며, 다음 단계로 공급된다.
ALU 14의 출력은 2의 보수기 15를 통과하지 않기 때문에, 그것으로부터 지연을 제거할 수 있다.
본 발명에 따라, 쉬프터 13과 2의 보수기 15중에 어느 하나의 예외 없이 연산에서 생략된다. 비록 지연의 양이 회로의 형태에 좌우되지만, 종래 회로구성에서 나타나는 전체의 지연에 비하여 약 20-30% 정도 단축할 수 있다. 더욱이, 본 발명은 하드웨어의 간단한 추가로 구성될 수 있다. 그러므로, 본 발명은 실용적인면에서 매우 효과적이다.
출력단자 Tout에는 정규화 및 라운딩에 사용하기 위한 회로가 연결될 수 있다. 입력 오퍼란드 A 또는 B가 지수부의 모든 수들이 제로인 IEEE에 의하여 정의된 비정규화 수이면, 입력 오퍼란드 A와 B는 A=B의 경우에서와 같이 처리될 수 있다.
본 발명은 상기 실시예들로만 제한되지 않으며, 본 발명의 범위를 벗어나지 않고 다양한 수정과 변형을 가할 수 있다.

Claims (10)

  1. 부호, 지수부 및 계수부를 갖는 부동 소숫점 표기법에 의하여 표기된 두 입력 숫자를 처리하기 위한 연산회로에 있어서, 상기 두 입력숫자들의 지수부들의 값들을 서로 비교하고, 상기 두 입력숫자들 중에 하나의 계수부에 대하여 필요한 쉬프트들의 수를 결정하여 상기 두 입력숫자들의 지수부들의 값들 사이의 크기에 대한 상호관계를 나타내는 비교결과를 발생하는 비교수단과, 상기 비교수단으로부터 공급되는 상기 비교결과를 기초로하여 상기 두 입력숫자들의 계수부들을 선택적으로 출력하기 위한 선택수단과, 상기 두 입력숫자들의 지수부들의 값들이 서로 상이할 때에 상기 선택수단으로부터 공급되는 상대적으로 작은 값의 계수부를 상기 비교수단에 의하여 결정되는 쉬프트들의 수만큼 이동시키고, 상기 두 입력숫자들의 지수부들의 값들이 서로 동일할 때에 상기 두 입력숫자들의 계수부들 중에 하나를 첫번째 바이패스선(13a)을 통하여 출력하기 위한, 쉬프터(13)와 바이패스선(13a)을 포함하는 쉬프터 수단과, 상기 쉬프터 수단으로부터 공급되는 계수부와 상기 선택수단으로부터 공급되는 계수부 사이에서 소정의 연산을 행하고, 그에 의한 연산결과를 발생하는 연산 수단과, 두 지수부들의 값들이 서로 동일할 때에 상기 2의 보수기(15)를 통하여 상기 연산결과를 출력하고, 두 지수부들의 값들이 서로 다를 때에 상기 두번째 바이패스선(15a)을 통하여 상기 연산결과를 출력하기 위한, 2의 보수기(15)와 두번째 바이패스(15a)을 포함하는 보수계산수단으로 이루어지는 연산회로.
  2. 제1항에 있어서, 상기 비교수단이 상기 두 입력숫자들이 부호, 상기 비교결과, 상기 연산수단으로부터 공급되는 상기 연산결과의 부호, 상기 연산수단에 의하여 수행되는 상기 소정연산의 형태를 기초로 하여 상기 2의 보수 수단으로부터 공급되는 상기 최종의 연산결과의 부호를 결정하기 위한 부호 판정수단을 포함하는 연산회로.
  3. 제1항에 있어서, 상기 쉬프터 수단이 첫번째와 두번째 입력, 및 출력을 갖는 셀렉터(17)를 포함하고, 상기 첫번째와 두번째 입력이 상기 쉬프터(13)와 상기 첫번째 바이패스선(13a)에 각각 연결되고, 상기 셀렉터(17)의 출력이 상기 연산수단에 연결되고, 상기 셀렉터(17)가 상기 비교수단으로부터 공급되는 상기 쉬프터들의 수에 의하여 제어되는 연산회로.
  4. 제1항에 있어서, 상기 보수계산 수단이 첫번째와 두번째 입력, 및 출력을 갖는 셀렉터(16)를 포함하고, 상기 첫번째와 두번째 입력이 상기 2의 보수기(15)와 상기 두번째 바이패스선(15a)에 각각 연결되고, 상기 최종의 출력이 상기 연산결과를 출력시키는 출력단자(Tout)에 연결되고, 상기 셀렉터(18)가 상기 비교수단으로부터 공급되는 상기 쉬프트들의 수에 의하여 제어되는 연산회로.
  5. 제3항에 있어서, 상기 셀렉터(17)가, 상기 비교수단으로부터 공급되는 쉬프트들의 수가 제로일 때에 상기 첫번째 바이패스선(13a)을 선택하는 연산회로.
  6. 제4항에 있어서, 상기 셀렉터(18)가, 상기 비교수단으로부터 공급되는 쉬프트들의 수가 제로일 때에 상기 2의 보수기(15)를 선택하는 연산회로.
  7. 제2항에 있어서, 상기 부호 판정수단이 각각 첫번째와 두번째 입력, 및 출력을 갖는 첫번째 내지 다섯번째 셀렉터들(16-1~16-5)을 포함하고, 상기 첫번째 내지 네번째 셀렉터들(16-1~16-4)이 상기 비교결과에 의하여 제어되고, 상기 다섯번째 셀렉터(16-5)가 상기 소정의 연산의 형태에 의거하여 제어되고, 상기 첫번째와 세번째 셀렉터들(16-,16-3)의 상기 첫번째와 두번째 입력으로 상기 입력숫자들의 부호들이 제공되고, 상기 첫번째와 세번째 셀렉터들(16-1,16-3)의 출력들이 각각 상기 두번째와 네번째 셀렉터들(16-2,16-4)의 상기 첫번째 입력들에 연결되고 그들의 상기 두번째 입력들이 상기 두번째와 네번째 셀렉터들(16-2,16-4)의 출력들에 각각 연결되고, 상기 최종의 연산결과의 부호가 상기 다섯번째 셀렉터(16-5)의 출력을 통하여 출력되는 연산회로.
  8. 제1항에 있어서, 상기 선택수단이 각각 첫번째와 두번째 입력들, 및 출력을 갖는 첫번째와 두번째 셀렉터들(11,12)을 포함하고, 상기 첫번째와 두번쩨 셀렉터들(11,12) 모두의 첫번째와 두번째 입력들로 상기 첫번째와 두번째 입력숫자들이 공급되고, 상기 첫번째 셀렉터(11)의 출력이 상기 연산수단에 연결되고, 상기 두번째 셀렉터(12)의 출력이 상기 쉬프터(13)와 상기 첫번째 바이패스선(13a)에 연결되는 연산회로.
  9. 제8항에 있어서, 상기 두번째 셀렉터(12)가 항상 상대적으로 작은 값을 갖는 계수부를 선택하기 위해 상기 비교수단에 따라 제어되는 연산회로.
  10. 제1항에 있어서, 상기 연산이 감산인 연산회로.
KR1019890003010A 1988-03-11 1989-03-11 부동 소숫점 표기를 기초로 하는 연산회로 KR920003493B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP?63-58826 1988-03-11
JP63058826A JP2695178B2 (ja) 1988-03-11 1988-03-11 演算回路
JP58826 1988-03-11

Publications (2)

Publication Number Publication Date
KR890015120A KR890015120A (ko) 1989-10-28
KR920003493B1 true KR920003493B1 (ko) 1992-05-01

Family

ID=13095450

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019890003010A KR920003493B1 (ko) 1988-03-11 1989-03-11 부동 소숫점 표기를 기초로 하는 연산회로

Country Status (5)

Country Link
US (1) US4977534A (ko)
EP (1) EP0332215B1 (ko)
JP (1) JP2695178B2 (ko)
KR (1) KR920003493B1 (ko)
DE (1) DE68921083T2 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5432727A (en) * 1989-11-02 1995-07-11 Intergraph Corporation Apparatus for computing a sticky bit for a floating point arithmetic unit
US5590365A (en) * 1990-03-30 1996-12-31 Kabushiki Kaisha Toshiba Pipeline information processing circuit for floating point operations
JPH0478643U (ko) * 1990-11-22 1992-07-09
US5253349A (en) * 1991-01-30 1993-10-12 International Business Machines Corporation Decreasing processing time for type 1 dyadic instructions
JPH05216620A (ja) * 1991-10-31 1993-08-27 Internatl Business Mach Corp <Ibm> 浮動小数点を正規化する方法及び回路
US5635858A (en) * 1995-06-07 1997-06-03 International Business Machines, Corporation Zero-stopping incrementers
US5809323A (en) * 1995-09-19 1998-09-15 International Business Machines Corporation Method and apparatus for executing fixed-point instructions within idle execution units of a superscalar processor

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4075704A (en) * 1976-07-02 1978-02-21 Floating Point Systems, Inc. Floating point data processor for high speech operation
US4488252A (en) * 1982-02-22 1984-12-11 Raytheon Company Floating point addition architecture
JPS59188740A (ja) * 1983-04-11 1984-10-26 Hitachi Ltd フロ−テイング加算器
CA1229415A (en) * 1983-12-09 1987-11-17 Masayuki Ikeda Floating-point addition/subtraction system
JPS60186932A (ja) * 1984-02-01 1985-09-24 Nec Corp 演算装置
JPS6135011A (ja) * 1984-07-26 1986-02-19 Nec Corp 可変遅延回路
JPS6154537A (ja) * 1984-08-24 1986-03-18 Fujitsu Ltd 浮動小数点加減算方式
JPS6225325A (ja) * 1985-07-25 1987-02-03 Fujitsu Ltd 絶対値数加減算回路
JPH069028B2 (ja) * 1986-02-18 1994-02-02 日本電気株式会社 演算装置
US4827441A (en) * 1986-03-27 1989-05-02 Motorola, Inc. Barrel shifter
US4866652A (en) * 1987-09-01 1989-09-12 Weitek Corporation Floating point unit using combined multiply and ALU functions
US4841467A (en) * 1987-10-05 1989-06-20 General Electric Company Architecture to implement floating point multiply/accumulate operations

Also Published As

Publication number Publication date
DE68921083T2 (de) 1995-09-28
JP2695178B2 (ja) 1997-12-24
JPH01232423A (ja) 1989-09-18
EP0332215A3 (en) 1991-07-17
EP0332215B1 (en) 1995-02-15
DE68921083D1 (de) 1995-03-23
US4977534A (en) 1990-12-11
KR890015120A (ko) 1989-10-28
EP0332215A2 (en) 1989-09-13

Similar Documents

Publication Publication Date Title
US4758972A (en) Precision rounding in a floating point arithmetic unit
US5027308A (en) Circuit for adding/subtracting two floating point operands
US5042001A (en) Method and apparatus for performing mathematical functions using polynomial approximation and a rectangular aspect ratio multiplier
US4999803A (en) Floating point arithmetic system and method
KR100239029B1 (ko) 가산기와 함께 사용하기 위한 결과 정규화기 및 결과 정규화 방법과 그를 포함하는 데이터 프로세서
US5010508A (en) Prenormalization for a floating-point adder
KR100203468B1 (ko) 부동소수점수를 위한 산술연산장치
US6205461B1 (en) Floating point arithmetic logic unit leading zero count using fast approximate rounding
KR100465371B1 (ko) 덧셈 및 반올림 연산을 동시에 수행하는 부동 소수점alu 연산 장치
WO1999040508A1 (en) Fast adder/subtractor for signed floating point numbers
JPH09212337A (ja) 浮動小数点演算処理装置
US5260889A (en) Computation of sticky-bit in parallel with partial products in a floating point multiplier unit
KR920003493B1 (ko) 부동 소숫점 표기를 기초로 하는 연산회로
EP0551531A1 (en) Apparatus for executing ADD/SUB operations between IEEE standard floating-point numbers
US10310809B2 (en) Apparatus and method for supporting a conversion instruction
US20200183650A1 (en) Radix-1000 decimal floating-point numbers and arithmetic units using a skewed representation of the fraction
US7401107B2 (en) Data processing apparatus and method for converting a fixed point number to a floating point number
Schwarz Binary Floating-Point Unit Design: the fused multiply-add dataflow
Sasidharan et al. VHDL Implementation of IEEE 754 floating point unit
JP4439060B2 (ja) 浮動小数点加算器
San et al. Hardware implementation of floating-point operating devices by using IEEE-754 binary arithmetic standard
JP2555135B2 (ja) 演算回路
JP3124286B2 (ja) 浮動小数点数演算装置
JPH03282926A (ja) 浮動小数点数演算装置
JPH03102519A (ja) 除算器

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: 20030424

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee