JP7601434B2 - Integrated circuit, computer system and data processing method - Google Patents
Integrated circuit, computer system and data processing method Download PDFInfo
- Publication number
- JP7601434B2 JP7601434B2 JP2023034908A JP2023034908A JP7601434B2 JP 7601434 B2 JP7601434 B2 JP 7601434B2 JP 2023034908 A JP2023034908 A JP 2023034908A JP 2023034908 A JP2023034908 A JP 2023034908A JP 7601434 B2 JP7601434 B2 JP 7601434B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- memory
- register
- load packet
- address register
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims description 5
- 238000010586 diagram Methods 0.000 description 32
- 238000001514 detection method Methods 0.000 description 15
- 239000011159 matrix material Substances 0.000 description 11
- 238000000034 method Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000010354 integration Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Landscapes
- Executing Machine-Instructions (AREA)
- Memory System (AREA)
Description
本願は、集積回路、コンピュータシステムおよびデータ処理方法、例えば、ベクトルギャザー命令に係るロードパケットのメモリシステムへの発行に関する。 This application relates to integrated circuits, computer systems and data processing methods, such as issuing load packets related to vector gather instructions to a memory system.
ベクトルギャザー命令とは、特許文献1に例示されているように、メモリシステム上のアドレスを含むアドレスポインタをベクトルレジスタ上にセットしておき、このアドレスの指すデータをベクトルレジスタに読み込むことを指示する命令である。ベクトルギャザー命令は、ベクトルロード命令または単にギャザー命令と呼ばれることがある。通例、ベクトルギャザー命令は、メモリアドレスから各1ワードのデータの読み出しを示すロードパケットに分解され、分解されたロードパケットはメモリシステムに対して発行される。この段階では、複数のメモリアドレス間の関連性は考慮されない。メモリシステムからは、ロードパケットに対するリプライパケットが1ワードのデータごとに返却される。
As exemplified in
近年では、メモリシステムにおいて、1ワードに限らず、一度に複数ワードのデータの読み書きを実行できるようにして高集積化ならびに高速化が図られている。メモリシステムの処理単位内に読み込み対象とする複数ワード分のデータを含めることで、1回の処理で複数ワードのデータを読み出すことができる。 In recent years, efforts have been made to increase the integration and speed of memory systems by making it possible to read and write multiple words of data at a time, rather than just one word. By including multiple words of data to be read within the processing unit of the memory system, it is possible to read multiple words of data in a single process.
高集積化に関し、複数のコアとメモリシステムをチップ内ネットワークで接続してなるマルチコアシステムが普及している。マルチコアシステムでは、チップ内ネットワークにおけるデータ伝送の頻出が性能低下を招く要因となりうる。そのため、ロードパケット数およびリプライパケット数を減少させてネットワークの混雑を回避または緩和することが望ましい。その場合、一度に複数ワードのデータをロードできるロードパケットを生成し、複数ワードのデータに対するリプライパケットを返却して、ロードパケット数とリプライパケット数を減少させることが考えられる。 To increase integration, multi-core systems in which multiple cores and memory systems are connected via an in-chip network are becoming more common. In multi-core systems, frequent data transmissions in the in-chip network can lead to performance degradation. For this reason, it is desirable to reduce the number of load packets and reply packets to avoid or alleviate network congestion. In this case, it is possible to generate load packets that can load multiple words of data at once, and return reply packets for the multiple words of data, thereby reducing the number of load packets and reply packets.
例えば、特許文献2には、限定範囲ベクトルメモリアクセス命令を用いて、複数ワードのデータをロードする手法について記載されている。限定範囲ベクトルメモリアクセス命令は、メモリシステムの限定範囲を指定する命令と、限定範囲における複数のインデックスを示すベクトルギャザー命令が指示される。しかしながら、ベクトルレジスタにおけるメモリシステム上のメモリアドレスは、命令の実行時に計算させる。そのため、命令の実行前にメモリアドレスがメモリシステムの限定範囲に含まれているか否かを判定し、限定範囲を指定する命令と、限定範囲内の複数のインデックスを示すベクトルギャザー命令を生成することができない。 For example, Patent Document 2 describes a method for loading multiple words of data using a limited-range vector memory access instruction. The limited-range vector memory access instruction specifies an instruction that specifies a limited range of the memory system and a vector gather instruction that indicates multiple indexes in the limited range. However, the memory address on the memory system in the vector register is calculated when the instruction is executed. Therefore, it is not possible to determine whether the memory address is included in the limited range of the memory system before the instruction is executed, and to generate an instruction that specifies the limited range and a vector gather instruction that indicates multiple indexes within the limited range.
本願は、上述の課題を解決すべくなされたものであり、メモリシステムを備えるコンピュータシステムの性能向上を実現することを主目的としている。 This application has been made to solve the above-mentioned problems, and its main objective is to improve the performance of a computer system equipped with a memory system.
上記目的を達成するために、本願の第1態様に係る演算回路は、取得されるベクトルギャザー命令で指示される複数のメモリアドレスにそれぞれ対応する要素領域を複数個含む処理単位がメモリシステムに存在するか否かを判定し、前記処理単位が存在する場合、当該処理単位における前記要素領域ごとの要素番号とオフセットを示すロードパケットを前記メモリシステムに出力し、前記メモリシステムから入力されるリプライパケットの前記要素番号に対応して含まれるデータ要素をベクトルレジスタに書き込み、前記メモリアドレスを格納するアドレスレジスタを備え、使用状態を未使用とするアドレスレジスタに格納されるメモリアドレスに対応する要素領域を複数個含む処理単位が存在するか否かを判定し、前記ロードパケットを出力するとき、前記複数の要素領域に対応するメモリアドレスが記憶されているアドレスレジスタの使用状態を使用済に変更する。 In order to achieve the above object, an arithmetic circuit according to a first aspect of the present application determines whether a processing unit including a plurality of element areas corresponding to a plurality of memory addresses indicated by an acquired vector gather instruction exists in a memory system, and if the processing unit exists, outputs a load packet to the memory system indicating an element number and offset for each of the element areas in the processing unit, writes a data element included corresponding to the element number of a reply packet input from the memory system to a vector register, and is provided with an address register for storing the memory address, determines whether a processing unit including a plurality of element areas corresponding to a memory address stored in an address register whose usage state is unused exists, and when outputting the load packet, changes the usage state of the address register in which the memory addresses corresponding to the plurality of element areas are stored to used .
本願の第2態様に係る演算回路におけるデータ処理方法は、前記演算回路は、メモリアドレスを格納するアドレスレジスタを備え、前記演算回路が、取得されるベクトルギャザー命令で指示される複数の取得されるメモリアドレスにそれぞれ対応する要素領域を複数個含む処理単位がメモリシステムに存在するか否かを判定し、前記処理単位が存在する場合、当該処理単位における前記要素領域ごとの要素番号とオフセットを示すロードパケットを前記メモリシステムに出力し、前記メモリシステムから入力されるリプライパケットの前記要素番号に対応して含まれるデータ要素をベクトルレジスタに書き込み、使用状態を未使用とするアドレスレジスタに格納されるメモリアドレスに対応する要素領域を複数個含む処理単位が存在するか否かを判定し、前記ロードパケットを出力するとき、前記複数の要素領域に対応するメモリアドレスが記憶されているアドレスレジスタの使用状態を使用済に変更する。 A data processing method in an arithmetic circuit according to a second aspect of the present application comprises the arithmetic circuit comprising an address register for storing a memory address, the arithmetic circuit determining whether or not a processing unit including a plurality of element areas each corresponding to a plurality of acquired memory addresses indicated by an acquired vector gather instruction exists in a memory system, and if the processing unit exists, the arithmetic circuit outputs a load packet to the memory system indicating an element number and an offset for each of the element areas in the processing unit, writes a data element included corresponding to the element number of a reply packet input from the memory system to a vector register, determines whether or not a processing unit including a plurality of element areas corresponding to a memory address stored in an address register whose usage state is unused exists, and when outputting the load packet, changes the usage state of the address register in which the memory addresses corresponding to the plurality of element areas are stored to used .
本願の一態様によれば、コンピュータシステムの性能向上を実現することができる。 According to one aspect of the present application, it is possible to improve the performance of a computer system.
以下、本願の実施形態について、図面を参照して説明する。図1は、本実施形態に係るコンピュータシステムの構成例を示す概略ブロック図である。本実施形態に係るコンピュータシステムは、複数のコア101とメモリシステム103とを備える。個々のコア101は、それぞれチップ内ネットワーク102を経由して各種のデータを伝送可能にメモリシステム103と有線で接続される。本実施形態では、コア101の数は1個でもよいし、2個以上のいずれの個数であってもよい。個々のコア101は、プロセッサコアに相当する。コア101ごとに独立な演算処理がなされうる。個々のコア101は、命令列の解釈、実行などを実行するための論理回路を備える。
Hereinafter, an embodiment of the present application will be described with reference to the drawings. FIG. 1 is a schematic block diagram showing an example of the configuration of a computer system according to this embodiment. The computer system according to this embodiment includes a plurality of
次に、本実施形態に係るコア501の構成例について説明する。図5は、本実施形態に係るコア501の構成例を示す概略ブロック図である。コア501の構成は、図1に例示される個々のコア101の構成と同様である。コア501は、スカラーユニット502、ベクトルユニット503およびロードパケット生成回路505を含んで構成される。
スカラーユニット502は、自部に提供される各種の命令をデコードし、各種のスカラ演算を実行する演算回路である。
ベクトルユニット503は、各種のベクトル演算を行う演算回路である。
ロードパケット生成回路505は、データの読み出しの指示を通知するためのロードパケットを生成する。ロードパケット生成回路505は、生成したロードパケットをメモリシステム504に出力する。
Next, an example of the configuration of the
The
The
The load
次に、本実施形態に係るベクトルユニット601について説明する。図6は、本実施形態に係るベクトルユニット601の構成例を示す概略ブロック図である。ベクトルユニット601の構成は、図5に例示されるベクトルユニット503の構成と同様である。
ベクトルユニット601は、ベクトルレジスタファイル602と演算器603を含んで構成される。ベクトルレジスタファイル602は、1個または複数個のベクトルレジスタを備える。個々のベクトルレジスタは、複数の要素レジスタを備える。ベクトルレジスタファイル602におけるベクトルレジスタの個数は1個または2個以上であれば、何個であってもよい。個々のベクトルレジスタにおける要素レジスタの個数は、2個以上であれば何個であってもよい。以下の説明では、ベクトルレジスタファイル602におけるベクトルレジスタの個数を64個とし、個々のベクトルレジスタにおける要素レジスタの個数を64個とする場合を例示する。ロードパケット生成回路701は、個々のベクトルレジスタから8個の要素レジスタにそれぞれ格納されたメモリアドレスを同時に読み出し可能と仮定する。
Next, the
The
次に、本実施形態に係るロードパケット生成回路701について説明する。図7は、本実施形態に係るロードパケット生成回路701の構成例を示す概略ブロック図である。ロードパケット生成回路701の構成は、図5に例示されるロードパケット生成回路505の構成と同様である。
ロードパケット生成回路701は、複数要素検出回路702とロードパケット発行回路703を含んで構成される。複数要素検出回路702は、ベクトルレジスタから読み出される8個のメモリアドレスを特定し、メモリシステムにおいて特定したメモリアドレスで指示される要素領域を複数個含む処理単位の有無を検出する。
Next, the load packet generating
The load
ロードパケット発行回路703は、複数要素検出回路702による検出結果として、複数個のデータ要素の読み出し、または、1個のデータ要素の読み出しを指示するためのロードパケットを生成する。ロードパケット生成回路701は、生成したロードパケットをメモリシステム504に発行する。なお、以下の説明では、ロードパケット生成回路701は、同時に2個または1個のデータ要素の読み出しを指示する場合を主に例示するが、これには限られない。ロードパケット生成回路701は、同一の処理単位内における3個以上N個(後述)以下のデータ要素の存在を判定したことに応じて、3個以上N個以下のデータ要素の読み出しを指示可能としてもよい。
The load packet issuing
次に、本実施形態に係る複数要素検出回路702について説明する。図8は、本実施形態に係る複数要素検出回路702の構成例を示す構成図である。複数要素検出回路702は、N個のアドレスレジスタA801~H808と、N(N-1)/2個の比較器809~816を備える。Nは、読出アドレス数に相当する自然数である。読出アドレス数は、複数要素検出回路702がベクトルレジスタから同時に読出が指示されるアドレスの数である。図8の例では、読出アドレス数Nは8個である。読出アドレス数は、8個に限られず、2個以上7個以下でもよいし、9個以上であってもよい。
Next, the multiple
複数要素検出回路702は、ベクトルレジスタから読み出した8個のメモリアドレスを、それぞれアドレスレジスタA801~H808に書き込む。複数要素検出回路702は、8個のアドレスレジスタA801~H808のそれぞれに格納されたメモリアドレスに基づいて、それぞれのメモリアドレスに対応する要素領域を複数個含む処理単位が存在するか否かを判定する。図8の例では、アドレスレジスタA801~H808のうち、いずれか2個のそれぞれに格納されたメモリアドレスに対応する要素領域を含む処理単位の存否が判定される。ここで、21個((8-1)×(8-2)/2)の比較器は、それぞれ2個のメモリアドレスからなるメモリアドレスの組ごとに、それぞれの上位アドレスを比較する。複数要素検出回路702は、それぞれの上位アドレスが同一か否かにより、2個のメモリアドレスのそれぞれに対応する要素領域が同一の処理単位に属するか否かを判定することができる。同一と判定された上位アドレスにより、その処理単位が指示される。
The multiple
なお、処理単位とは、メモリシステム504において一度にデータを読み書き可能とする単位を指す。本実施形態では、1個の処理単位において複数のデータ要素のアクセスを可能とする。図3の例では、メモリシステム504の処理単位301は、64バイトの記憶領域を占める。処理単位301は、8ワードに区分され、各ワードは8バイトの記憶領域を占める。各ワードの領域は、それぞれオフセットで指示される。データ要素A 302は、オフセット0x8で指示される。データ要素B 303は、オフセット0x20で指示される。
Note that a processing unit refers to a unit in which data can be read and written at one time in
上位アドレスとは、メモリアドレスを構成する複数ビットの一部をなす上位ビットで表される部分を指す。メモリアドレスの他の一部をなす下位ビットで表される部分がオフセットに相当する。図4の例では、メモリアドレス401は、64ビットで表される。上位アドレス403は、58ビットで表され、メモリシステムの処理単位を示す。オフセット402は、6ビットで表され、1個の処理単位内の個々の要素領域を指す。従って、複数のメモリアドレス間で上位アドレス403が一致することは、それぞれのメモリアドレスに係る要素領域が、同一の処理単位に存在することを意味する。
The upper address refers to a portion of the multiple bits that make up a memory address, represented by the upper bits. The other portion of the memory address, represented by the lower bits, corresponds to the offset. In the example of FIG. 4,
次に、本実施形態に係るロードパケットの一例について説明する。ロードパケットは、ロードパケット発行回路703によりメモリシステム504に対して発行される。図17は、本実施形態に係るロードパケットの一例を示す構成図である。オフセットもしくは要素番号の数(以下、「要素数」と呼ぶことがある)は、それぞれメモリアドレスの数に相当する。図17の例では、いずれも2個である。
Next, an example of a load packet according to this embodiment will be described. The load packet is issued to the
ロードパケット1701は、上位アドレス1702、オフセット0 1703、オフセット1 1704、要素番号0 1705、 要素番号1 1705、種別1707およびベクトルレジスタ番号1708を含んで構成される。種別1707は、有効な要素数を示す。この例では、要素数として、2要素または1要素が指示される。ベクトルレジスタ番号1708は、メモリアドレスの取得元であるベクトルレジスタを示す。即ち、ロードパケット1701は、上位アドレス1702で指示される処理単位のうち、2個のオフセット0、1でそれぞれ指示される要素領域からのデータ要素の読み取りをメモリシステム504に対して指示する指令を含む。要素番号0、1は、それぞれ2個のデータ要素もしくは要素領域に対応付けられ、ロードパケット1701に対する応答とするリプライパケットに含まれる。
次に、本実施形態に係るリプライパケットの一例について説明する。リプライパケットは、メモリシステム504によりベクトルユニット503に返送される。図18は、本実施形態に係るリプライパケットの一例を示す構成図である。図18の例では、要素数は2個である。
Next, an example of a reply packet according to this embodiment will be described. The reply packet is returned to the
リプライパケット1801は、要素番号0 1802、要素番号1 1803、データ0 1804、データ1 1805およびベクトルレジスタ番号1806を格納して構成される。データ0 1804、データ1 1805は、それぞれ要素番号0 1802、要素番号1 1803に対応付けられ、上位アドレス1702で指示される処理単位のうち、オフセット0 1703、オフセット1 1704で指示される要素領域に格納された要素データである。種別1807は、有効な要素数を示す。例えば、種別1807として2と設定される場合、要素番号0 1802、要素番号1 1803、データ0 1804、データ1 1805がいずれも有効であることが示される。例えば、種別1807として1と設定される場合、先頭の1組の要素番号0 1802、データ0 1804が有効であり、後続の要素番号1 1803、データ1 1805が無効であることが示される。
次に本実施形態に係るベクトルギャザー命令に対する動作例について説明する。図2は、本実施形態に係るベクトルギャザー命令の動作例を示す説明図である。ベクトルギャザー命令は、メモリシステムに記憶されているデータから複数のデータ要素を読み出し、読み出したデータ要素をベクトルレジスタに書き込むことを指示する命令である。図2の例では、ベクトルレジスタV0 201において、n個のメモリアドレスA0 202、A1 203、A2 204、…、An-1 206が格納されている。ベクトルギャザー命令により、メモリシステム207のn個のメモリアドレスで指示される要素領域のそれぞれに格納される要素データD0 208、D1 209、D2 210、…、Dn-1 212の読み出しと、読み出した要素データのベクトルレジスタV1 213への書き込みが指示される。
Next, an example of the operation of the vector gather instruction according to this embodiment will be described. FIG. 2 is an explanatory diagram showing an example of the operation of the vector gather instruction according to this embodiment. The vector gather instruction is an instruction to read multiple data elements from data stored in a memory system and write the read data elements to a vector register. In the example of FIG. 2, n memory addresses
図19は、本実施形態に係るベクトルギャザー動作の動作例を示す説明図である。次の説明では、ベクトルギャザー動作は、図5に例示されるコア501により実行される場合を例とする。スカラーユニット1901は、自部に提供される命令をデコードする。デコードした命令がベクトルギャザー命令であるとき、スカラーユニット1901は、当該ベクトルギャザー命令に基づいてベクトルギャザー指示1904、1905を生成する。スカラーユニット1901は、生成したベクトルギャザー指示1904、1905を、それぞれベクトルユニット1902とロードパケット生成回路1903に対して発行する。ベクトルギャザー指示1904は、データの読み取り先を示すメモリアドレスが格納されているベクトルレジスタのベクトルレジスタ番号と、ギャザー結果を格納するベクトルレジスタ、即ち、データの書き込み先とするベクトルレジスタのベクトルレジスタ番号を示す。
Figure 19 is an explanatory diagram showing an example of the vector gather operation according to this embodiment. In the following explanation, the vector gather operation will be performed by the
ベクトルユニット1902には、スカラーユニット1901からベクトルギャザー指示1904が入力される。ベクトルユニット1902は、ベクトルギャザー指示1904のベクトルレジスタ番号で指示されるベクトルレジスタに格納されているメモリアドレス1906を読み出す。ベクトルユニット1902は、読み出したメモリアドレス1906をロードパケット生成回路1903に送付する。図19の例では、一度に8個のメモリアドレス1906が読み出され、読み出されたメモリアドレス1906がロードパケット生成回路1903に送付される。
A vector gather
ロードパケット生成回路1903には、ベクトルユニット1902からメモリアドレス1906が送付される。ロードパケット生成回路1903は、メモリアドレス1906に基づいてロードパケット1908を生成する。ロードパケット生成回路1903は、ベクトルレジスタから読み出される8個のメモリアドレス1906を特定し、メモリシステム1907において特定したメモリアドレス1906により指示される要素領域を複数個含む処理単位の有無を検出する。ロードパケット発行回路703は、検出結果として、一度に複数個のデータ要素の読み出し、または、1個のデータ要素の読み出しを指示するためのロードパケット1908を生成する。ロードパケット1908のデータ構成は、図17に例示されるロードパケット1701のデータ構成と同様となりうる。ロードパケット生成回路1903は、生成したロードパケット1908をメモリシステム1907に送付する。
The load
メモリシステム1907には、ロードパケット生成回路1903からロードパケット1908が入力される。メモリシステム1907は、ロードパケット1908で通知されるオフセットで指示される要素領域からデータ要素を読み出す。メモリシステム1907は、読み出したデータ要素と、オフセットに対応付けられた要素番号とを含むリプライパケット1909を生成する。リプライパケット1909のデータ構成は、図18に例示されるリプライパケット1801のデータ構成と同様となりうる。メモリシステム1907は、生成したリプライパケット1909をロードパケット1908に対する応答としてベクトルユニット1902に返信する。
ベクトルユニット1902は、メモリシステム1907から受信したリプライパケット1909に格納されるデータ要素をベクトルレジスタに書き込む。
A load packet 1908 is input to the
The
次に、ベクトルレジスタへの書き込み処理の例に関して、より詳細に説明する。
図20は、本実施形態に係るベクトルユニット1902からロードパケット生成回路1903へのメモリアドレスの送信例を示す説明図である。ベクトルユニット1902は、ベクトルレジスタファイル2001のベクトルレジスタから、ベクトルギャザー指示で指示されるメモリアドレスが格納されている要素領域からアドレス要素を読み出す。アドレス要素は、メモリアドレスの要素をなすデータ素片である。ベクトルユニット1902は、読み出したアドレス要素をロードパケット生成回路1903に送信する。図20の例では、64個のアドレス要素0 2002~63 2003が、ベクトルレジスタから8要素ずつ順次読み出されロードパケット生成回路1903に送信される。
An example of a write operation to a vector register will now be described in more detail.
20 is an explanatory diagram showing an example of transmission of a memory address from the
ロードパケット生成回路1903は、8要素ごとにベクトルユニット1902から入力されるアドレス要素をメモリアドレスとしてアドレスレジスタA 2004~H 2005にそれぞれ書き込む。なお、ロードパケット生成回路1903は、アドレスレジスタの使用状態を示す使用状態情報を保持してもよい。ロードパケット生成回路1903は、例えば、メモリアドレスを書き込むごとに、書き込み先のアドレスレジスタに係る使用状態情報に示される使用状態を未使用にリセットする。ロードパケット生成回路1903は、メモリアドレスを格納しているアドレスレジスタのうち、ロードパケットの生成に用いられるメモリアドレスを格納しているアドレスレジスタの使用状態情報に示される使用状態を使用済に設定してもよい。
The load
ロードパケット生成回路1903の複数要素検出回路(図7)は、アドレスレジスタA 2004~H 2005に格納された8個のメモリアドレスのうち、2個のメモリアドレスの組ごとに、それぞれのメモリアドレスにより指示される要素領域が同一処理単位に属すか否かを検出する。図9~16は、ロードパケット生成回路1903により、個々の比較器による比較結果に基づき、1個のロードパケットによる読み出し対象とするデータ要素の判定に用いる判定ルールを例示する。この判定において、2個のデータ要素を読み出すか、1個のデータ要素を読み出すかが判定される。ロードパケット生成回路1903は、図9~16のそれぞれに例示される判定ルールに基づく判定を実行し、それぞれの判定結果に基づいてロードパケットを生成し、生成したロードパケットをメモリシステム1907に送信する。
The multiple element detection circuit (FIG. 7) of the load
図9に例示される判定ルールは、アドレスレジスタAに格納されたメモリアドレスとアドレスレジスタB~Hに格納されたメモリアドレスのいずれかとの比較結果に基づいてロードパケットの生成に用いられる。当該判定ルールは、比較結果に応じて次の処理(A1)~(A8)を指示する。 The judgment rule illustrated in FIG. 9 is used to generate a load packet based on the result of a comparison between the memory address stored in address register A and one of the memory addresses stored in address registers B to H. The judgment rule instructs the next process (A1) to (A8) depending on the comparison result.
(A1)アドレスレジスタAの上位アドレスとアドレスレジスタBの上位アドレスが一致するとき、アドレスレジスタAとアドレスレジスタBのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタBの使用状態情報に示される使用状態を使用済みに変更する。
(A2)アドレスレジスタAの上位アドレスとアドレスレジスタCの上位アドレスが一致するとき、アドレスレジスタAとアドレスレジスタCのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタCの使用状態情報に示される使用状態を使用済に変更する。
(A1) When the upper address of address register A and the upper address of address register B match, a load packet is generated to obtain a data element stored in the memory address stored in each of address register A and address register B, and the usage status indicated in the usage status information of address register B is changed to used.
(A2) When the upper address of address register A and the upper address of address register C match, a load packet is generated to obtain the data elements stored in the memory addresses stored in address register A and address register C, respectively, and the usage status indicated in the usage status information of address register C is changed to used.
(A3)アドレスレジスタAの上位アドレスとアドレスレジスタDの上位アドレスが一致するとき、アドレスレジスタAとアドレスレジスタDのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタDの使用状態情報に示される使用状態を使用済みに変更する。
(A4)アドレスレジスタAの上位アドレスとアドレスレジスタEの上位アドレスが一致するとき、アドレスレジスタAとアドレスレジスタEのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタEの使用状態情報に示される使用状態を使用済に変更する。
(A3) When the upper address of address register A and the upper address of address register D match, a load packet is generated to obtain the data elements stored in the memory addresses stored in address register A and address register D, respectively, and the usage status indicated in the usage status information of address register D is changed to used.
(A4) When the upper address of address register A and the upper address of address register E match, a load packet is generated to obtain the data elements stored in the memory addresses stored in address register A and address register E, respectively, and the usage status indicated in the usage status information of address register E is changed to used.
(A5)アドレスレジスタAの上位アドレスとアドレスレジスタFの上位アドレスが一致するとき、アドレスレジスタAとアドレスレジスタFのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタFの使用状態情報に示される使用状態を使用済に変更する。
(A6)アドレスレジスタAの上位アドレスとアドレスレジスタGの上位アドレスが一致するとき、アドレスレジスタAとアドレスレジスタGのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタGの使用状態情報に示される使用状態を使用済みに変更する。
(A5) When the upper address of address register A and the upper address of address register F match, a load packet is generated to obtain the data elements stored in the memory addresses stored in address register A and address register F, respectively, and the usage status indicated in the usage status information of address register F is changed to used.
(A6) When the upper address of address register A and the upper address of address register G match, a load packet is generated to obtain the data elements stored in the memory addresses stored in address register A and address register G, respectively, and the usage status indicated in the usage status information of address register G is changed to used.
(A7)アドレスレジスタAの上位アドレスとアドレスレジスタHの上位アドレスが一致するとき、アドレスレジスタAとアドレスレジスタHのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタHの使用状態情報に示される使用状態を使用済に変更する。
(A8)アドレスレジスタAの上位アドレスとアドレスレジスタB~Hの上位アドレスのいずれもが一致しないとき、アドレスレジスタAに格納されたメモリアドレスに格納されるデータ要素だけを取得するための1つのロードパケットを生成する。
(A7) When the upper address of address register A and the upper address of address register H match, a load packet is generated to obtain the data elements stored in the memory addresses stored in address register A and address register H, respectively, and the usage status indicated in the usage status information of address register H is changed to used.
(A8) When the upper address of address register A does not match any of the upper addresses of address registers B to H, a single load packet is generated to obtain only the data element stored at the memory address stored in address register A.
図10に例示される判定ルールは、アドレスレジスタBに格納されたメモリアドレスとアドレスレジスタC~Hに格納されたメモリアドレスのいずれかとの比較結果に基づいてロードパケットの生成に用いられる。当該判定ルールは、アドレスレジスタBの使用状態情報に示される使用状態が未使用を示す場合に実行され、当該使用状態が使用済を示す場合には実行されない。当該判定ルールは、次の処理(B1)~(B7)を指示する。 The judgment rule illustrated in FIG. 10 is used to generate a load packet based on the result of comparing the memory address stored in address register B with one of the memory addresses stored in address registers C to H. This judgment rule is executed when the usage status indicated in the usage status information of address register B indicates unused, and is not executed when the usage status indicates used. This judgment rule instructs the following processes (B1) to (B7).
(B1)アドレスレジスタBの上位アドレスとアドレスレジスタCの上位アドレスが一致するとき、アドレスレジスタBとアドレスレジスタCのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタCの使用状態情報に示される使用状態を使用済に変更する。
(B2)アドレスレジスタBの上位アドレスとアドレスレジスタDの上位アドレスが一致するとき、アドレスレジスタBとアドレスレジスタDのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタDの使用状態情報に示される使用状態を使用済みに変更する。
(B1) When the upper address of address register B and the upper address of address register C match, a load packet is generated to obtain the data elements stored in the memory addresses stored in address register B and address register C, and the usage status indicated in the usage status information of address register C is changed to used.
(B2) When the upper address of address register B and the upper address of address register D match, a load packet is generated to obtain the data elements stored in the memory addresses stored in address register B and address register D, respectively, and the usage status indicated in the usage status information of address register D is changed to used.
(B3)アドレスレジスタBの上位アドレスとアドレスレジスタEの上位アドレスが一致するとき、アドレスレジスタBとアドレスレジスタEのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタEの使用状態情報に示される使用状態を使用済に変更する。
(B4)アドレスレジスタBの上位アドレスとアドレスレジスタFの上位アドレスが一致するとき、アドレスレジスタBとアドレスレジスタFのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタFの使用状態情報に示される使用状態を使用済に変更する。
(B3) When the upper address of address register B and the upper address of address register E match, a load packet is generated to obtain the data elements stored in the memory addresses stored in address register B and address register E, respectively, and the usage status indicated in the usage status information of address register E is changed to used.
(B4) When the upper address of address register B and the upper address of address register F match, a load packet is generated to obtain the data elements stored in the memory addresses stored in address register B and address register F, respectively, and the usage status indicated in the usage status information of address register F is changed to used.
(B5)アドレスレジスタBの上位アドレスとアドレスレジスタGの上位アドレスが一致するとき、アドレスレジスタBとアドレスレジスタGのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタGの使用状態情報に示される使用状態を使用済みに変更する。
(B6)アドレスレジスタBの上位アドレスとアドレスレジスタHの上位アドレスが一致するとき、アドレスレジスタBとアドレスレジスタHのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタHの使用状態情報に示される使用状態を使用済に変更する。
(B7)アドレスレジスタBの上位アドレスとアドレスレジスタC~Hの上位アドレスのいずれもが一致しないとき、アドレスレジスタBに格納されたメモリアドレスに格納されるデータ要素だけを取得するための1つのロードパケットを生成する。
(B5) When the upper address of address register B and the upper address of address register G match, a load packet is generated to obtain the data elements stored in the memory addresses stored in address register B and address register G, and the usage status indicated in the usage status information of address register G is changed to used.
(B6) When the upper address of address register B and the upper address of address register H match, a load packet is generated to obtain the data elements stored at the memory addresses stored in address register B and address register H, respectively, and the usage status indicated in the usage status information of address register H is changed to used.
(B7) When the upper address of address register B does not match any of the upper addresses of address registers C to H, a single load packet is generated to obtain only the data element stored at the memory address stored in address register B.
図11に例示される判定ルールは、アドレスレジスタCに格納されたメモリアドレスとアドレスレジスタD~Hに格納されたメモリアドレスのいずれかとの比較結果に基づいてロードパケットの生成に用いられる。当該判定ルールは、アドレスレジスタCの使用状態情報に示される使用状態が未使用を示す場合に実行され、当該使用状態が使用済を示す場合には実行されない。当該判定ルールは、次の処理(C1)~(C6)を指示する。 The judgment rule illustrated in FIG. 11 is used to generate a load packet based on the result of comparing the memory address stored in address register C with one of the memory addresses stored in address registers D to H. This judgment rule is executed when the usage status indicated in the usage status information of address register C indicates unused, and is not executed when the usage status indicates used. This judgment rule instructs the following processes (C1) to (C6).
(C1)アドレスレジスタCの上位アドレスとアドレスレジスタDの上位アドレスが一致するとき、アドレスレジスタCとアドレスレジスタDのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタDの使用状態情報に示される使用状態を使用済みに変更する。
(C2)アドレスレジスタCの上位アドレスとアドレスレジスタEの上位アドレスが一致するとき、アドレスレジスタCとアドレスレジスタEのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタEの使用状態情報に示される使用状態を使用済に変更する。
(C1) When the upper address of address register C and the upper address of address register D match, a load packet is generated to obtain a data element stored in the memory address stored in each of address register C and address register D, and the usage status indicated in the usage status information of address register D is changed to used.
(C2) When the upper address of address register C and the upper address of address register E match, a load packet is generated to obtain the data elements stored in the memory addresses stored in address register C and address register E, respectively, and the usage status indicated in the usage status information of address register E is changed to used.
(C3)アドレスレジスタCの上位アドレスとアドレスレジスタFの上位アドレスが一致するとき、アドレスレジスタCとアドレスレジスタFのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタFの使用状態情報に示される使用状態を使用済に変更する。
(C4)アドレスレジスタCの上位アドレスとアドレスレジスタGの上位アドレスが一致するとき、アドレスレジスタCとアドレスレジスタGのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタGの使用状態情報に示される使用状態を使用済みに変更する。
(C3) When the upper address of address register C and the upper address of address register F match, a load packet is generated to obtain the data elements stored in the memory addresses stored in address register C and address register F, respectively, and the usage status indicated in the usage status information of address register F is changed to used.
(C4) When the upper address of address register C and the upper address of address register G match, a load packet is generated to obtain the data elements stored in the memory addresses stored in address register C and address register G, respectively, and the usage status indicated in the usage status information of address register G is changed to used.
(C5)アドレスレジスタCの上位アドレスとアドレスレジスタHの上位アドレスが一致するとき、アドレスレジスタCとアドレスレジスタHのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタHの使用状態情報に示される使用状態を使用済に変更する。
(C6)アドレスレジスタCの上位アドレスとアドレスレジスタD~Hの上位アドレスのいずれもが一致しないとき、アドレスレジスタCに格納されたメモリアドレスに格納されるデータ要素だけを取得するための1つのロードパケットを生成する。
(C5) When the upper address of address register C and the upper address of address register H match, a load packet is generated to obtain the data elements stored in the memory addresses stored in address register C and address register H, respectively, and the usage status indicated in the usage status information of address register H is changed to used.
(C6) When the upper address of address register C does not match any of the upper addresses of address registers D to H, a single load packet is generated to obtain only the data element stored at the memory address stored in address register C.
図12に例示される判定ルールは、アドレスレジスタDに格納されたメモリアドレスとアドレスレジスタE~Hに格納されたメモリアドレスのいずれかとの比較結果に基づいてロードパケットの生成に用いられる。当該判定ルールは、アドレスレジスタDの使用状態情報に示される使用状態が未使用を示す場合に実行され、当該使用状態が使用済を示す場合には実行されない。当該判定ルールは、次の処理(D1)~(D5)を指示する。 The judgment rule illustrated in FIG. 12 is used to generate a load packet based on the result of comparing the memory address stored in address register D with one of the memory addresses stored in address registers E to H. This judgment rule is executed when the usage status indicated in the usage status information of address register D indicates unused, and is not executed when the usage status indicates used. This judgment rule instructs the following processes (D1) to (D5).
(D1)アドレスレジスタDの上位アドレスとアドレスレジスタEの上位アドレスが一致するとき、アドレスレジスタDとアドレスレジスタEのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタEの使用状態情報に示される使用状態を使用済に変更する。
(D2)アドレスレジスタDの上位アドレスとアドレスレジスタFの上位アドレスが一致するとき、アドレスレジスタDとアドレスレジスタFのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタFの使用状態情報に示される使用状態を使用済に変更する。
(D1) When the upper address of address register D and the upper address of address register E match, a load packet is generated to obtain a data element stored in the memory address stored in each of address register D and address register E, and the usage status indicated in the usage status information of address register E is changed to used.
(D2) When the upper address of address register D and the upper address of address register F match, a load packet is generated to obtain the data elements stored in the memory addresses stored in address register D and address register F, respectively, and the usage status indicated in the usage status information of address register F is changed to used.
(D3)アドレスレジスタDの上位アドレスとアドレスレジスタGの上位アドレスが一致するとき、アドレスレジスタDとアドレスレジスタGのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタGの使用状態情報に示される使用状態を使用済みに変更する。
(D4)アドレスレジスタDの上位アドレスとアドレスレジスタHの上位アドレスが一致するとき、アドレスレジスタDとアドレスレジスタHのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタHの使用状態情報に示される使用状態を使用済に変更する。
(D5)アドレスレジスタDの上位アドレスとアドレスレジスタE~Hの上位アドレスのいずれもが一致しないとき、アドレスレジスタDに格納されたメモリアドレスに格納されるデータ要素だけを取得するための1つのロードパケットを生成する。
(D3) When the upper address of address register D and the upper address of address register G match, a load packet is generated to obtain the data elements stored in the memory addresses stored in address register D and address register G, respectively, and the usage status indicated in the usage status information of address register G is changed to used.
(D4) When the upper address of address register D and the upper address of address register H match, a load packet is generated to obtain the data elements stored in the memory addresses stored in address register D and address register H, respectively, and the usage status indicated in the usage status information of address register H is changed to used.
(D5) When the upper address of address register D does not match any of the upper addresses of address registers E to H, a single load packet is generated to obtain only the data element stored at the memory address stored in address register D.
図13に例示される判定ルールは、アドレスレジスタEに格納されたメモリアドレスとアドレスレジスタF~Hに格納されたメモリアドレスのいずれかとの比較結果に基づいてロードパケットの生成に用いられる。当該判定ルールは、アドレスレジスタEの使用状態情報に示される使用状態が未使用を示す場合に実行され、当該使用状態が使用済を示す場合には実行されない。当該判定ルールは、次の処理(E1)~(E4)を指示する。 The judgment rule illustrated in FIG. 13 is used to generate a load packet based on the result of comparing the memory address stored in address register E with one of the memory addresses stored in address registers F to H. This judgment rule is executed when the usage status indicated in the usage status information of address register E indicates unused, and is not executed when the usage status indicates used. This judgment rule instructs the following processes (E1) to (E4).
(E1)アドレスレジスタEの上位アドレスとアドレスレジスタFの上位アドレスが一致するとき、アドレスレジスタEとアドレスレジスタFのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタFの使用状態情報に示される使用状態を使用済に変更する。
(E2)アドレスレジスタEの上位アドレスとアドレスレジスタGの上位アドレスが一致するとき、アドレスレジスタEとアドレスレジスタGのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタGの使用状態情報に示される使用状態を使用済みに変更する。
(E1) When the upper address of address register E and the upper address of address register F match, one load packet is generated to obtain the data elements stored in the memory addresses stored in address register E and address register F, respectively, and the usage status indicated in the usage status information of address register F is changed to used.
(E2) When the upper address of address register E and the upper address of address register G match, a load packet is generated to obtain the data elements stored in the memory addresses stored in address register E and address register G, respectively, and the usage status indicated in the usage status information of address register G is changed to used.
(E3)アドレスレジスタEの上位アドレスとアドレスレジスタHの上位アドレスが一致するとき、アドレスレジスタEとアドレスレジスタHのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタHの使用状態情報に示される使用状態を使用済に変更する。
(E4)アドレスレジスタEの上位アドレスとアドレスレジスタF~Hの上位アドレスのいずれもが一致しないとき、アドレスレジスタEに格納されたメモリアドレスに格納されるデータ要素だけを取得するための1つのロードパケットを生成する。
(E3) When the upper address of address register E and the upper address of address register H match, a load packet is generated to obtain the data elements stored in the memory addresses stored in address register E and address register H, respectively, and the usage status indicated in the usage status information of address register H is changed to used.
(E4) When the upper address of address register E does not match any of the upper addresses of address registers F to H, a single load packet is generated to obtain only the data element stored at the memory address stored in address register E.
図14に例示される判定ルールは、アドレスレジスタFに格納されたメモリアドレスとアドレスレジスタG~Hに格納されたメモリアドレスのいずれかとの比較結果に基づいてロードパケットの生成に用いられる。当該判定ルールは、アドレスレジスタFの使用状態情報に示される使用状態が未使用を示す場合に実行され、当該使用状態が使用済を示す場合には実行されない。当該判定ルールは、次の処理(F1)~(F3)を指示する。 The judgment rule illustrated in FIG. 14 is used to generate a load packet based on the result of comparing the memory address stored in address register F with one of the memory addresses stored in address registers G to H. This judgment rule is executed when the usage status indicated in the usage status information of address register F indicates unused, and is not executed when the usage status indicates used. This judgment rule instructs the following processes (F1) to (F3).
(F1)アドレスレジスタFの上位アドレスとアドレスレジスタGの上位アドレスが一致するとき、アドレスレジスタFとアドレスレジスタGのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタGの使用状態情報に示される使用状態を使用済みに変更する。
(F2)アドレスレジスタFの上位アドレスとアドレスレジスタHの上位アドレスが一致するとき、アドレスレジスタFとアドレスレジスタHのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタHの使用状態情報に示される使用状態を使用済に変更する。
(F3)アドレスレジスタFの上位アドレスとアドレスレジスタG、Hの上位アドレスのいずれもが一致しないとき、アドレスレジスタFに格納されたメモリアドレスに格納されるデータ要素だけを取得するための1つのロードパケットを生成する。
(F1) When the upper address of address register F and the upper address of address register G match, one load packet is generated to obtain the data elements stored in the memory addresses stored in address register F and address register G, and the usage status indicated in the usage status information of address register G is changed to used.
(F2) When the upper address of address register F and the upper address of address register H match, a load packet is generated to obtain the data elements stored at the memory addresses stored in address register F and address register H, respectively, and the usage status indicated in the usage status information of address register H is changed to used.
(F3) When the upper address of address register F does not match any of the upper addresses of address registers G and H, a single load packet is generated to obtain only the data element stored at the memory address stored in address register F.
図15に例示される判定ルールは、アドレスレジスタGに格納されたメモリアドレスとアドレスレジスタHに格納されたメモリアドレスとの比較結果に基づいてロードパケットの生成に用いられる。当該判定ルールは、アドレスレジスタGの使用状態情報に示される使用状態が未使用を示す場合に実行され、当該使用状態が使用済を示す場合には実行されない。当該判定ルールは、次の処理(G1)、(G2)を指示する。 The judgment rule illustrated in FIG. 15 is used to generate a load packet based on the result of comparing the memory address stored in address register G with the memory address stored in address register H. This judgment rule is executed when the usage status indicated in the usage status information of address register G indicates unused, and is not executed when the usage status indicates used. This judgment rule instructs the following processes (G1) and (G2).
(G1)アドレスレジスタGの上位アドレスとアドレスレジスタHの上位アドレスが一致するとき、アドレスレジスタFとアドレスレジスタHのそれぞれに格納されたメモリアドレスに格納されるデータ要素を取得するための1つのロードパケットを生成し、アドレスレジスタHの使用状態情報に示される使用状態を使用済に変更する。
(G2)アドレスレジスタGの上位アドレスとアドレスレジスタHの上位アドレスと一致しないとき、アドレスレジスタGに格納されたメモリアドレスに格納されるデータ要素だけを取得するための1つのロードパケットを生成する。
(G1) When the upper address of address register G and the upper address of address register H match, a load packet is generated to obtain the data elements stored in the memory addresses stored in address register F and address register H, and the usage status indicated in the usage status information of address register H is changed to used.
(G2) When the upper address of address register G does not match the upper address of address register H, one load packet is generated to obtain only the data element stored at the memory address stored in address register G.
図16に例示される判定ルールは、アドレスレジスタGの使用状態情報に示される使用状態が未使用を示す場合に実行され、当該使用状態が使用済を示す場合には実行されない。当該判定ルールは、アドレスレジスタGに格納されたメモリアドレスに格納されるデータ要素だけを取得するための1つのロードパケットを生成する。 The judgment rule illustrated in FIG. 16 is executed when the usage status indicated in the usage status information of address register G indicates unused, and is not executed when the usage status indicates used. This judgment rule generates one load packet for obtaining only the data element stored in the memory address stored in address register G.
ロードパケット生成回路1903のロードパケット発行回路(図7)は、上記の判定ルールによる判定結果に従って、ロードパケットを生成し、生成したロードパケットをメモリシステム1907に送付する。
2個のデータ要素の読み出しに係るロードパケットを生成する際、ロードパケット発行回路は、特定された2個のメモリアドレスのそれぞれのオフセットと要素番号としてオフセット0、1と要素番号0、1をそれぞれ対応付けて含める。また、ロードパケット発行回路は、それらのメモリアドレスの上位アドレスと、種別として読み出しに係る要素数2をロードパケットに含める。
The load packet issuing circuit (FIG. 7) of the load
When generating a load packet for reading two data elements, the load packet issuing circuit includes
1個のデータ要素の読み出しに係るロードパケットを生成する際、ロードパケット発行回路は、特定された1個のメモリアドレスのオフセット0、要素番号0を対応付けて含め、さらにメモリアドレスの上位アドレスと種別として読み出しに係る要素数1をロードパケットに含める。なお、ロードパケット発行回路は、ベクトルギャザー指示から書き込み先となるベクトルレジスタ番号を抽出し、抽出したベクトルレジスタ番号をロードパケットに含める。 When generating a load packet for reading one data element, the load packet issuing circuit includes offset 0 and element number 0 of the identified memory address in the load packet, and also includes the upper address of the memory address and the number of elements to be read, 1, as the type. In addition, the load packet issuing circuit extracts the vector register number to be written to from the vector gather instruction, and includes the extracted vector register number in the load packet.
メモリシステム1907は、ロードパケット生成回路1903から入力されるロードパケットに格納された上位アドレスで指示される処理単位を特定する。メモリシステム1907は、ロードパケットに格納された種別に基づいて特定した処理単位から2個のデータ要素を読み出すか、1個のデータ要素を読み出すかを判定する。メモリシステム1907は、ロードパケットに格納されたオフセットを用いて、処理単位のうちデータ要素を読み出す要素領域を特定する。メモリシステム1907は、ロードパケットにおいてオフセットに対応付けられた要素番号と、そのオフセットに基づいて特定された要素領域から読み出されたデータ要素を対応付けて含めリプライパケットを生成する。ここで、メモリシステム1907は、ロードパケットに格納された種別とベクトルレジスタ番号をリプライパケットに含める。メモリシステム1907は、生成したリプライパケットをロードパケットの入力元となるコア(図5)に送付する。
The
コアのベクトルユニット(図5)は、メモリシステム1907から受信したリプライパケットに記述された種別に基づいて、2個のデータ要素を書き込むか、1個のデータ要素を書き込むかを判定する。ベクトルユニットは、受信したリプライパケットからベクトルレジスタ番号と要素番号ごとに対応するデータ要素を読み出す。ベクトルユニットは、ベクトルレジスタ番号で指示されるベクトルレジスタの要素番号ごとに指示される要素領域に対応するデータ要素を書き込む。
The vector unit of the core (Figure 5) determines whether to write two data elements or one data element based on the type described in the reply packet received from the
上記の説明では、図17に示されるように、データ要素の要素数を示す種別をロードパケットに含める場合を例にしたが、これには限られない。ロードパケット生成回路1903は、種別に代え、要素番号0以外の各要素番号(例えば、要素番号1)に対応付けて、有効か否かを示す有効性ビットを含めてロードパケットを生成してもよい。ロードパケットの送信先となるメモリシステム1907は、ロードパケットに記述された有効性ビットに基づいて要素番号ごとの有効性を判定し、対応するオフセットで指示される要素領域から要素データの読み出しの要否を判定することができる。種別により有効な要素数を指示し、ロードパケットにおいて格納順に指示された要素数の要素番号を特定する場合よりも、複数の要素番号を用いて多様な有効性のパターンを指示することができる。
In the above explanation, as shown in FIG. 17, a type indicating the number of elements of a data element is included in the load packet as an example, but this is not limited to this. The load
また、図18に示されるように、リプライパケットに種別を含める場合を例にしたが、これには限られない。メモリシステムは、種別に代え、要素番号0以外の各要素番号に対応付けて、有効性ビットを含めてリプライパケットを生成してもよい。リプライパケットの送信先となるコアのベクトルユニットは、受信したリプライパケットに記述された有効性ビットに基づいて要素番号ごとの有効性を判定し、対応する要素データの書き込みの要否を判定することができる。 As shown in FIG. 18, the reply packet includes the type, but this is not limiting. Instead of the type, the memory system may generate a reply packet including a validity bit associated with each element number other than element number 0. The vector unit of the core to which the reply packet is sent can determine the validity of each element number based on the validity bit written in the received reply packet, and determine whether or not it is necessary to write the corresponding element data.
次に、本実施形態に係る最小構成例について説明する。図21は、本実施形態の最小構成例に係る演算回路2102を示す概略ブロック図である。演算回路2102は、取得されるメモリアドレスにそれぞれ対応する要素領域を複数個含む処理単位がメモリシステム2104に存在するか否かを判定する。演算回路2102は、かかる処理単位が存在する場合、当該処理単位における要素領域ごとの要素番号とオフセットを示すロードパケットをメモリシステム2104に出力する。演算回路2102は、メモリシステム2104から入力されるリプライパケットの要素番号に対応して含まれるデータ要素をベクトルレジスタ2106に書き込む。
Next, an example of a minimum configuration according to this embodiment will be described. FIG. 21 is a schematic block diagram showing an
この構成によれば、演算回路2102は、命令により指示されるメモリアドレスに対応する要素領域を複数個含む処理単位がメモリシステム2104に存在する場合、その処理単位における要素領域のオフセットを示すロードパケットをメモリシステム2104に発行する。また、演算回路2102は、ロードパケットに対する応答として取得されるリプライパケットにより個々の要素領域から読み出されるデータ要素を取得し、ベクトルレジスタ2106に書き込むことができる。1個のロードパケットの発行により要素領域内に格納される複数のデータ要素を読み出すことができる。そのため、各1個のデータ要素を読み出す場合よりもロードパケットの個数ならびにリプライパケットの個数を減らすことができる。そのため、演算回路2102とメモリシステム2104とを接続するチップ内ネットワークの負荷が軽減され、演算回路2102とメモリシステム2104を含むコンピュータシステムの性能を向上することができる。
According to this configuration, when a processing unit including multiple element areas corresponding to a memory address specified by an instruction exists in the
なお、本実施形態は、演算回路2102とメモリシステム2104を備えるコンピュータシステムとして実現されてもよい。メモリシステム2104は、指示されるメモリアドレスに対応する要素領域を複数個含む処理単位からロードパケットで指示されるオフセットごとにデータ要素を読み出し、当該データ要素と当該オフセットに対応する要素番号を含むリプライパケットを生成する。
This embodiment may be realized as a computer system including an
メモリアドレスは、それぞれ上位アドレスとオフセットを有し、演算回路2102は、複数のメモリアドレス間で上位アドレスが同一であるとき、複数のメモリアドレスのそれぞれに対応する要素領域を複数個含む処理単位が存在すると判定し、ロードパケットに同一と判定した上位アドレスを含めてもよい。
この構成によれば、上位アドレスを用いて、指示されるメモリアドレスに対応する複数の要素領域を有する処理単位の存在の有無が判定され、その処理単位を示す上位アドレスがメモリシステム2104に通知される。そのため、メモリシステム2104は、データ要素の読み出しに係る処理単位を容易に特定することができる。
Each memory address has an upper address and an offset, and when the upper addresses are identical between multiple memory addresses, the
According to this configuration, the upper address is used to determine whether or not there is a processing unit having multiple element areas corresponding to the specified memory address, and the upper address indicating the processing unit is notified to the
演算回路2102は、ロードパケットに上位アドレスが同一なメモリアドレスの要素数を含めてもよい。
この構成によれば、読み出し対象となる有効なデータ要素の個数がメモリシステム2104に通知される。
The
With this arrangement,
演算回路2102は、ロードパケットに要素番号の有効性を示す有効性フラグを含めてもよい。
この構成によれば、読み出し対象となる有効なデータ要素がメモリシステム2104に通知される。
The
With this arrangement,
演算回路2102は、メモリアドレスを格納するアドレスレジスタを備え、使用状態を未使用とするアドレスレジスタに格納されるメモリアドレスに対応する要素領域を複数個含む処理単位が存在するか否かを判定し、ロードパケットを出力するとき、前記複数の要素領域に対応するメモリアドレスが記憶されているアドレスレジスタの使用状態を使用済に変更してもよい。
この構成によれば、ロードパケットの出力によりデータ要素の読み出し対象として指示したメモリアドレスに対して、再度のデータ要素を読み出すことが回避される。
The
According to this configuration, it is possible to avoid reading a data element again from a memory address designated as a target for reading a data element by outputting a load packet.
演算回路2102は、ロードパケットにベクトルレジスタのベクトルレジスタ番号を含めてもよい。また、本実施形態は、かかる演算回路とメモリシステム2104を備えるコンピュータシステムとして実現されてもよい。
この構成により、メモリシステム2104にデータ要素の書き込み先とするベクトルレジスタ番号を通知し、読み出し対象とするデータ要素とともに当該ベクトルレジスタ番号を含むリプライパケットを生成させることができる。データ要素の書き込みにおいて、ロードパケットの送信に対するリプライパケットの受信状態を管理せずに、リプライパケットを参照してデータ要素の書き込み先とするベクトルレジスタを特定することができる。
The
With this configuration, the
上記のようなベクトルギャザー命令は、行列演算に係るアプリケーションプログラム(以下、「アプリケーション」と呼ぶ)の実行に際し、しばしば実行されることがある。演算対象となる行列は、密行列よりも疎行列の方が一般的である。疎行列とは、非ゼロ要素が少ない行列である。そのため、疎行列ベクトル積の演算性能がアプリケーション全体の演算性能に対して支配的となりがちである。コンピュータシステムは、疎行列ベクトル積の演算の際、疎行列の非ゼロ要素だけをメモリシステムの連続領域に格納することがある。その場合、メモリシステムに格納される非ゼロ要素へのアクセスは連続アクセスとなる。他方、メモリシステムに格納されるベクトルへのアクセスは非連続アクセスとなる。疎行列の非ゼロ要素に対応するベクトルの要素がアクセスされるためである。その場合には、ベクトルへのアクセスではベクトルギャザー命令が使用されうる。本実施形態によりベクトルギャザー命令に対する性能を向上することで疎行列ベクトル性能が高いコンピュータシステムを実現することができる。 The above-mentioned vector gather instruction is often executed when executing an application program (hereinafter referred to as "application") related to matrix operations. The matrix to be operated on is generally a sparse matrix rather than a dense matrix. A sparse matrix is a matrix with few non-zero elements. Therefore, the operation performance of the sparse matrix vector product tends to dominate the operation performance of the entire application. When performing a sparse matrix vector product, a computer system may store only the non-zero elements of the sparse matrix in a contiguous area of the memory system. In this case, access to the non-zero elements stored in the memory system is contiguous access. On the other hand, access to the vector stored in the memory system is non-contiguous access. This is because the elements of the vector corresponding to the non-zero elements of the sparse matrix are accessed. In this case, the vector gather instruction may be used to access the vector. This embodiment improves the performance of the vector gather instruction, thereby realizing a computer system with high sparse matrix vector performance.
以上、本願のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 Although several embodiments of the present application have been described above, these embodiments are presented as examples and are not intended to limit the scope of the invention. These embodiments can be implemented in various other forms, and various omissions, substitutions, and modifications can be made without departing from the gist of the invention. These embodiments and their modifications are included in the scope of the invention and its equivalents as set forth in the claims, as well as in the scope and gist of the invention.
101…コア、102…チップ内ネットワーク、103…メモリシステム、201、213…ベクトルレジスタ、207…メモリシステム、301…処理単位、401…メモリアドレス、402…オフセット、403…上位アドレス、501…コア、502…スカラーユニット、503…ベクトルユニット、504…メモリシステム、505…ロードパケット生成回路、601…ベクトルユニット、602…ベクトルレジスタファイル、603…演算器、701…ロードパケット生成回路、702…複数要素検出回路、703…ロードパケット発行回路、801~808…アドレスレジスタ、810~816…比較器、1901…スカラーユニット、1902…ベクトルユニット、1903…ロードパケット生成回路、1907…メモリシステム、2001…ベクトルレジスタファイル、2004、2005…アドレスレジスタ、2102…演算回路、2104…メモリシステム、2106…ベクトルレジスタ 101...core, 102...intra-chip network, 103...memory system, 201, 213...vector register, 207...memory system, 301...processing unit, 401...memory address, 402...offset, 403...upper address, 501...core, 502...scalar unit, 503...vector unit, 504...memory system, 505...load packet generation circuit, 601...vector unit, 602...vector register file, 603...arithmetic unit, 701...load packet generation circuit, 702...multiple element detection circuit, 703...load packet issuance circuit, 801-808...address register, 810-816...comparator, 1901...scalar unit, 1902...vector unit, 1903...load packet generation circuit, 1907...memory system, 2001...vector register file, 2004, 2005...address register, 2102...arithmetic circuit, 2104...memory system, 2106...vector register
Claims (8)
前記処理単位が存在する場合、当該処理単位における前記要素領域ごとの要素番号とオフセットを示すロードパケットを前記メモリシステムに出力し、
前記メモリシステムから入力されるリプライパケットの前記要素番号に対応して含まれるデータ要素をベクトルレジスタに書き込み、
前記メモリアドレスを格納するアドレスレジスタを備え、
使用状態を未使用とするアドレスレジスタに格納されるメモリアドレスに対応する要素領域を複数個含む処理単位が存在するか否かを判定し、
前記ロードパケットを出力するとき、前記複数の要素領域に対応するメモリアドレスが記憶されているアドレスレジスタの使用状態を使用済に変更する
演算回路。 determining whether or not a processing unit including a plurality of element areas respectively corresponding to a plurality of memory addresses designated by the obtained vector gather instruction exists in the memory system;
If the processing unit exists, outputting a load packet to the memory system indicating an element number and an offset for each element area in the processing unit;
writing a data element included in a reply packet input from the memory system corresponding to the element number into a vector register;
an address register for storing the memory address;
determining whether or not there is a processing unit including a plurality of element areas corresponding to a memory address stored in an address register whose usage state is unused;
When the load packet is output, the usage state of the address register in which the memory addresses corresponding to the plurality of element areas are stored is changed to "used."
Arithmetic circuit.
複数のメモリアドレス間で上位アドレスが同一であるとき、
前記複数のメモリアドレスのそれぞれに対応する要素領域を複数個含む処理単位が存在すると判定し、
前記ロードパケットに前記同一の上位アドレスを含める
請求項1に記載の演算回路。 Each of the memory addresses has an upper address and an offset,
When multiple memory addresses have the same upper address,
determining that there is a processing unit including a plurality of element areas corresponding to each of the plurality of memory addresses;
The arithmetic circuit according to claim 1 , wherein the load packet includes the same upper address.
請求項1に記載の演算回路。 The arithmetic circuit according to claim 1 , wherein the load packet includes the number of elements of the memory addresses having the same upper address.
請求項1に記載の演算回路。 The arithmetic circuit according to claim 1 , wherein the load packet includes a validity flag indicating validity of the element number.
請求項1に記載の演算回路。 The arithmetic circuit according to claim 1 , wherein the load packet includes a vector register number of the vector register.
前記演算回路は、
取得されるベクトルギャザー命令で指示される複数のメモリアドレスにそれぞれ対応する要素領域を複数個含む処理単位が前記メモリシステムに存在するか否かを判定し、
前記処理単位が存在する場合、当該処理単位における前記要素領域ごとの要素番号とオフセットを示すロードパケットを前記メモリシステムに出力し、
前記メモリシステムから入力されるリプライパケットの前記要素番号に対応して含まれるデータ要素をベクトルレジスタに書き込み、
前記メモリシステムは、
前記処理単位から前記ロードパケットで指示されるオフセットごとにデータ要素を読み出し、
当該データ要素と前記オフセットに対応する要素番号を含む前記リプライパケットを生成する
コンピュータシステム。 A computer system comprising an arithmetic circuit and a memory system,
The arithmetic circuit includes:
determining whether or not a processing unit including a plurality of element regions respectively corresponding to a plurality of memory addresses designated by the obtained vector gather instruction exists in the memory system;
If the processing unit exists, outputting a load packet to the memory system indicating an element number and an offset for each element area in the processing unit;
writing a data element included in a reply packet input from the memory system corresponding to the element number into a vector register;
The memory system includes:
reading data elements from said processing unit at each offset indicated by said load packet;
generating said reply packet including said data element and an element number corresponding to said offset.
前記演算回路は、メモリアドレスを格納するアドレスレジスタを備え、
前記演算回路が、
取得されるベクトルギャザー命令で指示される複数のメモリアドレスにそれぞれ対応する要素領域を複数個含む処理単位がメモリシステムに存在するか否かを判定し、
前記処理単位が存在する場合、当該処理単位における前記要素領域ごとの要素番号とオフセットを示すロードパケットを前記メモリシステムに出力し、
前記メモリシステムから入力されるリプライパケットの前記要素番号に対応して含まれるデータ要素をベクトルレジスタに書き込み、
使用状態を未使用とするアドレスレジスタに格納されるメモリアドレスに対応する要素領域を複数個含む処理単位が存在するか否かを判定し、
前記ロードパケットを出力するとき、前記複数の要素領域に対応するメモリアドレスが記憶されているアドレスレジスタの使用状態を使用済に変更する
データ処理方法。 A data processing method in an arithmetic circuit, comprising the steps of:
the arithmetic circuit includes an address register for storing a memory address;
The arithmetic circuit comprises:
determining whether or not a processing unit including a plurality of element areas respectively corresponding to a plurality of memory addresses designated by the obtained vector gather instruction exists in the memory system;
If the processing unit exists, outputting a load packet to the memory system indicating an element number and an offset for each element area in the processing unit;
writing a data element included in a reply packet input from the memory system corresponding to the element number into a vector register;
determining whether or not there is a processing unit including a plurality of element areas corresponding to a memory address stored in an address register whose usage state is unused;
When the load packet is output, the usage state of the address register in which the memory addresses corresponding to the plurality of element areas are stored is changed to "used."
Data processing methods.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2023034908A JP7601434B2 (en) | 2023-03-07 | 2023-03-07 | Integrated circuit, computer system and data processing method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2023034908A JP7601434B2 (en) | 2023-03-07 | 2023-03-07 | Integrated circuit, computer system and data processing method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2024126505A JP2024126505A (en) | 2024-09-20 |
| JP7601434B2 true JP7601434B2 (en) | 2024-12-17 |
Family
ID=92761817
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2023034908A Active JP7601434B2 (en) | 2023-03-07 | 2023-03-07 | Integrated circuit, computer system and data processing method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7601434B2 (en) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010218350A (en) | 2009-03-18 | 2010-09-30 | Nec Corp | Information processor |
| JP2013182420A (en) | 2012-03-01 | 2013-09-12 | Nec Corp | Vector processor and vector processing method |
| JP2020052862A (en) | 2018-09-28 | 2020-04-02 | 日本電気株式会社 | Computer and calculation method |
-
2023
- 2023-03-07 JP JP2023034908A patent/JP7601434B2/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010218350A (en) | 2009-03-18 | 2010-09-30 | Nec Corp | Information processor |
| JP2013182420A (en) | 2012-03-01 | 2013-09-12 | Nec Corp | Vector processor and vector processing method |
| JP2020052862A (en) | 2018-09-28 | 2020-04-02 | 日本電気株式会社 | Computer and calculation method |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2024126505A (en) | 2024-09-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20220237041A1 (en) | Parallel processing system performing in-memory processing | |
| US9164951B2 (en) | Multiprocessor system, execution control method and execution control program | |
| JP6961997B2 (en) | Information processing device, memory control device, control method of information processing device | |
| JPWO2008023576A1 (en) | Mixed mode parallel processor system, mixed mode parallel processor method, and mixed mode parallel processor program | |
| JP2002373115A (en) | Replacement control method for shared cache memory and device therefor | |
| US8145804B2 (en) | Systems and methods for transferring data to maintain preferred slot positions in a bi-endian processor | |
| US20150070957A1 (en) | Semiconductor device and method of writing/reading entry address into/from semiconductor device | |
| US6684267B2 (en) | Direct memory access controller, and direct memory access control method | |
| US20170060748A1 (en) | Processor and control method of processor | |
| JP5856434B2 (en) | Bus connection circuit, semiconductor device, and operation method of bus connection circuit | |
| WO2015033551A1 (en) | Store merge processing device, store merge processing system, store merge processing method, and recording medium | |
| JP7601434B2 (en) | Integrated circuit, computer system and data processing method | |
| CN102156676B (en) | Cache system | |
| JPWO2003010774A1 (en) | Associative memory system and network device and network system | |
| JP5630281B2 (en) | Vector instruction control circuit and list vector overtaking control method | |
| JP7408954B2 (en) | Memory control method, memory control device, program | |
| US9081673B2 (en) | Microprocessor and memory access method | |
| JP2022011449A (en) | Arithmetic processing program, arithmetic processing method, and arithmetic processing device | |
| JP5182284B2 (en) | Vector processing equipment | |
| JP2023082311A (en) | Arithmetic unit | |
| JP7078380B2 (en) | Instruction control device, instruction control method and program | |
| CN114072776B (en) | small area cache memory | |
| JP2020009146A (en) | Shared FIFO device | |
| JP2006251916A (en) | DMA transfer system and DMA transfer method | |
| WO2023047762A1 (en) | Processor and endian conversion method |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230307 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240604 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240710 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20241105 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20241128 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7601434 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |