KR19990021767A - 디지탈신호처리기 - Google Patents

디지탈신호처리기 Download PDF

Info

Publication number
KR19990021767A
KR19990021767A KR1019970045341A KR19970045341A KR19990021767A KR 19990021767 A KR19990021767 A KR 19990021767A KR 1019970045341 A KR1019970045341 A KR 1019970045341A KR 19970045341 A KR19970045341 A KR 19970045341A KR 19990021767 A KR19990021767 A KR 19990021767A
Authority
KR
South Korea
Prior art keywords
data
bits
bit
rounding
guard
Prior art date
Application number
KR1019970045341A
Other languages
English (en)
Other versions
KR100297544B1 (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 KR1019970045341A priority Critical patent/KR100297544B1/ko
Priority to GB0007912A priority patent/GB2345563B/en
Priority to GB9818919A priority patent/GB2330226B/en
Priority to GB0007909A priority patent/GB2345562B/en
Priority to US09/143,351 priority patent/US6209017B1/en
Priority to DE19839627A priority patent/DE19839627B4/de
Publication of KR19990021767A publication Critical patent/KR19990021767A/ko
Application granted granted Critical
Publication of KR100297544B1 publication Critical patent/KR100297544B1/ko

Links

Classifications

    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • 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

Landscapes

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

Abstract

본 발명은 비트 수가 작은 누적기를 가지는 DSP에 관한 것이다.
DSP는 N 비트의 데이타를 입력하기 위한 데이타 입력수단과, 데이타 입력 수단으로부터의 N 비트의 데이타에 N 보다 작은 r비트의 라운딩비트를 생성시키는 라운딩비트 생성수단과, 라운딩비트 생성수단으로부터의 데이타의 상위비트에 g비트의 가드비트를 부가하는 가드비트 부가수단과, 가드비트부가수단으로부터의 데이타를 연산하는 연산수단과, 연산수단으로부터의 데이타를 라운딩 하는 라운딩 처리수단과, 라운딩된 결과 데이타의 상위 g+1 비트들의 논리값에 따라 포화처리하는 포화처리수단을 구비한다.

Description

디지탈신호처리기(Digital Signal Processor)
본 발명은 각종 디지탈(Digital)신호를 소프트웨어에 의해 처리하는 디지탈신호처리기(Digital Signal Processor: 이하 DSP라 함)에 관한 것이다.
DSP는 연산기능을 가지는 중앙처리장치(Central Processing Unit: 이하 CPU라 함)의 일종으로서, 원래 미합중국의 전자회사인 텍사스 인스트루먼츠(Texas Instruments; 이하 TI라 함) 사의 주도하에 발전되었다. 이 DSP는 최근에 비디오 및 오디오신호의 처리에 적용되면서 그 사용이 급격하게 증가되고 있다. 특히, 오디오신호의 여러가지 처리방식들 중에서 MPEG(Moving Picture Expert Group)에 의해 국제표준으로 제정되어진 오디오압축알고리듬인 뮤지캠(Musicam) 이나 돌비(Dolby) 사의 디지탈 오디오 압축·복원 알고리듬인 AC-3 등을 구현하는 DSP들이 급격하게 출현하고 있다. 이에 따라, 세게 유수의 기업들(특히, 구미의 여러회사들)은 자사의 이익을 증대하기 위하여 자사 고유의 독자적인 DSP의 개발에 박차를 가하고 있는 실정이다.
이러한 오디오신호 처리용의 DSP는 지금까지 보편적으로 사용되어온 TI사의 고정소수점(Fixed-Point) DSP에 비하여 내부 연산을 위한 워드길이(Word Length)가 길다. 예를 들면, TI사의 TMS320C5ⅹ 시리즈의 DSP는 16 비트(Bits)의 데이타 워드길이와 32 비트의 연산로직유니트(Arithmatic Logic Unit; 이하 ALU라 함)를 구비하는 반면에 MEPG의 뮤지캠 및 돌비 사의 AC-3을 구현하기 위해 개발되어진 최근의 DSP들은 거의 모두 20비트 이상의 데이타 워드길이와 48 비트 이상의 ALU를 구비하고 있다. 좀더 구체적으로 언급하면, 야마하(Yamaha)사의 YSS243, 모토로라(Motorola)사의 DSP5600ⅹ, 크리탈 세미콘덕터(Crystal Semiconductor)사의 CS2923 및 매디아닉스 세미콘덕터(Medianix Semiconductor)사의 MED25201 등의 DSP들은 모두 돌비사의 AC-3의 오디오신호를 디코딩(Deconding)하기 위해 24 비트의 데이타 워드길이와 56비트의 ALU를 구비한다. 또한, 조란(Zoran)사의 ZR38000 및 후지쓰(Fujitsu)의 MB86342 등과 같은 DSP들은 모두 돌비사의 AC-3의 오디오신호를 디코딩하기 위해 20 비트의 데이타 워드길이와 48 비트의 ALU를 구비한다.
이와 같은 구성되어진 DSP들은 모두 N비트의 길이를 가지는 두개의 데이타를 도1 에서와 같이 연산하게 된다. 제1 및 제2 데이타(10,12)는 메모리로부터 판독되어 승산기에 의해 승산됨으로써 그 승산결과인 제3 데이타를 발생시킨다. 제1 및 제2 데이타(10,12)는 모두 N 비트의 길이를 가지며 정수부와 소수부로 구성된다. 승산기의 승산결과인 제3 데이타(14)는 최대 2N 비트의 길이를 가질 수 있고 이에 따라 2N 비트의 승산용 레지스터에 일시적으로 저장되게 된다. 이어서 제3 데이타(14)는 제1 및 제2 데이타(10,12)의 정수부(Integer Part)의 비트 수, 예를 들면 R 비트 만큼 배럴쉬프터(Barrel Shifter)에 의해 쉬프트되어 그 쉬프트 결과인 2N 비트의 제4 데이타(16)가 산출되도록 한다. 제4 데이타(16)는 ALU에 의해 로직연산됨으로써 제5 데이타(18)를 생성시킨다. ALU의 연산결과인 제5 데이타(18)에는 오버플로우(Overflow)가 발생될 수 있다. 이 오버플로우를 처리하기 위하여, TI사의 TMS320C5ⅹ와 같은 DSP에서는 제5 데이타(18)를 포화시킨다. 이를 상세히 하면, ALU에 의해 연산된 제5 데이타(18)가 2N 비트의 누적용 레지스터에 저장되기 곤란한 비트길이를 가지는 경우, 즉 제5 데이타(18)에 오버플로우가 발생되면 TMS320C5ⅹ의 DSP는 제5 데이타(18)를 포화시키고 그 포화된 제5 데이타(18)를 누적용 레지스터에 저장함으로써 오버플로우에 의한 오차를 완화시킨다. 이와는 달리, 모토로라 사의 DSP5600ⅹ 등과 같은 DSP들은 도1 에서와 같이 8비트를 오버플로우 보호용으로서 누적용 레지스터에 부가한다. 이 경우, ALU와 누적용 레지스터는 모두 8 + 2N 비트의 길이를 가지게 된다. 이러한 오버플로우 보호비트를 앞서 열거한 AC-3전용 DSP들에 적용하면, 24 비트의 데이타 워드길이를 가지는 DSP들은 데이타가 N=24 비트이므로 56 비트의 누적기를 그리고 20 비트의 데이타 워드 길이를 가지는 DSP들은 데이타가 N=20 비트이므로 48 비트의 누적기를 각각 포함하게 된다. 그리고 오버플로우 보호비트들이 부가된 제5 데이타(18)는 포화처리됨으로써 메모리에 저장되어진 제1 및 제2 데이타(10,12)와 같은 비트길이를 가지는 제6 데이타(20)로 변화된다.
상기한 일련의 연산과정을 수행하기 위하여 대부분의 DSP들은 48 비트 이상의 큰 워드길이를 가지는 ALU 및 누적용 레지스터를 구비하여야만 했었다. 48 비트 이상의 큰 워드길이를 가지는 이들 ALU 및 누적기는 DSP칩(Chip)상의 다이 사이즈(Die Size)를 크게하고 아울러 ALU에서의 전파지연량을 증가시킨다. 따라서, 워드길이가 큰 ALU 및 누적기는 DSP 칩의 제조비용을 증가시키는 요인이 됨은 물론 DSP의 동작속도를 저하시키는 요인으로 작용하게 된다.
그리고 대부분의 DSP에서는 데이타의 포화처리에 앞서 라운딩(Rounding)연산을 지원한다. 예를 들면, 모토로라사의 DSP는 rnd라는 명령어에 의해 누적용 레지스터에 저장된 8 + 2N 비트의 데이타를 8 + N 비트의 데이타로 변환한다. 이 라운딩된 데이타는 최종적으로 N비트의 데이타로 포화된 후 메모리에 저장된다. 이러한 라운딩 연산을 위하여 대부분의 DSP들은 하나의 명령어 또는 클럭주기를 추가로 소모하고 있다. 이 같은 명령어 또는 클럭주기의 추가적인 소모는 루우핑(Looping) 또는 블록반복(Block Repeating)이 적용되는 코드 세그먼트(Code Segment)에 라운딩 연산이 들어가는 경우 추가로 소모되는 클럭주기들이 매우 많아져서 DSP의 전체적인 연산량이 크게 증가된다.
또한, TI사의 TMS320C5ⅹ와 같은 DSP는 ALU 앞단에 위치한 프리-스케일링 쉬프터(Pre-scaling Shifter)를 이용하여 ALU에서 연산될 이진데이타를 0 내지 16 비트까지 좌측으로 쉬프트시킨다. 이 때, 0번째 비트에서 15번째 비트까지의 쉬프트동작은 통상 이진데이타를 스케일링하는데 이용되지만, 16번째 비트가지의 쉬프트동작은 정수(Integer) 연산이 아닌 고정소수점(Fixed Point) 연산이 수행될 경우에 사용된다. 이는 고정소수점 연산의 경우에 메모리로부터 판독된 16비트 데이타가 32 비트의 누적용 레지스터의 상위비트들에 정렬되어야 하기 때문이다. 데이타를 스케일링하기 위한 0번째 비트 내지 15번째 비트까지의 쉬프트동작은 주어진 알고리듬에 따라 특히 부호화(Coding) 방식에 따라 유용하게 사용될 수도 있고 그렇지 않을 수도 있다. 프리스케일링이 유용하게 사용되지 않는 코드로 구현된 알고리듬을 수행하는 경우에 스케일링 쉬프터는 그다지 도움을 주지 않으면서 DSP 칩의 다이 사이즈를 크게함과 아울러 전파지연량을 증가시킨다. 일례로, 모토로라사의 DSP에 포함된 프리-스케일링 쉬프터는 데이타를 좌측 또는 우측으로 1비트 만큼 쉬프트시키게 되어 있다. 대신에, 모토로라의 DSP는 부동소수점 연산과 정수 연산을 위해 서로 다른 승산명령어를 제공함으로써 TI사의 TMS320C5ⅹ가 데이타를 16 비트 만큼 좌측으로 쉬프트하는 동작을 흡수하고 있다.
다음으로, DSP에서는 각 명령어가 얼마나 빠르게 수행될 수 있는가 하는 것이 중요하게 여겨지고 있다. 명령어의 고속 수행을 위하여는 DSP에 인가되는 명령어의 주기가 짧아져야 하고 가능한 많은 명령어가 병렬로 처리되어야 한다. 전자의 명령어 주기를 짧게하는 것은 하드웨어, 즉 회로구성에 관련된 문제로서 DSP에 가능한 불필요한 블록(예를 들면, 이미 언급한 프리-스케일링 쉬프터)이 존재하지 않도록 하여 회로적인 경로를 짧게 하는 것이다. 후자의 명령어의 병렬처리능력은 DSP가 많은 계산을 필요로 하는 비디오/오디오 디코딩의 용도로 사용되면서 과거와 같은 순차적인 명령수행방식으로는 필요한 계산능력을 갖추지 못하는 것에서 비롯된다. 따라서, DSP들은 병렬처리가 가능한 특수한 명령어들을 갖추어 가고 있는 실정이다. 예를 들면, 아날로그 디바이스(Analog Device)사의 DSP인 DSP21020은 FFT 연산을 위한 버터플라이(Butterfly) 연산과 같이 다수의 복합연산식들을 몇개의 클럭주기만에 수행하는 특수 명령어들을 가지고 있다. 이를 위하여, ADSP21020은 연산과 관련된 최소 12개의 레지스터들로 구성되어진 레지스터 화일(Register File)을 갖추고 있다. 또한, Zoran사의 ZR38000도 FFT용 버터플라이와 같은 다수의 복합연산식들을 단 몇개의 클럭주기만에 수행한다. 이를 위해, ZR38000은 8개의 레지스터들로 이루어진 레지스터 화일을 가짐과 아울러 승산과 그 결과의 가감산을 한 클럭주기안에 한꺼번에 수행하는 구조를 가지고 있다.
따라서, 본 발명의 목적은 워드길이가 짧은 누적용 레지스터와 ALU를 가지는 DSP를 제공함에 있다.
본 발명의 다른 목적은 데이타의 라운딩에 클럭주기를 추가로 소모하지 않는 DSP를 제공함에 있다.
본 발명의 또 다른 목적은 데이타의 스케일링을 포함하는 연산을 고속으로 수행할 수 있는 DSP를 제공함에 있다.
도1 은 종래의 DSP의 신호처리과정을 개략적으로 도시하는 도면.
도2 는 본 발명의 실시예에 따른 DSP의 블럭도.
도3 은 도2에 도시된 라운딩/포화 처리기(86)에 의해 라운딩비트수가 데이타의 비트수 N 보다 작은 r 로 작아지는 고정소수점 연산과정을 설명하는 도면.
도면의 주요부분에 대한 부호의 설명
30,40,44,48,64,66,76,78 : 제1 내지 제8 레지스터
32,34,82,84 : 제1 내지 제4 비트정렬기38 : 가드비트부가기
36,42,52,54,56,62,68,70,74,80,88 : 제1 내지 제11 멀티플렉서
46 : 승산기38 : 비트조절기
58,72 : 제1 및 제2 ALU60 : 배럴쉬프터
86 : 라운딩/포화처리기
상기 목적을 달성하기 위하여, 본 발명에 따른 DSP는 N 비트의 데이타를 입력하기 위한 데이타 입력수단과, 데이타 입력 수단으로부터의 N 비트의 데이타로부터 N 보다 작은 r비트의 라운딩비트를 생성시키는 라운딩비트 생성수단과, 라운딩비트 생성수단으로부터의 데이타의 상위비트에 g비트의 가드비트를 부가하는 가드비트 부가수단과, 가드비트부가수단으로부터의 데이타를 연산하는 연산수단과, 연산수단으로부터의 데이타를 라운딩 하는 라운딩 처리수단과, 라운딩된 결과 데이타의 상위 g+1 비트들의 논리값에 따라 포화처리하는 포화처리수단을 구비한다.
본 발명에 따른 DSP는 N 비트의 데이타를 입력하기 위한 데이타 입력수단과, 데이타 입력 수단으로부터의 N 비트의 데이타로부터 N 보다 작은 r비트의 라운딩비트를 생성시키는 라운딩비트 생성수단과, 라운딩비트 생성수단으로부터의 데이타의 상위비트에 g비트의 가드비트를 부가하는 가드비트 부가수단과, 가드비트 부가수단으로부터의 데이타를 연산하는 연산수단과, 연산수단으로부터의 데이타의 라운딩과 포화처리를 행하는 라운딩/포화처리수단을 구비한다.
DSP는 N 비트의 데이타를 입력하기 위한 데이타 입력수단과, 데이타 입력 수단으로부터의 N 비트의 데이타에 N 보다 작은 r비트의 라운딩비트를 생성시키는 라운딩비트 생성수단과, 라운딩비트 생성수단으로부터의 데이타의 상위비트에 g비트의 가드비트를 부가하는 가드비트 부가수단과, 가드비트부가수단으로부터의 데이타를 연산하는 연산수단과, 연산수단으로부터의 데이타를 라운딩 하는 라운딩 처리수단과, 라운딩된 결과 데이타의 상위 g+1 비트들의 논리값에 따라 포화처리하는 포화처리수단을 구비한다.
본 발명에 따른 DSP는 N 비트의 데이타를 입력하기 위한 데이타 입력수단과, 데이타 입력 수단으로부터의 N 비트의 데이타에 N 보다 작은 r비트의 라운딩비트를 생성시키는 라운딩비트 생성수단과, 라운딩비트 생성수단으로부터의 데이타의 상위비트에 g비트의 가드비트를 부가하는 가드비트 부가수단과, 가드비트부가수단으로부터의 데이타를 연산하는 연산수단과, 연산수단으로부터의 데이타의 라운딩과 포화처리를 행하는 라운딩/포화처리수단을 구비한다.
본 발명에 따른 DSP는 N 비트의 데이타를 입력하기 위한 데이타 입력수단과, 데이타 입력수단으로부터의 N 비트의 데이타로부터 N 보다 작은 r비트의 라운딩비트를 생성시키는 라운딩비트 생성수단과, 라운딩비트 생성수단으로부터의 데이타의 상위비트에 g비트의 가드비트를 부가하는 가드비트 부가수단과, 가드비트 부가수단으로부터의 데이타와 귀환루프로부터의 데이타를 연산하는 연산로직수단과, 연산로직수단으로부터의 데이타를 일시적으로 저장하고 귀환루프와 연결된 메모리와, 가드비트 부가수단으로부터의 데이타를 스케일링하기 위한 스케일링수단과, 스케일링수단으로부터의 데아타와 연산로직수단으로부터의 데이타를 선택적으로 메모리쪽으로 전송하는 선택수단과, 메모리로부터의 데이타를 연산수단으로부터의 데이타를 라운딩과 포화처리하는 라운딩/포화처리수단을 구비한다.
본 발명에 따른 DSP는 N 비트의 데이타를 입력하기 위한 데이타 입력수단과, 데이타입력수단으로부터의 N 비트의 데이타에 N 보다 작은 r비트의 라운딩비트를 생성시키는 라운딩비트 생성수단과, 라운딩비트 생성수단으로부터의 데이타의 상위비트에 g비트의 가드비트를 부가하는 가드비트 부가수단과, 가드비트부가수단으로부터의 데이타와 귀환루프로부터의 데이타를 연산하는 연산로직수단과, 연산로직수단으로부터의 데이타를 일시적으로 저장하고 귀환루프와 연결된 메모리와, 가드비트 부가수단으로부터의 데이타를 스케일링하기 위한 스케일링수단과, 스케일링수단으로부터의 데이타와 연산로직수단으로부터의 데이타를 선택적으로 메모리쪽으로 전송하는 선택수단과, 메모리로부터의 데이타를 라운딩 및 포화처리하는 라운딩/포화처리수단을 구비한다.
본 발명에 따른 DSP는 N 비트의 데이타를 입력하기 위한 데이타 입력수단과, 데이타입력수단으로부터의 N 비트의 데이타에 N 보다 작은 r비트의 라운딩비트를 생성시키는 라운딩비트 생성수단과, 라운딩비트 생성수단으로부터의 데이타의 상위비트에 g비트의 가드비트를 부가하는 가드비트 부가수단과, 두개의 N비트 데이타의 곱을 저장하는 저장수단과, 저장수단으로부터의 곱값에서 g+N+r 비트의 데이타를 이끌어내는 배선조절기기와, 배선조절기 및 가드비트 부간수단으로부터의 데이타들과 누적된 값 중 두개를 연산하는 연산수단과, 연산수단으로부터의 데이타를 라운딩 처리하는 라운딩수단과, 라운딩수단으로 부터의 데이타를 그 데이타의 상위 g+1 비트들의 논리값에 따라 포화처리하는 포화처리수단을 구비한다.
상기 목적외에 본 발명의 다른 목적 및 잇점들은 첨부한 도면을 참조한 실시예에 대한 상세한 설명을 통하여 명백하게 드러나게 될 것이다.
이하, 본 발명의 실시예를 첨부한 도2 및 도3을 참조하여 상세히 설명하기로 한다.
도2 를 참조하면, 제1 외부버스(31)로부터 N 비트의 데이타를 입력하기 위한 제1 레지스터(30)와, 이 제1 레지스터(30)에 병렬 접속된 제1 및 제2 비트정렬기(32,34)를 구비하는 본 발명의 실시예에 따른 DSP가 도시되어 있다. 제1 외부버스(31)는 도시하지 않은 작업용 메모리에 공통적으로 접속되어진 N 개의 데이타라인들로 구성된 것으로서 N비트의 제1 읽기전용데이타버스(First Read Data Bus)로 사용된다. 제1 레지스터(30)는 제1 외부버스(31)를 경유하여 메모리로부터의 N 비트의 데이타를 일시적으로 보관하게 된다. 제1 및 제2 비트정렬기(32,34)는 제1 레지스터(30)로부터의 N비트의 데이타를 쉬프트시킴으로써 데이타를 N 비트에서 N+r 비트로 확장시키는 역할을 한다. 이를 상세히 하면, 제1 비트 정렬기(32)는 고정소수점 연산을 위해 N 비트의 데이타를 r 비트 만큼 좌측으로 쉬프트시킨다. 이를 위해, 제1비트정렬기(32)는 제1 레지스터(30)의 N비트의 출력라인들을 제1 멀티플렉서(36)의 N+r 개의 단자들로 이루어진 제1 입력포트중 상위 N 개의 입력단자들에 접속시키는 배선을 가진다. 제2 비트정렬기(34)는 정수 연산을 위해 N 비트의 데이타를 r 비트 만큼 우측으로 쉬프트시킨다. 이 때, 상위 r 비트들은 DSP의 사인-확장모드(Sign-Extension Mode)에 따라 사인(정(+) 또는 부(-) 비트들로서 채워지기도 하고 또는 0의 값들로 채워지기도 한다. 이를 위해, 제2 비트 정렬기(34)는 제1 레지스터(30)의 N비트의 출력라인들을 제1 멀티플렉서(36)의 N+r 개의 단자들로 이루어진 제2 입력포트중 하위 N 개의 입력단자들에 접속시키는 배선을 가진다. 상위 r비트는 상기 언급한대로 Sign bit 혹은 0 으로 채워진다. 제1 멀티플렉서(36)는 연산의 종류, 즉 고정소수점/정수 연산에 따라 제1 입력포토상의 N+r 비트의 데이타 또는 제2 입력포트상의 N+r 비트의 데이타를 제1 가드비트(Guard Bits)부가기(38)에 공급한다. 이 제1 가드비트부가기(38)는 제1 멀티플렉서(36)로부터의 N+r 비트의 데이타에 g 비트의 가드비트들을 부가한다. g 비트의 가드비트들은 모두 0으로 세트되거나 데이타의 사인을 확장시키게 된다. 이를 상세히 하면, g 비트의 가드비트들은 사인-확장모드가 세트된 경우에 모두 데이타의 사인비트와 동일한 논리값을 그리고 사인-확장모드가 리세트된 경우에는 모두 0의 논리값을 가지게 된다. 사인-확장모드는 특정한 명령어에 의해 세트 또는 리세트된다. 이들 g 비트의 가드비트들을 N+r 비트의 데이타에 부가하기 위하여, 제1 가드비트부가기(38)는 N+r 개의 단자들로 이루어진 제1멀티플렉서(36)의 출력포토를 제1 내부버스(35)에 포함된 g+N+r 개의 라인들 중 하위의 N+r개의 라인들에 연결시키는 배선을 가진다.
상기 DSP는 제1 외부버스(31)에 직렬 접속된 제2 레지스터(40) 및 승산기(46)와, 제1 및 제2 외부버스(31,33)와 접속되어진 제2 멀티플렉서(42)를 추가로 구비한다. 제2 레지스터(40)는 제1 레지스터(30)와 마찬가지로 제1 외부버스(31)를 경유하여 입력되는 메모리로부터의 N 비트 데이타를 일시적으로 저장하는 역할을 담당한다. 제2 외부버스(33)는 도시하지 않은 프로그램 메모리 및 CPU에 공통적으로 접속된 N개의 라인들로 구성된 것으로서 제2 읽기전용 데이타 버스(Second read data bus)로 사용된다. 제2 멀티플렉서(42)는 자신의 제1 입력포트에 공급되는 제1 외부버스(31)로부터 N비트의 데이타와 자신의 제2 입력포트에 공급되는 제2 외부버스(33)로부터의 N비트의 데이타 중 어느 한 데이타를 제3 레지스터(44)에 공급한다. 제3 레지스터(44)는 제2 멀티플렉서(42)로부터의 N 비트의 데이타를 일시적으로 저장한다. 승산기(46)는 제2 및 제3 레지스터(40,44)에 저장된 두 개의 데이타를 승산한다. 이 승산기(46)에 의해 승산되어진 결과는 2N 비트를 가질 수 있다. 이에 따라, 승산기(46)으로부터의 데이타를 일시적으로 저장하는 제4 레지스터(48)는 2N 비트의 길이를 가진다. 제4 레지스터(48)와 제2 내부버스(37) 사이에 접속된 배선조절기(50)는 제4 레지스터(48)에 저장되어진 2N 비트의 데이타를 2N 보다 작은 N+r 비트의 데이타로 변환하고 그 변환된 N+r 비트의 데이타에 g비트의 가드 비트를 부가한다.
그리고 상기 DSP는 제1 내부버스(35)에 공통적으로 접속되어진 제3 내지 제5 멀티플렉서(52 내지 56)를 구비한다. 제3 멀티플렉서(52)는 제1, 제2 및 제4 내부버스(35,37,43)로부터 g+N+r 비트의 데이타를 각각 입력하는 제1 내지 제3 입력포트를 가진다. 제3 멀티플렉서(52)는 제1, 제2 및 제4 내부버스(35,37,43)로부터의 3개의 데이타 중 어느 하나를 제1 ALU(58)에 공급한다. 제4 멀티플렉서(54)는 0의 논리값을 입력하는 제1 입력포트(39)와, 제1 및 제3 내부버스(35,41)로부터 g+N+r 비트의 데이타를 각각 입력하는 제2 및 제3 입력포트를 구비한다. 제4 멀티플렉서(54)는 자신의 제1 내지 제3 입력포트상의 3개의 데이타 중 어느 하나를 제1 ALU(58)에 공급하게 된다. 제1 ALU(58)는 제3 및 제4 멀티플렉서(52,54)로부터의 두개의 데이타를 연산하여 그 연산된 결과를 제6 멀티플렉서(62)에 공급한다. 제5 멀티플렉서(56) 도 제1 내부버스(35)로부터의 g+N+r 비트의 데이타와 제3 내부버스(41)로부터의 g+N+r 비트의 데이타를 선택적으로 배럴쉬프터(60)에 공급한다. 배럴쉬프터(60)는 제5 멀티플렉서(56)로부터의 데이타의 논리값을 스케일하고 그 스케일링된 데이타를 제6 멀티플렉서(62)에 공급한다. 이 데이타의 스케일링을 위해 베럴쉬프터(60)는 스케일링 양에 해당하는 비트수 만큼 제5 멀티플렉서(56)로부터의 데이타의 좌측 또는 우측방향으로 쉬프트시킨다. 또한, 배럴쉬프터(60)는 제1 ALU(58)와 병렬 접속되므로써 데이타의 전파지연시간을 최소화할 수 있다. 이에 따라, 상기 DSP는 사칙연산, 스케일링 및 그를 포함한 사칙연산을 고속으로 수행할 수 있다. 제6 멀티플렉서(62)는 제1 ALU(58)로부터의 g+N+r 비트의 사칙연산되어진 데이타와 배럴쉬프터(60)로부터의 스케일드된 데이타를 선택적으로 제5 또는 제6 레지스터(64 또는 66)에 공급한다. 제5 또는 제6 레지스터(64 또는 66)에 저장되는 데이타는 제3 내부버스(41)에 공급되게 된다. 제5 및 제6 레지스터(64,66)는 누적용 레지스터들로서 제1 ALU(58)와 함께 제1 누적기를 구성하게 된다. 제5 및 제6 레지스터(64,66) 모두 g+N+r 비트의 데이타를 일시적으로 저장하기 위해 g+N+r 비트의 길이를 가지며 아울러 제3 내부버스(41)도 g+N+r 개의 라인으로 구성된다.
또한 상기 DSP는 제1 내부버스(35) 및 제4 내부버스(43)와 접속되어진 제7 멀티플렉서(68)와, 제1 및 제2 내부버스(35,37)와 접속되어진 제8 멀티플렉서(70)를 구비한다. 제7 멀티플렉서(68)는 0의 논리값을 입력하는 제1 입력포트(45)와, 제1 및 제4 내부버스(35,43)로부터 g+N+r 비트의 데이타를 각각 입력하는 제2 및 제3 입력포트를 구비한다. 제7 멀티플렉서(68)는 자신의 제1 내지 제3 입력포트상의 3개의 데이타 중 어느 하나를 제2 ALU(72)에 공급하게 된다. 제8 멀티플렉서(70)는 제1 및 제2 내부버스(35,37)로부터 g+N+r 비트의 데이타를 각각 입력하는 제1 및 제2 입력포트를 가진다. 제8 멀티플렉서(70)는 제1 및 제2 내부버스(35,37)로부터의 2개의 데이타 중 어느 하나를 제2 ALU(72)에 공급한다. 제2 ALU(72)는 제7 및 제8 멀티플렉서(68,70)로부터의 두개의 데이타를 연산하여 그 연산된 결과를 제9 멀티플렉서(74)에 공급한다. 제9 멀티플렉서(74)는 제2 ALU(72)로부터의 g+N+r 비트의 연산되어진 데이타와 배럴쉬프터(60)로부터의 스캐일링된 데이타를 선택적으로 제7 또는 제8 레지스터(76 또는 78)에 공급한다. 제7 또는 제8 레지스터(76,78)는 제9 멀티플렉서(74)로부터의 데이타를 제4 내부버스(43)에 공급되게 된다. 제7 및 제8 레지스터(76,78)는 누적용 레지스터로서 제2 ALU(72)와 함께 제2 누적기를 구성하며, 이 제2 누적기는 제1 누적기와 병렬로 접속됨으로써 2 이상의 복합연산식들이 병렬로 연산되도록 한다. 제7 및 제8 레지스터(76,78)는 모두 g+N+r 비트의 데이타를 일시적으로 저장하기 위해 g+N+r 비트의 길이를 가진다. 또한, 제7 및 제8 레지스터(76,78)는 제5 및 제6 레지스터(64,66)와 함께 다수의 복합연산식들이 빠르게 연산되도록 한다.
더 나아가, 상기 DSP는 제3 및 제4 내부버스(41,43)로부터의 두개의 g+N+r 비트 데이타들을 선택하기 위한 제10 멀티플렉서(80)와, 이 제10 멀티플렉서(80)에 공통적으로 접속되어진 제3 및 제4 비트정렬기(82,84)와 라운딩/포화(Round/Saturation)처리기(82)를 추가로 구비한다. 제10 멀티플렉서(80)는 제3 내부버스(41)를 경유한 제5 또는 제6 레지스터(64,66)로부터의 g+N+r 비트의 데이타와 제4 내부버스(23)를 경유한 제7 또는 제8 레지스터(76,78)로부터의 g+N+r 비트의 데이타 중 어느 한 데이타를 제3 및 제4 비트정렬기(82,84)와 라운딩/포화 처리기(86)에 공통적으로 공급한다. 제3 및 제4 비트정렬기(82,84)는 제10 멀티플렉서(80)로부터의 g+N+r 비트의 데이타에서 N 비트만을 추출하여 그 추출된 N 비트의 데이타를 제11 멀티플렉서(88)의 제1 및 제2 입력포트에 각각 공급한다. 이를 상세히 하면, 제3 비트정렬기(82)는 제10 멀티플렉서(80)로부터의 g+N+r 비트의 데이타 중 상위 g+1 번째 비트로부터 N 비트의 데이타만을 추출하여 그 추출된 N 비트의 데이타를 제11 멀티플렉서(88)의 제1 입력포트에 공급한다. 이를 위하여, 제3 비트정렬기(82)는 제10 멀티플렉서(80)의 g+N+r 개의 출력단자들 중 상위 g+1 번째 단자로부터 N 개의 단자들, 즉 상위 g 개의 단자들과 하위 r개의 단자들을 제외한 나머지 N 개의 단자들을 N 개의 단자들로 이루어진 제11 멀티플렉서(88)의 제1 입력포트에 접속시키는 배선을 구비한다. 단순히 배선에 의해서만 제3 비트정렬기(82)는 g+N+r 비트의 데이타를 N 비트의 데이타로 변환시킨다. 제4 비트정렬기(84)는 제10 멀티플렉서(80)로부터의 g+N+r 비트의 데이타 중 하위 N 비트의 데이타만을 추출하여 그 추출된 N비트의 데이타를 제11 멀티플렉서(88)의 제2 입력포트에 공급한다. 이를 위하여, 제4 비트정렬기(84)는 제10 멀티플렉서(80)의 g+N+r 개의 출력단자들 중 하위 N 개의 단자들, 즉 상위 g+N+r 개의 단자들을 제외한 나머지 N 개의 단자들을 N 개의 단자들로 이루어진 제11 멀티플렉서(88)의 제2 입력포트에 접속시키는 배선을 가진다. 제4 비트정렬기(84)는 제1 내지 제3 비트정렬기들(32,34,82)과 함께 단순히 배선에 의해 구성됨으로써 별도의 회로블럭을 요구하지 않는다. 이에 따라, 제1 내지 제4 비트정렬기들(32,34,82,84)은 DSP의 회로구성을 간소화 할 수 있음은 물론 고정소수점 연산 및 정수연산 모두가 고속으로 수행되도록 한다.
라운딩/포화처리기(86)는 도시하지 않은 제어기로 부터의 명령에 따라 라운딩처리모드, 포화처리모드, 또는 병합모드로 구동된다. 라운딩 모드시 라운딩/포화처리기(86)는 제10멀티플렉서(80)로 부터의 g+N+r 비트의 데이타에서 r+1번째 하위비트로부터 N비트의 데이타를 선택하여 제11 멀티플렉서(88)의 제3 입력포트에 공급한다. 다음으로 라운딩/포화처리기(86)는 포화모드시에는 제10 멀티플렉서(80)로부터의 g+N+r 비트의 데이타에서 상위 g+1 비트들의 논리값에 따라 데이타를 처리하게 된다. 이를 상세히하면, 라운딩/포화 처리기(86)는 제10멀티플렉서(80)로부터의 g+N+r 비트의 데이타에서 상위 g+1 비트들(즉, g개의 가드비트들과 1개의 사인비트)의논리값들이 모두 동일한가에 따라 오버플로우(Overflow)의 발생여부를 판단한다. 상위 g+1 비트들의 논리값들이 모두 동일한 경우에 라운딩/포화 처리기(86)는 제10 멀티플렉서(80)로부터의 g+N+r 비트의 데이타중 상위 g 비트와 하위 r 비트를 제외한 나머지 N 비트의 데이타를 연산되어진 결과로써 제11 멀티플렉서(88)의 제3 입력포트에 공급한다. 반대로 상위 g+1 비트들의 논리값들이 모두 동일하지 않은 경우에 라운딩/포화 처리기(86)는 g 개의 가드비트들중 최상위비트의 논리값이 0 또는 1인가를 판단한다. 라운딩/포화 처리기(86)는 최상위 가드비트의 논리값이 0인 경우에 제10 멀티플렉서(80)로부터의 데이타가 오버플로우가 발생되어진 정(+)의 데이타인 것으로 간주하여 최상위 비트만이 0의 논리값을 가지는 최대값의 N 비트의 데이타(즉, 0111…11)를 제11 멀티플렉서(88)의 제3 입력포트에 공급한다. 이와는 달리 최상위 가드비트의 논리값이 1인 경우, 라운딩/포화 처리기(86)는 제10멀티플렉서(80)로부터의 데이타가 오버플로우가 발생되어진 부(0)의 데이타인 것으로 간주하여 최상위 비트만이 1의 논리값을 가지는 N 비트의 데이타(즉, 1000…00)를 제11 멀티플렉서(88)의 제3 입력포트에 공급한다. 이와 같이 포화처리기(86)는 가드비트들과 사인비트의 논리값에 근거하여 ALU(58 또는 72)에 의해 연산된 데이타의 포화논리값(즉, 오버플로우가 발생되어진 논리값)을 정확하게 처리하게 된다. 마지막 병합모드시, 라운딩/포화처리기(86)는 제10멀티플렉서(80)로부터의 g+N+r 비트의 데이타에 대하여 상기 라운딩 처리를 수행한 다음 그 라운딩된 g+N 비트의 데이타에 대하여 포화처리를 수행하게 된다. 이렇게 라운딩/포화처리기(86)에 의해 라운딩 및 포화처리된 N비트 데이타는 제11 멀티플렉서(88)에 공급되게 된다. 이 경우, 라운딩/포화처리기(86)는 하위 비트들에 대한 라운딩 처리를 먼저 수행하되, 라운딩과 포화 처리를 하나의 클럭주기내에 수행함으로써 별도의 라운딩 처리시간을 소모하지 않는다. 이에 따라, 라운딩/포화처리기(86)는 별도의 시간을 소모하지 않으면서 고정소수점 연산되어진 데이타를 라운딩 할 수 있는 이점을 제공한다. 제11 멀티플렉서(88)는 제3 및 제4 비트정렬기(82,84)와 라운딩/포화처리기(86)로부터의 3개의 N 비트 데이타중 어느 하나를 제3 외부버스(47)쪽으로 전송한다. 제3 외부버스(47)는 기록용데이타버스(Write Data Bus) 및 기록용어드레스버스(Write Address Bus)로 구성된 N 개의 라인으로 이루어져 있다.
도3은 도2에 도시된 라운딩/포화처리기(86)에 의해 라운딩비트수가 데이타의 비트수 N 보다 작은 r 로 작아지는 고정소수점 연산과정을 도시한다. 도3에 있어서, 제1 및 제2 데이타(90,92)는 메모리(도시하지 않음)로부터 순차적으로 판독되어진 것들로서 각각 N 비트의 길이를 가진다. 또한 제1 및 제2 데이타(90,92)의 최상위 비트에는 논리값이 음수 또는 양수인가를 나타내는 1 비트의 사인비트가 포함되어 있다. 이들 제1 및 제2 데이타(90,92)는 도2 에 도시된 승산기(46)에 의해 연산됨으로써 2N 비트의 길이를 가지는 제3 데이타(94)를 발생시킨다. 이 제3 데이타(94)는 도2 에 도시된 배선조절기(50)에 의해 제4 데이타(96)로 변환한 다음 또다시 그 조절된 데이타에 g 비트의 가드비트들이 부가됨으로써 g+N+r 비트의 제4 데이타(96)로 변화된다. 여기서, g는 가드비트들의 수를 그리고 r은 라운딩 비트들의 수를 나타낸다. 이들 가드비트들과 라운딩비트들의 논리값은 연산 및/또는 쉬프트에 의해 0이 아닌 임의의 논리값을 가질 수 있다. 제5 데이타(98)는 제4 데이타(96)에서 s 비트의 하위 비트들을 잘라 냄으로써 얻어진 것으로 ALU들(54,72)의 입력 데이타로 사용되게 된다. 또한, 제5 데이타(98)는 ALU(58 또는 72)를 거쳐서 g+N+r 비트의 길이를 가지는 누적용 레지스터(64 또는 76, 혹은 66 또는 78)에 일시적으로 저장되게 된다. 누적용 레지스터(64 또는 76, 혹은 66 또는 78)에 저장되어진 제5 데이타(98)는 도2 에 도시된 라운딩/포화 처리기(86)에 의해 처리됨으로써 N 비트의 길이를 가지는 제6 데이타(100)로 치환된다. 이 때, 제5 데이타(98)는 우선 반올림처리를 하여 g+N 비트의 데이타로 변환되고, 그후에 상위 g+1 비트들(즉, g개의 가드비트들과 1개의 사인비트)의 논리값들이 동일한가 그리고 최상위 가드비트가 1 또는 0인가에 따라 다른 방식으로 처리되어 최종적으로 N 비트의 데이타로 변환된다. 상위 g+1 비트들의 논리값이 동일한 경우에 제5 데이타(98)는 g+N+1 비트 중 상위 g 비트와 하위 r 비트를 제외한 나머지 N 비트를 가지는 제6 데이타(100)로 치환된다. 상위 g+1 비트들의 논리값들이 동일하지 않고 최상위비트가 0인 경우에 제5 데이타(98)는 오버플로우가 발생되어진 양의 데이타로 간주되어 최상위 비트만이 0의 논리값을 가지는 N 비트의 제6 데이타(100), 즉 0111…11로 치환된다. 이와는 달리, 상위 g+1 비트들의 논리값들이 동일하지 않고 최상위비트가 1인 경우에 제5 데이타(98)는 오버플로우가 발생되어진 부(-)의 데이타로 간주되어 최상위 비트만이 1의 논리값을 가지는 N 비트의 제6 데이타(100), 즉 1000…00으로 치환된다. 이러한 연산과정에 의해 최종적으로 산출되어진 제6 데이타(100)는 오차가 가능한 한 최소화된 근사적인 값을 가지게 된다.
상술한 바와 같이, 본 발명의 DSP는 ALU에 공급되는 데이타의 비트수(즉, 워드길이)를 배선에 의해 조절함으로써, ALU 및 누적용 레지스터의 길이를 짧게 할 수 있다. 또한, 본 발명에 따른 DSP는 데이타의 포화처리시에 데이타의 라운딩이 동시에 수행됨으로써 데이타의 라운딩 처리에 소요되는 시간을 없앨 수 있다. 이에 따라, 본 발명에 따른 DSP는 신호처리를 고속화 할 수 있다.
또한, 본 발명에 따른 DSP에서는 배선으로 구현되어진 비트정렬기들이 누적기의 전단 및 후단에 배치됨으로써 고정소수점 및 정수 연산이 빠르게 수행됨과 아울러 회로구성이 간소화 된다.
나아가 본 발명에 따른 DSP는 배럴쉬프터를 ALU와 병렬 접속시킴으로써 전파지연시간을 최소화 할 수 있음은 물론 연산에 필요한 클럭의 수를 작게 할 수 있다. 이에 따라, 본 발명에 따른 DSP는 연산, 스케일링 및 그를 포함한 연산을 고속으로 수행할 수 있다.
본 발명에 따른 DSP는 병렬 접속되어진 한쌍의 ALU를 이용하여 두개의 복합연산식을 병렬로 연산함으로써 다수의 복합연산식들을 고속으로 연산할 수 있다.
이상 설명한 내용을 통해 당업자라면 본 발명의 기술사상을 일탈하지 아니하는 범위에서 다양한 변경 및 수정이 가능함을 알 수 있을 것이다. 따라서, 본 발명의 기술적 범위는 실시예에 기재된 내용으로 한정되는 것이 아니라 특허 청구의 범위에 의하여 정하여져야만 한다.

Claims (27)

  1. N 비트의 데이타를 입력하기 위한 데이타 입력수단과,
    상기 데이타 입력수단으로부터의 상기 N 비트의 데이타에 상기 N 보다 작은 r비트의 라운딩비트를 생성시키는 라운딩비트 생성수단과,
    상기 라운딩비트 생성수단으로부터의 데이타의 상위비트에 g비트의 가드비트를 부가하는 가드비트 부가수단과,
    상기 가드비트 부가수단으로부터의 데이타를 연산하는 연산수단과,
    상기 연산수단으로부터의 데이타를 라운딩 처리하는 라운딩수단과,
    상기 라운딩수단으로 부터의 데이타의 상위 g+1 비트들의 논리값에 따라 포화처리하는 포화처리수단을 구비하는 것을 특징으로 하는 디지탈신호처리기.
  2. 제 1 항에 있어서,
    상기 포화처리수단은 상기 연산수단으로부터의 데이타를 그 데이타의 상위 g+1 비트들의 논리값들이 다른 경우에만 포화처리를 수행하는 것을 특징으로 하는 디지탈 신호처리기.
  3. 제 2 항에 있어서,
    상기 포화처리수단은 상기 연산수단으로부터의 데이타의 상위 g+1 비트들의 논리값들이 다른 경우 최상위비트만이 0의 논리값을 가지는 N비트의 데이타와 최상위비트만이 1의 논리값을 가지는 N비트의 데이타를 선택적으로 발생하는 것을 특징으로 하는 디지탈 신호처리기.
  4. 제 3 항에 있어서,
    상기 포화처리수단은 상기 연산수단으로부터의 데이타의 최상위비트 비트의 논리값이 0일 때 최상위비트만이 0의 논리값을 가지는 N비트의 데이타를 발생하고 상기 최상위비트의 논리값이 1일 때에는 최상위비트만이 1의 논리값을 가지는 N비트의 데이타를 발생하는 것을 특징으로 하는 디지탈 신호처리기.
  5. 제 1 항 내지 제 4 항에 있어서,
    상기 라운딩비트 생성수단이 배선에 의해 구현된 것을 특징으로 하는 디지탈 신호처리기.
  6. 제 5 항에 있어서,
    상기 가드비트 부가수단이 배선에 의해 구현된 것을 특징으로 하는 디지탈신호처리기.
  7. N 비트의 데이타를 입력하기 위한 데이타 입력수단과,
    상기 데이타 입력수단으로부터의 상기 N 비트의 데이타에 상기 N 보다 작은 r비트의 라운딩비트를 생성시키는 라운딩비트 생성수단과,
    상기 라운딩비트 생성수단으로부터의 데이타의 상위비트에 g비트의 가드비트를 부가하는 가드비트 부가수단과,
    상기 가드비트 부가수단으로부터의 데이타를 연산하는 연산수단과,
    상기 연산수단으로부터의 데이타의 포화처리와 라운딩을 행하는 라운딩/포화처리수단을 구비하는 것을 특징으로 하는 디지탈신호처리기.
  8. 제 7 항에 있어서,
    상기 라운딩/포화처리수단은 상기 연산수단으로부터의 데이타에 대하여 상기 라운딩처리, 상기 포화처리, 및 이들의 병합처리를 선택적으로 수행하는 것을 특징으로 하는 디지탈신호처리기.
  9. 제 8 항에 있어서,
    상기 라운딩/포화처리수단은 포화처리시에 상기 연산수단으로부터의 데이타의 상위 g+1 비트들의 논리값에 따라 상기 데이타를 다르게 처리하는 것을 특징으로 하는 디지탈신호처리기.
  10. 제 9 항에 있어서,
    상기 라운딩/포화처리수단은 상기 연산수단으로부터의 데이타의 상위 g+1 비트들의 논리값들이 다른 경우 최상위비트만이 0의 논리값을 가지는 N비트의 데이타와 최상위비트만이 1의 논리값을 가지는 N비트의 데이타를 선택적으로 발생하는 것을 특징으로 하는 디지탈신호처리기.
  11. 제 10 항에 있어서,
    상기 라운딩/포화처리수단은 상기 연산수단으로부터의 데이타의 최상위비트의 논리값이 0일 때 최상위비트만이 0의 논리값을 가지는 N비트의 데이타를 발생하고 상기 최상위비트의 논리값이 1일 때에는 최상위비트만이 1의 논리값을 가지는 N비트의 데이타를 발생하는 것을 특징으로 하는 디지탈신호처리기.
  12. 제 7 항 내지 제 11 항 중 어느 한 항에 있어서,
    상기 라운딩비트 부가순단이 배선에 의해 구현된 것을 특징으로 하는 디지탈신호처리기.
  13. 제 7 항 내지 제 11 항 중 어느 한 항에 있어서,
    상기 가드비트 부가순단이 배선에 의해 구현된 것을 특징으로 하는 디지탈신호처리기.
  14. N 비트의 데이타를 입력하기 위한 데이타 입력수단과,
    상기 데이타 입력수단으로부터의 상기 N 비트의 데이타에 상기 N 보다 작은 r비트의 라운딩비트를 생성시키는 라운딩비트 생성수단과,
    상기 라운딩비트 생성수단으로부터의 데이타의 상위비트에 g비트의 가드비트를 부가하는 가드비트 부가수단과,
    상기 가드비트 부가수단으로부터의 데이타와 귀환루프로부터의 데이타를 연산하는 연산로직수단과,
    상기 연산로직수단으로부터의 데이타를 일시적으로 저장하고 상기 귀환루프와 연결된 메모리와,
    상기 가드비트 부가수단으로부터의 데이타를 스케일링하기 위한 스케일링수단과,
    상기 스케일링수단으로부터의 데이타와 상기 연산로직수단으로부터의 데이타를 선택적으로 상기 메모리쪽으로 전송하는 선택수단과,
    상기 메모리로부터의 데이타를 연산수단으로부터의 데이타를 포화처리하는 포화처리수단을 구비하는 것을 특징으로 하는 디지탈신호처리기.
  15. 제 14 항에 있어서,
    상기 포화처리수단은 상기 메모리로부터의 데이타를 그 데이타의 상위 g+1 비트들의 논리값들이 다른 경우에만 포화처리를 수행하는 것을 특징으로 하는 디지탈 신호처리기.
  16. 제 15 항에 있어서,
    상기 포화처리수단은 상기 메모리로부터의 데이타의 상위 g+1 비트들의 논리값들이 다른 경우 최상위비트만이 0의 논리값을 가지는 N비트의 데이타와 최상위비트만의 1의 논리값을 가지는 N비트의 데이타를 선택적으로 발생하는 것을 특징으로 하는 디지탈신호처리기.
  17. 제 16 항에 있어서,
    상기 포화처리수단은 상기 메모리로부터의 데이타의 최상위비트의 최상위비트의 논리값이 1일 때 최상위비트만이 1의 논리값을 가지는 N비트의 데이타를 발생하고 상기 최상위비트의 논리값이 0일 때에는 최상위비트만이 0의 논리값을 가지는 N비트의 데이타를 발생하는 것을 특징으로 하는 디지탈신호처리기.
  18. 제 14 항 내지 제 17 항 중 어느 한 항에 있어서,
    상기 라운딩비트 부가수단이 배선에 의해 구현된 것을 특징으로 하는 디지탈신호처리기.
  19. 제 14 항 내지 제 17 항 중 어느 한 항에 있어서,
    상기 가드비트 부가수단이 배선에 의해 구현된 것을 특징으로 하는 디지탈신호처리기.
  20. N 비트의 데이타를 입력하기 위한 데이타 입력수단과,
    상기 데이타 입력수단으로부터의 상기 N 비트의 데이타에 상기 N 보다 작은 r비트의 라운딩비트를 생성시키는 라운딩비트 부가수단과,
    상기 라운딩비트 생성수단으로부터의 데이타의 상위비트에 g비트의 가드비트를 부가하는 가드비트 부가수단과,
    상기 가드비트 부가수단으로부터의 데이타와 귀환루프로부터의 데이타를 연산하는 연산로직수단과,
    상기 연산로직수단으로부터의 데이타를 일시적으로 저장하고 상기 귀환루프와 연결된 메모리와,
    상기 가드비트 부가수단으로부터의 데이타를 스케일링하기 위한 스케일링수단과,
    상기 스케일링수단으로부터의 데이타와 상기 연산로직수단으로부터의 데이타를 선택적으로 상기 메모리쪽으로 전송하는 선택수단과,
    상기 메모리로부터의 데이타를 포화처리 및 라운딩하는 라운딩/포화처리수단을 구비하는 것을 특징으로 하는 디지탈신호처리기.
  21. 제 20 항에 있어서,
    상기 라운딩/포화처리수단은 상기 연산수단으로부터의 데이타에 대하여 상기 라운딩처리, 상기 포화처리, 및 이들의 병합처리를 선택적으로 수행하는 것을 특징으로 하는 디지탈신호처리기.
  22. 제 21 항에 있어서,
    상기 라운딩/포화처리 수단은 포화처리시에 상기 연산수단으로부터의 데이타의 상위 g+1 비트들의 논리값에 따라 상기 데이타를 다르게 처리하는 것을 특징으로 하는 디지탈신호처리기.
  23. 제 22 항에 있어서,
    상기 라운딩/포화처리수단은 상기 메모리로부터의 데이타의 상위 g+1 비트들의 논리값들이 다른 경우 최상위비트만이 0의 논리값을 가지는 N비트의 데이타와 최상위비트만이 1의 논리값을 가지는 N비트의 데이타를 선택적으로 발생하는 것을 특징으로 하는 디지탈신호처리기.
  24. 제 23 항에 있어서,
    상기 라운딩/포화처리수단은 상기 메모리로부터의 데이타의 최상위비트의 논리값이 1일 때 최상위비트만이 1의 논리값을 가지는 N비트의 데이타를 발생하고 상기 최상위비트의 논리값이 0일 때에는 최상위비트만이 0의 논리값을 가지는 N비트의 데이타를 발생하는 것을 특징으로 하는 디지탈신호처리기.
  25. 제 20 항 내지 제 24 항 중 어느 한 항에 있어서,
    상기 라운딩비트 부가수단이 배선에 의해 구현된 것을 특징으로 하는 디지탈신호처리기.
  26. 제 20 항 내지 제 24 항 중 어느 한 항에 있어서,
    상기 가드비트 부가수단이 배선에 의해 구현된 것을 특징으로 하는 디지탈신호처리기.
  27. N 비트의 데이타를 입력하기 위한 데이타 입력수단과,
    상기 데이타 입력수단으로부터의 상기 N 비트의 데이타에 상기 N 보다 작은 r비트의 라운딩비트를 생성시키는 라운딩비트 생성수단과,
    상기 라운딩비트 생성수단으로부터의 데이타의 상위비트에 g비트의 가드비트를 부가하는 가드비트 부가수단과,
    두개의 N비트 데이타의 곱을 저장하는 저장수단과,
    상기 저장수단으로부터의 상기 곱값에서 g+N+r 비트의 데이타를 이끌어내는 배선조절기기와,
    상기 배선조절기 및 상기 가드비트 부가수단으로부터의 데이타들과 누적된 값 중 두개를 연산하는 연산수단과,
    상기 연산수단으로부터의 데이타를 라운딩 처리하는 라운딩수단과,
    상기 라운딩수단으로 부터의 데이타를 그 데이타의 상위 g+1 비트들의 논리값에 따라 포화처리하는 포화처리수단을 구비하는 것을 특징으로 하는 디지탈 신호처리기.
KR1019970045341A 1997-08-30 1997-08-30 디지탈신호처리기 KR100297544B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1019970045341A KR100297544B1 (ko) 1997-08-30 1997-08-30 디지탈신호처리기
GB0007912A GB2345563B (en) 1997-08-30 1998-08-28 Digital signal processor
GB9818919A GB2330226B (en) 1997-08-30 1998-08-28 Digital signal processor
GB0007909A GB2345562B (en) 1997-08-30 1998-08-28 Digital signal processor
US09/143,351 US6209017B1 (en) 1997-08-30 1998-08-28 High speed digital signal processor
DE19839627A DE19839627B4 (de) 1997-08-30 1998-08-31 Digitaler Signalprozessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970045341A KR100297544B1 (ko) 1997-08-30 1997-08-30 디지탈신호처리기

Publications (2)

Publication Number Publication Date
KR19990021767A true KR19990021767A (ko) 1999-03-25
KR100297544B1 KR100297544B1 (ko) 2001-10-24

Family

ID=37528187

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970045341A KR100297544B1 (ko) 1997-08-30 1997-08-30 디지탈신호처리기

Country Status (1)

Country Link
KR (1) KR100297544B1 (ko)

Also Published As

Publication number Publication date
KR100297544B1 (ko) 2001-10-24

Similar Documents

Publication Publication Date Title
US6209017B1 (en) High speed digital signal processor
US6009451A (en) Method for generating barrel shifter result flags directly from input data
US6230179B1 (en) Finite field multiplier with intrinsic modular reduction
KR100291383B1 (ko) 디지털신호처리를위한명령을지원하는모듈계산장치및방법
JP5273866B2 (ja) 乗算器/アキュムレータ・ユニット
US5991785A (en) Determining an extremum value and its index in an array using a dual-accumulation processor
US6233597B1 (en) Computing apparatus for double-precision multiplication
US5583804A (en) Data processing using multiply-accumulate instructions
US20030041082A1 (en) Floating point multiplier/accumulator with reduced latency and method thereof
JPH1195981A (ja) 乗算回路
US6609143B1 (en) Method and apparatus for arithmetic operation
US9372665B2 (en) Method and apparatus for multiplying binary operands
US6009450A (en) Finite field inverse circuit
JPS60163128A (ja) 乗算回路
KR19980041758A (ko) 축소 데이타 경로 폭을 갖는 2-비트 부스 곱셈기
KR100315303B1 (ko) 디지탈 신호 처리기
KR100251547B1 (ko) 디지탈신호처리기(Digital Sgnal Processor)
KR100246472B1 (ko) 디지탈신호처리기
KR100297544B1 (ko) 디지탈신호처리기
KR100481586B1 (ko) 모듈러 곱셈 장치
KR100251546B1 (ko) 디지탈신호처리기
KR100900790B1 (ko) 재구성형 프로세서 연산 방법 및 장치
JPWO2002029546A1 (ja) 演算器及びそれを用いた電子回路装置
JP2608090B2 (ja) 高基数非回復型除算装置
GB2345562A (en) Digital signal processor for performing fixed-point and/or integer arithmetic

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

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee