JP2007272691A - プロセッサ装置およびスラッシング回避方法 - Google Patents

プロセッサ装置およびスラッシング回避方法 Download PDF

Info

Publication number
JP2007272691A
JP2007272691A JP2006099349A JP2006099349A JP2007272691A JP 2007272691 A JP2007272691 A JP 2007272691A JP 2006099349 A JP2006099349 A JP 2006099349A JP 2006099349 A JP2006099349 A JP 2006099349A JP 2007272691 A JP2007272691 A JP 2007272691A
Authority
JP
Japan
Prior art keywords
address
thrashing
control information
physical address
processor device
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.)
Withdrawn
Application number
JP2006099349A
Other languages
English (en)
Inventor
Akira Naruse
彰 成瀬
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 JP2006099349A priority Critical patent/JP2007272691A/ja
Priority to US11/483,850 priority patent/US20070234003A1/en
Publication of JP2007272691A publication Critical patent/JP2007272691A/ja
Withdrawn 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • 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/10Address translation

Abstract

【課題】ソースプログラムが無い場合にも低コストでスラッシングを回避すること。
【解決手段】キャッシュミスが発生した物理アドレスを履歴バッファ140に記録し、スラッシング検出器160が履歴バッファ140を用いてスラッシングを検出してページテーブル151の制御フラグ152を変更し、論理アドレスから物理アドレスへ変換する際に、ページ管理機構150が、変更された制御フラグ152を用いることによって物理アドレスを変更し、データ移動部170が変更前の物理アドレスから変更後の物理アドレスにデータを移動する。
【選択図】 図2

Description

この発明は、アドレス変換機構を用いて論理アドレスを物理アドレスに変換するとともにキャッシュメモリを用いるプロセッサ装置およびスラッシング回避方法に関し、特に、ソースプログラムが無い場合にも低コストでスラッシングを回避し、キャッシュメモリの利用率を向上することができるプロセッサ装置およびスラッシング回避方法に関するものである。
汎用プロセッサ上でプログラムを高速に実行するためには、キャッシュメモリは不可欠な存在である。特に、近年はプロセッサの処理性能の向上に対して、主記憶アクセス性能が追い付いておらず、主記憶アクセスの遅さをカバーするキャッシュメモリの重要性が増している。
キャッシュメモリの利用効率を上げる(キャッシュミスを減らす)にはキャッシュメモリの容量を増やすことが効果的である。実際、近年のプロセッサのキャッシュメモリ容量はますます増化する傾向にある。しかし、以下に説明するように、キャッシュメモリの容量を増やしてもライン競合によるキャッシュミスは削減することができない。
図7は、キャッシュメモリの構造例を示す図である。同図は、ダイレクトマップ方式のキャッシュメモリを示し、容量は64KBでラインサイズは256Bである。また、物理アドレスは32ビットで物理アドレスのビット15〜ビット8の8ビットがキャッシュのライン番号である。
このようなキャッシュメモリにおいて、ライン競合が発生しない場合を図8−1に示し、ライン競合が発生する場合を図8−2に示す。図8−1に示すように、配列bと配列cの加算を行う場合、配列要素b[i]とc[i]が格納されるキャッシュのライン番号が異なるときはライン競合は発生しない。すなわち、b[i]のライン番号は「01h」であり、c[i]のライン番号は「81h」で異なることから、ライン競合は発生しない。
これに対して、図8−2に示すように、配列要素b[i]とc[i]が格納されるキャッシュのライン番号が一致するとライン競合によるキャッシュミスが発生する。すなわち、b[i]のライン番号とc[i]のライン番号は共に「81h」で同一であることから、ライン競合が発生し、配列要素b[i]、c[i]、b[i+1]、c[i+1]、b[i+2]、c[i+2]・・・の順でアクセスしていくと、継続的にキャッシュミスが発生する。これはスラッシングと呼ばれる現象であり、スラッシングが発生するとプログラム実行が大幅に遅くなる。
このようなスラッシングを回避する方法としては、カラーリング、Victimキャッシュ、実行時データ移動といった方法が知られている。カラーリングは、プログラム実行前にスラッシングを回避する方法であり、ライン競合が発生しないようにデータの配置をソース上で修正したり、コンパイラがプログラムをコンパイルするときにライン競合が発生しないようにデータの配置を調整することによってスラッシングを回避している(例えば、特許文献1参照。)。
Victimキャッシュは、プログラム実行時にハードウェアでスラッシングを回避する方法である。図9は、Victimキャッシュを説明するための説明図である。Victimキャッシュは、キャッシュメモリより容量は少ないが、連想度(associativity)は高いキャッシュメモリで(例えばfull associative)、キャッシュメモリから追い出されるデータを一時的に記録する。Victimキャッシュがあると、スラッシングが発生した場合でもVictimキャッシュからデータを供給できるので、メモリからデータを読み出す場合と比べてスラッシングによるペナルティ(データ待ち時間)を少なくすることができる(例えば、特許文献2参照。)。
実行時データ移動もプログラム実行時にハードウェアでスラッシングを回避する方法である。この方法では、スラッシングを検出したら、スラッシングの発生原因となったデータを、競合の発生しない別領域に移動(コピー)する。これにより、以後のスラッシング発生を抑止することができる(例えば、特許文献3参照。)。
特開2000−155689号公報 特開2001−249846号公報 特開2002−116955号公報
しかしながら、カラーリングは、プログラムのソースがあることが前提となっており、プログラムのソースが無い場合には効果を得ることができないという問題がある。また、仮にソースがあったとしても、プログラム実行前に、ライン競合が発生する場所を解析するのは容易ではない。
また、Victimキャッシュは、スラッシングによるペナルティ(データ待ち時間)を軽減するが、Victimキャッシュからのデータ供給はキャッシュメモリからのそれと比べて時間がかかる。また、一般的に、キャッシュメモリに記録されているデータのうち更新されていないデータ(以後、Clean データと呼ぶ)をキャッシュメモリから追い出す場合、Cleanデータはメモリに書き戻す必要が無いのでキャッシュメモリはCleanデータを外部に出す必要がない。しかし、Victimキャッシュでスラッシングを回避するには、キャッシュメモリから追い出されるデータを全てVictimキャッシュに渡す必要がある。従って、キャッシュメモリの制御方法を変更しなくてはならず、キャッシュメモリからVictimキャッシュへの帯域も確保しなくてはならない。すなわち、Victimキャッシュには、追加ハードウェア量が多く、高コストであるという問題がある。
また、実行時データ移動は、移動先の領域でスラッシングが発生しないようにするには、移動先の領域にライン競合の発生しないアドレスを割り当てる必要がある。一般的に、これをハードウェアで実現するのは容易では無い。また、ソフトウェア(OS)で実現する場合には、OSの領域確保処理を大幅に修正する必要があり、OSの修正コストが高くなるという問題がある。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、ソースプログラムが無い場合にも低コストでスラッシングを回避し、キャッシュメモリの利用率を向上することができるプロセッサ装置およびスラッシング回避方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、請求項1の発明に係るプロセッサ装置は、アドレス変換機構を用いて論理アドレスを物理アドレスに変換するとともにキャッシュメモリを用いるプロセッサ装置であって、キャッシュメモリに発生したスラッシングを検出するスラッシング検出手段と、前記スラッシング検出手段によりスラッシングが検出されたキャッシュラインを使用するデータに対応するアドレス変換情報に付加された制御情報を変更する制御情報変更手段と、論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換では不変であるアドレスビット部分に対して前記制御情報を用いて変更を加えるアドレス変換機構と、前記制御情報変更手段により制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動するデータ移動手段と、を備えたことを特徴とする。
この請求項1の発明によれば、キャッシュメモリに発生したスラッシングを検出し、スラッシングを検出したラインを使用するデータに対応するアドレス変換情報に付加された制御情報を変更し、論理アドレスから物理アドレスへ変換する際に、アドレス変換機構が通常のアドレス変換では不変であるアドレスビット部分に対して制御情報を用いて変更を加え、制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動するよう構成したので、ソースプログラムが無い場合にも低コストでスラッシングを回避することができる。
また、請求項2の発明に係るプロセッサ装置は、請求項1の発明において、前記制御情報は1ビットの情報であり、前記制御情報変更手段は、1ビットの制御情報を変更することを特徴とする。
この請求項2の発明によれば、1ビットの制御情報を変更するよう構成したので、ハードウェアの追加を少なくすることができる。
また、請求項3の発明に係るプロセッサ装置は、請求項1の発明において、前記制御情報は2ビットの情報であり、前記制御情報変更手段は、2ビットの制御情報を変更することを特徴とする。
この請求項3の発明によれば、2ビットの制御情報を変更するよう構成したので、ハードウェアの追加を少なくすることができる。
また、請求項4の発明に係るプロセッサ装置は、請求項1、2または3の発明において、前記アドレス変換機構は、論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換では不変であるアドレスビット部分に対して該論理アドレスに対応する制御情報との排他的論理演算を行うことを特徴とする。
この請求項4の発明によれば、論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換では不変であるアドレスビット部分に対して、対応する制御情報との排他的論理演算を行うよう構成したので、簡単な演算でライン番号を変更することができる。
また、請求項5の発明に係るプロセッサ装置は、請求項1、2または3の発明において、前記アドレス変換機構は、論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換では不変であるアドレスビット部分に対して該論理アドレスに対応する制御情報との加減算演算を行うことを特徴とする。
この請求項5の発明によれば、論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換では不変であるアドレスビット部分に対して、対応する制御情報との加減算演算を行うよう構成したので、簡単な演算でライン番号を変更することができる。
また、請求項6の発明に係るプロセッサ装置は、請求項1〜5のいずれか一つに記載の発明において、前記スラッシング検出手段は、キャッシュミスが発生した物理アドレスが順次格納される履歴キューにある同一物理アドレスの個数に基づいてスラッシングの発生を検出することを特徴とする。
この請求項6の発明によれば、キャッシュミスが発生した物理アドレスが順次格納される履歴キューにある同一物理アドレスの個数に基づいてスラッシングの発生を検出するよう構成したので、少ないハードウェアでスラッシングを検出することができる。更に、スラッシング発生時には、キャッシュライン単位で同一とみなせる物理アドレスに対するキャッシュミスが時間近接で多数発生する特徴があるので、履歴キューは小容量で十分であり、ハードウェア量を少なく済ませることができる。
また、請求項7の発明に係るプロセッサ装置は、請求項1〜5のいずれか一つに記載の発明において、前記スラッシング検出手段は、キャッシュミスが発生した物理アドレスを記録するとともに、該物理アドレスのキャッシュミス発生回数をカウントする履歴バッファの該カウンタの値に基づいてスラッシングの発生を検出することを特徴とする。
この請求項7の発明によれば、キャッシュミスが発生した物理アドレスを記録するとともに、該物理アドレスのキャッシュミス発生回数をカウントする履歴バッファのカウンタの値に基づいてスラッシングの発生を検出するよう構成したので、少ないハードウェアでスラッシングを検出することができる。更に、スラッシング発生時には、キャッシュライン単位で同一とみなせる物理アドレスに対するキャッシュミスが時間近接で多数発生する特徴があるので、履歴キューは小容量で十分であり、ハードウェア量を少なく済ませることができる。
また、請求項8の発明に係るプロセッサ装置は、請求項1〜7のいずれか一つに記載の発明において、前記スラッシング検出手段は、スラッシングを検出するとプロセッサに割込みを通知し、前記制御情報変更手段は、割込みを通知されるとスラッシングが検出されたデータに対応するアドレス変換情報に付加された制御情報を変更する処理を実行するプロセッサであることを特徴とする。
この請求項8の発明によれば、スラッシングを検出するとプロセッサに割込みを通知し、プロセッサは割込みを通知されるとスラッシングが検出されたデータに対応するアドレス変換情報に付加された制御情報を変更する処理を実行するよう構成したので、ソフトウェアによって制御情報を変更することができる。
また、請求項9の発明に係るプロセッサ装置は、請求項1〜8のいずれか一つに記載の発明において、前記スラッシング検出手段は、スラッシングを検出するとプロセッサに割込みを通知し、前記データ移動手段は、割込みを通知されると前記制御情報変更手段により制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動する処理を実行するプロセッサであることを特徴とする。
この請求項9の発明によれば、スラッシングを検出するとプロセッサに割込みを通知し、プロセッサは割込みを通知されると、制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動する処理を実行するよう構成したので、ソフトウェアによってデータを移動することができる。
また、請求項10の発明に係るスラッシング回避方法は、アドレス変換機構を用いて論理アドレスを物理アドレスに変換するとともにキャッシュメモリを用いるプロセッサ装置によるスラッシング回避方法であって、キャッシュメモリに発生したスラッシングを検出するスラッシング検出工程と、前記スラッシング検出工程によりスラッシングが検出されたキャッシュラインを使用するデータに対応するアドレス変換情報に付加された制御情報を変更する制御情報変更工程と、論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換では不変であるアドレスビット部分に対して制御情報を用いてアドレス変換機構が変更を加えるアドレス変換工程と、前記制御情報変更工程により制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動するデータ移動工程と、を含んだことを特徴とする。
この請求項10の発明によれば、キャッシュメモリに発生したスラッシングを検出し、スラッシングを検出したキャッシュラインを使用するデータに対応するアドレス変換情報に付加された制御情報を変更し、論理アドレスから物理アドレスへ変換する際に、アドレス変換機構が通常のアドレス変換では不変であるアドレスビット部分に対して制御情報を用いて変更を加え、制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動するよう構成したので、ソースプログラムが無い場合にも低コストでスラッシングを回避することができる。
請求項1および10の発明によれば、スラッシングを回避するので、キャッシュメモリの利用率を向上することができるという効果を奏する。
また、請求項2および3の発明によれば、ハードウェアの追加が少ないので、低コストでスラッシングを回避することができるという効果を奏する。
また、請求項4および5の発明によれば、通常のアドレス変換に対して追加される演算は簡単なものであり、ハードウェアの追加が少なく、低コストでスラッシングを回避することができるという効果を奏する。
また、請求項6および7の発明によれば、少ないハードウェアでスラッシングを検出するので、低コストでスラッシングを検出することができるという効果を奏する。
また、請求項8の発明によれば、ソフトウェアによって制御情報を変更するので、ハードウェアの追加をさらに少なくすることができるという効果を奏する。
また、請求項9の発明によれば、ソフトウェアによってデータを移動するので、ハードウェアの追加をさらに少なくすることができるという効果を奏する。
以下に添付図面を参照して、この発明に係るプロセッサ装置およびスラッシング回避方法の好適な実施例を詳細に説明する。なお、本実施例では、キャッシュ階層やアドレス変換機構が一段の場合について説明するが、多階層のキャッシュメモリや多段のアドレス変換機構を備えたプロセッサ装置にも同様に適用することができる。
まず、本実施例に係るプロセッサ装置がスラッシング回避のために行うアドレス変換について説明する。図1−1は、通常のアドレス変換を説明するための説明図であり、図1−2は、本実施例に係るアドレス変換を説明するための説明図である。
図1−1に示すように、通常のアドレス変換では、例えば、32ビットの論理アドレスの上位20ビットがページテーブルを使って物理アドレスの上位20ビットに置換えられ、論理アドレスの下位12ビットはそのまま物理アドレスの下位12ビットとして使われる。
これに対して、本実施例に係るアドレス変換では、図1−2に示すように、ページテーブルに論理アドレスと物理アドレスの各組み合わせに対応させて1ビットの制御フラグを制御情報として設け、アドレス変換機構は、論理アドレスの上位20ビットをページテーブルを使って物理アドレスの上位20ビットに置換えるとともに、論理アドレスの下位12ビットのうちビット11と制御フラグの排他的論理和(xor)をとって物理アドレスのビット11とする。
したがって、本実施例に係るアドレス変換では、制御フラグの値を変えることによって、物理アドレスのビット11を変更してキャッシュライン番号を変更することができる。すなわち、本実施例に係るアドレス変換では、制御フラグによりキャッシュライン番号を制御する制御情報として機能する。
例えば、図8−2に示したようなライン競合が発生している場合、配列要素c[i]の属するページの制御フラグを「0」から「1」に変更することによって、図1−3に示すように、c[i]のライン番号を「81h」から「89h」に変更することができる。この結果、b[i]とc[i]との間で発生していたライン競合を無くし、スラッシングを回避することができる。
このように、本実施例に係るプロセッサ装置では、ページテーブルの各エントリに1ビットの制御フラグを設け、アドレス変換機構が論理アドレスから物理アドレスに変換する際に、論理アドレスのビット11と制御フラグの排他的論理和をとって物理アドレスのビット11とする。したがって、スラッシングが発生した場合に、制御フラグを反転することによってキャッシュライン番号を変更することができ、簡単にスラッシングを回避することができる。
次に、本実施例に係るプロセッサ装置の構成について説明する。図2は、本実施例に係るプロセッサ装置の構成を示す機能ブロック図である。同図に示すように、このプロセッサ装置100は、プロセッサ110と、キャッシュメモリ120と、メインメモリ130と、履歴バッファ140と、ページ管理機構150と、スラッシング検出器160と、データ移動部170とを有する。
プロセッサ110は、メインメモリ130に格納された命令を取り出して実行する処理装置であり、命令の実行に必要なデータがあればメインメモリ130から取り出し、命令実行の結果、データを記憶する必要がある場合にはメインメモリ130に格納する。
キャッシュメモリ120は、メインメモリ130が記憶する命令やデータを一時的に記憶するメモリであり、メインメモリ130と比較して高速にアクセスすることが可能なメモリである。プロセッサ110は、命令やデータがキャッシュメモリ120に格納されている場合には、命令やデータの読み出しや書き込みを高速に行うことができる。
履歴バッファ140は、キャッシュミスが発生した物理アドレスを記憶するキューであり、キャッシュミスが発生した順に所定の個数だけ物理アドレスを記憶する。
ページ管理機構150は、ページテーブル151を用いて論理アドレスから物理アドレスへの変換を行う変換部である。ページテーブル151は、論理アドレスと物理アドレスとの対応を示すアドレス変換情報を記憶するテーブルである。
また、このページテーブル151は、エントリごとに制御フラグ152を備え、図1−2に示したように、ページ管理機構150は、論理アドレスから物理アドレスに変換する際に、論理アドレスのビット11と制御フラグ152の排他的論理和をとって物理アドレスのビット11とする。
このように、ページ管理機構150が、論理アドレスから物理アドレスに変換する際に、論理アドレスのビット11と制御フラグ152の排他的論理和をとって物理アドレスのビット11とすることによって、制御フラグ152を用いてキャッシュメモリ120のライン番号を変更することができる。
なお、ここでは、制御フラグ152として1ビットの制御ビットを用い、ページ管理機構150は、論理アドレスのビット11と制御ビットの排他的論理和をとって物理アドレスのビット11としているが、他の方法でアドレス変換を行うこともできる。図3は、論理アドレスのビット11と制御ビットの排他的論理和をとる場合も含めて、いくつかのアドレス変換方法を示す図である。
図3および図4に示すように、制御フラグとしては、2ビットを用い、論理アドレスのビット11とビット10(論理アドレス[11:10])と制御フラグ(制御フラグ[1:0])との排他的論理和をとって物理アドレスのビット11とビット10(物理アドレス[11:10])とすることもできる。
また、図3および図5に示すように、排他的論理和の代わりに、論理アドレスのビット11とビット10に制御フラグを加算して物理アドレスのビット11とビット10とすることもできる。このように、制御フラグを用いたアドレス変換としては、論理アドレスと制御フラグとの演算や制御フラグのビット数など様々な方式を用いることができる。
スラッシング検出器160は、履歴バッファ140を監視してスラッシングを検出する処理部であり、具体的には、履歴バッファ140に格納された物理アドレスから同一の物理アドレスの個数をカウントし、所定の個数以上になるとスラッシングとして検出する。
なお、本実施例では、履歴バッファ140に物理アドレスだけを格納してスラッシング検出器160が履歴バッファ140に格納された物理アドレスから同一の物理アドレスの個数をカウントすることとしたが、履歴バッファのエントリ毎にカウンタを設け、各エントリに記録された物理アドレスに対するキャッシュミスの発生回数を該当カウンタにてカウントし、スラッシング検出器160は、カウンタ値が所定値以上になるとスラッシングとして検出する方法を用いることもできる。
また、このスラッシング検出器160は、スラッシングを検出すると、ページ管理機構150が有するページテーブル151のスラッシングが発生したエントリの制御フラグ152を反転する。
このように、スラッシングが発生すると、スラッシング検出器160が、ページテーブル151のスラッシングが発生したエントリの制御フラグ152を反転し、ページ管理機構150が、論理アドレスから物理アドレスに変換する際に、論理アドレスのビット11と制御フラグ152の排他的論理和をとって物理アドレスのビット11とすることによって、スラッシングが発生したデータの物理アドレスを変更し、簡単にスラッシングを回避することができる。
また、スラッシング検出器160は、スラッシングを検出すると、制御フラグ152によって物理アドレスが変更されるデータを、変更前の物理アドレスから変更後の物理アドレスに移動するようにデータ移動部170に対して指示を行う。
データ移動部170は、スラッシング検出器160の指示に基づいて、スラッシングを回避するために物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動する処理部である。
このデータ移動部170が、スラッシングを回避するために物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動することによって、物理アドレスの変更にデータを対応させることができる。
上述してきたように、本実施例では、キャッシュミスが発生した物理アドレスを履歴バッファ140に記録し、スラッシング検出器160が履歴バッファ140を用いてスラッシングを検出してページテーブル151の制御フラグ152を反転し、論理アドレスから物理アドレスへ変換する際に、ページ管理機構150が、反転された制御フラグ152を用いることによって物理アドレスを変更し、データ移動部170が変更前の物理アドレスから変更後の物理アドレスにデータを移動することとしたので、以後、ライン競合によるキャッシュミスを減らすことができる。つまり、スラッシングを回避することができる。
なお、本実施例では、スラッシング検出器160がページテーブル151の制御フラグ152を反転することとしたが、制御フラグ152の反転はソフトウェアで行うこともできる。図6は、制御フラグ152の反転をソフトウェアで行うプロセッサ装置の構成を示す機能ブロック図である。なお、ここでは説明の便宜上、図2に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
図6に示すように、このプロセッサ装置200は、図2に示したプロセッサ装置100と比較して、スラッシング検出器160の代わりにスラッシング検出器260を有する。スラッシング検出器260は、スラッシング検出器160と同様に、履歴バッファ140を用いてスラッシングを検出するが、スラッシングを検出するとページテーブル151の制御フラグ152を反転する代わりに、プロセッサ110に割込みを発生させる。
そして、プロセッサ110は、割込みが発生すると割込み処理でページテーブル151の制御フラグ152を反転する。このように、制御フラグ152の反転は、割込み処理プログラムによっても行うことができ、スラッシング検出器が制御フラグ152を反転する場合と比較して、スラッシング検出器をより簡単なものとすることができる。
また、本実施例では、制御フラグ152の反転によってページ管理機構150による変換後の物理アドレスが変更されるデータをスラッシング検出器の指示に基づいてデータ移動部170が変更前の物理アドレスから変更後の物理アドレスに移動することとしたが、かかるデータの移動もソフトウェアによって実行することもできる。すなわち、スラッシング検出器によって発生させられた割込みに対する処理として、プロセッサ110がデータを移動するようにすることもできる。
(付記1)アドレス変換機構を用いて論理アドレスを物理アドレスに変換するとともにキャッシュメモリを用いるプロセッサ装置であって、
キャッシュメモリに発生したスラッシングを検出するスラッシング検出手段と、
前記スラッシング検出手段によりスラッシングが検出されたキャッシュラインを使用するデータに対応するアドレス変換情報に付加された制御情報を変更する制御情報変更手段と、
論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換では不変であるアドレスビット部分に対して前記制御情報を用いて変更を加えるアドレス変換機構と、
前記制御情報変更手段により制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動するデータ移動手段と、
を備えたことを特徴とするプロセッサ装置。
(付記2)前記制御情報は1ビットの情報であり、
前記制御情報変更手段は、1ビットの制御情報を変更することを特徴とする付記1に記載のプロセッサ装置。
(付記3)前記制御情報は2ビットの情報であり、
前記制御情報変更手段は、2ビットの制御情報を変更することを特徴とする付記1に記載のプロセッサ装置。
(付記4)前記アドレス変換機構は、論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換に加え、通常のアドレス変換では不変であるアドレスビットの特定部分に対して制御情報との排他的論理演算を行うことを特徴とする付記1、2または3に記載のプロセッサ装置。
(付記5)前記アドレス変換機構は、論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換に加え、通常のアドレス変換では不変であるアドレスビットの特定部分に対して制御情報との加減算演算を行うことを特徴とする付記1、2または3に記載のプロセッサ装置。
(付記6)前記スラッシング検出手段は、キャッシュミスが発生した物理アドレスが順次格納される履歴キューにある同一物理アドレスの個数に基づいてスラッシングの発生を検出することを特徴とする付記1〜5のいずれか一つに記載のプロセッサ装置。
(付記7)前記スラッシング検出手段は、キャッシュミスが発生した物理アドレスを記録するとともに、該物理アドレスでのキャッシュミス発生回数をカウントする履歴バッファの該カウンタの値に基づいてスラッシングの発生を検出することを特徴とする付記1〜5のいずれか一つに記載のプロセッサ装置。
(付記8)前記スラッシング検出手段は、スラッシングを検出するとプロセッサに割込みを通知し、
前記制御情報変更手段は、割込みを通知されるとスラッシングが検出されたデータに対応するアドレス変換情報に付加された制御情報を変更する処理を実行するプロセッサであることを特徴とする付記1〜7のいずれか一つに記載のプロセッサ装置。
(付記9)前記スラッシング検出手段は、スラッシングを検出するとプロセッサに割込みを通知し、
前記データ移動手段は、割込みを通知されると前記制御情報変更手段により制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動する処理を実行するプロセッサであることを特徴とする付記1〜8のいずれか一つに記載のプロセッサ装置。
(付記10)アドレス変換機構を用いて論理アドレスを物理アドレスに変換するとともにキャッシュメモリを用いるプロセッサ装置によるスラッシング回避方法であって、
キャッシュメモリに発生したスラッシングを検出するスラッシング検出工程と、
前記スラッシング検出工程によりスラッシングが検出されたキャッシュラインを使用するデータに対応するアドレス変換情報に付加された制御情報を変更する制御情報変更工程と、
論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換では不変であるアドレスビット部分に対して制御情報を用いてアドレス変換機構が変更を加えるアドレス変換工程と、
前記制御情報変更工程により制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動するデータ移動工程と、
を含んだことを特徴とするスラッシング回避方法。
(付記11)前記制御情報は1ビットの情報であり、
前記制御情報変更工程は、1ビットの制御情報を変更することを特徴とする付記10に記載のスラッシング回避方法。
(付記12)前記制御情報は2ビットの情報であり、
前記制御情報変更工程は、2ビットの制御情報を変更することを特徴とする付記10に記載のスラッシング回避方法。
(付記13)前記アドレス変換工程は、論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換に加え、通常のアドレス変換では不変であるアドレスビットの特定部分に対して、対応する制御情報との排他的論理演算を行うことを特徴とする付記10、11または12に記載のスラッシング回避方法。
(付記14)前記アドレス変換工程は、論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換に加え、通常のアドレス変換では不変であるアドレスビットの特定部分に対して、対応する制御情報との加減算演算を行うことを特徴とする付記10、11または12に記載のスラッシング回避方法。
(付記15)前記スラッシング検出工程は、キャッシュミスが発生した物理アドレスが順次格納される履歴キューにある同一物理アドレスの個数に基づいてスラッシングの発生を検出することを特徴とする付記10〜14のいずれか一つに記載のスラッシング回避方法。
(付記16)前記スラッシング検出工程は、キャッシュミスが発生した物理アドレスを記録するとともに、該物理アドレスでのキャッシュミス発生回数をカウントする履歴バッファの該カウンタの値に基づいてスラッシングの発生を検出することを特徴とする付記10〜14のいずれか一つに記載のスラッシング回避方法。
(付記17)前記スラッシング検出工程は、スラッシングを検出するとプロセッサに割込みを通知し、
前記制御情報変更工程は、割込みを通知されるとスラッシングが検出されたデータに対応するアドレス変換情報に付加された制御情報を変更する処理をプロセッサが実行することを特徴とする付記10〜16のいずれか一つに記載のスラッシング回避方法。
(付記18)前記スラッシング検出工程は、スラッシングを検出するとプロセッサに割込みを通知し、
前記データ移動工程は、割込みを通知されると前記制御情報変更工程により制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動する処理をプロセッサが実行することを特徴とする付記10〜17のいずれか一つに記載のスラッシング回避方法。
以上のように、本発明に係るプロセッサ装置およびスラッシング回避方法は、繰り返し処理などでスラッシングが頻繁に発生する場合に有用であり、特に、ソースプログラムが無い場合でカラーリングが行えない場合に適している。
通常のアドレス変換を説明するための説明図である。 本実施例に係るアドレス変換を説明するための説明図である。 本実施例に係るアドレス変換によるスラッシング回避例を示す図である。 本実施例に係るプロセッサ装置の構成を示す機能ブロック図である。 アドレス変換方法を示す図である。 2ビット反転によるアドレス変換を示す図である。 2ビット加算によるアドレス変換を示す図である。 制御フラグの反転をソフトウェアで行うプロセッサ装置の構成を示す機能ブロック図である。 キャッシュメモリの構造を示す図である。 ライン競合が発生しない場合を示す図である。 ライン競合が発生する場合を示す図である。 Victimキャッシュを説明するための説明図である。
符号の説明
100,200 プロセッサ装置
110 プロセッサ
120 キャッシュメモリ
130 メインメモリ
140 履歴バッファ
150 ページ管理機構
151 ページテーブル
152 制御フラグ
160,260 スラッシング検出器
170 データ移動部

Claims (10)

  1. アドレス変換機構を用いて論理アドレスを物理アドレスに変換するとともにキャッシュメモリを用いるプロセッサ装置であって、
    キャッシュメモリに発生したスラッシングを検出するスラッシング検出手段と、
    前記スラッシング検出手段によりスラッシングが検出されたキャッシュラインを使用するデータに対応するアドレス変換情報に付加された制御情報を変更する制御情報変更手段と、
    論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換では不変であるアドレスビット部分に対して前記制御情報を用いて変更を加えるアドレス変換機構と、
    前記制御情報変更手段により制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動するデータ移動手段と、
    を備えたことを特徴とするプロセッサ装置。
  2. 前記制御情報は1ビットの情報であり、
    前記制御情報変更手段は、1ビットの制御情報を変更することを特徴とする請求項1に記載のプロセッサ装置。
  3. 前記制御情報は2ビットの情報であり、
    前記制御情報変更手段は、2ビットの制御情報を変更することを特徴とする請求項1に記載のプロセッサ装置。
  4. 前記アドレス変換機構は、論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換に加え、通常のアドレス変換では不変であるアドレスビットの特定部分に対して制御情報との排他的論理演算を行うことを特徴とする請求項1、2または3に記載のプロセッサ装置。
  5. 前記アドレス変換機構は、論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換に加え、通常のアドレス変換では不変であるアドレスビットの特定部分に対して制御情報との加減算演算を行うことを特徴とする請求項1、2または3に記載のプロセッサ装置。
  6. 前記スラッシング検出手段は、キャッシュミスが発生した物理アドレスが順次格納される履歴キューにある同一物理アドレスの個数に基づいてスラッシングの発生を検出することを特徴とする請求項1〜5のいずれか一つに記載のプロセッサ装置。
  7. 前記スラッシング検出手段は、キャッシュミスが発生した物理アドレスを記録するとともに、該物理アドレスでのキャッシュミス発生回数をカウントする履歴バッファの該カウンタの値に基づいてスラッシングの発生を検出することを特徴とする請求項1〜5のいずれか一つに記載のプロセッサ装置。
  8. 前記スラッシング検出手段は、スラッシングを検出するとプロセッサに割込みを通知し、
    前記制御情報変更手段は、割込みを通知されるとスラッシングが検出されたデータに対応するアドレス変換情報に付加された制御情報を変更する処理を実行するプロセッサであることを特徴とする請求項1〜7のいずれか一つに記載のプロセッサ装置。
  9. 前記スラッシング検出手段は、スラッシングを検出するとプロセッサに割込みを通知し、
    前記データ移動手段は、割込みを通知されると前記制御情報変更手段により制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動する処理を実行するプロセッサであることを特徴とする請求項1〜8のいずれか一つに記載のプロセッサ装置。
  10. アドレス変換機構を用いて論理アドレスを物理アドレスに変換するとともにキャッシュメモリを用いるプロセッサ装置によるスラッシング回避方法であって、
    キャッシュメモリに発生したスラッシングを検出するスラッシング検出工程と、
    前記スラッシング検出工程によりスラッシングが検出されたキャッシュラインを使用するデータに対応するアドレス変換情報に付加された制御情報を変更する制御情報変更工程と、
    論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換では不変であるアドレスビット部分に対して制御情報を用いてアドレス変換機構が変更を加えるアドレス変換工程と、
    前記制御情報変更工程により制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動するデータ移動工程と、
    を含んだことを特徴とするスラッシング回避方法。
JP2006099349A 2006-03-31 2006-03-31 プロセッサ装置およびスラッシング回避方法 Withdrawn JP2007272691A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006099349A JP2007272691A (ja) 2006-03-31 2006-03-31 プロセッサ装置およびスラッシング回避方法
US11/483,850 US20070234003A1 (en) 2006-03-31 2006-07-11 Processor device and method for avoiding thrashing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006099349A JP2007272691A (ja) 2006-03-31 2006-03-31 プロセッサ装置およびスラッシング回避方法

Publications (1)

Publication Number Publication Date
JP2007272691A true JP2007272691A (ja) 2007-10-18

Family

ID=38560836

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006099349A Withdrawn JP2007272691A (ja) 2006-03-31 2006-03-31 プロセッサ装置およびスラッシング回避方法

Country Status (2)

Country Link
US (1) US20070234003A1 (ja)
JP (1) JP2007272691A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006111688A1 (en) * 2005-04-20 2006-10-26 Arm Limited Mapping an input data value to a resultant data value
KR100858527B1 (ko) * 2007-04-18 2008-09-12 삼성전자주식회사 시간적 인접성 정보를 이용한 캐쉬 메모리 시스템 및데이터 저장 방법
US8255642B2 (en) 2009-12-03 2012-08-28 International Business Machines Corporation Automatic detection of stress condition
WO2012119395A1 (zh) 2011-08-17 2012-09-13 华为技术有限公司 处理器的管理方法、锁竞争管理装置和计算机系统
US20200226066A1 (en) * 2020-03-27 2020-07-16 Intel Corporation Apparatus and method for efficient management of multi-level memory

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW219986B (ja) * 1991-06-17 1994-02-01 Digital Equipment Corp
US5752261A (en) * 1996-11-07 1998-05-12 Ncr Corporation Method and apparatus for detecting thrashing in a cache memory
US6115793A (en) * 1998-02-11 2000-09-05 Ati Technologies, Inc. Mapping logical cache indexes to physical cache indexes to reduce thrashing and increase cache size
JP3807582B2 (ja) * 1999-02-18 2006-08-09 株式会社ルネサステクノロジ 情報処理装置及び半導体装置
US6438672B1 (en) * 1999-06-03 2002-08-20 Agere Systems Guardian Corp. Memory aliasing method and apparatus
JP4341186B2 (ja) * 2001-01-22 2009-10-07 株式会社日立製作所 メモリシステム
US6874056B2 (en) * 2001-10-09 2005-03-29 Agere Systems Inc. Method and apparatus for reducing cache thrashing

Also Published As

Publication number Publication date
US20070234003A1 (en) 2007-10-04

Similar Documents

Publication Publication Date Title
US11194696B2 (en) Recording a trace of code execution using reserved cache lines in a cache
US11126536B2 (en) Facilitating recording a trace file of code execution using index bits in a processor cache
US9280474B2 (en) Adaptive data prefetching
US9009414B2 (en) Prefetch address hit prediction to reduce memory access latency
JP7159223B2 (ja) キャッシュの競合を管理するための方法およびシステム
EP3547146B1 (en) System, method, and apparatus for detecting repetitive data accesses and automatically loading data into local cache
US9886385B1 (en) Content-directed prefetch circuit with quality filtering
US9361233B2 (en) Method and apparatus for shared line unified cache
RU2769785C1 (ru) Точки останова воспроизведения трассировки на основе кэша, использующие зарезервированные биты поля тега
US11016695B2 (en) Methods and apparatus to perform memory copy operations
US20110320720A1 (en) Cache Line Replacement In A Symmetric Multiprocessing Computer
JP2007242003A (ja) メモリ属性を用いるための技術
JP4218820B2 (ja) ダイレクトマップドキャッシュとフルアソシアティブバッファとを含んだキャッシュシステム、その制御方法及び記録媒体
KR20200123187A (ko) 상위 계층 캐시의 항목을 기반으로 하위 계층 캐시로의 유입을 로깅함으로써 트레이스 기록
US6711651B1 (en) Method and apparatus for history-based movement of shared-data in coherent cache memories of a multiprocessor system using push prefetching
WO2020073641A1 (zh) 一种面向数据结构的图形处理器数据预取方法及装置
US10402292B2 (en) System and method for detecting false sharing
US20200409585A1 (en) System and method to track physical address accesses by a cpu or device
JP2007272691A (ja) プロセッサ装置およびスラッシング回避方法
US20190370038A1 (en) Apparatus and method supporting code optimization
JP2007272681A (ja) キャッシュメモリ装置及びそのキャッシュラインの入れ替え方法
US8898540B1 (en) Counter update through atomic operation
US10528470B1 (en) System, apparatus and method to suppress redundant store operations in a processor
US10649786B2 (en) Reduced stack usage in a multithreaded processor
JP2010191645A (ja) アドレスマッピング方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080818

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20100913