JP2812615B2 - 命令バッファ回路制御方式 - Google Patents

命令バッファ回路制御方式

Info

Publication number
JP2812615B2
JP2812615B2 JP20165792A JP20165792A JP2812615B2 JP 2812615 B2 JP2812615 B2 JP 2812615B2 JP 20165792 A JP20165792 A JP 20165792A JP 20165792 A JP20165792 A JP 20165792A JP 2812615 B2 JP2812615 B2 JP 2812615B2
Authority
JP
Japan
Prior art keywords
instruction
exception
counter
register
execution pipeline
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
JP20165792A
Other languages
English (en)
Other versions
JPH0651983A (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.)
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 JP20165792A priority Critical patent/JP2812615B2/ja
Publication of JPH0651983A publication Critical patent/JPH0651983A/ja
Application granted granted Critical
Publication of JP2812615B2 publication Critical patent/JP2812615B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、キャッシュから読み出
されて命令実行パイプラインに投入されていく命令列を
一時的に保持する命令バッファ回路を制御するための命
令バッファ回路制御方式に関し、特に、命令バッファ回
路とその周辺回路とのハードウェア量の削減を実現でき
る命令バッファ回路制御方式に関する。
【0002】情報処理装置で実行される各命令は、固有
のアルゴリズムを持っており、命令の実行に要するマシ
ンサイクル数は共通とは限らない。また、命令実行パイ
プライン上に存在する命令の間に、オペレーションソー
スの干渉がある場合には、先行命令のオペレーションが
終了するまでの間、後続命令のオペレーションはインタ
ロックされる。
【0003】このように、ある命令が幾らのマシンサイ
クル数で命令実行パイプラインを抜けるかということ
は、その命令が命令実行パイプラインに投入され、オペ
コード、オペランドがデコードされるまで不明である。
一方、命令供給の遅れにより命令実行パイプラインに空
きステージを生じさせないために、主記憶上にあって命
令実行が予想される命令列に対しては、命令実行とは必
ずしも同期させずに命令フェッチが行われる。
【0004】このように、命令実行の動作と命令供給の
動作とは同期しない。これから、この速度差を緩衝する
ために、命令バッファ回路が設けられて、複数回の命令
フェッチ動作に対応してフェッチされてくる命令列を保
持していく構成が採られている。この命令バッファ回路
とその周辺回路は、可能な限り少ないハードウェア量で
実装できる必要がある。
【0005】
【従来の技術】命令フェッチ制御部は、命令実行パイプ
ラインでの命令実行とは必ずしも同期せずに、命令キャ
ッシュに命令フェッチ要求を発行し、命令バッファ回路
は、この命令フェッチ要求に応答して読み出されてくる
命令を受け取ると、一時的に保持する構成を採って、命
令実行の逐次性にのっとって、しかるべき命令を切り分
けて命令実行パイプラインに投入していく。
【0006】図8に、この命令バッファ回路の構成と、
命令バッファ回路を制御するための周辺回路の構成を図
示する。この図の命令バッファ回路は、A系列、B系
列、C系列という3系列から構成されており、各系列
は、複数回の命令フェッチに対応して読み出されてくる
命令列を保持すべく、命令キャッシュから読み出される
命令を入力とする複数の命令レジスタ1の直列接続から
構成される。ここでは、1回の命令フェッチ量が8バイ
トであることに対応して、8バイト単位の命令レジスタ
1を単位として、4個の命令レジスタ1の直列接続で構
成される命令バッファ回路を図示してある。
【0007】この命令レジスタ1を制御するために、逐
次命令カウンタ2と、抽出回路3と、選択回路4とが具
備される。この逐次命令カウンタ2は、各系列対応に備
えられて、各系列の命令レジスタ1に保持される先頭命
令の展開位置を管理する。抽出回路3は、各系列対応に
備えられて、自系列の命令レジスタ1の保持データを入
力として、逐次命令カウンタ2の指す命令レジスタ1の
命令を抽出する。選択回路4は、全系列に共通に備えら
れて、3系列の抽出回路3の出力データを入力として、
指定されるセレクト信号に従って、抽出回路3の抽出す
る命令を選択出力する。
【0008】図9に、抽出回路3の詳細な回路構成を図
示する。図中のaはセレクタを表している。この図で
は、逐次命令カウンタ2が、命令レジスタ1の“09”
を先頭命令の展開位置として管理(先頭のカウンタ値は
バリッドビット)して、抽出回路3が、その位置から、
6バイトの命令を抽出する例を示してある。
【0009】ここで、命令バッファ回路を複数系列で構
成するのは、分岐命令の分岐成立確定以前に、分岐先命
令列のフェッチを開始できるようにするためであり、そ
して、分岐予測を行って分岐先命令列の先取りをすると
きに、分岐成立確定以前に、分岐予測した分岐先命令列
のフェッチを開始できるようにするためである。具体的
には、1つの系列が、現在命令実行パイプラインで実行
されている命令シーケンスの後続命令列フェッチのため
に使用され、残りの系列が、分岐命令のように、現在の
命令シーケンスを変更する命令に対応して、分岐先命令
列をフェッチするために使用されることになる。
【0010】一方、主記憶上のある命令のフェッチ動作
の過程で発生してマシンが認識した事象を、その命令の
実行時に、再びマシンに認識させマシンの状態遷移を引
き起こしたい場合がある。例えば、主記憶のある命令を
フェッチする過程で発生したアクセス例外は、その命令
の実行時に、マシンにより認識されて、しかるべきプロ
グラム割込を引き起こす。また、回路やプログラムのデ
バックのために、チェックポイントを設けることのでき
るマシンでは、チェックポイントとして定められた命令
のフェッチ時に、その命令にチェックポイントを表示す
るコードが付けられ、アクセス例外と同様に、その命令
の実行時に、マシンにより認識されて、しかるべきプロ
グラム割込を引き起こす。
【0011】従来の命令バッファ回路では、このような
アクセス例外やチェックポイントコード(以下、例外コ
ードと称する)を格納するレジスタを、図8で説明した
命令レジスタ1と同様な構成に従って備えるとともに、
これに対応させて図8の抽出回路3と同様な構成の回路
を備える構成を採って、この例外コードを命令レジスタ
1に格納される命令本体と同様なハンドリングに従っ
て、命令実行パイプラインに投入していくという構成を
採っていた。この構成に従い、例外コードは命令本体と
一体化して命令バッファ回路をシフトし、逐次命令カウ
ンタ1により示される番地の例外コードは、命令本体と
一緒に命令実行パイプラインに投入されて、命令実行パ
イプラインで例外処理を引き起こすことになる。
【0012】
【発明が解決しようとする課題】しかしながら、このよ
うな従来技術では、命令バッファ回路のハードウェア量
が大きくなるとともに、その周辺回路のハードウェア量
も大きくなるというという問題点があった。そして、周
辺回路のハードウェア量が増加することで、遅延時間が
増大してしまうという問題点もあったのである。
【0013】本発明はかかる事情に鑑みてなされたもの
であって、キャッシュから読み出されて命令実行パイプ
ラインに投入されていく命令列を一時的に保持するため
に用意される命令バッファ回路と、その周辺回路とのハ
ードウェア量の削減を実現できる新たな命令バッファ回
路制御方式の提供を目的とする。
【0014】
【課題を解決するための手段】図1に本発明の原理構成
を図示する。図中、100は命令キャッシュ、200は
命令実行パイプラインである。
【0015】1は図8でも説明した命令バッファ回路を
構成する命令レジスタである。この命令レジスタ1は複
数直列に接続され、命令キャッシュ100から読み出さ
れる命令を入力として、この命令を順次シフトしつつ保
持していく。ここで、説明の便宜上、命令レジスタ1の
アドレスは、命令キャッシュ100に接続する方を大と
する。
【0016】2は図8でも説明した逐次命令カウンタで
ある。この逐次命令カウンタ2は、命令レジスタ1に命
令が保持されているか否かを表示するバリッドビットを
管理するとともに、命令レジスタ1に保持される先頭命
令の展開位置を計数値に従って管理する。この管理処理
のために、逐次命令カウンタ2は、命令キャッシュ10
0から命令がフェッチされると、命令レジスタ1内で命
令が一斉にシフトすることになるので、そのシフト量に
合わせて計数値をディクリメントするとともに、命令実
行パイプライン200から次命令の提示要求があると、
それに応じて命令が命令実行パイプライン200に投入
されていくので、その投入される命令の命令長分インク
リメントする。
【0017】3は図8でも説明した抽出回路である。こ
の抽出回路3は、命令レジスタ1の保持する命令を入力
として、逐次命令カウンタ2の指す命令レジスタ1の命
令を選択して命令実行パイプライン200に投入する。
【0018】5は本発明に特徴的な例外コードレジスタ
である。この例外コードレジスタ5は、命令キャッシュ
100からフェッチされる命令に付加されている例外コ
ードを保持する。
【0019】6は本発明に特徴的な例外命令カウンタで
ある。この例外命令カウンタ6は、命令レジスタ1に保
持されている命令の中に例外コードの付加される命令が
保持されているか否かを表示するバリッドビットを管理
するとともに、例外コードの付加先となる命令部分の命
令レジスタ1上での展開位置を計数値に従って管理す
る。この管理処理のために、例外命令カウンタ6は、例
外コードの付加される命令が命令レジスタ1上に展開さ
れているときには、命令キャッシュ100から命令がフ
ェッチされると、命令レジスタ1内で命令が一斉にシフ
トすることになるので、そのシフト量に合わせて計数値
をディクリメントする。ここで、例外コードの付加され
る命令は決まっているものであることから、命令実行パ
イプライン200から次命令の提示要求があっても、そ
の計数値をインクリメントすることはない。
【0020】7は本発明に特徴的な例外コード制御回路
である。この例外コード制御回路7は、逐次命令カウン
タ2の計数値と、例外命令カウンタ6の計数値と、命令
実行パイプライン200に投入される命令の命令長とか
ら、例外コードレジスタ5の管理する例外コードを命令
実行パイプライン200に投入するか否かを制御する。
【0021】
【作用】本発明では、例外コードレジスタ5が、命令レ
ジスタ1に保持される命令の持つ例外コードを管理し、
例外命令カウンタ6が、この例外コードの付加先となる
命令部分の命令レジスタ1上での展開位置を管理すると
きにあって、例外コード制御回路7は、例外命令カウン
タ6の管理する計数値と、逐次命令カウンタ2の管理す
る計数値との差分値から求まる命令長(命令レジスタ1
のアドレスの振り方が逆になるときには、逐次命令カウ
ンタ2の管理する計数値と、例外命令カウンタ6の管理
する計数値との差分値から求まる命令長となる)が、命
令実行パイプライン200に投入される命令の命令長よ
りも大きいときには、命令実行パイプライン200に投
入される命令は例外コードを持たない命令であるので、
例外コードレジスタ5の管理する例外コードを命令実行
パイプライン200に投入しないよう制御する。
【0022】一方、逐次命令カウンタ2の管理する計数
値と、例外命令カウンタ6の管理する計数値との差分値
から求まる命令長が、命令実行パイプライン200に投
入される命令の命令長よりも小さいときには、命令実行
パイプライン200に投入される命令は例外コードを持
つ命令であるので、例外コードレジスタ5の管理する例
外コードを命令実行パイプライン200に投入するよう
制御する。
【0023】このように、本発明では、例外コードレジ
スタ5と、例外命令カウンタ6と、例外コード制御回路
7という小さなハードウェア量でもって、例外コードを
命令実行パイプライン200に投入していけるようにな
るのである。
【0024】
【実施例】以下、実施例に従って本発明を詳細に説明す
る。図2に、本発明の一実施例を図示する。図中、図1
で説明したものと同じものについては同一の記号で示し
てある。ここで、この実施例では、A系列、B系列、C
系列という3系列から構成される命令バッファ回路を想
定しており、1回の命令フェッチ量が8バイトであるこ
とに対応して、各命令レジスタ1は8バイトを持ち、4
回分の命令フェッチ量を保持可能にすべく4個の命令レ
ジスタ1の直列接続により構成されるもので開示してあ
る。
【0025】また、説明の便宜上、図中に示すように、
A系列で説明するならば、命令キャッシュ100からフ
ェッチされる命令を入力とする命令レジスタ1をIBR
A3、このIBRA3に直列接続する命令レジスタ1を
IBRA2、このIBRA2に直列接続する命令レジス
タ1をIBRA1、このIBRA1に直列接続する命令
レジスタ1をIBRA0で表すとともに、図9に示した
ように、IBRA0のアドレスを“00”から“0
3”、IBRA1のアドレスを“04”から“07”、
IBRA2のアドレスを“08”から“0B”、IBR
A3のアドレスを“0C”から“0F”と定義する。
【0026】300は命令提示制御部であって、どの系
列から命令を読み出して命令実行パイプライン200に
投入するかを指示する投入指示信号を出力するととも
に、命令レジスタ1の保持する命令を低アドレス側の命
令レジスタ1にシフトすることを指示するバブルアップ
信号を出力するもの、8は命令提示制御部300に対応
付けて備えられるデコーダであって、命令提示制御部3
00の出力する投入指示信号の示す系列番号をデコード
するものである。
【0027】9は逐次命令カウンタ2に対応付けて備え
られるデコーダであって、命令提示制御部300が自系
列についてのバブルアップ信号を出力するときに“−
4”を出力するもの、10は例外命令カウンタ6に対応
付けて備えられるデコーダであって、命令提示制御部3
00が自系列についてのバブルアップ信号を出力すると
きに“−4”を出力するもの、11はAND回路であっ
て、命令実行パイプライン200が次命令提示要求を発
行するときに、デコーダ8の出力信号が自系列を表示し
ているときには、逐次命令カウンタ2に対して更新信号
を出力するものである。
【0028】12は逐次命令カウンタ2に対応付けて備
えられる加算器であって、命令提示制御部300がバブ
ルアップ信号を出力するときに、逐次命令カウンタ2の
計数値と、デコーダ9の出力する“−4”とを加算し
て、逐次命令カウンタ2の計数値をこの加算値に更新す
るとともに、AND回路11が更新信号を出力するとき
に、逐次命令カウンタ2の計数値と、命令実行パイプラ
イン200に投入されることになる命令の命令長(後述
するデコーダ18が出力してくる)とを加算して、逐次
命令カウンタ2の計数値をこの加算値に更新するもので
ある。
【0029】13は例外命令カウンタ6に対応付けて備
えられる加算器であって、命令提示制御部300がバブ
ルアップ信号を出力するときに、例外命令カウンタ6の
計数値と、デコーダ10の出力する“−4”とを加算し
て、例外命令カウンタ6の計数値をこの加算値に更新す
るものである。
【0030】ここで、加算器12,13が、“−4”を
加算して逐次命令カウンタ2/例外命令カウンタ6の計
数値を更新していくのは、上述のように、8バイトの命
令レジスタ1に“4”単位のアドレスを割り付けている
ことに対応して、命令のフェッチ処理に従って、命令レ
ジスタ1上に保持される命令の展開アドレスが“4”分
低アドレス側にシフトするので、その分計数値を低アド
レス側にシフトさせていくことにその理由がある。ま
た、加算器12が、投入命令長を加算して逐次命令カウ
ンタ2の計数値を更新していくのは、命令の投入処理に
従って、命令レジスタ1上に保持される先頭命令の展開
アドレスが投入命令長分高アドレス側にシフトするの
で、その分計数値を高アドレス側にシフトさせていくこ
とにその理由がある。
【0031】14は命令ステージであって、抽出回路3
の出力する命令を命令実行パイプライン200に投入す
べく保持するもの、15は例外ステージであって、例外
コードレジスタ5の保持する例外コードを読み出して命
令実行パイプライン200に投入すべく保持するもので
ある。命令レジスタ1に保持される先頭命令が、この命
令ステージ14に保持されるものであることから、逐次
命令カウンタ2は、この命令ステージ14に保持される
命令の命令レジスタ1上の展開アドレスを管理すること
になる。
【0032】16は各系列の命令ステージ14の出力信
号を入力とする選択回路であって、デコーダ8の出力信
号の指す系列の命令ステージ14を選択して、その命令
ステージ14の保持する命令を命令実行パイプライン2
00に投入するもの、17は各系列の例外ステージ15
の出力信号を入力とする選択回路であって、デコーダ8
の出力信号の指す系列の例外ステージ15を選択して、
その例外ステージ15の保持する例外コードを命令実行
パイプライン200に投入するものである。
【0033】18は命令ステージ14に対応付けて備え
られるデコーダであって、命令ステージ14に保持され
る命令の命令長をデコードするもの、19は加算器であ
って、逐次命令カウンタ2の管理するアドレスと、デコ
ーダ18の出力する命令長とを加算して、抽出回路3に
対して抽出処理実行のためのアドレス信号として与える
ものである。この加算器19の出力するアドレス信号
は、次に命令レジスタ1から読み出す命令のアドレス情
報を表している。
【0034】次に、このように構成される実施例の動作
処理について説明する。命令提示制御部300は、図示
しない命令フェッチ制御部からフェッチ命令の転送要求
があると、格納先系列の命令レジスタ1、逐次命令カウ
ンタ2、例外命令カウンタ6、デコーダ9及びデコーダ
10に対してバブルアップ信号を送出する。このバブル
アップ信号を受け取ると、命令レジスタ1は、保持して
いる命令列を低アドレス側の命令レジスタ1に8バイト
分シフトする。そして、このシフト処理が終了すると、
命令キャッシュ100から送られてくるフェッチ命令を
IBRA3に保持する。このとき、このフェッチ命令に
例外コードが付加されているときには、例外コードレジ
スタ5は、その例外コードを保持するとともに、例外命
令カウンタ6は、その例外コードの付加先の命令部分の
展開アドレスを登録する。
【0035】そして、命令提示制御部300からバブル
アップ信号を受け取ると、デコーダ9は、“−4”を出
力し、この出力とバブルアップ信号の出力とを受けて、
加算器12は、8バイト分低アドレス側にシフトした命
令レジスタ1上の先頭命令の展開アドレスを出力してく
るので、逐次命令カウンタ2は、バブルアップ信号を受
け取るときに、この加算器12の更新値を受け取ること
で、命令レジスタ1上に保持される先頭命令の展開アド
レスの更新を実行する。
【0036】この処理と同様に、命令提示制御部300
からバブルアップ信号を受け取ると、デコーダ10は、
“−4”を出力し、この出力とバブルアップ信号の出力
とを受けて、加算器13は、8バイト分低アドレス側に
シフトした例外コードの付加先となる命令部分の命令レ
ジスタ1上での展開アドレスを出力してくるので、逐次
命令カウンタ2は、バブルアップ信号を受け取るとき
に、この加算器12の更新値を受け取ることで、例外コ
ードの付加先となる命令部分の命令レジスタ1上での展
開アドレスの更新を実行する。
【0037】一方、命令提示制御部300は、命令実行
パイプライン200から命令の投入指示があると、デコ
ーダ8を介して、選択回路16,17に対して投入命令
の系列番号を通知するとともに、AND回路11を介し
て、逐次命令カウンタ2に対して更新信号を送出する。
この更新信号とデコーダ18の出力する命令長とを受け
て、加算器12は、投入命令長分高アドレス側にシフト
した命令レジスタ1上の先頭命令の展開アドレスを出力
してくるので、逐次命令カウンタ2は、更新信号を受け
取るときに、この加算器12の更新値を受け取ること
で、命令レジスタ1上に保持される先頭命令の展開アド
レスの更新を実行する。
【0038】このようにして、逐次命令カウンタ2は、
命令レジスタ1上に保持される先頭命令の展開アドレス
を管理し、例外命令カウンタ6は、例外コードの付加先
となる命令部分の命令レジスタ1上での展開アドレスを
管理することになる。
【0039】この管理処理が実行されるときにあって、
抽出回路3は、命令ステージ14の保持する命令が選択
回路16の選択処理に従って選択されて命令実行パイプ
ライン200に投入されると、デコーダ19の出力する
次アドレス情報に従って、次に命令実行パイプライン2
00に投入されることになる命令を命令レジスタ1から
抽出して命令ステージにセットしていく。このセット処
理に続いて、逐次命令カウンタ2は、AND回路11の
出力する更新信号に従って計数値を更新することで、命
令ステージ14にセットされた命令の命令レジスタ上の
展開アドレスの管理処理に入る。
【0040】このように動作していくときにあって、例
外コード制御回路7は、例外命令カウンタ6の管理する
例外コードの付加される命令部分の展開アドレスと、逐
次命令カウンタ2の管理する先頭命令の展開アドレスと
の差分値より求まる命令長が、命令ステージ14にセッ
トされている命令の命令長よりも大きいときには、例外
ステージ15に対してラッチ信号を送出しないよう処理
する。これにより、命令ステージ14にセットされる命
令が命令実行パイプライン200に投入されていくとき
に、この命令には、例外コードが付加されないよう制御
される。
【0041】一方、例外命令カウンタ6の管理する例外
コードの付加される命令部分の展開アドレスと、逐次命
令カウンタ2の管理する先頭命令の展開アドレスとの差
分値より求まる命令長が、命令ステージ14にセットさ
れている命令の命令長よりも小さいときには、例外ステ
ージ15に対してラッチ信号を送出することで、例外コ
ードレジスタ5の保持する例外コードを例外ステージ1
5にセットしていくよう処理する。これにより、命令ス
テージ14にセットされる命令が命令実行パイプライン
200に投入されていくときに、この命令には、例外コ
ードが付加されていくよう制御される。
【0042】図3ないし図5に従って、この例外コード
制御回路7の制御処理について具体的に説明する。図3
に示すように、命令レジスタ1のアドレス“03”に先
頭命令の命令1が保持され、これに続いて、命令レジス
タ1のアドレス“06”に命令2が保持され、これに続
いて、命令レジスタ1のアドレス“09”に保持され、
かつアドレス“0A”に例外コードの付加される命令3
が保持され、これに対応して、命令ステージ14に命令
1がセットされている場合を想定する。このとき、逐次
命令カウンタ2は、バリッドビットを除くと、命令1の
展開アドレス“0011”を管理し、例外命令カウンタ
6は、バリッドビットを除くと、例外コードの展開アド
レス“1010”を管理する。
【0043】このときには、例外命令カウンタ6の管理
する例外コードの付加される命令部分の展開アドレス
と、逐次命令カウンタ2の管理する先頭命令の展開アド
レスとの差分値より求まる命令長は“7”であり、一
方、命令実行パイプライン200に投入される命令1の
命令長は“3”であるので、例外コードレジスタ5に保
持される例外コードは、この命令1に対してのものでは
ない。これから、例外コード制御回路7は、例外ステー
ジ15に例外コードをセットしていかないよう制御す
る。この制御処理に従って、命令1のみが命令実行パイ
プライン200に投入されることになる。
【0044】命令1が命令実行パイプライン200に投
入されると、今度は、命令ステージ14に命令2がセッ
トされるとともに、図4に示すように、逐次命令カウン
タ2は、バリッドビットを除くと、命令2の展開アドレ
ス“0110”を管理し、例外命令カウンタ6は、バリ
ッドビットを除くと、例外コードの展開アドレス“10
10”を管理する。
【0045】このときには、例外命令カウンタ6の管理
する例外コードの付加される命令部分の展開アドレス
と、逐次命令カウンタ2の管理する先頭命令の展開アド
レスとの差分値より求まる命令長は“4”であり、一
方、命令実行パイプライン200に投入される命令1の
命令長は“3”であるので、例外コードレジスタ5に保
持される例外コードは、この命令2に対してのものでは
ない。これから、例外コード制御回路7は、例外ステー
ジ15に例外コードをセットしていかないよう制御す
る。この制御処理に従って、命令2のみが命令実行パイ
プライン200に投入されることになる。
【0046】命令2が命令実行パイプライン200に投
入されると、今度は、命令ステージ14に命令3がセッ
トされるとともに、図5に示すように、逐次命令カウン
タ2は、バリッドビットを除くと、命令3の展開アドレ
ス“1001”を管理し、例外命令カウンタ6は、バリ
ッドビットを除くと、例外コードの展開アドレス“10
10”を管理する。
【0047】このときには、例外命令カウンタ6の管理
する例外コードの付加される命令部分の展開アドレス
と、逐次命令カウンタ2の管理する先頭命令の展開アド
レスとの差分値より求まる命令長は“1”であり、一
方、命令実行パイプライン200に投入される命令3の
命令長は“3”であるので、例外コードレジスタ5に保
持される例外コードは、この命令3に対してのものであ
る。これから、例外コード制御回路7は、例外ステージ
15に例外コードをセットしていくよう制御する。この
制御処理に従って、命令3と例外コードとが命令実行パ
イプライン200に投入されることになる。
【0048】このようにして、本発明では、例外コード
の保持機構に関しては、命令レジスタ1のようなレジス
タ手段を直列接続する必要はなく、ただ単に、例外コー
ドレジスタ5を備えるだけで足りる。また、例外コード
の命令実行パイプライン200への投入機構に関して
は、抽出回路3のような複雑な回路を用意する必要はな
く、簡単な回路構成で実現できる例外コード制御回路7
を用意すれば足りるのである。
【0049】次に、図6に従って、例外命令カウンタ6
がセットされるタイミングについて説明する。図中のI
−IT−IB−IRのパイプラインは、命令キャッシュ
100と上述の命令バッファ回路との間に設置される命
令フェッチパイプラインを表している。
【0050】命令フェッチ制御部は、記憶制御部(上述
の命令キャッシュ100を制御するもの)が命令フェッ
チ要求を受付可能な状態であることを確認すると、記憶
制御部に対して命令フェッチ要求を発行し、命令フェッ
チパイプラインを起動する。これにより、命令フェッチ
パイプラインは、Iステージに入る。このIステージで
は、命令フェッチ要求が有効であることを示すリクエス
トバリッドや、命令フェッチ要求を出した系列を表示す
るリクエストID等を受け取って、これらのタグを以降
のステージに流していく。
【0051】Iステージに続くITステージの所で、記
憶制御部はTLBを索引する。そして、ITステージに
続くIBステージの所で、記憶制御部は、TLBの索引
により得られた実アドレスを用いて命令キャッシュ10
0を検索してフェッチデータを得て、このフェッチデー
タとクロックイネーブルとを命令フェッチパイプライン
に送出してくるので、これを受け取る。
【0052】IBステージに続くIRステージに遷移し
た時点で、命令フェッチパイプラインは、命令レジスタ
1にフェッチデータをセットする。このステージで、記
憶制御部がステイタスバリッド信号を送出してきた場
合、フェッチ要求元の命令フェッチ制御部は、フェッチ
データが有効であることを知る。フェッチデータの有効
性が確認できると、命令バッファ回路は、命令実行パイ
プライン200へ命令を投入して、命令実行パイプライ
ンの最初のステージを有効にする。
【0053】以上の1つの命令フェッチ動作の過程にお
いて、記憶域へのアクセスに関して何らかの例外が発生
した場合には、例外事象がコード化され、IRステージ
において記憶制御部から送られてくる。例外発生が確認
されると、例外命令カウンタ6のバリッドビットがセッ
トされるとともに、その命令の命令レジスタ1上でのア
ドレス位置がセットされる。
【0054】このようにして、例外命令カウンタ6はセ
ットされることになる。次に、図7に従って、例外命令
カウンタ6のバリッドビットがリセットされるタイミン
グについて説明する。図中のI−IT−IB−IRのパ
イプラインは命令フェッチパイプライン、D−A−T−
B−E−Wは命令実行パイプライン200を表してい
る。
【0055】図7(b)に示すように、主記憶上の“0
100”番地から連続する命令ストリームAの命令列に
対して命令フェッチが行われているとする。この命令ス
トリームAのフェッチには、例えば、上述の命令バッフ
ァ回路のA系列が使用される。この命令ストリームAに
あって、“0124”番地の命令は分岐命令Aである。
【0056】命令ストリームAに対する連続的な命令フ
ェッチ要求の送出が行われる過程で、図7(a)のに
示すTステージで、分岐命令Aに対する命令フェッチが
行われると、分岐命令Aのアドレスが命令フェッチパイ
プラインをタグとなって流れる際に、分岐履歴等から分
岐命令Aの分岐先命令アドレスが得られ、図7(b)に
示すように、この分岐先命令列に対して命令フェッチが
開始される。この分岐先命令の命令ストリームBには、
例えば、上述の命令バッファ回路のB系列が使用され
る。
【0057】分岐先命令列フェッチにおいて例外が検出
され、図7(a)のに示すRステージで、B系列に対
して例外コードが送られ、B系列の例外命令カウンタ6
のバリッドビットがセットされる。図7(a)のに示
すように、命令実行パイプライン200のあるステージ
で、分岐命令Aの分岐の不成立が確定するとする。分岐
不成立が確定すると、命令ストリームBは実行されない
ことが分かるので、図7(a)のに示すように、命令
ストリームBに使用されていたB系列に対してキャンセ
ル信号が送出される。このキャンセル信号に従って、B
系列の例外命令カウンタ6のバリッドがリセットされ
る。
【0058】このようにして、例外命令カウンタ6はリ
セットされることになる。
【0059】
【発明の効果】以上説明したように、本発明によれば、
キャッシュから読み出されて命令実行パイプラインに投
入されていく命令列を一時的に保持する命令バッファ回
路にあって、命令に付加される例外コードについては、
従来技術の必要とした複雑な保持機構や複雑な抽出機構
を備える必要がないことから、命令バッファ回路とその
周辺回路とのハードウェア量を大幅に削減できるように
なる。
【図面の簡単な説明】
【図1】本発明の原理構成図である。
【図2】本発明の一実施例である。
【図3】実施例の動作処理の説明図である。
【図4】実施例の動作処理の説明図である。
【図5】実施例の動作処理の説明図である。
【図6】例外命令カウンタのセットタイミングの説明図
である。
【図7】例外命令カウンタのリセットタイミングの説明
図である。
【図8】命令バッファ回路の説明図である。
【図9】抽出回路の説明図である。
【符号の説明】
1 命令レジスタ 2 逐次命令カウンタ 3 抽出回路 5 例外コードレジスタ 6 例外命令カウンタ 7 例外コード制御回路 100 命令キャッシュ 200 命令実行パイプライン

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 フェッチされた命令列を順次保持する複
    数の命令レジスタ(1) から構成される命令バッファ回路
    と、該命令レジスタ(1) に保持される先頭命令の展開位
    置を管理する逐次命令カウンタ(2) とを備えて、命令実
    行パイプライン(200) に対して、先頭命令からの順番に
    従って該命令バッファ回路の保持する命令を投入してい
    く構成を採る命令バッファ回路制御方式において、 命令に付加される例外コードを管理する例外コードレジ
    スタ(5) と、 上記例外コードの付加先となる命令部分の命令レジスタ
    (1) 上での展開位置を管理する例外命令カウンタ(6) と
    を備え、 上記逐次命令カウンタ(2) の管理データと上記例外命令
    カウンタ(6) の管理データとの差分値から求まる命令長
    と、命令実行パイプライン(200) に投入される命令の命
    令長との大小に従って、上記例外コードレジスタ(5) の
    管理する例外コードを命令実行パイプライン(200) に投
    入するか否かを制御していくよう処理することを、 特徴とする命令バッファ回路制御方式。
  2. 【請求項2】 請求項1記載の命令バッファ回路制御方
    式において、 逐次命令カウンタ(2) の管理データと例外命令カウンタ
    (6) の管理データとの差分値から求まる命令長が、命令
    実行パイプライン(200) に投入される命令の命令長より
    も大きいときには、例外コードを命令実行パイプライン
    (200) に投入しないよう制御し、一方、小さいときに
    は、例外コードを命令実行パイプライン(200) に投入す
    るよう制御することを、 特徴とする命令バッファ回路制御方式。
  3. 【請求項3】 請求項1又は2記載の命令バッファ回路
    制御方式において、 命令バッファ回路が複数の系列に対応して複数備えら
    れ、これに対応して逐次命令カウンタ(2) が各系列対応
    に備えられるときにあって、例外コードレジスタ(5) 及
    び例外命令カウンタ(6) を各系列対応に備えるよう構成
    されることを、 特徴とする命令バッファ回路制御方式。
JP20165792A 1992-07-29 1992-07-29 命令バッファ回路制御方式 Expired - Lifetime JP2812615B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP20165792A JP2812615B2 (ja) 1992-07-29 1992-07-29 命令バッファ回路制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20165792A JP2812615B2 (ja) 1992-07-29 1992-07-29 命令バッファ回路制御方式

Publications (2)

Publication Number Publication Date
JPH0651983A JPH0651983A (ja) 1994-02-25
JP2812615B2 true JP2812615B2 (ja) 1998-10-22

Family

ID=16444733

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20165792A Expired - Lifetime JP2812615B2 (ja) 1992-07-29 1992-07-29 命令バッファ回路制御方式

Country Status (1)

Country Link
JP (1) JP2812615B2 (ja)

Also Published As

Publication number Publication date
JPH0651983A (ja) 1994-02-25

Similar Documents

Publication Publication Date Title
TW469406B (en) System for processing clustered branch instructions
JP2746549B2 (ja) コンピュータシステム及びその動作方法
US7281119B1 (en) Selective vertical and horizontal dependency resolution via split-bit propagation in a mixed-architecture system having superscalar and VLIW modes
US4858104A (en) Preceding instruction address based branch prediction in a pipelined processor
EP0352935B1 (en) Pipelined processor
EP0357188B1 (en) Pipelined processor
US20050198480A1 (en) Apparatus and method of controlling instruction fetch
US5313644A (en) System having status update controller for determining which one of parallel operation results of execution units is allowed to set conditions of shared processor status word
JP2000330789A (ja) コンピュータシステムおよびその命令実行方法
US6131158A (en) Data processing system capable of executing groups of instructions, including at least one arithmetic instruction, in parallel
JP2560988B2 (ja) 情報処理装置および処理方法
JPH1021074A (ja) 割り込み制御方式、プロセッサ及び計算機システム
JP2001060153A (ja) 情報処理装置
US5461715A (en) Data processor capable of execution of plural instructions in parallel
JP3469469B2 (ja) 情報処理装置
US5745725A (en) Parallel instruction execution with operand availability check during execution
JP3800533B2 (ja) プログラムカウンタ制御方法及びプロセッサ
JP3335379B2 (ja) ブランチ・ヒストリーを持つ命令実行処理装置
JP3839755B2 (ja) 命令制御方法及びプロセッサ
JP2812615B2 (ja) 命令バッファ回路制御方式
US4924377A (en) Pipelined instruction processor capable of reading dependent operands in parallel
JP3606435B2 (ja) モードを変更する分岐命令を制御する命令処理装置および方法
US6789185B1 (en) Instruction control apparatus and method using micro program
US5745723A (en) Data processing system capable of execution of plural instructions in parallel
US5038280A (en) Information processing apparatus having address expansion function

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: 19980721

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080807

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090807

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090807

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100807

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110807

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120807

Year of fee payment: 14

EXPY Cancellation because of completion of term