(57)【要約】【課題】  システム性能を低下させることなくメモリに格納されたデータの信頼性を高く保つ。【解決手段】  ＣＰＵと、複数のメモリブロックからなるメモリと、周期的に前記メモリブロックの誤り検出および誤り訂正を行うメモリパトロール手段と、メモリパトロールの実行を制御するメモリパトロール制御手段と、前記ＣＰＵから前記メモリブロックへのアクセス回数をカウントするアクセス頻度算出手段とを備え、前記アクセス回数が所定値を超えた場合に当該メモリブロックに対する前記メモリパトロールの回数を減らす。【選択図】      図１
2014059821.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、複数のメモリブロックからなるメモリと、周期的に前記メモリブロックの誤り検出および誤り訂正を行うメモリパトロール手段と、メモリパトロールの実行を制御するメモリパトロール制御手段と、前記ＣＰＵから前記メモリブロックへのアクセス回数をカウントするアクセス頻度算出手段とを備え、前記アクセス回数が所定値を超えた場合に当該メモリブロックに対する前記メモリパトロールの回数を減らすことを特徴とするメモリパトロールの制御方式。
【請求項２】
前記メモリパトロールが周期的に行われ、前記アクセスカウントが所定値を超えた場合に当該ブロックに対する前記メモリパトロールをスキップすることを特徴とする請求項１記載のメモリパトロール制御方式。
【請求項３】
前記メモリパトロールの前記スキップが所定の回数に達した場合に、当該メモリブロックのパトロールを実施することを特徴とする請求項２記載のメモリパトロール制御方式。
【請求項４】
前記アクセス回数のカウントをＷＲＩＴＥアクセスのみで行うことを特徴とする請求項１乃至請求項４いずれか一項に記載のメモリパトロール制御方式。
【請求項５】
ＣＰＵと、複数のメモリブロックからなるメモリと、周期的に前記メモリブロックの誤り検出および誤り訂正を行うメモリパトロール手段と、メモリパトロールの実行を制御するメモリパトロール制御手段と、前記ＣＰＵから前記メモリブロックへのアクセス回数をカウントするアクセス頻度算出手段とを有し、前記メモリパトロール制御手段が、前記アクセス回数が所定値を超えた場合に当該メモリブロックに対する前記メモリパトロールの回数を減らすメモリパトロール回数調整手段を備えることを特徴とするメモリパトロール制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリパトロール制御方式に関する。
【背景技術】
【０００２】
情報処理装置に搭載されるメモリでは、データを格納しているうちに、ソフトエラーなどによりデータが誤った値となってしまう場合がある。このエラー訂正を通常のアクセスとは独立して行うのがメモリパトロールである。メモリパトロールではＯＳやＣＰＵリソースを使用しないため、簡易かつ高速にデータのエラー検出および訂正を行うことが可能である。
【０００３】
しかしながら、情報処理装置の大容量化、高速化に伴って、ＯＳやＣＰＵによる通常のアクセスと、メモリパトロールによるアクセスとの競合が多発するようになってきた。このような競合によるパフォーマンスの低下が、近年問題となっている。
【０００４】
特許文献１には、前記のようなパフォーマンス低下を抑える技術が開示されている。図５はこの技術におけるメモリ制御システムを示すブロック図である。このシステムはＣＰＵ１０１、メモリ１０２、メモリコントローラ１０３から構成される。メモリコントローラ１０３はメモリパトロール診断要求部１１１、アクセス制御部１１２、データ制御部１１３、競合検出情報部１１６、ソフト設定情報部１１７を内蔵する。メモリパトロール診断要求部１１１は診断アクセス要求調整部１１４を有し、アクセス制御部１１２はメモリアクセス競合検出部１１５を有する。
【０００５】
これらの機能は次の通りである。
【０００６】
メモリパトロール診断要求部１１１は、メモリ１０２のエラー検出やエラー訂正を行う。
【０００７】
アクセス制御部１１２は、ＣＰＵ１０１からのメモリアクセスか、メモリパトロール診断要求部１１１からのメモリアクセスかを選択し、その選択情報をデータ制御部１１３に通知する。
【０００８】
メモリアクセス競合検出部１１５はアクセスの競合を検出し、衝突発生情報を競合検出情報部１１６に送信する。
【０００９】
競合検出情報部１１６は衝突率を算出し、診断アクセス要求調整部１１４およびＣＰＵ１０１に送信する。
【００１０】
ソフト設定情報部１１７は、ＣＰＵ１０１で動作するソフトウェアによって設定された、周期パラメータ情報、閾値情報、負荷情報等を保持する。
【００１１】
診断アクセス要求調整部１１４は、競合検出情報部１１６が保持する衝突率と、ソフト設定情報部１１７が保持する衝突率閾値情報とを参照して、アクセス制御部１１２への診断アクセス要求の断続実行周期を調整する。
【００１２】
このシステムは次のように動作する。
【００１３】
まず診断アクセス要求調整部１１４がメモリパトロールの実行周期を決定する。周期の初期値はソフト設定情報部が保持する周期パラメータなどから決定する。
【００１４】
次にメモリパトロール診断要求部１１１は、この周期によるメモリパトロールをアクセス制御部１１２に要求する。ＣＰＵ１０１からのメモリアクセス要求が無い場合は、アクセス制御部１１２はメモリパトロールを実行する。
【００１５】
ＣＰＵ１０１からメモリアクセス要求があった場合は、これを実行する。ただし、メモリパトロールと競合した場合は、どちらかを選択するとともに、衝突発生情報を生成して、競合検出情報部１１６に送信する。競合検出情報部１１６は受信した衝突発生情報から衝突率を算出する。
【００１６】
次に診断アクセス要求調整部１１４が、前記の衝突率と、ソフト設定情報部１１７が保持するデータを参照して、新しい周期を決定する。衝突率が高い場合は、メモリパトロールの周期を長くし、衝突率を下げる方向に動作をシフトさせる。逆に衝突率が低い場合には周期を短くする。周期の調整には、ＣＰＵ１０１の使用率や、負荷情報なども用いることが出来る。
【００１７】
以上のように動作することによって、ＣＰＵ１０１からのアクセスとメモリパトロールによるアクセスの競合が少なくなる。その結果、ＣＰＵ１０１のパフォーマンス低下を防止することが出来る。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特開２００９−４８２２４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１９】
しかしながら、特許文献１の技術には、データの信頼性が低下するという問題点があった。これはメモリパトロールの周期が長くなることで、エラーが放置される時間が長くなることによる。例としてＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）を用いたパトロールを考える。ＥＣＣでは１ビットエラーの訂正が可能であるが、放置時間が長くなると２ビット以上のエラーに発展し訂正できなくなる確率が高くなる。エラーが訂正できない場合、さらに多ビットのエラーに繋がり、最悪システムダウン至る恐れがあった。
【課題を解決するための手段】
【００２０】
上記問題を解決するため、本発明は、ＣＰＵと、複数のメモリブロックからなるメモリと、周期的に前記メモリブロックの誤り検出および誤り訂正を行うメモリパトロール手段と、メモリパトロールの実行を制御するメモリパトロール制御手段と、前記ＣＰＵから前記メモリブロックへのアクセス回数をカウントするアクセス頻度算出手段とを備え、前記アクセス回数が所定値を超えた場合に当該メモリブロックに対する前記メモリパトロールの回数を減らすメモリパトロールの制御方式としている。
【発明の効果】
【００２１】
本発明によれば、装置のパフォーマンスを低下させることなく、メモリに格納されたデータの信頼性を向上できる。
【図面の簡単な説明】
【００２２】
【図１】本発明第１の実施の形態を示すブロック図である。
【図２】本発明第１の実施の形態を示すフローチャートである。
【図３】本発明第２の実施の形態を示すフローチャートである。
【図４】本発明第３の実施の形態を示すフローチャートである。
【図５】従来の技術を示すブロック図である。
【発明を実施するための形態】
【００２３】
本発明は、データの書換えが頻繁に行われるメモリブロックではエラーの発生確率が低いという事実に基づいている。すなわちＣＰＵ１からのアクセスが多いメモリブロックではエラーの発生が少ないため、メモリパトロールを省略することが可能である。省略によりメモリパトロールとＣＰＵ１によるアクセスとの競合する確率が低くなる。また、省略で浮いたリソースをエラー発生確率の高い（アクセスの少ない）メモリブロックに対するメモリパトロール強化に使うことができる。その結果データの信頼性が向上することになる。以下、本発明の実施形態について図面を参照しながら説明する。
（第１の実施形態）
図１は、本発明第１の実施の形態によるメモリシステムを示すブロック図である。メモリシステムは、ＣＰＵ１と、メモリ２と、メモリ制御装置３、ソフトウェア４からなる。
【００２４】
メモリ制御装置３は、データ制御手段５、アクセス制御手段６、パトロール制御手段７、設定値保持手段８、アクセス頻度算出手段９、比較手段１０を備える。
【００２５】
データ制御手段５は、メモリ２とのデータのやり取りおよび制御を行う。
【００２６】
アクセス制御手段６は、ＣＰＵ１からメモリ２へのアクセスとパトロール制御手段によるメモリへのアクセスのどちらを通すか選択する。
【００２７】
パトロール制御手段７は、アクセス制御手段６を介して、データ制御手段５にメモリパトロールの実行を指示する。
【００２８】
規定値保持手段８はパトロール周期情報、アクセスカウント閾値、その他の設定値などの情報を保持する。
【００２９】
アクセス頻度算出手段９は、ＣＰＵ１から各メモリブロックに対するアクセス数をカウントし、アクセス頻度を算出する。
【００３０】
比較手段１０は、アクセス頻度算出手段９アクセス頻度と、設定値保持手段が保持するアクセスカウントの閾値を比較し、各メモリブロックに対するメモリパトロールの実行、非実行を決定する。
【００３１】
メモリ２はｎ個のメモリブロック、メモリブロック２［１］〜メモリブロック［ｎ］を有する。各メモリブロックまたはメモリ２はデータ制御手段の機能を有していても良い。
【００３２】
次に、本実施の形態の動作について説明する。図２は動作のフローチャートを示す。
【００３３】
まずＣＰＵ１側の動作から説明する。ＣＰＵ１からメモリ２のメモリブロック２［ｋ］（ｋは１からｎまでの整数）に対するアクセス要求をアクセス制御手段６に対して発信する。この時、メモリブロック２［ｋ］がメモリパトロール実行中でなければアクセスを許可し、ＣＰＵ１とメモリブロック２［ｋ］の間でデータが送受信される。メモリパトロール実行中であった場合は、パトロールが終了するまで待機し、メモリパトロールが終了し次第、データの送受信が実行される。
【００３４】
次にメモリ制御装置３側の動作について説明する。
【００３５】
まずアクセス頻度算出手段９がＣＰＵ１から各メモリブロック２［ｋ］に対するアクセス回数をカウントし、アクセス頻度を算出する。次いでアクセス頻度データを比較手段１０および規定値保持手段８に送信する。
【００３６】
次に規定値保持手段８がアクセス頻度データを元に頻度規定値を算出する。頻度規定値はパトロールの対象を選別するための閾値である。規定値には予め保持された初期値を用いても良いし、実測された頻度を加味して変更を加えても良い。またソフトウェア４から設定することも可能である。頻度規定値は比較手段１０によって参照される。
【００３７】
次に比較手段１０が、各メモリブロック２［ｋ］に対するアクセス頻度と頻度規定値を比較し、メモリパトロールの対象から除外するメモリブロックを決定する。頻度規定値よりアクセス回数が多いメモリブロック２［ｋ］に対してはメモリパトロールをスキップし、アクセス回数の少ないメモリブロック２［ｋ］に対してはメモリパトロールを行う指示を、データ制御手段５に向けて送信する。
【００３８】
アクセス制御手段６はＣＰＵ１からのアクセスが実行中でなかった場合は、アクセスを許可し、メモリパトロールの実行命令がデータ制御手段５に送信される。この命令に従いデータ制御手段５がメモリパトロールを実行する。ＣＰＵ１のアクセスが実行中であった場合は、アクセス制御手段６はメモリパトロール実行命令の送信を、ＣＰＵ１のアクセス終了まで保留する。以上のフローを繰り返すことで周期的なメモリパトロールが実行される。
【００３９】
以上のようなメモリパトロール制御方式とすることで、ＣＰＵ１からのアクセスが少なくエラー発生確率の高いメモリブロック、に対するメモリパトロールの頻度を高くすることが出来る。その結果、メモリ２に格納されているデータの信頼性が向上する。
（第２の実施の形態）
図３は本発明第２の実施の形態を示すフローチャートである。本実施の形態では、アクセス頻度算出手段９がＷＲＩＴＥアクセスのみをカウントする。そして、ＷＲＩＴＥアクセス回数に基づいて、アクセス頻度規定値を算出し、各メモリブロックに対するメモリパトロールの実行、非実行を決定する。その他の動作については実施の形態１と同様なので、説明は省略する。
【００４０】
本実施の形態は、ＣＰＵ１からメモリ２へのＷＲＩＴＥアクセスが少なく、ＲＥＡＤアクセスが多い場合を想定して考案されたものである。ＲＥＡＤアクセスではデータの更新がされないため、エラーの発生を防ぐ効果が得られない。このためメモリパトロールを行う必要がある。
【００４１】
総アクセス数をカウントする方法では、アクセスがＲＥＡＤに偏ったメモリブロックのエラーを訂正できなかったが、本実施の形態によれば、このような取りこぼしがなくなるため、さらにデータの信頼性が向上する。
（第３の実施の形態）
図４は本発明第３の実施の形態を示すフローチャートである。本実施の形態において、規定値保持手段は、アクセス頻度規定値に加えて、除外回数上限値を保持する。他の実施の形態と同様に、アクセス頻度が規定値より高い場合は当該メモリブロックをメモリパトロールの対象から除外するが、除外回数が上限値に達した場合には、当該メモリをパトロール対象に加えるものである。
【００４２】
このようにすることによって、ＣＰＵ１からのアクセス回数の多いブロックに対しても時々メモリパトロールが実施される。このため、アクセスによってエラーが訂正されなかった場合にも、メモリパトロールでエラーを訂正出来る。このためエラー訂正の確率が上がり、データの信頼性をさらに高めることが出来る。
【００４３】
以下、図４にしたがって動作を説明する。なお、アクセスの制御に関しては他の実施の形態と同様なため、説明を省略している。
【００４４】
まず規定値保持手段８がアクセス頻度規定値に加えて、除外回数上限値を保持する。除外回数上限値は、予め設定された初期値であっても良いし、ソフトウェアから設定された値でも良い。また実測されたエラー発生率等のデータを参照して、自動的に再計算されるようにしても良い。
【００４５】
次にアクセスをカウントし、アクセス頻度に応じてメモリパトロールの対象となるメモリブロックを、比較手段１０が決定する。ここでメモリパトロールの対象から除外されたメモリブロックについては、そのアドレスと除外回数を、比較手段１０または規定値保持手段８が保持する。
【００４６】
次に比較手段１０が除外されたメモリブロックの除外回数と除外回数上限値を比較し、除外回数が上限値に達したメモリブロックをメモリパトロールの対象に加える。
【００４７】
次にメモリ制御手段５が対象となるメモリブロックに対してパトロールを実行する。
【００４８】
具体例を挙げると、除外回数上限値を２に設定した場合は、アクセスの多いブロックに対しては2回に１回の割合でメモリパトロールが実行され、１００にすれば１００回に１回実行される。この値はエラーの発生、訂正確率と装置の負荷を反映して例えばソフトウェアから設定できるようにしておくと便利である。
【００４９】
以上、説明したたように、一時的にアクセスが多いメモリブロックに対しても、ある程度の頻度でメモリパトロールが行われる。このため、データ全体の信頼性をさらに高くすることが出来る。
【符号の説明】
【００５０】
１    ＣＰＵ
２    メモリ
３    メモリ制御装置
４    ソフトウェア
５    メモリ制御手段
６    アクセス制御手段
７    パトロール制御手段
８    規定値保持手段
９    アクセス頻度算出手段
１０    比較手段
１０１    ＣＰＵ
１０２    メモリ
１０３    メモリコントローラ
１１１    メモリパトロール診断要求部
１１２    アクセス制御部
１１３    データ制御部
１１４    診断アクセス要求調整部
１１５    メモリアクセス競合検出部
１１６    競合検出情報部
１１７    ソフト設定情報部
【図１】
2014059821.tif 000003
【図２】
2014059821.tif 000004
【図３】
2014059821.tif 000005
【図４】
2014059821.tif 000006
【図５】
2014059821.tif 000007