JP2008102693A - メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法 - Google Patents

メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法 Download PDF

Info

Publication number
JP2008102693A
JP2008102693A JP2006284003A JP2006284003A JP2008102693A JP 2008102693 A JP2008102693 A JP 2008102693A JP 2006284003 A JP2006284003 A JP 2006284003A JP 2006284003 A JP2006284003 A JP 2006284003A JP 2008102693 A JP2008102693 A JP 2008102693A
Authority
JP
Japan
Prior art keywords
error
flash memory
error correction
data
parallel
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
JP2006284003A
Other languages
English (en)
Other versions
JP4582078B2 (ja
Inventor
Hidetomo Hasegawa
英知 長谷川
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.)
TDK Corp
Original Assignee
TDK 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 TDK Corp filed Critical TDK Corp
Priority to JP2006284003A priority Critical patent/JP4582078B2/ja
Publication of JP2008102693A publication Critical patent/JP2008102693A/ja
Application granted granted Critical
Publication of JP4582078B2 publication Critical patent/JP4582078B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】 複数個のフラッシュメモリに並行してアクセスする場合に、エラー訂正回路の回路規模が増大するのを抑制することができるメモリコントローラ、当該メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法を提供する。
【解決手段】 複数個のフラッシュメモリに対して並行してアクセスする構成のフラッシュメモリシステムで、前記フラッシュメモリから読み出したデータに含まれる誤りの有無を判断する誤り検出手段と、前記フラッシュメモリから読み出したデータに含まれる誤りを訂正する誤り訂正手段と、前記誤り検出手段で誤りが含まれていると判断されたデータだけが、前記誤り訂正手段で誤り訂正が行われるように制御する制御手段とを備え、前記誤り検出手段の個数は、並行してアクセスされる前記フラッシュメモリの個数と同数にし、前記誤り訂正手段の個数は、並行してアクセスされる前記フラッシュメモリの個数より少なくする。
【選択図】図3

Description

本発明は、メモリコントローラ及び当該メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法に関する。
従来、フラッシュメモリから読み出したデータに含まれる誤りを検出、訂正する方法として、誤り訂正符号(エラーコレクションコード)に基づいて誤りを検出、訂正する方法が知られている。この誤り訂正符号としては、リードソロモン符号、ハミング符号、BCH符号等がある。リードソロモン符号を用いたエラー訂正では、ハミング符号を用いたエラー訂正よりエラー訂正処理能力が高く、効率的なエラー訂正が可能であった。(例えば、特許文献1参照)。また、複数のフラッシュメモリを有する半導体ディスク装置では、複数のフラッシュメモリに並行してアクセスすることにより、アクセス速度の高速化がなされていた。(例えば、特許文献2参照)。
特開2006−127441 特開2004−240993
複数個のフラッシュメモリに並行してアクセスする場合、並行してアクセスされるフラッシュメモリと同数のエラー訂正回路が必要になる。従って、複数個のフラッシュメモリに並行してアクセスする半導体ディスク装置では、エラー訂正回路の回路規模が大きくなってしまっていた。
本発明は、かかる実情に鑑み、複数個のフラッシュメモリに並行してアクセスする場合に、エラー訂正回路の回路規模が増大するのを抑制することができるメモリコントローラ、当該メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法を提供しようとするものである。
上記目的を達成するために、本発明によるメモリコントローラは、ホストシステムから与えられる指示情報に応じて、複数個のフラッシュメモリに対する並行したアクセスを制御するメモリコントローラであって、前記フラッシュメモリから読み出したデータに含まれる誤りの有無を判断する誤り検出手段と、前記フラッシュメモリから読み出したデータに含まれる誤りを訂正する誤り訂正手段と、前記誤り検出手段で誤りが含まれていると判断されたデータだけが、前記誤り訂正手段で誤り訂正が行われるように制御する制御手段とを備え、前記誤り検出手段の個数が並行してアクセスされる前記フラッシュメモリの個数と同数であり、前記誤り訂正手段の個数が並行してアクセスされる前記フラッシュメモリの個数より少ないことを特徴とする。
このような構成にすることにより、誤り訂正手段に対応する回路の回路規模が増大するのを抑制することができる。また、本発明は、リードソロモン符号、BCH符号等の符号化方式で生成された誤り訂正符号に基づいて誤り検出と誤り訂正を行う回路のように、誤り検出手段に対応する回路と誤り訂正手段に対応する回路を分離して形成することができれば、誤り訂正符号の符号化方式に限定されることなく実施することができる。
尚、前記誤り訂正手段には2個以上の前記誤り検出手段が割り当てられ、いずれかの前記誤り検出手段で誤りが含まれていると判断されたデータは、該誤り検出手段に割り当てられている前記誤り訂正手段で誤り訂正が行われることが好ましい。また、前記制御手段は、前記ホストシステムから読み出される順番が先のデータの誤り訂正が先に行われるように制御することが好ましい。
本発明によるフラッシュメモリシステムは、上記いずれかのメモリコントローラと複数個のフラッシュメモリとを備えることを特徴としている。
本発明によるフラッシュメモリの制御方法は、ホストシステムから与えられる指示情報に応じて、複数個のフラッシュメモリに対する並行したアクセスを制御するフラッシュメモリの制御方法であって、前記フラッシュメモリから読み出したデータに含まれる誤りの有無を判断する誤り検出ステップと、前記フラッシュメモリから読み出したデータに含まれる誤りを訂正する誤り訂正ステップとを有し、前記誤り検出ステップは、並行してアクセスされる前記フラッシュメモリから読み出したデータに対して並行して行われ、前記誤り訂正ステップは、並行してアクセスされる前記フラッシュメモリから読み出したデータに対して予め設定された順番で行われることを特徴とする。
尚、前記順番は、前記ホストシステムから読み出される順番が先のデータの誤り訂正が先に行われるように設定されていることが好ましい。
本発明のメモリコントローラ及びフラッシュメモリシステムによれば、誤り訂正するための回路の個数を並行してアクセスされる前記フラッシュメモリの個数より少なくしたので、複数個のフラッシュメモリに並行してアクセスする構成で、エラー訂正回路の回路規模が増大するのを抑制することができる。
また、本発明のフラッシュメモリの制御方法によれば、誤りを検出する処理は、並行してアクセスされる複数個のフラッシュメモリから読み出したデータに対して並行して行われ、誤りを訂正する処理は、並行してアクセスされる複数個のフラッシュメモリから読み出したデータに対して予め設定された順番で行われる。従って、誤りを検出する処理で読み出したデータに誤りが含まれていた場合は、予め設定された順番で効率的に誤りの訂正を行うことができる。
以下、本発明の実施の形態を、図面を参照して説明する。図1は、本発明に係るフラッシュメモリシステム1を概略的に示すブロック図である。図1に示すように、フラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するメモリコントローラ3で構成されている。
なお、フラッシュメモリシステム1は、外部バス13を介してホストシステム4と接続される。ホストシステム4は、ホストシステム4の全体の動作を制御するためのCPU(Central Processing Unit)、フラッシュメモリシステム1との情報の授受を担うコンパ
ニオンチップ等から構成される。ホストシステム4は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。
フラッシュメモリ2は複数チップのNAND型フラッシュメモリからなり、本実施の形態ではフラッシュメモリ2Aとフラッシュメモリ2Bの2チップからなる。NAND型フラッシュメモリは、不揮発性メモリであり、レジスタとメモリセルとの間でデータの複写を行って、データの書き込み又は読み出しを行う。
メモリセルアレイは、複数のメモリセル群と、ワード線とを備える。各メモリセル群は、複数のメモリセルが直列に接続されたものである。ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、データの複写、即ち、レジスタから選択されたメモリセルへの複写又は選択されたメモリセルからレジスタへのデータの複写が行われる。
メモリセルアレイを構成するメモリセルは、2つのゲートを備えたMOSトランジスタによって構成される。ここで、一方のゲートが、コントロールゲートと呼ばれ、他方のゲートがフローティングゲートと呼ばれている。このフローティングゲートに電荷(電子)を注入若しくはこのフローティングゲートから電荷(電子)を排出することによって、データの書き込み若しくはデータの消去が行われる。
又、このフローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。なお、フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧をコントロールゲートとフローティングゲート間に印加する。また、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧をコントロールゲートとフローティングゲート間に印加する。
ここで、フローティングゲートに電子が注入されている状態が書き込み状態であり、論理値「0」に対応する。また、フローティングゲートから電子が排出されている状態が消去状態であり、論理値「1」に対応する。
NAND型フラッシュメモリでは、データ読み出し動作及びデータ書き込み動作はページ単位で行われ、データ消去動作はブロック(物理ブロック)単位でおこなわれる。尚、物理ブロックは複数のページで構成され、大ブロックの場合は、1個のページが4セクタ(2048バイト)のユーザ領域と64バイトの冗長領域とで構成され、1個の物理ブロックが64個のページで構成されている。又、小ブロックの場合は、1個のページが1セクタ(512バイト)のユーザ領域と16バイトの冗長領域とで構成され、1個の物理ブロックが32個のページで構成されている。又、大ブロックの場合は、ユーザ領域を4分割した512バイトの領域をサブページといい、各サブページに冗長領域内の一部の領域を割り当てて使用する。従って、大ブロックの場合は、1個の物理ブロックに256個のサブページが含まれている。
一方、ホストシステム4側のアドレス空間は、セクタ(512バイト)単位で分割した領域に付けた通番であるLBA(Logical Block Address)で管理されている。メモリコントローラ3内では、複数個のセクタをまとめたものを論理ブロックとし、この論理ブロックと物理ブロックの対応関係を管理することにより、ホストシステム4側の論理アドレスをフラッシュメモリ2側の物理アドレスに変換している。
ユーザ領域はホストシステム4から与えられるデータを記憶するための領域である。冗長領域は、誤り訂正符号(ECC:Error Correcting Code)、論理アドレス情報、ブロックステータス(フラグ)等の付加データを記憶するための領域である。誤り訂正符号は、ユーザ領域に記憶されているデータに含まれる誤りを検出、訂正するためのデータであり、誤り訂正符号生成器20により生成される。誤り訂正符号生成器20の詳細については後述する。
論理アドレス情報は、ユーザ領域に有効なデータが格納されている物理ブロックと対応関係にある論理ブロックを特定するための情報である。なお、ユーザ領域に有効なデータが格納されていない物理ブロックについては、そのブロックの冗長領域に、論理アドレス情報は格納されていない。したがって、冗長領域に論理アドレス情報が格納されているか否かを判定することにより、その冗長領域が含まれている物理ブロックに有効なデータが格納されているか否かを判定することができる。つまり、冗長領域に論理アドレス情報が格納されていないとき、その物理ブロックには、有効なデータが格納されていないと判断する。
尚、論理ブロックと物理ブロックとの対応関係は通常、アドレス変換テーブルによって管理される。このアドレス変換テーブルは、各物理ブロックの冗長領域に記憶されている論理アドレス情報に基づいて作成される。
ブロックステータス(フラグ)は、ブロックの良否を示すフラグである。正常にデータの書き込み等を行うことができないブロックは、不良ブロックと判別され、冗長領域には、不良ブロックであることを示すブロックステータス(フラグ)が書き込まれる。
このようなフラッシュメモリ2A、2Bは、それぞれメモリコントローラ3から、データ、アドレス情報、内部コマンド等を受信して、データの読み出し処理、書き込み処理、ブロック消去処理、転送処理等の各処理を行う。
ここで、内部コマンドとは、メモリコントローラ3がフラッシュメモリ2A、2Bに処理の実行を指示するためのコマンドであり、フラッシュメモリ2A、2Bは、メモリコントローラ3から与えられる内部コマンドに従って動作する。これに対して、外部コマンドとは、ホストシステム4がフラッシュメモリシステム1に対して処理の実行を指示するためのコマンドである。
メモリコントローラ3は、図1に示すように、マイクロプロセッサ6と、ホストインタフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリインタフェースブロック10と、ECCブロック11と、ROM(Read Only Memory)12と、から構成される。これら機能ブロックによって構成されるメモリコントローラ3は、一つの半導体チップ上に集積される。以下に各機能ブロックについて説明する。
マイクロプロセッサ6は、ROM12に記憶されているプログラムに従って、メモリコントローラ3の全体の動作を制御する。例えば、マイクロプロセッサ6は、各種処理等を定義したコマンドセットをROM12から読み出してフラッシュメモリインタフェースブロック10に供給し、フラッシュメモリインタフェースブロック10に処理を実行させる。
ホストインタフェースブロック7は、ホストシステム4との間の、データ、アドレス情報、ステータス情報、外部コマンド等の授受を行なう。ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインタフェースブロック7を入口としてフラッシュメモリシステム1の内部(例えば、バッファ9)に取り込まれる。また、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインタフェースブロック7を出口としてホストシステム4に供給される。
ワークエリア8は、フラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成される。
バッファ9は、フラッシュメモリ2A、2Bから読み出されたデータ及びフラッシュメモリ2A、2Bに書き込むべきデータを一時的に蓄積する。フラッシュメモリ2A、2Bから読み出されたデータは、ホストシステム4が受け取り可能な状態となるまでバッファ9に保持される。フラッシュメモリ2A、2Bに書き込むべきデータは、それぞれフラッシュメモリ2A、2Bが書き込み可能な状態となるまでバッファ9に保持される。
フラッシュメモリインタフェースブロック10は、内部バス14を介して、フラッシュメモリ2とデータ、アドレス情報、ステータス情報、内部コマンド等の授受を行う。
ECCブロック11は、フラッシュメモリ2A、2Bに書き込むデータ(ユーザデータ)に付加される誤り訂正符号(ECC)を生成するとともに、フラッシュメモリ2から読み出したデータに付加された誤り訂正符号(ECC)に基づいて、読み出したデータに含まれる誤りを検出・訂正する。本実施の形態では、リードソロモン符号方式で符号化された誤り訂正符号(以下、リードソロモン符号の誤り訂正符号と言う)を用いて、誤りの検出と訂正を行っている。
ROM12は、マイクロプロセッサ6による処理の手順を定義するプログラムを格納する不揮発性の記憶素子である。例えば、アドレス変換テーブルの作成等の処理手順を定義するプログラムが格納される。
ここで、ECCブロック11の詳細について説明する。ECCブロック11は、データを書き込む際に用いられる誤り訂正符号生成器20と、データを読み出す際に用いられる誤り訂正器30とを有する。誤り訂正符号生成器20は、入力されたデータに基づいて、リードソロモン符号の誤り訂正符号(ECC)を生成する。誤り訂正器30は、フラッシュメモリ2A、2Bから読み出した誤り訂正符号(ECC)に基づいてエラー訂正処理を行う。
誤り訂正符号生成器20の動作を、図2を参照して説明する。図2は、ECCブロック11の構成のうち誤り訂正符号生成器20(20A、20B)のみを記載している。誤り訂正符号生成器20A、20Bは受け取ったユーザデータからエラー訂正のための誤り訂正符号(ECC)を生成する。ここで、バッファ9からフラッシュメモリ2Aに転送されるユーザデータは、誤り訂正符号生成器20Aに入力される。一方、バッファ9からフラッシュメモリ2Bに転送されるユーザデータは、誤り訂正符号生成器20Bに入力される。つまり、フラッシュメモリ2Aに書き込まれるユーザデータの誤り訂正符号(ECC)は誤り訂正符号生成器20Aで生成され、フラッシュメモリ2Bに書き込まれるユーザデータの誤り訂正符号(ECC)は誤り訂正符号生成器20Bで生成される。尚、誤り訂正符号生成器20Aで生成された誤り訂正符号(ECC)は、フラッシュメモリ2Aの冗長領域に書き込まれ、誤り訂正符号生成器20Bで生成された誤り訂正符号(ECC)は、フラッシュメモリ2Bの冗長領域に書き込まれる。
尚、バッファ9からフラッシュメモリ2Aへのユーザデータの転送とバッファ9からフラッシュメモリ2Bへのユーザデータの転送は並行して行われる。フラッシュメモリ2Aに接続されている内部バス14Aとフラッシュメモリ2Bに接続されている内部バス14Bは独立していることが好ましいが、双方に接続されている内部バス14を時分割で使用してもよい。時分割で共用する場合は、例えば、フラッシュメモリ2Aに転送する1セクタのデータに含まれるデータと、フラッシュメモリ2Bに転送する1セクタのデータに含まれるデータを、1バイト単位で交互に転送する。
誤り符号生成器20A、20Bに入力されたユーザデータは、リードソロモン符号の所定のシンボル長に変換される。この所定のシンボル長に変換されたシンボルデータに基づいてリードソロモン符号の誤り訂正符号(ECC)が生成される。更に、消去状態のときの不整合を回避するため、ユーザ領域に書き込まれる1セクタのユーザデータの全ビットが消去状態(論理値の“1”)のときに、冗長領域に書き込まれる誤り訂正符号(ECC)の全ビットが消去状態(論理値の“1”)になるような変換処理が施される。従って、フラッシュメモリ2A、2Bの冗長領域には、この変換処理が施された誤り訂正符号(ECC)が書き込まれる。又、この変換処理が施された誤り訂正符号(ECC)は、所定のシンボル長のシンボルデータからバイト単位のデータに変換されてフラッシュメモリ2A、2Bの冗長領域に書き込まれる。
本実施の形態では、ユーザデータを10ビットのシンボルデータに変換して誤り訂正符号(ECC)を生成している。この変換では、1セクタ(4096ビット)のユーザデータを順次連結した後、10ビット単位で切り出している。又、1セクタ(4096ビット)のユーザデータの末尾に4ビットのダミーデータを付加することにより、1セクタ(4096ビット)のユーザデータを410シンボルのシンボルデータに変換している。又、誤り訂正符号生成器20A、20Bでは、8シンボルの誤り訂正符号(ECC)が生成されるように設定されている。この8シンボルの誤り訂正符号(ECC)に基づいて、5シンボルの誤り検出と4シンボルの誤り訂正をすることができる。
以上に説明したように、ホストシステムから与えられたユーザデータは、バッファ9に保持された後、フラッシュメモリ2A又はフラッシュメモリ2Bに転送される。フラッシュメモリ2Aに書き込まれるユーザデータについては、フラッシュメモリインタフェースブロック10A及び内部バス14Aを介してフラッシュメモリ2Aに転送されると共に、誤り訂正符号生成器20Aに入力される。誤り訂正符号生成器20Aは、入力されたユーザデータに基づいて8シンボルの誤り訂正符号(ECC)を生成する。この8シンボルの誤り訂正符号(ECC)は、上述の変換処理が施された後、10バイトのデータとしてフラッシュメモリ2Aに転送される。
一方、フラッシュメモリ2Bに書き込まれるユーザデータについては、フラッシュメモリインタフェースブロック10B及び内部バス14Bを介してフラッシュメモリ2Bに転送されると共に、誤り訂正符号生成器20Bに入力される。誤り訂正符号生成器20Bは、入力されたユーザデータに基づいて8シンボルの誤り訂正符号(ECC)を生成する。この8シンボルの誤り訂正符号(ECC)は、上述の変換処理が施された後、10バイトのデータとしてフラッシュメモリ2Bに転送される。
次に、誤り訂正器30の動作を、図3を参照して説明する。図3は、ECCブロック11の構成のうち誤り訂正器30のみが記載されている。この誤り訂正器30は、誤り有無計算回路31A、31B、セレクト信号生成回路32、インタフェースセレクタ33及び誤り訂正回路40で構成されている。更に、誤り訂正回路40は、誤り数計算回路41、誤り位置計算回路42及び誤り値計算回路43で構成されている。
フラッシュメモリ2A、2Bからユーザデータを読み出すときには、変換処理が施されている誤り訂正符号(ECC)も読み出される。フラッシュメモリ2Aのユーザ領域から読み出されたユーザデータは、内部バス14A及びフラッシュメモリインタフェースブロック10Aを介してバッファ9に転送されると共に、誤り有無計算回路31Aに入力される。更に、読み出したユーザデータが記憶されていたユーザ領域と対応する冗長領域から変換処理が施されている誤り訂正符号(ECC)が読み出され、誤り有無計算回路31Aに入力される。一方、フラッシュメモリ2Bのユーザ領域から読み出されたユーザデータは、内部バス14B及びフラッシュメモリインタフェースブロック10Bを介してバッファ9に転送されると共に、誤り有無計算回路31Bに入力される。更に、読み出したユーザデータが記憶されていたユーザ領域と対応する冗長領域から変換処理が施されている誤り訂正符号(ECC)が読み出され、誤り有無計算回路31Bに入力される。
誤り有無計算回路31A、31Bでは、入力されたユーザデータが10ビットのシンボルデータに変換される。つまり、入力された1セクタ(4096ビット)のユーザデータは、順次連結された後、10ビット単位で切り出される。又、1セクタ(4096ビット)のユーザデータの末尾には4ビットのダミーデータが付加され、1セクタ(4096ビット)のユーザデータは410シンボルのシンボルデータに変換される。同様に変換処理が施されている誤り訂正符号(ECC)は、10ビットのシンボルデータに変換される。又、変換処理が施されている誤り訂正符号(ECC)については、変換処理が施される前の誤り訂正符号(ECC)に戻す逆変換処理も施される。
誤り有無計算回路31A、31Bは、この410シンボルのシンボルデータと8シンボルの誤り訂正符号(ECC)に基づいて誤り有無を判断する計算処理を実行する。この誤り有無を判断する計算処理も、誤り有無計算回路31A、31Bで並行して行われる。
ユーザデータ又は誤り訂正符号(ECC)に対応する418シンボルに誤りが含まれているときは、誤り有無計算回路31A、31Bから出力される計算結果を示す情報が、インタフェースセレクタ33を介して誤り数計算回路41に入力される。尚、セレクト信号生成回路32は、ホストシステム4から読み出される順番が先のユーザデータの誤り訂正が先に行われるように誤り数計算回路41に入力する順番を制御する。例えば、フラッシュメモリ2A、2Bから並行して読み出されたユーザデータの双方に誤りが含まれていたときに、フラッシュメモリ2Aから読み出されたユーザデータが先にホストシステム4から読み出される場合は、誤り有無計算回路31Aから出力される情報が先に誤り数計算回路41に入力されるように順番を制御する。
誤り数計算回路41は、誤り有無計算回路31Aから与えられた情報に基づいて誤りの有るシンボルデータの数を求める計算処理を実行する。この計算処理で、誤りの有るシンボルデータの数が5シンボル以上であると判断された場合は、ここで誤り訂正の処理が中止される。誤りの有るシンボルデータの数が4シンボル以下であると判断された場合は、誤り数計算回路41から出力される計算結果を示す情報が誤り位置計算回路42に入力される。
誤り位置計算回路42は、誤り数計算回路41から与えられた情報に基づいて、ユーザデータ又は誤り訂正符号(ECC)に対応する418シンボルのうちのどのシンボルデータ(何番目のシンボルデータ)に誤りが有るかを求める計算処理を実行する。誤り位置計算回路42から出力される計算結果を示す情報は、誤り値計算回路43に入力される。
誤り値計算回路43は、誤り位置計算回路42から与えられた情報に基づいて、誤りが有るシンボルデータの正しい値を求める計算処理を実行する。誤りが有るシンボルデータの正しい値が求められると、バッファ9に保持されているユーザデータの誤り訂正が行われる。ここでは、誤り位置計算回路42で求められた誤りが有るシンボルデータに対応する部分のユーザデータの値が、誤り値計算回路43で求めた正しい値に訂正される。つまり、誤りが有るシンボルデータがn(1〜410)番目のときに、n番目のシンボルデータに対応するビットが正しい値に訂正される。
以上詳細に説明したように、本実施の形態によるメモリコントローラ3によれば、並行して読み出されるユーザデータ(フラッシュメモリ2Aとフラッシュメモリ2Bから読み出されるユーザデータ)に誤りが含まれているか否かを判断する処理が誤り検出手段である誤り有無計算回路31Aと誤り有無計算回路31Bで並行して実行される。誤り訂正手段である誤り訂正回路40は、誤り数計算回路41、誤り位置計算回路42及び誤り値計算回路43で構成されている。フラッシュメモリ2Aから読み出されるユーザデータの誤り訂正とフラッシュメモリ2Bから読み出されるユーザデータの誤り訂正は、いずれも誤り訂正回路40で実行される。つまり、誤り検出手段は、並行してアクセスされるフラッシュメモリと同数設けられているが、誤り訂正手段の数は並行してアクセスされるフラッシュメモリの数より少なくなっている。従って、誤り検出手段と誤り訂正手段とで構成される誤り訂正器の回路規模を削減することができる。
尚、並行して読み出されたユーザデータの双方、つまり、フラッシュメモリ2Aから読み出されるユーザデータとフラッシュメモリ2Bから読み出されるユーザデータの双方に誤りが含まれていた場合、ホストシステム4から読み出される順番で誤り訂正が行われる。並行して読み出されたユーザデータのいずれか一方にだけ誤りが含まれていた場合、誤りが含まれていた側のユーザデータの誤り訂正だけが実行される。
本発明によるメモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法は上述した実施の形態に限定されず、特許請求の範囲に記載した範囲で種々の変形や改良が可能である。例えば、誤り検出手段(誤り有無計算回路31A、誤り有無計算回路31Bに相当する回路)と誤り訂正手段(誤り訂正回路40に相当する回路)の個数は特に限定されず、誤り訂正手段の数が誤り検出手段の数より少ない構成であればよい。又、誤り訂正符号の方式はリードソロモン符号に限定されず、誤り検出手段と誤り訂正手段とを分離して構成できるBCH符号等の符号化方式であってもよい。
尚、誤り訂正手段で誤り訂正を行う順番は、ホストシステム4から読み出される順番であることが好ましいが、誤り検出手段で先に誤りが検出された側、又は、誤りが含まれているか否かを判断する処理が先に終了した側から順番に誤り訂正を行ってもよい。
本発明の一実施の形態によるフラッシュメモリシステムの概略構成を示すブロック図である。 本発明の一実施の形態による誤り訂正符号生成器の動作を説明するためのブロック図である。 本発明の一実施の形態による誤り訂正器の動作を説明するためのブロック図である。
符号の説明
1 フラッシュメモリシステム
2A、2B フラッシュメモリ
3 メモリコントローラ
20 誤り訂正符号生成器
30 誤り訂正器

Claims (6)

  1. ホストシステムから与えられる指示情報に応じて、複数個のフラッシュメモリに対する並行したアクセスを制御するメモリコントローラであって、
    前記フラッシュメモリから読み出したデータに含まれる誤りの有無を判断する誤り検出手段と、
    前記フラッシュメモリから読み出したデータに含まれる誤りを訂正する誤り訂正手段と、
    前記誤り検出手段で誤りが含まれていると判断されたデータだけが、前記誤り訂正手段で誤り訂正が行われるように制御する制御手段とを備え、
    前記誤り検出手段の個数が並行してアクセスされる前記フラッシュメモリの個数と同数であり、前記誤り訂正手段の個数が並行してアクセスされる前記フラッシュメモリの個数より少ないことを特徴とするメモリコントローラ。
  2. 前記誤り訂正手段には2個以上の前記誤り検出手段が割り当てられ、いずれかの前記誤り検出手段で誤りが含まれていると判断されたデータは、該誤り検出手段に割り当てられている前記誤り訂正手段で誤り訂正が行われることを特徴とする請求項1に記載のメモリコントローラ。
  3. 前記制御手段は、前記ホストシステムから読み出される順番が先のデータの誤り訂正が先に行われるように制御することを特徴とする請求項1又は2に記載のメモリコントローラ。
  4. 請求項1乃至3のいずれか1項記載のメモリコントローラと、
    複数個のフラッシュメモリとを備えるフラッシュメモリシステム。
  5. ホストシステムから与えられる指示情報に応じて、複数個のフラッシュメモリに対する並行したアクセスを制御するフラッシュメモリの制御方法であって、
    前記フラッシュメモリから読み出したデータに含まれる誤りの有無を判断する誤り検出ステップと、
    前記フラッシュメモリから読み出したデータに含まれる誤りを訂正する誤り訂正ステップとを有し、
    前記誤り検出ステップは、並行してアクセスされる前記フラッシュメモリから読み出したデータに対して並行して行われ、
    前記誤り訂正ステップは、並行してアクセスされる前記フラッシュメモリから読み出したデータに対して予め設定された順番で行われることを特徴とするフラッシュメモリの制御方法。
  6. 前記順番は、前記ホストシステムから読み出される順番が先のデータの誤り訂正が先に行われるように設定されていることを特徴とする請求項5に記載のフラッシュメモリの制御方法。
JP2006284003A 2006-10-18 2006-10-18 メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法 Active JP4582078B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006284003A JP4582078B2 (ja) 2006-10-18 2006-10-18 メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006284003A JP4582078B2 (ja) 2006-10-18 2006-10-18 メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法

Publications (2)

Publication Number Publication Date
JP2008102693A true JP2008102693A (ja) 2008-05-01
JP4582078B2 JP4582078B2 (ja) 2010-11-17

Family

ID=39436984

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006284003A Active JP4582078B2 (ja) 2006-10-18 2006-10-18 メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法

Country Status (1)

Country Link
JP (1) JP4582078B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010013437A1 (ja) * 2008-07-30 2010-02-04 パナソニック株式会社 誤り訂正機能付きコントローラ、誤り訂正機能付き記憶装置、及び誤り訂正機能付きシステム
JP2012505458A (ja) * 2008-10-09 2012-03-01 ヌモニクス ベー. フェー. 仮想化ecc−nand
JP2014238871A (ja) * 2014-08-01 2014-12-18 マイクロン テクノロジー, インク. 単一の仮想化されたeccアルゴリズムを提供するコントローラと、このコントローラを含む記憶システム、及びこの記憶システムを管理する方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57127998A (en) * 1981-01-30 1982-08-09 Fujitsu Ltd Detection system for disconnection of failed unit
JPS58143500A (ja) * 1982-02-18 1983-08-26 Nec Corp インタ−リ−ブ可能な記憶装置
JPS62119800A (ja) * 1985-11-19 1987-06-01 Nec Corp 半導体記憶装置
JPH0991206A (ja) * 1995-09-27 1997-04-04 Toshiba Corp メモリ制御装置およびメモリ検査方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57127998A (en) * 1981-01-30 1982-08-09 Fujitsu Ltd Detection system for disconnection of failed unit
JPS58143500A (ja) * 1982-02-18 1983-08-26 Nec Corp インタ−リ−ブ可能な記憶装置
JPS62119800A (ja) * 1985-11-19 1987-06-01 Nec Corp 半導体記憶装置
JPH0991206A (ja) * 1995-09-27 1997-04-04 Toshiba Corp メモリ制御装置およびメモリ検査方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010013437A1 (ja) * 2008-07-30 2010-02-04 パナソニック株式会社 誤り訂正機能付きコントローラ、誤り訂正機能付き記憶装置、及び誤り訂正機能付きシステム
US8356237B2 (en) 2008-07-30 2013-01-15 Panasonic Corporation Controller with error correction function, storage device with error correction function, and system with error correction function
JP5363460B2 (ja) * 2008-07-30 2013-12-11 パナソニック株式会社 誤り訂正機能付きコントローラ、誤り訂正機能付き記憶装置、及び誤り訂正機能付きシステム
JP2012505458A (ja) * 2008-10-09 2012-03-01 ヌモニクス ベー. フェー. 仮想化ecc−nand
US8806293B2 (en) 2008-10-09 2014-08-12 Micron Technology, Inc. Controller to execute error correcting code algorithms and manage NAND memories
US9213603B2 (en) 2008-10-09 2015-12-15 Micron Technology, Inc. Controller to manage NAND memories
US9569129B2 (en) 2008-10-09 2017-02-14 Micron Technology, Inc. Controller to manage NAND memories
US9971536B2 (en) 2008-10-09 2018-05-15 Micron Technology, Inc. Controller to manage NAND memories
JP2014238871A (ja) * 2014-08-01 2014-12-18 マイクロン テクノロジー, インク. 単一の仮想化されたeccアルゴリズムを提供するコントローラと、このコントローラを含む記憶システム、及びこの記憶システムを管理する方法

Also Published As

Publication number Publication date
JP4582078B2 (ja) 2010-11-17

Similar Documents

Publication Publication Date Title
JP4524309B2 (ja) フラッシュメモリ用のメモリコントローラ
KR100546348B1 (ko) 플래시 메모리 시스템 및 그 데이터 저장 방법
TWI527048B (zh) 應用於快閃記憶體裝置的錯誤更正碼單元、自我測試方法及相關的控制器
US8732553B2 (en) Memory system and control method thereof
JP6258399B2 (ja) 半導体装置
JP6164712B1 (ja) フラッシュメモリ
US9424126B2 (en) Memory controller
JP2015018451A (ja) メモリコントローラ、記憶装置およびメモリ制御方法
JP2006079811A (ja) エラー検出用パリティー発生器を備えた半導体メモリ装置
US9535785B2 (en) ECC method for flash memory
KR20100124087A (ko) 메모리 컨트롤러, 그것을 포함하는 메모리 시스템 그리고 그것의 동작 방법
US10133645B2 (en) Data recovery in three dimensional non-volatile memory array after word line short
CN111033483A (zh) 存储器地址验证方法和使用所述方法的存储器装置
JP2006018373A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2010079856A (ja) 記憶装置およびメモリ制御方法
US20070047308A1 (en) Memory controller, flash memory system and control method for flash memory
JP2006221334A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4582078B2 (ja) メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4692843B2 (ja) メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4655034B2 (ja) メモリコントローラ及びフラッシュメモリシステム並びにフラッシュメモリの制御方法
US9104596B2 (en) Memory system
JP2006155335A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4697146B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4273106B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4194518B2 (ja) メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100728

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4582078

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130910

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250