(57)【要約】【課題】ソースプログラムが無い場合にも低コストでスラッシングを回避すること。【解決手段】キャッシュミスが発生した物理アドレスを履歴バッファ１４０に記録し、スラッシング検出器１６０が履歴バッファ１４０を用いてスラッシングを検出してページテーブル１５１の制御フラグ１５２を変更し、論理アドレスから物理アドレスへ変換する際に、ページ管理機構１５０が、変更された制御フラグ１５２を用いることによって物理アドレスを変更し、データ移動部１７０が変更前の物理アドレスから変更後の物理アドレスにデータを移動する。【選択図】        図２
2007272691.tif 000002
【特許請求の範囲】
【請求項１】
アドレス変換機構を用いて論理アドレスを物理アドレスに変換するとともにキャッシュメモリを用いるプロセッサ装置であって、
キャッシュメモリに発生したスラッシングを検出するスラッシング検出手段と、
前記スラッシング検出手段によりスラッシングが検出されたキャッシュラインを使用するデータに対応するアドレス変換情報に付加された制御情報を変更する制御情報変更手段と、
論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換では不変であるアドレスビット部分に対して前記制御情報を用いて変更を加えるアドレス変換機構と、
前記制御情報変更手段により制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動するデータ移動手段と、
を備えたことを特徴とするプロセッサ装置。
【請求項２】
前記制御情報は１ビットの情報であり、
前記制御情報変更手段は、１ビットの制御情報を変更することを特徴とする請求項１に記載のプロセッサ装置。
【請求項３】
前記制御情報は２ビットの情報であり、
前記制御情報変更手段は、２ビットの制御情報を変更することを特徴とする請求項１に記載のプロセッサ装置。
【請求項４】
前記アドレス変換機構は、論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換に加え、通常のアドレス変換では不変であるアドレスビットの特定部分に対して制御情報との排他的論理演算を行うことを特徴とする請求項１、２または３に記載のプロセッサ装置。
【請求項５】
前記アドレス変換機構は、論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換に加え、通常のアドレス変換では不変であるアドレスビットの特定部分に対して制御情報との加減算演算を行うことを特徴とする請求項１、２または３に記載のプロセッサ装置。
【請求項６】
前記スラッシング検出手段は、キャッシュミスが発生した物理アドレスが順次格納される履歴キューにある同一物理アドレスの個数に基づいてスラッシングの発生を検出することを特徴とする請求項１〜５のいずれか一つに記載のプロセッサ装置。
【請求項７】
前記スラッシング検出手段は、キャッシュミスが発生した物理アドレスを記録するとともに、該物理アドレスでのキャッシュミス発生回数をカウントする履歴バッファの該カウンタの値に基づいてスラッシングの発生を検出することを特徴とする請求項１〜５のいずれか一つに記載のプロセッサ装置。
【請求項８】
前記スラッシング検出手段は、スラッシングを検出するとプロセッサに割込みを通知し、
前記制御情報変更手段は、割込みを通知されるとスラッシングが検出されたデータに対応するアドレス変換情報に付加された制御情報を変更する処理を実行するプロセッサであることを特徴とする請求項１〜７のいずれか一つに記載のプロセッサ装置。
【請求項９】
前記スラッシング検出手段は、スラッシングを検出するとプロセッサに割込みを通知し、
前記データ移動手段は、割込みを通知されると前記制御情報変更手段により制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動する処理を実行するプロセッサであることを特徴とする請求項１〜８のいずれか一つに記載のプロセッサ装置。
【請求項１０】
アドレス変換機構を用いて論理アドレスを物理アドレスに変換するとともにキャッシュメモリを用いるプロセッサ装置によるスラッシング回避方法であって、
キャッシュメモリに発生したスラッシングを検出するスラッシング検出工程と、
前記スラッシング検出工程によりスラッシングが検出されたキャッシュラインを使用するデータに対応するアドレス変換情報に付加された制御情報を変更する制御情報変更工程と、
論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換では不変であるアドレスビット部分に対して制御情報を用いてアドレス変換機構が変更を加えるアドレス変換工程と、
前記制御情報変更工程により制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動するデータ移動工程と、
を含んだことを特徴とするスラッシング回避方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、アドレス変換機構を用いて論理アドレスを物理アドレスに変換するとともにキャッシュメモリを用いるプロセッサ装置およびスラッシング回避方法に関し、特に、ソースプログラムが無い場合にも低コストでスラッシングを回避し、キャッシュメモリの利用率を向上することができるプロセッサ装置およびスラッシング回避方法に関するものである。
【背景技術】
【０００２】
汎用プロセッサ上でプログラムを高速に実行するためには、キャッシュメモリは不可欠な存在である。特に、近年はプロセッサの処理性能の向上に対して、主記憶アクセス性能が追い付いておらず、主記憶アクセスの遅さをカバーするキャッシュメモリの重要性が増している。
【０００３】
キャッシュメモリの利用効率を上げる（キャッシュミスを減らす）にはキャッシュメモリの容量を増やすことが効果的である。実際、近年のプロセッサのキャッシュメモリ容量はますます増化する傾向にある。しかし、以下に説明するように、キャッシュメモリの容量を増やしてもライン競合によるキャッシュミスは削減することができない。
【０００４】
図７は、キャッシュメモリの構造例を示す図である。同図は、ダイレクトマップ方式のキャッシュメモリを示し、容量は６４ＫＢでラインサイズは２５６Ｂである。また、物理アドレスは３２ビットで物理アドレスのビット１５〜ビット８の８ビットがキャッシュのライン番号である。
【０００５】
このようなキャッシュメモリにおいて、ライン競合が発生しない場合を図８−１に示し、ライン競合が発生する場合を図８−２に示す。図８−１に示すように、配列ｂと配列ｃの加算を行う場合、配列要素ｂ［ｉ］とｃ［ｉ］が格納されるキャッシュのライン番号が異なるときはライン競合は発生しない。すなわち、ｂ［ｉ］のライン番号は「０１ｈ」であり、ｃ［ｉ］のライン番号は「８１ｈ」で異なることから、ライン競合は発生しない。
【０００６】
これに対して、図８−２に示すように、配列要素ｂ［ｉ］とｃ［ｉ］が格納されるキャッシュのライン番号が一致するとライン競合によるキャッシュミスが発生する。すなわち、ｂ［ｉ］のライン番号とｃ［ｉ］のライン番号は共に「８１ｈ」で同一であることから、ライン競合が発生し、配列要素ｂ［ｉ］、ｃ［ｉ］、ｂ［ｉ＋１］、ｃ［ｉ＋１］、ｂ［ｉ＋２］、ｃ［ｉ＋２］・・・の順でアクセスしていくと、継続的にキャッシュミスが発生する。これはスラッシングと呼ばれる現象であり、スラッシングが発生するとプログラム実行が大幅に遅くなる。
【０００７】
このようなスラッシングを回避する方法としては、カラーリング、Victimキャッシュ、実行時データ移動といった方法が知られている。カラーリングは、プログラム実行前にスラッシングを回避する方法であり、ライン競合が発生しないようにデータの配置をソース上で修正したり、コンパイラがプログラムをコンパイルするときにライン競合が発生しないようにデータの配置を調整することによってスラッシングを回避している（例えば、特許文献１参照。）。
【０００８】
Victimキャッシュは、プログラム実行時にハードウェアでスラッシングを回避する方法である。図９は、Victimキャッシュを説明するための説明図である。Victimキャッシュは、キャッシュメモリより容量は少ないが、連想度(associativity)は高いキャッシュメモリで(例えばfull associative)、キャッシュメモリから追い出されるデータを一時的に記録する。Victimキャッシュがあると、スラッシングが発生した場合でもVictimキャッシュからデータを供給できるので、メモリからデータを読み出す場合と比べてスラッシングによるペナルティ(データ待ち時間)を少なくすることができる（例えば、特許文献２参照。）。
【０００９】
実行時データ移動もプログラム実行時にハードウェアでスラッシングを回避する方法である。この方法では、スラッシングを検出したら、スラッシングの発生原因となったデータを、競合の発生しない別領域に移動(コピー)する。これにより、以後のスラッシング発生を抑止することができる（例えば、特許文献３参照。）。
【００１０】
【特許文献１】特開２０００−１５５６８９号公報
【特許文献２】特開２００１−２４９８４６号公報
【特許文献３】特開２００２−１１６９５５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、カラーリングは、プログラムのソースがあることが前提となっており、プログラムのソースが無い場合には効果を得ることができないという問題がある。また、仮にソースがあったとしても、プログラム実行前に、ライン競合が発生する場所を解析するのは容易ではない。
【００１２】
また、Victimキャッシュは、スラッシングによるペナルティ(データ待ち時間)を軽減するが、Victimキャッシュからのデータ供給はキャッシュメモリからのそれと比べて時間がかかる。また、一般的に、キャッシュメモリに記録されているデータのうち更新されていないデータ(以後、Clean データと呼ぶ)をキャッシュメモリから追い出す場合、Cleanデータはメモリに書き戻す必要が無いのでキャッシュメモリはCleanデータを外部に出す必要がない。しかし、Victimキャッシュでスラッシングを回避するには、キャッシュメモリから追い出されるデータを全てVictimキャッシュに渡す必要がある。従って、キャッシュメモリの制御方法を変更しなくてはならず、キャッシュメモリからVictimキャッシュへの帯域も確保しなくてはならない。すなわち、Victimキャッシュには、追加ハードウェア量が多く、高コストであるという問題がある。
【００１３】
また、実行時データ移動は、移動先の領域でスラッシングが発生しないようにするには、移動先の領域にライン競合の発生しないアドレスを割り当てる必要がある。一般的に、これをハードウェアで実現するのは容易では無い。また、ソフトウェア(ＯＳ)で実現する場合には、ＯＳの領域確保処理を大幅に修正する必要があり、ＯＳの修正コストが高くなるという問題がある。
【００１４】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、ソースプログラムが無い場合にも低コストでスラッシングを回避し、キャッシュメモリの利用率を向上することができるプロセッサ装置およびスラッシング回避方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上述した課題を解決し、目的を達成するため、請求項１の発明に係るプロセッサ装置は、アドレス変換機構を用いて論理アドレスを物理アドレスに変換するとともにキャッシュメモリを用いるプロセッサ装置であって、キャッシュメモリに発生したスラッシングを検出するスラッシング検出手段と、前記スラッシング検出手段によりスラッシングが検出されたキャッシュラインを使用するデータに対応するアドレス変換情報に付加された制御情報を変更する制御情報変更手段と、論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換では不変であるアドレスビット部分に対して前記制御情報を用いて変更を加えるアドレス変換機構と、前記制御情報変更手段により制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動するデータ移動手段と、を備えたことを特徴とする。
【００１６】
この請求項１の発明によれば、キャッシュメモリに発生したスラッシングを検出し、スラッシングを検出したラインを使用するデータに対応するアドレス変換情報に付加された制御情報を変更し、論理アドレスから物理アドレスへ変換する際に、アドレス変換機構が通常のアドレス変換では不変であるアドレスビット部分に対して制御情報を用いて変更を加え、制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動するよう構成したので、ソースプログラムが無い場合にも低コストでスラッシングを回避することができる。
【００１７】
また、請求項２の発明に係るプロセッサ装置は、請求項１の発明において、前記制御情報は１ビットの情報であり、前記制御情報変更手段は、１ビットの制御情報を変更することを特徴とする。
【００１８】
この請求項２の発明によれば、１ビットの制御情報を変更するよう構成したので、ハードウェアの追加を少なくすることができる。
【００１９】
また、請求項３の発明に係るプロセッサ装置は、請求項１の発明において、前記制御情報は２ビットの情報であり、前記制御情報変更手段は、２ビットの制御情報を変更することを特徴とする。
【００２０】
この請求項３の発明によれば、２ビットの制御情報を変更するよう構成したので、ハードウェアの追加を少なくすることができる。
【００２１】
また、請求項４の発明に係るプロセッサ装置は、請求項１、２または３の発明において、前記アドレス変換機構は、論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換では不変であるアドレスビット部分に対して該論理アドレスに対応する制御情報との排他的論理演算を行うことを特徴とする。
【００２２】
この請求項４の発明によれば、論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換では不変であるアドレスビット部分に対して、対応する制御情報との排他的論理演算を行うよう構成したので、簡単な演算でライン番号を変更することができる。
【００２３】
また、請求項５の発明に係るプロセッサ装置は、請求項１、２または３の発明において、前記アドレス変換機構は、論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換では不変であるアドレスビット部分に対して該論理アドレスに対応する制御情報との加減算演算を行うことを特徴とする。
【００２４】
この請求項５の発明によれば、論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換では不変であるアドレスビット部分に対して、対応する制御情報との加減算演算を行うよう構成したので、簡単な演算でライン番号を変更することができる。
【００２５】
また、請求項６の発明に係るプロセッサ装置は、請求項１〜５のいずれか一つに記載の発明において、前記スラッシング検出手段は、キャッシュミスが発生した物理アドレスが順次格納される履歴キューにある同一物理アドレスの個数に基づいてスラッシングの発生を検出することを特徴とする。
【００２６】
この請求項６の発明によれば、キャッシュミスが発生した物理アドレスが順次格納される履歴キューにある同一物理アドレスの個数に基づいてスラッシングの発生を検出するよう構成したので、少ないハードウェアでスラッシングを検出することができる。更に、スラッシング発生時には、キャッシュライン単位で同一とみなせる物理アドレスに対するキャッシュミスが時間近接で多数発生する特徴があるので、履歴キューは小容量で十分であり、ハードウェア量を少なく済ませることができる。
【００２７】
また、請求項７の発明に係るプロセッサ装置は、請求項１〜５のいずれか一つに記載の発明において、前記スラッシング検出手段は、キャッシュミスが発生した物理アドレスを記録するとともに、該物理アドレスのキャッシュミス発生回数をカウントする履歴バッファの該カウンタの値に基づいてスラッシングの発生を検出することを特徴とする。
【００２８】
この請求項７の発明によれば、キャッシュミスが発生した物理アドレスを記録するとともに、該物理アドレスのキャッシュミス発生回数をカウントする履歴バッファのカウンタの値に基づいてスラッシングの発生を検出するよう構成したので、少ないハードウェアでスラッシングを検出することができる。更に、スラッシング発生時には、キャッシュライン単位で同一とみなせる物理アドレスに対するキャッシュミスが時間近接で多数発生する特徴があるので、履歴キューは小容量で十分であり、ハードウェア量を少なく済ませることができる。
【００２９】
また、請求項８の発明に係るプロセッサ装置は、請求項１〜７のいずれか一つに記載の発明において、前記スラッシング検出手段は、スラッシングを検出するとプロセッサに割込みを通知し、前記制御情報変更手段は、割込みを通知されるとスラッシングが検出されたデータに対応するアドレス変換情報に付加された制御情報を変更する処理を実行するプロセッサであることを特徴とする。
【００３０】
この請求項８の発明によれば、スラッシングを検出するとプロセッサに割込みを通知し、プロセッサは割込みを通知されるとスラッシングが検出されたデータに対応するアドレス変換情報に付加された制御情報を変更する処理を実行するよう構成したので、ソフトウェアによって制御情報を変更することができる。
【００３１】
また、請求項９の発明に係るプロセッサ装置は、請求項１〜８のいずれか一つに記載の発明において、前記スラッシング検出手段は、スラッシングを検出するとプロセッサに割込みを通知し、前記データ移動手段は、割込みを通知されると前記制御情報変更手段により制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動する処理を実行するプロセッサであることを特徴とする。
【００３２】
この請求項９の発明によれば、スラッシングを検出するとプロセッサに割込みを通知し、プロセッサは割込みを通知されると、制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動する処理を実行するよう構成したので、ソフトウェアによってデータを移動することができる。
【００３３】
また、請求項１０の発明に係るスラッシング回避方法は、アドレス変換機構を用いて論理アドレスを物理アドレスに変換するとともにキャッシュメモリを用いるプロセッサ装置によるスラッシング回避方法であって、キャッシュメモリに発生したスラッシングを検出するスラッシング検出工程と、前記スラッシング検出工程によりスラッシングが検出されたキャッシュラインを使用するデータに対応するアドレス変換情報に付加された制御情報を変更する制御情報変更工程と、論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換では不変であるアドレスビット部分に対して制御情報を用いてアドレス変換機構が変更を加えるアドレス変換工程と、前記制御情報変更工程により制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動するデータ移動工程と、を含んだことを特徴とする。
【００３４】
この請求項１０の発明によれば、キャッシュメモリに発生したスラッシングを検出し、スラッシングを検出したキャッシュラインを使用するデータに対応するアドレス変換情報に付加された制御情報を変更し、論理アドレスから物理アドレスへ変換する際に、アドレス変換機構が通常のアドレス変換では不変であるアドレスビット部分に対して制御情報を用いて変更を加え、制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動するよう構成したので、ソースプログラムが無い場合にも低コストでスラッシングを回避することができる。
【発明の効果】
【００３５】
請求項１および１０の発明によれば、スラッシングを回避するので、キャッシュメモリの利用率を向上することができるという効果を奏する。
【００３６】
また、請求項２および３の発明によれば、ハードウェアの追加が少ないので、低コストでスラッシングを回避することができるという効果を奏する。
【００３７】
また、請求項４および５の発明によれば、通常のアドレス変換に対して追加される演算は簡単なものであり、ハードウェアの追加が少なく、低コストでスラッシングを回避することができるという効果を奏する。
【００３８】
また、請求項６および７の発明によれば、少ないハードウェアでスラッシングを検出するので、低コストでスラッシングを検出することができるという効果を奏する。
【００３９】
また、請求項８の発明によれば、ソフトウェアによって制御情報を変更するので、ハードウェアの追加をさらに少なくすることができるという効果を奏する。
【００４０】
また、請求項９の発明によれば、ソフトウェアによってデータを移動するので、ハードウェアの追加をさらに少なくすることができるという効果を奏する。
【発明を実施するための最良の形態】
【００４１】
以下に添付図面を参照して、この発明に係るプロセッサ装置およびスラッシング回避方法の好適な実施例を詳細に説明する。なお、本実施例では、キャッシュ階層やアドレス変換機構が一段の場合について説明するが、多階層のキャッシュメモリや多段のアドレス変換機構を備えたプロセッサ装置にも同様に適用することができる。
【実施例】
【００４２】
まず、本実施例に係るプロセッサ装置がスラッシング回避のために行うアドレス変換について説明する。図１−１は、通常のアドレス変換を説明するための説明図であり、図１−２は、本実施例に係るアドレス変換を説明するための説明図である。
【００４３】
図１−１に示すように、通常のアドレス変換では、例えば、３２ビットの論理アドレスの上位２０ビットがページテーブルを使って物理アドレスの上位２０ビットに置換えられ、論理アドレスの下位１２ビットはそのまま物理アドレスの下位１２ビットとして使われる。
【００４４】
これに対して、本実施例に係るアドレス変換では、図１−２に示すように、ページテーブルに論理アドレスと物理アドレスの各組み合わせに対応させて１ビットの制御フラグを制御情報として設け、アドレス変換機構は、論理アドレスの上位２０ビットをページテーブルを使って物理アドレスの上位２０ビットに置換えるとともに、論理アドレスの下位１２ビットのうちビット１１と制御フラグの排他的論理和（ｘｏｒ）をとって物理アドレスのビット１１とする。
【００４５】
したがって、本実施例に係るアドレス変換では、制御フラグの値を変えることによって、物理アドレスのビット１１を変更してキャッシュライン番号を変更することができる。すなわち、本実施例に係るアドレス変換では、制御フラグによりキャッシュライン番号を制御する制御情報として機能する。
【００４６】
例えば、図８−２に示したようなライン競合が発生している場合、配列要素ｃ［ｉ］の属するページの制御フラグを「０」から「１」に変更することによって、図１−３に示すように、ｃ［ｉ］のライン番号を「８１ｈ」から「８９ｈ」に変更することができる。この結果、ｂ［ｉ］とｃ［ｉ］との間で発生していたライン競合を無くし、スラッシングを回避することができる。
【００４７】
このように、本実施例に係るプロセッサ装置では、ページテーブルの各エントリに１ビットの制御フラグを設け、アドレス変換機構が論理アドレスから物理アドレスに変換する際に、論理アドレスのビット１１と制御フラグの排他的論理和をとって物理アドレスのビット１１とする。したがって、スラッシングが発生した場合に、制御フラグを反転することによってキャッシュライン番号を変更することができ、簡単にスラッシングを回避することができる。
【００４８】
次に、本実施例に係るプロセッサ装置の構成について説明する。図２は、本実施例に係るプロセッサ装置の構成を示す機能ブロック図である。同図に示すように、このプロセッサ装置１００は、プロセッサ１１０と、キャッシュメモリ１２０と、メインメモリ１３０と、履歴バッファ１４０と、ページ管理機構１５０と、スラッシング検出器１６０と、データ移動部１７０とを有する。
【００４９】
プロセッサ１１０は、メインメモリ１３０に格納された命令を取り出して実行する処理装置であり、命令の実行に必要なデータがあればメインメモリ１３０から取り出し、命令実行の結果、データを記憶する必要がある場合にはメインメモリ１３０に格納する。
【００５０】
キャッシュメモリ１２０は、メインメモリ１３０が記憶する命令やデータを一時的に記憶するメモリであり、メインメモリ１３０と比較して高速にアクセスすることが可能なメモリである。プロセッサ１１０は、命令やデータがキャッシュメモリ１２０に格納されている場合には、命令やデータの読み出しや書き込みを高速に行うことができる。
【００５１】
履歴バッファ１４０は、キャッシュミスが発生した物理アドレスを記憶するキューであり、キャッシュミスが発生した順に所定の個数だけ物理アドレスを記憶する。
【００５２】
ページ管理機構１５０は、ページテーブル１５１を用いて論理アドレスから物理アドレスへの変換を行う変換部である。ページテーブル１５１は、論理アドレスと物理アドレスとの対応を示すアドレス変換情報を記憶するテーブルである。
【００５３】
また、このページテーブル１５１は、エントリごとに制御フラグ１５２を備え、図１−２に示したように、ページ管理機構１５０は、論理アドレスから物理アドレスに変換する際に、論理アドレスのビット１１と制御フラグ１５２の排他的論理和をとって物理アドレスのビット１１とする。
【００５４】
このように、ページ管理機構１５０が、論理アドレスから物理アドレスに変換する際に、論理アドレスのビット１１と制御フラグ１５２の排他的論理和をとって物理アドレスのビット１１とすることによって、制御フラグ１５２を用いてキャッシュメモリ１２０のライン番号を変更することができる。
【００５５】
なお、ここでは、制御フラグ１５２として１ビットの制御ビットを用い、ページ管理機構１５０は、論理アドレスのビット１１と制御ビットの排他的論理和をとって物理アドレスのビット１１としているが、他の方法でアドレス変換を行うこともできる。図３は、論理アドレスのビット１１と制御ビットの排他的論理和をとる場合も含めて、いくつかのアドレス変換方法を示す図である。
【００５６】
図３および図４に示すように、制御フラグとしては、２ビットを用い、論理アドレスのビット１１とビット１０（論理アドレス［１１：１０］）と制御フラグ（制御フラグ［１：０］）との排他的論理和をとって物理アドレスのビット１１とビット１０（物理アドレス［１１：１０］）とすることもできる。
【００５７】
また、図３および図５に示すように、排他的論理和の代わりに、論理アドレスのビット１１とビット１０に制御フラグを加算して物理アドレスのビット１１とビット１０とすることもできる。このように、制御フラグを用いたアドレス変換としては、論理アドレスと制御フラグとの演算や制御フラグのビット数など様々な方式を用いることができる。
【００５８】
スラッシング検出器１６０は、履歴バッファ１４０を監視してスラッシングを検出する処理部であり、具体的には、履歴バッファ１４０に格納された物理アドレスから同一の物理アドレスの個数をカウントし、所定の個数以上になるとスラッシングとして検出する。
【００５９】
なお、本実施例では、履歴バッファ１４０に物理アドレスだけを格納してスラッシング検出器１６０が履歴バッファ１４０に格納された物理アドレスから同一の物理アドレスの個数をカウントすることとしたが、履歴バッファのエントリ毎にカウンタを設け、各エントリに記録された物理アドレスに対するキャッシュミスの発生回数を該当カウンタにてカウントし、スラッシング検出器１６０は、カウンタ値が所定値以上になるとスラッシングとして検出する方法を用いることもできる。
【００６０】
また、このスラッシング検出器１６０は、スラッシングを検出すると、ページ管理機構１５０が有するページテーブル１５１のスラッシングが発生したエントリの制御フラグ１５２を反転する。
【００６１】
このように、スラッシングが発生すると、スラッシング検出器１６０が、ページテーブル１５１のスラッシングが発生したエントリの制御フラグ１５２を反転し、ページ管理機構１５０が、論理アドレスから物理アドレスに変換する際に、論理アドレスのビット１１と制御フラグ１５２の排他的論理和をとって物理アドレスのビット１１とすることによって、スラッシングが発生したデータの物理アドレスを変更し、簡単にスラッシングを回避することができる。
【００６２】
また、スラッシング検出器１６０は、スラッシングを検出すると、制御フラグ１５２によって物理アドレスが変更されるデータを、変更前の物理アドレスから変更後の物理アドレスに移動するようにデータ移動部１７０に対して指示を行う。
【００６３】
データ移動部１７０は、スラッシング検出器１６０の指示に基づいて、スラッシングを回避するために物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動する処理部である。
【００６４】
このデータ移動部１７０が、スラッシングを回避するために物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動することによって、物理アドレスの変更にデータを対応させることができる。
【００６５】
上述してきたように、本実施例では、キャッシュミスが発生した物理アドレスを履歴バッファ１４０に記録し、スラッシング検出器１６０が履歴バッファ１４０を用いてスラッシングを検出してページテーブル１５１の制御フラグ１５２を反転し、論理アドレスから物理アドレスへ変換する際に、ページ管理機構１５０が、反転された制御フラグ１５２を用いることによって物理アドレスを変更し、データ移動部１７０が変更前の物理アドレスから変更後の物理アドレスにデータを移動することとしたので、以後、ライン競合によるキャッシュミスを減らすことができる。つまり、スラッシングを回避することができる。
【００６６】
なお、本実施例では、スラッシング検出器１６０がページテーブル１５１の制御フラグ１５２を反転することとしたが、制御フラグ１５２の反転はソフトウェアで行うこともできる。図６は、制御フラグ１５２の反転をソフトウェアで行うプロセッサ装置の構成を示す機能ブロック図である。なお、ここでは説明の便宜上、図２に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
【００６７】
図６に示すように、このプロセッサ装置２００は、図２に示したプロセッサ装置１００と比較して、スラッシング検出器１６０の代わりにスラッシング検出器２６０を有する。スラッシング検出器２６０は、スラッシング検出器１６０と同様に、履歴バッファ１４０を用いてスラッシングを検出するが、スラッシングを検出するとページテーブル１５１の制御フラグ１５２を反転する代わりに、プロセッサ１１０に割込みを発生させる。
【００６８】
そして、プロセッサ１１０は、割込みが発生すると割込み処理でページテーブル１５１の制御フラグ１５２を反転する。このように、制御フラグ１５２の反転は、割込み処理プログラムによっても行うことができ、スラッシング検出器が制御フラグ１５２を反転する場合と比較して、スラッシング検出器をより簡単なものとすることができる。
【００６９】
また、本実施例では、制御フラグ１５２の反転によってページ管理機構１５０による変換後の物理アドレスが変更されるデータをスラッシング検出器の指示に基づいてデータ移動部１７０が変更前の物理アドレスから変更後の物理アドレスに移動することとしたが、かかるデータの移動もソフトウェアによって実行することもできる。すなわち、スラッシング検出器によって発生させられた割込みに対する処理として、プロセッサ１１０がデータを移動するようにすることもできる。
【００７０】
（付記１）アドレス変換機構を用いて論理アドレスを物理アドレスに変換するとともにキャッシュメモリを用いるプロセッサ装置であって、
キャッシュメモリに発生したスラッシングを検出するスラッシング検出手段と、
前記スラッシング検出手段によりスラッシングが検出されたキャッシュラインを使用するデータに対応するアドレス変換情報に付加された制御情報を変更する制御情報変更手段と、
論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換では不変であるアドレスビット部分に対して前記制御情報を用いて変更を加えるアドレス変換機構と、
前記制御情報変更手段により制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動するデータ移動手段と、
を備えたことを特徴とするプロセッサ装置。
【００７１】
（付記２）前記制御情報は１ビットの情報であり、
前記制御情報変更手段は、１ビットの制御情報を変更することを特徴とする付記１に記載のプロセッサ装置。
【００７２】
（付記３）前記制御情報は２ビットの情報であり、
前記制御情報変更手段は、２ビットの制御情報を変更することを特徴とする付記１に記載のプロセッサ装置。
【００７３】
（付記４）前記アドレス変換機構は、論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換に加え、通常のアドレス変換では不変であるアドレスビットの特定部分に対して制御情報との排他的論理演算を行うことを特徴とする付記１、２または３に記載のプロセッサ装置。
【００７４】
（付記５）前記アドレス変換機構は、論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換に加え、通常のアドレス変換では不変であるアドレスビットの特定部分に対して制御情報との加減算演算を行うことを特徴とする付記１、２または３に記載のプロセッサ装置。
【００７５】
（付記６）前記スラッシング検出手段は、キャッシュミスが発生した物理アドレスが順次格納される履歴キューにある同一物理アドレスの個数に基づいてスラッシングの発生を検出することを特徴とする付記１〜５のいずれか一つに記載のプロセッサ装置。
【００７６】
（付記７）前記スラッシング検出手段は、キャッシュミスが発生した物理アドレスを記録するとともに、該物理アドレスでのキャッシュミス発生回数をカウントする履歴バッファの該カウンタの値に基づいてスラッシングの発生を検出することを特徴とする付記１〜５のいずれか一つに記載のプロセッサ装置。
【００７７】
（付記８）前記スラッシング検出手段は、スラッシングを検出するとプロセッサに割込みを通知し、
前記制御情報変更手段は、割込みを通知されるとスラッシングが検出されたデータに対応するアドレス変換情報に付加された制御情報を変更する処理を実行するプロセッサであることを特徴とする付記１〜７のいずれか一つに記載のプロセッサ装置。
【００７８】
（付記９）前記スラッシング検出手段は、スラッシングを検出するとプロセッサに割込みを通知し、
前記データ移動手段は、割込みを通知されると前記制御情報変更手段により制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動する処理を実行するプロセッサであることを特徴とする付記１〜８のいずれか一つに記載のプロセッサ装置。
【００７９】
（付記１０）アドレス変換機構を用いて論理アドレスを物理アドレスに変換するとともにキャッシュメモリを用いるプロセッサ装置によるスラッシング回避方法であって、
キャッシュメモリに発生したスラッシングを検出するスラッシング検出工程と、
前記スラッシング検出工程によりスラッシングが検出されたキャッシュラインを使用するデータに対応するアドレス変換情報に付加された制御情報を変更する制御情報変更工程と、
論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換では不変であるアドレスビット部分に対して制御情報を用いてアドレス変換機構が変更を加えるアドレス変換工程と、
前記制御情報変更工程により制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動するデータ移動工程と、
を含んだことを特徴とするスラッシング回避方法。
【００８０】
（付記１１）前記制御情報は１ビットの情報であり、
前記制御情報変更工程は、１ビットの制御情報を変更することを特徴とする付記１０に記載のスラッシング回避方法。
【００８１】
（付記１２）前記制御情報は２ビットの情報であり、
前記制御情報変更工程は、２ビットの制御情報を変更することを特徴とする付記１０に記載のスラッシング回避方法。
【００８２】
（付記１３）前記アドレス変換工程は、論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換に加え、通常のアドレス変換では不変であるアドレスビットの特定部分に対して、対応する制御情報との排他的論理演算を行うことを特徴とする付記１０、１１または１２に記載のスラッシング回避方法。
【００８３】
（付記１４）前記アドレス変換工程は、論理アドレスから物理アドレスへ変換する際に、通常のアドレス変換に加え、通常のアドレス変換では不変であるアドレスビットの特定部分に対して、対応する制御情報との加減算演算を行うことを特徴とする付記１０、１１または１２に記載のスラッシング回避方法。
【００８４】
（付記１５）前記スラッシング検出工程は、キャッシュミスが発生した物理アドレスが順次格納される履歴キューにある同一物理アドレスの個数に基づいてスラッシングの発生を検出することを特徴とする付記１０〜１４のいずれか一つに記載のスラッシング回避方法。
【００８５】
（付記１６）前記スラッシング検出工程は、キャッシュミスが発生した物理アドレスを記録するとともに、該物理アドレスでのキャッシュミス発生回数をカウントする履歴バッファの該カウンタの値に基づいてスラッシングの発生を検出することを特徴とする付記１０〜１４のいずれか一つに記載のスラッシング回避方法。
【００８６】
（付記１７）前記スラッシング検出工程は、スラッシングを検出するとプロセッサに割込みを通知し、
前記制御情報変更工程は、割込みを通知されるとスラッシングが検出されたデータに対応するアドレス変換情報に付加された制御情報を変更する処理をプロセッサが実行することを特徴とする付記１０〜１６のいずれか一つに記載のスラッシング回避方法。
【００８７】
（付記１８）前記スラッシング検出工程は、スラッシングを検出するとプロセッサに割込みを通知し、
前記データ移動工程は、割込みを通知されると前記制御情報変更工程により制御情報が変更されることによって物理アドレスが変更されたデータを変更前の物理アドレスから変更後の物理アドレスに移動する処理をプロセッサが実行することを特徴とする付記１０〜１７のいずれか一つに記載のスラッシング回避方法。
【産業上の利用可能性】
【００８８】
以上のように、本発明に係るプロセッサ装置およびスラッシング回避方法は、繰り返し処理などでスラッシングが頻繁に発生する場合に有用であり、特に、ソースプログラムが無い場合でカラーリングが行えない場合に適している。
【図面の簡単な説明】
【００８９】
【図１−１】通常のアドレス変換を説明するための説明図である。
【図１−２】本実施例に係るアドレス変換を説明するための説明図である。
【図１−３】本実施例に係るアドレス変換によるスラッシング回避例を示す図である。
【図２】本実施例に係るプロセッサ装置の構成を示す機能ブロック図である。
【図３】アドレス変換方法を示す図である。
【図４】２ビット反転によるアドレス変換を示す図である。
【図５】２ビット加算によるアドレス変換を示す図である。
【図６】制御フラグの反転をソフトウェアで行うプロセッサ装置の構成を示す機能ブロック図である。
【図７】キャッシュメモリの構造を示す図である。
【図８−１】ライン競合が発生しない場合を示す図である。
【図８−２】ライン競合が発生する場合を示す図である。
【図９】Victimキャッシュを説明するための説明図である。
【符号の説明】
【００９０】
１００，２００    プロセッサ装置
１１０    プロセッサ
１２０    キャッシュメモリ
１３０    メインメモリ
１４０    履歴バッファ
１５０    ページ管理機構
１５１    ページテーブル
１５２    制御フラグ
１６０，２６０    スラッシング検出器
１７０    データ移動部
【図１−１】
2007272691.tif 000003
【図１−２】
2007272691.tif 000004
【図１−３】
2007272691.tif 000005
【図２】
2007272691.tif 000006
【図３】
2007272691.tif 000007
【図４】
2007272691.tif 000008
【図５】
2007272691.tif 000009
【図６】
2007272691.tif 000010
【図７】
2007272691.tif 000011
【図８−１】
2007272691.tif 000012
【図８−２】
2007272691.tif 000013
【図９】
2007272691.tif 000014