JP2007109116A - 推定装置、テーブル管理装置、選択装置、テーブル管理方法、そのテーブル管理方法をコンピュータに実現させるプログラム、及び、そのプログラムを記録する記憶媒体 - Google Patents
推定装置、テーブル管理装置、選択装置、テーブル管理方法、そのテーブル管理方法をコンピュータに実現させるプログラム、及び、そのプログラムを記録する記憶媒体 Download PDFInfo
- Publication number
- JP2007109116A JP2007109116A JP2005301104A JP2005301104A JP2007109116A JP 2007109116 A JP2007109116 A JP 2007109116A JP 2005301104 A JP2005301104 A JP 2005301104A JP 2005301104 A JP2005301104 A JP 2005301104A JP 2007109116 A JP2007109116 A JP 2007109116A
- Authority
- JP
- Japan
- Prior art keywords
- branch
- basic block
- instruction
- path
- executed
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000007726 management method Methods 0.000 title claims description 87
- 238000004590 computer program Methods 0.000 claims 1
- 238000001514 detection method Methods 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 14
- 102100040337 Ubiquitin-associated and SH3 domain-containing protein A Human genes 0.000 description 3
- 102100033825 Collagen alpha-1(XI) chain Human genes 0.000 description 2
- 208000036351 autosomal dominant otospondylomegaepiphyseal dysplasia Diseases 0.000 description 2
- 238000012797 qualification Methods 0.000 description 2
- 102100029136 Collagen alpha-1(II) chain Human genes 0.000 description 1
- 101150005017 STS2 gene Proteins 0.000 description 1
- 101100386054 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) CYS3 gene Proteins 0.000 description 1
- 101150006480 Ubash3a gene Proteins 0.000 description 1
- 102100040338 Ubiquitin-associated and SH3 domain-containing protein B Human genes 0.000 description 1
- 101100313728 Vitis vinifera VINST1 gene Proteins 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 101150035983 str1 gene Proteins 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
- G06F9/3806—Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/28—Error detection; Error correction; Monitoring by checking the correct order of processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Advance Control (AREA)
- Debugging And Monitoring (AREA)
Abstract
【課題】 実行された命令の履歴を管理して行われるホットパス検出処理等に適合する推定装置等を提供する。
【解決手段】 ホットパス推定装置1は、分岐命令を特定する分岐命令特定情報、実行された各分岐命令の分岐先アドレス、分岐回数及び実行頻度情報を1つのエントリとし、各分岐命令特定情報には定められた数のエントリが対応するテーブルと、実行された分岐命令に関する情報がテーブルに格納されていないならば、新たなエントリをテーブルに追加するか、テーブルのエントリの一つを置き換えるか、実行された分岐命令に関する情報をテーブルに格納しないかを選択して処理する履歴管理部11と、テーブルに基づいてホットパス検索部13により検索された命令パスが既に検出されたものではないときこの命令パスを外部に出力するホットパスクオリファイ部7と、を備える。
【選択図】 図1
【解決手段】 ホットパス推定装置1は、分岐命令を特定する分岐命令特定情報、実行された各分岐命令の分岐先アドレス、分岐回数及び実行頻度情報を1つのエントリとし、各分岐命令特定情報には定められた数のエントリが対応するテーブルと、実行された分岐命令に関する情報がテーブルに格納されていないならば、新たなエントリをテーブルに追加するか、テーブルのエントリの一つを置き換えるか、実行された分岐命令に関する情報をテーブルに格納しないかを選択して処理する履歴管理部11と、テーブルに基づいてホットパス検索部13により検索された命令パスが既に検出されたものではないときこの命令パスを外部に出力するホットパスクオリファイ部7と、を備える。
【選択図】 図1
Description
本発明は、推定装置、テーブル管理装置、選択装置、テーブル管理方法、そのテーブル管理方法をコンピュータに実現させるプログラム、及び、そのプログラムを記録する記憶媒体に関し、特に、複数の分岐命令を含む命令パスのうち実行される頻度が高い命令パスを推定する推定装置等に関する。
プログラムの実行中に実行頻度の高いループ構造のパス(以下では、「ホットパス」という)を高精度で推定する装置として、例えば特許文献1に記載されたものが知られている。図13〜図15を参照して、特許文献1に記載された推定装置の概要を説明する。
図13は、特許文献1に記載されたホットパス推定装置101の概略ブロック図である。ホットパス推定装置101は、ハードウェアアシスト部(HWアシスト部)105とソフトウェアプロファイラ部(SWプロファイラ部)107とバッファ109を備える。
HWアシスト部105は、テーブルを管理し、CPU103により分岐命令が実行された場合にテーブルに新たに分岐命令に関するアドレス情報を追加したり分岐命令の実行回数をカウントしたりする。また、テーブルやカウンタがオーバフローした場合には、CPU103に通知し、CPU103は、テーブルのバッファ109への吐き出し処理を行う。
SWプロファイラ部107は、バッファ109とテーブルの合算処理を行い、BH法に基づいて高い頻度で繰り返し実行される命令列(ホットパス)を推定する。このBH法は、分岐命令の実行で、分岐命令のアドレス、分岐先のアドレス、分岐した(あるいは分岐しなかった)回数などの履歴に基づきホットパスの推定を行う手法である。
図14は、プロセッサコアで実行される基本ブロックの関係と分岐命令の実行回数の一例を示す図である。プログラムを構成する命令列は、プログラム実行の流れを変える分岐命令とその他の命令で構成されている。そして、プログラムは、アドレス順に見て、分岐命令以外の命令と最後の分岐命令で構成されるブロックに区分でき、このブロックは基本ブロックと呼ばれる。図14において記号A〜Gは基本ブロックを示し、数値は分岐命令の分岐回数を示す。図14の基本ブロックの関係では、基本ブロックA、B、C、Fのループ構造のパスがホットパスとして検出される。
図15は、基本ブロックが図14に示される関係にある場合に、図13のHWアシスト部105により管理されるテーブルの一例を示す図である。図15において、BSAは基本ブロックの開始アドレスである基本ブロック開始アドレスであり、BIAは分岐命令のアドレスである分岐命令アドレスであり、BTAは分岐先のアドレスである分岐先アドレスであり、COUNTは分岐命令の実行回数である。図13のSWプロファイラ部107は、図15に示されるテーブルとバッファ109に基づいてホットパスの推定処理を行う。
しかしながら、特許文献1に記載されたホットパス推定装置は、テーブルやカウントのオーバフローによりテーブルに格納された情報をバッファ109に退避する。そのため、大きな容量のバッファが必要であり、さらに、CPU103がバッファ109への退避処理を行うためにCPU103における処理が中断されることとなる。
また、テーブルの情報はバッファ109に退避されるため、同じ分岐命令に関する情報でも、退避前の情報はバッファ109で、退避後の情報はテーブルで別々に管理されていたり、退避が複数回行われていればバッファ109内の複数の箇所に記憶されている可能性がある。そのため、SWプロファイラ部107によりホットパス推定処理が行われる際には、テーブルとバッファ109に退避された情報との合算処理が必要であった。
さらに、SWプロファイラ部107による処理は複雑なためにハードウェアによる実現は困難であり、ソフトウェアにより実現されていた。この処理はCPU103により実行されることもあり、このような場合には、テーブル合算処理やホットパス推定処理のためにもCPUの処理が中断されることとなる。
さらに、ホットパス推定装置101は検出されたホットパスを記憶するが、同じホットパスでも重複して検出されると重複して記憶しており、検出されたホットパスを記憶する記憶領域も膨大に必要であった。
なお、このような課題は、ホットパス推定処理に限らず、他の実行された命令の履歴を管理して行われる処理に関しても存在するものである。
そこで、本発明の目的は、実行された命令の履歴を管理して行われる処理の簡素化に適合する推定装置、テーブル管理装置、選択装置、テーブル管理方法、そのテーブル管理方法をコンピュータに実現させるプログラム、そのプログラムを記録する記憶媒体を提供することにある。
請求項1に係る発明は、複数の分岐命令を含む命令パスのうち実行される頻度が高い命令パスを推定する推定装置において、分岐命令を特定する分岐命令特定情報、実行された各分岐命令の分岐先アドレス、分岐回数及び実行頻度情報を1つのエントリとするテーブルであって、前記各分岐命令特定情報には定められた数のエントリが対応するテーブルと、分岐命令が実行されると、実行された分岐命令の分岐命令特定情報及び実行された分岐命令の分岐先アドレスが前記分岐命令特定情報に対応するエントリに格納されているか否かを判断して格納されていないならば、前記分岐命令特定情報に対応する各エントリの実行頻度情報に基づいて、前記分岐命令特定情報及び前記分岐先アドレスに関するエントリを前記テーブルに追加するか、前記テーブルのエントリの一つを前記分岐命令特定情報及び前記分岐先アドレスに関するエントリに置き換えるか、又は、前記分岐命令特定情報及び前記分岐先アドレスに関する情報をテーブルに格納しないかを選択して処理する履歴管理手段と、前記テーブルに格納された情報に基づいて命令パスを検索する検索手段と、前記検索手段により検索された命令パスが既に検出されたものか否かを判断して既に検出されたものではないときに当該命令パスを外部に出力するクオリファイ手段と、を備えるものである。
請求項2に係る発明は、実行される命令パスの基本ブロックに対して実行された各実行基本ブロック及び前記各実行基本ブロックの次に実行される次基本ブロックに関連する情報である基本ブロック実行順序関連情報を1つのエントリとするテーブルを管理するテーブル管理装置において、前記テーブルのエントリ数は予め定められた数以下であり、基本ブロックが実行されると、実行された実行基本ブロック及び前記実行基本ブロックの次に実行される次基本ブロックに関連するエントリが前記テーブルに登録されているか否かを判断して、登録されていないならば、前記テーブルに格納されている情報に基づいて、前記実行基本ブロック及び前記次基本ブロックに関連するエントリを前記テーブルに追加するか、前記テーブルのエントリの一つを前記実行基本ブロック及び前記次基本ブロックに関連するエントリで置き換えるか、又は、前記実行基本ブロック及び前記次基本ブロックに関連する情報を前記テーブルに格納しないかのいずれかを選択して処理を行う履歴管理手段を備えるものである。
なお、請求項2に係る発明であって、基本ブロック実行順序関連情報は、実行基本ブロックの開始アドレス及び次基本ブロックの開始アドレスを含むものであってもよい。また、基本ブロック実行順序関連情報は次基本ブロックの開始アドレスを含み、基本ブロック実行順序関連情報のエントリは実行基本ブロックの開始アドレスに基づいて生成されるインデックスアドレスによりアクセスされるものであってもよい。
請求項3に係る発明は、請求項2記載のテーブル管理装置であって、前記基本ブロック実行順序関連情報には実行基本ブロック及び次基本ブロックの実行頻度を示す実行頻度情報が含まれており、前記履歴管理手段は基本ブロックが実行されると前記テーブルに格納されている実行頻度情報に基づいて処理の選択を行うものである。
請求項4に係る発明は、請求項2又は3記載のテーブル管理装置であって、前記テーブルは、基本ブロック実行順序関連情報を1つのエントリとし、同じインデックスアドレスが与えられた複数のサブテーブルを含み、前記履歴管理手段は実行基本ブロックを特定する情報に基づいて生成されるインデックスアドレスを用いて前記サブテーブルのエントリにアクセスするものである。
請求項5に係る発明は、複数の分岐命令を含む命令パスのうち実行される頻度が高い命令パスを推定する推定装置において、実行された各分岐命令の分岐先アドレス及び前回に実行された分岐命令の分岐先アドレスである基本ブロック開始アドレス並びに分岐回数及び実行頻度情報を1つのエントリとして格納する複数セットの分岐履歴テーブルであって、同一のインデックスアドレスによりアクセス可能な複数セットの分岐履歴テーブルと、分岐命令が実行されると、前回に実行された分岐命令の分岐先アドレスである基本ブロック開始アドレスに基づいて生成されるインデックスアドレスにより前記各分岐履歴テーブルのエントリを読み出し、読み出したエントリが実行された分岐命令の分岐先アドレス及び前記基本ブロック開始アドレスに関連するものであるかの判断をし、いずれかのエントリが関連するならば当該エントリの分岐回数及び実行頻度情報を更新し、いずれのエントリも関連しないならば読み出したエントリの実行頻度情報に基づいてエントリの更新処理を行う分岐履歴管理手段と、実行された各分岐命令の分岐先アドレス並びに分岐回数及び実行頻度情報を1つのエントリとして格納する複数セットの戻り分岐履歴テーブルであって、同一のインデックスアドレスによりアクセス可能な複数セットの戻り分岐履歴テーブルと、分岐命令が実行されると、実行された前記分岐命令の分岐先アドレスが前記分岐命令のアドレスよりも小さい場合に、前回に実行された分岐命令の分岐先アドレスである基本ブロック開始アドレスに基づいて生成されるインデックスアドレスにより前記各戻り分岐履歴テーブルのエントリを読み出し、読み出したエントリが前記分岐先アドレスに関連するものであるかの判断をし、いずれかのエントリが関連するならば当該エントリの分岐回数及び実行頻度情報を更新する処理及び分岐回数が閾値よりも大きいならばパス検索処理の開始を指示する処理を行い、いずれのエントリも関連しないならば読み出したエントリの実行頻度情報に基づいてエントリの更新処理を行う戻り分岐履歴管理手段と、前記戻り分岐履歴管理手段によりパス検索処理の開始が指示されたならば前記分岐履歴テーブルに格納された情報に基づいて命令パスを検索する検索手段と、を備えたものである。
請求項6に係る発明は、検索手段により検索された命令パスを選択して出力する選択装置であって、検索手段により検索された命令パスを示すパス特定情報を記憶する記憶手段と、検索手段により命令パスが検索されると、検索された命令パスを特定するパス特定情報と前記記憶手段に記憶されたパス特定情報とを比較する比較手段と、前記比較手段の比較結果に基づいて前記検索手段により検索された命令パスを外部に出力する出力手段とを備え、前記検索された命令パスを示すパス特定情報が前記記憶手段に記憶されていないならば前記比較手段は当該パス特定情報を前記記憶手段に記憶させて前記出力手段は前記検索手段により検索された命令パスを外部に出力し、前記検索された命令パスを示すパス特定情報が前記記憶手段に記憶されているならば前記比較手段は当該パス特定情報を前記記憶手段に記憶せず前記出力手段は前記検索手段により検索された命令パスを外部に出力しないものである。
請求項7に係る発明は、請求項6記載の選択装置であって、前記命令パスは分岐命令を含み、前記パス特定情報は命令パスの分岐命令が分岐する場合と分岐しない場合を区別する情報を含むものである。
請求項8に係る発明は、実行される命令パスの基本ブロックに対して実行された各実行基本ブロック及び前記各実行基本ブロックの次に実行される次基本ブロックに関連する情報である基本ブロック実行順序関連情報を1つのエントリとするテーブルを管理するテーブル管理方法において、前記テーブルのエントリ数は予め定められた数以下であり、基本ブロックが実行されると、履歴管理手段が、実行された実行基本ブロック及び前記実行基本ブロックの次に実行される次基本ブロックに関連するエントリが前記テーブルに登録されているか否かを判断して、登録されていないならば、前記テーブルに格納されている情報に基づいて、前記実行基本ブロック及び前記次基本ブロックに関連するエントリを前記テーブルに追加するか、前記テーブルのエントリの一つを前記実行基本ブロック及び前記次基本ブロックに関連するエントリで置き換えるか、又は、前記実行基本ブロック及び前記次基本ブロックに関連する情報を前記テーブルに格納しないかのいずれかを選択して処理を行う履歴管理ステップを含むものである。
請求項9に係る発明は、請求項8記載のテーブル管理方法をコンピュータに実行させることが可能なプログラムである。
請求項10に係る発明は、請求項9記載のプログラムをコンピュータが実行することが可能にて記録した記録媒体である。
本願の各請求項に係る発明によれば、処理に用いられる情報が重要と判断されるものに制限されており、実行された命令の履歴を管理して行われる処理の簡素化に適合する。
また、本願の請求項1乃至5並びに請求項8乃至10に係る発明によれば、テーブルに格納される情報が限られていてバッファへの退避処理が必要でなく、合算処理も必要ではない。そのため、CPUとは別のハードウェアによる実現が容易となり、CPUの処理が中断されなくなる。
さらに、本願の請求項1、3、4及び5に係る発明によれば、更新頻度情報を用いてテーブル管理を行うため、重要性の高い情報がテーブルに格納され、テーブルを用いた処理の正確性の向上に適合する。
さらに、本願の請求項1及び4に係る発明によれば、複数のテーブルを用いて処理を行うことにより、例えば各テーブルに対する処理を並列して処理する等により処理時間を短縮することが可能となる。
さらに、本願の請求項1、6及び7に係る発明によれば、検出された命令パスのうち重複して検出されたものを除いて外部に出力するため、転送に関するオーバヘッドが削減され、記憶する記憶領域が削減される。
図1は、本発明の実施の形態に係るホットパス推定装置1の概略ブロック図である。
図1を参照して、ホットパス推定装置1は、ホットパス検出部5とホットパスクオリファイ部7を備える。ホットパス検出部5は、分岐命令選択部9と履歴管理部11とホットパス検索部13を有する。履歴管理部11は、分岐履歴管理部15と戻り分岐履歴管理部17を有する。
分岐命令選択部9は、CPU3により実行される命令のうち分岐命令を選択し、分岐命令のアドレスである分岐命令アドレス(BIA)及び分岐先のアドレスである分岐先アドレス(BTA)を取得するものである。
分岐履歴管理部15は、分岐命令選択部9により取得されたBIA及びBTA並びに前回の分岐先アドレスを基本ブロック開始アドレス(BSA)として、図2に例示される分岐履歴テーブルを用いて分岐命令の分岐履歴情報の管理を行うものである。
戻り分岐履歴管理部17は、図5に例示される戻り分岐履歴テーブルを用いて、分岐命令選択部9により取得されたBTAがBIAよりも小さい場合の分岐回数(COUNT)等を管理するものである。
ホットパス検索部13は、図2に例示される分岐履歴テーブルを用いて命令パスを検索するものである。
ホットパスクオリファイ部7は、ホットパス検索部13により検索されたホットパス情報が重複して検出されたものか否かを判断して、重複して検出されたものでない場合にホットパス情報を外部に出力するものである。
続いて、図2〜図4を参照して、図1の分岐履歴管理部15について説明する。
図2は、図1の分岐履歴管理部15により管理される分岐履歴テーブルの一例を示す図である。図2の分岐履歴テーブルの例は、2n個のインデックスアドレスにより、基本ブロック開始アドレス(BSA)、分岐命令アドレス(BIA)、分岐先アドレス(BTA)、分岐回数(COUNT)及びミスカウント値(Miss COUNT)を1つのエントリとするものである。
続いて、図3と図4を用いて、図1の分岐履歴管理部15が図2の分岐履歴テーブルを用いて行う分岐履歴管理の例を説明する。
図3は、図1の分岐履歴管理部15が、図2の分岐履歴テーブルを2セット用いて行う分岐履歴管理の一例の概略を示す図である。図3を参照して、図1の分岐履歴管理部15が、図2の分岐履歴テーブルを2セット用いて行う分岐履歴管理の一例を説明する。以下では、2セットのテーブルをそれぞれセット0とセット1という。
図3を参照して、図1の分岐履歴管理部15は、前回のBTAをBSAとし、このBSA並びに図1の分岐命令選択部9により得られたBIA及びBTAにより、BSAとBIAとBTAの組である分岐情報31を生成する。
次に、図1の分岐履歴管理部15は、BSAの下位nビットを用いてセット0の分岐履歴テーブル35をアクセスしてBSAとBIAとBTAの組である分岐情報33を取得し、同様にセット1の分岐履歴テーブル39をアクセスしてBSAとBIAとBTAの組である分岐情報37を取得する。
次に、図1の分岐履歴管理部15は、分岐情報31と分岐情報33及び分岐情報37とを比較して、分岐情報31が分岐情報33と分岐情報37の一方と一致するならば、一致する分岐情報に対応する分岐回数(COUNT)を1増加してミスカウント値を新しい分岐回数から計算された値とする。分岐情報31が分岐情報33とも分岐情報37とも一致しない場合には、対応するミスカウント値が0か否かを判断し、ミスカウント値が0のものがあれば分岐履歴テーブルの対応する行を新しいBSAとBIAとBTAで置き換えてカウント値を0としてミスカウント値を更新し、他のミスカウント値を1減少する。(ミスカウント値が0のものが複数ある場合には、いずれのテーブルも更新可能であり、例えば、一方のテーブルを更新して、他方のテーブルは更新しないとする。)ミスカウント値が0のものがなければ、分岐履歴テーブルのそれぞれで対応するミスカウント値を1減少する。(分岐情報31は分岐履歴テーブル35にも分岐履歴テーブル37にも格納されない。)
以上にあるようにして、図1の分岐履歴管理部15は、分岐履歴テーブルを2セット用いた場合の分岐履歴の管理を行う。図3の例では、BSA(基本ブロック開始アドレス)の下位nビットによりインデックスアドレスを生成しており、異なる基本ブロックの開始アドレスが同一のインデックスアドレスに対応する可能性がある。図3の例によれば、同一のインデックスアドレスに対応する分岐命令の分岐先の情報に関して、より頻繁になされる2つのものが、2セットのテーブルの対応するインデックスアドレスにより管理されることが期待される。
続いて、図4を参照して、図1の分岐履歴管理部15が図2のテーブルを複数用いて行う分岐履歴管理の動作を説明する。図4は、図1の分岐履歴管理部15が、図2の分岐履歴テーブルを複数セット用いて行う分岐履歴管理の一例を示すフロー図である。
図4を参照して、図1の分岐履歴管理部15は、図1の分岐命令選択部9により得られたBIA及びBTAを取得し(図4のステップSTL1)、図1の分岐履歴管理部15は、前回のBTAをBSAとし、BSAとBIAとBTAの分岐情報を生成する(図4のステップSTL2)。次に、図1の分岐履歴管理部15は、BSAに基づくインデックスアドレスにより、分岐履歴テーブルの全セットからBSAとBIAとBTAの分岐情報を読み出す(図4のステップSTL3)
次に、図4のステップSTL2で生成されたBSAとBIAとBTAの分岐情報と図4のステップSTL3で読み出されたBSAとBIAとBTAの分岐情報を比較して(図4のステップSTL4)、一致するものがあるかどうかの判断を行う(図4のステップSTL5)。一致するものがあれば、対応する分岐履歴テーブルのカウント値を1増加して対応する分岐履歴テーブルのミスカウント値を新しいカウント値から計算された値に更新して(図4のステップSTL6)、図4の処理を終了する。一致するものがなければ、ミスカウント値が0のものがあるか否かの判断を行う(図4のステップSTL7)。ミスカウント値が0のものがあればそれを新しいBSAとBIAとBTAで置き換え、カウント値を1とし、ミスカウント値を更新して(図4のステップSTL8)、図4の処理を終了する(ミスカウント値が0のものが複数ある場合には、例えば、1つのテーブルを更新し、他のテーブルを更新しない。)。ミスカウント値が0のものがない(すなわち、ミスカウント値が全て正の整数である)ならば、ミスカウント値を1減少して(図4のステップSTL9)、図4の処理を終了する。
以上にあるようにして、図1の分岐履歴管理部15は、分岐履歴テーブルを複数用いた場合の分岐履歴の管理を行い、図3の例と同様に、分岐履歴テーブルの同一のインデックスアドレスに対応する分岐命令に関して、より頻繁になされる分岐先の情報が管理されることが期待される。
続いて、図5と図6を参照して、図1の戻り分岐履歴管理部17について説明する。
図5は、図1の戻り分岐履歴管理部17により管理される分岐履歴テーブルの一例を示す図である。図5の戻り分岐履歴テーブルの例は、2m個のインデックスアドレスにより、分岐先アドレス(BTA)、分岐回数(COUNT)及びミスカウント値(Miss COUNT)を1つのエントリとするものである。
続いて、図6を参照して、図1の戻り分岐履歴管理部17が図5のテーブルを複数用いて行う戻り分岐履歴管理の動作を説明する。図6は、図1の戻り分岐履歴管理部17が、図5の戻り分岐履歴テーブルを複数セット用いて行う分岐履歴管理の一例を示すフロー図である。
図6を参照して、図1の戻り分岐履歴管理部17は、図1の分岐命令選択部9により得られたBIA及びBTAを取得する(図6のステップSTR1)。
次に、図1の戻り分岐履歴管理部17は、BTAとBIAを比較して、BTAがBIAよりも小さい場合(分岐先の基本ブロックが以前に処理をしたものである可能性がある場合)には図6のステップSTR3の処理を行い、そうでない場合には図6のステップSTR1の処理に戻る(図6のステップSTR2)。
図6のステップSTR3において、図1の戻り分岐履歴管理部17は、前回のBTAをBSAとし、BSAに基づくインデックスアドレスにより戻り分岐履歴テーブルの全セットからBSAを読み出す。
次に、図1の戻り分岐履歴管理部17は、図6のステップSTR1において得られたBTAと図6のステップSTR3において読み出されたBTAを比較し(図6のステップSTR4)、一致するものがあるか否かの判断を行う(図6のステップSTR5)。一致するものがあれば図6のステップSTR6の処理を行い、一致するものがなければ図6のステップSTR7以下の処理を行う。
図6のステップSTR6において、図1の戻り分岐履歴管理部17は、対応する戻り分岐履歴テーブルのカウント値を1増加し、カウント値が閾値よりも大きな値の場合には図1のホットパス検索部13によるホットパス検索処理を開始させてカウント値を0に初期化し、対応する戻り分岐履歴テーブルのミスカウント値を更新する。そして、図6の処理を終了する。
図6のステップSTR7において、図1の戻り分岐履歴管理部17は、ミスカウント値が0のものがあるか否かの判断を行う。0のものがあれば新しいBTAで置き換えてカウント値を1としてミスカウント値の更新を行い(図6のステップSTR8)、図6の処理を終了する。0のものがなければミスカウント値を1引き(図6のステップSTR9)、図6の処理を終了する。
続いて、図7を参照して、図1のホットパス検索部13の処理を説明する。図7は、図1のホットパス検索部13の動作の一例を示すフロー図である。
図7を参照して、図1のホットパス検索部13は、ホットパス開始アドレスにBTAの値を登録し(図7のステップSTS1)、BTAを基にインデックスアドレスを生成して分岐履歴テーブルを読み出す(図7のステップSTS2)。
図1のホットパス検索部13は、BTAと読み出したBSAを比較する(図7のステップSTS3)。図1のホットパス検索部13は、一致するものがあれば図7のステップSTS5以降の処理を行い、一致するものがなければ検索を終了する。
図7のステップSTS5において、BSAが複数のセットで一致するか否かの判断を行い、複数のセットで一致するならばカウント値を比較して大きなカウント値に対応するBSAを次の分岐先として選択して(図7のステップSTS6)、図7のステップSTS7の処理を行う。複数のセットで一致していない場合には、図7のステップSTS7の処理を行う。
図7のステップSTS7において、図1のホットパス検索部13は、分岐の深さが最大値を超えていないかの判断を行う。ここで、ホットパスはホットパスを構成する分岐命令における分岐先アドレスにより表すことができ、この分岐命令の数がホットパスにおける分岐の深さと呼ばれる。図1のホットパス検索部13は、分岐の深さが最大値を超えているならば検索を終了し、そうでなければ図7のステップSTS8の処理を行う。
図7のステップSTS8において、図1のホットパス検索部13は、図7のステップSTS2において読み出された分岐先アドレスBTAがホットパス開始アドレスと一致するか否かの判断を行い(図7のステップSTS8)、一致しないならば図7のステップSTS2の処理に戻り、一致するならばホットパスとして図1のホットパスクオリファイ部7に出力して(図7のステップSTS9)、図7の処理を終了する。
続いて、図8〜図12を参照して、図1のホットパスクオリファイ部7による重複して検出されるホットパスの検出処理を説明する。
図8は、ghostscriptの実行により検出されたホットパスの例を示すグラフである。ghostscript はプリンタなどの印刷装置で広く使用されているプログラムであり、ポストスクリプトという形式で記述された文字情報や画像情報を入力とし、それぞれの印刷装置で印刷可能な形式の情報への変換を行う。入力される文字情報や画像情報により、プログラムの中で高い頻度で実行される命令列が異なるため、本発明による推定装置により得られる情報をプログラム実行の最適化に利用することが可能となる。図8のグラフにおいて、横軸は命令実行回数を示し、縦軸は検出されたホットパスを示す。図8のグラフにおいて、例えば、実行回数が40,000,000回を超えた場合に、縦軸の値が15、20、90付近のホットパスが繰り返し検出されているように、ホットパスは重複して検出されることがある。図1のホットパスクオリファイ部7が重複して検出されるホットパス情報を検出して外部に転送しないようにすることにより、ホットパス情報の転送に関するオーバヘッドが削減され、ホットパス情報を記憶する記憶領域が削減される。
図9は、図8において検出されたホットパスのうち本発明の実施の形態により検出されたホットパスの例を示すグラフである。図9に示されるように、本発明によれば、重複せずにホットパスを検出することが可能となる。
図10は、図1のホットパスクオリファイ部7による検出処理に用いられるホットパスパスシグネチャ情報の一例を示す図である。図10(a)にあるように、ホットパスパスシグネチャ情報は、32ビットのホットパス開始アドレス(BSA)と3ビットの分岐の数と8ビットのパスシグネチャを有する。パスシグネチャの各ビットは、例えば、図10(b)にあるように、分岐命令が分岐しない場合(すなわち、次のアドレスの命令を実行する場合)には0であり、分岐する場合には1である。分岐の数は、パスシグネチャの各ビットのうち、有効なものを示す。このようなパスシグネチャ情報は、ホットパス検出処理において作成されるものとする。
続いて、図11を参照して、図10のパスシグネチャの各ビットの示す情報を説明する。図11は、基本ブロックの分岐命令に対するパスシグネチャの各ビットの割り当ての一例を示す図であり、基本ブロックA〜Gはアルファベット順にアドレスが割り当てられているものとする。図11を参照して、パスシグネチャの各ビットは、例えば基本ブロックAの次に基本ブロックBが実行される場合には0が、基本ブロックDが実行される場合には1が割り当てられる。他の基本ブロックについても同様に、アルファベット順で次の基本ブロックが次に実行される場合には0が、他の基本ブロックが実行される場合には1が割り当てられる。このようなパスシグネチャを使用することにより、分岐命令を含む命令パスの特定が可能となる。
続いて、図12を参照して、図1のホットパスクオリファイ部7の動作の一例を説明する。図12は、図1のホットパスクオリファイ部7の概略ブロック図である。図12において、ホットパスクオリファイ部7はパスシグネチャ比較部41とホットパス情報出力部43を有し、パスシグネチャ比較部41は新パスシグネチャ記憶部45と既出パスシグネチャ記憶部47を有する。
図12のパスシグネチャ比較部41は、ホットパス検出部5により検出されたホットパスに対応するパスシグネチャを新パスシグネチャ記憶部45に記憶し、新パスシグネチャ記憶部45に記憶されたパスシグネチャと既出パスシグネチャ記憶部47に記憶されたパスシグネチャとを比較する。図12のパスシグネチャ比較部41は、新パスシグネチャ記憶部45に記憶されたパスシグネチャが既出パスシグネチャ記憶部47に記憶されていたものと一致しない場合には、ホットパス情報出力部43に対してホットパス検出部5により検出されたホットパス情報を出力させ、新パスシグネチャ記憶部45に記憶されたパスシグネチャを既出パスシグネチャ記憶部47に記憶する。ここで、既出パスシグネチャ記憶部47は、予め定めれたエントリ数(例えば16エントリ)を保持するものであり、新たにパスシグネチャを追加する場合に、既に予め定められたエントリ数のパスシグネチャが記憶されている場合には、最も使われていないエントリと入れ換える等の処理が行われるものとする。図12のパスシグネチャ比較部41は、新たなパスシグネチャが既出パスシグネチャ記憶部に記憶されていた場合には、ホットパス情報を外部に出力しないようにする。
以上のようにして、図12のホットパスクオリファイ部7が重複して検出されるホットパス情報を検出して外部に転送しないようにすることにより、ホットパス情報の転送に関するオーバヘッドが削減され、ホットパス情報を記憶する記憶領域が削減される。
1 ホットパス推定装置
5 ホットパス検出部
7 ホットパスクオリファイ部
11 履歴管理部
13 ホットパス検索部
15 分岐履歴管理部
17 戻り分岐履歴管理部
5 ホットパス検出部
7 ホットパスクオリファイ部
11 履歴管理部
13 ホットパス検索部
15 分岐履歴管理部
17 戻り分岐履歴管理部
Claims (10)
- 複数の分岐命令を含む命令パスのうち実行される頻度が高い命令パスを推定する推定装置において、
分岐命令を特定する分岐命令特定情報、実行された各分岐命令の分岐先アドレス、分岐回数及び実行頻度情報を1つのエントリとするテーブルであって、前記各分岐命令特定情報には定められた数のエントリが対応するテーブルと、
分岐命令が実行されると、実行された分岐命令の分岐命令特定情報及び実行された分岐命令の分岐先アドレスが前記分岐命令特定情報に対応するエントリに格納されているか否かを判断して格納されていないならば、前記分岐命令特定情報に対応する各エントリの実行頻度情報に基づいて、前記分岐命令特定情報及び前記分岐先アドレスに関するエントリを前記テーブルに追加するか、前記テーブルのエントリの一つを前記分岐命令特定情報及び前記分岐先アドレスに関するエントリに置き換えるか、又は、前記分岐命令特定情報及び前記分岐先アドレスに関する情報をテーブルに格納しないかを選択して処理する履歴管理手段と、
前記テーブルに格納された情報に基づいて命令パスを検索する検索手段と、
前記検索手段により検索された命令パスが既に検出されたものか否かを判断して既に検出されたものではないときに当該命令パスを外部に出力するクオリファイ手段と、を備える推定装置。 - 実行される命令パスの基本ブロックに対して実行された各実行基本ブロック及び前記各実行基本ブロックの次に実行される次基本ブロックに関連する情報である基本ブロック実行順序関連情報を1つのエントリとするテーブルを管理するテーブル管理装置において、
前記テーブルのエントリ数は予め定められた数以下であり、
基本ブロックが実行されると、実行された実行基本ブロック及び前記実行基本ブロックの次に実行される次基本ブロックに関連するエントリが前記テーブルに登録されているか否かを判断して、登録されていないならば、前記テーブルに格納されている情報に基づいて、前記実行基本ブロック及び前記次基本ブロックに関連するエントリを前記テーブルに追加するか、前記テーブルのエントリの一つを前記実行基本ブロック及び前記次基本ブロックに関連するエントリで置き換えるか、又は、前記実行基本ブロック及び前記次基本ブロックに関連する情報を前記テーブルに格納しないかのいずれかを選択して処理を行う履歴管理手段を備えるテーブル管理装置。 - 前記基本ブロック実行順序関連情報には実行基本ブロック及び次基本ブロックの実行頻度を示す実行頻度情報が含まれており、
前記履歴管理手段は基本ブロックが実行されると前記テーブルに格納されている実行頻度情報に基づいて処理の選択を行う請求項2記載のテーブル管理装置。 - 前記テーブルは、基本ブロック実行順序関連情報を1つのエントリとし、同じインデックスアドレスが与えられた複数のサブテーブルを含み、
前記履歴管理手段は実行基本ブロックを特定する情報に基づいて生成されるインデックスアドレスを用いて前記サブテーブルのエントリにアクセスする、請求項2又は3記載のテーブル管理装置。 - 複数の分岐命令を含む命令パスのうち実行される頻度が高い命令パスを推定する推定装置において、
実行された各分岐命令の分岐先アドレス及び前回に実行された分岐命令の分岐先アドレスである基本ブロック開始アドレス並びに分岐回数及び実行頻度情報を1つのエントリとして格納する複数セットの分岐履歴テーブルであって、同一のインデックスアドレスによりアクセス可能な複数セットの分岐履歴テーブルと、
分岐命令が実行されると、前回に実行された分岐命令の分岐先アドレスである基本ブロック開始アドレスに基づいて生成されるインデックスアドレスにより前記各分岐履歴テーブルのエントリを読み出し、読み出したエントリが実行された分岐命令の分岐先アドレス及び前記基本ブロック開始アドレスに関連するものであるかの判断をし、いずれかのエントリが関連するならば当該エントリの分岐回数及び実行頻度情報を更新し、いずれのエントリも関連しないならば読み出したエントリの実行頻度情報に基づいてエントリの更新処理を行う分岐履歴管理手段と、
実行された各分岐命令の分岐先アドレス並びに分岐回数及び実行頻度情報を1つのエントリとして格納する複数セットの戻り分岐履歴テーブルであって、同一のインデックスアドレスによりアクセス可能な複数セットの戻り分岐履歴テーブルと、
分岐命令が実行されると、実行された前記分岐命令の分岐先アドレスが前記分岐命令のアドレスよりも小さい場合に、前回に実行された分岐命令の分岐先アドレスである基本ブロック開始アドレスに基づいて生成されるインデックスアドレスにより前記各戻り分岐履歴テーブルのエントリを読み出し、読み出したエントリが前記分岐先アドレスに関連するものであるかの判断をし、いずれかのエントリが関連するならば当該エントリの分岐回数及び実行頻度情報を更新する処理及び分岐回数が閾値よりも大きいならばパス検索処理の開始を指示する処理を行い、いずれのエントリも関連しないならば読み出したエントリの実行頻度情報に基づいてエントリの更新処理を行う戻り分岐履歴管理手段と、
前記戻り分岐履歴管理手段によりパス検索処理の開始が指示されたならば前記分岐履歴テーブルに格納された情報に基づいて命令パスを検索する検索手段と、
を備えた推定装置。 - 検索手段により検索された命令パスを選択して出力する選択装置であって、
検索手段により検索された命令パスを示すパス特定情報を記憶する記憶手段と、
検索手段により命令パスが検索されると、検索された命令パスを特定するパス特定情報と前記記憶手段に記憶されたパス特定情報とを比較する比較手段と、
前記比較手段の比較結果に基づいて前記検索手段により検索された命令パスを外部に出力する出力手段とを備え、
前記検索された命令パスを示すパス特定情報が前記記憶手段に記憶されていないならば前記比較手段は当該パス特定情報を前記記憶手段に記憶させて前記出力手段は前記検索手段により検索された命令パスを外部に出力し、前記検索された命令パスを示すパス特定情報が前記記憶手段に記憶されているならば前記比較手段は当該パス特定情報を前記記憶手段に記憶せず前記出力手段は前記検索手段により検索された命令パスを外部に出力しない、選択装置。 - 前記命令パスは分岐命令を含み、
前記パス特定情報は命令パスの分岐命令が分岐する場合と分岐しない場合を区別する情報を含む、請求項6記載の選択装置。 - 実行される命令パスの基本ブロックに対して実行された各実行基本ブロック及び前記各実行基本ブロックの次に実行される次基本ブロックに関連する情報である基本ブロック実行順序関連情報を1つのエントリとするテーブルを管理するテーブル管理方法において、
前記テーブルのエントリ数は予め定められた数以下であり、
基本ブロックが実行されると、履歴管理手段が、実行された実行基本ブロック及び前記実行基本ブロックの次に実行される次基本ブロックに関連するエントリが前記テーブルに登録されているか否かを判断して、登録されていないならば、前記テーブルに格納されている情報に基づいて、前記実行基本ブロック及び前記次基本ブロックに関連するエントリを前記テーブルに追加するか、前記テーブルのエントリの一つを前記実行基本ブロック及び前記次基本ブロックに関連するエントリで置き換えるか、又は、前記実行基本ブロック及び前記次基本ブロックに関連する情報を前記テーブルに格納しないかのいずれかを選択して処理を行う履歴管理ステップを含むテーブル管理方法。 - 請求項8記載のテーブル管理方法をコンピュータに実行させることが可能なプログラム。
- 請求項9記載のプログラムをコンピュータが実行することが可能にて記録した記録媒体。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005301104A JP2007109116A (ja) | 2005-10-17 | 2005-10-17 | 推定装置、テーブル管理装置、選択装置、テーブル管理方法、そのテーブル管理方法をコンピュータに実現させるプログラム、及び、そのプログラムを記録する記憶媒体 |
KR1020087005362A KR100958299B1 (ko) | 2005-10-17 | 2006-10-16 | 추정장치, 테이블 관리장치, 선택장치, 테이블관리방법, 그 테이블 관리방법을 컴퓨터로 실현시키는프로그램 및 그 프로그램을 기록하는 기록매체 |
US12/089,635 US20090327673A1 (en) | 2005-10-17 | 2006-10-16 | Estimator, table managing device, selecting device, table managing method, program for allowing computer to execute the table managing method, and recording medium where the program is recorded |
PCT/JP2006/320547 WO2007046324A1 (ja) | 2005-10-17 | 2006-10-16 | 推定装置、テーブル管理装置、選択装置、テーブル管理方法、そのテーブル管理方法をコンピュータに実現させるプログラム、及び、そのプログラムを記録する記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005301104A JP2007109116A (ja) | 2005-10-17 | 2005-10-17 | 推定装置、テーブル管理装置、選択装置、テーブル管理方法、そのテーブル管理方法をコンピュータに実現させるプログラム、及び、そのプログラムを記録する記憶媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007109116A true JP2007109116A (ja) | 2007-04-26 |
Family
ID=37962418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005301104A Pending JP2007109116A (ja) | 2005-10-17 | 2005-10-17 | 推定装置、テーブル管理装置、選択装置、テーブル管理方法、そのテーブル管理方法をコンピュータに実現させるプログラム、及び、そのプログラムを記録する記憶媒体 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20090327673A1 (ja) |
JP (1) | JP2007109116A (ja) |
KR (1) | KR100958299B1 (ja) |
WO (1) | WO2007046324A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013205956A (ja) * | 2012-03-27 | 2013-10-07 | Sumitomo Heavy Ind Ltd | 画像生成方法、画像生成装置、及び操作支援システム |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8448140B2 (en) | 2008-07-02 | 2013-05-21 | Tokyo Institute Of Technology | Execution time estimation method and device |
JP5552042B2 (ja) * | 2010-12-27 | 2014-07-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | プログラム解析の方法、システムおよびプログラム |
US10146545B2 (en) | 2012-03-13 | 2018-12-04 | Nvidia Corporation | Translation address cache for a microprocessor |
US9880846B2 (en) | 2012-04-11 | 2018-01-30 | Nvidia Corporation | Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries |
US10241810B2 (en) | 2012-05-18 | 2019-03-26 | Nvidia Corporation | Instruction-optimizing processor with branch-count table in hardware |
US20140189310A1 (en) | 2012-12-27 | 2014-07-03 | Nvidia Corporation | Fault detection in instruction translations |
US10108424B2 (en) * | 2013-03-14 | 2018-10-23 | Nvidia Corporation | Profiling code portions to generate translations |
RU2614583C2 (ru) * | 2013-03-15 | 2017-03-28 | Интел Корпорейшн | Определение профиля пути, используя комбинацию аппаратных и программных средств |
US10540180B2 (en) * | 2014-12-07 | 2020-01-21 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Reconfigurable processors and methods for collecting computer program instruction execution statistics |
WO2017102486A1 (en) * | 2015-12-15 | 2017-06-22 | Philips Lighting Holding B.V. | Method for managing a neighbor table and communication apparatus adapted for managing a neighbor table |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11306046A (ja) * | 1998-04-23 | 1999-11-05 | Toshiba Corp | テストケース生成システム及びテストケース生成方法 |
JPH11306044A (ja) * | 1998-04-22 | 1999-11-05 | Hitachi Ltd | データプロセッサ |
JP2982506B2 (ja) * | 1992-08-18 | 1999-11-22 | 日本電気株式会社 | 分岐ヒストリテーブル制御回路 |
JP2000194602A (ja) * | 1998-12-28 | 2000-07-14 | Nec Corp | 情報処理装置、マイクロプロセッサ及び外部キャッシュメモリの制御方法 |
JP2005092532A (ja) * | 2003-09-17 | 2005-04-07 | Fukuoka Pref Gov Sangyo Kagaku Gijutsu Shinko Zaidan | 推定装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100507834C (zh) * | 1994-12-02 | 2009-07-01 | 现代电子美国公司 | 有限游程转移预测 |
US6205545B1 (en) * | 1998-04-30 | 2001-03-20 | Hewlett-Packard Company | Method and apparatus for using static branch predictions hints with dynamically translated code traces to improve performance |
US6189141B1 (en) * | 1998-05-04 | 2001-02-13 | Hewlett-Packard Company | Control path evaluating trace designator with dynamically adjustable thresholds for activation of tracing for high (hot) activity and low (cold) activity of flow control |
US20050216714A1 (en) * | 2004-03-25 | 2005-09-29 | Intel Corporation | Method and apparatus for predicting confidence and value |
US7890738B2 (en) * | 2005-01-20 | 2011-02-15 | International Business Machines Corporation | Method and logical apparatus for managing processing system resource use for speculative execution |
US7711936B2 (en) * | 2007-08-28 | 2010-05-04 | Sun Microsystems, Inc. | Branch predictor for branches with asymmetric penalties |
-
2005
- 2005-10-17 JP JP2005301104A patent/JP2007109116A/ja active Pending
-
2006
- 2006-10-16 KR KR1020087005362A patent/KR100958299B1/ko not_active IP Right Cessation
- 2006-10-16 US US12/089,635 patent/US20090327673A1/en not_active Abandoned
- 2006-10-16 WO PCT/JP2006/320547 patent/WO2007046324A1/ja active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2982506B2 (ja) * | 1992-08-18 | 1999-11-22 | 日本電気株式会社 | 分岐ヒストリテーブル制御回路 |
JPH11306044A (ja) * | 1998-04-22 | 1999-11-05 | Hitachi Ltd | データプロセッサ |
JPH11306046A (ja) * | 1998-04-23 | 1999-11-05 | Toshiba Corp | テストケース生成システム及びテストケース生成方法 |
JP2000194602A (ja) * | 1998-12-28 | 2000-07-14 | Nec Corp | 情報処理装置、マイクロプロセッサ及び外部キャッシュメモリの制御方法 |
JP2005092532A (ja) * | 2003-09-17 | 2005-04-07 | Fukuoka Pref Gov Sangyo Kagaku Gijutsu Shinko Zaidan | 推定装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013205956A (ja) * | 2012-03-27 | 2013-10-07 | Sumitomo Heavy Ind Ltd | 画像生成方法、画像生成装置、及び操作支援システム |
Also Published As
Publication number | Publication date |
---|---|
KR20080034020A (ko) | 2008-04-17 |
WO2007046324A1 (ja) | 2007-04-26 |
KR100958299B1 (ko) | 2010-05-19 |
US20090327673A1 (en) | 2009-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007109116A (ja) | 推定装置、テーブル管理装置、選択装置、テーブル管理方法、そのテーブル管理方法をコンピュータに実現させるプログラム、及び、そのプログラムを記録する記憶媒体 | |
JP5852677B2 (ja) | レジスタ・マッピング方法 | |
US11238040B2 (en) | Grouping in analytical databases | |
US9075721B2 (en) | Computer readable recording medium having stored therein information processing program, information processing apparatus and information processing method | |
CN107426041B (zh) | 一种解析命令的方法和装置 | |
US9201806B2 (en) | Anticipatorily loading a page of memory | |
CN112368677B (zh) | 基于分支指令的类型选择性地执行提前分支预测 | |
US20180074957A1 (en) | Method and device for accessing a cache memory | |
JP6996629B2 (ja) | 検証自動化装置、検証自動化方法、およびプログラム | |
JP2009176103A (ja) | 仮想ネットワークシステムのnic接続制御方法とシステムおよびプログラム | |
KR20210018415A (ko) | 예측 실패 복구에 대한 레이턴시를 줄이기 위한 이차적 분기 예측 저장 | |
CN113544640A (zh) | 分支指令的处理方法、分支预测器及处理器 | |
CN107451152B (zh) | 计算设备、数据缓存和查找的方法及装置 | |
CN116991855B (zh) | 哈希表处理方法、装置、设备、介质、控制器及固态硬盘 | |
US8819036B2 (en) | Computer product, search method, search apparatus, and node | |
JP2006018684A (ja) | タスク管理システム | |
US20190265954A1 (en) | Apparatus and method for assisting discovery of design pattern in model development environment using flow diagram | |
JP5585489B2 (ja) | 検索支援装置、プログラム及び方法 | |
JP6688433B2 (ja) | 計算機システム | |
US20160232187A1 (en) | Dump analysis method, apparatus and non-transitory computer readable storage medium | |
JP2007286990A (ja) | キャッシュメモリ装置及びそれに用いるキャッシュメモリ制御方法並びにそのプログラム | |
JP2007004326A (ja) | データアクセス方法及びそのプログラム | |
CN114860724A (zh) | 数据库共享内存缓冲池的处理方法、存储介质与设备 | |
US10078586B2 (en) | Out-of-range reference detection device, method, and recording medium | |
KR20170036421A (ko) | 부트 프로그램을 실행 및 갱신하는 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081016 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120203 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120529 |