JP5174603B2 - メモリの誤り訂正方法,誤り検出方法、及びそれを用いたコントローラ - Google Patents

メモリの誤り訂正方法,誤り検出方法、及びそれを用いたコントローラ Download PDF

Info

Publication number
JP5174603B2
JP5174603B2 JP2008252146A JP2008252146A JP5174603B2 JP 5174603 B2 JP5174603 B2 JP 5174603B2 JP 2008252146 A JP2008252146 A JP 2008252146A JP 2008252146 A JP2008252146 A JP 2008252146A JP 5174603 B2 JP5174603 B2 JP 5174603B2
Authority
JP
Japan
Prior art keywords
data
memory
error
error detection
crc
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2008252146A
Other languages
English (en)
Other versions
JP2010086120A (ja
Inventor
良 藤田
輝昭 酒田
雅裕 白石
卓真 西村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008252146A priority Critical patent/JP5174603B2/ja
Publication of JP2010086120A publication Critical patent/JP2010086120A/ja
Application granted granted Critical
Publication of JP5174603B2 publication Critical patent/JP5174603B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、高速で大容量のメモリ素子を用いたシステムにおいて、システムの故障や停止が重大な結果を招く可能性のあるミッションクリティカルなシステムで用いるメモリの誤り訂正方法,誤り検出方法及びそれを用いたコントローラに関する。
高速化,大容量化が進メモリ素子は、計算機システムに多く用いられ、さまざまな分野で利用されている。その中には、数秒のシステム停止が大損害につながるものや、その故障が重大な事故につながる可能性のあるいわゆるミッションクリティカルなシステムに使われる場合がある。そのようなミッションクリティカルなシステムでは、できるだけシステムを停止させないように可用性を高めることと、異常を即座に検出し、その異常を他に波及させないようにする安全性,信頼性が重要である。前者の可用性を高める方式としては、多数決を行う多重系システムや、誤り訂正符号を用い、誤りを常に訂正するシステムが知られている。後者の安全性,信頼性を高める方式としては、2重化したシステムの出力を常に照合する方式や、誤り検出符号を用いて誤りを検出し、誤ったデータの出力を抑止するシステムが知られている。
この中でメモリシステムの可用性と信頼性の高性能化の方法について見てみると、高可用化手法としてはECC(Error Correction Code)が有名で、記憶データに数ビットのチェックビットを追加することで1ビットのエラー訂正と、2ビットのエラー検出を行うことができる。高信頼化手法としては、通信などの分野で大量のデータ列に対して誤りがないことを検出する方式として用いられる、誤り検出符号CRC(Cyclic Redundancy Check)が有名である。データ列にチェックビットを追加することで、数ビットのエラーがないことを判定することが出来る。よく知られているパリティチェックもCRCの一種である。
他に、ROM(Read Only Memory)などの性能的にクリティカルでない用途では、同じ内容のデータをROMの別の領域、あるいは別のチップに複数格納し、内容を照合して使用するような誤り検出方法も用いられる。
他に、CD(Compact Disc)やハードディスクなどで用いられているブロック符号化法を用いれば、連続した複数ビットのエラーを訂正,検出することが可能である。
例えば、〔特許文献1〕に示されたディスクシステムに用いるキャッシュメモリでは、データの完全性(間違いが無いこと)を保証するために、CRCを付加したデータ列をECCで誤り訂正を行うメモリに格納する構成が示されている。このようにすることで高い信頼性を保ちつつ、メモリ素子の1ビット故障にも耐える可用性を高めている。
また、〔特許文献2〕に示されたデータ処理回路では、マトリックス状のパリティを用いた誤り訂正機能と、データ列に対するCRCを用いて同様に高信頼性と高可用性を向上させる構成が示されている。
特開2002−23966号公報 特開2000−59235号公報
計算機システムのメモリ装置を構築する最も一般的な信頼性と可用性を向上させる方式は、誤り訂正符号ECCを用い、1ビットの誤りを訂正し、2ビットの誤りを訂正する方式である。1個のメモリセルの故障率は非常に小さく、それが2個である確率はその二乗であるから、ほとんどないと考えてよい。2個のメモリセルの故障は検出することが可能であり、3個以上はその確率は更に低いと考えられる。前述の〔特許文献1〕と〔特許文献2〕に記載されたシステムでは、さらに、データ列としての完全性(間違いがないこと)を確保するためにCRCをデータ列に付加し、メモリに格納する時はECCの誤り訂正機能の付いたメモリを用いている。
さて、このように従来のメモリシステムにおいては高信頼,高可用性の向上が重要な課題であるが、一般的な要求として高速化も重要な課題の一つである。近年のメモリデバイスではクロックに同期したデータ転送はもちろん、クロックの立ち上がり、立ち下がりの両エッジを用いたものなど高速化が著しく進んできている。その転送時間は1ns(10の9乗分の1秒)を下回るところまできており、アナログレベルのボードシミュレーションを行わないと正しく動作しないレベルになっている。さらに、メモリデバイスの製造プロセスの微細化に伴い与える信号電圧は1V(ボルト)程度まで下がってきており、非常に少ないマージンの中で動作しなければならなくなってきている。高信頼化手法の一つに、緩和された条件で動作させるディレーティングといったものがあるが、最近のメモリデバイスはPLL(フェーズロックループ)を用いているため、高い周波数でしか動作しないようにできており、容易には適用できなくなってきた。
このような高速化,低電圧化が進むメモリデバイスを前提に高信頼で、高可用性のあるシステムを構築しようとするとき、これまでメモリデバイス内部のメモリセルの故障のみを故障仮定としていただけでは不十分で、メモリとメモリを制御するメモリコントローラ間の接続信号までの故障を故障仮定する必要が出てくる。即ち、メモリデバイスの信号であるアドレス線,データ線,アドレスストローブ線,クロック線,データストローブ線,リードライト制御線の何れが一時的に、または永久的に、断線、あるいは短絡しても、即時にデータを訂正するか、誤りであることを検出することが必要となる。
この中で特にデータ線とデータストローブ線はクロックの立ち上がりと立ち下がりの両エッジを用いるため、他に比べ半分の動作時間で厳しいタイミングとなっている。そのデータストローブ線は数本のデータ線(通常4本か8本)ごとに用意され、データストローブグループを構築している。即ち、このデータストローブ信号がうまく伝送されなければ、例えば、一度に8ビットのデータが書き込まれなかったり、変なデータが書き込まれたりすることになる。このようなケースを含めて正しく誤りを訂正するか、検出できることが課題となってきた。そして、これを実現する回路は高速な転送性能に耐えられるだけの簡易なものでなければならない。
本発明はメモリに書き込むアドレスとデータが正しくメモリに格納されていない問題を解決するメモリの誤り訂正,誤り検出方法、及びそれを用いた制御装置を提供することにある。
上記課題を達成するために、本発明はプロセッサと、メモリ制御装置と、メモリ装置とを備えたコントローラにおいて、前記プロセッサが任意のアドレスに対して任意のデータをライトアクセスするとき、前記メモリ制御装置は、該アドレスと該任意のデータから決定される誤り検出符号CRCと、該誤り検出符号CRCと前記任意のデータから決定される誤り訂正符合ECCを生成し、前記任意のデータと伴に誤り検出符号CRCと誤り訂正符号ECCを前記メモリ装置に書き込み、前記プロセッサが任意のアドレスに対してリードアクセスするとき、前記メモリ制御装置は、前記メモリ装置に書き込まれている誤り訂正符号ECCと、誤り検出符号CRCとデータを読み出し、該読み出した誤り訂正符号ECCに基づき該読み出した誤り検出符号CRCと該読み出したデータの誤りを訂正し、訂正された誤り検出符号CRCと読み出したデータに誤りがありかどうかを検出することを特徴とするものである。
更に、本発明のコントローラは、前記誤り検出符号CRCのビット数が、前記誤り訂正符号ECCで検出可能な誤り検出ビット数より大きいことを特徴とするものである。
更に、本発明のコントローラは、前記メモリ装置は複数のグループ化された信号線で前記メモリ制御装置と接続されており、前記誤り検出符号CRCのビット数が、該グループ化された信号線数より多いことを特徴とするものである。
また、上記課題を達成するために、本発明はプロセッサと、メモリ制御装置と、メモリ装置とを備えて、メモリの誤りを検出するメモリ誤り検出方法において、前記プロセッサが任意のアドレスに対して任意のデータをライトアクセスするとき、前記メモリ制御装置は、該アドレスと該任意のデータから決定される誤り検出符号CRCと、該誤り検出符号CRCと前記任意のデータから決定される誤り訂正符合ECCを生成し、前記任意のデータと伴に誤り検出符号CRCと誤り訂正符号ECCを前記メモリ装置に書き込み、前記プロセッサが任意のアドレスに対してリードアクセスするとき、前記メモリ制御装置は、前記メモリ装置に書き込まれている誤り訂正符号ECCと、誤り検出符号CRCとデータを読み出し、該読み出した誤り訂正符号ECCに基づき該読み出した誤り検出符号CRCと該読み出したデータの誤りを検出することを特徴とするものである。
更に、本発明のメモリ誤り検出方法において、前記誤り検出符号CRCのビット数が、前記誤り訂正符号ECCで検出可能な誤り検出ビット数より大きいことを特徴とするものである。
更に、本発明のメモリ誤り検出方法において、前記メモリ装置は複数のグループ化された信号線で前記メモリ制御装置と接続されており、前記誤り検出符号CRCのビット数が、該グループ化された信号線数より多いことを特徴とするものである。
また、上記課題を達成するために、本発明はプロセッサと、メモリ制御装置と、メモリ装置とを備えて、メモリの誤りを訂正するメモリ誤り訂正方法において、前記プロセッサが任意のアドレスに対して任意のデータをライトアクセスするとき、前記メモリ制御装置は、該アドレスと該任意のデータから決定される誤り検出符号CRCと、該誤り検出符号CRCと前記任意のデータから決定される誤り訂正符合ECCを生成し、前記任意のデータと伴に誤り検出符号CRCと誤り訂正符号ECCを前記メモリ装置に書き込み、前記プロセッサが任意のアドレスに対してリードアクセスするとき、前記メモリ制御装置は、前記メモリ装置に書き込まれている誤り訂正符号ECCと、誤り検出符号CRCとデータを読み出し、該読み出した誤り訂正符号ECCに基づき該読み出した誤り検出符号CRCと該読み出したデータの誤りを訂正することを特徴とするものである。
更に、本発明のメモリ誤り訂正方法において、前記誤り検出符号CRCのビット数が、前記誤り訂正符号ECCで検出可能な誤り検出ビット数より大きいことを特徴とするものである。
更に、本発明のメモリ誤り訂正方法において、前記メモリ装置は複数のグループ化された信号線で前記メモリ制御装置と接続されており、前記誤り検出符号CRCのビット数が、該グループ化された信号線数より多いことを特徴とするものである。
ここで、エラーを完全に検出できるようにするためCRCのビット数はデータストローブグループを構成するビット数以上にすることが望ましい。
本発明は、上記メモリに書き込むデータと伴に、そのアドレスとデータから生成した誤り検出符号CRCをメモリに書き込むことで、アドレス線,データ線,アドレスストローブ線,データストローブ線,リードライト制御線などの異常を、即ち前記メモリに書き込むアドレスとデータが正しくメモリに格納されていないこと、あるいは、正しく読み出せなかったことを判定できる。特に、CRCのビット数をデータストローブグループを構成するビット数以上にすることで、アドレスストローブ信号の異常を確実に検出することが可能となる。
更に、この書き込むデータとCRCに対してECCを付加したことで1ビットのメモリセルエラー、1本のデータ線の異常を訂正することができるため、可用性を向上することが出来る。
また、このメモリ制御装置を、CRC,ECCといった簡単な回路を用いて構築できるので高速なメモリデバイスを用いることが可能となる。
本発明の実施形態を以下図面を用いて説明する。
以下、本発明を実施するための最良の一実施形態を図1から図7を用いて説明する。
図1は、本発明におけるメモリシステムを用いた高信頼コントローラ6の構成を示している。高信頼コントローラ6はメモリ1,メモリコントローラ2,プロセッサ4から構成され、メモリコントローラ2とメモリ1とは信号線群3で接続している。また、メモリコントローラ2とプロセッサ4は信号線群5で接続している。
プロセッサ4はプロセッサ4内部にあるプログラム(記載せず)あるいは、それにより生成するメモリ1上のプログラムに従って動作する。一般には高信頼コントローラ6の外部からのセンサなどデータを入力し、プログラムに基づいて演算処理し、結果をアクチュエータなどに出力してシステムを制御する。このとき、プロセッサ4は、信号線群5を用い必要に応じてメモリコントローラ2に対してデータのライト,リードを行う。一般的なプロセッサでは、図1に示すように、クロック(CLK),アドレス及びデータ(AD),転送開始(BS),リードライト制御(RW),レディ(RDY),エラー(ERR)などの信号線が用いられる。
メモリコントローラ2は、プロセッサ4からのメモリアクセス要求に対して実際のメモリ1にアクセスする装置であり、信号線群5のアクセス要求内容をメモリ1の信号線群3に変換する処理を行う。メモリ1は具体的にはクロック同期式のダイナミックメモリを複数個使用しており、信号線群3にはクロック(CLK),アドレス(A),ローアドレスストローブ(RAS),カラムアドレスストローブ(CAS),ライトリード制御(WE),データマスク(DM),データストローブ(DQS),データ(DQ)などがある。これらは、一般的なダブルデータレート式の同期式ダイナミックメモリの信号線群であるが、特に、データマスク,データストローブはデータをバイト単位に制御できるようになっている。即ち、データが48ビットの場合、データマスクとデータストローブはそれぞれ6本の信号で構成される。
次にメモリ1は、一般的なダブルデータレート式の同期式ダイナミックメモリで構築できるメモリであるが、ここではN個のデータがアドレスAの指定でアクセスできるように構成する。メモリ1には、NeビットのECCとNcビットのCRC、Ndビットのアクセスデータを格納する。アクセスデータは、プロセッサ4やメモリコントローラ2のアクセス単位、あるいはその倍数が望ましく、ここでは4バイト(32ビット)を想定している。その場合、Ndは32となる。Ncはアドレスとデータから生成するCRCのビット数であるが、適用する誤り検出能力でそのビット数を決めることになる。ここでは、アドレスとデータを合わせて64ビット以下に対してハミング距離が出来るだけ大きくする設定をすればよい。また、一般的に知られているように、NcビットのCRCを用いればNcビットまでのバーストエラー、即ち連続したエラーを検出する能力が保証される。ここでは、データストローブ,データマスクでデータがバーストエラーになる可能性があるため、Ncを8以上とする。NeはECCのビット数であり、ECCを一般的な1ビット誤り訂正、2ビット誤り検出を出来るものとすると、Neは7とすることができる(Nd+Ncは40+αで、エラービットを特定するシンドロームに0〜63を指定できる6ビットと2ビットエラー検出のためにパリティ1ビットを追加)。一般に、メモリデバイスは8ビットの倍数で出来ており、メモリ1のデータ幅を8ビットの倍数にするには、Ndを32、Neを7とすると、Ncは大きいほど誤り検出能力が高いので9とする。
図2には、メモリコントローラ2とメモリ1との接続関係をより具体的に示す。メモリ1は16ビットのデータ幅のメモリデバイス11,12,13から構成され、クロックは差動で正反2本の信号線をメモリデバイス個別に接続している。このクロックは125MHz以上必要であり、現在500MHzと年々高速化されている。このクロックに同期して与える信号が、アドレス(A),ローアドレスストローブ(RAS),カラムアドレスストローブ(CAS),ライトリード制御信号(WE)で比較的タイミングが厳しくないため、メモリデバイスに同じ信号線で接続する。8ビット単位にメモリコントローラと1対1に接続するデータマスク(DMU,DML),データストローブ(DQSU,DQSL),データ(DQ)は、クロックの立ち上がり,立ち下がりを使用し周波数が2倍となるためクリティカルパスである。特にデータストローブ,データは双方向の信号でもあり、さらに厳しい信号といえる。
このメモリインタフェースは一般的なダブルデータレートの同期式ダイナミックメモリと同じであるが、その厳しさを説明するため図3,図4にタイムチャートを示す。
まず、図3はメモリへのデータライトを行うタイミングを示している。最も重要なクロックは差動信号で与える(CLKPとCLKN)。以下アドレスA,ローアドレスストローブRAS,カラムアドレスストローブCAS,ライトリード制御信号WEはクロック(CLKP)の立ち上がりでラッチされる。時間T1でアドレスAにローアドレスをメモリ内部にセット、時間T3でアドレスAにカラムアドレスを内部にセット、同時にライトアクセスであることを指定している。ここで、ローアドレスストローブRAS,カラムアドレスストローブCAS,ライトリード制御信号WEはローアクティブの信号であり、ローレベルで所定の動作を意味する信号となっている。メモリは時間T3で指定されたローアドレスとカラムアドレスで指定されたメモリエリアにライトアクセスが行われることが判る。そして、ライトデータ受け取った後該メモリエリアにライトデータを書き込むことになる。この時、ライトデータはデータストローブDQSLをクロックとしてデータDQ及び、データマスクDMLで与えられる。データストローブはクロックと同じ周波数であるが位相は一致していない信号で、データ,データマスクの有効なタイミングで立ち上がり、または、立ち下がりエッジがくる信号である。通常は、データ及びデータストローブはハイインピーダンス状態になっており、時間T3でライト動作を指定した後オンバスする。データマスクはハイレベルの時、該当するデータをメモリに書き込まないようにする信号である。図3には、データを8ビット,データマスクとデータストローブをそれぞれ1本分示したが、図2に示した回路では、これらが6セット存在する。このように8ビットのデータ単位でグループ化することで、データと、データマスク,データストローブの配線遅延を最小限に抑えることができ、高速にデータ転送できるようにしている。
図4はリードを行う場合のタイミングである。アドレスとローアドレスストローブ,カラムアドレスストローブ,ライトリード制御信号の与え方はライト動作と同じであるが、リードしたデータの出力タイミングは少し異なっている。即ち、ライト動作の時は、データまたは、ライトマスクの中央にデータストローブの立ち上がりまたは、立ち下がりエッジがくるようにしたが、リードの場合にはメモリは、データストローブの立ち上がりまたは立ち下がりと同時にデータを出力することになっている。即ち、受け取るメモリコントローラでは、受信したデータストローブからデータが有効であるタイミングでデータを取り込む必要がある。この場合、時間T5と時間T6の中間付近(正確にはデータストローブの立ち上がりと立ち下がりの中間)でデータを内部に取り込む。クロックを400MHzとすると、周期は2.5ns、データの有効期間は1.25ns、データストローブとデータを取り込むタイミングの差は0.625nsと非常に高速なタイミングをコントロールする必要がある。電気信号の伝送速度が10cmでおよそ0.6nsである。電圧は1.5v程度に下がり、反射も考慮する必要がある。このように、メモリはタイミング的に非常に厳しい信号線で接続されている。これらの信号線のうち高々1本の信号線が正しく伝送できない場合のことを考える。アドレス,ローアドレスストローブ,カラムアドレスストローブ,ライトリード制御信号が正しくメモリに伝送されない場合は、指定したアドレスとは別なメモリエリアにライトしたり、リードしたりしてしまうことになる。データストローブやデータマスクが正しく伝送されない場合には、8ビット単位にライトすべきデータがマスクされたり、マスクするはずのデータがライトされたりする。データが正しく転送されない場合には、データが1ビット誤ってライトされたり、リードされたりする。
本発明はこれらの異常状態を訂正あるいは検出できるようにすることを目的としてなされた。先ず、1ビットの異常を検出し訂正するために誤り訂正符号ECCを付加した。更に、8ビットの連続した異常を検出するために、8次以上の生成多項式を用いた誤り検出符号CRCをアクセスするアドレスとデータに対して付加した。以下その実現方法を図5と図6を用いて説明する。
図5はメモリコントローラ2におけるメモリへのライトデータを生成する回路を示したものである。プロセッサ4からのメモリへのアクセス要求に基づくアドレスAとライトデータWDが与えられると、メモリコントローラ2はアドレスAはそのままメモリ1への信号として出力すると伴に、CRC生成回路21の入力とする。ここでは便宜上アドレスAをそのまま出力する構成を記したが、実際にはローアドレスとカラムアドレスに分離する回路が挿入される。さて、CRC生成回路21では、ライトするデータWDと該アドレスAから9ビットのCRCを生成する。ここでは、例えば生成多項式としてX(9)+X(7)+X(5)+X(4)+X(2)+X(1)+1を用いる。ここで、X(N)はXのN乗を示す。この時ハミング距離は4であり、任意の3個までのビット誤りを検出できる、さらに、9個の連続したビット誤りを検出することが出来るようになる。
次に、このCRCとライトデータWDからECC生成回路22で誤り訂正符号ECCを生成する。今、ライトデータWDを32ビット、CRCを9ビットとしているから、あわせて41ビットのデータに対してECCを生成する。1ビットの誤り訂正能力と2ビットの誤り検出能力を持たせる場合、7ビットのECCを付加すればよい。一般に、7ビットのECCは1ビットのパリティと6ビットのシンドロームから構成されている。6ビットのシンドロームは異常の検出されたビット位置を一意に示すもので、通常異常が無い場合は0になる値である。
これらCRCとECCとライトデータWDをメモリへのライトするデータ31として出力する。
次に、図6にメモリ1からリードしたデータが正しいかどうかをチェックし、訂正する回路を示す。アドレスAに対してリードしたデータ31として入力されると、ECCチェック回路23でデータ31を入力としてECCをチェックし2ビットエラーのときはECCエラーを、1ビットエラーのときはシンドロームをECC訂正回路24に与える。ECCチェック回路23では、データ31からシンドロームとパリティを求め、パリティが0でシンドロームが0でない時、即ちパリティとシンドロームに矛盾があるときECCエラーをアサートする。ECC訂正へはシンドローム6ビットをそのまま送ればよい。
ECC訂正回路24では、ECCチェック回路23からにシンドロームの値に従ってCRCとデータDATAの所定のビットを反転させる。ECC訂正回路24の出力はアドレスAと伴にCRCチェック回路25に入力し、CRCが正しいかチェックする。CRCチェック回路はアドレスAと、ECC訂正回路24で訂正されたデータが前記CRC生成回路21で用いた生成多項式で除算し余りが0のとき、CRCが正しいと判定する回路である。プロセッサ4の指示でメモリコントローラ2がアドレスAに対して読み出しを行うと、ECCエラー及びCRCエラーが無い時データRDを正しいリードデータとしてプロセッサ4に送る。ECCエラーあるいはCRCエラーが発生したときは、例えばメモリエラーが発生した割り込み(図1のプロセッサ4のポートERRに接続した信号)をプロセッサ4に与えメモリが異常であることを認識することができる。高信頼コントローラ6はこれによりメモリに異常が有ったことを認識できるので、何度かリトライ後ダウン信号を出力して停止するようにする。
ここで、ECC生成回路22,CRC生成回路21,ECCチェック回路23,CRCチェック回路25はそれぞれ多段の排他的論理和演算素子で構成される。それぞれ同じ回路ではないが、入力ビット数に対して排他的論理和を求めていくだけの回路であるから、32ビットのアドレス、32ビットのデータを最大の入力として64ビットの入力を2入力の排他的論理和では6段で結果を得ることが出来る。1個の2入力排他的論理は0.1ns以下で演算可能であり、演算時間に余裕を持って演算結果を得ることが出来る。
図7は、このような高信頼コントローラを2個用いて高信頼,高可用性システムを構築した例を示している。2個の高信頼コントローラ61と62は同じ入力信号を受け、同じ処理を行い、高信頼用の出力制御装置7に出力データと伴にダウン信号を出力する。高信頼コントローラ61または62からのダウン信号は、正しく動作している時に決まった周期で0と1を反転するような信号で、一定値になる時異常であることを示す信号が一般に使用される。出力制御装置7は、2個の高信頼コントローラ61と62が正常動作している時は、それらのどちらかを出力する。どちらか一方の高信頼コントローラが異常になった時は、正常の高信頼コントローラの出力を選択して出力する。また、その際には故障した高信頼コントローラの交換を要求する信号を出力する。
以上示してきたように、本実施例に拠れば、アドレスとデータに対する誤り検出符号CRCを9ビット付加し、更に該CRCとデータに誤り訂正コードECCを7ビット付加したことにより1ビットのメモリ内セル及びメモリ間配線の異常を訂正あるいは検出することが可能になった。
高信頼コントローラの構成を示す図。 メモリコントローラとメモリデバイスとの接続を示す図。 メモリのライトタイミングを示す図。 メモリのリードタイミングを示す図。 メモリコントローラのライトデータ生成回路を示す図。 メモリコントローラのリードデータ誤り訂正,検出回路を示す図。 高信頼コントローラを用いた高信頼,高可用性システムを示す図。
符号の説明
1 メモリ
2 メモリコントローラ
4 プロセッサ
6 高信頼コントローラ
11,12,13 メモリデバイス
21 CRC生成回路
22 ECC生成回路
23 シンドローム算出回路
24 ECC訂正回路
25 CRCチェック回路

Claims (3)

  1. プロセッサと、メモリ制御装置と、メモリ装置とを備えたコントローラにおいて、
    前記プロセッサが任意のアドレスに対して任意のデータをライトアクセスするとき、前記メモリ制御装置は、該アドレスと該任意のデータから決定される誤り検出符号CRCと、該誤り検出符号CRCと前記任意のデータから決定される誤り訂正符合ECCを生成し、前記任意のデータと伴に誤り検出符号CRCと誤り訂正符号ECCを前記メモリ装置に書き込み、
    前記プロセッサが任意のアドレスに対してリードアクセスするとき、前記メモリ制御装置は、前記メモリ装置に書き込まれている誤り訂正符号ECCと、誤り検出符号CRCとデータを読み出し、該読み出した誤り訂正符号ECCに基づき該読み出した誤り検出符号CRCと該読み出したデータの誤りを訂正し、訂正された誤り検出符号CRCと読み出したデータに誤りがありかどうかを検出すること、
    前記メモリ装置は複数のグループ化された信号線で前記メモリ制御装置と接続されており、前記誤り検出符号CRCのビット数が、該グループ化された信号線数より多いことを特徴とするコントローラ。
  2. プロセッサと、メモリ制御装置と、メモリ装置とを備えて、メモリの誤りを検出するメモリ誤り検出方法において、
    前記プロセッサが任意のアドレスに対して任意のデータをライトアクセスするとき、前記メモリ制御装置は、該アドレスと該任意のデータから決定される誤り検出符号CRCと、該誤り検出符号CRCと前記任意のデータから決定される誤り訂正符合ECCを生成し、前記任意のデータと伴に誤り検出符号CRCと誤り訂正符号ECCを前記メモリ装置に書き込み、
    前記プロセッサが任意のアドレスに対してリードアクセスするとき、前記メモリ制御装置は、前記メモリ装置に書き込まれている誤り訂正符号ECCと、誤り検出符号CRCとデータを読み出し、該読み出した誤り訂正符号ECCに基づき該読み出した誤り検出符号CRCと該読み出したデータの誤りを検出すること、
    前記メモリ装置は複数のグループ化された信号線で前記メモリ制御装置と接続されており、前記誤り検出符号CRCのビット数が、該グループ化された信号線数より多いことを特徴とするメモリ誤り検出方法。
  3. プロセッサと、メモリ制御装置と、メモリ装置とを備えて、メモリの誤りを訂正するメモリ誤り訂正方法において、
    前記プロセッサが任意のアドレスに対して任意のデータをライトアクセスするとき、前記メモリ制御装置は、該アドレスと該任意のデータから決定される誤り検出符号CRCと、該誤り検出符号CRCと前記任意のデータから決定される誤り訂正符合ECCを生成し、前記任意のデータと伴に誤り検出符号CRCと誤り訂正符号ECCを前記メモリ装置に書き込み、
    前記プロセッサが任意のアドレスに対してリードアクセスするとき、前記メモリ制御装置は、前記メモリ装置に書き込まれている誤り訂正符号ECCと、誤り検出符号CRCとデータを読み出し、該読み出した誤り訂正符号ECCに基づき該読み出した誤り検出符号CRCと該読み出したデータの誤りを訂正すること、
    前記メモリ装置は複数のグループ化された信号線で前記メモリ制御装置と接続されており、前記誤り検出符号CRCのビット数が、該グループ化された信号線数より多いことを特徴とするメモリ誤り訂正方法。
JP2008252146A 2008-09-30 2008-09-30 メモリの誤り訂正方法,誤り検出方法、及びそれを用いたコントローラ Active JP5174603B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008252146A JP5174603B2 (ja) 2008-09-30 2008-09-30 メモリの誤り訂正方法,誤り検出方法、及びそれを用いたコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008252146A JP5174603B2 (ja) 2008-09-30 2008-09-30 メモリの誤り訂正方法,誤り検出方法、及びそれを用いたコントローラ

Publications (2)

Publication Number Publication Date
JP2010086120A JP2010086120A (ja) 2010-04-15
JP5174603B2 true JP5174603B2 (ja) 2013-04-03

Family

ID=42250049

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008252146A Active JP5174603B2 (ja) 2008-09-30 2008-09-30 メモリの誤り訂正方法,誤り検出方法、及びそれを用いたコントローラ

Country Status (1)

Country Link
JP (1) JP5174603B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8468417B2 (en) 2009-02-18 2013-06-18 Micron Technology, Inc. Data integrity in memory controllers and methods
JP2012174088A (ja) * 2011-02-23 2012-09-10 Hitachi Ltd メモリ制御装置
EP2737391A1 (en) 2011-12-08 2014-06-04 Hitachi, Ltd. Remote copy system and remote copy control method
JP6430194B2 (ja) 2014-09-29 2018-11-28 ルネサスエレクトロニクス株式会社 半導体記憶装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002023966A (ja) * 2000-06-30 2002-01-25 Toshiba Corp 転送データを冗長化したディスクシステム
US7191379B2 (en) * 2003-09-10 2007-03-13 Hewlett-Packard Development Company, L.P. Magnetic memory with error correction coding
JP2005234976A (ja) * 2004-02-20 2005-09-02 Renesas Technology Corp 記憶装置
JP2006065697A (ja) * 2004-08-27 2006-03-09 Hitachi Ltd 記憶デバイス制御装置
JP4734033B2 (ja) * 2005-05-30 2011-07-27 株式会社東芝 記憶装置
JP2007242157A (ja) * 2006-03-09 2007-09-20 Fujitsu Ltd 情報記憶装置、および書込制御回路

Also Published As

Publication number Publication date
JP2010086120A (ja) 2010-04-15

Similar Documents

Publication Publication Date Title
US11734106B2 (en) Memory repair method and apparatus based on error code tracking
US6044483A (en) Error propagation operating mode for error correcting code retrofit apparatus
JP6882115B2 (ja) Ddr sdramインタフェイスのためのdram支援エラー訂正方法
US5619642A (en) Fault tolerant memory system which utilizes data from a shadow memory device upon the detection of erroneous data in a main memory device
US8041990B2 (en) System and method for error correction and detection in a memory system
US6018817A (en) Error correcting code retrofit method and apparatus for multiple memory configurations
KR102198611B1 (ko) 메모리 내 에러 수정 방법
US8171377B2 (en) System to improve memory reliability and associated methods
US8185800B2 (en) System for error control coding for memories of different types and associated methods
US9128868B2 (en) System for error decoding with retries and associated methods
US8352806B2 (en) System to improve memory failure management and associated methods
US8181094B2 (en) System to improve error correction using variable latency and associated methods
US8176391B2 (en) System to improve miscorrection rates in error control code through buffering and associated methods
US8566672B2 (en) Selective checkbit modification for error correction
US8185801B2 (en) System to improve error code decoding using historical information and associated methods
US20040237001A1 (en) Memory integrated circuit including an error detection mechanism for detecting errors in address and control signals
US11030040B2 (en) Memory device detecting an error in write data during a write operation, memory system including the same, and operating method of memory system
JP5174603B2 (ja) メモリの誤り訂正方法,誤り検出方法、及びそれを用いたコントローラ
US20140281681A1 (en) Error correction for memory systems
US11768731B2 (en) System and method for transparent register data error detection and correction via a communication bus
JP2006512630A (ja) エラー訂正を含むメモリ・サブシステム
US20030182611A1 (en) Method for verifying error correction code function of a computer system
US20190163569A1 (en) Memory and method of operating the memory
TW202240392A (zh) 用於測試錯誤校正電路的半導體裝置和半導體系統
KR20230131029A (ko) 반도체장치 및 반도체시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100326

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120605

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120806

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121228

R151 Written notification of patent or utility model registration

Ref document number: 5174603

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160111

Year of fee payment: 3