KR100241072B1 - 부동소수점 감산시 대량소거의 병렬예측 및 연산방법과 장치 - Google Patents

부동소수점 감산시 대량소거의 병렬예측 및 연산방법과 장치 Download PDF

Info

Publication number
KR100241072B1
KR100241072B1 KR1019970023406A KR19970023406A KR100241072B1 KR 100241072 B1 KR100241072 B1 KR 100241072B1 KR 1019970023406 A KR1019970023406 A KR 1019970023406A KR 19970023406 A KR19970023406 A KR 19970023406A KR 100241072 B1 KR100241072 B1 KR 100241072B1
Authority
KR
South Korea
Prior art keywords
mass
exponent
result
prime
prediction
Prior art date
Application number
KR1019970023406A
Other languages
English (en)
Other versions
KR19980032150A (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 KR19980032150A publication Critical patent/KR19980032150A/ko
Application granted granted Critical
Publication of KR100241072B1 publication Critical patent/KR100241072B1/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Nonlinear Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

본 발명의 부동소수점감산시 대량소거의 병렬예측 및 연산방법과 장치에 따르면, 제 1 및 제 2 부동소수점 수에 대해 부동소수점 감산이 수행되어 지수결과와 소수결과가 얻어지고, 상기 부동소수점 수는 제 1 지수와 제 1 소수를 포함하게 되며, 상기 제 2 부동소수점 수는 제 2 지수와 제 2 소수를 포함하게 되며, 제 1 가산기는 상기 제 1 및 제 2 지수사이의 지수차를 판정하게 되며, 지수차의 판정과 동시에 예측회로가 대량소거예측을 행하게 되고, 제 2 가산기는 상기 제 1 및 제 2 지수사이의 차이를 판정하여 대량소거소수결과를 발생하게 되며, 이어 상기 대량소거결과가 유효인지가 판정되고, 그러한 경우 그 대량소거 소수결과가 상기 소수결과에 대한 기준으로서 선택되며, 그렇지 않은 경우 상기 비-대량소거경로로부터의 결과가 소수결과에 대한 기준으로서 선택된다.

Description

부동소수점감산시 대량소거의 병렬예측 및 연산방법과 장치
본 발명은 부동소수점연산에 관한 것으로, 보다 상세하게는 부동소수점 감산연산에 관한 것이다.
부동소수점감산은 다양한 분야에 적용되는 바, 그러한 부동소수점 수들은 대개 1.fx2E(여기서, 1.f는 유효수자, f는 소수, E는 지수)의 형태이다. 여기에서 부동소수점 수들은 예컨대 IEEE 754단일정도포맷(Single precision format)에 표현되어진 형태로 가정되고, 그 경우 지수필드는 8비트이고 소수필드는 23비트이다. 유효수자중의 하나는 IEEE포맷에는 명백하게 기술되지는 않았고, IEEE 754포맷에서의 부동소수점표현은 8비트를 포함하게 된다.
2개의 부동소수점 수의 감산 (A-B)(단, 예컨대 A=(1.101x23), B=(1.100x21))은 2개 수들의 지수가 동일하게 되도록 소수의 가산 이전에 (0.011x23)의 형태로 B의 조정이 필요하게 된다. 부동소수점 감산에 대한 일반적인 접근방법은 당해 분야에서 주지된 상태로서 도 1 에 도시되어 있다.
2개의 부동소수점 수로서 A와 B가 주어지면 제 1 단계(단계10)에서는 A(expA)와 B(expB)의 지수비교가 이루어지고, A의 지수가 B의 지수에 비해 작은 경우(단계12) A와 B의 소수는 단계14에서 A의 지수가 B의 지수에 비해 항상 크거나 같아지도록 치환되며, 비교적 큰 지수가 결과의 지수로서 선택된다. 단계16에서 expB가 expA에 비해 작거나 동일한 경우 B의 소수는 expA와 expB사이의 차이의 절대값만큼 우측으로 시프트된다. 단계18에서 B의 소수는 A의 소수로부터 감산되고, 단계20에서 소수의 감산의 결과는 필요한 결과의 정규화를 위해 좌측으로 시프트되며, 상기 지수는 필요한 정규화의 양에 따라 조정된다.
단계16에서의 시프팅연산은 예컨대
Figure kpo00001
인 경우 기껏해야 1비트의 시프트가 필요함에 유의해야 된다. 그 경우에 단계20에서의 시프팅연산에는 결과의 정규화를 위해 대량의 시프트가 필요하게 되고, 그 때문에 A의 소수(Frc A) - B의 소수(Frc B)의 감산에는 선행하는 0의 유효수가 잠재적으로 된다. 이는 연산수가 1 또는 그 이하 차이를 보이는 지수를 갖게 됨에 기인하게 된다. 그에 대해
Figure kpo00002
인 경우 지수를 동일하게 하기 위해서는 단계14에서 다수비트시프팅이 필요하게 되지만, 단계18에서는 기껏해야 단일 비트의 시프트만이 행해지고 있다.
도 2 는 상기한 도 1 에 설명된 방법을 실행하는 부동소수점가산기의 블럭도로서, 연산수(201,202)가 가산되고, 소형 가산기(Small Adder)(203)는 상기 연산수(201,203)의 지수를 비교하게 된다. 상기 소형 가산기(203)는 상기 지수가 단지 8비트인 반면 소수는 23비트임에 의해 그러한 명칭으로 지칭된다. 상기 지수의 차이(지수차)는 레지스터(204)에 위치되고, 이어, 그 지수차는 제어로직(211)에 인가된다. 선택회로부(212)는 대량의 지수를 임시결과지수로서 선택하고 그 결과를 증분기/감소기(210)에 인가하게 된다.
상기 연산수(201,202)의 소수는 멀티플렉서(205,206)를 매개하여 우-시프트(208)에 인가되고, 상기 멀티플렉서(205,206)는 상기 제어로직(211)의 제어하에 소규모지수를 갖는 상기 연산수(201,202)의 소수를 상기 우-시프터(208)에 인가하게 된다. 상기 지수차는 적어도 우-시프트의 양을 결정하게 된다. 상기 멀티플렉서(208)에서 우-시프트된 소수와 상기 멀티플렉서(205)로부터의 소수는 대형 가산기(Big adder)(207)에 인가된다. 그 대형 가산기(207)는 소수연산수의 크기가 대체로 크기 때문에 그러한 명칭으로 칭해진다. 상기 감산연산에 후속해서 상기 결과는 시프터(209)내에서 시프트될 필요가 있다. 상기 대형 가산기(207)로부터의 결과가 정규화를 위해 시프트되는 경우 지수는 적절히 감소된다. 최종적으로, 라운딩하드웨어(Rounding hardware)(213)는 IEEE 754규격에 규정된 적절한 라운딩연산을 수행하여 그 결과(215)를 제공하게 된다.
도 1 에 관련해서 설명하면, 상기 감산연산에는 1비트시프트를 제외하고 양 시프터(208,209)에서가 아닌 시프터(208) 또는 시프터(209)에서의 우-시프트만이 필요하게 된다. 또, 가산기는 불필요한 시프트를 배제하여 도 1 에 필요한 단계수를 감소시킴으로써 그러한 장점을 실현할 수 있음이 알려져 있다. 또한, 파이프라인화된 가산기는 상기 시프터와 가산기를 이중화하여 단지 1회의 주요한 시프트연산이 필요하게 된다는 사실의 이점을 실현할 수 있음도 알려져 있다. 하지만, 그러한 방식에서는 감산 또는 시프트에 앞서 단계10에서의 지수비교의 실행이 여전히 필요하게 된다. 그러므로, 단지 1회의 대량시프트연산이 필요하고 그에 따라 부동소수점감산이 더욱 고속화된다는 사실을 보다 충실하게 실현하는 부동소수점가산기를 제공함이 바람직하게 된다.
따라서, 대량시프트가 부동소수점가산에서 단지 1회만 필요하다는 사실을 보다 잘 실현할 수 있고 보다 유효한 부동소수점 가산기를 제공하기 위한 개발이 이루어졌다. 본 발명은 제 1 및 제 2 부동소수점 수에 대한 부동소수점 감산을 수행해서 지수결과와 소수결과를 얻기 위한 방법과 장치를 제공하게 된다. 상기 제 1 부동소수점 수는 제 1 지수와 제 1 소수를 갖게 되고, 상기 제 2 부동소수점 수는 제 2 지수와 제 2 소수를 갖게 된다. 본 발명의 방법은 제 1 가산기에서 제 1 및 제 2 지수 사이에서의 지수차를 판정하고, 그 지수차의 판정과 더불어 예측회로에서 대량소거예측을 판정하여 그 대량소거예측에 따라 제 2 가산기에서 상기 제 1 및 제 2 소수 사이의 차이를 판정하며, 대량소거소수결과를 발생하게 된다. 상기 대량소거결과가 유효한지에 대한 판정이 이루어짐과 더불어 상기 대량소거결과가 유효하다고 판정되는 경우 상기 대량소거소수결과가 소수결과의 기준으로 선택된다.
본 발명의 방법을 실행하는 장치는 제 1 및 제 2 수에 대한 부동소수점감산을 수행하게 된다. 상기 제 1 및 제 2 수는 각기 제 1 및 제 2 지수와 제 1 및 제 2 소수를 포함하게 된다. 상기 장치는 제 1 및 제 2 지수를 수신해서 지수차를 출력하는 제 1 가산기를 포함하여 구성된다. 또한 상기 장치는 대량소거경로를 포함하게 되는 바, 그 대량소거경로는 상기 제 1 및 제 2 수의 소정비트에 결합되어 대량소거예측지시를 출력하는 대량소거예측회로와, 상기 예측회로에 결합됨과 더불어 그 예측회로에 따라 제 1 및 제 2 소수에 결합된 제 2 가산기를 더 포함하게 된다. 상기 제 2 가산기는 상기 예측지시에 따라 제 1 및 제 2 소수를 감산하여 대량소거 소수결과를 출력하게 된다. 또, 상기 대량소거경로에는 대량소거판정회로를 더 포함하게 되는 바, 그 대량소거판정회로는 대량소거경로결과가 유효인 경우를 나타내는 대량소거신호를 출력하게 된다. 또한, 상기 장치는 비-대량소거경로도 포함하게 되는 바, 그 비-대량소거경로는 상기 제 1 및 제 2 소수중 하나를 수신해서 지수차에 따라 시프트된 소수를 출력하는 시프터와, 그 시프터와 비대량소거경로결과를 출력하는 비시프트소수에 결합되는 제 3 가산기를 포함하게 된다. 또, 상기 장치는 대량소거신호에 따라 상기 비-대량소거경로결과와 대량소거경로결과중 하나를 선택하는 선택회로도 포함하게 된다.
도 1 은 종래의 부동소수점가산동작단계를 나타낸 도면.
도 2 는 종래의 부동소수점가산기의 블록구성도.
도 3 은 MC(Massive Cancellation)와 NMC(No Massive Cancellation)경로의 상위레벨도.
도 4 는 본 발명의 상위레벨블럭도.
도 5 는 본 발명의 일실시예의 상세블럭도.
도 6 은 MC경로에서 MC예측을 위한 디코드과정을 나타낸 도면.
도 7 은 MC연산단계를 나타낸 도면.
도 8 은 도 5 에 도시된 실시예의 보다 상세한 구성을 나타낸 도면.
* 도면의 주요부분에 대한 부호의 설명
402: 소형 가산기 404: 지수가산기
422: 가산기 424: 좌-시프트로직
502: 가산기 504: 멀티플렉서
506,510: 레지스터 530: 디코더
552: 시프터 580: 멀티플렉서
이하, 첨부한 도면을 참조로 하여 본 발명의 바람직한 실시예를 상술하며, 도면 전체를 통하여 동일한 부분에는 동일한 도면부호를 사용하기로 한다.
부동소수점의 가산과 감산연산에 있어서, 지수들은 동일하거나 1 또는 그 이상의 차이를 갖게 된다. 상기 지수들이 동일하거나 단지 1만큼 차이를 갖는 경우 상기 수들에 대해서는 감산에서 대량소거(MC)가 일어나는 값에 근사해지도록 함이 가능하게 된다. 즉, 상기 결과는 유효수자에서 1 또는 다수의 0을 포함하게 된다. 그 경우에 제 1 시프트에서는 기껏해야 1비트만의 시프트가 필요하게 되고, 감산후의 시프트는 그 결과의 정규화를 위해 필요하게 된다. 상기 지수들이 1이상 차이를 갖는 경우 대량소거는 불가능하고 소수의 감산이전의 우-시프트가 지수들을 동일하게 하기 위해 필요하게 된다. 표 1은 대량소거(MC)가 발생됨과 더불어 비대량소거(NMC)가 발생될 가능성을 갖는 부동소수점 가산/감산연산의 케이스들을 나타낸다.
[표 1]
Figure kpo00003
연산 소거
0 가산 NMC
0 감산 NMC/MC
1 가산 NMC
1 감산 NMC/MC
〉1 가산 NMC
〉1 감산 NMC
표 1에서 볼 수 있는 바와 같이, MC의 발생이 가능한 시점은
Figure kpo00004
또는 1이고 감산동작이 행해지는 경우이다. 감산동작에는 연산수들의 부호가 동일한 상태의 감산연산과 연산수들의 부호가 다른 상태의 감산연산을 포함하게 된다. 표 1은
Figure kpo00005
또는 1이고 감산연산의 경우를 나타냄과 더불어, MC의 발생가능성 뿐만 아니라 NMC의 발생가능성을 나타낸다.
부동소수점 감산연산에는 단지 1회의 대규모 시프트동작이 필요하다는 사실을 실현하기 위해, MC의 발생이 가능한 케이스에 대해 독립적인 경로가 적용되어지고 NMC의 발생이 가능한 케이스에 대해서도 독립적인 경로가 적용되게 되는 바, 이는 도 3에서 설명된다.
Figure kpo00006
인 경우 MC데이터경로(310)는 가산단계 370과 좌-시프트단계 380으로 이루어지고, 제 1 시프트단계 360은 MC경로에서는 필요하게 되지만, 최대시프트가 단지 1회이고 시프터없이도 실행될 수 있기 때문에 스킵될 수 있다. 또, 상기 NMC경로(300)는 가산단계370이 후속되는 제 1 단계360을 필요로 하게 된다. 상기 최종의 시프트단계380은 NMC경로에서 필요하지 않아서 스킵될 수 있다. 여기서, 표 1은 지수차가 1이하 또는 1과 동일한 경우에도 MC가 항시 발생되지 않음을 나타내는 점에 유의해야 된다.
MC데이터경로에서의 감산연산의 경우 일정한 조건하에 대량의 소거가 발생되게 된다. 그 대량소거를 발생하는 조건은 예측될 수 있고, MC조건의 이점을 취하기 위한 MC데이터경로에서 취해지는 적절한 응답이 표 2에 나타내어져 있다.
[표 2]
FrcA FrcB
Figure kpo00007
시프트 보수
1.00 1.1X 1 FrcB〉〉1 FrcB보수
1.1X 1.00 1 FrcA〉〉1 FrcA보수
1.XX 1.XX 0 비-시프트 FrcB보수
따라서, 지수차가 1이고 소수비트가 표 2에 도시된 바와 같이 행(Row) 1(여기서, X는 부정(Don't care))이면 적정한 연산은 FrcB를 우측으로 1만큼 시프트시켜서 FrcB보수를 취하는 것이다. 그 보수연산은 감산을 용이하게 하기 위해 실행되고, 그에 따라 (1.00) - (0.11X)의 감산연산이 행해지게 된다. 행 2에서 특정한 조건은 FrcA가 1비트만큼 시프트되어 보수화되는 것이다. 행 3은 지수가 동일한 경우 시프트가 필요하지 않음을 나타낸다. 여기서는 MC가 발생되는 경우의 예측일 뿐 실제적인 판정은 아니라는 점에 유의해야만 된다. MC의 존재를 완전하게 판정하기 위한 절대치보다는 지수가 1만큼 크다는 점을 이해할 필요가 있게 된다. 지수가 동일한 경우 FrcA = 1.00이고 FrcB = 1.1X이거나 또는 그와 반대로 FrcB = 1.00과 FrcA = 1.1X인 경우를 제외하고는 MC가 발생되게 된다. 하지만, 지수가 동일한 경우 MC경로는 정확한 결과를 발생하게 된다. 따라서, MC경로로부터의 결과들이 유효하다고 알려진 경우 그 결과들을 선택함이 적절하게 된다. 특별한 예측 및 확인은 선택되지 않더라도 MC경로에서 유효한 데이터로 된다. MC의 존재 또는 부재는 소수와 지수의 일정한 비트들의 값에 기초하여 예측될 수 있으면서 MC 또는 NMC경로가 다음의 표 3a 내지 3h에 도시된 8가지 케이스에 나타낸 바와 같은 정확한 결과를 얻을 수 있는지를 표시할 수 있다. 각 케이스에 대해서는 양호 및 불량한 케이스의 결과가 나타내어지고, 양호한 케이스 및 불량한 케이스는 NMC데이터경로에서 감산동작에 후속하는 정규화의 필요성을 나타내는 바, 이는 NMC경로가 소수의 감산에 후속하여 대량시프트를 갖지 않기 때문에 필요하게 된다. MC경로에 대한 결과들도 표 3a - 3h에 나타내어져 있고, 그 8가지 케이스가 표 3에 나타내어져 있다.
[표3]
케이스 1 FrcA = 1.00 FrcB = 1.0
케이스 2 FrcA = 1.00 FrcB = 1.1
케이스 3 FrcA = 1.01 FrcB = 1.0
케이스 4 FrcA = 1.01 FrcB = 1.1
케이스 5 FrcA = 1.10 FrcB = 1.0
케이스 6 FrcA = 1.10 FrcB = 1.1
케이스 7 FrcA = 1.11 FrcB = 1.0
케이스 8 FrcA = 1.11 FrcB = 1.1
표 3a를 참조하면 MC경로의 경우 지수가 동일한 경우 지수를 정합하기 위한 우-시프트가 필요하지 않게 되고, 감산에서는 대량소거가 행해지게 된다. 지수가 1만큼 차이를 갖는 경우에는 FrcA가 FrcB로부터 감산되거나 그와 반대이면 양호한 케이스가 1비트 시프트가 필요한 반면 불량한 케이스는 감산후 정규화를 위해 2비트 시프트가 필요함을 NMC케이스를 나타내는 표 3a의 제 1열로부터 알 수 있다.
[ 표3a]
1. FrcA = 1.00XX FrcB = 1.0XXX
NMC 데이터경로:1.00XXX (FrcA)-0.10XXX (FrcB)0.01XXX (지수차가 1인 경우불량한 케이스 결과)0.10XXX (지수차가 1인 경우양호한 케이스 결과) MC 데이터 경로 =〉 지수가 동일하면,비 우-시프트1.00XXX (FrcA)-1.0XXXX (FrcB)0.00000 (MC)
1.0XXXX (FrcB)-0.100XX (FrcA)0.01XXX (지수차가 1인 경우불량한 케이스 결과)0.11XXX (지수차가 1인 경우양호한 케이스 결과)
[표 3b]
2. FrcA = 1.00XXX FrcB = 1.1XXX
NMC 데이터경로:1.1XXXX (FrcB)-0.100XX (FrcA)0.11XXX (지수차가 1인 경우불량한 케이스 결과)1.01XXX (지수차가 1인 경우양호한 케이스 결과) MC 데이터 경로 =〉 지수가 동일하면,FrcB 우-시프트1.00XXX (FrcA)-0.11XXX (FrcB)0.00000 (MC)
1.1XXXX (FrcB)-1.00XXX (FrcA)0.1XXXX (지수차가 1인 경우불량한 케이스 결과)0.1XXXX (지수차가 1인 경우양호한 케이스 결과)
[표 3c]
3. FrcA = 1.01XXX FrcB = 1.0XXX
NMC 데이터경로:1.01XXX (FrcA)-0.10XXX (FrcB)0.10XXX (지수차가 1인 경우불량한 케이스 결과)0.11XXX (지수차가 1인 경우양호한 케이스 결과) MC 데이터 경로 =〉 지수가 동일하면,비 우-시프트1.01XXX (FrcA)-1.0XXXX (FrcB)0.00XXX (MC)
1.0XXXX (FrcB)-0.101XX (FrcA)0.01XXX (지수차가 1인 경우불량한 케이스 결과)0.11XXX (지수차가 1인 경우양호한 케이스 결과)
[표 3d]
4. FrcA = 1.01XX FrcB = 1.1XXX
NMC 데이터경로:1.01XXX (FrcA)-0.11XXX (FrcB)0.01XXX (지수차가 1인 경우불량한 케이스 결과)0.10XXX (지수차가 1인 경우양호한 케이스 결과) MC 데이터 경로 =〉 지수가 동일하면,비 우-시프트1.1XXX (FrcB)-1.01XXX (FrcA)0.00XXX (MC)
1.1XXXX (FrcA)-0.101XX (FrcB)0.11XXX (지수차가 1인 경우불량한 케이스 결과)1.01XXX (지수차가 1인 경우양호한 케이스 결과)
[표 3e]
5. FrcA = 1.10XX FrcB = 1.0XXX
NMC 데이터경로:1.10XXX (FrcA)-0.10XXX (FrcB)0.11XXX (지수차가 1인 경우불량한 케이스 결과) MC 데이터 경로 =〉 지수가 동일하면,비 우-시프트1.10XX (FrcA)-1.0XXX (FrcB)0.00XXX (MC)
1.01XXX (FrcB)-0.110XX (FrcA)0.01XXX (지수차가 1인 경우불량한 케이스 결과)0.10XXX (지수차가 1인 경우양호한 케이스 결과)FrcB는 1.01이거나 그렇지 않으면FrcB=1.00 및 FrcA=1.1과 동일(케이스 2에서 FrcA시프트)
[표 3f]
6. FrcA = 1.10XXX FrcB = 1.1XXX
NMC 데이터경로:1.10XXX (FrcA)-0.11XXX (FrcB)0.10XXX (지수차가 1인 경우불량한 케이스 결과)0.11XXX (지수차가 1인 경우양호한 케이스 결과) MC 데이터 경로 =〉 지수가 동일하면,비 우-시프트1.00XXX (FrcA)-1.1XXXX (FrcB)0.00000 (MC)
1.10XXX (FrcB)-0.110XX (FrcA)0.01XXX (지수차가 1인 경우불량한 케이스 결과)0.11XXX (지수차가 1인 경우양호한 케이스 결과)
[표 3g]
7. FrcA = 1.11XX FrcB = 1.0XXX
NMC 데이터경로:1.11XXX (FrcA)-0.10XXX (FrcB)1.00XXX (지수차가 1인 경우불량한 케이스 결과)1.01XXX (지수차가 1인 경우양호한 케이스 결과) MC 데이터 경로 =〉 지수가 동일하면,비 우-시프트1.11XXX (FrcA)-1.0XXX (FrcB)0.01XXX (MC)
1.01XXX (FrcB)-0.111XX (FrcA)0.01XXX (지수차가 1인 경우불량한 케이스 결과)0.10XXX (지수차가 1인 경우양호한 케이스 결과)FrcB는 1.01이거나 그렇지 않으면FrcB=1.00 및 FrcA=1.1과 동일(케이스 2에서 FrcA시프트)
[표 3h]
1. FrcA = 1.11XX FrcB = 1.1XXX
NMC 데이터경로:1.11XXX (FrcA)-0.11XXX (FrcB)0.11XXX (지수차가 1인 경우불량한 케이스 결과)1.00XXX (지수차가 1인 경우양호한 케이스 결과) MC 데이터 경로 =〉 지수가 동일하면,비 우-시프트1.11XXX (FrcA)-1.1XXXX (FrcB)0.001XX (MC)
1.1XXXX (FrcB)-0.111XX (FrcA)0.10XXX (지수차가 1인 경우불량한 케이스 결과)1.00XXX (지수차가 1인 경우양호한 케이스 결과)
표 3a - 3h에서 알 수 있는 바와 같이, 지수의 최상위유효 2비트가 주어지고 2개의 지수가 동일하거나 1만큼 차이를 갖는 경우가 MC경로를 사용하려는 경우를 예측하기 위해 적용될 수 있다. 각 지수의 최하위유효비트는 지수가 동일하거나 1만큼 차이를 갖게 되는 경우를 에측하기 위해 함께 배타적 OR처리될 수 있다. 표 3a - 3h는 모든 케이스에서 상기한 경우를 나타내고, NMC는 불량한 케이스에서 소수감산에 후속하여 필요한 2비트시프트가 필요한 감산을 처리할 수 있게 된다. 여기서, 표 3a - 3h는 MC소거경로가 적절한 경우를 예측하기 위한 가능성을 제공하게 되고, 각 연산수로부터 3비트가 주어지게 됨을 인식하는 것이 중요하지만, 그 예측도 불량하게 될 수 있다.
이는 MC경로에서 지수가 1만큼 다르고 FrcA = 1.00이고 FrcB = 1.1인 경우의 케이스에 대한 표 3b로부터 알 수 있다. 또, 주지된 전부는 LSB가 동일한지 여부이기 때문에 지수 A 또는 지수 B가 큰 경우인가를 판정할 필요가 있다. 그러므로, 표 3b에서 볼 수 있는 바와 같이 MC경로는 Exp A 〉 Exp B의 조건으로서 지수B의 우-시프트 및 보수를 얻는 것을 상정하게 된다. 따라서, MC경로는 (1.00XXX - 0.11XXX)의 감산을 수행하는 반면 exp B 〉 exp A인 경우를 취하기 위한 정확한 연산은 (1.1XXX - 0.100XX)를 감산하는 것이다. 따라서, MC경로에서 불량한 가정이 행해지는 경우 MC경로에서부터의 결과가 선택되지 않음을 확증할 만큼 지수가 큰지를 판정하는 것이 중요하게 된다.
exp A 또는 exp B가 큰지의 판정과, 그에 따라 MC경로의 출력이 선택되는지의 판정이 필요하기 때문에 MC경로의 결과를 확인하기 위해 지수차의 산출을 대기할 필요가 있다. 하지만, 본 발명의 하나의 중요한 특장점은 MC의 예측을 위한 지수차의 판정을 대기할 필요가 없고, 그 MC예측과 소수차에 의한 판정이 지수차판정과 병행해서 판정될 수 있다는 것이다.
MC경로에 의해 처리되지 않은 모든 경우에 결과는 Significands의 가산후 정규화를 위해 2비트 이상의 좌-시프트가 필요하지 않게 된다. 이는 라운딩로직(Rounding logic)으로 실현될 수 있고, 그에 따라 NMC데이터경로는 MC경로가 아닌 모든 케이스에 적용될 수 있다. 또한, 지수는 소수에서의 선행 0에 의존하여 0, -1 또는 -2로 조정되게 된다.
또, 본 발명은 MC경로가 정확한 해(解)를 제공하도록 결정되는 경우 가산기의 효율을 증가시키도록 대량소거의 예측가능성을 실현하게 된다. 여기서, MC경로가 정확한 해를 제공하는 경우에도 항상 소수결과에 대한 기준을 제공하기 위해 항상 선택되지는 않는 다는 점에 유의해야 된다.
도 4 를 참조하면, 본 발명의 일실시예의 간략화된 블럭도가 도시되어 있다. 지수가산기데이터흐름은 경로'400'으로 표시되어 있다. 소형 가산기(402)는 2개의 지수값을 수신하여 그 지수값들 사이의 지수차를 판정하게 된다. 이 지수차는 NMC경로'430'에서 소수를 우-시프트시키기 위해 이용된다. MC가산기(422)는 MC예측에 따라 시프트 및 보수화된 소수 A와 소수 B를 가산하게 된다. NMC케이스들의 경우에 시프터(432)는 지수가산기(402)의 출력을 대기해야만 된다. 하지만, MC예측은 MC가산기가 지수차의 판정과 동시에 소수차를 산출하도록 할 수 있다. 예컨대 MC조건이 존재하는 경우 가산기(422)로부터의 결과는 좌-시프트로직(424)에서 좌측으로 시프트되고, NMC경우가 존재하는 경우에는 우측으로 시프트된 소수(FrcB)가 NMC가산기(434)에서 FrcA에 가산된다. 상기 결과지수로서 선택된 큰 지수는 선행 0의 수를 판정해야만 하는 MC좌-시프터(424)의 결과에 따라 지수가산기(404)에서 조정된다. 또한, NMC가산기의 결과는 2비트 좌향시프트, 1비트 좌-시프트, 비-시프트, 또는 1비트 우-시프트를 필요로 하게 된다. 그 시프트는 지수에 반영되는 것이 필요하게 된다. 도 4 에 도시된 바와 같이 MC가산기경로는 지수가산기(402)의 결과를 대기하지 않게 된다. 따라서, MC케이스에 대해 부동소수점 가산연산의 실행이 지수가산기(402)를 통한 지연에 의해 해석된다. 즉, MC데이터경로는 지수가산의 개시를 대기해야할 필요가 없게 된다.
본 발명의 이점은 도 5 를 참조함으로써 보다 명백하게 알 수 있는 바, 도 5 는 A+B 또는 A-B의 가산/감산을 실행하는 본 발명의 일실시예에 따른 보다 상세한 블럭도를 나타낸다. 지수데이터경로는 가산기(502), 멀티플렉서(504), 제 1 지수 파이프라인 레지스터(506), 가산기(508) 및, 제 2 지수 파이프라인 레지스터(510)를 포함하게 된다. 상기 가산기(502)는 2개의 지수사이의 지수차를 판정하여 우-시프트 B(RSB)신호(507)
Figure kpo00008
와, Exp A 〉 Exp B를 나타내는 SWAP소수(SWAP)신호(503)를 출력하게 된다.
동시적인 지수차의 산출과 0검출판정의 상세는 본 발명에서 참조되면서 본 발명과 동일한 출원인에 의해 출원된 ″단일명령사이클에서 2정수 절대차산출″ 및 ″2진차에 대한 제로검출″이라는 발명의 명칭으로 출원된 미국특허출원 제 08/636,048 호 및 제 08/695/142 호에서 알 수 있게 된다.
부호로직(520)은 A+B 또는 A-B의 부호결과를 판정하게 되고, 2개의 파이프라인 레지스터(522,524)는 그 부호판정결과를 저장하게 된다. 부호로직은 가산기(536)로부터의 음의 결과인 경우의 입력 즉, 지수가 동일하고 무효화된 FrcB가 FrcA에 비해 큰 경우의 입력(도시 생략)을 필요로 하게 된다.
대량소거데이터흐름은 각 지수로부터 최하위유효비트를 수신하는 디코더로직(530)을 포함하게 된다. 또, 그 디코더로직(530)은 2개의 소수에 대한 2개의 최상위유효비트(MSB)도 수신하게 된다. 그 비트들을 사용하여 상기 디코더는 지수가 동일한 경우인가와 2개의 MSB가 표 3a 내지 3h에 따라 대량소거를 유발하도록 하는 경우인가를 판정하게 된다.
상기 디코더(530)는 MC조건의 예측과 상기 MC가산기(536)에 제공되는 소수비트의 시프팅 및 보수화의 제어를 위해 사용된다. 상기 가산기(536)로부터의 결과는 멀티플렉서(537)를 통해 파이프라인 레지스터(538)에 제공된다. 상기 파이프라인 레지스터(538)로부터의 결과는 소수결과에 필요한 정규화를 판정하는 우선순위 엔코더(Priority encoder)(532)에 인가된다. 그러한 정규화의 필요조건은 정규화에 따라 지수를 조정하기 위해 디코더(535)를 통해 지수가산기(508)에 제공된다.
상기 디코더(530)의 기능에 관한 플로우차트가 도 6 에 도시되어 있다. 지수의 LSB와 소수의 MSB의 값에 의거하여 소수중 하나는 지수가 동일한 경우에 보수화되거나, 소수중 하나는 1비트만큼 우측으로 시프트되어 보수화된다. 상기 디코더는 단계600에서 제 1의 가능한 MC조건, FrcA = 1.00, FrcB = 1.1X 및
Figure kpo00009
을 판정하게 된다. 여기서, 절대값 예측은 단지 1비트만이 비교되기 때문에 XOR게이트에서 실행될 수 있다. 만일
Figure kpo00010
이면 단계610에서 디코더는 멀티플렉서(MUX)들을 제어하여 상기 우-시프트되어 부호화된 FrcB를 가산기(536)에 전송하도록 하게 된다. 따라서, 디코더는 B가 작은 수인 경우를 상정하게 된다. 상기한 설명에서와 같이 그러한 상정은 MC경로가 부정확한 해(解)를 제공하는 경우에는 부적절하게 된다.
또, 상기 디코더는 단계620에서 다른 가능한 MC조건, FrcB = 1.00, FrcA = 1.1X 및
Figure kpo00011
을 판정하게 된다. 그 조건이 존재하는 경우 상기 디코더는 단계630에서 멀티플렉서들을 제어하여 상기 우-시프트되어 보수화된 FrcA를 상기 가산기(536)에 전송되도록 하게 된다. 따라서, 상기 디코더는 A가 작은 수임을 상정하게 되고, 그러한 상정은 MC경로가 부정확한 해를 제공하는 경우에 부적절하게 될 수 있다.
최종적으로, 상기 디코더는 다른 경우에 양 FrcA와 FrcB를 시프팅없이 통과시켜 FrcB를 보수화하게 된다. 즉,
Figure kpo00012
을 얻게 된다. 또한, 그러한 경우들에서 FrcA를 보수화할 가능성도 있다.
MC멀티플렉서(535)와 가산기(536)에 대한 디코더가 MC케이스를 예측한다고 해도 모든 예측에서 유효한 MC데이터가 얻어지지는 않게 된다. 그렇지만, MC가산기(536)는 지수가산기(502)가 지수 A와 지수 B와의 사이에서의 지수차를 판정할 때 FrcA - FrcB 또는 FrcB - FrcA의 결과를 결정할 수 있게 된다. 상기 디코더가 정확하게 예측하는 경우에 정확한 결과가 얻어질 수 있다. 또, MC예측이 부정확한 경우에 NMC경로는 시도된 MC경로가 불리함을 갖지 않도록 감산을 실행할 수 있다.
도 5 에는 NMC경로가 도시되어 있는 바, FrcA와 FrcB는 MUX(550,522)에 입력되고, MUX선택신호(SWAPF)(503)가 exp B 〉 Exp A인 경우를 나타내는 지수가산기(502)로부터 출력된다. 그러한 경우, 작은 수의 소수가 우-시프터(557)에 입력된다. 그 우-시프터는 가산기(502)로부터의 우-시프트 B(RSB)신호(503)에 의해 제어된다. 상기 RSB신호는
Figure kpo00013
이고 시프터에 대해 작은 수의 소수비트가 지수의 동일화를 위해 얼마나 많은 비트가 우-시프트되는지를 나타낸다. MC데이터경로와는 달리 NMC데이터경로는 지수차의 판정을 대기하여야만 된다. 시프터(557)에서의 우-시프트에 후속하여 그 우-시프트된 소수는 파이프라인 레지스터(553)에 저장되고, 비-시프트된 소수는 파이프라인 레지스터(538)에 저장된다. 도 5 의 실시예에서 파이프라인 레지스터(538)가 MC와 NMC경로에 할당됨에 유의해야 된다. 파이프라인 레지스터(538)에 선행하는 멀티플렉서(537)는 예측이라기 보다는 대량소거의 산출을 나타내는 MC신호(570)에 의해 제어된다. 부가적인 레지스터가 제공되면 상기 멀티플렉서(537)는 제거될 수 있다. NMC의 경우에 NMC경로로부터 2개의 소수들은 가산기(584)에서 감산되어 멀티플렉서(580)에 제공된다. 그 결과는 어느 경우에는 감산의 결과로서 지수조정을 제어함과 더불어, 멀티플렉서(590)에 대한 적절한 시프트제어를 제공하도록 디코더(595)(디코드 3)에 제공된다.
그러므로, 본 발명은 부동소수점 감산연산에 대한 가산기를 통한 고속경로를 제공하게 된다. 상기 파이프라인 레지스터(538)에 대한 불량한 케이스지연은 소형 가산기(502)를 통한 지연과 우-시프터(552)를 통한 지연 또는 MC경로 가산기(536)를 통한 지연의 합인 경우를 실현함으로써 알 수 있다. 예컨대, MC경로에서의 감산이 지수차 판정과 동시적으로 개시되지 않은 경우에 불량한 케이스지연은 소형 가산기(502)를 통한 지연과 가산기(536)를 통한 지연의 합으로 되게 된다. 따라서, 소형 가산기(502)와 시프터(552)의 지연보다 긴 소형 가산기(502)와 MC가산기(536)를 통한 지연의 제거에 개량이 있다. MC가산기(536)를 통한 지연은 소형 가산기(502)(소형 가산기(502)가 소형임에 따라) 또는 시프터(557)에 비해 길게 된다. 따라서, 소형 가산기(502)로부터 MC가산기(536)의 분리는 불량한 케이스를 개선하게 된다.
디코더(530)에서 대량소거예측의 존재는 MC경우들에서 대량소거예측을 보증하기 위해서만 유효하다는 점을 상정하면, 가산기(536)로부터의 결과는 정상이고, NMC경로 또는 MC경로의 출력을 최종결과에 대한 기초로서 정확하게 선택하기 위해 각 감산에 대해 대량소거가 계산되어야만 된다. 도 7 은 대량소거계산의 플로우차트를 나타낸다. 단계700에서는 감산동작의 존재를 판정하게 된다. 본 발명의 목적을 위한 감산동작은 연산자들의 부호가 동일한 경우의 감산동작과 연산자들의 부호가 다른 경우의 가산동작을 포함하게 된다. 단계710에서는 FrcA = 1.00이고 FrcB = 1.1이며 Exp A - Exp B = 1인지를 판정하게 된다. 만일 그러한 경우에는 단계750에서 MC플래그가 세트, 즉 MC경로가 유효로 판정된다. 만일 그렇지 않은 경우에는 단계720에서 FrcB = 1.00이고 FrcA = 1.1이며 Exp B - Exp A = 1인 경우인지를 판정하게 된다. 만일 그러한 조건이 존재하는 경우이면 단계750에서 MC경로가 세트된다. 최종적으로 지수들이 동일한 경우이면 단계750에서 MC플래그가 세트된다. 또, 만일 상기한 3가지 조건중 하나가 존재하지 않으면 NMC경로가 선택, 즉 MC경로는 유효하지 않다고 판정된다.
예측과 계산사이에서 하나의 차이는 예측과는 달리 계산에는 exp A = exp B인지, exp B - Exp A = 1 또는 Exp A - Exp B = 1인지를 알아야 하는 것이 필요하다는 점이다. Exp B 〉 exp A인 경우를 나타내는 SWAP신호(503)와 exp A - exp B의 절대값인 RSB(507)의 조합은 exp A - exp B = 1, 0, -1인지를 판정하기 위해 이용될 수 있다.
도 8 은 본 발명의 일실시예에 따른 데이터흐름의 보다 상세를 나타낸다. 도 5 에 도시된 구성소자에 대응하는 도 8 의 구성소자들은 동일한 부호로 표시된다. 또 도 8 은 예컨대 가산기(502,536,554)의 추가적인 상세도 나타낸다. 그 도 8 에 나타낸 확실한 특징, 예컨대 승산기(MPY)로부터 인가되는 캐리합 레지스터는 본 발명의 요점내에 포함되지 않음에 유의해야 된다.
본 발명을 특정의 바람직한 실시예에 관련하여 도시하고 설명하였지만, 본 발명이 그에 한정되는 것은 아니고 이하의 특허청구의 범위에 의해 마련되는 본 발명의 정신이나 분야를 이탈하지 않는 한도내에서 본 발명이 다양하게 개조 및 변화될 수 있다는 것을 당 업계에서 통상의 지식을 가진 자는 용이하게 알 수 있다.
따라서, 상기한 바와 같은 본 발명에 의하면 대량시프트가 부동소수점 감산연산의 적절한 실행을 위한 장치와 방법의 제공이 가능하게 된다.

Claims (18)

  1. 제 1 지수와 제 1 소수를 갖는 제 1 부동소수점 수와 제 2 지수와 제 2 소수를 갖는 제 2 부동소수점 수에 대한 부동소수점 감산을 실행하여 지수결과와 소수결과를 얻도록 된 방법에 있어서,
    제 1 가산기에서 상기 제 1 및 제 2 지수사이의 지수차를 판정하는 단계와;
    상기 지수차의 판정과 동시에 예측회로에서 대량소거예측을 판정하여 상기 제 1 및 제 2 소수에 대한 시프트 및 보수지시를 제공하고, 상기 예측에 따라 제 1 및 제 2 소수를 수신하여 제 2 가산기에서 상기 수신된 제 1 및 제 2 소수사이의 차이의 판정을 개시하여 대량소거소수결과를 발생하는 단계;
    상기 대량소거결과가 유효인지를 판정하는 단계;
    상기 대량소거결과가 유효로 판정되는 경우의 소수결과에 대한 기준으로서 상기 대량소거 소수결과를 선택하는 단계;를 구비하는 것을 특징으로 하는 부동소수점감산시 대량소거의 병렬예측 및 연산방법.
  2. 제 1 항에 있어서,
    상기 대량소거예측의 판정단계는 상기 제 1 및 제 2 지수 각각의 최소한 하나의 비트를 상기 예측회로에 인가하는 단계와;
    상기 제 1 및 제 2 소수 각각의 최소한 2비트를 상기 예측회로에 인가하는 단계;를 추가로 구비하는 것을 특징으로 하는 부동소수점감산시 대량소거의 병렬예측 및 연산방법.
  3. 제 2 항에 있어서,
    상기 예측회로에 인가되는 상기 제 1 및 제 2 지수의 1비트가 최하위 유효비트이고, 상기 예측회로에 인가되는 상기 제 1 및 제 2 소수의 2비트는 2개의 최상위 유효비트(MSB)인 것을 특징으로 하는 부동소수점감산시 대량소거의 병렬예측 및 연산방법.
  4. 제 3 항에 있어서,
    상기 대량소거예측의 판정단계는 상기 제 1 지수의 하나의 비트가 제 2 지수의 하나의 비트와 동일한 경우 제 1 및 제 2 소수의 하나를 비트보수화하고,
    상기 제 1 지수의 하나의 비트가 상기 제 2 지수의 하나의 비트와 동일하지 않은 경우이고 제 1 소수의 2비트가 00이며 제 2 소수의 MSB는 1인 경우에 상기 제 2 소수를 1비트만큼 우시프트시켜 그 우시프트된 제 2 소수를 비트보수화하며,
    상기 제 1 지수의 하나의 비트가 제 2 지수의 1비트와 동일하지 않은 경우이고 상기 제 2 지수의 2비트가 00이며 상기 제 1 지수의 MSB가 1인 경우이면 상기 제 1 소수를 1비트만큼 우-시프트시켜 그 우-시프트된 제 1 소수를 보수화하는 단계;를 추가로 구비하는 것을 특징으로 하는 부동소수점감산시 대량소거의 병렬예측 및 연산방법.
  5. 제 4 항에 있어서,
    상기 대량소거결과가 유효한 경우인지를 판단하는 단계는 (a) 상기 제 1 지수가 상기 제 2 지수와 동일한 경우 상기 대량소거 소수결과가 유효한지를 판정하고;
    (b) 상기 제 1 지수 - 제 2 지수가 1인 경우이고 제 1 소수의 2비트가 00이며 제 2 소수의 MSB가 1인 경우 상기 대량소거 소수결과가 유효한 것으로 판정하며;
    (c) 상기 제 2 지수 - 제 1 지수가 1인 경우 상기 소수의 2비트가 00이며 제 1 소수의 MSB가 1인 경우에 상기 대량소거 소수결과가 유효한 것으로 판정하고;
    (d) 상기 (a)(b)(c)단계중 어느 하나에서 상기 대량소거결과가 유효하다고 판정되지 않으면 상기 대량소거결과가 유효하지 않은 것으로 판정하는 단계;로 이루어진 것을 특징으로 하는 부동소수점감산시 대량소거의 병렬예측 및 연산방법.
  6. 제 5 항에 있어서,
    상기 제 1 및 제 2 소수중 하나를 우-시프터에서 상기 지수차에 의해 결정된 양만큼 시프트시켜 우-시프트 및 비-시프트된 소수를 발생시키고;
    상기 우-시프트된 소수를 상기 비시프트된 소수에 가산하여 비-대량소거 소수결과를 발생시키며;
    상기 비-대량소거소수결과를 상기 대량소거 소수결과가 유효로 판정되지 않는 경우의 소수결과에 대한 기준으로서 선택하는 단계;를 추가로 구비하는 것을 특징으로 하는 부동소수점감산시 대량소거의 병렬예측 및 연산방법.
  7. 제 6 항에 있어서,
    상기 비-대량소거결과를 2비트이하로 시프트시키는 단계를 추가로 구비하는 것을 특징으로 하는 부동소수점감산시 대량소거의 병렬예측 및 연산방법.
  8. 2개의 부동소수점 수에 대해 부동소수점 감산을 실행하는 방법에 있어서,
    제 1 가산기에서 상기 2개의 부동소수점 수사이의 지수차를 판정하고;
    상기 지수차의 판정완료전에 제 2 가산기에서 상기 2개의 부동소수점 수사이의 제 1 지수차를 모두 산출하고 상기 제 1 및 제 2 부동소수점 수의 소정비트에 따라 디코더에서 대량소거예측을 판정하기 시작하며;
    상기 지수차의 판정후 상기 2개의 부동소수점 수사이에서 제 3 가산기에 의해 제 2 소수차를 판정하고;
    상기 지수차 및 대량소거예측에 따라 제 1 소수차와 제 2 소수차중 하나를 선택하는 단계;를 구비하는 것을 특징으로 하는 부동소수점감산시 대량소거의 병렬예측 및 연산방법.
  9. 각기 제 1 및 제 2 지수와 제 1 및 제 2 소수를 포함하는 제 1 및 제 2 수의 부동소수점 감산을 수행하는 장치에 있어서,
    상기 제 1 및 제 2 지수를 수신하여 지수차를 출력하는 제 1 가산기와;
    상기 제 1 및 제 2 수의 소정비트에 결합되어 대량소거예측지시를 출력하는 대량소거예측회로;
    상기 예측회로에 결합되어 상기 예측표시에 따라 상기 제 1 및 제 2 소수를 수신하여 그 제 1 및 제 2 소수를 감산해서 대량소거소수결과를 출력하는 제 2 가산기;
    상기 제 1 및 제 2 수의 소정비트와 지수차에 따라 상기 대량소거 소수결과가 유효한지를 나타내는 대량소거신호를 출력하는 대량소거판정회로;를 구비하는 것을 특징으로 하는 부동소수점감산시 대량소거의 병렬예측 및 연산장치.
  10. 제 9 항에 있어서,
    상기 제 1 가산기는 상기 제 2 지수가 상기 제 1 지수보다 크면 SWAP신호를 출력하는 것을 특징으로 하는 부동소수점감산시 대량소거의 병렬예측 및 연산장치.
  11. 제 10 항에 있어서,
    상기 제 1 및 제 2 소수를 수신하여 상기 제 1 및 제 2 소수중 하나를 상기 SWAP신호에 따라 비-대량소거(NMC) 제 2 소수로서 출력하는 SWAP선택회로와;
    상기 NMC 제 2 소수를 수신하여 상기 지수차에 따라 NMC 제 2 소수를 시프트시키는 제 1 시프트회로;
    상기 NMC 제 1 및 제 2 소수에 결합되어 NMC소수결과를 출력하는 제 3 가산기;를 추가로 구비하는 것을 특징으로 하는 부동소수점감산시 대량소거의 병렬예측 및 연산장치.
  12. 제 11 항에 있어서,
    상기 대량소거 소수결과를 수신하여 상기 대량소거 소수결과를 시프트시키기 위한 양을 판정하고 정규화된 대량소거 소수결과를 출력하는 정규화회로;
    상기 대량소거신호에 따라 상기 정규화된 대량소거소수결과와 상기 무대량소거소수결과중 하나를 출력하는 출력선택회로;를 추가로 구비하는 것을 특징으로 하는 부동소수점감산시 대량소거의 병렬예측 및 연산장치.
  13. 제 12 항에 있어서,
    상기 예측회로와 상기 제 1 및 제 2 소수에 결합되어 제 1 소수출력을 위해 상기 제 1 소수와 보수화 및 1비트시프트된 제 1 소수중 하나를 선택하는 제 1 선택회로가 더 구비되고, 상기 시프터회로는 제 2 소수출력을 위해 상기 제 2 소수와 그 제 2 소수의 보수, 보수화 및 1비트시프트된 제 2 소수중 하나를 선택하게 되고, 상기 제 1 선택회로는 상기 대량소거예측에 따라 제 1 및 제 2 소수출력을 선택하는 것을 특징으로 하는 부동소수점감산시 대량소거의 병렬예측 및 연산장치.
  14. 제 12 항에 있어서,
    상기 대량소거예측회로는 상기 제 1 및 제 2 지수의 최하위 유효비트(LSB)와 상기 제 1 및 제 2 소수의 2개의 상위유효비트를 수신하는 것을 특징으로 하는 부동소수점감산시 대량소거의 병렬예측 및 연산장치.
  15. 제 14 항에 있어서,
    상기 예측회로는 상기 제 1 지수의 LSB가 상기 제 2 지수의 LSB와 동일한 경우 상기 제 1 소수출력으로서 상기 제 1 소수를 선택하도록 함과 더불어 상기 제 2 소수의 보수를 제 2 소수로서 선택하도록 상기 제 1 선택회로에 지시하는 상기 제 1 선택회로에 제어신호를 출력하는 디코더를 더 구비하여 구성되고,
    상기 디코더는 상기 제 1 지수의 LSB가 상기 제 2 지수의 LSB와 동일하지 않고 상기 제 1 소수의 2비트가 00이며 상기 제 2 소수의 최상위 유효비트가 1인 경우 상기 제 1 소수출력으로서 상기 제 1 소수를 선택하도록 함과 더불어 상기 제 2 소수출력으로서 보수화 및 1비트시프트된 제 2 소수를 선택하도록 상기 제 1 선택회로에 지시하는 제 1 선택회로에 제어신호를 출력하며,
    상기 디코더는 제 1 지수의 LSB가 제 2 지수의 LSB와 동일하지 않고 제 2 소수의 2비트가 00이며 상기 제 1 소수의 최상위 유효비트가 1인 경우 상기 제 1 소수출력으로서 1비트시프트 및 보수화된 제 1 소수를 선택하도록 함과 더불어 상기 제 2 소수출력으로서 제 2 소수를 선택하도록 상기 제 1 선택회로에 지시하는 제 1 선택회로에 제어신호를 출력하는 것을 특징으로 하는 부동소수점감산시 대량소거의 병렬예측 및 연산장치.
  16. 제 9 항에 있어서,
    상기 대량소거판정회로는 상기 제 1 지수가 제 2 지수와 동일한 경우와 제 1 지수 - 제 2 지수가 1이고 제 1 소수의 2개의 상위유효비트가 00이며 제 1 소수의 최상위 유효비트가 1인 경우와, 상기 제 2 지수 - 제 1 지수가 1이고 상기 제 2 소수의 2개의 상위유효비트가 00이며 제 1 소수의 최상위 유효비트가 1인 경우에 상기 대량소거소수결과가 유효임을 나타내는 대량소거플래그를 지정하는 반면, 그렇지 않으면 상기 대량소거플래그를 비지정하는 것을 특징으로 하는 부동소수점감산시 대량소거의 병렬예측 및 연산장치.
  17. 각각 제 1 및 제 2 지수와 제 1 및 제 2 소수를 포함하는 제 1 및 제 2 수의 부동소수점 감산을 실행하는 장치에 있어서,
    상기 제 1 및 제 2 지수를 수신하여 지수차를 출력하는 제 1 가산기와;
    상기 제 1 및 제 2 수의 소정비트에 결합되어 상기 제 1 및 제 2 소수에 대한 시프트 및 보수화지시를 제공하는 대량소거예측을 출력하는 대량소거예측회로와; 상기 예측회로에 결합되어 상기 예측지시에 따라 상기 제 1 및 제 2 소수를 수신하여 상기 수신된 제 1 및 제 2 소수를 상기 예측지시에 따라 감산하여 대량소거소수결과를 출력하는 제 2 가산기; 상기 대량소거경로결과가 유효한 경우를 나타내는 대량소거신호를 출력하는 대량소거판정회로를 포함하는 대량소거경로;
    상기 제 1 및 제 2 소수중 하나를 수신하여 상기 지수차에 따라 시프트된 소수를 출력하는 시프터와; 상기 시프터와 상기 시프터에 의해 수신되지 않은 상기 제 1 및 제 2 소수중 다른 하나에 결합되어 비-대량소거경로결과를 출력하는 제 3 가산회로를 포함하는 비-대량소거경로 및; 상기 대량소거신호에 따라 상기 비-대량소거경로결과와 대량소거경로결과중 하나를 선택하는 선택회로로 이루어진 것을 특징으로 하는 부동소수점감산시 대량소거의 병렬예측 및 연산장치.
  18. 제 17 항에 있어서,
    상기 대량소거결과가 유효인가를 판정하기 위한 수단은 상기 지수의 7개 MSB가 동일한가를 판단하기 위한 수단을 포함하는 것을 특징으로 하는 부동소수점감산시 대량소거의 병렬예측 및 연산장치.
KR1019970023406A 1996-10-17 1997-06-05 부동소수점 감산시 대량소거의 병렬예측 및 연산방법과 장치 KR100241072B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US8/733,707 1996-10-17
US08/733,707 1996-10-17
US08/733,707 US5954790A (en) 1996-10-17 1996-10-17 Method and apparatus for parallel prediction and computation of massive cancellation in floating point subtraction

Publications (2)

Publication Number Publication Date
KR19980032150A KR19980032150A (ko) 1998-07-25
KR100241072B1 true KR100241072B1 (ko) 2000-02-01

Family

ID=24948793

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970023406A KR100241072B1 (ko) 1996-10-17 1997-06-05 부동소수점 감산시 대량소거의 병렬예측 및 연산방법과 장치

Country Status (2)

Country Link
US (1) US5954790A (ko)
KR (1) KR100241072B1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6298367B1 (en) 1998-04-06 2001-10-02 Advanced Micro Devices, Inc. Floating point addition pipeline including extreme value, comparison and accumulate functions
US6085212A (en) * 1997-10-23 2000-07-04 Advanced Micro Devices, Inc. Efficient method for performing close path subtraction in a floating point arithmetic unit
US6088715A (en) * 1997-10-23 2000-07-11 Advanced Micro Devices, Inc. Close path selection unit for performing effective subtraction within a floating point arithmetic unit
US6094668A (en) * 1997-10-23 2000-07-25 Advanced Micro Devices, Inc. Floating point arithmetic unit including an efficient close data path
US6131104A (en) * 1998-03-27 2000-10-10 Advanced Micro Devices, Inc. Floating point addition pipeline configured to perform floating point-to-integer and integer-to-floating point conversion operations
US6148315A (en) * 1998-04-30 2000-11-14 Mentor Graphics Corporation Floating point unit having a unified adder-shifter design
GB0112269D0 (en) * 2001-05-21 2001-07-11 Micron Technology Inc Method and circuit for alignment of floating point significands in a simd array mpp
US7720898B2 (en) * 2003-06-11 2010-05-18 Stmicroelectronics, Inc. Apparatus and method for adjusting exponents of floating point numbers
KR20070088190A (ko) * 2006-02-24 2007-08-29 삼성전자주식회사 멀티미디어 데이터 처리를 위한 서브워드 병렬 처리 방법
JP4388543B2 (ja) * 2006-12-14 2009-12-24 株式会社日立製作所 3項入力の浮動小数点加減算器
GB2539881B (en) * 2015-06-24 2018-07-25 Advanced Risc Mach Ltd An apparatus and method for processing floating point values
US9817662B2 (en) 2015-10-24 2017-11-14 Alan A Jorgensen Apparatus for calculating and retaining a bound on error during floating point operations and methods thereof
US10540143B2 (en) 2015-10-24 2020-01-21 Alan A. Jorgensen Apparatus for calculating and retaining a bound on error during floating point operations and methods thereof
US11194624B2 (en) * 2017-05-30 2021-12-07 Nec Corporation Partial order procedure planning device, partial order procedure planning method and partial order procedure planning program

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01302425A (ja) * 1988-05-31 1989-12-06 Toshiba Corp 浮動小数点加減算回路
KR920008271B1 (ko) * 1990-04-03 1992-09-26 정호선 신경회로망을 이용한 부동소수점방식 가산기회로
EP0551531A1 (en) * 1991-12-20 1993-07-21 International Business Machines Corporation Apparatus for executing ADD/SUB operations between IEEE standard floating-point numbers
JPH05241792A (ja) * 1992-02-27 1993-09-21 Nec Corp 浮動小数点加減算方式および装置
KR0152169B1 (ko) * 1994-06-07 1998-10-15 모리시다 요이치 프라이어리티, 인코더
US5684729A (en) * 1994-09-19 1997-11-04 Hitachi, Ltd. Floating-point addition/substraction processing apparatus and method thereof

Also Published As

Publication number Publication date
KR19980032150A (ko) 1998-07-25
US5954790A (en) 1999-09-21

Similar Documents

Publication Publication Date Title
US5128889A (en) Floating-point arithmetic apparatus with compensation for mantissa truncation
KR100241072B1 (ko) 부동소수점 감산시 대량소거의 병렬예측 및 연산방법과 장치
KR100232962B1 (ko) 자리올림수 교정을 갖는 휴즈된 부동 소수점 곱셈 및 누산 장치
US5369607A (en) Floating-point and fixed-point addition-subtraction assembly
US4922446A (en) Apparatus and method for floating point normalization prediction
US5957997A (en) Efficient floating point normalization mechanism
US5136536A (en) Floating-point ALU with parallel paths
KR102200913B1 (ko) 풀 인-라인 비정규 서포트를 수반하는 높은 성능의 부동 소수점 덧셈기
US7668892B2 (en) Data processing apparatus and method for normalizing a data value
GB2565385B (en) An apparatus and method for estimating a shift amount when performing floating-point subtraction
US8370415B2 (en) Overflow detection and clamping with parallel operand processing for fixed-point multipliers
US7437400B2 (en) Data processing apparatus and method for performing floating point addition
KR100264960B1 (ko) 연산수의 승산/제산 방법과 그 장치
GB2539265A (en) Apparatus and method for controlling rounding when performing a floating point operation
US5867413A (en) Fast method of floating-point multiplication and accumulation
EP0394161A2 (en) Selection of divisor multipliers in a floating point divide circuit
US7016930B2 (en) Apparatus and method for performing operations implemented by iterative execution of a recurrence equation
JP3753275B2 (ja) 最上位有効ビット位置予測方法
US5117384A (en) Method and apparatus for exponent adder
US7356553B2 (en) Data processing apparatus and method for determining a processing path to perform a data processing operation on input data elements
KR100331846B1 (ko) 실수 연산기
KR101922462B1 (ko) 데이터 처리장치 및 이진수에 대해 시프트 기능을 수행하는 방법
US6360238B1 (en) Leading zero/one anticipator having an integrated sign selector
US6615228B1 (en) Selection based rounding system and method for floating point operations
US7386580B2 (en) Data processing apparatus and method for computing an absolute difference between first and second data elements

Legal Events

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

Payment date: 20121031

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20131031

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee