JP2636192B2 - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JP2636192B2
JP2636192B2 JP6316732A JP31673294A JP2636192B2 JP 2636192 B2 JP2636192 B2 JP 2636192B2 JP 6316732 A JP6316732 A JP 6316732A JP 31673294 A JP31673294 A JP 31673294A JP 2636192 B2 JP2636192 B2 JP 2636192B2
Authority
JP
Japan
Prior art keywords
branch
instruction
address
output
register
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
Application number
JP6316732A
Other languages
English (en)
Other versions
JPH08171492A (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 Computertechno Ltd
Original Assignee
NEC Computertechno 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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP6316732A priority Critical patent/JP2636192B2/ja
Publication of JPH08171492A publication Critical patent/JPH08171492A/ja
Application granted granted Critical
Publication of JP2636192B2 publication Critical patent/JP2636192B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は情報処理装置に関し、特
にパイプライン制御および命令先取り制御が行なわれる
情報処理装置の条件分岐命令処理時の処理速度を向上さ
せた情報処理装置に関する。
【0002】
【従来の技術】パイプライン処理方式を採用した情報処
理装置においては、一つの命令の実行の完了を待たずに
実行ステージが空けば次々と後続の命令を投入してその
実行を開始する。このことによって性能の増大を図って
いる。
【0003】しかし、しばしば先行する命令の実行結果
が後続の命令の実行に影響を与えることによって、先行
する命令が実行されるのを待たなければ後続の命令の実
行が開始できない様な場合には、パイブラインの処理に
乱れを生じ、性能の低下を引き起こす原因となる。この
代表的な例が条件分岐命令である。
【0004】そこで、例えば条件分岐命令を実行する場
合にもその分岐の成立、不成立が判明する以前に分岐不
成立の際の後続の命令、あるいは、分岐成立の際の分岐
先の命令の実行を開始することが考えられる。
【0005】この場合に条件分岐命令に続いてパイプラ
インに投入する命令を決定する好ましい1つの手段とし
ては、過去に同一の条件分岐命令を実行したときにそれ
が成立したか否かを記憶しておいて、それと同一の結果
となるものとして予測する方法などがある。 しかしな
がら、条件分岐命令を実行した結果が必ずしも予測通り
であるとは限らない。このような場合には、既にパイプ
ラインに投入されて実行を開始した命令をキャンセルす
る必要が出てくる。
【0006】勿論上記の予測を行なうことなく処理を実
行してゆく方式、すなわち、パイプライン上には、通
常、条件分岐命令の分岐不成立側の命令を流しておき、
分岐不成立側の命令の実行には、常に遅れを生じないよ
うにしておく。そして、分岐成立の場合における分岐成
立側の命令取り出しは分岐判定が確定した後に行なって
処理を進める場合でも、分岐が成立すると、上記と同様
に既にパイプラインに投入されて実行を開始した命令を
キャンセルする必要が生ずる。
【0007】この方式の例について図面を参照して説明
する。
【0008】プログラムの命令シーケンスとして、図4
(a)に示すように、命令a、b、c、d、eおよびf
の順に記載されており、このうち、命令bを条件分岐命
令とし、分岐が成立したときには、条件分岐命令bの次
に分岐先命令であるe以降の命令が実行され、分岐が不
成立のときには条件分岐命令bの次の命令である命令c
以降の命令が実行される。そして、パイプライン上に
は、通常、条件分岐命令の分岐不成立側の命令を流して
おき、分岐不成立側の命令の実行には、常に遅れを生じ
ないようにしている。分岐成立の場合における分岐成立
側の命令取り出しは分岐判定が確定した後に行ない分岐
成立から1クロックサイクル遅れてパイプラインに投入
されるものとする。
【0009】図4(c)には分岐不成立の場合のパイプ
ラインの動作タイミングチャートが示してある。命令a
は最初命令デコード・分岐判定を行なうDステージに供
給され、以下オペランドアドレス生成を行なうAステー
ジ、オペランド取り出し・演算を行なうOステージ、オ
ペランド格納を行なうWステージをへて実行される。命
令aがDステージからAステージに移行するとDステー
ジは空きになるので次の命令が直ちにDステージに供給
されその処理を開始する。このようにして、クロックの
供給に応答してパイプラインには1命令づつ新たな命令
が供給されパイプライン処理が行なわれる。そして、パ
イプライン上には、通常、条件分岐命令の分岐不成立側
の命令を供給しているので、条件分岐命令bでのDステ
ージにおける分岐判定が分岐不成立を示す場合には分岐
不成立に伴なう処置は何等ないため、パイプライン動作
は何等遅れを生ずることなく、図4(c)に示すよう
に、命令a、b、c、d、eおよびfの順に実行され
る。
【0010】図4(b)には分岐成立の場合のパイプラ
インの動作タイミングチャートが示してある。この場合
には条件分岐命令bのDステージへの供給に応答してD
ステージでは分岐判定が行なわれ分岐成立と判定され
る。その後、分岐先の命令である命令eを取り出し分岐
成立から1クロックサイクル遅れてパイプラインに投入
されるが、この間に分岐不成立の場合の命令cがパイプ
ラインに供給されることとなるので、この実行をキャン
セルし、図4(b)に示すように、命令a、b、e、お
よびfの順に実行される。そして、条件分岐命令bのパ
イプラインへの供給後、1クロックサイクル遅れて分岐
先命令eが供給されることとなる。
【0011】
【発明が解決しようとする課題】以上のように従来の情
報処理装置においては、これに使用される条件分岐命令
では分岐条件判定結果とは反して先行された命令の実行
をキャンセルしなければならず、少なくともそのキャン
セルされた時間だけ処理時間が遅れるという問題点があ
る。
【0012】本発明の目的は、条件分岐命令とこの直前
の命令または命令群との間に相互関係がない場合にはそ
の実行順序を交換して、この条件分岐命令に分岐キャン
セルを行なわない条件分岐命令を使用することにより、
キャンセルによる遅れをなくし、処理速度を格段に向上
できる情報処理装置を提供することにある。
【0013】
【課題を解決するための手段】第1の発明の情報処理装
置は、命令セットとして分岐キャンセルを行なわない第
1の条件分岐命令と分岐キャンセルを行なう第2の条件
分岐命令とを用意し、命令語を記憶する命令レジスタ
と、前記命令レジスタの出力データをデコードしてキャ
ンセル動作の有効無効を示すキャンセル有効信号と分岐
動作の有効無効を示す分岐有効信号とをそれぞれ出力す
るデコーダと、前記命令レジスタの分岐条件フイールド
と外部からの分岐条件とにより分岐判定を行ない分岐成
立分岐不成立を示す分岐判定結果を出力する分岐判定手
段と、前記第2の条件分岐命令の供給に応答して前記デ
コーダの出力する有効を示すキャンセル有効信号と前記
分岐判定手段の出力する分岐成立を示す分岐判定結果と
から分岐キャンセルの動作の有効を示す分岐キャンセル
信号を出力する分岐キャンセル信号生成手段と、前記第
1または第2の条件分岐命令の供給に応答して前記デコ
ーダの出力する有効を示す分岐有効信号と前記分岐判定
手段の出力する分岐判定結果とから分岐成立の場合には
第1の選択信号を出力し分岐不成立の場合には第2の選
択信号を出力する選択信号生成手段と、前記第1の選択
信号により分岐先命令アドレスを選択し前記第2の選択
信号により次命令アドレスを選択する選択手段と、前記
選択手段で選択されたアドレスを記憶するアドレスレジ
スタと、前記アドレスレジスタから出力するアドレスに
より命令語を読み出す記憶手段と、前記分岐キャンセル
の動作の有効を示す分岐キャンセル信号により前記読み
出された命令語の前記命令レジスタへの格納を阻止する
命令語キャンセル手段とを含んで構成し、実行されるプ
ログラムは予め条件分岐命令とこの直前の命令との間に
相互関係がない場合にはその実行順序を交換してこの条
件分岐命令に第1の条件分岐命令を使用し条件分岐命令
とこの直前の命令との間に相互関係がある場合にはこの
条件分岐命令に第2の条件分岐命令を使用していること
を特徴としている。
【0014】第2の発明の情報処理装置は、命令セット
として分岐キャンセルを行なわない第1の条件分岐命令
と分岐キャンセルを行なう第2の条件分岐命令とを用意
し、命令語を記憶する命令レジスタと、前記命令レジス
タの出力データをデコードしてキャンセル動作の有効無
効を示すキャンセル有効信号と分岐動作の有効無効を示
す分岐有効信号とをそれぞれ出力するデコーダと、前記
命令レジスタの分岐条件フイールドと外部からの分岐条
件とにより分岐判定を行ない分岐成立分岐不成立を示す
分岐判定結果を出力する分岐判定手段と、前記第2の条
件分岐命令の供給に応答して前記デコーダの出力する有
効を示すキャンセル有効信号と前記分岐判定手段の出力
する分岐成立を示す分岐判定結果とから分岐キャンセル
の動作の有効を示す分岐キャンセル信号を出力する分岐
キャンセル信号生成手段と、前記分岐キャンセル信号を
入力とするn(nは1以上の整数)段の第1のシフトレ
ジスタと、前記第1または第2の条件分岐命令の供給に
応答して前記デコーダの出力する有効を示す分岐有効信
号と前記分岐判定手段の出力する分岐判定結果とから分
岐成立の場合には第1の選択信号を出力し分岐不成立の
場合には第2の選択信号を出力する選択信号生成手段
と、前記選択信号生成手段からの信号を入力とするn
(nは1以上の整数)段の第2のシフトレジスタと、前
記第2のシフトレジスタからの前記第1の選択信号によ
り分岐先命令アドレスを選択し前記第2の選択信号によ
り次命令アドレスを選択する選択手段と、前記選択手段
で選択されたアドレスを記憶するアドレスレジスタと、
前記アドレスレジスタから出力するアドレスにより命令
語を読み出す記憶手段とを含んで構成し、実行されるプ
ログラムは予め条件分岐命令とこの直前の相続く(n+
1)個の命令からなる命令群との間に相互関係がない場
合にはその実行順序を交換してこの条件分岐命令に第1
の条件分岐命令を使用し条件分岐命令とこの直前の相続
く(n+1)個の命令からなる命令群との間に相互関係
がある場合にはこの条件分岐命令に第2の条件分岐命令
を使用していることを特徴としている。
【0015】
【実施例】本発明の情報処理装置においては、条件分岐
の分岐成立の場合における分岐成立側の分岐先命令の取
り出しを分岐判定が確立した後に行ない分岐成立から遅
れてパイプラインに投入されるとした場合、条件分岐命
令とこの命令の直前の命令または命令群との間に相互関
係がない場合には、その実行順序を交換して実行させる
ことにより分岐条件判定を先に行なわせることにより、
分岐成立時に生ずる条件分岐命令と分岐先命令との間の
供給遅れに起因するパイプラインの処理時間の遅れをな
くすようにしている。
【0016】上述のようにして、本発明の情報処理装置
においては、条件分岐命令とこの命令の直前の命令また
は命令群との間に相互関係がない場合には、従来のよう
な先行命令の実行のキャンセルの要はないので、これに
使用する条件分岐命令としては、分岐キャンセルを行な
わない第1の条件分岐命令を使用し、それ以外の場合の
条件分岐命令としては、分岐キャンセルを行なう第2の
条件分岐命令を使用することとしている。そして本発明
の装置で実行するプログラムはプログラム作成時に予め
第1の条件分岐命令と第2の条件分岐命令との上記のよ
うな使い分けをプログラマが行なって作成されている。
【0017】次に、本発明の第1の実施例について図面
を参照して説明する。
【0018】図1は本発明の情報処理装置の第1の実施
例を示すブロック図である。
【0019】第1の実施例の情報処理装置は、図1に示
すように、命令語100を記憶する命令レジスタ1と、
命令レジスタ1の出力データ200が分岐キャンセルを
行なう第2の条件分岐命令であるとキャンセル有効信号
300をキャンセルの有効を示す″1″とし、出力デー
タ200が分岐キャンセルを行なう第2の条件分岐命令
または分岐キャンセルを行なわない第1の条件分岐命令
であると分岐有効信号301を分岐の有効を示す″1″
にするデコーダ2と、命令レジスタ1に格納されている
命令の分岐条件フイールド201と外部から与えられる
分岐条件310とにより分岐判定を行ない分岐成立時に
は分岐判定結果400を分岐成立を示す″1″にして出
力する分岐判定回路3と、キャンセル有効信号300と
分岐判定結果400との論理積を取り分岐キャンセルが
有効の場合にはそのことを示す″1″なる分岐キャンセ
ル信号500を出力する論理積回路40と、分岐有効信
号301と分岐判定結果400との論理積を取り選択信
号501を出力する論理積回路41と、選択信号501
が″1″であると分岐先命令アドレス510を選択し選
択信号501が″0″であると次命令アドレス511を
選択する選択回路5と、選択回路5で選択された読み出
しアドレス600を記憶するアドレスレジスタ6と、ア
ドレスレジスタ6から出力するアドレス700により命
令語100を読み出す記憶回路7とを含んで構成されて
いる。
【0020】第1の実施例は分岐成立の場合における分
岐成立側の命令取り出しは分岐判定が確定した後に行な
い分岐成立から1クロックサイクル遅れてパイプライン
に投入される場合に使用して効果を発揮する。
【0021】先ず、前述の図4(a)のプログラムにお
ける命令aと次命令である条件分岐命令bとの間には相
互関係(命令bが命令aの結果を利用する等)がなく、
命令の組み替えが可能である第1の場合についての第1
の実施例の動作について説明する。
【0022】この第1の場合には、プログラムの命令シ
ーケンスを命令aと命令bとの実行順序を入れ換えてプ
ログラムの命令シーケンスを図3(a)のように命令
b、a、c、d、e、fのように記述し、命令bには分
岐キャンセルを行なわない第1の条件分岐命令を使用す
る。
【0023】さらに、第1の場合を分岐成立の場合であ
る第1−1の場合と、分岐不成立の場合である第1−2
の場合とに場合分けして説明する。
【0024】第1−1の場合には、命令レジスタ1に
は、最初に実行する分岐キャンセルを行なわない第1の
条件分岐命令bが記憶され、次命令aのアドレスがアド
レスレジスタ6に記憶されている。また、分岐条件フイ
ールド201と分岐条件310は、分岐成立となる値が
指定されている。
【0025】このような状態では、命令レジスタ1の出
力データ200で示された命令語が分岐キャンセルを行
なわない第1の条件分岐命令bであるので、デコーダ2
の出力するキャンセル有効信号300は″0″となり、
分岐有効信号301は″1″となる。分岐判定回路3で
は、分岐条件フイールド201と分岐条件310との分
岐判定により分岐成立と判定され分岐判定結果400
に″1″を出力する。これにより、論理積回路40の出
力する分岐キャンセル信号500は″0″となり、論理
積回路41の出力する選択信号501は″1″となる。
選択信号501が″1″であると、選択回路5では、分
岐先命令アドレス510(この場合には命令eのアドレ
ス)が選択され、読み出しアドレス600として出力さ
れ、アドレスレジスタ6から出力されていた命令aのア
ドレス700により記憶回路7から読み出されていた命
令aが命令レジスタ1に供給されている。
【0026】かかる状態で次のクロックが到来すると、
読み出しアドレス600(命令eのアドレス)がアドレ
スレジスタ6へ記憶され、アドレスレジスタ6から出力
されていた命令aのアドレス700により記憶回路7か
ら読み出されていた命令aが命令レジスタ1に格納され
る。
【0027】命令レジスタ1の出力データ200で示さ
れた命令語が命令aであると、デコーダ2の出力するキ
ャンセル有効信号300および分岐有効信号301は共
に″0″となる。これにより、論理積回路40の出力す
る分岐キャンセル信号500および論理積回路41の出
力する選択信号501は、共に″0″となる。そして、
選択信号501が″0″となると、選択回路5では、次
命令アドレス511で示された分岐先命令eの次の命令
fのアドレスが選択され、読み出しアドレス600とし
てアドレスレジスタ6へ出力され、アドレスレジスタ6
から出力される分岐先命令eのアドレス700により記
憶回路7から分岐先命令eが読み出され命令レジスタ1
に供給される。
【0028】次のクロックが到来すると、読み出しアド
レス600(命令fのアドレス)がアドレスレジスタ6
へ記憶され、アドレスレジスタ6から出力されていた分
岐先命令eのアドレス700により記憶回路7から読み
出されていた分岐先命令eが命令レジスタ1に格納され
る。
【0029】このような状態では、命令レジスタ1の出
力データ200で示された命令語が分岐先命令eである
ので、デコーダ2の出力するキャンセル有効信号300
および分岐有効信号301は共に″0″となる。これに
より、論理積回路40の出力する分岐キャンセル信号5
00および論理積回路41の出力する選択信号501
は、共に″0″となる。そして、選択信号501が″
0″となると、選択回路5では、次命令アドレス511
で示された命令fの次の命令のアドレスが選択され、読
み出しアドレス600としてアドレスレジスタ6へ出力
され、アドレスレジスタ6から出力される命令fのアド
レス700により記憶回路7から命令fが読み出され命
令レジスタ1に供給される。
【0030】以上のようにして、命令レジスタ1に格納
される命令の順序は、条件分岐命令b、命令a、分岐先
命令e、命令fとなり、これはパイプラインに供給され
る命令の順であり、その動作タイミングチャートは図3
(b)に示す通りであり、パイプライン処理の遅れは生
じない。
【0031】次に、第1の場合で分岐不成立の場合であ
る第1−2の場合について説明する。
【0032】第1−2の場合には、当初は第1−1の場
合と同じように、命令レジスタ1には、最初に実行する
分岐キャンセルを行なわない第1の条件分岐命令bが記
憶され、次命令aのアドレスがアドレスレジスタ6に記
憶されている。しかし、分岐条件フイールド201と分
岐条件310は、分岐不成立となる値が指定されてい
る。
【0033】このような状態では、命令レジスタ1の出
力データ200で示された命令語が分岐キャンセルを行
なわない第1の条件分岐命令bであるので、デコーダ2
の出力するキャンセル有効信号300は″0″となり、
分岐有効信号301は″1″となる。分岐判定回路3で
は、分岐条件フイールド201と分岐条件310との分
岐判定により分岐不成立と判定され分岐判定結果400
に″0″を出力する。そして、論理積回路40の出力す
る分岐キャンセル信号500および論理積回路41の出
力する選択信号501は共に″0″となる。選択信号5
01が″0″であると、選択回路5では、次命令アドレ
ス511(この場合には命令aの次の命令cのアドレ
ス)が選択され、読み出しアドレス600として出力さ
れ、アドレスレジスタ6から出力されていた命令aのア
ドレス700により記憶回路7から読み出されていた命
令aが命令レジスタ1に供給されている。
【0034】かかる状態で次のクロックが到来すると、
読み出しアドレス600(命令cのアドレス)がアドレ
スレジスタ6へ記憶され、アドレスレジスタ6から出力
されていた命令aのアドレス700により記憶回路7か
ら読み出されていた命令aが命令レジスタ1に格納され
る。
【0035】命令レジスタ1の出力データ200で示さ
れた命令語が命令aであると、デコーダ2の出力するキ
ャンセル有効信号300および分岐有効信号301は共
に″0″となる。これにより、論理積回路40の出力す
る分岐キャンセル信号500および論理積回路41の出
力する選択信号501は、共に″0″となる。そして、
選択信号501が″0″となると、選択回路5では、次
命令アドレス511で示された命令cの次の命令dのア
ドレスが選択され、読み出しアドレス600としてアド
レスレジスタ6へ出力され、アドレスレジスタ6から出
力されていた命令cのアドレス700により記憶回路7
から命令cが読み出され命令レジスタ1に供給される。
【0036】次のクロックが到来すると、読み出しアド
レス600(命令dのアドレス)がアドレスレジスタ6
へ記憶され、アドレスレジスタ6から出力されていた命
令cのアドレス700により記憶回路7から読み出され
ていた命令cが命令レジスタ1に格納される。以下命令
d、e、fの命令レジスタ1への格納も同様に行なわれ
る。
【0037】以上のようにして、命令レジスタ1に格納
される命令の順序は、条件分岐命令b、命令a、c、
d、e、fとなり、これはパイプラインに供給される命
令の順であり、その動作タイミングチャートは図3
(c)に示す通りであり、パイプライン処理の遅れは生
じない。
【0038】このようにして、プログラムにおける命令
aと次命令である条件分岐命令bとの間には相互関係
(命令bが命令aの結果を利用する等)がなく、命令の
組み替えが可能である第1の場合には、プログラムの命
令シーケンスを命令aと命令bとの実行順序を入れ換え
てプログラムの命令シーケンスを命令b、a、c、d、
e、fのように記述し、命令bには分岐キャンセルを行
なわない第1の条件分岐命令を使用することにより第1
の実施例の情報処理装置ではパイプライン処理の遅れは
生じない。
【0039】次に、第1の場合とは異なって、図4
(a)のプログラムにおける命令aと次命令である条件
分岐命令bとの間には相互関係(命令bが命令aの結果
を利用する等)があって、命令の組み替えが不可能であ
る第2の場合についての第1の実施例の動作について説
明する。
【0040】この第2の場合には、プログラムの命令シ
ーケンスは命令a、b、c、d、e、fの順であり、命
令bには分岐キャンセルを行なう第2の条件分岐命令を
使用する。
【0041】さらに、第2の場合を分岐成立の場合であ
る第2−1の場合と、分岐不成立の場合である第2−2
の場合とに場合分けして説明する。
【0042】第2−1の場合には、命令レジスタ1に
は、最初に実行す命令aが記憶され、次命令である分岐
キャンセルを行なう第2の条件分岐命令bのアドレスが
アドレスレジスタ6に記憶されている。また、条件分岐
命令実行時、分岐条件フイールド201と分岐条件31
0とには、分岐成立となる値が指定される。
【0043】このような状態では、命令レジスタ1の出
力データ200で示された命令語が命令aであるので、
デコーダ2の出力するキャンセル有効信号300および
分岐有効信号301は共に″0″となる。これにより、
論理積回路40の出力する分岐キャンセル信号500お
よび論理積回路41の出力する選択信号501は、共
に″0″となる。そして、選択信号501が″0″とな
ると、選択回路5では、次命令アドレス511で示され
た命令cのアドレスが選択され、読み出しアドレス60
0としてアドレスレジスタ6へ出力され、アドレスレジ
スタ6から出力されていた分岐キャンセルを行なう第2
の条件分岐命令bのアドレス700により記憶回路7か
ら読み出されていた分岐キャンセルを行なう第2の条件
分岐命令bが命令レジスタ1に供給されている。
【0044】次のクロックが到来すると、読み出しアド
レス600(命令cのアドレス)がアドレスレジスタ6
へ記憶され、アドレスレジスタ6から出力されていた分
岐キャンセルを行なう第2の条件分岐命令bのアドレス
700により記憶回路7から読み出されていた分岐キャ
ンセルを行なう第2の条件分岐命令bが命令レジスタ1
に格納される。
【0045】命令レジスタ1の出力データ200で示さ
れた命令語が分岐キャンセルを行なう第2の条件分岐命
令bであると、デコーダ2の出力するキャンセル有効信
号300および分岐有効信号301は、共に″1″とな
る。分岐判定回路3では、分岐条件フイールド201と
分岐条件310との分岐判定により分岐成立と判定され
分岐判定結果400に″1″を出力する。そして、論理
積回路40の出力する分岐キャンセル信号500は″
1″となり、アドレスレジスタ6から出力されていた次
命令cのアドレス700により記憶回路7から読み出さ
れる命令cの実行のキャンセルに使用される。また、論
理積回路41の出力する選択信号501は″1″となる
ので、選択回路5では、分岐先命令アドレス510(こ
の場合には命令eのアドレス)が選択され、読み出しア
ドレス600として出力される。
【0046】次のクロックが到来すると、読み出しアド
レス600(分岐先命令eのアドレス)がアドレスレジ
スタ6へ記憶され、アドレスレジスタ6から出力されて
いた命令cのアドレス700により記憶回路7から読み
出されていた命令cは命令レジスタ1への格納される
が、上述の″1″なる分岐キャンセル信号500がパイ
プライン処理部門に送られ先行実行されている命令cを
キャンセルするのに使用される。このキャンセル動作は
従来技術で慣用されている技術により行なわれる。
【0047】このような状態では、命令レジスタ1の出
力データ200で示された命令語が命令cであるので、
デコーダ2の出力するキャンセル有効信号300および
分岐有効信号301は共に″0″となる。これにより、
論理積回路40の出力する分岐キャンセル信号500お
よび論理積回路41の出力する選択信号501は、共
に″0″となる。そして、選択信号501が″0″とな
ると、選択回路5では、次命令アドレス511で示され
た命令fのアドレスが選択され、読み出しアドレス60
0としてアドレスレジスタ6へ出力され、アドレスレジ
スタ6から出力されていた分岐先命令eアドレス700
により記憶回路7から読み出されていた分岐先命令eが
命令レジスタ1に供給されている。
【0048】次のクロックが到来すると、読み出しアド
レス600(命令fのアドレス)がアドレスレジスタ6
へ記憶され、アドレスレジスタ6から出力されていた分
岐先命令eのアドレス700により記憶回路7から読み
出されていた分岐先命令eが命令レジスタ1に格納され
る。
【0049】このような状態では、命令レジスタ1の出
力データ200で示された命令語が分岐先命令eである
ので、デコーダ2の出力するキャンセル有効信号300
および分岐有効信号301は共に″0″となる。これに
より、論理積回路40の出力する分岐キャンセル信号5
00および論理積回路41の出力する選択信号501
は、共に″0″となる。そして、選択信号501が″
0″となると、選択回路5では、次命令アドレス511
で示された命令fの次の命令のアドレスが選択され、読
み出しアドレス600としてアドレスレジスタ6へ出力
され、アドレスレジスタ6から出力されていた命令fの
アドレス700により記憶回路7から命令fが読み出さ
れ命令レジスタ1に供給されている。
【0050】以上のようにして、命令レジスタ1に格納
される命令の順序は、命令a、条件分岐命令b、命令
c、分岐先命令e、命令fとなり、これはパイプライン
に供給される命令の順であるが、命令cの実行は上述の
ように分岐キャンセル信号500によりパイプライン上
でキャンセルされるので、その動作タイミングチャート
は図4(b)に示す通り従来例と同じであり、パイプラ
イン処理には1クロックサイクルの遅れを生ずる。
【0051】次に、第2の場合で分岐不成立の場合であ
る第2−2の場合について説明する。
【0052】第2−2の場合には、当初は第2−1の場
合と同じように、命令レジスタ1には、最初に実行す命
令aが記憶され、次命令である分岐キャンセルを行なう
第2の条件分岐命令bのアドレスがアドレスレジスタ6
に記憶されている。しかし、条件分岐命令実行時、分岐
条件フイールド201と分岐条件310とには、分岐不
成立となる値が指定される。
【0053】このような状態では、命令レジスタ1の出
力データ200で示された命令語が命令aであるので、
デコーダ2の出力するキャンセル有効信号300および
分岐有効信号301は共に″0″となる。これにより、
論理積回路40の出力する分岐キャンセル信号500お
よび論理積回路41の出力する選択信号501は、共
に″0″となる。そして、選択信号501が″0″とな
ると、選択回路5では、次命令アドレス511で示され
た命令cのアドレスが選択され、読み出しアドレス60
0としてアドレスレジスタ6へ出力され、アドレスレジ
スタ6から出力されていた分岐キャンセルを行なう第2
の条件分岐命令bのアドレス700により記憶回路7か
ら読み出されていた分岐キャンセルを行なう第2の条件
分岐命令bが命令レジスタ1に供給されている。
【0054】次のクロックが到来すると、読み出しアド
レス600(命令cのアドレス)がアドレスレジスタ6
へ記憶され、アドレスレジスタ6から出力されていた分
岐キャンセルを行なう第2の条件分岐命令bのアドレス
700により記憶回路7から読み出されていた分岐キャ
ンセルを行なう第2の条件分岐命令bが命令レジスタ1
に格納される。
【0055】命令レジスタ1の出力データ200で示さ
れた命令語が分岐キャンセルを行なう第2の条件分岐命
令bであると、デコーダ2の出力するキャンセル有効信
号300および分岐有効信号301は、共に″1″とな
る。分岐判定回路3では、分岐条件フイールド201と
分岐条件310の分岐判定により分岐不成立と判定され
分岐判定結果400に″0″を出力する。そして、論理
積回路40の出力する分岐キャンセル信号500および
論理積回路41の出力する選択信号501は共に″0″
となる。選択信号501が″0″であると、選択回路5
では、次命令アドレス511(この場合には命令dのア
ドレス)が選択され、読み出しアドレス600として出
力され、アドレスレジスタ6から出力されていた命令c
のアドレス700により記憶回路7から命令cが読み出
され命令レジスタ1に供給される。
【0056】かかる状態で次のクロックが到来すると、
読み出しアドレス600(命令dのアドレス)がアドレ
スレジスタ6へ記憶され、アドレスレジスタ6から出力
されていた命令cのアドレス700により記憶回路7か
ら読み出されていた命令cが命令レジスタ1に格納され
る。以下命令d、e、fの命令レジスタ1への格納も同
様に行なわれる。
【0057】以上のようにして、命令レジスタ1に格納
される命令の順序は、命令a、条件分岐命令b、命令
c、命令d、命令e、命令fとなり、これはパイプライ
ンに供給される命令の順であり、その動作タイミングチ
ャートは図4(c)に示す通り従来例と同じであり、パ
イプライン処理の遅れは生じない。
【0058】このようにして、プログラムにおける命令
aと次命令である条件分岐命令bとの間には相互関係
(命令bが命令aの結果を利用する等)があり、命令の
組み替えが不可能である第2の場合には、命令bに分岐
キャンセルを行なう第2の条件分岐命令を使用すること
により第1の実施例の情報処理装置では分岐成立の場合
のみパイプライン処理に1クロックサイクルの遅れが生
ずるが、これは従来と同じである。
【0059】以上説明したように、第1の実施例の情報
処理装置では、プログラムにおける命令aと次命令であ
る条件分岐命令bとの間には相互関係(命令bが命令a
の結果を利用する等)がなく、命令の組み替えが可能で
ある第1の場合には、プログラムの命令シーケンスを命
令aと命令bとの実行順序を入れ換えてプログラムの命
令シーケンスを命令b、a、c、d、e、fのように記
述し、命令bには分岐キャンセルを行なわない第1の条
件分岐命令を使用することによりパイプライン処理の遅
れをなくし、処理速度を格段に向上できるという効果を
有する。
【0060】次に本発明の第2の実施例について図面を
参照して説明する。
【0061】図2は本発明の情報処理装置の第2の実施
例を示すブロック図である。
【0062】第2の実施例と第1の実施例との構成上の
相違は論理積回路40の出力である分岐キャンセル信号
500はn段のシフトレジスタ8を介してパイプライン
の実行キャンセルに使用され、論理積回路41の出力で
ある選択信号501もn(nは1以上の整数)段のシフ
トレジスタ9を介して選択回路5に供給されることで、
それ以外は同じである。
【0063】第2の実施例は分岐成立の場合における分
岐成立側の命令取り出しは分岐判定が確定した後に行な
い、分岐成立から(n+1)クロックサイクル遅れてパ
イプラインに投入される場合に使用して効果を発揮す
る。すなわち、選択回路5に供給される分岐先命令アド
レスのタイミングが第1の実施例の場合に比し遅れる場
合となる。
【0064】このような場合で、プログラム上で条件分
岐命令bと、その直前の相続く(n+1)個の命令から
なる命令群Mとの間には相互関係がない場合に条件分岐
命令bと命令群Mとの実行順序を組み替えて命令シーケ
ンスを条件分岐命令bの次に命令群Mを記述し条件分岐
命令bには分岐キャンセルを行なわない第1の条件分岐
命令を使用することにより、パイプライン処理の遅れを
なくし、処理速度を格段に向上できることとなる。
【0065】これは、分岐キャンセルを行なわない第1
の条件分岐命令bの実行により分岐成立の場合には分岐
先命令を取り出すことになり、それには(n+1)クロ
ックサイクルの遅れを要するが、その間は次命令として
記述されている命令群Mのうちのn個の命令アドレスが
シフトレジスタ9から出力される選択信号501により
選択回路5で選択されて次々とアドレスレジスタ6に供
給され、さらに、命令レジスタ1にセットされ実行され
る。そして、分岐成立により″1″になった選択信号5
01はシフトレジスタ9によりその後の第n番目のクロ
ックで選択回路5に供給され分岐先命令アドレスを選択
してアドレスレジスタ6に供給し、この分岐先命令アド
レスが第(n+1)番目のクロックでアドレスレジスタ
6にセットされて記憶回路7から分岐先命令が読み出さ
れ第(n+2)番目のクロックによりこの分岐先命令が
命令レジスタ1にセットされるようになる。その間の
(n+1)個のクロックにより命令群Mの(n+1)個
の命令が上述のように命令レジスタ1にセットされ実行
されているので、パイプライン処理の遅れは生じないの
である。
【0066】しかし、第2の実施例でも、プログラム上
で条件分岐命令bと、その直前の相続く(n+1)個の
命令からなる命令群Mとの間には相互関係がある場合に
は、命令シーケンスをそのままとし、かつ、条件分岐命
令bには分岐キャンセルを行なう第2の条件分岐命令を
使用する。
【0067】この場合で分岐キャンセルを行なう第2の
条件分岐命令bの実行により分岐成立の場合には分岐先
命令を取り出すことになり、それには(n+1)クロッ
クサイクルの遅れを要するが、その間は次命令として記
述されているn個の命令の命令アドレスがシフトレジス
タ9から出力される選択信号501により選択回路5で
選択されて次々とアドレスレジスタ6に供給され、さら
に、命令レジスタ1にセットされ実行される。そして、
分岐成立により″1″になった選択信号501はシフト
レジスタ9によりその後の第n番目のクロックで選択回
路5に供給され分岐先命令アドレスを選択してアドレス
レジスタ6に供給し、この分岐先命令アドレスが第(n
+1)番目のクロックでアドレスレジスタ6にセットさ
れて記憶回路7から分岐先命令が読み出され第(n+
2)番目のクロックによりこの分岐先命令が命令レジス
タ1にセットされるようになる。その間の(n+1)個
のクロックにより(n+1)個の命令が上述のように命
令レジスタ1にセットされ先行実行されているので、分
岐成立により″1″になった分岐キャンセル信号500
はその後のn個のクロックでシフトレジスタ8を経てパ
イプライン処理部門に送られ先行実行されている(n+
1)個の命令をキャンセルするのに使用される。このキ
ャンセル動作は第1の実施例と同様に従来技術で慣用さ
れている技術により行なわれる。
【0068】また、第2の実施例では第1の実施例と同
様に、選択回路5には次々と分岐不成立の場合の次命令
アドレス511が供給されているので、第2の実施例で
の分岐不成立の場合には、第1の条件分岐命令を使用し
ている場合でも、第2の条件分岐命令を使用している場
合でも、第1の実施例と同様に従来の技術と同じくパイ
プラインの処理に遅れを生ずることはない。
【0069】以上説明したように、第2の実施例の情報
処理装置では、プログラムにおける命令群Mと次命令で
ある条件分岐命令bとの間には相互関係がなく、命令の
組み替えが可能である場合には、プログラムの命令シー
ケンスの実行順序を入れ換えて、命令bには分岐キャン
セルを行なわない第1の条件分岐命令を使用することに
よりパイプライン処理の遅れをなくし、処理速度を格段
に向上できるという効果を有する。
【0070】上記の実施例の説明では、キャンセル有効
信号、分岐有効信号はそれぞれ2値信号の1つである″
1″を有効を、″0″を無効を示すこととしており、そ
れに従って分岐キャンセル信号は分岐キャンセルを行な
うとき、すなわち分岐キャンセルが有効のときを2値信
号の1つである″1″を使用している。また分岐判定結
果は分岐成立のときは2値信号の1つである″1″を、
分岐不成立のときは″0″を出力するとしている。
【0071】しかしながら本発明はこれに限るものでは
ない。各信号への有効、無効に対する2値信号値の割当
てに応じて論理積回路40や41を他の論理回路(例え
ばインバータの使用等)で構成して、実施例で説明した
分岐キャンセルを有効にする分岐キャンセル信号および
選択信号の値により動作する選択回路の選択動作の態様
を実施例のように構成することは当業者の容易に実施で
きることは自明である。
【0072】
【発明の効果】以上説明したように、本発明の情報処理
装置は、条件分岐命令とこの直前の命令または命令群と
の間に相互関係がない場合にはその実行順序を交換し
て、この条件分岐命令に分岐キャンセルを行なわない条
件分岐命令を使用することにより、キャンセルによる遅
れをなくし、処理速度を格段に向上できるという効果を
有している。
【図面の簡単な説明】
【図1】本発明の情報処理装置の第1の実施例を示すブ
ロック図である。
【図2】本発明の情報処理装置の第2の実施例を示すブ
ロック図である。
【図3】第1の実施例の情報処理装置における分岐キャ
ンセルを行なう条件分岐命令bを使用した場合を示す図
であり、(a)はプログラムの命令シーケンス図、
(b)は分岐成立時の動作タイミングチャート、(c)
は分岐不成立時の動作タイミングチャートである。
【図4】従来例および第1の実施例の情報処理装置にお
ける分岐キャンセルを行なわない条件分岐命令bを使用
した場合を示す図であり、(a)はプログラムの命令シ
ーケンス図、(b)は分岐成立時の動作タイミングチャ
ート、(c)は分岐不成立時の動作タイミングチャート
である。
【符号の説明】
1 命令レジスタ 2 デコーダ 3 分岐回路 5 選択回路 6 アドレスレジスタ 7 記憶回路 8、9 シフトレジスタ 40、41 論理積回路 100 命令語 200 出力データ 201 分岐条件フイールド 300 キャンセル有効信号 301 分岐有効信号 310 分岐条件 400 分岐判定結果 500 分岐キャンセル信号 501 選択信号 510 分岐先命令アドレス 511 次命令アドレス 600 読み出しアドレス 700 アドレス

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 命令セットとして分岐キャンセルを行な
    わない第1の条件分岐命令と分岐キャンセルを行なう第
    2の条件分岐命令とを用意し、命令語を記憶する命令レ
    ジスタと、前記命令レジスタの出力データをデコードし
    てキャンセル動作の有効無効を示すキャンセル有効信号
    と分岐動作の有効無効を示す分岐有効信号とをそれぞれ
    出力するデコーダと、前記命令レジスタの分岐条件フイ
    ールドと外部からの分岐条件とにより分岐判定を行ない
    分岐成立分岐不成立を示す分岐判定結果を出力する分岐
    判定手段と、前記第2の条件分岐命令の供給に応答して
    前記デコーダの出力する有効を示すキャンセル有効信号
    と前記分岐判定手段の出力する分岐成立を示す分岐判定
    結果とから分岐キャンセルの動作の有効を示す分岐キャ
    ンセル信号を出力する分岐キャンセル信号生成手段と、
    前記第1または第2の条件分岐命令の供給に応答して前
    記デコーダの出力する有効を示す分岐有効信号と前記分
    岐判定手段の出力する分岐判定結果とから分岐成立の場
    合には第1の選択信号を出力し分岐不成立の場合には第
    2の選択信号を出力する選択信号生成手段と、前記第1
    の選択信号により分岐先命令アドレスを選択し前記第2
    の選択信号により次命令アドレスを選択する選択手段
    と、前記選択手段で選択されたアドレスを記憶するアド
    レスレジスタと、前記アドレスレジスタから出力するア
    ドレスにより命令語を読み出す記憶手段とを含んで構成
    し、実行されるプログラムは予め条件分岐命令とこの直
    前の命令との間に相互関係がない場合にはその実行順序
    を交換してこの条件分岐命令に第1の条件分岐命令を使
    用し条件分岐命令とこの直前の命令との間に相互関係が
    ある場合にはこの条件分岐命令に第2の条件分岐命令を
    使用していることを特徴とする情報処理装置。
  2. 【請求項2】 命令セットとして分岐キャンセルを行な
    わない第1の条件分岐命令と分岐キャンセルを行なう第
    2の条件分岐命令とを用意し、命令語を記憶する命令レ
    ジスタと、前記命令レジスタの出力データをデコードし
    てキャンセル動作の有効無効を示すキャンセル有効信号
    と分岐動作の有効無効を示す分岐有効信号とをそれぞれ
    出力するデコーダと、前記命令レジスタの分岐条件フイ
    ールドと外部からの分岐条件とにより分岐判定を行ない
    分岐成立分岐不成立を示す分岐判定結果を出力する分岐
    判定手段と、前記第2の条件分岐命令の供給に応答して
    前記デコーダの出力する有効を示すキャンセル有効信号
    と前記分岐判定手段の出力する分岐成立を示す分岐判定
    結果とから分岐キャンセルの動作の有効を示す分岐キャ
    ンセル信号を出力する分岐キャンセル信号生成手段と、
    前記分岐キャンセル信号を入力とするn(nは1以上の
    整数)段の第1のシフトレジスタと、前記第1または第
    2の条件分岐命令の供給に応答して前記デコーダの出力
    する有効を示す分岐有効信号と前記分岐判定手段の出力
    する分岐判定結果とから分岐成立の場合には第1の選択
    信号を出力し分岐不成立の場合には第2の選択信号を出
    力する選択信号生成手段と、前記選択信号生成手段から
    の信号を入力とするn(nは1以上の整数)段の第2の
    シフトレジスタと、前記第2のシフトレジスタからの前
    記第1の選択信号により分岐先命令アドレスを選択し前
    記第2の選択信号により次命令アドレスを選択する選択
    手段と、前記選択手段で選択されたアドレスを記憶する
    アドレスレジスタと、前記アドレスレジスタから出力す
    るアドレスにより命令語を読み出す記憶手段とを含んで
    構成し、実行されるプログラムは予め条件分岐命令とこ
    の直前の相続く(n+1)個の命令からなる命令群との
    間に相互関係がない場合にはその実行順序を交換してこ
    の条件分岐命令に第1の条件分岐命令を使用し条件分岐
    命令とこの直前の相続く(n+1)個の命令からなる命
    令群との間に相互関係がある場合にはこの条件分岐命令
    に第2の条件分岐命令を使用していることを特徴とする
    情報処理装置。
JP6316732A 1994-12-20 1994-12-20 情報処理装置 Expired - Lifetime JP2636192B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6316732A JP2636192B2 (ja) 1994-12-20 1994-12-20 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6316732A JP2636192B2 (ja) 1994-12-20 1994-12-20 情報処理装置

Publications (2)

Publication Number Publication Date
JPH08171492A JPH08171492A (ja) 1996-07-02
JP2636192B2 true JP2636192B2 (ja) 1997-07-30

Family

ID=18080289

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6316732A Expired - Lifetime JP2636192B2 (ja) 1994-12-20 1994-12-20 情報処理装置

Country Status (1)

Country Link
JP (1) JP2636192B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000020309A (ja) * 1998-06-30 2000-01-21 Toshiba Microelectronics Corp デジタルシグナルプロセッサ

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5852750A (ja) * 1981-09-24 1983-03-29 Fujitsu Ltd ブランチ命令制御方式
JP2603626B2 (ja) * 1987-01-16 1997-04-23 三菱電機株式会社 データ処理装置

Also Published As

Publication number Publication date
JPH08171492A (ja) 1996-07-02

Similar Documents

Publication Publication Date Title
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
US5461722A (en) Parallel processing apparatus suitable for executing in parallel a plurality of instructions including at least two branch instructions
US6981131B2 (en) Early condition code evaluation at pipeline stages generating pass signals for controlling coprocessor pipeline executing same conditional instruction
US5299320A (en) Program control type vector processor for executing a vector pipeline operation for a series of vector data which is in accordance with a vector pipeline
EP1886216A2 (en) Controlling out of order execution pipelines using skew parameters
US5822561A (en) Pipeline data processing apparatus and method for executing a plurality of data processes having a data-dependent relationship
JP2636192B2 (ja) 情報処理装置
JPH0418635A (ja) ディジタル信号プロセッサ
JP3532835B2 (ja) データ処理装置およびプログラム変換装置
US6182211B1 (en) Conditional branch control method
JP3560482B2 (ja) 命令制御装置
JP3461887B2 (ja) 可変長パイプライン制御装置
JPH06131180A (ja) 命令処理方式および命令処理装置
JP3526773B2 (ja) マルチプロセッサ装置およびその制御方法
JP2503223B2 (ja) 先行制御方式
KR100515039B1 (ko) 조건부 명령어를 고려한 파이프라인 상태 표시 회로
JP2925842B2 (ja) パイプライン処理装置
JP2924735B2 (ja) パイプライン演算装置及びデコーダ装置
JP3512707B2 (ja) マイクロコンピュータ
JP2933848B2 (ja) データ処理装置
JPH0520062A (ja) データ処理装置
JP3431503B2 (ja) 情報処理装置およびプログラム制御方法
JPH06230968A (ja) 分岐制御装置
JPH01271842A (ja) 情報処理装置
JPH02255918A (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: 19970225