Computer with a cache controller and cache memory with a priority table and priority levels
First Claim
1. A computer system comprising:
- a processor;
a priority table for storing an address indicative of the original location of each data items to be read by the processor and a priority level corresponding to the frequency of access by the processor to read each of the data items;
a cache memory for storing, in units of cache blocks, part of the data items to be read by the processor, the cache memory having a tag which stores an address and a priority level corresponding to each of the data items; and
a controller including;
means for obtaining, when a cache miss has occurred, a priority level corresponding to data requested by the processor, by referring to the priority table and using an address included in the request of the processor, andmeans for comparing the obtained priority level with a priority level of data stored in a predetermined cache block in the cache memory, thereby to determine whether data replacement should be performed in the predetermined cache block.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer system according to the present invention comprises a processor, a priority table for storing an address indicative of the original location of each of data items to be read by the processor, and a priority corresponding to the frequency of access by the processor to read each of the data items, a cache memory for storing, in units of cache blocks, part of the data items to be read by the processor, the cache memory having a tag which stores an address and a priority corresponding to each of the data items, and a controller including means for obtaining, when a cache miss has occurred, a priority corresponding to data whose reading is requested by the processor, by referring to the priority table and using an address included in the data-reading request of the processor, and means for comparing the obtained priority with a priority of data stored in a predetermined cache block in the cache memory, thereby to determine whether or not data replacement should be performed in the predetermined cache block.
47 Citations
23 Claims
-
1. A computer system comprising:
-
a processor; a priority table for storing an address indicative of the original location of each data items to be read by the processor and a priority level corresponding to the frequency of access by the processor to read each of the data items; a cache memory for storing, in units of cache blocks, part of the data items to be read by the processor, the cache memory having a tag which stores an address and a priority level corresponding to each of the data items; and a controller including; means for obtaining, when a cache miss has occurred, a priority level corresponding to data requested by the processor, by referring to the priority table and using an address included in the request of the processor, and means for comparing the obtained priority level with a priority level of data stored in a predetermined cache block in the cache memory, thereby to determine whether data replacement should be performed in the predetermined cache block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 18, 19)
-
-
9. A computer system comprising:
-
a processor; a priority table for storing an address indicative of the original location of each of data items to be read by the processor, and a priority level corresponding to the frequency of access by the processor to read each of the data items; a cache memory for storing, in units of cache blocks, part of the data items to be read by the processor, the cache memory having a tag which stores an address and a priority level corresponding to each of the data items; and a controller including; means for obtaining, when a cache miss has occurred, a priority level corresponding to data whose reading is requested by the processor, by referring to the priority table and using an address included in the data-reading request of the processor, means for comparing the obtained priority level with a priority level of data stored in a predetermined cache block in the cache memory, means for determining to perform replacement of data when the obtained priority level is higher than the priority level of data prestored in the cache block, replacement executing means for erasing data in the predetermined cache block, writing into the predetermined cache block the data requested by the processor, and writing the priority level of the data into the tag, when data replacement is determined to be performed, means for determining not to perform replacement of data when the priority level of data prestored in the cache block is higher than the obtained priority level, and means for reducing, by a predetermined degree, a priority level stored in the tag and corresponding to the data when data replacement is determined not to be performed.
-
-
10. A cache memory control method for use in a computer system having a processor and a cache memory for storing, in units of cache blocks, part of the data items to be read by the processor, comprising the steps of:
-
providing a priority table for storing an address indicative of the original location of each of data items to be read by the processor, and a priority level corresponding to the frequency of access by the processor to read each of the data items; storing, in a tag in the cache memory, an address and a priority level corresponding to each of the data items; obtaining, when a cache miss has occurred, a priority level corresponding to data requested by the processor, by referring to the priority table and using an address included in the request of the processor; and comparing the obtained priority level with a priority level of data stored in a predetermined cache block in the cache memory, thereby to determine whether or not data replacement should be performed in the predetermined cache block. - View Dependent Claims (11, 12, 13, 14, 15, 16, 20, 21)
-
-
17. A cache memory control method for use in computer system having a processor and a cache memory for storing, in units of cache blocks, part of the data items to be read by the processor, comprising the steps of:
-
providing a priority table for storing an address indicative of the original location of each of data items to be read by the processor, and a priority level corresponding to the frequency of access by the processor to read each of the data items; storing, in a tag in the cache memory, an address and a priority level corresponding to each of the data items; obtaining, when a cache miss has occurred, a priority level corresponding to data whose reading is requested by the processor, by referring to the priority table and using an address included in the data-reading request of the processor; comparing the obtained priority level with a priority level of data stored in a predetermined cache block in the cache memory; determining to perform replacement of data when the obtained priority is higher than the priority level of data prestored in the cache block; erasing data in the predetermined cache block, writing into the predetermined cache block the data requested by the processor, and writing the priority level of the data into the tag, when data replacement is determined to be performed; determining not to perform replacement of data when the priority level of data prestored in the cache block is higher than the obtained priority level; and reducing, by a predetermined degree, a priority level stored in the tag and corresponding to the data when data replacement is determined not to be performed.
-
-
22. A computer system comprising:
-
a processor; a priority table for storing an address indicative of the original location of each data items to be read by the processor and a priority level corresponding to the frequency of access by the processor to read each of the data items; a cache memory for storing, in units of cache blocks, part of the data items to be read by the processor, the cache memory having a tag which stores an address and a priority level corresponding to each of the data items; and a controller including; means for obtaining, when a cache miss has occurred, a priority level corresponding to data requested by the processor, by referring to the priority table and using an address included in the request of the processor; means for comparing the obtained priority level with a priority level of data stored in a predetermined cache block in the cache memory; means for determining whether the data replacement should be performed in the predetermined cache block; and means for reducing, by a degree of one, a priority level stored in the tag corresponding to the data when the priority level of data prestored in the cache block is higher than the obtained priority level data.
-
-
23. A cache memory control method for use in a computer system having a processor and a cache memory for storing, in units of cache blocks, part of the data items to be read by the processor, comprising the steps of:
-
providing a priority table for storing an address indicative of the original location of each data item to be read by the processor, and a priority level corresponding to the frequency of access by the processor to read each of the data items; storing, in a tag in the cache memory, an address and a priority level corresponding to each of the data items; obtaining, when a cache miss has occurred, a priority level corresponding to data requested by the processor, by referring to the priority table and using an address included in the request of the processor; comparing the obtained priority level with a priority level of data stored in a predetermined cache block in the cache memory; determining whether the data replacement should be performed in the predetermined cache block; and reducing, by a degree of one, a priority level stored in the tag corresponding to the data when the priority level of data prestored in the cache block is higher than the obtained priority level data.
-
Specification