JPH03191448A - ベクトルデータバッファ装置 - Google Patents
ベクトルデータバッファ装置Info
- 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
Landscapes
- Complex Calculations (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[産業上の利用分野]
主記憶装置のデータの写しを格納するバッファメモリと
主記憶装置との間のデータ転送は、通常1ブロック単位
(lブロックは、例えば64バイト)で行われ、同一コ
ラム間でデータ転送が行われる。また、バッファメモリ
には、別個にアドレスアレス(インデックスアレイ、デ
ータディレクトリ)と呼ばれる置数器が設けられ、バッ
ファメモリの該当位置に蓄えられたブロックの番号を記
憶する。番号の連続したブロックは、異なるコラムに属
するため、通常各コラムの負荷は平均され、その結果、
所要のブロックがバッファメモリに存在する確率は90
%程度となっている。
主記憶装置との間のデータ転送は、通常1ブロック単位
(lブロックは、例えば64バイト)で行われ、同一コ
ラム間でデータ転送が行われる。また、バッファメモリ
には、別個にアドレスアレス(インデックスアレイ、デ
ータディレクトリ)と呼ばれる置数器が設けられ、バッ
ファメモリの該当位置に蓄えられたブロックの番号を記
憶する。番号の連続したブロックは、異なるコラムに属
するため、通常各コラムの負荷は平均され、その結果、
所要のブロックがバッファメモリに存在する確率は90
%程度となっている。
一方、主記憶装置では、記憶装置を複数個のモジュール
に分割し、連続番地を扱う場合に、全モジュールを並列
動作させてモジュール数の倍数だけ高速に転送できるよ
うに、メモリインタリーピング方式を採用している。
に分割し、連続番地を扱う場合に、全モジュールを並列
動作させてモジュール数の倍数だけ高速に転送できるよ
うに、メモリインタリーピング方式を採用している。
ところで、最近の記憶制御装置では、システム全体の性
能を向上させるため、複数の命令プロセッサ、入出カプ
ロセッサが接続されてお番ハ主記憶装置の処理スルーブ
ツトを向上させるため、それぞれ独立に動作可能な多数
の記憶バンクを設けている。例えば、ベクトル計算機等
では、複数台のプロセッサが1つの共通主記憶装置に接
続されており、これらのプロセッサは並列に処理するこ
とにより、各々が共有の主記憶装置にアクセスして高速
にデータを読み出す必要がある。
能を向上させるため、複数の命令プロセッサ、入出カプ
ロセッサが接続されてお番ハ主記憶装置の処理スルーブ
ツトを向上させるため、それぞれ独立に動作可能な多数
の記憶バンクを設けている。例えば、ベクトル計算機等
では、複数台のプロセッサが1つの共通主記憶装置に接
続されており、これらのプロセッサは並列に処理するこ
とにより、各々が共有の主記憶装置にアクセスして高速
にデータを読み出す必要がある。
しかし、主記憶装置に、命令プロセッサが例えば4台接
続されている場合には、そのスルーブツト向上のために
主記憶装置は4ボートに分割され、各ボートはそれぞれ
独立に動作するが、ある命令プロセッサから発行された
要求の順序でデータが返送されるという保証は全くない
。すなわち、ボート0とボートlとでは、どちらが早く
データが読み出されるかは全く不明である。ベクトル計
算等を複数の命令プロセッサで分担して処理する場合に
は、命令プロセッサから発行された配列データ読み出し
要求列に対するデータ読み出し順序が異なると、動作に
障害を来たすことになる。
続されている場合には、そのスルーブツト向上のために
主記憶装置は4ボートに分割され、各ボートはそれぞれ
独立に動作するが、ある命令プロセッサから発行された
要求の順序でデータが返送されるという保証は全くない
。すなわち、ボート0とボートlとでは、どちらが早く
データが読み出されるかは全く不明である。ベクトル計
算等を複数の命令プロセッサで分担して処理する場合に
は、命令プロセッサから発行された配列データ読み出し
要求列に対するデータ読み出し順序が異なると、動作に
障害を来たすことになる。
このような記憶装置からの読み出しデータをリクエスト
発行順にオペランドバッファに格納するための装置とし
ては、従来、例えば、特開昭60−136849号公報
に記載されている方法がある。上記公報に記載の方法で
は、リクエスト発行時にバッファメモリの格納番地情報
を付加して発行し、記憶装置からデータが読み出されて
バッファメモリに返送される際に、その情報を付加して
返送することにより、その番地情報に基づいてバッファ
メモリに格納している。
発行順にオペランドバッファに格納するための装置とし
ては、従来、例えば、特開昭60−136849号公報
に記載されている方法がある。上記公報に記載の方法で
は、リクエスト発行時にバッファメモリの格納番地情報
を付加して発行し、記憶装置からデータが読み出されて
バッファメモリに返送される際に、その情報を付加して
返送することにより、その番地情報に基づいてバッファ
メモリに格納している。
r発明が解決゛しようとする課題〕
上記公報に記載の方法では、す、クエスト発行時に格納
バッファ番地情報を付加して、データ読み出し時にその
情報を一緒に返すようにしているが、この方法では、記
憶装置側で、接続されている命令プロセッサの台数分の
論理を保持する必要があるため、ハードウェア量の増加
が膨大となる。すなわち、記憶装置に接続されるプロセ
ッサの数だけ、バッファの格納位置情報を記憶装置内で
持ち回る必要があるため、最近のようにプロセッサの接
続数が多い記憶装置では、そのハードウェア量が膨大と
なってしまい、実現不可能となる。
バッファ番地情報を付加して、データ読み出し時にその
情報を一緒に返すようにしているが、この方法では、記
憶装置側で、接続されている命令プロセッサの台数分の
論理を保持する必要があるため、ハードウェア量の増加
が膨大となる。すなわち、記憶装置に接続されるプロセ
ッサの数だけ、バッファの格納位置情報を記憶装置内で
持ち回る必要があるため、最近のようにプロセッサの接
続数が多い記憶装置では、そのハードウェア量が膨大と
なってしまい、実現不可能となる。
本発明の目的は、このような従来の課題を解決し、ハー
ドウェア量の増加は殆んどなく、読み出し配列データの
順序性を保証することができるベクトルデータバッファ
装置を提供することにある。
ドウェア量の増加は殆んどなく、読み出し配列データの
順序性を保証することができるベクトルデータバッファ
装置を提供することにある。
上記目的を達成するため、(イ)本発明のベクトルデー
タバッファ装置は、記憶装置上の配列データのデータ幅
と、配列データの複数個の中の先頭アドレスと、配列デ
ータ相互間のデータ間隔とにより、ベクトルデータバッ
ファ側のバンク数を求め、記憶装置とベクトルデータバ
ッファの両者の対応するバンク間を接続させるスイッチ
手段と、スイッチ手段の接続制御により入力されたデー
タを格納するオペランドバッファの複数個のバンクメモ
リと、バンクメモリにそれぞれ格納されるデータ数を計
数するバンク毎のデータ計数手段とを設け、記憶装置の
各バンクから入力されたデータを、ベクトルデータバッ
ファの対応するバンクの上記データ計数手段が示す位置
に格納することに特徴がある。また、4口)本発明のス
イッチ装置は、複数個の配列データ相互間が一定間隔で
ある場合、記憶装置のバンクと各配列データとの対応が
リピート性を備えていることを利用して、記憶装置の各
バンクからのデータパスのスイッチを、ベクトルデータ
バッファの対応するバンクに接続させるように選択制御
することに特徴がある。また、(ハ)本発明のベクトル
演算装置は、主記憶装置からの配列データをベクトルデ
ータバッファに格納し、次に、ベクトルデータバッファ
に格納された配列データを順次取り出して演算器に出力
し、演算器では入力された配列データに対して演算を行
い、演算の結果をベクトルレジスタに格納することに特
徴がある。さらに、(ニ)本発明のベクトルレジスタは
、ベクトルデータバッファ装置をベクトルレジスタとし
て用い、ベクトルデータバッファは主記憶装置からの配
列データをスイッチ手段の選択制御により対応するバン
クに格納した後、配列データを取り出して演算器に出力
し、演算器では入力された配列データに対して演算を行
い、演算の結果をスイッチ手段の選択制御により該ベク
トルデータバッファ装置の指定されたバンクに格納する
ことに特徴がある。
タバッファ装置は、記憶装置上の配列データのデータ幅
と、配列データの複数個の中の先頭アドレスと、配列デ
ータ相互間のデータ間隔とにより、ベクトルデータバッ
ファ側のバンク数を求め、記憶装置とベクトルデータバ
ッファの両者の対応するバンク間を接続させるスイッチ
手段と、スイッチ手段の接続制御により入力されたデー
タを格納するオペランドバッファの複数個のバンクメモ
リと、バンクメモリにそれぞれ格納されるデータ数を計
数するバンク毎のデータ計数手段とを設け、記憶装置の
各バンクから入力されたデータを、ベクトルデータバッ
ファの対応するバンクの上記データ計数手段が示す位置
に格納することに特徴がある。また、4口)本発明のス
イッチ装置は、複数個の配列データ相互間が一定間隔で
ある場合、記憶装置のバンクと各配列データとの対応が
リピート性を備えていることを利用して、記憶装置の各
バンクからのデータパスのスイッチを、ベクトルデータ
バッファの対応するバンクに接続させるように選択制御
することに特徴がある。また、(ハ)本発明のベクトル
演算装置は、主記憶装置からの配列データをベクトルデ
ータバッファに格納し、次に、ベクトルデータバッファ
に格納された配列データを順次取り出して演算器に出力
し、演算器では入力された配列データに対して演算を行
い、演算の結果をベクトルレジスタに格納することに特
徴がある。さらに、(ニ)本発明のベクトルレジスタは
、ベクトルデータバッファ装置をベクトルレジスタとし
て用い、ベクトルデータバッファは主記憶装置からの配
列データをスイッチ手段の選択制御により対応するバン
クに格納した後、配列データを取り出して演算器に出力
し、演算器では入力された配列データに対して演算を行
い、演算の結果をスイッチ手段の選択制御により該ベク
トルデータバッファ装置の指定されたバンクに格納する
ことに特徴がある。
本発明においては、オペランドバッファ側に、配列デー
タの先頭アドレスとデータ間隔を記憶するとともに、オ
ペランドバッファの各バンク毎のデータ数を計数するカ
ウンタを設けておき、これらの情報により記憶装置から
読み出された配列データの格納バッファ位置を高速に求
めるようにしている。すなわち、予めオペランドバッフ
ァをバンク対応の一定周期で繰り返される周期分のバン
クに分けておき、主記憶上のデータ先頭アドレスとイン
クリメント値から入力データの格納すべきバンクが求め
られるようにしておく。
タの先頭アドレスとデータ間隔を記憶するとともに、オ
ペランドバッファの各バンク毎のデータ数を計数するカ
ウンタを設けておき、これらの情報により記憶装置から
読み出された配列データの格納バッファ位置を高速に求
めるようにしている。すなわち、予めオペランドバッフ
ァをバンク対応の一定周期で繰り返される周期分のバン
クに分けておき、主記憶上のデータ先頭アドレスとイン
クリメント値から入力データの格納すべきバンクが求め
られるようにしておく。
これにより、記憶バンク間ではデータの順序性の保証が
なくても、順序性の保証されたバッファデータを得るこ
とができる。また、ハードウェアの増加は全てオペラン
ドバッファ側に設けられるので、記憶装置側のハードウ
ェア量の増加は殆んどない。
なくても、順序性の保証されたバッファデータを得るこ
とができる。また、ハードウェアの増加は全てオペラン
ドバッファ側に設けられるので、記憶装置側のハードウ
ェア量の増加は殆んどない。
以下、本発明の実施例を、図面により詳細に説明する。
第2図は、本発明の対象となるベクトルデータバッファ
装置を含むシステム要部のブロック図である。
装置を含むシステム要部のブロック図である。
第2図において、15は4個のバンクを備えた記憶装置
、17は記憶装置のバンクと対応付けられたバンクを備
えるベクトルオペランドバッファ、18はベクトルオペ
ランドバッフ、ア17とベクトルレジスタ16のデータ
を演算する演算器、16は演算器18による演算結果を
格納するとともに、演算器18への入力データを与える
ベクトルレジスタである。
、17は記憶装置のバンクと対応付けられたバンクを備
えるベクトルオペランドバッファ、18はベクトルオペ
ランドバッフ、ア17とベクトルレジスタ16のデータ
を演算する演算器、16は演算器18による演算結果を
格納するとともに、演算器18への入力データを与える
ベクトルレジスタである。
記憶装置I5のバンクとバッファ17のバンクとを対応
付けるのは、ベクトルオペランドバッファスフ内に設け
られたクロスバ(第1図参照)である。記憶装置15か
も取り出されたデータは、ベクトルオペランドバッファ
17で演算器に並び換えられた後、演算器18に送出さ
れる。
付けるのは、ベクトルオペランドバッファスフ内に設け
られたクロスバ(第1図参照)である。記憶装置15か
も取り出されたデータは、ベクトルオペランドバッファ
17で演算器に並び換えられた後、演算器18に送出さ
れる。
ところで、配列データのような一定間隔で配列されてい
るデータを得るため記憶装置上5ヘアクセスする場合、
リクエスト発行順と記憶装置15のバンクの対応は、あ
る一定の周期で繰り返されるという性質がある。そこで
、オペランドバッフア17をこの繰り返し周期分のバン
クに分けると、オペランドバッファ17の同一バンク内
のエントリへのデータは、同一記憶バンクから到来する
ことになる。
るデータを得るため記憶装置上5ヘアクセスする場合、
リクエスト発行順と記憶装置15のバンクの対応は、あ
る一定の周期で繰り返されるという性質がある。そこで
、オペランドバッフア17をこの繰り返し周期分のバン
クに分けると、オペランドバッファ17の同一バンク内
のエントリへのデータは、同一記憶バンクから到来する
ことになる。
オペランドバッファ17においては、主記憶装置111
5へのアクセスに先立って、オペランドバッファ17の
各バンクを、主記憶装置15上のデータ先頭アドレスと
インクリメント値から決定される記憶バンクに接続して
おく。データがオペランドバッファ17に到着すると、
接続されたバッファのバンクに順番に格納される。バッ
ファ17の各バンク毎に、到着データ数を計数するカウ
ンタを設けておき、これらのカウンタが示す位置に入力
データを格納する。これによって、記憶バンク間では、
データがリクエストした順序で到着しなくても、オペラ
ンドバッファ17には順序性が保証されたデータが格納
される。
5へのアクセスに先立って、オペランドバッファ17の
各バンクを、主記憶装置15上のデータ先頭アドレスと
インクリメント値から決定される記憶バンクに接続して
おく。データがオペランドバッファ17に到着すると、
接続されたバッファのバンクに順番に格納される。バッ
ファ17の各バンク毎に、到着データ数を計数するカウ
ンタを設けておき、これらのカウンタが示す位置に入力
データを格納する。これによって、記憶バンク間では、
データがリクエストした順序で到着しなくても、オペラ
ンドバッファ17には順序性が保証されたデータが格納
される。
第1図は、本発明の一実施例を示すベクトルオペランド
バッファの全構成図であり、第3図は、確記憶装置にお
ける8バイトデ一タ配列とバンクの割り当てを示す図で
ある。
バッファの全構成図であり、第3図は、確記憶装置にお
ける8バイトデ一タ配列とバンクの割り当てを示す図で
ある。
第1図において、1〜4は記憶装置の各バンクにおける
データ端子、5は不完全クロスバのセレクタ信号生成論
理回路、6は論理回路5に制御されてON、OFFする
クロスバのスイッチ、7〜lOはベクトルオペランドバ
ッファのバンク、11〜14はベクトルオペランドバッ
ファ内のカウンタ、71,81.91,101は各バン
ク内のバッファメモリ、72,82,92,102は+
1する加算器である。
データ端子、5は不完全クロスバのセレクタ信号生成論
理回路、6は論理回路5に制御されてON、OFFする
クロスバのスイッチ、7〜lOはベクトルオペランドバ
ッファのバンク、11〜14はベクトルオペランドバッ
ファ内のカウンタ、71,81.91,101は各バン
ク内のバッファメモリ、72,82,92,102は+
1する加算器である。
主記憶装置のバンクO〜3の各データ端子1〜4よりデ
ータが送出されて、ベクトルオペランドバッファのクロ
スバスイッチ6にこれが到着すると、先頭アドレスとイ
ンクリメント値を記憶している論理回路5からの制御信
号により、クロスバスイッチ6が動作し、入力データは
各ブロック分けされた1つのバンク7〜10に分配され
る。
ータが送出されて、ベクトルオペランドバッファのクロ
スバスイッチ6にこれが到着すると、先頭アドレスとイ
ンクリメント値を記憶している論理回路5からの制御信
号により、クロスバスイッチ6が動作し、入力データは
各ブロック分けされた1つのバンク7〜10に分配され
る。
バンク7〜10内では、カウンタ11〜14により指定
されたバッファメモリ71〜101に、入力データが格
納される。同時に、カウンタ11〜14が+1演算器9
2〜+02でインクリメントされる。なお、カウンタl
】〜14は、バンク内の何番目のメモリに格納するかを
指定するものである。これによって、主記憶装置から到
着したデータは、4バンクが独立して動作することによ
り、同時にバッファメモリに格納される。
されたバッファメモリ71〜101に、入力データが格
納される。同時に、カウンタ11〜14が+1演算器9
2〜+02でインクリメントされる。なお、カウンタl
】〜14は、バンク内の何番目のメモリに格納するかを
指定するものである。これによって、主記憶装置から到
着したデータは、4バンクが独立して動作することによ
り、同時にバッファメモリに格納される。
第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バイトである。
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バイトである。
主記憶上の割り当てのもとでは、このように一定のイン
クリメント値を持ったデータとバンクとの対応が、一定
のリピート性を持っている。第1図の場合、クロスバ論
理回路5に先頭アドレス8番地と、インクリメント値2
4バイトを記憶させておくことにより、バイトOがバン
クl、バイトlがバンク0、バイト2がバンク3、バイ
ト3がバンク2.バイト4がバンクlに、それぞれ割り
当てられるので、読み出されるバイトデータの順序性が
保証されなくても、−各バイトデータは独立にそのバン
クから対応する同じ番号のオペランドバッファのバンク
に入力され、そのバッファメモリに格納されることにな
る。
クリメント値を持ったデータとバンクとの対応が、一定
のリピート性を持っている。第1図の場合、クロスバ論
理回路5に先頭アドレス8番地と、インクリメント値2
4バイトを記憶させておくことにより、バイトOがバン
クl、バイトlがバンク0、バイト2がバンク3、バイ
ト3がバンク2.バイト4がバンクlに、それぞれ割り
当てられるので、読み出されるバイトデータの順序性が
保証されなくても、−各バイトデータは独立にそのバン
クから対応する同じ番号のオペランドバッファのバンク
に入力され、そのバッファメモリに格納されることにな
る。
いま、ベクトル要素の番号付けを、先頭から1゜0.2
,3. ・・・・としたとき、ベクトルの先頭アドレ
ス(0番要素アドレス)をAと置き、インクリメント値
をINCと置く。
,3. ・・・・としたとき、ベクトルの先頭アドレ
ス(0番要素アドレス)をAと置き、インクリメント値
をINCと置く。
0番目とn番目のベクトル要素でアクセスする主記憶ア
ドレスが、モジュロ32で一致するためには、下記(1
)式、(2)式が成立すればよい。
ドレスが、モジュロ32で一致するためには、下記(1
)式、(2)式が成立すればよい。
A+INCXn=A+32Xm−(1)TNCXn=3
2Xm HHHHH+ H+ ・(2)二こで
、mは任意の整数である。上式(1)(2)で、ベクト
ル要素を8バイトにした場合、インクリメント値INC
を、 INCミ8×△(Δ=0.±1.±2.・・・)と置け
ば、次式が成立する。
2Xm HHHHH+ H+ ・(2)二こで
、mは任意の整数である。上式(1)(2)で、ベクト
ル要素を8バイトにした場合、インクリメント値INC
を、 INCミ8×△(Δ=0.±1.±2.・・・)と置け
ば、次式が成立する。
ΔXn==4Xm ・ ・ ・ ・ ・ ・ ・
・ ・ ・ ・(3)△が任意の整数であるとき、上式
(3)を満たすnの最小値は4である。従って、バンク
のアクセスパターンは4要素毎にリピートする。
・ ・ ・ ・(3)△が任意の整数であるとき、上式
(3)を満たすnの最小値は4である。従って、バンク
のアクセスパターンは4要素毎にリピートする。
すなわち、ベクトル要素を+0.4,8.l 2゜・・
・l、 (+、5,9,13. ・・・・)。
・l、 (+、5,9,13. ・・・・)。
(2,6,10,14,・・・・)、(3,7゜11、
+5. ・・・・・)の4集合に分けると、各集合中
の要素は同一のバンクからデータが到来することになる
。このように、記憶装置のデータ境界が32バイト、ベ
クトル要素が8バイトのときには、4バンク、8バンク
、12バンク、・・・に分けることにより、一定周期毎
のデータバイトは同一のバンクから入力する。
+5. ・・・・・)の4集合に分けると、各集合中
の要素は同一のバンクからデータが到来することになる
。このように、記憶装置のデータ境界が32バイト、ベ
クトル要素が8バイトのときには、4バンク、8バンク
、12バンク、・・・に分けることにより、一定周期毎
のデータバイトは同一のバンクから入力する。
この場合、1つのバンク内では、データの順序性が保証
されているので、到着データは順番にバッファメモリに
格納していけばよい。
されているので、到着データは順番にバッファメモリに
格納していけばよい。
第4図は、8バイトデータの場合のバンクとベクトルオ
ペランドバッファとの対応関係を示す図である。
ペランドバッファとの対応関係を示す図である。
第4図において、23〜26は記憶装置のバンク0〜3
におけるデータ出力端子であり、19〜22はベクトル
オペランドバッファのバンクであり、27〜30は各バ
ンク内のカウンタであり、31〜34は各バンク内のバ
ッファメモリである。
におけるデータ出力端子であり、19〜22はベクトル
オペランドバッファのバンクであり、27〜30は各バ
ンク内のカウンタであり、31〜34は各バンク内のバ
ッファメモリである。
第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の対応が
行われる。
置側のバンク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の対応が
行われる。
従って、オペランドバッファ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と接続されている。
.・・・番目のバッファメモリ31からなるバング19
.1,5,9. ・・・番目のバッファメモリ32か
らなるバンク20.2,6,10゜・・・番目のバッフ
ァメモリ33からなるバンク21.3,7,11.
・・・番目のバッファメモリ34かもなるバンク22に
分割されている。このようにして、各々のバンク19〜
22は、データの読み出しに先立って、記憶装置側の特
定の1つバンク端子23〜26と接続されている。
このようにして、特定のバンク端子23〜26と接続さ
れた後は、ベクトルオペランドバッファのバンク19〜
22毎に備えられたカウンタ27〜30により示される
位置に、到着したデータを格納すればよい。記憶装置の
1つのバンク端子23〜26が2個以上のベクトルオペ
ランドバッファのバンク19〜22と接続された場合に
は、小さい番号のバンクから大きい番号のバンクへ向う
順序で、1要素ずつ順番に格納していけばよい。
れた後は、ベクトルオペランドバッファのバンク19〜
22毎に備えられたカウンタ27〜30により示される
位置に、到着したデータを格納すればよい。記憶装置の
1つのバンク端子23〜26が2個以上のベクトルオペ
ランドバッファのバンク19〜22と接続された場合に
は、小さい番号のバンクから大きい番号のバンクへ向う
順序で、1要素ずつ順番に格納していけばよい。
第5図は、本発明の他の実施例を示す主記憶装置上のデ
ータ配置図であって、4バイトデータの主記憶装置上の
配置例を示している。また、第6図は、第5図の場合の
記憶装置とベクトルオペランドバッファとの接続図であ
る。
ータ配置図であって、4バイトデータの主記憶装置上の
配置例を示している。また、第6図は、第5図の場合の
記憶装置とベクトルオペランドバッファとの接続図であ
る。
ここで、4バイトデータの場合の最適なバンク分は数を
検討する。両式(2)を再び使用する。
検討する。両式(2)を再び使用する。
INCXn=32Xm HHHHH+ ’ ・(2)
上式(2)において、INCはインクリメント値で、ベ
クトル要素×Δであり、nは記憶装置にアクセスした順
序番号であり、mは任意の整数である。ここで、ベクト
ル要素を4バイトとすると、INC=4X△となるから
、上式(2)は次式になる。
上式(2)において、INCはインクリメント値で、ベ
クトル要素×Δであり、nは記憶装置にアクセスした順
序番号であり、mは任意の整数である。ここで、ベクト
ル要素を4バイトとすると、INC=4X△となるから
、上式(2)は次式になる。
△xn=8Xm(△=0. ±1.±2. ・ −
)・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・
・(4)上式(4)を満たすnの最小値は8である。従
って、4バイトデータは、8個毎に記憶装置上のバンク
が繰り返されることになる。
)・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・
・(4)上式(4)を満たすnの最小値は8である。従
って、4バイトデータは、8個毎に記憶装置上のバンク
が繰り返されることになる。
記憶装置が4バンクの場合、第5図に示すように、jつ
のバンク当り2つのバッファバンクに接続すれば、先頭
アドレス8とインクリメント値12バイトをクロスバ論
理回路に記憶することにより、ベクトルオペランドバッ
ファの同一バンク内のエントリへのデータは、記憶装置
の同一バンクから到着することになる。
のバンク当り2つのバッファバンクに接続すれば、先頭
アドレス8とインクリメント値12バイトをクロスバ論
理回路に記憶することにより、ベクトルオペランドバッ
ファの同一バンク内のエントリへのデータは、記憶装置
の同一バンクから到着することになる。
第6図では、ベクトルオペランドバッファが8個のバン
ク43〜50に分割されている。バンク間の対応は、第
5図のデータ配置の場合を示している。ここでは、ベク
トルオペランドバッファのバンクの配列として、左上か
ら縦に、順次右方向にバンク番号を並べている。すなわ
ち、バンク43をバンク番号0に、バンク47をバンク
番号lに、バンク44をバンク番号2に、バンク48を
バンク番号3に、・・・・それぞれ割り付ける。
ク43〜50に分割されている。バンク間の対応は、第
5図のデータ配置の場合を示している。ここでは、ベク
トルオペランドバッファのバンクの配列として、左上か
ら縦に、順次右方向にバンク番号を並べている。すなわ
ち、バンク43をバンク番号0に、バンク47をバンク
番号lに、バンク44をバンク番号2に、バンク48を
バンク番号3に、・・・・それぞれ割り付ける。
従って、第5図に示すように、記憶装置のバンク0の上
位4バイトの端子35にはベクトルオペランドバッファ
のバンク番号2(つまり、バンク44)を、同じく下位
4バイトの端子36にはバッファのバンク番号5(つま
り、バンク49)を5バンクlの上位4バイトの端子3
7にはバッファのバンク番号0(つまり、バンク43)
を、同じく下位4バイトの端子38にはバッファのバン
ク番号3(つまり、バンク48)を、°・・・順次接続
している。
位4バイトの端子35にはベクトルオペランドバッファ
のバンク番号2(つまり、バンク44)を、同じく下位
4バイトの端子36にはバッファのバンク番号5(つま
り、バンク49)を5バンクlの上位4バイトの端子3
7にはバッファのバンク番号0(つまり、バンク43)
を、同じく下位4バイトの端子38にはバッファのバン
ク番号3(つまり、バンク48)を、°・・・順次接続
している。
このようにして、ベクトルオペランドバッファに格納さ
れたデータは、演算が開始されると、バッファメモリV
OBOO〜VOB5Fが順次取り出されて、演算器に送
出される。
れたデータは、演算が開始されると、バッファメモリV
OBOO〜VOB5Fが順次取り出されて、演算器に送
出される。
なお、本実施例では、8バイト幅4バンク構成の記憶装
置から、8バイトデータ、4バイトデータを取り出すベ
クトルオペランドバッファについて述べたが、記憶装置
の構成および取り出すデータ幅は、これ以外の寸法のも
のでも全く同じようにして、本発明を適用することが可
能である。
置から、8バイトデータ、4バイトデータを取り出すベ
クトルオペランドバッファについて述べたが、記憶装置
の構成および取り出すデータ幅は、これ以外の寸法のも
のでも全く同じようにして、本発明を適用することが可
能である。
第7図は、本発明の他の実施例を示すベクトルオペラン
ドバッファの使用方法の説明図である。
ドバッファの使用方法の説明図である。
第7図においては、ベクトルオペランドバッファ17a
を本来の機能回路として使用する以外に、ベクトルレジ
スタとしても使用する方法である。
を本来の機能回路として使用する以外に、ベクトルレジ
スタとしても使用する方法である。
従って、第2図のベクトルレジスタ16を除去して、演
算器18の出力データ線をベクトルオペランドバッファ
+7aの入力側に接続するとともに、演算器18に入力
する入力データ線もベクトルオペランドバッファ17a
の出力側に接続する。
算器18の出力データ線をベクトルオペランドバッファ
+7aの入力側に接続するとともに、演算器18に入力
する入力データ線もベクトルオペランドバッファ17a
の出力側に接続する。
なお、ベクトルオペランドバッファ17aのバンク数n
のうち、m個をベクトルオペランドバッファとして使用
し、残りの(n−m)個をベクトルレジスタとして使用
することになる。
のうち、m個をベクトルオペランドバッファとして使用
し、残りの(n−m)個をベクトルレジスタとして使用
することになる。
このように、本発明においては、複数の独立動作が可能
な記憶バンクから構成される装置り、一定間隔の連続デ
ータを取り出して,高速バッファに格納するシステムに
適用すれば、極めて有効である。すなわち、データのリ
クエスト番号とバンクの対応にリピート性があることを
利用して、リクエスト番号のような情報を要求に付加せ
ずに、先頭アドレスとインクリメント値を記憶してクロ
スバスイッチで記憶装置のバンクとバッファバンクとを
対応付けて接続しておく。これにより、記憶装置の4バ
ンクが独立して同時にオペランドバッファにデータを書
き込むので、データの順序保証が得られる。
な記憶バンクから構成される装置り、一定間隔の連続デ
ータを取り出して,高速バッファに格納するシステムに
適用すれば、極めて有効である。すなわち、データのリ
クエスト番号とバンクの対応にリピート性があることを
利用して、リクエスト番号のような情報を要求に付加せ
ずに、先頭アドレスとインクリメント値を記憶してクロ
スバスイッチで記憶装置のバンクとバッファバンクとを
対応付けて接続しておく。これにより、記憶装置の4バ
ンクが独立して同時にオペランドバッファにデータを書
き込むので、データの順序保証が得られる。
〔発明の効果J
以上説明したように、本発明によれば、記憶装置側のハ
ードウェアを増加することなく、読み出し配列データの
順序性を保証したべクトルオペランドバッファを実現す
ることができる。
ードウェアを増加することなく、読み出し配列データの
順序性を保証したべクトルオペランドバッファを実現す
ることができる。
第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 バンク3
ッファの構成図、第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 バンク3
Claims (1)
- 【特許請求の範囲】 1、複数の独立動作を行う記憶バンクで構成された記憶
装置より複数個の配列データを受け取り、該配列データ
を格納するベクトルデータバッファ装置において、該記
憶装置上の配列データのデータ幅と、該配列データの複
数個の中の先頭アドレスと、該配列データ相互間のデー
タ間隔とにより、該ベクトルデータバッファ側のバンク
数を求め、該記憶装置と該ベクトルデータバッファの両
者の対応するバンク間を接続させるスイッチ手段と、該
スイッチ手段の接続制御により入力されたデータを格納
するオペランドバッフアの複数個のバンクメモリと、該
バンクメモリにそれぞれ格納されるデータ数を計数する
バンク毎のデータ計数手段とを設け、該記憶装置の各バ
ンクから入力されたデータを、該ベクトルデータバッフ
ァの対応するバンクの上記データ計数手段が示す位置に
格納することを特徴とするベクトルデータバッファ装置
。 2、複数の独立動作を行う記憶バンクで構成された記憶
装置より複数個の配列データを受け取り、該配列データ
を格納するベクトルデータバッファ装置において、上記
複数個の配列データ相互間が一定間隔である場合、上記
記憶装置のバンクと各配列データとの対応がリピート性
を備えていることを利用して、該記憶装置の各バンクか
らのデータパスのスイッチを、ベクトルデータバッファ
の対応するバンクに接続させるように選択制御すること
を特徴とするスイッチ装置。 3、請求項1に記載のベクトルデータバッファ装置を用
いて、主記憶装置からの配列データを該ベクトルデータ
バッファに格納し、次に、該ベクトルデータバッファに
格納された配列データを順次取り出して演算器に出力し
、該演算器では入力された配列データに対して演算を行
い、演算の結果をベクトルレジスタに格納することを特
徴とするベクトル演算装置。 4、請求項3に記載のベクトル演算装置において、請求
項1に記載のベクトルデータバッファ装置をベクトルレ
ジスタとして用い、該ベクトルデータバッファ装置は主
記憶装置からの配列データをスイッチ手段の選択制御に
より対応するバンクに格納した後、該配列データを取り
出して演算器に出力し、該演算器では入力された配列デ
ータに対して演算を行い、演算の結果を上記スイッチ手
段の選択制御により該ベクトルデータバッファ装置の指
定されたバンクに格納することを特徴とするベクトルレ
ジスタ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1331564A JP2910108B2 (ja) | 1989-12-21 | 1989-12-21 | ベクトルデータバッファ装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1331564A JP2910108B2 (ja) | 1989-12-21 | 1989-12-21 | ベクトルデータバッファ装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH03191448A true JPH03191448A (ja) | 1991-08-21 |
| JP2910108B2 JP2910108B2 (ja) | 1999-06-23 |
Family
ID=18245069
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1331564A Expired - Fee Related JP2910108B2 (ja) | 1989-12-21 | 1989-12-21 | ベクトルデータバッファ装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2910108B2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012137839A (ja) * | 2010-12-24 | 2012-07-19 | Fujitsu Ltd | メモリ制御装置、及びメモリ制御方法 |
-
1989
- 1989-12-21 JP JP1331564A patent/JP2910108B2/ja not_active Expired - Fee Related
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2012137839A (ja) * | 2010-12-24 | 2012-07-19 | Fujitsu Ltd | メモリ制御装置、及びメモリ制御方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2910108B2 (ja) | 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 | |
| US4600986A (en) | Pipelined split stack with high performance interleaved decode | |
| CA1208793A (en) | Staging memory for massively parallel processor | |
| US3996559A (en) | Method and apparatus for accessing horizontal sequences, vertical sequences and regularly spaced rectangular subarrays from an array stored in a modified word organized random access memory system | |
| EP0054888B1 (en) | Data-processing system with main and buffer storage control | |
| EP0424618A2 (en) | Input/output system | |
| JPH0562387B2 (ja) | ||
| KR880011681A (ko) | 메모리연결형 파면어레이 프로세서 | |
| GB2122781A (en) | Multimicroprocessor systems | |
| JP2899986B2 (ja) | データ格納方法,ベクトルデータバッファ装置およびベクトルデータ処理装置 | |
| 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 | |
| GB1003923A (en) | Digital computing system | |
| JPS63201851A (ja) | バッファ記憶アクセス方法 | |
| EP0367995B1 (en) | Vector data transfer controller | |
| JPH0282330A (ja) | ムーブアウト・システム | |
| JPH03191448A (ja) | ベクトルデータバッファ装置 | |
| JPS5935451B2 (ja) | 汎用レジスタ・アクセス方式 | |
| JPS6165336A (ja) | 高速演算方式 | |
| JPS6191740A (ja) | メモリ・アクセス制御方式 | |
| JP2547219B2 (ja) | ベクトルデータのアクセス制御装置及び方法 | |
| JPS6285383A (ja) | ベクトルプロセツサ | |
| EP0500383A2 (en) | Data processing system | |
| JPS626373A (ja) | ベクトル制御方式 | |
| JP2859645B2 (ja) | ベクトル処理システム | |
| JPH077388B2 (ja) | ベクトル演算処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |