JPH02157939A - 命令処理方法及び命令処理装置 - Google Patents

命令処理方法及び命令処理装置

Info

Publication number
JPH02157939A
JPH02157939A JP31129588A JP31129588A JPH02157939A JP H02157939 A JPH02157939 A JP H02157939A JP 31129588 A JP31129588 A JP 31129588A JP 31129588 A JP31129588 A JP 31129588A JP H02157939 A JPH02157939 A JP H02157939A
Authority
JP
Japan
Prior art keywords
instruction
prefetch
prefetch buffer
branch destination
buffers
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
JP31129588A
Other languages
English (en)
Inventor
Toru Imai
徹 今井
Kenichi Maeda
賢一 前田
Takeshi Aikawa
健 相川
Mitsuo Saito
光男 斎藤
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP31129588A priority Critical patent/JPH02157939A/ja
Publication of JPH02157939A publication Critical patent/JPH02157939A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) 本発明は、計算機命令の先取り、解読及び実行をバイブ
ライン処理により行なう命令処理方法及び命令処理装置
に関する。
(従来の技術) 計算機命令のブリフェッチ、解読及び実行をバイブライ
ン処理していく命令処理方式は、連続した番地に格納さ
れた命令を順次実行する場合に、命令の入力、解読が留
まることなく行われ処理効率の向上が図れる。しかし、
分岐命令が実行されると、先取りされた命令は無効にな
り、新たに飛び先の番号が先取り及び解読されるまで処
理を中断しなければならないため、実行時間の遅延を招
くという問題があった。特に条件分岐命令を含む繰返し
処理の場合には、繰返し数が増えれば増えるほど実行時
間の遅延の影響が大きく現われてくるという問題があっ
た。
(発明が解決しようとする課題) このように、従来のバイブライン方式の命令処理方式で
は、分岐命令が含まれている場合に処理が中断され実行
時間の遅延を招くという問題があった。
本発明は、分岐命令が含まれている場合にも処理が中断
されることがなく、実行時間の短縮化が図れる命令処理
方法及び命令処理装置を提供することを目的とする。
[発明の構成] (課題を解決するための手段) 本発明では、従来の命令セットに加えて、次の2つの命
令を新たに用いている。
第1の命令:複数のプリフェッチバッファのうちの1つ
を指定して分岐先の命令をそのプリフェッチバッファに
先取りする命令。
第2の命令:複数のプリフェッチバッファのうちの1つ
と分岐先とを指定する分岐命令。
更に本発明は、プリフェッチバッファ、命令解読部及び
命令実行部が順次バイブライン処理する命令処理方式に
おいて、先取りされた命令を格納するためのプリフェッ
チバッファを複数備えている。そして、第1の命令が命
令実行部で実行されたら、当該分岐先の命令を指定され
たプリフェッチバッファに格納し、第2の命令が命令解
読部で解読されたら指定されたプリフェッチバッファに
格納された分岐先の命令を前記命令解読部に送出するよ
うにしている。
また、例えば複数のプリフェッチバッファの入力側及び
出力側にはそれぞれ入力選択部及び出力選択部が備えら
れる。人力選択部は、解読された命令が第2の命令であ
る場合、命令実行部の指示に基づきプリフェッチバッフ
ァを選択する。また、出力選択部は、解読された命令が
第1の命令である場合、命令解読部の指示に基づきプリ
フェッチバッファの1つを選択する。
(作用) 本発明によれば、分岐命令に先立って第1の命令を実行
させることにより、複数のプリフェッチバッファのうち
の指定された1つ(通常の先取り処理では用いられない
プリフェッチバッファ)に予め分岐先の命令をブリフェ
ッチしておくことができる。そして、分岐命令として上
記第2の命令を用いることにより、既に命令が先取りさ
れているプリフェッチバッファを指定して、直ちに分岐
先の命令を命令解読部に送出すことができる。
このため、本発明によれば分岐命令実行時に処理が中断
することなく連続した命令処理が行われ処理速度の向上
が図れる。
(実施例) 以下、図面を参照しながら本発明の詳細な説明する。
第1図は本発明の一実施例に係る命令処理装置の構成を
示す図である。
プログラムカウンタ1は、図示しない命令記憶部から取
出すべき命令が格納されたアドレスを指定する。プログ
ラムカウンタ1で指定されたアドレスは命令入力部2に
与えられている。命令入力部2は命令記憶部からプログ
ラムカウンタ1で指定されたアドレスの命令を先取りす
る。先取りされた命令は、プリフェッチバッファ入力選
択部3に与えられている。プリフェッチバッファ入力選
択部3は、プリフェッチバッファ41 + 42 +4
3、・・・+4nのうちの一つを選択して上記先取りさ
れた命令を出力する。プリフェッチバッファ41〜4n
はそれぞれがブリフェッチされた命令を格納し得るもの
である。これらプリフェッチバッファ41〜4nのうち
、例えばプリフェッチバッファ41は、分岐先の命令以
外の通常の命令を格納し、最も頻繁に用いられる。また
、プリフェッチバッファ42〜4nは、分岐先の命令を
それぞれ格納し、分岐命令の実行時等に適宜選択されて
用いられる。これらプリフェッチバッファ41〜4nの
出力はプリフェッチバッファ出力選択部5に与えられて
いる。このプリフェッチバッファ出力選択部5は各プリ
フェッチバッファ41〜4nに先取りされた命令のうち
の一つを選択して取出し、命令解読部6に出力する。命
令解読部6は入力された命令をデコードしその結果を命
令実行部7に出力する。またこの命令解釈部6はデコー
ドされた命令がブランチ(分岐)命令である場合には、
プログラムカウンタ1の内容を書替えるとともにプリフ
ェッチバッファ出力選択部5に第1の選択信号としての
識別子を出力する。命令実行部7は命令解釈部6でデコ
ードされた命令を実行するとともに、命令実行終了に伴
ってプログラムカウンタ1の値を更新する。また、命令
実行部7は、実行された命令が分岐先の命令の先取り命
令である場合には、プリフェッチバッファ入力選択部3
に第2の選択信号としての識別子を出力していずれか一
つのプリフェッチバッファ42〜4nを選択し、分岐先
の命令をロードする。
以上の構成において、複数のプリフェッチバッファ41
〜4nの入力及び出力を選択するための入力選択部3及
び出力選択部5は、例えば第2図及び第3図に示すよう
に構成することができる。
なお、ここでは−例としてプリフェッチバッファが4つ
の例を示している。
プリフェッチバッファ人力選択部3は、第2図に示すよ
うに、命令人力部2から与えられる命令を通過させるた
めの4つのゲート111,11□。
113.114と、命令実行部7から与えられる2ビツ
トの識別子をデコードして上記ゲート11、〜114の
うちの1つのみを“開゛状態にさせるためのインバータ
121.122及びANDゲー)131,132,13
3,134からなるデコーダ14とから構成されている
また、プリフェッチバッファ出力選択部5もプリフェッ
チバッファ入力選択部3とほぼ同様の構成となっており
、第3図に示すように、プリフェッチバッファ41〜4
nから取出された命令を通過させるための4つのゲート
211,212゜213.214と、命令解読部6から
与えられる2ビツトの識別子をデコードして上記ゲート
211〜214のうちの1つのみを“開”状態にさせる
ためのインバータ221.222及びANDゲート23
1.232.233.234からなるデコーダ24とか
ら構成されている。
次に上記のように構成された本実施例の命令処理装置の
動作について説明する。
第4図は、条件分岐を含む繰返し処理を実行するための
プログラム例であり、同図(a)は従来のプログラム例
、同図(b)は(a)に対応した本発明におけるプログ
ラム例である。このプログラムはSで表わされる位置か
ら連続する文字列をdで表わされる位置にコピーするた
めのプログラムで、コピーする文字列はOで終了してい
る。つまり、Sで表わされる位置から1文字ずつコピー
を行ない、もしその文字が0であったら、処理を終了す
るプログラムである。第4図(a)における各命令の意
味は次の通りである。
命令(1):コピーする文字列の先頭番地Sをレジスタ
R1にロードする。
命令(2)二叉字列がコピーされる位置の先頭番地をレ
ジスタR2にロードする。
命令(3):レジスタR1に格納されている番地のデー
タをレジスタR3にロードし、その後レジスタR1の内
容に1を加える。
命令(4):レジスタR3の内容をレジスタR2に格納
されている番地に格納し、その後レジスタR2の内容に
1を加える。
命令(5):レジスタR3の内容と0とを比較し、もし
両者が等しかったらコンデイションコードとしてゼロフ
ラグをセットする。
命令(B):ゼロフラグがセットされていなければ″ 
1oop”に飛ぶ。
次にこの従来例の処理を第5図(a)に基づいて説明す
る。なお図中Fはブリフェッチ、Dは解読、Eは実行の
各サイクルを示し、添字は命令番号に対応している。
第1クロツクでは命令(1)がブリフェッチされ、第2
クロツクでは命令(1)の解読と命令(2)のブリフェ
ッチとが同時に行われる。第3クロツクでは、命令(1
)の実行と命令(2)の解読と命令(3)のブリフェッ
チとが同時に行われる。以下同様にしてパイプライン処
理が行われる。ここで命令(3)はメモリアクセスを伴
う命令であり、その結果ロードされる値を直後の命令(
4)で使用するため、その実行には2クロツクかかるが
、他の命令は全て1クロツクで終了する。また、第8ク
ロツクで命令(6)が解読されると、この命令(6)が
分岐命令であることが判明し、次の第9クロツクで分U
の命令(3)をフェッチし直さなければならない。した
がって、この従来例では初期状態でのフェッチと解読に
2クロツクを要し、後は6クロツクの繰返しとなる。こ
のため、m文字の文字列をコピーする際に費やされるク
ロック数は、6m+2クロツクということになる。
これに対し、第4図(b)に示した本発明のプログラム
では、以下のような新たな命令 (2)′ が追加され
、命令(6)を命令(6)′に変更している。
命令(2)’  ニプリフェッチバッファ入力選択部3
に識別子“2”を与え、これにより選択されたプリフェ
ッチバッファ42に、1oopで表わされる番地の命令
(命令(3))をロードする。
命令(6)’  :ゼロフラグがセットされていなけれ
ばプログラムカウンタ1が“ Ioop+ 4 ”  
(命令(4)のアドレス)にセットされるとともに、プ
リフェッチバッファ出力選択部5に対し、識別子“2”
を与える。
さて、このプログラムを実行する場合、まず初期状態で
はプリフェッチバッファ入力選択部3及び出力選択部5
はプリフェッチバッファ41を選択する。続いて第5図
(b)に示す如く、第1クロツクで命令入力部2により
命令(1)をブリフェッチし、これをプリフェッチバッ
ファ入力選択部3を介してプリフェッチバッファ41に
格納する。
第2クロツクでは、命令(2)がプリフェッチバッファ
41に格納され、命令(1)が命令解読部6で解読され
る。第3クロツクでは、命令(2)′がプリフェッチバ
ッファ41に格納され、命令(2)が命令解読部6で解
読され、命令(1)が命令実行部7で実行される。以後
同様にバイブライン処理が行われる。第5クロツクでは
、命令(2)′が実行され、命令実行部7からプリフェ
ッチバッファ入力選択部3に識別子“2”が与えられ、
これによりプリフェッチバッファ42に命令(3)が格
納される。第9クロツクで分岐命令(B)′が解読され
ると、命令解読部6は、プログラムカウンタ1を1oo
p+ 4にセットするとともに、プリフェッチバッファ
出力選択部5に識別子“2°を出力する。
これにより、プリフェッチバッファ42に格納されてい
る命令(3)が命令解読部6に取出され、次の第10ク
ロツクで、直ちにその解読を行なうことが可能となる。
この実施例によれば、第5図(b)に示すように、命令
(2)′が追加され分だけ最初の処理に3クロツクを要
しているが、分岐命令解読後に分岐先の命令をプリフェ
ッチバッファ42から直ちに取出せるので、第10クロ
ツク以後の繰返し処理は5クロツクしか必要としない。
このため、m文字の文字列をコピーするのに要するクロ
ック数は5 (m−1)+6+3=5m+4となる。し
たがって文字数が3文字以上であれば本実施例の処理時
間は従来の処理時間よりも短くなり、文字数が増加すれ
ばするほど処理時間は短縮されることになる。
次に第6図に示したC言語記述によるプログラム例につ
いて本発明と従来例とを比較する。このプログラムは、
サイズNXNの2次元配列aの全要素を0に初期化する
ための関数1n1t1allzc()を定義したプログ
ラムである。但し、ここでN−20とする。
第7図(a)はこのプログラムのアセンブラによる従来
のプログラム構成例である。
命令(21) 〜(23) :レジスタrz、 ra、
 rlにそれぞれ配列データの初期値0、配列名a1配
列添字iの初期値0をロードする。
命令(25)〜(27) :命令(15)に相当する部
分で、配列添字iがN以上の場合にはElにブランチし
、そうでなければレジスタrjに配列添字jの初期値を
ロードする。
命令(29)〜(36) :命令(113)、 (17
)に相当する部分で、配列添字jがN以上の場合にはE
Jにブランチし、そうでなければ配列添字i、3に基づ
き1次元配列に変換された配列aの該当箇所にレジスタ
「2の値(0)を格納する。そして配列添字jに1を加
算してBJにブランチする。
命令(38)〜(39) :命令(14)の一部に相当
し、配列添字iに1を加算してB1にブランチする。
このプログラム例では繰返し処理の度にブランチする分
岐命令として命令(36)と命令(39)、その他の分
岐命令として命令(2B)、命令(30)を備えている
が、これらを含めて条件が成立しない場合の必要クロッ
ク数は、(9N+6)N+3となる。
これに対し、第7図(b)に本発明によるプログラムを
示す。この例では、新たに命令(20)aと命令(20
)bとを追加し、命令(36)と命令(39)をそれぞ
れ命令 (36)  と命令 (39)  とに変更し
ている。これにより、命令(20)aでプリフェッチバ
ッファ42に分岐先B1の命令がロードされとともに、
命令(20)bでプリフェッチバッファ43に分岐先B
Jの命令がロードされ、更に分岐命令(38) ’でプ
リフェッチバッファ43から分岐先BJの命令を直ちに
命令解読部6に取込み、分岐命令(39) ’でプリフ
ェッチバッファ42から分岐先B1の命令を直ちに命令
解読部6に取込める。
従って、本実施例によれば、最初の処理に5クロツクを
要するものの、BJ−EJの処理を8クロツク、EJ−
Elの処理を2クロツクとすることができるので、全体
の処理に要するクロック数は、(8N+5)N+5とす
ることができる。因みに、N −128とした場合、第
6図(a)の従来の処理では148227クロツクかか
っていたものが、同図(b)の本実施例の処理では13
1717クロツクと大幅に処理クロック数を短縮するこ
とができる。
なお、本発明は上述した実施例に限定されるものではな
い。例えばプリフェッチバッファに格納されている命令
のアドレスを格納する連想記憶装置を設け、ブランチ命
令実行時にはプリフェッチバッファ出力選択部によりプ
リフェッチバッファを選択すると同時に連想記憶装置に
格納されているアドレスをプログラムカウンタにセット
するようにしても良い。
[発明の効果コ 以上述べたように、本発明によれば、プリフェッチバッ
ファを複数設け、計算機命令に従って分岐先の命令を指
定されたプリフェッチバッファに格納するとともに、分
岐命令実行時には次に読出すプリフェッチバッファを指
定するようにしているので、分岐命令時の待ち時間が発
生せず連続した処理が行なえる。このため、特に繰返し
の度に分岐が発生するようなプログラムの処理を従来に
比べて大幅に短縮することができる。
【図面の簡単な説明】
第1図は本発明の一実施例に係る命令処理装置のブロッ
ク図、第2図は同装置におけるプリフェッチバッファ人
力選択部の詳細ブロック図、第3図は同装置におけるプ
リフェッチバッファ出力選択部の詳細ブロック図、第4
図は同装置に適用されるプログラムを従来と比較して示
す図、第5図は同プログラムの処理状況を従来例と比較
して示す図、第6図は同装置に適用される他のプログラ
ムのC言語による表記を示す図、第7図は同プログラム
のアセンブラプログラムを従来と比較して示す図である
。 1・・・プログラムカウンタ、2・・・命令入力部、3
・・・プリフェッチバッファ入力選択部、41〜4nブ
リフエツチバツフア、 5・・・ブリフェッチ フ ァ出力選択部、 ・・・命令解読部、 命令実行部。

Claims (2)

    【特許請求の範囲】
  1. (1)先取りされた命令を格納する複数のプリフェッチ
    バッファと、これらプリフェッチバッファに格納された
    命令を解読する命令解読部と、この命令解読部で解読さ
    れた命令を実行する命令実行部とをパイプライン動作さ
    せて命令処理を行なう命令処理方法において、 前記複数のプリフェッチバッファのうちの1つを指定し
    て分岐先の命令をそのプリフェッチバッファに先取りさ
    せるための命令が前記命令実行部で実行されたら、当該
    分岐先の命令を指定されたプリフェッチバッファに格納
    し、 前記複数のプリフェッチバッファのうちの1つと分岐先
    とを指定する分岐命令が解読されたら指定されたプリフ
    ェッチバッファに格納された分岐先の命令を前記命令解
    読部に送出すことを特徴とする命令処理方法。
  2. (2)先取りされた命令を格納する複数のプリフェッチ
    バッファと、 これらプリフェッチバッファのうち命令を格納すべきプ
    リフェッチバッファを選択する入力選択部と、 前記複数のプリフェッチバッファのうち先取りされた命
    令を取出すべきプリフェッチバッファを選択する出力選
    択部と、 この出力選択部で選択されたプリフェッチバッファから
    取出された命令を解読するとともに、解読された命令が
    前記複数のプリフェッチバッファのうちの1つと分岐先
    とを指定する分岐命令である場合、指定されたプリフェ
    ッチバッファに格納された分岐先の命令を取出すべく前
    記出力選択部に第1の選択信号を出力する命令解読部と
    、この命令解読部で解読された命令を実行するとともに
    、解読された命令が前記複数のプリフェッチバッファの
    うちの1つを指定して分岐先の命令をそのプリフェッチ
    バッファに先取りする旨の命令である場合、当該分岐先
    の命令を指定されたプリフェッチバッファに格納すべく
    前記入力選択部に第2の選択信号を出力する命令実行部
    とを具備したことを特徴とする命令処理装置。
JP31129588A 1988-12-09 1988-12-09 命令処理方法及び命令処理装置 Pending JPH02157939A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31129588A JPH02157939A (ja) 1988-12-09 1988-12-09 命令処理方法及び命令処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31129588A JPH02157939A (ja) 1988-12-09 1988-12-09 命令処理方法及び命令処理装置

Publications (1)

Publication Number Publication Date
JPH02157939A true JPH02157939A (ja) 1990-06-18

Family

ID=18015413

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31129588A Pending JPH02157939A (ja) 1988-12-09 1988-12-09 命令処理方法及び命令処理装置

Country Status (1)

Country Link
JP (1) JPH02157939A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08286914A (ja) * 1995-04-07 1996-11-01 Nec Corp メモリ制御装置
JP2001147807A (ja) * 1999-10-01 2001-05-29 Hitachi Ltd 改良された分岐制御命令を利用するためのマイクロプロセッサ、分岐目標命令メモリ、命令ロード制御回路、パイプラインへの命令供給維持方法、分岐制御メモリ、およびプロセッサ
JP2002073330A (ja) * 2000-08-28 2002-03-12 Mitsubishi Electric Corp データ処理装置
JP2005284814A (ja) * 2004-03-30 2005-10-13 Nec Electronics Corp パイプライン方式の情報処理装置及び情報処理方法
WO2006112190A1 (ja) * 2005-04-08 2006-10-26 Matsushita Electric Industrial Co., Ltd. プロセッサ

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08286914A (ja) * 1995-04-07 1996-11-01 Nec Corp メモリ制御装置
JP2001147807A (ja) * 1999-10-01 2001-05-29 Hitachi Ltd 改良された分岐制御命令を利用するためのマイクロプロセッサ、分岐目標命令メモリ、命令ロード制御回路、パイプラインへの命令供給維持方法、分岐制御メモリ、およびプロセッサ
JP2002073330A (ja) * 2000-08-28 2002-03-12 Mitsubishi Electric Corp データ処理装置
US7694109B2 (en) 2000-08-28 2010-04-06 Renesas Technology Corp. Data processing apparatus of high speed process using memory of low speed and low power consumption
JP2005284814A (ja) * 2004-03-30 2005-10-13 Nec Electronics Corp パイプライン方式の情報処理装置及び情報処理方法
WO2006112190A1 (ja) * 2005-04-08 2006-10-26 Matsushita Electric Industrial Co., Ltd. プロセッサ
EP1868081A4 (en) * 2005-04-08 2008-08-13 Matsushita Electric Industrial Co Ltd PROCESSOR
JP2009104643A (ja) * 2005-04-08 2009-05-14 Panasonic Corp プロセッサ

Similar Documents

Publication Publication Date Title
EP0071028B1 (en) Instructionshandling unit in a data processing system with instruction substitution and method of operation
FI90804B (fi) Dataprosessorin ohjausyksikkö, jolla on käskyn esihaun uudelleensuuntausta käyttävä keskeytyspalvelu
JP2504830Y2 (ja) デ―タ処理装置
KR100346515B1 (ko) 수퍼파이프라인된수퍼스칼라프로세서를위한임시파이프라인레지스터파일
EP0488819B1 (en) Conditional branch instructions execution apparatus
JPS62235658A (ja) キヤツシユ・メモリ制御方式
EP1241567A2 (en) Method and apparatus for executing coprocessor instructions
JPH02227730A (ja) データ処理システム
US5784607A (en) Apparatus and method for exception handling during micro code string instructions
JPH0527971A (ja) 情報処理装置
JPH0673105B2 (ja) 命令パイプライン方式のマイクロプロセッサ
US4430708A (en) Digital computer for executing instructions in three time-multiplexed portions
JPH03233630A (ja) 情報処理装置
JPH0512751B2 (ja)
JPH0193825A (ja) プリフェッチキュー制御方式
US7983894B2 (en) Data processing
JP2687765B2 (ja) 分岐予測方式
JPS61288230A (ja) パイプライン制御方式
JP2545594B2 (ja) オペランドデータ先取り方式
JPH07191845A (ja) 即値データ転送装置
JPS6134188B2 (ja)
JPS63293638A (ja) データ処理装置
JPS6126089B2 (ja)
JPH05250156A (ja) Riscプロセッサ
JPS6047618B2 (ja) 情報処理装置