JP2901573B2 - スーパースカラー方式の情報処理装置 - Google Patents

スーパースカラー方式の情報処理装置

Info

Publication number
JP2901573B2
JP2901573B2 JP14168797A JP14168797A JP2901573B2 JP 2901573 B2 JP2901573 B2 JP 2901573B2 JP 14168797 A JP14168797 A JP 14168797A JP 14168797 A JP14168797 A JP 14168797A JP 2901573 B2 JP2901573 B2 JP 2901573B2
Authority
JP
Japan
Prior art keywords
instruction
tag
firmware
software
pointer
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
JP14168797A
Other languages
English (en)
Other versions
JPH10333905A (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 JP14168797A priority Critical patent/JP2901573B2/ja
Publication of JPH10333905A publication Critical patent/JPH10333905A/ja
Application granted granted Critical
Publication of JP2901573B2 publication Critical patent/JP2901573B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複雑なソフトウェ
ア命令を単純なファームウェア命令に展開し、プログラ
ム中に書かれている命令列とは異なる順番で実行する情
報処理装置に関し、特に、スーパースカラー方式の情報
処理装置に関する。
【0002】
【従来の技術】従来、演算処理装置においては性能を上
げるために複数の命令をオーバラップして実行するパイ
プライン処理が行われている。
【0003】データ依存のために、ある命令が実行でき
ない場合でも、その命令よりも後の命令で実行できる命
令があれば、その命令を先に実行することによってデー
タ依存による性能低下を避ける方法がある。この方法は
プログラム中の命令列とは異なる順番で命令を実行する
方法でout−of−order実行と呼ばれる。
【0004】out−of−orderで実行した命令
の結果をそのままレジスタファイルに格納すると、例外
が発生した場合に問題となる。例外が発生するとその例
外のために完了できなかった命令のアドレスが退避さ
れ、例外の処理を行った後、退避された命令のアドレス
から再び実行が開始される。
【0005】ところが、out−of−order実行
であるために、退避された命令アドレスの後続の命令が
例外発生時にすでに実行を完了していたとすると、その
命令は例外処理のあとに再び実行されてしまう。この問
題を解決するためにリオーダバッファが提案されてい
る。
【0006】特開平6−19707号公報の(13)頁
に記載されている従来のリオーダバッファのブロック図
を用いて説明する。図7は、この従来のリオーダバッフ
ァのブロック図であり、図7において、121はリオー
ダバッファであり、データを格納するデータフィールド
56とその格納先のレジスタ番号(デスティネーション
レジスタ番号)を格納するデスティネーションレジスタ
フィールド55からなるエントリー122を複数持ち、
out−of−orderで得られた演算器52の結果
データを一旦格納し、これをプログラムに書かれている
命令列の順番でレジスタファイル51にデータを格納す
るものである。
【0007】リオーダバッファ121に保持されたデー
タをレジスタファイル51に格納する前に、後続の命令
がそのデータを必要とする場合、レジスタファイル51
からの読み出しを禁止し、リオーダバッファ121から
データを供給する必要がある。これは、リオーダバッフ
ァ121の各エントリー122に依存検出回路57を設
け、エントリー122のデスティネーションレジスタフ
ィールド55に格納されているデスティネーションレジ
スタ番号と後続命令のソースレジスタ番号60及び61
を比較することによってデータ依存が検出され、データ
依存情報64,65によってエントリー122のデータ
フィールド56の出力が制御される。
【0008】ここで、リオーダバッファ121に同じデ
スティネーションレジスタ番号を持つエントリーが複数
ある場合、最新データを選択しなければならない。その
ため、通常、比較した結果、得られる複数の一致信号の
中から優先度をつけて選ぶ回路を有している。
【0009】
【発明が解決しようとする課題】第1の問題点は、従来
の技術において、複雑なソフトウェア命令を単純なファ
ームウェア命令に展開し、プログラム中に書かれている
命令列とは異なる順番で実行する演算処理装置におい
て、ソフトウェア命令実行中にイベント事象が発生した
場合、ソフトウェア命令間でイベント処理を行うことが
できないことである。
【0010】その理由は、ソフトウェア命令を複数のフ
ァームウェア命令に展開し、命令の実行順序もout−
of−orderであるためソフトウェア命令単位の区
切りが判別できないからである。
【0011】[発明の目的]本発明の目的は、ソフトウ
ェア命令単位のタグビットをリオーダバッファに登録す
ることにより、ソフトウェア命令間の区切りを認識で
き、ソフトウェア命令間で処理しなければならないイベ
ントが発生した場合でも正しく制御することを可能とし
た回路を提供することにある。
【0012】
【課題を解決するための手段】本発明は、前述した課題
を解決するための手段として、ソフトウェア命令を複数
のファームウェア命令に展開してプロセッサの1クロッ
クサイクル中に前記複数個のファームウェア命令を実行
することが可能な情報処理装置において、前記ソフトウ
ェア命令単位にタグを付与することで前記ソフトウェア
命令の区切りを認識する手段を具備したことを特徴とす
るスーパースカラー方式の情報処理装置を提供するもの
である。
【0013】また、ソフトウェア命令を複数のファーム
ウェア命令に展開してプロセッサの1クロックサイクル
中に複数個のファームウェア命令を実行することが可能
な演算処理装置において、前記ソフトウェア命令を複数
のファームウェア命令に展開する際に、前記ソフトウェ
ア命令毎に識別可能なSWタグを付与する回路27と、
前記ファームウェア命令毎に必要な登録内容とSWタグ
をinorderに登録するリオーダバッファ11と、
前記リオーダバッファ11に登録したエントリの上限を
示すヘッダーポインタ12と、現在実行中の命令が格納
されているエントリを示す実行ポインタ13と、前記エ
ントリの下限を示すトレイルポインタ14と、前記ソフ
トウェア命令間のイベント処理が発生した場合に、前記
ソフトウェア命令の区切りを判別し、前記トレイルポイ
ンタを前記ソフトウェア命令の区切りに移動するタグ制
御回路15と、を有することを特徴とするスーパースカ
ラー方式の情報処理装置を、上記手段とするものであ
る。
【0014】また、前記タグ制御回路15からタグ情報
110とキャンセル指示109を受け取り、各ステージ
毎に持ち回っているSWタグ番号31,32と比較する
タグチェック回路33,34を有することを特徴とする
スーパースカラー方式の情報処理装置でもある。本発明
のスーパースカラー方式は、イベント事象が発生した場
合にソフトウェア命令間を認識し、ソフトウェア命令間
で正しくイベント処理が行える回路を有することが特徴
である。
【0015】具体的には、ソフトウェア命令毎に識別可
能なSWタグを付与する回路27と、ファームウェア命
令毎に必要な登録内容とSWタグ番号を登録するリオー
ダバッファ11と、リオーダバッファ11のエントリー
の上限を示すヘッダーポインタ12と、現在実行中の命
令が格納されているエントリーを示す実行ポインタ13
と、エントリーの下限を示すトレイルポインタ14と、
ソフトウェア命令の区切りを判別するタグ制御回路15
を具備することを特徴とする。
【0016】
【作用】本発明によれば、ソフトウェア命令単位にSW
タグ番号を付与し、ファームウェア命令の情報とともに
SWタグ番号もリオーダバッファに登録することで、現
在実行中のソフトウェア命令を判断することができる。
【0017】これにより、イベント事象が発生した場合
でもリオーダバッファからSWタグ番号を抽出すること
で、ソフトウェア命令間を正しく判断することができる
ため、イベント処理を正常に行うことができる。
【0018】また、SWタグ番号を各ステージの情報と
合わせて持ち回っており、タグ制御回路からキャンセル
対象のSWタグを各ステージに通知し、各ステージでキ
ャンセル対象のステージか否かを判断することで無効な
データのみをキャンセルすることができる。
【0019】
【実施例】次に、本発明の実施例について図面を参照し
て説明する。
【0020】[構成]図1は、本発明のリオーダバッフ
ァの外部構成を示したブロック図である。
【0021】図1を参照すると、本発明の実施例は、フ
ァームウェア情報、SWタグを登録するリオーダバッフ
ァ11と、リオーダバッファに登録されている最古のフ
ァームウェア命令を指すヘッダーポインタ12と、現在
実行中のファームウェア命令を指す実行ポインタ13
と、リオーダバッファに次に登録する番地を指すトレイ
ルポインタ14と、リオーダバッファ11に登録されて
いるSWタグ情報105とイベント通知106からトレ
イルポインタの制御情報を生成するタグ制御回路15か
ら構成される。
【0022】図2は、ソフトウェア命令をファームウェ
ア命令に展開するブロック図である。
【0023】ソフトウェア命令を格納するソフトウェア
命令キュー21,22とソフトウェア命令のOPコード
と各フィールド情報からファームウェア命令を生成する
命令デコーダ23,24と、命令デコーダ23,24か
ら生成されたファームウェア命令を格納するファームウ
ェア命令キュー25,26と、実行部からの発行許可指
示によりSW命令単位にタグを生成するタグ生成回路2
7から構成される。
【0024】図3は、各パイプラインキャンセル回路を
示すブロック図である。
【0025】各ステージ毎にSWタグ番号31,32を
格納する手段と、タグ比較を行うタグチェック回路3
3,34と、比較結果でキャンセル対象であることを認
識した場合に、後述するバリッド35,36をクリアす
る論理積37,38から構成される。
【0026】[動作]次に、本発明の実施例の動作につ
いて、図2を参照して詳細に説明する。
【0027】ソフトウェア命令をファームウェア命令に
展開するイメージを図4に示す。図4に示すように、1
つのソフトウェア命令は、1〜n個のファームウェア命
令に展開される。図4の例だと、SW命令Aは2つのフ
ァームウェア命令に展開され、SW命令Bは3つのファ
ームウェア命令に展開される。
【0028】また、SW命令タグ番号は、ソフトウェア
命令単位に付与されるため、SW命令Aから展開された
ファームウェア命令は同一のSW命令タグ番号“0
1”、SW命令Bから展開されたファームウェア命令は
同一のSW命令タグ番号“02”が付与される。
【0029】ソフトウェア命令バス200には、命令フ
ェッチ部から供給された複数のソフトウェア命令が存在
する。ソフトウェア命令キュー21,22には、次に実
行するソフトウェア命令をソフトウェア命令バス200
より順次格納する。図2の場合、キューの数は2個とし
ているが、いくつでもかまわない。
【0030】図4を例にすると、SW命令Aはソフトウ
ェア命令キュー21に、SW命令Bはソフトウェア命令
キュー22に格納される。
【0031】ソフトウェア命令キューに格納されている
ソフトウェア命令は、命令発行許可指示207によっ
て、SW命令Aは、命令デコーダ23に、SW命令Bは
命令デコーダ24によりデコードされ、複数のファーム
ウェア命令に展開される。この場合、SW命令Aは2個
の、SW命令Bは3個のファームウェアに展開され、フ
ァームウェア命令キュー25,26に格納される。
【0032】また、命令発行許可指示207によりSW
タグ生成回路27からソフトウェア命令単位にタグ番号
が生成され、ファームウェア命令と合わせて、ファーム
ウェア命令キュー25,26に格納される。SWタグ番
号はソフトウェア命令毎に昇順に割り振られる。つま
り、古い命令のSW命令タグ番号程、値が小さくなる。
【0033】以上の動作により、ファームウェア命令キ
ュー25にはSWタグ番号“01”と2個のファームウ
ェア命令が、ファームウェア命令キュー26にはSW命
令タグ番号“02”と3個のファームウェア命令が格納
されている。
【0034】ファームウェアキュー25,26に格納さ
れたファームウェア命令とSWタグ番号はファームウェ
ア命令バス100に順次送出される。
【0035】次に、図1を参照して詳細に説明する。フ
ァームウェア命令バス100に送出されたファームウェ
ア命令の情報とSWタグ番号はリオーダバッファ登録パ
ス101を経由してリオーダバッファ11に登録され
る。
【0036】リオーダバッファ11に登録される内容の
例を図5に示す。図5に示すように、リオーダバッファ
11には登録内容が有効であるか無効であるかを表すバ
リッドVと、ファームウェア命令で指定されているデス
ティネーションレジスタ番号と、ペンディング状態であ
るかを判定するビジーフラグBと、SW命令タグ番号
と、ライトデータ、ステータス情報などが含まれてい
る。これらの情報がファームウェア命令単位に各エント
リーに登録される。
【0037】リオーダバッファ11は、循環型FIFO
構造になっており、各ポインタによって制御される。ヘ
ッダーポインタ12は、リオーダバッファ11に登録さ
れている最古のエントリー番号を示し、トレイルポイン
タ14は、ファームウェア命令バス100から次に登録
するエントリー番号を示し、実行ポインタ13は現在実
行中であるファームウェア命令のエントリー番号を示し
ている。
【0038】図6に、図4のファームウェアがリオーダ
バッファ11に登録されているイメージ図を示す。各フ
ァームウェア命令の情報はエントリー番号20〜24に
登録されており、SW命令Aの1つめファームウェア命
令が既に実行が完了しているとする。この場合、エント
リー番号20のステータスには終了(Done)が表示
される。その他の命令はまだ実行が完了していないため
ビジーフラグBは“1”であり、ステータスは実行中
(exec)、実行待ち(Ready)、ペンディング
状態(Wait)となっている。この状態では、トレイ
ルポインタ14は“25”、実行ポインタ13は“2
1”を指している。
【0039】この時にイベント通知106が通知される
と、タグ制御回路15は現在実行中である命令のエント
リー番号を実行ポインタ13から実行ポインタ番号10
3を経由して受け取る。実行ポインタ13は“21”を
指しているため、リオーダバッファ11のエントリー2
1に登録してあるSWタグ番号“01”をSWタグ情報
105から受け取る。タグ制御回路15でエントリー2
1のSWタグ番号と同一の番号をもつエントリーを検索
し、その中で最も新しく登録されたエントリー番号をさ
らに検索する。
【0040】検索した結果のエントリー番号(この場合
は“21”)に+1インクリメントした値をトレイルポ
インタ番号108にセットし、トレイルポインタセット
指示107を“1”にする。この指示によりセレクタ1
6は、トレイルポインタ番号108を選択し、トレイル
ポインタ14を、現在指しているエントリー番号“2
5”から“22”に変更する。
【0041】また、タグ制御回路15はキャンセル指示
109を発行するとともにキャンセル対象のタグ番号で
ある現在実行中のSWタグ番号“01”に+1インクリ
メントした値“02”をタグ情報110に送出する。
【0042】次に図3を用いてSWタグのキャンセル動
作を説明する。
【0043】各ステージには、ファームウェア命令を実
行するための情報以外に、SWタグ番号31,32を一
緒に持ち回っており、キャンセル指示109とタグ情報
110を受け取ると自ステージのSWタグ番号31,3
2と比較を行い、自ステージのSWタグ番号がタグ情報
110で通知された番号よりも大きければ自ステージの
情報は無効であるため、対応するステージのバリッドを
論理積37,38により“0”に落とす。
【0044】
【発明の効果】第1の効果は、複雑なソフトウェア命令
を単純なファームウェア命令に展開し、プログラム中に
かかれている命令列とは異なる順番で実行する演算処理
装置において、イベント処理が正しく行える。
【0045】その理由は、ソフトウェア命令単位にタグ
を付与することでソフトウェア命令の区切りを認識する
ことができるからである。
【図面の簡単な説明】
【図1】本発明のスーパースカラー回路の一実施例を示
すリオーダバッファの外部構成図である。
【図2】本発明のスーパースカラー回路の一実施例を示
すソフトウェア命令デコーダ廻りのブロック図である。
【図3】本発明のスーパースカラー回路のパイプライン
キャンセル回路を示すブロック図である。
【図4】本発明のスーパースカラー回路のファームウェ
ア命令の展開イメージ図である。
【図5】本発明のスーパースカラー回路のリオーダバッ
ファの登録内容である。
【図6】本発明のスーパースカラー回路の図4のファー
ムウェア命令列のリオーダバッファの登録内容である。
【図7】従来例のリオーダバッファの構成を示すブロッ
ク図である。
【符号の説明】
11 リオーダバッファ 12 ヘッダーポインタ 13 実行ポインタ 14 トレイルポインタ 15 タグ制御回路 21,22 ソフトウェア命令キュー 23,24 命令デコーダ 25,26 ファームウェア命令キューとSWタグ番
号 27 SWタグ生成回路 31,32 SWタグ番号 33,34 タグチェック回路 35,36 ステージバリッド 37,38 論理積
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平7−182160(JP,A) 特開 平7−182161(JP,A) 特開 平7−182162(JP,A) 特開 平7−182163(JP,A) 特開 平7−334364(JP,A) 特開 平8−190482(JP,A) 特開 平5−224987(JP,A) 特開 平5−289870(JP,A) 特開 昭61−245239(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 9/38

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 ソフトウェア命令を複数のファームウェ
    ア命令に展開してプロセッサの1クロックサイクル中に
    前記複数個のファームウェア命令を実行することが可能
    な情報処理装置において、 前記ソフトウェア命令単位にタグを付与することで前記
    ソフトウェア命令の区切りを認識する手段を具備したこ
    とを特徴とするスーパースカラー方式の情報処理装置。
  2. 【請求項2】 ソフトウェア命令を複数のファームウェ
    ア命令に展開してプロセッサの1クロックサイクル中に
    複数個のファームウェア命令を実行することが可能な演
    算処理装置において、 前記ソフトウェア命令を複数のファームウェア命令に展
    開する際に、前記ソフトウェア命令毎に識別可能なSW
    タグを付与する回路27と、 前記ファームウェア命令毎に必要な登録内容とSWタグ
    をinorderに登録するリオーダバッファ11と、 前記リオーダバッファ11に登録したエントリの上限を
    示すヘッダーポインタ12と、 現在実行中の命令が格納されているエントリを示す実行
    ポインタ13と、 前記エントリの下限を示すトレイルポインタ14と、 前記ソフトウェア命令間のイベント処理が発生した場合
    に、前記ソフトウェア命令の区切りを判別し、前記トレ
    イルポインタを前記ソフトウェア命令の区切りに移動す
    るタグ制御回路15と、を有することを特徴とするスー
    パースカラー方式の情報処理装置。
  3. 【請求項3】 前記タグ制御回路15からタグ情報11
    0とキャンセル指示109を受け取り、各ステージ毎に
    持ち回っているSWタグ番号31,32と比較するタグ
    チェック回路33,34を有することを特徴とする請求
    項2記載のスーパースカラー方式の情報処理装置。
JP14168797A 1997-05-30 1997-05-30 スーパースカラー方式の情報処理装置 Expired - Lifetime JP2901573B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14168797A JP2901573B2 (ja) 1997-05-30 1997-05-30 スーパースカラー方式の情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14168797A JP2901573B2 (ja) 1997-05-30 1997-05-30 スーパースカラー方式の情報処理装置

Publications (2)

Publication Number Publication Date
JPH10333905A JPH10333905A (ja) 1998-12-18
JP2901573B2 true JP2901573B2 (ja) 1999-06-07

Family

ID=15297891

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14168797A Expired - Lifetime JP2901573B2 (ja) 1997-05-30 1997-05-30 スーパースカラー方式の情報処理装置

Country Status (1)

Country Link
JP (1) JP2901573B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3701203B2 (ja) * 1999-04-22 2005-09-28 一 関 計算機システム

Also Published As

Publication number Publication date
JPH10333905A (ja) 1998-12-18

Similar Documents

Publication Publication Date Title
JP2746549B2 (ja) コンピュータシステム及びその動作方法
US6349382B1 (en) System for store forwarding assigning load and store instructions to groups and reorder queues to keep track of program order
US5341482A (en) Method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions
JP2937485B2 (ja) スーパースカラプロセッサにおけるトラップを検出して実行する方法及び装置
US7624253B2 (en) Determining register availability for register renaming
JP3132755B2 (ja) プロセッサのアーキテクチャ状態を維持するための方法および装置
US8171266B2 (en) Look-ahead load pre-fetch in a processor
EP0495165A2 (en) Overlapped serialization
JPH10283181A (ja) プロセッサ内で命令を発行するための方法および装置
US6301654B1 (en) System and method for permitting out-of-order execution of load and store instructions
US7376820B2 (en) Information processing unit, and exception processing method for specific application-purpose operation instruction
US6725365B1 (en) Branching in a computer system
US5469552A (en) Pipelined data processor having combined operand fetch and execution stage to reduce number of pipeline stages and penalty associated with branch instructions
US7441109B2 (en) Computer system with a debug facility for a pipelined processor using predicated execution
US5878242A (en) Method and system for forwarding instructions in a processor with increased forwarding probability
JP2001060152A (ja) 分岐予測を抑止する情報処理装置および方法
JP2901573B2 (ja) スーパースカラー方式の情報処理装置
US6775762B1 (en) Processor and processor system
JP2001117772A (ja) コンピュータ・プログラムのハザードを検出するシステム
JP2001134442A (ja) コンピュータ・プログラムのハザードを検出するシステム
EP1050805B1 (en) Transfer of guard values in a computer system
JPS5991551A (ja) 分岐先アドレス予測を行なう命令先取り装置
JP5093237B2 (ja) 命令処理装置
JP3082944B2 (ja) パイプライン処理装置
JP2894438B2 (ja) パイプライン処理装置