JP2764947B2 - 命令制御方式 - Google Patents
命令制御方式Info
- Publication number
- JP2764947B2 JP2764947B2 JP63255798A JP25579888A JP2764947B2 JP 2764947 B2 JP2764947 B2 JP 2764947B2 JP 63255798 A JP63255798 A JP 63255798A JP 25579888 A JP25579888 A JP 25579888A JP 2764947 B2 JP2764947 B2 JP 2764947B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- adder
- bytes
- ibf0
- 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 - Lifetime
Links
Landscapes
- Advance Control (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、パイプライン処理型電子計算機の命令制御
方式に関し、特に、インストラクションレジスタに必要
とする命令長分全てが揃いきらなかった場合の命令処理
の高速化に関する。
方式に関し、特に、インストラクションレジスタに必要
とする命令長分全てが揃いきらなかった場合の命令処理
の高速化に関する。
従来、この種のパイプライン処理型電子計算機の命令
制御方式は、インストラクションバッファからインスト
ラクションレジスタへ必要とする命令長分が全てが揃い
きってから送り出し、命令を実行させることとしてい
た。
制御方式は、インストラクションバッファからインスト
ラクションレジスタへ必要とする命令長分が全てが揃い
きってから送り出し、命令を実行させることとしてい
た。
〔発明が解決しようとする課題〕 上述した従来の命令制御方式は、インストラクション
バッファからインストラクションレジスタに必要とする
命令長分が全てが揃いきってから命令を送り出し、命令
を実行させることになっているので、インストラクショ
ンバッファ内に実行しようとする命令の命令長分の全て
が揃っていないと、命令の実行が待たされるという欠点
がある。
バッファからインストラクションレジスタに必要とする
命令長分が全てが揃いきってから命令を送り出し、命令
を実行させることになっているので、インストラクショ
ンバッファ内に実行しようとする命令の命令長分の全て
が揃っていないと、命令の実行が待たされるという欠点
がある。
本発明による命令制御方式は、加算器で必要バイト数
を計数していくことにより、インストラクションレジス
タにオペレーションを規定するフィールドが揃った段階
で命令の実行を開始させる手段と、インストラクション
レジスタに命令のどの部分までが揃っていて命令の実行
が開始されたのかを示す手段と、該不足している命令の
部分を加算器からのキャリーアウトにより命令の実行時
に必要となった段階で、必要となった場所に供給する手
段とを有している。
を計数していくことにより、インストラクションレジス
タにオペレーションを規定するフィールドが揃った段階
で命令の実行を開始させる手段と、インストラクション
レジスタに命令のどの部分までが揃っていて命令の実行
が開始されたのかを示す手段と、該不足している命令の
部分を加算器からのキャリーアウトにより命令の実行時
に必要となった段階で、必要となった場所に供給する手
段とを有している。
次に、本発明の実施例について図面を参照して説明す
る。
る。
第1図は本発明の一実施例による命令制御方式が適用
されるパイプライン処理型電子計算機の構成を示すブロ
ック図である。本実施例で扱うインストラクションセッ
トを第2図に示す。尚、第2図において、「L」はオペ
ランド長を意味し、転送命令であれば、転送長を示す。
記憶装置とインストラクションバッファ(IBF)間での
データ転送幅は8バイトであり、命令は2バイト境界に
整列されているとする。説明の簡易化の為に、本実施例
では、IBF0は8バイトのレジスタ1個とする。
されるパイプライン処理型電子計算機の構成を示すブロ
ック図である。本実施例で扱うインストラクションセッ
トを第2図に示す。尚、第2図において、「L」はオペ
ランド長を意味し、転送命令であれば、転送長を示す。
記憶装置とインストラクションバッファ(IBF)間での
データ転送幅は8バイトであり、命令は2バイト境界に
整列されているとする。説明の簡易化の為に、本実施例
では、IBF0は8バイトのレジスタ1個とする。
IBF0にデータがセットされている時に、レジスタ16
は、命令がIBF0のどのバイトから始まるのかを示してい
る。つまり、レジスタ16は、IBF0を2バイトごとに分割
した場合の命令のオペレーションコード(以下、OPcod
e)から始まる2バイトを選択回路100を通して選択し、
続く2バイトを選択回路101を通して選択する。選択回
路100の出力の前半1バイトにはOPcodeが含まれている
ことにより、該OPcode部分を信号線211を通して命令語
長判別回路401に入力させ、命令語長を判断し、信号線2
12を通して加算器400に命令語長を入力させ、レジスタ1
6の値と加算する。加算器400の出力はレジスタ16に入力
させ、次の命令のIBF0における開始位置を示すことにさ
せる。
は、命令がIBF0のどのバイトから始まるのかを示してい
る。つまり、レジスタ16は、IBF0を2バイトごとに分割
した場合の命令のオペレーションコード(以下、OPcod
e)から始まる2バイトを選択回路100を通して選択し、
続く2バイトを選択回路101を通して選択する。選択回
路100の出力の前半1バイトにはOPcodeが含まれている
ことにより、該OPcode部分を信号線211を通して命令語
長判別回路401に入力させ、命令語長を判断し、信号線2
12を通して加算器400に命令語長を入力させ、レジスタ1
6の値と加算する。加算器400の出力はレジスタ16に入力
させ、次の命令のIBF0における開始位置を示すことにさ
せる。
3ビット加算器400の加算において、最上位桁からキ
ャリーアウトが生じ、かつ加算器400の出力が(000)2
でない場合は、IBF0の中に命令語すべてが揃いきってい
なかったことになり、記憶装置からIBF0に次の8バイト
を取り込むことにすると供に、加算器400からのキャリ
ーアウト信号213によって命令語が揃いきらずに命令を
開始させたというフラグ17を立てる。
ャリーアウトが生じ、かつ加算器400の出力が(000)2
でない場合は、IBF0の中に命令語すべてが揃いきってい
なかったことになり、記憶装置からIBF0に次の8バイト
を取り込むことにすると供に、加算器400からのキャリ
ーアウト信号213によって命令語が揃いきらずに命令を
開始させたというフラグ17を立てる。
4バイト命令の実行を例にとって説明する。命令語が
すべて揃いきる場合は、OPcodeとアドレス計算の為に必
要なレジスタのレジスタ番号を示しているフィールド
を、選択回路100より、またアドレス計算で変位として
必要なフィールドを、選択回路101より得られ、それぞ
れレジスタ1、レジスタ2,3,4にセットする。次のサイ
クルでレジスタ2で、アドレス計算の為に必要なベース
レジスタを選択し、レジスタ3でインディクスレジスタ
を選択し、レジスタ17の指示によりアドレス計算の為に
必要な変位をレジスタ4より入力させ、それぞれレジス
タ7,8,9にセットする。
すべて揃いきる場合は、OPcodeとアドレス計算の為に必
要なレジスタのレジスタ番号を示しているフィールド
を、選択回路100より、またアドレス計算で変位として
必要なフィールドを、選択回路101より得られ、それぞ
れレジスタ1、レジスタ2,3,4にセットする。次のサイ
クルでレジスタ2で、アドレス計算の為に必要なベース
レジスタを選択し、レジスタ3でインディクスレジスタ
を選択し、レジスタ17の指示によりアドレス計算の為に
必要な変位をレジスタ4より入力させ、それぞれレジス
タ7,8,9にセットする。
アドレスアダー402はレジスタ7,8,9のデータを入力元
として、アドレス計算を実行する。
として、アドレス計算を実行する。
命令語がすべて揃い切らず、前半2バイト分しか揃わ
なかった場合は、OPcodeとアドレス計算の為に必要なレ
ジスタのレジスタ番号を示しているフィールドが選択回
路100より得られ、それぞれレジスタ1,2,3にセットす
る。変位部分はまだIBF0内に存在していない為、レジス
タ4にはデータをセットする事ができない。また、IBF0
に関しては、IBF0の中に命令が揃い切っていなかった
為、キャリーアウト信号213の指示により記憶装置から
次の8バイトをロードしてくる。次のサイクルでは、命
令語全てが揃いきってはいないが、レジスタ2でアドレ
ス計算の為に必要なベースレジスタを選択し、レジスタ
3でインディクスレジスタを選択し、レジスタ7,8に入
力させる。変位部に関しては、記憶装置からIBF0に新し
いデータをロードしてきたことにより、IBF0の最左端2
バイトに存在している事になる。
なかった場合は、OPcodeとアドレス計算の為に必要なレ
ジスタのレジスタ番号を示しているフィールドが選択回
路100より得られ、それぞれレジスタ1,2,3にセットす
る。変位部分はまだIBF0内に存在していない為、レジス
タ4にはデータをセットする事ができない。また、IBF0
に関しては、IBF0の中に命令が揃い切っていなかった
為、キャリーアウト信号213の指示により記憶装置から
次の8バイトをロードしてくる。次のサイクルでは、命
令語全てが揃いきってはいないが、レジスタ2でアドレ
ス計算の為に必要なベースレジスタを選択し、レジスタ
3でインディクスレジスタを選択し、レジスタ7,8に入
力させる。変位部に関しては、記憶装置からIBF0に新し
いデータをロードしてきたことにより、IBF0の最左端2
バイトに存在している事になる。
この為、フラグ17の指示により、アドレス計算の為の
変位を保持するレジスタ9には、IBF0の最左端2バイト
の中の該当するフィールドを直接入力させることにな
る。
変位を保持するレジスタ9には、IBF0の最左端2バイト
の中の該当するフィールドを直接入力させることにな
る。
アドレスアダー402は、レジスタ7,8,9のデータを入力
元として、アドレス計算を実行する。
元として、アドレス計算を実行する。
6バイト命令の場合は、基本的に、OPcodeより6バイ
ト命令だと判断したならば、IBF0より先ず命令語の前半
4バイト分、つまり第2オペランドのアドレス計算を行
ない、次に後半2バイト分、つまり第1オペランドのア
ドレス計算を行なうこととする。
ト命令だと判断したならば、IBF0より先ず命令語の前半
4バイト分、つまり第2オペランドのアドレス計算を行
ない、次に後半2バイト分、つまり第1オペランドのア
ドレス計算を行なうこととする。
6バイト命令の中で、2バイトしかIBF0に揃ってなか
った場合は、OPcode部分はレジスタ1に、アドレス計算
の為に必要なベースレジスタのレジスタ番号を示してい
るフィールドはレジスタ2に、アドレス計算の為に必要
な変位部の上位4ビットは信号線203を通してレジスタ
4に、選択回路100より出力される。同時に、命令語が
揃いきらなかった為、キャリーアウト信号213の指示に
よりIBF0に記憶装置から次の8バイトを入力させる。
った場合は、OPcode部分はレジスタ1に、アドレス計算
の為に必要なベースレジスタのレジスタ番号を示してい
るフィールドはレジスタ2に、アドレス計算の為に必要
な変位部の上位4ビットは信号線203を通してレジスタ
4に、選択回路100より出力される。同時に、命令語が
揃いきらなかった為、キャリーアウト信号213の指示に
よりIBF0に記憶装置から次の8バイトを入力させる。
次のサイクルでは、レジスタ2よりアドレス計算の為
に必要なベースレジスタを選択し、レジスタ7へ入力さ
せ、アドレス計算の為に必要な変位部分は、上位4ビッ
トはレジスタ4から、下位8ビットはIBF0の最左端から
信号線212とフラグ17の出力を元にした指示信号によ
り、選択回路102を通してレジスタ9に入力させる。
に必要なベースレジスタを選択し、レジスタ7へ入力さ
せ、アドレス計算の為に必要な変位部分は、上位4ビッ
トはレジスタ4から、下位8ビットはIBF0の最左端から
信号線212とフラグ17の出力を元にした指示信号によ
り、選択回路102を通してレジスタ9に入力させる。
アドレスアダー402は、レジスタ7,9のデータを入力元
として、アドレス計算を実行する。
として、アドレス計算を実行する。
以上の例では、アドレス生成を中心にインストラクシ
ョンバッファからインストラクションレジスタに命令語
すべてが揃いきらなくても、OPcodeが揃った段階で命令
の実行を開始させ、不足している分を命令の実行時、必
要となった段階で供給する方法に関して説明してきた
が、アドレス生成以外の事でも、同様の事がいえる事は
明らかである。
ョンバッファからインストラクションレジスタに命令語
すべてが揃いきらなくても、OPcodeが揃った段階で命令
の実行を開始させ、不足している分を命令の実行時、必
要となった段階で供給する方法に関して説明してきた
が、アドレス生成以外の事でも、同様の事がいえる事は
明らかである。
以上説明したように本発明は、加算器で必要バイト数
を計数していくことにより、命令のオペレーションを規
定するフィールドが揃った段階で、命令の実行を開始さ
せ、不足している分は命令の実行時、加算器からのキャ
リーアウトにより、必要となった段階で供給することに
より、インストラクションバッファが空になった時など
命令語すべてが揃いきる事が不可能な場合に、不足分を
記憶装置からロードしてきて、命令語を完全な形に揃い
きってから命令の実行を開始させることよりも、命令処
理の高速化を計ることができる。
を計数していくことにより、命令のオペレーションを規
定するフィールドが揃った段階で、命令の実行を開始さ
せ、不足している分は命令の実行時、加算器からのキャ
リーアウトにより、必要となった段階で供給することに
より、インストラクションバッファが空になった時など
命令語すべてが揃いきる事が不可能な場合に、不足分を
記憶装置からロードしてきて、命令語を完全な形に揃い
きってから命令の実行を開始させることよりも、命令処
理の高速化を計ることができる。
第1図は本発明の一実施例による命令制御方式が適用さ
れるパイプライン処理型電子計算機の構造を示すブロッ
ク図、第2図は第1図で使用されるインストラクション
セットの例を示す図である。 レジスタ……0〜16、選択回路……100〜104、信号線…
…200〜213、レジスタファイル……300〜301、加算器…
…400,402、デコーダ……401。
れるパイプライン処理型電子計算機の構造を示すブロッ
ク図、第2図は第1図で使用されるインストラクション
セットの例を示す図である。 レジスタ……0〜16、選択回路……100〜104、信号線…
…200〜213、レジスタファイル……300〜301、加算器…
…400,402、デコーダ……401。
フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G06F 9/38
Claims (1)
- 【請求項1】記憶装置部から命令を取り出し、一時イン
ストラクションバッファに格納しておき、命令実行時、
該インストラクションバッファからインストラクション
レジスタにロードするパイプライン処理型電子計算機の
命令制御方式において、 命令実行時、加算器で必要バイト数を計数していくこと
により、前記インストラクションレジスタに命令語の全
てが揃いきらなくても、命令のオペレーションを規定す
るフィールドが揃った段階で、該命令の実行を開始させ
る手段と、 命令の実行時に前記インストラクションレジスタに不足
していた部分が必要となった段階で、不足していた部分
を前記加算器からのキャリーアウトにより前記インスト
ラクションレジスタを経由せず、直接必要となった場所
にバイパスする手段とを有する事を特徴とする命令制御
方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63255798A JP2764947B2 (ja) | 1988-10-13 | 1988-10-13 | 命令制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63255798A JP2764947B2 (ja) | 1988-10-13 | 1988-10-13 | 命令制御方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH02103634A JPH02103634A (ja) | 1990-04-16 |
JP2764947B2 true JP2764947B2 (ja) | 1998-06-11 |
Family
ID=17283781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63255798A Expired - Lifetime JP2764947B2 (ja) | 1988-10-13 | 1988-10-13 | 命令制御方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2764947B2 (ja) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61198334A (ja) * | 1985-02-28 | 1986-09-02 | Fujitsu Ltd | 命令分割処理方式 |
JPS6324327A (ja) * | 1986-07-16 | 1988-02-01 | Fujitsu Ltd | 命令フエツチ処理方式 |
-
1988
- 1988-10-13 JP JP63255798A patent/JP2764947B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH02103634A (ja) | 1990-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6502187B1 (en) | Pipeline computer dividing a variable-length data-handling instruction into fixed-length data-handling instructions | |
RU2137183C1 (ru) | Устройство и способ обработки данных с использованием наборов команд | |
US4205370A (en) | Trace method and apparatus for use in a data processing system | |
US6209079B1 (en) | Processor for executing instruction codes of two different lengths and device for inputting the instruction codes | |
JP2810896B2 (ja) | データ処理装置 | |
JPH077385B2 (ja) | データ処理装置 | |
JPH06236268A (ja) | 命令の長さを判定する装置と方法 | |
JPS6124729B2 (ja) | ||
KR920010335B1 (ko) | 마이크로프로세서 및 그것을 사용한 정보처리 장치. | |
US4028670A (en) | Fetch instruction for operand address calculation | |
US5034880A (en) | Apparatus and method for executing a conditional branch instruction | |
JPH03233630A (ja) | 情報処理装置 | |
JPH07239780A (ja) | 1クロック可変長命令実行処理型命令読み込み電子計 算機 | |
JP2764947B2 (ja) | 命令制御方式 | |
US4924377A (en) | Pipelined instruction processor capable of reading dependent operands in parallel | |
JP2690406B2 (ja) | プロセッサおよびデータ処理システム | |
JP3211423B2 (ja) | 分岐命令実行方法および分岐命令実行装置 | |
GB2366426A (en) | Multi-processor system with registers having a common address map | |
EP1050800A1 (en) | A pipelined execution unit | |
JPH0544049B2 (ja) | ||
JPS6230455B2 (ja) | ||
JP2826927B2 (ja) | 演算処理装置および処理方法 | |
JPH1173301A (ja) | 情報処理装置 | |
JPS60134937A (ja) | アドレス拡張装置 | |
JP3523407B2 (ja) | 情報処理装置 |