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

メモリコントローラ Download PDF

Info

Publication number
JP4908083B2
JP4908083B2 JP2006182633A JP2006182633A JP4908083B2 JP 4908083 B2 JP4908083 B2 JP 4908083B2 JP 2006182633 A JP2006182633 A JP 2006182633A JP 2006182633 A JP2006182633 A JP 2006182633A JP 4908083 B2 JP4908083 B2 JP 4908083B2
Authority
JP
Japan
Prior art keywords
memory
data
memory controller
error
threshold
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
JP2006182633A
Other languages
English (en)
Other versions
JP2008009944A (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 JP2006182633A priority Critical patent/JP4908083B2/ja
Priority to US11/770,320 priority patent/US20080046778A1/en
Priority to TW096123527A priority patent/TW200809487A/zh
Publication of JP2008009944A publication Critical patent/JP2008009944A/ja
Application granted granted Critical
Publication of JP4908083B2 publication Critical patent/JP4908083B2/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)
  • Read Only Memory (AREA)

Description

この発明はメモリコントローラに係わり、特に、引っ越し処理を行なうメモリコントローラに関する。
近年、デジタルカメラや携帯型オーディオプレーヤの急速な普及により、大容量の不揮発性半導体メモリの需要が拡大している。そして、不揮発性半導体メモリとしてNAND型フラッシュメモリが広く使用されている。
NAND型フラッシュメモリにおいては、データは複数のメモリセルにつき一括して消去される。この消去単位をメモリブロックと呼ぶ。NAND型フラッシュメモリではその特性上、データを上書きすることができない。従って、データを更新する際には、データ消去済みのメモリブロックに新規に更新データを書き込まなければならない。更新しなかったデータについては、更新前のデータが記録されたメモリブロックからデータを読み出し、更新データが書き込まれたブロックに書き戻す必要がある。これを本明細書ではデータの“引っ越し処理”と呼ぶ。引っ越し処理はページコピーコマンドに従って開始される。
このようなページコピーコマンドを用いた引っ越し処理を行なう場合、現状では読み出したデータにECCエラーが検出されると、メモリコントローラは、該当データについてはエラーを訂正し、エラー訂正後のデータをNAND型フラッシュメモリに送り、エラー訂正後のデータを更新データが書き込まれたブロックに書き戻すようにしている。
NAND型フラッシュメモリの微細化に伴いエラー発生率は増加する傾向にある。本来高速に引っ越し処理が行なえるはずのページコピーコマンドを用いている場合でも、エラー訂正のための再データインが頻繁に発生し、思うような高速化が実現できなくなっていた。
この発明は、引っ越し処理に要する時間を短縮、もしくは増大を抑制することが可能なメモリコントローラを提供する。
この発明の一態様に係るメモリコントローラは、メモリに接続可能であり、前記メモリを制御するメモリコントローラであって、前記メモリから読み出した読み出しデータ及びこの読み出しデータのECCパリティが入力されるメモリインターフェースと、前記インターフェースからの前記読み出しデータ及び前記ECCパリティが入力され、前記ECCパリティに基き、前記読み出しデータ中のエラーの有無、及びこのエラーの訂正情報を生成するECCコアと、前記修正情報と、前記インターフェースからの前記読み出しデータとが入力され、前記読み出しデータ中にエラーがあった場合に、前記訂正情報に従って前記読み出しデータを訂正処理するバッファと、を備え、前記メモリからのデータリードが前記メモリ内の引っ越し処理であるとき、前記エラーの数が閾値未満、又は前記閾値以下の場合には前記訂正処理を省略し、前記エラーの数が前記閾値以上、又は前記閾値を超える場合には前記訂正処理を実行し、前記メモリからのデータリードがホストに対するデータリード処理であるとき、前記エラーの数が閾値未満、又は閾値以下に関らずに前記訂正処理を実行し、訂正処理された読み出しデータを前記ホストに出力する
この発明によれば、引っ越し処理に要する時間を短縮、もしくは増大を抑制することが可能なメモリコントローラを提供できる。
以下、この発明の実施形態を、図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
(第1実施形態)
この発明の第1実施形態を、メモリコントローラを備える電子機器、例えば、メモリカードに組み込まれたメモリコントローラを例にして説明する。
まず、この発明を適用できるメモリカードの一例を説明する。
(メモリカードの一例)
図1は、メモリカードの一例を示す図である。
図1に示すように、メモリカード100は、ホスト機器200と、バスインタフェース600を介してデータを送受信する。メモリカード100は、ホスト機器200に設けられたスロットに対して挿抜可能に形成される。
メモリカード100は、メモリコントローラ300と、不揮発性半導体メモリ(以下フラッシュメモリ)400と、カード端子500とを備える。
メモリコントローラ300は、フラッシュメモリ400を制御する。フラッシュメモリ400の一例は、NAND型フラッシュメモリである。
カード端子500は、メモリコントローラ300に電気的に接続される信号ピンであり、メモリカード100の外部ピンとして機能する。本例のカード端子500は、複数の信号ピン(第1ピン乃至第9ピン)を備える。第1ピン〜第9ピンに対する信号の割り当ての一例を、図2に示す。
図2に示すように、データ0乃至データ3は、第7ピン、第8ピン、第9ピン、及び第1ピンにそれぞれ割り当てられる。なお、第1ピンは、データ3だけでなく、カード検出信号に対しても割り当てられる。さらに、第2ピンはコマンドに割り当てられ、第3ピン、及び第6ピンは接地電位Vssに、第4ピンは電源電位Vddに、第5ピンはクロック信号に割り当てられる。
外部端子500、及びバスインタフェース600は、ホスト機器200内のホスト機器コントローラ(図示せず)と、メモリカード100との通信に使用される。例えば、ホスト機器コントローラは、第1ピン乃至第9ピンを介してメモリカード100内のメモリコントローラ300と各種信号、及びデータを通信する。例えば、メモリカード100にデータを書き込むときには、ホスト機器コントローラは、書き込みコマンドを、第2ピンを介してメモリコントローラ300に送信する。このとき、メモリコントローラ300は、第5ピンに供給されるクロック信号に応答して、第2ピンに与えられる書き込みコマンドを取り込む。コマンドの入力に割り当てられる第2ピンは、データ3用の第1ピンと接地電位Vss用の第3ピンとの間に配置される。
これに対し、メモリコントローラ300とフラッシュメモリ400との間の通信は、例えば、8ビットのIO線(データライン)700を介して行われる。
メモリコントローラ300が、フラッシュメモリ400にデータを書き込むときには、メモリコントローラ300は、IO線700を介してデータ入力コマンド80h、カラムアドレス、ページアドレス、データ、及びプログラムコマンド10hをフラッシュメモリ400に順次入力する。ここで、コマンド80hの“h”は16進数を示すものであり、実際には“10000000”という8ビットの信号が、8ビットのIO線700にパラレルに与えられる。また、フラッシュメモリ400に対するコマンドの送信、及びデータの送受信は、ともにIO線700を共用して行われる。
図3は、メモリカードのハード構成の一例を示すブロック図である。
ホスト機器200は、メモリカード100に対してアクセスを行うためのハードウェア、及びソフトウェアを備える。ホスト機器200の例としては、携帯電話、デジタルカメラ(ビデオカメラ、スチルカメラ)、オーディオ機器、オーディオ/ビジュアル機器、ゲーム機器、電子楽器、テレビジョン、パーソナルコンピュータ、パーソナルデジタルアシスタント、ボイスレコーダ、PCカード、及び電子書籍端末等を挙げることができる。
メモリカード100は、ホスト機器200に接続された時に電源供給を受けて動作し、ホスト機器200からのアクセスに応じた処理を行う。
フラッシュメモリ400は、消去時の消去ブロックサイズ(消去単位のブロックサイズ)が所定サイズ(例えば、256kB)に定められている。また、このフラッシュメモリ400に対して、ページと称する単位(例えば、2kB)でデータの書き込み、及び読み出しが行われる。
メモリコントローラ300は、フラッシュメモリ400内部の物理状態(例えば、何処の物理ブロックアドレスに、何番目の論理セクタアドレスデータが含まれているか、あるいは、何処のブロックが消去状態であるか)を管理する。メモリコントローラ300は、ホスト機器インターフェース301、CPU(Central Processing Unit)303、メモリインターフェース(フラッシュインターフェース)305、ROM(Read Only Memory)307、RAM(Random Access Memory)309、バッファ(Buffer)311、及びECCコア(ECC core)313を含む。
ホスト機器インターフェース301は、ホスト機器200とメモリコントローラ300との間のインターフェース処理を行う。
CPU303は、メモリカード100全体の動作を制御する。CPU303は、例えば、メモリカード100が電源供給を受けたときに、ROM307に格納されているファームウェア(制御プログラム)をRAM309上に読み出して所定の処理を実行することにより、各種のテーブルをRAM309上に作成する。
また、CPU303は、書き込みコマンド、読み出しコマンド、消去コマンドをホスト機器200から受け取り、フラッシュメモリ400に対して所定の処理を実行したり、バッファ311を通じたデータ転送処理を制御したりする。
ROM307は、CPU303により制御される制御プログラムなどを格納する。
RAM309は、CPU303の作業エリアとして使用され、制御プログラムや各種のテーブルを記憶する。
メモリインターフェース305は、メモリコントローラ300とフラッシュメモリ400との間のインターフェース処理を行う。
バッファ311は、ホスト機器200から送られてくるデータをフラッシュメモリ400へ書き込む際に、一定量のデータ(例えば、1ページ分)を一時的に記憶したり、フラッシュメモリ400から読み出されるデータをホスト機器200へ送り出す際に、一定量のデータを一時的に記憶したりする。
ECCコア313は、フラッシュメモリ400へデータを書き込む際、ホスト機器200から送られてくるデータからECCパリティを生成し、フラッシュメモリ400からデータを読み出す際、書き込んだデータと読み出したデータとの間にエラーがある場合には、ECCパリティに基づいて、エラーを検知して訂正する。
本例のメモリコントローラは、フラッシュメモリ400からのデータリードが、フラッシュメモリ400の引っ越し処理であるとき、読み出したデータ中のエラーの数が閾値未満、又は閾値以下の場合には訂正処理を省略する。反対に、エラーの数が閾値以上、又は閾値を超える場合には訂正処理を実行する。
このように、本例では、フラッシュメモリ400内の引っ越し処理であるとき、現状では、読み出したデータにエラーがあれば逐一訂正してところを、エラーの数が閾値未満、又は閾値以下の場合には、エラーの訂正を省略するようにする。これにより、例えば、逐一訂正する場合に比較して、エラー訂正に要する演算処理と、エラー訂正のための、例えば、フラッシュメモリ400への再データ入力を減らすことができる。演算処理と、再データ入力が減ることで、引っ越し処理に要する時間を短縮すること、もしくは引っ越し処理に要する時間の増大を抑制することができる。
以下、より具体的に説明する。
図4は、メモリカードに利用されるページフォーマットの一例を示す図である。
図4に示すように、一例に係るページフォーマットは、1ページ中に、複数のブロックを含む。本例ではn個のブロックを含む。ブロックは、何ビット毎にECCパリティを付加するかの単位である。
ページコピーコマンドを用いた引っ越し処理を行なうとき、引っ越し処理の書き戻し処理方法は、図4に示すページ単位で一括して書き戻す場合と、図4に示すブロック単位で個別に書き戻す場合との2通りがある。以下、2通りの方法に従って順次説明する。
(第1例:ページ単位一括書き戻し)
図5は、この発明の第1実施形態に係るメモリコントローラが実行する引っ越し処理シーケンスの第1例を示す流れ図である。
図5に示すように、まず、エラー位置情報を初期化する(St.1)。エラー位置の情報は、例えば、図3に示したRAM309に記録しておけば良い。この場合、RAM309が有するメモリ領域のうち、エラー位置情報が記録されたメモリ領域の情報を初期化(クリア)すれば良い。
次に、フラッシュメモリ400からメモリインターフェース305に、図4に示したブロック単位のデータと、このブロック単位のデータのECCパリティとを読み出す。メモリインターフェース305は、ブロック単位のデータをバッファ311に転送するとともに、ブロック単位のデータ及びそのECCパリティをECCコア313に転送する。バッファ311はブロック単位のデータを一時的に保持する。ECCコア313は転送されたブロック単位のデータを、そのECCパリティに基いてECC処理する(St.2)。
次に、ECC処理の結果に基いて、ECCコア313は、検知されたエラー数が閾値を超えるか否か(エラー数>閾値)を判断する(St.3)。この判断はECCコア313が実行しなくても、エラー数と閾値とを比較する比較回路をメモリコントローラ300内に設け、この比較回路を用いて判断するようにしても良い。また、エラー数は閾値以上か(エラー数≧閾値)で判断しても良い。これらの変形は後述する第2例においても同様に適用できる。
エラー数が閾値以下である(No)、と判断された場合にはSt.5に進む。
エラー数が閾値を超える(Yes)、と判断された場合にはSt.4に進む。St.4において、例えば、ECCコア313はエラー数が閾値を超えたことをCPU303に通知する。この通知を受けてCPU303は処理を一旦停止させる。処理が停止されている間に、ECCコア313はCPU303を介して、エラー位置情報を、例えば、RAM309に記録する。エラー位置情報には、訂正すべきブロックの位置、及び訂正すべきブロックの訂正シンボル数が含まれる。記録した後、処理を再開してSt.5に進む。
次に、St.4において、読み出されたデータがページ境界(ページ末尾)であるか、又は最終データであるかを判断する。
ページ境界、又は最終データではない(No)、と判断された場合にはSt.2に戻り、St.2〜St.5を繰り返す。
ページ境界、又は最終データである(Yes)、と判断された場合にはSt.6に進む。
次に、St.6において、バッファ311に一時的に保持された読み出しデータを、フラッシュメモリ400の、例えば、ページバッファに書き戻す。この際、エラー位置情報が記録されたブロックがあれば、このブロックについては訂正したデータを、例えば、バッファ311に再データ入力する。この後、バッファ311に一時的に保持され、再データ入力されたデータを含む読み出しデータを、フラッシュメモリ400の、例えば、ページバッファに書き戻す。
この後、フラッシュメモリ400は、ページバッファに保持された読み出しデータを、メモリセルアレイの該当ページに書き込む。これにより、1ページ分の引っ越し処理が終了する。
図6に、書き戻し処理をページ単位で実行する場合の、データ入出力の一例を示す。図6に示すデータ入出力は、メモリコントローラ300とフラッシュメモリ400との間の、8ビットのIO線700におけるデータ入出力を示している。
図6に示す一例では、まず、コマンド00hを入力した後、引っ越し元アドレスを順次入力する。コマンド30hを入力した後、1ページ分のデータリードが開始される。本例では、512バイト単位でECCパリティが付加されており、512バイト毎にECCチェックが実行され、閾値を超えるエラーがあれば、バッファ311に訂正のための再データ入力が実行される。
コマンド8Chが入力されると、書き戻し処理が開始される。コマンド8Chを入力した後、引っ越し先アドレスを順次入力した後、バッファ311に保持されたデータを、引っ越し先アドレスに書き戻す。
なお、図6に示す一例では、該当ブロックの総入れ替えを実行する例を示しているが、エラー対象カラムのみの変更でも良い。
(第2例:ブロック単位個別書き戻し)
図7は、この発明の第1実施形態に係るメモリコントローラが実行する引っ越し処理シーケンスの第2例を示す流れ図である。
図7に示すように、まず、第1例と同様に、エラー位置情報を初期化する(St.1)。エラー位置情報の記録の仕方は第1例と同様で良い。
次に、フラッシュメモリ400からメモリインターフェース305に、図4に示したブロック単位のデータと、このブロック単位のデータのECCパリティとを読み出す。メモリインターフェース305は、ブロック単位のデータをバッファ311に転送するとともに、ブロック単位のデータ及びそのECCパリティをECCコア313に転送する。バッファ311はブロック単位のデータを一時的に保持する。ECCコア313は転送されたブロック単位のデータを、そのECCパリティに基いてECC処理する(St.2)。
次に、ECC処理の結果に基いて、ECCコア313は、検知されたエラー数が閾値を超えるか否か(エラー数>閾値)を判断する(St.3)。
エラー数が閾値以下である(No)、と判断された場合には、バッファ311へのデータ入力のみとして、St.5に進む。
エラー数が閾値を超える(Yes)、と判断された場合にはSt.4に進む。バッファ311へ、訂正したデータを再データ入力する。この後、バッファ311に再データ入力された訂正読み出しデータを、フラッシュメモリ400の、例えば、ページバッファに書き戻す。この後St.5に進む。
次に、St.5において、読み出されたデータがページ境界(ページ末尾)であるか、又は最終データであるかを判断する。
ページ境界、又は最終データではない(No)、と判断された場合にはSt.2に戻り、St.2〜St.4を繰り返す。
ページ境界、又は最終データである(Yes)、と判断された場合にはSt.6に進む。
次に、St.6において、例えば、メモリコントローラ300のCPU303はフラッシュメモリ400にプログラムコマンドを発行する。フラッシュメモリ400には、エラー訂正が実行されたブロックのみ、データが再入力される。フラッシュメモリ400はプログラムコマンドを受信すると、フラッシュメモリ400のページバッファに保持された読み出しデータを、メモリセルアレイの該当ページに書き込む。これにより、1ページ分の引っ越し処理が終了する。
(第2実施形態)
第2実施形態は、閾値を目的に応じて可変設定可能とする例である。本例では、閾値を、特に、データリードが引っ越し処理か否かに応じて可変とする。
図8は、この発明の第2実施形態に係るメモリコントローラが実行する閾値可変設定シーケンスの一例を示す流れ図である。
図8に示すように、例えば、CPU303にコマンドが入力された、又はCPU303がコマンドを発行した、とする。
次に、St.1において、入力されたコマンド、又は発行したコマンドが、引っ越し処理か否かを判断する。
引っ越し処理ではない(No)、と判断された場合には、閾値を設定せずに、コマンドに従った処理を開始する。
引っ越し処理である(Yes)、と判断された場合には、閾値を設定したのち、コマンドに従った処理を開始する。
このように、閾値を目的に応じて可変設定可能とすること、例えば、本例のように、引っ越し処理に限って閾値を設定すれば、例えば、ホストに対するデータリード処理においては、訂正可能な範囲であれば処理を中断することなく訂正処理してデータを出力することができる。即ち、エラーがあればこのエラーを訂正した後、ホストに送ることができる。
このため、メモリコントローラに、第1実施形態のように、エラーがあっても閾値までは訂正せずに許容する、という処理シーケンスを採用した場合においても、ホストに対するデータリード処理においては、エラーを訂正してホストに送ることができるので、信頼性の高いリード性能を確保することができる。
(第3実施形態)
不揮発性半導体メモリ、例えば、NAND型フラッシュメモリには、ページバッファに書き込まれたデータと、実際にメモリセルに書き込んだデータとの間にエラーがあっても、エラーの数が所定数未満、又は所定数以下であれば、書き込み失敗(フェイル)とせず、書き込み成功(パス)として取り扱うものがある。一般に、“擬似パス機能”と呼ばれる機能である。
擬似パス機能を有する不揮発性半導体メモリの一例においては、例えば、メモリコントローラが4シンボルのエラー検知訂正が可能な場合には、上記エラーの数が、例えば、“1個”までは書き込み成功(パス)として取り扱う。この場合、不揮発性半導体メモリが擬似パスとして許容するエラーの数(以下擬似パス上限値)は“1”である。
また、メモリコントローラが8シンボルのエラー検知訂正が可能な場合には、上記エラーの数が、例えば、“4個”までは書き込み成功(パス)として取り扱う。この場合、擬似パス上限値は“4”である。
メモリコントローラが、擬似パス機能を有した不揮発性半導体メモリをコントロールする場合には、メモリコントローラの閾値は、擬似パス上限値以上の値に設定することが良い。メモリコントローラの閾値を上記擬似パス上限値未満に設定すると、引っ越し処理の際に訂正処理が頻発しやすくなる可能性があるためである。
そこで、第3実施形態に係るメモリコントローラは、不揮発性半導体メモリが擬似パス機能を有するとき、メモリコントローラの閾値は、擬似パス上限値以上の値に設定する。
これにより、不揮発性半導体メモリが擬似パス機能を有するときでも、引っ越し訂正処理が頻発する可能性を軽減することができる。
また、メモリコントローラの閾値の上限値は、ECCコアのエラー検知訂正能力未満に設定することが良い。例えば、ECCコアが4シンボルのエラー検知訂正が可能な場合には、上記閾値の上限値は“3”としてエラー数に1個の余裕を持たせる。この余裕は、引っ越し処理後にエラーが発生する可能性を見込んで、持たせるものである。例えば、ECCコアが4シンボルのエラー検知訂正が可能な場合には、上記閾値の上限値は“4”に設定することも可能である。しかし、“4”に設定してしまうと、引っ越し処理後に1個でもエラーが発生してしまうと、ECCコアのエラー検知訂正能力を超えてしまう。これでは、ECCコアは、エラー検知訂正が不可能になってしまう。
そこで、第3実施形態に係るメモリコントローラは、閾値の上限値を、ECCコアのエラー検知訂正能力未満に設定する。
これにより、引っ越し処理後にエラーが発生した場合でも、ECCコアは、そのエラーを含めて検知訂正することができる。
また、エラー訂正符号の例であるが、エラー検知訂正能力は高いほうが、閾値の上限値を高く設定でき、かつ、エラー数の余裕も大きく設定できるから良い。このようなエラー訂正符号としては、リードソロモン符号を挙げることができる。
このように上記実施形態によれば、引っ越し処理に要する時間を短縮、もしくは増大を抑制することが可能なメモリコントローラを提供できる。
また、上記実施形態は、以下の態様を含む。
(1) メモリに接続可能であり、前記メモリを制御するメモリコントローラであって、
前記メモリから読み出した読み出しデータ及びこの読み出しデータのECCパリティが入力されるメモリインターフェースと、
前記インターフェースからの前記読み出しデータ及び前記ECCパリティが入力され、前記ECCパリティに基き、前記読み出しデータ中のエラーの有無、及びこのエラーの訂正情報を生成するECCコアと、
前記修正情報と、前記インターフェースからの前記読み出しデータとが入力され、前記読み出しデータ中にエラーがあった場合に、前記訂正情報に従って前記読み出しデータを訂正処理するバッファと、を備え
前記メモリからのデータリードが前記メモリ内の引っ越し処理であるとき、前記エラーの数が閾値未満、又は前記閾値以下の場合には前記訂正処理を省略し、前記エラーの数が前記閾値以上、又は前記閾値を超える場合には前記訂正処理を実行するメモリコントローラ。
(2) (1)の態様に係るメモリコントローラにおいて、前記閾値の設定は可変であるメモリコントローラ。
(3) (2)の態様に係るメモリコントローラにおいて、前記メモリからのデータリードがホストに対するデータリード処理であるとき、前記エラーの数が閾値未満、又は閾値以下に関らずに前記訂正処理を実行し、訂正処理された読み出しデータを前記ホストに出力するメモリコントローラ。
(4) (1)乃至(3)いずれか一つの態様に係るメモリコントローラにおいて、前記メモリが擬似パス機能を有するとき、前記閾値は前記メモリの擬似パス上限値以上の値に設定されるメモリコントローラ。
(5) (1)乃至(4)いずれか一つの態様に係るメモリコントローラにおいて、前記閾値の上限値は、前記ECCコアのエラー検知訂正能力未満に設定されるメモリコントローラ。
(6) (1)乃至(5)いずれか一つの態様に係るメモリコントローラにおいて、前記ECCコアのエラー検知訂正符号は、リードソロモン符号であるメモリコントローラ。
以上、この発明をいくつかの実施形態により説明したが、この発明は各実施形態に限定されるものではなく、その実施にあたっては発明の要旨を逸脱しない範囲で種々に変形することが可能である。
また、各実施形態は単独で実施することが可能であるが、適宜組み合わせて実施することも可能である。
また、各実施形態は種々の段階の発明を含んでおり、各実施形態において開示した複数の構成要件の適宜な組み合わせにより、種々の段階の発明を抽出することが可能である。
また、上記実施形態は、この発明を、不揮発性半導体メモリをコントロールするコントローラに適用した例に基づき説明したが、この発明はメモリコントローラに限られるものではなく、このコントローラを内蔵した半導体集積回路装置、例えば、プロセッサ、システムLSI等もまた、この発明の範疇である。
また、不揮発性半導体メモリの一例としてNAND型フラッシュメモリを例示したが、上記実施形態に係わるメモリコントローラによってコントロールされる不揮発性半導体メモリは、NAND型フラッシュメモリに限られるものではなく、AND型、NOR型等、NAND型以外のフラッシュメモリでも良い。
図1はメモリカードの一例を示す図 図2はメモリカードの信号割り当ての一例を示す図 図3はメモリカードのハード構成の一例を示すブロック図 図4はメモリカードに利用されるページフォーマットの一例を示す図 図5はこの発明の第1実施形態に係るメモリコントローラが実行する引っ越し処理シーケンスの第1例を示す流れ図 図6は書き戻し処理をページ単位で実行する場合のデータ入出力の一例を示す図 図7はこの発明の第1実施形態に係るメモリコントローラが実行する引っ越し処理シーケンスの第2例を示す流れ図 図8は、この発明の第2実施形態に係るメモリコントローラが実行する閾値可変設定シーケンスの一例を示す流れ図
符号の説明
300…メモリコントローラ、305…メモリインターフェース、313…ECCコア、311…バッファ。

Claims (4)

  1. メモリに接続可能であり、前記メモリを制御するメモリコントローラであって、
    前記メモリから読み出した読み出しデータ及びこの読み出しデータのECCパリティが入力されるメモリインターフェースと、
    前記インターフェースからの前記読み出しデータ及び前記ECCパリティが入力され、前記ECCパリティに基き、前記読み出しデータ中のエラーの有無、及びこのエラーの訂正情報を生成するECCコアと、
    前記修正情報と、前記インターフェースからの前記読み出しデータとが入力され、前記読み出しデータ中にエラーがあった場合に、前記訂正情報に従って前記読み出しデータを訂正処理するバッファと、を備え
    前記メモリからのデータリードが前記メモリ内の引っ越し処理であるとき、前記エラーの数が閾値未満、又は前記閾値以下の場合には前記訂正処理を省略し、前記エラーの数が前記閾値以上、又は前記閾値を超える場合には前記訂正処理を実行し、
    前記メモリからのデータリードがホストに対するデータリード処理であるとき、前記エラーの数が閾値未満、又は閾値以下に関らずに前記訂正処理を実行し、訂正処理された読み出しデータを前記ホストに出力する、
    ことを特徴とするメモリコントローラ。
  2. 前記閾値の設定は可変であることを特徴とする請求項1に記載のメモリコントローラ。
  3. 前記メモリが擬似パス機能を有するとき、前記閾値は前記メモリの擬似パス上限値以上の値に設定されることを特徴とする請求項1または請求項に記載のメモリコントローラ。
  4. 前記閾値の上限値は、前記ECCコアのエラー検知訂正能力未満に設定されることを特徴とする請求項1乃至請求項いずれか一項に記載のメモリコントローラ。
JP2006182633A 2006-06-30 2006-06-30 メモリコントローラ Expired - Fee Related JP4908083B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006182633A JP4908083B2 (ja) 2006-06-30 2006-06-30 メモリコントローラ
US11/770,320 US20080046778A1 (en) 2006-06-30 2007-06-28 Memory controller and semiconductor memory device
TW096123527A TW200809487A (en) 2006-06-30 2007-06-28 Memory controller and semiconductor memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006182633A JP4908083B2 (ja) 2006-06-30 2006-06-30 メモリコントローラ

Publications (2)

Publication Number Publication Date
JP2008009944A JP2008009944A (ja) 2008-01-17
JP4908083B2 true JP4908083B2 (ja) 2012-04-04

Family

ID=39068050

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006182633A Expired - Fee Related JP4908083B2 (ja) 2006-06-30 2006-06-30 メモリコントローラ

Country Status (3)

Country Link
US (1) US20080046778A1 (ja)
JP (1) JP4908083B2 (ja)
TW (1) TW200809487A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10249381B2 (en) 2017-03-09 2019-04-02 Toshiba Memory Corporation Semiconductor memory device and data write method

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7770079B2 (en) 2007-08-22 2010-08-03 Micron Technology Inc. Error scanning in flash memory
US20090106513A1 (en) * 2007-10-22 2009-04-23 Chuang Cheng Method for copying data in non-volatile memory system
JP4987962B2 (ja) * 2008-02-29 2012-08-01 株式会社東芝 情報処理装置及び不揮発性半導体メモリドライブ
US7870446B2 (en) 2008-02-29 2011-01-11 Kabushiki Kaisha Toshiba Information processing apparatus and nonvolatile semiconductor memory drive
JP5657242B2 (ja) * 2009-12-09 2015-01-21 株式会社東芝 半導体装置及びメモリシステム
JP4837121B1 (ja) * 2010-06-23 2011-12-14 株式会社東芝 データ記憶装置及びデータ書き込み方法
JP2013222236A (ja) * 2012-04-13 2013-10-28 Hitachi Ltd メモリの管理方法、記憶装置およびそれを搭載した計算機
JPWO2015029230A1 (ja) * 2013-08-30 2017-03-02 株式会社日立製作所 記憶装置及びデータ制御方法
US9411668B2 (en) * 2014-01-14 2016-08-09 Nvidia Corporation Approach to predictive verification of write integrity in a memory driver
US9811415B2 (en) * 2014-03-31 2017-11-07 Symbol Technologies, Llc Apparatus and method for detecting and correcting read disturb errors on a flash memory
KR102193682B1 (ko) * 2014-08-01 2020-12-21 삼성전자주식회사 선택적 ecc 기능을 갖는 반도체 메모리 장치
KR102659892B1 (ko) 2018-07-24 2024-04-24 삼성전자주식회사 객체 인식 장치, 이를 포함하는 전자 장치 및 객체 인식 방법

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2970994B2 (ja) * 1994-05-25 1999-11-02 三洋電機株式会社 誤り訂正復号回路
JP2001357682A (ja) * 2000-06-12 2001-12-26 Sony Corp メモリシステムおよびそのプログラム方法
JP4323707B2 (ja) * 2000-10-25 2009-09-02 富士通マイクロエレクトロニクス株式会社 フラッシュメモリの欠陥管理方法
JP4034949B2 (ja) * 2001-09-06 2008-01-16 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
JP3851865B2 (ja) * 2001-12-19 2006-11-29 株式会社東芝 半導体集積回路
EP1355234B1 (en) * 2002-04-15 2016-06-29 Micron Technology, Inc. Use of an error correction circuit in program and erase verify procedures
US7003698B2 (en) * 2002-06-29 2006-02-21 Intel Corporation Method and apparatus for transport of debug events between computer system components
JP4236485B2 (ja) * 2003-03-06 2009-03-11 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
KR100543447B1 (ko) * 2003-04-03 2006-01-23 삼성전자주식회사 에러정정기능을 가진 플래쉬메모리장치
US7664987B2 (en) * 2003-05-25 2010-02-16 Sandisk Il Ltd. Flash memory device with fast reading rate
JP4220319B2 (ja) * 2003-07-04 2009-02-04 株式会社東芝 不揮発性半導体記憶装置およびそのサブブロック消去方法
US7012835B2 (en) * 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US7188296B1 (en) * 2003-10-30 2007-03-06 Sun Microsystems, Inc. ECC for component failures using Galois fields
JP4041076B2 (ja) * 2004-02-27 2008-01-30 株式会社東芝 データ記憶システム
JP2006048783A (ja) * 2004-08-02 2006-02-16 Renesas Technology Corp 不揮発性メモリおよびメモリカード
JP4261462B2 (ja) * 2004-11-05 2009-04-30 株式会社東芝 不揮発性メモリシステム
JP4261461B2 (ja) * 2004-11-05 2009-04-30 株式会社東芝 半導体集積回路装置、及びそれを用いた不揮発性メモリシステム
US7831882B2 (en) * 2005-06-03 2010-11-09 Rambus Inc. Memory system with error detection and retry modes of operation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10249381B2 (en) 2017-03-09 2019-04-02 Toshiba Memory Corporation Semiconductor memory device and data write method

Also Published As

Publication number Publication date
US20080046778A1 (en) 2008-02-21
TW200809487A (en) 2008-02-16
JP2008009944A (ja) 2008-01-17

Similar Documents

Publication Publication Date Title
JP4908083B2 (ja) メモリコントローラ
US10361722B2 (en) Semiconductor memory device performing randomization operation
JP4901334B2 (ja) メモリコントローラ
US8271515B2 (en) System and method for providing copyback data integrity in a non-volatile memory system
JP6022756B2 (ja) 不揮発性メモリ装置の読み出し方法及びメモリコントローラの動作方法
US8949690B2 (en) Memory controller
US9543983B2 (en) Decoding method, memory storage device and memory control circuit unit
US20170052734A1 (en) Method and device for fail-safe erase of flash memory
JP2003076615A (ja) 不揮発性半導体記憶装置
US10116335B2 (en) Data processing method, memory storage device and memory control circuit unit
JP2012137994A (ja) メモリシステムおよびその制御方法
US10782920B2 (en) Data access method, memory storage apparatus and memory control circuit unit
US9507658B2 (en) Data reading method, memory storage device and memory controlling circuit unit
US11080134B2 (en) Memory controller and memory system including the same
US10565052B2 (en) Data protecting method, memory control circuit unit and memory storage apparatus
TWI467590B (zh) 資料處理方法、記憶體控制器及記憶體儲存裝置
US11082068B2 (en) Error correction circuit, memory controller having error correction circuit, and memory system having memory controller
US20110154162A1 (en) Data writing method for a flash memory, and flash memory controller and flash memory storage apparatus using the same
JP7186262B2 (ja) 共有データ統計情報を使用したコンテンツアウェア復号(Content Aware Decoding)
KR20230171128A (ko) 비휘발성 메모리 장치의 프로그램 상태에 대응하여 데이터를 읽는 장치 및 방법
JP2010128697A (ja) メモリシステム
KR20210125294A (ko) 에러 정정 회로 및 이의 동작 방법
CN117608501B (zh) 电压调整方法、存储器存储装置及存储器控制电路单元
US11409596B1 (en) Encoding control method, memory storage device and memory control circuit unit
US20230281114A1 (en) Memory control method, memory storage device and memory control circuit unit

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111104

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

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

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

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees