Patent
1995-12-15
1998-03-31
Swann, Tod R.
395586, G06F 938
Patent
active
057348812
ABSTRACT:
A pipelined x86 processor includes a prefetch unit (prefetch buffer) and a branch unit that cooperate to detect when the target of a branch (designated a short branch) is already in the prefetch buffer, thereby avoiding issuing a prefetch request to retrieve the target. The branch unit includes a branch target cache (BTC) in which each entry stores, in addition to target address information for prefetching a prefetch block of instruction bytes containing a target instruction, a prefetch block location field--when this field is valid, it provides the location of the target instruction for a short branch within a prefetch block that is already in the prefetch buffer. In response to a branch that hits in the BTC, if the associated prefetch block location field is valid, the prefetch unit is able to begin transferring instruction bytes for the target instruction without issuing a prefetch request for the prefetch block containing the target instruction. The exemplary prefetch unit uses a three-block prefetch buffer each storing a 16 byte (cache line) prefetch block--the three prefetch buffers are logically allocated for the current, next, and previous prefetch blocks, and the target of a short branch may be either forward or backward of the branch, and may reside in the same prefetch buffer as the branch (which logically will be current) or in a contiguous prefetch buffer (logically next or previous). Avoiding prefetch requests in the case of short branches reduces contention for cache access and associated bus traffic.
REFERENCES:
patent: 4200927 (1980-04-01), Hughes et al.
patent: 4714994 (1987-12-01), Oklobdzija et al.
patent: 4860197 (1989-08-01), Langendorf et al.
patent: 4974154 (1990-11-01), Matsuo
patent: 4992932 (1991-02-01), Ohshima
patent: 5197131 (1993-03-01), Mori et al.
patent: 5327536 (1994-07-01), Suzuki
patent: 5394530 (1995-02-01), Kitta
patent: 5414822 (1995-05-01), Saito et al.
patent: 5553254 (1996-09-01), Berstis et al.
Yeh, Tse-Yu and Patt, Yale N., "Branch History Table Indexing to Prevent Pipeline Bubbles in Wide-Issue Superscalar Processors", Microarchitectre, 1993 International Symposium.
Calder, Brad and Grunwald, Dirk, "Fast and Accurate Instruction Fetch and Branch Prediction", Computer Architecture, 1994 International Symposium.
Duvvuru, Sreeram and Arya, Siamak, "Evaluation of a Branch Target Address Cache", System Sciences, 1995 Annual Hawaii Int'l. Conference, vol. 1.
Perleberg, Chris H. and Smith, Alan Jay, "Branch Target Buffer Design and Optimization", IEEE Transactions on Computers, Apr. 1993.
Fourcroy Antone L.
McDermott Mark W.
White Christopher E.
Chow Christopher S.
Cyrix Corporation
Maxin John L.
Swann Tod R.
Viger Andrew S.
LandOfFree
Detecting short branches in a prefetch buffer using target locat does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Detecting short branches in a prefetch buffer using target locat, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Detecting short branches in a prefetch buffer using target locat will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-62653