Electrical computers and digital processing systems: memory – Storage accessing and control – Hierarchical memories
Reexamination Certificate
1999-03-15
2002-02-19
Kim, Matthew (Department: 2186)
Electrical computers and digital processing systems: memory
Storage accessing and control
Hierarchical memories
C711S171000, C711S172000, C711S129000
Reexamination Certificate
active
06349364
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a semiconductor circuit having a cache memory, more specifically to a cache memory system for reducing times of replacing data between a cache memory and a main memory.
2. Prior Art
A cache memory system in the prior art is constituted as shown in FIG.
11
.
A cache memory
100
is provided with a data array
102
storing the data, and is connected to a processor
130
and a main memory
106
. Size of the data transferring between the data array
102
and the main memory
106
is determined at the design state, and according to this size, a memory access control means
111
transfers the data between the data array
102
and the main memory
106
. Thus in the cache memory system in the prior art, the size of the data transferring between the main memory
106
and the cache memory
100
is fixed to any amount.
Operation of replacing the data between the main memory and the cache memory hereinafter is called replacing, and the size of the replaced data is called block-size.
If the block-size is fixed to any value, depending on characteristics of behavior of a program, times of replacing may be increased in two cases.
In one case, in comparison with amount of the data to be transferred from the main memory
106
to the cache memory
100
, block-size which can be replaced in transfer of one time is small.
Then, times of transferring the data required by the processor from the main memory
106
to the cache memory
100
and times of transferring the data bit required by the processor from the cache memory
100
to the main memory
106
are increased.
Operation of transferring the data from the main memory to the cache memory is hereinafter called replacing-in, and operation of transferring the data from the cache memory to the main memory is called replacing-out.
In another case, in comparison with amount of the data to be transferred from the main memory
106
to the cache memory
100
, block-size which can be replaced in transfer of one time is large. Then the data to be originally stored within the cache memory
100
may be replaced out together with the data to be replaced out from the cache memory
100
to the main memory
106
.
Therefore regarding the data which are replaced out although to be originally stored within the cache memory
100
, when the processor is going to refer the data, the data must be replaced in again.
In order to solve these problems, cache memories having constitution as disclosed in JP-A 62-118456 or JP-A 63-157249 have been proposed.
In any of cache memories, block-size is set to one predetermined value by instruction or the like, during initialization or during execution of program.
Thereby dealing with the difference of the scope within the spatial locality different in each program or the variation of the scope within the spatial locality during the execution of one program, the block-size can be varied.
In the computer system in the prior art, however, since a processor and a cache memory are separate LSIs, because of pin constraint of the LSI, width of a data bus between the processor and the cache memory can not be designed wide, and the block-size is designed large in comparison with the data bus width.
Since the block-size is designed large in comparison with the data bus width, there is a problem that the clock cycle number required for the data transfer is increased.
In order to solve these problems, a clock memory with variable line size has been proposed (Technical Report of the Information Processing Society of Japan, Architecture Research Group, ARC-119-28, August 1996).
This cache memory is based on that a processor, a cache memory and a DRAM being a main memory are merged on one LSI. Since the cache memory and the main memory are directly connected within the LSI, the cache memory is characterized in that the width of the data bus connecting between the cache memory and the main memory can be designed wide. Further the block-size can be set to one value predetermined as mode of the whole cache.
Therefore in a region where the block-size is small in comparison with the data bus width, the block-size can be set not increasing the cycle required for the data transfer.
In general, a cache memory is a storage device which utilizes property that the data once accessed can be accessed again within the near time at high possibility (time locality) and property that data in the vicinity of the accessed data can be soon accessed with high possibility (spatial locality), and stores the data to be referred by the processor in the near future with high possibility.
Noticing the spatial locality particularly, not only the scope within the spatial locality is different in each program, but also even in single program, the scope within the spatial locality is different depending on the address space.
This is clear considering an example that individual elements in two arrangements different in amount stored in address spaces separated from each other within certain time are accessed in the same times respectively. That is, comparing a wide address space storing a large arrangement and a narrow address space storing a small arrangement, it can be said that the former is high in the spatial locality.
However, since any of proposed architectures as above described, determines the block-size as mode of the whole cache uniquely, it is difficult to deal with the difference of the scope within the spatial locality in the address space.
If the set block-size is not suitable, the unnecessary replacing may be caused as above described.
SUMMARY OF THE INVENTION
Therefore the first problem to be solved by the present invention is to provide means for setting the block-size suitably in each address space in order to deal with the difference of the scope within the spatial locality in the address space, and to suppress the generating of the unnecessary replacing.
Further as the execution of the program advances, the referring frequency of the processor to the same address space varies.
As an example in this case, some data are frequently referred at some time, but are accessed rarely (or more frequently) as the execution of the program advances.
Therefore the second problem to be solved by the invention is, in order to deal with the difference of the scope within the spatial locality attendant on the execution of the program, in addition to the dealing with the first problem, to provide means for updating the block-size in each address space during the execution of the program thereby to suppress the generating of the unnecessary replacing.
In order to solve the first problem, in a cache memory system according to the present invention, a cache memory is provided for temporarily storing the data stored in a main memory, and a processor accesses the cache memory. The cache memory system is provided with a block-size information storing means for storing size of the data to be replaced between the cache memory and the main memory in every plural storage spaces of predetermined amount within the cache memory, and with means for replacing the data between the storage space in which a cache miss is occurred within the cache memory and the main memory, when the access of the processor to the storage space within the cache memory occurs a cache miss, at the block-size corresponding to the storage space in which the cache miss is occurred, among the size stored in the block-size information storing means.
In the cache memory system, access address outputted by the processor is provided with individual fields of tag address, index address, bank address and an offset within the bank, and the cache memory comprises at least two cache banks, and each cache bank as above described has a data array constituted by aggregate of elements storing the data in the word number assigned by the offset within the bank, a valid flag array constituted by aggregate of valid flags storing whether or not the data stored in the individual elements of the data array are valid, and a tag array storing the indi
Inoue Koji
Kai Koji
Murakami Kazuaki
Jordan and Hamburg LLP
Kim Matthew
Matsushita Electric - Industrial Co., Ltd.
Peugh B.
LandOfFree
Cache memory system with variable block-size mechanism does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Cache memory system with variable block-size mechanism, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Cache memory system with variable block-size mechanism will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2942579