JP3475861B2 - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JP3475861B2
JP3475861B2 JP18336099A JP18336099A JP3475861B2 JP 3475861 B2 JP3475861 B2 JP 3475861B2 JP 18336099 A JP18336099 A JP 18336099A JP 18336099 A JP18336099 A JP 18336099A JP 3475861 B2 JP3475861 B2 JP 3475861B2
Authority
JP
Japan
Prior art keywords
instruction
operand
register
valid
data
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 - Fee Related
Application number
JP18336099A
Other languages
English (en)
Other versions
JP2001014163A (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 Corp
Original Assignee
NEC Corp
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 Corp filed Critical NEC Corp
Priority to JP18336099A priority Critical patent/JP3475861B2/ja
Publication of JP2001014163A publication Critical patent/JP2001014163A/ja
Application granted granted Critical
Publication of JP3475861B2 publication Critical patent/JP3475861B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ処理装置に
関し、特に命令パイプラインにおいてバイパス動作を行
うデータ処理装置に関する。
【0002】
【従来の技術】データ処理装置の高速化に伴い、必要な
処理を複数のステージに分割して各ステージ間の処理を
順次並列に行うパイプライン処理が利用されている。特
に、プロセッサが命令をフェッチしてから演算器等に命
令を発行するまでの処理に適用されるパイプラインを、
命令パイプラインという。パイプライン処理では、各ス
テージをより細分化していくことにより、動作周波数を
向上することができ、また並列に処理される命令が増加
して、性能向上を図ることができる。
【0003】その一方で、ステージを細分化してステー
ジの数を増加させていくと、パイプラインの分割損が生
じるという問題がある。実際にはすぐにレジスタからオ
ペランドを読み出せるにもかかわらず、細分化された命
令パイプラインでは幾多ものステージを経てからでない
とオペランドを読み出せず、結果として処理が遅くなる
場合が生じ得る。近年、ソフトウェア上の順序通りでな
く実行可能な命令から実行していくアウトオブオーダ
(out-of-order)実行が採用されることが多くなってい
るが、このアウトオブオーダ実行を実現するためには命
令発行可否のチェック等が必要となり、命令パイプライ
ンの多段化に拍車をかけることになる。
【0004】従来の命令パイプラインの構成としては、
例えば、特開平10−283178号公報を参照でき
る。この特開平10−283178号公報では、バイパ
ス機構により先行命令のターゲット・オペランドを後続
命令のソース・オペランドに転送することにより高速化
を図っている。
【0005】
【発明が解決しようとする課題】上述の従来技術では、
命令パイプラインのステージ数が多段化するに従い、命
令がフェッチされてから発行されるまでに要する時間が
増加するという問題がある。また、特開平10−283
178号公報のように異なる命令間でオペランドデータ
をバイパスするだけでは、命令フェッチから命令発行ま
でのオーバヘッドは解消することはできない。これは、
分岐予測失敗時の立ち上がり時間として処理性能に影響
を与える。
【0006】本発明の目的は、ステージ数が多段化した
場合でも、オペランド読出し可能な命令を速やかに実行
する命令パイプラインを提供することにある。
【0007】
【課題を解決するための手段】上記課題を解決するため
に本発明のデータ処理装置は、命令をフェッチして実行
するための命令パイプラインにおいて、命令間のオペラ
ンド依存関係をチェックする手順をバイパスして、レジ
スタからオペランドデータを読み出して、前記レジスタ
から読み出したオペランドデータが有効なものであれば
そのまま命令の実行を継続し、有効なものでなければ当
該命令の実行を取り消す。
【0008】本発明の他のデータ処理装置は、命令をフ
ェッチするフェッチ手段と、このフェッチ手段によりフ
ェッチされた相異なる命令間のオペランド依存関係をチ
ェックするオペランド依存関係チェック回路と、このオ
ペランド依存関係チェック回路をバイパスして命令を移
行させるバイパス経路と、前記オペランド依存関係チェ
ック回路及び前記バイパス経路の何れかからの命令につ
いてオペランドデータの読出しを行うオペランド読出し
手段と、このオペランド読出し手段におけるオペランド
読出しと並行して当該オペランドデータが有効か否かを
判断し、有効であると判断した場合にはそのまま命令の
実行を継続し、有効なものでないと判断した場合には当
該命令の実行を取り消す取消回路とを含む。
【0009】本発明の他のデータ処理装置は、オペラン
ドデータを格納するレジスタと、このレジスタに格納す
べきオペランドデータが前記レジスタに格納される前に
そのオペランドデータを保持するリネーミングバッファ
と、このリネーミングバッファに保持されるべきオペラ
ンドデータに対応した情報を保持するリオーダバッファ
とをさらに含み、前記オペランド読出し手段は、前記レ
ジスタ及び前記リネーミングバッファからオペランド読
出しを行う。
【0010】本発明の他のデータ処理装置において、前
記オペランド読出し手段は、前記バイパス経路を経た命
令については前記レジスタからオペランドデータを読み
出し、前記取消回路は、前記レジスタから読み出された
オペランドデータが有効であると判断した場合にはその
まま命令の実行を継続し、有効なものでないと判断した
場合には当該命令の実行を取り消す。
【0011】本発明の他のデータ処理装置において、前
記リオーダバッファは、前記レジスタにおける同一位置
に対して複数の命令が書込みを行う場合に、何れの命令
が最新のデータを書き込むかの制御情報を保持し、前記
オペランド依存関係チェック回路は、前記制御情報に基
づいて最新のデータに係る命令以外の命令はチェック対
象としない。
【0012】本発明の他のデータ処理装置において、前
記オペランド依存関係チェック回路は、命令間のオペラ
ンドの一致を検出するオペランド比較回路と、このオペ
ランド比較回路による結果から前記リネーミングバッフ
ァにおける保持アドレスを生成するリードアドレス生成
回路と、このリードアドレス生成回路により生成された
アドレスに従いオペランドが読出し可能であるか否かを
判断して、全てのオペランドが読出し可能になった命令
を選択する命令追越バッファとを含む。
【0013】本発明の他のデータ処理装置において、前
記リードアドレス生成回路は、さらに前記レジスタに有
効なオペランドデータが保持されているか否かを示すレ
ジスタ有効信号を生成し、前記取消回路は、前記バイパ
ス経路を経た命令についてオペランドデータが有効でな
い旨を前記レジスタ有効信号が示している場合には当該
命令の実行を取り消す。
【0014】本発明の他のデータ処理装置において、前
記命令追越バッファ及び前記バイパス経路の何れかから
の命令を選択して前記オペランド読出し手段に出力する
選択器をさらに含み、前記選択器は、前記命令追越バッ
ファの少なくとも一つのエントリに命令が保持されてい
れば前記命令追越バッファからの命令を選択し、保持さ
れていなければ前記バイパス経路からの命令を選択す
る。
【0015】本発明の命令パイプラインの制御方法は、
命令をフェッチし、このフェッチされた相異なる命令間
のオペランド依存関係をチェックし、このオペランド依
存関係チェック回路をバイパスしてオペランドデータの
読出しを行い、このオペランド読出しと並行して当該オ
ペランドデータが有効か否かを判断して、有効であると
判断した場合にはそのまま命令の実行を継続し、有効な
ものでないと判断した場合には当該命令の実行を取り消
す。
【0016】本発明の他の命令パイプラインの制御方法
において、前記オペランドデータが有効か否かの判断に
おいて、有効なものでないと判断した場合には、当該命
令の実行を取り消した後、前記オペランド依存関係チェ
ック回路によるチェック結果に従い有効なオペランドデ
ータを読み出す。
【0017】
【発明の実施の形態】次に本発明のデータ処理装置の実
施の形態について図面を参照して詳細に説明する。
【0018】図1を参照すると、本発明の実施の形態で
は、命令フェッチから命令実行までの間を、フェッチス
テージ、デコードステージ、アドレス生成ステージ、発
行チェックステージ、オペランドリードステージ、実行
ステージに分けて、パイプライン方式で各命令を制御す
る。
【0019】フェッチステージでは、キャッシュメモリ
100から命令をフェッチして、そのフェッチした命令
をフェッチレジスタ210に保持する。キャッシュメモ
リ100は、プロセッサ内部にあってもよく、外部にあ
ってもよい。また、命令及びデータを記憶するものでも
よく、命令専用に用意されたものでもよい。
【0020】デコードステージでは、フェッチレジスタ
210に保持された命令をデコーダ220によって解読
(デコード)する。デコード済みの命令は、オペランド
の読み出しを行う命令であれば、オペランド比較回路2
30において(後述のリオーダバッファ330内に保持
された)先行する命令との間のオペランドが比較され、
その結果が比較結果レジスタ310に保持される。ま
た、オペランド比較回路230を経た命令は、リオーダ
バッファ330に登録される。さらに、デコード済みの
命令は、バイパス経路221を通じて後述の発行チェッ
クステージ内の選択器490に入力される。
【0021】アドレス生成ステージでは、比較結果レジ
スタ310に保持された比較結果をリードアドレス生成
回路320でエンコードすることにより、オペランドと
して必要なデータがリネーミングバッファ540の何れ
のエントリに格納されるかを決定し、その情報とともに
命令全体を命令追越バッファ400に登録する。また、
リードアドレス生成回路320は、比較結果レジスタ3
10に保持された全てのオペランドがリネーミングバッ
ファ540からレジスタ550に移行していることを検
出すると、レジスタ有効信号を信号線301に出力す
る。レジスタ有効信号が「有効」を示していれば、該当
するオペランドはレジスタ550に存在することが保証
される。
【0022】発行チェックステージでは、命令追越バッ
ファ400に保持された命令の中から、オペランドが読
み出し可能になって発行できる命令を選択する。命令追
越バッファ400は、命令毎に対応した複数のエントリ
を有し、それぞれの命令のオペランドが格納されるリネ
ーミングバッファ540及びレジスタ550内の番号を
保持している。命令追越バッファ400は、アドレス生
成ステージから受け取った命令を順番に登録するが、発
行可能な命令を選択するのは必ずしもその順番でなくて
もよい。オペランドが読み出し可能になった命令から発
行されていく。命令追越バッファ400から発行可能と
して選択された命令は、バイパス経路221からの命令
とともに選択器490に入力され、何れか一方の命令が
発行レジスタ510及びオペランドレジスタ530に保
持される。発行レジスタ510は、その発行レジスタ5
10に保持された情報が有効なものであることを示す有
効ビット512と、発行レジスタに保持された情報が命
令追越バッファ400から入力されたものであることを
示すエントリ存在信号481を保持する選択ビット51
1とを含む。なお、バイパス経路221によりバイパス
される、オペランド比較回路230、リードアドレス生
成回路320、及び、命令追越バッファ400を総称し
てオペランド依存関係チェック回路という。
【0023】オペランドリードステージでは、オペラン
ドレジスタ530に保持された情報に従い、リネーミン
グバッファ540及びレジスタ550からのオペランド
読出しが行われる。また、取消回路520は、発行レジ
スタ510に保持された命令のオペランドが有効か否か
を判断し、未だ有効でないと判断した場合には、実行レ
ジスタ610の有効ビットを無効にする。この実行レジ
スタ610の有効ビットが無効の状態では、実行ステー
ジでその命令の実行は行われない。
【0024】図2を参照すると、リオーダバッファ33
0とリネーミングバッファ540とは一対一の関係にあ
り、リネーミングバッファ540に記憶された(もしく
は、される)データに関する情報がリオーダバッファ3
30に記憶される。リネーミングバッファ540からレ
ジスタ550にデータ書込みを行う際には、リオーダバ
ッファ330内のXオペランドレジスタ番号が参照され
る。
【0025】本実施の形態において、各命令は、書込先
レジスタ番号としてXオペランドを有し、読出レジスタ
番号としてYオペランド及びZオペランドの2つのオペ
ランドを有するものとする。命令中にオペランドとして
指定されるのはレジスタ番号であるが、Xオペランドに
ついてはリオーダバッファ330に登録したそのエント
リ番号を書込みリオーダバッファ(WRB)番号として
使用する。このWRB番号を認識しておけば、リオーダ
バッファ330内のXレジスタ番号によってレジスタ5
50に対するレジスタ番号がわかる。一方、Yオペラン
ド及びZオペランドについては、オペランド比較回路2
30及びリードアドレス生成回路320を経ることによ
り、読出しリネーミングバッファ(RRB)番号が生成
される。このように、リオーダバッファ330及びリネ
ーミングバッファ540における番号とレジスタ550
における番号とを認識することにより、必要に応じてレ
ジスタ550及びリネーミングバッファ540の何れか
から必要なオペランドを読み出すことができる。
【0026】リオーダバッファ330は複数のエントリ
を有し、各エントリはある命令のオペコード332、X
オペランド333、及び制御情報334を保持する。制
御情報334には、演算例外発生情報や、分岐命令に関
する情報の他、同一のレジスタをXオペランドとしてい
る命令の内で最後のものはどの命令かを表す情報も含ま
れる。また、リオーダバッファ330の各エントリは、
そのエントリが有効か否かを表すバリッドビット331
を保持する。リオーダバッファ330には、各命令が順
番に登録され、また、先に登録されたものから順番に解
放される。リオーダバッファ330の登録タイミングは
デコードステージであり、レジスタ550への書込みが
行われた後に解放される。
【0027】図3を参照すると、オペランド比較回路2
30は、Yオペランド及びZオペランドのそれぞれにつ
いて、リオーダバッファ330に登録されたXオペラン
ド333の各々に対応して、比較器を有する。このと
き、Yオペランド及びZオペランドのそれぞれについ
て、リオーダバッファ330の複数のエントリで一致が
検出された場合には、リオーダバッファ330の制御情
報334を使用して、最新のデータ以外については一致
をマスクして強制的に不一致にする。このようにして得
られた比較結果は、比較結果レジスタ310に保持され
る。この比較結果レジスタ310は、Yオペランド及び
Zオペランドのそれぞれについて、リオーダバッファ3
30のエントリ数に相当するビット数を保持する。
【0028】図4を参照すると、リードアドレス生成回
路320は、比較結果レジスタ310に保持されたYオ
ペランド及びZオペランドに関する比較結果をエンコー
ダ321及び323によってエンコードして、それぞれ
の結果をYオペランドレジスタ番号及びZオペランドレ
ジスタ番号として信号線326及び328に出力する。
また、比較結果レジスタ310に保持された比較結果
は、否定論理和(NOR)回路322及び324によっ
てYオペランド及びZオペランドについてのレジスタ有
効信号として信号線327及び329に出力される。論
理積(AND)回路は、信号線327及び329がとも
に「レジスタ有効」を示しているか否かを当該命令につ
いてのレジスタ有効信号として信号線301に出力す
る。なお、信号線326から329は、命令追越バッフ
ァ400に入力される。
【0029】図5を参照すると、命令追越バッファ40
0は複数のエントリを有し、各エントリは、ある命令が
未発行であるか否かを示す未発行情報402、オペコー
ド403、Xオペランドのリオーダバッファ番号411
の他、Yオペランド及びZオペランドに関する情報を保
持する。Yオペランドに関する情報には、リネーミング
バッファに有効なデータが保持されているか否かを示す
データリネーミングバッファレディ情報421、リネー
ミングバッファ番号422、レジスタに有効なデータが
保持されているか否かを示すレジスタ有効情報423、
レジスタ番号424が含まれる。Zオペランドについて
も同様である。また、命令追越バッファ400の各エン
トリは、そのエントリが有効か否かを表すバリッドビッ
ト401を保持する。
【0030】Yオペランドのリネーミングバッファ番号
422及びレジスタ有効情報423は、それぞれ信号線
326及び327からの値が反映される。また、Zオペ
ランドのリネーミングバッファ番号432及びレジスタ
有効情報433は、それぞれ信号線328及び329か
らの値が反映される。未発行情報402は、取消回路5
20の出力529が反映される。
【0031】命令追越バッファ400は、アドレス生成
ステージから受け取った命令を順番に登録し、オペラン
ドが読み出し可能になった命令から発行されていく。具
体的はハードウェア構成としては、登録順に命令を並べ
てゆき、途中の命令が先に発行されて抜けが生じた場合
にはその部分を前に詰めていくように構成することがで
きる。命令が発行されるまでは未発行情報402が「未
発行」を示しており、発行されると「発行」を示すよう
になる。
【0032】命令追越バッファ400は、保持している
命令のうちから必要なオペランドが読出し可能となった
命令を検出する機能を有し、該当する命令を選択器49
0に出力する。選択器490は、命令追越バッファ40
0からの命令及びバイパス経路221からの命令の何れ
かを選択する。選択条件としては、命令追越バッファ4
00に有効な命令が一つでも保持されていれば命令追越
バッファ400側の命令を選択し、それ以外の場合はバ
イパス経路221側の命令を選択する。選択器490に
おける選択のための制御信号としては、命令追越バッフ
ァ400の全バリッドビット401の論理和を論理和
(OR)回路480により生成したエントリ存在信号4
81を使用する。
【0033】図6を参照すると、取消回路520は、ア
ドレス生成ステージのリードアドレス生成回路320か
らのレジスタ有効信号301と、発行レジスタ510の
選択ビット511と、発行レジスタ510の有効ビット
512とを入力し、発行信号528と未発行信号529
とを出力する。論理和(OR)回路521は、レジスタ
有効信号301と発行レジスタ510の選択ビット51
1との論理和を生成する。論理積(AND)回路522
は、論理和回路521の出力と発行レジスタ510の有
効ビット512との論理和を生成して、発行信号528
として出力する。また、この発行信号528の反転信号
をインバータ(NOT)回路523により生成して、未
発行信号529として出力する。
【0034】次に、本実施の形態における動作について
図面を参照して詳細に説明する。
【0035】図1、図5、及び、図7を参照すると、バ
イパスを行わない通常の動作の場合は、以下のように命
令が処理される。時刻1でキャッシュメモリ100から
フェッチされた命令はフェッチレジスタ210に保持さ
れる。時刻2でフェッチレジスタ210に保持された命
令がデコードされ、オペランドの比較結果が比較結果レ
ジスタ310に保持される。この時刻2において、エン
トリ存在信号481が「命令追越バッファ400に少な
くとも1つの命令が存在する」旨を示していると想定し
ているので、発行レジスタ510には命令のバイパスが
行われない。
【0036】その後、時刻3ではリードアドレスの生成
が行われ、命令追越バッファ400に登録が行われる。
時刻4で命令追越バッファ400から選択された命令
は、選択器490を介して発行レジスタ510に保持さ
れる。時刻5では取消回路520による取消しが行われ
ず、実行レジスタ610の有効ビットが「有効」なもの
としてセットされる。これにより、時刻6から命令の実
行が開始する。
【0037】次に、図1、図5、及び、図8を参照する
と、バイパスが成功する場合は、以下のように命令が処
理される。時刻1でキャッシュメモリ100からフェッ
チされた命令はフェッチレジスタ210に保持される。
時刻2でフェッチレジスタ210に保持された命令がデ
コードされ、オペランドの比較結果が比較結果レジスタ
310に保持される。この時刻2において、エントリ存
在信号481が「命令追越バッファ400に命令が存在
しない」旨を示していると想定しているので、発行レジ
スタ510に命令のバイパスが行われ、発行レジスタ5
10に命令が保持される。
【0038】時刻3ではリードアドレスの生成が行われ
るとともに「レジスタの内容が有効である」旨を示すレ
ジスタ有効信号301が生成され、取消回路520に入
力される。取消回路520では取消しが行われず、実行
レジスタ610の有効ビットが有効なものとしてセット
される。これにより、時刻4から命令の実行が開始でき
る。
【0039】次に、図1、図5、及び、図9を参照する
と、バイパスが失敗する場合は、以下のように命令が処
理される。時刻1でキャッシュメモリ100からフェッ
チされた命令はフェッチレジスタ210に保持される。
時刻2でフェッチレジスタ210に保持された命令がデ
コードされ、オペランドの比較結果が比較結果レジスタ
310に保持される。この時刻2において、エントリ存
在信号481が「命令追越バッファ400に命令が存在
しない」旨を示していると想定しているので、発行レジ
スタ510に命令のバイパスが行われ、発行レジスタ5
10に命令が保持される。
【0040】時刻3ではリードアドレスの生成が行われ
るとともに「レジスタの内容が有効でない」旨を示すレ
ジスタ有効信号301が生成され、取消回路520に入
力される。取消回路520では、レジスタ有効信号30
1が「レジスタの内容が有効でない」旨を示しているた
め、発行信号528によって実行レジスタ610の有効
ビットが「無効」にセットされ、時刻4における実行は
取り消される。また、この実行取消しにより命令は発行
されなかったため、未発行信号529によって命令追越
バッファ400の未発行情報402が「未発行状態」に
セットされる。
【0041】時刻4では再び命令追越バッファ400か
ら命令が選択され、選択器490を介して発行レジスタ
510に保持される。時刻5では今回は取消回路520
による取消しが行われず、実行レジスタ610の有効ビ
ットが「有効」なものとしてセットされる。これによ
り、バイパスを伴わない通常の動作と同様に、時刻6か
ら命令の実行が開始する。
【0042】このように本実施の形態によれば、デコー
ドステージから発行チェックステージに命令をバイパス
して、オペランドリードステージにおいてレジスタ55
0から読出しを行いながら取消回路520によってレジ
スタ550の内容の有効性をチェックすることによっ
て、レジスタ550の内容が有効であればバイパスが成
功したものとして処理を早めることができる。一方、レ
ジスタ550の内容が有効でない場合には、取消回路5
20によって実行を取り消すことができ、通常のバイパ
スのないタイミングで処理を続行することができる。
【0043】
【発明の効果】以上の説明で明らかなように、本発明に
よると、命令パイプラインにおいて、読出しオペランド
として指定されたレジスタの内容が有効なものであると
仮定して、オペランドの依存関係をチェックする手順を
バイパスすることにより、レジスタの内容が有効なもの
であった場合には命令発行までに要する時間を短縮する
ことができる。
【図面の簡単な説明】
【図1】本発明のデータ処理装置の実施の形態における
命令パイプライン構成を示すブロック図である。
【図2】本発明の実施の形態におけるリオーダバッファ
とリネーミングバッファの関係を示す図である。
【図3】本発明の実施の形態におけるオペランド比較回
路の構成を示す図である。
【図4】本発明の実施の形態におけるリードアドレス生
成回路の構成を示す図である。
【図5】本発明の実施の形態における命令追越バッファ
の構成を示す図である。
【図6】本発明の実施の形態における取消回路の構成を
示す図である。
【図7】本発明の実施の形態においてバイパスしない場
合の動作を表す図である。
【図8】本発明の実施の形態においてバイパス成功の場
合の動作を表す図である。
【図9】本発明の実施の形態においてバイパス失敗の場
合の動作を表す図である。
【符号の説明】
100 キャッシュメモリ 210 フェッチレジスタ 220 デコーダ 230 オペランド比較回路 310 比較結果レジスタ 320 リードアドレス生成回路 330 リオーダバッファ 400 命令追越バッファ 490 選択器 510 発行レジスタ 520 取消回路 530 オペランドレジスタ 540 リネーミングバッファ 550 レジスタ 610 実行レジスタ

Claims (9)

    (57)【特許請求の範囲】
  1. 【請求項1】命令をフェッチするフェッチ手段と、 このフェッチ手段によりフェッチされた相異なる命令間
    のオペランド依存関係をチェックするオペランド依存関
    係チェック回路と、 このオペランド依存関係チェック回路をバイパスして命
    令を移行させるバイパス経路と、 前記オペランド依存関係チェック回路及び前記バイパス
    経路の何れかからの命令についてオペランドデータの読
    出しを行うオペランド読出し手段と、 このオペランド読出し手段におけるオペランド読出しと
    並行して当該オペランドデータが有効か否かを判断し、
    有効であると判断した場合にはそのまま命令の実行を継
    続し、有効なものでないと判断した場合には当該命令の
    実行を取り消す取消回路とを含むことを特徴とするデー
    タ処理装置。
  2. 【請求項2】オペランドデータを格納するレジスタと、
    このレジスタに格納すべきオペランドデータが前記レジ
    スタに格納される前にそのオペランドデータを保持する
    リネーミングバッファと、 このリネーミングバッファに保持されるべきオペランド
    データに対応した情報を保持するリオーダバッファとを
    さらに含み、 前記オペランド読出し手段は、前記レジスタ及び前記リ
    ネーミングバッファからオペランド読出しを行うことを
    特徴とする請求項1記載のデータ処理装置。
  3. 【請求項3】前記オペランド読出し手段は、前記バイパ
    ス経路を経た命令については前記レジスタからオペラン
    ドデータを読み出し、 前記取消回路は、前記レジスタから読み出されたオペラ
    ンドデータが有効であると判断した場合にはそのまま命
    令の実行を継続し、有効なものでないと判断した場合に
    は当該命令の実行を取り消すことを特徴とする請求項2
    記載のデータ処理装置。
  4. 【請求項4】前記リオーダバッファは、前記レジスタに
    おける同一位置に対して複数の命令が書込みを行う場合
    に、何れの命令が最新のデータを書き込むかの制御情報
    を保持し、 前記オペランド依存関係チェック回路は、前記制御情報
    に基づいて最新のデータに係る命令以外の命令はチェッ
    ク対象としないことを特徴とする請求項2記載のデータ
    処理装置。
  5. 【請求項5】前記オペランド依存関係チェック回路は、 命令間のオペランドの一致を検出するオペランド比較回
    路と、 このオペランド比較回路による結果から前記リネーミン
    グバッファにおける保持アドレスを生成するリードアド
    レス生成回路と、 このリードアドレス生成回路により生成されたアドレス
    に従いオペランドが読出し可能であるか否かを判断し
    て、全てのオペランドが読出し可能になった命令を選択
    する命令追越バッファとを含むことを特徴とする請求項
    2記載のデータ処理装置。
  6. 【請求項6】前記リードアドレス生成回路は、さらに前
    記レジスタに有効なオペランドデータが保持されている
    か否かを示すレジスタ有効信号を生成し、 前記取消回路は、前記バイパス経路を経た命令について
    オペランドデータが有効でない旨を前記レジスタ有効信
    号が示している場合には当該命令の実行を取り消すこと
    を特徴とする請求項5記載のデータ処理装置。
  7. 【請求項7】前記命令追越バッファ及び前記バイパス経
    路の何れかからの命令を選択して前記オペランド読出し
    手段に出力する選択器をさらに含み、 前記選択器は、前記命令追越バッファの少なくとも一つ
    のエントリに命令が保持されていれば前記命令追越バッ
    ファからの命令を選択し、保持されていなければ前記バ
    イパス経路からの命令を選択することを特徴とする請求
    項5記載のデータ処理装置。
  8. 【請求項8】命令をフェッチし、 このフェッチされた相異なる命令間のオペランド依存関
    係をチェックし、 このオペランド依存関係チェック回路をバイパスしてオ
    ペランドデータの読出しを行い、 このオペランド読出しと並行して当該オペランドデータ
    が有効か否かを判断して、有効であると判断した場合に
    はそのまま命令の実行を継続し、有効なものでないと判
    断した場合には当該命令の実行を取り消すことを特徴と
    する命令パイプラインの制御方法。
  9. 【請求項9】前記オペランドデータが有効か否かの判断
    において、有効なものでないと判断した場合には、当該
    命令の実行を取り消した後、前記オペランド依存関係チ
    ェック回路によるチェック結果に従い有効なオペランド
    データを読み出すことを特徴とする請求項8記載の命令
    パイプラインの制御方法。
JP18336099A 1999-06-29 1999-06-29 データ処理装置 Expired - Fee Related JP3475861B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP18336099A JP3475861B2 (ja) 1999-06-29 1999-06-29 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18336099A JP3475861B2 (ja) 1999-06-29 1999-06-29 データ処理装置

Publications (2)

Publication Number Publication Date
JP2001014163A JP2001014163A (ja) 2001-01-19
JP3475861B2 true JP3475861B2 (ja) 2003-12-10

Family

ID=16134406

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18336099A Expired - Fee Related JP3475861B2 (ja) 1999-06-29 1999-06-29 データ処理装置

Country Status (1)

Country Link
JP (1) JP3475861B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7102840B2 (ja) * 2018-03-26 2022-07-20 日本電気株式会社 プロセッサコア、命令制御方法、プログラム

Also Published As

Publication number Publication date
JP2001014163A (ja) 2001-01-19

Similar Documents

Publication Publication Date Title
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
JP3842474B2 (ja) データ処理装置
US6289445B2 (en) Circuit and method for initiating exception routines using implicit exception checking
JPH0283735A (ja) 命令先取り装置
KR100259306B1 (ko) 분기 명령 버퍼를 갖는 데이타 프로세서
JPH0496825A (ja) データ・プロセッサ
US20240036876A1 (en) Pipeline protection for cpus with save and restore of intermediate results
JP4243271B2 (ja) データ処理装置およびデータ処理方法
US5469552A (en) Pipelined data processor having combined operand fetch and execution stage to reduce number of pipeline stages and penalty associated with branch instructions
US11029997B2 (en) Entering protected pipeline mode without annulling pending instructions
JP3834145B2 (ja) ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法
US5634136A (en) Data processor and method of controlling the same
JP3475861B2 (ja) データ処理装置
JP2894438B2 (ja) パイプライン処理装置
JP3204390B2 (ja) マイクロコンピュータ
JP3569338B2 (ja) 並列処理プロセッサ
JP2503223B2 (ja) 先行制御方式
JP3568737B2 (ja) 条件実行命令を備えるマイクロプロセッサ
JPH02206836A (ja) データ処理装置
JP3102846B2 (ja) ロードアドレスキャッシュ装置及び方法
JPH0991139A (ja) 情報処理装置
JP2806690B2 (ja) マイクロプロセッサ
JPH06110687A (ja) 情報処理装置および情報処理方法
JPH0247725A (ja) データ処理装置
JP2001034474A (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: 20030826

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

Free format text: PAYMENT UNTIL: 20080926

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20080926

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090926

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090926

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100926

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees