JP2800488B2 - パイプライン制御方式 - Google Patents

パイプライン制御方式

Info

Publication number
JP2800488B2
JP2800488B2 JP3207650A JP20765091A JP2800488B2 JP 2800488 B2 JP2800488 B2 JP 2800488B2 JP 3207650 A JP3207650 A JP 3207650A JP 20765091 A JP20765091 A JP 20765091A JP 2800488 B2 JP2800488 B2 JP 2800488B2
Authority
JP
Japan
Prior art keywords
instruction
register
word
pipeline
words
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
JP3207650A
Other languages
English (en)
Other versions
JPH0546384A (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.)
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 JP3207650A priority Critical patent/JP2800488B2/ja
Publication of JPH0546384A publication Critical patent/JPH0546384A/ja
Application granted granted Critical
Publication of JP2800488B2 publication Critical patent/JP2800488B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02EREDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
    • Y02E60/00Enabling technologies; Technologies with a potential or indirect contribution to GHG emissions mitigation
    • Y02E60/30Hydrogen technology
    • Y02E60/50Fuel cells

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はパイプライン制御方式に
関する。
【0002】
【従来の技術】複数のパイプラインを持ち複数の命令を
同時に実行する情報処理装置の例を図7に示す。図7を
参照すると、この情報処理装置は命令キャッシュ10
0,命令供給部200,レジスタ300,主記憶40
0,データキャッシュ500,及び3つのパイプライン
610,620,630よりなる。
【0003】従来のパイプライン制御方式では、まず主
記憶400から連続する複数の命令が同時に読み出さ
れ、命令キャッシュ100を経由して命令供給部200
に供給される。例えば、一つが4バイトの命令語が4命
令分同時に供給される。この4つの命令は命令供給部2
00でデコードされる。この情報処理装置は命令処理を
行うパイプラインを3本持っており、命令供給部200
のデコード結果により、命令語は3本のパイプライン6
10,620,630に供給される。
【0004】パイプライン610はレジスタ300の内
容の加減算を行い、その結果をレジスタ300に格納す
る命令を処理する。すなわち命令が命令供給部200か
らパイプライン610に供給されると、パイプライン6
10はレジスタ300の中のデータを入力とし演算を行
い、その結果をレジスタ300に書き戻す。処理は1サ
イクルで完了する。
【0005】パイプライン620はレジスタ300の内
容の乗除算を行い、その結果をレジスタ300に格納す
る命令を処理し、2つのパイプラインステージ621,
622より構成される。すなわち、命令が命令供給部2
00からパイプライン620のパイプラインステージ6
21に供給されると、パイプラインステージ621はレ
ジスタ300の中のデータを入力とし演算を行い、中間
結果をパイプラインステージ622に渡す。パイプライ
ンステージ622はパイプラインステージ621より受
けた中間結果を基に演算を行い、結果をレジスタ300
に書き戻す。パイプライン620は処理にパイプライン
ステージ621,622の2サイクルを要する。
【0006】パイプライン630は主記憶400中のデ
ータをレジスタ300に格納、あるいはレジスタ300
中のデータを主記憶400に格納する命令を処理するパ
イプラインである。
【0007】すなわち、主記憶400中のデータをレジ
スタ300に格納する命令が命令供給部200からパイ
プライン630に供給されると、パイプライン630は
データキャッシュ500中からデータを取り出してレジ
スタ300に書き込む。データがデータキャッシュ50
0にないときは主記憶400から読み出されたデータが
データキャッシュ500を経由してパイプライン630
へ送られる。
【0008】レジスタ300中のデータを主記憶400
に格納する命令が命令供給部200からパイプライン6
30に供給されると、パイプライン630はレジスタ3
00の中のデータを読み出してデータキャッシュ500
に書き込む。データキャッシュ500に書き込まれたデ
ータは主記憶400にも反映される。
【0009】命令供給部200は同時にデコードした4
つの命令を3本のパイプラインに供給するため、パイプ
ラインのうちの少なくともどれか一つには2つ以上の命
令が供給されることになる。これに対しパイプラインは
一度に一つの命令しか処理できないため、各パイプライ
ンの入り口にはFIFOのスタックが設けられている。
【0010】
【発明が解決しようとする課題】このような情報処理装
置で実行するプログラムの一例を図13に示す。
【0011】前述のように命令語の種類により供給すべ
きパイプラインは決まってしまう。例えば、命令A,
B,F,G,I,Kはレジスタの内容の加減算を行い結
果をレジスタ300に格納する命令パイプライン610
に供給されなくてはいけない。同様にC,J,Lはパイ
プライン620に、D,E,Hはパイプライン630に
供給されなくてはいけない。このため、命令供給部20
0により同時に供給される命令語の間で演算パイプライ
ンの競合が生じる。従来の情報処理装置では、前述のよ
うに各パイプラに命令をスタックすることによりこれを
回避していた。
【0012】一方、命令間にレジスタの更新参照の依存
関係がある場合、例えばA,C,E,Iが更新するレジ
スタをそれぞれ後続のF,F,G,Jが参照している場
合は先行する命令のレジスタ更新が完了するまで継続の
命令の処理が行えない。このような場合には、たとえパ
イプランインが空いていても、命令スタック中の命令を
保持し続け実行を保留しなくてはいけない。このため、
命令スタックの制御が複雑になるという問題があった。
【0013】また、命令スタックに登録した順序でしか
命令の処理ができないので、先に登録された命令が別の
命令のレジスタ更新を待ち合わせているために、後から
登録された処理可能な命令の処理が行われずパイプライ
ンが空いてしまい性能が下がる問題があった。
【0014】また、命令の中には命令アドレスからの相
対アドレスで分岐するものがあるが、従来の情報処理装
置では命令をスタックから取り出す時点では、もうその
命令のアドレスがわからなくなってしまうので、命令を
スタックする時点で命令のあどれすも一緒にスタックし
ておかないといけなかった。このためスタックのハード
ウェア量が増大する問題があった。
【0015】
【課題を解決するための手段】第1の本発明のパイプラ
イン制御方式は、主記憶から直接あるいは命令キャッシ
ュ経由で複数の命令語を同時に供給する命令データバス
と、前記命令データバスにより供給された命令語を保持
する複数のエントリを持つ命令語レジスタと、前記命令
語レジスタと対になるエントリを持ち、前記命令語レジ
スタ中の命令語に関して実行が完了したかどうかを示す
情報を保持する命令語フラグと、前記命令語テジスタに
保持された複数の命令語または複数の命令語のデコード
結果を選択してパイプラインに供給するパイプライン対
応に設けられるパイプラインセレクタと、前記命令語レ
ジスタに保持された複数の命令語または複数の命令語の
デコード結果と前記命令フラグを入力とし、前記命令レ
ジスタ及び前記命令フラグの更新と、前記パイプライン
セレクタの制御を行い、前記命令フラグの全てが命令の
実行完了を示すときに後続の命令を命令語レジスタに供
給するように制御される命令供給制御部とを有すること
を特徴とする。
【0016】第2の本発明のパイプライン制御方式は、
主記憶から直接あるいは命令キャッシュ経由で複数の命
令語を同時に供給する命令データバスと、前記命令デー
タバスにより供給された命令語を保持する複数のエント
リを持つ命令語レジスタと、前記命令データバスにより
供給される複数の命令語を選択し命令語レジスタの各エ
ントリに供給する命令語セレクタと、前記命令語レジス
タと対になるエントリを持ち、前記命令語レジスタ中の
命令語に関して実行が完了したかどうかを示す情報を保
持する命令語フラグと、前記命令語レジスタに保持され
た複数の命令語または複数の命令語のデコード結果を選
択してパイプラインに供給するパイプライン対応に設け
られるパイプラインセレクタと、前記命令語レジスタに
保持された複数の命令語または複数の命令語のデコード
結果と前記命令フラグを入力とし、前記命令レジスタ及
び前記命令フラグの更新と、前記命令語セレクタと前記
パイプラインセレクタの制御を行い、前記命令フラグの
後尾が連続して命令の実行完了を示すときに、その命令
フラグと対応する前記命令語レジスタに後続の命令語を
供給するように制御される命令供給制御部とを有するこ
とを特徴とする。
【0017】第3の本発明のパイプライン制御方式は、
主記憶から直接あるいは命令キャッシュ経由で複数の命
令語を同時に供給する命令データバスと、前記命令デー
タバスにより供給された命令語を保持する複数のエント
リを持ちエントリ単位にその内容をシフト可能な命令語
レジスタと、前記命令データバスにより供給される複数
の命令語を選択し命令語レジスタの各エントリに供給す
る命令語セレクタと、前記命令語レジスタと対になるエ
ントリを持ち、前記命令語レジスタ中の命令語に関して
実行が完了したかどうかを示す情報を保持しエントリ単
位にその内容をシフト可能な命令語フラグと、前記命令
語レジスタに保持された複数の命令語またな複製の命令
語のデコード結果を選択してパイプラインに供給するパ
イプライン対応に設けられるパイプラインセレクタと、
前記命令語レジスタに保持された複数の命令語または複
数の命令語のデコード結果と前記命令フラグを入力と
し、前記命令レジスタ及び前記命令フラグの更新シフト
と、前記命令語セレクタと前記パイプラインセレクタの
制御を行い、前記命令フラグの先頭が連続して命令の実
行完了を示すときに前記命令語レジスタと前記命令フラ
グを実行完了を示す命令語の分だけシフトして後尾の未
完了の命令を保持するエントリを前に詰めて、前記命令
語レジスタの後尾に生じた空きエントリに後続の命令語
を供給するように制御される命令供給制御部とを有する
ことを特徴とする。
【0018】第4の本発明のパイプライン制御方式は、
主記憶から直接あるいは命令キャッシュ経由で複数の命
令語を同時に供給する命令データバスと、前記命令デー
タバスにより供給された命令語を保持する複数のエント
リを持つ命令語レジスタと、前記命令データバスにより
供給される複数の命令語を選択し命令語レジスタの各エ
ントリに供給する命令語セレクタと、前記命令語レジス
タと対になるエントリを持ち、前記命令語レジスタ中の
命令語に関して実行が完了したかどうかを示す情報を保
持する命令語フラグと、前記命令語レジスタに保持され
た複数の命令語または複数の命令語のデコード結果を選
択してパイプラインに供給するパイプライン対応に設け
られるパイプラインセレクタと、前記命令語レジスタに
保持された複数の命令語または複数の命令語のデコード
結果と前記命令フラグを入力とし、前記命令レジスタ及
び前記命令フラグの更新と、前記命令語セレクタと前記
パイプラインセレクタの制御を行い、命令の実行完了を
示す前記命令フラグに対応する前記命令語レジスタのエ
ントリに後続の命令語を供給するように制御される命令
供給制御部とを有することを特徴とする。
【0019】第5の本発明のパイプライン制御方式は、
主記憶から直接あるいは命令キャッシュ経由で複数の命
令語を同時に供給する命令データバスと、前記命令デー
タバスにより供給された命令語を保持する複数の列エン
トリを持ち命令語レジスタが複数行集まって構成される
命令語レジスタアレイと、前記命令語レジスタアレイの
うちの一行の各列エントリと対になる複数の列エントリ
を持ち、前記命令語レジスタアレイの1エントリと対応
するエントリが前記命令語レジスタアレイの1エントリ
中の命令語に関して実行が完了したかどうかを示す情報
を保持する命令語フラグが複数行集まって構成される命
令語フラグアレイと、前記命令語レジスタアレイに保持
された複数の命令語または複数の命令語のデコード結果
を選択してパイプラインに供給するパイプラインセレク
タと、前記命令語レジスタアレイに保持された複数の命
令語または複数の命令語のデコード結果と前記命令フラ
グアレイとを入力とし、前記命令語レジスタアレイ及び
前記命令フラグアレイの更新と、前記パイプラインセレ
クタの制御を行い、前記命令フラグアレイの1行につい
て全てのエントリが命令の実行完了を示すときに後続の
命令を対応する前記命令語レジスタの1行に供給するよ
うに制御される命令供給制御部とを有することを特徴と
する。
【0020】第6の本発明のパイプライン制御方式は、
主記憶から直接あるいは命令キャッシュ経由で複数の命
令語を同時に供給する命令データバスと、前記命令デー
タバスにより供給された命令語を保持する複数のエント
リを持つ命令語レジスタと、前記命令データバスで供給
する複数の命令語のうちの一つの命令アドレスを供給す
る命令アドレスバスと、前記命令アドレスバスにより供
給される命令アドレスを初期値とし、固定値を加算する
ことにより更新され、前記命令語レジスタのあるエント
リに保持される命令語の命令アドレスを常に保持するよ
う制御される命令アドレスベースレジスタと、前記命令
アドレスベースレジスタの内容に固定値を加算すること
により前記命令レジスタの残りのエントリの命令アドレ
スを求める、前記命令レジスタの残りのエントリに対応
して設けられるアドレス加算器とを設け、前記アドレス
加算器の出力を前記命令レジスタの各エントリに保持さ
れる命令語の命令アドレスとしてパイプラインに供給す
る命令供給部を構成することを特徴とする。
【0021】第7の本発明のパイプライン制御方式は、
主記憶から直接あるいは命令キャッシュ経由で複数の命
令語を同時に供給する命令データバスと、前記命令デー
タバスにより供給された複数の命令語のうちのどれか一
つを選択して保持するエントリを複数持つ命令語レジス
タと、前記命令データバスで供給する複数の命令語のう
ちの一つの命令アドレスを供給する命令アドレスバス
と、前記命令アドレスバスにより供給される命令アドレ
スに固定値を加算することにより初期値が与えられ、固
定値を加算することにより更新されることにより、前記
命令アドレスバスの命令語の一つの命令アドレスを常に
保持するよう制御される命令アドレスベースレジスタ
と、前記命令アドレスベースレジスタの内容または前記
命令アドレスベースレジスタの内容に固定値を加算する
ことにより前記命令アドレスバスの残りの命令語の命令
アドレスを求める、前記命令アドレスバスの残りの命令
語に対応して設けられるアドレス加算器と、前記アドレ
ス加算器の出力を選択して入力とし、前記命令レジスタ
のエントリに対応して命令アドレスを保持するエントリ
を持つ命令アドレスレジスタとを設け、前記命令アドレ
スレジスタの出力を前記命令レジスタの各エントリに保
持される命令語の命令アドレスとしてパイプラインに供
給する命令供給部を構成することを特徴とする。
【0022】
【実施例】先に説明した図7の情報処理装置に本発明の
それぞれを適用した実施例について以下に順次説明す
る。本発明は図7中の命令供給部200に改良を加えた
ものである。 (1)第1の本発明の一実施例(第1実施例)の命令供
給部を図1を参照して説明する。
【0023】本例は命令データバス990、命令レジス
タ1、命令供給制御部3、パイプラインセレクタ21〜
23より成る。
【0024】本例では命令データバス990は4バイト
幅の命令語を4つ同時に供給できるよう32ビット幅の
バスが4本で構成される。命令データバス990のビッ
ト幅は、命令仕様により決まる命令語の長さと命令レジ
スタ1のエントリ数で決まる。
【0025】命令レジスタ1は命令語レジスタ11a〜
14a、命令語フラグ11b〜14bより成る。命令語
レジスタ11a〜14aは命令データバス990に合わ
せて32ビット×4エントリとなっている。
【0026】命令データバス990により供給される命
令語はそれぞれ命令語レジスタ11a〜14aに入力す
る。命令語フラグ11b〜14bの4つのエントリは、
命令語レジスタ11a〜14aの各エントリに対応して
その中に保持する命令の状態を示す2ビットの情報を保
持する。命令語フラグと命令の状態の対応は、次のとお
りである。
【0027】 命令語フラグ 命令の状態 00 命令はまだパイプラインに供給されていない 01 命令はパイプラインに供給されたが レジスタの更新がまだ完了していない 10 その命令に関する処理はレジスタ更新も含めて 全て完了した パイプラインセレクタ21〜23は3本のパイプライン
610,620,630に対応していてそれぞれ独立に
命令語レジスタ11a〜14aのどれかを選択する。
【0028】命令供給制御部3は命令語レジスタ11a
〜14a、命令語フラグ11b〜14bを入力として、
パイプラインセレクタ21〜23の選択の制御、命令語
レジスタ11a〜14aが保持している内容を保持し続
けさせるか、命令データバス990により供給される後
続の命令語を新たに入力するかの制御、命令語フラグ1
1b〜14bの内容を更新の制御を行う。
【0029】以下命令供給制御部3による制御を図8と
図13を用いて詳細に説明する。図8は、本発明により
図13に示すプログラムを実行した場合の命令語レジス
タ11a〜14b、命令語フラグ11b〜14bの内容
及びパイプラインの実行の様子を表すタイムチャートで
ある。命令間のレジスタ更新、参照の関係、命令の供給
されるべきパイプラインについての仮定は前述の通りで
ある。
【0030】パイプラインセレクタ21〜23の選択の
制御は、命令語レジスタ11a〜14aが保持している
内容を比較し、レジスタの更新参照関係と、供給すべき
パイプラインの競合により行う。先行する命令で更新す
るレジスタ300を後続の命令が参照する場合には、先
行する命令に対応する命令フラグが更新完了になるまで
後続の命令をパイプラインに供給しない。
【0031】図13で命令Cは命令Aの更新したレジス
タを使用するため命令Aの完了を待ち合わせなくてはい
けない。このため、パイプライン620は時刻1で既に
空いているが、命令Cの供給は命令Aの命令語フラグ1
1bが10になり命令Aの実行が完了したことを示す時
刻3まではパイプライン620に供給されない。
【0032】また供給すべきパイプラインが競合した場
合には、先行する命令を優先して供給するが先行する命
令が別の命令のレジスタ更新のため待たされている場合
には後続の命令を先にパイプラインに供給する。時刻1
3でパイプライン620に供給する命令の候補としては
命令Lと命令Jがあるが、命令Jは命令Iの完了を待ち
合わせているため、出現順序としては後ろの命令Lが先
にパイプライン620に供給される。
【0033】次に後続の命令語の命令語レジスタ11a
〜14aへの供給の制御について説明する。命令語フラ
グ11b〜14bの内容が全て10(レジスタ更新完
了)を示す場合に、命令データバス990により供給さ
れる後続の命令を命令語レジスタ11a〜14aに一斉
にセットする。時刻7,12がそれに該当する。
【0034】最後に命令語フラグ11b〜14bの更新
について説明する。まず命令データバス990により供
給される後続の命令が命令語レジスタ11a〜14aに
一斉にセットされた場合は、命令語フラグ11b〜14
bの内容を全て00(パイプライン未供給)に設定す
る。時刻7,12がそれに該当する。
【0035】次に命令語レジスタ11a〜14a内の命
令語をパイプラインに供給したときは、命令語フラグ1
1b〜14bの内容を00(パイプライン未供給)から
01(供給済みレジスタ未更新)に更新する。命令を供
給するパイプラインにより何サイクルでレジスタの更新
が完了するかは判断できるため、レジスタ更新が行われ
るときに命令語フラグ11b〜14bの内容を最終的に
10(レジスタ更新完了)に更新する。あるいはレジス
タ更新信号をパイプラインより受取り、レジスタ更新の
完了を検出することもできる。
【0036】命令Aとその更新レジスタを使用する命令
Cの実行による命令語フラグ11b,13bの更新の様
子を追ってみると次のようになる。まず時刻2で命令A
がパイプライン610に供給されるのと同時に命令語フ
ラグ11bは00から01に更新される。時刻3で命令
Aの結果によりレジスタ300が更新されるため命令語
フラグ11bは01から10に更新される。命令語フラ
グ11bが10になるのを待ち合わせてから、命令Cは
時刻4でパイプライン620に供給され、それと同時に
13bが00から01に更新される。命令Cの処理は2
サイクル必要とするため時刻6に命令Cの結果によりレ
ジスタ300が更新され、それと同時に13bは01か
ら10に更新される。 (2)第2の本発明の一実施例(第2実施例)の命令供
給部を図2を参照して説明する。
【0037】本例は命令データバス990,命令レジス
タ1,命令供給制御部3,パイプラインセレクタ21〜
23,命令語セレクタ41〜43より成る。
【0038】本例でも命令データバス990は991〜
994の4本の32ビット幅のバスで構成される。
【0039】命令レジスタ1は命令語レジスタ11a〜
14a、命令語フラグ11b〜14bより成る。命令語
レジスタ11a〜14aは命令データバス990に合わ
せて32ビット×4エントリとなっている。命令データ
バス990の4本のバスはそれぞれバス991が命令語
レジスタ11aと命令語セレクタ41〜43に、バス9
92が命令語セレクタ41〜43にバス993が命令語
セレクタ42,43に、バス994が命令語セレクタ4
3に入力する。
【0040】命令語セレクタ41はバス991とバス9
92を選択した出力を命令語レジスタ13aに、命令語
セレクタ43はバス991〜バス993を選択した出力
を命令語レジスタ13aに、命令語セレクタ43はバス
991〜バス994を選択した出力を命令語レジスタ1
4aにそれぞれ入力する。
【0041】命令語フラグ11b〜14bの4つのエン
トリは、命令語レジスタ11a〜14aの各エントリに
対応してその中に保持する命令の状態を示す2ビットの
情報を保持する。命令語フラグと命令の状態の対応は第
1実施例と同じである。
【0042】パイプラインセレクタ21〜23は、3本
のパイプラインに対応していてそれぞれ独立に命令語レ
ジスタ11a〜14aのどれかを選択する。
【0043】命令供給制御部3は命令語レジスタ11a
〜14a、命令語フラグ11b〜14bを入力としてパ
イプラインセレクタ21〜23及び命令語セレクタ41
〜43の選択の制御、命令語レジスタ11a〜14aが
保持している内容を保持し続けさせるか、命令データバ
ス990により直接あるいは命令語セレクタ41〜43
を経由して供給される後続の命令語を新たに入力するか
の制御、命令語フラグ11b〜14bの内容の更新の制
御を行う。
【0044】以下命令供給制御部3による制御を図9と
図13を用いて詳細に説明する。
【0045】図9は本例により図13に示すプログラム
を実行した場合の命令語レジスタ11a〜14a、命令
語フラグ11b〜14bの内容及びパイプラインの実行
の様子を表すタイムチャートである。命令間のレジスタ
更新、参照の関係、命令の供給されるべきパイプライン
についての仮定は前述の通りである。
【0046】パイプラインセレクタ21〜23の選択の
制御は、命令語レジスタ11a〜14aが保持している
内容を比較し、レジスタの更新参照関係と、供給すべき
パイプラインの競合により行う。先行する命令で更新す
るレジスタを後続の命令が参照する場合には、先行する
命令に対応する命令フラグが更新完了になるまで後続の
命令をパイプラインに供給しない。
【0047】図13で命令Cは命令Aの更新したレジス
タを使用するため命令Aの完了を待ち合わせなくてはい
けない。このため、パイプライン620は時刻1で既に
空いているが、命令Cの供給は命令Aの命令語フラグ1
1bが10になり命令Aの実行が完了したことを示す時
刻3まではパイプライン620に供給されない。
【0048】また供給すべきパイプラインが競合した場
合には、先行する命令を優先して供給するが先行する命
令が別の命令レジスタ更新のため待たされている場合に
は後続の命令を先にパイプラインに供給する。図9では
そのようなタイミングは発生していない。
【0049】次に後続の命令語の命令語レジスタ11a
〜14aへの供給の制御について説明する。命令語レジ
スタ11a〜14aと命令語セレクタ41〜43は協調
して制御され、次の5通りの制御を行う。
【0050】 11a 12a 13a 14a (1) 901 902 903 904 (2) 保持 901 902 903 (3) 保持 保持 901 902 (4) 保持 保持 保持 901 (5) 保持 保持 保持 保持 命令語フラグ11b〜14bの内容により上記(1) 〜
(5) の制御が行われる。下記にその対応を示す。
【0051】 11b〜14bが全て10 : (1) 12b〜14bは全て10だが11bは10ではない : (2) 13bと14bは両方10だが12bは10でない : (3) 14bは10だが13bは10でない : (4) 13bが10でない : (5) 時刻4は(4) の制御,7,12は(1) の制御が行われて
いる。
【0052】最後に命令語フラグ11b〜14bの更新
について説明する。まず命令データバス990により供
給される後続の命令が命令語レジスタ11a〜14aに
セットされた場合は該当する命令語フラグ11b〜14
bの内容を全て00(パイプライン未供給)に設定す
る。時刻4の命令語フラグ14b,時刻7,12の命令
語フラグ11b〜14bがそれに該当する。
【0053】次に命令語レジスタ11a〜14a内の命
令語をパイプラインに供給したときは命令語フラグ11
b〜14bの内容を00(パイプライン未供給)から0
1(未供給済みレジスタ未更新)に更新する。第1実施
例と同様の方法でレジスタ更新を検出し、レジスタ更新
が行われるときに命令語フラグ11b〜14bの内容を
最終的に10(レジスタ更新完了)に更新する。
【0054】命令Aとその更新レジスタを使用する命令
Cの実行による命令語フラグ11b,13bの更新の様
子を追ってみると次のようになる。まず時刻2で命令A
がパイプライン610に供給されるのと同時に命令語フ
ラグ11bは00から01に更新される。時刻3で命令
Aの結果によりレジスタ300が更新されるため命令語
フラグ11bは01から10に更新される。命令語フラ
グ11bが10になるのを待ち合わせてから、命令Cは
時刻4でパイプライン620に供給され、それと同時に
命令語フラグ13bが00から01に更新される。命令
Cの処理は2サイクル必要とするため時刻6に命令Cの
結果によりレジスタ300が更新され、それと同時に命
令語フラグ13bは01から10に更新される。 (3)第3の本発明の一実施例(第3実施例)の命令供
給部を図2を参照して説明する。本例の構成は第2実施
例とは以下の点を除き同じである。
【0055】すなわち、図示されないが、命令供給制御
部3の指示により、命令語レジスタ11a、命令語フラ
グ11bにはそれぞれ命令語レジスタ12a〜14a、
命令語フラグ12b〜14bの内容を選択したもの、命
令語レジスタ12a、命令語フラグ12bにはそれぞれ
命令語レジスタ13aまたは14a、命令語フラグ13
bまたは14bの内容を選択したもの、命令語レジスタ
13a、命令語フラグ13bにはそれぞれ命令語レジス
タ14aと命令語フラグ14bの内容を移すことができ
る。これにより命令語レジスタ11a〜14a、命令語
フラグ11b〜14bはその内容をエントリ間でシフト
する事ができる。
【0056】命令供給制御部3は命令語レジスタ11a
〜14a、命令語フラグ11b〜14bを入力としてパ
イプラインセレクタ21〜23及び命令語セレクタ41
〜43の選択の制御、命令語レジスタ11a〜14aが
保持している内容を保持し続けさせるか、内容をエント
リ間でシフトするか、命令データバス990により直接
あるいは命令語セレクタ41〜43を経由して供給され
る後続の命令語を新たに入力するかの制御、命令語フラ
グ11b〜14bの内容の更新の制御を行う。
【0057】以下命令供給制御部3による制御を図10
と図13を用いて詳細に説明する。
【0058】図10は本例により図13に示すプログラ
ムを実行した場合の命令語レジスタ11a〜14a、命
令語フラグ11b〜14bの内容及びパイプラインの実
行の様子を表すタイムチャートである。命令間のレジス
タ更新、参照の関係、命令の供給されるべきパイプライ
ンについての仮定は前述の通りである。
【0059】パイプラインセレクタ21〜23の選択の
制御は命令語レジスタ11a〜14aが保持している内
容を比較し、レジスタの更新参照関係と、供給すべきパ
イプラインの競合により行う。先行する命令で更新する
レジスタを後続の命令が参照する場合には先行する命令
に対応する命令フラグが更新完了になるまで後続の命令
をパイプラインに供給しない。
【0060】図13で命令Cは命令Aの更新したレジス
タを使用するため命令Aの完了を待ち合わせなくてはい
けない。このためパイプライン620は時刻1で既に空
いているが、命令Cの供給は命令Aの命令語フラグ11
bが10になり命令Aの実行が完了したことを示す時刻
3まではパイプライン620に供給されない。
【0061】また供給すべきパイプラインが競合した場
合には先行する命令を優先して供給するが先行する命令
が別の命令のレジスタ更新のため待たされている場合に
は後続の命令を先のパイプラインに供給する。図10で
はそのようなタイミングは発生していない。
【0062】次に後続の命令語の命令語レジスタ11a
〜14aへの供給の制御について説明する。命令語レジ
スタ11a〜14aと命令語セレクタ41〜43は協調
して制御され、次の4通りの制御を行う。
【0063】 11a 12a 13a 14a (1) 901 902 903 904 (2) 14a 901 902 903 (3) 13a 14a 901 902 (4) 12a 13a 14a 901 (5) 保持 保持 保持 保持 命令語フラグ11b〜14bの内容により上記(1) 〜
(5) の制御が行われる。下記にその対応を示す。
【0064】 11b〜14bが全て10 (1) 11b〜13bは全て10だが14bは10でない (2) 11bと12bは両方10だが13bは10でない (3) 11bは10だが12bは10でない (4) 11bが10でない (5) 時刻4,5,9,11は(4) の制御、7は(2) 、10,
14は(3) 、他は(5)の制御が行われている。
【0065】最後に命令語フラグ11b〜14bの更新
について説明する。まず命令データバス990により供
給される後続の命令が命令語レジスタ11a〜14aに
セットされた場合は該当する命令語フラグ11b〜14
bの内容を全て00(パイプライン未供給)に設定す
る。
【0066】時刻4,5,9の命令語フラグ14b、時
刻7の命令語フラグ12b〜14b、時刻10の命令語
フラグ13b〜14bがそれに該当する。次に命令語レ
ジスタ11a〜14a内の命令語をパイプラインに供給
したときは命令語フラグ11b〜14bの内容を00
(パイプライン未供給)から01(供給済みレジスタ未
更新)に更新する。実施例(1)と同様の方法でレジス
タ更新を検出し、レジスタ更新が行われるときに命令語
フラグ11b〜14bの内容を最終的に10(レジスタ
更新完了)に更新する。
【0067】第1実施例との違いは、命令語レジスタ1
1a〜14aの内容が上述の制御によりシフトしていく
ため、それにつれて命令語フラグ11b〜14bの内容
も更新されながらシフトしていくことである。
【0068】命令語フラグ11b〜14bの更新とシフ
トの制御について以下に示す。表中11b’〜14b’
は命令語フラグ11b〜14bを上述の制御により更新
した結果である。
【0069】 11b 12b 13b 14b (1) 00 00 00 00 (2) 14b’ 00 00 00 (3) 13b’ 14b’ 00 00 (4) 12b’ 13b’ 14b’ 00 (5) 11b’ 12b’ 13b’ 14b’ 命令Aとその更新レジスタを使用する命令Cの実行によ
る命令語フラグ11b,13bの更新の様子を追ってみ
ると次のようになる。まず時刻2で命令Aがパイプライ
ン610に供給されるのと同時に命令語フラグ11bは
00から01に更新される。時刻3で命令Aの結果によ
りレジスタが更新されるため命令語フラグ11bは01
から10に更新される。
【0070】命令語フラグ11bが10になるのを待ち
合わせてから、命令Cは時刻4でパイプライン620に
供給され、それと同時に命令語フラグ13bの00が0
1に更新されて命令語フラグ12bに格納される。命令
Cの処理は2サイクル必要とするため時刻6に命令Cの
結果によりレジスタ300が更新され、それと同時に命
令語フラグ12bは01から10に更新されて命令語フ
ラグ11bに格納される。 (4)第4の本発明の一実施例(第4実施例)の命令供
給部を図3を参照して説明する。
【0071】本例は命令データバス990、命令レジス
タ1、命令供給制御部3、パイプラインセレクタ21〜
23、命令語セレクタ41〜44より成る。
【0072】本例でも命令データバス990は991〜
994の4本の32ビット幅のバスで構成される。
【0073】命令レジスタ1は命令語レジスタ11a〜
14a、命令語フラグ11b〜14bより成る。命令語
レジスタ11a〜14aは命令データバス990に合わ
せて32ビット×4エントリとなっている。命令データ
バス990の4本のバスはそれぞれ命令語セレクタ41
〜44に入力し、命令語セレクタ41〜44で選択した
結果がそれぞれ命令語レジスタ11a〜14aに入力す
る。
【0074】命令語フラグ11b〜14bの4つのエン
トリは命令語レジスタ11a〜14aの各エントリに対
応してその中に保持する命令の状態を示す2ビットの情
報を保持する。命令語フラグと命令の状態の対応は、第
1実施例と同じである。
【0075】パイプラインセレクタ21〜23は3本の
パイプラインに対応していてそれぞれ独立に命令語レジ
スタ11a〜14aのどれかを選択する。
【0076】命令供給制御部3は命令語レジスタ11a
〜14a、命令語フラグ11b〜14bを入力としてパ
イプラインセレクタ21〜23及び命令語セレクタ41
〜43の選択の制御、命令語レジスタ11a〜14aが
保持している内容を保持し続けさせるか、命令データバ
ス990から命令語セレクタ41〜44を経由して供給
される後続の命令語を新たに入力するかの制御、命令語
フラグ11b〜14bの内容の更新の制御を行う。
【0077】以下命令供給制御部3による制御を図11
と図13を用いて詳細に説明する。
【0078】図11は例により図13に示すプラグラム
を実行した場合の命令語レジスタ11a〜14a、命令
語フラグ11b〜14bの内容及びパイプラインの実行
の様子を表すタイムチャートである。命令間のレジスタ
更新、参照の関係、命令の供給されるべきパイプライン
についての仮定は前述の通りである。
【0079】パイプラインセレクタ21〜23の選択の
制御は、命令語レジスタ11a〜14aが保持している
内容を比較し、レジスタの更新参照関係と、供給すべき
パイプラインの競合により行う。先行する命令で更新す
るレジスタを後続の命令が参照する場合には先行する命
令に対応する命令フラグが更新完了になるまで後続の命
令をパイプラインに供給しない。
【0080】図13で命令Cは命令Aの更新したレジス
タを使用するため命令Aの完了を待ち合わせなくてはい
けない。このためパイプライン620は時刻1で既に空
いているが命令Cの供給は命令Aの命令語フラグ11b
が10になり命令Aの実行が完了したことを示す時刻3
まではパイプライン620に供給されない。
【0081】また供給すべきパイプラインが競合した場
合には先行する命令を優先して供給するが先行する命令
が別の命令のレジスタ更新のため待たされている場合に
は後続の命令を先にパイプラインに供給する。図9では
そのようなタイミングは発生していない。
【0082】次に後続の命令語の命令語レジスタ11a
〜14aへの供給の制御について説明する。命令語レジ
スタ11a〜14aと命令語セレクタ41〜43は、命
令語フラグ11b〜14bのうちで10のエントリに対
応する命令語レジスタ11a〜14aに後続の命令を順
番に供給するように協調して制御される。例えば時刻3
で命令語フラグ11bと14bが10になっているた
め、時刻4で命令語セレクタ41、44をそれぞれ99
1と992をセレクトするように制御し命令語レジスタ
11aと14aにそれぞれ後続の命令EとFを供給す
る。同様に時刻5で12aに命令G、時刻7で命令語レ
ジスタ11a、13aに命令H,Iが供給される。
【0083】最後に命令語フラグ11b〜14bの更新
について説明する。まず命令データバス990により供
給される後続の命令が命令語レジスタ11a〜14aに
セットされた場合は、該当する命令語フラグ11b〜1
4bの内容を全て00(パイプライン未供給)に設定す
る。時刻4の命令語フラグ11b,14b、時刻5の命
令語フラグ12b,時刻7の命令語フラグ11b,13
b、等がそれに該当する。
【0084】次に命令語レジスタ11a〜14a内の命
令語をパイプラインに供給したときは命令語フラグ11
b〜14bの内容を00(パイプライン未供給)から0
1(供給済みレジスタ未更新)に更新する。第1実施例
と同様の方法でレジスタ更新を検出し、レジスタ更新が
行われるときに命令語フラグ11b〜14bの内容を最
終的に10(レジスタ更新完了)に更新する。
【0085】命令Aとその更新レジスタを使用する命令
Cの実行による命令語フラグ11b,13bの更新の様
子を追ってみるとつぎのようになる。まず時刻2で命令
Aがパイプライン610に供給されるのと同時に命令語
フラグ11bは00から01に更新される。時刻3で命
令Aの結果によりレジスタ300が更新されるため命令
語フラグ11bは01から10に更新される。命令語フ
ラグ11bが10になるのを待ち合わせてから、命令C
は時刻4でパイプライン620に供給され、それと同時
に命令語フラグ13bが00から01に更新される。命
令Cの処理は2サイクル必要とするため時刻6に命令C
の結果によりレジスタ300が更新され、それと同時に
命令語フラグ13bは01から10に更新される。 (5)第5の本発明の一実施例(第5実施例)の命令供
給部を図3を参照して説明する。
【0086】本例は命令データバス990、命令レジス
タアレイ1000、命令供給部3、パイプラインセレク
タ21〜27より成る。
【0087】本例でも命令データバス990は4バイト
幅の命令語を4つ同時に供給できるように32ビット幅
のバスが4本で構成される。
【0088】命令レジスタアレイ1000は命令語レジ
スタアレイ111a〜124a及び命令語フラグアレイ
111b〜124bより成る。命令語レジスタアレイ1
11a〜114a、121a〜124aはそれぞれ命令
データバス990に合わせて32ビット×4エントリと
なっている。命令データバス990により供給される命
令語はそれぞれ命令語レジスタアレイ111a〜114
a、121a〜124aに入力する。命令語フラグアレ
イ111b〜114b、121b〜124bの8つのエ
ントリは命令語レジスタアレイ111a〜114a、1
21a〜124aの各エントリに対応してその中に保持
する命令の状態を示す2ビットの情報を保持する。命令
語フラグと命令の状態の対応は第2実施例と同じであ
る。
【0089】パイプラインセレクタ24〜27はそれぞ
れ独立に命令語レジスタアレイ111a〜114aまた
は121a〜124aのいずれかを選択する。パイプラ
インセレクタ21〜23は3本のパイプラインに対応し
ていてそれぞれ独立にパイプラインセレクタ24〜27
の出力のどれかを選択する。
【0090】命令供給制御部3は命令語レジスタアレイ
111a〜124a、命令語フラグアレイ111b〜1
24bを入力としてパイプラインセレクタ21〜27の
選択の制御、命令語レジスタアレイ111a〜124a
が保持している内容を保持し続けさせるか、命令データ
バス990により供給される後続の命令語を新たに入力
するかの制御、命令語フラグアレイ111b〜124b
の内容の更新の制御を行う。
【0091】以下命令供給制御部3による制御を図12
と図13を用いて詳細に説明する。
【0092】図12は本例により図13に示すプログラ
ムを実行した場合の命令語レジスタアレイ111a〜1
24a、命令語フラグアレイ111b〜124bの内容
及びパイプラインの実行の様子を表すタイムチャートで
ある。命令間のレジスタ更新、参照の関係、命令の供給
されるべきパイプラインについての仮定は前述の通りで
ある。
【0093】パイプラインセレクタ21〜27の選択の
制御は命令語レジスタアレイ111a〜124aが保持
している内容を比較し、レジスタの更新参照関係と、供
給すべきパイプラインの競合により行う。先行する命令
で更新するレジスタを後続の命令が参照する場合には先
行する命令に対応する命令フラグが更新完了になるまで
後続の命令をパイプラインに供給しない。図13で命令
Cは命令Aの更新したレジスタを使用するため命令Aの
完了を待ち合わせなくてはいけない。このためパイプラ
イン620は時刻1で既に空いているが命令Cの供給は
命令Aの命令語フラグ111bが10になり命令Aの実
行が完了したことを示す時刻3まではパイプライン62
0に供給されない。
【0094】また供給すべきパイプラインが競合した場
合には先行する命令を優先して供給するが先行する命令
が別の命令のレジスタ更新のため待たされている場合に
は後続の命令を先にパイプラインに供給する。時刻5で
パイプライン610に供給する命令の候補としては命令
Fと命令Cがあるが命令Fは命令Cの完了を待ち合わせ
ているため出現順序としては後ろの命令Gが先にパイプ
ライン610に供給される。
【0095】次に後続の命令語の命令語レジスタアレイ
111a〜124aへの供給の制御について説明する。
命令語フラグアレイ111b〜114bまたは命令語フ
ラグアレイ111b〜114bの内容のいずれか一方が
全て10(レジスタ更新完了)を示す場合に命令データ
バス990により供給される後続の命令を命令語レジス
タアレイ111a〜114aまたは121a〜124a
に一斉にセットする。時刻7がそれに該当する。また命
令語フラグアレイ111b〜124bの内容が全て10
(レジスタ更新完了)を示す場合には命令データバス9
90により供給される後続の命令をまず命令語レジスタ
アレイ111a〜114aに一斉にセットし、続いてつ
ぎのサイクルで命令語レジスタアレイ121a〜124
aに一斉にセットする。
【0096】最後に命令語フラグアレイ111b〜12
4bの更新について説明する。まず命令データバス99
0により供給される後続の命令が命令語レジスタアレイ
111a〜124aに一斉にセットされた場合は命令語
フラグアレイ111b〜124bの内容を全て00(パ
イプライン未供給)に設定する。時刻7がそれに該当す
る。
【0097】次に命令語レジスタアレイ111a〜12
4a内の命令語をパイプラインに供給したときは命令語
フラグアレイ111b〜124bの内容を00(パイプ
ライン未供給)から01(供給済みレジスタ未更新)に
更新する。命令を供給するパイプラインにより何サイク
ルでレジスタの更新が完了するかは判断できるため、レ
ジスタ更新が行われるときに命令語フラグアレイ111
b〜124bの内容を最終的に10(レジスタ更新完
了)に更新する。あるいはレジスタ更新信号をパイプラ
インより受取り、レジスタ更新の完了を検出することも
できる。
【0098】命令Aとその更新レジスタを使用する命令
Cの実行による命令語フラグ111b,113bの更新
の様子を追ってみると次のようになる。まず時刻2で命
令Aがパイプライン610に供給されるのと同時に命令
語フラグ111bは00から01に更新される。時刻3
で命令Aの結果によりレジスタが更新されるため命令語
フラグ111bは01から10に更新される。命令語フ
ラグ111bが10になるのを待ち合わせてから、命令
Cは時刻4でパイプライン620に供給され、それと同
時に命令語フラグ113bが00から01に更新され
る。命令Cの処理は2サイクル必要とするため時刻6に
命令Cの結果によりレジスタが更新され、それと同時に
命令語フラグ113bは01から10に更新される。 (6)第6の本発明の一実施例(第6実施例)の命令供
給部を図5を参照して説明する。
【0099】図5を参照すると本例は命令データバス9
90,命令アドレスバス980,命令レジスタ1,命令
アドレスレジスタ5,加算器61〜64より成る。
【0100】本例では命令データバス990は4バイト
幅の命令語を4つ同時に供給できるよう4本の32ビッ
ト幅の命令バス990〜994で構成される。
【0101】命令レジスタ1は命令語レジスタ11a〜
14aより成る。命令語レジスタ11a〜14aは命令
データバス990に合わせて32ビット×4エントリと
なっている。命令データバス990により供給される命
令語はそれぞれ命令語レジスタ11a〜14aに入力す
る。命令データバス990により供給される命令語は主
記憶上で連続しているため、命令語レジスタ12a〜1
4aの保持する命令語の命令アドレスは命令語レジスタ
11aの保持する命令アドレスに命令語長の1倍、2
倍、3倍を加算したものになっている。
【0102】命令供給開始時に命令アドレスバス980
は命令データバス990により供給される4つの命令語
のうちの命令バス991の命令アドレスを示す。命令ア
ドレスバス980は命令アドレスレジスタ5に供給され
保持される。命令アドレスレジスタ5は命令語レジスタ
11a内の命令語の命令アドレスを保持し、命令語レジ
スタ11aの内容と合わせてパイプラインに供給され
る。加算器61〜63はそれぞれ固定値を命令アドレス
レジスタ5の内容に加算してその結果を12a〜14a
の内容と合わせてパイプラインに供給する。加算器61
〜63が加算する固定地は命令語長の1倍、2倍、3倍
が設定され、本例ではその値はそれぞれ8,16,32
である。
【0103】また加算器64は命令アドレスレジスタ5
に固定値を加算し、その結果を命令アドレスレジスタ5
に書き戻すよう構成されている。主記憶上の連続した命
令を実行している間は命令データバス990により命令
語レジスタ11aに供給される命令語の命令アドレスは
命令語長×命令レジスタ1のエントリ数を命令アドレス
レジスタ5に足し込んだものとなるため、加算器64で
加算する固定値を命令語調×命令レジスタ1のエントリ
数に設定することにより、命令アドレスバス980によ
り命令語アドレスを供給するのは分岐命令等で命令アド
レスが非連続となった場合だけでよくなる。加算器64
で加算する固定値は本例においては32である。
【0104】本例は例えば第1実施例のような構成と組
み合わせることによりその効果を最大限に発揮する。 (7)第7の本発明の一実施例(第7実施例)の命令供
給部を図6を参照して説明する。
【0105】図6を参照すると本例は命令データバス9
90、命令アドレスバス980、命令レジスタ1、命令
語セレクタ41〜44、命令アドレスレジスタ群50、
加算器61〜64、命令アドレスセレクタ71〜75、
命令アドレスベースレジスタ8より成る。
【0106】本例では命令データバス990は4バイト
幅の命令語を4つ同時に供給できるよう32ビット幅の
命令バス991〜994で構成される。
【0107】命令レジスタ1は命令語レジスタ11a〜
14aより成る。命令アドレスレジスタ50は命令アド
レスレジスタエントリ51〜54の4つのエントリから
成りそのそれぞれのエントリは命令語レジスタ11a〜
14aが保持する命令語の命令アドレスを保持する。命
令語レジスタ11a〜14aは命令データバス990に
合わせて32ビット×4エントリとなっている。命令デ
ータバス990により供給される命令語は命令語セレク
タ41〜44に入力し、選択結果が命令語レジスタ11
a〜14aに入力する。命令データバス990により供
給される命令語は主記憶上で連続しているため、991
〜994に対応する命令アドレスは命令語長間隔で等間
隔になっている。
【0108】命令供給開始時に命令アドレスバス980
は命令データバス990により供給される4つの命令語
のうちの命令バス991の命令アドレスを示すととも
に、セレクタ75は命令アドレスバス980を選択し命
令アドレスバス980を加算器61〜63に入力する。
加算器61〜63はそれぞれ固定値を75の出力に加算
してその結果をセレクタ71〜74に供給する。加算器
61〜63が加算する固定値は命令語長の1倍、2倍、
3倍設定され、本例ではその値はそれぞれ8,16,3
2である。
【0109】セレクタ71〜74の選択制御は命令語セ
レクタ41〜44と対称に行われるため、例えば命令語
セレクタ41により命令語レジスタ11aに993の命
令語が供給される場合には71は63の出力を選択し9
93の命令アドレスが命令アドレスレジスタエントリ5
1にセットされる。このようにして命令アドレスレジス
タエントリ51〜54に保持される、命令語レジスタ1
1a〜14aと対応する命令アドレスは、命令語と対に
なってパイプラインに供給される。
【0110】また加算器64により命令アドレスセレク
タ75の出力に固定値を加算し、その結果を命令アドレ
スベースレジスタ8に格納するよう構成されている。主
記憶上の連続した命令を実行している間は命令バス99
1の命令アドレスは命令語長×命令レジスタ1のエント
リ数を命令アドレスベースレジスタに足し込んだものと
なるため、加算器64で加算する固定値を命令語調×命
令レジスタ1のエントリ数に設定することにより、命令
アドレスバス980により命令語アドレスを供給するの
は分岐命令等で命令アドレスが非連続となった場合だけ
でよくなる。その固定値は本例において32である。
【0111】本例は例えば第2実施例、第3実施例及び
第4実施例のような構成と組み合わせることによりその
効果を最大限に発揮する。
【0112】
【発明の効果】以上説明したように本発明によれば、実
行未完了の命令を命令レジスタに保持し続けることによ
り命令処理パイプラインの受付バッファが不要になり、
命令語間の競合が命令レジスタのみの参照で容易に検出
でき、命令語及び命令アドレスの命令処理パイプライン
への供給制御が少量のハードウェアと比較的単純な制御
論理により実現できる。
【図面の簡単な説明】
【図1】第1の本発明の一実施例の命令供給部を示すブ
ロック図である。
【図2】第2の本発明及び第3の本発明の一実施例の命
令供給部を示すブロック図である。
【図3】第4の本発明の一実施例の命令供給部を示すブ
ロック図である。
【図4】第5の本発明の一実施例の命令供給部を示すブ
ロック図である。
【図5】第6の本発明の一実施例の命令供給部を示すブ
ロック図である。
【図6】第7の本発明の一実施例の命令供給部を示すブ
ロック図である。
【図7】本発明が適用されるパイプラインを複数持つ一
般的な情報処理装置の構成の一例を示すブロック図であ
る。
【図8】図1に示した第1実施例の動作を示すタイミン
グチャートである。
【図9】図2に示した第2実施例の動作を示すタイミン
グチャートである。
【図10】図2に示した第3実施例の動作を示すタイミ
ングチャートである。
【図11】図3に示した第4実施例の動作を示すタイミ
ングチャートである。
【図12】図4に示した第5実施例の動作を示すタイミ
ングチャートである。
【図13】本発明の動作を説明するためのプログラム例
を示す。
【符号の説明】
1:命令レジスタ 11a,12a,13a,14a:命令語レジスタ 11b,12b,13b,14b:命令語フラグ 1000:命令レジスタアレイ 111a〜154a:命令語レジスタアレイ 111b〜154b:命令フラグアレイ 21,22,23,24,25,26,27:パイプラ
インセレクタ 3:命令供給制御部 41,42,43,44:命令語セレクタ 5:命令アドレスレジスタ 50:命令アドレスレジスタ群 51,52,53,54:命令アドレスレジスタエント
リ 61,62,63,64:加算器 71,72,73,74,75:命令アドレスセレクタ 8:命令アドレスベースレジスタ 990:命令データバス 991〜994:命令バス 970:命令レジスタアレイ、命令フラグアレイの出力 980:命令アドレスバス 100:命令キャッシュ 200:命令供給部 300:レジスタ 400:主記憶 500:データキャッシュ 610,620,630:パイプライン

Claims (7)

    (57)【特許請求の範囲】
  1. 【請求項1】 主記憶から直接あるいは命令キャッシュ
    経由で複数の命令語を同時に供給する命令データバス
    と、 前記命令データバスにより供給された命令語を保持する
    複数のエントリを持つ命令語レジスタと、 前記命令語レジスタと対になるエントリを持ち、前記命
    令語レジスタ中の命令語に関して実行が完了したかどう
    かを示す情報を保持する命令語フラグと、 前記命令語テジスタに保持された複数の命令語または複
    数の命令語のデコード結果を選択してパイプラインに供
    給するパイプライン対応に設けられるパイプラインセレ
    クタと、 前記命令語レジスタに保持された複数の命令語または複
    数の命令語のデコード結果と前記命令フラグを入力と
    し、前記命令レジスタ及び前記命令フラグの更新と、前
    記パイプラインセレクタの制御を行い、前記命令フラグ
    の全てが命令の実行完了を示すときに後続の命令を命令
    語レジスタに供給するように制御される命令供給制御部
    とを有することを特徴としたパイプライン制御方式。
  2. 【請求項2】 主記憶から直接あるいは命令キャッシュ
    経由で複数の命令語を同時に供給する命令データバス
    と、 前記命令データバスにより供給された命令語を保持する
    複数のエントリを持つ命令語レジスタと、 前記命令データバスにより供給される複数の命令語を選
    択し命令語レジスタの各エントリに供給する命令語セレ
    クタと、 前記命令語レジスタと対になるエントリを持ち、前記命
    令語レジスタ中の命令語に関して実行が完了したかどう
    かを示す情報を保持する命令語フラグと、 前記命令語レジスタに保持された複数の命令語または複
    数の命令語のデコード結果を選択してパイプラインに供
    給するパイプライン対応に設けられるパイプラインセレ
    クタと、 前記命令語レジスタに保持された複数の命令語または複
    数の命令語のデコード結果と前記命令フラグを入力と
    し、前記命令レジスタ及び前記命令フラグの更新と、前
    記命令語セレクタと前記パイプラインセレクタの制御を
    行い、前記命令フラグの後尾が連続して命令の実行完了
    を示すときに、その命令フラグと対応する前記命令語レ
    ジスタに後続の命令語を供給するように制御される命令
    供給制御部とを有することを特徴としたパイプライン制
    御方式。
  3. 【請求項3】 主記憶から直接あるいは命令キャッシュ
    経由で複数の命令語を同時に供給する命令データバス
    と、 前記命令データバスにより供給された命令語を保持する
    複数のエントリを持ちエントリ単位にその内容をシフト
    可能な命令語レジスタと、 前記命令データバスにより供給される複数の命令語を選
    択し命令語レジスタの各エントリに供給する命令語セレ
    クタと、 前記命令語レジスタと対になるエントリを持ち、前記命
    令語レジスタ中の命令語に関して実行が完了したかどう
    かを示す情報を保持しエントリ単位にその内容をシフト
    可能な命令語フラグと、 前記命令語レジスタに保持された複数の命令語またな複
    製の命令語のデコード結果を選択してパイプラインに供
    給するパイプライン対応に設けられるパイプラインセレ
    クタと、 前記命令語レジスタに保持された複数の命令語または複
    数の命令語のデコード結果と前記命令フラグを入力と
    し、前記命令レジスタ及び前記命令フラグの更新シフト
    と、前記命令語セレクタと前記パイプラインセレクタの
    制御を行い、前記命令フラグの先頭が連続して命令の実
    行完了を示すときに前記命令語レジスタと前記命令フラ
    グを実行完了を示す命令語の分だけシフトして後尾の未
    完了の命令を保持するエントリを前に詰めて、前記命令
    語レジスタの後尾に生じた空きエントリに後続の命令語
    を供給するように制御される命令供給制御部とを有する
    ことを特徴としたパイプライン制御方式。
  4. 【請求項4】 主記憶から直接あるいは命令キャッシュ
    経由で複数の命令語を同時に供給する命令データバス
    と、 前記命令データバスにより供給された命令語を保持する
    複数のエントリを持つ命令語レジスタと、 前記命令データバスにより供給される複数の命令語を選
    択し命令語レジスタの各エントリに供給する命令語セレ
    クタと、 前記命令語レジスタと対になるエントリを持ち、前記命
    令語レジスタ中の命令語に関して実行が完了したかどう
    かを示す情報を保持する命令語フラグと、 前記命令語レジスタに保持された複数の命令語または複
    数の命令語のデコード結果を選択してパイプラインに供
    給するパイプライン対応に設けられるパイプラインセレ
    クタと、 前記命令語レジスタに保持された複数の命令語または複
    数の命令語のデコード結果と前記命令フラグを入力と
    し、前記命令レジスタ及び前記命令フラグの更新と、前
    記命令語セレクタと前記パイプラインセレクタの制御を
    行い、命令の実行完了を示す前記命令フラグに対応する
    前記命令語レジスタのエントリに後続の命令語を供給す
    るように制御される命令供給制御部とを有することを特
    徴としたパイプライン制御方式。
  5. 【請求項5】 主記憶から直接あるいは命令キャッシュ
    経由で複数の命令語を同時に供給する命令データバス
    と、 前記命令データバスにより供給された命令語を保持する
    複数の列エントリを持ち命令語レジスタが複数行集まっ
    て構成される命令語レジスタアレイと、 前記命令語レジスタアレイのうちの一行の各列エントリ
    と対になる複数の列エントリを持ち、前記命令語レジス
    タアレイの1エントリと対応するエントリが前記命令語
    レジスタアレイの1エントリ中の命令語に関して実行が
    完了したかどうかを示す情報を保持する命令語フラグが
    複数行集まって構成される命令語フラグアレイと、 前記命令語レジスタアレイに保持された複数の命令語ま
    たは複数の命令語のデコード結果を選択してパイプライ
    ンに供給するパイプラインセレクタと、 前記命令語レジスタアレイに保持された複数の命令語ま
    たは複数の命令語のデコード結果と前記命令フラグアレ
    イとを入力とし、前記命令語レジスタアレイ及び前記命
    令フラグアレイの更新と、前記パイプラインセレクタの
    制御を行い、前記命令フラグアレイの1行について全て
    のエントリが命令の実行完了を示すときに後続の命令を
    対応する前記命令語レジスタの1行に供給するように制
    御される命令供給制御部とを有することを特徴としたパ
    イプライン制御方式。
  6. 【請求項6】 主記憶から直接あるいは命令キャッシュ
    経由で複数の命令語を同時に供給する命令データバス
    と、 前記命令データバスにより供給された命令語を保持する
    複数のエントリを持つ命令語レジスタと、 前記命令データバスで供給する複数の命令語のうちの一
    つの命令アドレスを供給する命令アドレスバスと、 前記命令アドレスバスにより供給される命令アドレスを
    初期値とし、固定値を加算することにより更新され、前
    記命令語レジスタのあるエントリに保持される命令語の
    命令アドレスを常に保持するよう制御される命令アドレ
    スベースレジスタと、 前記命令アドレスベースレジスタの内容に固定値を加算
    することにより前記命令レジスタの残りのエントリの命
    令アドレスを求める、前記命令レジスタの残りのエント
    リに対応して設けられるアドレス加算器とを設け、 前記アドレス加算器の出力を前記命令レジスタの各エン
    トリに保持される命令語の命令アドレスとしてパイプラ
    インに供給する命令供給部を構成することを特徴とする
    パイプライン制御方式。
  7. 【請求項7】 主記憶から直接あるいは命令キャッシュ
    経由で複数の命令語を同時に供給する命令データバス
    と、 前記命令データバスにより供給された複数の命令語のう
    ちのどれか一つを選択して保持するエントリを複数持つ
    命令語レジスタと、 前記命令データバスで供給する複数の命令語のうちの一
    つの命令アドレスを供給する命令アドレスバスと、 前記命令アドレスバスにより供給される命令アドレスに
    固定値を加算することにより初期値が与えられ、固定値
    を加算することにより更新されることにより、前記命令
    アドレスバスの命令語の一つの命令アドレスを常に保持
    するよう制御される命令アドレスベースレジスタと、 前記命令アドレスベースレジスタの内容または前記命令
    アドレスベースレジスタの内容に固定値を加算すること
    により前記命令アドレスバスの残りの命令語の命令アド
    レスを求める、前記命令アドレスバスの残りの命令語に
    対応して設けられるアドレス加算器と、 前記アドレス加算器の出力を選択して入力とし、前記命
    令レジスタのエントリに対応して命令アドレスを保持す
    るエントリを持つ命令アドレスレジスタとを設け、 前記命令アドレスレジスタの出力を前記命令レジスタの
    各エントリに保持される命令語の命令アドレスとしてパ
    イプラインに供給する命令供給部を構成することを特徴
    とするパイプライン制御方式。
JP3207650A 1991-08-20 1991-08-20 パイプライン制御方式 Expired - Fee Related JP2800488B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3207650A JP2800488B2 (ja) 1991-08-20 1991-08-20 パイプライン制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3207650A JP2800488B2 (ja) 1991-08-20 1991-08-20 パイプライン制御方式

Publications (2)

Publication Number Publication Date
JPH0546384A JPH0546384A (ja) 1993-02-26
JP2800488B2 true JP2800488B2 (ja) 1998-09-21

Family

ID=16543291

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3207650A Expired - Fee Related JP2800488B2 (ja) 1991-08-20 1991-08-20 パイプライン制御方式

Country Status (1)

Country Link
JP (1) JP2800488B2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60173634A (ja) * 1984-02-10 1985-09-07 Fujitsu Ltd 命令信号列処理回路

Also Published As

Publication number Publication date
JPH0546384A (ja) 1993-02-26

Similar Documents

Publication Publication Date Title
US4752873A (en) Data processor having a plurality of operating units, logical registers, and physical registers for parallel instructions execution
JPH0658631B2 (ja) デ−タ処理装置
US6272596B1 (en) Data processor
EP0239081B1 (en) Pipelined data processor capable of decoding and executing plural instructions in parallel
JP2698033B2 (ja) 順不同の命令実行を可能にするコンピュータ・システム及びその操作方法
EP1050803B1 (en) Guarded computer instruction execution
JP2750311B2 (ja) データ処理装置内のデータ・オペレーションの実行を制御する装置及び方法
US4713752A (en) Buffer storage system
KR20080036940A (ko) 파이프라인 구조를 갖는 캐시 메모리 및 이를 제어하는방법
JP2008181551A (ja) ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング
JPS60129840A (ja) 情報処理装置
US6701425B1 (en) Memory access address comparison of load and store queques
JP2800488B2 (ja) パイプライン制御方式
EP1050807A1 (en) Memory access in a computer memory
EP0334131B1 (en) Data processor performing operation on data having length shorter than one-word length
EP0292188B1 (en) Cache system
US20030009652A1 (en) Data processing system and control method
JPH0345420B2 (ja)
US7143247B1 (en) Method and apparatus for parallel execution pipeline data storage in a computer memory
EP0465847B1 (en) Memory access control having commonly shared pipeline structure
EP1050805A1 (en) Transfer of guard values in a computer system
JP5644571B2 (ja) プロセッサ
JP2001167084A (ja) ベクトル演算処理装置及びベクトルデータ移送方法
JPH07200289A (ja) 情報処理装置
JP2933848B2 (ja) データ処理装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19980609

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070710

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080710

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees