WO2015125971A1 - キャッシュ存在情報を有するtlb - Google Patents

キャッシュ存在情報を有するtlb Download PDF

Info

Publication number
WO2015125971A1
WO2015125971A1 PCT/JP2015/055245 JP2015055245W WO2015125971A1 WO 2015125971 A1 WO2015125971 A1 WO 2015125971A1 JP 2015055245 W JP2015055245 W JP 2015055245W WO 2015125971 A1 WO2015125971 A1 WO 2015125971A1
Authority
WO
WIPO (PCT)
Prior art keywords
cache
cache memory
data
information
presence information
Prior art date
Application number
PCT/JP2015/055245
Other languages
English (en)
French (fr)
Inventor
武田 進
藤田 忍
Original Assignee
株式会社 東芝
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社 東芝 filed Critical 株式会社 東芝
Publication of WO2015125971A1 publication Critical patent/WO2015125971A1/ja
Priority to US15/243,196 priority Critical patent/US10025719B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/27Using a specific cache architecture
    • G06F2212/271Non-uniform cache access [NUCA] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/507Control mechanisms for virtual memory, cache or TLB using speculative control

Definitions

  • Embodiments described herein relate generally to a cache memory system and a processor system.
  • Memory access is a bottleneck in processor core performance and power consumption, as called the memory wall problem.
  • processors equipped with a large-capacity cache memory in the vicinity of the main memory are becoming widespread against the background of progress in memory technology.
  • the tag memory that stores meta information of cache-retained data, that is, address information also increases in capacity. Along with this, the latency of the tag memory also increases. In some cases, the latency of the tag memory of the large-capacity cache memory is approximately the same as the latency of the cache memory in the upper hierarchy. In such a case, the influence of the latency of the tag memory on the performance of the entire processor system cannot be ignored.
  • the problem to be solved by the present invention is to provide a cache memory system and a processor system capable of improving access efficiency.
  • the cache memory having one or more layers including a data cache unit that stores data and a tag unit that stores an address of each data stored in the data cache unit; Cache indicating whether page entry information including virtual address-to-physical address translation information issued by the processor and data corresponding to each translated physical address are stored in a specific cache memory of one or more layers
  • a cache memory system includes presence information and a translation lookaside buffer for storing the presence information.
  • FIG. 1 is a block diagram showing a schematic configuration of a processor system 1 according to an embodiment.
  • FIG. 6 is a diagram showing access priorities of the cache memories 4 to 6 and the main memory 10 according to the first embodiment.
  • the figure which shows an example of the internal structure of TLB4. 5 is a flowchart showing processing operations of the processor system 1 according to the present embodiment.
  • the flowchart which shows an example of the update process of the cache presence information 20 in the case of storing data in the L4 cache 9.
  • the flowchart which shows an example of the update process of the cache presence information 20 in the case of expelling data from the L4 cache 9.
  • the block diagram which shows schematic structure of the processor system 1 which utilizes the cache presence information 20 for power supply control.
  • FIG. 1 is a block diagram showing a schematic configuration of a processor system 1 according to an embodiment.
  • the processor system 1 of FIG. 1 includes a processor (CPU) 2, a memory management unit (MMU) 3, a translation lookaside buffer (TLB) 4, a page table 5, A primary cache memory (L1 cache) 6, a secondary cache memory (L2 cache) 7, a tertiary cache memory (L3 cache) 8, and a quaternary cache memory (L4 cache) 9 are provided.
  • CPU processor
  • MMU memory management unit
  • TLB translation lookaside buffer
  • L4 cache quaternary cache memory
  • L1 to L4 caches 6 to 9 data stored in the main memory 10 or at least a part of data to be stored in the main memory 10 is stored.
  • Each of these caches 6 to 9 has a tag portion that holds address information that can specify data held in the cache.
  • tag unit mounting modes such as a type that holds a dedicated memory area and a type that holds a part of a memory area that holds data. In this embodiment, all of these can be combined.
  • the processor 2, the MMU 3, the L1 cache 6, the L2 cache 7, the L3 cache 8, and the L4 cache 9 are integrated on, for example, one chip.
  • the processor 2, the MMU 3, the L1 cache 6, the L2 cache 7 and the L3 cache 8 are integrated on one chip, and the L4 cache 9 is integrated on another chip.
  • a system in which the chips are directly joined may be used.
  • the MMU 3 and the L1 to L4 caches 6 to 9 are referred to as a cache system.
  • the L1 to L4 caches 6 to 9 are composed of semiconductor memories that can be accessed faster than the main memory 10. There are various variations in the data placement policy for each cache. For example, there is an Inclusion method. In this case, all of the data stored in the L1 cache 6 is stored in the L2 cache 7. The L3 cache 8 stores all of the data stored in the L2 cache 7. All data stored in the L3 cache 8 is stored in the L4 cache 9.
  • the Inclusion method may be used in all layers.
  • the L1 cache 6 and the L2 cache 7 may be an exclusive method
  • the L2 cache 6 and the L3 cache 8 may be an inclusion method.
  • the system shown in the present embodiment can be combined with the various data arrangement policies described above.
  • the write method at the time of cache write hit may be write-through or write-back.
  • the write method at the time of a cache write miss may be write allocate or no write allocate.
  • the memory capacity of the L2 cache 7 is more than the memory capacity of the L1 cache 6.
  • the memory capacity of the L3 cache 8 is greater than or equal to the memory capacity of the L2 cache 7.
  • the memory capacity of the L4 cache 9 is greater than or equal to the memory capacity of the L3 cache 8.
  • a high-level cache memory having a high degree of integration and a low leakage power that tends to be proportional to the capacity.
  • a nonvolatile memory such as an MRAM (MagnetoresistiveesisRandom Access Memory) can be considered.
  • the page table 5 is a table that stores a mapping between a virtual address space and a physical address space managed by the OS.
  • a virtual address is used as an index, and has an area for storing a physical address corresponding to each virtual address.
  • An area corresponding to one virtual address in the page table 5 is called a page entry. This is generally arranged on the main memory space.
  • TLB 4 is a memory area for caching a part of page entries in the page table 5. Generally, it is implemented by hardware and can be accessed at higher speed than a page table implemented by software.
  • the MMU 3 manages the TLB 4 and the page table 5 and provides functions such as address conversion (virtual memory management) for converting a virtual address issued by the processor 2 into a physical address, a memory protection function, a cache control function, and a bus arbitration function. .
  • An upper layer cache such as the L1 cache 6 may be accessed with a virtual address, but generally a lower layer memory below the L2 cache 7 is accessed with a physical address converted by the MMU 3.
  • the MMU 3 updates the virtual address / physical address conversion table at least one of data placement (data writing) to the main memory 10 and data eviction.
  • there are various mounting forms such as mounting all of the MMU 3 by hardware, mounting all by software, or mounting them by hybrids thereof. The system shown in the present embodiment can be combined with all of these mounting forms.
  • the TLB 4 is provided separately from the MMU 3
  • the TLB 4 is usually provided inside the MMU 3.
  • the MMU 3 and the TLB 4 are handled separately, but the case where the TLB 4 is built in the MMU 3 is also included.
  • the main memory 10 Since the main memory 10 has a larger memory capacity than each of the L1 to L4 caches 6 to 9, the main memory 10 is often composed of one or more chips separate from the chip on which the processor 2 and the like are mounted.
  • the memory cells constituting the main memory 10 are, for example, DRAM (Dynamic RAM) cells or MRAM cells. Note that the technology such as TSV (Through Silicon Via) or the like may be used to mount the processor 2 and the like on one chip.
  • FIG. 2 is a diagram showing access priorities of the cache memories 4 to 6 and the main memory 10 in the first embodiment.
  • the physical address corresponding to the virtual address issued by the processor 2 is first sent to the L1 cache 6 with the highest priority.
  • target data data corresponding to the physical address
  • the memory capacity of the L1 cache 6 is, for example, about several tens of kilobytes.
  • the corresponding physical address is sent to the L2 cache 7. If there is target data in the L2 cache 7, this data is stored in the L1 cache 6 and also sent to the processor 2.
  • the memory capacity of the L2 cache 7 is about several hundred kilobytes to several megabytes, for example.
  • the corresponding physical address is sent to the L3 cache 8. If there is target data in the L3 cache 8, this data is stored in the L2 cache 7 and the L1 cache 6 and also sent to the processor 2.
  • the memory capacity of the L3 cache 8 is, for example, about several megabytes to several tens of megabytes.
  • the corresponding physical address is sent to the L4 cache 9. If there is target data in the L4 cache 9, this data is stored in the L1 to L3 cache 8 and also sent to the processor 2.
  • the memory capacity of the L4 cache 9 is, for example, 100 Mbytes or more.
  • Such a data transfer method of the cache memories 6 to 9 is an example, and the present embodiment can be combined with other various data transfer methods.
  • data can be combined with a data transfer method in which data is not stored in the L2 cache 7 or L3 cache 8 but stored only in the L1 cache 6.
  • the main memory 10 stores page unit data managed by the MMU 3. In general, page unit data managed by the MMU 3 is arranged in the main memory 10 and the auxiliary storage device, but in the present embodiment, all data is arranged in the main memory 10 for simplification. . In this embodiment, when there is target data in the main memory 10, this data is stored in the L1 to L4 caches 6 to 9 and also sent to the processor 2.
  • the memory capacity of the main memory 10 is about several gigabytes, for example.
  • the L1 to L4 caches 6 to 9 are hierarchized, and the larger the degree (lower hierarchy) cache memory, the larger the memory capacity.
  • all data stored in a cache memory with a low degree (upper hierarchy) is stored in the cache memory with a high degree.
  • FIG. 3 is a diagram showing an example of the internal structure of the TLB 4.
  • the TLB 4 manages various types of information on a page basis.
  • the page is, for example, 4 kbytes of data.
  • FIG. 3 shows an example of page entry information 11 for one page.
  • the page entry information 11 of FIG. 3 includes address translation information 12, a dirty bit 13, an access bit 14, a page cache disable bit 15, a page write through bit 16, a user supervisor bit 17, It has a read / write bit 18 and a present bit 19, and additionally has cache presence information 20.
  • the arrangement order of various information in the page entry shows one example, and the present embodiment is not limited to this. Note that when this embodiment is applied to an existing processor (when cache presence information is added to an existing page table), the existing page entry is stored in a free area, and the existing page entry is expanded ( A method of increasing the bit width).
  • the page entries including the cache presence information are arranged only in the TLB 4, the page table 5 only, and arranged in both the TLB 4 and the page table 5.
  • the page table 5 When the cache presence information is arranged in both the TLB 4 and the page table 5, it is desirable that the page table 5 also has the page entry information 11 having the same internal structure.
  • the TLB 4 stores address conversion information related to the virtual address recently issued by the processor 2, whereas the page table 5 stores address conversion information related to the entire main memory 10. Even when the page entry information 11 for the virtual address does not exist in the TLB 4, the cache presence information 20 stored in the corresponding page entry information 11 can be acquired by referring to the page table 5. Further, when at least a part of the page entry information 11 in the TLB 4 is evicted (flushed), it is desirable to write back the page entry information 11 to be flushed and the corresponding cache presence information 20 to the page table 5. Thereby, the cache presence information 20 corresponding to the page entry information 11 that could not be stored in the TLB 4 can be stored in the page table 5.
  • a method of holding the cache presence information 20 in both the TLB 4 and the page table 5 is shown. Furthermore, it is assumed that the cache presence information 20 is added to an existing page entry. Further, it is assumed that there is a sufficient free area to which the cache presence information 20 is added in the existing page entry.
  • the address conversion information 12 is information for converting a virtual address issued by the processor 2 into a physical address. For example, a physical address corresponding to a logical address or a pointer to the hierarchical page table 5 corresponds to this.
  • the dirty bit 13 is set to 1 when writing to this page.
  • the access bit 14 is set to 1 when this page is accessed.
  • the page cache disable bit 15 is set to 1 when caching to this page is prohibited.
  • the page write through bit 16 is set to 0 when writing through and set to 1 when writing back. Note that write-through refers to writing data to both the cache memory and the main memory 10, and write-back refers to writing data first to the cache memory and then writing back to the main memory 10.
  • the user / supervisor bit 17 sets whether the corresponding page is used in the user mode or the supervisor mode.
  • the read / write bit 18 is set to 0 when only reading is performed, and is set to 1 when reading and writing.
  • the present bit 19 is set to 1 when this page exists in the main memory 10.
  • the cache presence information 20 of one cache line is represented by 1 bit, for example. This bit is set to 1 when data corresponding to the virtual address issued by the processor 2 is stored in a specific cache memory, for example, and is set to 0 when data is not stored.
  • the target cache may be a cache of any hierarchy.
  • L2 may be used, or cache presence information 20 corresponding to the L3 cache 8 may be provided.
  • the MMU 3 refers to the TLB 4, converts the virtual address issued by the processor 2 into a physical address, acquires the cache existence information 20, and determines whether data corresponding to the virtual address is stored in the L4 cache 9. Determine whether. If the MMU 3 finds that the data is not stored in the L4 cache 9, the main memory 10 is accessed without accessing the L4 cache 9 when the L3 cache 8 is missed.
  • FIG. 4 is a flowchart showing the processing operation of the processor system 1 according to this embodiment. This flowchart shows a processing procedure when there is a data read request from the processor 2.
  • the MMU 3 refers to the TLB 4 and converts the virtual address into a physical address, and acquires the cache presence information 20 of the L4 cache 9 (step S2).
  • the cache presence information 20 of the L4 cache 9 is acquired when the cache presence information 20 is acquired after the L3 cache 8 is missed. This is because the timing for determining whether or not to do so is delayed. Further, there is an advantage that the number of accesses to the TLB 4 and the page table 5 is reduced by accessing the cache existence information simultaneously with the conversion from the virtual address to the physical address.
  • the cache presence information 20 is not acquired at the time of conversion from a virtual address to a physical address, but is acquired at any timing before the L4 cache 9 is accessed. For example, when the L3 cache 8 misses, the cache presence information 20 may be acquired.
  • step S3 the L1 cache 6 is accessed using the physical address converted in step S2, and hit / miss determination is performed with reference to the tag memory of the L1 cache 6 (step S3).
  • step S4 If the L1 cache 6 is hit, the corresponding data is read from the L1 cache 6 and sent to the processor 2 (step S4). If there is a miss in the L1 cache 6, the L2 cache 7 is accessed using the physical address converted in step S2, and hit / miss determination is performed with reference to the tag memory of the L2 cache 7 (step S5).
  • step S6 If the L2 cache 7 is hit, the data corresponding to this physical address is read from the L2 cache 7, stored in the L1 cache 6, and sent to the processor 2 (step S6). If there is a miss in the L2 cache 7, the physical address converted in step S2 is used to access the L3 cache 8, and the hit / miss determination is performed with reference to the tag memory in the L3 cache 8 (step S7).
  • the data corresponding to this physical address is read from the L3 cache 8, stored in the L2 cache 7 and the L1 cache 6, and sent to the processor 2 (step S8).
  • step S9 whether or not to access the L4 cache 9 is determined based on the cache presence information 20. If it is determined in step S9 that there is a high possibility of hitting the L4 cache 9, the L4 cache 9 is accessed (step S10). In this case, processing similar to that for accessing the normal L4 cache 9 is performed. That is, the tag memory of the L4 cache 9 is accessed, hit / miss determination is performed, and if hit, the target data is read from the data cache unit of the L4 cache 9.
  • the main memory 10 is accessed without accessing the L4 cache 9 (step S11).
  • the main memory 10 can be accessed at high speed without causing a time lag from accessing the tag memory of the L4 cache 9 until a hit / miss determination result is obtained.
  • the MMU 3 When at least part of the data in the L4 cache 9 is updated, the MMU 3 also updates the cache existence information 20 for the cache line of the updated data.
  • the timing for updating the cache presence information 20 shown in FIG. 3 is the timing for storing data in the L4 cache 9 and the timing for expelling data from the L4 cache 9.
  • FIG. 5 is a flowchart showing an example of update processing of the cache presence information 20 when data is stored in the L4 cache 9.
  • the MMU 3 checks whether or not the cache missed address or the address of the data sent from the lower-level cache memory or the main memory 10 is in the page entry in the TLB 4 (step S21).
  • step S21 If step S21 is YES, the corresponding cache line bit in the cache presence information 20 in the TLB 4 is set to 1 (step S22).
  • step S21 is NO, the page table 5 is referred to, and the corresponding cache line bit in the cache presence information 20 in the page table 5 is set to 1 (step S23).
  • FIG. 6 is a flowchart showing an example of update processing of the cache presence information 20 when data is evicted from the L4 cache 9.
  • the MMU 3 checks whether a cache miss address or an address of data sent from the lower-level cache memory is in the page entry in the TLB 4 (step S31).
  • step S31 If step S31 is YES, the bit of the corresponding cache line in the cache presence information 20 in the TLB 4 is set to 0 (step S32).
  • step S31 is NO, the page table 5 is referred to, and the bit of the corresponding cache line in the cache presence information 20 in the page table 5 is set to 0 (step S33).
  • the update method of the cache presence information has been described, but there are various modifications to the update target and update policy.
  • the cache presence information is held in the TLB 4 and the page table 5
  • only the TLB 4 may update the cache presence information when the data held in the L4 cache 9 is changed (in such a case)
  • the page table 5 may be updated when data is evicted from the TLB 4).
  • the cache presence information is held in the TLB 4 if the data held in the L4 cache 9 is changed and there is no corresponding data in the TLB 4, the cache presence information need not be updated.
  • the TLB 4 is a one-level page entry cache.
  • the present embodiment is applicable even when the TLB 4 has a plurality of layers.
  • the simplest method of holding the cache is to hold it in all layers.
  • a method of arranging the cache presence information 20 only in a part of the hierarchy is also conceivable.
  • the cache presence information 20 is arranged only in the lowest level TLB 4.
  • the TLB 4 reference by the memory access from the CPU 2 and the TLB 4 reference for updating the cache presence information 20 due to the change of the arrangement data of the L4 cache 9 occur at the same timing.
  • the former reference responds to the request in the upper layer TLB 4 and the latter reference responds to the request in the lower layer TLB 4 to avoid an access collision.
  • more detailed information may be held. For example, all the addresses for each line may be held, or the memory bank ID in which the line is stored may be recorded in a storage area provided for each line.
  • the cache presence information 20 includes a bit string of 1 bit or more that summarizes information of all cache lines of a specific cache memory (for example, the L4 cache 9) included in one page for each page entry of TLB4. Also good.
  • An example is a method of summarizing information using a hash function.
  • Various hash functions can be considered. For example, a line that holds the number of lines existing in the L4 cache 9 among the lines in the page can be considered, and hashing such as ORing the line addresses existing in the L4 cache 9 can be considered.
  • information held in a page entry can be reduced by cooperating with other hardware modules.
  • information held in a page entry can be reduced by cooperating with other hardware modules.
  • only the number of data lines existing in the L4 cache 9 is recorded in the page entry.
  • the control policy is to access the L4 cache 9 when the number of data lines existing in the L4 cache 9 is zero or more, False positive occurs with a high probability.
  • a bit vector that can identify a line existing in a page is held as another hardware module in units of pages, and a page entry (TLB4 or page table 5) is referred to.
  • control such as referring to the hardware module can be considered. This makes it possible to determine the necessity of access to the L4 cache 9 with high accuracy while suppressing the number of bits necessary for the cache presence information 20 in the TLB 4 and the page table 5.
  • the number of cache memory layers is not limited to four layers.
  • the cache memory having the cache presence information 20 is not limited to the L4 cache 9, and the cache presence information 20 may be provided in each of the cache memories of any hierarchy of one or more hierarchies. In this case, identification information indicating which level of cache memory each cache presence information 20 corresponds to may be provided in the page entry information 11 of FIG. Further, the cache presence information 20 of the cache memory of two or more layers may be combined into one.
  • the cache presence information 20 indicating whether or not the data of the virtual address issued by the processor 2 is stored in a specific cache memory of one or more layers is stored in at least one of the TLB 4 and the page table 5. Therefore, before accessing the tag memory of this cache memory, it can be predicted whether or not there is data in the cache memory by the cache presence information 20. Therefore, although there is no target data in the cache memory, it is possible to access the main memory 10 faster than accessing the main memory 10 after accessing the tag memory and waiting for the result of the cache miss. It is also possible to reduce power overhead due to unnecessary access to the tag memory. That is, when it can be predicted by the cache presence information 20 that there is no target data in the cache memory, since the cache memory is not accessed, the performance / power overhead at the time of a cache miss can be reduced.
  • the cache presence information 20 in the present embodiment is more effective when provided in a large-capacity cache memory such as the L4 cache 9.
  • a large-capacity cache memory it takes time to access the tag memory, and if the main memory 10 is accessed after it is found that a cache miss has occurred, it takes extra time to access the main memory 10.
  • the cache presence information 20 it can be predicted whether or not there is target data in the cache memory before accessing the tag memory of the cache memory.
  • the tag memory can be accessed only when the cache memory is missed, and the main memory 10 can be accessed at high speed when a cache miss occurs, thereby improving the access efficiency.
  • the tag memory also has a large capacity, so that the access power is increased. This access power can be reduced by high-precision access.
  • the cache memory of this embodiment may be another nonvolatile memory (for example, a ReRAM (Resistance RAM) memory cell, a PRAM (Phase Change (RAM), FRAM (Ferroelectric RAM (registered trademark), NAND flash memory cell).
  • a volatile memory such as SRAM or DRAM may be used.
  • the control for determining hit / miss at the time of accessing a specific memory by the cache presence information 20 provided in at least one of the TLB 4 and the page table 5 and avoiding unnecessary access to the tag memory. was illustrated.
  • the cache presence information 20 can be used for other purposes.
  • the cache presence information 20 provided in at least one of the TLB 4 and the page table 5 can be used for power management of the cache memory, for example.
  • the power consumption of the L4 cache 9 may be cut off or the power consumption may be reduced by shifting to a low power consumption mode in which the power supply voltage is lowered.
  • the cache presence information 20 is used, and 1) the access to the L4 cache 9 is predicted (specified) by judging hit / miss to the L3 cache 8, and 2) the L4 cache 9 It is conceivable to determine hit / miss of. If it is possible to determine the hit / miss of the L3 cache 8 in 1), the state can be shifted from the low power consumption mode to the active mode prior to the access to the L4 cache 9, and the mode transition The overhead associated with can be hidden. Further, if the hit / miss in the L4 cache 9 can be determined, it is possible to shift to the active mode only when the L4 cache 9 is hit, and unnecessary mode transition can be suppressed.
  • FIG. 7 is a block diagram showing a schematic configuration of the processor system 1 that uses the cache presence information 20 for power control.
  • the processor system 1 of FIG. 7 is provided with cache controllers 21 to 24 in association with the cache memories 6 to 9 of the respective layers. These cache controllers 21 to 24 perform access control and power supply control of the corresponding cache memories 6 to 9 in accordance with instructions from the MMU 3. For example, based on the cache presence information 20, the MMU 3 determines whether to access the L4 cache 9 due to an L3 cache miss, and controls the power supplied to the L4 cache 9 depending on whether the L4 cache 9 is accessed. To do. Thereby, when the L4 cache 9 is not accessed, the L4 cache 9 can be operated in the low power consumption mode, and the power consumption can be reduced. Further, when a hit in the L4 cache 9 is expected, high-speed access is possible by shifting the L4 cache 9 to the active mode before actually starting the access.
  • the cache presence information 20 arranged in at least one of the TLB 4 and the page table 5 can be used, for example, for specifying a dead brine.
  • a deadline refers to a cache line that cannot be used in the future. For example, this is data used by a released process. Holding of a cache line that is not likely to be used causes a decrease in the utilization efficiency of the cache memory.
  • the page of the released process is specified by at least one of the TLB 4 and the page table 5, and the data in the corresponding page is included in the specific cache from the cache presence information 20 in the page entry. If so, a control for invalidating the data can be considered. As a result, by keeping the data that will not be used in the future, it is possible to prevent the case where data that may be used in the future is expelled, and it is possible to efficiently use the cache memory.
  • the processor system 1 in the case where the cache presence information 20 is used for dead block control can be realized by a block diagram similar to FIG. 7, for example.
  • One approach is to completely rewrite (flash) the TLB 4 when the processor 2 releases a process.
  • the MMU notifies the cache controller of each cache based on the cache presence information 20 stored in the TLB that all the data stored in the TLB 4 has been invalidated.
  • the cache memories 6 to 9 in each hierarchy invalidate the corresponding data in order.
  • the TLB 4 and the page table 5 store identification information that can identify each process, and the MMU 3 acquires identification information corresponding to the released process, and the cache controller 21 of each cache 6. Notify In response to this, the cache memories 6 to 9 in each hierarchy invalidate the data corresponding to the identification information based on the cache presence information 20 stored in the TLB.
  • the cache presence information 20 arranged in at least one of the TLB 4 and the page table 5 can be used for efficient access of, for example, NUCA (Non-uniform cache access).
  • NUCA refers to a cache system that divides a cache of the same hierarchy into several areas (banks) and accesses each area from a certain position (for example, CPU) with different latencies. This system is used particularly when a large-capacity cache is efficiently used. Large-capacity caches tend to have low latency, but using NUCA allows high-speed data access if there is data close to the access target.
  • a multi-core processor holds a bank (local bank) for each core and further holds a tag for each bank.
  • a bank local bank
  • tag for each bank.
  • bank ID information in which cache line data is held may be included in the cache presence information 20. If such a method is used, it is possible to specify a bank in which data exists when accessing at least one of the TLB 4 and the page table 5, so that access to a bank in which no data exists and overhead of coherency are omitted. Is possible. As a result, cache performance can be improved and power consumption can be reduced.
  • the bank ID information may be hashed information as in the first embodiment.
  • FIG. 8 is a block diagram showing a schematic configuration of a processor system that performs NUCA.
  • the L4 cache 9 is divided into four memory banks, and cache controllers 25 to 28 are provided separately for each memory bank.
  • Each of the cache controllers 25 to 28 notifies the MMU 3 of the data stored in each memory bank together with the memory bank ID information.
  • the MMU 3 registers the received information in the TLB 4 and the page table 5. As a result, the MMU 3 can quickly grasp which memory bank stores the data requested to be accessed by the processor 2 by referring to the TLB 4 or the page table 5, and accesses the corresponding memory bank at high speed. can do.

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

【課題】アクセス効率を向上可能なキャッシュメモリシステムおよびプロセッサシステムを提供する。 【解決手段】キャッシュメモリシステムは、データを格納するデータキャッシュ部と前記データキャッシュ部に格納された各データのアドレスを格納するタグ部とを有する1階層以上のキャッシュメモリと、プロセッサが発行する仮想アドレスから物理アドレスへのアドレス変換情報を含むページエントリ情報と、変換した物理アドレスのそれぞれに対応するデータが1階層以上の特定のキャッシュメモリに格納されているか否かを示すキャッシュ存在情報と、を格納するトランスレーション・ルックアサイド・バッファと、を備える。

Description

[規則37.2に基づきISAが決定した発明の名称] キャッシュ存在情報を有するTLB
 本発明の実施形態は、キャッシュメモリシステムおよびプロセッサシステムに関する。
 メモリウォール問題と称されるように、メモリアクセスはプロセッサコアの性能と消費電力のボトルネックとなっている。この課題を緩和するため、メモリ技術の進展を背景として、主記憶近傍に大容量のキャッシュメモリを搭載したプロセッサが普及しつつある。
 大容量のキャッシュメモリでは、保持するデータ量の増加に伴って、キャッシュ保持データのメタ情報すなわちアドレス情報を記憶するタグメモリも大容量化する。これに伴い、タグメモリのレイテンシも増大する。場合によっては、大容量キャッシュメモリのタグメモリのレイテンシが上位階層のキャッシュメモリのレイテンシと同程度のものとなってしまう。このような場合、タグメモリのレイテンシがプロセッサ・システム全体の性能に与える影響が無視できなくなる。
 本発明が解決しようとする課題は、アクセス効率を向上可能なキャッシュメモリシステムおよびプロセッサシステムを提供することにある。
 本実施形態によれば、データを格納するデータキャッシュ部と前記データキャッシュ部に格納された各データのアドレスを格納するタグ部とを有する1階層以上のキャッシュメモリと、
 プロセッサが発行する仮想アドレスから物理アドレスへのアドレス変換情報を含むページエントリ情報と、変換した物理アドレスのそれぞれに対応するデータが1階層以上の特定のキャッシュメモリに格納されているか否かを示すキャッシュ存在情報と、を格納するトランスレーション・ルックアサイド・バッファと、を備えるキャッシュメモリシステムが提供される。
一実施形態によるプロセッサシステム1の概略構成を示すブロック図。 第1の実施形態における各キャッシュメモリ4~6およびメインメモリ10のアクセス優先度を示す図。 TLB4の内部構造の一例を示す図。 本実施形態によるプロセッサシステム1の処理動作を示すフローチャート。 L4キャッシュ9にデータを格納する場合のキャッシュ存在情報20の更新処理の一例を示すフローチャート。 L4キャッシュ9からデータを追い出す場合のキャッシュ存在情報20の更新処理の一例を示すフローチャート。 キャッシュ存在情報20を電源制御に利用するプロセッサシステム1の概略構成を示すブロック図。 NUCAを行うプロセッサシステムの概略構成を示すブロック図。
 以下、図面を参照しながら、本発明の実施形態を説明する。図1は一実施形態によるプロセッサシステム1の概略構成を示すブロック図である。図1のプロセッサシステム1は、プロセッサ(CPU)2と、メモリ管理ユニット(MMU:Memory Management Unit)3と、トランスレーション・ルックアサイド・バッファ(TLB:Translation Lookaside Buffer)4と、ページテーブル5と、1次キャッシュメモリ(L1キャッシュ)6と、2次キャッシュメモリ(L2キャッシュ)7と、3次キャッシュメモリ(L3キャッシュ)8と、4次キャッシュメモリ(L4キャッシュ)9と、を備えている。
 L1~L4キャッシュ6~9には、メインメモリ10に格納されたデータ、またはメインメモリ10に格納されるべきデータの少なくとも一部が格納される。これらキャッシュ6~9は、キャッシュ内に保持するデータを特定可能なアドレス情報を保持するタグ部を有する。タグ部の実装形態には、専用のメモリ領域を保持するものや、データを保持するメモリ領域の一部に保持するものなど様々なものがあり、本実施形態ではそれら全てと組み合わせ可能である。
 メインメモリ10以外の、プロセッサ2、MMU3、L1キャッシュ6、L2キャッシュ7、L3キャッシュ8およびL4キャッシュ9は、例えば一つのチップに集積される。例えば、プロセッサ2、MMU3、L1キャッシュ6、L2キャッシュ7およびL3キャッシュ8が1つのチップに集積され、L4キャッシュ9は別のチップに集積され、それらがチップ同士の積層構造に基づき、金属配線によってチップ同士が直接接合されているシステムであってもよい。また、本実施形態では、MMU3、L1~L4キャッシュ6~9をキャッシュシステムと呼ぶ。
 L1~L4キャッシュ6~9は、メインメモリ10よりも高速アクセスが可能な半導体メモリで構成されている。それぞれのキャッシュへのデータ配置ポリシには様々なバリエーションが考えられる。例えば、Inclusion方式がある。この場合、L2キャッシュ7には、L1キャッシュ6に格納されたデータのすべてが格納される。L3キャッシュ8には、L2キャッシュ7に格納されたデータのすべてが格納される。L4キャッシュ9には、L3キャッシュ8に格納されたデータのすべてが格納される。
 その他、例えば、Exclusion方式がある。この方式では、例えばL1キャッシュ6とL2キャッシュ7に同じデータは配置されない。また、例えば、Inclusion方式とExclusion方式のハイブリッド方式がある。この方式では、例えばL1キャッシュ6とL2キャッシュ7で重複して保持されるデータもあるし、排他的に保持されるデータもある。
 これらの方式は、2つのキャッシュ間のデータ配置ポリシであり、複数階層のキャッシュ構成では様々な組み合わせが考えられる。例えば、全ての階層でInclusion方式であってもよい。例えば、L1キャッシュ6とL2キャッシュ7はExclusive方式で、L2キャッシュ6とL3キャッシュ8はInclusion方式であってもよい。本実施形態に示される方式は、これら上記に記した様々なデータ配置ポリシと組み合わせることが可能である。
 キャッシュの更新方式にも様々な方式が存在するが、本実施形態はそれら全てと組み合わせ可能である。例えば、キャッシュ書き込みヒット時の書き込み方式がライトスルーであってもよいし、ライトバックであってもよい。例えば、キャッシュ書き込みミス時の書き込み方式がライトアロケートであってもよいし、ノーライトアロケートであってもよい。
 L2キャッシュ7のメモリ容量はL1キャッシュ6のメモリ容量以上である。L3キャッシュ8のメモリ容量はL2キャッシュ7のメモリ容量以上である。L4キャッシュ9のメモリ容量はL3キャッシュ8のメモリ容量以上である。このように、高次のキャッシュメモリほどメモリ容量が大きくなる。従って、高次のキャッシュメモリには集積度が高く、容量に比例する傾向にあるリーク電力が少ないメモリを用いることが望ましい。このようなメモリとして、例えば、MRAM(Magnetoresistive Random Access Memory)等の不揮発メモリが考えられる。
 ページテーブル5は、OSが管理する仮想アドレス空間と物理アドレス空間のマッピングを格納するテーブルである。一般的に、仮想アドレスがインデックスとして用いられ、仮想アドレス毎に対応する物理アドレス等を格納する領域をもつ。ページテーブル5内の1つの仮想アドレスに対応する領域をページエントリとよぶ。これは、一般的にメインメモリ空間上に配置される。
 TLB4はページテーブル5内の一部のページエントリをキャッシングするメモリ領域である。一般的にハードウェアで実装され、ソフトウェアで実装されるページテーブルより高速にアクセス可能である。
 MMU3はTLB4とページテーブル5を管理し、プロセッサ2が発行した仮想アドレスを物理アドレスに変換するアドレス変換(仮想記憶管理)、メモリ保護機能、キャッシュ制御機能、バス調停機能、等の機能を提供する。L1キャッシュ6等の上位階層キャッシュは仮想アドレスでアクセスされることもあるが、一般的に、L2キャッシュ7以下の下位階層のメモリはMMU3によって変換された物理アドレスでアクセスされる。MMU3は、主記憶10へのデータ配置(データ書き込み)とデータ追い出しとの少なくとも一方の際に、仮想アドレスと物理アドレスとの変換テーブルを更新する。なお、MMU3は全てをハードウェアで実装したり、全てをソフトウェアで実装したり、それらのハイブリッドで実装する等、様々な実装形態が存在する。本実施形態に示される方式は、これら全ての実装形態と組み合わせ可能である。
 図1では、MMU3とは別個にTLB4を設けているが、通常はMMU3の内部にTLB4が設けられる。本実施形態では、便宜上、MMU3とTLB4を別個に取り扱うが、TLB4がMMU3に内蔵される場合も含むものとする。
 メインメモリ10は、L1~L4キャッシュ6~9のそれぞれよりもメモリ容量が大きいことから、プロセッサ2等が実装されるチップとは別個の1以上のチップで構成されることが多い。メインメモリ10を構成するメモリセルは、例えばDRAM(Dynamic RAM)セルやMRAMセルである。なお、TSV(Through Silicon Via)等の技術を用いて、プロセッサ2等と一つのチップに混載してもよい。
 図2は第1の実施形態における各キャッシュメモリ4~6およびメインメモリ10のアクセス優先度を示す図である。図示のように、プロセッサ2が発行した仮想アドレスに対応する物理アドレスは、まず最優先にL1キャッシュ6に送られる。この物理アドレスに対応するデータ(以下、対象データ)がL1キャッシュ6にある場合は、そのデータはプロセッサ2に送られる。L1キャッシュ6のメモリ容量は、例えば数10kバイト程度である。
 対象データがL1キャッシュ6にない場合は、対応する物理アドレスはL2キャッシュ7に送られる。L2キャッシュ7に対象データがある場合は、このデータはL1キャッシュ6に格納されるとともに、プロセッサ2にも送られる。L2キャッシュ7のメモリ容量は、例えば数100kバイト~数Mバイト程度である。
 対象データがL2キャッシュ7にない場合は、対応する物理アドレスはL3キャッシュ8に送られる。L3キャッシュ8に対象データがある場合は、このデータはL2キャッシュ7およびL1キャッシュ6に格納されるとともに、プロセッサ2にも送られる。L3キャッシュ8のメモリ容量は、例えば数Mバイト~数10Mバイト程度である。
 対象データがL3キャッシュ8にない場合は、対応する物理アドレスはL4キャッシュ9に送られる。L4キャッシュ9に対象データがある場合は、このデータはL1~L3キャッシュ8に格納されるとともに、プロセッサ2にも送られる。L4キャッシュ9のメモリ容量は、例えば100Mバイト以上である。
 なお、このようなキャッシュメモリ6~9のデータ転送方式は一例を示したものであり、本実施形態は他の様々なデータ転送方式と組み合わせ可能である。例えば、L4キャッシュ9にヒットした場合に、L2キャッシュ7やL3キャッシュ8へのデータ格納は行わずL1キャッシュ6にのみデータを格納するデータ転送方式とも組わせ可能である。
 対象データがL4キャッシュ9にない場合は、対応する物理アドレスはメインメモリ10に送られる。本実施形態では、メインメモリ10には、L4キャッシュ9に格納されている全データが格納されているものとする。本実施形態は、上述したキャッシュ間データ配置ポリシに限定されるものではない。メインメモリ10には、MMU3で管理されるページ単位のデータが格納される。一般的に、MMU3で管理されるページ単位のデータはメインメモリ10と補助記憶装置に配置されるが、本実施形態では簡易化のため全てのデータがメインメモリ10に配置されているものとする。本実施形態では、メインメモリ10に対象データがある場合は、このデータはL1~L4キャッシュ6~9にも格納されるとともに、プロセッサ2にも送られる。メインメモリ10のメモリ容量は、例えば数Gバイト程度である。
 このように、L1~L4キャッシュ6~9は階層化されており、次数の大きい(下位階層の)キャッシュメモリほどメモリ容量は大きい。本実施形態では、次数の大きいキャッシュメモリには、次数の小さい(上位階層の)キャッシュメモリに格納されている全データが格納される。
 図3はTLB4の内部構造の一例を示す図である。TLB4は、ページ単位で各種情報を管理する。ここで、ページとは、例えば4kバイトのデータである。
 図3は1ページ分のページエントリ情報11の一例を示している。図3のページエントリ情報11は、アドレス変換情報12と、ダーティビット13と、アクセスビット14と、ページ・キャッシュ・ディセーブルビット15と、ページ・ライトスルービット16と、ユーザ・スーパーバイザビット17と、リードライトビット18と、プレゼントビット19とを有し、これ以外に、キャッシュ存在情報20を有する。
 ページエントリ内の各種情報の配置順序は1例を示しており、本実施形態はこれに限定されるものではない。なお、既存のプロセッサに本実施形態を適用する場合(既存のページテーブルにキャッシュ存在情報の追加する場合)には、既存のページエントリの空き領域に格納する方法と、既存のページエントリを拡張(ビット幅を増やす)方法とが考えられる。
 更に、キャッシュ存在情報を含むページエントリを配置する対象は、TLB4のみである場合と、ページテーブル5のみである場合と、TLB4とページテーブル5の両方に配置する場合とが考えられる。これら3つの選択肢は、上記の「既存ページエントリへのキャッシュ存在情報追加」と「既存のページエントリを拡張」という2つの方法と組み合わせ可能である。
 キャッシュ存在情報をTLB4とページテーブル5の両方に配置する場合、ページテーブル5も同様の内部構造のページエントリ情報11を有することが望ましい。TLB4には、プロセッサ2が最近発行した仮想アドレスに関するアドレス変換情報が格納されるのに対して、ページテーブル5には、メインメモリ10全体に関するアドレス変換情報が格納されるため、プロセッサ2が発行した仮想アドレスについてのページエントリ情報11がTLB4内に存在しない場合でも、ページテーブル5を参照することで、該当するページエントリ情報11内に格納されたキャッシュ存在情報20を取得できる。また、TLB4内の少なくとも一部のページエントリ情報11を追い出す(フラッシュする)ときは、フラッシュすべきページエントリ情報11と対応するキャッシュ存在情報20とをページテーブル5に書き戻すのが望ましい。これにより、TLB4に格納しきれなかったページエントリ情報11と対応するキャッシュ存在情報20をページテーブル5に格納できる。
 本実施形態では、一例として、TLB4とページテーブル5の両方にキャッシュ存在情報20を保持する方式を示す。さらに、既存のページエントリにキャッシュ存在情報20を追加する場合を想定する。また、既存のページエントリにはキャッシュ存在情報20を追加する空き領域が十分に存在すると仮定する。
 アドレス変換情報12は、プロセッサ2が発行した仮想アドレスを物理アドレスに変換するための情報である。例えば、論理アドレスに対応する物理アドレスや、階層化されたページテーブル5へのポインタがこれにあたる。ダーティビット13は、このページに書き込みを行ったときに1に設定される。アクセスビット14は、このページにアクセスすると1に設定される。ページ・キャッシュ・ディセーブルビット15は、このページへのキャッシングを禁止するときに1に設定される。ページ・ライトスルービット16は、ライトスルーするときに0に設定され、ライトバックするときに1に設定される。なお、ライトスルーとは、キャッシュメモリとメインメモリ10の両方にデータを書き込むことを指し、ライトバックとは、キャッシュメモリに先にデータを書き込み、その後にメインメモリ10に書き戻すことを指す。ユーザ・スーパーバイザビット17は、該当ページをユーザモードで使用するか、スーパーバイザモードで使用するかを設定するものである。リードライトビット18は、読み出しのみを行うときに0に設定され、読み書きを行うときに1に設定される。プレゼントビット19は、このページがメインメモリ10に存在するときに1に設定される。
 キャッシュ存在情報20とは、プロセッサ2が発行した仮想アドレスに対応する物理アドレスのデータが1階層以上の特定のキャッシュメモリに格納されているか否かを示す情報である。1ページは例えば4kバイトで、1つのキャッシュラインは64バイトであるため、1ページ分のキャッシュ存在情報20は、4k/64バイト=64個のキャッシュラインのキャッシュ存在情報20を含むことになる。
 一つのキャッシュラインのキャッシュ存在情報20は、例えば1ビットで表される。このビットは、プロセッサ2が発行した仮想アドレスに対応するデータが特定のキャッシュメモリに格納されている場合には例えば1に設定され、格納されていない場合には例えば0に設定される。
 以下では、L4キャッシュ9に対応するキャッシュ存在情報20を設ける例を説明するが、対象のキャッシュはどの階層のキャッシュでもよい。例えば、L2でもよいしL3キャッシュ8に対応するキャッシュ存在情報20を設けてもよい。
 MMU3は、TLB4を参照して、プロセッサ2が発行した仮想アドレスを物理アドレスに変換するとともに、キャッシュ存在情報20を取得して、この仮想アドレスに対応するデータがL4キャッシュ9に格納されているか否かを判断する。そして、MMU3により、L4キャッシュ9に格納されていないことがわかれば、L3キャッシュ8にミスしたときに、L4キャッシュ9にアクセスせずにメインメモリ10にアクセスする。
 図4は本実施形態によるプロセッサシステム1の処理動作を示すフローチャートである。このフローチャートは、プロセッサ2からデータの読み出し要求があった場合の処理手順を示している。
 まず、プロセッサ2が仮想アドレスを発行すると(ステップS1)、MMU3はTLB4を参照してこの仮想アドレスを物理アドレスに変換するとともに、L4キャッシュ9のキャッシュ存在情報20を取得する(ステップS2)。まだ、L1キャッシュ6へのアクセスも行っていないのに、L4キャッシュ9のキャッシュ存在情報20を取得するのは、L3キャッシュ8にミスしてからキャッシュ存在情報20を取得すると、L4キャッシュ9にアクセスすべきか否かを判断するタイミングが遅れてしまうためである。また、仮想アドレスから物理アドレスへの変換と同時にキャッシュ存在情報へのアクセスを行うことにより、TLB4やページテーブル5へのアクセス回数を削減するといった利点も存在する。なお、本実装形態の選択肢としては、キャッシュ存在情報20を仮想アドレスから物理アドレスへの変換時には取得せず、L4キャッシュ9のアクセス前のいずれかのタイミングで取得する方法も存在する。例えば、L3キャッシュ8にミスした場合に、キャッシュ存在情報20を取得してもよい。
 次に、ステップS2で変換した物理アドレスを用いて、L1キャッシュ6にアクセスし、L1キャッシュ6のタグメモリを参照してヒット/ミス判定を行う(ステップS3)。
 L1キャッシュ6にヒットした場合は、対応するデータをL1キャッシュ6から読み出してプロセッサ2に送る(ステップS4)。L1キャッシュ6にミスした場合は、ステップS2で変換した物理アドレスを用いて、L2キャッシュ7にアクセスし、L2キャッシュ7のタグメモリを参照してヒット/ミス判定を行う(ステップS5)。
 L2キャッシュ7にヒットした場合は、この物理アドレスに対応するデータをL2キャッシュ7から読み出して、L1キャッシュ6に格納するとともに、プロセッサ2に送る(ステップS6)。L2キャッシュ7にミスした場合は、ステップS2で変換した物理アドレスを用いて、L3キャッシュ8にアクセスし、L3キャッシュ8のタグメモリを参照してヒット/ミス判定を行う(ステップS7)。
 L3キャッシュ8にヒットした場合は、この物理アドレスに対応するデータをL3キャッシュ8から読み出して、L2キャッシュ7とL1キャッシュ6に格納するとともに、プロセッサ2に送る(ステップS8)。
 L3キャッシュ8にミスした場合は、ステップS2で取得したキャッシュ存在情報20を参照し、L4キャッシュ9にヒットしている可能性が高いか否かを判定する(ステップS9)。すなわち、ステップS9では、キャッシュ存在情報20によって、L4キャッシュ9にアクセスするか否かを判定する。ステップS9でL4キャッシュ9にヒットしている可能性が高いことがわかると、L4キャッシュ9にアクセスする(ステップS10)。この場合、通常のL4キャッシュ9へのアクセスと同様の処理が行われる。すなわち、L4キャッシュ9のタグメモリにアクセスして、ヒット/ミス判定を行い、ヒットすれば、L4キャッシュ9のデータキャッシュ部から対象データを読み出す。
 一方、キャッシュ存在情報20を参照した結果、L4キャッシュ9にミスしている可能性が高いことがわかると、L4キャッシュ9にはアクセスせずに、メインメモリ10にアクセスする(ステップS11)。これにより、L4キャッシュ9のタグメモリにアクセスしてヒット/ミス判定結果が出るまでのタイムラグを生じさせることなく、高速にメインメモリ10にアクセスできる。
 MMU3は、L4キャッシュ9内の少なくとも一部のデータが更新された場合には、更新されたデータのキャッシュラインについてのキャッシュ存在情報20も更新する。図3に示したキャッシュ存在情報20を更新するタイミングは、L4キャッシュ9にデータを格納するタイミングと、L4キャッシュ9からデータを追い出すタイミングとである。
 図5はL4キャッシュ9にデータを格納する場合のキャッシュ存在情報20の更新処理の一例を示すフローチャートである。MMU3は、キャッシュミスしたアドレス、または下位階層のキャッシュメモリまたはメインメモリ10から送られてきたデータのアドレスがTLB4内のページエントリにあるか否かをチェックする(ステップS21)。
 ステップS21がYESの場合、TLB4内のキャッシュ存在情報20中の対応するキャッシュライン用のビットを1にする(ステップS22)。ステップS21がNOの場合、ページテーブル5を参照し、ページテーブル5内のキャッシュ存在情報20中の対応するキャッシュライン用のビットを1にする(ステップS23)。
 図6はL4キャッシュ9からデータを追い出す場合のキャッシュ存在情報20の更新処理の一例を示すフローチャートである。MMU3は、キャッシュミスしたアドレス、または下位階層のキャッシュメモリから送られてきたデータのアドレスがTLB4内のページエントリにあるか否かをチェックする(ステップS31)。
 ステップS31がYESの場合、TLB4内のキャッシュ存在情報20中の対応するキャッシュラインのビットを0にする(ステップS32)。ステップS31がNOの場合、ページテーブル5を参照し、ページテーブル5内のキャッシュ存在情報20中の対応するキャッシュラインのビットを0にする(ステップS33)。
 ここまで、キャッシュ存在情報の更新方法を説明したが、更新対象や更新ポリシには様々な変形例が存在する。例えば、TLB4とページテーブル5にキャッシュ存在情報を保持する実施形態において、L4キャッシュ9の保持データが変更された場合にキャッシュ存在情報を更新するのはTLB4のみであってもよい(このような場合、例えば、TLB4からデータが追い出される際にページテーブル5を更新してもよい)。例えば、TLB4にキャッシュ存在情報を保持する実施形態において、L4キャッシュ9の保持データが変更された場合にTLB4内に該当データがなければ、キャッシュ存在情報を更新しなくてもよい。このような場合、L4キャッシュ9内に配置されているデータとキャッシュ存在情報の一貫性が失われ、キャッシュ存在情報を用いたL4キャッシュ9のアクセス判定においてFalse positiveやFalse negativeといった誤判定が発生する可能性がある。これらの対処法については後述する。
 (キャッシュ存在情報20の保持方法の変形例)
 上述した実施形態では、簡略化のため、TLB4が1階層のページエントリ・キャッシュとなっている方式を示した。しかしながら、TLB4が複数階層の場合においても本実施形態は適用可能である。この場合において、最も単純なキャッシュ存在方法の保持方法は、全ての階層でこれを保持することである。一方で、一部の階層にのみキャッシュ存在情報20を配置する方法も考えられる。例えば、最も下位階層のTLB4にのみキャッシュ存在情報20を配置する方法がある。このような方法を用いることで、TLB4へのアクセスを物理的に異なるメモリに分散し、TLB4のアクセスの衝突による遅延を軽減することが出来る。この効果が得られる典型的な例としては、CPU2からのメモリアクセスによるTLB4の参照と、L4キャッシュ9の配置データ変更に伴うキャッシュ存在情報20の更新のためのTLB4の参照とが同タイミングに発生した場合に、前者の参照は上位階層のTLB4でその要求にこたえ、後者の参照は下位階層のTLB4でその要求にこたえることで、アクセス衝突を回避することが考えられる。
 (キャッシュ存在情報20の形式の変形例)
 上述した実施形態では、キャッシュ存在情報20としてキャッシュライン毎に1ビットのフラグを保持する形式を示した。しかし、キャッシュ存在情報20はこのような形式に限定されるものではない。
 例えば、より詳細化した情報を保持してもよい。例えば、ライン毎のアドレスをすべて保持してもよいし、ライン毎に設けられた記憶領域にラインが格納されているメモリ・バンクIDを記録してもよい。
 また、キャッシュ存在情報20は、TLB4のページエントリごとに、1ページ内に含まれる特定のキャッシュメモリ(例えばL4キャッシュ9)の全キャッシュラインの情報を要約化した1ビット以上のビット列を含んでいてもよい。その例として、ハッシュ関数を用いて情報を要約する方法がある。ハッシュ関数には様々なものが考えられる。例えば、ページ内のラインのうち、L4キャッシュ9に存在するライン数を保持するようなものも考えられるし、L4キャッシュ9に存在するライン・アドレスのORをとるなどのハッシュ化が考えられる。
 このように、ハッシュ関数を用いてキャッシュ存在情報20として要約化された情報を用いる場合などには、その情報のみでL4キャッシュ9へのデータ保持と非保持の判断が厳密に行えないことに注意しなければならない。ハッシュ関数を用いて判断を行うときに、要約された情報を用いることにより発生する誤判断にはFalse positive とFalse negativeがある。False positiveが発生する場合は、不必要なL4キャッシュ9へのアクセスが行われ、無駄なタグアクセスによる性能低下は発生するものの、プログラムの実行結果には何ら影響を与えないため、問題は軽微である。同様に、False negativeが発生する場合でも、L4キャッシュ9がライトスルーであれば、L4キャッシュ9を有効活用できない状況が発生するものの、性能が低下するのみであるため、問題は軽微である。一方で、データ配置ポリシがライトバックである場合、最新のデータ(正しい値を保持するデータ)がL4キャッシュ9のみに存在する可能性があるため、False negativeによるL4キャッシュ9へのアクセスの回避により、最新でないデータ(誤った数値)を用いて計算を行ってしまう可能性がある。このような場合は、例えば、キャッシュ存在情報20とページエントリのDirtyビットを参照し、Dirtyビットがセットされている場合はキャッシュ存在情報20に関わらずL4キャッシュ9にアクセスするような追加の制御を行ってもよい。
 (他ハードウェア・モジュールと協調したキャッシュ存在情報20の保持方法の変形例)
 本実施形態は、他のハードウェア・モジュールと協調することで、ページエントリに保持する情報を削減することもできる。ページエントリにL4キャッシュ9に存在するデータライン数のみを記録する場合を例とする。この場合、L4キャッシュ9に存在するデータライン数がゼロ以上である場合にL4キャッシュ9にアクセスする制御ポリシであるとすると、False positiveが高い確率で発生する。これを抑制する方法として、例えば、ページ単位で、ページ内に存在するラインを特定可能なビットベクタを別なハードウェア・モジュールとして持っておき、(TLB4やページテーブル5の)ページエントリの参照によりL4キャッシュ9に存在するデータライン数がゼロ以上であれば上記のハードウェア・モジュールを参照するような制御が考えられる。これにより、TLB4やページテーブル5におけるキャッシュ存在情報20に必要なビット数を抑制しつつ、L4キャッシュ9のアクセス必要性を高精度に判定することが可能となる。
 上述した実施形態では、4階層(L1~L4キャッシュ6~9)のキャッシュメモリを備える例を説明したが、キャッシュメモリの階層数は4階層には限定されない。また、キャッシュ存在情報20を有するキャッシュメモリもL4キャッシュ9には限定されず、1階層以上の任意の階層のキャッシュメモリのそれぞれにキャッシュ存在情報20を設けてもよい。この場合、各キャッシュ存在情報20がどの階層のキャッシュメモリに対応するかを示す識別情報を図3のページエントリ情報11内に設けてもよい。また、2階層以上のキャッシュメモリのキャッシュ存在情報20を一つにまとめてもよい。
 このように、本実施形態では、プロセッサ2が発行した仮想アドレスのデータが1階層以上の特定のキャッシュメモリに格納されているか否かを示すキャッシュ存在情報20をTLB4とページテーブル5の少なくとも一方に設けるため、このキャッシュメモリのタグメモリにアクセスする前に、キャッシュ存在情報20にてキャッシュメモリ内にデータがあるか否かを予測できる。よって、キャッシュメモリ内に対象データがないにもかかわらず、タグメモリにアクセスしてキャッシュミスの結果を待ってから、メインメモリ10にアクセスするよりも高速に、メインメモリ10にアクセスできる。また、タグメモリへの不必要なアクセスによる電力オーバヘッドも削減することが可能となる。すなわち、キャッシュメモリ内に対象データがないことがキャッシュ存在情報20で予測できた場合は、このキャッシュメモリへのアクセスを行わないため、キャッシュミス時の性能・電力のオーバヘッドを削減できる。
 本実施形態におけるキャッシュ存在情報20は、L4キャッシュ9のように、大容量のキャッシュメモリに設けた場合により大きな効果が得られる。大容量のキャッシュメモリの場合、タグメモリにアクセスするのに時間がかかり、キャッシュミスしたことがわかってからメインメモリ10にアクセスすると、メインメモリ10にアクセスするのに余計に時間がかかってしまう。これに対して、キャッシュ存在情報20を設ければ、キャッシュメモリのタグメモリにアクセスする前に、このキャッシュメモリ内に対象データがあるか否かを精度よく予測できるため、データがあると予測された場合のみタグメモリにアクセスでき、キャッシュミス時にメインメモリ10により高速にアクセスでき、アクセス効率を向上できる。また、大容量のキャッシュメモリであれば、タグメモリも大容量となるため、そのアクセス電力も大きくなる。高精度なアクセスにより、このアクセス電力も削減可能である。
 上述した各実施形態では、L4キャッシュ9のメモリセルがMRAMセルの例を説明したが、本実施形態のキャッシュメモリは、他の不揮発性メモリ(例えば、ReRAM(Resistance RAM)メモリセル、PRAM(Phase Change RAM)、FRAM(Ferroelectric RAM、登録商標)、NANDフラッシュメモリセル)で構成されていてもよい。あるいは、SRAMやDRAM等の揮発メモリを用いてもよい。
 上記の実施形態では、TLB4とページテーブル5の少なくとも一方に設けられたキャッシュ存在情報20により特定のメモリへのアクセス時のヒット/ミスを判定し、タグメモリへの不必要なアクセスを回避する制御を例示した。上記の実施形態以外に、キャッシュ存在情報20は他の目的にも利用できる。
 (キャッシュ存在情報を電源制御に利用する例)
 TLB4とページテーブル5の少なくとも一方に設けられるキャッシュ存在情報20は、例えば、キャッシュメモリの電源管理に用いることができる。その例として、L4キャッシュ9へのアクセスが少ないときは、L4キャッシュ9の電源を遮断したり、電源電圧を低下させたる低消費電力モードに移行して、消費電力を削減する場合が考えられる。一般的には、低消費電力モードからデータへのアクセスが可能な状態(アクティブモード)に遷移するには、時間的および電力的なオーバーヘッドがある。つまり、電源遮断中からデータへのアクセスが可能な状態に遷移するためには、いくらかの時間が必要となり、同時に電力も消費する。L4キャッシュアクセス時に低消費電力モードだと、通常のキャッシュレイテンシに加え、電源遮断からアクティブモードへの復帰時間が必要となり、プロセッサ2の性能低下へと繋がる。逆に、積極的にアクティブモードを利用すると、L4キャッシュ9にデータが存在しないにも拘らず、不必要な電力を消費してしまう。
 これを解決する1つの方法として、キャッシュ存在情報20を利用し、1)L3キャッシュ8へのヒット/ミスの判定によりL4キャッシュ9へのアクセスを予測(特定)し、さらに2)L4キャッシュ9でのヒット/ミスを判定することが考えられる。1)のL3キャッシュ8へのヒット/ミスの判定が可能であれば、L4キャッシュ9へのアクセスに先行して低消費電力モードからアクティブモードへと状態を遷移させておくことができ、モード遷移に伴うオーバヘッドを隠蔽することが出来る。また、L4キャッシュ9でのヒット/ミスを判定できれば、L4キャッシュ9にヒットする場合のみアクティブモードへと遷移させるといったことが可能となり、不必要なモード遷移を抑制することが出来る。
 図7はキャッシュ存在情報20を電源制御に利用するプロセッサシステム1の概略構成を示すブロック図である。図7のプロセッサシステム1は、各階層のキャッシュメモリ6~9に対応づけて、キャッシュコントローラ21~24が設けられている。これらキャッシュコントローラ21~24は、MMU3からの指示に従って、対応するキャッシュメモリ6~9のアクセス制御と電源制御を行う。例えば、MMU3は、キャッシュ存在情報20に基づいて、L3キャッシュミスによりL4キャッシュ9にアクセスするか否かを判断するとともに、L4キャッシュ9にアクセスするか否かでL4キャッシュ9に供給する電力を制御する。これにより、L4キャッシュ9にアクセスしない場合は、L4キャッシュ9を低消費電力モードで動作させることができ、消費電力の削減が図れる。また、L4キャッシュ9でのヒットが予想される場合は、実際にアクセスを開始する前にL4キャッシュ9をアクティブモードに遷移させることで、高速アクセスが可能となる。
 (キャッシュ存在情報をデッドラインの制御に利用する例)
 TLB4とページテーブル5の少なくとも一方に配置されたキャッシュ存在情報20は、例えば、デッドブラインの特定にも利用できる。デッドラインとは、今後利用される可能性のないキャッシュラインを指す。例えば、解放されたプロセスが利用していたデータがこれにあたる。利用される可能性のないキャッシュラインの保持はキャッシュメモリの利用効率の低下を引き起こす。
 これを解決するため、例えば、解放されたプロセスのページをTLB4とページテーブル5の少なくとも一方で特定し、そのページエントリ内のキャッシュ存在情報20から特定のキャッシュに該当ページ内のデータが含まれるようであれば、それらのデータを無効化する制御が考えられる。これにより、今後利用されないデータを保持し続けることで、今後利用する可能性の有るデータが追い出されるケースを防止でき、キャッシュメモリを効率的に活用することが可能となる。
 キャッシュ存在情報20をデッドブロックの制御に利用する場合のプロセッサシステム1は、例えば図7と同様のブロック図で実現可能である。プロセッサ2がプロセスを切り替えるときのメモリ管理の手法として、以下の二つがある。一つの手法は、プロセッサ2があるプロセスを解放すると、TLB4を完全に書き換える(フラッシュする)ことである。この場合、MMUは、TLB4に格納されていたデータをすべて無効化したことを、TLBに格納されているキャッシュ存在情報20に基づき各キャッシュのキャッシュコントローラに通知する。これを受けて、各階層のキャッシュメモリ6~9は、順々に、該当するデータを無効化する。もう一つの手法は、TLB4やページテーブル5が各プロセスを識別可能な識別情報を記憶しており、MMU3は、解放されたプロセスに対応する識別情報を取得して、各キャッシュ6のキャッシュコントローラ21に通知する。これを受けて、各階層のキャッシュメモリ6~9は、TLBに格納されているキャッシュ存在情報20に基づきその識別情報に対応するデータを無効化する。
 (キャッシュ存在情報をNUCAの効率的制御に利用する例)
 TLB4とページテーブル5の少なくとも一方に配置されたキャッシュ存在情報20は、例えば、NUCA(Non-uniform cache access)の効率的なアクセスにも利用できる。NUCAとは、同一階層のキャッシュをいくつかの領域(バンク)に分割し、ある位置(例えばCPU)からそれぞれの領域に異なるレイテンシでアクセスするキャッシュシステムを指す。このシステムは、特に、大容量のキャッシュを効率的に利用する場合に用いられる。大容量なキャッシュは低速なレイテンシとなりがちだが、NUCAを利用することで、アクセスする対象から近い位置にデータがあれば高速なデータアクセスが可能となる。その利用形態の一例として、マルチコアプロセッサでは、コア毎にバンク(ローカルバンク)を保持し、さらにバンク毎にタグを保持する。あるコアからローカルバンクへとアクセスが発生し、データが存在しなかった場合、コヒーレンシ・アクセスでその他のバンクにデータが存在しないかをチェックする。仮に、その他のバンクにデータが存在したとしても、ローカルバンクへのアクセスとコヒーレンシに要するレイテンシと電力がオーバヘッドとなる。
 このようなオーバヘッドを解消する一方式として、例えば、キャッシュ存在情報20の中にキャッシュラインデータが保持されているバンクID情報を含めてもよい。このような方式を用いれば、TLB4とページテーブル5の少なくとも一方へのアクセス時に、データが存在するバンクを特定可能であるため、データが存在しないバンクへのアクセスと、コヒーレンシのオーバヘッドを省略することが可能となる。これにより、キャッシュの性能向上と消費電力削減が実現できる。なお、バンクID情報は、上記の第一の実施形態と同様にハッシュ化された情報であってもよい。
 図8はNUCAを行うプロセッサシステムの概略構成を示すブロック図である。図8の例では、L4キャッシュ9が4つのメモリバンクに分かれており、各メモリバンクごとに別個にキャッシュコントローラ25~28を備えている。各キャッシュコントローラ25~28は、各メモリバンク内に格納されているデータを、メモリバンクID情報とともに、MMU3に通知する。MMU3は、受け取った情報をTLB4とページテーブル5に登録する。これにより、MMU3は、TLB4またはページテーブル5を参照することで、プロセッサ2からアクセス要求のあったデータが、どのメモリバンクに格納されているかを迅速に把握でき、該当するメモリバンクに高速にアクセスすることができる。
 本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。

Claims (16)

  1.  データを格納するデータキャッシュ部と前記データキャッシュ部に格納された各データのアドレスを格納するタグ部とを有する1階層以上のキャッシュメモリと、
     プロセッサが発行する仮想アドレスから物理アドレスへのアドレス変換情報を含むページエントリ情報と、変換した物理アドレスのそれぞれに対応するデータが1階層以上の特定のキャッシュメモリに格納されているか否かを示すキャッシュ存在情報と、を格納するトランスレーション・ルックアサイド・バッファと、
     を備えるキャッシュメモリシステム。
  2.  前記トランスレーション・ルックアサイド・バッファは、前記特定のキャッシュメモリ内に格納しているデータを変更する際には、当該変更に合わせて前記キャッシュ存在情報を更新する請求項1に記載のキャッシュメモリシステム。
  3.  前記トランスレーション・ルックアサイド・バッファは、前記特定のキャッシュメモリに新たなデータを書き込む場合と、前記特定のキャッシュメモリに格納されているデータを追い出す場合と、の少なくとも一方において、前記キャッシュ存在情報を更新する請求項2に記載のキャッシュメモリシステム。
  4.  前記トランスレーション・ルックアサイド・バッファに格納された前記ページエントリ情報および対応する前記キャッシュ存在情報と、前記トランスレーション・ルックアサイド・バッファに格納しきれなかった前記ページエントリ情報および対応する前記キャッシュ存在情報とを格納するページテーブルと、
     前記トランスレーション・ルックアサイド・バッファの前記ページエントリ情報に存在しない物理アドレスにアクセスする場合には、前記ページテーブル内の前記キャッシュ存在情報を参照して、前記特定のキャッシュメモリへのアクセスを行うか否かを判断するメモリ管理ユニットと、を備える請求項1に記載のキャッシュメモリシステム。
  5.  前記メモリ管理ユニットは、前記トランスレーション・ルックアサイド・バッファに格納された前記ページエントリ情報のうち少なくとも一部のページエントリ情報を他のページエントリ情報に変更する場合には、変更前のページエントリ情報と対応する前記キャッシュ存在情報とを前記ページテーブルに書き戻す請求項4に記載のキャッシュメモリシステム。
  6.  前記キャッシュ存在情報によって該当するデータが前記特定のキャッシュメモリに格納されていないと判断された場合は、前記特定のキャッシュメモリの前記タグ部にアクセスせずに、前記特定のキャッシュメモリより高次のキャッシュメモリまたはメインメモリにアクセスするメモリ管理ユニットを備える請求項1に記載のキャッシュメモリシステム。
  7.  前記プロセッサからのアクセス要求に応じて前記ページエントリ情報を参照する際に、対応する前記キャッシュ存在情報を取得するメモリ管理ユニットを備える請求項1に記載のキャッシュメモリシステム。
  8.  前記キャッシュ存在情報に基づいて、前記特定のキャッシュメモリにアクセスするか否かで前記特定のキャッシュメモリに供給する電力を制御するキャッシュコントローラを備える請求項1に記載のキャッシュメモリシステム。
  9.  プロセッサが解放したプロセスで使用するデータが前記特定のキャッシュメモリに格納されているか否かを前記キャッシュ存在情報に基づいて判断し、当該データを無効化するキャッシュコントローラを備える請求項1に記載のキャッシュメモリシステム。
  10.  前記特定のキャッシュメモリは、複数のバンクに分かれており、
     前記キャッシュ存在情報は、前記特定のキャッシュメモリ中のどのバンクにデータが格納されているかを示すバンク識別情報を含んでおり、
     前記特定のキャッシュメモリにアクセスする際には、前記キャッシュ存在情報中の前記バンク識別情報に対応するバンクにアクセスするキャッシュコントローラを備える請求項1に記載のキャッシュメモリシステム。
  11.  前記キャッシュ存在情報は、前記特定のキャッシュメモリのキャッシュラインごとの情報を含む請求項1に記載のキャッシュメモリシステム。
  12.  前記キャッシュ存在情報は、前記トランスレーション・ルックアサイド・バッファのページエントリ毎に、1ページ内に含まれる前記特定のキャッシュメモリの全キャッシュラインの情報を要約化した1ビット以上のビット列を含む請求項11に記載のキャッシュメモリシステム。
  13.  前記キャッシュ存在情報は、前記トランスレーション・ルックアサイド・バッファのページエントリごとに、1ページ内に含まれる前記特定のキャッシュメモリの全キャッシュラインのそれぞれについて、1ビットずつ設けられる請求項11に記載のキャッシュメモリシステム。
  14.  前記特定のキャッシュメモリは、最も高次のキャッシュメモリである請求項1乃至13のいずれかに記載のキャッシュメモリシステム。
  15.  前記特定のキャッシュメモリは、MRAM(Magnetoresistive RAM)セルを用いて構成される請求項1に記載のキャッシュメモリシステム。
  16.  プロセッサと、
     データを格納するデータキャッシュ部と前記データキャッシュ部に格納された各データのアドレスを格納するタグ部とを有する1階層以上のキャッシュメモリと、
     前記プロセッサが発行する仮想アドレスから物理アドレスへのアドレス変換情報を含むページエントリ情報と、変換した物理アドレスのそれぞれに対応するデータが1階層以上の特定のキャッシュメモリに格納されているか否かを示すキャッシュ存在情報と、を格納するトランスレーション・ルックアサイド・バッファと、を備えるプロセッサシステム。
PCT/JP2015/055245 2014-02-24 2015-02-24 キャッシュ存在情報を有するtlb WO2015125971A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/243,196 US10025719B2 (en) 2014-02-24 2016-08-22 Cache memory system and processor system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014033187A JP6027562B2 (ja) 2014-02-24 2014-02-24 キャッシュメモリシステムおよびプロセッサシステム
JP2014-033187 2014-02-24

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/243,196 Continuation US10025719B2 (en) 2014-02-24 2016-08-22 Cache memory system and processor system

Publications (1)

Publication Number Publication Date
WO2015125971A1 true WO2015125971A1 (ja) 2015-08-27

Family

ID=53878467

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/055245 WO2015125971A1 (ja) 2014-02-24 2015-02-24 キャッシュ存在情報を有するtlb

Country Status (3)

Country Link
US (1) US10025719B2 (ja)
JP (1) JP6027562B2 (ja)
WO (1) WO2015125971A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170255562A1 (en) * 2016-03-02 2017-09-07 Kabushiki Kaisha Toshiba Cache device and semiconductor device
US9959919B2 (en) 2015-03-20 2018-05-01 Kabushiki Kaisha Toshiba Memory system including non-volatile memory of which access speed is electrically controlled

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10169233B2 (en) * 2017-06-05 2019-01-01 International Business Machines Corporation Translation lookaside buffer purging with concurrent cache updates
US10528483B2 (en) * 2017-10-23 2020-01-07 Advanced Micro Devices, Inc. Hybrid lower-level cache inclusion policy for cache hierarchy having at least three caching levels
JPWO2019167360A1 (ja) * 2018-02-28 2021-02-12 ソニー株式会社 メモリ管理システム及びメモリ管理方法、並びに情報処理装置
US11074001B2 (en) * 2018-04-09 2021-07-27 Red Hat, Inc. Managing virtual-machine image cloning
US11262946B2 (en) * 2019-11-25 2022-03-01 Micron Technology, Inc. Cache-based memory read commands

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63214852A (ja) * 1987-03-03 1988-09-07 Nec Corp アドレス変換バッファ
JPH01311343A (ja) * 1988-06-09 1989-12-15 Fujitsu Ltd メモリ制御方式
JP2001256108A (ja) * 2000-03-10 2001-09-21 Mitsubishi Electric Corp メモリ内蔵マイクロプロセッサ

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5233700A (en) 1987-03-03 1993-08-03 Nec Corporation Address translation device with an address translation buffer loaded with presence bits
JPH03232034A (ja) 1990-02-08 1991-10-16 Oki Electric Ind Co Ltd キャッシュ制御装置
US6574708B2 (en) * 2001-05-18 2003-06-03 Broadcom Corporation Source controlled cache allocation
WO2006038258A1 (ja) 2004-09-30 2006-04-13 Renesas Technology Corp. データプロセッサ
CN104346294B (zh) * 2013-07-31 2017-08-25 华为技术有限公司 基于多级缓存的数据读/写方法、装置和计算机系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63214852A (ja) * 1987-03-03 1988-09-07 Nec Corp アドレス変換バッファ
JPH01311343A (ja) * 1988-06-09 1989-12-15 Fujitsu Ltd メモリ制御方式
JP2001256108A (ja) * 2000-03-10 2001-09-21 Mitsubishi Electric Corp メモリ内蔵マイクロプロセッサ

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9959919B2 (en) 2015-03-20 2018-05-01 Kabushiki Kaisha Toshiba Memory system including non-volatile memory of which access speed is electrically controlled
US20170255562A1 (en) * 2016-03-02 2017-09-07 Kabushiki Kaisha Toshiba Cache device and semiconductor device
US10019375B2 (en) * 2016-03-02 2018-07-10 Toshiba Memory Corporation Cache device and semiconductor device including a tag memory storing absence, compression and write state information

Also Published As

Publication number Publication date
US20160357683A1 (en) 2016-12-08
JP6027562B2 (ja) 2016-11-16
JP2015158798A (ja) 2015-09-03
US10025719B2 (en) 2018-07-17

Similar Documents

Publication Publication Date Title
JP6118285B2 (ja) キャッシュメモリシステムおよびプロセッサシステム
JP6027562B2 (ja) キャッシュメモリシステムおよびプロセッサシステム
US10402331B2 (en) Systems and methods for implementing a tag-less shared cache and a larger backing cache
KR102448124B1 (ko) 가상 주소들을 사용하여 액세스된 캐시
US8984254B2 (en) Techniques for utilizing translation lookaside buffer entry numbers to improve processor performance
US11023376B2 (en) System and methods for efficient virtually-tagged cache implementation
JP6088951B2 (ja) キャッシュメモリシステムおよびプロセッサシステム
US10031854B2 (en) Memory system
US9772943B1 (en) Managing synonyms in virtual-address caches
US10564871B2 (en) Memory system having multiple different type memories with various data granularities
TW201617896A (zh) 過濾轉譯後備緩衝區無效
KR20180122969A (ko) 멀티 프로세서 시스템 및 이에 포함된 프로세서의 데이터 관리 방법
WO2024066195A1 (zh) 缓存管理方法及装置、缓存装置、电子装置和介质
TWI795470B (zh) 資料管理方法、多處理器系統和非暫態計算機可讀儲存媒體
US9639467B2 (en) Environment-aware cache flushing mechanism
JP6140233B2 (ja) メモリシステム
Mittal et al. Cache performance improvement using software-based approach

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: 15751908

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: 15751908

Country of ref document: EP

Kind code of ref document: A1