JP6413605B2 - Vector arithmetic device, control method and program, and vector processing device - Google Patents
Vector arithmetic device, control method and program, and vector processing device Download PDFInfo
- Publication number
- JP6413605B2 JP6413605B2 JP2014211277A JP2014211277A JP6413605B2 JP 6413605 B2 JP6413605 B2 JP 6413605B2 JP 2014211277 A JP2014211277 A JP 2014211277A JP 2014211277 A JP2014211277 A JP 2014211277A JP 6413605 B2 JP6413605 B2 JP 6413605B2
- Authority
- JP
- Japan
- Prior art keywords
- vector
- load
- unit
- instruction
- processing unit
- 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
Images
Landscapes
- Advance Control (AREA)
- Complex Calculations (AREA)
Description
本発明は、ロードバッファを備えるベクトル演算装置に関する。 The present invention relates to a vector operation device including a load buffer.
ベクトル処理装置は、主記憶装置とベクトル演算装置を備え、当該ベクトル演算装置は、主記憶装置からロードしたベクトルデータやベクトル演算中の中間結果を保持するベクトルレジスタと、ベクトルレジスタに保持されたベクトルデータを演算するベクトル演算器とを有する。 The vector processing device includes a main storage device and a vector operation device. The vector operation device includes a vector register for holding vector data loaded from the main storage device and an intermediate result during vector operation, and a vector stored in the vector register. A vector calculator for calculating data.
主記憶装置のアクセス速度は、ベクトル演算の速度に比べて遅く、ベクトルデータのベクトルレジスタへのロードを高速化するために、特許文献1のベクトル演算装置は、主記憶装置とベクトルレジスタとの間にベクトルデータを一時的に格納するロードバッファを備える。 The access speed of the main storage device is slower than the speed of vector operation. In order to increase the load of vector data to the vector register, the vector operation device of Patent Document 1 is provided between the main storage device and the vector register. Includes a load buffer for temporarily storing vector data.
一方、メモリ管理の技術として、特許文献2、3にプリフェッチが開示されている。
On the other hand, as a memory management technique,
特許文献1のような、ベクトルデータを格納するロードバッファを有するベクトル演算装置は、ロードバッファが枯渇すると、ロードバッファが確保されるまでベクトルロード命令を保留し、ロードバッファが確保されてからベクトルロード命令を発行する。このとき、発行されたベクトルロード命令が、キャッシュメモリに送られてキャッシュミスになると、主記憶装置からキャッシュメモリにベクトルデータを転送する必要が生じる。
これにより、ベクトル演算装置におけるベクトルロード命令の実行時間が長くなり、装置性能が低下する。
A vector arithmetic unit having a load buffer for storing vector data as in Patent Document 1 holds a vector load instruction until a load buffer is secured when the load buffer is depleted, and then loads a vector load after the load buffer is secured. Issue an instruction. At this time, if the issued vector load instruction is sent to the cache memory and a cache miss occurs, it becomes necessary to transfer the vector data from the main storage device to the cache memory.
As a result, the execution time of the vector load instruction in the vector arithmetic device becomes longer, and the device performance is lowered.
また、特許文献2、3には、スカラ演算装置にプリフェッチに適用させる技術の開示はあるが、ベクトル演算装置に適用させるための具体的な開示はない。
このように、ロードバッファを備えるベクトル演算装置において、ロードバッファの枯渇によるベクトルロード命令の実行時間の長期化を解消する具体的な技術が望まれている。 As described above, in a vector arithmetic apparatus having a load buffer, there is a demand for a specific technique that eliminates an increase in the execution time of a vector load instruction due to the exhaustion of the load buffer.
本発明の目的は、ロードバッファを備えるベクトル演算装置において、ベクトルロード命令の実行時間を短縮することが可能な技術を提供することにある。 An object of the present invention is to provide a technique capable of shortening the execution time of a vector load instruction in a vector operation device having a load buffer.
本発明のベクトル演算装置は、ロードバッファを有するベクトル処理部と、ベクトルデータを一時的に保持するキャッシュ部と、ベクトルロード命令を前記キャッシュ部へ通知するメモリアクセス処理部と、を備え、前記メモリアクセス処理部は、前記ロードバッファが使用できない場合、前記ベクトルロード命令の通知を保留し、前記保留されたベクトルロード命令に対応するプリフェッチ命令を生成して通知し、前記キャッシュ部は、前記プリフェッチ命令に応じてベクトルデータを主記憶装置から読み出して前記キャッシュ部に配置する。 The vector operation device of the present invention comprises a vector processing unit having a load buffer, a cache unit for temporarily storing vector data, and a memory access processing unit for notifying the cache unit of a vector load instruction, When the load buffer cannot be used, the access processing unit suspends notification of the vector load instruction, generates and notifies a prefetch instruction corresponding to the suspended vector load instruction, and the cache unit transmits the prefetch instruction. In response to this, the vector data is read from the main memory and placed in the cache unit.
本発明のベクトル演算装置の制御方法は、ロードバッファを有するベクトル処理部と、ベクトルデータを一時的に保持するキャッシュ部を備え、ベクトルロード命令に応じて、主記憶装置から前記ベクトル処理部に前記ベクトルデータを転送する、ベクトル演算装置の制御方法であって、前記ロードバッファが使用できない場合、前記ベクトルロード命令の通知を保留し、前記保留されたベクトルロード命令に対応するプリフェッチ命令を生成して通知し、前記プリフェッチ命令に応じてベクトルデータを前記主記憶装置から読み出して前記キャッシュ部に配置する。 The control method of the vector arithmetic device of the present invention comprises a vector processing unit having a load buffer and a cache unit for temporarily storing vector data, and the main memory unit sends the vector processing unit to the vector processing unit in response to a vector load instruction. A vector arithmetic device control method for transferring vector data, wherein when the load buffer cannot be used, the vector load instruction notification is suspended and a prefetch instruction corresponding to the suspended vector load instruction is generated. In response, the vector data is read from the main memory in response to the prefetch instruction and placed in the cache unit.
本発明のベクトル演算装置の制御プログラムは、ロードバッファを有するベクトル処理部と、ベクトルデータを一時的に保持するキャッシュ部を備え、ベクトルロード命令に応じて、主記憶装置から前記ベクトル処理部に前記ベクトルデータを転送する、ベクトル演算装置の制御方法であって、前記ベクトル演算装置に、前記ロードバッファが使用できない場合、前記ベクトルロード命令の通知を保留し、前記保留されたベクトルロード命令に対応するプリフェッチ命令を生成して通知し、前記プリフェッチ命令に応じてベクトルデータを前記主記憶装置から読み出して前記キャッシュ部に配置する、ことを実行させる。 A control program for a vector operation device according to the present invention includes a vector processing unit having a load buffer and a cache unit for temporarily storing vector data, and the main memory unit transfers the vector processing unit to the vector processing unit according to a vector load instruction. A vector arithmetic device control method for transferring vector data, wherein when the load buffer cannot be used in the vector arithmetic device, the notification of the vector load instruction is suspended, and the vector load instruction is retained. A prefetch instruction is generated and notified, and vector data is read from the main memory in accordance with the prefetch instruction and placed in the cache unit.
本発明のベクトル処理装置は、主記憶装置と、上述のベクトル演算装置とを備える。 The vector processing device of the present invention includes a main storage device and the above-described vector arithmetic device.
本発明は、ロードバッファを備えるベクトル演算装置において、ベクトルロード命令の実行時間を短縮することができる。 The present invention can reduce the execution time of a vector load instruction in a vector operation device including a load buffer.
(第1の実施形態)
本発明の第1の実施形態によるベクトル演算装置について図面を参照して説明する。
(First embodiment)
A vector arithmetic device according to a first embodiment of the present invention will be described with reference to the drawings.
図1は、第1の実施形態によるベクトル演算装置の構成を示すブロック図である。図1に示すように、ベクトル演算装置1は、ロードデータを格納するロードバッファ6を有し、ベクトルデータに対するベクトル演算を実行するベクトル処理部5と、主記憶装置(図示せず)からのベクトルデータを一時的に保持するキャッシュ部4を有する。更にベクトル演算装置1は、ベクトルロード命令に応じて、主記憶装置からベクトル処理部5にベクトルデータを転送するプロセッサネットワーク部3と、ベクトルロード命令をプロセッサネットワーク部3へ通知するメモリアクセス処理部2と、を備える。メモリアクセス処理部2は、ロードバッファ6が使用できない場合、ベクトルロード命令の通知を保留し、保留したベクトルロード命令に対応するプリフェッチ命令を生成し、キャッシュ部41にプリフェッチ命令を通知する。キャッシュ部41は、プリフェッチ命令に応じてベクトルデータを主記憶装置から読み出してキャッシュ部4に配置する(書き込む)。
FIG. 1 is a block diagram showing the configuration of the vector operation device according to the first embodiment. As shown in FIG. 1, the vector arithmetic unit 1 has a
なお、ベクトル演算装置、及び、これを含むベクトル処理装置の各構成については、第2の実施形態にてさらに詳しく説明する。 Note that each configuration of the vector operation device and the vector processing device including the vector operation device will be described in more detail in the second embodiment.
次に、第1の実施形態によるベクトル演算装置の動作について図面を用いて説明する。 Next, the operation of the vector arithmetic apparatus according to the first embodiment will be described with reference to the drawings.
図2は、第1の実施形態によるベクトル演算装置のメモリアクセス処理部の動作を示すフローチャートである。図2に示すように、ベクトル演算装置1のメモリアクセス処理部2は、ベクトルロード命令を受付けた後、ベクトル処理部5のロードバッファ6が使用できるか否かを判定する(A1)。
FIG. 2 is a flowchart showing the operation of the memory access processing unit of the vector arithmetic device according to the first embodiment. As shown in FIG. 2, after receiving the vector load instruction, the memory
ベクトル処理部5のロードバッファ6が使用できる場合(A1のYes)、メモリアクセス処理部2は、プロセッサネットワーク部3(キャッシュ部41を含む)にベクトルロード命令を通知する(A5)。
When the
ベクトル処理部5のロードバッファ6が使用できない場合(A1のNo)、メモリアクセス処理部2は、プロセッサネットワーク部3(キャッシュ部41を含む)へのベクトルロード命令の通知を保留(A2)し、ベクトルロード命令によるベクトルデータのベクトル処理部5への転送を保留する。メモリアクセス処理部2は、保留したベクトルロード命令に対応するプリフェッチ命令を生成し、生成したプリフェッチ命令をプロセッサネットワーク部3(キャッシュ部4を含む)に通知する(A3)。
When the
その後、メモリアクセス処理部2は、ロードバッファ6が使用できる否かを判定し(A4)、ロードバッファ6が使用できる場合(A4のYes)、メモリアクセス処理部2は、プロセッサネットワーク部3(キャッシュ部4を含む)にベクトルロード命令を通知する(A5)。プロセッサネットワーク部3(キャッシュ部4を含む)は、プリフェッチ命令に応じて、ベクトルデータを、主記憶装置から読み出してキャッシュ部4に配置する。
Thereafter, the memory
上述のように、第1の実施形態によるベクトル処理装置1によれば、ベクトルロード命令を受けたメモリアクセス処理部2は、ロードバッファ6が使用できない場合、保留したベクトルロード命令に対応するプリフェッチ命令を生成し、生成したプリフェッチ命令をプロセッサネットワーク部3へ通知する。プロセッサネットワーク部3(キャッシュ部4を含む)は、プリフェッチ命令に応じて、主記憶装置からベクトルロード命令に対応するベクトルデータをプロセッサネットワーク部3のキャッシュ部4に配置する。その後、ロードバッファ6が使用可能になった際に、メモリアクセス処理部2から通知されるベクトルロード命令に対して、キャッシュ部4でベクトルデータがキャッシュヒットするため、プロセッサネットワーク部3(キャッシュ部4を含む)は、対応するベクトルデータをベクトル処理部5に速やかに転送することができる。すなわち、ベクトルロード命令の実行時間を短縮することができる。
As described above, according to the vector processing device 1 according to the first embodiment, when the
また、第1の実施形態では、保留したベクトルロード命令に対応するプリフェッチ命令を用いている。このため、先行技術文献に記載のような、履歴保持機構やアドレス予測機構を必要としない。また、予測によるプリフェッチではないため、予測が外れて不必要なデータをキャッシュすることもない。 In the first embodiment, a prefetch instruction corresponding to a reserved vector load instruction is used. For this reason, a history holding mechanism and an address prediction mechanism as described in the prior art document are not required. Further, since prefetching is not performed by prediction, unnecessary data is not cached due to prediction failure.
(第2の実施形態)
次に、本発明の第2の実施形態によるベクトル演算装置、及び、ベクトル処理装置について図面を用いて説明する。図3は、第2の実施形態によるベクトル処理装置100の構成を示すブロック図である。図3に示すように、第2の実施形態のベクトル処理装置100は、ベクトルベクトル演算装置10と、主記憶装置70とを備える。
(ベクトル処理装置100)
ベクトル演算装置10と主記憶装置70は、信号線101及び信号線102を介して相互に接続されている。信号線102は、主記憶装置70に記憶されたベクトルデータをベクトル演算装置10に読み出すため、又は、ベクトル演算装置10で生成したベクトルデータを主記憶装置70に書き込むために用いられる。
(Second Embodiment)
Next, a vector calculation device and a vector processing device according to a second embodiment of the present invention will be described with reference to the drawings. FIG. 3 is a block diagram showing a configuration of the
(Vector processing apparatus 100)
The vector
以下、ベクトル処理装置100を構成する、ベクトル演算装置10及び主記憶装置70について詳細に説明する。
Hereinafter, the
(ベクトル演算装置10)
ベクトル演算装置10は、命令制御部20と、メモリアクセス処理部30と、プロセッサネットワーク部40と、ベクトル制御部50と、ベクトル処理部60と、を備える。
(Vector arithmetic unit 10)
The
(命令制御部20)
命令制御部20は、主記憶装置70と信号線101で接続され、メモリアクセス処理部30と信号線103で接続され、ベクトル制御部50と信号線104で接続されている。
(Instruction control unit 20)
The
命令制御部20は、信号線101を通じて主記憶装置70から読み出した命令を解読する。解読された命令がスカラ命令である場合は、そのスカラ命令にかかる処理を実行する。一方、解読された命令がベクトル命令である場合は、そのベクトル命令を、信号線104を介してベクトル制御部50に出力する。さらに、そのベクトル命令がベクトルロード命令である場合は、そのベクトルロード命令を、信号線103を介して後述のメモリアクセス処理部30に出力する。ベクトルロード命令は、ロードするベクトルデータの主記憶装置70のアドレスを特定する情報(例えば、開始アドレスとベクトルデータの間隔)と、ベクトルデータの要素数と、ベクトルデータをロードするベクトルレジスタに割り振られたベクトルレジスタ番号を含む。
The
(メモリアクセス処理部30)
メモリアクセス処理部30は、信号線103により命令制御部20と、信号線105によりプロセッサネットワーク部40と、信号線106によりベクトル制御部50と、信号線107によりベクトル処理部60と、それぞれ接続されている。メモリアクセス処理部30は、命令制御部20から送られる命令に応じてベクトル処理部60と主記憶装置70とのアクセスを制御する。第2の実施形態によるベクトル演算装置10のメモリアクセス処理部30は、第1の実施形態によるベクトル演算装置1のメモリアクセス処理部2に相当する。
(Memory access processing unit 30)
The memory
メモリアクセス処理部30は、信号線103を通じて命令制御部20から送られるベクトルロード命令を解読すると共に、プロセッサネットワーク部40の状態を管理する。また、メモリアクセス処理部30は、ベクトルロード命令を、信号線105を介してプロセッサネットワーク部40に送る。さらに、メモリアクセス処理部30は、主記憶装置70とプロセッサネットワーク40との間、及び、プロセッサネットワーク部40とベクトル処理部60との間のデータの行き来を制御する。
The memory
(ロードバッファ管理部31)
メモリアクセス処理部30は、後述するロードバッファ62の空き管理を行うロードバッファ管理部31を備える。ロードバッファ管理部31は、ベクトルロード命令に関して、ベクトル処理部60のロードバッファ62における記憶領域の空きを管理する。
(Load buffer management unit 31)
The memory
メモリアクセス処理部30が、命令制御部20から信号線103を通じてベクトルロード命令を受信すると、ロードバッファ管理部31は、受信したベクトルロード命令用に、空き状態のロードバッファ62の記憶領域を割り当てて、それを使用中として管理する。そして、ロードバッファ管理部31は、割り当てたロードバッファ62の記憶領域を一意に識別するロードバッファ番号を、信号線105を通じてプロセッサネットワーク部40に発行する。
When the memory
また、ロードバッファ管理部31は、ロードバッファ番号、ベクトルレジスタ番号、要素数を含むベクトルロード命令情報を、信号線106を通じてベクトル制御部50に通知する。該ベクトルロード命令情報は、ベクトル制御部50を介してベクトル処理部60に通知される。
Further, the load
なお、ロードバッファ管理部31は、メモリアクセス処理部30が信号線107を通じて後述するベクトル処理部60からロードバッファ番号を指定したロードバッファ解放通知を受けると、そのロードバッファ番号に係るロードバッファ62の記憶領域を再び空き状態として管理する。
When the memory
ロードバッファ管理部31は、ロードバッファ62の記憶領域の管理のために、フラグ情報を用いる。ロードバッファ62の記憶領域に対応してロードバッファ番号が固定的に設定される。このロードバッファ番号に1対1で対応するフラグが、ロードバッファ番号数の分、設定される。ベクトルロード命令で使用中のロードバッファ62の記憶領域は、対応するロードバッファ番号のフラグが1となる。一方、ベクトル処理部60から送られてくるロードバッファ解放通知によって解放されるロードバッファ62の記憶領域は、対応するロードバッファ番号のフラグが0となる。すなわち、フラグがリセットされる。このようにメモリアクセス処理部30は、ロードバッファ管理部31のフラグ情報を検索することにより、使用可能なロードバッファ62の記憶領域の有無を判定し、使用するロードバッファ番号を特定できる。
The load
ここで、第2の実施形態によるベクトル演算装置10のメモリアクセス処理部30は、ベクトルロード命令を受付けた際にベクトルロード管理部31を検索し、ロードバッファ62に使用可能な記憶領域がある場合、後述のプロセッサネットワーク部40にベクトルロード命令であることを通知する。さらに、メモリアクセス処理部30は、主記憶装置70上の所望のベクトルデータを特定する情報、要素数、ロードバッファ番号をプロセッサネットワーク部40に通知する。また、メモリアクセス処理部30は、ベクトル制御部50にロードバッファ番号を通知する。
Here, the memory
一方、ロードバッファ62に使用可能な記憶領域がない場合、メモリアクセス処理部30は、ロードバッファ62に記憶領域が確保されるまでプロセッサネットワーク部40へのベクトルロード命令、及び、それに付随する情報の通知を保留する。また、メモリアクセス処理部30は、ベクトル制御部50へのロードバッファ番号の通知も保留する。
On the other hand, when there is no usable storage area in the
メモリアクセス処理部30は、ロードバッファ62に使用可能な記憶領域がないと判定した際に、後述するプロセッサネットワーク部40にプリフェッチ命令を通知するとともに、ベクトルロード命令の主記憶装置70上の所望のベクトルデータを特定する情報、要素数を通知する。
When the memory
そして、ロードバッファ62に記憶領域が確保された後、メモリアクセス処理部30は、プロセッサネットワーク部40にベクトルロード命令、及び、それに付随する情報を通知し、ベクトル制御部50にロードバッファ番号を通知する。
(プロセッサネットワーク部40)
プロセッサネットワーク部40は、主記憶装置70と信号線102で接続され、メモリアクセス処理部30と信号線105で接続され、ベクトル処理部60と信号線108で接続される。プロセッサネットワーク部40は、主記憶装置70のデータを一時的に保持するキャッシュ部41を備える。第2の実施形態によるベクトル演算装置10のプロセッサネットワーク部40は、第1の実施形態によるベクトル演算装置1のプロセッサネットワーク部3に相当する。
After the storage area is secured in the
(Processor network unit 40)
The
プロセッサネットワーク部40は、メモリアクセス処理部30から送られてくるベクトルロード命令に応じて、主記憶装置70とベクトル処理部60との間で、ベクトルデータを転送する。
The
プロセッサネットワーク部40は、メモリアクセス処理部30から送られるベクトルロード命令を要素毎のベクトルロード命令に分解し、要素毎のベクトルロード命令に情報を付加し後述するベクトル処理部60に転送する。付加する情報は、ベクトルロード命令の場合、所望のベクトルデータの格納位置、ロードバッファ番号、要素番号であり、プリフェッチ命令の場合、所望のベクトルデータの格納位置である。
The
(キャッシュ部41)
キャッシュ部41は、命令がベクトルロード命令の場合、主記憶装置70内の所望のベクトルデータをキャッシュ部41が保持しているか否かを判定(キャッシュヒット/ミス判定)する。所望のベクトルデータをキャッシュ部41が保持している場合(キャッシュヒット時)、キャッシュ部41は、キャッシュ部41で保持しているベクトルデータをベクトル処理部30にロードデータとして転送する。一方、キャッシュ部41が保持していない場合(キャッシュミス時)、キャッシュ部41は、主記憶装置70にロード命令を送り、主記憶装置70から所望のベクトルデータを受け取る。続いて、キャッシュ部41は、ベクトルデータをキャッシュ部41へ格納するとともにベクトル処理部60へロードデータとして転送する。キャッシュ部41は、ベクトル処理部60にロードデータを転送する際にロードバッファ番号、要素番号も付加して転送する。
(Cache part 41)
When the instruction is a vector load instruction, the
また、キャッシュ部41は、メモリアクセス処理部30からの命令が、プリフェッチ命令の場合も、主記憶装置70内のベクトルデータをキャッシュ部41が保持しているか否かを判定(キャッシュヒット/ミス判定)する。キャッシュ部41が保持している場合(キャッシュヒット時)、プリフェッチ命令は完了する。キャッシュ部41が保持していない場合(キャッシュミス時)、キャッシュ部41は、主記憶装置70にキャッシュフィル命令を送り、主記憶装置70から所望のベクトルデータを受け取り、キャッシュ部41へ格納する。
(ベクトル制御部50)
ベクトル制御部50は、命令制御部20と信号線104で接続され、メモリアクセス処理部30と信号線106で接続され、ベクトル処理部60と信号線109で接続される。
Further, the
(Vector control unit 50)
The
ベクトル制御部50は、命令制御部20から送られてくるベクトル命令に応じてベクトル処理部60で行うベクトル命令を制御する。
The
ベクトルロード命令時にはメモリアクセス処理部30からロードバッファ番号を受け取った後にベクトル処理部60へベクトルロード命令であることを通知すると同時にロードバッファ番号、要素数、転送先ベクトルレジスタ番号を通知する。
(ベクトル処理部60)
ベクトル処理部60は、メモリアクセス処理部30と信号線107で接続され、プロセッサネットワーク部40と信号線108で接続され、ベクトル制御部50と信号線109、110で接続される。
In the case of a vector load instruction, after receiving the load buffer number from the memory
(Vector processing unit 60)
The
ベクトル処理部60は、ベクトルデータに対してベクトル演算を実行する機能を持つ。ベクトル処理部60は、ベクトルロード管理部61と、主記憶装置70から読み出されたベクトルデータを一時的に格納するロードバッファ62と、ベクトルデータを格納するベクトルレジスタ63と、ベクトルレジスタ63に格納されたベクトルデータに対してベクトル演算を行う1つ以上のベクトル演算器(不図示)とを備える。第2の実施形態によるベクトル演算装置10のベクトル処理部60、ロードバッファ62は、それぞれ第1の実施形態によるベクトル演算装置1のベクトル処理部5、ロードバッファ6に相当する。
The
ベクトル演算器およびロードバッファ62から出力されるベクトルデータは、ベクトルレジスタ63に振り分けられる。なお、ベクトル演算されたベクトルデータを主記憶装置70にストアするストアバッファなど、ストアに関連する構成は具体的な説明、及び、図示を省略している。
Vector data output from the vector computing unit and
また、ベクトル処理部60は、メモリアクセス処理部30からベクトルロード命令、及び、ロードバッファ番号を受け取る。
ベクトルロード命令は、メモリアクセス処理部30が信号線103を通じて命令制御部20から受信する。
(ベクトルロード管理部61)
ベクトルロード管理部61は、メモリアクセス処理部30と信号線107で接続され、プロセッサネットワーク部40と信号線108で接続され、ベクトル制御部50と信号線109,110で接続される。
Further, the
The vector load instruction is received from the
(Vector load manager 61)
The vector
ベクトルロード管理部61は、信号線108を通じて送られてきたベクトルデータの要素を、該要素に付されたロードバッファ番号に係るロードバッファの記憶領域に一旦格納する。そしてその後、ロードバッファ62の記憶領域に格納されたベクトルデータをベクトルレジスタ63に転送する。
The vector
また、ベクトルロード管理部61は、ロードバッファ管理部31から、ロードバッファ解放通知を受け、該通知に係るロードバッファ62の記憶領域を解放(使用中フラグのリセット)する。
Further, the vector
ベクトルロード管理部61は、ベクトル制御部50から送られたロードバッファ番号、要素数、転送先のベクトルレジスタ番号を含むベクトルロード命令、及び、プロセッサネットワーク部40から送られたロードバッファ番号、要素番号を含むロードデータに応じてロードバッファ62内にロードデータが整列したか否かを管理する。ロードデータが整列し、ベクトルレジスタへの転送が可能になった場合にはロードバッファ62からロードデータを読み出しベクトルレジスタ63へ転送する。
The vector
ベクトルロード管理部61は、ロードバッファ62からベクトルレジスタ63へ転送を行うためにロードバッファ62からロードデータを読み出した後に信号線107を通じてメモリアクセス処理部30にロードバッファ解放通知を送る。
The vector
ロードバッファ62は、ロードデータを格納する記憶領域を備える。ロードバッファ62の記憶領域は、複数個ありベクトルロード命令ごとに使用するロードバッファ62の記憶領域を指定するためにロードバッファ番号が付与されている。ロードデータ62の記憶領域における格納位置は、ロードバッファ番号と要素番号により決定される。
The
ベクトルレジスタ63は、ベクトル演算を行う際のデータを格納しておくレジスタである。ベクトルレジスタ63は、複数個ありベクトル命令ごとに使用するベクトルレジスタを指定するためにベクトルレジスタ番号が付与されている。ベクトル処理部60内のベクトル演算器は図示していない。
(主記憶装置70)
主記憶装置70は、命令制御部20と信号線101で接続され、プロセッサネットワーク部40と信号線102で接続される。主記憶装置70はプロセッサネットワーク部60から送られてくるベクトルロードに従ってベクトルデータの転送を行う。
The
(Main storage device 70)
The
ロード命令時には所望のベクトルデータを特定する情報を基にベクトルデータを読み出しプロセッサネットワーク部に転送する。キャッシュフィル命令時にも同様に所望のベクトルデータを特定する情報を基にベクトルデータを読み出しプロセッサネットワーク部41に転送する。
At the time of a load instruction, vector data is read based on information for specifying desired vector data and transferred to the processor network unit. Similarly, at the time of a cache fill command, vector data is read out based on information for specifying desired vector data and transferred to the
次に、第2の実施形態のベクトル演算装置10の動作について図面を用いて説明する。図4は、第2の実施形態によるベクトル演算装置10の動作を示すシーケンス図である。図中、実線は、第2の実施形態の動作を示し、破線は、関連する比較例の動作を示している。
Next, operation | movement of the
はじめに、命令制御部20は、主記憶装置70から読み出した命令を解読し、ベクトルロード命令である場合は、そのベクトルロード命令を、メモリアクセス処理部30に出力する。メモリアクセス処理部30は、ベクトル処理部60のロードバッファ62が使用できるか否かを判定する。ロードバッファ62が使用できない場合、メモリアクセス処理部30は、ベクトルロード命令の通知を保留し、ベクトルロード命令に代えてプリフェッチ命令をプロセッサネットワーク部40に通知する。
First, the
プロセッサネットワーク部40のキャッシュ部41は、プリフェッチ命令に応じて、ベクトルロード命令に対応するベクトルデータがキャッシュ部41にあるか否かを判定する。ベクトルデータがキャッシュ部41に存在する場合、プリフェッチ命令は完了する。ベクトルデータがキャッシュ部41に存在しない場合、キャッシュ部41は、主記憶装置からベクトルロード命令に対応するベクトルデータをキャッシュ部41に配置する。
The
ベクトル処理部60のベクトルロード管理部61は、ロードバッファ62に空きができると、ロードバッファ解放通知をメモリアクセス処理部30に通知し、メモリアクセス処理部30は、通知を保留していたベクトルロード命令をプロセッサネットワーク部40に通知する。
When the
プロセッサネットワーク部40のキャッシュ部41は、ベクトルロード命令を受けて、ベクトルロード命令に対応するベクトルデータがキャッシュ部41にあるか否かを判定する。プリフェッチ命令によってキャッシュ部41に対応するベクトルデータが存在するため、キャッシュ部41は、ベクトルデータをベクトル処理部60へ転送する。
The
次に、図4に示す比較例の動作について説明する。図4の破線が示すように比較例のメモリアクセス処理部は、ロードバッファが使用できない場合、プリフェッチ命令をプロセッサネットワーク部に通知せず、ロードバッファが解放されるまでベクトルロード命令の通知を保留する。比較例のメモリアクセス処理部は、ロードバッファ解放後、プロセッサネットワーク部にベクトルロード命令を通知する。このときプロセッサネットワーク部のキャッシュ部にベクトルロード命令に対応するベクトルデータが存在しない(キャッシュミス)と、プロセッサネットワーク部は、主記憶装置からベクトルデータをロードすることになる。このとき、比較例は、ベクトルロード命令の実行時間が長くなる。 Next, the operation of the comparative example shown in FIG. 4 will be described. As indicated by the broken line in FIG. 4, when the load buffer cannot be used, the memory access processing unit of the comparative example does not notify the processor network unit of the prefetch instruction, but holds the notification of the vector load instruction until the load buffer is released. . The memory access processing unit of the comparative example notifies the vector load instruction to the processor network unit after releasing the load buffer. At this time, if there is no vector data corresponding to the vector load instruction in the cache unit of the processor network unit (cache miss), the processor network unit loads the vector data from the main memory. At this time, in the comparative example, the execution time of the vector load instruction becomes longer.
結果として、図4に示すように第2の実施形態のベクトル処理装置は、比較例に比べて、ベクトルロード命令の実行時間を短縮することができる。 As a result, as shown in FIG. 4, the vector processing apparatus according to the second embodiment can reduce the execution time of the vector load instruction as compared with the comparative example.
なお、メモリアクセス処理部30からのプリフェッチ命令後、ベクトルデータがキャッシュ部41に配置される前に、ロードバッファ62が開放され、メモリアクセス処理部30で保留されていたベクトルロード命令が通知される場合がある。この場合、主記憶装置70への同一アドレスにアクセスする際に、プリフェッチ命令時の主記憶装置70への同一アドレスへのアクセスデータを用いる。これにより主記憶装置70へのアクセスを高速化でき、後続のベクトルロード命令の実行時間を短縮することができる。
Note that after the prefetch instruction from the memory
上述のように、第2の実施形態によるベクトル処理装置100によれば、メモリアクセス処理部30は、ベクトルロード命令を受け付けた際、ロードバッファ62が使用できない場合にベクトルロード命令の通知を保留する。続いて、メモリアクセス処理部30は、ベクトルロード命令に対応するプリフェッチ命令を生成し、プリフェッチ命令を発行する。更に、メモリアクセス処理部30は、ロードバッファ解放通知を受け付け、使用可能なロードバッファ62が確保された後にベクトルロード命令を発行する。
As described above, according to the
キャッシュ部41は、プリフェッチ命令を受け付けた後にキャッシュヒット、又は、キャッシュミスを判定し、キャッシュミス時には主記憶装置70へアクセスしベクトルデータをキャッシュ部41に保持しておく。また、キャッシュ部41は、ベクトルロード命令を受け付けた後にキャッシュヒット、又は、キャッシュミスを判定し、キャッシュヒット時にキャッシュからベクトルデータをロードバッファ62に送る。キャッシュミス時にはキャッシュ部41は、主記憶装置70へアクセスしデータを転送しロードバッファ62へ送る。このようにロードバッファ62が使用できない場合に保留されたベクトルロード命令について、ロードバッファ62が使用可能になった際に、プリフェッチ命令でキャッシュ部41にベクトルデータを保持できた場合には保留されていたベクトルロード命令はキャッシュにヒットする。このため、プロセッサネットワーク部40は、対応するベクトルデータをベクトル処理部40に速やかに転送することができる。すなわち、ベクトルロード命令の実行時間を短縮することができる。 また、プリフェッチ命令後、ベクトルデータがキャッシュ部41に配置される前に保留されたベクトルロード命令が通知されると、キャッシュ部41でキャッシュヒットしない場合がある。このとき、プリフェッチ命令時のアクセスデータを用いて主記憶装置70にアクセスすることで、主記憶装置70へのアクセスを高速化し、後続のベクトルロード命令の実行時間を短縮することができる。
The
さらに、第2の実施形態は、第1の実施形態と同様に、保留したベクトルロード命令に対応するプリフェッチ命令を用いている。このため、先行技術文献に記載のような、履歴保持機構やアドレス予測機構を必要としない。また予測によるプリフェッチではないため、予測が外れて不必要なデータをキャッシュすることもない。 Furthermore, the second embodiment uses a prefetch instruction corresponding to a reserved vector load instruction, as in the first embodiment. For this reason, a history holding mechanism and an address prediction mechanism as described in the prior art document are not required. Further, since it is not a prefetch by prediction, the prediction is not missed and unnecessary data is not cached.
<第3の実施形態>
本発明の第3の実施形態によるベクトル演算装置、及び、ベクトル処理装置について、図面を用いて説明する。図5は、第3の実施形態によるベクトル処理装置の構成を示すブロック図である。第3の実施形態によるベクトル処理装置100Aは、ロードバッファ管理部64の配置が第2の実施形態によるベクトル処理装置100と相違する。すなわち、第2の実施形態によるベクトル処理装置100は、ロードバッファ管理部31をメモリアクセス処理部30に備えるが、第3の実施形態によるベクトル処理装置100Aは、ロードバッファ管理部64をベクトルベクトル処理部60Aに備える。なお、第3の実施形態によるベクトル処理装置100Aの構成の説明において、第2の実施形態によるベクトル処理装置100と同じ構成については、同一の符号を付与し詳細な説明は省略する。
<Third Embodiment>
A vector operation device and a vector processing device according to a third embodiment of the present invention will be described with reference to the drawings. FIG. 5 is a block diagram showing a configuration of a vector processing device according to the third embodiment. The
ベクトル演算装置10Aは、命令制御部20、メモリアクセス処理部30A、プロセッサネットワーク部40、ベクトル制御部50、ベクトル処理部60Aを備える。
The
プロセッサネットワーク部40は、主記憶装置のベクトルデータを保持するキャッシュ部41を備える。
The
ベクトル処理部60Aは、ベクトルロード管理部61、ロードバッファ62、ベクトルレジスタ63およびロードバッファ管理部64を備える。
The
メモリアクセス処理部30Aは、命令制御部20から送られてくる命令に応じてベクトル処理部60Aと主記憶装置70とのアクセスを制御する。ベクトルロード命令時には信号線107を通じてベクトルロード処理部60Aにロードバッファ番号要求を送り、ベクトル処理部60Aよりロードバッファ番号を受け取った後にプロセッサネットワーク部40へベクトルロード命令を通知する。これとともに主記憶装置70上の所望のベクトルデータを特定する情報、要素数、ロードバッファ番号を通知する。またベクトル制御部50にロードバッファ番号を通知する。
The memory
第3の実施形態のメモリアクセス処理部30Aは、ロードバッファ番号の要求をベクトル処理部60Aに送った後、ベクトル処理部60Aより後述するプリフェッチ指示を受け取ると、ベクトルロード命令の通知を保留する。更にメモリアクセス処理部30Aは、プロセッサネットワーク部40にプリフェッチ命令を通知するとともに、ベクトルロード命令の主記憶装置70上の所望のベクトルデータを特定する情報、要素数を通知する。
When the memory
ベクトル処理部60Aは、ベクトルロード管理部61と、ロードバッファ62と、ベクトルレジスタ63、ロードバッファ管理部64を含み、メモリアクセス処理部30Aから送られてくるロードバッファ要求に応じてベクトルロード管理部61を検索する。
The
ロードバッファに使用可能な記憶領域がある場合、ベクトル処理部60Aは、信号線107と通じてロードバッファ番号をメモリアクセス処理部30Aに通知する。ロードバッファに使用可能な記憶領域が無い場合、ベクトル処理部60Aは、信号線107と通じてプリフェッチ指示をメモリアクセス処理部30Aに送出する。なお、ベクトル処理部60Aは、ロードバッファが確保された後、ロードバッファ番号をメモリアクセス処理部30Aに通知する。
When there is a usable storage area in the load buffer, the
ベクトルロード管理部61は、ベクトル制御部50から送られたロードバッファ番号、要素数、転送先ベクトルレジスタ番号を含むベクトルロード命令、および、プロセッサネットワーク部40から送られたロードバッファ番号、要素番号を含むロードデータに応じてロードバッファ62内にロードデータが整列したか否かを管理する。
The vector
またベクトルロード管理部61は、プロセッサネットワーク部40から送られてきたロードデータをロードバッファ62に送り、ロードデータがロードバッファ62に格納されているか否かを管理する。ベクトルロード管理部61は、ロードデータが整列し、ベクトルレジスタ63への転送が可能になった場合、ロードバッファ62からロードデータを読み出しベクトルレジスタ63へ転送する。
The vector
ベクトルロード管理部61は、ロードバッファ62からベクトルレジスタ63にロードデータを転送するために、ロードバッファ62からロードデータを読み出した後にロードバッファ管理部64にロードバッファ解放通知を送る。
The vector
ロードバッファ管理部64は、ロードバッファ番号に1対1で対応するフラグをロードバッファ番号数の分持つ。ロードバッファ管理部64は、ベクトルロード命令で使用したロードバッファ番号に対応するフラグを1とし、ベクトルロード管理部61から送られてくるロードバッファ解放通知により解放するロードバッファ番号に対応するフラグを0とする。
The load
これによりメモリアクセス処理部30Aは、ベクトル処理部60Aのロードバッファ管理部64にあるフラグを検索することで、使用可能なロードバッファの有無を判定し、使用するロードバッファ番号を特定する。
Accordingly, the memory
上述のように、第3の実施形態によるベクトル処理装置100Aによれば、第2の実施形態と同様に、ベクトルロード命令の実行時間を短縮することができる。
As described above, according to the
すなわち、メモリアクセス処理部30Aは、ベクトルロード命令を受け付けた際、ロードバッファ62が使用できない場合にベクトルロード命令を保留する。続いて、メモリアクセス処理部30Aは、ベクトルロード命令に対応するプリフェッチ命令を生成し、プリフェッチ命令を発行する。更に、メモリアクセス処理部30は、ロードバッファ解放通知を受け付け、使用可能なロードバッファが確保された後にベクトルロード命令を発行する。
That is, when receiving the vector load instruction, the memory
キャッシュ部41は、プリフェッチ命令を受け付けた後にキャッシュヒット、又は、キャッシュミスを判定し、キャッシュミス時には主記憶装置70へアクセスしベクトルデータをキャッシュ部41に保持しておく。また、キャッシュ部41は、ベクトルロード命令を受け付けた後にキャッシュヒット、又は、キャッシュミスを判定し、キャッシュヒット時にキャッシュからデータをロードバッファ62に送り、ミス時には主記憶装置70へアクセスしデータを転送しロードバッファ62へ送る。
The
このように、ロードバッファ62が使用できない場合に保留されたベクトルロード命令は、ロードバッファ62が使用可能になった後、プリフェッチ命令でキャッシュ部41にベクトルデータが保持された場合に、キャッシュにヒットする。このため、プロセッサネットワーク部40は、対応するベクトルデータをベクトル処理部40に速やかに転送することができる。
As described above, the vector load instruction held when the
また、プリフェッチ命令後、ベクトルデータがキャッシュ部41に配置される前に保留されたベクトルロード命令が通知されると、キャッシュ部41でキャッシュヒットしない場合がある。このとき、プリフェッチ命令時のアクセスデータを用いて主記憶装置70にアクセスすることで、主記憶装置70へのアクセスを高速化し、後続のベクトルロード命令の実行時間を短縮することができる。 さらに、第3の実施形態は、第1の実施形態と同様に、保留したベクトルロード命令に対応するプリフェッチ命令を用いている。このため、先行技術文献に記載のような、履歴保持機構やアドレス予測機構を必要としない。また予測によるプリフェッチではないため、予測が外れて不必要なデータをキャッシュすることもない。
Further, if a vector load instruction held before vector data is placed in the
(その他)
なお、本発明の各機能は、プログラムを組み込んだLSIのハードウエア部品である回路部品を実装することにより、その動作をハードウエア的に実現することができる。またその機能を提供するプログラムを記憶装置(図示せず)に格納し、そのプログラムを主記憶部100にロードして命令制御部で実行することにより、ソフトウエア的に実現することも可能である。
ベクトル処理装置100、又は、ベクトル演算装置1、10が備える各部の実現手段は、特に限定されない。すなわち、物理的に結合した一つの装置により実現されてもよいし、物理的に分離した二つ以上の装置を有線又は無線で接続し、これら複数の装置により実現してもよい。
(Other)
The functions of the present invention can be realized in hardware by mounting circuit components, which are LSI hardware components incorporating a program. It is also possible to realize the program by storing a program for providing the function in a storage device (not shown), loading the program into the
Means for realizing each unit included in the
以上、実施形態(及び実施例)を参照して本願発明を説明したが、本願発明は上記実施形態(及び実施例)に限定されものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。 While the present invention has been described with reference to the embodiments (and examples), the present invention is not limited to the above embodiments (and examples). Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
上記の実施形態の一部又は全部は、以下の付記のように記載されうるが、以下には限られない。 Part or all of the above-described embodiments can be described as in the following supplementary notes, but is not limited thereto.
(付記1)
ロードバッファを有するベクトル処理部と、
ベクトルデータを一時的に保持するキャッシュ部と、
ベクトルロード命令を前記キャッシュ部へ通知するメモリアクセス処理部と、を備え、
前記メモリアクセス処理部は、前記ロードバッファが使用できない場合、前記ベクトルロード命令の通知を保留し、前記保留されたベクトルロード命令に対応するプリフェッチ命令を生成して通知し、
前記キャッシュ部は、前記プリフェッチ命令に応じてベクトルデータを主記憶装置から読み出して前記キャッシュ部に配置する、ベクトル演算装置。
(Appendix 1)
A vector processing unit having a load buffer;
A cache unit for temporarily storing vector data;
A memory access processing unit for notifying the cache unit of a vector load instruction,
The memory access processing unit, when the load buffer is not usable, suspends the notification of the vector load instruction, generates and notifies a prefetch instruction corresponding to the suspended vector load instruction,
The cache unit reads out vector data from a main storage device according to the prefetch instruction and places the vector data in the cache unit.
(付記2)
前記ロードバッファの解放後、前記メモリアクセス処理部は、前記保留されたベクトルロード命令を前記キャッシュ部へ通知する、付記1に記載のベクトル演算装置。
(Appendix 2)
The vector operation device according to appendix 1, wherein after the load buffer is released, the memory access processing unit notifies the cache unit of the reserved vector load instruction.
(付記3)
前記キャッシュ部は、前記プリフェッチ命令に応じて対応するベクトルデータが存在するか否か判定し、前記対応するベクトルデータが存在しない場合、前記主記憶装置から読み出して前記キャッシュ部に配置する、付記1又は付記2に記載のベクトル演算装置。
(Appendix 3)
The cache unit determines whether or not corresponding vector data exists in response to the prefetch instruction. If the corresponding vector data does not exist, the cache unit reads out from the main storage device and arranges the vector data in the cache unit. Alternatively, the vector arithmetic device according to
(付記4)
前記キャッシュ部は、前記プリフェッチ命令に応じて、対応するベクトルデータが存在するか否か判定し、前記対応するベクトルデータが存在する場合、前記プリフェッチ命令を完了する、付記3に記載のベクトル演算装置。
(Appendix 4)
The vector arithmetic unit according to
(付記5)
前記ロードバッファの使用状態をフラグ情報により管理するロードバッファ管理部を備え、前記メモリアクセス処理部、又は、ベクトル処理部が、前記ロードバッファ管理部を備える、付記1〜付記4のいずれか1つに記載のベクトル演算装置。
(Appendix 5)
Any one of appendix 1 to
(付記6)
前記メモリアクセス処理部は、前記ベクトルロード命令の受付後、前記ロードバッファ管理部を検索して、前記ロードバッファが使用できるかを判定する、付記5に記載のベクトル演算装置。
(Appendix 6)
6. The vector operation device according to
(付記7)
前記ベクトル処理部は、ロードデータがロードバッファに格納されているか否かを管理するベクトルロード管理部を備え、
前記ベクトルロード管理部は、ロードバッファの解放後にロードバッファ管理部にロードバッファの解放を通知する、付記5又は付記6のいずれか1つに記載のベクトル演算装置。
(Appendix 7)
The vector processing unit includes a vector load management unit that manages whether load data is stored in a load buffer,
The vector operation device according to any one of
(付記8)
主記憶装置と、付記1から8のいずれか1つに記載のベクトル演算装置とを備える、付記1〜付記7のいずれか1つに記載のベクトル演算装置。
(Appendix 8)
8. The vector operation device according to any one of attachments 1 to 7, comprising a main storage device and the vector operation device according to any one of attachments 1 to 8.
(付記9)
ロードバッファを有するベクトル処理部と、ベクトルデータを一時的に保持するキャッシュ部を備え、ベクトルロード命令に応じて、主記憶装置から前記ベクトル処理部に前記ベクトルデータを転送する、ベクトル演算装置の制御方法であって、
前記ロードバッファが使用できない場合、前記ベクトルロード命令の通知を保留し、前記保留されたベクトルロード命令に対応するプリフェッチ命令を生成して通知し、
前記プリフェッチ命令に応じてベクトルデータを前記主記憶装置から読み出して前記キャッシュ部に配置する、
ベクトル演算装置の制御方法。
(Appendix 9)
Control of a vector arithmetic unit comprising a vector processing unit having a load buffer and a cache unit for temporarily storing vector data, and transferring the vector data from main memory to the vector processing unit in response to a vector load instruction A method,
If the load buffer is unavailable, suspend notification of the vector load instruction, generate and notify a prefetch instruction corresponding to the suspended vector load instruction;
In response to the prefetch instruction, vector data is read from the main storage device and placed in the cache unit.
Control method of vector arithmetic unit.
(付記10)
前記ロードバッファの解放後、前記保留されたベクトルロード命令を前記キャッシュ部へ通知する、付記9に記載のベクトル演算装置の制御方法。
(Appendix 10)
The control method of the vector arithmetic unit according to appendix 9, wherein after the load buffer is released, the reserved vector load instruction is notified to the cache unit.
(付記11)
前記プリフェッチ命令に応じて対応するベクトルデータが存在するか否か判定し、前記対応するベクトルデータが存在しない場合、前記主記憶装置から読み出して前記キャッシュ部に配置する、付記9又は付記10に記載のベクトル演算装置の制御方法。
(Appendix 11)
Addendum 9 or
(付記12)
前記プリフェッチ命令に応じて対応するベクトルデータが存在するか否か判定し、前記対応するベクトルデータが存在する場合、前記プリフェッチ命令を完了する、付記11に記載のベクトル演算装置の制御方法。
(Appendix 12)
12. The control method of the vector arithmetic apparatus according to appendix 11, wherein it is determined whether or not corresponding vector data exists according to the prefetch instruction, and the prefetch instruction is completed when the corresponding vector data exists.
(付記13)
ロードバッファを有するベクトル処理部と、ベクトルデータを一時的に保持するキャッシュ部を備え、ベクトルロード命令に応じて、主記憶装置から前記ベクトル処理部に前記ベクトルデータを転送する、ベクトル演算装置の制御プログラムであって、
前記ベクトル演算装置に、
前記ロードバッファが使用できない場合、前記ベクトルロード命令の通知を保留し、前記保留されたベクトルロード命令に対応するプリフェッチ命令を生成して通知し、
前記プリフェッチ命令に応じてベクトルデータを前記主記憶装置から読み出して前記キャッシュ部に配置する、ことを実行させる、
ベクトル演算装置の制御プログラム。
(Appendix 13)
Control of a vector arithmetic unit comprising a vector processing unit having a load buffer and a cache unit for temporarily storing vector data, and transferring the vector data from main memory to the vector processing unit in response to a vector load instruction A program,
In the vector arithmetic unit,
If the load buffer is unavailable, suspend notification of the vector load instruction, generate and notify a prefetch instruction corresponding to the suspended vector load instruction;
In response to the prefetch instruction, vector data is read from the main storage device and placed in the cache unit.
Control program for vector arithmetic unit.
(付記14)
前記ロードバッファの解放後、前記保留されたベクトルロード命令を前記キャッシュ部へ通知する、付記13に記載のベクトル演算装置の制御プログラム。
(Appendix 14)
14. The control program for a vector arithmetic apparatus according to appendix 13, wherein after the load buffer is released, the reserved vector load instruction is notified to the cache unit.
(付記15)
前記プリフェッチ命令に応じて対応するベクトルデータが存在するか否か判定し、前記対応するベクトルデータが存在しない場合、前記主記憶装置から読み出して前記キャッシュ部に配置する、付記13又は付記14に記載のベクトル演算装置の制御プログラム。
(Appendix 15)
Supplementary note 13 or Supplementary note 14, wherein it is determined whether or not corresponding vector data exists in response to the prefetch instruction, and when the corresponding vector data does not exist, the data is read from the main storage device and placed in the cache unit. Control program for vector computing device.
(付記16)
前記プリフェッチ命令に応じて対応するベクトルデータが存在するか否か判定し、前記対応するベクトルデータが存在する場合、前記プリフェッチ命令を完了する、付記15に記載のベクトル演算装置の制御プログラム。
(Appendix 16)
16. The control program for a vector arithmetic device according to appendix 15, wherein it is determined whether or not corresponding vector data exists in accordance with the prefetch instruction, and if the corresponding vector data exists, the prefetch instruction is completed.
(付記17)
ロードデータを格納するロードバッファを有し、ベクトルデータに対するベクトル演算を実行するベクトル処理部と、
主記憶装置からの前記ベクトルデータを一時的に保持するキャッシュ部を有し、ベクトルロード命令に応じて、前記主記憶装置から前記ベクトル処理部に前記ベクトルデータを転送するプロセッサネットワーク部と、
前記ベクトルロード命令を前記プロセッサネットワーク部へ通知するメモリアクセス処理部と、を備え、
前記メモリアクセス処理部は、前記ロードバッファが使用できない場合、前記ベクトルロード命令の通知を保留し、前記保留したベクトルロード命令に対応するプリフェッチ命令を前記プロセッサネットワーク部に通知し、
前記プロセッサネットワーク部は、前記プリフェッチ命令に応じて対応するベクトルデータを、前記主記憶装置から読み出して前記キャッシュ部に配置する、ベクトル演算装置。
(Appendix 17)
A vector processing unit having a load buffer for storing the load data and executing a vector operation on the vector data;
A processor unit for temporarily storing the vector data from the main memory, and transferring the vector data from the main memory to the vector processor in response to a vector load instruction;
A memory access processing unit for notifying the vector load instruction to the processor network unit,
When the load buffer is not usable, the memory access processing unit suspends notification of the vector load instruction, notifies the processor network unit of a prefetch instruction corresponding to the suspended vector load instruction,
The processor network unit is a vector arithmetic unit that reads out corresponding vector data from the main memory in accordance with the prefetch instruction and arranges the vector data in the cache unit.
1 ベクトル演算装置
2 メモリアクセス処理部
3 プロセッサネットワーク部
4 キャッシュ部
5 ベクトル処理部
6 ロードバッファ
10、10A ベクトル演算装置
20 命令制御部
30、30A メモリアクセス処理部
40 プロセッサネットワーク部
41 キャッシュ部
50 ベクトル制御部
60 ベクトル処理部
61 ベクトルロード管理部
62 ロードバッファ
63 ベクトルレジスタ
64 ロードバッファ管理部
100、100A ベクトル処理装置
101 信号線
102 信号線
103 信号線
104 信号線
105 信号線
106 信号線
107 信号線
108 信号線
109 信号線
DESCRIPTION OF SYMBOLS 1 Vector
Claims (10)
ベクトルデータを一時的に保持するキャッシュ部と、
ベクトルロード命令を前記キャッシュ部へ通知するメモリアクセス処理部と、を備え、
前記メモリアクセス処理部は、前記ロードバッファが使用できない場合、前記ベクトルロード命令の通知を保留し、前記保留されたベクトルロード命令に対応するプリフェッチ命令を生成して通知し、
前記キャッシュ部は、前記プリフェッチ命令に応じてベクトルデータを主記憶装置から読み出して前記キャッシュ部に配置する、
ベクトル演算装置。 A vector processing unit having a load buffer;
A cache unit for temporarily storing vector data;
A memory access processing unit for notifying the cache unit of a vector load instruction,
The memory access processing unit, when the load buffer is not usable, suspends the notification of the vector load instruction, generates and notifies a prefetch instruction corresponding to the suspended vector load instruction,
The cache unit reads vector data from a main storage device according to the prefetch instruction and places the vector data in the cache unit.
Vector arithmetic unit.
前記ベクトルロード管理部は、ロードバッファの解放後にロードバッファ管理部にロードバッファの解放を通知する、請求項5又は請求項6のいずれか1項に記載のベクトル演算装置。 The vector processing unit includes a vector load management unit that manages whether load data is stored in a load buffer,
The vector operation device according to claim 5, wherein the vector load management unit notifies the load buffer management unit of the release of the load buffer after the load buffer is released.
A main storage device, and a vector arithmetic unit according to claims 1 7, vector processing apparatus.
前記ロードバッファが使用できない場合、前記ベクトルロード命令の通知を保留し、前記保留されたベクトルロード命令に対応するプリフェッチ命令を生成して通知し、
前記プリフェッチ命令に応じてベクトルデータを前記主記憶装置から読み出して前記キャッシュ部に配置する、
ベクトル演算装置の制御方法。 Control of a vector arithmetic unit comprising a vector processing unit having a load buffer and a cache unit for temporarily storing vector data, and transferring the vector data from main memory to the vector processing unit in response to a vector load instruction A method,
If the load buffer is unavailable, suspend notification of the vector load instruction, generate and notify a prefetch instruction corresponding to the suspended vector load instruction;
In response to the prefetch instruction, vector data is read from the main storage device and placed in the cache unit.
Control method of vector arithmetic unit.
前記ベクトル演算装置に、
前記ロードバッファが使用できない場合、前記ベクトルロード命令の通知を保留し、前記保留されたベクトルロード命令に対応するプリフェッチ命令を生成して通知し、
前記プリフェッチ命令に応じてベクトルデータを前記主記憶装置から読み出して前記キャッシュ部に配置する、ことを実行させる、
ベクトル演算装置の制御プログラム。 Control of a vector arithmetic unit comprising a vector processing unit having a load buffer and a cache unit for temporarily storing vector data, and transferring the vector data from main memory to the vector processing unit in response to a vector load instruction A program,
In the vector arithmetic unit,
If the load buffer is unavailable, suspend notification of the vector load instruction, generate and notify a prefetch instruction corresponding to the suspended vector load instruction;
In response to the prefetch instruction, vector data is read from the main storage device and placed in the cache unit.
Control program for vector arithmetic unit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014211277A JP6413605B2 (en) | 2014-10-16 | 2014-10-16 | Vector arithmetic device, control method and program, and vector processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014211277A JP6413605B2 (en) | 2014-10-16 | 2014-10-16 | Vector arithmetic device, control method and program, and vector processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016081259A JP2016081259A (en) | 2016-05-16 |
JP6413605B2 true JP6413605B2 (en) | 2018-10-31 |
Family
ID=55958715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014211277A Active JP6413605B2 (en) | 2014-10-16 | 2014-10-16 | Vector arithmetic device, control method and program, and vector processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6413605B2 (en) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009098934A (en) * | 2007-10-17 | 2009-05-07 | Hitachi Ltd | Processor and cache memory |
JP4789269B2 (en) * | 2008-04-10 | 2011-10-12 | エヌイーシーコンピュータテクノ株式会社 | Vector processing apparatus and vector processing method |
JP5344316B2 (en) * | 2010-12-15 | 2013-11-20 | 日本電気株式会社 | Vector arithmetic processing unit |
-
2014
- 2014-10-16 JP JP2014211277A patent/JP6413605B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016081259A (en) | 2016-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8453121B2 (en) | Managing the tracing of the execution of a computer program | |
JP5240270B2 (en) | Processor and vector load instruction execution method | |
US20170308468A1 (en) | Performance-driven cache line memory access | |
KR20150076187A (en) | Communication of message signalled interrupts | |
US8793435B1 (en) | Load miss result buffer with shared data lines | |
JP5970461B2 (en) | Virtual computer control device, virtual computer control method, virtual computer control program, and integrated circuit | |
JP5811245B1 (en) | Information processing apparatus, memory order guarantee method, and program | |
JP5158576B2 (en) | I / O control system, I / O control method, and I / O control program | |
JP6413605B2 (en) | Vector arithmetic device, control method and program, and vector processing device | |
JP4469911B2 (en) | Request generating apparatus, request processing system, and control method | |
JP6319473B1 (en) | Information processing device | |
JP6115455B2 (en) | Parallel computer system, parallel computer system control method, information processing apparatus, arithmetic processing apparatus, and communication control apparatus | |
JP4594889B2 (en) | Method for tracing program executed on a system including a plurality of processing devices, and system including a plurality of processing devices | |
JP5344316B2 (en) | Vector arithmetic processing unit | |
JP2016057763A (en) | Cache device and processor | |
US11372776B2 (en) | Method and apparatus for an efficient TLB lookup | |
US10223264B2 (en) | Data access control apparatus | |
JP3726092B2 (en) | Vector processing apparatus and vector loading method | |
JP4295815B2 (en) | Multiprocessor system and method of operating multiprocessor system | |
JP4631442B2 (en) | Processor | |
CN109791521B (en) | Apparatus and method for providing primitive subsets of data access | |
JP2013182507A (en) | Vector processing device, vector load instruction execution method and vector load instruction execution program | |
JP2014059661A (en) | Information processing device, method of controlling the same, and program | |
JP2016184188A (en) | Management device, management method and program for the same, and information processing system | |
JP2014048848A (en) | Arithmetic processing unit, information processor, and data transfer method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170915 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180518 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180626 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180809 |
|
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: 20180904 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180917 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6413605 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |