(57)【要約】【課題】誤り訂正チャネルを適用していながら、データ読み出しの並列度を向上できるようにする。【解決手段】実施形態によれば、誤り訂正チャネル決定手段は、論理ブロックを構成する複数の論理ページがページ単位に複数のチャネルを介してメモリに書き込まれる際に、複数のチャネルのそれぞれに誤り訂正チャネルが割り当てられる論理ページの数が均等になるように、ページ単位に誤り訂正チャネルが割り当てられるチャネルを決定する。コマンドリスト生成手段は、誤り訂正チャネルが割り当てられるチャネルの決定に基づいて、複数のチャネルのうちの誤り訂正チャネルを除くチャネル群を介して、対応する論理ページを並列に書き込むためのライトコマンド群のリストを生成する。コマンドリスト投入手段は、ライトコマンド群のリストをメモリインタフェースに投入する。【選択図】      図１
2012248110.tif 000002
【特許請求の範囲】
【請求項１】
複数のチャネルを介してアクセスされるメモリと、
複数のアクセスコマンドに従って前記メモリに前記複数のチャネルを介して並列にアクセスするメモリインタフェースと、
前記メモリインタフェースによるアクセスで、エラー訂正符号で訂正不能なエラーが発生したチャネルが存在する場合に、前記複数のチャネルのうち前記エラーが発生したチャネルを除く、誤り訂正チャネルを含むチャネル群のデータに基づいて、前記エラーが発生したチャネルのデータを訂正するチャネル間誤り訂正手段と、
論理ブロックを構成する複数の論理ページがページ単位に順次前記複数のチャネルを介して前記メモリに書き込まれる際に、前記複数のチャネルのそれぞれに前記誤り訂正チャネルが割り当てられる論理ページの数が均等になるように、ページ単位に前記誤り訂正チャネルが割り当てられるチャネルを決定する誤り訂正チャネル決定手段と、
前記誤り訂正チャネルが割り当てられるチャネルの決定に基づいて、前記複数のチャネルのうちの前記誤り訂正チャネルを除くチャネル群を介して、対応する論理ページを並列に書き込むためのライトコマンド群のリストを生成するコマンドリスト生成手段と、
前記ライトコマンド群のリストを前記メモリインタフェースに投入するコマンドリスト投入手段と
を具備するメモリ装置。
【請求項２】
前記誤り訂正チャネルに割り当てられるチャネルが決定された誤り訂正チャネル決定状況を論理ブロック毎に管理する誤り訂正チャネル管理手段を更に具備し、
前記誤り訂正チャネル決定手段は、前記誤り訂正チャネル決定状況に基づいて、前記論理ブロック内の次の論理ページにおいて前記誤り訂正チャネルが割り当てられるチャネルを決定する
請求項１記載のメモリ装置。
【請求項３】
前記誤り訂正チャネル管理手段は、前記誤り訂正チャネル決定状況を、前記論理ブロック内の前回の論理ページの書き込みに際して決定されたチャネルのチャネル番号に基づいて管理し、
前記誤り訂正チャネル決定手段は、前記前回のチャネル番号に基づいて、前記次の論理ページにおいて前記誤り訂正チャネルが割り当てられるチャネルを決定する
請求項２記載のメモリ装置。
【請求項４】
前記誤り訂正チャネル決定手段は、ラウンドロビン方式に基づき、前記複数のチャネル内で前記前回のチャネル番号の次のチャネルを、前記誤り訂正チャネルが割り当てられるチャネルとして決定する請求項３記載のメモリ装置。
【請求項５】
前記誤り訂正チャネル決定手段は、前記誤り訂正チャネル決定状況に基づいて、前記論理ブロック内の次の論理ページにおいて前記誤り訂正チャネルが割り当てられるチャネルをランダムに決定する請求項２記載のメモリ装置。
【請求項６】
複数のチャネルを介してアクセスされるメモリと、複数のアクセスコマンドに従って前記メモリに前記複数のチャネルを介して並列にアクセスするメモリインタフェースと、前記メモリインタフェースによるアクセスで、エラー訂正符号で訂正不能なエラーが発生したチャネルが存在する場合に、前記複数のチャネルのうち前記エラーが発生したチャネルを除く、誤り訂正チャネルを含むチャネル群のデータに基づいて、前記エラーが発生したチャネルのデータを訂正するチャネル間誤り訂正手段とを備えたメモリ装置における書き込み制御方法であって、
論理ブロックを構成する複数の論理ページがページ単位に順次前記複数のチャネルを介して前記メモリに書き込まれる際に、前記複数のチャネルのそれぞれに前記誤り訂正チャネルが割り当てられる論理ページの数が均等になるように、ページ単位に前記誤り訂正チャネルが割り当てられるチャネルを決定し、
前記誤り訂正チャネルが割り当てられるチャネルの決定に基づいて、前記複数のチャネルのうちの前記誤り訂正チャネルを除くチャネル群を介して、対応する論理ページを並列に書き込むためのライトコマンド群のリストを生成し、
前記ライトコマンド群のリストを前記メモリインタフェースに投入する
書き込み制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、マルチチャネルを有するメモリ装置及び同装置における誤り訂正チャネル決定を含む書き込み制御方法に関する。
【背景技術】
【０００２】
従来から、記憶装置の信頼性向上のために、複数種類（例えば２種類）の誤り訂正を適用することが知られている。
【０００３】
また近年は、ＮＡＮＤフラッシュメモリに代表されるメモリを備え、複数のアクセスコマンドを並列に実行するマルチチャネルを有するメモリ装置も知られている。このようなメモリ装置では、一般に、論理ブロック内の論理ページ毎に、複数のチャネルを介して並列にアクセスすることが可能である。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１−２９２５４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
そこで、マルチチャネルを有するメモリ装置において、複数種類の誤り訂正を適用することが考えられる。例えば、エラー訂正符号（ＥＣＣ）で訂正不能なエラーが発生した場合に、エラー箇所をチャネル間のデータに基づいて訂正することが考えられる。このような訂正（以下、チャネル間誤り訂正と称する）を可能とするためには、複数のチャネルのうちの１チャネル（以下、誤り訂正チャネルと称する）を、チャネル間誤り訂正のための誤り訂正データの格納に割り当てればよい。この場合、誤り訂正チャネルの適用が、データ読み出しの並列度に悪影響を及ぼさないことが要求される。
【０００６】
本発明の目的は、誤り訂正チャネルを適用していながら、データ読み出しの並列度を向上できるマルチチャネルを有するメモリ装置及び同装置における誤り訂正チャネル決定を含む書き込み制御方法を提供することである。
【課題を解決するための手段】
【０００７】
実施形態によれば、メモリ装置は、メモリと、メモリインタフェースと、チャネル間誤り訂正手段と、誤り訂正チャネル決定手段と、コマンドリスト生成手段と、コマンドリスト投入手段とを具備する。前記メモリは、複数のチャネルを介してアクセスされる。前記メモリインタフェースは、複数のアクセスコマンドに従って前記メモリに前記複数のチャネルを介して並列にアクセスする。前記チャネル間誤り訂正手段は、前記メモリインタフェースによるアクセスで、エラー訂正符号で訂正不能なエラーが発生したチャネルが存在する場合に、前記複数のチャネルのうち前記エラーが発生したチャネルを除く、誤り訂正チャネルを含むチャネル群のデータに基づいて、前記エラーが発生したチャネルのデータを訂正する。前記誤り訂正チャネル決定手段は、論理ブロックを構成する複数の論理ページがページ単位に順次前記複数のチャネルを介して前記メモリに書き込まれる際に、前記複数のチャネルのそれぞれに前記誤り訂正チャネルが割り当てられる論理ページの数が均等になるように、ページ単位に前記誤り訂正チャネルが割り当てられるチャネルを決定する。前記コマンドリスト生成手段は、前記誤り訂正チャネルが割り当てられるチャネルの決定に基づいて、前記複数のチャネルのうちの前記誤り訂正チャネルを除くチャネル群を介して、対応する論理ページを並列に書き込むためのライトコマンド群のリストを生成する。前記コマンドリスト投入手段は、前記ライトコマンド群のリストを前記メモリインタフェースに投入する。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係るマルチチャネルを有するメモリ装置の典型的な構成を示すブロック図。
【図２】同実施形態で適用されるパリティチャネル決定を含む書き込み制御の典型的な手順を説明するためのフローチャート。
【図３】同実施形態で適用される論理ブロックの構成とパリティチャネルとの関係の一例を示す図。
【図４】同実施形態で適用される論理アドレス及び物理アドレスのフォーマットの例を示す図。
【発明を実施するための形態】
【０００９】
以下、実施の形態につき図面を参照して説明する。  
図１は実施形態に係るマルチチャネルを有するメモリ装置の典型的な構成を示すブロック図である。本実施形態において、図１に示すメモリ装置１０は、例えばホスト（図示せず）と接続されている。ホストは、メモリ装置１０を当該ホストの記憶装置として利用する。
【００１０】
メモリ装置１０は、ＮＡＮＤフラッシュメモリ１１とＮＡＮＤコントローラ１２とを備えている。本実施形態においてメモリ装置１０は、ＮＡＮＤフラッシュメモリ１１を利用したソリッドステートドライブ（ＳＳＤ）であるものとする。ＮＡＮＤフラッシュメモリ１１は、ユーザデータを記憶するための記憶媒体である。ＮＡＮＤフラッシュメモリ１１は、複数のＮＡＮＤフラッシュメモリチップを備えており、複数のアクセスコマンドに応じてＮＡＮＤコントローラ１２によって複数のチャネル（つまりマルチチャネル）を介して並列にアクセス可能なように構成されている。
【００１１】
なお、メモリ装置１０がＳＳＤである必要はない。また、論理ブロック単位で且つ論理ページ単位に、複数のチャネルを介して並列にアクセス可能であれば、ＮＡＮＤフラッシュメモリ１１に代えて、ＮＡＮＤフラッシュメモリ以外のメモリを用いても構わない。
【００１２】
ＮＡＮＤコントローラ１２は、ホストからの要求に応じてＮＡＮＤフラッシュメモリ１１にアクセスする。ＮＡＮＤコントローラ１２はまた、例えば後述するコンパクションのような、ブロック単位でのメモリアクセス処理のために、ＮＡＮＤフラッシュメモリ１１にアクセスする。
【００１３】
ＮＡＮＤコントローラー１２は、ＮＡＮＤインタフェース２１と、制御部２２と、書き込み制御部２３と、読み出し制御部（図示せず）と、ブロック管理部２４とを備えている。制御部２２、書き込み制御部２３（より詳細には、書き込み制御部２３内の並列書き込み検出部２３１、パリティチャネル管理部２３２、パリティチャネル決定部２３３、コマンドリスト生成部２３４及びコマンドリスト投入部２３５）、読み出し制御部及びブロック管理部２４は、内部バス２５を介して相互接続されている。
【００１４】
ＮＡＮＤインタフェース２１は、ＮＡＮＤフラッシュメモリ１１と、制御部２２、書き込み制御部２３（特に書き込み制御部２３内のコマンドリスト投入部２３５）及び読み出し制御部との間で情報を授受する。本実施形態においてＮＡＮＤインタフェース２１は、１６のチャネル０，１，…，１５を有しているものとする。チャネル０，１，…，１５のチャネル番号は、それぞれ、０，１，…，１５（１０進数表現）である。ＮＡＮＤインタフェース２１からＮＡＮＤフラッシュメモリ１１へのデータの書き込み及びデータの読み出しは、いずれも１６チャネル並列に実行可能である。特にデータの書き込みは、ページ単位に実行可能である。
【００１５】
１論理ブロックは６４のページ（論理ページ）０，１，…，６３で構成されるものとする。チャネル０，１，…，１５の各々は、２つのプレーン０，１に接続されている。本実施形態では、１論理ブロックに３２の物理ブロックが割り当てられる。３２の物理ブロックは、１６のチャネル０，１，…，１５のそれぞれプレーン０，１に対応する。各物理ブロックは、１ページ当たり２クラスタから構成される。
【００１６】
ＮＡＮＤインタフェース２１は、エラー訂正符号（ＥＣＣ）で訂正不能なエラーが発生した場合に、エラー箇所（エラー箇所を含むチャネルのデータ）をチャネル間のデータに基づいて訂正する。この訂正を、チャネル間誤り訂正（ＩＣＰ訂正）と呼ぶ。
【００１７】
本実施形態では、論理ブロック内の論理ページ毎に対応するページのＩＣＰ訂正を可能とするために、１６チャネルのうちの１チャネルに、ＩＣＰ訂正のための誤り訂正データが格納される誤り訂正チャネルを割り当てている。この誤り訂正チャネルの割り当ては、論理ブロック単位で且つ論理ページ単位の書き込みにおいて、論理ページ毎に行われる。誤り訂正チャネルが割り当てられるチャネルは、書き込み制御部２３内の後述するパリティチャネル決定部２３３によって所定の規則に基づいて決定される。
【００１８】
ＩＣＰ訂正のための誤り訂正データは、論理ページ毎に、誤り訂正チャネル以外の１５チャネルに格納されるデータに基づいて生成される。この誤り訂正データは、例えばパリティデータ（チャネル間パリティデータ）である。そこで以下の説明では、チャネル間パリティデータが格納される誤り訂正チャネルをパリティチャネルと称する。
【００１９】
ＮＡＮＤインタフェース２１はチャネル間誤り訂正機構(以下、ＩＣＰ訂正機構と称する)２１０を備えている。ＩＣＰ訂正機構２１０は、パリティチャネルに格納されているパリティデータを用いてＩＣＰ訂正を行う。つまりＩＣＰ訂正機構２１０は、論理ページ内のＥＣＣ訂正不能なエラー箇所を含むチャネルのデータを、当該論理ページのパリティチャネルに基づいて修復する。
【００２０】
制御部２２は、内部バス２５に接続された、書き込み制御部２３及びブロック管理部２４のようなモジュール群を制御する。
【００２１】
書き込み制御部２３は、ホストからの要求、更には制御部２２からの要求に応じて、ＮＡＮＤフラッシュメモリ１１へのデータの書き込みを制御する。本実施形態では、ＮＡＮＤフラッシュメモリ１１への書き込みはページ単位で行われる。特にメモリ装置１０において自律的に行われるデータの書き込みは、ブロック（論理ブロック）単位で且つページ（論理ページ）単位に行われる。ページ単位の書き込みは、前述したように、１６チャネルを介して並列に行われる。但し、１６チャネルのうちの１チャネルには、前述したようにパリティチャネルが割り当てられ、当該パリティチャネルにはチャネル間パリティデータが書き込まれる。このようなブロック単位で且つページ単位の書き込みは、ホストからのユーザデータ書き込み要求に基づくデータの書き込み（つまり通常のユーザデータ書き込み）でも発生する。
【００２２】
メモリ装置１０において自律的に行われる書き込みは、ホストによって要求されたアクセス処理に対するバックグラウンド処理として行われる。本実施形態のような、ＳＳＤに代表されるメモリ装置１０では、信頼性向上のために、ブロック間のデータ移動を伴うバックグラウンド処理が多く存在する。例えば、コンパクション、パトロールリフレッシュ、及びウェアレべリングの各処理が、バックグラウンド処理に該当する。
【００２３】
コンパクションとは、ＮＡＮＤフラッシュメモリ１１のメモリ領域の効率利用のために、隙間ができた複数のブロック（つまり穴あき状態の複数のブロック）から別ブロックに有効データをまとめて移動する処理である。ＮＡＮＤコントローラ１２は、コンパクションを実行するコンパクション部（図示せず）を備えている。
【００２４】
パトロールリフレッシュは、ＮＡＮＤフラッシュメモリ１１に格納されたデータが長時間放置されることに起因するデータ化け（ビット化け）を検査するために、ＮＡＮＤフラッシュメモリ１１から論理ブロック単位にデータを定期的に読む処理を含む。パトロールリフレッシュは更に、データ化けが一定数を超えた論理ブロックを書き直す処理を含む。つまりパトロールリフレッシュは、ＮＡＮＤフラッシュメモリ１１のデータ保持力（data retention）が比較的弱いことに起因するデータ化け対策のために実行される。ＮＡＮＤコントローラ１２は、パトロールリフレッシュを実行するパトロールリフレッシュ部（図示せず）を備えている。  
ウェアレべリングとは、メモリ装置１０の延命のために、全ブロックの疲弊度（消去回数）を平準化するようにブロック間のデータ移動を行う処理である。
【００２５】
書き込み制御部２３は、並列書き込み検出部２３１と、パリティチャネル管理部２３２と、パリティチャネル決定部２３３と、コマンドリスト生成部２３４と、コマンドリスト投入部２３５とから構成される。  
ブロック管理部２４は、論理ブロック毎に、当該論理ブロックに割り当てられている物理ブロック群を管理する。
【００２６】
以下、書き込み制御部２３による、論理ブロック単位で且つ論理ページ単位で行われる、パリティチャネル決定を含む書き込みの制御の典型的な手順について、図２のフローチャートを参照して説明する。  
並列書き込み検出部２３１は、コンパクション部、或いはパトロールリフレッシュ部等から、論理ブロック内の論理ページをパリティチャネルを含む１６チャネル並列に書き込むことを指示する並列書き込みコマンドの発行を検出する。つまり並列書き込み検出部２３１は、論理ブロック単位の書き込みにおける論理ページ単位の書き込みを検出する（ステップ２０１）。並列書き込み検出部２３１は、並列書き込みコマンドの発行（論理ページ単位の書き込み）を検出した場合、その旨をパリティチャネル決定部２３３に通知する。
【００２７】
パリティチャネル管理部２３２は、論理ブロック毎に、当該論理ブロックの既に実行済みのページ単位の書き込みにおけるパリティチャネル決定（設定）の状況（つまり、過去のパリティチャネル決定の状況）を管理する。本実施形態では、論理ブロック毎の過去のパリティチャネル決定の状況として、前回当該論理ブロックのページ（より詳細には、チャネル間パリティデータを含むページのデータ）が１６チャネルを介して並列に書き込まれる際に決定されたパリティチャネル番号が用いられる。論理ブロック毎のパリティチャネル番号は、当該論理ブロックに対応付けて、パリティチャネル管理部２３２（より詳細には、ＤＲＡＭのようなメモリ内の、パリティチャネル管理部２３２に割り当てられている領域）に保持される。
【００２８】
そこでパリティチャネル決定部２３３は、並列書き込み検出部２３１からの通知を受けて、パリティチャネル管理部２３２より、並列書き込みコマンドで指定された論理ページ（つまり書き込まれるべき論理ページ）ｐを含む論理ブロックに対応付けられている前回のパリティチャネル番号（過去のパリティチャネル決定状況）を取得する（ステップ２０２）。前回のパリティチャネル番号は、論理ページｐに先行する論理ページｐ−１を書き込む際に決定されたパリティチャネルを示す。
【００２９】
パリティチャネル決定部２３３は、取得されたパリティチャネル番号及び所定の規則（パリティチャネル決定手法）に基づいて、新たに設定されるべきパリティチャネル番号を決定する（ステップ２０３）。但し、論理ページｐが論理ページ０（ｐ＝０）の場合、パリティチャネル番号は予め定められた初期パリティチャネル番号、例えば０に決定されるものとする。
【００３０】
パリティチャネル決定部２３３によるパリティチャネル番号の決定について、図３を参照して説明する。図３は、本実施形態で適用される論理ブロックの構成とパリティチャネルとの関係の一例を示す図である。
【００３１】
本実施形態で適用される論理ブロックは、図３に示すように、ページ０〜６３の６４ページ（論理ページ）から構成される。各ページは、１６チャネルから構成される。本実施形態では、論理ブロックのページ毎に、１６チャネルのうちの１チャネルがパリティチャネル（図３においてハッチングが施されているチャネル）に割り当てられる。ここで、６４ページのうち、チャネル０，１，…，１５がそれぞれパリティチャネルに割り当てられるページの数は、いずれも４である。つまり本実施形態では、１論理ブロックを構成する６４ページに、パリティチャネルが特定のチャネルに偏ることなく均等に割り当てられる。このような、１論理ブロックを構成する６４ページにページ単位でパリティチャネルを均等に割り当てるための手法は、種々適用可能である。なお、図３では省略されているが、各ページは、６４クラスタから構成される。本実施形態では、ＮＡＮＤフラッシュメモリ１１に対して、１チャネルを介して４クラスタを同時に書き込むことが可能である。
【００３２】
以下、１論理ブロックを構成する６４ページにページ単位でパリティチャネルを均等に割り当てるための幾つかの手法について説明する。  
第１は、論理ブロックの書き込みがページ単位で行われる場合に、図３の例のように、当該論理ブロックを構成する６４ページに先頭ページ（ページ０）から順に全チャネルを通してラウンドロビン方式でパリティチャネルを割り当てる手法である。第１の手法によれば、ページｐ−１（ｐ−１＝０，１，…，６２）のチャネルｃ（ｃ＝０，１，…，１５）にパリティチャネルが割り当てられた場合、次のページｐ（ｐ＝１，２，…，６３）では、チャネルｃの次のチャネルｃ’（ｃ’＝１，…，１５，０）にパリティチャネルが割り当てられる。ここで、チャネルｃのチャネル番号が０，１，…または１４の場合、次のチャネルｃ’のチャネル番号はそれぞれ１，２，…または１５である。また、チャネルｃが１５（１６進表現でＦ）の場合、次のチャネルｃ’のチャネル番号は０である。本実施形態では、この第１の手法が適用される。
【００３３】
第２は、連続する２ページ、或いは４ページ毎に、パリティチャネルを順次ずらす手法である。  
第３は、６４ページのそれぞれに、ランダムにパリティチャネルを割り当てる手法である。ここで、対応する論理ブロックの前述した過去のパリティチャネル決定（設定）の状況に基づいて、ランダムにパリティチャネルを割り当てるとよい。このようにすると、ランダムな割り当てでありながら、６４ページのうち、チャネル０，１，…，１５にそれぞれパリティチャネルが割り当てられるページの数を、いずれも４とすることができる。
【００３４】
パリティチャネル決定部２３３によって決定されたパリティチャネル番号は、パリティチャネル管理部２３２に通知される。パリティチャネル管理部２３２は、並列書き込みコマンドで指定された論理ブロックに対応付けて現在保持しているパリティチャネル番号を、通知されたパリティチャネル番号に更新する（ステップ２０４）。
【００３５】
このように本実施形態では、パリティチャネル決定部２３３によって決定されたパリティチャネル番号が、パリティチャネル管理部２３２によって、論理ブロック毎に保持・管理される。これにより、次のような効果を得ることができる。
【００３６】
第１の論理ブロックの書き込みが、メモリ装置１０において自律的に行われているものとする。つまり第１の論理ブロックの書き込みが、バックグラウンド処理で行われているものとする。そして、第１の論理ブロックのページｐの書き込みの途中で、ホストからメモリ装置１０のＮＡＮＤコントローラ１２に第２の論理ブロックの書き込み（ユーザデータ書き込み）が要求されたものとする。
【００３７】
するとＮＡＮＤコントローラ１２は、第１の論理ブロックの書き込みが未完了であっても、ページｐの書き込みが完了した時点で、第２の論理ブロックの書き込みに切り替える。ＮＡＮＤコントローラ１２は、第２の論理ブロックの書き込みが完了した後に、第１の論理ブロックの書き込みをページｐ＋１から再開する。このときパリティチャネル管理部２３２は、第１の論理ブロックに対応した過去のパリティチャネル決定の状況として、第１の論理ブロックに対応付けられたパリティチャネル番号を保持している。第１の論理ブロックに対応付けられたパリティチャネル番号は、第１の論理ブロックの書き込みが中断される直前のページｐの書き込みに時に決定されたものである。このように、論理ブロック別にパリティチャネルを管理する機構を更に具備することにより、パリティチャネル決定部２３３は、再開された第１の論理ブロックのページｐ＋１の書き込みに際し、当該ページｐ＋１のパリティチャネルを、先行するページｐのパリティチャネルのパリティチャネル番号に基づいて決定することができる。
【００３８】
パリティチャネル決定部２３３によって決定されたパリティチャネル番号は、ブロック管理部２４にも通知される。ブロック管理部２４は、論理ブロック毎に、当該論理ブロックに割り当てられている物理ブロック群（３２の物理ブロック）を、ブロック管理テーブル（図示せず）により管理する。ブロック管理テーブルは、ブロック管理部２４（より詳細には、ＤＲＡＭのようなメモリ内の、ブロック管理部２４に割り当てられている領域）に保持される。本実施形態では、ブロック管理部２４は、物理ブロックに対応するページ（論理ページ）０〜６３のチャネル毎に、パリティチャネルであるかを、ブロック管理テーブルにより管理する。
【００３９】
コマンドリスト生成部２３４は、パリティチャネル決定部２３３によって決定されたパリティチャネル番号を持つパリティチャネルを除く１５チャネルを介して並列に対応する論理ページを書き込むことを指示するためのライトコマンド群のリスト（コマンドリスト）を生成する（ステップ２０５）。コマンドリスト生成部２３４は、生成されたコマンドリストをコマンドリスト投入部２３５に渡す。
【００４０】
コマンドリスト生成部２３４によって生成されたコマンドリスト中のライトコマンド群の各々は、書き込まれるべきクラスタを指定する物理アドレスを含む。このライトコマンド群の生成のために、コマンドリスト生成部３３は、書き込まれるべきクラスタを指定する論理アドレスを物理アドレスに変換する。
【００４１】
図４は、本実施形態で適用される論理アドレス及び物理アドレスのフォーマットの例を示す。論理アドレスは、対応するクラスタが属する論理ブロックの論理ブロックＩＤと、ページ番号、プレーン番号、チャネル番号及びクラスタ番号とから構成される。論理アドレスは、メモリ装置１０にＮＡＮＤフラッシュメモリ１１が用いられている本実施形態では、論理ＮＡＮＤクラスタアドレスとも呼ばれる。物理アドレスは、対応するクラスタが属する物理ブロックを識別するための物理ブロックＩＤと、プレーン番号、ページ番号、クラスタ番号及びセクタ番号とから構成される。この物理アドレスは、物理ＮＡＮＤクラスタアドレスとも呼ばれる。論理アドレスから物理アドレスへの変換には、周知の論理−物理アドレス変換テーブル（以下、論物変換テーブルと称する）が用いられる。論物変換テーブルは、図示せぬテーブル管理部によって保持・管理されている。
【００４２】
コマンドリスト投入部２３５は、コマンドリスト生成部２３４によって生成されたコマンドリストを受け取ると、当該コマンドリスト中のライトコマンド群を同時にＮＡＮＤインタフェース２１に投入する。ＮＡＮＤインタフェース２１に投入されたライトコマンド群は、当該ＮＡＮＤインタフェース２１内のコマンドキュー（図示せず）に格納される。
【００４３】
ＮＡＮＤインタフェース２１は、コマンドキューから、１論理ページ（パリティチャネルを除く１５チャネル）に対応するライトコマンド群を取り出す。ＮＡＮＤインタフェース２１は、取り出されたライトコマンド群の示す各チャネルの書き込みデータに基づいて、パリティチャネルに書かれるべきチャネル間パリティデータを生成する。ＮＡＮＤインタフェース２１は、取り出されたライトコマンド群と生成されたチャネル間パリティデータとに基づいて、当該チャネル間パリティデータを含む書き込みデータを１６チャネル並列にＮＡＮＤフラッシュメモリ１１に書き込む。
【００４４】
さて、コマンドリスト投入部２３５によって１論理ページに対応するライトコマンド群がＮＡＮＤインタフェース２１に投入されると（ステップ２０６）、並列書き込み検出部２３１は再びステップ２０１を実行する。このようにして、ステップ２０１〜２０６が１論理ブロックの全ページ０〜６３について繰り返されることにより、当該全ページ０〜６３がＮＡＮＤフラッシュメモリ１１に書き込まれる。このページ０〜６３の書き込みでは、ページ０から順に全チャネルを通してラウンドロビン方式でパリティチャネルが割り当てられる。これにより図３に示したように、論理ブロックのページ０〜６３に、パリティチャネルが特定のチャネルに偏ることなく均等に割り当てられる。
【００４５】
このため本実施形態においては、パリティチャネルが均等に割り当てられた論理ブロックからのデータの読み出し（例えば、コンパクション、或いはパトロールリフレッシュのためのデータの読み出し）における並列度を向上することができる。これによりメモリ装置１０の読み出し性能も向上する。
【００４６】
さて、ＮＡＮＤインタフェース２１がＮＡＮＤフラッシュメモリ１１から論理ページ内のデータを読み出した際に、ＥＣＣ訂正不能なエラーが発生したものとする。この場合、ＮＡＮＤインタフェース２１のＩＣＰ訂正機構２１０は、エラー箇所を含むチャネル（エラーチャネル）のデータを、エラーチャネルを除く１５チャネル（パリティチャネルを含む１５チャネル）のデータに基づいて訂正する。
【００４７】
以上説明した少なくとも１つの実施形態によれば、誤り訂正チャネル（パリティチャネル）を適用していながら、データ読み出しの並列度を向上できるマルチチャネルを有するメモリ装置及び同装置における誤り訂正チャネル決定を含む書き込み制御方法を提供することができる。
【００４８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００４９】
１０…メモリ装置、１１…ＮＡＮＤフラッシュメモリ（メモリ）、１２…ＮＡＮＤコントローラ、２１…ＮＡＮＤインタフェース（メモリインタフェース）、２２…制御部、２３…書き込み制御部、２４…ブロック管理部、２５…内部バス、２１０…ＩＣＰ訂正機構、２３１…並列書き込み検出部、２３２…パリティチャネル管理部、２３３…パリティチャネル決定部、２３４…コマンドリスト生成部、２３５…コマンドリスト投入部。
【図１】
2012248110.tif 000003
【図２】
2012248110.tif 000004
【図３】
2012248110.tif 000005
【図４】
2012248110.tif 000006