JPH02100136A - 情報処理装置 - Google Patents
情報処理装置Info
- Publication number
- JPH02100136A JPH02100136A JP25352788A JP25352788A JPH02100136A JP H02100136 A JPH02100136 A JP H02100136A JP 25352788 A JP25352788 A JP 25352788A JP 25352788 A JP25352788 A JP 25352788A JP H02100136 A JPH02100136 A JP H02100136A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- branch
- output
- phase
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 claims abstract description 12
- 230000010365 information processing Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 12
- 238000013519 translation Methods 0.000 description 10
- 238000000034 method Methods 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 7
- WHOPEPSOPUIRQQ-UHFFFAOYSA-N oxoaluminum Chemical compound O1[Al]O[Al]1 WHOPEPSOPUIRQQ-UHFFFAOYSA-N 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はパイプライン制御の情報処理装置に関し、特に
、オペランドおよび命令取り出しのためのパイプライン
制御方式に関する。
、オペランドおよび命令取り出しのためのパイプライン
制御方式に関する。
パイプライン制御方式は、1つの命令の処理を複数のフ
ェーズに分割し、複数の命令を所定のサイクルずつずら
せて入力し、各フェーズで重複しないように並行処理す
ることにより、1命令あたりの平均処理時間を短縮する
ものである。
ェーズに分割し、複数の命令を所定のサイクルずつずら
せて入力し、各フェーズで重複しないように並行処理す
ることにより、1命令あたりの平均処理時間を短縮する
ものである。
一般に、命令の処理は、命令の取り出し、命令の解読、
オペランドの取り出し、演算の実行と大きく分けること
ができる。
オペランドの取り出し、演算の実行と大きく分けること
ができる。
ここにおいて、命令の取り出し、オペランドの取り出し
が競合しないよう、命令キャッシュとオペランドキャッ
シュが独立に設けてあれば、分岐命令の実行の際、オペ
ランドパイプラインとは独立して、分岐先の命令を取り
に行くことができる。
が競合しないよう、命令キャッシュとオペランドキャッ
シュが独立に設けてあれば、分岐命令の実行の際、オペ
ランドパイプラインとは独立して、分岐先の命令を取り
に行くことができる。
以−トのような構成のパイプライン制御方式によって、
パイプライン上、各フェーズでの空白をなくし、できる
だけ多くの命令を詰め込むことが可能となる。
パイプライン上、各フェーズでの空白をなくし、できる
だけ多くの命令を詰め込むことが可能となる。
しかし、条件分岐命令の実行の際、次に取り出すべき命
令が確定しないため、命令の先取り操作が一時的に途切
れてしまう。このため、パイプライン上、処理が無効な
空白フェーズができてしまい、パイプラインの使用効率
が低下してしまう。
令が確定しないため、命令の先取り操作が一時的に途切
れてしまう。このため、パイプライン上、処理が無効な
空白フェーズができてしまい、パイプラインの使用効率
が低下してしまう。
そこで、一般に行なわれている方法は、条件分岐命令が
取り出された際、常に分岐するという前提で、条件分岐
命令の分岐する方向に後続する命令を先取りしてしまう
という方法である。
取り出された際、常に分岐するという前提で、条件分岐
命令の分岐する方向に後続する命令を先取りしてしまう
という方法である。
上述した従来のパイプライン方式では、条件分岐命令取
り出1ノ時に、常に分岐するという7#提で条件分岐命
令の分岐する方向に後続する命令の先取りを行なうが、
前記前提が誤りであった場合、新たに条件分岐命令の分
岐しない方向に後続する命令を取りに行くことになり、
条件分岐命令の分岐する方向に後続する命令の先取りを
開始してから、前記前提が誤りであったと確定するまで
のマシンサイクルにおける、パイプライン上の各フェー
ズにおける処理がキャンセルされてしまうことになり、
したがって、前記前提が正しかフた場合は、パイプライ
ン上に乱れは発生しないが、前記前提が誤りであった場
合は、パイプライン上に大きな乱れが生じるという欠点
がある。
り出1ノ時に、常に分岐するという7#提で条件分岐命
令の分岐する方向に後続する命令の先取りを行なうが、
前記前提が誤りであった場合、新たに条件分岐命令の分
岐しない方向に後続する命令を取りに行くことになり、
条件分岐命令の分岐する方向に後続する命令の先取りを
開始してから、前記前提が誤りであったと確定するまで
のマシンサイクルにおける、パイプライン上の各フェー
ズにおける処理がキャンセルされてしまうことになり、
したがって、前記前提が正しかフた場合は、パイプライ
ン上に乱れは発生しないが、前記前提が誤りであった場
合は、パイプライン上に大きな乱れが生じるという欠点
がある。
〔課題を解決するための手段)
本発明の情報処理装置は、命令の取り出しおよびオペラ
ンドの取り出しのパイプラインを制御し、条件分岐命令
の実行に際し、常に分岐すると仮定して、該条件分岐命
令の分岐する方向の後続の命令の先取りを行なう情報処
理装置において、該条件分岐命令の分岐しない方向に後
続する命令のアドレスを保持するレジスタと、 同じく分岐しない方向に後続する命令のメモリオペラン
ドデータを保持するバッファメモリと、前記レジスタお
よび前記バッファメモリの出力を選択するセレクタと、 条件分岐命令の実行結果が分岐しないことがわかった場
合、前記セレクタにより前記レジスタおよび前記バッフ
ァメモリの出力を選択させる制御回路とを有している。
ンドの取り出しのパイプラインを制御し、条件分岐命令
の実行に際し、常に分岐すると仮定して、該条件分岐命
令の分岐する方向の後続の命令の先取りを行なう情報処
理装置において、該条件分岐命令の分岐しない方向に後
続する命令のアドレスを保持するレジスタと、 同じく分岐しない方向に後続する命令のメモリオペラン
ドデータを保持するバッファメモリと、前記レジスタお
よび前記バッファメモリの出力を選択するセレクタと、 条件分岐命令の実行結果が分岐しないことがわかった場
合、前記セレクタにより前記レジスタおよび前記バッフ
ァメモリの出力を選択させる制御回路とを有している。
条件分岐命令の分岐しない側に後続する命令の実効アド
レス、オペランドデータをパイプライン上に待機させて
おくことにより、条件分岐命令の実行結果が分岐しない
場合、条件分岐命令の分岐しない方向に後続する命令の
、パイプライン上での処理の流れを速やかにすることが
可能となる。
レス、オペランドデータをパイプライン上に待機させて
おくことにより、条件分岐命令の実行結果が分岐しない
場合、条件分岐命令の分岐しない方向に後続する命令の
、パイプライン上での処理の流れを速やかにすることが
可能となる。
次に1本発明の実施例について図面を参照して説明する
。
。
第1図は本発明の情報処理装置の一実施例の構成を示す
ブロック図、第2図は第1図の命令取り出しパイプライ
ン、オペランド取り出しパイプラインおよびそれぞれに
おける各フェーズを示す図である。
ブロック図、第2図は第1図の命令取り出しパイプライ
ン、オペランド取り出しパイプラインおよびそれぞれに
おける各フェーズを示す図である。
本実施例は、命令のアドレス保持用レジスタ(AHR)
101と、命令アドレスレジスタ(AR)!02と、A
HR101の出力とAR102の出力を選択するセレ
クタ701と、実効アドレスを生成する実効アドレス生
成用加算器(IAA)201と、IAA201の出力と
OA A 202の出力を選択するセレクタ702と、
I A A 201の出力である命令の実効アドレスの
保持用レジスタ(EAHR)106と、IAA201の
出力またはOA A 202の出力である命令の実効ア
ドレスを格納するためのレジスタ(EAR)107と、
E A HR106の出力とE A R107の出力と
を選択するセレクタ703と、命令アドレス変換回路3
01と、命令キャッシュ401と、命令語を格納するた
めのレジスタ(IR)109と、lR109に取り出さ
れた命令語を解読する命令解読回路601と、オペラン
ド実効アドレスの生成加算をするための、命令語により
指定されるレジスタ群111と、ディスプレイスメント
レジスタ(DR)103と、インデックスレジスタ(i
XR)104と、ペースレジスタ(BR)105と、オ
ペランドの実効アドレスを生成するためのオへランドア
ドレス加算器(OAA)202と、OA A 202の
出力を格納するためのオペランド実効アドレスレジスタ
(OEAR)108と、オペランドアドレス変換回路3
02と、オペランドキャッシュ402と、オペランドキ
ャッシュ402でアクセスされた条件分岐命令の分岐し
ない方向に後続する命令のオペランドデータを保持する
ためのバッファメモリ501と、オペランドデータを格
納するためのレジスタ(OR)110と、0RIIOの
出力とバッファメモリ501の出力とを選択するセレク
タ704と、演算回路604と、条件分岐命令が演算回
路604で実行された結果、分岐するか分岐しないかを
判定する判定回路603と、命令解読回路60】または
判定回路603からの信号を受は取ることにより、信号
線804.805を介して、AHRlol 、セレクタ
701、セレクタ702.EAHR106、セレクタ7
03 、 D R103、lXR104、BR105、
0EARI08 、バッファメモリ501、セレクタ7
04を制御する制御回路602とを有している。
101と、命令アドレスレジスタ(AR)!02と、A
HR101の出力とAR102の出力を選択するセレ
クタ701と、実効アドレスを生成する実効アドレス生
成用加算器(IAA)201と、IAA201の出力と
OA A 202の出力を選択するセレクタ702と、
I A A 201の出力である命令の実効アドレスの
保持用レジスタ(EAHR)106と、IAA201の
出力またはOA A 202の出力である命令の実効ア
ドレスを格納するためのレジスタ(EAR)107と、
E A HR106の出力とE A R107の出力と
を選択するセレクタ703と、命令アドレス変換回路3
01と、命令キャッシュ401と、命令語を格納するた
めのレジスタ(IR)109と、lR109に取り出さ
れた命令語を解読する命令解読回路601と、オペラン
ド実効アドレスの生成加算をするための、命令語により
指定されるレジスタ群111と、ディスプレイスメント
レジスタ(DR)103と、インデックスレジスタ(i
XR)104と、ペースレジスタ(BR)105と、オ
ペランドの実効アドレスを生成するためのオへランドア
ドレス加算器(OAA)202と、OA A 202の
出力を格納するためのオペランド実効アドレスレジスタ
(OEAR)108と、オペランドアドレス変換回路3
02と、オペランドキャッシュ402と、オペランドキ
ャッシュ402でアクセスされた条件分岐命令の分岐し
ない方向に後続する命令のオペランドデータを保持する
ためのバッファメモリ501と、オペランドデータを格
納するためのレジスタ(OR)110と、0RIIOの
出力とバッファメモリ501の出力とを選択するセレク
タ704と、演算回路604と、条件分岐命令が演算回
路604で実行された結果、分岐するか分岐しないかを
判定する判定回路603と、命令解読回路60】または
判定回路603からの信号を受は取ることにより、信号
線804.805を介して、AHRlol 、セレクタ
701、セレクタ702.EAHR106、セレクタ7
03 、 D R103、lXR104、BR105、
0EARI08 、バッファメモリ501、セレクタ7
04を制御する制御回路602とを有している。
命令解読回路601は、14109に格納された命令が
条件分岐命令である時は、その旨を信号線801を介し
て制御回路602に通知する機能を有し、判定回路60
3は、条件分岐命令の実行結果が、分岐するか分岐しな
いか確定した場合、信号線802を介してその旨を制御
回路602に通知し、条件分岐命令の実行結果が分岐し
ないと確定した場合のみ、信号線803を介してその旨
を制御回路602に通知する機能を有する。また、各セ
レクタに関しては、信号線804.805が論理値1の
ときに、セレクタ701はA HR101の出力を選択
し、セレクタ702はOA A 202の出力を選択し
、セレクタ703はEAHR106を選択し、セレクタ
704はバッファメモリ501の出力を選択するものと
する。
条件分岐命令である時は、その旨を信号線801を介し
て制御回路602に通知する機能を有し、判定回路60
3は、条件分岐命令の実行結果が、分岐するか分岐しな
いか確定した場合、信号線802を介してその旨を制御
回路602に通知し、条件分岐命令の実行結果が分岐し
ないと確定した場合のみ、信号線803を介してその旨
を制御回路602に通知する機能を有する。また、各セ
レクタに関しては、信号線804.805が論理値1の
ときに、セレクタ701はA HR101の出力を選択
し、セレクタ702はOA A 202の出力を選択し
、セレクタ703はEAHR106を選択し、セレクタ
704はバッファメモリ501の出力を選択するものと
する。
また、第2図に示すように、第1図のパイプラインは、
命令取り出しパイプラインとオペランド取り出しパイプ
ラインとに分けることができる。
命令取り出しパイプラインとオペランド取り出しパイプ
ラインとに分けることができる。
命令取り出しパイプラインは、先取りすべき命令の実効
アドレス加算をするための準備をする段階であるIFフ
ェーズ、先取りすべき命令の実効アドレス加算を行なう
IAフェーズ、先取りすべき命令のアドレス変換を行な
い、命令キャッシュにおいてアクセスを行なうITCフ
ェーズ、先取りされた命令のオペランドの実効アドレス
加算を行なうOAフェーズ、先取りされた命令のオペラ
ンドのアドレス変換を行ない、オペランドキャッシュに
おいてアクセスを行なうOTCフェーズに・分けられる
。さらに、それ以降は、演算を行なうEXフェーズが続
く。なお、第2図中における各番号は、第1図中の番号
に対応し、同一の回路を指す。
アドレス加算をするための準備をする段階であるIFフ
ェーズ、先取りすべき命令の実効アドレス加算を行なう
IAフェーズ、先取りすべき命令のアドレス変換を行な
い、命令キャッシュにおいてアクセスを行なうITCフ
ェーズ、先取りされた命令のオペランドの実効アドレス
加算を行なうOAフェーズ、先取りされた命令のオペラ
ンドのアドレス変換を行ない、オペランドキャッシュに
おいてアクセスを行なうOTCフェーズに・分けられる
。さらに、それ以降は、演算を行なうEXフェーズが続
く。なお、第2図中における各番号は、第1図中の番号
に対応し、同一の回路を指す。
第3図は、第1図中の制御回路602の詳細な回路図で
ある。制御回路602は、命令解読回路6G+から信号
線801を介しての信号と、判定回路603から信号線
802.803を介しての信号を受けとることにより制
御を開始し、第3図中、矢印が指し示す番号に対応する
回路に対して制御信号を送出するもので、FFl0.1
1. +2.13.14.15とゲートGo、 G1.
、 G2. G:l、 G4. G5. G6. G7
. G8. G9とからなる。FFl0.11.12.
13.14は、条件分岐命令が命令解読回路601にお
いて解読されたことを知らせる信号が信号線801に入
力されてから、該条件分岐命令め分岐しない側に後続す
る命令をバッファメモリ501に保持させるための信号
805を信号線501に出力するまでのタイミングを合
わせるためのものである。また、FF15は、演算パイ
プライン上の判定回路603から、条件分岐命令の実行
結果が、分岐しないと確定したことを知らせる信号が信
号線803に入力されたとき、同タイミングにおけるサ
イクルと、次のサイクルにおいて、セレクタ704がバ
ッファメモリ501内にある、該条件分岐命令の分岐し
ない側に後続する命令のオペランドデータを選択するた
めの信号を、連続して信号線25に出力するためのもの
である。
ある。制御回路602は、命令解読回路6G+から信号
線801を介しての信号と、判定回路603から信号線
802.803を介しての信号を受けとることにより制
御を開始し、第3図中、矢印が指し示す番号に対応する
回路に対して制御信号を送出するもので、FFl0.1
1. +2.13.14.15とゲートGo、 G1.
、 G2. G:l、 G4. G5. G6. G7
. G8. G9とからなる。FFl0.11.12.
13.14は、条件分岐命令が命令解読回路601にお
いて解読されたことを知らせる信号が信号線801に入
力されてから、該条件分岐命令め分岐しない側に後続す
る命令をバッファメモリ501に保持させるための信号
805を信号線501に出力するまでのタイミングを合
わせるためのものである。また、FF15は、演算パイ
プライン上の判定回路603から、条件分岐命令の実行
結果が、分岐しないと確定したことを知らせる信号が信
号線803に入力されたとき、同タイミングにおけるサ
イクルと、次のサイクルにおいて、セレクタ704がバ
ッファメモリ501内にある、該条件分岐命令の分岐し
ない側に後続する命令のオペランドデータを選択するた
めの信号を、連続して信号線25に出力するためのもの
である。
第8図は制御回路602のタイムチャートである。
次に、第3図、第8図を参照して、制御回路802の動
作について説明する。
作について説明する。
信号線801に対して、命令解読回路601より、条件
分岐命令が解読されたことを知らせる論理値1の信号が
出力され、FF14に論理値1が入力されるサイクルを
T・とすると、 T、サイクル。 ToプサイルでのFF14の人力論理
値1によりFF14の出力論理値が1.同時に、セレク
タ702に対して、オペランドアドレス加算器(OAA
)202で加算された条件分岐命令の分岐先の実効アド
レスを選択させるための論理値1の信号を送出する信号
線21の論理値が1゜この仁き命令解読回路601から
信号線801に対して論理値1の信号が出力されている
。
分岐命令が解読されたことを知らせる論理値1の信号が
出力され、FF14に論理値1が入力されるサイクルを
T・とすると、 T、サイクル。 ToプサイルでのFF14の人力論理
値1によりFF14の出力論理値が1.同時に、セレク
タ702に対して、オペランドアドレス加算器(OAA
)202で加算された条件分岐命令の分岐先の実効アド
レスを選択させるための論理値1の信号を送出する信号
線21の論理値が1゜この仁き命令解読回路601から
信号線801に対して論理値1の信号が出力されている
。
T2サイクル。 FF13の出力の論理値が1゜ゲート
G3の入力の論理値が1で、出力の論理値が0となる。
G3の入力の論理値が1で、出力の論理値が0となる。
このとき信号線802に対して、演算パイプライン上の
判定回路603から、条件分岐命令の実行結果が分岐す
るか分岐しないかが確定したことを知らせるための論理
1の信号が出力されていない。したがって、ゲートG4
の入力論理値がO1出力論理値が1、ゲートG5の出力
論理値がOとなるため、ゲートG3. G5の出力が共
に0となり、ゲートG6の出力論理値が1となる。よっ
て、条件分岐命令の分岐しない側に後続する命令の実効
アドレス加算をするためのデータおよび実効アドレスを
レジスタAHRIO+およびEAHRloBに保持させ
るためのホールド信号を送出する信号線22の論理値が
1となる。信号線801 、 FF14の出力論理値は
0である。
判定回路603から、条件分岐命令の実行結果が分岐す
るか分岐しないかが確定したことを知らせるための論理
1の信号が出力されていない。したがって、ゲートG4
の入力論理値がO1出力論理値が1、ゲートG5の出力
論理値がOとなるため、ゲートG3. G5の出力が共
に0となり、ゲートG6の出力論理値が1となる。よっ
て、条件分岐命令の分岐しない側に後続する命令の実効
アドレス加算をするためのデータおよび実効アドレスを
レジスタAHRIO+およびEAHRloBに保持させ
るためのホールド信号を送出する信号線22の論理値が
1となる。信号線801 、 FF14の出力論理値は
0である。
T3サイクル。 FF12の出力の論理値は1、信号線
801.21 、 F F14.13の出力は0゜同時
にゲートG3の人力論理値はT2サイクルの1から0に
変わり、ゲートG3の出力論理が0から1に変わるが、
T2サイクルでのゲートG6の出力論理が1よりゲート
G5の出力論理値が1になっているので、ゲートG9の
出力および信号線22の論理値はT2サイクルと変わら
す1である。
801.21 、 F F14.13の出力は0゜同時
にゲートG3の人力論理値はT2サイクルの1から0に
変わり、ゲートG3の出力論理が0から1に変わるが、
T2サイクルでのゲートG6の出力論理が1よりゲート
G5の出力論理値が1になっているので、ゲートG9の
出力および信号線22の論理値はT2サイクルと変わら
す1である。
T4サイクル。 FFIIの出力論理値は1゜FF14
、13.12および信号線801.21の論理値は0゜
ゲートG6の出力および信号線22の論理値はT3ザイ
クルの説明と同じ動作により1である。
、13.12および信号線801.21の論理値は0゜
ゲートG6の出力および信号線22の論理値はT3ザイ
クルの説明と同じ動作により1である。
Tsサイクル。 F Fil、 12.13.14の出
力および信号線801.21の論理値は0゜FFl0の
出力は1となり、ゲートGOの出力が0となるためゲー
トGlの出力および信号線20の論理値は1となる。
力および信号線801.21の論理値は0゜FFl0の
出力は1となり、ゲートGOの出力が0となるためゲー
トGlの出力および信号線20の論理値は1となる。
ゲートGOの出力および信号線22の論理値は、T3サ
イクルの説明と同じ動作により1である。
イクルの説明と同じ動作により1である。
T6サイクル。 FFIG、 11.12.13.14
の出力および信号線801.21の論理値は0.ゲート
GOの出力論理値はlであり、T5サイクルでのゲート
Glの出力論理値が1であり、Tもサイクルにおいて、
信号線802に対する判定回路603の出力信号の論理
値がOから1になるため、ゲートG4の出力論理値がO
になる。よってゲートG2の出力論理値が1となること
からゲートGlの出力および信号線20の信号線の論理
値は1から0に変わる。また、信号線803に対して、
演算パイプライン上にある判定回路603から、条件分
岐命令の実行結果が分岐しないと確定したことを知らせ
る論理値1の信号が出力されるため、DR103、IX
RI04、BR105,0EAR108にリセット信号
を送出するため信号線23と、セレクタ701および7
03に対し、レジスタA HR101およびEAHR1
06に保持されている条件分岐命令の分岐しない側に後
続する命令の実効アドレス加算をするためのデータおよ
び実効アドレスを選択させるためのセレクト信号を送出
するための信号線24の論理値が1となる。ここで、信
号線802に対する判定回路603の出力論理値のみが
0、つまり1条件分岐命令の実行結果がまだ確定してい
ない場合、FFl0の出力論理値が1から0に変わって
も、ゲートGlの出力および信号線20の論理値は1の
ままで変わらない。ゲートG7の出力論理値は0になる
ので、ゲートG5の出力部よび信号線25の論理値は1
となる。
の出力および信号線801.21の論理値は0.ゲート
GOの出力論理値はlであり、T5サイクルでのゲート
Glの出力論理値が1であり、Tもサイクルにおいて、
信号線802に対する判定回路603の出力信号の論理
値がOから1になるため、ゲートG4の出力論理値がO
になる。よってゲートG2の出力論理値が1となること
からゲートGlの出力および信号線20の信号線の論理
値は1から0に変わる。また、信号線803に対して、
演算パイプライン上にある判定回路603から、条件分
岐命令の実行結果が分岐しないと確定したことを知らせ
る論理値1の信号が出力されるため、DR103、IX
RI04、BR105,0EAR108にリセット信号
を送出するため信号線23と、セレクタ701および7
03に対し、レジスタA HR101およびEAHR1
06に保持されている条件分岐命令の分岐しない側に後
続する命令の実効アドレス加算をするためのデータおよ
び実効アドレスを選択させるためのセレクト信号を送出
するための信号線24の論理値が1となる。ここで、信
号線802に対する判定回路603の出力論理値のみが
0、つまり1条件分岐命令の実行結果がまだ確定してい
ない場合、FFl0の出力論理値が1から0に変わって
も、ゲートGlの出力および信号線20の論理値は1の
ままで変わらない。ゲートG7の出力論理値は0になる
ので、ゲートG5の出力部よび信号線25の論理値は1
となる。
ゲートG4の出力論理値が0、ゲートG6の論理値が1
よりゲートG5の出力論理値が1、またゲートG3の出
力論理値が1であることより、ゲートG6の出力および
信号線22の論理値はT5サイクルでの1から0に変わ
る。
よりゲートG5の出力論理値が1、またゲートG3の出
力論理値が1であることより、ゲートG6の出力および
信号線22の論理値はT5サイクルでの1から0に変わ
る。
T、サイクル。 F FIo、 11. +2.1.3
.14の出力およびゲートG1の出力および信号線20
.801゜802、21の論理値は0゜また、判定回路
603の信号線882.803の論理値がTもサイクル
での1から0に変わる。これにより、ゲートG4の出力
論理値が1となり、またゲートG6の出力論理値が0で
あることより、ゲートG5の出力論理値は1でゲートG
6の出力および信号線22の論理値は0でありT6サイ
クルと変わらない。FF15の出力論理値は1であり、
ゲートG8の出力論理値が0、ゲートG7の出力論理値
が1より、ゲートG9の出力(信号線25)の論理値は
T6サイクルと同じく1である。
.14の出力およびゲートG1の出力および信号線20
.801゜802、21の論理値は0゜また、判定回路
603の信号線882.803の論理値がTもサイクル
での1から0に変わる。これにより、ゲートG4の出力
論理値が1となり、またゲートG6の出力論理値が0で
あることより、ゲートG5の出力論理値は1でゲートG
6の出力および信号線22の論理値は0でありT6サイ
クルと変わらない。FF15の出力論理値は1であり、
ゲートG8の出力論理値が0、ゲートG7の出力論理値
が1より、ゲートG9の出力(信号線25)の論理値は
T6サイクルと同じく1である。
T8サイクル。 FFl0.11.12.13.14
.15の出力および信号線20.21.22.23.2
4.801゜802、803の論理値は0゜また、FF
15の出力論理値0よりゲートG8の出力論理値1、ゲ
ートG7の出力論理値1゜よってゲートG9の出力(信
号線25)の論理値は、T7サイクルでの1から0に変
わる。
.15の出力および信号線20.21.22.23.2
4.801゜802、803の論理値は0゜また、FF
15の出力論理値0よりゲートG8の出力論理値1、ゲ
ートG7の出力論理値1゜よってゲートG9の出力(信
号線25)の論理値は、T7サイクルでの1から0に変
わる。
T9サイクル以後。 信号線801に対して命令解読回
路601からの論理値の出力信号があるまで、T8サイ
クルでの状態が続く。
路601からの論理値の出力信号があるまで、T8サイ
クルでの状態が続く。
第4図は、条件分岐命令の分岐しない側に後続する命令
のオペランドデータを保持するバッファメモリ501の
ブロック図であり、レジスタ1.2より構成される。3
0.31.32はデータ線である。
のオペランドデータを保持するバッファメモリ501の
ブロック図であり、レジスタ1.2より構成される。3
0.31.32はデータ線である。
データ線30を介してオペランドキャッシュ402から
のオペランドデータがレジスタ1に設定され、次のサイ
クルで格納され、更に次のサイクルでレジスタ2に格納
される。制御信号線805に制御回路602からホール
ド信号である論理値1の信号が出力されると、レジスタ
1.2の出力データは、次のサイクルで保持された状態
となり変らない。
のオペランドデータがレジスタ1に設定され、次のサイ
クルで格納され、更に次のサイクルでレジスタ2に格納
される。制御信号線805に制御回路602からホール
ド信号である論理値1の信号が出力されると、レジスタ
1.2の出力データは、次のサイクルで保持された状態
となり変らない。
レジスタ2の出力データは、セレクタ704により選択
されるデータである。
されるデータである。
第5図は、本実施例において適用するプログラムの一部
である命令列を示す図である。命令へ〇から始まり、C
6は条件分岐命令、D0〜0゜は条件分岐命令CQの分
岐しない側に後続する命令列、D、〜Oxは条件分岐命
令C,の分岐する側に後続する命令列である。
である命令列を示す図である。命令へ〇から始まり、C
6は条件分岐命令、D0〜0゜は条件分岐命令CQの分
岐しない側に後続する命令列、D、〜Oxは条件分岐命
令C,の分岐する側に後続する命令列である。
ここで、第5図に示す命令列を有するプログラムの実行
の状態を第1図および第7図に示すタイムチャートを参
照しつつ説明する。まず、第1図、第5図を参照して、
条件分岐命令c0がフェーズ10において解読されるサ
イクルをToとし、ここから説明を開始する。このサイ
クルにおいて、命令解読回路601より、信号線801
を介し、fIJ御回路602に対して、論理値1の信号
が出力される。このときフェーズIFで命令F0の実効
アドレス加算をするためのデータが待機し、フェーズI
Aで命令E0の実効アドレス加算が行なわれており、フ
ェーズITCで命令D0の命令アドレス変換および命令
キャッジ、:L 401でのアクセスが行なわれ、フェ
ーズOAで命令B0のオペランドの実効アドレス加算が
行なわれ、フェーズOTCで命令A、のオペランドアド
レス変換およびオペランドキャッシュ402でのアクセ
スが行なわれる。
の状態を第1図および第7図に示すタイムチャートを参
照しつつ説明する。まず、第1図、第5図を参照して、
条件分岐命令c0がフェーズ10において解読されるサ
イクルをToとし、ここから説明を開始する。このサイ
クルにおいて、命令解読回路601より、信号線801
を介し、fIJ御回路602に対して、論理値1の信号
が出力される。このときフェーズIFで命令F0の実効
アドレス加算をするためのデータが待機し、フェーズI
Aで命令E0の実効アドレス加算が行なわれており、フ
ェーズITCで命令D0の命令アドレス変換および命令
キャッジ、:L 401でのアクセスが行なわれ、フェ
ーズOAで命令B0のオペランドの実効アドレス加算が
行なわれ、フェーズOTCで命令A、のオペランドアド
レス変換およびオペランドキャッシュ402でのアクセ
スが行なわれる。
T、サイクル。 制御回路602より、信号線21を介
し、セレクタ702に対し、論理値1のセレクト信号が
出力される。このとき条件分岐命令C0の分岐先の命令
り、の実効アドレス加算がフェーズOAで行なわ九、命
令語C,は0EAR108に設定されると共に分岐先の
命令り、の実効アドレスがE A R107に送出され
る。このとき、フェーズIFでは命令E、の命令実効ア
ドレス加算をするために、命令DIの命令実効アドレス
がAR102に設定される。A HR101には、命令
G、の実効アドレス加算をするために、IAA201で
加算された命令F・の実効アドレスが設定される。
し、セレクタ702に対し、論理値1のセレクト信号が
出力される。このとき条件分岐命令C0の分岐先の命令
り、の実効アドレス加算がフェーズOAで行なわ九、命
令語C,は0EAR108に設定されると共に分岐先の
命令り、の実効アドレスがE A R107に送出され
る。このとき、フェーズIFでは命令E、の命令実効ア
ドレス加算をするために、命令DIの命令実効アドレス
がAR102に設定される。A HR101には、命令
G、の実効アドレス加算をするために、IAA201で
加算された命令F・の実効アドレスが設定される。
フェーズIAでは、OA A 202により加算された
命令り、の実効アドレスがE A R107に設定され
る。また、IAA201により加算された命令F0の実
効アドレスがEAHR1013に設定される。
命令り、の実効アドレスがE A R107に設定され
る。また、IAA201により加算された命令F0の実
効アドレスがEAHR1013に設定される。
フェーズITCでは命令Eoのアドレス変換および命令
キャッシュ401でのアクセスが行なわれる。フェーズ
IDでは命令り、の解読が行なわれる。フェーズOTC
では命令B、のオペランドアドレス変換およびオペラン
ドアクセスが行なわれる。フェーズEXには命令へ〇の
オペランドデータが人力される。
キャッシュ401でのアクセスが行なわれる。フェーズ
IDでは命令り、の解読が行なわれる。フェーズOTC
では命令B、のオペランドアドレス変換およびオペラン
ドアクセスが行なわれる。フェーズEXには命令へ〇の
オペランドデータが人力される。
T2サイクル。 制御回路602は信号線22を介し、
AHRIOI 、EAHRloBに対し、論理値1のホ
ールド信号を送出する。このとき、条件分岐命令C0の
命令語はフェーズOTCにある。
AHRIOI 、EAHRloBに対し、論理値1のホ
ールド信号を送出する。このとき、条件分岐命令C0の
命令語はフェーズOTCにある。
フェーズIFでは命令F、の実効アドレス加算をするた
めのデータがAl2O2に設定される。
めのデータがAl2O2に設定される。
フェーズIAでは、IAA201により、命令G。
の実効アドレス加算が行なわれ、A HRlotに命令
G0の実効アドレス加算をするためのデータが格納され
る。フェーズITCでは、命令DIのアドレス変換およ
び命令キャッシュ401でのアクセスが行なわれ、EA
HR106には命令F、の実効アドレスが格納される。
G0の実効アドレス加算をするためのデータが格納され
る。フェーズITCでは、命令DIのアドレス変換およ
び命令キャッシュ401でのアクセスが行なわれ、EA
HR106には命令F、の実効アドレスが格納される。
IDフェーズでは命令E0の解読が行なわれている。フ
ェーズOAでは命令D6のオペランド実効アドレス加算
が行なわれる。フェーズEXには命令B0のオペランド
データが入力される。
ェーズOAでは命令D6のオペランド実効アドレス加算
が行なわれる。フェーズEXには命令B0のオペランド
データが入力される。
T3サイクル。 T2サイクルと同じく、制御回路60
2はAHRIOI 、EAHRI06に対してホールド
信号を送出する。各条件分岐命令COの命令語がフェー
ズEXに人力される。フェーズIFでは、命令G、の実
効アドレス加算をするためのデータがAl2O2に設定
される。フェーズIAでは、IAA201により、命令
F、の実効アドレス加算が行なわれ、A HR101に
は命令G0の実効アドレス加算をするためのデータが保
持されている。フェーズITCでは、命令E、のアドレ
ス変換および命令キャッシュ401でのアクセスが行な
われ、EAHR106には命令Foの実効アドレスが保
持されている。フェーズIDでは命令D1の解読が行な
われている。フェーズOAでは命令E0のオペランド実
効アドレス加算が行なわれる。フェーズOTCでは、命
令D6のオペランドアドレス変換が行なわれ、オペラン
ドキャッシュ402でのアクセスが行なわれた後にバッ
ファメモリ501のレジスタ1に設定される。
2はAHRIOI 、EAHRI06に対してホールド
信号を送出する。各条件分岐命令COの命令語がフェー
ズEXに人力される。フェーズIFでは、命令G、の実
効アドレス加算をするためのデータがAl2O2に設定
される。フェーズIAでは、IAA201により、命令
F、の実効アドレス加算が行なわれ、A HR101に
は命令G0の実効アドレス加算をするためのデータが保
持されている。フェーズITCでは、命令E、のアドレ
ス変換および命令キャッシュ401でのアクセスが行な
われ、EAHR106には命令Foの実効アドレスが保
持されている。フェーズIDでは命令D1の解読が行な
われている。フェーズOAでは命令E0のオペランド実
効アドレス加算が行なわれる。フェーズOTCでは、命
令D6のオペランドアドレス変換が行なわれ、オペラン
ドキャッシュ402でのアクセスが行なわれた後にバッ
ファメモリ501のレジスタ1に設定される。
T4サイクル。 T3サイクルに引き続き制御回路60
2は、AHRIOI 、EAHR108にホールド信号
を送出する。このとき、条件分岐命令C0の実行が演算
パイプラインで進行する。フェーズIFでは、命令H!
の実効アドレス加算をするためのデータがAl2O2に
設定される。フェーズIAでは命令G、の実効アドレス
加算が行なわれ、AHRIOIには命令G0の実効アド
レス加算をするためのデータが保持されている。フェー
ズITCでは命令F、のアドレス変換および命令キャッ
シュアクセスが行なわれ、EAHR106には命令F0
の実効アドレスが保持されている。フェーズIDでは命
令E、の解読が行なわれている。
2は、AHRIOI 、EAHR108にホールド信号
を送出する。このとき、条件分岐命令C0の実行が演算
パイプラインで進行する。フェーズIFでは、命令H!
の実効アドレス加算をするためのデータがAl2O2に
設定される。フェーズIAでは命令G、の実効アドレス
加算が行なわれ、AHRIOIには命令G0の実効アド
レス加算をするためのデータが保持されている。フェー
ズITCでは命令F、のアドレス変換および命令キャッ
シュアクセスが行なわれ、EAHR106には命令F0
の実効アドレスが保持されている。フェーズIDでは命
令E、の解読が行なわれている。
フェーズOAでは命令り、のオペランド実効アドレス加
算が行なわれる。フェーズOTCでは命令Eoのオペラ
ンドアドレス変換およびオペランドキャッシュ402ア
クセスが行なわれた後に命令E・のオペランドデータが
バッファメモリ501のレジスタ1に設定され、同時に
レジスタ1に命令D6のオペランドデータが格納される
。
算が行なわれる。フェーズOTCでは命令Eoのオペラ
ンドアドレス変換およびオペランドキャッシュ402ア
クセスが行なわれた後に命令E・のオペランドデータが
バッファメモリ501のレジスタ1に設定され、同時に
レジスタ1に命令D6のオペランドデータが格納される
。
T5サイクル。 フェーズIFでは命令■1の実効アド
レス加算をするためのデータがAl2O2に設定される
。フェーズIAでは命令H2の実効アドレス加算が行な
われ、A HR101では命令G0の実効アドレス加算
を行なうためのデータが保持されている。フェーズIT
Cでは命令G、のアドレス変換および命令キャッシュア
クセスが行なわれ、EAHR]06には命令F0の実効
アドレスが保持されている。フェーズIDでは命令F1
の解読が行なわれている。フェーズOAでは命令E。
レス加算をするためのデータがAl2O2に設定される
。フェーズIAでは命令H2の実効アドレス加算が行な
われ、A HR101では命令G0の実効アドレス加算
を行なうためのデータが保持されている。フェーズIT
Cでは命令G、のアドレス変換および命令キャッシュア
クセスが行なわれ、EAHR]06には命令F0の実効
アドレスが保持されている。フェーズIDでは命令F1
の解読が行なわれている。フェーズOAでは命令E。
のオペランド実効アドレス加算が行なわれる。
フェーズOTCでは、命令り、のオペランドアドレス変
換およびオペランドキャッシュアクセスが行なわれ、T
4サイクルでバッファメモリ501のレジスタ1に格納
された、命令D0のオペランドデータがレジスタ2に格
納され、同じ<74サイクルでOTCフェーズにおいて
アクセスされた命令E6のオペランドデータがレジスタ
1に格納される。このとき、制御回路602よりバッフ
ァメモリ501のレジスタ1,2に対して論理値1の小
−ルド信号が送出され、AHRIOI 、 EA、HR
106に対しては、T4サイクルに引き続き論理値のホ
ールド信号が送出される。
換およびオペランドキャッシュアクセスが行なわれ、T
4サイクルでバッファメモリ501のレジスタ1に格納
された、命令D0のオペランドデータがレジスタ2に格
納され、同じ<74サイクルでOTCフェーズにおいて
アクセスされた命令E6のオペランドデータがレジスタ
1に格納される。このとき、制御回路602よりバッフ
ァメモリ501のレジスタ1,2に対して論理値1の小
−ルド信号が送出され、AHRIOI 、 EA、HR
106に対しては、T4サイクルに引き続き論理値のホ
ールド信号が送出される。
Tもサイクル(ここから、第7図も参照する)演算パイ
プライン上の判定回路603より、条件分岐命令C0の
実行結果が分岐するか分岐しないかが確定したことを知
らせるための論理値の信号が信号線802を介して制御
回路602に送出され、同じく条件分岐命令C0の実行
結果が分岐しないと確定したことを知らせる論理値1の
信号が制御回路602に送出される。信号線802の論
理値が1で信号線803の論理値が0ならば、条件分岐
命令C0の実行結果が分岐すると確定したことを示す。
プライン上の判定回路603より、条件分岐命令C0の
実行結果が分岐するか分岐しないかが確定したことを知
らせるための論理値の信号が信号線802を介して制御
回路602に送出され、同じく条件分岐命令C0の実行
結果が分岐しないと確定したことを知らせる論理値1の
信号が制御回路602に送出される。信号線802の論
理値が1で信号線803の論理値が0ならば、条件分岐
命令C0の実行結果が分岐すると確定したことを示す。
また判定回路603からの確定信号は、T7サイクル以
後でもかまわない。このとき、フェーズIAで、A H
R101に保持されているデータにより、命令G6の実
効アドレス加算が行なわれる。
後でもかまわない。このとき、フェーズIAで、A H
R101に保持されているデータにより、命令G6の実
効アドレス加算が行なわれる。
フェーズIFでは、フェーズIAでのIAA201の加
算結果の出力により、AR102に命令H6の実効アド
レス加算を行なうためのデータが設定される。フェーズ
ITCでは、EAHR106に保持されているデータに
より、命令Foのアドレス変換および命令キャッシュ4
01のアクセスが行なわれる。フェーズIDでは、命令
G、の解読が行なわれている。フェーズOAでは、命令
F、のオペランド実効アドレス加算が行なわれており、
このとき、DR103、I XR104、BR105に
刻して制御回路602よりリセット信号が送出される。
算結果の出力により、AR102に命令H6の実効アド
レス加算を行なうためのデータが設定される。フェーズ
ITCでは、EAHR106に保持されているデータに
より、命令Foのアドレス変換および命令キャッシュ4
01のアクセスが行なわれる。フェーズIDでは、命令
G、の解読が行なわれている。フェーズOAでは、命令
F、のオペランド実効アドレス加算が行なわれており、
このとき、DR103、I XR104、BR105に
刻して制御回路602よりリセット信号が送出される。
フェーズOTCでは、命令E、のオへランドアドレス変
換およびオペランドキャッシュアクセスが行なわれる。
換およびオペランドキャッシュアクセスが行なわれる。
このとき、0EAR108に制御回路602よりリセッ
ト信号が送出される。また、バッファメモリ501には
、命令D 6 * E 6のオペランドデータが保持さ
れている。フェーズEXで、バッファメモリ501のレ
ジスタ2に保持されている命令り、のオペランドデータ
が入力される。
ト信号が送出される。また、バッファメモリ501には
、命令D 6 * E 6のオペランドデータが保持さ
れている。フェーズEXで、バッファメモリ501のレ
ジスタ2に保持されている命令り、のオペランドデータ
が入力される。
T7サイクル。 T6サイクルにおいて、セレクタ70
1.703に対し送出されていた制御回路602からの
論理値1のセレクト信号が論理値0になり、セレクタ7
01はAR102の出力データを、セレクタ703はE
A R107の出力データをそれぞれ選択する。セレ
クタ704に対しては2T6サイクルに引き続き論理値
1のセレクト信号804が送出される。このとき% I
Fフェーズで、ARI02に命令I、の実効アドレス加
算を行なうためのデータが設定される。フェーズIAで
命令H0の実効アドレス加算が行なわわる。また、AH
RIOI には、命令G0の実効アドレス加算をするた
めのデータは既に保持されておらず、出力はAR102
の出力データと同一になっている。フェーズITCでは
、命令G0のアドレス変換および命令キャッシュアクセ
スが行なわわる。また、EAHRI06には命令F6の
実効アドレスは保持されておらず、E A R107の
出力データと同一になっている。フェーズIDでは、命
令F、の解読が行なわれる。フェーズoAではDR10
3、lXR104、BRI05の出力がすべて0、フェ
ーズOTCでは0EAR108の出力が0になる。また
、バッファメモリ501のレジスタ2に命令E6のオペ
ランドデータが格納されており、命令り、のオペランド
データは既に保持されていない。フェーズEXでは、バ
ッファメモリ501のレジスタ2に格納されている命令
E6のオペランドデータが入力される。
1.703に対し送出されていた制御回路602からの
論理値1のセレクト信号が論理値0になり、セレクタ7
01はAR102の出力データを、セレクタ703はE
A R107の出力データをそれぞれ選択する。セレ
クタ704に対しては2T6サイクルに引き続き論理値
1のセレクト信号804が送出される。このとき% I
Fフェーズで、ARI02に命令I、の実効アドレス加
算を行なうためのデータが設定される。フェーズIAで
命令H0の実効アドレス加算が行なわわる。また、AH
RIOI には、命令G0の実効アドレス加算をするた
めのデータは既に保持されておらず、出力はAR102
の出力データと同一になっている。フェーズITCでは
、命令G0のアドレス変換および命令キャッシュアクセ
スが行なわわる。また、EAHRI06には命令F6の
実効アドレスは保持されておらず、E A R107の
出力データと同一になっている。フェーズIDでは、命
令F、の解読が行なわれる。フェーズoAではDR10
3、lXR104、BRI05の出力がすべて0、フェ
ーズOTCでは0EAR108の出力が0になる。また
、バッファメモリ501のレジスタ2に命令E6のオペ
ランドデータが格納されており、命令り、のオペランド
データは既に保持されていない。フェーズEXでは、バ
ッファメモリ501のレジスタ2に格納されている命令
E6のオペランドデータが入力される。
T8サイクル。 制御回路602からセレクタ704に
送出されていたセレクト信号805の論理値が1からO
に変わり、セレクタ704は0RIIOの出力データを
選択する。このとき、フェーズIFで命令Joの実効ア
ドレス加算を行なうためのデータがAR102に設定さ
れる。フェーズIAでは命令I0の実効アドレス加算が
行なわれる。フェーズITCでは、命令H0のアドレス
変換および命令キャッシュアクセスが行なわれる。フェ
ーズrDでは、命令G0の解読が行なわれる。フェーズ
OAでは、命令Foのオペランド実効アドレス加算が行
なわれる。フェーズOTCでは、0EAR108の出力
は0、フェーズEXでは0RIIOの出力データ0が入
力される。フェーズEXには、Tリサイクルにも0RI
IOの出力データOが入力されるが、T、。サイクルに
は命令F6のオペランドデータが人力される。
送出されていたセレクト信号805の論理値が1からO
に変わり、セレクタ704は0RIIOの出力データを
選択する。このとき、フェーズIFで命令Joの実効ア
ドレス加算を行なうためのデータがAR102に設定さ
れる。フェーズIAでは命令I0の実効アドレス加算が
行なわれる。フェーズITCでは、命令H0のアドレス
変換および命令キャッシュアクセスが行なわれる。フェ
ーズrDでは、命令G0の解読が行なわれる。フェーズ
OAでは、命令Foのオペランド実効アドレス加算が行
なわれる。フェーズOTCでは、0EAR108の出力
は0、フェーズEXでは0RIIOの出力データ0が入
力される。フェーズEXには、Tリサイクルにも0RI
IOの出力データOが入力されるが、T、。サイクルに
は命令F6のオペランドデータが人力される。
第6図は従来方式、つまり第1図中のA)IRlol
、 EAHR106、バッファメモリ501、制御回路
602をパイプライン上に持たない方式における、条件
分岐命令の実行結果が分岐゛しないと確定した場合の、
条件分岐命令の分岐しない側に後続する命令のパイプラ
イン上における処理の流れを示す図、第7図は本実施例
の方式における同内容を示す図である。
、 EAHR106、バッファメモリ501、制御回路
602をパイプライン上に持たない方式における、条件
分岐命令の実行結果が分岐゛しないと確定した場合の、
条件分岐命令の分岐しない側に後続する命令のパイプラ
イン上における処理の流れを示す図、第7図は本実施例
の方式における同内容を示す図である。
従来方式では、条件分岐命令の実行結果が分岐しないと
確定したT6サイクルの次のサイクルで命令D0の実効
アドレス加算をするためのデータがフェーズIFに設定
され、T13サイクルにおいてやっと命令D0のオペラ
ンドデータがフェーズEXに入力される。これに対して
、本実施例の方式では、T6サイクルで既に命令D0は
フェーズEXにある。命令Doに関しては、6サイクル
の高速化が実現する。第7図から分かるように、命令E
0と命令F0の間が2サイクルあるため、命令F、以後
の命令では4サイクルの高速化が実現していることにな
る。
確定したT6サイクルの次のサイクルで命令D0の実効
アドレス加算をするためのデータがフェーズIFに設定
され、T13サイクルにおいてやっと命令D0のオペラ
ンドデータがフェーズEXに入力される。これに対して
、本実施例の方式では、T6サイクルで既に命令D0は
フェーズEXにある。命令Doに関しては、6サイクル
の高速化が実現する。第7図から分かるように、命令E
0と命令F0の間が2サイクルあるため、命令F、以後
の命令では4サイクルの高速化が実現していることにな
る。
以上説明したように本発明は、条件分岐命令の実行に際
し、常に分岐するという前提により、条件分岐命令の分
岐する側に後続する命令の先取りを行なう方式において
、条件分岐命令の分岐しない側に後続する命令の実効ア
ドレス、オペランドデータをパイプライン上に待機させ
ておくためのレジスタ、バッファメモリを設けることに
より、条件分岐命令の実行結果が分岐しない場合、条件
分岐命令の分岐しない方向に後続する命令の、パイプラ
イン上での処理の流れを速やかにすることが可能となり
、パイプラインの性能向上を図ることができる効果があ
る。
し、常に分岐するという前提により、条件分岐命令の分
岐する側に後続する命令の先取りを行なう方式において
、条件分岐命令の分岐しない側に後続する命令の実効ア
ドレス、オペランドデータをパイプライン上に待機させ
ておくためのレジスタ、バッファメモリを設けることに
より、条件分岐命令の実行結果が分岐しない場合、条件
分岐命令の分岐しない方向に後続する命令の、パイプラ
イン上での処理の流れを速やかにすることが可能となり
、パイプラインの性能向上を図ることができる効果があ
る。
第1図は本発明の情報処理装置の一実施例の要部のブロ
ック図、第2図は第1図の命令取り出しパイプライン、
オペランド取り出しパイプラインおよびそれぞれにおけ
る各フェーズを示す図、第3図は制御回路602の回路
図、第4図はバッファメモリ501のブロック図、第5
図は本実施例における主記憶から取り出されるべき命令
の配列を示す図、第6図、第7図は、従来の方法と本発
明による方法とを比較した、条件分岐命令の実行結果が
分岐しない場合の、パイプライン上の各フェーズにおけ
る命令処理の流れを示す図、第8図は、条件分岐命令が
解読されてから、判定回路603が条件分岐命令の実行
結果が分岐しないという判定を出し、更に条件分岐命令
の分岐しない側に後続する命令の処理を開始した後まで
の、制御回路602のパイプライン上における制御の様
子を示す図である。 +01−・・アドレス保持用レジスタ、102・−命令
アドレスレジスタ、 +03−・ディスプレイスメントレジスタ、104−・
・インデックスレジスタ、 105−・ペースレジスタ、 106・−実効アドレス保持用レジスタ、107−・レ
ジスタ、 10B −・・オペランド実効アドレスレジスタ、10
9−・・レジスタ、 110−・・レジスタ、 111−・・レジスタ群、 201−・実効アドレス生成用加算器、202−・オペ
ランドアドレス加算器、・・・命令アドレス変換回路、 ・・・オペランドアドレス変換回路、 −・命令キャッシュ、 ・・・オペランドキャッシュ、 ・・・バッファメモリ、 ・・・命令解読回路、 −・制御回路、 一判定回路、 ・・・演算回路、 〜704−・セレクタ、 〜805・−信号線。
ック図、第2図は第1図の命令取り出しパイプライン、
オペランド取り出しパイプラインおよびそれぞれにおけ
る各フェーズを示す図、第3図は制御回路602の回路
図、第4図はバッファメモリ501のブロック図、第5
図は本実施例における主記憶から取り出されるべき命令
の配列を示す図、第6図、第7図は、従来の方法と本発
明による方法とを比較した、条件分岐命令の実行結果が
分岐しない場合の、パイプライン上の各フェーズにおけ
る命令処理の流れを示す図、第8図は、条件分岐命令が
解読されてから、判定回路603が条件分岐命令の実行
結果が分岐しないという判定を出し、更に条件分岐命令
の分岐しない側に後続する命令の処理を開始した後まで
の、制御回路602のパイプライン上における制御の様
子を示す図である。 +01−・・アドレス保持用レジスタ、102・−命令
アドレスレジスタ、 +03−・ディスプレイスメントレジスタ、104−・
・インデックスレジスタ、 105−・ペースレジスタ、 106・−実効アドレス保持用レジスタ、107−・レ
ジスタ、 10B −・・オペランド実効アドレスレジスタ、10
9−・・レジスタ、 110−・・レジスタ、 111−・・レジスタ群、 201−・実効アドレス生成用加算器、202−・オペ
ランドアドレス加算器、・・・命令アドレス変換回路、 ・・・オペランドアドレス変換回路、 −・命令キャッシュ、 ・・・オペランドキャッシュ、 ・・・バッファメモリ、 ・・・命令解読回路、 −・制御回路、 一判定回路、 ・・・演算回路、 〜704−・セレクタ、 〜805・−信号線。
Claims (1)
- 【特許請求の範囲】 1、命令の取り出しおよびオペランドの取り出しのパイ
プラインを制御し、条件分岐命令の実行に際し、常に分
岐すると仮定して、該条件分岐命令の分岐する方向の後
続の命令の先取りを行なう情報処理装置において、 該条件分岐命令の分岐しない方向に後続する命令のアド
レスを保持するレジスタと、 同じく分岐しない方向に後続する命令のメモリオペラン
ドデータを保持するバッファメモリと、前記レジスタお
よび前記バッファメモリの出力を選択するセレクタと、 条件分岐命令の実行結果が分岐しないことがわかった場
合、前記セレクタにより前記レジスタおよび前記バッフ
ァメモリの出力を選択させる制御回路とを有することを
特徴とする情報処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP25352788A JPH02100136A (ja) | 1988-10-06 | 1988-10-06 | 情報処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP25352788A JPH02100136A (ja) | 1988-10-06 | 1988-10-06 | 情報処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH02100136A true JPH02100136A (ja) | 1990-04-12 |
Family
ID=17252608
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP25352788A Pending JPH02100136A (ja) | 1988-10-06 | 1988-10-06 | 情報処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH02100136A (ja) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5597643A (en) * | 1979-01-22 | 1980-07-25 | Tetsunori Nishimoto | Branch control unit |
-
1988
- 1988-10-06 JP JP25352788A patent/JPH02100136A/ja active Pending
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5597643A (en) * | 1979-01-22 | 1980-07-25 | Tetsunori Nishimoto | Branch control unit |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2500036B2 (ja) | ハイブリッドパイプライン接続プロセッサおよびその処理方法 | |
| US10303399B2 (en) | Data processing apparatus and method for controlling vector memory accesses | |
| US20190369995A1 (en) | Vector generating instruction | |
| US4954947A (en) | Instruction processor for processing branch instruction at high speed | |
| JPH0769812B2 (ja) | データ処理装置 | |
| JP3237858B2 (ja) | 演算装置 | |
| JPH03286332A (ja) | デジタルデータ処理装置 | |
| US12124728B2 (en) | Quick clearing of registers | |
| US6553474B2 (en) | Data processor changing an alignment of loaded data | |
| US6055628A (en) | Microprocessor with a nestable delayed branch instruction without branch related pipeline interlocks | |
| JPH02287626A (ja) | パイプライン方式の分岐命令制御装置 | |
| JPH0418635A (ja) | ディジタル信号プロセッサ | |
| US5828861A (en) | System and method for reducing the critical path in memory control unit and input/output control unit operations | |
| US20050033939A1 (en) | Address generation | |
| JPH0793151A (ja) | 命令供給装置 | |
| US20100153688A1 (en) | Apparatus and method for data process | |
| JP3625586B2 (ja) | プロセッサの命令実行制御システム | |
| JP2825315B2 (ja) | 情報処理装置 | |
| JP2005134987A (ja) | パイプライン演算処理装置 | |
| JPH0997180A (ja) | プログラマブルコントローラ | |
| JPH0512009A (ja) | デイジタル信号処理装置 | |
| JP2003140888A (ja) | マイクロプロセッサおよびコプロセッサ並びにそれらを備えた演算処理システム | |
| JPH01175635A (ja) | データ処理装置 | |
| JPS60105050A (ja) | パイプライン制御方式 | |
| JP2000250869A (ja) | マルチプロセッサの制御方法およびその装置 |