IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社デンソーの特許一覧 ▶ トヨタ自動車株式会社の特許一覧 ▶ 株式会社ミライズテクノロジーズの特許一覧

特開2023-180484メモリシステムおよびデータ訂正方法
<>
  • 特開-メモリシステムおよびデータ訂正方法 図1
  • 特開-メモリシステムおよびデータ訂正方法 図2
  • 特開-メモリシステムおよびデータ訂正方法 図3
  • 特開-メモリシステムおよびデータ訂正方法 図4
  • 特開-メモリシステムおよびデータ訂正方法 図5
  • 特開-メモリシステムおよびデータ訂正方法 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023180484
(43)【公開日】2023-12-21
(54)【発明の名称】メモリシステムおよびデータ訂正方法
(51)【国際特許分類】
   G06F 11/10 20060101AFI20231214BHJP
【FI】
G06F11/10 660
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022093839
(22)【出願日】2022-06-09
(71)【出願人】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(71)【出願人】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(71)【出願人】
【識別番号】520124752
【氏名又は名称】株式会社ミライズテクノロジーズ
(74)【代理人】
【識別番号】110001128
【氏名又は名称】弁理士法人ゆうあい特許事務所
(72)【発明者】
【氏名】滝澤 哲郎
(57)【要約】
【課題】外部からデータの誤りを検出できない記憶部を用いたメモリシステムにおいて、記憶部のデータの誤りを訂正可能なスクラビング処理を行う。
【解決手段】メモリシステムは、制御部と、自律して内部に格納されたデータの誤り訂正が可能な記憶部とを有する。制御部は、記憶部のスクラビング処理を実行するスクラビング処理回路4を備える。スクラビング処理回路4は、アドレス生成部41、アクセス要求部42およびデータ保持部43を有し、一定期間内に記憶部に格納された全データについて、データの読み込み・書き戻しを行う。スクラビング処理回路4は、記憶部から読み込んだデータを、そのまま当該データが格納された同一のアドレス範囲に書き戻しを行う。
【選択図】図3
【特許請求の範囲】
【請求項1】
メモリシステムであって、
データを格納するデータ格納領域(31)と、前記データに対応する誤り訂正コードを生成するECC生成部(32)と、前記ECC生成部で生成した前記誤り訂正コードを格納するECC格納領域(33)と、前記データに誤りが生じた場合に前記誤り訂正コードを用いて訂正を行うエラー訂正部(34)とを有する記憶部(3)と、
前記記憶部の前記データ格納領域に格納された前記データの読み込みおよび書き込みの処理を行う制御部(2)と、を備え、
前記制御部は、前記記憶部のスクラビング処理を実行するスクラビング処理回路(4)を有し、前記スクラビング処理においては前記記憶部に格納された前記データを読み込むと共に、読み込んだ前記データをそのまま前記記憶部に書き戻す処理を実行する、メモリシステム。
【請求項2】
前記スクラビング処理回路は、前記記憶部のうち前記データ格納領域のアドレス値を順次生成するアドレス生成部(41)と、前記アドレス値に対応する領域へのリード要求およびライト要求を行うアクセス要求部(42)と、1回の前記リード要求により前記データ格納領域から読み込まれた一部のデータを保持するデータ保持部(43)と、を有すると共に、所定期間ごとに前記データ格納領域に格納された全データについて前記リード要求および前記ライト要求を行い、前記記憶部から読み込んだ前記一部のデータを前記データ格納領域のうち当該一部のデータが格納された同一の前記アドレス値に対応する領域に書き込む処理を実行する、請求項1に記載のメモリシステム。
【請求項3】
前記データ保持部は、前記アクセス要求部からの1回の前記リード要求により前記記憶部から前記制御部が読み込んだ前記一部のデータを少なくとも次の前記ライト要求までの間保持し、当該ライト要求の際に保持した前記一部のデータをライトデータとして出力する、請求項2に記載のメモリシステム。
【請求項4】
前記制御部は、前記スクラビング処理回路からの前記記憶部へのアクセス要求と、前記制御部とは異なる他の領域から前記記憶部へのアクセス要求との調停を行う調停回路(5)を有し、
前記調停回路は、前記スクラビング処理回路からのリード要求と次のライト要求との間に、前記記憶部の前記データ格納領域のうち所定のアドレス範囲への前記他の領域からのライト要求であって、前記所定のアドレス範囲が前記スクラビング処理回路からの前記記憶部への前記リード要求に対応するアドレス範囲の少なくとも一部を含む場合には、前記他の領域からの前記ライト要求を前記スクラビング処理回路からの前記ライト要求による書き込み処理が完了するまで保留する処理を行う、請求項1ないし3のいずれか1つに記載のメモリシステム。
【請求項5】
データを格納するデータ格納領域(31)と、前記データに対応する誤り訂正コードを生成するECC生成部(32)と、前記ECC生成部で生成した前記誤り訂正コードを格納するECC格納領域(33)と、前記データに誤りが生じた場合に前記誤り訂正コードを用いて当該誤りの訂正を行うエラー訂正部(34)とを有する記憶部(3)と、前記記憶部のうち前記データ格納領域に格納された前記データの読み込みおよび書き込みの処理を行う制御部(2)と、を備えるメモリシステムにおいて、前記データの誤りを訂正するデータ訂正方法であって、
前記制御部が、所定期間ごとに、前記記憶部のうち前記データ格納領域に格納された全データについてリード要求およびライト要求を行うことと、
1回の前記リード要求において、前記制御部が前記データ格納領域の一部のデータを読み込み、前記一部のデータを次の前記ライト要求まで保持することと、
1回の前記ライト要求において、直前の前記リード要求により読み込んだ前記一部のデータを前記データ格納領域のうち当該一部のデータが格納された同一のアドレスにそのまま書き込むことと、を含む、データ訂正方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリに格納されたデータの誤りを外部の制御部により訂正するメモリシステムおよびデータ訂正方法に関する。
【背景技術】
【0002】
従来、ダイナミック・ランダム・アクセス・メモリ(DRAM)とそのデータ管理を行うメモリコントローラ等の制御部とを有し、DRAMに格納されたデータにビット誤り(エラー)が生じた場合に当該誤りを訂正可能なメモリシステムが知られている。この種のメモリシステムは、制御部がDRAMにデータの書き込み処理を行う際に、当該データに対応する誤り訂正コード(ECC)を算出し、当該データと算出したECCをDRAMに格納する。また、この種のメモリシステムは、制御部がDRAMに格納されたデータを読み込む際には、データおよび当該データに対応するECCを読み込むと共に、ECCを使用して照合し、誤りが生じていた場合には訂正もしくは検出を行う。例えば、64ビットのデータに対して8ビットのECCを付加する場合には、制御部は、1ビットの誤りについては訂正し、2ビットの誤りについては検出を行う。制御部は、訂正したデータで読み込んだデータを上書きする処理を行うことで、誤りが生じたDRAMの格納データを正しいデータに修正することができる。
【0003】
特許文献1に記載のメモリシステムは、制御部がDRAMに格納された全データを一定期間内にすべて読み込み、ECCを使用して誤りの検出および訂正を行った場合、訂正後の正しいデータをDRAMに書き戻すスクラビング処理を実行する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許第8024638号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
さて、DRAMの一種として、DRAM内部にECCを生成・格納すると共に、誤り訂正を自律して実行することが可能なもの(以下「ECC対応DRAM」という)が知られている。ECC対応DRAMは、例えば、データ格納領域と、ECC格納領域とを備え、外部の制御部からのリード要求があった場合に、データおよびECCを各領域からリードし、データに誤りがあった場合には誤りを訂正したデータを制御部に返すことができる。ECC対応DRAMは、偶発的な誤りが生じても正しいデータを外部の制御部に返すことができるため、例えば、サーバ向けメモリなどのエラーに強い特性が要求される用途に用いられる。
【0006】
ここで、制御部とECC対応DRAMとを有するメモリシステムについて検討する。ECC対応DRAMは、外部の制御部に誤り訂正後のデータを返すことができるものの、基本的には内部に格納されたデータを訂正後の正しいデータで上書きしないため、データ格納領域には誤りが生じたデータが残ることになる。
【0007】
しかし、このメモリシステムは、ECC対応DRAMから読み込まれるデータが内部で訂正された後のデータであるため、外部の制御部がECC対応DRAMに格納されたデータに誤りが生じているか否かを検出することができない。また、このメモリシステムにおいて、ECC対応DRAM外に別途ECCを格納し、上記のスクラビング処理を実行したとしても、外部の制御部がECC対応DRAMから読み込むデータが訂正後のデータであるため、データの誤りを検出することができない。
【0008】
本発明は、上記の点に鑑み、ECC対応DRAMを用いたメモリシステムにおいて、ECC対応DRAMに格納されたデータに誤りが生じた場合であっても誤り訂正を可能とすることを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するため、請求項1に記載のメモリシステムは、データを格納するデータ格納領域(31)と、データに対応する誤り訂正コードを生成するECC生成部(32)と、ECC生成部で生成した誤り訂正コードを格納するECC格納領域(33)と、データに誤りが生じた場合に誤り訂正コードを用いて訂正を行うエラー訂正部(34)とを有する記憶部(3)と、記憶部のデータ格納領域に格納されたデータの読み込みおよび書き込みの処理を行う制御部(2)と、を備え、制御部は、記憶部のスクラビング処理を実行するスクラビング処理回路(4)を有し、スクラビング処理においては記憶部に格納されたデータを読み込むと共に、読み込んだデータをそのまま記憶部に書き戻す処理を実行する。
【0010】
このメモリシステムは、内部で自律して誤り訂正が可能な記憶部と、記憶部のうちデータ格納領域に格納されたデータの読み込みおよび書き込みの処理を行う制御部とを備え、制御部が読み込んだデータをそのまま記憶部に書き戻す処理を行う。制御部が記憶部から読み込んだデータは、データに誤りが生じていたとしても記憶部内のエラー訂正部により訂正された後のデータであるため、誤りのない正しいデータと見込まれる。そして、記憶部に格納された誤りが生じたデータは、制御部が読み込んだ訂正後のデータ、すなわち正しいデータによりそのまま書き戻されるため、誤りが生じる前の状態に戻ることとなる。そのため、ECC対応DRAMのように内部で自律して誤りを訂正する記憶部を用い、制御部が記憶部に格納されたデータの誤りを検出できない場合であっても、正しいデータに訂正することが可能なメモリシステムとなる。
【0011】
請求項5に記載のデータ訂正方法は、データを格納するデータ格納領域(31)と、データに対応する誤り訂正コードを生成するECC生成部(32)と、ECC生成部で生成した誤り訂正コードを格納するECC格納領域(33)と、データに誤りが生じた場合に誤り訂正コードを用いて当該誤りの訂正を行うエラー訂正部(34)とを有する記憶部(3)と、記憶部のうちデータ格納領域に格納されたデータの読み込みおよび書き込みの処理を行う制御部(2)と、を備えるメモリシステムにおいて、データの誤りを訂正するデータ訂正方法であって、制御部が、所定期間ごとに、記憶部のうちデータ格納領域に格納された全データについてリード要求およびライト要求を行うことと、1回のリード要求において、制御部がデータ格納領域の一部のデータを読み込み、一部のデータを次のライト要求まで保持することと、1回のライト要求において、直前のリード要求により保持した一部のデータをデータ格納領域のうち当該一部のデータが格納された同一のアドレスにそのまま書き込むことと、を含む。
【0012】
このエラー訂正方法は、内部で自律して誤り訂正が可能な記憶部と、記憶部のうちデータ格納領域に格納されたデータの読み込みおよび書き込みの処理を行う制御部とを備えるメモリシステムにおいて、当該データの訂正を行う。制御部が1回のリード要求において、制御部がデータ格納領域の一部のデータを読み込んで保持し、次のライト要求において直前のリード要求により保持した一部のデータを記憶部のうち同一のアドレスにそのまま書き込む。記憶部が自律して誤り訂正を行う構成であるため、制御部が1回のリード要求により読み込んだデータは誤りのない正しいデータと見込まれ、その「正しいデータ」をそのまま書き込むことで、データ格納領域は、誤りが訂正されたデータを格納することとなる。この方法によれば、ECC対応DRAMのように内部で自律して誤りを訂正する記憶部を用いたメモリシステムであっても、記憶部内の誤りが生じたデータを訂正することが可能となる。
【0013】
なお、各構成要素等に付された括弧付きの参照符号は、その構成要素等と後述する実施形態に記載の具体的な構成要素等との対応関係の一例を示すものである。
【図面の簡単な説明】
【0014】
図1】実施形態に係るメモリシステムを示すブロック図である。
図2】メモリシステムに用いる記憶部の構成例を示すブロック図である。
図3】DRAMコントローラの構成例を示すブロック図である。
図4】スクラビング処理回路の構成例を示すブロック図である。
図5】実施形態に係るスクラビング処理の一例を示すフローチャートである。
図6】調停回路における処理例を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下、本発明の実施形態について図に基づいて説明する。なお、以下の各実施形態相互において、互いに同一もしくは均等である部分には、同一符号を付して説明を行う。
【0016】
(実施形態)
実施形態に係るメモリシステム1について、図面を参照して説明する。
【0017】
〔基本構成〕
例えば、メモリシステム1は、図1に示すように、制御部2と、記憶部3とを備え、業務用サーバや車両における運転支援あるいは自動運転などにおける周辺監視のデータ処理といったエラーに強い特性が要求される用途に適用されると好適である。メモリシステム1は、勿論、上記の用途に限定されるものではなく、他の各種用途にも適用されうる。
【0018】
制御部2は、例えば図1に示すように、複数のDRAMマスタ21と、DRAMコントローラ22と、バス23とを有してなり、DRAMコントローラ22がDRAMマスタ21や記憶部3と各種信号・データのやり取りが可能となっている。制御部2は、例えば、SoCとされ、プロセッサ、CPU、GPU等の各種機能回路を一つの半導体チップに集積した集積回路である。SoC、CPU、GPUとは、それぞれ「System on a Chip」、「Central Processing Unit」、「Graphics Processing Unit」の略称である。
【0019】
DRAMマスタ21は、例えば、プロセッサ、CPU、GPU等のメモリを必要とする演算処理ブロックである。DRAMマスタ21は、バス23を介して、DRAMコントローラ22と接続されている。DRAMマスタ21の個数や種類については、メモリシステム1の用途に応じて適宜変更されうる。
【0020】
DRAMコントローラ22は、外部の記憶部3と接続されており、記憶部3に格納された各種データの読み込み(リード)、および書き込み(ライト)の処理を実行する。以下、説明の簡便化のため、DRAMコントローラ22が記憶部3からデータを読み込む処理を「リード」と称し、記憶部3にデータを書き込む処理を「ライト」と称する。DRAMコントローラ22は、例えば、記憶部3からDRAMマスタ21における演算処理に必要な各種データのリード・ライトを実行する。また、DRAMコントローラ22は、前述のリード・ライトとは独立したスクラビング処理として、一定期間ごとに記憶部3に格納された全データについてリードし、リードしたデータを記憶部3の同一アドレスにそのままライトする役割を果たす。DRAMコントローラ22の詳細については後述する。
【0021】
なお、制御部2による1回のスクラビング処理における一定期間は、任意であり、記憶部3のデータ容量やメモリシステム1の用途等に応じて適宜設定される。
【0022】
記憶部3は、ECC対応DRAMであり、例えば、DRAMマスタ21における演算処理に用いられる各種データ等を記録する記録媒体である。記憶部3は、例えば図3に示すように、データ格納領域31と、ECC生成部32と、ECC格納領域33と、エラー訂正部34とを備える。記憶部3は、ECC生成部32がデータ格納領域31に格納するデータに対応するECCを生成すると共に、生成したECCをECC格納領域33に格納する。記憶部3は、例えば、DRAMコントローラ22からデータ格納領域31に格納されたデータのリード要求がされた場合、当該データに対応するECCをECC格納領域33から読み込む。そして、記憶部3は、DRAMコントローラ22からリード要求がされたデータについて、エラー訂正部34がECCを用いて誤りを検出した場合にはデータの訂正を行い、訂正をしたデータをDRAMコントローラ22に返す構成となっている。つまり、記憶部3は、リード要求がされたデータに訂正可能な1ビット誤りが生じていたときに誤り訂正をし、訂正後のデータを出力できるが、データ格納領域31に格納されたデータをエラー訂正後のデータに自律して上書きできない構成である。また、記憶部3は、リード要求がされたデータに誤りが生じていない場合には、当該データをそのまま出力する。
【0023】
以上が、実施形態にかかるメモリシステム1の基本的な構成である。メモリシステム1は、制御部2が一定期間内に記憶部3(ECC対応DRAM)のデータ格納領域31に格納された全データについて読み込んだ後、読み込んだデータを元の領域にそのまま書き込む処理を行う。つまり、メモリシステム1は、記憶部3のデータ格納領域31に格納されたデータに誤りが生じた場合であっても、記憶部3から出力された訂正後のデータがそのまま元の領域に書き込まれる構成となっている。そのため、メモリシステム1は、誤りが生じたデータがデータ格納領域31に長期間格納され続けること、ひいては訂正不可能な2ビット以上のデータの誤りが生じることを抑制し、エラーに強い特性を有する。
【0024】
〔DRAMコントローラ〕
次に、DRAMコントローラ22の詳細について説明する。
【0025】
DRAMコントローラ22は、例えば図3に示すように、スクラビング処理回路4と、調停回路5と、プロトコル生成回路6とを有してなる。
【0026】
スクラビング処理回路4は、記憶部3に格納された全データについて一定期間内にリード要求とライト要求を出し、記憶部3からリードしたデータをそのまま同一の領域にライトする役割を果たす。スクラビング処理回路4は、例えば図4に示すように、アドレス生成部41と、アクセス要求部42と、データ保持部43とを有してなる。
【0027】
アドレス生成部41は、記憶部3のデータ格納領域31におけるアドレス値を順次生成する。例えば、アドレス生成部41は、スクラビング処理において、1回のリードにおけるデータ量分の値の間隔で、アドレス値を昇順で順次生成する。
【0028】
以下、説明の簡便化のため、スクラビング処理での1回のリードにおけるデータ量を便宜上「リードデータ量」と称する。
【0029】
具体的には、例えば、記憶部3のデータ容量が8GB(ギガバイト)であって、リードデータ量が512B(バイト)である場合には、アドレス生成部41は、0、512、1024、1536、・・・8589934080の順にアドレス値を生成する。この場合において、アドレス値が記憶部3のデータ容量分の値に達したとき、例えば、アドレス生成部41は、最初のアドレス値の「0」を生成し、上記と同様のアドレス値の順次生成を繰り返す。アドレス生成部41が生成したアドレス値は、例えば、アクセス要求部42に出力され、アクセス要求部42によるリード要求・ライト要求に用いられる。
【0030】
なお、リードデータ量は、予め設定された固定値である。また、記憶部3のデータ容量およびスクラビング処理における1回のリード・ライトのデータ量については、上記した例に限定されるものではなく、メモリシステム1の用途に応じて適宜変更されうる。
【0031】
アクセス要求部42は、記憶部3のデータ格納領域31のうちアドレス生成部41で生成したアドレス値に対応する領域へのアクセス要求を、調停回路5に出力する。アクセス要求部42からのアクセス要求は、データ格納領域31に格納されたデータのリード要求およびライト要求である。アクセス要求部42は、DRAMコントローラ22が一定期間内に記憶部3のデータ格納領域31に格納された全データのリード・ライトができるように、所定の間隔で調停回路5に記憶部3へのアクセス要求を出力する。
【0032】
以下、「アクセス要求」、「リード要求」および「ライト要求」の語については、特に断りがない場合、記憶部3へのアクセス要求、リード要求およびライト要求を意味する。
【0033】
例えば、記憶部3のデータ容量が8GB、リードデータ量が512Bであって、記憶部3に格納された全データを1時間でリード・ライトしたい場合について検討する。この場合、アクセス要求部42による1回のアクセス要求の間隔は、(60×60×1000×1000)/(16×1024×1024)=214.6μsecと設定される。なお、アクセス要求部42によるアクセス要求の間隔については、記憶部3のデータ容量、リードデータ量および1回のスクラビング処理に要する一定期間に応じて適宜変更されうる。
【0034】
データ保持部43は、アクセス要求部42からのリード要求に基づいてDRAMコントローラ22が記憶部3からリードしたデータを一時的に保持するリードデータバッファである。データ保持部43のデータ容量は、例えば、リードデータ量に応じた容量、すなわちスクラビング処理における1回のデータアクセス分の容量とされる。データ保持部43は、アクセス要求部42からのライト要求がされた場合、保持したデータをライトデータとして出力する。そして、データ保持部43は、アクセス要求部42から次のアドレス値へのリード要求によりDRAMコントローラ22が記憶部3からリードした新たなデータを次のライト要求まで保持する。データ保持部43から出力されたライトデータは、DRAMコントローラ22により、記憶部3のデータ格納領域31のうちリードデータが格納されていた同一の領域に書き込まれる。
【0035】
調停回路5は、バス23からのアクセス要求とスクラビング処理回路4からのアクセス要求とが競合する場合における調停処理を行うものである。調停回路5は、バス23およびスクラビング処理回路4から記憶部3へのアクセス要求が競合する場合、一方のアクセス要求をプロトコル生成回路6に出力し、その処理が完了するまで他方のアクセス要求を保留する。アクセス要求が競合する場合とは、2以上のアクセス要求が行われる記憶部3のデータ格納領域31におけるアドレスの範囲が少なくとも一部重複していることを意味する。調停回路5は、例えば、バス23からのアクセス要求を優先し、スクラビング処理回路4からのアクセス要求を保留するが、これらのアクセス要求がされるアドレスの範囲が重複していない場合には双方のアクセス要求をプロトコル生成回路6に出力する。調停回路5は、プロトコル生成回路6にアクセス要求を発行し、記憶部3からのリードデータをアクセス要求元に返すと共に、アクセス要求元から受け取ったライトデータを記憶部3に送信する。
【0036】
調停回路5は、例えば、バス23およびスクラビング処理回路4からのライト要求が競合し、かつバス23からのライト要求がスクラビング処理回路4からのリード要求とライト要求との間である場合、バス23からのライト要求を保留することが好ましい。これは、スクラビング処理のリード後に、記憶部3の同一アドレスにバス23からのデータのライトが行われるとデータの内容が書き換わり、その後にスクラビング処理のライトが行われると、データの内容が意図したものとは異なるものとなるためである。調停回路5の処理動作については後述する。
【0037】
プロトコル生成回路6は、調停回路5から出力された記憶部3へのアクセス要求を受け取り、当該アクセス要求を記憶部3に発行するコマンドに変換して発行するものである。プロトコル生成回路6は、ECC対応DRAMである記憶部3との通信におけるプロトコルを生成する回路であり、DRAMプロトコル生成回路とも称されうる。
【0038】
以上が、DRAMコントローラ22の基本的な構成である。DRAMコントローラ22は、スクラビング処理回路4によるスクラビング処理とDRAMマスタ21等からのアクセス要求に基づくリード・ライト処理を実行する。
【0039】
〔スクラビング処理〕
次に、制御部2による記憶部3のスクラビング処理について説明する。以下、説明の簡便化のため、記憶部3のデータ格納領域31に格納されたデータを便宜上「格納データ」と称することがある。
【0040】
制御部2は、例えば、メモリシステム1の電源がオン状態になる等の所定の開始条件を満たした場合に、スクラビング処理回路4に図5に示す処理を開始させる。ステップS110では、スクラビング処理回路4において、アドレス生成部41は、記憶部3のデータ格納領域31のアドレス値を生成し、アクセス要求部42に生成したアドレス値を出力する。
【0041】
続いて、ステップS120では、アクセス要求部42は、ステップS110で生成されたアドレス値へのリード要求を調停回路5に出力する。その後、調停回路5は、アクセス要求部42から出力されたリード要求をプロトコル生成回路6に出力する。
【0042】
次に、ステップS130では、プロトコル生成回路6は、調停回路5からのリード要求を受け取り、記憶部3へのリード要求のコマンドに変換し、発行する。
【0043】
そして、ステップS140では、DRAMコントローラ22は、記憶部3のデータ格納領域31のうちステップS110で生成されたアドレス値から所定のアドレス範囲のデータをリードする。このときのアドレス範囲は、予め設定されたリードデータ量に応じて適宜変更されうる。
【0044】
続いて、ステップS150では、スクラビング処理回路4は、ステップS140でリードしたデータを受け取り、データ保持部43で保持する。
【0045】
次に、ステップS160では、スクラビング処理回路4は、ステップS110~S130と同様の処理により、記憶部3のうちステップS140でリードしたデータと同一のアドレス範囲へのライト要求を行う。そして、DRAMコントローラ22は、ステップS150でデータ保持部43が保持したデータをライトデータとして出力し、記憶部3のうちリードしたデータが格納されていた領域に当該ライトデータを書き戻す処理を行う。これにより、記憶部3内の格納データは、誤りが生じていない場合にはそのままのデータで、DRAMコントローラ22により上書きされる。一方、記憶部3内の格納データは、誤りが生じていた場合にはエラー訂正部34が誤り訂正した後の「正しいデータ」で、DRAMコントローラ22により上書きされる。いずれの場合であっても、記憶部3は、上記した制御部2によるリード・ライト、すなわちスクラビング処理により外部からは誤り検出ができない格納データが誤りのない状態で保たれることとなる。
【0046】
そして、ステップS170では、制御部2は、ステップS110で生成されたアドレス値が記憶部3のデータ容量分の値、いわば上限値に達したか否かを判定し、肯定判定の場合には処理をステップS180に進める。一方、ステップS170で否定判定の場合には、制御部2は、処理をステップS190に進める。
【0047】
ステップS180では、アドレス生成部41は、最初のアドレス値(例えば0)を生成する。そして、制御部2は、処理をステップS120に戻す。
【0048】
一方、ステップS190では、アドレス生成部41は、ステップS110で生成したアドレス値にリードデータ量を加えた次のアドレス値を生成する。例えば、ステップS110で生成したアドレス値が「0」、リードデータ量が「512B」である場合、ステップS190では、アドレス生成部41は、「512」のアドレス値を生成する。その後、制御部2は、処理をステップS120に戻す。
【0049】
制御部2は、以上の処理を設定した所定期間内に記憶部3の全格納データについて行う。これにより、記憶部3は、全格納データについて所定期間ごとに読み込み・書き戻しがされ、何らかの原因で格納データに誤りが生じたとしても訂正されたデータに書き戻される。そのため、メモリシステム1は、ECC対応DRAMのように、外部の制御部2によって直接、誤り検出ができない記憶部3を用いた場合であっても、訂正不可能な2ビット以上の誤りが生じたデータが保持される事態を防ぐことが可能となっている。
【0050】
〔調停回路〕
次に、調停回路5における調停処理について説明する。
【0051】
調停回路5は、スクラビング処理回路4によるスクラビング処理と並行して、例えば図6に示す処理を実行する。
【0052】
ステップS210では、調停回路5は、バス23からライト要求があるか否かを判定し、肯定判定の場合には処理をステップS220に進める。一方、ステップS210で否定判定の場合には、調停回路5は、処理をステップS210に戻す。
【0053】
ステップS220では、調停回路5は、スクラビング処理がステップS120(リード要求)からステップS160(データライト)の間にあるか否かを判定し、肯定判定の場合には処理をステップS230に進める。一方、ステップS220において否定判定の場合には、調停回路5は、処理をステップS290に進める。
【0054】
ステップS290では、調停回路5は、バス23からのライト要求を実行する。その後、調停回路5は、処理をステップS210に戻す。
【0055】
ステップS230では、調停回路5は、バス23からのライト要求のアドレス範囲とスクラビング処理におけるライト要求のアドレス範囲とが重複しているか否かを判定し、肯定判定の場合には処理をステップS240に進める。一方、否定判定の場合には、調停回路5は、処理をステップS270に進める。
【0056】
ステップS240では、調停回路5は、スクラビング処理におけるライト要求を優先し、バス23からのライト要求を保留する処理を行う。続いて、ステップS250では、調停回路5は、スクラビング処理におけるステップS160のライト要求が発行されるまで待ち、当該ライト要求が発行されたら、スクラビング処理のライト要求を実行する。そして、スクラビング処理における書き込み処理が完了した後のステップS260では、調停回路5は、保留していたバス23からのライト要求を実行し、処理をステップS210に戻す。
【0057】
一方、ステップS270では、調停回路5は、バス23からのライト要求を保留することなく実行し、処理をステップS280に進める。その後、ステップS280では、調停回路5は、スクラビング処理におけるライト要求を実行し、処理をステップS210に戻す。
【0058】
調停回路5が上記の処理を行うことにより、スクラビング処理でのステップS140(データリード)とステップS160(データライト)の間に、アドレス範囲がステップS160と重複するライト要求がバス23からなされた場合、その処理を保留される。これにより、スクラビング処理における格納データのリードからライトの間に、重複するアドレス範囲内においてバス23からのライトがされることがなくなり、格納データがスクラビング処理に起因して意図しないデータに置き換わることを防ぐことができる。
【0059】
実施形態に係るメモリシステム1は、ECC対応DRAMを記憶部3として用い、制御部2により記憶部3内の格納データを一定期間内にリードし、リードデータを同一アドレスにライトを行う。記憶部3の格納データは、自律して上書きされないが、誤りが生じていない場合にはそのまま制御部2に出力され、訂正可能な1ビットの誤りが生じた場合には内部のECCを用いて誤り訂正がされた訂正後のデータで出力されることとなる。そして、制御部2が記憶部3からリードしたデータは誤りがない正しいデータである確率が高いため、このリードデータをそのままの形で同一のアドレス範囲に書き戻すことで、訂正できない2ビット以上のエラーが発生する確率を下げることができる。
【0060】
よって、このメモリシステム1は、ECC対応DRAMを用いつつ、外部の制御部2がECC対応DRAM内の格納データの誤りを直接検出できなくても、当該格納データをスクラビング処理により誤り訂正後のデータで保つことができる構成となる。その結果、メモリシステム1は、SoCとECC対応DRAM内とによりなる構成でありながらも、実質的な誤り訂正が可能であり、エラーに強い特性が得られる。
【0061】
(他の実施形態)
本開示は、実施例に準拠して記述されたが、本開示は当該実施例や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらの一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
【0062】
本開示に記載の制御部2及びその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリを構成することによって提供された専用コンピュータにより、実現されてもよい。あるいは、本開示に記載の制御部2及びその手法は、一つ以上の専用ハードウエア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより、実現されてもよい。もしくは、本開示に記載の制御部2及びその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリと一つ以上のハードウエア論理回路によって構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより、実現されてもよい。また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されていてもよい。
【0063】
なお、上記各実施形態において、実施形態を構成する要素は、特に必須であると明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。また、上記各実施形態において、実施形態の構成要素の個数、数値、量、範囲等の数値が言及されている場合、特に必須であると明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではない。また、上記各実施形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に特定の形状、位置関係等に限定される場合等を除き、その形状、位置関係等に限定されるものではない。
【符号の説明】
【0064】
2・・・制御部、3・・・記憶部、31・・・データ格納領域、32・・・ECC生成部
33・・・ECC格納領域、34・・・エラー訂正部、4・・・スクラビング処理回路
41・・・アドレス生成部、42・・・アドレス要求部、43・・・データ保持部
5・・・調停回路
図1
図2
図3
図4
図5
図6