| 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 |

| 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.
|