Nothing Special   »   [go: up one dir, main page]

JP4956230B2 - メモリコントローラ - Google Patents

メモリコントローラ Download PDF

Info

Publication number
JP4956230B2
JP4956230B2 JP2007050626A JP2007050626A JP4956230B2 JP 4956230 B2 JP4956230 B2 JP 4956230B2 JP 2007050626 A JP2007050626 A JP 2007050626A JP 2007050626 A JP2007050626 A JP 2007050626A JP 4956230 B2 JP4956230 B2 JP 4956230B2
Authority
JP
Japan
Prior art keywords
data
memory
error correction
correction code
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.)
Expired - Fee Related
Application number
JP2007050626A
Other languages
English (en)
Other versions
JP2007305105A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007050626A priority Critical patent/JP4956230B2/ja
Priority to US11/696,341 priority patent/US7886211B2/en
Publication of JP2007305105A publication Critical patent/JP2007305105A/ja
Application granted granted Critical
Publication of JP4956230B2 publication Critical patent/JP4956230B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding 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

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)
  • Memory System (AREA)

Description

本発明は、メモリコントローラに係り、特に誤り訂正機能を有するメモリコントローラに関する。
メモリカード等への利用により、NAND型フラッシュメモリの需要が年々高まっている。用途が拡大するにつれ、より大容量かつ高速に動作するメモリカードが求められている。その要求に応えるため、より微細なプロセスを使用したNAND型フラッシュメモリが開発されている。しかし、プロセスの微細化に伴い、“ブロック”と呼ばれるNAND型フラッシュメモリの消去単位の容量(ブロックサイズ)も増加している。
同一物理アドレスでのデータの上書きができないNAND型フラッシュメモリにおいては、一部のメモリ領域を書き換えるために、そのメモリ領域を含むブロック全体のデータコピーが必要である。そのため、ブロックサイズの増大は、データコピーに要する時間を増大させ、結果的にメモリの書き込み速度の低下につながる。
上記問題に対応するために、近年のNAND型フラッシュメモリはページコピー機能を備えている(例えば、特許文献1参照)。ページコピー機能は、コピー元ページアドレスとコピー先ページアドレスを指定し、NAND型フラッシュメモリが内蔵するバッファ(ページバッファ)を介して、ブロック間のデータコピーをページ単位で実行する機能である。ここで、ページは、ブロックより小さいデータの単位であり、ページ単位のデータをページデータという。ページコピー機能を使うことにより、NAND型フラッシュメモリの内部でブロック間のデータコピーが実行される。そのため、コピー元のブロックからデータをホスト機器或いはメモリコントローラに読み出し、読み出したデータをコピー先のブロックに書き込む必要がない。つまり、ページコピー機能を使用することによって、NAND型フラッシュメモリのブロック間でのデータコピーの高速化を達成できる。
一般に、NAND型フラッシュメモリを使用する場合は、メモリセルの劣化等によるデータ化けを考慮して誤り訂正が行われる。例えば、NAND型フラッシュメモリから読み出されたデータに誤りがないかを、メモリコントローラがリードソロモン符号等を用いた誤り検査機能により検査する。ホスト機器によってデータが読み出された時、データに訂正可能な誤りが存在する場合はデータの誤り訂正が行われ、訂正されたデータがメモリコントローラからホスト機器へ出力される。又、ブロック間でデータコピーする場合は、NAND型フラッシュメモリからメモリコントローラにデータを読み出し、読み出されたデータに訂正可能な誤りがある場合は誤り訂正が行われ、訂正されたデータがメモリコントローラからNAND型フラッシュメモリに転送される。データの誤り訂正が行われなかった場合は、ページバッファに格納されたデータがNAND型フラッシュメモリに書き込まれる。つまり、NAND型フラッシュメモリから読み出されたデータに誤りがない場合に、ページコピー機能によって、メモリコントローラからNAND型フラッシュメモリヘのデータ転送が行われずブロック間のデータコピーがページバッファを介して実行される結果、データ転送時間が省略される。
ただし、NAND型フラッシュメモリから読み出されたデータに誤りがない場合も、各ページに含まれる、実データを記憶するデータ部以外の冗長部に格納された管理データを変更する場合がある。
NAND型フラッシュメモリは、データ部及び冗長部に格納されたページデータの一部が変更された場合に、ページバッファの変更された部分だけを書き換える機能を備える。そのため、変更されたデータ、例えば管理データのみを書き換える場合に、NAND型フラッシュメモリのデータ書き換えに要する時間の短縮が可能である。しかし、冗長部にデータの誤り訂正符号を格納するメモリシステムでは、ページデータの一部を変更する場合にも、メモリコントローラにページデータを読み出して変更し、変更したページデータに対してメモリコントローラが誤り訂正符号をデータの先頭バイトから順次算出する必要がある。一般に、データの誤り訂正符号の算出時間とメモリコントローラがデータをNAND型フラッシュメモリに書き込む時間とは同等程度である。つまり、データの一部を変更した後のデータの誤り訂正符号を算出する場合にも、データ部及び冗長部に格納された全データを書き換える場合と同等の時間が必要となる。
特開2005−78378号公報
本発明は、メモリに格納されたデータの変更に要する時間の増大を抑制できるメモリコントローラを提供する。
本発明の一態様によれば、メモリに接続され、該メモリに格納されたデータとその第1の誤り訂正符号を読み出し、読み出した前記データを変更するメモリコントローラであって、前記データに対する第2の誤り訂正符号を算出する過程で、前記データの先頭バイトから指定バイトまでを用いて前記第2の誤り訂正符号の中間算出値を算出する第1算出回路と、前記中間算出値を格納するデータ格納回路と、前記データのうちの前記指定バイトの後続部のデータを変更する変更回路と、前記中間算出値と前記変更されたデータを含む前記後続部のデータとを用いて第3の誤り訂正符号を算出する第2算出回路と、前記変更されたデータ及び前記第3の誤り訂正符号を前記メモリに転送するデータ転送回路とを備えるメモリコントローラが提供される。
本発明によれば、メモリに格納されたデータの変更に要する時間の増大を抑制できるメモリコントローラを提供できる。
図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
図1は本発明の一実施の形態のメモリコントローラの構成を示している。図2はメモリのページ構成を示している。
本発明の実施の形態に係るメモリコントローラは、メモリ2から読み出されたデータDAを変更する回路系(15,16)と、メモリ2から読み出されたデータDAに基づいて変更後のデータDBの誤り訂正符号SBを算出する回路系(11〜14)と、データDBの変更部分とデータDBの誤り訂正符号SBとをメモリ2に転送する回路系(17)と、を備えている。回路系(17)での転送動作により、データDBの変更部分とデータDBの誤り訂正符号SBのみを転送するので、データDAを変更した結果の全てのデータDBとその誤り訂正符号SBをメモリ2に転送してメモリ2内のデータDAとその誤り訂正符号を書き換えるのに比べて、メモリ2へのデータ書き換えに要する時間を短縮できる。
以上の構成のほか、本実施形態では、メモリ2に記憶した、データ(例えばページデータ)DAの一部を変更する場合に、メモリコントローラ1がその変更後のページデータに対して付加する誤り訂正符号を算出する際、誤り訂正符号を効率的に算出できる構成を実現している。なお、以下の説明で、誤り訂正符号とは、実データやそれに関する管理データを含まない誤り訂正用のパリティ符号のみを意味している。
本発明の実施の形態に係るメモリコントローラ1は、図1に示すように、メモリ2に接続され、そのメモリ2に格納された、データDAとその第1の誤り訂正符号を読み出し、読み出されたデータDAを変更するメモリコントローラである。メモリコントローラ1は、データDAに対する第2の誤り訂正符号SAを算出する過程で、データDAの先頭バイトから指定バイトBAまでを用いて第2の誤り訂正符号SAの中間算出値DMを算出する第1算出回路11と、データDAのうちの指定バイトBAの後続部のデータを変更する変更回路16と、中間算出値DMと変更されたデータを含む後続部のデータとを用いて第3の誤り訂正符号SBを算出する第2算出回路13と、変更されたデータ及び第3の誤り訂正符号SBをメモリ2に転送するデータ転送回路17とを備える。データDAの「後続部」とは、指定バイトBAより時間的に後にメモリ2から読み出されるデータDAの部分である。
図2はメモリ2の指定バイトを説明するためのページ構成を示している。
指定バイトBAとして、データDAの変更される部分よりも前に、メモリ2から読み出されるバイトが設定される。つまり、図2に示すように、データDAの変更部分が、指定バイトBAより時間的に後にメモリ2から読み出される後続部に含まれるように、指定バイトBAは設定される。指定バイトBAの情報は、図1に示した指定回路14に格納される。指定回路14は、第1算出回路11及び第2算出回路13に指定バイトBAの情報を転送する。尚、指定バイトBAの情報をメモリコントローラ1の外部の図示しない制御部から指定回路14に入力するように、メモリコントローラ1を設計することが可能である。
第1算出回路11及び第2算出回路13は、データを先頭バイトから順に用いて誤り訂正符号を算出する。具体的には、第1算出回路11及び第2算出回路13は、データの任意のバイトにおける中間算出値を、そのバイトの直前のバイトにおける中間算出値を初期値として、そのバイトの値及び初期値を用いて逐次算出する。つまり、中間算出値DMは、データDAの先頭バイトから指定バイトBAまでに対するパリティ符号である。第1の誤り訂正符号は、メモリ2からデータDAを読み出した際にデータDAと共にメモリ2から読み出されるデータDAのパリティ符号である。第2の誤り訂正符号SAは、メモリ2から読み出されたデータDAについて新たに算出されるデータDAのパリティ符号である。第1算出回路11では、メモリ22から読み出されたデータDAについて新たに第2の誤り訂正符号SAを算出する過程において、先頭バイトから指定バイトBAまでの第2の誤り訂正符号の中間算出値DMを算出する。この算出された中間算出値DMは後段の第2算出回路13で第3の誤り訂正符号SBを算出するのに用いられる。しかしながら、第2の誤り訂正符号SAそのものは他の回路等で使用されることはない。第1算出回路11及び第2算出回路13は、例えばリードソロモン符号等の、データを先頭バイトから順に用いて算出される誤り訂正符号を算出する。
図1に示したメモリコントローラ1は、データ格納回路12及び訂正回路15を更に備える。データ格納回路12は、第1算出回路11からの中間算出値DMを格納する。訂正回路15は、メモリ2から読み出されたデータDAと第1の誤り訂正符号であるパリティ符号とを用いてデータDAの誤り訂正を行う。
メモリ2は、ページコピー機能を用いたブロック間のデータコピーが可能なメモリであり、格納するデータの一部が変更された場合に、変更された部分だけを書き換える機能を備える。メモリ2に、例えばNAND型フラッシュメモリ等が採用可能である。
図3に、メモリ2の構成例を示す。メモリ2は、複数のブロックを含むメモリセル21とページバッファ22を備える。既に述べたように、メモリ2に格納されたデータはブロック単位で消去される。又、メモリセル21に含まれるブロック間でデータがコピーされる場合、ページバッファ22を用いてページ単位でデータコピーが実行される。例えば、ブロックAに含まれるページPAから読み出されたデータがページバッファ22に格納される。そして、ページバッファ22に格納されたデータがブロックBに含まれるページPBに書き込まれる。これによってデータコピーが行われる。ページPAから読み出されたデータの一部が変更される場合は、一旦メモリコントローラ1にページ単位で読み出されて、メモリコントローラ1によりページバッファ22に格納されたデータが変更され、変更後のデータがページPBに書き込まれる。なお、メモリコントローラ1は、メモリ2からデータを読み出す際には、ページバッファ22に格納されたデータを読み出す。
図4に、メモリ2のページ構成例を示す。図4は図2に対応している。図4に示した例では、メモリ2の各ページは512バイトのデータ部D1と16バイトの冗長部D2を有する。つまり、先頭バイトである1バイト目から512バイト目までがデータ部D1であり、513バイト目から528バイト目までが冗長部D2である。実データがデータ部D1に格納され、データ部D1に格納された実データに関する管理データが冗長部D2に格納される。図4に示したページ構成の場合、データ部D1、冗長部D2の順に先頭バイトからデータが読み出される。なお、各ページのパリティ符号が冗長部D2に格納される。データ部D1に格納された実データと冗長部D2に格納された管理データとが、データDAに対応する。このデータDAに対するパリティ符号は、例えば冗長部D2の最後尾に格納される。誤り訂正符号としては、例えばリードソロモン符号等の、データを先頭バイトから順に用いて算出される誤り訂正符号が採用可能である。
以下に、図1に示したメモリコントローラ1により、メモリ2のデータコピーを制御する方法を説明する。ここで、メモリ2が図3及び図4に示した構成を有するNAND型フラッシュメモリであるとする。以下では、ブロック間のデータコピーを行う際に、冗長部D2に格納された管理データが変更される場合を例示的に説明する。つまり、以下の例では、冗長部D2がページデータの後続部(図2参照)に含まれるように、指定回路14において指定バイトBAとして512バイトが設定される。なお、データコピー時に管理データを更新する例としては、冗長部にデータのコピー回数を格納し、データがコピーされる度に、冗長部に格納されたコピー回数を記録する管理データをカウントアップする場合が考えられる。ただし、冗長部にコピー回数を記録するための管理データはどのメモリシステムにも必ず必要なものではなく、必要としないメモリシステムもある。また、管理データを、別の理由から、随時変更しなければならない場合もある。
図3に示したブロックAのページPAに格納されたデータDAとその第1の誤り訂正符号がページバッファ22に転送される。図1に示した第1算出回路11が、ページバッファ22からデータDAを読み出しながら、データDAの各バイトにおける中間算出値を逐次算出しながら、データDAの第2の誤り訂正符号SAの中間算出値DMを算出する。即ち、第1算出回路11は、指定回路14から転送される指定バイトBAの情報を参照し、第2の誤り訂正符号SAを算出する過程で得られる、データDAの先頭バイトから512バイト目までを用いて算出される中間算出値DMをデータ格納回路12に転送する。換言すれば、データDAの511バイト目が読み出された時点で算出される中間算出値を初期値として、512バイト目までの中間算出値DMは算出される。データ格納回路12は、中間算出値DMを格納する。
メモリ2から読み出されたデータDAとその第1の誤り訂正符号は、訂正回路15に転送される。訂正回路15は、第1の誤り訂正符号を用いて、データDAに誤りがある場合にデータDAの誤り訂正処理を行う。
変更回路16は、訂正回路15から転送されるデータDA(実データと管理データを含む)のうちの指定バイトBAの後続部に含まれるデータの少なくとも一部を変更する(図2参照)。例えば、データDAのデータコピー回数を記録する、冗長部D2に格納される管理データが更新される。データDAを変更回路16によって変更した結果を、以下にデータDBとする。従って、データDBには、パリティ符号は含まれていない。変更回路16は、第2算出回路13及びデータ転送回路17にデータDBの変更部分を転送する。
第2算出回路13は、データ格納回路12から中間算出値DMを読み出す。更に、第2算出回路13は、指定回路14から転送される指定バイトBAの情報を参照し、中間算出値DMを用いてデータDBの誤り訂正符号として第3の誤り訂正符号SBを算出する。具体的には、第2算出回路13は、中間算出値DMを初期値として、指定バイトBAの次のバイト、即ちデータDBの513バイト目以降を用いて第3の誤り訂正符号SBを算出する。中間算出値DMを初期値として第3の誤り訂正符号SBを算出することにより、データDBの全データを用いて誤り訂正符号を算出する場合に比べて、第3の誤り訂正符号SBを算出する時間が短縮される。例えば、誤り訂正符号を算出するために1バイト当り1クロックサイクルを要する場合、指定バイトBAを512バイト目に設定することによって、第3の誤り訂正符号SBを算出するために要するクロックサイクル数が512クロックサイクル短縮される。第2算出回路13は、第3の誤り訂正符号SBをデータ転送回路17に転送する。ただし、データDAに誤りがあることが訂正回路15で検出された場合は、第2算出回路13は、図示しない制御部の制御によって中間算出値DMを使用せずデータDBを先頭バイトから順に用いて第3の誤り訂正符号SBを算出する(これについては後述する)。
データ転送回路17は、データDAの変更部分の情報と第3の誤り訂正符号SBとを転送データDTとしてメモリ2に転送する。例えば、更新されたデータコピー回数を記録する管理データ、及び第3の誤り訂正符号SBがメモリ2に転送される。データDBの変更部分のみをメモリコントローラ1からメモリ2に転送することにより、データDB全体を転送する場合に比べて、データ転送時間を短縮できる。
メモリ2に転送された転送データDTによって、図3に示したページバッファに格納されたデータDAの一部を変更したデータ、例えばデータDA内のデータコピー回数を記録する管理データと、データDA(実データと管理データを含む)に対する変更された誤り訂正符号とがページPBに書き込まれる。
以上では、指定バイトBAを512バイト目に設定して、データDAに含まれる管理データを変更する例を説明した。データDAのデータ部D1に格納された実データを変更する場合も同様にして、第3の誤り訂正符号SBの算出に要する時間の増大を抑制可能である。
例えば、メモリ2が不良メモリセルを含む場合を考える。ここで、「不良メモリセル」とは、データ記憶機能に欠陥がある可能性を有するメモリセルである。不良メモリセルに格納されたデータの信頼性は低く、誤り訂正が行われる可能性が高い。不良メモリセルの情報は、例えばメモリ2が電源投入時の自己チェック等によって不良メモリセルを検知して得られる。不良メモリセルの情報は、メモリ2からメモリコントローラ1に通知される。
メモリ2から読み出されたデータDAの実データが不良メモリセルに格納されていたデータを含む場合、データDAの実データについて誤り訂正が行われる可能性がある。そこで、メモリ2から通知される不良メモリセルの情報に基づいて、不良メモリセルに格納されたデータよりも時間的に前にメモリ2から読み出されるデータを用いて中間算出値DMを算出するように、指定バイトBAが設定される。不良メモリセルに格納されたデータを含まないデータを用いて算出される中間算出値DMを初期値にすることによって、第3の誤り訂正符号SBの算出に要する時間を短縮できる。
なお、図1で、第1算出回路11は、メモリ2からのデータDAを入力し、第2の誤り訂正符号を算出する過程で先頭バイトから指定バイトまでの中間算出値DMを算出する入力側の算出回路であり、また、第2算出回路13は、第1算出回路11からの中間算出値DMをデータ格納回路12を介して受け取り、中間算出値DMと一部変更後のデータDB(実データと管理データを含む)を用いて第3の誤り訂正符号を効率的に算出する出力側の算出回路であるから、第1算出回路11とデータ格納回路12と第2算出回路13とを、一部変更後のデータDBの誤り訂正符号を算出する1つの算出回路として扱うこともできる。その場合、算出回路11と第2算出回路13は、演算内容がほぼ同じであり、また、同時には動作しない事から、大部分の回路を共用する事ができる。
上記ではメモリ2がNAND型フラッシュメモリである例を説明した。本発明の実施の形態に係るメモリコントローラ1は、格納されたデータの一部を変更する機能を有する種々のメモリの制御に適用可能である。
以上説明したように、本発明の実施の形態に係るメモリコントローラ1では、変更される部分よりも前の部分のデータを用いて、第2の誤り訂正符号SAの中間算出値DMが算出される。そして、中間算出値DMを初期値として一部変更後のデータDBについて第3の誤り訂正符号SBが算出される。つまり、一部変更後のデータDBについては、出力側の算出回路で指定バイトBA以降のデータに対してのみ誤り訂正符号を算出すればよい。その結果、データDBの全データに対して誤り訂正符号を算出する場合に比べて、第3の誤り訂正符号SBを算出する時間を短縮できる。
以上の動作の説明は、メモリ2から読み出されるデータDAにおける、先頭バイトから指定バイトBAまでのデータに誤りがなく、先頭バイトから指定バイトBAまでのデータを用いて算出される第2の誤り訂正符号の中間算出値DMには信頼性がある場合に、この中間算出値DMを後段の第2算出回路13で初期値として用いて第3の誤り訂正符号を少ない時間で効率的に算出することが可能となるものである。しかしながら、メモリ2から読み出されるデータDAにおける、先頭バイトから指定バイトBAまでのデータに誤りが検出されたり(訂正回路15にて検出される)、或いは、訂正回路15で訂正できない誤りがあった場合には、第1算出回路11にて算出される第2の誤り訂正符号の中間算出値DMには信頼性がなく(即ち中間算出値DM自体に誤りが存在する可能性があり)、この中間算出値DMを第2算出回路13で使用することはできない。そこで、データDAにおける、先頭バイトから指定バイトBAまでのデータに誤りが訂正回路15で検出されたり、或いは、訂正回路15で訂正できない誤りがあった場合には、図示しない制御部が訂正回路15からの情報を受け、第2算出回路13での中間算出値DMの使用を停止すると同時に指定回路14を制御して指定回路14による第2算出回路13へのバイト指定の動作を停止させる。このバイト指定の動作の停止により、第2算出回路13が変更回路16からのデータDBに関して先頭バイトから最終バイトまでの誤り訂正符号の算出を順次に行って第3の誤り訂正符号SBを算出する。データ転送回路17は、この第3の誤り訂正符号SBとデータDBの変更部分とを転送データDTとしてメモリ2へ転送する。
<変形例>
図5は本発明の実施の形態の変形例に係るメモリコントローラ1Bを示している。図5に示したメモリコントローラ1Bでは、指定回路14から第1算出回路11に指定バイトBAが転送されない構成となっている。又、図1に示したメモリコントローラ1では、データDAの先頭バイトから予め設定された指定バイトBAまでのデータを用いて算出される中間算出値DMがデータ格納回路12に格納される。これに対して、図5に示したメモリコントローラ1Bでは、第2の誤り訂正符号SAを算出する過程で得られる、データDAの先頭バイトからそれ以降(先頭バイアスを含む)の各バイトまでの中間算出値DMがそれぞれ第1算出回路11からデータ格納回路12に転送される。その結果、データ格納回路12は、データDAのバイト数分の個数の中間算出値DMを格納する。
つまり、データDAの各バイトを指定バイトBAとする複数の中間算出値DMがデータ格納回路12に格納される。その他の構成については、図1に示す第1の実施の形態と同様である。
データDAの各バイトまでの中間算出値DMを図5に示したデータ格納回路12に格納することによって、任意に指定される指定バイトBAまでの中間算出値DMを使用して、第23の誤り訂正符号SBを算出できる。具体的には、第2算出回路13は、指定回路14から通知される指定バイトBAまでの中間算出値DMをデータ格納回路12から読み出す。第2算出回路13は、データ格納回路12から読み出した中間算出値DMとデータDBの指定バイトBAの後続部のデータとを用いて、第3の誤り訂正符号SBを算出する。データ格納回路12に、例えばランダムアクセスメモリ(RAM)等が採用可能である。
図5に示したメモリコントローラ1Bでは、データDAの各バイトにおける中間算出値DMがそれぞれデータ格納回路12に格納される。そして、データDBの任意のバイトの中間算出値DMを初期値として、データDBの第3の誤り訂正符号SBが算出される。そのため、図5に示したメモリコントローラ1Bにおいては、データDBの先頭から任意のバイトまでの誤り訂正符号の算出時間を省略できる。
尚、既に述べた実施の形態の説明においては、指定回路14が指定バイトBAの情報を格納する例を示したが、第1算出回路11及び第2算出回路13がそれぞれ指定バイトBAの情報を格納してもよい。
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
本発明の一実施の形態に係るメモリコントローラの構成を示すブロック図。 本発明の実施の形態に係るメモリコントローラによって制御されるメモリの指定バイトを説明するためのページ構成の模式図。 本発明の実施の形態に係るメモリコントローラによって制御されるメモリの構成例を示す模式図。 本発明の実施の形態に係るメモリコントローラによって制御されるメモリのページ構成の例を示す模式図。 本発明の実施の形態の変形例に係るメモリコントローラの構成を示すブロック図。
符号の説明
1,1B…メモリコントローラ
2…メモリ
11…第1算出回路
12…データ格納回路
13…第2算出回路
14…指定回路
15…訂正回路
16…変更回路
17…データ転送回路

Claims (5)

  1. メモリに接続され、該メモリに格納されたデータとその第1の誤り訂正符号を読み出し、読み出した前記データを変更するメモリコントローラであって、
    前記データに対する第2の誤り訂正符号を算出する過程で、前記データの先頭バイトから指定バイトまでを用いて前記第2の誤り訂正符号の中間算出値を算出する第1算出回路と、
    前記中間算出値を格納するデータ格納回路と、
    前記データのうちの前記指定バイトの後続部のデータを変更する変更回路と、
    前記中間算出値と前記変更されたデータを含む前記後続部のデータとを用いて第3の誤り訂正符号を算出する第2算出回路と、
    前記変更されたデータ及び前記第3の誤り訂正符号を前記メモリに転送するデータ転送回路と
    を備えることを特徴とするメモリコントローラ。
  2. 前記第1の誤り訂正符号を用いて、前記データの誤り訂正処理を行う訂正回路を更に備えることを特徴とする請求項1に記載のメモリコントローラ。
  3. 前記メモリは、メモリセルとページバッファを備える一方、前記メモリセルに含まれるブロック間でデータがコピー可能とされ、前記ページバッファを用いてページ単位でデータコピーが実行されるページコピー機能を備え、
    前記メモリコントローラは、前記メモリセルの第1のブロックの所定のページから読み出されたデータの一部を変更する場合は、一旦前記ページバッファに格納されたデータを該メモリコントローラにページ単位で読み出して変更し、変更後のデータを前記メモリセルの第2のブロックの所定のページに書き込む機能を備えたことを特徴とする請求項1又は2に記載のメモリコントローラ。
  4. 前記メモリから読み出されたデータは、実データとその実データに関する管理データとで構成され、
    前記変更されるデータが、前記管理データであることを特徴とする請求項1乃至3のいずれか1つに記載のメモリコントローラ。
  5. 前記管理データが、データコピーの回数であることを特徴とする請求項4に記載のメモリコントローラ。
JP2007050626A 2006-04-10 2007-02-28 メモリコントローラ Expired - Fee Related JP4956230B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007050626A JP4956230B2 (ja) 2006-04-10 2007-02-28 メモリコントローラ
US11/696,341 US7886211B2 (en) 2006-04-10 2007-04-04 Memory controller

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006107914 2006-04-10
JP2006107914 2006-04-10
JP2007050626A JP4956230B2 (ja) 2006-04-10 2007-02-28 メモリコントローラ

Publications (2)

Publication Number Publication Date
JP2007305105A JP2007305105A (ja) 2007-11-22
JP4956230B2 true JP4956230B2 (ja) 2012-06-20

Family

ID=38575077

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007050626A Expired - Fee Related JP4956230B2 (ja) 2006-04-10 2007-02-28 メモリコントローラ

Country Status (2)

Country Link
US (1) US7886211B2 (ja)
JP (1) JP4956230B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8276043B2 (en) * 2008-03-01 2012-09-25 Kabushiki Kaisha Toshiba Memory system
US8185706B2 (en) * 2008-04-30 2012-05-22 Apple Inc. Copyback optimization for memory system
TWI447739B (zh) * 2010-03-22 2014-08-01 Phison Electronics Corp 錯誤校正方法、記憶體控制器與儲存系統
JP5651457B2 (ja) * 2010-12-15 2015-01-14 株式会社東芝 半導体記憶装置
US10613772B2 (en) * 2017-03-16 2020-04-07 Qualcomm Incorporated Methods and apparatuses for copying a data page in an unmanaged flash memory device
KR20230033785A (ko) * 2021-09-01 2023-03-09 삼성전자주식회사 멀티 클럭을 이용하는 오류 정정 회로 및 이를 포함하는 반도체 장치

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5298434A (en) * 1976-02-14 1977-08-18 Hitachi Ltd Correction for memory error
FR2520956A1 (fr) * 1982-02-04 1983-08-05 France Etat Systeme de transmission asynchrone, notamment pour systeme de videotex interactif
JPH0756640B2 (ja) * 1985-03-01 1995-06-14 株式会社日立製作所 記憶装置
JPH01134548A (ja) * 1987-11-19 1989-05-26 Fujitsu Ltd 記憶装置
KR100260415B1 (ko) * 1997-08-13 2000-07-01 윤종용 고속시리얼에러위치다항식계산회로
US6310884B1 (en) * 1998-05-21 2001-10-30 Lsi Logic Corporation Data transfer method and apparatus that allocate storage based upon a received relative offset
JP3802411B2 (ja) * 2001-12-20 2006-07-26 株式会社東芝 不揮発性半導体記憶装置のデータコピー方法
KR100543447B1 (ko) * 2003-04-03 2006-01-23 삼성전자주식회사 에러정정기능을 가진 플래쉬메모리장치
JP2005078378A (ja) 2003-08-29 2005-03-24 Sony Corp データ記憶装置及び不揮発性メモリに対するデータ書き込み方法
US7159069B2 (en) * 2004-06-23 2007-01-02 Atmel Corporation Simultaneous external read operation during internal programming in a flash memory device

Also Published As

Publication number Publication date
US20070237007A1 (en) 2007-10-11
JP2007305105A (ja) 2007-11-22
US7886211B2 (en) 2011-02-08

Similar Documents

Publication Publication Date Title
JP4524309B2 (ja) フラッシュメモリ用のメモリコントローラ
US9229851B2 (en) Memory controller, semiconductor memory device and control method thereof
US20150019933A1 (en) Memory controller, storage device, and memory control method
US20080082872A1 (en) Memory controller, memory system, and data transfer method
US20170052734A1 (en) Method and device for fail-safe erase of flash memory
JP2008226245A (ja) フラッシュメモリに基づくメモリシステム
JP2008198310A (ja) ビットエラーの修復方法および情報処理装置
JP5950286B2 (ja) アドレス変換テーブルを書き込む装置及び方法
JP4956230B2 (ja) メモリコントローラ
US20150095552A1 (en) Memory system for mirroring data
JP2009301194A (ja) 半導体記憶装置の制御システム
US20130166991A1 (en) Non-Volatile Semiconductor Memory Device Using Mats with Error Detection and Correction and Methods of Managing the Same
JP5592478B2 (ja) 不揮発性記憶装置及びメモリコントローラ
US11467758B2 (en) Data writing method using different programming modes based on the number of available physical erasing units, memory control circuit unit and memory storage device
JP2010079856A (ja) 記憶装置およびメモリ制御方法
US8533549B2 (en) Memory system and computer system
JP2008191701A (ja) エラー回復処理方法および情報処理装置
JP4357305B2 (ja) 外部記憶装置
JP4544167B2 (ja) メモリコントローラおよびフラッシュメモリシステム
JP4655034B2 (ja) メモリコントローラ及びフラッシュメモリシステム並びにフラッシュメモリの制御方法
JPWO2010013437A1 (ja) 誤り訂正機能付きコントローラ、誤り訂正機能付き記憶装置、及び誤り訂正機能付きシステム
JP2010128697A (ja) メモリシステム
JP2002244932A (ja) 制御装置
US10922025B2 (en) Nonvolatile memory bad row management
CN110134322B (zh) 运用dram的储存装置及其相关数据处理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090727

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120216

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120316

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

Free format text: PAYMENT UNTIL: 20150323

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees