(57)【特許請求の範囲】
【請求項１】
アクセス装置と通信可能であり、前記アクセス装置からの指示によりデータの読み出し及び／又は書き込みを行う不揮発性記憶装置であって、
データを記憶する一つ又は複数の不揮発性メモリと、
前記不揮発性メモリの制御を行うメモリコントローラとを備え、
前記不揮発性メモリは、消去単位であるブロックを複数含み、
前記ブロックは、データの書き込み単位であるページを複数含み、
前記ブロック内には、一つのワード線を共有する２以上のページからなるページの組が少なくとも一つ存在し、
前記メモリコントローラは、
データを格納するページであるデータページと、前記データページの誤り訂正演算のための符号を格納する誤り訂正符号ページとを、それぞれ一つ以上含む、誤り訂正グループを複数構成し、
同一の前記誤り訂正グループにおける、前記データページと前記誤り訂正ページのそれぞれに対して、ワード線の異なるページを割り当てること、
を特徴とする不揮発性記憶装置。
【請求項２】
請求項１に記載の不揮発性記憶装置であって、
誤り訂正演算とはパリティであること、
を特徴とする不揮発性記憶装置。
【請求項３】
請求項１に記載の不揮発性記憶装置であって、
論理ブロックは、並列書き込み及び／又は並列読み出しが可能なｎ個（ｎ：２以上の整数）の前記ブロックを組み合わせて構成され、
前記誤り訂正グループは、複数の並列書き込み及び／又は並列読み出しが可能な前記ブロックに跨って割り当てられること、
を特徴とする不揮発性記憶装置。
【請求項４】
請求項１に記載の不揮発性記憶装置であって、
同一の前記誤り訂正グループにおける、前記データページと前記誤り訂正ページのうち、少なくとも二つのページは同一の前記ブロックに格納されること、
を特徴とする不揮発性記憶装置。
【請求項５】
請求項１に記載の不揮発性記憶装置であって、
前記誤り訂正グループの構成に関する情報を前記不揮発性メモリから取得すること、
を特徴とする不揮発性記憶装置。
【請求項６】
請求項１に記載の不揮発性記憶装置であって、
不揮発性記憶装置が使用するシステム情報を、前記誤り訂正グループにおける前記データページとして前記不揮発性メモリに格納すること、
を特徴とする不揮発性記憶装置。
【請求項７】
データを記憶する１つ以上の不揮発性メモリの制御を行うメモリコントローラであって、
前記不揮発性メモリは、消去単位であるブロックを複数含み、
前記ブロックは、データの書き込み単位であるページを複数含み、
前記ブロック内には、一つのワード線を共有する２以上のページからなるページの組が少なくとも一つ存在し、
前記メモリコントローラは、
データを格納するページであるデータページと、前記データページの誤り訂正演算のための符号を格納する誤り訂正符号ページとを、それぞれ一つ以上含む、誤り訂正グループを複数構成し、
同一の前記誤り訂正グループにおける、前記データページと前記誤り訂正ページのそれぞれに対して、ワード線の異なるページを割り当てること、
を特徴とするメモリコントローラ。
【請求項８】
請求項７に記載のメモリコントローラであって、
誤り訂正演算とはパリティであること、
を特徴とするメモリコントローラ。
【請求項９】
請求項７に記載のメモリコントローラであって、
論理ブロックは、並列書き込み及び／又は並列読み出しが可能なｎ個（ｎ：２以上の整数）の前記ブロックを組み合わせて構成され、
前記誤り訂正グループは、複数の並列書き込み及び／又は並列読み出しが可能な前記ブロックに跨って割り当てられること、
を特徴とするメモリコントローラ。
【請求項１０】
請求項７に記載のメモリコントローラであって、
同一の前記誤り訂正グループにおける、前記データページと前記誤り訂正ページのうち、少なくとも二つのページは同一の前記ブロックに格納されること、
を特徴とするメモリコントローラ。
【請求項１１】
請求項７に記載のメモリコントローラであって、
前記誤り訂正グループの構成に関する情報を前記不揮発性メモリから取得すること、
を特徴とするメモリコントローラ。
【請求項１２】
請求項７に記載のメモリコントローラであって、
不揮発性記憶装置が使用するシステム情報を、前記誤り訂正グループにおける誤り訂正演算の要素となるデータとして前記不揮発性メモリに格納すること、
を特徴とするメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリを制御するメモリコントローラ、及び、不揮発性メモリとメモリコントローラを備える半導体メモリカード等の不揮発性記憶装置に関する。
【背景技術】
【０００２】
近年、半導体メモリカードを中心に、書き換え可能な不揮発性メモリを備える不揮発性記憶装置の需要が広まっている。
【０００３】
半導体メモリカードは、小型・軽量・大容量・耐震性・取り扱いの簡便さ等の、種々の特長を備えており、デジタルスチルカメラや携帯電話などのポータブル機器の記録媒体として、その需要が高まっている。最近では、ポータブル機器だけではなく、デジタルテレビやＤＶＤレコーダ等の据え置き機器にも、半導体メモリカード用のスロットが標準搭載されており、半導体メモリカードの需要はさらに高まっている。
【０００４】
上述の半導体メモリカードは、不揮発性の主記憶メモリとしてフラッシュメモリ（主にＮＡＮＤ型のフラッシュメモリ）を備え、それを制御するメモリコントローラを有している。メモリコントローラは、デジタルスチルカメラ本体等に代表されるアクセス装置からのデータの読み書き指示に応じて、フラッシュメモリに対するデータの読み書き制御を行うものである。
【０００５】
メモリコントローラからフラッシュメモリへのデータの書込みは、ページと呼ばれる単位で行われる。最近のフラッシュメモリでは４ｋＢ（キロバイト）、８ｋＢ程度のページサイズが主流である。
【０００６】
フラッシュメモリは、セルという記憶素子を多数含み、各セルに電荷を蓄積・放出することで情報を記憶する。各セルへのデータの書込みはセルに接続されたワード線、及びビット線への電圧の印加によって行われる。データの書込み単位であるページは、ワード線を共有する複数のセルによって構成される。
【０００７】
ところで、セルに記憶した情報は、セルの劣化や不良により失われる場合がある。そのため、メモリコントローラでは、アクセス装置からの書き込みデータに対する誤り訂正符号を生成し、前記書き込みデータと共にフラッシュメモリに格納するのが一般的である。これにより、データの読出し時にエラーが発生しても、そのエラービット数が、適用される誤り訂正符号の訂正能力内であれば訂正が行われ、よって正しいデータを読み出すことが可能となる。例えば、下記の特許文献１では、フラッシュメモリのページ内に書き込みデータ（ユーザデータ）と誤り訂正符号（付加データ）とを交互に格納する方法が提案されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−２９２９２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述の方法では、データ読出し時に誤り訂正符号の訂正能力を超えるエラーが発生すると、正しいデータを読むことができない。
【００１０】
本発明は、上記課題に鑑みて為されたものであり、データ読出しの際に誤り訂正符号の訂正能力を超えるエラーが発生する場合であっても正しくデータを読み出すことができる不揮発性記憶装置を提供することを目的としている。
【課題を解決するための手段】
【００１１】
本発明者は、上述の課題を解決するため、誤り訂正符号（以下、第１の誤り訂正符号と称する。）を付与したデータの集合に対して、さらに第２の誤り訂正符号を付与するという方法を考案した。例えば、第２の誤り訂正符号として、４ページ分のデータに対して１ページのパリティを付与するという方法を考案した。このようにすることにより、第１の誤り訂正符号の訂正能力を超えるエラーが発生した場合であっても、第２の誤り訂正符号（パリティ）を用いることで正しいデータを読み出すことが可能となる。
【００１２】
しかしながら、上述の方法において、データを格納したページに対応するワード線に不良が発生した場合、該ページを構成する全てのセルがそのワード線不良の影響を受け、該ページの読出しにおいてバースト誤りが発生する。その結果、エラービット数が、適用する誤り訂正符号の訂正能力を超過する場合には、正しいデータを読み出すことができなくなる、という問題が生じる。特に、近年増加しているマルチレベルセル（ＭＬＣ）のフラッシュメモリでは、複数のページで一つのワード線を共有する。このため、一つのワード線の不良によるデータ消失の範囲は増大しており、その影響も大きくなっている。
【００１３】
一般的に、ワード線不良によるバースト誤りは、セルの不良などによるランダムな誤りよりも発生確率は低いと考えられる。しかし、格納データの高信頼性を確保すべきシステムでは、バースト誤りの発生によりデータ読み取りが不能となることを極力回避することが要請される。
【００１４】
本発明は、更に、上述の課題に鑑みてなされたものであり、不揮発性メモリにおいてワード線不良によるバースト誤りが発生した場合でも、格納したデータを正しく読み出すことが可能である不揮発性記憶装置、及びメモリコントローラを提供することを目的とするものである。
【００１５】
本発明に係る不揮発性記憶装置は、アクセス装置と通信可能であり、前記アクセス装置からの指示によりデータの読み出し及び／又は書き込みを行う不揮発性記憶装置であって、データを記憶する一つ又は複数の不揮発性メモリと、前記不揮発性メモリの制御を行うメモリコントローラとを備え、前記不揮発性メモリは、消去単位であるブロックを複数含み、前記ブロックは、データの書き込み単位であるページを複数含み、前記ブロック内には、一つのワード線を共有する２以上のページからなるページの組が少なくとも一つ存在し、前記メモリコントローラは、データを格納するページであるデータページと、前記データページの誤り訂正演算のための符号を格納する誤り訂正符号ページとを、それぞれ一つ以上含む、誤り訂正グループを複数構成し、同一の前記誤り訂正グループにおける、前記データページと前記誤り訂正ページのそれぞれに対して、ワード線の異なるページを割り当てる。
【００１６】
本発明に係るメモリコントローラは、データを記憶する１つ以上の不揮発性メモリの制御を行うメモリコントローラであって、前記不揮発性メモリは、消去単位であるブロックを複数含み、前記ブロックは、データの書き込み単位であるページを複数含み、前記ブロック内には、一つのワード線を共有する２以上のページからなるページの組が少なくとも一つ存在し、前記メモリコントローラは、データを格納するページであるデータページと、前記データページの誤り訂正演算のための符号を格納する誤り訂正符号ページとを、それぞれ一つ以上含む、誤り訂正グループを複数構成し、同一の前記誤り訂正グループにおける、前記データページと前記誤り訂正ページのそれぞれに対して、ワード線の異なるページを割り当てる。
【発明の効果】
【００１７】
本発明によれば、第１の誤り訂正符号を付与したデータの集合に対して第２の誤り訂正符号を付与した上で不揮発性メモリに格納する。これにより、データ読出しの際に第１の誤り訂正符号の訂正能力を超えるエラーが発生する場合であっても正しくデータを読み出すことができる。更に、本発明によれば、不揮発性メモリにおいて一つのワード線不良によるバースト誤りが発生した場合でも、他のワード線により、パリティグループを構成する他のデータページやパリティページを読み出すことができる。これによりバースト誤りが発生したデータページを復元でき、結果として、格納したデータを正しく読み出すことができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施の形態１に係る不揮発性記憶システムの構成を示すブロック図。
【図２】本発明の実施の形態１に係る不揮発性メモリの構成の一例を示す図。
【図３】本発明の実施の形態１に係るブロックの構成の一例を示す図。
【図４】ワード線、ビット線、ページ、及び、ブロックの構成を示す図。
【図５】本発明の実施の形態１に係る不揮発性メモリにおける、ワード線を共有するページの組合せの一例を示した説明図。
【図６】本発明の実施の形態１に係るデータページの構成の一例を示す図。
【図７】（ａ）本発明の実施の形態１に係るパリティグループの一例を示す図、（ｂ）本発明の実施の形態１に係るパリティグループの別の一例を示す図。
【図８】本発明の実施の形態１におけるパリティグループの構成の一例を示す図。
【図９】本発明の実施の形態で除外されるパリティグループの構成の一例を示す図。
【図１０】本発明の実施の形態１に係る不揮発性記憶装置の書き込み処理の手順を示すフローチャート。
【図１１】本発明の実施の形態１における不揮発性記憶装置の読み出し処理の手順を示すフローチャート。
【図１２】本発明の実施の形態１における不揮発性記憶装置の初期化処理の手順を示すフローチャート。
【図１３】本発明の実施の形態２に係るパリティグループの構成の一例を示す図。
【発明を実施するための形態】
【００１９】
以下、本発明の各実施の形態について、図面を参照しながら説明する。
【００２０】
[実施の形態１]
１．１．不揮発性記憶システムの構成
本発明の実施の形態１に係る不揮発性記憶システム１０００の構成について、図１から図５を用いて説明する。
【００２１】
図１は、本発明の実施の形態１に係る不揮発性記憶システム１０００の概略構成図である。図１に示すように、不揮発性記憶システム１０００は、不揮発性記憶装置１と、不揮発性記憶装置１が装着されるアクセス装置２とを含んで構成される。不揮発性記憶装置１と、アクセス装置２とは、バスＢ１により接続されて、双方向に通信を行うことができる。不揮発性記憶装置１は、アクセス装置２からの指示に応じてデータの読み出し及び／又は書き込みを行う。ここで、不揮発性記憶装置１は、例えば、半導体メモリカードである。また、アクセス装置２は、例えば、半導体メモリカードに静止画コンテンツを記録するデジタルスチルカメラである。
【００２２】
図１に示すように、不揮発性記憶装置１は、メモリコントローラ１１と、データを記憶する一つ又は複数の不揮発性メモリ１２とを含む。メモリコントローラ１１と、不揮発性メモリ１２とは、バスＢ２により接続されている。メモリコントローラ１１は、不揮発性メモリ１２とバスＢ２を介して、データの送受信、すなわち、データの読み出し／書き込み、並びに、コマンドの送信及びレスポンスの受信等を行い、不揮発性メモリ１２の制御を行う。なお、不揮発性メモリ１２が複数存在する場合は、バスＢ２が複数存在していてもよい。
【００２３】
メモリコントローラ１１は、不揮発性記憶装置１の制御全般を行うモジュールであり、例えば、ＣＰＵなどを含むＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  ｉｎｔｅｇｒａｔｉｏｎ；大規模集積回路）として構成される。不揮発性メモリ１２は、例えば、ＮＡＮＤ型フラッシュメモリである。
【００２４】
メモリコントローラ１１は、図１に示すように、ＣＰＵ１０１と、ＲＡＭ１０２と、ＲＯＭ１０３と、アクセス装置インタフェース（ＩＦ）部１０４と、バッファ１０５と、不揮発性メモリインタフェース（ＩＦ）部１０６とを含む。メモリコントローラ１１の各機能部は、図１に示すように、バスＢＣ１を介して接続されている。なお、メモリコントローラ１１は、メモリコントローラ１１の機能部の全部又は一部が直接接続される構成であってもよい。
【００２５】
アクセス装置ＩＦ部１０４は、不揮発性記憶装置１とアクセス装置２との接続部である。アクセス装置２と不揮発性記憶装置１との制御信号及びデータの送受信は、アクセス装置ＩＦ部１０４を介して行われる。
【００２６】
不揮発性メモリＩＦ部１０６は、メモリコントローラ１１と不揮発性メモリ１２との接続部である。メモリコントローラ１１と不揮発性メモリ１２との制御信号及びデータの送受信は、不揮発性メモリＩＦ部１０６を介して行われる。
【００２７】
バッファ１０５は、アクセス装置ＩＦ部１０４を介してアクセス装置２から受信したデータ、アクセス装置ＩＦ部１０４を介してアクセス装置２に送信（出力）するデータ、不揮発性メモリＩＦ部１０６を介して不揮発性メモリ１２から読み出したデータ、及び、不揮発性メモリＩＦ部１０６を介して不揮発性メモリ１２に書き込むデータなどを、一時的に格納するためのメモリである。
【００２８】
ＲＯＭ１０３には、不揮発性記憶装置１を制御するプログラムが格納されている。このプログラムは、ＲＡＭ１０２にロードされ、ＣＰＵ１０１により実行される。
【００２９】
具体的には、ＲＯＭ１０３は、図１に示すように、コマンド処理部１１１と、アドレス管理部１１２と、符号処理部１１３と、不揮発性メモリ制御部１１４とを含む。なお、本実施の形態では、コマンド処理部１１１、アドレス管理部１１２、符号処理部１１３及び、不揮発性メモリ制御部１１４は、ＲＯＭ１０３上において、ソフトウェアにより実現されるものを想定しているが、これに限定されることはなく、例えば、コマンド処理部１１１、アドレス管理部１１２、符号処理部１１３及び、不揮発性メモリ制御部１１４の全部又は一部は、ハードウェアで実現されるものであってもよい。
【００３０】
コマンド処理部１１１は、アクセス装置ＩＦ部１０４を介して、アクセス装置２から受信したコマンド及びコマンドに関するパラメータを解釈し、コマンドの処理を実行する機能部である。
【００３１】
アドレス管理部１１２は、不揮発性メモリ１２のアドレス管理全般を行う。アドレス管理部１１２は特に論理アドレス物理アドレス対応管理部１１５を含む。該論理アドレス物理アドレス対応管理部１１５は、アクセス装置２からアクセス可能なアドレス空間として不揮発性記憶装置１が提供する論理アドレス空間における論理アドレスと、不揮発性メモリ１２の物理アドレスとを対応付ける変換テーブルが格納された、不揮発メモリ１２におけるブロックの物理アドレスを管理する。
【００３２】
なお、アドレス管理部１１２には、有効なデータが格納されていない。アドレス管理部１１２は、上述の論理アドレスと物理アドレスとの変換テーブルが格納されたブロックの物理アドレスの他に、データ書き込みに再利用可能なブロックであるフリーブロックの物理アドレスや、データ書き込みに利用不可能な不良ブロックの物理アドレスなどを管理する。
【００３３】
符号処理部１１３は、不揮発性メモリ１２において読み書きするデータに対する、第１及び第２の誤り訂正符号の処理を行う。ここで誤り訂正符号とは、例えば、リード・ソロモン符号やパリティである。
【００３４】
符号処理部１１３は、不揮発性メモリ１２へのデータ書き込み時に、データに対する第１の誤り訂正符号を生成する。さらに、データと該データの第１の誤り訂正符号に対する第２の誤り訂正符号を生成する。そしてデータ、第１の誤り訂正符号、及び、第２の誤り訂正符号を不揮発性メモリ１２に書き込む。
【００３５】
更に、符号処理部１１３は、不揮発性メモリ１２からのデータ読み出し時に、データとともに第１の誤り訂正符号を読み出し、読み出したデータのエラーの検出及び訂正を行う。第１の誤り訂正符号による訂正が不可能であるエラーが検出された場合には、さらに、不揮発性メモリ１２から第２の誤り訂正符号を読み出し、エラーの検出及び訂正を行う。
【００３６】
不揮発性メモリ制御部１１４は、不揮発性メモリＩＦ部１０６を介して送受信される制御信号を処理するデバイスドライバである。
【００３７】
図２は、本実施の形態に係る不揮発性メモリ１２の構成例を示す図である。不揮発性メモリ１２はデータの消去単位であるブロック１２１を複数個含む。それぞれのブロック１２１のサイズは、例えば、１ＭＢ（メガバイト）程度である。
【００３８】
図３は、図２に示すブロック１２１の構成例を示す図である。ブロック１２１は、データの書き込み単位であるページ１２２を複数個含む。それぞれのページ１２２のサイズは、例えば、８ｋＢ程度である。ブロック１２１あたりのページ数は、例えば、１２８ページである。
【００３９】
データの書き込み単位であるページ１２２は、セルという記憶素子を多数含み、各セルに電荷を蓄積・放出することで情報を記憶する。各セルへのデータの書込みはセルに接続されたワード線、及びビット線への電圧の印加によって行われる。ページ１２２は、ワード線を共有する複数のセルによって構成される。
【００４０】
図４は、不揮発性メモリ１２のワード線、ビット線、ページ及びブロックの関係を説明するための図である。ワード線ＷＬ０、ＷＬ１・・・とビット線ＢＬ０、ＢＬ１・・・の交差位置において、セル１２４が接続される。即ち、一つのワード線ＷＬ０、ＷＬ１・・・に複数のセル１２４が接続される。本実施の形態の不揮発性メモリ１２はマルチレベルセル（ＭＬＣ）のフラッシュメモリであり、一つのワード線ＷＬ０、ＷＬ１・・・に、二つのページ（第１のページと第２のページ）が割り当てられる。即ち、一つのワード線ＷＬ０、ＷＬ１・・・は、複数のページ（第１のページと第２のページ）によって共有される。
【００４１】
以下の説明では、ｍページ目のページを「ページ（ｍ）」と表記するものとする。例えば、図４においては、ワード線ＷＬ０をページ（０）とページ（２）が共有することを示している。
【００４２】
図５は、本実施の形態に係る不揮発性メモリ１２における、ワード線を共有するページの組合せ例を示す図である。この不揮発性メモリ１２においては、ブロック１２１には１２８個のページ１２２が存在し、同一のブロック１２１における２ページからなるページの組が、一つのワード線、及びその一つのワード線に複数設けられたマルチレベルセルを共有している。なお、図５では、２ページからなるページの組は「第１のページ」と「第２のページ」からなるものとしている。図５に示す組合せ例においては、ページ（０）とページ（２）、ページ（１）とページ（４）、・・・、ページ（１２３）とページ（１２６）、ページ（１２５）とページ（１２７）の各々の組が、一つのワード線、及びそのワード線に複数設けられたマルチレベルセルを共有している。より正確には、最初と最後の組合せを除くと、ｎを６２以下の自然数として、ページ（２ｎ−１）とページ（２ｎ＋２のページの組が、一つのワード線、及びそのワード線に複数設けられたマルチレベルセルを共有している。なお、ブロック１２１が異なるページ１２２同士は、ワード線（及びそのワード線に複数設けられたマルチレベルセル）を共有しない。
【００４３】
図４及び図５に示す例における不揮発性メモリ１２を構成するマルチレベルセル１２４は、４レベル（４値）を備えるものである。本実施の形態のマルチレベルセル１２４は、更に多くのレベル（値）を備えるものであってもよく、また、そのような場合、２ページよりも多いページからなるページの組によって、一つのワード線、及びその一つのワード線に複数設けられるマルチレベルセル１２４が共有される、という構成であってもよい。
【００４４】
１．２．誤り訂正符号の配置
次に、メモリコントローラ１１が不揮発性メモリ１２にデータを格納する際の、第１及び第２の誤り訂正符号の配置について図６から図９を用いて説明する。
【００４５】
図６は、本実施の形態に係る、データを格納したページ（以下、データページと称する。）の構成の一例を示す図である。データページには、ページ内にデータと該データに対する第１の誤り訂正符号を配置する。なお図６では、第１の誤り訂正符号を「ＥＣＣ」と記載している。
【００４６】
図６に示すように、ページ内に格納するデータに対して、分割して第１の誤り訂正符号を付与する場合には、分割されたデータと該データに対する第１の誤り訂正符号とを組として、データ及び第１の誤り訂正符号を交互に配置する。
【００４７】
不揮発性メモリ１２からのデータの読み出し時には、常にデータと共に該データに対する第１の誤り訂正符号を読み出すので、同一ページに連続的に配置されることによって、読み出し時の制御信号（例えば、アドレス指定等）のオーバーヘッドを少なくできる。
【００４８】
図７（ａ）及び図７（ｂ）は、本実施の形態に係る、一つ以上のデータページに第２の誤り訂正符号を付与したもの（以下、パリティグループと称する。）の例を示す図である。本実施の形態では、第２の誤り訂正符号としてパリティを用いるものとし、第２の誤り訂正符号を格納したページをパリティページと称するものとする。
【００４９】
なお、第２の誤り訂正符号としてパリティ以外（例えば、リード・ソロモン符号）の誤り訂正符号を用いてもよい。この場合、パリティグループをより一般的に誤り訂正グループと称してもよい。
【００５０】
図７（ａ）では、４つのデータページに対して、１つのパリティページが付与されて１つのパリティグループを構成している。パリティページには、例えば、各データページに格納されているデータのＸＯＲ（排他的論理和）の値を格納する。さらに、このＸＯＲの値に対する第１の誤り訂正符号を格納する。
【００５１】
図７（ｂ）では、４つの２ページ分のデータページに対して、１つの２ページ分のパリティページが付与されて、１つのパリティグループを構成している。
【００５２】
なお、図７（ａ）及び図７（ｂ）では、データページとパリティページの比率が４対１とされているが、その他任意の比率が適用されてもよい。データページの比率が多い程、不揮発性メモリ１２に格納できるデータの容量は増加する。パリティページの比率が多い程、データページに対する誤り訂正能力は増大する。
【００５３】
図８は、実施の形態１に係る、パリティグループの構成の一例を示す図である。図８において、Ｄ０、Ｄ１、・・・、Ｄ１５はデータページを表しており、Ｐ０−３はＤ０からＤ３に対するパリティページ、Ｐ４−７はＤ４からＤ７に対するパリティページ、Ｐ８−１１はＤ８からＤ１１に対するパリティページ、Ｐ１２−１５はＤ１２からＤ１５に対するパリティページを表している。
【００５４】
特に、本実施の形態では、各パリティグループを構成するデータページ及びパリティページの夫々が、「ワード線を共有しない」ように配置されている。例えば、データページＤ０、Ｄ１、Ｄ２、Ｄ３と、パリティページＰ０−３で構成されるパリティグループにおいて、データページＤ０とパリティページＰ０−３は同一ブロック１２１ｐの異なるページ（ページ（０）、ページ（１））に配置されているが、これらのページはワード線を共有していない（図４、図５参照）。更に、データページＤ１、Ｄ２、Ｄ３の夫々と、パリティページＰ０−３とは、異なるブロックに配置されているので、データページＤ１、Ｄ２、Ｄ３の夫々とパリティページＰ０−３とはワード線を共有しない。
【００５５】
同様に、データページＤ４、Ｄ５、Ｄ６、Ｄ７と、パリティページＰ４−７で構成されるパリティグループにおいて、データページＤ４とパリティページＰ４−７は同じブロック１２１ｑの異なるページ（ページ（１）、ページ（２））に配置されているが、これらのページはワード線を共有していない。更に、データページＤ５、Ｄ６、Ｄ７の夫々と、パリティページＰ４−７とは、異なるブロックに配置されているので、データページＤ５、Ｄ６、Ｄ７の夫々とパリティページＰ４−７とはワード線を共有しない。
【００５６】
従って、データページの読み出しにおいて、該データページを構成するワード線に不良が発生し、バースト誤りが発生した場合であっても、パリティグループを構成する他のデータページ及びパリティページは、ワード線が異なることから、正常に読み出しが行える確率が高い。従って、このとき、パリティページ（第２の誤り訂正符号）を用いてバースト誤りが発生したデータページの情報を復元することが可能となる。
【００５７】
また、各パリティグループは２つの不揮発性メモリ１２ａ、１２ｂの、４つのブロック１２１ｐ、１２１ｑ、１２１ｒ、１２１ｓに跨って配置されている。そのため、各パリティグループの書き込みにおいては、異なる不揮発性メモリに対する並列書き込み（以下、インタリーブ書き込みと称する。）や、同一不揮発性メモリにおける異なるブロックへの並列書き込み（以下、マルチページプログラムと称する。）により、高速に行うことが可能である。さらに、連続するパリティグループの書き込みもインタリーブ書き込みやマルチページプログラムを利用することで、高速に行うことが可能である。
【００５８】
同様に、各パリティグループの読み出しにおいては、異なる不揮発性メモリに対する並列読み出し（以下、インタリーブ読み出しと称する。）や、同一不揮発性メモリにおける異なるブロックからの並列読み出し（以下、マルチページリードと称する。）により、高速に行うことが可能である。さらに、連続するパリティグループの読み出しもインタリーブ読み出しやマルチページリードを利用することで、高速に行うことが可能である。
【００５９】
さらに、図８に示すパリティグループの配置において、不揮発性メモリ１２ａに配置するページ数と不揮発性メモリ１２ｂに配置するページ数との比率は、３：２である。このページ数の比率に比例して、不揮発性メモリ１２ａ上の６個の（物理）ブロックと、不揮発性メモリ１２ｂ上の４個の（物理）ブロックとにより、１０個の（物理）ブロックを論理ブロックとして管理することとする。ここで、不揮発性メモリ１２ａの６個の（物理）ブロックは、マルチプログラムを行う２ブロックの３組に対応し、不揮発性メモリ１２ｂの４個の（物理）ブロックは、マルチプログラムを行う２ブロックの２組に対応する。このようにすることにより、論理ブロックを構成する（物理）ブロックに対して、パリティグループを余りなく格納できる。従って、アドレス管理部１１２におけるアドレス管理処理を簡素化することができる。
【００６０】
本発明に係る実施の形態１の特徴をより明確にするため、実施の形態１で除外されるパリティグループについても、以下、言及する。
【００６１】
図９は、本実施の形態で除外されるパリティグループの構成の例を示す図である。図９において、Ｄ０、Ｄ１、・・・、Ｄ９はデータページを表しており、Ｐ０−３はＤ０からＤ３に対するパリティページ、Ｐ４−７はＤ４からＤ７に対するパリティページを表している。各データページ及びパリティページは２ページ分を単位として構成されている。
【００６２】
図９に示す構成の例では、各パリティグループを構成するデータページ、及び、パリティページが、「ワード線を共有しない」ように配置されていない。例えば、データページＤ０、Ｄ１、Ｄ２、Ｄ３と、パリティページＰ０−３で構成されるパリティグループにおいて、データページＤ０とパリティページＰ０−３は、同一ブロック１２１ｐ、１２１ｑの異なるページ（即ち、ページ（０）とページ（２））に配置されているが、これらのページはワード線を共有している（図４参照）。
【００６３】
従って、データページの読み出しにおいて、該データページを構成するワード線に不良が発生し、バースト誤りが発生した場合は、パリティグループを構成する他のデータページ及びパリティページにおいてもワード線が共通であるならば正常に読み出しが行えない確率が高くなる。このとき、パリティページ（第２の誤り訂正符号）を用いてバースト誤りが発生したデータページの情報を復元することが困難となる。よって、図９に示す例は、本実施の形態で除外されるパリティグループの構成である。
【００６４】
１．３．不揮発性記憶システムの動作
次に、不揮発性記憶システム１０００の動作について図１０から図１２を用いて説明する。
【００６５】
不揮発性記憶装置１は、アクセス装置２に装着され、アクセス装置２が発行するコマンドに応じた処理を実施する。アクセス装置２は、静止画データや動画データなどの記録や再生を行うために、必要なコマンド（例えば、書き込みコマンドや読み出しコマンド）を不揮発性記憶装置１に発行し、データの送受信を行う。
【００６６】
１．３．１．書き込み処理
アクセス装置２が不揮発性記憶装置１に書き込みコマンドを発行し、書き込みデータを転送することにより、不揮発性記憶装置１では書き込み処理が行われる。図１０は、本発明の実施の形態１に係る不揮発性記憶装置１の書き込み処理の手順を示すフローチャートである。
【００６７】
まず、ステップＳ１０１における処理を説明する。コマンド処理部１１１は、アクセス装置ＩＦ部１０４を介してアクセス装置２からの書き込みコマンドを受信すると、書き込みコマンドに付随する書き込みアドレス、サイズなどの条件を取得し、この条件から書き込みを行うパリティグループの論理アドレスを特定し、これらの情報をアドレス管理部１１２に通知する。アドレス管理部１１２は、コマンド処理部１１１から取得された情報、論理アドレス物理アドレス対応管理部１１５から取得される論理アドレスと物理アドレスの変換テーブルの情報、フリーブロックのアドレス情報、及び、ブロックへの書き込み状態（例えば、どのブロックに、何ページ目まで、どんな論理アドレスのデータを書き込んだか、に関する状態）を管理するテーブルの情報を参照し、不揮発性メモリ１２における物理的な書き込み先を決定する。
【００６８】
次に、ステップＳ１０２における処理を説明する。コマンド処理部１１１は、符号処理部１１３に書き込みのための準備を指示する。符号処理部１１３は、バッファ１０５上に第２の誤り訂正符号の演算のための領域を確保し、該領域の値を初期値に設定する。
【００６９】
次に、ステップＳ１０３における処理を説明する。コマンド処理部１１１は、アクセス装置２からの書き込みデータを、アクセス装置ＩＦ部１０４を介してバッファ１０５に格納する。符号処理部１１３は、該書き込みデータに対する第１の誤り訂正符号を生成する。そして、バッファ１０５上に該書き込みデータ及びその第１の誤り訂正符号からなるデータページの情報を生成する。データページの情報の生成にあたり、アクセス装置２から受信した書き込みデータでは不足する場合（例えば、アクセス装置２がパリティグループやデータページの途中のアドレスから書き込みを指示した場合）には、アドレス管理部１１２を参照して、不揮発性記憶装置１の既存のデータを読み出し、これに対する第１の誤り訂正符号を生成する。そして、既存のデータとこれに対する第１の誤り訂正符号によって、データページの情報の不足分を補う。
【００７０】
次に、ステップＳ１０４における処理を説明する。符号処理部１１３は、ステップＳ１０２で確保した第２の誤り訂正符号の演算のための領域における値と、ステップＳ１０３で生成したデータページの情報を参照して、第２の誤り訂正符号の演算（例えば、ＸＯＲ（排他的論理和）演算）を行い、その結果を、ステップＳ１０２で確保した第２の誤り訂正符号の演算のための領域に書き戻す。
【００７１】
次に、ステップＳ１０５における処理を説明する。不揮発性メモリ制御部１１４は、ステップＳ１０３で生成したデータページの情報を、不揮発性メモリＩＦ部１０６を介して、ステップＳ１０１で決定した物理的な書き込み先に書き込む。
【００７２】
次に、ステップＳ１０６における処理を説明する。直前のステップＳ１０５で書き込んだデータページがパリティグループの終端であった場合には、ステップＳ１０７の処理に進む。そうでない場合はステップＳ１０３の処理に戻り、パリティグループ内の次のデータページの書き込みを継続する。このとき、直前のステップＳ１０５における書き込み処理で用いられたワード線とは異なるワード線を介して、書き込みが行われる。
【００７３】
次に、ステップＳ１０７における処理を説明する。符号処理部１１３は、ステップＳ１０４で生成した第２の誤り訂正符号の演算結果をパリティとし、該パリティに対する第１の誤り訂正符号を生成する。不揮発性メモリ制御部１１４は、前記パリティ及びその第１の誤り訂正符号をパリティページとして、不揮発性メモリＩＦ部１０６を介して、ステップＳ１０１で決定した物理的な書き込み先に書き込む。このとき、直前のステップＳ１０５における書き込み処理で用いられたワード線とは異なるワード線を介して、書き込みが行われる。
【００７４】
次に、ステップＳ１０８における処理を説明する。アクセス装置２からの書き込みデータを全て書き込んだ場合には、書き込み処理を終了する。そうでない場合は、ステップＳ１０１の処理に戻り、アクセス装置２からの書き込みデータのうち、書き込みが済んでいないものの書き込みを継続する。
【００７５】
なお、ステップＳ１０５、及び、ステップＳ１０７における不揮発性メモリ１２への書き込みは、インタリーブ書き込みやマルチページプログラムにより高速に行うことが望ましい。この場合、データページやパリティページの書き込みを開始した直後に、次のステップの処理に進むことができる。
【００７６】
１．３．２．読み出し処理
アクセス装置２が不揮発性記憶装置１に読み出しコマンドを発行することにより、不揮発性記憶装置１では読み出し処理が行われる。読み出しデータは、順次、不揮発性記憶装置１からアクセス装置２に転送される。図１１は、本発明の実施の形態１に係る不揮発性記憶装置１の読み出し処理の手順を示すフローチャートである。
【００７７】
まず、ステップＳ２０１における処理を説明する。コマンド処理部１１１は、アクセス装置ＩＦ部１０４を介してアクセス装置２からの読み出しコマンドを受信すると、読み出しコマンドに付随する読み出しアドレス、サイズなどの条件を取得し、この条件から読み出しを行うパリティグループの論理アドレスを特定し、これらの情報をアドレス管理部１１２に通知する。アドレス管理部１１２は、コマンド処理部１１１から取得した情報、論理アドレス物理アドレス対応管理部１１５から取得される論理アドレスと物理アドレスの変換テーブルの情報、フリーブロックのアドレス情報、及び、ブロックへの書き込み状態（どのブロックに、何ページ目まで、どんな論理アドレスのデータを書き込んだか、に関する状態）を管理するテーブルの情報を参照し、不揮発性メモリ１２における物理的な読み出し先を決定する。
【００７８】
次に、ステップＳ２０２における処理を説明する。不揮発性メモリ制御部１１４は、不揮発性メモリＩＦ部１０６を介して、ステップＳ２０１で決定した物理的な読み出し先からデータページの情報の読み出しを行う。読み出したデータページの情報（即ち、データ及び該データに対する第１の誤り訂正符号）はバッファ１０５に格納する。
【００７９】
次に、ステップＳ２０３における処理を説明する。符号処理部１１３は、ステップＳ２０２でバッファ１０５上に格納した第１の誤り訂正符号を用いてデータのエラー検出及び訂正を行う。第１の誤り訂正符号に基づく訂正能力では訂正できないエラーを検出した場合には、ステップＳ２０４の処理に進む。そうでない場合は、第１の誤り訂正符号を用いてエラー訂正を行い、バッファ１０５上のデータに対してエラー訂正後の情報を上書きし、ステップＳ２０６の処理に進む。
【００８０】
なお、ステップＳ２０２で読み出したデータページの情報が、アクセス装置２が指定した読み出しアドレス以外の情報も含む場合（例えば、アクセス装置２がデータページの途中のアドレスから読み出しを指示した場合）には、読み出しアドレス以外の部分に対する第１の誤り訂正符号の演算は省略してもよい。
【００８１】
次に、ステップＳ２０４における処理を説明する。不揮発性メモリ制御部１１４は、不揮発性メモリＩＦ部１０６を介して、ステップＳ２０１で決定した物理的な読み出し先からＳ２０２で読み出しを行ったデータページが属するパリティグループの情報の読み出しを行う。読み出したパリティグループの情報（即ち、ステップＳ２０２で読み出しを行ったデータページ以外のデータページ、及び、パリティページ）には第１の誤り訂正符号が付与されているので、符号処理部１１３は、第１の誤り訂正符号を用いてデータのエラー訂正を行ったのち、データ及びパリティをバッファ１０５に格納する。
【００８２】
次に、ステップＳ２０５における処理を説明する。符号処理部１１３は、ステップＳ２０４でバッファ上に格納したデータページ及びパリティページ（第２の誤り訂正符号）の情報を用いてデータのエラー検出及び訂正を行う。第２の誤り訂正符号に基づく訂正能力では訂正できないエラーを検出した場合には、（図示しない）エラー処理を行い、読み出し処理を終了する。そうでない場合は、第２の誤り訂正符号を用いてエラー訂正を行い、バッファ１０５上のデータに対してエラー訂正後の情報を上書きし、ステップＳ２０６の処理に進む。
【００８３】
例えば、第２の誤り訂正符号の演算としてＸＯＲ（排他的論理和）演算を適用していた場合には、ステップＳ２０２で読み出しを行ったデータページ以外のデータページのデータ、及び、パリティページのパリティのＸＯＲ演算を行う。これにより、ステップＳ２０２で読み出しを行ったデータページのデータを復元できる。
【００８４】
次に、ステップＳ２０６における処理を説明する。コマンド処理部１１１は、バッファ１０５に格納された（誤り訂正処理後の）データを読み出しデータとしてアクセス装置２に送信する。
【００８５】
次に、ステップＳ２０７における処理を説明する。アクセス装置２が指定した読み出しデータを全て送信した場合には、読み出し処理を終了する。そうでない場合は、ステップＳ２０１の処理に戻り、アクセス装置２への読み出しデータのうち、未送信のものの読み出しを継続する。
【００８６】
なお、ステップＳ２０２、及び、ステップＳ２０４における不揮発性メモリ１２からの読み出しは、インタリーブ読み出しやマルチページリードにより高速に行うことが望ましい。この場合、データページやパリティページの読み出しを開始した直後に、次のステップの処理に進むことができる。
【００８７】
１．３．３．初期化処理
アクセス装置２に不揮発性記憶装置１が装着され、アクセス装置２から不揮発性記憶装置１への電源供給が開始された後、アクセス装置２が不揮発性記憶装置１に初期化コマンドを発行することにより、アクセス装置２から不揮発性記憶装置１へのデータの読み書きが可能となる。図１２は、本発明の実施の形態１に係る不揮発性記憶装置１の初期化処理の手順を示すフローチャートである。
【００８８】
まず、ステップＳ３０１における処理を説明する。コマンド処理部１１１は、アクセス装置ＩＦ部１０４を介してアクセス装置２からの初期化コマンドを受信すると、メモリコントローラ１１のハードウェアの初期設定を行う。また、不揮発性メモリＩＦ部１０６に接続されている不揮発性メモリ１２の接続確認などを行う。
【００８９】
次に、ステップＳ３０２における処理を説明する。不揮発性メモリ制御部１１４は、不揮発性メモリＩＦ部１０６を介して、不揮発性メモリ１２の所定の読み出し先から、第１のシステム情報を読み出す。第１のシステム情報は、不揮発性記憶装置１の製造時に予め不揮発性メモリ１２に書き込まれている情報であり、不揮発性記憶装置１における各種の制御情報である。第１のシステム情報として、例えば、メモリコントローラ１１に接続されている不揮発性メモリ１２の種類、数、ワード線を共有するページに関する情報、パリティグループの構成情報、第１及び第２の誤り訂正符号の種類や訂正能力、（後で説明する）第２のシステム情報の物理的な格納位置に関する情報、初期の不良ブロックのアドレスに関する情報、などがある。第１のシステム情報の読み出しにおいてエラーが発生した場合には、第１及び／または第２の誤り訂正符号によるエラー訂正を行う。
【００９０】
アドレス管理部１１２、符号処理部１１３、及び、不揮発性メモリ制御部１１４は、読み出した第１のシステム情報の内容に応じて、内部的な初期化処理を行う。
【００９１】
次に、ステップＳ３０３における処理を説明する。不揮発性メモリ制御部１１４は、不揮発性メモリＩＦ部１０６を介して、（例えば、第１のシステム情報において指定されている）不揮発性メモリ１２の所定の読み出し先から、第２のシステム情報を読み出す。第２のシステム情報は、不揮発性記憶装置１の製造時に第１のシステム情報が予め不揮発性メモリ１２に書き込まれた後、不揮発性記憶装置１が使用されることにより更新される情報であり、不揮発性記憶装置１における各種の制御情報である。第２のシステム情報として、例えば、論理アドレス物理アドレス対応管理部１１５が管理する、論理アドレスと物理アドレスの変換テーブルに関する情報、後発性の不良ブロックのアドレスに関する情報、ブロックの書き込み回数や消去回数に関する情報、及び、フリーブロックのアドレスに関する情報、などがある。第２のシステム情報の読み出しにおいてエラーが発生した場合には、第１及び／または第２の誤り訂正符号によるエラー訂正を行う。
【００９２】
次に、ステップＳ３０４における処理を説明する。アドレス管理部１１２は、読み出した第２のシステム情報の内容に応じて、アドレス管理に必要となるテーブル情報をＲＡＭ１０２上に生成する。
【００９３】
次に、ステップＳ３０５における処理を説明する。ステップＳ３０２、及び、ステップＳ３０３において、不揮発性メモリ１２からの読み出しで所定の量を超える（第１または第２の誤り訂正符号で訂正可能な）エラーが発生した場合にはステップＳ３０６の処理に進む。そうでなければ、ステップＳ３０７の処理に進む。
【００９４】
次に、ステップＳ３０６における処理を説明する。ステップＳ３０２、及び、ステップＳ３０３での不揮発性メモリ１２からの読み出しで所定の量を超えるエラーが発生した箇所のデータに対して、符号処理部１１３は、第１及び第２の誤り訂正符号を生成する。そして、不揮発性メモリ制御部１１４はデータと生成した第１及び第２の誤り訂正符号を、新たな第１または第２のシステム情報として不揮発性メモリ１２に書き戻す。
【００９５】
次に、ステップＳ３０７における処理を説明する。コマンド処理部１１１は、アクセス装置ＩＦ部１０４を介して、アクセス装置２に不揮発性記憶装置１の初期化処理が完了したことを通知して初期化処理を終了する。
【００９６】
１．４．まとめ
本実施の形態に係る不揮発性記憶装置は、アクセス装置２と通信可能であり、アクセス装置２からの指示によりデータの読み出し及び／又は書き込みを行う不揮発性記憶装置１である。不揮発性記憶装置１は、データを記憶する一つ又は複数の不揮発性メモリ１２と、不揮発性メモリ１２の制御を行うメモリコントローラ１１とを備える。不揮発性メモリ１２は、消去単位であるブロック１２１を複数含み、ブロック１２１は、データの書き込み単位であるページ１２２を複数含み、ブロック１２１内には、一つのワード線を共有する２以上のページ１２２からなるページの組が少なくとも一つ存在する。メモリコントローラ１１は、データを格納するページ１２２であるデータページと、データページの誤り訂正演算のための符号を格納する誤り訂正符号ページとを、それぞれ一つ以上含む、誤り訂正グループを複数構成し、同一の誤り訂正グループにおける、データページと誤り訂正ページのそれぞれに対して、ワード線の異なるページを割り当てる。
【００９７】
以上のように、不揮発性記憶装置１では、データと同一ページに格納する第１の誤り訂正符号とは別に、第２の誤り訂正符号をも格納する。第２の誤り訂正符号を格納する単位であるパリティグループにおいては、各データページ及びパリティページがワード線を共有しないように構成する。データの書き込み時には、データに第１及び第２の誤り訂正符号を付与して書き込む。データの読み出し時には、データに付与された第１及び／または第２の誤り訂正符号を用いてエラー訂正を行う。
【００９８】
この結果、本実施の形態では、データページの読み出しにおいて、データページに接続する一つのワード線に不良が発生し、バースト誤りが発生した場合であっても、パリティグループを構成する他のデータページ及びパリティページは、異なるワード線に接続しているので、他のデータページ及びパリティページの読み出しを正常に行える。従って、このとき、パリティページ（第２の誤り訂正符号）の情報及び他のデータページの情報を用いて、バースト誤りが発生したデータページの情報を復元することが可能となる。
【００９９】
さらに、パリティグループを構成するデータページ及びパリティページは、メモリコントローラに接続された不揮発性メモリが複数存在する場合には、複数の不揮発性メモリ、及び不揮発性メモリ内の複数のブロックに跨って配置される。そのため、一つの若しくは連続するパリティグループに対して、インタリーブ書き込み、マルチページプログラムによる高速書き込み、インタリーブ読み出し、及び、マルチページリードによる高速読み出しを行うことができる。
【０１００】
なお、各パリティグループにおいて、パリティグループを構成するデータページ及びパリティページでは、ワード線が異なっていればよく、必ずしも異なる不揮発性メモリや異なるブロックに配置させる必要はない。例えば、パリティグループを構成するデータページ及びパリティページのうち、少なくとも二つが同一のブロックに配置されてもよい。従って、使用する不揮発性メモリの数が少ない、比較的小容量の不揮発性記憶装置においても、本実施の形態は適用可能である。
【０１０１】
本実施の形態では、誤り訂正（パリティ）グループの構成に関する情報は不揮発性メモリに格納される。このため、不揮発性メモリの情報を別途書き換えることにより誤り訂正（パリティ）グループの構成を別の任意の構成に切り替えることが可能である。
【０１０２】
更に本実施の形態では、不揮発性記憶装置が使用するシステム情報も、誤り訂正（パリティ）グループにおける誤り訂正演算の要素となるデータとして不揮発性メモリに格納される。このため、不揮発性記憶装置が使用するシステム情報をバースト誤りから保護することができる。
【０１０３】
上述の実施の形態で記載されている値は一例に過ぎず、他の値が用いられてもよい。例えば、パリティグループを構成するデータページ及びパリティページにおける、夫々のページ数の値は全て一例に過ぎず、上述の実施の形態で記載されている値に限定されるものではない。
【０１０４】
[実施の形態２]
本発明の実施の形態２では、誤り訂正符号の配置のみが実施の形態１と異なる。不揮発性記憶システム１０００の構成および動作は、実施の形態１と同様であるため説明を省略し、両者の差異を中心に説明する。
【０１０５】
２．１．誤り訂正符号の配置
本発明の実施の形態２に係る不揮発性記憶装置１において、メモリコントローラ１１が不揮発性メモリ１２にデータを格納する際の、第１及び第２の誤り訂正符号の配置について説明する。
【０１０６】
実施の形態１との差異は、実施の形態１におけるパリティグループの構成が図８のような構成であったのに対して、実施の形態２では図１３のような構成になることである。
【０１０７】
図１３は、本発明の実施の形態２に係るパリティグループの構成の一例を示す図である。図１３において、Ｄ０、Ｄ１、・・・、Ｄ７はデータページを表しており、Ｐ０−３はＤ０からＤ３に対するパリティページ、Ｐ４−７はＤ４からＤ７に対するパリティページを表している。
【０１０８】
実施の形態１に係る図８に示す例では、図７（ａ）に示すように、４つのデータページに対して、１つのパリティページが付与されて一つのパリティグループを構成している。これに対し、実施の形態２に係る図１３に示す例では、図７（ｂ）で示すように、４つの２ページ分のデータページに対して、１つの２ページ分のパリティページが付与されて一つのパリティグループを構成している。
【０１０９】
また、本実施の形態では、一つのパリティグループが、５個の不揮発性メモリ１２と１０個のブロック１２１に跨って配置されている。
【０１１０】
上述のような差異はあるが、実施の形態２においても、各パリティグループを構成するデータページ、及び、パリティページが「ワード線を共有しない」ように配置されていることは、実施の形態１と同様である。従って、パリティページ（第２の誤り訂正符号）を用いることにより、バースト誤りが発生したデータページの情報を復元することが可能となる。
【０１１１】
[他の実施の形態]
なお、本発明について、上述の各実施の形態に基づいて説明してきたが、本発明は、勿論、上述の各実施の形態のみに限定されるものではなく、本発明の技術的思想を逸脱しない範囲で実施の形態を変更することができる。また、以下のように変更することも可能である。
【０１１２】
[１]  上述の各実施の形態における、アクセス装置２、不揮発性記憶装置１、メモリコントローラ１１、及び不揮発性記憶システム１０００において、各機能ブロックは、ＬＳＩなどの半導体装置により個別に１チップ化されてもよいし、一部又は全部を含むように１チップ化されてもよい。
【０１１３】
なお、上記では、ＬＳＩを例として取り上げたが、集積度の違いにより、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩなどの半導体装置によりチップ化されてもよい。
【０１１４】
また、集積回路化の手法は、ＬＳＩに限るものではなく、専用回路又は汎用プロセッサで集積回路が実現されてもよい。また、ＬＳＩ製造後にプログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサ（Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ  Ｐｒｏｃｅｓｓｏｒ）を利用してもよい。
【０１１５】
さらには、半導体技術の進歩又は派生する別技術により、ＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。例えば、バイオ技術の適用等が可能性としてあり得る。
【０１１６】
[２]  上述の各実施の形態における各処理をハードウェアにより実現してもよいし、ソフトウェア（ＯＳ（オペレーティングシステム）、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。）により実現してもよい。さらに、ソフトウェア及びハードウェアの混在処理により実現してもよい。なお、上述の各実施の形態に係るアクセス装置２、不揮発性記憶装置１、及び不揮発性記憶システム１０００をハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上述の各実施の形態においては、説明便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
【０１１７】
また、上述の各実施の形態における処理方法の実行順序は、必ずしも、上述の各実施の形態の記載内容に制限されるものではなく、本発明の技術的思想を逸脱しない範囲で、実行順序を入れ替えることができるものである。
【０１１８】
[３]  上述の各実施の形態における不揮発性記憶装置は、半導体メモリカードのような着脱可能な記憶装置として説明したが、アクセス装置の基板に組み込みできる形式の情報記憶モジュールとして実現してもよい。
【産業上の利用可能性】
【０１１９】
本発明に係る不揮発性記憶装置、及びメモリコントローラは、ワード線不良によるバースト誤りが発生した場合でも、不揮発性メモリへの格納データを正しく読み出すことが可能であり、よって、格納データの信頼性を向上することができる。このことは、半導体メモリカードはいうまでもなく、不揮発性メモリを内蔵する情報端末である、デジタルスチルカメラ、携帯電話端末、ムービー、デジタルテレビ、ＤＶＤレコーダ等に有用である。よって、本発明は、半導体メモリ関連分野において利用することができる。
【符号の説明】
【０１２０】
１０００  不揮発性記憶システム
１  不揮発性記憶装置
２  アクセス装置
１１  メモリコントローラ
１２  不揮発性メモリ
１０１  ＣＰＵ
１０２  ＲＡＭ
１０３  ＲＯＭ
１０４  アクセス装置ＩＦ部
１０５  バッファ
１０６  不揮発性メモリＩＦ部
１１１  コマンド処理部
１１２  アドレス管理部
１１３  符号処理部
１１４  不揮発性メモリ制御部
１２１  ブロック
１２２  ページ
【図１】
0005426711.tif 000002
【図２】
0005426711.tif 000003
【図３】
0005426711.tif 000004
【図４】
0005426711.tif 000005
【図５】
0005426711.tif 000006
【図６】
0005426711.tif 000007
【図７】
0005426711.tif 000008
【図８】
0005426711.tif 000009
【図９】
0005426711.tif 000010
【図１０】
0005426711.tif 000011
【図１１】
0005426711.tif 000012
【図１２】
0005426711.tif 000013
【図１３】
0005426711.tif 000014