Claims Analysis
Total Claims: 12
Claim 1
Independent Claim
183 words
A computer system that executes a sequence of instructions comprising: a memory; pointer means for specifying a next instruction to be prefetched from the memory; means coupled to the pointer means for predicting a target of a branch instruction, and for subsequently determining a correctness of the target, wherein the branch instruction is earlier in the sequence relative to the next instruction, with the next instruction being included in a predicted path; a buffer having a plurality of entries, an entry storing a memory type and a linear-to-physical address translation of the next instruction, the memory type indicating whether a location of the memory which stores the next instruction is cacheable; a prefetcher coupled to the memory, pointer means, prediction means, and buffer, the prefetcher identifying the memory type associated with the next instruction and prefetching the next instruction from the memory when the memory type of the next instruction indicates a cacheable memory location; if the memory type of the next instruction indicates an uncacheable memory location, the prefetcher temporarily stalling until after the prediction means determines the correctness of the target.
Claim 2
Dependent Claim
183 words
A computer system that executes a sequence of instructions comprising: a memory; pointer means for specifying a next instruction to be prefetched from the memory; means coupled to the pointer means for predicting a target of a branch instruction, and for subsequently determining a correctness of the target, wherein the branch instruction is earlier in the sequence relative to the next instruction, with the next instruction being included in a predicted path; a buffer having a plurality of entries, an entry storing a memory type and a linear-to-physical address translation of the next instruction, the memory type indicating whether a location of the memory which stores the next instruction is cacheable; a prefetcher coupled to the memory, pointer means, prediction means, and buffer, the prefetcher identifying the memory type associated with the next instruction and prefetching the next instruction from the memory when the memory type of the next instruction indicates a cacheable memory location; if the memory type of the next instruction indicates an uncacheable memory location, the prefetcher temporarily stalling until after the prediction means determines the correctness of the target.
Claim 3
Dependent Claim
34 words
The computer system of claim 1 wherein the pointer means further includes means for changing the next instruction to the target in the event that the prediction means subsequently determines a correct branch prediction.
Claim 4
Dependent Claim
30 words
The computer system of claim 2 wherein the prefetcher operates to prefetch the next instruction, and a set of sequentially-ordered instructions which immediately follows the next instruction, from the memory.
Claim 5
Dependent Claim
91 words
The computer system of claim 1 wherein the memory comprises an external memory storing the sequence of instructions and further comprising: an instruction cache coupled to the prefetcher storing a plurality of instructions, the prefetcher accessing the instruction cache to determine whether the plurality of instructions includes the next instruction; a system bus coupled to the external memory and the prefetcher, the prefetcher accessing the external memory to obtain the next instruction via the system bus should the plurality of instructions stored within the instruction cache not include the next instruction.
Claim 6
Dependent Claim
19 words
The computer system of claim 4 wherein the buffer comprises a translation look-aside buffer operating in a real mode.
Claim 7
Dependent Claim
31 words
The computer system of claim 1 wherein the memory is organized into pages and the system further comprises a page miss handler which determines the memory type of a particular page.
Claim 8
Dependent Claim
236 words
A computer system that executes a program which contains an ordered sequence of instructions comprising: an execution pipeline; a memory having pages, each page having an associated memory type indicating cacheability; an instruction pointer mechanism that specifies a location in the memory containing an instruction of the ordered sequence to be prefetched; an instruction translation look-aside buffer (ITLB) storing the associated memory type of the location and a linear-to-physical address translation of the instruction; an instruction prefetching unit (IFU) coupled to the instruction pointer mechanism which prefetches the instruction from the location in the memory, the IFU accessing the ITLB to determine a physical address and the associated memory type of the instruction; if the associated memory type indicates a cacheable location, the IFU prefetches the instruction; otherwise, the IFU issues a dummy instruction and then stalls; a reordering buffer (ROB) that determines when instructions can be retired, if the associated memory type indicates an uncacheable location, the ROB transmitting a signal to the IFU indicating that all instructions preceding the dummy instruction have retired, the IFU commencing prefetching in response to the signal; a branch prediction mechanism which predicts a target of a branch instruction, the branch instruction being earlier in the ordered sequence than the instruction, if the branch instruction is mispredicted before the dummy instruction has retired, the execution pipeline squashing the dummy instruction and all other instructions subsequent to the branch instruction.
Claim 9
Dependent Claim
236 words
A computer system that executes a program which contains an ordered sequence of instructions comprising: an execution pipeline; a memory having pages, each page having an associated memory type indicating cacheability; an instruction pointer mechanism that specifies a location in the memory containing an instruction of the ordered sequence to be prefetched; an instruction translation look-aside buffer (ITLB) storing the associated memory type of the location and a linear-to-physical address translation of the instruction; an instruction prefetching unit (IFU) coupled to the instruction pointer mechanism which prefetches the instruction from the location in the memory, the IFU accessing the ITLB to determine a physical address and the associated memory type of the instruction; if the associated memory type indicates a cacheable location, the IFU prefetches the instruction; otherwise, the IFU issues a dummy instruction and then stalls; a reordering buffer (ROB) that determines when instructions can be retired, if the associated memory type indicates an uncacheable location, the ROB transmitting a signal to the IFU indicating that all instructions preceding the dummy instruction have retired, the IFU commencing prefetching in response to the signal; a branch prediction mechanism which predicts a target of a branch instruction, the branch instruction being earlier in the ordered sequence than the instruction, if the branch instruction is mispredicted before the dummy instruction has retired, the execution pipeline squashing the dummy instruction and all other instructions subsequent to the branch instruction.
Claim 10
Dependent Claim
89 words
The computer system of claim 7 wherein the memory comprises an external memory storing the ordered sequence of instructions and further comprising: an instruction cache coupled to the IFU storing a plurality of instructions, the IFU accessing the instruction cache to determine whether the plurality of instructions includes the instruction; a system bus coupled to the external memory and the IFU, the IFU accessing the external memory to obtain the instruction via the system bus should the plurality of instructions stored within the instruction cache not include the instruction.
Claim 11
Dependent Claim
19 words
The computer system of claim 8 wherein the buffer comprises a translation look-aside buffer operating in a real mode.
Claim 12
Dependent Claim
20 words
The computer system of claim 8 further comprising a page mishandler which determines the associated memory type of each page.