Pipelined central processor managing the execution of instructions with proximate successive branches in a cache-based data processing system while performing block mode transfer predictions
First Claim
1. A data processing system with a pipelined processor and a cache which includes an instruction cache, instruction buffers for receiving instruction sub-blocks from the instruction cache and providing instructions to the pipelined processor and a branch cache, said branch cache comprising:
- A) an instruction buffer adjunct for storing an information set for each of sub-blocks which are currently resident in the instruction buffers, which information set includes;
1) a search address;
2) a predicted transfer hit/miss;
3) a projected location of a target in a sub-block; and
4) a predicted target address;
B) a branch cache directory for storing instruction buffer addresses corresponding to current entries in the instruction buffer adjunct;
C) a target address RAM for storing target addresses;
D) a delay pipe for selectively stepping an information set read from the buffer instruction adjunct in synchronism with a transfer instruction traversing the pipeline;
E) means for addressing the buffer instruction buffer adjunct for sending a selected information set to the delay pipe when a transfer instruction is sent to the pipeline from the instruction buffers, which transfer instruction includes a target address;
F) comparison means for determining, at a predetermined phase along the delay pipe, if the information set traversing the delay pipe identifies, as currently resident in the instruction buffers, a target address that matches the target address in the transfer instruction traversing the pipeline; and
G) selection means, responsive to a finding that the information set traversing the delay pipe includes a target address that matches the target address in the transfer instruction traversing the pipeline, for sending the instruction identified by the target address to the pipeline from the instruction buffers.
1 Assignment
0 Petitions
Accused Products
Abstract
A cache used with a pipelined processor includes an instruction cache, instruction buffers for receiving instruction sub-blocks from the instruction cache and providing instructions to the pipelined processor, and a branch cache. The branch cache includes an instruction buffer adjunct for storing an information set for each sub-block resident in the instruction buffers. A branch cache directory stores instruction buffer addresses corresponding to current entries in the instruction buffer adjunct, and a target address RAM stores target addresses developed from prior searches of the branch cache. A delay pipe is used to selectively step an information set read from the buffer instruction adjunct in synchronism with a transfer instruction traversing the pipeline. A comparison, at a predetermined phase along the delay pipe, determines if the information set identifies, as currently resident in the instruction buffers, a target address that matches the target address in the transfer instruction traversing the pipeline. If there is a finding that the information set traversing the delay pipe identifies a target address in the instruction buffers that matches the target address in the transfer instruction traversing the pipeline and there is an indication of TRA-GO from the pipeline, the instruction identified by the target address is sent to the pipeline from the instruction buffers rather than from the instruction cache.
-
Citations
32 Claims
-
1. A data processing system with a pipelined processor and a cache which includes an instruction cache, instruction buffers for receiving instruction sub-blocks from the instruction cache and providing instructions to the pipelined processor and a branch cache, said branch cache comprising:
-
A) an instruction buffer adjunct for storing an information set for each of sub-blocks which are currently resident in the instruction buffers, which information set includes;
1) a search address;
2) a predicted transfer hit/miss;
3) a projected location of a target in a sub-block; and
4) a predicted target address;
B) a branch cache directory for storing instruction buffer addresses corresponding to current entries in the instruction buffer adjunct;
C) a target address RAM for storing target addresses;
D) a delay pipe for selectively stepping an information set read from the buffer instruction adjunct in synchronism with a transfer instruction traversing the pipeline;
E) means for addressing the buffer instruction buffer adjunct for sending a selected information set to the delay pipe when a transfer instruction is sent to the pipeline from the instruction buffers, which transfer instruction includes a target address;
F) comparison means for determining, at a predetermined phase along the delay pipe, if the information set traversing the delay pipe identifies, as currently resident in the instruction buffers, a target address that matches the target address in the transfer instruction traversing the pipeline; and
G) selection means, responsive to a finding that the information set traversing the delay pipe includes a target address that matches the target address in the transfer instruction traversing the pipeline, for sending the instruction identified by the target address to the pipeline from the instruction buffers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
Specification