JPH03191448A - Vector data buffer circuit - Google Patents
Vector data buffer circuitInfo
- Publication number
- JPH03191448A JPH03191448A JP1331564A JP33156489A JPH03191448A JP H03191448 A JPH03191448 A JP H03191448A JP 1331564 A JP1331564 A JP 1331564A JP 33156489 A JP33156489 A JP 33156489A JP H03191448 A JPH03191448 A JP H03191448A
- Authority
- JP
- Japan
- Prior art keywords
- data
- bank
- vector
- buffer
- storage device
- 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
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 116
- 230000015654 memory Effects 0.000 claims abstract description 49
- 238000010586 diagram Methods 0.000 description 12
- 238000000034 method Methods 0.000 description 5
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 2
- 239000012536 storage buffer Substances 0.000 description 2
- YQENSTCYDXQBAU-UHFFFAOYSA-N OBOO Chemical compound OBOO YQENSTCYDXQBAU-UHFFFAOYSA-N 0.000 description 1
- 241000282887 Suidae Species 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Landscapes
- Complex Calculations (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
【発明の詳細な説明】
[産業上の利用分野]
主記憶装置のデータの写しを格納するバッファメモリと
主記憶装置との間のデータ転送は、通常1ブロック単位
(lブロックは、例えば64バイト)で行われ、同一コ
ラム間でデータ転送が行われる。また、バッファメモリ
には、別個にアドレスアレス(インデックスアレイ、デ
ータディレクトリ)と呼ばれる置数器が設けられ、バッ
ファメモリの該当位置に蓄えられたブロックの番号を記
憶する。番号の連続したブロックは、異なるコラムに属
するため、通常各コラムの負荷は平均され、その結果、
所要のブロックがバッファメモリに存在する確率は90
%程度となっている。Detailed Description of the Invention [Field of Industrial Application] Data transfer between the main memory and a buffer memory that stores a copy of data in the main memory is usually performed in units of one block (one block is, for example, 64 bytes). ), and data transfer is performed between the same columns. The buffer memory is also separately provided with a digitizer called an address address (index array, data directory), which stores the number of the block stored at a corresponding location in the buffer memory. Since sequentially numbered blocks belong to different columns, the load on each column is usually averaged, resulting in
The probability that the required block exists in the buffer memory is 90
It is about %.
一方、主記憶装置では、記憶装置を複数個のモジュール
に分割し、連続番地を扱う場合に、全モジュールを並列
動作させてモジュール数の倍数だけ高速に転送できるよ
うに、メモリインタリーピング方式を採用している。On the other hand, in the main memory, when the storage device is divided into multiple modules and sequential addresses are handled, a memory interleaving method is adopted so that all modules can operate in parallel and data can be transferred at high speed by a multiple of the number of modules. are doing.
ところで、最近の記憶制御装置では、システム全体の性
能を向上させるため、複数の命令プロセッサ、入出カプ
ロセッサが接続されてお番ハ主記憶装置の処理スルーブ
ツトを向上させるため、それぞれ独立に動作可能な多数
の記憶バンクを設けている。例えば、ベクトル計算機等
では、複数台のプロセッサが1つの共通主記憶装置に接
続されており、これらのプロセッサは並列に処理するこ
とにより、各々が共有の主記憶装置にアクセスして高速
にデータを読み出す必要がある。By the way, in recent storage control devices, in order to improve the performance of the entire system, multiple instruction processors and input/output processors are connected, and in order to improve the processing throughput of the main storage device, each of them can operate independently. It has many memory banks. For example, in a vector computer, multiple processors are connected to one common main memory, and by processing these processors in parallel, each processor can access the shared main memory and read data at high speed. It needs to be read out.
しかし、主記憶装置に、命令プロセッサが例えば4台接
続されている場合には、そのスルーブツト向上のために
主記憶装置は4ボートに分割され、各ボートはそれぞれ
独立に動作するが、ある命令プロセッサから発行された
要求の順序でデータが返送されるという保証は全くない
。すなわち、ボート0とボートlとでは、どちらが早く
データが読み出されるかは全く不明である。ベクトル計
算等を複数の命令プロセッサで分担して処理する場合に
は、命令プロセッサから発行された配列データ読み出し
要求列に対するデータ読み出し順序が異なると、動作に
障害を来たすことになる。However, if, for example, four instruction processors are connected to the main memory, the main memory is divided into four boats to improve throughput, and each boat operates independently. There is no guarantee that data will be returned in the order of requests issued. That is, it is completely unknown which of the ports 0 and 1 reads data faster. When vector calculations and the like are shared and processed by a plurality of instruction processors, if the data read order for array data read request sequences issued by the instruction processors is different, this will cause problems in operation.
このような記憶装置からの読み出しデータをリクエスト
発行順にオペランドバッファに格納するための装置とし
ては、従来、例えば、特開昭60−136849号公報
に記載されている方法がある。上記公報に記載の方法で
は、リクエスト発行時にバッファメモリの格納番地情報
を付加して発行し、記憶装置からデータが読み出されて
バッファメモリに返送される際に、その情報を付加して
返送することにより、その番地情報に基づいてバッファ
メモリに格納している。As a conventional device for storing read data from such a storage device in an operand buffer in the order in which requests are issued, there is a method described in, for example, Japanese Patent Laid-Open No. 136849/1983. In the method described in the above publication, when issuing a request, the storage address information of the buffer memory is added and issued, and when the data is read from the storage device and sent back to the buffer memory, that information is added and sent back. Accordingly, the data is stored in the buffer memory based on the address information.
r発明が解決゛しようとする課題〕
上記公報に記載の方法では、す、クエスト発行時に格納
バッファ番地情報を付加して、データ読み出し時にその
情報を一緒に返すようにしているが、この方法では、記
憶装置側で、接続されている命令プロセッサの台数分の
論理を保持する必要があるため、ハードウェア量の増加
が膨大となる。すなわち、記憶装置に接続されるプロセ
ッサの数だけ、バッファの格納位置情報を記憶装置内で
持ち回る必要があるため、最近のようにプロセッサの接
続数が多い記憶装置では、そのハードウェア量が膨大と
なってしまい、実現不可能となる。Problems to be Solved by the Invention In the method described in the above publication, storage buffer address information is added when a quest is issued, and this information is returned together when reading data. Since it is necessary to hold logic for the number of connected instruction processors on the storage device side, the amount of hardware increases enormously. In other words, it is necessary to circulate buffer storage position information within the storage device for the number of processors connected to the storage device, so in recent storage devices with a large number of connected processors, the amount of hardware required is enormous. Therefore, it becomes impossible to realize.
本発明の目的は、このような従来の課題を解決し、ハー
ドウェア量の増加は殆んどなく、読み出し配列データの
順序性を保証することができるベクトルデータバッファ
装置を提供することにある。SUMMARY OF THE INVENTION An object of the present invention is to provide a vector data buffer device that can solve the above-mentioned conventional problems and guarantee the order of read array data with almost no increase in the amount of hardware.
上記目的を達成するため、(イ)本発明のベクトルデー
タバッファ装置は、記憶装置上の配列データのデータ幅
と、配列データの複数個の中の先頭アドレスと、配列デ
ータ相互間のデータ間隔とにより、ベクトルデータバッ
ファ側のバンク数を求め、記憶装置とベクトルデータバ
ッファの両者の対応するバンク間を接続させるスイッチ
手段と、スイッチ手段の接続制御により入力されたデー
タを格納するオペランドバッファの複数個のバンクメモ
リと、バンクメモリにそれぞれ格納されるデータ数を計
数するバンク毎のデータ計数手段とを設け、記憶装置の
各バンクから入力されたデータを、ベクトルデータバッ
ファの対応するバンクの上記データ計数手段が示す位置
に格納することに特徴がある。また、4口)本発明のス
イッチ装置は、複数個の配列データ相互間が一定間隔で
ある場合、記憶装置のバンクと各配列データとの対応が
リピート性を備えていることを利用して、記憶装置の各
バンクからのデータパスのスイッチを、ベクトルデータ
バッファの対応するバンクに接続させるように選択制御
することに特徴がある。また、(ハ)本発明のベクトル
演算装置は、主記憶装置からの配列データをベクトルデ
ータバッファに格納し、次に、ベクトルデータバッファ
に格納された配列データを順次取り出して演算器に出力
し、演算器では入力された配列データに対して演算を行
い、演算の結果をベクトルレジスタに格納することに特
徴がある。さらに、(ニ)本発明のベクトルレジスタは
、ベクトルデータバッファ装置をベクトルレジスタとし
て用い、ベクトルデータバッファは主記憶装置からの配
列データをスイッチ手段の選択制御により対応するバン
クに格納した後、配列データを取り出して演算器に出力
し、演算器では入力された配列データに対して演算を行
い、演算の結果をスイッチ手段の選択制御により該ベク
トルデータバッファ装置の指定されたバンクに格納する
ことに特徴がある。In order to achieve the above object, (a) the vector data buffer device of the present invention has the following features: , the number of banks on the vector data buffer side is determined, a switch means connects the corresponding banks of both the storage device and the vector data buffer, and a plurality of operand buffers that store input data are controlled by the connection control of the switch means. bank memories and data counting means for each bank to count the number of data stored in each bank memory, and the data counting means for each bank counts the data input from each bank of the storage device to the data counting means of the corresponding bank of the vector data buffer. The feature is that it is stored in the position indicated by the means. Furthermore, the switch device of the present invention utilizes the fact that the correspondence between the bank of the storage device and each array data has a repeatability when there is a constant interval between multiple pieces of array data. The feature is that the data path switch from each bank of the storage device is selectively controlled so as to be connected to the corresponding bank of the vector data buffer. Furthermore, (c) the vector arithmetic device of the present invention stores array data from the main memory in a vector data buffer, and then sequentially retrieves the array data stored in the vector data buffer and outputs it to the arithmetic unit; The arithmetic unit is characterized in that it performs arithmetic operations on input array data and stores the results of the arithmetic operations in vector registers. Furthermore, (d) the vector register of the present invention uses a vector data buffer device as a vector register, and the vector data buffer stores the array data from the main memory in the corresponding bank under selection control of the switch means, and then stores the array data in the corresponding bank. is extracted and output to a computing unit, the computing unit performs arithmetic operations on the input array data, and stores the result of the arithmetic operation in a specified bank of the vector data buffer device under selection control of the switch means. There is.
本発明においては、オペランドバッファ側に、配列デー
タの先頭アドレスとデータ間隔を記憶するとともに、オ
ペランドバッファの各バンク毎のデータ数を計数するカ
ウンタを設けておき、これらの情報により記憶装置から
読み出された配列データの格納バッファ位置を高速に求
めるようにしている。すなわち、予めオペランドバッフ
ァをバンク対応の一定周期で繰り返される周期分のバン
クに分けておき、主記憶上のデータ先頭アドレスとイン
クリメント値から入力データの格納すべきバンクが求め
られるようにしておく。In the present invention, a counter is provided on the operand buffer side to store the start address and data interval of the array data, and also to count the number of data for each bank of the operand buffer, and this information is used to read data from the storage device. The storage buffer location of the array data is quickly determined. That is, the operand buffer is divided in advance into banks that are repeated at a constant period corresponding to the banks, and the bank in which the input data is to be stored can be determined from the data start address on the main memory and the increment value.
これにより、記憶バンク間ではデータの順序性の保証が
なくても、順序性の保証されたバッファデータを得るこ
とができる。また、ハードウェアの増加は全てオペラン
ドバッファ側に設けられるので、記憶装置側のハードウ
ェア量の増加は殆んどない。As a result, buffer data with guaranteed order can be obtained even if the order of data is not guaranteed between storage banks. In addition, since all the increase in hardware is provided on the operand buffer side, there is almost no increase in the amount of hardware on the storage device side.
以下、本発明の実施例を、図面により詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
第2図は、本発明の対象となるベクトルデータバッファ
装置を含むシステム要部のブロック図である。FIG. 2 is a block diagram of main parts of a system including a vector data buffer device to which the present invention is applied.
第2図において、15は4個のバンクを備えた記憶装置
、17は記憶装置のバンクと対応付けられたバンクを備
えるベクトルオペランドバッファ、18はベクトルオペ
ランドバッフ、ア17とベクトルレジスタ16のデータ
を演算する演算器、16は演算器18による演算結果を
格納するとともに、演算器18への入力データを与える
ベクトルレジスタである。In FIG. 2, 15 is a storage device with four banks, 17 is a vector operand buffer with banks associated with the banks of the storage device, and 18 is a vector operand buffer. The arithmetic unit 16 is a vector register that stores the result of the arithmetic operation by the arithmetic unit 18 and provides input data to the arithmetic unit 18 .
記憶装置I5のバンクとバッファ17のバンクとを対応
付けるのは、ベクトルオペランドバッファスフ内に設け
られたクロスバ(第1図参照)である。記憶装置15か
も取り出されたデータは、ベクトルオペランドバッファ
17で演算器に並び換えられた後、演算器18に送出さ
れる。A crossbar (see FIG. 1) provided in the vector operand buffer space associates the banks of the storage device I5 with the banks of the buffer 17. The data taken out from the storage device 15 is rearranged by the arithmetic units in the vector operand buffer 17 and then sent to the arithmetic units 18.
ところで、配列データのような一定間隔で配列されてい
るデータを得るため記憶装置上5ヘアクセスする場合、
リクエスト発行順と記憶装置15のバンクの対応は、あ
る一定の周期で繰り返されるという性質がある。そこで
、オペランドバッフア17をこの繰り返し周期分のバン
クに分けると、オペランドバッファ17の同一バンク内
のエントリへのデータは、同一記憶バンクから到来する
ことになる。By the way, when accessing the storage device 5 to obtain data arranged at regular intervals such as array data,
The correspondence between the request issuing order and the banks of the storage device 15 has a property that it is repeated at a certain period. Therefore, if the operand buffer 17 is divided into banks corresponding to this repetition period, data to entries in the same bank of the operand buffer 17 will come from the same storage bank.
オペランドバッファ17においては、主記憶装置111
5へのアクセスに先立って、オペランドバッファ17の
各バンクを、主記憶装置15上のデータ先頭アドレスと
インクリメント値から決定される記憶バンクに接続して
おく。データがオペランドバッファ17に到着すると、
接続されたバッファのバンクに順番に格納される。バッ
ファ17の各バンク毎に、到着データ数を計数するカウ
ンタを設けておき、これらのカウンタが示す位置に入力
データを格納する。これによって、記憶バンク間では、
データがリクエストした順序で到着しなくても、オペラ
ンドバッファ17には順序性が保証されたデータが格納
される。In the operand buffer 17, the main memory 111
5, each bank of the operand buffer 17 is connected to a storage bank determined from the data start address and increment value on the main storage device 15. When the data arrives at the operand buffer 17,
Stored sequentially in banks of connected buffers. A counter for counting the number of arriving data is provided for each bank of the buffer 17, and input data is stored at the position indicated by these counters. As a result, between memory banks,
Even if the data does not arrive in the requested order, the operand buffer 17 stores data whose order is guaranteed.
第1図は、本発明の一実施例を示すベクトルオペランド
バッファの全構成図であり、第3図は、確記憶装置にお
ける8バイトデ一タ配列とバンクの割り当てを示す図で
ある。FIG. 1 is a diagram showing the entire configuration of a vector operand buffer showing one embodiment of the present invention, and FIG. 3 is a diagram showing an 8-byte data arrangement and bank assignment in a secure storage device.
第1図において、1〜4は記憶装置の各バンクにおける
データ端子、5は不完全クロスバのセレクタ信号生成論
理回路、6は論理回路5に制御されてON、OFFする
クロスバのスイッチ、7〜lOはベクトルオペランドバ
ッファのバンク、11〜14はベクトルオペランドバッ
ファ内のカウンタ、71,81.91,101は各バン
ク内のバッファメモリ、72,82,92,102は+
1する加算器である。In FIG. 1, 1 to 4 are data terminals in each bank of the storage device, 5 is an incomplete crossbar selector signal generation logic circuit, 6 is a crossbar switch that is turned on and off under the control of the logic circuit 5, and 7 to lO is a bank of the vector operand buffer, 11 to 14 are counters in the vector operand buffer, 71, 81, 91, and 101 are buffer memories in each bank, and 72, 82, 92, and 102 are +
This is an adder that adds 1.
主記憶装置のバンクO〜3の各データ端子1〜4よりデ
ータが送出されて、ベクトルオペランドバッファのクロ
スバスイッチ6にこれが到着すると、先頭アドレスとイ
ンクリメント値を記憶している論理回路5からの制御信
号により、クロスバスイッチ6が動作し、入力データは
各ブロック分けされた1つのバンク7〜10に分配され
る。Data is sent from each data terminal 1 to 4 of banks O to 3 of the main storage device, and when it arrives at the crossbar switch 6 of the vector operand buffer, control from the logic circuit 5 that stores the start address and increment value is performed. The crossbar switch 6 is operated by the signal, and the input data is distributed to one bank 7 to 10 divided into blocks.
バンク7〜10内では、カウンタ11〜14により指定
されたバッファメモリ71〜101に、入力データが格
納される。同時に、カウンタ11〜14が+1演算器9
2〜+02でインクリメントされる。なお、カウンタl
】〜14は、バンク内の何番目のメモリに格納するかを
指定するものである。これによって、主記憶装置から到
着したデータは、4バンクが独立して動作することによ
り、同時にバッファメモリに格納される。In banks 7-10, input data is stored in buffer memories 71-101 designated by counters 11-14. At the same time, the counters 11 to 14 are +1 to the computing unit 9.
It is incremented from 2 to +02. In addition, the counter l
] to 14 designate the memory number in the bank in which the data is to be stored. As a result, data arriving from the main memory is simultaneously stored in the buffer memory by the four banks operating independently.
第3図には、主記憶装置側で各バンクに割り当てられた
8バイトずつのデータ配列が示されている。主記憶では
、32バイト境界で分割され、さらに各々8バイトの領
域に4分割されて、先頭からバンク0、バンク1、バン
ク2、バンク3にそれぞれ対応させておく。すなわち、
第3図においては、命令プロセッサからのリクエストに
より、バイトO(8〜16)をバンク1に、バイト1(
32〜40)をバンクOに、バイト2(56〜64)を
バンク3に、バイト3(80〜88)をバンク2に、バ
イト4(104〜112)をバンク1に、それぞれ割り
当てる。これから明らなように、先頭アドレスを8番地
、先頭アドレス8番地から次のバンク割り当ての先頭3
2番地までのインクリメント値(周期)は3X8バイト
=24バイトである。FIG. 3 shows an 8-byte data array allocated to each bank on the main memory side. The main memory is divided at 32-byte boundaries and further divided into four 8-byte areas, each corresponding to bank 0, bank 1, bank 2, and bank 3 from the beginning. That is,
In FIG. 3, byte O (8-16) is placed in bank 1 by a request from the instruction processor, and byte 1 (
32 to 40) to bank O, byte 2 (56 to 64) to bank 3, byte 3 (80 to 88) to bank 2, and byte 4 (104 to 112) to bank 1, respectively. As is clear from this, the first address is address 8, and from the first address 8, the first 3 of the next bank assignment.
The increment value (period) up to address 2 is 3×8 bytes=24 bytes.
主記憶上の割り当てのもとでは、このように一定のイン
クリメント値を持ったデータとバンクとの対応が、一定
のリピート性を持っている。第1図の場合、クロスバ論
理回路5に先頭アドレス8番地と、インクリメント値2
4バイトを記憶させておくことにより、バイトOがバン
クl、バイトlがバンク0、バイト2がバンク3、バイ
ト3がバンク2.バイト4がバンクlに、それぞれ割り
当てられるので、読み出されるバイトデータの順序性が
保証されなくても、−各バイトデータは独立にそのバン
クから対応する同じ番号のオペランドバッファのバンク
に入力され、そのバッファメモリに格納されることにな
る。Under the allocation in the main memory, the correspondence between data having a fixed increment value and banks has a certain repeatability. In the case of FIG. 1, the crossbar logic circuit 5 has a starting address of 8 and an increment value of 2.
By storing 4 bytes, byte O is assigned to bank 1, byte 1 is assigned to bank 0, byte 2 is assigned to bank 3, byte 3 is assigned to bank 2, and so on. Since byte 4 is assigned to each bank l, even though the ordering of the byte data read is not guaranteed - each byte data is input independently from that bank to the corresponding bank of the same numbered operand buffer; It will be stored in buffer memory.
いま、ベクトル要素の番号付けを、先頭から1゜0.2
,3. ・・・・としたとき、ベクトルの先頭アドレ
ス(0番要素アドレス)をAと置き、インクリメント値
をINCと置く。Now, the vector elements are numbered 1°0.2 from the beginning.
,3. ..., the start address of the vector (number 0 element address) is set as A, and the increment value is set as INC.
0番目とn番目のベクトル要素でアクセスする主記憶ア
ドレスが、モジュロ32で一致するためには、下記(1
)式、(2)式が成立すればよい。In order for the main memory addresses accessed by the 0th and nth vector elements to match modulo 32, the following (1
) and (2) should hold true.
A+INCXn=A+32Xm−(1)TNCXn=3
2Xm HHHHH+ H+ ・(2)二こで
、mは任意の整数である。上式(1)(2)で、ベクト
ル要素を8バイトにした場合、インクリメント値INC
を、
INCミ8×△(Δ=0.±1.±2.・・・)と置け
ば、次式が成立する。A+INCXn=A+32Xm-(1)TNCXn=3
2Xm HHHHH+ H+ (2) where m is any integer. In the above formulas (1) and (2), if the vector element is 8 bytes, the increment value INC
If we set INCmi8×△(Δ=0.±1.±2..), the following equation holds true.
ΔXn==4Xm ・ ・ ・ ・ ・ ・ ・
・ ・ ・ ・(3)△が任意の整数であるとき、上式
(3)を満たすnの最小値は4である。従って、バンク
のアクセスパターンは4要素毎にリピートする。ΔXn==4Xm ・ ・ ・ ・ ・ ・ ・
・ ・ ・ ・(3) When Δ is an arbitrary integer, the minimum value of n that satisfies the above formula (3) is 4. Therefore, the bank access pattern repeats every four elements.
すなわち、ベクトル要素を+0.4,8.l 2゜・・
・l、 (+、5,9,13. ・・・・)。That is, the vector elements are +0.4, 8. l 2゜...
・l, (+, 5, 9, 13. ...).
(2,6,10,14,・・・・)、(3,7゜11、
+5. ・・・・・)の4集合に分けると、各集合中
の要素は同一のバンクからデータが到来することになる
。このように、記憶装置のデータ境界が32バイト、ベ
クトル要素が8バイトのときには、4バンク、8バンク
、12バンク、・・・に分けることにより、一定周期毎
のデータバイトは同一のバンクから入力する。(2,6,10,14,...), (3,7°11,
+5. ...), the elements in each set will receive data from the same bank. In this way, when the data boundary of the storage device is 32 bytes and the vector element is 8 bytes, by dividing it into 4 banks, 8 banks, 12 banks, etc., data bytes at regular intervals can be input from the same bank. do.
この場合、1つのバンク内では、データの順序性が保証
されているので、到着データは順番にバッファメモリに
格納していけばよい。In this case, since the order of data is guaranteed within one bank, the arriving data may be stored in the buffer memory in order.
第4図は、8バイトデータの場合のバンクとベクトルオ
ペランドバッファとの対応関係を示す図である。FIG. 4 is a diagram showing the correspondence between banks and vector operand buffers in the case of 8-byte data.
第4図において、23〜26は記憶装置のバンク0〜3
におけるデータ出力端子であり、19〜22はベクトル
オペランドバッファのバンクであり、27〜30は各バ
ンク内のカウンタであり、31〜34は各バンク内のバ
ッファメモリである。In FIG. 4, 23-26 are banks 0-3 of the storage device.
19 to 22 are vector operand buffer banks, 27 to 30 are counters in each bank, and 31 to 34 are buffer memories in each bank.
第4図のデータ間係は、第3図と対応しており、記憶装
置側のバンクOからはバイトデータ1,5゜9、・・・
が、バンクlがらはバイトデータ0゜4.8.・・・・
が、バンク2がらはバイトブタ3,7.l 1,15.
・・・・が、バンク3がらはバイトデータ2,6,
10,14. ・・・・が、それぞれ送出される。こ
れに対して、第4図の場合、ベクトルオペランドバッフ
ァ側では、記憶装置のバンクOをオペランドバッファバ
ンク20に、バンク1をオペランドバッファバンク19
に、バンク2をオペランドバッファバンク22に、バン
ク3をオペランドバッファバンク21に、それぞれ接続
する。このように、バンク分けされたオペランドバッフ
ァバンク19〜22と記憶装置のバンク0〜3の対応が
行われる。The data relationships in FIG. 4 correspond to those in FIG. 3, and from bank O on the storage device side, byte data 1,5°9, . . .
However, bank l has byte data 0°4.8.・・・・・・
However, bank 2 is full of bite pigs 3, 7 . l 1,15.
...but bank 3 contains byte data 2, 6,
10,14. ... are sent respectively. On the other hand, in the case of FIG. 4, on the vector operand buffer side, bank O of the storage device is set to operand buffer bank 20, and bank 1 is set to operand buffer bank 19.
, bank 2 is connected to operand buffer bank 22, and bank 3 is connected to operand buffer bank 21, respectively. In this way, the operand buffer banks 19 to 22, which are divided into banks, correspond to the banks 0 to 3 of the storage device.
従って、オペランドバッファ31〜34は、0゜4.8
.・・・番目のバッファメモリ31からなるバング19
.1,5,9. ・・・番目のバッファメモリ32か
らなるバンク20.2,6,10゜・・・番目のバッフ
ァメモリ33からなるバンク21.3,7,11.
・・・番目のバッファメモリ34かもなるバンク22に
分割されている。このようにして、各々のバンク19〜
22は、データの読み出しに先立って、記憶装置側の特
定の1つバンク端子23〜26と接続されている。Therefore, the operand buffers 31 to 34 are 0°4.8
.. . . . Bang 19 consisting of the buffer memory 31
.. 1, 5, 9. . . . Banks 20.2, 6, 10°, . . . , banks 21.3, 7, 11 .
...th buffer memory 34 is also divided into banks 22. In this way, each bank 19~
22 is connected to one specific bank terminal 23 to 26 on the storage device side prior to data reading.
このようにして、特定のバンク端子23〜26と接続さ
れた後は、ベクトルオペランドバッファのバンク19〜
22毎に備えられたカウンタ27〜30により示される
位置に、到着したデータを格納すればよい。記憶装置の
1つのバンク端子23〜26が2個以上のベクトルオペ
ランドバッファのバンク19〜22と接続された場合に
は、小さい番号のバンクから大きい番号のバンクへ向う
順序で、1要素ずつ順番に格納していけばよい。In this way, after being connected to specific bank terminals 23 to 26, banks 19 to 26 of the vector operand buffer are connected to specific bank terminals 23 to 26.
Arrived data may be stored in the position indicated by the counters 27 to 30 provided for each 22. When one bank terminal 23 to 26 of the storage device is connected to two or more vector operand buffer banks 19 to 22, elements are sequentially transferred one element at a time from the lowest numbered bank to the highest numbered bank. Just store it.
第5図は、本発明の他の実施例を示す主記憶装置上のデ
ータ配置図であって、4バイトデータの主記憶装置上の
配置例を示している。また、第6図は、第5図の場合の
記憶装置とベクトルオペランドバッファとの接続図であ
る。FIG. 5 is a data arrangement diagram on the main memory device showing another embodiment of the present invention, and shows an example of arrangement of 4-byte data on the main memory device. Further, FIG. 6 is a connection diagram between the storage device and the vector operand buffer in the case of FIG. 5.
ここで、4バイトデータの場合の最適なバンク分は数を
検討する。両式(2)を再び使用する。Here, consider the optimal number of banks in the case of 4-byte data. We use both equations (2) again.
INCXn=32Xm HHHHH+ ’ ・(2)
上式(2)において、INCはインクリメント値で、ベ
クトル要素×Δであり、nは記憶装置にアクセスした順
序番号であり、mは任意の整数である。ここで、ベクト
ル要素を4バイトとすると、INC=4X△となるから
、上式(2)は次式になる。INCXn=32Xm HHHHH+ ' ・(2)
In the above equation (2), INC is an increment value, which is vector element x Δ, n is the sequence number of accessing the storage device, and m is an arbitrary integer. Here, if the vector element is 4 bytes, INC=4XΔ, so the above equation (2) becomes the following equation.
△xn=8Xm(△=0. ±1.±2. ・ −
)・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・
・(4)上式(4)を満たすnの最小値は8である。従
って、4バイトデータは、8個毎に記憶装置上のバンク
が繰り返されることになる。△xn=8Xm (△=0. ±1. ±2. ・ -
)・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・
- (4) The minimum value of n that satisfies the above formula (4) is 8. Therefore, for 4-byte data, banks on the storage device are repeated every eight.
記憶装置が4バンクの場合、第5図に示すように、jつ
のバンク当り2つのバッファバンクに接続すれば、先頭
アドレス8とインクリメント値12バイトをクロスバ論
理回路に記憶することにより、ベクトルオペランドバッ
ファの同一バンク内のエントリへのデータは、記憶装置
の同一バンクから到着することになる。If the storage device has 4 banks, as shown in Figure 5, by connecting two buffer banks per j banks, the vector operand buffer can be stored by storing the start address 8 and the increment value 12 bytes in the crossbar logic circuit. Data to entries within the same bank of will arrive from the same bank of storage.
第6図では、ベクトルオペランドバッファが8個のバン
ク43〜50に分割されている。バンク間の対応は、第
5図のデータ配置の場合を示している。ここでは、ベク
トルオペランドバッファのバンクの配列として、左上か
ら縦に、順次右方向にバンク番号を並べている。すなわ
ち、バンク43をバンク番号0に、バンク47をバンク
番号lに、バンク44をバンク番号2に、バンク48を
バンク番号3に、・・・・それぞれ割り付ける。In FIG. 6, the vector operand buffer is divided into eight banks 43-50. The correspondence between banks is shown in the case of the data arrangement shown in FIG. Here, as the bank arrangement of the vector operand buffer, bank numbers are arranged vertically from the upper left and sequentially to the right. That is, bank 43 is assigned to bank number 0, bank 47 is assigned to bank number 1, bank 44 is assigned to bank number 2, bank 48 is assigned to bank number 3, etc., respectively.
従って、第5図に示すように、記憶装置のバンク0の上
位4バイトの端子35にはベクトルオペランドバッファ
のバンク番号2(つまり、バンク44)を、同じく下位
4バイトの端子36にはバッファのバンク番号5(つま
り、バンク49)を5バンクlの上位4バイトの端子3
7にはバッファのバンク番号0(つまり、バンク43)
を、同じく下位4バイトの端子38にはバッファのバン
ク番号3(つまり、バンク48)を、°・・・順次接続
している。Therefore, as shown in FIG. 5, bank number 2 (that is, bank 44) of the vector operand buffer is assigned to the terminal 35 of the upper 4 bytes of bank 0 of the storage device, and the buffer number is assigned to the terminal 36 of the lower 4 bytes of the storage device. Set bank number 5 (that is, bank 49) to terminal 3 of the upper 4 bytes of bank 1.
7 is the buffer bank number 0 (i.e. bank 43)
Similarly, buffer bank number 3 (that is, bank 48) is sequentially connected to the terminal 38 of the lower 4 bytes.
このようにして、ベクトルオペランドバッファに格納さ
れたデータは、演算が開始されると、バッファメモリV
OBOO〜VOB5Fが順次取り出されて、演算器に送
出される。In this way, the data stored in the vector operand buffer is transferred to the buffer memory V when the operation is started.
OBOO to VOB5F are sequentially taken out and sent to the arithmetic unit.
なお、本実施例では、8バイト幅4バンク構成の記憶装
置から、8バイトデータ、4バイトデータを取り出すベ
クトルオペランドバッファについて述べたが、記憶装置
の構成および取り出すデータ幅は、これ以外の寸法のも
のでも全く同じようにして、本発明を適用することが可
能である。In addition, in this embodiment, a vector operand buffer was described that retrieves 8-byte data and 4-byte data from a storage device with an 8-byte width and 4-bank configuration, but the storage device configuration and the data width to be retrieved may be different from other dimensions. It is possible to apply the present invention in exactly the same way.
第7図は、本発明の他の実施例を示すベクトルオペラン
ドバッファの使用方法の説明図である。FIG. 7 is an explanatory diagram of a method of using a vector operand buffer showing another embodiment of the present invention.
第7図においては、ベクトルオペランドバッファ17a
を本来の機能回路として使用する以外に、ベクトルレジ
スタとしても使用する方法である。In FIG. 7, vector operand buffer 17a
In addition to using it as an original functional circuit, it is also used as a vector register.
従って、第2図のベクトルレジスタ16を除去して、演
算器18の出力データ線をベクトルオペランドバッファ
+7aの入力側に接続するとともに、演算器18に入力
する入力データ線もベクトルオペランドバッファ17a
の出力側に接続する。Therefore, the vector register 16 in FIG. 2 is removed, the output data line of the arithmetic unit 18 is connected to the input side of the vector operand buffer +7a, and the input data line input to the arithmetic unit 18 is also connected to the vector operand buffer 17a.
Connect to the output side of the
なお、ベクトルオペランドバッファ17aのバンク数n
のうち、m個をベクトルオペランドバッファとして使用
し、残りの(n−m)個をベクトルレジスタとして使用
することになる。Note that the number of banks n of the vector operand buffer 17a
Of these, m are used as vector operand buffers, and the remaining (n-m) are used as vector registers.
このように、本発明においては、複数の独立動作が可能
な記憶バンクから構成される装置り、一定間隔の連続デ
ータを取り出して,高速バッファに格納するシステムに
適用すれば、極めて有効である。すなわち、データのリ
クエスト番号とバンクの対応にリピート性があることを
利用して、リクエスト番号のような情報を要求に付加せ
ずに、先頭アドレスとインクリメント値を記憶してクロ
スバスイッチで記憶装置のバンクとバッファバンクとを
対応付けて接続しておく。これにより、記憶装置の4バ
ンクが独立して同時にオペランドバッファにデータを書
き込むので、データの順序保証が得られる。As described above, the present invention is extremely effective when applied to a device composed of a plurality of independently operable memory banks, and a system that extracts continuous data at regular intervals and stores it in a high-speed buffer. In other words, by taking advantage of the repeatability of the correspondence between data request numbers and banks, the start address and increment value are stored and the crossbar switch is used to store the storage device without adding information such as the request number to the request. Banks and buffer banks are associated and connected. As a result, the four banks of the storage device independently and simultaneously write data to the operand buffer, so that the data order can be guaranteed.
〔発明の効果J
以上説明したように、本発明によれば、記憶装置側のハ
ードウェアを増加することなく、読み出し配列データの
順序性を保証したべクトルオペランドバッファを実現す
ることができる。[Effect of the Invention J As described above, according to the present invention, a vector operand buffer that guarantees the order of read array data can be realized without increasing the hardware on the storage device side.
第1図は本発明の一実施例を示すベクトルオペランドバ
ッファの構成図、第2図は本発明のべクトルオペランド
バッファを用いたシステムのブロラグ図、第3図は主記
憶装置のバンク割り当てと8バイトデ一タ配置図、第4
図は第3図におけるバンクとベクトルオペランドバッフ
ァとの対応配置図、第5図は主記憶装置のバンク割り当
てと4バイトデ一タ配置図、第6図は第5図におけるバ
ンクとベクトルオペランドバッファとの対応配置図、第
7図は本発明の他の実施例を示すベクトルオペランドバ
ッファの接続図である。
1〜4.23〜26.35〜42.記憶装置のバンクの
データ端子、5:クロスバの選択信号生成論理回路、6
:クロスバスイッチ、7〜10゜19〜22.43〜5
0:ベクトルオペランドバッファのバンク、11〜1.
4.27〜30:ベクトルオペランドバッファ内のカウ
ンタ、15:主記憶装置、17:ベクトルオペランドバ
ッファ、16、ベクトルレジスタ、18:演算器、31
〜34.71,81,91,101:ベクトルオペラン
ドバッファのメモリ、?2,82,92.]丁P二
記憶装置
64
第
図
閏
8
第
図
バンクO
バンク1
バンク2
バンク3FIG. 1 is a configuration diagram of a vector operand buffer showing an embodiment of the present invention, FIG. 2 is a blog diagram of a system using the vector operand buffer of the present invention, and FIG. Byte data layout diagram, 4th
The figure shows the correspondence arrangement between banks and vector operand buffers in Fig. 3, Fig. 5 shows the bank allocation and 4-byte data arrangement of the main memory, and Fig. 6 shows the correspondence arrangement between banks and vector operand buffers in Fig. 5. The corresponding layout diagram, FIG. 7, is a connection diagram of a vector operand buffer showing another embodiment of the present invention. 1-4.23-26.35-42. Data terminal of bank of storage device, 5: Crossbar selection signal generation logic circuit, 6
:Crossbar switch, 7~10°19~22.43~5
0: Bank of vector operand buffer, 11-1.
4.27-30: Counter in vector operand buffer, 15: Main memory, 17: Vector operand buffer, 16, Vector register, 18: Arithmetic unit, 31
~34.71,81,91,101: Vector operand buffer memory, ? 2,82,92. ] Ding P2 storage device 64 Figure leap 8 Figure Bank O Bank 1 Bank 2 Bank 3
Claims (1)
装置より複数個の配列データを受け取り、該配列データ
を格納するベクトルデータバッファ装置において、該記
憶装置上の配列データのデータ幅と、該配列データの複
数個の中の先頭アドレスと、該配列データ相互間のデー
タ間隔とにより、該ベクトルデータバッファ側のバンク
数を求め、該記憶装置と該ベクトルデータバッファの両
者の対応するバンク間を接続させるスイッチ手段と、該
スイッチ手段の接続制御により入力されたデータを格納
するオペランドバッフアの複数個のバンクメモリと、該
バンクメモリにそれぞれ格納されるデータ数を計数する
バンク毎のデータ計数手段とを設け、該記憶装置の各バ
ンクから入力されたデータを、該ベクトルデータバッフ
ァの対応するバンクの上記データ計数手段が示す位置に
格納することを特徴とするベクトルデータバッファ装置
。 2、複数の独立動作を行う記憶バンクで構成された記憶
装置より複数個の配列データを受け取り、該配列データ
を格納するベクトルデータバッファ装置において、上記
複数個の配列データ相互間が一定間隔である場合、上記
記憶装置のバンクと各配列データとの対応がリピート性
を備えていることを利用して、該記憶装置の各バンクか
らのデータパスのスイッチを、ベクトルデータバッファ
の対応するバンクに接続させるように選択制御すること
を特徴とするスイッチ装置。 3、請求項1に記載のベクトルデータバッファ装置を用
いて、主記憶装置からの配列データを該ベクトルデータ
バッファに格納し、次に、該ベクトルデータバッファに
格納された配列データを順次取り出して演算器に出力し
、該演算器では入力された配列データに対して演算を行
い、演算の結果をベクトルレジスタに格納することを特
徴とするベクトル演算装置。 4、請求項3に記載のベクトル演算装置において、請求
項1に記載のベクトルデータバッファ装置をベクトルレ
ジスタとして用い、該ベクトルデータバッファ装置は主
記憶装置からの配列データをスイッチ手段の選択制御に
より対応するバンクに格納した後、該配列データを取り
出して演算器に出力し、該演算器では入力された配列デ
ータに対して演算を行い、演算の結果を上記スイッチ手
段の選択制御により該ベクトルデータバッファ装置の指
定されたバンクに格納することを特徴とするベクトルレ
ジスタ。[Scope of Claims] 1. In a vector data buffer device that receives a plurality of array data from a storage device configured with a plurality of memory banks that perform independent operations and stores the array data, the array data on the storage device The number of banks on the vector data buffer side is calculated based on the data width of the array data, the first address among the plurality of array data, and the data interval between the array data, and the number of banks on the vector data buffer side is calculated. a plurality of operand buffer bank memories for storing input data through connection control of the switch means; and counting the number of data stored in each of the bank memories. A vector data buffer comprising data counting means for each bank, and storing data input from each bank of the storage device at a position indicated by the data counting means in a corresponding bank of the vector data buffer. Device. 2. In a vector data buffer device that receives a plurality of array data from a storage device composed of a plurality of memory banks that perform independent operations and stores the array data, the intervals between the plurality of array data are constant. In this case, the switch of the data path from each bank of the storage device is connected to the corresponding bank of the vector data buffer by utilizing the repeatability of the correspondence between the bank of the storage device and each array data. A switch device characterized in that the switch device performs selection control such that the 3. Using the vector data buffer device according to claim 1, store the array data from the main memory in the vector data buffer, and then sequentially retrieve the array data stored in the vector data buffer and perform calculations. 1. A vector arithmetic device, wherein the arithmetic unit performs an arithmetic operation on input array data, and stores the result of the arithmetic operation in a vector register. 4. In the vector arithmetic device according to claim 3, the vector data buffer device according to claim 1 is used as a vector register, and the vector data buffer device corresponds to the array data from the main storage device by selection control of the switch means. After storing the array data in the bank, the array data is taken out and output to the arithmetic unit, the arithmetic unit performs an operation on the input array data, and the result of the operation is transferred to the vector data buffer by selection control of the switch means. A vector register characterized in that it stores in a designated bank of the device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1331564A JP2910108B2 (en) | 1989-12-21 | 1989-12-21 | Vector data buffer device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1331564A JP2910108B2 (en) | 1989-12-21 | 1989-12-21 | Vector data buffer device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH03191448A true JPH03191448A (en) | 1991-08-21 |
JP2910108B2 JP2910108B2 (en) | 1999-06-23 |
Family
ID=18245069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1331564A Expired - Fee Related JP2910108B2 (en) | 1989-12-21 | 1989-12-21 | Vector data buffer device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2910108B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012137839A (en) * | 2010-12-24 | 2012-07-19 | Fujitsu Ltd | Memory control device and memory control method |
-
1989
- 1989-12-21 JP JP1331564A patent/JP2910108B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012137839A (en) * | 2010-12-24 | 2012-07-19 | Fujitsu Ltd | Memory control device and memory control method |
Also Published As
Publication number | Publication date |
---|---|
JP2910108B2 (en) | 1999-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5226171A (en) | Parallel vector processing system for individual and broadcast distribution of operands and control information | |
EP0507577B1 (en) | Flexible N-way memory interleaving | |
US4600986A (en) | Pipelined split stack with high performance interleaved decode | |
US4727474A (en) | Staging memory for massively parallel processor | |
CA1297195C (en) | Digital signal processor | |
EP0424618A2 (en) | Input/output system | |
US4706191A (en) | Local store for scientific vector processor | |
EP0054888A2 (en) | Data-processing system with main and buffer storage control | |
GB2122781A (en) | Multimicroprocessor systems | |
KR880011681A (en) | Memory-Connected Wavefront Array Processors | |
EP0263500B1 (en) | Vector data processing system comprising an I/O control for each vector data processor and another I/O control for at least one other vector data processor | |
EP0367995B1 (en) | Vector data transfer controller | |
JPS63201851A (en) | Storage control system | |
JP2899986B2 (en) | Data storage method, vector data buffer device and vector data processing device | |
JPH03191448A (en) | Vector data buffer circuit | |
JP3594260B2 (en) | Vector data processing device | |
JPS6285383A (en) | Vector processor | |
Siegel et al. | Parallel memory system for a partitionable SIMD/MIMD machine | |
JPS626373A (en) | Vector control system | |
JPH0456352B2 (en) | ||
JP2859645B2 (en) | Vector processing system | |
JP2576589B2 (en) | Virtual storage access control method | |
JPS62138940A (en) | Register access control system | |
JPS63209090A (en) | Access memory | |
Kuck | A preprocessing high-speed memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |