JPH03259340A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JPH03259340A
JPH03259340A JP2056464A JP5646490A JPH03259340A JP H03259340 A JPH03259340 A JP H03259340A JP 2056464 A JP2056464 A JP 2056464A JP 5646490 A JP5646490 A JP 5646490A JP H03259340 A JPH03259340 A JP H03259340A
Authority
JP
Japan
Prior art keywords
instruction
instructions
memory
bus
processor
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
JP2056464A
Other languages
English (en)
Inventor
Atsushi Kasuya
粕谷 淳
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co 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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2056464A priority Critical patent/JPH03259340A/ja
Publication of JPH03259340A publication Critical patent/JPH03259340A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 「産業上の利用分野」 本発明は、命令を読み込みこれに基づいてデータの処理
を実行するデータ処理装置に関する。
「従来の技術」 現在存在するコンピュータのほとんどは、主記憶装置内
にプログラムを蓄え、命令を順次取り出して実行すると
いうプログラム記憶型逐次処理方式に基づいている。こ
の種のコンピュータでの命令の実行は、通常、フェッチ
、デコード、エグゼキュート、およびライトという4つ
の基本サイクルから戊り立っている。
(イ)フェッチ・サイクル このサイクルでは、主記憶装置から次に実行すべき命令
の取り出しが行われる。命令のアドレスはプログラムカ
ウンタに保持され、取り出した命令は命令レジスタに格
納される。また、プログラムカウンタは命令の語長に合
わせてその値がインクリメントされる。
(ロ)デコード・サイクル このサイクルでは、取り出した命令の命令コードを解読
し実行すべき処理の決定が行われる。
〈ハ)エグゼキュート・サイクル このサイクルでは、命令の演算対象として主記憶装置や
レジスタから取り出したオペランドに対して、命令コー
ドで指定された演算が施される。
〈二)ライト・サイクル このサイクルでは、演算結果がレジスタや主記憶装置に
格納される。
第6図は、通常の逐次処理方式のコンピュータにおいて
プログラムが実行される様子を表わしたものである。こ
こて、F、D、E、Wは、それぞれフェッチ、デコード
、エグゼキュート、およびライト・サイクルを示してい
る。それぞれの命令は、これら一連の基本サイクル群を
順次実行することによって実行される。この図に示すよ
うに、例えば第2の命令12 (同図b)の実行は、そ
の直前の第1の命令11(同図a〉のライト・サイクル
が終了した後に開始され、また、第3の命令13 (同
図C)は第2の命令12のライト・サイクル終了後に開
始されるようになっている。
この方式では、それぞれのサイクルT、〜T4の処理時
間を短縮することにより命令の実行速度をある程度まで
高速化することができるが、コンピュータを構成する素
子の動作速度には物理的な限界が存在するため、当然コ
ンピュータ全体としての処理速度にも限界が存在するこ
ととなる。この限界を超えてさらに高速なコンピュータ
を実現するためには、複数の基本サイクルを同時に実行
する並列処理が不可欠となる。この並列処理方式として
、時間的並列処理を行うパイプライン制御方式や空間的
並列処理を行うプロセッサアレー制御方式などが提案さ
れ、実用に至っている。このうち、パイプライン制御方
式では、命令の実行をいくつかのステージと呼ばれる細
かい動作に分割し、各ステージを実行するハードウェア
機構を用意する。そして、それぞれのステージ実行部は
、実行後その結果を次のステージ実行部に渡すと共に、
次の命令に対して同一ステージを実行するようになって
いる。これは、丁度ベルトコンベアに部品をのせて複数
の人間が順次組み立てていく流れ作業に類似している。
第7図は、従来のパイプライン制御方式によるデータ処
理装置の動作を表わしたものである。この図で、それぞ
れの命令は1マシンサイクルT。
ごとに開始され、1マシンサイクルごとに結果が得られ
るため、4ステージからなる命令の実行も見かけ上1マ
シンサイクルごとに実行されることとなる。すなわち、
ある時点を見ると見かけ上腹数の命令が並列に処理され
、これによりコンピュータ全体としての処理速度の向上
を図ることができる。
「発明が解決しようとする課題」 このように、従来のデータ処理装置では、パイプライン
制御方式による時間的並列処理を行うことにより、処理
速度の高速化が図られてきた。しかしながら、この方式
においても、プロセッサはメモリから個々の命令を1つ
ずつ順に読み込み、その順に実行するという方式に変わ
りはなく、より高速な処理を行うには限界があるという
欠゛点があった。
そこで、本発明の目的は、複数の命令の同一処理を同時
に並列実行することのできるデータ処理装置を提供する
ことにある。
「課題を解決するだめの手段」 本発明では、(1)命令およびデータを記憶する記憶手
段と、(ii )この記憶手段から複数の命令を同時に
取り込む命令取込手段と、(iii )この命令取込手
段により取り込まれた複数の命令を同時に実行する複数
の命令実行手段と、(iv)これら複数の命令実行手段
ごとに設けられ、命令を構成する各実行段階の進行管理
を行う複数のパイプラインユニ7)と、(V)命令取込
手段により取り込まれた複数の命令が同時に実行可能か
否かを検知する検知手段と、(vi)この検知手段が命
令取込手段により取り込まれた複数の命令を同時に実行
可能であると検知したとき、複数の命令実行手段のそれ
ぞれに対し、これらの命令の同時実行を指示する命令実
行指示手段とをデータ処理装置に具備させる。
そして、本発明では、記憶手段から複数の命令を同時に
取り込むと共に、検知手段がこれら複数の命令を実行可
能と判定したとき、これらの実行制御を複数の命令実行
手段とパイプラインユニットにより並列に行うこととす
る。
「実施例」 以下、実施例につき本発明の詳細な説明する。
第1図は本発明の一実施例におけるデータ処理装置を表
わしたものである。この装置にはプロセッサ21が備え
られ、アドレスバス22およびデータバス23を介して
メモリ24および入出力装置25の双方に接続されてい
る。各種の命令はプログラムの形でこの入出力装置25
に人力され、メモリ24に格納されるようになっている
。プロセッサ21は、アドレスバス22を介して続出ア
ドレスを指定することにより、データバス23を介して
メモリ24から命令を読み出し、この命令に基づいてデ
ータ処理を行う。そして、その結果をメモリ24または
入出力装置25に転送するようになっている。データバ
ス23は、メモリ24に格納された個々の命令のビット
数の2倍のバス幅を有しており、2つの命令を同時にプ
ロセッサ21に転送することができるようになっている
第2図は、メモリ24に格納される命令のフォーマット
を表わしたものである。それぞれの命令は、オペレーシ
ョン・コード・フィールド26、および第1〜第3のオ
ペランド・フィールド27〜29から構成されている。
このうち、オペレーション・コード・フィールド(以下
、○PCフィールドと呼ぶ。)26は、加算、減算、ロ
ード、ストアなど実行すべき演算や操作の種類を指定し
、第1、第2のオペランド・フィールド(以下、それぞ
れSl  フィールド、S2 フィールドと呼ぶ。〉2
7.28は、演算の対象となるデータが格納されている
レジスタを指定するようになっている。
また、第3のオペランド・フィールド(以下、Dフィー
ルドと呼ぶ。)29は、演算結果を格納するレジスタを
指定するためのフィールドである。
以上のような構成のデータ処理装置の動作を説明する。
第2図に示したフォーマットを有する2つの命令は、メ
モリ24からデータバス23を介し、lメモリサイクル
で並列に読み出される。プロセッサ21では、これら2
つの命令に基づいて並列にデコードや演算が行われ、そ
の結果はデータバス23を介して並列にメモリ24、ま
たは入出力装置25に与えられる。
第3図は、第1図のプロセッサ21を詳細に表わしたも
のである。このプロセッサ21には様々な種類のレジス
タからなるレジスタファイル31が設けられている。こ
のレジスタファイル31には、4つの読出ボー)S、、
、Sea、Slb、S2b、および2つの書込ボートD
お、Db が備えられ、このうち4つの続出ボートはそ
れぞれ3人力ラッチ32〜35の入力側の1つに接続さ
れている。
3人力ラッチ32.33の出力側は演算器36aへ、3
人力ラッチ34.35の出力側は演算器36bへと接続
されている。これらの演算器36a、36bの出力はそ
れぞれ2つに分岐され、一方はそれぞれラッチ38a、
38bに、他方はさらにそれぞれ4つに分岐され3人力
ラッチ32〜35に接続されている。
ラッチ38a、38bの出力はそれぞれ2つに分岐され
、一方は内部バス42.43によりレジスタファイル3
1の書込ボートD、、Dゎに、他方は第1の双方向ゲー
ト41に接続されている。
この第1の双方向ゲート41の出力は3つに分岐され、
その1つは内部バス45により第2の双方向ゲート46
に接続されている。他の2つのうちの一方はアドレスラ
ッチ49に直接接続され、もう一方はプログラムカウン
タ48を介してアドレスラッチ49に接続されている。
アドレスラッチ49および第2の双方ゲート46には、
それぞれアドレスバス22、データバス23が11され
ている。
このデータバス23には、2つのパイプラインユニット
54a、54b、および検知ユニ、ト56からなるコン
トロールユニット58が接続されている。これらのパイ
プラインユニッ)54a、54bは、それぞれ次のよう
な4つのパイプラインステージから構成されている。
(1〉フェッチ・ステージ〔F〕 ここでは、実行すべき命令がメモリ24 (第1図)か
ら読み出される。読み出された命令は、それぞれラッチ
61a、61bに保持される。
(2)デコード・ステージ(D) ここでは、フェッチ・ステージで読み出された命令の解
読が行われ、レジスタファイル31内の該当するレジス
タ、すなわちSl フィールド、S2フイールド〈第2
図〉が示すレジスタから演算の対象となるデータが読み
出される。ここで、解読された情報はそれぞれラッチ6
2a、62bに保持される。
(3〉エグゼキュート・ステージ〔E〕ここでは、デコ
ード・ステージで解読された情報を基に、レジスタファ
イル31から読み出されたデータに対して演算器36a
、36bによる演算が行われる。これらの演算結果はそ
れぞれラッチ63a、63bに保持される。
(4)ライト・ステージ〔W〕 ここでは、エグゼキュート・ステージで行われた演算結
果が、それぞれレジスタファイル31の該当するレジス
タ、すなわちDフィールド(第2図)が示すレジスタに
書き込まれる。
これら4つのパイプラインステージは、それぞれパイプ
ラインユニット54a、54bにおいて〈1〉〜(4)
の順に同時に進行するようになっており、これにより2
つの命令が並列に実行される。
また、デコード・ステージ、すなわちラッチ61aと6
2aの間およびラッチ61bと62bの間には検知ユニ
ット56が設けられ、2つのパイプラインユニッl−5
4a、54b内の命令が同時に実行可能か否かを検知す
るようになっている。
第4図および第5図と共に、以上のような構成のプロセ
ッサ21の動作を説明する。この第4図で、縦方向は読
み出され実行される命令の順序を、横方向は時間を示す
。また、F、D、E、Wは、それぞれ、コントロールユ
ニット58のパイプラインユニット54a、54bにお
けるフェッチ、デコード、エグゼキュート、ライトの各
ステージを示す。ここではまず、第3、第4の命令(第
4図c、d)が実行される場合の動作を説明するために
、便宜上、第1、第2の命令(第4図a、b)は同時に
実行され4サイクルで終了するものとする。
第3、第4の命令73.74が、データバス23を介し
てメモリ24 (第1図)からプロセッサ21に対し転
送されると、これらの命令はコントロールユニット58
のフェッチ・ステージ〔F〕のサイクルで取り込まれる
(第5図ステップ■)。
データバス23は、第2図に示した命令フォーマットの
ビット幅の2倍のバス幅を有しているので、これら2つ
の命令は1メモリサイクルの間に取り込まれ、以後コン
トロールユニット58内のそれぞれ独立したパイプライ
ンユニッ) 54 a。
54bにより並列に処理される。ここでは、パイプライ
ンユニッ)54a、54bは、それぞれ第1、第2の演
算器36a、36bの制御を行うよう割り当てられてい
る。
フェッチ・ステージCF)で取り込まれた2つの命令は
、それぞれラッチ61a、61bでラッチされたのち、
デコード・ステージ[D)のサイクルで解読される(ス
テップ■)。解読されたそれぞれの命令のOPCフィー
ルド(第2図)は、演算器36a、36bに与えられる
。また、S。
フィールド、S2 フィールド(同図)が解読されると
、レジスタファイル31から、演算対象データの格納さ
れたレジスタが各命令ごとに2つずつ選択される。これ
ら計4つのレジスタに格納された演算対象データは、4
つの続出ポートを介して同時に読み出される(ステップ
■)。すなわち、第3の命令(第4図C)の演算対象デ
ータは読出ボートS1、S2Mからラッチ32.33に
転送され、第4の命令(同図d)の演算対象データは読
出ポー) Slb、 S2bからラッチ34.35に転
送される。このとき、デコード・ステージ〔D〕で解読
された情報は検知ユニット56にも人力され、これら2
つの命令が同時に実行可能か否かの判定が行われる(ス
テップ■)。すなわち、パイプラインユニッ)54a内
の命令の、演算結果を格納するレジスタを示すDフィー
ルド(第2図)と、パイプラインユニッ)54b内の命
令の、演算の対象となるレジスタを示すS、フィールド
またはS2  フィールド(同図)とが異なっていると
き、これら2つの命令は同時実行可能と判定され、そう
でないときには同時実行不可と判定される。ただし、ジ
ャンプ命令など特殊な命令の場合には、無条件で同時実
行不可と判定される。
ここでは同時実行可能との判定が行われ(ステップ■;
Y)、次のエグゼキュート・ステージ[E)で2つの命
令が同時に実行される。すなわち、ラッチ32.33の
データは第1の演算器36aへ、ラッチ34.35のデ
ータは第2の演算器38bに入力され、それぞれの命令
の○PCフィールド(第2図)が示す演算が行われる(
ステップ■)。
このとき、第3、第4の命令73.74の演算対象レジ
スタを示すS、フィールド、S2 フィールド(同図)
が、その直前に実行された第1、第2の命令71.72
 (第4図aSb)の演算結果格納レジスタを示すDフ
ィールド(第2図)と−致することがある(ステップ■
;Y)。この場合、第3、第4の命令73.74のデコ
ード・ステージ〔D〕においてレジスタファイル31か
ら演算対象データを読み出すタイミング(第4図1+ 
)では、第1、第2の命令71.72の演算結果のレジ
スタファイル、31への書き込みはまだ終了していない
。そこで、このようなときには、コントロールユニット
58はこれを検知し、その旨をラッチ32〜35に通知
する。これにより、ラッチ32〜35では、第11第2
の命令71.72のエグゼキュート・ステージ〔E〕で
の演算結果、すなわち演算器36a、36bの出力が、
次の命令の演算対象として直接ラッチされることとなる
(ステップ■)。このようにして、直前の命令の演算結
果を次の命令の演算の対象とするという時系列的に関連
した命令を実行するときであっても、問題なくタイミン
グを調整することができる。
第1、第2の演算器36a、36bから出力された演算
結果は、それぞれラッチ38a、38bによりラッチさ
れる。そして、次のライト・ステージ〔W〕のサイクル
でそれぞれレジスタファイル31の書込ボートD、、D
b から入力されると共に、第1の双方向ゲー)41に
も入力される。
そして、書込ボートD、 、D、からレジスタファイル
31に入力された演算結果は、それぞれの命令のDフィ
ールド(第2図〉で指定されたレジスタに書き込まれる
〈ステップ■〉。
第1の双方向ゲート41では、外部からの指示により、
内部バス42または43と内部バス45との間で双方向
に行われる4つのデータ転送状態、あるいはハイインピ
ーダンス状態のうちの1つが選択される。この内部バス
45に接続されたプログラムカウンタ48では、命令が
実行されるごとに命令アドレスの値を1つずつインクリ
メントしてアドレスラッチ49に与える。アドレスラッ
チ49では、プログラムカウンタ48から与えられた命
令アドレスの値、または内部バス45上のデータのいず
れかを保持し、これをアドレスバス22へと出力する。
そして、第1の双方向ゲー)41から内部バス45に出
力されたデータは、第2の双方向ゲート46を介してデ
ータバス23上に出力され、メモリ24 (第1図)ま
たは入出力装置25(同図〉の、アドレスバス22で指
定されたアドレスに対して、書き込み、または転送が行
われる。
このようにして、第3、第4の命令73.74は同時に
実行され、4サイクルで終了することとなる。
次に、第5、第6の命令75.76 (第4図e、f)
が実行される場合の動作を説明する。ここでは、デコー
ド・ステージ〔D〕において検知ユニット56が、これ
ら2つの命令の同時実行を不可と判定したとする。この
場合、第5の命令75はそのままエグゼキュート・ステ
ージ〔E〕、ライト・ステージ〔W〕へと進行するが、
第6の命令76はダミー・サイクル(第4図「の×)の
のち(第5図ステップ■)、エグゼキュート・ステージ
〔E〕、ライト・ステージ[’vV Eへと進行する。
すなわち、第6の命令76を実行するには5サイクルを
所要することとなる。
続く第7、第8の命令77.78(第4図g1h)では
、第6の命令76のダミー・サイクル(×)の影響によ
り、フェッチ・ステージ〔F〕とデコード・ステージC
D)との間に同様のダミー・サイクル(X)が挿入され
る。これにより、同様に5サイクルで実行終了となる。
そして、第9、第10の命令79.81で正常なサイク
ルに復帰する。
このように、同時実行不可の命令であっても、通常より
1サイクル多く所要するだけで実行されることとなる。
なお、本実施例では、実行ユニットとパイプラインユニ
ットをそれぞれ2組用いることにより2つの命令を同時
に実行することとしたが、さらに多くの実行ユニットお
よびパイプラインユニットを用意して、より多くの命令
を同時実行するように構成することもできる。これによ
り、さらに高速化を図ることができる。
また、本実施例では、命令の取り込みとデータのやりと
りを共通のバスで行うこととじたが、これらを独立させ
て2系統のバスとし、いわゆるバーバード・アーキテク
チャで構成することもできる。
さらに、本実施例では、第1図のプロセッサ21とメモ
リ24とを直接接続することとしたが、この間にキャッ
シュ・メモリや書込バッファを設けることにより、より
一層の高速化を図ることができる。
「発明の効果」 以上説明したように、本発明によれば複数の命令を同時
に取り込むと共に、これらを複数の実行ユニットとパイ
プラインユニットにより並列に実行することとしたので
、データ処理速度を高速化することができるという効果
がある。
【図面の簡単な説明】
第1図〜第5図は本発明の一実施例を説明するためのも
ので、このうち第1図はデータ処理装置を示すブロック
図、第2図は第1図のデータ処理装置で処理される命令
のフォーマットを示す説明。 図、第3図は第1図のデータ処理装置に備えられたプロ
セッサを詳細に示すブロック図、第4図は第3図のプロ
セッサの動作を説明するためのタイミング説明図、第5
図は第3のプロセッサの動作を説明するための流れ図、
第6図は従来の逐次処理方式のコンピュータにおいて命
令が実行される様子を示すタイミング説明図、第7図は
従来のパイプライン制御方式によるデータ処理装置の動
作を説明するためのタイミング説明図である。 21・・・・・・プロセッサ、22・・・・・・アドレ
スバス、23・・・・・・データバス、24・・・・・
・メモリ、25・・・・・・入出力装置、 31・・・・・・レジスタファイル、 36a、36b・・・・・・演算器、 54a、54b・・・・・・パイプラインユニット、5
6・・・・・・検知ユニット、 58・・・・・・コントロールユニット。

Claims (1)

  1. 【特許請求の範囲】 命令およびデータを記憶する記憶手段と、 この記憶手段から複数の命令を同時に取り込む命令取込
    手段と、 この命令取込手段により取り込まれた複数の命令を同時
    に実行する複数の命令実行手段と、これら複数の命令実
    行手段ごとに設けられ、命令を構成する各実行段階の進
    行管理を行う複数のパイプラインユニットと、 前記命令取込手段により取り込まれた複数の命令が同時
    に実行可能か否かを検知する検知手段と、この検知手段
    が前記命令取込手段により取り込まれた複数の命令を同
    時に実行可能であると検知したとき、前記複数の命令実
    行手段のそれぞれに対し、これらの命令の同時実行を指
    示する命令実行指示手段 とを具備することを特徴とするデータ処理装置。
JP2056464A 1990-03-09 1990-03-09 データ処理装置 Pending JPH03259340A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2056464A JPH03259340A (ja) 1990-03-09 1990-03-09 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2056464A JPH03259340A (ja) 1990-03-09 1990-03-09 データ処理装置

Publications (1)

Publication Number Publication Date
JPH03259340A true JPH03259340A (ja) 1991-11-19

Family

ID=13027827

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2056464A Pending JPH03259340A (ja) 1990-03-09 1990-03-09 データ処理装置

Country Status (1)

Country Link
JP (1) JPH03259340A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006134693A1 (ja) * 2005-06-15 2006-12-21 Matsushita Electric Industrial Co., Ltd. プロセッサ

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006134693A1 (ja) * 2005-06-15 2006-12-21 Matsushita Electric Industrial Co., Ltd. プロセッサ
JPWO2006134693A1 (ja) * 2005-06-15 2009-01-08 松下電器産業株式会社 プロセッサ
US7953959B2 (en) 2005-06-15 2011-05-31 Panasonic Corporation Processor

Similar Documents

Publication Publication Date Title
JP3098071B2 (ja) 条件付き分岐を有するプログラムの効率的実行をするためのコンピュータシステム
JP3708176B2 (ja) データ処理装置及びデータ処理方法
JPS6028015B2 (ja) 情報処理装置
JP2000330790A (ja) コンピュータシステム動作方法、コンピュータシステムにおける命令スケジューリング方法およびコンピュータシステム
US7620804B2 (en) Central processing unit architecture with multiple pipelines which decodes but does not execute both branch paths
JP2653037B2 (ja) データ処理システム
RU2375768C2 (ru) Процессор и способ осуществления операций непрямого чтения и записи регистра
US6539471B2 (en) Method and apparatus for pre-processing instructions for a processor
JPH03286332A (ja) デジタルデータ処理装置
JPH0673105B2 (ja) 命令パイプライン方式のマイクロプロセッサ
JP2874351B2 (ja) 並列パイプライン命令処理装置
JPH03259340A (ja) データ処理装置
JP2000353091A (ja) コンピュータシステムにおける命令実行方法およびコンピュータシステム
JPS6161416B2 (ja)
US11416261B2 (en) Group load register of a graph streaming processor
JP2001216275A (ja) 画像処理装置および画像処理方法
JP3456894B2 (ja) シーケンス制御装置
JP2545594B2 (ja) オペランドデータ先取り方式
JPH0546389A (ja) 並列処理装置
JPH0279122A (ja) 浮動小数点演算機構
JP2806690B2 (ja) マイクロプロセッサ
JPH0496132A (ja) 電子計算機
JP2861234B2 (ja) 命令処理装置
JPH0218732B2 (ja)
JPH03154929A (ja) 中央処理装置