← Back to Patent Explorer
US5680565A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for performing page table walks in a microprocessor capable of processing speculative instructions

Assignee: Intel Corp
•
Filing: 1993-12-30
•
Granted: 1997-10-21
•
Expires: 2013-12-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A page table walk is performed in response to a data translation lookaside buffer miss based on a speculative memory instruction. In the event of a data translation lookaside buffer miss, a page miss handler determines whether the memory micro-instruction causing the miss is a speculative or non-speculative micro-instruction. If non-speculative, the page miss handler performs a non-speculative page table walk. If the memory micro-instruction causing the miss is a speculative micro-instruction, the page miss handler initiates a speculative page table walk. While performing the speculative page table walk, the page miss handler determines whether page table memory accessed during the page table walk is speculateable or non-speculateable memory. If non-speculateable, the speculative page table walk is aborted. A micro-instruction assisted page table walk is performed whenever access or dirty bits must be set for the pages accessed in the page table walk.

Inventors

  • 👤 Andy Glew
  • 👤 Glenn Hinton
  • 👤 Haitham Akkary

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 07:22
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3824; G06F9/3834; G06F12/00; G06F12/02; G06F12/08; G06F12/10; G06F12/1027; G06F9/3836; G06F9/3842; G06F2212/00; G06F2212/20; G06F2212/206; G06F2212/68; G06F2212/684

Claims Analysis

Total Claims: 33
Claim 1
Independent Claim 106 words
A method for performing a speculative page table walk when a memory instruction causes a translation lookaside buffer (TLB) miss in a microprocessor capable of performing operations speculatively, said method comprising the steps of: determining that the memory instruction is a speculative instruction; dispatching page directory entry (PDE) and page table entry (PTE) loads which do not have a valid destination value; fetching data associated with said PDE and PTE loads in the event that said PDE and PTE loads access speculateable memory; loading a physical address that corresponds to a linear address of the memory instruction into said TLB in response to said fetching step.
Claim 2
Independent Claim 106 words
A method for performing a speculative page table walk when a memory instruction causes a translation lookaside buffer (TLB) miss in a microprocessor capable of performing operations speculatively, said method comprising the steps of: determining that the memory instruction is a speculative instruction; dispatching page directory entry (PDE) and page table entry (PTE) loads which do not have a valid destination value; fetching data associated with said PDE and PTE loads in the event that said PDE and PTE loads access speculateable memory; loading a physical address that corresponds to a linear address of the memory instruction into said TLB in response to said fetching step.
Claim 3
Dependent Claim 29 words
The method of claim 1 further comprising the step of: aborting said speculative page table walk in the event that said PDE and PTE loads access non-speculateable memory locations.
Claim 4
Dependent Claim 25 words
The method of claim 2 further comprising the step of: aborting said speculative page table walk in the event that a memory ordering violation occurs.
Claim 5
Dependent Claim 35 words
The method of claim 2 wherein said aborting step comprises the step of: re-dispatching said memory instruction with a non-speculateable designation; and deferring execution of said re-dispatched memory instruction until retirement of said memory instruction.
Claim 6
Dependent Claim 29 words
The method of claim 1 further comprising the step of: in response to a page fault, deferring said speculative page table walk until said page fault has been resolved.
Claim 7
Dependent Claim 45 words
The method of claim 1 further comprising the steps of: aborting said speculative page table walk; re-dispatching said memory instruction with a non-speculateable designation; dispatching instructions which control performance of a non-speculative page table walk and setting of an access bid or a dirty bit.
Claim 8
Dependent Claim 209 words
In a microprocessor which speculatively executes instructions having an identification value, said microprocessor including a reservation station (RS) for allocating and dispatching said instructions, a re-order buffer (ROB) for re-ordering and retiring said instructions, a memory ordering buffer (MOB) for ordering the execution of memory instructions, a data cache unit (DCU) for caching data subject to said memory instructions, a translation lookaside buffer (TLB) for caching physical addresses and corresponding linear addresses for selected data locations, and a page miss handler (PMH) which performs page table walks to determine said physical addresses corresponding to said linear addresses of a memory instruction, a method of operation comprising the steps of: dispatching a speculative memory instruction from said RS, said speculative memory instruction including a linear address defining a physical address location, said linear address missing said TLB; performing a speculative page table walk to determine said physical address corresponding to said linear address, said speculative page table walk including the steps of: dispatching page directory entry (PDE) and page table entry (PTE) loads which do not have said identification value, said PDE and PTE loads accessing speculateable memory; fetching data associated with said PDE and PTE loads; loading said physical address into said TLB in response to said fetching step.
Claim 9
Dependent Claim 209 words
In a microprocessor which speculatively executes instructions having an identification value, said microprocessor including a reservation station (RS) for allocating and dispatching said instructions, a re-order buffer (ROB) for re-ordering and retiring said instructions, a memory ordering buffer (MOB) for ordering the execution of memory instructions, a data cache unit (DCU) for caching data subject to said memory instructions, a translation lookaside buffer (TLB) for caching physical addresses and corresponding linear addresses for selected data locations, and a page miss handler (PMH) which performs page table walks to determine said physical addresses corresponding to said linear addresses of a memory instruction, a method of operation comprising the steps of: dispatching a speculative memory instruction from said RS, said speculative memory instruction including a linear address defining a physical address location, said linear address missing said TLB; performing a speculative page table walk to determine said physical address corresponding to said linear address, said speculative page table walk including the steps of: dispatching page directory entry (PDE) and page table entry (PTE) loads which do not have said identification value, said PDE and PTE loads accessing speculateable memory; fetching data associated with said PDE and PTE loads; loading said physical address into said TLB in response to said fetching step.
Claim 10
Dependent Claim 63 words
The method of claim 7 further comprising the steps of: transmitting a signal from said MOB to said PMH which causes said PMH to abort said page table walk if a store to said physical address location is older than said speculative memory instruction; re-dispatching said speculative memory instruction; and executing said re-dispatched speculative memory instruction following retirement of said speculative memory instruction.
Claim 11
Dependent Claim 47 words
The method of claim 7, further comprising the steps of: aborting said speculative page table walk; waiting until said speculative memory instruction retires; and executing micro-code instructions which cause said PMH to perform a non-speculative page table walk; and setting an access bit or a dirty bit.
Claim 12
Independent Claim 120 words
An apparatus for determining the physical address of a memory instruction causing a data translation lookaside buffer (TLB) miss within a microprocessor capable of generating speculative memory instructions, said apparatus comprising: means for determining whether said memory instruction is a speculative memory instruction; means for performing a speculative page table walk by dispatching page directory entry (PDE) and page table entry (PTE) loads from said PMH, said PDE and PTE loads lacking a valid identification value; reservation station means for allocating and dispatching instructions having said valid identification value; re-ordering buffer means for reordering and retiring speculative instructions having said valid identification value, said re-ordering buffer means and said reservation station means being non-responsive to said PDE and PTE loads.
Claim 13
Independent Claim 120 words
An apparatus for determining the physical address of a memory instruction causing a data translation lookaside buffer (TLB) miss within a microprocessor capable of generating speculative memory instructions, said apparatus comprising: means for determining whether said memory instruction is a speculative memory instruction; means for performing a speculative page table walk by dispatching page directory entry (PDE) and page table entry (PTE) loads from said PMH, said PDE and PTE loads lacking a valid identification value; reservation station means for allocating and dispatching instructions having said valid identification value; re-ordering buffer means for reordering and retiring speculative instructions having said valid identification value, said re-ordering buffer means and said reservation station means being non-responsive to said PDE and PTE loads.
Claim 14
Dependent Claim 75 words
The apparatus of claim 10, further including: memory ordering buffer (MOB) means for storing and re-ordering memory instructions, said MOB means responding to instructions irrespective of said valid identification value; and wherein said means for performing said speculative page table walk further includes: means for ordering said PDE and PTE loads within said MOB and for detecting memory ordering violations; and means for aborting said page table walk in response to a memory ordering violation.
Claim 15
Dependent Claim 28 words
The apparatus of claim 11, wherein said means for aborting said page table walk includes means for re-dispatching said memory instruction from said PMH with a non-speculateable designation.
Claim 16
Dependent Claim 21 words
The apparatus of claim 10, further comprising: a data cache unit (DCU) means for retrieving data subject to a memory instruction.
Claim 17
Dependent Claim 14 words
The apparatus of claim 13, further including means for detecting a page fault condition.
Claim 18
Dependent Claim 30 words
The apparatus of claim 11, further including: means for dispatching micro-code instructions which cause an access bit or a dirty bit to be set for a corresponding page of memory.
Claim 19
Dependent Claim 22 words
The apparatus of claim 10, further including: means for updating said TLB with said physical address determined during said page table walk.
Claim 20
Dependent Claim 114 words
A microprocessor comprising: an out-of-order engine which generates memory instructions having linear addresses; reservation station that allocates and dispatches instructions having a valid identification value; re-ordering buffer that reorders and retires speculative instructions having a valid identification value; a translation lookaside buffer (TLB) which caches linear addresses and corresponding physical addresses; and a page-miss handler (PMH) that performs a page table walk to determine a physical address corresponding to a linear address, said PMH determining whether a memory instruction causing a TLB miss is a speculative memory instruction, and performing a non-speculative page table walk, if the memory instruction is non-speculative, and performing a speculative page table walk, if said memory instruction is speculative.
Claim 21
Dependent Claim 114 words
A microprocessor comprising: an out-of-order engine which generates memory instructions having linear addresses; reservation station that allocates and dispatches instructions having a valid identification value; re-ordering buffer that reorders and retires speculative instructions having a valid identification value; a translation lookaside buffer (TLB) which caches linear addresses and corresponding physical addresses; and a page-miss handler (PMH) that performs a page table walk to determine a physical address corresponding to a linear address, said PMH determining whether a memory instruction causing a TLB miss is a speculative memory instruction, and performing a non-speculative page table walk, if the memory instruction is non-speculative, and performing a speculative page table walk, if said memory instruction is speculative.
Claim 22
Dependent Claim 52 words
The apparatus of claim 17, wherein said PMH comprises: means for dispatching page directory entry (PDE) and page table entry (PTE) loads, said PDE and PTE loads lacking said valid identification value; wherein said ROB and said RS are non-responsive to said PDE and PTE loads during said speculative page table walk.
Claim 23
Dependent Claim 47 words
The apparatus of claim 17, further including: means for storing and re-ordering memory instructions, said buffer means ordering said PDE and PTE loads relative to other loads and detecting a memory ordering violation; and; means for aborting said page table walk responsive to said memory ordering violation.
Claim 24
Dependent Claim 31 words
The apparatus of claim 19, wherein said dispatching means re-dispatches said memory instruction with a non-speculateable designation, execution of said re-dispatched memory instruction being deferred by said buffer means until retirement.
Claim 25
Dependent Claim 20 words
The apparatus of claim 19, further including: a data cache unit (DCU) that stores data associated with said memory instruction.
Claim 26
Dependent Claim 33 words
The apparatus of claim 21 wherein said DCU includes means for detecting page fault conditions; and said dispatching means re-dispatches said memory instruction with a non-speculateable designation upon detection of a page fault.
Claim 27
Dependent Claim 43 words
The apparatus of claim 17 wherein: said out-of-order engine includes means for dispatching micro-code PDE and PTE instructions which cause said PMH to perform said non-speculative page table walk and set an access bit or a dirty bit for selected pages of memory.
Claim 28
Dependent Claim 114 words
A microprocessor capable of out-of-order and speculative execution of instructions, comprising: out-of-order engine for generating instructions; a reservation station (RS) for storing instructions that have yet to be executed; a memory ordering buffer (MOB) for ordering the execution of memory instructions; a data cache unit (DCU) for caching data subject to the memory instructions; a translation lookaside buffer (TLB) for caching physical address and corresponding linear addresses for selected data locations; a page miss handler (PMH) for performing page walks for memory instructions to determine a physical address corresponding to a linear address, with said PMH capable of performing said page table walk speculatively; and a re-ordering buffer (ROB) for re-ordering and retiring instructions.
Claim 29
Dependent Claim 114 words
A microprocessor capable of out-of-order and speculative execution of instructions, comprising: out-of-order engine for generating instructions; a reservation station (RS) for storing instructions that have yet to be executed; a memory ordering buffer (MOB) for ordering the execution of memory instructions; a data cache unit (DCU) for caching data subject to the memory instructions; a translation lookaside buffer (TLB) for caching physical address and corresponding linear addresses for selected data locations; a page miss handler (PMH) for performing page walks for memory instructions to determine a physical address corresponding to a linear address, with said PMH capable of performing said page table walk speculatively; and a re-ordering buffer (ROB) for re-ordering and retiring instructions.
Claim 30
Dependent Claim 47 words
The apparatus of claim 24, wherein: said PMH determines whether an event has occurred preventing speculative determination of the physical address, aborts the page table walk upon the detection of said event, and sends a request through the TLB to the RS and MOB indicating said event.
Claim 31
Dependent Claim 64 words
The apparatus of claim 24, further including a memory bus connecting said RS, MOB, DCU, TLB and PMH; and wherein said memory instruction is a load defined by a micro-instruction (uOP), and wherein said MOB maintains a value uniquely identifying each pending uOP; and said PMH dispatches a stuffed load onto said memory bus, said stuffed load being a uOP having no associated value.
Claim 32
Dependent Claim 156 words
A computer system comprising: a plurality of microprocessors capable of speculative execution of instructions; an input/output unit; a memory; a system bus for interconnecting said microprocessors, said input/output unit and said memory; wherein each of said microprocessors includes an out-of-order engine for generating memory instructions having linear addresses; a reservation station for allocating and dispatching instructions having a valid identification value; a re-ordering buffer for reordering and retiring speculative instructions having a valid identification value; a translation lookaside buffer (TLB) for caching linear addresses and corresponding physical addresses; and a page-miss handler (PMH) for performing a page table walk to determine a physical address corresponding to a linear address not found in the TLB, said PMH determining whether the memory instruction causing the TLB miss is a speculative memory instruction and performing a non-speculative page table walk, if the memory instruction is non-speculative; and performing a speculative page table walk, if said memory instruction is speculative.
Claim 33
Dependent Claim 156 words
A computer system comprising: a plurality of microprocessors capable of speculative execution of instructions; an input/output unit; a memory; a system bus for interconnecting said microprocessors, said input/output unit and said memory; wherein each of said microprocessors includes an out-of-order engine for generating memory instructions having linear addresses; a reservation station for allocating and dispatching instructions having a valid identification value; a re-ordering buffer for reordering and retiring speculative instructions having a valid identification value; a translation lookaside buffer (TLB) for caching linear addresses and corresponding physical addresses; and a page-miss handler (PMH) for performing a page table walk to determine a physical address corresponding to a linear address not found in the TLB, said PMH determining whether the memory instruction causing the TLB miss is a speculative memory instruction and performing a non-speculative page table walk, if the memory instruction is non-speculative; and performing a speculative page table walk, if said memory instruction is speculative.

References Cited (Backward Citations)

US5226126A Cited
US5136697A Cited
US5230068A Cited
US5327547A Cited
US5394529A Cited
US5377336A Cited
US5381533A Cited
US5404467A Cited
US5313634A Cited
US5442766A Cited
US5421022A Cited
US5553255A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-10-20 2001-04-21 2001-10-21 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-10-20 2005-04-21 2005-10-21 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-10-20 2009-04-21 2009-10-21 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag