JP2007206806A - キャッシュ観測装置、プロセッサの解析方法およびキャッシュメモリ - Google Patents

キャッシュ観測装置、プロセッサの解析方法およびキャッシュメモリ Download PDF

Info

Publication number
JP2007206806A
JP2007206806A JP2006022470A JP2006022470A JP2007206806A JP 2007206806 A JP2007206806 A JP 2007206806A JP 2006022470 A JP2006022470 A JP 2006022470A JP 2006022470 A JP2006022470 A JP 2006022470A JP 2007206806 A JP2007206806 A JP 2007206806A
Authority
JP
Japan
Prior art keywords
cache
entry
miss
determination means
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.)
Pending
Application number
JP2006022470A
Other languages
English (en)
Inventor
Genichiro Matsuda
源一郎 松田
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2006022470A priority Critical patent/JP2007206806A/ja
Priority to US11/700,065 priority patent/US7698496B2/en
Publication of JP2007206806A publication Critical patent/JP2007206806A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3471Address tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】プロセッサの高速化に伴い、チップ外部との転送速度の差が大きくなり、プロセッサのクロックサイクルでトレース情報を出力しようとすると、トレース端子で転送速度が間に合わず、正しくデータを取得できなくなる。
【解決手段】キャッシュミス判定手段e1は、複数のキャッシュエントリに分割されたキャッシュメモリ3に対するアクセス時にキャッシュミスの判定を行う。エントリ領域判定手段e2は、キャッシュメモリ3における任意のキャッシュラインを選択するためのアドレスの一部分であるインデックスの一部を用いて、キャッシュアクセスがキャッシュメモリ3のどのエントリ領域へのアクセスかを判定する。キャッシュミス回数計数手段e10は、キャッシュミス判定手段e1によるキャッシュミスの回数をエントリ領域判定手段e2によるキャッシュエントリ領域毎に計数し、プログラム最適化に有効なデータを取得する。
【選択図】図1

Description

本発明は、プロセッサのキャッシュ観測装置、プロセッサの解析方法およびキャッシュメモリに関するものである。
従来のプロセッサの性能解析では、ハードウェアトレースにより、データアクセス時のアドレス、データ等をそのまま出力して、そのデータをもとに性能向上のため改善策の検討を行っていた。また、ハードウェアトレースにより得られたトレースデータを解析して実行時におけるペナルティ分布を求めるペナルティ解析ツールと、解析結果に基づいて、改善策を提案する改善事項推奨ツールを備えたコンピュータの性能向上システムもあった(例えば、特許文献1参照。)。
図10は、従来の技術における半導体集積回路および解析装置の構成を示すブロック図である。
半導体集積回路10は、プロセッサ1、メモリ4およびトレース回路5等で構成されている。プロセッサ1は、命令実行部2とキャッシュメモリ3で構成されている。また、半導体集積回路10に対する解析装置20は、CPU、メモリ(ROMおよびRAM)等からなるマイクロコンピュータで構成された処理装置11と、文字キー、数字キー、機能指示キー等を備えていて各種キー入力、デバッグおよび性能解析のための指示等の入力を行うキーボード12およびマウスカーソルの示す位置データを入力するマウス13などの入力装置、トレース結果や解析結果および各種メッセージ等を表示するCRT、LCD等の表示装置14およびトレースユニット15を備えている。処理装置11は、このシステムの制御を司るとともに、半導体集積回路10から出力されるデバッグのため演算、トレース情報の加工、トレース結果を記憶装置であるHDDに記憶させる処理等を行う。プロセッサ1が実行した命令の実行情報やメモリアクセス情報、さらにキャッシュミス情報はトレース回路5を経由して解析装置20に出力される。解析装置20に入力されたトレース情報は、プロセッサ1のデバッグや性能解析等に用いられる。
図11は、従来の技術におけるキャッシュメモリ3の構成を示すブロック図である。この例は、4ウェイセットアソシエイティブ方式である。キャッシュメモリ3は、タグメモリ22とデータメモリ23とのメモリの組で構成されていて、これらの組24をキャッシュラインと呼ぶ。この例では、キャッシュライン24は8ワードで構成されており、キャッシュライン24の選択にはアドレス21の[4:2]が使用されている。アドレス21の[1:0]はバイトの選択に用いられる。また各アドレスに対して特定のキャッシュライン24が選択される構造になっているが、このラインを選択するために使用されるアドレスの一部分のことをインデックスと呼び、キャッシュエントリ数によってインデックスのビット幅が決定される。この例では、キャッシュエントリは28 =256であるので、インデックスはアドレス21の[12:5]となっている。
プロセッサ1からあるアドレスへのメモリアクセスが発生すると、インデックスによって特定のキャッシュラインが決まり、そのキャッシュラインに対応するタグメモリ22とデータメモリ23からデータが読み出される。そして、タグ部の内容がアドレスの上位ビットであるアドレス21の[31:13]と比較器26にて比較され、4Wayのうちのどれかでデータが一致すれば、そのキャッシュラインのデータが有効であることが分かる。これをキャッシュヒットと呼び、セレクタ27によってデータメモリ23から有効なデータ28が選択されて出力され、プロセッサ1に渡される。逆に、4Wayのすべてでタグ部の内容が異なれば、そのキャッシュラインのデータは無効であることが分かる。これキャッシュミスと呼ぶ。
プロセッサ1の性能向上を図るためには、各メモリアクセスのアドレスおよびキャッシュミス情報が有用である。なぜなら、メモリアクセスのアドレスとキャッシュミス情報が分かれば、プログラムのどこでキャッシュミスが発生しているかを知ることが可能となるからである。その部分のプログラムを最適化することによって、プロセッサの性能向上を実現できる。プログラムの最適化法には、色々な方法があるが、一般的には、アルゴリズムの最適化や、メモリマップの最適化が知られている。
特開平9−198275号公報(第3−5頁、第1−3図)
近年、プロセッサの高速化は益々進展しており、チップ外部との転送速度の差が大きくなってきている。そのため、プロセッサのクロックサイクルでトレース情報を出力しようとすると、トレース端子で転送速度が間に合わず、データを正しく取得できないという課題がある。そのため、従来の方法では、出力する情報をチップ内部のメモリ(トレースメモリ)やバッファに貯めておき、プログラム実行後に外部に出力する方法がある。しかし、キャッシュアクセスは非常に頻繁に発生するため、その情報のすべてをトレース情報として出力しようとした場合、必要となるトレースメモリ等の容量は非常に大きくなってしまう。
本発明は、このような事情に鑑みて創作したものであり、比較的小規模な回路追加で、プログラムの最適化に有効なデータを取得する機能をもつキャッシュ観測装置を提供することを目的としている。
(1)本発明によるキャッシュ観測装置は、図1に示すように、
複数のキャッシュエントリに分割されたキャッシュメモリに対するアクセス時にキャッシュミスの判定を行うキャッシュミス判定手段e1と、
前記キャッシュメモリにおける任意のキャッシュラインを選択するためのアドレスの一部分であるインデックスの一部を用いて、前記キャッシュアクセスがキャッシュメモリのどのエントリ領域へのアクセスかを判定するエントリ領域判定手段e2と、
前記キャッシュミス判定手段e1によるキャッシュミスの回数を前記エントリ領域判定手段e2によるキャッシュエントリ領域毎に計数するキャッシュミス回数計数手段e10とを備えたものである。
この構成によれば、トレースの速度が間に合わないぐらいにプロセッサが高速で動作する場合でも、分割されたキャッシュエントリのどの領域でどれだけのキャッシュミスが発生したかを測定することができ、しかもインデックスの分布を利用することで比較的小規模な回路追加で対応でき、性能向上のためのプログラムの最適化を有利に展開することが可能となる。
(2)また、本発明によるキャッシュ観測装置は、図2に示すように、
複数のキャッシュエントリに分割されたキャッシュメモリに対するアクセス時にキャッシュミスの判定を行うキャッシュミス判定手段e1と、
前記キャッシュメモリにおける任意のキャッシュラインを選択するためのアドレスの一部分であるインデックスの一部を用いて、前記キャッシュアクセスがキャッシュメモリのどのエントリ領域へのアクセスかを判定するエントリ領域判定手段e2と、
前記キャッシュアクセスのアドレスを前記キャッシュメモリのタグアドレスに対して上位ビットで比較して、前記キャッシュアクセスが特定アドレス空間へのアクセスかを判定する特定アドレス空間判定手段e3と、
前記特定アドレス空間判定手段e3による特定アドレス空間において、前記キャッシュミス判定手段e1によるキャッシュミスの回数を前記エントリ領域判定手段e2によるキャッシュエントリ領域毎に計数するキャッシュミス回数計数手段e20とを備えたものである。
この構成によれば、ある特定のアドレス空間の中で、分割されたキャッシュエントリのどの領域でどれだけキャッシュミスが発生したかを測定することができ、性能向上のためのプログラムの最適化をより高精度、より効率的に展開することが可能となる。
(3)また、本発明によるキャッシュ観測装置は、図3に示すように、
複数のキャッシュエントリに分割されたキャッシュメモリに対するアクセス時にキャッシュミスの判定を行うキャッシュミス判定手段e1と、
前記キャッシュメモリにおける任意のキャッシュラインを選択するためのアドレスの一部分であるインデックスの一部を用いて、前記キャッシュアクセスがキャッシュメモリのどのエントリ領域へのアクセスかを判定するエントリ領域判定手段e2と、
前記キャッシュミス判定手段e1によるキャッシュミスの回数を前記エントリ領域判定手段e2によるキャッシュエントリ領域毎に計数するキャッシュミス回数計数手段e10と、
前記キャッシュエントリ領域毎の複数の前記キャッシュミス回数計数手段e10によるキャッシュミス回数に基づいてキャッシュミスが多く発生しているキャッシュエントリを判定するキャッシュミス多発エントリ判定手段e4と、
前記キャッシュミス多発エントリ判定手段e4の判定の結果に基づいて、キャッシュミスが多く発生しているキャッシュエントリに対して補完用キャッシュラインを動的に割り当てる補完用キャッシュライン割り当て手段e5とを備えたものである。
この構成によれば、キャッシュミスが多く発生しているキャッシュエントリに補完用キャッシュラインを動的に割り当てることが可能となり、そのキャッシュラインのミス率を低下させることが可能となって、プロセッサの性能向上が可能となる。
(4)上記いずれかのキャッシュ観測装置において、
前記キャッシュミス回数計数手段e10,e20は、キャッシュエントリ全体を複数に分割したときの個々の分割領域に対応する複数のカウンタを持ち、
さらに、前記インデックスにおける最上位側の数ビットを用いて前記複数のカウンタのうち所望のカウンタを指定するカウンタ指定手段e6を有し、
前記キャッシュミス回数計数手段e10,e20は、前記カウンタ指定手段e6による指定のカウンタにおいて前記キャッシュミス判定手段e1によるキャッシュミスの回数を個別に計数するように構成されているという態様がある。
これによれば、インデックスの最上位側の数ビットを用いることで、キャッシュエントリ全体を複数に分割した個々の分割領域にどれだけのキャッシュミスが発生したかを測定でき、キャッシュエントリ全体におけるキャッシュミス情報の分布が分かるので、プログラムの最適化への展開をより効率的に進めることが可能となる。
(5)また、上記いずれかのキャッシュ観測装置において、
前記キャッシュミス回数計数手段e10,e20は、キャッシュエントリ全体を複数に分割したときの個々の分割領域に対応する複数のカウンタを持ち、
さらに、前記インデックスにおける最下位側の数ビットを用いて前記複数のカウンタのうち所望のカウンタを指定するカウンタ指定手段e6を有し、
前記キャッシュミス回数計数手段e10,e20は、前記カウンタ指定手段e6による指定のカウンタにおいて前記キャッシュミス判定手段e1によるキャッシュミスの回数を個別に計数するように構成されているという態様がある。
これによれば、インデックスの最下位側の数ビットを用いることで、キャッシュエントリ毎にどれだけキャッシュミスが発生したかを詳しく判定でき、キャッシュエントリ毎の詳細な情報が得られるので、プログラムの最適化への展開をより高精度に進めることが可能となる。
(6)本発明によるプロセッサの解析方法は、
プロセッサの解析装置に実行するプログラムを入力する工程と、
キャッシュエントリ領域毎にキャッシュミスを計数させるために、キャッシュメモリにおける任意のキャッシュラインを選択するためのアドレスの一部分であるインデックスの一部を指定する工程と、
前記プログラムを実行したときのキャッシュミス情報の分布を出力する工程とを含むものである。
(7)上記のプロセッサの解析方法において、さらに、前記キャッシュミス情報の分布を取得するアドレス空間の指定を行う工程を含むという態様がある。
(8)また、次のような構成のキャッシュメモリも有用である。
すなわち、本発明によるキャッシュメモリは、
複数のキャッシュエントリに分割されて構成されるキャッシュメモリであって、
当該キャッシュメモリに対するアクセス時にキャッシュミスの判定を行うキャッシュミス判定手段と、
当該キャッシュメモリにおける任意のキャッシュラインを選択するためのアドレスの一部分であるインデックスの一部を用いて、前記キャッシュアクセスがキャッシュメモリのどのエントリ領域へのアクセスかを判定するエントリ領域判定手段と、
前記キャッシュミス判定手段によるキャッシュミスの回数を前記エントリ領域判定手段によるキャッシュエントリ領域毎に計数するキャッシュミス回数計数手段と、
前記キャッシュエントリ領域毎の複数の前記キャッシュミス回数計数手段によるキャッシュミス回数に基づいてキャッシュミスが多く発生しているキャッシュエントリを判定するキャッシュミス多発エントリ判定手段と、
前記キャッシュミス多発エントリ判定手段の判定の結果に基づいて、キャッシュミスが多く発生しているキャッシュエントリに対して補完用キャッシュラインを動的に割り当てる補完用キャッシュライン割り当て手段とを備えたものである。
この構成のキャッシュメモリによれば、キャッシュラインのミス率を自動的に低下させ、キャッシュエントリの自己割り当てを効果的に実現することができる。
本発明によれば、トレースの速度が間に合わないぐらいにプロセッサが高速で動作する場合でも、キャッシュメモリへのアクセスのインデックスの分布を取得することで、比較的小規模な回路追加でありながら、プログラムの最適化に有効なデータを効率良く取得することが可能になる。
また、取得したキャッシュメモリへのアクセスのインデックス分布をもとに、キャッシュミスが多く発生しているエントリに、補完用キャッシュラインを動的に割り当てることにより、キャッシュミスを低減し、プロセッサの高いパフォーマンスを引き出すことが可能になる。
以下、本発明にかかわるプロセッサのキャッシュ観測装置の実施の形態を図面に基づいて詳細に説明する。
(実施の形態1)
図4は、本発明の実施の形態1における半導体集積回路および解析装置の構成を示すブロック図である。ここでの半導体集積回路10は、従来技術の場合の図10に示したものにおいて、さらにキャッシュ観測装置6が追加されている。トレース回路5は省略してもよい。解析装置20の構成を含めて、その他の構成については従来の技術の場合の図10と同様であるので、同一部分に同一符号を付すにとどめ、説明を省略する。
図5は、本発明の実施の形態1におけるキャッシュ観測装置6の構成を示すブロック図である。この例には4ウェイセットアソシエイティブ方式を用いている。
従来の技術の場合の図11の構成において、さらに、否定的論理和(NOR)ゲート31、比較器32、デコード回路33、論理積ゲート34、No.0〜No.7のカウンタ35が追加されている。否定的論理和ゲート31は図1におけるキャッシュミス判定手段e1に対応し、比較器32はエントリ領域判定手段e2に対応し、デコード回路33はカウンタ指定手段e6に対応し、No.0〜No.7の論理積ゲート34およびカウンタ35はキャッシュミス回数計数手段e10に対応している。
従来の技術の場合と同様に、キャッシュメモリ3は、タグメモリ22とデータメモリ23とのメモリの組で構成されている。タグメモリ22とデータメモリ23はRAMで構成されている。キャッシュライン24は8ワードで構成されており、キャッシュライン24の選択には、アドレス21の[4:2]が使用されている。アドレス21の[1:0]はバイトの選択に用いられる。また各アドレスに対して特定のキャッシュライン24を選択するために使用されるアドレスの一部分であるインデックスについては、キャッシュエントリ数によって、インデックスのビット幅は決定される。この例では、キャッシュエントリは、28 =256であるので、インデックスは、アドレス21の[12:5]となっている。
プロセッサ1からキャッシュメモリ3に対してあるアドレスへのメモリアクセスが発生すると、インデックスによって特定のキャッシュラインが決まり、そのキャッシュラインに対応するタグメモリ22とデータメモリ23からデータが読み出される。そして、タグ部の内容がアドレスの上位ビットであるアドレス21の[31:13]と比較器26にて比較され、4Wayのうちのどれかでデータが一致すれば、そのキャッシュラインのデータが有効であることが分かる(キャッシュヒット)。この場合、セレクタ27によってデータメモリ23から有効なデータ28が選択されて出力され、プロセッサ1に渡される。逆に、4Wayのすべてでタグ部の内容が異なれば、そのキャッシュラインのデータは無効であることが分かる(キャッシュミス)。
比較器26からセレクタ27に出力されるヒット信号S1のラインに否定的論理和ゲート31が接続され、この否定的論理和ゲート31から出力されるキャッシュミス信号S2がNo.0〜No.7のカウンタ35の前段の論理積ゲート34に入力されている。タグメモリ22からのタグ出力25とアドレス21との比較器26、否定的論理和ゲート31等が図1におけるキャッシュミス判定手段e1に対応している。
キャッシュメモリ3におけるキャッシュエントリが上下に2等分され、下半分がキャッシュエントリの0〜127に対応し、上半分がキャッシュエントリの128〜255に対応している。
比較器32は、インデックスの[12]の値をエントリ領域選択信号S3と比較することにより、プロセッサ1からのキャッシュメモリ3に対するアクセスがキャッシュエントリの下半分(0〜127)であるのか上半分(128〜255)であるのかのエントリ領域の判定を行う。比較器32の出力は、No.0〜No.7のカウンタ35の前段の論理積ゲート34に入力されている。この部分が図1におけるエントリ領域判定手段e2に対応している。
キャッシュエントリの下半分へのアクセス時にはインデックスの[12]が“0”である。そこで、あらかじめエントリ領域選択信号S3に“0”が設定されていれば、比較器32の出力がアクティブとなり、論理積ゲート34を介していずれか1つのカウンタ35を機能させ、キャッシュエントリの下半分へのアクセスのみをカウントすることになる。逆に、キャッシュエントリの上半分へのアクセス時にはインデックスの[12]が“1”である。そこで、あらかじめエントリ領域選択信号S3に“1”が設定されていれば、比較器32の出力がアクティブとなり、論理積ゲート34を介していずれか1つのカウンタ35を機能させ、キャッシュエントリの上半分へのアクセスのみをカウントすることになる。
このようにエントリ領域選択信号S3を比較器32に入力し、比較器32の出力を論理積ゲート34に入力することにより、キャッシュミス情報を取得したい領域を選択することが可能になっている。
デコード回路33にはインデックス[12:5]の一部の[11:9]のバスラインが接続されており、プロセッサ1からのキャッシュアクセスに応じて、No.0〜No.7のカウンタ35のうちのどのカウンタ35を指定するかを決めることが可能な構成になっている。このデコード回路33の部分が図1におけるカウンタ指定手段e6に対応している。
そして、No.0〜No.7のカウンタ35およびそれぞれに対応する論理積ゲート34は、キャッシュメモリ3のキャッシュエントリ全体を複数に等しく分割したときの個々の分割領域に対応している。これら論理積ゲート34およびカウンタ35が図1におけるキャッシュミス回数計数手段e10に対応している。No.0〜No.7のカウンタ35は、キャッシュエントリの下半分のアクセスにも上半分のアクセスにも兼用される。
次に、上記のように構成された本実施の形態のキャッシュ観測装置6の動作を説明する。ここでは、エントリ領域選択信号S3に“0”が設定されている場合について説明する。
(1)まず、プロセッサ1からキャッシュメモリ3に対してアドレス“0x4000_0000”へのキャッシュアクセスが発生すると、インデックス[12:5]は“0x00”となり、最下部のキャッシュエントリのタグメモリ22およびデータメモリ23への読み出しが発生する。キャッシュヒットの場合は、キャッシュミス信号S2はアサートされないため、論理積ゲート34は導通せず、カウンタ35はインクリメントされない。
逆にキャッシュミスした場合には、キャッシュミス信号S2がアサートされる。このとき、インデックスの一部の[11:9]がデコード回路33に入力されており、このキャッシュアクセスがNo.0〜No.7のカウンタ35のうちどのカウンタ35に該当するかを判定して、対応する1つのカウンタ35が選択される。この場合では、インデックスの一部の[11:9]は“0x0”であるので、No.0のカウンタ35が選択される。さらにインデックス[12]は“0”であるので、このキャッシュアクセスは有効となり、比較器26で比較が行われ、キャッシュエントリ下半分へのアクセスであることが分かる。
以上のようにして、アドレス“0x4000_0000”へのアクセスが「キャッシュミスである。」かつ「キャッシュエントリの下半分である。」かつ「対応するカウンタ35は0番目のカウンタ35である。」ことが分かり、No.0のカウンタ35のキャッシュミスカウント値がインクリメントされる。
図6(a)は、上記の動作の理解を助けるための計算ダイヤグラムである。アドレス“0x4000_0000”はaに該当する。これの値はbのように10進数で“0”である。10進数“0”を2進数16ビットに展開すると、cのようになる。cは、16の全ビットが“0”となっている。このうち、dのようにインデックス[12:5]を見ると、8ビットで“00000000”となっている。16進数では、“0x00”である。これは、キャッシュエントリの0番目(最下位)を意味する。また、インデックスの一部[11:9]を見ると、3ビットで“000”となっている。16進数では、“0x0”である。これは、カウンタ35の0番目を意味する。また、インデックス[12]を見ると、1ビットで“0”となっている。これは、キャッシュエントリ下半分に該当する。
(2)また、アドレス“0x5000_0020”へのキャッシュアクセスが発生すると、この場合はインデックス[12:5]が“0x01”となり、下から2番目のキャッシュエントリのタグメモリ22およびデータメモリ23への読み出しが発生する。ここで、キャッシュヒットの場合は、キャッシュミス信号S2はアサートされないため、論理積ゲート34は導通せず、カウンタ35はインクリメントされない。
逆にキャッシュミスの場合は、キャッシュミス信号S2がアサートされる。このとき、インデックスの[12]は“0”であるので、キャッシュ下半分へのアクセスであることが分かる。また、インデックスの一部の[11:9]は“0x0”であるので、この場合も、No.0のカウンタ35が選択され、カウント値がインクリメントされる。
図6(b)は、上記の動作の理解を助けるための計算ダイヤグラムである。アドレス“0x5000_0020”はaに該当する。これの値はbのように10進数で“32”である。10進数の“32”を2進数16ビットに展開すると、cのようになる。cは、25 の位のみが“1”で、ほかの15ビットはすべて“0”となっている。このうち、dのようにインデックス[12:5]を見ると、8ビットで“00000001”となっている。16進数では、“0x01”である。これは、キャッシュエントリの1番目を意味する。また、インデックスの一部[11:9]を見ると、3ビットで“000”となっている。16進数では、“0x0”である。これは、カウンタ35の0番目を意味する。また、インデックス[12]を見ると、1ビットで“0”となっている。これは、キャッシュエントリ下半分に該当する。
(3)また、アドレス“0x5000_FFE0”へのキャッシュアクセスが発生すると、この場合はインデックス[12:5]が“0xFF”となり、最上位のエントリのタグメモリ22およびデータメモリ23への読み出しが発生する。ここで、キャッシュヒットの場合は、キャッシュミス信号S2はアサートされないため、論理積ゲート34は導通せず、カウンタ35はインクリメントされない。
逆にキャッシュミスの場合は、キャッシュミス信号S2がアサートされる。このとき、インデックスの[12]が“1”であるので、このキャッシュアクセスは上半分の領域へのアクセスであり、カウント対象でないことが分かる。
図7(a)は、上記の動作の理解を助けるための計算ダイヤグラムである。アドレス“0x5000_FFE0”はaに該当する。これの値はbのように10進数で“65504”である。10進数の“65504”を2進数16ビットに展開すると、cのようになる。cは、20 〜24 の位が“0”であり、25 〜215位がすべて“1”となっている。このうち、dのようにインデックス[12:5]を見ると、8ビットで“11111111”となっている。16進数では、“0xFF”である。これは、キャッシュエントリの255番目を意味する(16×15+1×15=255)。また、インデックスの一部[11:9]を見ると、3ビットで“111”となっている。16進数では、“0x7”である。これは、カウンタ35の7番目を意味する。また、インデックス[12]を見ると、1ビットで“1”となっている。これは、キャッシュエントリ上半分に該当する。ここでの動作例では、エントリ領域選択信号S3を“0”に設定してあるので、カウント対象ではない。
(4)また、アドレス“0x5000_0FE0”へのキャッシュアクセスが発生すると、この場合はインデックス[12:5]が“0x7F”となり、127番目のエントリのタグメモリ22およびデータメモリ23への読み出しが発生する。ここで、キャッシュヒットの場合は、キャッシュミス信号S2はアサートされないため、論理積ゲート34は導通せず、カウンタ35はインクリメントされない。
逆にキャッシュミスの場合は、キャッシュミス信号S2がアサートされる。このとき、インデックスの[12]が“0”であるので、キャッシュ下半分へのアクセスであることが分かる。また、インデックスの一部の[11:9]は“0x7”であるので、この場合はNo.7のカウンタ35が選択され、No.7のカウンタ35のキャッシュミスカウント値がインクリメントされる。
図7(b)は、上記の動作の理解を助けるための計算ダイヤグラムである。アドレス“0x5000_0FE0”はaに該当する。これの値はbのように10進数で“4064”である。10進数の“4064”を2進数16ビットに展開すると、cのようになる。cは、20 〜24 の位が“0”であり、25 〜211 位がすべて“1”であり、212 〜215の位が“0”となっている。このうち、dのようにインデックス[12:5]を見ると、8ビットで“01111111”となっている。16進数では、“0x7F”である。これは、キャッシュエントリの127番目を意味する(16×7+1×15=127)。また、インデックスの一部[11:9]を見ると、3ビットで“111”となっている。16進数では、“0x7”である。これは、カウンタ35の7番目を意味する。また、インデックス[12]を見ると、1ビットで“0”となっている。これは、キャッシュエントリ下半分に該当する。
なお、エントリ領域選択信号S3に“1”を設定すれば、256エントリの上半分について、同様な計測が可能になる。
以上のように、エントリ領域選択信号S3に“0”を設定することで、256エントリの下半分である128エントリを選択し、その128エントリをインデックスの一部である[11:9]で8分割した16エントリが、No.0〜No.7のカウンタ35に割り当てられることによって、8領域ごとのキャッシュミス回数を測定することが可能になる。
この結果をもとに、キャッシュミス回数が多いエントリへのアクセスが少なくなるようにプログラムのアドレスマップを変更することによって、プログラムのキャッシュヒット率を向上させることが可能となる。
(実施の形態2)
図8は、本発明の実施の形態2におけるキャッシュ観測装置6の構成を示すブロック図である。図8において、実施の形態1の図5におけるのと同じ符号は同一構成要素を指している。本実施の形態では、新しい構成要素として比較器36が設けられている。この比較器36は、アドレス21の[31:13]の値をアドレス領域指定信号S4と比較することにより、キャッシュアクセス情報を取得したい特定のアドレス空間を指定することが可能になる。例えば、アドレス領域指定信号S4に、“0x5000_XXXX”が指定された場合には、“0x5000_0000”〜“0x5000_FFFF”の領域のアクセスのみが測定対象になる。この比較器36の部分が図2における特定アドレス空間判定手段e3に対応している。比較器36の出力は論理積ゲート34に入力されている。ここで、論理積ゲート34は4入力ANDとなっている。論理積ゲート34およびNo.0〜No.7のカウンタ35はキャッシュミス回数計数手段e20に対応している。その他の構成については実施の形態1の場合の図5と同様であるので、同一部分に同一符号を付すにとどめ、説明を省略する。
次に、上記のように構成された本実施の形態のキャッシュ観測装置6の動作を説明する。ここでは、アドレス領域指定信号S4に、“0x5000_XXXX”が指定され、エントリ領域選択信号S3に“0”が設定されている場合について説明する。
(1)まず、プロセッサ1からアドレス“0x4000_0000”へのキャッシュアクセスが発生すると、インデックス[12:5]は“0x00”となり、最下部のキャッシュエントリ(エントリ0)のタグメモリ22およびデータメモリ23への読み出しが発生する。キャッシュヒットの場合は、キャッシュミス信号S2はアサートされないため、論理積ゲート34は導通せず、カウンタ35はインクリメントされない。
逆にキャッシュミスした場合には、キャッシュミス信号S2がアサートされる。このとき、インデックスの一部の[11:9]が実施の形態1と同様にデコード回路33に入力されており、インデックスの一部の[11:9]が“0x0”であることから、No.0のカウンタ35が選択される。さらにインデックス[12]は“0”であるので、このキャッシュアクセスは有効となり、比較器26で比較が行われ、キャッシュエントリ下半分へのアクセスであることが分かる。さらに、アドレス領域指定信号S4には、“0x5000_XXXX”が指定されているので、アドレス“0x4000_0000”へのアクセスは、測定対象外であることが分かり、論理積ゲート34は導通せず、カウンタ35のキャッシュミスカウント値はインクリメントされない。
(2)また、アドレス“0x5000_0020”へのキャッシュアクセスが発生すると、この場合はインデックス[12:5]が“0x01”となり、下から2番目のキャッシュエントリのタグメモリ22およびデータメモリ23への読み出しが発生する。ここで、キャッシュヒットの場合は、キャッシュミス信号S2はアサートされないため、論理積ゲート34は導通せず、カウンタ35はインクリメントされない。
逆にキャッシュミスの場合は、キャッシュミス信号S2がアサートされる。このとき、インデックスの[12]は“0”であるので、キャッシュ下半分へのアクセスであることが分かる。また、インデックスの一部の[11:9]は“0x0”であるので、この場合は、No.0のカウンタ35が選択される。そして、アドレス領域指定信号S4には“0x5000_XXXX”が指定されているので、このアドレス“0x5000_0020”へのキャッシュアクセスは、測定対象であることが分かり、No.0のカウンタ35のキャッシュミスカウント値がインクリメントされる。
(3)また、アドレス“0x5000_FFE0”へのキャッシュアクセスが発生すると、この場合はインデックス[12:5]が“0xFF”となり、最上位のエントリのタグメモリ22およびデータメモリ23への読み出しが発生する。ここで、キャッシュヒットの場合は、キャッシュミス信号S2はアサートされないため、論理積ゲート34は導通せず、カウンタ35はインクリメントされない。
逆にキャッシュミスの場合は、キャッシュミス信号S2がアサートされる。このとき、インデックスの[12]が“1”であるので、このキャッシュアクセスは上半分の領域へのアクセスであり、カウント対象でないことが分かる。
(4)また、アドレス“0x5000_0FE0”へのキャッシュアクセスが発生すると、この場合はインデックス[12:5]が“0x7F”となり、127番目のエントリのタグメモリ22およびデータメモリ23への読み出しが発生する。ここで、キャッシュヒットの場合は、キャッシュミス信号S2はアサートされないため、論理積ゲート34は導通せず、カウンタ35はインクリメントされない。
逆にキャッシュミスの場合は、キャッシュミス信号S2がアサートされる。このとき、インデックスの[12]が“0”であるので、キャッシュ下半分へのアクセスであることが分かる。また、インデックスの一部の[11:9]は“0x7”であるので、この場合はNo.7のカウンタ35が選択される。そして、アドレス領域指定信号S4には“0x5000_XXXX”が指定されているので、このアドレス“0x5000_0FE0”へのキャッシュアクセスは、測定対象であることが分かり、No.7のカウンタ35のキャッシュミスカウント値がインクリメントされる。
以上のように、本実施の形態によれば、アドレス領域指定信号S4に“0x5000_XXXX”を指定し、エントリ領域選択信号S3に“0”を設定することで、256エントリの下半分である128エントリを選択し、その128エントリをインデックスの一部である[11:9]で8分割した16エントリが、No.0〜No.7のカウンタ35に割り当てられることによって、アドレス領域“0x5000_0000”〜“0x5000_FFFF”のキャッシュアクセスの中で、8領域ごとのキャッシュミス回数を測定することが可能になる。
これにより、特定のアドレス空間(この例では、アドレス領域“0x5000_0000”〜“0x5000_FFFF”)に割り当てられているプログラムにおけるキャッシュミス回数の分布を調べることが可能となり、より高精度に、より効率的にプログラムの改善を実施することが可能になる。
なお、エントリ領域選択信号S3に“1”を設定すれば、256エントリの上半分について、同様な計測が可能になる。
(実施の形態3)
図9は、本発明の実施の形態3におけるキャッシュ観測装置6の構成を示すブロック図である。図9において、実施の形態1の図5におけるのと同じ符号は同一構成要素を指している。本実施の形態では、新しい構成要素としてキャッシュミス多発エントリ判定回路37と補完用キャッシュライン割り当て回路38が設けられている。キャッシュミス多発エントリ判定回路37にはNo.0〜No.7のカウンタ35の出力がつながっており、各カウンタ35のキャッシュミスカウント値により、どの領域でミスが多く発生しているかを判定することが可能になっている。補完用キャッシュライン割り当て回路38は、キャッシュミス多発エントリ判定回路37の判定結果によって、ミスの多い領域に補完用キャッシュエントリ39を動的に割り当てるように構成されている。キャッシュミス多発エントリ判定回路37が図3におけるキャッシュミス多発エントリ判定手段e4に対応し、補完用キャッシュライン割り当て回路38が補完用キャッシュライン割り当て手段e5に対応している。その他の構成については実施の形態1の場合の図5と同様であるので、同一部分に同一符号を付すにとどめ、説明を省略する。
次に、上記のように構成された本実施の形態のキャッシュ観測装置6の動作を説明する。ここでは、デコード回路33にインデックスの[12:10]が接続されている場合について説明する。
まず、プロセッサ1から様々なアドレスに対してキャッシュアクセスが発生し、キャッシュミスが発生すると、実施の形態1で説明したように、各カウンタ35のキャッシュミスカウント値がインクリメントされる。その値は、キャッシュミス多発エントリ判定回路37に入力されており、どの領域でミスが多く発生しているかが判定される。いま、No.3のカウンタ35のキャッシュミスカウント値が一番多かったとすると、No.3のカウンタ35に対応する領域でキャッシュミスが最も多く発生していることが分かる。すると、補完用キャッシュライン割り当て回路38は、No.3のカウンタ35に対応する領域に補完用キャッシュエントリ39を割り当てる。以降、No.3のカウンタ35に対応する領域に補完用キャッシュエントリ39が割り当てられているため、5Wayの構成となり、同一のインデックスを持つデータを保存できる場所が、4箇所から5箇所に増え、キャッシュヒット率が向上する。
このように、キャッシュミス多発エントリ判定回路37の判定結果をもとに補完用キャッシュライン割り当て回路38が補完用キャッシュエントリ39を任意の領域に動的に割り当てることによって、そのキャッシュラインのミス率を低下させることが可能となり、プロセッサの性能を向上させることが可能になる。
また、実施の形態3の構成をキャッシュメモリに内蔵させることによって、キャッシュラインのミス率を自動的に低下させるように、キャッシュエントリの自己割り当てを行うキャッシュメモリを実現することが可能である。
なお、上記のいずれの実施の形態においても、デコード回路33に入力されるインデックスのビット幅は、キャッシュエントリを何分割して、キャッシュミス情報を取得するかによって決定される。この例では、8分割するために、3ビット(23 =8)を使用しているが、インデックスを2分割するならば、1ビットだけでよい。同様に4分割する場合は、2ビットとなる。つまり、2n の領域に分割する場合には、デコード回路33に入力されるインデックスのビット幅は、nビットとなる。また、この例ではエントリ領域選択信号S3に1ビットのみ使用しているが、複数ビットを用いることも可能である。
本発明のキャッシュ観測装置は、比較的小規模な回路追加でキャッシュに関する情報を効率良く得る機能を有し、プログラムおよびプロセッサの性能向上を実現する技術として有用である。
本発明によるキャッシュ観測装置の構成を示すブロック図(その1) 本発明によるキャッシュ観測装置の構成を示すブロック図(その2) 本発明によるキャッシュ観測装置の構成を示すブロック図(その3) 本発明の実施の形態1における半導体集積回路および解析装置の構成を示すブロック図 本発明の実施の形態1におけるキャッシュ観測装置の構成を示すブロック図 本発明の実施の形態1におけるキャッシュ観測装置の動作の理解を助けるための計算ダイヤグラム(その1) 本発明の実施の形態1におけるキャッシュ観測装置の動作の理解を助けるための計算ダイヤグラム(その2) 本発明の実施の形態2におけるキャッシュ観測装置の構成を示すブロック図 本発明の実施の形態3におけるキャッシュ観測装置の構成を示すブロック図 従来の技術における半導体集積回路および解析装置の構成を示すブロック図 従来の技術におけるキャッシュメモリの構成を示すブロック図
符号の説明
e1 キャッシュミス判定手段
e2 エントリ領域判定手段
e3 特定アドレス空間判定手段
e4 キャッシュミス多発エントリ判定手段
e5 補完用キャッシュライン割り当て手段
e6 カウンタ指定手段
e10,e20 キャッシュミス回数計数手段
1 プロセッサ
2 命令実行部
3 キャッシュメモリ
4 メモリ
5 トレース回路
6 キャッシュ観測装置
10 半導体集積回路
11 処理装置
12 キーボード
13 マウス
14 表示装置
15 トレースユニット
20 解析装置
21 アドレス
22 タグメモリ
23 データメモリ
24 キャッシュライン
25 タグ出力
26 比較器
27 セレクタ
28 データ出力
31 否定的論理和ゲート
32 比較器
33 デコード回路
34 論理積ゲート
35 カウンタ
36 比較器
37 キャッシュミス多発エントリ判定回路
38 補完用キャッシュライン割り当て回路
39 補完用キャッシュエントリ
S1 ヒット信号
S2 キャッシュミス信号
S3 エントリ領域選択信号
S4 アドレス領域指定信号

Claims (8)

  1. 複数のキャッシュエントリに分割されたキャッシュメモリに対するアクセス時にキャッシュミスの判定を行うキャッシュミス判定手段と、
    前記キャッシュメモリにおける任意のキャッシュラインを選択するためのアドレスの一部分であるインデックスの一部を用いて、前記キャッシュアクセスがキャッシュメモリのどのエントリ領域へのアクセスかを判定するエントリ領域判定手段と、
    前記キャッシュミス判定手段によるキャッシュミスの回数を前記エントリ領域判定手段によるキャッシュエントリ領域毎に計数するキャッシュミス回数計数手段とを備えたキャッシュ観測装置。
  2. 複数のキャッシュエントリに分割されたキャッシュメモリに対するアクセス時にキャッシュミスの判定を行うキャッシュミス判定手段と、
    前記キャッシュメモリにおける任意のキャッシュラインを選択するためのアドレスの一部分であるインデックスの一部を用いて、前記キャッシュアクセスがキャッシュメモリのどのエントリ領域へのアクセスかを判定するエントリ領域判定手段と、
    前記キャッシュアクセスのアドレスを前記キャッシュメモリのタグアドレスに対して上位ビットで比較して、前記キャッシュアクセスが特定アドレス空間へのアクセスかを判定する特定アドレス空間判定手段と、
    前記特定アドレス空間判定手段による特定アドレス空間において、前記キャッシュミス判定手段によるキャッシュミスの回数を前記エントリ領域判定手段によるキャッシュエントリ領域毎に計数するキャッシュミス回数計数手段とを備えたキャッシュ観測装置。
  3. 複数のキャッシュエントリに分割されたキャッシュメモリに対するアクセス時にキャッシュミスの判定を行うキャッシュミス判定手段と、
    前記キャッシュメモリにおける任意のキャッシュラインを選択するためのアドレスの一部分であるインデックスの一部を用いて、前記キャッシュアクセスがキャッシュメモリのどのエントリ領域へのアクセスかを判定するエントリ領域判定手段と、
    前記キャッシュミス判定手段によるキャッシュミスの回数を前記エントリ領域判定手段によるキャッシュエントリ領域毎に計数するキャッシュミス回数計数手段と、
    前記キャッシュエントリ領域毎の複数の前記キャッシュミス回数計数手段によるキャッシュミス回数に基づいてキャッシュミスが多く発生しているキャッシュエントリを判定するキャッシュミス多発エントリ判定手段と、
    前記キャッシュミス多発エントリ判定手段の判定の結果に基づいて、キャッシュミスが多く発生しているキャッシュエントリに対して補完用キャッシュラインを動的に割り当てる補完用キャッシュライン割り当て手段とを備えたキャッシュ観測装置。
  4. 前記キャッシュミス回数計数手段は、キャッシュエントリ全体を複数に分割したときの個々の分割領域に対応する複数のカウンタを持ち、
    さらに、前記インデックスにおける最上位側の数ビットを用いて前記複数のカウンタのうち所望のカウンタを指定するカウンタ指定手段を有し、
    前記キャッシュミス回数計数手段は、前記カウンタ指定手段による指定のカウンタにおいて前記キャッシュミス判定手段によるキャッシュミスの回数を個別に計数する請求項1から請求項3までのいずれかに記載のキャッシュ観測装置。
  5. 前記キャッシュミス回数計数手段は、キャッシュエントリ全体を複数に分割したときの個々の分割領域に対応する複数のカウンタを持ち、
    さらに、前記インデックスにおける最下位側の数ビットを用いて前記複数のカウンタのうち所望のカウンタを指定するカウンタ指定手段を有し、
    前記キャッシュミス回数計数手段は、前記カウンタ指定手段による指定のカウンタにおいて前記キャッシュミス判定手段によるキャッシュミスの回数を個別に計数する請求項1から請求項3までのいずれかに記載のキャッシュ観測装置。
  6. プロセッサの解析装置に実行するプログラムを入力する工程と、
    キャッシュエントリ領域毎にキャッシュミスを計数させるために、キャッシュメモリにおける任意のキャッシュラインを選択するためのアドレスの一部分であるインデックスの一部を指定する工程と、
    前記プログラムを実行したときのキャッシュミス情報の分布を出力する工程とを含むプロセッサの解析方法。
  7. さらに、前記キャッシュミス情報の分布を取得するアドレス空間の指定を行う工程を含む請求項6に記載のプロセッサの解析方法。
  8. 複数のキャッシュエントリに分割されて構成されるキャッシュメモリであって、
    当該キャッシュメモリに対するアクセス時にキャッシュミスの判定を行うキャッシュミス判定手段と、
    当該キャッシュメモリにおける任意のキャッシュラインを選択するためのアドレスの一部分であるインデックスの一部を用いて、前記キャッシュアクセスがキャッシュメモリのどのエントリ領域へのアクセスかを判定するエントリ領域判定手段と、
    前記キャッシュミス判定手段によるキャッシュミスの回数を前記エントリ領域判定手段によるキャッシュエントリ領域毎に計数するキャッシュミス回数計数手段と、
    前記キャッシュエントリ領域毎の複数の前記キャッシュミス回数計数手段によるキャッシュミス回数に基づいてキャッシュミスが多く発生しているキャッシュエントリを判定するキャッシュミス多発エントリ判定手段と、
    前記キャッシュミス多発エントリ判定手段の判定の結果に基づいて、キャッシュミスが多く発生しているキャッシュエントリに対して補完用キャッシュラインを動的に割り当てる補完用キャッシュライン割り当て手段とを備えたキャッシュメモリ。
JP2006022470A 2006-01-31 2006-01-31 キャッシュ観測装置、プロセッサの解析方法およびキャッシュメモリ Pending JP2007206806A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006022470A JP2007206806A (ja) 2006-01-31 2006-01-31 キャッシュ観測装置、プロセッサの解析方法およびキャッシュメモリ
US11/700,065 US7698496B2 (en) 2006-01-31 2007-01-31 Cache memory observation device and method of analyzing processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006022470A JP2007206806A (ja) 2006-01-31 2006-01-31 キャッシュ観測装置、プロセッサの解析方法およびキャッシュメモリ

Publications (1)

Publication Number Publication Date
JP2007206806A true JP2007206806A (ja) 2007-08-16

Family

ID=38323488

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006022470A Pending JP2007206806A (ja) 2006-01-31 2006-01-31 キャッシュ観測装置、プロセッサの解析方法およびキャッシュメモリ

Country Status (2)

Country Link
US (1) US7698496B2 (ja)
JP (1) JP2007206806A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8738881B2 (en) 2008-02-13 2014-05-27 Nec Corporation Performance optimization system, method and program
JP2014232369A (ja) * 2013-05-28 2014-12-11 富士通株式会社 変数更新装置、変数更新システム、変数更新方法、変数更新プログラム、変換プログラム、及びプログラム変更検証システム

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8725978B2 (en) * 2011-06-30 2014-05-13 Red Hat, Inc. Using symbol information for categorization of dynamic memory allocations
US8719539B2 (en) * 2011-06-30 2014-05-06 Red Hat, Inc. Using heuristics for field types of a structure to categorize dynamic memory allocations
JP6013711B2 (ja) * 2011-09-01 2016-10-25 ラピスセミコンダクタ株式会社 半導体集積回路及び半導体集積回路のデバッグ方法
US9892049B2 (en) * 2012-10-31 2018-02-13 Renesas Electronics Corporation Semiconductor device and method for prefetching to cache memory

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60214060A (ja) * 1984-04-06 1985-10-26 Nippon Telegr & Teleph Corp <Ntt> 外部記憶キヤツシユ制御方式
JPH02181844A (ja) * 1989-01-06 1990-07-16 Matsushita Electric Ind Co Ltd キャッシュメモリ管理方法
JPH02244352A (ja) * 1989-03-17 1990-09-28 Fujitsu Ltd ディスクキャッシュ・シミュレーション処理方式
JPH05225060A (ja) * 1992-02-14 1993-09-03 Nec Corp 情報処理装置
JPH05250264A (ja) * 1992-03-09 1993-09-28 Mitsubishi Electric Corp キャッシュメモリ
JPH06231044A (ja) * 1992-12-22 1994-08-19 Internatl Business Mach Corp <Ibm> キャッシュ・メモリを有するデータ処理システム
JPH09198275A (ja) * 1996-01-22 1997-07-31 Nec Corp コンピュータ性能向上推奨システム
JPH10124390A (ja) * 1996-10-24 1998-05-15 Nec Corp キャッシュメモリ
JP2000215104A (ja) * 1999-01-26 2000-08-04 Nec Corp Way別hit/missカウンタおよびそのカウント方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6874056B2 (en) * 2001-10-09 2005-03-29 Agere Systems Inc. Method and apparatus for reducing cache thrashing
US7181599B2 (en) 2004-01-14 2007-02-20 International Business Machines Corporation Method and apparatus for autonomic detection of cache “chase tail” conditions and storage of instructions/data in “chase tail” data structure

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60214060A (ja) * 1984-04-06 1985-10-26 Nippon Telegr & Teleph Corp <Ntt> 外部記憶キヤツシユ制御方式
JPH02181844A (ja) * 1989-01-06 1990-07-16 Matsushita Electric Ind Co Ltd キャッシュメモリ管理方法
JPH02244352A (ja) * 1989-03-17 1990-09-28 Fujitsu Ltd ディスクキャッシュ・シミュレーション処理方式
JPH05225060A (ja) * 1992-02-14 1993-09-03 Nec Corp 情報処理装置
JPH05250264A (ja) * 1992-03-09 1993-09-28 Mitsubishi Electric Corp キャッシュメモリ
JPH06231044A (ja) * 1992-12-22 1994-08-19 Internatl Business Mach Corp <Ibm> キャッシュ・メモリを有するデータ処理システム
JPH09198275A (ja) * 1996-01-22 1997-07-31 Nec Corp コンピュータ性能向上推奨システム
JPH10124390A (ja) * 1996-10-24 1998-05-15 Nec Corp キャッシュメモリ
JP2000215104A (ja) * 1999-01-26 2000-08-04 Nec Corp Way別hit/missカウンタおよびそのカウント方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8738881B2 (en) 2008-02-13 2014-05-27 Nec Corporation Performance optimization system, method and program
JP2014232369A (ja) * 2013-05-28 2014-12-11 富士通株式会社 変数更新装置、変数更新システム、変数更新方法、変数更新プログラム、変換プログラム、及びプログラム変更検証システム

Also Published As

Publication number Publication date
US20070180192A1 (en) 2007-08-02
US7698496B2 (en) 2010-04-13

Similar Documents

Publication Publication Date Title
JP6207765B2 (ja) モードに応じてセットの1つ又は複数を選択的に選択するように動的に構成可能であるマルチモード・セット・アソシエイティブ・キャッシュ・メモリ
CN108139981B (zh) 一种页表缓存tlb中表项的访问方法,及处理芯片
US10303479B2 (en) Efficient random number generation for update events in multi-bank conditional branch predictor
JP2007206806A (ja) キャッシュ観測装置、プロセッサの解析方法およびキャッシュメモリ
US20080263341A1 (en) Data processing apparatus and method for generating prediction data
US8612698B2 (en) Replacement policy for hot code detection
JP6478843B2 (ja) 半導体装置及びキャッシュメモリ制御方法
KR100612167B1 (ko) 가상 머신 환경에서 게스트 물리적 어드레스를 변환하기위한 방법 및 장치
JP2014059871A (ja) キャッシュ構造へのアクセスを制御するための装置
US20120030430A1 (en) Cache control apparatus, and cache control method
EP2159706A1 (en) Operation processing apparatus and operation processing method
US9875191B2 (en) Electronic device having scratchpad memory and management method for scratchpad memory
CN108228237B (zh) 用于存储流检测和处理的设备和方法
US20110010506A1 (en) Data prefetcher with multi-level table for predicting stride patterns
US8539209B2 (en) Microprocessor that performs a two-pass breakpoint check for a cache line-crossing load/store operation
CN110196819B (zh) 内存访问方法与硬件
US20170046278A1 (en) Method and apparatus for updating replacement policy information for a fully associative buffer cache
KR20170048738A (ko) 전자 장치 및 이의 메모리 관리 방법
US20040088682A1 (en) Method, program product, and apparatus for cache entry tracking, collision detection, and address reasignment in processor testcases
JP2002278752A (ja) 命令の実行結果予測装置
US11467960B1 (en) Access frequency caching hardware structure
KR20240072241A (ko) 재참조 간격 예측 캐시 교체 정책을 위한 재참조 표시자
JPWO2006109421A1 (ja) キャッシュメモリ
US6327646B1 (en) Translation look-aside buffer utilizing high-order bits for fast access
CN101894010A (zh) 微处理器及适用于微处理器的操作方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111031

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120424