JPS586972B2 - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JPS586972B2
JPS586972B2 JP54170987A JP17098779A JPS586972B2 JP S586972 B2 JPS586972 B2 JP S586972B2 JP 54170987 A JP54170987 A JP 54170987A JP 17098779 A JP17098779 A JP 17098779A JP S586972 B2 JPS586972 B2 JP S586972B2
Authority
JP
Japan
Prior art keywords
instruction
branch
buffer register
pointer
information processing
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
Application number
JP54170987A
Other languages
English (en)
Other versions
JPS5694444A (en
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP54170987A priority Critical patent/JPS586972B2/ja
Publication of JPS5694444A publication Critical patent/JPS5694444A/ja
Publication of JPS586972B2 publication Critical patent/JPS586972B2/ja
Expired legal-status Critical Current

Links

Description

【発明の詳細な説明】 本発明は情報処理装置に関し、特に、1つまたは複数の
命令バツファレジスタと、該命令バツファレジスタのど
の位置から命令を取り出すべきかを指示するポインタを
有し、該ポインタで指示された位置から命令を順次取り
出して処理を行なう情報処理装置に関する。
第1図に代表的な分岐命令の形式を示す。
図中、OPは、命令の動作コードを示し、マスクフィー
ルドM1は分岐条件を示す。
分岐アドレスは、(X2)+(B2)+D2の和によっ
て求められる。
( )は、レジスタの内容を示す。
第2図aは、パイプライン制御方式における従来の分岐
命令の動作を示し、第2図aのD,R,A,B1、B2
,E1,E2,CK,Wは、それぞれパイプラインの各
ステートを示しており、2サイクル毎に異なった命令が
パイプラインに入る事が出来、そして複数の命令を平行
処理出来るようにされている。
Dは、命令の解読(デコード)を行なうステート、Rは
オペランドアドレスを求めるためのインデックス(X2
)、ベース(B2)の各レジスタ読み出しステート、A
は読み出されたレジスタの内容から(X2)+(B2)
+D2の論理演算を行ない、記憶装置にアクセスするた
めのアドレスを求めるステート、B1,B2は、求めら
れたアドレスを使って記憶装置にアクセスするステート
である。
ただし、分岐命令の場合のB2ステートは、分岐決定を
行なうステートでもある。
E1,E2は、求められたオペランドデータを使って演
算を行なうステート、CKはデータのチェックを行なう
ステート、Wは、各種レジスタに書き込みを行なうステ
ートである。
従来は、分岐先命令の取り出しを、分岐命令のD,R,
A,B1,B2のステートの中で行ない、分岐先命令を
命令バッファに取り込むのがE1ステートであるため、
第2図aに示すように分岐命令の性能は、5サイクルで
あった。
本発明は分岐命令の性能を高めるため、命令バツファの
中の命令先頭位置を示す指標を各々の命令バツファに対
応して持ち、現在の命令位置から数命令後の命令を解読
して、分岐命令であった場合、分岐先命令を先取りする
ことにより、分岐命令な高速に処理することを目的とす
る。
そして、そのため本発明は1つまたは複数の命令バツフ
ァレジスタと、該命令バツファレジスタのどの位置から
命令を取り出すべきかを指示するポインタを有し、該ポ
インタで指示された位置から命令を順次取り出して処理
を行なう情報処理装置において、上記各命令バンファレ
ジスタ内の命令の先頭位置を示す命令バツファレジスタ
内命令位置フラグと、後続命令の先頭位置を示す後続命
令位置フラグをもうけ、命令語を記憶部より読出すごと
に少なくとも該読出された命令語の一部のビットのデコ
ード結果と、当該時点の後続命令位置フラグの値と、す
でにセットされている命令バツファレジスタ内命令位置
フラグの状況によって新たな命令語中の命令先頭位置を
検出し、対応する命令バツファレジスタの命令バツファ
レジスタ内命令位置フラグをセットするとともに、上記
ポインタと上記命令バツファレジスタ内命令位置フラグ
の値によって上記ポインタが指示する現取り出し中の命
令の次命令または数命令後の命令を先行取り出ししてデ
コードし、該先行取り出しした命令が分岐命令の場合は
さらにその分岐先アドレスを計算し、分岐先アドレスか
ら命令を先行読出しするようにしたことを特徴とする。
以下、本発明を図面により説明する。
第2図bは本発明における分岐命令の動作を示す図であ
り、図中、分岐先命令の先取りシーケンスにおけるDP
ステートは分岐先命令の先取りのための分岐命令解読ス
テート、RPステートは分岐先命令のアドレスを求める
ためのインデックス、ベースレジスタの読み出しステー
ト、iはアドレス発生ステート、B1,B2は、記憶装
置からの読み出しステートである。
第2図bに示すように、現在の命令位置が命令0であり
、命令0から数命令後の命令が、分岐命令であった場合
、命令0の1サイクル後に、分岐命令の先取りのために
DPステートを始める。
DPステートで解読された分岐命令が、分岐しない分岐
命令(例えばマスクフィールドM1がオール零)である
場合には、RPステートには進まない。
それ以外の場合、RP,i,B1,B2と進め分岐先命
令を先取りしておく。
この場合、前後の命令、命令0〜3には、何等影響を及
ぼさない。
第3図により後述するように、4つの命令バツファレジ
スタIWR,IWRC,IBR1,IBR0がもうけら
れており、この先取り動作以前に取り込んでおいた第3
図の命令バンファレジスタIWRの内容は、IWRCに
退避させておく。
続いて先取りした分岐先命令をIWRに取り込む。
従がって分岐命令に後続する命令は、IWRC,IBR
I,IBR0に入っており、先取りした分岐先命令は、
IWRに入っている事になる。
分岐命令を実行する時、先取りした分岐先命令が有効で
あれば、分岐命令の後続命令3の1サイクル後に分岐先
命令を始める。
そして分岐命令のB2ステートで処理装置内の分岐条件
とM1フィールドを比較し、分岐するか否かを決定する
従がって分岐を判断するB2ステートまでは、1サイク
ル毎に命令を実行することになる。
B2ステートで分岐判断が決定すれば、分岐判断に従が
って分岐先の命令または命令3のいずれかをキャンセル
し、以後残った片方の命令を続行する。
分岐命令が無条件分岐であれば、分岐命令の2サイクル
後に、分岐先命令を開始する。
先取りした分岐先命令が無効であれば、第2図aの動作
と同じになる。
以上述べた分岐先命令の先取り動作を行なうことによっ
て従来5サイクルかかつていた分岐命令が3サイクル又
は2サイクルに短縮出来る。
さらに、先取りした分岐先命令が、有効である場合には
、分岐命令の分岐先アドレス発生ステート(第2図bの
Aステート)において分岐命令により示される分岐先ア
ドレス(X2)+(B2)+D2にさらに先取りされた
分岐命令長Lを加えて次の命令取り出しを行なう。
実際にはRステートでD2+LをやっておいてAステー
トで(X2及び(B2)と加算する。
このことは、分岐後の命令が命令バツファに大量に入っ
ていることになり、命令処理を間断なく行なう事が出来
る。
次に、第3図は第2図bに示すタイムチャートを実行す
るための本発明による実施例の命令バツファ部のブロッ
ク図であり、図中、1〜4は各々8バイト長の命令バツ
ファレジスタ、5〜8は4つの命令バツファレジスタ内
の命令位置を示すフラグ(IPF)で1命令バツファレ
ジスタに対して4つのフラグを持つものである。
フラグ5が命令バツファレジスタIWR1に、フラグ6
が命令バツファレジスタIWRC2に、フラグ7が命令
バツファレジスタIBR1に、フラグ8が命令バツファ
レジスタIBR0にそれぞれ対応する。
9は次に記憶装置から読出してくる8バイトに対して命
令の先頭位置を予想するフラグ(NEXTIPF)であ
る。
10〜12は4つの命令バツファレジスタのどの位置か
ら命令を取り出すかを指示するポインタ(NSIP)で
あり、このポインタは1つの命令をパイプラインに入れ
るたびに、さらに次の命令を選択するために移行してい
く。
13は後続命令先頭位置検出回路、14は命令位置検出
回路、15は命令選択発生回路、16はセレクタ、18
は命令レジスタ、17はレコーダである。
まず記憶装置からIWR1に入力された8バイトのデー
タを2バイト単位に区切り、各2バイトの先頭の2ビッ
トとNEXT IPF9の値とを命令位置検出回路14
に入力し命令の位置を検出し、IPF5のip12〜i
p15にセットする。
この場合、NEXT IPF9は最初N12のポインタ
がセントされている。
2バイト単位で区切ったのは、命令の最小長が2バイト
であるためであり、各2バイトの先頭の2ビットを識別
するのは各命令中の先頭位置にあるOPコードの最初の
2ビットにより命令長が識別されるためである。
このようにして、例えば、IWR1に2バイト長2の命
令が4個入力されれば、ip12〜ip15はすべて“
1“となり、IWR1に4バイト長の命令が2個入力さ
れればip12とip14が“1“となり、IWR1に
2バイト長の命令が1個と6バイト長の命令が1個入力
されればip12とip13 が“1“となる。
NEXT IPF9は次にIWR1に読出してくる命令
の先頭位置を示すものであり、IPF5内のip12〜
ip15と現在のIWR1の上記各2ビットによって作
成される。
例えば、IPF5内のip14が“1“、ip15が“
0”で、かつ、ip14に対応するIWR1内の2ビッ
トが当該命令が6バイト長であることを示しているとき
、後続命令先頭位置検出回路13の制御により、NEX
T IPF9においてはN13が“1”にセットされる
つまり、この例ではIWR1に、ip14に対応する位
置から4バイト分の命令が入力されているが、残りの2
バイトは次の記憶装置からの読出しでip12に対応す
る位置にセットされるとともに、その次の命令はip1
3対応する位置から始まることを示している。
IPFS内のip12〜ip15は、IWR1の内容が
IWRC2およびIBR1,IBR0とシフトするのに
同期して、IPF6、IPF7、IPF8へシフトして
いく。
したがって、IPF5〜8は4つの命令バツファレジス
タ内のそれぞれの命令位置を示していることになる。
通常、命令を実行する場合には、実行すべき命令はNS
IP10〜12に示される命令バツファレジスタIWR
,IWRC,IBR1,IBR0のいずれかの位置から
セレクタ16を通して選択される。
セレクタ16はNSIP10〜12を入力とする命令選
択発生回路15により制御される。
この選択動作は2サイクル毎に行なわれ、選択された命
令は順次パイプラインに入れられ、第2図b図示のDス
テートより処理が開始される。
一方、分岐先命令を先取りする場合においてはNSIP
10〜12とともにIPF5〜8の内容を命令選択発生
回路15に入力し、セレクタ16を通して命令バツファ
から命令を選択し、デコーダ17に入力し、分岐可能な
命令かどうかを解析する。
そして、分岐可能な命令であった場合、2サイクルの間
隙をぬって、第2図b図示のDPステートより命令デコ
ードを始め、分岐先アドレスを計算して、記憶装置に対
して命令取り出しを行なう。
これらの動作を行なうことにより分岐先命令の先取りを
高速に行なうことが可能となる。
次に、第4図は、本発明による実施例の命令バツファ部
と実効アドレス計算部のブロック図であり、命令を命令
バツファに取込んでから実行アドレスを求めるまでを図
示したものである。
第4図においては、第3図において図示した各種ポイン
タ、フラグ等を省略している。
第4図において、第3図と同一番号のものは同一物、2
0はパイプライン、21はデコーダ、22は汎用レジス
タ、23はインデックスレジスタ(XR)、24はベー
スレジスタ(BR)、25はディスプレースメントレジ
スタ(DR)、26はアドレス計算加算器、27は実効
アドレスレジスタである。
第1図に示す命令のOP部は命令レジスタ18内のAO
に入り、以下同様に、M1はA1に、X2はA2に、B
2はA3に、D2はA4に入る。
X2,B2で示されるレジスタを各々汎用レジスタ22
から読み出し、それぞれXR23、BR24に入力し、
またD2は直接A4からDR25に入力し、アドレス計
算加算器26により加算することにより、実効アドレス
が得られる。
アドレス計算加算器26から出力された実効アドレスは
記憶装置へ送られ、命令の先行読出しが行なわれる。
上記したように、本発明によれば、命令バツファ内の現
在の命令位置から数命令後の命令を解読して分岐命令で
あった場合には、分岐先命令を先取りするようにしたの
で、従来方式と比較して分岐命令を高速に処理すること
ができ、情報処理装置の性能向上を計ることができる。
【図面の簡単な説明】
第1図は分岐命令の形式を示す図、第2図aは従来の分
岐命令の動作を示す図、第2図bは本発明における分岐
命令の動作を示す図、第3図は本発明による実施例の命
令バツファ部のブロック図、第4図は本発明による実施
例の命令バツファ部と実効アドレス計算部のブロック図
である。 第3図において、1〜4は命令バツファレジスタ、5〜
8は命令バツファレジスタ内の命令位置を示すフラグ、
9は次に読出してくる命令の先頭位置を予想するフラグ
、10〜12は命令バツファレジスタのどの位置から命
令を取り出すかを指示するポインタ、13は後読命令先
頭位置検出回路、14は命令位置検出回路、15は命令
選択発生回路、16はセレクタ、18は命令レジスタ、
17はデコーダである。

Claims (1)

  1. 【特許請求の範囲】 1 1つまたは複数の命令バツファレジスタと、該命令
    バツファレジスタのどの位置から命令を取り出すべきか
    を指示するポインタを有し、該ポインタで指示された位
    置から命令を順次取り出して処理を行なう情報処理装置
    において、上記各命令バツファレジスタ内の命令の先頭
    位置を示す命令バツファレジスタ内命令位置フラグと、
    後続命令の先頭位置を示す後続命令位置フラグをもうけ
    、命令語を記憶部より読出すごとに少なくとも該読され
    た命令語の一部のビットのデコード結果と、当該時点の
    後続命令位置フラグの値と、すでにセットされている命
    令バツファレジスタ内命令位置、フラグの状況によって
    新たな命令語中の命令先頭位置を検出し、対応する命令
    バツファレジスタの命令バツファレジスタ内命令位置フ
    ラグをセットするとともに、上記ポインタと上記命令バ
    ツファレジスタ内命令位置フラグの値によって上記ポイ
    ンタが指示する現取り出し中の命令の次命令または数命
    令後の命令を先行取り出ししてデコードし、該先行取り
    出しした命令が分岐命令の場合はさらにその分岐先アド
    レスを計算し、分岐先アドレスから命令を先行読出しす
    るようにしたことを特徴とする情報処理装置。 2 通常、2サイクルにつき1命令または1サブ命令を
    処理するよう構成された情報処理装置において、通常命
    令が上記ポインタにしたがって取り出されるサイクルの
    間隙のサイクルで、現取り出し中の命令の次命令または
    数命令後の命令を上記ポインタと上記命令バツファレジ
    スタ内命令位置フラグの値によって求めて取り出し、通
    常パスの命令とは1サイクルずれて同一の命令選択、デ
    コードおよびアドレス計算のためのハードウエアを共用
    しつつ、分岐先命令の先取りを行なうことを特徴とする
    特許請求の範囲第1項記載の情報処理装置。
JP54170987A 1979-12-28 1979-12-28 情報処理装置 Expired JPS586972B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP54170987A JPS586972B2 (ja) 1979-12-28 1979-12-28 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP54170987A JPS586972B2 (ja) 1979-12-28 1979-12-28 情報処理装置

Publications (2)

Publication Number Publication Date
JPS5694444A JPS5694444A (en) 1981-07-30
JPS586972B2 true JPS586972B2 (ja) 1983-02-07

Family

ID=15915018

Family Applications (1)

Application Number Title Priority Date Filing Date
JP54170987A Expired JPS586972B2 (ja) 1979-12-28 1979-12-28 情報処理装置

Country Status (1)

Country Link
JP (1) JPS586972B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0235525A (ja) * 1988-07-25 1990-02-06 Fujitsu Ltd 命令フェッチ制御方法
JPH07239780A (ja) * 1994-01-06 1995-09-12 Motohiro Kurisu 1クロック可変長命令実行処理型命令読み込み電子計 算機

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4979744A (ja) * 1972-12-08 1974-08-01
JPS49123545A (ja) * 1973-03-30 1974-11-26
JPS5145946A (ja) * 1974-10-17 1976-04-19 Fujitsu Ltd Deetashorishisutemu
JPS51138355A (en) * 1975-05-26 1976-11-29 Hitachi Ltd Processing apparatus with a high speed branching feature

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4979744A (ja) * 1972-12-08 1974-08-01
JPS49123545A (ja) * 1973-03-30 1974-11-26
JPS5145946A (ja) * 1974-10-17 1976-04-19 Fujitsu Ltd Deetashorishisutemu
JPS51138355A (en) * 1975-05-26 1976-11-29 Hitachi Ltd Processing apparatus with a high speed branching feature

Also Published As

Publication number Publication date
JPS5694444A (en) 1981-07-30

Similar Documents

Publication Publication Date Title
US4827402A (en) Branch advanced control apparatus for advanced control of a branch instruction in a data processing system
JPH06236268A (ja) 命令の長さを判定する装置と方法
JP3182438B2 (ja) データプロセッサ
EP0094535B1 (en) Pipe-line data processing system
KR940000027B1 (ko) 생산라인의 고성능 명령어 실행방법 및 장치
JPS586972B2 (ja) 情報処理装置
JPS6411973B2 (ja)
JPS6058489B2 (ja) 分岐命令先行制御方式
JP2812610B2 (ja) パイプライン制御方式
JP3493110B2 (ja) 高速分岐処理装置
JP2503223B2 (ja) 先行制御方式
JPS61288230A (ja) パイプライン制御方式
JP3523407B2 (ja) 情報処理装置
JP2591325B2 (ja) 分岐制御装置
JP3405106B2 (ja) プログラマブルコントローラ
JPS60179844A (ja) 命令再読出し制御方式
KR100515039B1 (ko) 조건부 명령어를 고려한 파이프라인 상태 표시 회로
JPH024011B2 (ja)
JP3851235B2 (ja) 分岐予測装置および分岐予測方法
JPH0581015A (ja) パイプライン演算制御方法およびシステム
JPS61273637A (ja) 情報処理装置
JPH02254541A (ja) 条件分岐命令の制御方式
JPH01271842A (ja) 情報処理装置
JPH0238966B2 (ja)
JPH06301538A (ja) 条件分岐命令処理装置