(57)【特許請求の範囲】
【請求項１】
通常リクエストを発行するリクエスト発行部と、
チェック及び訂正を目的とするデータに対してパトロールリクエストを発行するメモリパトロール発行部と、
予備メモリと、
キャッシュ内にデータが登録されていることを示すステータスを有すると共に、前記キャッシュ内のデータが前記パトロールリクエストにより登録されたデータか前記通常リクエストにより登録されたデータかを識別するためのパトロールフラグを有するキャッシュと、
前記キャッシュ内に設けられたデータ書き戻し部であって、前記メモリパトロール発行部で発行されたパトロールリクエストにより登録されたデータに対して前記リクエスト発行部から通常リクエストが発行された場合に、前記キャッシュが持つデータ掃き出し機能を利用して、前記キャッシュ内の前記パトロールリクエストにより登録されたデータを前記予備メモリに書き戻すデータ書き戻し部と、
前記キャッシュと前記予備メモリとの間のデータ制御を行い、前記通常リクエストを不正アクセスと認識した場合には、前記キャッシュを通じてエラーリプライを前記リクエスト発行部へ返却するメモリコントロールと、
を備え、
前記キャッシュに設けられた制御部は前記メモリパトロール発行部で発行されたパトロールリクエストにより登録されたデータに対して前記リクエスト発行部から通常リクエストが発行された場合、その通常リクエストを待機させ、
前記メモリコントロールは前記通常リクエストが待機している際に前記エラーリプライを前記リクエスト発行部へ返却する
メモリ装置。
【請求項２】
予備メモリを備えたメモリ装置において、
前記メモリ装置のリクエスト発行部が通常リクエストを発行し、
前記メモリ装置のメモリパトロール発行部がチェック及び訂正を目的とするデータに対してパトロールリクエストを発行し、
前記メモリ装置のキャッシュが、キャッシュ内にデータが登録されていることを示すステータスを有すると共に、前記キャッシュ内のデータが前記パトロールリクエストにより登録されたデータか前記通常リクエストにより登録されたデータかを識別するためのパトロールフラグを有し、
前記メモリ装置の前記キャッシュ内に設けられたデータ書き戻し部が、前記メモリパトロール発行部で発行されたパトロールリクエストにより登録されたデータに対して前記リクエスト発行部から通常リクエストが発行された場合に、前記キャッシュが持つデータ掃き出し機能を利用して、前記キャッシュ内の前記パトロールリクエストにより登録されたデータを前記予備メモリに書き戻し、
前記メモリ装置の前記キャッシュに設けられた制御部は前記メモリパトロール発行部で発行されたパトロールリクエストにより登録されたデータに対して前記リクエスト発行部から通常リクエストが発行された場合、その通常リクエストを待機させ、
前記メモリ装置のメモリコントロールが、前記キャッシュと前記予備メモリとの間のデータ制御を行い、前記通常リクエストを不正アクセスと認識した場合には、前記通常リクエストが待機している際に前記キャッシュを通じてエラーリプライを前記リクエスト発行部へ返却する
データ化け回避方法。
【請求項３】
データ書き戻し部は、キャッシュ内にデータが登録されている場合に、前記キャッシュ内のデータがメモリパトロール機能により登録されたデータか通常リクエストにより登録されたデータかを識別し、パトロール機能により登録されたデータに対して、通常リクエストが発行された場合、キャッシュが持つデータ掃き出し機能を利用して、前記キャッシュ内のパトロール機能により登録されたデータを予備メモリへ書き戻す請求項２に記載のデータ化け回避方法。
【請求項４】
パトロールリクエストを予備メモリ空間に発行することで前記予備メモリの故障を検出する請求項２又は請求項３に記載のデータ化け回避方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ装置及びメモリパトロールによるデータ化け回避方法に関する。
【背景技術】
【０００２】
プロセッサから発行されるリード（read）リクエストやライト（write）リクエストなどの通常リクエストが、予備メモリに発行された場合、不正アクセスとして処理されることになるが、パトロール機能によってキャッシュにデータが登録されたタイミングで発行されると、その通常リクエストを正常に扱ってしまう場合がある。このような場合が生ずると、データ化け発生の可能性が考えられる。
【０００３】
前述したパトロール機能とは、一定期間に全主記憶のメモリ空間に対してリードを行い、ＥＣＣ(Error Check and Correct memory)による訂正可能エラーを検出すると、データを訂正して正常なデータを書き戻す機能である。メモリ内のデータは、ＥＣＣのような訂正可能なコードと共に格納されており、パトロール機能は、メモリ内のデータが訂正不可能なビット化けになる前に、定期的にデータにアクセスすることで訂正可能なビット化けのうちに訂正して正常なデータに戻す。
【０００４】
ここで、通常リクエストの不正アクセスについて、図３に示すメモリ装置を参照して説明する。図３に示すメモリ装置２９は、メモリパトロール発行部３１、リクエスト発行部３２、キャッシュ３３、メモリコントロール３５及び予備メモリ３６を備える。キャッシュ３３にはリクエストされたデータが登録されているか否かを示すステータス３４の情報が記録されている。メモリパトロール発行部３１からパトロールリクエストがキャッシュ３３に発行されると、キャッシュ３３におけるパトロールリクエストの示すアドレスについてのステータス３４が索引される。そして、キャッシュ３３に対象のデータが登録されていれば、パトロールリクエストの処理が完了となり、対象のデータが登録されていなければ、メモリコントロール３５を経由してパトロール対象の予備メモリ３６からデータが読み出され、キャッシュ３３に登録される。メモリパトロール動作後、リクエスト発行部３２から誤って通常リクエストが予備メモリ３６に発行された場合、該通常リクエストがキャッシュ３３においてパトロールリクエストにより登録されているデータにヒットし、不正アクセスと認識されないままリクエスト発行部３２に正常リプライが返却されて正常に処理される。
【０００５】
メモリコントロール３５には、予備メモリ３６に通常リクエストが発行された場合に、不正アクセスを検出する機能があるが、パトロールリクエストによりキャッシュ３３にデータが登録されているタイミングであるとメモリコントロール３５まで通常リクエストが発行されないため、不正アクセスが検出されない。即ち、キャッシュ３３にパトロール実行対象であったデータが登録されているときに、通常リクエストが誤って予備メモリ空間のパトロールと同じデータに対して発行されると、キャッシュ３３にあるデータが取得されてリクエスト発行部３２へ正常リプライが返却されてしまう。この結果、予備メモリ空間に通常リクエストが発行されたという不正な動作が見逃される。このようなことが生ずると、リクエスト発行部３２はパトロール機能により訂正されていないデータを用いて処理を行ってしまう可能性があり、データ化け発生の可能性が生ずる。
【０００６】
図４に示すメモリ装置４０は、通常リクエストの不正アクセスを検出可能としたものである。同図において、キャッシュ４３に予備メモリ空間のレンジを保持するレンジレジスタ４５と、キャッシュ４３内において不正アクセスが検出された場合に、キャッシュ４３からリクエスト発行部３２へエラーリプライを返却するためのエラー伝達回路４６とを備える。レンジレジスタ４５は、予備メモリ空間のレンジ内のアドレスにリクエスト発行部３２から通常リクエストが誤って発行された場合に、キャッシュ４３内で不正アクセスとして検出できるように設けられたものである。
【０００７】
レンジレジスタ４５とエラー伝達回路４６により、リクエスト発行部３２から通常リクエストが誤って予備メモリ空間に発行されたとしても、キャッシュ４３内に設けられた予備メモリ空間のアドレスを設定したレンジレジスタ４５にヒットするので、キャッシュ４３内で不正アクセスが検出される。不正アクセスが検出されると、エラー伝達回路４６を通じてリクエスト発行部４２へエラーリプライが返却される。予備メモリ空間に通常リクエストが発行されたという不正な動作を検出することで、データ化けが回避される。
【０００８】
なお、ソフトエラーを訂正する方法として、メモリパトロール方法を使用した一例として、例えば特許文献１，２に記載されたものがある。特許文献１に記載されたメモリパトロール方式は、例えば、８バイトデータ毎にＳＥＣ−ＤＥＤ（１ビットエラー訂正・２ビットエラー検出）のＥＣＣコードで保証する。メモリパトロールが起動された場合、ＲＡＭＢＬＥからのデータのリード→リードしたデータのＥＣＣコードの検査と訂正→チェックビット（データ保証ビット）の生成→ＲＡＭへの書き戻しの一連の動作を繰り返す。特許文献２に記載されたメモリパトロール方式は、パトロール主制御部がパトロールを起動すると、リード命令発生部がアドレスカウンタをカウントアップしつつパトロール単位分のリード命令を連続して出力する。このリード命令は、メモリ制御部を経てメモリ部へ伝達され、リードデータが取り出される。リードデータはＥＣＣ回路で検査され、訂正可能エラーが無かった場合は、パトロール処理を終了する。訂正可能エラーがあった場合は、リード命令が完了した後に、訂正命令発生部へ起動をかける。訂正命令発生部では、まずアドレスカウンタをパトロール単位の先頭アドレスまで巻き戻し、その後、カウントアップしつつパトロール単位分の訂正命令を実行する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００９−１１６３９８号公報
【特許文献２】特開２０００−０１０８７１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ここで、図４に示すような回路構成では、不正アクセスに対する問題を回避できるものの、追加するハードウェアが多くなってしまうことや、そのハードウェアの制御が複雑となってしまうことから、少ないハードウェア量で容易に不正アクセスに対する問題であるデータ化けを回避することができないという課題がある。
【００１１】
上述した特許文献１，２には、上記課題を解決できる記述は見当たらない。
【００１２】
本発明は上述の課題を解決することのできるメモリ装置及びメモリパトロールによるデータ化け回避方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明のメモリ装置は、通常リクエストを発行するリクエスト発行部と、チェック及び訂正を目的とするデータに対してパトロールリクエストを発行するメモリパトロール発行部と、予備メモリと、キャッシュ内にデータが登録されていることを示すステータスを有すると共に、前記キャッシュ内のデータが前記パトロールリクエストにより登録されたデータか前記通常リクエストにより登録されたデータかを識別するためのパトロールフラグを有するキャッシュと、前記キャッシュ内に設けられたデータ書き戻し部であって、前記メモリパトロール発行部で発行されたパトロールリクエストにより登録されたデータに対して前記リクエスト発行部から通常リクエストが発行された場合に、前記キャッシュが持つデータ掃き出し機能を利用して、前記キャッシュ内の前記パトロールリクエストにより登録されたデータを前記予備メモリに書き戻すデータ書き戻し部と、前記キャッシュと前記予備メモリとの間のデータ制御を行い、前記通常リクエストを不正アクセスと認識した場合には、前記キャッシュを通じてエラーリプライを前記リクエスト発行部へ返却するメモリコントロールとを備え、前記キャッシュに設けられた制御部は前記メモリパトロール発行部で発行されたパトロールリクエストにより登録されたデータに対して前記リクエスト発行部から通常リクエストが発行された場合、その通常リクエストを待機させ、
前記メモリコントロールは前記通常リクエストが待機している際に前記エラーリプライを前記リクエスト発行部へ返却する。
【発明の効果】
【００１４】
本発明は、少ないハードウェア量で容易に不正アクセスに対する問題であるデータ化けを回避することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施の形態に係るメモリ装置の概略構成を示すブロック図
【図２】図１のメモリ装置の動作を説明するためのシーケンス図
【図３】通常リクエストの不正アクセスを説明するためのメモリ装置の概略構成を示すブロック図
【図４】通常リクエストの不正アクセスを検出可能としたメモリ装置の概略構成を示すブロック図
【発明を実施するための形態】
【００１６】
以下、本発明を実施するための好適な実施の形態について、図面を参照して詳細に説明する。
図１は、本発明の一実施の形態に係るメモリ装置の概略構成を示すブロック図である。なお、同図において、前述した図１と共通する部分には同一の符号を付けている。本実施の形態に係るメモリ装置１は、メモリパトロール発行部３１、リクエスト発行部３２、キャッシュ１３、メモリコントロール３５及び予備メモリ３６を備える。
【００１７】
メモリパトロール発行部３１は、チェック及び訂正を目的とするデータに対してパトロールリクエストを発行する。ここで、本実施形態のメモリパトロール発行部３１から発行されるパトロールリクエストは、エラーのあるデータを更新して正常な値にするためのリクエストである。リクエスト発行部３２は、通常のリードやライト等のリクエストを発行する。
【００１８】
キャッシュ１３には、各アドレスについてキャッシュ１３内にデータが登録されていることを示すステータス１４が記録されている。またキャッシュ１３にはキャッシュ１３内のデータがメモリパトロール発行部３１で発行されたパトロールリクエストに基づいて登録されたデータかリクエスト発行部３２で発行された通常リクエストに基づいて登録されたデータかを各アドレスについて識別するためのパトロールフラグ１５が記録されている。また、キャッシュ１３には、メモリパトロール発行部３１で発行されたパトロールリクエストにより登録されたデータに対して、リクエスト発行部３２から通常リクエストが発行された場合に、キャッシュ１３が持つデータ掃き出し機能（既存のキャッシュが普通に持っている機能）を利用して、キャッシュ１３内のデータ（パトロールリクエストにより登録されたデータ）を予備メモリ３６に書き戻すデータ書き戻し部１６も設けられている。なお、データ書き戻し部１６は、図４に図示していないが従来から備えられている機能である。
【００１９】
メモリパトロール発行部３１から発行されたパトロールリクエストは、キャッシュ１３に届くと、キャッシュ１３内の制御部がステータス１４を索引する。そしてキャッシュ１３内の制御部は、キャッシュ１３にアクセス対象のデータが存在する場合はパトロールリクエストの動作を終了する。これに対し、キャッシュ１３にアクセス対象のデータが存在しない場合は、キャッシュ１３内の制御部は、キャッシュ１３から予備メモリ３６にリードリクエストを発行する。
【００２０】
メモリコントロール３５は、予備メモリ３６へ通常リクエストが発行された場合に、不正アクセスを検出する機能を予め備えている。しかし、受信したリクエストがパトロールリクエストによる予備メモリ３６へのリードリクエストであるため、不正アクセスで無いと判定して処理する。そしてメモリコントロール３５はパトロールリクエストによる予備メモリ３６へのリードリクエストを予備メモリへ転送し、その結果予備メモリ３６からリードデータが返却されると、当該リードデータのキャッシュ登録時に、そのリードデータが示すアドレスについてのパトロールフラグ１５をセットしてキャッシュ１３に登録する。これにより、キャッシュ１３内のデータがパトロールリクエストによって登録されたと識別できるようになる。その後、リクエスト発行部３２から通常リクエストが発行されることで、予備メモリ３６に、訂正されたデータが書き戻され、パトロールとしての動作が完了する。
【００２１】
図２は、本実施の形態に係るメモリ装置１の動作を説明するためのシーケンス図である。同図においては、まず、メモリパトロール発行部３１から発行されたパトロールリクエスト４０に基づいて、予備メモリ３６から読み出されたデータがキャッシュ１３に登録されており、また、当該パトロールリクエスト４０に基づいて登録されたデータのアドレスについて、同時にパトロールフラグ１５が登録されているものとする。そして、処理の不具合等により、本来ならば発行されるはずのない予備メモリ３６の空間への通常リクエスト４１がリクエスト発行部３２から発行されて、キャッシュ１３でパトロールフラグ１５が登録されたデータにヒットした場合、キャッシュ１３の制御部は通常リクエスト４１を一旦待機させる（４２）。そして、通常リクエスト４１が待機されている間に、キャッシュ１３の制御部は、通常リクエスト４１によって参照されようとしたデータを、強制掃き出し処理によってメモリコントロール３５を介して予備メモリ３６に書き戻す（４３）。
【００２２】
その後、キャッシュ１３の制御部は、待機させた通常リクエスト４１を実行し、当該通常リクエスト４１が示す参照データのアドレスについてのステータスを索引すると、通常リクエスト４１が取りに来たデータがキャッシュ１３内に存在しないためミスヒットと判定する（４４）。これにより、キャッシュ１３の制御部は、メモリコントロール３５を経由して予備メモリ３６までデータを取りに行くための通常リクエスト４５を発行する。するとメモリコントロール３５は、予備メモリ空間へ通常リクエスト４５が発行された場合に不正アクセスと認識する機能を備えているので、通常リクエスト４５を不正アクセスであると認識しキャッシュ１３へエラーリプライ４７を返却する。するとキャッシュ１３の制御部は、エラーリプライ４７をリクエスト発行部３２へ返却する。
【００２３】
このように本実施の形態に係るメモリ装置１によれば、キャッシュ１３に各アドレスについてのステータス１４とパトロールフラグ１５を記録して、パトロールリクエストにより登録されたデータであることを認識できるようにしたので、通常リクエストがパトロールリクエストにより登録されたデータを誤って使用することを回避できる。また、キャッシュ１３から予備メモリ３６に書き戻す通常の機能を流用して、不正に通常リクエストがキャッシュ１３内のパトロールリクエストにより登録されたデータに発行された場合に、その通常リクエストを待機させ、そのリクエストで要求されるデータが使用される前に予備メモリ３６に書き戻すようにした。そしてこの時メモリコントロール３５の機能によって発行されたエラーリプライをキャッシュ１３がリクエスト発行部３２へ返却するようにした。これにより、エラーリプライを返却するなどのエラー処理を行う回路をキャッシュ１３に新規に設けることなく、既存でメモリコントロール３５が備えているエラー処理により、通常リクエストが予備メモリ３６に発行される不正アクセスを容易に識別してエラー処理することができ、データ化けの課題を回避することができる。
【００２４】
なお、本実施の形態に係るメモリ装置１において、パトロールリクエストを予備メモリ空間に発行することで、予備メモリ３６の故障を事前に検出するようにしてもよい。このようにすることで、予備メモリ３６の故障によるデータ化けを未然に防ぐことができる。
【００２５】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００２６】
（付記１）通常リクエストを発行するリクエスト発行部と、
チェック及び訂正を目的とするデータに対してパトロールリクエストを発行するメモリパトロール発行部と、
予備メモリと、
キャッシュ内にデータが登録されていることを示すステータスを有すると共に、前記キャッシュ内のデータが前記パトロールリクエストにより登録されたデータか前記通常リクエストにより登録されたデータかを識別するためのパトロールフラグを有するキャッシュと、
を備えたメモリ装置。
【００２７】
（付記２）前記メモリパトロール発行部で発行されたパトロールリクエストにより登録されたデータに対して前記リクエスト発行部から通常リクエストが発行された場合に、前記キャッシュが持つデータ掃き出し機能を利用して、前記キャッシュ内の前記パトロールリクエストにより登録されたデータを前記予備メモリに書き戻すデータ書き戻し部を備えた付記１に記載のメモリ装置。
【００２８】
（付記３）前記データ書き戻し部は、前記キャッシュに設けられた付記２に記載のメモリ装置。
【００２９】
（付記４）前記キャッシュと前記予備メモリとの間のデータ制御を行い、前記通常リクエストを不正アクセスと認識した場合には、前記キャッシュを通じてエラーリプライを前記リクエスト発行部へ返却するメモリコントロールを備えた付記１乃至付記３のいずれか１つに記載のメモリ装置。
【００３０】
（付記５）キャッシュ内にデータが登録されている場合に、前記キャッシュ内のデータがメモリパトロール機能により登録されたデータか通常リクエストにより登録されたデータかを識別し、パトロール機能により登録されたデータに対して、通常リクエストが発行された場合、キャッシュが持つデータ掃き出し機能を利用して、前記キャッシュ内のパトロール機能により登録されたデータを予備メモリへ書き戻すデータ化け回避方法。
【００３１】
（付記６）前記通常リクエストが不正アクセスである場合、通常リクエストを発行するリクエスト発行部へエラーリプライを返却する付記５に記載のデータ化け回避方法。
【００３２】
（付記７）パトロールリクエストを予備メモリ空間に発行することで前記予備メモリの故障を検出する付記５又は付記６に記載のデータ化け回避方法。
【産業上の利用可能性】
【００３３】
本発明は、ＲＡＭ(Randum Access Memory)等のデータ書き込み／読み出しが可能な半導体素子への適用が可能である。
【符号の説明】
【００３４】
１  メモリ装置
１３  キャッシュ
１４  ステータス
１５  パトロールフラグ
１６  データ書き戻し部
３１  メモリパトロール発行部
３２  リクエスト発行部
３５  メモリコントロール
３６  メモリ
【図１】
0005916204.tif 000002
【図２】
0005916204.tif 000003
【図３】
0005916204.tif 000004
【図４】
0005916204.tif 000005