JPH0652530B2 - ベクトル・プロセッサ - Google Patents
ベクトル・プロセッサInfo
- Publication number
- JPH0652530B2 JPH0652530B2 JP57187828A JP18782882A JPH0652530B2 JP H0652530 B2 JPH0652530 B2 JP H0652530B2 JP 57187828 A JP57187828 A JP 57187828A JP 18782882 A JP18782882 A JP 18782882A JP H0652530 B2 JPH0652530 B2 JP H0652530B2
- Authority
- JP
- Japan
- Prior art keywords
- vector
- read
- register
- data
- registers
- 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.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8092—Array of vector units
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)
Description
【発明の詳細な説明】 〔発明の利用分野〕 本発明は、ベクトル演算が高速に実行可能なベクトル処
理向きデイジタル形電子計算機(以下、ベクトル・プロ
セツサと呼ぶ)に係り、詳しくはベクトル・プロセツサ
に含まれるベクトル・レジスタの構成に関するものであ
る。
理向きデイジタル形電子計算機(以下、ベクトル・プロ
セツサと呼ぶ)に係り、詳しくはベクトル・プロセツサ
に含まれるベクトル・レジスタの構成に関するものであ
る。
従来、科学技術計算に頻繁に表われる大型行列計算等の
高速処理を行うベクトル・プロセツサが種々提案されて
いる。その一つに、ベクトル・プロセツサに含まれる複
数個のパイプライン演算器の高速性、並列性が有効に発
揮できるように、演算データの転送能力を向上させるべ
く、ベクトル・レジスタを備えたベクトル・プロセツサ
がある(米国特許4,128,800 )。
高速処理を行うベクトル・プロセツサが種々提案されて
いる。その一つに、ベクトル・プロセツサに含まれる複
数個のパイプライン演算器の高速性、並列性が有効に発
揮できるように、演算データの転送能力を向上させるべ
く、ベクトル・レジスタを備えたベクトル・プロセツサ
がある(米国特許4,128,800 )。
第1図は上記ベクトル・レジスタを備えたベクトル・プ
ロセツサの一般的ブロツク図である。第1図に於いて、
ベクトル・レジスタ(VR)1はベクトルを形成する一
連のエレメント・データを格納することができ、例え
ば、各々のベクトル・レジスタは8バイト長のエレメン
トを64個格納できる。演算に必要なベクトルのエレメン
トは、主記憶装置(MS)5よりフエツチ・データ線10
を通して順次フエツチされ、分配回路2を介して、ベク
トル命令で指定された番号のベクトル・レジスタ1へ書
込データ線6経由で一担書込まれる。その後、演算に応
じて、適当なベクトル・レジスタ1より読出データ線7
経由でエレメントが順次読出され、選択回路3を介し
て、演算オペランド線8経由で目的の演算器4にオペラ
ンドとして入力される。演算器4より出力された演算結
果は、演算結果線9経由で分配回路2を介し、指定され
たベクトル・レジスタ1へ書込データ線6経由で順次書
込まれる。演算器4は浮動小数点加算器、乗算器など
の、それぞれ独立した演算器である。このような演算器
4とベクトル・レジスタ1間のデータ転送を繰り返した
後で、得られた最終結果ベクトルは、ベクトル・レジス
タ1から選択回路3、書込データ線11を介して主記憶装
置5へ順次ストアされる。
ロセツサの一般的ブロツク図である。第1図に於いて、
ベクトル・レジスタ(VR)1はベクトルを形成する一
連のエレメント・データを格納することができ、例え
ば、各々のベクトル・レジスタは8バイト長のエレメン
トを64個格納できる。演算に必要なベクトルのエレメン
トは、主記憶装置(MS)5よりフエツチ・データ線10
を通して順次フエツチされ、分配回路2を介して、ベク
トル命令で指定された番号のベクトル・レジスタ1へ書
込データ線6経由で一担書込まれる。その後、演算に応
じて、適当なベクトル・レジスタ1より読出データ線7
経由でエレメントが順次読出され、選択回路3を介し
て、演算オペランド線8経由で目的の演算器4にオペラ
ンドとして入力される。演算器4より出力された演算結
果は、演算結果線9経由で分配回路2を介し、指定され
たベクトル・レジスタ1へ書込データ線6経由で順次書
込まれる。演算器4は浮動小数点加算器、乗算器など
の、それぞれ独立した演算器である。このような演算器
4とベクトル・レジスタ1間のデータ転送を繰り返した
後で、得られた最終結果ベクトルは、ベクトル・レジス
タ1から選択回路3、書込データ線11を介して主記憶装
置5へ順次ストアされる。
次に、ベクトル演算の簡単な例を挙げて、第1図のよう
なベクトル・レジスタを備えるベクトル・プロセツサの
特徴について考察する。いま、FORTRAN文 DO 10 1=1、L 10 Y(I)=A(I)+B(I)*C(I) の処理を、ベクトル命令形式に表現すると、 のようになる。たゞし、VRはベクトル・レジスタを表
わす。各ベクトル命令は、演算およびデータ転送をエレ
メントL個分、繰り返し実行する。
なベクトル・レジスタを備えるベクトル・プロセツサの
特徴について考察する。いま、FORTRAN文 DO 10 1=1、L 10 Y(I)=A(I)+B(I)*C(I) の処理を、ベクトル命令形式に表現すると、 のようになる。たゞし、VRはベクトル・レジスタを表
わす。各ベクトル命令は、演算およびデータ転送をエレ
メントL個分、繰り返し実行する。
一般的に、ベクトル・レジスタを備えるベクトル・プロ
セツサは、演算の中間結果のベクトルを一時的にベクト
ル・レジスタへ格納し、最終結果ベクトルのみを主記憶
装置へストアすることで、実質的に主記憶装置との間の
データ転送回数が減少するため、ベクトル・レジスタの
書込み、読出し動作を高速化し、これに比べ主記憶装置
のアクセス能力を低く構成しても、演算に必要なデータ
転送能力を確保する事が可能である。
セツサは、演算の中間結果のベクトルを一時的にベクト
ル・レジスタへ格納し、最終結果ベクトルのみを主記憶
装置へストアすることで、実質的に主記憶装置との間の
データ転送回数が減少するため、ベクトル・レジスタの
書込み、読出し動作を高速化し、これに比べ主記憶装置
のアクセス能力を低く構成しても、演算に必要なデータ
転送能力を確保する事が可能である。
次に、前述した例の第4と5の命令に着目してみると、
先行命令4の乗算結果を格納するVR“3”は、後続の
ベクトル加算命令5のオペランドを読出すべきVRにも
なつている。もしも、第4のベクトル乗算命令により、
L個の結果が全てVR“3”へ書込れるまで待つて、後
続のベクトル加算命令5を起動するように制御すれば、
複数の演算器の並列動作を有効に生かせず、処理時間は
延びる。このように、先行するベクトル命令の演算結
果、あるいはフエツチ・データを格納するVRを、後行
のベクトル命令がオペランドとして読出すための待ち合
せの関係は、前述した例の第2または3のベクトル命令
と第4のベクトル命令の間、第1と第5の間、第5と第
6の間にも存在している。この待ち合せを解決する方法
がチエイニング機能である。チエイニングとは、主記憶
装置より読出したデータ、あるいは、先行のベクトル命
令で得られる演算結果をベクトル・レジスタへ書込むと
同時に、即時に後行のベクトル命令のオペランドとして
演算器へ転送するか、あるいは主記憶へ転送することで
ある。これに依り、多項形のベクトル計算に於いても、
複数の演算器を有効に作動させて演算の並列性を高め、
高速処理を行うことができる。
先行命令4の乗算結果を格納するVR“3”は、後続の
ベクトル加算命令5のオペランドを読出すべきVRにも
なつている。もしも、第4のベクトル乗算命令により、
L個の結果が全てVR“3”へ書込れるまで待つて、後
続のベクトル加算命令5を起動するように制御すれば、
複数の演算器の並列動作を有効に生かせず、処理時間は
延びる。このように、先行するベクトル命令の演算結
果、あるいはフエツチ・データを格納するVRを、後行
のベクトル命令がオペランドとして読出すための待ち合
せの関係は、前述した例の第2または3のベクトル命令
と第4のベクトル命令の間、第1と第5の間、第5と第
6の間にも存在している。この待ち合せを解決する方法
がチエイニング機能である。チエイニングとは、主記憶
装置より読出したデータ、あるいは、先行のベクトル命
令で得られる演算結果をベクトル・レジスタへ書込むと
同時に、即時に後行のベクトル命令のオペランドとして
演算器へ転送するか、あるいは主記憶へ転送することで
ある。これに依り、多項形のベクトル計算に於いても、
複数の演算器を有効に作動させて演算の並列性を高め、
高速処理を行うことができる。
このように、チエイニングはベクトル命令間に着目し
て、その高速化を計る方法である。これとは別に、或る
一つのベクトル命令をエレメント単位で分割し、これを
複数の演算器で並行処理させ、高速化を計る方法が考え
られる。例えば、ベクトル命令をエレメント“I”
(0、2、……I…)と、“I+1”(1、3、……I
+1…)に分割し、この2つのエレメント列をベクトル
・レジスタから同時に読出し、2つの演算器で並行して
処理する。その後、この2つの演算器より得られる結果
を同時にベクトル・レジスタへ書込むという方法であ
る。こゝではエレメントの2分割を考えたが、一般的に
n個の演算器を並列に動作させれば、ベクトル・エレメ
ントをn列に分割して処理する事ができる。
て、その高速化を計る方法である。これとは別に、或る
一つのベクトル命令をエレメント単位で分割し、これを
複数の演算器で並行処理させ、高速化を計る方法が考え
られる。例えば、ベクトル命令をエレメント“I”
(0、2、……I…)と、“I+1”(1、3、……I
+1…)に分割し、この2つのエレメント列をベクトル
・レジスタから同時に読出し、2つの演算器で並行して
処理する。その後、この2つの演算器より得られる結果
を同時にベクトル・レジスタへ書込むという方法であ
る。こゝではエレメントの2分割を考えたが、一般的に
n個の演算器を並列に動作させれば、ベクトル・エレメ
ントをn列に分割して処理する事ができる。
以上、エレメント分割による並行処理も、チエイニング
にしても、要となるのはベクトル・レジスタの読出し、
書込み能力である。すなわち、エレメント分割による並
行処理については、その並行処理されるエレメント列の
数(並列処理の要素数)を“n”とすると、n個のエレ
メントの読出し、あるいは書込みが1サイクルで同時に
行われなければならない。又、チエイニングについて
は、同一ベクトル・レジスタに対し、1サイクルで同時
に読出し、書込みができなければならない。さらに、当
該n個にエレメントを分割して並行処理を行うベクトル
・プロセツサに、チエイニング機能を持たせる事も可能
である。この場合、ベクトル・レジスタとして1サイク
ルに2n個の読出し、書込みのできるものが要求され
る。
にしても、要となるのはベクトル・レジスタの読出し、
書込み能力である。すなわち、エレメント分割による並
行処理については、その並行処理されるエレメント列の
数(並列処理の要素数)を“n”とすると、n個のエレ
メントの読出し、あるいは書込みが1サイクルで同時に
行われなければならない。又、チエイニングについて
は、同一ベクトル・レジスタに対し、1サイクルで同時
に読出し、書込みができなければならない。さらに、当
該n個にエレメントを分割して並行処理を行うベクトル
・プロセツサに、チエイニング機能を持たせる事も可能
である。この場合、ベクトル・レジスタとして1サイク
ルに2n個の読出し、書込みのできるものが要求され
る。
第2図に並行処理されるエレメント列の数“n”を2と
した場合のベクトル・レジスタの従来方式を示す。この
方式はベクトル・レジスタ・アレイとして周辺回路系と
同等の速度を持つたRAM(ランダム・アクセス・メモ
リ)100を使用する事を前提としている。図中、101、10
2で示すWDR0/1は書込データ・レジスタ、103、10
4で示すRDR0/1は読出データ・レジスタ、105、106で
示すWAR0/1は書込アドレス・レジスタ、107、108
で示すRAR0/1は読出アドレス・レジスタであり、109
〜114はセレクタを示している。それぞれのレジスタに
付加した番号0/1は、“0”がベクトル・エレメント列
I(0、2、4……I…)、“1”はI+1(1、3、
5、……I+1…)を処理するレジスタである事を示し
ている。図はベクトル・レジスタ・アレイを形成してい
るRAMを4バンクに分割することにより、1サイクル
で4エレメントのアクセスを可能にしている。すなわ
ち、バンクの競合がなければ、1サイクルに2エレメン
トの書込みと、2エレメントの読出しが同時にできる。
例えば、WDR(0) 101、WDR(1)102のデータをWA
R(0) 105、WAR(1) 106で示されるエレメント番号
4、5に書込むと同時に、RAR(0) 107、RAR(1) 1
08で示されるエレメント番号6、7のデータをRDR
(0) 103、RDR(1)104に読出すことが可能である。
した場合のベクトル・レジスタの従来方式を示す。この
方式はベクトル・レジスタ・アレイとして周辺回路系と
同等の速度を持つたRAM(ランダム・アクセス・メモ
リ)100を使用する事を前提としている。図中、101、10
2で示すWDR0/1は書込データ・レジスタ、103、10
4で示すRDR0/1は読出データ・レジスタ、105、106で
示すWAR0/1は書込アドレス・レジスタ、107、108
で示すRAR0/1は読出アドレス・レジスタであり、109
〜114はセレクタを示している。それぞれのレジスタに
付加した番号0/1は、“0”がベクトル・エレメント列
I(0、2、4……I…)、“1”はI+1(1、3、
5、……I+1…)を処理するレジスタである事を示し
ている。図はベクトル・レジスタ・アレイを形成してい
るRAMを4バンクに分割することにより、1サイクル
で4エレメントのアクセスを可能にしている。すなわ
ち、バンクの競合がなければ、1サイクルに2エレメン
トの書込みと、2エレメントの読出しが同時にできる。
例えば、WDR(0) 101、WDR(1)102のデータをWA
R(0) 105、WAR(1) 106で示されるエレメント番号
4、5に書込むと同時に、RAR(0) 107、RAR(1) 1
08で示されるエレメント番号6、7のデータをRDR
(0) 103、RDR(1)104に読出すことが可能である。
ところで、第2図のようなバンク分割の方法を採用した
場合、2つの読出動作の間、あるいは2つの書込動作の
間には、アクセスの競合は発生しないが、同一エレメン
ト列の読出動作と書込動作の間でバンクの競合が発生す
る。すなわち第2図のようなベクトル・レジスタを有す
るベクトル・プロセツサでは、このような競合の発生し
た時に備えて読出動作を待たせる等の機能が付加されね
ばならない。又、第2図の方式はRAMとその周辺のア
ドレス・レジスタやデータ・レジスタを構成する回路部
との接続インタフエースを大量に必要とする為、RAM
の実装エリアが大きくなる欠点を持つている。
場合、2つの読出動作の間、あるいは2つの書込動作の
間には、アクセスの競合は発生しないが、同一エレメン
ト列の読出動作と書込動作の間でバンクの競合が発生す
る。すなわち第2図のようなベクトル・レジスタを有す
るベクトル・プロセツサでは、このような競合の発生し
た時に備えて読出動作を待たせる等の機能が付加されね
ばならない。又、第2図の方式はRAMとその周辺のア
ドレス・レジスタやデータ・レジスタを構成する回路部
との接続インタフエースを大量に必要とする為、RAM
の実装エリアが大きくなる欠点を持つている。
本発明の目的は、ベクトル・レジスタを簡単に読出し、
書込みができる構造とし、ベクトル・プロセツサの高速
処理の為ベクトル命令のエレメント分割処理及びチエイ
ニング処理を円滑に行うことにある。
書込みができる構造とし、ベクトル・プロセツサの高速
処理の為ベクトル命令のエレメント分割処理及びチエイ
ニング処理を円滑に行うことにある。
上記の目的を達成するため、本発明はベクトル・レジス
タとして、周辺の演算器等を構成する回路系よりも相対
的に2n倍(nは並列処理の要素数)高速な回路系を用
いて、他の要素の1動作サイクル中に、同一ベクトル・
レジスタに対してn回の書込み動作とn回の読出し動作
を可能にするものである。
タとして、周辺の演算器等を構成する回路系よりも相対
的に2n倍(nは並列処理の要素数)高速な回路系を用
いて、他の要素の1動作サイクル中に、同一ベクトル・
レジスタに対してn回の書込み動作とn回の読出し動作
を可能にするものである。
第3図は本発明によるベクトル・レジスタの一実施例
で、ベクトル・レジスタ・アレイとしてRAM200を用
い、並行処理されるエレメント列数を2とした場合を示
す。ベクトル・プロセツサ全体の構成は第1図と同様で
ある。第3図中、201、202で示すWDR0/1は書込デー
タ・レジスタ、203′、203、204で示すPRDR0およ
びRDR0/1は読出データ・レジスタ、205、206で示す
WAR0/1は書込アドレス・レジスタ、207、208で示す
RAR0/1は読出アドレス・レジスタである。210と211
はセレクタ、212は2ビット・カウンタを示している。
第2図の場合と同様に、それぞれのレジスタに付した番
号0/1のうち、“0”は偶数のベクトル・エレメント列
1(0、2、4、…I…)を、“1”は奇数のベクトル
・エレメント列I+1(1、3、5…I+1…)を処理
するレジスタであることを意味する。
で、ベクトル・レジスタ・アレイとしてRAM200を用
い、並行処理されるエレメント列数を2とした場合を示
す。ベクトル・プロセツサ全体の構成は第1図と同様で
ある。第3図中、201、202で示すWDR0/1は書込デー
タ・レジスタ、203′、203、204で示すPRDR0およ
びRDR0/1は読出データ・レジスタ、205、206で示す
WAR0/1は書込アドレス・レジスタ、207、208で示す
RAR0/1は読出アドレス・レジスタである。210と211
はセレクタ、212は2ビット・カウンタを示している。
第2図の場合と同様に、それぞれのレジスタに付した番
号0/1のうち、“0”は偶数のベクトル・エレメント列
1(0、2、4、…I…)を、“1”は奇数のベクトル
・エレメント列I+1(1、3、5…I+1…)を処理
するレジスタであることを意味する。
第4図は第3図の基本動作を表わしたタイムチヤートで
ある。図中、I/I+1/I+2/I+3とあるのは、
当該レジスタが、その時に処理しているベクトル・エレ
メント番号を示す。又、RAM200の動作でWないしR
と記したものは、それぞれ書込み、読出しの時間を示し
ている。
ある。図中、I/I+1/I+2/I+3とあるのは、
当該レジスタが、その時に処理しているベクトル・エレ
メント番号を示す。又、RAM200の動作でWないしR
と記したものは、それぞれ書込み、読出しの時間を示し
ている。
第4図のタイムチヤートはI列とI+1列に分割された
エレメント列が、1サイクル・ピツチでそれぞれWDR
O(0) 201とWDR(1) 202にセツトされ、たゞちにRA
M200へ書込まれ、一方では、RAM200から読出された
IとI+1の各エレメント列がPRDR(0) 203′経由
のRDR(0) 203とRDR(1) 204にセツトされ、当該レ
ジスタより1サイクル・ピツチで出力されるというよう
に、エレメント分割による並行処理及びチエイニング処
理が最も理想的に行われている状態を表わしている。
エレメント列が、1サイクル・ピツチでそれぞれWDR
O(0) 201とWDR(1) 202にセツトされ、たゞちにRA
M200へ書込まれ、一方では、RAM200から読出された
IとI+1の各エレメント列がPRDR(0) 203′経由
のRDR(0) 203とRDR(1) 204にセツトされ、当該レ
ジスタより1サイクル・ピツチで出力されるというよう
に、エレメント分割による並行処理及びチエイニング処
理が最も理想的に行われている状態を表わしている。
以下、第3図の動作を第4図で説明する。まず、第3図
のセレクタ210と211は1/4サイクルで動作する2ピツト
・カウンタ212の出力でセレクトされる。すなわち、セ
レクタ210はカウンタ212の上位ビツトに注目して、1/2
サイクル・ピツチ(第4図のT0−T2、T2−T0で
示す時間)でWDR(0) 201、WDR(1) 202を交互に選
択する。セレクタ211はカウンタ212の全ビツト(2ビツ
ト)に注目して、1/4サイクル・ピツチ(第4図のT0
−T1、T1−T2、T2−T3、T3−T0で示す時
間)でWAR(0) 205、RAR(0)207、WAR(1) 206、
RAR(1) 208を順次選択する。この選択動作は常時行
われる。
のセレクタ210と211は1/4サイクルで動作する2ピツト
・カウンタ212の出力でセレクトされる。すなわち、セ
レクタ210はカウンタ212の上位ビツトに注目して、1/2
サイクル・ピツチ(第4図のT0−T2、T2−T0で
示す時間)でWDR(0) 201、WDR(1) 202を交互に選
択する。セレクタ211はカウンタ212の全ビツト(2ビツ
ト)に注目して、1/4サイクル・ピツチ(第4図のT0
−T1、T1−T2、T2−T3、T3−T0で示す時
間)でWAR(0) 205、RAR(0)207、WAR(1) 206、
RAR(1) 208を順次選択する。この選択動作は常時行
われる。
第4図において、WDR(0) 201へエレメント“I”、
WDR(1) 202へエレメント“I+1”が時刻T0でセ
ツトされる。このWDR(0) 201及びWDR(1) 202の出
力はセレクタ210により交互に選択される。すなわち、
T0−T2でWDR(0) 201が、T2−T0でWDR(1)
202が選択される。この間、セレクタ211はWAR(0) 2
05、RAR(0) 207、WAR(1) 206、RAR(1) 208を
次々に選択する。すなわち、T0−T1の間でWAR
(0) 205を、T1−T2でRAR(0) 207を、T2−T3
でWAR(1) 206を、T3−T0でRAR(1) 208をそれ
ぞれ選択する。このアドレスによりRAM200のエレメ
ント番号を指定する。この例の場合、RAM200はT0
−T1、T2−T3の間で書込動作を、T1−T2、T
3−T0で読出動作を行う。したがつて、T0−T1の
時間では、WAR(0) 205の示すRAM領域(エレメン
ト番号“I”)へ、WDR(0) 201のデータが書込ま
れ、T2−T3の時間ではWAR(1) 206の示すRAM
領域(エレメント番号“I+1”)へ、WDR(1) 202
のデータが書込まれる。
WDR(1) 202へエレメント“I+1”が時刻T0でセ
ツトされる。このWDR(0) 201及びWDR(1) 202の出
力はセレクタ210により交互に選択される。すなわち、
T0−T2でWDR(0) 201が、T2−T0でWDR(1)
202が選択される。この間、セレクタ211はWAR(0) 2
05、RAR(0) 207、WAR(1) 206、RAR(1) 208を
次々に選択する。すなわち、T0−T1の間でWAR
(0) 205を、T1−T2でRAR(0) 207を、T2−T3
でWAR(1) 206を、T3−T0でRAR(1) 208をそれ
ぞれ選択する。このアドレスによりRAM200のエレメ
ント番号を指定する。この例の場合、RAM200はT0
−T1、T2−T3の間で書込動作を、T1−T2、T
3−T0で読出動作を行う。したがつて、T0−T1の
時間では、WAR(0) 205の示すRAM領域(エレメン
ト番号“I”)へ、WDR(0) 201のデータが書込ま
れ、T2−T3の時間ではWAR(1) 206の示すRAM
領域(エレメント番号“I+1”)へ、WDR(1) 202
のデータが書込まれる。
上記T0−T1及びT2−T3の時間でRAM200へ書
込まれたデータは、T1−T2及びT3−T0の時間
に、たゞちに読出す事ができる。すなわち、T1−T2
及びT3−T0の時間に於いて、セレクタ211はRAR
(0) 207、RAR(1) 208を選択しており、チエイニング
機構によりRAR(0) 207が“I”、RAR(1) 208が
“I+1”エレメント番号を示していれば、容易に直前
に書込んだ“I”/“I+1”番目のエレメント・デー
タを読出す事ができる。第4図はそれを示している。
“I”番目のエレメント・データは、PRDR(0) 20
3′へT2でセツトされ、“I+1”番目のデータはR
DR(1) 204へT0でセツトされる。PRDR(0) 203′
へセツトされた“I”番エレメント・データは、T0で
RDR(0) 203へ転送され、“I+1”番のエメレント
・データと時間合わせされる。RDR(0) 203、RDR
(1) 204に揃つたデータはデータ線7経由で演算器ある
いは主記憶装置へ出力される。
込まれたデータは、T1−T2及びT3−T0の時間
に、たゞちに読出す事ができる。すなわち、T1−T2
及びT3−T0の時間に於いて、セレクタ211はRAR
(0) 207、RAR(1) 208を選択しており、チエイニング
機構によりRAR(0) 207が“I”、RAR(1) 208が
“I+1”エレメント番号を示していれば、容易に直前
に書込んだ“I”/“I+1”番目のエレメント・デー
タを読出す事ができる。第4図はそれを示している。
“I”番目のエレメント・データは、PRDR(0) 20
3′へT2でセツトされ、“I+1”番目のデータはR
DR(1) 204へT0でセツトされる。PRDR(0) 203′
へセツトされた“I”番エレメント・データは、T0で
RDR(0) 203へ転送され、“I+1”番のエメレント
・データと時間合わせされる。RDR(0) 203、RDR
(1) 204に揃つたデータはデータ線7経由で演算器ある
いは主記憶装置へ出力される。
以上からわかるように、第3図で構成されるベクトル・
レジスタは、1サイクルで“I”と“I+1”のエレメ
ント・データを書込み、さらにそのデータを即時に読出
すことができ、この書込み、読出しに際しての時間的な
競合は発生しない。したがつて、ベクトル命令のエレメ
ント分割による各エレメント列の並行処理、及びチエイ
ニング処理を1サイクル・ピツチで円滑に行う事ができ
る。なお、RAM200としては、例えばカリウム砒素、
ジヨセフソン素子等の超高速素子が最適である。
レジスタは、1サイクルで“I”と“I+1”のエレメ
ント・データを書込み、さらにそのデータを即時に読出
すことができ、この書込み、読出しに際しての時間的な
競合は発生しない。したがつて、ベクトル命令のエレメ
ント分割による各エレメント列の並行処理、及びチエイ
ニング処理を1サイクル・ピツチで円滑に行う事ができ
る。なお、RAM200としては、例えばカリウム砒素、
ジヨセフソン素子等の超高速素子が最適である。
以上の説明から明らかな如く、本発明によれば、ペクト
ル・レジスタを、他の要素の1動作サイクル中にn回
(nは並列処理の要素数)の書込み動作とn回の読出し
動作が可能な構成とすることにより、1サイクルに複数
回の競合のないベクトル・レジスタ・アクセスが可能と
なり、ベクトル・プロセツサにおいてエレメントの並列
処理、チエイニング処理を円滑に行わせる事ができる。
ル・レジスタを、他の要素の1動作サイクル中にn回
(nは並列処理の要素数)の書込み動作とn回の読出し
動作が可能な構成とすることにより、1サイクルに複数
回の競合のないベクトル・レジスタ・アクセスが可能と
なり、ベクトル・プロセツサにおいてエレメントの並列
処理、チエイニング処理を円滑に行わせる事ができる。
第1図はベクトル・プロセツサの一般的ブロツク図、第
2図は第1図におけるベクトル・レジスタの従来例の構
成例を示す図、第3図は本発明の一実施例を示す図、第
4図は第3図の基本動作を示すタイミング図である。 1……ベクトル・レジスタ、2……分配回路、3……選
択回路、4……演算器、5……主記憶装置、200……ベ
クトル・レジスタ・アレイ(RAM)、201、202……書
込データ・レジスタ、203、203′、204……読出データ
・レジスタ、205、206……書込アドレス・レジスタ、20
7、208……読出アドレス・レジスタ、210、211……セレ
クタ、212……2ビツト・カウンタ。
2図は第1図におけるベクトル・レジスタの従来例の構
成例を示す図、第3図は本発明の一実施例を示す図、第
4図は第3図の基本動作を示すタイミング図である。 1……ベクトル・レジスタ、2……分配回路、3……選
択回路、4……演算器、5……主記憶装置、200……ベ
クトル・レジスタ・アレイ(RAM)、201、202……書
込データ・レジスタ、203、203′、204……読出データ
・レジスタ、205、206……書込アドレス・レジスタ、20
7、208……読出アドレス・レジスタ、210、211……セレ
クタ、212……2ビツト・カウンタ。
Claims (2)
- 【請求項1】複数のベクトル・レジスタ、演算器、メモ
リ・リクエスタ等を備え、ベクトル命令を実行するベク
トル・プロセッサにおいて、前記ベクトル・レジスタ
は、他の要素の1動作サイクル中にn回(nは並列処理
の要素数)の書込みサイクルとn回の読出しサイクルを
有することを特徴とするベクトル・プロセッサ。 - 【請求項2】各ベクトル・レジスタは、n個の書込みデ
ータ・レジスタと、n個の読出データ・レジスタと、2
n個の書込/読出アドレス・レジスタと、これらのレジ
スタを選択するセレクタとを具備し、前記セレクタによ
り所望レジスタを順次選択し、1サイクルで当該ベクト
ル・レジスタに対してn回の書込み動作とn回の読出し
動作を可能としたことを特徴とする特許請求の範囲第1
項記載のベクトル・プロセッサ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP57187828A JPH0652530B2 (ja) | 1982-10-25 | 1982-10-25 | ベクトル・プロセッサ |
US06/545,160 US4725973A (en) | 1982-10-25 | 1983-10-25 | Vector processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP57187828A JPH0652530B2 (ja) | 1982-10-25 | 1982-10-25 | ベクトル・プロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS5977574A JPS5977574A (ja) | 1984-05-04 |
JPH0652530B2 true JPH0652530B2 (ja) | 1994-07-06 |
Family
ID=16212940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP57187828A Expired - Lifetime JPH0652530B2 (ja) | 1982-10-25 | 1982-10-25 | ベクトル・プロセッサ |
Country Status (2)
Country | Link |
---|---|
US (1) | US4725973A (ja) |
JP (1) | JPH0652530B2 (ja) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0167959B1 (en) * | 1984-07-02 | 1992-05-06 | Nec Corporation | Computer vector register processing |
JPH0640337B2 (ja) * | 1984-10-03 | 1994-05-25 | 株式会社日立製作所 | パイプライン演算装置 |
US4922543A (en) * | 1984-12-14 | 1990-05-01 | Sten Hugo Nils Ahlbom | Image processing device |
JPH0622035B2 (ja) * | 1985-11-13 | 1994-03-23 | 株式会社日立製作所 | ベクトル処理装置 |
JPS62143176A (ja) * | 1985-12-17 | 1987-06-26 | Fujitsu Ltd | ベクトルレジスタアクセス制御方式 |
JP2679994B2 (ja) * | 1987-08-14 | 1997-11-19 | 株式会社日立製作所 | ベクトル処理装置 |
US4980817A (en) * | 1987-08-31 | 1990-12-25 | Digital Equipment | Vector register system for executing plural read/write commands concurrently and independently routing data to plural read/write ports |
US4949247A (en) * | 1988-02-23 | 1990-08-14 | Stellar Computer, Inc. | System for transferring multiple vector data elements to and from vector memory in a single operation |
ATE81731T1 (de) * | 1988-05-10 | 1992-11-15 | Cray Research Inc | Vektorschlange in computern mit vektorregister. |
US5142685A (en) * | 1988-05-20 | 1992-08-25 | Nec Corporation | Pipeline circuit for timing adjustment of irregular valid and invalid data |
US5151995A (en) * | 1988-08-05 | 1992-09-29 | Cray Research, Inc. | Method and apparatus for producing successive calculated results in a high-speed computer functional unit using low-speed VLSI components |
JP2941817B2 (ja) * | 1988-09-14 | 1999-08-30 | 株式会社日立製作所 | ベクトル処理装置 |
JP2607689B2 (ja) * | 1989-07-10 | 1997-05-07 | 株式会社日立製作所 | ベクトル処理装置 |
US5333284A (en) * | 1990-09-10 | 1994-07-26 | Honeywell, Inc. | Repeated ALU in pipelined processor design |
WO1992009968A1 (en) * | 1990-11-27 | 1992-06-11 | Cray Research, Inc. | VECTOR WORD SHIFT BY Vo SHIFT COUNT IN VECTOR SUPERCOMPUTER PROCESSOR |
US6145071A (en) * | 1994-03-03 | 2000-11-07 | The George Washington University | Multi-layer multi-processor information conveyor with periodic transferring of processors' states for on-the-fly transformation of continuous information flows and operating method therefor |
JPH07271764A (ja) * | 1994-03-24 | 1995-10-20 | Internatl Business Mach Corp <Ibm> | 計算機プロセッサ及びシステム |
US5848286A (en) * | 1994-03-29 | 1998-12-08 | Cray Research, Inc. | Vector word shift by vo shift count in vector supercomputer processor |
US6643765B1 (en) * | 1995-08-16 | 2003-11-04 | Microunity Systems Engineering, Inc. | Programmable processor with group floating point operations |
DE19625569A1 (de) * | 1996-06-26 | 1998-01-02 | Philips Patentverwaltung | Signalprozessor |
US5893145A (en) * | 1996-12-02 | 1999-04-06 | Compaq Computer Corp. | System and method for routing operands within partitions of a source register to partitions within a destination register |
US5909572A (en) * | 1996-12-02 | 1999-06-01 | Compaq Computer Corp. | System and method for conditionally moving an operand from a source register to a destination register |
US5941938A (en) * | 1996-12-02 | 1999-08-24 | Compaq Computer Corp. | System and method for performing an accumulate operation on one or more operands within a partitioned register |
US6061521A (en) * | 1996-12-02 | 2000-05-09 | Compaq Computer Corp. | Computer having multimedia operations executable as two distinct sets of operations within a single instruction cycle |
US6009505A (en) * | 1996-12-02 | 1999-12-28 | Compaq Computer Corp. | System and method for routing one operand to arithmetic logic units from fixed register slots and another operand from any register slot |
US6668316B1 (en) * | 1999-02-17 | 2003-12-23 | Elbrus International Limited | Method and apparatus for conflict-free execution of integer and floating-point operations with a common register file |
AU2002339867A1 (en) | 2001-09-04 | 2003-03-18 | Microunity Systems Engineering, Inc. | System and method for performing multiplication |
US7196708B2 (en) * | 2004-03-31 | 2007-03-27 | Sony Corporation | Parallel vector processing |
US20050226337A1 (en) * | 2004-03-31 | 2005-10-13 | Mikhail Dorojevets | 2D block processing architecture |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3541516A (en) * | 1965-06-30 | 1970-11-17 | Ibm | Vector arithmetic multiprocessor computing system |
US4127899A (en) * | 1977-12-05 | 1978-11-28 | International Business Machines Corporation | Self-quenching memory cell |
JPS6024985B2 (ja) * | 1978-08-31 | 1985-06-15 | 富士通株式会社 | デ−タ処理方式 |
US4193127A (en) * | 1979-01-02 | 1980-03-11 | International Business Machines Corporation | Simultaneous read/write cell |
US4302818A (en) * | 1979-07-10 | 1981-11-24 | Texas Instruments Incorporated | Micro-vector processor |
US4400768A (en) * | 1980-06-04 | 1983-08-23 | Burroughs Corporation | Parallel access computer memory system employing a power-of-two memory modules |
JPS5731080A (en) * | 1980-07-31 | 1982-02-19 | Fujitsu Ltd | Vector processor |
JPS5760586A (en) * | 1980-09-26 | 1982-04-12 | Matsushita Electric Ind Co Ltd | Random access memory |
KR860001434B1 (ko) * | 1980-11-21 | 1986-09-24 | 후지쑤 가부시끼가이샤 | 데이타 처리시 스템 |
JPS57134774A (en) * | 1981-02-13 | 1982-08-20 | Hitachi Ltd | Vector operating device |
JPS57209570A (en) * | 1981-06-19 | 1982-12-22 | Fujitsu Ltd | Vector processing device |
US4489381A (en) * | 1982-08-06 | 1984-12-18 | International Business Machines Corporation | Hierarchical memories having two ports at each subordinate memory level |
-
1982
- 1982-10-25 JP JP57187828A patent/JPH0652530B2/ja not_active Expired - Lifetime
-
1983
- 1983-10-25 US US06/545,160 patent/US4725973A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPS5977574A (ja) | 1984-05-04 |
US4725973A (en) | 1988-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0652530B2 (ja) | ベクトル・プロセッサ | |
US5226171A (en) | Parallel vector processing system for individual and broadcast distribution of operands and control information | |
KR860001434B1 (ko) | 데이타 처리시 스템 | |
US5513366A (en) | Method and system for dynamically reconfiguring a register file in a vector processor | |
US4075704A (en) | Floating point data processor for high speech operation | |
US5175862A (en) | Method and apparatus for a special purpose arithmetic boolean unit | |
US5261113A (en) | Apparatus and method for single operand register array for vector and scalar data processing operations | |
EP0240032B1 (en) | Vector processor with vector data compression/expansion capability | |
US5887183A (en) | Method and system in a data processing system for loading and storing vectors in a plurality of modes | |
US5081573A (en) | Parallel processing system | |
JP2671120B2 (ja) | データ処理セルおよびデータプロセッサ | |
JPH0622034B2 (ja) | マルチポートベクトルレジスタファイル | |
JPH07152733A (ja) | ベクトル・データを処理するコンピュータ・システムおよび方法 | |
EP1763769A2 (en) | A bit serial processing element for a simd array processor | |
US4766535A (en) | High-performance multiple port memory | |
JPS61208570A (ja) | ベクトル・プロセツサ | |
CN110377874B (zh) | 卷积运算方法及*** | |
CA1236584A (en) | Parallel processing system | |
JPS6042516B2 (ja) | デ−タ処理装置 | |
JPS58149555A (ja) | 並列処理装置 | |
JPS58149556A (ja) | 並列処理装置 | |
JP7136343B2 (ja) | データ処理システム、方法、およびプログラム | |
EP0211613A3 (en) | Scientific processor vector file organization | |
EP0224691B1 (en) | A multiple read/write access memory system | |
JP2855899B2 (ja) | 機能メモリ |