JP5223220B2 - Vector processing apparatus and vector processing system - Google Patents
Vector processing apparatus and vector processing system Download PDFInfo
- Publication number
- JP5223220B2 JP5223220B2 JP2007094861A JP2007094861A JP5223220B2 JP 5223220 B2 JP5223220 B2 JP 5223220B2 JP 2007094861 A JP2007094861 A JP 2007094861A JP 2007094861 A JP2007094861 A JP 2007094861A JP 5223220 B2 JP5223220 B2 JP 5223220B2
- Authority
- JP
- Japan
- Prior art keywords
- control information
- vector
- memory
- cache
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 claims description 191
- 230000006870 function Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 18
- 238000000034 method Methods 0.000 description 15
- 238000003860 storage Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Complex Calculations (AREA)
Description
この発明は、ベクトル処理装置及びベクトル処理システムに係り、とくに、高速ベクトル演算処理に用いて好適なベクトル処理装置及びベクトル処理システムに関する。 The present invention relates to a vector processing device and a vector processing system, and more particularly to a vector processing device and a vector processing system suitable for use in high-speed vector arithmetic processing.
図11は、従来のマルチベクトルプロセッサシステム(以下、簡単に、ベクトル処理装置ともいう)の電気的構成を示すブロック図である。
従来のベクトル処理装置は、同図に示すように、それぞれが、パイプライン・ベクトル演算処理を行う複数(n個:nは2以上の自然数)のべクトルプロセッサ(CPU)11、12、…、1nと、それぞれが、メモリアドレスによってインタリーブされた共有メモリ型の主記憶装置である、複数(m個:mは2以上の自然数)のメモリ制御部21、22、…、2mとを備え、これらのべクトルプロセッサ11、12、…、1nとメモリ制御部21、22、…、2mとが、クロスバー網で結合されることで、全てのべクトルプロセッサ11、12、…、1nが、いずれのメモリ制御部21、22、…、2mへもアクセスでき、並列処理してシステム全体の処理速度の高速化を達成できる構成となっている。
FIG. 11 is a block diagram showing an electrical configuration of a conventional multi-vector processor system (hereinafter simply referred to as a vector processing device).
As shown in the figure, the conventional vector processing apparatus includes a plurality (n: n is a natural number of 2 or more) of vector processors (CPUs) 1 1 , 1 2 , each performing pipeline vector arithmetic processing. .., 1 n and a plurality (m: m is a natural number of 2 or more) of memory controllers 2 1 , 2 2 ,. a m, these base-
各ベクトルプロセッサ11、12、…、1nは、同図に示すように、スカラ処理部11と、ベクトル処理部12と、メモリアクセス制御部13と、クロスバスイッチ14とから概略構成されている。上記スカラ処理部11は、各種命令発行制御とスカラ演算処理とを行う役割を担っている。ベクトル処理部12は、スカラ処理部11からベクトル命令を受けると、複数のベクトルパイプラインによって、ベクトルを構成する多数の要素に対する同一の繰り返し操作(ベクトル演算処理)を高速で実行する。ベクトル処理部12には、ベクトル演算を高速に実行するために、メモリ制御部21、22、…、2mから読み出されたロードデータ(各種要素)や、演算結果の格納を行う、要素ごとにインタリーブされたベクトルレジスタ15が内蔵されている。上記メモリアクセス制御部13は、スカラ処理部11から発行されたメモリアクセス命令を受けると、メモリアドレスを生成してメモリアクセスパケットを生成する。また、クロスバスイッチ14は、メモリアクセス制御部13から受け取ったメモリアクセスパケットやベクトル処理部12から受け取ったメモリストアデータをアドレスによりインタリーブされた所望のメモリアクセスポートQ0、Q1、Q2、Q3にスイッチする一方、メモリ制御部21、22、…、2mから読み出されたロードデータをベクトル処理部12の要素ごとにインタリーブされたベクトルレジスタ15に送るためのスイッチ操作も実行する。
Each of the
次に、各メモリ制御部21、22、…、2mは、同図に示すように、クロスバスイッチ21と、バンク制御部22、22、…と、バンクキャッシュ23、23、…と、メモリバンク24、24、…とから構成されている。上記クロスバスイッチ21は、n個のベクトルプロセッサ11、12、…、1nのいずれからでも、メモリアクセスパケットを受け取ると、アドレスによりインタリーブされた所望のメモリポートP0、P1、P2、P3へスイッチする。ここで、同図に示すように、メモリポートP0、P1、P2、P3ごとに、バンク制御部22と、バンクキャッシュ23と、メモリバンク24とが設置されていて、バンク制御部22は、クロスバスイッチ21からのメモリアクセスパケットを受け取ると、アドレスでインタリーブされたメモリバンク24内の所望のメモリ素子にアクセスするための制御を行う。
Next, each of the memory control units 2 1 , 2 2 ,..., 2 m has a
バンクキャッシュ23は、メモリバンク24を構成するメモリ素子の遅延を隠蔽するための少容量のライトスルー型キャッシュメモリであり、メモリバンク24ごとに独立に設けられて、次のように動作する。バンクキャッシュ23は、バンク制御部22から受け取ったメモリアクセスパケットがロードのときは、アドレスによりヒット、ミスヒットを判定し、ヒットならば、自身にキャッシュされたデータをクロスバスイッチ21に返し、ミスヒットならば、メモリバンク24にメモリアクセスパケットを発行し、この後、メモリバンク24からロードデータが戻ってきたら、自身のキャッシュに登録すると共に、バンク制御部22及びクロスバスイッチ21を介して、メモリアクセスパケットを発行したベクトルプロセッサ11、12、…、1nにロードデータを送る。一方、バンクキャッシュ23は、バンク制御部22から受け取ったメモリアクセスパケットがストアのときは、アドレスによりヒット、ミスヒットを判定し、アドレスがミスすれば、そのままメモリバンク24へ送り、ヒットすれば、自身のキャッシュを書き換えると共に、メモリバンク24にもストアパケットを送る。
The
しかしながら、上記従来のベクトル処理装置においては、昨今のテクノロジの進歩によりプロセッサ性能は向上したものの、メモリ素子のアクセス性能の進歩はそれほどではなく、メモリバンド幅の増加やメモリレイテンシ短縮による大量データの並列処理により高性能を引き出すベクトルプロセッサにとっては、メモリ素子とプロセッサとの間の性能格差が広がり、メモリ素子の性能ネックに起因して、システムの全体性能が低下してしまう、という問題があった。これは、メモリ素子のスループットが相対的に遅いため、プロセッサ−メモリ間のデータ転送遅延が大きくなり、プロセッサ側のベクトル演算処理の開始が相対的に遅れてしまうためである。
これを解消するためには、データ幅を広げることで、メモリ側のスループットの向上を図ることができるが、そうすると、メモリ側により大きなハードウエア量の追加が必要となるので、コストの増加を招き、不都合である。
However, in the above-described conventional vector processing apparatus, although the processor performance has been improved by recent technological advances, the access performance of the memory elements has not been improved so much, and a large amount of data is parallelized by increasing the memory bandwidth and shortening the memory latency. A vector processor that draws out high performance by processing has a problem that the performance gap between the memory element and the processor widens, and the overall performance of the system decreases due to the performance bottleneck of the memory element. This is because the throughput of the memory element is relatively slow, so that the data transfer delay between the processor and the memory becomes large, and the start of the vector operation processing on the processor side is relatively delayed.
In order to solve this problem, it is possible to improve the throughput on the memory side by widening the data width. However, if this is done, a large amount of hardware must be added to the memory side, resulting in an increase in cost. Inconvenient.
このような不都合を解消する手段として、命令語中に主記憶上の隣接するデータをロードするか否かを指定する動作指示フィールドを持ち、該動作指示フィールドの情報によって主記憶から読み出す読出しデータ幅が4バイトか8バイトかを決定するようにした、特許文献1に記載のベクトル処理装置が提案されている。特許文献2にも、特許文献1に類似する技術が開示されている。
しかしながら、互いに独立して演算処理を実行する複数のベクトルプロセッサにあっては、命令語中に主記憶上の隣接するデータをロードするか否かを指定する(特許文献1に記載の)動作指示フィールドのみでは、ベクトル命令の処理の高速化を達成するには限界がある。 However, in a plurality of vector processors that execute arithmetic processing independently of each other, an operation instruction (described in Patent Document 1) that specifies whether or not to load adjacent data in the main memory into an instruction word With only the field, there is a limit to achieving high-speed processing of vector instructions.
この発明は、上述の事情に鑑みてなされたもので、プロセッサ−メモリ間のデータ転送遅延の増加を抑制すると共に、メモリアクセス命令の内容によりキャッシュ方法、メモリアクセス方法を変更することにより、キャッシュを効率的に用い、ハードウエア量の増加を抑制すると共にスループットの向上を図ることができるベクトル処理装置及びベクトル処理システムを提供することを目的としている。 The present invention has been made in view of the above circumstances, and suppresses an increase in the data transfer delay between the processor and the memory, and also changes the cache method and the memory access method according to the contents of the memory access instruction. An object of the present invention is to provide a vector processing device and a vector processing system that can be used efficiently, suppressing an increase in hardware amount and improving throughput.
上記課題を解決するために、この発明の第1の構成(請求項1記載の発明)は、ベクトルプロセッサを備えるベクトル処理装置に係り、前記ベクトルプロセッサは、制御情報手段と、メモリポート単位に搭載された複数のポートキャッシュとを有し、前記制御情報手段が、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成すると共に、前記各ポートキャッシュが、前記制御情報手段によって生成された前記制御情報に基づいて、登録サイズを切り替えることを特徴としている。 In order to solve the above-described problems, a first configuration of the present invention (the invention according to claim 1) relates to a vector processing apparatus including a vector processor, and the vector processor is mounted in units of control information means and memory ports. A plurality of port caches, wherein the control information means generates control information related to cache registration based on the instruction type and at least the instruction contents including the base address, the distance, and the number of elements, and Each port cache switches the registration size based on the control information generated by the control information means.
また、この発明の第2の構成(請求項2記載の発明)は、ベクトルプロセッサとメモリ制御部とを備えるベクトル処理装置に係り、前記ベクトルプロセッサが、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成する制御情報手段を有すると共に、前記メモリ制御部が、バンク単位に搭載されたバンクキャッシュを有し、前記各バンクキャッシュは、前記制御情報手段によって生成された前記制御情報に基づいて、登録サイズを切り替えることを特徴としている。 A second configuration of the present invention (the invention according to claim 2) relates to a vector processing apparatus including a vector processor and a memory control unit, wherein the vector processor includes an instruction type, at least a base address, a distance, and Control information means for generating control information related to cache registration based on the instruction content comprising the number of elements, and the memory control unit has a bank cache mounted on a bank basis, each bank cache, The registration size is switched based on the control information generated by the control information means.
また、この発明の第3の構成(請求項7記載の発明)は、複数のベクトルプロセッサと複数のメモリ制御部とが、クロスバスイッチ網によって結合されているベクトル処理システムに係り、前記ベクトルプロセッサは、制御情報手段と、メモリポート単位に搭載された複数のポートキャッシュとを有し、前記制御情報手段が、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成すると共に、前記各ポートキャッシュが、前記制御情報手段によって生成された前記制御情報に基づいて、キャッシュ登録有無、又は/及び登録サイズを切り替えることを特徴としている。 A third configuration of the present invention (invention according to claim 7) relates to a vector processing system in which a plurality of vector processors and a plurality of memory control units are coupled by a crossbar switch network. The control information means and a plurality of port caches mounted on a memory port basis, the control information means is based on the instruction type and at least the instruction content comprising the base address, the distance, and the number of elements, Control information relating to cache registration is generated, and each port cache switches the presence / absence of cache registration and / or the registration size based on the control information generated by the control information means.
この発明の第4の構成(請求項8記載の発明)は、複数のベクトルプロセッサと複数のメモリ制御部とが、クロスバスイッチ網によって結合されているベクトル処理システムに係り、前記ベクトルプロセッサが、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成する制御情報手段を有すると共に、前記メモリ制御部は、バンク単位に搭載されたバンクキャッシュを有し、前記各バンクキャッシュが、前記制御情報手段によって生成された前記制御情報に基づいて、キャッシュ登録有無、又は/及び登録サイズを切り替えることを特徴としている。 A fourth configuration of the present invention (invention according to claim 8) relates to a vector processing system in which a plurality of vector processors and a plurality of memory control units are coupled by a crossbar switch network, and the vector processor includes instructions. The memory control unit includes a bank cache mounted on a bank basis, and includes control information means for generating control information related to cache registration based on a type and an instruction content including at least a base address, a distance, and the number of elements. And each bank cache switches cache presence / absence and / or registration size based on the control information generated by the control information means.
この発明の構成によれば、キャッシュ制御やメモリアクセス制御を命令毎に最適に制御しているので、プロセッサとメモリ素子の性能差分を隠蔽でき、少ないハードウエア量でも、スループットの向上化を図ることができる。加えて、ベクトルプロセッサにポートキャッシュを設け、プロセッサ−メモリ間のデータ転送遅延の増加を抑制すると共に、メモリアクセス命令の内容によりキャッシュ方法、メモリアクセス方法を最適化することにより、キャッシュを効率的に用いることができるので、ハードウエア量の増加を抑制すると共にスループットの向上化を達成できる。 According to the configuration of the present invention, since cache control and memory access control are optimally controlled for each instruction, the performance difference between the processor and the memory element can be concealed, and the throughput can be improved even with a small amount of hardware. Can do. In addition, a port cache is provided in the vector processor to suppress an increase in data transfer delay between the processor and the memory, and by optimizing the cache method and the memory access method according to the contents of the memory access instruction, the cache can be efficiently Therefore, an increase in the amount of hardware can be suppressed and an improvement in throughput can be achieved.
この発明の実施形態が、上記従来のそれと大きく異なるところは、メモリアクセス制御部33に、スカラ処理部から発行される命令内容から(登録方法の切替え等の)制御情報を生成する制御情報生成回路39、及びベクトルプロセッサ31、32、…、3n内部のメモリポート部に、メモリアクセスポートQ0、Q1、Q2、Q3ごとに独立した複数のキャッシュ(ポートキャッシュ36、36、…)を設けるようにした点である。このような構成によれば、命令内容によって登録方法(例えば、8バイト登録/16バイト登録、キャッシュに登録する/しない等)を切り替えることができるので、効率的にキャッシュに格納でき、それゆえ、キャッシュ容量を抑えることができ、少ないハードウエア投資でもスループット性能を確保できる。
The embodiment of the present invention is greatly different from the conventional one described above. The control information generation circuit that generates control information (such as switching of the registration method) from the instruction contents issued from the scalar processing unit to the memory
図1は、この発明の第1実施例であるベクトル処理装置の電気的構成を示すブロック図である。
この例のベクトル処理装置(マルチベクトルプロセッサシステム)は、同図に示すように、それぞれが、パイプライン・ベクトル演算処理を行う複数(n個:nは2以上の自然数)のべクトルプロセッサ(CPU)31、32、…、3nと、それぞれが、メモリアドレスによってインタリーブされた共有メモリ型の主記憶装置である、複数(m個:mは2以上の自然数)のメモリ制御部41、42、…、4mとを備え、これらのべクトルプロセッサ31、32、…、3nとメモリ制御部41、42、…、4mとが、クロスバー網で結合されることで、全てのべクトルプロセッサ31、32、…、3nが、いずれのメモリ制御部41、42、…、4mへもアクセスでき、並列処理することで、システム全体の処理速度の高速化を達成できる構成となっている。
この例のベクトル処理装置の構成が、上記従来のそれと大きく異なるところは、ベクトルプロセッサ31、32、…、3nに、メモリアクセスポートQ0、Q1、Q2、Q3ごとに独立したポートキャッシュ36、36、…を複数設けるようにした点である。
FIG. 1 is a block diagram showing an electrical configuration of a vector processing apparatus according to the first embodiment of the present invention.
As shown in the figure, the vector processing apparatus (multi-vector processor system) of this example includes a plurality of (n: n is a natural number of 2 or more) vector processors (CPUs) each performing pipeline vector operation processing. ) 3 1 , 3 2 ,..., 3 n and a plurality of (m: m is a natural number of 2 or more) memory control units 4 1 , each of which is a shared memory type main storage device interleaved by memory addresses. , 4 2, ..., a 4 m, these base-vector processor 3 1, 3 2, ..., 3 n and the memory controller 4 1, 4 2, ..., and a 4 m, is coupled by the crossbar network in Rukoto, all base-vector processor 3 1, 3 2, ..., is 3 n, any of the memory control unit 4 1, 4 2, ..., can access to 4 m, by parallel processing, the entire system High processing speed Has become can be achieved structuring.
The configuration of the vector processing apparatus in this example is greatly different from that of the conventional one in that the vector processors 3 1 , 3 2 ,..., 3 n are independent for each memory access port Q 0 , Q 1 , Q 2 , Q 3 A plurality of
すなわち、各ベクトルプロセッサ31、32、…、3nは、同図に示すように、スカラ処理部31と、ベクトル処理部32と、メモリアクセス制御部33と、クロスバスイッチ34と、ポートキャッシュ36、36、…とから概略構成されている。上記スカラ処理部31は、各種命令発行制御とスカラ演算処理とを行う役割を担っている。ベクトル処理部32は、スカラ処理部31からベクトル命令を受けると、複数のベクトルパイプラインによって、ベクトルを構成する多数の要素に対する同一の繰り返し操作(ベクトル演算処理)を高速で実行する。
That is, each vector processor 3 1 , 3 2 ,..., 3 n includes a scalar processing unit 31, a
ベクトル処理部32には、ベクトル演算を高速に実行するために、メモリ制御部41、42、…、4mから読み出されたロードデータ(各種要素)や、演算結果の格納を要素ごとに行う、要素ごとにインタリーブされたベクトルレジスタ35が内蔵されている。メモリアクセス制御部33は、スカラ処理部31から発行されたメモリアクセス命令を受けると、メモリアドレスを生成してメモリアクセスパケットを生成する。
The
クロスバスイッチ34は、メモリアクセス制御部33から受け取ったメモリアクセスパケットやベクトル処理部32から受け取ったメモリストアデータをアドレスによりインタリーブされた所望のメモリポートQ0、Q1、Q2、Q3にスイッチする一方、メモリ制御部41、42、…、4m又はポートキャッシュ36、36、…から読み出されたロードデータをベクトル処理部32の要素ごとにインタリーブされたベクトルレジスタ15に送るためのスイッチ操作も実行する。
The
上記ポートキャッシュ36、36、…は、メモリアクセスの遅延を隠蔽するために、ベクトルプロセッサ31、32、…、3nに設けられたライトスルー型のキャッシュメモリであり、同図に示すように、メモリポートQ0、Q1、Q2、Q3ごとに独立して設置されている。
The
各ポートキャッシュ36、36、…は、メモリアクセス制御部33から受け取ったメモリアクセスパケットがロードのときは、アドレスによりヒット、ミスヒットを判定し、ヒットならば、自身にキャッシュされたデータをクロスバスイッチ34に返し、ミスヒットならば、メモリ制御部41、42、…、4mにメモリアクセスパケットを発行し、この後、メモリ制御部41、42、…、4mからロードデータが戻ってきたら、自身のキャッシュに登録すると共に、クロスバスイッチ34を介して、ベクトルレジスタ35にロードデータを送る。
When the memory access packet received from the memory
一方、ポートキャッシュ36、36、…は、メモリアクセス制御部33から受け取ったメモリアクセスパケットがストアのときは、アドレスによりヒット、ミスヒットを判定し、アドレスがミスすれば、そのままメモリ制御部41、42、…、4mへ送り、ヒットすれば、自身のキャッシュを書き換えると共に、メモリ制御部41、42、…、4mにもストアパケットを送る。
On the other hand,
次に、各メモリ制御部41、42、…、4mは、同図に示すように、クロスバスイッチ41と、バンク制御部42と、バンクキャッシュ43と、メモリバンク44とから構成されている。上記クロスバスイッチ41は、n個のベクトルプロセッサ31、32、…、3nのいずれからでも、メモリアクセスパケットを受け取ると、アドレスによりインタリーブされた所望のメモリポートP0、P1、P2、P3へスイッチする。
Next, each of the memory control units 4 1 , 4 2 ,..., 4 m includes a
ここで、同図に示すように、メモリポートP0、P1、P2、P3ごとに、バンク制御部42と、バンクキャッシュ43と、メモリバンク44とが設置されていて、バンク制御部42は、前段のクロスバスイッチ41からのメモリアクセスパケットを受け取ると、アドレスでインタリーブされたメモリバンク44内の所望のメモリ素子にアクセスするための制御を行う。
Here, as shown in the figure, for each of the memory ports P 0 , P 1 , P 2 , and P 3 , a
上記バンクキャッシュ43は、メモリバンク44を構成するメモリ素子の遅延を隠蔽するための少容量のライトスルー型メモリであり、メモリバンク44ごとに独立に設けられている。バンクキャッシュ43は、バンク制御部42から受け取ったメモリアクセスパケットがロードのときは、アドレスによりヒット、ミスヒットを判定し、ヒットならば、自身にキャッシュされたデータを前段のクロスバスイッチ41に返し、ミスヒットならば、後段のメモリバンク44にメモリアクセスパケットを発行し、この後、メモリバンク44からロードデータが戻ってきたら、自身のキャッシュに登録すると共に、バンク制御部42及びクロスバスイッチ41を介して、メモリアクセスパケットを発行したベクトルプロセッサ31、32、…、3nにロードデータを送る。一方、バンクキャッシュ43は、バンク制御部42から受け取ったメモリアクセスパケットがストアのときは、アドレスによりヒット、ミスヒットを判定し、アドレスがミスすれば、そのまま、後段のメモリバンク44へ送り、ヒットすれば、自身のキャッシュを書き換えると共に、メモリバンク44にもストアパケットを送る。
The
図2は、この例のベクトルプロセッサ31、32、…、3nを構成するメモリアクセス制御部33の詳細な電気的構成を示すブロック図、また、図3は、同メモリアクセス制御部の制御情報生成回路で生成される各種制御情報例を示す概念図である。
メモリアクセス制御部33は、図2に示すように、メモリリクエスト生成部37とメモリアドレス生成部38とから構成され、メモリリクエスト生成部37には、制御情報生成回路39が含まれている。メモリアドレス生成部38は、メモリアクセスすべきアドレスを生成する。メモリリクエスト生成部37は、スカラ処理部31から受けるメモリアクセス命令に基づいてメモリアクセスパケットを生成し、例えば、ベクトルロード命令やベクトルストア命令であれば、命令は1つで済むが、命令内容には、ベースアドレス、ディスタンス(距離)、及び要素数が含まれており、これらの情報から、要素ごと・要素数分のメモリアクセスパケットを生成する。
FIG. 2 is a block diagram showing a detailed electrical configuration of the memory
As shown in FIG. 2, the memory
制御情報生成回路39では、スカラ処理部31から受けるロード/ストア命令内容から、各種制御情報が生成される。具体的には、制御情報生成回路39は、16バイトアクセスパケットにするか8バイトアクセスパケットにするか等、メモリアクセスパケットの生成に使用される他にも、この例では、各種制御情報例として図3に示すように、例えば、ポートキャッシュ36に登録するBIT[1、1]、登録しないBIT[1、0]、バンクキャッシュ43に登録するBIT[2、1]、登録しないBIT[2、0]、パケットは8バイトアクセスであるが、メモリバンク44(メモリ素子)へのアクセスやバンクキャッシュ43への登録は16バイトにするBIT[0、1](16Bリクエスト発行)、8バイトのままにするBIT[0、0](8Bリクエスト発行)、等の制御情報を生成する。生成された制御情報は、メモリアクセスパケットに付与されて、その制御情報が必要な回路まで持ちまわることになる。
In the control
図4は、この例のベクトルプロセッサ31、32、…、3nのポートキャッシュ36、36、…の詳細な電気的構成を示すブロック図である。
この例では、4ポート構成のポートキャッシュ36、36、…がメモリアクセスポートQ0、Q1、Q2、Q3ごとに設けられていていて、各ポートキャッシュ36、36、…は、同図に示すように、ラインあたり16バイトのデータ幅を持ち、同一ライン(横方向)にはアドレスとして連続する16バイトが格納される構成となっている。ポートキャッシュ36、36、…は、互いに完全に独立しており、図示していないが、各メモリアクセスポートQ0、Q1、Q2、Q3ごとにアドレスアレイを持ってキャッシュ制御する機能を有している。また、ライン数は任意であり、図示していないがウエイ数も任意に持つことができる。
Figure 4 is a
In this example,
ポートキャッシュ36、36、…は、メモリアクセス制御部33から付与された制御情報に基づいて、キャッシュの制御を切り替えることができるようになっている。例えば、ポートキャッシュ36には登録しない旨の制御情報(図3)が付与されたメモリアクセスパケットが来ると、フィルされたデータは、キャッシュには登録せずに、そのままクロスバスイッチ34を介してベクトルレジスタ35に送る構成となっていて、このような構成とすることで、キャッシュが荒らされてヒット率が低下するのを防止している。
The
図5は、この例のメモリ制御部41、42、…、4mを構成するバンクキャッシュ43、43、…の詳細な電気的構成を示すブロック図である。
この例では、4バンク構成のバンクキャッシュ43、43、…がメモリポートP0、P1、P2、P3ごとに設けられていて、各バンク43、43、…は、互いに独立で、図示していないがアドレスアレイを持っており、キャッシュ制御する機能を有している。なお、ベクトル処理装置は、各ベクトルプロセッサ31、32、…、3n間で依存関係がなく、ベクトルプロセッサ(CPU)31、32、…、3n毎に別のプロセスが動作しているため、バンクキャッシュ43、43、…は、図5に示すように、ベクトルプロセッサ31、32、…、3n毎に別々のラインとしてキャッシュする構成となっている。同図では、ラインサイズは、連続する16バイトを格納する例が示されている。
5, the memory controller of this embodiment 4 1, 4 2, ...,
In this example,
バンクキャッシュ43、43、…においても、ポートキャッシュ36、36、…と同様にメモリアクセス制御部33にて付与された制御情報(図3)に基づいて、キャッシュの制御を切り替えることができ、バンクキャッシュ43内容の最適化を行うことができるようになっている。例えば、バンクキャッシュ43には登録しない旨の制御情報(図3)が付与されたメモリアクセスパケットが来ると、フィルされたデータは、キャッシュには登録せずに、そのまま、バンク制御部42及びクロスバスイッチ41を介して、ベクトルプロセッサ31、32、…、3n(ベクトルレジスタ35)に送る構成となっていて、このような構成とすることで、キャッシュが荒らされてヒット率が低下するのを防止している。
Also in the
図6は、ベクトルプロセッサ(CPU)31、32、…、3nと、メモリ制御部41、42、…、4mとの間のインタフェースの詳細例(メモリリクエストの形式例)を示す概念図である。同図には、メモリアクセス制御部33の制御情報生成回路39にて生成された制御情報(図3)をメモリアクセスパケットに付与し、持ちまわるパケット構成例が示されている。ベクトルプロセッサ(CPU)31、32、…、3nからメモリアクセス制御部33方向への信号の流れ(以下、CPU→メモリ制御部方向という)では、16バイトロード、8バイトロードとも、同図に示すように、アドレスと制御情報とで1パケット幅のデータラインを使い、ストアの場合は、アドレスと制御情報とで1パケット幅のデータラインを使い、さらに、ストアデータも8バイトごとにパケットを増やして追加する構成となっている。それゆえ、この例では、16バイトストアでは、3パケット構成、8バイトストアでは、2パケット構成となる。同様に、メモリアクセス制御部33からベクトルプロセッサ(CPU)31、32、…、3n方向への信号の流れ(以下、メモリ制御部→CPU方向という)でも、8バイトロードデータと制御情報とで1パケットを構成しており、8バイトロードで、1パケット構成、16バイトロードで、2パケット構成となるようにしている。
Figure 6 is a vector processor (CPU) 3 1, 3 2, ..., and 3 n, the memory controller 4 1, 4 2, ..., interfaces detailed example between 4 m (in the form of a memory request) FIG. In the figure, an example of a packet configuration is shown in which control information (FIG. 3) generated by the control
次に、図2、図3、図7、図8及び図9を参照して、この例の動作(とくに、制御情報の作成方法)について説明する。
ベクトルロード/ストア命令は、ベースアドレスとディスタンス(距離)と要素数とによって決定される。
例えば、4ポート構成のポートキャッシュ36、36、…が、メモリアドレスによりインタリーブされている構成(図9)では、ベースアドレスが0、ディスタンスが8Bであると、データ(要素1、要素2、…)は、図7に示すように、VLD(Volatile Logical Destination、非蓄積型論理あて先)8バイトとびのインタリーブ配列で格納されることになる。このような格納構成では、キャッシュメモリの連続領域をロードすることになる。この場合、8バイトアクセスとしてメモリアクセスするよりも、16バイトアクセスとしてメモリアクセスした方がスループット上有利である。これは、図6のメモリリクエストの形式例で示すように、16バイトロードであれば、CPU→メモリ制御部方向のパケット構成は、16バイトあたり1パケットとなり、8バイトロードの場合の8バイト当たり1パケットに対し、2倍のスループットが確保できることになるからである。命令がストアであれば、16バイトストアで3パケットに対し、8バイトストアで2パケットであり、4/3倍のスループットが得られる。したがって、メモリアクセス制御部33は、ディスタンスが8Bを検出すると、16バイトアクセスに切り替える。さらに、このデータをポートキャッシュ36、36、…に登録した場合、連続する16バイトが常に有効なデータであるため、再利用する場合にもヒット率が向上する。
Next, the operation of this example (particularly, the method for creating control information) will be described with reference to FIG. 2, FIG. 3, FIG. 7, FIG.
The vector load / store instruction is determined by the base address, the distance (distance), and the number of elements.
For example, in a configuration in which
一方、ベースアドレスが0、ディスタンスが32Bであると、データ(要素1、要素2、…)は、図8に示すように、VLD32バイトとびのインタリーブ配列で格納されることになる。この格納構成では、同図から判るように、連続した16バイトに必要なデータが、16バイト分存在することは無い。この場合は、16バイトアクセスとしてメモリアクセスするよりも8バイトアクセスとしてメモリアクセスした方が、スループット上有利である。これは、図6のメモリリクエストの形式例で示すように、メモリ制御部→CPU方向のパケット構成は16バイトが2パケット、8バイトが1パケットとなるので、16バイトロードであれば、必要な8バイトを確保するために、不必要な8バイト分のデータ1パケットが存在する16バイトロードの方が、メモリスループット上不利益になる。さらに、データをキャッシュに登録した場合、16バイトラインサイズの中で有効データが8バイトしかなく、さらに、ポートキャッシュ36、36、…間で偏りができるためキャッシュを荒らすことになりヒット率が低下するため、ポートキャッシュ36、36、…に登録しないという判断も可能となる。
On the other hand, when the base address is 0 and the distance is 32B, the data (
なお、4バンク構成のバンクキャッシュ43、43、…へのキャッシュ登録やメモリバンク(メモリ素子)24、24、…へのアクセス等についても、4ポート構成のポートキャッシュ36、36、…のキャッシュ動作で述べたと同様の動作であるので、その説明を省略する。これらのキャッシュやメモリバンクは、それぞれの命令によって最適な制御方法に設定されることができる。
The cache operation of the four-
このように、この例の構成によれば、キャッシュ制御やメモリアクセス制御を命令毎に最適に制御しているので、プロセッサとメモリ素子の性能差分を隠蔽でき、性能の向上化を図ることができる。加えて、キャッシュ制御やメモリアクセス制御を命令毎に最適に制御しているので、少ないハードウエア量でも性能を確保できる。 As described above, according to the configuration of this example, cache control and memory access control are optimally controlled for each instruction, so that the performance difference between the processor and the memory element can be concealed, and the performance can be improved. . In addition, since cache control and memory access control are optimally controlled for each instruction, performance can be secured even with a small amount of hardware.
図10は、この発明の第2実施例で適用される、ソフトウェア指示によるメモリアクセス制御例を示す概念図である。
この第2実施例の構成が、上述の第2実施例のそれと大きく異なるところは、メモリアクセス制御部33の制御情報生成回路39で生成する制御情報の内容及び生成方法に工夫を凝らして、ハードウエアでの切り替えのみならず、ソフトウエアによっても制御できるようにした点である。すなわち、この例では、図10に示すように、ロード/ストア命令に強制ポートキャッシュ登録やバンクキャッシュ登録、あるいは、強制16バイトロード、プリフェッチ指示等を指示するフラグが追加されている。
FIG. 10 is a conceptual diagram showing an example of memory access control by software instruction applied in the second embodiment of the present invention.
The configuration of the second embodiment is greatly different from that of the second embodiment described above. The contents of the control information generated by the control
この第2実施例の構成によれば、第1実施例の構成(制御情報)に拘わらず、ソフトウエア的に判断可能な再利用性の高いデータ(要素)に対して、強制的にキャッシュに登録できる等、容易に性能チューニングすることができる。 According to the configuration of the second embodiment, regardless of the configuration (control information) of the first embodiment, data (elements) with high reusability that can be determined by software is forced to be cached. You can easily tune performance by registering.
以上、この発明の実施例を図面を参照して詳述してきたが、具体的な構成はこの実施例に限られるものではなく、この発明の要旨を逸脱しない範囲の設計の変更等があってもこの発明に含まれる。例えば、上述の実施例では、ソフトウェア構成で、キャッシュに登録した方が良いか否かを判断して、制御情報の生成を行うようにしたが、これに限らず、jobによっては、ハードウエアモードによって制御情報の生成を切り替えるようにしても良い。また、上記以外の制御方法についても、ソフトウェア構成に限らず、ハードウェア構成によっても、最適な制御方法に設定するようにしても良い。キャッシュ制御やメモリアクセス制御をハードウエアモードやソフトウエアによって変更できるようにすれば、容易に性能のチューニングができる。 The embodiment of the present invention has been described in detail with reference to the drawings. However, the specific configuration is not limited to this embodiment, and there are design changes and the like without departing from the gist of the present invention. Are also included in the present invention. For example, in the above-described embodiment, it is determined whether or not it is better to register in the cache in the software configuration, and the control information is generated. However, not limited to this, depending on the job, the hardware mode The generation of control information may be switched by Further, control methods other than those described above are not limited to the software configuration, and may be set to an optimal control method depending on the hardware configuration. If cache control and memory access control can be changed by hardware mode and software, performance tuning can be easily performed.
また、この発明は、スカラ処理部から発行されるスカラ命令のメモリアクセスについても、ベクトル命令同様、メモリアクセス制御部にて制御情報の生成ができる。とくに、スカラ処理部に持つ、命令キャッシュ、オペランドキャッシュのキャッシュミス時のフィル動作についても、ベクトル命令のディスタンス8Bと同様に連続領域のメモリアクセスであるので、16バイト処理が可能である。さらに、ポートキャッシュを2次キャッシュとしても使用できる。
この際も、ハードウエアモードのみならず、ソフトウエア制御も行うことにより、性能チューニングも可能となる。関連してポートキャッシュをベクトル用のキャッシュとしてのみ動作、あるいは、スカラ処理用の2次キャッシュとしてのみ動作、あるいは、スカラ、ベクトル両方のキャッシュとして動作させる等、ハードウエアモードやソフトウエアでの制御も可能である。
Further, according to the present invention, control information can be generated by a memory access control unit for memory access of a scalar instruction issued from a scalar processing unit as well as a vector instruction. In particular, the fill operation at the time of cache miss in the instruction cache and operand cache in the scalar processing unit is a continuous area memory access as in the case of the distance 8B of the vector instruction, and therefore 16-byte processing is possible. Furthermore, the port cache can be used as a secondary cache.
In this case, performance tuning is also possible by performing not only the hardware mode but also software control. Relatedly, the port cache operates only as a vector cache, or operates only as a secondary cache for scalar processing, or operates as both a scalar and vector cache. Is possible.
この発明は、高速演算装置(スーパコンピュータ)や高速画像処理システム(スーパCAD)等に適用できる。 The present invention can be applied to a high-speed arithmetic device (super computer), a high-speed image processing system (super CAD), and the like.
31、32、…、3n ベクトルプロセッサ(CPU)
31 スカラ処理部
32 ベクトル処理部
33 メモリアクセス制御部
37 メモリリクエスト生成部
38 メモリアドレス生成部
39 制御情報生成回路
34 クロスバスイッチ
35 ベクトルレジスタ
36 ポートキャッシュ
41、42、…、4m メモリ制御部
41 クロスバスイッチ
42 バンク制御部
43 バンクキャッシュ
44 メモリバンク
Q0、Q1、Q2、Q3 メモリアクセスポート
P0、P1、P2、P3 メモリポート
3 1 , 3 2 ,..., 3 n vector processor (CPU)
31
Claims (12)
前記ベクトルプロセッサは、制御情報手段と、メモリポート単位に搭載された複数のポートキャッシュとを有し、
前記制御情報手段は、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成すると共に、前記各ポートキャッシュは、前記制御情報手段によって生成された前記制御情報に基づいて、登録サイズを切り替えることを特徴とするベクトル処理装置。 A vector processing device comprising a vector processor,
The vector processor has control information means and a plurality of port caches mounted on a memory port basis,
The control information means generates control information related to cache registration based on an instruction type and an instruction content including at least a base address, a distance, and the number of elements, and each port cache is generated by the control information means. A vector processing apparatus that switches a registered size based on the control information.
前記ベクトルプロセッサは、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成する制御情報手段を有すると共に、前記メモリ制御部は、バンク単位に搭載されたバンクキャッシュを有し、
前記各バンクキャッシュは、前記制御情報手段によって生成された前記制御情報に基づいて、登録サイズを切り替えることを特徴とするベクトル処理装置。 A vector processing device comprising a vector processor and a memory control unit,
The vector processor has control information means for generating control information related to cache registration based on an instruction type and an instruction content including at least a base address, a distance, and the number of elements, and the memory control unit includes a bank unit Has a bank cash installed in
Each of the bank caches switches a registered size based on the control information generated by the control information means.
前記ベクトルプロセッサは、制御情報手段と、メモリポート単位に搭載された複数のポートキャッシュとを有し、
前記制御情報手段は、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成すると共に、前記各ポートキャッシュは、前記制御情報手段によって生成された前記制御情報に基づいて、キャッシュ登録有無、又は/及び登録サイズを切り替えることを特徴とするベクトル処理システム。 A vector processing system in which a plurality of vector processors and a plurality of memory control units are coupled by a crossbar switch network,
The vector processor has control information means and a plurality of port caches mounted on a memory port basis,
The control information means generates control information related to cache registration based on an instruction type and an instruction content including at least a base address, a distance, and the number of elements, and each port cache is generated by the control information means. A vector processing system characterized by switching cache presence / absence or / and registration size based on the control information.
前記ベクトルプロセッサは、命令種別と、少なくともベースアドレス、ディスタンス、及び要素数からなる命令内容とに基づいて、キャッシュ登録に関する制御情報を生成する制御情報手段を有すると共に、前記メモリ制御部は、バンク単位に搭載されたバンクキャッシュを有し、
前記各バンクキャッシュは、前記制御情報手段によって生成された前記制御情報に基づいて、キャッシュ登録有無、又は/及び登録サイズを切り替えることを特徴とするベクトル処理システム。 A vector processing system in which a plurality of vector processors and a plurality of memory control units are coupled by a crossbar switch network,
The vector processor has control information means for generating control information related to cache registration based on an instruction type and an instruction content including at least a base address, a distance, and the number of elements, and the memory control unit includes a bank unit Has a bank cash installed in
Each of the bank caches switches between the presence / absence of cache registration and / or the registration size based on the control information generated by the control information means.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007094861A JP5223220B2 (en) | 2007-03-30 | 2007-03-30 | Vector processing apparatus and vector processing system |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007094861A JP5223220B2 (en) | 2007-03-30 | 2007-03-30 | Vector processing apparatus and vector processing system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2008250926A JP2008250926A (en) | 2008-10-16 |
| JP5223220B2 true JP5223220B2 (en) | 2013-06-26 |
Family
ID=39975747
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2007094861A Expired - Fee Related JP5223220B2 (en) | 2007-03-30 | 2007-03-30 | Vector processing apparatus and vector processing system |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP5223220B2 (en) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2011033862A1 (en) * | 2009-09-15 | 2011-03-24 | 日本電気株式会社 | Information processing device and data transfer method |
| JP5477267B2 (en) * | 2010-12-01 | 2014-04-23 | 日本電気株式会社 | Information processing apparatus and information processing method |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB2311882B (en) * | 1996-04-04 | 2000-08-09 | Videologic Ltd | A data processing management system |
| JP3770091B2 (en) * | 2001-02-09 | 2006-04-26 | 日本電気株式会社 | Cache control method and cache control circuit |
| JP3789316B2 (en) * | 2001-05-15 | 2006-06-21 | エヌイーシーコンピュータテクノ株式会社 | Routing address generation method for vector processor |
| JP4068828B2 (en) * | 2001-10-25 | 2008-03-26 | 株式会社ルネサステクノロジ | Integrated separation-type switching cache memory and processor system having the cache memory |
-
2007
- 2007-03-30 JP JP2007094861A patent/JP5223220B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2008250926A (en) | 2008-10-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12072812B2 (en) | Highly integrated scalable, flexible DSP megamodule architecture | |
| EP3885918B1 (en) | System, apparatus and method for performing a remote atomic operation via an interface | |
| US10365930B2 (en) | Instructions for managing a parallel cache hierarchy | |
| JP3717212B2 (en) | Information processing apparatus and information processing unit | |
| US7941585B2 (en) | Local scratchpad and data caching system | |
| US9239791B2 (en) | Cache swizzle with inline transposition | |
| US7908439B2 (en) | Method and apparatus for efficient replacement algorithm for pre-fetcher oriented data cache | |
| JP4451717B2 (en) | Information processing apparatus and information processing method | |
| JP3425158B2 (en) | Computer system with multi-buffer data cache | |
| EP3695318B1 (en) | Servicing cpu demand requests with inflight prefetches | |
| JP2010507160A (en) | Processing of write access request to shared memory of data processor | |
| JPH06266616A (en) | Memory access controller | |
| KR101639943B1 (en) | Shared memory control method for facilitating shared memory of general purpose graphic processor as cache and general purpose graphic processor using same | |
| US20090259813A1 (en) | Multi-processor system and method of controlling the multi-processor system | |
| US9557936B2 (en) | Protection of memories, datapath and pipeline registers, and other storage elements by distributed delayed detection and correction of soft errors | |
| JP2014115851A (en) | Data processing device and method of controlling the same | |
| JP2005536798A (en) | Processor prefetching that matches the memory bus protocol characteristics | |
| JP5223220B2 (en) | Vector processing apparatus and vector processing system | |
| JP5630568B2 (en) | Arithmetic processing apparatus, information processing apparatus, and control method for arithmetic processing apparatus | |
| JP5071977B2 (en) | System and method for managing cache memory | |
| JP3718667B2 (en) | Information processing apparatus and information processing unit | |
| US9201655B2 (en) | Method, computer program product, and hardware product for eliminating or reducing operand line crossing penalty | |
| JP2014048829A (en) | Arithmetic processing device and method of controlling arithmetic processing device | |
| JP5724981B2 (en) | Memory access control device, memory access control system, and memory access control method | |
| JP2008305082A (en) | Memory system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100302 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120920 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121002 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121129 |
|
| 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: 20130212 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130225 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5223220 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160322 Year of fee payment: 3 |
|
| LAPS | Cancellation because of no payment of annual fees |