JP2004234545A - 制御回路及びメモリコントローラ - Google Patents
制御回路及びメモリコントローラ Download PDFInfo
- Publication number
- JP2004234545A JP2004234545A JP2003024861A JP2003024861A JP2004234545A JP 2004234545 A JP2004234545 A JP 2004234545A JP 2003024861 A JP2003024861 A JP 2003024861A JP 2003024861 A JP2003024861 A JP 2003024861A JP 2004234545 A JP2004234545 A JP 2004234545A
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage device
- ecc
- inverting
- control circuit
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
【課題】消去後の初期値に対してECCエラーを誤検出することがなく、動作テストも容易な制御回路及びメモリコントローラを提供すること。
【解決手段】フラッシュメモリ(22)にECC符号として、データの反転値から計算されたリードソロモン符号の反転値が書き込まれる。データのビット列がオール“1”の場合は、オール“1”のECC符号が書き込まれる。フラッシュメモリ(22)から消去後の初期値(オール“1”)を読み出す場合、ECCデコーダ(34)に入力されるデータのビット列はオール“0”、ECC符号もオール“0”となるため、ECCエラーが検出されることがない。
【選択図】 図2
【解決手段】フラッシュメモリ(22)にECC符号として、データの反転値から計算されたリードソロモン符号の反転値が書き込まれる。データのビット列がオール“1”の場合は、オール“1”のECC符号が書き込まれる。フラッシュメモリ(22)から消去後の初期値(オール“1”)を読み出す場合、ECCデコーダ(34)に入力されるデータのビット列はオール“0”、ECC符号もオール“0”となるため、ECCエラーが検出されることがない。
【選択図】 図2
Description
【0001】
【発明の属する技術分野】
本発明は半導体記憶装置等のエラーチェック訂正(Error Checking and Correction or Error Correction Code)(以下、ECCと略称する)に関する制御回路及びメモリコントローラに関する。
【0002】
【従来の技術】
不揮発性半導体記憶装置の一例としてフラッシュメモリがある。例えば、NAND型のフラッシュメモリでは、512バイト単位のブロック毎に書込みが行われ、ブロックは不連続でも構わないが、書込みアドレスは増加しながら書き込まれるものもある。そのため、不連続な複数のブロックに一旦データを書き込んだ後、中間のブロック(アドレスが小さい)にデータを書込みたい場合は、一旦、他の領域へデータを移してから、アドレスが増加するブロックに順番に書き込む必要がある。この時、データが書き込まれていない領域からデータを読み出すことになるが、データが書き込まれていない領域は、データが消去されている消去領域である。不揮発性半導体記憶装置において、データの消去を行うと、その領域のデータはある初期値(例えば、すべてのビットが“1”)となる。
【0003】
一方、不揮発性半導体記憶装置に書き込まれるデータはエラー訂正符号化処理され、本来の書込みデータに対してECCビット(1ビット、あるいは数ビット)が付加されている。不揮発性半導体記憶装置から読み出したデータはエラー訂正復号処理される。消去領域のデータは例えば、ビット列がオール“1”であるが、通常のECC符号、例えば拡張ハミング符号では、ビット列がオール“1”、オール“0”のデータに対するECCビットはオール“1”、オール“0”にはならない。このため、消去領域から読み出したデータは誤まりは無い(正しい)にも係わらず、ECCエラー有りと誤判定されてしまう。
【0004】
このようなECCエラー誤判定を防ぐために、ECC制御回路内にエンコーダ用、デコーダ用の2つのインバータを内蔵し、ECCエンコーダの出力、ECCデコーダの出力の適宜ビットを反転することにより、ECCエラーが誤検出されないようにすることが考えられている(特許文献1参照)。
【0005】
特許文献1に記載のECC制御回路は、チェックビット生成回路、シンドロームデコーダ(ECCデコーダ)、チェックビット生成回路から生成されたチェックビットの少なくとも一部を反転する第1のビットインバータ、チェックビット格納用不揮発性メモリから読み出したチェックビットの少なくとも一部を反転する第2のビットインバータから構成されている。
【0006】
第1のビットインバータは、データ領域の初期値に対して生成されるチェックビットが消去後の初期値と等しくなるようにその一部を反転する。第2のビットインバータは、チェックビット格納用不揮発性メモリから読み出したチェックビットについて第1のビットインバータと同じビットの反転を行う。
【0007】
データ書込みの際は、データをデータ用不揮発性メモリへ書き込むとともにチェックビット生成回路へ供給する。チェックビット生成回路は、データに応じたチェックビットを生成する。第1のビットインバータは、このチェックビットを、ECCエラーが発生しないように適宜ビット反転させ、チェックビット格納用不揮発性メモリに書き込む。
【0008】
データ読出しの際は、データをデータ用不揮発性メモリから読み出し、ECC制御回路に供給し、チェックビットをチェックビット格納用不揮発性メモリから読出し、第2のビットインバータを介して、その一部が反転されてシンドロームデコーダへ供給される。シンドロームデコーダはエラーがあれば適宜修正し、修正後のデータをデータバスへ送出する。
【0009】
このように、消去領域から読み出したデータからチェックビットを生成し、この一部のビットをエラーが発生しないように適宜反転させることにより、ECCエラーの誤検出を防止している。
【0010】
【特許文献1】
特開2001−92723号公報(段落0013〜段落0014、図3)
【0011】
【発明が解決しようとする課題】
特許文献1記載では、ECC符号の特性を考慮していないため、ビットインバータが反転するビットは固定ではないので、インバータが複雑になる。一般に、集積回路は回路記述をした後、シミュレーションテストが必要であるが、複雑なインバータはテスト項目数も多く、テストに時間がかかる欠点がある。
【0012】
この発明の目的は、消去後の初期値に対してECCエラーを誤検出することがなく、動作テストも容易な制御回路及びメモリコントローラを提供することである。
【0013】
【課題を解決するための手段】
上記した課題を解決し目的を達成するために、本発明は以下に示す手段を用いている。
【0014】
制御回路は、
記憶装置から読み出したデータを全ビット反転する第1の反転手段と、
前記第1の反転手段の出力をエラー訂正復号処理する復号手段と、
を具備する。
【0015】
記憶装置に接続されるメモリコントローラにおいて、
データを一時的に保持するバッファと、
前記バッファから記憶装置に書き込まれるデータを全ビット反転する第1の反転手段と、
前記第1の反転手段の出力をエラー訂正符号化処理する符号化手段と、
前記符号化手段から出力されるデータを全ビット反転して記憶装置に書き込む第2の反転手段と、
記憶装置から読み出したデータを全ビット反転する第3の反転手段と、
前記第3の反転手段の出力をエラー訂正復号処理する復号手段と、
を具備する。
【0016】
この発明によれば、簡単な構成で、記憶装置の消去後の初期値に対してECCエラーを誤検出することがなく、動作テストも容易である。
【0017】
【発明の実施の形態】
以下、図面を参照して本発明による制御回路及びメモリコントローラの実施の形態を説明する。ここでは、説明の便宜上、不揮発性半導体記憶装置はフラッシュメモリであるとし、消去後の初期値のビット列はオール“1”であるとし、誤り訂正符号をリードソロモン符号とする。図1はリードソロモン符号化回路への入力データとその出力符号との関係を表す。リードソロモン符号は入力データのEXORの組み合わせで構成されているため、データのビットがオール“0”の場合は、リードソロモン符号もオール“0”になるが、データのビットがオール“1”の場合は、リードソロモン符号はほとんどの場合オール“1”にはならない。このため、消去後の初期値がオール“1”ということは、データビットと符号ビットがともにオール“1”ということであり、ECCエラー有りと判定されてしまう。
【0018】
第1の実施の形態
図2は本発明の第1の実施の形態に係る制御回路を含むシステムの全体構成を示す図である。本実施の形態は、消去後の初期値からECCエラーが検出されないようにデータバスやECC符号バスにインバータを接続するものである。
【0019】
フラッシュメモリ22にデータバス、制御バス、アドレスバスを介してメモリコントローラ24が接続される。メモリコントローラ24はデータバッファ26、マルチプレクサ28、DMAコントローラ30、ECCコントローラ32からなる。データバッファ26はフラッシュメモリ22へ書き込むデータ、フラッシュメモリ22から読み出すデータを一時的に保持する。ECCコントローラ32はフラッシュメモリ22へ書き込むデータにECC符号化処理、フラッシュメモリ22から読み出すデータにECC復号処理を施す。マルチプレクサ28はデータバッファ26からのデータとECCコントローラ32からのデータを選択的にフラッシュメモリ22へ供給する。DMAコントローラ30は、フラッシュメモリ22、データバッファ26にアドレスデータ、制御データを供給するとともに、ECCデコーダ34、ECCエンコーダ36に命令を供給する。
【0020】
ECCコントローラ32は、データバッファ26から供給されるデータに基づいてECC符号を作成するECCエンコーダ36、メモリから読み出したデータとECC符号とに基づいてデータのエラーがあるか否かを判定し、エラーが訂正できる場合は訂正するECCデコーダ34、ECCデコーダ34へ供給されるデータ(メモリから読み出したデータ)の全ビットを反転するインバータ38、ECCデコーダ34へ供給されるECC符号(メモリから読み出したECC符号)の全ビットを反転するインバータ40、ECCエンコーダ36へ供給されるデータ(フラッシュメモリ22に書き込まれるデータ)の全ビットを反転するインバータ42、ECCエンコーダ36から出力されるECC符号の全ビットを反転するインバータ44からなる。
【0021】
上記構成のシステムの動作を説明する。
【0022】
データ書き込み
フラッシュメモリ22に書き込まれるデータがデータバッファ26に一旦保持される。DMAコントローラ30がデータバッファ26に対してデータバッファ用命令線62にリード命令を、データバッファ用アドレス線64に所望のアドレスを発行することにより、データバッファ26からデータ(メモリにライトするデータ)をリードする。DMAコントローラ30がフラッシュメモリ22に対してフラッシュメモリ用命令線78にライト命令を、フラッシュメモリ用アドレス線80に所望のアドレスを発行することにより、マルチプレクサ28を介してデータをフラッシュメモリ22に書き込む。DMAコントローラ30はECCエンコーダ36に対してエンコード命令線82にエンコード開始命令を送り、データバッファ26−フラッシュメモリ22間データバスからスヌープされたデータ74をインバータ42で反転し、反転データをECCエンコーダ36へ送る。データバッファ26からフラッシュメモリ22へデータを転送している際は、マルチプレクサ28はデータを通過させる処理を行う。マルチプレクサ28の出力であるフラッシュメモリ入力データバスを通してデータを転送し終わった後、ECCエンコーダ36はデータバッファ26から読み出したデータの反転値に対してECC符号を生成し、データ反転機能付きマルチプレクサ入力バス76を通じてECC符号の反転値を送信する。マルチプレクサ28はECC符号を通過させる処理を行い、このECC符号の反転値がフラッシュメモリ22へ書き込まれる。
【0023】
上記手順に従いフラッシュメモリ22へオール“1”のデータを書き込むと、ECCエンコーダ36に入力されるデータは反転してオール“0”となるため、ECCエンコーダ36ではオール“0”のECC符号が生成される。これを反転してフラッシュメモリ22に書き込むため、データ、ECC符号ともにオール“1”が書き込まれる。
【0024】
データ読み出し
DMAコントローラ30がフラッシュメモリ22に対してデータバッファ用命令線78にリード命令を、フラッシュメモリ用アドレス線80に所望のアドレスを発行することにより、フラッシュメモリ22からデータをリードする。DMAコントローラ30がデータバッファ26に対してデータバッファ用命令線62にライト命令を、データバッファ用アドレス線64に所望のアドレスを発行することにより、フラッシュメモリ22から読み出したデータをフラッシュメモリ−データバッファ間データバスを通してデータバッファ26に書き込む。DMAコントローラ30はECCデコーダ34に対してデコード命令線86を通じてデコード開始命令を送り、インバータ38の出力であるECCデコーダ入力用データ反転バスからリードデータの反転値を、インバータ40の出力であるECCデータ入力用ECC符号反転バスからECC符号の反転値をECCデコーダ34へ送る。
【0025】
ECCデコーダ34のデコードの結果、データにエラーがあり修正が必要であった場合は、データ訂正動作が開始する。ECCデコーダ34が訂正箇所を特定・訂正する場合は、デコードステータス線84をビジー状態とし、訂正箇所特定・訂正中であることをDMAコントローラ30に通知し、データバッファ26へのリード・ライト動作を禁止させる。次に、ECCデコーダ34はデータバッファ26から訂正箇所の情報をECC訂正用リードデータバス66を通してリードする。ECCデコーダ34は訂正すべきビット位置のエラーデータをビット反転により訂正し、訂正後のデータをECC訂正用ライトデータバス68を通してデータバッファ26にライトする。
【0026】
上記手順に従いフラッシュメモリ22からオール“1”のデータを読み出すと、ECCデコーダ34に入力されるデータは反転してオール“0”となり、ECC符号も反転してオール“0”(上記書き込み手順を参照)であるため、図1に示すように、ECCエラーが検出されることがない。
【0027】
以上説明したように、本実施の形態によれば、フラッシュメモリ22へ書き込む場合、フラッシュメモリ22にはECC符号として「データの反転値から計算されたリードソロモン符号の反転値」が書き込まれる。つまり、データ領域のビットがオール“1”の場合は、オール“1”のECC符号が書き込まれる。フラッシュメモリ22から消去後の初期値(オール“1”)を読み出す場合、ECCデコーダ34に入力されるデータはオール“0”、ECC符号もオール“0”となるため、ECCエラーが検出されることがない。
【0028】
メモリ消去後の状態に対して、通常通りECC判定を行うとエラーが誤検出されてしまう。特許文献1ではメモリ消去後のデータからECC符号を生成し、この符号データをエラーが発生しないように適宜反転させて対応しているのに対し、本実施の形態ではメモリ消去後のデータの全ビットを反転させた後、ECC制御回路に入力し、ECC符号を生成している。特許文献1では、ECCエンコーダ・デコーダ内にインバータが実装されていることになるため、ECCエンコーダ・デコーダの単体テストが難しいが、本実施の形態では既存のECCエンコーダ・デコーダの外部にインバータを接続しているため、ECCエンコーダ・デコーダの単体テストが容易である。
【0029】
以下、本発明による制御回路の他の実施の形態を説明する。他の実施の形態の説明において第1の実施の形態と同一部分は同一参照数字を付してその詳細な説明は省略する。
【0030】
第2の実施の形態
図2に示す第1の実施の形態では、ECC制御はDMAコントローラ30が司っているが、DMAコントローラ30の代わりにCPUを用いて制御を行うこともできる。図3はこれを実現する第2の実施の形態のブロック図である。すなわち、DMAコントローラ30の代わりにCPU50が設けられる。CPU50を動作させるためのプログラムを格納するROMモジュール52、CPU50の作業領域となるRAMモジュール54が必要となる。DMAコントローラがECC制御を行う場合と比較して異なる制御を行うのは以下の2点である。
【0031】
(1)ECC制御を行う前に、CPU50はプログラムリード用データ線92を通じてROMモジュール52からプログラムをロードする。
【0032】
(2)CPU50はECC制御を行う際に、RAMアクセス用データ線94を通じて作業領域としてRAMモジュール54を使用する。
【0033】
その他の制御は、第1の実施の形態と同様である。
【0034】
以上説明したように、第2の実施の形態によっても、第1の実施の形態と同じ効果が得られる。
【0035】
次に、上述した構成の第1、第2の実施の形態に適用されるLSIのテストを説明する。
【0036】
図4は一般的なLSI設計フローを示す。ステップS10で、チップやパッケージ、コスト、周波数、回路規模見積もり等のLSI外部仕様を決定する。ステップS12で、外部仕様に従って、LSI内部の各モジュールの担当機能(内部仕様)を決定する。ステップS14で、内部仕様に従い、ハードウェア記述言語を用いて回路を記述する。ステップS16で、記述された回路の機能が正常に動作しているかどうかを検証する(機能シミュレーション)。ステップS18で、シミュレーションが成功(回路機能が正常に動作している)か否かを判定する。
【0037】
失敗の場合は、回路記述(ステップS14)に戻る。成功した場合は、ステップS20で、ハードウェア記述言語で記述された回路をANDゲートやORゲート等の論理ゲートに変換する(論理合成)。論理ゲートに変換された回路を以下「ネット」と称する。
【0038】
ステップS22で、ネットがハードウェア記述言語で記述された回路と同等の機能を持っているかどうかを検証する(論理シミュレーション)。検証内容は機能シミュレーションの検証テストと似通っている事が多い。ステップS24で、ネットが希望動作周波数で正常に動作するかどうかを検証する(タイミング解析)。なお、ステップ22と24は並列で作業ができるため、どちらを先に実行しても良い。ステップS26で、論理シミュレーションとタイミング解析が成功(ネットが正常に動作している)か否かを判定する。
【0039】
機能シミュレーションにおいて正常な動作をしなかった場合、あるいはタイミング解析が成功しなかった場合には、回路記述を変更し、機能シミュレーションをやり直す(ステップS14に戻る)。また、論理シミュレーションやタイミング解析でネットに異常が発見された場合は、論理合成をやり直したり(ステップS20に戻る)、回路記述までさかのぼってやり直す(ステップS14に戻る)。成功した場合は、ステップS28で、実際にLSI基板上に論理ゲートを配置、配線する(配置配線)。
【0040】
図4の機能シミュレーション(ステップS16、S18)の詳細を図5に示す。図中の単体機能とはECCデコーダ34、ECCエンコーダ36、DMAコントローラ30等の単体のモジュールの機能を指す。これに対して、複合機能とはECCデコーダ34とインバータ38、40、ECCエンコーダ36とインバータ42、44、ECCデコーダ34とECCエンコーダ36とインバータ38、40、42、44等のように複数のモジュールが組み合わさった機能を指す。ほとんどの場合、単体機能に比べて複合機能は機能が複雑になるため、その機能を検証するテストは多岐に渡り、テストパターンの作成や検証方法が難しくなることが多い。このためハードウェア言語で記述された回路を検証するためには、図5のように先ず単体機能テストを行って、単体の機能が正しいことが検証されてから、複合機能テストを行うのが一般的である。
【0041】
例としてECCデコーダ34を挙げると、ECCデコーダ34の機能を検証するためには、ステップS52で、単体機能のためのテストパターンを作成する。ステップS54で、単体機能のシミュレーションを行う。ステップS56で、シミュレーションが成功か失敗か、失敗の場合、その原因がテストパターンにあるのか、回路記述にあるのかを判定し、原因に該当するステップに戻り、やり直す。
【0042】
ステップS58で、複合機能(例えば、ECCデコーダとインバータを組み合わせた機能)テストのためのテストパターンを作成する。ステップS60で、複合機能のシミュレーションを行う。ステップS62で、シミュレーションが成功か失敗か、失敗の場合、その原因がテストパターンにあるのか、回路記述にあるのかを判定し、原因に該当するステップに戻り、やり直す。複合機能テストでは単体機能テストと異なり、それぞれのモジュールの機能の組み合わせの数(複合機能数)だけテストパターンが存在する。このテストパターンの数が多いと、それだけテスト作成に時間がかかるとともに、そのテストのシミュレーション時間が増大するため、LSI開発が現実的には困難となっている。
【0043】
上述した本実施の形態のデータ、ECC符号を反転させるインバータは、リードソロモン符号の特性を利用して一意に全ビットを反転させているため、機能シミュレーションのためのテストパターンは1パターンである。しかし、特許文献1のインバータは、データ用フラッシュメモリやチェックビット用フラッシュメモリの特性に合わせて適宜チェックビットを反転させる必要があり、そのテストパターンは2のチェックビット乗必要となる。このため、複合機能テストパターンの作成や複合機能シミュレーションを2のチェックビット乗回数だけ実施する必要があり、全テストパターンだけ機能シミュレーションを実施することは非常に困難である。論理シミュレーションもこのテストパターンを使用するので、論理シミュレーションの実施も困難である。
【0044】
本発明は上述した実施の形態に限定されず、種々変形して実施可能である。例えば、上述の説明では、ECC符号としてはリードソロモン符号を説明したが、他のECC符号を用いてもよい。例えば、オール“1”の時にECCエラーが必ずオール“0”のときにECCエラーになるECC符号化方式と消去後オール“0”になるメモリでも実装可能である。また、メモリの消去後の初期値はオール“1”としたが、これに限られない。
【0045】
なお、本願発明は上記実施の形態に限定されるものではなく、実施段階ではその趣旨を逸脱しない範囲で種々に変形することが可能である。また、各実施の形態は可能な限り適宜組み合わせて実施してもよく、その場合組合わせた効果が得られる。さらに、上記実施の形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組合わせにより種々の発明が抽出され得る。例えば、実施の形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【0046】
【発明の効果】
以上説明したように本発明によれば、記憶装置の消去後の初期値に対してECCエラーを誤検出することがなく、動作テストも容易な制御回路及びメモリコントローラを提供することができる。
【図面の簡単な説明】
【図1】リードソロモン符号方式の概要を示す図。
【図2】本発明による制御回路の第1の実施の形態の構成を示すブロック図。
【図3】本発明による制御回路の第2の実施の形態の構成を示すブロック図。
【図4】本発明による制御回路の第1、第2の実施の形態に適用される動作テストを示すフローチャート。
【図5】図4に示すフローチャートの機能シミュレーションの詳細を示すフローチャート。
【符号の説明】
22…フラッシュメモリ、24…メモリコントローラ、26…データバッファ、28…マルチプレクサ、30…DMAコントローラ、32…ECCコントローラ、34…ECCデコーダ、36…ECCエンコーダ、38、40、42、44…インバータ
【発明の属する技術分野】
本発明は半導体記憶装置等のエラーチェック訂正(Error Checking and Correction or Error Correction Code)(以下、ECCと略称する)に関する制御回路及びメモリコントローラに関する。
【0002】
【従来の技術】
不揮発性半導体記憶装置の一例としてフラッシュメモリがある。例えば、NAND型のフラッシュメモリでは、512バイト単位のブロック毎に書込みが行われ、ブロックは不連続でも構わないが、書込みアドレスは増加しながら書き込まれるものもある。そのため、不連続な複数のブロックに一旦データを書き込んだ後、中間のブロック(アドレスが小さい)にデータを書込みたい場合は、一旦、他の領域へデータを移してから、アドレスが増加するブロックに順番に書き込む必要がある。この時、データが書き込まれていない領域からデータを読み出すことになるが、データが書き込まれていない領域は、データが消去されている消去領域である。不揮発性半導体記憶装置において、データの消去を行うと、その領域のデータはある初期値(例えば、すべてのビットが“1”)となる。
【0003】
一方、不揮発性半導体記憶装置に書き込まれるデータはエラー訂正符号化処理され、本来の書込みデータに対してECCビット(1ビット、あるいは数ビット)が付加されている。不揮発性半導体記憶装置から読み出したデータはエラー訂正復号処理される。消去領域のデータは例えば、ビット列がオール“1”であるが、通常のECC符号、例えば拡張ハミング符号では、ビット列がオール“1”、オール“0”のデータに対するECCビットはオール“1”、オール“0”にはならない。このため、消去領域から読み出したデータは誤まりは無い(正しい)にも係わらず、ECCエラー有りと誤判定されてしまう。
【0004】
このようなECCエラー誤判定を防ぐために、ECC制御回路内にエンコーダ用、デコーダ用の2つのインバータを内蔵し、ECCエンコーダの出力、ECCデコーダの出力の適宜ビットを反転することにより、ECCエラーが誤検出されないようにすることが考えられている(特許文献1参照)。
【0005】
特許文献1に記載のECC制御回路は、チェックビット生成回路、シンドロームデコーダ(ECCデコーダ)、チェックビット生成回路から生成されたチェックビットの少なくとも一部を反転する第1のビットインバータ、チェックビット格納用不揮発性メモリから読み出したチェックビットの少なくとも一部を反転する第2のビットインバータから構成されている。
【0006】
第1のビットインバータは、データ領域の初期値に対して生成されるチェックビットが消去後の初期値と等しくなるようにその一部を反転する。第2のビットインバータは、チェックビット格納用不揮発性メモリから読み出したチェックビットについて第1のビットインバータと同じビットの反転を行う。
【0007】
データ書込みの際は、データをデータ用不揮発性メモリへ書き込むとともにチェックビット生成回路へ供給する。チェックビット生成回路は、データに応じたチェックビットを生成する。第1のビットインバータは、このチェックビットを、ECCエラーが発生しないように適宜ビット反転させ、チェックビット格納用不揮発性メモリに書き込む。
【0008】
データ読出しの際は、データをデータ用不揮発性メモリから読み出し、ECC制御回路に供給し、チェックビットをチェックビット格納用不揮発性メモリから読出し、第2のビットインバータを介して、その一部が反転されてシンドロームデコーダへ供給される。シンドロームデコーダはエラーがあれば適宜修正し、修正後のデータをデータバスへ送出する。
【0009】
このように、消去領域から読み出したデータからチェックビットを生成し、この一部のビットをエラーが発生しないように適宜反転させることにより、ECCエラーの誤検出を防止している。
【0010】
【特許文献1】
特開2001−92723号公報(段落0013〜段落0014、図3)
【0011】
【発明が解決しようとする課題】
特許文献1記載では、ECC符号の特性を考慮していないため、ビットインバータが反転するビットは固定ではないので、インバータが複雑になる。一般に、集積回路は回路記述をした後、シミュレーションテストが必要であるが、複雑なインバータはテスト項目数も多く、テストに時間がかかる欠点がある。
【0012】
この発明の目的は、消去後の初期値に対してECCエラーを誤検出することがなく、動作テストも容易な制御回路及びメモリコントローラを提供することである。
【0013】
【課題を解決するための手段】
上記した課題を解決し目的を達成するために、本発明は以下に示す手段を用いている。
【0014】
制御回路は、
記憶装置から読み出したデータを全ビット反転する第1の反転手段と、
前記第1の反転手段の出力をエラー訂正復号処理する復号手段と、
を具備する。
【0015】
記憶装置に接続されるメモリコントローラにおいて、
データを一時的に保持するバッファと、
前記バッファから記憶装置に書き込まれるデータを全ビット反転する第1の反転手段と、
前記第1の反転手段の出力をエラー訂正符号化処理する符号化手段と、
前記符号化手段から出力されるデータを全ビット反転して記憶装置に書き込む第2の反転手段と、
記憶装置から読み出したデータを全ビット反転する第3の反転手段と、
前記第3の反転手段の出力をエラー訂正復号処理する復号手段と、
を具備する。
【0016】
この発明によれば、簡単な構成で、記憶装置の消去後の初期値に対してECCエラーを誤検出することがなく、動作テストも容易である。
【0017】
【発明の実施の形態】
以下、図面を参照して本発明による制御回路及びメモリコントローラの実施の形態を説明する。ここでは、説明の便宜上、不揮発性半導体記憶装置はフラッシュメモリであるとし、消去後の初期値のビット列はオール“1”であるとし、誤り訂正符号をリードソロモン符号とする。図1はリードソロモン符号化回路への入力データとその出力符号との関係を表す。リードソロモン符号は入力データのEXORの組み合わせで構成されているため、データのビットがオール“0”の場合は、リードソロモン符号もオール“0”になるが、データのビットがオール“1”の場合は、リードソロモン符号はほとんどの場合オール“1”にはならない。このため、消去後の初期値がオール“1”ということは、データビットと符号ビットがともにオール“1”ということであり、ECCエラー有りと判定されてしまう。
【0018】
第1の実施の形態
図2は本発明の第1の実施の形態に係る制御回路を含むシステムの全体構成を示す図である。本実施の形態は、消去後の初期値からECCエラーが検出されないようにデータバスやECC符号バスにインバータを接続するものである。
【0019】
フラッシュメモリ22にデータバス、制御バス、アドレスバスを介してメモリコントローラ24が接続される。メモリコントローラ24はデータバッファ26、マルチプレクサ28、DMAコントローラ30、ECCコントローラ32からなる。データバッファ26はフラッシュメモリ22へ書き込むデータ、フラッシュメモリ22から読み出すデータを一時的に保持する。ECCコントローラ32はフラッシュメモリ22へ書き込むデータにECC符号化処理、フラッシュメモリ22から読み出すデータにECC復号処理を施す。マルチプレクサ28はデータバッファ26からのデータとECCコントローラ32からのデータを選択的にフラッシュメモリ22へ供給する。DMAコントローラ30は、フラッシュメモリ22、データバッファ26にアドレスデータ、制御データを供給するとともに、ECCデコーダ34、ECCエンコーダ36に命令を供給する。
【0020】
ECCコントローラ32は、データバッファ26から供給されるデータに基づいてECC符号を作成するECCエンコーダ36、メモリから読み出したデータとECC符号とに基づいてデータのエラーがあるか否かを判定し、エラーが訂正できる場合は訂正するECCデコーダ34、ECCデコーダ34へ供給されるデータ(メモリから読み出したデータ)の全ビットを反転するインバータ38、ECCデコーダ34へ供給されるECC符号(メモリから読み出したECC符号)の全ビットを反転するインバータ40、ECCエンコーダ36へ供給されるデータ(フラッシュメモリ22に書き込まれるデータ)の全ビットを反転するインバータ42、ECCエンコーダ36から出力されるECC符号の全ビットを反転するインバータ44からなる。
【0021】
上記構成のシステムの動作を説明する。
【0022】
データ書き込み
フラッシュメモリ22に書き込まれるデータがデータバッファ26に一旦保持される。DMAコントローラ30がデータバッファ26に対してデータバッファ用命令線62にリード命令を、データバッファ用アドレス線64に所望のアドレスを発行することにより、データバッファ26からデータ(メモリにライトするデータ)をリードする。DMAコントローラ30がフラッシュメモリ22に対してフラッシュメモリ用命令線78にライト命令を、フラッシュメモリ用アドレス線80に所望のアドレスを発行することにより、マルチプレクサ28を介してデータをフラッシュメモリ22に書き込む。DMAコントローラ30はECCエンコーダ36に対してエンコード命令線82にエンコード開始命令を送り、データバッファ26−フラッシュメモリ22間データバスからスヌープされたデータ74をインバータ42で反転し、反転データをECCエンコーダ36へ送る。データバッファ26からフラッシュメモリ22へデータを転送している際は、マルチプレクサ28はデータを通過させる処理を行う。マルチプレクサ28の出力であるフラッシュメモリ入力データバスを通してデータを転送し終わった後、ECCエンコーダ36はデータバッファ26から読み出したデータの反転値に対してECC符号を生成し、データ反転機能付きマルチプレクサ入力バス76を通じてECC符号の反転値を送信する。マルチプレクサ28はECC符号を通過させる処理を行い、このECC符号の反転値がフラッシュメモリ22へ書き込まれる。
【0023】
上記手順に従いフラッシュメモリ22へオール“1”のデータを書き込むと、ECCエンコーダ36に入力されるデータは反転してオール“0”となるため、ECCエンコーダ36ではオール“0”のECC符号が生成される。これを反転してフラッシュメモリ22に書き込むため、データ、ECC符号ともにオール“1”が書き込まれる。
【0024】
データ読み出し
DMAコントローラ30がフラッシュメモリ22に対してデータバッファ用命令線78にリード命令を、フラッシュメモリ用アドレス線80に所望のアドレスを発行することにより、フラッシュメモリ22からデータをリードする。DMAコントローラ30がデータバッファ26に対してデータバッファ用命令線62にライト命令を、データバッファ用アドレス線64に所望のアドレスを発行することにより、フラッシュメモリ22から読み出したデータをフラッシュメモリ−データバッファ間データバスを通してデータバッファ26に書き込む。DMAコントローラ30はECCデコーダ34に対してデコード命令線86を通じてデコード開始命令を送り、インバータ38の出力であるECCデコーダ入力用データ反転バスからリードデータの反転値を、インバータ40の出力であるECCデータ入力用ECC符号反転バスからECC符号の反転値をECCデコーダ34へ送る。
【0025】
ECCデコーダ34のデコードの結果、データにエラーがあり修正が必要であった場合は、データ訂正動作が開始する。ECCデコーダ34が訂正箇所を特定・訂正する場合は、デコードステータス線84をビジー状態とし、訂正箇所特定・訂正中であることをDMAコントローラ30に通知し、データバッファ26へのリード・ライト動作を禁止させる。次に、ECCデコーダ34はデータバッファ26から訂正箇所の情報をECC訂正用リードデータバス66を通してリードする。ECCデコーダ34は訂正すべきビット位置のエラーデータをビット反転により訂正し、訂正後のデータをECC訂正用ライトデータバス68を通してデータバッファ26にライトする。
【0026】
上記手順に従いフラッシュメモリ22からオール“1”のデータを読み出すと、ECCデコーダ34に入力されるデータは反転してオール“0”となり、ECC符号も反転してオール“0”(上記書き込み手順を参照)であるため、図1に示すように、ECCエラーが検出されることがない。
【0027】
以上説明したように、本実施の形態によれば、フラッシュメモリ22へ書き込む場合、フラッシュメモリ22にはECC符号として「データの反転値から計算されたリードソロモン符号の反転値」が書き込まれる。つまり、データ領域のビットがオール“1”の場合は、オール“1”のECC符号が書き込まれる。フラッシュメモリ22から消去後の初期値(オール“1”)を読み出す場合、ECCデコーダ34に入力されるデータはオール“0”、ECC符号もオール“0”となるため、ECCエラーが検出されることがない。
【0028】
メモリ消去後の状態に対して、通常通りECC判定を行うとエラーが誤検出されてしまう。特許文献1ではメモリ消去後のデータからECC符号を生成し、この符号データをエラーが発生しないように適宜反転させて対応しているのに対し、本実施の形態ではメモリ消去後のデータの全ビットを反転させた後、ECC制御回路に入力し、ECC符号を生成している。特許文献1では、ECCエンコーダ・デコーダ内にインバータが実装されていることになるため、ECCエンコーダ・デコーダの単体テストが難しいが、本実施の形態では既存のECCエンコーダ・デコーダの外部にインバータを接続しているため、ECCエンコーダ・デコーダの単体テストが容易である。
【0029】
以下、本発明による制御回路の他の実施の形態を説明する。他の実施の形態の説明において第1の実施の形態と同一部分は同一参照数字を付してその詳細な説明は省略する。
【0030】
第2の実施の形態
図2に示す第1の実施の形態では、ECC制御はDMAコントローラ30が司っているが、DMAコントローラ30の代わりにCPUを用いて制御を行うこともできる。図3はこれを実現する第2の実施の形態のブロック図である。すなわち、DMAコントローラ30の代わりにCPU50が設けられる。CPU50を動作させるためのプログラムを格納するROMモジュール52、CPU50の作業領域となるRAMモジュール54が必要となる。DMAコントローラがECC制御を行う場合と比較して異なる制御を行うのは以下の2点である。
【0031】
(1)ECC制御を行う前に、CPU50はプログラムリード用データ線92を通じてROMモジュール52からプログラムをロードする。
【0032】
(2)CPU50はECC制御を行う際に、RAMアクセス用データ線94を通じて作業領域としてRAMモジュール54を使用する。
【0033】
その他の制御は、第1の実施の形態と同様である。
【0034】
以上説明したように、第2の実施の形態によっても、第1の実施の形態と同じ効果が得られる。
【0035】
次に、上述した構成の第1、第2の実施の形態に適用されるLSIのテストを説明する。
【0036】
図4は一般的なLSI設計フローを示す。ステップS10で、チップやパッケージ、コスト、周波数、回路規模見積もり等のLSI外部仕様を決定する。ステップS12で、外部仕様に従って、LSI内部の各モジュールの担当機能(内部仕様)を決定する。ステップS14で、内部仕様に従い、ハードウェア記述言語を用いて回路を記述する。ステップS16で、記述された回路の機能が正常に動作しているかどうかを検証する(機能シミュレーション)。ステップS18で、シミュレーションが成功(回路機能が正常に動作している)か否かを判定する。
【0037】
失敗の場合は、回路記述(ステップS14)に戻る。成功した場合は、ステップS20で、ハードウェア記述言語で記述された回路をANDゲートやORゲート等の論理ゲートに変換する(論理合成)。論理ゲートに変換された回路を以下「ネット」と称する。
【0038】
ステップS22で、ネットがハードウェア記述言語で記述された回路と同等の機能を持っているかどうかを検証する(論理シミュレーション)。検証内容は機能シミュレーションの検証テストと似通っている事が多い。ステップS24で、ネットが希望動作周波数で正常に動作するかどうかを検証する(タイミング解析)。なお、ステップ22と24は並列で作業ができるため、どちらを先に実行しても良い。ステップS26で、論理シミュレーションとタイミング解析が成功(ネットが正常に動作している)か否かを判定する。
【0039】
機能シミュレーションにおいて正常な動作をしなかった場合、あるいはタイミング解析が成功しなかった場合には、回路記述を変更し、機能シミュレーションをやり直す(ステップS14に戻る)。また、論理シミュレーションやタイミング解析でネットに異常が発見された場合は、論理合成をやり直したり(ステップS20に戻る)、回路記述までさかのぼってやり直す(ステップS14に戻る)。成功した場合は、ステップS28で、実際にLSI基板上に論理ゲートを配置、配線する(配置配線)。
【0040】
図4の機能シミュレーション(ステップS16、S18)の詳細を図5に示す。図中の単体機能とはECCデコーダ34、ECCエンコーダ36、DMAコントローラ30等の単体のモジュールの機能を指す。これに対して、複合機能とはECCデコーダ34とインバータ38、40、ECCエンコーダ36とインバータ42、44、ECCデコーダ34とECCエンコーダ36とインバータ38、40、42、44等のように複数のモジュールが組み合わさった機能を指す。ほとんどの場合、単体機能に比べて複合機能は機能が複雑になるため、その機能を検証するテストは多岐に渡り、テストパターンの作成や検証方法が難しくなることが多い。このためハードウェア言語で記述された回路を検証するためには、図5のように先ず単体機能テストを行って、単体の機能が正しいことが検証されてから、複合機能テストを行うのが一般的である。
【0041】
例としてECCデコーダ34を挙げると、ECCデコーダ34の機能を検証するためには、ステップS52で、単体機能のためのテストパターンを作成する。ステップS54で、単体機能のシミュレーションを行う。ステップS56で、シミュレーションが成功か失敗か、失敗の場合、その原因がテストパターンにあるのか、回路記述にあるのかを判定し、原因に該当するステップに戻り、やり直す。
【0042】
ステップS58で、複合機能(例えば、ECCデコーダとインバータを組み合わせた機能)テストのためのテストパターンを作成する。ステップS60で、複合機能のシミュレーションを行う。ステップS62で、シミュレーションが成功か失敗か、失敗の場合、その原因がテストパターンにあるのか、回路記述にあるのかを判定し、原因に該当するステップに戻り、やり直す。複合機能テストでは単体機能テストと異なり、それぞれのモジュールの機能の組み合わせの数(複合機能数)だけテストパターンが存在する。このテストパターンの数が多いと、それだけテスト作成に時間がかかるとともに、そのテストのシミュレーション時間が増大するため、LSI開発が現実的には困難となっている。
【0043】
上述した本実施の形態のデータ、ECC符号を反転させるインバータは、リードソロモン符号の特性を利用して一意に全ビットを反転させているため、機能シミュレーションのためのテストパターンは1パターンである。しかし、特許文献1のインバータは、データ用フラッシュメモリやチェックビット用フラッシュメモリの特性に合わせて適宜チェックビットを反転させる必要があり、そのテストパターンは2のチェックビット乗必要となる。このため、複合機能テストパターンの作成や複合機能シミュレーションを2のチェックビット乗回数だけ実施する必要があり、全テストパターンだけ機能シミュレーションを実施することは非常に困難である。論理シミュレーションもこのテストパターンを使用するので、論理シミュレーションの実施も困難である。
【0044】
本発明は上述した実施の形態に限定されず、種々変形して実施可能である。例えば、上述の説明では、ECC符号としてはリードソロモン符号を説明したが、他のECC符号を用いてもよい。例えば、オール“1”の時にECCエラーが必ずオール“0”のときにECCエラーになるECC符号化方式と消去後オール“0”になるメモリでも実装可能である。また、メモリの消去後の初期値はオール“1”としたが、これに限られない。
【0045】
なお、本願発明は上記実施の形態に限定されるものではなく、実施段階ではその趣旨を逸脱しない範囲で種々に変形することが可能である。また、各実施の形態は可能な限り適宜組み合わせて実施してもよく、その場合組合わせた効果が得られる。さらに、上記実施の形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組合わせにより種々の発明が抽出され得る。例えば、実施の形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【0046】
【発明の効果】
以上説明したように本発明によれば、記憶装置の消去後の初期値に対してECCエラーを誤検出することがなく、動作テストも容易な制御回路及びメモリコントローラを提供することができる。
【図面の簡単な説明】
【図1】リードソロモン符号方式の概要を示す図。
【図2】本発明による制御回路の第1の実施の形態の構成を示すブロック図。
【図3】本発明による制御回路の第2の実施の形態の構成を示すブロック図。
【図4】本発明による制御回路の第1、第2の実施の形態に適用される動作テストを示すフローチャート。
【図5】図4に示すフローチャートの機能シミュレーションの詳細を示すフローチャート。
【符号の説明】
22…フラッシュメモリ、24…メモリコントローラ、26…データバッファ、28…マルチプレクサ、30…DMAコントローラ、32…ECCコントローラ、34…ECCデコーダ、36…ECCエンコーダ、38、40、42、44…インバータ
Claims (12)
- 記憶装置から読み出したデータを全ビット反転する反転手段と、
前記反転手段の出力をエラー訂正復号処理する復号手段と、
を具備する制御回路。 - 前記復号手段は記憶装置のデータ消去後の初期値の全ビット反転値に対してエラー無しを検出する請求項1に記載の制御回路。
- 前記記憶装置は不揮発性半導体記憶装置を具備する請求項1に記載の制御回路。
- 記憶装置に書き込まれるデータを全ビット反転する第1の反転手段と、
前記第1の反転手段の出力をエラー訂正符号化処理する符号化手段と、
前記符号化手段から出力されるデータを全ビット反転して記憶装置に書き込む第2の反転手段と、
記憶装置から読み出したデータを全ビット反転する第3の反転手段と、
前記第3の反転手段の出力をエラー訂正復号処理する復号手段と、
を具備する制御回路。 - 前記符号化手段の符号化方式は、前記復号手段が記憶装置のデータ消去後の初期値の全ビット反転値に対してエラー無しを検出する方式である請求項4に記載の制御回路。
- 前記復号手段は記憶装置のデータ消去後の初期値の全ビット反転値に対してエラー無しを検出する請求項4に記載の制御回路。
- 前記記憶装置は不揮発性半導体記憶装置を具備する請求項4に記載の制御回路。
- 記憶装置に接続されるメモリコントローラにおいて、
データを一時的に保持するバッファと、
前記バッファから記憶装置に書き込まれるデータを全ビット反転する第1の反転手段と、
前記第1の反転手段の出力をエラー訂正符号化処理する符号化手段と、
前記符号化手段から出力されるデータを全ビット反転して記憶装置に書き込む第2の反転手段と、
記憶装置から読み出したデータを全ビット反転する第3の反転手段と、
前記第3の反転手段の出力をエラー訂正復号処理する復号手段と、
を具備するメモリコントローラ。 - 前記符号化手段の符号化方式は、前記復号手段が記憶装置のデータ消去後の初期値の全ビット反転値に対してエラー無しを検出する方式である請求項8に記載のメモリコントローラ。
- 前記復号手段は記憶装置のデータ消去後の初期値の全ビット反転値に対してエラー無しを検出する請求項8に記載のメモリコントローラ。
- 前記バッファの出力と、前記符号化手段の出力とを選択的に記憶装置に供給する手段をさらに具備する請求項8に記載のメモリコントローラ。
- 前記記憶装置は不揮発性半導体記憶装置を具備する請求項8に記載のメモリコントローラ。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003024861A JP2004234545A (ja) | 2003-01-31 | 2003-01-31 | 制御回路及びメモリコントローラ |
| US10/765,066 US20040255225A1 (en) | 2003-01-31 | 2004-01-28 | Control circuit for error checking and correction and memory controller |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2003024861A JP2004234545A (ja) | 2003-01-31 | 2003-01-31 | 制御回路及びメモリコントローラ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2004234545A true JP2004234545A (ja) | 2004-08-19 |
Family
ID=32953285
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003024861A Pending JP2004234545A (ja) | 2003-01-31 | 2003-01-31 | 制御回路及びメモリコントローラ |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20040255225A1 (ja) |
| JP (1) | JP2004234545A (ja) |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006092163A (ja) * | 2004-09-22 | 2006-04-06 | Sony Corp | 記憶装置 |
| JP2008525937A (ja) * | 2004-12-22 | 2008-07-17 | サンディスク コーポレイション | 消去されたセクタの検出メカニズム |
| JP2008269769A (ja) * | 2007-04-16 | 2008-11-06 | Samsung Electronics Co Ltd | 信頼性の高い初期化データを提供するフラッシュメモリ装置及びその初期化方法 |
| WO2009110630A1 (en) * | 2008-03-07 | 2009-09-11 | Kabushiki Kaisha Toshiba | Memory system |
| US7689895B2 (en) | 2005-05-24 | 2010-03-30 | Samsung Electronics Co., Ltd. | On-the fly error checking and correction CODEC system and method for supporting non-volatile memory |
| US8381085B2 (en) | 2009-09-04 | 2013-02-19 | Samsung Electronics Co., Ltd. | Semiconductor memory device and data processing method thereof |
| US8429485B2 (en) | 2008-09-12 | 2013-04-23 | Samsung Electronics Co., Ltd. | Method and apparatus for detecting free page and a method and apparatus for decoding error correction code using the method and apparatus for detecting free page |
| KR101814476B1 (ko) | 2011-07-15 | 2018-01-05 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 그 구동 방법 |
| KR20180091989A (ko) * | 2017-02-06 | 2018-08-17 | 에스케이하이닉스 주식회사 | 연장된 제품 수명을 갖는 메모리장치 및 그 동작방법 |
Families Citing this family (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7949929B2 (en) * | 2004-08-09 | 2011-05-24 | Phison Electronics Corp. | Controller and storage device having the same |
| US7587658B1 (en) * | 2005-01-03 | 2009-09-08 | Sun Microsystems, Inc. | ECC encoding for uncorrectable errors |
| US7158416B2 (en) * | 2005-03-15 | 2007-01-02 | Infineon Technologies Flash Gmbh & Co. Kg | Method for operating a flash memory device |
| GB2428496A (en) * | 2005-07-15 | 2007-01-31 | Global Silicon Ltd | Error correction for flash memory |
| KR100842680B1 (ko) * | 2007-01-08 | 2008-07-01 | 삼성전자주식회사 | 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템 |
| CN101162449B (zh) * | 2007-10-08 | 2010-06-02 | 福州瑞芯微电子有限公司 | Nand flash控制器及其与nand flash芯片的数据交互方法 |
| US8145977B2 (en) * | 2007-10-15 | 2012-03-27 | Joseph Schweiray Lee | Methods and apparatus for providing error correction to unwritten pages and for identifying unwritten pages in flash memory |
| US8351290B1 (en) * | 2008-09-12 | 2013-01-08 | Marvell International Ltd. | Erased page detection |
| KR101486424B1 (ko) * | 2008-09-12 | 2015-01-26 | 삼성전자주식회사 | 에러 정정 회로, 에러 정정 회로를 구비하는 플래시 메모리시스템 및 에러 정정 회로의 동작 방법 |
| WO2010076835A1 (en) | 2008-12-31 | 2010-07-08 | Christophe Laurent | Error correction code for unidirectional memory |
| JP5600963B2 (ja) * | 2010-02-22 | 2014-10-08 | 富士通株式会社 | 不揮発性記憶装置、及びデータ初期化方法 |
| KR101816642B1 (ko) * | 2011-07-28 | 2018-01-10 | 삼성전자주식회사 | 에러 정정 회로, 이를 포함하는 비휘발성 메모리 장치 및 이의 구동 방법 |
| US8751736B2 (en) | 2011-08-02 | 2014-06-10 | Oracle International Corporation | Instructions to set and read memory version information |
| US8572441B2 (en) | 2011-08-05 | 2013-10-29 | Oracle International Corporation | Maximizing encodings of version control bits for memory corruption detection |
| US20130086315A1 (en) * | 2011-10-04 | 2013-04-04 | Moon J. Kim | Direct memory access without main memory in a semiconductor storage device-based system |
| US9043559B2 (en) | 2012-10-23 | 2015-05-26 | Oracle International Corporation | Block memory engine with memory corruption detection |
| US9110829B2 (en) * | 2012-11-30 | 2015-08-18 | Taiwan Semiconductor Manufacturing Co. Ltd. | MRAM smart bit write algorithm with error correction parity bits |
| CN103077095B (zh) * | 2012-12-28 | 2015-05-27 | 华为技术有限公司 | 内存数据的纠错方法及装置及计算机系统 |
| US9672298B2 (en) | 2014-05-01 | 2017-06-06 | Oracle International Corporation | Precise excecution of versioned store instructions |
| CN105321566B (zh) * | 2014-06-30 | 2019-07-12 | 华邦电子股份有限公司 | 半导体存储装置及其编程方法 |
| US10395753B2 (en) | 2014-08-28 | 2019-08-27 | Winbond Electronics Corp. | Semiconductor memory device and programming method thereof |
| US9195593B1 (en) | 2014-09-27 | 2015-11-24 | Oracle International Corporation | Hardware assisted object memory migration |
| US11461174B2 (en) * | 2020-08-31 | 2022-10-04 | Taiwan Semiconductor Manufacturing Company, Ltd. | Integrated circuit and method of operating same |
| KR20220124582A (ko) * | 2021-03-03 | 2022-09-14 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4528676A (en) * | 1982-06-14 | 1985-07-09 | Northern Telecom Limited | Echo cancellation circuit using stored, derived error map |
| US5043943A (en) * | 1990-06-18 | 1991-08-27 | Motorola, Inc. | Cache memory with a parity write control circuit |
| US5428630A (en) * | 1993-07-01 | 1995-06-27 | Quantum Corp. | System and method for verifying the integrity of data written to a memory |
| US5887005A (en) * | 1997-06-26 | 1999-03-23 | Integrated Device Technology, Inc. | Methods and apparatus for error correction |
| JP3663377B2 (ja) * | 2001-10-23 | 2005-06-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データ記憶装置、読み出しデータの処理装置および読み出しデータの処理方法 |
-
2003
- 2003-01-31 JP JP2003024861A patent/JP2004234545A/ja active Pending
-
2004
- 2004-01-28 US US10/765,066 patent/US20040255225A1/en not_active Abandoned
Cited By (15)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006092163A (ja) * | 2004-09-22 | 2006-04-06 | Sony Corp | 記憶装置 |
| US8327238B2 (en) | 2004-12-22 | 2012-12-04 | Sandisk Technologies Inc. | Erased sector detection mechanisms |
| JP2008525937A (ja) * | 2004-12-22 | 2008-07-17 | サンディスク コーポレイション | 消去されたセクタの検出メカニズム |
| US7689895B2 (en) | 2005-05-24 | 2010-03-30 | Samsung Electronics Co., Ltd. | On-the fly error checking and correction CODEC system and method for supporting non-volatile memory |
| JP2008269769A (ja) * | 2007-04-16 | 2008-11-06 | Samsung Electronics Co Ltd | 信頼性の高い初期化データを提供するフラッシュメモリ装置及びその初期化方法 |
| US8395943B2 (en) | 2007-04-16 | 2013-03-12 | Samsung Electronics Co., Ltd. | Flash memory device and set-up data initialization method |
| WO2009110630A1 (en) * | 2008-03-07 | 2009-09-11 | Kabushiki Kaisha Toshiba | Memory system |
| JP2009217391A (ja) * | 2008-03-07 | 2009-09-24 | Toshiba Corp | メモリシステム |
| US9075740B2 (en) | 2008-03-07 | 2015-07-07 | Kabushiki Kaisha Toshiba | Memory system |
| US8429485B2 (en) | 2008-09-12 | 2013-04-23 | Samsung Electronics Co., Ltd. | Method and apparatus for detecting free page and a method and apparatus for decoding error correction code using the method and apparatus for detecting free page |
| KR101497545B1 (ko) * | 2008-09-12 | 2015-03-03 | 삼성전자주식회사 | 프리 페이지 검출 방법 및 장치와 이를 이용한 에러 정정 코드 디코딩 방법 및 장치 |
| US8381085B2 (en) | 2009-09-04 | 2013-02-19 | Samsung Electronics Co., Ltd. | Semiconductor memory device and data processing method thereof |
| KR101814476B1 (ko) | 2011-07-15 | 2018-01-05 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 그 구동 방법 |
| KR20180091989A (ko) * | 2017-02-06 | 2018-08-17 | 에스케이하이닉스 주식회사 | 연장된 제품 수명을 갖는 메모리장치 및 그 동작방법 |
| KR102677592B1 (ko) * | 2017-02-06 | 2024-06-24 | 에스케이하이닉스 주식회사 | 연장된 제품 수명을 갖는 메모리장치 및 그 동작방법 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20040255225A1 (en) | 2004-12-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2004234545A (ja) | 制御回路及びメモリコントローラ | |
| US8006165B2 (en) | Memory controller and semiconductor memory device | |
| CN105340022A (zh) | 用于校正数据错误的电路、设备及方法 | |
| KR20070024624A (ko) | 플래시 메모리 장치에서 내부 프로그래밍 동안 동시적으로외부 판독 동작을 수행하기 위한 방법 및 시스템 | |
| CN114694739B (zh) | 闪存控制器及其中的编码电路 | |
| JP2005242797A (ja) | エラー訂正回路 | |
| JP2009301194A (ja) | 半導体記憶装置の制御システム | |
| CN111880961B (zh) | 用于透明寄存器数据错误检测和纠正的系统和方法 | |
| JP2010009643A (ja) | エラー訂正システム | |
| JP2004514184A (ja) | デジタル・データにおけるソフト・エラーを訂正するための方法および装置 | |
| CN104733051A (zh) | 奇偶校验码的解码方法、存储器储存装置及控制电路单元 | |
| JP2010123156A (ja) | 半導体記憶装置及びその制御方法 | |
| JP2009259113A (ja) | 不揮発性メモリ管理装置 | |
| US20100146224A1 (en) | Request processing device, request processing system, and access testing method | |
| JP5176646B2 (ja) | 誤り訂正機能確認回路及び誤り訂正機能確認方法とそのコンピュータプログラム、並びに記憶装置 | |
| JP4742553B2 (ja) | 記憶装置 | |
| TWI782341B (zh) | 快閃記憶體控制器及其中的編碼電路 | |
| JPS62242258A (ja) | 記憶装置 | |
| JP4582078B2 (ja) | メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| CN112540866B (zh) | 存储器装置及其数据存取方法 | |
| JP2003337760A (ja) | 半導体集積回路及び半導体集積回路の設計方法 | |
| JP4692843B2 (ja) | メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
| KR101147357B1 (ko) | 반도체 메모리 장치 | |
| CN111049529B (zh) | 编码器及相关的编码方法与闪存 | |
| JPH0434786B2 (ja) |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050929 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051018 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051214 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060425 |