+

WO2004068361A1 - Storage control device, data cache control device, central processing unit, storage device control method, data cache control method, and cache control method - Google Patents

Storage control device, data cache control device, central processing unit, storage device control method, data cache control method, and cache control method Download PDF

Info

Publication number
WO2004068361A1
WO2004068361A1 PCT/JP2003/000723 JP0300723W WO2004068361A1 WO 2004068361 A1 WO2004068361 A1 WO 2004068361A1 JP 0300723 W JP0300723 W JP 0300723W WO 2004068361 A1 WO2004068361 A1 WO 2004068361A1
Authority
WO
WIPO (PCT)
Prior art keywords
cache
thread
data
cache line
consistency
Prior art date
Application number
PCT/JP2003/000723
Other languages
French (fr)
Japanese (ja)
Inventor
Iwao Yamazaki
Original Assignee
Fujitsu Limited
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 Fujitsu Limited filed Critical Fujitsu Limited
Priority to JP2004567505A priority Critical patent/JP4180569B2/en
Priority to PCT/JP2003/000723 priority patent/WO2004068361A1/en
Publication of WO2004068361A1 publication Critical patent/WO2004068361A1/en
Priority to US11/123,140 priority patent/US20050210204A1/en

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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies

Definitions

  • Storage control device data cache control device, central processing unit, storage device control method, data cache control method, and cache control method
  • the present invention relates to a memory access issued from a plurality of threads executed simultaneously.
  • Storage controller data cache controller, central processor that processes requests
  • the present invention relates to a storage control method, a data cache control method, and a cache control method, and in particular, to a storage control device and a data cache control which can guarantee consistency in the execution order of reading and writing of shared data between threads.
  • the present invention relates to an apparatus, a central processing unit, a storage device control method, a data cache control method, and a cache control method.
  • Out-of-order processing means that while reading data of an instruction is delayed due to a cache miss, etc., the data of the next instruction is read first, and then the This is the process of reading the instruction data.
  • TSO Total Store Order
  • FIG. 9 is an explanatory diagram for explaining a TSO violation in a multiprocessor and its monitoring principle. (The same figure) is an application that may cause TSO violation.
  • Fig. (B) shows an example of TS ⁇ violation
  • Fig. (C) shows the principle of monitoring TSO violation.
  • Figure (a) shows an example in which the CPU writes the data measured by the measuring instrument to the shared storage area, reads and analyzes the data written to the shared storage area by the CPU, and outputs the analysis result.
  • 3 writes the measurement data to shared storage area ⁇ (ST-—: The data of ⁇ changes from b to b '), and writes that the measurement data has been written to shared storage area A ( ST—A: The data of A changes from a to a ').
  • a fetch request from the instruction processing unit is received at the fetch-port of the storage control unit, and as shown in FIG. 9 (c), each fetch port is assigned to the address of the fetch request.
  • the flag holds the PSTV (Post STatus Valid) flag, RIM (Re-If etch by move in Fetch) flag, and RIF (Re-If etch by move in Fet ch) flag.
  • an F P-TOQ Fetch Port Top of Queue
  • the PS TV flag of the fetch 'port that has received the request of the FC-B is set.
  • the hatched portion indicates a state in which the flag is set.
  • the ST-B of the CPU invalidates or flushes the cache line used by FC-B.
  • the PS TV of the fetch port containing the request of FC-B is set, and a request for invalidating or flushing the physical address portion of the address held by the fetch port and the cache line is received. Since the physical address of the address matches, it is possible to detect that the cache line of the fetch-port that sent the fetch data was taken out.
  • CPU-3 executes ST-B and ST-A, and CPU-j3 receives a cache line containing A from CPU-j3 to execute FC-A. Detects external receipt and sets the RIF flag for all valid fetch-ports. And command processing for the success of FC-A When notifying the device, the RIM flag and the RIF flag of the fetch port holding the request of FC-A are checked, and both flags are set. Request re-execution.
  • the fact that both the RIM flag and the RIF flag are set means that the other instruction processing unit rewrites the data b that has been transmitted in response to the subsequent fetch request B to b ′, and the preceding fetch request A Indicates the possible raw data that received the rewritten data a and.
  • a PS TV flag, a RIM flag, and a RIF flag are provided at each fetch port, and by monitoring the transfer of cache lines between processors, a TSO violation between processors can be prevented. Can be prevented.
  • a TSO guarantee technique in a multiprocessor is disclosed in, for example, US Pat. No. 5,699,538.
  • Techniques related to cache memories are disclosed in JP-A-10-116192, JP-A-10-232839, JP-A-2000-259498, and JP-A-2001-195301.
  • the multi-thread method is a method in which one processor executes a plurality of threads (instruction strings) simultaneously.
  • the primary cache is shared between different threads, and it monitors not only the transfer of cache lines between processors, but also the transfer between threads of the same cache.
  • the present invention has been made to solve the above-described problem of the related art, and has a storage control device and a data storage device that can guarantee consistent execution order of reading and writing of shared data between threads. It is an object of the present invention to provide a cache control device, a central processing unit, a storage device control method, a data cache control method, and a cache control method. Disclosure of the invention
  • the present invention is directed to a storage control device that is shared by a plurality of threads that are executed simultaneously and that processes a memory access request issued from the threads.
  • a consistency assurance means for assuring the consistency of the execution order of reading and writing between the plurality of instruction processing devices with respect to data shared between the instruction processing devices, and an address specified by the memory access request.
  • a thread judging unit for judging whether or not the thread that registered the stored data and the thread that issued the memory access request are the same when the data is stored; and a judgment result of the thread judging unit.
  • a consistency assurance operation starting means for operating the consistency assurance means based on the information.
  • the present invention relates to a storage device control method for processing a memory access request issued from a plurality of threads executed at the same time, and stores data at an address specified by the memory access request.
  • a thread judging step of judging whether or not the thread at which the stored data is registered is the same as the thread at which the memory access request is issued; and a plurality of instruction processing based on the judgment result of the thread judging step.
  • a consistency assurance operation initiating step of operating a consistency assurance mechanism that guarantees consistency of the execution order of reading and writing between the plurality of instruction processing devices with respect to data shared between the devices. It is characterized by the following.
  • the thread that registered the stored data and the thread that issued the memory access request are the same.
  • operating a consistency assurance mechanism that guarantees consistency of the execution order of reading and writing between the plurality of instruction processing devices with respect to data shared among the plurality of instruction processing devices based on the determination result. Therefore, it is possible to guarantee the consistency of the execution order of reading and writing of the shared data between the threads.
  • a data cache control device for processing a memory access request issued from a plurality of instruction processing devices comprising: a data cache control device for processing a memory access request issued from the plurality of instruction processing devices; A consistency assurance means for performing assurance, and when storing a cache line including data of an address specified in the memory access request, a thread in which the stored cache line is registered and the memory access request.
  • the present invention also relates to a data cache control method for processing a memory access request issued from a plurality of threads executed simultaneously, and stores a cache line including data of an address specified by the memory access request.
  • a thread determination step for determining whether or not the force is the same, and the thread determination step is not the same.
  • a consistency assurance operation that activates a consistency assurance mechanism that guarantees consistency of the execution order of reading and writing between the plurality of instruction processing devices with respect to data shared among the plurality of instruction processing devices.
  • a moving step is a moving step.
  • the thread that registered the stored cache line and the thread that issued the memory access request are the same. Is determined to be the same or not, and when it is determined that they are not the same, consistency that guarantees the consistency of the execution order of reading and writing between multiple instruction processing units for data shared between multiple instruction processing units Since the guarantee mechanism is operated, it is possible to guarantee the consistency of the execution order of reading and writing of shared data between the threads.
  • the present invention also provides an instruction processing device that executes a plurality of threads simultaneously.
  • Primary data A central processing unit having a plurality of sets with a cache device, and having a secondary cache device shared by the plurality of sets of primary data cache devices, wherein each of the plurality of sets has a primary data cache.
  • the apparatus comprises: a consistency assurance means for guaranteeing consistency of the execution order of reading and writing between a plurality of instruction processing units for a cache line shared with another set of primary data cache units; and When a cache line having the same physical address as the memory access request is registered by a different thread, a fetch requesting means for making a request to fetch the cache line to the secondary cache device; and the secondary cache.
  • the cache line is invalidated or discharged based on a request from the device, and the A discharge execution means for operating the property assurance means, wherein the secondary cache device is provided when the cache line which has received the request for taking in the cache line is registered in the primary data cache device by another thread.
  • the secondary cache device is provided when the cache line which has received the request for taking in the cache line is registered in the primary data cache device by another thread.
  • the present invention also provides a central processing unit having a plurality of sets of an instruction processing device and a primary data cache device for simultaneously executing a plurality of threads, and having a secondary cache device shared by the plurality of sets of the primary data cache devices.
  • a cache control method used in the above when the primary data cache device is registered by a different thread when a cache line whose physical address matches a memory access request from the instruction processing device is registered by a different thread.
  • a fetch requesting step of making a fetch request for the cache line to the cache device; and the secondary cache device registers the cache line, which has received the cache line fetch request, in the primary data cache device by another thread.
  • the primary data cache device transmits the cache line to the secondary cache device when the cache line whose physical address matches the memory access request from the instruction processing device is registered by different threads.
  • a fetch request is issued, and the secondary cache device invalidates or flushes the cache line if the cache line requested to fetch the cache line is registered in the primary data cache device by another thread.
  • Request to the primary data cache device, and the primary data cache device invalidates or flushes the cache line based on the request from the secondary cache device, thereby sharing it with other * a primary data cache devices.
  • Multiple for cache line The operation of the consistency assurance mechanism that guarantees the consistency of the read and write execution order among the instruction processing units ensures the consistency of the read and write execution order of shared data between threads. can do.
  • the present invention relates to a storage controller shared by a plurality of threads executed at the same time, and for processing a memory access request issued from the thread, wherein a thread executed by the instruction processor is switched.
  • Access invalidating means for invalidating all uncommitted store instructions and fetch instructions among the store instructions and fetch instructions issued by the thread whose execution is interrupted, and the thread whose execution is interrupted.
  • Interlock means for detecting a fetch instruction affected by the execution result of the committed store instruction when execution of the stored instruction is resumed, and controlling the detected fetch instruction to be executed after the execution of the store instruction; It is characterized by having.
  • the present invention is a storage device control method for processing a memory access request issued from a plurality of threads that are executed simultaneously, wherein the execution is performed when a thread executed by the instruction processing device is switched.
  • the thread issued by the suspended thread An access invalidating step of invalidating all uncommitted store instructions and fetch instructions among the store instructions and the fetch instruction; and, when the execution of the thread whose execution has been interrupted is resumed, An interlock step of detecting a fetch instruction affected by an execution result of a committed store instruction and controlling the detected fetch instruction to be executed after the execution of the store instruction.
  • FIG. 1 is a functional block diagram showing a configuration of a CPU according to the first embodiment
  • FIG. 2 is a diagram showing an example of a cache tag
  • FIG. 3 is a key diagram shown in FIG.
  • FIG. 4 is a flowchart showing the processing procedure of the cache control unit.
  • FIG. 4 is a flowchart showing the processing procedure of the MI processing between the cache control unit and the secondary cache unit.
  • FIG. 6 is a functional block diagram showing a configuration of a CPU according to Embodiment 2
  • FIG. 6 is an explanatory diagram for explaining an operation of a cache control unit according to Embodiment 2
  • FIG. 8 is a flowchart showing a processing procedure of a cache control unit according to Embodiment 2
  • FIG. 8 is a flowchart showing a processing procedure of MOR processing
  • FIG. 9 is a TSO violation in a multiprocessor and monitoring thereof Theory to explain the principle
  • FIG. 1 is a functional block diagram showing a configuration of a CPU according to the first embodiment.
  • the CPU 10 has processor cores 100 and 200 and a secondary cache unit 300, and the secondary cache unit 300 has a processor core 100 And shared by 200.
  • the CPU 10 has two processor cores
  • the CPU 10 has only one processor core, or has more processor cores.
  • the processor core 100 will be described here as an example.
  • the processor core 100 has an instruction unit 110, an operation unit 120, a primary instruction cache unit 130, and a primary data cache unit 140.
  • the instruction cut 110 is a processing unit that decodes and executes instructions.
  • An MT (Multi Thread) control unit controls two threads “thread 0” and “thread 1” and executes them simultaneously. I do.
  • the arithmetic unit 120 is a processing unit that includes a general-purpose register, a floating-point register, a fixed-point arithmetic unit, a floating-point arithmetic unit, and executes fixed-point arithmetic and floating-point arithmetic.
  • Reference numeral 0 denotes a storage unit that stores a part of the main storage device for accessing the instructions and data stored in the main storage device at high speed.
  • the secondary cache unit 300 stores more main storage unit instructions and data to compensate for the lack of capacity of the primary instruction cache unit 130 and the primary data cache unit 140. And is connected to the main storage device via the system controller.
  • the primary data cache 144 has a cache memory 141 and a cache control unit 142, and the cache memory 141 is a storage unit for storing data.
  • the cache control unit 144 is a processing unit that manages data stored in the cache memory 141, and includes a TLB (Translation Look-aside Buffer) 144, a TAG unit 144, and a TAG-MA. It has a TCH detection unit 145, a MIB (Move In Buffer) 146, a MOZB I processing unit 147, and a fetch 'port 148.
  • TLB Translation Look-aside Buffer
  • MIB Move In Buffer
  • MOZB I processing unit 147 MOZB I processing unit 147
  • the TLB 143 is a processing unit that performs high-speed address conversion from a virtual address (VA: Virtual Address) to a physical address (PA: Physical Address), and converts a virtual address received from the instruction unit 110 into a physical address. The signal is converted and output to the TAG-MA TCH detector 144.
  • VA Virtual Address
  • PA Physical Address
  • the TAG unit 144 is a processing unit that manages the cache line registered in the cache memory 141, and the cache memory 144 corresponding to the virtual address received from the instruction cut 110.
  • the physical address and thread identifier (ID) of the cache line registered in the location 1 are output to the TAG-MA TCH detection unit 144.
  • the thread identifier is an identifier for identifying whether the cache line is used in “thread 0” or “thread 1”.
  • FIG. 2 is a diagram showing an example of a cache tag which is information for managing a cache line registered in the cache unit 144 of the TAG unit 144.
  • the cache tag uses a V bit that indicates whether the cache line is valid (Valid), an S bit and an E bit that indicate the shared type and exclusive type of the cache line, and a cache line. It includes an ID that indicates the thread that is in use, and a PA that indicates the physical address of the cache line. If the cache line is of the shared type, the cache line may be held by another processor at the same time. If the cache line is of the exclusive type, the cache line may be held at the same time. Is not held by another processor.
  • the TAG-MATCH detection unit 145 is a processing unit that compares the physical address received from the TLB 143 and the thread identifier received from the instruction unit 110 with the physical address and the thread identifier received from the TAG unit 144. .
  • the TAG-MATCH detection unit 145 uses the cache line registered in the cache memory 141 when the physical address and the thread identifier match and the V bit is set, and in other cases, The physical address and the thread identifier are specified to the MI B 146 to instruct the instruction unit 110 to fetch the cache line requested by the instruction unit 110 from the secondary cache unit 300.
  • This TAG-MATCH detection unit 145 In addition to comparing the physical address received from the TLB 143 with the physical address received from the TAG unit 144, by comparing the thread identifier received from the instruction unit 110 with the thread identifier received from the TAG unit 144, Instruction unit 1 10 not only determines whether the cache line is in cache memory 14 1 but also It can be the threads that registered the cache line in the threads and the cache memory 14 1 that requested it is determined force whether the same threads, performs different processing based on the determination result.
  • the MIB 146 is a processing unit that issues a cache line fetch request (Ml request) by designating a physical address to the secondary cache unit 300. Also, corresponding to the cache line fetched by this MI B 146, TA The cache tag of the G section 144 and the contents of the cache memory 141 are updated.
  • Ml request cache line fetch request
  • the MO / BI processing unit 147 is a processing unit that invalidates or discharges a specific cache line in the cache memory 141 based on a request from the secondary cache widget 300.
  • the MOZB I processing unit 147 can set the RIM flag of the fetch port 148 by invalidating or flushing a specific cache line, and the TSO guarantee mechanism between processors can be used as a TS guarantee mechanism between threads. Can be used.
  • the fetch port 148 is a storage unit that stores an access destination address, a PSTV flag, a RIM flag, a RIF flag, and the like in response to each access request from the instruction unit 110.
  • FIG. 3 is a flowchart showing a processing procedure of the cache control unit 142 shown in FIG.
  • the TLB 143 converts a virtual address into a physical address
  • the TAG unit 144 obtains a physical address, a thread identifier, and a V bit from the virtual address using a cache tag.
  • the TAG—MATCH detection unit 145 compares the physical address input from the TLB 143 with the physical address input from the TAG unit 144, and determines whether the cache line requested by the instruction cut 110 is in the cache memory 141. It is checked whether or not it is (step S302). As a result, if the two physical addresses match, the thread identifier input from the instruction unit 110 is compared with the thread identifier input from the TAG unit 144, and the same thread in the cache line in the cache memory 141 is used. It is checked whether it is used (step S303).
  • step S304 when both the thread identifiers match, it is further checked whether or not the V bit is set. As a result, if the V bit is set, the cache line requested by instruction unit 110 is keyed. Since the cache memory 141 has the same thread and the cache line is valid, the cache control unit 142 uses the data in the data section (step S305).
  • the cache control unit 142 uses the data of the fetched cache line (step S307).
  • the TAG-MATCH detection unit 145 determines whether the thread identifier matches not only the physical address but also whether or not the thread identifier matches. By checking, the cache control unit 142 can control a cache line between threads.
  • FIG. 4 is a flowchart showing a processing procedure of the MI processing between the cache control unit 142 and the secondary cache unit 300.
  • This Ml process is a process performed by the secondary cache 300 in step S306 of the cache control unit 142 shown in FIG. 3 and correspondingly.
  • the cache control unit 142 of the primary data cache unit 140 issues an Ml request to the secondary cache unit 300 (step S401). Then, the secondary cache unit 300 checks whether or not the cache line receiving the MI request has been registered in the primary data cache unit 140 at another thread (step S402), and if the cache line has been registered at another thread. In order to set the RIM flag, An MO / BI request is made to the user (step S403).
  • the cache line receiving the Ml request is the primary data cache unit 1
  • the synonym control is a control that manages addresses registered in the primary cache unit on the secondary cache unit side and prevents multiple cache lines of the same physical address from being registered in the primary cache unit. Then, after the MO / BI processing unit 147 of the cache control unit 142 executes the MO / BI processing and sets the RIM flag (step S404), the secondary cache unit 300 The cache control unit 142 sends out the line (step S405) and receives the cache line, and registers the cache line together with the thread identifier (step S406). When the cache line arrives, the RIF flag is set.
  • the cache line receiving the MI request is the next data cache unit 1
  • the secondary cache unit 300 sends out the cache line without making a MO / BI request (step
  • the secondary cache unit 300 uses synonym control to determine whether the cache line receiving the MI request has been registered in the primary data cache unit 140 with another thread. If the thread is registered in another thread, the MOZBI processing section 147 of the cache control section 142 executes the MO / BI processing and sets the RIM flag, and the The TSO guarantee mechanism can be used as a TSO guarantee mechanism between threads.
  • the TAG—MA TCH detection unit 144 of the primary data cache 144 stores a cache line with the same physical address in the cache memory 144. If the thread identifier is different even if the thread is registered, an Ml request is made to the secondary cache unit 300, and the secondary cache unit 300 receives the Ml request from the cache line. Is another thread If it is registered in the primary data cache unit 140 by the 0 command, it requests the cache control unit 142 to execute I processing, and the cache control unit 142 executes MO / BI processing and fetches 'Since the RIM flag of port 148 is set, TS ⁇ between threads can be guaranteed using the TSO guarantee mechanism between processors.
  • the secondary cache unit 300 issues a MOZB I request to the primary data cache unit 140 using synonym control. Due to the increased burden on the knit, secondary cache units may not have synonym control. In such a case, if the cache line with the same physical address is registered in the cache memory with a different thread identifier on the primary data cache unit side, MO / BI processing is performed by itself, and the TSO can be guaranteed.
  • the primary cache unit sends a designated cache line flush request to the secondary cache unit, and the secondary cache unit that receives the request forwards the request to the main storage controller,
  • the cache line is discharged to the main storage device according to the instruction of the device. Therefore, the cache line can be flushed from the primary data cache unit to the secondary cache unit by using the flush operation of the cache line.
  • the case where the RIM flag of the Fetch @ Port is set using the synonym control of the secondary cache unit or the cache line ejection request of the primary data cache unit has been described.
  • the secondary cache has no mechanism for synonym control, and the primary data
  • the cache unit does not have a mechanism to issue a cache line flush request!
  • the second embodiment a description will be given of a case where the TSO is guaranteed by using a process of flushing a replacement block generated when a cache line is replaced and performing invalidation processing and monitoring an access request to a cache memory or a main storage device. I do.
  • the operation of the cache control unit of the primary data cache unit is mainly different from that of the first embodiment, the operation of the cache control unit will be described.
  • FIG. 5 is a functional block diagram showing a configuration of the CPU according to the second embodiment.
  • the CPU 504 has four processor cores 501 to 540 'and a secondary cache unit 550 shared by the four processor cores. Note that the four processor cores 5110 to 5400 all have the same configuration, and therefore, the processor core 510 will be described here as an example.
  • the processor core 510 includes an instruction unit 511, an operation unit 511, a primary instruction cache unit 513, and a primary data cache unit 514.
  • the instruction unit 5 11 1 is a processing unit that decodes and executes an instruction in the same manner as the instruction unit 1 10, and an MT (Multi Thread) control unit controls “thread 0” and “thread 1”, Run two threads simultaneously.
  • MT Multi Thread
  • the arithmetic unit 5 11 1 is a processing unit that executes fixed-point arithmetic and floating-point arithmetic in the same manner as the arithmetic unit 1 20.
  • the primary instruction cache unit 5 13 is Similarly, it is a storage unit that stores part of the main storage device in order to access the instructions stored in the main storage device at high speed.
  • Next data cache unit 5 1 4 is the primary data cache unit 1 4
  • the primary data cache unit 5 1 4 is a storage unit that stores a part of the main storage device in order to access the data stored in the main storage device at a high speed as in the case of 0.
  • the cache control unit 515 does not issue an Ml request from the MIB to the secondary cache unit when a cache line with a matching physical address and a different thread identifier is registered in the cache memory. Instead, the cache control unit 515 performs a replace move-out (M ⁇ R) process on the cache line whose physical address matches, and changes the thread identifier registered in the cache tag.
  • M ⁇ R replace move-out
  • the fetch port is monitored, and if there is a matching address, the RIM flag and the RIF flag are set.
  • the RIF flag can also be set when a different thread writes to the cache memory or main memory. Then, TSO is guaranteed by requesting the instruction to be re-executed when the fetch @ port in which both the RIM flag and the RIF flag are set returns STV.
  • FIG. 5 is an explanatory diagram for explaining the operation of the cache control unit 515.
  • the figure shows the classification of cache access operations according to the instruction that tried to use the cache line and the state of the cache line.
  • the cache access operation of the cache control unit 515 includes “10 patterns” of access patterns and “3 patterns” of operations.
  • the first of the three types of operations is the operation in the case of a cache miss (1 and 6).
  • the Ml request for the cache line is made to the secondary cache unit and the cache line is fetched.
  • the acquired cache line is registered in a shared type, and a cache line is required for data store.
  • the fetched cache line is registered exclusively.
  • the second of the three types of operations is the normal cache hit operation (3, 3, 4, and ⁇ ) when the multi-thread operation is not performed, and is the same as the normal cache hit operation without performing any special processing. Operate, and the state of the cache line does not change.
  • the third of the “three” operations is the case that includes operations that occur to guarantee TSO between threads during multi-thread operation (5, 7, 9, and @). Set the RIM and RIF flags.
  • FIG. 7 is a flowchart showing a processing procedure of the cache control unit 515.
  • the cache control unit 515 checks whether the access requested by the instruction unit 511 is a password or not (step S701).
  • step S701 if the access is a load (step S701 affirmative), a cache miss force is checked (step S702), and if a cache miss, the MIB is secured (step S701). 703), and requests a cache line to the secondary cache unit 550 (step S704). Then, when the cache line arrives, the cache line is registered in a shared type (step S705), and the data in the data section is used (step S706).
  • step S707 it is checked whether or not the hit cache line is registered in the same thread. If the cache line is registered in the same thread, the data section is checked. (Step S706). If the hit cache line is not registered in the same thread, it is checked whether or not the cache line is of a shared type (step S 708). If the data is used (step S706) and it is exclusive type, MOR processing is executed to set the RIM flag and RIF flag. (Step S709), and use the data in the data section (Step S706)
  • step S710 if the access is to the store (No at step S701), it is checked whether or not it is a cache miss (step S710). If the access is a cache miss, the MIB is secured (step S71 1). The cache line is requested to the secondary cache unit 550 (step S712). When the cache line arrives, the cache line is registered as an exclusive type (step S713), and the data is stored in the data section (step S714).
  • step S715 it is checked whether or not the hit cache line is registered with the same thread. If the cache line is registered with the same thread, the cache line is shared. It is checked whether the type is a force exclusive type (step S716). Then, if it is of the exclusive type, the data is stored in the data section (step S714). On the other hand, in the case of the shared type, the M ⁇ R processing is executed to set the RIM flag and the RIF flag (step S717), invalidate the cache line of another processor core (step S718), and The line is changed to the exclusive type (step S719), and the data is stored in the data section (step S714).
  • step S720 If the hit cache line is not registered with the same thread, the MOR processing is executed and the RIM flag and RIF flag are set (step S720), and the power exclusive type in which the cache line is shared is used. (Step S716). Then, if it is of the exclusive type, the data is stored in the data section (step S714). On the other hand, in the case of the shared type, the cache line of the other processor core is invalidated (step S718), the cache line is changed to the exclusive type (step S719), and the data is stored in the data section (step S718). 71 4).
  • FIG. 8 is a flowchart showing a processing procedure of the MOR processing.
  • the MOR process secures a MIB (step S801) and starts a replace move-out operation.
  • step S802 half of the cache line is read out to the replacement move buffer (step S802), and it is checked whether or not the force in which the replacement move-out is prohibited (step S803).
  • a case where the replace move-out is prohibited is a case where a special instruction such as compare and swap is trying to use the cache line.
  • the data in the replace move-out buffer is not used.
  • step S802 the process returns to step S802, and the replacement move-out buffer is read again.
  • step S804 the replacement move-out buffer is read again.
  • the MOR processing executes the replacement part operation, so that the TSO guarantee mechanism between the processor cores works, and the PSTV flag is set using the same cache line as the replacement moveout.
  • the TSO guarantee mechanism between the processor cores can function as the TSO guarantee mechanism between the threads.
  • different threads may compete for the same cache line on the same processor core.
  • the operation is performed when different processors compete for the same cache line in a multiprocessor environment.
  • each processor has a cache line discharge prohibition control and a control for forcibly disabling it. That is, the processor holding the cache line tries to wait for the cache line to be discharged until the store is completed. This is the cache line ejection prohibition control.
  • the cache pipeline flush processing for processing a cache line flush request received from another processor has failed a certain number of times in the cache pipeline, the store to that cache line is forcibly stopped.
  • the cache line is successfully ejected once. As a result, the cache line is passed to another processor. After that, if the store to the cache line is to be continued, a request to flush the cache line is sent to another processor. As a result, the cache line will eventually arrive and the store can be continued.
  • Such a mechanism that operates when different processors exchange the same cache line in a multi-processor environment is capable of operating even in a replace move-out operation used in passing a cache line between threads. Therefore, in any case, the cache line was successfully transferred between the threads, and the hang operation could be prevented.
  • the cache control unit 515 of the primary data cache 514 monitors access to the cache memory or the main storage device, and a TSO violation may occur.
  • the MOR processing is executed to set the RIM flag and RIF flag, so that the TS ⁇ guarantee mechanism between the processor cores can work as the Tso guarantee mechanism between threads.
  • the shared cache line is shared between different threads.
  • the present invention is not limited to this, and the shared cache line is also exclusive cache. Exclusive between threads like a line The same can be applied to control.
  • the TSO guarantee mechanism between processor cores works as a TSO guarantee mechanism between threads by executing MOR processing when the load of a cache line registered by another thread hits. Can be.
  • the present invention is not limited to this, and the three or more threads may be executed at one time by the instruction unit. The same can be applied to cases where processing is performed.
  • the simultaneous multi-thread method is a method in which a plurality of threads are processed at one time.
  • the multi-thread method there is also a time-division multi-thread method in which only one thread is processed at a time, and a thread is switched at regular intervals or when it is found that instruction execution is delayed due to a cache miss or the like. Therefore, TSO guarantee in the case of the time-division multi-thread method will be described.
  • the running thread is put to sleep and the thread is switched by starting another thread operation. Therefore, when switching threads, all fetch instructions and store instructions issued from the sleeping thread and not committed are canceled. By doing so, it is possible to avoid Tso violations that may occur from the store of another thread due to out-of-order completion of the fetch instruction.
  • the committed store instruction is waited for execution in the store port or the write buffer holding the store request and the store data until the write to the cache memory or the main storage device becomes possible.
  • Run the store when the result of the preceding store must be reflected by the subsequent fetch, that is, when the subsequent fetch uses the memory area to be operated by the preceding store, the address and operand length of the store request are used.
  • the fetch request key It is detected by comparing the dress and the operand length. In this case, the execution of the fetch is made to wait until the execution of the store is completed by SFI (Store Fetch Interlock).
  • the SFI operation is enabled to reflect the effect of the store from the different thread. This avoids TSO violations caused by different thread stores during thread dormancy.
  • the thread that registered the stored data and the thread that issued the memory access request are the same. Consistency that guarantees the consistency of the read and write execution order among the plurality of instruction processing devices with respect to the data shared among the plurality of instruction processing devices based on the determination result. Since the security mechanism is configured to operate, there is an effect that the consistency of the execution order of reading and writing of shared data between threads can be guaranteed. Further, according to the present invention, when a cache line including data at an address specified by a memory access request is stored, the thread at which the stored cache line is registered and the thread at which the memory access request is issued are the same.
  • the primary data cache device is provided with a cache line for the secondary cache device when a cache line whose physical address matches the memory access request from the instruction processing device is registered by different threads. If the cache line for which the cache line fetch request has been received is registered in the primary data cache device by another thread, the secondary cache device invalidates or flushes the cache line.
  • a cache line shared with another set of primary data cache devices by making a request to the secondary data cache device, and the primary data cache device invalidating or flushing the cache line based on the request from the secondary cache device.
  • the storage control device, the data cache control device, the central processing unit, the storage device control method, the data cache control method, and the cache control method according to the present invention provide a multi-threaded computer system that executes a plurality of threads simultaneously. Suitable for stem.

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

A central processing unit includes a plurality of sets of an instruction processing device simultaneously executing a plurality of threads and a primary data cache device, and a secondary cache device shared by the primary data cache devices of the plurality of sets. The central processing unit includes a primary data cache unit and a secondary cache unit. Even when cache lines whose physical addresses are identical are registered in a cache memory, if thread identifiers are different, the primary data cache unit performs an MI request to the secondary cache unit, executes MO/BI according to a request from the secondary cache unit, and sets an RIM flag of a fetch port. When the cache line which has received the MI request is registered in the primary data cache unit by another thread, the secondary cache unit requests the primary cache unit to execute the MO/BI.

Description

記憶制御装置、 データキャッシュ制御装置、 中央処理装置、 記憶装置制御方法、 データキヤッシュ制御方法およびキャッシュ制御方法 Storage control device, data cache control device, central processing unit, storage device control method, data cache control method, and cache control method
技術分野 Technical field
この発明は、 同時に実行される複数のスレツドから発行されるメモリアクセス 明  The present invention relates to a memory access issued from a plurality of threads executed simultaneously.
要求の処理をおこなう記憶制御装置、 データキヤッシュ制御装置、 中央処理装置 田 Storage controller, data cache controller, central processor that processes requests
、 記憶装置制御方法、 データキャッシュ制御方法およびキャッシュ制御方法に関 し、 特に、 スレッド間での共有データの読み出しおよび書き込みの実行順序の一 貫性を保証することができる記憶制御装置、 データキャッシュ制御装置、 中央処 理装置、 記憶装置制御方法、 データキャッシュ制御方法およびキャッシュ制御方 法に関するものである。 The present invention relates to a storage control method, a data cache control method, and a cache control method, and in particular, to a storage control device and a data cache control which can guarantee consistency in the execution order of reading and writing of shared data between threads. The present invention relates to an apparatus, a central processing unit, a storage device control method, a data cache control method, and a cache control method.
背景技術 Background art
現在主流となっている高性能プロセッサでは、 高い並列度を維持して命令を実 行するためにァゥト 'ォブ'オーダ処理を採用している。 アウト 'ォブ'オーダ 処理とは、 キャッシュ ' ミスなどの理由で、 ある命令のデータの読み出しが滞つ ている間に後続の命令のデータの読み出しを先に実行し、 その後で滞っていた命 令のデータの読み出しを実行する処理である。  Today's mainstream high-performance processors employ art-of-order processing to execute instructions while maintaining a high degree of parallelism. Out-of-order processing means that while reading data of an instruction is delayed due to a cache miss, etc., the data of the next instruction is read first, and then the This is the process of reading the instruction data.
し力 し、 このような処理をおこなうと、 後から実行された先行するデータの読 み出しが最新のデータを取り出し、 先に実行された後続するデータの読み出しが 古いデータを読み出す場合が発生し、 T S O (Total Store Order)に違反する場 合が出てくる。 ここで、 T S Oとは、 データの読み出し結果がデータの書き込み 順序を正しく反映することであり、 実行順序の一貫性と呼ばれる。  However, if such processing is performed, the reading of the preceding data executed later will retrieve the latest data, and the reading of the subsequent data executed earlier will read the older data may occur. This may violate TSO (Total Store Order). Here, TSO means that the data read result correctly reflects the data write order, and is referred to as execution order consistency.
第 9図は、 マルチプロセッサにおける T S O違反およびその監視原理を説明す るための説明図である。 同図 ) は、 T S O違反が発生する可能性のある応用 例を示し、 同図 (b) は、 TS〇違反の例を示し、 同図 (c) は、 T SO違反の 監視原理を示している。 FIG. 9 is an explanatory diagram for explaining a TSO violation in a multiprocessor and its monitoring principle. (The same figure) is an application that may cause TSO violation. Fig. (B) shows an example of TS〇 violation, and Fig. (C) shows the principle of monitoring TSO violation.
同図 (a) は、 計測器が測定したデータを CPU— が共有記憶域に書き込み 、 C P U—ひが共有記憶域に書き込まれたデータを読み出して解析し、 解析結果 を出力する例を示している。 この例では、 CPU_|3は、 計測データを共有記憶 域 Βに書き込み (ST— Β : Βのデータは bから b' に変わる) 、 計測データを 書き終わったことを共有記憶域 Aに書き込む (ST— A: Aのデータは aから a ' に変わる) 。 一方、 CP,U— αは、 CPU— 3が計測データを書き終わったこ とを Αを読み出して確認し (FC_A : A=a, ) 、 Bに書き込まれた計測デー タを読み出し (FC— B: B = b' ) 、 解析する。 Figure (a) shows an example in which the CPU writes the data measured by the measuring instrument to the shared storage area, reads and analyzes the data written to the shared storage area by the CPU, and outputs the analysis result. I have. In this example, CPU_ | 3 writes the measurement data to shared storage area Β (ST-—: The data of Β changes from b to b '), and writes that the measurement data has been written to shared storage area A ( ST—A: The data of A changes from a to a '). On the other hand, CP, U- α reads Α to confirm that CPU-3 has finished writing the measurement data (FC_A: A = a,), and reads the measurement data written to B (FC-B : B = b ') and analyze.
ここで、 同図 (b) に示すように、 CPU—ひのキャッシュには Aは無く Bが あり、 CPU_i3のキャッシュには Bは無く Aがあるとする。 そして、 CPU— が FC— Aを実行すると、 キャッシュミスが発生し、 FC—Aは Aを含むキヤ ッシユラインが CPU— αに届くまで実行が待たされ、 キャッシュヒットしてい る FC— Βが実行される。 この時、 FC— Bは、 CPU_i3が Βを更新する前の データを読み出す (CPU— α : B = b) 。  Here, it is assumed that there is no B in the cache of the CPU-H, and there is B in the cache of CPU_i3, as shown in FIG. When the CPU executes FC-A, a cache miss occurs. FC-A waits until the cache line containing A reaches CPU-α, and executes FC-Β that has a cache hit. You. At this time, FC-B reads the data before CPU_i3 updates Β (CPU-α: B = b).
そして、 この間に、 〇?11_;3が3丁ー8ぉょび31:— を実行するために、 Bおよび Aを含むキャッシュラインを排他型として獲得し、 CPU— の Bを含 むキャッシュラインの無効化またはデータの吐き出しをおこなう (MO/B I : Move Out/Block Invalidate) 。 そして、 Bを含むキャッシュラインが C PU_ に届くと、 CPU— |3は、 Bおよび Aへのデータ書き込みを完了し (CPU— β : B = b, 、 A= a ' ) 、 その後、 CPU—ひが Aを含むキャッシュラインを 受け取り (Ml : Move In) 、 FC— Aを完了する (CPU—a : A=a, ) 。 こうして、 CPU—ひは、 A=a, であるため、 計測データが書き込まれたと判 断し、 古いデータ (B = b) を使用して誤動作することとなる。  And during this time, 〇? 11_; 3 obtains a cache line containing B and A as an exclusive type in order to execute 3−8 + 31: −, and invalidates the cache line containing B of the CPU—or flushes data. (MO / BI: Move Out / Block Invalidate). Then, when the cache line containing B reaches CPU_, the CPU— | 3 completes writing data to B and A (CPU—β: B = b,, A = a ′), and then the CPU— Receives a cache line containing A (Ml: Move In) and completes FC-A (CPU-a: A = a,). Thus, since A = a, the CPU determines that the measurement data has been written, and malfunctions using the old data (B = b).
そこで、 従来は、 先に実行された後続のフェッチデータ Bを含むキャッシュラ ィンの無効化または吐き出しと、 遅れて実行されたフェッチデータ Aを含むキヤ ッシユラインの到着を監視することによって TS〇違反の可能 ¾Ξを検出し、 T S ο違反の可能性を検出した場合には、 順序性が保証されているフェツチ命令の次 の命令から再実行することによって、 T S ο違反を防いでいた。 Conventionally, therefore, invalidation or flushing of a cache line containing the previously executed fetch data B and a cache line containing the fetch data A executed late. By monitoring the arrival of the hash line, a possible TS〇 violation is detected, and if a possible TSο violation is detected, execution is resumed from the instruction following the Fetch instruction whose order is guaranteed. Had prevented TS ο violations.
具体的には、 命令処理装置からのフェツチ要求を記憶制御装置のフェッチ -ポ ートで受け取り、 第 9図 (c) に示すように、 各フェッチ 'ポートは、 フェッチ 要求の対象となったアドレスとともに、」 P STV (Post STatus Valid)フラグ、 R I M (Re- If etch by Move out)フラグおよび R I F (Re— If etch by move in Fet ch)フラグを保持する。 また、 命令処理装置からのフェッチ要求に対してフェツ チデータをまだ返していないフェッチ ·ポートの中で最も古く割り当てられたフ エッチ 'ポートを指す F P-TOQ (Fetch Port Top of Queue)を設ける。  Specifically, a fetch request from the instruction processing unit is received at the fetch-port of the storage control unit, and as shown in FIG. 9 (c), each fetch port is assigned to the address of the fetch request. In addition, the flag holds the PSTV (Post STatus Valid) flag, RIM (Re-If etch by move in Fetch) flag, and RIF (Re-If etch by move in Fet ch) flag. In addition, an F P-TOQ (Fetch Port Top of Queue) that points to the oldest allocated Fetch Port among the Fetch Ports that have not yet returned Fetch Data in response to a Fetch Request from the instruction processing unit will be provided.
そして、 CPU— αの F C— Bがフェッチをおこなった時点で、 FC— Bの要 求を受け取つていたフェッチ 'ポートの PS TVフラグをセットする。 なお、 第 a図 (c) において、 斜線部は、 フラグがセットされた状態を示している。 その 後、 CPU— の ST— Bによって FC— Bが使用したキャッシュラインの無効 化または吐き出しが発生する。 この時、 FC— Bの要求が入ったフェッチ 'ポー トの P S TVがセットされており、 かつそのフェッチ■ポートが保持するァドレ スの物理ァドレス部分とキャッシュラインの無効化または吐き出し要求を受けた ァドレスの物理ァドレスが一致するため、 フェッチデータを送出したフェッチ - ポートのキャッシュラインが持ち出されたことを検出することができる。  Then, when the FC-B of the CPU-α fetches, the PS TV flag of the fetch 'port that has received the request of the FC-B is set. In FIG. A (c), the hatched portion indicates a state in which the flag is set. After that, the ST-B of the CPU invalidates or flushes the cache line used by FC-B. At this time, the PS TV of the fetch port containing the request of FC-B is set, and a request for invalidating or flushing the physical address portion of the address held by the fetch port and the cache line is received. Since the physical address of the address matches, it is possible to detect that the cache line of the fetch-port that sent the fetch data was taken out.
そして、 フェッチデータを送出したフェッチ■ポートのキャッシュラインが持 ち出されたことを検出すると、 FC—Bの要求を保持するフェッチ 'ポートから F P— TOQが指すフェッチ ·ポートまでの全てのフェッチ■ポートに対して R IMフラグをセットする。  When it detects that the cache line of the fetch port that sent out the fetch data has been taken out, the fetch that holds the request of FC-B 'and all the fetches from the fetch port indicated by FP-TOQ to the fetch port Set the RIM flag for the port.
その後、 CPU— ]3が ST— B、 ST— Aを実行し、 CPU—ひが FC— Aを 実行するために Aを含むキャッシュラインを CPU— j3から受け取ると、 CPU —ひでは、 データを外部から受け取つたことを検出し、 全ての有効なフェッチ - ポートに対して R I Fフラグをセットする。 そして、 FC— Aの成功を命令処理 装置に通知する場合に、 FC— Aの要求を保持するフェッチ ·ポートの R IMフ ラグぉよび R I Fフラグを調べると、 両方のフラグがセットされているため、 F C一 Aの次の命令からの再実行を要求する。 After that, CPU-3 executes ST-B and ST-A, and CPU-j3 receives a cache line containing A from CPU-j3 to execute FC-A. Detects external receipt and sets the RIF flag for all valid fetch-ports. And command processing for the success of FC-A When notifying the device, the RIM flag and the RIF flag of the fetch port holding the request of FC-A are checked, and both flags are set. Request re-execution.
すなわち、 R IMフラグおよび R I Fフラグの両方がセットされていることは 、 後続のフェッチ要求 Bに対して送出してしまったデータ bを他の命令処理装置 が b' に書き換え、 先行するフェッチ要求 Aが書き換え後のデータ a, を受け取 つた可能 1·生を示している。  That is, the fact that both the RIM flag and the RIF flag are set means that the other instruction processing unit rewrites the data b that has been transmitted in response to the subsequent fetch request B to b ′, and the preceding fetch request A Indicates the possible raw data that received the rewritten data a and.
このように、 マルチプロセッサ環境では、 各フェッチ 'ポートに P S TVフラ グ、 R IMフラグおよび R I Fフラグを設け、 プロセッサ間でのキャッシュライ ンの受け渡しを監視することによって、 プロセッサ間における T SO違反を防ぐ ことができる。 このような、 マルチプロセッサにおける T SO保証技術は、 たと えば、 米国特許第 5, 699, 538号明細書に開示されている。 また、 キヤッ シュメモリに関する技術としては、 特開平 10— 116192号公報、 特開平 1 0-232839号公報、 特開 2000— 259498号公報、 特開 2001— 195301号公報などに開示されている。  As described above, in a multiprocessor environment, a PS TV flag, a RIM flag, and a RIF flag are provided at each fetch port, and by monitoring the transfer of cache lines between processors, a TSO violation between processors can be prevented. Can be prevented. Such a TSO guarantee technique in a multiprocessor is disclosed in, for example, US Pat. No. 5,699,538. Techniques related to cache memories are disclosed in JP-A-10-116192, JP-A-10-232839, JP-A-2000-259498, and JP-A-2001-195301.
しかしながら、 マルチスレッド方式を採用するコンピュータシステムでは、 プ ロセッサ間での T S O保証だけでは不十分であるという問題点がある。 ここで、 マルチスレッド方式とは、 一つのプロセッサが複数のスレッド (命令列) を同時 に実行する方式である。 すなわち、 マルチスレッド方式を採用するコンピュータ システムでは、 一次キャッシュを異なるスレッド間で共有することになり、 プロ セッサ間でのキヤッシユラインの受け渡しだけではなく、 同一キヤッシュのスレ ッド間での受け渡しを監視する必要がある。  However, in a computer system that employs a multi-thread method, there is a problem that it is not sufficient to guarantee TSO only between processors. Here, the multi-thread method is a method in which one processor executes a plurality of threads (instruction strings) simultaneously. In other words, in a computer system that employs a multi-thread system, the primary cache is shared between different threads, and it monitors not only the transfer of cache lines between processors, but also the transfer between threads of the same cache. There is a need.
この発明は、 上述した従来技術による問題点を解消するためになされたもので あり、 スレツド間での共有データの読み出しおよび書き込みの実行順序の一貫个生 を保証することができる記憶制御装置、 データキャッシュ制御装置、 中央処理装 置、 記憶装置制御方法、 データキャッシュ制御方法およびキャッシュ制御方法を 提供することを目的としている。 発明の開示 SUMMARY OF THE INVENTION The present invention has been made to solve the above-described problem of the related art, and has a storage control device and a data storage device that can guarantee consistent execution order of reading and writing of shared data between threads. It is an object of the present invention to provide a cache control device, a central processing unit, a storage device control method, a data cache control method, and a cache control method. Disclosure of the invention
上述した課題を解決し、 目的を達成するため、 本発明は、 同時に実行される複 数のスレツドで共有され、 該スレツドから発行されるメモリアクセス要求の処理 をおこなう記憶制御装置であって、 複数の命令処理装置間で共有されるデータに 対する該複数の命令処理装置間の読み出しおよび書き込みの実行順序の一貫性の 保証をおこなう一貫性保証手段と、 前記メモリアクセス要求で指定されたァドレ スのデータを記憶している場合に該記憶しているデータを登録したスレッドと該 メモリアクセス要求を発行したスレッドが同一である力否かを判定するスレツド 判定手段と、 前記スレツド判定手段の判定結果に基づいて前記一貫性保証手段を 動作させる一貫性保証動作起動手段と、 を備えたことを特徴とする。  In order to solve the above-mentioned problems and achieve the object, the present invention is directed to a storage control device that is shared by a plurality of threads that are executed simultaneously and that processes a memory access request issued from the threads. A consistency assurance means for assuring the consistency of the execution order of reading and writing between the plurality of instruction processing devices with respect to data shared between the instruction processing devices, and an address specified by the memory access request. A thread judging unit for judging whether or not the thread that registered the stored data and the thread that issued the memory access request are the same when the data is stored; and a judgment result of the thread judging unit. And a consistency assurance operation starting means for operating the consistency assurance means based on the information.
また、 本発明は、 同時に実行される複数のスレッドから発行されるメモリァク セス要求の処理をおこなう記憶装置制御方法であつて、 前記メモリアクセス要求 で指定されたアドレスのデータを記憶している場合に該記憶しているデータを登 録したスレツドと該メモリアクセス要求を発行したスレツドが同一であるか否か を判定するスレッド判定工程と、 前記スレッド判定工程の判定結果に基づいて、 複数の命令処理装置間で共有されるデータに対する該複数の命令処理装置間の読 み出しおよび書き込みの実行順序の一貫性の保証をおこなう一貫性保証機構を動 作させる一貫性保証動作起動工程と、 を含んだことを特徴とする。  Further, the present invention relates to a storage device control method for processing a memory access request issued from a plurality of threads executed at the same time, and stores data at an address specified by the memory access request. A thread judging step of judging whether or not the thread at which the stored data is registered is the same as the thread at which the memory access request is issued; and a plurality of instruction processing based on the judgment result of the thread judging step. A consistency assurance operation initiating step of operating a consistency assurance mechanism that guarantees consistency of the execution order of reading and writing between the plurality of instruction processing devices with respect to data shared between the devices. It is characterized by the following.
かかる発明によれば、 メモリアクセス要求で指定されたアドレスのデータを記 憶している場合に記憶しているデータを登録したスレッドとメモリアクセス要求 を発行したスレッドが同一である力否かを判定し、 判定結果に基づいて、 複数の 命令処理装置間で共有されるデータに対する複数の命令処理装置間の読み出しお よび書き込みの実行順序の一貫性の保証をおこなう一貫性保証機構を動作させる こととしたので、 スレツド間での共有データの読み出しおよび書き込みの実行順 序の一貫性を保証することができる。  According to this invention, when the data at the address specified by the memory access request is stored, it is determined whether the thread that registered the stored data and the thread that issued the memory access request are the same. And operating a consistency assurance mechanism that guarantees consistency of the execution order of reading and writing between the plurality of instruction processing devices with respect to data shared among the plurality of instruction processing devices based on the determination result. Therefore, it is possible to guarantee the consistency of the execution order of reading and writing of the shared data between the threads.
また、 本発明は、 同時に実行される複数のスレッドで共有され、 該スレッドか ら発行されるメモリアクセス要求の処理をおこなうデータキヤッシュ制御装置で あって、 複数の命令処理装置間で共有されるデータに対する該複数の命令処理装 置間の読み出しおよび書き込みの実行順序の一貫性の保証をおこなう一貫性保証 手段と、 前記メモリアクセス要求で指定されたァドレスのデータを含むキヤッシ ュラインを記憶している場合に該記憶しているキヤッシュラインを登録したスレ ッドと該メモリアクセス要求を発行したスレツドが同一である力否かを判定する スレツド判定手段と、 前記スレッド判定手段が同一でないと判定した場,合に、 前 記一貫性保証手段を動作させる一貫性保証動作起動手段と、 を備えたことを特徴 とする。 In addition, the present invention provides a method in which a plurality of threads executed simultaneously execute a shared thread. A data cache control device for processing a memory access request issued from a plurality of instruction processing devices, comprising: a data cache control device for processing a memory access request issued from the plurality of instruction processing devices; A consistency assurance means for performing assurance, and when storing a cache line including data of an address specified in the memory access request, a thread in which the stored cache line is registered and the memory access request. A thread judging means for judging whether or not the issued threads are the same, and a consistency assurance operation starting means for operating the consistency assurance means when the thread judging means judges that they are not the same. It is characterized by having.
また、 本発明は、 同時に実行される複数のスレッドから発行されるメモリァク セス要求の処理をおこなうデータキヤッシュ制御方法であって、 前記メモリアク セス要求で指定されたァドレスのデータを含むキヤッシュラインを記憶している 場合に該記憶しているキヤッシュラインを登録したスレッドと該メモリアクセス 要求を発行したスレツドが同一である力否かを判定するスレツド判定工程と、 前 記スレッド判定工程が同一でないと判定した場合に、 複数の命令処理装置間で共 有されるデータに対する該複数の命令処理装置間の読み出しおよび書き込みの実 行順序の一貫性の保証をおこなう一貫性保証機構を動作させる一貫性保証動作起 動工程と、 を含んだことを特徴とする。  The present invention also relates to a data cache control method for processing a memory access request issued from a plurality of threads executed simultaneously, and stores a cache line including data of an address specified by the memory access request. In this case, it is determined that the thread in which the stored cache line is registered and the thread that issued the memory access request are the same, and a thread determination step for determining whether or not the force is the same, and the thread determination step is not the same. In such a case, a consistency assurance operation that activates a consistency assurance mechanism that guarantees consistency of the execution order of reading and writing between the plurality of instruction processing devices with respect to data shared among the plurality of instruction processing devices. And a moving step.
かかる発明によれば、 メモリアクセス要求で指定されたァドレスのデータを含 むキャッシュラィンを記憶している場合に記憶しているキャッシュラインを登録 したスレツドとメモリアクセス要求を発行したスレッドが同一であるか否かを判 定し、 同一でないと判定した場合に、 複数の命令処理装置間で共有されるデータ に対する複数の命令処理装置間の読み出しおよび書き込みの実行順序の一貫性の 保証をおこなう一貫性保証機構を動作させることとしたので、 スレツド間での共 有データの読み出しおよび書き込みの実行順序の一貫性を保証することができる また、 本発明は、 複数のスレッドを同時に実行する命令処理装置と一次データ キャッシュ装置との組を複数有し、 該複数の組の一次データキャッシュ装置で共 有される二次キャッシュ装置を有する中央処理装置であって、 前記複数の組のそ れぞれの一次データキヤッシュ装置は、 他の組の一次データキヤッシュ装置と共 有するキヤッシュラインに対する複数の命令処理装置間の読み出しおよび書き込 みの実行順序の一貫性の保証をおこなう一貫性保証手段と、 前記命令処理装置か らのメモリアクセス要求と物理ァドレスが一致するキャッシュラインが異なるス レツドによって登録されている場合に前記二次キャッシュ装置に対して該キヤッ シュラインの取り込み要求をおこなう取り込み要求手段と、 前記二次キヤッシュ 装置からの要求に基づく前記キヤッシュラインの無効化または吐き出しを実行し て前記一貫性保証手段を動作させる吐き出し実行手段と、 を備え、 前記二次キヤ ッシュ装置は、 前記キヤッシュラインの取り込み要求を受けたキヤッシュライン が他のスレツドにより前記一次データキャッシュ装置に登録されている場合には 前記キヤッシユラインの無効化または吐き出しの実行を該一次データキヤッシュ 装置に要求する吐き出し要求手段を備えたことを特徴とする。 According to this invention, when the cache line including the data of the address specified by the memory access request is stored, the thread that registered the stored cache line and the thread that issued the memory access request are the same. Is determined to be the same or not, and when it is determined that they are not the same, consistency that guarantees the consistency of the execution order of reading and writing between multiple instruction processing units for data shared between multiple instruction processing units Since the guarantee mechanism is operated, it is possible to guarantee the consistency of the execution order of reading and writing of shared data between the threads.The present invention also provides an instruction processing device that executes a plurality of threads simultaneously. Primary data A central processing unit having a plurality of sets with a cache device, and having a secondary cache device shared by the plurality of sets of primary data cache devices, wherein each of the plurality of sets has a primary data cache. The apparatus comprises: a consistency assurance means for guaranteeing consistency of the execution order of reading and writing between a plurality of instruction processing units for a cache line shared with another set of primary data cache units; and When a cache line having the same physical address as the memory access request is registered by a different thread, a fetch requesting means for making a request to fetch the cache line to the secondary cache device; and the secondary cache. The cache line is invalidated or discharged based on a request from the device, and the A discharge execution means for operating the property assurance means, wherein the secondary cache device is provided when the cache line which has received the request for taking in the cache line is registered in the primary data cache device by another thread. Is characterized by comprising a discharge requesting means for requesting the primary data cache device to invalidate or discharge the cache line.
また、 本発明は、 複数のスレッドを同時に実行する命令処理装置と一次データ キヤッシュ装置の組を複数有し、 該複数の組の一次データキヤッシュ装置で共有 される二次キャッシュ装置を有する中央処理装置で用いられるキャッシュ制御方 法あって、 前記一次データキヤッシュ装置が、 前記命令処理装置からのメモリァ クセス要求と物理ァドレスが一致するキャッシュラインが異なるスレツドによつ て登録されている場合に前記二次キャッシュ装置に対して該キャッシュラインの 取り込み要求をおこなう取り込み要求工程と、 前記二次キャッシュ装置が、 前記 キャッシュラインの取り込み要求を受けたキヤッシュラインが他のスレッドによ り前記一次データキャッシュ装置に登録されている場合には前記キャッシュライ ンの無効化または吐き出しの実行を該一次データキヤッシュ装置に要求する吐き 出し要求工程と、 前記一次データキャッシュ装置が、 前記二次キャッシュ装置か らの要求に基づき前記キャッシュラインの無効化または吐き出しを実行すること によって、 他の組の一次データキャッシュ装置と共有するキャッシュラインに対 する複数の命令処理装置間の読み出しおよび書き込みの実行順序の一貫性の保証 をおこなう一貫性保証機構を動作させる吐き出し実行工程と、 を含んだことを特 徴とする。 The present invention also provides a central processing unit having a plurality of sets of an instruction processing device and a primary data cache device for simultaneously executing a plurality of threads, and having a secondary cache device shared by the plurality of sets of the primary data cache devices. In the cache control method used in the above, when the primary data cache device is registered by a different thread when a cache line whose physical address matches a memory access request from the instruction processing device is registered by a different thread. A fetch requesting step of making a fetch request for the cache line to the cache device; and the secondary cache device registers the cache line, which has received the cache line fetch request, in the primary data cache device by another thread. Invalidation of the cache line, if any Or a discharge requesting step of requesting the primary data cache device to execute a discharge, and the primary data cache device invalidating or discharging the cache line based on a request from the secondary cache device. For cache lines shared with other sets of primary data cache devices. And a discharge execution step for operating a consistency assurance mechanism for assuring the consistency of the read and write execution order among a plurality of instruction processing devices.
かかる発明によれば、 一次データキャッシュ装置が、 命令処理装置からのメモ リアクセス要求と物理ァドレスが一致するキャッシュラインが異なるスレツドに よって登録されている場合に二次キャッシュ装置に対してキャッシュラインの取 り込み要求をおこない、 二次キャッシュ装置が、 キャッシュラインの取り込み要 求を受けたキャッシュラインが他のスレッドにより一次データキャッシュ装置に 登録されている場合にはキャッシュラインの無効化または吐き出しの実行を一次 データキャッシュ装置に要求し、 一次データキャッシュ装置が、 二次キャッシュ 装置からの要求に基づきキヤッシュラィンの無効化または吐き出しを実行するこ とによって、 他の *aの一次データキャッシュ装置と共有するキャッシュラインに 対する複数の命令処理装置間の読み出しおよび書き込みの実行順序の一貫性の保 証をおこなう一貫性保証機構を動作させることとしたので、 スレツド間での共有 データの読み出しおよび書き込みの実行順序の一貫性を保証することができる。 また、 本発明は、 同時に実行される複数のスレッドで共有され、 該スレッドか ら発行されるメモリァクセス要求の処理をおこなう記憶制御装置であつて、 命令 処理装置で実行されるスレツドの切り替えが行われる際に、 実行が中断されるス レツドが発行したストァ命令およびフェッチ命令のうちコミットされていない全 てのストア命令およびフェッチ命令を無効とするアクセス無効化手段と、 前記実 行が中断されたスレツドの実行が再開された際に、 コミットされたストァ命令の 実行結果に影響を受けるフェッチ命令を検出し、 検出したフェッチ命令を該スト ァ命令の実行後に実行するように制御するインターロック手段と、 を備えたこと を特徴とする。  According to this invention, the primary data cache device transmits the cache line to the secondary cache device when the cache line whose physical address matches the memory access request from the instruction processing device is registered by different threads. A fetch request is issued, and the secondary cache device invalidates or flushes the cache line if the cache line requested to fetch the cache line is registered in the primary data cache device by another thread. Request to the primary data cache device, and the primary data cache device invalidates or flushes the cache line based on the request from the secondary cache device, thereby sharing it with other * a primary data cache devices. Multiple for cache line The operation of the consistency assurance mechanism that guarantees the consistency of the read and write execution order among the instruction processing units ensures the consistency of the read and write execution order of shared data between threads. can do. Further, the present invention relates to a storage controller shared by a plurality of threads executed at the same time, and for processing a memory access request issued from the thread, wherein a thread executed by the instruction processor is switched. Access invalidating means for invalidating all uncommitted store instructions and fetch instructions among the store instructions and fetch instructions issued by the thread whose execution is interrupted, and the thread whose execution is interrupted. Interlock means for detecting a fetch instruction affected by the execution result of the committed store instruction when execution of the stored instruction is resumed, and controlling the detected fetch instruction to be executed after the execution of the store instruction; It is characterized by having.
また、 本発明は、 同時に実行される複数のスレッドから発行されるメモリァク セス要求の処理をおこなう記憶装置制御方法であって、 命令処理装置で実行され るスレツドの切り替えが行われる際に、 実行が中断されるスレツドが発行したス トァ命令おょぴフェッチ命令のうちコミツトされていない全てのストァ命令およ びフェツチ命令を無効とするアクセス無効化工程と、 前記実行が中断されたスレ ッドの実行が再開された際に、 コミットされたストァ命令の実行結果に影響を受 けるフェッチ命令を検出し、 検出したフェツチ命令を該ストァ命令の実行後に実 行するように制御するインターロック工程と、 を含んだことを特徴とする。 かかる発明によれば、 命令処理装置で実行されるスレツドの切り替えが行われ る際に、 実行が中断されるスレツドが発行したストァ命令およびフェッチ命令の うちコミツトされていない全てのスドア命令およびフェッチ命令を無効とし、 実 行が中断されたスレツドの実行が再開された際に、 コミットされたストァ命令の 実行結果に影響を受けるフェッチ命令を検出し、 検出したフェッチ命令をストァ 命令の実行後に実行するように制御することとしたので、 スレツド間での共有デ ータの読み出しおよび書き込みの実行順序の一貫性を保証することができる。 図面の簡単な説明 Further, the present invention is a storage device control method for processing a memory access request issued from a plurality of threads that are executed simultaneously, wherein the execution is performed when a thread executed by the instruction processing device is switched. The thread issued by the suspended thread An access invalidating step of invalidating all uncommitted store instructions and fetch instructions among the store instructions and the fetch instruction; and, when the execution of the thread whose execution has been interrupted is resumed, An interlock step of detecting a fetch instruction affected by an execution result of a committed store instruction and controlling the detected fetch instruction to be executed after the execution of the store instruction. . According to this invention, when the thread executed by the instruction processing device is switched, all the uncommitted swore instructions and fetch instructions of the store instruction and the fetch instruction issued by the thread whose execution is interrupted are issued. Is disabled, and when execution of the thread whose execution has been suspended is resumed, a fetch instruction that is affected by the execution result of the committed store instruction is detected, and the detected fetch instruction is executed after the execution of the store instruction. With such control, it is possible to guarantee consistency in the execution order of reading and writing of shared data between the threads. BRIEF DESCRIPTION OF THE FIGURES
第 1図は、 本実施の形態 1に係る C P Uの構成を示す機能プロック図であり、 第 2図は、 キャッシュタグの一例を示す図であり、 第 3図は、 第 1図に示したキ ャッシュ制御部の処理手順を示すフローチャートであり、 第 4図は、 キャッシュ 制御部と二次キヤッシュュニットの間の M I処理の処理手順を示すフローチヤ一 トであり、 第 5図は、 本実施の形態 2に係る C P Uの構成を示す機能ブロック図 であり、 第 6図は、 本実施の形態 2に係るキヤッシュ制御部の動作を説明するた めの説明図であり、 第 7図は、 本実施の形態 2に係るキャッシュ制御部の処理手 順を示すフローチャートであり、 第 8図は、 MO R処理の処理手順を示すフロー チャートであり、 第 9図は、 マルチプロセッサにおける T S O違反およびその監 視原理を説明するための説明図である。 発明を実施するための最良の形態  FIG. 1 is a functional block diagram showing a configuration of a CPU according to the first embodiment, FIG. 2 is a diagram showing an example of a cache tag, and FIG. 3 is a key diagram shown in FIG. FIG. 4 is a flowchart showing the processing procedure of the cache control unit. FIG. 4 is a flowchart showing the processing procedure of the MI processing between the cache control unit and the secondary cache unit. FIG. 6 is a functional block diagram showing a configuration of a CPU according to Embodiment 2, FIG. 6 is an explanatory diagram for explaining an operation of a cache control unit according to Embodiment 2, and FIG. FIG. 8 is a flowchart showing a processing procedure of a cache control unit according to Embodiment 2; FIG. 8 is a flowchart showing a processing procedure of MOR processing; FIG. 9 is a TSO violation in a multiprocessor and monitoring thereof Theory to explain the principle FIG. BEST MODE FOR CARRYING OUT THE INVENTION
以下、 添付図面を参照して、 この発明に係る記憶制御装置、 データキャッシュ 制御装置、 中央処理装置、 記憶装置制御方法、 データキャッシュ制御方法および キャッシュ制御方法の好適な実施の形態を詳細に説明する。 なお、 異なるプロセ ッサで実行されるスレツド間の τ s o保証は、 従来どおりキャッシュラインの無 効化 '吐き出しによる R I Mフラグのセットとデータの到着による R I Fフラグ のセットによりおこなう。 したがって、 ここでは、 同一プロセッサで同時に実行 されるスレッド間の T S O保証について説明する。 Hereinafter, a storage control device and a data cache according to the present invention will be described with reference to the accompanying drawings. Preferred embodiments of a control device, a central processing unit, a storage device control method, a data cache control method, and a cache control method will be described in detail. Note that τ so guarantee between threads executed by different processors is performed by setting the RIM flag by invalidating the cache line and setting the RIF flag by arriving data as before. Therefore, here, the TSO guarantee between threads executed simultaneously by the same processor is explained.
実施の形態 1 . Embodiment 1
まず、 本実施の形態 1に係る C P Uの構成について説明する。 第 1図は、 本実 施の形態 1に係る C P Uの構成を示す機能プロック図である。 同図に示すように 、 この C P U 1 0は、 プロセッサコア 1 0 0および 2 0 0と、 二次キャッシュュ ニット 3 0 0とを有し、 二次キャッシュユニット 3 0 0は、 プロセッサコア 1 0 0および 2 0 0によって共有される。  First, the configuration of the CPU according to the first embodiment will be described. FIG. 1 is a functional block diagram showing a configuration of a CPU according to the first embodiment. As shown in the figure, the CPU 10 has processor cores 100 and 200 and a secondary cache unit 300, and the secondary cache unit 300 has a processor core 100 And shared by 200.
なお、 ここでは説明の便宜上、 C P U 1 0が 2個のプロセッサコアを有する場 合を示したが、 C P U 1 0は、 プロセッサコアを 1個だけ有する場合、 あるいは 、 より多くのプロセッサコアを有する場合もある。 また、 プロセッサコア 1 0 0 および 2 0 0はいずれも同様の構成を有するので、 ここではプロセッサコア 1 0 0を例にとって説明する。  Here, for convenience of explanation, the case where the CPU 10 has two processor cores is shown, but the CPU 10 has only one processor core, or has more processor cores. There is also. Further, since both the processor cores 100 and 200 have the same configuration, the processor core 100 will be described here as an example.
プロセッサコア 1 0 0は、 命令ュ-ット 1 1 0と、 演算ュニット 1 2 0と、 一 次命令キャッシュュニット 1 3 0と、 一次データキャッシュュエツト 1 4 0とを 有する。  The processor core 100 has an instruction unit 110, an operation unit 120, a primary instruction cache unit 130, and a primary data cache unit 140.
命令ュ-ット 1 1 0は、 命令を解読して実行する処理部であり、 MT (Multi T hread)制御部が二つのスレッド 「スレッド 0」 および 「スレッド 1」 を制御して 、 同時に実行する。  The instruction cut 110 is a processing unit that decodes and executes instructions. An MT (Multi Thread) control unit controls two threads “thread 0” and “thread 1” and executes them simultaneously. I do.
演算ュニット 1 2 0は、 汎用レジスタ、 浮動小数点レジスタ、 固定小数点演算 器、 浮動小数点演算器などを有し、 固定小数点演算および浮動小数点演算を実行 する処理部である。  The arithmetic unit 120 is a processing unit that includes a general-purpose register, a floating-point register, a fixed-point arithmetic unit, a floating-point arithmetic unit, and executes fixed-point arithmetic and floating-point arithmetic.
一次命令キャッシュュニット 1 3 0および一次データキャッシュュニット 1 4 0は、 主記憶装置に記憶された命令およびデータをそれぞれ高速にアクセスする ために主記憶装置の一部を記憶した記憶部である。 Primary instruction cache unit 1 3 0 and primary data cache unit 1 4 Reference numeral 0 denotes a storage unit that stores a part of the main storage device for accessing the instructions and data stored in the main storage device at high speed.
二次キャッシュュニット 3 0 0は、 一次命令キャッシュュニット 1 3 0および 一次データキャッシュュニット 1 4 0の容量不足を補うために、 より多くの主記 憶装置の命令およびデータを記憶した記憶部であり、 システムコントローラを介 して主記憶装置に接続される。  The secondary cache unit 300 stores more main storage unit instructions and data to compensate for the lack of capacity of the primary instruction cache unit 130 and the primary data cache unit 140. And is connected to the main storage device via the system controller.
次に、 一次データキャッシュュニット 1 4 0の詳細について説明する。 この一 次データキヤッシュュ二ット 1 4 0は、 キャッシュメモリ 1 4 1とキヤッシュ制 御部 1 4 2とを有し、 キャッシュメモリ 1 4 1は、 データを記憶する記憶部であ る。  Next, details of the primary data cache unit 140 will be described. The primary data cache 144 has a cache memory 141 and a cache control unit 142, and the cache memory 141 is a storage unit for storing data.
キヤッシュ制御部 1 4 2は、 キャッシュメモリ 1 4 1に記憶するデータを管理 する処理部であり、 T L B (Translation Look-aside Buffer) 1 4 3と、 T AG 部 1 4 4と、 T AG—MA T C H検出部 1 4 5と、 M I B (Move In Buffer) 1 4 6と、 MOZB I処理部 1 4 7と、 フェッチ 'ポート 1 4 8とを有する。  The cache control unit 144 is a processing unit that manages data stored in the cache memory 141, and includes a TLB (Translation Look-aside Buffer) 144, a TAG unit 144, and a TAG-MA. It has a TCH detection unit 145, a MIB (Move In Buffer) 146, a MOZB I processing unit 147, and a fetch 'port 148.
T L B 1 4 3は、 仮想ァドレス(V A: Virtual Address)から物理ァドレス(P A: Physical Address)へのァドレス変換を高速におこなう処理部であり、 命令 ュニット 1 1 0から受け取った仮想ァドレスを物理ァドレスに変換して T AG— MA T C H検出部1 4 5に出力する。  The TLB 143 is a processing unit that performs high-speed address conversion from a virtual address (VA: Virtual Address) to a physical address (PA: Physical Address), and converts a virtual address received from the instruction unit 110 into a physical address. The signal is converted and output to the TAG-MA TCH detector 144.
T AG部 1 4 4は、 キャッシュメモリ 1 4 1上に登録されているキヤッシユラ ィンを管理する処理部であり、 命令ュ-ット 1 1 0から受け取った仮想ァドレス に対応するキャッシュメモリ 1 4 1の場所に登録されているキャッシュラインの 物理アドレス、 スレッド識別子 (I D) などを T AG—MA T C H検出部 1 4 5 に出力する。 ここで、 スレツド識別子は、 キャッシュラインが 「スレツド 0」 と 「スレッド 1」 のいずれのスレツドで使用されているかを識別するための識別子 である。  The TAG unit 144 is a processing unit that manages the cache line registered in the cache memory 141, and the cache memory 144 corresponding to the virtual address received from the instruction cut 110. The physical address and thread identifier (ID) of the cache line registered in the location 1 are output to the TAG-MA TCH detection unit 144. Here, the thread identifier is an identifier for identifying whether the cache line is used in “thread 0” or “thread 1”.
第 2図は、 T AG部 1 4 4力 キャッシュメモリ 1 4 1に登録されているキヤ ッシュラィンを管理するための情報であるキヤッシュタグの一例を示す図である 。 同図に示すように、 キャッシュタグには、 キャッシュラインが有効 (Valid)か 否かを示す Vビット、 キャッシュラインの共有型および排他型をそれぞれ示す S ビットおよび Eビット、 キャッシュラインを使用しているスレツドを示す I D、 キャッシュラインの物理アドレスを示す PAが含まれる。 なお、 キャッシュライ ンが共有型である場合には、 そのキャッシュラインは同時期に他のプロセッサで 保持されている可能性があり、 キャッシュラインが排他型である場合には、 その キヤッシユラインは同時期に他のプロセッサで保持されていることはない。 FIG. 2 is a diagram showing an example of a cache tag which is information for managing a cache line registered in the cache unit 144 of the TAG unit 144. . As shown in the figure, the cache tag uses a V bit that indicates whether the cache line is valid (Valid), an S bit and an E bit that indicate the shared type and exclusive type of the cache line, and a cache line. It includes an ID that indicates the thread that is in use, and a PA that indicates the physical address of the cache line. If the cache line is of the shared type, the cache line may be held by another processor at the same time. If the cache line is of the exclusive type, the cache line may be held at the same time. Is not held by another processor.
TAG— MATCH検出部 145は、 TLB 1 43から受け取った物理ァドレ スおよび命令ュニット 1 1 0から受け取ったスレツド識別子と、 TAG部 144 力 ら受け取った物理ァドレスおよびスレツド識別子とを比較する処理部である。 この TAG—MATCH検出部 145は、 物理ァドレスおよびスレツド識別子が 一致して Vビットがセットされている場合には、 キャッシュメモリ 14 1に登録 されているキャッシュラインを使用し、 他の場合には、 MI B 146に対して物 理ァドレスおよびスレツド識別子を指定して、 命令ユエット 1 10が要求するキ ャッシユラインを二次キャッシュュニット 300から取ってくるように指示する この TAG— MATCH検出部 145が、 TLB 143から受け取った物理ァ ドレスと TAG部 144から受け取った物理ァドレスとを比較するだけでなく、 命令ュニット 1 10から受け取ったスレツド識別子と TAG部 144から受け取 つたスレツド識別子とを比較することによって、 命令ュニット 1 10が要求する キャッシュラインがキャッシュメモリ 14 1にあるか否かだけでなく、 キヤッシ ユラインを要求したスレツドとキャッシュメモリ 14 1にあるキャッシュライン を登録したスレツドとが同一のスレツドである力否かを判定し、 判定結果に基づ いて異なる処理をおこなうことができる。  The TAG-MATCH detection unit 145 is a processing unit that compares the physical address received from the TLB 143 and the thread identifier received from the instruction unit 110 with the physical address and the thread identifier received from the TAG unit 144. . The TAG-MATCH detection unit 145 uses the cache line registered in the cache memory 141 when the physical address and the thread identifier match and the V bit is set, and in other cases, The physical address and the thread identifier are specified to the MI B 146 to instruct the instruction unit 110 to fetch the cache line requested by the instruction unit 110 from the secondary cache unit 300. This TAG-MATCH detection unit 145 In addition to comparing the physical address received from the TLB 143 with the physical address received from the TAG unit 144, by comparing the thread identifier received from the instruction unit 110 with the thread identifier received from the TAG unit 144, Instruction unit 1 10 not only determines whether the cache line is in cache memory 14 1 but also It can be the threads that registered the cache line in the threads and the cache memory 14 1 that requested it is determined force whether the same threads, performs different processing based on the determination result.
MI B 146は、 二次キャッシュユニット 300に対して物理アドレスを指定 してキャッシュラインの取り込み要求 (Ml要求) をおこなう処理部である。 ま た、 この MI B 146によって取り込まれたキャッシュラインに対応して、 TA G部 144のキャッシュタグおよびがキャッシュメモリ 141の内容が更新され る。 The MIB 146 is a processing unit that issues a cache line fetch request (Ml request) by designating a physical address to the secondary cache unit 300. Also, corresponding to the cache line fetched by this MI B 146, TA The cache tag of the G section 144 and the contents of the cache memory 141 are updated.
MO/B I処理部 147は、 二次キャッシュュエツト 300からの要求に基づ いてキャッシュメモリ 141の特定のキャッシュラインの無効化または吐き出し をおこなう処理部である。 この MOZB I処理部 147が特定のキャッシュライ ンを無効化または吐き出すことによってフェッチ 'ポート 148の R I Mフラグ をセットすることができ、 プロセッサ間での T SO保証機構をスレツド間の TS 〇保証機構として利用することができる。  The MO / BI processing unit 147 is a processing unit that invalidates or discharges a specific cache line in the cache memory 141 based on a request from the secondary cache widget 300. The MOZB I processing unit 147 can set the RIM flag of the fetch port 148 by invalidating or flushing a specific cache line, and the TSO guarantee mechanism between processors can be used as a TS guarantee mechanism between threads. Can be used.
フェッチ ·ポート 148は、 命令ュニット 1 10からの各アクセス要求に対し て、 アクセス先のアドレス、 PSTVフラグ、 R IMフラグ、 R I Fフラグなど を記憶する記憶部である。  The fetch port 148 is a storage unit that stores an access destination address, a PSTV flag, a RIM flag, a RIF flag, and the like in response to each access request from the instruction unit 110.
次に、 第 1図に示したキヤッシュ制御部 142の処理手順について説明する。 第 3図は、 第 1図に示したキャッシュ制御部 142の処理手順を示すフローチヤ ートである。 同図に示すように、 このキャッシュ制御部 142は、 TLB 143 が仮想アドレスを物理アドレスに変換し、 TAG部 144がキャッシュタグを用 いて仮想ァドレスから物理ァドレス、 スレツド識別子および Vビットを取得する Next, the processing procedure of the cache control unit 142 shown in FIG. 1 will be described. FIG. 3 is a flowchart showing a processing procedure of the cache control unit 142 shown in FIG. As shown in the figure, in the cache control unit 142, the TLB 143 converts a virtual address into a physical address, and the TAG unit 144 obtains a physical address, a thread identifier, and a V bit from the virtual address using a cache tag.
(ステップ S 301) 。 (Step S301).
そして、 TAG— MATCH検出部 145が TLB 143から入力した物理ァ ドレスと TAG部 144から入力した物理ァドレスとを比較し、 命令ュ-ット 1 10が要求するキャッシュラインがキャッシュメモリ 141にあるか否かを調べ る (ステップ S 302) 。 その結果、 両方の物理アドレスが一致した場合には、 命令ュニット 1 10から入力したスレツド識別子と TAG部 144から入力した スレツド識別子とを比較し、 キャッシュメモリ 141上のキャッシュラインを同 —のスレッドが使用しているか否かを調べる (ステップ S 303) 。  Then, the TAG—MATCH detection unit 145 compares the physical address input from the TLB 143 with the physical address input from the TAG unit 144, and determines whether the cache line requested by the instruction cut 110 is in the cache memory 141. It is checked whether or not it is (step S302). As a result, if the two physical addresses match, the thread identifier input from the instruction unit 110 is compared with the thread identifier input from the TAG unit 144, and the same thread in the cache line in the cache memory 141 is used. It is checked whether it is used (step S303).
そして、 スレッド識別子が両方とも一致した場合には、 さらに、 Vビットがセ ットされているか否かを調べる (ステップ S 304) 。 その結果、 Vビットがセ ットされている場合には、 命令ュニット 110が要求するキャッシュラインがキ ャッシュメモリ 141にあり、 スレッドが同一でキャッシュラインが有効である ので、 キャッシュ制御部 142は、 データ部のデータを使用する (ステップ S 3 05) 。 Then, when both the thread identifiers match, it is further checked whether or not the V bit is set (step S304). As a result, if the V bit is set, the cache line requested by instruction unit 110 is keyed. Since the cache memory 141 has the same thread and the cache line is valid, the cache control unit 142 uses the data in the data section (step S305).
一方、 物理アドレスが一致しない場合、 スレッド識別子が一致しない場合また は Vビットがセットされていない場合には、 命令ュニット 1 10で実行されてい るスレツドが要求したキャッシュラインと物理ァドレスが一致するキャッシュラ インがないか、 物理アドレスが一致しても異なるスレッドが使用しているか、 キ ャッシユラインが無効である場合であるので、 キャッシュメモリ 141のデータ を使用することができず、 MI B 146が二次キャッシュュニット 300からキ ャッシユラインを取り込む (ステップ S 306) 。 そして、 キャッシュ制御部 1 42は、 取り込んだキャッシュラインのデータを使用する (ステップ S 307) このように、 TAG— MATCH検出部 145が物理ァドレスだけでなくスレ ッド識別子が一致するか否かを調べることによって、 キヤッシュ制御部 142は 、 スレッド間でのキャッシュラインの制御をおこなうことができる。  On the other hand, if the physical address does not match, if the thread identifier does not match, or if the V bit is not set, a cache whose physical address matches the cache line requested by the thread executing in instruction unit 110 If there is no line, the physical address matches, but a different thread is using the cache line, or the cache line is invalid, the data in the cache memory 141 cannot be used. The cache line is fetched from the next cash unit 300 (step S306). Then, the cache control unit 142 uses the data of the fetched cache line (step S307). Thus, the TAG-MATCH detection unit 145 determines whether the thread identifier matches not only the physical address but also whether or not the thread identifier matches. By checking, the cache control unit 142 can control a cache line between threads.
次に、 キヤッシュ制御部 142と二次キヤッシュュ-ット 300の間のキヤッ シュラインの取り込み処理 (Ml処理) の処理手順について説明する。 第 4図は 、 キヤッシュ制御部 142と二次キヤッシュユエット 300の間の M I処理の処 理手順を示すフローチャートである。 なお、 この Ml処理は、 第 3図に示したキ ャッシュ制御部 142のステップ S 306の処理とこれに対応して二次キヤッシ ュュュット 300がおこなう処理である。  Next, a description will be given of a processing procedure of a cache line fetching process (Ml process) between the cache control unit 142 and the secondary cache cut 300. FIG. 4 is a flowchart showing a processing procedure of the MI processing between the cache control unit 142 and the secondary cache unit 300. This Ml process is a process performed by the secondary cache 300 in step S306 of the cache control unit 142 shown in FIG. 3 and correspondingly.
同図に示すように、 この Ml処理では、 一次データキャッシュユニット 140 のキャッシュ制御部 142が二次キャッシュュニット 300に対して Ml要求を おこなう (ステップ S 401) 。 すると、 二次キャッシュユニット 300は、 M I要求を受けたキャッシュラインが一次データキャッシュュニット 140に別ス レツドで登録されているか否かを調べ (ステップ S 402) 、 別スレツドで登録 されている場合には、 R IMフラグをセットするためにキャッシュ制御部 142 に対して MO/B I要求をおこなう (ステップ S 4 0 3 ) 。 As shown in the figure, in this Ml processing, the cache control unit 142 of the primary data cache unit 140 issues an Ml request to the secondary cache unit 300 (step S401). Then, the secondary cache unit 300 checks whether or not the cache line receiving the MI request has been registered in the primary data cache unit 140 at another thread (step S402), and if the cache line has been registered at another thread. In order to set the RIM flag, An MO / BI request is made to the user (step S403).
なお、 M l要求を受けたキャッシュラインが一次データキャッシュュニット 1 The cache line receiving the Ml request is the primary data cache unit 1
4 0に別スレツドで登録されているか否かの判定は、 シノニム制御を利用してお こなう。 ここで、 シノニム制御とは、 二次キャッシュユニット側で一次キヤッシ ュユエットに登録されているアドレスを管理し、 同一物理アドレスのキャッシュ ラインが一次キヤッシュュニットに複数登録されないようにする制御である。 そして、 キヤッシュ制御部 1 4 2の MO/B I処理部 1 4 7が MO/B I処理 を実行して R I Mフラグをセットした後 (ステップ S 4 0 4 ) 、 二次キャッシュ ュニット 3 0 0は、 キャッシュラインを送出し (ステップ S 4 0 5 ) 、 キヤッシ ユラインを受け取ったキャッシュ制御部 1 4 2は、 スレツド識別子とともにキヤ ッシユラインを登録する (ステップ S 4 0 6 ) 。 また、 キャッシュラインの到着 により、 R I Fフラグがセットされる。 Judgment as to whether or not 40 is registered in another thread is performed using synonym control. Here, the synonym control is a control that manages addresses registered in the primary cache unit on the secondary cache unit side and prevents multiple cache lines of the same physical address from being registered in the primary cache unit. Then, after the MO / BI processing unit 147 of the cache control unit 142 executes the MO / BI processing and sets the RIM flag (step S404), the secondary cache unit 300 The cache control unit 142 sends out the line (step S405) and receives the cache line, and registers the cache line together with the thread identifier (step S406). When the cache line arrives, the RIF flag is set.
一方、 M I要求を受けたキャッシュラインがー次データキャッシュュニット 1 On the other hand, the cache line receiving the MI request is the next data cache unit 1
4 0に別スレツドで登録されていない場合には、 二次キャッシュュニット 3 0 0 は、 MO/B I要求をおこなうことなくキャッシュラインを送出する (ステップIf it is not registered in another thread at 40, the secondary cache unit 300 sends out the cache line without making a MO / BI request (step
5 4 0 5 ) 。 5 4 0 5).
このように、 この M l処理では、 二次キャッシュユニット 3 0 0がシノニム制 御を用いて、 M I要求を受けたキヤッシユラインが一次データキヤッシュュニッ ト 1 4 0に別スレツドで登録されているか否かを調べ、 別スレツドで登録されて いる場合には、 キャッシュ制御部 1 4 2の MOZB I処理部 1 4 7が MO/B I 処理を実行して R I Mフラグをセットすることによって、 プロセッサ間での T S O保証機構をスレツド間での T S O保証機構として用いることができる。  Thus, in this Ml processing, the secondary cache unit 300 uses synonym control to determine whether the cache line receiving the MI request has been registered in the primary data cache unit 140 with another thread. If the thread is registered in another thread, the MOZBI processing section 147 of the cache control section 142 executes the MO / BI processing and sets the RIM flag, and the The TSO guarantee mechanism can be used as a TSO guarantee mechanism between threads.
上述したように、 本実施の形態 1では、 一次データキヤッシュュ二ット 1 4 0 の T AG— MA T C H検出部 1 4 5が、 物理ァドレスが一致するキャッシュライ ンがキャッシュメモリ 1 4 1に登録されている場合にもスレツドスレツド識別子 が異なる場合には二次キャッシュュ-ット 3 0 0に対して M l要求をおこない、 二次キャッシュュニット 3 0 0が M l要求を受けたキャッシュラインが別スレツ ドで一次データキャッシュュニット 1 4 0に登録されている場合には ΜΟΖΒ I 処理の実行をキヤッシュ制御部 1 4 2に要求し、 キヤッシュ制御部 1 4 2が MO /B I処理を実行してフェッチ 'ポート 1 4 8の R I Mフラグを設定することと したので、 プロセッサ間の T S O保証機構を用いてスレツド間での T S〇を保証 することができる。 As described above, in the first embodiment, the TAG—MA TCH detection unit 144 of the primary data cache 144 stores a cache line with the same physical address in the cache memory 144. If the thread identifier is different even if the thread is registered, an Ml request is made to the secondary cache unit 300, and the secondary cache unit 300 receives the Ml request from the cache line. Is another thread If it is registered in the primary data cache unit 140 by the 0 command, it requests the cache control unit 142 to execute I processing, and the cache control unit 142 executes MO / BI processing and fetches 'Since the RIM flag of port 148 is set, TS〇 between threads can be guaranteed using the TSO guarantee mechanism between processors.
なお、 本実施の形態 1では、 二次キャッシュユニット 3 0 0がシノニム制御を 用いて一次データキャッシュュニット 1 4 0に MOZB I要求をおこなう場合に ついて説明したが、 シノニム制御は二次キャッシュュニットの負担を大きくする こと力 ら、 二次キャッシュユニットがシノニム制御を有しない場合もある。 この ような場合には、 一次データキヤッシュュニット側で、 物理ァドレスが一致する キャッシュラインが異なるスレツド識別子でキヤッシュメモリに登録されている 場合に自ら MO/ B I処理をおこなうことによって、 スレツド間での T S Oを保 証することができる。  In the first embodiment, the case where the secondary cache unit 300 issues a MOZB I request to the primary data cache unit 140 using synonym control has been described. Due to the increased burden on the knit, secondary cache units may not have synonym control. In such a case, if the cache line with the same physical address is registered in the cache memory with a different thread identifier on the primary data cache unit side, MO / BI processing is performed by itself, and the TSO can be guaranteed.
この場合、 プロセッサから外部記憶装置へのデータ転送を高速化するために従 来から備えられている、 一次キャッシュユニットから二次キャッシュユニットへ のキヤッシユラインの吐き出し要求をおこなぅプロトコルを用いることができる 。 このプロトコノレでは、 一次キャッシュュニットから二次キャッシュュニットへ 指定したキャッシュラインの吐き出し要求を送り、 要求を受け取った二次キヤッ シュユニットは、 その要求を主記憶制御装置へ転送し、 主記憶制御装置の指示に したがってキャッシュラインを主記憶装置に吐き出す。 したがって、 このキヤッ シュラインの吐き出し動作を用いて、 一次データキャッシュュニットから二次キ ャッシュユニットへキャッシュラインを吐き出すことができる。  In this case, it is possible to use a protocol that is conventionally provided to speed up data transfer from the processor to the external storage device and that issues a cache line flush request from the primary cache unit to the secondary cache unit. . In this protocol, the primary cache unit sends a designated cache line flush request to the secondary cache unit, and the secondary cache unit that receives the request forwards the request to the main storage controller, The cache line is discharged to the main storage device according to the instruction of the device. Therefore, the cache line can be flushed from the primary data cache unit to the secondary cache unit by using the flush operation of the cache line.
実施の形態 2 . Embodiment 2
ところで、 上記実施の形態 1では、 二次キャッシュユニットのシノニム制御ま たは一次データキャッシュュ-ットのキャッシュライン吐き出し要求を用いてフ エッチ■ポートの R I Mフラグを設定する場合について説明した。 しかしながら 、 二次キヤッシュュ二ットにはシノニム制御をおこなう機構がなく、 一次データ キャッシュユニットにはキャッシュライン吐き出し要求をおこなう機構がな!/、場 合もある。 In the first embodiment, the case where the RIM flag of the Fetch @ Port is set using the synonym control of the secondary cache unit or the cache line ejection request of the primary data cache unit has been described. However, the secondary cache has no mechanism for synonym control, and the primary data In some cases, the cache unit does not have a mechanism to issue a cache line flush request!
そこで、 本実 ¾の形態 2では、 キャッシュラインのリプレース時に発生するリ プレースブロックの吐き出し '無効化処理とキヤシュメモリまたは主記憶装置へ のアクセス要求の監視とを用いて T S Oを保証する場合について説明する。 なお 、 本実施の形態 2では、 一次データキャッシュユニットのキャッシュ制御部の動 作が主として本実施の形態 1と異なるので、 キャッシュ制御部の動作について説 明する。  Therefore, in the second embodiment, a description will be given of a case where the TSO is guaranteed by using a process of flushing a replacement block generated when a cache line is replaced and performing invalidation processing and monitoring an access request to a cache memory or a main storage device. I do. In the second embodiment, since the operation of the cache control unit of the primary data cache unit is mainly different from that of the first embodiment, the operation of the cache control unit will be described.
まず、 本実施の形態 2に係る C P Uの構成について説明する。 第 5図は、 本実 施の形態 2に係る C P Uの構成を示す機能ブロック図である。 同図に示すように 、 この C P U 5 0 0は 4つのプロセッサコア 5 1 0〜5 4' 0と 4つのプロセッサ コアで共有される二次キャッシュユニット 5 5 0とを有する。 なお、 4つのプロ セッサコア 5 1 0〜5 4 0はいずれも同様の構成を有するので、 ここではプロセ ッサコア 5 1 0を例にとって説明する。  First, the configuration of the CPU according to the second embodiment will be described. FIG. 5 is a functional block diagram showing a configuration of the CPU according to the second embodiment. As shown in the figure, the CPU 504 has four processor cores 501 to 540 'and a secondary cache unit 550 shared by the four processor cores. Note that the four processor cores 5110 to 5400 all have the same configuration, and therefore, the processor core 510 will be described here as an example.
プロセッサコア 5 1 0は、 命令ュ-ット 5 1 1と、 演算ュニット 5 1 2と、 一 次命令キャッシュュニット 5 1 3と、 一次データキャッシュュエツト 5 1 4とを 有する。  The processor core 510 includes an instruction unit 511, an operation unit 511, a primary instruction cache unit 513, and a primary data cache unit 514.
命令ュニット 5 1 1は、 命令ュニット 1 1 0と同様に命令を解読して実行する 処理部であり、 MT (Multi Thread)制御部が 「スレッ ド 0」 および 「スレッド 1 」 を制御して、 二つのスレッドを同時に実行する。  The instruction unit 5 11 1 is a processing unit that decodes and executes an instruction in the same manner as the instruction unit 1 10, and an MT (Multi Thread) control unit controls “thread 0” and “thread 1”, Run two threads simultaneously.
演算ュニット 5 1 1は、 演算ュニット 1 2 0と同様に固定小数点演算および浮 動小数点演算を実行する処理部であり、 一次命令キャッシュュニット 5 1 3は、 一次命令キャッシュュニット 1 3 0と同様に主記憶装置に記憶された命令を高速 にアクセスするために主記憶装置の一部を記憶した記憶部である。  The arithmetic unit 5 11 1 is a processing unit that executes fixed-point arithmetic and floating-point arithmetic in the same manner as the arithmetic unit 1 20. The primary instruction cache unit 5 13 is Similarly, it is a storage unit that stores part of the main storage device in order to access the instructions stored in the main storage device at high speed.
—次データキャッシュュニット 5 1 4は、 一次データキャッシュュニット 1 4 —Next data cache unit 5 1 4 is the primary data cache unit 1 4
0と同様に主記憶装置に記憶されたデータを高速にアクセスするために主記憶装 置の一部を記憶した記憶部であるが、 この一次データキャッシュュニット 5 1 4 のキャッシュ制御部 5 1 5は、 物理ァドレスが一致してスレツド識別子が異なる キャッシュラインがキャッシュメモリに登録されている場合には、 M I Bから二 次キャッシュユニットに対して M l要求をおこなわない。 そのかわりに、 このキ ャッシュ制御部 5 1 5は、 物理アドレスが一致したキャッシュラインに対してリ プレースムープアウト (M〇R) 処理をおこなってキャッシュタグに登録された スレツド識別子を変更する。 The primary data cache unit 5 1 4 is a storage unit that stores a part of the main storage device in order to access the data stored in the main storage device at a high speed as in the case of 0. The cache control unit 515 does not issue an Ml request from the MIB to the secondary cache unit when a cache line with a matching physical address and a different thread identifier is registered in the cache memory. Instead, the cache control unit 515 performs a replace move-out (M〇R) process on the cache line whose physical address matches, and changes the thread identifier registered in the cache tag.
そして、 この処理中にフェッチ■ポートを監視し、 一致するアドレスがあれば R I Mフラグぉよび R I Fフラグをセットする。 ただし、 R I Fフラグは、 異な るスレッドからキャッシュメモリまたは主記憶装置への書き込みが発生した場合 にセットすることもできる。 そして、 R I Mフラグと R I Fフラグがともにセッ トされているフェッチ■ポートが S T Vを返すときに命令の再実行を要求するこ とによって T S Oを保証する。  During this process, the fetch port is monitored, and if there is a matching address, the RIM flag and the RIF flag are set. However, the RIF flag can also be set when a different thread writes to the cache memory or main memory. Then, TSO is guaranteed by requesting the instruction to be re-executed when the fetch @ port in which both the RIM flag and the RIF flag are set returns STV.
第 5図は、 このキャッシュ制御部 5 1 5の動作について説明するための説明図 である。 同図は、 キャッシュラインを使用しょうとした命令とキャッシュライン の状態によるキャッシュアクセス動作の分類を示している。 同図に示すように、 このキャッシュ制御部 5 1 5のキヤシュアクセス動作には、 「1 0通り」 のァク セスパターンと 「3通り」 の動作がある。  FIG. 5 is an explanatory diagram for explaining the operation of the cache control unit 515. The figure shows the classification of cache access operations according to the instruction that tried to use the cache line and the state of the cache line. As shown in the figure, the cache access operation of the cache control unit 515 includes “10 patterns” of access patterns and “3 patterns” of operations.
「3通り」 の動作の一つ目は、 キャッシュミスの場合の動作 (①および⑥) で あり、 二次キャッシュュニットに対してキャッシュラインの M l要求をおこない キャッシュラインを取り込む。 そして、 データのロード (load) のためにキヤッ シュラインを必要とした場合 (①) には、 取り込んだキャッシュラインを共有型 で登録し、 データのストア (store) のためにキャッシュラインを必要とした場 合 (⑥) には、 取り込んだキャッシュラインを排他型で登録する。  The first of the three types of operations is the operation in the case of a cache miss (① and ⑥). The Ml request for the cache line is made to the secondary cache unit and the cache line is fetched. When a cache line is required for loading data (①), the acquired cache line is registered in a shared type, and a cache line is required for data store. In this case (⑥), the fetched cache line is registered exclusively.
「3通り」 の動作の二つ目は、 マルチスレッド動作をしない時の通常のキヤッ シュヒット動作 (②、 ③、 ④および⑧) であり、 特別な処理をおこなうことなく 通常のキャッシュヒットと同様の動作をおこない、 キャッシュラインの状態も変 化しない。 「 3通り」 の動作の三つ目は、 マルチスレッド動作中にスレツド間の T S Oを 保証するために発生する動作を含む場合 (⑤、 ⑦、 ⑨および @) であり、 MO R 処理をおこなって R I Mフラグおよび R I Fフラグをセットする。 また、 他のプ 口セッサコアと共有しているキャッシュラインにストアを実行する場合 (⑦) に は、 他のプロセッサコアと共有しているキャッシュラインにストアを実行すると 、 ストァ完了後どのプロセッサコアが保持しているキャッシュラインが最新のキ ャッシユラインであるかがわからなくなるため、 ストアの実行に先立って、 まず 、 キャッシュラインの状態を共有型から 也型へ変更する (B T C) 。 その後、 他のプロセッサコアがその領域を使用してフエツチを完了していた場合に備えて 、 MO R動作をおこなう。 その後にストアが実行される。 The second of the three types of operations is the normal cache hit operation (③, ③, ④, and 時) when the multi-thread operation is not performed, and is the same as the normal cache hit operation without performing any special processing. Operate, and the state of the cache line does not change. The third of the “three” operations is the case that includes operations that occur to guarantee TSO between threads during multi-thread operation (⑤, ⑦, ⑨, and @). Set the RIM and RIF flags. When a store is executed on a cache line shared with another processor core (⑦), if a store is executed on a cache line shared with another processor core, which processor core will be executed after the completion of the store Before the store is executed, the state of the cache line is first changed from the shared type to the shared type (BTC) because it is not known whether the cache line held is the latest cache line. Then, the MOR operation is performed in case another processor core has completed the fetch using the area. After that, the store is executed.
次に、 キャッシュ制御部 5 1 5の処理手順について説明する。 第 7図は、 キヤ ッシュ制御部 5 1 5の処理手順を示すフローチャートである。 同図に示すように 、 このキャッシュ制御部 5 1 5は、 命令ュニット 5 1 1が要求したアクセスが口 ードである力、否かを調べる (ステップ S 7 0 1 ) 。  Next, the processing procedure of the cache control unit 515 will be described. FIG. 7 is a flowchart showing a processing procedure of the cache control unit 515. As shown in the figure, the cache control unit 515 checks whether the access requested by the instruction unit 511 is a password or not (step S701).
その結果、 アクセスがロードである場合 (ステップ S 7 0 1肯定) には、 キヤ ッシュミス力、否かを調べ (ステップ S 7 0 2 ) 、 キャッシュミスの場合には、 M I Bを確保し (ステップ S 7 0 3 ) 、 二次キャッシュユニット 5 5 0に対してキ ャッシユラインを要求する (ステップ S 7 0 4 ) 。 そして、 キャッシュラインが 届くと、 キャッシュラインを共有型で登録し (ステップ S 7 0 5 ) 、 データ部の データを使用する (ステップ S 7 0 6 ) 。  As a result, if the access is a load (step S701 affirmative), a cache miss force is checked (step S702), and if a cache miss, the MIB is secured (step S701). 703), and requests a cache line to the secondary cache unit 550 (step S704). Then, when the cache line arrives, the cache line is registered in a shared type (step S705), and the data in the data section is used (step S706).
これに対して、 キャッシュヒットの場合には、 ヒットしたキャッシュラインが 同一スレッドで登録されているか否かを調べ (ステップ S 7 0 7 ) 、 同一スレツ ドで登録されている場合には、 データ部のデータを使用する (ステップ S 7 0 6 ) 。 また、 ヒットしたキャッシュラインが同一スレッドで登録されていない場合 には、 キャッシュラインが共有型であるか否かを調べ (ステップ S 7 0 8 ) 、 共 有型である場合には、 データ部のデータを使用し (ステップ S 7 0 6 ) 、 排他型 である場合には、 MO R処理を実行して R I Mフラグおよび R I Fフラグをセッ トし (ステップ S 709) 、 データ部のデータを使用する (ステップ S 706) On the other hand, in the case of a cache hit, it is checked whether or not the hit cache line is registered in the same thread (step S707). If the cache line is registered in the same thread, the data section is checked. (Step S706). If the hit cache line is not registered in the same thread, it is checked whether or not the cache line is of a shared type (step S 708). If the data is used (step S706) and it is exclusive type, MOR processing is executed to set the RIM flag and RIF flag. (Step S709), and use the data in the data section (Step S706)
—方、 アクセスがストアである場合 (ステップ S 701否定) には、 キヤッシ ユミスか否かを調べ (ステップ S 710) 、 キャッシュミスの場合には、 MI B を確保し (ステップ S 71 1) 、 二次キャッシュユニット 550に对してキヤッ シュラインを要求する (ステップ S 712) 。 そして、 キャッシュラインが届く と、 キャッシュラインを排他型で登録し (ステップ S 713) 、 データ部へデー タを格納する (ステップ S 714) 。 On the other hand, if the access is to the store (No at step S701), it is checked whether or not it is a cache miss (step S710). If the access is a cache miss, the MIB is secured (step S71 1). The cache line is requested to the secondary cache unit 550 (step S712). When the cache line arrives, the cache line is registered as an exclusive type (step S713), and the data is stored in the data section (step S714).
これに対して、 キャッシュヒットの場合には、 ヒットしたキャッシュラインが 同一スレツドで登録されているか否かを調べ (ステップ S 715) 、 同一スレツ ドで登録されている場合には、 キヤッシュラインが共有型である力排他型である かを調べる (ステップ S 716) 。 そして、 排他型である場合には、 データ部に データを格納する (ステップ S 714) 。 一方、 共有型である場合には、 M〇R 処理を実行して R IMフラグおよび R I Fフラグをセットし (ステップ S 717 ) 、 他のプロセッサコアのキャッシュラインを無効化し (ステップ S 718) 、 キャッシュラインを排他型へ変更し (ステップ S 719) 、 データ部へデータを 格納する (ステップ S 714) 。  On the other hand, in the case of a cache hit, it is checked whether or not the hit cache line is registered with the same thread (step S715). If the cache line is registered with the same thread, the cache line is shared. It is checked whether the type is a force exclusive type (step S716). Then, if it is of the exclusive type, the data is stored in the data section (step S714). On the other hand, in the case of the shared type, the M〇R processing is executed to set the RIM flag and the RIF flag (step S717), invalidate the cache line of another processor core (step S718), and The line is changed to the exclusive type (step S719), and the data is stored in the data section (step S714).
また、 ヒットしたキャッシュラインが同一スレツドで登録されていない場合に は、 MOR処理を実行して R IMフラグおよび R I Fフラグをセットし (ステツ プ S 720) 、 キャッシュラインが共有型である力排他型であるかを調べる (ス テツプ S 716) 。 そして、 排他型である場合には、 データ部にデータを格納す る (ステップ S 714) 。 一方、 共有型である場合には、 他のプロセッサコアの キャッシュラインを無効化し (ステップ S 718) 、 キャッシュラインを排他型 へ変更し (ステップ S 719) 、 データ部へデータを格納する (ステップ S 71 4) 。  If the hit cache line is not registered with the same thread, the MOR processing is executed and the RIM flag and RIF flag are set (step S720), and the power exclusive type in which the cache line is shared is used. (Step S716). Then, if it is of the exclusive type, the data is stored in the data section (step S714). On the other hand, in the case of the shared type, the cache line of the other processor core is invalidated (step S718), the cache line is changed to the exclusive type (step S719), and the data is stored in the data section (step S718). 71 4).
このように、 キヤッシュ制御部 515がキャッシュメモリまたは主記憶装置へ のアクセスを監視し、 T SO違反が発生する可能性がある場合には MOR処理を 実行して R I Mフラグおよび R I Fフラグをセットすることによって、 プロセッ サコア間での T S O保証機構をスレツド間の T S O保証に用いることができる。 次に、 MO R処理について説明する。 第 8図は、 MO R処理の処理手順を示す フローチャートである。 同図に示すように、 この MO R処理は、 M I Bを確保し (ステップ S 8 0 1 ) 、 リプレースムーブアウト動作を開始する。 そして、 キヤ ッシユラインの半分をリプレースムーブァゥトバッファへ読み出すとともに (ス テツプ S 8 0 2 ) 、 リプレースムープアウトが禁止されている力、否かを調べる ( ステップ S 8 0 3 ) 。 ここで、 リプレースムーブアウトが禁止されている場合と しては、 キャッシュラインをコンペアアンドスワップのような特殊な命令が使用 しょうとしている場合などがある。 また、 リプレースムーブアウトバッファのデ ータが使われることはない。 As described above, the cache control unit 515 monitors access to the cache memory or the main storage device, and executes the MOR processing when there is a possibility that a TSO violation may occur. By executing and setting the RIM and RIF flags, the TSO guarantee mechanism between the processor cores can be used for TSO guarantee between threads. Next, the MOR processing will be described. FIG. 8 is a flowchart showing a processing procedure of the MOR processing. As shown in the figure, the MOR process secures a MIB (step S801) and starts a replace move-out operation. Then, half of the cache line is read out to the replacement move buffer (step S802), and it is checked whether or not the force in which the replacement move-out is prohibited (step S803). Here, a case where the replace move-out is prohibited is a case where a special instruction such as compare and swap is trying to use the cache line. Also, the data in the replace move-out buffer is not used.
そして、 リプレースムーブアウトが禁止されている場合には、 ステップ S 8 0 2に戻って、 再度リプレースムーブアウトバッファの読み出しをおこなう。 一方 、 リプレースムーブアウトが禁止されていない場合には、 キャッシュラインの残 りの半分をリプレースムーブアウトバッファへ読み出すとともに、 スレッド識別 子を書き換える (ステップ S 8 0 4 ) 。  Then, if the replace move-out is prohibited, the process returns to step S802, and the replacement move-out buffer is read again. On the other hand, if the replace move-out is not prohibited, the remaining half of the cache line is read into the replace move-out buffer and the thread identifier is rewritten (step S804).
このように、 この MO R処理がリプレースム一プアゥト動作を実行することに よって、 プロセッサコア間での T S O保証機構が働き、 リプレースムーブアウト 対-象と同じキャッシュラインを使用して P S T Vフラグがセットされているフエ ツチ .ポートの R I Mフラグをセットすることができる。 また、 ここでは、 R I Mフラグのセットと同時に R I Fフラグをセットすることにより、 プロセッサコ ァ間の T S O保証機構をスレツド間の T S O保証機構として働力せることができ る。  In this way, the MOR processing executes the replacement part operation, so that the TSO guarantee mechanism between the processor cores works, and the PSTV flag is set using the same cache line as the replacement moveout. You can set the RIM flag of the connected Fetch.port. Here, by setting the RIF flag simultaneously with the setting of the RIM flag, the TSO guarantee mechanism between the processor cores can function as the TSO guarantee mechanism between the threads.
また、 同一プロセッサコア上で異なるスレツドが同一のキャッシュラインの取 り合いをする場合もあるが、 その時は、 マルチプロセッサ環境で異なるプロセッ サが同一のキヤッシユラインの取り合いをするときの動作が働く。  Also, different threads may compete for the same cache line on the same processor core. In such a case, the operation is performed when different processors compete for the same cache line in a multiprocessor environment.
具体的には、 マルチプロセッサ環境でキャッシュラインの取り合いが発生した ときは、 それぞれのプロセッサがキヤッシユラインの吐き出し禁止制御とそれを 強制的に無効化する制御をもつ。 すなわち、 キャッシュラインを保持しているプ 口セッサ側はストァが完了するまでキャッシュラインの吐き出しを待たせようと する。 これがキャッシュラインの吐き出し禁止制御である。 ところが、 一方のプ 口セッサが永遠に同一キャッシュラインへのストアを継続していたりすると、 他 のプロセッサにそのキャッシュラインを受け渡すことができなくなってしまう。 そこで、 他のプロセッサから受け取ったキャッシュラインの吐き出し要求を処理 するためのキヤッシュラインの吐き出し処理がキヤッシュパイプラィンでの実行 がある程度の回数失敗した場合に、 そのキャッシュラインへのストァを強制的に 停止させ、 一旦キャッシュラインの吐き出しを成功させる。 この結果、 他のプロ セッサへとキャッシュラインが受け渡される。 その後も、 そのキャッシュライン へのストァを継続するのであれば、 今度は他のプロセッサへとキャッシュライン の吐き出し要求が送られる。 その結果、 いずれキャッシュラインが届き、 ストア を継続することが可能となる。 Specifically, cache line competition occurred in a multiprocessor environment In such a case, each processor has a cache line discharge prohibition control and a control for forcibly disabling it. That is, the processor holding the cache line tries to wait for the cache line to be discharged until the store is completed. This is the cache line ejection prohibition control. However, if one of the processors keeps storing in the same cache line forever, the cache line cannot be transferred to another processor. Therefore, if the cache pipeline flush processing for processing a cache line flush request received from another processor has failed a certain number of times in the cache pipeline, the store to that cache line is forcibly stopped. The cache line is successfully ejected once. As a result, the cache line is passed to another processor. After that, if the store to the cache line is to be continued, a request to flush the cache line is sent to another processor. As a result, the cache line will eventually arrive and the store can be continued.
このような、 マルチプロセッサ環境で異なるプロセッサが同一のキャッシュラ インの取り合いをするときに動作する機構は、 スレツド間のキャッシュラインの 受け渡しにおいて使用されるリプレースムーブアウト動作においても動作するこ と力、ら、 いかなる場合にもスレツド間でのキャッシュラインの受け渡しに成功し 、 ハング動作の防止も可能となっている。  Such a mechanism that operates when different processors exchange the same cache line in a multi-processor environment is capable of operating even in a replace move-out operation used in passing a cache line between threads. Therefore, in any case, the cache line was successfully transferred between the threads, and the hang operation could be prevented.
上述したように、 本実施の形態 2では、 一次データキヤッシュュ二ット 5 1 4 のキャッシュ制御部 5 1 5がキャッシュメモリまたは主記憶装置へのアクセスを 監視し、 T S O違反が発生する可能性がある場合には MO R処理を実行して R I Mフラグおよび R I Fフラグをセットすることとしたので、 プロ: ッサコア間の T S〇保証機構をスレッド間の T s o保証機構として働力せることができる。 なお、 本実施の形態 2では、 共有型のキヤッシュラィンを異なるスレツド間で 共有する場合について説明したが、 本発明はこれに限定されるものではなく、 共 有型のキャッシュラインも排他型のキャッシュラインのようにスレツド間で排他 制御する場合にも同様に適用することができる。 具体的には、 他のスレッドが登 録したキャッシュラインのロードがヒットした場合に MO R処理を実行すること によって、 プロセッサコア間の T S O保証機構をスレツド間の T S O保証機構と して働力せることができる。 As described above, in the second embodiment, the cache control unit 515 of the primary data cache 514 monitors access to the cache memory or the main storage device, and a TSO violation may occur. In this case, the MOR processing is executed to set the RIM flag and RIF flag, so that the TS〇 guarantee mechanism between the processor cores can work as the Tso guarantee mechanism between threads. In the second embodiment, the case where the shared cache line is shared between different threads has been described. However, the present invention is not limited to this, and the shared cache line is also exclusive cache. Exclusive between threads like a line The same can be applied to control. Specifically, the TSO guarantee mechanism between processor cores works as a TSO guarantee mechanism between threads by executing MOR processing when the load of a cache line registered by another thread hits. Can be.
また、 本実施の形態 1および 2では、 二つのスレッドを一時期に命令ユニット が処理する場合について説明したが、 本発明はこれに限定されるものではなく、 三つ以上のスレツドを一時期に命令ュニットが処理する場合にも同様に適用する ことができる。  Also, in the first and second embodiments, the case where the instruction unit processes two threads at one time has been described. However, the present invention is not limited to this, and the three or more threads may be executed at one time by the instruction unit. The same can be applied to cases where processing is performed.
また、 本実施の形態 1および 2では、 同時型マルチスレッド方式を用レ、た場合 について説明をおこなった。 ここで、 同時型マルチスレッド方式とは、 一時期に 複数のスレッドの処理をおこなう方式である。 一方、 マルチスレッド方式には、 一時期には一つのスレツドのみ処理をおこない、 一定時間ごとあるいはキヤッシ ュミスなどによって命令実行が滞ることがわかった場合にスレッドを切り替える 時分割マルチスレッド方式もある。 そこで、 時分割マルチスレッド方式の場合の T S O保証について説明する。  In the first and second embodiments, the case where the simultaneous multi-thread system is used has been described. Here, the simultaneous multi-thread method is a method in which a plurality of threads are processed at one time. On the other hand, in the multi-thread method, there is also a time-division multi-thread method in which only one thread is processed at a time, and a thread is switched at regular intervals or when it is found that instruction execution is delayed due to a cache miss or the like. Therefore, TSO guarantee in the case of the time-division multi-thread method will be described.
時分割マルチスレッド方式では、 実行中のスレッドを休眠させて、 別のスレツ ドの動作を立ち上げることによってスレッドの切り替えをおこなう。 そこで、 ス レツドの切り替えをおこなうときに、 休眠させるスレツドから発行されていてコ ミットされていないフェッチ命令とストァ命令をすベてキャンセルする。 こうす ることで、 フェッチ命令のアウト 'ォプ■オーダ完了によって他スレッドのスト ァから発生する恐れのある T s o違反を回避することができる。  In the time-sharing multi-thread system, the running thread is put to sleep and the thread is switched by starting another thread operation. Therefore, when switching threads, all fetch instructions and store instructions issued from the sleeping thread and not committed are canceled. By doing so, it is possible to avoid Tso violations that may occur from the store of another thread due to out-of-order completion of the fetch instruction.
また、 コミットされたストァ命令は、 キャッシュメモリまたは主記憶装置への 書き込みが可能となるまでの間、 ストァ要求とストァデータを保持するストアポ ートまたはライトバッファで実行を待たされ、 実行可能となると順次ストァを実 行する。 ここで、 先行するストアの結果を後続のフヱツチが反映しなければなら ない場合、 すなわち先行するストァが操作対象とするメモリ領域を後続のフェツ チが使用する場合は、 ストァ要求のアドレスとオペランド長をフェッチ要求のァ ドレスとオペランド長を比較することで検出する。 そして、 この場合には、 S F I (Store Fetch Interlock)によって、 ストァの実行が完了するまでフェッチの 実行を待たせる。 In addition, the committed store instruction is waited for execution in the store port or the write buffer holding the store request and the store data until the write to the cache memory or the main storage device becomes possible. Run the store. Here, when the result of the preceding store must be reflected by the subsequent fetch, that is, when the subsequent fetch uses the memory area to be operated by the preceding store, the address and operand length of the store request are used. The fetch request key It is detected by comparing the dress and the operand length. In this case, the execution of the fetch is made to wait until the execution of the store is completed by SFI (Store Fetch Interlock).
このように、 ストァ命令がコミツトされてからスレツドの切り替えが発生し、 ストアポートに異なるスレッドのストアが滞っている場合にも、 S F I動作を有 効にして異なるスレツドからのストァの影響を反映させることによって、 スレツ ド休眠中に発生した異なるスレツドのストァに起因する T S O違反を回避するこ とができる。  In this way, even if the thread switching occurs after the store instruction is committed and the store of a different thread is stuck in the store port, the SFI operation is enabled to reflect the effect of the store from the different thread. This avoids TSO violations caused by different thread stores during thread dormancy.
さらに、 キャッシュラインの無効化■吐き出しによる R I Mフラグのセット、 データの到着による R I Fフラグのセットを利用することにより、 プロセッサ間 の T S〇を保証することができ、 異なるスレツド間での T s o保証と合わせて、 コンピュータシステム全体の T S〇を保証することができる。  Furthermore, by using the invalidation of the cache line, the setting of the RIM flag by the flushing, and the setting of the RIF flag by the arrival of data, it is possible to guarantee the TS between processors, and to guarantee the TS between different threads. In addition, TS〇 of the entire computer system can be guaranteed.
以上説明したように、 本発明によれば、 メモリアクセス要求で指定されたアド レスのデータを記憶している場合に記憶しているデータを登録したスレツドとメ モリアクセス要求を発行したスレッドが同一である力否かを判定し、 判定結果に 基づいて、 複数の命令処理装置間で共有されるデータに対する該複数の命令処理 装置間の読み出しおよび書き込みの実行順序の一貫性の保証をおこなう一貫性保 証機構を動作させるよう構成したので、 スレツド間での共有データの読み出しお よび書き込みの実行順序の一貫性を保証することができるという効果を奏する。 また、 本発明によれば、 メモリアクセス要求で指定されたアドレスのデータを 含むキヤッシュラインを記憶している場合に記憶しているキヤッシユラインを登 録したスレツドとメモリアクセス要求を発行したスレツドが同一である力否かを 判定し、 同一でないと判定した場合に、 複数の命令処理装置間で共有されるデー タに対する複数の命令処理装置間の読み出しおよび書き込みの実行順序の一貫性 の保証をおこなう一貫性保証機構を動作させるよう構成したので、 スレツド間で の共有データの読み出しおよび書き込みの実行順序の一貫性を保証することがで きるという効果を奏する。 また、 本発明によれば、 一次データキャッシュ装置が、 命令処理装置からのメ モリアクセス要求と物理ァドレスが一致するキャッシュラインが異なるスレツド によって登録されている場合に二次キヤッシュ装置に対してキヤッシュラインの 取り込み要求をおこない、 二次キャッシュ装置が、 キャッシュラインの取り込み 要求を受けたキャッシュラインが他のスレツドにより一次データキャッシュ装置 に登録されている場合にはキャッシュラインの無効化または吐き出しの実行を一 次データキャッシュ装置に要求し、 一次データキャッシュ装置が、 二次キヤッシ ュ装置からの要求に基づきキヤッシュラインの無効化または吐き出しを実行する ことによって、 他の組の一次データキャッシュ装置と共有するキャッシュライン に対する複数の命令処理装置間の読み出しおよび書き込みの実行順序の一貫性の 保証をおこなう一貫性保証機構を動作させるよう構成したので、 スレツド間での 共有データの読み出しおよび書き込みの実行順序の一貫性を保証することができ るという効果を奏する。 As described above, according to the present invention, when the data of the address specified by the memory access request is stored, the thread that registered the stored data and the thread that issued the memory access request are the same. Consistency that guarantees the consistency of the read and write execution order among the plurality of instruction processing devices with respect to the data shared among the plurality of instruction processing devices based on the determination result. Since the security mechanism is configured to operate, there is an effect that the consistency of the execution order of reading and writing of shared data between threads can be guaranteed. Further, according to the present invention, when a cache line including data at an address specified by a memory access request is stored, the thread at which the stored cache line is registered and the thread at which the memory access request is issued are the same. Judgment as to whether a certain force is present or not, and when it is judged that they are not the same, consistency that guarantees consistency in the execution order of reading and writing between multiple instruction processing units for data shared between multiple instruction processing units. Since the configuration is such that the performance guarantee mechanism is operated, there is an effect that the consistency of the execution order of reading and writing of shared data between threads can be guaranteed. Further, according to the present invention, the primary data cache device is provided with a cache line for the secondary cache device when a cache line whose physical address matches the memory access request from the instruction processing device is registered by different threads. If the cache line for which the cache line fetch request has been received is registered in the primary data cache device by another thread, the secondary cache device invalidates or flushes the cache line. A cache line shared with another set of primary data cache devices by making a request to the secondary data cache device, and the primary data cache device invalidating or flushing the cache line based on the request from the secondary cache device. Against Since the consistency assurance mechanism that guarantees the consistency of the read and write execution order among a number of instruction processors is configured to operate, the consistency of the shared data read and write execution order between threads is guaranteed. It has the effect of being able to
また、 本発明によれば、 命令処理装置で実行されるスレッドの切り替えが行わ れる際に、 実行が中断されるスレツドが発行したストァ命令およびフェッチ命令 のうちコミツトされていない全てのストァ命令およぴフェッチ命令を無効とし、 実行が中断されたスレツドの実行が再開された際に、 コミットされたストァ命令 の実行結果に影響を受けるフェッチ命令を検出し、 検出したフェッチ命令をスト ァ命令の実行後に実行するように制御するよう構成したので、 スレツド間での共 有データの読み出しおよび書き込みの実行順序の一貫性を保証することができる という効果を奏する。 産業上の利用可能性  Further, according to the present invention, when a thread to be executed by the instruction processing device is switched, all the uncommitted store instructions and fetch instructions among the store instructions and fetch instructions issued by the thread whose execution is interrupted are provided.ぴ When the fetch instruction is invalidated and the execution of the thread whose execution has been interrupted is resumed, a fetch instruction that is affected by the execution result of the committed store instruction is detected, and the detected fetch instruction is executed. Since the configuration is such that control is performed later, there is an effect that consistency in the execution order of reading and writing of shared data between threads can be guaranteed. Industrial applicability
以上のように、 本発明に係る記憶制御装置、 データキャッシュ制御装置、 中央 処理装置、 記憶装置制御方法、 データキャッシュ制御方法およびキャッシュ制御 方法は、 複数のスレツドを同時に実行するマルチスレツド方式のコンピュータシ ステムに適している。  As described above, the storage control device, the data cache control device, the central processing unit, the storage device control method, the data cache control method, and the cache control method according to the present invention provide a multi-threaded computer system that executes a plurality of threads simultaneously. Suitable for stem.

Claims

請 求 の 範 囲 The scope of the claims
1 . 同時に実行される複数のスレツドで共有され、 該スレツドから発行される メモリアクセス要求の処理をおこなう記憶制御装置であって、 1. A storage controller that is shared by a plurality of threads that are executed simultaneously and that processes a memory access request issued from the threads,
複数の命令処理装置間で共有されるデータに対する該複数の命令処理装置間の 読み出しおよび書き込みの実行順序の一貫性の保証をおこなう一貫性保証手段と 前記メモリアクセス要求で指定されたァドレスのデータを記憶している場合に 該記憶しているデータを登録したスレッドと該メモリアクセス要求を発行したス レツドが同一であるか否かを判定するスレツド判定手段と、  Consistency assurance means for assuring the consistency of the execution order of reading and writing between the plurality of instruction processing devices with respect to data shared between the plurality of instruction processing devices; and data of an address specified by the memory access request. A thread judging means for judging whether or not the thread in which the stored data is registered is the same as the thread which has issued the memory access request;
前記スレツド判定手段の判定結果に基づいて前記一貫性保証手段を動作させる 一貫性保証動作起動手段と、  A consistency assurance operation starting means for operating the consistency assurance means based on a result of the judgment by the thread judgment means;
を備えたことを特徴とする記憶制御装置。  A storage control device comprising:
2 . 前記一貫性保証動作起動手段は、 前記スレッド判定手段が同一でないと判 定した場合に、 下位の記憶制御装置に対して前記データの取り込み要求をおこな い、 該取り込み要求に応答して下位の記憶制御装置がおこなう指示に基づいて前 記一貫性保証手段を動作させることを特徴とする請求の範囲第 1項に記載の記憶 制御装置。 2. The consistency assurance operation starting means, when the thread determination means determines that they are not the same, issues a request to fetch the data to a lower-level storage control device, and responds to the fetch request. 2. The storage control device according to claim 1, wherein said consistency assurance means is operated based on an instruction issued by a lower-order storage control device.
3 . 前記一貫性保証動作起動手段は、 前記スレツド判定手段が同一でないと判 定した場合に、 下位の記憶制御装置に対するデータの吐き出し動作を実行して前 記一貫性保証手段を動作させることを特徴とする請求の範囲第 1項に記載の記憶 制御装置。 3. The coherence assurance operation initiating means, when the thread judging means determines that they are not the same, executes a data ejection operation to a lower-level storage controller to operate the coherence assurance means. The storage control device according to claim 1, characterized in that:
4 . 前記一貫性保証動作起動手段は、 前記スレッド判定手段の判定結果および 前記データの複数の命令処理装置間での共有状態に基づいてキヤッシユライン置 き換え動作を実行して前記一貫性保証手段を動作させることを特徴とする請求の 範囲第 1項に記載の記憶制御装置。 4. The coherence assurance operation activating means is configured to place a cache line based on a determination result of the thread determining means and a shared state of the data among a plurality of instruction processing devices. 2. The storage control device according to claim 1, wherein a replacement operation is performed to operate the consistency assurance unit.
5 . 同時に実行される複数のスレツドで共有され、 該スレツドから発行される メモリアクセス要求の処理をおこなうデータキャッシュ制御装置であって、 複数の命令処理装置間で共有されるデータに対する該複数の命令処理装置間の 読み出しおよび書き込みの実行順序の一貫性の保証をおこなう一貫性保証手段と 前記メモリアクセス要求で指定されたァドレスのデータを含むキヤッシュラィ ンを記憶している場合に該記憶しているキャッシュラインを登録したスレッドと 該メモリアクセス要求を発行したスレツドが同一であるか否かを判定するスレツ ド判定手段と、 5. A data cache control device which is shared by a plurality of threads executed at the same time and processes a memory access request issued from the thread, wherein the plurality of instructions for data shared among a plurality of instruction processing devices are provided. A consistency assurance means for guaranteeing the consistency of the execution order of read and write between the processing devices; and a cache for storing a cache line including data of an address designated by the memory access request when the cache line is stored. Thread determining means for determining whether the thread that registered the line and the thread that issued the memory access request are the same,
前記スレツド判定手段が同一でないと判定した場合に、 前記一貫性保証手段を 動作させる一貫性保証動作起動手段と、  A consistency assurance operation activating means for operating the consistency assurance means when the thread determination means determines that they are not the same;
を備えたことを特徴とするデータキヤッシュ制御装置。  A data cache control device comprising:
6 . 前記スレッド判定手段は、 キヤッシュタグに設けたスレッド識別子に基づ いて、 キャッシュラインを登録したスレッドと前記メモリアクセス要求を発行し たスレツドが同一であるか否かを判定することを特徴とする請求の範囲第 5項に 記載のデータキヤッシュ制御装置。 6. The thread determination means determines whether or not the thread that has registered the cache line and the thread that issued the memory access request are the same based on a thread identifier provided in a cache tag. The data cache control device according to claim 5, wherein
7 . 前記一貫性保証手段は、 前記ァドレスのデータの無効化または他の記憶制 御装置へのデータの吐き出しと該他の記憶制御装置からのデータの取り込みとを 監視して前記保証をおこなうことを特徴とする請求の範囲第 1項〜第 4項のいず れか一つに記載の記憶制御装置。 7. The consistency assurance means performs the assurance by monitoring the invalidation of the address data or the ejection of data to another storage control device and the capture of data from the other storage control device. The storage control device according to any one of claims 1 to 4, characterized in that:
8 . 前記一貫性保証手段は、 フェッチ 'ポートに設けた P S T Vフラグ、 R I Mフラグおよび R I Fフラグを用いて前記ァドレスのデータの無効化または他の 記憶制御装置へのデータの吐き出しと該他の記憶制御装置からのデータの取り込 みとを監視することを特徴とする請求の範囲第 7項に記載の記憶制御装置。 8. The consistency assurance measures include the PSTV flag and RI Monitoring the invalidation of the address data or the ejection of data to another storage control device and the taking in of data from the other storage control device using an M flag and a RIF flag. 8. The storage controller according to item 7, wherein:
9 . 複数のスレッドを同時に実行する命令処理装置と一次データキャッシュ装 置との組を複数有し、 該複数の組の一次データキヤッシュ装置で共有される二次 キヤッシュ装置を有する中央処理装置であって、 9. A central processing unit having a plurality of sets of an instruction processing unit and a primary data cache unit that execute a plurality of threads simultaneously, and a secondary cache unit shared by the plurality of sets of primary data cache units. hand,
前記複数の,組のそれぞれの一次データキヤッシュ装置は、  The plurality of sets, each primary data cache device,
他の組の一次データキヤッシュ装置と共有するキヤッシユラインに対する複数 の命令処理装置間の読み出しおよび書き込みの実行順序の一貫性の保証をおこな う一貫性保証手段と、  A consistency assurance means for assuring the consistency of the read and write execution order among a plurality of instruction processing units for a cache line shared with another set of primary data cache units;
前記命令処理装置からのメモリアクセス要求と物理ァドレスがー致するキヤッ シュラインが異なるスレツドによって登録されている場合に前記二次キヤッシュ 装置に対して該キヤッシュラインの取り込み要求をおこなう取り込み要求手段と 前記二次キヤッシュ装置からの要求に基づく前記キヤッシユラインの無効化ま たは吐き出しを実行して前記一貫性保証手段を動作させる吐き出し実行手段と、 を備え、  A capture requesting means for issuing a capture request for the cache line to the secondary cache device when a memory access request from the instruction processing device and a cache line at which a physical address matches are registered by different threads; and Discharge execution means for executing the invalidation or discharge of the cache line based on a request from a secondary cache device to operate the consistency assurance means,
前記二次キヤッシュ装置は、  The secondary cache device,
前記キヤッシユラインの取り込み要求を受けたキヤッシュラインが他のスレツ ドにより前記一次データキヤッシュ装置に登録されている場合には前記キヤッシ ユラインの無効化または吐き出しの実行を該一次データキャッシュ装置に要求す る吐き出し要求手段  If the cache line that has received the request for taking in the cache line is registered in the primary data cache device by another thread, the ejection that requests the primary data cache device to invalidate or execute the ejection of the cache line. Request means
を備えたことを特徴とする中央処理装置。  A central processing unit comprising:
1 0 . 同時に実行される複数のスレツドで共有され、 該スレツドから発行され るメモリアクセス要求の処理をおこなう記憶制御装置であつて、 命令処理装置で実行されるスレツドの切り替えが行われる際に、 実行が中断さ れるスレツドが発行したストァ命令およびフェッチ命令のうちコミツトされてい ない全てのストァ命令およびフェツチ命令を無効とするアクセス無効化手段と、 前記実行が中断されたスレツドの実行が再開された際に、 コミツトされたスト ァ命令の実行結果に影響を受けるフェッチ命令を検出し、 検出したフェッチ命令 を該ストァ命令の実行後に実行するように制御するィンターロック手段と、 を備えたことを特徴とする記憶制御装置。 10. A storage controller which is shared by a plurality of threads executed at the same time and processes a memory access request issued from the threads. When the thread executed by the instruction processing unit is switched, the access is invalidated to invalidate all uncommitted store instructions and fetch instructions among the store instructions and fetch instructions issued by the thread whose execution is suspended. Means for detecting a fetch instruction affected by the execution result of the committed store instruction when the execution of the thread whose execution has been interrupted is resumed, and executing the detected fetch instruction after the execution of the store instruction And an interlock means for controlling the storage control.
1 1 . 同時に実行される複数のスレッドから発行されるメモリアクセス要求の 処理をおこなう記憶装置制御方法であって、 1 1. A storage device control method for processing a memory access request issued from a plurality of threads executed at the same time,
前記メモリアクセス要求で指定されたアドレスのデータを記憶している場合に 該記憶しているデータを登録したスレツドと該メモリアクセス要求を発行したス レッドが同一であるか否かを判定するスレツド判定工程と、  When the data at the address specified by the memory access request is stored, the thread that has registered the stored data and the thread that has issued the memory access request determine whether the thread is the same. Process and
前記スレツド判定工程の判定結果に基づいて、 複数の命令処理装置間で共有さ れるデータに対する該複数の命令処理装置間の読み出しおよび書き込みの実行順 序の一貫性の保証をおこなう一貫性保証機構を動作させる一貫性保証動作起動ェ 程と、  A consistency assurance mechanism that guarantees consistency of the execution order of reading and writing among the plurality of instruction processing devices with respect to data shared among the plurality of instruction processing devices based on the determination result of the thread determination process. The consistency assurance operation start-up process
を含んだことを特徴とする記憶装置制御方法。  A storage device control method comprising:
1 2 . 前記一貫性保証動作起動工程は、 前記スレッド判定工程が同一でないと 判定した場合に、 下位の記憶制御装置に対して前記データの取り込み要求をおこ ない、 該取り込み要求に応答して下位の記憶制御装置がおこなう指示に基づいて 前記一貫性保証機構を動作させることを特徴とする請求の範囲第 1 1項に記載の 記憶装置制御方法。 12. The consistency assurance operation activation step, when the thread determination step determines that they are not the same, issues a request to fetch the data to a lower-level storage controller, and responds to the fetch request to request a lower-level storage controller. 21. The storage device control method according to claim 11, wherein said consistency assurance mechanism is operated based on an instruction issued by said storage control device.
1 3 . 前記一貫性保証動作起動工程は、 前記スレッド判定工程が同一でないと 判定した場合に、 下位の記憶制御装置に対するデータの吐き出し動作を実行して 前記一貫性保証機構を動作させることを特徴とする請求の範囲第 1 1項に記載の 記憶装置制御方法。 13. The consistency assurance operation start step executes a data discharge operation to a lower-level storage controller when the thread determination step determines that the two are not the same. 12. The storage device control method according to claim 11, wherein said consistency assurance mechanism is operated.
1 4 . 前記一貫性保証動作起動工程は、 前記スレッド判定工程の判定結果およ び前記データの複数の命令処理装置間での共有状態に基づいてキヤッシュライン 置き換え動作を実行することによって前記一貫性保証機構を動作させることを特 徴とする請求の範囲第 1 1項に記載の記憶装置制御方法。 14. The consistency assurance operation start step includes executing the cache line replacement operation based on the determination result of the thread determination step and the shared state of the data among a plurality of instruction processing devices, thereby executing the consistency. The storage device control method according to claim 11, wherein the assurance mechanism is operated.
1 5 . 同時に実行される複数のスレッドから発行されるメモリアクセス要求の 処理をおこなうデータキャッシュ制御方法であって、 15. A data cache control method for processing a memory access request issued from a plurality of threads executed at the same time,
前記メモリァクセス要求で指定されたァドレスのデータを含むキヤッシュライ ンを記憶している場合に該記憶してレ、るキャッシュラインを登録したスレッドと 該メモリアクセス要求を発行したスレツドが同一である力否かを判定するスレツ ド判定工程と、  When a cache line including the data of the address specified by the memory access request is stored, the thread in which the stored cache line is registered is the same as the thread that issued the memory access request. A thread determination step of determining whether
前記スレツド判定工程が同一でないと判定した場合に、 複数の命令処理装置間 で共有されるデータに対する該複数の命令処理装置間の読み出しおよび書き込み の実行順序の一貫性の保証をおこなう一貫性保証機構を動作させる一貫性保証動 作起動工程と、  A consistency assurance mechanism for assuring the consistency of the execution order of reading and writing between the plurality of instruction processing devices with respect to data shared among the plurality of instruction processing devices when the thread determination process determines that the two are not the same; A consistency assurance operation start process for operating
を含んだことを特徴とするデータキヤッシュ制御方法。  A data cache control method comprising:
1 6 . 前記スレツド判定ェ程は、 キャッシュタグに設けたスレッド識別子に基 づいて、 キャッシュラインを登録したスレツドと前記メモリアクセス要求を発行 したスレツドが同一である力否かを判定することを特徴とする請求の範囲第 1 5 項に記載のデータキヤッシュ制御方法。 16. The thread determination step is characterized by determining, based on a thread identifier provided in a cache tag, whether or not the thread that has registered the cache line and the thread that issued the memory access request are the same. The data cache control method according to claim 15, wherein:
1 7 . 前記一貫性保証工程は、 前記ァドレスのデータの無効化または他の記憶 制御装置へのデータの吐き出しと該他の記憶制御装置からのデータの取り込みと を監視して前記保証をおこなうことを特徴とする請求の範囲第 1 1項〜第 1 4項 のいずれか一つに記載の記憶装置制御方法。 17. The consistency assurance step includes invalidating the data of the address or discharging data to another storage control device and taking in data from the other storage control device. The storage device control method according to any one of claims 11 to 14, wherein said assurance is performed by monitoring the following.
1 8 . 前記一貫性保証工程は、 フェッチ 'ポートに設けた P S T Vフラグ、 R I Mフラグおよび R I Fフラグを用いて前記ァドレスのデータの無効化または他 の記憶制御装置へのデータの吐き出しと該他の記憶制御装置からのデータの取り 込みとを監視することを特徴とする請求の範囲第 1 7項に記載の記憶装置制御方 法。 18. The consistency assurance step is to invalidate the data of the address or to discharge the data to another storage control device and to store the other data using the PSTV flag, RIM flag and RIF flag provided at the fetch port. The storage device control method according to claim 17, wherein monitoring of data acquisition from the control device is performed.
1 9 . 複数のスレッドを同時に実行する命令処理装置と一次データキャッシュ 装置の組を複数有し、 該複数の aの一次データキヤッシュ装置で共有される二次 キャッシュ装置を有する中央処理装置で用いられるキャッシュ制御方法あって、 前記一次データキャッシュ装置が、 前記命令処理装置からのメモリアクセス要 求と物理ァドレスが一致するキャッシュラインが異なるスレツドによって登録さ れている場合に前記二次キヤッシュ装置に対して該キヤッシュラインの取り込み 要求をおこなう取り込み要求工程と、 1 9. Used in a central processing unit having a plurality of sets of an instruction processing unit and a primary data cache unit that execute a plurality of threads simultaneously, and having a secondary cache unit shared by the primary data cache units. In the cache control method, the primary data cache device may be configured to control the secondary cache device when a cache line whose physical address matches a memory access request from the instruction processing device is registered by different threads. A capture requesting step of performing a capture request of the cache line;
前記二次キヤッシュ装置が、 前記キヤッシユラインの取り込み要求を受けたキ ャッシュラィンが他のスレッドにより前記一次データキヤッシュ装置に登録され ている場合には前記キヤッシュラィンの無効化または吐き出しの実行を該一次デ ータキャッシュ装置に要求する吐き出し要求工程と、  If the cache line that has received the request to capture the cache line is registered in the primary data cache device by another thread, the secondary cache device invalidates or flushes the cache line and executes execution of the primary data cache. A discharge requesting process requesting the device;
前記一次データキヤッシュ装置が、 前記二次キヤッシュ装置からの要求に基づ き前記キヤッシュラインの無効化または吐き出しを実行することによって、 他の 組の一次データキャッシュ装置と共有するキャッシュラインに対する複数の命令 処理装置間の読み出しおよび書き込みの実行順序の一貫性の保証をおこなう一貫 性保証機構を動作させる吐き出し実行工程と、  The primary data cache device performs a plurality of instructions on a cache line shared with another set of primary data cache devices by performing invalidation or ejection of the cache line based on a request from the secondary cache device. A discharge execution step of operating a consistency assurance mechanism for guaranteeing consistency of the execution order of reading and writing between processing devices;
を含んだことを特徴とするキヤッシュ制御方法。 A cache control method comprising:
2 0 . 同時に実行される複数のスレツドから発行されるメモリアクセス要求の 処理をおこなう記憶装置制御方法であつて、 20. A storage device control method for processing a memory access request issued from a plurality of threads executed at the same time,
命令処理装置で実行されるスレツドの切り替えが行われる際に、 実行が中断さ れるスレツドが発行したストァ命令およびフェッチ命令のうちコミツトされてい ない全てのストァ命令およびフェツチ命令を無効とするアクセス無効化工程と、 • 前記実行が中断されたスレツドの実行が再開された際に、 コミツトされたスト ァ命令の実行結果に影響を受けるフユツチ命令を検出し、 検出したフ ツチ命令 を該ストァ命令の実行後に実行するように制御するィンターロック工程と、 を含んだことを特徴とする記憶装置制御方法。  When the thread executed by the instruction processing unit is switched, the access is invalidated to invalidate all uncommitted store instructions and fetch instructions among the store instructions and fetch instructions issued by the thread whose execution is suspended. Steps: • When execution of the thread whose execution has been interrupted is resumed, a fetched instruction that is affected by the execution result of the committed storage instruction is detected, and the detected fetched instruction is executed. And an interlocking step of controlling the storage device to be executed later.
PCT/JP2003/000723 2003-01-27 2003-01-27 Storage control device, data cache control device, central processing unit, storage device control method, data cache control method, and cache control method WO2004068361A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004567505A JP4180569B2 (en) 2003-01-27 2003-01-27 Storage control device, data cache control device, central processing unit, storage device control method, data cache control method, and cache control method
PCT/JP2003/000723 WO2004068361A1 (en) 2003-01-27 2003-01-27 Storage control device, data cache control device, central processing unit, storage device control method, data cache control method, and cache control method
US11/123,140 US20050210204A1 (en) 2003-01-27 2005-05-06 Memory control device, data cache control device, central processing device, storage device control method, data cache control method, and cache control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2003/000723 WO2004068361A1 (en) 2003-01-27 2003-01-27 Storage control device, data cache control device, central processing unit, storage device control method, data cache control method, and cache control method

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US11/123,140 Continuation US20050210204A1 (en) 2003-01-27 2005-05-06 Memory control device, data cache control device, central processing device, storage device control method, data cache control method, and cache control method

Publications (1)

Publication Number Publication Date
WO2004068361A1 true WO2004068361A1 (en) 2004-08-12

Family

ID=32800789

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2003/000723 WO2004068361A1 (en) 2003-01-27 2003-01-27 Storage control device, data cache control device, central processing unit, storage device control method, data cache control method, and cache control method

Country Status (2)

Country Link
JP (1) JP4180569B2 (en)
WO (1) WO2004068361A1 (en)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008544417A (en) * 2005-06-29 2008-12-04 インテル コーポレイション Caching method, apparatus and system
WO2008155822A1 (en) * 2007-06-19 2008-12-24 Fujitsu Limited Cache controller and control method
WO2008155829A1 (en) * 2007-06-20 2008-12-24 Fujitsu Limited Information processor, cache memory controller, and memory access sequence assurance method
JP2009288977A (en) * 2008-05-28 2009-12-10 Fujitsu Ltd Cache memory control device, semiconductor integrated circuit, and cache memory control method
JP4710024B2 (en) * 2007-06-20 2011-06-29 富士通株式会社 Cache memory control device and cache memory control method
JP2011134205A (en) * 2009-12-25 2011-07-07 Fujitsu Ltd Information processing apparatus and cache memory control device
US8244985B2 (en) 2004-03-30 2012-08-14 Intel Corporation Store performance in strongly ordered microprocessor architecture
US8261021B2 (en) 2007-06-20 2012-09-04 Fujitsu Limited Cache control device and control method
WO2013084314A1 (en) * 2011-12-07 2013-06-13 富士通株式会社 Processing unit and method for controlling processing unit
JP2014006807A (en) * 2012-06-26 2014-01-16 Fujitsu Ltd Processor, cache memory control apparatus, and cache memory control method
JP2014112383A (en) * 2013-12-19 2014-06-19 Intel Corp Processor providing execution of secure application
US9390012B2 (en) 2010-06-14 2016-07-12 Fujitsu Limited Multi-core processor system, cache coherency control method, and computer product
CN111652749A (en) * 2018-11-28 2020-09-11 阿里巴巴集团控股有限公司 Information checking method and device
JP7160514B2 (en) 2015-08-12 2022-10-25 エヌエイチエヌ コーポレーション RESOURCE DOWNLOAD METHOD, RECORDING MEDIUM, AND RESOURCE DOWNLOAD SYSTEM IN MOBILE ENVIRONMENT

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5088754B2 (en) 2009-12-18 2012-12-05 インターナショナル・ビジネス・マシーンズ・コーポレーション System, method, program, and code generation apparatus

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5257354A (en) * 1991-01-16 1993-10-26 International Business Machines Corporation System for monitoring and undoing execution of instructions beyond a serialization point upon occurrence of in-correct results
US5265233A (en) * 1991-05-17 1993-11-23 Sun Microsystems, Inc. Method and apparatus for providing total and partial store ordering for a memory in multi-processor system
US5699538A (en) * 1994-12-09 1997-12-16 International Business Machines Corporation Efficient firm consistency support mechanisms in an out-of-order execution superscaler multiprocessor
US6122712A (en) * 1996-10-11 2000-09-19 Nec Corporation Cache coherency controller of cache memory for maintaining data anti-dependence when threads are executed in parallel
WO2001025903A1 (en) * 1999-10-01 2001-04-12 Sun Microsystems, Inc. A method for precise trap handling in case of speculative and out-of-order loads
US20030014602A1 (en) * 2001-07-12 2003-01-16 Nec Corporation Cache memory control method and multi-processor system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5257354A (en) * 1991-01-16 1993-10-26 International Business Machines Corporation System for monitoring and undoing execution of instructions beyond a serialization point upon occurrence of in-correct results
US5265233A (en) * 1991-05-17 1993-11-23 Sun Microsystems, Inc. Method and apparatus for providing total and partial store ordering for a memory in multi-processor system
US5699538A (en) * 1994-12-09 1997-12-16 International Business Machines Corporation Efficient firm consistency support mechanisms in an out-of-order execution superscaler multiprocessor
US6122712A (en) * 1996-10-11 2000-09-19 Nec Corporation Cache coherency controller of cache memory for maintaining data anti-dependence when threads are executed in parallel
WO2001025903A1 (en) * 1999-10-01 2001-04-12 Sun Microsystems, Inc. A method for precise trap handling in case of speculative and out-of-order loads
US20030014602A1 (en) * 2001-07-12 2003-01-16 Nec Corporation Cache memory control method and multi-processor system

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8244985B2 (en) 2004-03-30 2012-08-14 Intel Corporation Store performance in strongly ordered microprocessor architecture
JP2008544417A (en) * 2005-06-29 2008-12-04 インテル コーポレイション Caching method, apparatus and system
KR101077514B1 (en) 2007-06-19 2011-10-28 후지쯔 가부시끼가이샤 Cache controller and control method
WO2008155822A1 (en) * 2007-06-19 2008-12-24 Fujitsu Limited Cache controller and control method
US8412886B2 (en) 2007-06-19 2013-04-02 Fujitsu Limited Cache controller and control method for controlling access requests to a cache shared by plural threads that are simultaneously executed
JPWO2008155822A1 (en) * 2007-06-19 2010-08-26 富士通株式会社 Cache control apparatus and control method
JP4706030B2 (en) * 2007-06-19 2011-06-22 富士通株式会社 Cache control apparatus and control method
US8103859B2 (en) 2007-06-20 2012-01-24 Fujitsu Limited Information processing apparatus, cache memory controlling apparatus, and memory access order assuring method
WO2008155829A1 (en) * 2007-06-20 2008-12-24 Fujitsu Limited Information processor, cache memory controller, and memory access sequence assurance method
JP4710024B2 (en) * 2007-06-20 2011-06-29 富士通株式会社 Cache memory control device and cache memory control method
JPWO2008155829A1 (en) * 2007-06-20 2010-08-26 富士通株式会社 Information processing apparatus, cache memory control apparatus, and memory access order guarantee method
JP4983919B2 (en) * 2007-06-20 2012-07-25 富士通株式会社 Arithmetic processing device and control method of arithmetic processing device
US8261021B2 (en) 2007-06-20 2012-09-04 Fujitsu Limited Cache control device and control method
JP2009288977A (en) * 2008-05-28 2009-12-10 Fujitsu Ltd Cache memory control device, semiconductor integrated circuit, and cache memory control method
JP2011134205A (en) * 2009-12-25 2011-07-07 Fujitsu Ltd Information processing apparatus and cache memory control device
US9390012B2 (en) 2010-06-14 2016-07-12 Fujitsu Limited Multi-core processor system, cache coherency control method, and computer product
WO2013084314A1 (en) * 2011-12-07 2013-06-13 富士通株式会社 Processing unit and method for controlling processing unit
JP2014006807A (en) * 2012-06-26 2014-01-16 Fujitsu Ltd Processor, cache memory control apparatus, and cache memory control method
JP2014112383A (en) * 2013-12-19 2014-06-19 Intel Corp Processor providing execution of secure application
JP7160514B2 (en) 2015-08-12 2022-10-25 エヌエイチエヌ コーポレーション RESOURCE DOWNLOAD METHOD, RECORDING MEDIUM, AND RESOURCE DOWNLOAD SYSTEM IN MOBILE ENVIRONMENT
CN111652749A (en) * 2018-11-28 2020-09-11 阿里巴巴集团控股有限公司 Information checking method and device
CN111652749B (en) * 2018-11-28 2024-04-16 创新先进技术有限公司 Information checking method and device

Also Published As

Publication number Publication date
JP4180569B2 (en) 2008-11-12
JPWO2004068361A1 (en) 2006-05-25

Similar Documents

Publication Publication Date Title
JP2566701B2 (en) Change ownership controller for data units in shared cache
JP4208895B2 (en) Cache memory device and processing method
US8301843B2 (en) Data cache block zero implementation
JP4982375B2 (en) Sharing a monitored cache line across multiple cores
KR100228940B1 (en) How to keep memory consistent
JP4376692B2 (en) Information processing device, processor, processor control method, information processing device control method, cache memory
WO2004068361A1 (en) Storage control device, data cache control device, central processing unit, storage device control method, data cache control method, and cache control method
US9547596B2 (en) Handling of a wait for event operation within a data processing apparatus
US20080082796A1 (en) Managing multiple threads in a single pipeline
JPH0785222B2 (en) Data processing device
JPH0239254A (en) Data processing system and cash memory system therefor
US20060064518A1 (en) Method and system for managing cache injection in a multiprocessor system
JPH0668735B2 (en) Cache memory
JPH0670779B2 (en) Fetch method
US20090106498A1 (en) Coherent dram prefetcher
US9424190B2 (en) Data processing system operable in single and multi-thread modes and having multiple caches and method of operation
JP3862959B2 (en) Microprocessor load / store instruction control circuit and load / store instruction control method
JP2022526057A (en) Memory ordering violation check Speculative instruction wakeup to allow buffer ejection delay
US20050210204A1 (en) Memory control device, data cache control device, central processing device, storage device control method, data cache control method, and cache control method
EP0374370B1 (en) Method for storing into non-exclusive cache lines in multiprocessor systems
US20070112998A1 (en) Virtualized load buffers
CN101833517B (en) Cache memory system and its access method
US6266767B1 (en) Apparatus and method for facilitating out-of-order execution of load instructions
US7975129B2 (en) Selective hardware lock disabling
JP3320562B2 (en) Computer with cache memory

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

WWE Wipo information: entry into national phase

Ref document number: 2004567505

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 11123140

Country of ref document: US

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载