JPS6224366A - ベクトル処理装置 - Google Patents
ベクトル処理装置Info
- Publication number
- JPS6224366A JPS6224366A JP60144798A JP14479885A JPS6224366A JP S6224366 A JPS6224366 A JP S6224366A JP 60144798 A JP60144798 A JP 60144798A JP 14479885 A JP14479885 A JP 14479885A JP S6224366 A JPS6224366 A JP S6224366A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- instruction
- slc
- scalar
- register
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30094—Condition code generation, e.g. Carry, Zero flag
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a secondary processor, e.g. coprocessor
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)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔発明の利用分野〕
本発明は、スカラ、ベクトルの2つのプロセッサから構
成されるベクトル処理装置に係り、特にベクトルプロセ
ッサ内の状況をスカラプロセッサが任意のタイミングで
知ることにより、ベクトル処理を高速化する方式に関す
る。
成されるベクトル処理装置に係り、特にベクトルプロセ
ッサ内の状況をスカラプロセッサが任意のタイミングで
知ることにより、ベクトル処理を高速化する方式に関す
る。
従来のベクトル処理装置では、スカシ処理を行うために
スカシ命令を、ベクトル処理を行うためにベクトル命令
を備えている。この両系列の命令を実行するために2種
類の方式がある。
スカシ命令を、ベクトル処理を行うためにベクトル命令
を備えている。この両系列の命令を実行するために2種
類の方式がある。
第1は1スカラ命令とベクトル命令の混在系ご1個の論
理ユニットがデコードする方式で、スカシとベクトルの
両系の命令によって記述されるプログラムの論理構造が
ユーザにとって見易いという特徴がある。さらにこの方
式によれば、浮動小数点、固定小数点などのレジスタ類
をスカラ、ベクトル両プロセッサで共用するこ
□とによす、両プロセッサ間のデータのやりとりをレジ
スタレベルで行うことが出来る。特にコンパイラ等ソフ
トウェアの側から見ると、レジスタを共用していること
によりてスカシの事象をベクトルで容易に知ることが出
来、かつまたその逆も可能である。即ち共用レジスタの
アクセス順序によって、スカラ、ベクトル両命令系の実
行制御が出来る。
理ユニットがデコードする方式で、スカシとベクトルの
両系の命令によって記述されるプログラムの論理構造が
ユーザにとって見易いという特徴がある。さらにこの方
式によれば、浮動小数点、固定小数点などのレジスタ類
をスカラ、ベクトル両プロセッサで共用するこ
□とによす、両プロセッサ間のデータのやりとりをレジ
スタレベルで行うことが出来る。特にコンパイラ等ソフ
トウェアの側から見ると、レジスタを共用していること
によりてスカシの事象をベクトルで容易に知ることが出
来、かつまたその逆も可能である。即ち共用レジスタの
アクセス順序によって、スカラ、ベクトル両命令系の実
行制御が出来る。
第2の方式は、スカシ命令とベクトル命令を′ 2種
類のブロックに分け、このうちのベクトル命令を処理単
位に細分する。この細分されたベクトル命令の集まり企
ベクトルプロセッサが実行する0ベクトル命令の集合間
の論理的組合せの指定は、スカシ命令の中のベクトルプ
ロセッサ起動命令、セットアツプ命令1ベクトルプロセ
ツサ状態チエツク命令等で行う。この方式ではスカシ命
令はスカラプロセッサでデコードされ、ベクトル命令は
ベクトルプロセッサでデコードされる。この方式の特徴
は1第1の方式よりも処理の並列性という観点からみる
と自由度が大きく、より高度の並列計算を実現するため
に有効な方式である(小高能 日経エレクトロニクス
No 、314. P、159−184 (1983,
4,11))。ただし、スカラ、ベクトル両プロセッサ
で同時に処理を行うため、両プロセッサで共通のレジス
タ類を持つことが出来ず、レジスタ番号を利用したプロ
セッサ相互間の実行制御は不可能である。これは従来の
シリアルな実行制御を仮定したソフトウェアの世界から
観ると、フードの論理的検証を著しく困難にする。さら
に両プロセッサ間の状態の通信手段を十分に備えないと
1シリアルな世界で構築さ−れているアルゴリズムを、
並列的なコードに写像する際同期損を多く ゛発生
し、期待しただけの性能が得られないことになる。この
ことはより高速のベクトル処理実現ノために並列的なハ
ードウェアを構成する時、プロセッサ同期制御が特に重
要であることを示している。
類のブロックに分け、このうちのベクトル命令を処理単
位に細分する。この細分されたベクトル命令の集まり企
ベクトルプロセッサが実行する0ベクトル命令の集合間
の論理的組合せの指定は、スカシ命令の中のベクトルプ
ロセッサ起動命令、セットアツプ命令1ベクトルプロセ
ツサ状態チエツク命令等で行う。この方式ではスカシ命
令はスカラプロセッサでデコードされ、ベクトル命令は
ベクトルプロセッサでデコードされる。この方式の特徴
は1第1の方式よりも処理の並列性という観点からみる
と自由度が大きく、より高度の並列計算を実現するため
に有効な方式である(小高能 日経エレクトロニクス
No 、314. P、159−184 (1983,
4,11))。ただし、スカラ、ベクトル両プロセッサ
で同時に処理を行うため、両プロセッサで共通のレジス
タ類を持つことが出来ず、レジスタ番号を利用したプロ
セッサ相互間の実行制御は不可能である。これは従来の
シリアルな実行制御を仮定したソフトウェアの世界から
観ると、フードの論理的検証を著しく困難にする。さら
に両プロセッサ間の状態の通信手段を十分に備えないと
1シリアルな世界で構築さ−れているアルゴリズムを、
並列的なコードに写像する際同期損を多く ゛発生
し、期待しただけの性能が得られないことになる。この
ことはより高速のベクトル処理実現ノために並列的なハ
ードウェアを構成する時、プロセッサ同期制御が特に重
要であることを示している。
本発明の目的は、スカラプロセッサとベクトルプロセッ
サの両プロセッサを具備したベクトル処理装置において
、スカシ命令系とベクトル命令系を分離したコードで記
述されているベクトル処理について、スカシとベクトル
両プロセッサから参照可能なレジスタ群と、レジスタ内
の値によってプロセッサの制御を行う命令とによって、
両プロセッサの並列動作範囲を拡大しき高速処理を図る
ことが可能なベクトル処理装置を提供することにある。
サの両プロセッサを具備したベクトル処理装置において
、スカシ命令系とベクトル命令系を分離したコードで記
述されているベクトル処理について、スカシとベクトル
両プロセッサから参照可能なレジスタ群と、レジスタ内
の値によってプロセッサの制御を行う命令とによって、
両プロセッサの並列動作範囲を拡大しき高速処理を図る
ことが可能なベクトル処理装置を提供することにある。
スカシとベクトル両プロセッサの同期について命令実行
制御とデータのやりとりの両面から考察する。
制御とデータのやりとりの両面から考察する。
命令実行制御について、スカラプロセッサでは命令解読
がシリアルなので、成る事象よりも他の事象が時間的に
後でなければならないという条件を、スカシ演算命令と
は別に独立のスカシ命令の導入で実現できる。このよう
なスカシ実行制御命令としてよく知られているものに、
’ ptji ’ 、 ’smL1 ’命令がある。7
1trd、 van!命令は、第1図に示すように命令
のデコードがシリアルで、命令の中に実行ステージの長
い命令が含まれる場合に有効な制御法である。第1図で
は、と−命令以前に出現した命令のとstptgLi後
の命令■の順序性が保障されている。従ってスカシ。
がシリアルなので、成る事象よりも他の事象が時間的に
後でなければならないという条件を、スカシ演算命令と
は別に独立のスカシ命令の導入で実現できる。このよう
なスカシ実行制御命令としてよく知られているものに、
’ ptji ’ 、 ’smL1 ’命令がある。7
1trd、 van!命令は、第1図に示すように命令
のデコードがシリアルで、命令の中に実行ステージの長
い命令が含まれる場合に有効な制御法である。第1図で
は、と−命令以前に出現した命令のとstptgLi後
の命令■の順序性が保障されている。従ってスカシ。
ベクトル命令混在方式によく適合する0命令の、実行ス
テージが重ならない純スカラ処理にptpA−t。
テージが重ならない純スカラ処理にptpA−t。
waiaA命令を適用し、ても無意味である。一方ベク
トルプロセッサでは、一般に命令を実行するリソースを
複数個持つため命令が並列に複数個実行され、スカラプ
ロセッサのように命令出現の順序のみで制御を行うPt
μ、 WGbχ命令だけで制御を行うと、ベクトル命令
のデコード類の制御となり1論理的に実行できるベクト
ル命令であっても、ベクトル命令の出現層でたまたまu
poblの後になったため実行待ちとなる弊害が生じる
。
トルプロセッサでは、一般に命令を実行するリソースを
複数個持つため命令が並列に複数個実行され、スカラプ
ロセッサのように命令出現の順序のみで制御を行うPt
μ、 WGbχ命令だけで制御を行うと、ベクトル命令
のデコード類の制御となり1論理的に実行できるベクト
ル命令であっても、ベクトル命令の出現層でたまたまu
poblの後になったため実行待ちとなる弊害が生じる
。
これは本質的に並列的なベクトル処理をシリアルなベク
トル命令デコード法によって処理する方式からもたらさ
れる。この弊害を避けるため、ベクトル命令の実行順序
を論理的な矛盾の来ない範囲で逆転可能にすると、pv
哀、 wpai、i命令向。
トル命令デコード法によって処理する方式からもたらさ
れる。この弊害を避けるため、ベクトル命令の実行順序
を論理的な矛盾の来ない範囲で逆転可能にすると、pv
哀、 wpai、i命令向。
身が無意味になる。従゛つてベクトル命令系にpt4
。
。
−Li命令を導入するのは適切ではない。
ベクトル命令間、ベクトル命令とスカラ命令。
間に順序性を保障するには、ベクトル命令自身に、命令
の実行開始可能条件と当該命令が終了した時に処理装置
の状態企どのように規定するかの指示が含まれていなけ
ればならない。ここでいう処理装置の状態に相当する概
念は従来の。
の実行開始可能条件と当該命令が終了した時に処理装置
の状態企どのように規定するかの指示が含まれていなけ
ればならない。ここでいう処理装置の状態に相当する概
念は従来の。
計算機にも条件コード(GerNlbスにσzcりiQ
という形で存在している。しかし従来の計算機では命令
。
という形で存在している。しかし従来の計算機では命令
。
デコードがシリアルであるため、条件コードは唯一つし
か存在しない。しかし処理装置の並列。
か存在しない。しかし処理装置の並列。
度を上げるためには命令のデコードを複数のデコーダで
行わざるを得ない。このことは従来の条件フードに相当
するものを複数個用意する必要があることを示している
。以下この処理装置の状態を示す「条件コードJを、S
itLiwa Laj、cjC=ルc、wLl、6(3
L C)という。
行わざるを得ない。このことは従来の条件フードに相当
するものを複数個用意する必要があることを示している
。以下この処理装置の状態を示す「条件コードJを、S
itLiwa Laj、cjC=ルc、wLl、6(3
L C)という。
SLCはスカラ、ベクトル両プロセッサから参照が可能
で、読出と書込が同時に起こらないように読出のタイミ
ングと書込のタイミングは別の位相とする必要がある。
で、読出と書込が同時に起こらないように読出のタイミ
ングと書込のタイミングは別の位相とする必要がある。
このSLCの最も簡単な表現形式は、命令の未完、完了
情報を0又は1で示すものである。この他命令実行中に
どのような例外が発生したかなどの情報がある。
情報を0又は1で示すものである。この他命令実行中に
どのような例外が発生したかなどの情報がある。
当該情報が種類が多くなればなる程、処理装置の詳細な
制御が可能になる。反面詳細な制御を−行う程ハードウ
ェア量が増大し、実装的な制限からマシンサイクルを遅
くせざる2得なくなる。
制御が可能になる。反面詳細な制御を−行う程ハードウ
ェア量が増大し、実装的な制限からマシンサイクルを遅
くせざる2得なくなる。
以下では次の4つの情報をSLCで示すものとする。
■命令が実行されていない(′0′とする)。
■命令が正常に実行された(′1′とする)。
■命令実行で割込が発生した(′2′とする)。
上記情報に対応して、処理装置のタイくングを■SLC
読出タイミング(TOとする)。
読出タイミング(TOとする)。
■SLC書込タイミング(TIとする)。
■割込チェックタイミング(T2とする)。
■SLC開演算開演主タイミングとする)。
の4相とする。この分類は絶対的なものではなく1目的
とする処理に適合するようにもっと多く又は少なく分類
してもよい。SLCを複数個かつ各々のSLCで複数の
状態を持ち、処理装置のタイミングを多相で持つことが
本質的なことである。
とする処理に適合するようにもっと多く又は少なく分類
してもよい。SLCを複数個かつ各々のSLCで複数の
状態を持ち、処理装置のタイミングを多相で持つことが
本質的なことである。
次にベクトル命令の表現形式について考察する。従来ベ
クトル命令は第2図(A)に示すごとく、オペレーショ
ンフード(OF)、オペランドフィールド(R1,R2
,R3)から構成されることが多い。処理系によりては
さらにオペランドフィールドを持つこともある。しかし
命令自身に命令を実行するための条件、命令が完了又は
異常終了した時の処理を規定するフィールド(このフィ
ールドのことを以下STフィールドという)はない。前
述のSLCによるプロセッサ間制御を行うために、第2
図(B)に示すようなSTフィールドを持つベクトル命
令を導入する必要がある。
クトル命令は第2図(A)に示すごとく、オペレーショ
ンフード(OF)、オペランドフィールド(R1,R2
,R3)から構成されることが多い。処理系によりては
さらにオペランドフィールドを持つこともある。しかし
命令自身に命令を実行するための条件、命令が完了又は
異常終了した時の処理を規定するフィールド(このフィ
ールドのことを以下STフィールドという)はない。前
述のSLCによるプロセッサ間制御を行うために、第2
図(B)に示すようなSTフィールドを持つベクトル命
令を導入する必要がある。
次にSTフィールド自身については、命令の起動と終結
時の管理のみを行う場合、2つのサブフィールドだけで
構成できる。しかしこの構成では、2つ以上の時象が完
結した後、目的とする命令が実行できる場合に対処する
ことが困難になる。このような複雑な事象にも使用でき
□る命令とするために、Si7.イールドも第
2図(A)に示すような多数のサブフィールドを持つ(
第2図(C))ように定義する。第2図(C)では、S
LC間の演算規定フィールド(OP2) 。
時の管理のみを行う場合、2つのサブフィールドだけで
構成できる。しかしこの構成では、2つ以上の時象が完
結した後、目的とする命令が実行できる場合に対処する
ことが困難になる。このような複雑な事象にも使用でき
□る命令とするために、Si7.イールドも第
2図(A)に示すような多数のサブフィールドを持つ(
第2図(C))ように定義する。第2図(C)では、S
LC間の演算規定フィールド(OP2) 。
命令完了時の情報をセットするSLC番号フィールド(
F)、命令を開始するために必要な条件を示すフィール
ド(C+、C2)が示されている。
F)、命令を開始するために必要な条件を示すフィール
ド(C+、C2)が示されている。
この形式は必ずしもこの型に限るというもので1はない
。STフィールドにSLC間の演算が含まれる点か本質
的なことである。
。STフィールドにSLC間の演算が含まれる点か本質
的なことである。
処理装置に於いては、演算というものは必ずそれが行わ
れた後は完了するものであるが、第2図(C)のOP2
フィールドで規定されるS L C。
れた後は完了するものであるが、第2図(C)のOP2
フィールドで規定されるS L C。
間の「演算Jは、OPフィールドで規定される命令が完
了しない限り完了にはならない。このような命令体系で
はOPフィールドが’、10 tp−c赫ILePy>
であっても、処理装置が何らの有意なデータ操作を行わ
ないということではなく、命令間の実行制御を行う積極
的な意味をもつ。
了しない限り完了にはならない。このような命令体系で
はOPフィールドが’、10 tp−c赫ILePy>
であっても、処理装置が何らの有意なデータ操作を行わ
ないということではなく、命令間の実行制御を行う積極
的な意味をもつ。
次にデータのプロセッサ間受は渡しについて検討する。
複数のプロセッサで主記憶を共用すればデータの授受は
主記憶経由で行うことが出来るが、より高速のデータ転
送を行うために、ベクトル、スカラ共プロセッサから参
照可能な。
主記憶経由で行うことが出来るが、より高速のデータ転
送を行うために、ベクトル、スカラ共プロセッサから参
照可能な。
レジスタを具備する必要がある。このレジスタはスカラ
アーキテクチャを優先的ニ考えsスカラアーキテクチャ
の上にベクトルアーキテクチャを付加させる立場に立つ
ならば、スカラ演算1命令のオペランドとして記述する
ことが出来ないものになる。スカラプロセッサには当該
ベクトル、スカラプロセッサ間データ転送用レジスタは
高速メモリとして見え、浮動小数点レジスタ、固定小数
点レジスタからのデータ転送命令のみが基本的オペレー
ジテンとしてスカラ命令体系に追加されることになる。
アーキテクチャを優先的ニ考えsスカラアーキテクチャ
の上にベクトルアーキテクチャを付加させる立場に立つ
ならば、スカラ演算1命令のオペランドとして記述する
ことが出来ないものになる。スカラプロセッサには当該
ベクトル、スカラプロセッサ間データ転送用レジスタは
高速メモリとして見え、浮動小数点レジスタ、固定小数
点レジスタからのデータ転送命令のみが基本的オペレー
ジテンとしてスカラ命令体系に追加されることになる。
しかしベクトル命令系ではベクトル演算のオペランドと
して直接記述が可能である◎このようなプロセッサ間デ
ータ授受用レジスタを以下スカラレジスタ(3caj部
R4P^ル、略してSR)という。
して直接記述が可能である◎このようなプロセッサ間デ
ータ授受用レジスタを以下スカラレジスタ(3caj部
R4P^ル、略してSR)という。
以上で、本発明のベクトル処理装置におけるハードウェ
ア、命令形の特徴について概要を説明した。以下、これ
らのアーキテクチャによってどのようなプログラムの要
求している処理動作が行われるのかを具体的に説明する
。
ア、命令形の特徴について概要を説明した。以下、これ
らのアーキテクチャによってどのようなプログラムの要
求している処理動作が行われるのかを具体的に説明する
。
例1;内積形計算におけるスカラ、ベクトル両プロセッ
サの同期動作 内積形計算はSRとSLCを利用して同期損を減少させ
得る。たとえばFORTRANコードで、 S = O,O DO100I−1,N 1an S = S+A (I) * B (I)
T = S + 273.0 のような場合、スカラコードを、 ■ tnl?4 SRQ ←D’ Q 、Q ’■
どji 〔o、N、N〕 ■ −Li (N、1.N:1 ■ mus−< P P RO”−S R0■
atitt FPRO4−FPRO+D’273.0
’とし、ベクトルフードを1 ■ ?4cmteyb 1pati V
R04−A 、 CN、 N 、 N
〕■ y<clzh 1Jpatt
V R14−B T (N 、 N
+ N ](3) LtyL4a、、 p4−
4′etwc、1. 3 RO4−S RO+ V R
O* V R1(1。
サの同期動作 内積形計算はSRとSLCを利用して同期損を減少させ
得る。たとえばFORTRANコードで、 S = O,O DO100I−1,N 1an S = S+A (I) * B (I)
T = S + 273.0 のような場合、スカラコードを、 ■ tnl?4 SRQ ←D’ Q 、Q ’■
どji 〔o、N、N〕 ■ −Li (N、1.N:1 ■ mus−< P P RO”−S R0■
atitt FPRO4−FPRO+D’273.0
’とし、ベクトルフードを1 ■ ?4cmteyb 1pati V
R04−A 、 CN、 N 、 N
〕■ y<clzh 1Jpatt
V R14−B T (N 、 N
+ N ](3) LtyL4a、、 p4−
4′etwc、1. 3 RO4−S RO+ V R
O* V R1(1。
0、N〕
とする。ここでは、スカラ命令系にはptjL 、 m
Qi命令を追加することを仮定している。スカラ。
Qi命令を追加することを仮定している。スカラ。
ベクトル両命令のオペランドの〔〕はSLCを調べる条
件、命令実行後のSLCセット法を規定している。即ち
、〔〕内の第1項には命令完了後の条件を七ッ卜すべき
SLC番号(第2図(C)のFフィールド対応)、第2
,3項には命令実行に必要なSLCの番号(第2図(C
)の(j、C2フィールド対応)が示されている。SL
C番号にNを書くとSLCの状態には無関係に処理を行
うものとする。従って、上記のスカラコードでは■のp
til命令は■の増−命令が完了すると、完了コードを
5LCoにセットすることになる。スカラプロセッサで
は次の■のw6i、i命令に処理が移行するか、5LC
1がセットされていないので、該−LJ、命令でスカラ
プロセッ □すが待ち状態となる。一方、ベクト
ルプロセラ :すでは■、■のベクトルロード
命令はSLCに :関係なく実行が開始され、
完了する。ここでv 1Rとはベクトルレジス
タを意味するものとする。 i■、)、積。令、
ユ、8カウツ。ヤ7□、■。8□ 10クリアを
完了した後実行が開始される。この 1本 時■、■のベクトルロード命令は完了しでいる
1か否かのつ一ニックは行わない。ベクトルプロ七
“ツサではVR番号によってチェイニング動作が
1ケゎゎ1.−ヶ(7) 7 z y□ユ□ヶ
うよいう i因果関係は保障されている。
1家 内積命令が完了し、結果がSROに求まると、
(貰 5LCIがセットされる。5LC1がセットさ
ゝれると、スカラプロセッサのulaL1命令実行によ
る待ち状態は解除され、ベクトル処理で求めた
′内積計算の結果をSRoから浮動小数点レジスタFP
ROに読出し、スカラプロセッサでの加 算を行
う。以上スカラ、ベクトル両プロセッサ同期でSLC,
SR搭載による効果によって同。
件、命令実行後のSLCセット法を規定している。即ち
、〔〕内の第1項には命令完了後の条件を七ッ卜すべき
SLC番号(第2図(C)のFフィールド対応)、第2
,3項には命令実行に必要なSLCの番号(第2図(C
)の(j、C2フィールド対応)が示されている。SL
C番号にNを書くとSLCの状態には無関係に処理を行
うものとする。従って、上記のスカラコードでは■のp
til命令は■の増−命令が完了すると、完了コードを
5LCoにセットすることになる。スカラプロセッサで
は次の■のw6i、i命令に処理が移行するか、5LC
1がセットされていないので、該−LJ、命令でスカラ
プロセッ □すが待ち状態となる。一方、ベクト
ルプロセラ :すでは■、■のベクトルロード
命令はSLCに :関係なく実行が開始され、
完了する。ここでv 1Rとはベクトルレジス
タを意味するものとする。 i■、)、積。令、
ユ、8カウツ。ヤ7□、■。8□ 10クリアを
完了した後実行が開始される。この 1本 時■、■のベクトルロード命令は完了しでいる
1か否かのつ一ニックは行わない。ベクトルプロ七
“ツサではVR番号によってチェイニング動作が
1ケゎゎ1.−ヶ(7) 7 z y□ユ□ヶ
うよいう i因果関係は保障されている。
1家 内積命令が完了し、結果がSROに求まると、
(貰 5LCIがセットされる。5LC1がセットさ
ゝれると、スカラプロセッサのulaL1命令実行によ
る待ち状態は解除され、ベクトル処理で求めた
′内積計算の結果をSRoから浮動小数点レジスタFP
ROに読出し、スカラプロセッサでの加 算を行
う。以上スカラ、ベクトル両プロセッサ同期でSLC,
SR搭載による効果によって同。
期損が極小になるように制御することが可能である。同
期にスカラコードの■Ptdと■−ルχ間に種々の白檀
計算とは関係のない処理分代入し、スカラプロセッサの
待ち時間を利用し、他の演算を行い、処理装置の性能を
向上させることも可能である。
期にスカラコードの■Ptdと■−ルχ間に種々の白檀
計算とは関係のない処理分代入し、スカラプロセッサの
待ち時間を利用し、他の演算を行い、処理装置の性能を
向上させることも可能である。
例2; 2現象完了情報を利用する場合次のようなFO
RTRANコーTR時。
RTRANコーTR時。
S = o、0
T = 0.0
Do 100 I=1.N
5=S+A(I) *B (I)
1oo T = T+ C(I)
U=S/T。
スカラコードとして。
■ rM?4 SRO←D ’ 0.0゜■ ptAt
(o 、 N 、 N :1■ mev4SR14
−D ’ 0.0’■ どji (1、N、N) ■ 謀A2 (N、 24−3 〕■ 潤y
4 F P RO←SRO■ ””1P4 F
PR2←31(1■ dbCLd4 F
P RQ 4− F P RQ / F
P R1■ bえσル4 FPRo
←l U′ 。
(o 、 N 、 N :1■ mev4SR14
−D ’ 0.0’■ どji (1、N、N) ■ 謀A2 (N、 24−3 〕■ 潤y
4 F P RO←SRO■ ””1P4 F
PR2←31(1■ dbCLd4 F
P RQ 4− F P RQ / F
P R1■ bえσル4 FPRo
←l U′ 。
ベクトルコードとして。
(I) v<rJzhterati VRo+−’
、(、[N、 N、 N”]■ VるCAJ4&α
” VRl ←’B’、 CN、 N、 N)
■ 1rrL?L44)aaadwtaλS i’tO
←5Fto+vRO傘VR1,[2,O,N)■ ?
4Gルー 1tral V R2←’ (” 、 (
N、 N 、 N 〕■ iw′nrntL、tb
tyx SR1←3 R1+VR2,(3、1、N
Lとする。この場合処理装置の動作は次のようなものに
なる。スカラプロセッサでは■→■と処理が行われ、5
LCo、1がセットされ、■のwaL1命令で待ち状態
となる。ベクトルプロセッサでは■、■のベクトルロー
ド命令は5LCk:無関係に実行される。■の白檀命令
は5LCDがセットされるまで実行されない。この時■
のベクトルロード命令はSLCに無関係なので、ベクト
ルプロセッサの命令デコード?工夫することにより、■
の白檀命令の実行開始な待つことなく、実行することが
できる。このように、ベクトルプロセッサでは命令のデ
フード回路を工夫することにより性能を向上させ得る。
、(、[N、 N、 N”]■ VるCAJ4&α
” VRl ←’B’、 CN、 N、 N)
■ 1rrL?L44)aaadwtaλS i’tO
←5Fto+vRO傘VR1,[2,O,N)■ ?
4Gルー 1tral V R2←’ (” 、 (
N、 N 、 N 〕■ iw′nrntL、tb
tyx SR1←3 R1+VR2,(3、1、N
Lとする。この場合処理装置の動作は次のようなものに
なる。スカラプロセッサでは■→■と処理が行われ、5
LCo、1がセットされ、■のwaL1命令で待ち状態
となる。ベクトルプロセッサでは■、■のベクトルロー
ド命令は5LCk:無関係に実行される。■の白檀命令
は5LCDがセットされるまで実行されない。この時■
のベクトルロード命令はSLCに無関係なので、ベクト
ルプロセッサの命令デコード?工夫することにより、■
の白檀命令の実行開始な待つことなく、実行することが
できる。このように、ベクトルプロセッサでは命令のデ
フード回路を工夫することにより性能を向上させ得る。
■の総和命令は5LCIがセットされた後実行され、完
了すると5LC3がセットされる。ベクトルプロセッサ
では、ベクトル命令の実行順序逆転、演算処理の長さ不
定等の原因により、命令の出現順に処理が終了すること
が保障されない。上記では5LC2,3はどちらが先に
セットされるか不定である。従ってスカラプロセッサで
はSRo、1上の結果を使って処理を行うために、常に
5LC2,3の間の論理積をとりながら待つ必要がある
。この動作を行うのが■のWα就命令である。以上述べ
たように2つの現象の完?”を待つ場合も、SLC,S
Rを利用してプロセッサ相互の同期損を極小化すること
ができる。
了すると5LC3がセットされる。ベクトルプロセッサ
では、ベクトル命令の実行順序逆転、演算処理の長さ不
定等の原因により、命令の出現順に処理が終了すること
が保障されない。上記では5LC2,3はどちらが先に
セットされるか不定である。従ってスカラプロセッサで
はSRo、1上の結果を使って処理を行うために、常に
5LC2,3の間の論理積をとりながら待つ必要がある
。この動作を行うのが■のWα就命令である。以上述べ
たように2つの現象の完?”を待つ場合も、SLC,S
Rを利用してプロセッサ相互の同期損を極小化すること
ができる。
スカラ、ベクトルプロセッサ間のデータの授受を主記憶
経由で行う場合も、SRの場合と全く同様にして行うこ
とができる。またベクトルプロセッサ内のベクトルロー
ド、ストア命令間の因果関係も自由にSLCによって設
定可能である0 次に命令において例外が発生した場合の処理。
経由で行う場合も、SRの場合と全く同様にして行うこ
とができる。またベクトルプロセッサ内のベクトルロー
ド、ストア命令間の因果関係も自由にSLCによって設
定可能である0 次に命令において例外が発生した場合の処理。
について述べる。スカラプロセッサ側のSLCセット命
令はpe云、 u)rLLi 2命令のみなので、アク
セス例外、演算例外は生じない。ユーザプログラムにと
って主に制御する必要のある例外は上記のアクセス、演
算例外なので、ベクトルプロセッサ側の2つの例外時の
処理について述べる。
令はpe云、 u)rLLi 2命令のみなので、アク
セス例外、演算例外は生じない。ユーザプログラムにと
って主に制御する必要のある例外は上記のアクセス、演
算例外なので、ベクトルプロセッサ側の2つの例外時の
処理について述べる。
ベクトルプロセッサがベクトル命令をデコードし、当該
命令の指定している処理をベクトルプロセッサ内の演算
器又はメモリリクエスタ(以下両者を総称してリソース
という)に行わセt、一時、アクセス例外又は演算例外
が発生したとする。例外情報は直ちにSLCに反映され
る08LCは多相のタイミングで常時チェックされてい
るのでスカラプロセッサは例外発生の直後に、SLC上
の例外情報を使って割込処理ルーチンに制御を移行させ
ることができる。この方式では)例外が発生した命令は
同定することができるが、例外発光時のベクトルの要素
番号、゛例外回復処理をハードウェアで直接行うことは
できない。しかしソフトウェア、特にコンパイラを工夫
して、ベクトル処理に於いて主記憶書込の行われる配列
の内容をベクトル処理開始に先立って退避しておき、割
込処理ルーチンで退避エリアから書込の行われた配列の
回復を行うことによって、ベクトル処理開始時の状態に
戻すことができる。この割込処理ルーチン実行のため5
の必要なパラメータは、退避配列数、ベクトル長、退避
エリア先頭番地等である。これらはハードウェアが決め
られたSRに必要な情報をベクトル処理開始時にセット
する。以上により、ベクトル処理中に例外が発生しても
、割込処理ルーチンによってベクトル処理開始前に制御
を戻すことができる。スカラプロセッv カwaLJL
命令のオペランドに記述されているSLCによる待ち状
態は1本発明の処理装置では、u4L1命令実行中と考
えるので、上記の割込処理ルーチンへ制御を移す方式は
、従来のスカラプロセッサで実施されているようなプロ
グラム状態語のN@xt ins’trttction
area (N I A )を書替える方法で可能で
ある。ベクトル処理開始前の状態に制御が戻された後、
ベクトル処理に相当する処理をスカシの命令フード実施
する。以下スカラプロセッサで発生する例外の処理につ
いては詳細ヲ省くが、オペレーティングシステムのスー
パーバイザによって任意の処置が可能である。以上一連
の処理により、ベクトル処理中の任意の要素で発生した
例外をユーザプログラムのレベルで、割込ルーチンによ
って、スーパー7(イザを利用Tることにより制御でき
る。
命令の指定している処理をベクトルプロセッサ内の演算
器又はメモリリクエスタ(以下両者を総称してリソース
という)に行わセt、一時、アクセス例外又は演算例外
が発生したとする。例外情報は直ちにSLCに反映され
る08LCは多相のタイミングで常時チェックされてい
るのでスカラプロセッサは例外発生の直後に、SLC上
の例外情報を使って割込処理ルーチンに制御を移行させ
ることができる。この方式では)例外が発生した命令は
同定することができるが、例外発光時のベクトルの要素
番号、゛例外回復処理をハードウェアで直接行うことは
できない。しかしソフトウェア、特にコンパイラを工夫
して、ベクトル処理に於いて主記憶書込の行われる配列
の内容をベクトル処理開始に先立って退避しておき、割
込処理ルーチンで退避エリアから書込の行われた配列の
回復を行うことによって、ベクトル処理開始時の状態に
戻すことができる。この割込処理ルーチン実行のため5
の必要なパラメータは、退避配列数、ベクトル長、退避
エリア先頭番地等である。これらはハードウェアが決め
られたSRに必要な情報をベクトル処理開始時にセット
する。以上により、ベクトル処理中に例外が発生しても
、割込処理ルーチンによってベクトル処理開始前に制御
を戻すことができる。スカラプロセッv カwaLJL
命令のオペランドに記述されているSLCによる待ち状
態は1本発明の処理装置では、u4L1命令実行中と考
えるので、上記の割込処理ルーチンへ制御を移す方式は
、従来のスカラプロセッサで実施されているようなプロ
グラム状態語のN@xt ins’trttction
area (N I A )を書替える方法で可能で
ある。ベクトル処理開始前の状態に制御が戻された後、
ベクトル処理に相当する処理をスカシの命令フード実施
する。以下スカラプロセッサで発生する例外の処理につ
いては詳細ヲ省くが、オペレーティングシステムのスー
パーバイザによって任意の処置が可能である。以上一連
の処理により、ベクトル処理中の任意の要素で発生した
例外をユーザプログラムのレベルで、割込ルーチンによ
って、スーパー7(イザを利用Tることにより制御でき
る。
コンパイラのバグによるフードの不当な生成又はユーザ
プログラムの暴走によるコードの破壊等によりて、スカ
ラ、ベクトルプロセッサの待ち状態を解除する命令が発
行できなくなる。
プログラムの暴走によるコードの破壊等によりて、スカ
ラ、ベクトルプロセッサの待ち状態を解除する命令が発
行できなくなる。
このような事態では、ある経過時間後に強制的にユーザ
ジヲブをキャンセルする必要がある。
ジヲブをキャンセルする必要がある。
そのために各プロセッサが、待ち状態に遷移した時、各
プロセッサ内のカウンタを起動させる。
プロセッサ内のカウンタを起動させる。
当該カウンタはマシンサイクルピッチにカウントアツプ
され、ある決められた値をカウンタ値が越えるとキャリ
ーを生成する。このキャリーをプログラム状態語を書替
える論理のトリガー信号とすることにより、割込処理ル
ーチンに制御を渡すことができる。
され、ある決められた値をカウンタ値が越えるとキャリ
ーを生成する。このキャリーをプログラム状態語を書替
える論理のトリガー信号とすることにより、割込処理ル
ーチンに制御を渡すことができる。
以下、本発明の一実施例を第3.4.5図により説明す
る。
る。
第3図において、1はスカシ命令リクエスタ、2はスカ
シ命令デコーダ、3はスカラプロセッ。
シ命令デコーダ、3はスカラプロセッ。
す待ち状態管理回路(以下スカラウェイト管理回路とい
う)、4はスカラウェイトチェックカウンタ、5はタイ
ミングジェネレータ、6,7はスイッチング回路、8は
Stαtwz Latcl C1rcuztz (SL
C)、9はOR回路、10はベクトル命令リクエスタ、
11はベクトル命令デコーダ、12ハベクトルププロセ
ツサ側のウェイト管理回路である。13ハベクトルウエ
イトチエツクカウンタ、14はプログラム状態語管理回
路、15.−16はスイッチング回路、17はスカシレ
ジスタ(SR)である。ここで5LC8およびS R1
7は複数個存在することを示すために、該回路の右下に
それぞれz?L、 zmと記した。
う)、4はスカラウェイトチェックカウンタ、5はタイ
ミングジェネレータ、6,7はスイッチング回路、8は
Stαtwz Latcl C1rcuztz (SL
C)、9はOR回路、10はベクトル命令リクエスタ、
11はベクトル命令デコーダ、12ハベクトルププロセ
ツサ側のウェイト管理回路である。13ハベクトルウエ
イトチエツクカウンタ、14はプログラム状態語管理回
路、15.−16はスイッチング回路、17はスカシレ
ジスタ(SR)である。ここで5LC8およびS R1
7は複数個存在することを示すために、該回路の右下に
それぞれz?L、 zmと記した。
ベクトル処理装置が起動されると、スカシ命令のiHB
がスカシ。命令リクエスタ1によって □行われ
る。主記憶装置(MS)から読出された □スカ
シ命令中に存在するベクトルプロセッサ起動命令、セッ
トアツプ命令によってベクトルプ □ロセッサの
処理が開始される。以上の動作を行 □う論理
回路は、本発明の本質であるスカラ、ベク ”
トルプロセッサ同期動作とは直接関係ないので
゛第3FI!Jからは省略されている。以下説明は全て
、 1スカラ、ベクトル両プロセッサが共に動作
中で :あることを仮定している(待ち状態も動
作中に含めるものとする)。
がスカシ。命令リクエスタ1によって □行われ
る。主記憶装置(MS)から読出された □スカ
シ命令中に存在するベクトルプロセッサ起動命令、セッ
トアツプ命令によってベクトルプ □ロセッサの
処理が開始される。以上の動作を行 □う論理
回路は、本発明の本質であるスカラ、ベク ”
トルプロセッサ同期動作とは直接関係ないので
゛第3FI!Jからは省略されている。以下説明は全て
、 1スカラ、ベクトル両プロセッサが共に動作
中で :あることを仮定している(待ち状態も動
作中に含めるものとする)。
スカシ命令がデコーダ2によって解読される
1口 と5ptil 、5tpaLi命令以外のスカシ命令時
は、SL ’C等の命令デフード時の制御条
件を調べること 時なく、パス21を通してス
カシ処理開始をスカラプロセッサ内の各論理回路に指示
する。
1口 と5ptil 、5tpaLi命令以外のスカシ命令時
は、SL ’C等の命令デフード時の制御条
件を調べること 時なく、パス21を通してス
カシ処理開始をスカラプロセッサ内の各論理回路に指示
する。
pt江、 w(LL)L 命令の場合の動作を第4図を
用いて説明する0第41テは第3図のデコーダ、スカラ
ウェイトg理回路について第3図よりも詳細に示したも
のである。第4図と第3図に共通の論理回路、パス等は
同じ番号が用いられている@Pσノ命令が解読されると
、デコーダ2はSL。
用いて説明する0第41テは第3図のデコーダ、スカラ
ウェイトg理回路について第3図よりも詳細に示したも
のである。第4図と第3図に共通の論理回路、パス等は
同じ番号が用いられている@Pσノ命令が解読されると
、デコーダ2はSL。
C番号が明示されている場合レジスタ100に当該番号
をセットする。同時に“1°をラッチ101にセットす
る。SLC番号にNが指定されている場合、ラッチ10
1には 0 がセットされる。
をセットする。同時に“1°をラッチ101にセットす
る。SLC番号にNが指定されている場合、ラッチ10
1には 0 がセットされる。
この時レジスタ100にセットされる内容は保障しない
。戸σ−61命令は同期をとるためのSLCセット命令
であるので、SLCの内容を調べて当該命令を起動する
ような論理は構成しない。しかしプログラムデパックの
ため、It哀命令を無効命令化したい場合があることを
考慮し、SLCセット無効化の論理動作を行う。レジス
タ100゜ラッチIL11にセットされた内容は、次の
タイミングでAND回路102によって、パス21上の
pe4命令起動情報と論理積がとられ、SLC書込情報
としてパス250上に送られる。
。戸σ−61命令は同期をとるためのSLCセット命令
であるので、SLCの内容を調べて当該命令を起動する
ような論理は構成しない。しかしプログラムデパックの
ため、It哀命令を無効命令化したい場合があることを
考慮し、SLCセット無効化の論理動作を行う。レジス
タ100゜ラッチIL11にセットされた内容は、次の
タイミングでAND回路102によって、パス21上の
pe4命令起動情報と論理積がとられ、SLC書込情報
としてパス250上に送られる。
upehL差命令が解読されると、デコーダ2は続出リ
クエストをパス104上に、読出SLC番号をパス10
5 (2重線)に送る。当該パスは第3図ではパス20
として概略の結合が示されている。
クエストをパス104上に、読出SLC番号をパス10
5 (2重線)に送る。当該パスは第3図ではパス20
として概略の結合が示されている。
パス20上のリフニス)要求に対し、SLCの応答を第
3図にもどりて説明する。
3図にもどりて説明する。
第3図の5LC7は、タイミングジェネレータ5の生成
するTO(SLC続出)、TI(SLC’書込)、T2
(SLC例外情報サーチ)、T3(SLC演算)タイミ
ングによって制御されている。
するTO(SLC続出)、TI(SLC’書込)、T2
(SLC例外情報サーチ)、T3(SLC演算)タイミ
ングによって制御されている。
なお、これらのタイミングは、上述の「タイミング」を
さらに細分化したものとする。
さらに細分化したものとする。
パス20を介してSLCを参照要求が発行されると、T
Oのタイミングで指定されたSLCの内容を読出し、T
5のタイミングでパス20上に読出したデータを送る。
Oのタイミングで指定されたSLCの内容を読出し、T
5のタイミングでパス20上に読出したデータを送る。
第4図において、106は上記の細分化されたタイミン
グによってパス20を時分割使用するためのスイッチン
グ回路で、パス107は当該回路に入力されるTO〜T
3タイミングのパスである。
グによってパス20を時分割使用するためのスイッチン
グ回路で、パス107は当該回路に入力されるTO〜T
3タイミングのパスである。
読出されたSLCの情報はレジスタ108,109にセ
ットされる。この情報はT3で論理演算器110を用い
て演算される。演算の種類はパス111を通じてデコー
ダ2が指示する。演算の結果はラッチ112に保持され
る。この値はutaLj−命令がスカラ待ち状態を継続
するか否かを示している。
ットされる。この情報はT3で論理演算器110を用い
て演算される。演算の種類はパス111を通じてデコー
ダ2が指示する。演算の結果はラッチ112に保持され
る。この値はutaLj−命令がスカラ待ち状態を継続
するか否かを示している。
一方デコーダ2は−LL命令起動と同時に、スカラウェ
イト管理回路3をパス22を介して起動する。スカラウ
ェイト管理回路3はラッチ回路112の情報が待ち状態
継続ならば、パス22kを介してデコーダ2にunzL
J、命令処理中であることご報告する。ラッチ11zの
情報が待ち状態解除ならばwair差命令完了報告をパ
ス22kを介して行う、 デコーダ2によりて−Li命令がデコードされた時、ス
カラウェイト管理回路3はパス23を介して、スカシチ
ェックカウンタ4(第3図)2起動すると共にスカシ命
令続出を中断させる。
イト管理回路3をパス22を介して起動する。スカラウ
ェイト管理回路3はラッチ回路112の情報が待ち状態
継続ならば、パス22kを介してデコーダ2にunzL
J、命令処理中であることご報告する。ラッチ11zの
情報が待ち状態解除ならばwair差命令完了報告をパ
ス22kを介して行う、 デコーダ2によりて−Li命令がデコードされた時、ス
カラウェイト管理回路3はパス23を介して、スカシチ
ェックカウンタ4(第3図)2起動すると共にスカシ命
令続出を中断させる。
一方バス22kを通して待ち状態継続が報告された場合
、1tPeLLJ、命令はデコーダ2内のレジスタ(図
には明示していない)に留まり、スカシ命令デフードパ
イブラインは停止スる。パス22kを介して待ち状態解
除が行われた場合、デコーダ2は、命令完了時のSLC
セット番号をレジスタ100にセットしラッチ101に
1 をセットする。SLC番号が明示されていない場
合zO′をラッチ101にセットする。次に命令実行情
報とレジスタ100.ラッチ101の情報が、AND回
路102で論理積がとられ、SLC@込信号色信号てパ
ス230上に送られる。
、1tPeLLJ、命令はデコーダ2内のレジスタ(図
には明示していない)に留まり、スカシ命令デフードパ
イブラインは停止スる。パス22kを介して待ち状態解
除が行われた場合、デコーダ2は、命令完了時のSLC
セット番号をレジスタ100にセットしラッチ101に
1 をセットする。SLC番号が明示されていない場
合zO′をラッチ101にセットする。次に命令実行情
報とレジスタ100.ラッチ101の情報が、AND回
路102で論理積がとられ、SLC@込信号色信号てパ
ス230上に送られる。
ラッチ112が待ち状態解除となった時、スカラウェイ
ト管理回路はパス23を介し、スカシ命令続出中断解除
をスカシ・命令リクエスタ1に指示する。
ト管理回路はパス23を介し、スカシ命令続出中断解除
をスカシ・命令リクエスタ1に指示する。
第3,5図を用いてベクトル命令のデコードと起動方法
について概説する。
について概説する。
第3図のベクトル、命令リクエスタ10によってベクト
ル命令が主記憶から読出され、デコーダ11に送られる
。第5図は第3図11のデコーダおよび12のウェイト
管理回路の論理構成をより詳細化して図示したもυであ
る。第5図において)ベクトル命令はレジスタ200に
一時的に格納され、パス201を経由してベクトル命令
のオペランドに記述されたSLC読出、演算を行う回路
(該@路を以下SLCデコーダという)202に送られ
る。SLCデコーダ202の論理は、第4図に示されて
いるものに同じである。即ち第4図のスイッチング回路
106は第5図の203に、スカラウェイト管理回路3
は206に対応する。
ル命令が主記憶から読出され、デコーダ11に送られる
。第5図は第3図11のデコーダおよび12のウェイト
管理回路の論理構成をより詳細化して図示したもυであ
る。第5図において)ベクトル命令はレジスタ200に
一時的に格納され、パス201を経由してベクトル命令
のオペランドに記述されたSLC読出、演算を行う回路
(該@路を以下SLCデコーダという)202に送られ
る。SLCデコーダ202の論理は、第4図に示されて
いるものに同じである。即ち第4図のスイッチング回路
106は第5図の203に、スカラウェイト管理回路3
は206に対応する。
SLC間の演算を行う”部分はデコーダ202内に含ま
れているものとする。SLCデコーダ202の処理の結
果、当該ベクトル命令が起動不可と、判定された場合、
パス205を介して、キ為−管理回路206に命令起動
不可報告がなされる。このキ為−管理回路206は第3
図のウェイト管理回路12に相当するものであるが、必
ずしも一対一応ではないので、第5図の説明では以下キ
ュー管理回路を用いる。
れているものとする。SLCデコーダ202の処理の結
果、当該ベクトル命令が起動不可と、判定された場合、
パス205を介して、キ為−管理回路206に命令起動
不可報告がなされる。このキ為−管理回路206は第3
図のウェイト管理回路12に相当するものであるが、必
ずしも一対一応ではないので、第5図の説明では以下キ
ュー管理回路を用いる。
キュー管理回路206は命令起動不可報告が行われたと
き、レジスタ200内のベクトル命令をレジスタ207
に移す。該レジスタは第5図では図面の簡約化のために
1個記されているが1必ずしも1個である必要はなく、
命令の実行順序逆転範囲を拡大させるために複数個用意
してもかまわない。起動不可となったベクトル命令がレ
ジスタ207に移行した後、後続のベクトル命令が命令
リクエスタ1o(第3図)によってレジ:スタ200に
格納される。パス205を介して起動可となったベクト
ル命令はレジスタ200からレジスタ209に移され、
同時にSLCデコーダ202内の命令のコピーが、リソ
ース管理回路210へ移される。
き、レジスタ200内のベクトル命令をレジスタ207
に移す。該レジスタは第5図では図面の簡約化のために
1個記されているが1必ずしも1個である必要はなく、
命令の実行順序逆転範囲を拡大させるために複数個用意
してもかまわない。起動不可となったベクトル命令がレ
ジスタ207に移行した後、後続のベクトル命令が命令
リクエスタ1o(第3図)によってレジ:スタ200に
格納される。パス205を介して起動可となったベクト
ル命令はレジスタ200からレジスタ209に移され、
同時にSLCデコーダ202内の命令のコピーが、リソ
ース管理回路210へ移される。
ここでSLCデコーダ202のタイミングを、2分割し
Tz、Tyとする。Tzのタイミングではバス208経
由でレジスタ207の命令の起動可否が調べられ、Ty
のタイミングではレジスタ200の命令が調べられる。
Tz、Tyとする。Tzのタイミングではバス208経
由でレジスタ207の命令の起動可否が調べられ、Ty
のタイミングではレジスタ200の命令が調べられる。
従ってSLCデコーダで起動不可の判定が行われたペク
)A/命令は、レジスタ207に移された後T:tのタ
イミングで調べられる。その結果起動可となると、キュ
ー管理回路206に報告を行い、レジスタ209に命令
が移行Tる。Tyのタイミングでは、レジスタ200の
命令の起動可否が調べられる。レジスタ200の命令の
起動可能性については、該命令のSLC参照情報と、レ
ジスタ207上のベクトル命令が使用するレジスタ番号
等の比較を行い決定する。
)A/命令は、レジスタ207に移された後T:tのタ
イミングで調べられる。その結果起動可となると、キュ
ー管理回路206に報告を行い、レジスタ209に命令
が移行Tる。Tyのタイミングでは、レジスタ200の
命令の起動可否が調べられる。レジスタ200の命令の
起動可能性については、該命令のSLC参照情報と、レ
ジスタ207上のベクトル命令が使用するレジスタ番号
等の比較を行い決定する。
レジスタ200上の命令が起動可となりた場合、キュー
管理回路206は、レジスタ209にベクトル命令がな
い時は、当該命令をレジスタ209に移行させる。レジ
スタ209にベクトル命令が存在し、レジスタ207に
命令がなければ1命令を・ レジスタ207に移行させ
る。レジスタ209.207共に命令が存在する時は、
レジスタ200上の命令が起動可能となっても、レジス
タ間の命令移行は行われない。このような制御を採用し
ても、ベクトル命令は必ず正常に完了するか、例外検出
で終了するので、ベクトルプロセッサカテッド’Oyり
となることはない。レジスタ200上の □ベク
トル命令が起動不可と判定された場合、Ty′のタイミ
ングでパス2−05を介して起動不可報告 □キ
ュー管理回路206へ報告される。キュー管理
゛回路206はこの報告が成された後、パス25を経
j由してベクトル・命令リクエスタの動作を中断
′させる。同時にパス26を介して、ベクトル
チェックカウンター5(第3図)を起動する。
管理回路206は、レジスタ209にベクトル命令がな
い時は、当該命令をレジスタ209に移行させる。レジ
スタ209にベクトル命令が存在し、レジスタ207に
命令がなければ1命令を・ レジスタ207に移行させ
る。レジスタ209.207共に命令が存在する時は、
レジスタ200上の命令が起動可能となっても、レジス
タ間の命令移行は行われない。このような制御を採用し
ても、ベクトル命令は必ず正常に完了するか、例外検出
で終了するので、ベクトルプロセッサカテッド’Oyり
となることはない。レジスタ200上の □ベク
トル命令が起動不可と判定された場合、Ty′のタイミ
ングでパス2−05を介して起動不可報告 □キ
ュー管理回路206へ報告される。キュー管理
゛回路206はこの報告が成された後、パス25を経
j由してベクトル・命令リクエスタの動作を中断
′させる。同時にパス26を介して、ベクトル
チェックカウンター5(第3図)を起動する。
以上で、ベクトル命令のオペランドに記述さ ′
れているSLC情報に関Tる条件を調べること
1が出来る。以下、8LC情報から起動可となり
゛たベクトル命令について、ベクトルプロセッサ
′内のリソース、ベクトルレジスタ等の情報を調
二べる論理を概説する。
れているSLC情報に関Tる条件を調べること
1が出来る。以下、8LC情報から起動可となり
゛たベクトル命令について、ベクトルプロセッサ
′内のリソース、ベクトルレジスタ等の情報を調
二べる論理を概説する。
リソース管理回路210はベクトル命令の実行
゛に必要なリソース番号を、命令の種別対応に記
。
゛に必要なリソース番号を、命令の種別対応に記
。
憶している回路211を参照して決定する。リゾ
)−スの使用状況はリソース対応に状態ラッチ212
′が保持している。
)−スの使用状況はリソース対応に状態ラッチ212
′が保持している。
第5図では図面の簡約化のため、3個のラッチ、
′即ち6リソースとした。この3という数は特に意味
があるわけではなく)ベクトルプロセッサの要求されて
いる性能ご実現するために、より多くの又は少数の「数
」を設定してもよい。また第5図ではベクトルレジスタ
等の状態を調へる論理が省略されている。これはルジス
タの状態を調べる論理は、リソースの状態を調べる論理
と同じ構成で実現できるためである。即ち、レジスタ対
応に212の如き状態ラッチご持ち、。
′即ち6リソースとした。この3という数は特に意味
があるわけではなく)ベクトルプロセッサの要求されて
いる性能ご実現するために、より多くの又は少数の「数
」を設定してもよい。また第5図ではベクトルレジスタ
等の状態を調へる論理が省略されている。これはルジス
タの状態を調べる論理は、リソースの状態を調べる論理
と同じ構成で実現できるためである。即ち、レジスタ対
応に212の如き状態ラッチご持ち、。
このラッチをレジスタの受用によって1′にセットし、
レジスタを使用している命令の完了によって 0 にリ
セットすれば良い。
レジスタを使用している命令の完了によって 0 にリ
セットすれば良い。
リソース状態管理回路210がベクトル命令で使用する
リソースを決定すると、リソース対応にパス213を介
してAND回路214に信号が送1られる。ここでパス
213は東線とする。AND回路214では、状態ラッ
チ212の出力と論理積がとられ、リソースが使用可能
か否かの判断が行われる。その結果はリソース対応にパ
ス215に送出され、OR回路216で論理和がとられ
、パス217を経由して命令が実行可能であることがキ
ュー管理回路20.5に報告される。キュー管理回路は
パス218を介して、レジスタ209上のベクトル命令
をデコーダ220へ移丁。同時にリソース管理回路21
0内のレジスタ209に対応するベクトル命令は消去さ
れる。AND回路214で命令実行不可となった場合、
当該情報はパス215.217を経てキュー管理回路に
入力される。
リソースを決定すると、リソース対応にパス213を介
してAND回路214に信号が送1られる。ここでパス
213は東線とする。AND回路214では、状態ラッ
チ212の出力と論理積がとられ、リソースが使用可能
か否かの判断が行われる。その結果はリソース対応にパ
ス215に送出され、OR回路216で論理和がとられ
、パス217を経由して命令が実行可能であることがキ
ュー管理回路20.5に報告される。キュー管理回路は
パス218を介して、レジスタ209上のベクトル命令
をデコーダ220へ移丁。同時にリソース管理回路21
0内のレジスタ209に対応するベクトル命令は消去さ
れる。AND回路214で命令実行不可となった場合、
当該情報はパス215.217を経てキュー管理回路に
入力される。
キュー管理回路はパス218を経由してデコーダ220
、IJソース管理回FM:I210に現在の状態を保つ
ように指示する。この時ベクトル命令はレジスタ209
内に留まる。この命令のレジスタ内滞留により、レジス
4!207又は20Q内のベクトル命令がSLC情報読
出、演算によって起動可能トナっても、ベクトル命令は
レジスタ209ニ移行できなくなる。この時はキュー管
理回路206がベクトル命令続出をパス25を介して中
断させる。この中断は、リソース空き報告が、ベクトル
プロセッサ内のリソースからパス221を経由してなさ
れ、状態ラッチ212がリセットされ、AND回路でレ
ジスタ209上の命令が実行可となるまで続行される。
、IJソース管理回FM:I210に現在の状態を保つ
ように指示する。この時ベクトル命令はレジスタ209
内に留まる。この命令のレジスタ内滞留により、レジス
4!207又は20Q内のベクトル命令がSLC情報読
出、演算によって起動可能トナっても、ベクトル命令は
レジスタ209ニ移行できなくなる。この時はキュー管
理回路206がベクトル命令続出をパス25を介して中
断させる。この中断は、リソース空き報告が、ベクトル
プロセッサ内のリソースからパス221を経由してなさ
れ、状態ラッチ212がリセットされ、AND回路でレ
ジスタ209上の命令が実行可となるまで続行される。
AND回路214で、命令実行可能となった場合、該情
報はパス222を介して、リソース起動に必要なオーダ
を生成するオーダジェネレータ223に入力される。該
ジェネレータは、リソース起動に必要なオーダ類を生成
した後パス224経由でリソースに送信する。同時にパ
ス225を通して状態ラッチ212をセットする。
報はパス222を介して、リソース起動に必要なオーダ
を生成するオーダジェネレータ223に入力される。該
ジェネレータは、リソース起動に必要なオーダ類を生成
した後パス224経由でリソースに送信する。同時にパ
ス225を通して状態ラッチ212をセットする。
一方レジスタ209上のベクトル命令が起動可1となっ
た時、該情報をパス218を介してデコーダ220が知
り、命令の完了時にセットすべきSLC番号又はセット
を抑止する情報をパス226を介してそれぞれレジスタ
227.ラッチ228へ送る。当該レジスタ群、ラッチ
群はリソース対応に存在する。ベクトル命令が完了した
場合、パス221を経由して終了報告がSLC書込管理
回路229に行われる。この報告時にラッチ228の内
容ご調べ、SLC書込ならばレジスタ227内の情報を
パス250上に送る。ラッチ228の内容が書込不可な
らば、何んの情報もパス23Gl上に送らない。パス2
21が例外情報が報告された場合、SLC書込管理回路
は例外発生報告を1ラツチ228の内容に関係なく、レ
ジスタ227の指示するSLCへ報告する。この報告は
パス231を経由して行われる。
た時、該情報をパス218を介してデコーダ220が知
り、命令の完了時にセットすべきSLC番号又はセット
を抑止する情報をパス226を介してそれぞれレジスタ
227.ラッチ228へ送る。当該レジスタ群、ラッチ
群はリソース対応に存在する。ベクトル命令が完了した
場合、パス221を経由して終了報告がSLC書込管理
回路229に行われる。この報告時にラッチ228の内
容ご調べ、SLC書込ならばレジスタ227内の情報を
パス250上に送る。ラッチ228の内容が書込不可な
らば、何んの情報もパス23Gl上に送らない。パス2
21が例外情報が報告された場合、SLC書込管理回路
は例外発生報告を1ラツチ228の内容に関係なく、レ
ジスタ227の指示するSLCへ報告する。この報告は
パス231を経由して行われる。
次に第3図を用いて、本発明のベクトル処理装置の例外
処理の概略を説明する。
処理の概略を説明する。
命令完了に伴うSLC書込処理がパス230を介して報
告され、例外処理がパス231を介して1タイミング間
行われたとする。タイミングジェネレータ5はこの1タ
イミングをさらに細分して、TI、T3タイミングでそ
れぞれ完了時のSLC書込、例外時の書込を行う。即ち
1セレクタ30はT1タイミング時にはパス230を選
択シ、T33タイミングパス231を選択する0選択さ
れた情報はSLC書込回路乙に送られ、書込対象のSL
Cに完了又は例外情報をセットする。
告され、例外処理がパス231を介して1タイミング間
行われたとする。タイミングジェネレータ5はこの1タ
イミングをさらに細分して、TI、T3タイミングでそ
れぞれ完了時のSLC書込、例外時の書込を行う。即ち
1セレクタ30はT1タイミング時にはパス230を選
択シ、T33タイミングパス231を選択する0選択さ
れた情報はSLC書込回路乙に送られ、書込対象のSL
Cに完了又は例外情報をセットする。
SLC続出回路7はTo、 T2タイミング時に作動し
、TOタイミングで続出を、T2タイミングで例外処理
を行うために必要なパスの結合を行う。
、TOタイミングで続出を、T2タイミングで例外処理
を行うために必要なパスの結合を行う。
SLC続出時の処理はすでに説明したので、ここでは例
外処理を説明する。
外処理を説明する。
T2タイミングで、SLC続出回路は、SLCとパス3
1を結合する。OR回路9は全SLCを調べ、1つでも
SLCに例外報告が存在すれば、処理装置で例外が検出
されたとみなし信号をパス32上に送る。
1を結合する。OR回路9は全SLCを調べ、1つでも
SLCに例外報告が存在すれば、処理装置で例外が検出
されたとみなし信号をパス32上に送る。
処理装置内のスカシ・ベクトル両プロセッサで待ち状態
が発生した時1それぞれパス25.26を介してチェッ
クカウンタ4,13が起動される。
が発生した時1それぞれパス25.26を介してチェッ
クカウンタ4,13が起動される。
カウンタ起動によって、カウンタ内の値は°0′クリア
された後、毎マシンサイクルカウントアツプが行われる
。スカシ又はベクトル命令が起動され、プロセッサの待
ち状態がパス23又は26を介して解除されると、カウ
ンタのカウントアツプは停止する。
された後、毎マシンサイクルカウントアツプが行われる
。スカシ又はベクトル命令が起動され、プロセッサの待
ち状態がパス23又は26を介して解除されると、カウ
ンタのカウントアツプは停止する。
プロセッサの待ち状態が十分長く、カウンタのデータ巾
を越えるようになると、該カウンタはキャリーを発生す
る。このキャリーは、パス33又は34を経由して論理
回路14に送られる。当該論理回路14は、パス32上
のSLC上の例外情報又はパス55.34上のプロセッ
サ待ち異常状態に対応する決められたオーダ情報を生成
して、パス35に送る。以後、該情報を使用してプログ
ラム状態語を変更する。これらの論理は本発明のプロセ
ッサ間の同期化処理について直接関連しないので省略す
る。
を越えるようになると、該カウンタはキャリーを発生す
る。このキャリーは、パス33又は34を経由して論理
回路14に送られる。当該論理回路14は、パス32上
のSLC上の例外情報又はパス55.34上のプロセッ
サ待ち異常状態に対応する決められたオーダ情報を生成
して、パス35に送る。以後、該情報を使用してプログ
ラム状態語を変更する。これらの論理は本発明のプロセ
ッサ間の同期化処理について直接関連しないので省略す
る。
次にスカラ、ベクトル両プロセッサ間のデータの受は渡
しを行うS R17について概説スる。
しを行うS R17について概説スる。
SRもSLCと同様に’ro NT5のタイミングで続
出、書込が制御される。ただし、SRには例外、SR間
演算のタイミングは必要ないので、このタイミングを無
処理タイミングとする。
出、書込が制御される。ただし、SRには例外、SR間
演算のタイミングは必要ないので、このタイミングを無
処理タイミングとする。
SR,SLCとも同一番号のレジスタ又はラッチに書込
が同時に起こった場合の動作は保障されない。しかし、
同時に書込アクセスが起こらないように、プログラムの
実行制御を行うことは容鳥である。
が同時に起こった場合の動作は保障されない。しかし、
同時に書込アクセスが起こらないように、プログラムの
実行制御を行うことは容鳥である。
本発明によれば\場(fL414 ”)の中のエネルギ
ー勾配(4?Lba、g pymLanl )計算等で
数多く現われる短ベク)A/長(3次元ならば3.4次
元ならば4)の内積計算において、スカラ、ベクトル両
プロセッサ間の並列動作が可能となる。即ち、Xl−0
,0 X2■0.0 X 5=0.0 D0100I諺1,3 Xl−X5+DZX(1)*DYZ(1)X2=X2+
DYZ(I)*DZX(I)100 X3−X5+D
ZX(I)*DXY(I)X4−X1*X1+X2*X
2+X5*X3のようなFORTRANコーTR法のよ
うに変換する。
ー勾配(4?Lba、g pymLanl )計算等で
数多く現われる短ベク)A/長(3次元ならば3.4次
元ならば4)の内積計算において、スカラ、ベクトル両
プロセッサ間の並列動作が可能となる。即ち、Xl−0
,0 X2■0.0 X 5=0.0 D0100I諺1,3 Xl−X5+DZX(1)*DYZ(1)X2=X2+
DYZ(I)*DZX(I)100 X3−X5+D
ZX(I)*DXY(I)X4−X1*X1+X2*X
2+X5*X3のようなFORTRANコーTR法のよ
うに変換する。
スカシコード:
■ tnjtP4− SRO←D ’ 0.0’■
peal (0、N、 N )■ 諧?4
SR1←D0.0 ■ だd [1、H,N] ■ Wupv43 R24−D ” 0 、0 ’■
Pμ (2,N、N) の 5tpthL1 (Np
3 v N )■ 却?4 FPRO←SR
。
peal (0、N、 N )■ 諧?4
SR1←D0.0 ■ だd [1、H,N] ■ Wupv43 R24−D ” 0 、0 ’■
Pμ (2,N、N) の 5tpthL1 (Np
3 v N )■ 却?4 FPRO←SR
。
■ =tbpty FPRO4−FPRO*FPRO
Φ 詭Lχ (Nl a、N) (3) w?4F P R2’−S RIG mt
ti=pty FPR2←FPR2*FPR2θ a
ttd FPRO←FPRO+FPR20廓”
(Nl 5 I N 〕 C) mt?4 FPR2←5R20、、=涛p
HFPR2←FPR2*FPR20藏 FPRO←
FPRO+FPR20μθ44 FPRO←”X41
゜ またベクトルコードを。
Φ 詭Lχ (Nl a、N) (3) w?4F P R2’−S RIG mt
ti=pty FPR2←FPR2*FPR2θ a
ttd FPRO←FPRO+FPR20廓”
(Nl 5 I N 〕 C) mt?4 FPR2←5R20、、=涛p
HFPR2←FPR2*FPR20藏 FPRO←
FPRO+FPR20μθ44 FPRO←”X41
゜ またベクトルコードを。
■m+、t+rhltatt VRo←’DXY’ 、
(N、 N、 N)■ ?461m t−ad vR
1←’ D YZ ’ + (Nt Nl N ]■=
wL44pytdwGi S RO←S RO+ V
RO* V R1、(3,O,N ) ’■
?番c、tea、byntt VR2←’ DY
Z ’ 、 (N、 N、 N )■ tp
4c、、tt+DtLet VR5+−’ DZX’
、 [N、 N、N:](f) i、71
j′L<4pmdxc−I SR1←SR1+VR
2*VR5,I:4 、 1 、 N〕(7) v
zcfea、had VR4←’ DZX’ 、
CN+ N、N:]■ L電va、p材dwcl
S R2←S R2+ VR4* V RO、[5、2
、N )のように生成する。ここでは少なくともメモリ
リクエスタ3個存在するとし、命令■と■が同時実行で
きるものとしている。以上の場合のベクトル処理装置の
、スカシ命令デコード、ベクトル命令デコード、メモリ
リクエスタ、演算器のタイムチャートを第6図に示す。
(N、 N、 N)■ ?461m t−ad vR
1←’ D YZ ’ + (Nt Nl N ]■=
wL44pytdwGi S RO←S RO+ V
RO* V R1、(3,O,N ) ’■
?番c、tea、byntt VR2←’ DY
Z ’ 、 (N、 N、 N )■ tp
4c、、tt+DtLet VR5+−’ DZX’
、 [N、 N、N:](f) i、71
j′L<4pmdxc−I SR1←SR1+VR
2*VR5,I:4 、 1 、 N〕(7) v
zcfea、had VR4←’ DZX’ 、
CN+ N、N:]■ L電va、p材dwcl
S R2←S R2+ VR4* V RO、[5、2
、N )のように生成する。ここでは少なくともメモリ
リクエスタ3個存在するとし、命令■と■が同時実行で
きるものとしている。以上の場合のベクトル処理装置の
、スカシ命令デコード、ベクトル命令デコード、メモリ
リクエスタ、演算器のタイムチャートを第6図に示す。
ベクトル長は3と仮定している第6図において、スカシ
。
。
ベクトルデコードのカラムはマシンサイクルピッチに分
割されている。各分割内の数字は上記命令列の左側のシ
ーフェンス番号に対応している。スカラデコード力ラム
からベクトルデコードカラムへの矢印は、paij−命
令の作用を示す。
割されている。各分割内の数字は上記命令列の左側のシ
ーフェンス番号に対応している。スカラデコード力ラム
からベクトルデコードカラムへの矢印は、paij−命
令の作用を示す。
ベクトルデコードカラムからベクトルプロセッサ内のリ
ソースへの矢印は、各々のリソースへの起動指示な示す
。リソースの欄で実線で囲まれた部分はリソースが処理
ご行っている部分である。演算器からスカラデコード力
ラムへの矢印ハ、ベクトルプロセッサからの−bχ解除
指ygを示す。第6図に本発明のスカラ、ベクトルプ。
ソースへの矢印は、各々のリソースへの起動指示な示す
。リソースの欄で実線で囲まれた部分はリソースが処理
ご行っている部分である。演算器からスカラデコード力
ラムへの矢印ハ、ベクトルプロセッサからの−bχ解除
指ygを示す。第6図に本発明のスカラ、ベクトルプ。
ロセッサ同期制御によって可能となった並列動作部分を
(S P V P ) ty4h)z、として示した
0(SP−VP)を−辺一部分はベクトル長が長くなる
程大きくなる可能性がある(たとえばスカラデコード力
ラムの15〜18の部分)。従ッてベクトル処理装置の
性能向上が可能になる。
(S P V P ) ty4h)z、として示した
0(SP−VP)を−辺一部分はベクトル長が長くなる
程大きくなる可能性がある(たとえばスカラデコード力
ラムの15〜18の部分)。従ッてベクトル処理装置の
性能向上が可能になる。
第1図はスカシベクトル混在系の命令デコードタイムチ
ャート偲1第2図はベクトル命令の形式を示す園、第3
文はスカシ。ベクトルの同期制御概略ブロック図、第4
閣はスカシ命令の実行制御論理ブロック図、第5図はベ
クトル命令の実行制御論理ブロック図、第6図は連続白
檀計算処理のタイムチャー)11である。 1・・、スカラ。命令リクエスタ 2・・、スカラ命令デコーダ 3・・・スカラウェイト管理回路 4.13・・・カウンタ 5・・・タイミングジェネレータ 8・・・ステータス、ラッチ回路(SLC)6.7・・
・スイッチング回路 10・・・ベクトル、命令リクエスタ 11・・・ベクトル命令デコーダ 12・・・ベクトルウェイト管理回路 17・・、スカラレジスタ(5R) 110・・・論理演算器 106・・・スイッチング回路 206・・・キエー管理回路 210・・・リソース起動回路 214・・・AND回路 223・・・オーダジェネレータ 220・・・デコーダ ゝ・、゛。
ャート偲1第2図はベクトル命令の形式を示す園、第3
文はスカシ。ベクトルの同期制御概略ブロック図、第4
閣はスカシ命令の実行制御論理ブロック図、第5図はベ
クトル命令の実行制御論理ブロック図、第6図は連続白
檀計算処理のタイムチャー)11である。 1・・、スカラ。命令リクエスタ 2・・、スカラ命令デコーダ 3・・・スカラウェイト管理回路 4.13・・・カウンタ 5・・・タイミングジェネレータ 8・・・ステータス、ラッチ回路(SLC)6.7・・
・スイッチング回路 10・・・ベクトル、命令リクエスタ 11・・・ベクトル命令デコーダ 12・・・ベクトルウェイト管理回路 17・・、スカラレジスタ(5R) 110・・・論理演算器 106・・・スイッチング回路 206・・・キエー管理回路 210・・・リソース起動回路 214・・・AND回路 223・・・オーダジェネレータ 220・・・デコーダ ゝ・、゛。
Claims (1)
- スカラ、ベクトルの2つのプロセッサから構成されるベ
クトル処理装置において、命令をスカラプロセッサを制
御するブロックと、ベクトルプロセッサを制御するブロ
ックとに分離し、各々のブロック内に命令の実行順序を
保障するために、スカラ命令系に順序性を保障する命令
を存在させ、ベクトル命令に順序性を保障するために命
令デコード時に命令の起動を判定するフィールドと命令
終了時に完了報告を行う方法を示すフィールドとを設定
し、これらの命令実行順序性保障アーキテクチャの下で
スカラ、ベクトル命令のデコード時に参照可能な記憶手
段に、ベクトル処理装置内で発生した例外情報を保持す
るように構成したことを特徴とするベクトル処理装置。
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP60144798A JPS6224366A (ja) | 1985-07-03 | 1985-07-03 | ベクトル処理装置 |
| DE8686108990T DE3686789T2 (de) | 1985-07-03 | 1986-07-02 | Vektorverarbeitungsgeraet. |
| US06/881,403 US4780811A (en) | 1985-07-03 | 1986-07-02 | Vector processing apparatus providing vector and scalar processor synchronization |
| EP86108990A EP0207506B1 (en) | 1985-07-03 | 1986-07-02 | Vector processing apparatus |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP60144798A JPS6224366A (ja) | 1985-07-03 | 1985-07-03 | ベクトル処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPS6224366A true JPS6224366A (ja) | 1987-02-02 |
Family
ID=15370704
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP60144798A Pending JPS6224366A (ja) | 1985-07-03 | 1985-07-03 | ベクトル処理装置 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US4780811A (ja) |
| EP (1) | EP0207506B1 (ja) |
| JP (1) | JPS6224366A (ja) |
| DE (1) | DE3686789T2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2013175218A (ja) * | 2006-08-18 | 2013-09-05 | Qualcomm Inc | スカラー/ベクトル命令を使用したデータ処理システムおよび方法 |
Families Citing this family (34)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63253468A (ja) * | 1987-04-10 | 1988-10-20 | Hitachi Ltd | ベクトル処理装置 |
| JPS6432379A (en) * | 1987-07-29 | 1989-02-02 | Hitachi Ltd | Computer |
| JP2602240B2 (ja) * | 1987-08-28 | 1997-04-23 | 株式会社日立製作所 | マルチプロセツサシステム |
| US5261113A (en) * | 1988-01-25 | 1993-11-09 | Digital Equipment Corporation | Apparatus and method for single operand register array for vector and scalar data processing operations |
| US5019968A (en) * | 1988-03-29 | 1991-05-28 | Yulan Wang | Three-dimensional vector processor |
| US5040109A (en) * | 1988-07-20 | 1991-08-13 | Digital Equipment Corporation | Efficient protocol for communicating between asychronous devices |
| US4897779A (en) * | 1988-07-20 | 1990-01-30 | Digital Equipment Corporation | Method and apparatus for optimizing inter-processor instruction transfers |
| DE68927946T2 (de) * | 1988-08-02 | 1997-10-16 | Philips Electronics Nv | Verfahren und Vorrichtung für die Synchronisierung von parallelen Prozessoren unter Verwendung einer unscharf definierten Sperre |
| US5123095A (en) * | 1989-01-17 | 1992-06-16 | Ergo Computing, Inc. | Integrated scalar and vector processors with vector addressing by the scalar processor |
| JP2677414B2 (ja) * | 1989-05-15 | 1997-11-17 | 富士通株式会社 | 命令実行のシリアライズ制御方式 |
| US5197138A (en) * | 1989-12-26 | 1993-03-23 | Digital Equipment Corporation | Reporting delayed coprocessor exceptions to code threads having caused the exceptions by saving and restoring exception state during code thread switching |
| US5202998A (en) * | 1990-08-31 | 1993-04-13 | International Business Machines Corporation | Fast, simultaneous multi-processor system status communication interface |
| US5530881A (en) * | 1991-06-06 | 1996-06-25 | Hitachi, Ltd. | Vector processing apparatus for processing different instruction set architectures corresponding to mingled-type programs and separate-type programs |
| FR2678400B1 (fr) * | 1991-06-27 | 1995-08-04 | Texas Instruments France | Processeur de protocole destine a l'execution d'un ensemble d'instructions en un nombre reduit d'operation. |
| US5423051A (en) * | 1992-09-24 | 1995-06-06 | International Business Machines Corporation | Execution unit with an integrated vector operation capability |
| US5410657A (en) * | 1992-10-09 | 1995-04-25 | International Business Machines Corporation | Method and system for high speed floating point exception enabled operation in a multiscalar processor system |
| JPH06168263A (ja) * | 1992-11-30 | 1994-06-14 | Fujitsu Ltd | ベクトル処理装置 |
| JP2765411B2 (ja) * | 1992-11-30 | 1998-06-18 | 株式会社日立製作所 | 仮想計算機方式 |
| US5824781A (en) * | 1993-08-16 | 1998-10-20 | Hsia; Jen-Chang | Compositions and methods utilizing nitroxides in combination with biocompatible macromolecules |
| US7383421B2 (en) * | 2002-12-05 | 2008-06-03 | Brightscale, Inc. | Cellular engine for a data processing system |
| US7107478B2 (en) * | 2002-12-05 | 2006-09-12 | Connex Technology, Inc. | Data processing system having a Cartesian Controller |
| US20030237080A1 (en) * | 2002-06-19 | 2003-12-25 | Carol Thompson | System and method for improved register allocation in an optimizing compiler |
| GB2409068A (en) * | 2003-12-09 | 2005-06-15 | Advanced Risc Mach Ltd | Data element size control within parallel lanes of processing |
| GB2409060B (en) * | 2003-12-09 | 2006-08-09 | Advanced Risc Mach Ltd | Moving data between registers of different register data stores |
| US7451293B2 (en) * | 2005-10-21 | 2008-11-11 | Brightscale Inc. | Array of Boolean logic controlled processing elements with concurrent I/O processing and instruction sequencing |
| WO2007082044A2 (en) * | 2006-01-10 | 2007-07-19 | Brightscale, Inc. | Method and apparatus for processing algorithm steps of multimedia data in parallel processing systems |
| US7917731B2 (en) * | 2006-08-02 | 2011-03-29 | Qualcomm Incorporated | Method and apparatus for prefetching non-sequential instruction addresses |
| US9563433B1 (en) | 2006-09-01 | 2017-02-07 | Allsearch Semi Llc | System and method for class-based execution of an instruction broadcasted to an array of processing elements |
| US20080059762A1 (en) * | 2006-09-01 | 2008-03-06 | Bogdan Mitu | Multi-sequence control for a data parallel system |
| WO2008027567A2 (en) * | 2006-09-01 | 2008-03-06 | Brightscale, Inc. | Integral parallel machine |
| US20080059763A1 (en) * | 2006-09-01 | 2008-03-06 | Lazar Bivolarski | System and method for fine-grain instruction parallelism for increased efficiency of processing compressed multimedia data |
| US20080055307A1 (en) * | 2006-09-01 | 2008-03-06 | Lazar Bivolarski | Graphics rendering pipeline |
| US20080059467A1 (en) * | 2006-09-05 | 2008-03-06 | Lazar Bivolarski | Near full motion search algorithm |
| CN120540705B (zh) * | 2025-04-30 | 2026-02-06 | 上海思朗科技股份有限公司 | 标量处理器、高性能处理器和电子设备 |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2253418A5 (ja) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
| US4149243A (en) * | 1977-10-20 | 1979-04-10 | International Business Machines Corporation | Distributed control architecture with post and wait logic |
| JPS6043535B2 (ja) * | 1979-12-29 | 1985-09-28 | 富士通株式会社 | 情報処理装置 |
| US4541046A (en) * | 1981-03-25 | 1985-09-10 | Hitachi, Ltd. | Data processing system including scalar data processor and vector data processor |
| JPS58114274A (ja) * | 1981-12-28 | 1983-07-07 | Hitachi Ltd | デ−タ処理装置 |
| JPS58134357A (ja) * | 1982-02-03 | 1983-08-10 | Hitachi Ltd | ベクトルプロセッサ |
| DE3233360A1 (de) * | 1982-09-08 | 1984-03-08 | Siemens AG, 1000 Berlin und 8000 München | Prozessoreinheit eines rechners |
| US4661900A (en) * | 1983-04-25 | 1987-04-28 | Cray Research, Inc. | Flexible chaining in vector processor with selective use of vector registers as operand and result registers |
-
1985
- 1985-07-03 JP JP60144798A patent/JPS6224366A/ja active Pending
-
1986
- 1986-07-02 US US06/881,403 patent/US4780811A/en not_active Expired - Lifetime
- 1986-07-02 DE DE8686108990T patent/DE3686789T2/de not_active Expired - Fee Related
- 1986-07-02 EP EP86108990A patent/EP0207506B1/en not_active Expired - Lifetime
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2013175218A (ja) * | 2006-08-18 | 2013-09-05 | Qualcomm Inc | スカラー/ベクトル命令を使用したデータ処理システムおよび方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0207506A3 (en) | 1989-01-18 |
| DE3686789T2 (de) | 1993-03-18 |
| DE3686789D1 (de) | 1992-10-29 |
| EP0207506A2 (en) | 1987-01-07 |
| US4780811A (en) | 1988-10-25 |
| EP0207506B1 (en) | 1992-09-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS6224366A (ja) | ベクトル処理装置 | |
| US6219775B1 (en) | Massively parallel computer including auxiliary vector processor | |
| JP3098071B2 (ja) | 条件付き分岐を有するプログラムの効率的実行をするためのコンピュータシステム | |
| Thistle et al. | A processor architecture for Horizon | |
| EP0243892B1 (en) | System for guaranteeing the logical integrity of data | |
| JP3547482B2 (ja) | 情報処理装置 | |
| JP6660991B2 (ja) | マルチスレッドプロセッサでのタスクのスケジューリング | |
| JP5425074B2 (ja) | マルチスレッドプロセッサにおける複合命令 | |
| US4740893A (en) | Method for reducing the time for switching between programs | |
| US4079451A (en) | Word, byte and bit indexed addressing in a data processing system | |
| JPH0766329B2 (ja) | 情報処理装置 | |
| US5073970A (en) | Vector processing apparatus allowing succeeding vector instruction chain processing upon completion of decoding of a preceding vector instruction chain | |
| WO2001004765A1 (en) | Methods and apparatus for instruction addressing in indirect vliw processors | |
| US4683547A (en) | Special accumulate instruction for multiple floating point arithmetic units which use a putaway bus to enhance performance | |
| JPS5911943B2 (ja) | デ−タ処理装置の為のトラツプ機構 | |
| JPS62159268A (ja) | マルチプロセツサシステム | |
| US4047247A (en) | Address formation in a microprogrammed data processing system | |
| US5625834A (en) | Information processing section and system for operating a plurality of vector pipeline sets in two different modes | |
| CN103649932A (zh) | 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构 | |
| US11416261B2 (en) | Group load register of a graph streaming processor | |
| JP6882320B2 (ja) | ベクトル命令の処理 | |
| CN103649931A (zh) | 用于支持由多个引擎执行指令序列的互连结构 | |
| JPS6161416B2 (ja) | ||
| JP2920968B2 (ja) | 命令処理順序制御方式 | |
| EP3953815B1 (en) | Computing device and computing system based on said device |