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

Hybrid NUMA COMA caching system and methods for selecting between the caching modes

Assignee: Oracle America Inc
•
Filing: 1995-12-22
•
Granted: 1998-01-20
•
Expires: 2015-12-22
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The present invention provides a hybrid Non-Uniform Memory Architecture (NUMA) and Cache-Only Memory Architecture (COMA) caching architecture together with a cache-coherent protocol for a computer system having a plurality of sub-systems coupled to each other via a system interconnect. In one implementation, each sub-system includes at least one processor, a page-oriented COMA cache and a line-oriented hybrid NUMA/COMA cache. Such a hybrid system provides flexibility and efficiency in caching both large and small, and/or sparse and packed data structures. Each sub-system is able to independently store data in COMA mode or in NUMA mode. When caching in COMA mode, a sub-system allocates a page of memory space and then stores the data within the allocated page in its COMA cache. Depending on the implementation, while caching in COMA mode, the sub-system may also store the same data in its hybrid cache for faster access. Conversely, when caching in NUMA mode, the sub-system stores the data, typically a line of data, in its hybrid cache.

Inventors

  • 👤 Erik Hagersten
  • 👤 Robert C. Zak, Jr.

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 09:01
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0806; G06F12/0813; G06F12/0811; G06F12/0815; G06F12/0817; G06F2212/00; G06F2212/25; G06F2212/254; G06F2212/2542; G06F2212/27; G06F2212/272

Claims Analysis

Total Claims: 28
Claim 1
Independent Claim 92 words
A hybrid non-uniform-memory-architecture/cache-only-memory-architecture (NUMA/COMA) caching system useful in association with a computer system having a plurality of sub-systems coupled to each other by a system interconnect, and wherein data is stored in said hybrid NUMA/COMA caching system as a plurality of pages, each said page including a plurality of data lines, said hybrid NUMA/COMA caching system comprising: a plurality of hybrid NUMA/COMA caches configured to store at least one of said plurality of data lines; and a plurality of COMA caches configured to store at least one of said plurality of pages.
Claim 2
Dependent Claim 92 words
A hybrid non-uniform-memory-architecture/cache-only-memory-architecture (NUMA/COMA) caching system useful in association with a computer system having a plurality of sub-systems coupled to each other by a system interconnect, and wherein data is stored in said hybrid NUMA/COMA caching system as a plurality of pages, each said page including a plurality of data lines, said hybrid NUMA/COMA caching system comprising: a plurality of hybrid NUMA/COMA caches configured to store at least one of said plurality of data lines; and a plurality of COMA caches configured to store at least one of said plurality of pages.
Claim 3
Dependent Claim 40 words
The hybrid NUMA/COMA caching system of claim 1 wherein one said COMA cache is associated with one said sub-system, and wherein data stored in said one COMA cache is accessed by said one sub-system using a local physical address (LPA).
Claim 4
Dependent Claim 39 words
The hybrid NUMA/COMA caching system of claim 1 wherein one said hybrid cache is associated with one said sub-system, and wherein data stored in said one hybrid cache is accessed by said one sub-system using a global address (GA).
Claim 5
Dependent Claim 26 words
The hybrid NUMA/COMA caching system of claim 2 wherein said one sub-system further comprising an address translator for translating said LPA into a global address (GA).
Claim 6
Independent Claim 77 words
A method of storing data in a computer system having a plurality of sub-systems coupled to each other by a system interconnect, each said sub-system including a processor, a hybrid non-uniform-memory-architecture/cache-only-memory-architecture (NUMA/COMA) cache, a COMA cache and a directory, said method including the steps of: determining whether data should be stored in a hybrid NUMA/COMA cache of one said sub-system; and determining whether the data should also be stored in a COMA cache of said one sub-system.
Claim 7
Independent Claim 77 words
A method of storing data in a computer system having a plurality of sub-systems coupled to each other by a system interconnect, each said sub-system including a processor, a hybrid non-uniform-memory-architecture/cache-only-memory-architecture (NUMA/COMA) cache, a COMA cache and a directory, said method including the steps of: determining whether data should be stored in a hybrid NUMA/COMA cache of one said sub-system; and determining whether the data should also be stored in a COMA cache of said one sub-system.
Claim 8
Independent Claim 89 words
A method of storing data in a computer system having a plurality of sub-systems coupled to each other by a system interconnect, each said sub-system including a processor, a hybrid non-uniform-memory-architecture/cache-only-memory-architecture (NUMA/COMA) cache, a COMA cache and a directory, said method including the steps of: storing data associated with a data line in a hybrid NUMA/COMA cache of one said sub-system; and if the computer system determines that said data should be stored in a COMA mode, then storing said data in a COMA cache of said one sub-system.
Claim 9
Independent Claim 89 words
A method of storing data in a computer system having a plurality of sub-systems coupled to each other by a system interconnect, each said sub-system including a processor, a hybrid non-uniform-memory-architecture/cache-only-memory-architecture (NUMA/COMA) cache, a COMA cache and a directory, said method including the steps of: storing data associated with a data line in a hybrid NUMA/COMA cache of one said sub-system; and if the computer system determines that said data should be stored in a COMA mode, then storing said data in a COMA cache of said one sub-system.
Claim 10
Dependent Claim 54 words
The method of claim 6 wherein the step of storing said data in said COMA cache of said one sub-system includes the steps of: allocating a page of memory space in said COMA cache of said one sub-system; and storing said data within said allocated page of said COMA cache of said one sub-system.
Claim 11
Dependent Claim 24 words
The method of claim 5 further comprising the step of determining whether the data should remain stored in said COMA cache of said one-sub-system.
Claim 12
Dependent Claim 118 words
The method of claim 8 wherein said determining step includes the steps of: incrementing a COMA -- hit counter each time data from a page cannot be found in a hybrid cache of a requesting sub-system of said sub-systems but is found in a COMA cache of the requesting sub-system; incrementing a COMA -- miss counter each time data from the said page cannot be found in either the hybrid cache or the COMA cache of the requesting sub-system; and comparing the content of the COMA -- hit counter against the content of the COMA -- miss counter to determine if the ratio of the COMA -- hit counter exceeds the COMA -- miss counter by a threshold.
Claim 13
Independent Claim 106 words
A method of accessing data in a computer system having a plurality of sub-systems coupled to each other by a system interconnect, each said sub-system including a processor, a hybrid non-uniform-memory-architecture/cache-only-memory-architecture (NUMA/COMA) cache, a COMA cache and a directory, said method including the steps of: determining whether data is stored in a hybrid NUMA/COMA cache of a requesting sub-system of said sub-systems; and if said data is stored in said NUMA/COMA hybrid cache of said requesting sub-system, then: retrieving said data from said hybrid NUMA/COMA cache; else: determining if said data has been stored in a COMA mode in a COMA cache of said requesting sub-system.
Claim 14
Independent Claim 106 words
A method of accessing data in a computer system having a plurality of sub-systems coupled to each other by a system interconnect, each said sub-system including a processor, a hybrid non-uniform-memory-architecture/cache-only-memory-architecture (NUMA/COMA) cache, a COMA cache and a directory, said method including the steps of: determining whether data is stored in a hybrid NUMA/COMA cache of a requesting sub-system of said sub-systems; and if said data is stored in said NUMA/COMA hybrid cache of said requesting sub-system, then: retrieving said data from said hybrid NUMA/COMA cache; else: determining if said data has been stored in a COMA mode in a COMA cache of said requesting sub-system.
Claim 15
Dependent Claim 43 words
The method of claim 10 wherein if it is determined that said data is not stored in either the hybrid NUMA/COMA cache or the COMA cache of said requesting sub-system, then a read request is sent to a home sub-system of said sub-systems.
Claim 16
Dependent Claim 34 words
The method of claim 11 wherein if it is determined that said data is stored in said home sub-system, then the method further includes the step of retrieving said data from said home sub-system.
Claim 17
Dependent Claim 38 words
The method of claim 12 wherein if it is determined that said data was not stored in said home sub-system, then the method further comprises the steps of retrieving said data from a owner sub-system of said sub-systems.
Claim 18
Independent Claim 66 words
A method of accessing data in a computer system having a plurality of sub-systems coupled to each other by a system interconnect, each sub-system including a processor, a hybrid non-uniform-memory-architecture/cache-only-memory-architecture (NUMA/COMA) cache, a COMA cache and a directory, said method including the step of: determining if data has been stored in either a COMA mode or a NUMA mode by a requesting sub-system of said sub-systems.
Claim 19
Independent Claim 66 words
A method of accessing data in a computer system having a plurality of sub-systems coupled to each other by a system interconnect, each sub-system including a processor, a hybrid non-uniform-memory-architecture/cache-only-memory-architecture (NUMA/COMA) cache, a COMA cache and a directory, said method including the step of: determining if data has been stored in either a COMA mode or a NUMA mode by a requesting sub-system of said sub-systems.
Claim 20
Dependent Claim 35 words
The method of claim 14 wherein said COMA/NUMA mode determining step includes the step of comparing an address of said data with a COMA range of memory addresses and a NUMA range of memory addresses.
Claim 21
Dependent Claim 31 words
The method of claim 15 wherein said COMA range is a local physical address (LPA) range associated with said requesting sub-system and said NUMA range is a global address (GA) range.
Claim 22
Dependent Claim 53 words
The method of claim 16 wherein if said determining step determines that the address of the data is a LPA associated with said requesting sub-system, then the method further includes the step of determining if the data is stored in either the hybrid NUMA/COMA cache or the COMA cache of the requesting sub-system.
Claim 23
Dependent Claim 108 words
The method of claim 17 wherein if said data cannot be found in either the hybrid NUMA/COMA cache or the COMA cache of said requesting sub-system, then the method further includes the steps of: translating the LPA of said data associated with said requesting sub-system into a GA; forwarding a read request with the GA to a home sub-system of said sub-systems; translating the GA into an LPA of said home sub-system; determining whether data was stored in either a hybrid NUMA/COMA cache or a COMA cache of said home sub-system; and if said data was stored in said home sub-system, retrieving said data from said home sub-system.
Claim 24
Dependent Claim 89 words
The method of claim 18 wherein if said home sub-system determines that said data is not stored in said home system, then the method further comprises the steps of: forwarding the read request with the GA to an owner sub-system of said sub-systems; translating the GA into an LPA of said owner sub-system; determining whether data was stored in either a hybrid NUMA/COMA cache or a COMA cache of said owner sub-system; and if said data was stored in said owner sub-system, retrieving said data from said owner sub-system.
Claim 25
Dependent Claim 117 words
A computer program product including a computer-usable medium having computer-readable code embodied therein configured to cause a computer system to select between a non-uniform-memory-architecture (NUMA) mode and a cache-only-memory-architecture (COMA) mode, the computer system having a plurality of sub-systems coupled to each other by a system interconnect, each said sub-system including a processor, a hybrid NUMA/COMA cache, a COMA cache and a directory, the computer-readable code comprising: code instructions configured to cause one said sub-system to determine whether data should be stored in a hybrid NUMA/COMA cache of said one sub-system; and code instructions configured to cause said one sub-system to determine whether the data should also be stored in a COMA cache of said one sub-system.
Claim 26
Dependent Claim 117 words
A computer program product including a computer-usable medium having computer-readable code embodied therein configured to cause a computer system to select between a non-uniform-memory-architecture (NUMA) mode and a cache-only-memory-architecture (COMA) mode, the computer system having a plurality of sub-systems coupled to each other by a system interconnect, each said sub-system including a processor, a hybrid NUMA/COMA cache, a COMA cache and a directory, the computer-readable code comprising: code instructions configured to cause one said sub-system to determine whether data should be stored in a hybrid NUMA/COMA cache of said one sub-system; and code instructions configured to cause said one sub-system to determine whether the data should also be stored in a COMA cache of said one sub-system.
Claim 27
Dependent Claim 139 words
A computer program product including a computer-usable medium having computer-readable code embodied therein configured to cause a computer system to select between a non-uniform-memory-architecture (NUMA) mode and a cache-only-memory-architecture (COMA) mode, the computer system having a plurality of sub-systems coupled to each other by a system interconnect, each said sub-system including a processor, a hybrid NUMA/COMA cache, a COMA cache and a directory, the computer-readable code comprising: code instructions configured to cause a requesting sub-system of said sub-systems to determine whether data is stored in a hybrid NUMA/COMA cache of said requesting sub-system; code instructions configured to cause said requesting sub-system to retrieve said data from said hybrid NUMA/COMA cache; and code instructions configured to cause said requesting sub-system to determine if said data has been stored in a COMA mode in a COMA cache of said requesting sub-system.
Claim 28
Dependent Claim 139 words
A computer program product including a computer-usable medium having computer-readable code embodied therein configured to cause a computer system to select between a non-uniform-memory-architecture (NUMA) mode and a cache-only-memory-architecture (COMA) mode, the computer system having a plurality of sub-systems coupled to each other by a system interconnect, each said sub-system including a processor, a hybrid NUMA/COMA cache, a COMA cache and a directory, the computer-readable code comprising: code instructions configured to cause a requesting sub-system of said sub-systems to determine whether data is stored in a hybrid NUMA/COMA cache of said requesting sub-system; code instructions configured to cause said requesting sub-system to retrieve said data from said hybrid NUMA/COMA cache; and code instructions configured to cause said requesting sub-system to determine if said data has been stored in a COMA mode in a COMA cache of said requesting sub-system.

References Cited (Backward Citations)

No citation records indexed.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-01-19 2001-07-21 2002-01-20 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-01-19 2005-07-21 2006-01-20 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-01-19 2009-07-21 2010-01-20 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag