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

データ処理装置 Download PDF

Info

Publication number
JP2004110248A
JP2004110248A JP2002269754A JP2002269754A JP2004110248A JP 2004110248 A JP2004110248 A JP 2004110248A JP 2002269754 A JP2002269754 A JP 2002269754A JP 2002269754 A JP2002269754 A JP 2002269754A JP 2004110248 A JP2004110248 A JP 2004110248A
Authority
JP
Japan
Prior art keywords
instruction
branch
cache memory
information
data processing
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.)
Granted
Application number
JP2002269754A
Other languages
English (en)
Other versions
JP3862642B2 (ja
Inventor
Tatehisa Shimizu
清水 健央
Fumio Arakawa
荒川 文男
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2002269754A priority Critical patent/JP3862642B2/ja
Priority to US10/612,934 priority patent/US20040054874A1/en
Publication of JP2004110248A publication Critical patent/JP2004110248A/ja
Application granted granted Critical
Publication of JP3862642B2 publication Critical patent/JP3862642B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching

Abstract

【課題】ソフトウェアの互換性に関して不都合を生ずることなく、命令処理時間を短縮して高速動作可能なデータ処理装置を提供する
【解決手段】命令が予備フィールドを持つ場合に、命令をメモリ(106)から命令キャッシュメモリ(101)にストアする際、その命令の命令コードをプリデコード・演算器(100)でプリデコードして生成した情報を命令キャッシュメモリの予備フィールド対応領域に格納する。その命令が命令キャッシュメモリからフェッチされるとき、命令キャッシュメモリの予備フィールド対応領域に保存されていた情報を利用する。これにより、命令キャッシュメモリからフェッチした命令のデコード完了を待つことなく、プリデコードされた情報に基づいて処理を進めることが可能になる。
【選択図】    図1

Description

【0001】
【発明の属する技術分野】
本発明は、命令を実行するデータ処理装置に関し、例えば命令セットの将来的な拡張等のために命令に予備フィールドが残されている命令セットを持つデータプロセッサに適用して有効な技術に関する。
【0002】
【従来の技術】
特許文献1には命令の予備フィールド中の予約ビットを用いてアドレスの拡張を行なう技術が記載される。また特許文献2,3にはオペレーションコードの拡張部分を設けて命令フォーマットを拡張する技術が記載される。
【0003】
【特許文献1】
特開2001−142694号公報
【特許文献2】
特開2000−029684号公報
【特許文献3】
特開2000−029685号公報
【0004】
【発明が解決しようとする課題】
近年の高速プロセッサにおいては、動作周波数向上のために、一般的にパイプラインステージを細かく分割して、1ステージあたりの論理段数を減少させ、周波数を向上させている。パーソナルコンピュータ向けマイクロプロセッサでは、1ギガヘルツ(GHz)を超える周波数を実現するために、十数段にもおよぶパイプラインステージをもつマイクロアーキテクチャ(スーパーパイプライン方式)を規定している例もある。しかしながら、パイプライン段数が増加すると、分岐時に分岐予測ミスが発生する場合には、非常に大きなペナルティを伴うことになる。
【0005】
本発明者はそのようなペナルティを低減することについて検討した。そのようなペナルティの低減には分岐命令などの命令の解読及び実行を高速化できるようにすればよい。そのために、新たな命令を追加したり、命令セットを刷新して対処することも可能であるが、問題がある。ハードウェアが進化しても既存のソフトウェアをそのまま使用したいというニーズが強く、上位互換性が要求されるからである。
【0006】
しかしながら、特許文献1の技術は即値で与えられるアドレスの拡張に限定されるから、それ以外の機能拡張によって命令の解読及び実行を高速化することはできない。また、特許文献1に記載の技術では、ハードウェア的に予備フィールドへの情報の保存方法が何ら限定されていないため、コンパイラやアセンブラを変更して、ソフトウェア的に予備フィールドを拡張した命令セットを確立することが必要になる。この点は特許文献2,3についても同じである。
【0007】
本発明の目的は、ソフトウェアの互換性に関して不都合を生ずることなく、命令処理時間を短縮して高速動作可能なデータ処理装置を提供することにある。
【0008】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【0009】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0010】
〔1〕命令が予備フィールドを持つ場合に、命令をメモリから命令キャッシュメモリにストアする際、その命令の命令コードをプリデコードして生成した情報を命令キャッシュメモリの予備フィールド対応領域(命令の予備フィールドに応ずる領域)に格納する。その命令が命令キャッシュメモリからフェッチされるとき、命令キャッシュメモリの予備フィールド対応領域に保存されていた情報を利用する。これにより、命令キャッシュメモリからフェッチした命令のデコード完了を待つことなく、プリデコードされた情報に基づいて処理を進めることが可能になる。命令の解読・実行を高速化することができる。
【0011】
本発明の一つの具体的な態様として、前記予備フィールド対応領域に保存されていた情報を利用する手段は、例えば、前記命令キャッシュメモリから読み出した命令を実行するとき、当該命令の前記予備フィールドに応ずる領域の情報に基づいて命令実行手順を制御可能な制御手段である。
【0012】
本発明の一つの具体的な態様として、前記命令キャッシュメモリに命令をストアするとき前記プリデコードを行なうプリデコーダを有する。
【0013】
前記プリデコーダは命令の第1フィールドに含まれるオペレーションコードをデコードする。
【0014】
オペレーションコードのデコード結果として例えば予備フィールド対応領域に命令種別の情報を保持する。前記命令の種別は例えば分岐命令か否かを示す情報である。
【0015】
このとき、前記制御手段は、命令キャッシュメモリから読み出した命令の前記所定のフィールドに応ずる領域の情報によって当該命令が分岐命令であることを判別したとき、例えば分岐先命令をフェッチする処理を指示する。
【0016】
また、そのとき制御手段は分割分岐方式に対処する。即ち、分割分岐方式では、前記命令キャッシュメモリから読み出された命令を一時的に保持するキューイングバッファを有し、一つの分岐動作を分割して処理可能な分岐前処理命令と分岐処理命令とを命令セットに有し、前記分岐前処理命令は分岐先アドレス計算と分岐先命令のフェッチを指示し、分岐処理命令は分岐条件判定と分岐処理を指示し、前記分岐前処理命令の実行によって得られた分岐先アドレスと分岐先命令を一時的に保持するターゲットバッファを有する。このとき、前記制御手段は、前記キューイングバッファに保持されている命令の前記所定のフィールドに応ずる領域の情報によって当該命令が前記分岐処理命令であることを判別したときは、前記ターゲットバッファから分岐先命令とそれに続く分岐先アドレスを読み出す処理を指示する。
【0017】
本発明の別の具体的な態様として、前記命令キャッシュメモリに命令をストアするとき、当該命令の第2フィールドに含まれる情報を用いた演算を行なう演算器を有する。このとき、前記命令キャッシュメモリは、前記プリデコーダのデコード結果に基づいて、前記演算器による演算結果を命令の第2フィールドに応ずる命令キャッシュメモリの領域に保持する。
【0018】
例えば、nビットのディスプレースメント付きプログラムカウンタ相対分岐命令に対し、前記演算器は前記第2フィールドのディスプレースメントにプログラムカウンタのnビットのアドレス下位情報を加算し、nビットの加算結果を当該ディスプレースメント付きプログラムカウンタ相対分岐命令の第2フィールドに応ずるキャッシュメモリの領域に保持し、加算によるキャリ情報を当該ディスプレースメント付きプログラムカウンタ相対分岐命令の予備フィールドに応ずる前記領域に保持する。
【0019】
〔2〕命令が予備フィールドを持たない場合にも、前記命令キャッシュメモリは命令のプリデコードに基づいて生成された情報を命令と一対一対応で保持する領域を有して対処することができる。この場合も、命令キャッシュメモリからフェッチした命令のデコード完了を待つことなく、プリデコードされた情報に基づいて処理を進めることが可能になる。命令の解読・実行を高速化することができる。
【0020】
【発明の実施の形態】
《データプロセッサ》
図1には本発明の一例に係るデータプロセッサが示される。データプロセッサ1は、外部メモリや周辺回路とのデータ入出力を行うバスインターフェースユニット(BIU)102、命令キャッシュメモリ(ICU)101、命令用アドレス変換バッファ(ITLB)113、データキャッシュメモリ(DCU)112、データ用アドレス変換バッファ(DTLB)115、命令のフェッチ・デコード・実行スケジュール等の処理を行う命令フローユニット(IFU)103、実行ユニット(EU)110、浮動小数点演算ユニット(FPU)114、ロード・ストアユニット(LSU)111、及びプリデコード・演算器(PD)100を有する。データプロセッサ1はパイプライン方式で命令を実行し、例えば命令フェッチ、デコード、実行、及びライトバックなどのパイプラインステージを単位として処理を進める。そのパイプラインステージの実行スケジューリングは前記命令フローユニット103が制御する。
【0021】
前記命令キャッシュメモリ101、命令用アドレス変換バッファ113、データキャッシュメモリ112、及びデータ用アドレス変換バッファ115は、特に制限されないが、それぞれセット・アソシアティブ形式の連装メモリによって構成される。前記命令キャッシュメモリ101及びデータキャッシュメモリ112は、特に制限されないが、論理キャッシュとされる。キャッシュエントリのリプレースに必要な物理アドレスへの変換は命令用アドレス変換バッファ113及びデータ用アドレス変換バッファ115が保有する論理アドレスと物理アドレスの変換対を利用して行なわれる。
【0022】
前記実行ユニット110は、汎用レジスタ、プログラムカウンタ(PC)、及び算術論理演算器(ALU)などを持ち、命令フローユニットで生成される制御信号などに基づいて各種演算を行う。
【0023】
バスインターフェースユニット102は外部バス105に接続される。外部バス105には代表的に示された外部メモリ106が接続される。ここでは前記外部メモリ106はメインメモリとされ、プログラムメモリ及びワーク領域等として利用される。特に図示はしないが、データプロセッサ1は、バスインターフェースユニット102に接続された周辺回路を有する。
【0024】
前記プリデコード・演算器100は、バスインタフェース回路102と命令キャッシュメモリ101との間に配置され、命令キャッシュメモリ101に外部メモリ106からの命令がロードされるとき、バスインタフェース回路102から供給される命令をプリデコードし、また所定の演算例えば分岐先アドレス演算等を行なう。命令キャッシュメモリ101は、その命令のプリデコードに基づいて生成された情報、例えば前記プリデコードによる命令種別やアドレス演算結果を、当該命令の所定フィールド、例えば予備フィールドやアドレス演算用のディスプレースメントフィールドに応ずる領域に保持する。
【0025】
命令フローユニット103は、前記命令キャッシュメモリ101から読み出した命令を実行するとき、当該命令の前記予備フィールドやアドレス演算用のディスプレースメントフィールドに応ずる領域の情報に基づいて命令実行手順を制御することが可能とされる。これにより、命令フローユニット103は、命令キャッシュメモリ101からフェッチした命令のデコード完了を待つことなく、前記プリデコードされた情報に基づいて処理を進めることが可能になり、命令の解読・実行を高速化することができる。前記プリデコードに基づいて生成され命令キャッシュメモリ101に格納される情報は、デコードステージ以降において有用となるため、命令判定の高速化や、実行時の計算量を減らす必要がある機能に結びつくものに適用すればよい。
【0026】
《機能拡張の第1形態》
図2には上記命令のプリデコードによる機能拡張の第1形態が例示される。ここに示される命令は例えばPC相対分岐命令であり、代表的に示されたディスプレースメントフィールドと予備フィールドを有し、ディスプレースメントにPCの下位側情報を加算し、その加算結果をディスプレースメントフィールドに、キャリを予備フィールドに対応させて、命令キャッシュメモリ上の当該命令の記憶領域に格納する。デコード段においては、最初から分岐アドレスの演算を行なわずに済む。
【0027】
《機能拡張の第2形態》
図3には上記命令のプリデコードによる機能拡張の第2形態が例示される。ここに示される命令は例えば分岐命令であり、代表的に示されたオペレーションコードフィールドと予備フィールドを有し、オペレーションコードをプリデコードし、その命令種別に応ずる情報、例えば分岐命令か否かを示す情報を、予備フィールドに対応させて、命令キャッシュメモリ上の当該命令の記憶領域に格納する。デコード段においては、予備フィールド対応領域の情報を判定し、分岐命令のときは分岐先アドレスからの命令フェッチを指示し、分岐命令でなければ命令デコーダによるオペレーションコードなどのデコードを指示する。オペレーションコードのデコード完了を待たずに分岐先命令フェッチの指示を開始することができる。
【0028】
《プリデコードに基づく機能拡張情報の生成》
以下、プリデコードによる機能拡張の第1及び第2形態の詳細について説明する。ここでは、図4、図5のようなフィールドをもつ分岐命令を一例として説明する。同図に示される命令は32ビット長のRISCプロセッサ用命令セットであり、図4ではオペレーションコード(op)フィールド121を6ビット、サブオペレーションコード(ext)フィールド123が4ビット、レジスタ番号(Rm)フィールド122が6ビット、レジスタ番号(Rn)フィールド124が6ビット、分岐予測ビット(l)125が1ビット、分岐バッファ(c)126が3ビット、予備フィールド(rsv)127を4ビット有する分岐命令である。図5の命令はディスプレースメント付きPC相対分岐命令であり、ビット10〜ビット25の16ビットはディスプレースメント(s)フィールド128とされる。
【0029】
図6にはプリデコード・演算器100の一例が示される。プリデコード・演算器100はプリデコーダ130と算術論理演算器(ALU)131から成る。プリデコーダ130はオペレーションコード(op)を解読し、その結果を予備フィールド(rsv[1])に対応させて命令キャッシュメモリ101に供給する。算術演算器131はPCの下位側16ビットとディスプレースメントフィールドの値を加算し、加算結果をディスプレースメントフィールドに対応させて命令キャッシュメモリ101に供給し、キャリを予備フィールド(rsv[0])に対応させて命令キャッシュメモリ101に供給する。この例に従えば、命令キャッシュメモリ101は、プリデコーダ130によるデコード結果がPC相対分岐命令等の所定の命令である場合に算術論理演算器131から出力される加算結果によるディスプレースメントの書き換えを行なう。
【0030】
前記機能拡張の第2形態に応ずるプリデコード・演算器100の動作を説明する。外部メモリ106から読み込まれた分岐命令は、BIU102からプリデコード・演算器100へ供給される。プリデコード・演算器100内では、オペレーションコードop121をプリデコーダ130でデコードして、この命令が分岐命令か、そうでないかのみ判定する。その判定の結果、分岐命令だと判別できたら、プリデコーダ130の出力rsv[1]に“1”を立てて、この命令が分岐命令だと区別できるようにする。そして、前記出力rsv[1]=“1”が、命令キャッシュ101内で、当該命令の予備フィールド127に対応するフィールドに格納される。ここでは一例として、分岐命令のみを選択したが、それに限定されることはなく、設計者の任意の命令を選択できる。
【0031】
前記機能拡張の第1形態に応ずるプリデコード・演算器100の動作を説明する。図5に例示するディスプレースメント付きPC相対分岐命令の場合、前記ALU131は前記フィールドのディスプレースメントs[25:10]にプログラムカウンタのnビットのアドレス下位情報(PC[16:2])を加算し、nビットの加算結果(s’[24:10])を当該ディスプレースメント付きプログラムカウンタ相対分岐命令のフィールド128に応ずる命令キャッシュメモリの領域に保持し、加算によるキャリ情報を当該ディスプレースメント付きプログラムカウンタ相対分岐命令の予備フィールド(rsv[0])に応ずる前記領域に保持する。尚、ここでのPC相対分岐は命令キャッシュメモリへのプリフェッチ時におけるPCの値を基準として考えられている分岐命令である。そして、そのプリフェッチはバスが空いている任意のタイミングで行なわれるものではなく、プログラムで指定されたタイミングで行なわれるようになっている。
【0032】
図4及び図5の例では命令コードの予備フィールドrsvは4ビットあるため、分岐命令のみの選別や、分岐先アドレス計算後の桁上げ信号の保存情報を同時に載せるなど、複数の情報を予備フィールドrsv127に対応するキャッシュ領域に保存しておくことが可能である。
【0033】
《第2形態に係る機能拡張情報の利用形態》
図1に従えば前記命令フローユニット103は、命令フェッチと分岐を制御するフェッチ・ブランチユニット(FBU)104と命令デコードとパイプライン制御を行なうデコード・パイプラインコントローラ(DPC)107から成る。命令フェッチ動作は、命令フローユニット103内に存在するフェッチブランチユニット104から命令キャッシュ101へフェッチ要求FREQ(図7参照)を出すことによって、開始される。
【0034】
図7にはフェッチ・ブランチユニット104の詳細な一例が示される。フェッチ・ブランチユニット104はキューイングバッファとしての命令キュー(IQ)140、早期命令判別回路(ED)141、及びターゲットバッファ142から構成される。命令キュー140は命令フェッチの要求に応答して命令キャッシュメモリ101から読み出された命令を一時的に保持する。命令キュー140に保持された命令はデコード・パイプラインコントローラ107に供給されてデコードされる。デコードの順番、即ち命令キュー140からの読み出し順はデコード・パイプラインコントローラ107によるパイプライン制御に従って制御される。
【0035】
早期命令判別回路141は命令キュー140に保持された命令の前記予備フィールドの内容を判定し、デコード・パイプラインコントローラ107による命令デコード前に、必要な処理を先に指示する。即ち、命令キャッシュメモリからフェッチした命令の実行処理において、前記第2形態に係る機能拡張に応ずる処理を実現する。例えば分岐命令であることを判定したときは分岐先命令のフェッチを命令キャッシュメモリ101に要求する。また、早期命令判別回路141は分割分岐方式に対処するようになっている。即ち、分割分岐方式では、一つの分岐動作を分岐前処理命令と分岐処理命令とに分割して処理可能とする。前記分岐前処理命令は分岐先アドレス計算と分岐先命令のフェッチを指示し、分岐処理命令は分岐条件判定と分岐処理を指示する。前記分岐前処理命令の実行によって得られた分岐先アドレスと分岐先命令はターゲットバッファ(TB)142が一時的に保持する。このとき、前記早期命令判定回路141は、前記命令キュー140に保持されている命令の前記予備フィールドの情報によって当該命令が前記分岐処理命令であることを判別したときは、前記ターゲットバッファ142から分岐先命令とそれに続く分岐先アドレスを読み出す処理を指示する。換言すれば、前記ターゲットバッファ142に予め格納されている分岐先命令をデコード・パイプラインコントローラ107に供給すると共に、分岐先でその次に実行すべき命令のアドレスTADRをターゲットバッファ142から命令キャッシュメモリ101に与えて、分岐処理を可能にする。
【0036】
図8には命令キューの詳細な一例が示される。命令キュー140は例えば4個の記憶段144を有し、4個の記憶段144の中からセレクタ145で選択された記憶段の命令が後段の命令フローユニット103に供給される。命令フローユニット103には入力ラッチ146と命令デコーダ147が代表的に示される。前記記憶段144の共通の入力段には早期命令判別回路141のための記憶段150、151が形成される。記憶段150は入力された32ビットの命令の全体を保持する32ビットのフリップフロップで構成される。記憶段151は入力された命令のうち前記予備フィールドに対応する1ビットの情報rsv[1]を保持するフリップフロップで構成される。記憶段150の各ビットはゲート152を介して早期命令判定回路141に選択的に供給可能にされる。前記ゲート152は記憶段150の各出力ビットに2入力アンドゲートを有し、それぞれの2入力アンドゲートの一方の入力には記憶段150の対応する出力が供給され、それぞれの2入力アンドゲートの他方の入力には記憶段151の出力が共通に供給される。ここでは、命令が分岐処理命令のとき、前記プリデコード・演算器100による処理にて予備フィールドの情報rsv[1]は論理値“1”にされる。したがって、その分岐処理命令は、ゲート152を通して早期命令判別回路141へ送られて処理され、デコードステージで命令デコーダ147によりその命令がデコードされるのを待つことなく、前述のように優先的に処理される。
【0037】
図9には早期命令判別回路141が分割分岐方式に対処するときの動作タイミングが例示される。前述のターゲットバッファ142は分岐先命令を保存するバッファIARTと、分岐先でその次に実行する分岐先次命令アドレスを保存するバッファIARIAとを持っている。図9のタイミングチャートは、nサイクル目、n+1サイクル目、n+2サイクル目と、3サイクル分の動作タイミングを示している。早期命令判定回路141が採用されていない場合は、命令キャッシュメモリからのフェッチ動作(S1)がnサイクル目で終わる時、次のサイクルにおいて、命令のデコード処理(S2)を行って命令の判別を行う。図のようにデコード処理に1サイクルかかる場合、さらに次のサイクルn+2サイクル目で、バッファIART、IARIAの読み出し処理(S3,S4)を行うことになる。
【0038】
これに対し、早期命令判定回路141が採用されている場合は、フェッチされた命令が分岐関連の命令である場合、予備フィールド中に分岐命令の情報が保存されているため、フェッチ処理S1の後、次のサイクルの最初ですぐに命令の判別処理S5を行なうことができる。命令デコーダによる命令デコード処理を待つことなく、その判別処理S5の結果にしたがって即座にバッファIART,IARIAの読み出し処理S3,S4に移行することが可能である。
【0039】
《第1形態に係る機能拡張情報の利用形態》
前記命令デコーダ147は、命令キャッシュメモリからフェッチした命令の実行処理において、rsv[0]=1のとき、s’[24:10]のディスプレースメント(イミディエイト値)は分岐先アドレスの下位16ビットについて既に演算されたものとして、分岐先アドレスの演算を行なう。要するに、前記第1形態に係る機能拡張に応ずる処理を実現する。例えば、分岐先アドレスを演算するとき、下位アドレスはs’[24:10]のディスプレースメントで既に計算されているので、そのまま使用できる。したがって計算が必要なのは、上位の15ビットのみである。キャリと符号が保存されているので、キャリと符号が共に0、もしくはキャリが1、符号が−1であれば、PC[31:17]の値が、そのまま有効アドレスになる。またキャリの値が0、符号が−1であれば、PC[31:17]の値を1だけデクリメント、キャリが1、符号が0の時は、PC[31:17]の値を1だけインクリメントすればよい。このように32ビット+32ビットのアドレス計算が必要であったところが、1ビットのインクリメント、もしくはデクリメントの計算で済むようになり、分岐先アドレス計算を高速化することができる。
【0040】
《予備フィールドが無い命令への対応》
図10には予備フィールドが無い命令への対応を考慮した命令キャッシュメモリが例示される。同図に示される命令キャッシュメモリは、4ウェイセットアソシアティブ形式とされ4個のウェイ161〜164を有する。各ウェイはアドレスアレイ170とデータアレイ171から成り、アドレスアレイ170にはそのキャッシュラインのタグアドレス(Tag)とバリッドビット(V)が格納される。データアレイ171にはインデックスアドレス共通の8命令が格納される。更に各命令の記憶領域の後ろには前記プリデコードに基づいて生成された情報の保存領域165が付加されている。保存領域165には、例えば分岐命令のデコードの結果を保存することによって、フェッチ時には命令と共にその保存領域165の情報も読み出されて、命令デコードの完了を待つこと無く分岐命令であることを判別することができる。したがって、予備フィールドを使った場合と同じ効果をあげることができる。
【0041】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0042】
例えば、予備フィールドを有する命令コードの例を図4、図5に示したが、これに限定されず適宜変更可能である。命令長も32ビットに限定されず、64ビット等であってよい。予備フィールドは、予約フィールド或は空きフィールドと同義と考えて差し支えない。プリデコーダは分岐命令の判別に限定されず、例えば、命令群を分類するためだけに使っても良く、さらに、他の命令の判別に利用してもよい。
【0043】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【0044】
すなわち、予備フィールド等を用いることによって、そのフィールド中に様々な情報を一時的に保存でき、その情報を基に、任意の特定の命令を高速に解読・実行させることができる。このため、例えば分岐処理は、早い段階での実行が可能となって性能を向上できる。したがって、ソフトウェアの互換性に関して不都合を生ずることなく、命令処理時間を短縮して高速動作可能なデータ処理装置を実現することができる。
【図面の簡単な説明】
【図1】本発明の一例に係るデータプロセッサを示すブロック図である。
【図2】命令のプリデコードによる機能拡張の第1形態を原理的に示す説明図である。
【図3】命令のプリデコードによる機能拡張の第2形態を原理的に示す説明図である。
【図4】予備フィールドを持つ命令の一例を示す命令フォーマット図である。
【図5】予備フィールドとディスプレースメントフィールドを持つ命令の一例を示す命令フォーマット図である。
【図6】プリデコード・演算器の一例を示すブロック図である。
【図7】フェッチ・ブランチユニットの詳細を例示するブロック図である。
【図8】命令キューの詳細を例示するブロック図である。
【図9】早期命令判別回路が分割分岐方式に対処するときの動作タイミングを例示するタイミングチャートである。
【図10】予備フィールドが無い命令への対応を考慮した命令キャッシュメモリを例示するブロック図である。
【符号の説明】
100 プリデコーダ
101 命令キャッシュユニット
102 バスインターフェースユニット
103 命令フローユニット
104 フェッチ・ブランチユニット
105 外部バス
106 外部メモリ
107 デコード・パイプラインコントローラ
110 実行ユニット
200 命令キュー
201 早期命令判別回路
202 分岐先命令やアドレスを保存しておくターゲットバッファ
121 オペレーションコード(op)フィールド
127 予備フィールド
402 ディスプレースメントフィールド
130 プリデコーダ
131 ALU
140 命令キュー
141 早期命令判定回路
142 ターゲットバッファ
144 記憶段
145 セレクタ
150,151 記憶段
152 ゲート
165 保存領域

Claims (13)

  1. 命令キャッシュメモリを有し、前記命令キャッシュメモリから読み出した命令をデコードして実行可能なデータ処理装置であって、
    前記命令は予備フィールドを有し、
    前記命令キャッシュメモリは命令の予備フィールドに応ずる領域に命令のプリデコードに基づいて生成された情報を保持することを特徴とするデータ処理装置。
  2. 前記命令キャッシュメモリから読み出した命令を実行するとき、当該命令の前記予備フィールドに応ずる領域の情報に基づいて命令実行手順を制御可能な制御手段を有することを特徴とする請求項1記載のデータ処理装置。
  3. 前記命令キャッシュメモリに命令をストアするとき前記プリデコードを行なうプリデコーダを有することを特徴とする請求項2記載のデータ処理装置。
  4. 前記プリデコーダは命令の第1フィールドに含まれるオペレーションコードをデコードすることを特徴とする請求項3記載のデータ処理装置。
  5. プリデコーダによるデコード結果から得られる命令種別の情報を命令の予備フィールドに応ずる前記領域に保持することを特徴とする請求項4記載のデータ処理装置。
  6. 前記命令の種別は分岐命令か否かを示す情報であることを特徴とする請求項5記載のデータ処理装置。
  7. 前記制御手段は、命令キャッシュメモリから読み出した命令の前記所定のフィールドに応ずる領域の情報によって当該命令が分岐命令であることを判別したとき、分岐先命令をフェッチする処理を指示することが可能なことを特徴とする請求項6記載のデータ処理装置。
  8. 前記命令キャッシュメモリから読み出された命令を一時的に保持するキューイングバッファを有し、
    一つの分岐動作を分割して処理可能な分岐前処理命令と分岐処理命令とを命令セットに有し、
    前記分岐前処理命令は分岐先アドレス計算と分岐先命令のフェッチを指示し、分岐処理命令は分岐条件判定と分岐処理を指示し、
    前記分岐前処理命令の実行によって得られた分岐先アドレスと分岐先命令を一時的に保持するターゲットバッファを有し、
    前記制御手段は、前記キューイングバッファに保持されている命令の前記所定のフィールドに応ずる領域の情報によって当該命令が前記分岐処理命令であることを判別したときは、前記ターゲットバッファから分岐先命令とそれに続く分岐先アドレスを読み出す処理を指示することが可能なことを特徴とする請求項7記載のデータ処理装置。
  9. 前記命令キャッシュメモリに命令をストアするとき、当該命令の第2フィールドに含まれる情報を用いた演算を行なう演算器を有することを特徴とする請求項3記載のデータ処理装置。
  10. 前記命令キャッシュメモリは、前記プリデコーダのデコード結果に基づいて、前記演算器による演算結果を命令の第2フィールドに応ずる命令キャッシュメモリの領域に保持することを特徴とする請求項9記載のデータ処理装置。
  11. nビットのディスプレースメント付きプログラムカウンタ相対分岐命令に対し、前記演算器は前記第2フィールドのディスプレースメントにプログラムカウンタのnビットのアドレス下位情報を加算し、nビットの加算結果を当該ディスプレースメント付きプログラムカウンタ相対分岐命令の第2フィールドに応ずる命令キャッシュメモリの領域に保持し、加算によるキャリ情報を当該ディスプレースメント付きプログラムカウンタ相対分岐命令の予備フィールドに応ずる前記領域に保持することを特徴とする請求項9記載のデータ処理装置。
  12. 命令キャッシュメモリを有し、前記命令キャッシュメモリから読み出した命令をデコードして実行可能なデータ処理装置であって、
    前記命令キャッシュメモリに命令をストアするときプリデコードを行なうプリデコーダを有し、
    前記命令キャッシュメモリは命令のプリデコードに基づいて生成された情報を命令と一対一対応で保持する領域を有することを特徴とするデータ処理装置。
  13. 前記命令キャッシュメモリから読み出した命令を実行するとき、当該命令の前記予備フィールドに応ずる領域の情報に基づいて命令実行手順を制御可能な制御手段を有することを特徴とする請求項12記載のデータ処理装置。
JP2002269754A 2002-09-17 2002-09-17 データ処理装置 Expired - Lifetime JP3862642B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002269754A JP3862642B2 (ja) 2002-09-17 2002-09-17 データ処理装置
US10/612,934 US20040054874A1 (en) 2002-09-17 2003-07-07 Data processing device with a spare field in the instruction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002269754A JP3862642B2 (ja) 2002-09-17 2002-09-17 データ処理装置

Publications (2)

Publication Number Publication Date
JP2004110248A true JP2004110248A (ja) 2004-04-08
JP3862642B2 JP3862642B2 (ja) 2006-12-27

Family

ID=31986824

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002269754A Expired - Lifetime JP3862642B2 (ja) 2002-09-17 2002-09-17 データ処理装置

Country Status (2)

Country Link
US (1) US20040054874A1 (ja)
JP (1) JP3862642B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008204357A (ja) * 2007-02-22 2008-09-04 Fujitsu Ltd 情報処理装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2515020A (en) * 2013-06-10 2014-12-17 Advanced Risc Mach Ltd Operand generation in at least one processing pipeline

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60168238A (ja) * 1984-02-10 1985-08-31 Hitachi Ltd パイプラインデータ処理装置
US5964869A (en) * 1997-06-19 1999-10-12 Sun Microsystems, Inc. Instruction fetch mechanism with simultaneous prediction of control-flow instructions
US6105126A (en) * 1998-04-30 2000-08-15 International Business Machines Corporation Address bit decoding for same adder circuitry for RXE instruction format with same XBD location as RX format and dis-jointed extended operation code
US6085313A (en) * 1998-04-30 2000-07-04 International Business Machines Corporation Computer processor system for executing RXE format floating point instructions
US6449712B1 (en) * 1999-10-01 2002-09-10 Hitachi, Ltd. Emulating execution of smaller fixed-length branch/delay slot instructions with a sequence of larger fixed-length instructions
JP3983482B2 (ja) * 2001-02-02 2007-09-26 株式会社ルネサステクノロジ 高速ディスプレースメント付きpc相対分岐方式
US6948053B2 (en) * 2002-02-25 2005-09-20 International Business Machines Corporation Efficiently calculating a branch target address

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008204357A (ja) * 2007-02-22 2008-09-04 Fujitsu Ltd 情報処理装置

Also Published As

Publication number Publication date
JP3862642B2 (ja) 2006-12-27
US20040054874A1 (en) 2004-03-18

Similar Documents

Publication Publication Date Title
EP0685788B1 (en) Programme counter update mechanism
US5606676A (en) Branch prediction and resolution apparatus for a superscalar computer processor
EP2035920B1 (en) Local and global branch prediction information storage
EP1442364B1 (en) System and method to reduce execution of instructions involving unreliable data in a speculative processor
US5293592A (en) Decoder for pipelined system having portion indicating type of address generation and other portion controlling address generation within pipeline
US20020174319A1 (en) Method and apparatus for reducing logic activity in a microprocessor
JP2000222206A (ja) データ処理装置
US7571283B2 (en) Mechanism in a multi-threaded microprocessor to maintain best case demand instruction redispatch
EP2461246B1 (en) Early conditional selection of an operand
JP3611304B2 (ja) 1サイクルのパイプライン・ストールを生成するパイプライン・プロセッサのシステム及び方法
JP2009524167A5 (ja)
US6983359B2 (en) Processor and method for pre-fetching out-of-order instructions
JP2004145454A (ja) 情報処理装置及び情報処理方法
US5987599A (en) Target instructions prefetch cache
JP2001060152A (ja) 分岐予測を抑止する情報処理装置および方法
JP3862642B2 (ja) データ処理装置
JP2007500404A (ja) 命令整列の方法および装置
KR100331199B1 (ko) 병행 생성된 복수의 페치 어드레스 중 하나를 선택하여 메모리요구를 형성하는 명령 페치 방법 및 프로세서
US7107433B1 (en) Mechanism for resource allocation in a digital signal processor based on instruction type information and functional priority and method of operation thereof
US5895497A (en) Microprocessor with pipelining, memory size evaluation, micro-op code and tags
US6308262B1 (en) System and method for efficient processing of instructions using control unit to select operations
JP2924735B2 (ja) パイプライン演算装置及びデコーダ装置
CN113568663A (zh) 代码预取指令
JP2004152049A (ja) データ処理装置
JPH06274341A (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050314

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060613

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060810

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060905

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060926

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

Free format text: PAYMENT UNTIL: 20091006

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101006

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111006

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121006

Year of fee payment: 6