JPS6212531B2 - - Google Patents
Info
- Publication number
- JPS6212531B2 JPS6212531B2 JP23472882A JP23472882A JPS6212531B2 JP S6212531 B2 JPS6212531 B2 JP S6212531B2 JP 23472882 A JP23472882 A JP 23472882A JP 23472882 A JP23472882 A JP 23472882A JP S6212531 B2 JPS6212531 B2 JP S6212531B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- data
- buffer register
- 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
Links
- 238000000034 method Methods 0.000 claims description 11
- 101100248170 Mus musculus Rfc1 gene Proteins 0.000 description 20
- 238000010586 diagram Methods 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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, look ahead
- G06F9/3802—Instruction prefetching
Description
【発明の詳細な説明】
(1) 発明の技術分野
本発明は電子計算機の制御により主記憶から機
械語命令を取出し、一旦バツフアレジスタに格納
しておき、命令実行時該バツフアレジスタから所
要命令長分だけ取出しインストラクシヨンレジス
タにロードする命令制御方式に関するものであ
る。
械語命令を取出し、一旦バツフアレジスタに格納
しておき、命令実行時該バツフアレジスタから所
要命令長分だけ取出しインストラクシヨンレジス
タにロードする命令制御方式に関するものであ
る。
(2) 従来技術と問題点
一般に、電子計算機の制御により機械語命令の
実行を高速化するため、1命令毎に主記憶から命
令を取出しインストラクシヨンレジスタにロード
する方法は採らず、第1図に示すように、主記憶
1とインストラクシヨンレジスタ(以下I−レジ
スタと略称する)3の間にバツフアレジスタ2を
設け、バツフアレジスタ2から命令長分だけI−
レジスタ3に命令をロードしてから命令を開始す
るとともに、主記憶1に対して命令フエツチオペ
レーシヨンを出してバツフアレジスタ2に命令を
つめてゆくという方式が採られていた。
実行を高速化するため、1命令毎に主記憶から命
令を取出しインストラクシヨンレジスタにロード
する方法は採らず、第1図に示すように、主記憶
1とインストラクシヨンレジスタ(以下I−レジ
スタと略称する)3の間にバツフアレジスタ2を
設け、バツフアレジスタ2から命令長分だけI−
レジスタ3に命令をロードしてから命令を開始す
るとともに、主記憶1に対して命令フエツチオペ
レーシヨンを出してバツフアレジスタ2に命令を
つめてゆくという方式が採られていた。
しかしながら、この方式によると、バツフアレ
ジスタ2内にデータが存在しないと、命令実行動
作はストツプする。そして主記憶1に対して命令
フエツチオペレーシヨンを出して、バツフアレジ
スタ1内に命令長分だけのデータが揃つた後、改
めて命令実行ルーチンが再開されることになる。
このため命令の実行速度が低下するという問題点
があつた。
ジスタ2内にデータが存在しないと、命令実行動
作はストツプする。そして主記憶1に対して命令
フエツチオペレーシヨンを出して、バツフアレジ
スタ1内に命令長分だけのデータが揃つた後、改
めて命令実行ルーチンが再開されることになる。
このため命令の実行速度が低下するという問題点
があつた。
(3) 発明の目的
本発明の目的はバツフアレジスタ内に実行しよ
うとする命令の命令長分だけデータが存在しない
場合でも命令実行動作をストツプせず、処理速度
の向上を図るようにした命令制御方式を提供する
ことである。
うとする命令の命令長分だけデータが存在しない
場合でも命令実行動作をストツプせず、処理速度
の向上を図るようにした命令制御方式を提供する
ことである。
(4) 発明の構成
前記目的を達成するため、本発明の命令制御方
式は電子計算機の制御により主記憶から機械語命
令を取出し、一旦バツフアレジスタに格納してお
き、命令実行時該バツフアレジスタから所要命令
長分だけ取出しインストラクシヨンレジスタにロ
ードする命令制御方式において、命令実行時イン
ストラクシヨンレジスタで必要とする命令長分が
バツフアレジスタに不足していても命令の実行を
開始させ、該実行中に不足分の命令を必要に応じ
主記憶からバツフアレジスタにロードするように
制御することを特徴とするものである。
式は電子計算機の制御により主記憶から機械語命
令を取出し、一旦バツフアレジスタに格納してお
き、命令実行時該バツフアレジスタから所要命令
長分だけ取出しインストラクシヨンレジスタにロ
ードする命令制御方式において、命令実行時イン
ストラクシヨンレジスタで必要とする命令長分が
バツフアレジスタに不足していても命令の実行を
開始させ、該実行中に不足分の命令を必要に応じ
主記憶からバツフアレジスタにロードするように
制御することを特徴とするものである。
(5) 発明の実施例
第2図は本発明の実施例の構成説明図である。
同図において、バツフアレジスタ2には2バイト
長のレジスタ3個で計6バイトもつているものと
し、上位からそれぞれIBF0,IBF1,IBF2と
し、それぞれに有効な命令が入つているかどいう
かを示す1ビツトフラグIBV0,IBV1,IBV2
が設けられる。このフラグがオン(1)であれば対応
するレジスタに有効なデータが入つていることを
示し、オフ(0)であれば対応するレジスタには
無効なデータが入つていることを示す。
同図において、バツフアレジスタ2には2バイト
長のレジスタ3個で計6バイトもつているものと
し、上位からそれぞれIBF0,IBF1,IBF2と
し、それぞれに有効な命令が入つているかどいう
かを示す1ビツトフラグIBV0,IBV1,IBV2
が設けられる。このフラグがオン(1)であれば対応
するレジスタに有効なデータが入つていることを
示し、オフ(0)であれば対応するレジスタには
無効なデータが入つていることを示す。
主記憶1からバツフアレジスタ2へのデータの
転送は4バイト単位で行なわれるものとする。
転送は4バイト単位で行なわれるものとする。
I−レジスタ3は4バイト長レジスタであり、
バイト単位に4区分し、上位からI0,I1,I2,I3と
する。バツフアレジスタ2からI−レジスタ3へ
の命令ロードの対応はIBF0の2バイトはI0,I1
へ、IBF1の2バイトはI2,I3へロードされる。
命令長はバツフアレジスタIBF0の最上位2ビツ
トで表わされるものとし、命令長のタイプは2バ
イト、4バイト、6バイトの3種類とする。
バイト単位に4区分し、上位からI0,I1,I2,I3と
する。バツフアレジスタ2からI−レジスタ3へ
の命令ロードの対応はIBF0の2バイトはI0,I1
へ、IBF1の2バイトはI2,I3へロードされる。
命令長はバツフアレジスタIBF0の最上位2ビツ
トで表わされるものとし、命令長のタイプは2バ
イト、4バイト、6バイトの3種類とする。
バツフアレジスタ2の内容は常にIBF0の方向
へつめておかれる。すなわち、いまIBF0,IBF
1に有効な命令が入つており、IBF2が空である
とする。そしてIBF0の上位2ビツトはこの命令
が4バイト命令であることを示していると、命令
ロードオペレーシヨンでIBF0の内容がI−レジ
スタ3のI0,I1へ、IBF1の内容が同じくI2,I3へ
ロードされ、バツフアレジスタ2のIBF0〜IBF
2は一時的に全部空となる。そして、命令フエツ
チオペレーシヨンにより主記憶1から読込まれた
命令はIBF0とIBF1に入る。この場合IBF1と
IBF2に入ることはない。
へつめておかれる。すなわち、いまIBF0,IBF
1に有効な命令が入つており、IBF2が空である
とする。そしてIBF0の上位2ビツトはこの命令
が4バイト命令であることを示していると、命令
ロードオペレーシヨンでIBF0の内容がI−レジ
スタ3のI0,I1へ、IBF1の内容が同じくI2,I3へ
ロードされ、バツフアレジスタ2のIBF0〜IBF
2は一時的に全部空となる。そして、命令フエツ
チオペレーシヨンにより主記憶1から読込まれた
命令はIBF0とIBF1に入る。この場合IBF1と
IBF2に入ることはない。
一方、IBF0〜IBF2全部に有効な命令が入つ
ており、IBF0の上位2ビツトでこの命令が4バ
イト長命令であることを示していると、命令ロー
ドオペレーシヨンでIBF0の内容がI−レジスタ
3のI0,I1へ、IBF1の内容は同じくI2,I3へロー
ドされる。
ており、IBF0の上位2ビツトでこの命令が4バ
イト長命令であることを示していると、命令ロー
ドオペレーシヨンでIBF0の内容がI−レジスタ
3のI0,I1へ、IBF1の内容は同じくI2,I3へロー
ドされる。
同時にIBF2の内容はIBF0へシフトされ、命
令フエツチオペレーシヨンによる主記憶1からの
読込みデータはIBF1とIBF2に取込まれる。
令フエツチオペレーシヨンによる主記憶1からの
読込みデータはIBF1とIBF2に取込まれる。
以上説明したような基本的な機能を有するバツ
フアレジスタ2とI−レジスタ3を用いて、命令
長が2バイト、4バイト、6バイトの各場合のデ
ータの動きを以下に説明する。
フアレジスタ2とI−レジスタ3を用いて、命令
長が2バイト、4バイト、6バイトの各場合のデ
ータの動きを以下に説明する。
初期値として、バツフアレジスタ2内のレジス
タIBF0〜IBF2のすべてが空の場合、すなわち
それぞれに対応するフラグIBV0〜IBV2がすべ
て0とする。
タIBF0〜IBF2のすべてが空の場合、すなわち
それぞれに対応するフラグIBV0〜IBV2がすべ
て0とする。
主記憶1からは4バイト単位でデータが送られ
てくるので、次のマシンサイクルではレジスタ
IBF0とIBF1に4バイトデータが入る。すなわ
ち、IBV0=1、IBV1=1、IBV2=0とな
る。
てくるので、次のマシンサイクルではレジスタ
IBF0とIBF1に4バイトデータが入る。すなわ
ち、IBV0=1、IBV1=1、IBV2=0とな
る。
また、このサイクルではバツフアレジスタ2内
にデータが入つていなかつたので、バツフアレジ
スタ2からI−レジスタ3への命令のロードは行
なわれない。
にデータが入つていなかつたので、バツフアレジ
スタ2からI−レジスタ3への命令のロードは行
なわれない。
第3図a〜cはこのような初期設定の下に命令
長が4バイト、2バイト、6バイトの各場合につ
いてのデータの遷移の状態を示す。矢印に丸内数
字を付して示す手順はその手順により格納される
行先レジスタを示すものである。
長が4バイト、2バイト、6バイトの各場合につ
いてのデータの遷移の状態を示す。矢印に丸内数
字を付して示す手順はその手順により格納される
行先レジスタを示すものである。
同図aは4バイト命令の場合を示す。初期設定
の次のマシンサイクルで、IBF0の2バイトがI
−レジスタ3のレジスタI0,I1にロードされ〔矢
印〕、IBF1の2バイトがI−レジスタ3のレ
ジスタI2,I3にロードされ〔矢印〕、それぞれ実
行、が開始される。同時に主記憶1からは
IBF0,IBF1に4バイトのデータが入る〔矢印
〕。その結果、フラグはIBV0=1、IBV1=
1、IBV2=0となる。
の次のマシンサイクルで、IBF0の2バイトがI
−レジスタ3のレジスタI0,I1にロードされ〔矢
印〕、IBF1の2バイトがI−レジスタ3のレ
ジスタI2,I3にロードされ〔矢印〕、それぞれ実
行、が開始される。同時に主記憶1からは
IBF0,IBF1に4バイトのデータが入る〔矢印
〕。その結果、フラグはIBV0=1、IBV1=
1、IBV2=0となる。
同図bは2バイト命令の場合を示す。初期設定
の次のマシンサイクルで、IBF0の2バイトがI
−レジスタ3のI0,I1にロードされ〔矢印〕、命
令の実行が開始される。そして、IBF1のデー
タはIBF0に移動する〔矢印〕。これと同時に
主記憶1からはIBF1,IBF2に4バイトのデー
タが入る〔矢印〕。その結果、IBV0=1、IBV
1=1、IBV2=1となる。
の次のマシンサイクルで、IBF0の2バイトがI
−レジスタ3のI0,I1にロードされ〔矢印〕、命
令の実行が開始される。そして、IBF1のデー
タはIBF0に移動する〔矢印〕。これと同時に
主記憶1からはIBF1,IBF2に4バイトのデー
タが入る〔矢印〕。その結果、IBV0=1、IBV
1=1、IBV2=1となる。
以下図示はされないが、動作が継続される場合
を例示すると、 このとき、IBF0の上位2ビツトが4バイト
命令長を示していると、次のマシンサイクルで
IBF0のデータはI−レジスタ3のI0,I1にロ
ードされ、IBF1のデータは同じくI2,I3に入
り命令の実行が関始される。そしてIBF2のデ
ータがIBF0へ移動する。
を例示すると、 このとき、IBF0の上位2ビツトが4バイト
命令長を示していると、次のマシンサイクルで
IBF0のデータはI−レジスタ3のI0,I1にロ
ードされ、IBF1のデータは同じくI2,I3に入
り命令の実行が関始される。そしてIBF2のデ
ータがIBF0へ移動する。
これと同時に主記憶1から4バイトデータが
IBF1,IBF2へ入る。その結果、IBV0=
1、IBV1=1、IBV2=1となる。
IBF1,IBF2へ入る。その結果、IBV0=
1、IBV1=1、IBV2=1となる。
また、このとき、IBF0の上位2ビツトが2
バイト命令長を示していると、次のマシンサイ
クルでIBF0の2バイトはI−レジスタ3の
I0,I1に入り、命令の実行が開始される。同時
にIBF1のデータはIBF0へ、IBF2のデータ
はIBF1へ入る。このとき、バツフアレジスタ
2内にはIBF2の2バイト分しか空がなく、主
記憶1からの4バイトデータの入る余地がない
ので、バツフアレジスタ2内に取込まれない。
その結果、IBV0=1、IBV1=1、IBV2=
0となる。
バイト命令長を示していると、次のマシンサイ
クルでIBF0の2バイトはI−レジスタ3の
I0,I1に入り、命令の実行が開始される。同時
にIBF1のデータはIBF0へ、IBF2のデータ
はIBF1へ入る。このとき、バツフアレジスタ
2内にはIBF2の2バイト分しか空がなく、主
記憶1からの4バイトデータの入る余地がない
ので、バツフアレジスタ2内に取込まれない。
その結果、IBV0=1、IBV1=1、IBV2=
0となる。
同図cは6バイト命令の場合を示す。まず、
IBF0の2バイトがI−レジスタ3のI0,I1に、
IBF1の2バイトが同じくI2,I3へロードされ
〔矢印,〕、実行、が開始される。このと
き、主記憶1から4バイトデータが同時にバツフ
アレジスタ2に取込まれ〔矢印〕、フラグは
IBV0=1、IBV1=1、IBV2=0となる。
IBF0の2バイトがI−レジスタ3のI0,I1に、
IBF1の2バイトが同じくI2,I3へロードされ
〔矢印,〕、実行、が開始される。このと
き、主記憶1から4バイトデータが同時にバツフ
アレジスタ2に取込まれ〔矢印〕、フラグは
IBV0=1、IBV1=1、IBV2=0となる。
そして、残りの2バイトは必要となつた時点で
IBF0の2バイトをI=レジスタ3のI0,I1へロ
ードし〔矢印〕、実行を開始する。このと
き、IBF1のデータはIBF0へ移動し〔矢印〕、
主記憶1からの4バイトデータはIBF1,IBF2
へ入る。〔矢印〕。その結果、IBV0=1、IBV
1=1、IBV2=1となる。
IBF0の2バイトをI=レジスタ3のI0,I1へロ
ードし〔矢印〕、実行を開始する。このと
き、IBF1のデータはIBF0へ移動し〔矢印〕、
主記憶1からの4バイトデータはIBF1,IBF2
へ入る。〔矢印〕。その結果、IBV0=1、IBV
1=1、IBV2=1となる。
上記データ例に示すように、IBF0の上位2ビ
ツトの命令長だけバツフアレジスタ2内に格納さ
れていなくても、まずI−レジスタ3へロードし
て命令の実行が開始され、その間に不足分のデー
タが主記憶1からフエツチされ、バツフアレジス
タ2につめ込まれ、必要に応じI−レジスタにロ
ードして実行する。
ツトの命令長だけバツフアレジスタ2内に格納さ
れていなくても、まずI−レジスタ3へロードし
て命令の実行が開始され、その間に不足分のデー
タが主記憶1からフエツチされ、バツフアレジス
タ2につめ込まれ、必要に応じI−レジスタにロ
ードして実行する。
従来のように、バツフアレジスタに命令長のデ
ータが揃うまでストツプする必要がないから効率
的で高速な命令実行が可能となる。
ータが揃うまでストツプする必要がないから効率
的で高速な命令実行が可能となる。
(6) 発明の効果
以上説明したように、本発明によれば、バツフ
アレジスタ内に実行命令長分のデータが存在しな
い場合でも、現にある命令で実行を開始し、かつ
その実行中に不足分の命令を主記憶からバツフア
レジスタにフエツチしておき、そのデータが必要
となつた時点でそれをバツフアレジスタからI−
レジスタにロードして実行する。これにより実行
停止の回数が減少し、バツフアレジスタを設ける
ことの効果を高めることができる。また、本方式
をとり入れることにより、有限長のバツフアレジ
スタで多バイト長命令の実行を高速化することが
できる。
アレジスタ内に実行命令長分のデータが存在しな
い場合でも、現にある命令で実行を開始し、かつ
その実行中に不足分の命令を主記憶からバツフア
レジスタにフエツチしておき、そのデータが必要
となつた時点でそれをバツフアレジスタからI−
レジスタにロードして実行する。これにより実行
停止の回数が減少し、バツフアレジスタを設ける
ことの効果を高めることができる。また、本方式
をとり入れることにより、有限長のバツフアレジ
スタで多バイト長命令の実行を高速化することが
できる。
第1図は従来例の説明図、第2図は本発明の実
施例の構成説明図、第3図a〜cは実施例の動作
説明図であり、図中1は主記憶、2はバツフアレ
ジスタ、3はインストラクシヨンレジスタ、IBF
0〜IBF2はバツフア内レジスタ、IBV0〜IBV
2はフラグを示す。
施例の構成説明図、第3図a〜cは実施例の動作
説明図であり、図中1は主記憶、2はバツフアレ
ジスタ、3はインストラクシヨンレジスタ、IBF
0〜IBF2はバツフア内レジスタ、IBV0〜IBV
2はフラグを示す。
Claims (1)
- 1 電子計算機の制御により主記憶から機械語命
令を取出し、一旦バツフアレジスタに格納してお
き、命令実行時該バツフアレジスタから所要命令
長分だけ取出しインストラクシヨンレジスタにロ
ードする命令制御方式において、命令実行時イン
ストラクシヨンレジスタに必要とする命令長分が
バツフアレジスタに不足していても命令の実行を
開始させ、該実行中に不足分の命令を必要に応じ
主記憶からバツフアレジスタにロードするように
制御することを特徴とする命令制御方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23472882A JPS59123053A (ja) | 1982-12-28 | 1982-12-28 | 命令制御方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP23472882A JPS59123053A (ja) | 1982-12-28 | 1982-12-28 | 命令制御方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS59123053A JPS59123053A (ja) | 1984-07-16 |
JPS6212531B2 true JPS6212531B2 (ja) | 1987-03-19 |
Family
ID=16975433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP23472882A Granted JPS59123053A (ja) | 1982-12-28 | 1982-12-28 | 命令制御方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS59123053A (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61211743A (ja) * | 1985-03-17 | 1986-09-19 | Fujitsu Ltd | 情報処理装置 |
JPS61211744A (ja) * | 1985-03-18 | 1986-09-19 | Nec Corp | 命令先取り制御装置 |
JPS61224051A (ja) * | 1985-03-29 | 1986-10-04 | Fujitsu Ltd | バッファメモリ制御方法 |
JPH0812601B2 (ja) * | 1985-12-20 | 1996-02-07 | 日本電気株式会社 | データ処理装置 |
US5113515A (en) * | 1989-02-03 | 1992-05-12 | Digital Equipment Corporation | Virtual instruction cache system using length responsive decoded instruction shifting and merging with prefetch buffer outputs to fill instruction buffer |
-
1982
- 1982-12-28 JP JP23472882A patent/JPS59123053A/ja active Granted
Also Published As
Publication number | Publication date |
---|---|
JPS59123053A (ja) | 1984-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4648034A (en) | Busy signal interface between master and slave processors in a computer system | |
US4395757A (en) | Process synchronization utilizing semaphores | |
EP0464615A2 (en) | Microcomputer equipped with DMA controller | |
EP0213842A2 (en) | Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor | |
US5504869A (en) | High speed processing system capable of executing strings of instructions in order without waiting completion of previous memory access instruction | |
JPS6212531B2 (ja) | ||
EP0240606B1 (en) | Pipe-line processing system and microprocessor using the system | |
JPH03233630A (ja) | 情報処理装置 | |
JPS6112289B2 (ja) | ||
EP0385136B1 (en) | Microprocessor cooperating with a coprocessor | |
US5819081A (en) | Method of executing a branch instruction of jumping to a subroutine in a pipeline control system | |
JPH0512751B2 (ja) | ||
JPH0754467B2 (ja) | データ処理装置 | |
JPH0544049B2 (ja) | ||
JP2901247B2 (ja) | 掃出し制御方式 | |
JP2883488B2 (ja) | 命令処理装置 | |
JP2583614B2 (ja) | ベクトル演算装置 | |
JPS6221130B2 (ja) | ||
JPS63163634A (ja) | 命令フエツチ方式 | |
JPS6012656B2 (ja) | リトライ制御方式 | |
JP2883489B2 (ja) | 命令処理装置 | |
JPH0279122A (ja) | 浮動小数点演算機構 | |
JPS607294B2 (ja) | マイクロプログラムロード方式 | |
JPH0530950U (ja) | 情報処理装置 | |
JPH0514288B2 (ja) |