(57)【要約】【課題】現用系および予備系の冗長構成にて、両系のメモリデータの同一性を確保するメモリデータ転送装置において、ライトバック方式でありながらライトスルー方式と同等の信頼性を確保できるようにする。【解決手段】キャッシュメモリ制御部１２にキャッシュライトデータの中から優先データを識別する優先データ識別部１８を有し、キャッシュフラッシュ判定部１９は、ＣＰＵ使用率が低いとき、キャッシュライト直後にキャッシュフラッシュして両系のメモリデータを同一にし、ＣＰＵ使用率が高いときには、優先データについては、キャッシュライト直後にキャッシュフラッシュし、それ以外のデータは、所定の間隔を置いたタイミングでキャッシュフラッシュするようにし、優先データのキャッシュフラッシュ後に発生する障害に対してアラームにならないようにした。【選択図】図１
2011107995.tif 000002
【特許請求の範囲】
【請求項１】
メモリデータ転送装置において、
キャッシュメモリに対するキャッシュライトおよびキャッシュフラッシュを制御するキャッシュメモリ制御部と、
メインメモリを制御するメインメモリ制御部と、
前記キャッシュメモリ制御部におけるキャッシュライトデータに対して優先データを識別する優先データ識別部と、
プログラムを実行するマイクロプロセッサのＣＰＵ使用率と前記優先データ識別部が識別した前記優先データとに基づいて前記キャッシュメモリ制御部がキャッシュフラッシュするタイミングを生成するキャッシュフラッシュ判定部と、
を備え、
前記キャッシュメモリ制御部は、前記生成したタイミングに基づいて前記優先データをキャッシュフラッシュすることを特徴とするメモリデータ転送装置。
【請求項２】
前記キャッシュフラッシュ判定部は、前記マイクロプロセッサの前記ＣＰＵ使用率を判定するＣＰＵ使用率判定部と、前記ＣＰＵ使用率判定部で判定された前記ＣＰＵ使用率に応じたフラッシュタイミングを生成して前記キャッシュメモリ制御部にフラッシュの間隔を指示するフラッシュタイミング生成部と、前記ＣＰＵ使用率が高いと判定されたときに、前記優先データ識別部で識別された前記優先データのキャッシュライトに応じて前記キャッシュメモリ制御部にフラシュ指示を出力する優先データフラッシュ信号生成部とを有していることを特徴とする請求項１記載のメモリデータ転送装置。
【請求項３】
前記フラッシュタイミング生成部は、前記ＣＰＵ使用率判定部で判定された前記ＣＰＵ使用率の高・低信号に応じて、初期設定されたＣＰＵ使用率高時のキャッシュフラッシュタイミング、ＣＰＵ使用率低時のキャッシュフラッシュタイミング、または、前記ＣＰＵ使用率高および前記ＣＰＵ使用率低以外のキャッシュフラッシュタイミングで、フラッシュ指示信号を出力することを特徴とする請求項２記載のメモリデータ転送装置。
【請求項４】
前記キャッシュフラッシュ判定部は、前記マイクロプロセッサの前記ＣＰＵ使用率を判定するＣＰＵ使用率判定部と、前記ＣＰＵ使用率判定部で判定された前記ＣＰＵ使用率に応じたフラッシュタイミングを固定的に生成する第１フラッシュタイミング生成部と、前記ＣＰＵ使用率判定部で判定された前記ＣＰＵ使用率に応じたフラッシュタイミングを可変的に生成する第２フラッシュタイミング生成部と、前記第１フラッシュタイミング生成部によるフラッシュタイミングまたは前記第２フラッシュタイミング生成部によるフラッシュタイミングを選択して前記キャッシュメモリ制御部に定期フラッシュの間隔を指示するセレクタと、前記ＣＰＵ使用率が高いと判定されたときに、前記優先データ識別部で識別された前記優先データのキャッシュライトに応じて前記キャッシュメモリ制御部にフラシュ指示を出力する優先データフラッシュ信号生成部とを有していることを特徴とする請求項１記載のメモリデータ転送装置。
【請求項５】
メモリデータ転送方法において、
キャッシュメモリへのデータの書き込みがあったときに、マイクロプロセッサのＣＰＵ使用率を判断し、
前記ＣＰＵ使用率が低いときから高くなるに連れてキャッシュフラッシュの間隔が長くなるように前記ＣＰＵ使用率に応じてキャッシュフラッシュのタイミングを設定し、
書き込みのあったデータの中に優先データがないときには、設定された前記タイミングでキャッシュフラッシュを行い、前記優先データがあるときには、前記キャッシュメモリへのデータの書き込みに連動して前記優先データのみを明示的にキャッシュフラッシュする、
ことを特徴とするメモリデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリデータ転送装置およびメモリデータ転送方法に関し、たとえば、現用系と予備系とからなる冗長構成が採られて両系におけるメモリデータの同一性を確保するようにしたメモリデータ転送装置およびメモリデータ転送方法に関する。
【背景技術】
【０００２】
無線端末との間で無線通信を行う基地局においては、実際に運用している現用系とこの現用系に障害が発生したときに切り替えられて運用を引き継ぐことができる予備系とからなる冗長構成が採られている。現用系および予備系は、制御データの連続性を確保するため、制御データを記憶する共通メモリを具備する制御装置におけるキャッシュメモリへのライト方式にライトスルー方式を採っている。
【０００３】
ライトスルーは、キャッシュメモリへの書き込み時に同時にメインメモリにも同じデータを書き込む方式で、読み出しにはキャッシュがかかるが、書き込みにはキャッシュがかからない。すなわち、データ書き込みは、常にキャッシュメモリよりも遅いメインメモリのアクセス速度で行うことになり、マイクロプロセッサはその遅い速度が足かせになり低速化の原因となっている。そのため、処理の性能を下げないために、高価なスピードグレードの高いマイクロプロセッサを使用することになる。
【０００４】
これに対し、キャッシュメモリが一杯になるまで、メインメモリにアクセスしないライトバック方式を採れば、高速化が図れ、マイクロプロセッサのスピードグレードも下げられるので、処理の性能を下げずにコストダウンを図ることができる。このライトバック方式を採用した冗長構成のシステムにおいては、現用系の障害発生に備えて、ライトバックにより現用系のメインメモリに書き込まれたメモリデータは、予備系にも転送されてそのメインメモリに書き込まれるようにしている（たとえば、特許文献１参照）。
【０００５】
図１５は従来のメモリデータ転送装置の構成例を示すブロック図であり、図１６は従来のメモリデータ転送装置の動作フローを示す図であり、図１７は従来のメモリデータ転送装置のライトバック動作シーケンスを示す図であって、（Ａ）は正常動作時におけるライトバックの通常処理を示し、（Ｂ）はソフトウェアアラーム時におけるライトバックの通常処理を示し、（Ｃ）はハードウェアアラーム時におけるライトバックの通常処理を示している。
【０００６】
メモリデータ転送装置は、現用系および予備系の両系に同じように備えており、図１５ではその一方だけを示している。メモリデータ転送装置は、プログラムを実行するマイクロプロセッサ（ＣＰＵ：Central Processing Unit）１１を備えている。このマイクロプロセッサ１１は、キャッシュメモリおよびそのライトバック制御回路を有するキャッシュメモリ制御部（ＣＭＵ：Cache Management Unit）１２を介してプロセッサバス１３に接続されている。このプロセッサバス１３は、メインメモリ制御部（ＭＭＵ：Memory Management Unit）１４を介してメインメモリ（ＭＭ：Main Memory）１５に接続されている。メインメモリ制御部１４とメインメモリ１５との接続部には、ダブルライト制御部（ＤＷＵ：Double Write Unit）１６が接続され、このダブルライト制御部１６は、他系のメインメモリにダブルライトを行うために他系のダブルライト制御部に接続されている。プロセッサバス１３には、また、自系内の障害を検出する障害検出部（ＥＤＵ：Emergency Detection Unit）１７が接続され、その出力は、マイクロプロセッサ１１およびキャッシュメモリ制御部１２に接続されている。
【０００７】
以上の構成のメモリデータ転送装置において、現用系で障害が発生した場合の動作フローについて図１６を参照して説明する。
まず、障害検出部１７が現用系におけるソフトウェアまたはハードウェアの何らかの障害を検出したとする（ステップＳ０１）。すると、障害検出部１７は、キャッシュメモリ制御部１２にキャッシュメモリのライトバック（フラッシュ）を指示し、マイクロプロセッサ１１には、ウオッチドッグタイマ（ＷＤＴ）の起動を指示する（ステップＳ０２）。
【０００８】
次に、ウオッチドッグタイマがタイムアウトしたかどうかが判断される（ステップＳ０３）。ウオッチドッグタイマが障害によって定期的なカウンタのクリアをすることなくタイムアウトしたときには、ソフトウェアが暴走状態にあると判断し、現用系および予備系の両系がエマージェンシに陥り、アラームとなる（ステップＳ０４）。
【０００９】
ウオッチドッグタイマがタイムアウトしていない場合、キャッシュメモリ制御部１２は、キャッシュメモリのラインを検索する（ステップＳ０５）。次に、検索したラインのデータがメインメモリ１５にライトバック済みのものか、これからライトバックを必要とするものかが判断され（ステップＳ０６）、ライトバックを必要とするものと判断されると、そのデータは他系に転送される（ステップＳ０７）。ステップＳ０６の判断にて、ライトバックを必要としない場合、または、他系へのデータ転送が終了すると、キャッシュメモリのライン検索が完了したかどうかが判断される（ステップＳ０８）。キャッシュメモリのライン検索が完了していない場合は、ステップＳ０３に戻り、ライン検索が完了している場合は、他系のメインメモリへのライトバックが完了し、現用系から予備系への切り替えが行われる（ステップＳ０９）。
【００１０】
なお、ステップＳ０３の判断では、ソフトウェア要因の障害判断として、ウオッチドッグがタイムアウトしたかどうかを見ているが、たとえば、クロック障害、電源障害等のハードウェア要因で他系へのデータ転送が不可能かどうかを見ることもある。
【００１１】
次に、図１７を参照して従来のメモリデータ転送装置のライトバック動作シーケンスを説明する。
ここで、説明を簡単にするため、キャッシュメモリに書き込まれるキャッシュライトデータがデータＤ１−Ｄ１０，Ｄ１１−Ｄ２０，・・・であり、キャッシュメモリは、１０個のデータで一杯になるものとする。
【００１２】
まず、図１７の（Ａ）に示したように、現用系に何ら障害が発生しないときには、キャッシュメモリ制御部１２にデータが書き込まれていき、データＤ１−Ｄ１０の書き込みが完了すると、そのデータＤ１−Ｄ１０は、メインメモリ１５へライトバックされる。
【００１３】
その後、ライトバックされたデータＤ１−Ｄ１０は、予備系に転送されてメモリへの追い出し、すなわちダブルライトが行われる。これにより、予備系では、データＤ１−Ｄ１０の引き継ぎが可能になる。
【００１４】
その後、次のデータＤ１１−Ｄ２０がキャッシュされ、データＤ１１−Ｄ２０の書き込みが完了すると、そのデータＤ１１−Ｄ２０は、メインメモリ１５へライトバックされる。図示の例では、この時点では、予備系のメモリへの追い出し前なので、予備系でデータの引き継ぎが可能なのは、データＤ１−Ｄ１０だけである。
【００１５】
次に、図１７の（Ｂ）に示したように、予備系のメモリへの追い出し前に、たとえばソフトウェアアラーム（ソフト障害）が発生した場合について説明する。ここで、ソフトウェアアラームは、キャッシュのフラッシュがハードウェアの動作に影響されない範囲の障害と定義する。
【００１６】
まず、データＤ１−Ｄ１０がキャッシュメモリに書き込まれ、メインメモリにライトバックされた後で、メモリへの追い出し前にソフトウェアアラームが発生した場合には、必要データのみキャッシュフラッシュされる。ここで、必要データがデータＤ１−Ｄ１０とすると、そのデータＤ１−Ｄ１０に対してキャッシュフラッシュが指示され、データＤ１−Ｄ１０は、ダブルライトされる。これにより、予備系では、データＤ１−Ｄ１０の引き継ぎが可能になる。
【００１７】
次に、図１７の（Ｃ）に示したように、予備系のメモリへの追い出し前に、たとえばハードウェアアラーム（ハード障害）が発生した場合について説明する。ここで、ハードウェアアラームは、キャッシュのフラッシュが不可能なウオッチドッグタイマ、クロック断等の障害と定義する。
【００１８】
この場合も、データＤ１−Ｄ１０がメインメモリにライトバックされるまでは、ソフトウェアアラームの場合と同じであるが、メモリへの追い出し前にハードウェアアラームが発生したとする。このときは、データＤ１−Ｄ１０を予備系に転送する手段はないので、予備系は、データＤ１−Ｄ１０が欠落し、データＤ１−Ｄ１０の引き継ぎを行うことはできない。したがって、現用系および予備系の両系がアラームになる。なお、欠落したデータＤ１−Ｄ１０がポインタデータのような場合、予備系は、メインメモリのメモリ破壊により、アラームとなる。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】特開平６−６７６７７号公報（図６）
【発明の概要】
【発明が解決しようとする課題】
【００２０】
従来のメモリデータ転送装置では、現用系での障害発生後に、予備系へのデータ転送の必要性を判断してからデータ転送を行っているので、発生障害がデータ転送に影響を及ぼすものであった場合、データの引き継ぎが行えなくなる。その結果、現用系・予備系ともにそれらの制御装置がアラーム状態となり、基地局の停止という重大な故障へと繋がってしまうという問題点があった。
【００２１】
本発明はこのような点に鑑みてなされたものであり、処理性能を落とさずにライトスルーキャッシュと同等の信頼性を確保することができるメモリデータ転送装置およびメモリデータ転送方法を提供することを目的とする。
【課題を解決するための手段】
【００２２】
本発明では上記の課題を解決するために、メモリデータ転送装置において、キャッシュメモリに対するキャッシュライトおよびキャッシュフラッシュを制御するキャッシュメモリ制御部と、メインメモリを制御するメインメモリ制御部と、前記キャッシュメモリ制御部におけるキャッシュライトデータに対して優先データを識別する優先データ識別部と、プログラムを実行するマイクロプロセッサのＣＰＵ使用率と前記優先データ識別部が識別した前記優先データとに基づいて前記キャッシュメモリ制御部がキャッシュフラッシュするタイミングを生成するキャッシュフラッシュ判定部と、を備え、前記キャッシュメモリ制御部は、前記生成したタイミングに基づいて前記優先データをキャッシュフラッシュすることを特徴とするメモリデータ転送装置が提供される。
【００２３】
また、本発明では、メモリデータ転送方法において、キャッシュメモリへのデータの書き込みがあったときに、マイクロプロセッサのＣＰＵ使用率を判断し、前記ＣＰＵ使用率が低いときから高くなるに連れてキャッシュフラッシュの間隔が長くなるように前記ＣＰＵ使用率に応じてキャッシュフラッシュのタイミングを設定し、書き込みのあったデータの中に優先データがないときには、設定された前記タイミングでキャッシュフラッシュを行い、前記優先データがあるときには、前記キャッシュメモリへのデータの書き込みに連動して前記優先データのみを明示的にキャッシュフラッシュする、ことを特徴とするメモリデータ転送方法が提供される。
【００２４】
このようなメモリデータ転送装置およびメモリデータ転送方法によれば、キャッシュライト時にＣＰＵ使用率に応じて設定されたタイミングでキャッシュフラッシュし、優先データがあればそれをキャッシュライトに連動して優先的にキャッシュフラッシュする。これにより、障害の発生が優先データのキャッシュフラッシュ後であれば、すでに他系への有効なデータの引き継ぎが済んでいるので、他系がアラームになることはない。
【発明の効果】
【００２５】
上記構成では、キャッシュライト時に優先データを優先的にキャッシュフラッシュし、その他のデータをＣＰＵ使用率に応じて設定された間隔を置いてキャッシュフラッシュしたことで、処理性能を落とすことなくライトスルーキャッシュと同等の信頼性を確保するという利点がある。
【図面の簡単な説明】
【００２６】
【図１】本発明の第１の実施の形態に係るメモリデータ転送装置の構成例を示すブロック図である。
【図２】キャッシュフラッシュ判定部の構成例を示すブロック図である。
【図３】メモリデータ転送装置の全体の動作を示すフラッシュ処理のフローチャートである。
【図４】ＣＰＵ使用率判定部の処理動作を示すフローチャートである。
【図５】フラッシュタイミング生成部の処理動作を示すフローチャートである。
【図６】優先データフラッシュ信号生成部の処理動作を示すフローチャートである。
【図７】正常動作時におけるライトバックフラッシュ処理の動作シーケンスを示す図である。
【図８】ソフトウェアアラーム時におけるライトバックフラッシュ処理の動作シーケンスを示す図である。
【図９】ハードウェアアラーム時におけるライトバックフラッシュ処理の動作シーケンスを示す図である。
【図１０】キャッシュフラッシュ判定部の変形例を示すブロック図である。
【図１１】第２フラッシュタイミング生成部の処理動作を示すフローチャートである。
【図１２】ＣＰＵ使用率とフラッシュ間隔との対応付けテーブルの例を示す図である。
【図１３】本発明の第２の実施の形態に係るメモリデータ転送装置の構成例を示すブロック図である。
【図１４】先読み動作の概念図である。
【図１５】従来のメモリデータ転送装置の構成例を示すブロック図である。
【図１６】従来のメモリデータ転送装置の動作フローを示す図である。
【図１７】従来のメモリデータ転送装置のライトバック動作シーケンスを示す図であって、（Ａ）は正常動作時におけるライトバックの通常処理を示し、（Ｂ）はソフトウェアアラーム時におけるライトバックの通常処理を示し、（Ｃ）はハードウェアアラーム時におけるライトバックの通常処理を示している。
【発明を実施するための形態】
【００２７】
以下、本発明の実施の形態について、携帯無線基地局における装置の信頼性確保のために現用／予備の冗長構成を持つ情報処理装置に適用したメモリデータ転送装置の場合を例に図面を参照して詳細に説明する。
【００２８】
図１は本発明の第１の実施の形態に係るメモリデータ転送装置の構成例を示すブロック図である。なお、この図１において、図１５に示した構成要素と同じまたは均等の構成要素については同じ符号を付してある。
【００２９】
メモリデータ転送装置は、プログラムを実行するマイクロプロセッサ（ＣＰＵ）１１を備え、これには、キャッシュメモリ制御部（ＣＭＵ）１２が接続されている。キャッシュメモリ制御部１２は、キャッシュメモリおよびそのライトバック制御回路と、優先データ識別部１８とを有し、さらに、マイクロプロセッサ１１からその使用率（以下、ＣＰＵ使用率）を取得する機能を有している。キャッシュメモリ制御部１２は、ＣＰＵ使用率と優先データを含むキャッシュライト信号とを監視して、フラッシュタイミングおよびフラッシュデータの判定を行うキャッシュフラッシュ判定部（ＣＪＵ：Cache-flush Judgment Unit）１９に接続されている。このキャッシュフラッシュ判定部１９は、マイクロプロセッサ１１とキャッシュメモリ制御部１２との接続部からＣＰＵ使用率の判定に必要な設定データを取得するように構成されている。
【００３０】
キャッシュメモリ制御部１２は、プロセッサバス１３を介してメインメモリ制御部（ＭＭＵ）１４に接続され、このメインメモリ制御部１４は、メインメモリ（ＭＭ）１５に接続されている。メインメモリ制御部１４とメインメモリ１５との接続部には、他系との整合性を取るためのダブルライト制御部（ＤＷＵ）１６が接続され、このダブルライト制御部１６は、他系のメインメモリにダブルライトを行うために他系のダブルライト制御部に接続されている。
【００３１】
プロセッサバス１３には、また、自系内の障害を検出する障害検出部（ＥＤＵ）１７が接続されている。この障害検出部１７の出力は、障害検出時にマイクロプロセッサ１１に割り込み通知を与えてキャッシュフラッシュ処理を開始させ、キャッシュメモリ制御部１２には、フラッシュ指示を与えるように接続されている。
【００３２】
図２はキャッシュフラッシュ判定部の構成例を示すブロック図である。
キャッシュフラッシュ判定部１９は、キャッシュメモリ制御部１２が測定したＣＰＵ使用率を受けてＣＰＵ使用率が高いか低いかを判定するＣＰＵ使用率判定部２０を備えている。ＣＰＵ使用率判定部２０には、フラッシュタイミング生成部２１が接続され、ＣＰＵ使用率判定部２０で判定されたＣＰＵ使用率およびキャッシュライト信号（データ）を基に定期フラッシュ指示信号を生成してキャッシュメモリ制御部１２へ出力する。キャッシュフラッシュ判定部１９は、また、優先データフラッシュ信号生成部２２を備えている。この優先データフラッシュ信号生成部２２は、ＣＰＵ使用率判定部２０で判定されたＣＰＵ使用率高信号と、キャッシュメモリ制御部１２からの優先データおよびキャッシュライト信号と、定期フラッシュ指示信号とを基に優先データフラッシュ指示信号を生成してキャッシュメモリ制御部１２へ出力する。
【００３３】
図３はメモリデータ転送装置の全体の動作を示すフラッシュ処理のフローチャートである。
まず、キャッシュメモリ制御部１２において、キャッシュメモリに対して書き込みがあったかどうかが判断される（ステップＳ１１）。キャッシュメモリに対する書き込みがなければ、そのままこのフラッシュ処理は終了する。
【００３４】
キャッシュメモリに対して書き込みがあると、ＣＰＵ使用率を監視しているキャッシュフラッシュ判定部１９のＣＰＵ使用率判定部２０は、ＣＰＵ使用率が低いかどうかを判断する（ステップＳ１２）。ここで、ＣＰＵ使用率が低いと判定されると、フラッシュタイミング生成部２１は、即座にキャッシュメモリをフラッシュするような定期フラッシュ指示信号を出力する（ステップＳ１３）。これは、キャッシュメモリに書き込まれたデータがすぐにメインメモリ１５に吐き出されることから、ライトスルー方式に近い動作となる。
【００３５】
ただし、ＣＰＵ使用率が高いと判定された場合には、即座のキャッシュフラッシュがマイクロプロセッサ１１の処理性能を落とすことになる。このため、ＣＰＵ使用率が高い場合は、フラッシュタイミング生成部２１によってあらかじめ定めた期間（以下、Ｔ１タイミングという）が経過したかどうかが判断され（ステップＳ１４）、Ｔ１タイミングが経過した場合は、キャッシュメモリをフラッシュする（ステップＳ１５）。
【００３６】
このように、処理性能を落とさないために、キャッシュメモリをフラッシュするまでに定期的に間隔を空けることにしているが、その間に障害が起きてしまうと、従来と同様、キャッシュメモリにあるデータの引き継ぎが行われないという結果になる。そこで、キャッシュメモリ制御部１２の優先データ識別部１８がキャッシュメモリに書かれたデータに対して優先データであるかどうかを識別する（ステップＳ１６）。これを受けたキャッシュフラッシュ判定部１９の優先データフラッシュ信号生成部２２は、優先データのみを明示的にキャッシュフラッシュするような優先データフラッシュ指示信号を出力し、キャッシュメモリ制御部１２が優先データのみをキャッシュフラッシュする（ステップＳ１７）。この優先データは、予備系と同一性を保つための引き継ぎが行われなくて問題になるようなデータを定義したもので、たとえば、メモリ空間のアドレスを表すポインタデータとすることができる。
【００３７】
図４はＣＰＵ使用率判定部の処理動作を示すフローチャートである。
キャッシュフラッシュ判定部１９のＣＰＵ使用率判定部２０は、まず、その設定データとして、ＣＰＵ使用率が低いと判断される閾値（低閾値）とＣＰＵ使用率が高いと判断される閾値（高閾値）とを読み込む（ステップＳ２１）。
【００３８】
次に、ＣＰＵ使用率判定部２０は、ＣＰＵ使用率が低閾値より低いかどうかが判断され（ステップＳ２２）、低閾値より低い場合は、ＣＰＵ使用率低信号を送出する（ステップＳ２３）。ステップＳ２２の判断にて、ＣＰＵ使用率が低閾値より低くない場合、ＣＰＵ使用率が高閾値より高いかどうかが判断され（ステップＳ２４）、高閾値より高い場合には、ＣＰＵ使用率高信号を送出する（ステップＳ２５）。ステップＳ２４の判断にて、ＣＰＵ使用率が高閾値より高くない場合、すなわち、ＣＰＵ使用率が低閾値と高閾値との間にある場合は、何も送出されない。
【００３９】
図５はフラッシュタイミング生成部の処理動作を示すフローチャートである。
キャッシュフラッシュ判定部１９のフラッシュタイミング生成部２１は、まず、設定データからフラッシュのタイミング初期設定値を読み込む（ステップＳ３１）。次に、フラッシュタイミング生成部２１では、ＣＰＵ使用率低信号があるかどうかが判断される（ステップＳ３２）。ＣＰＵ使用率低信号がある場合は、定期フラッシュのＴ１タイミングに対して、初期設定値を反映する（ステップＳ３３）。ここでは、ＣＰＵ使用率が低いときに即座にキャッシュメモリをフラッシュすることから、Ｔ１タイミングに０ミリ秒（ｍｓ）が設定される。
【００４０】
ステップＳ３２の判断にて、ＣＰＵ使用率低信号がない場合、ＣＰＵ使用率高信号があるかどうかが判断される（ステップＳ３４）。ＣＰＵ使用率高信号がある場合、Ｔ１タイミングに初期設定値を反映させてＴ１に１００ミリ秒のタイミングを設定する（ステップＳ３５）。ステップＳ３４の判断にて、ＣＰＵ使用率高信号がない場合には、Ｔ１タイミングに初期設定値を反映させてＴ１に５０ミリ秒のタイミングを設定する（ステップＳ３６）。
【００４１】
そして、フラッシュタイミング生成部２１は、以上のようにしてＣＰＵ使用率に応じて設定されたＴ１タイミングにて定期フラッシュ指示信号をキャッシュメモリ制御部１２へ送出する（ステップＳ３７）。
【００４２】
図６は優先データフラッシュ信号生成部の処理動作を示すフローチャートである。
キャッシュフラッシュ判定部１９の優先データフラッシュ信号生成部２２は、まず、ＣＰＵ使用率判定部２０がＣＰＵ使用率高信号を出力しているかどうかを判定し（ステップＳ４１）、ＣＰＵ使用率が高くないときには、何もせずにこの処理を抜ける。ＣＰＵ使用率が高い場合は、定期フラッシュのタイミングかどうかを判断し（ステップＳ４２）、定期フラッシュのタイミングであれば、フラッシュする必要はないので、何もせずにこの処理を抜ける。
【００４３】
ステップＳ４２の判断にて、定期フラッシュのタイミングでなければ、フラッシュとフラッシュとの狭間にあるので、その場合は、優先データがキャッシュライトされたかどうかを判断する（ステップＳ４３）。ここで、優先データがキャッシュライトされていれば、その優先データをキャッシュフラッシュする優先データフラッシュ指示信号をキャッシュメモリ制御部１２へ送出する（ステップＳ４４）。
【００４４】
図７は正常動作時におけるライトバックフラッシュ処理の動作シーケンスを示す図、図８はソフトウェアアラーム時におけるライトバックフラッシュ処理の動作シーケンスを示す図、図９はハードウェアアラーム時におけるライトバックフラッシュ処理の動作シーケンスを示す図である。
【００４５】
ここでは、キャッシュライトされるデータとして、たとえば、ＣＰＵ使用率が低いときにデータＤ１−Ｄ１０が書き込まれ、ＣＰＵ使用率が高いときにデータＤ１１−Ｄ１５が書き込まれ、そのデータＤ１１−Ｄ１５の中で、たとえばデータＤ１２が優先データである場合について説明する。
【００４６】
まず、ＣＰＵ使用率が低いときは、フラッシュタイミング生成部２１によってＴ１タイミングが０ミリ秒に設定されている。正常動作のときは、図７に示したように、最初のキャッシュライトＣＷ１にて、データＤ１−Ｄ５が書き込まれると、これに連動して直後の定期フラッシュＲＦ１にてそのデータＤ１−Ｄ５はフラッシュされ、予備系にデータＤ１−Ｄ５が引き継がれることになる。
【００４７】
同様に、次のキャッシュライトＣＷ２にて、データＤ６−Ｄ１０が書き込まれると、これに連動して直後の定期フラッシュＲＦ２にてそのデータＤ６−Ｄ１０はフラッシュされて、予備系に即座に引き継がれることになる。
【００４８】
ＣＰＵ使用率が高くなって、Ｔ１タイミングがたとえば１００ミリ秒に設定されたときに、次のキャッシュライトＣＷ３にて、データＤ１１−Ｄ１５が書き込まれたとする。このときは、基本的に、１００ミリ秒経過するまでライトバックフラッシュは行われない。しかし、その間に、データＤ１２が優先データであることが判明するので、その優先データＤ１２については、これのみを明示的にフラッシュする。このフラッシュのタイミングは、キャッシュライトに連動して行われる。これにより、優先データＤ１２に関しては、ライトスルー方式のときと同様に、即座に予備系に引き継がれて反映されることになる。その他のデータＤ１１，Ｄ１３−Ｄ１５については、１００ミリ秒経過した定期フラッシュＲＦ３のタイミングでフラッシュされ、予備系に引き継がれることになる。
【００４９】
次に、ＣＰＵ使用率が高いときにソフトウェアアラームが生じたときのライトバック動作シーケンスについて説明する。図８に示したように、ＣＰＵ使用率が低いときは、正常動作のときと同じで、キャッシュライトの直後にライトバックフラッシュにてデータＤ１−Ｄ５，Ｄ６−１０は、即座に予備系に反映される。
【００５０】
ＣＰＵ使用率が高くなって、キャッシュライトＣＷ３にて、データＤ１１−Ｄ１５が書き込まれ、優先データＤ１２のみが明示的にフラッシュされ、その後に障害検出部１７がソフトウェアアラームの発生を検出したと想定する。この場合のソフトウェアアラームは、キャッシュフラッシュに影響しない範囲の障害とする。したがって、ソフトウェアアラームが検出されると、直ちにキャッシュフラッシュが行われ、残りのデータＤ１１，Ｄ１３−Ｄ１５も予備系に引き継がれ、その後に、現用系と予備系との切替えが行われることになる。
【００５１】
次に、ＣＰＵ使用率が高いときにハードウェアアラームが生じたときのライトバック動作シーケンスについて説明する。図９に示したように、ＣＰＵ使用率が低いときは、正常動作のときと同じで、キャッシュライトの直後にライトバックフラッシュにてデータＤ１−Ｄ５，Ｄ６−１０は、即座に予備系に反映される。
【００５２】
ＣＰＵ使用率が高くなって、キャッシュライトＣＷ３にて、データＤ１１−Ｄ１５が書き込まれ、優先データＤ１２のみが明示的にフラッシュされ、その後に障害検出部１７がハードウェアアラームの発生を検出したと想定する。この場合のハードウェアアラームは、キャッシュフラッシュが不可能なクロック断等のハードウェア障害とする。
【００５３】
このハードウェアアラームが検出されると、予備系にて残りのデータＤ１１，Ｄ１３−Ｄ１５が欠落した状態で系の切り換えが行われる。このとき、優先データＤ１２については、引き継ぎが済んでいるので、予備系はアラームにならず、そのまま現用系に切り換えられる。
【００５４】
このように、データが欠落しても、予備系が動作することが可能な場合がある。実際には、メモリ全体で優先データの占める割合がそれ程多くないので、アラームにならずに予備系へ切り換えられて情報処理を継続できる確率を高くすることを可能にしている。
【００５５】
図１０はキャッシュフラッシュ判定部の変形例を示すブロック図、図１１は第２フラッシュタイミング生成部の処理動作を示すフローチャート、図１２はＣＰＵ使用率とフラッシュ間隔との対応付けテーブルの例を示す図である。なお、図１０において、図２に示した構成要素と同じまたは均等の構成要素については同じ符号を付してその詳細な説明は省略する。
【００５６】
このキャッシュフラッシュ判定部１９ａは、フラッシュタイミングの生成を大まかに行う第１フラッシュタイミング生成部２１ａと、詳細に行う第２フラッシュタイミング生成部２１ｂと、これらの出力に設けられたセレクタ２３とを備えている。これにより、第１フラッシュタイミング生成部２１ａおよび第２フラッシュタイミング生成部２１ｂは、必要に応じてセレクタ２３により切り換えて使用される。
【００５７】
第１フラッシュタイミング生成部２１ａは、図２のフラッシュタイミング生成部２１と同様の機能を有し、図５に示したように、Ｔ１タイミングをＣＰＵ使用率に応じてあらかじめ初期設定された３つの固定値（０ミリ秒、５０ミリ秒、１００ミリ秒）に設定することができる。
【００５８】
第２フラッシュタイミング生成部２１ｂは、ＣＰＵ使用率に応じて多段階のＴ１タイミングを設定するもので、その設定に、ＣＰＵ使用率判定部２０の判定結果と、図１２に示すテーブルとを使用している。
【００５９】
この第２フラッシュタイミング生成部２１ｂの処理動作は、図１１に示したように、まず、設定データからフラッシュのタイミング初期設定値を読み込んで図１２に示すテーブルを作成することから開始される（ステップＳ５１）。次に、第２フラッシュタイミング生成部２１ｂでは、ＣＰＵ使用率低信号があるかどうかが判断される（ステップＳ５２）。ＣＰＵ使用率低信号がある場合は、図１２のテーブルを参照し、定期フラッシュのＴ１タイミングに対してＣＰＵ使用率低信号に対応する０ミリ秒（ｍｓ）の初期設定値が反映される（ステップＳ５３）。
【００６０】
ステップＳ５２の判断にて、ＣＰＵ使用率低信号がない場合、ＣＰＵ使用率高信号があるかどうかが判断される（ステップＳ５４）。ＣＰＵ使用率高信号がある場合、Ｔ１タイミングにＣＰＵ使用率高信号に対応する１５０ミリ秒のタイミングを設定する（ステップＳ５５）。
【００６１】
ステップＳ５４の判断にて、ＣＰＵ使用率高信号がない場合、ＣＰＵ使用率が５５％未満かどうかが判断される（ステップＳ５６）。ＣＰＵ使用率が５５％未満の場合、そのＣＰＵ使用率に対応する２５ミリ秒がＴ１タイミングに設定される（ステップＳ５７）。
【００６２】
ステップＳ５６の判断にて、ＣＰＵ使用率が５５％未満でない場合、ＣＰＵ使用率が６０％未満かどうかが判断される（ステップＳ５８）。ＣＰＵ使用率が６０％未満の場合には、そのＣＰＵ使用率に対応する５０ミリ秒がＴ１タイミングに設定される（ステップＳ５９）。
【００６３】
ステップＳ５８の判断にて、ＣＰＵ使用率が６０％未満でない場合、ＣＰＵ使用率が６５％未満かどうかが判断される（ステップＳ６０）。ＣＰＵ使用率が６５％未満の場合には、そのＣＰＵ使用率に対応する７５ミリ秒がＴ１タイミングに設定される（ステップＳ６１）。
【００６４】
ステップＳ６０の判断にて、ＣＰＵ使用率が６５％未満でない場合、ＣＰＵ使用率が７０％未満かどうかが判断される（ステップＳ６２）。ＣＰＵ使用率が７０％未満の場合には、そのＣＰＵ使用率に対応する１００ミリ秒がＴ１タイミングに設定され（ステップＳ６３）、ＣＰＵ使用率が７０％未満でなければ。そのＣＰＵ使用率に対応する１２５ミリ秒がＴ１タイミングに設定される（ステップＳ６４）。
【００６５】
そして、第２フラッシュタイミング生成部２１ｂは、以上のようにしてＣＰＵ使用率に応じて可変的に設定されたＴ１タイミングにて定期フラッシュ指示信号をキャッシュメモリ制御部１２へ送出する（ステップＳ６５）。
【００６６】
図１３は本発明の第２の実施の形態に係るメモリデータ転送装置の構成例を示すブロック図、図１４は先読み動作の概念図である。なお、この図１３において、図１に示した構成要素と同じまたは均等の構成要素については同じ符号を付してある。
【００６７】
この第２の実施の形態に係るメモリデータ転送装置によれば、キャッシュメモリ制御部１２にデータ先読み制御部２４を備えている。このデータ先読み制御部２４の目的は、キャッシュメモリ制御部１２にキャッシュライトされたデータが頻繁にフラッシュされることによってキャッシュメモリの中にデータが蓄積しにくいという状況にあるので、それを解消することにある。
【００６８】
マイクロプロセッサ１１は、キャッシュメモリ制御部１２のキャッシュメモリにアクセスしてデータ処理を行うが、キャッシュメモリに処理対象のデータがない場合は、そのデータをあらかじめメインメモリ１５から転送しておく必要がある。データ先読み制御部２４は、マイクロプロセッサ１１が別のデータ処理を行っている間に、次に処理すべきデータを転送しておくものである。
【００６９】
すなわち、図１４に示したように、メインメモリ１５からキャッシュメモリへのＮ番目のデータ転送が完了し、そのデータに関してマイクロプロセッサ１１がデータ処理を行うときに、Ｎ＋１番目のデータ転送を開始し、先読みでデータを取得しておく。Ｎ番目のデータのデータ処理が完了し、Ｎ＋１番目のデータ転送が完了して、そのＮ＋１番目のデータに関するデータ処理を行うときに、Ｎ＋２番目のデータ転送を開始し、先読みでデータを取得しておく。これにより、マイクロプロセッサ１１がキャッシュメモリをリードするときの性能低下を防ぐことができる。
【００７０】
（付記１）  メモリデータ転送装置において、
キャッシュメモリに対するキャッシュライトおよびキャッシュフラッシュを制御するキャッシュメモリ制御部と、
メインメモリを制御するメインメモリ制御部と、
前記キャッシュメモリ制御部におけるキャッシュライトデータに対して優先データを識別する優先データ識別部と、
プログラムを実行するマイクロプロセッサのＣＰＵ使用率と前記優先データ識別部が識別した前記優先データとに基づいて前記キャッシュメモリ制御部がキャッシュフラッシュするタイミングを生成するキャッシュフラッシュ判定部と、
を備え、
前記キャッシュメモリ制御部は、前記生成したタイミングに基づいて前記優先データをキャッシュフラッシュすることを特徴とするメモリデータ転送装置。
【００７１】
（付記２）  前記キャッシュメモリ制御部は、前記マイクロプロセッサが処理すべきデータをあらかじめ前記メインメモリから転送しておくデータ先読み制御部を備え、前記マイクロプロセッサによるキャッシュメモリに対するメモリリード時の性能低下を防ぐようにしたことを特徴とする付記１記載のメモリデータ転送装置。
【００７２】
（付記３）  前記データ先読み制御部は、前記マイクロプロセッサがデータ処理中に次データを先読みすることで、データ転送とデータ処理を独立に実行可能としたことを特徴とする付記２記載のメモリデータ転送装置。
【００７３】
（付記４）  前記キャッシュフラッシュ判定部は、前記マイクロプロセッサの前記ＣＰＵ使用率を判定するＣＰＵ使用率判定部と、前記ＣＰＵ使用率判定部で判定された前記ＣＰＵ使用率に応じたフラッシュタイミングを生成して前記キャッシュメモリ制御部にフラッシュの間隔を指示するフラッシュタイミング生成部と、前記ＣＰＵ使用率が高いと判定されたときに、前記優先データ識別部で識別された前記優先データのキャッシュライトに応じて前記キャッシュメモリ制御部にフラシュ指示を出力する優先データフラッシュ信号生成部とを有していることを特徴とする付記１記載のメモリデータ転送装置。
【００７４】
（付記５）  前記ＣＰＵ使用率判定部は、初期設定されたＣＰＵ使用率の高・低それぞれの閾値情報を基に、測定したＣＰＵ使用率を判定した結果であるＣＰＵ使用率高信号およびＣＰＵ使用率低信号を出力することで、キャッシュフラッシュタイミングを決定することを特徴とする付記４記載のメモリデータ転送装置。
【００７５】
（付記６）  前記フラッシュタイミング生成部は、前記ＣＰＵ使用率判定部で判定された前記ＣＰＵ使用率の高・低信号に応じて、初期設定されたＣＰＵ使用率高時のキャッシュフラッシュタイミング、ＣＰＵ使用率低時のキャッシュフラッシュタイミング、または、前記ＣＰＵ使用率高および前記ＣＰＵ使用率低以外のキャッシュフラッシュタイミングで、フラッシュ指示信号を出力することを特徴とする付記４記載のメモリデータ転送装置。
【００７６】
（付記７）  前記優先データフラッシュ信号生成部は、ＣＰＵ使用率高時の定期フラッシュタイミング間の非フラッシュ期間であっても前記優先データがキャッシュライトされた場合、前記フラッシュタイミング生成部のフラッシュタイミングに依存せずに、明示的に前記優先データのキャッシュフラッシュ信号を出力することを特徴とする付記４記載のメモリデータ転送装置。
【００７７】
（付記８）  前記キャッシュフラッシュ判定部は、前記マイクロプロセッサの前記ＣＰＵ使用率を判定するＣＰＵ使用率判定部と、前記ＣＰＵ使用率判定部で判定された前記ＣＰＵ使用率に応じたフラッシュタイミングを固定的に生成する第１フラッシュタイミング生成部と、前記ＣＰＵ使用率判定部で判定された前記ＣＰＵ使用率に応じたフラッシュタイミングを可変的に生成する第２フラッシュタイミング生成部と、前記第１フラッシュタイミング生成部によるフラッシュタイミングまたは前記第２フラッシュタイミング生成部によるフラッシュタイミングを選択して前記キャッシュメモリ制御部に定期フラッシュの間隔を指示するセレクタと、前記ＣＰＵ使用率が高いと判定されたときに、前記優先データ識別部で識別された前記優先データのキャッシュライトに応じて前記キャッシュメモリ制御部にフラシュ指示を出力する優先データフラッシュ信号生成部とを有していることを特徴とする付記１記載のメモリデータ転送装置。
【００７８】
（付記９）  前記第１フラッシュタイミング生成部は、前記ＣＰＵ使用率判定部で判定された前記ＣＰＵ使用率の高・低信号に応じて、初期設定されたＣＰＵ使用率高時のキャッシュフラッシュタイミング、ＣＰＵ使用率低時のキャッシュフラッシュタイミング、または、前記ＣＰＵ使用率高および前記ＣＰＵ使用率低以外のキャッシュフラッシュタイミングで、フラッシュ指示信号を出力することを特徴とする付記８記載のメモリデータ転送装置。
【００７９】
（付記１０）  前記第２フラッシュタイミング生成部は、初期設定されたＣＰＵ使用率高時のキャッシュフラッシュタイミング、ＣＰＵ使用率低時のキャッシュフラッシュタイミングの他に、前記ＣＰＵ使用率高および前記ＣＰＵ使用率低以外のキャッシュフラッシュタイミングをステップ可変させてフラッシュ指示信号としたことを特徴とする付記８記載のメモリデータ転送装置。
【００８０】
（付記１１）  前記優先データフラッシュ信号生成部は、ＣＰＵ使用率高時の定期フラッシュタイミング間の非フラッシュ期間であっても前記優先データがキャッシュライトされた場合、前記第１フラッシュタイミング生成部または前記第２フラッシュタイミング生成部のフラッシュタイミングに依存せずに、明示的に前記優先データのキャッシュフラッシュ信号を出力することを特徴とする付記８記載のメモリデータ転送装置。
【００８１】
（付記１２）  メモリデータ転送方法において、
キャッシュメモリへのデータの書き込みがあったときに、マイクロプロセッサのＣＰＵ使用率を判断し、
前記ＣＰＵ使用率が低いときから高くなるに連れてキャッシュフラッシュの間隔が長くなるように前記ＣＰＵ使用率に応じてキャッシュフラッシュのタイミングを設定し、
書き込みのあったデータの中に優先データがないときには、設定された前記タイミングでキャッシュフラッシュを行い、前記優先データがあるときには、前記キャッシュメモリへのデータの書き込みに連動して前記優先データのみを明示的にキャッシュフラッシュする、
ことを特徴とするメモリデータ転送方法。
【００８２】
（付記１３）  前記優先データがキャッシュフラッシュされた残りのデータは、設定された次の定期フラッシュの前記タイミングでキャッシュフラッシュすることを特徴とするメモリデータ転送方法。
【符号の説明】
【００８３】
１１  マイクロプロセッサ
１２  キャッシュメモリ制御部
１３  プロセッサバス
１４  メインメモリ制御部
１５  メインメモリ
１６  ダブルライト制御部
１７  障害検出部
１８  優先データ識別部
１９，１９ａ  キャッシュフラッシュ判定部
２０  ＣＰＵ使用率判定部
２１  フラッシュタイミング生成部
２１ａ  第１フラッシュタイミング生成部
２１ｂ  第２フラッシュタイミング生成部
２２  優先データフラッシュ信号生成部
２３  セレクタ
２４  データ先読み制御部
【図１】
2011107995.tif 000003
【図２】
2011107995.tif 000004
【図３】
2011107995.tif 000005
【図４】
2011107995.tif 000006
【図５】
2011107995.tif 000007
【図６】
2011107995.tif 000008
【図７】
2011107995.tif 000009
【図８】
2011107995.tif 000010
【図９】
2011107995.tif 000011
【図１０】
2011107995.tif 000012
【図１１】
2011107995.tif 000013
【図１２】
2011107995.tif 000014
【図１３】
2011107995.tif 000015
【図１４】
2011107995.tif 000016
【図１５】
2011107995.tif 000017
【図１６】
2011107995.tif 000018
【図１７】
2011107995.tif 000019