JP5168800B2 - Multiprocessor system - Google Patents
Multiprocessor system Download PDFInfo
- Publication number
- JP5168800B2 JP5168800B2 JP2006062261A JP2006062261A JP5168800B2 JP 5168800 B2 JP5168800 B2 JP 5168800B2 JP 2006062261 A JP2006062261 A JP 2006062261A JP 2006062261 A JP2006062261 A JP 2006062261A JP 5168800 B2 JP5168800 B2 JP 5168800B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- transfer
- cache
- cache memory
- processor core
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
本発明はマルチプロセッサシステムにおけるキャッシュ間のデータ転送方式に係り、さらに詳しくはマルチプロセッサシステムを構成するプロセッサコアのうちの1つで更新されたデータを、下位メモリ階層を介することなく、他のプロセッサコアのキャッシュに直接に転送することを可能とし、データ移動やキャッシュアクセスのレイテンシを小さくすることができるマルチプロセッサシステムに関する。 The present invention relates to a data transfer method between caches in a multiprocessor system, and more specifically, data updated by one of processor cores constituting the multiprocessor system is transferred to another processor without going through a lower memory hierarchy. The present invention relates to a multiprocessor system that can directly transfer data to a core cache and reduce the latency of data movement and cache access.
処理を複数のプロセッサで分割して並列に実行するマルチプロセッサシステムは、高速な処理を実現するために広範に用いられている。図18は、そのようなマルチプロセッサシステムの従来例の構成ブロック図である。同図において、チップ100上に複数のプロセッサ101aから101dが備えられ、各プロセッサはメインメモリ105とバス106によって接続されている。各プロセッサ101aから101dに対しては、それぞれキャッシュメモリ102aから102dが備えられている。
A multiprocessor system that divides processing by a plurality of processors and executes the processing in parallel is widely used to realize high-speed processing. FIG. 18 is a block diagram showing a conventional example of such a multiprocessor system. In the figure, a plurality of processors 101 a to 101 d are provided on a
図18のようなマルチプロセッサシステムでは、メモリアクセスの平均的性能を向上させるために、各プロセッサに対してそれぞれキャッシュメモリが備えられる、分散キャッシュシステムが用いられる。このような分散キャッシュシステムでは、各キャッシュメモリと下位メモリ階層との間で同一アドレスに対するデータの不整合が生じることのないよう、データの一致性を保つ必要がある。 In the multiprocessor system as shown in FIG. 18, in order to improve the average performance of memory access, a distributed cache system in which a cache memory is provided for each processor is used. In such a distributed cache system, it is necessary to maintain data consistency so that inconsistency of data for the same address does not occur between each cache memory and the lower memory hierarchy.
図19は、このようなマルチプロセッサシステムにおいて、各メモリにおけるデータの一致性を保つためのデータ転送の第1の従来技術の説明図である。同図において、あるプロセッサ(コア)101a上で更新されたデータは、キャッシュメモリ102aに書き込まれるとともに、一般にプログラムの指示によって下位メモリ階層105に書き戻される。そして同時に別のプロセッサ(コア)、例えば101b上のキャッシュメモリ102b内で対応するアドレスのデータに対して無効化が指示され、キャッシュメモリ102b上のデータは破棄される。プロセッサ101bでデータが必要となった場合には、下位メモリ階層105から最新の更新データをリードすることによって、データの一致性が確保される。
FIG. 19 is an explanatory diagram of a first prior art of data transfer for maintaining data consistency in each memory in such a multiprocessor system. In the figure, data updated by a processor (core) on 101 a, together with written into the cache memory 102 a, generally written in
図20は、第1の従来技術におけるデータ転送シーケンスの例である。同図において、例えば図19上のプロセッサ101a、すなわちデータ転送元実行部から転送元キャッシュ、すなわちキャッシュメモリ102a上の更新データが、下位メモリ階層としての下位メモリ階層105に転送された後に、転送先実行部としてのプロセッサ101bに対応して備えられている転送先キャッシュ102bへのデータ転送が行われるものとして、処理のシーケンスを説明する。
FIG. 20 is an example of a data transfer sequence in the first prior art. In FIG. 19, for example, after update data on the transfer source cache, that is, the cache memory 102 a is transferred from the processor 101 a in FIG. 19, that is, the data transfer source execution unit, to the
まず転送元実行部から転送元キャッシュ、すなわちキャッシュメモリ102aに対して更新データ転送の指示が出され、キャッシュメモリ102aから下位メモリ階層としての下位メモリ階層105への更新データ転送が行われる。転送元キャッシュ、すなわちキャッシュメモリ102aにおいても、その後メモリシステム内でのデータの統一性を保つために与えられるデータの無効化指示に対応して、データの無効化が行われる。そして転送元実行部としてのプロセッサ101aから転送先実行部、すなわちプロセッサ101bに対して、更新データが下位メモリ階層105に格納されたことを示す通知が送られ、そのデータを必要とする転送先実行部、すなわちプロセッサ101bは転送先キャッシュとしてのキャッシュメモリ102bに対してデータ要求を行うが、この時点ではキャッシュメモリ102bには更新データはまだ格納されておらず、転送先キャッシュとしてのキャッシュメモリ102bは下位メモリ階層に対してデータのムーブイン要求を行い、その要求に対応して返送されたデータを受け取り、さらにそのデータを転送先実行部に返送することによって、更新データを用いたプロセッサ101bにおける処理が可能となる。
First the source cache from the source execution unit, ie an instruction of updating the data transfer is issued to the cache memory 102 a, is performed updating data transfer from the cache memory 102 a to the
しかしながらこの第1の従来技術では、あるプロセッサコアにおいて更新され、対応するキャッシュメモリに格納されたデータは一旦下位メモリ階層に書き戻された後、必要とするプロセッサコアがそのデータを下位メモリ階層からキャッシュメモリを介してリードすることが必要となり、
転送元実行部が更新データの転送を指示してから、その更新データを必要とする転送先実行部が実際にそのデータを獲得するまでの時間が長くなるという問題点があった。
However, in the first prior art, data updated in a certain processor core and stored in the corresponding cache memory is once written back to the lower memory hierarchy, and then the necessary processor core transfers the data from the lower memory hierarchy. It is necessary to read through the cache memory,
There is a problem that it takes a long time until the transfer destination execution unit that requires the update data actually acquires the data after the transfer source execution unit instructs the transfer of the update data.
図21は、分散キャッシュシステムにおけるデータの一致性を保つためのデータ転送方式の第2の従来例の説明図である。同図においてあるプロセッサ(コア)101aのキャッシュメモリ102a上のデータが更新されると、そのキャッシュメモリ102aに書き込まれた更新データは他のプロセッサのすべてにブロードキャストされ、同じアドレスのデータを格納しているキャッシュメモリ上のデータは更新される。このようなキャッシュの制御方式はスヌープキャッシュと呼ばれる。 FIG. 21 is an explanatory diagram of a second conventional example of a data transfer method for maintaining data consistency in a distributed cache system. When the data processor (core) on 101 a cache memory 102 a located in the drawing is updated, updated data written in the cache memory 102 a is broadcast to all other processors, the data of the same address The stored data on the cache memory is updated. Such a cache control method is called a snoop cache.
図22は、第2の従来技術、すなわちスヌープキャッシュ方式における更新データの転送シーケンスの例である。同図において転送元キャッシュ、例えばキャッシュメモリ102aにデータが書き込まれると、そのキャッシュメモリ、すなわち転送元キャッシュから、スヌープ処理によって転送先キャッシュ、すなわち他のすべてのキャッシュメモリのうちで同じアドレスのデータが格納されているキャッシュメモリにデータの書込みが行われ、データ書込みが行われたことが転送先実行部としての、転送先キャッシュに対応するプロセッサに通知され、転送先実行部は必要に応じて転送先キャッシュに対してデータを要求し、返送されたデータを用いて処理を行うことになる。 FIG. 22 is an example of a transfer sequence of update data in the second prior art, that is, the snoop cache method. When the source cache, for example, data in the cache memory 102 a is written in the figure, the cache memory, i.e. the transfer from the original cache, transfer destination cache by snooping process, that is, the data of the same address of all the other cache memory Is written to the cache memory in which the data is stored, and the processor corresponding to the transfer destination cache serving as the transfer destination execution unit is notified that the data has been written, and the transfer destination execution unit Data is requested from the transfer destination cache, and processing is performed using the returned data.
しかしながらこの第2の従来技術においては、更新データのブロードキャストを行うためのハード実装コストが大きくなるという問題点がある。すなわち対応するアドレスのデータが格納されていないキャッシュメモリに対してもデータのブロードキャストが行われるために、メモリアクセスのトラフィックが大きくなり、幅の広いバスが必要となるとともに、それぞれのプロセッサはキャッシュメモリ上のデータの更新などを行いながらその他の処理を行うために、例えば2つのポートを持つランダム・アクセス・メモリなどを備える必要があり、ハードウェアのコストが大きくなる。 However, the second prior art has a problem that the hardware mounting cost for broadcasting the update data is increased. In other words, since data is broadcast to the cache memory in which the data at the corresponding address is not stored, the memory access traffic increases, a wide bus is required, and each processor has a cache memory. In order to perform other processing while updating the above data, it is necessary to provide a random access memory having two ports, for example, which increases the cost of hardware.
このようなマルチプロセッサシステム内でのDMA転送におけるメモリアクセスの待ち時間を低減するために、キャッシュをソフトウェアプログラムで管理する技術を開示する特許文献1では、システムメモリ上のデータの各プロセッサへの転送を高速化するために設けられるDMAキャッシュのソフトウェアプログラム管理を可能にするキャッシュ管理コマンドを提供する方法が開示されている。
本発明の課題は、上述の問題点に鑑み、ハードウェアの実装コストの増大をできるだけ抑えながら、マルチプロセッサシステムにおける複数のプロセッサコアにそれぞれ対応するキャッシュメモリ相互間でのデータ転送を高速化することである。 In view of the above-described problems, an object of the present invention is to speed up data transfer between cache memories respectively corresponding to a plurality of processor cores in a multiprocessor system while suppressing an increase in hardware implementation cost as much as possible. It is.
図1は、本発明のマルチプロセッサシステムの原理構成ブロック図である。同図においてマルチプロセッサシステムは、複数のプロセッサコア1aから1dと、直接メモリアクセス制御手段3とを備えている。
FIG. 1 is a block diagram showing the principle configuration of a multiprocessor system according to the present invention. In the figure, the multiprocessor system includes a plurality of
各プロセッサコア1aから1dに対しては、それぞれ対応するキャッシュメモリ2aから2dが備えられ、直接データ転送制御手段3はこれら複数のキャッシュメモリ2aから2dの相互間での直接データ転送を制御するものである。
For 1 d from each
図1の直接メモリアクセス制御手段3は、例えばバスマスタであり、バスマスタは転送元プロセッサコアから転送元プロセッサコアの番号、転送先プロセッサコアの番号、転送データのキャッシュメモリ上の格納開始アドレス、およびデータ転送量を示す転送条件と、転送開始の指示に対応して、転送元のキャッシュメモリに対してリードアクセスを行い、キャッシュヒット応答に対応して転送データ、およびフラグなどを読み出し、転送先キャッシュメモリに対してライトアクセスを行い、転送データとフラグなどを転送先キャッシュメモリにライトする。 The direct memory access control means 3 in FIG. 1 is, for example, a bus master, and the bus master transfers from the source processor core to the source processor core number, the destination processor core number, the storage start address of the transfer data in the cache memory, and the data In response to the transfer condition indicating the transfer amount and the transfer start instruction, read access is performed to the transfer source cache memory, transfer data, a flag, and the like are read in response to the cache hit response, and the transfer destination cache memory Write access is performed, and the transfer data and flags are written to the transfer destination cache memory.
本発明によれば、マルチプロセッサシステムにおいて、各プロセッサコアにそれぞれ対応するキャッシュメモリ相互間での直接データ転送が可能となり、キャッシュメモリ相互間でのデータ転送が高速化され、マルチプロセッサシステム全体としてのデータ処理効率の向上に寄与するところが大きい。 According to the present invention, in a multiprocessor system, it is possible to directly transfer data between cache memories corresponding to respective processor cores, the data transfer between cache memories is accelerated, and the entire multiprocessor system is This greatly contributes to improving data processing efficiency.
図2は、本発明におけるマルチプロセッサシステムの基本構成ブロック図である。同図においてシステムは、図18の従来例におけると同様のチップ10とメインメモリ15とによって構成されており、チップ10の上には複数のプロセッサ(コア)11aから11dが搭載されており、各プロセッサに対してはそれぞれキャッシュメモリ12aから12dが備えられている。本発明においては、これらの構成要素に加えて各キャッシュメモリ12aから12dの間でメインメモリ15を介することなく、データの転送を行うためにDMAC(ダイレクト・メモリ・アクセス・コントローラ)14が備えられ、各プロセッサ11aから11d、メインメモリ15、およびDMAC14はバス16によって接続されている。
FIG. 2 is a block diagram showing the basic configuration of the multiprocessor system according to the present invention. In this figure, the system is composed of the
本発明においては、図2に示すように各プロセッサ(コア)11aから11dにそれぞれ対応するキャッシュメモリ12aから12dに対するデータの読み書き、すなわち転送の制御を行うためのDMAC14が新設され、あるプロセッサ(コア)、例えば11aによる演算によってキャッシュメモリ12a上で更新されたデータは、DMAC14の制御によって別のプロセッサ(コア)、例えば11bに直接に転送され、キャッシュメモリ12b上の対応するデータの更新が行われる。この場合、どのプロセッサからどのプロセッサへの転送が行われるべきかは、例えばプロセッサ11aによる演算結果がプロセッサ11bによる演算で使われるべきことから、マルチプロセッサシステムに対する全体的処理のプログラムによって指定される。
In the present invention, read and write data from the
図3は、図2の基本構成システムにおけるデータ更新のメインメモリへの反映方法の説明図である。図21で説明したスヌープキャッシュ方式以外の一般的なマルチプロセッサシステムにおけるキャッシュ制御方式では、図19で説明したようにメインメモリにデータの更新結果が反映された後には、複数のキャッシュメモリ、ここでは12aから12dのうちで、メインメモリ上でデータ更新が反映されたデータに対応するアドレスに対しては、いずれか1つのキャッシュメモリだけが有効なデータを保持するように制御が行われる。 FIG. 3 is an explanatory diagram of a method for reflecting the data update to the main memory in the basic configuration system of FIG. In a cache control system in a general multiprocessor system other than the snoop cache system described in FIG. 21, after the data update result is reflected in the main memory as described in FIG. 19, a plurality of cache memories, here Of 12 a to 12 d , control is performed so that only one cache memory holds valid data for an address corresponding to data in which data update is reflected on the main memory.
すなわち図3において、図2でプロセッサ11aに対応するキャッシュメモリ12aに対して書き込まれた更新データがプロセッサ11bに転送されてキャッシュメモリ12bに書き込まれ、データの更新が行われると、そのデータ更新の最終的なメインメモリ15への反映は、プロセッサ11bからメインメモリ15へのそのデータの転送によって行われる。この時、もともとのデータ転送元のプロセッサ11aに対するキャッシュメモリ12a内の更新データは無効化されて以後使用不可能にされるか、あるいはそのデータに対応する更新済みフラグとしてのダーティビットがクリアされることによって、そのプロセッサ11aでは使用可能であるとしても、例えば他のプロセッサ、例えば11cへの転送には使用できない状態とされる。
That is, in FIG. 3, updated data written to the
図4は、図2の基本構成システムにおける複数のプロセッサコアへのDMACによる直接データ転送の説明図である。同図において、キャッシュメモリ12a上で更新された書き込みデータは、例えば他の3つのプロセッサ11b、11c、および11dのすべてにDMAC14の制御によって転送され、各キャッシュメモリ12bから12d上の対応するアドレスのデータは更新可能となる。しかしながら、前述のスヌープキャッシュ方式を除いては、有効なデータとして実際にキャッシュへの書き込みを行う権利を持つのは転送先の複数のプロセッサのうちで1つだけとなる。その制御はソフトウェアによって保証されるが、その制御自体は本発明と直接の関連は無いので、その詳細な説明は省略する。
FIG. 4 is an explanatory diagram of direct data transfer by DMAC to a plurality of processor cores in the basic configuration system of FIG. In the figure, the write data that has been updated in the
図5は、本発明におけるマルチプロセッサシステムの第1の実施例の構成ブロック図である。同図においてシステムは、チップ20と下位メモリ階層、例えばメインメモリ25によって構成され、チップ20上には複数のプロセッサコア21aから21d、バスマスタ24が備えられ、各プロセッサコア21aから21d、バスマスタ24、および下位メモリ階層25はバス26によって接続されている。そしてそれぞれのプロセッサコア、例えばプロセッサコア21aは実行部22aとキャッシュメモリ23aとを備えている。なおバスマスタ24は、例えば図2におけるDMAC14に相当する。
FIG. 5 is a block diagram showing the configuration of the first embodiment of the multiprocessor system according to the present invention. System In this figure, the
図5において、例えばプロセッサコア21a上のキャッシュメモリ23aが転送元キャッシュメモリとして、プロセッサコア21b上の転送先キャッシュメモリとしてのキャッシュメモリ23bに対して、キャッシュメモリ間データ直接転送を司るバスマスタ24の制御によって、データの転送を行う場合の処理の詳細について、図6から図8のフローチャートを用いて説明する。
5, for example, as a cache memory 23 a is the source cache memory on the processor core 21 a, the cache memory 23 b as the transfer destination cache memory on the processor core 21 b, charge transfer cache memory between the data directly Details of processing when data is transferred under the control of the
図6は、バスマスタ24の処理フローチャートである。同図においてバスマスタ24の処理は、例えばプロセッサコア21a上の実行部22aから送られるデータ転送要求に対応して開始される。処理が開始されると、まずステップS1で転送元コア番号、ここではプロセッサコア21aの番号、転送すべきキャッシュメモリ23a上の領域、すなわちアドレスと、転送データサイズ、および転送先のコア番号、例えばプロセッサコア21bの番号の設定結果が、転送元コア、すなわちプロセッサコア21aから受け取られ、またステップS2でプロセッサコア21aから転送開始の指示が受け取られ、これに対応してリード操作時の動作が開始される。
FIG. 6 is a process flowchart of the
リード操作時の動作としては、まずステップS3で転送元コア、ここではプロセッサコア21aの実行部22aに対してリード操作の要求が出され、ステップS4でその要求に対応して転送元コアから受け取ったキャッシュ応答がヒットであるか否かが判定される。一般的には転送元コアの転送要求に対応するキャッシュ応答はヒットとなることが多く、その場合にはステップS5で転送元コアからキャッシュ上のデータとフラグ、例えば前述の更新済みフラグとしてのダーティビットが読み出され、ステップS6で転送元コアに対して転送データに対する無効化処理、あるいはダーティビットのクリア処理が要求され、その後ライト操作時の動作が行われる。ここで、転送元コアに対して無効化処理とダーティビットクリア処理のいずれを要求すべきかを示すデータがバスマスタ内の図示しないレジスタに格納され、バスマスタはそのデータに対応していずれかの処理を転送元コアに対して要求するものとする。 The operation during the read operation, first, the source core in step S3, where the request for the read operation is issued to the execution unit 22 a of the processor core 21 a, the source core in response to the request in step S4 It is determined whether the cache response received from is a hit. In general, the cache response corresponding to the transfer request of the transfer source core is often a hit, and in this case, in step S5, the data and flags on the cache from the transfer source core, for example, the dirty flag as the above-mentioned updated flag are stored. The bit is read, and in step S6, the transfer source core is requested to invalidate the transfer data or to clear the dirty bit, and then the operation during the write operation is performed. Here, data indicating whether invalidation processing or dirty bit clear processing should be requested to the transfer source core is stored in a register (not shown) in the bus master, and the bus master performs any processing corresponding to the data. It shall be requested to the transfer source core.
ライト操作時の動作としては、まずステップS8で転送先コア、ここではプロセッサコア21bに対して、データのキャッシュメモリ23bへのライト操作の要求が出され、ステップS9で転送先コアに対してライトデータとフラグが転送され、ステップS10で転送すべきデータのすべての転送を完了したか否かが判定される。一般的に大量のデータを転送する場合には、その転送データが小さなデータ量の単位に分割され、その単位毎にデータのリードと転送が行われる。そしてすべてのデータの転送が完了していない場合には、ステップS3以降の処理が繰り返される。 The operation at the time of the write operation, first, the destination core in step S8, the processor core 21 b in this case, a request for a write operation to the cache memory 23 b of the data is issued, to the destination core in step S9 The write data and the flag are transferred, and it is determined in step S10 whether or not all the transfer of the data to be transferred has been completed. In general, when a large amount of data is transferred, the transferred data is divided into small data amount units, and data is read and transferred for each unit. If the transfer of all data has not been completed, the processes after step S3 are repeated.
すべてのデータの転送が完了した場合には、ステップS11で転送元コア、ここでは21aに対してデータ転送の完了が通知され、またステップS12で転送先コア、すなわち21bに対してデータ転送の完了が通知されて、処理を終了する。なお後述するように、このデータの転送完了通知は、バスマスタ24からではなく、例えばデータ転送先実行部としてのプロセッサコア21bの実行部22bから、例えば転送元コア21aに対して行われることも可能であり、その場合はステップS11の処理は省略されることになる。ここでステップS11、S12の処理が省略可能であることが、全体にカッコをつけることによって示されている。なお、バスマスタがデータ転送完了通知を行うべきか否かは、前述と同様にバスマスタ内の図示しないレジスタに格納されているデータによって指定されるものとする。
If the transfer of all data has been completed, the source core in step S11, where the notification is completed data transfer to 21 a, also the destination core in step S12, i.e., data transfer to 21 b Is notified, and the process ends. As will be described later, this data transfer completion notification is not sent from the
リード操作時の動作におけるステップS4で転送元コアのキャッシュ応答がヒットでない場合には、ステップS14以降の処理が行われる。前述のように転送元コアからデータ転送要求を受けたことに対応するキャッシュ応答は基本的にはヒットとなるべきであるが、キャッシュメモリ23a内で転送すべきデータが格納されているアドレスのデータが、その後のプロセッサコア21a内の処理で、参照局所性が低いと判断され、メインメモリ等の下位メモリ階層に書き戻されてしまっていることも起こりうるために、キャッシュ応答がヒットではなく、ミスとなる場合も考えられる。 If the cache response of the transfer source core is not a hit in step S4 in the operation during the read operation, the processing from step S14 is performed. While the foregoing is a cache response corresponding to receiving the data transfer request from the transfer source core as it should be hit basically the address where the data to be transferred in the cache memory 23 a is stored data, the processing subsequent processor core 21 a, it is determined that the reference locality is low, since it may also occur that they've been written back to the lower memory hierarchy, such as a main memory, the hit cache response It is also possible to make a mistake.
このようにキャッシュ応答がミスの場合には、ステップS14で下位メモリ階層、例えばメインメモリから転送すべきデータを取得すべきか否かが判定される。データを取得すべきか否かは、例えばステップS1で転送元のコアによる設定の中で指定されるものとする。メインメモリからデータを取得すべき場合には、ステップS15で下位メモリ階層に対するリード操作が行われ、ステップS16で読み出しデータが受け取られて、ライト操作時の動作としてのステップS8以降の処理が続行される。 When the cache response is a miss as described above, it is determined in step S14 whether or not data to be transferred is to be acquired from the lower memory hierarchy, for example, the main memory. Whether or not data should be acquired is specified in the setting by the transfer source core in step S1, for example. When data is to be acquired from the main memory, a read operation is performed on the lower memory hierarchy in step S15, read data is received in step S16, and the processing after step S8 as an operation at the time of the write operation is continued. The
ステップS14でキャッシュミスの場合に下位メモリ階層からデータを取得すべきでないと判定されると、ステップS17でデータ転送が中断され、ステップS18で転送元コア、すなわちプロセッサコア21aにエラーが通知されて処理を終了する。なおこのステップS18の処理も省略可能である。 If it is determined that it should not get the data from the lower memory hierarchy in the case of a cache miss in the step S14, the data transfer is interrupted at step S17, an error is notified transfer source core step S18, that is, the processor core 21 a To finish the process. Note that the processing in step S18 can also be omitted.
図7は、転送元キャッシュ側、ここではキャッシュメモリ23a側の処理のフローチャートである。この処理は、プロセッサコア21aの実行部22aが転送元実行部として実行する処理のフローチャートである。同図において処理が開始されると、まずステップS21でバスマスタ24からデータのリード操作要求が受け付けられる。これは図6のステップS3の処理に対応する。そしてステップS22で受け付けたアドレスがキャッシュに存在するか否かが調べられ、ステップS23でアクセスアドレスがキャッシュヒットしているか否かが判定される。
FIG. 7 is a flowchart of processing on the transfer source cache side, here, on the cache memory 23a side. This process execution unit 22 a processor core 21 a is a flowchart of a process performed as the source execution unit. When the process is started in the figure, a data read operation request is received from the
キャッシュヒットしている場合には、ステップS24でバスマスタ24に対してヒット応答が返され、ステップS25で該当アドレスのデータとフラグがバスマスタ24に返送され、ステップS26でキャッシュラインの無効化、またはダーティビットのクリアが行われて処理を終了する。なお例えばスヌープキャッシュ制御の場合にはステップS26の処理は省略される。ステップS23でキャッシュヒットでないと判定されると、ステップS27でキャッシュミス応答がバスマスタ24に送られて処理を終了する。
If there is a cache hit, a hit response is returned to the
図8は、転送先キャッシュ側、ここではプロセッサコア21b上のキャッシュメモリ23b側における処理のフローチャートである。同図において処理が開始されると、まずステップS31でバスマスタ24からのライト操作要求が受け付けられる。これは図6のステップS8の処理に対応する。そしてステップS32で受け付けたアドレスがキャッシュに存在するかが調べられ、ステップS33でアクセスアドレスがキャッシュヒットしているか否かが判定される。
8, the transfer destination cache side, where a flow chart of the processing in the cache memory 23 b side of the processor core 21 b. When the processing is started in the figure, first, a write operation request from the
ヒットしている場合には、ステップS34でバスマスタ24から送られたデータ、およびフラグがキャッシュに書き込まれて処理を終了する。キャッシュヒットでない場合には、ステップS35でキャッシュに空きエントリがあるか否かが判定され、空きエントリがある場合には、ステップS34でその空きエントリにデータとフラグが書き込まれ、処理を終了する。空きエントリがない場合には、ステップS36でメインメモリにコピーバック処理が行われて、空きエントリが作成され、その空きエントリにステップS34でデータとフラグが書き込まれて処理を終了する。なおステップS35、S36の処理は本発明とは直接関係のない処理である。
If there is a hit, the data and flag sent from the
第1の実施例におけるデータ転送処理は、基本的に図6から図8のフローチャートに対応して行われるが、第1の実施例におけるデータ転送シーケンスの例について、図9から図12を用いて説明する。図9では転送元実行部、例えばプロセッサコア21aの実行部22aからバスマスタ24に対して、転送条件の指示と転送開始の指示が与えられる。この動作は図6のステップS1、S2の処理に対応する。バスマスタ24は転送元キャッシュ、ここではキャッシュメモリ23aに対するデータリード操作を行い、転送元キャッシュ側からのキャッシュヒット応答を受け取り、また読み出しデータとフラグを受け取る。そしてバスマスタ24は転送先キャッシュ、例えばキャッシュメモリ23bに対するデータライト操作として、書き込みデータ、およびフラグを転送する。一方転送元キャッシュ、すなわちキャッシュメモリ23aでは、例えば転送したデータの無効化が行われる。
The data transfer process in the first embodiment is basically performed in accordance with the flowcharts of FIGS. 6 to 8, but an example of the data transfer sequence in the first embodiment will be described with reference to FIGS. explain. The
図10は、転送元におけるキャッシュミスの場合の動作シーケンスである。図9と同様に、転送元実行部からバスマスタ24に対して転送条件指示と転送開始指示が与えられ、バスマスタ24から転送元キャッシュ側に対してデータリード操作が行われるが、キャッシュミス応答が返されるためにデータ転送が中断される。これらの動作は図6のステップS14、S17の処理に相当し、下位メモリ階層からデータを取得しない場合に対応する。
FIG. 10 is an operation sequence in the case of a cache miss at the transfer source. As in FIG. 9, a transfer condition instruction and a transfer start instruction are given from the transfer source execution unit to the
図11は、キャッシュミス応答がバスマスタ24に返された場合に、下位メモリ階層、例えばメインメモリからのデータ読み出しを行う場合の動作シーケンスである。図10にと同様にバスマスタ24が転送元キャッシュからキャッシュミス応答を受け取ると、図6のステップS15、S16に対応して、下位メモリ階層に対するデータリード操作を行い、読み出しデータを受け取ると、バスマスタ24は転送先キャッシュに対するライト操作としてデータ、およびフラグの書き込みを行い、例えば転送先キャッシュは転送元実行部に対してデータ転送の完了を通知する。前述のように、このデータ転送完了通知はバスマスタから転送元実行部に送られることも可能であるが、バスマスタがその通知を行う場合には、その時点では実際にデータ転送が完了していないことも考えられ、実際にデータとフラグが転送された転送先キャッシュから転送完了通知を行うほうがより確実な動作となる。
FIG. 11 shows an operation sequence when data is read from the lower memory hierarchy, for example, the main memory, when a cache miss response is returned to the
図12は、複数のキャッシュメモリに対するデータ転送動作のシーケンスである。図9におけると同様に、転送元キャッシュからバスマスタ24に対して読み出しデータとフラグが与えられると、バスマスタ24から転送先キャッシュ1、および転送先キャッシュ2、例えばキャッシュメモリ23bと23cとに対するライト操作としてデータとフラグの書込みが行われる。転送元キャッシュ、すなわちキャッシュメモリ23a側では、例えばデータの無効化が行われる。
FIG. 12 is a sequence of data transfer operations for a plurality of cache memories. As in FIG. 9, when the read data and the flag is provided to the
図13は、マルチプロセッサシステムの第2の実施例の構成ブロック図である。同図を図5の第1の実施例と比較すると、図5におけるバス26に代わって、バスマスタ24によるキャッシュメモリ間の直接データ転送のための専用バス27と、各キャッシュメモリと下位メモリ階層25、例えばメインメモリとを接続するバス28とが分離されている点だけが異なっている。
FIG. 13 is a block diagram showing the configuration of the second embodiment of the multiprocessor system. Comparing this figure with the first embodiment of FIG. 5, in place of the
図13の第2の実施例においては、前述のように第1の実施例と異なってキャッシュメモリ間のバスマスタ24によるデータ転送のための専用バス27が設けられる点が第1の実施例と異なるだけであり、バスマスタ24や各キャッシュメモリ側の処理については、第1の実施例におけると同様であり、その説明を省略する。
The second embodiment of FIG. 13 differs from the first embodiment in that a
図14、図15は、第2の実施例におけるデータ転送シーケンスの例である。図14においては、例えば図9におけると同様に、バスマスタ24から転送先キャッシュに対してライト操作としてデータとフラグの書込みが行われるとともに、転送先キャッシュから下位メモリ階層25に対して不要ラインの排出が行われ、また転送元実行部に対してデータ転送の完了通知が行われる。このうち不要ラインの排出は、例えば図8のステップS35でキャッシュに空きエントリが存在せず、ステップS36でコピーバック処理として不要ラインのデータが下位メモリ階層25としてのメインメモリにはき出されることに対応する。この不要ライン排出は各キャッシュメモリと下位メモリ階層25とを接続するバス28を用いて行われる。また転送先キャッシュから転送元実行部へのデータ転送完了通知については、図11におけると同様である。
14 and 15 show examples of data transfer sequences in the second embodiment. In FIG. 14, as in FIG. 9, for example, data and flags are written from the
図15は、転送先キャッシュから転送先実行部に対してデータ転送完了通知が行われる場合の動作シーケンスである。図14と異なって、データ転送完了通知が転送先キャッシュから転送先実行部に送られる。転送先実行部は、バスマスタ24によるデータ転送が完了したことを、転送先キャッシュからの通知によって確実に知ることが可能となり、必要に応じて、その後の処理に必要となるデータを転送先キャッシュに要求し、返送されたデータを用いて処理を実行することになる。
FIG. 15 shows an operation sequence when a data transfer completion notification is sent from the transfer destination cache to the transfer destination execution unit. Unlike FIG. 14, a data transfer completion notification is sent from the transfer destination cache to the transfer destination execution unit. The transfer destination execution unit can surely know that the data transfer by the
図16は、図19、および図21で説明した従来技術と本発明との比較の説明図である。同図において性能とは、基本的にキャッシュアクセスレイテンシと、データ移動にかかるレイテンシによって決定される。 FIG. 16 is an explanatory diagram for comparing the prior art described in FIG. 19 and FIG. 21 with the present invention. In the figure, the performance is basically determined by the cache access latency and the latency for data movement.
図17は、キャッシュアクセスレイテンシと、データ移動にかかるレイテンシとの説明図である。同図は図15の動作シーケンスに対応するものであり、転送先キャッシュからデータ転送完了通知が転送元実行部にも送られる点だけが追加されている。データ移動にかかるレイテンシとは、転送元実行部からバスマスタ24に対して転送指示、すなわち転送条件の指示と転送開始指示が与えられてから、実際に転送データが転送先キャッシュに書き込まれ、転送先キャッシュから転送先実行部や転送元実行部に対して転送完了通知が行われるまでの時間であり、またキャッシュアクセスレイテンシとは、例えばデータ転送終了後に転送先実行部が必要に応じて転送先キャッシュに対してデータを要求し、転送データを受け取るまでの時間に相当する。
FIG. 17 is an explanatory diagram of cache access latency and latency for data movement. This figure corresponds to the operation sequence of FIG. 15, and only the point that a data transfer completion notification is also sent from the transfer destination cache to the transfer source execution unit is added. The latency associated with data movement refers to the fact that transfer data is actually written to the transfer destination cache after the transfer instruction from the transfer source execution unit is given to the
図16において、第1の従来技術では、本発明のようにDMACを備えることなく、ハード実装コストは小さくてすむが、データ転送後に転送先実行部がデータを必要とする場合に、そのデータを下位メモリ階層、すなわちメインメモリに対して要求し、転送データを受け取るために、キャッシュアクセスレイテンシが大となり、その結果、性能は小さくなる。 In FIG. 16, the first prior art does not include a DMAC as in the present invention, and the hardware implementation cost can be reduced. However, when the transfer destination execution unit needs data after the data transfer, the data is transferred. In order to make a request to the lower memory hierarchy, that is, the main memory and receive the transfer data, the cache access latency is increased, and as a result, the performance is decreased.
これに対して第2の従来技術では、スヌープキャッシュを用いることによってデータ移動にかかるレイテンシは小となり、性能は大きくなるが、例えばブロードキャスト用のハード実装コストが大きくなる。 On the other hand, in the second prior art, by using the snoop cache, the latency for data movement is reduced and the performance is increased, but the hardware implementation cost for broadcasting is increased.
これに対して本発明においては、DMACを追加しなければならないことからハード実装コストがやや大きくなるというデメリットはあるが、データ移動にかかるレイテンシや、キャッシュアクセスレイテンシは小となり、性能は向上する。 On the other hand, in the present invention, there is a demerit that the hardware mounting cost is slightly increased because the DMAC has to be added, but the latency for data movement and the cache access latency are reduced, and the performance is improved.
特に第2の実施例では、キャッシュメモリ相互間の直接データ転送のためのバスを、メインメモリとキャッシュメモリを結ぶバスと独立に設けることより、例えばプロセッサコアの数が増大しても、メモリバストラフィックを小さく抑えることが可能となり、大きな性能を得ることができる。 Particularly in the second embodiment, the bus for direct data transfer between the cache memories is provided independently of the bus connecting the main memory and the cache memory. For example, even if the number of processor cores increases, the memory bus Traffic can be kept small, and a large performance can be obtained.
すなわち本発明においては、従来技術と比較して、キャッシュメモリ間のデータ転送はメインメモリを介することがないため、メインメモリとの間のバス帯域を消費せず、またスヌープキャッシュと比較して、例えばプログラムで指定されているキャッシュメモリ相互間でのみデータ転送を行うため、バストラフィックは最小限となり、プロセッサコアの数が増大しても実用的な動作を維持することが可能となる。さらに転送先プロセッサコアは、データが必要となった時点でキャッシュにアクセスし、メインメモリにアクセスする必要がないため、小さいキャッシュアクセスレイテンシで必要データを受け取ることが可能となる。 That is, in the present invention, the data transfer between the cache memories does not go through the main memory as compared with the prior art, so the bus bandwidth with the main memory is not consumed, and compared with the snoop cache, For example, since data transfer is performed only between cache memories specified by a program, bus traffic is minimized, and a practical operation can be maintained even if the number of processor cores increases. Furthermore, since the transfer destination processor core accesses the cache when data is needed and does not need to access the main memory, it can receive the necessary data with a small cache access latency.
1、21 プロセッサコア
2、12、23 キャッシュメモリ
3 直接メモリアクセス制御手段
10、20 チップ
11 プロセッサ
14 ダイレクト・メモリ・アクセス・コントローラ(DMAC)
15 メインメモリ
16、26 バス
22 実行部
24 バスマスタ
25 下位メモリ階層
27 キャッシュメモリ間直接データ転送バス
28 キャッシュメモリと下位メモリ階層との間のバス
1, 21
15
Claims (5)
該複数のプロセッサコアにそれぞれ対応する複数のキャッシュメモリと、
前記複数のプロセッサコアとバスを介して接続され、データ転送元のプロセッサコアから転送元プロセッサコア識別情報、転送元キャッシュメモリのアドレス情報、転送データのサイズ、転送先プロセッサコア識別情報、及び転送開始指示を受信し、該転送元プロセッサコア識別情報、該転送元キャッシュメモリのアドレス情報、該転送データのサイズ、該転送先プロセッサコア識別情報、及び該転送開始指示に基づいて、該転送元キャッシュメモリから該転送データを該バスを介して読み出し転送先のプロセッサコアのキャッシュメモリへ該バスを介して転送する、該複数のキャッシュメモリ相互間での直接データ転送を制御する直接メモリアクセス制御手段とを備えることを特徴とするマルチプロセッサシステム。 A multiprocessor system comprising a plurality of processor cores,
A plurality of cache memories respectively corresponding to the plurality of processor cores;
Connected to the plurality of processor cores via a bus, from the data transfer source processor core to transfer source processor core identification information, transfer source cache memory address information, transfer data size, transfer destination processor core identification information, and transfer start receiving the instruction, the transfer source processor core identification information, the address information of the transfer source cache memory, the size of the transfer data, the transfer destination processor core identification information, and based on the transfer start instruction, the transfer source cache memory Direct memory access control means for controlling direct data transfer between the plurality of cache memories , wherein the transfer data is read via the bus and transferred to the cache memory of the processor core of the transfer destination via the bus. A multiprocessor system comprising:
該レジスタの格納内容に対応して、該直接メモリアクセス制御手段が、該転送元キャッシュメモリに対して、該出力データの無効化、あるいは該データに対する更新済みフラグのクリアを要求することを特徴とする請求項1記載のマルチプロセッサシステム。 The direct memory access control means should invalidate the output data on the transfer source cache memory or clear the updated flag for the data after the transfer data is output from the transfer source cache memory. It has a register to store data indicating what should be done,
Corresponding to the stored contents of the register, the direct memory access control means requests the transfer source cache memory to invalidate the output data or clear the updated flag for the data. The multiprocessor system according to claim 1.
該レジスタの格納内容に対応して、該直接メモリアクセス制御手段が、該転送先のプロセッサコアのキャッシュメモリへのデータライトアクセスの完了時点で、前記データ転送元のプロセッサコア、あるいは転送先のプロセッサコアにデータ転送完了を通知することを特徴とする請求項1記載のマルチプロセッサシステム。 Said direct memory access control means, notifying all of the completion of data transfer from the transfer source cache memory to the cache memory of the transfer destination processor core, to the data transfer source processor core or destination processor core, A register for storing data indicating whether or not
Corresponding to the storage contents of said register, said direct memory access control means, upon completion of data write access to the cache memory of the processor core of said transfer Okusaki, said data transfer source processor core or destination, The multiprocessor system according to claim 1, wherein completion of data transfer is notified to the processor core.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006062261A JP5168800B2 (en) | 2006-03-08 | 2006-03-08 | Multiprocessor system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006062261A JP5168800B2 (en) | 2006-03-08 | 2006-03-08 | Multiprocessor system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007241601A JP2007241601A (en) | 2007-09-20 |
JP5168800B2 true JP5168800B2 (en) | 2013-03-27 |
Family
ID=38587092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006062261A Expired - Fee Related JP5168800B2 (en) | 2006-03-08 | 2006-03-08 | Multiprocessor system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5168800B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011161774A1 (en) * | 2010-06-22 | 2011-12-29 | 富士通株式会社 | Multi-core processor system, control program, and control method |
JP5625536B2 (en) * | 2010-06-24 | 2014-11-19 | 富士通株式会社 | Cache device and information processing device |
JP5776810B2 (en) * | 2014-03-20 | 2015-09-09 | 富士通株式会社 | Multiprocessor system, control program, and control method |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69433147D1 (en) * | 1993-04-30 | 2003-10-16 | Packard Bell Nec Inc | Symmetrical multiprocessor system with a unified environment and distributed system functions |
JP3872118B2 (en) * | 1995-03-20 | 2007-01-24 | 富士通株式会社 | Cache coherence device |
US6922756B2 (en) * | 2002-12-19 | 2005-07-26 | Intel Corporation | Forward state for use in cache coherency in a multiprocessor system |
JP4673585B2 (en) * | 2004-08-05 | 2011-04-20 | 富士通株式会社 | Memory system control apparatus and memory system control method |
-
2006
- 2006-03-08 JP JP2006062261A patent/JP5168800B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2007241601A (en) | 2007-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7120755B2 (en) | Transfer of cache lines on-chip between processing cores in a multi-core system | |
EP0735480B1 (en) | Cache coherent computer system that minimizes invalidation and copyback operations | |
US6704841B2 (en) | Method and apparatus for facilitating speculative stores in a multiprocessor system | |
US5434993A (en) | Methods and apparatus for creating a pending write-back controller for a cache controller on a packet switched memory bus employing dual directories | |
US20230214326A1 (en) | Computer Memory Expansion Device and Method of Operation | |
US6272602B1 (en) | Multiprocessing system employing pending tags to maintain cache coherence | |
EP0514024B1 (en) | Method and apparatus for an improved memory architecture | |
US6721855B2 (en) | Using an L2 directory to facilitate speculative loads in a multiprocessor system | |
US6718839B2 (en) | Method and apparatus for facilitating speculative loads in a multiprocessor system | |
US20110173393A1 (en) | Cache memory, memory system, and control method therefor | |
US6871267B2 (en) | Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency | |
JPH05128071A (en) | Apparatus and method for optimizing performance of multiplex processor system | |
KR20180063820A (en) | An apparatus and method for transferring data between address ranges in memory | |
JPH09223118A (en) | Snoop cache memory control system | |
US7664900B2 (en) | Multiprocessor system and method for processing memory access | |
JPH02141845A (en) | Reading of data block from main memory with central processing unit for multiprocessor system | |
JPH10254772A (en) | Method and system for executing cache coherence mechanism to be utilized within cache memory hierarchy | |
JP4673585B2 (en) | Memory system control apparatus and memory system control method | |
CN113826085A (en) | Write streaming in a processor | |
JP5499987B2 (en) | Shared cache memory device | |
KR101858597B1 (en) | Processing in memory system and method for transmitting job, operand data, and calculation results of processing in memory system | |
JP5168800B2 (en) | Multiprocessor system | |
JP2001109662A (en) | Cache device and control method | |
AU600982B2 (en) | Computer system architecture implementing split instruction and operand cache line-pair-state management | |
JP2004326175A (en) | Processor, cache system, and cache memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081022 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111018 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111219 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120529 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120827 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20120911 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20121204 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121217 |
|
LAPS | Cancellation because of no payment of annual fees |