(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5916204
(24)【登録日】2016年4月15日
(45)【発行日】2016年5月11日
(54)【発明の名称】メモリ装置及びメモリパトロールによるデータ化け回避方法
(51)【国際特許分類】
G06F 12/08 20160101AFI20160422BHJP
G06F 12/16 20060101ALI20160422BHJP
G06F 12/14 20060101ALI20160422BHJP
【FI】
G06F12/08 507Z
G06F12/08 541Z
G06F12/16 320K
G06F12/14 510A
【請求項の数】4
【全頁数】9
(21)【出願番号】特願2012-20658(P2012-20658)
(22)【出願日】2012年2月2日
(65)【公開番号】特開2013-161151(P2013-161151A)
(43)【公開日】2013年8月19日
【審査請求日】2015年1月8日
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100106909
【弁理士】
【氏名又は名称】棚井 澄雄
(74)【代理人】
【識別番号】100134544
【弁理士】
【氏名又は名称】森 隆一郎
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】三神 友子
【審査官】
滝谷 亮一
(56)【参考文献】
【文献】
特開2010−079765(JP,A)
【文献】
特開2009−048224(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/08
G06F 12/14
G06F 12/16
(57)【特許請求の範囲】
【請求項1】
通常リクエストを発行するリクエスト発行部と、
チェック及び訂正を目的とするデータに対してパトロールリクエストを発行するメモリパトロール発行部と、
予備メモリと、
キャッシュ内にデータが登録されていることを示すステータスを有すると共に、前記キャッシュ内のデータが前記パトロールリクエストにより登録されたデータか前記通常リクエストにより登録されたデータかを識別するためのパトロールフラグを有するキャッシュと、
前記キャッシュ内に設けられたデータ書き戻し部であって、前記メモリパトロール発行部で発行されたパトロールリクエストにより登録されたデータに対して前記リクエスト発行部から通常リクエストが発行された場合に、前記キャッシュが持つデータ掃き出し機能を利用して、前記キャッシュ内の前記パトロールリクエストにより登録されたデータを前記予備メモリに書き戻すデータ書き戻し部と、
前記キャッシュと前記予備メモリとの間のデータ制御を行い、前記通常リクエストを不正アクセスと認識した場合には、前記キャッシュを通じてエラーリプライを前記リクエスト発行部へ返却するメモリコントロールと、
を備え、
前記キャッシュに設けられた制御部は前記メモリパトロール発行部で発行されたパトロールリクエストにより登録されたデータに対して前記リクエスト発行部から通常リクエストが発行された場合、その通常リクエストを待機させ、
前記メモリコントロールは前記通常リクエストが待機している際に前記エラーリプライを前記リクエスト発行部へ返却する
メモリ装置。
【請求項2】
予備メモリを備えたメモリ装置において、
前記メモリ装置のリクエスト発行部が通常リクエストを発行し、
前記メモリ装置のメモリパトロール発行部がチェック及び訂正を目的とするデータに対してパトロールリクエストを発行し、
前記メモリ装置のキャッシュが、キャッシュ内にデータが登録されていることを示すステータスを有すると共に、前記キャッシュ内のデータが前記パトロールリクエストにより登録されたデータか前記通常リクエストにより登録されたデータかを識別するためのパトロールフラグを有し、
前記メモリ装置の前記キャッシュ内に設けられたデータ書き戻し部が、前記メモリパトロール発行部で発行されたパトロールリクエストにより登録されたデータに対して前記リクエスト発行部から通常リクエストが発行された場合に、前記キャッシュが持つデータ掃き出し機能を利用して、前記キャッシュ内の前記パトロールリクエストにより登録されたデータを前記予備メモリに書き戻し、
前記メモリ装置の前記キャッシュに設けられた制御部は前記メモリパトロール発行部で発行されたパトロールリクエストにより登録されたデータに対して前記リクエスト発行部から通常リクエストが発行された場合、その通常リクエストを待機させ、
前記メモリ装置のメモリコントロールが、前記キャッシュと前記予備メモリとの間のデータ制御を行い、前記通常リクエストを不正アクセスと認識した場合には、前記通常リクエストが待機している際に前記キャッシュを通じてエラーリプライを前記リクエスト発行部へ返却する
データ化け回避方法。
【請求項3】
データ書き戻し部は、キャッシュ内にデータが登録されている場合に、前記キャッシュ内のデータがメモリパトロール機能により登録されたデータか通常リクエストにより登録されたデータかを識別し、パトロール機能により登録されたデータに対して、通常リクエストが発行された場合、キャッシュが持つデータ掃き出し機能を利用して、前記キャッシュ内のパトロール機能により登録されたデータを予備メモリへ書き戻す請求項2に記載のデータ化け回避方法。
【請求項4】
パトロールリクエストを予備メモリ空間に発行することで前記予備メモリの故障を検出する請求項2又は請求項3に記載のデータ化け回避方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリ装置及びメモリパトロールによるデータ化け回避方法に関する。
【背景技術】
【0002】
プロセッサから発行されるリード(read)リクエストやライト(write)リクエストなどの通常リクエストが、予備メモリに発行された場合、不正アクセスとして処理されることになるが、パトロール機能によってキャッシュにデータが登録されたタイミングで発行されると、その通常リクエストを正常に扱ってしまう場合がある。このような場合が生ずると、データ化け発生の可能性が考えられる。
【0003】
前述したパトロール機能とは、一定期間に全主記憶のメモリ空間に対してリードを行い、ECC(Error Check and Correct memory)による訂正可能エラーを検出すると、データを訂正して正常なデータを書き戻す機能である。メモリ内のデータは、ECCのような訂正可能なコードと共に格納されており、パトロール機能は、メモリ内のデータが訂正不可能なビット化けになる前に、定期的にデータにアクセスすることで訂正可能なビット化けのうちに訂正して正常なデータに戻す。
【0004】
ここで、通常リクエストの不正アクセスについて、
図3に示すメモリ装置を参照して説明する。
図3に示すメモリ装置29は、メモリパトロール発行部31、リクエスト発行部32、キャッシュ33、メモリコントロール35及び予備メモリ36を備える。キャッシュ33にはリクエストされたデータが登録されているか否かを示すステータス34の情報が記録されている。メモリパトロール発行部31からパトロールリクエストがキャッシュ33に発行されると、キャッシュ33におけるパトロールリクエストの示すアドレスについてのステータス34が索引される。そして、キャッシュ33に対象のデータが登録されていれば、パトロールリクエストの処理が完了となり、対象のデータが登録されていなければ、メモリコントロール35を経由してパトロール対象の予備メモリ36からデータが読み出され、キャッシュ33に登録される。メモリパトロール動作後、リクエスト発行部32から誤って通常リクエストが予備メモリ36に発行された場合、該通常リクエストがキャッシュ33においてパトロールリクエストにより登録されているデータにヒットし、不正アクセスと認識されないままリクエスト発行部32に正常リプライが返却されて正常に処理される。
【0005】
メモリコントロール35には、予備メモリ36に通常リクエストが発行された場合に、不正アクセスを検出する機能があるが、パトロールリクエストによりキャッシュ33にデータが登録されているタイミングであるとメモリコントロール35まで通常リクエストが発行されないため、不正アクセスが検出されない。即ち、キャッシュ33にパトロール実行対象であったデータが登録されているときに、通常リクエストが誤って予備メモリ空間のパトロールと同じデータに対して発行されると、キャッシュ33にあるデータが取得されてリクエスト発行部32へ正常リプライが返却されてしまう。この結果、予備メモリ空間に通常リクエストが発行されたという不正な動作が見逃される。このようなことが生ずると、リクエスト発行部32はパトロール機能により訂正されていないデータを用いて処理を行ってしまう可能性があり、データ化け発生の可能性が生ずる。
【0006】
図4に示すメモリ装置40は、通常リクエストの不正アクセスを検出可能としたものである。同図において、キャッシュ43に予備メモリ空間のレンジを保持するレンジレジスタ45と、キャッシュ43内において不正アクセスが検出された場合に、キャッシュ43からリクエスト発行部32へエラーリプライを返却するためのエラー伝達回路46とを備える。レンジレジスタ45は、予備メモリ空間のレンジ内のアドレスにリクエスト発行部32から通常リクエストが誤って発行された場合に、キャッシュ43内で不正アクセスとして検出できるように設けられたものである。
【0007】
レンジレジスタ45とエラー伝達回路46により、リクエスト発行部32から通常リクエストが誤って予備メモリ空間に発行されたとしても、キャッシュ43内に設けられた予備メモリ空間のアドレスを設定したレンジレジスタ45にヒットするので、キャッシュ43内で不正アクセスが検出される。不正アクセスが検出されると、エラー伝達回路46を通じてリクエスト発行部42へエラーリプライが返却される。予備メモリ空間に通常リクエストが発行されたという不正な動作を検出することで、データ化けが回避される。
【0008】
なお、ソフトエラーを訂正する方法として、メモリパトロール方法を使用した一例として、例えば特許文献1,2に記載されたものがある。特許文献1に記載されたメモリパトロール方式は、例えば、8バイトデータ毎にSEC−DED(1ビットエラー訂正・2ビットエラー検出)のECCコードで保証する。メモリパトロールが起動された場合、RAMBLEからのデータのリード→リードしたデータのECCコードの検査と訂正→チェックビット(データ保証ビット)の生成→RAMへの書き戻しの一連の動作を繰り返す。特許文献2に記載されたメモリパトロール方式は、パトロール主制御部がパトロールを起動すると、リード命令発生部がアドレスカウンタをカウントアップしつつパトロール単位分のリード命令を連続して出力する。このリード命令は、メモリ制御部を経てメモリ部へ伝達され、リードデータが取り出される。リードデータはECC回路で検査され、訂正可能エラーが無かった場合は、パトロール処理を終了する。訂正可能エラーがあった場合は、リード命令が完了した後に、訂正命令発生部へ起動をかける。訂正命令発生部では、まずアドレスカウンタをパトロール単位の先頭アドレスまで巻き戻し、その後、カウントアップしつつパトロール単位分の訂正命令を実行する。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2009−116398号公報
【特許文献2】特開2000−010871号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
ここで、
図4に示すような回路構成では、不正アクセスに対する問題を回避できるものの、追加するハードウェアが多くなってしまうことや、そのハードウェアの制御が複雑となってしまうことから、少ないハードウェア量で容易に不正アクセスに対する問題であるデータ化けを回避することができないという課題がある。
【0011】
上述した特許文献1,2には、上記課題を解決できる記述は見当たらない。
【0012】
本発明は上述の課題を解決することのできるメモリ装置及びメモリパトロールによるデータ化け回避方法を提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明のメモリ装置は、通常リクエストを発行するリクエスト発行部と、チェック及び訂正を目的とするデータに対してパトロールリクエストを発行するメモリパトロール発行部と、予備メモリと、キャッシュ内にデータが登録されていることを示すステータスを有すると共に、前記キャッシュ内のデータが前記パトロールリクエストにより登録されたデータか前記通常リクエストにより登録されたデータかを識別するためのパトロールフラグを有するキャッシュと
、前記キャッシュ内に設けられたデータ書き戻し部であって、前記メモリパトロール発行部で発行されたパトロールリクエストにより登録されたデータに対して前記リクエスト発行部から通常リクエストが発行された場合に、前記キャッシュが持つデータ掃き出し機能を利用して、前記キャッシュ内の前記パトロールリクエストにより登録されたデータを前記予備メモリに書き戻すデータ書き戻し部と、前記キャッシュと前記予備メモリとの間のデータ制御を行い、前記通常リクエストを不正アクセスと認識した場合には、前記キャッシュを通じてエラーリプライを前記リクエスト発行部へ返却するメモリコントロールとを備え、前記キャッシュに設けられた制御部は前記メモリパトロール発行部で発行されたパトロールリクエストにより登録されたデータに対して前記リクエスト発行部から通常リクエストが発行された場合、その通常リクエストを待機させ、
前記メモリコントロールは前記通常リクエストが待機している際に前記エラーリプライを前記リクエスト発行部へ返却する。
【発明の効果】
【0014】
本発明は、少ないハードウェア量で容易に不正アクセスに対する問題であるデータ化けを回避することができる。
【図面の簡単な説明】
【0015】
【
図1】本発明の一実施の形態に係るメモリ装置の概略構成を示すブロック図
【
図2】
図1のメモリ装置の動作を説明するためのシーケンス図
【
図3】通常リクエストの不正アクセスを説明するためのメモリ装置の概略構成を示すブロック図
【
図4】通常リクエストの不正アクセスを検出可能としたメモリ装置の概略構成を示すブロック図
【発明を実施するための形態】
【0016】
以下、本発明を実施するための好適な実施の形態について、図面を参照して詳細に説明する。
図1は、本発明の一実施の形態に係るメモリ装置の概略構成を示すブロック図である。なお、同図において、前述した
図1と共通する部分には同一の符号を付けている。本実施の形態に係るメモリ装置1は、メモリパトロール発行部31、リクエスト発行部32、キャッシュ13、メモリコントロール35及び予備メモリ36を備える。
【0017】
メモリパトロール発行部31は、チェック及び訂正を目的とするデータに対してパトロールリクエストを発行する。ここで、本実施形態のメモリパトロール発行部31から発行されるパトロールリクエストは、エラーのあるデータを更新して正常な値にするためのリクエストである。リクエスト発行部32は、通常のリードやライト等のリクエストを発行する。
【0018】
キャッシュ13には、各アドレスについてキャッシュ13内にデータが登録されていることを示すステータス14が記録されている。またキャッシュ13にはキャッシュ13内のデータがメモリパトロール発行部31で発行されたパトロールリクエストに基づいて登録されたデータかリクエスト発行部32で発行された通常リクエストに基づいて登録されたデータかを各アドレスについて識別するためのパトロールフラグ15が記録されている。また、キャッシュ13には、メモリパトロール発行部31で発行されたパトロールリクエストにより登録されたデータに対して、リクエスト発行部32から通常リクエストが発行された場合に、キャッシュ13が持つデータ掃き出し機能(既存のキャッシュが普通に持っている機能)を利用して、キャッシュ13内のデータ(パトロールリクエストにより登録されたデータ)を予備メモリ36に書き戻すデータ書き戻し部16も設けられている。なお、データ書き戻し部16は、
図4に図示していないが従来から備えられている機能である。
【0019】
メモリパトロール発行部31から発行されたパトロールリクエストは、キャッシュ13に届くと、キャッシュ13内の制御部がステータス14を索引する。そしてキャッシュ13内の制御部は、キャッシュ13にアクセス対象のデータが存在する場合はパトロールリクエストの動作を終了する。これに対し、キャッシュ13にアクセス対象のデータが存在しない場合は、キャッシュ13内の制御部は、キャッシュ13から予備メモリ36にリードリクエストを発行する。
【0020】
メモリコントロール35は、予備メモリ36へ通常リクエストが発行された場合に、不正アクセスを検出する機能を予め備えている。しかし、受信したリクエストがパトロールリクエストによる予備メモリ36へのリードリクエストであるため、不正アクセスで無いと判定して処理する。そしてメモリコントロール35はパトロールリクエストによる予備メモリ36へのリードリクエストを予備メモリへ転送し、その結果予備メモリ36からリードデータが返却されると、当該リードデータのキャッシュ登録時に、そのリードデータが示すアドレスについてのパトロールフラグ15をセットしてキャッシュ13に登録する。これにより、キャッシュ13内のデータがパトロールリクエストによって登録されたと識別できるようになる。その後、リクエスト発行部32から通常リクエストが発行されることで、予備メモリ36に、訂正されたデータが書き戻され、パトロールとしての動作が完了する。
【0021】
図2は、本実施の形態に係るメモリ装置1の動作を説明するためのシーケンス図である。同図においては、まず、メモリパトロール発行部31から発行されたパトロールリクエスト40に基づいて、予備メモリ36から読み出されたデータがキャッシュ13に登録されており、また、当該パトロールリクエスト40に基づいて登録されたデータのアドレスについて、同時にパトロールフラグ15が登録されているものとする。そして、処理の不具合等により、本来ならば発行されるはずのない予備メモリ36の空間への通常リクエスト41がリクエスト発行部32から発行されて、キャッシュ13でパトロールフラグ15が登録されたデータにヒットした場合、キャッシュ13の制御部は通常リクエスト41を一旦待機させる(42)。そして、通常リクエスト41が待機されている間に、キャッシュ13の制御部は、通常リクエスト41によって参照されようとしたデータを、強制掃き出し処理によってメモリコントロール35を介して予備メモリ36に書き戻す(43)。
【0022】
その後、キャッシュ13の制御部は、待機させた通常リクエスト41を実行し、当該通常リクエスト41が示す参照データのアドレスについてのステータスを索引すると、通常リクエスト41が取りに来たデータがキャッシュ13内に存在しないためミスヒットと判定する(44)。これにより、キャッシュ13の制御部は、メモリコントロール35を経由して予備メモリ36までデータを取りに行くための通常リクエスト45を発行する。するとメモリコントロール35は、予備メモリ空間へ通常リクエスト45が発行された場合に不正アクセスと認識する機能を備えているので、通常リクエスト45を不正アクセスであると認識しキャッシュ13へエラーリプライ47を返却する。するとキャッシュ13の制御部は、エラーリプライ47をリクエスト発行部32へ返却する。
【0023】
このように本実施の形態に係るメモリ装置1によれば、キャッシュ13に各アドレスについてのステータス14とパトロールフラグ15を記録して、パトロールリクエストにより登録されたデータであることを認識できるようにしたので、通常リクエストがパトロールリクエストにより登録されたデータを誤って使用することを回避できる。また、キャッシュ13から予備メモリ36に書き戻す通常の機能を流用して、不正に通常リクエストがキャッシュ13内のパトロールリクエストにより登録されたデータに発行された場合に、その通常リクエストを待機させ、そのリクエストで要求されるデータが使用される前に予備メモリ36に書き戻すようにした。そしてこの時メモリコントロール35の機能によって発行されたエラーリプライをキャッシュ13がリクエスト発行部32へ返却するようにした。これにより、エラーリプライを返却するなどのエラー処理を行う回路をキャッシュ13に新規に設けることなく、既存でメモリコントロール35が備えているエラー処理により、通常リクエストが予備メモリ36に発行される不正アクセスを容易に識別してエラー処理することができ、データ化けの課題を回避することができる。
【0024】
なお、本実施の形態に係るメモリ装置1において、パトロールリクエストを予備メモリ空間に発行することで、予備メモリ36の故障を事前に検出するようにしてもよい。このようにすることで、予備メモリ36の故障によるデータ化けを未然に防ぐことができる。
【0025】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0026】
(付記1)通常リクエストを発行するリクエスト発行部と、
チェック及び訂正を目的とするデータに対してパトロールリクエストを発行するメモリパトロール発行部と、
予備メモリと、
キャッシュ内にデータが登録されていることを示すステータスを有すると共に、前記キャッシュ内のデータが前記パトロールリクエストにより登録されたデータか前記通常リクエストにより登録されたデータかを識別するためのパトロールフラグを有するキャッシュと、
を備えたメモリ装置。
【0027】
(付記2)前記メモリパトロール発行部で発行されたパトロールリクエストにより登録されたデータに対して前記リクエスト発行部から通常リクエストが発行された場合に、前記キャッシュが持つデータ掃き出し機能を利用して、前記キャッシュ内の前記パトロールリクエストにより登録されたデータを前記予備メモリに書き戻すデータ書き戻し部を備えた付記1に記載のメモリ装置。
【0028】
(付記3)前記データ書き戻し部は、前記キャッシュに設けられた付記2に記載のメモリ装置。
【0029】
(付記4)前記キャッシュと前記予備メモリとの間のデータ制御を行い、前記通常リクエストを不正アクセスと認識した場合には、前記キャッシュを通じてエラーリプライを前記リクエスト発行部へ返却するメモリコントロールを備えた付記1乃至付記3のいずれか1つに記載のメモリ装置。
【0030】
(付記5)キャッシュ内にデータが登録されている場合に、前記キャッシュ内のデータがメモリパトロール機能により登録されたデータか通常リクエストにより登録されたデータかを識別し、パトロール機能により登録されたデータに対して、通常リクエストが発行された場合、キャッシュが持つデータ掃き出し機能を利用して、前記キャッシュ内のパトロール機能により登録されたデータを予備メモリへ書き戻すデータ化け回避方法。
【0031】
(付記6)前記通常リクエストが不正アクセスである場合、通常リクエストを発行するリクエスト発行部へエラーリプライを返却する付記5に記載のデータ化け回避方法。
【0032】
(付記7)パトロールリクエストを予備メモリ空間に発行することで前記予備メモリの故障を検出する付記5又は付記6に記載のデータ化け回避方法。
【産業上の利用可能性】
【0033】
本発明は、RAM(Randum Access Memory)等のデータ書き込み/読み出しが可能な半導体素子への適用が可能である。
【符号の説明】
【0034】
1 メモリ装置
13 キャッシュ
14 ステータス
15 パトロールフラグ
16 データ書き戻し部
31 メモリパトロール発行部
32 リクエスト発行部
35 メモリコントロール
36 メモリ