(57)【要約】【課題】複数マスタを有するシステムにおいて、バストラフィックを均一にし、局所的なバストラフィックの増大を防ぎ、バス帯域を有効に活用する。【解決手段】マルチウェイセットアソシアティブ方式のキャッシュメモリ２０と、キャッシュメモリ２０が接続されているバスの負荷状態を検出しバス負荷情報Ｄ２を出力するバス負荷検出部３０と、バス負荷検出部３０によるバス負荷情報Ｄ２に応じてキャッシュメモリ２０のリプレース方法を変更するリプレースウェイ制御部４０とを備える。バス負荷検出部３０は、バスコントローラＢＣからのバスリクエスト保留数Ｎ１に対応した情報を保持するバス負荷情報保持部３１と、バス負荷の判定条件を設定するバス負荷判定条件設定部３２と、バス負荷情報保持部の保持値とバス負荷判定条件設定部の条件設定値とを比較し、その比較結果をバス負荷情報として出力するコンパレータ３３とから構成される。【選択図】図１
2006119796.tif 000002
【特許請求の範囲】
【請求項１】
マルチウェイセットアソシアティブ方式のキャッシュメモリと、
前記キャッシュメモリの被キャッシュデータが格納される記録装置が接続されているバスの状態に対応するバス負荷情報を出力するバス負荷検出手段と、
前記バス負荷検出手段による前記バス負荷情報に応じて前記キャッシュメモリのリプレース方法を制御するリプレースウェイ制御手段と
を備えたキャッシュメモリシステム。
【請求項２】
前記バス負荷検出手段は、
バスコントローラからのバスリクエスト保留数に対応した情報を保持するバス負荷情報保持部と、
バス負荷の判定条件を設定するバス負荷判定条件設定部と、
前記バス負荷情報保持部に保持された情報と前記バス負荷判定条件設定部の条件設定値とを比較し、その比較結果を前記バス負荷情報として出力するコンパレータとを有し、
前記バス負荷情報保持部の保持値が前記バス負荷判定条件設定部の条件設定値より大きいかまたは同等の場合は前記バス負荷情報として有効を示す信号を出力し、小さい場合は前記バス負荷情報として無効を示す信号を出力する請求項１に記載のキャッシュメモリシステム。
【請求項３】
前記バス負荷検出手段は、外部から入力されるバス負荷有無情報を設定可能なバス負荷有無情報設定部を有し、
前記バス負荷有無情報設定部に設定された前記バス負荷有無情報が有効を示す場合は前記バス負荷情報として有効を示す信号を出力し、前記バス負荷有無情報が無効を示す場合は前記バス負荷情報として無効を示す信号を出力する請求項１に記載のキャッシュメモリシステム。
【請求項４】
前記バス負荷有無情報は、プログラム上に記載されたバス負荷の有効または無効を示す情報により指定可能である請求項３に記載のキャッシュメモリシステム。
【請求項５】
前記リプレースウェイ制御手段は、前記バス負荷検出手段による前記バス負荷情報が有効を示す場合には排他不一致でないウェイを優先的にリプレースするよう制御し、前記バス負荷情報が無効を示す場合には排他不一致のウェイを優先的にリプレースするよう制御する請求項１から請求項４までのいずれかに記載のキャッシュメモリシステム。
【請求項６】
前記リプレースウェイ制御手段は、前記キャッシュメモリにおいて排他不一致を示すダーティビットが１キャッシュメモリラインに複数存在する場合で、前記バス負荷検出手段による前記バス負荷情報が有効を示すときにはダーティビットの有効数が少ないウェイを優先的にリプレースするよう制御し、前記バス負荷検出手段が無効を示すときにはダーティビットの有効数が多いウェイを優先的にリプレースするよう制御する請求項１から請求項４までのいずれかに記載のキャッシュメモリシステム。
【請求項７】
前記リプレースウェイ制御手段は、
前記キャッシュメモリにおいてバースト転送の実行が可能な場合に、排他不一致を示すダーティビットが１キャッシュメモリラインに複数存在し、前記ダーティビットの有効数が同数のときには前記キャッシュメモリのバースト転送の設定と、有効なダーティビットの分布に応じて、リプレースするウェイを変更する請求項１から請求項４までのいずれかに記載のキャッシュメモリシステム。
【請求項８】
入力されたデータを処理して、動画データとして出力する動画処理装置であって、
請求項１から請求項７までのいずれか１項に記載のキャッシュメモリシステムと、
前記キャッシュメモリに接続され、前記キャッシュメモリにアクセスするコントローラと、
前記コントローラで処理するための命令またはデータを記憶する記録装置と、
前記コントローラと前記記録装置間で行われる命令またはデータの転送に用いられるバスと、
前記バスに接続され、前記バスの負荷に応じた情報を前記キャッシュメモリシステムに出力するバスコントローラと、
を備えたことを特徴とする動画処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリシステムに関し、特にマルチウェイセットアソシアティブ方式でライトバックを採用したリプレースの技術に関する。また、本発明は、キャッシュメモリシステムを備えた動画処理装置に関する。
【背景技術】
【０００２】
キャッシュメモリシステムにおいて、キャッシュミスが発生し、どのデータブロックをリプレースするかを決定するリプレース方法には、
（１）アクセス状況による方式
（２）キャッシュメモリのステートによる固定優先度方式
がある。（１）のアクセス状況による方式は、アクセスされたのが最も古いデータブロックとするＬＲＵ（Least Recently Used）方式、入れ替えたのが最も古いデータブロックとするＦＩＦＯ（First In First Out）方式などである。（２）の固定優先度方式は、排他一致のデータブロックを優先的にリプレースする方式である。
【０００３】
さらにバストラフィックを改善したリプレース方式として、上記（１）、（２）を切り替えながら用いるものがある（特許文献１参照）。特許文献１に開示されたリプレース方法は、キャッシュメモリの排他不一致のエントリ数をカウントするカウンタをもち、そのカウント値に応じて、キャッシュメモリのリプレース方法を逐次変更するものである。カウンタ値よりもキャッシュメモリの排他不一致のエントリ数が少なければ、上記（２）の方式を用い、カウンタ値よりもキャッシュメモリの排他不一致のエントリ数が多ければ上記（１）の方式を用いる。これにより、なるべくキャッシュメモリの排他不一致のエントリをリプレース対象としないことでライトバック回数を減らし、上記（１）、（２）の方式よりもバストラフィックを改善することができる。
【０００４】
なお、ライトバックとは、リプレースするエントリが排他不一致の場合に外部メモリにデータを書き戻すことであり、コピーバックともいう。
【特許文献１】特開平１１―３９２１８号公報（第３−４頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来技術では、上記（１）、（２）の方式を切り替えて用いることでライトバック回数を減らすことは可能であるが、バス負荷についての考慮がされていない。そのため、複数のマスタが存在するシステムにおいて、他のマスタがバスを使用していてバス負荷が大きくなっている場合でもライトバックを伴うリプレース処理を行う可能性があり、局所的にバストラフィックが増大することがある。ＤＳＰ（Digital Signal Processor）等のリアルタイム処理を必要とするプロセッサの場合、バストラフィックが致命的な処理遅延の原因になることがある。また、バス幅はバストラフィックが最悪の場合を想定して設定するため、余分なバス幅を設定する必要がある。
【０００６】
本発明は、バス負荷も考慮してバストラフィックを均一化するキャッシュメモリシステムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明によるキャッシュメモリシステムは、
マルチウェイセットアソシアティブ方式のキャッシュメモリと、
前記キャッシュメモリの被キャッシュデータが格納される記録装置が接続されているバスの状態に対応するバス負荷情報を出力するバス負荷検出手段と、
前記バス負荷検出手段による前記バス負荷情報に応じて前記キャッシュメモリのリプレース方法を制御するリプレースウェイ制御手段とを備えた構成とされている。
【０００８】
この構成によれば、バス負荷に応じてリプレース方法を変更するものであり、バストラフィックを均一化することができる。例えば、複数のマスタが存在するシステムにおいて、他のマスタがバスを使用していてバス負荷がある場合は、バス負荷が小さくてライトバックを伴わないリプレース処理を選択し、他のマスタがバスを使用してなくてバス負荷がない場合は、バス負荷が大きくてライトバックを伴うリプレース処理を選択する。このようにして、バストラフィックを均一化する。
【０００９】
上記の構成において、前記バス負荷検出手段については、その１つの態様として、
バスコントローラからのバスリクエスト保留数に対応した情報を保持するバス負荷情報保持部と、
バス負荷の判定条件を設定するバス負荷判定条件設定部と、
前記バス負荷情報保持部に保持された情報と前記バス負荷判定条件設定部の条件設定値とを比較し、その比較結果を前記バス負荷情報として出力するコンパレータとを有し、
前記バス負荷情報保持部の保持値が前記バス負荷判定条件設定部の条件設定値より大きいかまたは同等の場合は前記バス負荷情報として有効を示す信号を出力し、小さい場合は前記バス負荷情報として無効を示す信号を出力するように構成されたものは好ましい。
【００１０】
この構成によれば、バスコントローラがバス負荷検出手段にバスリクエスト保留数を通知するだけでバス負荷を検出することが可能になる。
【００１１】
また、上記の構成において、前記バス負荷検出手段については、その別の態様として、外部から入力されるバス負荷有無情報を設定可能なバス負荷有無情報設定部を有し、前記バス負荷有無情報設定部に設定された前記バス負荷有無情報が有効を示す場合は前記バス負荷情報として有効を示す信号を出力し、前記バス負荷有無情報が無効を示す場合は前記バス負荷情報として無効を示す信号を出力するように構成されたものは好ましい。前記バス負荷有無情報については、プログラム上に記載されたバス負荷の有効または無効を示す情報により指定可能なものが好ましい。
【００１２】
この構成によれば、プログラムを記述するユーザがバス負荷有無情報を入力することにより、最適なタイミングでリプレース方法を変更することが可能になり、バスの有効利用が可能になる。
【００１３】
また、上記の構成において、前記リプレースウェイ制御手段については、その１つの態様として、前記バス負荷検出手段による前記バス負荷情報が有効を示す場合には排他不一致でないウェイを優先的にリプレースするよう制御し、前記バス負荷情報が無効を示す場合には排他不一致のウェイを優先的にリプレースするよう制御するように構成されたものは好ましい。
【００１４】
この構成によれば、キャッシュリプレースの際、バス負荷がある場合は、バス負荷が小さくてライトバックを伴わないリプレースウェイを選択することができる。また、バスに負荷がない場合は、バス負荷が大きくてライトバックを伴うリプレース処理を優先的に行うことでバスを無駄なく使用できる。
【００１５】
また、上記の構成において、前記リプレースウェイ制御手段については、その１つの態様として、前記キャッシュメモリにおいて排他不一致を示すダーティビットが１キャッシュメモリラインに複数存在する場合で、前記バス負荷検出手段による前記バス負荷情報が有効を示すときにはダーティビットの有効数が少ないウェイを優先的にリプレースするよう制御し、前記バス負荷検出手段が無効を示すときにはダーティビットの有効数が多いウェイを優先的にリプレースするよう制御するように構成されたものは好ましい。
【００１６】
この構成によれば、キャッシュリプレースの際、バス負荷があり、かつ、リプレース可能なウェイが排他不一致のウェイしか存在しない場合、バス負荷がより小さいウェイを選択することが可能になる。また、バス負荷がない場合は、バスをより多く使用するリプレースウェイを選択することが可能になる。
【００１７】
また、上記の構成において、前記リプレースウェイ制御手段については、その１つの態様として、前記キャッシュメモリにおいてバースト転送の実行が可能な場合に、排他不一致を示すダーティビットが１キャッシュメモリラインに複数存在し、前記ダーティビットの有効数が同数のときには前記キャッシュメモリのバースト転送の設定と、有効なダーティビットの分布に応じて、リプレースするウェイを変更するように構成されたものは好ましい。
【００１８】
この構成によれば、リプレースウェイを選択時にダーティビットの有効数が同じ状況でも、バースト転送を考慮することで、バス負荷がある場合は、バス負荷がより小さいウェイを選択することが可能になり、バス負荷がない場合はバスをより多く使用するウェイを選択することが可能になる。
【００１９】
上述したキャッシュメモリシステムを動画処理装置において次のように展開することが可能である。すなわち、本発明による動画処理装置は、入力されたデータを処理して、動画データとして出力するものであって、
上記いずれかのキャッシュメモリシステムと、
前記キャッシュメモリに接続され、前記キャッシュメモリにアクセスするコントローラと、
前記コントローラで処理するための命令またはデータを記憶する記録装置と、
前記コントローラと前記記録装置間で行われる命令またはデータの転送に用いられるバスと、
前記バスに接続され、前記バスの負荷に応じた情報を前記キャッシュメモリシステムに出力するバスコントローラとを備えたものである。
【００２０】
この構成によれば、前記キャッシュメモリシステムにより、システム破綻の原因である局所的なバストラフィックすなわち局所的なメモリアクセスレイテンシ（時間待ち）の増加を防ぐことが可能になり、安定した動画処理が実行される。
【発明の効果】
【００２１】
本発明のキャッシュメモリシステムによれば、バス負荷に応じてキャッシュメモリのリプレース方法を変更することができ、バス負荷がある場合はバス負荷の小さいリプレース処理を行い、バス負荷がない場合はバス負荷の大きいリプレース処理を行うことでバスを有効に使用することができ、局所的なバストラフィックを改善し、バストラフィックを均一化することができる。
【００２２】
また、バス負荷が均一になることでバス幅設計時に最適なバス幅を設定することが可能である。
【００２３】
また、前記キャッシュメモリシステムを動画処理装置に用いることにより、コマ落ち等のシステム破綻を防止することができる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明にかかわるキャッシュメモリシステムの実施の形態を図面に基づいて詳細に説明する。
【００２５】
＜キャッシュメモリシステム＞
図１は本発明の実施の形態１におけるキャッシュメモリシステムの構成を示すブロック図、図２は本発明の実施の形態２におけるキャッシュメモリシステムの構成を示すブロック図である。
【００２６】
図１のキャッシュメモリシステムは、３つのマスタＭ１〜Ｍ３と、バス負荷情報検出部５０を有するバスコントローラＢＣと、主記憶装置ＭＭと、バスＢ１とを主構成要素としている。マスタＭ１は、ＣＰＵ１０とキャッシュメモリシステムＣＳを搭載している。キャッシュメモリシステムＣＳは、４ウェイ・セットアソシアティブ方式でライトバック方式のキャッシュメモリ２０と、バス負荷検出部３０と、リプレースウェイ制御部４０とから構成されている。キャッシュメモリ２０は、ウェイごとのタグフィールドＴＦ、ダーティビット（Ｄｉｒｔｙ Ｂｉｔ）格納部ＤＢＨおよびデータ格納部ＤＨを備えている。バス負荷検出部３０は、バスコントローラＢＣのバス負荷情報検出部５０からバスリクエスト保留数Ｎ１を取得してバス負荷情報を保持するバス負荷情報保持部３１と、ＣＰＵ１０の指示によりバス負荷条件Ｄ１を設定するバス負荷判定条件設定部３２と、バス負荷情報保持部３１の値とバス負荷判定条件設定部３２の値を比較するコンパレータ３３から構成されている。リプレースウェイ制御部４０は、バス負荷検出部３０における判定結果のバス負荷情報Ｄ２に応じてキャッシュメモリ２０のリプレース方法を変更するものである。ＡＤはＣＰＵ１０からのアドレス、ＤＴはデータ、Ｄ３はウェイ番号、Ｄ４はタグ情報、Ｄ５はダーティビット情報である。また、Ｒｅｑはデータ要求信号、Ｇｒは許可信号である。
【００２７】
図２のキャッシュメモリシステムは、そのバス負荷検出部３０が、ＣＰＵ１０の指示によりバス負荷有無情報Ｄ１ａを設定するバス負荷有無情報設定部３４を有するものとなっている。ここでは、図１のバス負荷情報検出部５０、バスリクエスト保留数Ｎ１は無関係となっている。その他の構成については、図１と同様であるので同一部分に同一符号を付すにとどめ、説明を省略する。
【００２８】
＜バス負荷検出部＞
図１のバス負荷検出部３０は、コンパレータ３３において、バス負荷情報保持部３１の保持値Ｄ３１とバス負荷判定条件設定部３２の条件設定値Ｄ３２を比較し、その比較結果によってバス負荷を決定する。保持値Ｄ３１が条件設定値Ｄ３２より大きいかまたは同等の場合、バス負荷が有効と判定される。また、保持値Ｄ３１が条件設定値Ｄ３２より小さければ、バス負荷が無効と判定される。例えば、条件設定値Ｄ３２を“１”とし、キャッシュミス発生時のバスリクエスト保留数Ｎ１が“３”で保持値Ｄ３１が“３”である場合には、バス負荷が有効であると判定される。また、条件設定値Ｄ３２を“２”とし、キャッシュミス発生時のバスリクエスト保留数Ｎ１が“１”で保持値Ｄ３１が“１”である場合には、バス負荷が無効であると判定される。
【００２９】
また、図２の場合は、ユーザがＣＰＵ１０にバス負荷有無情報Ｄ１ａを指示し、ＣＰＵ１０がバス負荷検出部３０のバス負荷有無情報設定部３４にバス負荷有無情報Ｄ１ａを設定することによって、バス負荷の有効無効を判定する。バス負荷有効を“１”とし、バス負荷無効を“０”とする。例えば、バス負荷有無情報Ｄ１ａを“１”と指示した場合はバス負荷が有効になり、バス負荷有無情報Ｄ１ａを“０”と指示した場合はバス負荷が無効になる。
【００３０】
＜コンパイラ＞
ユーザがＣＰＵ１０へバス負荷有無情報Ｄ１ａを指示する場合、ＣＰＵ１０をターゲットとするコンパイラを使用することが可能である。図３はコンパイラ６０の構成を示す機能ブロック図である。コンパイラ６０は、Ｃ言語等の高級言語で記述指定されたソースプログラムＰｍ１を、ＣＰＵ１０をターゲットとする機械語プログラムＰｍ２に変換するクロスコンパイラである。このコンパイラ６０は、パーソナルコンピュータ等のコンピュータ上で実行されるプログラムによって実現され、解析部６１と変換部６２と出力部６３とから構成される。
【００３１】
解析部６１は、コンパイルの対象となるソースプログラムＰｍ１およびこのコンパイラ６０に対するユーザからのバス負荷有無情報Ｄ１ａの設定指示（プラグマにより実現）を字句解析する。そして、そのことによって、コンパイラ６０に対するバス負荷有無情報Ｄ１ａの設定指示については、変換部６２や出力部６３に伝達する。また、コンパイルの対象となるプログラムについては、内部形式データに変換する。
【００３２】
なお、「プラグマ（又は、プラグマ指令）」とは、ソースプログラムＰｍ１中にユーザが任意に指定（配置）することができるコンパイラ６０への指示であり、本実施の形態におけるコンパイラ６０では、バス負荷有無情報を設定する指示である。＃ｐｒａｇｍａ  ＿ｂｕｓ＿ｒｅｓ  “バス負荷有無情報”を記述することでバス負荷有無情報を指示することができる。
【００３３】
図４に、＃ｐｒａｇｍａ  ＿ｂｕｓ＿ｒｅｓを用いたプログラムコード例を示す。図４のＣ言語ソースプログラムＰｍ１のバス負荷有効設定ｐｒａｇｍａ記述Ａ１のように、「＃ｐｒａｇｍａ  ＿ｂｕｓ＿ｒｅｓ  １」と記述すると、機械語プログラムＰｍ２のバス負荷有効設定機械語プログラム記述Ａ２のように、バス負荷有無情報設定部３４にバス負荷有無情報である“１”を書き込む機械語プログラムに変換される。これによりバス負荷が有効となる。また、「＃ｐｒａｇｍａ  ＿ｂｕｓ＿ｒｅｓ  ０」と記述すると、バス負荷有無情報設定部３４にバス負荷有無情報の“０”を書き込む機械語プログラムに変換され、バス負荷が無効となる。
【００３４】
よって、ユーザがバス負荷有無情報Ｄ１ａをバス負荷有無情報設定部３４に設定するフローは、まず、ユーザがソースプログラムＰｍ１に、「＃ｐｒａｇｍａ  ＿ｂｕｓ＿ｒｅｓ」と記述して、バス負荷有無情報（ユーザはバス負荷が高くなることを予想）を指示する。次に、コンパイラ６０の解析部６１によるバス負荷有無情報の指示を解析する。そして、変換部６２でバス負荷有無情報Ｄ１ａを機械語プログラムに変換し、出力部６３から機械語プログラムＰｍ２に出力する。その出力された機械語プログラムをＣＰＵ１０が実行し、バス負荷有無情報設定部３４にバス負荷有無情報Ｄ１ａを設定するということになる。
【００３５】
＜キャッシュメモリ＞
図５は図１、図２のキャッシュメモリ２０の詳細を示したものである。キャッシュメモリラインはウェイごとにＬＷ０〜ＬＷ（ｎ）まであり、それぞれ、タグフィールドＴＦ０〜ＴＦ（ｎ）と、ダーティビット（Ｄｉｒｔｙ Ｂｉｔ）格納部ＤＢＨ０〜ＤＢＨ（ｎ）と、データ格納部ＤＨ０〜ＤＨ（ｎ）とを備えている。
【００３６】
キャッシュメモリラインＬＷ０〜ＬＷ（ｎ）は、それぞれ、ｎ個のキャッシュメモリサブラインに分けられる（図５では４個）。また、データ格納部ＤＨ０〜ＤＨ（ｎ）の格納できるデータサイズをキャッシュメモリラインサイズ（Ｓｚ１）といい、それぞれキャッシュメモリサブラインに格納できるデータサイズをキャッシュメモリサブラインデータサイズ（Ｓｚ２）という。例えば、１キャッシュメモリラインが１２８バイトとし、サブラインの個数を４個とすると、サブラインのサイズはそれぞれ３２バイトとなる。
【００３７】
ダーティビット格納部ＤＢＨ０〜ＤＢＨ（ｎ）は、それぞれｎ個（図５では４個）のダーティビットを格納するためのものである。ダーティビット格納部ＤＢＨ０〜ＤＢＨ（ｎ）に対するｎ個のダーティビットはそれぞれ、キャッシュメモリラインＬＷ０〜ＬＷ（ｎ）に対するキャッシュメモリサブラインに対応する。例えば、図５では、ウェイ２のダーティビット格納部ＤＢＨ２のダーティビットＤＢ２は、ウェイ２のキャッシュメモリラインＬＷ２のキャッシュメモリサブラインＳＬ２に対応する。
【００３８】
ダーティビットとは、キャッシュメモリラインに格納されているデータを他のデータに置き換える場合、現在格納されているデータを下位レベルのメモリに書き戻す（ライトバックする）かどうかを判定するビットである。例えば、ダーティビットがＯＮになっていれば、キャッシュメモリラインに格納されているデータを書き戻す。図５では、ダーティビットがキャッシュメモリサブラインに対応しているため、あるダーティビットがＯＮになっていれば、対応するキャッシュメモリサブラインに格納しているデータをライトバックする必要があるものとして判定する。
【００３９】
タグフィールドＴＦ０〜ＴＦ（ｎ）は、タグを格納するためのものである。タグとは、キャッシュメモリラインＬＷ０〜ＬＷ（ｎ）内に求められたデータが格納されているかを判別する情報である。
【００４０】
図５で示したキャッシュメモリ２０では、キャッシュメモリラインＬＷ０〜ＬＷ（ｎ）が複数個（図５では４個）のキャッシュメモリサブラインに分けられ、そのキャッシュメモリサブラインに対応したダーティビットをダーティビット格納部ＤＢＨに備えていた。つまり、ダーティビットが１キャッシュメモリラインに複数個存在する構成であった。
【００４１】
これに代えて、キャッシュメモリラインＬＷ０〜ＬＷ（ｎ）を１つのキャッシュメモリサブラインに分け（キャッシュメモリライン＝キャッシュメモリサブライン）、そのキャッシュメモリサブラインに対応したダーティビットをダーティビット格納部ＤＢＨに備える構成としてもよい。つまり、ダーティビットが１キャッシュメモリラインに１個存在する構成としてもよい。
【００４２】
＜リプレースウェイ選択優先度＞
図６は、１キャッシュメモリラインにダーティビットが４個存在する場合のダーティビット格納部ＤＢＨのダーティビットのＯＮとＯＦＦの状態を網羅したものである。リプレースウェイ制御部４０におけるリプレースウェイを決定するためのリプレースウェイ選択優先度は、図６のダーティビットのＯＮとＯＦＦの状態によって決定される。リプレースウェイとは、キャッシュミスが起こり、キャッシュメモリ２０内のデータを入れ替える際に、入れ替えられる該当キャッシュメモリラインのウェイを示している。
【００４３】
＜バス負荷有効の場合＞
バス負荷検出部３０によりバス負荷が有効と判定された場合のリプレースウェイの選択方法は、リプレースにかかるバス負荷がより小さくなるようにウェイを選択する方法である。図６の場合、Ｐ０からＰ１５の順にダーティビットのＯＮの数すなわち有効数が多くなり、リプレース時に書き戻す転送量が多くなるのでバス負荷も大きくなる。したがって、リプレースウェイ選択の優先度はＰ０からＰ１５の順に下がる。つまり、Ｐ０の優先度が最も高くなり、キャッシュメモリラインのダーティビットの状態がＰ０の状態であればリプレースされやすくなる。
【００４４】
また、図６において、バースト転送に対応していないシステムの場合、Ｐ１〜Ｐ４が同優先度、Ｐ５〜Ｐ１０が同優先度、およびＰ１１〜Ｐ１４が同優先度となる。上記のように同優先度となるのはそれぞれ、ダーティビットの有効数が同じであるからである。
【００４５】
さらに、図６においてバースト転送に対応しているシステムで、バースト転送のサイズがキャッシュメモリサブラインサイズの２個分であった場合は、Ｐ１〜Ｐ４が同優先度、Ｐ５，Ｐ６が同優先度、Ｐ７〜Ｐ１０が同優先度、およびＰ１１〜Ｐ１４が同優先度となる。Ｐ１〜Ｐ４が同優先度、Ｐ１１〜Ｐ１４が同優先度となるのは、上記バースト転送に対応していないシステムと同様に、それぞれダーティビットの有効数が同じであるからである。しかし、それぞれダーティビットの有効数が同じであるＰ５，Ｐ６とＰ７〜Ｐ１０が異なる優先度なのは、Ｐ５，Ｐ６とＰ７〜Ｐ１０を比べた場合、バースト転送のサイズがキャッシュメモリサブライン２個分のサイズなので、Ｐ５，Ｐ６は１回のバースト転送で転送が終了するのに対し、Ｐ７〜Ｐ１０は２回のバースト転送が必要になり、Ｐ５，Ｐ６の方がリプレース時のバス負荷が小さくなるからである。なお、同優先度のウェイが複数ある場合は、ウェイ番号の小さいものから順に選択する。
【００４６】
＜バス負荷無効の場合＞
また、バス負荷検出部３０によりバスの負荷が無効であると判定された場合のリプレースウェイの選択優先度は、リプレースによってバスをより有効に使用するようにリプレースウェイを選択する方法である。図６の場合、Ｐ０からＰ１５の順にダーティビットのＯＮの数すなわち有効数が多くなり、リプレース時に書き戻す転送量が多くなるのでバス負荷も大きくなる。したがって、リプレースウェイ選択の優先度はＰ０からＰ１５の順に上がる。つまり、Ｐ１５の優先度が最も高くなり、キャッシュメモリラインのダーティビットの状態がＰ１５の状態であればリプレースされやすくなる。
【００４７】
また、図６において、バースト転送に対応していないシステムの場合、Ｐ１〜Ｐ４が同優先度、Ｐ５〜Ｐ１０が同優先度、およびＰ１１〜Ｐ１４が同優先度となる。上記のように同優先度となるのはそれぞれ、ダーティビットの有効数が同じであるからである。
【００４８】
さらに、図６においてバースト転送に対応しているシステムで、バースト転送のサイズが上記キャッシュメモリサブラインサイズの２個分であった場合は、Ｐ１〜Ｐ４が同優先度、Ｐ５，Ｐ６が同優先度、Ｐ７〜Ｐ１０が同優先度、およびＰ１１〜Ｐ１４が同優先度となる。Ｐ１〜Ｐ４が同優先度、Ｐ１１〜Ｐ１４が同優先度なのは上記バースト転送に対応していないシステムと同様に、それぞれダーティビットの有効数が同じであるからである。しかし、それぞれダーティビットの有効数が同じであるＰ５，Ｐ６とＰ７〜Ｐ１０が異なる優先度なのは、Ｐ５，Ｐ６とＰ７〜Ｐ１０を比べた場合、バースト転送のサイズがキャッシュメモリサブライン２個分のサイズなので、Ｐ５，Ｐ６は１回のバースト転送で転送が終了するのに対し、Ｐ７〜Ｐ１０は２回のバースト転送が必要になり、Ｐ５，Ｐ６の方が、リプレース時のバス負荷が小さくなるからである。なお、同優先度のウェイが複数ある場合は、ウェイ番号の小さいものから順に選択する。
【００４９】
なお、図６は、１キャッシュメモリラインにダーティビットが４個ある構成であったが、１キャッシュメモリラインにダーティビットが１個の構成の場合も、図６において示すことが可能である。１キャッシュメモリラインにダーティビットが１個の構成の場合、Ｐ１〜Ｐ１５が同じ状態であると考えることができる。Ｐ１〜Ｐ１５は少なくとも１つのダーティビットが有効になっているのでこれを１キャッシュメモリラインにダーティビットが１個の構成であると考えた場合、Ｐ１〜Ｐ１５は１個のダーティビットが有効になった状態と考えることが可能であるからである。
【００５０】
したがって、１キャッシュメモリラインにダーティビットが１個の構成の場合のリプレースウェイの選択優先度は、バス負荷検出部３０によりバス負荷が有効であると判定された場合、リプレース時のバス負荷が小さくなるようにリプレースウェイを選択するので、ダーティビットが有効でないＰ０状態のウェイ、ダーティビットが有効なＰ１〜Ｐ１５の状態のウェイ順で選択される。また、バス負荷検出部３０によりバス負荷がないと判定された場合は優先度が逆になり、ダーティビットが有効なＰ１〜Ｐ１５の状態のウェイ、ダーティビットが有効でないＰ０の状態のウェイの順で選択される。なお、同優先度のウェイが複数ある場合は、ウェイ番号の小さいものから順に選択する。
【００５１】
＜リプレース処理＞
図７に本発明の実施の形態のキャッシュメモリシステムにおけるリプレース処理のフローチャートを示す。
【００５２】
まず、ＣＰＵ１０からのアクセスがあり、キャッシュミスが発生すると、バス負荷検出部３０によりバス負荷を検出する（Ｓ１１）。
【００５３】
次に、リプレースウェイ制御部４０によりリプレースウェイを決定する（Ｓ１２）。その詳細は図６で説明したとおりである。
【００５４】
次に、リプレースウェイのキャッシュメモリラインのダーティビットがＯＮであれば、ステップＳ１４に進み、ダーティビットがＯＮでなければ、ステップＳ１５に進む（Ｓ１３）。
【００５５】
次に、リプレースウェイのキャッシュメモリデータをライトバックする（Ｓ１４）。
【００５６】
次に、リプレースウェイのキャッシュメモリラインにＣＰＵ１０からのアクセスアドレスのデータを格納し、リプレース処理を終了する（Ｓ１５）。
【００５７】
＜リプレースウェイ選択＞
図７のステップＳ１２に記載したリプレースウェイ制御部４０によるリプレースウェイ選択処理のフローチャートを図８に示す。同図に示すように、バス負荷検出部３０によりバス負荷情報を得て、リプレースウェイ選択優先順位を決定する（Ｓ２１）。
【００５８】
次に、リプレースウェイ、ウェイ、有効リプレース優先度の各初期値を設定する。リプレースウェイとはリプレースされるウェイを示し、初期値は０、Ｗａｙは下記ステップで処理される該当ウェイを示し、初期値０、有効リプレース優先度とは、リプレースウェイでのリプレース優先度を示し、ステップＳ２１で決定されたリプレースウェイ選択優先順位での最低優先度を初期値とする（Ｓ２２）。
【００５９】
次に、ｎウェイ・セットアソシアティブのキャッシュメモリの場合に、Ｗａｙを０からｎまで１つずつ上げていき、下記ステップの処理を行う（Ｓ２３）。
【００６０】
次に、該当ウェイのダーティビット情報からウェイリプレース優先度を決定する（Ｓ２４）。該当ウェイのダーティビット情報とは、該当ウェイのダーティビットのＯＮとＯＦＦの状態を示している（図６でＰ０〜Ｐ１５のような状態を示すもの）。ウェイリプレース優先度とは、上記該当ウェイのダーティビット情報から得られたリプレース優先度のことである。
【００６１】
次に、ステップＳ２４の処理で得られたウェイリプレース優先度と有効リプレース優先度を比較し、ウェイリプレース優先度の方が有効リプレース優先度よりも高ければ、ステップＳ２６に進み、ウェイリプレース優先度の方が有効リプレース優先度よりも低ければ、ステップＳ２８に進む（Ｓ２５）。
【００６２】
次に、有効リプレース優先度にウェイリプレース優先度を代入し、リプレースウェイにＷａｙを代入する（Ｓ２６）。
【００６３】
次にステップＳ２６で得られた有効リプレース優先度が、ステップＳ２１で決定したリプレースウェイ選択優先順位の最高優先度でなければ、ステップＳ２８に進み、ステップＳ２６で得られた有効リプレース優先度が、ステップＳ２１で決定したリプレースウェイ選択優先順位の最高優先度であれば、ステップＳ２９に進む（Ｓ２７）。
【００６４】
次に、Ｗａｙを１プラスし、ステップＳ２３に進む（Ｓ２８）。
【００６５】
次に、ステップＳ２６で得られたリプレースウェイをリプレースウェイとして確定し、処理を終了する（Ｓ２９）。
【００６６】
＜効果＞
次に本発明の実施の形態による効果の例を図９、図１０に示す。図９、図１０は、横軸が時間（サイクル）、縦軸がバスへのリクエスト数としたときのマスタＭ１からマスタＭ３までの処理を示している。マスタＭ１〜Ｍ３はそれぞれ４ウェイ・セットアソシアティブ方式でライトバック方式のキャッシュメモリ２０を有するとする。
【００６７】
図９は排他不一致でないウェイを優先的にリプレースする一般的なキャッシュメモリシステムの場合を示す。図１０は本発明の実施の形態でのキャッシュメモリシステムの場合を示す。
【００６８】
図１０のキャッシュメモリシステムのバス負荷検出部３０のバス負荷判定条件設定部３２の条件設定値Ｄ３２を“１”とし、キャッシュミス発生時のバスリクエスト保留数Ｎ１が“１”以上であれば、バス負荷が有効であると判定されるものとする。図９、図１０ともに、マスタＭ１のキャッシュメモリ２０のウェイには１つの排他不一致でないデータと３つの排他不一致なデータがのっており、マスタＭ２、マスタＭ３のキャッシュメモリ２０のウェイには４つの排他不一致でないデータのっているとする。さらに２０サイクル目、８０サイクル目にマスタＭ１のリプレース処理リクエストがライトによるキャッシュミスによって起こり、７０サイクル目にマスタＭ２のリプレース処理リクエストがライトによるキャッシュミスによって起こり、９０サイクル目にマスタＭ３のリプレース処理リクエストがライトによるキャッシュミスによって起こるとする。また、ライトバックを伴わないリプレース処理は２０サイクル、ライトバックを伴うリプレース処理は４０サイクルかかるとする。
【００６９】
まず従来技術に相当する図９では、２０サイクル目のマスタＭ１によるリプレース処理で排他不一致でないウェイが選択され、ライトバックを伴わないリプレース処理が行われ、４０サイクル目で完了する（ｒ１）。次に、７０サイクル目でマスタＭ２のリプレース処理で、ライトバックを伴わないリプレース処理が行われ、９０サイクル目で完了する（ｒ２）。マスタＭ１のリプレース処理リクエストが８０サイクル目に起こるが（ｒ３）、マスタＭ２のリプレース処理が完了する９０サイクル目まで待たされる（ｒ２）。９０サイクル目からマスタＭ１のリプレース処理が行われるが（ｒ４）、このときマスタＭ１のキャッシュメモリ２０には排他不一致のデータしか残っていないので、ライトバックを伴うリプレース処理が行われ、１３０サイクル目で完了する（ｒ５）。マスタＭ３のリプレース処理リクエストが９０サイクル目で起こるが（ｒ６）、マスタＭ１のリプレース処理が完了する１３０サイクル目まで待たされ（ｒ５）、１３０サイクル目からライトバックを伴わないリプレース処理が行われ（ｒ７）、１５０サイクル目で完了する（ｒ８）。よって、すべてのリプレース処理が完了するのが１５０サイクル目ということになる。
【００７０】
次に、本発明実施の形態である図１０では、２０サイクル目のマスタＭ１によるリプレース処理で他のマスタによりバスに負荷がないので、排他不一致なウェイが選択され、ライトバックを伴うリプレース処理が行われ、６０サイクル目で完了する（Ｒ１）。次に、７０サイクル目でマスタＭ２のリプレース処理で、ライトバックを伴わないリプレース処理が行われ、９０サイクル目で完了する（Ｒ２）。マスタＭ１のリプレース処理リクエストが８０サイクル目に起こるが（Ｒ３）、マスタＭ２のリプレース処理が完了する９０サイクル目まで待たされる（Ｒ２）。９０サイクル目からマスタＭ１のリプレース処理が行われるが（Ｒ４）、８０サイクル目のリプレース処理リクエスト時にマスタＭ２のリプレース処理が行われていたため、バスリクエスト保留数Ｎ１が“１”であるのでバス負荷が有効であると判定する。よって排他不一致でないウェイを選択し、ライトバックを伴わないリプレース処理が行われ、１１０サイクル目で完了する（Ｒ５）。マスタＭ３のリプレース処理リクエストが９０サイクル目で起こるが（Ｒ６）、マスタＭ１のリプレース処理が完了する１１０サイクル目まで待たされ（Ｒ５）、１１０サイクル目からライトバックを伴わないリプレース処理が行われ（Ｒ７）、１３０サイクル目で完了する（Ｒ８）。よって、すべてのリプレース処理が完了するのが１３０サイクル目ということになる。
【００７１】
図９、図１０を比較すると、本発明実施の形態のキャッシュメモリシステムを有する図１０のほうが２０サイクル早くなることがわかる。
【００７２】
＜動画処理装置＞
図１１は本発明の実施の形態における動画処理装置の構成を示すブロック図である。
【００７３】
動画処理装置８０は、キャッシュメモリシステムＣＳとＣＰＵ（コントローラ）１０とを有するマイクロプロセッサμＰ１，μＰ２と、バスコントローラＢＣ、メモリ（主記憶装置）ＭＭ、バスＢ１、ＩＯインターフェース７１を有する半導体装置７０と、動画データＤｄを入力する入力部８１と、動画表示部９０に動画像を出力する出力部８２と、電源部８３とから構成されている。マイクロプロセッサμＰ１は主に装置全体のコントローラの役目をし、マイクロプロセッサμＰ２は主に動画処理を行うものとする。
【００７４】
＜動画処理フロー＞
図１２に動画処理フローを示す。まず、ＤＶＤ−ＶＩＤＥＯ等の動画データＤｄが入力部８１から入力され（Ｓ３１）、マイクロプロセッサμＰ１がマイクロプロセッサμＰ２にその動画データを動画処理するように命令する。マイクロプロセッサμＰ２は動画処理を開始する（Ｓ３２）。マイクロプロセッサμＰ２の動画処理中にキャッシュミスが起こった場合（Ｓ３３）、キャッシュメモリシステムＣＳにより、リプレース処理（図７のＳ１１）を行う（Ｓ３４）。リプレース処理（図７のＳ１１）は、キャッシュミス時に、他のマイクロプロセッサμＰ１によるメモリアクセスがなく、バスＢ１のバス負荷が無効と判定されれば、バスＢ１を有効に使うリプレース処理を行い、キャッシュミス時に他のマイクロプロセッサμＰ１によるメモリアクセスがあり、バスＢ１のバス負荷が有効と判定されれば、バスＢ１にあまり負荷をかけないリプレース処理を行う。リプレース処理が終了するかまたは、動画処理中にキャッシュミスがない場合は、動画処理が終了（Ｓ３５）すれば、動画を出力部８２から動画表示部９０に出力し（Ｓ３６）、終了する。動画処理が終了していなければ、動画処理を繰り返す処理を行う。
【００７５】
＜キャッシュメモリシステムによる動画処理破綻防止効果＞
図１３に上記のキャッシュメモリシステムを搭載した動画処理装置の動画処理破綻防止効果の一例を示す。
【００７６】
図１３の上側のグラフは、従来のキャッシュメモリを搭載した動画処理装置による時間ごとのフレーム処理の様子を示したものである。下側のグラフは、本発明実施の形態のキャッシュメモリシステムを搭載した動画処理装置８０による時間ごとのフレーム処理の様子を示したものである。フレーム処理とは、動画処理における基本的な処理のひとつであり、１フレームの表示期間内に次に表示する画像を処理するようになっている。図１３で示す状況を以下に説明する。
【００７７】
キャッシュメモリ２０は４ウェイであり、すでに排他不一致なデータが３ウェイ、排他不一致でないデータが１ウェイのっている。
【００７８】
図１３の上下のグラフともに、２フレーム目、４フレーム目でメモリアクセスのレイテンシ（時間待ち）が発生している。
【００７９】
上側のグラフにおいて、２フレーム目の処理のメモリアクセスレイテンシは、他のマスタによるメモリアクセスがない状態で、ライトアクセスによるキャッシュミスが発生したときの排他不一致でないデータのリプレース処理時間である。このリプレース処理でキャッシュメモリには排他不一致なデータが４ウェイ分のったことになる。ここで、４フレーム目の処理では、メモリアクセスレイテンシにより動画処理が１フレーム表示期間に間に合わず、動画処理破綻が起こっている。これは、他のマスタによるメモリアクセスがある状態で、キャッシュミスが発生し、キャッシュメモリには排他不一致のデータしか存在しないため、メモリアクセス時間のかかるライトバックを伴うリプレース処理を行ったためである。
【００８０】
下側のグラフにおいて、２フレーム目の処理のメモリアクセスレイテンシは、他のマスタによるメモリアクセスがない状態で、ライトアクセスによるキャッシュミスが発生したときの排他不一致なデータのリプレース処理時間である。本発明実施の形態のキャッシュメモリシステムでは他のマスタによるメモリアクセスがない場合は、バスを有効に使用するためライトバックを伴うリプレース処理を行う。４フレーム目の処理のメモリアクセスレイテンシは、他のマスタによるメモリアクセスがある状態で、キャッシュミスが発生したときの排他不一致でないデータのリプレース処理時間である。ここで、下側のグラフでは動画処理破綻は起こっていない。これは、本発明実施の形態におけるキャッシュメモリシステムでは、他のマスタによるメモリアクセスがある場合は、バス負荷をかけないようにライトバックを伴わないリプレース処理を行うためである。すなわち、本発明実施の形態のキャッシュメモリシステムを搭載した動画処理装置では、局所的なメモリアクセスレイテンシを抑制することで動画処理破綻を防止していることがわかる。
【産業上の利用可能性】
【００８１】
本発明のキャッシュメモリシステムは、複数のマスタで共通バスを使用するシステムのバストラフィックを均一化する技術として有用である。本システムは、バス負荷に応じて、バストラフィックが均一になるようにリプレース方法を変更するため、局所的なバストラフィックを防止することができる。したがって、局所的なバストラフィックによりコマ落ち等のシステム破綻が起きやすい動画処理装置に利用することが可能である。また、バストラフィックを均一化することで、バス幅を削減する技術としても有用である。
【図面の簡単な説明】
【００８２】
【図１】本発明の実施の形態１におけるキャッシュメモリシステムの構成を示すブロック図
【図２】本発明の実施の形態２におけるキャッシュメモリシステムの構成を示すブロック図
【図３】本発明の実施の形態におけるコンパイラの構成を示す機能ブロック図
【図４】バス負荷有無情報を設定するプログラムコード例
【図５】本発明の実施の形態におけるキャッシュメモリの構成を示すブロック図
【図６】キャッシュメモリの１キャッシュメモリラインにダーティビットが４個存在する場合のダーティビット格納部のダーティビットのＯＮとＯＦＦの状態を示した図
【図７】本発明の実施の形態におけるリプレースウェイ制御部のリプレースウェイ選択処理のフローチャート
【図８】本発明の実施の形態におけるキャッシュメモリシステムのリプレース処理のフローチャート
【図９】一般的なキャッシュメモリシステムを有する３つのマスタと共通バスを使用するシステムにおけるリプレース処理の時系列図
【図１０】本発明の実施の形態におけるキャッシュメモリシステムを有する３つのマスタと共通バスを使用するシステムにおけるリプレース処理の時系列図
【図１１】本発明の実施の形態におけるキャッシュメモリシステムを有する動画処理装置の構成図
【図１２】本発明の実施の形態におけるキャッシュメモリシステムを有する動画処理装置の動画処理フローチャート
【図１３】本発明の実施の形態におけるキャッシュメモリシステムを搭載した動画処理装置の動画処理破綻防止効果の説明図
【符号の説明】
【００８３】
１０  ＣＰＵ（コントローラ）
２０  キャッシュメモリ
３０  バス負荷検出部
３１  バス負荷情報保持部
３２  バス負荷判定条件設定部
３３  コンパレータ
３４  バス負荷有無情報設定部
４０  リプレースウェイ制御部
５０  バス負荷情報検出部
６０  コンパイラ
６１  解析部
６２  変換部
６３  出力部
７１  ＩＯインターフェース
８０  動画処理装置
８１  入力部
８２  出力部
８３  電源部
９０  動画表示部
ＣＳ  キャッシュメモリシステム
ＢＣ  バスコントローラ
Ｂ１  バス
Ｄ１  バス負荷条件
Ｄ１ａ  バス負荷有無情報
Ｄ２  バス負荷情報
Ｄ３  Ｗａｙ番号
Ｄ４  タグ情報
Ｄ５  ダーティビット情報
ＤＢＨ  ダーティビット格納部
ＤＨ  データ格納部
Ｄｄ  動画データ
Ｍ１〜Ｍ３  マスタ
ＭＭ  主記憶装置
Ｎ１  バスリクエスト保留数
Ｐｍ１  ソースプログラム
Ｐｍ２  機械語プログラム
ＴＦ  タグフィールド
μＰ１，μＰ２  マイクロプロセッサ
【図１】
2006119796.tif 000003
【図２】
2006119796.tif 000004
【図３】
2006119796.tif 000005
【図４】
2006119796.tif 000006
【図５】
2006119796.tif 000007
【図６】
2006119796.tif 000008
【図７】
2006119796.tif 000009
【図８】
2006119796.tif 000010
【図９】
2006119796.tif 000011
【図１０】
2006119796.tif 000012
【図１１】
2006119796.tif 000013
【図１２】
2006119796.tif 000014
【図１３】
2006119796.tif 000015