Browse Prior Art Database

Cache Directory Update for Retry

IP.com Disclosure Number: IPCOM000105045D
Original Publication Date: 1993-Jun-01
Included in the Prior Art Database: 2005-Mar-19
Document File: 2 page(s) / 66K

Publishing Venue

IBM

Related People

Huang, K: AUTHOR [+2]

Abstract

Disclosed are techniques for maintaining cache directory information in case when the retry of fetching cache lines from higher memory hierarchies is needed.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Cache Directory Update for Retry

      Disclosed are techniques for maintaining cache directory
information in case when the retry of fetching cache lines from
higher memory hierarchies is needed.

      In a high-performance MP processor, a store pre-test is
normally performed before the actual store of the data.  The purpose
of the store pre-test is to move the requested line into cache (i.e.,
to fetch the targeted line from higher memory hierarchies when a
cache miss is detected), to obtain exclusivity, and to check key
exception, etc..  After a store pre-test is executed successfully,
all the necessary information for the store is saved in a store queue
(SQ).  Because of the cross interrogation (XI) from other processors,
and the LRU cache replacement scheme, the targeted line for store in
the SQ may be invalidated before the store is completed.  Therefore,
it is conceivable to fetch the cache line again from higher memory
hierarchies at the time of the store, possibly many times for the
same instruction.

      In the above environment, the initial logical address of a
fetch or a store pre-test is normally saved in a request queue (RQ)
until completion.  This address is needed for the directory update
when the accessed cache line is not presented in the cache.  Once a
fetch or a store pre-test is done, the corresponding address in RQ is
removed to make room for other requests.  The removal of the logical
store address from RQ after the pre-test presents a problem for the
directory update.  This is due to fact that if the re-fetch of the
cache line is needed at the time of store, the required logical
address for directory update has been gone.  A straight-forward
solution to this problem is not to remove the address from RQ till
the entire store operation is completed (not just the completion of
the pre-test).  However, this solution requires a...