KR100425674B1 - 디지탈신호처리기의부동소숫점형식곱셈방법 - Google Patents

디지탈신호처리기의부동소숫점형식곱셈방법 Download PDF

Info

Publication number
KR100425674B1
KR100425674B1 KR1019960045235A KR19960045235A KR100425674B1 KR 100425674 B1 KR100425674 B1 KR 100425674B1 KR 1019960045235 A KR1019960045235 A KR 1019960045235A KR 19960045235 A KR19960045235 A KR 19960045235A KR 100425674 B1 KR100425674 B1 KR 100425674B1
Authority
KR
South Korea
Prior art keywords
result
floating point
bit
exponents
bits
Prior art date
Application number
KR1019960045235A
Other languages
English (en)
Other versions
KR19980026703A (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 KR1019960045235A priority Critical patent/KR100425674B1/ko
Publication of KR19980026703A publication Critical patent/KR19980026703A/ko
Application granted granted Critical
Publication of KR100425674B1 publication Critical patent/KR100425674B1/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
    • G06F7/523Multiplying only

Landscapes

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

Abstract

본 발명은 비디오/오디오신호 처리용 디지탈신호처리기(DSP)에서의 곱셈 기술에 관한 것으로, 종래의 부동 소숫점 곱셈방법에 있어서는 동적 계산영역이 그다지 넓지 않으면서도 하드웨어측면에서 볼때 불필요하게 큰 용량의 메모리를 사용하도록 되어 있어 원가를 상승시키게 되는 결함으로 대두되었다.
따라서, 본 발명은 이를 해결하기 위하여, 두 입력데이타의 가수는 서로 곱하고 지수는 서로 더한 후, 레프트시프트과정을 통해 부호비트와 같은 수만큼의 MSB들을 제거하여 필요한 만큼의 비트수를 취함과 아울러 이 과정에서 제거한 수만큼 지수를 재조정하고, 상기 지수의 덧셈결과에 대해 언더플로우 발생시 부호비트를 " 0" 으로 하지 않고, 덧셈결과가 표시할 수 있는 영역을 작은쪽으로 넘으면 곱셈결과(가수)를 필요한 만큼 재조정 하도록 하였다.

Description

디지탈신호처리기의 부동 소숫점형식 곱셈방법
본 발명은 비디오/오디오신호 처리용 디지탈신호처리기(DSP)에서의 곱셈 기술에 관한 것으로, 특히 부동 소숫점 형식을 채택한 곱셈기에서 동적 계산영역을 확장하고, 잡음/신호비도 개선하면서 사용되는 메모리의 용량을 저감하는데 적당하도록한 디지탈신호처리기의 부동 소숫점형식 곱셈방법에 관한 것이다.
일반적인 수치계산에 사용하는 수의 형식은 크게 정수형식과 부동 소숫점형식을 들 수 있으며, 그 정수형식으로는 주로 8,16,32,64bit 등이 사용되고, 부동 소숫점형식으로는 32,64bit 등이 국제 공인으로 정의되어 사용되고 있다.
DSP 알고리즘을 실제로 구현하는데에는 상기의 형식 중 어떠한 형식도 이용이 가능하지만, 하드웨어의 설계관점에서 볼때 정수형식이 보다 단순하게 구현할 수 있다는 이점이 있고, 소프트웨어의 관점에서 볼때에는 부동 소숫점 형식이 보다 쉽게 알고리즘으로 표현할 수 있다는 이점에 있다.
제1도는 일반적인 부동 소숫점 형식을 보인 것이고, 제2도는 32bit의 부동 소숫점 형식을 보인 것으로, 여기서, 부호비트(sign) 자리에는 묵시적으로 " 1" 이 차 있는 것으로 보는데, 이렇게 하면 유효숫자가 1bit 증가되는 결과를 낳는다.
DSP의 응용분야 중에서 비디오/오디오신호에 관련된 응용분야는 인간의 시각 또는 청각에 작용한다는 특징을 갖으며, 그 수치 연산에 있어서 다른 종류의 것들과는 다른 차이점을 갖는다. 다시말해서, 인간의 눈은 색 또는 명암에 대해 각각 수백단계로 구별하고, 귀는 수만단계의 음압의 차이를 구분하는 정도이므로 비디오신호의 경우 8~10bit, 오디오신호의 경우 16~ l8bit의 유효 숫자로도 충분히 표현이 가능하다.
일반적인 수치연산에 있어서는 32bit 부동 소숫점도 오차가 커서 64bit 부동 소숫점, 혹은 그 이상의 정밀도를 갖는 수치를 필요로 하는데 반해, 상기와 같은 이유로 인하여 비디오/오디오신호에 관련된 DSP의 경우에 있어서는 32bit의 부동 소숫점으로도 너무 지나칠 정도로 충분한 것이다.
따라서, 부동 소숫점 형식을 사용하는 경우 기존에 널리 사용되고 있는 형식과는 다른 축소된 형식을 필요로 함을 알 수 있다.
DSP의 특징은 통상적으로 실시간으로 계속 동작해야 한다는 것이다. 하지만,이와 같은 점을 감안하더라도 통상적으로 구현되는 하드웨어를 보면 실제 연산에 필요한 처리 데이타를 저장하고 있는 기억장치의 용량이 불필요하게 커서 비효율적임을 알 수 있다.
그러므로 저장할 데이타가 정확하게 몇 bit인가 하는 것은 매우 중요한 문제가 된다. 정수형을 사용할 경우 반복되는 수치연산은 연산과정 중에 잠재하는 여러 종류의 오차들을 확대해가는 경향이 있으므로 최소 유효 숫자에 여유분을 더해야 하는데, 상기에서 설명한 이유로 인하여 여유분을 어느 정도로 할 것인가는 매우 중요한 문제가 되며, 통상적으로 8bit 정도를 더하여 16~24bit 정도를 사용하고 있다.
이러한 관점에서 볼때 종래 처리방식에 채택된 32bit 부동 소숫점은 하드웨어측면에서 볼때 불필요하게 많은 원가를 요구하고 있다고 볼 수 있다.
종래에 있어서 부동 소숫점 곱셈방법을 제3도의 개념도를 참조하여 간단히 설명하면, " 입력데이타1" 과 " 입력데이타2" 의 가수는 서로 곱하고, 지수는 서로 더하며 최종 결과를 얻는다. 여기서, 주의할 사항은 상기의 곱셈과정에서 지수끼리의 덧셈결과가 표현할 수 있는 영역을 넘어서는지 즉, 오버플로우가 발생되거나 언더플로우가 발생되는지를 검사하여 그에 상응되는 조치를 취해야 한다는 것이다.
가수끼리의 곱셈결과는 그 비트수(bit width)가 대략적으로 두배 신장된 상태로 나타나므로 가수 재조정과정을 통해 입력과 동일한 형식의 출력이 나타나도록 해야 한다.
예로써, 제2도의 32bit 부동 소숫점의 경우 가수 비트수는 24이지만 곱셈기의 입력은 25bit가 되고, 25bit x 25bit의 곱셈결과 출력은 5Obit가 된다. 그런데, 상기 5Obit의 출력중에서 MSB 2bit는 부호비트가 중복되어 나타나는데, 일단 1bit를 제거하여 49bit의 곱셈결과를 얻고, 다시 그 중에서 MSB만을 취하여 최종의 출력데이타를 얻는다.
이와 같이 종래의 부동 소숫점 곱셈방법에 있어서는 동적 계산영역이 그다지 넓지 않으면서도 하드웨어측면에서 볼때 불필요하게 큰 용량의 메모리를 사용하도록 되어 있어 원가를 상승시키게 되는 결함으로 대두되었다.
따라서, 본 발명의 목적은 지수끼리 덧셈한 결과가 표시할 수 있는 영역을 작은쪽으로 넘으면 곱셈의 가수결과를 필요한 만큼 재조정하고, 곱셈결과를 처리함에 있어서 부호비트와 같은 MSB들을 레프트시프트시켜 필요한 만큼의 비트수를 취함과 아울러 제거된 수 만큼의 지수를 재조정하는 부동 소숫점형식의 곱셈방법을 제공함에 있다.
상기의 목적을 달성하기 위한 본 발명 디지탈신호처리기의 부동 소숫점형식 곱셈방법은 두 입력데이타의 가수(m1),(m2)는 서로 곱하고, 지수(e1),(e2)는 서로 더하는 제1단계(Sl)와; 상기 지수 가산결과 " te" 를 지수범위의 상한치 " max e" 와 비교하여 그 비교결과에 따라 오버플로우를 표시하고 그대로 종료하거나, 가수 가산결과 " tm" 에 있어서 그의 부호비트와 동일한 비트에 해당되는 MSB 비트수 sl을 계산하는 제2단계(S2-S4)와, 상기 지수 가산결과 " te" 를 지수범위의 하한치 " min e" 와 비교하여 그 비교결과에 따라 가수 가산결과 " tm" 을 min e-te만큼 라이트시프트시켜 최종의 결과로 취하거나, 그 " tm" 을 " sl" 만큼 레프트시프트시켜 최종의 결과로 취하는 제3단계(S5-S7)로 이루어지는 것으로, 이와 같이 이루어진 본 발명의 작용 및 효과를 첨부한 제4도 및 제5도를 참조하여 상세히 설명하면 다음과 같다.
먼저, 제4도를 참조하여 전체적인 곱셈과정을 간단히 설명하면, 우선, " 입력데이타 1" 과 " 입력데이타2" 의 가수는 서로 곱하고 지수는 서로 더한다. 이후, 레프트시프트 과정을 통해 부호비트와 같은 수만큼의 MSB들을 제거하여 필요한 만큼의 비트수를 취하는데, 이 과정에서 제거한 수만큼 지수를 재조정한다. 또한, 상기 지수의 덧셈결과에 대해 언더플로우 발생시 부호비트를 " 0" 으로 하지 않고, 덧셈결과가 표시할 수 있는 영역을 작은쪽으로 넘으면(종래의 경우 언더플로우 조건) 곱셈결과(가수)를 필요한 만큼 재조정 ( right-shift)한다 .
즉, 제5도의 신호 흐름도에서와 같이, " 입력데이타1" 이 가수 m1과 지수 e1으로 이루어지고, " 입력데이타2" 가 가수 m2과 지수 e2로 이루어질때, 지수의 범위가 최소 min e와 최대 max e 사이라고 가정하여 설명하면 다음과 같다.
상기 가수(m1),(m2)는 서로 곱하여 그 결과를 " tm" 이라 하고, 지수(e1),(e2)는 서로 더하여 그 결과를 " te" 로 한다.
이후, 상기 지수결과 " te" 를 상기 지수범위의 상한치 " max e" 와 비교하여 " te"가 더 크면 오버플로우를 표시하고 그대로 종료하게 되나, " te" 가 더 작으면 가수결과" tm" 에 있어서 그의 부호 비트와 동일한 비트에 해당되는 MSB 비트수 sl을 계산한다.
또한, 상기 지수결과 " te" 를 상기 지수범위의 하한치 " min e" 와 비교하며 " min e" 가 더 크면 지수범위의 하한치 " min e" 를 " e" 로 하고, 상기 가수 결과 " tm" 을 min e - te만큼 라이트시프트시켜 최종의 결과(m)를 취한다. 그러나, 상기의 비교결과" min e" 가 더 작으면 " te-sl" 을 " e" 로 하고 " tm" 을 " sl" 만큼 레프트시프트시켜 최종의 결과(m)를 취한다.
상기와 같이 곱셈을 수행하는 이유는 단순히 가수의 비트수(유효 숫자수)만 축소하는 경우 S/N비가 너무 나빠질 수 있기 때문이다. 즉, 상기와 같은 방법을 수행함으써 가수의 비트수가 축소되어 나타나는 바람직하지 않은 현상을 완화시킬 수 있게 된다. 이렇게 함으로써 정수형식에 비해 상대적으로 적은 비트수를 가지고도 동일한 S/N비와 우수한 동적계산영역(dynamic range)을 얻을 수 있게 된다.
일예로써, 실제로 특정 DSP에 적용해 본 결과 24bit 정수형과 유사한 정도의 S/N비를 얻고자 하는 경우, 4bit의 지수와 l6bit의 가수를 갖는 부동 소숫점 형식으로 충분하였고, 동적영역은 40dB이상 더 우수한 실행결과과를 얻을 수 있음이 확인되었다. 이렇게 함으로써 결과적으로 데이타 저장장치의 용량을 줄일 수 있을 뿐만 아니라 부수적으로는 데이타 형식이 부동 소숫점 형식이어서 소프트웨어를 쉽게 작성할 수 있다는 효과가 얻어진다.
참고로, 본 발명이 적용되는 대상은 16~32bit 정수형을 대치할 수 있는 부동 소숫점 형식이므로 가수가 12~2Obit, 지수가 2~6bit로 된 정도의 곱셈연산에 유용하다. 그보다 더 높은 정밀도를 요구하는 연산의 경우에는 기존에 사용되고 있는 부동 소숫점형식의 곱셈방법을 이용하는 편이 보다 바람직하다.
이상에서 상세히 설명한 바와 같이, 본 발명은 지수끼리 덧셈한 결과가 표시할 수 있는 영역을 작은쪽으로 넘으면 곱셈의 가수결과를 필요한 만큼 재조정하고, 곱셈결과를 처리함에 있어서 부호비트와 같은 MSB들을 레프트시프트시켜 필요한 만큼의 비트수를 취함과 아울러 제거된 수 만큼의 지수를 재조정함으로써 종래에 비하여 훨씬 적은 용량의 메모리를 사용하고도 동일한 성능을 발휘할 수 있는 효과가 있다.
제1도는 일반적인 부동 소숫점형식의 포맷도.
제2도는 32bit 부동 소숫점 형식의 포맷도.
제3도는 일반적인 부동 소숫점형식의 곱셈방법에 대한 개념도.
제4도는 본 발명에 의한 부동 소숫점형식의 곱셈방법에 대한 개념도.
제5도는 본 발명 디지탈신호처리기의 부동 소숫점형식 곱셈방법에 대한 신호 흐름도 .

Claims (1)

  1. 두 입력데이타의 가수는 서로 곱하고, 지수는 서로 더하는 제1단계와; 상기 지수 가산결과를 지수범위의 상한치와 비교하여 그 비교결과에 따라 오버플로우를 표시하고 그대로 종료하거나, 가수 가산결과에서 부호비트와 동일한 비트에 해당되는 MSB 비트수를 계산하는 제2단계와; 상기 지수 가산결과를 지수범위의 하한치와 비교하여 그 비교결과에 따라 중간 계산 결과를 소정 횟수만큼 라이트시프트시켜 최종의 결과로 취하거나, 일정 횟수만큼 레프트시프트시켜 최종의 결과로 취하는 제3단계로 이루어지는 것을 특징으로 하는 디지탈신호처리기의 부동 소숫점형식 곱셈방법.
KR1019960045235A 1996-10-11 1996-10-11 디지탈신호처리기의부동소숫점형식곱셈방법 KR100425674B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960045235A KR100425674B1 (ko) 1996-10-11 1996-10-11 디지탈신호처리기의부동소숫점형식곱셈방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960045235A KR100425674B1 (ko) 1996-10-11 1996-10-11 디지탈신호처리기의부동소숫점형식곱셈방법

Publications (2)

Publication Number Publication Date
KR19980026703A KR19980026703A (ko) 1998-07-15
KR100425674B1 true KR100425674B1 (ko) 2004-06-11

Family

ID=37329276

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960045235A KR100425674B1 (ko) 1996-10-11 1996-10-11 디지탈신호처리기의부동소숫점형식곱셈방법

Country Status (1)

Country Link
KR (1) KR100425674B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040160906A1 (en) 2002-06-21 2004-08-19 Aware, Inc. Multicarrier transmission system with low power sleep mode and rapid-on capability

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0132646A2 (en) * 1983-07-21 1985-02-13 International Business Machines Corporation High speed multiplier for fixed and floating point operands
US4534010A (en) * 1980-10-31 1985-08-06 Hitachi, Ltd. Floating point type multiplier circuit with compensation for over-flow and under-flow in multiplication of numbers in two's compliment representation
US4590584A (en) * 1982-12-24 1986-05-20 Tokyo Shibaura Denki Kabushiki Kaisha Method and system for processing exponents in floating-point multiplication
US4975868A (en) * 1989-04-17 1990-12-04 International Business Machines Corporation Floating-point processor having pre-adjusted exponent bias for multiplication and division
JPH03211616A (ja) * 1990-01-17 1991-09-17 Mitsubishi Precision Co Ltd 浮動小数点演算器
JPH0498524A (ja) * 1990-08-17 1992-03-31 Nec Corp 浮動小数点演算装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4534010A (en) * 1980-10-31 1985-08-06 Hitachi, Ltd. Floating point type multiplier circuit with compensation for over-flow and under-flow in multiplication of numbers in two's compliment representation
US4590584A (en) * 1982-12-24 1986-05-20 Tokyo Shibaura Denki Kabushiki Kaisha Method and system for processing exponents in floating-point multiplication
EP0132646A2 (en) * 1983-07-21 1985-02-13 International Business Machines Corporation High speed multiplier for fixed and floating point operands
US4975868A (en) * 1989-04-17 1990-12-04 International Business Machines Corporation Floating-point processor having pre-adjusted exponent bias for multiplication and division
JPH03211616A (ja) * 1990-01-17 1991-09-17 Mitsubishi Precision Co Ltd 浮動小数点演算器
JPH0498524A (ja) * 1990-08-17 1992-03-31 Nec Corp 浮動小数点演算装置

Also Published As

Publication number Publication date
KR19980026703A (ko) 1998-07-15

Similar Documents

Publication Publication Date Title
US8719322B2 (en) Floating point format converter
US5726924A (en) Exponentiation circuit utilizing shift means and method of using same
US7912890B2 (en) Method and apparatus for decimal number multiplication using hardware for binary number operations
JP2004005662A (ja) 対数、逆対数、逆数の近似値を求めるための回路、システム、および方法
US9645792B2 (en) Emulation of fused multiply-add operations
US4366548A (en) Adder for exponent arithmetic
US20040107091A1 (en) Method of compressing lookup table for reducing memory, non-linear function generating apparatus having lookup table compressed using the method, and non-linear function generating method
US5687106A (en) Implementation of binary floating point using hexadecimal floating point unit
US6981009B2 (en) Apparatus and method for computing a logarithm of a floating-point number
US6910059B2 (en) Apparatus and method for calculating an exponential calculating result of a floating-point number
US9710229B2 (en) Apparatus and method for performing floating-point square root operation
US7814138B2 (en) Method and apparatus for decimal number addition using hardware for binary number operations
US7606850B2 (en) Method and apparatus for providing a base-2 logarithm approximation to a binary number
EP1783601A1 (en) Operation method and apparatus
US4996660A (en) Selection of divisor multipliers in a floating point divide circuit
KR100425674B1 (ko) 디지탈신호처리기의부동소숫점형식곱셈방법
JP6770777B2 (ja) 数学的関数を計算するためのシステム及び方法
KR20060103920A (ko) 스케일링된 정수를 사용하는 부동 소수점 연산
JP2001125771A (ja) 固定小数点グラフィックス装置、方法、及びデータ処理システム
US4737925A (en) Method and apparatus for minimizing a memory table for use with nonlinear monotonic arithmetic functions
KR20230076641A (ko) 부동-소수점 연산을 위한 장치 및 방법
US9658827B2 (en) Apparatus and method for performing reciprocal estimation operation
Ashenhurst The Maniac III arithmetic system
JPH09138792A (ja) ログの近似値の計算方法およびその回路
JPH04140827A (ja) 浮動小数点表示データの演算方法

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee