JP2020042326A - メモリコントローラ装置、メモリコントローラ装置を有するメモリ装置及びメモリコントロール方法 - Google Patents

メモリコントローラ装置、メモリコントローラ装置を有するメモリ装置及びメモリコントロール方法 Download PDF

Info

Publication number
JP2020042326A
JP2020042326A JP2018166759A JP2018166759A JP2020042326A JP 2020042326 A JP2020042326 A JP 2020042326A JP 2018166759 A JP2018166759 A JP 2018166759A JP 2018166759 A JP2018166759 A JP 2018166759A JP 2020042326 A JP2020042326 A JP 2020042326A
Authority
JP
Japan
Prior art keywords
error correction
data
read
correction code
write
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.)
Granted
Application number
JP2018166759A
Other languages
English (en)
Other versions
JP7177338B2 (ja
Inventor
風間 哲
Satoru Kazama
哲 風間
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018166759A priority Critical patent/JP7177338B2/ja
Publication of JP2020042326A publication Critical patent/JP2020042326A/ja
Application granted granted Critical
Publication of JP7177338B2 publication Critical patent/JP7177338B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Memory System (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

【課題】書き込みと読み出しの効率を高める。【解決手段】半導体メモリへのアクセスを制御する制御部と、書き込みデータに対して、第1の誤り訂正符号と、第1の誤り訂正符号よりエラー訂正率が高くエラー訂正を行う復号処理時間が長い第2の誤り訂正符号とを生成し、書き込みデータを前記半導体メモリに書き込む書き込み部と、読み出し要求の読み出し先ブロックから、読み出しデータを読み出し、読み出しデータにエラーが生じた場合に第1の誤り訂正符号もしくは第2の誤り訂正符号により訂正されたデータを出力する読み出し部とを有し、制御部は、第1の誤り訂正符号による誤り訂正が失敗した場合、読み出しデータを第2の誤り訂正符号により誤り訂正されたデータを、書き換え回数が第1の基準値より少ない他のブロックに移動する、メモリコントローラ装置。【選択図】図4

Description

本発明は,メモリコントローラ装置、メモリコントローラ装置を有するメモリ装置及びメモリコントロール方法に関する。
半導体メモリの一つであるフラッシュメモリは、不揮発性、大容量、高速読み出しが可能なソリッドステートドライブ(SSD)のメモリとしてコンピュータから携帯端末まで広く使用されている。
フラッシュメモリにはNOR型とNAND型があるが、本願ではいずれのタイプでも適用できる。NAND型フラッシュメモリは、NOR型と比較すると、大容量で書き込みと消去が高速である。
フラッシュメモリは、複数のブロックを有し、各ブロックは複数のページに分割されている。フラッシュメモリにおいて、書き込みとは、消去状態のページにデータをプログラムすることであり、読み出しとは、書き込み(プログラム)されたページのデータを読み出すことであり、更に、書き換えとは、書き込みされたページのデータを全て消去することである。通常、書き込みはページ単位で行われ、消去は複数の無効ページを有するブロック単位で一斉に消去することで行われる。
フラッシュメモリにおいて、書き込み(プログラム)は、各メモリセルに電子を注入してメモリセルの状態を変更する動作であり、読み出しは、変更された状態に対応したメモリセルの動作の違いによりデータを読み出す動作である。また、書き換え動作(消去)は、注入された電子を引き抜くことでメモリセルを注入前の状態に戻す動作である。
また、NAND型フラッシュメモリは、1つのメモリセルに1ビットの情報を記録するシングル・レベル・セルと、1つのメモリセルに2ビット以上の情報を記録するマルチ・レベル・セルとがある。マルチ・レベル・セルは、大容量化によりビット単価が低くなるが、劣化するとレベルを判別しにくくなり、エラー訂正率を高くすることが必要である。
以下、フラッシュメモリにおいて、書き込みはメモリセルのプログラムを、書き換えはメモリセルの消去を意味するものとする。以下の特許文献には、フラッシュメモリについて記載がある。
特開平11−232778号公報 特開2010−128697号公報 特開2010−79485号公報
フラッシュメモリは、書き込みではメモリセルに書き込みデータに対応する量の電子を注入し、読み出しでは電子注入量に応じたメモリセルの動作の違いに基づき電子注入量に対応するデータを検出する。そのため、データに誤り(エラー)が発生することがあり、所定回数、例えば3000回、の書き換え回数まで、所定のエラー訂正率でエラー訂正することが仕様で要求される。さらに、フラッシュメモリは、書き換え(消去)によるメモリセルの劣化により、エラー率が増加する。
エラー訂正符号、誤り訂正符号(ECC:Error Correction Code)は、エラー訂正率は低いがエラー訂正を行う復号に要する演算時間が短い第1のエラー訂正符号と、エラー訂正率は高いが復号に要する演算時間が長い第2のエラー訂正符号とが存在する。例えば、第1のエラー訂正符号は、BCH符号であり、第2のエラー訂正符号はLDPC(Low Density Parity Check)符号である。
前述のとおり、フラッシュメモリは、エラー訂正することが仕様で要求されるとともに、書き換え(消去)回数が増加するとメモリセルの劣化によりエラーが増加する。そのため、例えば、書き込みでは書き込みデータに対する第1のエラー訂正符号と第2のエラー訂正符号を生成し、両符号を書き込みデータとともにメモリに書き込み、読み出しでは、第1のエラー訂正符号に基づく復号が成功すれば復号されたデータを読み出し、失敗すれば第2のエラー訂正符号に基づく復号を行うことが有効である。
しかし、書き換え(消去)回数の増加により劣化したメモリセルの読み出しにおいて、常に第1の復号の失敗と第2の復号を繰り返すことになり、メモリコントローラは無駄に第1のエラー訂正符号の生成と復号を行うことになる。
そこで,本実施の形態の第1の側面の目的は,第1のエラー訂正符号と第2のエラー訂正符号とを最適化して書き込みと読み出しの効率を高めたメモリコントローラ装置、それを有するメモリ装置及びメモリコントロール方法を提供することにある。
本実施の形態の第1の側面は,半導体メモリへのアクセスを制御する制御部と、
書き込みデータに対して、第1の誤り訂正符号と、前記第1の誤り訂正符号よりエラー訂正率が高くエラー訂正を行う復号処理時間が長い第2の誤り訂正符号とを生成し、前記書き込みデータを前記半導体メモリに書き込む書き込み部と、
読み出し要求の読み出し先ブロックから、読み出しデータを読み出し、前記読み出しデータにエラーが生じた場合に前記第1の誤り訂正符号もしくは前記第2の誤り訂正符号により訂正されたデータを出力する読み出し部とを有し、
前記制御部は、前記第1の誤り訂正符号による誤り訂正が失敗した場合、前記読み出しデータを第2の誤り訂正符号により誤り訂正されたデータを、書き換え回数が第1の基準値より少ない他のブロックに移動する、メモリコントローラ装置である。
第1の側面によれば,書き込みと読み出しの効率を高めることができる。
本実施の形態におけるメモリ装置の構成例を示す図である。 フラッシュメモリの概略構成を示す図である。 フラッシュメモリの制御ユニットによる書き込みと消去の制御の概略を示すフローチャートを示す図である。 第1の実施の形態におけるメモリコントローラによるフラッシュメモリへの書き込みと読出し処理を示す図である。 本実施の形態におけるメモリコントローラの構成例を示す図である。 メモリコントローラによる書き込み処理と読出し処理のフローチャート図である。 メモリコントローラによる読出し処理後のデータ移動処理のフローチャート図である。 第2の実施の形態におけるメモリコントローラの書き込み及び読み出し処理を示す図である。 第2の実施の形態の変形例を示す図である。 第2の実施の形態の変形例におけるフラッシュメモリのメモリコントローラの書き込み及び読み出し処理の例を示す図である。 第2の実施の形態におけるメモリコントローラの構成例を示す図である。 フラッシュメモリに書き込まれるデータ例を示す図である。 第2の実施の形態(変形例を含む)におけるメモリコントローラによる書き込み処理を示すフローチャート図である。 第2の実施の形態(変形例を含む)におけるメモリコントローラによる読み出し処理を示すフローチャート図である。 ECC種別の識別子がBCHのECCの場合のメモリコントローラとホストコンピュータのキャッシュ制御プログラムとによる読み出し処理を示すフローチャート図である。 メモリコントローラがデータの特徴である書換回数(合計書換回数または書換頻度)が多いか少ないかに応じて書き込み先ブロックを書換回数が多いブロックか少ないブロックかを選択する処理を示す図である。 第3の実施の形態におけるデータの特徴とメモリコントローラの書き込み先ブロックとECCの関係を示す図である。 データの特徴とECC種と書き込み先ブロックの関係テーブルを示す図である。 第3の実施の形態におけるデータの特徴に対応する書き込み処理を示す図である。 第3の実施の形態におけるデータの特徴に対応する読出処理を示す図である。 第3の実施の形態におけるメモリコントローラの書き込み処理を示すフローチャート図である。
図1は、本実施の形態におけるメモリ装置の構成例を示す図である。メモリ装置10は、ホストHOSTと接続されるメモリコントローラ20と、メモリコントローラ20の制御によりデータが書き込みされ(プログラム)、データが読み出され、消去されるフラッシュメモリ30とを有する。
メモリコントローラ20は、制御ユニットCNT_Uと、書き込みユニットWR_Uと、読み出しユニットRD_Uと、消去ユニットER_Uとを有する。書き込みユニットWR_Uは、制御ユニットが発行する書き込み要求WR_REQのデータに対するエラー訂正コード(以下ECCと称する。)を生成するECC生成回路ECC_GENと、書き込み要求のデータとECCとをフラッシュメモリ30内の書き込み先アドレスに書き込みする書き込み回路24とを有する。
更に、読み出しユニットRD_Uは、制御ユニットが発行する読出し要求RD_REQのアドレスのデータをフラッシュメモリ30から読み出す読出し回路25と、読出しデータをECCで誤り訂正するECC復号回路ECC_DECを有する。そして、消去ユニットER_Uは、制御ユニットが発行する消去要求ER_REQに基づいてフラッシュメモリ内の所定のブロックを消去する。
制御ユニットCNT_Uは、ホストコンピュータHOSTが発行する書き込み要求に応答して、書き込みユニットに書き込み要求WR_REQを発行し、ホストコンピュータHOSTが発行する読み出し要求に応答して、読み出しユニットに読み出し要求RD_REQを発行する。
図2は、フラッシュメモリの概略構成を示す図である。フラッシュメモリ30は、複数のブロックBLK_0〜BLK_m-1、例えばM個のブロックを有する。各ブロックBLKは、複数のページPAGE_0〜PAGE_n-1、例えばN個のページを有する。各ページ内のフラッシュメモリは、例えば、NAND型フラッシュメモリであり、その回路構成は、例えば、特開2010−128697号公報に開示された回路と同じである。各メモリセルは、シングル・レベル・セルまたはマルチ・レベル・セルのいずれでもよい。
各ページ内には、例えば、Iバイトのデータが記憶され、IバイトのデータをJバイト単位で分割したJバイトのデータと、当該Jバイトのデータに対するKバイトのECCとが、ペアでそれぞれ記憶される。
図3は、フラッシュメモリの制御ユニットによる書き込みと消去の制御の概略を示すフローチャートを示す図である。制御ユニットCNT_Uは、ホストHOSTから書き込み要求が発行されると(S1のYES)、消去済みページに書き込みデータを書き込みする(S2)。書き込み要求が既に書き込み済みのデータに対する場合、制御ユニットCNT_Uは、データが書き込みされていたページを無効ページとし、消去済みページに書き込みデータを書き込みする。このような書き込み要求に対する書き込み処理は、1つのブロック内の無効ページ数が閾値に達するまで(S3のNO)、繰り返される。
制御ユニットは、1つのブロック内の無効ページ数が閾値に達すると、有効ページを他のブロックに移動する(S4)。この処理で、無効ページが含まれるブロック内の有効ページが、他のブロックに移動される。これにより、ブロックは無効ページを含み有効ページは含まれない。そして、制御ユニットは、有効ページが移動した元のブロックの全ページを消去する(S5)。
上記の通り、フラッシュメモリでは、書き込み要求に対するデータは常に消去済みページ内に書き込みされ、書き込み要求が書き込み済みデータを書き換える場合、書き込み済みページではなく消去済みページ内に書き込まれ、元の書き込み済みページは無効ページとされ、読出し要求に対しては書き込み済みの有効ページからデータを読出し、有効ページが移動した元のブロック内の無効ページは、1つのブロック単位で同時に消去される。したがって、1つのページについて述べると、消去回数が書き換え回数に該当する。
フラッシュメモリの制御ユニットは、上記のとおり、複数のブロックの消去を実行するので、各ブロックの書き換え回数(消去回数)を記録し更新する。また、制御ユニットは、各ブロック内の複数のページが、消去済み未書き込み状態か、有効な書き込み状態か、無効ページかについても記録し更新する。
[フラッシュメモリのエラー特性とエラー訂正符号]
フラッシュメモリは、書き込みデータに基づいてメモリセルに電子を所定量注入し書き込みデータを記憶する。例えば、マルチ・レベル・セルでは、書き込みデータの値に基づいてメモリセルに注入する電子量が変更される。そのため、フラッシュメモリから読み出したデータにはエラーが発生する場合がある。
一方、フラッシュメモリは、書き込みでは消去済みページ内のメモリセルに電子を注入する書き込み処理を行うため、書き換えを行う毎に無効のページが発生する。そして、フラッシュメモリは、複数の無効のページを有するブロックを同時に消去する。消去処理では、メモリセルに注入した電子を引き抜く処理が行われる。したがって、書き換えが行われたページは、無効ページとなり、その後消去されることになり、書き換え回数は消去回数と同じになる。
そして、書き換え回数(消去回数)が増大すると、メモリセルの劣化が進み、記憶されたデータにエラーが発生する確率が増大する。
そのため、フラッシュメモリは、書き込み要求(書き換え要求を含む)に対して、データに対するエラー訂正符号を生成するエラー訂正符号の符号化を行い、データとエラー訂正符号(ECC)をメモリセルに書き込みする。更に、書き換え回数(消去回数)の増大に応じて、エラー発生率が増大するので、書き込み要求に対して、第1のECCの符号化と、エラー訂正率が第1のECCより高く復号時間が第1のECCより長い第2のECCの符号化を行い、データと第1のECC及び第2のECCをメモリセルに書き込みする。そして、フラッシュメモリは、読出し要求に対して、フラッシュメモリからデータと第1のECC及び第2のECCを読出し、第1のECCで復号してエラー訂正に成功すれば第1のECCでエラー訂正したデータを出力し、失敗すれば、第2のECCで復号してエラー訂正したデータを出力する。
このように、エラー訂正率が異なる2つのECCを併用することで、書き換え回数が増大しメモリセルの劣化が進む過程で、エラー発生数が少ない(エラー発生率が低い)間は第1のECCで復号できるので復号時間を短くでき、エラー発生数が多くなると第2のECCで復号できるので読出しデータのエラー訂正を行うことができる。
しかし、書き換え回数が増大してメモリセルの劣化が進み、読出し時に毎回、第1のECCで復号を失敗し、第2のECCで復号を繰り返すことになる。そのため、第1のECCと第2のECCの両方で符号化し復号することは、無駄な処理を生じ、アクセス処理の効率低下を招く。
[第1の実施の形態]
第1の実施の形態におけるメモリコントローラについて説明する。本実施の形態では、第1のECCの一例としてBCHタイプのECCを、第2のECCの一例としてLDPCタイプのECCを採用する。BCHタイプのECCは、復号処理時間が比較的短いが、エラー訂正率(所定ビット長のデータに対するエラー訂正ビット数)は比較的低い。逆に、LDPCタイプのECCは、エラー訂正率はBCHタイプのECCより高いが、復号処理時間はBCHタイプのECCより長い。
図4は、第1の実施の形態におけるメモリコントローラによるフラッシュメモリへの書き込みと読出し処理を示す図である。まず、書き込みWRについて説明する。メモリコントローラは、図1に示したホストが発行した書き込み要求を入力すると、制御ユニットCNT_Uが、書き込みユニットWR_Uに書き込み要求を発行する。書き込みユニットWR_Uは、書き込み要求に付加された元データ(書き込みデータ)のBCHのECCとLDPCのECCを生成し(ECC符号化)、元データに両ECCを付加した符号化データをフラッシュメモリの第1のブロックBlock_1に書き込みする。
次に、読出しRDについて説明する。メモリコントローラは、ホストが発行した読出要求を入力すると、制御ユニットCNT_Uが、読出ユニットRD_Uに読出要求を発行する。読出しユニットは、フラッシュメモリの第1のブロックBlock_1からデータとBCHのECCとLDPCのECCを読出し(Read)、まず、BCHのECCに基づいて読出しデータをエラー訂正する(BCH復号)。読出しデータをECCに基づいてエラー訂正することは、読出しデータの復号処理である。
フラッシュメモリのエラーレートが低ければ、BCHのECCに基づく復号処理でエラー訂正に成功する。しかし、エラーレートが高ければ、BCHのECCに基づく復号が失敗に終わる。そこで、読出しユニットRD_Uは、LDPCのECCに基づいて読出しデータをエラー訂正する(LDPC復号)。そして、エラー訂正された元データを出力する。LDPCのECCに基づくエラー訂正処理でエラー訂正できないと、その読出しはエラーとなる。LDPCによるエラー訂正が失敗した場合の処理は、本実施の形態の主題ではないので、その処理の説明は省略する。
最後に、制御ユニットCNT_Uは、読出しRDで、BCHのECCによるエラー訂正が失敗した場合、出力された元データを、読出し先のブロックBlock_1よりも書き換え回数が少ない他のブロック、第2のブロックBlock_2、に移動する移動要求を、書き込みユニットWR_Uに発行する。この要求に応答して、書き込みユニットは、上記の書き込み処理WRと同様に、出力された元データのBCHのECCとLDPCのECCを生成し(ECC符号化)、元データに両ECCを付加した符号化データをフラッシュメモリの第2のブロックBlock_2に書き込みする。
BCHのECCによるエラー訂正が失敗したことは、書き換え回数の増大によりメモリセルの劣化が進んでいることを意味する。従って、読み出し時と同じ第1のブロックBlock_1内にデータを記憶しておくと、次の読出し時にBCHのECCによるエラー訂正に失敗しLDPCによるエラー訂正を行う可能性が高い。そこで、BCHのECCによるエラー訂正が失敗した場合、その元データを、第1のブロックBlock_1より書き換え回数(消去回数)が少ない他のブロック、第2のブロックBlock_2に移動することで、次回の読出しでは、BCHのECCによるエラー訂正に成功する可能性が高くなる。第2のブロックBlock_2は、基準値未満の消去回数の他のブロックでもよい。
ここで、元データを第2のブロックBlock_2に移動する処理は、書き込みユニットが、元データを符号化してBCHのECCとLDPCのECCを付加したデータを生成し、フラッシュメモリの第2のブロックに書き込みする処理である。この結果、第1のブロック内の元データが書き込まれていたページは無効なページとなる。
上記の通り、読出し時、BCHのECCでエラー訂正できるエラーレートであれば、BCHのECCによる復号の処理時間でデータを応答することができる。一方、BCHのECCでエラー訂正できないエラーレートの場合は、LDPCのECCでエラー訂正してデータ応答することができる。そして、次回の読出し時、前回の読出し時にBCHのECCでエラー訂正失敗していれば、読み出しデータは書き換え回数が少ない別のブロックBlock_2に移動しているので、BCHのECCでエラー訂正できる可能性が高まる。
図5は、本実施の形態におけるメモリコントローラの構成例を示す図である。図5のメモリコントローラ20は、フラッシュメモリ30に対するアクセスを制御する。メモリコントローラ20内の制御ユニットCNT_Uは、論理/物理アドレス変換回路21と、書き込み・読出要求生成回路22と、データ移動要求生成回路23とを有する。
ホストが発行する書き込み入力は、書き込み先アドレスと書き込みデータを有する。また、ホストが発行する読出入力は、読出先アドレスを有する。ホストは、書き込み先アドレスと読出先アドレスを、ホストの論理アドレスで指定する。そこで、論理/物理アドレス変換回路21は、ホストが発行した書き込み入力や読出入力の論理アドレスを、フラッシュメモリ30の物理アドレスに変換する。そのために、論理/物理アドレス変換回路21は、論理アドレスと物理アドレスの変換テーブルを保持する。
書込・読出要求生成回路22は、ホストが発生した書込入力を受け付けると、論理/物理アドレス変換回路21に書込入力の論理アドレスをフラッシュメモリの物理アドレスに変換させ、物理アドレスと書込データを含む書込要求WR_REQを書込ユニットWR_Uに発行する。
書込ユニットWR_Uは、ECC生成回路として、BCHのECCを生成するBCH_ECC生成回路ECC_GEN_1と、LDPCのECCを生成するLDPC_ECC生成回路ECC_GEN_2とを有する。更に、書込ユニットWR_U内の書込回路24は、書込要求WR_REQに含まれるデータDATAに、BCHのECC(BCH_ECC)とLDPCのECC(LDPC_ECC)とを付加した符号化データを、書込要求WR_REQの物理アドレスに対応するフラッシュメモリ内のあるブロックのあるページに書き込みする。図4で示したとおり、ブロックBlock_1内に符号化データを書き込みするものとする。
次に、書込・読出要求生成回路22は、ホストが発生した読出入力を受け付けると、論理/物理アドレス変換回路21に読出入力の論理アドレスをフラッシュメモリの物理アドレスに変換させ、物理アドレスを含む読出要求RD_REQを読出ユニットRD_Uに発行する。
読出ユニットRD_Uは、読出回路25を有する。読出回路25は、読出要求RD_REQの物理アドレスに対応するフラッシュメモリ内のブロックBlock_1のページから、データDATAとBCHのECC(BCH_ECC)とLDPCのECC(LDPC_ECC)を読み出す。
その後、読出ユニット内のBCH_ECC復号回路ECC_DEC_1は、BCHのECC(BCH_ECC)に基づいてデータDATAのエラー訂正を行う。そして、BCHのECCによるエラー訂正が成功すれば、エラー訂正したデータを出力回路26に出力する。また、BCH_ECC復号回路は、エラー訂正の結果、復号結果、を出力回路26に出力する。復号結果は、読出ユニット内のLDPC_ECC復号回路ECC_DEC_2に出力してもよい。
一方、読出しユニット内のLDPC_ECC復号回路ECC_DEC_2は、LDPCのECC(LDPC_ECC)に基づいてデータDATAのエラー訂正を行う。エラー訂正結果(復号結果)が失敗の場合、エラー訂正したデータを出力回路26に出力する。
出力回路26は、エラー訂正結果(復号結果)と、エラー訂正したデータを受信し、復号結果をデータ移動要求生成回路23に出力し、エラー訂正したデータを読み出し出力としてホストに出力する。出力回路は、上記のエラー訂正したデータとして、エラー訂正結果(復号結果)が成功の場合はBCHのECCでエラー訂正したデータを出力し、エラー訂正結果(復号結果)が失敗の場合はLDPCの場合はECCでエラー訂正したデータを出力する。
データ移動要求生成回路23は、BCHのECCによるエラー訂正が失敗した場合、復号したデータを、フラッシュメモリ内のブロックBlock_1より消去回数が少ない他のブロックBlock_2に移動するデータ移動要求M_WR_REQを発行する。または、移動要求生成回路23は、BCHのECCによるエラー訂正が失敗した場合、復号したデータを、フラッシュメモリ内の消去回数が所定の基準値より少ない他のブロックBlock_2に移動するデータ移動要求M_WR_REQを発行する。
このデータ移動要求に応答して、書込・読出し要求発行回路22は、他のブロックBlock_2を決定し、そのブロック内のページに対応する物理アドレスを決定し、決定した物理アドレスに復号されたデータを書き込む書込要求WR_REQを書込ユニットWR_Uに発行する。これと共に、論理/物理アドレス変換回路21は、内部に保持する論理/物理アドレス変換テーブルの読出先論理アドレスに対応する物理アドレスを、データの移動先の他のブロックBlock_2の物理アドレスに更新する。これにより、次回、同じ論理アドレスに対する読出または書込が発生した場合、データ移動先の他のブロックの物理アドレスに変換される。
そして、書込ユニットWR_Uは、データ移動要求に応じて生成された書込要求WR_REQに対応する処理を実行し、復号したデータをフラッシュメモリ内の他のブロックBlock_2内に書き込みする。また、制御ユニットは、フラッシュメモリ内の元のブロックBlock_1内のページを無効化する。データ移動要求に応じて生成された書込要求WR_REQは、元のブロック内のページを無効化する処理を伴うので、書き換え要求の一種である。
図5において、図1で示したメモリコントローラ内の消去ユニットER_Uは省略されている。
図6は、メモリコントローラによる書込処理と読出し処理のフローチャート図である。図4,5で説明したとおり、書込処理では、メモリコントローラは、第1のECCとしてBCHのECCを生成し、第2のECCとしてLDPCのECCを生成する(S10)。そして、メモリコントローラは、書込データとBCH_ECCとLDPC_ECCとをフラッシュメモリ内の書込先ブロックに書き込む(S11)。
一方、読出し処理では、メモリコントローラは、フラッシュメモリからデータとBCH_ECCを読出し、BCH_ECCに基づいてデータのエラー訂正(復号)を行う(S20)。この復号が成功していれば(S21のYES)、メモリコントローラは、復号データを出力する(S22)。一方、復号が失敗の場合(S21のNO)、メモリコントローラは、フラッシュメモリからLDPC_ECCを読出し、LDPC_ECCに基づいてデータのエラー訂正(復号)を行う(S23)。LDPC_ECCの読出しは、工程S20でデータとBCH_ECCと共に一緒に行い、BCH_ECCに基づくエラー訂正と並行してLDPC_ECCに基づくエラー訂正を実行するのが好ましい。それにより、LDPC_ECCに基づくエラー訂正処理が完了する時間を早めることができる。その後、この復号データを出力する(S22)。
図7は、メモリコントローラによる読出し処理後のデータ移動処理のフローチャート図である。図4,図5で説明したとおり、データ移動処理では、メモリコントローラは、BCH_ECCに基づく復号が失敗した場合(S30のNO)、フラッシュメモリの複数のブロックのうち消去回数が少ないブロックを選択し(S31)、選択したブロックに誤り訂正された元のデータを書き込む(S32)。さらに、メモリコントローラは、データを記憶するブロックを変更したことに伴い、論理・物理アドレス変換テーブル内の物理アドレスをデータの移動先ブロックの物理アドレスに更新する(S33)。これにより、次回、同じ論理アドレスに対する読出を要求する入力があった場合、移動先ブロックの物理アドレスに変換して、読出制御を行う。
[第2の実施の形態]
第2の実施の形態では、メモリコントローラは、書込対象のデータの特徴に応じて、BCHのECCとLDPCのECCを生成し、両ECCとデータを共にフラッシュメモリに書き込みする第1の書込処理をするか、LDPCのECCを生成し、BCHのECCは生成せず、LDPCのECCをデータと共にフラッシュメモリに書き込みする第2の書込処理を行う。これにより、無駄な符号化、無駄な復号処理をなくし、書込速度を高め、書き込みと読み出しの消費電力を削減する。
図8は、第2の実施の形態におけるメモリコントローラの書き込み及び読み出し処理を示す図である。書込処理WRで、メモリコントローラは、データの特徴、例えば、読出し頻度が基準値以上の場合、ECC符号化でBCHのECCとLDPCのECCを生成し、両ECCとデータを共にフラッシュメモリに書き込みする第1の書込処理WR_1を実行する。また、メモリコントローラは、データの読出し頻度が基準値より少ない場合、ECC符号化でLDPCのECCを生成し、BCHのECCは生成せず、LDPCのECCをデータと共にフラッシュメモリに書き込みする第2の書込処理WR_2を実行する。
第1の書込処理を行うか第2の書込処理を行うかは、例えば、アプリケーションプログラムがECC種別情報で指定する。従って、アプリケーションプログラムを実行するホストが発行する書込要求のデータに、このECC種別情報が付加される。メモリコントローラは、そのECC種別情報に基づいて、第1の書込処理または第2の書込処理を行う。
一方、読出処理RDで、メモリコントローラは、読出頻度が基準値以上のデータを読み出す場合、フラッシュメモリからデータとBCHのECC及びLDPCのECCを読み出し、BCHのECCに基づく復号(エラー訂正)を行い、BCHのECCによる復号失敗の場合はLDPCのECCに基づく復号を行い、復号(エラー訂正)した元データを出力する第1の読み出し処理を行う(RD_1)。
また、メモリコントローラは、読み出し頻度が基準値未満のデータを読み出す場合、フラッシュメモリからデータとLDPCのECCを読み出し、LDPCのECCに基づく復号を行い、復号(エラー訂正)した元データを出力する第2の読み出し処理を行う(RD_2)。
第1の読出処理を行うか第2の読出処理を行うかは、書込と同様に、メモリコントローラは、読出データに付加されるECC種別情報を読み出し、第1の読出処理または第2の読出処理のいずれかを実行する。
これにより、読出頻度が低いデータは読出処理の遅延の影響が小さいので、LDPCのECCに基づく誤り訂正(復号)の処理遅延を許容し、その代わりに、メモリコントローラは、書込処理でのBCHのECC生成処理を省略し、読出処理でのBCHのECCに基づく誤り訂正(復号)を省略する。これによりBCHのECCのための処理がなくなり、メモリコントローラの消費電力を削減できる。逆に、読出頻度が高いデータは読出処理の遅延の影響が大きいので、BCHのECCによる復号成功の可能性を生かして、読出処理の遅延量の期待値を短くする。
[第2の実施の形態の変形例]
第2の実施の形態では、更に変形例として、書込対象のデータの別の特徴、例えば、データのバックアップメモリを有するようなデータの場合、メモリコントローラは、書込処理でBCHのECCを生成し、読出処理でBCHのECCに基づいてエラー訂正(復号)を行う。LDPCのECCの生成と復号は行わない。そして、BCHのECCに基づくエラー訂正が失敗した場合、バックアップメモリからそのデータを読み出す。
図9は、第2の実施の形態の変形例を示す図である。ホストコンピュータのプロセッサHOSTは、磁気ディスクなどのHDD(Hard Disk Drive)に全データを記憶し、HDD内のデータの一分のデータをフラッシュメモリで構成されるSSD(Solid State Drive)に記憶する。そして、ホストコンピュータのプロセッサが、キャッシュ制御プログラムを実行して、データを読出または書き込むメモリアクセスでは、まずSSDにアクセスし、SSD内に記憶されていればそのデータを読み出し(または書き込み)、SSD内に記憶されていなければHDDからデータを読み出し、読み出したデータをSSDに記録(更に書き込み)する。キャッシュ制御プログラムには、それぞれSSDのドライバプログラムとHDDのドライバプログラムとを有する。
図9のSSDとHDDは、共通の筐体内に格納されたストレージ装置であってもよい。そのようなストレージ装置は、上記のキャッシュ制御プログラムを実行する制御プロセッサを内蔵し、上記と同じ読出処理及び書込処理を行う。
図10は、第2の実施の形態の変形例におけるフラッシュメモリのメモリコントローラの書込及び読み出し処理の例を示す図である。図10には、フラッシュメモリのメモリコントローラの書込処理WR_3と読出処理RD_3が示される。書込処理WR_4と読出処理RD_4は、HDDの制御装置に処理である。
まず、書込処理WRでは、メモリコントローラは、データの特徴が、データが図9のHDDなどのバックアップメモリに記憶される特徴の場合、ECC符号化でデータのBCHのECCを生成し、データとBCHのECCとをSSD内のフラッシュメモリに書き込みする第3の書込処理WR_3を実行する。それに加えて、ポストプロセッサはキャッシュ制御プログラムを実行し、データを、HDDなどのバックアップメモリにも書き込む(WR_4)。この場合、LDPCのECCの生成と復号は行わない。
データがバックアップメモリに記憶されない特徴の場合、メモリコントローラは、図8の第1の書込処理WR_1または第2の書込処理WR_2を実行する。
次に、読み出し処理RDでは、メモリコントローラは、SSD内のフラッシュメモリからデータとBCHのECCとを読み出し、BCHのECCでエラー訂正(復号)し、エラー訂正成功すれば復号したデータを出力する第3の読み出し処理RD_3を実行する。ホストコンピュータのプロセッサは、メモリコントローラがBCHのECCに基づくエラー訂正に失敗した場合、ポストプロセッサはキャッシュ制御プログラムを実行し、HDDからデータを読み出す(RD_4)。
データがバックアップメモリに記憶されない特徴の場合、メモリコントローラは、図8の第1の読み出し処理RD_1または第2の読み出し処理RD_2を実行する。
データがバックアップメモリに記憶される特徴か否かの情報は、例えば、アプリケーションプログラムがECC種別情報で指定する。従って、アプリケーションプログラムを実行するホストが発行する書込要求のデータに、このECC種別情報が付加される。メモリコントローラは、そのECC種別情報に基づいて、第3の書込処理WR_3を行うか、もしくは、第1の書込処理または第2の書込処理を行う。読み出し処理も、フラッシュメモリから読み出したデータに付加されたECC種別情報に基づいて、第3の読み出し処理RD_3を行うか、もしくは、第1の読み出し処理または第2の読み出し処理を行う。
図11は、第2の実施の形態におけるメモリコントローラの構成例を示す図である。図11のメモリコントローラは、図5のメモリコントローラと異なり、書込ユニットWR_UがECC種別選択回路27を有し、更に、読み出しユニットRD_UがECC種別選択回路28を有する。それ以外の構成は図5と同様である。
図11のメモリコントローラでは、書込ユニットのECC種別選択回路27が、書込要求WR_REQに含まれるデータに付加されたECC種別情報に基づいて、BCHのECCだけを生成するか、LDPCのECCだけを生成するか、BCHのECCとLDPCのECCの両方を生成するかを判定する。同様に、読み出しユニットのECC種別選択回路28が、フラッシュメモリから読み出したデータに付加されたECC種別情報に基づいて、BCHのECCに基づく復号だけを行うか、LDPCのECCに基づく復号だけを行うか、BCHのECCに基づく復号とそれが失敗した場合のLDPCのECCに基づく復号を行うかを判定する。ECC種別情報は、フラッシュメモリに記憶せず、制御ユニットが記憶しても良い。
図12は、フラッシュメモリに書き込まれるデータ例を示す図である。前述したとおり、ポストプロセッサからの書込要求には書込データにECC種別情報が付加される。そして、メモリコントローラの制御ユニットCNT_Uは、ECC種別情報を付加したデータと書込先アドレスを有する書込要求WR_REQを、書込ユニットWR_Uに発行する。書込ユニット内のECC種別選択回路27は、書込要求WR_REQのデータに付加されたECC種別を示す識別子ECC_IDに基づいて、BCHのECCだけを生成するか、LDPCのECCだけを生成するか、BCHのECCとLDPCのECCの両方を生成するかを判定する。このECC種別の識別子はデータに付加されてフラッシュメモリに書き込みされる。
ECC種別の識別子ECC_ID1は、「10」であり、BCHのECCを生成し、LDPCのECCは生成しないことを示す。ECC種別の識別子ECC_ID2は、「01」であり、BCHのECCを生成せず、LDPCのECCを生成することを示す。そして、ECC種別の識別子ECC_ID3は、「11」であり、BCHのECCとLDPCのECCの両方を生成することを示す。
上記のECC種別の識別子ECC_IDは、データに付加されてフラッシュメモリに書き込まれる。したがって、読み出し処理では、読み出しユニットRD_UのECC種別選択回路28が、読み出したデータに付加されたECC種別の識別子ECC_IDに基づいて、BCHのECCに基づく復号だけを行うか、LDPCのECCに基づく復号だけを行うか、BCHのECCに基づく復号とそれが失敗した場合のLDPCのECCに基づく復号を行うかを判定する。
読み出したデータに付加されているECCに基づいて、どのエラー訂正(復号)を実行すべきか判定することができる場合、ECC種別の識別子ECC_IDは、必ずしもフラッシュメモリに書き込まれる必要はない。その場合、読み出しユニットのECC種別選択回路28は、読み出したデータに付加されたECCの種別を判定して、3種類のいずれのエラー訂正(復号)を実行すべきか選択する。または、前述のとおり、制御ユニットがECC種別情報を記憶する場合、そのECC種別情報を参照して判定してもよい。
図13は、第2の実施の形態(変形例を含む)におけるメモリコントローラによる書込処理を示すフローチャート図である。前述したとおり、メモリコントローラは、ホストから書込要求を入力すると、書込データに付加されたECC種別の識別子ECC_IDに基づいて、BCHのECCとLDPCのECCのうちBCHのECCか(S40)、BCHのECCとLDPCのECCのうちLDPCのECCか(S43)、BCHのECCとLDPCのECCの両方か(S40,S43)の判定を行う。
メモリコントローラは、ECC種別の識別子がBCHのECCの場合(S40のYES)、BCHのECCを生成し(S41)、データとBCHのECCをフラッシュメモリに書き込む(S42)。この書込処理は、図10の書込処理WR_3に対応する。
メモリコントローラは、ECC種別の識別子がLDPCのECCの場合(S43のYES)、LDPCのECCを生成し(S44)、データとLDPCのECCをフラッシュメモリに書き込む(S45)。この書込処理は、図8の書込処理WR_2に対応する。
さらに、メモリコントローラは、ECC種別の識別子がBCHのECCとLDPCのECCの両方の場合(S40のNO,S43のNO)、BCHのECCとLDPCのECCの両方を生成し(S46)、データとBCHのECCとLDPCのECCの両方をフラッシュメモリに書き込む(S47)。この書込処理は、図8の書込処理WR_1に対応する。
図14は、第2の実施の形態(変形例を含む)におけるメモリコントローラによる読み出し処理を示すフローチャート図である。前述したとおり、メモリコントローラは、ホストから読み出し要求を入力すると、フラッシュメモリから読み出し先アドレスのデータとそれに付加されたECCを読み出す(S50)。そして、メモリコントローラは、読み出したデータに付加されたECC種別の識別子ECC_IDに基づいて、BCHのECCとLDPCのECCのうちBCHのECCでエラー訂正するか(S52)、BCHのECCとLDPCのECCのうちLDPCのECCでエラー訂正するか(S56)、BCHのECCとLDPCのECCの両方でエラー訂正するか(S57,S59)の判定を行う(S51,S55)。
メモリコントローラは、ECC種別の識別子がBCHのECCの場合(S51のYES)、読み出しデータをBCHのECCで復号し(S52)、復号が成功すれば(S53のYES)、復号データを出力する(S60)。この読み出し処理は、図10の読み出し処理RD_3に対応する。復号が失敗の場合(S53のNO)、メモリコントローラは、ホストに読み出し失敗通知と共にHDDへの読み出し要求を発行する(S54)。
メモリコントローラは、ECC種別の識別子がLDPCのECCの場合(S55のYES)、読み出しデータをLDPCのECCで復号し(S56)、復号データを出力する(S60)。この読み出し処理は、図8の読み出し処理RD_2に対応する。
メモリコントローラは、ECC種別の識別子がBCHのECCとLDPCのECCの場合(S51のNO、S55のNO)、まず、読み出しデータをBCHのECCで復号する(S57)。メモリコントローラは、この復号が成功すれば(S58のYES)、復号データを出力する(S60)。一方、復号が失敗すれば(S58のNO)、読み出しデータをLDPCのECCで復号し(S59)、復号データを出力する(S60)。この読み出し処理は、図8の読み出し処理RD_1に対応する。
図15は、ECC種別の識別子がBCHのECCの場合のメモリコントローラとホストコンピュータのキャッシュ制御プログラムとによる読み出し処理を示すフローチャート図である。メモリコントローラは、SSD内のキャッシュデータを読み出し、BCHのECCで復号する(S70)。この復号が失敗の場合(S71のYES)、メモリコントローラはホストにHDDへの読み出し処理を要求し、それに応答してホストがHDDからデータを読み出す(S73)。HDDから読み出したデータに対するエラー訂正処理は必要に応じて行っても良い。SSDでの復号が成功の場合(S71のNO)、メモリコントローラは、BCHのECCでエラー訂正したデータを出力する(S72)。
[第3の実施の形態]
第3の実施の形態では、メモリコントローラは、データの特徴である読出回数(読出頻度)が多いか少ないかに応じて、BCHとLDPCのECCかLDPCのECCだけかを選択する。さらに、メモリコントローラは、データの特徴である書換回数(合計書換回数または書換頻度)が多いか少ないかに応じて、書込先ブロックに書換回数が多いブロックか少ないブロックかのいずれかを選択する。
上記の、メモリコントローラが、データの特徴である読出回数(読出頻度)が多いか少ないかに応じて、BCHとLDPCのECCかLDPCのECCだけかを選択することは、既に第2の実施の形態(図8)で説明したとおりである。そこで、上記の、メモリコントローラが、データの特徴である書換回数(合計書換回数または書換頻度)が多いか少ないかに応じて、書込先ブロックを書換回数が多いブロックか少ないブロックかを選択する処理について以下説明する。
図16は、メモリコントローラがデータの特徴である書換回数(合計書換回数または書換頻度)が多いか少ないかに応じて書込先ブロックを書換回数が多いブロックか少ないブロックかを選択する処理を示す図である。まず、メモリコントローラは、フラッシュメモリ内の複数のブロックを第1のブロックBlock_1と第2のブロックBlock_2とに分けて管理する。そして、メモリコントローラは、データの特徴に基づいて、第1のブロックまたは第2のブロックのいずれかにデータを書き込む。
すなわち、書込処理WRでは、メモリコントローラは、データの特徴上、書き換え回数(または書換頻度)が基準値以上のデータを第1のブロックBlock_1に書き込む書込処理WR_aと、書き換え回数(または書換頻度)が基準値より少ないデータを第2のブロックBlock_2に書き込む書込処理WR_bとを行う。メモリコントローラは、これらの書込処理WR_a,WR_bでは、いずれも、元データをECC符号化してBCHのECCとLDPCのECCとを生成し、元データとBCHのECC及びLDPCのECCを、第1、第2のブロックBlock_1,Block_2にそれぞれ書き込みする。
ここで、書き換え回数とは、例えば、単位時間当たりの書き換え回数である書き換え頻度である。または、書き換え回数とは、例えば、最初にデータが生成されてから現在までのトータルの書き換え回数である。
一方、読出し処理RDでは、メモリコントローラは、第1のブロックBlock_1の読出要求に応答して、第1のブロックBlock_1から元データとBCHのECC及びLDPCのECCを読み出し、BCHのECCに基づく復号(エラー訂正)を行い、BCHのECCによる復号失敗の場合はLDPCのECCに基づく復号を行い、復号(エラー訂正)した元データを出力する(RD_a)。
また、メモリコントローラは、第2のブロックBlock_2の読出要求に応答して、第2のブロックから元データとBCHのECC及びLDPCのECCを読み出し、BCHのECCに基づく復号(エラー訂正)を行い、復号(エラー訂正)した元データを出力する(RD_b)。第2のブロックは消去回数が抑制されるので、消去回数増大によるメモリセルの劣化が抑制され、BCHのECCによる復号(エラー訂正)で成功する確率が高くなる。読出処理RD_bの場合でも、BCHのECCによる復号失敗の場合は、LDPCのECCに基づく復号を行い、復号(エラー訂正)した元データを出力する。但し、BCHのECCによる復号失敗の確率は低い。
このように書込処理を行うことで、データの特徴上、書き換え回数が基準値より少ないデータを第2のブロックに集約して記憶することで、第2のブロックの消去回数を少なくすることができる。その結果、第2のブロックは、消去回数が増大することによるメモリセルの劣化が抑制され、エラーレートを抑制することができる。エラーレートが抑制されれば、読出において、BCHのECCに基づくエラー訂正(復号)が成功する可能性を高くすることができ、エラー訂正(復号)処理の時間を短縮できる。
第3の実施の形態では、メモリコントローラは、図8に示した書込処理WR_1,WR_2及び読出処理RD_1,RD_2と、図16に示した書込処理WR_a,WR_b及び読出処理RD_a,RD_bを組み合わせた処理を行う。
図17は、第3の実施の形態におけるデータの特徴とメモリコントローラの書込先ブロックとECCの関係を示す図である。図中、4つの楕円はデータの特徴を示し、それぞれ、読出が多い、少ない、書換が多い、少ないである。それに対して、4つの矩形はデータの特徴に起因する現象等である。例えば、読出が多いデータは、読出頻度が高いため、読出での復号処理時間によるディスターブの影響が大きいが、読出が少ないデータは、読出頻度が低いため、読出での復号処理時間によるディスターブの影響は小さい。一方、書換が多いデータは、書換時の消去によるセルの劣化度が大きく、書換が少ないデータは、書換時の消去によるセルの劣化度は低い。
図18は、データの特徴とECC種と書込先ブロックの関係テーブルを示す図である。図17と図18を参照して説明する。
まず、(1)データの特徴が、読み出しが多く書き換えが多い特徴1の場合、ECCはBCHとLDPCの両方で、書込先ブロックは書換が多いデータ用の第1のブロックBlock_1が好ましい。この場合、メモリコントローラは、後述する書込処理WR_1a、読出処理RD_1aを実行する。
(2)データの特徴が、読み出しが多く書換が少ない特徴2の場合、ECCはBCHとLDPCの両方で、書込先ブロックは書換が少ないデータ用の第2のブロックBlock_2が好ましい。この場合、書換が少ないブロックなので、BCHのECCで復号成功になる可能性が高くなる。メモリコントローラは、後述する書込処理WR_1b、読出処理RD_1bを実行する。
(3)データの特徴が、読み出しが少なく書き換えが少ない特徴3の場合、ECCはLDPCだけで、書込先ブロックは第2のブロックBlock_2が好ましい。メモリコントローラは、後述する書込処理WR_2a、読出処理RD_2aを実行する。
(4)データの特徴が、読み出しが少なく書き換えが多い特徴4の場合、ECCはLDPCだけで、書込先ブロックは第1のブロックBlock_1が好ましい。この場合、書換が多いのでセルの劣化が進むので、BCHのECCによる復号は失敗の蓋然性が高く、LDPCのECCだけを利用することが好ましい。メモリコントローラは、後述する書込処理WR_2b、読出処理RD_2bを実行する。
図19は、第3の実施の形態におけるデータの特徴に対応する書込処理を示す図である。また、図20は、第3の実施の形態におけるデータの特徴に対応する読出処理を示す図である。
まず、(1)データの特徴が、読み出しが多く書き換えが多い特徴1の場合、メモリコントローラは、書込処理WR_1a、読出処理RD_1aを実行する。書込処理WR_1aでは、メモリコントローラは、BCHとLDPCの両方のECCを生成し、データと両ECCを第1のブロックBlock_1に書き込みする。読出処理RD_1aでは、メモリコントローラは、第1のブロックBlock_1からデータとBCH及びLDPCのECCを読出し、BCHのECCで復号し、復号失敗すればLDPCのECCで復号する。
(2)データの特徴が、読み出しが多く書き換えが少ない特徴2の場合、メモリコントローラは、書込処理WR_1b、読出処理RD_1bを実行する。書込処理WR_1bでは、メモリコントローラは、BCHとLDPCの両方のECCを生成し、データと両ECCを第2のブロックBlock_2に書き込みする。読出処理RD_1bでは、メモリコントローラは、第2のブロックBlock_2からデータとBCH及びLDPCのECCを読出し、BCHのECCで復号し、復号失敗すればLDPCのECCで復号する。書き換えが少ない第2のブロックではメモリセルの劣化が少なく、BCHのECCによる復号を成功する確率が高く、読出レイテンシが短くなることが期待できる。
(3)データの特徴が、読み出しが少なく書き換えが多い特徴3の場合、メモリコントローラは、書込処理WR_2a、読出処理RD_2aを実行する。書込処理WR_2aでは、メモリコントローラは、LDPCのECCを生成し、データとLDPCのECCを第1のブロックBlock_1に書き込みする。読出処理RD_2aでは、メモリコントローラは、第1のブロックBlock_1からデータとLDPCのECCを読出し、LDPCのECCで復号する。書き換えが多い第2のブロックであるので、BCHのECCによる復号で失敗する可能性が比較的高く、LDPCのECCのみ生成し復号するので、BCHのECCの生成と復号を削減できる。
(4)データの特徴が、読み出しが少なく書き換えが少ない特徴4の場合、メモリコントローラは、書込処理WR_2b、読出処理RD_2bを実行する。書込処理WR_2bでは、メモリコントローラは、LDPCのECCを生成し、データとLDPCのECCを第2のブロックBlock_2に書き込みする。読出処理RD_2bでは、メモリコントローラは、第2のブロックBlock_2からデータとLDPCのECCを読出し、LDPCのECCで復号する。
図21は、第3の実施の形態におけるメモリコントローラの書込処理を示すフローチャート図である。ホストからの書込要求には、データの特徴を示す特徴識別子が含まれる。この特徴識別子は、ホストが実行するアプリケーションプログラムによって生成、書込要求として出力される。
ホストからの書込要求を受信すると、メモリコントローラは、図18のデータ特徴テーブルを参照し、書込先ブロックとECC種とを決定する(S80)。そして、メモリコントローラは、決定した書込先ブロック内の書込アドレスを決定する(S81)。この決定は、メモリコントローラ内の制御ユニットCNT_Uにより行われる。さらに、制御ユニットは、決定したECC種に対応するECC種別識別子ECC_IDをデータに付加し、ECC_ID付きデータと決定した書込アドレスを有する書込要求を、書込ユニットWR_Uに発行する。これにより、書込ユニットは、決定したECC種のECCを生成し、データと共にフラッシュメモリに書き込む(S82)。
メモリコントローラの読み出し処理も書込と同様である。即ち、ホストからの読み出し要求には、データの特徴を示す特徴識別子が含まれる。制御ユニットは、データ特徴テーブルを参照し、データの特徴に応じて、いずれの読出処理を実行するかを決定する。そして、制御ユニットは、読出ユニットに決定した読出処理を実行する読出要求を発行する。
以上のとおり、本実施の形態によれば、以下のメリットがある。
第1に、BCHのECCで復号失敗した場合、その復号データを書換え回数が少ないブロックに移動するので、次に読み出されるとき、BCHのECCで復号が成功する確率が向上する。
第2に、データの読出頻度が高い場合、使用するECC種別をBCHとLDPCの両方のECCとすることで、BCHのECCによる復号成功によるレイテンシの期待値を短くでき、読出の遅延によるディスターブの影響を抑制できる。また、データの読出頻度が低い場合、LDPCのECCにすることで、BCHのECCの生成と、BCHのECCによる復号を省略でき、メモリコントローラの消費電力を抑制できる。
第3に、書換えが多いデータと少ないデータとを別のブロックに書き込むようにすることで、書換えが少ないデータが記憶されるブロックのメモリセルの劣化を抑制し、BCHのECCによる復号が成功する確率を向上できる。
以上の実施の形態をまとめると,次の付記のとおりである。
(付記1)
半導体メモリへのアクセスを制御する制御部と、
書き込みデータに対して、第1の誤り訂正符号と、前記第1の誤り訂正符号よりエラー訂正率が高くエラー訂正を行う復号処理時間が長い第2の誤り訂正符号とを生成し、前記書き込みデータを前記半導体メモリに書き込む書き込み部と、
読み出し要求の読み出し先ブロックから、読み出しデータを読み出し、前記読み出しデータにエラーが生じた場合に前記第1の誤り訂正符号もしくは前記第2の誤り訂正符号により訂正されたデータを出力する読み出し部とを有し、
前記制御部は、前記第1の誤り訂正符号による誤り訂正が失敗した場合、前記読み出しデータを第2の誤り訂正符号により誤り訂正されたデータを、書き換え回数が第1の基準値より少ない他のブロックに移動する、
メモリコントローラ装置。
(付記2)
前記制御部による前記誤り訂正されたデータを前記他のブロックに移動する処理は、前記制御部が、前記書き込み部に、前記読み出し先ブロックの前記読み出しデータを前記他のブロックに書き込む要求を発行することを含む、付記1に記載のメモリコントローラ装置。
(付記3)
前記読み出し部は、読み出し要求に応答して、前記半導体メモリ内の前記読み出し要求の読み出し先ブロックから、読み出しデータと前記第1の誤り訂正符号及び前記第2の誤り訂正符号とを読み出し、前記第1の誤り訂正符号による復号が成功した場合、前記第1の誤り訂正符号により復号されたデータを出力し、前記第1の誤り訂正符号による復号が失敗した場合、前記第2の誤り訂正符号により復号されたデータを出力する、付記1に記載のメモリコントロール装置。
(付記4)
半導体メモリの書き込みと読み出しを制御する制御部と、
書き込み要求に応答して、
(a1)前記書き込み要求の書き込みデータに対して、第1の誤り訂正符号と、前記第1の誤り訂正符号よりエラー訂正率が高くエラー訂正を行う復号処理時間が長い第2の誤り訂正符号とを生成し、前記書き込みデータと前記第1の誤り訂正符号及び前記第2の誤り訂正符号とを前記半導体メモリに書き込む第1の書き込み処理と、
(a2)前記第2の誤り訂正符号を生成し、前記書き込みデータと前記第2の誤り訂正符号とを前記半導体メモリに書き込む第2の書き込み処理とを実行する書き込み部と、
読み出し要求に応答して、
(b1)前記半導体メモリ内の前記読み出し要求の読み出し先ブロックから、読み出しデータと前記第1の誤り訂正符号及び前記第2の誤り訂正符号とを読み出し、前記第1の誤り訂正符号による復号が成功した場合、前記第1の誤り訂正符号により復号されたデータを出力し、前記第1の誤り訂正符号による復号が失敗した場合、前記第2の誤り訂正符号により復号されたデータを出力する第1の読み出し処理と、
(b2)前記読み出しデータと前記第2の誤り訂正符号とを読み出し、前記第2の誤り訂正符号により復号されたデータを出力する第2の読み出し処理とを実行する読み出し部とを有し、
前記制御部は、
(c1)前記書き込みデータの読み出し回数が第1基準値以上の場合、前記書き込み部に前記第1の書き込み処理を要求する第1の書き込み要求を発行し、
(c2)前記書き込みデータの前記読み出し回数が前記第1基準値未満の場合、前記書き込み部に前記第2の書き込み処理を要求する第2の書き込み要求を発行し、
(d1)前記読み出しデータの前記読み出し回数が前記第1基準値以上の場合、前記読み出し部に前記第1の読み出し処理を要求する第1の読み出し要求を発行し、
(d2)前記読み出しデータの前記読み出し回数が前記第1基準値未満の場合、前記読み出し部に前記第2の読み出し処理を要求する第2の読み出し要求を発行する、付記1記載のメモリコントローラ装置。
(付記5)
前記制御部は、
(c3)書き換え回数が第2基準値以上のデータを書き込む場合、前記書き込み部に前記半導体メモリ内の第1のブロックに書き込むことを要求し、
(c4)前記書き換え回数が前記第2基準値未満のデータを書き込む場合、前記書き込み部に前記半導体メモリの第2のブロックに書き込むことを要求する、付記4に記載のメモリコントローラ装置。
(付記6)
前記制御部は、書き込み要求入力に含まれる前記読み出し回数と前記書き換え回数の識別子に基づいて、前記読み出し回数が前記第1基準値以上または未満かを判定し、前記書き換え回数が前記第2基準値以上または未満を判定する、付記5に記載のメモリコントローラ装置。
(付記7)
前記書き込み部は、更に、
(a3)前記第1の誤り訂正符号を生成し、前記書き込みデータと前記第1の誤り訂正符号とを前記半導体メモリに書き込む第3の書き込み処理とを実行し、
前記読み出し部は、更に、
(b3)前記読み出しデータと前記第1の誤り訂正符号とを読み出し、前記第1の誤り訂正符号により復号されたデータを出力する第3の読み出し処理とを実行し、
前記制御部は、
(c5)前記書き込み要求の書き込みデータが、前記半導体メモリ以外の記憶装置に記憶されている場合、前記書き込み部に前記第3の書き込み処理を要求する第3の書き込み要求を発行し、
(d3)前記読み出し要求の読み出しデータが、前記半導体メモリ以外の記憶装置に記憶されている場合、前記読み出し部に前記第3の読み出し処理を発行する、付記4に記載のメモリコントローラ装置。
(付記8)
前記制御部は、前記第1の誤り訂正符号による復号が失敗した場合、前記読み出しデータを、前記半導体メモリ内の前記読み出し先ブロックよりも消去回数が少ない他のブロックに移動する、付記4または5に記載のメモリコントローラ装置。
(付記9)
更に、前記制御部からの消去要求に応答して、書き込み済みのページを有するブロックの全ページを消去する消去部を有する、付記1に記載のメモリコントローラ装置。
(付記10)
更に、前記制御部からの消去要求に応答して、書き込み済みのページを有するブロックの全ページを消去する消去部を有する、付記5に記載のメモリコントローラ装置。
(付記11)
半導体メモリと、
前記半導体メモリへのアクセスを制御するメモリコントローラを有し、
前記メモリコントローラは、
半導体メモリへのアクセスを制御する制御部と、
書き込みデータに対して、第1の誤り訂正符号と、前記第1の誤り訂正符号よりエラー訂正率が高くエラー訂正を行う復号処理時間が長い第2の誤り訂正符号とを生成し、前記書き込みデータを前記半導体メモリに書き込む書き込み部と、
読み出し要求の読み出し先ブロックから、読み出しデータを読み出し、前記読み出しデータにエラーが生じた場合に前記第1の誤り訂正符号もしくは前記第2の誤り訂正符号により訂正されたデータを出力する読み出し部とを有し、
前記制御部は、前記第1の誤り訂正符号による誤り訂正が失敗した場合、前記読み出しデータを第2の誤り訂正符号により誤り訂正されたデータを、書き換え回数が第1の基準値より少ない他のブロックに移動する、メモリ装置。
(付記12)
半導体メモリへのアクセスを制御する制御部を有するメモリコントローラによるメモリコントロール方法において、
書き込みデータに対して、第1の誤り訂正符号と、前記第1の誤り訂正符号よりエラー訂正率が高くエラー訂正を行う復号処理時間が長い第2の誤り訂正符号とを生成し、前記書き込みデータを前記半導体メモリに書き込む工程と、
読み出し要求の読み出し先ブロックから、読み出しデータを読み出し、前記読み出しデータにエラーが生じた場合に前記第1の誤り訂正符号もしくは前記第2の誤り訂正符号により訂正されたデータを出力する工程と、
前記第1の誤り訂正符号による誤り訂正が失敗した場合、前記読み出しデータを第2の誤り訂正符号により誤り訂正されたデータを、書き換え回数が第1の基準値より少ない他のブロックに移動する工程、を有するメモリコントロール方法。
(付記13)
半導体メモリの書き込みと読み出しを制御する制御部と、
書き込み要求に応答して、
(a1)前記書き込み要求の書き込みデータに対して、第1の誤り訂正符号と、前記第1の誤り訂正符号よりエラー訂正率が高くエラー訂正を行う復号処理時間が長い第2の誤り訂正符号とを生成し、前記書き込みデータと前記第1の誤り訂正符号及び前記第2の誤り訂正符号とを前記半導体メモリに書き込む第1の書き込み処理と、
(a2)前記第2の誤り訂正符号を生成し、前記書き込みデータと前記第2の誤り訂正符号とを前記半導体メモリに書き込む第2の書き込み処理とを実行する書き込み部と、
読み出し要求に応答して、
(b1)前記半導体メモリ内の前記読み出し要求の読み出し先ブロックから、読み出しデータと前記第1の誤り訂正符号及び前記第2の誤り訂正符号とを読み出し、前記第1の誤り訂正符号による復号が成功した場合、前記第1の誤り訂正符号により復号されたデータを出力し、前記第1の誤り訂正符号による復号が失敗した場合、前記第2の誤り訂正符号により復号されたデータを出力する第1の読み出し処理と、
(b2)前記読み出しデータと前記第2の誤り訂正符号とを読み出し、前記第2の誤り訂正符号により復号されたデータを出力する第2の読み出し処理とを実行する読み出し部とを有し、
前記制御部は、
(c1)前記書き込みデータの読み出し回数が第1基準値以上の場合、前記書き込み部に前記第1の書き込み処理を要求する第1の書き込み要求を発行し、
(c2)前記書き込みデータの前記読み出し回数が前記第1基準値未満の場合、前記書き込み部に前記第2の書き込み処理を要求する第2の書き込み要求を発行し、
(d1)前記読み出しデータの前記読み出し回数が前記第1基準値以上の場合、前記読み出し部に前記第1の読み出し処理を要求する第1の読み出し要求を発行し、
(d2)前記読み出しデータの前記読み出し回数が前記第1基準値未満の場合、前記読み出し部に前記第2の読み出し処理を要求する第2の読み出し要求を発行する、メモリコントローラ装置。
ECC_CD:ECC符号化ユニット
WR_U:書き込みユニット、書き込み回路、書き込み部
ECC_DEC:ECC復号ユニット
RD_U:読み出しユニット、読み出し回路、読み出し部
ER_U:消去ユニット、消去回路、消去部
CNT_U:制御ユニット、制御回路、制御部
10:メモリ装置
20:メモリコントローラ
30:フラッシュメモリ

Claims (11)

  1. 半導体メモリへのアクセスを制御する制御部と、
    書き込みデータに対して、第1の誤り訂正符号と、前記第1の誤り訂正符号よりエラー訂正率が高くエラー訂正を行う復号処理時間が長い第2の誤り訂正符号とを生成し、前記書き込みデータを前記半導体メモリに書き込む書き込み部と、
    読み出し要求の読み出し先ブロックから、読み出しデータを読み出し、前記読み出しデータにエラーが生じた場合に前記第1の誤り訂正符号もしくは前記第2の誤り訂正符号により訂正されたデータを出力する読み出し部とを有し、
    前記制御部は、前記第1の誤り訂正符号による誤り訂正が失敗した場合、前記読み出しデータを第2の誤り訂正符号により誤り訂正されたデータを、書き換え回数が第1の基準値より少ない他のブロックに移動する、
    メモリコントローラ装置。
  2. 前記制御部による前記誤り訂正されたデータを前記他のブロックに移動する処理は、前記制御部が、前記書き込み部に、前記読み出し先ブロックの前記読み出しデータを前記他のブロックに書き込む要求を発行することを含む、請求項1に記載のメモリコントローラ装置。
  3. 前記読み出し部は、読み出し要求に応答して、前記半導体メモリ内の前記読み出し要求の読み出し先ブロックから、読み出しデータと前記第1の誤り訂正符号及び前記第2の誤り訂正符号とを読み出し、前記第1の誤り訂正符号による復号が成功した場合、前記第1の誤り訂正符号により復号されたデータを出力し、前記第1の誤り訂正符号による復号が失敗した場合、前記第2の誤り訂正符号により復号されたデータを出力する、請求項1に記載のメモリコントロール装置。
  4. 半導体メモリの書き込みと読み出しを制御する制御部と、
    書き込み要求に応答して、
    (a1)前記書き込み要求の書き込みデータに対して、第1の誤り訂正符号と、前記第1の誤り訂正符号よりエラー訂正率が高くエラー訂正を行う復号処理時間が長い第2の誤り訂正符号とを生成し、前記書き込みデータと前記第1の誤り訂正符号及び前記第2の誤り訂正符号とを前記半導体メモリに書き込む第1の書き込み処理と、
    (a2)前記第2の誤り訂正符号を生成し、前記書き込みデータと前記第2の誤り訂正符号とを前記半導体メモリに書き込む第2の書き込み処理とを実行する書き込み部と、
    読み出し要求に応答して、
    (b1)前記半導体メモリ内の前記読み出し要求の読み出し先ブロックから、読み出しデータと前記第1の誤り訂正符号及び前記第2の誤り訂正符号とを読み出し、前記第1の誤り訂正符号による復号が成功した場合、前記第1の誤り訂正符号により復号されたデータを出力し、前記第1の誤り訂正符号による復号が失敗した場合、前記第2の誤り訂正符号により復号されたデータを出力する第1の読み出し処理と、
    (b2)前記読み出しデータと前記第2の誤り訂正符号とを読み出し、前記第2の誤り訂正符号により復号されたデータを出力する第2の読み出し処理とを実行する読み出し部とを有し、
    前記制御部は、
    (c1)前記書き込みデータの読み出し回数が第1基準値以上の場合、前記書き込み部に前記第1の書き込み処理を要求する第1の書き込み要求を発行し、
    (c2)前記書き込みデータの前記読み出し回数が前記第1基準値未満の場合、前記書き込み部に前記第2の書き込み処理を要求する第2の書き込み要求を発行し、
    (d1)前記読み出しデータの前記読み出し回数が前記第1基準値以上の場合、前記読み出し部に前記第1の読み出し処理を要求する第1の読み出し要求を発行し、
    (d2)前記読み出しデータの前記読み出し回数が前記第1基準値未満の場合、前記読み出し部に前記第2の読み出し処理を要求する第2の読み出し要求を発行する、請求項1記載のメモリコントローラ装置。
  5. 前記制御部は、
    (c3)書き換え回数が第2基準値以上のデータを書き込む場合、前記書き込み部に前記半導体メモリ内の第1のブロックに書き込むことを要求し、
    (c4)前記書き換え回数が前記第2基準値未満のデータを書き込む場合、前記書き込み部に前記半導体メモリの第2のブロックに書き込むことを要求する、請求項4に記載のメモリコントローラ装置。
  6. 前記制御部は、書き込み要求入力に含まれる前記読み出し回数と前記書き換え回数の識別子に基づいて、前記読み出し回数が前記第1基準値以上または未満かを判定し、前記書き換え回数が前記第2基準値以上または未満を判定する、請求項5に記載のメモリコントローラ装置。
  7. 前記書き込み部は、更に、
    (a3)前記第1の誤り訂正符号を生成し、前記書き込みデータと前記第1の誤り訂正符号とを前記半導体メモリに書き込む第3の書き込み処理とを実行し、
    前記読み出し部は、更に、
    (b3)前記読み出しデータと前記第1の誤り訂正符号とを読み出し、前記第1の誤り訂正符号により復号されたデータを出力する第3の読み出し処理とを実行し、
    前記制御部は、
    (c5)前記書き込み要求の書き込みデータが、前記半導体メモリ以外の記憶装置に記憶されている場合、前記書き込み部に前記第3の書き込み処理を要求する第3の書き込み要求を発行し、
    (d3)前記読み出し要求の読み出しデータが、前記半導体メモリ以外の記憶装置に記憶されている場合、前記読み出し部に前記第3の読み出し処理を発行する、請求項4に記載のメモリコントローラ装置。
  8. 前記制御部は、前記第1の誤り訂正符号による復号が失敗した場合、前記読み出しデータを、前記半導体メモリ内の前記読み出し先ブロックよりも消去回数が少ない他のブロックに移動する、請求項4または5に記載のメモリコントローラ装置。
  9. 半導体メモリと、
    前記半導体メモリへのアクセスを制御するメモリコントローラを有し、
    前記メモリコントローラは、
    半導体メモリへのアクセスを制御する制御部と、
    書き込みデータに対して、第1の誤り訂正符号と、前記第1の誤り訂正符号よりエラー訂正率が高くエラー訂正を行う復号処理時間が長い第2の誤り訂正符号とを生成し、前記書き込みデータを前記半導体メモリに書き込む書き込み部と、
    読み出し要求の読み出し先ブロックから、読み出しデータを読み出し、前記読み出しデータにエラーが生じた場合に前記第1の誤り訂正符号もしくは前記第2の誤り訂正符号により訂正されたデータを出力する読み出し部とを有し、
    前記制御部は、前記第1の誤り訂正符号による誤り訂正が失敗した場合、前記読み出しデータを第2の誤り訂正符号により誤り訂正されたデータを、書き換え回数が第1の基準値より少ない他のブロックに移動する、メモリ装置。
  10. 半導体メモリへのアクセスを制御する制御部を有するメモリコントローラによるメモリコントロール方法において、
    書き込みデータに対して、第1の誤り訂正符号と、前記第1の誤り訂正符号よりエラー訂正率が高くエラー訂正を行う復号処理時間が長い第2の誤り訂正符号とを生成し、前記書き込みデータを前記半導体メモリに書き込む工程と、
    読み出し要求の読み出し先ブロックから、読み出しデータを読み出し、前記読み出しデータにエラーが生じた場合に前記第1の誤り訂正符号もしくは前記第2の誤り訂正符号により訂正されたデータを出力する工程と、
    前記第1の誤り訂正符号による誤り訂正が失敗した場合、前記読み出しデータを第2の誤り訂正符号により誤り訂正されたデータを、書き換え回数が第1の基準値より少ない他のブロックに移動する工程、を有するメモリコントロール方法。
  11. 半導体メモリの書き込みと読み出しを制御する制御部と、
    書き込み要求に応答して、
    (a1)前記書き込み要求の書き込みデータに対して、第1の誤り訂正符号と、前記第1の誤り訂正符号よりエラー訂正率が高くエラー訂正を行う復号処理時間が長い第2の誤り訂正符号とを生成し、前記書き込みデータと前記第1の誤り訂正符号及び前記第2の誤り訂正符号とを前記半導体メモリに書き込む第1の書き込み処理と、
    (a2)前記第2の誤り訂正符号を生成し、前記書き込みデータと前記第2の誤り訂正符号とを前記半導体メモリに書き込む第2の書き込み処理とを実行する書き込み部と、
    読み出し要求に応答して、
    (b1)前記半導体メモリ内の前記読み出し要求の読み出し先ブロックから、読み出しデータと前記第1の誤り訂正符号及び前記第2の誤り訂正符号とを読み出し、前記第1の誤り訂正符号による復号が成功した場合、前記第1の誤り訂正符号により復号されたデータを出力し、前記第1の誤り訂正符号による復号が失敗した場合、前記第2の誤り訂正符号により復号されたデータを出力する第1の読み出し処理と、
    (b2)前記読み出しデータと前記第2の誤り訂正符号とを読み出し、前記第2の誤り訂正符号により復号されたデータを出力する第2の読み出し処理とを実行する読み出し部とを有し、
    前記制御部は、
    (c1)前記書き込みデータの読み出し回数が第1基準値以上の場合、前記書き込み部に前記第1の書き込み処理を要求する第1の書き込み要求を発行し、
    (c2)前記書き込みデータの前記読み出し回数が前記第1基準値未満の場合、前記書き込み部に前記第2の書き込み処理を要求する第2の書き込み要求を発行し、
    (d1)前記読み出しデータの前記読み出し回数が前記第1基準値以上の場合、前記読み出し部に前記第1の読み出し処理を要求する第1の読み出し要求を発行し、
    (d2)前記読み出しデータの前記読み出し回数が前記第1基準値未満の場合、前記読み出し部に前記第2の読み出し処理を要求する第2の読み出し要求を発行する、メモリコントローラ装置。
JP2018166759A 2018-09-06 2018-09-06 メモリコントローラ装置、メモリコントローラ装置を有するメモリ装置及びメモリコントロール方法 Active JP7177338B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018166759A JP7177338B2 (ja) 2018-09-06 2018-09-06 メモリコントローラ装置、メモリコントローラ装置を有するメモリ装置及びメモリコントロール方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018166759A JP7177338B2 (ja) 2018-09-06 2018-09-06 メモリコントローラ装置、メモリコントローラ装置を有するメモリ装置及びメモリコントロール方法

Publications (2)

Publication Number Publication Date
JP2020042326A true JP2020042326A (ja) 2020-03-19
JP7177338B2 JP7177338B2 (ja) 2022-11-24

Family

ID=69798215

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018166759A Active JP7177338B2 (ja) 2018-09-06 2018-09-06 メモリコントローラ装置、メモリコントローラ装置を有するメモリ装置及びメモリコントロール方法

Country Status (1)

Country Link
JP (1) JP7177338B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114822669A (zh) * 2022-06-29 2022-07-29 北京得瑞领新科技有限公司 闪存错误注入系统、固态存储设备及测试系统
CN115412103A (zh) * 2022-11-01 2022-11-29 浙江力积存储科技有限公司 一种针对数据屏蔽的纠错方法、装置及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10240628A (ja) * 1997-02-28 1998-09-11 Nec Corp キャッシュメモリ装置
JP2003345650A (ja) * 2002-05-23 2003-12-05 Mitsubishi Electric Corp フラッシュメモリシステム
JP2004272476A (ja) * 2003-03-06 2004-09-30 Tdk Corp メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2006221334A (ja) * 2005-02-09 2006-08-24 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2007316779A (ja) * 2006-05-23 2007-12-06 Sharp Corp 不揮発性メモリシステム
JP2012514266A (ja) * 2008-12-30 2012-06-21 インディリンクス カンパニー リミテッド メモリコントローラおよびメモリ管理方法
JP2013214212A (ja) * 2012-04-02 2013-10-17 Toshiba Corp メモリコントローラ、半導体記憶装置および復号方法
JP2014515536A (ja) * 2011-05-31 2014-06-30 マイクロン テクノロジー, インク. データ完全性を与えるための装置および方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10240628A (ja) * 1997-02-28 1998-09-11 Nec Corp キャッシュメモリ装置
JP2003345650A (ja) * 2002-05-23 2003-12-05 Mitsubishi Electric Corp フラッシュメモリシステム
JP2004272476A (ja) * 2003-03-06 2004-09-30 Tdk Corp メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2006221334A (ja) * 2005-02-09 2006-08-24 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2007316779A (ja) * 2006-05-23 2007-12-06 Sharp Corp 不揮発性メモリシステム
JP2012514266A (ja) * 2008-12-30 2012-06-21 インディリンクス カンパニー リミテッド メモリコントローラおよびメモリ管理方法
JP2014515536A (ja) * 2011-05-31 2014-06-30 マイクロン テクノロジー, インク. データ完全性を与えるための装置および方法
JP2013214212A (ja) * 2012-04-02 2013-10-17 Toshiba Corp メモリコントローラ、半導体記憶装置および復号方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114822669A (zh) * 2022-06-29 2022-07-29 北京得瑞领新科技有限公司 闪存错误注入系统、固态存储设备及测试系统
CN115412103A (zh) * 2022-11-01 2022-11-29 浙江力积存储科技有限公司 一种针对数据屏蔽的纠错方法、装置及存储介质
CN115412103B (zh) * 2022-11-01 2023-03-31 浙江力积存储科技有限公司 一种针对数据屏蔽的纠错方法、装置及存储介质

Also Published As

Publication number Publication date
JP7177338B2 (ja) 2022-11-24

Similar Documents

Publication Publication Date Title
EP3072134B1 (en) Defect management policies for nand flash memory
JP6606039B2 (ja) メモリシステムおよび制御方法
US9135112B2 (en) Policy for read operations addressing on-the-fly decoding failure in non-volatile memory
US9037951B2 (en) Data management in solid state storage systems
KR101576102B1 (ko) 플래시 메모리의 블록으로부터 데이터를 판독하는 방법 및 관련 메모리 장치
US20190252035A1 (en) Decoding method, memory storage device and memory control circuit unit
US8732553B2 (en) Memory system and control method thereof
US9543983B2 (en) Decoding method, memory storage device and memory control circuit unit
US9256526B2 (en) Flash memory storage system and access method
JP2015018451A (ja) メモリコントローラ、記憶装置およびメモリ制御方法
JP2012118979A (ja) Nandフラッシュ・メモリにおける確率論的多層エラー訂正のためのシステム、方法、およびコンピュータ・プログラム
CN106297883B (zh) 解码方法、存储器存储装置及存储器控制电路单元
US11550663B2 (en) Changing of error correction codes based on the wear of a memory sub-system
KR20160090054A (ko) 플래시 메모리 시스템 및 그의 동작 방법
KR20180129249A (ko) 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
KR20170012006A (ko) 메모리 컨트롤러와 이를 포함하는 메모리 시스템
JP7177338B2 (ja) メモリコントローラ装置、メモリコントローラ装置を有するメモリ装置及びメモリコントロール方法
US11664826B2 (en) Error correction code engine performing ECC decoding, operation method thereof, and storage device including ECC engine
US10735030B2 (en) Re-encoding data associated with failed memory devices
US11177012B1 (en) Fast copy through controller
KR20220077041A (ko) 메모리 시스템 내 저장된 데이터를 유지하는 장치 및 방법
JP2020154728A (ja) メモリシステム及びその制御方法
US10922025B2 (en) Nonvolatile memory bad row management
CN111435604B (zh) 解码方法、存储器控制电路单元以及存储器存储装置
US11157210B2 (en) Memory system performing dummy program operation during normal program operation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210610

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220412

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220517

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220603

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: 20221011

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221024

R150 Certificate of patent or registration of utility model

Ref document number: 7177338

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150