JP4347352B2 - Vector data processing device - Google Patents

Vector data processing device Download PDF

Info

Publication number
JP4347352B2
JP4347352B2 JP2007037404A JP2007037404A JP4347352B2 JP 4347352 B2 JP4347352 B2 JP 4347352B2 JP 2007037404 A JP2007037404 A JP 2007037404A JP 2007037404 A JP2007037404 A JP 2007037404A JP 4347352 B2 JP4347352 B2 JP 4347352B2
Authority
JP
Japan
Prior art keywords
register
vector
vector data
registers
data
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
JP2007037404A
Other languages
Japanese (ja)
Other versions
JP2008204028A (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 Computertechno Ltd
Original Assignee
NEC Computertechno Ltd
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 Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2007037404A priority Critical patent/JP4347352B2/en
Publication of JP2008204028A publication Critical patent/JP2008204028A/en
Application granted granted Critical
Publication of JP4347352B2 publication Critical patent/JP4347352B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)
  • Advance Control (AREA)

Description

本発明は、計算機に使用されるベクトルデータ処理装置に関する。   The present invention relates to a vector data processing apparatus used in a computer.

計算機に使用されるベクトルデータ処理装置が知られている。図1は、従来のベクトルデータ処理装置の構成を示している。従来のベクトルデータ処理装置は、クロスバ入力レジスタ101−1、101−2と、クロスバ102と、クロスバ出力レジスタ103−1、103−2と、ライトデータレジスタ104−1、104−2と、ベクトルレジスタ105−1、105−2と、リードデータレジスタ106−1、106−2と、演算入力レジスタ107−1、107−2と、演算器108と、演算出力レジスタ109とを具備している。これらはクロックに応じて動作する。   A vector data processing apparatus used for a computer is known. FIG. 1 shows the configuration of a conventional vector data processing apparatus. The conventional vector data processing apparatus includes crossbar input registers 101-1, 101-2, crossbar 102, crossbar output registers 103-1, 103-2, write data registers 104-1, 104-2, and vector registers. 105-1 and 105-2, read data registers 106-1 and 106-2, arithmetic input registers 107-1 and 107-2, an arithmetic unit 108, and an arithmetic output register 109 are provided. These operate according to the clock.

クロスバ入力レジスタ101−1、101−2は、クロスバ102に接続されている。また、クロスバ入力レジスタ101−2は、他のリソースに接続されている。クロスバ102は、クロスバ出力レジスタ103−1、103−2に接続されている。クロスバ出力レジスタ103−1、103−2は、それぞれ、ライトデータレジスタ104−1、104−2に接続されている。ライトデータレジスタ104−1、104−2は、それぞれ、ベクトルレジスタ105−1、105−2に接続されている。ベクトルレジスタ105−1、105−2は、それぞれ、リードデータレジスタ106−1、106−2に接続されている。リードデータレジスタ106−1、106−2は、それぞれ、演算入力レジスタ107−1、107−2に接続されている。演算入力レジスタ107−1、107−2は、演算器108に接続されている。演算器108は、演算出力レジスタ109に接続されている。演算出力レジスタ109は、クロスバ入力レジスタ101−1に接続されている。   The crossbar input registers 101-1 and 101-2 are connected to the crossbar 102. The crossbar input register 101-2 is connected to other resources. The crossbar 102 is connected to the crossbar output registers 103-1 and 103-2. The crossbar output registers 103-1 and 103-2 are connected to the write data registers 104-1 and 104-2, respectively. The write data registers 104-1 and 104-2 are connected to the vector registers 105-1 and 105-2, respectively. Vector registers 105-1 and 105-2 are connected to read data registers 106-1 and 106-2, respectively. The read data registers 106-1 and 106-2 are connected to the operation input registers 107-1 and 107-2, respectively. The arithmetic input registers 107-1 and 107-2 are connected to the arithmetic unit 108. The computing unit 108 is connected to the computation output register 109. The arithmetic output register 109 is connected to the crossbar input register 101-1.

ベクトルレジスタ105−1は、1番目からn番目(nは3以上の整数)までのn個のベクトルデータA={a1、a2、a3、・・・、an}を格納する。   The vector register 105-1 stores n vector data A = {a1, a2, a3,..., An} from the first to the nth (n is an integer of 3 or more).

このベクトルレジスタ105−1は、例えばRAMにより構成される。ベクトルレジスタ105−1は、n個のベクトルデータA={a1、a2、a3、・・・、an}をライトアドレスWA1に応じて各要素位置に格納し、リードアドレスRA1に応じて、それらをリードデータレジスタ106−1、演算入力レジスタ107−1を介して演算器108に出力する。   The vector register 105-1 is constituted by a RAM, for example. The vector register 105-1 stores n vector data A = {a1, a2, a3,..., An} in each element position according to the write address WA1, and stores them in accordance with the read address RA1. The data is output to the arithmetic unit 108 via the read data register 106-1 and the arithmetic input register 107-1.

ベクトルレジスタ5−2は、1番目からn番目までのn個のベクトルデータB{b1、b2、b3、・・・、bn}を格納する。   The vector register 5-2 stores n vector data B {b1, b2, b3,..., Bn} from the first to the nth.

このベクトルレジスタ105−2は、例えばRAMにより構成される。ベクトルレジスタ105−2は、n個のベクトルデータB={b1、b2、b3、・・・、bn}をライトアドレスWA2に応じて各要素位置に格納し、リードアドレスRA2に応じて、それらをリードデータレジスタ106−2、演算入力レジスタ107−2を介して演算器108に出力する。   The vector register 105-2 is constituted by a RAM, for example. The vector register 105-2 stores n vector data B = {b1, b2, b3,..., Bn} in each element position according to the write address WA2, and stores them in accordance with the read address RA2. The data is output to the arithmetic unit 108 via the read data register 106-2 and the arithmetic input register 107-2.

演算器108は、パイプライン構成を用い、ベクトルデータの入力から出力まで数マシンサイクルを必要とするが、マシンサイクル毎に異なったベクトルデータA={a1、a2、a3、・・・、an}、B={b1、b2、b3、・・・、bn}を入力し数マシンサイクル後にはマシンサイクル毎に演算結果(演算結果のベクトルデータ)C={c1、c2、c3、・・・、cn}を生成して出力するように構成されている。すなわち、異なる演算を並列して実行できるように、複数の演算部を備えている。   The computing unit 108 uses a pipeline configuration and requires several machine cycles from the input to the output of vector data. However, vector data A = {a1, a2, a3,... , B = {b 1, b 2, b 3,..., Bn} and after several machine cycles, the operation result (vector data of the operation result) C = {c 1, c 2, c 3,. cn} is generated and output. That is, a plurality of calculation units are provided so that different calculations can be executed in parallel.

この演算器108は、演算入力レジスタ107−1の出力(n個のベクトルデータ{a1、a2、a3、・・・、an})を第一オペランドとして入力し、演算入力レジスタ107−2の出力(n個のベクトルデータ{b1、b2、b3、・・・、bn})を第二オペランドとして入力する。演算器108は、n個のベクトルデータ{a1、a2、a3、・・・、an}とn個のベクトルデータ{b1、b2、b3、・・・、bn}のそれぞれに対して順次に演算を施して、n個の演算結果{c1、c2、c3、・・・、cn}を生成し、順次に演算出力レジスタ109に出力する。   This computing unit 108 inputs the output of the computation input register 107-1 (n vector data {a1, a2, a3,..., An}) as the first operand, and outputs the computation input register 107-2. (N vector data {b1, b2, b3,..., Bn}) are input as the second operand. The computing unit 108 sequentially calculates each of the n vector data {a1, a2, a3,..., An} and the n vector data {b1, b2, b3,. To generate n operation results {c 1, c 2, c 3,..., Cn}, and sequentially output them to the operation output register 109.

ここで、n個の演算結果{c1、c2、c3、・・・、cn}はベクトルレジスタ105−2に格納するよう命令で指定されているものとする。この場合、演算出力レジスタ109は、n個の演算結果{c1、c2、c3、・・・、cn}を、クロスバ入力レジスタ101−1を介してクロスバ102に出力する。   Here, it is assumed that n operation results {c1, c2, c3,..., Cn} are designated by an instruction to be stored in the vector register 105-2. In this case, the operation output register 109 outputs n operation results {c1, c2, c3,..., Cn} to the crossbar 102 via the crossbar input register 101-1.

クロスバ102は、n個の演算結果{c1、c2、c3、・・・、cn}に対して、ベクトルレジスタ105−1、105−2のうちの、命令で指定されるベクトルレジスタ105−2に格納するためにルーティングを行い、n個の演算結果{c1、c2、c3、・・・、cn}を順次にクロスバ出力レジスタ103−2、ライトデータレジスタ104−2を介してベクトルレジスタ105−2に格納する。   The crossbar 102 applies the n operation results {c1, c2, c3,..., Cn} to the vector register 105-2 designated by the instruction among the vector registers 105-1 and 105-2. Routing is performed for storage, and n operation results {c1, c2, c3,..., Cn} are sequentially transmitted through the crossbar output register 103-2 and the write data register 104-2 to the vector register 105-2. To store.

このように、従来のベクトルデータ処理装置では、一度に多くのベクトルデータを格納(保持)できる複数のベクトルレジスタ105−1、105−2を用意し、また異なる演算を並列して実行できるようにするために演算器108に複数の演算部が演算リソースとして用意されていた。これらの演算器108の出力を命令で指定されたベクトルレジスタ(ベクトルレジスタ105−2)に格納するために、複数のベクトルレジスタ105−1、105−2と複数の演算部とに対応し、それぞれのベクトルデータをルーティングするクロスバ102が必要となっていた。   As described above, the conventional vector data processing apparatus prepares a plurality of vector registers 105-1 and 105-2 that can store (hold) a large amount of vector data at a time, and can execute different operations in parallel. In order to do this, the computing unit 108 is provided with a plurality of computing units as computing resources. In order to store the outputs of these arithmetic units 108 in the vector register (vector register 105-2) designated by the instruction, it corresponds to a plurality of vector registers 105-1 and 105-2 and a plurality of arithmetic units, The crossbar 102 for routing the vector data is required.

しかしながら、従来のベクトルデータ処理装置において、次のような課題がある。   However, the conventional vector data processing apparatus has the following problems.

まず、第1の課題について説明する。一度に処理を行うベクトル要素数(ベクトルデータ数)が多い場合には、クロスバ102でのルーティングにかかる時間は問題となることは少ない。一方、処理を行うベクトル要素数が少ない場合にはこのクロスバ102でのルーティング時間もオーバーヘッドとして性能上問題となる。   First, the first problem will be described. When the number of vector elements (number of vector data) to be processed at a time is large, the time required for routing in the crossbar 102 is not a problem. On the other hand, when the number of vector elements to be processed is small, the routing time in the crossbar 102 also becomes a performance problem as overhead.

次に、第2の課題について説明する。ベクトルレジスタベクトルレジスタ105−1、105−2は多くの要素を格納する。このため、従来型の大容量を維持したRAMのまま、書き込み用のライトポートを増やしたり、読み出し用のリードポートを増やしたりすると、RAM自体の面積が増加する。その影響によりクロスバ102自身もそれに合わせて大きくなり、ルーティング時間が更に増加してしまう。   Next, the second problem will be described. Vector registers The vector registers 105-1 and 105-2 store many elements. For this reason, if the write port for writing is increased or the read port for reading is increased with the conventional RAM maintaining a large capacity, the area of the RAM itself increases. As a result, the crossbar 102 itself becomes larger accordingly, and the routing time further increases.

大量のベクトルデータに関しては現状の処理を行い、少量のベクトルデータに関してはより高速に処理することが望まれる。   It is desired to perform the current processing for a large amount of vector data and to process a small amount of vector data at a higher speed.

ベクトルデータに関する技術について紹介する。   Introduces technologies related to vector data.

特開平9−282308号公報(特許文献1)には“ベクトル命令制御方式”が記載されている。ベクトル命令制御方式は、ベクトル型情報処理装置を構築するLSI(Large Scale Integration)チップに内蔵されるベクトルユニットを駆動し制御する。このベクトル命令制御方式は、ベクトルユニットを内蔵するLSIチップに、短いベクトル長のベクトル命令を実行するベクトルユニットと、スカラ命令を実行するスカラユニットと、前記ベクトルユニット及び前記スカラユニットの両者に含まれて共用される演算ユニットとを備えることを特徴としている。   Japanese Patent Laid-Open No. 9-282308 (Patent Document 1) describes a “vector instruction control method”. The vector instruction control method drives and controls a vector unit built in an LSI (Large Scale Integration) chip that constructs a vector type information processing apparatus. This vector instruction control method is included in an LSI chip incorporating a vector unit, a vector unit that executes a vector instruction with a short vector length, a scalar unit that executes a scalar instruction, and both the vector unit and the scalar unit. And an arithmetic unit shared with each other.

特開平9−198374号公報(特許文献2)には“ベクトル処理装置”が記載されている。ベクトル処理装置は、複数のベクトルレジスタと少なくとも1つのベクトル演算器と少なくとも1つのデータ転送回路とを有するベクトル演算処理ユニットを複数備え、1つのベクトル命令を前記ベクトル演算処理ユニットで分割して処理する。このベクトル処理装置は、複数の異なるベクトル命令列の並列処理が可能か否かを判定する判定手段を備え、前記複数のベクトル演算処理ユニットを複数に分割し、分割された複数のベクトル演算処理ユニットにそれぞれ前記異なるベクトル命令列の1つを割り当てて、複数の異なるベクトル命令列を並列に処理することを特徴としている。   Japanese Patent Laid-Open No. 9-198374 (Patent Document 2) describes a “vector processing device”. The vector processing apparatus includes a plurality of vector arithmetic processing units each including a plurality of vector registers, at least one vector arithmetic unit, and at least one data transfer circuit, and processes one vector instruction divided by the vector arithmetic processing unit. . The vector processing apparatus includes a determination unit that determines whether parallel processing of a plurality of different vector instruction sequences is possible, and divides the plurality of vector arithmetic processing units into a plurality of divided vector arithmetic processing units. Are assigned one of the different vector instruction sequences, and a plurality of different vector instruction sequences are processed in parallel.

特開2001−273277号公報(特許文献3)には“演算処理システム”が記載されている。演算処理システムは、複数のデータ要素をそれぞれに含むデータ・ベクトルを使用する演算を処理する。この演算処理システムは、データ・ベクトルのデータ要素を格納するための複数の格納要素を含むベクトル・データ・ファイルと、バスによって前記ベクトル・データ・ファイルに結合されるポインタ配列であって、複数のエントリを含み、各エントリがベクトル・データ・ファイル内の少なくとも1つの格納要素を識別するようにしたポインタ配列とを含み、前記データ・ベクトルの少なくとも1つのデータ要素を格納するための少なくとも1つの格納要素であって、前記ポインタ配列の少なくとも1つの特定のエントリに対し、その特定のエントリによって識別される少なくとも1つの格納要素が、前記ベクトル・データ・ファイルの任意の開始アドレスを有している。   Japanese Patent Laid-Open No. 2001-273277 (Patent Document 3) describes an “arithmetic processing system”. An arithmetic processing system processes operations that use data vectors that each include a plurality of data elements. The processing system includes a vector data file including a plurality of storage elements for storing data elements of a data vector, and a pointer array coupled to the vector data file by a bus, At least one storage for storing at least one data element of said data vector, including an entry, each entry comprising a pointer array adapted to identify at least one storage element in the vector data file An element, for at least one specific entry of the pointer array, at least one storage element identified by the specific entry has an arbitrary starting address of the vector data file.

特開平5−233279号公報(特許文献4)には“情報処理装置が記載されている。情報処理装置は、複数のレジスタウインドにそれぞれ対応して定められた複数群のスカラレジスタを使用する第1種のプログラムと、複数のベクトルレジスタを使用する第2種のプログラムとを実行する。この情報処理装置は、該複数群のスカラレジスタと、該複数のベクトルレジスタを実現するための所定数のレジスタであって、それぞれ該複数群のスカラレジスタの一つとして使用され、かつ、該複数のベクトルレジスタをそれぞれ構成する複数群の要素レジスタの一つとしてそれぞれ使用される複数のレジスタを含むものと、実行中の第1種のプログラムが指定したレジスタウインド番号を保持する手段と、該保持手段に接続され、該第1種のプログラムの実行時に、その第1種のプログラムが発行した、少なくとも一つのレジスタを使用する命令に応答して、該所定数のレジスタの内、該保持されたレジスタウインド番号のレジスタウインドにおいてその命令で指定されたレジスタ番号のスカラレジスタとして使用すべき一つのレジスタを決定する第1の決定回路と、該第2種のプログラムの実行時に、該第2種のプログラムが発行した、少なくとも一つのレジスタを使用する命令に応答して、該所定数のレジスタの内、その命令で指定されたレジスタ番号を有するベクトルレジスタを構成する一群の要素レジスタとして使用すべき一群のレジスタを決定する第2の決定回路と、該第1、第2の決定回路に接続され、該第1の決定回路により決定された該一つのレジスタと、該第2の決定回路により決定された該一群のレジスタをアクセスするアクセス回路とを有している。   Japanese Patent Application Laid-Open No. 5-233279 (Patent Document 4) describes “Information Processing Device. The information processing device uses a plurality of groups of scalar registers respectively defined corresponding to a plurality of register windows. One type of program and a second type of program using a plurality of vector registers are executed, and the information processing apparatus includes a plurality of groups of scalar registers and a predetermined number of units for realizing the plurality of vector registers. A register including a plurality of registers each used as one of the plurality of groups of scalar registers and used as one of a plurality of groups of element registers constituting each of the plurality of vector registers; Means for holding the register window number designated by the first type program being executed, and connected to the holding means; In response to an instruction using the at least one register issued by the first type program at the time of execution of the program, the instruction is executed in the register window of the stored register window number among the predetermined number of registers. A first determination circuit for determining one register to be used as a scalar register of a specified register number, and at least one register issued by the second type program when executing the second type program; In response to an instruction to be used, a second determination circuit for determining a group of registers to be used as a group of element registers constituting a vector register having a register number designated by the instruction among the predetermined number of registers And the one register connected to the first and second decision circuits and decided by the first decision circuit, and the second decision circuit And a access circuit for accessing the set of registers which are determined by the circuit.

特開平1−191265号公報(特許文献5)には“ベクトル演算命令起動方式”が記載されている。ベクトル演算命令起動方式は、スカラユニットからの起動情報に基づいて、ベクトルユニットが動作を開始する。このベクトル演算命令起動方式は、該スカラユニットからのベクトルユニットへの上記起動時間をパイプラインで、ベクトル演算命令の実行ステージ以前に送出し、ベクトルユニットにおいては、該起動時間に基づいて、上記ベクトル演算命令の実行ステージ以前に、操作コードのデコード、及びベクトルレジスタからの最初の一要素のリードを完了させ、上記スカラユニットからのベクトル命令の実行ステージにおいて送出されるスタートコマンドを受信した時点で、該ベクトル演算を開始することを特徴としている。   Japanese Patent Laid-Open No. 1-191265 (Patent Document 5) describes a “vector operation instruction starting method”. In the vector operation instruction activation method, the vector unit starts its operation based on the activation information from the scalar unit. In this vector operation instruction activation method, the activation time from the scalar unit to the vector unit is sent in a pipeline before the execution stage of the vector operation instruction. In the vector unit, the vector operation instruction is sent based on the activation time. Before the execution stage of the arithmetic instruction, the decoding of the operation code and the reading of the first element from the vector register are completed, and when the start command sent in the execution stage of the vector instruction from the scalar unit is received, The vector operation is started.

特開平9−282308号公報JP-A-9-282308 特開平9−198374号公報Japanese Patent Laid-Open No. 9-198374 特開2001−273277号公報JP 2001-273277 A 特開平5−233279号公報JP-A-5-233279 特開平1−191265号公報JP-A-1-191265

本発明の課題は、大量のベクトルデータに関しては現状の処理を行い、少量のベクトルデータに関してはより高速に処理することができるベクトルデータ処理装置を提供することにある。   An object of the present invention is to provide a vector data processing apparatus that can perform the current processing for a large amount of vector data and can process a small amount of vector data at a higher speed.

以下に、発明を実施するための最良の形態・実施例で使用される符号を括弧付きで用いて、課題を解決するための手段を記載する。この符号は、特許請求の範囲の記載と発明を実施するための最良の形態・実施例の記載との対応を明らかにするために付加されたものであり、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。   In the following, means for solving the problems will be described using the reference numerals used in the best modes and embodiments for carrying out the invention in parentheses. This reference numeral is added to clarify the correspondence between the description of the claims and the description of the best mode for carrying out the invention / example, and is described in the claims. It should not be used to interpret the technical scope of the invention.

本発明のベクトルデータ処理装置は、
1番目からn番目(nは3以上の整数)までのn個の第1ベクトルデータ({a1、a2、a3、・・・、an})のうちの、1番目からj番目(jは、j<(n−j)を満たす整数)までのj個の第1ベクトルデータ({a1、a2})が格納された第1若番用格納部(アドレス“0”、“1”)と、1番目からn番目までのn個の第2ベクトルデータ({b1、b2、b3、・・・、bn})のうちの、1番目からj番目までのj個の第2ベクトルデータ({b1、b2})が格納された第2若番用格納部(アドレス“2”、“3”)とを有するレジスタファイル(11)と、
前記j個の第1ベクトルデータ({a1、a2})以外の(n−j)個の第1ベクトルデータ({a3、・・・、an})が格納された第1ベクトルレジスタ(5−1)と、
前記j個の第2ベクトルデータ({b1、b2})以外の(n−j)個の第2ベクトルデータ({b3、・・・、bn})が格納された第2ベクトルレジスタ(5−2)と、
前記n個の第1ベクトルデータ({a1、a2、a3、・・・、an})と前記n個の第2ベクトルデータ({b1、b2、b3、・・・、bn})のそれぞれに対して順次に演算を施して、n個の演算結果({c1、c2、c3、・・・、cn})を生成する演算器(8)と、
前記n個の演算結果({c1、c2、c3、・・・、cn})のうちの、1番目からj番目までのj個の演算結果({c1、c2})を順次に前記レジスタファイル(11)に格納する若番用ライトデータレジスタ(10−2)と、
前記j個の演算結果({c1、c2})以外の(n−j)個の演算結果({c3、・・・、cn})を順次に前記第1及び第2ベクトルレジスタ(5−1、5−2)のうちの指定されたベクトルレジスタ(5−2)に格納するクロスバ(2)と
を具備している。
The vector data processing apparatus of the present invention
Of the first vector data ({a1, a2, a3,..., An}) from the first to the nth (n is an integer of 3 or more), the first to jth (j is a first young number storage unit (address “0”, “1”) in which j first vector data ({a1, a2}) up to j <(n−j) satisfying an integer) are stored; Of the n second vector data ({b1, b2, b3,..., Bn}) from the first to the nth, j second vector data ({b1) from the first to the jth , B2}) is stored in a register file (11) having a second number storage section (addresses “2”, “3”);
A first vector register (5-) that stores (n−j) first vector data ({a3,..., An}) other than the j first vector data ({a1, a2}). 1) and
A second vector register (5-) that stores (n−j) second vector data ({b3,..., Bn}) other than the j second vector data ({b1, b2}). 2) and
Each of the n first vector data ({a1, a2, a3,..., An}) and the n second vector data ({b1, b2, b3,..., Bn}) An arithmetic unit (8) that sequentially performs operations on the result to generate n operation results ({c1, c2, c3,..., Cn});
Among the n operation results ({c1, c2, c3,..., Cn}), j operation results ({c1, c2}) from the first to the jth are sequentially stored in the register file. The young write data register (10-2) stored in (11),
The (n−j) operation results ({c3,..., Cn}) other than the j operation results ({c1, c2}) are sequentially added to the first and second vector registers (5-1). 5-2) and a crossbar (2) stored in the designated vector register (5-2).

本発明のベクトルデータ処理装置は、
前記レジスタファイル(11)の前記第1若番用格納部(アドレス“0”、“1”)に格納された前記j個の第1ベクトルデータ({a1、a2})を順次に前記演算器(8)に出力し、その後に、前記第1ベクトルレジスタ(5−1)に格納された前記(n−j)個の第1ベクトルデータ({a3、・・・、an})を順次に前記演算器(8)に出力する第1選択回路(12−1)と、
前記レジスタファイル(11)の前記第2若番用格納部(アドレス“2”、“3”)に格納された前記j個の第2ベクトルデータ({b1、b2})を順次に前記演算器(8)に出力し、その後に、前記第2ベクトルレジスタ(5−2)に格納された前記(n−j)個の第2ベクトルデータ({b3、・・・、bn})を順次に前記演算器(8)に出力する第2選択回路(12−2)と
を更に具備している。
The vector data processing apparatus of the present invention
The j pieces of first vector data ({a1, a2}) stored in the first young number storage section (addresses “0”, “1”) of the register file (11) are sequentially added to the computing unit. (8) and then sequentially output the (n−j) pieces of first vector data ({a3,..., An}) stored in the first vector register (5-1). A first selection circuit (12-1) for outputting to the computing unit (8);
The j pieces of second vector data ({b1, b2}) stored in the second young number storage unit (addresses “2”, “3”) of the register file (11) are sequentially added to the computing unit. (8), and then sequentially output the (n−j) second vector data ({b3,..., Bn}) stored in the second vector register (5-2). And a second selection circuit (12-2) for outputting to the computing unit (8).

本発明のベクトルデータ処理装置は、
前記第1選択回路(12−1)と前記演算器(8)との間に接続された第1演算入力レジスタ(7−1)と、
前記第2選択回路(12−2)と前記演算器(8)との間に接続された第2演算入力レジスタ(7−2)と、
前記演算器(8)と前記クロスバ(2)との間に接続された演算出力レジスタ(9)と
を更に具備している。
The vector data processing apparatus of the present invention
A first calculation input register (7-1) connected between the first selection circuit (12-1) and the calculator (8);
A second calculation input register (7-2) connected between the second selection circuit (12-2) and the calculator (8);
An arithmetic output register (9) connected between the arithmetic unit (8) and the crossbar (2) is further provided.

本発明のベクトルデータ処理装置は、
前記演算出力レジスタ(9)と前記クロスバ(2)との間に前記第1、第2ベクトルレジスタ(5−1、5−2)に対応して接続された第1、第2クロスバ入力レジスタ(1−1、1−2)と、
前記クロスバ(2)と前記第1、第2ベクトルレジスタ(5−1、5−2)との間に接続された第1、第2クロスバ出力レジスタ(3−1、3−2)と、
前記第1、第2クロスバ出力レジスタ(3−1、3−2)と前記第1、第2ベクトルレジスタ(5−1、5−2)との間に接続された第1、第2ライトデータレジスタ(4−1、4−2)と
を更に具備している。
The vector data processing apparatus of the present invention
First and second crossbar input registers (5) connected in correspondence with the first and second vector registers (5-1, 5-2) between the arithmetic output register (9) and the crossbar (2). 1-1, 1-2),
First and second crossbar output registers (3-1, 3-2) connected between the crossbar (2) and the first and second vector registers (5-1, 5-2);
First and second write data connected between the first and second crossbar output registers (3-1 and 3-2) and the first and second vector registers (5-1 and 5-2). And registers (4-1, 4-2).

本発明のベクトルデータ処理装置では、演算結果の若番要素(演算結果{c1、c2})を、ルーティングのためのクロスバ(2)に通過させない構成にすることにより、短い時間で結果格納レジスタ(レジスタファイル(11)、ベクトルレジスタ(5−2))に確定させることができる。   In the vector data processing device of the present invention, the result storage register (calculation result {c1, c2}) is not passed through the crossbar (2) for routing in a short time by making the configuration so that the young elements (calculation results {c1, c2}) are not passed. The register file (11) and the vector register (5-2)) can be confirmed.

また、本発明では、若番要素(ベクトルデータ{a1、a2}、{b1、b2})用に少量のマルチポート構成レジスタファイル(11)を用意し、また大容量(ベクトルデータ{a3〜an}、{b3〜bn})用にはポート数の少ないRAMを用いて組み合わせてベクトルレジスタ(5−1、5−2)を構成することにより、少ないハードウェア量の増加でベクトルデータ処理装置を構成できる。   In the present invention, a small amount of multi-port configuration register file (11) is prepared for young elements (vector data {a1, a2}, {b1, b2}), and a large capacity (vector data {a3-an }, {B3 to bn}), the vector register (5-1, 5-2) is configured using a RAM with a small number of ports, thereby reducing the amount of hardware and increasing the vector data processing device. Can be configured.

このように、本発明のベクトルデータ処理装置は、大量のベクトルデータに関しては現状の処理を行い、少量のベクトルデータに関してはより高速に処理することができる。   As described above, the vector data processing apparatus of the present invention can perform the current processing for a large amount of vector data and can process a small amount of vector data at a higher speed.

以下に添付図面を参照して、本発明のベクトルデータ処理装置について詳細に説明する。   The vector data processing apparatus of the present invention will be described below in detail with reference to the accompanying drawings.

図2は、本発明のベクトルデータ処理装置の構成を示している。本発明のベクトルデータ処理装置は、クロスバ入力レジスタ1−1、1−2と、クロスバ2と、クロスバ出力レジスタ3−1、3−2と、ライトデータレジスタ4−1、4−2と、ベクトルレジスタ5−1、5−2と、リードデータレジスタ6−1、6−2と、演算入力レジスタ7−1、7−2と、演算器8と、演算出力レジスタ9と、若番用ライトデータレジスタ10−1、10−2(以下、ライトデータレジスタ10−1、10−2)と、レジスタファイル11と、選択回路12−1、12−2とを具備している。これらはクロックに応じて動作する。   FIG. 2 shows the configuration of the vector data processing apparatus of the present invention. The vector data processing apparatus of the present invention includes crossbar input registers 1-1 and 1-2, a crossbar 2, crossbar output registers 3-1 and 3-2, write data registers 4-1 and 4-2, and a vector. Registers 5-1, 5-2, read data registers 6-1, 6-2, operation input registers 7-1, 7-2, operation unit 8, operation output register 9, and young write data Registers 10-1 and 10-2 (hereinafter, write data registers 10-1 and 10-2), a register file 11, and selection circuits 12-1 and 12-2 are provided. These operate according to the clock.

クロスバ入力レジスタ1−1、1−2は、クロスバ2に接続されている。また、クロスバ入力レジスタ1−2は、他のリソース(例えば主記憶装置など)に接続されている。クロスバ2は、クロスバ出力レジスタ3−1、3−2に接続されている。クロスバ出力レジスタ3−1、3−2は、それぞれ、ライトデータレジスタ4−1、4−2に接続されている。ライトデータレジスタ4−1、4−2は、それぞれ、ベクトルレジスタ5−1、5−2に接続されている。ベクトルレジスタ5−1、5−2は、それぞれ、リードデータレジスタ6−1、6−2に接続されている。リードデータレジスタ6−1、6−2は、それぞれ、選択回路12−1、12−2に接続されている。
ライトデータレジスタ10−1、10−2は、レジスタファイル11に接続されている。また、ライトデータレジスタ10−1は、他のリソースに接続されている。レジスタファイル11は、選択回路12−1、12−2に接続されている。
選択回路12−1、12−2は、それぞれ、演算入力レジスタ7−1、7−2に接続されている。演算入力レジスタ7−1、7−2は、演算器8に接続されている。演算器8は、演算出力レジスタ9に接続されている。演算出力レジスタ9は、クロスバ入力レジスタ1−1とライトデータレジスタ10−2に接続されている。
The crossbar input registers 1-1 and 1-2 are connected to the crossbar 2. The crossbar input register 1-2 is connected to other resources (for example, a main storage device). The crossbar 2 is connected to the crossbar output registers 3-1, 3-2. The crossbar output registers 3-1 and 3-2 are connected to the write data registers 4-1 and 4-2, respectively. The write data registers 4-1 and 4-2 are connected to the vector registers 5-1 and 5-2, respectively. The vector registers 5-1 and 5-2 are connected to the read data registers 6-1 and 6-2, respectively. The read data registers 6-1 and 6-2 are connected to the selection circuits 12-1 and 12-2, respectively.
The write data registers 10-1 and 10-2 are connected to the register file 11. The write data register 10-1 is connected to other resources. The register file 11 is connected to the selection circuits 12-1 and 12-2.
The selection circuits 12-1 and 12-2 are connected to the operation input registers 7-1 and 7-2, respectively. The arithmetic input registers 7-1 and 7-2 are connected to the arithmetic unit 8. The computing unit 8 is connected to the computation output register 9. The arithmetic output register 9 is connected to the crossbar input register 1-1 and the write data register 10-2.

レジスタファイル11は、第1若番用格納部と、第2若番用格納部とを有している。
第1若番用格納部は、1番目からn番目(nは3以上の整数)までのn個の第1ベクトルデータA={a1、a2、a3、・・・、an}のうちの、1番目からj番目(jは、j<(n−j)を満たす整数)までのj個の第1ベクトルデータを格納する。
第2若番用格納部は、1番目からn番目までのn個の第2ベクトルデータB{b1、b2、b3、・・・、bn}のうちの、1番目からj番目までのj個の第2ベクトルデータを格納する。
ここで、jを2とし、j個の第1ベクトルデータをベクトルデータ{a1、a2}とし、j個の第2ベクトルデータをベクトルデータ{b1、b2}とする。この場合、第1若番用格納部をレジスタファイル11のアドレス“0”、“1”とし、第2若番用格納部をレジスタファイル11のアドレス“2”、“3”とする。
The register file 11 has a first young number storage unit and a second young number storage unit.
The first young number storage unit includes n first vector data A = {a1, a2, a3,..., An} from the first to the nth (n is an integer of 3 or more). The j first vector data from the first to the jth (j is an integer satisfying j <(n−j)) are stored.
The second young number storage unit includes j pieces from the first to the j-th of n pieces of second vector data B {b1, b2, b3,..., Bn} from the first to the n-th. The second vector data is stored.
Here, j is set to 2, j pieces of first vector data are set as vector data {a1, a2}, and j pieces of second vector data are set as vector data {b1, b2}. In this case, the first young number storage unit is set to the addresses “0” and “1” of the register file 11, and the second young number storage unit is set to the addresses “2” and “3” of the register file 11.

このレジスタファイル11は、2リード・2ライト構成である。
書き込みに関しては、レジスタファイル11は、少量のベクトルデータ{a1、a2}についてはライトアドレスW1またはライトアドレスW2に応じてライトデータレジスタ10−1またはライトデータレジスタ10−2のレジスタデータを、レジスタファイル11のアドレス“0”と“1”に格納し、少量のベクトルデータ{b1、b2}についてはライトアドレスW1またはライトアドレスW2に応じてライトデータレジスタ10−1またはライトデータレジスタ10−2のレジスタデータを、レジスタファイル11のアドレス“2”と“3”に格納する。ここで、ライトデータレジスタ10−1のベクトルデータはライトアドレスW1により制御され、ライトデータレジスタ10−2のベクトルデータはライトアドレスW2により制御されるものとする。
読み出しに関しては、レジスタファイル11は、リードアドレスR1に応じて、アドレス“0”と“1”に格納されているベクトルデータを順次読み出して選択回路12−1へ供給し、リードアドレスR2に応じて、アドレス“2”と“3”に格納されているベクトルデータを順次読み出して選択回路12−2へ供給する。
The register file 11 has a 2-read / 2-write configuration.
Regarding writing, the register file 11 stores the register data of the write data register 10-1 or the write data register 10-2 according to the write address W1 or the write address W2 for a small amount of vector data {a1, a2}. 11 is stored in addresses “0” and “1”, and a small amount of vector data {b1, b2} is stored in the write data register 10-1 or the write data register 10-2 according to the write address W1 or the write address W2. Data is stored at addresses “2” and “3” of the register file 11. Here, the vector data in the write data register 10-1 is controlled by the write address W1, and the vector data in the write data register 10-2 is controlled by the write address W2.
Regarding the reading, the register file 11 sequentially reads the vector data stored in the addresses “0” and “1” according to the read address R1 and supplies the vector data to the selection circuit 12-1, and according to the read address R2. The vector data stored in the addresses “2” and “3” are sequentially read and supplied to the selection circuit 12-2.

ベクトルレジスタ5−1は、2個のベクトルデータ{a1、a2}以外の(n−2)個のベクトルデータ{a3、・・・、an}を格納する。   The vector register 5-1 stores (n-2) vector data {a3,..., An} other than the two vector data {a1, a2}.

このベクトルレジスタ5−1は、1リード・1ライト構成のRAMによって構成されている。
書き込みに関しては、ベクトルレジスタ5−1は、(n−2)個のベクトルデータ{a3、a4、・・・、an}をライトアドレスWA1に応じて、ライトデータレジスタ4−1のベクトルデータをアドレス“0”〜“n−2”に順次格納する。
読み出しに関しては、ベクトルレジスタ5−1は、リードアドレスRA1に応じて、そのアドレス“0”〜“n−2”に格納された大量のベクトルデータ{a3、a4、・・・、an}を読み出してリードデータレジスタ6−1へ供給する。
The vector register 5-1 is composed of a 1-read / 1-write RAM.
For writing, the vector register 5-1 addresses (n-2) pieces of vector data {a3, a4,..., An} according to the write address WA1, and addresses the vector data in the write data register 4-1. Store sequentially in “0” to “n−2”.
For reading, the vector register 5-1 reads a large amount of vector data {a3, a4,..., An} stored in the addresses “0” to “n-2” according to the read address RA1. To the read data register 6-1.

ベクトルレジスタ5−2は、2個のベクトルデータ{b1、b2}以外の(n−2)個のベクトルデータ{b3、・・・、bn}を格納する。   The vector register 5-2 stores (n−2) vector data {b3,..., Bn} other than the two vector data {b1, b2}.

このベクトルレジスタ5−2は、1リード・1ライト構成のRAMによって構成されている。
書き込みに関しては、ベクトルレジスタ5−2は、(n−2)個のベクトルデータ{b3、b4、・・・、bn}をライトアドレスWA2に応じて、ライトデータレジスタ4−2のベクトルデータをアドレス“0”〜“n−2”に順次格納する。
読み出しに関しては、ベクトルレジスタ5−2は、リードアドレスRA2に応じて、そのアドレス“0”〜“n−2”に格納された大量のベクトルデータ{b3、b4、・・・、bn}を読み出してリードデータレジスタ6−2へ供給する。
The vector register 5-2 is composed of a 1-read / 1-write RAM.
For writing, the vector register 5-2 addresses (n-2) vector data {b3, b4,..., Bn} according to the write address WA2, and addresses the vector data in the write data register 4-2. Store sequentially in “0” to “n−2”.
For reading, the vector register 5-2 reads a large amount of vector data {b3, b4,..., Bn} stored in the addresses “0” to “n-2” according to the read address RA2. To the read data register 6-2.

選択回路12−1は、レジスタファイル11の第1若番用格納部(アドレス“0”、“1”)の出力とリードデータレジスタ6−1の出力のうちの、レジスタファイル11の出力を優先的に選択する。即ち、選択回路12−1は、レジスタファイル11の第1若番用格納部(アドレス“0”、“1”)に格納された2個のベクトルデータ{a1、a2}を順次に演算入力レジスタ7−1を介して演算器8に出力し、その後に、リードデータレジスタ6−1に格納された(n−2)個のベクトルデータ{a3、・・・、an}を順次に演算入力レジスタ7−1を介して演算器8に出力する。   The selection circuit 12-1 gives priority to the output of the register file 11 out of the output of the first storage unit (address “0”, “1”) of the register file 11 and the output of the read data register 6-1. To choose. That is, the selection circuit 12-1 sequentially calculates the two vector data {a1, a2} stored in the first young number storage unit (addresses “0”, “1”) of the register file 11 to the operation input register. 7-1 to the computing unit 8 and then the (n-2) vector data {a3,..., An} stored in the read data register 6-1 are sequentially inputted to the arithmetic input register. The result is output to the computing unit 8 via 7-1.

選択回路12−2は、レジスタファイル11の第2若番用格納部(アドレス“2”、“3”)の出力とリードデータレジスタ6−2の出力のうちの、レジスタファイル11の出力を優先的に選択する。即ち、選択回路12−2は、レジスタファイル11の第2若番用格納部(アドレス“2”、“3”)に格納された2個のベクトルデータ{b1、b2}を順次に演算入力レジスタ7−2を介して演算器8に出力し、その後に、リードデータレジスタ6−2に格納された(n−2)個のベクトルデータ{b3、・・・、bn}を順次に演算器8に出力する。   The selection circuit 12-2 prioritizes the output of the register file 11 out of the output of the second young number storage unit (address "2", "3") of the register file 11 and the output of the read data register 6-2. To choose. That is, the selection circuit 12-2 sequentially calculates the two vector data {b1, b2} stored in the second young number storage unit (addresses “2”, “3”) of the register file 11 in the operation input register. 7-2 is output to the arithmetic unit 8 and then (n-2) vector data {b3,..., Bn} stored in the read data register 6-2 are sequentially applied to the arithmetic unit 8. Output to.

演算器8は、本実施例の場合、パイプライン構成を用い、ベクトルデータの入力から出力まで3マシンサイクルを必要とするが、マシンサイクル毎に異なったベクトルデータA={a1、a2、a3、・・・、an}、B={b1、b2、b3、・・・、bn}を入力し3マシンサイクル後にはマシンサイクル毎に演算結果(演算結果のベクトルデータ)C={c1、c2、c3、・・・、cn}を生成して出力するように構成されている。すなわち、異なる演算を並列して実行できるように、複数の演算部を備えている。   In this embodiment, the computing unit 8 uses a pipeline configuration and requires three machine cycles from the input to the output of vector data. However, vector data A = {a1, a2, a3, .., An}, B = {b1, b2, b3,..., Bn}, and after 3 machine cycles, the computation results (vector data of computation results) C = {c1, c2, c3,..., cn} are generated and output. That is, a plurality of calculation units are provided so that different calculations can be executed in parallel.

この演算器8は、演算入力レジスタ7−1の出力(n個のベクトルデータ{a1、a2、a3、・・・、an})を第一オペランドとして入力し、演算入力レジスタ7−2の出力(n個のベクトルデータ{b1、b2、b3、・・・、bn})を第二オペランドとして入力する。演算器8は、n個のベクトルデータ{a1、a2、a3、・・・、an}とn個のベクトルデータ{b1、b2、b3、・・・、bn}のそれぞれに対して順次に演算を施して、n個の演算結果{c1、c2、c3、・・・、cn}を生成し、順次に演算出力レジスタ9に出力する。   The calculator 8 inputs the output of the calculation input register 7-1 (n vector data {a1, a2, a3,..., An}) as the first operand, and outputs the calculation input register 7-2. (N vector data {b1, b2, b3,..., Bn}) are input as the second operand. The arithmetic unit 8 sequentially calculates n vector data {a1, a2, a3,..., An} and n vector data {b1, b2, b3,. To generate n calculation results {c 1, c 2, c 3,..., Cn} and sequentially output them to the operation output register 9.

ここで、n個の演算結果{c1、c2、c3、・・・、cn}のうちの、1番目から2番目までの2個の演算結果{c1、c2}はレジスタファイル11に格納するよう命令で指定され、2個の演算結果{c1、c2}以外の(n−2)個の演算結果{c3、・・・、cn}はベクトルレジスタ5−2に格納するよう命令で指定されているものとする。この場合、演算出力レジスタ9は、2個の演算結果{c1、c2}を、ライトデータレジスタ10−2を介してレジスタファイル11に格納し、(n−2)個の演算結果{c3、・・・、cn}を、クロスバ入力レジスタ1−1を介してクロスバ2に出力する。   Here, of the n calculation results {c1, c2, c3,..., Cn}, the two calculation results {c1, c2} from the first to the second are stored in the register file 11. (N-2) operation results {c3,..., Cn} other than the two operation results {c1, c2} are specified by the instruction to be stored in the vector register 5-2. It shall be. In this case, the operation output register 9 stores the two operation results {c1, c2} in the register file 11 via the write data register 10-2, and (n-2) operation results {c3,. .., Cn} are output to the crossbar 2 via the crossbar input register 1-1.

クロスバ2は、(n−2)個の演算結果{c3、・・・、cn}に対して、ベクトルレジスタ5−1、5−2のうちの、命令で指定されるベクトルレジスタ5−2に格納するためにルーティングを行い、(n−2)個の演算結果{c3、・・・、cn}を順次にクロスバ出力レジスタ3−2、ライトデータレジスタ4−2を介してベクトルレジスタ5−2に格納する。   For the (n−2) operation results {c3,..., Cn}, the crossbar 2 applies to the vector register 5-2 specified by the instruction in the vector registers 5-1 and 5-2. Routing is performed for storage, and (n−2) operation results {c3,..., Cn} are sequentially transferred to the vector register 5-2 via the crossbar output register 3-2 and the write data register 4-2. To store.

本発明のベクトルデータ処理装置では、演算結果の若番要素(演算結果{c1、c2})を、ルーティングのためのクロスバ2に通過させない構成にすることにより、短い時間で結果格納レジスタ(レジスタファイル11、ベクトルレジスタ5−2)に確定させることができる。
また、本発明では、若番要素(ベクトルデータ{a1、a2}、{b1、b2})用に少量のマルチポート構成レジスタファイル11を用意し、また大容量(ベクトルデータ{a3〜an}、{b3〜bn})用にはポート数の少ないRAMを用いて組み合わせてベクトルレジスタ5−1、5−2を構成することにより、少ないハードウェア量の増加でベクトルデータ処理装置を構成できる。
以下、これについて詳細に説明する。
In the vector data processing apparatus of the present invention, the result storage register (register file) can be obtained in a short time by adopting a configuration in which the young element of the operation result (operation result {c1, c2}) is not passed through the crossbar 2 for routing. 11 and the vector register 5-2).
In the present invention, a small amount of multiport configuration register file 11 is prepared for the young elements (vector data {a1, a2}, {b1, b2}), and a large capacity (vector data {a3 to an}, For {b3 to bn}), a vector data processor can be configured with a small increase in hardware by configuring the vector registers 5-1 and 5-2 using a RAM with a small number of ports.
This will be described in detail below.

図3は、本発明のベクトルデータ処理装置の動作を示すタイミングチャートである。   FIG. 3 is a timing chart showing the operation of the vector data processing apparatus of the present invention.

本実施例において、それぞれ9個のベクトルデータA={a1、a2、a3、・・・、a9}とB={b1、b2、b3、・・・、b9}に演算を行い、9個の演算結果C={c1、c2、c3、・・・、c9}を算出する場合について説明する。演算に先立ち、各ベクトルデータは、ベクトルデータAについては、ベクトルデータa1、a2がそれぞれレジスタファイル11のアドレス“0”、“1”に格納され、ベクトルデータa3〜a9である7個のベクトルデータがそれぞれベクトルレジスタ5−1のアドレス“0”〜“6”に格納され、また、ベクトルデータBについては、ベクトルデータb1、b2がそれぞれレジスタファイル11のアドレス“2”、“3”に格納され、ベクトルデータb3〜b9である7個のベクトルデータがベクトルレジスタ5−2のアドレス“0”〜“6”に格納されているものとする。また、演算結果c1、c2はレジスタファイル11に格納するよう命令で指定され、演算結果c3〜c9はベクトルレジスタ5−2に格納するよう命令で指定されているものとする。   In this embodiment, 9 vector data A = {a1, a2, a3,..., A9} and B = {b1, b2, b3,. A case where the calculation result C = {c1, c2, c3,..., C9} is calculated will be described. Prior to the calculation, for each vector data, for vector data A, vector data a1 and a2 are stored at addresses “0” and “1” of register file 11, respectively, and seven vector data which are vector data a3 to a9. Are stored at addresses “0” to “6” of the vector register 5-1, respectively, and for the vector data B, vector data b1 and b2 are stored at addresses “2” and “3” of the register file 11, respectively. It is assumed that seven vector data as vector data b3 to b9 are stored at addresses “0” to “6” of the vector register 5-2. In addition, it is assumed that the operation results c1 and c2 are specified by an instruction to be stored in the register file 11, and the operation results c3 to c9 are specified by an instruction to be stored in the vector register 5-2.

(クロックサイクル“1”において)
まず、レジスタファイル11は、その第一リードポートに対応したアドレスレジスタR1にアドレス“0”をセットし、その第二リードポートに対応したアドレスレジスタR2にアドレス“2”をセットする。レジスタファイル11は、それぞれ、リードアドレスR1、R2に応じて、自身のアドレス“0”、“2”に格納されているベクトルデータa1、b1を同時に読み出し、選択回路12−1、12−2に出力する。
選択回路12−1、12−2は、それぞれ、レジスタファイル11の第一、第二リードポート(ベクトルデータa1、b1)を選択し、次のクロックサイクルであるクロックサイクル“2”で、ベクトルデータa1、b1を演算入力レジスタ7−1、7−2に格納する。
(In clock cycle “1”)
First, the register file 11 sets the address “0” in the address register R1 corresponding to the first read port, and sets the address “2” in the address register R2 corresponding to the second read port. The register file 11 simultaneously reads the vector data a1 and b1 stored in its own addresses “0” and “2” according to the read addresses R1 and R2, respectively, and sends them to the selection circuits 12-1 and 12-2. Output.
The selection circuits 12-1 and 12-2 select the first and second read ports (vector data a1 and b1) of the register file 11, respectively, and the vector data in the clock cycle “2” that is the next clock cycle. a1 and b1 are stored in the arithmetic input registers 7-1 and 7-2.

(クロックサイクル“2”において)
演算器8は、この時刻に値が確定している演算入力レジスタ7−1の出力(すなわちベクトルデータa1)を第一オペランドとして入力し、演算入力レジスタ7−2の出力(すなわちベクトルデータb1)を第二オペランドとして入力して演算を開始する。上述のように、本実施例での演算器8は、演算処理を3つのステージに分割して処理するパイプライン構成を取っており、演算結果が演算出力レジスタ9に確定するまで3クロックサイクル必要としている。そのため、演算器8は、それぞれ演算入力レジスタ7−1、7−2に格納されているベクトルデータa1、b1に対して演算を施し、その演算結果c1を、3クロックサイクル後のクロックサイクル“5”で演算出力レジスタ9に格納する。
レジスタファイル11は、その第一リードポートに対応したアドレスレジスタR1にアドレス“1”をセットし、その第二リードポートに対応したアドレスレジスタR2にアドレス“3”をセットする。レジスタファイル11は、それぞれ、リードアドレスR1、R2に応じて、自身のアドレス“1”、“3”に格納されているベクトルデータa2、b2を同時に読み出し、選択回路12−1、12−2に出力する。
選択回路12−1、12−2は、それぞれ、レジスタファイル11の第一、第二リードポート(ベクトルデータa2、b2)を選択し、次のクロックサイクルであるクロックサイクル“3”で、ベクトルデータa2、b2を演算入力レジスタ7−1、7−2に格納する。
更に、ベクトルレジスタ5−1は、そのリードを制御するアドレスレジスタRA1にアドレス“0”をセットし、ベクトルレジスタ5−2は、そのリードを制御するアドレスレジスタRA2にアドレス“0”をセットする。ベクトルレジスタ5−1、5−2は、それぞれ、リードアドレスRA1、RA2に応じて、自身のアドレス“0”に格納されているベクトルデータa3、b3を読み出し、次のクロックサイクルであるクロックサイクル“3”で、それぞれリードデータレジスタ6−1、6−2に出力する。
(In clock cycle “2”)
The arithmetic unit 8 inputs the output (that is, vector data a1) of the arithmetic input register 7-1 whose value is fixed at this time as a first operand, and outputs the output (that is, vector data b1) of the arithmetic input register 7-2. Is input as the second operand to start the operation. As described above, the arithmetic unit 8 in this embodiment has a pipeline configuration in which the arithmetic processing is divided into three stages, and three clock cycles are required until the arithmetic result is determined in the arithmetic output register 9. It is said. Therefore, the arithmetic unit 8 performs an operation on the vector data a1 and b1 stored in the operation input registers 7-1 and 7-2, respectively, and outputs the operation result c1 to a clock cycle “5 after three clock cycles. "Is stored in the operation output register 9.
The register file 11 sets the address “1” in the address register R1 corresponding to the first read port, and sets the address “3” in the address register R2 corresponding to the second read port. The register file 11 simultaneously reads the vector data a2 and b2 stored in its own addresses “1” and “3” according to the read addresses R1 and R2, respectively, and sends them to the selection circuits 12-1 and 12-2. Output.
The selection circuits 12-1 and 12-2 select the first and second read ports (vector data a2 and b2) of the register file 11, respectively, and the vector data in the clock cycle “3” that is the next clock cycle. a2 and b2 are stored in the arithmetic input registers 7-1 and 7-2.
Further, the vector register 5-1 sets the address “0” in the address register RA1 that controls the read, and the vector register 5-2 sets the address “0” in the address register RA2 that controls the read. The vector registers 5-1 and 5-2 read the vector data a 3 and b 3 stored in their own addresses “0” in accordance with the read addresses RA 1 and RA 2, respectively, and the clock cycle “ 3 ", the data is output to the read data registers 6-1 and 6-2, respectively.

(クロックサイクル“3”において)
演算器8は、それぞれ演算入力レジスタ7−1、7−2に格納されているベクトルデータa2、b2に対して演算を施し、その演算結果c2を、3クロックサイクル後のクロックサイクル“6”で演算出力レジスタ9に格納する。
選択回路12−1、12−2は、それぞれ、リードデータレジスタ6−1、6−2(ベクトルデータa3、b3)を選択し、次のクロックサイクルであるクロックサイクル“4”で、ベクトルデータa3、b3を演算入力レジスタ7−1、7−2に格納する。
ベクトルレジスタ5−1、5−2は、それぞれ、そのリードを制御するアドレスレジスタRA1、RA2にアドレス“1”をセットする。ベクトルレジスタ5−1、5−2は、それぞれ、リードアドレスRA1、RA2に応じて、自身のアドレス“1”に格納されているベクトルデータa4、b4を読み出し、次のクロックサイクルであるクロックサイクル“4”で、リードデータレジスタ6−1、6−2に出力する。
(In clock cycle “3”)
The arithmetic unit 8 performs an operation on the vector data a2 and b2 stored in the operation input registers 7-1 and 7-2, respectively, and outputs the operation result c2 in the clock cycle “6” after 3 clock cycles. Store in the arithmetic output register 9.
The selection circuits 12-1 and 12-2 select the read data registers 6-1 and 6-2 (vector data a3 and b3), respectively, and the vector data a3 in the clock cycle “4” that is the next clock cycle. , B3 are stored in the operation input registers 7-1 and 7-2.
The vector registers 5-1 and 5-2 respectively set the address “1” in the address registers RA 1 and RA 2 that control the reading. The vector registers 5-1 and 5-2 read the vector data a 4 and b 4 stored in their own addresses “1” according to the read addresses RA 1 and RA 2, respectively, and the next clock cycle, which is the clock cycle “ At 4 ″, the data is output to the read data registers 6-1 and 6-2.

(クロックサイクル“4”において)
演算器8は、それぞれ演算入力レジスタ7−1、7−2に格納されているベクトルデータa3、b3に対して演算を施し、その演算結果c3を、3クロックサイクル後のクロックサイクル“7”で演算出力レジスタ9に格納する。
選択回路12−1、12−2は、それぞれ、リードデータレジスタ6−1、6−2(ベクトルデータa4、b4)を選択し、次のクロックサイクルであるクロックサイクル“5”で、ベクトルデータa4、b4を演算入力レジスタ7−1、7−2に格納する。
ベクトルレジスタ5−1、5−2は、それぞれ、そのリードを制御するアドレスレジスタRA1、RA2にアドレス“2”をセットする。ベクトルレジスタ5−1、5−2は、それぞれ、リードアドレスRA1、RA2に応じて、自身のアドレス“2”に格納されているベクトルデータa5、b5を読み出し、次のクロックサイクルであるクロックサイクル“5”で、リードデータレジスタ6−1、6−2に出力する。
(At clock cycle “4”)
The arithmetic unit 8 performs an operation on the vector data a3 and b3 stored in the operation input registers 7-1 and 7-2, respectively, and outputs the operation result c3 in the clock cycle “7” after 3 clock cycles. Store in the arithmetic output register 9.
The selection circuits 12-1 and 12-2 select the read data registers 6-1 and 6-2 (vector data a4 and b4), respectively, and the vector data a4 in the clock cycle “5” that is the next clock cycle. , B4 are stored in the operation input registers 7-1 and 7-2.
The vector registers 5-1 and 5-2 set the address “2” in the address registers RA 1 and RA 2 that control the reading. The vector registers 5-1 and 5-2 read the vector data a 5 and b 5 stored in their own address “2” according to the read addresses RA 1 and RA 2, respectively, and the next clock cycle is the clock cycle “ At 5 ″, the data is output to the read data registers 6-1 and 6-2.

(クロックサイクル“5”において)
演算器8は、それぞれ演算入力レジスタ7−1、7−2に格納されているベクトルデータa4、b4に対して演算を施し、その演算結果c4を、3クロックサイクル後のクロックサイクル“8”で演算出力レジスタ9に格納する。
選択回路12−1、12−2は、それぞれ、リードデータレジスタ6−1、6−2(ベクトルデータa5、b5)を選択し、次のクロックサイクルであるクロックサイクル“6”で、ベクトルデータa5、b5を演算入力レジスタ7−1、7−2に格納する。
ベクトルレジスタ5−1、5−2は、それぞれ、そのリードを制御するアドレスレジスタRA1、RA2にアドレス“3”をセットする。ベクトルレジスタ5−1、5−2は、それぞれ、リードアドレスRA1、RA2に応じて、自身のアドレス“3”に格納されているベクトルデータa6、b6を読み出し、次のクロックサイクルであるクロックサイクル“6”で、リードデータレジスタ6−1、6−2に出力する。
演算出力レジスタ9は、自身が格納している演算結果c1を、次のクロックサイクルであるクロックサイクル“6”でライトデータレジスタ10−2に格納する。
(At clock cycle “5”)
The arithmetic unit 8 performs an operation on the vector data a4 and b4 stored in the operation input registers 7-1 and 7-2, respectively, and outputs the operation result c4 in the clock cycle “8” after 3 clock cycles. Store in the arithmetic output register 9.
The selection circuits 12-1 and 12-2 select the read data registers 6-1 and 6-2 (vector data a5 and b5), respectively, and the vector data a5 in the clock cycle “6” that is the next clock cycle. , B5 are stored in the operation input registers 7-1 and 7-2.
The vector registers 5-1 and 5-2 set the address “3” in the address registers RA 1 and RA 2 that control the reading. The vector registers 5-1 and 5-2 read the vector data a 6 and b 6 stored in their own address “3” in accordance with the read addresses RA 1 and RA 2, respectively, and the clock cycle “ At 6 ″, the data is output to the read data registers 6-1 and 6-2.
The operation output register 9 stores the operation result c1 stored in the operation output register 9 in the write data register 10-2 in the clock cycle “6” which is the next clock cycle.

(クロックサイクル“6”において)
演算器8は、それぞれ演算入力レジスタ7−1、7−2に格納されているベクトルデータa5、b5に対して演算を施し、その演算結果c5を、3クロックサイクル後のクロックサイクル“9”で演算出力レジスタ9に格納する。
選択回路12−1、12−2は、それぞれ、リードデータレジスタ6−1、6−2(ベクトルデータa6、b6)を選択し、次のクロックサイクルであるクロックサイクル“7”で、ベクトルデータa6、b6を演算入力レジスタ7−1、7−2に格納する。
ベクトルレジスタ5−1、5−2は、それぞれ、そのリードを制御するアドレスレジスタRA1、RA2にアドレス“4”をセットする。ベクトルレジスタ5−1、5−2は、それぞれ、リードアドレスRA1、RA2に応じて、自身のアドレス“4”に格納されているベクトルデータa7、b7を読み出し、次のクロックサイクルであるクロックサイクル“7”で、リードデータレジスタ6−1、6−2に出力する。
演算出力レジスタ9は、自身が格納している演算結果c2を、次のクロックサイクルであるクロックサイクル“7”でライトデータレジスタ10−2に格納する。
レジスタファイル11は、その書き込みを制御するライトアドレスレジスタW2にアドレス“3”をセットする。レジスタファイル11は、ライトアドレスW2に応じて、ライトデータレジスタ10−2に格納されている演算結果c1を、次のクロックサイクルであるクロックサイクル“7”で自身のアドレス“3”に格納する。
(At clock cycle “6”)
The arithmetic unit 8 performs an operation on the vector data a5 and b5 stored in the operation input registers 7-1 and 7-2, respectively, and outputs the operation result c5 in the clock cycle “9” after 3 clock cycles. Store in the arithmetic output register 9.
The selection circuits 12-1 and 12-2 select the read data registers 6-1 and 6-2 (vector data a6 and b6), respectively, and the vector data a6 in the clock cycle “7” that is the next clock cycle. , B6 are stored in the operation input registers 7-1 and 7-2.
The vector registers 5-1 and 5-2 set the address “4” in the address registers RA 1 and RA 2 that control the reading. The vector registers 5-1 and 5-2 read the vector data a 7 and b 7 stored in their own address “4” according to the read addresses RA 1 and RA 2, respectively, and the next clock cycle, which is the clock cycle “ 7 ", the data is output to the read data registers 6-1 and 6-2.
The operation output register 9 stores the operation result c2 stored in the operation output register 9 in the write data register 10-2 in the clock cycle “7” which is the next clock cycle.
The register file 11 sets the address “3” in the write address register W2 that controls the writing. The register file 11 stores the calculation result c1 stored in the write data register 10-2 in its address “3” in the next clock cycle “7” according to the write address W2.

(クロックサイクル“7”において)
演算器8は、それぞれ演算入力レジスタ7−1、7−2に格納されているベクトルデータa6、b6に対して演算を施し、その演算結果c6を、3クロックサイクル後のクロックサイクル“10”で演算出力レジスタ9に格納する。
選択回路12−1、12−2は、それぞれ、リードデータレジスタ6−1、6−2(ベクトルデータa7、b7)を選択し、次のクロックサイクルであるクロックサイクル“8”で、ベクトルデータa7、b7を演算入力レジスタ7−1、7−2に格納する。
ベクトルレジスタ5−1、5−2は、それぞれ、そのリードを制御するアドレスレジスタRA1、RA2にアドレス“5”をセットする。ベクトルレジスタ5−1、5−2は、それぞれ、リードアドレスRA1、RA2に応じて、自身のアドレス“5”に格納されているベクトルデータa8、b8を読み出し、次のクロックサイクルであるクロックサイクル“8”で、リードデータレジスタ6−1、6−2に出力する。
演算出力レジスタ9は、自身が格納している演算結果c3を、次のクロックサイクルであるクロックサイクル“8”でクロスバ入力レジスタ1−1に格納する。
レジスタファイル11は、自身の書き込みを制御するライトアドレスレジスタW2にアドレス“4”をセットする。レジスタファイル11は、ライトアドレスW2に応じて、ライトデータレジスタ10−2に格納されている演算結果c2を、次のクロックサイクルであるクロックサイクル“8”で自身のアドレス“4”に格納する。
(At clock cycle “7”)
The arithmetic unit 8 performs an operation on the vector data a6 and b6 stored in the operation input registers 7-1 and 7-2, respectively, and outputs the operation result c6 in the clock cycle “10” after 3 clock cycles. Store in the arithmetic output register 9.
The selection circuits 12-1 and 12-2 select the read data registers 6-1 and 6-2 (vector data a7 and b7), respectively, and the vector data a7 in the clock cycle “8” that is the next clock cycle. , B7 are stored in the arithmetic input registers 7-1 and 7-2.
The vector registers 5-1 and 5-2 set the address “5” in the address registers RA 1 and RA 2 that control the reading. The vector registers 5-1 and 5-2 read the vector data a 8 and b 8 stored in their own addresses “5” in accordance with the read addresses RA 1 and RA 2, respectively, and the clock cycle “ At 8 ″, the data is output to the read data registers 6-1 and 6-2.
The calculation output register 9 stores the calculation result c3 stored in the calculation output register 9 in the crossbar input register 1-1 at the clock cycle “8” which is the next clock cycle.
The register file 11 sets the address “4” in the write address register W2 that controls its writing. The register file 11 stores the calculation result c2 stored in the write data register 10-2 at its address “4” in the next clock cycle “8” according to the write address W2.

(クロックサイクル“8”において)
演算器8は、それぞれ演算入力レジスタ7−1、7−2に格納されているベクトルデータa7、b7に対して演算を施し、その演算結果c7を、3クロックサイクル後のクロックサイクル“11”で演算出力レジスタ9に格納する。
選択回路12−1、12−2は、それぞれ、リードデータレジスタ6−1、6−2(ベクトルデータa8、b8)を選択し、次のクロックサイクルであるクロックサイクル“9”で、ベクトルデータa8、b8を演算入力レジスタ7−1、7−2に格納する。
ベクトルレジスタ5−1、5−2は、それぞれ、そのリードを制御するアドレスレジスタRA1、RA2にアドレス“6”をセットする。ベクトルレジスタ5−1、5−2は、それぞれ、リードアドレスRA1、RA2に応じて、自身のアドレス“6”に格納されているベクトルデータa9、b9を読み出し、次のクロックサイクルであるクロックサイクル“9”で、リードデータレジスタ6−1、6−2に出力する。
クロスバ2は、クロスバ入力レジスタ1−1に格納されている演算結果c3に対してルーティングし、次のクロックサイクルであるクロックサイクル“9”でクロスバ出力レジスタ3−2に格納する。
演算出力レジスタ9は、自身が格納している演算結果c4を、次のクロックサイクルであるクロックサイクル“9”でクロスバ入力レジスタ1−1に格納する。
(At clock cycle “8”)
The arithmetic unit 8 performs an operation on the vector data a7 and b7 stored in the operation input registers 7-1 and 7-2, respectively, and outputs the operation result c7 in the clock cycle “11” after 3 clock cycles. Store in the arithmetic output register 9.
The selection circuits 12-1 and 12-2 select the read data registers 6-1 and 6-2 (vector data a8 and b8), respectively, and the vector data a8 in the clock cycle “9” that is the next clock cycle. , B8 are stored in the operation input registers 7-1 and 7-2.
The vector registers 5-1 and 5-2 set the address “6” in the address registers RA 1 and RA 2 that control the reading. The vector registers 5-1 and 5-2 read the vector data a 9 and b 9 stored in their own addresses “6” in accordance with the read addresses RA 1 and RA 2, respectively, and the clock cycle “ At 9 ″, the data is output to the read data registers 6-1 and 6-2.
The crossbar 2 routes the operation result c3 stored in the crossbar input register 1-1, and stores it in the crossbar output register 3-2 at the clock cycle "9" which is the next clock cycle.
The operation output register 9 stores the operation result c4 stored in the operation output register 9 in the crossbar input register 1-1 at the clock cycle “9” which is the next clock cycle.

(クロックサイクル“9”において)
演算器8は、それぞれ演算入力レジスタ7−1、7−2に格納されているベクトルデータa8、b8に対して演算を施し、その演算結果c8を、3クロックサイクル後のクロックサイクル“12”で演算出力レジスタ9に格納する。
選択回路12−1、12−2は、それぞれ、リードデータレジスタ6−1、6−2(ベクトルデータa9、b9)を選択し、次のクロックサイクルであるクロックサイクル“10”で、ベクトルデータa9、b9を演算入力レジスタ7−1、7−2に格納する。
クロスバ出力レジスタ3−2は、自身が格納している演算結果c3を、次のクロックサイクルであるクロックサイクル“10”でライトデータレジスタ4−2に格納する。
クロスバ2は、クロスバ入力レジスタ1−1に格納されている演算結果c4に対してルーティングし、次のクロックサイクルであるクロックサイクル“10”でクロスバ出力レジスタ3−2に格納する。
演算出力レジスタ9は、自身が格納している演算結果c5を、次のクロックサイクルであるクロックサイクル“10”でクロスバ入力レジスタ1−1に格納する。
(At clock cycle “9”)
The arithmetic unit 8 performs an operation on the vector data a8 and b8 stored in the operation input registers 7-1 and 7-2, respectively, and outputs the operation result c8 in the clock cycle “12” after 3 clock cycles. Store in the arithmetic output register 9.
The selection circuits 12-1 and 12-2 select the read data registers 6-1 and 6-2 (vector data a9 and b9), respectively, and the vector data a9 in the clock cycle “10” that is the next clock cycle. , B9 are stored in the operation input registers 7-1 and 7-2.
The crossbar output register 3-2 stores the calculation result c3 stored in the crossbar output register 3-2 in the write data register 4-2 in the clock cycle “10” which is the next clock cycle.
The crossbar 2 routes the operation result c4 stored in the crossbar input register 1-1, and stores it in the crossbar output register 3-2 at the clock cycle "10" which is the next clock cycle.
The calculation output register 9 stores the calculation result c5 stored in the calculation output register 9 in the crossbar input register 1-1 in the clock cycle “10” which is the next clock cycle.

(クロックサイクル“10”において)
演算器8は、それぞれ演算入力レジスタ7−1、7−2に格納されているベクトルデータa9、b9に対して演算を施し、その演算結果c9を、3クロックサイクル後のクロックサイクル“13”で演算出力レジスタ9に格納する。
ベクトルレジスタ5−2は、その書き込みを制御するアドレスレジスタWA2にアドレス“0”をセットする。ベクトルレジスタ5−2は、ライトアドレスWA2に応じて、ライトデータレジスタ4−2に格納されている演算結果c1を、次のクロックサイクルであるクロックサイクル“11”で自身のアドレス“0”に格納する。
クロスバ出力レジスタ3−2は、自身が格納している演算結果c4を、次のクロックサイクルであるクロックサイクル“11”でライトデータレジスタ4−2に格納する。
クロスバ2は、クロスバ入力レジスタ1−1に格納されている演算結果c5に対してルーティングし、次のクロックサイクルであるクロックサイクル“11”でクロスバ出力レジスタ3−2に格納する。
演算出力レジスタ9は、自身が格納している演算結果c6を、次のクロックサイクルであるクロックサイクル“11”でクロスバ入力レジスタ1−1に格納する。
(At clock cycle “10”)
The arithmetic unit 8 performs an operation on the vector data a9 and b9 stored in the operation input registers 7-1 and 7-2, respectively, and outputs the operation result c9 in the clock cycle “13” after 3 clock cycles. Store in the arithmetic output register 9.
The vector register 5-2 sets the address “0” in the address register WA2 that controls the writing. The vector register 5-2 stores the operation result c1 stored in the write data register 4-2 at its address “0” in the next clock cycle “11” according to the write address WA2. To do.
The crossbar output register 3-2 stores the operation result c4 stored in the crossbar output register 3-2 in the write data register 4-2 in the clock cycle “11” which is the next clock cycle.
The crossbar 2 routes to the operation result c5 stored in the crossbar input register 1-1, and stores it in the crossbar output register 3-2 at the clock cycle "11" which is the next clock cycle.
The operation output register 9 stores the operation result c6 stored in the operation output register 9 in the crossbar input register 1-1 in the clock cycle “11” which is the next clock cycle.

(クロックサイクル“11”において)
ベクトルレジスタ5−2は、その書き込みを制御するアドレスレジスタWA2にアドレス“1”をセットする。ベクトルレジスタ5−2は、ライトアドレスWA2に応じて、ライトデータレジスタ4−2に格納されている演算結果c2を、次のクロックサイクルであるクロックサイクル“12”で自身のアドレス“1”に格納する。
クロスバ出力レジスタ3−2は、自身が格納している演算結果c5を、次のクロックサイクルであるクロックサイクル“12”でライトデータレジスタ4−2に格納する。
クロスバ2は、クロスバ入力レジスタ1−1に格納されている演算結果c6に対してルーティングし、次のクロックサイクルであるクロックサイクル“12”でクロスバ出力レジスタ3−2に格納する。
演算出力レジスタ9は、自身が格納している演算結果c7を、次のクロックサイクルであるクロックサイクル“12”でクロスバ入力レジスタ1−1に格納する。
(At clock cycle “11”)
The vector register 5-2 sets the address “1” in the address register WA2 that controls the writing. The vector register 5-2 stores the operation result c2 stored in the write data register 4-2 at its address “1” in the next clock cycle “12” according to the write address WA2. To do.
The crossbar output register 3-2 stores the operation result c5 stored in the crossbar output register 3-2 in the write data register 4-2 in the clock cycle “12” which is the next clock cycle.
The crossbar 2 routes the operation result c6 stored in the crossbar input register 1-1, and stores it in the crossbar output register 3-2 at the clock cycle "12" which is the next clock cycle.
The operation output register 9 stores the operation result c7 stored in the operation output register 9 in the crossbar input register 1-1 in the clock cycle “12” which is the next clock cycle.

(クロックサイクル“12”において)
ベクトルレジスタ5−2は、その書き込みを制御するアドレスレジスタWA2にアドレス“2”をセットする。ベクトルレジスタ5−2は、ライトアドレスWA2に応じて、ライトデータレジスタ4−2に格納されている演算結果c3を、次のクロックサイクルであるクロックサイクル“13”で自身のアドレス“2”に格納する。
クロスバ出力レジスタ3−2は、自身が格納している演算結果c6を、次のクロックサイクルであるクロックサイクル“13”でライトデータレジスタ4−2に格納する。
クロスバ2は、クロスバ入力レジスタ1−1に格納されている演算結果c7に対してルーティングし、次のクロックサイクルであるクロックサイクル“13”でクロスバ出力レジスタ3−2に格納する。
演算出力レジスタ9は、自身が格納している演算結果c8を、次のクロックサイクルであるクロックサイクル“13”でクロスバ入力レジスタ1−1に格納する。
(At clock cycle “12”)
The vector register 5-2 sets the address “2” in the address register WA2 that controls the writing. The vector register 5-2 stores the operation result c3 stored in the write data register 4-2 at its address “2” in the next clock cycle “13” according to the write address WA2. To do.
The crossbar output register 3-2 stores the operation result c6 stored in the crossbar output register 3-2 in the write data register 4-2 in the clock cycle “13” which is the next clock cycle.
The crossbar 2 routes the operation result c7 stored in the crossbar input register 1-1, and stores it in the crossbar output register 3-2 at the clock cycle "13" which is the next clock cycle.
The calculation output register 9 stores the calculation result c8 stored in the calculation output register 9 in the crossbar input register 1-1 in the clock cycle “13” which is the next clock cycle.

(クロックサイクル“13”において)
ベクトルレジスタ5−2は、その書き込みを制御するアドレスレジスタWA2にアドレス“3”をセットする。ベクトルレジスタ5−2は、ライトアドレスWA2に応じて、ライトデータレジスタ4−2に格納されている演算結果c4を、次のクロックサイクルであるクロックサイクル“14”で自身のアドレス“3”に格納する。
クロスバ出力レジスタ3−2は、自身が格納している演算結果c7を、次のクロックサイクルであるクロックサイクル“14”でライトデータレジスタ4−2に格納する。
クロスバ2は、クロスバ入力レジスタ1−1に格納されている演算結果c8に対してルーティングし、次のクロックサイクルであるクロックサイクル“14”でクロスバ出力レジスタ3−2に格納する。
演算出力レジスタ9は、自身が格納している演算結果c9を、次のクロックサイクルであるクロックサイクル“14”でクロスバ入力レジスタ1−1に格納する。
(At clock cycle “13”)
The vector register 5-2 sets the address “3” in the address register WA2 that controls the writing. The vector register 5-2 stores the calculation result c4 stored in the write data register 4-2 at its address “3” in the next clock cycle “14” according to the write address WA2. To do.
The crossbar output register 3-2 stores the operation result c7 stored in the crossbar output register 3-2 in the write data register 4-2 in the clock cycle “14” which is the next clock cycle.
The crossbar 2 routes the operation result c8 stored in the crossbar input register 1-1, and stores it in the crossbar output register 3-2 at clock cycle "14" which is the next clock cycle.
The operation output register 9 stores the operation result c9 stored in the operation output register 9 in the crossbar input register 1-1 in the clock cycle “14” which is the next clock cycle.

(クロックサイクル“14”において)
ベクトルレジスタ5−2は、その書き込みを制御するアドレスレジスタWA2にアドレス“4”をセットする。ベクトルレジスタ5−2は、ライトアドレスWA2に応じて、ライトデータレジスタ4−2に格納されている演算結果c5を、次のクロックサイクルであるクロックサイクル“15”で自身のアドレス“4”に格納する。
クロスバ出力レジスタ3−2は、自身が格納している演算結果c8を、次のクロックサイクルであるクロックサイクル“15”でライトデータレジスタ4−2に格納する。
クロスバ2は、クロスバ入力レジスタ1−1に格納されている演算結果c9に対してルーティングし、次のクロックサイクルであるクロックサイクル“15”でクロスバ出力レジスタ3−2に格納する。
(At clock cycle “14”)
The vector register 5-2 sets the address “4” in the address register WA2 that controls the writing. The vector register 5-2 stores the operation result c5 stored in the write data register 4-2 at its address “4” in the clock cycle “15” which is the next clock cycle in accordance with the write address WA2. To do.
The crossbar output register 3-2 stores the operation result c8 stored in the crossbar output register 3-2 in the write data register 4-2 in the clock cycle “15” which is the next clock cycle.
The crossbar 2 routes the operation result c9 stored in the crossbar input register 1-1, and stores it in the crossbar output register 3-2 at the clock cycle "15" which is the next clock cycle.

(クロックサイクル“15”において)
ベクトルレジスタ5−2は、その書き込みを制御するアドレスレジスタWA2にアドレス“5”をセットする。ベクトルレジスタ5−2は、ライトアドレスWA2に応じて、ライトデータレジスタ4−2に格納されている演算結果c6を、次のクロックサイクルであるクロックサイクル“16”で自身のアドレス“5”に格納する。
クロスバ出力レジスタ3−2は、自身が格納している演算結果c9を、次のクロックサイクルであるクロックサイクル“16”でライトデータレジスタ4−2に格納する。
(At clock cycle “15”)
The vector register 5-2 sets the address “5” in the address register WA2 that controls the writing. The vector register 5-2 stores the calculation result c6 stored in the write data register 4-2 at its address “5” in the next clock cycle “16” in accordance with the write address WA2. To do.
The crossbar output register 3-2 stores the operation result c9 stored in the crossbar output register 3-2 in the write data register 4-2 in the clock cycle “16” which is the next clock cycle.

(クロックサイクル“16”において)
ベクトルレジスタ5−2は、その書き込みを制御するアドレスレジスタWA2にアドレス“6”をセットする。ベクトルレジスタ5−2は、ライトアドレスWA2に応じて、ライトデータレジスタ4−2に格納されている演算結果c7を、次のクロックサイクルであるクロックサイクル“17”で自身のアドレス“6”に格納する。
(At clock cycle “16”)
The vector register 5-2 sets the address “6” in the address register WA2 that controls the writing. The vector register 5-2 stores the calculation result c7 stored in the write data register 4-2 at its address “6” in the next clock cycle “17” according to the write address WA2. To do.

以上の説明により、本発明のベクトルデータ処理装置は、次のような効果を奏する。   As described above, the vector data processing apparatus of the present invention has the following effects.

まず、第1の効果について説明する。本発明のベクトルデータ処理装置によれば、演算結果の若番要素(演算結果{c1、c2})を、ルーティングのためのクロスバ2に通過させない構成にしている。このため、短い時間で結果格納レジスタ(レジスタファイル11、ベクトルレジスタ5−2)に確定させることができる。   First, the first effect will be described. According to the vector data processing device of the present invention, the young element (calculation result {c1, c2}) of the calculation result is not passed through the crossbar 2 for routing. Therefore, the result storage register (register file 11, vector register 5-2) can be determined in a short time.

次に、第2の効果について説明する。本発明によれば、若番要素(ベクトルデータ{a1、a2}、{b1、b2})用に少量のマルチポート構成レジスタファイル11を用意し、また大容量(ベクトルデータ{a3〜a9}、{b3〜b9})用にはポート数の少ないRAMを用いて組み合わせてベクトルレジスタ5−1、5−2を構成している。このため、少ないハードウェア量の増加でベクトルデータ処理装置を構成できる。   Next, the second effect will be described. According to the present invention, a small amount of multiport configuration register file 11 is prepared for the young elements (vector data {a1, a2}, {b1, b2}), and a large capacity (vector data {a3 to a9}, For {b3 to b9}), vector registers 5-1 and 5-2 are configured by using a RAM with a small number of ports. Therefore, the vector data processing apparatus can be configured with a small increase in hardware amount.

このように、本発明のベクトルデータ処理装置は、大量のベクトルデータに関しては現状の処理を行い、少量のベクトルデータに関してはより高速に処理することができる。   As described above, the vector data processing apparatus of the present invention can perform the current processing for a large amount of vector data and can process a small amount of vector data at a higher speed.

図1は、従来のベクトルデータ処理装置の構成を示している。FIG. 1 shows the configuration of a conventional vector data processing apparatus. 図2は、本発明のベクトルデータ処理装置の構成を示している。FIG. 2 shows the configuration of the vector data processing apparatus of the present invention. 図3は、本発明のベクトルデータ処理装置の動作を示すタイミングチャートである。FIG. 3 is a timing chart showing the operation of the vector data processing apparatus of the present invention.

符号の説明Explanation of symbols

1−1、1−2 クロスバ入力レジスタ、
2 クロスバ、
3−1、3−2 クロスバ出力レジスタ、
4−1、4−2 ライトデータレジスタ、
5−1、5−2 ベクトルレジスタ、
6−1、6−2 リードデータレジスタ、
7−1、7−2 演算入力レジスタ、
8 演算器、
9 演算出力レジスタ、
10−1、10−2 ライトデータレジスタ(若番用ライトデータレジスタ)、
11 レジスタファイル、
12−1、12−2 選択回路、
RA1、RA2 リードアドレス、
WA1、WA2 ライトアドレス、
R1、R2 リードアドレス、
W1、W2 ライトアドレス、
101−1、101−2 クロスバ入力レジスタ、
102 クロスバ、
103−1、103−2 クロスバ出力レジスタ、
104−1、104−2 ライトデータレジスタ、
105−1、105−2 ベクトルレジスタ、
106−1、106−2 リードデータレジスタ、
107−1、107−2 演算入力レジスタ、
108 演算器、
109 演算出力レジスタ、
1-1, 1-2 Crossbar input register,
2 Crossbar,
3-1, 3-2 Crossbar output register,
4-1, 4-2 Write data register,
5-1, 5-2 Vector register,
6-1, 6-2 Read data register,
7-1, 7-2 Operation input register,
8 arithmetic units,
9 Operation output register,
10-1, 10-2 Write data register (write data register for young number),
11 Register file,
12-1, 12-2 selection circuit,
RA1, RA2 read address,
WA1, WA2 Write address,
R1, R2 read address,
W1, W2 Write address,
101-1, 101-2 crossbar input register,
102 Crossbar,
103-1, 103-2 Crossbar output register,
104-1, 104-2 write data register,
105-1 and 105-2 vector registers,
106-1, 106-2 read data register,
107-1, 107-2 arithmetic input register,
108 computing units,
109 arithmetic output register,

Claims (4)

1番目からn番目(nは3以上の整数)までのn個の第1ベクトルデータのうちの、1番目からj番目(jは、j<(n−j)を満たす整数)までのj個の第1ベクトルデータが格納された第1若番用格納部と、1番目からn番目までのn個の第2ベクトルデータのうちの、1番目からj番目までのj個の第2ベクトルデータが格納された第2若番用格納部とを有するレジスタファイルと、
前記j個の第1ベクトルデータ以外の(n−j)個の第1ベクトルデータが格納された第1ベクトルレジスタと、
前記j個の第2ベクトルデータ以外の(n−j)個の第2ベクトルデータが格納された第2ベクトルレジスタと、
前記n個の第1ベクトルデータと前記n個の第2ベクトルデータのそれぞれに対して順次に演算を施して、n個の演算結果を生成する演算器と、
前記n個の演算結果のうちの、1番目からj番目までのj個の演算結果を順次に前記レジスタファイルに格納する若番用ライトデータレジスタと、
前記j個の演算結果以外の(n−j)個の演算結果を順次に前記第1及び第2ベクトルレジスタのうちの指定されたベクトルレジスタに格納するクロスバと
を具備するベクトルデータ処理装置。
Of the 1st to nth (n is an integer of 3 or more) n first vector data, the 1st to jth (j is an integer satisfying j <(n−j)) Of the first young number storage section storing the first vector data and the j second vector data from the first to the jth out of the n second vector data from the first to the nth. A register file having a second young number storage unit storing
A first vector register storing (n−j) first vector data other than the j first vector data;
A second vector register storing (n−j) second vector data other than the j second vector data;
An arithmetic unit that sequentially performs an operation on each of the n first vector data and the n second vector data to generate n operation results;
A young write data register for sequentially storing j operation results from the first to jth out of the n operation results in the register file;
A vector data processing apparatus comprising: a crossbar that sequentially stores (n−j) operation results other than the j operation results in a designated vector register of the first and second vector registers.
請求項1に記載のベクトルデータ処理装置において、
前記レジスタファイルの前記第1若番用格納部に格納された前記j個の第1ベクトルデータを順次に前記演算器に出力し、その後に、前記第1ベクトルレジスタに格納された前記(n−j)個の第1ベクトルデータを順次に前記演算器に出力する第1選択回路と、
前記レジスタファイルの前記第2若番用格納部に格納された前記j個の第2ベクトルデータを順次に前記演算器に出力し、その後に、前記第2ベクトルレジスタに格納された前記(n−j)個の第2ベクトルデータを順次に前記演算器に出力する第2選択回路と
を更に具備するベクトルデータ処理装置。
The vector data processing apparatus according to claim 1,
The j first vector data stored in the first young number storage unit of the register file are sequentially output to the computing unit, and then the (n−) stored in the first vector register. j) a first selection circuit for sequentially outputting the first vector data to the computing unit;
The j second vector data stored in the second young number storage unit of the register file are sequentially output to the computing unit, and then the (n−) stored in the second vector register. j) A vector data processing apparatus further comprising a second selection circuit that sequentially outputs the second vector data to the computing unit.
請求項2に記載のベクトルデータ処理装置において、
前記第1選択回路と前記演算器との間に接続された第1演算入力レジスタと、
前記第2選択回路と前記演算器との間に接続された第2演算入力レジスタと、
前記演算器と前記クロスバとの間に接続された演算出力レジスタと
を更に具備するベクトルデータ処理装置。
The vector data processing apparatus according to claim 2, wherein
A first calculation input register connected between the first selection circuit and the calculator;
A second calculation input register connected between the second selection circuit and the calculator;
A vector data processing apparatus further comprising an arithmetic output register connected between the arithmetic unit and the crossbar.
請求項3に記載のベクトルデータ処理装置において、
前記演算出力レジスタと前記クロスバとの間に前記第1、第2ベクトルレジスタに対応して接続された第1、第2クロスバ入力レジスタと、
前記クロスバと前記第1、第2ベクトルレジスタとの間に接続された第1、第2クロスバ出力レジスタと、
前記第1、第2クロスバ出力レジスタと前記第1、第2ベクトルレジスタとの間に接続された第1、第2ライトデータレジスタと
を更に具備するベクトルデータ処理装置。
The vector data processing apparatus according to claim 3,
First and second crossbar input registers connected in correspondence with the first and second vector registers between the arithmetic output register and the crossbar;
First and second crossbar output registers connected between the crossbar and the first and second vector registers;
A vector data processing apparatus further comprising first and second write data registers connected between the first and second crossbar output registers and the first and second vector registers.
JP2007037404A 2007-02-19 2007-02-19 Vector data processing device Active JP4347352B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007037404A JP4347352B2 (en) 2007-02-19 2007-02-19 Vector data processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007037404A JP4347352B2 (en) 2007-02-19 2007-02-19 Vector data processing device

Publications (2)

Publication Number Publication Date
JP2008204028A JP2008204028A (en) 2008-09-04
JP4347352B2 true JP4347352B2 (en) 2009-10-21

Family

ID=39781498

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007037404A Active JP4347352B2 (en) 2007-02-19 2007-02-19 Vector data processing device

Country Status (1)

Country Link
JP (1) JP4347352B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7931003B2 (en) 2005-04-27 2011-04-26 Bando Kiko Co., Ltd. Reciprocating engine

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7931003B2 (en) 2005-04-27 2011-04-26 Bando Kiko Co., Ltd. Reciprocating engine

Also Published As

Publication number Publication date
JP2008204028A (en) 2008-09-04

Similar Documents

Publication Publication Date Title
CN106991478B (en) Apparatus and method for performing artificial neural network reverse training
US6269440B1 (en) Accelerating vector processing using plural sequencers to process multiple loop iterations simultaneously
JP2002333978A (en) Vliw type processor
GB2474901A (en) Multiply-accumulate instruction which adds or subtracts based on a predicate value
US20140047218A1 (en) Multi-stage register renaming using dependency removal
EP2132645B1 (en) A data transfer network and control apparatus for a system with an array of processing elements each either self- or common controlled
CN115934168A (en) Processor and memory access method
EP3475808B1 (en) Method and apparatus for performing simd gather and copy operations
JP4347352B2 (en) Vector data processing device
JPH0581119A (en) General-purpose memory-access system using register indirect mode
WO2014202825A1 (en) Microprocessor apparatus
CN112074810B (en) Parallel processing apparatus
JP2004503872A (en) Shared use computer system
JP6432348B2 (en) Arithmetic apparatus and arithmetic method
JP2008102599A (en) Processor
CN113703841B (en) Optimization method, device and medium for register data reading
JP2861560B2 (en) Data processing device
WO2022063269A1 (en) Method and apparatus for configurable hardware accelerator
JP6307975B2 (en) Arithmetic processing device and control method of arithmetic processing device
US20230071941A1 (en) Parallel processing device
US11036510B2 (en) Processing merging predicated instruction with timing permitting previous value of destination register to be unavailable when the merging predicated instruction is at a given pipeline stage at which a processing result is determined
JP3461887B2 (en) Variable length pipeline controller
JP2717850B2 (en) Parallel computer with high-speed communication mechanism
US20140281368A1 (en) Cycle sliced vectors and slot execution on a shared datapath
JP3743155B2 (en) Pipeline controlled computer

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080815

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090417

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: 20090626

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090715

R150 Certificate of patent or registration of utility model

Ref document number: 4347352

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130724

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350