WO2007110914A1 - マルチプロセッサシステムおよびマルチプロセッサシステムの動作方法 - Google Patents

マルチプロセッサシステムおよびマルチプロセッサシステムの動作方法 Download PDF

Info

Publication number
WO2007110914A1
WO2007110914A1 PCT/JP2006/306185 JP2006306185W WO2007110914A1 WO 2007110914 A1 WO2007110914 A1 WO 2007110914A1 JP 2006306185 W JP2006306185 W JP 2006306185W WO 2007110914 A1 WO2007110914 A1 WO 2007110914A1
Authority
WO
WIPO (PCT)
Prior art keywords
cache
cache memory
data
transfer
memory
Prior art date
Application number
PCT/JP2006/306185
Other languages
English (en)
French (fr)
Inventor
Shinichiro Tago
Original Assignee
Fujitsu Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Limited filed Critical Fujitsu Limited
Priority to PCT/JP2006/306185 priority Critical patent/WO2007110914A1/ja
Publication of WO2007110914A1 publication Critical patent/WO2007110914A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch

Definitions

  • the present invention relates to a multiprocessor system and a method for operating the multiprocessor system.
  • a processor system employs a method in which a high-speed cache memory is mounted between a processor and a main memory. This balances the operating speed of the processor and the main memory, which is the main storage device.
  • multiprocessor systems that use multiple processors are constructed. Multiple processor capacity
  • a cache memory is installed for each processor, and each cache memory monitors each other to see if they share the same data as other cache memories.
  • each cache memory constantly monitors whether or not data to be accessed is shared! / In response to a data access request from another processor. For this reason, communication for monitoring increases, and the interest rate (traffic) of the cache memory increases. Furthermore, as the number of processors increases, the cache memory to be monitored and the cache memory to be monitored each increase, which complicates the hardware. For this reason, the design for constructing a multiprocessor system is difficult. Further, when one processor reads data stored in the cache memory of the other processor, for example, the cache memory storing the data replicates the data in the cache memory of the processor that reads the data. After that, the processor that has requested reading receives data from the cache memory to which the data has been copied. For this reason, there is a delay between the time when the processor requests access to the cache memory and the time when data is received. The interval (latency) increases.
  • An object of the present invention is to reduce bus traffic between cache memories and reduce the latency of access to data shared by a plurality of processors.
  • the multiprocessor system includes a plurality of processors and a cache memory and a cache controller corresponding to each of the processors.
  • the processor corresponding to the data transfer source cache memory issues an instruction to transfer the data to the data transfer source cache memory.
  • the cache controller transfers the cache line including the data to be transferred to the cache memory of another processor.
  • the cache line including the transfer source data is stored in the transfer destination cache memory.
  • data transfer means data movement or data duplication.
  • Processor power corresponding to the cache memory of the data transfer destination When an access request is issued for the transferred data, the access target data is already stored in the cache memory of the processor, so the latency can be reduced.
  • bus traffic between cache memories can be reduced.
  • Bus traffic between cache memories can be reduced, and access latency for data shared by a plurality of processors can be reduced.
  • FIG. 1 is a block diagram showing an embodiment of the present invention.
  • FIG. 2 is a flowchart showing an example of the operation of the multiprocessor system shown in FIG.
  • FIG. 3 is an explanatory diagram showing an example of an operation when transferring data in the multiprocessor system shown in FIG. 1.
  • FIG. 4 is an explanatory diagram showing another example of an operation when transferring data in the multiprocessor system shown in FIG. 1.
  • FIG. 5 is an explanatory diagram showing a comparative example of operations when transferring data according to the present invention.
  • FIG. 6 is an explanatory diagram showing another comparative example of the operation when transferring data in the present invention.
  • FIG. 7 is a block diagram showing another example of the present invention.
  • FIG. 1 shows an embodiment of the present invention.
  • the multiprocessor system has processors PO, Pl, P2, cache memories CO, Cl, C2, cache operation controllers CCNTO, CCNT1, CCNT2, inter-cache connection controller ICCNT, and main memory MM. Furthermore, the cache operation controllers CCNTO, CCNT1, and CCNT2 have cache hit determination circuits CJO, CJ1, and CJ2, transmission control circuits SCNTO, SCNT1, and SCNT2, and reception control circuits RCNTO, RCNT1, and RCNT2, respectively.
  • the processors PO, Pl, and P2 are directly connected to the cache memories CO, Cl, and C2, respectively.
  • the cache memories CO, Cl, and C2 are connected to the cache operation controllers CCNTO, CCNT1, and CCNT2, respectively.
  • the inter-cache connection controller ICCNT is connected to the cache operation controllers CCNTO, CCNT1, CCNT2 and the main memory MM.
  • the cache operation controllers CCNTO, CCNT1, and CCNT2 control the operation of the cache memory such as a cache hit determination as in the conventional case.
  • the cache operation controllers CCNTO, CCNT1, and CCNT2 respond to the transfer instructions from the corresponding processors PO, Pl, and P2, and transfer the cache line to the cache memory of the other processor via the inter-cache connection controller I CCNT. Forward.
  • the transfer instructions from the corresponding processors PO, Pl, and P2 are instructions for transferring data from the cache memory of the processor that issued the transfer instruction to the cache memory of another processor. The data transferred by the transfer command is included in the cache line described above.
  • the inter-cache connection controller ICCNT controls the transfer of the cache line between the cache memories CO, Cl and C2.
  • the cache operation controller CCNTO, CCNT1, CCNT2 and the cache connection controller ICCNT function as a cache controller that transfers the cache line containing the data to be transferred to the cache memory of another processor in response to the transfer instruction.
  • the main memory MM is a main storage device that is shared and used by the processors P0, Pl, and P2. In the present embodiment, the main memory MM is a shared memory having the lowest hierarchy.
  • FIG. 2 shows an example of the operation of the multiprocessor system shown in FIG.
  • processors P0 and PI share address X data.
  • the address X indicates an address in the main memory MM.
  • the processor P0 issues an instruction for transferring the cache line including the address X from the cache memory CO to the cache memory C1 to the cache memory CO (step S100).
  • the cache operation controller CCNT0 determines whether the address X is a cache hit or a cache miss (step S110).
  • the cache operation controller CCNT0 reads the cache line including the address X from the cache memory CO (step S120).
  • the cache operation controller CCNT0 transmits the read cache line to the cache indirect connection controller ICCNT (step S130).
  • the inter-cache connection controller IC CNT transmits the received cache line to the cache operation controller CCNT1 (step S140).
  • the cache operation controller CCNT1 determines whether the address X is a cache hit or a cache miss (step S150). If there is a cache miss in step S150, the cache operation controller CCNT1 stores the received cache line in the cache memory C1 (step S160). As a result, the data at the address X is stored in the cache memory C1. Therefore, if the processor P1 requests access to the address X after this, the main memory MM! / Does not need to transfer the cache memory power data of other processors, so the latency can be reduced.
  • step S150 the cache operation controller CCNT1 overwrites the received cache line on the cache line with the cache hit in the cache memory C1 (step S170).
  • the “dirty bid” of the overwritten cache line is also updated.
  • “dirty” updates only the data stored in the cache memory higher in the hierarchy and updates the data in the main memory MM lower in the hierarchy. It is not in a state.
  • “Dirty bid” is an instruction flag indicating whether or not the cache line is “dirty.”
  • the cache operation controller CCNT0 notifies the cache miss to the inter-cache connection controller ICCNT (step S200).
  • the inter-cache connection controller ICCNT requests the cache memory C1 to store the cache line including the address X (step S210).
  • the cache operation controller CCNT1 determines whether the address X is a cache hit or a cache miss (step S220).
  • the cache operation controller CCNT1 requests the inter-cache connection controller ICCNT to read the address X. Subsequently, the inter-cache connection controller ICCNT requests the main memory MM to read the address X (step S230). The inter-cache connection controller ICCNT reads data including the data at address X by the size of the cache line. The inter-cache connection controller I CCNT sends the read data to the cache operation controller CCNT1. The cache operation controller CCNT1 stores the received data in the cache memory C1 (step S160). As a result, even if the data at the address X is not stored in the cache memory CO, the data at the address X is stored in the cache memory C1. Therefore, if the processor P1 requests access to the address X after this, it is not necessary to transfer data from the main memory MM or the cache memory of another processor, so the latency can be reduced.
  • step S220 In the case of a cache hit in step S220, the data at address X is already stored in the cache memory C1.
  • the cache operation controller CCNT1 completes the operation without doing anything and maintains the state of the cache memory (step S240). In this case, data transfer between the cache memories does not occur, so the bus traffic between the cache memories can be reduced.
  • the cache operation controller CCNT0 performs a The entry corresponding to the read cache line in the cache memory CO is invalidated. In other words, the data in the transfer source cache memory CO is transferred to the transfer destination cache memory C1 without leaving it in the cache memory CO. Also in this case, since the operation for the cache memory C1 is the same as the above-described steps S130-S160, there is! /, S130-S150, S170, the data of the address X is stored in the cache memory C1. Therefore, if the processor P1 requests access to the address X after this, it is not necessary to transfer data from the main memory MM or the cache memory of another processor, so the latency can be reduced. In addition, in the case of an instruction that moves a cache line, the data at address X shared by the processors P0 and P1 does not remain in the cache memory CO. This makes it easy to manage the consistency of shared data.
  • the cache operation controller CCNT0 continues the entry corresponding to the read cache line in the cache memory CO after step S120. Leave enabled. In other words, the data in the transfer source cache memory CO is transferred to the transfer destination cache memory C1 while remaining in the cache memory CO. Also in this case, since the operation for the cache memory C1 is the same as the above-described steps S130-S160, there is! /, S130-S150, S170, the data of the address X is stored in the cache memory C1.
  • the processor P1 requests access to the address X after this, it is not necessary to transfer data from the main memory MM or the cache memory of another processor, so the latency can be reduced.
  • the data at address X is still stored in the cache memory CO. Therefore, the latency when processor P0 accesses the data at address X again can be reduced.
  • the operation of replacing the cache line is the same as the conventional method. For example, when a cache line is stored in step S160 and there is a cache line to be replaced, the cache line to be replaced is discarded. However, in the case of “replaced cache line power dirty”, the cache line to be replaced is written back to the lower main memory MM.
  • FIG. 3 shows the operation when transferring data in the multiprocessor system shown in FIG. An example of the work is shown.
  • Operations ( a ) to (g) in the figure correspond to the operations of steps S100, S110, S120, S130, S140, S150, and S160 in FIG. 2, respectively.
  • ( ⁇ ) ⁇ and address X data are shown.
  • the broken lines in the figure indicate the flow of communication that controls data transfer.
  • the solid line shows the data flow.
  • the processor 0 issues an instruction to the cache memory CO to transfer the cache line including the address X from the cache memory CO to the cache memory C1 (FIG. 3 (a)).
  • the cache operation determination circuit CJ0 of the cache operation controller CCNT0 determines whether address X is a cache hit or a cache miss (Fig. 3 (b)). Since the cache memory CO stores the data at the address X, a cache hit occurs.
  • the transmission controller SCNT0 of the cache operation controller CCN TO reads the cache line including the address X from the cache memory CO (Fig. 3 (c)).
  • the transmission control unit SCNT0 transmits the read cache line to the inter-cache connection controller ICCNT (Fig. 3 (d)).
  • the inter-cache connection controller ICCNT sends the received cache line to the reception controller RCNT1 of the cache operation controller CCNT1 (Fig. 3 (e)).
  • Cache hit determination circuit CJ1 of the cache operation controller CCNT1 determines whether address X is a cache hit or a cache miss ( Figure 3 (f)).
  • the cache memory C1 does not store the data at address X, so a cache miss occurs.
  • the reception control unit RCNT1 stores the received cache line in the cache memory C1 (Fig. 3 (g)).
  • the processor P1 requests to read the address X (FIG. 3 (h)).
  • the data at the address X is already stored in the cache memory C1 by the operations (a) to (g) described above, and the cache memory C1 hits the cache (FIG. 3 (i)).
  • the cache memory C1 immediately returns the data at the address X to the processor P1 (Fig. 3 (j)). Therefore, it is not necessary to transfer data from the main memory MM or the cache memory of another processor after the processor P1 requests to read the address X, so the latency can be reduced.
  • Figure 4 shows another example of the operation when transferring data in the multiprocessor system shown in Figure 1.
  • Operations (a) to (g) in the figure correspond to the operations of steps S100, S110, S200, S210, S220, S230, and S160 in FIG. 2, respectively.
  • the meaning of the arrows in the figure is the same as in Figure 3.
  • the processor PO issues an instruction for transferring the cache line including the address X from the cache memory CO to the cache memory C1 to the cache memory CO (FIG. 4 (a)).
  • the cache operation determination circuit CJ0 of the cache operation controller CCNT0 determines whether address X is a cache hit or a cache miss (Fig. 4 (b)). Since the cache memory CO does not store the data at the address X, a cache miss occurs.
  • the cache operation controller CCN TO notifies the cache miss to the inter-cache connection controller ICCNT (Fig. 4 (c)).
  • the inter-cache connection controller ICCNT requests the cache memory C1 to store the cache line including the address X (Fig. 4 (d)).
  • Cache hit determination circuit CJ1 of the cache operation controller CCNT1 determines whether address X is a cache hit or a cache miss ( Figure 4 (e)).
  • the cache memory C1 does not store the data at address X, so a cache miss occurs.
  • the cache operation controller CCNT1 requests the inter-cache connection controller ICC NT to read the address X.
  • the inter-cache connection controller ICCNT requests the main memory MM to read the address X (Fig. 4 (f)).
  • the inter-cache connection controller ICCNT transmits the cache line including the address X read from the main memory MM to the reception control unit RCNT1 of the cache operation controller CCNT1.
  • the reception control unit RCNT1 stores the received cache line in the cache memory C1 (Fig.
  • FIG. 5 shows a comparative example of the present invention.
  • the cache operation controllers CCNTO, CCNTl, and CCNT2 of the multiprocessor system of the comparative example have external access monitoring units SO, Sl, and S2 that monitor accesses between cache memories, respectively.
  • the cache memory CO stores the data of the address X
  • the cache memory C1 does not store the data of the address X (the same as the initial state in FIG. 3).
  • processor P 1 requests access to address X.
  • the meaning of the arrows in the figure is the same as in Figure 3.
  • the processor P1 requests to read the address X (Fig. 5 (a)).
  • Cache operation controller CCNT1 cache hit determination circuit CJ1 determines whether address X is a cache hit or a cache miss.
  • Cache memory C1 does not store the data at address X, so a cache miss occurs.
  • the cache operation controller CCNT1 requests the main memory MM to read address X via the inter-cache connection controller ICCNT (Fig. 5 (b)).
  • the external access monitoring units SO and S2 of the cache operation controllers CCNTO and CCNT2 detect the read request of the address X to the main memory MM (Fig. 5 (c)).
  • the external access monitoring unit SO Disables the read request of address X from the controller CCNTl to the main memory MM. Since the read request for the address X to the main memory MM is invalidated, the external access monitoring unit SO sends the cache line including the address X to the cache memory CO power cache memory C1 to the transmission control unit SCNT0 of the cache operation controller CCNT0. Issue the instruction to transfer (Fig. 5 (d)).
  • the transmission control unit SCNT0 reads the cache line including the address X from the cache memory CO (Fig. 5 (e)).
  • the transmission control unit SCNT0 transmits the read cache line to the inter-cache connection controller ICCNT (Fig. 5 (f)).
  • Inter-cache connection controller ICCNT sends the received cache line to the reception controller RCNT1 of the cache operation controller CCNT 1 (Fig. 5 (g)).
  • the reception control unit RCNT1 stores the received cache line in the cache memory C1 (FIG. 5 (h)). Thereafter, the cache memory C1 returns the data at the address X to the processor P1 (FIG. 5 (i)). In this way, after the processor P1 requests to read the address X, the data of the address X is stored in the cache memory C1. Therefore, the latency when processor P1 requests to read address X increases. Further, since the external access monitoring units S0 and S2 constantly monitor accesses to the main memory MM, the bus traffic increases.
  • FIG. 6 shows another comparative example of the present invention.
  • the cache operation controllers CCNT0, CCNTl, and CCNT2 of the multiprocessor system of the comparative example have external access monitoring units S0, Sl, and S2 that monitor accesses between cache memories.
  • the cache memory C0, Cl, C2 does not store the data at address X (the same as the initial state in Fig. 4). In this state, processor P1 requests access to address X.
  • the meaning of the arrows in the figure is the same as in Figure 3.
  • the processor P1 requests to read the address X (Fig. 6 (a)).
  • Cache operation controller CCNT1 cache hit determination circuit CJ1 determines whether address X is a cache hit or a cache miss.
  • Cache memory C1 does not store the data at address X, so a cache miss occurs.
  • the cache operation controller CCNT1 requests the main memory MM to read address X via the inter-cache connection controller ICCNT (Fig. 6 (b)).
  • the external access monitoring units S0 and S2 of the cache operation controllers CCNT0 and CCNT2 detect a read request for the address X to the main memory MM (Fig. 6 (c)).
  • the inter-cache connection controller ICCNT transmits the cache line including the address X read from the main memory MM power to the reception control unit RCNT1 of the cache operation controller CCNT1 (FIG. 6 (d)).
  • the reception control unit RCNT 1 stores the received cache line in the cache memory C1 (FIG. 6 (e)). Thereafter, the cache memory C1 returns the data at the address X to the processor P1 (FIG. 6 (f)).
  • the processor PO before the processor P1 requests access to the address X, the processor PO sends a cache line including the address X to the cache memory CO from the cache memory CO to the cache memory C1. Can issue instructions to transfer to Thus, before the processor P1 requests access to the address X, the data at the address X is stored in the cache memory C1. Therefore, the latency can be reduced as compared with the conventional method in which the data is transferred from the main memory MM or the cache memory of another processor after the processor P1 requests access to the address X. In addition, since communication between cache memories is performed only when instructions are executed, bus traffic between cache memories can be reduced.
  • a cache memory C3 shared by the processors PO, P1, and P2 may be provided as a lower-level memory.
  • the inter-cache connection controller ICCNT first requests the cache memory C3 higher in the hierarchy than the main memory MM to read the address X. Therefore, when the data at the address X is stored in the cache memory C3, the operation can be performed faster than accessing the main memory MM. This In this case, the data at the address X is stored in the cache memory C1 by the instruction to transfer the cache line of the processor P0.
  • the present invention can be applied to a multiprocessor system having a cache memory.

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

マノレチプロセッサシステムおよびマノレチプロセッサシステムの動作方法 技術分野
[0001] 本発明は、マルチプロセッサシステムおよびマルチプロセッサシステムの動作方法 に関する。
背景技術
[0002] 一般に、プロセッサシステムでは、プロセッサとメインメモリの間に高速なキャッシュメ モリを搭載する方式がとられている。これにより、プロセッサと主記憶装置であるメイン メモリの動作速度のバランスがとられる。また、高い処理性能が要求されるシステムで は、複数のプロセッサを使用するマルチプロセッサシステムが構築される。複数のプ 口セッサ力 Sメインメモリをアクセスするマルチプロセッサシステムでは、例えば、キヤッ シュメモリは、プロセッサごとに搭載され、各キャッシュメモリは、他のキャッシュメモリと 同じデータを共有しているかどうかを互いに監視する(例えば、特許文献 1参照)。 特許文献 1:特開平 4 92937号公報
発明の開示
発明が解決しょうとする課題
[0003] この種のマルチプロセッサシステムでは、各キャッシュメモリは、他のプロセッサから のデータのアクセス要求に対して、アクセス対象のデータを共有して!/、るかどうかを 常に監視する。このため、監視のための通信が増加し、キャッシュメモリ間のノ スの利 用量 (トラフィック)が増加する。さらには、プロセッサ数が増えると、監視するキヤッシ ュメモリと監視されるキャッシュメモリがそれぞれ増えるので、ハードウェアが複雑にな る。このため、マルチプロセッサシステムを構築するための設計が難しい。また、一方 のプロセッサが他方のプロセッサのキャッシュメモリに格納されているデータを読み出 すとき、例えば、データが格納されているキャッシュメモリは、データを読み出すプロ セッサのキャッシュメモリにデータを複製する。その後に、読み出しを要求したプロセ ッサは、そのデータが複製されたキャッシュメモリからデータを受け取る。このため、プ 口セッサがキャッシュメモリにアクセスを要求してからデータを受け取るまでの遅延時 間(レイテンシ)は、大きくなる。
[0004] 本発明の目的は、キャッシュメモリ間のバスのトラフィックを軽減し、複数のプロセッ サで共有しているデータに対するアクセスのレイテンシを小さくすることである。
課題を解決するための手段
[0005] 本発明では、マルチプロセッサシステムは、複数のプロセッサとプロセッサにそれぞ れ対応するキャッシュメモリとキャッシュコントローラを有している。データの転送元の キャッシュメモリに対応するプロセッサは、データの転送元のキャッシュメモリにデータ を転送する命令を発行する。この命令に応答して、キャッシュコントローラは、転送す るデータが含まれるキャッシュラインを他のプロセッサのキャッシュメモリに転送する。 この転送により、転送元のデータが含まれたキャッシュラインが転送先のキャッシュメ モリに格納される。ここで、データの転送は、データの移動もしくはデータの複製を意 味する。データの転送先のキャッシュメモリに対応しているプロセッサ力 転送された データにアクセス要求を出した場合、そのプロセッサのキャッシュメモリにアクセス対 象のデータが既に格納されているので、レイテンシを小さくできる。また、キャッシュメ モリ間の通信は、命令の実行時のみ行われるので、キャッシュメモリ間のバスのトラフ イツクを軽減できる。
発明の効果
[0006] キャッシュメモリ間のバスのトラフィックを軽減し、複数のプロセッサで共有している データに対するアクセスのレイテンシを小さくできる。
図面の簡単な説明
[0007] [図 1]本発明の実施形態を示すブロック図である。
[図 2]図 1に示したマルチプロセッサシステムの動作の一例を示すフローチャートであ る。
[図 3]図 1に示したマルチプロセッサシステムにおけるデータを転送するときの動作の 一例を示す説明図である。
[図 4]図 1に示したマルチプロセッサシステムにおけるデータを転送するときの動作の 別の例を示す説明図である。
[図 5]本発明におけるデータを転送するときの動作の比較例を示す説明図である。 [図 6]本発明におけるデータを転送するときの動作の別の比較例を示す説明図であ る。
[図 7]本発明の別の例を示すブロック図である。
発明を実施するための最良の形態
[0008] 以下、本発明の実施形態を図面を用いて説明する。
図 1は、本発明の実施形態を示している。マルチプロセッサシステムは、プロセッサ PO、 Pl、 P2、キャッシュメモリ CO、 Cl、 C2、キャッシュ動作コントローラ CCNTO、 C CNT1、 CCNT2、キャッシュ間接続コントローラ ICCNTおよびメインメモリ MMを有 している。さらに、キャッシュ動作コントローラ CCNTO、 CCNT1、 CCNT2は、キヤッ シュヒット判定回路 CJO、 CJ1、 CJ2、送信制御回路 SCNTO、 SCNT1、 SCNT2およ び受信制御回路 RCNTO、 RCNT1、 RCNT2をそれぞれ有している。プロセッサ PO 、 Pl、 P2は、それぞれキャッシュメモリ CO、 Cl、 C2に直接接続されている。キヤッシ ュメモリ CO、 Cl、 C2は、それぞれキャッシュ動作コントローラ CCNTO、 CCNT1、 C CNT2に接続されている。キャッシュ間接続コントローラ ICCNTは、キャッシュ動作コ ントローラ CCNTO、 CCNT1、 CCNT2およびメインメモリ MMに接続されている。
[0009] キャッシュ動作コントローラ CCNTO、 CCNT1、 CCNT2は、従来と同様に、キヤッ シュヒット判定などのキャッシュメモリの動作を制御する。さらに、キャッシュ動作コント ローラ CCNTO、 CCNT1、 CCNT2は、対応するプロセッサ PO、 Pl、 P2からの転送 命令に応答して、他のプロセッサのキャッシュメモリに、キャッシュ間接続コントローラ I CCNTを経由してキャッシュラインを転送する。ここで、対応するプロセッサ PO、 Pl、 P2からの転送命令は、転送命令を発行したプロセッサのキャッシュメモリから他のプ 口セッサのキャッシュメモリにデータを転送する命令である。また、転送命令で転送さ れるデータは、上述のキャッシュラインに含まれている。キャッシュ間接続コントローラ ICCNTは、キャッシュメモリ CO、 Cl、 C2間のキャッシュラインの転送を制御する。す なわち、キャッシュ動作コントローラ CCNTO、 CCNT1、 CCNT2とキャッシュ間接続 コントローラ ICCNTは、転送命令に応答して、転送するデータが含まれるキャッシュ ラインを他のプロセッサのキャッシュメモリに転送するキャッシュコントローラとして機能 する。 [0010] メインメモリ MMは、プロセッサ P0、 Pl、 P2が共有して使用する主記憶装置である 。本実施形態では、メインメモリ MMは、階層が一番低い共有メモリである。
図 2は、図 1に示したマルチプロセッサシステムの動作の一例を示している。この例 では、プロセッサ P0、 PIは、アドレス Xのデータを共有している。ここで、アドレス Xは 、メインメモリ MM内のアドレスを示している。
[0011] まず、プロセッサ P0は、キャッシュメモリ COに対して、アドレス Xを含むキャッシュライ ンをキャッシュメモリ COからキャッシュメモリ C1に転送する命令を発行する(ステップ S 100)。キャッシュ動作コントローラ CCNT0は、アドレス Xがキャッシュヒットかキヤッシ ユミスかを判定する (ステップ S 110)。
ステップ S 110でキャッシュヒットの場合、キャッシュ動作コントローラ CCNT0は、キ ャッシュメモリ COからアドレス Xを含むキャッシュラインを読み出す (ステップ S 120)。 キャッシュ動作コントローラ CCNT0は、読み出したキャッシュラインをキャッシュ間接 続コントローラ ICCNTに送信する (ステップ S130)。キャッシュ間接続コントローラ IC CNTは、受信したキャッシュラインをキャッシュ動作コントローラ CCNT1に送信する( ステップ S 140)。
[0012] キャッシュ動作コントローラ CCNT1は、アドレス Xがキャッシュヒットかキャッシュミス かを判定する(ステップ S 150)。ステップ S 150でキャッシュミスの場合、キャッシュ動 作コントローラ CCNT1は、受信したキャッシュラインをキャッシュメモリ C1に格納する (ステップ S160)。これにより、アドレス Xのデータは、キャッシュメモリ C1に格納される 。したがって、この後にプロセッサ P1がアドレス Xのアクセスを要求した場合、メインメ モリ MMある!/、は他のプロセッサのキャッシュメモリ力 データを転送する必要がな!ヽ ので、レイテンシを小さくできる。
[0013] ステップ S 150でキャッシュヒットの場合、キャッシュ動作コントローラ CCNT1は、受 信したキャッシュラインをキャッシュメモリ C1のキャッシュヒットしたキャッシュラインに上 書きする (ステップ S 170)。
受信したキャッシュライン力 ダーティ"の場合、上書きしたキャッシュラインの"ダー ティビッド,も更新する。ここで、 "ダーティ"は、階層が上位のキャッシュメモリに格納さ れているデータのみ更新して、階層が下位のメインメモリ MMにあるデータを更新し ていない状態である。また、 "ダーティビッド 'は、そのキャッシュラインが"ダーティ"で ある力否かを示す指示フラグである。ステップ S 170で、キャッシュラインを上書きする ことにより、プロセッサ P1が古いデータを演算対象にしてしまう不都合を解消できる。 この結果、マルチプロセッサシステムの誤動作を防止できる。
[0014] 一方、ステップ S 110でキャッシュミスの場合、キャッシュ動作コントローラ CCNT0は 、キャッシュ間接続コントローラ ICCNTにキャッシュミスを通知する(ステップ S 200)。 キャッシュ間接続コントローラ ICCNTは、キャッシュメモリ C1にアドレス Xを含むキヤッ シュラインの格納を要求する(ステップ S210)。キャッシュ動作コントローラ CCNT1は 、アドレス Xがキャッシュヒットかキャッシュミスかを判定する(ステップ S220)。
[0015] ステップ S220でキャッシュミスの場合、キャッシュ動作コントローラ CCNT1は、キヤ ッシュ間接続コントローラ ICCNTにアドレス Xのリードを要求する。引き続き、キヤッシ ュ間接続コントローラ ICCNTは、メインメモリ MMにアドレス Xのリードを要求する(ス テツプ S230)。キャッシュ間接続コントローラ ICCNTは、アドレス Xのデータが含まれ るデータをキャッシュラインのサイズ分だけ読み出す。キャッシュ間接続コントローラ I CCNTは、読み出したデータをキャッシュ動作コントローラ CCNT1に送信する。キヤ ッシュ動作コントローラ CCNT1は、受信したデータをキャッシュメモリ C1に格納する( ステップ S160)。これにより、アドレス Xのデータがキャッシュメモリ COに格納されてい ない場合でも、アドレス Xのデータは、キャッシュメモリ C1に格納される。したがって、 この後にプロセッサ P1がアドレス Xのアクセスを要求した場合、メインメモリ MMあるい は他のプロセッサのキャッシュメモリからデータを転送する必要がな 、ので、レイテン シを小さくできる。
[0016] ステップ S220でキャッシュヒットの場合、アドレス Xのデータは、キャッシュメモリ C1 に既に格納されている。キャッシュ動作コントローラ CCNT1は、何もせずにそのまま 動作を終了し、キャッシュメモリの状態を保持する (ステップ S240)。この場合、キヤッ シュメモリ間でのデータの転送が発生しないので、キャッシュメモリ間のバスのトラフィ ックを軽減できる。
[0017] また、ステップ S 100のキャッシュラインを転送する命令力 キャッシュラインを移動 する命令の場合、キャッシュ動作コントローラ CCNT0は、ステップ S120の後に、キヤ ッシュメモリ COの読み出されたキャッシュラインに対応するエントリを無効にする。す なわち、転送元のキャッシュメモリ COのデータをキャッシュメモリ COに残すことなぐ 転送先のキャッシュメモリ C1に転送する。この場合も、キャッシュメモリ C1に対する動 作は、上述のステップ S130— S160、ある!/、は S130— S150、 S170と同じなので、 アドレス Xのデータは、キャッシュメモリ C1に格納される。したがって、この後にプロセ ッサ P1がアドレス Xのアクセスを要求した場合、メインメモリ MMあるいは他のプロセッ サのキャッシュメモリからデータを転送する必要がな 、ので、レイテンシを小さくできる 。また、キャッシュラインを移動する命令の場合、プロセッサ P0とプロセッサ P1で共有 しているアドレス Xのデータは、キャッシュメモリ COに残らない。したがって、共有して いるデータの一致性に関する管理を簡単にできる。
[0018] ステップ S 100のキャッシュラインを転送する命令がキャッシュラインを複製する命令 の場合、キャッシュ動作コントローラ CCNT0は、ステップ S120の後も、キャッシュメモ リ COの読み出されたキャッシュラインに対応するエントリを有効のままにしておく。す なわち、転送元のキャッシュメモリ COのデータをキャッシュメモリ COに残した状態で、 転送先のキャッシュメモリ C1に転送する。この場合も、キャッシュメモリ C1に対する動 作は、上述のステップ S130— S160、ある!/、は S130— S150、 S170と同じなので、 アドレス Xのデータは、キャッシュメモリ C1に格納される。したがって、この後にプロセ ッサ P1がアドレス Xのアクセスを要求した場合、メインメモリ MMあるいは他のプロセッ サのキャッシュメモリからデータを転送する必要がな 、ので、レイテンシを小さくできる 。また、キャッシュラインを複製する命令の場合、アドレス Xのデータは、キャッシュメモ リ COに格納されたままである。したがって、プロセッサ P0がアドレス Xのデータを再度 アクセスしたときのレイテンシを小さくできる。
[0019] 上述の動作フローでは説明していないが、キャッシュラインをリプレースする動作は 、従来の方式と同様である。例えば、ステップ S 160で、キャッシュラインを格納したと きに、リプレースされるキャッシュラインがある場合、リプレースされるキャッシュライン を破棄する。但し、リプレースされるキャッシュライン力 ダーティ"の場合、階層が下 位のメインメモリ MMにリプレースされるキャッシュラインを書き戻す。
[0020] 図 3は、図 1に示したマルチプロセッサシステムにおけるデータを転送するときの動 作の一例を示している。図中の動作(a) - (g)は、図 2のステップ S100、 S110、 S12 0、 S130、 S140、 S150、 S160の動作にそれぞれ対応する。図中の(Χ) ίま、ァドレ ス Xのデータを示している。図中の破線は、データの転送を制御する通信の流れを 示している。実線は、データの流れを示している。
[0021] プロセッサ Ρ0は、キャッシュメモリ COに対して、アドレス Xを含むキャッシュラインを キャッシュメモリ COからキャッシュメモリ C1に転送する命令を発行する(図 3 (a) )。キ ャッシュ動作コントローラ CCNT0のキャッシュヒット判定回路 CJ0は、アドレス Xがキヤ ッシュヒットかキャッシュミスかを判定する(図 3 (b) )。キャッシュメモリ COは、アドレス X のデータを格納しているので、キャッシュヒットする。キャッシュ動作コントローラ CCN TOの送信制御部 SCNT0は、キャッシュメモリ COからアドレス Xを含むキャッシュライ ンを読み出す(図 3 (c) )。送信制御部 SCNT0は、読み出したキャッシュラインをキヤ ッシュ間接続コントローラ ICCNTに送信する(図 3 (d) )。キャッシュ間接続コントロー ラ ICCNTは、受信したキャッシュラインをキャッシュ動作コントローラ CCNT1の受信 制御部 RCNT1に送信する(図 3 (e) )。キャッシュ動作コントローラ CCNT1のキヤッ シュヒット判定回路 CJ1は、アドレス Xがキャッシュヒットかキャッシュミスかを判定する( 図 3 (f) )。キャッシュメモリ C1は、アドレス Xのデータを格納していないので、キヤッシ ュミスする。受信制御部 RCNT1は、受信したキャッシュラインをキャッシュメモリ C1に 格納する(図 3 (g) )。
[0022] この後に、プロセッサ P1は、アドレス Xのリードを要求する(図 3 (h) )。この場合、上 述の動作(a)—(g)により、アドレス Xのデータは、キャッシュメモリ C1に既に格納され ているので、キャッシュメモリ C1は、キャッシュヒットする(図 3 (i) )。キャッシュメモリ C1 は、アドレス Xのデータをプロセッサ P1に直ちに返送する(図 3 (j) )。したがって、プロ セッサ P1がアドレス Xのリードを要求した後に、メインメモリ MMあるいは他のプロセッ サのキャッシュメモリからデータを転送する必要がな 、ので、レイテンシを小さくできる
[0023] 一方、図 3には示していないが、動作 (f)の時点で、キャッシュメモリ C1にアドレス X のデータが格納されている場合、キャッシュメモリ C1は、キヤシュヒットする。受信制御 咅RCNT1は、受信したキャッシュラインをキャッシュメモリ C1のキャッシュヒットしたキ ャッシユラインに上書きする。これ ίま、図 2のステップ S100、 S110、 S120、 S130、 S 140、 S150、 S170の動作に対応する。この場合も、プロセッサ P1がアドレス Xのリー ドを要求した後に、メインメモリ MMあるいは他のプロセッサのキャッシュメモリ力らデ ータを転送する必要がないので、レイテンシを小さくできる。また、キャッシュラインを 上書きすることにより、プロセッサ P 1が古 ヽデータを演算対象にしてしまう不都合を 解消できる。この結果、マルチプロセッサシステムの誤動作を防止できる。
図 4は、図 1に示したマルチプロセッサシステムにおけるデータを転送するときの動 作の別の例を示している。図中の動作(a) - (g)は、図 2のステップ S100、 S110、 S 200、 S210、 S220、 S230、 S160の動作にそれぞれ対応する。図中の矢印の意味 は、図 3と同じである。
プロセッサ POは、キャッシュメモリ COに対して、アドレス Xを含むキャッシュラインを キャッシュメモリ COからキャッシュメモリ C1に転送する命令を発行する(図 4 (a) )。キ ャッシュ動作コントローラ CCNT0のキャッシュヒット判定回路 CJ0は、アドレス Xがキヤ ッシュヒットかキャッシュミスかを判定する(図 4 (b) )。キャッシュメモリ COは、アドレス X のデータを格納していないので、キャッシュミスする。キャッシュ動作コントローラ CCN TOは、キャッシュ間接続コントローラ ICCNTにキャッシュミスを通知する(図 4 (c) )。 キャッシュ間接続コントローラ ICCNTは、キャッシュメモリ C1にアドレス Xを含むキヤッ シュラインの格納を要求する(図 4 (d) )。キャッシュ動作コントローラ CCNT1のキヤッ シュヒット判定回路 CJ1は、アドレス Xがキャッシュヒットかキャッシュミスかを判定する( 図 4 (e) )。キャッシュメモリ C1は、アドレス Xのデータを格納していないので、キヤッシ ュミスする。キャッシュ動作コントローラ CCNT1は、キャッシュ間接続コントローラ ICC NTにアドレス Xのリードを要求する。引き続き、キャッシュ間接続コントローラ ICCNT は、メインメモリ MMにアドレス Xのリードを要求する(図 4 (f) )。キャッシュ間接続コン トローラ ICCNTは、メインメモリ MMから読み出したアドレス Xを含むキャッシュライン をキャッシュ動作コントローラ CCNT1の受信制御部 RCNT1に送信する。受信制御 部 RCNT1は、受信したキャッシュラインをキャッシュメモリ C1に格納する(図 4 (g) )。 これにより、アドレス Xのデータがキャッシュメモリ COに格納されていない場合でも、ァ ドレス Xのデータは、キャッシュメモリ C1に格納される。 [0025] この後に、プロセッサ PIは、アドレス Xのリードを要求する(図 4 (h) )。この場合、上 述の動作(a)—(g)により、アドレス Xのデータは、キャッシュメモリ C1に既に格納され ているので、キャッシュメモリ C1は、キャッシュヒットする(図 3 (i) )。キャッシュメモリ C1 は、アドレス Xのデータをプロセッサ P1に直ちに返送する(図 3 (j) )。この場合も、プロ セッサ P1がアドレス Xのリードを要求した後に、メインメモリ MMあるいは他のプロセッ サのキャッシュメモリからデータを転送する必要がな 、ので、レイテンシを小さくできる
[0026] 一方、図 4には示していないが、動作(e)の時点で、キャッシュメモリ C1にアドレス X のデータが格納されている場合、キャッシュメモリ C1は、キヤシュヒットする。キヤッシ ュ動作コントローラ CCNT1は、何もせずにそのまま動作を終了し、キャッシュメモリ C 1の状態を変えることなく保持する。これは、図 2のステップ S100、 S110、 S200、 S2 10、 S220、 S240の動作に対応する。キャッシュメモリ間でのデータの転送が発生し ないので、キャッシュメモリ間のバスのトラフィックを軽減できる。
[0027] 図 5は、本発明の比較例を示している。比較例のマルチプロセッサシステムのキヤッ シュ動作コントローラ CCNTO、 CCNTl, CCNT2は、キャッシュメモリ間のアクセス を監視する外部アクセス監視部 SO、 Sl、 S 2をそれぞれ有している。この例では、キ ャッシュメモリ COは、アドレス Xのデータを格納していて、キャッシュメモリ C1は、アド レス Xのデータを格納していない(図 3の初期状態と同じ)。この状態で、プロセッサ P 1がアドレス Xのアクセスを要求した場合を示している。図中の矢印の意味は、図 3と 同じである。
[0028] プロセッサ P1は、アドレス Xのリードを要求する(図 5 (a) )。キャッシュ動作コントロー ラ CCNT1のキャッシュヒット判定回路 CJ1は、アドレス Xがキャッシュヒットかキャッシュ ミスかを判定する。キャッシュメモリ C1は、アドレス Xのデータを格納していないので、 キャッシュミスする。キャッシュ動作コントローラ CCNT1は、キャッシュ間接続コント口 ーラ ICCNTを経由して、メインメモリ MMにアドレス Xのリードを要求する(図 5 (b) )。 キャッシュ動作コントローラ CCNTO、 CCNT2の外部アクセス監視部 SO、 S2は、メイ ンメモリ MMへのアドレス Xのリード要求を検出する(図 5 (c) )。キャッシュメモリ COは 、アドレス Xのデータを格納しているので、外部アクセス監視部 SOは、キャッシュ動作 コントローラ CCNTlからメインメモリ MMへのアドレス Xのリード要求を無効にする。メ インメモリ MMへのアドレス Xのリード要求を無効にしたので、外部アクセス監視部 SO は、キャッシュ動作コントローラ CCNT0の送信制御部 SCNT0に、アドレス Xを含む キャッシュラインをキャッシュメモリ CO力 キャッシュメモリ C1に転送する命令を発行 する(図 5 (d) )。送信制御部 SCNT0は、キャッシュメモリ COからアドレス Xを含むキヤ ッシユラインを読み出す(図 5 (e) )。送信制御部 SCNT0は、読み出したキャッシュラ インをキャッシュ間接続コントローラ ICCNTに送信する(図 5 (f) )。キャッシュ間接続 コントローラ ICCNTは、受信したキャッシュラインをキャッシュ動作コントローラ CCNT 1の受信制御部 RCNT1に送信する(図 5 (g) )。受信制御部 RCNT1は、受信したキ ャッシユラインをキャッシュメモリ C1に格納する(図 5 (h) )。この後に、キャッシュメモリ C1は、アドレス Xのデータをプロセッサ P1に返送する(図 5 (i) )。このように、プロセッ サ P1がアドレス Xのリードを要求してから、キャッシュメモリ C1にアドレス Xのデータを 格納する。したがって、プロセッサ P1がアドレス Xのリードを要求したときのレイテンシ は、大きくなる。また、外部アクセス監視部 S0、 S2は、メインメモリ MMに対するァク セスを常に監視しているので、バスのトラフィックは、増加する。
[0029] 図 6は、本発明の別の比較例を示している。比較例のマルチプロセッサシステムの キャッシュ動作コントローラ CCNT0、 CCNTl、 CCNT2は、キャッシュメモリ間のァク セスを監視する外部アクセス監視部 S0、 Sl、 S2を有している。この例では、キヤッシ ュメモリ C0、 Cl、 C2は、アドレス Xのデータを格納していない(図 4の初期状態と同じ )。この状態で、プロセッサ P1がアドレス Xのアクセスを要求した場合を示している。図 中の矢印の意味は、図 3と同じである。
[0030] プロセッサ P1は、アドレス Xのリードを要求する(図 6 (a) )。キャッシュ動作コントロー ラ CCNT1のキャッシュヒット判定回路 CJ1は、アドレス Xがキャッシュヒットかキャッシュ ミスかを判定する。キャッシュメモリ C1は、アドレス Xのデータを格納していないので、 キャッシュミスする。キャッシュ動作コントローラ CCNT1は、キャッシュ間接続コント口 ーラ ICCNTを経由して、メインメモリ MMにアドレス Xのリードを要求する(図 6 (b) )。 キャッシュ動作コントローラ CCNT0、 CCNT2の外部アクセス監視部 S0、 S2は、メイ ンメモリ MMへのアドレス Xのリード要求を検出する(図 6 (c) )。し力し、キャッシュメモ リ C0、 C2は、アドレス Xのデータを格納していないので、外部アクセス監視部 SO、 S2 は、キャッシュ動作コントローラ CCNT1、キャッシュ間接続コントローラ ICCNTおよ びメインメモリ MMの動作に、割り込まない。キャッシュ間接続コントローラ ICCNTは 、メインメモリ MM力 読み出したアドレス Xを含むキャッシュラインをキャッシュ動作コ ントローラ CCNT1の受信制御部 RCNT1に送信する(図 6 (d) )。受信制御部 RCNT 1は、受信したキャッシュラインをキャッシュメモリ C1に格納する(図 6 (e) )。この後に、 キャッシュメモリ C1は、アドレス Xのデータをプロセッサ P1に返送する(図 6 (f) )。図 5 の場合と同様に、プロセッサ P1がアドレス Xのリードを要求してから、キャッシュメモリ C1にアドレス Xのデータを格納する。したがって、プロセッサ P1がアドレス Xのリード を要求したときのレイテンシは、大きくなる。この場合も、外部アクセス監視部 SO、 S2 は、メインメモリ MMに対するアクセスを常に監視しているので、バスのトラフィックは、 増加する。
[0031] 以上、本発明の実施形態では、プロセッサ P1がアドレス Xのアクセスを要求する前 に、プロセッサ POは、キャッシュメモリ COに対して、アドレス Xを含むキャッシュライン をキャッシュメモリ COからキャッシュメモリ C1に転送する命令を発行できる。これによ つて、プロセッサ P1がアドレス Xのアクセスを要求する前に、アドレス Xのデータは、キ ャッシュメモリ C1に格納される。したがって、プロセッサ P1がアドレス Xのアクセスを要 求した後に、メインメモリ MMあるいは他のプロセッサのキャッシュメモリからデータを 転送する従来方式に比べて、レイテンシを小さくできる。また、キャッシュメモリ間の通 信は、命令の実行時のみ行われるので、キャッシュメモリ間のバスのトラフィックを軽 減できる。
[0032] 上述した実施形態では、図 2のステップ S230でメインメモリ MMにアドレス Xのリー ドを要求する例について述べた。本発明は、かかる実施形態に限定されるものでは ない。例えば、図 7に示されるように、階層が下位のメモリとして、各プロセッサ PO、 P 1、 P2に共有されるキャッシュメモリ C3を設けてもよい。この場合、キャッシュ間接続コ ントローラ ICCNTは、メインメモリ MMより階層が上位のキャッシュメモリ C3にアドレス Xのリードをまず要求する。したがって、アドレス Xのデータがキャッシュメモリ C3に格 納されている場合、メインメモリ MMにアクセスするより高速な動作が可能になる。こ の場合にも、プロセッサ P0のキャッシュラインを転送する命令によって、アドレス Xの データは、キャッシュメモリ C1に格納される。したがって、プロセッサ P1がアドレス の アクセスを要求したとき、インメモリ MMあるいは他のプロセッサのキャッシュメモリから データを転送する必要がないので、レイテンシを小さくできる。また、この転送の命令 実行時のみキャッシュメモリ間で通信するので、キャッシュメモリ間のバスのトラフィック を軽減できる。
[0033] 以上、本発明について詳細に説明してきが、上記の実施形態およびその変形例は 発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しな い範囲で変形可能であることは明らかである。
産業上の利用可能性
[0034] 本発明は、キャッシュメモリを持つマルチプロセッサシステムに適用できる。

Claims

請求の範囲
[1] 複数のプロセッサと、
前記プロセッサにそれぞれ対応するキャッシュメモリと、
前記プロセッサのいずれかが、そのプロセッサのキャッシュメモリに対して、転送命 令を発行したことに応答して、転送するデータが含まれるキャッシュラインを他のプロ セッサのキャッシュメモリに転送するキャッシュコントローラとを備え、
前記転送命令は、あるプロセッサのキャッシュメモリから他のプロセッサのキャッシュ メモリにデータを転送する命令であることを特徴とするマルチプロセッサシステム。
[2] 請求項 1記載のマルチプロセッサシステムにお 、て、
前記キャッシュコントローラは、前記転送命令の実行時に、データの転送元および 転送先のキャッシュメモリの両方がキャッシュヒットする場合、転送先のキャッシュヒット したキャッシュラインに転送元のキャッシュヒットしたキャッシュラインを上書きすること を特徴とするマルチプロセッサシステム。
[3] 請求項 1記載のマルチプロセッサシステムにお 、て、
前記キャッシュコントローラを介して前記プロセッサに接続され、前記キャッシュメモ リより階層が低い共有メモリを備え、
前記キャッシュコントローラは、前記転送命令の実行時に、データの転送元および 転送先のキャッシュメモリの両方がキャッシュミスする場合、転送するデータが含まれ るキャッシュラインのデータを前記共有メモリから読み出し、読み出したデータを転送 先のキャッシュメモリに格納することを特徴とするマルチプロセッサシステム。
[4] 請求項 1記載のマルチプロセッサシステムにお 、て、
前記キャッシュコントローラは、前記転送命令の実行時に、データの転送元のキヤッ シュメモリがキャッシュヒットし、転送先のキャッシュメモリがキャッシュミスする場合、転 送元のキヤシュヒットしたキャッシュラインを転送先のキャッシュメモリに格納することを 特徴とするマルチプロセッサシステム。
[5] 請求項 1記載のマルチプロセッサシステムにお 、て、
前記キャッシュコントローラは、前記転送命令の実行時に、データの転送元のキヤッ シュメモリがキャッシュミスし、転送先のキャッシュメモリがキャッシュヒットする場合、転 送元および転送先のキャッシュメモリの状態を変えることなく保持することを特徴とす るマノレチプロセッサシステム。
[6] 請求項 1記載のマルチプロセッサシステムにお 、て、
前記キャッシュコントローラは、前記転送命令に応答して、転送元のキャッシュメモリ のデータをこのキャッシュメモリに残すことなく、転送先のキャッシュメモリに転送する ことを特徴とするマルチプロセッサシステム。
[7] 請求項 1記載のマルチプロセッサシステムにお 、て、
前記キャッシュコントローラは、前記転送命令に応答して、転送元のキャッシュメモリ のデータをこのキャッシュメモリに残した状態で、転送先のキャッシュメモリに転送する ことを特徴とするマルチプロセッサシステム。
[8] 複数のプロセッサと前記プロセッサにそれぞれ対応するキャッシュメモリとを備えた マルチプロセッサシステムの動作方法であって、
前記プロセッサのいずれかが、そのプロセッサのキャッシュメモリに対して、転送命 令を発行したことに応答して、転送するデータが含まれるキャッシュラインを他のプロ セッサのキャッシュメモリに転送し、
前記転送命令は、あるプロセッサのキャッシュメモリから他のプロセッサのキャッシュ メモリにデータを転送する命令であることを特徴とするマルチプロセッサシステムの動 作方法。
[9] 請求項 8記載のマルチプロセッサシステムの動作方法にぉ ヽて、
前記転送命令の実行時に、データの転送元および転送先のキャッシュメモリの両 方がキャッシュヒットする場合、転送先のキャッシュヒットしたキャッシュラインに転送元 のキャッシュヒットしたキャッシュラインを上書きすることを特徴とするマルチプロセッサ システムの動作方法。
[10] 請求項 8記載のマルチプロセッサシステムの動作方法にぉ ヽて、
前記プロセッサは、前記キャッシュメモリより階層が低い共有メモリを共有し、 前記転送命令の実行時に、データの転送元および転送先のキャッシュメモリの両 方がキャッシュミスする場合、転送するデータが含まれるキャッシュラインのデータを 前記共有メモリから読み出し、読み出したデータを転送先のキャッシュメモリに格納す ることを特徴とするマルチプロセッサシステムの動作方法。
[11] 請求項 8記載のマルチプロセッサシステムの動作方法において、
前記転送命令の実行時に、データの転送元のキャッシュメモリがキャッシュヒットし、 転送先のキャッシュメモリがキャッシュミスする場合、転送元のキヤシュヒットしたキヤッ シュラインを転送先のキャッシュメモリに格納することを特徴とするマルチプロセッサシ ステムの動作方法。
[12] 請求項 8記載のマルチプロセッサシステムの動作方法にぉ ヽて、
前記転送命令の実行時に、データの転送元のキャッシュメモリがキャッシュミスし、 転送先のキャッシュメモリがキャッシュヒットする場合、転送元および転送先のキヤッシ ュメモリの状態を変えることなく保持することを特徴とするマルチプロセッサシステムの 動作方法。
[13] 請求項 8記載のマルチプロセッサシステムの動作方法にぉ ヽて、
前記転送命令に応答して、転送元のキャッシュメモリのデータをこのキャッシュメモリ に残すことなく、転送先のキャッシュメモリに転送することを特徴とするマルチプロセッ サシステムの動作方法。
[14] 請求項 8記載のマルチプロセッサシステムの動作方法にぉ ヽて、
前記転送命令に応答して、転送元のキャッシュメモリのデータをこのキャッシュメモリ に残した状態で、転送先のキャッシュメモリに転送することを特徴とするマルチプロセ ッサシステムの動作方法。
PCT/JP2006/306185 2006-03-27 2006-03-27 マルチプロセッサシステムおよびマルチプロセッサシステムの動作方法 WO2007110914A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/306185 WO2007110914A1 (ja) 2006-03-27 2006-03-27 マルチプロセッサシステムおよびマルチプロセッサシステムの動作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/306185 WO2007110914A1 (ja) 2006-03-27 2006-03-27 マルチプロセッサシステムおよびマルチプロセッサシステムの動作方法

Publications (1)

Publication Number Publication Date
WO2007110914A1 true WO2007110914A1 (ja) 2007-10-04

Family

ID=38540854

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/306185 WO2007110914A1 (ja) 2006-03-27 2006-03-27 マルチプロセッサシステムおよびマルチプロセッサシステムの動作方法

Country Status (1)

Country Link
WO (1) WO2007110914A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009110512A (ja) * 2007-10-29 2009-05-21 Internatl Business Mach Corp <Ibm> ネットワークオンチップ、およびネットワークオンチップで以ってデータを処理する方法
WO2024152560A1 (zh) * 2023-01-17 2024-07-25 北京象帝先计算技术有限公司 命令处理系统、电子装置及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03150659A (ja) * 1989-11-08 1991-06-27 Fujitsu Ltd データ転送方式
JPH04195576A (ja) * 1990-11-28 1992-07-15 Nec Corp キャッシュメモリ方式

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03150659A (ja) * 1989-11-08 1991-06-27 Fujitsu Ltd データ転送方式
JPH04195576A (ja) * 1990-11-28 1992-07-15 Nec Corp キャッシュメモリ方式

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009110512A (ja) * 2007-10-29 2009-05-21 Internatl Business Mach Corp <Ibm> ネットワークオンチップ、およびネットワークオンチップで以ってデータを処理する方法
WO2024152560A1 (zh) * 2023-01-17 2024-07-25 北京象帝先计算技术有限公司 命令处理系统、电子装置及电子设备

Similar Documents

Publication Publication Date Title
US7657710B2 (en) Cache coherence protocol with write-only permission
US7120755B2 (en) Transfer of cache lines on-chip between processing cores in a multi-core system
US5752264A (en) Computer architecture incorporating processor clusters and hierarchical cache memories
KR100567099B1 (ko) L2 디렉토리를 이용한 멀티프로세서 시스템의 가-저장촉진 방법 및 장치
KR101014394B1 (ko) 통합 디렉토리 및 프로세서 캐시를 구비한 컴퓨터 시스템
KR101497002B1 (ko) 스누프 필터링 메커니즘
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
US20230214326A1 (en) Computer Memory Expansion Device and Method of Operation
US20080104329A1 (en) Cache and method for cache bypass functionality
KR100267029B1 (ko) 메모리갱신이력보존장치를구비한컴퓨터시스템
US20070005906A1 (en) Information processing apparatus and cache memory control method
US6502171B1 (en) Multiprocessor system bus with combined snoop responses explicitly informing snoopers to scarf data
KR20050070013A (ko) 원격 캐쉬 존재 정보를 저장하는 프로세서 캐쉬를 구비한컴퓨터 시스템
JP4673585B2 (ja) メモリシステム制御装置およびメモリシステム制御方法
KR20040007546A (ko) L2 디렉토리를 이용한 멀티프로세서 시스템의 가-로드촉진 방법 및 장치
KR20030024895A (ko) 캐시 코히어런트 멀티-프로세서 시스템에서 순서화된입출력 트랜잭션을 파이프라이닝하기 위한 방법 및 장치
EP1701267B1 (en) Address snoop method and multi-processor system
US20140006716A1 (en) Data control using last accessor information
JP4577729B2 (ja) ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法
US6928519B2 (en) Mechanism for maintaining cache consistency in computer systems
US7165149B2 (en) Mechanism for starvation avoidance while maintaining cache consistency in computer systems
US10775870B2 (en) System and method for maintaining cache coherency
WO2007110914A1 (ja) マルチプロセッサシステムおよびマルチプロセッサシステムの動作方法
US7136980B2 (en) Computer system implementing synchronized broadcast using skew control and queuing
JP4295815B2 (ja) マルチプロセッサシステムおよびマルチプロセッサシステムの動作方法

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: JP

122 Ep: pct application non-entry in european phase

Ref document number: 06730133

Country of ref document: EP

Kind code of ref document: A1