KR200222599Y1 - 부동소숫점형식정규화기 - Google Patents

부동소숫점형식정규화기 Download PDF

Info

Publication number
KR200222599Y1
KR200222599Y1 KR2019980005073U KR19980005073U KR200222599Y1 KR 200222599 Y1 KR200222599 Y1 KR 200222599Y1 KR 2019980005073 U KR2019980005073 U KR 2019980005073U KR 19980005073 U KR19980005073 U KR 19980005073U KR 200222599 Y1 KR200222599 Y1 KR 200222599Y1
Authority
KR
South Korea
Prior art keywords
value
comparing
exponent
registers
register
Prior art date
Application number
KR2019980005073U
Other languages
English (en)
Other versions
KR19990039002U (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 김영환
Priority to KR2019980005073U priority Critical patent/KR200222599Y1/ko
Publication of KR19990039002U publication Critical patent/KR19990039002U/ko
Application granted granted Critical
Publication of KR200222599Y1 publication Critical patent/KR200222599Y1/ko

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Complex Calculations (AREA)

Abstract

본 고안은 부동 소숫점형식 정규화기에 관한 것으로, 종래의 기술에 있어서는 하나의 스트림으로 입력되는 수들의 지수를 모두 비교 분석한 후 그 결과값을 이용해 정규화를 행하기 때문에, 연산자가 많을수록 그 비교회수는 N2에 비례하여 증가하게 되어 이를 비교하는데 많은 시간이 소요되는 문제점이 있었다. 따라서, 본 고안은 입력되는 두 수에서 지수부분을 분리하는 제 1,2엔코더와; 수치의 신뢰도와 관련된 지수의 유효자리수를 저장하는 정밀도(resolution) 레지스터와; 상기 제 1,2엔코더를 통과한 수치와 상기 정밀도 레지스터의 유효자리수를 비교하여 시프트시킬 횟수를 계산하는 제 1,2감산기와; 시프트시킬수 있는 최대 자리수가 초기값으로 저장되어 있다가 이 값이 상기 제 1,2감산기에서 출력되는 값(시프트횟수)와 비교되어 보다 작은 값이 저장되는 제 1,2지수 레지스터와; 상기 제 1,2지수 레지스터에 저장되어 있는 값과 상기 제 1,2감산기에서 출력되는 값을 비교하여 보다 작은값을 다시 상기 제 1,2지수 레지스터에 저장시키는 제 1,2비교부와; 상기 제 1,2지수 레지스터에 저장되어 있는 값(시프트횟수)을 비교하여 보다 작은값을 결정하는 제 3비교부와; 상기 제 3비교부에서 결정된 값(시프트횟수)을 제1,2 지수레지스터에서 입력받아 저장시키는 스케일링 레지스터와; 기능 선택 신호(SF)에 따라 상기 제 1,2지수 레지스터의 현재값 또는 스케일링 레지스터에 저장되어 있는 최소값 또는 시프트 처리 결과값을 선택적으로 출력하는 지수 선택부로 구성하여 복소 정규화 및 배수 정규화 과정에서 유효한 데이터에 대해 즉시 처리할 수 있어 비교시간을 줄일 수 있는 효과가 있다.

Description

부동 소숫점형식 정규화기{FLOATING POINT TYPE NORMALIZER}
본 고안은 부동 소숫점형식 정규화기에 관한 것으로, 특히 복소 정규화 및 배수 정규화의 경우 유효 데이터의 비교 횟수를 줄임으로써, 각 연산자들의 지수 비교에 소요되는 시간을 감소시킬 수 있도록 하는 부동 소숫점형식 정규화기에 관한 것이다.
많은 부동 소숫점 연산을 요구하는 응용 프로그램을 위해서 부동 소숫점 명령어의 사칙 연산을 위한 하드웨어가 필요한데, 씨피유에서 직접 구현이 되기도 하고, 또는 상기 씨피유 이외에 부동 소숫점 연산을 위한 전용의 코프로세서를 두고, 씨피유와 연계하여 부동 소숫점 명령어를 실행하기도 한다.
그러나, 지수함수, 로그함수, 삼각함수 등의 초월함수를 다루는 공학 또는 과학적 응용 프로그램의 경우에는, 이를 하드웨어로 지원할 경우 많은 면적을 차지하기 때문에 속도는 다소 떨어지더라도 소프트웨어적으로 처리하기도 한다.
상기와 같은 공학적 또는 과학적 응용 프로그램에서 사용되는 데이터 형태는 부동 소숫점 숫자로 표현되는데, 부호는 에스(S : Sign), 지수는 이(E : Exponent), 그리고 가수는 엠(M : Mantissa)으로 표현된다. 이 S, E, M을 사용해 숫자를 표현하는 비트 숫자의 범위안에 여러 방법으로 표현이 가능한데, 그 중 가장 대표적인 표현 방법중의 하나로 전기 전자 학회(IEEE)에서 정한 규격이 있다.
상기 전기 전자 학회의 규격에는 단정도(Single precision), 확장 단정도(Single -Extended precision), 배정도(Double precision), 확장 배정도(Double - Extended precision)를 각각 규정하고 있고, 도1은 80비트 확장 배정도 형식의 포맷도로서, 상기와 같은 포맷으로 표현되는 숫자는 (-1)S×(1M)×2(E+Bias)값이다. 여기서 S는 부호이고, M은 유효수(Significant)의 64비트 중 최상위 비트(MSB) 1을 제외한 63비트를 의미한다.
공학적 또는 과학적 응용 프로그램의 경우 많은 부동 소숫점 연산자에 대한 연산이 필요한 경우가 있는데, 이때 각 연산자들을 같은 자리수로 정렬하는 과정이 필요한데, 이를 정규화(Normalization)라 하고 이 정규화 방법에는 복합 블록 스케일링(Complex block scaling), 복소 정규화(Complex normalization), 배수 정규화(Scaler normalization)등 3가지 경우가 있다.
상기에서, 복합 블록 스케일링은, 일련의 복소수(Complex number)들을 정하여진 유효 비트수에 맞춰 정규화 하는 것을 말하고, 복소 정규화는 가장 큰 숫자가 정규화되는 유효 비트 수에 그 보다 작은 다른 모든 숫자들도 정규화 하는 것을 말한다.
다음, 배수 정규화는 정수(Integer)에서 부동 소숫점으로의 변환을 포함하는데, 역수, 제곱근, 역제곱근 등의 함수와 함께 사용된다.
그런데, 상기와 같이 입력 스트림을 한 개로 둔 방식에 의해 N개의 부동 소숫점 숫자를 정규화(normalization)할 경우, 그 지수들을 비교하여 처리하는 시간은만큼이 지난 후에야 N개의 지수 부분을 정렬(align)할 수 있었다.
이와 같이, 상기 종래의 기술에 있어서는 하나의 스트림으로 입력되는 수들의 지수를 모두 비교 분석한 후 그 결과값을 이용해 정규화를 행하기 때문에, 연산자가 많을수록 그 비교회수는 N2에 비례하여 증가하게 되어 이를 비교하는데 많은 시간이 소요되는 문제점이 있었다.
따라서, 본 고안은 상기와 같은 같은 문제점을 해결하기 안출한 것으로, 복소 정규화 및 배수 정규화의 경우 유효 데이터의 비교 횟수를 줄임으로써, 각 연산자들의 지수 비교에 소요되는 시간을 감소시킬 수 있도록 하는 부동 소숫점형식 정규화기를 제공하는데 그 목적이 있다.
도 1은 종래의 80비트 확장 배정도 형식의 포맷도.
도 2는 본 고안을 적용한 부동 소숫점형식 정규화기의 구성을 보인 블록도.
*****도면의 주요부분에 대한 부호의 설명*****
10 : 제1 엔코더 20 : 정밀도 레지스터
30 : 제2 엔코더 40 : 제1 감산기
50 : 제2 감산기 60 : 제1 지수 레지스터
70 : 제1 비교부 80 : 제2 비교부
90 : 제2 지수 레지스터 100 : 제3 비교부
120 : 스케일링 레지스터 130 : 지수 선택부
이와 같은 목적을 달성하기 위한 본 고안 부동 소숫점형식 정규화기의 구성은, 입력되는 두 수에서 지수부분을 분리하는 제 1,2엔코더와; 수치의 신뢰도와 관련된 지수의 유효자리수를 저장하는 정밀도(resolution) 레지스터와; 상기 제 1,2엔코더를 통과한 수치와 상기 정밀도 레지스터의 유효자리수를 비교하여 시프트시킬 횟수를 계산하는 제 1,2감산기와; 시프트시킬수 있는 최대 자리수가 초기값으로 저장되어 있다가 이 값이 상기 제 1,2감산기에서 출력되는 값(시프트횟수)와 비교되어 보다 작은 값이 저장되는 제 1,2지수 레지스터와; 상기 제 1,2지수 레지스터에 저장되어 있는 값과 상기 제 1,2감산기에서 출력되는 값을 비교하여 보다 작은값을 다시 상기 제 1,2지수 레지스터에 저장시키는 제 1,2비교부와; 상기 제 1,2지수 레지스터에 저장되어 있는 값(시프트횟수)을 비교하여 보다 작은값을 결정하는 제 3비교부와; 상기 제 3비교부에서 결정된 값(시프트횟수)을 제1,2 지수레지스터에서 입력받아 저장시키는 스케일링 레지스터와; 기능 선택 신호(SF)에 따라 상기 제 1,2지수 레지스터의 현재값 또는 스케일링 레지스터에 저장되어 있는 최소값 또는 시프트 처리 결과값을 선택적으로 출력하는 지수 선택부로 구성함으로써 달성되는 것으로, 이하 본 고안에 따른 실시예를 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다.
도2는 본 고안을 적용한 부동 소숫점형식 정규화기의 구성을 보인 블록도로서, 이에 도시한 바와 같이 입력되는 두 수(NUM1,NUM2)에서 지수부분을 분리하는 제 1,2엔코더(10,30)와; 수치의 신뢰도와 관련된 지수의 유효자리수를 저장하는 정밀도(resolution) 레지스터(20)와; 상기 제 1,2엔코더(10,30)를 통과한 수치와 상기 정밀도 레지스터(20)의 유효자리수를 비교하여 시프트시킬 횟수를 계산하는 제 1,2감산기(40,50)와; 시프트시킬수 있는 최대 자리수가 초기값으로 저장되어 있다가 이 값이 상기 제 1,2감산기(40,50)에서 출력되는 값(시프트횟수)와 비교되어 보다 작은 값이 저장되는 제 1,2지수 레지스터(60,90)와; 상기 제 1,2지수 레지스터(60,90)에 저장되어 있는 값과 상기 제 1,2감산기(40,50)에서 출력되는 값을 비교하여 보다 작은값을 다시 상기 제 1,2지수 레지스터에 저장시키는 제 1,2비교부(70,80)와; 상기 제 1,2지수 레지스터(60,90)에 저장되어 있는 값(시프트횟수)을 비교하여 보다 작은값을 결정하는 제 3비교부(100)와; 상기 제 3비교부(100)에서 결정된 값(시프트횟수)을 제1,2 지수레지스터에서 입력받아 저장시키는 스케일링 레지스터(120)와; 기능 선택 신호(SF)에 따라 상기 제 1,2지수 레지스터의 현재값 또는 스케일링 레지스터에 저장되어 있는 최소값 또는 시프트 처리 결과값을 선택적으로 출력하는 지수 선택부로 구성한다.
여기서, 상기 지수 선택부(130)는 정규화의 종류에 따라 각각 다른값을 선택하여 출력하는데, 일단 복합 블록 정규화를 수행할 경우에는 스케일링 레지스터(120)에 저장된 최소값을 출력한다.
다음, 복소 정규화를 수행할 경우에는 현재 입력된 두 수(NUM1,NUM2)를 제 3비교부(100)에서 비교하여 작은쪽의 값을 출력하며, 배수 정규화를 수행할 경우는 두 수를 정밀도 레지스터에 설정한 값으로 시프트시켜 출력한다.
그럼, 상기와 같이 구성된 본 발명의 동작 및 작용을 정규화의 종류에 따라 보다 구체적으로 설명하면 다음과 같다.
먼저, 복합 블록 정규화시에는 정밀도 레지스터(20)에 최소값(0)이 세팅된다.
다음, 제 1,2엔코더(10,30) 두 입력되는 수에서 지수부분을 분리하여 저장하고 있다. 그런데, 정밀도 레지스터(20)의 값이 최소값이므로 제 1,2감산기(40,50)의 결과는 제1,2 엔코더(10,30)에 있는 값과 같게 된다.
이때, 제 1,2지수 레지스터에는 시프트시킬 수 있는 최대값이 초기값으로 저장되어 있다가 상기 제1,2 감산기의 출력값과 비교하여 보다 작은 값으로 업데이트된다. 다음, 상기 제1,2지수 레지스터의 값은 제3비교부(100)에서 비교되어 더 작은값이 결정되면 그 값(시프트횟수)이 스케일링 레지스터(120)에 저장된다.
따라서, 두 입력 스트림이 모두 비교되면 스케일링 레지스터(120)에는 시프트해야될 가장 최소 회수가 저장되는 것이다.
이때 기능선택신호(SF)에 의해 지수 선택부(130)는 스케일링 레지스터(120)에 있는 값을 선택하여 출력한다.
참고로, 여기서 의미하는 작은값이란 지수를 비트로 표시했을 때 시프트시킬 횟수가 작은값을 의미하는 것으로 실제 지수 전체로 볼때는 가장 큰값이 되는 것이다.
다음, 복소 정규화시의 동작에 관해 설명한다.
이때에도 정밀도 레지스터(20)는 최소값(0)이 세팅된다.
다음, 현재 스트림으로 입력되는 두 수(NUM1,NUM2)에서 정밀도 레지스터의 값을 뺀 후 제1,2 지수레지스터(60,90)에 저장한다.
이때에는 상기 복합 블록 정규화와는 달리, 제3비교부(100)에서 그 값을 비교해서 더 작은 값(시프트 횟수)을 결정하고, 그 값이 스케일링 레지스터(120)에 저장된다.
즉, 복합 블록 정규화에서는 입력되는 모든 스트림을 각각 비교하여 각 스트림에서 현재까지 입력된 두 수 중에서 최소값이 제1,2지수 레지스터(60,90)에 저장된 후, 제3비교부(100)에서 다시 비교되어 보다 작은 값을 스케일링 레지스터(120)에 저장함으로써, 두 입력 스트림을 모두 처리하고 난 후 스케일링 레지스터에는 최종적으로 두 입력 스트림에서 가장 최소값이 저장되었다.
그러나, 복소 정규화시에는 입력 스트림에서 현재 입력되는 두 수만을 비교하여 그때의 최소값을 스케일링 레지스터에 저장하고, 지수 선택부(130)를 통해 출력하는 것이다.
다음, 배수 정규화시의 동작에 대해서 설명하면 다음과 같다.
일단, 배수 정규화시에는 상기 복합 블록 정규화나 복소 정규화와는 달리 사용자가 정밀도 레지스터(20)에 일정값을 설정해 둔다.
다음 과정은 상기 다른 정규화와 마찬가지로 제1,2감산기(40,50)에서 제1,2 엔코더(10,30)로부터 분리된 지수에서 정밀도를 빼주어 그 값(시프트시킬 횟수)을 제1,2 지수 레지스터(60,90)에 각각 저장한다.
다음, 지수 선택부(130)는 상기 제1,2 지수 레지스터(60,90)의 값(시프트시킬 횟수)값만큼 제1,2 엔코더(10,30)에서 분리된 지수를 시프트시켜 출력한다.
여기서, 그 구체적인 설명이 생략된 제어신호(CS1)(CS2)는 정규화의 종류에 따라 제 1,2비교부(70,80) 및 스케일링 레지스터(120)를 각각 인에이블 또는 디져블 시켜 그 동작을 제어하는 역할을 한다.
이와 같이, 본 발명은 입력 스트림을 두 개로 두기 때문에 두 숫자(Num1, Num2)가 동시에 처리되므로 총 비교시간은 'Num1' 또는 'Num2'의 어느 한쪽 입력 스트림의 비교를 마칠수 있는 시간에 그 두 배 이상을 처리할 수 있게 되는 것이다.
즉, 좀더 상세하게는만큼의 비교 후 지수들을 정렬할 수 있게 되는 것이다.(여기서, N은 두 입력 스트림을 통해서 입력된 숫자의 개수이며, '+1'는 제3비교부를 통해서 최종적으로 비교하는 것을 의미한다.)
따라서, 종래의 처리시간은 약에 비례하지만, 본 발명은에 비례하여 N의 값이 커질수록 효과는 더욱 커지게 되어 연산속도를 증가시킬 수 있게 된다.
또한, 본 발명은 정규화의 종류에 관계없이 모두 대응할 수 있어 복소 정규화와 같이 두 입력 스트림의 값들을 이전의 값과는 상관없이 비교해야 하는 경우에도 효율적으로 이용될 수 있다.
이상에서 설명한 바와 같이 본 고안 부동 소숫점형식 정규화기는 복소 정규화 및 배수 정규화 과정에서 유효한 데이터의 비교 횟수를 줄임으로써, 각 연산자들의 지수 비교에 소요되는 시간을 감소시킬 수 있도록 하는 효과가 있다.

Claims (1)

  1. 입력되는 두 수에서 지수부분을 분리하는 제 1,2엔코더와; 수치의 신뢰도와 관련된 지수의 유효자리수를 저장하는 정밀도(resolution) 레지스터와; 상기 제 1,2엔코더를 통과한 수치와 상기 정밀도 레지스터의 유효자리수를 비교하여 시프트시킬 횟수를 계산하는 제 1,2감산기와; 시프트시킬수 있는 최대 자리수가 초기값으로 저장되어 있다가 이 값이 상기 제 1,2감산기에서 출력되는 값(시프트횟수)와 비교되어 보다 작은 값이 저장되는 제 1,2지수 레지스터와; 상기 제 1,2지수 레지스터에 저장되어 있는 값과 상기 제 1,2감산기에서 출력되는 값을 비교하여 보다 작은값을 다시 상기 제 1,2지수 레지스터에 저장시키는 제 1,2비교부와; 상기 제 1,2지수 레지스터에 저장되어 있는 값(시프트횟수)을 비교하여 보다 작은값을 결정하는 제 3비교부와; 상기 제 3비교부에서 결정된 값(시프트횟수)을 제1,2 지수레지스터에서 입력받아 저장시키는 스케일링 레지스터와; 기능 선택 신호(SF)에 따라 상기 제 1,2지수 레지스터의 현재값 또는 스케일링 레지스터에 저장되어 있는 최소값 또는 시프트 처리 결과값을 선택적으로 출력하는 지수 선택부를 포함하여 구성한 것을 특징으로 하는 부동 소숫점형식 정규화기.
KR2019980005073U 1998-04-02 1998-04-02 부동소숫점형식정규화기 KR200222599Y1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR2019980005073U KR200222599Y1 (ko) 1998-04-02 1998-04-02 부동소숫점형식정규화기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR2019980005073U KR200222599Y1 (ko) 1998-04-02 1998-04-02 부동소숫점형식정규화기

Publications (2)

Publication Number Publication Date
KR19990039002U KR19990039002U (ko) 1999-11-05
KR200222599Y1 true KR200222599Y1 (ko) 2001-05-15

Family

ID=69709184

Family Applications (1)

Application Number Title Priority Date Filing Date
KR2019980005073U KR200222599Y1 (ko) 1998-04-02 1998-04-02 부동소숫점형식정규화기

Country Status (1)

Country Link
KR (1) KR200222599Y1 (ko)

Also Published As

Publication number Publication date
KR19990039002U (ko) 1999-11-05

Similar Documents

Publication Publication Date Title
US4758972A (en) Precision rounding in a floating point arithmetic unit
KR102447636B1 (ko) 부동 소수점 수를 누산하기 위한 산술 연산을 수행하는 장치 및 방법
US5027308A (en) Circuit for adding/subtracting two floating point operands
KR100239029B1 (ko) 가산기와 함께 사용하기 위한 결과 정규화기 및 결과 정규화 방법과 그를 포함하는 데이터 프로세서
US10019231B2 (en) Apparatus and method for fixed point to floating point conversion and negative power of two detector
US5010508A (en) Prenormalization for a floating-point adder
US5111421A (en) System for performing addition and subtraction of signed magnitude floating point binary numbers
US4617641A (en) Operation unit for floating point data having a variable length exponent part
US4941119A (en) Method and apparatus for predicting an overflow in an integer multiply
US4110831A (en) Method and means for tracking digit significance in arithmetic operations executed on decimal computers
US6990505B2 (en) Method/apparatus for conversion of higher order bits of 64-bit integer to floating point using 53-bit adder hardware
EP0505175A2 (en) Preprocessor of division device employing high radix division system
GB2549153B (en) Apparatus and method for supporting a conversion instruction
KR200222599Y1 (ko) 부동소숫점형식정규화기
KR100290906B1 (ko) 부동소수점곱셈기에서반올림과덧셈을동시에수행하는장치및방법
KR920003493B1 (ko) 부동 소숫점 표기를 기초로 하는 연산회로
CN112860218B (zh) 用于fp16浮点数据和int8整型数据运算的混合精度运算器
US5754458A (en) Trailing bit anticipator
KR101922462B1 (ko) 데이터 처리장치 및 이진수에 대해 시프트 기능을 수행하는 방법
US5432727A (en) Apparatus for computing a sticky bit for a floating point arithmetic unit
US5570309A (en) Iterative arithmetic processor
US6615228B1 (en) Selection based rounding system and method for floating point operations
EP0831396A2 (en) Sticky bit determination in floating point arithmetic system
KR970022803A (ko) 부동소수점연산장치의 정규화회로장치
US20040254973A1 (en) Rounding mode insensitive method and apparatus for integer rounding

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
REGI Registration of establishment
FPAY Annual fee payment

Payment date: 20060209

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee