JP5527340B2 - Vector processing apparatus and vector processing method - Google Patents

Vector processing apparatus and vector processing method Download PDF

Info

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
Application number
JP2012040261A
Other languages
Japanese (ja)
Other versions
JP2013175115A (en
Inventor
健 加納
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2012040261A priority Critical patent/JP5527340B2/en
Publication of JP2013175115A publication Critical patent/JP2013175115A/en
Application granted granted Critical
Publication of JP5527340B2 publication Critical patent/JP5527340B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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 Document 1 describes a stride access related to a vector computer. This vector computer is provided with a vector load instruction for performing stride access. This vector load instruction is used to access a plurality of memory addresses spaced by a certain distance (stride) when trying to access row or column data that cannot be accessed by continuous addresses in the two-dimensional matrix data in the main memory. Access the element.

特許文献1には、ベクトル計算機に関して、ワード単位でインターリーブされた主記憶部から複素数の実部および虚部の両方を読み出して、読みだしたデータを2つのロードバッファ、2つのベクトルレジスタにベクトルロードするベクトルロード方法が開示されている。また、特許文献2には、キャッシュメモリを備えたベクトル計算機が開示されている。   In Patent Document 1, regarding a vector computer, both a real part and an imaginary part of a complex number are read from a main memory unit interleaved in units of words, and the read data is loaded into two load buffers and two vector registers. A vector loading method is disclosed. Patent Document 2 discloses a vector computer having a cache memory.

特許第3786182号Japanese Patent No. 3786182 特開2010−86496号公報JP 2010-86496 A

「コンピュータ・アーキテクチャ」、ジョン・ヘネシー、デイビッド・パターソン著、364〜366ページ、1992年12月25日発行"Computer Architecture", John Hennessy, by David Patterson, pp. 364-366, published December 25, 1992

近年、主記憶を構成する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 Patent Document 2, a cache memory is provided, and a plurality of words read by preceding stride access are stored in the cache memory in advance, and data on the cache memory is stored by subsequent stride access. The technique of using is disclosed. However, since the capacity of the cache memory is small compared with the capacity of the main memory, not all necessary data can be stored in the cache memory. In addition, even if data can be once stored in the cache memory, it is expelled by another memory access, and it is assumed that no data already exists in the cache memory at the time of subsequent stride access.

言い換えると、後続のストライドアクセスによってアクセスされるワードを含んだブロックを、前回のストライドアクセスにおいてキャッシュメモリに予め格納しておいたとしても、後続のストライドアクセスが実行される前に、キャッシュメモリ上のブロックが既に追い出されていることも考えられる。このため、仮にキャッシュメモリを設けたとしても、後続のストライドアクセスによって同じブロックを再度、主記憶から読み出す可能性がある。なお、十分な容量のキャッシュメモリを確保することで必要なブロックが追い出されないように保証し、後続のベクトルロード命令によってキャッシュヒットさせることが考えられるが、この場合には、キャッシュメモリの容量の増加につながってしまう。   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 is a diagram illustrating a configuration of a vector processing apparatus according to a first embodiment. 実施の形態1にかかるベクトル処理装置の動作を説明するための図である。FIG. 5 is a diagram for explaining an operation of the vector processing apparatus according to the first embodiment; 実施の形態1にかかる配列の構成を説明するための図である。FIG. 3 is a diagram for explaining a configuration of an array according to the first embodiment. 実施の形態1にかかる配列の要素のアドレスを説明するための図である。FIG. 6 is a diagram for explaining addresses of elements of the array according to the first embodiment; 実施の形態1にかかるベクトル処理装置の動作を説明するための図である。FIG. 5 is a diagram for explaining an operation of the vector processing apparatus according to the first embodiment; 本発明にかかるベクトル処理装置の本質的部分を説明するための図である。It is a figure for demonstrating the essential part of the vector processing apparatus concerning this invention.

以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
<発明の実施の形態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.
<Embodiment 1 of the Invention>
[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 vector computing unit 1, a vector register 2, a computing unit crossbar 3, a load buffer 4, a load buffer control unit 5, a main memory crossbar 6, a main memory 7 as a main memory, It has.

ベクトル演算器1は、ベクトルレジスタ2に格納されているデータを用いてベクトル演算を行う演算器群である。ベクトル演算器1は、通常、複数種類の演算器を備えている。演算結果は、ベクトルレジスタ2に格納される。   The vector computing unit 1 is a group of computing units that perform vector computation using data stored in the vector register 2. The vector computing unit 1 normally includes a plurality of types of computing units. The calculation result is stored in the vector register 2.

ベクトルレジスタ2は、ベクトル演算に用いるベクトルデータを格納するレジスタ群である。ベクトルレジスタ2は、通常、複数個のレジスタを備えている。1つのレジスタ当たり、複数個のデータを格納することができ、最大ベクトル長分の個数のデータを格納することができる。本実施の形態では、最大ベクトル長を16とした場合を例に説明し、1つのレジスタ当たり、16個のデータを格納することができる(すなわち、ベクトルレジスタ2に含まれる1つのレジスタあたりの要素数は16である)。   The vector register 2 is a group of registers for storing vector data used for vector operations. The vector register 2 usually includes a plurality of registers. A plurality of data can be stored per register, and the number of data corresponding to the maximum vector length can be stored. In the present embodiment, the case where the maximum vector length is 16 will be described as an example, and 16 data can be stored per register (that is, elements per register included in the vector register 2). The number is 16.)

演算器クロスバ3は、ベクトル演算器1およびベクトルレジスタ2と、ロードバッファ4とを相互に接続するネットワークである。   The computing unit crossbar 3 is a network that connects the vector computing unit 1, the vector register 2, and the load buffer 4 to each other.

ロードバッファ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 load buffer 4 is a buffer group for temporarily storing data read from the main memory 7. In the present embodiment, the load buffer 4 includes a plurality of load buffers 4-1 to 4-4. Normally, one load buffer 4-1 to 4-4 among the load buffers 4 is used for one vector load instruction. The capacity per load buffer 4-1 to 4-4 is the same as the capacity per vector register 2. In the present embodiment, 16 pieces of data can be stored per load buffer 4-1 to 4-4. Since the data read from the main memory 7 is not always returned according to the order of read requests to the main memory 7, this embodiment uses such a load buffer 4. The number of buffer groups constituting the load buffer 4 is not limited to four, and may be the same as or more than the number of read units in the main memory.

ロードバッファ制御部5は、主記憶7に対する主記憶読み出しリクエストの発行や、主記憶7から読み出されたデータのロードバッファ4への書き込みの制御を行う。本実施の形態では、ロードバッファ制御部5は、ロードバッファテーブル8を備えている。   The load buffer control unit 5 issues a main memory read request to the main memory 7 and controls writing of data read from the main memory 7 to the load buffer 4. In the present embodiment, the load buffer control unit 5 includes a load buffer table 8.

ロードバッファテーブル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 load buffer 4 the data returned from the main memory 7 is written. When receiving the vector load instruction, the load buffer control unit 5 issues a main memory read request to each of the main storage units 7-1 to 7-4 of the main memory 7, but the main storage units 7-1 to 7-7. When a request is issued to -4, identification information of the request (hereinafter referred to as a request ID) and data returned from the main storage units 7-1 to 7-4 that are the targets of the request Are stored in the load buffer table 8 in association with the information indicating the write positions of the load buffers 4-1 to 4-4 to which the return data is written. Then, the load buffer control unit 5 uses the request ID added to the data returned from the main storage units 7-1 to 7-4 and the main storage units 7-1 to 7-4 for the request. Based on what return data is returned, the load buffer table 8 is referred to and it is determined in which load buffer 4 the return data is written.

主記憶クロスバ6は、主記憶部7−1〜7−4とロードバッファ4を相互に接続するネットワークである。   The main memory crossbar 6 is a network that connects the main memory units 7-1 to 7-4 and the load buffer 4 to each other.

主記憶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 main memory 7 is interleaved in different storage units for each memory read unit. In the present embodiment, the case where the read unit of the memory is 4, and the main memory 7 is divided into four main memory units 7-1 to 7-4 will be described as an example. That is, the main memory 7 includes four main storage units 7-1 to 7-4, and four data can be read out by reading the memory once. The main memory 7 is configured using, for example, an SDRAM (Synchronous dynamic random access memory). Note that the read unit of the memory is determined according to the configuration of the main memory 7 and is not limited to four, but may be two or more read units. Further, if a plurality of memory reading units are used, the division unit of the main memory 7 is not limited to four, and may be one or more arbitrary division units.

主記憶部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 main memory crossbar 6. In the present embodiment, a maximum of four data per clock is returned to the load buffer 4 and written to the load buffer 4. Further, the main storage units 7-1 to 7-4 add the received request ID to the return data and send it to the main storage crossbar 6.

[動作の説明]
続いて以下では、ベクトル処理装置の動作の一例について、図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 load buffer 4 when reading from the main storage units 7-1 to 7-4 is completed. , Shows. For example, at time T, the contents of memory addresses 0, 4, 8, and 12 are read from the main storage units 7-1 to 7-4, respectively. When reading is completed, the contents of the memory addresses 0 to 15 are stored in the load buffer 4.

ベクトルロード命令は、主記憶からベクトルレジスタ2へのデータ転送命令である。本実施の形態では、ベクトルロード命令は、第1〜第4のオペランドを含んでいる。
第1オペランドは、データが格納されるベクトルレジスタ2の個数を指定する。
第2オペランドは、データが格納される先頭のベクトルレジスタ2を指定する。
第3オペランドは、ストライド値を指定する。
第4オペランドは、主記憶上でのデータの読み出しを開始するアドレスを指定する。
The vector load instruction is a data transfer instruction from the main memory to the vector register 2. In the present embodiment, the vector load instruction includes first to fourth operands.
The first operand specifies the number of vector registers 2 in which data is stored.
The second operand specifies the top vector register 2 in which data is stored.
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 vector register 2 Starting from (second operand), data is stored in each element of the vector register 2 for the number of vector registers 2 (first operand).

例えば、第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, 0th vector register 2 is specified for the second operand, 1 (8 bytes) is specified for the third operand, and address 0 is specified for the fourth operand Assume that the instruction is executed. Further, it is assumed that the vector length at the time of issuing the vector load instruction is 16, and that 16 data are read out by the vector load instruction. In other words, 16 elements having an address interval of 1 are stored in one load buffer 4 by the vector load instruction.

まず、ベクトルロード命令を受けたロードバッファ制御部5は、ロードバッファ4を1つ確保する。そして、ロードバッファ制御部5は、主記憶部7−1〜7−4それぞれに対して、主記憶読み出しリクエストを1つずつ送る。ここで、主記憶読み出しリクエストには、主記憶部7−1〜7−4それぞれでの開始アドレスが付加されている。   First, the load buffer control unit 5 that has received the vector load instruction secures one load buffer 4. Then, the load buffer control unit 5 sends one main memory read request to each of the main storage units 7-1 to 7-4. Here, the start address in each of the main storage units 7-1 to 7-4 is added to the main memory read request.

主記憶部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 main memory crossbar 6. The main memory 7-2 sequentially reads the contents of the memory addresses 4 to 7 and sends the read data to the main memory crossbar 6. The main memory 7-3 sequentially reads the contents of the memory addresses 8 to 11 and sends the read data to the main memory crossbar 6. The main memory 7-4 sequentially reads the contents of the memory addresses 12 to 15 and sends the read data to the main memory crossbar 6. The main memory crossbar 6 returns the data respectively sent from the main memory units 7-1 to 7-4 to the load buffer 4.

ロードバッファ制御部5は、返却データに付加されたリクエストIDと、返却データが何番目に返却されたワードであるかと、に基づいて、ロードバッファテーブル8を検索して、主記憶7から返却されたデータをどのロードバッファ4のどこに書き込むかを判断して、ロードバッファ4に書き込む。   The load buffer control unit 5 searches the load buffer table 8 based on the request ID added to the return data and the number of the returned data, and is returned from the main memory 7. It is determined where in which load buffer 4 the written data is written, and the data is written into the load buffer 4.

ロードバッファ制御部5は、主記憶7からの読み出し対象となった全てのデータ(16個のデータ)を、ロードバッファ4に全て書き込えたと判断した場合には、第2オペランドで指定された0番目のベクトルレジスタ2に対してデータを転送し、全て転送し終わるとベクトルロード命令を完了する。   When the load buffer control unit 5 determines that all the data (16 pieces of data) to be read from the main memory 7 has been written to the load buffer 4, it is designated by the second operand. Data is transferred to the 0th vector register 2, and when all of the data has been transferred, the vector load instruction is completed.

次に、図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 main memory 7. FIG. 3 shows a two-dimensional array used in the present embodiment, in which data on the main memory 7 to be accessed is arranged in the form of a two-dimensional array. FIG. 3 illustrates a two-dimensional array of 16 rows and 17 columns. Here, the data in the same row in the row direction of the two-dimensional array is assumed to have continuous memory addresses on the main memory 7. On the other hand, it is assumed that the memory addresses on the main memory 7 are not continuous in the data in the same column in the column direction. In other words, when accessing the data in the same column, access (stride access) is made to a plurality of array elements arranged at regular intervals (stride).

本実施の形態では、ストライドアクセスのベクトルロード命令を生成するに先立って、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 main memory 7 and the configuration of the two-dimensional array. The compiler adjusts the two-dimensional array in accordance with the determined stride. The compiler places the adjusted two-dimensional array in the main storage units 7-1 to 7-4. Specifically, for example, in the two-dimensional array shown in FIG. 3, the memory read unit is 4, and the number of columns of the two-dimensional array is 17, so the value is larger than 17 and is a multiple of 4 20 Is determined as a stride.

なお、コンパイラは、メモリの読み出し単位と、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 value 16 is a value obtained by multiplying the read unit of the memory by the number of main storage units 7-1 to 7-4.

コンパイラは、このようにして求めたストライドに応じて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 (range 301 indicated by hatching in the figure). By adding such a matrix (padding), all the data in the same row of the two-dimensional array in the row direction can be handled in the readout unit, and all the elements located in the same column in the column direction are It is adjusted to the same position within the reading unit of the memory.

図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 main memory 7 will be described with reference to FIGS. 4 and 1. 4 stores the elements of the first to fourth columns of the two-dimensional array when the two-dimensional array shown in FIG. 3 is padded and mapped to the main storage units 7-1 to 7-4. The addresses of main storage units 7-1 to 7-4 are shown. The storage start memory addresses of the main storage units 7-1 to 7-4 are set to 0. In FIG. 4, only the first to fourth columns are extracted from the two-dimensional array shown in FIG.

図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 memory address 1, the memory address 2, and the memory address 3 of the main storage unit 7-1 in FIG. That is, all the elements in the first row of the four columns in FIG. 4 are stored in the main storage unit 7-1 shown in FIG. 4 are also stored in the main storage units 7-2 to 7-4 shown in FIG. 1, respectively. That is, the data in the same row of the first column to the fourth column of the two-dimensional array after padding is arranged in the main memory 7 of FIG.

また、例えば、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 0th vector register 2 is designated as the second operand, 20 (160 bytes) is designated as the third operand, Assume that address 0 is specified in four operands. Further, the vector length at the time of issuing the vector load instruction is 16, and 16 data are read in the vector load instruction. In other words, 16 elements each having an address interval of 20 are stored in each of the load buffers 4-1 to 4-4 by the vector load instruction.

まず、ベクトル命令を受けたロードバッファ制御部5は、ロードバッファ4を4つ確保する(ロードバッファ4−1〜4−4)。そして、主記憶部7−1〜7−4に対して、主記憶読み出しリクエストをそれぞれ4つずつ送る。ここで、主記憶読み出しリクエストには、主記憶部7−1〜7−4それぞれでの開始アドレスが付加されている。   First, upon receiving a vector instruction, the load buffer control unit 5 secures four load buffers 4 (load buffers 4-1 to 4-4). Then, four main memory read requests are sent to the main memory units 7-1 to 7-4. Here, the start address in each of the main storage units 7-1 to 7-4 is added to the main memory read request.

主記憶部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 main memory crossbar 6. The main memory 7-2 sequentially reads the contents of the memory addresses 20 to 23, the memory addresses 100 to 103, the memory addresses 180 to 183, and the memory addresses 260 to 263, and sends the read data to the main memory crossbar 6. The main memory 7-3 sequentially reads the contents of the memory addresses 40 to 43, the memory addresses 120 to 123, the memory addresses 200 to 203, and the memory addresses 280 to 283, and sends them to the read main memory crossbar 6. The main memory 7-4 sequentially reads the contents of the memory addresses 60 to 63, the memory addresses 140 to 143, the memory addresses 220 to 223, and the memory addresses 300 to 303, and sends the read data to the main memory crossbar 6. The main storage crossbar 6 returns the data sequentially sent from the main storage units 7-1 to 7-4 to the load buffers 4-1 to 4-4.

ロードバッファ制御部5は、データに付加されたリクエストIDと、返却データが何番目に返却されたワードであるかと、に基づいて、ロードバッファテーブル8を引いて、主記憶から返却されたデータをどのロードバッファ4のどこに書き込むかを判断して、ロードバッファ4に書き込む。   The load buffer control unit 5 subtracts the load buffer table 8 based on the request ID added to the data and the number of words in which the return data is returned, and returns the data returned from the main memory. It is determined in which load buffer 4 where to write, and the load buffer 4 is written.

ロードバッファ制御部5は、主記憶7からの読み出し対象となった全てのデータ(64個のデータ)を、ロードバッファ4−1〜4−4に全て書き込えたと判断した場合には、第2オペランドで指定された0番目から3番目のベクトルレジスタ2に対してデータを転送し、全て転送し終わるとベクトルロード命令を完了する。   When the load buffer control unit 5 determines that all the data (64 pieces of data) to be read from the main memory 7 has been written to the load buffers 4-1 to 4-4, Data is transferred to the 0th to 3rd vector registers 2 designated by the two operands, and when the transfer is completed, the vector load instruction is completed.

以上説明したように、本実施の形態によれば、ストライドアクセスを行う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 buffer control unit 5 is based on the request ID added to the return data and the number of the word in which the return data is returned. The example of “determining which load buffer 4 to write to by loading the load buffer table 8” has been shown, but the present invention is not limited to this.

例えば、"まず、ロードバッファ制御部5が、読み出したデータを格納するロードバッファの番号と、そのロードバッファの書き込み位置と、を主記憶読み出しリクエストに対して付加する。主記憶部7−1〜7−4が、リクエストに付加されたこれら2つの情報を読み出したデータに付加して、ロードバッファ制御部5に返却する。さらに、ロードバッファ制御部5が、これら付加された情報に基づいて、ロードバッファ4への書き込みを行う。"という構成を採用することもできる。すなわち、ロードバッファ制御部5は、リクエストの識別情報と、そのリクエストにより主記憶7から読み出されるデータのロードバッファ4での書き込み位置情報と、に基づいて、主記憶7から読み出したデータのロードバッファ4への書き込みを制御する。これにより、ロードバッファ制御部5は、ロードバッファテーブル8を有せずとも、本発明の効果を奏することができる。   For example, “First, the load buffer control unit 5 adds the number of the load buffer for storing the read data and the write position of the load buffer to the main memory read request. 7-4 adds these two pieces of information added to the request to the read data and returns them to the load buffer control unit 5. Furthermore, the load buffer control unit 5 uses the added information, It is also possible to adopt a configuration of “writing to the load buffer 4”. That is, the load buffer control unit 5 loads the data read buffer from the main memory 7 based on the request identification information and the write position information in the load buffer 4 of the data read from the main memory 7 by the request. 4 is controlled. Thus, the load buffer control unit 5 can achieve the effects of the present invention without having the load buffer table 8.

ここで、図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 main memory 7 interleaved so as to be stored in different storage units 7-1 to 7-4 for each memory read unit, and data read from the main memory 7. A load buffer 4 that temporarily stores data, a load buffer control unit 5 that controls issuance of a data read request to the main memory 7, and writing of data read from the main memory 7 to the load buffer 4, and a load buffer And a vector register 2 for storing data transferred from 4.

ここで、主記憶7の2次元配列の要素は、メモリのアドレスが連続して格納されない次元方向の全ての要素がメモリの読み出し単位内での位置が同じになるように予め位置が調整されて主記憶7に格納される。ロードバッファ制御部5は、メモリのアドレスが連続して格納されない次元方向へのアクセスを行うベクトルロード命令を受けた場合に、リクエストの識別情報と、そのリクエストにより主記憶7から読み出されるデータのロードバッファ4での書き込み位置情報と、に基づいて、主記憶7から読み出されたデータのロードバッファ4への書き込みを制御する。   Here, the positions of the elements of the two-dimensional array in the main memory 7 are adjusted in advance so that all the elements in the dimension direction in which the memory addresses are not continuously stored have the same position in the reading unit of the memory. Stored in the main memory 7. When the load buffer control unit 5 receives a vector load instruction for performing access in a dimension direction in which memory addresses are not continuously stored, the load buffer control unit 5 loads request identification information and data read from the main memory 7 by the request. Based on the write position information in the buffer 4, the writing of the data read from the main memory 7 to the load buffer 4 is controlled.

本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。   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 attachment 1.

(付記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 attachment 1 or 2.

(付記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 attachment 1 or 2.

(付記5)
前記主記憶装置がSDRAMを用いて構成される、
付記1ないし4のいずれか1項に記載のベクトル処理装置。
(Appendix 5)
The main storage device is configured using SDRAM.
The vector processing device according to any one of appendices 1 to 4.

(付記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 attachment 6.

(付記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 appendix 6 or 7.

(付記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 appendix 6 or 7.

(付記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 appendices 6 to 9.

1 ベクトル演算器
2 ベクトルレジスタ
3 演算器クロスバ
4 ロードバッファ
4−1〜4−4 ロードバッファ
5 ロードバッファ制御部
6 主記憶クロスバ
7 主記憶
7−1〜7−4 主記憶部
8 ロードバッファテーブル
301 パディングした範囲
1 Vector Operation Unit 2 Vector Register 3 Operation Unit Crossbar 4 Load Buffer 4-1 to 4-4 Load Buffer 5 Load Buffer Control Unit 6 Main Memory Crossbar 7 Main Memory 7-1 to 7-4 Main Storage Unit 8 Load Buffer Table 301 Padding range

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.
前記メモリのアドレスが連続して格納されない次元方向の要素数が、前記メモリの読み出し単位の整数倍となるように要素が予め追加されることで、前記2次元配列の要素の位置が予め調整される、
請求項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.
前記主記憶装置がSDRAMを用いて構成される、
請求項1ないし4のいずれか1項に記載のベクトル処理装置。
The main storage device is configured using SDRAM.
The vector processing apparatus according to claim 1.
主記憶装置上の2次元配列の要素が、メモリのアドレスが連続して格納されない次元方向の全ての要素が前記メモリの読み出し単位内での位置が同じになるように予め位置が調整されて前記主記憶装置に格納されるステップと、
前記メモリのアドレスが連続して格納されない次元方向へのアクセスを行うベクトルロード命令を受けた場合に、前記主記憶装置に対するデータ読み出しリクエストの識別情報と、当該リクエストにより前記主記憶装置から読み出されるデータのロードバッファでの書き込み位置情報と、に基づいて、前記主記憶装置から読み出されたデータの前記ロードバッファへの書き込みを制御するステップと、
を備えるベクトル処理装置のベクトル処理方法。
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:
前記2次元配列の要素の位置が予め調整されるステップでは、前記メモリのアドレスが連続して格納されない次元方向の要素数が、前記メモリの読み出し単位の整数倍となるように要素が予め追加される、
請求項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.
前記主記憶装置がSDRAMを用いて構成される、
請求項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.
JP2012040261A 2012-02-27 2012-02-27 Vector processing apparatus and vector processing method Active JP5527340B2 (en)

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)

* Cited by examiner, † Cited by third party
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

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