KR0155532B1 - Cache memory system - Google Patents
Cache memory systemInfo
- Publication number
- KR0155532B1 KR0155532B1 KR1019950039677A KR19950039677A KR0155532B1 KR 0155532 B1 KR0155532 B1 KR 0155532B1 KR 1019950039677 A KR1019950039677 A KR 1019950039677A KR 19950039677 A KR19950039677 A KR 19950039677A KR 0155532 B1 KR0155532 B1 KR 0155532B1
- Authority
- KR
- South Korea
- Prior art keywords
- signal
- cycle
- bus
- cache
- progress
- Prior art date
Links
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/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0835—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
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
본 발명은 멀티프로세서 시스템에서의 되쓰기 중에 있는 데이터에 대한 캐쉬 일치성 보장장치에 관한 것으로서, 그 특징은 멀티프로세서 시스템에서의 되쓰기 중에 있는 데이터에 대한 캐쉬 일치성 보장장치에 있어서, 되쓰기가 될 가능성이 있는 캐쉬의 값을 듀얼 디렉토리로부터 제어신호의 시점에 저장하는 래치수단과, 래치의 출력값과 현재 버스 상에 수행중인 어드레스 값을 입력으로 받아 이들을 비교하여 래치 정합신호를 출력하는 래치 비교수단과, 버스 상에 진행중인 사이클을 요청한 프로세서 모듈의 고유 번호인 소스 식별자와 자신의 고유 번호인 자기 식별자를 비교하여 같은지 다른지를 나타내는 식별자 정합신호를 출력하는 식별자 비교수단과, 버스 상에 진행중인 사이클의 타입이 캐쉬 관련 타입인지 아닌지의 여부를 검사하여 캐쉬 관련 사이클임을 나타내는 전송형태 캐쉬신호와 배타적 읽기 사이클임을 나타내는 배타적 읽기 신호와 코히어런트 읽기 사이클임을 나타내는 코히어런트 읽기 신호와 라이트백 사이클임을 나타내는 라이트백 신호를 출력하는 전송형태 비교수단과, 식별자 정합신호와 전송형태 캐쉬신호와 배타적 읽기 신호와 코히어런트 읽기 신호와 라이트백 신호와 실제 되쓰기가 일어나는 사이클임을 알리는 되쓰기 인에이블 신호와 메모리 모듈의 상태 응답 신호와 프로세서 모듈의 상태 응답 신호와 버스로 진행중인 자신의 사이클이 성공적으로 끝났음을 나타내는 버스 허가 신호와 성공적으로 끝나지 못하고 사이클이 취소됨을 나타내는 중단 신호와 버스 클럭을 입력받아 제어 응답신호를 출력하는 제1제어수단과, 제어 응답신호와 버스 클럭을 입력받아 현재 되쓰기 사이클이 진행중임을 나타내는 되쓰기 진행신호를 출력하는 제2제어수단 및 래치 정합신호와 전송형태 캐쉬신호와 되쓰기 진행신호를 입력받아 스누핑 허용금지 신호를 생성하는 스누핑 허용금지 신호 생성수단을 포함하는 데에 있으므로, 그 효과는 새로운 캐쉬 라인을 읽을 때에 새 캐쉬 라인에 의하여 밀려나는 캐쉬 라인을 데이타가 변경된 상태이기 때문에 되쓰기 되어야 하는 경우에 새 캐쉬 라인에 대한 읽기가 먼저 수행되고 계속해서 되쓰기의 수행이 처리되어 캐쉬 미스액서스 기간이 새로운 캐쉬 라인 읽기 시간만 포함되고 되쓰기 시간은 포함되지 않아 성능이 증대된다는 데에 있다.The present invention relates to a cache consistency guarantee for data being rewritten in a multiprocessor system, and a feature of the present invention is a cache consistency guarantee for data being rewritten in a multiprocessor system. Latch means for storing a cache value likely to be stored at a time of a control signal from a dual directory, and a latch comparison means for receiving an output value of the latch and an address value currently being executed on the bus and comparing them to output a latch matching signal. And identifier comparison means for outputting an identifier matching signal indicating whether or not a source identifier, which is a unique number of a processor module, which has requested a cycle in progress on the bus and a magnetic identifier, which is its own number, is the same, and a type of cycle in progress on the bus. Check if this is a cache-related type or not Transmission type comparison means for outputting a transmission type cache signal indicating an associated cycle, an exclusive read signal indicating an exclusive read cycle, a coherent read signal indicating a coherent read cycle, and a writeback signal indicating a writeback cycle, and identifier matching Signals and Transmission Types Cache Signals, Exclusive Read Signals, Coherent Read Signals, Writeback Signals, and Rewrite Enable Signals that indicate the actual cycle of rewriting, the Status Response Signal of the Memory Module, and the Status Response Signal and Bus of the Processor Module. First control means for receiving a bus enable signal indicating that the cycle in progress is successfully completed, a stop signal indicating that the cycle has not been completed successfully, and a bus clock, and outputting a control response signal; and a control response signal and the bus clock. Enter the current string Second control means for outputting a rewrite progress signal indicating that a rewrite cycle is in progress; and a snooping prohibition signal generating means for generating a snooping prohibition signal by receiving a latch matching signal, a transfer type cache signal, and a rewriting progress signal; As a result, the effect is that when a new cache line is read, the cache line pushed by the new cache line must be rewritten because the data has changed, so that a read on the new cache line is performed first and then continues. The performance of the write is processed so that the cache miss access period includes only the new cache line read time and does not include the rewrite time, thereby increasing performance.
Description
제1도는 본 발명이 적용되는 전체 시스템의 구성도.1 is a block diagram of an entire system to which the present invention is applied.
제2도는 중첩 허용 버스 상에서의 읽기, 쓰기 동작의 예시도.2 is an illustration of read and write operations on a nested bus.
제3도는 본 발명에 따른 캐쉬 일치성 보장장치의 상세 구성도.Figure 3 is a detailed configuration of the cache consistency guarantee device according to the present invention.
제4도는 본 발명 중 REPON-CNTR의 상태 천이도.4 is a state transition diagram of REPON-CNTR in the present invention.
본 발명은 멀티프로세서 시스템에서의 되쓰기 중에 있는 데이터에 대한 캐쉬 일치성 보장장치에 관한 것으로서, 중첩된 버스 동작을 허용하는 버스를 가진 멀티프로세서 시스템에서 현재 하나의 프로세서 모듈 내부에서 캐쉬 데이터가 되쓰기(writeback)되는 경우에 되쓰기 발생 시점부터 이 데이터가 메모리에 완전히 쓰여질 때까지 이 데이터의 어드레스에 대한 다른 프로세서 모듈의 액서스 요청을 정확하고 효과적으로 저지하는 캐쉬 데이터 일치성 보장장치에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to a device for ensuring cache consistency for data being rewritten in a multiprocessor system, wherein cache data is currently rewritten within one processor module in a multiprocessor system having a bus that allows nested bus operations. In the case of a writeback, the present invention relates to a cache data consistency guarantee device that accurately and effectively blocks an access request of another processor module to an address of this data from the time of rewriting until the data is completely written to the memory.
종래에는 새로운 캐쉬 라인을 읽을 때, 새 캐쉬 라인에 의하여 밀려나는 캐쉬 라인의 데이터가 변경된 상태이기 때문에 되쓰기 되어야 하는 경우에 메모리로의 되쓰기가 먼저 수행되고 계속해서 새로운 캐쉬 라인에 대한 읽기를 수행했었다.Conventionally, when a new cache line is read, when the data of the cache line pushed by the new cache line is changed because it is changed, rewrite to the memory is performed first, and then the new cache line is read continuously. did.
한편, 되쓰기 데이터에 대한 캐쉬 일치성은 캐쉬가 새로운 데이터로 아직 바뀌지 않았으므로 특별한 조치없이 보장될 수 있다.On the other hand, cache matching for rewrite data can be guaranteed without special measures since the cache has not yet been replaced with new data.
그러나, 이 경우 새로운 캐쉬 라인의 읽기가 되쓰기 보다 시간적으로 나중에 발생하므로 캐쉬 미스액서스 기간은 되쓰기 시간과 새로운 캐쉬 라인 읽기 시간을 더한 값이 되어 캐쉬 미스액서스 기간이 길어진다는 문제점이 있었다.However, in this case, since the read of the new cache line occurs later in time than the rewrite, the cache miss access period is the sum of the rewrite time and the new cache line read time, thereby increasing the cache miss access period.
상기 문제점을 해결하기 위한 본 발명의 목적은 새 캐쉬 라인에 대한 읽기가 먼저 수행되고 계속해서 되쓰기의 수행이 처리되어 캐쉬 미스액서스 기간을 단축시키는 멀티프로세서 시스템에서의 되쓰기 중에 있는 데이터에 대한 캐쉬 일치성 보장장치를 제공함에 있다.SUMMARY OF THE INVENTION An object of the present invention for solving the above problems is to cache data during rewriting in a multiprocessor system in which a read on a new cache line is performed first and then a rewrite is processed to shorten the cache miss access period. To provide a consistency guarantee device.
상기 목적을 달성하기 위한 본 발명의 특징은 멀티프로세서 시스템에서의 되쓰기 중에 있는 데이터에 대한 캐쉬 일치성 보장장치에 있어서, 되쓰기가 될 가능성이 있는 캐쉬의 값을 듀얼 디렉토리로부터 제어신호의 시점에 저장하는 래치수단과, 상기 래치의 출력값과 현재 버스 상에 수행중인 어드레스 값을 입력으로 받아 이들을 비교하여 래치 정합신호를 출력하는 래치 비교수단과, 버스 상에 진행중인 사이클을 요청한 프로세서 모듈의 고유 번호인 소스 식별자와 자신의 고유 번호인 자기 식별자를 비교하여 같은지 다른지를 나타내는 식별자 정합신호를 출력하는 식별자 비교수단과, 버스 상에 진행중인 사이클의 타입이 캐쉬 관련 타입인지 아닌지의 여부를 검사하여 캐쉬 관련 사이클임을 나타내는 전송형태 캐쉬신호와 배타적 읽기 사이클임을 나타내는 배타적 읽기 신호와 코히어런트 읽기 사이클임을 나타내는 코히어런트 읽기 신호와 라이트백 사이클임을 나타내는 라이트백 신호를 출력하는 전송형태 비교수단과, 상기 식별자 정합신호와 상기 전송형태 캐쉬신호와 상기 배타적 읽기 신호와 상기 코히어런트 읽기 신호와 상기 라이트백 신호와 실제 되쓰기가 일어나는 사이클임을 알리는 되쓰기 인에이블 신호와 메모리 모듈의 상태 응답 신호와 프로세서 모듈의 상태 응답 신호와 버스로 진행중인 자신의 사이클이 성공적으로 끝났음을 나타내는 버스 허가 신호와 성공적으로 끝나지 못하고 사이클이 취소됨을 나타내는 중단 신호와 버스 클럭을 입력받아 제어 응답신호를 출력하는 제1제어수단과, 상기 제어 응답신호와 상기 버스 클럭을 입력받아 현재 되쓰기 사이클이 진행중임을 나타내는 되쓰기 진행신호를 출력하는 제2제어수단 및 상기 래치 정합신호와 상기 전송형태 캐쉬신호와 상기 되쓰기 진행신호를 입력받아 스누핑 허용금지 신호를 생성하는 스누핑 허용금지 신호 생성수단을 포함하는 데에 있다.In order to achieve the above object, a feature of the present invention is a cache consistency guarantee for data being rewritten in a multiprocessor system, wherein a cache value that is likely to be rewritten is set from a dual directory to a control signal point. Latch means for storing, the latch comparison means for receiving the output value of the latch and the address value currently being executed on the bus as an input, and outputs a latch matching signal, and the unique number of the processor module requesting an ongoing cycle on the bus. Identifier comparing means for comparing the source identifier with its own unique identifier and outputting an identifier matching signal indicating whether it is the same or not, and checking whether or not the type of the cycle in progress on the bus is a cache related type. Transmission type cache signal and exclusive read cycle Transmission type comparison means for outputting a coherent read signal indicating a read exclusive signal and a coherent read cycle and a write back signal indicating a write back cycle, the identifier matching signal, the transfer type cache signal, and the exclusive read signal And a rewrite enable signal indicating that the coherent read signal, the writeback signal, and a real rewrite cycle occur, a status response signal of a memory module, a status response signal of a processor module, and a cycle in progress on a bus. First control means for receiving a bus enable signal indicating completion and a stop signal indicating successful completion of the cycle and canceling the cycle, and outputting a control response signal, and receiving the control response signal and the bus clock and rewriting the current; Cycle is in progress And a second control means for outputting a rewrite progress signal, and a snooping prohibition signal generation means for receiving a latch matching signal, the transmission type cache signal, and the rewriting progress signal to generate a snooping prohibition signal. have.
상기 목적을 달성하기 위한 본 발명의 다른 특징은 멀티프로세서 시스템에서의 되쓰기 중에 있는 데이터에 대한 캐쉬 일치성 보장장치에 있어서, 중첩된 버스 동작을 허용하는 버스를 가진 멀티프로세서 시스템에서 버스 상에 하나의 프로세서 모듈로부터 메모리에로의 되쓰기가 진행되고 있을 때, 이 어드레스와 동일한 어드레스에 대한 또 다른 프로세서 모듈의 메모리 액서스 요청이 있는 경우, 이에 대한 버스 사용을 되쓰기의 시작 시점부터 완전히 끝나는 시점까지 허가하지 않도록 하는 데에 있다.Another aspect of the present invention for achieving the above object is a cache consistency guarantee for data being rewritten in a multiprocessor system, the one on the bus in a multiprocessor system having a bus that allows nested bus operation If a memory access request from another processor module for the same address as this address is in progress while the processor module of the processor is rewriting from memory to the memory, the bus usage for that processor is changed from the start of the rewrite to the end of the process. It is not to allow permission.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
제1도는 본 발명이 적용되는 전체 시스템의 구성도이다.1 is a block diagram of the entire system to which the present invention is applied.
제1도를 참조하여 본 발명이 적용되는 전체 시스템의 구성을 설명하면 다음과 같다.Referring to Figure 1 describes the configuration of the entire system to which the present invention is applied as follows.
이 시스템은 중첩된 버스 동작을 허용하는 버스인 P-버스(Pipeline Bus)에 n개의 프로세서 모듈과 m개의 메모리 모듈을 연결한 형태를 갖는다.The system is a form of connecting n processor modules and m memory modules to a P-bus (Pipeline Bus), a bus that allows overlapping bus operation.
프로세서 모듈은 각각 캐쉬를 가지고 있으며 이들 캐쉬 사이에는 캐쉬 데이터 일치성 프로토콜이 하드웨어적으로 유지된다.Each processor module has a cache, and the cache data consistency protocol is maintained in hardware between these caches.
P-Bus는 하나의 데이터 전송을 요청 단계와 응답 단계로 나누어 수행하는 방식의 버스이며 또한 여러개의 버스 사이클을 중첩하여 수행할 수 있는 일종의 파이프라인드 버스이다.P-Bus is a bus that divides one data transmission into request and response steps, and is a kind of pipelined bus that can carry out multiple bus cycles.
즉, 한 프로세서 모듈이 메모리 모듈에게 특정 어드레스에 대한 읽기를 요청한 경우, 요청 단계에만 버스를 점유하고 실제 메모리 모듈이 내부 메모리에 접근하여 데이터를 찾아와 응답 단계로 넘어갈 때까지는 버스를 점유하지 않으며, 일단 하나의 어드레스 버스 사이클이 진행되면 바로 다음 사이클에는 또 다른 버스 사이클이 진행될 수 있다.In other words, when a processor module requests a memory module to read a specific address, it does not occupy the bus until the actual memory module accesses internal memory, finds data, and passes to the response phase. When one address bus cycle proceeds, another bus cycle may proceed immediately after the next cycle.
제2도는 중첩 허용 버스 상에서의 읽기 및 쓰기 동작의 예시도이다.2 is an illustration of read and write operations on an overlapping permission bus.
제2도를 참조하여 중첩 허용 버스 상에서의 읽기 및 쓰기 동작의 일 실시예를 설명하면 다음과 같다.An embodiment of a read and write operation on the overlapping permission bus will be described with reference to FIG. 2.
쓰기의 경우, 버스 중재에서 이긴 프로세서 모듈은 첫번째 사이클로 어드레스를 버스 상에 구동하고 다음 버스 클럭에는 데이터를 구동한다.In the case of writes, the processor module winning the bus arbitration drives the address on the bus in the first cycle and the data on the next bus clock.
세번째 버스 클럭에는 메모리 모듈이나 다른 프로세서 모듈이 현재 진행되고 있는 쓰기 요청이 진행되어도 좋은지의 여부를 나타내는 상태 정보를 구동한다.The third bus clock drives status information indicating whether a memory module or another processor module may proceed with a write request currently in progress.
데이터 전송을 요청한 프로세서 모듈은 이 상태를 분석하여 전송의 성공 여부를 판정한다.The processor module requesting the data transmission analyzes this state to determine whether the transmission is successful.
읽기의 경우, 버스 중재에서 이긴 프로세서 모듈은 첫번째 사이클로 어드레스 버스를 버스 상에 구동하고 다음 버스 클럭에는 아무 일도 하지 않는다.For reads, the processor module winning the bus arbitration drives the address bus on the bus in the first cycle and does nothing for the next bus clock.
세번째 버스 클럭에는 메모리 모듈이나 다른 프로세서 모듈이 현재 진행되고 있는 읽기 요청이 진행되어도 좋은지의 여부를 타나내는 상태 정보를 구동한다.The third bus clock drives status information that indicates whether a memory module or another processor module may proceed with the current read request.
상태 정보가 알맞은 경우, 메모리 모듈은 데이터를 준비하여 얼마 후 처음 요청한 프로세서 모듈에 데이터를 전송하게 된다.If the status information is appropriate, the memory module prepares data and transmits the data to the processor module which initially requested after a while.
제3도는 본 발명에 따른 캐쉬 일치성 보장장치의 상세 구성도이다.3 is a detailed configuration of the cache consistency guarantee device according to the present invention.
제3도를 참조하여 본 발명에 따른 캐쉬 일치성 보장장치의 구성을 설명하면 다음과 같다.Referring to Figure 3 describes the configuration of the cache consistency guarantee device according to the present invention.
하드웨어 모듈은 되쓰기가 될 가능성이 있는 캐쉬의 값(DD_ADDR)을 DD(Dual Directory)로부터 DD_OE(DD Out Enable)시점에 저장하는 래치인 REPTAG(Replacement Tag), REPTAG의 출력값과 현재 버스 상에 수행중인 어드레스 값을 입력으로 하여 이를 비교하는 REPTAG-COMP(Replacement Tag Comparator)와 버스 상에 진행중인 사이클을 요청한 프로세서 모듈의 고유 번호인 SI(Source IDentification)와 자신의 고유 번호인 SID(Self IDentification)를 비교하는 ID-COMP(ID Comparator)와 버스 상에 진행중인 사이클의 타입이 캐쉬 관련 타입인지의 여부를 검사하는 TT-COMP(Transfer Type Comparator)과 ID-COMP의 출력신호로 비교값이 같음을 나타내는 ID-MATCH, TT-COMP의 출력신호로 캐쉬 관련 사이클임을 나타내는 TT-CACHE, Exclusive Read 사이클임을 나타내는 EXR, Coherent Read 사이클임을 나타내는 CRD, Writeback 사이클임을 나타내는 WRB, 실제 되쓰기가 일어나는 사이클임을 알리는 WBWE(Writeback Write Enable), 메모리 모듈의 상태 응답신호로 정상 상태임을 나타내는 M-ACK(Memory Ackonwledge), 프로세서 모듈의 상태 응답신호로 스누핑이 성공하지 못하여 재시도하여야 함을 나타내는 P-SNK(Processor Snoop Not Acknowledge), 버스로 진행중인 자신의 사이클이 성공적으로 끝났음을 나타내는 신호인 BGT(Bus Grant) 및 성공적으로 끝나지 못하고 사이클이 취소됨을 나타내는 신호인 ABT(Abort)의 값에 따라 REPON-F/F의 입력 신호인 REPON-REQ를 생성하는 REPON-CNTR(Replacement On Want Controller), REPTAG-MATCH 신호와 TT-CACHE, 또한 REPON-F/F의 출력신호로 현재 되쓰기 사이클이 진행중임을 나타내는 REP-ON(Replacement On)에 의하여 스누핑 허용 금지 신호인 P-SNK(Processor Snoop Not Acknowledge)을 생성하는 PSNK-GEN(P-SNK Generator)으로 구성되며, REPON-CNTR, REPON-F/F은 모두 버스 클럭인 BCLK에 동기되어 동작한다.The hardware module executes the output value of REPTAG (Replacement Tag) and REPTAG, which are latches that store the cache value (DD_ADDR) that can be rewritten from DD (Dual Directory) to DD Out Enable (DD_OE). It compares REPTAG-COMP (Replacement Tag Comparator) which inputs the address value being input and compares it, and Source IDentification (SI) which is the unique number of the processor module that requested the cycle in progress on the bus, and Self IDentification (SID) which is its own number. ID-COMP (ID Comparator) and TT-COMP (Transfer Type Comparator) which checks whether the type of cycle in progress on the bus is cache-related type and ID-COMP which indicates that the comparison value is the same. MATCH, TT-COMP output signal, TT-CACHE indicating cache related cycle, EXR indicating exclusive read cycle, CRD indicating coherent read cycle, WRB indicating writeback cycle WBWE (Writeback Write Enable) indicating the cycle of rewriting, M-ACK (Memory Ackonwledge) indicating normal status as the status response signal of the memory module, and snooping failed due to the status response signal of the processor module. Processor Snoop Not Acknowledge (P-SNK), BGT (Bus Grant), which indicates that the cycle in progress on the bus has been completed successfully, and ABT (Abort), which indicates the cycle is canceled without success. As a result, the REPON-CNTR (Replacement On Want Controller), REPTAG-MATCH and TT-CACHE, and REPON-F / F output signals generate REPON-REQ, the input signal for REPON-F / F. It consists of PSNK-GEN (P-SNK Generator) that generates Processor Snoop Not Acknowledge (P-SNK), which is a prohibition of snooping by REP-ON (Replacement On) indicating progress, REPON-CNTR, REPON-F / F operates in synchronization with BCLK, the bus clock.
제4도는 본 발명 중 REPON-CNTR의 상태 천이도이다.4 is a state transition diagram of REPON-CNTR in the present invention.
제4도를 참조하여 REPON-CNTR의 상태 천이를 설명하면 다음과 같다.Referring to FIG. 4, the state transition of the REPON-CNTR is described as follows.
RPN_IDLE : 기준이 되는 상태로 P-Bus 상에 자신의 어드레스 사이클이 진행되고(ID-COMP=1), 이때 TT가 자신의 내부 DD Tag를 대체할 가능성이 있는 타입이면(EXR=1 또는 CRD=1) RPN-SKIP으로 상태를 천이한다.RPN_IDLE: If its address cycle is progressed on the P-Bus as a reference state (ID-COMP = 1), and if the TT is likely to replace its internal DD Tag (EXR = 1 or CRD = 1) Transition state with RPN-SKIP.
그렇지 않으면 상태를 천이하지 않는다.Otherwise it does not transition.
이때, 제3도에서의 동작은 아무런 변화도 일어나지 않는다.At this time, the operation in FIG. 3 does not cause any change.
RPN_SKIP : 다음 상태인 RPN_AACK로 항상 천이한다.RPN_SKIP: Always transitions to the next state RPN_AACK.
이때, 제3도에서의 동작은 아무런 변화도 일어나지 않는다.At this time, the operation in FIG. 3 does not cause any change.
RPN_AACK : 버스 상의 상태 정보를 검사하는 단계로 메모리 모듈로부터의 허가 응답이 오고(M-ACK=1), 다른 프로세서 모듈로부터 스누핑 실패를 나타내는 응답이 오지 않는 경우(P-SNK=0)에는 RPN_WAIT로 그렇지 않은 경우는 다시 처음 상태인 RPN_IDLE로 천이한다.RPN_AACK: It checks status information on the bus. If the permission response from the memory module comes (M-ACK = 1) and the response indicating the snooping failure is not received from another processor module (P-SNK = 0), then the RPN_WAIT is returned. Otherwise, transition back to the initial state RPN_IDLE.
이때, 제3도에서의 동작은 아무런 변화도 일어나지 않는다.At this time, the operation in FIG. 3 does not cause any change.
RPN_WAIT : 지금까지 진행된 동작이 에러없이 완전히 끝났음을 확인하는 단계로, 수행의 끝을 알리는 신호가 발생하면(BGT=1) 다음 상태인 RPF_IDLE로 상태를 천이한다.RPN_WAIT: It is a step to confirm that the operation so far completed without error. When a signal indicating the end of execution occurs (BGT = 1), the state transitions to the next state, RPF_IDLE.
이때, 제3도에서의 동작은 내부에서 되쓰기가 실제로 일어나는 사이클이면(WBWE=1), REPON-REQ를 발생시켜(REPON-REQ=1) REPON-FF을 세트시키는데(REP-ON=1), DD로부터 대체될 예정인 어드레스(DD_ADDR)를 읽어 REPTAG에 저장한다.At this time, the operation in FIG. 3 causes the REPON-REQ to be generated (REPON-REQ = 1) by setting the REPON-FF (REP-ON = 1) if the cycle actually occurs internally (WBWE = 1). Reads the address DD_ADDR to be replaced from the DD and stores it in the REPTAG.
이때부터 버스 상에 수행되는 사이클에 대한 어드레스와 REPTAG에 저장된 어드레스와의 검사가 이루어져 동일한 경우에는 다른 프로세서의 사이클은 진행이 취소된다.From this point on, a check is made between the address of the cycle performed on the bus and the address stored in the REPTAG.
한편, 이 사이클이 내부적으로 끝나기 전에 다른 버스 사이클로 인한 스누핑의 결과로 현재 진행되는 사이클이 취소되어 이를 알리는 신호가 발생하는 경우(ABT=1)는 RPN_IDLE 상태가 되어 처음부터 다시 사이클을 재수행하게 된다.On the other hand, if the current cycle is canceled as a result of snooping by another bus cycle before this cycle ends internally and a signal indicating this is generated (ABT = 1), the cycle is RPN_IDLE state and the cycle is executed again from the beginning.
이 경우에는 제3도의 동작에 아무런 변화가 일어나지 않는다.In this case, no change occurs in the operation of FIG.
위의 두 가지 경우가 아니면 상태를 천이하지 않는다.There is no transition between the two cases above.
RPF_IDLE : 실제 되쓰기 사이클이 일어나는 것을 감시하기 위한 기준이 되는 상태로 P-Bus 상에 자신의 어드레스 사이클이 진행되고(ID-COMP=1), 이때 TT가 되쓰기 타입(TT-WRB=1)이면 RPF-SKIP으로 상태를 천이한다.RPF_IDLE: Its own cycle of cycles on the P-Bus as a reference for monitoring the actual overwrite cycle (ID-COMP = 1), where TT is the rewrite type (TT-WRB = 1) Then transitions to RPF-SKIP.
그렇지 않으면 상태를 천이하지 않는다.Otherwise it does not transition.
이때, 제3도에서의 동작은 아무런 변화도 일어나지 않는다.At this time, the operation in FIG. 3 does not cause any change.
RPF_SKIP : 다음 상태인 RPF_AACK로 항상 천이한다.RPF_SKIP: Always transitions to the next state, RPF_AACK.
이때, 제3도에서의 동작은 아무런 변화도 일어나지 않는다.At this time, the operation in FIG. 3 does not cause any change.
RPN_AACK : 버스 상의 상태 정보를 검사하는 단계로 메모리 모듈로부터의 허가응답이 오고(M-ACK=1), 다른 프로세서 모듈로부터 스누핑 실패를 나타내는 응답이 오지 않는 경우(P-SNK=0)에는 RPF_WAIT로, 그렇지 않은 경우에는 2번째 사이클의 기준 상태인 RPF_IDLE로 천이한다.RPN_AACK: It checks status information on the bus. If an authorization response from the memory module is received (M-ACK = 1) and no response indicating snooping failure is received from another processor module (P-SNK = 0), then RPF_WAIT is returned. Otherwise, the state transitions to RPF_IDLE, which is the reference state of the second cycle.
이때, 제3도에서의 동작은 아무런 변화도 일어나지 않는다.At this time, the operation in FIG. 3 does not cause any change.
RPF_WAIT : 2번째 사이클의 동작이 에러없이 완전히 끝났음을 확인하는 단계로, 수행의 끝을 알리는 신호가 발생하면(BGT=1) 최초의 상태인 RPN_IDLE로 상태를 천이한다.RPF_WAIT: This step confirms that the operation of the second cycle is completed without error. If a signal indicating the end of execution occurs (BGT = 1), the state transitions to the first state, RPN_IDLE.
이때, 제3도에서의 동작은 REPON-REQ을 리세트(REPON-REQ=0)하여 REPON-FF을 리세트시켜(REP-ON=0) 이때부터는 다른 프로세서들이 되쓰기 어드레스에 대한 사이클에 대한 액서스를 자유롭게 수행할 수 있다.In this case, the operation in FIG. 3 resets the REPON-REQ (REPON-REQ = 0) to reset the REPON-FF (REP-ON = 0). You are free to perform the access.
한편, 이 사이클이 내부적으로 끝나기 전에 다른 버스 사이클로 인한 스누핑의 결과로 현재 진행되는 사이클이 취소되어 이를 알리는 신호가 발생하는 경우(ABT=1)는 RPF_IDLE 상태가 되어 2번째 사이클의 처음부터 사이클을 재수행하게 된다.On the other hand, if the current cycle is canceled as a result of snooping by another bus cycle before this cycle ends internally and a signal is signaled (ABT = 1), the cycle will be in RPF_IDLE state and the cycle will resume from the beginning of the second cycle. Will be done.
이 경우에는 제3도의 동작에 아무런 변화가 일어나지 않는다.In this case, no change occurs in the operation of FIG.
위의 두 가지 경우가 아니면 상태를 천이하지 않는다.There is no transition between the two cases above.
이와 같이 하드웨어를 구성하면 되쓰기가 시작되는 시점부터 되쓰기가 완전히 끝나는 시점까지, 즉 REP-ON 신호가 세트되어 있는 동안(REP-ON=1), 다른 프로세서 모듈이 REPTAG에 저장된 어드레스와 동일한 어드레스에(REPTAG-COMP=1) 대하여 캐쉬의 상태 변화를 일으킬 수 있는 액서스를 요구한(TT-CACHE=1) 경우에, 이는 2버스클럭(BCLK) 후에 프로세서 모듈의 스누핑 실패 응답(P-SNK)을 발생시킴으로써 두번째 버스 사이클은 더 이상 진행되지 않게 되어 되쓰기 중에 있는 데이터에 대한 캐쉬 일치성을 보장할 수 있다.The hardware configuration in this way allows the other processor module to have the same address as the address stored in REPTAG, from the start of the rewrite until the end of the rewrite, that is, while the REP-ON signal is set (REP-ON = 1). If an access request for REPTAG-COMP = 1 is required (TT-CACHE = 1), this causes the processor module's snooping failure response (P-SNK) after two bus clocks (BCLK). By generating, the second bus cycle no longer proceeds to ensure cache matching for data being rewritten.
그러므로, 상술한 바와 같으 본 발명의 효과는 새로운 캐쉬 라인을 읽을 때에 새 캐쉬 라인에 의하여 밀려나는 캐쉬 라인의 데이터가 변경된 상태이기 때문에 되쓰기 되어야 하는 경우에 새 캐쉬 라인에 대한 읽기가 먼저 수행되고 계속해서 되쓰기의 수행이 처리되어 캐쉬 미스액서스 기간이 새로운 캐쉬 라인 읽기 시간만 포함되고 되쓰기 시간은 포함되지 않아 성능이 증대된다는 데에 있다.Therefore, as described above, the effect of the present invention is that when a new cache line is read, the read of the new cache line is performed first and continues if the data of the cache line pushed by the new cache line is changed. Therefore, the performance of the rewrite is processed so that the cache miss access period includes only the new cache line read time and does not include the rewrite time, thereby increasing performance.
Claims (2)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950039677A KR0155532B1 (en) | 1995-11-03 | 1995-11-03 | Cache memory system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019950039677A KR0155532B1 (en) | 1995-11-03 | 1995-11-03 | Cache memory system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR970029069A KR970029069A (en) | 1997-06-26 |
KR0155532B1 true KR0155532B1 (en) | 1998-11-16 |
Family
ID=19432947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019950039677A KR0155532B1 (en) | 1995-11-03 | 1995-11-03 | Cache memory system |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR0155532B1 (en) |
-
1995
- 1995-11-03 KR KR1019950039677A patent/KR0155532B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR970029069A (en) | 1997-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5960457A (en) | Cache coherency test system and methodology for testing cache operation in the presence of an external snoop | |
KR960009659B1 (en) | Snoop circuit of multiprocessor system | |
JP3660679B2 (en) | Advanced pipeline bus architecture | |
JP2565642B2 (en) | Extended processor buffer interface for multiprocessors | |
US6412046B1 (en) | Verification of cache prefetch mechanism | |
US6079030A (en) | Memory state recovering apparatus | |
EP0833248A2 (en) | Memory update history storing apparatus and method | |
US7971003B2 (en) | Cache coherency in a shared-memory multiprocessor system | |
TW417047B (en) | Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency | |
US7620954B2 (en) | Mechanism for handling load lock/store conditional primitives in directory-based distributed shared memory multiprocessors | |
KR20020077331A (en) | Integrated circuit with flash memory | |
EP3644190B1 (en) | I/o coherent request node for data processing network with improved handling of write operations | |
JP3092566B2 (en) | Memory control method using pipelined bus | |
KR0155532B1 (en) | Cache memory system | |
EP1789876B1 (en) | Method and apparatus for modifying an information unit using an atomic operation in a system with a mixed architecture | |
KR0130737B1 (en) | Method and system for enhanced efficiency of data transfers from memory to multiple processors in a data processing system | |
KR940005769B1 (en) | Multi-process system with cache memory | |
KR0131849B1 (en) | Cache consistency maintaining controller to the data under processing on multiprocessor systes | |
JP3055908B2 (en) | Cache memory controller | |
KR0150069B1 (en) | Lock maintaining and cache consistency maintaining controller to the data under locking operation on multi-processor system | |
KR920009442B1 (en) | Multi-processor system | |
JPH01128156A (en) | Cache control system for multi-processor system | |
CA2181704C (en) | Highly pipelined bus architecture | |
JPH06187230A (en) | Memory supervision control method | |
KR920010969B1 (en) | Cache memory |
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: 20070702 Year of fee payment: 10 |
|
LAPS | Lapse due to unpaid annual fee |