KR940006916B1 - 선택적 캐쉬 메모리를 가진 마이크로프로세서 - Google Patents
선택적 캐쉬 메모리를 가진 마이크로프로세서 Download PDFInfo
- Publication number
- KR940006916B1 KR940006916B1 KR1019870009855A KR870009855A KR940006916B1 KR 940006916 B1 KR940006916 B1 KR 940006916B1 KR 1019870009855 A KR1019870009855 A KR 1019870009855A KR 870009855 A KR870009855 A KR 870009855A KR 940006916 B1 KR940006916 B1 KR 940006916B1
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- data
- cache memory
- subset
- register
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims description 71
- 238000001514 detection method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 2
- 150000001875 compounds Chemical class 0.000 description 1
- 238000000034 method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
Abstract
내용 없음.
Description
제1도는 선택적 캐쉬(cache) 메모리를 갖는 DSP의 블럭도.
제2도는 제1도 DSP의 메모리 어드레스 제어회로의 블럭도.
* 도면의 주요부분에 대한 부호의 설명
10 : 디지탈 신호, 프로세싱 시스템 12 : 프로세서
14 : 데이타 메모리 16 : 판독 전용 메모리
18 : 선택적 캐쉬 메모리 20,22,24 : 버스
50 : 어드레스 순차기 52,54,56 : 레지스터
60 : 가산기 62 : 제로 검출 소자
64 : 멀티플렉서
[기술의 분야]
본 발명은 마이크로컴퓨터, 특히 디지탈 신호 처리에 적합한 마이크로컴퓨터에 관한 것이다.
[발명의 배경]
현재의 디지탈 신호 프로세서(DSP)는 통상 디지탈형으로 부호화된 신호의 발생, 여파, 검출 또는 변조용으로 사용되는 프로그램 가능한 집적 회로이다.
통상, DSP는 데이타 처리 장치와 데이타 프로그램용으로 하나 이상의 메인 메모리 및 처리될 데이타로 구성되어 있다. 신호 여파와 같은, 디지탈 신호 처리 기능의 성질은 메모리에서 인출된 피연산함수(operand) 및 명령의 형태로 데이타 서브 세트의 반복이나 되풀이를 자주 요구하는 정도다. 프로세서의 소고 및 성능은 피연산함수와 명령이 인출될 수 있는 비율(rate)로 제한된다. 이러한 제한을 줄이기 위해, 병렬로 연산하는 복수의 주 메모리를 이용하는 구조가 개발되어 왔다. 예컨대, 하나의 메모리가 처리되어야할 데이타 피연산함수를 보유하면, 다른 메모리는 명령(instructions)을 보유한다. DSP는 단지 판독만 하고 연산중에 결코 변경되지 않는 데이타용 피연산함수 기억의 제3의 형태를 요구한다. 이러한 피연산함수를 종종 "계수(coefficient)"라고 말한다. 데이타 피연산함수를 보유하기 위해, 메모리는 등속 호울 메모리(RAM)와, 하나는 계수용이고 다른 하나는 명령요인 2개의 판독 전용 메모리(ROM)로서 구성된다. 그러나 이러한 장치는 개발과 응용 모두에 문제점을 노출한다. 한가지 문제점은 계수와 명령 메모리 사이에 최적의 균형을 결정하는데 있는데 그 이유는 어떤 응용에서는 명령용으로 많은 장소를 필요로 하고 계수용으로 적은 장소를 필요할 수 있기 때문이며, 반면에, 다른 계수용으로 많은 장소를 필요로 하고 명령용으로 적은 장소를 필요로 할 수 있기 때문이다. 다른 문제점은 판독 전용 메모리가 칩 외의 메모리와 치환되어야하는 피로토타입 단계의 경우에 발생한다. 이 모드에서는 칩에 대해서 및 데이타 접속을 행하기 위한 많은수의 외부 접속핀이 사용되어야 한다.
[발명의 개요]
본 발명은 선택적인 "캐쉬" 메모리를 갖는 디지탈 신호 프로세서이다. 주 메모리의 기능은 명령 및 계수를 위한 하나의 판독 전용 메모리와 두개의 등속 호출 메모리로 실시된다. 하나의 등속 호출 메모리는 데이타 피연산함수용이며, 다른 하나는 고성능을 요구하는 명령을 위한 선택적 캐쉬 메모리이다. 이 선택적 캐쉬 메모리는 메인 메모리로부터 부호를 재인출의 필요성 없이 명령을 기억 및 재실행시키는 다중 실행을 갖는 코드 조각(Pieces of code)으로 이것을 가능하게 한다. 이러한 장치는 명령 공간 대신에 계수 공간을 이용하는 경우에 더 많은 융통성이 부여되고, 프로토 타입 과정이 용이하게 되며, 그리고 프로토 타이핑을 위한 외부 저속핀이 거의 불필요하게 된다. 선택적 캐쉬 메모리는 명령, 데이타 및 고정계수의 병렬 억세스를 가능하게 하므로써 처리 능력비(throughput)를 증가시키며, 사용되는 명령 순차를 자주 반복시키기 위한절약 기구 zero overhead)를 제공하므로써 명령 메모리의 요구량이 감소된다.
이하 첨부된 도면을 참조로 하여 상세히 설명한다.
[상세한 설명]
제1도는 프로세서(12) 및 그 관련있는 메모리와 버스로 이루어지는 디지탈 신호 처리 시스템(10)을 도시한다. 프로세서(12)에는, 신호 처리 프로그램에 의해 사용되는 데이타를 기억하기 위한 등속 호출 메모리(14)와 계수 및 명령을 기억하기 위해 사용되는 판독 전용 메모리(16) 및 선택적 캐쉬 메모리(18)가 접속되어 있다. 프로세서(12)는 버스(20)를 통해 판독 전용 메모리(16) 또는 버스(22)를 통하는 선택적 캐쉬 메모리(18)중의 어느 한쪽으로부터 신호 처리를 위한 명령을 수신한다. 프로그레머에 의해 선택된 명령은 판독전용 메모리(16)로부터 최초 호출되는 동안 버스(24)를 통해 선택적 캐쉬 메모리(18)에 기억된다.
명령 세트가 고정 계수를 필요로 하는 경우, 그 명령은 선택적 캐쉬 메모리(l8)내로 기억된다. 명령 세트의 다음 실시는 2배로 실행될 수 있다. 그이유는, 명령이 판독 전용 메모리(16)로부터의 계수의 인출과 나란히 선택적 캐쉬 메모리(18)로부터의 검색되기 때문이다. 이 속도의 개선은 하나의 판독 전용 메모리를 가짐과 동시에 캐쉬 메모리가 없는 프로세싱 시스템 하나의 판독 전용 메모리와 하나의 캐쉬 메모리를 갖는 프로세싱 시스템간의 차이를 도시한 이하 타이밍 도표에 의해 나타난다.
하나의 판독 전용 메모리를 갖고 캐쉬 메모리가 없는 경우:
롬(ROM)
억세스 : I1C1I2C2I3C3…
하나의 판독 전용 메모리와 캐쉬 메모리의 경우 :
캐쉬
억세스 : I1I2I3…
롬(ROM)
억세스 : C1C2C3…
여기에서 IN= 판독 명령 N, CN=판독 계수 N이다.
캐쉬 메모리를 갖는 시스템은 캐쉬 메모리가 없는 시스템에 대해 2배의 속도로 실시할 수 있다. 그 이유는, 계수와 명령이 동시에 억세스될 수 있기 때문이다.
또한, 선택적 캐쉬 메모리(18)는 반복되어야 할 고정 계수를 갖는 복식 명령 순차의 실행 속도를 개선한다. 다음의 타이밍도는 고정계수를 요구하며 여러번 반복될 세개의 명령 순차를 나타낸다. 도표는 우선 반복되는 명령을 기억하여 고속으로 전체 순차를 재실행하기 위한 선택적 캐쉬 메모리(18)를 도시한다.
여기서 <IN>=기억 명령 N이다. 명령이 기억되었을 때의 최초의 반복 후 전체 순차는, 계수와 명령이 동시에 억세스되므로, 원래 속도의 2배로 실행되는 것을 알 수 있다.
프로그래머가 프로그램한 후에 다시 동일 명령을 사용하기 원하는 경우, 그 명령은 다시 기억 순차를 조사하지 않고, 재실행될 수 있다.
제2도에서는, 선택적 캐쉬 메모리(18)내에 기억되는 데이타 세트의 실행을 제어하기 위해 사용되는 어드레스 순차기(50)가 도시되어 있다. 어드레스 순차기(50)는 내장 소거장치(built-in clearing)를 갖는 프로그램 카운터인 레지스터(54)와, 실행되는 데이타 세트를 위한 선택적 캐쉬 메모리에 개시 어드레스를 설정하는 레지스터(54) 및 상기 데이타 세트의 반복 횟수를 계수하기 위한 루프 카운터인 레지스터(56)를 구비하고 있다. 이들 레지스터(52,54,56)로의 클럭 접속은 본 기술분야에 숙련된자라면 쉽게 알 수 있으므로, 필요한 도면의 복잡성를 피하기 위해 생략한다.
레지스터(54)의 값은 프로그램 제어하에서 설정된다. 캐쉬 메모리 어드레스(58)는 레지스터(52)또는 레지스터(54)의 선택으로부터 발생된다. 캐쉬 어드레스를 음의 1에 더한 가산기(60)에 의해 발생되는 레지스터(52)의 값의 제로 검출소자(62)로 보내진다. 레지스터(52) 및 레지스터(54)의 값은 멀티플렉서(64)에 보내지고, 이 멀티플렉서의 출력은 캐쉬 메모리 어드레스(58)이다. 캐쉬 메모리 어드레스(58)는 레지스터(52)의 값이 제로인 경우, 레지스터(54)의 값이고, 캐쉬 메모리 어드레스(58)는 레지스터(52)의 값이 제로가 아닌 경우, 레지스터(52)의 값이다. 캐쉬 메모리의 어드레스(58)인 멀티플렉서(64)의 출력은 레지스터(52)의 제로값을 검출하는 제로 검출 소자(62)의 출력에 의해 제어된다.
레지스터(56)의 원래 값은 프로그램 제어하에서 설정된다. 제로 검출 소자(62)의 출력은 제2가산기(66)에 보내진다. 가산기(66)는 레지스터(56)의 오래된 값에 더해지고, 레지스터(56)에 적재된다. 또한, 가산기(66)의 출력은 제2제로 검출 소자(68)에 보내지고, 이 제2제로 검출 소자(68)는 레지스터(56)의 값이 -1인 경우, 프로그램 제어 신호(70)를 보낸다.
어드레싱 순차는 숫자 M을 레지스터(54)에 적재하고 레지스터(52)를 소거하며 숫자 음의 K를 레지스터(56)에 적재시키므로써 시작된다. 레지스터(52,54 및 56)의 클럭킹(clocking)은 다음의 순차를 발생한다.
상기 논리는 어드레스 순차 M, M-1, M-2… 1을 반복적으로 발생한다. 레지스터(56)는 반복을 계수하며, K-1개의 반복이 완료되었을 때 프로그램 제어기에 알린다. 이에 의해, 디지탈 신호 프로세싱 시스템(10)의 프로그램에서 조건부 가름 명령분(conitional branch statement)을 만든다.
시스템(10)의 캐쉬 메모리(18)는 그 내용이 프로그램 선택적이지만, 그 내용이 다른 기준에 의해 결정되는 것은 본 발명의 범위내에 있다. 예컨대, 그것은 항상 최종 명령 또는 소정수 이전의 명령으로 할 수 있다. 하지만, 이러한 장치에 해 명령 세트이 실행을 반복하기 위한 유리한 점은 삽입 명령이 존재하는 경우에 제거되는데, 이는 캐쉬 메모리에서의 데이타가 변경되기 때문이다.
디지탈 신호 프로세서 시스템(10)은 본 발명의 한 실시예로써 사용되나, 선택적 캐쉬 메모리(18)의 속도 및 효율 개선이 명령 세트의 빈번산 반복을 요하는 용도의 경우, 다른 데이타 프로세서에도 유용하다는 것은 본 기술분야에 숙련자라면 명백히 인지될 것이다.
특히, 상술한 어드레스 순차기(50)는 선택적 캐쉬 메모리(18)에 데이타를 어드레싱하고 실행시키기 위해 미리 조절된 다운카운터를 실행시키는 많은 방식중의 하나이다. 그밖에, 유사한 제어 장치도 이러한 목적에 사용할 수 있다.
Claims (4)
- 데이타형으로 명령 및 계수 양자를 기억하기 위한 적어도 하나의 1차 메모리(16)를 갖고, 제1및 제2의 데이타 서브세트를 포함하는 데이타 세트를 상기 1차 메모리로부터 검색하기 위한 수단을 포함하는 데이타 처리 회로에 있어서, 상기 데이타 세트로부터 상기 제1 데이타 서브 세트를 선택하기 위한 수단과, 상기 제 1데이타 서브 세트를 기억하기 위한 2차 메모리(18)와, 상기 2차 메모리로부터 상기 제 1서브 세트를그리고 상기 1차 메모리로부터 직접 상기 제2 서브 세트를 동시에 검색하기 위한 수단(20,22) 및, 상기 제2 데이타 서브 세트를 갖는 상기 제1의 기억된 데이타 서브 세트를 선택적으로 실행하기 위한 제어수단(50)을 구비하는 것을 특징으로 하는 선택적 캐쉬 메모리를 가진 마이크로프로세서.
- 제1항에 있어서, 상기 회로가 프로세서(12)를 포함하는 디지탈 신호 프로세서이고, 상기 제1데이타 서브 세트가 명령을 구비하며, 상기 제2 데이타 서브 세트는 계수를 구비하는 것을 특징으로 하는 선택적 캐쉬 메모리를 가진 마이크로프로세서.
- 제2항에 있어서, 상기 1차 메모리(16)가 판독 전용 메모리인 것을 특징으로 하는 선택적 캐쉬 메모리를 가진 마이크로프로세서.
- 제1항에 있어서, 상기 제어 수단(50)이, 주소들의 순차를 반복적으로 발생하기 위한 수단(52,54,60,62,64)과, 주소들의 상기 순차로 기억되어 소정 횟수로 명령세트를 반복하기 위한 절약 기구를 제공하는 수단과 ; 상기 명령 세트의 반복을 계수하기 위한 수단(56,66) 및 ; 상기 소정의 반복수가 종료되었을 때를그 제어 수단에게 알리기 위한 수단(68)을 구비하는 것을 특징으로 하는 선택적 캐쉬 메모리를 가진 마이크로프로세서.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/904,544 US4896264A (en) | 1986-09-08 | 1986-09-08 | Microprocess with selective cache memory |
US904,544 | 1986-09-08 | ||
US904544 | 1986-09-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR880004371A KR880004371A (ko) | 1988-06-07 |
KR940006916B1 true KR940006916B1 (ko) | 1994-07-29 |
Family
ID=25419337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019870009855A KR940006916B1 (ko) | 1986-09-08 | 1987-09-07 | 선택적 캐쉬 메모리를 가진 마이크로프로세서 |
Country Status (7)
Country | Link |
---|---|
US (1) | US4896264A (ko) |
EP (1) | EP0260837B1 (ko) |
JP (1) | JP2567411B2 (ko) |
KR (1) | KR940006916B1 (ko) |
CA (1) | CA1289265C (ko) |
DE (1) | DE3751252T2 (ko) |
ES (1) | ES2070822T3 (ko) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5179689A (en) * | 1987-03-13 | 1993-01-12 | Texas Instruments Incorporated | Dataprocessing device with instruction cache |
EP0389175A3 (en) * | 1989-03-15 | 1992-11-19 | Fujitsu Limited | Data prefetch system |
US5133058A (en) * | 1989-09-18 | 1992-07-21 | Sun Microsystems, Inc. | Page-tagging translation look-aside buffer for a computer memory system |
US5285527A (en) * | 1991-12-11 | 1994-02-08 | Northern Telecom Limited | Predictive historical cache memory |
GB2273179A (en) * | 1992-12-02 | 1994-06-08 | Ibm | Cache indexing in interative processes. |
US5432804A (en) * | 1993-11-16 | 1995-07-11 | At&T Corp. | Digital processor and viterbi decoder having shared memory |
US5832257A (en) * | 1995-12-29 | 1998-11-03 | Atmel Corporation | Digital signal processing method and system employing separate program and data memories to store data |
KR100395756B1 (ko) * | 2001-06-16 | 2003-08-21 | 삼성전자주식회사 | 캐쉬 메모리 및 이를 이용하는 마이크로 프로세서 |
AUPR881001A0 (en) * | 2001-11-12 | 2001-12-06 | Lake Technology Limited | Low latency computation in real time utilizing a dsp processor |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5263038A (en) * | 1975-10-01 | 1977-05-25 | Hitachi Ltd | Data processing device |
US4141067A (en) * | 1977-06-13 | 1979-02-20 | General Automation | Multiprocessor system with cache memory |
US4181935A (en) * | 1977-09-02 | 1980-01-01 | Burroughs Corporation | Data processor with improved microprogramming |
AU518426B2 (en) * | 1977-11-22 | 1981-10-01 | Honeywell Information Systems Incorp. | Data processing system cache pre-read capability |
US4195342A (en) * | 1977-12-22 | 1980-03-25 | Honeywell Information Systems Inc. | Multi-configurable cache store system |
JPS54148335A (en) * | 1978-04-20 | 1979-11-20 | Nec Corp | Buffer control system |
US4197580A (en) * | 1978-06-08 | 1980-04-08 | Bell Telephone Laboratories, Incorporated | Data processing system including a cache memory |
US4306287A (en) * | 1979-08-31 | 1981-12-15 | Bell Telephone Laboratories, Incorporated | Special address generation arrangement |
EP0062978A3 (en) * | 1981-04-06 | 1982-12-22 | Secretary of State for Industry in Her Britannic Majesty's Gov. of the United Kingdom of Great Britain and Northern Ireland | Apparatus for assisting fault-finding in data processing systems |
DE3138972A1 (de) * | 1981-09-30 | 1983-04-14 | Siemens AG, 1000 Berlin und 8000 München | Onchip mikroprozessorchachespeichersystem und verfahren zu seinem betrieb |
US4521851A (en) * | 1982-10-13 | 1985-06-04 | Honeywell Information Systems Inc. | Central processor |
JPS61220004A (ja) * | 1985-03-26 | 1986-09-30 | Fanuc Ltd | 数値制御装置の画面表示方式 |
-
1986
- 1986-09-08 US US06/904,544 patent/US4896264A/en not_active Expired - Lifetime
-
1987
- 1987-08-27 CA CA000545551A patent/CA1289265C/en not_active Expired - Fee Related
- 1987-08-28 EP EP87307646A patent/EP0260837B1/en not_active Expired - Lifetime
- 1987-08-28 ES ES87307646T patent/ES2070822T3/es not_active Expired - Lifetime
- 1987-08-28 DE DE3751252T patent/DE3751252T2/de not_active Expired - Lifetime
- 1987-09-07 KR KR1019870009855A patent/KR940006916B1/ko not_active IP Right Cessation
- 1987-09-08 JP JP62223208A patent/JP2567411B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2567411B2 (ja) | 1996-12-25 |
EP0260837A3 (en) | 1990-04-11 |
JPS6368931A (ja) | 1988-03-28 |
US4896264A (en) | 1990-01-23 |
EP0260837A2 (en) | 1988-03-23 |
CA1289265C (en) | 1991-09-17 |
EP0260837B1 (en) | 1995-04-19 |
KR880004371A (ko) | 1988-06-07 |
DE3751252T2 (de) | 1995-08-24 |
ES2070822T3 (es) | 1995-06-16 |
DE3751252D1 (de) | 1995-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5056004A (en) | Program control system which simultaneously executes a program to be repeated and decrements repetition numbers | |
US5235686A (en) | Computer system having mixed macrocode and microcode | |
US4734852A (en) | Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor | |
EP0102242B1 (en) | Data processing apparatus | |
US4870562A (en) | Microcomputer capable of accessing internal memory at a desired variable access time | |
EP0241946A2 (en) | Information processing system | |
EP0227117A2 (en) | Program skip operation control system | |
KR940006916B1 (ko) | 선택적 캐쉬 메모리를 가진 마이크로프로세서 | |
EP0223150B1 (en) | Information processing apparatus | |
US4093983A (en) | Fast and normal rate instruction fetching | |
KR920003180B1 (ko) | 바이패스(bypass)회로를 갖는 데이타 처리장치 | |
EP0240606A2 (en) | Pipe-line processing system and microprocessor using the system | |
EP0279953B1 (en) | Computer system having mixed macrocode and microcode instruction execution | |
US8200943B2 (en) | Microprocessor | |
JP2916605B2 (ja) | コンピュータ用プロセツサ | |
David et al. | Self-timed architecture of a reduced instruction set computer | |
US5604876A (en) | Apparatus for handling differing data length instructions using either directly specified or indirectly specified data lengths | |
KR920002573B1 (ko) | 데이타 처리기 | |
EP0260639A2 (en) | Microprogram sequencer | |
JP2504974B2 (ja) | シ−ケンサの高速演算処理方式 | |
JPS6115453B2 (ko) | ||
US5123093A (en) | Operational processor for performing a memory access and an operational process in parallel | |
EP0305530A1 (en) | High-speed floating point arithmetic unit | |
JPH02105936A (ja) | データ処理装置 | |
JPH034326A (ja) | 命令デコード方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
G160 | Decision to publish patent application | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20010711 Year of fee payment: 8 |
|
LAPS | Lapse due to unpaid annual fee |