KR100294639B1 - A cache apparatus for multi-access - Google Patents
A cache apparatus for multi-access Download PDFInfo
- Publication number
- KR100294639B1 KR100294639B1 KR1019970077887A KR19970077887A KR100294639B1 KR 100294639 B1 KR100294639 B1 KR 100294639B1 KR 1019970077887 A KR1019970077887 A KR 1019970077887A KR 19970077887 A KR19970077887 A KR 19970077887A KR 100294639 B1 KR100294639 B1 KR 100294639B1
- Authority
- KR
- South Korea
- Prior art keywords
- cache
- data
- cache memory
- access
- processing
- Prior art date
Links
Images
Classifications
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- 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
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
-
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
본 발명은 마이크로프로세서(microprocessor)에 관한 것으로서, 특히 다중 억세스(multi-access) 처리가 가능한 캐쉬(cache) 장치에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to microprocessors and, more particularly, to cache devices capable of multi-access processing.
잘 알려진 바와 같이, 캐쉬 장치는 램(RAM)과 주변 로직이 차지하는 면적 때문에 다수를 채용할 수는 없지만, 명령어 및 데이터의 빠른 억세스를 위해 고성능 마이크로프로세서의 구현시 없어서는 안될 필수 구성요소이다.As is well known, cache devices cannot employ many because of the area occupied by RAM and peripheral logic, but are indispensable in the implementation of high performance microprocessors for fast access to instructions and data.
최근의 고성능 시스템(마이크로프로세서 또는 마이크로컨트롤러)의 고집적화 추세에 따라 캐쉬 장치 뿐 아니라 명령어에 의해 수행되는 여러 프로세싱 블록(processing block)들을 하나의 칩 안에 집적되고 있는 데, 이때 여러 프로세싱 블록들에 의해 캐쉬 메모리가 동시에 억세스되는 경우가 발생한다.In accordance with the recent trend of high integration of high-performance systems (microprocessors or microcontrollers), not only a cache device but also several processing blocks executed by instructions are integrated in one chip, and cached by several processing blocks. It happens that memory is accessed at the same time.
이러한 경우, 종래의 캐쉬 장치는 한 개의 읽기/쓰기 포트(port)를 지원함으로써 다중 억세스가 불가능하여 다중 포트로 구현하던가 또는 다른 캐쉬 메모리를 사용하는데, 이러한 방법은 구현을 위한 디코딩(decoding) 및 관련 로직의 추가로 인해 전체 칩 면적이 늘어나는 문제가 있다.In this case, the conventional cache device supports one read / write port so that multiple accesses are not possible to implement multiple ports or use another cache memory. Such a method may be used for decoding and related implementation. The addition of logic increases the overall chip area.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 여러 프로세싱 블록에 의한 다중 억세스 동작이 가능하며, 최적의 구현으로 면적을 개선한 다중 억세스 캐쉬 장치를 제공하는데 그 목적이 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and the object of the present invention is to provide a multiple access cache apparatus capable of multiple access operations by various processing blocks and improving an area with an optimal implementation.
도 1은 본 발명의 다중 억세스 캐쉬 장치를 개념적으로 도시한 블록도.1 is a block diagram conceptually illustrating a multiple access cache device of the present invention;
* 도면의 주요 부분에 대한 설명* Description of the main parts of the drawing
100 : 캐쉬 메모리 101 : 캐쉬 컨트롤러100: cache memory 101: cache controller
102 내지 105 : 프리페치 버퍼102 to 105: prefetch buffer
106 내지 109 : 프로세싱 블록106 to 109: processing block
110 : 주소 및 데이터 멀티플렉서110: address and data multiplexer
113 : 억세스 충돌 해결부113: access conflict resolver
상기 목적을 달성하기 위한 본 발명은 데이터를 저장하는 캐쉬 메모리; 상기 캐쉬 메모리에 저장된 데이터를 억세스하여 각각의 프로세싱 동작을 수행하는 다수의 프로세싱 수단; 상기 캐쉬 메모리를 억세스하는 상기 각 프로세싱 수단 간의 캐쉬 억세스 충돌을 막기 위한 캐쉬 컨트롤러; 상기 캐쉬 메모리로부터 읽어온 데이터를 저장하여 상기 각 프로세싱 수단으로 출력하는 다수의 프리페치 버퍼링 수단; 및 상기 각 프로세싱 수단으로부터 출력되는 주소 및 데이터를 상기 캐쉬 컨트롤러로부터 출력되는 제어 신호에 응답하여 상기 캐쉬 메모리로 출력하는 주소 및 데이터 선택 수단을 포함하여 이루어지되, 상기 프리페치 버퍼링 수단은, 상기 캐쉬 메모리로부터 다수의 데이터를 입력받아 저장하여 상기 프로세싱 블록이 다수의 사이클 동안 상기 캐쉬 메모리를 억세스하지 않고 데이터를 처리한다.The present invention for achieving the above object is a cache memory for storing data; A plurality of processing means for accessing data stored in the cache memory to perform respective processing operations; A cache controller for preventing a cache access collision between the respective processing means for accessing the cache memory; A plurality of prefetch buffering means for storing data read from the cache memory and outputting the data to the processing means; And address and data selecting means for outputting address and data output from each processing means to the cache memory in response to a control signal output from the cache controller, wherein the prefetch buffering means comprises: the cache memory; A plurality of data is received from and stored by the processing block to process the data without accessing the cache memory for a plurality of cycles.
또한, 본 발명은 명령어를 저장하는 캐쉬 메모리; 상기 캐쉬 메모리에 저장된 명령어를 억세스하여 각각의 프로세싱 동작을 수행하는 다수의 프로세싱 수단; 상기 캐쉬 메모리를 억세스하는 상기 각 프로세싱 수단 간의 캐쉬 억세스 충돌을 막기 위한 캐쉬 컨트롤러; 상기 캐쉬 메모리로부터 읽어온 명령어를 저장하여 상기 각 프로세싱 수단으로 출력하는 다수의 프리페치 버퍼링 수단; 및 상기 각 프로세싱 수단으로부터 출력되는 주소를 상기 캐쉬 컨트롤러로부터 출력되는 제어 신호에 응답하여 상기 캐쉬 메모리로 출력하는 주소 선택 수단을 포함하여 이루어지되, 상기 프리페치 버퍼링 수단은, 상기 캐쉬 메모리로부터 다수의 명령어를 입력받아 저장하여 상기 프로세싱 블록이 다수의 사이클 동안 상기 캐쉬 메모리를 억세스하지 않고 명령어를 처리한다.The present invention also provides a cache memory for storing instructions; A plurality of processing means for accessing instructions stored in the cache memory to perform respective processing operations; A cache controller for preventing a cache access collision between the respective processing means for accessing the cache memory; A plurality of prefetch buffering means for storing instructions read from the cache memory and outputting the instructions to the processing means; And address selection means for outputting an address output from each processing means to the cache memory in response to a control signal output from the cache controller, wherein the prefetch buffering means comprises a plurality of instructions from the cache memory. The input block stores and processes the instruction without accessing the cache memory for multiple cycles.
이하, 첨부된 도면을 참조하여 본 발명의 일실시예를 상세히 살펴본다.Hereinafter, an embodiment of the present invention will be described in detail with reference to the accompanying drawings.
본 발명은 캐쉬에 저장되어 있는 명령어 또는 데이터가 순차적인 성질을 가지고 있을 경우, 한번에 여러 단위를 미리 정해진 프리페치 버퍼(prefetch buffer)로 읽어 와 하나의 프로세싱 블록이 프리페치 버퍼에 있는 정보를 처리하는 동안 또다른 프로세싱 블록이 캐쉬를 억세스할 수 있도록 구성하고, 또한, 캐쉬 억세스 충돌이 일어나지 않도록 캐쉬와 프로세싱 블록 사이에 충돌을 해결하고 억세스 신호를 주고 받을 수 있는 인터페이스 블록(interface block)을 두어 여러 프로세싱 블록이 하나의 캐쉬를 공유하여 효율적으로 사용할 수 있도록 한다.According to the present invention, when instructions or data stored in a cache have a sequential property, a plurality of units are read into a prefetch buffer at a time to process information in one processing block in the prefetch buffer. Configure other processing blocks to access the cache during the process, and also set up an interface block that can resolve conflicts and send and receive access signals between caches and processing blocks to avoid cache access conflicts. Blocks share a single cache so that they can use it efficiently.
도 1은 본 발명의 일실시예에 따른 다중 억세스 캐쉬 장치를 개념적으로 도시한 블록도로서, 데이터 또는 명령어를 저장하는 캐쉬 메모리(100), 캐쉬 메모리(100)에 저장된 데이터 또는 명령어를 억세스하여 각각의 프로세싱 동작을 수행하는 제1, 제2, 제3 및 제4 프로세싱 블록(106, 107, 108, 109), 캐쉬 메모리(100)를 억세스하는 각 프로세싱 블록(106, 107, 108, 109) 사이의 캐쉬 억세스 충돌을 막기 위해 인터페이스 역할을 수행하는 캐쉬 컨트롤러(101), 캐쉬 메모리(100)로부터 읽어온 데이터 또는 명령어를 저장하는 제1, 제2, 제3 및 제4 프리페치 버퍼(102, 103, 104, 105), 및 프로세싱 블록으로부터 출력되는 주소 또는 데이터를 캐쉬 컨트롤러(101)로부터 출력되는 제어 신호에 응답하여 캐쉬 메모리(100)로 보내는 주소 및 데이터 멀티플렉서(110)로 이루어진다.1 is a block diagram conceptually illustrating a multiple access cache apparatus according to an exemplary embodiment of the present invention, wherein the
구체적으로, 캐쉬 메모리(100)는 데이터 캐쉬 또는 명령어 캐쉬이며, 캐쉬 컨트롤러(101)로부터 출력되는 제어 신호에 응답하여 저장된 내용을 각 프리페치 버퍼로 출력한다.Specifically, the
그리고, 제1, 제2, 제3 및 제4 프로세싱 블록(106 내지 109)은 각각, 캐쉬 메모리(100)를 억세스하여 명령어나 데이터를 쓰기 위해 캐쉬 컨트롤러(101)에 요청(request, 111) 신호를 보내고, 캐쉬 컨트롤러(101)로부터 인식(acknowledge, 112) 신호를 기다린다. 이후, 각 프로세싱 블록이 요청한 캐쉬에 대한 억세스 동작이 처리되어 필요한 명령어 또는 데이터가 프리페치 버퍼(102 내지 105)에 도착하면 프리페치 버퍼(102 내지 105)에 있는 명령어 또는 데이터를 읽어 사용한다. 여기서, 프리페치 버퍼(102 내지 105)의 크기가 하나의 명령어 또는 데이터의 크기보다 크기 때문에 여러 사이클 동안 캐쉬를 억세스하지 않고 명령어 또는 데이터를 처리할 수 있고, 이때 다른 프로세싱 블록이 캐쉬에 대한 억세스 동작을 수행하게 된다.The first, second, third and
다음으로, 캐쉬 컨트롤러(101)는 여러 프로세싱 블록(106 내지 109)의 캐쉬 억세스 요청을 우선 순위(priority)에 따라 어느 프로세싱 블록의 억세스를 먼저 수행할 것인가를 결정하는 억세스 충돌 해결부(access conflict resolver, 113)를 포함하여, 각 프로세싱 블록의 상태나 사용 긴급도에 따라 캐쉬 억세스 순위를 결정한 다음 캐쉬 메모리(100)로 제어 신호를 보내 명령어나 데이터를 읽어냄과 동시에 해당 블록에 인식 신호(112)를 발생하여 해당 프로세싱 블록에 해당하는 프리페치 버퍼에 캐쉬 메모리(100)로부터의 명령어나 데이터를 저장하게 한다.Next, the
다음으로, 주소 및 데이터 멀티플렉서(110)는 여러 블록에서 발생되는 주소 또는 데이터를 억세스 충돌 해결부(113)에서 발생되는 선택 신호에 응답하여 캐쉬 메모리(100)로 제공되는 주소 또는 데이터를 선택하게 된다. 여기서, 명령어 캐쉬의 경우 데이터 멀티플렉서는 따로 필요없게 된다.Next, the address and
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.The present invention described above is not limited to the above-described embodiments and the accompanying drawings, and various substitutions, modifications, and changes can be made in the art without departing from the technical spirit of the present invention. It will be clear to those of ordinary knowledge.
상기와 같이 이루어지는 본 발명은, 종래의 캐쉬 장치와 동일한 속도로 캐쉬 메모리의 다중 억세스 동작을 가능하게 하고, 또한 다중 억세스를 위한 캐쉬 장치의 구현 면적을 줄임으로써 고집적, 고성능 캐쉬 장치의 구현을 가능하게 한다.The present invention made as described above enables the multiple access operation of the cache memory at the same speed as the conventional cache device, and also enables the implementation of a highly integrated and high performance cache device by reducing the implementation area of the cache device for the multiple access. do.
Claims (6)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970077887A KR100294639B1 (en) | 1997-12-30 | 1997-12-30 | A cache apparatus for multi-access |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970077887A KR100294639B1 (en) | 1997-12-30 | 1997-12-30 | A cache apparatus for multi-access |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990057808A KR19990057808A (en) | 1999-07-15 |
KR100294639B1 true KR100294639B1 (en) | 2001-07-12 |
Family
ID=37527574
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970077887A KR100294639B1 (en) | 1997-12-30 | 1997-12-30 | A cache apparatus for multi-access |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100294639B1 (en) |
-
1997
- 1997-12-30 KR KR1019970077887A patent/KR100294639B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR19990057808A (en) | 1999-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4967398A (en) | Read/write random access memory with data prefetch | |
US5283883A (en) | Method and direct memory access controller for asynchronously reading/writing data from/to a memory with improved throughput | |
US5359715A (en) | Architectures for computer systems having multiple processors, multiple system buses and multiple I/O buses interfaced via multiple ported interfaces | |
EP1646925B1 (en) | Apparatus and method for direct memory access in a hub-based memory system | |
US5367494A (en) | Randomly accessible memory having time overlapping memory accesses | |
US5269005A (en) | Method and apparatus for transferring data within a computer system | |
KR20020029760A (en) | Integrated circuit with flash bridge and autoload | |
US6931462B2 (en) | Memory controller which increases bus bandwidth, data transmission method using the same, and computer system having the same | |
US6442656B1 (en) | Method and apparatus for interfacing memory with a bus | |
JPH04213144A (en) | High-speed data access system | |
US8261023B2 (en) | Data processor | |
JP2002278833A (en) | Disk array controller | |
US6633927B1 (en) | Device and method to minimize data latency and maximize data throughput using multiple data valid signals | |
US6098113A (en) | Apparatus and method for address translation and allocation for a plurality of input/output (I/O) buses to a system bus | |
US6560664B1 (en) | Method and apparatus for translation lookaside buffers to access a common hardware page walker | |
US5327540A (en) | Method and apparatus for decoding bus master arbitration levels to optimize memory transfers | |
KR100294639B1 (en) | A cache apparatus for multi-access | |
US5588120A (en) | Communication control system for transmitting, from one data processing device to another, data of different formats along with an identification of the format and its corresponding DMA controller | |
KR20040045446A (en) | Interfacing processors with external memory supporting burst mode | |
JP2002024007A (en) | Processor system | |
JP2005107873A (en) | Semiconductor integrated circuit | |
KR100214302B1 (en) | High speed data processing method of dma for dsp | |
KR20000026338A (en) | Method for controlling bus of micro controller having arm cpu | |
KR20080084410A (en) | System virtual dma and driving method thereof | |
JPH0351943A (en) | Sharing system for high/low speed bus lines |
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: 20050322 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |