JPH0827719B2 - デ−タ処理装置 - Google Patents

デ−タ処理装置

Info

Publication number
JPH0827719B2
JPH0827719B2 JP15448987A JP15448987A JPH0827719B2 JP H0827719 B2 JPH0827719 B2 JP H0827719B2 JP 15448987 A JP15448987 A JP 15448987A JP 15448987 A JP15448987 A JP 15448987A JP H0827719 B2 JPH0827719 B2 JP H0827719B2
Authority
JP
Japan
Prior art keywords
instruction
processor
execution
processor element
data processing
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 - Fee Related
Application number
JP15448987A
Other languages
English (en)
Other versions
JPS63318635A (ja
Inventor
秀和 松本
哲明 中三川
秀夫 稲吉
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP15448987A priority Critical patent/JPH0827719B2/ja
Publication of JPS63318635A publication Critical patent/JPS63318635A/ja
Publication of JPH0827719B2 publication Critical patent/JPH0827719B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は並列形のデータ処理装置に係り、特に複数の
パイプラインプロセサから成るデータ処理装置に関す
る。
〔従来の技術〕
計算機高速化の手段として、パイプライン処理は有効
な手段であり、特に、単一のプロセスの高速化を図るた
めの重要な技術となつている。しかし、単一のパイプラ
イン処理では、その性能向上に寄与するには限界があ
る。このため、マイクロプログラムレベルでの並列処理
を狙つた低レベル並列計算機が研究されている。これ
は、例えば、第13回コンピユータアーキテクチヤ学会
(1986)第280頁から第289頁(3th Symposium on Compu
ter Architecture,pp280−289,1986)に論じられてい
る。
〔発明が解決しようとする問題点〕
上記従来技術は、マイクロプログラムのレベルで並列
処理を行わしめるものであるため、マイクロプログラム
の作成が複雑であること、マイクロプログラムレベルで
の並列処理であるため、並列化率があまり高くならない
こと、ハードウエアが複雑になること、細かな制御を行
うためにはマクロ命令の数が膨大になること、したがつ
て、効率的なコンパイラを開発することが困難であるこ
と、などの点で問題があつた。
本発明の目的は、単一のプロセスの高速化に対して、
マルチプロセサの考え方を導入して、繰返しを主体とし
てシンプルなハードウエアで高速のデータ処理装置を提
供することにある。
〔問題点を解決するための手段〕
上記目的は、単一命令ストリームを実行する複数のパ
イプラインプロセサによりデータ処理装置を構成し、各
パイプラインプロセサにプロセサ間の待合せ制御機構を
設けることにより、達成される。
〔作用〕
個別のパイプラインプロセサエレメントは、単一の命
令ストリームから命令を取出して、実行する。データ処
理装置には複数のパイプラインプロセサエレメントが含
まれ、これらは並列に動作するので、単一の命令ストリ
ームに対して、並列処理が行われる。プロセサエレメン
ト間で待合せ制御が必要な場合には、待合せを行う命令
を用意し、この命令を実行したときには、他プロセサの
状態を監視してそれらの動作終了を待つて自プロセサで
の命令実行を始めることにより、待ち制御を簡単に行
え、簡単な機構で処理を高速化できる。
〔実施例〕
以下、図面を参照して本発明の一実施例を説明する。
第2図は、本発明を実施するデータ処理装置の全体の構
成を示している。処理装置は、プロセサユニツト(PU)
10,メモリコントロールユニツト(MCU)20,メインメモ
リ(MM)30,I/Oプロセサ(IOP)40と、これを接続する
信号線群15,25,35から構成される。もちろん、上記以外
の構成要素も存在するが、本発明の理解には必要ないの
で省略している。プロセサユニツト10はメインメモリ30
に格納されている命令及びオペランドデータをメモリコ
ントロールユニツト20を介して取り込み、命令を実行す
る。I/Oプロセサ40は入出力制御用のプロセサである。
本発明は、この中で、プロセサユニツト10に関するもの
であるため、以下ではこれを主として説明する。もちろ
んI/Oプロセサ40もプロセサであるため、本発明が適用
できる。
第3図は、プロセサユニツト10の内部構成を示すブロ
ツク図である。プロセサユニツト10は複数のパイプライ
ンプロセサエレメント(PP#2,PP#3,PP#4)101,102,
103,104(以下単にプロセサエレメントという)と共通
リソース管理部(CRM)105から成る。本実施例では、4
組のプロセサエレメントを待つが、この数は4組に制限
されず、任意の数に対して本発明は適用可能である。
各プロセサエレメント101〜104は、信号線群111,112,
113,114によつて共通リソース管理部105と結合されてお
り、単体としてマイクロ命令を処理できる。そしてリソ
ースの競合が起こらない限り、他のプロセサエレメント
と独立に動作できるものである。
第4図はプロセサエレメント101の構成を示すブロツ
ク図で、他も同じ構成であつて命令フエツチユニツト
(IU)121,命令デコードユニツト(DU)122,実行ユニツ
ト(EU)123,ストアユニツト(SU)124から成る。上記
の各ユニツトは各々独立に動作し、4段のパイプライン
処理を実現する。
命令フエツチユニツト121は命令のアドレスを信号線1
34を介して送出し、フエツチした命令を信号線135を介
して受取る。デコードユニツト122は、命令フエツチユ
ニツト121でフエツチした命令を信号線131を介して受取
り、デコードした結果を信号線132を介して実行ユニツ
ト123に送る。実行ユニツト123はデコード結果を受けて
命令を実行し、実行結果をストアユニツト124に信号線1
33を介して送る。ストアユニツト124は受取つた実行結
果を信号線140を介して、共通リソース管理部105へ送
る。バス130は各ユニツト間のデータ転送を行うための
パスである。信号線136はオペランドのアドレス及びレ
ジスタのアドレスを共通リソース管理部105に送る信号
線、信号線138,139はレジスタのリードデータを受け取
るためのもの、信号線137はメモリリードオペランドを
受け取るためのものである。
第5図は共通リソース管理部105の内部構成を示すブ
ロツク図である。命令フエツチセレクタ(IFS)151は、
各プロセサエレメントのフエツチ要求と命令フエツチア
ドレスを信号線134を介して受取り、共通メモリブロツ
ク内へのアクセスである場合には1つのメモリアクセス
にまとめて、異なるメモリブロツクの場合には到着順
に、アクセス要求とメモリアドレスをメモリアクセスコ
ントローラ153に信号線161を介して送る。オペランドア
クセスセレクタ(OAS)152は、各プロセサエレメントの
フエツチ要求とそのアドレスを信号線136を介して受取
り、共通メモリブロツク内へのアクセスである場合には
1つのメモリアクセスにまとめて、異なるメモリブロツ
クの場合には到着順に、アクセス要求とメモリアドレス
をメモリアクセスコントローラ153へ信号線162を介して
送る。メモリアクセスコントローラ(AM)153は、命令
フエツチセレクタ151又はオペランドアクセスセレクタ1
52から受取つたアドレスを物理アドレスに変換し、信号
線165を介してメインメモリ30をアクセスする。リード
バツフア(RB)157はメインメモリ30から信号線166を介
して受取つたリードデータをバツフアリングして、命令
フエツチデータの場合命令デイストリビユータ154に、
オペランドデータの場合オペランドデイストリビユータ
156に送る。命令デイストリビユータ(ID)154は、リー
ドバツフア157から信号線163を介して受取つた命令を、
要求したプロセサエレメントに信号線135を介して送
る。オペランドデイストリビユータ(OD)156は、リー
ドバツフア157から信号線164を介して受取つたオペラン
ドデータを、要求したプロセサエレメントに信号線137
を介して送る。レジスタフアイル(RF)158は、リード
ポートとして8組,ライトポートとして4組、計12ポー
トを持ち、プロセサエレメント毎に、2組のリードデー
タを信号線138,139を介して送り、ライトデータを信号1
40を介して受取る。ストアバツフア(SB)159は、信号
線140を介して受取つたライトデータと、信号線165を介
して受取つたメモリアドレスを受取り、メインメモリ30
への書込みを信号線167を介して行う。
第6図は各プロセサエレメントが実行するマイクロ命
令(機械語)の命令フオーマツトを示している。全ての
命令は32ビツトの固定長とすることにより、命令のデコ
ードを行わなくても、次の命令の位置を検出できるよう
な、いわゆるRISC(Reduced Instruction Set Compute
r)と呼ばれる命令形式を採用する。RISCに関しては、
例えば、アイ・イー・イー・イー、コンピユータ,1982
年9月号第11頁(IEEE,Computer,pull,September,198
2)に参照される。
本命令形式では、ロード,ストア,ブランチ命令以外
の命令は全て、レジスタオペランドまたはイミーデイエ
イトオペランドを取る。
第6図(a)は全てのオペランドがレジスタの場合の
命令形式を示す。オペレーシヨンの種類を示すオペコー
ド(OP)フイールド、待ちのテストを行うことを指示す
る(w)フイールド、レジスタの番号を指示する
(Rs1,Rs2,Rd)フイールドを含む。
第6図(b)は、ロード、ストア、ブランチ命令のよ
うにメモリアドレスの計算が必要となる命令の形式を示
している。Rs,Rdフイールドはレジスタ番号を指定し、
Dispフイールドはオフセツト値を与える。なお第6図で
は、wフイールドをOPフイールドから独立して与えてい
るが、OPフイールド内にwフイールドをコード化して含
めることも、もちろん可能である。
次に、各プロセサエレメントの動作について説明す
る。第7図,第8図はプロセサユニツト10全体のパイプ
ラインステージフローを示している。このうち第7図
は、全プロセサエレメントでパイプラインに空きが全く
生じない場合を示している。各プロセサエレメントはデ
コード、実行、ストアの各ユニツト122,123,124で、1
マシンサイクルピツチで命令を処理している。各プロセ
サエレメントは命令ストリーム中の4つの離れた命令を
順次実行する。例えばプロセサエレメント101では、命
令nの次は命令n+4、次に命令n+8の順に実行す
る。同様にプロセサエレメント102では、命令n+1の
次には命令n+5、次に命令n+9の順に実行する。同
一のパイプラインステージで実行されている命令は、近
隣するプロセエレメント間では、分岐命令が発行されな
い限り、1(又は3)だけ違うだけである。例えばt5サ
イクルの実行ユニツト123で実行中の命令はプロセサエ
レメント101では、命令n+8、プロセサエレメント102
では命令n+9、プロセサエメレメント103では命令n
+10、プロセサエレメント104では命令n+11である。
第8図は、他の命令実行終了を待つて、その命令の実
行を行う場合のパイプラインステージフローを示してい
る。第8図で、命令n,n+1,n+2,n+3,n+4,n+5,n+6,
n+7は前の命令の実行状態に依らず実行される命令で
ある。このように先行する命令の実行状態によらずに実
行できることを表すため、命令語のwフイールドを“0"
(即ち待合せいないことを示す)とする。一方、命令n
+8は、先行する命令の実行が終了するのを待つて実行
される命令である。
これは、例えば、先行する命令の実行結果を使つて演
算を行うような場合、このような待合せが必要となる。
命令n+8を実行するプロセサエレメント101はt4サイ
クルで命令デコード終了後、全てのプロセサエレメンン
トで先行する命令の実行が終了する(即ち、全てのプロ
セサエレメントのストアユニツト24の実行が完了する)
のを待ち、終了後実行ユニツト123での実行を開始す
る。このように先行する命令の実行終了を待つ場合に
は、命令語のwフイールドを“1"とする。他のプロセサ
エレメント102〜104はプロセサエレメント101と同期を
とるため、命令n+8に後続する命令n+9,n+10,n+1
1の3命令についても、命令n+8と同様wフイールド
を“1"とする。これによる待ち状態を第8図では点線で
示しており、t5サイクルでは全プロセサエレメントの実
行ユニツトが待ちとなつている。
上記の命令待ち合わせ機能を実現するための、本発明
の特徴とする回路の実施例を第1図に示す。同図におい
て、4組のプロセサエレメント101〜104(PP#1〜#
4)は同じ構成要素を持つため、これらを区別する目的
で、各ユニツトを示す符号の後に#n(n=1,2,3,4)
を付加している。
命令フエツチユニツト122は、命令をデコードする命
令デコーダ(ID#1)201、該デコード結果をラツチす
るラツチ(DR#1)202を有する。実行ユニツト123は、
待制御を行うためのアンドゲート203,204,207,オアゲー
ト206,インバータ205を有する。ストアユニツト124は、
制御回路(SC#1)208とストアユニツトがアイドル中
又は次のサイクルでアイドルとなることを示すフラグ
(ST#1)209を有する。このフラグ209は制御回路208
からの信号線229によつてセツト/リセツトされる。
このような構成において、wフイールドが“0"の命令
を命令デコーダ201がデコードして、その結果をラツチ2
02にセツトすると、待ち制御を必要としない命令である
ことを実行ユニツト123に指示する信号線211が“0"とな
る。これによつてオアゲート出力は“1"となり、クロツ
ク信号223はアンドゲート207を通つて、実行ユニツト12
3の全ラツチゲートへのクロツク信号224として出力され
る。
一方、命令のwフイールドが“1"で、待ち制御を必要
とするときは信号線211が“1"となり、このときはアン
ドゲート203の出力222が“1"の時だけオアゲート203の
出力は“1"になる。ところが各プロセサエレメント101
〜104のストアユニツト(SU#1〜#4)のいずれかが
動作中であると各フラグ209(SI#1〜#4)の該当す
るものが“0"でアンドゲート203出力も“0"になり、実
行ユニツト123は待ち状態になる。そしてすべてのプロ
セサエレメント101〜104すべての動作が終了してフラグ
がすべて“1"になつたとき、ゲート203の出力222は“1"
となつてフロツク信号224が出力され、実行ユニツト123
が実行処理を行う。
〔発明の効果〕
本発明によれば、単純な論理を繰り返し用いて構成し
た複数のパイプラインプロセサエレメントによりデータ
処理装置を構成でき、複雑なロジツクを有する単一プロ
セサにより構成された従来のデータ処理装置に比べて、
より高速な性能を実現できるという効果がある。
【図面の簡単な説明】
第1図は本発明の装置の待ち制御の一実施例を示すブロ
ツク図、第2図は本発明を適用するデータ処理装置の全
体構成を示すブロツク図、第3図は本発明の適用対象と
なるプロセサ部の構成を示すブロツク図、第4図及び第
5図は第3図の詳細を示すブロツク図、第6図は本発明
の一実施例で採用している命令形式を示す図、第7図及
び第8図は本発明の一実施例の動作シーケンスを説明す
るステージフロー図である。 101,102,103,104…パイプラインプロセサエレメント、1
22…命令デコードユニツト、123…実行ユニツト、124…
ストアユニツト、203,204,205,206,207…ゲート、209…
フラグ。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】単一の命令列を記憶格納手段から読み出し
    該命令列を複数のプロセッサ要素間で並列に実行するデ
    ータ処理装置において、各プロセッサ要素に、実行待合
    わせ制御を行うか否かを検出する命令デコード手段と、
    自プロセッサ要素の命令実行状態を示すフラグと、前記
    命令デコード手段が実行待合わせ制御を行うことを検出
    したときに他のプロセッサの前記フラグの状態に応じて
    自プロセッサ要素の実行を制御する制御手段とを備える
    ことを特徴とするデータ処理装置。
  2. 【請求項2】特許請求の範囲第1項において、前記制御
    手段は、前記命令デコード手段が実行待合わせの制御を
    行うことを検出したときに他のプロセッサ要素の前記フ
    ラグの状態から自プロセッサ要素以外の他のプロセッサ
    要素の全てが命令を実行していない状態であると判断し
    た場合、自プロセッサ要素の実行を抑止するものである
    ことを特徴とするデータ処理装置。
  3. 【請求項3】特許請求の範囲第1項において、前記命令
    デコード手段は、命令中の所定フィールドに特定パター
    ンがあるか否かにより実行待合わせ制御を行うか否かを
    検出することを特徴とするデータ処理装置。
JP15448987A 1987-06-23 1987-06-23 デ−タ処理装置 Expired - Fee Related JPH0827719B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15448987A JPH0827719B2 (ja) 1987-06-23 1987-06-23 デ−タ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP15448987A JPH0827719B2 (ja) 1987-06-23 1987-06-23 デ−タ処理装置

Publications (2)

Publication Number Publication Date
JPS63318635A JPS63318635A (ja) 1988-12-27
JPH0827719B2 true JPH0827719B2 (ja) 1996-03-21

Family

ID=15585361

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15448987A Expired - Fee Related JPH0827719B2 (ja) 1987-06-23 1987-06-23 デ−タ処理装置

Country Status (1)

Country Link
JP (1) JPH0827719B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01310445A (ja) * 1988-06-08 1989-12-14 Nippon Telegr & Teleph Corp <Ntt> 並列演算処理装置

Also Published As

Publication number Publication date
JPS63318635A (ja) 1988-12-27

Similar Documents

Publication Publication Date Title
JP2928695B2 (ja) 静的インタリーブを用いたマルチスレッドマイクロプロセッサおよびそれを備えたシステムでの命令スレッド実行方法
US5341482A (en) Method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions
US7020871B2 (en) Breakpoint method for parallel hardware threads in multithreaded processor
EP0243892B1 (en) System for guaranteeing the logical integrity of data
US4305124A (en) Pipelined computer
US20070180334A1 (en) Multi-frequency debug network for a multiprocessor array
JPH11154144A (ja) プロセッサをコプロセッサにインタフェースするための方法および装置
JPH0766329B2 (ja) 情報処理装置
JP2653037B2 (ja) データ処理システム
EP0482200B1 (en) Interrupt processing system
US6826522B1 (en) Methods and apparatus for improved efficiency in pipeline simulation and emulation
JP2884831B2 (ja) 処理装置
JPH03233630A (ja) 情報処理装置
EP0279953B1 (en) Computer system having mixed macrocode and microcode instruction execution
Kawano et al. Fine-grain multi-thread processor architecture for massively parallel processing
US4803615A (en) Microcode control of a parallel architecture microprocessor
JP2680828B2 (ja) ディジタル装置
JPH0827719B2 (ja) デ−タ処理装置
JPS60178580A (ja) 命令制御方式
JPS6161416B2 (ja)
JPH09138748A (ja) 浮動小数点命令の早期完了方法および装置
EP0015276B1 (en) A digital pipelined computer
JPH07244588A (ja) データ処理装置
JP3493768B2 (ja) データ処理装置
JP2545594B2 (ja) オペランドデータ先取り方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees