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

Memory controller for a microprocessor for detecting a failure of speculation on the physical nature of a component being addressed

Assignee: Intellectual Ventures Holding 81 LLC
•
Filing: 1996-08-20
•
Granted: 1998-11-03
•
Expires: 2016-08-20
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A memory controller for a microprocessor including apparatus to both detect a failure of speculation on the nature of the memory being addressed, and apparatus to recover from such failures.

Inventors

  • 👤 Edmund J. Kelly
  • 👤 Robert F. Cmelik
  • 👤 Malcolm John Wing

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-02 15:18
CPC Classifications
C; C09; C09K; C09K8/00; C09K8/02; C09K8/32; C09K8/34; G; G06; G06F; G06F11/00; G06F11/07; G06F11/14; G06F11/1402; G06F11/1405; G06F11/141; G06F12/00; G06F12/02; G06F12/0223; G06F12/0292; G06F12/08; G06F12/10; G06F12/1027; G06F9/00; G06F9/06; G06F9/30; G06F9/30181; G06F9/38; G06F9/3802; G06F9/3808; G06F9/3824; G06F9/3834; G06F9/3836; G06F9/3842; G06F9/3861; G06F9/3863; G06F9/3885; G06F9/44; G06F9/455; G06F9/45504

Claims Analysis

Total Claims: 27
Claim 1
Independent Claim 86 words
A system for controlling access to memory in a computer comprising: hardware means for indicating whether an address of an instruction is directed to memory or to a memory mapped I/O device, software means for initiating an instruction speculating that the address is memory or a memory mapped I/O device, means for comparing the speculation made with respect to the instruction with an indication of the hardware means, and means for taking a corrective action if a comparison shows that the speculation and the indication differ.
Claim 2
Independent Claim 86 words
A system for controlling access to memory in a computer comprising: hardware means for indicating whether an address of an instruction is directed to memory or to a memory mapped I/O device, software means for initiating an instruction speculating that the address is memory or a memory mapped I/O device, means for comparing the speculation made with respect to the instruction with an indication of the hardware means, and means for taking a corrective action if a comparison shows that the speculation and the indication differ.
Claim 3
Dependent Claim 46 words
A system for controlling access to memory as in claim 1 in which the hardware means comprises: a look-aside buffer including a plurality of storage locations for virtual addresses and associated physical addresses, and a storage position in each storage location of the look aside buffer.
Claim 4
Dependent Claim 68 words
A system for controlling access to memory as in claim 1 in which the software means for initiating an instruction speculating that the address is memory or a memory mapped I/O device is a set of instructions for a host processor translated from a set of instructions for a target processor, the set of instructions including an indication of a speculation for each address used by the instruction.
Claim 5
Dependent Claim 104 words
A system for controlling access to memory as in claim 1 in which the hardware means comprises: a look-aside buffer including a plurality of storage locations for virtual addresses and associated physical addresses, and a storage position in each storage location of the look aside buffer; and in which the software means for initiating an instruction speculating that the address is memory or a memory mapped I/O device is a set of instructions for a host processor translated from a set of instructions for a target processor, the set of instructions including an indication of a speculation for each address used by the instruction.
Claim 6
Dependent Claim 61 words
A system for controlling access to memory as in claim 4 in which the means for comparing the speculation made with respect to the instruction with an indication of the hardware means comprises a hardware comparator for comparing the indication of a speculation for each address with a condition of a storage position in a storage location storing a matching address.
Claim 7
Dependent Claim 34 words
A memory controller for a microprocessor comprising: means to detect a failure of speculation on the physical nature of an address being affected by an operation, and means to recover from such a failure.
Claim 8
Dependent Claim 34 words
A memory controller for a microprocessor comprising: means to detect a failure of speculation on the physical nature of an address being affected by an operation, and means to recover from such a failure.
Claim 9
Dependent Claim 87 words
A memory controller as claimed in claim 6 in which the means to detect a failure of speculation on the physical nature of the address being affected by an operation comprises hardware means for storing an indication of the physical nature of the address being affected by an operation, and means for comparing a speculation on the physical nature of the address being affected by an operation and an indication of the physical nature of the address being affected by an operation stored by the hardware means.
Claim 10
Dependent Claim 71 words
A memory controller as claimed in claim 7 in which the means to recover from such failures comprises: means responsive to a failure of a comparison by the means for comparing a speculation on the physical nature of the address being affected by an operation and an indication of the physical nature of the address being affected by an operation for generating an exception, and means for responding to the exception.
Claim 11
Dependent Claim 151 words
A memory controller as claimed in claim 6 in which the means to detect a failure of speculation on the physical nature of the address being affected by an operation comprises hardware means for storing an indication of the physical nature of the address being affected by an operation, and means for comparing a speculation on the physical nature of the address being affected by an operation and an indication of the physical nature of the address being affected by an operation stored by the hardware means; and in which the means to recover from such failures comprises: means responsive to a failure of a comparison by the means for comparing a speculation on the physical nature of the address being affected by an operation and an indication of the physical nature of the address being affected by an operation for generating an exception, and means for responding to the exception.
Claim 12
Dependent Claim 51 words
A memory controller as claimed in claim 9 in which the means for responding to the exception comprises: means for recovering state of a computer utilizing the microprocessor, and means for accessing the address presuming the physical nature of the address being affected by an operation is different than the speculation.
Claim 13
Dependent Claim 72 words
A memory controller as claimed in claim 9 in which the means to recover from such a failure comprises: means for generating an exception in response to a failure of speculation on the physical nature of the address being affected by an operation, means for providing a process for recovering from an exception related to a failure of the speculation on the physical nature of the address being affected by an operation.
Claim 14
Dependent Claim 110 words
A memory control system for a computer comprising: main memory, memory-mapped input/output (I/O) devices, memory control software for causing commands to affect operations at particular addresses, a translation lookaside buffer including memory locations for storing virtual addresses which have been recently accessed and translations of those virtual addresses to physical addresses within the computer, at least one memory position for each memory location recording an indication whether the address is assumed to be memory or memory-mapped I/O, a comparator for detecting whether an instruction accessing a virtual address stored in the translation lookaside buffer presumes that the physical address is the same as the indication recorded for the physical address.
Claim 15
Dependent Claim 110 words
A memory control system for a computer comprising: main memory, memory-mapped input/output (I/O) devices, memory control software for causing commands to affect operations at particular addresses, a translation lookaside buffer including memory locations for storing virtual addresses which have been recently accessed and translations of those virtual addresses to physical addresses within the computer, at least one memory position for each memory location recording an indication whether the address is assumed to be memory or memory-mapped I/O, a comparator for detecting whether an instruction accessing a virtual address stored in the translation lookaside buffer presumes that the physical address is the same as the indication recorded for the physical address.
Claim 16
Independent Claim 92 words
A method of recovering from a failed speculation regarding a physical property of components accessed as memory in a computer system comprising the steps of: providing a process for recovering from an exception related to a failure of the existence of a property of components accessed as memory, generating an access to an address speculating on a property of a particular address, detecting failure of the speculation by comparing the speculation to the property of the component addressed, and responding to detection of a failure of the speculation by running the process.
Claim 17
Independent Claim 92 words
A method of recovering from a failed speculation regarding a physical property of components accessed as memory in a computer system comprising the steps of: providing a process for recovering from an exception related to a failure of the existence of a property of components accessed as memory, generating an access to an address speculating on a property of a particular address, detecting failure of the speculation by comparing the speculation to the property of the component addressed, and responding to detection of a failure of the speculation by running the process.
Claim 18
Dependent Claim 35 words
A method of recovering from a failed speculation as claimed in claim 13 in which the step of detecting failure of the speculation includes generating an exception in response to the failure of the speculation.
Claim 19
Dependent Claim 121 words
A method of recovering from a failed speculation as claimed in claim 13 in which the step of providing a process for recovering from an exception related to a failure of the existence of a property of components accessed as memory comprises: storing an exception handler for recovering state of the computer system existing prior to the speculation, and storing an indication of state of the computer system existing prior to the speculation; and in which the step of responding to detection of a failure of the speculation by running the process comprises: recovering the stored indication of state, and continuing with the operation of the computer utilizing the recovered state from the point at which the failed speculation was taken.
Claim 20
Dependent Claim 139 words
A microprocessor comprising: a host processor capable of executing a first instruction set, code morphing software for translating programs written for a target processor having a second different instruction set into instructions of the first instruction set, and a memory controller comprising an address translation buffer including a plurality of storage locations in which recently accessed virtual target addresses and physical addresses represented by the virtual target addresses are to be recorded, each of the storage locations including means for indicating whether a physical address is a memory address or a memory-mapped input/output (I/O) address; and means for comparing an indication in a storage location with a speculation made that an access to a virtual target address in a storage location is to memory or memory-mapped I/O to indicate a subsequent operation to be taken in accessing the address.
Claim 21
Dependent Claim 139 words
A microprocessor comprising: a host processor capable of executing a first instruction set, code morphing software for translating programs written for a target processor having a second different instruction set into instructions of the first instruction set, and a memory controller comprising an address translation buffer including a plurality of storage locations in which recently accessed virtual target addresses and physical addresses represented by the virtual target addresses are to be recorded, each of the storage locations including means for indicating whether a physical address is a memory address or a memory-mapped input/output (I/O) address; and means for comparing an indication in a storage location with a speculation made that an access to a virtual target address in a storage location is to memory or memory-mapped I/O to indicate a subsequent operation to be taken in accessing the address.
Claim 22
Dependent Claim 84 words
A microprocessor as claimed in claim 16 in which the means for comparing an indication in a storage location with a speculation made that an access to a virtual target address in a storage location is to memory or memory-mapped I/O to indicate a subsequent operation taken in accessing the address comprises means for generating an exception in response to a failure of a comparison, and means for responding to the exception to indicate a subsequent operation to be taken in accessing the address.
Claim 23
Dependent Claim 35 words
A microprocessor as claimed in claim 17 in which the means for indicating whether a physical address is a memory address or a memory-mapped input/output (I/O) address comprises a storage position in a storage location.
Claim 24
Dependent Claim 95 words
A memory controller comprising an address translation buffer including a plurality of storage locations in which recently accessed virtual addresses and physical addresses represented by the virtual addresses are to be recorded, each of the storage locations including means for indicating whether a physical address is a memory address or a memory-mapped input/output (I/O) address; and means for comparing an indication in a storage location with a speculation made that an access to an address in a storage location is to memory or memory-mapped I/O to indicate a subsequent operation taken in accessing the address.
Claim 25
Dependent Claim 95 words
A memory controller comprising an address translation buffer including a plurality of storage locations in which recently accessed virtual addresses and physical addresses represented by the virtual addresses are to be recorded, each of the storage locations including means for indicating whether a physical address is a memory address or a memory-mapped input/output (I/O) address; and means for comparing an indication in a storage location with a speculation made that an access to an address in a storage location is to memory or memory-mapped I/O to indicate a subsequent operation taken in accessing the address.
Claim 26
Dependent Claim 83 words
A memory controller as claimed in claim 19 in which the means for comparing an indication in a storage location with a speculation made that an access to an address in a storage location is to memory or memory-mapped I/O to indicate a subsequent operation taken in accessing the address comprises means for generating an exception in response to a failure of a comparison, and means for responding to the exception to indicate a subsequent operation to be taken in accessing the address.
Claim 27
Dependent Claim 36 words
A memory controller as claimed in claim 19 in which the means for indicating whether a physical address is a memory address or a memory-mapped input/output (I/O) address comprises a storage position in a storage location.

References Cited (Backward Citations)

US4896257A Cited
US4954942A Cited
US5142672A Cited
US5581722A Cited
US5465337A Cited
US5442766A Cited
US5553255A Cited
US5561814A Cited
US5526510A Cited
US5566298A Cited
US5564111A 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-11-02 2002-05-04 2002-11-03 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-11-02 2006-05-04 2006-11-03 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-11-02 2010-05-04 2010-11-03 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag