WO2006101113A1 - キャッシュメモリ制御方法およびキャッシュメモリ制御装置 - Google Patents

キャッシュメモリ制御方法およびキャッシュメモリ制御装置 Download PDF

Info

Publication number
WO2006101113A1
WO2006101113A1 PCT/JP2006/305676 JP2006305676W WO2006101113A1 WO 2006101113 A1 WO2006101113 A1 WO 2006101113A1 JP 2006305676 W JP2006305676 W JP 2006305676W WO 2006101113 A1 WO2006101113 A1 WO 2006101113A1
Authority
WO
WIPO (PCT)
Prior art keywords
cache
memory
hit
access
way
Prior art date
Application number
PCT/JP2006/305676
Other languages
English (en)
French (fr)
Inventor
Keisuke Kaneko
Original Assignee
Matsushita Electric Industrial Co., Ltd.
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 Matsushita Electric Industrial Co., Ltd. filed Critical Matsushita Electric Industrial Co., Ltd.
Priority to CN200680002425XA priority Critical patent/CN101107599B/zh
Priority to JP2007509291A priority patent/JP4080527B2/ja
Priority to EP06729643A priority patent/EP1862906A4/en
Publication of WO2006101113A1 publication Critical patent/WO2006101113A1/ja

Links

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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • 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/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • G06F2212/6082Way prediction in set-associative cache
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present invention relates to a cache memory control method and cache memory control apparatus in a microprocessor equipped with a cache memory.
  • a cache memory is mounted to conceal an execution penalty in accessing external memory. Also, in a system equipped with a recent microprocessor, in order to improve program execution performance, a multiprocessor system equipped with a plurality of processor cores or a single processor can efficiently execute a plurality of programs. Processors capable of multithreading are being adopted
  • a memory used to execute a plurality of programs often shares one memory space. Also for the above cache memory, it is often the case that each processor and each thread share a single cache memory or cache memory system rather than having separate cache memories.
  • a cache memory is in a set-associative configuration having a plurality of ways.
  • a program accesses a cache memory, it is usually determined by accessing all ways whether the access address makes a cache hit or a cache miss.
  • processors that perform multi-processor and multi-thread processing there is a method of assigning cache ways as they do not affect programs of data strength that each program caches! In this case, in the case of a cache miss, data is refilled to the way assigned to each program, so there is a high probability that a way that makes a cache hit in each program is the assigned way.
  • Patent Document 1 In order to reduce the power consumption at the time of cache access, a method of performing cache hit / miss determination only on the way accessed last or accessing only the data array to the way accessed last (Patent Document 1) There is. However, this method is effective only when the address changes sequentially, such as instruction fetch. In addition, in the case of a multiprocessor system or a processor that performs multi-thread processing, the instruction fetch address of the V program being processed in parallel may not be continuous or the data access address may be continuous! Can not.
  • Patent Document 1 Japanese Patent Application Laid-Open No. 11 39216
  • the above cache memory can be assigned to multiple processors or shared cache memory accessed by threads. Since there is a high probability that the assigned way is hit, it will consume unnecessary power if the hit / miss determination is simultaneously performed on all ways.
  • an object of the present invention is to provide a cache memory control method and a cache memory control device capable of reducing power consumption associated with cache hit / miss determination.
  • whether or not cache refilling is set in advance for each memory unit is set in advance for a cache memory composed of at least two memory units.
  • the memory unit for which cache refill is set to be permitted out of the memory is selectively accessed to perform the first cache hit / miss determination, and access to the cache memory at the time of cache hit (cache refill is allowed Exit with only access to the set memory unit.
  • the first cache hit / miss determination is selectively performed on the memory unit of the cache memory for which cache refill is set to be possible, and the cache memory is checked when the cache hit is determined.
  • Access to a unit of memory (cache refill is enabled) Since it is terminated only by access, it is possible to reduce the power consumption associated with the cache hit / miss determination.
  • a memory unit for which cache refilling is set to be possible has a high probability of cache hit, it is effective to use power consumption that has a high probability of ending only by accessing a memory unit for which cache refilling is set to be possible. Can be reduced to
  • a cache miss occurs as a result of the first cache hit / miss determination
  • a memory unit in the cache memory for which cache refill is not performed is selectively accessed.
  • the second cache hit / miss determination is performed.
  • the second cache hit / miss determination is performed on the memory unit for which cache refilling has been denied, so that each cache unit is accessed and accessed by a plurality of accesses having different memory units. Even in the memory, it is possible to cache the same address space.
  • the cache memory control method of the present invention when the cache hit is determined as a result of the first cache hit / miss determination, all the memory units of the cache memory are accessed and the second is executed. Let's make a cache hit / miss decision.
  • the second cache hit / miss determination is performed for all the memory units, so even if each is permitted, even if the memory unit is a cache memory accessed by different accesses. , Can cache the same address space
  • the cache memory is accessed from at least two access sources, and cache refill is enabled or disabled in advance for each memory unit corresponding to each of at least two access sources.
  • the cache memory control device comprises a cache memory having at least two memory units, a cache refillability setting unit for setting cache refillability for each memory unit, and a cache refillability setting.
  • Memory unit selecting means capable of selectively accessing a memory unit of the cache memory set as cache refillable by the cache refillability setting unit according to the setting state of the unit, and memory set as cache refillable
  • the first cache memory for the unit A hit miss control unit is provided to execute a hit miss determination and to end access to the cache memory (only by accessing a memory unit for which cache fill is set) when a cache hit occurs.
  • the first cache hit / miss determination is selectively performed on a memory unit of the cache memory for which cache refill is set to be possible, and when the cache hit is determined, the cache memory is Since the access is completed (only by accessing the memory unit for which cache refill is set to be enabled), it is possible to reduce the power consumption associated with the cache hit / miss determination. Moreover, since a memory unit for which cache refilling is set to be possible has a high probability of cache hit, it is effective to use power consumption that has a high probability of ending only by accessing a memory unit for which cache refilling is set to be possible. Can be reduced to
  • the memory unit selecting means selectively selects a memory unit of the cache memory for which cache refill is rejected when it is determined by the hit miss control unit that there is a cache miss.
  • the hit / miss control unit makes a second cache hit / miss determination on the memory unit for which the cache refill has been denied.
  • the second cache hit / miss determination is performed on the memory unit for which cache refilling has been denied, so that each cache unit is accessed and accessed by a plurality of accesses having different memory units. Even in the memory, it is possible to cache the same address space.
  • the memory unit selection means enables access to all memory units of the cache memory when the hit miss control unit determines that the cache miss occurs, and the hit miss is generated.
  • the control unit may make the second cache hit / miss determination for every memory unit of the cache memory.
  • the cache memory is small. Both access source powers are accessed, and the cache refill availability setting unit is set in advance whether cache refill availability is set for each memory unit corresponding to each of at least two access sources.
  • the cache refill availability setting unit has a register for setting the availability of cache refill for each memory unit, and that the value of the register can be changed by software.
  • the cache memory control unit refills each processor or thread in a system equipped with a shared cache memory and a CPU (Central Processing Unit) that performs multi-processor and multi-thread processing. If ways can be assigned, cache access power can be reduced without degrading the performance of cache access cycles.
  • CPU Central Processing Unit
  • FIG. 1 is a block diagram showing a system configuration of a cache memory control device in a first embodiment of the present invention.
  • FIG. 2 is a flowchart of cache access in Embodiment 1 of the present invention.
  • FIG. 3 is a timing diagram (a hit in an allocation way) of the cache memory control device in the first embodiment of the present invention.
  • FIG. 4 is a timing diagram (a hit other than the assignment way) of the cache memory control device in the first embodiment of the present invention.
  • FIG. 5 is a flowchart of cache access in Embodiment 2 of the present invention.
  • FIG. 6 is a timing diagram of a cache memory control device in a second embodiment of the present invention.
  • FIG. 7 is a block diagram showing a system configuration of a cache memory control unit in a third embodiment of the present invention. Explanation of sign
  • FIG. 1 shows a system configuration diagram of a cache memory control device in the first embodiment.
  • Figure 1 shows the functional units required for cache hit operation during read access.
  • CPU1 (1-1) and CPU2 (1-2) share the cache memory (14) by the cache control unit (13) and operate.
  • the code (15) indicates the access arbitration control unit
  • the code (16) indicates the refill permission way setting unit
  • the code (17) indicates the CS.
  • Chip Select A signal generation unit is shown
  • a code (18) indicates a hit / miss control unit.
  • the code (143) indicates the permission setting register 1
  • the code (144) indicates the permission setting register 2.
  • the code (141) indicates a BCU (Bus Control Unit) which is a bus control unit
  • the code (1-42 indicates an IO (Input / Output) bus).
  • the code (19) indicates the queue 1
  • the code (110) indicates the tie 2
  • the code (1-11) indicates the way 3
  • the code (1- 12) shows way 4.
  • the code (1-13) indicates a CPU 1 request
  • the code (1-14) indicates a CPU 1 ID
  • the code (1-15) indicates a CPU 1 address
  • the code (1-16) indicates a CPU2 request
  • the code (1-17) indicates a CPU2 ID
  • the code (1-18) indicates a CPU2 address.
  • the code (1-19) indicates the access address by the cache control unit (13).
  • the code (120) indicates the way ICS signal
  • the code (121) indicates the way 2 CS signal
  • the code (1-22) indicates the way 3 CS signal
  • the code (1-23) indicates the way 4 CS.
  • the CS signal of each tie that is, each signal indicated by symbols (120) to (123) is a negative logic signal.
  • the code (1-24) indicates the way 1 hit signal
  • the code (1-25) indicates the way 2 hit signal
  • the code (1-26) indicates the way 3 hit signal
  • the code (1-27) indicates Indicates a way 4 hit signal.
  • the code (128) indicates a data select signal.
  • the code (129) indicates way 1 data
  • the code (1-30) indicates way 2 data
  • the code (131) indicates way 3 data
  • the code (1-32) indicates way 4 data. Show.
  • Signs (1-33) indicate cache read data.
  • the code (134) indicates a way selector.
  • the code (135) indicates an access end signal.
  • the code (136) indicates the CPU1 acknowledgement, and the code (137) indicates the CPU2 acknowledgement.
  • the code (1-38) indicates a clock.
  • the code (1-39) indicates an access ID.
  • the code (1-40) indicates refill permission information.
  • the access arbitration control unit (1-5) of the cache control unit (13) arbitrates which CPU should be accessed from An access ID (1 to 39) to perform cache access is generated from the ID of the CPU that received the.
  • the ID of the CPU that received the process is the access ID (1- 39). It becomes.
  • the cache control unit (13) selects, for example, the CPU 1 address (115) according to the access ID (1-39) and sends it to the cache memory (1-4).
  • the cache control unit (13) has a refill permission way setting unit (16), and it is determined which program is being executed by CPU 1 (1-1) and CPU 2 (1-2). There is an enable setting register 1 (1 43) and an enable setting register 2 (1-44) that set whether to enable refilling.
  • the permission setting register 1 (1-43) holds the setting for CPU 1 (1-1), and the permission setting register 2 holds the setting for CPU 2.
  • the permission setting register 1 (1-4 3) and the permission setting register 2 (1-43) are also accessible to the BCU (1-41) via the 10 bus (1-42). Can be set freely.
  • the cache memory (1 to 4) has a set associative configuration.
  • the figure shows the cache memory (1-4) in a 4-way set-associative configuration.
  • cache memory (1-4) consists of 4 memory blocks (way 1 (1 9), way 2 (1-10), way 3 (1-11) and way 4 (1-12) Memory unit) Configured. Each way consists of a tag memory holding tag data and a data memory holding data.
  • Access to each way is executed by inputting a CS signal generation unit (1-7) power CS signal.
  • the CS signal generation unit (17) generates and inputs the way ICS signal (120) to the way 1 (19).
  • Way 1 (1 to 9) to which the CS signal is input performs cache hit / miss judgment on the access address (1 to 19), CPU1 address (1 to 15) in this example, and the way 1 hit signal Output 1-24) to the hit / miss control unit (1-8).
  • the way 1 data (1-29) is output from the data memory in way 1.
  • the other wies operate in the same way.
  • the hit / miss control unit (1-8) has a way 1 hit signal (1-24), a way 2 hit signal (1-25), a way 3 hit signal (1-26), and a way 4 hit signal (1 27) In response to any of the hit signals being asserted, it is judged as a cache hit, and a data select signal (128) is output.
  • the hit / miss control unit (1-8) outputs the access end signal (135) simultaneously with the output of the data select signal (1-28), and the access arbitration control unit (1-5) ), And the access arbitration control unit (1-5) does not access the access ID (1 Based on 39), output CPU1 (1-36) or CPU2 (1-37).
  • the way selector (1-34) receives the data select signal (1-28) as described above, selects the data of the hit way, and selects the cache read data (1-33) as the CPU 1 (1-3). Output to 1) and CP U2 (l-2).
  • FIG. 2 shows a flowchart of cache access in the first embodiment of the present invention.
  • the access arbitration control unit (15) determines the CPU to receive the access, generates an access ID (1-39), and caches Start access.
  • refill permission information (140) is output from refill permission way setting unit (16) to CS signal generation unit (17) based on access ID (1-39).
  • Ru If CPU 1 (1-1) is received, the content of permission setting register 1 (1 43) is accepted If CPU2 (1-2) is received, the content of permission setting register 2 (1-44) indicates refill permission It is output as information (1-40).
  • the CS signal generation unit (1-7) generates a CS signal only for the assigned way, and access is performed for the way assigned thereby (step 2-1).
  • the way in which the access has been performed performs hit miss determination, and returns a hit signal, which is the result of the hit miss determination, to the hit miss control unit (18).
  • the hit / miss control unit (18) performs the first hit / miss judgment (step 2-2).
  • the hit / miss control unit (1-8) determines that it is a hit, and outputs data of the hit way (step 2-6), and then accesses Exit (Step 2-7).
  • the CS signal generation unit (17) permits the refill permission way setting unit (16).
  • the CS signal is generated for the remaining way allocated by the setting register 1 (1 43) and the second access is performed (step 2-3).
  • the way to which the second access has been performed returns a hit signal, which is the result of the hit / miss determination, to the hit / miss control unit (18).
  • the hit / miss control unit (1 8) the second hit / miss determination is performed Step 2-4). If a hit signal is asserted for any of the way forces, it is determined to be a hit, and data on the hit way is output (step 2-6), and then access is terminated (step 2-7).
  • Step 2-4 If the second hit / miss determination (Step 2-4) is a miss, processing of refill from the external memory is started (Step 2-5).
  • FIG. 3 is a timing diagram according to the first embodiment, and is a timing diagram when a hit occurs in an assigned way. The figure shows the case where CPU 1 (1-1) has made an access.
  • the refill permission way setting unit (16) outputs “0011” to the CS signal generation unit (1-7) as the refill permission information (140) from the access ID (1-39).
  • refill permission information (1-40) indicates that each bit corresponds to each way, and 1 indicates that it is permitted.
  • the CS signal generation unit (1-7) generates the CS signal of ways 1 and 2 only, asserts way ICS signal (1-20) and way 2 CS signal (1-21), and way 3 CS Do not assert signal (1-22), way 4 CS signal (1-23)!
  • Way 1 (1 9) and way 2 (1-10) to which the CS signal is input perform hit / miss judgment on the access address (1-19), and in cycle 3-2, way 1
  • the hit signal (1-24) and the way 2 hit signal (1-25) are output.
  • FIG. 3 shows the case where the way 1 is hit.
  • the hit / miss control unit (1-8) sees the way 1 hit signal (1-24) and the way 2 hit signal (1-25), determines that the way 1 is hit, and the access end signal (1 -35) is output and cache control is finished. At the same time, it outputs a signal to select way 1 as the data select signal (128).
  • the access arbitration control unit (1 5) the access end signal (1 35) and the access ID (1-39)
  • CPU 1 acknowledge (1-36) is asserted.
  • the way selector (1 to 34) looks at the data select signal (1 to 28) and the way 1 data (1
  • the number of cycles until the end of access does not change in the case of all way access in the first access.
  • FIG. 4 is a timing chart in the first embodiment, and is a timing chart in the case of hitting other than the assigned way.
  • FIG. 4 shows the operation when the way 3 is hit. Cycle 3—
  • No. 4 The operation of No. 4 is the same as cycle 3-1 in FIG.
  • the way 1 hit signal (1 24) and the way 2 hit signal (1 25) are not asserted in order to not hit the accessed way 1 or 2 way.
  • the crash control unit (1-3) determines that the first hit miss determination has made a hit, and starts the second hit miss determination.
  • the hit / miss control unit (1-8) performs the second determination cycle, and since the way 3 hit from the way 3 hit signal (1 26), cache control is ended and the access end signal (1-35) is reached. Output). At the same time, it outputs the select signal of way 3 as a data select signal (1-28)
  • the way selector (1 to 34) looks at the data select signal (1 to 28) and the way 3 data (1
  • the hit miss control unit (1-8) determines that there is a cache miss, and in cycles 3-6 and thereafter, the cache control unit (1-3) determines the external memory Start the refill process from.
  • shared cache memory can be used as in all way access where there is no need to access external memory by cache access.
  • the power reduction can be realized by the same method also for the force write access described for the read access.
  • each way of the cache memory performs hit / miss determination when the CS signal is input, and the cache memory described in the cache memory outputs data.
  • the tag memory in the cache memory and the data memory are for tag memory. It is possible to execute similar processing with cache memories that can be separately accessed by CS signals for CS and CS signals for data memory.
  • FIG. 5 is a flowchart of cache access in the second embodiment of the present invention.
  • steps 2-1 and 2-2 only the number of access ways at the time of the second access in the first embodiment is different, and the steps from the start of the access to the first access (steps 2-1 and 2-2) and the second The subsequent steps (steps 2-4, 2-5, 2-6, 2-7) are the same.
  • FIG. 6 is a timing chart in the second embodiment. The figure shows the timing when you hit a way that has not been assigned.
  • cycle 6-1 The operation of cycle 6-1 is the same as cycle 3-1 in FIG.
  • the way 1 hit signal (1 24) and the way 2 hit signal (1 25) are not asserted in order not to hit the accessed way 1 or 2 way.
  • the crash control unit (1-3) determines that the first hit miss determination has made a hit, and starts the second hit miss determination.
  • CS Signal Generation Unit (1-7) Force Generates way 1 CS signal (1-20), way 2 CS signal (1-21), way 3 CS signal (1-22), way 4 CS signal (123).
  • the way 3 hit signal (1-26) and the way 4 hit signal (1-27) are output.
  • the hit / miss control unit (1-8) makes a second hit / miss determination, and cache control is terminated on the assumption that way 3 has hit from the way 3 hit signal (1-26), and the access end signal (1 — Output 35). At the same time, it outputs the select signal of way 3 as a data select signal (1-28)
  • the way selector (1-34) selects way 3 data (131) by looking at the data select signal (1-28), and outputs way 3 data as cache read data (1-33).
  • FIG. 7 shows a system configuration diagram of the cache memory control device in the third embodiment.
  • Figure 7 shows the functional units required for cache hit operation during read access.
  • the CPU (7-1) in this system executes a plurality of programs in parallel by switching CPUs and other internal resource information such as program counters in a unit of time, or one CPU executes a plurality of programs in parallel.
  • CPU (multi-threaded) it is assumed that the CPU (7-l) of the present embodiment performs normal multi-thread operation and is a CPU whose thread is switched during execution of memory access.
  • the code (7-2) indicates an access control unit
  • the code (7-3) indicates a CPU address
  • the code (7-4) indicates a CPU request
  • the code (7-5) indicates a CPU acknowledge.
  • code (7-6) indicates process ID.
  • the code (7-7) indicates the permission setting register for holding the setting of the refill permission way for each processing ID.
  • CPU (7-1) If an access is also performed, CPU request (7-4) is output, and processing ID (7-6) is an identifier of the process currently being executed in synchronization with it. Is output.
  • the access control unit (7-2) receives the CPU request (7-4) and starts cache access. Also, the access ID (1-39) is output to the refill permission way setting unit (1-6).
  • the refill permission way setting unit (16) has a permission setting register (7-7) that can set the refill permission way for each process ID, and the setting corresponding to the access ID (1- 39) can be refill permission information Output as (1-40).
  • the process ID (7- 6) is output as the access ID (1- 39) as it is, but different data may be used as long as the process ID (7- 6) can be used.
  • the CPU (7-1) performs normal multi-thread operation and does not switch threads (before read data returns) during read access. That is, the thread does not switch until the cache read data (1-33) is input to the CPU (7-1). Therefore, the cache read data (1-33) is always the data corresponding to the process ID (7-6) that has activated the read access. Therefore, the CPU (7-1) can fetch the cache read data 1-33 as it is.
  • the force indicating the function of read access only is written in the same manner. It is also applicable to access.
  • the access to the cache memory is completed in the case of a cache hit, and in the case of a cache miss, the remaining memory in the cache memory or all the ways Access to make a second hit / miss decision.
  • the first hit / miss determination in the case of a cache miss, access to the remaining ways or all ways of the cache memory is not performed, that is, the second hit / miss determination is not performed, and refilling of external memory power is performed. Let's start the process of.
  • the cache memory control device has an effect that the power of cache access can be reduced without almost degrading the performance of the cache access cycle, and a CPU that performs multiprocessor and multithread processing This system is useful as a system that mounts shared cache memory.

Abstract

 キャッシュヒットミス判定に伴う電力の消費を削減することを目的とする。そのために、各CPU、あるいは各スレッドに対して、キャッシュメモリ内の各ウェイへのキャッシュリフィルが可能かどうかの設定手段が設けられたキャッシュメモリへのアクセスを行う場合、まずリフィル可能と設定されたウェイに対してのみ第1のキャッシュヒットミス判定を行い(ステップ2-1,2-2)、第1のキャッシュヒットミス判定結果がキャッシュヒットの場合にはアクセス終了(ステップ2-6)する。キャッシュミスの場合には、リフィル可能と設定されていないウェイのみアクセス(ステップ2-3)、あるいは、全ウェイへのアクセスによる第2のヒットミス判定を行う(ステップ2-4)。

Description

明 細 書
キャッシュメモリ制御方法およびキャッシュメモリ制御装置
技術分野
[0001] 本発明はキャッシュメモリを搭載したマイクロプロセッサにおけるキャッシュメモリ制 御方法およびキャッシュメモリ制御装置に関するものである。
背景技術
[0002] マイクロプロセッサにおいて、外部メモリへのアクセスでの実行ペナルティを隠蔽す るためにキャッシュメモリが搭載される。また、近年のマイクロプロセッサを搭載したシ ステムにおいては、プログラムの実行性能を向上させるために、複数のプロセッサコ ァを搭載したマルチプロセッサシステムや、ひとつのプロセッサで複数のプログラムを 効率よく実行するためのマルチスレッド処理が可能なプロセッサが採用されつつある
[0003] マルチプロセッサや、マルチスレツディングプロセッサにおいては、複数のプログラ ムを実行するときのメモリは、ひとつのメモリ空間を共有して使用する場合が多い。上 記のキャッシュメモリについても、各プロセッサ、各スレッドに個別のキャッシュメモリを 搭載するのではなぐひとつのキャッシュメモリ、またはキャッシュメモリシステムを共有 して使用する場合が多い。
[0004] 通常、キャッシュメモリは複数のウェイをもったセットァソシァティブ構成をとる。プロ グラムがキャッシュメモリをアクセスする場合、アクセスアドレスがキャッシュヒットするか キャッシュミスするかは、通常全ウェイをアクセスして判定される。
[0005] マルチプロセッサやマルチスレッド処理を行うプロセッサにおいて、それぞれのプロ グラムがキャッシングするデータ力 互 、のプログラムに対して影響を与えな!/、ように 、キャッシュウェイを割り当てる方法がある。この場合、キャッシュミスの場合には各プ ログラムに割り当てられたウェイにデータがリフィルされるために、各プログラムにおい てキャッシュヒットするウェイは割り当てられたウェイである確率が高 、。
[0006] それにもかかわらず、共有メモリをキャッシングする共有キャッシュであるためにヒッ トミス判定は全ウェイに対して行わなくてはならず、全ウェイをアクセスしてのキヤッシ ュヒットミス判定は無駄な電力を消費している状態となる。
[0007] キャッシュアクセス時の消費電力の低減のために、前回アクセスしたウェイに対して のみキャッシュヒットミス判定を行う、あるいは前回アクセスしたウェイに対してはデー タアレイのみアクセスする方法 (特許文献 1)がある。しかし、この方法が有効なのは命 令フェッチなど、アドレスがシーケンシャルに変化する場合に限られる。また、マルチ プロセッサシステムや、マルチスレッド処理を行うプロセッサの場合、並列処理されて V、るプログラムの命令フェッチアドレスや、データアクセスアドレスは連続にならな!/ヽ 場合があり、効果が十分に発揮できない。
特許文献 1 :特開平 11 39216号公報
発明の開示
発明が解決しょうとする課題
[0008] 複数のプロセッサや、スレッドからアクセスされる共有キャッシュメモリにお!/、て、上 記キャッシュメモリが各プロセッサ、またはスレッドに対してリフィルするウェイが割り当 て可能なものである場合、割り当てられたウェイにヒットする確率が高いためヒットミス 判定を全ウェイに対して同時に行うと無駄な電力を消費する。
[0009] したがって、本発明の目的は、キャッシュヒットミス判定に伴う電力の消費を削減す ることができるキャッシュメモリ制御方法およびキャッシュメモリ制御装置を提供するこ とである。
課題を解決するための手段
[0010] 上記課題を解決するために、本発明のキャッシュメモリ制御方法は、少なくとも 2つ のメモリ単位から構成されるキャッシュメモリについて、メモリ単位毎に予めキャッシュ リフィルの可否を設定しておき、キャッシュメモリのうちキャッシュリフィルが可と設定さ れたメモリ単位にっ 、て選択的にアクセスして第 1のキャッシュヒットミス判定を行 、、 キャッシュヒット時にキャッシュメモリへのアクセスを(キャッシュリフィルが可と設定され たメモリ単位へのアクセスのみで)終了する。
[0011] この方法によれば、キャッシュメモリのうちキャッシュリフィルが可と設定されたメモリ 単位にっ 、て選択的に第 1のキャッシュヒットミス判定を行 、、キャッシュヒット判定時 にキャッシュメモリへのアクセスを(キャッシュリフィルが可と設定されたメモリ単位への アクセスのみで)終了するので、キャッシュヒットミス判定に伴う電力の消費を削減する ことができる。しかも、キャッシュリフィルが可と設定されたメモリ単位は、キャッシュヒッ トする確率が高 、ので、キャッシュリフィルが可と設定されたメモリ単位へのアクセスの みで終了する確率が高ぐ消費電力を有効に削減できる。
[0012] 上記本発明のキャッシュメモリ制御方法においては、第 1のキャッシュヒットミス判定 の結果、キャッシュミスであったときには、キャッシュメモリのうちキャッシュリフィルが否 とされたメモリ単位について選択的にアクセスして第 2のキャッシュヒットミス判定を行う ことが好ましい。
[0013] この方法によれば、キャッシュリフィルが否とされたメモリ単位について第 2のキヤッ シュヒットミス判定を行うので、それぞれが許可されて 、るメモリ単位が異なる複数の アクセスでアクセスされるキャッシュメモリであっても、同一のアドレス空間をキヤッシン グすることが可能となる。
[0014] また、上記本発明のキャッシュメモリ制御方法においては、第 1のキャッシュヒットミス 判定の結果、キャッシュミスであったときには、キャッシュメモリの全てのメモリ単位に つ 、てアクセスして第 2のキャッシュヒットミス判定を行うようにしてもょ 、。
[0015] この方法によれば、すべてのメモリ単位について第 2のキャッシュヒットミス判定を行 うので、それぞれが許可されて 、るメモリ単位が異なる複数のアクセスでアクセスされ るキャッシュメモリであっても、同一のアドレス空間をキャッシングすることが可能となる
[0016] また、上記本発明のキャッシュメモリ制御方法においては、キャッシュメモリは少なく とも 2つのアクセス元からアクセスされ、少なくとも 2つのアクセス元のそれぞれに対応 してメモリ単位毎に予めキャッシュリフィルの可否を設定する。
[0017] 本発明のキャッシュメモリ制御装置は、少なくとも 2つのメモリ単位力 構成されるキ ャッシュメモリと、キャッシュメモリについてメモリ単位毎にキャッシュリフィルの可否を 設定するキャッシュリフィル可否設定部と、キャッシュリフィル可否設定部の設定状態 に応じてキャッシュメモリのうちキャッシュリフィル可否設定部によってキャッシュリフィ ル可と設定されたメモリ単位について選択的にアクセスを可能とするメモリ単位選択 手段と、キャッシュリフィル可と設定されたメモリ単位について第 1のキャッシュメモリヒ ットミス判定を行 、、キャッシュヒット時にキャッシュメモリへのアクセスを(キヤッシ ユリフィルが可と設定されたメモリ単位へのアクセスのみで)終了させるヒットミス制御 部とを備えている。
[0018] この構成によれば、キャッシュメモリのうちキャッシュリフィルが可と設定されたメモリ 単位にっ 、て選択的に第 1のキャッシュヒットミス判定を行 、、キャッシュヒット判定時 にキャッシュメモリへのアクセスを(キャッシュリフィルが可と設定されたメモリ単位への アクセスのみで)終了するので、キャッシュヒットミス判定に伴う電力の消費を削減する ことができる。しかも、キャッシュリフィルが可と設定されたメモリ単位は、キャッシュヒッ トする確率が高 、ので、キャッシュリフィルが可と設定されたメモリ単位へのアクセスの みで終了する確率が高ぐ消費電力を有効に削減できる。
[0019] 上記本発明のキャッシュメモリ制御装置においては、メモリ単位選択手段は、ヒットミ ス制御部によりキャッシュミスと判定された時に、キャッシュメモリのうちキャッシュリフィ ルが否とされたメモリ単位について選択的にアクセスを可能とし、ヒットミス制御部は、 キャッシュリフィルが否とされたメモリ単位について第 2のキャッシュヒットミス判定を行 うことが好ましい。
[0020] この構成によれば、キャッシュリフィルが否とされたメモリ単位について第 2のキヤッ シュヒットミス判定を行うので、それぞれが許可されて 、るメモリ単位が異なる複数の アクセスでアクセスされるキャッシュメモリであっても、同一のアドレス空間をキヤッシン グすることが可能となる。
[0021] また、上記本発明のキャッシュメモリ制御装置においては、メモリ単位選択手段は、 ヒットミス制御部によりキャッシュミスと判定された時に、キャッシュメモリの全てのメモリ 単位についてアクセスを可能とし、ヒットミス制御部は、キャッシュメモリの全てのメモリ 単位にっ ヽて第 2のキャッシュヒットミス判定を行わせてもよ 、。
[0022] この構成によれば、すべてのメモリ単位について第 2のキャッシュヒットミス判定を行 うので、それぞれが許可されて 、るメモリ単位が異なる複数のアクセスでアクセスされ るキャッシュメモリであっても、同一のアドレス空間をキャッシングすることが可能となる
[0023] また、上記本発明のキャッシュメモリ制御装置においては、キャッシュメモリは少なく とも 2つのアクセス元力 アクセスされ、キャッシュリフィル可否設定部は少なくとも 2つ のアクセス元のそれぞれに対応してメモリ単位毎に予めキャッシュリフィルの可否が 設定されている。
[0024] また、上記キャッシュリフィル可否設定部は、メモリ単位毎のキャッシュリフィルの可 否を設定するレジスタを有し、ソフトウェアでレジスタの値が変更可能であることが好 ましい。
発明の効果
[0025] 本発明を用いれば、マルチプロセッサやマルチスレッド処理する CPU (Central Pro cessing Unit)を搭載し共有キャッシュメモリを搭載するシステムにおいて、キャッシュメ モリ制御部が各プロセッサまたはスレッドに対してリフィルするウェイを割り当て可能な 場合、キャッシュアクセスサイクルの性能を低下させることなくキャッシュアクセスの電 力低減が可能となる。
図面の簡単な説明
[0026] [図 1]図 1は本発明の実施例 1におけるキャッシュメモリ制御装置のシステム構成を示 すブロック図である。
[図 2]図 2は本発明の実施例 1におけるキャッシュアクセスのフローチャートである。
[図 3]図 3は本発明の実施例 1におけるキャッシュメモリ制御装置のタイミング図(割り 当てウェイ内のヒット)である。
[図 4]図 4は本発明の実施例 1におけるキャッシュメモリ制御装置のタイミング図(割り 当てウェイ以外でのヒット)である。
[図 5]図 5は本発明の実施例 2におけるキャッシュアクセスのフローチャートである。
[図 6]図 6は本発明の実施例 2におけるキャッシュメモリ制御装置のタイミング図である
[図 7]図 7は本発明の実施例 3におけるキャッシュメモリ制御装置のシステム構成を示 すブロック図である。 符号の説明
[0027] (1 - 1) CPU1
(1 - 2) CPU2 (1 -3) キャッシュ制御部
(1 —4) キャッシュメモリ
(1 -5) アクセス調停制御部
(1 -6) リフィル許可ウェイ設
(1 -7) CS信号生成部
(1 -8) ヒットミス制御部
(1 -9) ウェイ 1
(1 -10) ウェイ 2
(1 -11) ウェイ 3
(1 -12) ウェイ 4
(1 -13) CPU1リクエスト
(1 — 14) CPU1ID
(1 -15) CPU 1アドレス
(1 -16) CPU2リクエスト
(1 -17) CPU2ID
(1 -18) CPU2アドレス
(1 -19) アクセスアドレス
(1 -20) ウェイ ICS信号
(1- -21) ウェイ 2CS信号
(1- -22) ウェイ 3CS信号
(1- -23) ウェイ 4CS信号
(1- — 24) ウェイ 1ヒット信号
(1- -25) ウェイ 2ヒット信号
(1- — 26) ウェイ 3ヒット信号
(1- -27) ウェイ 4ヒット信号
(1- -28) データセレクト信号
(1- -29) ウェイ 1データ
(1- -30) ウェイ 2データ (1一 31) ウェイ 3データ
(1一 32) ウェイ 4データ
(1一 33) キャッシュリードデータ
(1一 34) ウェイセレクタ
(1一 35) アクセス終了信号
(1一 36) CPU1ァクノリッジ
(1一 37) CPU2ァクノリッジ
(1一 38) クロック
(1-一 39) アクセス ID
(1-一 40) リフィル許可情報
(1- - 41) BCU
(1-一 42) IOバス
(1-一 43) 許可設定レジスタ 1
(1-一 44) 許可設定レジスタ 2
2一 1 第 1アクセスのステップ
2 - 2 第 1のヒットミス判定のステップ
2 - 3 第 2アクセスのステップ
2 - 4 第 2のヒットミス判定のステップ
2- 5 キャッシュリフィノレのステップ
2 - 6 データ出力のステップ
2— -7 アクセス終了のステップ
発明を実施するための最良の形態
[0028] 以下、本発明の実施例を、図面を参照しながら説明する。
実施例 1
[0029] 図 1は実施例 1におけるキャッシュメモリ制御装置のシステム構成図を示す。図 1に はリードアクセス時のキャッシュヒット動作に必要な機能部を示してレ、る。このシステム は、 CPU1 (1-1)および CPU2 (1— 2)がキャッシュ制御部(1一 3)によりキャッシュ メモリ(1一 4)を共有して動作する。 [0030] キャッシュ制御部( 1 3)にお ヽて、符号( 1 5)はアクセス調停制御部を示し、符 号( 1 6)はリフィル許可ウェイ設定部を示し、符号( 1 7)は CS (Chip Select)信号 生成部を示し、符号(1 8)はヒットミス制御部を示す。符号(1 43)は許可設定レ ジスタ 1、符号(1 44)は許可設定レジスタ 2を示す。符号(1 41)はバス制御部で ある BCU (Bus Control Unit)を示し、符号(1—42は IO (Input/Output)バスを示す。
[0031] キャッシュメモリ(1 4)において、符号(1 9)はゥヱイ 1を示し、符号(1 10)はゥ イ 2を示し、符号( 1— 11)はウェイ 3を示し、符号( 1— 12)はウェイ 4を示す。
[0032] 符号(1— 13)は CPU 1リクエストを示し、符号(1— 14)は CPU 1IDを示し、符号( 1 — 15)は CPU 1アドレスを示す。符号(1— 16)は CPU2リクエストを示し、符号(1— 1 7)は CPU2IDを示し、符号(1— 18)は CPU2アドレスを示す。符号(1— 19)はキヤ ッシュ制御部(1 3)によるアクセスアドレスを示す。
[0033] 符号(1 20)はウェイ ICS信号を示し、符号(1 21)はウェイ 2CS信号を示し、符 号(1— 22)はウェイ 3CS信号を示し、符号(1— 23)はウェイ 4CS信号を示す。各ゥ イの CS信号、つまり符号( 1 20)〜( 1 23)で示す各信号は負論理の信号とす る。符号(1— 24)はウェイ 1ヒット信号を示し、符号(1— 25)はウェイ 2ヒット信号を示 し、符号(1— 26)はウェイ 3ヒット信号を示し、符号(1— 27)はウェイ 4ヒット信号を示 す。符号(1 28)はデータセレクト信号を示す。符号(1 29)はウェイ 1データを示 し、符号(1— 30)はウェイ 2データを示し、符号(1 31)はウェイ 3データを示し、符 号(1— 32)はウェイ 4データを示す。符号(1— 33)はキャッシュリードデータを示す。 符号(1 34)はウェイセレクタを示す。符号(1 35)はアクセス終了信号を示す。符 号(1 36)は CPU1ァクノリッジを示し、符号(1 37)は CPU2ァクノリッジを示す。 符号(1— 38)はクロックを示す。符号(1— 39)はアクセス IDを示す。符号(1—40) はリフィル許可情報を示す。
[0034] 以下、この実施例のキャッシュメモリ制御装置について詳しく説明する。 CPU1 (1
1)および CPU2 (1— 2)からメモリアクセスが行われる場合、キャッシュ制御部(1 3)のアクセス調停制御部(1— 5)において、どちらの CPUからのアクセスを行うかが 調停され、処理を受理した CPUの IDからキャッシュアクセスを行うアクセス ID (1— 39 )が生成される。ここでは、処理を受理した CPUの IDがそのままアクセス ID (1— 39) となる。
[0035] アクセス ID (1— 39)によりキャッシュ制御部(1 3)は、例えば CPU 1アドレス(1 15)を選択してキャッシュメモリ(1—4)へ送る。
[0036] キャッシュ制御部(1 3)にはリフィル許可ウェイ設定部(1 6)を有しており、 CPU 1 (1 - 1)および CPU2 (1— 2)で実行中のプログラムがどのウェイに対してリフィルを 許可するかを設定する許可設定レジスタ 1 (1 43)、許可設定レジスタ 2 (1— 44)が ある。許可設定レジスタ 1 (1—43)は CPU1 (1 - 1)に対しての設定を保持し、許可 設定レジスタ 2は CPU2に対しての設定を保持する。また、許可設定レジスタ 1 (1— 4 3)、許可設定レジスタ 2 (1—43)は BCU (1— 41)力も 10バス(1—42)を経由してァ クセス可能なレジスタであり、ソフトウェアにより自由に設定可能なものである。
[0037] キャッシュメモリ(1—4)はセットァソシァティブ構成を有している。図には 4ウェイセッ トァソシァティブの構成のキャッシュメモリ(1—4)が示されている。具体的には、キヤ ッシュメモリ(1—4)は、ウェイ 1 (1 9)、ウェイ 2 (1— 10)、ウェイ 3 (1— 11)、ウェイ 4 (1 - 12)の 4つのメモリブロック (メモリ単位)カゝら構成される。各ウェイはタグデータを 保持しているタグメモリと、データを保持しているデータメモリとから構成される。
[0038] 各ウェイへのアクセスは、 CS信号生成部(1— 7)力 CS信号が入力されることによ り実行される。ウェイ 1 (1 9)に対しては CS信号生成部(1 7)がウェイ ICS信号(1 20)を生成して入力する。 CS信号が入力されたウェイ 1 (1— 9)は、アクセスァドレ ス(1— 19)、この例では CPU1アドレス(1— 15)に対してキャッシュヒットミス判定を 行い、ウェイ 1ヒット信号(1— 24)をヒットミス制御部(1— 8)に出力する。キャッシュヒッ トの場合にはウェイ 1内のデータメモリからウェイ 1データ(1— 29)を出力する。他のゥ イも同様に動作する。
[0039] ヒットミス制御部(1— 8)はウェイ 1ヒット信号(1— 24)、ウェイ 2ヒット信号(1— 25)、 ウェイ 3ヒット信号(1— 26)、ウェイ 4ヒット信号(1— 27)を受け、いずれかのヒット信号 がアサートされて ヽればキャッシュヒットと判断し、データセレクト信号(1 28)を出力 する。また、ヒットミス制御部(1— 8)は、データセレクト信号(1— 28)の出力と同時に アクセス終了信号(1 35)を出力し、アクセスが終了することをアクセス調停制御部( 1 - 5)に知らせ、アクセス調停制御部(1— 5)は 、まアクセスして 、るアクセス ID ( 1 39)を基に CPU1ァクノリッジ(1— 36)、または、 CPU2ァクノリッジ(1— 37)を出 力する。
[0040] ウェイセレクタ(1— 34)は、上記したようにデータセレクト信号(1— 28)を受け、ヒッ トしたウェイのデータを選択し、キャッシュリードデータ(1— 33)を CPU1 (1 - 1)と CP U2 (l - 2)に出力する。
[0041] 図 2は本発明の実施例 1におけるキャッシュアクセスのフローチャートを示す。 CPU 1 (1 - 1)または CPU2 (1— 2)力 アクセスが発生すると、アクセス調停制御部(1 5)でアクセスを受理する CPUを決定し、アクセス ID (1— 39)を生成し、キャッシュァ クセスを開始する。
[0042] キャッシュアクセスを開始すると、リフィル許可ウェイ設定部(1 6)から CS信号生 成部(1 7)へ、アクセス ID (1— 39)を元にリフィル許可情報(1 40)が出力される 。 CPU1 (1— 1)を受理した場合には許可設定レジスタ 1 (1 43)の内容力 CPU2 (1 - 2)を受理した場合には、許可設定レジスタ 2 (1—44)の内容がリフィル許可情 報(1—40)として出力される。その結果、 CS信号生成部(1— 7)では、割り当てられ たウェイに対してのみ CS信号を生成し、それによつて割り当てられたウェイに対して アクセスが行われる(ステップ 2— 1)。
[0043] アクセスが行われたウェイは、ヒットミス判定を行い、ヒットミス判定を行った結果であ るヒット信号をヒットミス制御部(1 8)に返す。ヒットミス制御部(1 8)では第 1のヒッ トミス判定が行われる (ステップ 2— 2)。
[0044] ヒットミス制御部(1— 8)はいずれかのウェイ力 ヒット信号がアサートされた場合、ヒ ットと判定し、ヒットしたウェイのデータを出力(ステップ 2— 6)した後、アクセスを終了 する (ステップ 2— 7)。
[0045] ステップ 2— 2でミスであるとヒットミス制御部(1— 8)で判定された場合、 CS信号生 成部(1 7)では、リフィル許可ウェイ設定部(1 6)内の許可設定レジスタ 1 (1 43 )で割り当てられて!/ヽな 、残りのウェイに対して CS信号を生成し、第 2のアクセスを行 う(ステップ 2— 3)。
[0046] 第 2のアクセスが行われたウェイは、ヒットミス判定を行った結果であるヒット信号をヒ ットミス制御部(1 8)に返す。ヒットミス制御部(1 8)では第 2のヒットミス判定が行 われる(ステップ 2— 4)。いずれかのウェイ力もヒット信号がアサートされた場合、ヒット と判定し、ヒットしたウェイのデータを出力(ステップ 2— 6)した後、アクセスを終了する (ステップ 2— 7)。
[0047] 第 2のヒットミス判定 (ステップ 2— 4)がミスの場合、外部メモリからのリフィルの処理 が開始される (ステップ 2— 5)。
[0048] 図 3は実施例 1におけるタイミング図であり、割り当てられたウェイ内でヒットする場合 のタイミング図である。図では CPU1 (1— 1)力ものアクセスがあった場合を示してい る。
[0049] また、 CPU1 (1— 1)に対して、リフィル許可ウェイ設定部(1— 6)ではウェイ 1とゥェ ィ 2に対してリフィルの許可が設定されて 、るとする。
[0050] サイクル 3— 1で CPU1 (1— 1)力ものキャッシュリクエストが発生し、アクセス調停制 御部(1 5)にお!/、て CPU1 (1 - 1)力 のアクセスが受理され、アクセス ID (1— 39
)が生成される。すなわち、アクセス ID (1 - 39)は CPU 1 (1 - 1)を示す「ID 1」が出 力される。
[0051] リフィル許可ウェイ設定部(1 6)はアクセス ID (1— 39)からリフィル許可情報(1 40)として「0011」を CS信号生成部(1— 7)に出力する。図ではリフィル許可情報( 1 -40)は各ビットが各ウェイに対応し、 1であれば許可されていることを示す。
[0052] CS信号生成部(1— 7)はウェイ 1、ウェイ 2のみの CS信号を生成し、ウェイ ICS信 号(1— 20)、ウェイ 2CS信号(1— 21)をアサートし、ウェイ 3CS信号(1— 22)、ウェイ 4CS信号(1— 23)はアサートしな!/、。
[0053] CS信号が入力されたウェイ 1 (1 9)、ウェイ 2 (1— 10)は、アクセスアドレス(1— 1 9)に対してヒットミス判定を行い、サイクル 3— 2において、ウェイ 1ヒット信号(1— 24) 、ウェイ 2ヒット信号(1— 25)を出力する。図 3ではではウェイ 1にヒットする場合を示し ている。
[0054] ヒットミス制御部(1— 8)は、ウェイ 1ヒット信号(1— 24)、ウェイ 2ヒット信号(1— 25) を見て、ウェイ 1にヒットしたと判定しアクセス終了信号(1— 35)を出力し、キャッシュ 制御を終了する。同時にデータセレクト信号(1 28)としてウェイ 1を選択する信号を 出力する。 [0055] アクセス調停制御部(1 5)ではアクセス終了信号(1 35)と、アクセス ID (1— 39
)と力ら、アクセス ID (1— 39)が示す CPUに対してァクノリッジ信号を返す。図では C
PUl (l - l)力 のアクセスであるため、 CPU1ァクノリッジ(1— 36)をアサートする。
[0056] ウェイセレクタ(1— 34)ではデータセレクト信号(1— 28)をみてウェイ 1データ( 1
29)を選択し、キャッシュリードデータ(1— 33)としてウェイ 1のデータを出力する。
[0057] マルチプロセッサの各 CPUや各スレッドにキャッシュをリフィルするウェイを割り当て
、リフィルするウェイが各 CPU、各スレッドで限定される場合、キャッシュアクセスがヒッ トするウェイは上記の割り当てられたウェイ内である確率が高い。特に、各 CPU、各ス レッドカ モリ空間を分割して同一物理メモリ内でも共有メモリ空間がない場合にはそ の確率は 100%になる。
[0058] このような場合、共有キャッシュメモリの全ウェイにアクセスしても、割り当てられた ウェイ内でヒットする確率が高 、ために、割り当てられて!/、な 、ウェイのメモリを動作さ せることは電力が無駄に消費されることになる。
[0059] 割り当てられたウェイのみアクセスし、そのウェイ内でヒットする場合には残りのウェイ をアクセスする必要が無 、。
[0060] また、本発明の方法では割り当てられたウェイ内でヒットする場合、第 1のアクセスで 全ウェイアクセスする場合とアクセス終了までのサイクル数は変わらない。
[0061] 本発明により、前述した割り当てられたウェイ内にヒットする確率を考慮すれば性能 劣化なしに電力低減を実現可能である。
[0062] 図 4は実施例 1におけるタイミング図であり、割り当てられたウェイ以外にヒットする場 合のタイミング図である。図 4ではウェイ 3にヒットする場合の動作を示す。サイクル 3—
4の動作は図 3のサイクル 3—1と同じである。
[0063] サイクル 3— 5において、アクセスされたウェイ 1、ウェイ 2にはヒットしないために、ゥ エイ 1ヒット信号(1 24)およびウェイ 2ヒット信号(1 25)はアサートされな 、。キヤッ シュ制御部(1— 3)は第 1のヒットミス判定でヒットしな力つたと判断し、第 2のヒットミス 判定を開始する。
[0064] サイクノレ 3 - 5では割り当てられて!/ヽな 、ウェイ 3、ウェイ 4のアクセスを行うため CS 信号生成部(1— 7)力 ウェイ 3CS信号( 1 22)、ウェイ 4CS信号(1— 23)を生成 する。
[0065] サイクル 3— 6ではウェイ 3ヒット信号(1 26)と、ウェイ 4ヒット信号(1 27)が出力 される。
[0066] ヒットミス制御部(1— 8)は第 2の判定サイクルを行い、ウェイ 3ヒット信号(1 26)か らウェイ 3がヒットしたとしてキャッシュ制御を終了し、アクセス終了信号(1— 35)を出 力する。同時に、データセレクト信号(1— 28)としてウェイ 3のセレクト信号を出力する
[0067] ウェイセレクタ(1— 34)ではデータセレクト信号(1— 28)をみてウェイ 3データ( 1
31)を選択し、キャッシュリードデータ(1— 33)としてウェイ 3のデータを出力する。
[0068] なお、図示はしていないが、図 3のサイクル 3— 6においてウェイ 3ヒット信号(1— 26
)、ウェイ 4ヒット信号(1 27)がともにアサートされない場合、ヒットミス制御部(1— 8) はキャッシュミスと判断し、サイクル 3— 6以降において、キャッシュ制御部(1— 3)は 外部メモリからのリフィルの処理を開始する。
[0069] 上記 2段階のアクセスを行えば、共有メモリ空間内で自 CPU以外の CPUによって、 自 CPUに割り当てられて 、るウェイ以外のウェイにヒットするデータが存在して 、る場 合でもキャッシュ力ものデータリードが可能である。
[0070] また、キャッシュアクセスによって外部メモリにアクセスする必要もなぐ全ウェイアク セス時と同様に共有キャッシュメモリを使用可能である。
[0071] また、前述したように通常キャッシュヒットするウェイは割り当てられたウェイ内にヒ ットする確率が高いために、プログラムの全体実行力も考えると全ウェイアクセス時と 同等のアクセス性能で電力低下が実現可能である。
[0072] なお、本実施例ではリードアクセスを説明している力 ライトアクセスについても同様 の方法で電力低下を実現可能である。
また、本実施例ではキャッシュメモリの各ウェイは CS信号が入力されるとヒットミス判 定を行いデータ出力するキャッシュメモリで説明している力 キャッシュメモリ内のタグ メモリ、データメモリは、タグメモリ用の CS信号、データメモリ用の CS信号で別々にァ クセス可能なキャッシュメモリでも同様の処理を実行することが可能である。
実施例 2 [0073] 図 5は本発明の実施例 2におけるキャッシュアクセスのフローチャートである。
実施例 2では、実施例 1においての第 2のアクセス時のアクセスウェイ数が異なるのみ であり、アクセス開始から、第 1のアクセスまでのステップ (ステップ 2—1, 2— 2)と、第 2のアクセス以降のステップ (ステップ 2— 4, 2- 5, 2-6, 2— 7)は同じである。
[0074] 実施例 2では第 2のアクセス (ステップ 3— 1)において、全ウェイに対してアクセスを 行う。
[0075] 図 6は実施例 2におけるタイミング図である。図には割り当てられていないウェイにヒ ットした場合のタイミングを示して 、る。
[0076] なお、割り当てられたウェイにヒットする場合は実施例 1とまったく同じアクセスタイミ ング(図 3)である。
[0077] サイクル 6— 1の動作は図 3のサイクル 3— 1と同じである。
[0078] サイクル 6—1において、アクセスされたウェイ 1、ウェイ 2にはヒットしないために、ゥ エイ 1ヒット信号(1 24)およびウェイ 2ヒット信号(1 25)はアサートされな 、。キヤッ シュ制御部(1— 3)は第 1のヒットミス判定でヒットしな力つたと判断し、第 2のヒットミス 判定を開始する。
[0079] サイクル 6— 2では全ウェイのアクセスを行う。 CS信号生成部(1— 7)力 ウェイ 1C S信号(1— 20)、ウェイ 2CS信号(1— 21)、ウェイ 3CS信号(1— 22)、ウェイ 4CS信 号(1 23)を生成する。
[0080] サイクル 6— 3ではウェイ 3ヒット信号(1— 26)、ウェイ 4ヒット信号(1— 27)が出力さ れる。
[0081] ヒットミス制御部(1— 8)は第 2のヒットミス判定を行い、ウェイ 3ヒット信号(1— 26)か らウェイ 3がヒットしたとしてキャッシュ制御を終了し、アクセス終了信号(1— 35)を出 力する。同時に、データセレクト信号(1— 28)としてウェイ 3のセレクト信号を出力する
[0082] ウェイセレクタ(1— 34)ではデータセレクト信号(1— 28)をみてウェイ 3データ( 1 31)を選択し、キャッシュリードデータ(1— 33)としてウェイ 3のデータを出力する。
[0083] なお、実施例 1と同様、実施例 2でもリードアクセスのみ示している力 同様の方法 をライトアクセスに対しても適用できる。 実施例 3
[0084] 図 7に実施例 3におけるキャッシュメモリ制御装置のシステム構成図を示す。図 7に はリードアクセス時のキャッシュヒット動作に必要な機能部を示している。
[0085] このシステムにおける CPU (7- 1)は、複数のプログラムを時間単位でプログラム力 ゥンタなどの内部資源情報を切り替えて実行する CPU、あるいは、一つの CPUで複 数のプログラムを並列実行する CPUである(マルチスレッド)。ここで、本実施例の CP U(7— l)は、通常のマルチスレッド動作をし、メモリアクセスの実行中にスレッドが切り 替わらな 、CPUであるとする。
[0086] 符号(7— 2)はアクセス制御部を示し、符号(7— 3)は CPUアドレスを示し、符号(7 —4)は CPUリクエストを示し、符号(7— 5)は CPUァクノリッジを示し、符号(7— 6) は処理 IDを示す。符号(7— 7)は処理 ID毎のリフィル許可ウェイの設定を保持する許 可設定レジスタを示す。
[0087] CPU (7— 1)力もアクセスが行われる場合、 CPUリクエスト(7—4)が出力され、そ れと同期して現在実行している処理の識別子である処理 ID (7— 6)が出力される。ァ クセス制御部(7— 2)は CPUリクエスト(7— 4)を受けてキャッシュアクセスを開始する 。またアクセス ID (1— 39)をリフィル許可ウェイ設定部(1— 6)に出力する。リフィル許 可ウェイ設定部(1 6)には処理 ID毎にリフィル許可ウェイを設定可能な許可設定レ ジスタ(7— 7)があり、アクセス ID(1— 39)に対応する設定をリフィル許可情報(1—40 )として出力する。この実施例では、処理 ID (7— 6)がそのままアクセス ID (1— 39)と して出力されるが、処理 ID (7— 6)と対応がとれれば異なるデータであってもよい。
[0088] その後の処理は、実施例 1、および実施例 2と同様であり、同様の効果が得られる。
[0089] 上記したように、 CPU (7— 1)は、通常のマルチスレッド動作をし、リードアクセス途 中に(リードデータが返ってくる前に)スレッドが切り替わることはない。すなわち、キヤ ッシュリードデータ(1— 33)が CPU(7—1)に入力されるまでスレッドは切り替わらな い。したがって、キャッシュリードデータ(1— 33)は常にそのリードアクセスを起動した 処理 ID (7— 6)に対応するデータとなる。したがって、キャッシュリードデータ 1— 33 を CPU (7— 1)がそのまま取り込めばよい。
[0090] また、実施例 1同様、リードアクセスのみの機能を示している力 同様の方法をライト アクセスに対しても適用できる。
[0091] なお、上記の各実施例では、第 1のヒットミス判定の結果、キャッシュヒットの場合キ ャッシュメモリへのアクセスを完了し、キャッシュミスの場合キャッシュメモリの残りのゥ エイもしく全ウェイへのアクセスを行い、第 2のヒットミス判定を行うようにしていた。しか し、第 1のヒットミス判定の結果、キャッシュミスの場合にキャッシュメモリの残りのウェイ もしく全ウェイへのアクセスを行わず、つまり第 2のヒットミス判定を行わず、外部メモリ 力 のリフィルの処理を開始させるようにしてもょ 、。
産業上の利用可能性
[0092] 本発明に係るキャッシュメモリ制御装置は、キャッシュアクセスサイクルの性能をほと んど低下させることなくキャッシュアクセスの電力低減が可能となるという効果を有し、 マルチプロセッサやマルチスレッド処理する CPUを搭載し共有キャッシュメモリを搭 載するシステムとして有用である。

Claims

請求の範囲
[1] 少なくとも 2つのメモリ単位力 構成されるキャッシュメモリについて、メモリ単位毎に 予めキャッシュリフィルの可否を設定しておき、前記キャッシュメモリのうちキャッシュリ フィルが可と設定されたメモリ単位について選択的にアクセスして第 1のキャッシュヒッ トミス判定を行 、、キャッシュヒット時に前記キャッシュメモリへのアクセスを終了するキ ャッシュメモリ制御方法。
[2] 前記第 1のキャッシュヒットミス判定の結果、キャッシュミスであったときには、前記キヤ ッシュメモリのうちキャッシュリフィルが否とされたメモリ単位について選択的にァクセ スして第 2のキャッシュヒットミス判定を行う請求項 1記載のキャッシュメモリ制御方法。
[3] 前記第 1のキャッシュヒットミス判定の結果、キャッシュミスであったときには、前記キヤ ッシュメモリの全てのメモリ単位についてアクセスして第 2のキャッシュヒットミス判定を 行う請求項 1記載のキャッシュメモリ制御方法。
[4] 前記キャッシュメモリは少なくとも 2つのアクセス元力 アクセスされ、前記少なくとも 2 つのアクセス元のそれぞれに対応してメモリ単位毎に予めキャッシュリフィルの可否を 設定する請求項 1記載のキャッシュメモリ制御方法。
[5] 少なくとも 2つのメモリ単位力も構成されるキャッシュメモリと、前記キャッシュメモリに ついてメモリ単位毎にキャッシュリフィルの可否を設定するキャッシュリフィル可否設 定部と、前記キャッシュリフィル可否設定部の設定状態に応じて前記キャッシュメモリ のうち前記キャッシュリフィル可否設定部によってキャッシュリフィル可と設定されたメ モリ単位にっ 、て選択的にアクセスを可能とするメモリ単位選択手段と、前記キヤッシ ユリフィル可と設定されたメモリ単位について第 1のキャッシュメモリヒットミス判定を行 い、キャッシュヒット時に前記キャッシュメモリへのアクセスを終了させるヒットミス制御 部とを備えたキャッシュメモリ制御装置。
[6] 前記メモリ単位選択手段は、前記ヒットミス制御部によりキャッシュミスと判定された時 に、前記キャッシュメモリのうちキャッシュリフィルが否とされたメモリ単位について選択 的にアクセスを可能とし、前記ヒットミス制御部は、前記キャッシュリフィルが否とされた メモリ単位について第 2のキャッシュヒットミス判定を行う請求項 5記載のキャッシュメモ リ制御装置。
[7] 前記メモリ単位選択手段は、前記ヒットミス制御部によりキャッシュミスと判定された時 に、前記キャッシュメモリの全てのメモリ単位についてアクセスを可能とし、前記ヒットミ ス制御部は、前記キャッシュメモリの全てのメモリ単位について第 2のキャッシュヒットミ ス判定を行う請求項 5記載のキャッシュメモリ制御装置。
[8] 前記キャッシュメモリは少なくとも 2つのアクセス元力 アクセスされ、前記キャッシュリ フィル可否設定部は前記少なくとも 2つのアクセス元のそれぞれに対応してメモリ単 位毎に予めキャッシュリフィルの可否が設定されている請求項 5記載のキャッシュメモ リ制御装置。
[9] 前記キャッシュリフィル可否設定部はメモリ単位毎のキャッシュリフィルの可否を設定 するレジスタを有し、ソフトウェアで前記レジスタの値が変更可能な請求項 5記載のキ ャッシュメモリ制御装置。
PCT/JP2006/305676 2005-03-22 2006-03-22 キャッシュメモリ制御方法およびキャッシュメモリ制御装置 WO2006101113A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN200680002425XA CN101107599B (zh) 2005-03-22 2006-03-22 高速缓冲存储器控制方法和高速缓冲存储器控制装置
JP2007509291A JP4080527B2 (ja) 2005-03-22 2006-03-22 キャッシュメモリ制御方法およびキャッシュメモリ制御装置
EP06729643A EP1862906A4 (en) 2005-03-22 2006-03-22 METHOD AND DEVICE FOR INTERMEDIATE MEMORY CONTROL

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005-081544 2005-03-22
JP2005081544 2005-03-22

Publications (1)

Publication Number Publication Date
WO2006101113A1 true WO2006101113A1 (ja) 2006-09-28

Family

ID=37023773

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/305676 WO2006101113A1 (ja) 2005-03-22 2006-03-22 キャッシュメモリ制御方法およびキャッシュメモリ制御装置

Country Status (5)

Country Link
US (1) US7636812B2 (ja)
EP (1) EP1862906A4 (ja)
JP (1) JP4080527B2 (ja)
CN (1) CN101107599B (ja)
WO (1) WO2006101113A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009217616A (ja) * 2008-03-11 2009-09-24 Toshiba Corp キャッシュメモリ制御回路及びプロセッサ
JP2013016244A (ja) * 2011-06-09 2013-01-24 Semiconductor Energy Lab Co Ltd 半導体記憶装置および半導体記憶装置の駆動方法
JP2013502645A (ja) * 2009-08-21 2013-01-24 エンパイア テクノロジー ディベロップメント エルエルシー キャッシュメモリ結合性を伴うプロセッサコアの割当

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8589629B2 (en) * 2009-03-27 2013-11-19 Advanced Micro Devices, Inc. Method for way allocation and way locking in a cache
US9753858B2 (en) 2011-11-30 2017-09-05 Advanced Micro Devices, Inc. DRAM cache with tags and data jointly stored in physical rows
US8984368B2 (en) 2012-10-11 2015-03-17 Advanced Micro Devices, Inc. High reliability memory controller
US8984227B2 (en) * 2013-04-02 2015-03-17 Apple Inc. Advanced coarse-grained cache power management
US9400544B2 (en) 2013-04-02 2016-07-26 Apple Inc. Advanced fine-grained cache power management
US9396122B2 (en) 2013-04-19 2016-07-19 Apple Inc. Cache allocation scheme optimized for browsing applications

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09160828A (ja) 1995-12-06 1997-06-20 Fujitsu Ltd 多重アクセス方法および多重アクセスキャッシュメモリ装置
WO1998019242A1 (fr) * 1996-10-30 1998-05-07 Hitachi, Ltd. Processeur de donnees et systeme de traitement de donnees
US5845309A (en) 1995-03-27 1998-12-01 Kabushiki Kaisha Toshiba Cache memory system with reduced tag memory power consumption
EP0927937A1 (en) 1997-12-30 1999-07-07 STMicroelectronics Limited Method and computer system for processing a data stream
JP2000099399A (ja) * 1998-09-19 2000-04-07 Apriori Micro Systems:Kk ウェイ予測型キャッシュメモリとそのアクセス方法
JP2002342163A (ja) * 2001-05-15 2002-11-29 Fujitsu Ltd マルチスレッドプロセッサ用キャッシュ制御方式

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5875464A (en) * 1991-12-10 1999-02-23 International Business Machines Corporation Computer system with private and shared partitions in cache
JPH0950401A (ja) * 1995-08-09 1997-02-18 Toshiba Corp キャッシュメモリ及びそれを備えた情報処理装置
JPH11139216A (ja) 1997-11-12 1999-05-25 Primo Hanbai Kk 車載用機器のホルダー装置
KR100351504B1 (ko) * 2000-06-05 2002-09-05 삼성전자 주식회사 캐쉬 메모리, 그의 전력 소비 절감 방법 그리고 캐쉬메모리를 구비하는 데이터 처리 시스템
US6823426B2 (en) * 2001-12-20 2004-11-23 Intel Corporation System and method of data replacement in cache ways
US7055004B2 (en) * 2003-09-04 2006-05-30 International Business Machines Corporation Pseudo-LRU for a locking cache
US7516275B2 (en) * 2006-04-25 2009-04-07 International Business Machines Corporation Pseudo-LRU virtual counter for a locking cache

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845309A (en) 1995-03-27 1998-12-01 Kabushiki Kaisha Toshiba Cache memory system with reduced tag memory power consumption
JPH09160828A (ja) 1995-12-06 1997-06-20 Fujitsu Ltd 多重アクセス方法および多重アクセスキャッシュメモリ装置
WO1998019242A1 (fr) * 1996-10-30 1998-05-07 Hitachi, Ltd. Processeur de donnees et systeme de traitement de donnees
EP0927937A1 (en) 1997-12-30 1999-07-07 STMicroelectronics Limited Method and computer system for processing a data stream
JP2000099399A (ja) * 1998-09-19 2000-04-07 Apriori Micro Systems:Kk ウェイ予測型キャッシュメモリとそのアクセス方法
JP2002342163A (ja) * 2001-05-15 2002-11-29 Fujitsu Ltd マルチスレッドプロセッサ用キャッシュ制御方式

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1862906A4

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009217616A (ja) * 2008-03-11 2009-09-24 Toshiba Corp キャッシュメモリ制御回路及びプロセッサ
JP2013502645A (ja) * 2009-08-21 2013-01-24 エンパイア テクノロジー ディベロップメント エルエルシー キャッシュメモリ結合性を伴うプロセッサコアの割当
JP2013016244A (ja) * 2011-06-09 2013-01-24 Semiconductor Energy Lab Co Ltd 半導体記憶装置および半導体記憶装置の駆動方法

Also Published As

Publication number Publication date
EP1862906A4 (en) 2009-01-07
CN101107599A (zh) 2008-01-16
US20090235028A1 (en) 2009-09-17
CN101107599B (zh) 2011-09-21
US7636812B2 (en) 2009-12-22
JP4080527B2 (ja) 2008-04-23
JPWO2006101113A1 (ja) 2008-09-04
EP1862906A1 (en) 2007-12-05

Similar Documents

Publication Publication Date Title
WO2006101113A1 (ja) キャッシュメモリ制御方法およびキャッシュメモリ制御装置
Jeong et al. Balancing DRAM locality and parallelism in shared memory CMP systems
JP5413001B2 (ja) キャッシュメモリ
US8200905B2 (en) Effective prefetching with multiple processors and threads
US20070094664A1 (en) Programmable priority for concurrent multi-threaded processors
US20060136915A1 (en) Method and apparatus for scheduling multiple threads for execution in a shared microprocessor pipeline
US20060123169A1 (en) Dynamic access scheduling memory controller
WO2006117950A1 (ja) 情報処理装置における電力制御装置
WO2010144832A1 (en) Partitioned replacement for cache memory
AU2204299A (en) Computer cache memory windowing
JP2006040141A (ja) マルチスレッドプロセッサ
JP4803983B2 (ja) 演算処理装置
JP2004234123A (ja) マルチスレッドコンピュータ
KR101940523B1 (ko) 워프 스케줄링을 위한 장치 및 방법
US20060004949A1 (en) Apparatus and method for fetching data from memory
CN102193828B (zh) 从处理器中的并发物理线程的数目中去耦合逻辑线程的数目
Herrero et al. Thread row buffers: Improving memory performance isolation and throughput in multiprogrammed environments
Paul et al. Dynamically adaptive i-cache partitioning for energy-efficient embedded multitasking
JP4520847B2 (ja) 集積回路における不揮発性メモリからのデータをフェッチするための方法及び対応する集積回路
JP2003281084A (ja) 外部バスへのアクセスを効率的に行うマイクロプロセッサ
CN111459630B (zh) 采用硬件多线程机制的网络处理器
US11314686B2 (en) Hardware for supporting time triggered load anticipation in the context of a real time OS
Allard et al. A context aware cache controller to bridge the gap between theory and practice in real-time systems
JP2003131943A (ja) 統合型分離型切替えキャッシュメモリ及び該キャッシュメモリを備えたプロセッサシステム
Pharris The Scale DRAM Subsystem

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2006729643

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 11720751

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 200680002425.X

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2007509291

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: RU

WWP Wipo information: published in national office

Ref document number: 2006729643

Country of ref document: EP