JP5527340B2 - Vector processing apparatus and vector processing method - Google Patents
Vector processing apparatus and vector processing method Download PDFInfo
- Publication number
- JP5527340B2 JP5527340B2 JP2012040261A JP2012040261A JP5527340B2 JP 5527340 B2 JP5527340 B2 JP 5527340B2 JP 2012040261 A JP2012040261 A JP 2012040261A JP 2012040261 A JP2012040261 A JP 2012040261A JP 5527340 B2 JP5527340 B2 JP 5527340B2
- Authority
- JP
- Japan
- Prior art keywords
- main storage
- storage device
- load buffer
- memory
- vector
- 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 18
- 230000015654 memory Effects 0.000 claims description 212
- 239000000872 buffer Substances 0.000 claims description 141
- 238000010586 diagram Methods 0.000 description 7
- 238000000034 method Methods 0.000 description 5
- 238000011068 loading method Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000005352 clarification Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000012447 hatching Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Landscapes
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
Description
本発明は、ベクトル処理装置およびベクトル処理方法に関し、特に、一定間隔を空けて並んでいる複数の配列要素に対してアクセスを行うベクトル処理装置およびベクトル処理方法に関する。 The present invention relates to a vector processing device and a vector processing method, and more particularly, to a vector processing device and a vector processing method for accessing a plurality of array elements arranged at regular intervals.
非特許文献1に、ベクトル計算機に関するストライドアクセスが記述されている。このベクトル計算機は、ストライドアクセスを行うためのベクトルロード命令を備えている。このベクトルロード命令は、主記憶の2次元行列データのうちで、連続アドレスによってアクセスできない行または列のデータにアクセスしようとする場合に、一定の距離(ストライド)間隔を空けたメモリアドレスの複数の要素にアクセスするものである。
Non-Patent
特許文献1には、ベクトル計算機に関して、ワード単位でインターリーブされた主記憶部から複素数の実部および虚部の両方を読み出して、読みだしたデータを2つのロードバッファ、2つのベクトルレジスタにベクトルロードするベクトルロード方法が開示されている。また、特許文献2には、キャッシュメモリを備えたベクトル計算機が開示されている。
In
近年、主記憶を構成するSDRAMでは、高速化を図るために、1命令によって複数のワードを読み出す技術が用いられるようになった。この結果、1ワード単位で主記憶部をインターリーブさせることが困難になってしまい、主記憶に1命令によってアクセス可能な複数のワード単位で、主記憶部をインターリーブさせる、という手法を採用する必要が生じた。しかし、このような手法を採用すると、連続アドレスへのアクセスではないストライドアクセスを行う場合には、主記憶から1命令で読み出した複数のワードのうちで1ワードのみしか使用されないことになってしまう。 In recent years, in a SDRAM constituting a main memory, a technique for reading a plurality of words with one instruction has been used in order to increase the speed. As a result, it becomes difficult to interleave the main memory unit in units of one word, and it is necessary to adopt a method of interleaving the main memory unit in units of a plurality of words that can be accessed by one instruction to the main memory. occured. However, when such a method is adopted, when performing stride access that is not access to a continuous address, only one word is used among a plurality of words read from the main memory by one instruction. .
言い換えると、主記憶への1命令によって読み出せるワードの数が多くなったために、1ワードだけを主記憶から読み出すという構成をとることが困難となっている。このため、1ワードだけを必要とするストライドアクセスを行う場合においても、複数のワード(ブロック)を主記憶から読み出すことになってしまう。つまり、主記憶から読み出した複数のワードのうちで、レジスタにロードされるのは1ワードだけであり、その他のワードは使われないことになる。この結果、ストライドアクセス時に本来必要としない不要なアクセスをも含むことになってしまい、メモリアクセスに要する消費電力の増加につながっていた。 In other words, since the number of words that can be read by one instruction to the main memory is increased, it is difficult to adopt a configuration in which only one word is read from the main memory. For this reason, even when stride access requiring only one word is performed, a plurality of words (blocks) are read from the main memory. In other words, among the plurality of words read from the main memory, only one word is loaded into the register, and the other words are not used. As a result, unnecessary access that is not originally required during stride access is included, leading to an increase in power consumption required for memory access.
また、上記の問題の解決に関して、特許文献2では、キャッシュメモリを設けて、先行のストライドアクセスによって読み出した複数のワードを予めキャッシュメモリに格納しておき、後続のストライドアクセスではキャッシュメモリ上のデータを用いる、という手法が開示されている。しかし、主記憶の容量と比較してキャッシュメモリの容量は小さいため、必要とする全てのデータをキャッシュメモリに格納できるわけではない。また、キャッシュメモリにデータを一旦格納できたとしても、他のメモリアクセスによって追い出されてしまい、後続のストライドアクセス時にはキャッシュメモリ上に既にデータが存在しないことも想定される。
Regarding the solution of the above problem, in
言い換えると、後続のストライドアクセスによってアクセスされるワードを含んだブロックを、前回のストライドアクセスにおいてキャッシュメモリに予め格納しておいたとしても、後続のストライドアクセスが実行される前に、キャッシュメモリ上のブロックが既に追い出されていることも考えられる。このため、仮にキャッシュメモリを設けたとしても、後続のストライドアクセスによって同じブロックを再度、主記憶から読み出す可能性がある。なお、十分な容量のキャッシュメモリを確保することで必要なブロックが追い出されないように保証し、後続のベクトルロード命令によってキャッシュヒットさせることが考えられるが、この場合には、キャッシュメモリの容量の増加につながってしまう。 In other words, even if a block including a word accessed by a subsequent stride access is stored in the cache memory in advance in the previous stride access, before the subsequent stride access is executed, It is also possible that the block has already been evicted. For this reason, even if a cache memory is provided, the same block may be read from the main memory again by subsequent stride access. It should be noted that by securing a sufficient amount of cache memory, it is possible to guarantee that necessary blocks will not be evicted, and a cache hit may be caused by a subsequent vector load instruction. It will lead to an increase.
本発明の第1の目的は、このような問題を解決するためになされたものであり、消費電力の低減が可能なベクトル処理装置およびベクトル処理方法を提供することを目的とするものである。 A first object of the present invention is to solve such a problem, and an object thereof is to provide a vector processing device and a vector processing method capable of reducing power consumption.
本発明に係るベクトル処理装置は、メモリの読み出し単位ごとにそれぞれ異なる記憶手段に記憶するようにインターリーブされた主記憶装置と、前記主記憶装置から読み出されたデータを一時的に格納するロードバッファと、前記主記憶装置に対するデータ読み出しリクエストの発行、および前記主記憶装置から読み出されたデータの前記ロードバッファへの書き込みを制御するロードバッファ制御手段と、前記ロードバッファから転送されるデータを格納するベクトルレジスタと、を備え、前記主記憶装置上の2次元配列の要素が、メモリのアドレスが連続して格納されない次元方向の全ての要素が前記メモリの読み出し単位内での位置が同じになるように予め位置が調整されて前記主記憶装置に格納され、前記ロードバッファ制御手段は、前記メモリのアドレスが連続して格納されない次元方向へのアクセスを行うベクトルロード命令を受けた場合に、前記リクエストの識別情報と、当該リクエストにより前記主記憶装置から読み出されるデータの前記ロードバッファでの書き込み位置情報と、に基づいて、前記主記憶装置から読み出されたデータの前記ロードバッファへの書き込みを制御するものである。 A vector processing apparatus according to the present invention includes a main storage device that is interleaved so as to be stored in different storage means for each memory read unit, and a load buffer that temporarily stores data read from the main storage device And a load buffer control means for controlling the issuance of a data read request to the main storage device and the writing of the data read from the main storage device to the load buffer, and the data transferred from the load buffer are stored A two-dimensional array element on the main memory, and all elements in the dimension direction in which memory addresses are not stored continuously have the same position in the reading unit of the memory. The position is adjusted in advance and stored in the main memory, and the load buffer control means When receiving a vector load instruction that performs access in a dimension direction in which the addresses of the memory are not continuously stored, the identification information of the request and the data read from the main storage device by the request in the load buffer Based on the write position information, the writing of the data read from the main storage device to the load buffer is controlled.
また、本発明に係るベクトル処理装置のベクトル処理方法は、主記憶装置上の2次元配列の要素が、メモリのアドレスが連続して格納されない次元方向の全ての要素が前記メモリの読み出し単位内での位置が同じになるように予め位置が調整されて前記主記憶装置に格納されるステップと、前記メモリのアドレスが連続して格納されない次元方向へのアクセスを行うベクトルロード命令を受けた場合に、前記主記憶装置に対するデータ読み出しリクエストの識別情報と、当該リクエストにより前記主記憶装置から読み出されるデータのロードバッファでの書き込み位置情報と、に基づいて、前記主記憶装置から読み出されたデータの前記ロードバッファへの書き込みを制御するステップと、を備えるものである。 Further, the vector processing method of the vector processing device according to the present invention is such that all elements in the two-dimensional array on the main storage device in the dimension direction in which memory addresses are not continuously stored are within the read unit of the memory. When the position is adjusted in advance so as to be the same position and stored in the main storage device, and when a vector load instruction for accessing in the dimension direction in which the address of the memory is not continuously stored is received , Based on the identification information of the data read request to the main storage device and the write position information in the load buffer of the data read from the main storage device by the request, the data read from the main storage device And a step of controlling writing to the load buffer.
本発明によれば、消費電力の低減が可能なベクトル処理装置およびベクトル処理方法を提供することができる。 ADVANTAGE OF THE INVENTION According to this invention, the vector processing apparatus and vector processing method which can reduce power consumption can be provided.
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
<発明の実施の形態1>
[構成の説明]
図1は、本実施の形態に係るベクトル処理装置の構成例を示している。ベクトル処理装置は、ベクトル演算器1と、ベクトルレジスタ2と、演算器クロスバ3と、ロードバッファ4と、ロードバッファ制御部5と、主記憶クロスバ6と、主記憶装置としての主記憶7と、を備えている。
Hereinafter, specific embodiments to which the present invention is applied will be described in detail with reference to the drawings. In each drawing, the same or corresponding elements are denoted by the same reference numerals, and redundant description is omitted as necessary for clarification of the description.
<
[Description of configuration]
FIG. 1 shows a configuration example of a vector processing apparatus according to the present embodiment. The vector processing device includes a
ベクトル演算器1は、ベクトルレジスタ2に格納されているデータを用いてベクトル演算を行う演算器群である。ベクトル演算器1は、通常、複数種類の演算器を備えている。演算結果は、ベクトルレジスタ2に格納される。
The
ベクトルレジスタ2は、ベクトル演算に用いるベクトルデータを格納するレジスタ群である。ベクトルレジスタ2は、通常、複数個のレジスタを備えている。1つのレジスタ当たり、複数個のデータを格納することができ、最大ベクトル長分の個数のデータを格納することができる。本実施の形態では、最大ベクトル長を16とした場合を例に説明し、1つのレジスタ当たり、16個のデータを格納することができる(すなわち、ベクトルレジスタ2に含まれる1つのレジスタあたりの要素数は16である)。
The
演算器クロスバ3は、ベクトル演算器1およびベクトルレジスタ2と、ロードバッファ4とを相互に接続するネットワークである。
The
ロードバッファ4は、主記憶7から読み出されたデータを一時的に格納するためのバッファ群である。本実施の形態では、ロードバッファ4は、複数個のロードバッファ4−1〜4−4を備えている。通常は、1つのベクトルロード命令に対して、ロードバッファ4のうちで1つのロードバッファ4−1〜4−4が用いられる。ロードバッファ4−1〜4−4それぞれの1つ当たりの容量は、ベクトルレジスタ2の1つ当たりの容量と同じである。本実施の形態では、1つのロードバッファ4−1〜4−4当たり、16個のデータを格納することができる。主記憶7から読み出されるデータは、主記憶7への読み出しリクエストの順序に従って返されるとは限られないため、本実施の形態では、このようなロードバッファ4を用いている。なお、ロードバッファ4を構成するバッファ群の個数は4個に限定されず、主記憶の読み出し単位の数と同じか、またはそれ以上の数とすればよい。
The
ロードバッファ制御部5は、主記憶7に対する主記憶読み出しリクエストの発行や、主記憶7から読み出されたデータのロードバッファ4への書き込みの制御を行う。本実施の形態では、ロードバッファ制御部5は、ロードバッファテーブル8を備えている。
The load
ロードバッファテーブル8は、主記憶7から返却されたデータを、ロードバッファ4のうちいずれのロードバッファ4−1〜4−4のどの位置に書き込むかを保持する。ロードバッファ制御部5は、ベクトルロード命令を受け付けると、主記憶7の主記憶部7−1〜7−4それぞれに対して主記憶読み出しリクエストの発行を行うが、主記憶部7−1〜7−4に対してリクエストを発行する際に、そのリクエストの識別情報(以下、リクエストIDと呼ぶ)と、そのリクエストの対象となる主記憶部7−1〜7−4からデータが返却された場合に返却データを書き込むロードバッファ4−1〜4−4の書き込み位置を示す情報と、を対応付けてロードバッファテーブル8に保持する。そして、ロードバッファ制御部5は、主記憶部7−1〜7−4から返却されるデータに付加されたリクエストIDと、そのリクエストに対して主記憶部7−1〜7−4のそれぞれで何番目に返却された返却データであるかと、に基づいて、ロードバッファテーブル8を参照して、返却データをどのロードバッファ4のどこに書き込むかを判断する。
The load buffer table 8 holds in which position in any of the load buffers 4-1 to 4-4 of the
主記憶クロスバ6は、主記憶部7−1〜7−4とロードバッファ4を相互に接続するネットワークである。
The
主記憶7は、メモリの読み出し単位ごとにそれぞれ異なる記憶部にインターリーブされている。本実施の形態では、メモリの読み出し単位を4とし、主記憶7が4つの主記憶部7−1〜7−4に分割された場合を例に説明する。すなわち、主記憶7は4つの主記憶部7−1〜7−4を含み、1回のメモリの読み出しによって、4個のデータを読み出すことができる。主記憶7は、例えばSDRAM(Synchronous dynamic random access memory)を用いて構成される。なお、メモリの読み出し単位は主記憶7の構成に応じて決定され、4個に限定されず、2個以上の読み出し単位とすればよい。また、メモリの読み出し単位を複数とすれば、主記憶7の分割の単位は4つに限定されず、1以上の任意の分割の単位としてよい。
The
主記憶部7−1には、メモリアドレス0〜3のデータ、メモリアドレス16〜19のデータ、メモリアドレス32〜35のデータ、…が格納される。主記憶部7−2には、メモリアドレス4〜7のデータ、メモリアドレス20〜23のデータ、メモリアドレス36〜39のデータ、…が格納される。主記憶部7−3には、メモリアドレス8〜11のデータ、メモリアドレス24〜27のデータ、メモリアドレス40〜43のデータ、…が格納される。主記憶部7−4には、メモリアドレス12〜15のデータ、メモリアドレス28〜31のデータ、メモリアドレス44〜47のデータ、…が格納される。 The main memory 7-1 stores data at memory addresses 0 to 3, data at memory addresses 16 to 19, data at memory addresses 32 to 35, and so on. The main memory 7-2 stores data at memory addresses 4-7, data at memory addresses 20-23, data at memory addresses 36-39, and so on. The main memory 7-3 stores data at memory addresses 8 to 11, data at memory addresses 24 to 27, data at memory addresses 40 to 43, and so on. The main memory 7-4 stores data at memory addresses 12 to 15, data at memory addresses 28 to 31, data at memory addresses 44 to 47, and so on.
主記憶部7−1〜7−4は、それぞれが独立して動作する。主記憶部7−1〜7−4は、主記憶読み出しリクエストをそれぞれ受け取り、読み出したデータを主記憶クロスバ6に送る。本実施の形態では、1クロックあたり最大で4個のデータがロードバッファ4に返却され、ロードバッファ4に書き込まれる。また、主記憶部7−1〜7−4は、受け取ったリクエストのIDを返却データに付加し、主記憶クロスバ6に送る。
Each of the main storage units 7-1 to 7-4 operates independently. The main memory units 7-1 to 7-4 each receive a main memory read request and send the read data to the
[動作の説明]
続いて以下では、ベクトル処理装置の動作の一例について、図2〜図5を用いて説明する。
まず、図2を参照して、図1に示したベクトル処理装置において、連続アドレスのデータに対してアクセスするベクトルロードの処理方法について説明する。
[Description of operation]
Subsequently, an example of the operation of the vector processing device will be described below with reference to FIGS.
First, with reference to FIG. 2, a vector load processing method for accessing data of continuous addresses in the vector processing apparatus shown in FIG. 1 will be described.
図2では、ある時刻において主記憶部7−1〜7−4から読み出されるデータと、主記憶部7−1〜7−4からの読み出しが完了したときにロードバッファ4に格納される内容と、を示している。例えば、時刻Tでは、メモリアドレス0、4、8、12の内容が、主記憶部7−1〜7−4からそれぞれ読み出される。そして、読み出しが完了したときには、メモリアドレス0〜15の内容がロードバッファ4に格納される。
In FIG. 2, data read from the main storage units 7-1 to 7-4 at a certain time, and contents stored in the
ベクトルロード命令は、主記憶からベクトルレジスタ2へのデータ転送命令である。本実施の形態では、ベクトルロード命令は、第1〜第4のオペランドを含んでいる。
第1オペランドは、データが格納されるベクトルレジスタ2の個数を指定する。
第2オペランドは、データが格納される先頭のベクトルレジスタ2を指定する。
第3オペランドは、ストライド値を指定する。
第4オペランドは、主記憶上でのデータの読み出しを開始するアドレスを指定する。
The vector load instruction is a data transfer instruction from the main memory to the
The first operand specifies the number of
The second operand specifies the
The third operand specifies a stride value.
The fourth operand specifies an address from which data reading on the main memory is started.
ベクトル処理装置は、このベクトルロード命令を用いることで、主記憶上での開始アドレス(第4オペランド)とストライド値(第3オペランド)に基づいてデータの読み出しを行い、ベクトルレジスタ2の先頭ベクトルレジスタ(第2オペランド)から開始して、ベクトルレジスタ2の個数(第1オペランド)分のベクトルレジスタ2の各要素に対して、データの格納を行う。
By using this vector load instruction, the vector processing device reads data based on the start address (fourth operand) and the stride value (third operand) on the main memory, and the first vector register of the
例えば、第1オペランドに1が指定され、第2オペランドに0番目のベクトルレジスタ2が指定され、第3オペランドに1(8バイト)が指定され、第4オペランドにアドレス0が指定されたベクトルロード命令が実行された場合を仮定する。また、ベクトルロード命令の発行時のベクトル長は16であり、ベクトルロード命令では16個のデータが読み出されると想定する。すなわち、ベクトルロード命令によって、1つのロードバッファ4に、アドレスの間隔が1である要素が16個格納される。
For example, vector load in which 1 is specified for the first operand,
まず、ベクトルロード命令を受けたロードバッファ制御部5は、ロードバッファ4を1つ確保する。そして、ロードバッファ制御部5は、主記憶部7−1〜7−4それぞれに対して、主記憶読み出しリクエストを1つずつ送る。ここで、主記憶読み出しリクエストには、主記憶部7−1〜7−4それぞれでの開始アドレスが付加されている。
First, the load
主記憶部7−1は、メモリアドレス0〜3の内容を順次読み出して、読み出したデータを主記憶クロスバ6に送る。主記憶部7−2は、メモリアドレス4〜7の内容を順次読み出して、読み出したデータを主記憶クロスバ6に送る。主記憶部7−3は、メモリアドレス8〜11の内容を順次読み出して、読み出したデータを主記憶クロスバ6に送る。主記憶部7−4は、メモリアドレス12〜15の内容を順次読み出して、読み出したデータを主記憶クロスバ6に送る。主記憶クロスバ6は、主記憶部7−1〜7−4からそれぞれ送られたデータを、ロードバッファ4に対して返却する。
The main memory 7-1 sequentially reads the contents of the memory addresses 0 to 3 and sends the read data to the
ロードバッファ制御部5は、返却データに付加されたリクエストIDと、返却データが何番目に返却されたワードであるかと、に基づいて、ロードバッファテーブル8を検索して、主記憶7から返却されたデータをどのロードバッファ4のどこに書き込むかを判断して、ロードバッファ4に書き込む。
The load
ロードバッファ制御部5は、主記憶7からの読み出し対象となった全てのデータ(16個のデータ)を、ロードバッファ4に全て書き込えたと判断した場合には、第2オペランドで指定された0番目のベクトルレジスタ2に対してデータを転送し、全て転送し終わるとベクトルロード命令を完了する。
When the load
次に、図3および図4を参照して、主記憶7上の2次元配列の列に対してアクセスを行うベクトルロード命令に関して、ベクトル命令の実行前に予め行われる前処理方法を説明する。図3は、本実施の形態で用いる2次元配列を示し、アクセスの対象となる主記憶7上のデータを2次元配列の形式で配置している。図3では、16行17列の2次元配列を例示している。ここで、2次元配列の行方向において同一行内のデータは、主記憶7上でのメモリアドレスは連続しているものとする。一方で、列方向において同一列内のデータは、主記憶7上でのメモリアドレスは連続していないものとする。つまり、同じ列のデータに対してアクセスする場合には、一定間隔(ストライド)を空けて並んでいる複数の配列要素に対するアクセス(ストライドアクセス)となる。
Next, with reference to FIG. 3 and FIG. 4, a preprocessing method that is performed in advance before execution of a vector instruction will be described with respect to a vector load instruction that accesses a two-dimensional array column on the
本実施の形態では、ストライドアクセスのベクトルロード命令を生成するに先立って、2次元配列の列方向において同一列内に位置する全ての要素が、主記憶の読み出し単位内で同一の位置となるように、2次元配列の要素の位置を予め調整する。 In the present embodiment, prior to generating a stride access vector load instruction, all elements located in the same column in the column direction of the two-dimensional array are set to the same position in the main memory read unit. In addition, the positions of the elements of the two-dimensional array are adjusted in advance.
2次元配列の調整は、コンパイラによって行われる。コンパイラは、ベクトルロード命令を生成するに先立って、主記憶7でのメモリの読み出し単位と2次元配列の構成に基づいてストライドを決定する。コンパイラは、この決定したストライドに応じて2次元配列の調整を行う。コンパイラは、調整した2次元配列を主記憶部7−1〜7−4に対して配置する。具体的には、例えば、図3に示す2次元配列では、メモリの読み出し単位が4であり、2次元配列の列数が17であるため、17より大きな値であって4の倍数である20をストライドとして決定する。
Adjustment of the two-dimensional array is performed by a compiler. Prior to generating the vector load instruction, the compiler determines the stride based on the memory read unit in the
なお、コンパイラは、メモリの読み出し単位と、2次元配列の構成と、主記憶7−1〜7−4の個数と、に基づいて、ストライドを決定するようにしてもよい。具体的には、例えば、図3に示す2次元配列では、メモリの読み出し単位が4であり、2次元配列の列数が17であり、主記憶部7−1〜7−4の個数が4であるため、17より大きな値であって16の倍数でない値20をストライドとして決定する。ここで、値16は、メモリの読み出し単位と主記憶部7−1〜7−4の個数との乗算により求まる値である。
The compiler may determine the stride based on the memory reading unit, the configuration of the two-dimensional array, and the number of main memories 7-1 to 7-4. Specifically, for example, in the two-dimensional array shown in FIG. 3, the memory reading unit is 4, the number of columns of the two-dimensional array is 17, and the number of main storage units 7-1 to 7-4 is 4. Therefore, a value 20 greater than 17 and not a multiple of 16 is determined as a stride. Here, the
コンパイラは、このようにして求めたストライドに応じて2次元配列の調整を行う。図3に示す2次元配列では、2次元配列の列数が20となるように、3列分の行列を追加する(図において斜線を用いて示す範囲301)。このような行列の追加(パディング)によって、行方向において2次元配列の同一行内の全てのデータをちょうど読み出し単位で扱うことができ、また、列方向において同一列内に位置する全ての要素が、メモリの読み出し単位内で同一の位置に調整される。
The compiler adjusts the two-dimensional array according to the stride thus obtained. In the two-dimensional array shown in FIG. 3, a matrix for three columns is added so that the number of columns in the two-dimensional array is 20 (
図4および図1を用いて、パディング後の2次元配列の各要素と主記憶7の格納アドレスの関係を説明する。図4は、図3に示した2次元配列をパディングして主記憶部7−1〜7−4に対してマッピングした場合に、2次元配列の1列目〜4列目の要素が格納される主記憶部7−1〜7−4のアドレスを示している。なお、主記憶部7−1〜7−4の格納開始メモリアドレスは0とした。また、図4では、図3に示した2次元配列から1列目〜4列目のみを抜き出して表示している。
The relationship between each element of the two-dimensional array after padding and the storage address of the
図4において、各列のそれぞれの要素が、図1に示した主記憶部7−1〜7−1〜7−4のアドレスにマッピングされている。例えば、図4の4列の1行目の要素はそれぞれ、図1の主記憶部7−1のメモリアドレス0、メモリアドレス1、メモリアドレス2、メモリアドレス3にマッピングされる。すなわち、図4の4列の1行目の要素は全て、図1に示した主記憶部7−1に格納されている。また、図4の4列の他の行の4つの要素についても、図1に示した主記憶部7−2〜7−4にそれぞれ格納されている。すなわち、パディング後の2次元配列の1列目から4列目の同一行内のデータが、図1の主記憶7においてちょうどメモリの読み出し単位で配置される。
In FIG. 4, each element of each column is mapped to the addresses of the main storage units 7-1 to 7-1 to 7-4 shown in FIG. For example, the elements in the first row of the four columns in FIG. 4 are mapped to the memory address 0, the
また、例えば、2次元配列の1列目のデータは主記憶部7−1の1番目のメモリアドレス0となり、2列目のデータは主記憶部7−2の1番目のメモリアドレス20となり、3列目のデータは主記憶部7−3の1番目のメモリアドレス40となり、4列目のデータは主記憶部7−4の1番目のメモリアドレス60となっている。すなわち、2次元配列の各列で同一列内に位置する全ての要素が、メモリの読み出し単位内で同一の位置となる。 Further, for example, the data in the first column of the two-dimensional array is the first memory address 0 of the main storage unit 7-1 and the data in the second column is the first memory address 20 of the main storage unit 7-2. The data in the third column is the first memory address 40 of the main storage unit 7-3, and the data in the fourth column is the first memory address 60 of the main storage unit 7-4. That is, all elements positioned in the same column in each column of the two-dimensional array are in the same position in the memory read unit.
図5を用いて、図1に示したベクトル処理装置において、ストライドアクセスするベクトルロードの処理方法を説明する。
図5は、図3に示した2次元配列データのうちで、図4に示した1列目から4列目の要素をベクトルロードした場合における、ベクトルロード方法の処理を説明する図である。このベクトルロードは、データのアクセスは図3の列方向でのアクセスとなることから、ストライドアクセスである。図5では、ある時刻において主記憶部7−1〜7−4から読み出されるデータと、主記憶部7−1〜7−4からの読み出しが完了したときにロードバッファ4(ロードバッファ4−1〜4−4)に格納される内容と、を示している。
例えば、時刻Tでは、メモリアドレス0、20、40、60の内容が、主記憶部7−1〜7−4からそれぞれ読み出される。そして、読み出しが完了したときには、ストライドアクセスされた各アドレスの内容が、ロードバッファ4−1〜4−4それぞれに格納される。
A vector load processing method for stride access in the vector processing apparatus shown in FIG. 1 will be described with reference to FIG.
FIG. 5 is a diagram for explaining the processing of the vector loading method when the elements of the first column to the fourth column shown in FIG. 4 are vector loaded from the two-dimensional array data shown in FIG. This vector load is a stride access because data access is access in the column direction of FIG. In FIG. 5, when data read from the main storage units 7-1 to 7-4 at a certain time and reading from the main storage units 7-1 to 7-4 are completed, the load buffer 4 (load buffer 4-1 To 4-4).
For example, at time T, the contents of memory addresses 0, 20, 40, and 60 are read from the main storage units 7-1 to 7-4, respectively. When the reading is completed, the contents of each address subjected to stride access are stored in the load buffers 4-1 to 4-4, respectively.
また、図5では、実行するベクトルロード命令として、第1オペランドに4が指定され、第2オペランドに0番目のベクトルレジスタ2が指定され、第3オペランドに20(160バイト)が指定され、第4オペランドにアドレス0が指定された場合を想定する。また、ベクトルロード命令の発行時のベクトル長は16であり、ベクトルロード命令では、16個のデータが読み出される。すなわち、ベクトルロード命令によって、ロードバッファ4−1〜4−4のそれぞれに、アドレスの間隔が20である要素が16個ずつ格納される。
In FIG. 5, as a vector load instruction to be executed, 4 is designated as the first operand, the
まず、ベクトル命令を受けたロードバッファ制御部5は、ロードバッファ4を4つ確保する(ロードバッファ4−1〜4−4)。そして、主記憶部7−1〜7−4に対して、主記憶読み出しリクエストをそれぞれ4つずつ送る。ここで、主記憶読み出しリクエストには、主記憶部7−1〜7−4それぞれでの開始アドレスが付加されている。
First, upon receiving a vector instruction, the load
主記憶部7−1は、メモリアドレス0〜3、メモリアドレス80〜83、メモリアドレス160〜163、メモリアドレス240〜243の内容を順次読み出して、読み出したデータを主記憶クロスバ6に送る。主記憶部7−2は、メモリアドレス20〜23、メモリアドレス100〜103、メモリアドレス180〜183、メモリアドレス260〜263の内容を順次読み出して、読み出したデータを主記憶クロスバ6に送る。主記憶部7−3は、メモリアドレス40〜43、メモリアドレス120〜123、メモリアドレス200〜203、メモリアドレス280〜283の内容を順次読み出して、読み出した主記憶クロスバ6に送る。主記憶部7−4は、メモリアドレス60〜63、メモリアドレス140〜143、メモリアドレス220〜223、メモリアドレス300〜303の内容を順次読み出して、読み出したデータを主記憶クロスバ6に送る。主記憶クロスバ6は、主記憶部7−1〜7−4から順次送られるデータを、ロードバッファ4−1〜4−4に対して返却する。
The main storage unit 7-1 sequentially reads the contents of the memory addresses 0 to 3, the memory addresses 80 to 83, the memory addresses 160 to 163, and the memory addresses 240 to 243, and sends the read data to the
ロードバッファ制御部5は、データに付加されたリクエストIDと、返却データが何番目に返却されたワードであるかと、に基づいて、ロードバッファテーブル8を引いて、主記憶から返却されたデータをどのロードバッファ4のどこに書き込むかを判断して、ロードバッファ4に書き込む。
The load
ロードバッファ制御部5は、主記憶7からの読み出し対象となった全てのデータ(64個のデータ)を、ロードバッファ4−1〜4−4に全て書き込えたと判断した場合には、第2オペランドで指定された0番目から3番目のベクトルレジスタ2に対してデータを転送し、全て転送し終わるとベクトルロード命令を完了する。
When the load
以上説明したように、本実施の形態によれば、ストライドアクセスを行う1個のベクトルロード命令によって、必要とするデータのみをメモリの読み出し単位でロードし、本来必要としない不要なアクセスの発生を防止することができる。このため、ストライドアクセス時のメモリからの読み出し回数を必要最低限の回数に抑制することができる。従って、メモリアクセスに要する消費電力を低減することができる。
さらに、本実施の形態によれば、ストライドアクセスのためにキャッシュメモリを使用せずに済むため、キャッシュメモリの容量を小さくすることができる。
As described above, according to the present embodiment, only necessary data is loaded in a memory read unit by one vector load instruction for performing stride access, and unnecessary access that is not necessary is generated. Can be prevented. For this reason, the number of times of reading from the memory at the time of stride access can be suppressed to the minimum necessary number. Therefore, power consumption required for memory access can be reduced.
Furthermore, according to the present embodiment, it is not necessary to use the cache memory for stride access, so the capacity of the cache memory can be reduced.
なお、図3に示した2次元配列に対してパディングを行わなかった場合に、どのような結果となるかを以下に簡単に説明する。
パディングを行わなかった場合、例えば、図3の2次元配列の要素のうちで、1行目の17列目の要素は、2行目の1列目から3列目までの3要素と合わせて、図1の主記憶部7−1にマッピングされる。また、例えば、2行目の4列目の要素は、2行目の5列目から7列目までの3要素と合わせて、図1の主記憶部7−2にマッピングされる。すなわち、ストライドアクセスの対象となる2行目の1列目から3列目までの3要素と、2行目の4列目の要素とが、それぞれ異なる主記憶部7−1〜7−4にマッピングされる。
このようにマッピングされた場合に、図3の2次元配列の1列目から4列目の要素に対するストライドアクセスを考える。すると、ストライドアクセスの対象となる要素(2行目の1列目から4列目の4要素)が、主記憶部7−1と主記憶部7−2とに分かれているために、例えば、主記憶部7−1に含まれる3要素を読み出すためのベクトルロード命令を実行し、さらに、主記憶部7−2に含まれる1要素を読み出すためのベクトルロード命令を実行する必要がある。しかし、主記憶部7−1に含まれる3要素を読み出すためにベクトルロード命令を実行した場合に、必要なのは3要素のみであり、他の1要素は不要な要素である。また、主記憶部7−2に含まれる3要素を読み出すためにベクトルロード命令を実行した場合に、必要なのは1要素のみであり、他の3要素は不要な要素である。すなわち、アクセス対象となる4要素がちょうど主記憶の読み出し単位に全て含まれていないために、メモリから読み出した複数のワードのうちで、レジスタにロードされるのは1ワードだけであり、その他のワードは使われないことになる。この結果、ストライドアクセス時に本来必要としない不要なアクセスをも含むことになってしまい、メモリアクセスに要する消費電力の増加につながってしまう。
The following is a brief description of what results will be obtained when padding is not performed on the two-dimensional array shown in FIG.
When padding is not performed, for example, among the elements of the two-dimensional array in FIG. 3, the element in the 17th column of the first row is combined with the three elements from the first column to the third column of the second row. , Mapped to the main storage unit 7-1 in FIG. Further, for example, the element in the fourth column on the second row is mapped to the main storage unit 7-2 in FIG. 1 together with the three elements from the fifth column to the seventh column on the second row. That is, the three elements from the first column to the third column on the second row and the elements in the fourth column on the second row are respectively stored in different main storage units 7-1 to 7-4. To be mapped.
Consider the stride access to the elements in the first to fourth columns of the two-dimensional array of FIG. Then, since the elements (four elements in the first column to the fourth column in the second row) subject to stride access are divided into the main storage unit 7-1 and the main storage unit 7-2, for example, It is necessary to execute a vector load instruction for reading out three elements included in the main storage unit 7-1 and to execute a vector load instruction for reading out one element included in the main storage unit 7-2. However, when the vector load instruction is executed to read out the three elements included in the main storage unit 7-1, only three elements are necessary, and the other one element is an unnecessary element. Further, when the vector load instruction is executed to read out the three elements included in the main storage unit 7-2, only one element is necessary, and the other three elements are unnecessary elements. That is, since all four elements to be accessed are not included in the main memory read unit, only one word is loaded into the register among the plurality of words read from the memory. The word will not be used. As a result, unnecessary access that is not originally required during stride access is included, leading to an increase in power consumption required for memory access.
<その他の実施の形態>
実施の形態1では、"第1の実施の形態では、ロードバッファ制御部5が、返却データに付加されたリクエストIDと、返却データが何番目に返却されたワードであるかと、に基づいて、ロードバッファテーブル8を引いて、どのロードバッファ4のどこに書き込むかを判断する"という例を示したが、本発明はこれに限定されない。
<Other embodiments>
In the first embodiment, “in the first embodiment, the load
例えば、"まず、ロードバッファ制御部5が、読み出したデータを格納するロードバッファの番号と、そのロードバッファの書き込み位置と、を主記憶読み出しリクエストに対して付加する。主記憶部7−1〜7−4が、リクエストに付加されたこれら2つの情報を読み出したデータに付加して、ロードバッファ制御部5に返却する。さらに、ロードバッファ制御部5が、これら付加された情報に基づいて、ロードバッファ4への書き込みを行う。"という構成を採用することもできる。すなわち、ロードバッファ制御部5は、リクエストの識別情報と、そのリクエストにより主記憶7から読み出されるデータのロードバッファ4での書き込み位置情報と、に基づいて、主記憶7から読み出したデータのロードバッファ4への書き込みを制御する。これにより、ロードバッファ制御部5は、ロードバッファテーブル8を有せずとも、本発明の効果を奏することができる。
For example, “First, the load
ここで、図6を参照して、本発明の概要を改めて説明する。図6は、本発明にかかるベクトル処理装置の本質的部分のみを抽出して記載したブロック図である。
図に示すように、ベクトル処理装置は、メモリの読み出し単位ごとにそれぞれ異なる記憶部7−1〜7−4に記憶するようにインターリーブされた主記憶7と、主記憶7から読み出されたデータを一時的に格納するロードバッファ4と、主記憶7に対するデータ読み出しリクエストの発行、および主記憶7から読み出されたデータのロードバッファ4への書き込みを制御するロードバッファ制御部5と、ロードバッファ4から転送されるデータを格納するベクトルレジスタ2と、を備えている。
Here, the outline of the present invention will be described again with reference to FIG. FIG. 6 is a block diagram in which only the essential part of the vector processing apparatus according to the present invention is extracted and described.
As shown in the figure, the vector processing apparatus includes a
ここで、主記憶7の2次元配列の要素は、メモリのアドレスが連続して格納されない次元方向の全ての要素がメモリの読み出し単位内での位置が同じになるように予め位置が調整されて主記憶7に格納される。ロードバッファ制御部5は、メモリのアドレスが連続して格納されない次元方向へのアクセスを行うベクトルロード命令を受けた場合に、リクエストの識別情報と、そのリクエストにより主記憶7から読み出されるデータのロードバッファ4での書き込み位置情報と、に基づいて、主記憶7から読み出されたデータのロードバッファ4への書き込みを制御する。
Here, the positions of the elements of the two-dimensional array in the
本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。 The present invention is not limited to the above-described embodiment, and various modifications can be made without departing from the gist of the present invention already described.
上記の実施の形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。 A part or all of the above embodiment can be described as in the following supplementary notes, but is not limited thereto.
(付記1)
メモリの読み出し単位ごとにそれぞれ異なる記憶手段に記憶するようにインターリーブされた主記憶装置と、
前記主記憶装置から読み出されたデータを一時的に格納するロードバッファと、
前記主記憶装置に対するデータ読み出しリクエストの発行、および前記主記憶装置から読み出されたデータの前記ロードバッファへの書き込みを制御するロードバッファ制御手段と、
前記ロードバッファから転送されるデータを格納するベクトルレジスタと、を備え、
前記主記憶装置上の2次元配列の要素が、メモリのアドレスが連続して格納されない次元方向の全ての要素が前記メモリの読み出し単位内での位置が同じになるように予め位置が調整されて前記主記憶装置に格納され、
前記ロードバッファ制御手段は、前記メモリのアドレスが連続して格納されない次元方向へのアクセスを行うベクトルロード命令を受けた場合に、前記リクエストの識別情報と、当該リクエストにより前記主記憶装置から読み出されるデータの前記ロードバッファでの書き込み位置情報と、に基づいて、前記主記憶装置から読み出されたデータの前記ロードバッファへの書き込みを制御する、
ベクトル処理装置。
(Appendix 1)
A main storage device interleaved so as to be stored in different storage means for each memory read unit;
A load buffer for temporarily storing data read from the main storage device;
Load buffer control means for controlling issuance of a data read request to the main storage device and writing of data read from the main storage device to the load buffer;
A vector register for storing data transferred from the load buffer,
The positions of the elements of the two-dimensional array on the main storage device are adjusted in advance so that all the elements in the dimension direction in which the addresses of the memory are not continuously stored are the same in the reading unit of the memory. Stored in the main memory,
When the load buffer control unit receives a vector load instruction for performing access in a dimension direction in which the addresses of the memory are not continuously stored, the load buffer control unit is read from the main storage device by the request identification information and the request. Controlling writing of data read from the main storage device to the load buffer based on write position information of the data in the load buffer;
Vector processing device.
(付記2)
前記メモリのアドレスが連続して格納されない次元方向の要素数が、前記メモリの読み出し単位の整数倍となるように要素が予め追加されることで、前記2次元配列の要素の位置が予め調整される、
付記1に記載のベクトル処理装置。
(Appendix 2)
The positions of the elements of the two-dimensional array are adjusted in advance by adding elements in advance so that the number of elements in the dimension direction in which the addresses of the memory are not continuously stored is an integral multiple of the read unit of the memory. The
The vector processing device according to
(付記3)
前記ロードバッファ制御手段は、前記主記憶装置に対するリクエストの識別情報と、当該リクエストにより前記主記憶装置から読み出されるデータの前記ロードバッファでの書き込み位置を示す情報と、を対応付けて保持するロードバッファテーブルを有し、当該ロードバッファテーブルを参照して、前記主記憶装置から読み出されたデータの前記ロードバッファへの書き込みを制御する、
付記1または2に記載のベクトル処理装置。
(Appendix 3)
The load buffer control means is a load buffer that holds, in association with each other, identification information of a request to the main storage device and information indicating a write position in the load buffer of data read from the main storage device by the request Having a table and referring to the load buffer table to control writing of data read from the main storage device to the load buffer;
The vector processing device according to
(付記4)
前記ロードバッファ制御手段は、前記主記憶装置に対するリクエストの識別情報と、当該リクエストにより前記主記憶装置から読み出されるデータの前記ロードバッファでの書き込み位置を示す情報と、を前記主記憶装置に対して送出し、前記主記憶装置から読み出されて返却されるデータに付加されるこれら情報に基づいて、前記主記憶装置から読み出されたデータの前記ロードバッファへの書き込みを制御する、
付記1または2に記載のベクトル処理装置。
(Appendix 4)
The load buffer control means sends identification information of a request to the main storage device and information indicating a write position in the load buffer of data read from the main storage device by the request to the main storage device. Sending and controlling writing of data read from the main storage device to the load buffer based on the information added to the data read and returned from the main storage device;
The vector processing device according to
(付記5)
前記主記憶装置がSDRAMを用いて構成される、
付記1ないし4のいずれか1項に記載のベクトル処理装置。
(Appendix 5)
The main storage device is configured using SDRAM.
The vector processing device according to any one of
(付記6)
主記憶装置上の2次元配列の要素が、メモリのアドレスが連続して格納されない次元方向の全ての要素が前記メモリの読み出し単位内での位置が同じになるように予め位置が調整されて前記主記憶装置に格納されるステップと、
前記メモリのアドレスが連続して格納されない次元方向へのアクセスを行うベクトルロード命令を受けた場合に、前記主記憶装置に対するデータ読み出しリクエストの識別情報と、当該リクエストにより前記主記憶装置から読み出されるデータのロードバッファでの書き込み位置情報と、に基づいて、前記主記憶装置から読み出されたデータの前記ロードバッファへの書き込みを制御するステップと、
を備えるベクトル処理装置のベクトル処理方法。
(Appendix 6)
The positions of the elements of the two-dimensional array on the main storage device are adjusted in advance so that all the elements in the dimension direction in which memory addresses are not continuously stored are the same in the reading unit of the memory. Steps stored in main memory;
When receiving a vector load instruction for accessing in a dimension direction in which the addresses of the memory are not continuously stored, identification information of a data read request for the main storage device and data read from the main storage device by the request Controlling the writing of the data read from the main storage device to the load buffer based on the write position information in the load buffer;
A vector processing method of a vector processing apparatus comprising:
(付記7)
前記2次元配列の要素の位置が予め調整されるステップでは、前記メモリのアドレスが連続して格納されない次元方向の要素数が、前記メモリの読み出し単位の整数倍となるように要素が予め追加される、
付記6に記載のベクトル処理装置のベクトル処理方法。
(Appendix 7)
In the step of adjusting the positions of the elements of the two-dimensional array in advance, the elements are added in advance so that the number of elements in the dimension direction in which the addresses of the memory are not continuously stored is an integral multiple of the read unit of the memory. The
The vector processing method of the vector processing apparatus according to
(付記8)
前記ロードバッファへの書き込みを制御するステップは、前記主記憶装置に対するリクエストの識別情報と、当該リクエストにより前記主記憶装置から読み出されるデータの前記ロードバッファでの書き込み位置を示す情報と、を対応付けて保持し、当該保持した情報を参照して、前記主記憶装置から読み出されたデータの前記ロードバッファへの書き込みを制御する、
付記6または7に記載のベクトル処理装置のベクトル処理方法。
(Appendix 8)
The step of controlling the writing to the load buffer associates the identification information of the request to the main storage device with the information indicating the write position in the load buffer of the data read from the main storage device by the request. Control the writing of the data read from the main storage device to the load buffer with reference to the stored information,
The vector processing method of the vector processing apparatus according to
(付記9)
前記ロードバッファへの書き込みを制御するステップは、前記主記憶装置に対するリクエストの識別情報と、当該リクエストにより前記主記憶装置から読み出されるデータの前記ロードバッファでの書き込み位置を示す情報と、を前記主記憶装置に対して送出し、前記主記憶装置から読み出されて返却されるデータに付加されるこれら情報に基づいて、前記主記憶装置から読み出されたデータの前記ロードバッファへの書き込みを制御する、
付記6または7に記載のベクトル処理装置のベクトル処理方法。
(Appendix 9)
The step of controlling the writing to the load buffer includes the identification information of the request to the main storage device and the information indicating the write position in the load buffer of the data read from the main storage device by the request. Control writing of the data read from the main storage device to the load buffer based on the information sent to the storage device and added to the data read from the main storage device and returned. To
The vector processing method of the vector processing apparatus according to
(付記10)
前記主記憶装置がSDRAMを用いて構成される、
付記6ないし9のいずれか1項に記載のベクトル処理装置のベクトル処理方法。
(Appendix 10)
The main storage device is configured using SDRAM.
The vector processing method of the vector processing apparatus according to any one of
1 ベクトル演算器
2 ベクトルレジスタ
3 演算器クロスバ
4 ロードバッファ
4−1〜4−4 ロードバッファ
5 ロードバッファ制御部
6 主記憶クロスバ
7 主記憶
7−1〜7−4 主記憶部
8 ロードバッファテーブル
301 パディングした範囲
1
Claims (10)
前記主記憶装置から読み出されたデータを一時的に格納するロードバッファと、
前記主記憶装置に対するデータ読み出しリクエストの発行、および前記主記憶装置から読み出されたデータの前記ロードバッファへの書き込みを制御するロードバッファ制御手段と、
前記ロードバッファから転送されるデータを格納するベクトルレジスタと、を備え、
前記主記憶装置上の2次元配列の要素が、メモリのアドレスが連続して格納されない次元方向の全ての要素が前記メモリの読み出し単位内での位置が同じになるように予め位置が調整されて前記主記憶装置に格納され、
前記ロードバッファ制御手段は、前記メモリのアドレスが連続して格納されない次元方向へのアクセスを行うベクトルロード命令を受けた場合に、前記リクエストの識別情報と、当該リクエストにより前記主記憶装置から読み出されるデータの前記ロードバッファでの書き込み位置情報と、に基づいて、前記主記憶装置から読み出されたデータの前記ロードバッファへの書き込みを制御する、
ベクトル処理装置。 A main storage device interleaved so as to be stored in different storage means for each memory read unit;
A load buffer for temporarily storing data read from the main storage device;
Load buffer control means for controlling issuance of a data read request to the main storage device and writing of data read from the main storage device to the load buffer;
A vector register for storing data transferred from the load buffer,
The positions of the elements of the two-dimensional array on the main storage device are adjusted in advance so that all the elements in the dimension direction in which the addresses of the memory are not continuously stored are the same in the reading unit of the memory. Stored in the main memory,
When the load buffer control unit receives a vector load instruction for performing access in a dimension direction in which the addresses of the memory are not continuously stored, the load buffer control unit is read from the main storage device by the request identification information and the request. Controlling writing of data read from the main storage device to the load buffer based on write position information of the data in the load buffer;
Vector processing device.
請求項1に記載のベクトル処理装置。 The positions of the elements of the two-dimensional array are adjusted in advance by adding elements in advance so that the number of elements in the dimension direction in which the addresses of the memory are not continuously stored is an integral multiple of the read unit of the memory. The
The vector processing apparatus according to claim 1.
請求項1または2に記載のベクトル処理装置。 The load buffer control means is a load buffer that holds, in association with each other, identification information of a request to the main storage device and information indicating a write position in the load buffer of data read from the main storage device by the request Having a table and referring to the load buffer table to control writing of data read from the main storage device to the load buffer;
The vector processing apparatus according to claim 1.
請求項1または2に記載のベクトル処理装置。 The load buffer control means sends identification information of a request to the main storage device and information indicating a write position in the load buffer of data read from the main storage device by the request to the main storage device. Sending and controlling writing of data read from the main storage device to the load buffer based on the information added to the data read and returned from the main storage device;
The vector processing apparatus according to claim 1.
請求項1ないし4のいずれか1項に記載のベクトル処理装置。 The main storage device is configured using SDRAM.
The vector processing apparatus according to claim 1.
前記メモリのアドレスが連続して格納されない次元方向へのアクセスを行うベクトルロード命令を受けた場合に、前記主記憶装置に対するデータ読み出しリクエストの識別情報と、当該リクエストにより前記主記憶装置から読み出されるデータのロードバッファでの書き込み位置情報と、に基づいて、前記主記憶装置から読み出されたデータの前記ロードバッファへの書き込みを制御するステップと、
を備えるベクトル処理装置のベクトル処理方法。 The positions of the elements of the two-dimensional array on the main storage device are adjusted in advance so that all the elements in the dimension direction in which memory addresses are not continuously stored are the same in the reading unit of the memory. Steps stored in main memory;
When receiving a vector load instruction for accessing in a dimension direction in which the addresses of the memory are not continuously stored, identification information of a data read request for the main storage device and data read from the main storage device by the request Controlling the writing of the data read from the main storage device to the load buffer based on the write position information in the load buffer;
A vector processing method of a vector processing apparatus comprising:
請求項6に記載のベクトル処理装置のベクトル処理方法。 In the step of adjusting the positions of the elements of the two-dimensional array in advance, the elements are added in advance so that the number of elements in the dimension direction in which the addresses of the memory are not continuously stored is an integral multiple of the read unit of the memory. The
The vector processing method of the vector processing apparatus according to claim 6.
請求項6または7に記載のベクトル処理装置のベクトル処理方法。 The step of controlling the writing to the load buffer associates the identification information of the request to the main storage device with the information indicating the write position in the load buffer of the data read from the main storage device by the request. Control the writing of the data read from the main storage device to the load buffer with reference to the stored information,
The vector processing method of the vector processing apparatus according to claim 6 or 7.
請求項6または7に記載のベクトル処理装置のベクトル処理方法。 The step of controlling the writing to the load buffer includes the identification information of the request to the main storage device and the information indicating the write position in the load buffer of the data read from the main storage device by the request. Control writing of the data read from the main storage device to the load buffer based on the information sent to the storage device and added to the data read from the main storage device and returned. To
The vector processing method of the vector processing apparatus according to claim 6 or 7.
請求項6ないし9のいずれか1項に記載のベクトル処理装置のベクトル処理方法。 The main storage device is configured using SDRAM.
The vector processing method of the vector processing apparatus of any one of Claims 6 thru | or 9.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012040261A JP5527340B2 (en) | 2012-02-27 | 2012-02-27 | Vector processing apparatus and vector processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012040261A JP5527340B2 (en) | 2012-02-27 | 2012-02-27 | Vector processing apparatus and vector processing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013175115A JP2013175115A (en) | 2013-09-05 |
JP5527340B2 true JP5527340B2 (en) | 2014-06-18 |
Family
ID=49267950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012040261A Active JP5527340B2 (en) | 2012-02-27 | 2012-02-27 | Vector processing apparatus and vector processing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5527340B2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104636372B (en) * | 2013-11-11 | 2019-04-26 | 中兴通讯股份有限公司 | The method and device of big data quantity processing is realized based on table |
CN107633295B (en) | 2017-09-25 | 2020-04-28 | 南京地平线机器人技术有限公司 | Method and device for adapting parameters of a neural network |
CN109978969B (en) * | 2019-01-31 | 2023-07-04 | 国网山西省电力公司晋城供电公司 | Drawing device and method for vector diagram of electric power system |
US12020029B2 (en) | 2019-06-14 | 2024-06-25 | Nec Corporation | Program conversion device, program conversion method, and program conversion program |
-
2012
- 2012-02-27 JP JP2012040261A patent/JP5527340B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2013175115A (en) | 2013-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8380934B2 (en) | Cache device | |
US8422330B2 (en) | Memory controller and memory controlling method | |
US9262174B2 (en) | Dynamic bank mode addressing for memory access | |
CN108733415B (en) | Method and device for supporting vector random access | |
US8533399B2 (en) | Cache directory look-up re-use as conflict check mechanism for speculative memory requests | |
JP5697279B2 (en) | Area-based technology to accurately predict memory access | |
US20120221808A1 (en) | Shared single-access memory with management of multiple parallel requests | |
US8583873B2 (en) | Multiport data cache apparatus and method of controlling the same | |
EP2423821A2 (en) | Processor, apparatus, and method for fetching instructions and configurations from a shared cache | |
CN108139994B (en) | Memory access method and memory controller | |
US20120233441A1 (en) | Multi-threaded instruction buffer design | |
JP5527340B2 (en) | Vector processing apparatus and vector processing method | |
KR20130065957A (en) | Control apparatus of memory and control method thereof, and recording medium storing program for executing method of the same in computer | |
JP2008529181A5 (en) | ||
US8028118B2 (en) | Using an index value located on a page table to index page attributes | |
CN104182281B (en) | A kind of implementation method of GPGPU register caches | |
KR102202575B1 (en) | Memory management method and apparatus | |
US11599470B2 (en) | Last-level collective hardware prefetching | |
EP4150467B1 (en) | Two-way interleaving in a three-rank environment | |
Lee et al. | Excavating the hidden parallelism inside DRAM architectures with buffered compares | |
US8862825B2 (en) | Processor supporting coarse-grained array and VLIW modes | |
JP7346883B2 (en) | Vector processor device and generation method | |
TWI850513B (en) | Method for in-memory computing and system for computing | |
TW201814540A (en) | Apparatus and method for providing an atomic set of data accesses | |
US8713291B2 (en) | Cache memory control device, semiconductor integrated circuit, and cache memory control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130610 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140228 |
|
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: 20140318 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140331 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5527340 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |