WO2010089799A1 - キャッシュメモリシステム、コンピュータシステム、及びキャッシュメモリアクセス方法 - Google Patents
キャッシュメモリシステム、コンピュータシステム、及びキャッシュメモリアクセス方法 Download PDFInfo
- Publication number
- WO2010089799A1 WO2010089799A1 PCT/JP2009/000458 JP2009000458W WO2010089799A1 WO 2010089799 A1 WO2010089799 A1 WO 2010089799A1 JP 2009000458 W JP2009000458 W JP 2009000458W WO 2010089799 A1 WO2010089799 A1 WO 2010089799A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- bit string
- index
- tag
- cache memory
- continuous bit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
Definitions
- the present invention relates to a cache memory system, a computer system, and a cache memory access method.
- a technique has been proposed in which the address of the main storage device is divided into an upper address and a lower address, the lower address is used as an index, the upper address is used as a tag, and data on the cache memory is accessed using the index and the tag.
- the CPU When the CPU refers to the stored data by instructing the address, the CPU instructed one of the blocks as a plurality of divided storage areas of the cache memory together with the address, and the control unit was instructed.
- a cache memory system that generates a cache address from a block and an address has been proposed.
- Patent Document 1 Japanese Patent Laid-Open No. 10-83348
- Another object of the present invention is to provide a cache memory access method for accessing predetermined data by repeatedly using a predetermined storage area in the cache memory.
- the disclosed cache memory system stores the data stored corresponding to the main storage address of the main storage device corresponding to the cache address.
- the cache memory system includes an index / tag generation unit, a cache memory, and an access unit.
- the index tag generation unit based on the main memory address, includes a tag that includes a high-order continuous bit string and a low-order continuous bit string in the main memory address, and a high-order continuation that is at least a tag in the continuous bit string in the main memory address An index that is a continuous bit string sandwiched between the bit string and the lower continuous bit string is generated.
- the cache memory stores tags and data using an index as a cache address.
- the access unit accesses the data stored in the cache memory using the index.
- the disclosed computer system includes a main storage device, an index / tag generation unit, a cache memory, a control unit, and an access unit.
- the main storage device stores data corresponding to the main storage address.
- the index tag generation unit based on the main storage address, a tag including an upper consecutive bit string and a lower consecutive bit string in the main storage address, and an upper order which is at least the tag in the continuous bit string in the main storage address An index that is a continuous bit string sandwiched between the continuous bit string and the lower continuous bit string is generated.
- the cache memory stores tags and data using an index as a cache address.
- the control unit instructs the main memory address and refers to the data stored in the cache memory.
- the access unit accesses the data stored in the cache memory using an index that is a part of the main storage address based on the main storage address instructed by the control unit.
- the disclosed cache memory access method is a cache memory system access method for storing data stored in correspondence with the main storage address of the main storage device in correspondence with the cache address.
- the cache memory system includes, based on the main storage address, a tag including an upper continuous bit string and a lower continuous bit string in the main storage address, and at least one of the continuous bit strings in the main storage address.
- An index that is a continuous bit string sandwiched between an upper continuous bit string that is a tag and a lower continuous bit string is generated, the index is used as a cache address, the tag and data are stored in the cache memory, and the index is To access data stored in the cache memory.
- predetermined data can be repeatedly stored and accessed in a predetermined storage area in the cache memory. Thereby, it is possible to repeatedly store a plurality of pieces of data having an attribute to be expelled from the cache memory with priority over other data in a specific storage area of the cache memory.
- FIG. 9 is a diagram for explaining the cache memory access technology examined by the present inventors.
- a processor included in the information processing apparatus designates an address of the main storage device (hereinafter referred to as a main storage address) and accesses data in the main storage device.
- the access processing unit that executes access to the cache memory copies and stores a part of the data in the main storage device.
- the lower bit string excluding the offset is used as the index 500 in the main storage device address.
- the lower bit string of the main storage device address that is, the index 500 is “01000101”.
- the upper bit string of the main storage device address is used as the tag 501.
- the access processing unit accesses the index 500 of the main memory address designated by the processor in the cache memory 10 and stores it in the storage area of the cache memory 10 accessed with the designated tag 501. It is determined whether or not the tag is matched. When the tag 501 matches the tag stored in the accessed storage area, the access processing unit determines that the access target data is stored in the cache memory 10, and the access target data is stored in the cache memory 10. Read and send to processor 2.
- the lower bit string of the main memory device address is used as the index 500 and the upper bit string of the main memory device address is used as the tag 501 except for the offset. Therefore, as indicated by an arrow in FIG. 10, the data storage area in the main storage device is associated with the storage area in the cache memory regardless of the data attribute. As a result, depending on the cache memory access technique of FIG. 9, data having the same attribute cannot be repeatedly stored and accessed in the same storage area corresponding to the attribute in the cache memory.
- a plurality of data having a large capacity and having an attribute that should be expelled from the cache memory preferentially over other data after being read once, such as streaming data, are stored in a specific memory of the cache memory. Storing and expelling in the area cannot be repeated.
- FIG. 1 is a diagram illustrating an example of a configuration of a computer system including a cache memory system according to the present embodiment.
- FIG. 2 is a diagram illustrating an example of index and tag generation in the cache memory system of FIG.
- the cache memory system 1 includes a cache memory system 1, a processor 2, and a main storage device 3.
- the cache memory system 1 is provided between the processor 2 and the main storage device 3.
- the cache memory system 1 includes an index / tag generator 11 and a cache 12.
- the cache 12 includes a cache memory 121 and an access unit 122.
- the processor 2 instructs the main storage address of the main storage device 3 and stores the data in the main storage device 3. Further, the processor 2 instructs the main storage address of the main storage device 3 and refers to the data stored in the main storage device 3. Prior to referring to the main storage device 3, the processor 2 refers to data stored in the cache memory 121. Accordingly, the processor 2 is a control unit that instructs the cache memory system 1 of the main storage address of the main storage device 3 in which data to be accessed is stored.
- the processor 2 is, for example, a CPU (Central Processing Unit).
- the cache memory system 1 stores the data stored corresponding to the main storage address of the main storage device 3 corresponding to the address of the cache memory 121 (hereinafter referred to as the cache address). As will be described later, the cache memory system 1 generates an index and a tag based on the main memory address designated by the processor 2. An index generated by the cache memory system 1 is used as a cache address. The cache memory system 1 stores the generated tag and data in the storage area of the cache memory 121 corresponding to the generated index. The cache memory system 1 accesses the cache memory 121 using an index obtained from the main storage address instructed by the processor 2.
- the cache memory 121 is a memory or a data storage unit that can be accessed at a higher speed than the main storage device 3.
- the cache memory 121 has a tag storage area (tag array) for storing tags and a data storage area (data array) for storing data. That is, the cache memory 121 stores tags and data in correspondence with the index that is the cache address, using the index as the cache address.
- the access unit 122 accesses the cache memory 121 using the index generated by the index / tag generation unit 11. That is, the access unit 122 accesses data stored in the cache memory 121 using an index that is a cache address. Specifically, the access unit 122 searches the storage area of the cache memory 121 corresponding to the index, and confirms whether the generated tag matches the tag stored in the tag array. Thereby, the access unit 122 determines whether or not the access target data exists in the searched storage area.
- the access unit 122 When the access target data exists in the searched storage area, the access unit 122 reads the access target data from the searched storage area and transmits it to the processor 2. When there is no data to be accessed in the searched storage area, the access unit 122 reads the data to be accessed from the main storage device 3 and writes it in the cache memory 121. Thereafter, the access unit 122 reads the data written in the cache memory 121 and transmits it to the processor 2.
- the index / tag generator 11 generates an index and a tag based on the main memory address instructed by the processor 2.
- the index is an address of a storage area or block (cache line) on the cache memory 121.
- the index is used for the access unit 122 to search the storage area.
- the tag is used to determine whether or not access target data exists in the storage area searched by the access unit 122.
- the remaining part excluding the offset is used as a tag and an index.
- a bit string used as a tag and a bit string used as an index are determined in advance.
- the index is a bit string excluding a bit string that is a tag and a bit string that is an offset in the main memory address.
- the bit string is a plurality of consecutive bits in a main memory address including a plurality of bits such as 16 bits or 32 bits.
- the index tag generation unit 11 generates a tag including the upper continuous bit string and the lower continuous bit string in the main memory address.
- the index / tag generation unit 11 generates an index that is a continuous bit string sandwiched between at least a high-order continuous bit string that is a tag and a low-order continuous bit string in the main memory address.
- the index / tag generating unit 11 uses a continuous bit string including the most significant bit in the main memory address as a higher-order continuous bit string that is a tag.
- the index tag generation unit 11 uses a continuous bit string including the least significant bit excluding the offset in the main memory address as the low-order continuous bit string that is a tag. Thereby, the index / tag generator 11 generates a tag.
- the index tag generation unit 11 generates, as a tag 100, a combination of an upper continuous bit string and a lower continuous bit string in the main storage address A instructed by the processor 2, for example. To do. Further, as shown in FIG. 2, the index tag generation unit 11 generates, as an index 101, a continuous bit string “0100” sandwiched between an upper continuous bit string and a lower continuous bit string constituting the tag 100. .
- the example of FIG. 2 is an example in which the main memory address instructed by the processor 2 is divided into three continuous bit strings except for the offset, and a tag and an index are generated.
- the example of FIG. 2 is an example in which one continuous bit string in the middle is used as an index among three consecutive bit strings, and two consecutive bit strings at both ends are used as tags.
- the part excluding the offset and the tag is used as an index.
- the main memory address may be divided into three equal parts or not.
- the processor 2 uses the value of the continuous bit string sandwiched between the upper continuous bit string and the lower continuous bit string, which is a tag, to be used as an index, as the attribute of the data stored in the main storage device 3. In accordance with this, it is predetermined. Data having the same attribute includes a continuous bit string to be indexed with the same value.
- the index / tag generation unit 11 can generate an index according to the attribute of the data stored in the main storage device 3. Further, the main storage device 3 can store data having a certain attribute in a storage area corresponding to an index corresponding to the attribute. Thus, the data storage area in the main storage device 3 is associated with the storage area in the cache memory 121 according to the attribute of the data.
- the streaming data has a large capacity, and once read from the cache memory, it is not read again. Therefore, the streaming data is data having an attribute that should be expelled from the cache memory with priority over other data. Therefore, if the next streaming data can be stored in the storage area after the streaming data is expelled from the cache memory preferentially, the use efficiency of the cache memory 121 is good.
- the processor 2 predetermines the value of the continuous bit string of the main storage address as an index for each piece of streaming data that is the same content. Thereby, each of the streaming data which is the same content can be provided with the same index, that is, a cache address. As a result, it is possible to repeatedly store a plurality of data to be expelled from the cache memory with priority over other data in a specific storage area.
- streaming data that is the same content can be repeatedly stored and expelled in a specific storage area, and other data can be stored in another area of the cache memory 121.
- the cache memory 121 having a small data capacity can be used effectively.
- a program for processing streaming data operating on the processor 2 predetermines a value of a continuous bit string as an index, for example, for the same content. Furthermore, the programmer who creates the program predetermines the value of the continuous bit string as an index, for example, for the same content.
- FIG. 3 is a diagram illustrating an example of another generation of an index and a tag in the cache memory system of the present embodiment.
- the tag array is displayed as “tag” and the data array is displayed as “data”.
- the index tag generation unit 11 includes a continuous bit string sandwiched between an upper continuous bit string that is a tag and a lower continuous bit string, and a continuous bit string that is lower than a lower continuous bit string that is a tag. An index is generated by using.
- the index tag generation unit 11 generates the tag 102 by combining the bit string 1 and the bit string 2 in FIG. 3 in the main storage address A instructed by the processor 2. In addition to this, the index tag generator 11 combines a continuous bit string “0100” sandwiched between the bit string 1 and the bit string 2 and a continuous bit string “0101” lower than the bit string 2. “01000101” is generated as an index.
- the lower consecutive bit string does not include the offset of the main memory address.
- the continuous bit string “0100” surrounded by a thick ellipse corresponds to the data attribute indicated by the main memory address A.
- the access unit 122 included in the cache 12 accesses the cache memory 121 using the generated index and tag. Therefore, the data corresponding to the index whose upper consecutive bit string is “0100” is written to the continuous storage area B in the cache memory 121 shown in FIG. That is, data having the same attribute as the data indicated by the main memory address A is written to the same continuous storage area B in the cache memory 121. Further, data corresponding to an address whose lower consecutive bit string is “0101” is written to the same storage area in the continuous storage area B.
- the example of FIG. 3 is an example in which the main memory address instructed from the processor 2 is divided into four continuous bit strings excluding the offset, and a tag and an index are generated.
- four consecutive bit strings are alternately used as tags or indexes, and a continuous bit string including the most significant bit of the main memory address is used as a tag, and the least significant bit except for the offset of the main memory address.
- a continuous bit string including bits is used as an index.
- the main memory address the part excluding the offset and the tag is used as an index. Note that the main memory address may be divided into four equal parts or not.
- FIG. 4 shows the correspondence between the storage area of the data having the attribute on the main storage device and the storage area of the cache memory in which the data is stored when the tag and the index are generated as shown in FIG.
- the first array data a [0] ... a [127] and the second array data a [128] ... a [255] are data having the same attribute.
- An attribute common to the first array data and the second array data is, for example, attribute A.
- the third array data b [0]... B [127] and the fourth array data b [128]... B [255] are data having the same attribute.
- An attribute common to the third array data and the fourth array data is, for example, attribute B.
- the main storage address of the first array data and the main storage address of the second array data in the main storage device 3 include consecutive bit strings that are equal to each other. These mutually equal consecutive bit strings are bit strings corresponding to the attribute A.
- the continuous bit string “0100” is equal to the main memory address of the first array data and the main memory address of the second array data. Therefore, as shown in FIG. 4, the first array data and the second array data are written in the same continuous storage area C in the cache memory 121.
- the attributes of the third array data and the fourth array data are different from those of the first array data and the second array data. Therefore, as shown in FIG. 4, the third array data and the fourth array data are written in the continuous storage area D that is a storage area different from the continuous storage area C in the cache memory 121.
- the access unit 122 writes the first array data to the cache memory 121, and then the processor 2 uses the first array data.
- the access unit 122 evicts the first array data from the continuous storage area C of the cache memory 121, for example, and the second array data is transferred to the continuous storage area C. Write to and use. Therefore, according to the cache memory system 1 of the present embodiment, data having the same attribute can be accessed by repeatedly using the same storage area corresponding to the attribute in the cache memory 121.
- FIG. 5 is a diagram for explaining an example of another correspondence between the storage area of the data having the attribute on the main storage device and the storage area of the cache memory in which the data is stored in the present embodiment.
- the tag generated by the index / tag generation unit 11 includes at least a part of the index.
- the index tag generation unit 11 generates an index 200 by combining the bit string 3 and the bit string 4 in the bit string represented by the main storage address of the main storage device.
- the index / tag generating unit 11 generates a tag 201 by combining the bit string 3 and a plurality of bit strings 5 and 6 sandwiching the bit string 3. Therefore, the tag in the case of FIG. 5 includes at least a part of the index. This eliminates the need to combine discontinuous bit strings such as the bit string 5 and the bit string 6 shown in FIG.
- FIG. 6 is a diagram for explaining an example of still another correspondence between the storage area of data having attributes on the main storage device and the storage area of the cache memory in which the data is stored in the present embodiment.
- the index tag generation unit 11 generates a tag by using a continuous bit string including the most significant bit in the main memory address as an upper consecutive bit string that is a tag, and removes an offset in the main memory address.
- An index is generated by using a continuous bit string including the least significant bit. Further, the index / tag generation unit 11 divides the main memory address into five or more (odd number) continuous bit strings excluding the offset, and generates a tag and an index.
- the index tag generation unit 11 hierarchizes the attributes of the data stored in the main storage device 3, and generates an index according to the attributes of the data having a hierarchical structure.
- the attributes of the lower hierarchy of the attribute C are the attributes C1 and C2
- the attributes of the lower hierarchy of the attribute C2 are the attributes C21 and C22.
- the index tag generation unit 11 has a higher-order continuous bit string (“1101”) and a middle-order continuous bit string (“0100”) separated from each other by predetermined bits. And a lower continuous bit string (“0101”) are generated as an index. Further, the index / tag generating unit 11 generates a tag by combining the continuous bit strings 7, 8, 9, and 10.
- the upper consecutive bit string “1101” shown in FIG. 6 (A) corresponds to attribute C. Therefore, the data of attribute C is written to the continuous storage area P in the cache memory 121 shown in FIG.
- the position of the middle consecutive bit string “0100” and the position of the lower consecutive bit string “0101” shown in FIG. 6A are separated across the bit string 9.
- the data of the attribute C21 is written to the storage area P21 in the cache memory 121, and the data of the attribute C22 is continuous. It is written in the storage area P22.
- the index / tag generation unit 11 generates an index so that data having the attributes as described above is written in the cache memory 121 as follows. That is, the attribute C data is written in the continuous storage area P, the attributes C1 and C2 that are lower layers of the attribute C are written in the continuous storage areas P1 and P2, respectively, and the attributes C21 and C2 that are lower layers of the attribute C2 are stored. The data of C22 is written in the continuous storage areas P21 and P22, respectively. In other words, the index / tag generation unit 11 generates an index according to the attribute of data having a hierarchical structure. Thereby, the data on the main storage device 3 can be associated with the storage area of the cache memory 121 according to the hierarchical attribute of the data.
- the example of FIG. 6 is an example in which the main memory address instructed from the processor 2 is divided into a plurality (odd number) of continuous bit strings excluding the offset, and a tag and an index are generated. is there.
- both an odd number of consecutive bit strings are alternately used as tags or indexes, and both a continuous bit string including the most significant bit of the main memory address and a consecutive bit string including the least significant bit excluding the offset are used.
- the part excluding the offset and the tag is used as an index.
- the main memory address may or may not be equally divided.
- the main memory address may be divided into an even number of continuous bit strings excluding the offset, and the tag and the index may be generated.
- an even number of consecutive bit strings are alternately used as a tag or index, and a continuous bit string including the most significant bit of the main memory address is used as a tag, and a sequence including the least significant bit excluding the offset of the main memory address.
- a bit string is used as an index.
- FIG. 7 is a diagram showing an example of the cache access processing flow of the present embodiment.
- the index tag generation unit 11 included in the cache memory system 1 receives from the processor 2 an instruction of a main storage address of data (access target data) requested by the processor 2 (step S1).
- the index / tag generator 11 generates an index and a tag based on the main memory address received from the processor 2 (step S2).
- the index / tag generating unit 11 is a continuous bit string corresponding to the attribute of the data indicated by the designated main storage address, and is at least between the upper continuous bit string and the lower continuous bit string, which are tags. A continuous bit string sandwiched between is generated as an index.
- the access unit 122 included in the cache 12 determines whether the data to be accessed is on the cache memory 121 using the index and the tag generated in step S2 (step S3).
- step S3 the access unit 122 searches the storage area of the cache memory 121 corresponding to the index generated in step S2, and whether or not the tag generated in step S2 matches the tag stored in the tag array. Check out. As a result, the access unit 122 determines whether there is data to be accessed in the searched storage area, that is, whether the data to be accessed is on the cache memory 121. If the tag generated in step S2 matches the tag stored in the tag array, the access unit 122 determines that the data to be accessed is on the cache memory 121. If the tag generated in step S2 and the tag stored in the tag array do not match, the access unit 122 determines that the data to be accessed is not on the cache memory 121.
- the access unit 122 When the access target data is on the cache memory 121 (S3 YES), the access unit 122 reads the access target data from the searched storage area of the cache memory 121 and transmits it to the processor 2 (step S4).
- the access unit 122 When there is no data to be accessed in the cache memory 121 (S3 NO), the access unit 122 reads the data to be accessed from the main storage device 3 and writes it in the cache memory 121 (step S5).
- FIG. 8 is a diagram for explaining improvement in usage efficiency in the cache memory system of the present embodiment.
- the array data c [0], c [1], c [2], ..., c [9] is the array data A. Assume that the array data A has an attribute that the cycle of use by the processor 2 is slow, for example.
- the array data d [0], d [1], d [2],..., D [9] are array data B.
- the array data B has, for example, an attribute that the cycle of use by the processor 2 is fast.
- the array data d [10], d [11], d [12], ..., d [19] is the array data C. For example, the array data C has the same attribute as the array data B. Further, it is assumed that the processor 2 currently uses the array data A and the array data B.
- the cache memory system 1 writes array data A and array data B having different attributes into different continuous storage areas on the cache memory 121, respectively. Further, the cache memory system 1 writes array data B and array data C having the same attribute in the same continuous storage area on the cache memory 121.
- the cache memory system 1 can expel the array data B from the continuous storage area of the cache memory 1 preferentially over other data.
- the cache memory system 1 can write the array data C in place of the array data B in the continuous storage area after the array data B is evicted.
- the cache memory system 1 can prevent the array data A which is not used by the processor 2 from being ejected from the cache memory 121 by ejecting the array data B from the continuous storage area of the cache memory 121.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
インデックス・タグ生成部11は、主記憶アドレスに基づいて、主記憶アドレスにおける上位の連続ビット列と下位の連続ビット列とを含むタグと、主記憶アドレスにおける連続ビット列の中の、少なくともタグである上位の連続ビット列と下位の連続ビット列との間に挟まれた連続ビット列であるインデックスとを、生成する。キャッシュメモリ121は、インデックスをキャッシュアドレスとして用いて、タグ及びデータを格納する。アクセス部122は、インデックスを用いて、キャッシュメモリ121に格納されたデータにアクセスする。
Description
本発明は、キャッシュメモリシステム、コンピュータシステム、及びキャッシュメモリアクセス方法に関する。
主記憶装置のアドレスを上位アドレスと下位アドレスとに分け、下位アドレスをインデックスとし、上位アドレスをタグとし、インデックス及びタグを用いてキャッシュメモリ上のデータにアクセスする技術が提案されている。
なお、CPUがアドレスを指示することにより記憶されたデータを参照するときに、CPUがキャッシュメモリの分割された複数の記憶領域であるブロックの一つをアドレスと共に指示し、制御部が指示されたブロックとアドレスとからキャッシュアドレスを生成するキャッシュメモリシステムが提案されている。
キャッシュメモリシステムに関連する技術は、例えば特許文献1に開示されている。
特開平10-83348号公報
キャッシュメモリシステムにおいては、ある特定のデータを、キャッシュメモリにおけるある特定の記憶領域に繰り返し格納し、アクセスすることができない。換言すれば、キャッシュメモリから他のデータよりも優先的に追い出すべき複数のデータを、ある特定の記憶領域に格納して追い出すことを、繰り返すことができない。
本発明は、所定のデータをキャッシュメモリにおける所定の記憶領域に格納するキャッシュメモリシステムの提供を目的とする。
また、本発明は、所定のデータをキャッシュメモリにおける所定の記憶領域を繰り返し用いてそのデータにアクセスするコンピュータシステムの提供を目的とする。
また、本発明は、所定のデータをキャッシュメモリにおける所定の記憶領域を繰り返し用いてそのデータにアクセスするコンピュータシステムの提供を目的とする。
また、本発明は、所定のデータをキャッシュメモリにおける所定の記憶領域を繰り返し用いてそのデータにアクセスするキャッシュメモリアクセス方法の提供を目的とする。
開示されるキャッシュメモリシステムは、主記憶装置の主記憶アドレスに対応して格納されたデータを、キャッシュアドレスに対応して格納する。キャッシュメモリシステムは、インデックス・タグ生成部と、キャッシュメモリと、アクセス部とを備える。インデックス・タグ生成部は、主記憶アドレスに基づいて、主記憶アドレスにおける上位の連続ビット列と下位の連続ビット列とを含むタグと、主記憶アドレスにおける連続ビット列の中の、少なくともタグである上位の連続ビット列と下位の連続ビット列との間に挟まれた連続ビット列であるインデックスとを、生成する。キャッシュメモリは、インデックスをキャッシュアドレスとして用いて、タグ及びデータを格納する。アクセス部は、インデックスを用いて、キャッシュメモリに格納されたデータにアクセスする。
開示されるコンピュータシステムは、主記憶装置と、インデックス・タグ生成部と、キャッシュメモリと、制御部と、アクセス部とを備える。主記憶装置は、主記憶アドレスに対応してデータを格納する。インデックス・タグ生成部は、主記憶アドレスに基づいて、主記憶アドレスにおける上位の連続ビット列と下位の連続ビット列とを含むタグと、主記憶アドレスにおける連続ビット列の中の、少なくとも前記タグである上位の連続ビット列と下位の連続ビット列との間に挟まれた連続ビット列であるインデックスとを、生成する。キャッシュメモリは、インデックスをキャッシュアドレスとして用いて、タグ及びデータを格納する。制御部は、主記憶アドレスを指示して、キャッシュメモリに格納されたデータを参照する。アクセス部は、制御部から指示された主記憶アドレスに基づいて、前記主記憶アドレスの一部であるインデックスを用いて、キャッシュメモリに格納されたデータにアクセスする。
開示されるキャッシュメモリアクセス方法は、主記憶装置の主記憶アドレスに対応して格納されたデータを、キャッシュアドレスに対応して格納するキャッシュメモリシステムのアクセス方法である。キャッシュメモリシステムのアクセス方法において、キャッシュメモリシステムは、主記憶アドレスに基づいて、主記憶アドレスにおける上位の連続ビット列と下位の連続ビット列とを含むタグと、主記憶アドレスにおける連続ビット列の中の、少なくともタグである上位の連続ビット列と下位の連続ビット列との間に挟まれた連続ビット列であるインデックスとを、生成し、インデックスをキャッシュアドレスとして用いて、タグ及びデータをキャッシュメモリに格納し、インデックスを用いて、キャッシュメモリに格納されたデータにアクセスする。
開示したキャッシュメモリシステム、コンピュータシステム、及びキャッシュメモリアクセス方法によれば、所定のデータを、キャッシュメモリにおける所定の記憶領域に繰り返し格納し、アクセスすることができる。これにより、キャッシュメモリから他のデータよりも優先的に追い出すべき属性を有する複数のデータを、キャッシュメモリのある特定の記憶領域に格納して追い出すことを、繰り返すことができる。
1 キャッシュメモリシステム
2 プロセッサ
3 主記憶装置
11 インデックス・タグ生成部
12 キャッシュ
121 キャッシュメモリ
122 アクセス部
2 プロセッサ
3 主記憶装置
11 インデックス・タグ生成部
12 キャッシュ
121 キャッシュメモリ
122 アクセス部
図9は、本発明者が検討したキャッシュメモリのアクセス技術を説明する図である。情報処理装置が備えるプロセッサは、主記憶装置のアドレス(以下、主記憶アドレスと言う)を指定して、主記憶装置のデータへアクセスする。一方、キャッシュメモリのアクセスを実行するアクセス処理部は、主記憶装置のデータの一部をコピーして格納する。この時、主記憶装置アドレスにおいて、オフセットを除く下位ビット列が、インデックス500として用いられる。図9において、主記憶装置アドレスの下位ビット列即ちインデックス500は「01000101」である。また、主記憶装置アドレスの上位ビット列が、タグ501として用いられる。
アクセス処理部は、図9に矢印で示すように、キャッシュメモリ10において、プロセッサから指示された主記憶アドレスのインデックス500にアクセスし、指示されたタグ501とアクセスしたキャッシュメモリ10の記憶領域に格納されたタグとが一致するか否かを判断する。アクセス処理部は、タグ501とアクセスした記憶領域に格納されたタグとが一致する場合、アクセス対象のデータがキャッシュメモリ10上に記憶されていると判断し、アクセス対象のデータをキャッシュメモリ10から読み出して、プロセッサ2に送信する。
図9において、オフセットを除いて、主記憶装置アドレスの下位ビット列がインデックス500、主記憶装置アドレスの上位ビット列がタグ501として用いられる。従って、図10に矢印で示すように、主記憶装置におけるデータの記憶領域は、そのデータの属性とは無関係に又は独立に、キャッシュメモリにおける記憶領域と対応付けられる。この結果、図9のキャッシュメモリのアクセス技術によっては、同一の属性を有するデータを、キャッシュメモリにおける属性に対応する同一の記憶領域に繰り返し格納し、アクセスすることができない。
従って、例えば、ストリーミングデータのように、大容量であって、かつ、一旦読み出した後キャッシュメモリから他のデータよりも優先的に追い出すべき属性を有する複数のデータを、キャッシュメモリのある特定の記憶領域に格納して追い出すことを、繰り返すことができない。
図1は、本実施形態のキャッシュメモリシステムを備えるコンピュータシステムの構成の一例を示す図である。図2は、図1のキャッシュメモリシステムにおけるインデックス及びタグの生成の一例を説明する図である。
図1に示すコンピュータシステムは、キャッシュメモリシステム1と、プロセッサ2と、主記憶装置3とを備える。キャッシュメモリシステム1は、プロセッサ2と主記憶装置3との間に設けられる。キャッシュメモリシステム1は、インデックス・タグ生成部11と、キャッシュ12とを備える。キャッシュ12は、キャッシュメモリ121と、アクセス部122とを備える。
プロセッサ2は、主記憶装置3の主記憶アドレスを指示して、主記憶装置3にデータを格納する。また、プロセッサ2は、主記憶装置3の主記憶アドレスを指示して、主記憶装置3に格納されたデータを参照する。この主記憶装置3の参照に先立って、プロセッサ2は、キャッシュメモリ121に格納されたデータを参照する。従って、プロセッサ2は、キャッシュメモリシステム1に対して、アクセス対象のデータが記憶されている主記憶装置3の主記憶アドレスを指示する制御部である。プロセッサ2は、例えばCPU(Central Processing Unit:中央演算処理装置)等である。
キャッシュメモリシステム1は、主記憶装置3の主記憶アドレスに対応して格納されたデータを、キャッシュメモリ121のアドレス(以下、キャッシュアドレスと言う)に対応して格納する。キャッシュメモリシステム1は、プロセッサ2が指示した主記憶アドレスに基づいて、後述するように、インデックスとタグとを生成する。キャッシュメモリシステム1により生成されたインデックスがキャッシュアドレスとして用いられる。キャッシュメモリシステム1は、生成したインデックスに対応するキャッシュメモリ121の格納領域に、生成したタグと、データとを格納する。キャッシュメモリシステム1は、プロセッサ2が指示した主記憶アドレスから得られるインデックスを用いて、キャッシュメモリ121にアクセスする。
キャッシュメモリ121は、主記憶装置3よりも高速でアクセスが可能なメモリ又はデータ記憶部である。キャッシュメモリ121は、タグを格納するタグ格納領域(タグアレイ)と、データを格納するデータ格納領域(データアレイ)とを有する。即ち、キャッシュメモリ121は、インデックスをキャッシュアドレスとして用いて、キャッシュアドレスであるインデックスに対応して、タグ及びデータを格納する。
アクセス部122は、インデックス・タグ生成部11によって生成されたインデックスを用いてキャッシュメモリ121にアクセスする。即ち、アクセス部122は、キャッシュアドレスであるインデックスを用いて、キャッシュメモリ121に格納されたデータにアクセスする。具体的には、アクセス部122は、インデックスに対応するキャッシュメモリ121の記憶領域を探索し、生成されたタグとタグアレイに格納されたタグとが一致するかを確認する。これにより、アクセス部122は、探索された記憶領域にアクセス対象のデータが存在するか否かを判断する。
アクセス部122は、探索された記憶領域にアクセス対象のデータが存在する場合、アクセス対象のデータを探索された記憶領域から読み出して、プロセッサ2に送信する。アクセス部122は、探索された記憶領域にアクセス対象のデータがない場合、アクセス対象のデータを主記憶装置3から読み出して、キャッシュメモリ121に書き込む。この後、アクセス部122は、キャッシュメモリ121に書き込んだデータを読み出して、プロセッサ2に送信する。
インデックス・タグ生成部11は、プロセッサ2が指示した主記憶アドレスに基づいて、インデックスとタグとを生成する。インデックスは、キャッシュメモリ121上の記憶領域又はブロック(キャッシュライン)のアドレスである。インデックスは、アクセス部122が記憶領域を探索するために用いられる。タグは、アクセス部122が探索した記憶領域にアクセス対象のデータが存在するか否かを判断するために用いられる。
主記憶アドレスにおいて、オフセットを除いた残りの部分が、タグ及びインデックスとして用いられる。オフセットを除いた主記憶アドレスにおいて、タグとして用いられるビット列、及び、インデックスとして用いられるビット列は、予め定められる。インデックスは、主記憶アドレスにおいて、タグであるビット列及びオフセットであるビット列を除いたビット列である。ビット列は、16ビット又は32ビット等の複数のビットを含む主記憶アドレスにおいて、連続した複数のビットである。
インデックス・タグ生成部11は、主記憶アドレスにおける上位の連続ビット列と下位の連続ビット列とを含むタグを、生成する。また、インデックス・タグ生成部11は、主記憶アドレスにおける、少なくともタグである上位の連続ビット列と下位の連続ビット列との間に挟まれた連続ビット列であるインデックスを、生成する。
具体的には、インデックス・タグ生成部11は、タグである上位の連続ビット列として、主記憶アドレスにおける最上位ビットを含む連続するビット列を用いる。また、インデックス・タグ生成部11は、タグである下位の連続ビット列として、主記憶アドレスにおけるオフセットを除く最下位ビットを含む連続するビット列を用いる。これにより、インデックス・タグ生成部11は、タグを生成する。
例えば、インデックス・タグ生成部11は、図2に示すように、例えば、プロセッサ2が指示した主記憶アドレスAの中で、上位の連続ビット列と下位の連続ビット列との組み合わせを、タグ100として生成する。また、インデックス・タグ生成部11は、図2に示すように、タグ100を構成する上位の連続ビット列と下位の連続ビット列との間に挟まれた連続ビット列「0100」を、インデックス101として生成する。
以上に説明したように、図2の例は、プロセッサ2から指示された主記憶アドレスを、オフセットを除いて、3個の連続ビット列に分割し、タグ及びインデックスを生成する例である。また、図2の例は、3個の連続ビット列の中で、真ん中の1個の連続ビット列がインデックスとして用いられ、両端の2個の連続ビット列がタグとして用いられる例である。主記憶アドレスにおいて、オフセット及びタグを除いた部分が、インデックスとして用いられる。なお、主記憶アドレスは、3等分しても、3等分しなくても良い。
ここで、プロセッサ2は、インデックスとされるべき、タグである上位の連続ビット列と下位の連続ビット列との間に挟まれた連続ビット列の値を、主記憶装置3に格納されたデータの属性に応じて、予め定める。同一の属性を有するデータは、同一の値のインデックスとされるべき連続ビット列を含む。
従って、インデックス・タグ生成部11は、主記憶装置3に格納されたデータの属性に応じて、インデックスを生成することができる。また、主記憶装置3は、ある属性を有するデータを、当該属性に応じたインデックスに対応する記憶領域に記憶することができる。これにより、主記憶装置3におけるデータの記憶領域は、そのデータの属性に応じて、キャッシュメモリ121における記憶領域と対応付けられる。
例えば、ストリーミングデータは、大容量であって、かつ、キャッシュメモリから一旦読み出したら、その後、再度読み出されることは無いと考えて良い。従って、ストリーミングデータは、キャッシュメモリから他のデータよりも優先的に追い出すべき属性を有するデータである。従って、ストリーミングデータをキャッシュメモリから優先的に追い出した後の格納領域に、次のストリーミングデータを格納することができれば、キャッシュメモリ121の使用効率が良い。
そこで、プロセッサ2は、同一のコンテンツであるストリーミングデータの各々について、インデックスとされる主記憶アドレスの連続ビット列の値を、予め定める。これにより、同一のコンテンツであるストリーミングデータの各々は、同一のインデックス即ちキャッシュアドレスを備えることができる。この結果、キャッシュメモリから他のデータよりも優先的に追い出すべき複数のデータを、ある特定の記憶領域に格納して追い出すことを、繰り返すことができる。
これにより、例えば同一のコンテンツであるストリーミングデータは、ある特定の記憶領域に格納して追い出すことを繰り返し、他のデータをキャッシュメモリ121の他の領域に格納することができる。この結果、データ容量の少ないキャッシュメモリ121を有効に活用することができる。
なお、実際には、プロセッサ2上で動作するストリーミングデータを処理するプログラムが、インデックスとされる連続ビット列の値を、例えば同一のコンテンツについて、予め定める。更に言えば、当該プログラムを作成するプログラマが、インデックスとされる連続ビット列の値を、例えば同一のコンテンツについて、予め定める。
図3は、本実施形態のキャッシュメモリシステムにおけるインデックスとタグとの他の生成の一例を説明する図である。なお、図3のキャッシュメモリ121において、タグアレイを「タグ」と表示し、データアレイを「データ」と表示している。
図3において、インデックス・タグ生成部11は、タグである上位の連続ビット列と下位の連続ビット列との間に挟まれた連続ビット列と、タグである下位の連続ビット列よりも下位の連続するビット列とを用いることにより、インデックスを生成する。
例えば、インデックス・タグ生成部11は、プロセッサ2が指示した主記憶アドレスAの中で、図3のビット列1とビット列2とを組み合わせて、タグ102を生成する。これに加えて、インデックス・タグ生成部11は、ビット列1とビット列2との間に挟まれた上位の連続ビット列「0100」と、ビット列2より下位の連続ビット列「0101」とを組み合せた連続ビット列「01000101」を、インデックスとして生成する。
なお、前述したように、下位の連続ビット列は、主記憶アドレスのオフセットを含まない。太い楕円で囲まれた連続ビット列「0100」は、主記憶アドレスAが指示するデータの属性に対応する。
キャッシュ12が備えるアクセス部122は、生成されたインデックスとタグとを用いてキャッシュメモリ121にアクセスする。従って、上位の連続ビット列が「0100」であるインデックスに対応するデータは、図3に示すキャッシュメモリ121内の連続する記憶領域Bに書き込まれる。即ち、主記憶アドレスAが示すデータの属性と同一の属性を有するデータは、キャッシュメモリ121内の同じ連続記憶領域Bに書き込まれる。また、下位の連続ビット列が「0101」であるアドレスに対応するデータは、連続記憶領域B内の同一の記憶領域に書き込まれる。
以上に説明したように、図3の例は、プロセッサ2から指示された主記憶アドレスを、オフセットを除いて、4個の連続ビット列に分割し、タグ及びインデックスを生成する例である。また、図3の例は、4個の連続ビット列を交互にタグ又はインデックスとして用い、かつ、主記憶アドレスの最上位ビットを含む連続ビット列がタグとして用いられ、主記憶アドレスのオフセットを除く最下位ビットを含む連続ビット列がインデックスとして用いられる例である。主記憶アドレスにおいて、オフセット及びタグを除いた部分が、インデックスとして用いられる。なお、主記憶アドレスは、4等分しても、4等分しなくても良い。
図4は、タグ及びインデックスが図3に示すように生成される場合における、主記憶装置上の属性を有するデータの記憶領域とそのデータが記憶されるキャッシュメモリの記憶領域との対応を示す。
例えば、第1の配列データa[0]・・・a[127]と、第2の配列データa[128]・・・a[255]とが、同一の属性を有するデータである。第1の配列データと第2の配列データとに共通の属性を、例えば属性Aとする。また、例えば、第3の配列データb[0]・・・b[127]と、第4の配列データb[128]・・・b[255]とが、同一の属性を有するデータである。第3の配列データと第4の配列データとに共通の属性を、例えば属性Bとする。
主記憶装置3における第1の配列データの主記憶アドレスと第2の配列データの主記憶アドレスとは、相互に等しい連続ビット列を含む。この相互に等しい連続ビット列は、属性Aに対応するビット列である。
例えば、図3において太い楕円で囲んで示すように、連続ビット列「0100」は、第1の配列データの主記憶アドレスと第2の配列データの主記憶アドレスとにおいて、相互に等しい。従って、図4に示すように、第1の配列データと第2の配列データとは、キャッシュメモリ121内の同一の連続記憶領域Cに書き込まれる。
また、第3の配列データと第4の配列データとは、それらの属性が第1の配列データ、第2の配列データの属性と異なる。従って、図4に示すように、第3の配列データと第4の配列データとは、キャッシュメモリ121内の、連続記憶領域Cとは異なる記憶領域である連続記憶領域Dに書き込まれる。
例えば、アクセス部122が第1の配列データをキャッシュメモリ121に書き込み、この後、プロセッサ2が第1の配列データを使用しているものとする。プロセッサ2による第1の配列データの使用が終了すると、アクセス部122は、例えば、キャッシュメモリ121の連続記憶領域Cから第1の配列データを追い出して、第2の配列データをこの連続記憶領域Cに書き込んで使用する。従って、本実施形態のキャッシュメモリシステム1によれば、同一の属性を有するデータについてはキャッシュメモリ121におけるその属性に対応する同一の記憶領域を繰り返し用いて、そのデータにアクセスすることができる。
図5は、本実施形態における、主記憶装置上の属性を有するデータの記憶領域とそのデータが記憶されるキャッシュメモリの記憶領域との他の対応の一例を説明する図である。
図5において、インデックス・タグ生成部11が生成するタグは、インデックスの少なくとも一部を含む。
図5に示すように、インデックス・タグ生成部11は、主記憶装置の主記憶アドレスが表すビット列の中で、ビット列3とビット列4とを組み合わせてインデックス200を生成する。これと共に、インデックス・タグ生成部11は、ビット列3と、このビット列3を挟む複数のビット列5、6とを組み合わせて、タグ201を生成する。従って、図5の場合のタグは、インデックスの少なくとも一部を含む。これにより、タグの生成の際に、例えば図5に示すビット列5とビット列6のように、不連続なビット列を組み合わせる必要がなくなる。
図6は、本実施形態における、主記憶装置上の属性を有するデータの記憶領域とそのデータが記憶されるキャッシュメモリの記憶領域との更に他の対応の一例を説明する図である。
図6において、インデックス・タグ生成部11は、タグである上位の連続ビット列として、主記憶アドレスにおける最上位ビットを含む連続するビット列を用いることにより、タグを生成し、主記憶アドレスにおけるオフセットを除く最下位ビットを含む連続するビット列を用いることにより、インデックスを生成する。また、インデックス・タグ生成部11は、主記憶アドレスを、オフセットを除いて、5個以上の複数個(奇数個)の連続ビット列に分割し、タグ及びインデックスを生成する。
これにより、インデックス・タグ生成部11は、主記憶装置3に記憶されるデータの属性を階層化して、階層構造を有するデータの属性に応じてインデックスを生成する。なお、以下の説明において、例えば、属性Cの下位階層の属性が属性C1及びC2であり、属性C2の下位階層の属性が属性C21とC22であるものとする。
例えば、図6(A)に示すように、インデックス・タグ生成部11は、互いに予め決められたビット分離れた、上位の連続ビット列(「1101」)と中位の連続ビット列(「0100」)と下位の連続ビット列(「0101」)とを組み合わせた連続ビット列を、インデックスとして生成する。また、インデックス・タグ生成部11は、連続ビット列7、8、9、10を組み合わせてタグを生成する。
例えば、図6(A)に示す上位の連続ビット列「1101」は、属性Cに対応する。従って、属性Cのデータは、図6(B)に示すキャッシュメモリ121内の連続記憶領域Pに書き込まれる。
また、図6(A)に示す上位の連続ビット列「1101」の位置と中位の連続ビット列「0100」の位置とがビット列8を挟んで離れている。これにより、図6(B)に示すように、属性Cの下位階層の属性を有するデータの中で、属性C1のデータがキャッシュメモリ121内の連続記憶領域P1に書き込まれ、属性C2のデータが連続記憶領域P2に書き込まれる。
更に、図6(A)に示す中位の連続ビット列「0100」の位置と下位の連続ビット列「0101」の位置とがビット列9を跨いで離れている。これにより、図6(B)に示すように、属性C2の下位階層の属性を有するデータの中で、属性C21のデータがキャッシュメモリ121内の記憶領域P21に書き込まれ、属性C22のデータが連続記憶領域P22に書き込まれる。
インデックス・タグ生成部11は、以上のような属性を有するデータが、以下のようにキャッシュメモリ121に書き込まれるように、インデックスを生成する。即ち、属性Cのデータが連続記憶領域Pに書き込まれ、属性Cの下位階層である属性C1、C2のデータがそれぞれ連続記憶領域P1、P2に書き込まれ、属性C2の下位階層である属性C21、C22のデータがそれぞれ連続記憶領域P21、P22に書き込まれる。換言すれば、インデックス・タグ生成部11は、階層構造を有するデータの属性に応じてインデックスを生成する。これにより、主記憶装置3上のデータを、そのデータの階層分けされた属性に応じたキャッシュメモリ121の記憶領域と対応付けることができる。
以上に説明したように、図6の例は、プロセッサ2から指示された主記憶アドレスを、オフセットを除いて、複数個(奇数個)の連続ビット列に分割し、タグ及びインデックスを生成する例である。また、図6の例は、奇数個の連続ビット列を交互にタグ又はインデックスとして用い、かつ、主記憶アドレスの最上位ビットを含む連続ビット列と、オフセットを除く最下位ビットを含む連続ビット列との双方がタグとして用いられる例である。主記憶アドレスにおいて、オフセット及びタグを除いた部分が、インデックスとして用いられる。主記憶アドレスは、等分しても、等分しなくても良い。
なお、主記憶アドレスを、オフセットを除いて、偶数個の連続ビット列に分割し、タグ及びインデックスを生成するようにしても良い。この場合、偶数個の連続ビット列が交互にタグ又はインデックスとして用いられ、かつ、主記憶アドレスの最上位ビットを含む連続ビット列がタグとして用いられ、主記憶アドレスのオフセットを除く最下位ビットを含む連続ビット列がインデックスとして用いられる。
図7は、本実施形態のキャッシュアクセス処理フローの例を示す図である。
キャッシュメモリシステム1が備えるインデックス・タグ生成部11は、プロセッサ2から、プロセッサ2がアクセスを要求するデータ(アクセス対象のデータ)の主記憶アドレスの指示を受信する(ステップS1)。
インデックス・タグ生成部11は、プロセッサ2から受信した主記憶アドレスに基づいて、インデックスとタグとを生成する(ステップS2)。ステップS2において、インデックス・タグ生成部11は、例えば、指示された主記憶アドレスが示すデータの属性に対応する連続ビット列であって、少なくともタグである上位の連続ビット列と下位の連続ビット列との間に挟まれた連続ビット列を、インデックスとして生成する。
次に、キャッシュ12が備えるアクセス部122は、ステップS2において生成されたインデックスとタグとを用いて、アクセス対象のデータがキャッシュメモリ121上にあるか否かを判断する(ステップS3)。
ステップS3において、アクセス部122は、ステップS2において生成されたインデックスに対応するキャッシュメモリ121の記憶領域を探索し、ステップS2において生成されたタグとタグアレイに格納されたタグとが一致するか否かを調べる。これにより、アクセス部122は、探索された記憶領域にアクセス対象のデータが存在するか、即ち、アクセス対象のデータがキャッシュメモリ121上にあるか否かを判断する。アクセス部122は、ステップS2において生成されたタグとタグアレイに格納されたタグとが一致する場合、アクセス対象のデータがキャッシュメモリ121上にあると判断する。アクセス部122は、ステップS2において生成されたタグとタグアレイに格納されたタグとが一致しない場合、アクセス対象のデータがキャッシュメモリ121上にないと判断する。
アクセス部122は、アクセス対象のデータがキャッシュメモリ121上にある場合(S3 YES)、そのアクセス対象のデータをキャッシュメモリ121の探索された記憶領域から読み出してプロセッサ2に送信する(ステップS4)。
アクセス部122は、アクセス対象のデータがキャッシュメモリ121上にない場合(S3 NO)、そのアクセス対象のデータを主記憶装置3から読み出して、キャッシュメモリ121に書き込む(ステップS5)。
図8は、本実施形態のキャッシュメモリシステムにおける使用効率の向上について説明する図である。
配列データc[0]、c[1]、c[2]、・・・、c[9]は、配列データAである。配列データAは、例えば、プロセッサ2による使用のサイクルが遅いという属性を有するものとする。配列データd[0]、d[1]、d[2]、・・・、d[9]は、配列データBである。配列データBは、例えば、プロセッサ2による使用のサイクルが早いという属性を有するものとする。配列データd[10]、d[11]、d[12]、・・・、d[19]は、配列データCである。配列データCは、例えば、配列データBと同一の属性を有するものとする。また、プロセッサ2は、現在、配列データAと配列データBとを使用しているものとする。
キャッシュメモリシステム1は、異なる属性を有する配列データAと配列データBとを、各々、キャッシュメモリ121上の異なる連続記憶領域に書き込む。また、キャッシュメモリシステム1は、同一の属性を有する配列データBと配列データCとを、キャッシュメモリ121上の同じ連続記憶領域に書き込む。
従って、キャッシュメモリシステム1は、例えばプロセッサ2が配列データBを使用し終わった後に、他のデータよりも優先的に配列データBをキャッシュメモリ1の連続記憶領域から追い出すことができる。その上で、キャッシュメモリシステム1は、配列データBに代えて、配列データCを、配列データBを追い出した後の連続記憶領域に書き込むことができる。更に、キャッシュメモリシステム1は、配列データBをキャッシュメモリ121の連続記憶領域から追い出すことにより、プロセッサ2が未使用である配列データAがキャッシュメモリ121から追い出されないようにすることができる。
Claims (10)
- 主記憶装置の主記憶アドレスに対応して格納されたデータを、キャッシュアドレスに対応して格納するキャッシュメモリシステムであって、
前記主記憶アドレスに基づいて、前記主記憶アドレスにおける上位の連続ビット列と下位の連続ビット列とを含むタグと、前記主記憶アドレスにおける連続ビット列の中の、少なくとも前記タグである上位の連続ビット列と下位の連続ビット列との間に挟まれた連続ビット列であるインデックスとを、生成するインデックス・タグ生成部と、
前記インデックスを前記キャッシュアドレスとして用いて、前記タグ及び前記データを格納するキャッシュメモリと、
前記インデックスを用いて、前記キャッシュメモリに格納されたデータにアクセスするアクセス部とを備える
ことを特徴とするキャッシュメモリシステム。 - 前記インデックス・タグ生成部は、前記主記憶装置に格納された前記データの属性に応じて、前記インデックスを生成する
ことを特徴とする請求項1記載のキャッシュメモリシステム。 - 前記インデックスとされるべき前記タグである上位の連続ビット列と下位の連続ビット列との間に挟まれた連続ビット列の値を、前記主記憶装置に格納された前記データの属性に応じて、予め定められる
ことを特徴とする請求項2記載のキャッシュメモリシステム。 - 前記インデックス・タグ生成部は、前記タグである上位の連続ビット列として、前記主記憶アドレスにおける最上位ビットを含む連続するビット列を用い、前記タグである下位の連続ビット列として、前記主記憶アドレスにおけるオフセットを除く最下位ビットを含む連続するビット列を用いることにより、前記タグを生成する
ことを特徴とする請求項1記載のキャッシュメモリシステム。 - 前記インデックス・タグ生成部は、前記タグである上位の連続ビット列と下位の連続ビット列との間に挟まれた連続ビット列と、前記タグである下位の連続ビット列よりも下位の連続するビット列とを用いることにより、前記インデックスを生成する
ことを特徴とする請求項1記載のキャッシュメモリシステム。 - 前記インデックス・タグ生成部は、前記タグである上位の連続ビット列として、前記主記憶アドレスにおける最上位ビットを含む連続するビット列を用いることにより、前記タグを生成し、前記主記憶アドレスにおけるオフセットを除く最下位ビットを含む連続するビット列を用いることにより、前記インデックスを生成する
ことを特徴とする請求項1記載のキャッシュメモリシステム。 - 前記インデックス・タグ生成部は、前記インデックスの少なくとも一部を含む前記タグを生成する
ことを特徴とする請求項1記載のキャッシュメモリシステム。 - 主記憶アドレスに対応してデータを格納する主記憶装置と、
前記主記憶アドレスに基づいて、前記主記憶アドレスにおける上位の連続ビット列と下位の連続ビット列とを含むタグと、前記主記憶アドレスにおける連続ビット列の中の、少なくとも前記タグである上位の連続ビット列と下位の連続ビット列との間に挟まれた連続ビット列であるインデックスとを、生成するインデックス・タグ生成部と、
前記インデックスをキャッシュアドレスとして用いて、前記タグ及び前記データを格納するキャッシュメモリと、
前記主記憶アドレスを指示して、前記キャッシュメモリに格納されたデータを参照する制御部と、
前記制御部から指示された前記主記憶アドレスに基づいて、前記主記憶アドレスの一部である前記インデックスを用いて、前記キャッシュメモリに格納されたデータにアクセスするアクセス部とを備える
ことを特徴とするコンピュータシステム。 - 前記制御部は、前記インデックスとされるべき前記タグである上位の連続ビット列と下位の連続ビット列との間に挟まれた連続ビット列の値を、前記主記憶装置に格納された前記データの属性に応じて、予め定め、
前記インデックス・タグ生成部は、前記主記憶装置に格納された前記データの属性に応じて、前記インデックスを生成する
ことを特徴とする請求項8記載のコンピュータシステム。 - 主記憶装置の主記憶アドレスに対応して格納されたデータを、キャッシュアドレスに対応して格納するキャッシュメモリシステムのアクセス方法であって、
前記主記憶アドレスに基づいて、前記主記憶アドレスにおける上位の連続ビット列と下位の連続ビット列とを含むタグと、前記主記憶アドレスにおける連続ビット列の中の、少なくとも前記タグである上位の連続ビット列と下位の連続ビット列との間に挟まれた連続ビット列であるインデックスとを、生成し、
前記インデックスを前記キャッシュアドレスとして用いて、前記タグ及び前記データを前記キャッシュメモリに格納し、
前記インデックスを用いて、前記キャッシュメモリに格納されたデータにアクセスする
ことを特徴とするキャッシュメモリアクセス方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2009/000458 WO2010089799A1 (ja) | 2009-02-06 | 2009-02-06 | キャッシュメモリシステム、コンピュータシステム、及びキャッシュメモリアクセス方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2009/000458 WO2010089799A1 (ja) | 2009-02-06 | 2009-02-06 | キャッシュメモリシステム、コンピュータシステム、及びキャッシュメモリアクセス方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2010089799A1 true WO2010089799A1 (ja) | 2010-08-12 |
Family
ID=42541727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2009/000458 WO2010089799A1 (ja) | 2009-02-06 | 2009-02-06 | キャッシュメモリシステム、コンピュータシステム、及びキャッシュメモリアクセス方法 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2010089799A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018179044A1 (ja) * | 2017-03-27 | 2018-10-04 | 三菱電機株式会社 | キャッシュメモリおよびその制御方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04209049A (ja) * | 1990-11-30 | 1992-07-30 | Fujitsu Ltd | キャッシュメモリアドレスマッピング方式 |
JP2000339220A (ja) * | 1999-05-27 | 2000-12-08 | Nippon Telegr & Teleph Corp <Ntt> | キャッシュブロック予約方法およびキャッシュブロック予約機能付きコンピュータシステム |
JP2001282617A (ja) * | 2000-03-27 | 2001-10-12 | Internatl Business Mach Corp <Ibm> | 共有されたキャッシュを動的に区分するための方法及びシステム |
JP2008033688A (ja) * | 2006-07-28 | 2008-02-14 | Fujitsu Ltd | キャッシュメモリ制御方法、及び装置 |
-
2009
- 2009-02-06 WO PCT/JP2009/000458 patent/WO2010089799A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04209049A (ja) * | 1990-11-30 | 1992-07-30 | Fujitsu Ltd | キャッシュメモリアドレスマッピング方式 |
JP2000339220A (ja) * | 1999-05-27 | 2000-12-08 | Nippon Telegr & Teleph Corp <Ntt> | キャッシュブロック予約方法およびキャッシュブロック予約機能付きコンピュータシステム |
JP2001282617A (ja) * | 2000-03-27 | 2001-10-12 | Internatl Business Mach Corp <Ibm> | 共有されたキャッシュを動的に区分するための方法及びシステム |
JP2008033688A (ja) * | 2006-07-28 | 2008-02-14 | Fujitsu Ltd | キャッシュメモリ制御方法、及び装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018179044A1 (ja) * | 2017-03-27 | 2018-10-04 | 三菱電機株式会社 | キャッシュメモリおよびその制御方法 |
US11216371B2 (en) | 2017-03-27 | 2022-01-04 | Mitsubishi Electric Corporation | Cache memory and method for controlling the same |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107066393B (zh) | 提高地址映射表中映射信息密度的方法 | |
KR101397264B1 (ko) | 키값 스토어를 포함하는 메모리 시스템 | |
JP6362316B2 (ja) | バッファ・プールをメモリ常駐型データのための常在インメモリ・ストレージとして用いた、ハイブリッド・テーブル実装のための方法、システム、およびコンピュータ・プログラム製品 | |
KR101999590B1 (ko) | 패턴 인식 프로세싱 시스템에서의 전력 관리를 위한 방법들 및 시스템들 | |
JP5622155B2 (ja) | キャッシュメモリおよびその制御方法 | |
KR101921373B1 (ko) | 상태 기계 엔진들에 대한 결과들 생성 | |
JP4920378B2 (ja) | 情報処理装置およびデータ検索方法 | |
CN106716334A (zh) | 文件系统卷内的高效数据移动 | |
JP5575997B1 (ja) | 半導体装置及び半導体装置に対するエントリアドレス書き込み/読み出し方法 | |
JP2004157593A (ja) | 多ポート統合キャッシュ | |
JP2016515266A (ja) | ステートマシンエンジンによって受信されるデータを提供するための方法及び装置 | |
US11061788B2 (en) | Storage management method, electronic device, and computer program product | |
JP5499825B2 (ja) | データベース管理方法、データベースシステム、プログラム及びデータベースのデータ構造 | |
CN108319625B (zh) | 文件合并方法和装置 | |
CN107305586A (zh) | 索引生成方法、索引生成装置及搜索方法 | |
JP2006039772A (ja) | メモリカード、不揮発性半導体メモリ、及び半導体メモリの制御方法 | |
JP3929872B2 (ja) | キャッシュメモリ、プロセッサ及びキャッシュ制御方法 | |
KR102355374B1 (ko) | 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법 | |
CN104778100A (zh) | 一种安全备份数据的方法 | |
JP4751037B2 (ja) | メモリカード | |
WO2010089799A1 (ja) | キャッシュメモリシステム、コンピュータシステム、及びキャッシュメモリアクセス方法 | |
CN107506139A (zh) | 一种面向相变存储器的写请求优化装置 | |
JP2016033818A (ja) | データ処理方法、装置、およびシステム | |
JP5208117B2 (ja) | 表形式データを操作するマルチコア対応データ処理方法、マルチコア型処理装置、及び、プログラム | |
CN115129233B (zh) | 数据处理装置、方法及相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 09839580 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 09839580 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: JP |