PREDICTING CACHE MISSES USING DATA ACCESS BEHAVIOR AND INSTRUCTION ADDRESS
First Claim
1. A method comprising:
- decoding, in a decode stage of hardware processor pipeline, one particular instruction of a plurality of instructions;
determining that said particular instruction requires a memory access;
responsive to determining that said particular instruction requires a memory access, predicting whether said memory access will result in a cache miss, said predicting in turn comprising accessing one of a plurality of entries in a pattern history table stored as a hardware table in said decode stage, said accessing being based, at least in part, upon at least a most recent entry in a global history buffer, said pattern history table storing a plurality of predictions, said global history buffer storing actual results of previous memory accesses as one of cache hits and cache misses;
scheduling at least one additional one of said plurality of instructions in accordance with said predicting; and
updating said pattern history table and said global history buffer subsequent to actual execution of said particular instruction in an execution stage of said hardware processor pipeline, to reflect whether said predicting was accurate.
1 Assignment
0 Petitions
Accused Products
Abstract
In a decode stage of hardware processor pipeline, one particular instruction of a plurality of instructions is decoded. It is determined that the particular instruction requires a memory access. Responsive to such determination, it is predicted whether the memory access will result in a cache miss. The predicting in turn includes accessing one of a plurality of entries in a pattern history table stored as a hardware table in the decode stage. The accessing is based, at least in part, upon at least a most recent entry in a global history buffer. The pattern history table stores a plurality of predictions. The global history buffer stores actual results of previous memory accesses as one of cache hits and cache misses. Additional steps include scheduling at least one additional one of the plurality of instructions in accordance with the predicting; and updating the pattern history table and the global history buffer subsequent to actual execution of the particular instruction in an execution stage of the hardware processor pipeline, to reflect whether the predicting was accurate.
-
Citations
18 Claims
-
1. A method comprising:
-
decoding, in a decode stage of hardware processor pipeline, one particular instruction of a plurality of instructions; determining that said particular instruction requires a memory access; responsive to determining that said particular instruction requires a memory access, predicting whether said memory access will result in a cache miss, said predicting in turn comprising accessing one of a plurality of entries in a pattern history table stored as a hardware table in said decode stage, said accessing being based, at least in part, upon at least a most recent entry in a global history buffer, said pattern history table storing a plurality of predictions, said global history buffer storing actual results of previous memory accesses as one of cache hits and cache misses; scheduling at least one additional one of said plurality of instructions in accordance with said predicting; and updating said pattern history table and said global history buffer subsequent to actual execution of said particular instruction in an execution stage of said hardware processor pipeline, to reflect whether said predicting was accurate. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A hardware processor comprising:
-
a decode pipeline stage which decodes one particular instruction of a plurality of instructions; hard-wired logic circuitry which determines that said particular instruction requires a memory access; a pattern history hardware table within said decode pipeline stage; a global history buffer within said decode pipeline stage; hard-wired logic circuitry which, responsive to determining that said particular instruction requires a memory access, predicts whether said memory access will result in a cache miss, said predicting in turn comprising accessing one of a plurality of entries in said pattern history hardware table, said accessing being based, at least in part, upon at least a most recent entry in said global history buffer, said pattern history hardware table storing a plurality of predictions, said global history buffer storing actual results of previous memory accesses as one of cache hits and cache misses; an issue pipeline stage which schedules at least one additional one of said plurality of instructions in accordance with said predicting; an execution pipeline stage which actually executes said particular instruction; and hard-wired logic circuitry which updates said pattern history hardware table and said global history buffer subsequent to said actual execution of said particular instruction, to reflect whether said predicting was accurate. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A hardware processor comprising:
-
means for decoding, in a decode stage of a hardware processor pipeline of said hardware processor, one particular instruction of a plurality of instructions; means for determining that said particular instruction requires a memory access; means for, responsive to determining that said particular instruction requires a memory access, predicting whether said memory access will result in a cache miss, said predicting in turn comprising accessing one of a plurality of entries in a pattern history table stored as a hardware table in said decode stage, said accessing being based, at least in part, upon at least a most recent entry in a global history buffer, said pattern history table storing a plurality of predictions, said global history buffer storing actual results of previous memory accesses as one of cache hits and cache misses; means for scheduling at least one additional one of said plurality of instructions in accordance with said predicting; and means for updating said pattern history table and said global history buffer subsequent to actual execution of said particular instruction in an execution stage of said hardware processor pipeline, to reflect whether said predicting was accurate. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification