CACHE MEMORY WITH REDUCED REQUEST-BLOCKING
축소된 블로킹을 갖는 캐시메모리는 캐시가 이미 서비스하고 있는 요구의 타입에 근거하여 요구가 캐시메모리에 의해 수용되지 않도록 블로킹한다. 캐시메모리에서 히트하는 요구, 또는 캐시메모리에서 미스하지만 이미 서비스되고 있는 어떤 요구와 콘플릭트하지 않는 요구는 블로킹되지 않는다. 캐시메모리에서 미스하고 또한 이미 서비스되고 있는 요구 (들)과 콘플릭트하는 요구는 요구가 블로킹되어진다. 일 실시예에서, 기입요구에 대한 콘플릭트는 기입요구와 동일한 캐시세트로 매핑하는 요구에 대한 시스템 메모리로부터의 캐시라인을 캐시가 이미 검색하고 있는...
Gespeichert in:
Hauptverfasser: | , |
---|---|
Format: | Patent |
Sprache: | eng ; kor |
Schlagworte: | |
Online-Zugang: | Volltext bestellen |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | 축소된 블로킹을 갖는 캐시메모리는 캐시가 이미 서비스하고 있는 요구의 타입에 근거하여 요구가 캐시메모리에 의해 수용되지 않도록 블로킹한다. 캐시메모리에서 히트하는 요구, 또는 캐시메모리에서 미스하지만 이미 서비스되고 있는 어떤 요구와 콘플릭트하지 않는 요구는 블로킹되지 않는다. 캐시메모리에서 미스하고 또한 이미 서비스되고 있는 요구 (들)과 콘플릭트하는 요구는 요구가 블로킹되어진다. 일 실시예에서, 기입요구에 대한 콘플릭트는 기입요구와 동일한 캐시세트로 매핑하는 요구에 대한 시스템 메모리로부터의 캐시라인을 캐시가 이미 검색하고 있는지를 체크함으로써 판단된다. 이와 같은 요구가 있다면, 콘플릭트가 발생한다. 이 실시예에서, 판독요구에 대한 콘플릭트는 동일 주소의 메모리에 대한 미해결한 요구를 캐시가 이미 서비스하고 있는지를 체크함으로써 판단된다. 그렇다면, 콘플릭트가 발생한다. 그렇지 않다면, 콘플릭트는 판독요구에 대한 희생라인이 더티상태이고 희생라인을 일시적으로 기억시키는 재기입 버퍼에 어떤 공간도 존재하지 않는다면 발생하지 않는다.
A cache memory with reduced request-blocking blocks requests from being accepted by the cache memory based on the types of requests the cache is already servicing. A request which hits the cache memory or a request which misses the cache memory but does not conflict with any requests already being serviced is not blocked. A request which misses the cache memory and also conflicts with a request(s) already being serviced causes the request to be blocked. In one embodiment, conflicts for write requests are determined by checking whether the cache is already retrieving a cache line from system memory for a request which maps into the same cache set as the write request. If such a request exists, then a conflict occurs. In this embodiment, conflicts for read requests are determined by checking whether the cache is already servicing an outstanding request to memory for the same address. If so, then a conflict occurs. If not, then a conflict does not occur unless the victim line for the read request is dirty and no space exists in a write-back buffer to temporarily store the victim line. |
---|