KR20060043233A - 연산처리장치 - Google Patents

연산처리장치 Download PDF

Info

Publication number
KR20060043233A
KR20060043233A KR1020050016471A KR20050016471A KR20060043233A KR 20060043233 A KR20060043233 A KR 20060043233A KR 1020050016471 A KR1020050016471 A KR 1020050016471A KR 20050016471 A KR20050016471 A KR 20050016471A KR 20060043233 A KR20060043233 A KR 20060043233A
Authority
KR
South Korea
Prior art keywords
data
output
clock
selector
signal
Prior art date
Application number
KR1020050016471A
Other languages
English (en)
Other versions
KR101110167B1 (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 KR20060043233A publication Critical patent/KR20060043233A/ko
Application granted granted Critical
Publication of KR101110167B1 publication Critical patent/KR101110167B1/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/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/90Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
    • A63F13/92Video game devices specially adapted to be hand-held while playing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1628Carrying enclosures containing additional elements, e.g. case for a laptop and a printer
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K5/00Casings, cabinets or drawers for electric apparatus
    • H05K5/02Details

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Complex Calculations (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

본 발명은, 필요없는 포인터 동작을 없애서 소비전력을 감소하고, 또한 예를 들면 모노럴 데이터용으로 개발한 프로그램을 스테레오 데이터용 프로그램에 적용 가능하게 한다. 제어부(40)에, 독립 데이터를 구별하는 R/L레지스터(52)를 설치하고, 독립 데이터를 나타내는 R/L선택신호 CT를 데이터 연산부(30)에 공급한다. 명령 디코더(44)로부터 데이터 처리 명령과 그 이외를 구별하는 데이터 처리 명령신호 DI를 출력시켜, 이 신호 DI에 의해, 독립 데이터를 구별하는 R/L레지스터(52)를 제어한다. 또한, 데이터 연산부(30)에는, 독립적인 데이터 저장에 관련된 부분을 처리하는 독립 데이터 수에 의해 다중화하고, 이 다중화한 부분을 제어부(40)로부터의 독립 데이터를 나타내는 R/L선택신호 CT에 의해 제어한다.
연산처리장치, 포인터, 메모리, 셀렉터, 산술논리 유닛

Description

연산처리장치{ARITHMETIC PROCESSING UNIT}
도 1은 본 발명의 실시예 1을 나타낸 DSP의 개략 구성도,
도 2는 도 1의 DSP에서의 각 부분의 값의 변화를 도시한 도면,
도 3은 도 1의 DSP에서의 각 부분의 값의 변화를 도시한 도면,
도 4는 종래의 DSP를 나타낸 개략 구성도,
*도면의 주요 부분에 대한 부호의 설명*
30 : 데이터 연산부 31 : 계수 ROM
32 : C포인터 33-1 : L-ch 데이터 RAM
33-2 : R-ch데이터 RAM 34 : D포인터
35-1∼35-4, 41 : 셀렉터 36 : 승산기
37 : ALU 38-1 : L-ch레지스터
38-2 : R-ch레지스터 40 : 제어부
42 : PC 43 : 프로그램 ROM
44 : 명령 디코더 50 : R/L제어부
51 : 클록제어회로 52 : R/L레지스터
본 발명은, 스테레오 음성처리 등에 있어서 독립된 복수개의 동일 데이터에 대하여 동일한 연산처리를 공통 프로그램으로 또한 저소비전력으로 행할 수 있는 디지탈·시그널·프로세서(이하, 「DSP」이라고 한다.) 등의 연산처리장치에 관한 것이다.
디지탈처리의 발전에 따라, 음성 데이터 및 화상 데이터 등도 디지탈 처리되도록 되고 있다. 음성, 화상 데이터 등의 디지탈처리에서 많이 사용되는 곱합연산을 고속으로 실행하는 연산처리장치로서, 예를 들면 하기의 특허문헌 1, 2등에 기재된 DSP 등의 전용 프로세서가 개발되어 있다.
[특허문헌1] 특개평 5-35774호 공보
[특허문헌2] 특개 2000-293357호 공보
도 4(1), (2)는, 특허문헌1, 2등에 기재된 종래의 DSP를 나타낸 개략 구성 도이고, 본 도면(1)은 DSP의 데이터 제어부(10), 및 본 도면(2)은 DSP의 제어부(20)를 도시한 도면이다.
이 DSP는, 곱합연산 등의 연산처리를 행하는 데이터 연산부(10)와, 이것을 제어하기 위한 각종의 제어신호를 생성하는 제어부(20)를 가지고 있다. 데이터 연산부(10)는, 곱합연산 등의 계수 데이터를 저장하는 계수 리드 온리 메모리(이하, 「계수 ROM」이라고 한다.)(11)와, 이 계수 ROM(11)에서의 계수 데이터의 판독 위 치를 지시하는 C포인터(12)와, 라이트 제어신호 WR1에 의해 기록이 제어되고, 곱합연산 등의 변수 데이터를 저장하는 데이터·랜덤 액세스 메모리(이하, 「데이터 RAM」이라고 한다.)(13)와, 이 데이터 RAM(13)에서의 변수 데이터의 판독 위치를 지시하는 D포인터(14)를 구비하고 있다. 계수 ROM(11)의 출력 단자 및 데이터 RAM(13)의 출력 단자에는, 승산기(15)가 접속되어 있다.
승산기(15)는, 계수 데이터와 변수 데이터의 승산을 행하는 회로이고, 이 출력 단자에 산술논리유닛 (이하, 「ALU」라고 한다.)(17)의 제1의 입력 단자가 접속되어 있다. ALU(17)의 제2의 입력 단자에는, 셀렉터(16)의 출력 단자가 접속되어 있다. 셀렉터(16)는, 입력 데이터 IN 또는 출력 데이터 OUT 중 어느 한쪽을 선택하는 회로이다. ALU(17)의 출력 단자에는, 레지스터(18)의 입력 단자가 접속되어 있다. 레지스터(18)는, 라이트 제어신호 WR2에 의해 기록이 제어되어, ALU(17)의 출력 데이터를 유지하는 회로이고, 이 출력 단자가 데이터 RAM(13)의 입력 단자 및 셀렉터(16)의 입력 단자에 접속되어 있다.
제어부(20)는 셀렉터(21)를 갖고, 이 셀렉터(21)의 출력 단자에, 프로그램 카운터 (이하, 「PC」라고 한다.)(22), 프로그램 ROM(23) 및 명령 디코더(24)가 순차적으로 접속되어 있다. 셀렉터(21)는, 명령 디코더(24)로부터 공급되는 제어신호에 의해, PC(22)의 출력 데이터를 +1 증분한 신호와, 명령 디코더(24)로부터 공급되는 점프(JUMP)명령 등의 제어신호 중, 어느 한쪽을 선택하는 회로이다. PC(22)는, 클록 CK에 근거하여 계수동작해서 명령 판독용의 어드레스를 프로그램 ROM(23)에 출력하는 회로이다. 프로그램 ROM(23)은, 복수개의 명령으로 이루어진 프로그램 을 저장하고, PC(22)로부터 출력된 어드레스에서 지정되는 프로그램중의 명령을 판독하는 메모리이다. 명령 디코더(24)는, 프로그램 ROM(23)으로부터 판독된 명령을 해독해서 명령 실행용의 각종의 제어신호(예를 들면, C포인터(12)의 제어신호, D포인터(14)의 제어신호, 라이트 제어신호 WR1, WR2, 셀렉터(16)의 출력 전환 제어신호, 승산기(15)의 제어신호, ALU(17)의 제어신호, PC(22)의 제어신호, 프로그램 ROM(23)의 제어신호, JUMP명령 등의 제어신호 등)을 출력하는 회로이다.
이러한 구성의 DSP에서는, 예를 들면 디지탈 처리에서 많이 사용되는 (A)식의 곱합연산을 이하의 (1)∼(7)과 같이 하여 실현하고 있다. 이때, (A)식은, (B)식의 연속으로서 실현한다.
Y=∑ ai×xi (A)
Ci+1= Ci + (ai×xi) (B)
(1) 계수 ROM(11)으로부터, C포인터(12)가 나타낸 어드레스의 계수 데이터 ai를 승산기(15)에 출력한다.
(2) 데이터 RAM(13)으로부터, D포인터(14)가 나타낸 어드레스의 변수 데이터 xi을 승산기(15)에 출력한다.
(3) 승산기(15)에서는, 계수 데이터 ai와 변수 데이터 xi의 승산이 행해진다.
(4) ALU(17)에서는, 레지스터(18)로부터 셀렉터(16)를 거쳐서 보내져 오는 데이터와, 승산기(15)의 출력 데이터와의 가산이 행해진다.
(5) ALU(17)의 출력 데이터를 레지스터(18)에 저장한다.
(6) C포인터(12)의 값을 다음 계수 데이터의 어드레스로 변화시킨다.
(7) D포인터(14)의 값을 다음 변수 데이터의 어드레스로 변화시킨다.
이들 (1)∼(7)의 처리가 1사이클 내에 실행된다. 이에 따라 디지탈 처리에서 많이 사용되는 곱합연산을 고속으로 실행하는 것이 가능해진다.
그러나, 종래의 DSP에서는, 다음 (a), (b)와 같은 과제가 있었다.
(a) 예를 들면, 스테레오 음성처리 등에 있어서 상호 독립된 2개의 데이터(우채널용 데이터 R-ch와 좌채널용 데이터 L-ch)에 대하여 동일한 연산처리를 행하는 경우, 우채널용 데이터 R-ch를 처리하고나서, 좌채널용 데이터 L-ch를 처리하는 것이 일반적이다. 이 경우, 각 포인터(12, 14)가 각각 2회 (R-ch 및 및 L-ch처리)동작하게 되어, 쓸데없는 포인터 동작에 따른 쓸데없는 소비전력이 발생하여, 소비전력이 커진다.
(b) 예를 들면, 스테레오 음성 데이터의 R-ch, L-ch 데이터를 모노럴 데이터라고 생각한 경우, 모노럴 데이터용으로 개발한 프로그램을, 데이터로부터 보았을 때에 동일한 연산처리를 행하는 것에도 관계되지 않고, 스테레오 음성처리용으로 새로운 프로그램을 개발할 필요가 있고, 이익이 없고 불편하다.
상기 과제를 해결하기 위해서, 본 발명에서의 DSP 등의 연산처리장치에서는, 공통으로 사용되는 공통 데이터를 저장하는 제1의 메모리와, 상기 공통 데이터의 판독 위치를 지시하는 제1의 포인터와, 상호 독립적인 독립 데이터를 각각 저장하는 N개(단, N은 정의 정수)의 제2의 메모리와, 상기 각 독립 데이터의 판독 위치를 지시하는 제2의 포인터와, 상기 N개의 제2의 메모리로부터 판독된 상기 N개의 독립 데이터 중 어느 하나를 선택해서 출력하는 제1의 셀렉터와, 상기 제1의 메모리로부터 판독된 상기 공통 데이터와 상기 제1의 셀렉터의 출력 데이터를 승산하는 승산기와, N개의 입력 데이터 중 어느 하나를 선택해서 출력하는 제2의 셀렉터와, 상기 제2의 셀렉터의 출력 데이터와 연산 결과 중 어느 한쪽을 선택해서 출력하는 제3의 셀렉터와, 상기 승산기의 출력 데이터와 상기 제3의 셀렉터의 출력 데이터와의 산술연산 및 논리연산을 행하는 ALU와, 상기 ALU의 출력 데이터를 유지하는 N개의 레지스터와, 상기 N개의 레지스터의 출력 데이터 중 어느 하나를 선택해서 상기 연산 결과를 출력하는 제4의 셀렉터를 구비하고 있다.
공통의 선택신호에 근거하여, 상기 N개의 제2의 메모리에서의 상기 연산결과 (즉, 상기 제4의 셀렉터 출력)의 기록이 제어됨과 동시에, 상기 제1, 제2, 제3, 제4의 셀렉터의 각 선택동작이 제어된다.
또한, 본 발명의 연산처리장치에서는, 제1의 클록에 근거하여 계수동작해서 명령 판독용의 어드레스를 출력하는 PC와, 복수개의 명령으로 이루어진 프로그램을 저장하고, 상기 PC로부터 출력된 상기 어드레스에서 지정되는 상기 프로그램중의 명령을 판독하는 프로그램 메모리와, 상기 프로그램 메모리로부터 판독된 상기 명령을 해독해서 명령 실행용의 제어신호를 출력함과 아울러, 상기 명령이 데이터 연 산 명령인가 아닌가를 구별하는 데이터 처리 명령신호를 출력하는 명령 디코더와, 독립 데이터 제어부를 구비하고 있다.
상기 독립 데이터 제어부는, 상기 데이터 처리 명령신호 및 제2의 클록을 입력하고, 상기 데이터 처리 명령 신호에 근거하여, 연산처리에서 사용하는 상기 독립 데이터를 선택하기 위한 상기 공통의 선택신호를 출력함과 아울러, 상기 제2의 클록에 근거하여 상기 제1의 클록을 생성하고, 상기 데이터 처리 명령 신호에 응답하여, 상기 명령이 데이터 연산명령이면, 상기 독립 데이터의 수의 연산처리 사이클을 경과한 후에 상기 제1의 클록을 상기 PC에 주고, 상기 명령이 데이터 연산명령이 아니면, 즉시 상기 제1의 클록을 상기 PC에 주는 것이다.
[발명을 실시하기 위한 최선의 형태]
본 발명의 DSP등의 연산처리장치에서는, 곱합연산 등을 행하는 데이터 연산부와, 이 데이터 연산부 등을 제어하는 제어부를 구비하고 있다. 데이터 연산부는, 제1의 메모리, 제1의 포인터, 공통 선택신호에 근거하여 연산결과의 기록이 제어되는 N개(단, N은 정의 정수)의 제2의 메모리, 상기 공통의 선택신호에 의해 선택 동작하는 제1, 제2, 제3, 제4의 셀렉터, 승산기, ALU, 및 상기 공통의 선택신호에 근거하여 데이터의 유지가 제어되는 N개의 레지스터를 가지고 있다. 제어부는, PC, 프로그램 메모리, 명령 디코더, 및 독립 데이터 제어부를 가지고 있다.
제어부에 있어서, 독립 데이터 제어부로부터 주어진 제1의 클록에 근거하여 PC가 동작하고, 명령 판독용의 어드레스가 출력된다. 이 어드레스에 의해 프로그램 메모리중의 명령이 판독되어, 명령 디코더에서 해독되어서, 명령 실행용의 제어신호가 출력됨과 아울러, 그 명령이 데이터 연산명령인가 아닌가를 구별하는 데이터 처리 명령신호가 출력되어서 독립 데이터 제어부에 주어진다.
독립 데이터 제어부에서는, 주어진 데이터 처리 명령신호에 근거하여, 연산처리에서 사용하는 독립 데이터를 선택하기 위한 공통 선택신호를 출력함과 동시에, 입력된 제2의 클록에 근거하여 제1의 클록을 생성하고, 상기 데이터 처리 명령신호에 응답하여, 명령이 데이터 연산명령이면, 독립 데이터의 수의 연산처리 사이클을 경과한 후에 상기 제1의 클록을 PC에 주고, 명령이 데이터 연산명령이 아니면, 즉시 상기 제1의 클록을 PC에 준다.
데이터 연산부에 있어서, 제1의 포인터에서 지시된 제1의 메모리중의 공통 데이터가 판독된다. 제2의 포인터에서 지시된 각 제2의 메모리중의 독립 데이터가 판독되어, 제2의 셀렉터에서 선택된다. 제1의 메모리의 출력 데이터와 제1의 셀렉터의 출력 데이터는, 승산기에서 승산된다. N개의 입력 데이터중 한 개가 제2의 셀렉터에서 선택되고, 또한 이 제2의 셀렉터의 출력 데이터와, 제4의 셀렉터의 출력 데이터 중 어느 한쪽이 제3의 셀렉터에서 선택된다. 승산기의 출력 데이터와 제3의 셀렉터의 출력 데이터는, ALU에서 연산 등이 행해지고, 이 ALU의 출력 데이터가 N개의 레지스터중 한 개에 유지된다. 각 레지스터의 출력 데이터는 제4의 셀렉터에서 선택된다. 이 제4의 셀렉터의 출력 데이터는, 제3의 셀렉터의 입력측에 주어짐과 아울러, N개의 제2의 메모리중 어느 한 개에 기록되고, 또한 외부에 출력된다.
[실시예 1]
(구성)
도 1(1), (2)는 본 발명의 실시예 1을 나타낸 연산처리장치(예를 들면, DSP)의 개략 구성도이고, 본 도면(1)은, DSP의 데이터 제어부(30) 및 본 도면(2)은 DSP의 제어부(40)를 도시한 도면이다.
이 도 1에서는, 상호 독립적인 N개(예를 들면, 2개)의 독립 데이터(예를 들면, 스테레오 음성 데이터의 우채널용 데이터 R-ch와 좌채널용 데이터 L-ch)에 대하여 동일한 연산처리(예를 들면, 스테레오 음성처리)을 행하는 DSP의 구성예가 도시되어 있지만, 3개 이상의 독립 데이터를 연산 처리하는 경우도 마찬가지의 생각으로 확장할 수 있다.
본 실시예 1의 DSP는, 곱합연산 등의 연산처리를 행하는 데이터 연산부(30)와, 이것을 제어하기 위한 각종의 제어신호를 생성하는 제어부(40)를 가지고 있다. 데이터 연산부(30)는, 곱합연산 등에서 공통으로 사용되는 공통 데이터(예를 들면, 계수 데이터)를 저장하는 제1의 메모리(예를 들면, 계수 ROM)(31)와, 이 계수 ROM(31)에서의 계수 데이터의 판독 위치를 지시하는 제1의 포인터(예를 들면, C포인터)(32)와, 곱합연산 등에서 사용되는 상호 독립적인 N개(예를 들면, 2개)의 독립 데이터(예를 들면, 변수 데이터)를 각각 저장하는 2개의 제2의 메모리(예를 들면, L-ch데이터 RAM, R-ch데이터 RAM)(33-1, 33-2)와, 그 변수 데이터의 판독 위치를 지시하는 공통의 제2의 포인터(D포인터)(34)를 구비하고 있다.
각 C포인터(32) 및 D포인터(34)는, 제1의 클록 CK에 의해 동작하고, 이 각 C 포인터(32) 및 D포인터(34)의 출력은, 제어부(40)로부터 공급되는 제어신호에 의해, 변수 데이터의 수의 연산 처리사이클의 최후에서만 유효가 되는 구성으로 되어 있다. 또한, 각 C포인터(32) 및 D포인터(34)의 다른 구성예로서, 이 각 C포인터(32) 및 D포인터(34)의 출력은, 제어부(40)로부터 공급되는 공통의 선택신호(예를 들면, R/L선택신호 CT)에 의해 마스크 되어, 제어부(40)로부터 공급되는 제어신호에 의해, 변수 데이터의 수의 연산 처리사이클의 최후에서만 유효가 되는 구성으로 되어 있다.
L-ch데이터 RAM(33-1)과 R-ch데이터 RAM(33-2)은, R/L선택신호 CT에 근거하여 기록의 제어가 행해지고, 어느 한쪽에 의해, 연산결과인 출력 데이터 OUT를 저장한다. 이 L-ch데이터 RAM(33-1)의 출력 단자 및 R-ch데이터 RAM(33-2)의 출력 단자에는, 제1의 셀렉터(35-1)가 접속되어 있다. 제1의 셀렉터(35-1)는, R/L선택신호 CT에 근거하여, 각 L-ch데이터 RAM(33-1) 및 R-ch데이터 RAM(33-2)로부터 판독된 N개(=2개)의 변수 데이터 중 어느 하나를 선택해서 출력하는 회로로, 게이트회로 등으로 구성되어 있다.
N개의 입력 데이터(예를 들면, 2개의 좌채널용 입력 데이터 L-chIN, 우채널용 입력 데이터 R-chIN)를 선택적으로 입력하기 위해서, 제2의 셀렉터(35-2)가 설치된다. 제2의 셀렉터(35-2)는, R/L선택신호 CT에 근거하여, 좌채널용 입력 데이터L-chIN과 우채널용 입력 데이터 R-chIN 중 어느 하나를 선택해서 출력하는 회로로며, 게이트회로 등으로 구성되어 있다. 이 제2의 셀렉터(35-2)의 출력 단자에는, 제3의 셀렉터(35-3)가 접속되어 있다. 제3의 셀렉터(35-3)는, R/L선택신호 CT에 근 거하여, 제2의 셀렉터(35-2)의 출력 데이터와 연산 결과인 출력 데이터 OUT 중 어느 한쪽을 선택해서 출력하는 회로로, 게이트회로 등으로 구성되어 있다.
계수 ROM(31)의 출력 단자 및 셀렉터(35-1)의 출력 단자에는, 승산기(36)가 접속되어 있다. 승산기(36)는, 제어부(40)로부터 공급되는 제어신호에 의해 제어되어, 계수 ROM(31)의 출력 데이터와 셀렉터(35-1)의 출력 데이터를 승산하는 회로이고, 이 회로의 출력 단자가 ALU(37)의 제1의 입력 단자에 접속되어 있다. ALU(37) 의 제2의 입력 단자에는, 셀렉터(35-3)의 출력 단자가 접속되어 있다. ALU(37)는, 제어부(40)로부터 공급되는 제어신호에 의해 제어되어, 승산기(36)의 출력 데이터와 셀렉터(35-3)의 출력 데이터의 산술연산 및 논리연산을 행하는 회로이고, 이 출력 단자에 N개의 레지스터(예를 들면, 2개의 L-ch레지스터, R-ch레지스터)(38-1, 38-2)가 접속되어 있다.
각 L-ch레지스터(38-1) 및 R-ch레지스터(38-2)는, R/L선택신호 CT에 근거하여 기록제어가 행해지고, 어느 한쪽이 ALU(37)의 출력 데이터를 유지하는 회로이고, 이것들의 출력 단자측에 제4의 셀렉터(35-4)가 접속되어 있다. 제4의 셀렉터(35-4)는, R/L선택신호 CT에 근거하여, L-ch레지스터(38-1)의 출력 데이터와 R-ch레지스터(38-2)의 출력 데이터 중 어느 하나를 선택해서 출력 데이터 OUT를 출력하는 회로로, 게이트회로 등으로 구성되어 있다. 이 셀렉터(35-4)의 출력 단자는, L-ch데이터 RAM(33-1)의 입력 단자, R-ch데이터 RAM(33-2)의 입력 단자 및 셀렉터(35-3)의 입력 단자에 접속되어 있다.
제어부(40)는, 셀렉터(41)를 갖고, 이 셀렉터(41)의 출력 단자에, PC(42), 프로그램 메모리(예를 들면, 프로그램 ROM)(43) 및 명령 디코더(44)가 순차적으로 접속되어 있다. 셀렉터(41)는, 명령 디코더(44)로부터 공급되는 제어신호에 의해, PC(42)의 출력 데이터를 +1 증분한 신호와, 명령 디코더(44)로부터 공급되는 JUMP명령 등의 제어신호중 어느 한쪽을 선택하는 회로이다. PC(42)는, 제1의 클록 CK에 근거하여 계수동작해서 명령 판독용의 어드레스를 프로그램 ROM(43)에 출력하는 회로이다. 프로그램 ROM(43)은, 복수개의 명령으로 이루어진 프로그램을 저장하고, PC(42)로부터 출력된 어드레스로 지정되는 프로그램중의 명령을 판독하는 메모리이다.
명령 디코더(44)는, 프로그램 ROM(43)으로부터 판독된 명령을 해독해서 명령 실행용의 각종의 제어신호(예를 들면, 계수 ROM(31)의 제어신호, C포인터(32)의 제어신호, L-ch데이터 RAM(33-1)이나 R-ch데이터 RAM(33-2)의 제어신호, D포인터(34)의 제어신호, 셀렉터(35-1∼35-4)의 출력 전환 제어신호, 승산기(36)의 제어신호, ALU(37)의 제어신호, L-ch레지스터(38-1)나 R-ch레지스터(38-2)의 제어신호, PC(42)의 제어신호, 프로그램 ROM(43)의 제어신호, JUMP명령 등의 제어신호 등)을 출력함과 아울러, 명령이 데이터 연산명령인가 아닌가를 구별하는 신호(즉, 데이터 연산 처리를 행하고 있는 것을 나타낸 데이터 처리 명령신호 DT)를 출력하는 회로이다. 이 명령 디코더(44)의 출력 단자에는, 독립 데이터 제어부(예를 들면, R/L제어부)(50)가 접속되어 있다.
R/L제어부(50)는, 데이터 처리 명령신호 DT 및 제2의 클록 CLK을 입력하고, 데이터 제어부(30)에 주는 공통의 R/L선택신호 CT와, PC(42)에 공급되는 제1의 클 록 CK를 생성하는 회로로, 클록 제어회로(51) 및 선택신호 생성회로(예를 들면, 플래그 또는 레지스터로 이루어진 R/L레지스터)(52)로 구성되어 있다. 클록 제어회로(51)는, 데이터 처리 명령신호 DT, 제2의 클록 CLK 및 R/L레지스터(52)로부터 출력되는 R/L선택신호 CT를 입력하고, PC(42)에 주는 제1의 클록 CK를 생성하는 회로로, 게이트회로 등으로 구성되어 있다. R/L레지스터(52)는, 제2의 클록 CLK 및 클록 제어회로(51)의 출력 신호를 입력하고, 예를 들면 논리 1 또는 0의 R/L선택신호CT를 출력하는 회로이다.
이때, 제어부(40)에는 다른 회로로서, 루프 명령을 서포트하는 명령에 관련되는 부분 등도 있지만, 설명을 간단하게 하기 위해서 도시되어 있지 않다.
이와 같이 본 실시예 1에서는, 데이터 연산부(30)에서, 종래의 데이터 연산부(10)의 데이터 저장에 관련되는 모든 부분을 공통의 R/L선택신호 CT만으로 R-ch, L-ch용으로 선택 가능하게 하고 있다. 또한, 제어부(40)에 있어서, 종래의 제어부(20)에 R/L제어부(50) 등을 추가한 구성으로 되어 있다.
(동작)
본 실시예 1의 DSP의 특징을 명확히 하기 위해서, 종래의 도 4의 DSP의 동작과 비교하면서, 본 실시예 1의 동작을 설명한다.
본 실시예 1의 DSP에서는, 다음 (1)∼(3)과 같은 처리를 행한다.
(1) 입력 데이터 L-chIN, R-chIN L-ch데이터 RAM(33-1), R-ch데이터 RAM(33-2)에 저장하고,
(2) L-ch데이터 RAM(33-1), R-ch데이터 RAM(33-2)의 데이터와, 계수 ROM(31) 의 계수 데이터와의 승가산처리를 행하고,
(3) 연산 결과를 출력한다.
구체적으로는, C0×D0+C1×D1+C2×D2의 값을
구한다. 계수값 C0∼C2는, 계수 ROM(31)에 저장되어 있다. 변수값(데이터 값)D0∼D2는, L-ch데이터 RAM(33-1) 및 R-ch데이터 RAM(33-2)에 저장되어 있다.
이것을 종래의 도 4의 DSP에 의해, 모노 데이터(스테레오 데이터가 아니다)를 처리할 때의 흐름(사이클)은, 이하와 같은 사이클 1∼6이 된다.
사이클1: 입력 데이터 IN→레지스터(18)로 전송
사이클2: 레지스터(18)→데이터 RAM(13)에 데이터 전송
사이클3: 계수 ROM(11)→승산기(15)에 데이터 전송
동시에, 데이터 RAM(13)→승산기(15)에 데이터 전송
승산기(15)의 출력→레지스터(18)에 저장
이에 따라, 계수 ROM(11)의 계수 데이터와 데이터 RAM(13)의 데이터의 곱이 레지스터(18)에 저장된다.
동시에, C포인터(12) 및 D포인터(14)의 값을 +1 가산한다.
이것으로, 레지스터(18)의 값=C0×D0가 된다.
사이클4: 계수 ROM(11)→승산기(15)에 데이터 전송
동시에, 데이터 RAM(13)→승산기(15)에 데이터 전송
레지스터(18)+승산기(15)의 출력→레지스터(18)에 저장
동시에, C포인터(12) 및 D포인터(14)의 값을 +1 가산한다.
이것으로, 레지스터(18)의 값=C0×D0+C1×D1이 된다.
사이클5: 계수 ROM(11)→승산기(15)에 데이터 전송
동시에, 데이터 RAM(13)→승산기(15)에 데이터 전송
레지스터(18)+승산기(15)의 출력→레지스터(18)에 저장
동시에, C포인터(12)의 값을 -2 하고, D포인터(14)의 값을 -3 한다.
이것으로, 레지스터(18)의 값=C0×D0+C1×D1+C2×D2가 된다.
사이클6: 레지스터(18)의 값을 출력한다(출력 데이터 OUT).
이상과 같이, 종래의 DSP에서 모노 데이터의 처리를 실행한 경우, 6사이클이 필요하였다.
다음에, 본 실시예 1에 의한 DSP에서, 스테레오 데이터에 대하여 상기 모노 데이터와 동일한 처리를 행하는 사이클 예를 나타낸다.
도 2 및 도 3은, 도 1의 DSP에서의 각 부분의 값의 변화를 도시한 도면이다.
여기서, 본 실시예 1의 제어부(40)로부터 L-ch와 R-ch를 구별하는 신호(R/L선택신호 CT)가 출력되어 있고, L-ch가 선택되는 사이클을 -L로, R-ch가 선택되는 사이클을 -R로 표현한다.
사이클1-L:
입력 데이터 L-chIN→L-ch레지스터(38-1)에 데이터 전송
사이클1-R:
입력 데이터 R-chIN→R-ch레지스터(38-2)에 데이터 전송
사이클2-L:
L-ch레지스터(38-1)→L-ch데이터 RAM(33-1)에 데이터 전송
사이클2-R:
R-ch레지스터(38-2)→R-ch데이터 RAM(33-2)에 데이터 전송
사이클3-L:
계수 ROM(31)→승산기(36)에 데이터 전송
동시에, L-ch데이터 RAM(33-1)→승산기(36)에 데이터 전송
승산기(36)의 출력→L-ch레지스터(38-1)에 저장
사이클3-R:
계수 ROM(31)→승산기(36)에 데이터 전송
동시에, R-ch데이터 RAM(33-2)→승산기(36)에 데이터 전송
승산기(36)의 출력→R-ch레지스터(38-2)에 저장
동시에, C포인터(32), D포인터(34)의 값을 +1 가산한다.
(이때, 포인터 조작은 -R사이클이 아니면 동작하지 않는다.)
이것으로, L-ch레지스터(38-1)의 값=C0×L-chD0
R-ch레지스터(38-2)의 값=C0×R-chD0가 된다.
사이클4-L:
계수 ROM(31)→승산기(36)에 데이터 전송
동시에, L-ch데이터 RAM(33-1)→승산기(36)에 데이터 전송
L-ch레지스터(38-1)+승산기(36)의 출력→L-ch레지스터(38-1)에 저장
사이클4-R:
계수 ROM(31)→승산기(36)에 데이터 전송
동시에, R-ch데이터 RAM(33-2)→승산기(36)에 데이터 전송
R-ch레지스터(38-2)+승산기(36)의 출력→R-ch레지스터(38-2)에 저장
동시에, C포인터(32), D포인터(34)의 값을 +1가산한다.
(이때, 포인터 조작은 -R사이클이 아니면 동작하지 않는다.)
이것으로, L-ch레지스터(38-1)의 값=C0×L-chD0+C1×L-chD1이 된다.
R-ch레지스터(38-2)의 값=C0×R-chD0+C1×R-chD1이 된다.
사이클5-L:
계수 ROM(31)→승산기(36)에 데이터 전송
동시에, L-ch데이터 RAM(33-1)→승산기(36)에 데이터 전송
L-ch레지스터(38-1)+승산기(36)의 출력→L-ch레지스터(38-1)에 저장
사이클5-R:
계수 ROM(31)→승산기(36)에 데이터 전송
동시에, R-ch데이터 RAM(33-2)→승산기(36)에 데이터 전송
R-ch레지스터(38-2)+승산기(36)의 출력→R-ch레지스터(38-2)에 저장
동시에, C포인터(32)의 값을 -2 하고, D포인터(34)의 값을 -3한다.
(이때, 포인터 조작은 -R사이클이 아니면 동작하지 않는다.)
이것으로, L-ch레지스터(38-1)의 값=C0×L-chD0+C1×L-chD1+C2×L-chD2이 된다.
R-ch레지스터(38-2)의 값=C0×R-chD0+C1×R-chD1+C2×R-chD2이 된다.
사이클6-L:
L-ch레지스터(38-1)의 값을 출력한다(출력 데이터 OUT).
사이클6-R:
R-ch레지스터(38-2)의 값을 출력한다(출력 데이터 OUT).
이상, 구체예로 도시한 바와 같이, 본 실시예 1의 DSP에서 스테레오 데이터의 R-ch처리는, 종래의 모노 데이터의 처리와 동일하다. 따라서, 모노 데이터용으로서 개발한 프로그램을 본 실시예 1에 의한 DSP의 프로그램으로서 사용하는 것이 가능하다. 또한, D포인터(34)의 동작에 주목하면 명확하지만, 본 실시예 1의 DSP는 포인터(34)가 L-ch데이터를 처리하고 있을 때와 R-ch데이터를 처리하고 있을 때에 변화되지 않는다. 따라서, 쓸데없는 전력소비가 발생하지 않는다.
(효과)
본 실시예 1에서는, 제어부 40에 종래의 제어부 20을 추가하여, 독립 데이터를 구별하는 R/L레지스터(52)를 설치하고, 독립 데이터를 나타낸 R/L선택신호 CT를 데이터 연산부(30)에 공급한다. 명령 디코더(44)에 데이터 처리명령과 그 이외를 구별하는 데이터 처리 명령신호 DI를 설치하고, 이 신호 DI에 의해, 독립 데이터를 구별하는 R/L레지스터(52)를 제어한다. 또한, 데이터 연산부(30)에는, 독립 데이터 저장에 관련되는 부분을 처리하는 독립 데이터 수에 의해 다중화하고, 이 다중화한 부분을 제어부(40)로부터의 독립 데이터를 나타낸 R/L선택신호 CT에 의해 제어한다. 이에 따라, 쓸데없는 포인터 동작을 하지 않고, 모노럴로 개발한 프로그램을 스테레오 데이터에 그대로 적용하는 것이 가능해진다.
[실시예 2]
본 발명은, 상기 실시예 1에 한정되지 않고, 여러 가지의 변형이 가능하다. 이 변형예인 실시예 2로서는, 예를 들면 다음의 (a), (b)와 같은 것이 있다.
(a) 독립 데이터를 3개 이상으로 하는 경우에는, 실시예 1의 구성 대신에, 데이터 RAM(33-1, 33-2, …), 복수 입력 1출력용의 셀렉터(35-1, 35-2, 35-4), 레지스터(38-1, 38-2, …) 및 복수 비트 출력의 레지스터(52)를 설치하는 등 하면 좋다.
(b) 실시예에서는, DSP에 관하여 설명했지만, 다른 구성의 연산처리장치에도 적용할 수 있다.
본 발명에 의하면, 상호 독립적인 독립 데이터를 저장하는 메모리, 및 ALU의 출력 데이터를 유지하는 레지스터 등을 각각 복수개 설치하고, 이것들을 공통 선택신호에 의해 제어하도록 하였으므로, 복수의 독립 데이터에 대하여 동일한 연산처리를 행할 경우, 쓸데없는 포인터 동작이 없어져서 소비전력을 감소할 수 있다. 또한, 예를 들면 모노럴 데이터용으로 개발한 프로그램을 스테레오 데이터용의 프로그램에 그대로 적용하는 것이 가능해지고, 프로그램 개발 비용을 삭감할 수 있다.

Claims (5)

  1. 공통으로 사용되는 공통 데이터를 저장하는 제1의 메모리와,
    상기 제1의 메모리에서의 상기 공통 데이터의 판독 위치를 지시하는 제1의 포인터와,
    공통의 선택신호에 근거하여 연산 결과의 기록이 제어되어, 상호 독립한 독립 데이터를 각각 저장하는 N개(단, N은 정의 정수)의 제2의 메모리와,
    상기 N개의 제2의 메모리에서의 상기 독립 데이터의 판독 위치를 지시하는 제2의 포인터와,
    상기 공통의 선택신호에 근거하여, 상기 N개의 제2의 메모리로부터 판독된 상기 N개의 독립 데이터 중 어느 하나를 선택해서 출력하는 제1의 셀렉터와,
    상기 제1의 메모리로부터 판독된 상기 공통 데이터와 상기 제1의 셀렉터의 출력 데이터를 승산하는 승산기와,
    상기 공통의 선택신호에 근거하여, N개의 입력 데이터 중 어느 하나를 선택해서 출력하는 제2의 셀렉터와,
    상기 공통의 선택신호에 근거하여, 상기 제2의 셀렉터의 출력 데이터와 상기 연산 결과 중 어느 한쪽을 선택해서 출력하는 제3의 셀렉터와,
    상기 승산기의 출력 데이터와 상기 제3의 셀렉터의 출력 데이터와의 산술연산 및 논리연산을 행하는 산술논리 유닛과,
    상기 공통의 선택신호에 근거하여 데이터의 유지가 제어되어, 상기 산술논리 유닛 의 출력 데이터를 유지하는 N개의 레지스터와,
    상기 공통의 선택신호에 근거하여, 상기 N개의 레지스터의 출력 데이터 중 어느 하나를 선택해서 상기 연산 결과를 출력하는 제4의 셀렉터와,
    제1의 클록에 근거하여 계수동작해서 명령 판독용의 어드레스를 출력하는 프로그램 카운터와,
    복수개의 명령으로 이루어진 프로그램을 저장하고, 상기 프로그램 카운터로부터 출력된 상기 어드레스에서 지정되는 상기 프로그램중의 명령을 판독하는 프로그램 메모리와,
    상기 프로그램 메모리로부터 판독된 상기 명령을 해독해서 명령 실행용의 제어신호를 출력함과 아울러, 상기 명령이 데이터 연산명령인가 아닌가를 구별하는 데이터 처리 명령신호를 출력하는 명령 디코더와,
    상기 데이터 처리 명령신호 및 제2의 클록을 입력하고, 상기 데이터 처리 명령신호에 근거하여, 연산 처리에서 사용하는 상기 독립 데이터를 선택하기 위한 상기 공통의 선택신호를 출력함과 아울러, 상기 제2의 클록에 근거하여 상기 제1의 클록을 생성하고, 상기 데이터 처리 명령신호에 응답하여, 상기 명령이 데이터 연산 명령이면, 상기 독립 데이터의 수의 연산 처리 사이클을 경과한 후에 상기 제1의 클록을 상기 프로그램 카운터에 주고, 상기 명령이 데이터 연산 명령이 아니라면, 즉시 상기 제1의 클록을 상기 프로그램 카운터에 주는 독립 데이터 제어부를 구비한 것을 특징으로 하는 연산처리장치.
  2. 제 1 항에 있어서,
    상기 독립 데이터 제어부는,
    상기 데이터 처리 명령신호 및 상기 제2의 클록을 입력하고, 상기 데이터 처리 명령 신호에 근거하여 상기 제1의 클록을 생성해서 출력하는 클록 제어회로와,
    상기 제2의 클록 및 상기 클록 제어회로의 출력 신호를 입력하고, 상기 제2의 클록에 의해 동작해서 상기 독립 데이터를 구별하는 상기 공통의 선택신호를 생성해서 출력하는 선택신호 생성회로를 갖는 것을 특징으로 하는 연산처리장치.
  3. 제 2 항에 있어서,
    상기 선택신호 생성회로는, 상기 제2의 클록에 의해 동작하는 플래그 또는 레지스터로 구성한 것을 특징으로 하는 연산처리장치.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 제1 및 제2의 포인터의 출력은, 상기 명령 디코더로부터 출력되는 상기 제어신호에 의해, 상기 독립 데이터의 수의 연산 처리 사이클의 최후에서만 유효가 되는 구성으로 한 것을 특징으로 하는 연산처리장치.
  5. 제 4 항에 있어서,
    상기 제1 및 제2의 포인터의 출력은, 상기 공통의 선택신호에 의해 마스크 되어, 상기 명령 디코더로부터 출력되는 상기 제어신호에 의해, 상기 독립 데이터의 수의 연산 처리 사이클의 최후에서만 유효가 되는 구성으로 한 것을 특징으로 하는 연산처리장치.
KR1020050016471A 2004-04-19 2005-02-28 연산처리장치 KR101110167B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2004-00122678 2004-04-19
JP2004122678A JP4300151B2 (ja) 2004-04-19 2004-04-19 演算処理装置

Publications (2)

Publication Number Publication Date
KR20060043233A true KR20060043233A (ko) 2006-05-15
KR101110167B1 KR101110167B1 (ko) 2012-01-31

Family

ID=35240707

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050016471A KR101110167B1 (ko) 2004-04-19 2005-02-28 연산처리장치

Country Status (4)

Country Link
US (1) US7308560B2 (ko)
JP (1) JP4300151B2 (ko)
KR (1) KR101110167B1 (ko)
CN (1) CN100407131C (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4782591B2 (ja) * 2006-03-10 2011-09-28 富士通セミコンダクター株式会社 リコンフィグラブル回路
JP6275474B2 (ja) * 2013-12-25 2018-02-07 ルネサスエレクトロニクス株式会社 半導体装置及びデータ転送装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3070058B2 (ja) * 1989-11-07 2000-07-24 カシオ計算機株式会社 デジタル信号処理装置
JPH0535774A (ja) 1991-07-25 1993-02-12 Oki Electric Ind Co Ltd 演算回路
US5640578A (en) * 1993-11-30 1997-06-17 Texas Instruments Incorporated Arithmetic logic unit having plural independent sections and register storing resultant indicator bit from every section
US5742841A (en) * 1993-12-08 1998-04-21 Packard Bell Nec Alternate I/O port access to standard register set
JP3547139B2 (ja) * 1995-03-17 2004-07-28 株式会社 日立製作所 プロセッサ
KR100291383B1 (ko) * 1996-11-18 2001-09-17 윤종용 디지털신호처리를위한명령을지원하는모듈계산장치및방법
JPH10255399A (ja) * 1997-03-11 1998-09-25 Sony Corp オーディオ再生装置
US6223275B1 (en) * 1997-06-20 2001-04-24 Sony Corporation Microprocessor with reduced instruction set limiting the address space to upper 2 Mbytes and executing a long type register branch instruction in three intermediate instructions
AU2986099A (en) * 1998-03-18 1999-10-11 Qualcomm Incorporated A digital signal processor
US6252919B1 (en) * 1998-12-17 2001-06-26 Neomagic Corp. Re-synchronization of independently-clocked audio streams by fading-in with a fractional sample over multiple periods for sample-rate conversion
JP2000293357A (ja) 1999-04-06 2000-10-20 Hitachi Ltd マイクロプロセッサ
JP2001268170A (ja) * 2000-03-23 2001-09-28 Hitachi Kokusai Electric Inc ディジタル電話システムの受信機と受信制御方法
TW569551B (en) * 2001-09-25 2004-01-01 Roger Wallace Dressler Method and apparatus for multichannel logic matrix decoding

Also Published As

Publication number Publication date
CN100407131C (zh) 2008-07-30
US20050251658A1 (en) 2005-11-10
JP2005309572A (ja) 2005-11-04
US7308560B2 (en) 2007-12-11
KR101110167B1 (ko) 2012-01-31
CN1690950A (zh) 2005-11-02
JP4300151B2 (ja) 2009-07-22

Similar Documents

Publication Publication Date Title
CN101097512B (zh) 用于实施混洗和移位操作的方法、设备和系统
US20020116434A1 (en) Apparatus and method for performing multiplication operations
JP4801605B2 (ja) Simd型マイクロプロセッサ
KR101110167B1 (ko) 연산처리장치
US6092183A (en) Data processor for processing a complex instruction by dividing it into executing units
EP1634163B1 (en) Result partitioning within simd data processing systems
JP3935678B2 (ja) Simd積和演算方法、積和演算回路、および、半導体集積回路装置
US7769989B2 (en) Processor for processing data using access addresses linked to the data type of the processed data
JP2006072961A (ja) 演算処理装置のメモリ回路
JPH0345420B2 (ko)
JP2006293741A (ja) プロセッサ
JP2552087B2 (ja) 10進乗算処理装置
KR100297544B1 (ko) 디지탈신호처리기
JP3088956B2 (ja) 演算装置
KR20060088499A (ko) 연산 장치
JPH0553572A (ja) 効果付加装置
JP2531759B2 (ja) デ―タ処理装置
JPH0283734A (ja) ディジタルシグナルプロセッサの並列処理方式
CN117316217A (zh) 连续内存存取加速电路、地址移位电路与地址产生方法
KR19990021768A (ko) 디지탈신호처리기
JPH0877003A (ja) Dspプログラム並列制御装置
JPH07248894A (ja) 浮動小数点演算装置
JPH0869407A (ja) データメモリを有するプロセッサ
GB2250110A (en) Digital signal processing
JP2005322174A (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
LAPS Lapse due to unpaid annual fee