(57)【要約】 【目的】  簡単な構成でキャッシュシステムを安全に運用可能なことを課題とする。【構成】  ＣＰＵと、該ＣＰＵが使用するキャッシュメモリと主メモリとを備え、前記キャッシュメモリに対して周期的に置換フラッシュを行うプロセッサシステムのキャッシュフラッシュ方法において、前記主メモリ上に設けたそれぞれがキャッシュサイズに相当する複数の置換フラッシュ用メモリエリア（例えばＡ面，Ｂ面）を備え、該複数の置換フラッシュ用メモリエリアのデータを交互に読み出すことでキャッシュメモリの置換フラッシュを行う。【選択図】  図３
2008191962.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、該ＣＰＵが使用するキャッシュメモリと主メモリとを備え、前記キャッシュメモリに対して周期的に置換フラッシュを行うプロセッサシステムのキャッシュフラッシュ方法において、
前記主メモリ上に設けたそれぞれがキャッシュサイズに相当する複数の置換フラッシュ用メモリエリアを備え、
該複数の置換フラッシュ用メモリエリアのデータを交互に読み出すことで前記キャッシュメモリの置換フラッシュを行う
ことを特徴とするキャッシュフラッシュ方法。
【請求項２】
ＣＰＵと、該ＣＰＵが使用するキャッシュメモリと主メモリとを備え、前記キャッシュメモリに対して周期的に置換フラッシュを行うプロセッサシステムにおいて、
前記主メモリ上に設けたそれぞれがキャッシュサイズに相当する複数の置換フラッシュ用メモリエリアと、
該複数の置換フラッシュ用メモリエリアのデータを交互に読み出すことで前記キャッシュメモリの置換フラッシュを行うフラッシュ制御手段と、
を備えたことを特徴とするプロセッサシステム。
【請求項３】
前記置換フラッシュ用メモリエリアを２面備えたことを特徴とする請求項２記載のプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプロセッサシステム及びキャッシュフラッシュ方法に関し、更に詳しくは、ＣＰＵと、該ＣＰＵが使用するキャッシュメモリと主メモリとを備え、前記キャッシュメモリに対して周期的に置換フラッシュを行うプロセッサシステム及びキャッシュフラッシュ方法に関する。
【背景技術】
【０００２】
プロセッサシステムでは、ソフトウェアによるメモリ使用の局所性を利用し、高速小容量のキャッシュメモリと低速大容量の主メモリとを組み合わせることで、ＣＰＵの処理性能を大幅に向上させている。ＣＰＵは基本的にはキャッシュメモリのみをアクセス（リード／ライト）の対象としており、主メモリとキャッシュ間のデータ転送は例えば各６４バイト分のキャッシュライン（cashe line）を単位として行われる。
【０００３】
ＣＰＵのリードデータがキャッシュメモリ上に存在する（キャッシュヒットの）場合は該データは直ちにキャッシュメモリから読み出されるが、キャッシュメモリ上に存在しない（キャッシュミスの）場合は、目的のデータを含むキャッシュラインを主メモリからキャッシュメモリに読み込む（キャッシュフィルする）と共にＣＰＵにも出力する。
【０００４】
また、コピーバック（ライトバック）型のキャッシュメモリでは、ＣＰＵからのライトデータがキャッシュヒットした場合は、キャッシュデータのみを書き換え、主メモリデータは後に必要が生じた時にのみ書き換えることで、高速なデータ書込動作を可能としている。また、これによりキャッシュデータと主メモリデータとの間には一時的に不一致（ダーティー）の状態が生じるが、このダーティーラインのデータはキャッシュフィルのためにあるラインを廃棄するとき等に主メモリに書き戻（コピーバック／ライトバック）される。係る基本的な技術を背景に、以下に、従来の置換フラッシュ制御とその問題点を具体的に説明する。
【０００５】
図４は従来技術を説明する図で、主メモリ１５とキャッシュメモリ１２の記憶態様を示している。一般に、主メモリ１５上のアプリケーションプログラム（タスク）ａ〜ｄは不図示のＯＳ管理の下で動作と停止を繰り返している。このため、キャッシュメモリ１５の一部がアプリケーションプログラムによって使われずに長期間保留される可能性があると共に、この保留されたメモリ領域では宇宙線（中性子）等の影響により単発的にビット化け（ソフトエラー）が発生し、キャッシュメモリ上のデータを正しく読み出せない場合が生じる。
【０００６】
この点、主メモリ１５では１ビットエラーを訂正可能なＥＣＣ符号（Error Correcting
Code）を採用することで、データの喪失をある程度抑止できるが、キャッシュメモリ１２は高速動作するためにＥＣＣ計算による速度低下が問題となり、パリティー検査のみを採用するケースが多い。
【０００７】
そこで、従来は、この対策として特定のプログラムにより定期的（図の時刻ｔ２，ｔ３等）に主メモリ１５内の所定の領域（Ａ面）のデータｈ〜ｋを読み出すことで、強制的にキャッシュあふれを起こし、キャッシュメモリ上の更新されたデータａ〜ｄを主メモリ１５にフラッシュバックさせると共に、該キャッシュメモリをＡ面のデータｈ〜ｋによりキャッシュフィルすることが行われる。この操作は置換フラッシュと呼ばれ、これにより、アプリケーションプログラムａ〜ｄのデータは次回の走行時まで主メモリ１５上に安全に退避される。
【特許文献１】特開２０００−２９８６１９
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記従来のように毎回同じＡ面のデータで置換フラッシュを行う方式であると、置換フラッシュ中にキャッシュエラーが検出されしまうと言う問題があった。即ち、例えば時刻ｔ２で置換フラッシュして後、時刻ｔ３で置換フラッシュするまでの間に、キャッシュメモリ１２上でソフトエラーが発生したとすると、時刻ｔ３では前回置換フラッシュした際のデータｈ〜ｋがキャッシュメモリ１２上に残ったままであると共に、これらのデータはその後更新されていないため、時刻ｔ３の読み出しではキャッシュヒットする。このため、キャッシュメモリ１２からはソフトエラーを含んだデータが読み出され、キャッシュエラーが検出されてしまう問題があった。
【０００９】
なお、従来は、運用用と退避用とに二重化したキャッシュメモリ２０３，２０４を備え、データ更新時には更新データを両キャッシュメモリに反映させ、一方のキャッシュメモリで障害が検出された場合には、障害が発生していない側のキャッシュメモリ内のデータを主記憶装置に書き戻すキャッシュメモリの障害処理方式が知られている（特許文献１）。しかし、高価なキャッシュメモリを２重化するのはコスト面からも得策では無い。
【００１０】
本発明は上記従来技術の問題点に鑑みなされたものであり、その目的は、簡単な構成でキャッシュシステムを安全に運用可能なプロセッサシステム及びキャッシュフラッシュ方法を提供することにある。
【課題を解決するための手段】
【００１１】
本発明の第１の態様によるキャッシュフラッシュ方法は、ＣＰＵと、該ＣＰＵが使用するキャッシュメモリと主メモリとを備え、前記キャッシュメモリに対して周期的に置換フラッシュを行うプロセッサシステムのキャッシュフラッシュ方法において、前記主メモリ上に設けたそれぞれがキャッシュサイズに相当する複数の置換フラッシュ用メモリエリアを備え、該複数の置換フラッシュ用メモリエリアのデータを交互に読み出すことで前記キャッシュメモリの置換フラッシュを行うものである。
【００１２】
本発明では、主メモリ上における異なる置換フラッシュ用メモリエリアのデータを交互に読み出す構成により、ソフトエラーに基づくキャッシュエラーの発生を有効に防止できる。これを図３の例で具体的に説明すると、時刻ｔ２とｔ３の間でキャッシュメモリ１２にソフトエラ−が発生していても、時刻ｔ３の読み出しではキャッシュメモリ１２上の古いデータｈ〜ｋが更新されていないため、主メモリ１５にはフラッシュバックされずにそのまま破棄されてしまう。また、時刻ｔ３の読み出しでは置換アドレスが異なるためにキャッシュミスとなって、キャッシュメモリ１２上のソフトエラーを含むデータは実際には読み出されない。従って、キャッシュエラーは検出されない。
【００１３】
以上からして、本発明によれば、主メモリ上の異なる置換フラッシュ用エリアを交互に読み出すだけの極めて簡単な構成により、プロセッサシステムを高速かつ安全に運用可能である。
【００１４】
本発明の第２の態様によるプロセッサシステムは、ＣＰＵと、該ＣＰＵが使用するキャッシュメモリと主メモリとを備え、前記キャッシュメモリに対して周期的に置換フラッシュを行うプロセッサシステムにおいて、前記主メモリ上に設けたそれぞれがキャッシュサイズに相当する複数の置換フラッシュ用メモリエリアと、該複数の置換フラッシュ用メモリエリアのデータを交互に読み出すことで前記キャッシュメモリの置換フラッシュを行う
フラッシュ制御手段と、を備えたものである。
【００１５】
本発明の第３の態様では、前記置換フラッシュ用メモリエリアを２面備えたものである。従って、本発明を効率よく実現できる。
【発明の効果】
【００１６】
以上述べた如く本発明によれば、簡単な構成でキャッシュシステムを高速かつ安全に運用可能となるため、プロセッサシステムの信頼性向上に寄与するところが極めて大きい。
【発明を実施するための最良の形態】
【００１７】
以下、添付図面に従って本発明に好適なる実施の形態を詳細に説明する。なお、全図を通して同一符号は同一又は相当部分を示すものとする。図１は実施の形態によるプロセッサシステムのブロック図で、本発明のシングルＣＰＵシステムへの適用例を示している。
【００１８】
図において、１１はＣＰＵ、１１ａはＣＰＵ１１のプロセッサバス（ホストバス）、１２はＳＲＡＭ（Static ＲＡＭ）等からなる高速のキャッシュメモリ、１３はライトバック（又はコピーバックとも言う）方式によるキャッシュ制御部、１４は所定周期で置換フラッシュ用の起動信号を発生するタイマ、１５はＳＤＲＡＭ（Synchronous ＤＲＡＭ）等からなる主メモリ、１６は主メモリ制御部、１７はシステムバス（ＳＢ）、１８は各種ＩＯ装置を接続するためのＩＯバス（ＩＯＢ）、１９はシステムバス１７とＩＯバス１８の間を接続するＩＯブリッジ、２０は不図示の各種ＩＯ装置に接続してＩＯバス１８のアクセス制御を行うバスマスタである。
【００１９】
係る構成により、ＣＰＵ１１がキャッシュ制御部１３にデータの読み出しを要求すると、キャッシュメモリ１２内にデータが存在する場合は該データは直ちにキャッシュメモリ１２から読み出されるが、キャッシュメモリ上に存在しない場合は、キャッシュ制御部１３は主メモリ制御部１６に当該データの読み出しを要求する。主メモリ制御部１６は要求されたデータをキャッシュ制御部１３に出力し、キャッシュ制御部１３ではそのデータをキャッシュメモリ１２に記憶すると共に、ＣＰＵ１１にも出力する。
【００２０】
一方、ＣＰＵ１１からのデータの書き込みがキャッシュヒットした場合は、該データはキャッシュメモリ１２にのみ書き込まれ、主メモリ１５への書き込み（コピーバック）は、主メモリ１５に書き込む必要が生じた場合（例えば、キャッシュデータがダーティーの状態で、かつキャッシュあふれが生じた場合）に行われる。係る構成により、以下に実施の形態による置換フラッシュの動作を具体的に説明する。
【００２１】
図２は実施の形態による置換フラッシュ処理のフローチャートで、タイマ１４が定期的にタイムアウトするとこの処理に入力する。ステップＳ１１では置換フラグ＝１か否かを判別する。図示しないが、最初は置換フラグ＝０に初期化されており、置換フラグ＝０の場合は、ステップＳ１２で主メモリ１５のデータ読み出し用オフセットレジスタoffsetにＡ面のアドレス「００００００００」をセットする。ステップＳ１４では主メモリ１５の所定の置換用ベースアドレスに上記オフセットアドレス分を加えたアドレスからキャッシュメモリ１２の１ライン分（例えば６４バイト分）を置換フラッシュ（リード）する。ステップＳ１５では置換フラッシュアドレスを更新（即ち、offset ← offset＋６４）する。ステップＳ１６ではＡ面（例えば２Ｍバイト分）の置換フラッシュ完了か否かを判別し、完了でない場合はステップＳ１４に戻る。こうして、やがて、Ａ面の置換フラッシュを完了すると、ステップＳ１７では置換フラグを反転し、この処理を抜ける。
【００２２】
次にこの処理に入力した時は、上記ステップＳ１１の判別で置換フラグ＝１により、フローはステップＳ１３に進み、オフセットレジスタoffsetにＢ面のアドレス「００１００
０００」をセットする。これによりステップＳ１４以降ではＢ面による置換フラッシュが行われる。
【００２３】
図３は実施の形態によるキャッシュ制御の動作を説明する図である。この例では、置換フラッシュエリアをＡ面とＢ面の２面とし、Ａ面のオフセットアドレスoffset＝「００００００００」〜「０００ＦＦＦＦＦ」、Ｂ面のオフセットアドレスoffset＝「０１０００００」〜「００１ＦＦＦＦＦ」のそれぞれ２Ｍバイトとしている。置換フラグ＝０の場合はＡ面を用いて置換フラッシュを行い、置換フラグ＝１の場合はＢ面を用いて置換フラッシュを行うこととし、各置換フラッシュ完了後に置換フラグを反転する。
【００２４】
本実施の形態では主メモリ１５のＡ面とＢ面を交互に読み出すことにより、ソフトエラーに基づくキャッシュエラーの検出を有効に防止できる。これを図３の例で具体的に説明すると、時刻ｔ２とｔ３の間でキャッシュメモリ１２にソフトエラ−が発生していても、時刻ｔ３の読み出しではキャッシュメモリ１２上の古いデータｈ〜ｋが更新されていないため、主メモリ１５にはフラッシュバックされずにそのまま破棄されてしまう。また、時刻ｔ３の読み出しでは置換アドレスが前回のｔ２とは異なるためにキャッシュミスとなって、キャッシュメモリ１２上のソフトエラーを含むデータは実際には読み出されない。従って、キャッシュエラーは検出されない。以上からして、本実施の形態によれば異なる置換フラッシュ領域を交互に読み出すだけの極めて簡単な構成によりプロセッサシステムを安全に運用可能である。
【００２５】
なお、上記実施の形態ではシングルＣＰＵシステムへの適用例を述べたが、これに限らない。本発明は自己のキャッシュメモリを有する複数のＣＰＵが並列に動作するマルチＣＰＵシステムにも適用可能である。
【００２６】
また、上記本発明に好適なる実施の形態を述べたが、本発明思想を逸脱しない範囲内で各部の構成、制御、処理及びこれらの組合せの様々な変更が行えることは言うまでも無い。
【図面の簡単な説明】
【００２７】
【図１】実施の形態によるプロセッサシステムのブロック図である。
【図２】実施の形態による置換フラッシュ処理のフローチャートである。
【図３】実施の形態によるキャッシュ制御の動作を説明する図である。
【図４】従来技術を説明する図である。
【符号の説明】
【００２８】
１１  ＣＰＵ
１１ａ  プロセッサバス（ホストバス）
１２  キャッシュメモリ
１３  キャッシュ制御部
１４  タイマ
１５  主メモリ
１６  主メモリ制御部
１７  システムバス（ＳＢ）
１８  ＩＯバス（ＩＯＢ）
１９  ＩＯブリッジ
２０  バスマスタ
【図１】
2008191962.tif 000003
【図２】
2008191962.tif 000004
【図３】
2008191962.tif 000005
【図４】
2008191962.tif 000006