KR19980052740A - 디지탈 신호 처리기에서의 2배 정밀도 곱셈연산 수행방법 - Google Patents

디지탈 신호 처리기에서의 2배 정밀도 곱셈연산 수행방법 Download PDF

Info

Publication number
KR19980052740A
KR19980052740A KR1019960071765A KR19960071765A KR19980052740A KR 19980052740 A KR19980052740 A KR 19980052740A KR 1019960071765 A KR1019960071765 A KR 1019960071765A KR 19960071765 A KR19960071765 A KR 19960071765A KR 19980052740 A KR19980052740 A KR 19980052740A
Authority
KR
South Korea
Prior art keywords
bit
double precision
multiplication
status register
mac
Prior art date
Application number
KR1019960071765A
Other languages
English (en)
Other versions
KR100222032B1 (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 KR1019960071765A priority Critical patent/KR100222032B1/ko
Priority to TW086113030A priority patent/TW491975B/zh
Priority to US08/926,949 priority patent/US5920497A/en
Priority to DE19746054A priority patent/DE19746054B4/de
Publication of KR19980052740A publication Critical patent/KR19980052740A/ko
Application granted granted Critical
Publication of KR100222032B1 publication Critical patent/KR100222032B1/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • G06F9/30014Arithmetic instructions with variable precision

Landscapes

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

Abstract

본 발명은 디지탈 신호 처리기(DSP)에서의 2배 정밀도 곱셈연산 수행방법에 관한 것으로서, 누산기의 자리이동을 표시하는 비트를 상태 레지스터에 할당하고 동일한 종류의 곱셈 명령어를 사용하여 상기 상태 레지스터의 값에 따라 부호표기된 연산자와 부호표기되지 않은 연산자의 곱셈을 자유롭게 수행함으로써, 4주기 동안에 2배 정밀도의 곱셈 연산을 수행하기 위한 것이다.
이를 위하여 본 발명은 한 종류의 MAC 명령어를 사용하고, 누산기의 자리이동 상태를 나타내는 비트를 상태 레지스터에 할당하여 상기 상태 레지스터의 비트값에 따라 부호표기된 연산자와 부호표기되지 않은 연산자의 2배 정밀도 곱셈을 수행하는 것을 특징으로 한다.

Description

디지탈 신호 처리기에서의 2배 정밀도 곱셈연산 수행방법
본 발명은 디지탈 신호 처리기에서의 2배 정밀도 곱셈연산에 관한 것으로서, 보다 상세하게는 2배 정밀도 비트를 상태 레지스터에 두어 한 종류의 곱셈 및 누산(multiplication and accumulation; 이하는 MAC이라 약칭함) 명령어만을 가지고 2배 정밀도 곱셈연산을 4주기 동안에 수행할 수 있도록 함으로써, 동일한 곱셈 명령어를 이용하여 부호 표기된 연산자와 부호 표기되지 않은 연산자와의 곱셈을 자유롭게 수행할 수 있는 디지탈 신호 처리기에서의 2배 정밀도 곱셈연산 수행방법에 관한 것이다.
일반적으로 종래 디지탈 신호 처리기에서 실시되는 2배 정밀도 연산 방법은 2배 정밀도 연산 명령에 의해 2개의 레지스터를 하나의 64비트 워드로 간주하여 연산하는 것으로서, 원시 피연산자의 주소 영역과 목적 피연산자의 주소 영역의 2개의 주소 영역을 가지는 명령에 의해서 실시되는 것이다.
종래의 16비트 고정점(fixed-point) 디지털 신호 처리기(DSP)에서 2배 정밀도 곱셈 연산을 구현하는 일반적인 방법은 다음과 같다.
예를 들어 4개의 16비트 레지스터(L1)(L0)(R1)(R0)가 있을 경우 32비트로 부호 표기된 두 연산자(L1:L0)(R1:R0)에 대하여 (L1:L0)×(R1:R0)의 2배 정밀도 곱셈연산을 실행하고자 할 때 다음과 같은 6단계의 연산 과정을 밟을 수 있게 된다.
즉, L0×R0의 부호표기되지 않은 연산자들의 곱셈(unsigned-unsigned multiplication)동작을 수행하는 제1단계와, 오른쪽으로 16비트 자리이동(shift 16 bits to the right)하는 제2단계와, L1 × R0의 부호표기된 연산자와 부호표기되지 않은 연산자의 MAC(unsigned-unsigned multiplication and accumulation)동작을 수행하는 제 3 단계와, L0 × R1의 부호표기되지 않은 연산자와 부호표기된 연산자의 MAC 동작을 수행하는 제 4 단계와, 오른쪽으로 16비트 자리이동하는 제 5 단계와, L1 × R1의 부호표기된 연산자들의 MAC(signed-signed multiplication and accumulation)동작을 수행하는 제 6 단계의 계산과정을 거치게 된다.
이와 같은 계산과정은 디지탈 신호 처리기가 한 개의 MAC 유니트와 한 개의 배럴형 자리이동기를 가지고 있다고 가정할 때, 상기 제 2 단계의 자리이동 과정과 제 3 단계의 MAC 연산과정, 그리고 제 5 단계의 자리이동 과정과 제 6 단계의 MAC 연산과정을 동시에 수행할 수 있으므로 최소 4주기가 소요되었다.
그런데 일반적으로 디지탈 신호 처리기에서는 MAC을 수행하면서 2개의 데이터를 로드하고 2개의 원시 레지스터와 하나의 목적 레지스터를 나타내는 필드까지 합치면 연산자만으로도 16 비트의 메모리 대부분을 차지할 수 있으며, 또한 명령어가 16비트로 제한되어 있다.
따라서 복잡한 명령어를 만들 수 없으므로 여러 종류의 다른 MAC을 명령어로 가지고 있는 것이 불가능하여 상기와 같은 2배 정밀도 곱셈 동작은 때때로 4주기에 수행하기가 어렵게 되는 문제점이 있었다.
따라서 본 발명은 상기의 문제점을 해결하기 위해 창출한 것으로서, 본 발명은 누산기의 자리이동을 표시하는 비트를 상태 레지스터에 할당하고 동일한 종류의 곱셈 명령어를 사용하여 상기 상태 레지스터의 값에 따라 부호표기된 연산자와 부호표기되지 않은 연산자의 곱셈을 자유롭게 수행함으로써, 4주기 동안에 2배 정밀도의 곱셈 연산이 수행될 수 있도록 한 디지탈 신호 처리기에서의 2배 정밀도 곱셈연산 수행방법을 제공함에 그 목적이 있다.
상기의 목적을 달성하기 위하여 본 발명은 한 종류의 MAC 명령어를 사용하고, 누산기의 자리이동 상태를 나타내는 비트를 상태 레지스터에 할당하여 상기 상태 레지스터의 비트값에 따라 부호표기된 연산자와 부호표기되지 않은 연산자의 2배 정밀도 곱셈을 수행하는 것을 특징으로 하는 디지탈 신호 처리기에서의 2배 정밀도 곱셈연산 수행방법을 제공한다.
도 1은 본 발명의 일 실시예를 설명하기 위한 2배 정밀도 곱셈 연산 처리회로 블록도.
도 2는 본 발명을 설명하기 위한 상태 레지스터의 표시예도.
** 도면의 주요 부분에 대한 부호의 설명**
R0,R1,L0,L1 : 16비트 레지스터MUX1,MUX2 : 멀티플렉서
ALU : 산술논리연산기11 : 곱셈기
13 : 누산기15 : 배럴 쉬프터
S11 : 부호표기 제어신호S15 : 자리이동 제어신호
이하, 본 발명에 따른 디지탈 신호 처리기에서의 2배 정밀도 곱셈연산 수행방법을 첨부된 도면에 의거하여 상세히 설명한다.
도 1은 본 발명의 일 실시예를 설명하기 위한 2배 정밀도 곱셈 연산 처리회로 블록도로서, 16비트의 레지스터(R0,R1,L0,L1)를 2배 정밀도의 연산자로 선택하기 위한 멀티플렉서(MUX1)(MUX2)와, 상기 멀티플렉서에서 선택된 레지스터를 연산자로 하여 제어신호(S11)에 의해 곱셈 연산을 수행하는 곱셈기(11)와, 2배 정밀도 곱셈을 쉽게 수행할 수 있도록 설계된 배럴 쉬프터(15)와, 가산기의 변형된 형태로서 상기 배럴 쉬프터(15)와 곱셈기(11)의 출력을 더하는 산술논리연산기(ALU) 및 상기 산술논리연산기의 출력을 누산 저장하는 누산기(13)의 구성도를 보이고 있는 것으로서, 이와 같은 구조를 이용하여 누산기(13)의 결과를 배럴 쉬프터(15)에서 16 비트만큼 자리이동하면서 곱셈기(11)의 곱셈 결과와 산술논리연산기(ALU)에 의해 더할 수 있게 된다.
여기서 문제는 동일한 MAC 명령을 사용할 경우 언제 자리이동를 하고 언제 하지 말아야하느냐는 것인데, 이를 위해 누산기가 보통의 상태에 비해서 16 비트 자리이동되었다는 것을 나타내는 것으로 초기상태는 0을 갖는 자리이동 표시비트(SHIFTED)를 도 2와 같이 LEFT LONG비트와 RIGHT LONG비트와 ENABLE SHIFTED비트로 구성된 상태 레지스터에 할당한다.
이와 같이 구성되는 본 발명의 곱셈 연산 과정을 상세히 설명하면 다음과 같다.
먼저, 여기서 부호 표기된 연산자 및 부호 표기되지 않은 연산자의 곱셈을 하나의 명령어를 이용하여 수행하는 것은 SGS-Thomson의 D950 core에서 사용한 것과 같이 2배 정밀도를 나타내는 비트를 상태 레지스터에 할당하여 사용하므로서 해결할 수 있게 된다.
여기서 왼쪽 연산자와 오른쪽 연산자가 모두 2배 정밀도 연산자로 설정되었을 때, 곱셈 연산자가 L0, R0 이면 부호표기되지 않은 연산자들의 곱셈을 수행하고, L1, R0 이면 부호표기된 연산자와 부호표기되지 않은 연산자의 곱셈을 수행하며, L0, R1 이면 부호표기되지 않은 연산자와 부호표기된 연산자와의 곱셈을 수행하고, L1, R1 이면 부호표기된 연산자들의 곱셈을 수행하면 된다.
즉, 곱셈기(11)에서 L0 × R0를 수행하면 누산기(13)는 보통의 상태이므로 상태 레지스터의 SHIFTED 비트는 변하지 않고 0으로 남아 있는다.
다음으로 곱셈기(11)가 L1×R0 나 L0×R1을 수행하면 누산기(13) 값을 16 비트 오른쪽으로 자리이동시키면서 MAC을 수행하고 상태 레지스터의 SHIFTED 비트는 1로 바뀐다.
이때 누산기(13)는 16 비트 자리이동되어 있는 상태이며, 다시 L1×R0 나 L0×R1을 수행하면 이미 누산기가 16비트 자리이동되어 있으므로 보통의 MAC을 수행하면서 상태 레지스터의 SHIFTED 비트는 바뀌지 않는다.
그리고 L1×R1을 수행하면 누산기 값을 16 비트 오른쪽으로 자리이동시키면서 MAC을 수행하고 SHIFTED는 0으로 바뀐다.
이를 정리하면 SHIFTED 비트가 0일 때 L1×R0 또는 L0×R1 수행하며, SHIFTED 비트가 1일 때 L0×R0 또는 L1×R1 수행하고 누산기를 16 비트 자리이동시키면서 MAC을 수행하며 SHIFTED 비트값을 반대로 바꾼다.
그렇지 않을 경우 일반적인 동작은 2배 정밀도 곱셈을 수행하기 위해 L0×R0, L1×R0, L0×R1, L1×R1을 수행하거나 L0×R0, L0×R1, L1×R0, L1×R1을 수행하는 등 연산의 순서가 바뀌어도 상관없이 필요한 경우에 자리이동되면서 MAC을 수행하게 된다.
이와 같은 방법으로 누산기가 보통의 상태에 비해서 16 비트 자리이동되었다는 것을 나타내는 2배 정밀도 비트를 상태 레지스터에 할당하여 동일한 종류의 곱셈 명령을 이용하여 부호표기된 연산자와 부호표기되지 않은 연산자의 곱셈을 자유롭게 수행할 수 있게 된다.
이와 유사한 방법으로 상태 레지스터에 MAC과 자리이동을 제어하는 비트를 할당하여 자리이동과 MAC을 동시에 수행하는 것도 가능하다.
이와 같이 한 개의 상태 비트를 사용하고 한 종류의 MAC 명령을 이용하여 2배 정밀도 곱셈을 수행할 수 있다.
어떤 경우에는 이와 같은 메카니즘이 필요 없을 수도 있으므로 상기 SHIFTED 비트를 불능 상태로 만들 수 있는 비트가 상태 레지스터에 할당하는 것도 유용하겠다.
이상에서와 같은 본 발명에 따른 디지탈 신호 처리기에서의 2배 정밀도 곱셈연산 수행방법에 의하면 동일한 곱셈 명령어를 이용하여 부호 표기된 연산자와 부호 표기되지 않은 연산자와의 곱셈을 자유롭게 수행할 수 있는 유용함이 있다.

Claims (4)

  1. 누산기가 보통의 상태에 비해서 자리이동되었다는 것을 나타내는 비트를 상태 레지스터에 할당하고, 한 종류의 MAC 명령어를 사용하여 상기 상태 레지스터의 비트값에 따라 부호표기된 연산자와 부호표기되지 않은 연산자의 2배 정밀도 곱셈을 수행하는 것을 특징으로 하는 디지탈 신호 처리기에서의 2배 정밀도 곱셈연산 수행방법.
  2. 제 1 항에 있어서, 상기 상태 레지스터에 MAC과 자리이동을 제어하는 비트를 할당하여 자리이동과 MAC을 동시에 수행하는 것을 특징으로 하는 디지탈 신호 처리기에서의 2배 정밀도 곱셈연산 수행방법.
  3. 제 1 항에 있어서, 상기 상태 레지스터에 자리이동 표시비트를 불능상태로 만들 수 있는 제어비트를 할당하여 자리이동 표시비트의 동작을 금지시키는 것을 특징으로 하는 디지탈 신호 처리기에서의 2배 정밀도 곱셈연산 수행방법.
  4. 제 1 항에 있어서, 상기의 2배 정밀도 곱셈 과정은 SHIFTED 비트가 0일 때 L1×R0 또는 L0×R1 수행하며, SHIFTED 비트가 1일 때 L0×R0 또는 L1×R1 수행하고 누산기를 16 비트 자리이동시키면서 MAC을 수행하는 것을 특징으로 하는 디지탈 신호 처리기에서의 2배 정밀도 곱셈연산 수행방법.
KR1019960071765A 1996-12-24 1996-12-24 디지탈 신호 처리기에서의 2배 정밀도 곱셈연산 수행방법 KR100222032B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1019960071765A KR100222032B1 (ko) 1996-12-24 1996-12-24 디지탈 신호 처리기에서의 2배 정밀도 곱셈연산 수행방법
TW086113030A TW491975B (en) 1996-12-24 1997-09-09 A method and apparatus for performing a double precision operation using a single instruction type
US08/926,949 US5920497A (en) 1996-12-24 1997-09-10 Method and apparatus for performing a double precision operation using a single instruction type
DE19746054A DE19746054B4 (de) 1996-12-24 1997-10-17 Verfahren und Vorrichtung zum Ausführen einer Operation mit doppelter Genauigkeit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960071765A KR100222032B1 (ko) 1996-12-24 1996-12-24 디지탈 신호 처리기에서의 2배 정밀도 곱셈연산 수행방법

Publications (2)

Publication Number Publication Date
KR19980052740A true KR19980052740A (ko) 1998-09-25
KR100222032B1 KR100222032B1 (ko) 1999-10-01

Family

ID=19490818

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960071765A KR100222032B1 (ko) 1996-12-24 1996-12-24 디지탈 신호 처리기에서의 2배 정밀도 곱셈연산 수행방법

Country Status (4)

Country Link
US (1) US5920497A (ko)
KR (1) KR100222032B1 (ko)
DE (1) DE19746054B4 (ko)
TW (1) TW491975B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100897331B1 (ko) * 2007-12-13 2009-05-15 현대자동차주식회사 차량용 테일게이트 록킹장치 브라켓

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6233597B1 (en) * 1997-07-09 2001-05-15 Matsushita Electric Industrial Co., Ltd. Computing apparatus for double-precision multiplication
FR2853425B1 (fr) * 2003-04-07 2006-01-13 Atmel Corp Sequence de multiplication efficace pour operandes a grands nombres entiers plus larges que le materiel multiplicateur
US7266580B2 (en) * 2003-05-12 2007-09-04 International Business Machines Corporation Modular binary multiplier for signed and unsigned operands of variable widths
JP4782591B2 (ja) * 2006-03-10 2011-09-28 富士通セミコンダクター株式会社 リコンフィグラブル回路
US20080046497A1 (en) * 2006-08-18 2008-02-21 Conexant Systems, Inc. Systems and Methods for Implementing a Double Precision Arithmetic Memory Architecture
US8495125B2 (en) * 2009-05-27 2013-07-23 Microchip Technology Incorporated DSP engine with implicit mixed sign operands
US20110153995A1 (en) * 2009-12-18 2011-06-23 Electronics And Telecommunications Research Institute Arithmetic apparatus including multiplication and accumulation, and dsp structure and filtering method using the same
US9817791B2 (en) 2015-04-04 2017-11-14 Texas Instruments Incorporated Low energy accelerator processor architecture with short parallel instruction word
US11847427B2 (en) 2015-04-04 2023-12-19 Texas Instruments Incorporated Load store circuit with dedicated single or dual bit shift circuit and opcodes for low power accelerator processor
US10503474B2 (en) * 2015-12-31 2019-12-10 Texas Instruments Incorporated Methods and instructions for 32-bit arithmetic support using 16-bit multiply and 32-bit addition
US10401412B2 (en) 2016-12-16 2019-09-03 Texas Instruments Incorporated Line fault signature analysis

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4135249A (en) * 1977-06-29 1979-01-16 General Electric Company Signed double precision multiplication logic
JPH061438B2 (ja) * 1984-04-26 1994-01-05 日本電気株式会社 倍精度乗算器
CA1244955A (en) * 1985-05-17 1988-11-15 Yuichi Kawakami Processing circuit capable of raising throughput of accumulation
US4809212A (en) * 1985-06-19 1989-02-28 Advanced Micro Devices, Inc. High throughput extended-precision multiplier
JPH0612229A (ja) * 1992-06-10 1994-01-21 Nec Corp 乗累算回路
US5463575A (en) * 1994-06-24 1995-10-31 Rockwell International Corporation Reduced quantization noise from single-precision multiplier

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100897331B1 (ko) * 2007-12-13 2009-05-15 현대자동차주식회사 차량용 테일게이트 록킹장치 브라켓

Also Published As

Publication number Publication date
TW491975B (en) 2002-06-21
KR100222032B1 (ko) 1999-10-01
DE19746054A1 (de) 1998-06-25
DE19746054B4 (de) 2007-08-23
US5920497A (en) 1999-07-06

Similar Documents

Publication Publication Date Title
US5448509A (en) Efficient hardware handling of positive and negative overflow resulting from arithmetic operations
US4675809A (en) Data processing system for floating point data having a variable length exponent part
US5001662A (en) Method and apparatus for multi-gauge computation
US20050027969A1 (en) Method for performing single instruction multiple data operations on packed data
EP0627681B1 (en) Apparatus and method for processing data with a plurality of flag groups
JP2004213622A (ja) 固定小数点表示と浮動小数点表示との間で数を変換するデータ処理装置および方法
KR100222032B1 (ko) 디지탈 신호 처리기에서의 2배 정밀도 곱셈연산 수행방법
US5938759A (en) Processor instruction control mechanism capable of decoding register instructions and immediate instructions with simple configuration
US6560624B1 (en) Method of executing each of division and remainder instructions and data processing device using the method
US5682339A (en) Method for performing rotate through carry using a 32 bit barrel shifter and counter
US5546551A (en) Method and circuitry for saving and restoring status information in a pipelined computer
US5655139A (en) Execution unit architecture to support X86 instruction set and X86 segmented addressing
US6779098B2 (en) Data processing device capable of reading and writing of double precision data in one cycle
US5754460A (en) Method for performing signed division
EP1089166A2 (en) An integer instruction set architecture and implementation
US5708800A (en) High speed microprocessor for processing and transferring N-bits of M-bit data
US7580967B2 (en) Processor with maximum and minimum instructions
JP3638218B2 (ja) シフト機能付きalu命令を持つマイクロプロセッサ
JPH04195629A (ja) 演算フラグ生成装置
KR19990061571A (ko) 디지털 신호 처리기의 연산장치
KR100246472B1 (ko) 디지탈신호처리기
JP2654062B2 (ja) 情報処理装置
JP2000284960A (ja) ビット・フィールド・プロセッサ
JP2007072857A (ja) 演算処理装置および情報処理装置
JPH0833821B2 (ja) データ処理装置

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

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee