Patent US2045890A successfully refreshed from Google Patents.
Patent US5819079A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5819079A Expired / Lapsed US ⏱️ 0.0 years remaining

Instruction fetch on demand for uncacheable memory which avoids memory mapped I/O side effects in a processor with speculative instruction fetch

Assignee: Intel Corp
•
Filing: 1995-09-11
•
Granted: 1998-10-06
•
Expires: 2015-09-11
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A computer system includes an instruction prefetching mechanism that detects whether an instruction to be prefetched is located in a region of memory that is uncacheable. To perform an instruction prefetch, an instruction fetch unit (IFU) receives an instruction pointer indicating a memory location containing an instruction to be prefetched. The instruction pointer may be provided by a branch target buffer (BTB) as a result of a branch prediction, or by auxiliary branch prediction mechanisms, or actual execution. The IFU accesses an instruction translation look-aside buffer (ITLB) to determine both the physical address corresponding to the linear address of the instruction pointer and to determine an associated memory type stored therein. If the memory type indicates an uncacheable memory location, the IFU waits until all previous executed instructions have completed. The IFU does this by inserting a "permission-to-fetch" instruction, and then stalling. The IFU remains stalled until either the permission-to-fetch instruction retires or until a branch misprediction is detected. Once a branch misprediction is detected, the permission-to-fetch instruction and all other instructions issued subsequent to the mispredicted branch are squashed. If no previous branch mispredictions are detected, the permission-to-fetch instruction eventually retires, the instruction pointer is reset based on the correct branch, and prefetching continues.

Inventors

  • 👤 Andrew F. Glew
  • 👤 Ashwani Gupta

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-06 14:12
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3802; G06F12/00; G06F12/02; G06F12/0223; G06F12/0292; G06F9/3861; G06F2212/00; G06F2212/20; G06F2212/206

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.

References Cited (Backward Citations)

US4604691A Cited
US5142634A Cited
US5307477A Cited
US5606687A Cited
US5615402A Cited
US5613083A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-10-05 2002-04-06 2002-10-06 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-10-05 2006-04-06 2006-10-06 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-10-05 2010-04-06 2010-10-06 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag