KR980013130A - Replacement write-back cycle processor and method for multiprocessor systems - Google Patents

Replacement write-back cycle processor and method for multiprocessor systems Download PDF

Info

Publication number
KR980013130A
KR980013130A KR1019960031550A KR19960031550A KR980013130A KR 980013130 A KR980013130 A KR 980013130A KR 1019960031550 A KR1019960031550 A KR 1019960031550A KR 19960031550 A KR19960031550 A KR 19960031550A KR 980013130 A KR980013130 A KR 980013130A
Authority
KR
South Korea
Prior art keywords
address
cycle
data
processor
write back
Prior art date
Application number
KR1019960031550A
Other languages
Korean (ko)
Other versions
KR100188438B1 (en
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 KR1019960031550A priority Critical patent/KR100188438B1/en
Publication of KR980013130A publication Critical patent/KR980013130A/en
Application granted granted Critical
Publication of KR100188438B1 publication Critical patent/KR100188438B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks

Abstract

본 발명은 멀티프로세서 시스템에서의 교체 라이트백 사이클 처리장치 및 처리방법에 관한 것으로서,본 발명의 장치는 2차캐쉬 읽기미스에 의해 발생된 교체 라이트백 사이클의 어드레스를 저장하는 어드레스 저장수단: 저장된 어드레스를 출력하는 출력수단: 2차캐쉬 읽기미스에 의해 발생된 교체 라이트백 사이클의 데이터를 저장하는 데이터 저장수단; 데이터를 출력하는 데이터 출력수단: 어드레스 저장수단에 저장된 어드레스와, 프로세서가 새로운 캐쉬라인채움 사이클에서 구동한 어드레스를 비교하는 제1비교기; 어드레스 저장수단에 저장된 어드레스와 스누우프 어드레스를 비교하는 제2비교기; 및 스누우프 라이트백 사이클 또는 리플레이스 라이트백 사이클을 진행과정을 제어하는 버스사이클 제어기를 포함한다.The present invention relates to an apparatus and a method for processing a write back cycle in a multiprocessor system, the apparatus comprising: address storage means for storing an address of a write back cycle generated by a second cache miss; Outputting means for outputting: data storing means for storing the data of the replacement writeback cycle generated by the secondary cache miss; Data output means for outputting data: a first comparator for comparing an address stored in the address storage means with an address driven by a processor in a new cache line fill cycle; A second comparator for comparing the address stored in the address storage means with the snoop address; And a bus cycle controller for controlling the progress of the snoop write back cycle or the replacement write back cycle.

본 발명에 의하면 프로세서가 사이클에 소요되는 시간을 단축시키고 필요한 경우에만 시스템버스를 사용하도록 버스 사용을 효율화 시키는 효과가 있어 전체 시스템의 성능을 현저히 향상시킬 수 있다According to the present invention, it is possible to shorten the time required for the processor to cycle and to use the system bus only when necessary, thereby improving the performance of the entire system

Description

멀티프로세서시스템의 교체 라이트백 사이클 처리장치 및 방법Replacement write-back cycle processor and method for multiprocessor systems

본 발명은 멀티프로세서 시스템에서의 캐쉬에 관련한 버스 사이클에 관한 것으로서, 특히 2차 캐쉬가 프로세서 외부에 장착된 프로세서 보드가 적어도 2개 장착되는 버스를 기반으로한 멀티프로세서 시스템에서의 교체 라이트백 사이클 처리 장치 및 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to cache cycles associated with caching in a multiprocessor system, and more particularly, to a bus cycle in which a secondary cache is placed on the outside of the processor, Apparatus and method.

일반적으로 버스를 기반으로 하고 공유메모리(shared memory)에 기초한 멀티프로세서(multiprocessor) 시스템에서의 각각의 프로세서 (processor)는 시스템 버스를 통해 공유메모리 자원을 접근하게 된다. 이 때 시스템을 구성하는 프로세서 수가 많을수록, 상기 프로세서는 버스를 요구하는 마스터(master) 역할을 하게 되므로 시스템 버스사용권에 대한 경쟁은 심화된다. 마이크로프로세서(microporcessor) 의 처리속도가 혁신적으로 빨라짐으로 인해 마이크로프로세서와 시스템 버스의 처리속도 차이는 더욱 크게 나타나는 양상을 보이고 있다.Generally, each processor in a multiprocessor system based on a bus and based on a shared memory accesses shared memory resources via the system bus. At this time, as the number of processors constituting the system increases, the processor becomes a master requesting a bus, so competition for the system bus use is intensified. As the processing speed of the microprocessor is getting faster, the difference in the processing speed between the microprocessor and the system bus becomes more apparent.

따라서 오늘날 멀티프로세서 시스템에서 각각의 프로세서 내에 속도가 빠른 캐쉬(cache) 메모리를 탑재하는 것은 거의 일반화된 현상이 되었다. 캐쉬메모리는 프로세서가 시스템 버스를 통해 공유메모리 자원을 접근하는 대신 각각의 프로세서 자신이 최근에 가장 자주 접근하는 데이터를 프로세서 보드(board) 내의 속도가 빠른 메모리에 담아주고 사용함으로써 시스템 성능향상을 도모할 수 있게 하는 속도가 빠른 메모리이다. 캐쉬메모리의 채택으로 버스 마스터들의 시스템 버스 사용권에 대한 경쟁은 완화되어 버스의 사용효율은 증대된다.Therefore, in today's multiprocessor systems, it is becoming a common practice to load cache memory with high speed in each processor. Instead of accessing the shared memory resources through the system bus, the cache memory is used to store the most frequently accessed data of each processor itself in a fast memory in the processor board, thereby improving system performance It is a fast memory that allows it. With the adoption of cache memory, the competition for bus masters' rights to use the system bus is eased, and the use efficiency of the bus is increased.

한편 각각의 보드내의 캐쉬메모리의 데이터와 시스템 버스상의 공유메모리 데이터 간의 데이터 일치성(consistency)을 보장하기 위해서는 이를 지원할 시스템 버스의 프로토콜(protocol)이 다소 복잡해지는 것은 불가피하다.Meanwhile, in order to ensure data consistency between the data in the cache memory in each board and the data in the shared memory on the system bus, it is inevitable that the protocol of the system bus to support it is somewhat complicated.

본 발명의 적용될 수 있는 프로세서 보드에 탑재된 마이크로프로세서는 미국 인텔(Inter)사의 팬티엄 P54C로서 1차 케쉬메모리를 내장하고 있고, 2차 캐쉬메모리로는 인텔사의 캐쉬/스누우프/사이클(cache/snoop/cycle) 제어기인 C5C와 캐쉬메모리인 C8C를 사용하여 512KB로 구성되어 있다. 물론 다른 디바이스(device)를 사용하면 1MB 또는 2MB의 2차 캐쉬메모리도 구현이 가능하지만 편의상 512KB인 경우를 예로들어 본 발명에 관련된 내용을 설명하기로 한다.1차 캐쉬메모리와는 달리 2차 캐쉬메모리는 데이터와 코드(code)의 구분이 없이 단일(unified) 캐쉬의 형태를 띠고 있으며 데이터의 일치성을 보장하기 위해 1차 캐쉬메모리의 데이터를 2차 캐쉬 메모리가 전부 포함하는 구조로 되어 있어 내포특성(inclusion property)을 준수하고 있다.The microprocessor mounted on the processor board to which the present invention can be applied is a Pentium P54C of Intel Corporation, which houses a primary cache memory. The secondary cache memory includes a cache / snoop / snoop / cycle) controller C5C and cache memory C8C. Of course, if a different device is used, a secondary cache memory of 1 MB or 2 MB can be implemented. However, the present invention will be described with reference to an example of 512 KB for the sake of convenience. Unlike the primary cache memory, Memory is a unified cache without distinction between data and code. In order to guarantee data consistency, the memory has a structure in which all the data in the primary cache memory is included in the secondary cache memory, The inclusion property is observed.

좀더 세부적으로 살펴보면 상기 캐쉬메모리는 특정 데이터에 해당하는 어드레스를 담아두는 2-웨이 집합연관(2-way set associative) 태그메모리(tag memory)와 2-웨이 데이터메모리(data memory)로 구성되어 있다. 캐시 동작(operation)의 기본단위라 할 수 있는 캐쉬 라인크기(line size)의 경우 2차 캐쉬메모리는 64바이트로 설정되어 있다. 여기서 512KB의 2차 캐쉬 메모리라 함은 데이터 캐쉬메모리 크기의 관점에서 이야기하는 것으로 기계적으로 설명한다면 2-웨이 캐쉬 구조에서는 2개의 256KB의 데이터 캐쉬메모리로 구성된다고 할 수 있다. 펜티엄 프로세서 P54C는 32비트의 어드레스 신호(A31-A0)를 사용하여 총 4GB의 메모리 영역을 억세스할 수 있으므로,2차 캐쉬메모리는 총 4GB 중의 어느 라인의 데이터라도 담아둘 수 있는 형태로 구성되어 있다. 즉 4GB:512KB의 매핑(mapping) 구조가 구현되어 있는 것이다. 이를 위해 상기 캐쉬/스누우프/사이클 제어기 C5C는 어드레스 신호중 A17-A6(set address)를 사용하여 4096개의 배당장소(location)를 가지고 있는 2-웨이 태그 메모리를 억세스할 수 있다. 여기서 2-웨이라 함은 4096개의 각 태그메모리의 배당장소(location)가 2개의 태그정보(태그 어드레스: A31-A18)FMF 담아둘 수 있는 이중 구조로 되어 있음을 의미한다.따라서 512KB의 산출식은 512KB = 집합 배당장소(set location) 수(4096 즉 4K 개) X 2-웨이 X 64바이트(캐쉬 라인크기)로 표현될 수 있는 것이다.In more detail, the cache memory is composed of a 2-way set associative tag memory and a 2-way data memory for storing addresses corresponding to specific data. For the cache line size, which is the basic unit of cache operation, the secondary cache memory is set to 64 bytes. Here, the 512KB secondary cache memory is described from the viewpoint of the data cache memory size, and if mechanically explained, it can be said that the 2-way cache structure is composed of two 256KB data cache memories. The Pentium processor P54C uses a 32-bit address signal (A31-A0) to access a total of 4GB of memory space, so the secondary cache memory is configured to contain any of the 4GB of data in total . That is, 4GB: 512KB mapping structure is implemented. To this end, the cache / snoop / cycle controller C5C can access a 2-way tag memory having 4096 allocation locations using A17-A6 (set address) among the address signals. Here, 2-way means that the location of each 4096 tag memories has a dual structure that can contain two tag information (tag address: A31-A18) FMF. 512KB = number of set locations (4096 or 4K) X 2-way X 64 bytes (cache line size).

다음에는 프로세서의 데이터 억세스 사이클들을 설명하기로 한다. 도 1은 본 발명과 종래의 프로세서 보드가 적용이 되는 공유메모리에 기반한 대칭적 구조를 갖는 멀티프로세서 시스템의 블록도를 도시한 것이다.Next, the data access cycles of the processor will be described. FIG. 1 is a block diagram of a multiprocessor system having a symmetric structure based on a shared memory to which the present invention and a conventional processor board are applied.

그리고 데이터 일치성을 유지하기 위해 사용되는 M.E.S.I 프로토콜(protocol)은 인텔 팬티엄 프로세서에서 사용하는 캐시관련 프로토콜로서, 상기 M.E.S.I는 캐쉬 라인의 상태를 나타낸다. 상기 M은 Modified의 약자로서, 캐시라인의 상태가 M이란 뜻은 하나의 캐쉬에서만 M을 사용할 수 있으며, 캐쉬 라인의 데이터가 주(main)메모리와는 다른 데이터임을 나타낸다. 상기 E는 Exclusive의 약자로서, 하나의 캐쉬에서만 사용할 수 있으며 캐시라인이 E라는 뜻은 주메모리에 있는 데이터와 같은 데이터임을 나타내고, 만일 상기 E상태의 캐쉬라인에 데이터를 기록하면 상기 캐쉬 라인의 상태는 M으로 바뀐다. 그리고 상기 S는 Shared의 약자로서, 적어도 두 개 이상의 캐쉬에서 동일한 어드레스에 동일한 데이터를 가지고 있음을 나타낸다. 상기 S상태의 캐쉬라인에 데이터를 기록하면 상기 캐쉬라인의 상태는 M으로 바뀌고, 다른 캐쉬라인의 데이터는 무료화(invalidate)되어야 한다. 마지막으로 상기 I는 Invalid의 약자로서, 캐쉬라인의 상태가 I이면 상기 캐쉬라인의 데이터는 유효하지 않음을 나타낸다. 즉 프로세서가 더 이상 사용할 수 없음을 나타낸다.The M.E.S.I protocol used to maintain data consistency is a cache related protocol used in the Intel Pentium processor, and the M.ES.I indicates the state of the cache line. The M is an abbreviation of Modified. The state of the cache line is M, which means that only one cache can use M, and the data of the cache line is different from the main memory. E is an abbreviation of Exclusive and can be used in only one cache. The cache line E means that the data is the same as the data in the main memory. If data is written in the cache line in the E state, Is changed to M. And S is an abbreviation of Shared, which indicates that at least two or more caches have the same data at the same address. When data is written in the S-state cache line, the state of the cache line is changed to M, and data of other cache lines must be invalidated. Lastly, I is an abbreviation of Invalid, and if the state of the cache line is I, it indicates that the data of the cache line is invalid. That is, the processor is no longer usable.

도 2는 종래의 프로세서 보드의 블록도를 도시한 것이다.참조번호 200은 프로세서(CPU)로서,1차 캐쉬 메모리를 내장하고 있는 일텔 펜티엄(Pentium) 프로세서라고 가정한다.205는 스누우프 제어기로서, 상기 M.E.S.I 프로토콜에 기초하여 다른 프로세서 보드의 공유메모리 억세스를 감시(snooping)하고, 필요한 경우 그에 응답하여 공유메모리를 억세스하기 위한 시스템 버스 사이클을 개시한다.210은 캐쉬제어기로서, 프로세서의 2차 캐쉬메모리(215) 억세스 및 시스템 버스 공유메모리의 읽기/쓰기 억세스,스누우프 제어기(205)의 스누우핑 등에 따라 2차 캐쉬 메모리(215)의 어드레스 태그를 상기 M.E.S.I 프로토콜에 기초하여 관리하고 필요한 경우 시스템 버스 사이클을 개시하고 버스사이클 제어기(235)의 도움을 받아 이를 진행 및 종료한다.그리고 215는 2차 캐쉬메모리이다.2 shows a block diagram of a conventional processor board. Reference numeral 200 denotes a processor (CPU), which is a Pentium processor having a built-in primary cache memory. Reference numeral 205 denotes a snoop controller , Snooping shared memory accesses of other processor boards based on the MESI protocol, and initiating a system bus cycle to access the shared memory in response thereto, if necessary. 210 is a cache controller, The address tag of the secondary cache memory 215 is managed based on the MESI protocol in accordance with the access to the memory 215 and the read / write access to the system bus shared memory, the snooping of the snoop controller 205, Initiates a system bus cycle and proceeds with the help of the bus cycle controller 235 and proceeds to step 215. Then, A.

220은 캐쉬가 가능하지 않은(non-cacheable) 단일쓰기,라이트-쓰루(write-through) 단일쓰기와 스누우프 라이트백 버스터 (burst) 쓰기를 위한 데이터를 로드(load)해 두기 위한 다중레벨 (multi-level) 파이프라인된 레지스터이다.220 is a multilevel (non-cacheable), non-cacheable single write, write-through single write and snoop write back burst write multi-level pipelined registers.

그리고 225는 캐쉬가 가능하지 않은 단일 쓰기,라이트-쓰루 및 캐쉬 가능한 버스트읽기를 위한 데이터 버퍼로서 설계에 따라 단일레벨(sing-levle) 또는 다중레벨 레지스터로 구현될 수 있다. 230은 어드레스 래치 및 삼-상태(tri-state) 버퍼로서,캐쉬 가능한 또는 캐쉬 가능하지 않은 읽기 사이클 어드레스,단일 쓰기 사이클 어드레스와 스누우프 라이트백 사이클 어드레스를 래치한다.And 225 is a data buffer for single write, write-through, and cacheable burst reads that are not cache-enabled and can be implemented as a single-level or multilevel register, depending on the design. 230 is an address latch and tri-state buffer that latches a cacheable or non-cacheable read cycle address, a single write cycle address and a snoop write back cycle address.

235는 버스 사이클 제어기로서,프로세서(200)으로부터 사이클 형태 및 명령(cycle type & command) 신호들을 전달받고 그에 따른 시스템 버스 억세스 사이클을 준비하며,시스템버스 중재에 참가하여 버스의 사용권을 획득한 후 공유메모리에 대한 읽기/쓰기 억세스를 수행하고 프로세서(200)의 버스 사이클을 종료시킨다.Reference numeral 235 denotes a bus cycle controller which receives cycle type and command signals from the processor 200 and prepares a corresponding system bus access cycle, participates in a system bus arbitration to acquire a license of the bus, Performs a read / write access to the memory and ends the bus cycle of the processor 200. [

이런한 일련의 버스 사이클 처리 과정에서 어드레스 래치/버퍼,데이터 레지스터/버퍼 및 각종 시스템 버스인터페이스 버스 트랜시버(transceiver) 로직 등의 개폐와 로드/언로드(load/unload)를 총괄적으로 제어한다.In this series of bus cycle processing, it controls the opening / closing and load / unload of the address latch / buffer, data register / buffer, and various system bus interface bus transceiver logic as a whole.

240은 다른 프로세서 보드의 공유메모리 읽기/쓰기 억세스를 감시(snooping)하고 그에 따른 스누우프 응답을 전달하기 위한 시스템 버스 인터페이스 트랜시버 로직이다.스누우프 응답을 한 프로세서 보드(스누우프 제어기) 그에 따라 자신의 캐쉬라인의 태그상태를 바꾸거나 필요한 경우 스누우프 라이트백 사이클을 수행하며,스누우프 응답을 받은 프로세서 보드는 그에 따라 자신의 사이클 종료시의 캐시 라인 태그상태를 적절한 값으로 설정하게 하므로써 전체적인 시스템 차원의 데이터 일치성을 보장하게 된다.240 is a system bus interface transceiver logic for snooping shared memory read / write access to other processor boards and delivering the corresponding snoop response. The snoop response is sent to the processor board (snoop controller) The processor board that has responded to the snoop response sets the cache line tag state at the end of its cycle to an appropriate value, Thereby ensuring overall system-level data consistency.

245는 자신의 프로세서 보드의 시스템 버스 사이클을 위한 어드레스를 시스템 버스로 전달하고 또한 다른 프로세서 보드의 공유메모리 억세스를 위한 시스템 버스 어드레스를 감시하기 위해 그 어드레스 즉 자신의 관점에서 볼 때 스누우프 어드레스를 전달받는 데 사용되는 시스템버스 인터페이스 트랜시버 로직이다.245 transfers its address for the system bus cycle of its processor board to the system bus and also monitors its address to monitor the system bus address for access to the shared memory of the other processor board, It is the system bus interface transceiver logic used to receive the signal.

250은 자신의 시스템 버스 억세스를 위해 시스템 버스의 사용을 요청하고 중재에 참가하고 버스의 사용권을 획득하는데 까지에 필요한 일련의 신호를 주고받기 위한 시스템 버스 인터페이스 트랜시버 로직이다.250 is a system bus interface transceiver logic for requesting the use of the system bus for access to its system bus and for sending and receiving a series of signals needed to participate in the arbitration and acquire the license of the bus.

255는 자신의 시스템 버스 억세스 사이클 형태(읽기/쓰기)에 따라 시스템 버스와 데이터를 주고 받기 위한 시스템 버스 인터페이스 트랜시버 로직이다.255 is a system bus interface transceiver logic for transferring data to and from the system bus in accordance with its own system bus access cycle type (read / write).

한편 신호3은 정규 사이클 즉 읽기 사이클,단일 쓰기 사이클,스누우프 라이트백 사이클의 어드레스 래치 & 삼상태(tri-state)버퍼의 출력 인에이블 시호이고, 신호4는 상기 정규사이클의 어드레스 래치 & 삼상태(tri-state)버퍼의 래치 인에이블 신호이다.On the other hand, the signal 3 is the output enable signal of the address latch and tri-state buffer of the normal cycle, that is, the read cycle, the single write cycle, and the snoop write back cycle, and the signal 4 is the address latch & It is the latch enable signal of the tri-state buffer.

신호7은 단일 쓰기,스누우프 라이트백 사이클의 쓰기 데이터 출력 인에이블 신호이고,신호8은 단일 쓰기,스누우프 라이트백 사이클의 쓰기 데이터 로드(load) 인에이블 신호이다. 신호11은 읽기 데이터 로드 인에이블 신호이고,신호12는 읽기 데이터 출력 인에이블 신호이다.Signal 7 is a write data output enable signal in a single write or snoop write cycle and signal 8 is a write data load enable signal in a single write or snoop write back cycle. Signal 11 is a read data load enable signal, and signal 12 is a read data output enable signal.

한편 2차 캐쉬메모리의 경우는 4096개의 2-웨이 태그 메모리 배당장소(location) 각각에 상기 M.E.S.I 정보를 저장해 두기 위해 별도의 영역인 태그상태 배당장소(location)가 부가적으로 존재한다.On the other hand, in the case of the secondary cache memory, there are additional tag state allocation locations, which are separate areas, for storing the M.ESI information in each of 4096 2-way tag memory allocation locations.

다음은 상기 도 1 및 도 2를 참조하여 프로세서의 데이터 억세스 사이클들을 설명한다.The following will describe the data access cycles of the processor with reference to FIG. 1 and FIG.

1) 데이터 읽기 사이클(data read cycly)1) Data read cycle (data read cycle)

프로세서(200)가 요구하는 데이터가 1차 캐쉬메모리에 없을 경우 즉 1차 캐쉬 읽기 미스(read miss)일 경우,프로세서(200)는 2차 캐쉬/스누우프/사이클 제어기(205,210)에게 데이터 읽기 억세스 사이클을 요청하고,상기 제어기(205,210)는 프로세서 어드레스 중 A17-A6에 해당하는 2개의 태그 메모리에 배당장소(location)를 열어보고 그 안에 원하는 데이터의 어드레스(프로세서의 A31-A18과 동일한 값)가 있을 경우 즉 2차 캐쉬 읽기 히트(hit)일 경우,그에 해당하는 데이터를 2차 캐쉬 데이터 메모리(215)로부터 프로세서(200)로 공급한다. 원하는 어드레스가 없을 경우에는 즉 2차 캐쉬 읽기 미스일 경우,상기 제어기(205,210)는 도 2에 도시된 버스사이클 제어기(235)에게 시스템 버스를 통해 공유메모리를 억세스하여 읽기 데이터를 공급하도록 요청하다.상기 버스사이클 제어기(235)는 시스템 버스의 사용을 요청하는 신호들을 구동하고 시스템 버스의 중재(arbitration)를 거쳐 버스의 사용권을 획득한 후 읽기 사이클을 요청하는 정보의 신호들이(어드레스,사이클형태 등)을 버스 프로토콜에 입각하여 공유메모리에게 전달하는 어드레스(명령)사이클을 수행하는데 이 싯점에 시스템 버스 상에 위치한 다른 더리기(프로세서 구성요소 보드)로부터 스누우프 응답에 따라 이 어드레스 사이클을 재시도(retry)하거나 또는 스누우프 응답내용을 기억해둔다.이후 공유메모리로부터 데이터 응답이 오면 상기 버스 사이클 제어기(235)는 이를 2차 캐쉬 메모리(215)로 전달하는데 이 때 앞서의 기억해둔 스누우프 응답에 따라 M.E.S.I 중 하나로 그 태그 상태 배달장소(location)를 표시(marking)해둘 것을 함께 요청한다.스누우프 응답이 없었을 경우의 태그상태는 E로,스누우프 응답이 공유인 경우에는 태그상태를 S로 표시하도록 요청한다. 이와 같은 방식으로 프로세서(200)가 요구하는 읽기 데이터는 1차 또는 2차 캐쉬 메모리(215)에 저장되어 이후에 다시 그 데이터를 읽으려 할 경우 읽기히트(read hit)가 되어 별도의 시스템 버스 억세스 요청없이 모든 동작이 캐쉬 메모리 내에서 빠르게 처리될 수 있는 것이다.When the data requested by the processor 200 is not in the primary cache memory, that is, when the primary cache is a read miss, the processor 200 reads data from the secondary cache / snoop / And the controllers 205 and 210 open the allocation place in the two tag memories corresponding to A17-A6 of the processor addresses, and store therein the address of the desired data (the same value as A31-A18 of the processor) The secondary cache data memory 215 supplies the data corresponding thereto to the processor 200. In this case, If there is no desired address, that is, if there is a secondary cache miss, the controllers 205 and 210 request the bus cycle controller 235 shown in FIG. 2 to access the shared memory through the system bus to supply read data. The bus cycle controller 235 drives signals requesting the use of the system bus, acquires the right to use the bus through an arbitration of the system bus, and then transmits information signals (address, cycle type, etc.) ) To the shared memory in accordance with the bus protocol. This address cycle is retried in response to a snoop response from another processor (processor component board) located on the system bus at this point retry or retry the snoop response, and if there is a data response from the shared memory, The base bus cycle controller 235 delivers this to the secondary cache memory 215. At this time, the tag state delivery location is marked with one of the MESIs according to the previously described snoop response If the snoop response is not shared, the tag state is denoted by E. If the snoop response is shared, the tag state is denoted by S. In this manner, the read data requested by the processor 200 is stored in the primary or secondary cache memory 215 and is then read hits in order to read the data thereafter, All operations without request can be processed quickly in cache memory.

2) 데이터 쓰기 사이클(data write cycle)2) Data write cycle (data write cycle)

프로세서(200)가 쓰려고 하는 라인이 이미 1차 캐쉬에 존재하는 경우 즉 1차 캐쉬쓰기히트(cache write hit)인 경우에는 2차 캐쉬에 대한 별도의 데이터 억세스 요청없이 바로 1차 캐쉬의 캐쉬 데이터 라인을 갱신(update)하게 되는데 해당하는 1차 태그 상태 배당장소(location)는 E인 경우는 M으로,M인 경우는 M으로 변경하고,S인 경우는 E로 변경함과 동시에 2차 캐쉬메모리(215)로의 라이트-쓰루(write-through) 사이클이 요청되며 후속하여 시스템 버스 억세스를 요청하여 공유메모리에도 그 데이터를 기록(write)한다.In the case where the line to be written by the processor 200 is already in the primary cache, that is, the cache write hit, the cache data line of the primary cache is directly accessed without a separate data access request to the secondary cache. The primary tag state allocation location is changed to M in the case of E and to M in the case of M and to E in the case of S and to the secondary cache memory A write-through cycle is requested for the system bus 215 and subsequently requests the system bus access to write the data to the shared memory.

프로세서(200)의 1차 캐쉬에 대한 쓰기(write) 사이클 요청이 미스(miss)이고 2차 캐쉬메모리(215)에 대한 쓰기 사이클 요청은(2차 캐쉬 wrte hit)가 되는 경우,상기 제어기(205,210)는 그 해당하는 데이터 캐쉬 메모리 배당장소(location)에 데이터를 기록하고 그 태그 상태 배당장소는 E인 경우 M으로,M인 경우는 M으로 변경하고 S인 경우에는 E로 변경함과 동시에 시스템 버스 억세스를 요청하며 공유메모리에도 그 데이터를 단일 데이터 라이트-쓰루(single data write-through) 사이클로 기록한다.If the write cycle request for the primary cache of the processor 200 is miss and the write cycle request for the secondary cache memory 215 is (secondary cache wrte hit), then the controller 205,210 ) Writes data to the corresponding data cache memory allocation location, and changes the tag state allocation location to M for M, M for M, and E for S, Request access and write the data in shared memory in a single data write-through cycle.

프로세서(200)의 쓰기 요구가 1차 및 2차 캐쉬 모두에 미스인 경우 상기 제어기(205,210)는 버스사이클 제어기(235)에게 시스템 버스 억세스 사이클을 요청하며 상기 버스사이클 제어기(235)는 시스템 버스 사용권을 획득한 후 쓰기 사이클 대신 배타읽기(exclusive read) 사이클을 수행하여 공유 메모리로부터 라인 단위의 데이터인 캐쉬가능한 버스터 데이터(cacheable burst data)를 공급받은 후 이를 2차 캐쉬(215)로 전달하는데, 이 때 필요한 적절한 신호를 구동하여 상기 제어기(205,120)로 하여금 읽기(read)는 라인 데이터의 필요한 부분에 프로세서로 부터의 원래의 쓰기 데이터를 기록하는 방식으로 합성(merge)하여 2차 캐쉬(210)의 해당하는 데이터 캐쉬 메모리 배당위치에 기록하게 한다.또한 그 2차 태그상태 배당위치(location) 에는 M으로 표시하도록 한다. 이 때 어떤 데이터도 1차 캐쉬로는 들어가지 않는다.If the write request of the processor 200 is missed in both the primary and secondary caches, the controller 205,210 requests a bus cycle controller 235 for a system bus access cycle and the bus cycle controller 235 requests the system bus usage An exclusive read cycle is performed in place of the write cycle to supply cacheable burst data, which is line-by-line data, from the shared memory, and then the cacheable burst data is transferred to the secondary cache 215. The controller 205 or 120 drives the controller 205 or 120 to write the original write data from the processor to the required portion of the line data so as to write the original write data to the second cache 210 And writes it to the corresponding data cache memory allocation position. The secondary tag state allocation location is indicated by M. At this time, no data enters the primary cache.

3) 교체 라이트백(replacement write back) 사이클3) A replacement write back cycle

상기에서 캐쉬 메모리의 구조를 살펴본 바와 같이 일반적인 캐쉬가능한 읽기(cachable read) 사이클 및 캐쉬 가능한 배타일기(cachable exclusive read) 사이클의 경우 프로세서 어드레스 A17-A6에 해당하는 2차 캐쉬 메모리의 배당장소(location)에 그 데이터를 채우게(chache line fill)되는데,4GB라는 전 영역의 메모리 데이터가 상대적으로 아주 작은 크기인 512KB로 매핑되는 구조로 되어 있으므로 2-웨이 구조의 2차 캐쉬 메모리에는 일정 싯점에 A17-A6가 동일한 라인크기(line size)의 데이터가 최대 2개만 저장될 수 밖에 없다.따라서 이미 해당 배당장소가 이전의 캐쉬라인 채움(fill) 데이터로 대체될 수 밖에 없다.따라서 이미 해당 배당장소가 이전의 캐쉬라인 채움에 의해 채워져 있을 경우 그 배당장소에 또다시 새로운 캐쉬라인 채움이 일어나야 하는 경우 그 배당장소는 새로운 캐쉬라인 채움 데이터로 교체(replacement)될 수밖에 없다.교체되어야 할 라인 배당장소에 해당하는 태그상에 배당장소(location)가 ES 또는 I인 경우에는 그냥 교체에 버리면 되지만 M인 경우에는 데이터 일치성(consistency)를 보장하기 위해 그 데이터를 공유메모리(shared memory)로 전달하는 과정이 뒤따라야 하는데 이를 가리켜 ‘교체 라이트백 사이클’이라 하며 하나의 교체된 라인전부가 시스템 버스를 통하여 버스트 쓰기(burst write) 사이클(라인 크기의 데이터를 시스템 버스의 데이터 버스 폭에 맞도록 나누어 하나의 쓰기 사이클 내에서 순차적으로 연속하여 기록하는 동작)로 공유메모리로 데이터를 전달한다.In the case of a general cacheable read cycle and a cachable exclusive read cycle as described above, the location of the secondary cache memory corresponding to the processor address A17-A6, (4 bytes) is mapped to 512 KB, which is a very small size. Therefore, in the second-order cache memory of the 2-way structure, A17-A6 The data of the same line size can only be stored in a maximum of 2. Therefore, the corresponding place of the dividend is already replaced by the previous cache line fill data, If the cash line is filled by filling and the new cache line must be filled again at the dividend location, If the location is ES or I on the tag corresponding to the line dividing place to be replaced, it can be just replaced, but if it is M, the data matching it is necessary to follow the process of transferring the data to the shared memory in order to ensure consistency. This is referred to as 'alternate write back cycle' and all of the replaced lines are burst write through the system bus, Cycle (operation of dividing the line-size data into the data bus width of the system bus and sequentially writing in succession in one write cycle).

4)스누우프 라이트백 사이클(snoop write back cycle)4) Snoop write back cycle (snoop write back cycle)

캐쉬/스누우프/사이클 제어기(205,210)와 프로세서 보드 내에 스누우프(snoop)를 위해 부가적으로 존재하는 스누우프 제어 로직들을 총괄하여 스누우프 제어기(205)라 부르기로 한다. M.E.S.I 프로토콜을 사용하는 다중 처리기 시스템에서 하나의 프로세서 보드 내의 스누우프 제어기는 다른 모든 처리기의 시스템 버스 억세스를 항상 감시(snooping)하는 기능을 담당하는데 이는 다른 처리기의 시스템 버스 억세스 어드레스 A17-A6에 해당하는 캐쉬 태그 배달장소 내에 저장되어 있는 어드레스 값과 그 어드레스 A31-A18을 비교하고 그 태그 상태 배달장소의 M.E.S.I표시(marking)되어 있는 상태에 따라 다른 처리기의 시스템 버스 억세스 어드레스 사이클의 끝에 적절한 스누우프 응답을 하므로써 스누우프 동작은 이루어진다.이와 같은 어드레스의 비교를 통해히트(즉 어드레스가 동일)이고 태그상태 배당장소의 상태가 M인 경우 스누우프 제어기(205)는 스누우프 응답(dirty)을 통해 다른 처리기의 공유메모리 억세스를 지연시키고 즉시 저장하고 있던 데이터를 공유메모리로 기록하기 위한 버스트 라이트백 사이클을 버스 사이클 제어기(235)에게 요청하여 수행시킨다. 이를 가리켜 ‘스누우프 라이트백 사이클’이라 부른다.지연되었던 다른 처리기의 공유메모리 억세스 사이클은 이 스누우프 라이트백 사이클이 종료된 후에야 비로소 재개된다.The cache / snoop / cycle controllers 205 and 210 and the snoop control logic, which is additionally present for snooping in the processor board, will be collectively referred to as a snoop controller 205. In a multiprocessor system using the MESI protocol, the snoop controller in one processor board is responsible for always snooping the system bus access of all other processors, which corresponds to the system bus access addresses A17-A6 of the other processors The address value stored in the cache tag delivery location is compared with its address A31-A18, and at the end of the system bus access address cycle of another processor according to the MESI marking state of the tag state delivery location, The snoop controller 205 determines whether the hit state (i.e., address is the same) and the state of the tag state allocation place is M by comparing the addresses with each other, To delay the access to the shared memory of the other processor, And requests the bus cycle controller 235 to perform a burst write back cycle for writing data into the shared memory. This is referred to as the 'snoop writeback cycle.' The shared memory access cycle of another processor that has been delayed will not resume until after this snoop writeback cycle has ended.

5) 캐쉬가능하지 않은 읽기/쓰기 사이클(non cachable read/write cycle)5) Non-cacheable read / write cycles (non cachable read / write cycle)

프로세서(200)는 총 4GB의 메모리 영역중 일부를 캐쉬가능하지 않은 영역(non-cachable area)으로 선언하여 읽기/쓰기할 수 있는데,이 때에는 1차 및 2차 캐쉬 메모리로의 어떠한 캐쉬 라인 채움도 발생하지 않고 또한 캐쉬 태그상태도 절대 변경됨이 없이 단지 상기 제어기(205,210)와 버스사이클 제어기(235)를 거쳐 시스템 버스를 통한 단일 데이터 읽기/쓰기 사이클만 수행될 뿐이다.Processor 200 may declare some of the total 4 GB memory areas as non-cacheable areas for read / write, in which case any cache line fill to the primary and secondary cache memory Only a single data read / write cycle through the system bus is performed through the controllers 205 and 210 and the bus cycle controller 235 without any change in the cache tag state and no change in the cache tag state.

도 3에 도시된 바와 같이 프로세서의 모든 시스템 버스 억세스 사이클들의 어드레스는 모두 하나의 어드레스 래치 & 삼-상태(tri-state) 버퍼(230)를 경유하여 버스사이클 제어기(235)가 공유메모리를 억세스하는데 사용되도록 되어 있다.또한 모든 쓰기 사이클의 데이터는 단일 쓰기,교체 라이트백 구분없이 하나의 파이프라인된 쓰기 데이터 레지스터(220)를 거치도록 되어 있고,읽기 데이터는 단일한 경로인 데이터 버퍼(225)를 거치도록 되어 있다.상술한 바와 같이 시스템 버스 억세스를 통해 수행되는 캐쉬 라인 채움이 기존에 M상태로 존재하던 캐쉬 라인에 대한 교체를 유발하는 경우 후속하여 교체 라이트백 사이클을 수반하게 된다. 문제는 이 교체 라이트백 사이클을 수행한 프로세서 보드의 프로세서는 이 사이클이 정상적으로 종료되기 전까지는 더 이상의 후속 시스템 버스 억세스 사이클을 유보 또는 지연할 수밖에 없다.As shown in FIG. 3, the addresses of all system bus access cycles of the processor are all accessed by the bus cycle controller 235 via the single address latch & tri-state buffer 230 The data of all the write cycles is passed through the single pipelined write data register 220 without distinguishing between the single write and the alternate write back and the read data is stored in the data buffer 225 as a single path As described above, if the cache line filling performed through the system bus access causes a replacement for the cache line existing in the M state, the replacement write back cycle is followed. The problem is that the processor on the processor board that performed this alternate writeback cycle has no choice but to defer or delay any further system bus access cycles until the cycle is terminated normally.

하나의 프로세서가 시스템 버스를 통해 공유메모리로부터 데이터를 읽어들여 캐쉬 라인 채움을 할 때 태그 상태가 M인 기존의 캐쉬 데이터 라인의 배당장소를 대체해야할 경우 후속하여 교체 라이트백 사이클이 시스템 버스로 나올 수밖에 없다는 것이다.이로 인해 그 프로세서는 새로이 시스템 버스를 억세스하기 위한 요구가 내부적으로 발생했다 할지라도 교체 라이트백 사이클이 정상적으로 종료될 때 까지 기다려야 한다.이를 프로그램을 실행하는 프로세서의 관점에서 살펴본다면 공유메모리에 비해 상대적으로 아주 작은 크기의 캐쉬 메모리를 전체 공유메모리 영역에 매핑하여 사용하는 구조로 인해 실제로 프로세서는 하나의 읽기(read)만을 요구하였는데 시스템 버스 억세스 사이클 측면에서는 2개의 사이클이 필연적으로 발생할 수밖에 없다고 하겠다.이처럼 발생하는 교체 라이트백 사이클은 시스템 버스 상의 어느 누구도 당장 그 데이터를 요구하지 않는 즉 긴급히 공유메모리로 기록될 필요가 전혀없는 사이클로서 궁극적으로 언젠가 필요로 할 때 공유메모리 또는 다른 프로세서 보드로 전달되기만 하면 데이터 일치성이 보장될 수 있다.When one processor reads data from the shared memory through the system bus and fills the cache line, if the place of the existing cache data line whose tag state is M is to be replaced, the replacement write back cycle must be followed by the system bus This means that the processor has to wait for the alternate writeback cycle to terminate normally even if the request for accessing the system bus internally occurs, and if you look at it from the point of view of the processor running the program, In contrast, a relatively small amount of cache memory is mapped to the entire shared memory area, so that the processor actually requires only one read. In terms of the system bus access cycle, however, two cycles necessarily occur This alternate writeback cycle is a cycle in which no one on the system bus needs its data immediately, that is, it does not need to be urgently written to shared memory, and eventually transfers it to shared memory or another processor board The data consistency can be ensured.

이와 같은 당장 수행될 필요가 없는 사이클을 위해 시스템 버스를 사용하게 되므로써 시스템 버스의 사용은 효율적이지 못하게 되고 이는 전체 시스템의 성능을 저하시키는 요인의 하나가 된다.As the system bus is used for cycles that do not need to be performed immediately, the use of the system bus becomes inefficient, which is one of the factors that degrade the performance of the overall system.

본 발명은 상술한 문제점을 해결하기 위해 창출된 것으로서, 캐쉬메모리를 사용하는 멀티프로세서 시스템에 있어서 데이터의 일치성을 보장하면서 시스템 버스를 보다 효과적으로 사용하고 프로세서의 처리속도를 향상시켜 시스템의 성능을 높일 수 있는,멀티프로세서 시스템의 교체 라이트백 처리 장치 및 방법을 제공함에 그 목적이 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above-mentioned problems, and it is an object of the present invention to improve system performance by increasing the processing speed of a processor, more effectively using a system bus while ensuring consistency of data in a multiprocessor system using a cache memory And to provide a replacement writeback processing apparatus and method for a multi-processor system.

제1도는 본 발명과 종래의 프로세서 보드가 적용이 되는 공유메모리에 기반한 대칭적 구조를 갖는 멀티프로세서 시스템의 블록도를 도시한 것이다,FIG. 1 is a block diagram of a multiprocessor system having a symmetric structure based on a shared memory to which the present invention and a conventional processor board are applied.

제2도는 종래의 프로세서 보드의 블록도를 도시한 것이다,FIG. 2 shows a block diagram of a conventional processor board,

제3도는 본 발명의 기록 블록도를 도시한 것이다,Figure 3 shows a recording block diagram of the present invention,

제4도는 도3의 확장된 구성도를 도시한 것이다.FIG. 4 shows the expanded configuration of FIG.

상기의 목적을 달성하기 위한 본 발명에 의한,2차 캐쉬가 프로세서 외부에 장착된 프로세서 보드가 적어도 2개 있으며, 상기 프로세서 보드는 버스를 기반으로하여 연결되어 있는 멀티프로세서 시스템에서의 교체 라이트백 사이클 처리장치는 프로세서의 2차캐쉬 읽기미스에 의해 발생된 교체 라이트백 사이클의 어드레스를 저장하는 어드레스 저장수단: 상기 어드레스 저장수단에 저장된 어드레스를 출력하는 출력수단: 프로세서의 2차캐쉬 읽기미스에 의해 발생된 교체 라이트백 사이클의 데이터를 저장하는 데이터 저장수단; 상기 데이터 저장수단의 교체 라이트백 데이터를 출력하는 데이터 출력수단; 상기 어드레스 저장수단에 저당된 어드레스와, 프로세서가 새로운 캐쉬 라인 채움 사이클에서 구동한 어드레스를 비교하는 제1비교기; 상기 어드레스 저장수단에 저장된 어드레스와 시스템 버스상의 다른 프로세서에 의해 구동된 어드레스(스누우프 어드레스)를 비교하는 제2비교기; 및 상기 제1비교기 및 제2비교기의 비교결과에 따라, 시스템버스의 중재를 거쳐 스누우프 라이트백 사이클 또는 리플레이스 라이트백 사이클을 진행하기 위한 일련의 과정을 제어하는 버스사이클 제어기를 포함하는 것이 바람직하다.According to an aspect of the present invention, there is provided a processor system including at least two processor boards in which a secondary cache is mounted on the exterior of a processor, An address storing means for storing an address of a replacement write back cycle generated by a secondary cache reading error of the processor; an outputting means for outputting an address stored in the address storing means; Data storing means for storing data of a write back cycle; Data output means for outputting alternate write-back data of the data storage means; A first comparator for comparing an address held by said address storage means with an address driven by a processor in a new cache line fill cycle; A second comparator for comparing the address stored in the address storage means with an address (snoop address) driven by another processor on the system bus; And a bus cycle controller for controlling a series of processes for advancing a snoop write-back cycle or a write-right write-back cycle through arbitration of the system bus according to the comparison result of the first comparator and the second comparator desirable.

그리고 상기 버스사이클 제어기는 상기 제1비교기의 비교결과 비교한 어드레스가 서로 같으면 저장되어 있는 교체 라이트백 데이터를 프로세서에게 공급하고,비교한 어드레스가 서로 다르면 상기 새로운 교체 라이트백 사이클의 어드레스를 저장할 기억장소가 있으면 기억장소에 상기 어드레스와 데이터를 저장하고,없으면 저장된 교체 라이트백 어드레스와 데이터를 공유메모리로 교체 라이트백 사이클을 수행하도록 하는 일련의 제어를 하고, 상기 제2비교기의 비교결과 어드레스가 서로 같으면,상기 저장된 리플레이스 라이트백 사이클을 스누우프 라이트백 사이클로 진행하도록 제어함을 특징으로 한다.The bus cycle controller supplies the stored alternate write back data to the processor when the comparison result of the first comparator is equal to the comparison result. If the compared addresses are different from each other, the bus cycle controller stores the address of the new alternate write back cycle A write back cycle is carried out to replace the stored address and data with a shared memory, and if the comparison result addresses of the second comparator are equal to each other , And controls the stored write right back cycle to proceed in a snoop write back cycle.

한편 본 발명의 다른 목적을 달성하기 위한,2차 캐쉬가 프로세서 외부에 장착된 프로세서 보드가 적어도 2개 있으면,상기 프로세서 보드는 버스를 기반으로하여 연결되어 있는 멀티프로세서 시스템에서의 교체 라이트백 사이클 처리방법은 프로세서의 2차캐쉬 읽기 미스에 의해 발생된 교체 라이트백 사이클의 어드레스와 데이터를 자신의 프로세서 보드 내에 저장하는 단계; 및 상기 저장된 교체 라이트백 사이클의 어드레스와 다른 프로세서 보드에 의해 구동된 시스템 버스상에 어드레스를 비교하여,어드레스가 서로 같으면 상기 저장된 교체 라이트백 사이클의 어드레스와 데이터를 스누우프 라이트백 사이클로 공유메모리에 저장하고, 만일 프로세서가 다시 새로운 캐쉬라인 채움을 요구할 경우,상기 새로운 캐쉬라인 채움 어드레스 및 데이터를 저장할 기억장소가 있는지 검사하여,기억장소가 있으면 저장하고 기억장소가 없으면 상기 저장해둔 교체 라이트백 사이클을 리오드링하여 시스템버스 사이클을 진행하여 상기 저장해둔 교체 라이크백 어드레스와 데이터를 공유메모리로 라이트백하는 단계로 이루어지는 것이 바람직하다.According to another aspect of the present invention, there is provided a processor system including a processor board having a plurality of processor boards, The method includes the steps of storing the address and data of the alternate write back cycle generated by the secondary cache miss of the processor in its processor board; And comparing the address of the stored alternate write back cycle with the address on the system bus driven by another processor board. If the addresses are the same, the address and data of the stored alternate write back cycle are stored in a shared memory And if the processor again requests a new cache line fill, it checks if there is a place to store the new cache line fill address and data, if there is a place to store it, and if there is no place, And rewriting the data to the shared memory by proceeding with the system bus cycle and storing the stored spare back address and data into the shared memory.

이하에서 첨부된 도면을 참조하여 본 발명을 상세히 설명한다. 도 3은 본 발명의 기본 블록도를 도시한 것으로서, 상기 도 2와 기본적인 구성은 유사하나 상기 도 2와 비교할 때 교체라이트백 어드레스레스래치&어드레스비교기 블록(300)과 교체라이트백을 위한 레지스터(320)가 추가되고, 버스 사이클 제어기(310)가 약간 수정되었다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The present invention will now be described in detail with reference to the accompanying drawings. FIG. 3 shows a basic block diagram of the present invention. The basic structure of FIG. 3 is similar to that of FIG. 2, but in comparison with FIG. 2, a replacement write back addressless latch & address comparator block 300 and a register 320 is added, and the bus cycle controller 310 is slightly modified.

상기 교체라이트백 어드레스래치&어드레스래치&어드레스비교기(300)은 교체 라이트백 어드레스를 래치해 두기 위한 래치& 삼상태(tri-state) 버퍼로서, 자신의 프로세서(200)의 공유메모리 읽기 사이클 어드레스와 이미 래치되어 있는 교체 라이트백 어드레스를 비교하기 위한 비교기(302) 및 다른 프로세서 보드의 공유 메모리 억세스 사이클 어드레스인 스누우프 어드레스와 이미 래치되어 있는 교체 라이트백 어드레스를 비교하기 위한 스누우프비교기(304)를 포함한다.The substitute write back address latch & address latch & address comparator 300 is a latch & tri-state buffer for latching a replacement write back address and stores the shared memory read cycle address of its own processor 200 A comparator 302 for comparing the already latched replacement write back address and a snoop comparator 304 for comparing the snoop address, which is the shared memory access cycle address of another processor board, with the already latched replacement write back address ).

그리고 상기 교체라이트백을 위한 레지스터(320)은 교체 라이트백 즉 버스터(burst) 쓰기를 위한 데이터를 로드해 두기 위한 다중레벨 파이프라인된 레지스터이다. 상기 버스 사이클 제어기(310)는 본 발명의 목적을 달성하기 위해 도 2의 버스 사이클 제어기(235)에 신호1,신호2,신호5,신호6,신호9,신호10을 더한 버스 사이클 제어기이다.And the register 320 for the replacement write back is a multi-level pipelined register for loading data for replacement write back or burst writes. The bus cycle controller 310 is a bus cycle controller that adds signal 1, signal 2, signal 5, signal 6, signal 9, and signal 10 to the bus cycle controller 235 of FIG. 2 to achieve the object of the present invention.

상기 신호1은 교체 라이트백 사이클 어드레스 래치 및 삼상태 버퍼의 출력 인에이블 신호이고,신호2는 교체 라이트백 사이클 어드레스 래치 및 삼상태 버퍼의 래치 인에이블 신호이다.The signal 1 is the alternate write back cycle address latch and the output enable signal of the tri-state buffer, and the signal 2 is the alternate write back cycle address latch and the latch enable signal of the tri-state buffer.

신호5는 읽기 히트신호 즉 상기 교체라이트백 어드레스 래치&어드레스비교기(300)의 출력신호로서,자신의 프로세서(200)의 공유메모리 읽기 사이클 어드레스와 이미 래치되어 있는 교체 라이트백 어드레스를 비교하기 위한 CPU(200)-어드레스 어드레스 비교기(302)에서 두 어드레스가 일치할 경우 구동되는 신호이다.이처럼 히트일 경우 버트 사이클 제어기(310)는 자신의 읽기 사이클을 위해 시스템 버스를 사용하지 않고 그 대신 상기 교체라이트백을 위한 레지스터(320)로부터 데이터를 출력하고 상기 데이터버퍼(225)를 경유하여 데이터를 프롯세서(200)으로 전달한다.Signal 5 is a read hit signal, that is, an output signal of the alternate write back address latch & address comparator 300. The signal is a CPU for comparing the shared memory read cycle address of its own processor 200 with the already- The bit cycle controller 310 does not use the system bus for its read cycle and instead uses the system bus for the read cycle of the alternate light 200. In this case, Outputs the data from the register 320 for back and transfers the data to the processor 200 via the data buffer 225.

신호6은 상기 교체라이트백 어드레스 래치&어드레스비교기(300)의 출력시호로서, 다른 프로세서 보드의 공유메모리 억세스 사이클 어드레스인 스누우프 어드레스 비교기(304)에서 두 어드레스가 일치(hit)할 경우 구동되는 신호이다.이처럼 히트일 경우 버스 사이클 제어기(310)는 스누우프 라이트백을 위한 시스템 버스 쓰기 사이클을 구동하고 그 데이터를 상기 레지스터(320)으로부터 출력하여 시스템버스 인터페이스 트랜시버(255)를 거쳐 시스템 버스로 출력한다.Signal 6 is an output signal of the above-mentioned replacement write back address latch & address comparator 300 and is driven when two addresses match in a snoop address comparator 304 which is a shared memory access cycle address of another processor board The bus cycle controller 310 drives a system bus write cycle for snoop write back and outputs the data from the register 320 to the system bus interface transceiver 255 via the system bus interface transceiver 255. [ .

신호9는 교체라이트백 사이클의 쓰기 데이터 출력 인에이블 신호이고,신호10은 교체라이트백 사이클의 쓰기 데이터 로드(load) 인에이블 신호이다.Signal 9 is the write data output enable signal for the alternate write back cycle and signal 10 is the write data load enable signal for the alternate write back cycle.

한편 도 4는 상기 도 3의 확장된 구성도를 도시한 것으로서,기본적인 사항은 상기 도 3과 같으나 교체라이트백 어드레스 래치&어드레스비교기(300)와 레지스터(320)를 확장하였다.이로인해 상기 교체라이트백 어드레스래치&어드레스비교기(300)와 레지스터(320)에 어드레스 및 데이터를 로드해 두는데 사용되는 신호인 신호2, 신호10이 각각 1개가 아닌 다수의 신호들로 구성되고,상기 교체 라이트백 어드래스래치&어드레스비교기(400)의 구성요소인 비교기가 더욱 복잡하며,상기 확장된 교체라이트백 어드레스래치&어드레스 비교기(400)와 레지스터(410)의 크기 및 비교기의 구현 방식에 따라 비교기를 제어하고 그 결과를 버스사이클 제어기(420)에게 알리기 위한 신호들이 추가된다.상기 확장된 교체라이트백 어드레스래치&어드레스 비교기(400)와 확장된 레지스터(410)에서 볼 수 있듯이 기능적 측면에서 보면 그 내부에 다중화기(MUX,402,412) 로직이 필요하며,이를 제어하기 위한 신호도 필요하다.3, the basic matter is the same as that of FIG. 3, but the replacement write back address latch & address comparator 300 and the register 320 are expanded. As a result, The signals 2 and 10, which are signals used for loading addresses and data into the back address latch & address comparator 300 and the register 320, are composed of a plurality of signals, The comparator, which is a component of the drag latch & address comparator 400, is more complicated and controls the comparator according to the size of the extended alternate write back address latch & address comparator 400 and the register 410 and the implementation of the comparator Signals are added to inform the result to the bus cycle controller 420. The extended alternate write back address latch & address comparator 400 and the extended < RTI ID = 0.0 > As can be seen from the register 410, a multiplexer (MUX 402, 412) logic is required in the functional aspects thereof, and a signal for controlling the multiplexer is required.

상기의 도면을 기초로 본 발명의 동작을 설명하기 전에 먼저 본 발명의 기본 개념을 설명하면 다음과 같다. 본 발명은 교체 라이트백 사이클이 지니는 특성에 착안한 것으로서,프로세서의 캐쉬라인 채움(fill)에 후속하여 발생하는 교체 라이트백 사이클에서 라이트백 데이터를 프로세서 보드 내에 있는 래치(300,400) 및 레지스터(320,410)에 저장하고 별도의 시스템 버스 억세스 요청없이 조속히 프로세서의 사이클을 종료시켜 프로세서(200)가 필요한 경우 새로이 시스템 버스 억세스를 위한 사이클을 구동할 수 있도록한다.Before describing the operation of the present invention based on the above-mentioned drawings, the basic concept of the present invention will be described as follows. The present invention focuses on the characteristics of the alternate write back cycle in that writeback data is written to latches 300 and 400 and registers 320 and 410 in the processor board in a writeback cycle that follows the cache line fill of the processor, And terminates the processor cycle immediately without requesting a separate system bus access so that the processor 200 can newly drive a cycle for system bus access if necessary.

저장된 상기 어드레스와 데이터는 다음과 같이 사용될 수 있다. 다른 프로세서 보드가 그것을 요구할 때 스누핑(snooping)을 통해 이를 확인하고 교체라이트백 어드레스래치&어드레스비교기(300,400)가 히트이면 스누우프 라이트백 사이클로 변형하여 시스템 버스 억세스 사이클을 구동하는데 사용될 수 있다.그리고 자신의 프로세서(200)가 다시 이 데이터를 요구할 때는 별도의 시스템버스 억세스 요청없이 저장해둔 데이터를 즉시 공급함으로써 프로세서의 사이클을 조속히 종료시켜 프로세서의 성능을 향상시킨다.적합한 시스템 버스 중재 프로토콜이 존재한다고 할 때 자신의 프로세스의 캐쉬 라인 채움을 위한 새로운 시스템버스 억세스 요구가 발생하면 시스템 버스의 중재를 거쳐 사용권을 획득하고 읽기 사이클인 캐쉬 라인 채움 보다 저장해둔 교체 라이트백 어드레스를 먼저 구동하고 뒤이어 캐쉬 라인 채움 어드레스를 구동하는 방식으로(이를 사이클 리어더링(reordering)이라 함) 하나의 시스템 버스 사용권으로 2개의 시스템 버스 사이클을 수행할 수도 있다.The stored address and data may be used as follows. Can be used to acknowledge this through a snooping when the other processor board asks it and to modify the snoop writeback cycle if the alternate writeback address latch & address comparator 300,400 is hit and to drive the system bus access cycle When the processor 200 requests the data again, it immediately supplies the stored data without requesting a separate system bus access, thereby quickly terminating the processor cycle, thereby improving the performance of the processor. When a new system bus access request for filling the cache line of the own process occurs, the system receives the license through the arbitration of the system bus. Then, the replacement write back address stored before the read cycle cache line fill is first driven, In such a manner as to drive a dress as a system bus use (hereinafter referred to as the cycle rear rendering (reordering)) may perform two system bus cycle.

이는 공유메모리 보드내에 어드레스/명령 큐(queue)와 쓰기(write) 데이터를 위한 별도의 버퍼 큐가 존재하고 펜디드(pended) 프로토콜을 채택하는 시스템 버스의 경우 특히 효과적인데 쓰기 사이클의 경우는 어드레스와 데이터가 함께 시스템 버스로 전달되지만 읽기 사이클의 경우는 어드레스가 처리기로부터 시스템 버스로 전달 된 후 일정 시간이 지연이 있고 나서 공유메모리가 그 데이터가 준비되면 시스템버스로 데이터를 내보내게되므로 하나의 버스 사용권으로 2개의 사이클을 리어더링(reordering)하여 처리하는 것이 가능하며 결국 단위 시간에 2개의 사이클이 겹치게(overlap) 되어 처리되는 효과를 볼 수 있는 것이다.This is particularly effective in the case of a system bus that has a separate buffer queue for address / command queues and write data in the shared memory board and adopts the pended protocol, Data is transferred to the system bus together, but in the case of a read cycle, after a certain time delay after the address is transferred from the processor to the system bus, the shared memory will send data to the system bus when the data is ready. It is possible to perform the processing by reordering two cycles with respect to each other. As a result, it is possible to see the effect that two cycles are overlapped and processed in a unit time.

본 발명의 기본 구성에 대한 블록도를 도시한 도 3의 동작을 설명하기로 한다. 프로세서(200)가 2차 캐쉬읽기 미스에 의해 시스템 버스 읽기 사이클을 요구하고 버스사이클제어기(310)는 버스 사용권을 획득한 후 시스템 버스로부터 데이터를 전달받고 캐쉬 라인 채움을 종료한다. 이 캐쉬라인 채움에 의해 기존에 태그 상태가 M이었던 캐쉬 데이터 라인이 교체되고,이는 프로세서(200)로 하여금 교체 라이트백 사이클을 요구하게 한다.The operation of FIG. 3 showing a block diagram of the basic configuration of the present invention will be described. The processor 200 requests a system bus read cycle by a secondary cache read miss and the bus cycle controller 310 receives data from the system bus after acquiring a bus license and terminates the cache line filling. This cache line fill replaces the cache data line where the tag state was previously M, which causes the processor 200 to request a replacement write back cycle.

상기 버스사이클 제어기(310)는 상기 교체 라이트백 사이클 어드레스와 데이터를 상기 어드레스레치&어드레스비교기(300)와 레지스터(320)에 각각 저장하고 즉시 프로세서(200)의 사이클을 종료시켜 프로세서(200)가 다음 일을 할 수 있도록 하며 교체 라이트백을 위한 별도의 시스템버스 사이클은 수행하지 않는다.The bus cycle controller 310 stores the replacement write back cycle address and data in the address latch & address comparator 300 and the register 320, respectively, and immediately terminates the cycle of the processor 200 so that the processor 200 Allows you to do the following and does not perform a separate system bus cycle for replacement writeback.

프로세서가 다시 새로운 캐쉬 라인 채움을 요구할 경우 상기 버스사이클 제어기(310)는 상기 저장해둔 교체 라이트백 사이클과 캐쉬 라인 채움 사이클을 리어더링(reordering)하여 시스템 버스 사이클을 수행한다.When the processor again requests a new cache line fill, the bus cycle controller 310 performs a system bus cycle by reordering the stored write back cycle and the cache line fill cycle.

한편 상기 버스사이클 제어기(310)는 다른 프로세서 보드의 시스템 버스 억세스 어드레스를 어드레스레치&어드레스비교기(300)에서 감시(snooping)한 결과가 히트일 경우,즉 상기 스누우프 비교기(304)에서 다른 프로세서 보드가 구동한 시스템 버스상의 어드레스와 상기 어드레스레치&어드레스비교기(300) 내의 어드레스 저장수단인 어드레스 래치에 저장된 어드레스가 같을 경우,상기 어드레스 래치에 저장해둔 교체 라이트백 어드레스와 상기 레지스터(320) 내의 데이터 저장수단인 레지스터에 저장된 데이터 등을 사용하여 스누우프 라이트백 사이클을 위한 시스템 버스 억세스 사이클을 수행한다.Meanwhile, when the result of snooping the system bus access address of the other processor board by the address latch & address comparator 300 is a hit, that is, when the bus cycle controller 310 receives the system bus access address of the other processor board from the snoop comparator 304, If the address on the system bus driven by the board is the same as the address stored in the address latch, which is the address storage means in the address latch & address comparator 300, the replacement write back address stored in the address latch and the data in the register 320 And performs a system bus access cycle for a snoop writeback cycle using data stored in a register as a storage means.

그리고 상기 버스사이클 제어기(310)는 프로세서(200)로부터의 새로운 캐쉬 라인 채움 요구 어드레스가 저장해둔 교체 라이트백 어드레스와 일치할 경우,즉 상기 비교기(302)에서 상기 어드레스 래치에 저장된 어드레스와 프로세서(200)로부터의 새로운 캐쉬라인챔움 요구 어드레스를 비교하여 서로 같을 경우,별도의 시스템버스 사이클을 수행할 필요없이 상기 레지스터(320)에 저장되어 있는 교체 라이트백 데이터를 상기 레지스터(320) 내의 데이터 출력수단인 삼상태 버퍼를 통해 프로세서(200)에게 공급하므로써 사이클을 신속히 종료시킬 수 있다.And the bus cycle controller 310 determines if a new cache line fill request address from the processor 200 matches a stored replace write back address, i.e., the address stored in the address latch in the comparator 302, The cache line request addresses are compared with each other and the replacement write back data stored in the register 320 is transferred to the data output means in the register 320 without performing a separate system bus cycle It is possible to quickly terminate the cycle by supplying it to the processor 200 through the tristate buffer.

한편 본 발명의 기본 구성에 대한 블록도를 확장한 도 4의 동작을 설명하면 다음과 같다. 먼저 프로세서(200)가 2차 캐쉬 읽기 미스에 의해 시스템 버스 읽기 사이클을 요구하고 버스사이클제어기(420)는 버스 사용권을 획득한 후 시스템 버스로부터 데이터를 전달받고 캐쉬 라인 채움을 종료한다.이 캐쉬라인 채움에 의해 기존에 태그 상태가 M이었던 캐쉬 데이터 라인이 교체되고,이는 프로세서(200)로 하여금 교체 라이트백 사이클을 요구하게 한다. 이 때 상기 버스사이클 제어기(420)는 상기 교체 라이트백 사이클 어드레스와 데이터를 상기 확장된 어드레스레치&어드레스비교기(400)와 확장된 레지스터(410)에 각각 저장하고 즉시 프로세서(200)의 사이클을 종료시켜 프로세서(200)가 다음 일을 할 수 있도록 하며 교체 라이트백을 위한 별도의 시스템버스 사이클은 수행하지 않는다. 상기 확장된 어드레스레치&어드레스비교기 (400) 및 상기 확장된 레지스터(410)의 크기가 허용하는 한도내에서 교체 라이트백을 위한 별도의 시스템 버스 억세스가 필요없이 순조롭게 또한 신속하게 프로세서 사이클이 수행된다.4, which is an expanded block diagram of the basic configuration of the present invention, will be described. First, the processor 200 requests a system bus read cycle by a secondary cache read miss and the bus cycle controller 420 receives data from the system bus after acquiring a bus license and terminates the cache line filling. The filling causes the cache data line, which was previously tagged with M, to be replaced, which causes the processor 200 to request a replacement write back cycle. At this time, the bus cycle controller 420 stores the replacement write back cycle address and data in the extended address latch & address comparator 400 and the extended register 410, respectively, and immediately terminates the cycle of the processor 200 So that the processor 200 can do the next thing and does not perform a separate system bus cycle for the replacement write back. Processor cycles are performed smoothly and quickly without the need for a separate system bus access for alternate write back to the extent that the size of the extended address register & address comparator 400 and the extended register 410 allows.

한편 상기 확장된 어드레스레치&어드레스비교기(400) 및 상기 확장된 레지스터(410)가 단일한 구조가 아닌 ‘다수’로 구성되어 있으므로,상기 버스사이클 제어기(420)가 다른 프로세서 보드의 시스템 버스 억세스 어드레스를 확장된 어드레스레치&어드레스비교기(400)에서 감시(snooping)한 결과가 히트일 경우가 많아지고 따라서 저장해둔 교체 라이트백 어드레스와 데이터 등을 사용하여 스누우프 라이트백 사이클을 위한 시스템 버스 억세스 사이클을 수행하는 빈도가 커진다.Since the extended address & address comparator 400 and the extended register 410 are composed of a plurality of units rather than a single structure, the bus cycle controller 420 may control the system bus access address The result of snooping by the extended address & address comparator 400 is often a hit, and thus the system bus access cycle for the snoop writeback cycle using the stored replacement write back address and data, Is performed more frequently.

또한 확장된 구조에서는 상기 버스사이클 제어기(420)가 프로세서(200)로부터의 새로운 캐쉬 라인 채움 요구 어드레스가 저장해둔 교체 라이트백 어드레스와 일치할 경우도 많아지고,별도의 시스템 버스 사이클을 수행할 필요없이 저장되어 있는 교체 라이트백 데이터를 프로세서(200)에게 공급하므로써 사이클을 신속히 종료시킬 수 있다.In addition, in the extended structure, the bus cycle controller 420 also frequently matches a new cache line fill request address from the processor 200 with a stored replacement write back address, and does not need to perform a separate system bus cycle By supplying the stored replacement writeback data to the processor 200, the cycle can be quickly terminated.

그리고 사이클 리오더링(reordering)은 확장된 어드레스레치&어드레스비교기(400) 및 상기 확장된 레지스터(410)가 기존의 교체 라이트백으로 다 채워져 있을 경우에 한해 발생하게 되므로 확장된 어드레스레치&어드레스비교기(400) 및 상기 확장된 레지스터(410)의 크기가 클수록 사이클 리오더링의 발생 빈도는 줄어들 것이다.Cycle reordering occurs only when the extended address register & address comparator 400 and the extended register 410 are filled with the existing replacement write back. Therefore, the extended address & address comparator 400 and the size of the extended register 410 is larger, the frequency of occurrence of cycle reordering will be reduced.

상술한 바와 같이 도 3 및 도 4의 구성상의 차이로 인해 본 발명의 동작 원리는 동일하지만 그 세부 동작 및 효과는 상당한 차이를 갖는다.예를 들어 도 3의 버스사이클 제어기(310) 및 도 4의 버스사이클 제어기(420)가 교체 라이트백 사이클을 새로운 읽기 사이클과 리어더링할 것을 결정하는 시점이 서로 다를 수 있다.3 and 4, the operation principle of the present invention is the same, but its detailed operation and effect are considerably different. For example, in the bus cycle controller 310 of FIG. 3 and the bus cycle controller 310 of FIG. 4, The timing at which the bus cycle controller 420 decides to rearrange the alternate write back cycle with a new read cycle may be different.

도 3의 기본 구성에서는 교체 라이트백 사이클이 기존에 래치되어 있는 상황에서 다른 프로세서 보드에서 시스템 버스를 통해 상기 기존의 래치되어 어드레스를 억세스할 경우 언제나 리어더링을하여 교체 라이트백을 위한 시스템 버스 억세스 사이클을 수행하므로써 새로운 읽기에 의해 발생할지도 모르는 새로운 교체 라이트백을 위해 상기 어드레스레치&어드레스비교기(400) 및 상기 레지스터(410)의 자리를 비워둬야만 하는데 이는 하나의 래치 및 하나의 파이프라인 레지스터로만 구성되어 있는 단일 구조이기 때문에 어쩔 수 없는 현상이다.In the basic configuration of FIG. 3, when a replacement write-back cycle is already latched and another processor board accesses the existing latched address through a system bus, the system bus access cycle The address register & address comparator 400 and the register 410 must be left empty for a new replacement writeback that may be caused by a new read by performing only one latch and one pipeline register It is a unavoidable phenomenon because it is a single structure.

한편 도 4의 확장된 구조에서는 확장된 어드레스레치&어드레스비교기(400) 및 상기 확장된 레지스터(410)가 다 찼을 때에만 새로운 읽기 사이클 요구가 발생했을 경우에 한해 상기 버스사이클 제어기(420)는 그것을 리어더링하여 시스템 버스 사이클을 수행한다. 이러한 리어더링이 필요한 상황이 도래하기 전까지는 확장된 어드레스레치&어드레스비교기(400)에서 감시(snooping)만 잘하고 그에 따른 동작만 하면 된다. 여기서 상기 ‘다수’를 실제로 ‘몇 개’로 할 것인지는 전체 시스템의 설계사양, 즉 ‘가격:성능비’ , 상기 확장된 어드레스래치& 어드레스비교기(400) 등의 구현에 있어서의 복잡도 등을 고려하여 결정한다. 교체 라이트백 데이터는 캐쉬 데이터 라인의 대체에 의해 어쩔 수 없이 대체되는 데이터로서 가까운 시간내에 프로세서가 다시 요구할 가능성이 아주 높은 데이터 일을 고려한다면 적절한 규모의 확장을 갖는 구성은 시스템에 있어서 상대적으로 큰 3차 캐쉬 메모리를 두는 것 이상의 효과를 낼 수 있다.4, the bus cycle controller 420 determines whether a new read cycle request is generated only when the extended address & address comparator 400 and the extended register 410 are full, And rearranges to perform the system bus cycle. Until a situation requiring such rearranging comes, the extended address & address comparator 400 can perform only snooping and operate accordingly. Here, it is determined in consideration of the design specifications of the entire system, that is, the 'price: performance ratio', the complexity in the implementation of the extended address latch & address comparator 400, etc., do. The replacement writeback data is inevitably replaced by the replacement of the cache data line. Considering that the data is highly likely to be requested again by the processor in the near future, the configuration with the appropriate scale expansion is relatively large in the system It is possible to achieve an effect more than placing a cache memory.

본 발명에 의하면,당장 시스템 버스 사이클이 필요하지 않은 교체 라이트백 사이클의 어드레스/명령어/데이터 (address/command/data) 정보를 저장해 두고 필요한 경우, 즉 자신의 프로세서가 다시 그 데이터를 요구할 때나 다른 프로세서보드가 시스템 버스 억세스를 통해 그 데이터를 필요로 하고 있음이 감시(snooping)를 통해 감지되었을 경우,사용하거나 그와 같은 정보를 저장해두는 장소가 완전히 채워져 있을 때(full일 때) 프로세서로부터 새로이 요구되는 캐쉬 라인 채움을 위한 사이클과 리어더링하여 시스템버스 억세스 사이클을 수행하도록 함으로써,프로세서가 사이클에 소요되는 시간을 단축시킴과 동시에 시스템버스의 사용빈도를 줄여주고 또한 꼭 필요한 경우에만 시스템버스를 사용하도록 버스 사용을 효율화시키는 효과가 있어 전체 시스템의 기능을 현저히 향상시킬 수 있다.According to the present invention, address / command / data information of a replacement writeback cycle that does not require a system bus cycle immediately is stored, and when necessary, when its own processor again requests the data, When a board is detected through snooping that the data is needed by the system bus access, it is newly requested by the processor when the place to use or store such information is full (full) By allowing the system bus access cycle to be performed by cycling and re-cycling for cache line filling, it is possible to reduce the time it takes the processor to cycle, reduce the frequency of use of the system bus, It is effective to make use of the whole system The function can be remarkably improved.

Claims (5)

2차 캐쉬가 프로세서 외부에 장착된 프로세서 보드가 적어도 2개 있으며,상기 프로세서 보드는 버스를 기반으로하여 연결되어 있는 멀티프로세서 시스템에서의 교체 라이트백 사이클 처리장치에 있어서,프로세서의 2차캐쉬 읽기미스에 의해 발생된 교체 라이트백 사이클의 어드레스를 저장하는 저장수단; 상기 어드레스 저장수단에 저장된 어드레스를 출력하는 출력수단; 프로세서의 2차캐쉬 읽기미스에 의해 발생된 교체 라이트백 사이클의 데이터를 저장하는 데이터 저장수단; 상기 데이터 저장수단의 교체 라이트백 데이터를 출력하는 데이터 출력수단; 상기 어드레스 저장수단에 저장된 어드레스와,프로세서가 새로운 캐쉬 라인 채움 사이클에서 구동한 어드레스를 비교하는 제1비교기; 상기 어드레스 저장수단에 저장된 어드레스와 시스템 버스상의 다른 프로세서에 의해 구동된 어드레스(스누우프 어드레스)를 비교하는 제2비교기; 및 상기 제1비교기 및 제2비교기의 비교결과에 따라,시스템버스의 중재를 거쳐 스누우프 라이트백 사이클 또는 리플레이스 라이트백 사이클을 진행하기 위한 일련의 과정을 제어하는 버스사이클 제어기를 포함함을 특징으로 하는 멀티프로세서 시스템의 교체 라이트백 사이클 처리장치.There is provided a write back cycle processing apparatus in a multiprocessor system in which at least two processor boards having a secondary cache are mounted on the outside of the processor and the processor boards are connected based on a bus, Storage means for storing an address of a replacement writeback cycle generated by the storage means; Output means for outputting an address stored in the address storage means; Data storage means for storing data of a replacement writeback cycle generated by a secondary cache miss of a processor; Data output means for outputting alternate write-back data of the data storage means; A first comparator for comparing an address stored in the address storage means with an address driven by a processor in a new cache line fill cycle; A second comparator for comparing the address stored in the address storage means with an address (snoop address) driven by another processor on the system bus; And a bus cycle controller for controlling a series of processes for proceeding with a snoop writeback cycle or a replacement writeback cycle through arbitration of the system bus according to the comparison result of the first comparator and the second comparator Characterized in that the replacement light-back cycle processor of the multiprocessor system. 제1항에 있어서,상기 버스사이클 제어기는 상기 제1비교기의 비교결과 비교한 어드레스가 서로 같으면 저장되어 있는 교체 라이트백 데이터를 프로세서에게 공급하고,비교한 어드레스가 서로 다르면 상기 새로운 교체 라이트백 사이클의 어드레스를 저장한 기억장소가 있으면 기억장소에 상기 어드레스와 데이터를 저장하고,없으면 저장된 교체 라이트백 어드레스와 데이터를 공유메모리로 교체 라이트백 사이클을 수행하도록 하는 일련의 제어를 하고,상기 제2비교기의 비교결과 어드레스가 서로 같으면, 상기 저장된 리플레이스 라이트백 사이클을 스누우프 라이트백 사이클로 진행하도록 제어함을 특징으로 하는 멀티프로세서 시스템의 교체 사이클 처리장치.The bus cycle controller according to claim 1, wherein the bus cycle controller supplies the stored alternate write back data to the processor when the comparison results of the first comparator are equal to each other, And if there is a storage location storing an address, performs a series of control to store the address and data in a storage location, and if not, perform a write back cycle to replace the stored replacement write back address and data with the shared memory, And controls the stored replace write back cycle to proceed to a snoop write back cycle if the comparison result indicates that the addresses are equal to each other. 제1항에 있어서,상기 어드레스 출력수단 및 상기 데이터 출력수단은 삼상태 버퍼임을 특징으로 하는 멀티프로세서 시스템의 교체 라이트백 사이클 처리장치.The apparatus of claim 1, wherein the address output means and the data output means are tri-state buffers. 제1항에 있어서,상기 어드레스 저장수단 및 상기 데이터 저장 수단은 복수의 레지스터로 이루어지고, 상기 어드레스 출력수단 및 상기 데이터 출력수단은 상기 복수의 래치로부터 출력되는 어드레스 또는 데이터를 입력으로하여 하나의 어드레스 또는 데이터를 출력하는 다중화기: 및 상기 다중화기에서 출력되는 어드레스 또는 데이터를 입력으로 받아 들여 상기 버스사이클 제어기로부터의 소정의 제어신호에 의해 출력하는 삼상태 버퍼임을 특징으로 하는 멀티프로세서 시스템의 교체 라이트백 사이클 처리장치.2. The semiconductor memory device according to claim 1, wherein the address storage means and the data storage means comprise a plurality of registers, and the address output means and the data output means are operable to receive addresses or data output from the plurality of latches, And a multiplexer for outputting data, and a tri-state buffer for receiving an address or data output from the multiplexer as an input and outputting the received address or data according to a predetermined control signal from the bus cycle controller. Back cycle processing device. 2차 캐쉬가 프로세서 외부에 장착된 프로세서 보드가 적어도 2개 있으며,상기 프로세서 보드는 버스를 기반으로하여 연결되어 있는 멀티프로세서 시스템에서의 교체 라이트백 사이클 처리방법에 있어서,프로세서의 2차캐쉬 읽기 미스에 의해 발생된 교체 라이트백 사이클의 어드레스와 데이터를 자신의 프로세서 보드 내에 저장하는 단계; 및 상기 저장된 교체 라이트백 사이클의 어드레스와 다른 프로세서 보드에 의해 구동된 시스템 버스상에 어드레스를 비교하여, 어드레스가 서로 같으면 상기 저장된 교체 라이트백 사이클의 어드레스와 데이터를 스누우프 라이트백 사이클로 공유메모리에 저장하고, 만일 프로세서가 다시 새로운 캐쉬라인 채움을 요구할 경우,상기 새로운 캐쉬라인 채움 어드레스 및 데이터를 저항할 기억장소가 있는지 검사하여, 기억장소가 있으면 저장하고 기억장소가 없으면 상기 저장해둔 교체 라이트백 사이클을 리오드링하여 시스템버스 사이클을 진행하여 상기 저장해둔 교체 라이트백 어드레스와 데이터를 공유메모리로 라이트백하는 단계를 포함함을 특징으로 하는 멀티프로세서 시스템에서의 교체 라이트백 사이클 처리방법.There is provided a method for processing a write back cycle in a multiprocessor system having at least two processor boards in which a secondary cache is mounted outside the processor and the processor boards are connected based on a bus, Storing the address and data of the alternate writeback cycle generated by the processor in its own processor board; And comparing the address of the stored alternate write back cycle with the address on the system bus driven by another processor board. If the addresses are the same, the address and data of the stored alternate write back cycle are stored in a shared memory And if the processor again requests a new cache line fill, the new cache line fill address and data are checked for a memory location to resist, and if there is a memory location, And then writing back the stored replacement writeback address and data to the shared memory by proceeding with a system bus cycle. ※ 참고사항 : 최초출원 내용에 의하여 공개하는 것임.※ Note: It is disclosed by the contents of the first application.
KR1019960031550A 1996-07-30 1996-07-30 Apparatus and method for processing replacment vriteback cycle in multiprocessor system KR100188438B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960031550A KR100188438B1 (en) 1996-07-30 1996-07-30 Apparatus and method for processing replacment vriteback cycle in multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960031550A KR100188438B1 (en) 1996-07-30 1996-07-30 Apparatus and method for processing replacment vriteback cycle in multiprocessor system

Publications (2)

Publication Number Publication Date
KR980013130A true KR980013130A (en) 1998-04-30
KR100188438B1 KR100188438B1 (en) 1999-06-01

Family

ID=19468178

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960031550A KR100188438B1 (en) 1996-07-30 1996-07-30 Apparatus and method for processing replacment vriteback cycle in multiprocessor system

Country Status (1)

Country Link
KR (1) KR100188438B1 (en)

Also Published As

Publication number Publication date
KR100188438B1 (en) 1999-06-01

Similar Documents

Publication Publication Date Title
US6295582B1 (en) System and method for managing data in an asynchronous I/O cache memory to maintain a predetermined amount of storage space that is readily available
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
US5355467A (en) Second level cache controller unit and system
US5155824A (en) System for transferring selected data words between main memory and cache with multiple data words and multiple dirty bits for each address
US5561779A (en) Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system
JP3067112B2 (en) How to reload lazy push into copy back data cache
JP2717752B2 (en) Processor
US11789868B2 (en) Hardware coherence signaling protocol
CA2298780A1 (en) I/o page kill definition for improved dma and l1/l2 cache performance
US6535958B1 (en) Multilevel cache system coherence with memory selectively configured as cache or direct access memory and direct memory access
US5829027A (en) Removable processor board having first, second and third level cache system for use in a multiprocessor computer system
US5724550A (en) Using an address pin as a snoop invalidate signal during snoop cycles
US6484237B1 (en) Unified multilevel memory system architecture which supports both cache and addressable SRAM
KR100322223B1 (en) Memory controller with oueue and snoop tables
EP0681241A1 (en) Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system
US7035981B1 (en) Asynchronous input/output cache having reduced latency
KR100188438B1 (en) Apparatus and method for processing replacment vriteback cycle in multiprocessor system

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20051227

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee