IP Library Granted Patent US 7,249,225
Granted Patent B1
US 7,249,225 · App. 10/698,727 · Granted Jul 24, 2007

Method and apparatus for supporting read-only objects within an object-addressed memory hierarchy

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,249,225
App. No.
10/698,727
Granted
Jul 24, 2007
Kind
B1
Abstract

One embodiment of the present invention provides a system that supports read-only objects within an object-addressed memory hierarchy. During operation, the system receives a request to access an object, wherein the request includes an object identifier for the object that is used to reference the object within the object-addressed memory hierarchy. In response to this request, the system uses the object identifier to retrieve an object table entry associated with the object. If the request is a write request, the system examines a read-only indicator within the object table entry. If this read-only indicator specifies that the object is a read-only object, the system performs a corrective action to deal with the fact that the write request is directed to a read-only object.

Claims (60)

1. A method for supporting read-only objects within an object-addressed memory hierarchy, comprising:

receiving a request at a translator to access an object, wherein the request includes an object identifier for the object that is used to reference the object within the object-addressed memory hierarchy, and wherein the translator converts an object identifier and offset into a corresponding physical address and converts the request to access an object into a request for the corresponding physical address;

using the object identifier to retrieve an object table entry associated with the object; and

if the request is a write request,

examining a read-only indicator within the object table entry, and

if the read-only indicator specifies that the object is a read-only object, performing a corrective action to deal with the fact that the write request is directed to a read-only object, wherein performing the corrective action involves:

obtaining a writable copy of the object, clearing the read-only indicator to indicate that the object is no longer read-only, and updating the writable copy of the object with data from the write request;

updating a remotely located master copy of the object with data from the write request;

terminating the requesting process because the write request is not allowed; and

if the request is directed to a debugging breakpoint, pausing the requesting process and clearing the read-only indicator.

2. The method of claim 1 , wherein if the request is a read request, the method further comprises using a physical address from the object table entry to access the object in main memory.

3. The method of claim 1 , wherein performing the corrective action can involve causing a fault handler in the requesting processor to perform the corrective action.

4. The method of claim 1 ,

wherein prior to receiving the request at the translator, the request is initially directed to an object cache;

wherein if the request causes a hit in the object cache, the object is accessed in the object cache and the request is not sent to the translator; and

wherein if the request causes a miss in the object cache, the request is sent to the translator.

5. The method of claim 4 , further comprising making a given object read-only by:

setting a read-only indicator associated with the given object to indicate that the given object is read-only;

causing all object caches within a local cache-coherent domain to flush any modified cache lines of the given object out to main memory;

whereby subsequent upgrades of the given object from read-only status to writable or modified status in any caches within the local cache-coherent domain must go through a translator.

6. The method of claim 5 , wherein causing all object caches within the local cache-coherent domain to flush any modified cache lines of the given object out to main memory involves executing a read-with-intent-to-only-read (RWITOR) instruction on each cache line of the given object.

7. The method of claim 5 , wherein the given object can be made read-only in response to a request received from outside the local cache-coherent domain.

8. The method of claim 1 , wherein the translator includes hardware to translate between object identifiers and physical addresses.

9. An apparatus that supports read-only objects within an object-addressed memory hierarchy, comprising:

a receiving mechanism configured to receive a request at a translator to access an object, wherein the request includes an object identifier for the object that is used to reference the object within the object-addressed memory hierarchy, and wherein the translator converts an object identifier and offset into a corresponding physical address and converts the request to access an object into a request for the corresponding physical address;

a translation mechanism configured to use the object identifier to retrieve an object table entry associated with the object; and

a corrective action mechanism, wherein if the request is a write request, the corrective action mechanism is configured to,

examine a read-only indicator within the object table entry, and

if the read-only indicator specifies that the object is a read-only object, to perform a corrective action to deal with the fact that the write request is directed to a read-only object, wherein performing the corrective action involves:

obtaining a writable copy of the object, clearing the read-only indicator to indicate that the object is no longer read-only, and updating the writable copy of the object with data from the write request;

updating a remotely located master copy of the object with data from the write request;

terminating the requesting process because the write request is not allowed; and

if the request is directed to a debugging breakpoint, pausing the requesting process and clearing the read-only indicator.

10. The apparatus of claim 9 , wherein if the request is a read request, the translation mechanism is additionally configured to use a physical address from the object table entry to access the object in main memory.

11. The apparatus of claim 9 , wherein the corrective action mechanism is configured to cause a fault handler in the requesting processor to perform the corrective action.

12. The apparatus of claim 9 , wherein the apparatus includes an object cache;

wherein prior to receiving the request at the translator, the request is initially directed to the object cache;

wherein if the request causes a hit in the object cache, the object is accessed in the object cache and the request is not sent to the translator; and

wherein if the request causes a miss in the object cache, the request is sent to the translator.

13. The apparatus of claim 12 , further comprising a read-only configuration mechanism configured to make a given object read-only by:

setting a read-only indicator associated with the given object to indicate that the given object is read-only; and

causing all object caches within a local cache-coherent domain to flush any modified cache lines of the given object out to main memory;

whereby subsequent upgrades of the given object from read-only status to writable or modified status in any caches within the local cache-coherent domain must go through a translator.

14. The apparatus of claim 13 , wherein the read-only configuration mechanism causes all object caches within the local cache-coherent domain to flush any modified cache lines of the given object out to main memory by executing a read-with-intent-to-only-read (RWITOR) instruction on each cache line of the given object.

15. The apparatus of claim 13 , wherein the read-only configuration mechanism makes the given object read-only in response to a request received from outside the local cache-coherent domain.

16. The apparatus of claim 9 , wherein the translator includes hardware to translate between object identifiers and physical addresses.

17. A computer system that supports read-only objects within an object-addressed memory hierarchy, comprising:

a processor;

the object-addressed memory hierarchy;

an object cache within the object-addressed memory hierarchy;

a translator that translates between object identifiers, used to address objects in the object cache, and physical addresses, used to address objects in main memory;

a receiving mechanism within the translator configured to receive at the translator a request to access an object, wherein the request includes an object identifier for the object that is used to reference the object within the object-addressed memory hierarchy, and wherein the translator converts an object identifier and offset into a corresponding physical address and converts the request to access an object into a request for the corresponding physical address;

a translation mechanism within the translator configured to use the object identifier to retrieve an object table entry associated with the object; and

a corrective action mechanism, wherein if the request is a write request, the corrective action mechanism is configured to,

examine a read-only indicator within the object table entry, and

if the read-only indicator specifies that the object is a read-only object, to perform a corrective action to deal with the fact that the write request is directed to a read-only object, wherein performing the corrective action involves:

obtaining a writable copy of the object, clearing the read-only indicator to indicate that the object is no longer read-only, and updating the writable copy of the object with data from the write request;

updating a remotely located master copy of the object with data from the write request;

terminating the requesting process because the write request is not allowed; and

if the request is directed to a debugging breakpoint, pausing the requesting process and clearing the read-only indicator.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037302/0772 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2003
From: SEIDL, MATTHEW L.; WRIGHT, GREGORY M.; WOLCZKO, MARIO I.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 014659/0424 →