WO2010038301A1 - メモリアクセス方法及び情報処理装置 - Google Patents
メモリアクセス方法及び情報処理装置 Download PDFInfo
- Publication number
- WO2010038301A1 WO2010038301A1 PCT/JP2008/067940 JP2008067940W WO2010038301A1 WO 2010038301 A1 WO2010038301 A1 WO 2010038301A1 JP 2008067940 W JP2008067940 W JP 2008067940W WO 2010038301 A1 WO2010038301 A1 WO 2010038301A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- node
- directory
- memory access
- storage device
- data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/082—Associative directories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0822—Copy directories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1048—Scalability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/254—Distributed memory
- G06F2212/2542—Non-uniform memory access [NUMA] architecture
Definitions
- the present invention relates to a memory access method and an information processing apparatus, and more particularly to a memory access method and an information processing apparatus that maintain cache coherency (cache coherency).
- a method for maintaining cache coherency between the memory as a storage device and the entire cache memory is SMP (Symmetric Multi Processing) method and ccNUMA (cache-coherent-Non-Uniform-Memory-Access) method.
- Global Snoop a method that snoops all cache memory in the system
- SMP method in order to perform global snoop at any time, it is impossible in principle to perform memory access in a time shorter than the latency of global snoop.
- the advantage of the ccNUMA method is that local memory access is fast.
- the local memory is a memory directly connected to an access source processor (for example, CPU: Central Processing Unit).
- the SMP method does not break the balance between the global snoop latency and the memory access time even when accessing the remote memory. That is, there is an advantage that there is no extreme increase in global snoop latency and variation as seen in the case of the ccNUMA method in remote memory access.
- the remote memory is a memory that is not directly connected to the access source CPU but is connected to another CPU.
- FIG. 1 is a diagram for explaining copy back by the SMP method.
- a plurality of nodes 1-1 to 1-3 are connected to a crossbar (XB) 3 through corresponding system controllers (SC: System Controller) 2-1 to 2-3.
- SC System Controller
- Each of the nodes 1-1 to 1-3 includes a core 11 having a processor such as a CPU and a cache, a memory controller (MC) 12, and a main memory (DIMM: Dual Inline Memory Memory Module) 13.
- MC memory controller
- DIMM Dual Inline Memory Memory Module
- the cache missed local node 1-1 requests the cache missed data from the SC2-1 as indicated by an arrow A1.
- SC2-1 broadcasts a data request to XB3 as shown by arrow A1, and XB3 sends a data request to all SC2-1 to 2-3 as shown by arrow A2.
- Each of the SCs 2-1 to 2-3 searches the tag copy (TAG) Copy) at the same time to determine the location of the cache missed data, and returns the determination result to XB3 as indicated by the arrow A2.
- XB3 summarizes these determination results, and in this example, as indicated by arrow A3, determines that there is cache missed data in the cache of core 11 of owner node 1-3, and issues a copyback request.
- the owner node 1-3 transfers the cache data to the requesting local node 1-1. In this way, regardless of which node is the owner node, the distance through which it passes is almost unchanged.
- the ccNUMA method is becoming more dominant than the SMP method due to improvements in software technology.
- the ccNUMA method has a different response characteristic from the SMP method and can access the local memory with a short latency, but the access to the remote memory is slow. For this reason, when shifting from the SMP method to ccNUMA, depending on the software, the performance is degraded. In particular, when transfer between CPU caches such as copy back occurs frequently, the superiority of the ccNUMA SMP method is reduced.
- FIG. 2 is a diagram for explaining copy back by the ccNUMA method.
- Each of the nodes 1-1 to 1-3 is provided with a communication assist (CA) 14.
- Reference numerals 5-1 to 5-3 denote route control points.
- the node 1-1 is a local node
- the node 1-2 is a home node (Home Node) which is a management node as a memory management entity
- the node 1-3 is an owner holding the cache missed data.
- it is a node.
- the local node 1-1 that caused the cache miss inquires about the location of the requested data in the directory of the home node 1-2, as indicated by an arrow A11.
- the directory is stored in the DIMM 13.
- the home node 1-2 recognizes that the data is in the owner node 1-3 by searching the directory, and issues a data transfer instruction to the owner node 1-3 as indicated by an arrow A12.
- the owner node 1-3 returns the requested data to the local node 1-1 that is the data request source, as indicated by an arrow A13.
- additional exchanges such as adjusting the consistency of directory information are performed between the nodes 1-1 to 1-3, but basically three requests are made for one cache miss as described above. Since transfer occurs, it takes time to obtain the requested data. In addition, since the number of control points of the path increases with the number of nodes, each transfer passes through a plurality of control points of the path, and the time required for the transfer increases. On the other hand, the same node as the SC that is the data request source If the communication is with a local node, the transfer time is short and the structure is unbalanced.
- Japanese Patent Laid-Open No. 11-232173 Japanese Patent Laid-Open No. 5-100952 JP 2005-234854 A
- a conventional multiprocessor system achieves a relatively short latency and a relatively high throughput regardless of whether the memory to be accessed is a local memory in a local node or a remote memory in another node. There was a problem that it was difficult.
- the present invention realizes a memory access method and an information processing apparatus capable of realizing a relatively short latency and a relatively high throughput regardless of whether a memory to be accessed is a local memory or a remote memory.
- the purpose is to do.
- a memory access method for maintaining data consistency in an information processing apparatus in which a plurality of nodes each having an arithmetic processing unit, a main storage unit, and a temporary storage unit are connected.
- the taken-out information indicating that the data is taken out from the node to the temporary storage device of another node is stored, and when a cache miss occurs in the memory access to the temporary storage device of the own node, the memory access Determining whether the local node is addressed to the main storage device or the temporary storage device of the own node, and determining that the memory access is addressed to the main storage device or the temporary storage device of the own node.
- a step of performing memory access at the own node based on the memory access, and whether the memory access is determined not to be directed to the main storage device or the temporary storage device of the own node Alternatively, when it is determined that the directory hit has occurred, a memory access including a step of performing global snoop processing for snooping all nodes based on the memory access from the own node to other nodes. A method is provided.
- an information processing apparatus that maintains data consistency, each of which includes a plurality of nodes having an arithmetic processing unit, a main storage unit, and a temporary storage unit, and is connected to the plurality of nodes. And a memory control device connected to the arithmetic processing unit and the main storage device, and each node stores taken-out information indicating that data is taken out from the node to a temporary storage device of another node.
- the processing unit of the own node determines whether the memory access is addressed to the main storage device or the temporary storage device of the own node.
- the first determination means for determining whether or not the memory access is addressed to the main storage device or the temporary storage device of the own node. And a second determination means for determining whether or not a directory hit has occurred by indexing the directory, and based on the memory access if the second determination means determines that the directory hit has not occurred.
- the access means for performing memory access and the first determination means determine that the memory access is not addressed to the main storage device or the temporary storage device of the own node, or the directory determination is performed by the second determination means If it is determined that an error has occurred, an information processing apparatus having snoop processing means for performing global snoop processing for other nodes on the basis of the memory access is provided.
- the disclosed memory access method and information processing apparatus it is possible to achieve a relatively short latency and a relatively high throughput regardless of whether the memory to be accessed is a local memory or a remote memory. .
- the memory access is controlled so as to maintain data consistency in an information processing apparatus in which a plurality of nodes having an arithmetic processing unit, a main storage unit, and a temporary storage unit are connected.
- the directory provided in each node, information that is taken out indicating that data is taken out from the node to a temporary storage device of another node is stored.
- the local node determines whether or not the memory access is directed to the primary storage device or the temporary storage device of the local node. If it is determined that it is addressed to the storage device or temporary storage device, the directory is indexed and whether or not a directory hit has occurred is determined by the own node.
- ccNUMA type memory access is performed by the own node based on the memory access.
- snoop is performed on all nodes based on the memory access. SMP global snoop processing is performed from the own node to other nodes.
- FIG. 3 is a block diagram showing a multiprocessor system in an example of the present embodiment.
- the multiprocessor system of FIG. 3 includes a system controller (SC) 21 and a plurality of nodes 22-1, 22-2,..., 22-n (n is a natural number of 2 or more).
- SC 21 and the plurality of nodes 22-1, 22-2,..., 22-n are connected by appropriate connection means, and this connection means is not particularly limited, and a well-known one can be used.
- the SC 21 has a plurality of tag copies (TAG Copy) 51, which will be described later, and functions as a memory control device. Since the nodes 22-1, 22-2,..., 22-n have the same configuration, only the configuration of the node 22-1 is shown in FIG.
- TAG Copy tag copies
- the node 22-1 has a core 31 and a main storage memory (DIMM: Dual Inline Memory Module) 32, which is a main storage device, and the core 31 serves as an arithmetic processing unit such as a central processing unit (CPU: Central Processing Unit).
- the number of processors 41 in the core 31 is not limited to one.
- Each of the nodes 22-1, 22-2,..., 22-n can function in the same manner as a local node, a home node, and an owner node in a known ccNUMA multiprocessor system. At least each of the nodes 22-1, 22-2,..., 22-n used as local nodes does not need to be physically mounted at one place like, for example, one chip. 45 may be a connection arranged at the tip of the SC 21, that is, on the opposite side of the processor 41 and the cache 43. In short, the DIMM space (main storage memory space) that exists in the entire multiprocessor system may be a shared memory space that maintains cache coherency.
- the SC 21 includes a processor and a memory for storing the tag copy 51, and may have a configuration similar to that of each of the nodes 22-1, 22-2, ..., 22-n.
- the SC 21 has a tag copy 51 of the cache tag 44 included in each of the nodes 22-1, 22-2, ..., 22-n.
- the tag copy 51 may not be a complete copy of the cache tag 44, as will be described later.
- the tag copy 51 basically has the same function as that used in a well-known SMP multiprocessor system.
- FIG. 4 is a diagram illustrating an example of an entry of the tag copy 51.
- the entry of the tag copy 51 includes a status (Status) indicating the state of the cache 44, an address tag (Address Tag) for associating an address block, an error correction code (ECC: Error Correction Code), etc. including.
- the status (Status) may also serve as valid information indicating whether the tag copy 51 is valid.
- the configuration of the multiprocessor system in FIG. 3 is well known except that the tag copy 51 exists in the SC 21. This is the same as the ccNUMA multiprocessor system. However, as will be described later, the control of the multiprocessor system of FIG. 3 is slightly different from the control of the well-known ccNUMA multiprocessor system.
- FIG. 5 is a diagram for explaining an example of entries in the directory 45.
- the directory 45 entry is similar to the cache tag 44 entry.
- an entry in the directory 45 includes a status (Status) using an address as a key (index information), an address tag (Address Tag) for associating an address block, and an error correction code (ECC: Error Correction Code). ) Etc.
- the status of the directory 45 indicates whether the directory 45 is valid or invalid.
- Each entry in the directory 45 is configured to be updatable.
- the capacity of the directory 45 only needs to be able to store the maximum state that can be taken out from the node (for example, the node 22-1) to which the directory 45 belongs. Therefore, in this example, the cache of the set associative method is set so as to satisfy the total capacity of the cache 43 of the remote nodes 22-2 to 22-n other than the local node 22-1 connected by the multiprocessor system. If it is 43, the number of sets will be sufficient.
- a large-scale multiprocessor system that is, a shared memory system
- the capacity of the cache 43 of each node 22-1 to 22-n is large.
- at least a part of the directory 45 may be stored in the external memory.
- a method of caching the directory 45 is also used. It is desirable to shorten the access time.
- the directory information may be stored in the DIMM 32 as in a general ccNUMA multiprocessor system. Similarly to 44, it may be stored in a small-capacity high-speed RAM or the like. By using a RAM that can be accessed at high speed for storing directory information as in the latter case, it is possible to determine whether it is local access or remote access at high speed.
- FIG. 6 is a flowchart for explaining memory access control.
- the directory 45 stores information that is taken out indicating that the data requested by the memory access is taken out to the cache of the remote node. .
- Memory access control is performed as follows using this directory 45.
- the directory 45 is indexed at the time of a cache miss at the address requested by the local access, and the information is stored in the directory 45 and is not stored.
- memory access to the local memory is speeded up by reading data from the DIMM 32 in the local node 22-1 which is the local memory.
- the global snoop process similar to that of the well-known SMP multiprocessor system is performed without using the directory 45, thereby compensating for the copyback delay, which is a disadvantage of the ccNUMA system.
- the merit of the SMP method that is, the flat (equal) access to the memory and the cache memory and that the copyback is not delayed.
- the “case other than the above” means, for example, when there is a memory access (that is, remote access) from the processor 41 of the remote node 22-n, or when there is a cache miss at the address requested by local access. This is a case where information is taken out to the directory 45 when indexing is stored.
- step S1 it is determined whether the memory access is addressed to the local memory (that is, addressed to the DIMM 32 of the local node 22-1) or not (addressed to the remote memory). If the decision result in the step S1 is YES, a step S2 indexes the directory 45 of the local node 22-1. In step S3, it is determined whether or not there is a directory hit. If the decision result in the step S3 is NO, a step S4 transfers the data of the DIMM 32 (local memory) of the local node 22-1 to the cache 43 of the same local node 22-1 and the process is finished.
- step S5 is a global snoop process similar to the SMP multiprocessor system known to the processor 41 of the local node 22-1. Request.
- step S6 a global snoop process similar to that of a known SMP multiprocessor system is performed, and the process ends.
- FIG. 7 is a flowchart for explaining an example of the operation of the multiprocessor system. In FIG. 7, the same steps as those in FIG.
- step S7 determines whether or not the tag copy 51 in the SC 21 has been hit. If the decision result in the step S7 is YES, a step S8 shows, for example, a cache of the remote (or owner) node 22-3 having the cache tag 44 that is a source of the tag copy 51 that has hit the data requested by the memory access An inter-cache transfer process for transferring the data from the cache 43 to the cache 43 of the local node 22-1 is performed.
- step S9 it is determined whether or not the memory access is an exclusive request. If the determination result is NO, the process ends. Whether or not the memory access is an exclusive request can be determined using, for example, a share bit of a directory 45 described later with reference to FIG. If the decision result in the step S9 is YES, a step S10 invalidates (or deletes) the entry in the directory 45 of the local node 22-1 and the process ends.
- step S11 requests a memory access to the home node 22-2, for example, and the step S12 indexes the cache tag 44 of the home node 22-2.
- step S13 it is determined whether or not the cache tag 44 of the home node 22-2 has been hit. If the determination result is NO, the process proceeds to step S14, and if the determination result is YES, the process proceeds to step S15. .
- step S14 the data in the DIMM 32 of the home node 22-2 is transferred to the cache 43 of the local node 22-1 that is the request source.
- step S15 the data in the cache 43 of the home node 22-2 is transferred to the cache 43 of the local node 22-1 that is the request source.
- step S16 takes out information indicating that the data requested by the memory access is taken out to the cache 43 of the local node 22-1 in the entry of the directory 45 of the home node 22-2. Directory entry registration is performed, and the process ends.
- FIG. 8 is a flowchart for explaining an example of the operation of each unit of the multiprocessor system. In FIG. 8, the same steps as those in FIG.
- steps S1 to S5 classified as “local” correspond to processing performed by a local node in a well-known ccNUMA multiprocessor system.
- steps S6, S7, and S11 classified as “global” correspond to a global snoop process in a well-known SMP multiprocessor system.
- steps S8 to S10 classified as “remote” correspond to processing performed by a remote (or owner) node in a known ccNUMA multiprocessor system.
- Steps S12 to S16 classified as “home” correspond to processing of a home node in a known ccNUMA multiprocessor system.
- the local node directory is first referred to at the time of the cache miss. Get data from local memory.
- Load Miss a load request
- the cache of the remote node that has taken out the data continues to store the data as it is. In this case, the directory information is not changed.
- the cache miss request is a store miss (Store Miss), which is an exclusive request
- the local node's cache will claim exclusive rights, so the local node's cache related to the remote node's cache that is taking out the data
- the directory entry is invalidated (or deleted) when the data stored in the cache of the remote node is transferred to the cache of the local node.
- the information taken out of the directory of the local node is invalidated (or deleted).
- the global snoop process similar to the well-known SMP multiprocessor system is performed.
- the cache of any node does not store the requested data
- it is taken out from the DIMM of the owner node, and is taken out and stored in the directory of the owner node.
- the cache replacement (erasing) operation such as write-back to the memory of the remote node
- the information taken out of the owner node directory is invalidated (or deleted).
- the cache tag of the local node is referred to at any time, so that the activity in the local node can always be observed, and the tag copy has complete information.
- FIG. 9 is a diagram for explaining a configuration method of the directory 45.
- FIG. 9 shows a configuration method of the directory 45 of the node number # 0 (that is, the node including the processor 41 of the number # 0) as an example. Information of the processors 41 with numbers # 1 to # 3 is indicated by Processor # 1 to Processor # 3.
- Each cache 43 is a 2-way set associative and is 1 MB. If each of the three nodes has 2-way worth and 8192 entries per 1-way (1 MB ⁇ 64 ⁇ 2), it is possible to store any taken-out state.
- an address, a node number, and a way number are required. Since these pieces of information are necessary information for registering the tag copy of the SMP method, they are not unnecessary information in this embodiment. However, it is necessary to transmit the processor number and the way number to the home node when making a request to the home node during remote access.
- the directory 45 is configured as shown in FIG. 9, the data is replaced from the cache 43 where the data was taken out to the original cache 43, and the data is deleted from the cache 43 where the data was taken out (the state where the data is taken out is canceled).
- the entry of the directory 45 can be easily deleted by conveying the deleted address, the way number, and the node number to the home node of the source.
- the local access can realize the short latency and the high throughput equivalent to the ccNUMA system
- the remote access is the advantage of the SMP system.
- Stable latency that is, flat (equal) memory access Can be realized.
- a high-performance multiprocessor system and a shared memory system can be realized.
- the directory 45 is provided with information that can distinguish whether the data being taken out is an exclusive type, a shared type, or a clean type request.
- the directory 45 is indexed, and a shared and clean type directory hit can be determined.
- the requested data can be acquired from the local memory without performing the global snoop process similar to that of the well-known SMP multiprocessor system despite the data being taken out (directory hit). .
- FIG. 10 is a diagram for explaining another example of a directory entry.
- the Share bit is information that can distinguish whether the data being taken out is an exclusive type, a shared type, or a clean type request.
- the Share bit is on (On), the data is shared and taken out by a clean request, and when it is off (off), the data is taken out by an exclusive request .
- FIG. 11 is a flowchart for explaining another example of the operation of the multiprocessor system. In FIG. 11, the same steps as those in FIG.
- a step S21 decides whether or not the memory access request is exclusive by referring to the Share bit of the directory 45. If the decision result in the step S21 is NO, a step S22 decides whether or not the memory access request is a shared and clean type by referring to the Share bit of the directory 45. If the decision result in the step S22 is YES, the process advances to a step S4. If the determination result of step S21 is YES or the determination result of step S22 is NO, the process proceeds to step S5.
- step S23 changes the share 45 of the entry of the directory 45 so that it is shared and indicates a clean type if the share bit does not indicate a clean type. finish.
- Step S24 is a directory entry registration for storing in the entry of the directory 45 of the home node 22-2, information that has been taken out indicating that the data requested by the memory access has been taken out to the cache 43 of the local node 22-1. And the process ends.
- this directory entry registration if the request is shared and the clean type, the shared registration is performed in which the share bit indicating the clean type is registered in the entry of the directory 45.
- the directory 45 is indexed. Data is acquired from local memory without performing global snoop processing.
- a load miss that is, a cache miss of a shared memory request
- the information in the directory 45 entry is changed or transferred by processing such as passing the data in the remote memory. You can turn on the Share bit when registering.
- the disclosed information processing apparatus and the memory access method of the information processing apparatus are applicable to a multiprocessor system and a shared memory system that need to maintain cache coherency.
- the disclosed information processing apparatus and the memory access method of the information processing apparatus have been described by using the embodiments.
- the disclosed information processing apparatus and the memory access method of the information processing apparatus are not limited to the above-described embodiments. It goes without saying that various modifications and improvements can be made within the scope of the contents.
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
演算処理装置、主記憶装置及び一時記憶装置を有するノードが複数接続された情報処理装置において、各ノードに設けられたディレクトリに、データが当該ノードから他のノードの一時記憶装置に持ち出されていることを示す持ち出され情報を格納する。自ノードの一時記憶装置へのメモリアクセスでキャッシュミスが発生し、かつ、メモリアクセスが自ノードの主記憶装置宛であると判定されると、自ノードのディレクトリを索引してディレクトリヒットが発生したか否かを判定する。ディレクトリヒットが発生しなかったと判定されるとメモリアクセスを自ノードで行う。メモリアクセスが自ノードの主記憶装置宛でないと判定されるか、或いは、ディレクトリヒットが発生したと判定されると、全てのノードに対してスヌープを行うグローバルスヌープ処理を自ノードから他のノードに対して行う。
Description
本発明は、メモリアクセス方法及び情報処理装置に係り、特にキャッシュコヒーレンシー(Cache Coherency:キャッシュメモリにおけるデータの整合性)を保つメモリアクセス方法及び情報処理装置に関する。
複数の演算処理装置であるプロセッサ(又はCPU(Central Processing Unit)を有する情報処理装置であるマルチプロセッサシステムにおいて、記憶装置であるメモリとキャッシュメモリ全体のキャッシュコヒーレンシーを保つ方法としては、SMP(Symmetric Multi Processing)方式とccNUMA(cache coherent Non-Uniform Memory Access)方式がある。
プロセッサ数が多くなると、SMP方式ではグローバルスヌープ(Global Snoop:システム内の全てのキャッシュメモリに対してスヌープを行う方式)が性能の律速条件になってしまい、性能を更に向上することが困難になってくる。SMP方式の場合、いつでもグローバルスヌープを行うために、グローバルスヌープのレイテンシより短い時間でメモリアクセスをすることは原理的には不可能である。
ccNUMA方式における利点は、ローカルメモリのアクセスが高速であるということである。ローカルメモリとは、アクセス元のプロセッサ(例えばCPU:Central Processing Unit)と直接接続されているメモリを言う。
一方、SMP方式では、ccNUMA方式とは異なり、リモートメモリのアクセスであってもグローバルスヌープのレイテンシとメモリアクセス時間のバランスを崩すことはない。つまり、リモートメモリのアクセスにおいてccNUMA方式の場合に見られるような極端なグローバルスヌープのレイテンシの増加とバラツキは無いという利点がある。リモートメモリとは、アクセス元のCPUとは直接接続されておらず、他のCPUに接続されているメモリを言う。
図1は、SMP方式によるコピーバックを説明する図である。図1のマルチプロセッサシステムでは、複数のノード1-1~1-3が対応するシステムコントローラ(SC:System Controller)2-1~2-3を介してクロスバー(XB:Cross Bar)3に接続されている。各ノード1-1~1-3は、CPU等のプロセッサとキャッシュを有するコア11、メモリコントローラ(MC:Memory Controller)12及び主記憶メモリ(DIMM:Dual Inline Memory Module)13を有する。ここでは説明の便宜上、ノード1-1がローカルノード(Local Node)であり、ノード1-3がキャッシュミスしたデータを保持するオーナーノード(Owner Node)であるものとする。
図1において、キャッシュミスしたローカルノード1-1は、矢印A1で示すように、SC2-1にキャッシュミスしたデータを要求する。SC2-1は、矢印A1で示すように、XB3に対してデータ要求のブロードキャスト(Broadcast)を行い、XB3は、矢印A2で示すように、全SC2-1~2-3に対してデータ要求をブロードキャストする。各SC2-1~2-3では、同時にタグコピー(TAG Copy)を探索してキャッシュミスしたデータの所在を判断し、矢印A2で示すように、XB3に判断結果を返す。XB3は、これらの判断結果をまとめ、この例では矢印A3で示すようにオーナーノード1-3のコア11のキャッシュにキャッシュミスしたデータがあることを判断し、コピーバック要求をする。オーナーノード1-3はキャッシュデータを要求元のローカルノード1-1に転送する。このように、どのノードがオーナーノードになる場合であっても、経由する距離は殆ど変わらない。
ccNUMA方式は、SMP方式と比較するとソフトウェアの技術の向上により優位になりつつある。しかしながら、ccNUMA方式は、SMP方式とは応答特性が異なり、ローカルメモリに対しては短いレイテンシでアクセスできるが、リモートメモリに対するアクセスは遅い。このため、SMP方式からccNUMAに移行すると、ソフトウェアによっては性能低下を招く。特に、コピーバック等のCPUキャッシュ間転送が頻発する場合には、ccNUMA方式のSMP方式に対する優位性は薄れてしまう。
図2は、ccNUMA方式によるコピーバックを説明する図である。図2中、図1と同一部分には同一符号を付し、その説明は省略する。各ノード1-1~1-3には、コミュニケーションアシスト(CA:Communication Assist)14が設けられている。又、5-1~5-3は、経路の制御点を示す。ここでは説明の便宜上、ノード1-1がローカルノードであり、ノード1-2がメモリ管理主体としての管理ノードであるホームノード(Home Node)、ノード1-3がキャッシュミスしたデータを保持するオーナーノードであるものとする。
キャッシュミスを起こしたローカルノード1-1は、矢印A11で示すように、ホームノード1-2のディレクトリ(Directory)に要求するデータの所在を問い合わせる。ディレクトリは、DIMM13に格納されている。ホームノード1-2は、ディレクトリを検索することでデータがオーナーノード1-3にあることを認識し、矢印A12で示すように、オーナーノード1-3にデータ転送指示を出す。オーナーノード1-3は、矢印A13で示すように、データ要求元であるローカルノード1-1に要求されたデータを返却する。
ディレクトリの情報の整合性を整える等の付加的なやりとりがノード1-1~1-3間で行われる場合もあるが、基本的には上記の如く1つのキャッシュミスに対して3回の要求転送が発生するため、要求したデータを取得するのに時間がかかる。又、経路の制御点は、ノードの数と共に増加するため、各転送において経路の制御点を複数経由することになり、転送に時間がかかるケースが増える一方、データ要求元であるSCと同一ノードであるローカルノードとのやりとりであれば転送時間が短いというバランスの悪い構造になる。
特開平11-232173号公報
特開平5-100952号公報
特開2005-234854号公報
従来のマルチプロセッサシステムでは、アクセス対象のメモリがローカルノードにあるローカルメモリであるか、或いは、他のノードにあるリモートメモリであるかにかかわらず、比較的短いレイテンシと比較的高いスループットを実現することは難しいという問題があった。
そこで、本発明は、アクセス対象のメモリがローカルメモリであるか、或いは、リモートメモリであるかにかかわらず、比較的短いレイテンシと比較的高いスループットを実現可能なメモリアクセス方法及び情報処理装置を実現することを目的とする。
本発明の一観点によれば、演算処理装置、主記憶装置及び一時記憶装置を有するノードが複数接続された情報処理装置におけるデータ整合性を保つメモリアクセス方法であって、各ノードに設けられたディレクトリに、データが当該ノードから他のノードの一時記憶装置に持ち出されていることを示す持ち出され情報を格納し、自ノードの一時記憶装置へのメモリアクセスでキャッシュミスが発生すると、前記メモリアクセスが前記自ノードの主記憶装置又は一時記憶装置宛であるか否かを自ノードで判定するステップと、前記メモリアクセスが前記自ノードの主記憶装置又は一時記憶装置宛であると判定されると前記ディレクトリを索引してディレクトリヒットが発生したか否かを前記自ノードで判定するステップと、前記ディレクトリヒットが発生しなかったと判定されると前記メモリアクセスに基づいてメモリアクセスを前記自ノードで行うステップと、前記メモリアクセスが前記自ノードの主記憶装置又は一時記憶装置宛でないと判定されるか、或いは、前記ディレクトリヒットが発生したと判定されると、前記メモリアクセスに基づいて全てのノードに対してスヌープを行うグローバルスヌープ処理を前記自ノードから他のノードに対して行うステップを含むメモリアクセス方法が提供される。
本発明の一観点によれば、データ整合性が保たれる情報処理装置であって、各々が演算処理装置、主記憶装置及び一時記憶装置を有する複数のノードと、前記複数のノードと接続されるとともに、演算処理装置及び主記憶装置に接続されるメモリ制御装置とを備え、各ノードは、データが当該ノードから他のノードの一時記憶装置に持ち出されていることを示す持ち出され情報を格納するディレクトリを有し、自ノードの演算処理装置は、自ノードの一時記憶装置へのメモリアクセスでキャッシュミスが発生すると、前記メモリアクセスが自ノードの主記憶装置又は一時記憶装置宛であるか否かを判定する第1の判定手段と、前記第1の判定手段により前記メモリアクセスが前記自ノードの主記憶装置又は一時記憶装置宛であると判定されると前記ディレクトリを索引してディレクトリヒットが発生したか否かを判定する第2の判定手段と、前記第2の判定手段により前記ディレクトリヒットが発生しなかった判定されると前記メモリアクセスに基づいてメモリアクセスを行うアクセス手段と、前記第1の判定手段により前記メモリアクセスが前記自ノードの主記憶装置又は一時記憶装置宛でないと判定されるか、或いは、前記第2の判定手段により前記ディレクトリヒットが発生したと判定されると、前記メモリアクセスに基づいて全ての一時期億装置に対してスヌープを行うグローバルスヌープ処理を他のノードに対して行うスヌープ処理手段を有する情報処理装置が提供される。
開示のメモリアクセス方法及び情報処理装置によれば、アクセス対象のメモリがローカルメモリであるか、或いは、リモートメモリであるかにかかわらず、比較的短いレイテンシと比較的高いスループットを実現することができる。
21 SC
22-1,22-2,...,22-n ノード
31 コア
32 DIMM
41 CPU
42 MC
43 キャッシュ
44 キャッシュタグ
45 ディレクトリ
51 タグコピー
22-1,22-2,...,22-n ノード
31 コア
32 DIMM
41 CPU
42 MC
43 キャッシュ
44 キャッシュタグ
45 ディレクトリ
51 タグコピー
開示のメモリアクセス方法では、演算処理装置、主記憶装置及び一時記憶装置を有するノードが複数接続された情報処理装置においてデータ整合性を保つようにメモリアクセスを制御する。各ノードに設けられたディレクトリには、データが当該ノードから他のノードの一時記憶装置に持ち出されていることを示す持ち出され情報を格納する。自ノードの一時記憶装置へのメモリアクセスでキャッシュミスが発生すると、メモリアクセスが自ノードの主記憶装置又は一時記憶装置宛であるか否かを自ノードで判定し、メモリアクセスが自ノードの主記憶装置又は一時記憶装置宛であると判定されるとディレクトリを索引してディレクトリヒットが発生したか否かを自ノードで判定する。ディレクトリヒットが発生しなかったと判定されるとメモリアクセスに基づいてccNUMA方式のメモリアクセスを自ノードで行う。一方、メモリアクセスが自ノードの主記憶装置又は一時記憶装置宛でないと判定されるか、或いは、ディレクトリヒットが発生したと判定されると、メモリアクセスに基づいて全てのノードに対してスヌープを行うSMP方式のグローバルスヌープ処理を自ノードから他ノードに対して行う。
これにより、SMP方式とccNUMA方式の夫々の長所を有効利用することができる。
以下に、開示の情報処理装置及び情報処理装置のメモリアクセス方法の各実施例を、図3以降と共に説明する。
図3は、本実施形態の一例におけるマルチプロセッサシステムを示すブロック図である。図3のマルチプロセッサシステムは、システムコントローラ(SC:System Controller)21と複数のノード22-1,22-2,...,22-n(nは2以上の自然数)を有する。SC21と複数のノード22-1,22-2,...,22-nは、適切な接続手段により接続されており、この接続手段は特に限定されず周知のものを使用可能である。SC21は、後述する複数のタグコピー(TAG Copy)51を有し、メモリ制御装置として機能する。各ノード22-1,22-2,...,22-nは同じ構成を有するので、図3ではノード22-1の構成のみを示す。ノード22-1は、コア31及び主記憶装置である主記憶メモリ(DIMM:Dual Inline Memory Module)32を有し、コア31には中央処理装置(CPU:Central Processing Unit)等の演算処理装置としてのプロセッサ41、メモリコントローラ(MC:Memory Controller)42、一時記憶装置であるキャッシュメモリ(Cache Memory、以下単にキャッシュと言う)43、キャッシュタグ44及びディレクトリ45が含まれる。コア31内のプロセッサ41の数は1個に限定されない。
各ノード22-1,22-2,...,22-nは、周知のccNUMA方式のマルチプロセッサシステムにおけるローカルノード、ホームノード及びオーナーノードと同様に機能可能である。少なくともローカルノードとして使用される各ノード22-1,22-2,...,22-nは、物理実装が例えば1チップのように物理的に1箇所にある必要は無く、例えばDIMM32とディレクトリ45がSC21の先、即ち、プロセッサ41とキャッシュ43の反対側に配置された接続であっても良い。要は、マルチプロセッサシステム全体に存在するDIMM空間(主記憶メモリ空間)が、キャッシュコヒーレンシーを保たれる共有メモリ空間であれば良い。
SC21は、プロセッサ及びタグコピー51を格納するメモリを有し、各ノード22-1,22-2,...,22-nと同様の構成を有しても良い。SC21は、各ノード22-1,22-2,...,22-nに含まれるキャッシュタグ44のタグコピー51を有する。タグコピー51は、後述するように、キャッシュタグ44の完全なコピーにはならない場合がある。タグコピー51は、周知のSMP方式のマルチプロセッサシステムで利用されるものと基本的には同じ機能を有する。
図4は、タグコピー51のエントリの一例を説明する図である。タグコピー51のエントリは、図4に示すように、キャッシュ44の状態を示すステータス(Status)、アドレスブロックを関連付けるためのアドレスタグ(Address Tag)と、エラー訂正コード(ECC:Error Correction Code)他を含む。尚、ステータス(Status)は、タグコピー51が有効であるか否かを示す有効情報を兼ねるものであっても良い。
SC21が各ノード22-1,22-2,...,22-nと同様の構成を有する場合、SC21にタグコピー51が存在することを除けば、図3のマルチプロセッサシステムの構成は周知のccNUMA方式のマルチプロセッサシステムと同様である。ただし、後述するように図3のマルチプロセッサシステムの制御は周知のccNUMA方式のマルチプロセッサシステムの制御とは多少異なる。
図5は、ディレクトリ45のエントリの一例を説明する図である。ディレクトリ45のエントリは、キャッシュタグ44のエントリと類似している。ディレクトリ45のエントリは、図5に示すように、アドレスをキー(索引情報)としたステータス(Status)、アドレスブロックを関連付けるためのアドレスタグ(Address Tag)と、エラー訂正コード(ECC:Error Correction Code)等を含む。ディレクトリ45のステータスは、ディレクトリ45が有効であるか無効であるかを示す。ディレクトリ45の各エントリは、更新可能に構成されている。
ディレクトリ45の容量は、このディレクトリ45が属するノード(例えば、ノード22-1)から外部に持ち出される可能性のある最大の状態を格納可能であれば良い。従って、この例ではマルチプロセッサシステムで繋がっているローカルノード22-1以外のリモートノード22-2~22-nのキャッシュ43の総容量を満たすように、且つ、セットアソシアティブ(Set Associative)方式のキャッシュ43であればセット(set)数も十分となるようにする。
例えばマルチプロセッサシステムのノードの数nが4個であり、各ノード22-1~22-4が1Mバイト(MB)で2-ウェイ(2-Way)構成のキャッシュ43を有し、各キャッシュ43のラインサイズが64バイトであると、各ノード22-1~22-4内のディレクトリ45は4×1(MB)分をカバーできる容量を有する必要がある。この場合、Way数は4×2=8-ウェイだけ必要となる。
ディレクトリ45が図4のようなエントリ構成を有し、アドレスタグ(Address Tag)として32ビット、ステータス(Valid)及びECC他に8ビット必要な場合、1エントリ当たり5バイト必要であり、4MB分のエントリ数、即ち、4MB÷64=65536エントリ必要なので、ディレクトリ45には327680バイト(約330KB)の容量が必要になる。このディレクトリ45の容量は、各ノード22-1~22-4のキャッシュ43の容量1MBよりも小さいので、SC21内に実装可能である。
ただし、ノード22-1~22-nの数nが非常に大きい大規模なマルチプロセッサシステム(即ち、共有メモリシステム)の場合や、各ノード22-1~22-nのキャッシュ43の容量が大きいとき等の場合には、例えば1つのノード22-1内に他のノード22-2~22-nのキャッシュ32の容量の合計に相当する容量を確保することが難しい場合もある。このような場合には、ディレクトリ45の少なくとも一部を外部メモリに格納すれば良い。この場合、例えば1つのノード22-1の外部メモリへのアクセスには比較的時間がかかるので、ディレクトリ45の少なくとも一部を外部メモリに格納する場合には、ディレクトリ45をキャッシュする方式を併用してアクセス時間を短縮することが望ましい。
ディレクトリ45の容量は、リモートノードのキャッシュ容量を示すことができれば充分であるため、一般のccNUMA方式のマルチプロセッサシステムで行われているようにDIMM32にディレクトリ情報を格納しても良いが、キャッシュタグ44と同様に小容量の高速なRAM等に格納しても良い。後者のようにディレクトリ情報を格納するのに高速アクセス可能なRAMを使用することで、ローカルアクセスであるか、或いは、リモートアクセスであるかの判別を高速に行うことができる。
図6は、メモリアクセス制御を説明するフローチャートである。ディレクトリ45は、リモートノードのプロセッサからのメモリアクセス(即ち、リモートアクセス)があった場合に、メモリアクセスで要求されたデータがリモートノードのキャッシュに持ち出されていることを示す持ち出され情報を格納する。メモリアクセス制御は、このディレクトリ45を利用して次のように行われる。
例えばローカルノード22-1のプロセッサ41からのメモリアクセス(即ち、ローカルアクセス)の場合、ローカルアクセスが要求するアドレスでのキャッシュミス時にディレクトリ45を索引し、ディレクトリ45に持ち出され情報が格納されていないときにはローカルメモリであるローカルノード22-1内のDIMM32からデータを読み出すことで、ローカルメモリへのメモリアクセスを高速化する。
一方、上記以外の場合、ディレクトリ45を用いずに周知のSMP方式のマルチプロセッサシステムと同様のグローバルスヌープ処理を行うことで、ccNUMA方式のデメリットであるコピーバックの遅さを補う。つまり、周知のSMP方式のマルチプロセッサシステムと同様の動作をすることで、SMP方式のメリットである、メモリ及びキャッシュメモリに対するフラットな(平等な)アクセスと、コピーバックが遅くならないというメリットを得ることができる。尚、「上記以外の場合」とは、例えばリモートノード22-nのプロセッサ41からのメモリアクセス(即ち、リモートアクセス)があった場合、或いは、ローカルアクセスが要求するアドレスでのキャッシュミス時にディレクトリ45を索引した際にディレクトリ45に持ち出され情報が格納されている場合である。
図6の処理は、例えばローカルノード22-1のプロセッサ41からのメモリアクセス(即ち、ローカルアクセス)の場合、ローカルアクセスが要求するアドレスでのキャッシュミスが発生すると開始される。ステップS1は、メモリアクセスがローカルメモリ宛か(即ち、ローカルノード22-1のDIMM32宛か)否か(リモートメモリ宛)を判定する。ステップS1の判定結果がYESであると、ステップS2は、ローカルノード22-1のディレクトリ45を索引する。ステップS3は、ディレクトリヒットであるか否かを判定する。ステップS3の判定結果がNOであると、ステップS4はローカルノード22-1のDIMM32(ローカルメモリ)のデータを同じローカルノード22-1のキャッシュ43に転送し、処理は終了する。
一方、ステップS1の判定結果がNO、或いは、ステップS3の判定結果がYESであると、ステップS5は、ローカルノード22-1のプロセッサ41に周知のSMP方式のマルチプロセッサシステムと同様のグローバルスヌープ処理を要求する。ステップS6は、周知のSMP方式のマルチプロセッサシステムと同様のグローバルスヌープ処理を行い、処理は終了する。
図7は、マルチプロセッサシステムの動作の一例を説明するフローチャートである。図7中、図6と同一ステップには同一符号を付し、その説明は省略する。
図7において、ステップS6の後、ステップS7は、SC21内のタグコピー51にヒットしたか否かを判定する。ステップS7の判定結果がYESであると、ステップS8は、メモリアクセスにより要求されたデータをヒットしたタグコピー51の元となるキャッシュタグ44を有する例えばリモート(又は、オーナー)ノード22-3のキャッシュ43からローカルノード22-1のキャッシュ43へ転送するキャッシュ間転送処理を行う。ステップS9は、メモリアクセスが排他型要求であるか否かを判定し、判定結果がNOであると処理は終了する。メモリアクセスが排他型要求であるか否かは、例えば図10と共に後述するディレクトリ45のシェアビットを用いて判定可能である。ステップS9の判定結果がYESであると、ステップS10は、ローカルノード22-1のディレクトリ45のエントリを無効化(或いは、削除)し、処理は終了する。
一方、ステップS7の判定結果がNOであると、ステップS11は、メモリアクセスを例えばホームノード22-2へ要求し、ステップS12は、ホームノード22-2のキャッシュタグ44を索引する。ステップS13は、ホームノード22-2のキャッシュタグ44にヒットしたか否かを判定し、判定結果がNOであると処理はステップS14へ進み、判定結果がYESであると処理はステップS15へ進む。ステップS14は、ホームノード22-2のDIMM32のデータを要求元であるローカルノード22-1のキャッシュ43へ転送する。ステップS15は、ホームノード22-2のキャッシュ43のデータを要求元であるローカルノード22-1のキャッシュ43へ転送する。ステップS14又はS15の後、ステップS16は、ホームノード22-2のディレクトリ45のエントリに、メモリアクセスで要求されたデータがローカルノード22-1のキャッシュ43に持ち出されていることを示す持ち出され情報を格納する、ディレクトリエントリ登録を行い、処理は終了する。
図8は、マルチプロセッサシステムの各部の動作の一例を説明するフローチャートである。図8中、図7と同一ステップには同一符号を付し、その説明は省略する。
図8において、「ローカル」と区分けされたステップS1~S5は、周知のccNUMA方式のマルチプロセッサシステムにおけるローカルノードが行う処理に相当する。「グローバル」と区分けされたステップS6,S7,S11は、周知のSMP方式のマルチプロセッサシステムにおけるグローバルスヌープ処理に相当する。「リモート」と区分けされたステップS8~S10は、周知のccNUMA方式のマルチプロセッサシステムにおけるリモート(又は、オーナー)ノードが行う処理に相当する。「ホーム」と区分けされたステップS12~S16は、周知のccNUMA方式のマルチプロセッサシステムにおけるホームノードの処理に相当する。
このように、キャッシュミスのアドレスより、メモリアクセスで要求されるデータが格納されているメモリがローカルメモリ(DIMM)のときは、先ずキャッシュミス時にローカルノードのディレクトリを参照し、ディレクトリミスした場合はローカルメモリからデータを取得する。
ディレクトリヒットした時は、他のノード(リモートノード)のキャッシュがメモリアクセスで要求されるアドレスブロックのデータを持ち出しているので、周知のSMP方式のマルチプロセッサシステムと同様のグローバルスヌープ処理を行い、データを持ち出しているキャッシュを割り出して対処する。このグローバルスヌープ処理による対処方法自体は既知である。
キャッシュミスしたメモリアクセスが共有型要求であるロードミス(Load Miss)の場合は、データを持ち出しているリモートノードのキャッシュは、データをそのまま格納し続ける。この場合、ディレクトリの情報は変更されない。
一方、キャッシュミスした要求が排他型要求であるストアミス(Store Miss)の場合は、ローカルノードのキャッシュが排他権を主張することになるので、データを持ち出しているリモートノードのキャッシュに関するローカルノードのディレクトリのエントリは、このリモートノードのキャッシュが格納していたデータをローカルノードのキャッシュに転送した時点で無効化(或いは、削除)される。つまり、ローカルノードのキャッシュ以外にデータを持ち出しているノードが無くなるので、ローカルノードのディレクトリの持ち出され情報を無効化(或いは、削除)する。
メモリアクセスがローカルノードではなくリモートノードに格納されたデータを要求しているときは、周知のSMP方式のマルチプロセッサシステムと同様のグローバルスヌープ処理を行って対処する。グローバルスヌープ処理の結果どのノードのキャッシュも要求されたデータを格納していないことが分かった場合には、オーナーノードのDIMMから持ち出すことになるので、オーナーノードのディレクトリに持ち出され情報を格納する。リモートノードのメモリへのライトバック等のキャッシュリプレース(消去)動作によってデータの持ち出され状態が解消された場合には、オーナーノードのディレクトリの持ち出され情報を無効化(或いは、削除)する。
尚、ローカルメモリアクセスが行われてディレクトリを参照した結果ディレクトリミスとなり、データが持ち出されていない場合には、処理がローカルノード内で完結するので、周知のSMP方式のマルチプロセッサシステムと同様のグローバルスヌープ処理で用いるタグコピーではローカルノード内の活動を観測できない。つまり、周知のSMP方式のマルチプロセッサシステムで用いられるタグコピーとは異なり、本実施例におけるタグコピーは完全なる情報を持つことができない。従って、ホームノードからのコピーバックと、ホームノードのメモリリードとは、区別が付かない。しかしながら、グローバルスヌープ処理の結果どのノードのキャッシュもメモリアクセスにより要求されるデータを格納していないように観測される場合には、メモリリードであるとみなしてホームノードに問い合わせを行い、ホームノードのキャッシュタグを参照すれば良い。
尚、タグコピーを持たないバススヌープ型SMP方式を採用する場合は、ローカルノードのキャッシュタグを随時参照するため、ローカルノード内の活動を常に観測可能であり、タグコピーが完全なる情報を持つ。
図9は、ディレクトリ45の構成方法を説明する図である。図9は、一例としてノード番号#0(即ち、番号#0のプロセッサ41を含むノード)のディレクトリ45の構成方法を示す。番号#1~#3のプロセッサ41の情報は、Processor#1~Processor#3で示す。この例では、自ノード以外のノードは3個あるので、自ノード以外のキャッシュ43は3個ある。各キャッシュ43は、2-Way セットアソシアティブ(Set Associative)で、1MBであるものとする。3ノード分の夫々に2-Way分、1-Way当たり8192エントリ(1MB÷64÷2)を持つようにすると、任意の持ち出され状態を記憶することが可能となる。
ディレクトリ45に情報を登録する際の場所指定のために、アドレスとノード番号とWay番号が必要になる。これらの情報は、SMP方式のタグコピーの登録においても必要な情報であるので、本実施例で余分に必要になる情報ではない。ただし、リモートアクセス時のホームノードへの要求時にプロセッサ番号とWay番号をホームノードに伝える必要がある。
ディレクトリ45を図9のように構成すると、データを持ち出していたキャッシュ43から元のキャッシュ43へデータがリプレースされてデータを持ち出していたキャッシュ43からデータが消去される(データの持ち出され状態が解消される)ときに、消去されたアドレスとWay番号とノード番号を持ち出し元のホームノードに伝えることで、簡単にディレクトリ45のエントリを消去できる。
上記の如く、本実施例によれば、ローカルアクセスはccNUMA方式と同等の短レイテンシ高スループットを実現でき、リモートアクセスはSMP方式の長所である、安定したレイテンシ、即ちフラットな(平等な)メモリアクセスを実現できる。これにより、高性能なマルチプロセッサシステム、共有メモリシステムを実現可能となる。
ところで、キャッシュコヒーレンシーの制約を守る範囲内で上記実施例を変形することもできる。
以下に説明する変形例では、ディレクトリ45に、持ち出されているデータが排他型か共有、且つ、クリーン(Clean)型の要求によるものかを区別できる情報を持たせる。これにより、ローカルノードのキャッシュ43がロードミスしたときに、ディレクトリ45を索引すると共有、且つ、クリーン型のディレクトリヒットを判別可能となる。この場合、データが持ち出されている(ディレクトリヒット)にもかかわらず、周知のSMP方式のマルチプロセッサシステムと同様のグローバルスヌープ処理を行うこと無く、ローカルメモリから要求されたデータを取得することができる。
図10は、ディレクトリのエントリの他の例を説明する図である。図10中、図5と同一部分には同一符号を付し、その説明は省略する。本変形例では、図10に示すように、ディレクトリ45のエントリにシェア(Share)ビットが更に設けられている。このShareビットは、持ち出されているデータが排他型か共有、且つ、クリーン型の要求によるものかを区別できる情報である。このShareビットオン(On)のときはデータが共有、且つ、クリーン型の要求で持ち出されていることを示し、オフ(off)のときはデータが排他型の要求で持ち出されていることを示す。
図11は、マルチプロセッサシステムの動作の他の例を説明するフローチャートである。図11中、図7と同一ステップには同一符号を付し、その説明は省略する。
図11において、ステップS3の判定結果がYESであると、ステップS21は、ディレクトリ45のShareビットを参照することでメモリアクセスの要求が排他型であるか否かを判定する。ステップS21の判定結果がNOであると、ステップS22は、ディレクトリ45のShareビットを参照することでメモリアクセスの要求が共有、且つ、クリーン型であるか否かを判定する。ステップS22の判定結果がYESであると、処理はステップS4へ進む。ステップS21の判定結果がYES、或いは、ステップS22の判定結果がNOであると、処理はステップS5へ進む。
ステップS9の判定結果がNOであると、ステップS23は、ディレクトリ45のエントリのShareビットが共有、且つ、クリーン型を示していなければ、共有、且つ、クリーン型を示すように変更し、処理は終了する。
ステップS14又はS15の後、処理はステップS24へ進む。ステップS24は、ホームノード22-2のディレクトリ45のエントリに、メモリアクセスで要求されたデータがローカルノード22-1のキャッシュ43に持ち出されていることを示す持ち出され情報を格納する、ディレクトリエントリ登録を行い、処理は終了する。このディレクトリエントリ登録では、要求が共有、且つ、クリーン型であれば、ディレクトリ45のエントリに共有、且つ、クリーン型を示すShareビットを登録する共有登録を行う。
これにより、ローカルノードのキャッシュ43がロードミス(即ち、共有型メモリ要求のキャッシュミス)をしたときに、ディレクトリ45を索引し、ディレクトリヒットした場合であっても、ShareビットがであればSMP方式のグローバルスヌープ処理を行うこと無くローカルメモリからデータを取得する。又、ロードミス(即ち、共有型メモリ要求のキャッシュミス)をしたときに、リモートメモリからデータを取得する場合には、リモートメモリのデータを渡す等の処理でディレクトリ45のエントリの情報を変更又は登録する際に、Share ビットをオンにすれば良い。
開示の情報処理装置及び情報処理装置のメモリアクセス方法は、キャッシュコヒーレンシーを保つ必要のあるマルチプロセッサシステムや共有メモリシステムに適用可能である。
以上、開示の情報処理装置及び情報処理装置のメモリアクセス方法を実施例により説明したが、開示の情報処理装置及び情報処理装置のメモリアクセス方法は上記実施例に限定されるものではなく、開示の内容の範囲内で種々の変形及び改良が可能であることは言うまでもない。
Claims (20)
- 演算処理装置、主記憶装置及び一時記憶装置を有するノードが複数接続された情報処理装置におけるデータ整合性を保つメモリアクセス方法であって、
各ノードに設けられたディレクトリに、データが当該ノードから他のノードの一時記憶装置に持ち出されていることを示す持ち出され情報を格納し、
自ノードの一時記憶装置へのメモリアクセスでキャッシュミスが発生すると、前記メモリアクセスが前記自ノードの主記憶装置又は一時記憶装置宛であるか否かを自ノードで判定するステップと、
前記メモリアクセスが前記自ノードの主記憶装置又は一時記憶装置宛であると判定されると前記ディレクトリを索引してディレクトリヒットが発生したか否かを前記自ノードで判定するステップと、
前記ディレクトリヒットが発生しなかったと判定されると前記メモリアクセスに基づいてメモリアクセスを前記自ノードで行うステップと、
前記メモリアクセスが前記自ノードの主記憶装置又は一時記憶装置宛でないと判定されるか、或いは、前記ディレクトリヒットが発生したと判定されると、前記メモリアクセスに基づいて全てのノードに対してスヌープを行うグローバルスヌープ処理を前記自ノードから他のノードに対して行うステップ
を含むメモリアクセス方法。 - 前記グローバルスヌープ処理を前記自ノードから他のノードに対して行うステップは、前記ディレクトリヒットが発生したと判定されると、前記自ノードのタグコピーを索引してから前記グローバルスヌープ処理を行う、請求項1記載のメモリアクセス方法。
- 前記タグコピーは、任意の1つのノード内に格納される、請求項2記載のメモリアクセス方法。
- 前記メモリアクセスを前記自ノードで行うステップは、前記ディレクトリヒットが発生しなかったと判定されると前記自ノードの主記憶装置又は一時記憶装置のデータをロードする、請求項1又は2記載のメモリアクセス方法。
- 各ノードにおいて、前記ディレクトリは当該ノード内の主記憶装置に格納されている、請求項1又は2記載のメモリアクセス方法。
- 各ノードにおいて、前記ディレクトリは当該ノード内の主記憶装置以外の記憶装置に格納されている、請求項1又は2記載のメモリアクセス方法。
- 各ノードにおいて、前記ディレクトリは当該ノード内の主記憶装置以外の他の主記憶装置と外部記憶装置に格納される、請求項1又は2記載のメモリアクセス方法。
- 各ノードにおいて、前記ディレクトリは当該ノード以外の全てのノードの一時記憶装置の容量を包含する数の更新可能なエントリを有し、
前記エントリは、アドレスを索引情報としたステータス、アドレスブロックを関連付けるためのアドレスタグと、エラー訂正コードを含み、前記ステータスは前記ディレクトリが有効であるか無効であるかを示す、請求項1又は2記載のメモリアクセス方法。 - 各ノードにおいて、データが当該ノードから他のノードの一時記憶装置に持ち出されている持ち出され状態が解消されると、前記ディレクトリの持ち出され情報を無効化するステップを更に含む、請求項1又は2記載のメモリアクセス方法。
- 前記グローバルスヌープ処理を前記自ノードから他のノードに対して行うステップは、前記メモリアクセスで要求されているデータが前記情報処理装置を管理する管理ノード以外のノードの一時記憶装置には格納されていないと判定すると、前記管理ノードのタグ情報を参照する、請求項2記載のメモリアクセス方法。
- 前記管理ノードから前記自ノードの一時記憶装置にデータが転送される際に、前記管理ノードのディレクトリに持ち出され情報を登録するステップを更に含む、請求項10記載のメモリアクセス方法。
- 前記ディレクトリは、持ち出されているデータが排他型か共有型の要求によるものかを区別する共有情報を含み、
前記ディレクトリヒットが発生したと判定され、前記ディレクトリを索引して前記シェア情報からデータが共有型の要求で持ち出されていると判定されると、前記自ノードの主記憶装置からデータを取得するステップと、
排他型のコピーバックによる一時記憶装置間のデータ転送が発生し、前記ディレクトリを索引して前記シェア情報からデータが排他型の要求で持ち出されていると判定されると、前記管理ノードのディレクトリの持ち出され情報を無効化するステップ
を更に含む請求項10記載のメモリアクセス方法。 - データ整合性が保たれる情報処理装置であって、
各々が演算処理装置、主記憶装置及び一時記憶装置を有する複数のノードと、
前記複数のノードと接続されるとともに、演算処理装置及び主記憶装置に接続されるメモリ制御装置とを備え、
各ノードは、データが当該ノードから他のノードの一時記憶装置に持ち出されていることを示す持ち出され情報を格納するディレクトリを有し、
自ノードの演算処理装置は、
自ノードの一時記憶装置へのメモリアクセスでキャッシュミスが発生すると、前記メモリアクセスが自ノードの主記憶装置又は一時記憶装置宛であるか否かを判定する第1の判定手段と、
前記第1の判定手段により前記メモリアクセスが前記自ノードの主記憶装置又は一時記憶装置宛であると判定されると前記ディレクトリを索引してディレクトリヒットが発生したか否かを判定する第2の判定手段と、
前記第2の判定手段により前記ディレクトリヒットが発生しなかった判定されると前記メモリアクセスに基づいてメモリアクセスを行うアクセス手段と、
前記第1の判定手段により前記メモリアクセスが前記自ノードの主記憶装置又は一時記憶装置宛でないと判定されるか、或いは、前記第2の判定手段により前記ディレクトリヒットが発生したと判定されると、前記メモリアクセスに基づいて全ての一時期億装置に対してスヌープを行うグローバルスヌープ処理を他のノードに対して行うスヌープ処理手段を有する、情報処理装置。 - 前記スヌープ処理手段は、前記第2の判定手段により前記ディレクトリヒットが発生したと判定されると、前記自ノードのタグコピーを索引してから前記グローバルスヌープ処理を行う、請求項13記載の情報処理装置。
- 前記メモリ制御装置のメモリは、各ノードのタグコピーを格納する、請求項14記載の情報処理装置。
- 前記ディレクトリは、各ノード内の主記憶装置、各ノード内の前記主記憶装置以外の他の主記憶装置、各ノード外の記憶装置のいずれかに格納されている、請求項13又は14記載の情報処理装置。
- 任意の1つのノードにおいて、前記ディレクトリは前記任意のノード以外の全てのノードの一時記憶装置の容量を包含する数の更新可能なエントリを有し、
前記エントリは、アドレスを索引情報としたステータス、アドレスブロックを関連付けるためのアドレスタグと、エラー訂正コードを含み、前記ステータスは前記ディレクトリが有効であるか無効であるかを示す、請求項13又は14記載の情報処理装置。 - 前記自ノードの演算処理装置は、データが当該ノードから他のノードの一時記憶装置に持ち出されている持ち出され状態が解消されると、前記ディレクトリの持ち出され情報を無効化する手段を更に有する、請求項13又は14記載の情報処理装置。
- 前記スヌープ処理手段は、前記メモリアクセスで要求されているデータが管理ノード以外のノードの一時記憶装置には格納されていないと判定すると、前記管理ノードのタグ情報を参照する、請求項14記載の情報処理装置。
- 前記ディレクトリは、持ち出されているデータが排他型か共有型の要求によるものかを区別できる共有情報を含み、
前記自ノードの演算処理装置は、
前記第2の判定手段により前記ディレクトリヒットが発生したと判定され、前記ディレクトリを索引して前記シェア情報からデータが共有型の要求で持ち出されていると判定されると、前記自ノードの主記憶装置からデータを取得する手段と、
排他型のコピーバックによる一時記憶装置間のデータ転送が発生し、前記ディレクトリを索引して前記シェア情報からデータが排他型の要求で持ち出されていると判定されると、前記管理ノードのディレクトリの持ち出され情報を無効化する手段を更に有する請求項19記載の情報処理装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP08877159A EP2343655A4 (en) | 2008-10-02 | 2008-10-02 | METHOD FOR ACCESSING MEMORY AND INFORMATION PROCESSING APPARATUS |
PCT/JP2008/067940 WO2010038301A1 (ja) | 2008-10-02 | 2008-10-02 | メモリアクセス方法及び情報処理装置 |
JP2010531690A JPWO2010038301A1 (ja) | 2008-10-02 | 2008-10-02 | メモリアクセス方法及び情報処理装置 |
US13/064,568 US20110185128A1 (en) | 2008-10-02 | 2011-03-31 | Memory access method and information processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2008/067940 WO2010038301A1 (ja) | 2008-10-02 | 2008-10-02 | メモリアクセス方法及び情報処理装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/064,568 Continuation US20110185128A1 (en) | 2008-10-02 | 2011-03-31 | Memory access method and information processing apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2010038301A1 true WO2010038301A1 (ja) | 2010-04-08 |
Family
ID=42073094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2008/067940 WO2010038301A1 (ja) | 2008-10-02 | 2008-10-02 | メモリアクセス方法及び情報処理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20110185128A1 (ja) |
EP (1) | EP2343655A4 (ja) |
JP (1) | JPWO2010038301A1 (ja) |
WO (1) | WO2010038301A1 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011148482A1 (ja) * | 2010-05-27 | 2011-12-01 | 富士通株式会社 | 情報処理システム及びシステムコントローラ |
GB2481232A (en) * | 2010-06-16 | 2011-12-21 | Advanced Risc Mach Ltd | Cache for a multiprocessor system which can treat a local access operation as a shared access operation |
WO2012039008A1 (ja) * | 2010-09-23 | 2012-03-29 | 富士通株式会社 | 情報処理装置、メモリ制御方法及びメモリ制御装置 |
JP5435132B2 (ja) * | 2010-07-12 | 2014-03-05 | 富士通株式会社 | 情報処理システム |
TWI550627B (zh) * | 2013-11-28 | 2016-09-21 | 旺宏電子股份有限公司 | 儲存裝置及其操作方法 |
JP7568657B2 (ja) | 2019-05-29 | 2024-10-16 | ザイリンクス インコーポレイテッド | ハイブリッドなハードウェア-ソフトウェアコヒーレントフレームワーク |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107315694B (zh) * | 2016-04-22 | 2020-12-15 | 华为技术有限公司 | 一种缓存一致性管理方法及节点控制器 |
US10521112B2 (en) * | 2017-03-17 | 2019-12-31 | International Business Machines Corporation | Layered clustered scale-out storage system |
JP6881485B2 (ja) * | 2019-02-26 | 2021-06-02 | 日本電気株式会社 | メモリ配置装置、メモリ配置方法、及び、メモリ配置プログラム |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05100952A (ja) | 1991-10-07 | 1993-04-23 | Fuji Xerox Co Ltd | データ処理装置 |
JPH06110844A (ja) * | 1992-08-11 | 1994-04-22 | Toshiba Corp | 分散共有メモリ型マルチプロセッサシステム |
JPH11232173A (ja) | 1997-10-10 | 1999-08-27 | Bull Hn Inf Syst It Spa | ローカルメモリに組み込んでいるリモートキャッシュとcc−NUMA(キャッシュ整合型の不均一メモリアクセス)アーキテクチュアを有するデータ処理システム |
JP2000298659A (ja) * | 1999-03-31 | 2000-10-24 | Internatl Business Mach Corp <Ibm> | コンプリート・アンド・コンサイス・リモート(ccr)ディレクトリ |
JP2005234854A (ja) | 2004-02-19 | 2005-09-02 | Hitachi Ltd | マルチプロセッサシステム |
JP2005539282A (ja) * | 2002-01-09 | 2005-12-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 単一のコヒーレントなシステム内の分散コンピュータ・ノードにキャッシュ・コヒーレンスを提供するのにグローバル・スヌープを使用する方法および装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5522058A (en) * | 1992-08-11 | 1996-05-28 | Kabushiki Kaisha Toshiba | Distributed shared-memory multiprocessor system with reduced traffic on shared bus |
JPH1173370A (ja) * | 1997-08-29 | 1999-03-16 | Fujitsu Ltd | 情報処理装置 |
US6738868B2 (en) * | 2000-06-10 | 2004-05-18 | Hewlett-Packard Development Company, L.P. | System for minimizing directory information in scalable multiprocessor systems with logically independent input/output nodes |
US6760819B2 (en) * | 2001-06-29 | 2004-07-06 | International Business Machines Corporation | Symmetric multiprocessor coherence mechanism |
US7395381B2 (en) * | 2005-03-18 | 2008-07-01 | Intel Corporation | Method and an apparatus to reduce network utilization in a multiprocessor system |
US7805575B1 (en) * | 2006-09-29 | 2010-09-28 | Tilera Corporation | Caching in multicore and multiprocessor architectures |
US7937535B2 (en) * | 2007-02-22 | 2011-05-03 | Arm Limited | Managing cache coherency in a data processing apparatus |
US20090182893A1 (en) * | 2008-01-11 | 2009-07-16 | Anand Vaijayanthimala K | Cache coherence in a virtual machine managed system |
-
2008
- 2008-10-02 WO PCT/JP2008/067940 patent/WO2010038301A1/ja active Application Filing
- 2008-10-02 JP JP2010531690A patent/JPWO2010038301A1/ja active Pending
- 2008-10-02 EP EP08877159A patent/EP2343655A4/en not_active Withdrawn
-
2011
- 2011-03-31 US US13/064,568 patent/US20110185128A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05100952A (ja) | 1991-10-07 | 1993-04-23 | Fuji Xerox Co Ltd | データ処理装置 |
JPH06110844A (ja) * | 1992-08-11 | 1994-04-22 | Toshiba Corp | 分散共有メモリ型マルチプロセッサシステム |
JPH11232173A (ja) | 1997-10-10 | 1999-08-27 | Bull Hn Inf Syst It Spa | ローカルメモリに組み込んでいるリモートキャッシュとcc−NUMA(キャッシュ整合型の不均一メモリアクセス)アーキテクチュアを有するデータ処理システム |
JP2000298659A (ja) * | 1999-03-31 | 2000-10-24 | Internatl Business Mach Corp <Ibm> | コンプリート・アンド・コンサイス・リモート(ccr)ディレクトリ |
JP2005539282A (ja) * | 2002-01-09 | 2005-12-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 単一のコヒーレントなシステム内の分散コンピュータ・ノードにキャッシュ・コヒーレンスを提供するのにグローバル・スヌープを使用する方法および装置 |
JP2005234854A (ja) | 2004-02-19 | 2005-09-02 | Hitachi Ltd | マルチプロセッサシステム |
Non-Patent Citations (1)
Title |
---|
See also references of EP2343655A4 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011148482A1 (ja) * | 2010-05-27 | 2011-12-01 | 富士通株式会社 | 情報処理システム及びシステムコントローラ |
JP5348320B2 (ja) * | 2010-05-27 | 2013-11-20 | 富士通株式会社 | 情報処理システム及びシステムコントローラ |
KR101413787B1 (ko) | 2010-05-27 | 2014-06-30 | 후지쯔 가부시끼가이샤 | 정보 처리 시스템 및 시스템 컨트롤러 |
US8856457B2 (en) | 2010-05-27 | 2014-10-07 | Fujitsu Limited | Information processing system and a system controller |
GB2481232A (en) * | 2010-06-16 | 2011-12-21 | Advanced Risc Mach Ltd | Cache for a multiprocessor system which can treat a local access operation as a shared access operation |
US8706965B2 (en) | 2010-06-16 | 2014-04-22 | Arm Limited | Apparatus and method for handling access operations issued to local cache structures within a data processing apparatus |
JP5435132B2 (ja) * | 2010-07-12 | 2014-03-05 | 富士通株式会社 | 情報処理システム |
WO2012039008A1 (ja) * | 2010-09-23 | 2012-03-29 | 富士通株式会社 | 情報処理装置、メモリ制御方法及びメモリ制御装置 |
TWI550627B (zh) * | 2013-11-28 | 2016-09-21 | 旺宏電子股份有限公司 | 儲存裝置及其操作方法 |
JP7568657B2 (ja) | 2019-05-29 | 2024-10-16 | ザイリンクス インコーポレイテッド | ハイブリッドなハードウェア-ソフトウェアコヒーレントフレームワーク |
Also Published As
Publication number | Publication date |
---|---|
US20110185128A1 (en) | 2011-07-28 |
EP2343655A4 (en) | 2012-08-22 |
EP2343655A1 (en) | 2011-07-13 |
JPWO2010038301A1 (ja) | 2012-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2010038301A1 (ja) | メモリアクセス方法及び情報処理装置 | |
US7613885B2 (en) | Cache coherency control method, chipset, and multi-processor system | |
US7310708B2 (en) | Cache system with groups of lines and with coherency for both single lines and groups of lines | |
US6751720B2 (en) | Method and system for detecting and resolving virtual address synonyms in a two-level cache hierarchy | |
US6636949B2 (en) | System for handling coherence protocol races in a scalable shared memory system based on chip multiprocessing | |
US7032074B2 (en) | Method and mechanism to use a cache to translate from a virtual bus to a physical bus | |
US6571322B2 (en) | Multiprocessor computer system with sectored cache line mechanism for cache intervention | |
US6289420B1 (en) | System and method for increasing the snoop bandwidth to cache tags in a multiport cache memory subsystem | |
US8117397B2 (en) | Victim cache line selection | |
US9170946B2 (en) | Directory cache supporting non-atomic input/output operations | |
TWI506433B (zh) | 監測過濾機構 | |
JP5445581B2 (ja) | コンピュータシステム、制御方法、記録媒体及び制御プログラム | |
US20100235576A1 (en) | Handling Castout Cache Lines In A Victim Cache | |
US20080005485A1 (en) | Exclusive ownership snoop filter | |
JP4362454B2 (ja) | キャッシュコヒーレンス管理装置およびキャッシュコヒーレンス管理方法 | |
US8327072B2 (en) | Victim cache replacement | |
JP2000010860A (ja) | キャッシュメモリ制御回路及びプロセッサ及びプロセッサシステム及び並列プロセッサシステム | |
US20110161588A1 (en) | Formation of an exclusive ownership coherence state in a lower level cache | |
US20100217939A1 (en) | Data processing system | |
JP2004054931A (ja) | 分散メモリマルチプロセッサシステムにおけるメモリ移行のためのシステムおよび方法 | |
US5713004A (en) | Cache control for use in a multiprocessor to prevent data from ping-ponging between caches | |
JP4507563B2 (ja) | マルチプロセッサシステム | |
US7779210B2 (en) | Avoiding snoop response dependency | |
JP3732397B2 (ja) | キャッシュシステム | |
US9442856B2 (en) | Data processing apparatus and method for handling performance of a cache maintenance operation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 08877159 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2010531690 Country of ref document: JP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2008877159 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |