Computer system employing streaming buffer for instruction preetching
First Claim
Patent Images
1. A computer system for executing a computer program comprising:
- a system bus;
a memory coupled to said system bus;
an instruction cache storing frequently referenced instructions to be executed in said computer program;
a logic unit managing transfer to/from said memory via said system bus;
an instruction streaming buffer (ISB) coupled to said instruction cache and said logic unit, said ISB having M physical buffers associated with N virtual identifiers, where M and N are integers and M is less than N;
said ISB sending external fetch requests to said logic unit to fetch instructions from said memory, each external fetch request being assigned a virtual identifier corresponding to a physical buffer, said physical buffer being renamed with a different virtual identifier for a new external fetch request in the event of a branch misprediction; and
wherein said ISB forwards data returned by each said fetch request to said instruction cache only if said data is to be used by said computer program.
0 Assignments
0 Petitions
Accused Products
Abstract
Streaming buffer renaming for memory accesses issued by a microprocessor to an external memory via a system bus allows up to N fetch accesses at any one time for M physical streaming buffer locations, where N is greater than M. When a fetch within the processor misses the instruction cache, the fetch address is placed in the streaming buffer. When the data has been fetched from the external memory, it is returned to the streaming buffer and placed into one of the M physical buffer locations. The data within the streaming buffer is returned to the instruction cache of the processor only if it is to be used in accordance with the computer program being executed.
53 Citations
36 Claims
-
1. A computer system for executing a computer program comprising:
-
a system bus; a memory coupled to said system bus; an instruction cache storing frequently referenced instructions to be executed in said computer program; a logic unit managing transfer to/from said memory via said system bus; an instruction streaming buffer (ISB) coupled to said instruction cache and said logic unit, said ISB having M physical buffers associated with N virtual identifiers, where M and N are integers and M is less than N; said ISB sending external fetch requests to said logic unit to fetch instructions from said memory, each external fetch request being assigned a virtual identifier corresponding to a physical buffer, said physical buffer being renamed with a different virtual identifier for a new external fetch request in the event of a branch misprediction; and wherein said ISB forwards data returned by each said fetch request to said instruction cache only if said data is to be used by said computer program. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer system comprising:
-
a microprocessor having a pipeline for speculatively executing a program; a memory; an external bus coupling said memory to said microprocessor; said microprocessor including an instruction fetch unit (IFU) for fetching instructions to be executed for said program, and a bus logic unit communicating with said IFU and said external bus; said IFU sending an external fetch request to said bus logic unit to fetch an instruction from said memory via said external bus, said IFU further comprising an instruction streaming buffer (ISB) including M physical buffers having N virtual identifiers, where M and N are integers and M is less than N, said ISB tracking up to N outstanding fetch requests of said IFU by allocating a virtual identifier to a physical buffer for each said outstanding fetch request, said physical buffer being renamed with a different virtual identifier in the event of a mispredicted branch; and wherein data returned to said ISB for each said fetch request is forwarded to said IFU only if it is to be used by said program. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A computer system comprising:
-
a microprocessor having a pipeline for speculatively executing a program; a memory; a bus coupling said memory to said microprocessor; said microprocessor including an instruction fetch unit (IFU) for fetching instructions to be executed for said program, a mechanism coupled to said IFU providing branch prediction information, and a bus logic unit communicating with said IFU and said bus; said IFU sending a fetch request to said bus logic unit to fetch an instruction from said memory via said bus, said IFU further comprising an instruction streaming buffer (ISB) including M physical buffers having N virtual identifiers, where M and N are integers and M is less than N, said ISB tracking up to N outstanding fetch requests of said IFU by allocating a virtual identifier to a physical buffer for each said outstanding fetch request, said IFU assigning a new virtual identifier to said physical buffer in the event of a mispredicted branch; and wherein data returned to said ISB for each said fetch request is forwarded to said IFU only if it is to be used by said program. - View Dependent Claims (25, 26, 27, 28, 29)
-
-
30. A computer system comprising:
-
an out-of-order computing machine that executes instructions of a program based on data dependencies and execution resource availability; a main memory; a first bus coupling said main memory to said out-of-order computing machine; said out-of-order computing machine including an instruction fetch unit (IFU) for fetching instructions to be executed in said program, and a bus logic unit communicating with said IFU and said first bus; said IFU sending a fetch request to said bus logic unit to fetch an instruction from said main memory via said first bus, said IFU further comprising an instruction streaming buffer (ISB) including M physical buffers having N virtual identifiers, where M and N are integers and M is less than N, said ISB tracking up to N outstanding fetch requests of said IFU by allocating a virtual identifier to a physical buffer for each said outstanding fetch request, said outstanding fetch requests being returned to said ISB in an arbitrary order. - View Dependent Claims (31, 32, 33, 34, 35, 36)
-
Specification