US 7,519,777 B1
Methods, systems and computer program products for concomitant pair prefetching
Kattamuri Ekanadham, Mohegan Lake, N.Y. (US); Il Park, Fishkill, N.Y. (US); and Pratap C. Pattnaik, Ossining, N.Y. (US)
Assigned to International Business Machines Corporation, Armonk, N.Y. (US)
Filed on Jun. 11, 2008, as Appl. No. 12/136,808.
Int. Cl. G06F 12/00 (2006.01); G06F 13/00 (2006.01); G06F 13/28 (2006.01); G06F 9/30 (2006.01); G06F 9/40 (2006.01); G06F 15/00 (2006.01); G06F 7/38 (2006.01); G06F 9/00 (2006.01); G06F 9/44 (2006.01)
U.S. Cl. 711—137  [711/204; 711/213; 712/207; 712/233; 712/234; 712/235; 712/236; 712/237; 712/238; 712/239; 712/240] 1 Claim
OG exemplary drawing
 
1. A method for concomitant pair prefetching, the method consisting of:
collecting cache miss addresses to define an access window, wherein the access window is called a Miss Stream Window (MSW);
obtaining a prefetch address from a history table, in response to a new cache miss address, wherein the miss address is stored as an indexed entry in the history table and is considered as a candidate for the prefetch address;
updating a miss stream window, wherein an oldest entry in the miss stream window is evicted in response to the new cache miss address and wherein a header pointer points to a new oldest miss address and a tail pointer points to the new cache miss address;
selecting a candidate of a concomitant pair from the miss stream window, wherein the new oldest miss address is a candidate for a leader miss address, and wherein remaining miss addresses in the miss stream window are candidates for follower miss addresses;
for each remaining miss addresses:
generating a pair address from the leader miss address and a miss address adjacent the leader miss address, wherein the leader miss address and the miss address adjacent the lead miss address is a concomitant pair;
feeding the pair address into a hash function to produce an index to access an aging filter; accessing the aging filter to determine if the concomitant pair has previously occurred; and in response to the concomitant pair having previously occurred, recording the concomitant pair in the history table and replacing the follower address with a next follower address from the remaining miss addresses.