JPS62226275A - Vector processor - Google Patents

Vector processor

Info

Publication number
JPS62226275A
JPS62226275A JP6838786A JP6838786A JPS62226275A JP S62226275 A JPS62226275 A JP S62226275A JP 6838786 A JP6838786 A JP 6838786A JP 6838786 A JP6838786 A JP 6838786A JP S62226275 A JPS62226275 A JP S62226275A
Authority
JP
Japan
Prior art keywords
data
main memory
pipeline
register
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.)
Granted
Application number
JP6838786A
Other languages
Japanese (ja)
Other versions
JPH0434191B2 (en
Inventor
Masami Takahata
高畑 正美
Yuji Aoki
雄二 青木
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.)
Hitachi Ltd
Hitachi Computer Engineering Co Ltd
Original Assignee
Hitachi Ltd
Hitachi Computer Engineering Co 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 Hitachi Ltd, Hitachi Computer Engineering Co Ltd filed Critical Hitachi Ltd
Priority to JP6838786A priority Critical patent/JPS62226275A/en
Publication of JPS62226275A publication Critical patent/JPS62226275A/en
Publication of JPH0434191B2 publication Critical patent/JPH0434191B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

PURPOSE:To attain a fast processing with matrix calculation by securing an element parallel form even with the transfer of the compressed data stored in a main memory and the extended data stored in a vector register. CONSTITUTION:When a load or store instruction is started, the load/store pipelines 4 start the load/store processing at the same time. In a load instruction mode the address of the data on a main memory 1 is sent to the memory 1 through the pipeline 4 and data are extracted to the pipeline 4 out of the memory 1. Furthermore the data are written to a vector register 2 via a data distributing circuit 6. In a store instruction mode the data are read to a data selecting circuit 7 out of the register 2 and sent to the pipeline 4. Then data are loaded to the register 2 and stored there. Meanwhile the arithmetic operation is given to the data.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はベクトル処理装置に係り、特に行列形式データ
の処理において、疎行列データのアクセスを高速に処理
するに好適なベクトル処理装置に関する。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a vector processing device, and particularly to a vector processing device suitable for processing access to sparse matrix data at high speed in processing matrix format data.

〔従来の技術〕[Conventional technology]

ベクトル処理装置において、科学技術計算に現われる大
規模の行列計算では、扱うデータが非常に大きく、その
ままの形では主記憶に収まらない場合がある。また疎行
列を扱う行列計算では、計算結果に関与するのはと(少
数の非零の要素である。このため主記憶上忙は圧縮され
た形式で行列データを蓄えておき、計算時にベクトル・
レジスタ上に伸張して転送する機能を備えることによっ
て記憶容量の制約を解消しつつ、行列計算の高速化をは
かっている。
In vector processing devices, in large-scale matrix calculations that appear in scientific and technical calculations, the data handled is so large that it may not fit into main memory in its original form. In addition, in matrix calculations that handle sparse matrices, only a small number of nonzero elements are involved in the calculation results. Therefore, the matrix data is stored in a compressed format in the main memory, and the vector data is stored in the main memory in a compressed format.
By providing a function to expand and transfer onto a register, it eliminates storage capacity constraints and speeds up matrix calculations.

この稲のベクトル処理装置では、ベクトル・レジスタ上
の伸張されたデータの有効性を示すためにマスクOレジ
スタが設けられている。マスク・レジスタの各ビットは
ベクトル会レジスタの対応する要素の有効性を示す。ベ
クトル・レジスタのル番目の要素に対応するマスク・ビ
ットVMR(n)が値11′であるとき該要素は有効、
10′であるとき無効であることが示される。
In this rice vector processing device, a mask O register is provided to indicate the validity of the decompressed data on the vector register. Each bit in the mask register indicates the validity of the corresponding element in the vector register. The element is valid when the mask bit VMR(n) corresponding to the th element of the vector register has the value 11';
10' indicates invalidity.

主記憶上の圧縮されたデータは、先頭アドレスを保持す
るアドレス・レジスタVARと間隔値を保持するインク
リメント・レジスタVIRとによって次のようにアドレ
ス付けされる。ル番目の要素のアドレスは1 、みが主記憶上に圧縮されて配置されるので、ル番目の
要素のアドレスは、該要素以前の11′のマスク・ビッ
トのカウント数にインクリメントを乗じ、先頭アドレス
を加えた値となる。
The compressed data on the main memory is addressed as follows by an address register VAR that holds the start address and an increment register VIR that holds the interval value. The address of the element 1 is compressed and placed in main memory, so the address of the element 2 is calculated by multiplying the count number of 11' mask bits before the element by an increment, and then The value is the addition of the address.

主記憶上の圧縮されたデータとベクトル拳レジスタ上の
伸張されたデータとの間の転送は、マスク・レジスタの
内容によって制御される。ル番Hの要素に対しては、マ
スク・ピッ)VMR(rL)が値゛19をとる場合に主
記憶からベクトル・レジスタへのロード、またはベクト
ル・レジスタから主記憶へのストアが行われる。値10
?を取る場合にはロード、ストアは行われない。以上の
ようにマスク・ビットによるメモリ・リクエスト制御が
行われ、先頭要素から順次転送が行われる。
Transfers between compressed data on main memory and decompressed data on the vector fist register are controlled by the contents of the mask register. For the element with loop number H, when the mask pin (rL) takes the value ``19'', a load from the main memory to the vector register or a store from the vector register to the main memory is performed. value 10
? If you take , loading and storing are not performed. As described above, memory request control is performed using mask bits, and data is sequentially transferred starting from the first element.

このような構成をもつベクトル処理装置では、従来、ア
ドレス計算は次のように遂次的に行われる0 α1−αn、+VMR(n、−1)*VIR・=(2)
ここにαユはル番目の要素の主記憶アドレス、α2゜は
直前のrL−1番目の要素の主記憶アドレスである。こ
のため、データ転送は遂次的に1本のロード・ストア・
パイプラインで行われていた。なお、この種の装置とし
て関連するものには例えば特開昭58−214963号
公報が挙げられる。
Conventionally, in a vector processing device having such a configuration, address calculation is performed sequentially as follows.
Here, αU is the main memory address of the rth element, and α2° is the main memory address of the immediately preceding rL-1th element. Therefore, data transfer is performed sequentially through one load, store, and
It was done in a pipeline. Note that related devices of this type include, for example, Japanese Unexamined Patent Publication No. 58-214963.

〔発明が解決しようとする問題点〕[Problem that the invention seeks to solve]

上記従来技術は、要素並列の多重パイプライン方式の適
合性については配慮されておらず、多重化されたパイプ
ラインが有効に利用されないという問題があった。つま
り、最近のベクトル処理装置では、主記憶からベクトル
拳レジスタへデータを転送する能力を増強するために、
複数のロード・ストア・パイプラインが設置され、デー
タ中の複数の要素を並列に一度に転送する機構がある。
The above-mentioned conventional technology does not take into consideration the suitability of the element-parallel multiple pipeline system, and there is a problem in that the multiplexed pipelines are not used effectively. In other words, in modern vector processing devices, in order to increase the ability to transfer data from main memory to vector registers,
Multiple load-store pipelines are installed to provide a mechanism to transfer multiple elements of data in parallel at once.

ところが上記の圧縮会伸張型のデータ転送の場合には、
主記憶にアクセスすべきアドレスがデータの有効性を示
すマスク−ビットの制御の下で遂次的にしか生成されな
い。このため複数設置されたロード・ストア・パイプラ
インの内、1本でしかデータ転送を行うことができなか
った。
However, in the case of the compression/decompression type data transfer mentioned above,
Addresses to access main memory are generated only sequentially under the control of mask-bits that indicate the validity of the data. For this reason, data could only be transferred using one of the multiple load/store pipelines installed.

本発明の目的は、複数設置されたロード・ストア・パイ
プラインにおいて、複数の要素の主記憶τ k”  I
/  2  k 前2;It Iy  −u ’Wit
  I     亜専W PI Iff  Ir 蝕a
  j巾阻型のデータ転送を実行するベクトル処理装置
を提供することにある。
An object of the present invention is to store main memories τ k” I of multiple elements in a load/store pipeline installed in multiple
/ 2 k previous 2; It Iy -u 'Wit
I Subspecialty W PI If Ir Eclipse a
An object of the present invention is to provide a vector processing device that performs a block-type data transfer.

〔問題点を解決するための手段〕[Means for solving problems]

本発明は、各パイプラインで処理すべき要素の主記憶ア
ドレスを並列に計算できるように各パイプラインのアド
レス計算回路を構成することにより達成される。
The present invention is achieved by configuring the address calculation circuits of each pipeline so that the main memory addresses of the elements to be processed in each pipeline can be calculated in parallel.

各パイプラインのアドレス計算回路を、各パイプライン
で処理すべき要素番号を認識し、マスク会ビットを選択
してマスク・ビットの有効数を計数するカウンタ、カウ
ンタの内容に基づき要素の間隔値、インクリメントの倍
数を発生する倍数発生回路、各パイプラインにおいて前
ステージにて処理した要素の主記憶アドレスに上記で発
生した倍数を加えることによって、各パイプラインにお
いて該ステージにて処理すべき要素の主記憶アドレスを
求める多入力の加算器で構成する。
The address calculation circuit of each pipeline is configured by a counter that recognizes the element number to be processed in each pipeline, selects a mask bit, and counts the effective number of mask bits, and an element interval value based on the contents of the counter. A multiple generation circuit that generates a multiple of the increment. By adding the multiple generated above to the main memory address of the element processed in the previous stage in each pipeline, It consists of a multi-input adder that obtains storage addresses.

〔作用〕[Effect]

要素並列の多重パイプラインにおいテ、各パイプライン
で並列にアドレス計算を実行するためには次のような計
算を並列に実行しなげればならなここでMは多重パイプ
ラインの本数、α1〜αn+9−2は該ステージで処理
すべき要素の主記憶アドレス、αニー7〜”rL−+は
nIJステージで処理した要素の主記憶アドレスである
。vMR(L)は1番目の要素に対応するマスク拳ビッ
トであり、v工Rは要素の間隔値、インクリメントであ
る。1本のパイプラインについて見ると、前ステージで
処理したル+i−M番目の要素の主記憶アドレスαn+
i−□と該ステー(す)*VIRとなっている。この倍
数は、前ステージで処理した要素に対応するM個のマス
ク・ビットの内、該パイプラインで処理した要素から要
素番号が後の要素に対応する有効マスク・ビットら作ら
れる。
In an element-parallel multiple pipeline, in order to perform address calculation in parallel in each pipeline, the following calculation must be executed in parallel. Here, M is the number of multiple pipelines, α1 ~ αn+9-2 is the main memory address of the element to be processed in the stage, αN7~"rL-+ is the main memory address of the element processed in the nIJ stage. vMR(L) corresponds to the first element It is a mask fist bit, and v-R is the element interval value and increment.When looking at one pipeline, the main memory address αn+ of the +i−Mth element processed in the previous stage
i-□ and the stay(su)*VIR. This multiple is created from valid mask bits corresponding to elements whose element number is later than the element processed in the pipeline, among the M mask bits corresponding to the elements processed in the previous stage.

したがって、各パイプラインのアドレス計算回Mにおい
て、カウンタによって上記有効ビット数を計数し、その
カウント値に基づいて倍数発生回路にてインクリメント
VIRの倍数を発生し、加算器によって該パイプライン
で前ステージに処理したル+i−M番目の要素の主記憶
アドレスαn+i−Mに加算すると、該パイプラインで
次のステージで処理すべきル+j番目の要素の主記憶ア
ドレスαn+iが求まる。以上により複数のパイプライ
ンにおいて複数の要素の主記憶アドレスを並列に得るこ
とができる。
Therefore, in the address calculation time M of each pipeline, a counter counts the number of effective bits, a multiple generation circuit generates a multiple of the increment VIR based on the count value, and an adder generates a multiple of the increment VIR in the previous stage of the pipeline. By adding it to the main memory address αn+i−M of the +i−Mth element processed in the above, the main memory address αn+i of the +jth element to be processed in the next stage of the pipeline is determined. As described above, main memory addresses of multiple elements can be obtained in parallel in multiple pipelines.

各パイプラインにおいて処理すべき要素に対応−L6マ
スクΦビットがwltの場合、上記アドレス計算によっ
て得られた主記憶アドレスを用いてメモリφリクエスト
を主記憶に対して発行し、ロード会ストア処理を行う。
Corresponding to the element to be processed in each pipeline - If the L6 mask Φ bit is wlt, a memory φ request is issued to the main memory using the main memory address obtained by the address calculation above, and the load session store processing is performed. conduct.

マスク・ビットがマ07の場合には、アドレス計算は行
うが、メモリ・リクエストは抑止する。この場合には、
アドレス計算回路内に保持される主記憶アドレスが更新
されるのみである。
If the mask bit is MA07, address calculation is performed but memory requests are suppressed. In this case,
Only the main memory address held within the address calculation circuit is updated.

処理すべき残り要素数は、現在の残り要素数から、1ス
テージで処理される要素数(これはパイプライン本数に
等しい。)を減算することによって得られる。そして、
残り要素数が非正になったことを検出器によって検出し
、ロード・ストア処理を終了する。
The number of remaining elements to be processed is obtained by subtracting the number of elements processed in one stage (this is equal to the number of pipelines) from the current number of remaining elements. and,
The detector detects that the number of remaining elements has become non-positive, and the load/store process ends.

〔実施例〕〔Example〕

以下、本発明の内容を図を用いて説明する。 Hereinafter, the content of the present invention will be explained using figures.

第1図は本発明が適用されるベクトル処理装置の全体構
成を示すものである。第1図において、1は主記憶(M
S)、2はベクトル・レジスタ(VR)、3は−rスク
*vジスタ(VMR)、4はロードOストア・パイプラ
イン(LS)、5は演算器(ALU)、6はデータ分配
回路、7はデータ選択回路である。ベクトル・レジスタ
2は各々L個の要素を格納する容量を持ち、全体でVR
,〜VR,で示す8本設けられている。マスク・レジス
タ3はLビットで1本設けられている。マスク・レジス
タ3の1ビツトがベクトル・レジスタ2の1要素の有効
性を示す。尚、本実施例では簡略化のためマスク舎レジ
スタを1本とするが、マスク・レジスタは複数あっても
差しつかえない。ロード−ストア番パイプライン4はL
 5o−L S、で示す8本、演算器5はA L U、
 −A L U、で示す8個とする。
FIG. 1 shows the overall configuration of a vector processing device to which the present invention is applied. In Figure 1, 1 is the main memory (M
S), 2 is a vector register (VR), 3 is a -r disk * v register (VMR), 4 is a load-O-store pipeline (LS), 5 is an arithmetic unit (ALU), 6 is a data distribution circuit, 7 is a data selection circuit. Vector register 2 each has a capacity to store L elements, and the total VR
, ~VR, are provided. One mask register 3 is provided with L bits. One bit in mask register 3 indicates the validity of one element in vector register 2. In this embodiment, for the sake of simplicity, there is one mask register, but there may be a plurality of mask registers. Load-store number pipeline 4 is L
5o-LS, 8 units, arithmetic unit 5 is ALU,
-A L U, there are 8 pieces.

各ロード・ストアーパイプラインは主記憶上の行列型式
データの各要素の主記憶アドレスを順次計算し、主記憶
に対してメモリ・リクエストを発行する。主記憶アドレ
スの計算結果はパイプライン動作の基本単位である1ス
テージごとに得られ、メモリ・リクエストも1ステージ
・ピッチで発行される。ロード命令、またはストア命令
が起動されると、8本のロード・ストア・パイプライン
4、LSo、LS、、・・・、LS、が同時にロード・
ストア処理を開始する。第1ステージでは、0番、1番
、・・・、7番の要素の主記憶アドレスα。、α7、・
・・、α、が8本のパイプライン4において同時に計算
され、8個のメモリ・リクエストが主記憶1に対して発
行される。第2ステージでは、8番、9番、・・・、1
5番の要素の主記憶アドレスα3、α8、・・・、α、
5が8本のパイプライン4において同時に計算され、8
個のメモリ・リクエストが主記憶1に対して発行される
。以下、1ステージごとに8個の要素の主記憶アドレス
が8本のロード・ストア・パイプライン4において同時
に計算され、8個のメモリ・リクエストが主記憶1に対
して発行される。そして該メモリ・リクエストに基づき
、8個の要素のデータ転送が主記憶1とベクトル・レジ
スタ2との間で行われる。
Each load/store pipeline sequentially calculates the main memory address of each element of matrix-type data on the main memory, and issues a memory request to the main memory. The calculation result of the main memory address is obtained for each stage, which is the basic unit of pipeline operation, and memory requests are also issued at a pitch of one stage. When a load or store instruction is activated, eight load/store pipelines 4, LSo, LS, ..., LS, load and store simultaneously.
Start store processing. In the first stage, the main memory address α of elements numbered 0, 1, . . . , 7. ,α7,・
..., α, are calculated simultaneously in eight pipelines 4, and eight memory requests are issued to the main memory 1. In the second stage, No. 8, No. 9, ..., 1
Main memory address α3, α8, ..., α, of element number 5
5 are computed simultaneously in 8 pipelines 4, and 8
memory requests are issued to main memory 1. Thereafter, main memory addresses of eight elements are calculated simultaneously in eight load/store pipelines 4 for each stage, and eight memory requests are issued to the main memory 1. Data transfer of eight elements is then performed between main memory 1 and vector register 2 based on the memory request.

ロード命令の場合には、主記憶上のデータのアドレスが
ロード・ストア番パイプライン4からパス8を介して主
1己憶1に送られ、データが主記憶1からパス9を介し
ロード・ストア・パイプライン4に取り出される。さら
にデータはパス10を介しデータ分配回路6に入り、命
令で指定されたベクトル・レジスタ2に対してパス11
を介し書き込まれる。
In the case of a load instruction, the address of the data on the main memory is sent from the load/store number pipeline 4 to the main memory 1 via path 8, and the data is sent from main memory 1 to the load/store number via path 9. - Taken out to pipeline 4. Furthermore, the data enters the data distribution circuit 6 via path 10, and is sent to the vector register 2 specified by the instruction via path 11.
written via.

ストア命令の場合には、命令によって指定されたベクト
ル・レジスタ2上のデータがパス12を介しデータ選択
回路7に読み出され、パス15を介してロード・6スト
ア・パイプライン4に入る。ロード・ストア・パイプラ
イン4では主記憶アドレスが与えられ、主記憶アドレス
はパス8に乗せて、データはパス16に乗せて主記憶1
に送り込まれる。
In the case of a store instruction, data on the vector register 2 specified by the instruction is read out to the data selection circuit 7 via path 12 and enters the load/store pipeline 4 via path 15. In the load/store pipeline 4, the main memory address is given, the main memory address is placed on path 8, and the data is placed on path 16, main memory 1.
sent to.

データがベクトル・レジスタ2にロードされてからスト
アされるまでの間にデータに対する演算が行われる。演
算命令によって指定される3本のレジスタ間で演算が行
われる。5本のベクトル・レジスタの内の2本はオペラ
ンドが格納されていて、オペランドはデータ選択回路7
を介して読み出されパス13を経由して演算器5に入力
される。
Operations are performed on the data after it is loaded into vector register 2 and before it is stored. An operation is performed between the three registers specified by the operation instruction. Two of the five vector registers store operands, and the operands are sent to the data selection circuit 7.
The signal is read out via the path 13 and input to the arithmetic unit 5.

演算結果は演算器5から出力され、パス14を経由しデ
ータ分配回路6を介してベクトルΦレジスタ2に書き込
まれる。演算命令が要素対応にマスク・ビットを生成す
るマスク生成命令である場合には、演算結果として得ら
れるマスク・ビットはマスク・レジスタ6に書き込まれ
る。
The calculation result is output from the calculation unit 5 and written to the vector Φ register 2 via the path 14 and the data distribution circuit 6. If the operation instruction is a mask generation instruction that generates mask bits corresponding to elements, the mask bits obtained as a result of the operation are written into the mask register 6.

ロード拳ストア・パイプライン4におけるロード・スト
ア処理は各要素ごとにマスク・レジスタ5のマスク・ビ
ットの制御を受ける。このため717を介して各パイプ
ラインに分配される。
The load/store processing in the load/store pipeline 4 is controlled by the mask bit of the mask register 5 for each element. Therefore, it is distributed to each pipeline via 717.

次に第2図並びに第3図にて主記憶上の圧縮されたデー
タとベクトル会レジスタ上の伸張されたデータとの間の
転送処理動作を示す。
Next, FIGS. 2 and 3 show the transfer processing operation between compressed data on the main memory and decompressed data on the vector register.

第2図は主記憶上の圧縮された1個のデータα。、α1
・゛〜α2−1をベクトル・レジスタ上に伸張してロー
ドする処理を示したものである。ロード処理の前にはベ
クトル・レジスタ2のLmの要素に対してLビットのマ
スク−ビットがマスク・レジスタ5に設定されている。
FIG. 2 shows one piece of compressed data α on the main memory. , α1
・This shows the process of expanding and loading ゛~α2-1 onto a vector register. Before the load process, L-bit mask bits are set in the mask register 5 for the Lm element of the vector register 2.

マスク・ビットの内、要素が有効であることを示すマ1
vの数は、主記憶1上の圧縮されたデータの要素数りに
等しい。主記憶1上のデータは先頭の要素から順にマス
ク・ビットマ1vに対応するベクトル・レジスタ2の要
素位置にロードされる。マスク・ビットYQYに対応す
る要素位置にはロードしない。
Mask bits that indicate that the element is valid
The number v is equal to the number of compressed data elements in the main memory 1. The data on the main memory 1 is loaded into the element positions of the vector register 2 corresponding to the mask bitma 1v in order from the first element. Do not load into the element location corresponding to mask bit YQY.

第6図はベクトル・レジスタ2上の伸張されたL個のデ
ータα。、α1、・・・、α、−1を圧縮して主記憶1
にストアする処理を示したものである。ストア処理の前
にはベクトル・レジスタ2のL個の要素に対してLビッ
トのマスク・ビットがマスク・レジスタ3に設定されて
いる。ロードとは逆に、マスクビットw1Fに対応する
ベクトル・レジスタ2の要素位置のデータが先頭から順
に主記憶1にストアされる。
FIG. 6 shows L pieces of expanded data α on vector register 2. , α1, ..., α, -1 are compressed and stored in main memory 1.
This figure shows the process of storing data in a file. Before store processing, L mask bits are set in mask register 3 for L elements of vector register 2. Contrary to loading, the data at the element positions of vector register 2 corresponding to mask bit w1F are stored in main memory 1 in order from the beginning.

第4図にロード・ストア・パイプライン1本のアドレス
計算回路の構成を示し、圧縮・伸張型のロード拳ストア
処理におけるアドレス計算を説明する。本図は(3)式
の多重度M−8の場合の構成を示したものである。この
場合、処理のパイプライン動作の単位である1ステージ
ごとにデータ中の8個の要素がロード・ストア処理され
る。各パイプラインには信号線33によってリクエスタ
番号と称する0〜7の値が与えられている。各パイプラ
インはりクエスタ番号の値によって処理すべき要素の系
列を認識し動作する。リクエスタ番号が00パイプライ
ンでは、要素α。、α6、α、6、・・・が順次ロード
、ストア処理される。
FIG. 4 shows the configuration of an address calculation circuit with one load/store pipeline, and address calculation in compression/expansion type load/store processing will be explained. This figure shows the configuration of equation (3) when the multiplicity is M-8. In this case, eight elements in the data are loaded and stored in each stage, which is a unit of pipeline operation of processing. Each pipeline is given a value from 0 to 7 called a requester number via a signal line 33. Each pipeline recognizes and operates the sequence of elements to be processed based on the value of the quester number. In a pipeline with requester number 00, element α. , α6, α,6, . . . are sequentially loaded and stored.

命令解読回路20において主記憶1上の圧縮データとベ
クトル・レジスタ2上の伸張データとの間のデータ転送
を指示するロードφストア命令が解読されると、命令解
読回路20から主記憶1上の圧縮データをアドレス付ゆ
する情報がレジスタ21.22.24に設定される。ア
ドレス・レジスタvAR21にはデータの先頭アドレス
が、インクリメント拳レジスタV I R22にはデー
タの間隔値が、レングス・レジスタV L R24には
データの長さがそれぞれ設定される。データに関する情
報の設定と共に信号線37 iCよりデータのロード・
ストア処理を起動する信号が送られ、ラッチ59が11
1にセットされる。ラッチ59の出力はメモリ・リクエ
ストを制御するA、 N D回路40を開き、ロード・
ストア処理のためのメモリ※リクエストの送出が始まる
When the instruction decoding circuit 20 decodes the load φ store instruction that instructs data transfer between the compressed data on the main memory 1 and the decompressed data on the vector register 2, the instruction decoding circuit 20 decodes the data on the main memory 1. Information for addressing compressed data is set in registers 21, 22, and 24. The start address of the data is set in the address register vAR21, the data interval value is set in the increment register VIR22, and the length of the data is set in the length register VLR24. Along with setting data-related information, data is loaded from signal line 37 iC.
A signal is sent to start the store process, and the latch 59 is set to 11.
Set to 1. The output of latch 59 opens A, N D circuit 40 that controls memory requests and loads.
Sending of memory request for store processing begins.

マスク0レジスタVMR3からはロード・ストア処理に
同期してパイプラインの本数分、8ビツトのマスク・ビ
ットが並列に読み出され、バス17を介しレジスタ18
にセットされる。マスク・ビットの読み出しは、ロード
・ストア処理のパイプライン動作の単位と同じく1ステ
ージごとに行われる。レジスタ1日に入ったマスク・ビ
ットは次のステージにはレジスタ19に転送される。レ
ジスタ18.19の出力はビット選択回路35.36に
入力され、リクエスタ番号によって定まるある範囲のビ
ットのみが抽出され、カウンタ23に転送される。カウ
ンタ23は選択されたマスク・ビット中の111のビッ
トの数を計数し、計数して得られた数から倍数発生回路
26.27を制御し、インクリメント拳レジスタV I
 R22の0〜7倍の倍数を発生する。倍数発生回路2
6では8.4.0倍の倍数が、倍数発生回路27では2
.1.0、−1倍の倍数がそれぞれ発生される。両者を
組み合せることによって0〜%倍の倍数が得られる。
Eight mask bits for the number of pipelines are read in parallel from the mask 0 register VMR3 in synchronization with the load/store processing, and are read out from the register 18 via the bus 17.
is set to Reading of the mask bits is performed for each stage, similar to the unit of pipeline operation for load/store processing. The mask bits entered in register 1 are transferred to register 19 in the next stage. The outputs of registers 18 and 19 are input to bit selection circuits 35 and 36, and only bits within a certain range determined by the requester number are extracted and transferred to counter 23. Counter 23 counts the number of 111 bits in the selected mask bits, controls multiple generator circuits 26 and 27 from the counted number, and increments register VI
Generates a multiple of 0 to 7 times R22. Multiple generation circuit 2
6, the multiple is 8.4.0 times, and the multiple generation circuit 27 is 2.
.. Multiples of 1.0 and -1 are generated, respectively. By combining the two, a multiple of 0 to % can be obtained.

ロード拳ストア処理の最初のステージではデータの先頭
アドレスがアドレス・レジスタVAR21からセレクタ
25を介しキャリー参セーブ・アダー CS A 29
に入力される。同時にマスク・カウント数に基づ(イン
クリメント・レジスタVIRの倍数が倍数発生回路26
.27からキャリー・セーブ拳アダーCS A 29に
入力される。両者はキャリー・セーブ・アダーCS A
 29とその直後にあるパラレル・アダーP A 30
によって加算され、第1ステージで処理される要素の主
記憶アドレスとなる。第2ステージ以降では、前のステ
ージで処理した要素の主記憶アドレスがセレクタ25を
介しキャリー・セーブ拳アダーCS A 29に再び入
力され、該ステージで処理する要素の主記憶アドレスを
計算するために使用される。第2ステージ以降のアドレ
ス計算では、アドレス・レジスタVAR21の内容の代
りに前ステージで求めた主記憶アドレスを用いる点のみ
異なる。
At the first stage of the load store process, the start address of the data is carried from the address register VAR21 via the selector 25 to the save adder CS A 29
is input. At the same time, based on the mask count number (the multiple of the increment register VIR is
.. 27 to the carry save fist adder CS A 29. Both are carry save adder CS A
29 and the parallel adder P A 30 immediately after it.
It becomes the main memory address of the element processed in the first stage. From the second stage onwards, the main memory address of the element processed in the previous stage is input again to the carry-save fist adder CS A 29 via the selector 25, in order to calculate the main memory address of the element processed in the stage. used. The only difference is that the address calculations in the second and subsequent stages use the main memory address obtained in the previous stage instead of the contents of the address register VAR21.

第5図においてリクエスタ番号3のロード・ストア・パ
イプラインにおけるアドレス計算の一例を示す。要素α
n−8に引き続く8個の要素に対応するマスクφビット
が’101101 Do’、その次のステージで処理さ
れる要素αユに引き続く8個の要素に対応するマスク・
ビットが’01011001’であるとする。リクエス
タ番号5のパイプラインでは2ステージの間に要素αn
+5−IIと要素α1+5とについてロード会ストア処
理を行う。要素αn+5の主記憶アドレスは、要素αn
+&−8の主記憶アドレスとマスク・ビットVMR(す
(iキル+5−8〜ル+2)とから次のようにして求め
られる。まず、ビット選択回路65によって要素αrL
+5−8から後の5個の要素αrL+5−II %αW
+4−8 % αW+5−!l % cLn、+6−J
 %α1+7−6に対応するマスク・ピッ) ’101
00’が選択得られる。次にビット選択回路66によっ
て要素αユや、より前の3個の要素a、rL1αユや1
、αrLや2、に数発生回路26では4 *VIRが、
倍数発生回路27では(−1)*VIRが発生され、両
者はチャリー・セーブ・アダーCS A 29とパラレ
ル・アダーPA30とにおいてαn+5−8と加算され
cLrL+ sが得られる。
FIG. 5 shows an example of address calculation in the load/store pipeline of requester number 3. element α
The mask φ bit corresponding to the 8 elements following n-8 is '101101 Do', and the mask φ bit corresponding to the 8 elements following the element α to be processed in the next stage is '101101 Do'.
Assume that the bit is '01011001'. In the pipeline of requester number 5, element αn is added between two stages.
Road session store processing is performed for +5-II and element α1+5. The main memory address of element αn+5 is element αn
It is determined from the main memory address +&-8 and the mask bit VMR (s(i kill+5-8 to rule+2)) as follows.First, the bit selection circuit 65 selects the element αrL.
5 elements after +5-8 αrL+5-II %αW
+4-8% αW+5-! l % cLn, +6-J
Mask corresponding to %α1+7-6) '101
00' is selected. Next, the bit selection circuit 66 selects element α, the previous three elements a, rL1α, and 1.
, αrL and 2, the number generation circuit 26 has 4 *VIR,
The multiple generating circuit 27 generates (-1)*VIR, and both are added to αn+5-8 in the Charlie save adder CS A 29 and the parallel adder PA 30 to obtain cLrL+s.

*VIR −αn+s −a +(2+ 1 )*VI Rx a
n+、−、+ !l * V I Rg αr、、+、
−、+4*VIR+(−1)*VIR・・・(4) 第4図においてビット選択回路35は、マスク・カウン
ト値を求めるだめのビット選択と共に、該パイプライン
で処理される要素に対応するマスク・ビットの選択も行
う。リクエスタ番号から処理要素に対応するマスク・ビ
ット位置を求め、該。
*VIR −αn+s −a +(2+ 1 )*VI Rx a
n+,-,+! l * V I Rg αr,,+,
-, +4*VIR+(-1)*VIR...(4) In FIG. 4, the bit selection circuit 35 corresponds to the element to be processed in the pipeline, as well as the bit selection for determining the mask count value. Also performs mask bit selection. The mask bit position corresponding to the processing element is determined from the requester number.

マスク・ビットを抽出し、AND回路4oに送る。The mask bits are extracted and sent to AND circuit 4o.

AND回路40では、ランチ39からのメモリ・リクエ
スト発行信号とビット選択回路35からのマスクeビッ
トとのANDがとられ、メモリ・リクエストとしてバス
16に乗せて主記憶1に送出される。処理すべき要素に
対応するマスク番ビットが117の場合にはメモリ争リ
クエストが発行され、該当する要素が主記憶1から読み
出されたり、主記憶1に書き込まれたりする。マスク・
ビットが0 の場合にはメモリ争リクエストは抑止され
る。
In the AND circuit 40, the memory request issue signal from the launch 39 and the mask e bit from the bit selection circuit 35 are ANDed and sent to the main memory 1 on the bus 16 as a memory request. If the mask number bit corresponding to the element to be processed is 117, a memory contention request is issued, and the corresponding element is read from or written to the main memory 1. mask·
If the bit is 0, memory contention requests are suppressed.

メモリ会リクエスト発行の際には、キャリー・セーブ拳
アダーCS A 29とパラレル争アダーPA3oとに
よって計算された主記憶アドレスがバス13に乗せてメ
モリ・リクエストと共に主記憶1に対して送出される。
When issuing a memory session request, the main memory address calculated by the carry save fist adder CS A 29 and the parallel conflict adder PA3o is sent to the main memory 1 along with the memory request on the bus 13.

レングス・レジスタV L R24にはロード・ストア
処理に先き立ってデータの長さが格納されている。ロー
ド0ストア処理が1ステ一ジ進行するごとにレングス・
レジスタVLRの内容は減算回路28 Kよって−8さ
れる。ロード拳ストア処理の1ステージにおいて、パイ
プラインの本数8と同じ個数の要素が一度に処理される
ので−8する。
The length register VLR24 stores the length of data prior to load/store processing. Each time the load 0 store processing progresses one stage, the length
The contents of register VLR are subtracted by -8 by subtraction circuit 28K. In one stage of the load store process, the same number of elements as the number of pipelines (8) are processed at once, so the value is -8.

すべての要素についてロード・ストア処理が実行された
時点で減算結果は0以下となる。そこで符号検出回路3
1にて処理の終了を検出し、終了信号38によってラッ
チ40をJtにリセットし、AND回路40を閉じる。
When the load/store process is executed for all elements, the subtraction result becomes 0 or less. Therefore, the sign detection circuit 3
1, the end of the process is detected, the end signal 38 resets the latch 40 to Jt, and the AND circuit 40 is closed.

AND回路40が閉じられたことによって以後のメモリ
・リクエスト送出が停止される。
Since the AND circuit 40 is closed, subsequent sending of memory requests is stopped.

本実施例によれば、主記憶上の圧縮されたデータとベク
トル・レジスタ上の伸張されたデータとの間のデータ転
送を並列に設置され複数のロード・ストア・パイプライ
ンにより実行可能となる。
According to this embodiment, data transfer between compressed data on the main memory and decompressed data on the vector register can be executed by a plurality of load/store pipelines installed in parallel.

このためデータ転送速度をパイプラインの本数と同じだ
け向上させることができる。
Therefore, the data transfer speed can be increased by the same amount as the number of pipelines.

〔発明の効果〕〔Effect of the invention〕

本発明によれば、要素並列の多重ロード・ストア会パイ
プラインを具(イaするベクトル処理装置において、主
記憶上に圧縮されたデータとベクトル・レジスタ上が伸
張されたデータとの間のデータ転送についても要素並列
の形態で実行することが可能となる。したがって通常の
単純ロードφストアと同様に並列に設置されたパイプラ
イン本数分のデータ転送速度を得ることができる。これ
によって圧縮・伸張型のデータ・アクセスを必要とする
疎行列の行列計算が高速に処理される。
According to the present invention, in a vector processing device having an element-parallel multiple load/store pipeline, data between data compressed on main memory and data decompressed on a vector register is provided. Transfer can also be executed in element parallel form.Therefore, similar to normal simple load φ store, it is possible to obtain the data transfer speed equivalent to the number of pipelines installed in parallel.This allows compression/decompression Matrix calculations on sparse matrices that require type data access are processed quickly.

【図面の簡単な説明】[Brief explanation of drawings]

第1図は本発明の一実施例のベクトル処理装置の全体構
成図、第2図は主記憶上に圧縮されたデータをベクトル
・レジスタ上に伸張してロードする処理を示す図、第6
図はベクトル・レジスタ上の伸張されたデータを主記憶
に圧縮してストアする処理を示す図、第4図はロード・
ストア・パイプラインのアドレス計算回路の構成を示す
図、第5図はアドレス計算の一例を示す図である。 2・・・ベクトル・レジスタ、 3・・・マスクのレジスタ、 4・・・ロード・ストア・パイプライン、21・・・ア
ドレス・レジスタ、 22・・・インクリメント・レジスタ、35.36・・
・ビット選択回路、 25・・・カウンタ、 26.27・・・倍数発生回路、 29・・・キャリー・セーブ・アダー、30・・・パラ
レル・アダー。 高 1 図 、1 第 2 図 第3図 第4図
FIG. 1 is an overall configuration diagram of a vector processing device according to an embodiment of the present invention, FIG. 2 is a diagram showing the process of decompressing and loading data compressed on the main memory onto a vector register, and FIG.
The figure shows the process of compressing and storing the decompressed data on the vector register in main memory.
FIG. 5 is a diagram showing the configuration of the address calculation circuit of the store pipeline, and is a diagram showing an example of address calculation. 2...Vector register, 3...Mask register, 4...Load/store pipeline, 21...Address register, 22...Increment register, 35.36...
・Bit selection circuit, 25...Counter, 26.27...Multiple generation circuit, 29...Carry save adder, 30...Parallel adder. High 1 Figure, 1 Figure 2 Figure 3 Figure 4

Claims (1)

【特許請求の範囲】[Claims] 1、複数の演算器と複数のベクトル・レジスタと、デー
タの有効性を示す複数のベクトル・マスク・レジスタと
、複数のロード・ストア・パイプラインと、インターリ
ーブされた主記憶で構成されるベクトル処理装置におい
て、主記憶上の圧縮されたデータとベクトル・レジスタ
上の伸張されたデータとの間のデータ転送を行うために
、該パイプラインにて処理すべきデータを識別するため
の該パイプラインに対して与えられるリクエスタ番号に
基づいてマスク・レジスタの内容を選択するビット選択
回路と、選択されたビット列中の有効ビット数をカウン
トするカウンタと、カウント数に基づきデータの間隔値
、すなわち、インクリメントの倍数を複数組発生する倍
数発生回路と、該パイプラインにて前の処理ステージで
処理したデータの主記憶アドレスと該複数組のインクリ
メントの倍数とを同時に加算して次ステージで処理すべ
きデータの主記憶アドレスを計算する多入力の加算器を
有し、要素並列の多重パイプライン動作による上記圧縮
・伸張型データ転送を行うことを特徴とするベクトル処
理装置。
1. Vector processing consisting of multiple arithmetic units, multiple vector registers, multiple vector mask registers that indicate data validity, multiple load/store pipelines, and interleaved main memory. In the apparatus, in order to transfer data between compressed data on main memory and decompressed data on a vector register, a method for identifying data to be processed in the pipeline in order to transfer data between compressed data on main memory and decompressed data on a vector register. a bit selection circuit that selects the contents of the mask register based on the requester number given to the bit string; a counter that counts the number of valid bits in the selected bit string; A multiple generation circuit that generates a plurality of multiples, and a multiplex generation circuit that simultaneously adds the main memory address of the data processed in the previous processing stage and the increment multiple of the multiple sets in the pipeline to generate the data to be processed in the next stage. 1. A vector processing device comprising a multi-input adder for calculating a main memory address, and performing the compression/expansion type data transfer using element parallel multiple pipeline operations.
JP6838786A 1986-03-28 1986-03-28 Vector processor Granted JPS62226275A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6838786A JPS62226275A (en) 1986-03-28 1986-03-28 Vector processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6838786A JPS62226275A (en) 1986-03-28 1986-03-28 Vector processor

Publications (2)

Publication Number Publication Date
JPS62226275A true JPS62226275A (en) 1987-10-05
JPH0434191B2 JPH0434191B2 (en) 1992-06-05

Family

ID=13372256

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6838786A Granted JPS62226275A (en) 1986-03-28 1986-03-28 Vector processor

Country Status (1)

Country Link
JP (1) JPS62226275A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011511986A (en) * 2008-02-11 2011-04-14 リニア アルジェブラ テクノロジーズ リミテッド Processor
JP2016029598A (en) * 2011-04-01 2016-03-03 インテル コーポレイション Systems, apparatuses, and methods for expanding memory source into destination register and compressing source register into destination memory location
CN108021393A (en) * 2017-12-15 2018-05-11 北京中科寒武纪科技有限公司 A kind of computational methods and Related product

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59188779A (en) * 1983-04-11 1984-10-26 Fujitsu Ltd Vector processor
JPS6072071A (en) * 1983-09-28 1985-04-24 Nec Corp Vector processing device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59188779A (en) * 1983-04-11 1984-10-26 Fujitsu Ltd Vector processor
JPS6072071A (en) * 1983-09-28 1985-04-24 Nec Corp Vector processing device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011511986A (en) * 2008-02-11 2011-04-14 リニア アルジェブラ テクノロジーズ リミテッド Processor
JP2016029598A (en) * 2011-04-01 2016-03-03 インテル コーポレイション Systems, apparatuses, and methods for expanding memory source into destination register and compressing source register into destination memory location
CN108021393A (en) * 2017-12-15 2018-05-11 北京中科寒武纪科技有限公司 A kind of computational methods and Related product
CN108021393B (en) * 2017-12-15 2020-10-27 安徽寒武纪信息科技有限公司 Calculation method and related product

Also Published As

Publication number Publication date
JPH0434191B2 (en) 1992-06-05

Similar Documents

Publication Publication Date Title
EP0208870B1 (en) Vector data processor
US4949292A (en) Vector processor for processing recurrent equations at a high speed
JPH0562387B2 (en)
US4466077A (en) Method and apparatus for division employing associative memory
JPS6028015B2 (en) information processing equipment
US6449706B1 (en) Method and apparatus for accessing unaligned data
US20060059221A1 (en) Multiply instructions for modular exponentiation
JPS5975365A (en) Vector processing device
US4371951A (en) Apparatus for converting serial input sparse vector format to parallel unpacked format for input to tandem arithmetic logic units
JPH10187661A (en) Method for entering scalar value of computer into vector
US4710867A (en) Vector processing system
US5953240A (en) SIMD TCP/UDP checksumming in a CPU
JPS62226275A (en) Vector processor
JPS59114677A (en) Vector processor
JPS5834037B2 (en) address calculation device
JPS5958580A (en) Masked vector arithmetic processor
JPH0452488B2 (en)
JP3278441B2 (en) Vector processing equipment
US7590677B2 (en) Processor with summation instruction using overflow counter
JP2542120B2 (en) Information processing device
JP3723311B2 (en) Parallel processor
JPS6058503B2 (en) Data processing control method
JP2926951B2 (en) Save / restore register address generation circuit
JPH03263264A (en) Information processor
JPS58114387A (en) Data processor having buffer memory