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

Method and apparatus for optimizing supervisor mode store operations in a data cache

Assignee: Sun Microsystems Inc
•
Filing: 1993-10-07
•
Granted: 1997-02-25
•
Expires: 2013-10-07
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A system and method for performing conditionally cache allocate operations to a data cache in a computer system. As supervisor mode operations typically do not experience data locality of accesses frequently found in user mode operations, it has been determined that performance benefits can be achieved by inhibiting cache allocate operations during supervisor mode. When a write miss to the cache occurs, the memory management unit checks the state of the processor status register to determine the mode of the processor. If the processor status register indicates that the processor is in supervisor mode, the memory management unit issues a signal to the data cache controller that the data is non-cacheable. When the data cache controller receives a non-cacheable signal, the cache allocate process is not performed. The non-cacheable signal is issued by the memory management unit while the processor is in supervisor mode regardless of the state of the cacheable status bit associated with the memory. Thus, if the processor is not in supervisor mode, the memory management unit will issue a non-cacheable signal to-the data cache controller based upon the state of the cacheable status bit associated with the memory. This status bit is typically found in the corresponding page table entry in the page table of a translation look aside buffer. Therefore, although a supervisor mode operation inhibits a cache allocate operation, subsequent non-supervisor mode operations to the same data will proceed based upon the state of the cacheable status bit associated with the memory.

Inventors

  • 👤 Peter A. Mehring
  • 👤 Herbert Lopez-Aguado

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 16:39
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0888

Claims Analysis

Total Claims: 14
Claim 1
Independent Claim 288 words
In a computer system comprising a processor and memory hierarchy, said memory hierarchy including a main memory and a data cache, said processor executing code including memory operations while in one of a plurality of modes, said modes including a supervisor mode, an apparatus for performing conditional cache allocate operations on data when a cache miss on a store operation occurs, said apparatus comprising: cacheable status indicative of whether the data is cacheable; mode status indicative of whether the operation is being performed while the processor is in supervisor mode; a data cache controller for controlling read and write operations to the cache, aid data cache controller receiving a cacheable signal by which data is identified to be cacheable and non-cacheable, said data cache controller performing a cache allocate operation if the data is cacheable; a memory management unit coupled to receive a memory address on which to perform the memory operation, wherein if a store miss occurs, said memory management unit checks the state of the mode status to determine whether the operation is being performed while in supervisor mode, said memory management unit sue a cacheable signal to the data cache controller indicating that the data is non-cacheable if the memory management unit determines that the processor is in supervisor mode, if the mode status indicates that the processor is not in supervisor mode, said memory management unit issues a cacheable signal to the data cache controller indicating that the data is non-cacheable if the cacheable status indicates that the data is non-cacheable and issues a cacheable signal indicating that the data is cacheable if the cacheable status indicates that the data is cacheable; wherein cache allocate operations are eliminated while the processor in supervisor mode.
Claim 2
Dependent Claim 288 words
In a computer system comprising a processor and memory hierarchy, said memory hierarchy including a main memory and a data cache, said processor executing code including memory operations while in one of a plurality of modes, said modes including a supervisor mode, an apparatus for performing conditional cache allocate operations on data when a cache miss on a store operation occurs, said apparatus comprising: cacheable status indicative of whether the data is cacheable; mode status indicative of whether the operation is being performed while the processor is in supervisor mode; a data cache controller for controlling read and write operations to the cache, aid data cache controller receiving a cacheable signal by which data is identified to be cacheable and non-cacheable, said data cache controller performing a cache allocate operation if the data is cacheable; a memory management unit coupled to receive a memory address on which to perform the memory operation, wherein if a store miss occurs, said memory management unit checks the state of the mode status to determine whether the operation is being performed while in supervisor mode, said memory management unit sue a cacheable signal to the data cache controller indicating that the data is non-cacheable if the memory management unit determines that the processor is in supervisor mode, if the mode status indicates that the processor is not in supervisor mode, said memory management unit issues a cacheable signal to the data cache controller indicating that the data is non-cacheable if the cacheable status indicates that the data is non-cacheable and issues a cacheable signal indicating that the data is cacheable if the cacheable status indicates that the data is cacheable; wherein cache allocate operations are eliminated while the processor in supervisor mode.
Claim 3
Dependent Claim 16 words
The apparatus as set forth in claim 1, wherein said memory management unit stores-the cacheable status.
Claim 4
Dependent Claim 44 words
The apparatus as set forth in claim 1 wherein the mode status is stored in a processor status register located in the processor, said memory management unit performing a read of the processor status register to determine whether the processor is in supervisor mode.
Claim 5
Dependent Claim 54 words
The apparatus as set forth in claim 1, wherein said memory management unit further comprises a translation look aside buffer comprising a page table, said page table comprising page table entries, each page table entry including a bit identifying the cacheable status indicative of whether data corresponding to the page table entry is cacheable.
Claim 6
Dependent Claim 339 words
In a computer system comprising a processor and memory hierarchy, said memory hierarchy including a main memory and a data cache, said processor executing code including memory operations while in one of a plurality of modes, said modes including a supervisor mode, an apparatus for performing conditional cache allocate operations on data when a cache miss on a store operation occurs, said apparatus comprising: a processor status register located in the processor, said processor status register storing status information indicative of whether the operation is being performed while the processor is in supervisor mode; a data cache controller for controlling read and write operations to the cache, said data cache controller receiving a cacheable signal by which data is identified to be cacheable and non-cacheable, said data cache controller performing a cache allocate operation if the data is cacheable; a memory management unit coupled to receive a memory address on which to perform the memory operation, said memory management unit comprising; a translation look aside buffer comprising a page table, said page table including page table entries identified according to a corresponding memory address, each page table entry comprising a cacheable status bit indicative of whether the corresponding page of memory is cacheable, mode status determination mechanism to read the processor status register when a store miss occurs, signal generator for generating the cacheable signal to the data cache controller, said signal generator issuing a cacheable signal indicating that the data is non-cacheable if the mode status determination mechanism determines that the processor is in supervisor mode, if it is determined that the processor is not in supervisor mode, said memory management unit issuing a cacheable signal to the data cache controller indicating that the data is non-cacheable if the cacheable status bit in the corresponding page table entry indicates that the data is non-cacheable and issuing a cacheable signal indicating that the data is cacheable if the cacheable status bit indicates that the data is cacheable; wherein cache allocate operations are eliminated while the processor in supervisor mode.
Claim 7
Dependent Claim 339 words
In a computer system comprising a processor and memory hierarchy, said memory hierarchy including a main memory and a data cache, said processor executing code including memory operations while in one of a plurality of modes, said modes including a supervisor mode, an apparatus for performing conditional cache allocate operations on data when a cache miss on a store operation occurs, said apparatus comprising: a processor status register located in the processor, said processor status register storing status information indicative of whether the operation is being performed while the processor is in supervisor mode; a data cache controller for controlling read and write operations to the cache, said data cache controller receiving a cacheable signal by which data is identified to be cacheable and non-cacheable, said data cache controller performing a cache allocate operation if the data is cacheable; a memory management unit coupled to receive a memory address on which to perform the memory operation, said memory management unit comprising; a translation look aside buffer comprising a page table, said page table including page table entries identified according to a corresponding memory address, each page table entry comprising a cacheable status bit indicative of whether the corresponding page of memory is cacheable, mode status determination mechanism to read the processor status register when a store miss occurs, signal generator for generating the cacheable signal to the data cache controller, said signal generator issuing a cacheable signal indicating that the data is non-cacheable if the mode status determination mechanism determines that the processor is in supervisor mode, if it is determined that the processor is not in supervisor mode, said memory management unit issuing a cacheable signal to the data cache controller indicating that the data is non-cacheable if the cacheable status bit in the corresponding page table entry indicates that the data is non-cacheable and issuing a cacheable signal indicating that the data is cacheable if the cacheable status bit indicates that the data is cacheable; wherein cache allocate operations are eliminated while the processor in supervisor mode.
Claim 8
Dependent Claim 219 words
In a computer system comprising a processor and memory hierarchy, said memory hierarchy including a main memory and a data cache, said processor executing code including memory operations while in one of a plurality of modes, said modes including a supervisor mode, a method for performing conditional cache allocate operations on data when a cache miss on a store operation occurs, said method comprising the steps of: storing cacheable status indicative of whether data is cacheable; storing mode status indicative of whether the operation is being performed while the processor is in supervisor mode; if a miss to the data cache occurs during a store operation; checking the mode status indicative of whether the operation is being performed while the processor is in supervisor mode, if the processor is in supervisor mode, issuing a cacheable signal indicating that the data is not cacheable, and if the processor is not in supervisor mode, checking the cacheable status to determine whether the data is cacheable, if the data is cacheable, issuing a cacheable signal indicating that the data is cacheable, and if the data is not cacheable, issuing a cacheable signal indicating that the data is not cacheable; and performing a write allocate operation if the data is cacheable; wherein cache allocate operations are eliminated while the processor in supervisor mode.
Claim 9
Dependent Claim 219 words
In a computer system comprising a processor and memory hierarchy, said memory hierarchy including a main memory and a data cache, said processor executing code including memory operations while in one of a plurality of modes, said modes including a supervisor mode, a method for performing conditional cache allocate operations on data when a cache miss on a store operation occurs, said method comprising the steps of: storing cacheable status indicative of whether data is cacheable; storing mode status indicative of whether the operation is being performed while the processor is in supervisor mode; if a miss to the data cache occurs during a store operation; checking the mode status indicative of whether the operation is being performed while the processor is in supervisor mode, if the processor is in supervisor mode, issuing a cacheable signal indicating that the data is not cacheable, and if the processor is not in supervisor mode, checking the cacheable status to determine whether the data is cacheable, if the data is cacheable, issuing a cacheable signal indicating that the data is cacheable, and if the data is not cacheable, issuing a cacheable signal indicating that the data is not cacheable; and performing a write allocate operation if the data is cacheable; wherein cache allocate operations are eliminated while the processor in supervisor mode.
Claim 10
Dependent Claim 55 words
The method as set forth in claim 6, wherein said step of storing cacheable status comprises the step of generating page table entries in a page table in a translation look aside buffer, each page table entry corresponding to a page of memory and includes a status bit indicative of whether the page is cacheable.
Claim 11
Dependent Claim 36 words
The method as set forth in claim 6, wherein said step of storing mode status comprises the step of providing a processor status register in the processor, said processor status register containing identification of the mode.
Claim 12
Dependent Claim 25 words
The method as set forth in claim 8, wherein said step of checking the mode status comprises the step of reading the processor status register.
Claim 13
Dependent Claim 35 words
The method as set forth in claim 6, wherein the steps of issuing a cacheable signal issues the signal to a data cache controller which controls operations to the cache, including a cache allocate operation.
Claim 14
Dependent Claim 39 words
The method as set forth in claim 7, wherein the step of checking the cacheable status comprises the step of locating the corresponding page table entry and reading the cacheable status bit indicative of whether the page is cacheable.

References Cited (Backward Citations)

US5091846A Cited
US5371872A Cited
US5491799A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag