Claims Analysis
Total Claims: 20
Claim 1
Independent Claim
274 words
In a high speed electronic multiprocessor computer system comprising a plurality of separate processing elements (PE), each having associated therewith a high speed cache memory and a large shared main memory accessible to each PE and its, associated cache, and to other PE's and caches in the system, each cache memory including a control mechanism and a cache directory accessible to its local PE said cache directory containing the addresses of all data lines currently stored in the cache memory, said cache memory and main memory being operable under the control of a memory management procedure including a method for managing temporarily cacheable data resident in each cache serving its associated processor in which each processor can invalidate the temporarily cacheable data in its associated cache with a single instruction, said instruction being applied to temporarily cacheable data independently of the ranges of addresses of the temporarily cacheable data, the method comprising associating a marked data bit (MDB) field with a data line of temporarily cacheable data, through the steps of accessing a data line from main memory after a cache miss, concurrently accessing the associated marked data bit (MDB) field which indicates that the data line to which the MDB refers is temporarily cacheable data when the MDB is set to a first binary state, storing said MDB in the cache directory at the line address where the data line referenced by the MDB is stored, and selectively invalidating all lines in the cache having their MDBs set to said first binary state in response to a single invalidate MDB instruction received from the PE which is served by the particular cache memory.
Claim 2
Dependent Claim
274 words
In a high speed electronic multiprocessor computer system comprising a plurality of separate processing elements (PE), each having associated therewith a high speed cache memory and a large shared main memory accessible to each PE and its, associated cache, and to other PE's and caches in the system, each cache memory including a control mechanism and a cache directory accessible to its local PE said cache directory containing the addresses of all data lines currently stored in the cache memory, said cache memory and main memory being operable under the control of a memory management procedure including a method for managing temporarily cacheable data resident in each cache serving its associated processor in which each processor can invalidate the temporarily cacheable data in its associated cache with a single instruction, said instruction being applied to temporarily cacheable data independently of the ranges of addresses of the temporarily cacheable data, the method comprising associating a marked data bit (MDB) field with a data line of temporarily cacheable data, through the steps of accessing a data line from main memory after a cache miss, concurrently accessing the associated marked data bit (MDB) field which indicates that the data line to which the MDB refers is temporarily cacheable data when the MDB is set to a first binary state, storing said MDB in the cache directory at the line address where the data line referenced by the MDB is stored, and selectively invalidating all lines in the cache having their MDBs set to said first binary state in response to a single invalidate MDB instruction received from the PE which is served by the particular cache memory.
Claim 3
Dependent Claim
59 words
A method for managing temporarily cacheable data as set forth in claim 1 including searching through the entire cache directory in response to said invalidate MDB instruction to detect all cache lines having their MDBs set to said first binary state and, setting a valid data field in the cache directory for all detected lines to an invalid status.
Claim 4
Dependent Claim
76 words
A method for managing temporarily cacheable data as set forth in claim 2 wherein said memory management facility includes a dynamic address translation facility including both segment and page mapping tables, said method further including accessing an MDB stored in memory in the segment and page mapping tables utilized for performing an address translation function, and setting the MDB field in the cache directory from the MDB data in the mapping tables after a cache miss.
Claim 5
Dependent Claim
72 words
A method for managing temporarily cacheable data as set forth in claim 3 wherein a dynamic address translation mechanism associated with each PE includes a high speed translation Look-aside Buffer (TLB) for storing recent address translations of virtual addresses provided by each said PE, said method further including storing the MDB associated with a particular address in the mapping tables in the TLB together with the address translation following the TLB miss.
Claim 6
Dependent Claim
63 words
A method for managing temporarily cacheable data as set forth in claim 4 wherein the memory management procedure utilizes a real cache, said method further including means for accessing the MDB from the mapping tables or the TLB associated with a particular virtual address translation and storing said MDB in the cache directory together with the real address corresponding to the virtual address.
Claim 7
Dependent Claim
74 words
A method for managing temporarily cacheable data as set forth in claim 5 wherein the temporary cacheability of data is determined during compilation of a particular program, said method including storing the MDB associated with a particular block of data in main memory so that it will be accessed and available to the system whenever a cache miss occurs and said data is transferred to cache and appropriate entries made in the cache directory.
Claim 8
Dependent Claim
62 words
A method for managing temporarily cacheable data as set forth in claim 4 wherein the memory management procedure utilizes a virtual cache said method further including means for accessing the MDB from the mapping tables or the TLB associated with a particular virtual address and storing sand MDB in the cache directory together with the real address corresponding to the virtual address.
Claim 9
Dependent Claim
114 words
A method for managing temporarily cacheable data as set forth in claim 2 wherein the main memory is a tagged memory in which a tag field is included with data blocks stored in said main memory, said tag field describing functional characteristics of a data block to which it relates and wherein an MDB field is included in the tag field, said method including accessing the MDB field from said main memory which refers to a particular line to be loaded into the cache after a cache miss and storing the MDB field in a location in the cache directory directly related to the location in the cache where the particular line is stored.
Claim 10
Dependent Claim
57 words
A method for managing temporarily cacheable data as set forth in claim 5 including setting the MDB in the TLB and the cache directory as a predetermined boolean function of the MDB stored in main memory at the real address of data blocks accessed subsequent to a particular address translation in the segment and page mapping tables.
Claim 11
Dependent Claim
38 words
A method for managing temporarily cacheable data as set forth in claim 5 including setting the MDB in the TLB and the cache directory as a direct function of only the MDB stored in the segment mapping Table.
Claim 12
Dependent Claim
38 words
A method for managing temporarily cacheable data as set forth in claim 5 including setting the MDB in the TLB and the cache directory as a direct function of only the MDB stored in the page mapping table.
Claim 13
Dependent Claim
83 words
A method for managing temporarily cacheable data as set forth in claim 6 wherein the MDB field generated by the compilation procedure comprises K-bits capable of representing a plurality of levels of cacheability, said method further including storing said K-bit MDB field in the mapping tables in memory, the TLB and the cache directory, and performing said data invalidating step by specifying a predetermined value of said K-bit MDB field and searching said directory for lines to be invalidated based on said value.
Claim 14
Dependent Claim
53 words
A method for managing temporarily cacheable data as set forth in claim 12 wherein the K-bit MDB field represents a level number, said method further including selectively invalidating marked cache lines which have an MDB field less than, equal to, or greater than a threshold magnitude specified in an invalidate cache lines instruction.
Claim 15
Dependent Claim
45 words
A method for managing temporarily cacheable data as set forth in claim 12 including the step of selectively invalidating cache lines specifying that these cache lines to be invalidated must have MDB fields which exactly match a specified portion of an invalidate cache lines mask.
Claim 16
Dependent Claim
71 words
A method for managing temporarily cacheable data as set forth in claim 5 wherein a store-in cache architecture is used including the steps of selectively: (1) copying the data stored in the cache memory back into main memory, (2) copying the data stored in the cache memory back into the main memory and invalidating the cache lines, or (3) invalidating the cache lines by specifying a predetermined invalidate cache lines instruction.
Claim 17
Dependent Claim
114 words
A method for managing temporarily cacheable data as set forth in claim 5 wherein the MDB field in the Segment and Page mapping tables and the TLB are a single bit but wherein the MDB field in the cache directory is M bits, said method including setting said M-bit field in the cache directory to the current setting of an invocation counter associated with the cache controls whenever a new entry having its MDB set to indicate temporary cacheability is stored in the cache, incrementing said counter when an invalidate cache line instruction is given and, invalidating all cache lines having an MDB count value less than the current setting of the invocation counter.
Claim 18
Dependent Claim
287 words
In a high speed electronic multiprocessor computer system comprising a plurality of separate processing elements (PE), each having associated therewith a high speed real cache memory including a control mechanism and a cache directory accessible to its local PE, said cache directory containing the real addresses of all data lines currently stored in the cache memory and a large shared main memory accessible to each PE, its associated cache, and other PE's and caches in the system said system including a dynamic addressing facility including page and segment mapping tables in memory and a translation Look-aside Buffer (TLB) for storing recent address translations of virtual addresses and wherein the fact that data is temporarily cacheable is determined during compilation of a particular program and stored as a marked data bit field (MDB) in the segment and page mapping tables, a method for managing temporarily cacheable data resident in the cache which includes accessing from the segment and page mapping tables in memory or the TLB, the marked data bit (MDB) field, for indicating that a data line to which the MDB refers is temporarily cacheable data, and storing said MDB field in the cache directory when an associated data line is stored in the cache, storing the MDB associated with a particular address in the mapping tables in the TLB together with a translation of the address following a TLB miss, searching through the entire cache directory without regard to the memory address of the data in response to a single invalidate MDB instruction to detect all cache lines having their MDBs set to a predetermined state to indicate temporary cacheability and, setting all detected lines to an invalid status signifying that the data cannot be used.
Claim 19
Dependent Claim
287 words
In a high speed electronic multiprocessor computer system comprising a plurality of separate processing elements (PE), each having associated therewith a high speed real cache memory including a control mechanism and a cache directory accessible to its local PE, said cache directory containing the real addresses of all data lines currently stored in the cache memory and a large shared main memory accessible to each PE, its associated cache, and other PE's and caches in the system said system including a dynamic addressing facility including page and segment mapping tables in memory and a translation Look-aside Buffer (TLB) for storing recent address translations of virtual addresses and wherein the fact that data is temporarily cacheable is determined during compilation of a particular program and stored as a marked data bit field (MDB) in the segment and page mapping tables, a method for managing temporarily cacheable data resident in the cache which includes accessing from the segment and page mapping tables in memory or the TLB, the marked data bit (MDB) field, for indicating that a data line to which the MDB refers is temporarily cacheable data, and storing said MDB field in the cache directory when an associated data line is stored in the cache, storing the MDB associated with a particular address in the mapping tables in the TLB together with a translation of the address following a TLB miss, searching through the entire cache directory without regard to the memory address of the data in response to a single invalidate MDB instruction to detect all cache lines having their MDBs set to a predetermined state to indicate temporary cacheability and, setting all detected lines to an invalid status signifying that the data cannot be used.
Claim 20
Dependent Claim
56 words
A method for managing temporarily cacheable data as set forth in claim 17 including setting the MDB in the TLB and the cache directory as a boolean function of the MDB stored in main memory at the real address of the data block accessed by a particular address translation in the segment and page mapping tables.