JPH04336378A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPH04336378A
JPH04336378A JP3107721A JP10772191A JPH04336378A JP H04336378 A JPH04336378 A JP H04336378A JP 3107721 A JP3107721 A JP 3107721A JP 10772191 A JP10772191 A JP 10772191A JP H04336378 A JPH04336378 A JP H04336378A
Authority
JP
Japan
Prior art keywords
vector
instruction
pipeline
memory
data
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.)
Pending
Application number
JP3107721A
Other languages
English (en)
Inventor
Takeshi Nishikawa
西川 岳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP3107721A priority Critical patent/JPH04336378A/ja
Priority to EP92108062A priority patent/EP0517013B1/en
Priority to DE69230626T priority patent/DE69230626T2/de
Publication of JPH04336378A publication Critical patent/JPH04336378A/ja
Priority to US08/411,076 priority patent/US5625834A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8061Details on data memory access
    • G06F15/8069Details on data memory access using a cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8092Array of vector units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数のベクトルパイプ
ラインセットを有するベクトル処理機構を有する情報処
理装置に関し、特に、ベクトルパイプラインセットが並
列/独立両モードで動作可能なベクトル処理機構を有す
る情報処理装置に関する。
【0002】
【従来の技術】従来、この種の情報処理装置は複数のバ
ンクからなるメモリと、データの処理を実行するプロセ
ッサ部と該プロセッサ部からのメモリアクセス要求を制
御しかつデータの並べ替えを行なうメモリ制御部とから
構成され、該プロセッサ部は複数のベクトルレジスタと
これらに格納されたベクトルデータを処理する複数のパ
イプライン演算器からなるベクトルパイプラインセット
を複数セット備え、さらにこれらのベクトルパイプライ
ンセットで実行すべき命令を入力,デコードして前記複
数のベクトルパイプラインセットを制御する制御信号を
作成し該複数のベクトルパイプラインセットを制御する
ベクトル処理部とから構成される。
【0003】この種の情報処理装置のベクトル処理機構
は多重並列パイプラインと呼ばれ、一つのベクトル命令
に応答し処理すべき一連のベクトルデータを前記複数の
ベクトルパイプラインセット内のベクトルレジスタに振
分けるようにロードし、同じベクトルパイプラインセッ
ト内の前記パイプライン演算器で並列に処理するもので
ある。
【0004】次に図を参照して従来のこの種の情報処理
装置によるベクトル処理動作について説明する。なお、
ここでは前記ベクトルパイプラインセットは4セットあ
るものとして説明する。
【0005】図3(A) は従来技術を説明するための
例を示し、ベクトル変数X,Y,Z各々に関して行列式
を計算する処理の再内側ループの処理であり次の5ステ
ップの処理を上記3変数について実行している。
【0006】ステップ1)被演算数であるベクトルデー
タU(I)をメモリからベクトルレジスタにロードする
【0007】ステップ2)ロードしたベクトルデータU
(I)とスカラ変数(あらかじめスカラレジスタにセッ
トされている)を乗算する。
【0008】ステップ3)被演算数であるベクトルデー
タX(I)をメモリからベクトルレジスタにロードする
【0009】ステップ4)ステップ2で乗算した結果と
ステップ3でロードしたデータとを加算する。
【0010】ステップ5)該加算結果をメモリへ格納す
る。
【0011】まずステップ1およびステップ2でメモリ
から被演算数をロードする場合、要素番号順に並んだメ
モリからのデータU、Xは両方とも4セットのベクトル
パイプラインセットのベクトルレジスタに振り分けられ
るようにロードする。すなわち第0ベクトルパイプライ
ンセットには要素0、4、8、・・・、252のデータ
が、第1ベクトルパイプラインセットには要素1、5、
9、・・・、253のデータが、第2ベクトルパイプラ
インセットには要素2、6、10、・・・、254のデ
ータが、第3ベクトルパイプラインセットには要素3、
7、11、・・・、255のデータがロードされる。
【0012】次にステップ2で各ベクトルパイプライン
セットで同時にスカラデータとベクトルデータU(I)
の各要素とを各ベクトルパイプラインセット内のパイプ
ライン演算器で乗算し、同一ベクトルパイプラインセッ
ト内のベクトルレジスタの対応する要素番号位置に格納
する。
【0013】ステップ3ではステップ2の乗算と並行し
て次の演算のためのベクトルデータX(I)をロードし
、ステップ2の演算結果とステップ3のベクトルロード
データが揃った時点でステップ4の演算を始め、ステッ
プ5で該加算結果をメモリへ格納する。ただしこの場合
振り分けられるようにして各ベクトルパイプラインセッ
トに格納されている前記演算結果は整列してメモリ上で
は要素番号順に並べ換えて格納する。
【0014】このステップ1〜ステップ5の一連の動作
をタイミングチャートで表現すると図3(B) のよう
になる。
【0015】さらにこのステップ1〜ステップ5の処理
を1つのブロックとして、さらにベクトルデータY(I
),Z(I)についても同様に実行すると処理全体は図
3(C) のようになる。すなわち処理全体の実行時間
はモデル化すれば各処理群の立ち上がり時間S1*3と
それぞれの処理のスルーブット時間T1*3の和となっ
ている。
【0016】
【発明が解決しようとする課題】上述した従来の情報処
理装置は、4本のベクトルパイプラインセットを常に並
列に動作させているため、一般的に処理すべきベクトル
要素数が大きいケースではすべてのベクトルパイプライ
ンが有効に動作するが、処理すべき要素数が小さく処理
すべき演算数が多い場合はベクトルパイプラインに空き
が発生してハードウェアの使用効率が低下する。
【0017】例えば、いま実行すべき演算がN個ありこ
れをmセットのベクトルパイプラインで従来のようなn
パイプ並列で処理した場合について考えると、このベク
トルパイプラインセットでの処理全体の実行時間は、T
=(s+[n/m]*t)*N      ………式1
s:ベクトル演算のスタートアップ時間n:ベクトル要
素数 t:基本クロック m:パイプライン数 N:処理ブロック数 T:処理時間 [n/m]:n/mの小数点以下切り上げた整数値とな
る。
【0018】ここで処理すべき要素数nが非常に大きい
場合(s<<nt)はベクトル演算のスタートアップ時
間sは無視できるが、逆に要素数nは小さい場合には処
理の大半が演算のスタートアップ時間となってしまう。
【0019】半導体技術の発展にともない、計算機の演
算速度を向上させるために基本クロックを小さくする努
力がなされておりかなりの成果が上げられているが、こ
れも上記式におけるn*tの項を小さくするのに効果が
ない(スタートアップ時間sは装置の空間的な広がりに
左右される要因が大きい)。
【0020】
【課題を解決するための手段】本発明は、複数のバンク
からなるメモリと、データの処理を実行するプロセッサ
部と該プロセッサ部からのメモリアクセス要求を制御し
かつデータの並べ換えを行なうメモリ制御部とから構成
され、該プロセッサ部はスカラデータの処理を実行する
スカラ処理部と、複数のベクトルレジスタと前記ベクト
ルレジスタに格納されたベクトルデータを処理する複数
のパイプライン演算器からなるベクトルパイプラインセ
ットを複数セット備え、さらに前記メモリ部から読み出
した命令を解読する命令解読部と、前記スカラ処理部で
実行すべき命令を入力,デコードして該スカラ処理部を
制御するスカラ命令制御部と前記ベクトルパイプライン
セットで実行すべき命令を入力,デコードして前記複数
のベクトルパイプラインセットを制御する制御信号を作
成し該複数のベクトルパイプラインセットを制御するベ
クトル処理部とから構成される情報処理装置において、
前記複数のベクトルパイプラインセットを個々の命令に
対応して各々独立に動作させることにより各ベクトルパ
イプラインセットに対し該ベクトルパイプラインで動作
する一連の命令列で構成される処理単位(タスク)を割
り付けて独立に処理する場合と、1つの命令に対応して
同一の動作を互いに同期をとって並列に動作させること
により1つのタスクを複数の並列パイプラインで処理す
る場合の2つの動作が可能とする手段を具備することを
特徴とするものである。
【0021】
【実施例】次に、本発明について図面を参照して説明す
る。
【0022】図1は本発明の一実施例を示すブロック図
である。メモリ部1は、プロセッサ部の演算スピードに
合わせ高速にデータをアクセスすることを可能にするた
め複数のバンクで構成しインタリーブの手法を用いてプ
ロセッサ部のマシンサイクルとメモリ素子のサイクルタ
イムとの差を埋めるように工夫されている。
【0023】メモリ制御部2は、メモリ制御機構21と
メモリクロスバー部22とから構成される。メモリ制御
機構21はメモリ部1のバンク、メモリクロスバー部2
2の状態を管理してプロセッサ部3から信号線201で
送られてくるリクエストコードに従ってメモリ部1およ
びメモリクロスバー部を制御する制御信号を信号線20
2,203から送出する。メモリクロスバー部22はロ
ードの場合にはメモリ部1の各バンクからのデータをデ
ータ線群204から入力しメモリ制御機構21からの指
示に従い並べ換えてデータ線群205によってプロセッ
サ部へ送出し、逆にストア動作の場合にはプロセッサ部
からのデータをデータ線群205から入力しメモリ制御
機構21からの指示に従いデータ線群204によっで格
納すべきアドレスに対応するメモリバンク部へデータを
送出する。
【0024】プロセッサ部3はスカラ命令を実行するス
カラ処理部4と、ベクトル命令を実行するベクトル処理
部5、およびメモリ部1から命令を受信し各処理部のハ
ードウェアリソースの管理をし処理に必要な制御信号を
作成する命令制御部6から構成される。
【0025】スカラ処理部4は制御変数やアドレス変数
およびスカラ処理に必要なスカラデータを格納する汎用
スカラレジスタ、アドレス計算、インデックス計算、制
御変数計算用の固定小数点演算器、浮動小数点演算器、
論理演算器などから構成される。
【0026】ベクトル処理部5はベクトルデータを格納
する複数のベクトルレジスタ51、および、パイプライ
ン演算器52をそれぞれ有する複数セットのベクトルパ
イプライン530〜53nと、それらのベクトルパイプ
ライン間のデータの転送を行なうためのパイプラインク
ロスバー54と、さらにパイプラインクロスバー54を
介してベクトルパイプライン530〜53nのいずれか
らもアクセス可能なベクトルデータメモリ55とから構
成される。
【0027】命令制御部6はさらに命令解読部61、ス
カラ命令制御部62、ベクトル命令制御部63から構成
され、命令解読部61はデータ線301を介してメモリ
部から命令を入力し、解読して該命令がスカラ処理部4
で処理される命令かベクトル処理部5で処理される命令
かを判断し、前者の場合は該命令情報をスカラ命令制御
部に移し、後者の場合は該命令情報をベクトル命令制御
部に転送する。
【0028】スカラ命令制御部62およびベクトル命令
制御部63は前記各々の処理部のレジスタや演算器、デ
ータバスなどのハードウェアリソースの状態を管理し、
入力した命令が要求するハードウェアリソースと該管理
しているリソース状態とを照合し、必要とするリソース
がビジーな場合にはそのビジー状態が解除されるまで待
って該リソースに対し実行起動をかけるよう制御する。
【0029】スカラ命令制御部62はスカラ処理部4の
制御のほかにマシン全体を制御する制御命令も処理する
【0030】動作モードフラグ65は前記ベクトルパイ
プラインセットが同期をとって並列動作するか各々が独
立に動作するかのマシンモードを示すフラグであり、該
フラグは命令によってスカラ命令制御部から信号線60
1を介してセット/リセットされる。この実施例では該
フラグがセット状態のとき前記ベクトルパイプラインセ
ットが独立に動作するモードになるとする。
【0031】ベクトル命令制御部63には前記ベクトル
パイプラインセット対応にベクトル命令制御機構641
〜64nがあり、命令解読部61,動作モードフラグ6
5と各々信号線602,603を介して接続され、信号
線603からの動作モードフラグの情報がリセット状態
(並列動作モード)のときには信号線602からのベク
トル制御情報を前記すべてのベクトル命令制御機構64
にセットし、前記動作モードフラグがセット状態(独立
動作モード)のときは信号線602からの情報の中で指
定されたベクトルパイプラインセット指定情報で指示さ
れたベクトル命令制御機構64にのみ該命令情報をセッ
トする。
【0032】またそれぞれのベクトル命令制御機構64
に対応するベクトルパイプラインセットの動作を規定す
るベクトル長レジスタ66が備えられている。
【0033】さらにベクトル命令制御機構64は互いに
信号線604で接続されており、互いの制御情報を参照
しあうことが可能になっている。
【0034】図2はこの実施例における命令の例を示す
。OPフィ―ルドはオペレーションコード部で命令の主
要動作を規定する。Cxフィ―ルドはベクトルパイプラ
インセット指定フィ―ルドでベクトルパイプラインセッ
ト動作モードフラグがセット状態のとき、すなわち該ベ
クトルパイプラインセットが並列動作モードのとき該命
令の実行を行なうベクトルパイプラインセットの指定を
する。Vx/Vyフィ―ルドはレジスタ指定フィ―ルド
で、ベクトルパイプラインセット内の複数のベクトルレ
ジスタの中から該命令で使用する演算結果格納レジスタ
/被演算データ格納レジスタを指定するフィ―ルドであ
る。Czフィ―ルドはベクトルデータメモリ制御フィ―
ルドで該命令でベクトルデータメモリを要するか否かを
規定する。このフィ―ルドが“1”のときベクトルデー
タメモリを使用し、“0”のときはベクトルデータメモ
リは使用しないことを示す。Vzフィ―ルドはベクトル
データメモリ指定フィ―ルドで該命令で前記Czフィ―
ルドが“1”(ベクトルデータメモリを使用する)のと
き該ベクトルデータメモリの番号を規定する。
【0035】上記以外のフィ―ルドも他の制御用の情報
があるが本発明とは直接関係しないためここでは説明を
省略する。
【0036】次に例を用いてこの実施例の動作を説明す
る。
【0037】ベクトルパイプラインセット動作モードフ
ラグをリセット状態(並列動作モード)で使用する場合
はすべてのベクトルパイプラインセットを同時に並列動
作させるモードであり、これは表面的には従来技術の項
で説明した多重並列パイプラインの動作と同様であるの
で詳細な説明は省略し、本発明の特徴部分のみについて
説明する。
【0038】本発明ではベクトルパイプラインセット動
作モードが並列動作モードである場合には、各ベクトル
パイプラインセットに同一の動作をさせるためにベクト
ル命令制御部の中の4つの制御機構が独立に対応するベ
クトルパイプラインセットに対し同じ制御を行なう方式
を採用している(従来はベクトルパイプラインセットは
常に同一の動作をするためベクトル制御機構は1セット
しかない)。したがって各制御機構が独立に動作してい
るためにもし故障などの原因であるベクトルパイプライ
ン制御機構が他とは異なった動作をしても、その動作が
そのベクトルパイプラインセットの範囲内で正しくてそ
の故障を検出できなくなるようなことは避けなければな
らない。
【0039】そこで本発明では複数セットのベクトルパ
イプラインセット制御機構の間で信号線604によって
各々のベクトルパイプラインセットへの制御信号を監視
しあい、ベクトルパイプラインセット動作モードが並列
動作モードである場合には、同じタイミングにあるパー
ルライン制御機構から異なった制御信号が出力された場
合にエラーが発生したことを検出できるようにしている
【0040】次に本発明の特徴である該モードプラグを
セット状態にして動作させる独立動作モードでの動作を
説明する。
【0041】図4(A) はこの実施例を説明するため
の処理例を示し、襲来技術の例て用いたのと同じ3つの
ベクトル変数X(I),Y(I),Z(I)についての
積和処理である。
【0042】この処理を本発明のベクトル独立動作モー
ドで実行する場合には、図4(B) に示すようなアセ
ンブラレベルの命令列がコンパイラによって生成される
【0043】命令PARSETは前記ベクトルパイプラ
インセット動作モードフラグを操作する命令で第一オペ
ランドか“S”の場合は同フラグをセット状態に、“R
”の場合はリセット状態にする。LVL(n)  S0
は前記第n番目のベクトル命令制御機構64内にあるベ
クトル長レジスタにスカラレジスタ0の内容をロードす
る命令である。VLD(n),VFMP(n),VFA
D(n),VST(n)はそれぞれ第n番目のベクトル
パイプラインセットにおけるベクトルロード命令、ベク
トル浮動小数点乗算、ベクトル浮動小数点加算、ベクト
ルストア命令であり、処理を実行するベクトルパイプラ
インセット指定フィ―ルドがあることを除いては従来の
命令と同様である。
【0044】命令PARSET  Sをメモリからデー
タ線301を介してプロセッサ部3の命令解読部61に
入力する。命令解読部61は該命令がスカラ命令であり
動作モードフラグ65をセットする命令であることを解
読し、該命令情報を信号線605を介してスカラ命令制
御部62に転送し、スカラ命令制御部は受しした命令情
報によって信号線601で該動作モードフラグをセット
する。これによりこれ以降のベクトル処理は各々のベク
トルパイプラインセットが独立に制御される。
【0045】次に命令LVL(0)  S0が同様にプ
ロセッサ部内の命令解読部61で解読され該命令情報が
信号線602を介してベクトル命令制御部63に転送さ
れる。ベクトル命令制御部63は信号線603を介して
現時点での動作モードフラグ65の状態が独立動作モー
ドであることを知り、入力したLVL命令のベクトルパ
イプライン指定情報(0)が示すベクトルパイプライン
制御機構#0内のベクトル長レジスタにスカラレジスタ
S0の情報をセットする。これ以降このベクトル長レジ
スタの値がつぎのLVL(0)命令で更新されるまでは
ベクトルパイプラインセット#0はいまセットされたベ
クトル長に従ってベクトル処理を実行する。
【0046】同様にして後続のVLD(0),VFMP
(0),VLD(0),VFAT(0),VST(0)
の命令を命令制御部で解読し、信号線602を介してベ
クトル命令制御部63に送出し、動作モードが並列動作
モードであり該命令群がベクトルパイプラインセット#
0を対象にしていることを認識して該命令情報をベクト
ル命令制御機構#0にセットする。
【0047】ベクトル命令制御機構#0はベクトルパイ
プラインセット#0のハードウェアリソースの状態を管
理し、前記受信した命令がベクトルパイプラインセット
を使用する命令でありかつ該ベクトルパイプラインセッ
トのハードウェアリソースが実行可能状態であれば信号
線606#0を介して制御情報とともに実行起動信号を
ベクトルパイプラインセット#0に送出し、前記受信し
た命令がメモリアクセス命令でありかつベクトルパイプ
ラインセット側の対応するハードウェアリソースの準備
が整った時点で前記ベクトルパイプラインセット動作モ
ードフラグ情報およびベクトルパイプラインセット指定
情報を含むリクエスト情報を信号線607を介してメモ
リ制御部2に送信する。
【0048】前記実行起動信号を受信したベクトルパイ
プラインセット#0は該起動信号とともに送られてくる
制御情報に従い他のベクトルパイプラインセットの動作
とは独立して演算処理を実行する。
【0049】また前記リクエストコードを受信したメモ
リ制御機構21は該リクエストコードに含まれている動
作モード信号から独立パイプライン独立動作モードであ
ることを認識し、さらにベクトルパイプラインセット指
定情報から実行すべきメモリアクセスの対象となるベク
トルパイプラインセットが#0であることを認識し、た
とえばこの実施例の命令列の最初のVLD(0)の場合
メモリからフェッチしたベクトルデータを総てベクトル
パイプラインセット#0のベクトルレジスタに連続して
送出するようメモリクロスバー部22を制御する。
【0050】こうした命令を実行動作の並行して、命令
制御部6は前記命令列の中のベクトルパイプラインセッ
ト#0に対する命令列の最後の命令VST(0)を受信
した後、ひきつづきその後の命令列LVL(1),VL
AD(1),・・・を同様に受信し解読してベクトル命
令制御部63に転送し、それを受けたベクトル命令制御
部63はベクトルパイプラインセット指定情報に従いそ
れらの命令情報をベクトルパイプラインセット制御機構
#1へセットし、該ベクトルパイプラインセット制御機
構#1はベクトルパイプラインセット#1のハードウェ
アリソースの状態を管理して実行可能な命令の実行指示
を出していく。
【0051】同様にして命令列LVL(2),VLD(
2),・・・はベクトルパイプラインセット制御機構#
2にセットされ処理される。
【0052】これらの処理は装置のマシンサイクルに同
期してパイプライン式に処理されるため各ベクトルパイ
プラインセット内での実行は従来と同様、図3(B) 
に示すように実行され処理全体の実行はそれぞれのベク
トルパイプラインセットでの処理をブロック化して図示
すると図5に示すようにほぼ並列に処理される。
【0053】したがって合計の実行時感は図示している
ように処理を立ち上がり時間S2および処理のスループ
ット時間T2およびY(I),Z(I)のデータセット
の処理を立ちあげるための若干のオーバーヘッドαの和
となる。
【0054】また下記のような処理を実行する場合は、
処理1、処理2、処理3の各処理の間で共通の変数P(
I)を使用するケースでは、あらかじめ該変数をメモリ
からロードし、前記ベクトルデータメモリ55にセット
しておき各々の処理で使用するときに、該ベクトルデー
タメモリからパイプラインクロスバー54を介して処理
を割り付けられたベクトルパイプラインセットにロード
し使用する。
【0055】DO  10  1=1,SX(I)=X
(I)+P(I)*U(I)………処理1Y(I)=Y
(I)+P(I)*V(I)………処理2Z(I)=Z
(I)+P(I)*W(I)………処理310  CO
NTINUE 従来このようなタスク間の共通変数の受渡しは共有メモ
リを使用しているためロード/ストアの立ち上がり時間
が大きく、並列処理のオーバーヘッドを大きくする要因
となっている。
【0056】
【発明の効果】以上説明したように、本発明は、複数セ
ット有するベクトルパイプラインを各々独立に動作させ
ることにより一般的には T=((s+n*t)*N)/m        ……
式2s:ベクトル演算のスタートアップ時間n:ベクト
ル要素数 t:基本クロック m:パイプライン数 N:処理ブロック数 T:処理時間 となり、前記従来技術による式1と本発明による式2を
比較すると、 式1は  T1=N*s+N*n*t/m式2は  T
2=N*s/m+N*n*t/mしたがっで T1−T2=N*s*(1−1/m) となりスタートアップ時間のロスを大幅に削減できるよ
うになる。
【0057】またベクトルデータメモリを設けることに
よりタスク間の共有変数の受け渡しのオーバーヘッドを
制限することができ非常に粒度の小さなマルチタスクの
並列処理を小さいオーバーヘッドで実現できるようにな
る。
【図面の簡単な説明】
【図1】本発明の一実施例のブロック図である。
【図2】図1の実施例における命令形式を例示する図で
ある。
【図3】従来例での処理を例示する図である。
【図4】図1の実施例での処理を例示する図である。
【図5】図1の実施例での処理を例示する図である。
【符号の説明】
1    メモリ部 2    メモリ制御部 3    プロセッサ部 4    スカラ処理部 5    ベクトル処理部 6    命令制御部 21    メモリ制御機構 22    メモリクロスバー部 51    ベクトルレジスタ 52    パイプライン演算器 53    ベクトルパイプラインセット54    
パイプラインクロスバー 55    ベクトルデータメモリ 61    命令解読部 62    スカラ命令制御部 63    ベクトル命令制御部 64    ベクトル命令制御機構 65    動作モードフラグ

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】  複数のバンクからなるメモリと、デー
    タの処理を実行するプロセッサ部と該プロセッサ部から
    のメモリアクセス要求を制御しかつデータの並べ換えを
    行なうメモリ制御部とから構成され、該プロセッサ部は
    スカラデータの処理を実行するスカラ処理部と、複数の
    ベクトルレジスタと前記ベクトルレジスタに格納された
    ベクトルデータを処理する複数のパイプライン演算器か
    らなるベクトルパイプラインセットを複数セット備え、
    さらに前記メモリ部から読み出した命令を解読する命令
    解読部と、前記スカラ処理部で実行すべき命令を入力,
    デコードして該スカラ処理部を制御するスカラ命令制御
    部と前記ベクトルパイプラインセットで実行すべき命令
    を入力,デコードして前記複数のベクトルパイプライン
    セットを制御する制御信号を作成し該複数のベクトルパ
    イプラインセットを制御するベクトル処理部とから構成
    される情報処理装置において、前記複数のベクトルパイ
    プラインセットを個々の命令に対応して各々独立に動作
    させることにより各ベクトルパイプラインセットに対し
    該ベクトルパイプラインで動作する一連の命令列で構成
    される処理単位(タスク)を割り付けて独立に処理する
    場合と、1つの命令に対応して同一の動作を互いに同期
    をとって並列に動作させることにより1つのタスクを複
    数の並列パイプラインで処理する場合の2つの動作が可
    能とする手段を具備することを特徴とする情報処理装置
  2. 【請求項2】  前記複数セットのベクトルパイプライ
    ンか独立/並列いずれのモードで動作するのかを規定す
    るベクトルパイプラインセット動作モードフラグを有し
    、かつ該モードフラグをセット/リセットする命令を有
    することを特徴とする請求項1記載の情報処理装置。
  3. 【請求項3】  前記複数セットのベクトルパイプライ
    ンが独立動作モードのとき、該複数のベクトルパイプラ
    インの内どのベクトルパイプラインセットを使用するの
    かを指定するために、命令にベクトルパイプラインセッ
    ト指定フィ―ルドを有することを特徴とする請求項2記
    載の情報処理装置。
  4. 【請求項4】  前記プロセッサ部は前記メモリ制御部
    へのリクエストに前記ベクトルパイプラインセット動作
    モードフラグ情報および前記ベクトルパイプラインセッ
    ト指定情報を付随させて送出し、これを受けた該メモリ
    制御部は該リクエスト対応の該動作モードフラグ情報を
    参照して、該フラグ情報が並列動作モードを指示してい
    る場合は、ロードの場合はメモリからのデータを各ベク
    トルパイプラインセットに振り分けるように(要素並列
    )ロードし、ストアの場合は各ベクトルパイプラインセ
    ットに振り分けられているデータを順に並べ直してメモ
    リへ格納し、一方、該フラグが独立動作モード示してい
    る場合は、リクエストに付随した前記ベクトルパイプラ
    インセット指定情報を参照して、ロードの場合はメモリ
    からのデータを該ベクトルパイプラインセット指定情報
    で指示されたベクトルパイプラインへのみロードし、ス
    トアの場合は該ベクトルパイプラインセット指定情報で
    指定されたパイプからのデータのみを受けてメモリへ格
    納するように制御することを特徴とする請求項3記載の
    情報処理装置。
  5. 【請求項5】  前記複数セットのベクトルパイプライ
    ン対応にベクトル長レジスタを持ち、各ベクトルパイプ
    ラインが独立動作する場合該ベクトル長レジスタで各々
    のベクトルパイプラインの動作を規定することを特徴と
    する請求項1記載の情報処理装置。
  6. 【請求項6】  複数セットのベクトルパイプラインの
    内の任意のパイプラインからアクセス可能で、前記パイ
    プライン独立動作時に各々のパイプラインに割り付けら
    れたタスクの間の共有のデータを格納してタスク間でデ
    ータの授受を行なうための記憶部をプロセッサ部内に有
    すること特徴とする情報処理装置。
  7. 【請求項7】  前記ベクトル命令制御部は各ベクトル
    パイプラインセット単位に対応する制御機構を有し、前
    記ベクトルパイプラインセットで処理すべき命令と前記
    動作モードフラグを入力して、該プラグが並列動作モー
    ドを示す場合には入力した命令をデコードして作成した
    制御情報を前記ベクトルパイプライン対応に設けられた
    全制御機構に同時に送出して各パイプラインに対し同一
    の制御を行ない、前記動作モードプラグが独立動作モー
    ドを示す場合は入力した命令の前記ベクトルパイプライ
    ンセット指定フィ―ルドの情報から該命令を実行すべき
    パールラインセットを判断して該ベクトルパイプライン
    セットに対応する制御機構のみに前記制御情報を送出し
    、各制御機構が独立に対応するベクトルパイプラインセ
    ットを制御することを特徴とする請求項3記載の情報処
    理装置。
  8. 【請求項8】  前記ベクトル命令制御部の中のベクト
    ルパイプラインセット対応の制御機構の間で該ベクトル
    パイプラインセットへの制御信号を監視するために情報
    を交換し、前記ベクトルパイプラインセット動作フラグ
    が並列動作モードである場合に互いに動作が同じである
    ことを照合してチェックするための機構を有すること特
    徴とする請求項7記載の情報処理装置。
JP3107721A 1991-05-14 1991-05-14 情報処理装置 Pending JPH04336378A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP3107721A JPH04336378A (ja) 1991-05-14 1991-05-14 情報処理装置
EP92108062A EP0517013B1 (en) 1991-05-14 1992-05-13 Information processing system capable of operating a plurality of vector pipeline sets in two different modes
DE69230626T DE69230626T2 (de) 1991-05-14 1992-05-13 Informationsverarbeitungssystem mit der Fähigkeit zum Betreiben von mehreren Vektorpipelines in zwei unterscheidlichen Wirkungsweisen
US08/411,076 US5625834A (en) 1991-05-14 1995-03-27 Information processing section and system for operating a plurality of vector pipeline sets in two different modes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3107721A JPH04336378A (ja) 1991-05-14 1991-05-14 情報処理装置

Publications (1)

Publication Number Publication Date
JPH04336378A true JPH04336378A (ja) 1992-11-24

Family

ID=14466265

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3107721A Pending JPH04336378A (ja) 1991-05-14 1991-05-14 情報処理装置

Country Status (4)

Country Link
US (1) US5625834A (ja)
EP (1) EP0517013B1 (ja)
JP (1) JPH04336378A (ja)
DE (1) DE69230626T2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07271764A (ja) * 1994-03-24 1995-10-20 Internatl Business Mach Corp <Ibm> 計算機プロセッサ及びシステム
US5630161A (en) * 1995-04-24 1997-05-13 Martin Marietta Corp. Serial-parallel digital signal processor
US5961632A (en) * 1996-07-25 1999-10-05 Texas Instruments Incorporated Microprocessor with circuits, systems, and methods for selecting alternative pipeline instruction paths based on instruction leading codes
KR100267089B1 (ko) * 1996-08-19 2000-11-01 윤종용 스칼라/벡터연산이조합된단일명령복수데이터처리
US6401194B1 (en) * 1997-01-28 2002-06-04 Samsung Electronics Co., Ltd. Execution unit for processing a data stream independently and in parallel
US5946496A (en) * 1997-12-10 1999-08-31 Cray Research, Inc. Distributed vector architecture
US5913069A (en) * 1997-12-10 1999-06-15 Cray Research, Inc. Interleaving memory in distributed vector architecture multiprocessor system
US6823016B1 (en) * 1998-02-20 2004-11-23 Intel Corporation Method and system for data management in a video decoder
CA2252291C (en) * 1998-10-30 2001-08-21 Nec Corporation A method of implementing vector operation using a processor chip which is provided with a vector unit
US6665749B1 (en) * 1999-08-17 2003-12-16 Nec Electronics, Inc. Bus protocol for efficiently transferring vector data
US6857061B1 (en) 2000-04-07 2005-02-15 Nintendo Co., Ltd. Method and apparatus for obtaining a scalar value directly from a vector register
GB2382887B (en) * 2001-10-31 2005-09-28 Alphamosaic Ltd Instruction execution in a processor
DE102007018604A1 (de) * 2007-04-18 2008-10-23 Rs2 Software Ltd. System, Verfahren und Karte zur Authentisierung und Verifizierung mit einem einmaligen, einzigen PIN, basierend auf der Biometrie
US8522076B2 (en) * 2010-06-23 2013-08-27 International Business Machines Corporation Error detection and recovery in a shared pipeline
WO2012052774A2 (en) * 2010-10-21 2012-04-26 Bluwireless Technology Limited Data processing units
US9830156B2 (en) * 2011-08-12 2017-11-28 Nvidia Corporation Temporal SIMT execution optimization through elimination of redundant operations
GB2553010B (en) * 2017-01-16 2019-03-06 Imagination Tech Ltd Efficient data selection for a processor
US10997116B2 (en) * 2019-08-06 2021-05-04 Microsoft Technology Licensing, Llc Tensor-based hardware accelerator including a scalar-processing unit
US11409533B2 (en) 2020-10-20 2022-08-09 Micron Technology, Inc. Pipeline merging in a circuit

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59160267A (ja) * 1983-03-02 1984-09-10 Hitachi Ltd ベクトル処理装置
JPS60136872A (ja) * 1983-12-26 1985-07-20 Hitachi Ltd ベクトル処理装置
CA1233260A (en) * 1985-03-13 1988-02-23 Chuck H. Ngai High performance parallel vector processor having a modified vector register/element processor configuration
JP2610821B2 (ja) * 1986-01-08 1997-05-14 株式会社日立製作所 マルチプロセツサシステム
JP2540199B2 (ja) * 1988-02-25 1996-10-02 アメリカン テレフォン アンド テレグラフ カムパニー デバイスの製造方法
JP2658397B2 (ja) * 1989-06-13 1997-09-30 日本電気株式会社 マルチプロセッサシステム
US5239654A (en) * 1989-11-17 1993-08-24 Texas Instruments Incorporated Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode
US5355508A (en) * 1990-05-07 1994-10-11 Mitsubishi Denki Kabushiki Kaisha Parallel data processing system combining a SIMD unit with a MIMD unit and sharing a common bus, memory, and system controller
US5261063A (en) * 1990-12-07 1993-11-09 Ibm Corp. Pipeline apparatus having pipeline mode eecuting instructions from plural programs and parallel mode executing instructions from one of the plural programs
CA2073516A1 (en) * 1991-11-27 1993-05-28 Peter Michael Kogge Dynamic multi-mode parallel processor array architecture computer system

Also Published As

Publication number Publication date
DE69230626T2 (de) 2000-06-15
US5625834A (en) 1997-04-29
EP0517013B1 (en) 2000-02-02
DE69230626D1 (de) 2000-03-09
EP0517013A2 (en) 1992-12-09
EP0517013A3 (ja) 1994-02-09

Similar Documents

Publication Publication Date Title
US5872987A (en) Massively parallel computer including auxiliary vector processor
Kuehn et al. The Horizon supercomputing system: architecture and software
JPH04336378A (ja) 情報処理装置
US8521997B2 (en) Conditional execution with multiple destination stores
JP4156794B2 (ja) iVLIWのPE間通信を用いた効率的な同期MIMD動作のための方法および装置
US5513366A (en) Method and system for dynamically reconfiguring a register file in a vector processor
JP3149348B2 (ja) 代理命令を用いる並列処理システム及び方法
RU2427895C2 (ru) Оптимизированная для потоков многопроцессорная архитектура
CN111381880B (zh) 一种处理器、介质和处理器的操作方法
US20020078320A1 (en) Methods and apparatus for instruction addressing in indirect VLIW processors
CN111381939B (zh) 多线程处理器中的寄存器文件
US5121502A (en) System for selectively communicating instructions from memory locations simultaneously or from the same memory locations sequentially to plurality of processing
JPH0766329B2 (ja) 情報処理装置
JPH0370034A (ja) 順次プログラムの並列実行のためのコンピュータ・システム及び方法並びにデータ値割当方法
US5036454A (en) Horizontal computer having register multiconnect for execution of a loop with overlapped code
JPH03286332A (ja) デジタルデータ処理装置
Wittenburg et al. HiPAR-DSP: A parallel VLIW RISC processor for real time image processing applications
KR20010072491A (ko) 산술 논리 유닛 및 스택을 가지는 데이터 프로세서,멀티미디어 장치 및 컴퓨터 프로그램 제품
CA2304609A1 (en) Autonomously cycling data processing architecture
US20210042123A1 (en) Reducing Operations of Sum-Of-Multiply-Accumulate (SOMAC) Instructions
JPH096614A (ja) データ処理装置
GB2380283A (en) A processing arrangement comprising a special purpose and a general purpose processing unit and means for supplying an instruction to cooperate to these units
JP2006506727A (ja) コピーレジスタファイルを有するvliw
US11416261B2 (en) Group load register of a graph streaming processor
US11822541B2 (en) Techniques for storing sub-alignment data when accelerating Smith-Waterman sequence alignments