JP2008204357A - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP2008204357A
JP2008204357A JP2007042343A JP2007042343A JP2008204357A JP 2008204357 A JP2008204357 A JP 2008204357A JP 2007042343 A JP2007042343 A JP 2007042343A JP 2007042343 A JP2007042343 A JP 2007042343A JP 2008204357 A JP2008204357 A JP 2008204357A
Authority
JP
Japan
Prior art keywords
instruction
conditional branch
information
branch instruction
cache memory
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
JP2007042343A
Other languages
English (en)
Other versions
JP5012084B2 (ja
Inventor
Yasuhiro Yamazaki
恭啓 山崎
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 JP2007042343A priority Critical patent/JP5012084B2/ja
Priority to US12/071,586 priority patent/US7877578B2/en
Priority to CN2008100079893A priority patent/CN101251793B/zh
Publication of JP2008204357A publication Critical patent/JP2008204357A/ja
Application granted granted Critical
Publication of JP5012084B2 publication Critical patent/JP5012084B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • 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/3017Runtime instruction translation, e.g. macros
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/324Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address using program counter relative addressing
    • 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
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables

Abstract

【課題】回路規模が小さく、履歴情報を基に条件分岐命令の分岐予測を行うことができる情報処理装置を提供することを課題とする。
【解決手段】入力された命令内のオペコードをデコードし、前記入力された命令が条件分岐命令であるときには、前記入力された命令が条件分岐命令であることを示す条件分岐命令情報及びその条件分岐命令の種類を示す命令種類情報を生成し、前記入力された命令内のオペコードを削除した命令、前記条件分岐命令情報及び前記命令種類情報を命令キャッシュメモリに書き込むプリデコーダ(301)と、前記命令キャッシュメモリ内の条件分岐命令を読み出して実行した結果、その条件分岐命令が分岐したか否かを示す履歴情報を前記命令キャッシュメモリ内の条件分岐命令の前記オペコードが削除された場所に書き込む履歴情報書き込み部(405)とを有することを特徴とする情報処理装置が提供される。
【選択図】図4

Description

本発明は、情報処理装置に関し、特に条件分岐命令を処理する情報処理装置に関する。
図10は、条件分岐命令を含む命令群1101の例を示す図である。第1行のAdd命令(加算命令)は、GR3=GR1+GR2を意味する。すなわち、このAdd命令は、レジスタGR1及びGR2の値を加算し、レジスタGR3に格納する命令である。
第2行のSubcc命令(減算命令)は、GR4=GR3−0x8(16進数)を意味する。すなわち、このSubcc命令は、レジスタGR3の値から0x8(16進数)を減算し、レジスタGR4に格納する命令である。その際、ゼロフラグは、演算結果が0であれば1になり、それ以外であれば0になる。
第3行のBEQ命令(条件分岐命令)は、ゼロフラグが1であればラベル名Target0のアドレスへ分岐し、0であれば分岐せずに次のアドレスに進む命令である。すなわち、ゼロフラグが1であれば第6行のAnd命令に分岐し、ゼロフラグが1であれば第4行のAnd命令に進む。
第4行のAnd命令(論理積命令)は、GR10=GR8 & GR4を意味する。すなわち、このAnd命令は、レジスタGR8及びGR4の値の論理積を演算し、レジスタGR10に格納する命令である。
第5行のSt命令(ストア命令)は、memory(GR6+GR7)=GR10を意味する。すなわち、このSt命令は、レジスタGR10の値を、レジスタGR6及びGR7を加算した値のアドレスのメモリにストア(格納)する命令である。
ラベル名Target0のアドレスには、第6行のAnd命令が記憶されている。第6行のAnd命令は、GR11=GR4 & GR9を意味する。すなわち、このAnd命令は、レジスタGR4及びGR9の値の論理積を演算し、レジスタGR11に格納する命令である。
第7行のLd命令(ロード命令)は、GR10=memory(GR6+GR7)を意味する。すなわち、このLd命令は、レジスタGR6及びGR7を加算した値のアドレスのメモリから値をロード(読み出)し、レジスタGR10に格納する命令である。
ここで、第3行のBEQ命令(条件分岐命令)は、ゼロフラグの値に応じて、分岐するか否かが決まる。したがって、BEQ命令(条件分岐命令)の実行後に命令実行されない時間(分岐ペナルティ)が生じる。通常、分岐ペナルティは、3〜5クロックサイクルであり、10クロックサイクル以上のものもある。分岐ペナルティは、命令群1101の実行速度低下の原因になる。
図11は、命令のパイプライン処理を示す図である。以下、分岐ペナルティが発生する理由を説明する。ステージ130〜134は、それぞれパイプラインステージを示す。まず、第1のステージ130では、命令読み出しのためのアドレスを計算する。次に、第2のステージ131では、命令キャッシュメモリから命令を読み出す。次に、第3のステージ132では、レジスタから値を読み出すと共に、命令の解釈(デコード)を行う。次に、第4のステージ133では、演算器により命令の演算実行を行う。次に、第5のステージ134では、演算結果をレジスタに書き込む。
図10の命令群1101の場合、BEQ命令(条件分岐命令)の演算実行ステージ133の結果、分岐するか否かが決定する。分岐する場合には、ステップS1201により、第1のステージ130に戻り、分岐先のラベル名Target0のアドレスを計算する。その後、ステージ131〜133を行う。このため、BEQ命令(条件分岐命令)の演算実行ステージ133の後、次の分岐先のAnd命令の演算実行ステージ133を行うまでの間に分岐ペナルティが発生する。
以上のように、近年のマイクロプロセッサは、パイプライン化されている。パイプライン化は各ステージ130〜134が独立していることを前提に命令を並列処理する方式である。しかし、条件分岐命令についてはステージ間に依存があり、演算実行ステージ133と命令読み出しアドレスの計算ステージ130が関係しているため、演算実行ステージ133後に命令実行されない時間が生じる。これが分岐ペナルティの発生原因である。
パイプライン構造を採るマイクロプロセッサ等の情報処理装置において、条件分岐命令の実行によって制御の流れが分岐した場合に生じるパイプラインの乱れを抑える手法の一つに分岐予測がある。高い的中率の分岐予測を行うには、条件分岐命令毎に分岐の成否を予測する必要がある。そのための方法として、プログラム中の各条件分岐命令に対応する分岐予測情報を集めた分岐予測テーブルを設けることが考えられる。ところが、情報処理装置の内部に分岐予測テーブルを持たせたのではハードウェアの増大を招く。
下記の特許文献1には、分岐予測情報及び分岐履歴情報を分岐命令自体に備えるという方法が提案されている。しかし、この方法は、分岐先のアドレスを決定するオフセットアドレスに使用可能なビット数を減少させてしまうという問題がある。
また、下記の特許文献2には、分岐方向を指定する分岐予測情報を含む複数の分岐命令を格納する記憶手段と、前記分岐予測情報に応じて前記記憶手段から次に実行すべき命令を先取りする先取り手段と、前記分岐命令の実行結果に応じて該分岐命令の分岐予測情報を更新する更新手段とを含むことを特徴とする情報処理装置が記載されている。
特開平10−228377号公報 特開昭63−75934号公報
プログラム中の各条件分岐命令に対応する分岐予測情報を集めた分岐予測テーブルを情報処理装置の内部に設けると、その分岐予測テーブル専用のRAMが必要になり、半導体チップの面積が増大する。また、分岐命令自体に分岐予測情報を格納させると、分岐命令内の分岐先アドレスに使用可能なビット数が減少してしまう。
本発明の目的は、回路規模が小さく、履歴情報を基に条件分岐命令の分岐予測を行うことができる情報処理装置を提供することである。
本発明の一観点によれば、命令を記憶するための命令キャッシュメモリと、入力された命令内のオペコードをデコードし、前記入力された命令が条件分岐命令であるときには、前記入力された命令が条件分岐命令であることを示す条件分岐命令情報及びその条件分岐命令の種類を示す命令種類情報を生成し、前記入力された命令内のオペコードを削除した命令、前記条件分岐命令情報及び前記命令種類情報を前記命令キャッシュメモリに書き込むプリデコーダと、前記命令キャッシュメモリ内の条件分岐命令を読み出して実行した結果、その条件分岐命令が分岐したか否かを示す履歴情報を前記命令キャッシュメモリ内の条件分岐命令の前記オペコードが削除された場所に書き込む履歴情報書き込み部とを有することを特徴とする情報処理装置が提供される。
条件分岐命令のオペコードが削除された場所に履歴情報を書き込むので、専用の履歴情報テーブルが必要なくなり、回路規模を小さくすることができる。また、条件分岐命令内の分岐先アドレスに使用可能なビット数を減らす必要がない。
(第1の実施形態)
図1は、本発明の第1の実施形態による情報処理装置の構成例を示す図である。この情報処理装置は、第1のステージ130、第2のステージ131、第3のステージ132、第4のステージ133、第5のステージ134の5ステージのパイプライン処理を行う。
図2は、本実施形態によるパイプライン処理を示す図である。ステージ130〜134は、それぞれパイプラインステージを示す。まず、第1のステージ130では、命令フェッチ制御部104が命令読み出しのためのアドレスを計算する。次に、第2のステージ131では、命令フェッチ制御部104が命令キャッシュメモリ102から命令キュー103に命令を読み出す。次に、第3のステージ132では、命令デコーダ105が、レジスタ109から値を読み出して演算器107に出力すると共に、命令の解釈(デコード)を行う。次に、第4のステージ133では、演算器107は、命令の演算実行を行う。次に、第5のステージ134では、演算器107の演算結果をレジスタ109に書き込む。
以下、詳細に説明する。CPU(中央演算処理装置)101は、マイクロプロセッサであり、バス120を介してメインメモリ121に接続される。メインメモリ121は、例えばSDRAMであり、バス122を介して外部バス120に接続される。CPU101は、命令キャッシュメモリ102、命令キュー(プリフェッチバッファ)103、命令フェッチ制御部104、命令デコーダ105、分岐ユニット106、演算器107、ロード及びストア部108、レジスタ109、変換回路123並びに選択回路124を有する。
変換回路123は、バス117aを介して外部バス120に接続され、バス117bを介して命令キャッシュメモリ102に接続される。命令キュー103は、命令用バス112を介して命令キャッシュメモリ102に接続される。命令キャッシュメモリ102は、頻繁に使用する命令(プログラム)の一部を予めメインメモリ121から読み込み記憶し、逆に使用されないものから追い出していく。CPU101が要求する命令が命令キャッシュメモリ102上にある場合をキャッシュヒットという。キャッシュヒットした場合には、CPU101は命令キャッシュメモリ102から命令を受け取ることができる。それに対し、CPU101が要求する命令が命令キャッシュメモリ102上にない場合をキャッシュミスという。キャッシュミスの場合は、命令キャッシュメモリ102がバスアクセス信号116によりメインメモリ121に命令の読み出し要求を行う。CPU101は、命令キャッシュメモリ102を介してメインメモリ121から命令を読み出すことができる。バス112の転送速度は、外部バス120の転送速度に比べて極めて速い。したがって、キャッシュヒットした場合には、キャッシュミスした場合に比べ、命令読み出し速度が極めて速い。また、命令(プログラム)がシーケンシャルに読み出される可能性が高いことからキャッシュヒット率が高くなるので、命令キャッシュメモリ102を設けることにより、CPU101の命令読み出し速度が全体的に速くなる。
変換回路123は、メインメモリ121及び命令キャッシュメモリ102間に接続され、メインメモリ121から読み出した命令が条件分岐命令である場合には、条件分岐命令を変換し、その変換した条件分岐命令を命令キャッシュメモリ102に書き込む書き込み回路を有する。その詳細は、後に図3を参照しながら説明する。
命令キュー103は、複数の命令を記憶可能であり、バス112を介して命令キャッシュメモリ102に接続され、バス115を介して命令デコーダ105に接続される。すなわち、命令キュー103は、命令キャッシュメモリ102からの命令を書き込み、その命令を読み出して命令デコーダ105に出力する。命令フェッチ制御部104は、命令キャッシュメモリ102に対してキャッシュアクセス制御信号110を入出力し、命令キュー103の入出力を制御する。命令デコーダ105は、命令キュー103に蓄えられた命令をデコードする。
演算器107は、複数の命令を同時実行可能である。選択回路124は、命令デコーダ105がデコードした命令のうち同時実行可能な命令があれば、同時実行させる複数の命令を選択して演算器107に出力する。なお、選択回路124は、省略可能である。演算器107は、レジスタ109から値を入力し、命令デコーダ105がデコードした命令を1命令単位で又は複数命令同時に演算実行する。レジスタ109には、演算器107の実行結果が書き込まれる。ロード及びストア部108は、命令デコーダ105がデコーダした命令がロード又はストア命令であるときに、レジスタ109及びメインメモリ121間でロード又はストアを行う。
演算器107の演算により条件分岐命令の直前の命令が実行され、実行結果がレジスタ109に書き込まれる。このレジスタ109内の実行結果119は、分岐ユニット106に入力される。演算器107の演算により条件分岐命令が実行され、分岐条件が成立したかを示す情報が例えばレジスタ109内に設けられたフラグを介して分岐ユニット106に入力される。命令デコーダ105は、命令デコーダ105がデコードした命令が条件分岐命令であるとき、条件分岐命令デコード通知信号113を分岐ユニット106に出力する。分岐ユニット106は、条件分岐命令デコード通知信号113及び条件分岐命令実行結果119に応じて、条件分岐命令実行通知信号114を命令フェッチ制御部104に出力する。すなわち、条件分岐命令の実行結果に応じて、条件分岐命令実行通知信号114を用いて分岐するか否かを通知する。命令フェッチ制御部104は、この条件分岐命令実行通知信号114を今回の分岐履歴情報として、命令キャッシュメモリ102に書き込む。分岐履歴情報は、条件分岐命令が分岐したか否かを示す情報である。
次に、命令フェッチ制御部104は、命令キャッシュメモリ102から読み出した命令が条件分岐命令であるとき、命令キャッシュメモリ102内の過去の分岐履歴情報を基に分岐するか否かを予測し、その予測した読み出しアドレスを計算し、その読み出しアドレスの命令をプリフェッチ要求する。具体的には、命令フェッチ制御部104は、キャッシュアクセス制御信号110を命令キャッシュメモリ102に出力することによりプリフェッチ要求する。プリフェッチ要求により、命令キャッシュメモリ102から命令キュー103に命令がプリフェッチされる。
このように条件分岐命令を実行する前の命令キャッシュメモリ102からの読み出しの段階で条件分岐先命令のプリフェッチ要求を行う。この後、条件分岐命令を実行した段階で、分岐の有無が決定する。すなわち、演算器107の演算により条件分岐命令の直前の命令が実行され、実行結果がレジスタ109に書き込まれる。このレジスタ109内の実行結果119は、分岐ユニット106に入力される。演算器107の演算により条件分岐命令が実行され、分岐条件が成立したかを示す情報が例えばレジスタ109内に設けられたフラグを介して分岐ユニット106に入力される。命令デコーダ105は、命令デコーダ105がデコードした命令が条件分岐命令であるとき、条件分岐命令デコード通知信号113を分岐ユニット106に出力する。分岐ユニット106は、条件分岐命令デコード通知信号113及び条件分岐命令実行結果119に応じて、条件分岐命令実行通知信号114を命令フェッチ制御部104に出力する。すなわち、条件分岐命令の実行結果に応じて、条件分岐命令実行通知信号114を用いて分岐するか否かを通知する。命令フェッチ制御部104は、この通知を基に上記の履歴情報を命令キャッシュメモリ102に書き込む。それと同時に、命令フェッチ制御部104は、上記分岐予測が外れていた場合には、上記でプリフェッチ要求した命令を無視し、正しい読み出しアドレスの命令のプリフェッチ、デコード及び実行を行う。また、命令フェッチ制御部104は、アクセスキャンセル信号111を命令キャッシュメモリ102に出力する。命令キャッシュメモリ102は、既に上記の分岐先のプリフェッチ要求を受けており、キャッシュミスした場合にはメインメモリ121にアクセスしようとしている。命令キャッシュメモリ102は、アクセスキャンセル信号111を入力すると、メインメモリ121へのアクセスをキャンセルする。これにより、不要なメインメモリ121へのアクセスをなくし、性能低下を防止できる。
なお、実行結果119は、説明の簡単のために、レジスタ109から分岐ユニット106に入力されるように示したが、実際にはバイパス回路を用いることにより実行ステージ133の実行完了を待たずに、実行結果119を分岐ユニット106に入力することができる。
命令フェッチ制御部104は、演算結果に応じて条件分岐命令が分岐したか否かを示す履歴情報を命令キャッシュメモリ102に書き込んでおく。これにより、図2のステージ131において、ステップS1301により命令フェッチ制御部104が命令キャッシュメモリ102から命令を読み出し、その命令が条件分岐命令であるときには、上記の履歴情報を基にその条件分岐命令が分岐するか否かを予測する。次に、ステップS1302により、ステージ130では、命令フェッチ制御部104は、その予測に応じて、読み出しアドレスを計算する。その後、パイプライン処理を続ける。その後、条件分岐命令の演算実行ステージ133により、分岐するか否かが確定する。予測が外れた場合には、その予測した命令をキャンセルし、ステップS1303により、ステージ130に戻り、命令フェッチ制御部104は、正しい読み出しアドレスを計算する。予測が当たった場合には、分岐ペナルティを削減することができる。
図3は、図1の変換回路123の構成例を示す図である。変換回路123は、メインメモリ121から入力した命令312が条件分岐命令である場合には、その条件分岐命令312を条件分岐命令313及び条件分岐命令情報CBに変換し、条件分岐命令313及び条件分岐命令情報CBを命令キャッシュメモリ102に書き込む。変換回路123は、プリデコーダ301を有する。条件分岐命令は、上記の図10の説明と同じである。
条件分岐命令312がメインメモリ121から変換回路123に入力された場合を説明する。1命令は32ビット(4バイト)長である。条件分岐命令312は、条件321、オペコード322及びオフセット(プログラムカウンタ相対分岐先アドレス)323を含む。条件321及びオペコード322は、条件分岐命令312の16ビット目から31ビット目までの16ビットである。オフセット323は、条件分岐命令312の0ビット目から15ビット目までの16ビットである。条件321は、分岐するか否かの判定条件であり、例えばゼロフラグ又はキャリフラグ等である。BEQ命令の条件321は、ゼロフラグである。オペコード322は、命令の種類を示す。オフセット323は、プログラムカウンタ相対分岐先アドレスであり、プログラムカウンタ値を基準にした相対アドレスである。プログラムカウンタ値は、図1のレジスタ109内のプログラムカウンタから読み出した値であり、現在読み出して実行処理しているメインメモリ121内の32ビットのアドレスを示す。条件分岐命令312が入力されると、プログラムカウンタ値は条件分岐命令312のアドレスと同じ値になる。条件分岐命令312が分岐する場合には、オフセット(プログラムカウンタ相対分岐先アドレス)323が示すアドレスに分岐する。
プリデコーダ301は、メインメモリ121から入力された命令312内のオペコード322をデコードし、前記入力された命令312が条件分岐命令であるときには、前記入力された命令312が条件分岐命令であることを示す条件分岐命令情報CB及びその条件分岐命令の種類を示す命令種類情報ABを生成し、前記入力された命令312内のオペコード322を削除した命令、前記条件分岐命令情報CB及び前記命令種類情報ABを命令キャッシュメモリ102に書き込む。具体的には、プリデコーダ301は、命令種類情報ABを命令キャッシュメモリ102内の条件分岐命令のオペコード322が削除された場所に書き込む。すなわち、プリデコーダ301は、条件分岐命令313と条件分岐命令情報CBとを対応させて命令キャッシュメモリ102に書き込む。条件分岐命令情報CBは、それに対応する命令が条件分岐命令であるか否かを示す1ビットの情報であり、例えば1であれば条件分岐命令であることを示し、0であれば条件分岐命令でないことを示す。オペコード322は、条件分岐命令情報CB及び命令種類情報ABに変換される。条件分岐命令であることを示す条件分岐命令情報CBが書き込まれれば、オペコード322の大半の情報は不要になり、オペコード322はビット数の少ない命令種類情報ABに変換される。例えば、オペコード322は10ビットであり、命令種類情報ABは2ビット又は3ビットである。
変換後の条件分岐命令313は、変換前の条件分岐命令312に対して、オペコード322を命令種類情報AB及び履歴情報BBに置き換えたものである。すなわち、条件分岐命令313は、条件321、命令種類情報AB、履歴情報BB及びオフセット323を有する。履歴情報BBは、初期時には履歴情報がないことを示す情報又は初期値となり、命令実行後には過去にその対応する条件分岐命令313が実際に分岐したか否かを示す情報となる。例えば、条件321は6ビット、オフセット323は16ビットである。命令種類情報ABは2ビット又は3ビット、履歴情報BBは8ビット又は7ビットである。例えば、履歴情報BBが8ビットであれば、過去の8回分の履歴情報を有する。履歴情報BBについては、後に図4〜図7を参照しながら詳細に説明する。
なお、プリデコーダ301は、入力された命令312内のオペコード322をデコードし、前記入力された命令312が条件分岐命令でないときには、前記入力された命令312が条件分岐命令でないことを示す条件分岐命令情報CB及び前記入力された命令312を命令キャッシュメモリ102に書き込む。
図4〜図7は、本実施形態による情報処理装置の処理ステップを説明するための図である。命令実行部401は、図1の命令キュー103、命令デコーダ105、選択回路124、演算器107及びレジスタ109を含み、命令キャッシュメモリ102内の命令を読み出してデコード及び実行を行う。命令キャッシュメモリ102は、キャッシュRAM(ランダムアクセスメモリ)402を有する。命令フェッチ制御部104は、フェッチアドレス生成部403、分岐予測部404及び履歴情報生成部405を有する。
フェッチアドレス生成部403は、命令キャッシュメモリ102に読み出しアドレスADを出力する。命令キャッシュメモリ102は、アドレスADの命令がキャッシュRAM402内に記憶されていないときには、キャッシュミスとして、メインメモリ121に読み出し要求信号を出力する。
すると、図4に示すように、メインメモリ121は、アドレスADの命令312を変換回路123を介して命令キャッシュメモリ102に出力する。命令312が条件分岐命令である場合、条件分岐命令312は、条件321、オペコード322及びオフセット323を有する。プリデコーダ301は、オペコード322をデコードし、命令種類情報AB及び条件分岐命令情報CBを生成する。変換回路123は、条件分岐命令312を条件分岐命令313及び条件分岐命令情報CBに変換し、条件分岐命令313及び条件分岐命令情報CBを命令キャッシュメモリ102内のキャッシュRAM402に書き込む。条件分岐命令313は、条件321、命令種類情報AB、履歴情報BB及びオフセット323を有する。この時点では、条件分岐命令313の分岐履歴は存在しないので、履歴情報BBは初期値となる。命令及び条件分岐命令情報CBは対応付けされて記憶される。その命令が条件分岐命令であるときには、それに対応する条件分岐命令情報CBは1になり、変換後の命令313がキャッシュRAM402に記憶される。その命令が条件分岐命令でないときには、それに対応する条件分岐命令情報CBは0になり、メインメモリ121から出力された命令が変換されずにそのままキャッシュRAM402に記憶される。
次に、図5に示すように、命令キャッシュメモリ102は、フェッチアドレス生成部403が出力するアドレスADの命令及び条件分岐命令情報CBを命令フェッチ制御部104及び命令実行部401に出力する。なお、アドレスADの命令がキャッシュRAM402内に存在し、キャッシュヒットした場合にも、図5の処理を行う。
次に、図6に示すように、分岐予測部404は、条件分岐命令情報CBを基にその命令が条件分岐命令であるか否かを判断し、条件分岐命令であるときには履歴情報BBを基にその条件分岐命令が分岐するか否かを予測し、その予測情報をフェッチアドレス生成部403に出力する。すなわち、分岐予測部404は、命令キャッシュメモリ102内の条件分岐命令が読み出されると、その条件分岐命令の履歴情報BBを基にその条件分岐命令が分岐するか否かを予測し、その予測した次の読み出しアドレスの生成をフェッチアドレス生成部403に指示する。履歴情報BBは、後に説明するように、過去の分岐履歴情報である。例えば、過去8回分の履歴がすべて分岐している場合には、今回の条件分岐命令も分岐するであろうと予測することができる。また、過去8回分の履歴がすべて分岐していない場合には、今回の条件分岐命令も分岐しないであろうと予測することができる。また、過去の履歴が「分岐する」と「分岐しない」が交互に出現している場合には、今回の条件分岐命令もそのパターンに従ったものになるであろうと予測することができる。履歴情報生成部405は、後に今回の履歴を含めた履歴情報を生成するために、履歴情報BBを記憶しておく。この後、図2のステップS1302のように、フェッチアドレス生成部403は、分岐予測部404から入力した予測情報を基にフェッチアドレスADを生成し、命令キャッシュメモリ102に対してプリフェッチ要求を出力する。
次に、図7に示すように、命令実行部401は、命令キャッシュメモリ102から入力した命令をデコード及び実行する。その命令が条件分岐命令である場合には、命令実行部401は、その条件分岐命令の実行結果に応じて、その条件分岐命令が分岐したか否かを示す履歴情報を履歴情報生成部405に出力し、上記の分岐予測が当たったか否かを示す予測結果情報をフェッチアドレス生成部403に出力する。分岐予測が外れた場合、フェッチアドレス生成部403は、次に実行すべき正しいアドレスADを生成し、命令キャッシュメモリ102に出力する。履歴情報生成部405は、命令実行部401から入力した今回の履歴情報を上記の命令キャッシュメモリ102から入力した過去の履歴情報に追加した履歴情報BBをキャッシュRAM402内の対応する命令内に書き込む。なお、履歴情報BBのビット数は限られているので、例えば最新の7回又は8回分の履歴情報BBを書き込む。
以上のように、履歴情報生成部(履歴情報書き込み部)405は、命令実行部401が命令キャッシュメモリ102内の条件分岐命令を読み出して実行した結果、その条件分岐命令が分岐したか否かを示す履歴情報BBを命令キャッシュメモリ102内の条件分岐命令のオペコードが削除された場所に書き込む。具体的には、履歴情報生成部405は、命令キャッシュメモリ102に書き込まれている過去の履歴情報に今回の履歴情報を追加するように書き込む。
なお、分岐予測部404を履歴情報生成部405内に設けてもよい。すなわち、履歴情報生成部405は、命令実行部401から履歴情報を入力すると、その履歴情報を基に、その履歴情報に対応する条件分岐命令が次に読み出されたときにその条件分岐命令が分岐するか否かを予測し、その予測情報を履歴情報と共に命令キャッシュメモリ102に書き込む。履歴情報及び予測情報は、命令313内のオペコード322が削除された場所に書き込まれる。その後、フェッチアドレス生成部403は、命令キャッシュメモリ102内の条件分岐命令が読み出されると、その条件分岐命令の予測情報が示す次の読み出しアドレスを生成する。
本実施形態のキャッシュRAM402は、シングルポートRAMであり、命令の読み出しと履歴情報BBの書き込みのタイミングが競合すると、同時刻にはいずれか一方のみしか行えない。そこで、その課題を解決するための実施形態として、以下、本発明の第2及び第3の実施形態による情報処理装置を説明する。
(第2の実施形態)
図8は、本発明の第2の実施形態による情報処理装置の構成例を示す図である。以下、本実施形態が第1の実施形態と異なる点を説明する。本実施形態は、第1の実施形態のキャシュRAM402を2個のキャッシュRAM402e及び402oに分割したものである。キャッシュRAM402eはキャッシュRAM402のうちの偶数アドレスの命令及び条件分岐命令情報CBを記憶し、キャッシュRAM402oはキャッシュRAM402のうちの奇数アドレスの命令及び条件分岐命令情報CBを記憶する。キャッシュRAM402e及び402oは、それぞれキャッシュRAM402の半分の容量を有する。変換回路123は、メインメモリ121から入力した命令のアドレスが偶数であるときには命令及び条件分岐命令情報CBをキャッシュRAM402eに書き込み、奇数であるときには命令及び条件分岐命令情報CBをキャッシュRAM402oに書き込む。キャッシュRAM402eは、アドレスADが奇数であるときにはアドレスADの命令等802を読み出して出力する。キャッシュRAM402oは、アドレスADが偶数であるときにはアドレスADの命令等802を読み出して出力する。セレクタ801は、アドレスADが偶数であるときにはキャッシュRAM402eが出力する命令等802を選択して命令フェッチ制御部104に出力し、アドレスADが奇数であるときにはキャッシュRAM402oが出力する命令等802を選択して命令フェッチ制御部104に出力する。命令等802は、命令及び条件分岐命令情報CBを含む。履歴情報生成部405は、履歴情報BBに対応する命令のアドレスが偶数であるときには履歴情報BBをキャッシュRAM402eに書き込み、履歴情報BBに対応する命令のアドレスが奇数であるときには履歴情報BBをキャッシュRAM402oに書き込む。キャッシュRAM402を2個のキャッシュRAM402e及び402oに分割する場合を例に説明したが、3個以上に分割してもよい。命令キャッシュメモリは、入力された命令を分散して書き込むための複数の命令キャッシュメモリに分割されている。これにより、キャッシュRAM402eに履歴情報BBを書き込むと同時にキャッシュRAM402oから命令等802を読み出したり、逆に、キャッシュRAM402oに履歴情報BBを書き込むと同時にキャッシュRAM402eから命令等802を読み出すことができる。
(第3の実施形態)
図9は、本発明の第3の実施形態による情報処理装置の構成例を示す図である。以下、本実施形態が第1の実施形態と異なる点を説明する。本実施形態は、第1の実施形態のキャシュRAM402を2個のキャッシュRAM402a及び402bに分割したものである。キャッシュRAM402aは、シングルポートRAMであり、条件321、命令種類情報AB、オフセット323及び条件分岐命令情報CBを記憶する。キャッシュRAM402bは、デュアルポートRAMであり、履歴情報BBを記憶する。すなわち、命令キャッシュメモリは、入力された命令内のオペコードを削除した命令(条件321、オフセット323を含む)、条件分岐命令情報CB及び命令種類情報ABを記憶するためのシングルポートメモリ402a及び履歴情報BBを記憶するためのデュアルポートメモリ402bを有する。変換回路123は、命令321、命令種類情報AB、オフセット323及び条件分岐命令情報CBをキャッシュRAM402aに書き込む。履歴情報生成部405は、履歴情報BBをキャッシュRAM402bに書き込む。アドレスADが入力されると、そのアドレスADに対応し、キャッシュRAM402aは命令等901を読み出して出力し、キャッシュRAMBBは履歴情報BBを読み出して出力する。命令等901は、命令321、命令種類情報AB、オフセット323及び条件分岐命令情報CBを含む。命令等901及び履歴情報BBを合わせた情報802は、命令フェッチ制御部104に出力される。読み出し及び書き込みのタイミングが競合する可能性があるのは、履歴情報BBだけである。そこで、履歴情報BBのみをデュアルポートRAM402bに記憶させる。デュアルポートRAM402bは、履歴情報BBの読み出しと書き込みを同時に行うことができる。なお、第1の実施形態のキャッシュRAM402の全部をデュアルポートにしてもよい。ただし、デュアルポートRAMは、シングルポートRAMよりも高価であるため、本実施形態の方がコストを低減することができる。
以上のように、第1〜第3の実施形態によれば、プリデコード301は、入力された命令内のオペコード322をデコードし、前記入力された命令が条件分岐命令であるときには、前記入力された命令が条件分岐命令であることを示す条件分岐命令情報CB及びその条件分岐命令の種類を示す命令種類情報ABを生成し、前記入力された命令内のオペコード322を削除した命令、条件分岐命令情報CB及び命令種類情報ABを命令キャッシュメモリ102に書き込む。履歴情報生成部(履歴情報書き込み部)405は、命令キャッシュメモリ102内の条件分岐命令を読み出して実行した結果、その条件分岐命令が分岐したか否かを示す履歴情報BBを命令キャッシュメモリ102内の条件分岐命令のオペコード322が削除された場所に書き込む。
条件分岐命令のオペコードが削除された場所に履歴情報BBを書き込むので、専用の履歴情報テーブルが必要なくなり、回路規模を小さくすることができる。また、条件分岐命令内の分岐先アドレスに使用可能なビット数を減らす必要がない。また、分岐予測部404は、履歴情報BBに基づく動的分岐予測を行うことができる。本実施形態では、メインメモリ121から命令キャッシュメモリ102に条件分岐命令を読み込んだ時にのみ、命令キャッシュメモリ102の内部で、条件分岐命令自体に分岐履歴情報BBを格納することができる。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の実施形態は、例えば以下のように種々の適用が可能である。
(付記1)
命令を記憶するための命令キャッシュメモリと、
入力された命令内のオペコードをデコードし、前記入力された命令が条件分岐命令であるときには、前記入力された命令が条件分岐命令であることを示す条件分岐命令情報及びその条件分岐命令の種類を示す命令種類情報を生成し、前記入力された命令内のオペコードを削除した命令、前記条件分岐命令情報及び前記命令種類情報を前記命令キャッシュメモリに書き込むプリデコーダと、
前記命令キャッシュメモリ内の条件分岐命令を読み出して実行した結果、その条件分岐命令が分岐したか否かを示す履歴情報を前記命令キャッシュメモリ内の条件分岐命令の前記オペコードが削除された場所に書き込む履歴情報書き込み部と
を有することを特徴とする情報処理装置。
(付記2)
前記プリデコーダは、前記命令種類情報を前記命令キャッシュメモリ内の条件分岐命令の前記オペコードが削除された場所に書き込むことを特徴とする付記1記載の情報処理装置。
(付記3)
前記履歴情報書き込み部は、前記命令キャッシュメモリに書き込まれている過去の履歴情報に今回の履歴情報を追加するように書き込むことを特徴とする付記1記載の情報処理装置。
(付記4)
さらに、前記命令キャッシュメモリ内の条件分岐命令が読み出されると、その条件分岐命令の履歴情報を基にその条件分岐命令が分岐するか否かを予測し、その予測した次の読み出しアドレスの生成を指示する分岐予測部を有することを特徴とする付記1記載の情報処理装置。
(付記5)
前記履歴情報書き込み部は、前記履歴情報を基に、前記履歴情報に対応する条件分岐命令が次に読み出されたときにその条件分岐命令が分岐するか否かを予測し、その予測情報を前記履歴情報と共に前記命令キャッシュメモリに書き込むことを特徴とする付記1記載の情報処理装置。
(付記6)
さらに、前記命令キャッシュメモリ内の条件分岐命令が読み出されると、その条件分岐命令の予測情報が示す次の読み出しアドレスを生成するアドレス生成部を有することを特徴とする付記5記載の情報処理装置。
(付記7)
前記命令キャッシュメモリは、前記入力された命令を分散して書き込むための複数の命令キャッシュメモリに分割されていることを特徴とする付記1記載の情報処理装置。
(付記8)
前記命令キャッシュメモリは、前記入力された命令内のオペコードを削除した命令、前記条件分岐命令情報及び前記命令種類情報を記憶するためのシングルポートメモリ及び前記履歴情報を記憶するためのデュアルポートメモリを有することを特徴とする付記1記載の情報処理装置。
(付記9)
前記プリデコーダは、入力された命令内のオペコードをデコードし、前記入力された命令が条件分岐命令でないときには、前記入力された命令が条件分岐命令でないことを示す条件分岐命令情報及び前記入力された命令を前記命令キャッシュメモリに書き込むことを特徴とする付記1記載の情報処理装置。
(付記10)
さらに、前記命令キャッシュメモリ内の命令を読み出してデコード及び実行を行う命令実行部を有し、
前記履歴情報書き込み部は、前記命令実行部による条件分岐命令の実行の結果に応じて前記履歴情報を書き込むことを特徴とする付記1記載の情報処理装置。
(付記11)
前記プリデコーダは、前記命令種類情報を前記命令キャッシュメモリ内の条件分岐命令の前記オペコードが削除された場所に書き込むことを特徴とする付記10記載の情報処理装置。
(付記12)
前記履歴情報書き込み部は、前記命令キャッシュメモリに書き込まれている過去の履歴情報に今回の履歴情報を追加するように書き込むことを特徴とする付記11記載の情報処理装置。
(付記13)
前記プリデコーダは、入力された命令内のオペコードをデコードし、前記入力された命令が条件分岐命令でないときには、前記入力された命令が条件分岐命令でないことを示す条件分岐命令情報及び前記入力された命令を前記命令キャッシュメモリに書き込むことを特徴とする付記12記載の情報処理装置。
(付記14)
さらに、前記命令キャッシュメモリ内の条件分岐命令が読み出されると、その条件分岐命令の履歴情報を基にその条件分岐命令が分岐するか否かを予測し、その予測した次の読み出しアドレスの生成を指示する分岐予測部を有することを特徴とする付記13記載の情報処理装置。
(付記15)
前記履歴情報書き込み部は、前記履歴情報を基に、前記履歴情報に対応する条件分岐命令が次に読み出されたときにその条件分岐命令が分岐するか否かを予測し、その予測情報を前記履歴情報と共に前記命令キャッシュメモリに書き込むことを特徴とする付記13記載の情報処理装置。
(付記16)
さらに、前記命令キャッシュメモリ内の条件分岐命令が読み出されると、その条件分岐命令の予測情報が示す次の読み出しアドレスを生成するアドレス生成部を有することを特徴とする付記15記載の情報処理装置。
(付記17)
前記命令キャッシュメモリは、前記入力された命令を分散して書き込むための複数の命令キャッシュメモリに分割されていることを特徴とする付記13記載の情報処理装置。
(付記18)
前記命令キャッシュメモリは、前記入力された命令内のオペコードを削除した命令、前記条件分岐命令情報及び前記命令種類情報を記憶するためのシングルポートメモリ及び前記履歴情報を記憶するためのデュアルポートメモリを有することを特徴とする付記13記載の情報処理装置。
本発明の第1の実施形態による情報処理装置の構成例を示す図である。 第1の実施形態によるパイプライン処理を示す図である。 変換回路の構成例を示す図である。 第1の実施形態による情報処理装置の処理ステップを説明するための図である。 第1の実施形態による情報処理装置の処理ステップを説明するための図である。 第1の実施形態による情報処理装置の処理ステップを説明するための図である。 第1の実施形態による情報処理装置の処理ステップを説明するための図である。 本発明の第2の実施形態による情報処理装置の構成例を示す図である。 本発明の第3の実施形態による情報処理装置の構成例を示す図である。 条件分岐命令を含む命令群の例を示す図である。 命令のパイプライン処理を示す図である。
符号の説明
101 CPU
102 命令キャッシュメモリ
103 命令キュー
104 命令フェッチ制御部
105 命令デコーダ
106 分岐ユニット
107 演算器
108 ロード及びストア部
109 レジスタ
121 メインメモリ
123 変換回路
124 選択回路
301 プリデコーダ
401 命令実行部
402 キャッシュRAM
403 フェッチアドレス生成部
404 分岐予測部
405 履歴情報生成部

Claims (10)

  1. 命令を記憶するための命令キャッシュメモリと、
    入力された命令内のオペコードをデコードし、前記入力された命令が条件分岐命令であるときには、前記入力された命令が条件分岐命令であることを示す条件分岐命令情報及びその条件分岐命令の種類を示す命令種類情報を生成し、前記入力された命令内のオペコードを削除した命令、前記条件分岐命令情報及び前記命令種類情報を前記命令キャッシュメモリに書き込むプリデコーダと、
    前記命令キャッシュメモリ内の条件分岐命令を読み出して実行した結果、その条件分岐命令が分岐したか否かを示す履歴情報を前記命令キャッシュメモリ内の条件分岐命令の前記オペコードが削除された場所に書き込む履歴情報書き込み部と
    を有することを特徴とする情報処理装置。
  2. 前記プリデコーダは、前記命令種類情報を前記命令キャッシュメモリ内の条件分岐命令の前記オペコードが削除された場所に書き込むことを特徴とする請求項1記載の情報処理装置。
  3. 前記履歴情報書き込み部は、前記命令キャッシュメモリに書き込まれている過去の履歴情報に今回の履歴情報を追加するように書き込むことを特徴とする請求項1記載の情報処理装置。
  4. さらに、前記命令キャッシュメモリ内の条件分岐命令が読み出されると、その条件分岐命令の履歴情報を基にその条件分岐命令が分岐するか否かを予測し、その予測した次の読み出しアドレスの生成を指示する分岐予測部を有することを特徴とする請求項1記載の情報処理装置。
  5. 前記履歴情報書き込み部は、前記履歴情報を基に、前記履歴情報に対応する条件分岐命令が次に読み出されたときにその条件分岐命令が分岐するか否かを予測し、その予測情報を前記履歴情報と共に前記命令キャッシュメモリに書き込むことを特徴とする請求項1記載の情報処理装置。
  6. さらに、前記命令キャッシュメモリ内の条件分岐命令が読み出されると、その条件分岐命令の予測情報が示す次の読み出しアドレスを生成するアドレス生成部を有することを特徴とする請求項5記載の情報処理装置。
  7. 前記命令キャッシュメモリは、前記入力された命令を分散して書き込むための複数の命令キャッシュメモリに分割されていることを特徴とする請求項1記載の情報処理装置。
  8. 前記命令キャッシュメモリは、前記入力された命令内のオペコードを削除した命令、前記条件分岐命令情報及び前記命令種類情報を記憶するためのシングルポートメモリ及び前記履歴情報を記憶するためのデュアルポートメモリを有することを特徴とする請求項1記載の情報処理装置。
  9. 前記プリデコーダは、入力された命令内のオペコードをデコードし、前記入力された命令が条件分岐命令でないときには、前記入力された命令が条件分岐命令でないことを示す条件分岐命令情報及び前記入力された命令を前記命令キャッシュメモリに書き込むことを特徴とする請求項1記載の情報処理装置。
  10. さらに、前記命令キャッシュメモリ内の命令を読み出してデコード及び実行を行う命令実行部を有し、
    前記履歴情報書き込み部は、前記命令実行部による条件分岐命令の実行の結果に応じて前記履歴情報を書き込むことを特徴とする請求項1記載の情報処理装置。
JP2007042343A 2007-02-22 2007-02-22 情報処理装置 Expired - Fee Related JP5012084B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2007042343A JP5012084B2 (ja) 2007-02-22 2007-02-22 情報処理装置
US12/071,586 US7877578B2 (en) 2007-02-22 2008-02-22 Processing apparatus for storing branch history information in predecode instruction cache
CN2008100079893A CN101251793B (zh) 2007-02-22 2008-02-22 信息处理设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007042343A JP5012084B2 (ja) 2007-02-22 2007-02-22 情報処理装置

Publications (2)

Publication Number Publication Date
JP2008204357A true JP2008204357A (ja) 2008-09-04
JP5012084B2 JP5012084B2 (ja) 2012-08-29

Family

ID=39717268

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007042343A Expired - Fee Related JP5012084B2 (ja) 2007-02-22 2007-02-22 情報処理装置

Country Status (3)

Country Link
US (1) US7877578B2 (ja)
JP (1) JP5012084B2 (ja)
CN (1) CN101251793B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8918608B2 (en) 2012-01-09 2014-12-23 Ravello Systems Ltd. Techniques for handling memory accesses by processor-independent executable code in a multi-processor environment
CN105718241B (zh) * 2016-01-18 2018-03-13 北京时代民芯科技有限公司 一种基于sparc v8体系结构的分类式混合分支预测系统
CN110147250B (zh) * 2018-02-13 2021-11-12 龙芯中科技术股份有限公司 一种转移预测电路及其控制方法
CN111290789B (zh) * 2018-12-06 2022-05-27 上海寒武纪信息科技有限公司 运算方法、装置、计算机设备和存储介质
CN111124497B (zh) * 2018-10-11 2022-03-29 上海寒武纪信息科技有限公司 运算方法、装置、计算机设备和存储介质
CN111290788B (zh) * 2018-12-07 2022-05-31 上海寒武纪信息科技有限公司 运算方法、装置、计算机设备和存储介质
CN110780925B (zh) * 2019-09-02 2021-11-16 芯创智(北京)微电子有限公司 一种指令流水线的预译码系统及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5381533A (en) * 1992-02-27 1995-01-10 Intel Corporation Dynamic flow instruction cache memory organized around trace segments independent of virtual address line
JPH10228377A (ja) * 1996-12-09 1998-08-25 Matsushita Electric Ind Co Ltd 分岐予測する情報処理装置
JP2001236266A (ja) * 2000-02-22 2001-08-31 Hewlett Packard Co <Hp> 高レベルキャッシュの効率改善方法
JP2004110248A (ja) * 2002-09-17 2004-04-08 Hitachi Ltd データ処理装置
JP2006504152A (ja) * 2001-12-21 2006-02-02 ヒューレット・パッカード・カンパニー 分散型可変長命令語を使用する複数機能ユニットのプロセッサ

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6375934A (ja) 1986-09-19 1988-04-06 Nec Corp 情報処理装置
US5828895A (en) * 1995-09-20 1998-10-27 International Business Machines Corporation Methods and system for predecoding instructions in a superscalar data processing system
US6167506A (en) * 1997-11-17 2000-12-26 Advanced Micro Devices, Inc. Replacing displacement in control transfer instruction with encoding indicative of target address, including offset and target cache line location

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5381533A (en) * 1992-02-27 1995-01-10 Intel Corporation Dynamic flow instruction cache memory organized around trace segments independent of virtual address line
JPH10228377A (ja) * 1996-12-09 1998-08-25 Matsushita Electric Ind Co Ltd 分岐予測する情報処理装置
JP2001236266A (ja) * 2000-02-22 2001-08-31 Hewlett Packard Co <Hp> 高レベルキャッシュの効率改善方法
JP2006504152A (ja) * 2001-12-21 2006-02-02 ヒューレット・パッカード・カンパニー 分散型可変長命令語を使用する複数機能ユニットのプロセッサ
JP2004110248A (ja) * 2002-09-17 2004-04-08 Hitachi Ltd データ処理装置

Also Published As

Publication number Publication date
US7877578B2 (en) 2011-01-25
JP5012084B2 (ja) 2012-08-29
US20080209189A1 (en) 2008-08-28
CN101251793B (zh) 2010-12-08
CN101251793A (zh) 2008-08-27

Similar Documents

Publication Publication Date Title
JP5889986B2 (ja) 実行された命令の結果を選択的にコミットするためのシステムおよび方法
US9361110B2 (en) Cache-based pipline control method and system with non-prediction branch processing using a track table containing program information from both paths of a branch instruction
JP5012084B2 (ja) 情報処理装置
US20130346727A1 (en) Methods and Apparatus to Extend Software Branch Target Hints
KR20150030274A (ko) 사용자-레벨 스레딩을 위한 즉각적 컨텍스트 전환을 가능하게 하는 새로운 명령어 및 고효율적인 마이크로-아키텍처
JP5579694B2 (ja) 復帰スタックを管理する方法および装置
JP2018005488A (ja) 演算処理装置及び演算処理装置の制御方法
JP2008165589A (ja) 情報処理装置
EP1974254B1 (en) Early conditional selection of an operand
JP2009059246A (ja) マイクロプロセッサ
JP3683248B2 (ja) 情報処理装置及び情報処理方法
JP5902208B2 (ja) データ処理装置
JP5233078B2 (ja) プロセッサ及びその処理方法
JP2008071061A (ja) 情報処理装置
JP5209390B2 (ja) 情報処理装置及び命令フェッチ制御方法
JP2008299729A (ja) プロセッサ
JP4728877B2 (ja) マイクロプロセッサおよびパイプライン制御方法
JP2007193433A (ja) 情報処理装置
JP4002288B2 (ja) 情報処理装置
JP5292831B2 (ja) プログラマブルコントローラ
JPH09311787A (ja) データ処理装置
JP2007310668A (ja) マイクロプロセッサ
JP2006127080A (ja) パイプラインプロセッサ
JP2012150589A (ja) 演算装置
JP2004326710A (ja) 演算処理装置及び方法

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080731

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110811

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110920

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111115

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120521

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

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees