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

Method and apparatus for protecting memory-mapped devices from side effects of speculative instructions

Assignee: Hewlett Packard Enterprise Development LP
•
Filing: 1996-12-16
•
Granted: 1999-01-26
•
Expires: 2016-12-16
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A computer system includes a CPU for executing conventional instructions and speculative instructions, and a memory controller coupled to a system bus. In response to an access operation by one of the instructions, the CPU generates a speculative instruction bit and a corresponding access address. The access address represents a location in a global address space which includes a first address space and a second address space. The speculative instruction bit is asserted when the corresponding access address is generated by a speculative instruction. The memory controller discards the access operation when the speculative instruction bit is asserted and the access address is in the second address space. Thus, the speculative instruction is prevented from accessing the second address space. In one embodiment, the computer system includes a memory coupled to the system bus and mapped to the first address space, and an I/O device coupled to the system bus and mapped to the second address space. The speculative instruction is prevented from accessing the I/O device.

Inventors

  • 👤 Paolo Faraboschi
  • 👤 Alberto Such-Vicente

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-07 09:14
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/14; G06F12/1416; G06F12/1425; G06F12/1441; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3836; G06F9/3842; G06F9/3877; G06F9/3879

Claims Analysis

Total Claims: 15
Claim 1
Independent Claim 140 words
A computer system comprising: a central processing unit (CPU) for executing conventional instructions and speculative instructions, said CPU including means responsive to an access operation by one of said instructions for generating a speculative instruction bit and a corresponding access address, said access address representing a location in a global address space which includes a first address space and second address space, said speculative instruction bit being asserted when the corresponding access address is generated by a speculative instruction; and a memory controller coupled to a system bus and responsive to said access address and said speculative instruction bit for discarding said access operation when said speculative instruction bit is asserted and said access address is in said second address space and for otherwise accessing said address space, wherein said speculative instruction is prevented from accessing said second address space.
Claim 2
Dependent Claim 140 words
A computer system comprising: a central processing unit (CPU) for executing conventional instructions and speculative instructions, said CPU including means responsive to an access operation by one of said instructions for generating a speculative instruction bit and a corresponding access address, said access address representing a location in a global address space which includes a first address space and second address space, said speculative instruction bit being asserted when the corresponding access address is generated by a speculative instruction; and a memory controller coupled to a system bus and responsive to said access address and said speculative instruction bit for discarding said access operation when said speculative instruction bit is asserted and said access address is in said second address space and for otherwise accessing said address space, wherein said speculative instruction is prevented from accessing said second address space.
Claim 3
Dependent Claim 24 words
A computer system as defined in claim 1 wherein said CPU includes means for generating said speculative instruction bit on a unique signal line.
Claim 4
Dependent Claim 63 words
A computer system as defined in claim 1 wherein said memory controller includes a table containing addresses of said second address space and means for comparing said access address with the addresses of said second address space, said access operation being discarded when said access address matches one of the addresses of said second address space and said speculative instruction bit is asserted.
Claim 5
Dependent Claim 31 words
A computer system as defined in claim 1 wherein said CPU includes a data cache and means for generating said speculative instruction bit when said access address bypasses said data cache.
Claim 6
Dependent Claim 29 words
A computer system as defined in claim 1 wherein said first address space comprises a memory address space and wherein said second address space comprises an I/O address space.
Claim 7
Dependent Claim 51 words
A computer system as defined in claim 5 further comprising a memory coupled to said system bus and mapped to said memory address space, and an I/O device coupled to said system bus and mapped to said I/O address space, wherein said speculative instruction is prevented from accessing said I/O device.
Claim 8
Dependent Claim 40 words
A computer system as defined in claim 1 wherein said first address space comprises a dedicated memory space and wherein said second address space comprises a shared memory space that may be accessed by another processor in a multiprocessor system.
Claim 9
Dependent Claim 51 words
A computer system as defined in claim 7 further comprising a memory coupled to said system bus, said memory having a dedicated area mapped to said dedicated memory space and a shared area mapped to said shared memory space, whereby said speculative instruction is prevented from accessing said shared memory space.
Claim 10
Independent Claim 156 words
A method for protecting memory-mapped devices from side effects of certain speculative instructions in a computer system including a central processing unit (CPU) for executing conventional instructions and speculative instructions, and a memory controller for accessing a global address space, including a first address space and a second address space, in response to an access address generated by said CPU, comprising the steps of: said CPU generating a speculative instruction bit and a corresponding access address in response to an access operation by one of said instructions; said CPU asserting said speculative instruction bit when the corresponding access address is generated by a speculative instruction; said memory controller discarding said access operation when said speculative instruction bit is asserted and said access address is in said second address space; and said memory controller performing said access operation when said speculative instruction bit is not asserted or when said access address is in said first address space.
Claim 11
Independent Claim 156 words
A method for protecting memory-mapped devices from side effects of certain speculative instructions in a computer system including a central processing unit (CPU) for executing conventional instructions and speculative instructions, and a memory controller for accessing a global address space, including a first address space and a second address space, in response to an access address generated by said CPU, comprising the steps of: said CPU generating a speculative instruction bit and a corresponding access address in response to an access operation by one of said instructions; said CPU asserting said speculative instruction bit when the corresponding access address is generated by a speculative instruction; said memory controller discarding said access operation when said speculative instruction bit is asserted and said access address is in said second address space; and said memory controller performing said access operation when said speculative instruction bit is not asserted or when said access address is in said first address space.
Claim 12
Dependent Claim 69 words
A method as defined in claim 9 wherein said memory controller includes a table containing addresses of said second address space and wherein the step of discarding said access operation includes comparing said access address with the addresses of said second address space and discarding said access operation when said access address matches one of the addresses of said second address space and said speculative instruction bit is asserted.
Claim 13
Dependent Claim 198 words
A computer system comprising: a memory coupled to a system bus; an I/O device coupled to said system bus; a central processing unit (CPU) for executing non-speculative instructions and speculative instructions which may subsequently be discarded, said CPU including means responsive to an access operation by one of said instructions for generating a speculative instruction bit and a corresponding access address, said access address representing a location in a global address space which includes a memory address space and an I/O address space, said memory being mapped to said memory address space and said I/O device being mapped to said I/O address space, said speculative instruction bit being asserted when the corresponding access address is generated by a speculative instruction; and a memory controller coupled to said system bus and responsive to said access address and said speculative instruction bit for discarding said access operation when said speculative instruction bit is asserted and said access address is in said I/O address space and for performing said access operation when said speculative instruction bit is not asserted or when said access address is in said memory address space, wherein said speculative instruction is prevented from accessing said I/O device.
Claim 14
Dependent Claim 198 words
A computer system comprising: a memory coupled to a system bus; an I/O device coupled to said system bus; a central processing unit (CPU) for executing non-speculative instructions and speculative instructions which may subsequently be discarded, said CPU including means responsive to an access operation by one of said instructions for generating a speculative instruction bit and a corresponding access address, said access address representing a location in a global address space which includes a memory address space and an I/O address space, said memory being mapped to said memory address space and said I/O device being mapped to said I/O address space, said speculative instruction bit being asserted when the corresponding access address is generated by a speculative instruction; and a memory controller coupled to said system bus and responsive to said access address and said speculative instruction bit for discarding said access operation when said speculative instruction bit is asserted and said access address is in said I/O address space and for performing said access operation when said speculative instruction bit is not asserted or when said access address is in said memory address space, wherein said speculative instruction is prevented from accessing said I/O device.
Claim 15
Dependent Claim 66 words
A computer system as defined in claim 11 wherein said memory controller includes a table containing addresses of said I/O address space and means for comparing said access address with the addresses of said I/O address space in said table, said access operation being discarded when said access address matches one of the addresses of said I/O address space and said speculative instruction bit is asserted.

References Cited (Backward Citations)

US5526499A Cited
US5511172A Cited
US5623628A Cited
US5640526A Cited
US5708843A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-01-25 2002-07-27 2003-01-26 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-01-25 2006-07-27 2007-01-26 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-01-25 2010-07-27 2011-01-26 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag