WO1995016959A1 - Dispositif et procede de synchronisation des systemes a antememoire de donnees a plusieurs niveaux - Google Patents

Dispositif et procede de synchronisation des systemes a antememoire de donnees a plusieurs niveaux Download PDF

Info

Publication number
WO1995016959A1
WO1995016959A1 PCT/JP1994/002111 JP9402111W WO9516959A1 WO 1995016959 A1 WO1995016959 A1 WO 1995016959A1 JP 9402111 W JP9402111 W JP 9402111W WO 9516959 A1 WO9516959 A1 WO 9516959A1
Authority
WO
WIPO (PCT)
Prior art keywords
level cache
cache
instruction
level
pipeline
Prior art date
Application number
PCT/JP1994/002111
Other languages
English (en)
French (fr)
Inventor
Joseph P. Bratt
John Brennan
Peter Yan-Tek Hsu
William A. Huffman
Joseph T. Scanlon
Steve Ciavaglia
Original Assignee
Silicon Graphics Inc.
Kabushiki Kaisha Toshiba
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 Silicon Graphics Inc., Kabushiki Kaisha Toshiba filed Critical Silicon Graphics Inc.
Priority to DE69434728T priority Critical patent/DE69434728T2/de
Priority to KR1019950703429A priority patent/KR0182344B1/ko
Priority to EP95902964A priority patent/EP0684561B1/en
Publication of WO1995016959A1 publication Critical patent/WO1995016959A1/ja
Priority to HK98114540A priority patent/HK1018166A1/xx

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
    • 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

  • the present invention relates to a system and method for synchronizing a specification-level data cache system.
  • the present invention relates to the synchronization of data caches in a computer system including a split level cache device.
  • Modern computer systems include a storage hierarchy consisting of various storage devices of different sizes and speeds. Examples of such a storage device include a small-capacity and high-speed cache memory, and a large-capacity but low-speed main storage device.
  • the data can be found in cache memory or main memory.
  • multiple devices such as central processing units and input / output devices access and update the data contained in cache memory and main memory.
  • the data may be inconsistent or outdated in cache memory and / or main memory. Absent.
  • An object of the present invention is to provide a comb comprising a plurality of processing units each having at least one cache.
  • An object of the present invention is to provide a control system and a method for controlling execution of a cache memory access instruction in a tar system.
  • the synchronization of the multiprocessor cache is maintained in the combi-processor system.
  • a split level consisting of at least one processing unit of the computer system, a first level cache, connected to a second level cache.
  • a processor comprising a first-level cache and a second-level cache, wherein the integer storage instruction allows data to be stored in a first-level cache and a second-level cache.
  • the first level cache is byte writable
  • the second level cache is code writable.
  • the control system of the present invention monitors the second-level cache, and monitors the liveliness, and sends a fourth-level atomic (FA) instruction to the second-level cache. Determine if it is in the pipeline.
  • the FA instruction is an integer storage instruction that requests storage allocation in the first-level cache, and data of a length other than an integral multiple of a code is a first-level cache. Enables me to be stored in the show.
  • one or more byte cards are read from the first level cache and the length data is written to the second level cache. The data is written to the second level cache along with the FA instruction write data. If it is determined that the FA instruction is on the second level cache pipeline, the control system determines that the FA instruction is on the second level cache pipeline.
  • control system monitors the second level cache to determine if a possible miss (PM) instruction is in the second level cache pipeline. Determine whether or not.
  • the PM instruction requires a memory allocation in the second-level cache, but does not require a memory allocation in the first-level cache. Seth instruction.
  • the control system determines that the FA instruction is in the second level cache pipeline. Try not to enter the event. This does not prevent the execution of second-level cache intervention, but it does provide a deadlock between the processing units of the computer system. Instructions in the second-level cache may be suspended while the intervention is processed for the second-level cache so that There is
  • control system uses a first-level word that is an integral multiple of the aligned bytes containing the write data for the integer storage operation. Determining Whether a Card is Exclusively Exclusive to the Cash Only If the aligned code determines that it is not exclusive only to the first-level cache, the control system determines Prevent integer store operations from entering the second-level cache pipeline and ensure that aligned words are monopolized by the first-level cache. Start cash miss file operation.
  • FIG. 1 is a block diagram of the computer system of the present invention.
  • FIG. 2 shows how integer storage operations are performed in a computer system with a split-level cache array.
  • Figure 3 depicts a scenario in which data is lost overnight due to the structural and operational features of a computer system with a split-level cache array. It is a figure.
  • FIG. 4 is a flowchart illustrating the operation of a control system according to a preferred embodiment of the present invention.
  • FIG. 5 is a flowchart illustrating the operation of a control system according to a preferred embodiment of the present invention.
  • FIG. 1 shows a combi- nation in which the present invention can operate favorably. It is a partial block diagram of the user system 101. As will be appreciated by those skilled in the art, the computer system 101 includes components other than those shown in FIG.
  • the computer system 101 has a processing unit 102 connected to a node 126.
  • the processor 102 is preferably a Reduced Instruction Set Computer (RISC), reduced instruction set computer (processor) processor, but may be replaced by another type. It may be a processor with a computer architecture of this type.
  • RISC computer processor is described in the following document which is cited for reference. G. Kane and J. Hemrich, MIPS RISC Architecture (Prentice Hall, Englewood Cliffs, New Jersey, USA, 1992); Mike Johnson, Superscalar Microprocessor Design (Prentice Hall, Englewood Cliffs, New Jersey, US A., 1991). And Stephen B. Furber, VLSI RISC Architecture and Organization (Marcel Dekker, Inc., New York, New York, USA, 1989).
  • the processing unit 102 includes integer functional units (IU; not explicitly shown in FIG. 1) for performing integer operations, and floating-point functional units (for performing floating-point operations).
  • FPU Includes multiple functional units (FUs) 104, such as not explicitly shown in Figure 1.
  • the processing unit 102 includes a first level cache, such as a data cache 108, and a global level cache 110. Includes a split-level cache array consisting of a second-level cache such as 2.
  • the data cache 108 is smaller than the global cache 112 (the preferred large size of the data cache 108). The size is 16 kilonotes, and the preferred size of the global cache 112 is 16 megabytes.)
  • the data cache 108 contains a subset of the data stored in the global cache 112. Normal data cache 108 operates faster than global cache 112
  • the data cache 108 is formed on the same combi- ter chip as the IU in the processing unit 102 (therefore, the data cache 108).
  • the cache 108 is also called “on-chip cache."
  • the global cache 112 is external to the functional unit 104 in the processing unit 102 (therefore, the global cache 110). 12 is also called “off-chip cache”).
  • the integer data is in the data cache 108.
  • the floating point data is in the global cache 112.
  • the global cache 112 is the second level storage unit for integer data.
  • the integer store operation causes the integer data to be stored in both the data cache 108 and the global cache 112.
  • Floating-point store operations bypass data cache 108 so that floating-point data is stored in global cache 112 To.
  • data cache 108 supports non-word writing.
  • the data cache 108 may support the writing of different non-volatile write lengths, but preferably the data cache 108 supports byte writes. To support . That is, the data can be written to the data cache 108 in 1 ° packets. In other words, the data cache 108 is preferably byte-writable.
  • the global cache 112 does not support write-to-write. Instead, the global cache 112 supports word writing, in which case the word is preferably 4 bytes. In other words, the global cache 112 is code-writable.
  • the global cache uses less RA RA (random access memory). It is possible to execute the sew 112, thereby reducing the cost of the processing unit 102. This is indeed the case when supporting byte writing rather than word writing, the degree of parity is greater. For example, if the word power is 32 bits and the global cache 112 is executed using a RAM having a write width of 4 bits, the byte write When this is supported, one parity-one RAM is required for every two data RAMs. On the other hand, when word writing is supported, one parity for every eight data RAMs One RAM is required.
  • the integer storage operation causes integer data to be stored in both the cache 108 and the global cache 112. Further, as described above, the data cache 108 supports byte writes, and the global cache 112 supports read writes.
  • FIG. 2 illustrates how one integer store operation is performed on the global cache 112.
  • the data cache 108 is conceptually depicted as being composed of a plurality of rows, and each row represents a 4-byte data word in which each row is aligned. Contains.
  • one byte (representing the "write data" of the integer store operation) is written to one column of the data cache 108.
  • this column is read from another 3-byte data cache 108, and these 3 bytes are the bytes of the integer store operation (that is, the write data). Properly combined with the data) to form the data code.
  • This mode is then stored in the global cache 112.
  • Data storage to the data cache 108 and the global cache 112 is pipelined.
  • the data storage pipeline associated with the data cache 108 and the data cache 112 (the data cache pipeline is shown in Figure 1). ), And the global cache pie line is indicated by 110 in FIG. 1) Is to perform integer storage on the data cache 108 before the floating point miss on the global cache 112 is realized.
  • the computer system 101 includes additional processing units, such as processing units 114, that are connected to a bus 126.
  • the additional processing units (processing units 114) connected to these buses 126 may have a split-level cache arrangement, Or any other type of cache array (such a cache array must be able to store both integer and floating point data). You can do it.
  • the processing device 102 may be referred to as a first processing device 102
  • the processing device 114 may be referred to as a second processing device 114.
  • the computer system 101 maintains the synchronization of the multiprocessor data. That is, the synchronization of the integer and floating-point data distributed and stored among the processing units connected to the bus 126 is performed by the combi-processor system 101. Be maintained.
  • Computer system 1 0 1 Includes a cache synchronization mechanism (not shown) to maintain this data synchronization.
  • the present inventor has determined that the special structural and operational features of the computer system 101, particularly the split-level cache arrangement described above, may cause the computer to fail. Issues related to cache synchronization in system 101 have been identified. In addition, the inventor has developed solutions to these cache synchronization related problems. These issues related to cache synchrony have not been identified to date and have therefore not been resolved to date.
  • the selected contents of the global cache 112 are connected to the bus 126 (shown in FIG. 1). 4) different times t 0, t 1, t 2, t 3 (these times do not have to be equidistant from each other) ).
  • the cache of this other processor shall support byte writes.
  • the global cache 112 in the first processing unit 102 has a four-byte array with unit values A, B, C, and D.
  • the code 302 is memorized.
  • the exclusive copy of this code (that is, the only valid copy in the computer system 101) is the first processing unit 10 Suppose you are in global cache 1 12 of 2. Therefore, this word 302 cannot be used in the cache of another processing apparatus shown in FIG.
  • the functional unit 104 of the first processing unit 102 will be replaced by the data cache 108 and the global cache of the first processing unit 102.
  • the processing of this integer store instruction causes the data cache 108 of the first processor 102 to read bytes A, C, and D, and is associated with the integer store instruction. To combine properly with byte "Y".
  • a function unit in the other processing unit issues a store 'instruction to write byte "X" to data word 302.
  • the cache miss message The message is issued by another processor.
  • the cache data can be written only when the data is proprietary.
  • the pending integer store instruction is completed in the first processing unit 102 and notes A, Y, C, D is stored in data word 302. It should be noted that the byte "X" written to data code 302 by another processing unit has been destroyed by the operation of the first processing unit 102. It is. Thus, as a result of the special structural and operational features of the computer system 101, it is stored in the cache by one processor. The data is destroyed by the operation of another processor.
  • Data loss problems may cause data loss problems.
  • At least one cache memory access instruction is executed atomically. It is solved by ensuring this.
  • a cache memory access instruction that may cause a data loss problem may cause a read (of 3 bytes) in the data cache 108. It is executed in the smallest unit from the start of writing to the completion of writing (4-byte) in the global cache 112.
  • the ability to cause problems with data loss, the ability to command cache memory access, and the ability to global cache 11 'It is executed in the smallest unit from the point force that enters the lifeline 110 to the point at which it exits the pipeline of the command global cache 112. No intervention is allowed during the atomic execution of such instructions.
  • the intervention is performed for processor X and includes reading data from processor Y's cache, such as processor Y. Used to update the cache of the sasser. Intervention is necessary to maintain synchronization between caches in the combi- er system.
  • the global cache 112 in the first processing unit 102 has a four-byte array with the note values A, B, C, and D Remember the exclusive copy of ec 3 02 (ec 1 usivecopy).
  • an integer storage instruction issued between time t0 and time t1 by one of the functional units 104 is transmitted from the data cache 108 to the storage unit 102. Start reading memory for items A, C, and D.
  • the integer store instruction has entered the smallest unit of execution where intervention on the global cache i12 is prevented. Therefore, the other processing units wait until the pending integer storage instruction in the first processing unit '102 is completed (that is, by A, Y, C, and D are gross). (Until it is stored in the global cache 112) and has no opportunity to modify the data word 302.
  • the operation of the present invention allows one processor (ie, the other processor in the example of FIG. 3) to operate on one processor.
  • the data stored in the cache is not destroyed by the operation of another processor (that is, the first processing unit 102 in the example of FIG. 3).
  • the present invention provides for the execution of cache memory access instructions that may cause data loss problems in the smallest unit. Resolve data loss problems by ensuring. These instructions are called forced atomic (FA) instructions because they are forced to execute atomically as described above.
  • FA forced atomic
  • the inventor has used FA instructions to store integers (i.e., a data cache that stores more than just aligned word blocks).
  • a cache memory access instruction that requires data to be stored in both the cache 108 and the global cache 112. And identified.
  • the global cache 112 has a data storage width of 4 bytes and the FA instruction stores anything other than the aligned 4-byte block. Or an integer storage instruction that stores something other than a multiple of four aligned bytes.
  • Such an instruction requires a memory allocation in data cache 108, and is accessed to retrieve data cache 108 bytes, and 4 bytes. To write the memory of the global cache to the cache.
  • the problem of data loss is solved by specifying the FA instruction and executing the FA instruction in the smallest unit.
  • the atomic execution of the FA instruction creates a new problem, which is a problem of the processing unit in the computer system 101. Includes the possibility of deadlock.
  • deadlock problem There are two aspects to the deadlock problem, which are deadlock with a poten- chanism instruction and execution of a forward atomic instruction. Is a deadlock due to demands for data exclusivity at times. These aspects of the deadlock problem are described below.
  • a floating write instruction is started in first processing unit 102.
  • a floating write instruction is also initiated in the second processor 114.
  • the floating write instruction bypasses the data caches 108 and 120 and proceeds directly to the global caches 112 and 124.
  • the pending floating write instruction has not completed in the first processor 1.02, and the FA integer write instruction has not been completed in the first processor. 2 in It is assumed that it has been started.
  • the read operation of the data cache 108 is started, and the appropriate three bytes are searched and the global cache is searched. Write the upcoming 4 bytes to the global cache 112.
  • the global cache Intervention in queues 112 will be prevented.
  • the pending write instruction that is pending in the second processing unit 114 is not completed, and the FA integer write instruction is executed in the second processing unit 114. Assume that it was opened in 114.
  • a read operation of the cache 120 is started overnight to search for an appropriate three bytes. Write the four bytes that should come to global cache 124. Thus, for a four-byte word that contains these three bytes (and also includes the write data of the FA integer write instruction), the global cache 1 Intervention in 24 will be prevented.
  • a cache miss is realized due to the floating write instruction being pendent in the second processor 114.
  • the data to be modified by the floating write instruction is not valid in the global cache 124 of the second processing unit 114 and is exclusive. is not.
  • this data is valid in the global cache 112 of the first processing unit 102 and is monopolized.
  • Intervention is required at shu 112. However, this intervention has been prevented due to the atomic execution of the FA integer write instruction during the pending in the first processor 102.
  • the first processing unit 102 is closed off and relies on data from the second processing unit 114 to form a second processing unit.
  • 114 is closed and relies on data from the first processing unit 102.
  • the data from the first processing unit 102 cannot be used until the blockage of the first processing unit 102 is released.
  • data from the second processor 114 cannot be used until the second processor 114 is unsealed. Accordingly, there is a deadlock state between the first processing device 102 and the second processing device 114.
  • the cache memory access instruction pertaining to this deadlock problem has two categories. There is a Lee.
  • the first instruction category contains cache memory access instructions that may address data loss issues. These instructions are called Forced Atomic (FA) instructions and have been limited and described above.
  • FA Forced Atomic
  • the second instruction category does not require storage allocation in the data caches 108, 120 (i.e., the data caches 108, Data is not stored in the memory 120), and a cache memory access instruction that directly accesses the memory 1 1 2 and 1 2 4 Including. These are different from the FA instructions that require data caches 108 and 120 to allocate storage.
  • -1 Global cache 1 1 2 1 2 4
  • the FA instruction cannot generate a global cache miss. (See discussion in the section on this topic.) Since the FA instruction seeks memory allocation in the data cache 1081,20, the data cache 1081,200 also has a global cache. It is indeed true to store the appropriate subset of the data stored in 1 1 2 1 2 4.
  • the instructions in the second instruction category do not require a memory allocation for the data cache 1081, and thus can cause a global cache miss. I can do it. Therefore, the instructions in the second instruction category are called potentiometer (PM) instructions.
  • PM potentiometer
  • a third instruction category including a cache memory access instruction that does not belong to the first instruction category or the second instruction category.
  • the instructions in the third instruction category can be in the same group as the instructions in the first instruction category or the instructions in the second instruction category. Such a grouping is performed, for example, to enhance performance.
  • the instructions in the third instruction category are not relevant to the solution of the deadlock problem and will not be discussed further.
  • the inventor has fully analyzed the deadlock problem and has found the deadlock. Can invent a procedure to solve this problem. In particular, the inventor concluded that the problem of deadlock could only occur if a potential door-to-power order was followed by a force-to-atomic order. . More specifically, with regard to the processing unit 102, the inventor has found that the problem of the deadlock is that the PM instruction has already been executed on the global cache 112. Declared to be a potential event only if allowed to enter the pi line of FA Command Global Cache 112 when in the presence of a no-plane .
  • a floating write instruction started at time 0 represents a PM instruction.
  • the integer write instruction started at time 1 represents the FA instruction.
  • the problem of deadlock occurs only when the PM instruction is not already present in the pipeline of the global cache 112. It can be evaded by allowing FA instructions to enter the pipeline of the global cache 112. If the PM instruction still exists in the global cache 112 pipeline, delay the FA instruction.
  • the global cache 112 can write data to the global cache 112 only if it has a valid copy of the data. .
  • a floating-point write is performed to the global cache 112, and an exclusive copy of the data in question is not stored in the global cache 112. If so, a cache miss file operation (or intervention) must be performed.
  • the one-byte FA integer write operation performed in the first processing unit 102 is performed by the data cache 108. And write to global cache 112.
  • the data byte in question ie, a data cache modified by an integer write operation.
  • the bytes in 108) are required to be in the cache block monopolized in the data cache 108. Otherwise, it is not allowed to proceed with the integer write operation.
  • the cache block width may be any other value without departing from the scope and spirit of the present invention, but the cache block width is 1 It is preferred that it be 2 8 kb.
  • the inventor states that, along with the other three bytes of the aligned 4-byte word (including the data byte in question), the data byte in question is the data cache. Integer write operation only when in the cache mouth that is monopolized in 108. Declared that entry into the country should be allowed. If not, deadlocks may occur.
  • the integer write operation can be performed on the global cache 112 and the pipeline. cormorant Myo thinking Sina the Rio that the call is allowed to enter. 0 in this Sina the Rio, this is found 4 carbonochloridate I bets can also be occupied Germany in yet Glo Banoreki catcher Tsu push from 1 1 2 It is assumed that there is not.
  • a cache mis-final operation that is, an intervention
  • the FA instruction includes a miss in the global cache 112, thus including the nature of the potential miss instruction.
  • the FA directive would block intervention on the global cache 112 and rely on monopoly from another processing unit, thus making it a deadlock. The possibility exists.
  • this deadlock problem is solved by requiring an exclusive arrangement for the memory in the data cache 108. .
  • the cache block containing the aligned 4-byte word in question is monopolized in the data cache 108, the FA integer write operation will only Executed in cache 108. Otherwise, a cache miss file operation will occur.
  • this cache miss fill operation is issued, an FA integer write instruction will be issued to global cache 112. It should be noted that it is not in the environment, and that this cache miss file operation is not performed on a atomic basis. In this way, the danger of ducking is avoided.
  • the system and method of the present invention controls the execution of cache memory access instructions by executing the following three rules ( For simplicity, these descriptions have been made with respect to processor 102. Explain the rules).
  • (1) (Operates to correct the data word) If the FA instruction is in the global cache 112 pipeline, the FA instruction is completed and the global call is completed. Before exiting the hash plane, the data cache (i.e., refer to the data word) before exiting the plan line. Delay intervention for 2. Alternatively, if the FA instruction is in the Grono ⁇ Normal Cache 112 pipeline, the FA instruction is completed and the global cache 112 Delay intervention for all global caches 112 before leaving India.
  • the FA instruction can enter the pipeline of the global cache 11 or 2. Unacceptable. Such FA instructions are delayed (that is, they are blocked and later restarted at a later time).
  • the FA instruction will be the global cache 112 Is not allowed to enter the neuline for a non-minimum cache miss file.
  • Rule (1) solves the problem of data loss.
  • Knoll (2) solves the problem of deadlock (potential noise).
  • Norelle (3) solves the problem of deadlock (the requirement for data exclusivity).
  • the present invention further includes the following fourth rule. That is, if the intervention is pending in the global cache 112, the FA instruction is allowed to enter the global cache 112 pipeline. Not done. Instead, the FA instruction is delayed until all pending interventions have been completed.
  • This fourth rule is not used to solve the problem described above. Rather, this fourth rule is intended to improve performance.
  • the fourth rule ensures that intervention is not permanently blocked by the FA order, but is given an opportunity to be handled instead.
  • Runores (1), (2), and (4) are based on the addition of the FA and PM bits to each instruction that enters the global cache 112 pipeline. It is preferable to execute it. If the instruction is a fourth-door mix instruction, it is preferable to set the FA bit to 1, otherwise set it to 0. Similarly, if the instruction is a potential miss instruction, it is preferable to set its PM bit to 1, otherwise it is set to 0.
  • Control system 150 preferably monitors instructions as they enter the pipeline of global cache 112 (control system 150 and processor 102). The control lines between these elements are not shown for clarity). The flow shown in Figure 4 for the operation of control system 150 This will be described with reference to a chart.
  • control system 150 detects a command with the FA bit set to 1 in the NORMAL ASH line (indicated by step 404), The control system 150 prevents intervention on the appropriate data in the global cache 112 (ie, the aligned 4-bit word of interest). (Shown in tip 406). This executes the first rule.
  • control system 150 determines that intervention is pending for global cache 112 (as indicated by step 412).
  • the control system 150 prevents the FA instruction from entering the pipeline of the clock cache 112 (shown by step 410). Assume that control system 150 is in contact with other components of computer system 101 that have knowledge of the pending intervention. This runs the fourth rule.
  • Control system 150 If the controller detects an instruction with a PM bit set to 1 on the global visor line (indicated by step 408), the control system 150 prevents the FA instruction from entering the global cache pipeline (indicated by step 410). This runs the second rule.
  • the rune (3) sends a W (which is preferably 128 bytes wide) to each cache block (which is preferably 128 bytes wide) in the data cache 108. Add a bit) It is preferable to do this. If the cache block is monopolized by the data cache 108, the cache block in the cache 108 Preferably, the W bit associated with is set to one. If not, set it to 0. Further operation of the control system 150 will be described with reference to the flowchart shown in FIG.
  • the control system 150 is an integer storage instruction that is processed in the data cache 108 (that is, processed in the pipeline of the data cache 108). (Integer storage instruction). If the aligned 4-byte code associated with the FA instruction is in a cache block that is monopolized in the data cache 108 (cache) The FA instruction is a global cache 1 as indicated by the W bit associated with the shear block; this test is represented by step 504). 1 is allowed to enter the pipeline, and is subjected to other processing of the control system 150 described here (this is ).
  • control system 150 is preferably implemented as a hardware machine that operates as described above, and is particularly implemented according to the four rules described above. This is preferred. Alternatively, control system 150 may be implemented as a processor that operates according to software.
  • the control system 150 has a processing (with split-level cache array) as part of the integer functional unit (IU), including the data cache 108. It is preferably implemented on each of the devices. Alternatively, the control system 150 is a component external to the functional unit 104 and is located on each of the processors (with a split-level cache arrangement). Will be implemented. Alternatively, the control system 150 may be a multi-state machine distributed to each of the processing units of the computer system 101, including a split-level cache array. Implemented as a thin.
  • the control system 150 is a suitable component, which allows hardware developers to develop. It is preferably developed using an Iraq system and a prototyping hardware circuit in the software area. In such a compiler system, the functionality of the hardware components can be expressed using a translated language. Such a compiler system can be used to prove the logic and help in limiting the timing and generation of control signals and associated random logic.
  • One such compiler is Power Rifonorenja San Jose's Cadence Design Systems, Inc. (Ve ril og Konno. It is the first.
  • a socket having a cache arrangement of a split tray is provided. It can solve the problem of cache synchronization existing in the computer system.

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)

Description

明細書 スプ リ ッ ト レベルのデー タ キ ャ ッ シ ュ システム にお け る 同期性のための シ ス テム と その方法 技術分野
本発明はスプ リ ッ ト レベルの キ ヤ ッ シ ュ装置を含むコ ン ピュ ー タ ー システム にお け る デー タ キ ヤ ッ シ ュの同期 性に関する。
背景技術
現代の コ ン ビュー タ ー シ ステムは大 き さ及び速度の異 な る様々 な記憶装置か ら成る記憶階層を含んでい る。 か かる記憶装置には、 例えば、 小容量なが ら高速のキ ヤ ッ シ ュ メ モ リ 一や、'大容量ではあ るが低速の主記憶装置が め る 。
デー タ はキ ャ ッ シ ュ メ モ リ ー かあ る いは主記憶装置の 中に見い出 さ れる。 更に、 (中央処理装置や入出力装置 等の) 複数の装置が、 キ ャ ッ シ ュ メ モ リ ー及び主記憶装 置の中 に含ま れるデー タ にア ク セス し、 更新する。 こ の よ う に、 いつで も、 デー タ はキ ャ ッ シ ュ メ モ リ ー及び も し く は主記憶装置において一致 し な いか、 あ る いは古 く な っ てい る 力、 も しれない。
こ れはキ ャ ッ シ ュ メ モ リ 一 におけ る 同期性 ( c 0 h e r e n c y ) の問題であ る 。 キ ャ ッ シ ュ の同期性の問題 は、 特に複数のプロ セ ッ サーが各々 1 つかそれ以上のキ ャ ッ シ ュを含み、 全てのキ ャ ッ シ ュ間に同期性が要求さ れる マ ノレチプ ロ セ ッ サー · コ ン ピ ュ ー タ ー シ ス テム にお いて増大する。
キ ヤ ッ シ ュ の同期性を維持す る シス テム及びそ の方法 は公知であ り 、 John L . Hennessy and David A. Patter sonの Computer Architecture - A Quantitative A p r oa ch ( コ ン ピ ュ ー タ ー ア ー キ テ ク チ ャ ー : 定量的ア ブ ロ ー チリ ( Morgan Kauf mann Publishers, Inc. San Mateo, California , U.S.A. , 1 9 9 0 年) 等の よ う に、 一般に 利用で き る文献に記載さ れてお り 、 参照のた め こ こ に引 用する 。 こ れ ら従来か らの シス テム及び方法はほ と ん ど の コ ン ピ ュ ー タ ー シ ス テム に存在する キ ヤ ッ シ ュ の同期 性の問題を解消する の に充分であ る。
し か し なが ら 、 新 し い コ ン ピ ュ ー タ ー ァ ー キテ ク チ ャ 一は'新型キ ヤ ッ シ ュ の同期性の問題を生 じ る こ と力 あ る。 こ れ ら のキ ヤ ッ シ ュ の同期性の問題は、 検出する こ と は も ち ろん、 'その解析及び解決は困難であ っ た。 従来のキ ャ ッ シ ュ の同期性技術は こ れ ら の新型キ ヤ ッ シ ュ の同期 性問題を解消する には適切でな い こ と も あろ う 。
こ の よ う に、 ス ブ リ ッ ト レベルのキ ヤ ッ シ ュ配列を持 つ コ ン ピ ュ ー タ ー シ ス テム に存在する キ ヤ ッ シ ュ の同期 性に関する 問題.を解決する ための シス テム及び方法が求 め られてい る 。
そ こ で、 本発明の 目的は、 それぞれ少な く と も 1 つの キ ヤ ッ シ ュを有する複数の処理装置か ら成る コ ン ビ ュー タ ー シ ス テム において、 キ ヤ ッ シ ュ メ モ リ 一 ア ク セ ス命 令の実行を制御する ための制御 システム及び方法を提供 する こ と にあ る。
発明の開示
本発明によれば、 マルチプロセ ッ サ一キ ヤ ッ シ ュ の同 期性は コ ン ビ ユ ー タ ー シス テム の中で維持さ れる。 コ ン ビュー タ ー シ ス テム の少な く と も 1 つ の処理装置が、 第 2 レベルの キ ヤ ッ シ ュ に連結さ れる第 1 レベルのキ ヤ ッ シ ユカ、 ら成る スプ リ ッ ト レベルのキ ヤ ッ シ ュ配列を含む 処理装置であ っ て、 整数記憶命令がデー タ を第 1 レベル のキ ヤ ッ シ ュ と第 2 レベルのキ ヤ ッ シ ュ に記憶する こ と を可能にする 。 第 1 レべノレのキ ャ ッ シ ュ はバイ ト 書き込 み可能であ り 、 第 2 レベルのキ ヤ ッ シ ュ は ヮ ー ド書き込 み可能であ る 。
本発明の制御 シス テム は第 2 レベルのキ ヤ ッ シ ュのノ、' イ ブラ イ ンを監視 し て、 フ ォ ー ス ドア ト ミ ッ ク ( F A ) 命令が第 2 レベルの キ ヤ ッ シ ュパイ プラ イ ン にあ る か否 かを判別する 。 F A命令は第 1 レベルの キ ャ ッ シ ュ にお け る記憶割当てを求め る整数記憶命令であ り 、 それは ヮ 一 ドの整数倍以外の長さ のデー タが第 1 レベルのキ ヤ ッ シ ュ に記憶さ れる こ と を可能にする。 F A命令実行中に、 1 つかそれ以上のバイ ト カ 第 1 レベルのキ ヤ ッ シ ュ か ら 読み込ま れ、 ヮ 一 ド長デー タが第 2 レベルのキ ヤ ッ シ ュ に書き込ま れる よ う に、 F A命令の書 き込みデー タ に沿 つ て第 2 レべノレのキ ャ ッ シ ュ に書き込ま れる 。 F A 命令が第 2 レベルの キ ヤ ッ シ ュ パ イ プラ イ ン に あ る と 判別 さ れた場合、 制御 シ ス テム は F A命令が第 2 レ ベルの キ ヤ ッ シ ュパ イ ブラ イ ン を出 る ま で、: 第 2 レベル のキ ャ ッ シ ュ に対す る 介入を遅 ら せ る 。 こ れは結果的に、 キ ヤ ッ シ ュ メ モ リ ー ア ク セ ス命令の操作に よ っ て書 き 込 ま れる デー タ が F A 命令の操作に よ っ て破壊 さ れな い よ う に、 かか る 介入の発生に責任があ る キ ヤ ッ シ ュ メ モ リ — ア ク セス命令の実行を遅 ら せ る 。
更に、 制御 シス テム は第 2 レベルの キ ヤ ッ シ ュ を監視 して、 ポ ッ シ ブル ミ ス ( P M ) 命令が第 2 レベルの キ ヤ ッ シ ュ パ イ ブラ イ ン にあ る か否かを判別す る 。 P M命令 は第 2 レベルのキ ヤ ッ シ ュ の中 に記憶割当てを求め る が、 第 1 レベルの キ ヤ ッ シ ュ に は記憶割当てを求めな い キ ヤ ッ シ ュ メ モ リ ー ア ク セス命令で あ る 。
P M命令が第 2 レベルの キ ヤ ッ シ ュ パ イ プラ イ ン の中 に あ る と 判別 さ れた場合、 制御 シ ス テ ム は F A 命令が第 2 レべノレの キ ヤ ッ シ ュパ イ ブラ イ ン に入 ら な い よ う にす る 。 こ の方法で、 第 2 レベルの キ ャ ッ シ ュ に対す る 介入 の実行が防止 さ れな いが、 コ ン ピ ュ ー タ ー シ ス テム の処 理装置間のデ ッ ド ロ ッ ク が防止 さ れる よ う に、 介入が第 2 レベルのキ ヤ ッ シ ュ の た め に処理 さ れる 間に、 第 2 レ ベルの キ ヤ ッ シ ュ に お け る 命令が保留 さ れる 可能性があ る
更に制御 シ ス テム は、 整数記憶操作の書 き 込みデー タ が含ま れ る整列 し た バイ 卜 の整数倍の ワ ー ドが第 1 レべ ルのキ ヤ ッ シ ュ にのみ独占 さ れてい る か否かを判別する 整列 し た ヮ ー ドが第 1 レベルの キ ヤ ッ シ ュ に のみ独占的 でない と判断 した場合、 制御 シス テム は整数記憶操作が 第 2 レベルのキ ヤ ッ シ ュパ イ ブラ イ ン に入 ら な い よ う に し、 整列 し た ワ ー ドが第 1 レベルのキ ャ ッ シ ュ に独占 さ れる よ う にキ ャ ッ シ ュ ミ ス · フ ィ ル操作を開始する 。 図面の簡単な説明
図 1 は、 本発明の コ ン ピ ュ ー タ ー シ ス テム のブロ ッ ク 線図であ る。
図 2 は、 整数記憶操作がスプ リ ツ ト レベルのキ ヤ ッ シ ュ配列を持つ コ ン ピ ュ ー タ 一 シ ス テム において どの よ う に実行 さ れる かを示す図であ る 。
図 3 は、 ス ブ リ ツ ト レベルの キ ャ ッ シ ュ配列を持つ コ ン ピュ ー タ ー シス テ ム の構造及び操作上の特徴の故にデ 一 夕 が失われ る シナ リ オを描い た図で あ る 。
図 4 は、' 本発明の好適な実施例によ る制御 システムの 操作を描 ぐフ ロ ー チ ヤ 一 ト であ る 。
図 5 は、 本発明の好適な実施例によ る制御 システムの 操作を描 く フ ロ ーチ ヤ 一 ト であ る。
発明を実施す る ための最良の形態
以下、 本発明の好ま し い実施例を添付の図面を参照 し なが ら詳細に説明する。 なお、 図面において、 同 じ参照 符号は同 じか又は機能的に類似する エ レメ ン ト を示す。 1 . ハ ー ドウ ユ アを取り 巻 く 環境
図 1 は、 本発明が好適に動作する こ と ので き る コ ン ビ ユ ー タ ー シ ス テム 1 0 1 の部分的ブロ ッ ク 図であ る 。 な お、 当業者な ら認識で き る よ う に、 コ ン ピ ュ ー タ ー シス テム 1 0 1 は図 1 に示 した も の以外の構成部材を含む。
コ ン ビユ ー タ ー システム 1 0 1 はノく ス 1 2 6 に接続さ れる処理装置 1 0 2 を有す る。 処理装置 1 0 2 は R I S C (Reduced Instruction Set Computer) 、縮小命令セ ッ ト コ ン ビユ ー タ ー) プロセ ッ サ一であ る こ と が好ま し い が、 その代わ り に別の タ イ プの コ ン ピ ュー タ ー ァー キ テ ク チ ャ 一を持つプロ セ ッ サ一であ っ て も よ い。 R I S C コ ン ピ ュ ー タ ープロ セ ッ サ一 については参照のため引用 する以下の文献に記載さ れてい る。 すなわち、 G. Kane and J . Hemrich, MIPS RISC Architecture (Prentice Hall , Englewood Cliffs , New Jersey, U.S.A. , 1992 ) ; Mike Johnson , Superscalar Microprocessor Design (Prentice Hall , Englewood Cliffs, New Jersey, U.S. A . , 1991) ; 及び Stephen B . Furber , VLSI RISC Archit ecture and Organization (Marcel Dekker , Inc. , New York , New York, U.S.A. , 1989 )に言己載さ れてい る。
処理装置 1 0 2 は、 整数操作を実行する ための整数機 能単位 ( I U : 明快には図 1 に図示さ れていな い) 、 及 び浮動小数点操作を実行する ための浮動小数点機能単位 ( F P U : 明快には図 1 に図示 されていない) 等の複数 の機能単位 ( F U : functional unit) 1 0 4 を含む。
処理装置 1 0 2 は、 デー タ キ ャ ッ シ ュ 1 0 8 のよ う な 第 1 レ べ ノレの キ ヤ ッ シ ュ と 、 グロ ー バ ノレキ ヤ ッ シ ュ 1 1 2 の よ う な第 2 レベルのキ ャ ッ シ ュ か ら 成る ス プ リ ッ ト レベルのキ ャ ッ シ ュ配列を含む。 一般的に、 デー タ キ ヤ ッ シ ュ 1 0 8 は グ ロ ー ノく ノレキ ャ ッ シ ュ 1 1 2 よ り 小 さ い (デー タ キ ャ ッ シ ュ 1 0 8 の好ま し い大 き さ は 1 6 キ ロ ノ ィ ト であ り 、 グ ロ 一 ノく ルキ ヤ ッ シ ュ 1 1 2 の好ま し い 大 き さ は 1 6 メ ガノくイ ト で あ る ) 。 デー タ キ ャ ッ シ ュ 1 0 8 に は グ ロ ー バノレキ ヤ ッ シ ュ 1 1 2 に記憶 さ れる デー 夕 のサ ブセ ッ ト が入 っ てい る 。 通常デー タ キ ャ ッ シ ュ 1 0 8 は グ ロ ー バルキ ヤ ッ シ ュ 1 1 2 よ り 操作が高速であ る
デー タ キ ャ ッ シ ュ 1 0 8 は処理装置 1 0 2 において I U と 同 じ コ ン ビ ユ ー タ ー チ ッ プ上に形成 さ れ る こ と が好 ま し い (従 っ て、 デー タ キ ャ ッ シ ュ 1 0 8 は 「オ ン チ ッ プキ ヤ ッ シ ュ 」 と も 呼ばれ る ) 。 グロ ー バルキ ヤ ッ シ ュ 1 1 2 は処理装置 1 0 2 に おいて機能単位 1 0 4 の外部 に あ る こ と が好ま し い (従 っ て、 グ ロ 一ノ ノレキ ャ ッ シ ュ 1 1 2 は 「オ フ チ ッ プキ ャ ッ シ ュ」 と も 呼ばれる ) 。 整数デー タ はデー タ キ ヤ ッ シ ュ 1 0 8 の中 に あ る 。 浮 動小数点デー タ は グ ロ ーバルキ ャ ッ シ ュ 1 1 2 の中 に あ る 。 更に グ ロ ーバルキ ャ ッ シ ュ 1 1 2 は整数デー タ 用の 第 2 レベルの記憶単位で も あ る 。 整数記憶操作は整数デ 一 夕 がデー タ キ ヤ ッ シ ュ 1 0 8 と グロ ーバルキ ヤ ッ シ ュ 1 1 2 の両方 に記憶 さ れ る よ う にす る 。 浮動小数点記憶 操作はデー タ キ ャ ッ シ ュ 1 0 8 を迂回 して、 浮動小数点 デー タ がグ ロ ー バノレキ ャ ッ シ ュ 1 1 2 に記憶 さ れる よ う にする 。
好ま し く は、 デー タ キ ャ ッ シ ュ 1 0 8 は非 ワ ー ド書き 込みを支持する。 デー タ キ ヤ ッ シ ュ 1 0 8 は異な る非ヮ - ド書き込み長の書 き込みを支持 して も よ いが、 好ま し く はデー タキ ャ ッ シ ュ 1 0 8 はバイ ト 書き込みを支持す る 。 つ ま り 、 デー タ は 1 、°ケ ッ 卜 でデー タ キ ヤ ッ シ ュ 1 0 8 に書き込むこ と がで き る 。 換言すれば、 デー タ キ ャ ッ シ ュ 1 0 8 は好ま し く はバイ 卜 書 き込み可能で あ る 。 グロ ー バノレキ ャ ッ シ ュ 1 1 2 は 卜 書き込みを 支持 し ない。 その代わ り に、 グ ロ ーバルキ ャ ッ シ ュ 1 1 2 は ワ ー ド書き込みを支持 し、 そ の場合ワ ー ドは 4 バイ ト であ る こ と が好ま し い。 換言すれば、 グロ 一バノレキ ャ シ ュ 1 1 2 は ヮ ー ド書き込み可能であ る。
バイ ト書き 込みではな く 、 ワ ー ド書き込みを支持す έ こ と に よ り 、 よ り 少な い R A Μ ( ラ ン ダム ア ク セス メ -モ リ ー) を使用 してグ ロ ー バルキ ャ ッ シ ュ 1 1 2 を実行す る こ と が可能であ り 、 それによ り 処理装置 1 0 2 の費用 を削減する。 ワ ー ド書き込みを支え る よ り バイ ト書 き込 みを支え る場合に、 パ リ テ ィ 一 の度合いが大 き く な る の で、 事実その通 り であ る。 例えば、 ワ ー ド力 3 2 ビ ッ ト であ り 、 グロ 一 ノレキ ャ ッ シ ュ 1 1 2 が 4 ビ ッ 卜 の書き 込み幅を持つ R A Mを用いて実行さ れる場合、 バイ ト 書 き込みが支持 される時に各 2 デー タ R A M毎に 1 パ リ テ ィ 一 の R A Mが必要 と な る 。 こ れに対 して、 ワ ー ド書き 込みが支持さ れる時は、 各 8 デー タ R A M毎に 1 パ リ テ ィ 一の R A Mが必要 と な る 。
上述 し たよ う に、 整数記憶操作によ り 整数デー タ がデ 一 夕 キ ャ ッ シ ュ 1 0 8 と グロ ー バノレキ ャ ッ シ ュ 1 1 2 の 両方に記憶さ れる よ う にな る。 更に上述のよ う に、 デー タ キ ャ ッ シ ュ 1 0 8 はバイ ト 書 き込みを支持 し、 グロ一 バルキ ヤ ッ シ ュ 1 1 2 は ヮ 一 ド書き込みを支持する 。
図 2 は グロ ルキ ャ ッ シ ュ 1 1 2 に対 して 1 ト の整数記憶操作が実行さ れる様子を図示 してい る。 図 2 においてデー タ キ ヤ ッ シ ュ 1 0 8 は複数の列か ら成る も の と して概念的に描かれてお り 、 各列が整列 し た 4 バ 卜 のデー タ ワ ー ドを含んでい る 。
1 バイ ト の整数記憶操作の操作中に、 1 バイ ト ( こ れ は整数記憶操作の 「書き込みデ タ」 を表す) がデー タ キ ャ ッ シ ュ 1 0 8 の 1 つの列に書き込ま れる。 更に、 こ の列の他の 3 バイ ト カ デー タ キ ヤ ッ シ ュ 1 0 8 か ら読み 込ま れ、 こ れ ら 3 バイ ト が整数記憶操作のバイ ト (つ ま り 、 書 き込みデー タ ) と適切に結合さ れて、 デー タ ヮ ー ドを形成する 。 こ の ヮ ー ドはそ の後グロ 一バルキヤ ッ シ ュ 1 1 2 に記憶される。
デー タ キ ヤ ッ シ ュ 1 0 8 及びグロ ーバルキ ヤ ッ シ ュ 1 1 2 へのデー タ記憶はパイ プラ イ ン化 される 。 デー タ キ ャ ッ シ ュ 1 0 8 及びグ.口 一 ノく ルキ ャ ッ シ ュ 1 1 2 に関連 する デー タ記憶パイ プラ イ ン (デー タ キ ヤ ッ シ ュパィ プ ラ イ ン は図 1 において 1 0 6 で示 され、 グロ ーバルキ ヤ ッ シ ュパイ ブラ イ ン は図 1 において 1 1 0 で示 さ れる ) は、 グロ ーバルキ ャ ッ シ ュ 1 1 2 に対する浮動小数点 ミ スが実現さ れる前に、 デー タ キ ヤ ッ シ ュ 1 0 8 に対する 整数記憶が実行される よ う にな っ てい る。 こ のよ う に、 デー タ キ ャ ッ シ ュ 1 0 8 に対す る記憶を実行 し た後、 ま たグロ ーバルキ ャ ッ シ ュ 1 1 2 に対する (浮動小数点 ミ スの実現を含む) 浮動小数点の記憶を完了す る前に、 整 数記憶命令を 「取り 消 し」 する こ と はで き な い。
ス プ リ ッ ト レベルのキ ャ ッ シ ュ配列は、 更に、 「ス プ リ ッ ト レベルキ ヤ ッ シ ュ」 と題 し た米国特許出願におい て論 じ ら れて い る 。
再び図 1 に お いて、 コ ン ピ ュ ー タ 一 シス テム 1 0 1 は、 処理装置 1 1 4 の よ う なバス 1 2 6 に接続さ れる付加的 な処理装置を含む。 こ れ ら のバス 1 2 6 に接続される付 加的な処理装置 (処理装置 1 1 4 ) は、 スプ リ ツ ト レ ベルの キ ヤ ッ シ ュ配列を持 っ て いて も よ い し 、 あ る い は 他の タ イ プの キ ヤ ッ シ ュ配列 (かか る キ ヤ ッ シ ュ配列は 整数デー タ と 浮動小数点デー タ の両方を記憶で き な けれ ばな ら ない) であ っ て も よ い。 説明の ために、 処理装置 1 0 2 を第 1 の処理装置 1 0 2 と呼び、 処理装置 1 1 4 を第 2 の処理装置 1 1 4 と 呼ぶこ と も あ る。
コ ン ビ ュ 一 タ ー シ ス テム 1 0 1 はマ ルチプ ロ セ ッ サ一 デー タ の同期性を維持する 。 つ ま り 、 バス 1 2 6 に接続 される処理装置間に分配さ れ、 記憶さ れる整数及び浮動 小数点のデー タ の同期性は コ ン ビ ユ ー タ ー シ ス テム 1 0 1 によ っ て維持される。 コ ン ピ ュー タ 一 シ ス テム 1 0 1 は こ のデー タ 同期性を維持する た め に キ ヤ ッ シ ュ同期性 メ カ ニズム (図示せず) を含む。
キ ヤ ッ シ ュ同期性のための シ ス テム及び方法は公知で あ り 、 上記において引用 し た Computer Architecture A Quantitative Approach ( コ ン ピ ュ ー タ ー ァ ー キテ ク チ ヤ ー、 定量的アプロ ー チ) 等の、 多 く の一般に利用で き る文献に記載 さ れてい る。 かか る公知のキ ヤ ッ シ ュ同期 性技術は コ ン ビ ユ ー タ ー シ ス テ ム 1 0 1 のキ ヤ ッ シ ュ同 期性メ 力二ズム の多 く の局面を実行す る ため に使用する こ と がで き る 。
本発明者は コ ン ビ ユ ー タ ー シ ス テム 1 0 1 の特別な構 造上及び操作上の特徴、 特に上述のスブ リ ッ ト レベルキ ャ ッ シ ュ配列に起因する、 コ ン ピュー タ 一 シス テム 1 0 1 におけ る キ ヤ ッ シ ュ同期性に関連す る 問題を特定 し き た。 更に発明者は こ れ ら のキ ャ ッ シ ュ同期性に関連-す る問題に対す る解決策を発展さ せて き た。 こ れ ら のキ ヤ ッ シ ュ同期性に関連する 問題は今ま で特定さ れた こ と は な く 、 従っ て今ま で に解決 さ れて も い な い。
本発明者に よ り 特定さ れたキ ヤ ッ シ ュ同期性に関連す る問題、 及び本発明者が発展さ せた こ れ ら の問題に対す る解決法につ いて以下に詳細に論 じ る。
2 . 0 デー タ ロ ス の問題
コ ン ピ ュ ー タ 一 シ ス テ ム 1 0 1 の特別な構造上及び操 作上の特徴の結果と して、 1 つのプロ セ ッ サ一 によ り キ ャ ッ シ ュ に記憶されたデー タ が他のプロセ ッ サーの操作 によ り 破壊さ れる可能性があ る 。 特に、 こ のデー タ ロ ス の問題は コ ン ピ ュ ー タ ー シ ス テ ム 1 0 1 の次の特徴によ る も のであ る。 すなわち、 ( 1 ) スプ リ ッ ト レベルのキ ャ ッ シ ュ配列、 ( 2 ) デー タ キ ャ ッ シ ュ 1 0 8 と グ ロ一 バルキ ャ ッ シ ュ 1 1 2 の書き込み度合いの違い (つ ま り、 デー タ キ ヤ ッ シ ュ 1 0 8 はバイ ト書き込みを支持する一 方、 グロ 一バルキ ャ ッ シ ュ 1 1 2 は ワ ー ド書き込みを支 持する ) 、 ( 3 ) コ ン ピ ュ ー タ 一 シ ス テム 1 0 1 の マル チプロ セ ッ サ一の同期性要件、 及び ( 4 ) デー タ キ ヤ ッ シ ュ 1 0 8 に対する整数記憶がグロ一バルキ ャ ッ シ ュ 1 1 2 に対する 浮動点 ミ スの実現の前に実行さ れる と い う 図 3 は こ のデー タ ロ ス の問題が発生する シナ リ オを描 いてお り 、 第 1 の処理装覃 1 0 2 にお け る グロ ー ノ ルキ ャ ッ シ ュ 1 1 2 の選択された内容と 、 バス 1 2 6 に接続 さ れる (図 1 に示さ れてい ない) 別の処理装置のキ ヤ ッ シ ユカ 4 つ の異な る時間 t 0 、 t 1 、 t 2 、 t 3 ( こ れ らの時間は必ず し も お互い に等間隔でな く て も よ い) で 示 さ れてい る 。 こ の別の処理装置のキ ャ ッ シ ュはバイ ト 書き込みを支持する も の と する。
時間 t 0 において、 第 1 の処理装置 1 0 2 にあ る グロ 一ノ ルキ ャ ッ シ ュ 1 1 2 は ノ《 イ ト値 A 、 B 、 C 、 D を持 つ整列 し た 4 バイ ト ヮ ー ド 3 0 2 を記憶する 。 こ の ヮ 一 ドの独占的コ ビ一 (つま り 、 コ ン ピュ ー タ 一 システム 1 0 1 におけ る 唯一有効な コ ピー) が第 1 の処理装置 1 0 2 の グ ロ ーバルキ ャ ッ シ ュ 1 1 2 に入 っ てい る と仮定す る。 従 っ て、 こ の ワ ー ド 3 0 2 は図 3 に示 し た他の処理 装置のキ ヤ ッ シ ュ においては利用で き ない。
時間 0 と t 1 の間の任意の時に、 第 1 の処理装置 1 0 2 の機能単位 1 0 4 が、 第 1 の処理装置 1 0 2 の デー タ キ ャ ッ シ ュ 1 0 8 及びグ ロ ー バルキ ャ ッ シ ュ 1 1 2 に 記憶さ れたデー タ ワ ー ド 3 0 2 に対 して、 バイ ト " Y " を書き 込むよ う に整数記憶命令を発す る。 こ の整数記憶 命令の処理は第 1 のプロセ ッ サ一 1 0 2 のデー タ キ ヤ ッ シ ュ 1 0 8 力、 らバイ ト A、 C、 D を読み込ま せ、 整数記 憶命令に関連 してバイ ト " Y " と適切に結合 さ せる。
更に時間 t 0 と t 1 の間に、 他の処理装置内の機能単 位がバイ ト " X " をデー タ ワ ー ド 3 0 2 に書き込むよ う 記憶'命令を発する。 しか し な力 ら、. デ一 ダワ ー ド 3 0 2 は他の処理装置のキ ヤ ッ シ ュ において有効ではな く 、 独 占 さ れてい な いので、 キ ヤ ッ シ ュ ミ ス メ ッ セ ー ジが他の 処理装置によ り 発せ られる 。 すなわち、 コ ン ピ ュー タ 一 シス テ ム 1 0 1 においては、 デー タ が独占的であ る場合 にのみキ ヤ ッ シ ュ の デー タ に書 き 込みがで き る 。
キ ヤ ッ シ ュ ミ ス メ ッ セ ー ジの結果と して、 デ一 タ ワ ー ド 3 0 2 の独占的コ ピーが第 1 の処理装置 1 0 2 か ら他 の処理装置に伝え られる。 それで、 他の処理装置にお け る記憶命令が完了 し、 バイ ト " X " がデー タ ワ ー ド 3 0 2 のノ ィ 卜 の 1 つ に記憶さ れる 。 こ れ ら の動作は、 図 3 に示すよ う に 、 時間 t 1 ま で に完了する 。 時間 t 1 と t 2 の間の任意の時に、 結合さ れたバイ ト A、 Y、 C、 D が第 1 の処理装置 1 0 2 のデー タキ ヤ ッ シ ュ 1 0 8 に書き込ま れる用意が整う 。 しか し な力 ら、 デー タ ヮ ー ド 3 0 2 は第 1 の処理装置 1 0 2 のデ一 タ キ ャ ッ シ ュ 1 0 8 において有効ではな く 、 独占 さ れていな いので、 キ ヤ ッ シ ュ ミ ス メ ッ セ ー ジが第 1 の処理装置 1 0 2 に よ り 発せ られる。 キ ャ ッ シ ュ ミ ス メ ッ セ ー ジ の結 果、 デー タ ワ ー ド 3 0 2 の独占的 コ ピーが他の処理装置 か ら第 1 の処理装置 1 0 2 へと伝え ら れる。 図 3 に示す よ う に、 こ れ ら の動作は時間 t 2 ま で に完了する。
時間 2 と t 3 の間の任意の時に、 第 1 の処理装置 1 0 2 に おいてペ ンデ ィ ン グに な っ てい る整数記憶命令が 完了 し、 ノ イ ト A、 Y、 C、 D がデー タ ワ ー ド 3 0 2 に 記憶さ れる。 他の処理装置によ り デー タ ヮ ー ド 3 0 2 に 書き込ま れたバイ ト " X " は、 第 1 の処理装置 1 0 2 の 操作に よ り 破壊さ れてい る こ と に注意すべき であ る 。 こ の よ う に、 コ ン ピ ュ ー タ ー シス テム 1 0 1 の特別な構造 上及び操作上の特徴の結果、 1 つのプロ セ ッ サ一 によ り キ ヤ ッ シ ュ に記憶さ れたデー タ は別のプロセ ッ サーの操 作によ り 破壊 される 。
コ ン ピ ュ ー タ 一 シス テム 1 0 1 の詳細かつ包括的な分 折の結果、 本発明者によ り デー タ ロ ス の問題が特定され、 理解さ れた。 デー タ ロ スの問題は特定するのが難 し く 、 ま してや組み合わ さ れて問題を作り 出す (上述の) 要素 の多重性及び複雑さ を考えれば、 理解 し解決する の はな お さ ら 困難であ る。
3 . 0 本発明によ る デー タ ロ ス問題の解決
デー タ ロ ス の問題を解決する ために本発明者が開発 し た解決法につ いて以下に論 じ る 。
デー タ ロ ス の問題は、 デー タ ロ ス の問題を引 き起こ す か も しれないキ ヤ ッ シ ュ メ モ リ ー ア ク セス命令が最小単 位的に ( a t o m i c a 1 l y ) 実行 される こ と を確実 にする こ と に よ っ て解決さ れる 。 特に、 デー タ ロ ス問題 を引 き起こ すか も しれな いキ ヤ ッ シ ュ メ モ リ ー ア ク セス 命令が、 デー タ キ ャ ッ シ ュ 1 0 8 内の ( 3 バイ 卜 の) 読 み込みの開始か ら グ ロ ーバルキ ャ ッ シ ュ 1 1 2 内の ( 4 バイ ト の) 書 き込み完了に至る ま で最小単位的に実行さ れる。 換言すれば、 デー タ ロ ス の問題を引 き 起 こ す力、 も しれな いキ ヤ ッ シ ュ メ モ リ ー ア ク セス命令力 グロ 一バル キ ャ ッ シ ュ 1 1 2 のノ、' イ ブラ イ ン 1 1 0 に入 る点力、 ら 、 命令力 グロ ー バルキ ヤ ッ シ ュ 1 1 2 のパイ プラ イ ンを出 る点ま で、 最小単位的に実行さ れる。 かかる命令の最小 単位的実行中は、 介入は許 さ れない。
当業者に公知の よ う に、 介入はプロ セ ッ サ一 Xのため に実行 され、 プロセ ッ サ一 Yのキ ヤ ッ シ ユカ、 ら デー タを 読み込むこ と を含み、 かかる デー タ はプロセ ッ サー の キ ヤ ッ シ ュを更新す る ために用い られる。 介入は コ ン ビ ユ ー タ ー シス テム にお け る キ ヤ ッ シ ュ間の同期性を維持 する ために必要であ る。
例えば、 図 3 に示 し たシナ リ オを考えてみ ょ う 。 上述 ― i s ―
したよ う に、 時間 0 において、 第 1 の処理装置 1 0 2 内の グロ ーバルキ ャ ッ シ ュ 1 1 2 はノ《イ ト値 A、 B、 C、 D を持つ整列 し た 4 バイ ト ヮ 一 ド 3 0 2 の独占的コ ピー ( e c 1 u s i v e c o p y ) を言己憶する。 1 の 処理装置 1 0 2 において機能単位 1 0 4 の 1 つ によ り 時 間 t 0 と t 1 の間に発せ ら れる整数記憶命令は、 デー タ キ ャ ッ シ ュ 1 0 8 か らノ イ ト A、 C、 D の メ モ リ ー読み 込みを開始さ せる。
本発明によれば、 こ の時点で、 整数記憶命令は グロ一 バルキ ャ ッ シ ュ i 1 2 に対する介入が阻止さ れる最小単 位的実行部分に入っ てい る 。 従っ て、 他の処理装置は、 第 1 の処理装置 ' 1 0 2 においてペ ンディ ン グにな っ てい る整数記憶命令が完了する ま で (つま り 、 バイ A、 Y、 C、 D がグロ ーバルキ ャ ッ シ ュ 1 1 2 に記憶される まで) 、 デー タ ワ ー ド 3 0 2 を修正す る機会を持たない。
こ の第 1 の処理装置 1 0 2 に おいてペ ンデ ィ ン グに な つ てい る整数記憶命令が完了 し た後、 デー タ ワ ー ド 3 0 2 の独占的コ ピーが他の処理装置に伝え られる。 つ ま り、 ペ ンデ ィ ングにな っ てい る記憶命令が完了 し、 グロ一ノ ルキ ャ ッ シ ュ 1 1 2 のパイ プラ イ ンを出た後、 グロ ーバ ノレキ ヤ ッ シ ュ 1 1 2 に対する介入が許 さ れる。 その後、 デー タ ワ ー ド 3 0 2 がバイ ト A、 Y、 X、 D を含むよ う に、 バイ ト " X " がデー タ ワ ー ド 3 0 2 に書き込ま れる。
従っ て、 本発明の操作に よ り 、 1 つのプロセ ッ サー (つま り 、 図 3 の例において他のプロ セ ッ サー) に よ り キ ヤ ッ シ ュ に記憶さ れたデー タ は、 別のプロ セ ッ サー (つ ま り 、 図 3 の例において第 1 の処理装置 1 0 2 ) の 操作に よ っ て破壊さ れない。
上述 し たよ う に、 本発明はデー タ ロ スの問題を引 き起 こ すか も しれな いキ ヤ ッ シ ュ メ モ リ 一 ア ク セス命令が最 小単位的に実行さ れる こ と を確実にする こ と によ っ て、 デー タ ロ スの問題を解決する。 こ れ ら の命令は、 上述 し たよ う に最小単位的に実行される よ う に強制 さ れる ので、 フ ォ ー ス ドア ト ミ ッ ク ( F A : forced atomic) 命令と 呼ばれ る。
デー タ ロ ス の問題の解決策の一部 と して、 発明者は F A命令を整数記憶命令 (つ ま り 、 整列 した ワ ー ドブロ ッ ク 以外の も のを記憶するデー タ キ ヤ ッ シ ュ 1 0 8 と グロ 一ノく ルキ ヤ ッ シ ュ 1 1 2 の両方にデー タ を記憶する こ と を求め る キ ヤ ッ シ ュ メ モ リ 一 ア ク セ ス命令) を含む も の と して特定 し た。 好ま し い態様では、 グロ ーバルキ ヤ ッ シ ュ 1 1 2 のデー タ記憶幅は 4 バイ ト であ り 、 F A命令 は整列 し た 4 バイ ト のブ口 ッ ク 以外の ものを記憶す る か、 あ る い は整列 し た 4 バイ 卜 の倍数以外の ものを記憶する 整数記憶命令であ る 。 かか る命令はデー タ キ ャ ッ シ ュ 1 0 8 におけ る記憶割当てを要求 し、 デー タ キ ャ ッ シ ュ 1 0 8 力 バイ ト を検索する ために ア ク セス し、 4 バイ 卜 の 記憶を グロ 一バルキ ャ ッ シ ュ 1 1 2 に書き込むこ と を要 求する 。
デー タ ロ ス の問題の こ の解決法につ いて以下によ り 詳 細 3冊 し る
4 . 0 デ ッ ド ロ ッ ク の問題
上述 したよ う に、 デー タ ロ ス の問題は F A命令を特定 し、 F A命令を最小単位的に実行する こ と に よ り.解決さ れる。 しか し なが ら 、 下記に述べる よ う に、 F A命令の 最小単位的実行は新 し い問題を生み出 し、 それは コ ン ビ ユ ー タ ー シス テム 1 0 1 にお け る処理装置のデ ッ ド ロ ッ ク の可能性を含んでい る。
デ ッ ドロ ッ ク の問題には 2 つの局面があ り 、 それ ら は ポテ ン シ ャ ノレ ミ ス命令に よ る デ ッ ドロ ッ ク と 、 フ ォ ース ドア ト ミ ッ ク 命令を実行す る時にデー タ の独占性に対す る要求によ る デ ッ ド ロ ッ ク であ る。 デ ッ ドロ ッ ク の問題 の.こ れ ら の局面につ いて、 以下に説明する。
4 . 1 ポテ ン シ ャ ノレ ミ ス命令によ る デ ッ ド ロ ッ ク
デ ッ ドロ ッ ク を生 じ さ せる F A命令の実行を含む シナ リ オ について、 図 1 に関連 して説明す る。
時間 t 0 に お い て 、 浮動書き 込み命令が第 1 の処理装 置 1 0 2 において開始さ れる と仮定す る。 同様に、 浮動 書き込み命令が第 2 の処理装置 1 1 4 に お い て も 開始さ れる と仮定する。 上述 し た よ う に、 浮動書き込み命令は デー タ キ ャ ッ シ ュ 1 0 8 、 1 2 0 を迂回 して、 グロ ー ノ ルキ ャ ッ シ ュ 1 1 2 、 1 2 4 に直接進む。
時間 t 1 において、 ペ ンディ ン グにな っ てい る浮動書 き込み命令が第 1 の処理装置 1. 0 2 において完了 してお らず、 F A整数書き 込み命令が第 1 の処理装置 1 0 2 に おいて開始さ れてい る と仮定す る。 第 1 の処理装置 1 0 2 にお け る F A整数書き込み命令の処理中に、 デー タ キ ャ ッ シ ュ 1 0 8 の読み込み操作が開始 されて、 適切な 3 バ イ ト を検索 し、 グロ ーバルキ ャ ッ シ ュ 1 1 2 に対 して 来るべき 4 バイ ト の書き込みを行う 。 こ の よ う に、 こ れ ら 3 バイ ト を含む (更に、 F A整数書 き込み命令の書き 込みデー タ を含む) 整列 し た 4 バイ ト ワ ー ドに関 して、 グロ ーバルキ ャ ッ シ ュ 1 1 2 におけ る介入が阻止 さ れる。
更に、 時間 t 1 において、 第 2 の処理装置 1 1 4 にお いてペ ンディ ン グにな っ てい る浮動書 き込み命令が完了 してお らず、 F A整数書き込み命令が第 2 の処理装置 1 1 4 において開 ½さ れてい る と仮定する。 第 2 の処理装 置 1 1 4 にお け る F A整数書き込み命令の処理中に、 デ 一 夕 キ ャ ッ シ ュ 1 2 0 の読み込み操作が開始 さ れて、 適 切な 3 バイ ト を検索 し、 グロ 一バルキ ヤ ッ シ ュ 1 2 4 に 対 して来るべ き 4 バイ 卜 の書き 込みを行 う 。 こ の よ う に、 こ れ ら 3 バイ ト を含む (更に、 F A整数書き 込み命令の 書き込みデー タ を含む) 整列 し た 4 バイ ト ワ ー ドに関 し て、 グロ ーバルキ ヤ ッ シ ュ 1 2 4 にお け る介入が阻止さ れる。
時間 t 2 に おいて、 第 1 の処理装置 1 0 2 においてべ ンディ ン グにな っ てい る浮動書き込み命令の ために、 キ ャ ッ シ ュ ミ スが実現 さ れる と仮定する 。 つま り 、 浮動書 き込み命令に よ り 修正さ れるべ きデー タ は第 1 の処理装 置 1 0 2 の グ ロ一ノ ルキ ヤ ッ シ ュ 1 1 2 において有効で はな く 、 独占的ではない。 更に、 こ のデー タ は第 2 の処 理装置 1 1 4 の グ ロ一ノ ルキ ヤ ッ シ ュ 1 2 4 において有 効であ り 、 独占 さ れてい る と仮定する 。 こ の よ う に、 第 1 の処理装置 1 0 2 においてペ ンディ ン グにな っ てい る 浮動書 き込み命令を完了す る た めに、 第 2 の処理装置 1 1 4 の グロ 一ノく ルキ ヤ ッ シ ュ 1 2 4 におけ る介入が求め られる 。 しか し なが ら、 こ の介入は第 2 の処理装置 1 1 4 にお けるペ ンディ ン グ中の F A整数書き込み命令の最 小単位的実行のために阻止 さ れてい る 。
更に、 時間 2 において、 第 2 の処理装置 1 1 4 にお いてペ ンディ ン グにな っ てい る 浮動書 き込み命令の ため に、 キ ャ ッ シ ュ ミ ス が実現さ れる と仮定する 。 つま り 、 浮動書 き込み命令に よ り 修正さ れるべ き デー タ は第 2 の 処理装置 1 1 4 の グロ一ノく ルキ ヤ ッ シ ュ 1 2 4 にお いて 有効ではな く 、 独占的ではな い。 更に、 こ のデー タ は第 1 の処理装置 1 0 2 の グ ロ ー バルキ ヤ ッ シ ュ 1 1 2 にお いて有効で'あ り 、 独占 さ れてい る と仮定する 。 こ の よ う に、 第 2 の処理装置 1 1 4 においてペ ンディ ン グにな つ てい る 浮動書き込み命令を完了する ため に、 第 1 の処理 装置 1 0 2 の グロ ー ノくルヰ ャ ッ シ ュ 1 1 2 におけ る介入 が求め られる 。 しか し なが ら、 こ の介入は第 1 の処理装 置 1 0 2 にお け るペ ンディ ン グ中の F A整数書き込み命 令の最小単位的実行のために阻止されてい る。
こ の よ う に、 第 1 の処理装置 1 0 2 は封鎖 さ れ、 第 2 の処理装置 1 1 4 か らのデー タ に頼 り 、 第 2 の処理装置 1 1 4 は封鎖され、 第 1 の処理装置 1 0 2 か らのデー タ に頼る 。 しか しなが ら、 第 1 の処理装置 1 0 2 か ら のデ 一 夕 は第 1 の処理装置 1 0 2 の封鎖が解け る ま では利用 で き な い。 同様に、 第 2 の処理装置 1 1 4 か ら のデー タ は第 2 の処理装置 1 1 4 の封鎖が解け る ま では利用で き ない。 従っ て、 第 1 の処理装置 1 0 2 と第 2 の処理装置 1 1 4 と の間にはデ ッ ドロ ッ ク 状態が存在す る。
4 . 2 本発明によ るデ ッ ドロ ッ ク の問題 (ポテ ン シ ャ ル ミ ス命令) の解決法
こ のデ ッ ド ロ ッ ク の問題を解決する ために発明者達が 開発 し た解決法について説明す る。
発明者によ り 特定された よ う に、 こ のデ ッ ドロ ッ ク の 問題に関 して関係のあ るキ ヤ ッ シ ュ メ モ リ ー ア ク セス命 令には 2 つ の カ テゴ リ ーがあ る 。 第 1 の命令カ テゴ リ 一' はデー タ ロ ス の問題を じ る か も しれないキ ヤ ッ シ ュ メ モ リ ー ア ク セ ス命令を含む。 こ れ ら の命令は フ ォ ー ス ド ァ ト ミ ッ ク ( F A ) 命令と 呼ばれ、 上記において限定 し 説明 し た。
第 2 の命令カ テゴ リ 一 はデー タ キ ャ ッ シ ュ 1 0 8 、 1 2 0 にお け る 記憶割当てを要求せず (つ ま り 、 デ一 タ キ ャ ッ シ ュ 1 0 8 、 1 2 0 にデー タ を記憶せず) 、 直接グ 口 一ノくノレキ ャ ッ シ ュ 1 1 2 、 1 2 4 に ア ク セ スする キ ヤ ッ シ ュ メ モ リ ーア ク セス命令を含む。 こ れ ら はデ一 タ キ ャ ッ シ ュ 1 0 8 、 1 2 0 に記憶割当てを求め る F A命令 と は異な る。 - 1 — グロ ノレキ ャ ッ シ ュ 1 1 2 1 2 4 のパイ ブラ イ ン において F A命令がグロ ーバルキヤ ッ シ ュ ミ スを発生さ せる こ と はで き な い ( し力、 し、 以下のセ ク シ ョ ン におげ る こ の話題に関する論議を参照の こ と ) 。 F A命令はデ — タ キ ャ ッ シ ュ 1 0 8 1 2 0 において記憶割当てを求 め る ので、 ま たデー タ キ ャ ッ シ ュ 1 0 8 1 2 0 が各々 グロ 一 ノレキ ャ ッ シ ュ 1 1 2 1 2 4 において記憶さ れ るデー タ の適切なサブセ ッ ト を記憶す る ので、 事実その 通 り であ る。
対照的に、 第 2 の命令カ テゴ リ 一の命令はデー タ キ ヤ ッ シ ュ 1 0 8 1 2 0 に記憶割当てを求めな いので、 グ ロ ーバルキ ャ ッ シ ュ ミ スを発生 させる こ とがで き る 。 従 つ て、 第 2 の命令カ テ ゴ リ ー の命令は ポテ ン シ ャ ノレ ミ ス ( P M ) 命令 と 呼ばれる o
実際には、 第 1 の命令カ テゴ リ ー も し く は第 2 の命令 カ テゴ リ 一 に属 さ な いキ ヤ ッ シ ュ メ モ リ 一 ア ク セス命令 を含む第 3 の命令カ テ ゴ リ 一があ る。 第 3 の命令カ テ ゴ リ ーの命令は第 1 の命令カ テゴ リ ー の命令 も し く は第 2 の命令カ テゴ リ 一の命令と 同グルー プにする こ とがで き る。 かかる グル一 ビ ン グは例えば、 性能を高め る ために 行われる。 第 3 の命令カ テ ゴ リ ー の命令ほデ ッ ド ロ ッ ク の問題の解決には関連 し な いので、 こ れ以上論 じ る こ と は しな い。
—旦 F A及び P M命令カ テゴ リ ーを特定する と、 発明 者はデ ッ ド ロ ッ ク の問題を完全に分析 し、 デ ッ ドロ ッ ク の問題を解決する た めの手順を発明す る こ と がで き た。 特に、 発明者はデ ッ ドロ ッ ク の問題が、 ポテ ン シ ヤ ノレ ミ ス命令の後フ ォ ー ス ドア ト ミ ッ ク 命令が続 く 場合にの み 潜在的に発生する と 断定 し た。 よ り 詳細には、 処理装置 1 0 2 に関 して説明する と 、 発明者はデ ッ ド ロ ッ ク の問 題が、 P M命令が既にグロ一ノく ルキ ヤ ッ シ ュ 1 1 2 の ノ ィ プラ イ ン に あ る場合に、 F A命令力 グロ ー バルキ ヤ ッ シ ュ 1 1 2 のパイ ブラ イ ン に入る こ と が許さ れた場合に のみ潜在的に発生す る と断定 し た。
上述の シナ リ オ において、 例えば、 時間 0 において 開始さ れた浮動書き 込み命令が P M命令を表す。 時間 1 で開始された整数書き込み命令が F A命令を表す。
こ の よ う に、 本発明によれば、 デ ッ ドロ ッ ク の問題は、 P M命令がグロ一ノく ルキ ヤ ッ シ ュ 1 1 2 のパィ プラ イ ン に既に存在 し ない場合にのみ、 F A命令がグロ一バルキ ャ ッ シ ュ 1 1 2 のパイ プラ イ ン に入る こ と を許す こ と に よ っ て、 避—け る こ と がで き る。 P M命令がグ ロ一バルキ ャ ッ シ ュ 1 1 2 のパイ ブラ イ ン にま だ存在す る場合は、 F A命令を遅 ら せる 。
デ ッ ドロ ッ ク の問題 (つ ま り 、 部分的にポ テ ン シ ャ ル ミ ス命令によ る) に対する こ の解決法についてよ り 詳細 に説明する。
4 . 3 フ ォ ー ス ドア ト ミ ッ ク 命令を実行す る時に、 デ 一 夕 の独占性に対す る要求に起因する デ ッ ド ロ ッ ク
上記ではポ テ ン シ ヤ ノレ ミ ス命令の実行によ るデ ッ ドロ ッ ク 問題につ いて説明 し たが、 以下には フ ォ ース ドア ト ミ ッ ク 命令を実行す る際にデー タ の独占性を要求す る こ と に起因する デ ッ ド ロ ッ ク の問題につ いて説明する 。 こ のデ ッ ド ロ ッ ク の問題は ポ テ ン シ ヤ ノレ ミ ス デ ッ ド ロ ッ ク の問題に類似 してい る。
上述 したよ う に、 処理装置 1 0 2 に関 して説明する と、 グロ ーバノレキ ャ ッ シ ュ 1 1 2 がデー タ の独占的コ ピーを 記憶 し てい る場合にのみ (つ ま り 、 グロ ーバルキ ヤ ッ シ ュ 1 1 2 がデー タ の有効な コ ピーを記憶 してい る場合に のみ) 、 グ ロ ー バルキ ャ ッ シ ュ 1 1 2 にデー タ を書 き込 むこ と がで き る。 浮動小数点書き込みがグ口 一バルキ ヤ ッ シ ュ 1 1 2 に対 して行われ、 問題のデー タ の独占的 コ ピ一がグロ ー ノ ルキ ヤ ッ シ ュ 1 1 2 に記憶さ れてい な い 場合、 キ ャ ッ シ ュ ミ ス · フ ィ ル操作 (つ ま り 介入) を実 行 し な ければな ら な い。
コ ン ピ ュ ー タ ー シ ス テム 1 0 1 にお いて、 第 1 の処理 装置 1 0 2 において行われる 1 バイ 卜 の F A整数書き込 み操作は、 デー タ キ ャ ッ シ ュ 1 0 8 と グロ ーバルキ ヤ ッ シ ュ 1 1 2 に対する書き込みを行わせる。 本発明に よれ ば、 デー タ キ ャ ッ シ ュ 1 0 8 に対する書き込みに関連 し て、 問題のデー タ バイ ト (つ ま り 、 整数書き込み操作に よ り 修正さ れる デー タ キ ヤ ッ シ ュ 1 0 8 にお け るバイ ト) は、 デー タ キ ャ ッ シ ュ 1 0 8 において独占 さ れる キ ヤ ッ シ ュ ブロ ッ ク にあ る こ と 力 求め られる 。 そ う でな ければ、 整数書 き込み操作の処理を進行 さ せる こ とが許されな い。 キ ヤ ッ シ ュブ口 ッ ク 幅は本発明の範囲及び精神か ら逸脱 する こ と な く 、 他の値であ っ て も よ いが、 キ ャ ッ シ ュ ブ ロ ッ ク 幅は 1 2 8 ノく ィ ト であ る こ と が好ま し い。
発明者は、 (問題のデー タ バイ ト が含ま れる) 整列 し た 4 ノく ィ ト ワ ー ドの他の 3 バイ ト と共に、 問題のデー タ ノく ィ 卜 がデー タ キ ヤ ッ シ ュ 1 0 8 において独占 される キ ャ ッ シ ュ ブ口 ッ ク の中にあ る場合にのみ、 整数書き 込み 操作力 グロ 一ノく ルキ ャ ッ シ ュ 1 1 2 の ノ、。イ ブラ イ ン に入 る こ と が許さ れるべ き であ る と 断定 し た。 そ う でな けれ ばデ ッ ド ロ ッ ク が発生する か も しれな い。
こ れ ら の 4 バイ 卜 がデー タ キ ャ ッ シ ュ 1 0 8 において 独占 さ れな い場合に も、. 整数書 き込み操作がグロ ーバル キ ヤ ッ シ ュ 1 1 2 のパイ ブラ イ ン に入る こ と が許さ れる シナ リ オを考えてみょ う .0 こ の シナ リ オでは、 こ れ ら 4 ノく ィ ト が更に グロ ーバノレキ ャ ッ シ ュ 1 1 2 において も独 占 さ れな い と仮定する。 整数読み込み操作がグロ 一バル キ ヤ ッ シ ュ 1 1 2 のパイ プラ イ ンの端に到達 し た時、 キ ャ ッ シ ュ ミ ス · フ ィ ノレ操作 (つ ま り 介入) が発生す る。
従っ て、 こ の シナ リ オでは、 F A命令はグロ ー ノ ノレキ ャ ッ シ ュ 1 1 2 において ミ スを発生さ せるので、 ポ テ ン シ ャ ル ミ ス命令の性質を含む。 そ の結果と して、 F A命 令は グロ ーバルキ ャ ッ シ ュ 1 1 2 に対する介入を阻止 し、 別の処理装置か ら の独占性に頼る こ と がで き る ので、 デ ッ ドロ ッ ク の可能性が存在する 。
4 . 4 本発明によ る デ ッ ド ロ ッ ク の問題 (デー タ 独占 性要件) に対する解決法
本発明によれば、 こ のデ ッ ド ロ ッ ク の問題はデー タ キ ャ ッ シ ュ 1 0 8 にお け る記憶に関 して独占的配置を求め る こ と によ り 解決さ れる。 特に、 問題の整列 し た 4 バイ ト ヮ ー ドが含ま れる キ ャ ッ シ ュ ブロ ッ ク が、 デー タ キ ヤ ッ シ ュ 1 0 8 において独占 さ れる場合にのみ、 F A整数 書き込み操作がデー タ キ ヤ ッ シ ュ 1 0 8 において実行さ れる。 そ う でな ければ、 キ ャ ッ シ ュ ミ ス · フ ィ ル操作が 発生す る。 こ のキ ャ ッ シ ュ ミ ス · フ ィ ル操作が発せ られ る時には、 F A整数書き込み命令は グ ロ ーバルキ ヤ ッ シ ュ 1 1 2 に対するノ、。イ ブラ イ ン の中に はない こ と 、 そ し て こ のキ ヤ ッ シ ュ ミ ス · フ ィ ル操作は最小単位的に行わ れない こ と に注目すべきであ る。 こ の よ う に して、 デ ヅ ドロ ッ ク の危険が回避さ れる。
デ ッ ド ロ ッ ク の問題 (つ ま り 独占性要件に起因する ) に対す る こ の解決法について以下に詳細に説明する 。 5 . 0 解決法及び解決法の実行のま と め
上述 し たよ う に、 コ ン ビ ュ 一 タ ー シ ス テム 1 0 1 の特 別な構造上及び操作上の特徴が、 多 く のキヤ ッ シ ュ同期 性に関連する 問題を引 き起 こ して き た。 発明者は こ れ ら の問題を特定 し、 こ れ ら の問題を除去する ための シ ステ ム及び方法を開発 し た。 本質的に、 本発明の シ ス テ ム及 び方法は、 以下の 3 つのルールを実行する こ と によ り 、 キ ャ ッ シ ュ メ モ リ ー ア ク セ ス命令の実行を制御する (説 明を簡潔にす る ため、 処理装置 1 0 2 に関 して こ れ ら の ルールを説明する) 。
( 1 ) (デー タ ワ ー ドを修正する ために動作する ) F A命令がグロ ー バノレ キ ャ ッ シ ュ 1 1 2 のパイ ブラ イ ン に あ る場合、 F A命令が完了 してグロ ーバルキ ャ ッ シ ュ 1 1 2 の ノ、 °ィ プラ イ ン を出 る ま では、 デー タ ヮ 一 ドに関す る (つ ま り 、 デー タ ワ ー ドを参照する ) グロ ーバルキ ヤ ッ シ ュ 1 1 2 に対す る介入を遅 ら せる。 あ る いは、 F A 命令がグロ ー ノ《ノレキ ャ ッ シ ュ 1 1 2 のパイ ブラ イ ン にあ る場合、 F A命令が完了 してグロ 一バルキ ヤ ッ シ.ュ 1 1 2 のパイ プラ イ ンを出 る ま では、 全グロ ーバルキ ヤ ッ シ ュ 1 1 2 に対する介入を遅 らせ る。
( 2 ) P M命令がグロ 一ノ ルキ ャ ッ シ ュ 1 1 2 のノ ィ プラ イ ン にあ る場合、 F A命令は グロ ーバルキ ヤ ッ シ ュ 1 1 2 のパイ プラ イ ン に入る こ とが許 さ れな い。 かかる F A命令は遅延さ れる (つ ま り 、 それ ら は阻止さ れ、 後 の時藺に再度開始さ れる ) 。
( 3 ) F A 命令に関連す る整列 し た ワ ー ドがデー タ キ ャ ッ シ ュ 1 0 8 に お い て独占 さ れな い場合、 F A命令は グロ ー バノレキ ャ ッ シ ュ 1 1 2 に対するノ イ ブラ イ ン に入 る こ と が許さ れず、 非最小単位的キ ャ ッ シ ュ ミ ス · フ ィ ルが発生する。
ル ー ル ( 1 ) はデー タ ロ ス の問題を解決する。 ノレ ー ル ( 2 ) はデ ッ ド ロ ッ ク の問題 (ポテ ン シ ャ ノレ ミ ス ) を解 決する。 ノレー ル ( 3 ) はデ ッ ド ロ ッ ク の問題 (デー タ独 占性の要件) を解決する。 本発明は更に次の 4 番目 のルールを含む。 すなわ ち、 グローバルキ ャ ッ シ ュ 1 1 2 において介入がペ ンディ ン グにな っ てい る場合、 F A命令は グロ ーバルキ ヤ ッ シ ュ 1 1 2 のパイ プラ イ ン に入る こ とが許 さ れな い。 その代 わ り に、 F A命令はペ ンデ ィ ン グにな っ てい る介入の全 てが完了する ま で遅延される。
こ の 4 番目 のルー ルは上述 した問題を解決する た めに 使用す る のではない。 む し ろ、 こ の 4 番目のルールは性 能を向上さ せ る こ と を 目的 と す る も のであ る 。 4 番目 の ルールは介入が F A命令に よ っ て永久に阻止さ れる こ と はな く 、 その代わ り に処理 さ れる機会が与え られる こ と を保証する。
ルー ノレ ( 1 ) 、 ( 2 ) 、 ( 4 ) はグロ ーバルキ ヤ ッ シ ュ 1 1 2 のパイ ブラ イ ン に入る各々 の命令に F A ビ ッ ト と P M ビ ッ ト を追加する こ と に よ り 実行する こ と が好ま し い。 命令がフ ォ ー ス ドア 卜 ミ ッ ク 命令であれば、 そ の F A ビ ッ ト を 1 に設定する こ と が好ま し く 、 そ う でな け れば 0 に設定する。 同様に、 命令がポ テ ン シ ャ ル ミ ス命 令であれば、 その P M ビ ッ ト を 1 に設定する こ と が好ま し く 、 そ う でな ければ 0 に設定する。
制御 システム 1 5 0 は命令がグロ一バルキ ャ ッ シ ュ 1 1 2 のパイ プラ イ ン に入る時にそれ ら を監視する こ とが 好ま し い (制御 シス テム 1 5 0 と処理装置 1 0 2 のエ レ メ ン ト 間の制御線は明瞭にする ために図示 していな い) 。 制御 シス テム 1 5 0 の操作につ いて図 4 に示 し たフ ロ ー チ ヤ一 ト を参照 して説明す る。
制御 シス テム 1 5 0 がグ 口 一 《ノレキ ヤ ッ シ ュ ィ ブラ イ ン に 1 に設定された F A ビ ッ ト を伴 う 命令を検出すれ ば (ス テ ッ プ 4 0 4 で示す) 、 制御 システム 1 5 0 は グ ロ ーバルキ ヤ ッ シ ュ 1 1 2 の中の適切なデー タ (つ ま り、 注目 の整列 し た 4 ビ ッ ト ワ ー ド) に対する介入を阻止す る (ス テ ッ プ 4 0 6 で示す) 。 こ れで第 1 のルールが実 行される。
同様に、 制御 シス テム 1 5 0 がグロ一バルキ ャ ッ シ ュ 1 1 2 に対 して介入がペ ンディ ン グにな っ てい る と 判断 すれば (ステ ッ プ 4 1 2 で示す) 、 制御 シス テム 1 5 0 は F A命令がグ b—ノく ルキ ヤ ッ シ ュ 1 1 2 のパイ プラ イ ン に入る こ と を防止する (ステ ッ プ 4 1 0 で示す) 。 制 御 シス テム 1 5 0 は介入の未決に関する知識を持っ た コ ン ピュ ー タ ー システム 1 0 1 の他の構成部材 と接触 して い る と 仮定す る。 こ れで第 4 の ルールが実行 さ れる 。
制御 システム 1 5 0 力《グ ロ ー バノレキ ヤ ッ シ ュパィ ブラ イ ン に 1 に設定された P M ビ ッ ト を伴 う 命令を検出すれ ば (ス テ ッ プ 4 0 8 で示す) 、 制御 システム 1 5 0 は F A命令がグロ ーバノレキヤ ッ シ ュパイ プラ イ ン に入る こ と を防止する (ステ ッ プ 4 1 0 で示す) 。 こ れで第 2 のル ールが実行さ れる。
ルー ノレ ( 3 ) はデー タ キ ャ ッ シ ュ 1 0 8 において各々 のキ ャ ッ シ ュ ブロ ッ ク (こ れは 1 2 8 バイ ト 幅であ る こ とが好ま し い) に W (書き 込み可能) ビ ッ ト を追加する こ と に よ っ て実行す る こ と が好ま し い。 キ ャ ッ シ ュ プ ロ ッ ク がデー タ キ ャ ッ シ ュ 1 0 8 に独占 さ れて いれば、 デ 一 夕 キ ャ ッ シ ュ 1 0 8 の中のキ ャ ッ シ ュ ブロ ッ ク と 関連 す る W ビ ッ ト が 1 に設定 さ れる こ と が好ま し い。 そ う で な ければ 0 に設定す る 。 制御 シ ス テム 1 5 0 の更な る動 作につ いて、 図 5 に示 し た フ ロ ー チ ャ ー ト を参照 し て説 明す る 。
制御 シス テ ム 1 5 0 はデー タ キ ャ ッ シ ュ 1 0 8 におい て処理 さ れる 整数記憶命令 (つ ま り 、 デー タ キ ャ ッ シ ュ 1 0 8 のパイ プラ イ ン にお いて処理 さ れる 整数記憶命令) を監視す る 。 F A 命令 と 関連す る整列 し た 4 バイ ト ヮ 一 ドが、 デー タ キ ャ ッ シ ュ 1 0 8 にお-いて独占 さ れる キ ヤ ッ シ ュ ブロ ッ ク に あ る 場合 (キ ャ ッ シ ュ ブロ ッ ク と 関連 する W ビ ッ ト に よ り 示 さ れ る よ う に ; こ の テ ス ト は ス テ ッ プ 5 0 4 で表す) 、 F A 命令は グロ ーバルキ ヤ ッ シ ュ 1 1 2 のパ イ プラ イ ン に入 る こ と を許 さ れ、 こ こ で説明 す る制御 シース テム 1 5 0 の他の処理に賦 さ れ る ( こ れは ス テ ッ プ 5 1 0 で表す) 。
F A 命令 と 関連す る 整列 し た 4 バイ ト ヮ ー ドがデー タ キ ャ ッ シ ュ 1 0 8 に おいて独占 さ れな いキ ヤ ッ シ ュ ブ口 ッ ク の 中 にあ れば ( こ の テス ト はス テ ッ プ 5 0 4 で表す) F A 命令は グ ロ 一 ノレキ ャ ッ シ ュ 1 1 2 の 'ィ プラ イ ン に入 る こ と を許 さ れず (ス テ ッ プ 5 0 6 で表す) 、 キ ャ ッ シ ュ ミ ス · フ ィ ルメ ッ セー ジ力 グ ロ一バノレキ ヤ ッ シ ュ 1 1 2 に送 ら れる (ス テ ッ プ 5 0 8 で表す) 。 制御 システム 1 5 0 は上述 し たよ う に操作するハ ー ド ウ ェ アステー ト マ シ ン と して実装さ れる こ と が好ま し く、 特に上述 し た 4 ルー ルに従 っ て実装さ れる こ と が好ま し い。 あ る いは、 制御 システム 1 5 0 は ソ フ ト ウ ェ ア に従 つ て動作する プロ セ ッ サー と して実装さ れる 。
制御 システム 1 5 0 はデー タ キ ヤ ッ シ ュ 1 0 8 を含む 整数機能単位 ( I U ) の一部 と して、 (スプ リ ッ ト レべ ルの キ ャ ッ シ ュ配列を持つ) 処理装置の各々 に実装 さ れ る こ と が好ま し い。 あ る い は、 制御 シス テム 1 5 0 は機 能単位 1 0 4 の外部にあ る構成部材と して、 (スブ リ ツ ト レベルのキ ヤ ッ シ ュ配列を持つ) 処理装置の各々 に実 装される。 あ る いは、 制御 シス テム 1 5 0 はスプ リ ッ ト レベルのキ ヤ ッ シ ュ配列を含む コ ン ビュー タ ー シス テム 1 0 1 の処理装置の各々 に分散される 多重ス テー ト マ シ ン と して実装 さ れる 。
制御 シス テム 1 5 0 はハ ー ドウ エ ア開発者が開発で き る よ う にする適当な コ ン ノ、。イ ラ一シス テム と 、 ソ フ ト ゥ エ ア にお け る プロ ト タ イ ブハ ー ドウ ヱ ァ回路を使用 して 開発さ れる こ と が好ま し い 。 かかる コ ンパイ ラ ー シ ステ ム において、 ハー ド ウ ェ ア構成部材の機能性は翻訳言語 を使用 して表すこ と がで き る。 かかる コ ンパイ ラ ー シス テムは論理を立証す る ために使用で き 、 制御信号及び関 連する ラ ン ダム論理の タ イ ミ ン グと世代を限定する 際の 助け と な る。 かかる コ ンパイ ラ ーの 1 つは力 リ フ オ ノレニ ァ サ ン ホ セ の Cadence Design Systems , Inc. (こ よ る Ve r i l ogコ ン ノヽ。ィ ラ 一であ る。
本発明の実施に関する詳細は本明細書にお け る説明に 基づけば、 当業者に と っ て 自 明であろ う 。
上記において本発明の様々 な態様を説明 して き たが、 それ ら は例と して挙げた も のであ り 制限的な も のではな い こ と を理解すべき であ る 。
こ の よ う に 、 本発明によれば、 デー タ ロ スやデ ッ ド口 ッ ク を惹起す る こ と な く 、 ス プ リ ツ ト レべノレのキ ヤ ッ シ ュ配列を もつ コ ン ピ ュ ー タ ー シ ス テム に存在する キ ヤ ッ シ ュの同期性に関す る 問題を解決する こ とがで き る。

Claims

請求の範囲
1 . 各々 が少な く と も 1 つ の キ ヤ ッ シ ュを有する複数 の処理装置か ら成る コ ン ピ ュ ー タ ー シ ス テム においてデ 一 夕 ロ スを防止する方法において、 マルチプロ セ ッ サ一 キ ヤ ッ シ ュの同期性がコ ン ビユ ー タ ー システムの中で維 持され、 少な く と も 1 つの処理装置が、 第 2 レベルのキ ャ ッ シ ュ に連結される第 1 レベルのキ ヤ ッ シ ユカ、 ら成る ス プ リ ッ ト レベルの キ ャ ッ シ ュ配列を含み、 整数記憶命 令がデー タ を第 1 レベルのキ ヤ ッ シ ュ と第 2 レベルのキ ャ ッ シ ュ に記憶する こ と を可能に し、 第 1 レベルのキ ヤ ッ シ ュ はバイ 卜 書き込み可能であ り 、 第 2 レベルの キ ヤ ッ シ ュ は ヮ ー ド書き込み可能であ る方法であ っ て、 該方 法は、
( a ) 第 2 レベルのキ ヤ ッ シ ュのパイ ブラ イ ンを監視 して、 フ ォ ー ス ドア ト ミ ッ ク ( F A ) 命令が第 2 レベル のキ ヤ ッ シ―ュパイ ブラ イ ン にあ る か否かを判別する ス テ ッ ブを含み、 F A命令は第 1 レベルのキ ャ ッ シ ュ におけ る記憶割当てを求め る整数記憶命令であ り 、 それは ヮ ー ドの整数倍以外の長 さ のデー タ が第 1 レベルのキ ヤ ッ シ ュ に記憶さ れる こ と を可能に し、 F A命令実行中に、 1 つかそれ以上のバイ 卜 が第 1 レベルのキ ャ ッ シ ュか ら読 み込ま れ、 ヮ ー ド長デー タ が第 2 レベルのキ ヤ ッ シ ュ に 書き込ま れる よ う に、 F A命令の書き 込みデー タ に沿つ て第 2 レベルのキ ヤ ッ シ ュ に書 き込ま れ、 ( b ) F A命令が第 2 レベルのキ ヤ ッ シ ュパイ ブラ イ ン にあ る と判別された場合、 F A命令が第 2 レベルのキ ャ ッ シ ュ ノ《イ ブラ イ ンを出 る ま で、 第 2 レべノレのキ ヤ ッ シ ュ に対する介入を遅 らせ、 それによ つ てキ ヤ ッ シ ュ メ モ リ ー ア ク セ ス命令の操作によ っ て書 き 込ま れる デー タ が F A命令の操作に よ っ て破壊 されな いよ う に、 かかる 介入の原因 と な っ たキ ヤ ッ シ ュ メ モ リ 一ア ク セス命令の 実行を遅 ら せる ステ ッ プを含む こ と を特徵と する コ ン ビ ユ ー タ ー シス テム に お いてデー タ ロ ス を防止する方法。
2 . ( c ) 第 2 レベルの キ ャ ッ シ ュ に対す る介入がベ ンディ ン グにな っ てい る か否かを判別する ス テ ッ プ と 、
( d ) 第 2 レベルのキ ヤ ッ シ ュ に対する介入がペ ンデ ィ ン グに な っ てい る場合、 第 2 レベルの キ ャ ッ シ ュ に対 する介入実行が第 2 レベルのキ ヤ ッ シ ュパイ ブラ イ ン に おけ る F A命令の存在によ り いつ ま で も遅 ら さ れる こ と 力 な い よ う に 、 ' F A 命令力 第 2 レベルのキ ヤ ッ シ ュ ノ ィ プラ イ ン に入る こ と を防止する ス テ ッ プと を更に含む こ と を特徵とす る請求の範囲第 1 項に記載の方法。
3 . 前記ス テ ッ プ ( a ) は、
命令が F A命令であ る か否かを識別する第 2 レベルの キ ヤ ッ シ ュパイ プラ イ ン標識に入る命令と関連さ せるス テ ツ プ と、
第 2 レベルのキ ヤ ッ シ ュ にあ る命令の前記標識を分析 し、 F A命令が第 2 レベルのキ ヤ ッ シ ュパイ ブラ イ ン に あ る か否かを判別す る ス テ ッ プ と を含む こ と を特徴 と す る請求の範囲第 1 項に記載の方法。
4 . 前記標識が第 2 レベルの キ ャ ッ シ ュパイ ブラ イ ン に入る各々 の命令に関連す る フ ォ ース ドア ト ミ ッ ク ( F A ) ビ ッ ト か ら成り 、 F A ビ ッ ト は F A命令用の第 1 の 値に設定さ れ、 ま た非 F A命令用の第 2 の値に設定され る こ と を特徴 とする請求の範囲第 3 項に記載の方法。
5 . 前記ス テ ッ プ ( b ) において、 第 2 レベルのキ ヤ ッ シ ュ の中で F A命令の書き込みデー タが入 っ てい る整 列 し たマルチバイ 卜 ワ ー ドにア ク セスする介入を、 F A 命令が第 2 レベルのキ ヤ ッ シ ュパイ ブラ イ ンを出 る ま で 遅 らせる請求の範囲第 1 項に記載の方法。
6 . 各々 が少な く と も 1 つのキ ャ ッ シ ュを有する複数 の処理装置か ら成る コ ン ピ ュー タ ー システム において処 理装置間のデ ッ ドロ ッ ク を防止する方法において、 マル チプロ セ ッ サーキ ヤ ッ シ ュの同期性がコ ン ピ ュー タ 一 シ ス テム の中で維持さ れ、 少な く と も 1 つの処理装置が、 第 2 レベルの キ ヤ ッ シ ュ に連結 される第 1 レ ベルの キ ヤ ッ シ ュか ら成る スプ リ ッ ト レベルのキ ヤ ッ シ ュ配列を含 み、 第 1 レベルのキ ヤ ッ シ ュはバイ 卜 書き込み可能であ り 、 第 2 レベルのキ ャ ッ シ ュは ワ ー ド書き込み可能であ る方法であ っ て、 該方法は、
( a ) 第 2 レベルのキ ャ ッ シ ュ のパイ プラ イ ンを監視 して、 ポ ッ シ ブル ミ ス ( P M ) 命令が第 2 レベルのキ ヤ ッ シ ュパイ ブラ イ ン にあ る か否かを判別する ステ ッ ブを 含み、 こ の P M命令は第 2 レベルのキ ヤ ッ シ ュの中に記 憶割当てを求め るが、 第 1 レベルのキ ャ ッ シ ュ には記憶 割当てを求めないキ ヤ ッ シ ュ メ モ リ 一 ア ク セス命令であ り ヽ
( b ) コ ン ピュー タ ー シ ス テ ム の処理装置間のデ ッ ド ロ ッ ク が防止 さ れる よ う に、 介入が第 2 レベルキ ヤ ッ シ ュのために処理される 間、 第 2 レベルのキ ャ ッ シ ュ にお け る命令が保留される可能性があ る間は、 第 2 レベルの キ ヤ ッ シ ュ に対する介入の実行が妨げ られな い よ う に、 P M命令が第 2 レベルのキ ヤ ッ シ ュパイ ブラ イ ンの中に あ る と 判別さ れた場合、 フ ォ ー ス ドア ト ミ ッ ク ( F A ) 命令が第 2 レベルのキ ヤ ッ シ ュパイ プラ イ ン に入 ら な い よ う に し、 F A命令はデー タ を第 1 レベルのキ ヤ ッ シ ュ 第 2 レベルのキ ャ ッ シ ュ の両方に記憶する こ と を可能 にする キ ャ ッ シ ュ メ モ リ 一 ア ク セス命令であ っ て、 第 1 レベルの キ ヤ ッ シ ュ に.記憶 さ れる デー タ は ヮ ー ドの整数 倍以外の長さ のデー タであ り 、 第 2 レベルのキ ャ ッ シ ュ に対す る介入は、 F A命令が第 2 レベルのキ ヤ ッ シ ュパ イ ブラ イ ン の中にあ る間は許可 さ れな いステ ッ プを含む こ と を特徴と する コ ン ビュ ー タ ー シス テム において処理 装置間のデ ッ ドロ ッ ク を防止す る方法。
7 . 前記ス テ ッ プ ( a ) は、
命令が P M命令であ る か否かを識別する第 2 レベルの キ ヤ ッ シ ュパ イ プラ イ ン標識に入る命令と関連さ せ る ス テ ツ フ と 、
第 2 レベルのキ ヤ ッ シ ュ にあ る命令の前記標識を分析 し 、 P M命令が第 2 レベルのキ ヤ ッ シ ュ ノ イ ブラ イ ン に あ る か否かを判別する ステ ッ プ と を含むこ と を特徴 と す る請求の範囲第 6 項に記載の方法。
8 . 前記標識が第 2 レベルの キ ヤ ッ シ ュパイ ブラ イ ン に入る各々 の命令に関連す る ポ テ ン シ ャ ル ミ ス ( P M ) ビ ッ 卜 か ら成 り 、 P M ビ ッ ト は P M命令用の第 1 の値に 設定さ れ、 ま た非 P M命令用の第 2 の値に設定さ れる こ と を特徴と す る請求の範囲第 7 項に記載の方法。
9 . 各々 が少な く と も 1 つ の キ ャ ッ シ ュを有する複数 の処理装置か ら成る コ ン ピ ュー タ ー システム においてキ ャ ッ シ ュ メ モ リ 一 ア ク セス命令の実行を制御する方法に おいて、 マルチプロ セ ッ サ一キ ヤ ッ シ ュの同期性力 コ ン ピュ ー タ ー システム の中で維持 ざれ、 少な く と も l の 処理装置が、 第 2 レベルの キ ヤ ッ シ ュ に連結 される第 1 レべノレの キ ヤ ッ シ ュ か ら成 る ス プ リ ッ ト レべノレのキ ヤ ッ シ ュ配列を含み'、 第 1 レべノレのキ ャ ッ シ ュ はバイ 卜 書き 込み可能であ り 、 第 2 レベルの キ ヤ ッ シ ュは ヮー ド書き 込み可能であ り 、 スプ リ ツ ト レベルの キ ャ ッ シ ュ配列は デー タ を第 1 レベルのキ ヤ ッ シ ュ と 第 2 レベルのキ ヤ ッ シ ュ の両方に記憶さ せる よ う にする整数記憶操作を支持 し、 整数記憶操作の実行中に、 1 つかそれ以上のバイ ト が第 1 レベルのキ ヤ ッ シ ユ カ、 ら読み込ま れ、 ヮ ー ド長デ — 夕 が整数記憶操作の結果 と して第 2 レベルのキ ヤ ッ シ ュ に書 き込ま れる よ う に、 整数記憶操作の書き込みデ一 夕 に沿 っ て第 2 レベルのキ ヤ ッ シ ュ に書き込ま れ、 かか る整数記憶操作の実行は最小単位的 ( a t o m i c a 1 1 y ) に行われる よ う に し た方法であ っ て、 該方法は、
( a ) 整数記憶操作の書 き込みデー タが入 っ てい る整 列 したマルチバイ ト ヮ 一 ドが第 1 レベルのキ ヤ ッ シ ュ に のみ存在する か否かを判別する ステ ッ プと、
( b ) 整列 し た ヮ ー ドが第 1 レベルのキ ヤ ッ シ ュ に の み独占的でな い と判別さ れた場合、 整数記憶操作が第 2 レベルのキ ヤ ッ シ ュ のパ イ プラ イ ン に入る こ と を防止 し、 キ ヤ ッ シ ュ ミ ス · フ ィ ル操作を開始さ せて整列ヮ 一 ドが 第 1 レベルの キ ヤ ッ シ ュ に のみ存在す る よ う に さ せ る ス テ ツ プ と を含むこ と を特徵 と す る コ ン ビ ユ ー タ ー シ ス テ ム にお いてキ ヤ ッ シ ュ メ モ リ ^ " ア ク セ ス命令の実行を制 御する方法。
1 0 . 前記ステ ッ プ ( a ) は、
整列 ヮ 一 ドが第 1 レベルのキ ヤ ッ シ ュ にの み存在する か否かを識別する第 1 レベルキ ヤ ッ シ ュ標識にあ る整列 し たマルチバイ ト ヮ ー ド と 関連 し、 標識は第 1 レベルの キ ヤ ッ シ ュ に記憶さ れる ス テ ッ プと、
第 1 レベルキ ヤ ッ シ ュ に記憶された前記標識を分析 し て、 整数記憶操作の書き込みデー タ が入っ てい る整列 し たマルチバイ ト ヮ ー ドが第 1 レべノレキ ャ ッ シ ュ にのみ存 在する か否かを判別する ス テ ッ プと を含むこ と を特徴と する請求の範囲第 9 項に記載の方法。
1 1 . 前記標識が各々 第 1 レベルキ ャ ッ シ ュ において 整列 し たマルチバイ ト ヮ 一 ド と 関連す る書き 込み可能 ( W ) ビ ッ 卜 か ら成 り 、 W ビ ッ ト は第 1 レベルキ ヤ ッ シ ュ において独占 される整列 ヮ 一 ド用の第 1 の値に設定さ れ、 第 1 レベルキ ヤ ッ シ ュ において独占 さ れな い整列 ヮ 一 ド用の第 2 の値に設定さ れる こ と を特徴と する請求の 範囲第 1 0 項に記載の方法。
1 2 . 各々 が少な く と も 1 つ のキ ャ ッ シ ュ を有す る複 数の処理装置か ら成 る コ ン ピ ュ ー タ ー シ ス テ ム において キ ヤ ッ シ ュ メ モ リ ー ア ク セ ス命令の実行を制御する方法 において、 マルチプロ セ ッ サ一キ ヤ ッ シ ュの同期性がコ ン ビュ ー タ ー シス テムの中で維持され、 少な く と も 1 つ の処理装置が、 第 2 レベルのキ ャ ッ シ ュ に連結さ れる第 1 レべノレのキ ヤ ッ シ ユカ、 ら成る スブ リ ッ ト レべノレのキ ヤ ッ シ ュ配列を含み、 整数記憶命令がデー タ を第 1 レベル のキ ヤ ッ シ ュ と第 2 レベルのキ ヤ ッ シ ュ に記憶する こ と を可能に し、 第 1 レベルのキ ャ ッ シ ュ はノく ィ 卜 書き 込-み 可能であ り 、 第 2 レ ベルの キ ヤ ッ シ ュ は ヮ ー ド書 き 込み 可能であ る方法であ っ て、 該方法は、
( a ) 第 2 レベルのキ ヤ ッ シ ュパイ プラ イ ンを監視 し て、 フ ォ ー ス ドア ト ミ ッ ク ( F A ) 命令が第 2 レベルの キヤ ッ シ ュパイ プラ イ ン にあ る か否かを判別するス テ ツ プを含み、 こ の F A命令は第 1 レベルのキ ャ ッ シ ュ にお け る記憶割当てを求め る整数記憶命令であ り 、 それは ヮ ― ドマルチプル以外の長さ のデー タが第 1 レベルのキ ヤ ッ シ ュ に記憶 さ れる こ と を可能に し、 F A命令実行中に、 1 つかそれ以上のバイ 卜 が第 1 レべノレのキ ヤ ッ シ ュ か ら 読み込ま れ、 ヮ ー ド長デー タ が第 2 レベルの キ ヤ ッ シ ュ に書 き 込ま れ る よ う に、 F A 命令の書 き 込みデー タ に沿 つ て第 2 レベルのキ ヤ ッ シ ュ に書き 込 ま れ、
( b ) 第 2 レベルのキ ヤ ッ シ ュ のパ イ プラ イ ン を監視 して、 ポ ッ シ ブル ミ ス ( P M ) 命令が第 2 レベルの キ ヤ ッ シ ュパ イ プラ イ ン に あ る か否かを判別す る ス テ ッ プを 含み、 こ の P M命令は第 2 レベルのキ ヤ ッ シ ュ の中 に記 憶割当てを求め る が、 第 1 レベルのキ ャ ッ シ ュ に は記憶 割当て を求め な いキ ヤ ッ シ ュ メ モ リ 一 ア ク セ ス命令であ り 、
( c ) P M命令が第 2 レベルのキ ヤ ッ シ ュ パ イ プ ラ イ ン の中 に あ る と 判別 さ れた場合、 F A 命令が第 2 レベル のキ ヤ ッ シ ュ パ イ プ ラ イ ン に入 る こ と を防止す る ス テ ツ ブ と 、
( d ) F A 命令が第 2 レベルのキ ヤ ッ シ ュパ イ プラ イ ン にあ る と 判別 さ れた場合、 F A 命令が第 2 レベルのキ ャ ッ シ ュ パ イ プラ イ ン を出 る ま で、 第 2 レベルキ ヤ ッ シ ュ に対す る介入を遅 ら せ る ス テ ッ プ と を含む こ と を特徴 と す る コ ン ピ ュ ー タ 一 シス テム においてキ ヤ ッ シ ュ メ モ リ 一ア ク セ ス命令の実行を制御す る方法。
1 3 . ( e ) 第 2 レベルの キ ャ ッ シ ュ に対する 介入力 ペ ンデ ィ ン グに な っ てい る か否かを判別 しす るス テ ッ プ と 、
( f ) 第 2 レベルのキ ヤ ッ シ ュ に対す る介入がペ ンデ ィ ン グにな っ てい る場合、 第 2 レベルのキ ヤ ッ シ ュ に対 する介入実行が第 2 レベルのキ ヤ ッ シ ュパイ ブラ イ ン に おけ る F A命令の存在によ り いつ ま で も遅 ら さ れる こ と がな い よ う に、 F A命令が第 2 レベルのキ ヤ ッ シ ュパイ プラ イ ン に入る こ と を防止する ステ ッ プと を更に含む請 求の範囲第 1 2 項に記載の方法。
1 4 . ( e ) 整数記憶操作の書き込みデー タ が入 っ て い る整列 したマルチバイ ト ヮー ドが第 1 レベルのキ ヤ ッ シ ュ にのみ存在する か否かを判別する ステ ッ プと、
( f ) 整列 し た ワ ー ドが第 1 レベルのキ ャ ッ シ ュ に の み独占的でな い と判別さ れた場合、 整数記憶動作が第 2 レベルのキ ヤ ッ シ ュパイ ブラ イ ン に入る こ と を防止 し、 キ ヤ ッ シ ュ ミ ス · フ ィ ル操作を開始さ せて整列 ヮ ー ドが 第 1 レベルの キ ヤ ッ シ ュ に の み存在す る よ う にす る ス テ ッ プ'と を更に含む請求の範囲第 1 2 項に記載の方法。
1 5 . 各々 が少な く と も 1 つのキ ャ ッ シ ュを有す る複 数の処理装置か ら成る コ ン ビユ ー タ ー システム において キ ヤ ッ シ ュ メ モ リ ーア ク セス命令の実行を制御する ため の制御 システム において、 マルチプロ セ ッ サ一キヤ ッ シ ュ の同期性が コ ン ピ ュ ー タ ー シ ス テム の中で維持さ れ、 少な く と も 1 つの処理装置が、 第 2 レベルの キ ャ ッ シ ュ に連結さ れる第 1 レベルの キ ヤ ッ シ ュ か ら成る スプ リ ッ ト レベルのキ ヤ ッ シ ュ配列を含み、 整数記憶命令がデー タ を第 1 レべノレのキ ヤ ッ シ ュ と第 2 レべノレの キ ヤ ッ シ ュ の両方に記憶する こ と を可能に し、 第 1 レベルのキ ヤ ッ シ ュ はバイ ト 書き込み可能であ り 、 第 2 レベルのキ ヤ ッ シ ュは ワ ー ド書き込み可能であ り 、 該制御 システム は、 第 2 レベルキ ャ ッ シ ュのパイ プラ イ ンを監視 して、 フ オ ー ス ドア ト ミ ッ ク ( F A ) 命令が第 2 レベルのキ ヤ ッ シ ュパイ ブラ イ ン にあ る か否かを判別する手段を含み、 こ の F A命令は第 1 レベルのキ ヤ ッ シ ュ にお け る記憶割 当てを求め る整数記憶命令であ り 、 それは ワ ー ドの整数 倍以外の長さ のデー タ が第 1 レベルのキ ヤ ッ シ ュ に記憶 さ れる こ と を可能に し、 F A命令実行中に、 1 つかそれ 以上のバイ 卜 が第 1 レベルのキ ャ ッ シ ュか ら読み込ま れ、 ヮ ー ド長デー タ が第 2 レベルの キ ヤ ッ シ ュ に書き込ま れ る よ う に、 F A命令の書き込みデー タ に沿っ て第 2 レべ ルのキ ヤ ッ シ ュ に書き込ま れ、
第 2 レベルのキ ヤ ッ シ ュパイ プラ イ ンを監視 して、. ポ ッ シブノレ ミ ス ( P M ) 命令が第 2 レベルのキ ャ ッ シ ュノ、' ィ プラ イ ン に あ る か否かを判別する手段を含み、 こ の P M命令は第 2 レベルのキ ヤ ッ シ ュ の中 に記憶割当てを求 めるが、 第 1 レベルのキ ャ ッ シ ュ には記憶割当てを求め ないキ ヤ ッ シ ュ メ モ リ ーア ク セス命令であ り 、
P M命令が第 2 レベルのキ ヤ ッ シ ュ ノ、'イ ブラ イ ンの中 にあ る と判別された場合、 F A命令が第 2 レベルの キ ヤ ッ シ ュパイ ブラ イ ン に入る こ と を防止する手段と、
F A命令が第 2 レベルのキ ヤ ッ シ ュパイ プラ イ ン にあ る と判別さ れた場合、 F A命令が第 2 レベルのキ ヤ ッ シ ュ ノ イ ブラ イ ンを出 る ま で、 第 2 レベルキ ヤ ッ シ ュ に対 する介入を遅 ら せる手段と を含む こ と を特徴 とする制御 シ ス テ ム 。
1 6 . 第 2 レベルのキ ャ ッ シ ュ に対する介入がペ ンデ ィ ングにな っ てい る か否かを判別する手段と 、
第 2 レベルのキ ヤ ッ シ ュ に対する介入がベ ンディ ン グ にな っ てい る と判別された場合、 第 2 レ ベルのキ ヤ ッ シ ュ に対する介入実行が第 2 レベルのキ ヤ ッ シ ュパイ ブラ ィ ンにおけ る F A命令の存在に よ り いつ ま で も遅 ら さ れ る こ と がない よ う に、 F A命令が第 2 レベルのキ ヤ ッ シ ュパイ プラ イ ン に入 る こ と を防止する手段と を更に含む こ と を特徴と する請求の範囲第 1 5 項に記載の制御 シス テム。
1 7 . 整数記憶操作の.書き込みデー タが入 っ てい る整 列 したマ ノレ チ ノくィ ト ヮ ー ドが第 1 レべ ノレの キ ヤ ッ シ ュ に のみ存在する か否かを判別する手段と 、
整列 し た ヮ 一 ドが第 1 レ ベ ル の キ ヤ ッ シ ュ に の み独占 的でな い と判別さ れた場合、 整数記憶操作が第 2 レべル のキ ヤ ッ シ ュ のパイ プラ イ ンに入る こ と を防止 し、 キ ヤ ッ シ ュ ミ ス · フ ィ ル操作を開始 さ せて整列ヮ ー ドが第 1 レベルのキ ヤ ッ シ ュ にのみ存在する よ う に さ せる手段と を含む こ と を特徴と する請求の範囲第 1 5 項に記載の制 御 シ ス テ ム 。
PCT/JP1994/002111 1993-12-15 1994-12-15 Dispositif et procede de synchronisation des systemes a antememoire de donnees a plusieurs niveaux WO1995016959A1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE69434728T DE69434728T2 (de) 1993-12-15 1994-12-15 Synchronisationssystem und verfahren in einem datencachesystem mit aufgeteiltem pegel
KR1019950703429A KR0182344B1 (ko) 1993-12-15 1994-12-15 스플릿 레벨의 데이타 개시 시스템의 동기성을 위한 시스템과 그 방법
EP95902964A EP0684561B1 (en) 1993-12-15 1994-12-15 System and method for synchronization in split-level data cache system
HK98114540A HK1018166A1 (en) 1993-12-15 1998-12-22 System and method for synchronization in split-level data cache system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/167,005 US5572704A (en) 1993-12-15 1993-12-15 System and method for controlling split-level caches in a multi-processor system including data loss and deadlock prevention schemes
US08/167,005 1993-12-15

Publications (1)

Publication Number Publication Date
WO1995016959A1 true WO1995016959A1 (fr) 1995-06-22

Family

ID=22605558

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1994/002111 WO1995016959A1 (fr) 1993-12-15 1994-12-15 Dispositif et procede de synchronisation des systemes a antememoire de donnees a plusieurs niveaux

Country Status (10)

Country Link
US (2) US5572704A (ja)
EP (1) EP0684561B1 (ja)
JP (1) JP2631037B2 (ja)
KR (1) KR0182344B1 (ja)
CN (1) CN1054223C (ja)
DE (1) DE69434728T2 (ja)
HK (1) HK1018166A1 (ja)
SG (1) SG75776A1 (ja)
TW (1) TW367441B (ja)
WO (1) WO1995016959A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5872976A (en) * 1997-04-01 1999-02-16 Landmark Systems Corporation Client-based system for monitoring the performance of application programs
JP2015179320A (ja) * 2014-03-18 2015-10-08 株式会社東芝 キャッシュメモリおよびプロセッサシステム

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5628021A (en) * 1992-12-31 1997-05-06 Seiko Epson Corporation System and method for assigning tags to control instruction processing in a superscalar processor
US5751995A (en) * 1994-01-04 1998-05-12 Intel Corporation Apparatus and method of maintaining processor ordering in a multiprocessor system which includes one or more processors that execute instructions speculatively
EP0803095A1 (en) 1994-10-14 1997-10-29 Silicon Graphics, Inc. Indexing and multiplexing of interleaved cache memory arrays
WO1996012231A1 (en) 1994-10-14 1996-04-25 Silicon Graphics, Inc. A translation buffer for detecting and preventing conflicting virtual addresses from being stored therein
US5737749A (en) * 1996-05-20 1998-04-07 International Business Machines Corporation Method and system for dynamically sharing cache capacity in a microprocessor
US6175899B1 (en) * 1997-05-19 2001-01-16 International Business Machines Corporation Method for providing virtual atomicity in multi processor environment having access to multilevel caches
US6092156A (en) * 1997-11-05 2000-07-18 Unisys Corporation System and method for avoiding deadlocks utilizing split lock operations to provide exclusive access to memory during non-atomic operations
US7020879B1 (en) * 1998-12-16 2006-03-28 Mips Technologies, Inc. Interrupt and exception handling for multi-streaming digital processors
US7257814B1 (en) 1998-12-16 2007-08-14 Mips Technologies, Inc. Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors
US7529907B2 (en) 1998-12-16 2009-05-05 Mips Technologies, Inc. Method and apparatus for improved computer load and store operations
US6389449B1 (en) * 1998-12-16 2002-05-14 Clearwater Networks, Inc. Interstream control and communications for multi-streaming digital processors
US7237093B1 (en) 1998-12-16 2007-06-26 Mips Technologies, Inc. Instruction fetching system in a multithreaded processor utilizing cache miss predictions to fetch instructions from multiple hardware streams
US6341331B1 (en) * 1999-10-01 2002-01-22 International Business Machines Corporation Method and system for managing a raid storage system with cache
US6591361B1 (en) 1999-12-28 2003-07-08 International Business Machines Corporation Method and apparatus for converting data into different ordinal types
US6701424B1 (en) * 2000-04-07 2004-03-02 Nintendo Co., Ltd. Method and apparatus for efficient loading and storing of vectors
US6859862B1 (en) 2000-04-07 2005-02-22 Nintendo Co., Ltd. Method and apparatus for software management of on-chip cache
US6857061B1 (en) * 2000-04-07 2005-02-15 Nintendo Co., Ltd. Method and apparatus for obtaining a scalar value directly from a vector register
DE60143896D1 (de) 2000-07-14 2011-03-03 Mips Tech Inc Anweisungsabruf und -absendung in einem multi-thread-system
US7406554B1 (en) * 2000-07-20 2008-07-29 Silicon Graphics, Inc. Queue circuit and method for memory arbitration employing same
US7181600B1 (en) 2001-08-02 2007-02-20 Mips Technologies, Inc. Read-only access to CPO registers
US7185183B1 (en) 2001-08-02 2007-02-27 Mips Technologies, Inc. Atomic update of CPO state
GB2392742B (en) * 2002-09-04 2005-10-19 Advanced Risc Mach Ltd Synchronisation between pipelines in a data processing apparatus
US7634638B1 (en) * 2002-10-22 2009-12-15 Mips Technologies, Inc. Instruction encoding for system register bit set and clear
US6836833B1 (en) * 2002-10-22 2004-12-28 Mips Technologies, Inc. Apparatus and method for discovering a scratch pad memory configuration
JP3855270B2 (ja) * 2003-05-29 2006-12-06 ソニー株式会社 アンテナ実装方法
CN100461142C (zh) * 2005-07-05 2009-02-11 威盛电子股份有限公司 微处理器、处理器总线系统、及执行稀疏写入处理的方法
US7454492B2 (en) * 2005-08-26 2008-11-18 International Business Machines Corporation Method and apparatus for configuring and modeling server information in an enterprise tooling environment
US7596661B2 (en) * 2005-09-01 2009-09-29 Mediatek Inc. Processing modules with multilevel cache architecture
US7711934B2 (en) * 2005-10-31 2010-05-04 Mips Technologies, Inc. Processor core and method for managing branch misprediction in an out-of-order processor pipeline
US7734901B2 (en) * 2005-10-31 2010-06-08 Mips Technologies, Inc. Processor core and method for managing program counter redirection in an out-of-order processor pipeline
US7721071B2 (en) * 2006-02-28 2010-05-18 Mips Technologies, Inc. System and method for propagating operand availability prediction bits with instructions through a pipeline in an out-of-order processor
US20070204139A1 (en) 2006-02-28 2007-08-30 Mips Technologies, Inc. Compact linked-list-based multi-threaded instruction graduation buffer
US7370178B1 (en) * 2006-07-14 2008-05-06 Mips Technologies, Inc. Method for latest producer tracking in an out-of-order processor, and applications thereof
US20080016326A1 (en) 2006-07-14 2008-01-17 Mips Technologies, Inc. Latest producer tracking in an out-of-order processor, and applications thereof
US7657708B2 (en) * 2006-08-18 2010-02-02 Mips Technologies, Inc. Methods for reducing data cache access power in a processor using way selection bits
US7650465B2 (en) 2006-08-18 2010-01-19 Mips Technologies, Inc. Micro tag array having way selection bits for reducing data cache access power
US8032734B2 (en) * 2006-09-06 2011-10-04 Mips Technologies, Inc. Coprocessor load data queue for interfacing an out-of-order execution unit with an in-order coprocessor
US7647475B2 (en) * 2006-09-06 2010-01-12 Mips Technologies, Inc. System for synchronizing an in-order co-processor with an out-of-order processor using a co-processor interface store data queue
US20080082793A1 (en) * 2006-09-29 2008-04-03 Mips Technologies, Inc. Detection and prevention of write-after-write hazards, and applications thereof
US9946547B2 (en) 2006-09-29 2018-04-17 Arm Finance Overseas Limited Load/store unit for a processor, and applications thereof
US8078846B2 (en) 2006-09-29 2011-12-13 Mips Technologies, Inc. Conditional move instruction formed into one decoded instruction to be graduated and another decoded instruction to be invalidated
US7594079B2 (en) 2006-09-29 2009-09-22 Mips Technologies, Inc. Data cache virtual hint way prediction, and applications thereof
US7996632B1 (en) * 2006-12-22 2011-08-09 Oracle America, Inc. Device for misaligned atomics for a highly-threaded x86 processor
US7769958B2 (en) * 2007-06-22 2010-08-03 Mips Technologies, Inc. Avoiding livelock using intervention messages in multiple core processors
US7769957B2 (en) * 2007-06-22 2010-08-03 Mips Technologies, Inc. Preventing writeback race in multiple core processors
US7953932B2 (en) * 2008-02-13 2011-05-31 International Business Machines Corporation System and method for avoiding deadlocks when performing storage updates in a multi-processor environment
US8672411B2 (en) * 2010-03-22 2014-03-18 Faurecia Automotive Seating, Llc Vehicle seat cushion with integrated ventilation
CN103473095A (zh) * 2013-09-10 2013-12-25 江苏中科梦兰电子科技有限公司 Cpu二级缓存的加速初始化方法
GB2551529B (en) * 2016-06-21 2018-09-12 Advanced Risc Mach Ltd Switching between private cache and shared memory to handle atomic operations

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03102546A (ja) * 1989-09-18 1991-04-26 Agency Of Ind Science & Technol 階層キャッシュメモリ装置
JPH0581129A (ja) * 1991-04-03 1993-04-02 Internatl Business Mach Corp <Ibm> データ処理システムのキヤツシユ内のデータユニツトに対する所有権変更制御装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5058006A (en) * 1988-06-27 1991-10-15 Digital Equipment Corporation Method and apparatus for filtering invalidate requests
JPH02253356A (ja) * 1989-03-28 1990-10-12 Toshiba Corp 階層キャッシュメモリ装置とその制御方式
US5287484A (en) * 1989-06-21 1994-02-15 Hitachi, Ltd. Multi-processor system for invalidating hierarchical cache
JP3206914B2 (ja) * 1989-11-09 2001-09-10 インターナショナル、ビジネス、マシーンズ、コーポレーション 多重プロセッサ・システム
US5136700A (en) * 1989-12-22 1992-08-04 Digital Equipment Corporation Apparatus and method for reducing interference in two-level cache memories
US5406504A (en) * 1993-06-30 1995-04-11 Digital Equipment Multiprocessor cache examiner and coherency checker

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03102546A (ja) * 1989-09-18 1991-04-26 Agency Of Ind Science & Technol 階層キャッシュメモリ装置
JPH0581129A (ja) * 1991-04-03 1993-04-02 Internatl Business Mach Corp <Ibm> データ処理システムのキヤツシユ内のデータユニツトに対する所有権変更制御装置

Non-Patent Citations (1)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5872976A (en) * 1997-04-01 1999-02-16 Landmark Systems Corporation Client-based system for monitoring the performance of application programs
JP2015179320A (ja) * 2014-03-18 2015-10-08 株式会社東芝 キャッシュメモリおよびプロセッサシステム

Also Published As

Publication number Publication date
KR960701403A (ko) 1996-02-24
KR0182344B1 (ko) 1999-05-15
HK1018166A1 (en) 1999-12-10
TW367441B (en) 1999-08-21
CN1054223C (zh) 2000-07-05
JP2631037B2 (ja) 1997-07-16
DE69434728T2 (de) 2007-04-26
EP0684561A4 (en) 1999-11-17
DE69434728D1 (de) 2006-06-14
US5572704A (en) 1996-11-05
US5632025A (en) 1997-05-20
EP0684561B1 (en) 2006-05-10
SG75776A1 (en) 2000-10-24
CN1117767A (zh) 1996-02-28
EP0684561A1 (en) 1995-11-29

Similar Documents

Publication Publication Date Title
WO1995016959A1 (fr) Dispositif et procede de synchronisation des systemes a antememoire de donnees a plusieurs niveaux
US6336168B1 (en) System and method for merging multiple outstanding load miss instructions
JP4388916B2 (ja) 複数の順序ベクトルで複数のメモリ順序モデルを実施する方法及び装置
US4916652A (en) Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
US5465336A (en) Fetch and store buffer that enables out-of-order execution of memory instructions in a data processing system
US6266768B1 (en) System and method for permitting out-of-order execution of load instructions
JP3659877B2 (ja) ライトアフターライトデータハザードにより生じるエラーを効率的に防止するためのスーパースケーラ処理システム及び方法
US20080301374A1 (en) Structure for dynamic livelock resolution with variable delay memory access queue
KR960001274B1 (ko) 트랩 및 스톨 제어기능을 갖는 병렬처리형 프로세서 시스템
JP2009527866A (ja) アウトオブオーダープロセッサにおけるトランザクショナルメモリ
KR20040045035A (ko) 힌트 버퍼를 이용한 메모리 액세스 대기시간 숨김
US6301654B1 (en) System and method for permitting out-of-order execution of load and store instructions
JP2003519832A (ja) アントレーニングを備えるストア−ロード転送プレディクタ
JPS60168238A (ja) パイプラインデータ処理装置
US20060218124A1 (en) Performance of a data processing apparatus
JP2005235135A (ja) ベクトル処理装置、及び、追い越し制御回路
JP6306261B2 (ja) トランザクションメモリプログラムのためのソフトウェアリプレイヤ
US20110154000A1 (en) Adaptive optimized compare-exchange operation
KR101056820B1 (ko) 연산들의 인-플라이트 인스턴스들이 데이터-추론마이크로프로세서 내에서 연산 재실행을 중단하는 것을방지하기 위한 시스템 및 방법
JPH06195229A (ja) パイプラインプロセッサにおける割込み処理のための装置
JP2001216160A (ja) 長レイテンシ命令に対する命令属性およびステータス情報を示す処理システムおよび方法
US20050010744A1 (en) Store-to-load forwarding buffer using indexed lookup
JP3146058B2 (ja) 並列処理型プロセッサシステムおよび並列処理型プロセッサシステムの制御方法
US11741044B2 (en) Issuing instructions on a vector processor
US20060129765A1 (en) System, method and computer program product for testing software

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 94191177.2

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): CN JP KR

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE

WWE Wipo information: entry into national phase

Ref document number: 1995902964

Country of ref document: EP

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWP Wipo information: published in national office

Ref document number: 1995902964

Country of ref document: EP

WWG Wipo information: grant in national office

Ref document number: 1995902964

Country of ref document: EP