JPH01206462A - ベクトル計算機 - Google Patents
ベクトル計算機Info
- Publication number
- JPH01206462A JPH01206462A JP3087788A JP3087788A JPH01206462A JP H01206462 A JPH01206462 A JP H01206462A JP 3087788 A JP3087788 A JP 3087788A JP 3087788 A JP3087788 A JP 3087788A JP H01206462 A JPH01206462 A JP H01206462A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- vector
- address
- pipeline
- 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
- 239000013598 vector Substances 0.000 title claims abstract description 43
- 238000000034 method Methods 0.000 claims description 9
- 239000008186 active pharmaceutical agent Substances 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 10
- 239000011295 pitch Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
Landscapes
- Complex Calculations (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
「発明の1」的]
(産業上の利用分野)
本発明は、例えば科学技術計算等の高速処理を行なうべ
くパイプライン方式によるベクトル処理を行なうベクト
ル計算機に関する。
くパイプライン方式によるベクトル処理を行なうベクト
ル計算機に関する。
(従来の技術)
メモリ上に規則的に配置されたベクトルデータに対し、
同一演算を繰返し実行させる演算をベクトル演算と呼ぶ
。F 0rtranを例にとると、第6図(a)に示す
ように、ベクトルA、B、CにおけるBとCをオペラン
ドとして演算を行ない、その結果をディスティネーショ
ンAに代入し、これをDOループによって添字Iを順次
変化させながら繰返し行なうような演算がベクトル演算
である。
同一演算を繰返し実行させる演算をベクトル演算と呼ぶ
。F 0rtranを例にとると、第6図(a)に示す
ように、ベクトルA、B、CにおけるBとCをオペラン
ドとして演算を行ない、その結果をディスティネーショ
ンAに代入し、これをDOループによって添字Iを順次
変化させながら繰返し行なうような演算がベクトル演算
である。
このベクトル演算の品速化の手法として従来よリパイプ
ライン方式が知られている。このパイプライン方式によ
れば、第6図(a)の演算は、同図(b)のように行わ
れる。なお、この図は、パイプラインの段数をn=3に
設定した場合の例を示している。先ず、サイクル1でB
(1)。
ライン方式が知られている。このパイプライン方式によ
れば、第6図(a)の演算は、同図(b)のように行わ
れる。なお、この図は、パイプラインの段数をn=3に
設定した場合の例を示している。先ず、サイクル1でB
(1)。
C(1)でリート要求を出してオペランドを参照し、演
算を開始する。次のサイクル2では、サイクル1で始ま
った演算の結果を待たずにB(2)。
算を開始する。次のサイクル2では、サイクル1で始ま
った演算の結果を待たずにB(2)。
C(2)を参照し演算を始める。サイクル3では、サイ
クル1で開始された演算の結果A(1)が求まるので、
この結果を書込むと同時にB (3) 。
クル1で開始された演算の結果A(1)が求まるので、
この結果を書込むと同時にB (3) 。
C(3)の参照を行ない演算を始める。以後、同様にサ
イクル1+2ではサイクルiから開始された演算の結果
のA(i)が求まると同時にB (i+2)、C(i+
2)による演算を始める。
イクル1+2ではサイクルiから開始された演算の結果
のA(i)が求まると同時にB (i+2)、C(i+
2)による演算を始める。
このように、繰返しによる演算を一つの演算の結果を待
たすに連続的に処理するベクトル化処理では、上記の例
のように演算に2サイクルを要する場合でも、最初の演
算結果A(1)が求まるまでに2サイクルの遅れはある
ものの、それ以後は演算結果が毎サイクル求まるという
利点がある。
たすに連続的に処理するベクトル化処理では、上記の例
のように演算に2サイクルを要する場合でも、最初の演
算結果A(1)が求まるまでに2サイクルの遅れはある
ものの、それ以後は演算結果が毎サイクル求まるという
利点がある。
また、例えば第7図(a)に示すように、オペランド(
A(1))とディスティネーション(A(1+3))の
ベクトルが同じである回帰的データ参照の場合も、ディ
スティネーションのベクトルAの添字とオペランドのベ
クトルAの添字との差(3)がパイプラインの段数n
(−3)以上であれば、第7図(b)に示すように、サ
イクル1で開始されたA (1) +C(1)なる演算
の結果A(4)がサイクル3で終了するので、サイクル
4ではA (4) 、 C(4)を参照可能である。
A(1))とディスティネーション(A(1+3))の
ベクトルが同じである回帰的データ参照の場合も、ディ
スティネーションのベクトルAの添字とオペランドのベ
クトルAの添字との差(3)がパイプラインの段数n
(−3)以上であれば、第7図(b)に示すように、サ
イクル1で開始されたA (1) +C(1)なる演算
の結果A(4)がサイクル3で終了するので、サイクル
4ではA (4) 、 C(4)を参照可能である。
したがって、この演算はベクトル化することができる。
しかしながら、このような回++li的データ参照にお
いて、例えば第8図(a)に示すように、ディスティネ
ーションのベクトルAの添字とオペランドのベクトルA
の添字との差(1)がパイプラインの段数n(−3)未
満であると、サイクル1で開始されたA (1) 十C
(1)の演算結果A(2)がサイクル2では未だ求まっ
てぃないため、A (2) 、 C(2)の参照はこ
の演算が終了するサイクル4でないと行なえない。従っ
て、この場合には演算をベクトル化することはできない
。
いて、例えば第8図(a)に示すように、ディスティネ
ーションのベクトルAの添字とオペランドのベクトルA
の添字との差(1)がパイプラインの段数n(−3)未
満であると、サイクル1で開始されたA (1) 十C
(1)の演算結果A(2)がサイクル2では未だ求まっ
てぃないため、A (2) 、 C(2)の参照はこ
の演算が終了するサイクル4でないと行なえない。従っ
て、この場合には演算をベクトル化することはできない
。
このように、パイプライン方式を採用していても、ディ
スティネーションとオペランドのベクトルの添字の差か
パイプラインの段数n未満のときには、ベクトル化は不
可能である。
スティネーションとオペランドのベクトルの添字の差か
パイプラインの段数n未満のときには、ベクトル化は不
可能である。
そこで、回帰的データ参照が起こる場合には、コンパイ
ラに予めパイプラインの段数nを覚えさせておき、コン
パイル時に上記添字の差がパイプライン段数nより大き
いかどうかを判定し、この判定結果に応じてベクトル化
するがどうかを決定することも考えられる。しがし、こ
の場合にはパイプライン段数を増やした場合、コンパイ
ラを新しいパイプライン段数に合せて作り直さなければ
ならない。また、同一アーキテクチャの計算機で、パイ
プラインの段数だけが違っている場合には、各計算機毎
にその計算機のパイプライン段数に合わせたコンパイラ
を用意しなければならずコンパイラの作成が非常に面倒
になるという問題があった。
ラに予めパイプラインの段数nを覚えさせておき、コン
パイル時に上記添字の差がパイプライン段数nより大き
いかどうかを判定し、この判定結果に応じてベクトル化
するがどうかを決定することも考えられる。しがし、こ
の場合にはパイプライン段数を増やした場合、コンパイ
ラを新しいパイプライン段数に合せて作り直さなければ
ならない。また、同一アーキテクチャの計算機で、パイ
プラインの段数だけが違っている場合には、各計算機毎
にその計算機のパイプライン段数に合わせたコンパイラ
を用意しなければならずコンパイラの作成が非常に面倒
になるという問題があった。
また、第9図に示すように、ディスティネーションの添
字に突数kが含まれている場合、この変数にはコンパイ
ル時には定まらず、実行時に定まるため、たとえ実行時
にに≧nとなってもベクトル化することは不可能となる
。
字に突数kが含まれている場合、この変数にはコンパイ
ル時には定まらず、実行時に定まるため、たとえ実行時
にに≧nとなってもベクトル化することは不可能となる
。
史に、第10図(a)のようなサブルーチンでは文番号
10のディスティネーションとオペランドとが表面上は
同一でないが、サブルーチンの呼び元で第10図(b)
に示すように第1引数と第2引数とを同一の引数として
呼出すと、上記と同様の回帰的データ参照の問題が生じ
る。この場合、上記第1引数と第2引数とに同一の変数
を割当てない等の制限を付して上記の問題を回避するこ
と更には、第11図に示すように、隣接する演算におい
て、メモリの一部が重なって定義されてぃる場合にも同
様の問題が生じる。即ち、この例は、るので、文1の計
算結果の格納場所であるDの一部をなすA(2)を次の
文2で参照している。このため、文2の実行は文1の実
行か終了するまで行なうことができない。
10のディスティネーションとオペランドとが表面上は
同一でないが、サブルーチンの呼び元で第10図(b)
に示すように第1引数と第2引数とを同一の引数として
呼出すと、上記と同様の回帰的データ参照の問題が生じ
る。この場合、上記第1引数と第2引数とに同一の変数
を割当てない等の制限を付して上記の問題を回避するこ
と更には、第11図に示すように、隣接する演算におい
て、メモリの一部が重なって定義されてぃる場合にも同
様の問題が生じる。即ち、この例は、るので、文1の計
算結果の格納場所であるDの一部をなすA(2)を次の
文2で参照している。このため、文2の実行は文1の実
行か終了するまで行なうことができない。
以上のことから、従来のベクトル計算機では、回帰的デ
ータ参照が行われる可能性のある演算についてはベクト
ル化を断念している。このため、ベクトル化した場合に
比べて演算速度が数十倍も遅くなるという問題があった
。
ータ参照が行われる可能性のある演算についてはベクト
ル化を断念している。このため、ベクトル化した場合に
比べて演算速度が数十倍も遅くなるという問題があった
。
(発明が解決しようとする問題点)
このように、従来のベクトル計算機では、回帰的データ
参照が起こる場合にベクトル化を行なわないようにして
いるため、演算の実行速度を高めることができないとい
う聞届があった。
参照が起こる場合にベクトル化を行なわないようにして
いるため、演算の実行速度を高めることができないとい
う聞届があった。
本発明は、かかる問題点を解決すへくなされたしので、
そのLj的とするところは、回螺的データ参照が生じる
演算についてもベクトル化できる部分は全てベクトル化
することができ、もって演算速度を大幅に高めることが
できるベクトル計算機を提供することにある。
そのLj的とするところは、回螺的データ参照が生じる
演算についてもベクトル化できる部分は全てベクトル化
することができ、もって演算速度を大幅に高めることが
できるベクトル計算機を提供することにある。
[発明の構成コ
(問題点を解決するだめの手段)
本発明は、ベクトルデータを格納したメモリからer算
処理部が順次ベクトルデータを読み出してパイプライン
方式によるベクトル演算処理を行なうヘクトル計算機に
おいて、次の手段を備えたことを特徴としている。
処理部が順次ベクトルデータを読み出してパイプライン
方式によるベクトル演算処理を行なうヘクトル計算機に
おいて、次の手段を備えたことを特徴としている。
即ち、本発明は、パイプラインの各ステージに保持され
ている演算処理中のデータの書込みアドレスとそのデー
タのサイズとを前J己パ・rプラインの各ステージに対
応させて格納するレジスタファイルと、前記パイプライ
ンから順次出力される演算結果を前記レジスタファイル
から順次読出した前記書込みアドレスで指定される前記
メモリの記憶場所に格納する手段と、前記演算処理部が
前記及びデータのサイズとに基づいて前記メモリの前記
両アドレスで指定される領域の重複の有無を検査する手
段と、この手段で重複が検出された場合には前記メモリ
からの読出しを待たせる手段とを具備している。
ている演算処理中のデータの書込みアドレスとそのデー
タのサイズとを前J己パ・rプラインの各ステージに対
応させて格納するレジスタファイルと、前記パイプライ
ンから順次出力される演算結果を前記レジスタファイル
から順次読出した前記書込みアドレスで指定される前記
メモリの記憶場所に格納する手段と、前記演算処理部が
前記及びデータのサイズとに基づいて前記メモリの前記
両アドレスで指定される領域の重複の有無を検査する手
段と、この手段で重複が検出された場合には前記メモリ
からの読出しを待たせる手段とを具備している。
(作用)
本発明では、パイプラインの各ステージに格納されたデ
ータと対応させて該データの書込みアドレスとそのデー
タのサイズとをレジスタファイルに格納するようにして
いるので、レジスタファイルに格納されたアドレスとサ
イズとを参照すれば、そのアドレスに書込まれるべきデ
ータが現在演算処理中であること及びそのデータがメモ
リのどの程度の領域を書替えるかが分る。そこで、演算
処理部がメモリからベクトルデータを読出そうとしたと
き、その読出しアドレス及び読出すデータのサイズとレ
ジスタファイルに格納された現(l:。
ータと対応させて該データの書込みアドレスとそのデー
タのサイズとをレジスタファイルに格納するようにして
いるので、レジスタファイルに格納されたアドレスとサ
イズとを参照すれば、そのアドレスに書込まれるべきデ
ータが現在演算処理中であること及びそのデータがメモ
リのどの程度の領域を書替えるかが分る。そこで、演算
処理部がメモリからベクトルデータを読出そうとしたと
き、その読出しアドレス及び読出すデータのサイズとレ
ジスタファイルに格納された現(l:。
処理中のデータのアドレス及びサイズとから、読み出そ
うとしているメモリの領域と現在処理中でその後に書込
まれるメモリの領域との重複を検査し、もし重複が検出
された場合にはメモリからの読出しを待たせるようにし
ている。従って、演算処理部は、このような待機指示が
なされない限り、メモリ゛からベクトルデータを順次読
み出し、パイ正指令が出ない限り、ベクトル化+1J能
なものとして処理を進めるので、ベクトル化できる部分
は全てベクトル化されベクトル演算を大幅にスピードア
ップすることができる。
うとしているメモリの領域と現在処理中でその後に書込
まれるメモリの領域との重複を検査し、もし重複が検出
された場合にはメモリからの読出しを待たせるようにし
ている。従って、演算処理部は、このような待機指示が
なされない限り、メモリ゛からベクトルデータを順次読
み出し、パイ正指令が出ない限り、ベクトル化+1J能
なものとして処理を進めるので、ベクトル化できる部分
は全てベクトル化されベクトル演算を大幅にスピードア
ップすることができる。
(実施例)
以下、図面に示した実施例に基づいて本発明の詳細な説
明する。
明する。
第2図は本発明の一実施例に係るベクトル計算機の概略
1.!、7成を示す図である。
1.!、7成を示す図である。
ベクトル計算機は、ベクトルデータを格納するメモリ]
]と、このメモリ11からベクトルデータを順次読み出
して、パイプライン方式に基づくベクトル処理を行ない
、その演算結果をメモリ1]に格納する演算処理部12
と、この演算処理部〕2かメモリ]1からデータを読み
出すのを許6Jするためのパイプライン制御部13とで
h′4成されている。
]と、このメモリ11からベクトルデータを順次読み出
して、パイプライン方式に基づくベクトル処理を行ない
、その演算結果をメモリ1]に格納する演算処理部12
と、この演算処理部〕2かメモリ]1からデータを読み
出すのを許6Jするためのパイプライン制御部13とで
h′4成されている。
メモリ11は、〕ワード2ハイド構成のメモリで、8ビ
ツトのアドレス空間を持ち、ワード単位とバイト11位
の二通りのアクセスが可能なものとなっている。
ツトのアドレス空間を持ち、ワード単位とバイト11位
の二通りのアクセスが可能なものとなっている。
演算処理部12は、3段のパイプライン処理を行なうも
のとなっている。
のとなっている。
パイプライン制御部13は、具体的には、第1図に示す
ように構成されている。
ように構成されている。
即ち、書込み情報レジスタ(以下、「Wレジスタ」と呼
ぶ)21は、演算処理部12からアドレスバスABを介
して与えられる書込みアドレスWAと、DS線を介して
与えられるデータサイズWDSと、VB線を介して与え
られるバリッドピッl−W V Bとを書込み情報とし
て格納する。
ぶ)21は、演算処理部12からアドレスバスABを介
して与えられる書込みアドレスWAと、DS線を介して
与えられるデータサイズWDSと、VB線を介して与え
られるバリッドピッl−W V Bとを書込み情報とし
て格納する。
レジスタファイル22は、縦続接続されたシフトレジス
タ構成の3段のレジスタ2B、24゜25からなり、W
レジスタ2]に格納された書込み情報を順次格納し、格
納した順に出力するF I F O(F 1rst i
n F 1rsL out)メモリを構成するものであ
る。このレジスタファイル22の段数(3段)は演算処
理部13におけるパイプラインの段数に対応している。
タ構成の3段のレジスタ2B、24゜25からなり、W
レジスタ2]に格納された書込み情報を順次格納し、格
納した順に出力するF I F O(F 1rst i
n F 1rsL out)メモリを構成するものであ
る。このレジスタファイル22の段数(3段)は演算処
理部13におけるパイプラインの段数に対応している。
このレジスタファイル22の各レジスタ23〜25には
、現在パイプラインのステージにある演算途中のデータ
の書込みアドレスWAi (i=1.2.3)とデー
タサイズDSiとデータの有効性を示すバリッドピット
VBiとが格納される。
、現在パイプラインのステージにある演算途中のデータ
の書込みアドレスWAi (i=1.2.3)とデー
タサイズDSiとデータの有効性を示すバリッドピット
VBiとが格納される。
読出し情報レジスタ(以下、「Rレジスタ」と呼ぶ)2
6は、演算処理部12からアドレスバスABを介して与
えられる読出しアドレスRAと、DS線を介して与えら
れるデータサイズRDSと、VB線を介して与えられる
バリッドビットRVBとを+’%出し情報として格納す
る。両レジスタ21゜26への書込みタイミングは、例
えば演算処理部]1から出力されるライト信号Wによっ
て与えられる。
6は、演算処理部12からアドレスバスABを介して与
えられる読出しアドレスRAと、DS線を介して与えら
れるデータサイズRDSと、VB線を介して与えられる
バリッドビットRVBとを+’%出し情報として格納す
る。両レジスタ21゜26への書込みタイミングは、例
えば演算処理部]1から出力されるライト信号Wによっ
て与えられる。
これら書込み情報及び読出し情報は、10ビットのデー
タであり、第3図に示すように、下色8ビットにアドレ
ス情報か配置され、上位2ビツト目にサイズビットが配
置され、最上位ビット(msb)にバリッドピットが配
置されたものとなっている。サイズビットは、′0“の
ときに書込み又は読出しされるデータのサイズがワード
であることを示し、“1′のときに読出し又は書込みさ
れるデータのサイズがバイトであることを示している。
タであり、第3図に示すように、下色8ビットにアドレ
ス情報か配置され、上位2ビツト目にサイズビットが配
置され、最上位ビット(msb)にバリッドピットが配
置されたものとなっている。サイズビットは、′0“の
ときに書込み又は読出しされるデータのサイズがワード
であることを示し、“1′のときに読出し又は書込みさ
れるデータのサイズがバイトであることを示している。
また、バリッドピットは、“1”のとに格納された書込
み情報と、Rレジスタ26に格納された読出し情報とは
コンパレータ27,28゜29にそれぞれ与えられてい
る。コンパレータ27〜2つは、各レジスタ23〜25
に格納された書込み情報と上記読出し情報とから、メモ
リ12の書込み領域及び読出し領域の重複を検査し、そ
の結果、重複が検出された場合には、“0“を出力し、
重複が検出されなかったら“1”を出力する。これらコ
ンパレータ27〜29からの検査結果は、アンドゲート
30に)、えられている。
み情報と、Rレジスタ26に格納された読出し情報とは
コンパレータ27,28゜29にそれぞれ与えられてい
る。コンパレータ27〜2つは、各レジスタ23〜25
に格納された書込み情報と上記読出し情報とから、メモ
リ12の書込み領域及び読出し領域の重複を検査し、そ
の結果、重複が検出された場合には、“0“を出力し、
重複が検出されなかったら“1”を出力する。これらコ
ンパレータ27〜29からの検査結果は、アンドゲート
30に)、えられている。
アンドゲート30は、いずれか一つのコンパレータ27
〜29で重1夏が検出されたら、REQ信号を“0”に
して演算処理部11かメモリ12からデータを読出すの
を禁止し、いずれのコンパレータ27〜2つからも重1
夏か検出されなかったら、REQ信号を“1″にして演
算処理部11がメモリ12からデータを読出すのを許可
する。
〜29で重1夏が検出されたら、REQ信号を“0”に
して演算処理部11かメモリ12からデータを読出すの
を禁止し、いずれのコンパレータ27〜2つからも重1
夏か検出されなかったら、REQ信号を“1″にして演
算処理部11がメモリ12からデータを読出すのを許可
する。
第4図はコンパレータ27の史に詳細な構成を示した図
である。なお、コンパレータ28,29もこれと同様な
構成をHしているので、これらの8つのXORゲート3
1〜38は、レジスタファイル22内の1段[」のレジ
スタ23上の8ビツトの書込みアドレスWAIとRレジ
スタ26上の8ビツトの読出しアドレスRAの各対応す
るビットを比較するためのもので、ビットが一致した場
合に、“0′を出力する。アドレスのLSBを比較する
XORゲート31の出力は、アンドゲート40の一つの
入力として与えられている。このアンドゲート40の他
の2つの入力には、レジスタファイル22の1段口のレ
ジスタ23に格納されたサイズビットWDSと、Rレジ
スタ26に格納されたサイズビットRDSとが人力され
ている。
である。なお、コンパレータ28,29もこれと同様な
構成をHしているので、これらの8つのXORゲート3
1〜38は、レジスタファイル22内の1段[」のレジ
スタ23上の8ビツトの書込みアドレスWAIとRレジ
スタ26上の8ビツトの読出しアドレスRAの各対応す
るビットを比較するためのもので、ビットが一致した場
合に、“0′を出力する。アドレスのLSBを比較する
XORゲート31の出力は、アンドゲート40の一つの
入力として与えられている。このアンドゲート40の他
の2つの入力には、レジスタファイル22の1段口のレ
ジスタ23に格納されたサイズビットWDSと、Rレジ
スタ26に格納されたサイズビットRDSとが人力され
ている。
このアンドゲート40は、読出すデータ或はパイプライ
ンの1段目で処理されているデータのサイズかワードを
示したとき、つまりRDS。
ンの1段目で処理されているデータのサイズかワードを
示したとき、つまりRDS。
WDSIのいずれか一方が“0”を示したときに、アド
レスのLSBの一致、不一致に拘らずその出力を“0”
にするためのものである。このアンドヶ−1・40の出
力及びXORゲート32〜38の出力は、NORゲート
41に入力されている。
レスのLSBの一致、不一致に拘らずその出力を“0”
にするためのものである。このアンドヶ−1・40の出
力及びXORゲート32〜38の出力は、NORゲート
41に入力されている。
NORゲート41は、レジスタファイル22の1段口の
レジスタ23に格納された書込みアドレスWAIとRレ
ジスタ26に格納された読出しアドレスRAとが一致若
しくは一部重複した場合に、“1”を出力する。このN
ORゲート41の出力は、NANDゲート42の一方の
入力にりえられている。NANDゲート42の他方の人
力には、レジスタファイル22の1段目のレジスタ23
に格納されたバリッドピッhWVB1が人力されている
。また、このNANDゲート42の出力は、ANDゲー
ト4Bに入力されており、史にこのANDゲート43の
他方の人力には、Rレジスタ26上のバリッドピッI−
RV Bが入力されている。
レジスタ23に格納された書込みアドレスWAIとRレ
ジスタ26に格納された読出しアドレスRAとが一致若
しくは一部重複した場合に、“1”を出力する。このN
ORゲート41の出力は、NANDゲート42の一方の
入力にりえられている。NANDゲート42の他方の人
力には、レジスタファイル22の1段目のレジスタ23
に格納されたバリッドピッhWVB1が人力されている
。また、このNANDゲート42の出力は、ANDゲー
ト4Bに入力されており、史にこのANDゲート43の
他方の人力には、Rレジスタ26上のバリッドピッI−
RV Bが入力されている。
これらNANDゲート42及びANDケート43は、バ
リッドピッI−WVB1、RVBによってアドレス比較
の結果を補正するために設けられている。この二つのゲ
ートにより、Rレジスタ26上のアドレスが無効、即ち
RVBが“0“のときには、アドレスの領域が重なって
いなくても読出しアドレスか無効であるから、メモリか
らのデータの読出しを行なわないようにコンパレータか
らは“0“が出力され、またRレジスタ26上のアドレ
スが有効で、かつレジスタフィル22内のアドレスが無
効のとき、即ちWVBIが“0“のとき(4は、読出し
アドレスと書込みアドレスの重複が検出された場合でも
、比較したアドレスの1つが無効であることから、コン
パレータからは“1”が出力される。
リッドピッI−WVB1、RVBによってアドレス比較
の結果を補正するために設けられている。この二つのゲ
ートにより、Rレジスタ26上のアドレスが無効、即ち
RVBが“0“のときには、アドレスの領域が重なって
いなくても読出しアドレスか無効であるから、メモリか
らのデータの読出しを行なわないようにコンパレータか
らは“0“が出力され、またRレジスタ26上のアドレ
スが有効で、かつレジスタフィル22内のアドレスが無
効のとき、即ちWVBIが“0“のとき(4は、読出し
アドレスと書込みアドレスの重複が検出された場合でも
、比較したアドレスの1つが無効であることから、コン
パレータからは“1”が出力される。
次に以上のように構成された本実施例に係るベクトル計
算機の作用について説明する。
算機の作用について説明する。
まず、第1のサイクルCIでレジスタファイル22の1
段目のレジスタ23にアドレス“1.0 H″、サイズ
“ワード″の古込み情報が格納され、またRレジスタ2
6にアドレス“IIH”、サイズバイト”の読出し情報
が格納されたとする。これら画情報は有効であるので、
バリッドビットWVBI、RVBは、いずれも1″とな
っている。なお、Wレジスタ21には、Rレジスタ26
で示されたメモリ内のデータによる演算の結果か格納さ
れるべきアドレスが記憶されている。サイクルC1では
、コンパレータ27によりアドレス“10H” とアド
レス“11H“どの比較が行われるが、両者の比較結果
は一致し、どちらのアドレスも有効なのでコンパレータ
27の出力は“0”となり、REQ信号が“0”となっ
てアドレス“1 ]、 H”によるデータの読出しは行
われず、アドレス“IIH”はRレジスタ26の上に有
効なまま残る。同時に、アドレス較が、コンパレータ2
8により行イっれ、同様に“0”が出力され、アドレス
“11 H”はRレジスタ26の上に残り、アドレス“
IOH”は3段目に移る。
段目のレジスタ23にアドレス“1.0 H″、サイズ
“ワード″の古込み情報が格納され、またRレジスタ2
6にアドレス“IIH”、サイズバイト”の読出し情報
が格納されたとする。これら画情報は有効であるので、
バリッドビットWVBI、RVBは、いずれも1″とな
っている。なお、Wレジスタ21には、Rレジスタ26
で示されたメモリ内のデータによる演算の結果か格納さ
れるべきアドレスが記憶されている。サイクルC1では
、コンパレータ27によりアドレス“10H” とアド
レス“11H“どの比較が行われるが、両者の比較結果
は一致し、どちらのアドレスも有効なのでコンパレータ
27の出力は“0”となり、REQ信号が“0”となっ
てアドレス“1 ]、 H”によるデータの読出しは行
われず、アドレス“IIH”はRレジスタ26の上に有
効なまま残る。同時に、アドレス較が、コンパレータ2
8により行イっれ、同様に“0”が出力され、アドレス
“11 H”はRレジスタ26の上に残り、アドレス“
IOH”は3段目に移る。
次の第3のサイクルC3では、コンパレータ29により
両アドレスの比較が行われ、同(lに0“か出力され、
アドレス“11.H”はRレジスタ26に残る。
両アドレスの比較が行われ、同(lに0“か出力され、
アドレス“11.H”はRレジスタ26に残る。
サイクルC1からC3の間はANDゲート30の出力は
0なので、Wレジスタ21からレジスタファイル22へ
のアドレスやサイズの移動は行われない。そのため、同
一の演算の読出し用のアドレスと書込み用のアドレスと
を比較することはない。なお、サイクルC3では、アド
レス“]OH”によるデータの書込みが行われ、アドレ
ス“10 H″がレジスタファイル22から消える。こ
のことにより、次の第4のサイクルC4ではアドレス“
IIH”によるデータの読出しが行われ、Wレジスタ2
1上のアドレスとサイズとがレジスタファイル22に入
り、Rレジスタ26とWレジスタ21とには、次の演算
のデータのアドレスとサイズとが格納される。
0なので、Wレジスタ21からレジスタファイル22へ
のアドレスやサイズの移動は行われない。そのため、同
一の演算の読出し用のアドレスと書込み用のアドレスと
を比較することはない。なお、サイクルC3では、アド
レス“]OH”によるデータの書込みが行われ、アドレ
ス“10 H″がレジスタファイル22から消える。こ
のことにより、次の第4のサイクルC4ではアドレス“
IIH”によるデータの読出しが行われ、Wレジスタ2
1上のアドレスとサイズとがレジスタファイル22に入
り、Rレジスタ26とWレジスタ21とには、次の演算
のデータのアドレスとサイズとが格納される。
もし、アドレス“IOH”のサイズがバイトであったな
らば、アドレスの全ビットによる比較が行われるため、
アドレス“11H”の領域とは重−なっていないと判定
され、サイクルC1でアドレス“IIH“の読出しが行
われる。
らば、アドレスの全ビットによる比較が行われるため、
アドレス“11H”の領域とは重−なっていないと判定
され、サイクルC1でアドレス“IIH“の読出しが行
われる。
このように、この実施例によれば、書込みが行われる予
定のアドレスの領域と重なるデータの読出しは、書込み
が行われるまで待たされ、データの定義、参照順序が逐
次処理の場合と逆転することはない。また、重なってい
なければ読出しを待たせることはないように正確にメモ
リアドレスの領域の重なりの判定を行なう。そして、こ
のことにより、コンパイル時にパイプライン処理が可能
か否かの判定を行なわなくてすみ、パイプライン処理゛
の性能を十分に引出せるようになる。
定のアドレスの領域と重なるデータの読出しは、書込み
が行われるまで待たされ、データの定義、参照順序が逐
次処理の場合と逆転することはない。また、重なってい
なければ読出しを待たせることはないように正確にメモ
リアドレスの領域の重なりの判定を行なう。そして、こ
のことにより、コンパイル時にパイプライン処理が可能
か否かの判定を行なわなくてすみ、パイプライン処理゛
の性能を十分に引出せるようになる。
なお、本発明は上記実施例に限定されるものではない。
即ち、上記実施例では、読出し用のアドレスを1つだけ
設定したが、読出し用のアドレスを複数設定するように
しても良い。また、演算のパイプラインの段数は、演算
毎に異なっていても構わない。その場合は、FIFO構
成のレジスタファイルを用意すれば対応できる。更に、
アクセスのl111位となるデータのサイズをワードと
バイトの2種類に限定しているが、この発明では4バイ
トのワードに対する2バイトの/S−フワード等、多様
なアクセスのサイズを許容できる。同様にこの実施例で
は読出し用か書出し用のどちらかのデータの全領域がも
う一方の領域に重なっている場合だけを例にとったが、
第5図に示すように、両方のデータの領域の一部だけが
重なっている場合でも本発明を適用可能である。
設定したが、読出し用のアドレスを複数設定するように
しても良い。また、演算のパイプラインの段数は、演算
毎に異なっていても構わない。その場合は、FIFO構
成のレジスタファイルを用意すれば対応できる。更に、
アクセスのl111位となるデータのサイズをワードと
バイトの2種類に限定しているが、この発明では4バイ
トのワードに対する2バイトの/S−フワード等、多様
なアクセスのサイズを許容できる。同様にこの実施例で
は読出し用か書出し用のどちらかのデータの全領域がも
う一方の領域に重なっている場合だけを例にとったが、
第5図に示すように、両方のデータの領域の一部だけが
重なっている場合でも本発明を適用可能である。
[発明の効果コ
以上、説明したように、この発明によれば、実行時に読
出しと書込みのデータのワード領域の重なりを正確に判
定し、データの定義、参照の順番をプログラム文の順番
通りに行なえる。このことにより、コンパイル時にデー
タの領域の重なりを正確に判定できないような多くの演
算についてもパイプライン処理を実行できる。そして、
その際、実行結果の正しさは保証される。したがって、
)くイブライン方式の計算機に対して、プログラム言語
に制限を加える必要はなくなる。また、データの定義、
参照関係を正確に判定しようとする複雑な処理を組込ん
だ巨大なコンパイラ等の言語処理システムも作成せずに
、たとえそのようなコンノ々これらの効果を実施例に示
したように、簡単な構成で実現できる。
出しと書込みのデータのワード領域の重なりを正確に判
定し、データの定義、参照の順番をプログラム文の順番
通りに行なえる。このことにより、コンパイル時にデー
タの領域の重なりを正確に判定できないような多くの演
算についてもパイプライン処理を実行できる。そして、
その際、実行結果の正しさは保証される。したがって、
)くイブライン方式の計算機に対して、プログラム言語
に制限を加える必要はなくなる。また、データの定義、
参照関係を正確に判定しようとする複雑な処理を組込ん
だ巨大なコンパイラ等の言語処理システムも作成せずに
、たとえそのようなコンノ々これらの効果を実施例に示
したように、簡単な構成で実現できる。
第1図乃至第4図は本発明の一実施例に係るベクトル計
算機を説明するための図で、第1図は要部構成を示すブ
ロック図、第2図は全体(14成を示すブロック図、第
3図は各レジスタに格納される情報の構成を示す図、第
4図はコンパレータの詳細ブロック図、第5図は本発明
の他の実施例で検査されるメモリアドレスの重なりの態
様を示す図、第6図及び第7図は従来のパイプライン処
理をそれぞれ説明するための図、第8図乃至第12図は
従来パイプライン処理を実行できなかった例をそれぞれ
示す図である。 11・・・演算処理部、12・・・メモリ、13・・・
パイプライン制御部、21・・・書込み情報レジスタ(
Wレジスタ)、22・・・レジスタファイル、23〜2
5・・・レジスタ、26・・・読出し情報レジスタ(R
レジスタ)、27〜29・・・コンパレータ、30゜4
0.43・・・ANDゲート、31〜38・・XORゲ
ート、41・・・N、ORゲート、42・・NANDゲ
ート。 出願人 工業技術院長 飯塚幸三 第2図 第 3 因 第4図 テーク2 第6図 第8図 第9図 第10図 第11図 り 第12図
算機を説明するための図で、第1図は要部構成を示すブ
ロック図、第2図は全体(14成を示すブロック図、第
3図は各レジスタに格納される情報の構成を示す図、第
4図はコンパレータの詳細ブロック図、第5図は本発明
の他の実施例で検査されるメモリアドレスの重なりの態
様を示す図、第6図及び第7図は従来のパイプライン処
理をそれぞれ説明するための図、第8図乃至第12図は
従来パイプライン処理を実行できなかった例をそれぞれ
示す図である。 11・・・演算処理部、12・・・メモリ、13・・・
パイプライン制御部、21・・・書込み情報レジスタ(
Wレジスタ)、22・・・レジスタファイル、23〜2
5・・・レジスタ、26・・・読出し情報レジスタ(R
レジスタ)、27〜29・・・コンパレータ、30゜4
0.43・・・ANDゲート、31〜38・・XORゲ
ート、41・・・N、ORゲート、42・・NANDゲ
ート。 出願人 工業技術院長 飯塚幸三 第2図 第 3 因 第4図 テーク2 第6図 第8図 第9図 第10図 第11図 り 第12図
Claims (1)
- ベクトルデータを格納するメモリと、このメモリから順
次ベクトルデータを読み出してパイプライン方式による
ベクトル演算処理を行ない、その演算結果を前記メモリ
に格納する演算処理部と、パイプラインの各ステージに
保持されている演算処理中のデータの書込みアドレスと
上記データのサイズとを前記パイプラインの各ステージ
に対応させて格納するレジスタファイルと、前記パイプ
ラインから順次出力される演算結果を前記レジスタファ
イルから順次読出した前記書込みアドレスで指定される
前記メモリの記憶場所に格納する手段と、前記演算処理
部が前記メモリから前記ベクトルデータを読出す際に、
その読出しアドレス及び読出すデータのサイズと前記レ
ジスタファイル内に格納されているアドレス及びデータ
のサイズとに基づいて前記メモリの前記両アドレスで指
定される領域の重複の有無を検査する手段と、この手段
で重複が検出された場合には前記メモリからの読出しを
待たせる手段とを具備したことを特徴とするベクトル計
算機。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63030877A JPH0746350B2 (ja) | 1988-02-15 | 1988-02-15 | ベクトル計算機 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63030877A JPH0746350B2 (ja) | 1988-02-15 | 1988-02-15 | ベクトル計算機 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH01206462A true JPH01206462A (ja) | 1989-08-18 |
JPH0746350B2 JPH0746350B2 (ja) | 1995-05-17 |
Family
ID=12315965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63030877A Expired - Lifetime JPH0746350B2 (ja) | 1988-02-15 | 1988-02-15 | ベクトル計算機 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0746350B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010140306A (ja) * | 2008-12-12 | 2010-06-24 | Nec Corp | バウンダリ実行制御システム、バウンダリ実行制御方法、及びバウンダリ実行制御プログラム |
CN114579083A (zh) * | 2022-05-09 | 2022-06-03 | 上海擎昆信息科技有限公司 | 一种基于矢量处理器的数据处理装置和方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61170830A (ja) * | 1985-01-25 | 1986-08-01 | Fujitsu Ltd | レジスタ参照方法 |
JPS62237573A (ja) * | 1986-04-09 | 1987-10-17 | Hitachi Ltd | 巡回演算制御機構を有するベクトル処理装置 |
-
1988
- 1988-02-15 JP JP63030877A patent/JPH0746350B2/ja not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61170830A (ja) * | 1985-01-25 | 1986-08-01 | Fujitsu Ltd | レジスタ参照方法 |
JPS62237573A (ja) * | 1986-04-09 | 1987-10-17 | Hitachi Ltd | 巡回演算制御機構を有するベクトル処理装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010140306A (ja) * | 2008-12-12 | 2010-06-24 | Nec Corp | バウンダリ実行制御システム、バウンダリ実行制御方法、及びバウンダリ実行制御プログラム |
CN114579083A (zh) * | 2022-05-09 | 2022-06-03 | 上海擎昆信息科技有限公司 | 一种基于矢量处理器的数据处理装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
JPH0746350B2 (ja) | 1995-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6061783A (en) | Method and apparatus for manipulation of bit fields directly in a memory source | |
US7240159B2 (en) | Data processor having cache memory | |
US4882701A (en) | Lookahead program loop controller with register and memory for storing number of loop times for branch on count instructions | |
JPH0228173B2 (ja) | ||
JPS6217252B2 (ja) | ||
JPS59117666A (ja) | ベクトル処理装置 | |
US5752015A (en) | Method and apparatus for repetitive execution of string instructions without branch or loop microinstructions | |
JPH0477347B2 (ja) | ||
US5297266A (en) | Apparatus and method for controlling memory requests in an information processor | |
US4969117A (en) | Chaining and hazard apparatus and method | |
JPH01206462A (ja) | ベクトル計算機 | |
US5951676A (en) | Apparatus and method for direct loading of offset register during pointer load operation | |
US5418975A (en) | Wide instruction word architecture central processor | |
US4616315A (en) | System memory for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes | |
JPS6049340B2 (ja) | 分岐命令先取り方式 | |
US5819081A (en) | Method of executing a branch instruction of jumping to a subroutine in a pipeline control system | |
US4935849A (en) | Chaining and hazard apparatus and method | |
US4598361A (en) | Allocator for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes | |
US5925122A (en) | Data processing unit which pre-fetches instructions of different lengths to conduct processing | |
US5396640A (en) | Boosting method and apparatus in a parallel computer | |
US5815729A (en) | Method and apparatus for on the fly descriptor validation | |
JP3278441B2 (ja) | ベクトル処理装置 | |
JP3771682B2 (ja) | ベクトル処理装置 | |
JPS6120907B2 (ja) | ||
JPS63240634A (ja) | 情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EXPY | Cancellation because of completion of term |