(57)【要約】【課題】プリフェッチの効率を向上させること。【解決手段】メモリシステムは、メモリと、メモリコントローラとを備える。メモリは、第１の数の並列動作要素を備える。第１の数の並列動作要素のそれぞれは複数の第１記憶領域を有する不揮発性のメモリセルアレイとバッファとを備える。メモリコントローラは、第１グループを構築する。第１グループは２以上の数である第２の数の第２記憶領域を含む。第２の数の第２記憶領域のそれぞれは第１の数の並列動作要素のうちの１の並列動作要素に属する複数の第１記憶領域に含まれるそれぞれ異なる第１記憶領域である。メモリコントローラは、第２の数の第２記憶領域のうちの１の第２記憶領域からホストから要求されたデータである第１データを取得するに応じて、第２の数の第２記憶領域のうちの他の第２記憶領域から第２データを１の並列動作要素のバッファに読み出す。【選択図】図７
2018163434.tif 000002
【特許請求の範囲】
【請求項１】
ホストに接続可能なメモリシステムであって、
第１の数の並列動作要素を備え、前記第１の数の並列動作要素のそれぞれは複数の第１記憶領域を有する不揮発性のメモリセルアレイとバッファとを備える、メモリと、
第１グループを構築し、前記第１グループは２以上の数である第２の数の第２記憶領域を少なくとも含み、前記第２の数の第２記憶領域のそれぞれは前記第１の数の並列動作要素のうちの１の並列動作要素に属する複数の第１記憶領域に含まれるそれぞれ異なる第１記憶領域であり、前記第２の数の第２記憶領域のうちの１の第２記憶領域から前記ホストから要求されたデータである第１データを取得するに応じて、前記第２の数の第２記憶領域のうちの他の第２記憶領域から第２データを前記１の並列動作要素のバッファに読み出す、メモリコントローラと、
を備えることを特徴とするメモリシステム。
【請求項２】
前記メモリコントローラは、前記第２データを前記１の並列動作要素のバッファに読み出した後に前記第２データが前記ホストから要求された場合、前記１の並列動作要素のバッファに格納されている前記第２データを取得する、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項３】
誤り訂正を実行する回路をさらに備え、
前記メモリコントローラは、前記第２の数の第２グループを構築し、前記第１グループは、前記第２の数の第２グループを含み、前記第２の数の第２グループのそれぞれは、前記第１の数の並列動作要素のうちのそれぞれ異なる並列動作要素に属する前記第１の数の第１記憶領域を含み、前記第２の数の第２記憶領域のそれぞれは、前記第２の数の第２グループのそれぞれ異なる第２グループに含まれ、前記第１の数と前記第２の数との積である第３の数のデータによって前記誤り訂正のフレームを構築し、前記第３の数のデータのそれぞれを、前記第２の数の第２グループのいずれかに属する前記第３の数の第１記憶領域のうちのそれぞれ異なる第１記憶領域に書き込む、
ことを特徴とする請求項２に記載のメモリシステム。
【請求項４】
前記メモリコントローラは、前記第２の数の第２グループの順序を記憶し、前記他の第２記憶領域が属する第２グループは前記順序において前記１の第２記憶領域が属する第２グループよりも後であり、前記第２データの読み出し元である前記他の第２記憶領域を前記順序に基づいて特定する、
ことを特徴とする請求項３に記載のメモリシステム。
【請求項５】
前記メモリコントローラは、不良な第１記憶領域である第３記憶領域を記憶し、
前記第２の数の第２記憶領域のうちの前記１の第２記憶領域から、属する第２グループが前記順序において後続する第２記憶領域を順次探索し、前記第３記憶領域に該当しない第２記憶領域が探索された場合、前記探索された前記第３記憶領域に該当しない第２記憶領域を前記他の第２記憶領域として特定する、
ことを特徴とする請求項４に記載のメモリシステム。
【請求項６】
前記第１の数の並列動作要素のうちの前記１の並列動作要素を含む第４の数の並列動作要素を備えるメモリチップをさらに備え、
前記メモリコントローラは、前記他の第２記憶領域と同一の第２グループに含まれる前記第４の数の第１記憶領域のうちの前記第３記憶領域に該当しない第１記憶領域を特定し、複数の第１記憶領域を特定した場合には、前記特定した複数の第１記憶領域から前記バッファに同時にデータを読み出す、
ことを特徴とする請求項５に記載のメモリシステム。
【請求項７】
前記メモリコントローラは、前記ホストからの要求のパターンがシーケンシャルリードに該当するか否かを判定し、前記パターンが前記シーケンシャルリードに該当する場合、前記第１データを取得するに応じて前記第２データのバッファへの読み出しを実行し、前記パターンが前記シーケンシャルリードに該当しない場合、前記第１データを取得するに応じて前記第２データのバッファへの読み出しを実行しない、
ことを特徴とする請求項１に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、メモリシステムに関する。
【背景技術】
【０００２】
コンピュータシステムに用いられる外部記憶装置として、不揮発性のメモリセルアレイを有するメモリを搭載したメモリシステムが注目されている。メモリからデータを読み出す際に、ホストから次に要求されると予想されるデータをメモリセルアレイから予め読む（プリフェッチする）技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−２００８０２号公報
【特許文献２】特開２０１２−０６４１５８号公報
【特許文献３】米国特許第７５２５８４２号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一つの実施形態は、プリフェッチの効率を向上したメモリシステムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
一つの実施形態によれば、メモリシステムは、ホストに接続可能である。メモリシステムは、メモリと、メモリコントローラとを備える。メモリは、第１の数の並列動作要素を備える。第１の数の並列動作要素のそれぞれは複数の第１記憶領域を有する不揮発性のメモリセルアレイとバッファとを備える。メモリコントローラは、第１グループを構築する。第１グループは２以上の数である第２の数の第２記憶領域を少なくとも含む。第２の数の第２記憶領域のそれぞれは第１の数の並列動作要素のうちの１の並列動作要素に属する複数の第１記憶領域に含まれるそれぞれ異なる第１記憶領域である。メモリコントローラは、第２の数の第２記憶領域のうちの１の第２記憶領域からホストから要求されたデータである第１データを取得するに応じて、第２の数の第２記憶領域のうちの他の第２記憶領域から第２データを１の並列動作要素のバッファに読み出す。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１の実施形態のメモリシステムの構成例を示す図である。
【図２】図２は、第１の実施形態の１つのメモリチップの構成例を示す図である。
【図３】図３は、第１の実施形態の１つの物理ブロックの構成例を示す図である。
【図４】図４は、第１の実施形態の１つの論理ブロックの構成例を示す図である。
【図５】図５は、第１の実施形態の１つの合成論理ブロックの構成例を示す図である。
【図６】図６は、第１の実施形態のメモリシステムにおける、ＮＡＮＤメモリに対するアクセスの順序の例とフレームの構成例とを説明するための図である。
【図７】図７は、第１の実施形態のプリフェッチの動作の概要を説明する図である。
【図８】図８は、第１の実施形態のメモリシステムに格納される各種情報を示す図である。
【図９】図９は、第１の実施形態の論理ブロック構成情報のデータ構成例を示す図である。
【図１０】図１０は、第１の実施形態の合成論理ブロック構成情報のデータ構成例を示す図である。
【図１１】図１１は、第１の実施形態の不良ブロック情報のデータ構成例を示す図である。
【図１２】図１２は、第１の実施形態のメモリシステムの動作を説明するフローチャートである。
【図１３】図１３は、第１の実施形態のメモリシステムの他の構成例を示す図である。
【図１４】図１４は、第１の実施形態の合成論理ブロックの他の構成例を示す図である。
【図１５】図１５は、第１の実施形態のメモリチップの他の構成例を示す図である。
【図１６】図１６は、第１の実施形態の合成論理ブロックのさらに他の構成例を示す図である。
【図１７】図１７は、第２の実施形態のＮＡＮＤメモリに格納されるデータの例を示す図である。
【発明を実施するための形態】
【０００７】
以下に添付図面を参照して、実施形態にかかるメモリシステムを詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
【０００８】
（第１の実施形態）
図１は、第１の実施形態のメモリシステムの構成例を示す図である。メモリシステム１は、ホスト２と所定の通信インタフェースで接続される。ホスト２は、例えばパーソナルコンピュータ、携帯情報端末、またはサーバなどが該当する。メモリシステム１は、ホスト２からアクセス要求（リード要求およびライト要求）を受け付けることができる。各アクセス要求は、アクセス先を示す論理アドレスを含んでいる。論理アドレスは、メモリシステム１がホスト２に提供する論理アドレス空間内の位置を示す。メモリシステム１は、ライト要求とともに、書き込み対象のデータを受け付ける。
【０００９】
メモリシステム１は、メモリコントローラ１０と、ＮＡＮＤ型のフラッシュメモリ（ＮＡＮＤメモリ）２０と、を備えている。メモリコントローラ１０は、ホスト２とＮＡＮＤメモリ２０との間のデータ転送を実行する。なお、メモリシステム１は、ＮＡＮＤメモリ２０の代わりに任意の不揮発性メモリを具備することができる。例えば、メモリシステム１は、ＮＡＮＤメモリ２０の代わりにＮＯＲ型のフラッシュメモリを具備することができる。
【００１０】
メモリコントローラ１０は、ＣＰＵ（Central  Processing  Unit）１１と、ホストインタフェース（Ｉ／Ｆ）コントローラ１２と、ＲＡＭ（Random  Access  Memory）１３と、ＮＡＮＤコントローラ１４と、誤り訂正回路１５と、を備える。
【００１１】
ＣＰＵ１１は、ファームウェアプログラム（後述のファームウェアプログラム２０１）に基づいてメモリコントローラ１０の制御を実行する。ファームウェアプログラム２０１は、ＮＡＮＤメモリ２０に予め格納されており、起動時にＮＡＮＤメモリ２０から読み出されてＣＰＵ１１によって実行される。なお、ファームウェアプログラム２０１の格納位置はＮＡＮＤメモリ２０に限定されない。
【００１２】
ＲＡＭ１３は、ＣＰＵ１１に一時記憶領域を提供する、揮発性のメモリである。ＲＡＭ１３を構成するメモリの種類は、特定の種類に限定されない。例えば、ＲＡＭ１３は、ＤＲＡＭ（Dynamic  Random  Access  Memory）、ＳＲＡＭ、またはこれらの組み合わせによって構成され得る。
【００１３】
ホストＩ／Ｆコントローラ１２は、ホスト２との間の通信インタフェースの制御を実行する。ＮＡＮＤコントローラ１４は、ＣＰＵ１１による制御の下で、ＮＡＮＤメモリ２０に対するアクセスを実行する。ＣＰＵ１１は、ホストＩ／Ｆコントローラ１２とＮＡＮＤコントローラ１４とを制御することによって、ホスト２とＮＡＮＤメモリ２０との間のデータ転送を実現する。
【００１４】
誤り訂正回路１５は、ＮＡＮＤメモリ２０に書き込まれるデータに誤り訂正のための符号化を行ったり、ＮＡＮＤメモリ２０から取得された符号化されたデータを復号化することによって、そのデータに対して誤り訂正を実行したりする。誤り訂正回路１５による符号化のアルゴリズムとしては、任意のアルゴリズムが採用可能である。一例では、誤り訂正回路１５は、ＲＳ符号（Reed-Solomon  Coding）を用いた符号化を行う。誤り訂正回路１５は、符号化用の回路と復号化用の回路とを有していてもよい。誤り訂正のためのフレームについては後述する。
【００１５】
ＮＡＮＤメモリ２０は、１以上のメモリチップ２１を含む。ここでは一例として、ＮＡＮＤメモリ２０は、１以上のメモリチップ２１として、２つのメモリチップ２１ａ、２１ｂを含む。
【００１６】
図２は、１つのメモリチップ２１の構成例を示す図である。メモリチップ２１は、データキャッシュ２２、ページバッファ２３、およびメモリセルアレイ２４を備える。メモリセルアレイ２４は、不揮発性のメモリセルアレイであり、複数のメモリセルがマトリクス状に配列された構成を有している。
【００１７】
メモリセルアレイ２４は、複数の物理ブロック２５を備える。物理ブロック２５は、メモリセルアレイ２４に対するデータのイレースが可能な最小の記憶領域である。各物理ブロック２５は、図３に示されるように、複数のページを備える。ページは、物理ブロック２５に対するデータのプログラムまたはリードが可能な最小の記憶領域である。それぞれの物理ブロック２５は、物理ブロック番号によって識別される。
【００１８】
データキャッシュ２２およびページバッファ２３は、バッファとして使用されるメモリである。データキャッシュ２２は、メモリコントローラ１０に送受信されるデータがバッファされる。ページバッファ２３は、メモリセルアレイ２４に書き込まれるデータまたはメモリセルアレイ２４から読み出されたデータがバッファされる。
【００１９】
データキャッシュ２２およびページバッファ２３は、一例では、それぞれ１ページのサイズのデータを保持することができる。データキャッシュ２２およびページバッファ２３は、任意の種類のメモリによって構成され得る。データキャッシュ２２およびページバッファ２３は、例えばＳＲＡＭ（Static  Random  Access  Memory）によって構成される。
【００２０】
図１に説明を戻す。ＮＡＮＤメモリ２０に含まれる２つのメモリチップ２１は、１つのチャネル（ｃｈ．０）を介してメモリコントローラ１０に接続される。チャネルは、データ、アドレス、およびコマンドを送受信するための信号線を含む、配線群である。
【００２１】
２つのメモリチップ２１は、それぞれ異なるバンクを構成する。即ち、この例では、ＮＡＮＤメモリ２０は、２つのバンクを有する。各バンクは、バンク番号（BANK#0、BANK#1）によって識別される。以降、各バンクを、バンク番号によって表記することがある。即ち、バンク番号がBANK#0のバンクをBANK#0と表記し、バンク番号がBANK#1のバンクをBANK#1と表記する。
【００２２】
メモリコントローラ１０は、バンクインターリーブの方式で動作させることが可能である。バンクインターリーブは、１つのバンクに属するメモリチップ２１（例えばメモリチップ２１ａ）がメモリセルアレイ２４にアクセスしている最中にメモリコントローラ１０が別のバンクに属するメモリチップ２１（例えばメモリチップ２１ｂ）との間でデータまたはコマンドの送受信を行う手法である。各バンクのメモリチップ２１はチャネルを共有しているので、メモリコントローラ１０は、同一のチャネルに接続された異なるバンクに属する２つのメモリチップ２１に同時にデータ、アドレス、およびコマンドの送受信を行うことができないが、メモリコントローラ１０は、バンクインターリーブによって、２つのバンクを同時に動作させることが可能である。即ち、バンクインターリーブは、並列動作の手法の１つであり、異なるバンクに属する複数のメモリチップ２１（ここではメモリチップ２１ａ、２１ｂ）は、それぞれ並列動作要素に該当する。
【００２３】
バンクインターリーブにおいて、アクセス先のバンクは、一例では、チップイネーブル（ＣＥ）信号によって選択される。即ち、BANK#0に属するメモリチップ２１ａと、BANK#1に属するメモリチップ２１ｂとは、それぞれ独立したＣＥ信号線でメモリコントローラ１０と接続されている。メモリコントローラ１０は、メモリチップ２１ａ、２１ｂのうちの一方がメモリセルアレイ２４にアクセスしている最中に、メモリチップ２１ａ、２１ｂのうちの他方をＣＥ信号によって選択し、当該選択されたメモリチップ２１に対し、Ｉ／Ｏ信号線を介して、コマンド、アドレス、またはデータの送受信を実行する。なお、アクセス先のバンクの選択方法は、ＣＥ信号を用いた方法だけに限定されない。
【００２４】
このように、メモリコントローラ１０は、バンクインターリーブによって、それぞれ異なるバンクに属する２つのメモリチップ２１ａ、２１ｂを並列動作させることができる。ここで、メモリコントローラ１０は、並列にアクセスする複数の物理ブロック２５によって１つの論理ブロックを構築する。
【００２５】
図４は、１つの論理ブロックの構成例を示す図である。斜線ハッチングが施された、それぞれ異なるバンクに属する２つの物理ブロック２５（即ちブロック番号がBLOCK#Aの物理ブロック２５ａおよびブロック番号がBLOCK#Bの物理ブロック２５ｂ）は、１つの論理ブロックを構成する。なお、本図では、１つの論理ブロックのみを例示しているが、ＮＡＮＤメモリ２０は、複数の論理ブロックを備え、複数の論理ブロックのそれぞれは、それぞれ異なるバンクに属する２つの物理ブロック２５を備える。１つの物理ブロック２５は、２以上の論理ブロックに属することはない。各論理ブロックは、論理ブロック番号によって識別される。
【００２６】
以降、バンクの場合と同様に、各物理ブロック２５を、物理ブロック番号によって表記することがある。
【００２７】
さらに、メモリコントローラ１０は、複数の論理ブロックによって１つの合成論理ブロックを構築する。
【００２８】
図５は、１つの合成論理ブロックの構成例を示す図である。斜線ハッチングが施された２つの物理ブロック２５ａ、２５ｂからなる論理ブロックと、ドットハッチングが施された２つの物理ブロック２５（ブロック番号がBLOCK#Cの物理ブロック２５ｃとブロック番号がBLOCK#Dの物理ブロック２５ｄ）からなる論理ブロックとは、１つの合成論理ブロックを構成する。なお、本図では、１つの合成論理ブロックのみを例示しているが、ＮＡＮＤメモリ２０は、複数の合成論理ブロックを備え得る。１つの論理ブロックは、２以上の合成論理ブロックに属することはない。各論理ブロックは、合成ブロックＩＤによって識別される。
【００２９】
以降、１つの論理ブロックを構成する物理ブロック２５の数を、Ｎ１と表記する。また、１つの合成論理ブロックを構成する論理ブロックの数を、Ｎ２と表記する。１つの合成論理ブロックを構成する物理ブロック２５の数は、Ｎ１＊Ｎ２に該当する。図５の例に従えば、Ｎ１は「２」であり、Ｎ２は「２」である。
【００３０】
本発明の実施形態では、メモリコントローラ１０は、誤り訂正回路１５の誤り訂正のためのフレームを、Ｎ１＊Ｎ２ページのデータによって構築する。そして、メモリコントローラ１０は、１つのフレームを構成する各ページのデータを、同一の合成論理ブロックを構成するＮ１＊Ｎ２個の物理ブロック２５のうちのそれぞれ異なる物理ブロック２５に書き込む。
【００３１】
図６は、ＮＡＮＤメモリ２０に対するアクセス（書き込み、読み出し）の順序の例とフレームの構成例とを説明するための図である。本図に示されるように、同一の合成論理ブロックを構成する４つの物理ブロック２５（BLOCK#A、BLOCK#B、BLOCK#C、BLOCK#D）のうち、BANK#0のメモリチップ２１ａに対しては、矢印２５０に示されるように、BLOCK#AのPAGE#i、BLOCK#CのPAGE#i、BLOCK#AのPAGE#i+1、BLOCK#CのPAGE#i+1、の順番でアクセスが実行される。同様に、BANK#1のメモリチップ２１ｂに対しては、矢印２５１に示されるように、BLOCK#BのPAGE#i、BLOCK#DのPAGE#i、BLOCK#BのPAGE#i+1、BLOCK#DのPAGE#i+1、の順番でアクセスが実行される。BANK#0のメモリチップ２１に対するアクセスと、BANK#1のメモリチップ２１に対するアクセスとは、バンクインターリーブによって並列化されているので、ＮＡＮＤメモリ２０へのアクセスの順番は、BLOCK#AのPAGE#i、BLOCK#BのPAGE#i、BLOCK#CのPAGE#i、BLOCK#DのPAGE#i、BLOCK#AのPAGE#i+1、BLOCK#BのPAGE#i+1、BLOCK#CのPAGE#i+1、BLOCK#DのPAGE#i+1、の順番となる。
【００３２】
１つのフレームは、一例では、連続してアクセスされるＮ１＊Ｎ２個のページによって構成される。即ち、図６の例では、符号１５０に示されるように、それぞれ異なる物理ブロック２５の同一のページ番号に書き込まれる４つのデータによって、１つのフレームが構成される。
【００３３】
なお、１つのフレームは、誤り訂正回路１５による誤り訂正のための符号を含んでいる。本実施形態では、Ｎ１＊Ｎ２ページのデータによって１つのフレームを構成するので、１つの論理ブロックを構成するそれぞれ異なる物理ブロック２５に書き込まれるＮ１ページのデータによって１つのフレームを構成する場合に比べ、フレームのサイズを大きくすることができる。よって、フレームのサイズに対する符号のサイズの割合を小さくし、ひいては、ホスト２から送られてきたデータをＮＡＮＤメモリ２０に効率的に格納することが可能となる。
【００３４】
メモリコントローラ１０は、ＮＡＮＤメモリ２０に対し、プリフェッチを実行することができる。
【００３５】
具体的には、メモリコントローラ１０は、あるバンクに属するメモリチップ２１（例えばメモリチップ２１ａ）に格納されている一のデータ（例えば図６に例示されるBLOCK#AのPAGE#i内のデータ）の読み出しがホスト２から要求された場合、当該一のデータを取得するとともに、そのメモリチップ２１に対して当該一のデータの次に読むべき他のデータ（例えば図６に例示されるBLOCK#CのPAGE#i内のデータ）を、当該他のデータの読み出しが要求される前に、当該他のデータをメモリセルアレイ２４からページバッファ２３に予め読み出す。
【００３６】
シーケンシャルリードによって読み出される複数のデータは、シーケンシャルライトのアクセスパターンでホスト２から書き込みが要求された場合が多い。シーケンシャルリードとは、論理アドレスが連続する範囲に対して複数のデータを論理アドレス順にメモリシステム１から読み出すアクセスパターンをいう。シーケンシャルライトとは、論理アドレスが連続する範囲に対して複数のデータを論理アドレス順にメモリシステム１に書き込むアクセスパターンをいう。
【００３７】
よって、ホスト２から要求のパターンがシーケンシャルリードに該当する場合、前記一のデータの後に前記他のデータの読み出しが要求される可能性が高い。一方、メモリセルアレイ２４からページバッファ２３へのデータの読み出しは、比較的長い時間を要する。前記他のデータをプリフェッチした場合において前記一のデータの後に前記他のデータの読み出しが要求された場合、メモリコントローラ１０は、メモリセルアレイ２４へのアクセスを要することなく前記他のデータを取得することが可能となるので、ホスト２からのリード要求に対する応答の速度が向上する。
【００３８】
図７は、プリフェッチの動作の概要を説明する図である。メモリコントローラ１０は、BANK#0のメモリチップ２１のBLOCK#AのPAGE#iに格納されているデータをリードする要求を受信した場合、BANK#0のメモリチップ２１に、BLOCK#AのPAGE#iに格納されているデータをページバッファ２３に読み出させる（Ｓ１）。そして、メモリコントローラ１０は、BANK#0のメモリチップ２１に、BLOCK#AのPAGE#iから読み出されたデータを、ページバッファ２３からデータキャッシュ２２に転送させ（Ｓ２）、その後、データキャッシュ２２からメモリコントローラ１０に出力させる（Ｓ３）。
【００３９】
続いて、メモリコントローラ１０は、BANK#0のメモリチップ２１に含まれ、BLOCK#Aと同一の合成論理ブロックに属し、BANK#0のメモリチップ２１においてBLOCK#Aの次に読むべきデータが書き込まれた物理ブロック２５であるBLOCK#Cを、後述する図１０の合成論理ブロック構成情報１３２を参照することにより、プリフェッチする物理ブロック２５として特定する。そして、メモリコントローラ１０は、BANK#0のメモリチップ２１に、BLOCK#CのPAGE#iに格納されているデータをページバッファ２３に読み出させる（Ｓ４）。
【００４０】
メモリコントローラ１０は、その後、BLOCK#CのPAGE#iに格納されているデータをリードする要求を受信した場合、BANK#0のメモリチップ２１に、BLOCK#CのPAGE#iから読み出されたデータを、ページバッファ２３からデータキャッシュ２２に転送させる（Ｓ５）。そして、メモリコントローラ１０は、BANK#0のメモリチップ２１に、BLOCK#CのPAGE#iから読み出されたデータを、データキャッシュ２２からメモリコントローラ１０に出力させる（Ｓ６）。
【００４１】
以降、メモリシステム１は、Ｓ７〜Ｓ１２において、プリフェッチする物理ブロック２５を図６の矢印２５０の順番で切り替えながら、Ｓ４〜Ｓ６と同様の処理を繰り返す。
【００４２】
例えば、Ｓ６の後、メモリコントローラ１０は、BANK#0のメモリチップ２１に含まれ、BLOCK#Cと同一の合成論理ブロックに属し、BANK#0のメモリチップ２１においてBLOCK#Cの次に読むべきデータが書き込まれた物理ブロック２５であるBLOCK#Aを、プリフェッチする物理ブロック２５として特定する。そして、メモリコントローラ１０は、BANK#0のメモリチップ２１に、BLOCK#AのPAGE#i+1に格納されているデータをページバッファ２３に読み出させる（Ｓ７）。
【００４３】
メモリコントローラ１０は、その後、BLOCK#AのPAGE#i+1に格納されているデータをリードする要求を受信した場合、BANK#0のメモリチップ２１に、BLOCK#AのPAGE#i+1から読み出されたデータを、ページバッファ２３からデータキャッシュ２２に転送させる（Ｓ８）。そして、メモリコントローラ１０は、BANK#0のメモリチップ２１に、BLOCK#AのPAGE#i+1から読み出されたデータを、データキャッシュ２２からメモリコントローラ１０に出力させる（Ｓ９）。
【００４４】
このように、BANK#0のメモリチップ２１に対しては、図６の矢印２５０に示される順序で、プリフェッチする物理ブロック２５が順次、特定される。同様に、BANK#1のメモリチップ２１に対しては、図６の矢印２５１に示される順序で、プリフェッチする物理ブロック２５が順次、特定される。
【００４５】
図８は、メモリシステム１に格納される各種情報を示す図である。
【００４６】
ＮＡＮＤメモリ２０には、ホスト２から送られてきたデータが格納されるほか、ファームウェアプログラム２０１が予め格納されている。
【００４７】
ＲＡＭ１３には、論理ブロック構成情報１３１、合成論理ブロック構成情報１３２、および不良ブロック情報１３３が格納される。ＲＡＭ１３内の各情報は、例えば、メモリシステム１の電源オフの際にＮＡＮＤメモリ２０に退避され、メモリシステム１の電源オンの際にＮＡＮＤメモリ２０からＲＡＭ１３にロードされる。
【００４８】
論理ブロック構成情報１３１は、各論理ブロックを構成する複数の物理ブロック２５を示す情報である。また、合成論理ブロック構成情報１３２は、各合成論理ブロックを構成する複数の論理ブロックと、各合成論理ブロックを構成する複数の論理ブロックに対するアクセス順序と、を示す情報である。
【００４９】
図９は、論理ブロック構成情報１３１のデータ構成例を示す図である。論理ブロック構成情報１３１は、各論理ブロックに複数の物理ブロックを対応付けるテーブル形式のデータ構成を備えている。
【００５０】
図１０は、合成論理ブロック構成情報１３２のデータ構成例を示す図である。合成論理ブロック構成情報１３２は、各合成論理ブロックに複数の論理ブロックを対応付けるテーブル形式のデータ構成を備えている。複数の論理ブロックの論理ブロック番号が記載されるフィールドには、複数の論理ブロック番号が、データのアクセス順序に対応する順序で配列されている。メモリコントローラ１０は、末尾に記録された論理ブロック番号には、同一フィールドの先頭に記録された論理ブロック番号が後続する、と解釈する。
【００５１】
図１０の例に従えば、合成ブロックＩＤ「Ｙ」の合成論理ブロックは、論理ブロック番号「Ｘ」の論理ブロックおよび論理ブロック番号「Ｘ＋１」の論理ブロックによって構成される。そして、当該合成論理ブロックに対しては、論理ブロック番号「Ｘ」の論理ブロックにアクセスされ、その次に、論理ブロック番号「Ｘ＋１」の論理ブロックにアクセスされる。さらにその次に、論理ブロック番号「Ｘ」の論理ブロックにアクセスされる。
【００５２】
また、図９の例に従えば、論理ブロック番号「Ｘ」の論理ブロックは、BLOCK#AおよびBLOCK#Bによって構成される。また、論理ブロック番号「Ｘ＋１」の論理ブロックは、BLOCK#CおよびBLOCK#Dによって構成される。
【００５３】
メモリコントローラ１０は、図９の論理ブロック構成情報１３１および図１０の合成論理ブロック構成情報１３２を参照することによって、BANK#0に対するアクセスの順序が、BLOCK#A、BLOCK#C、BLOCK#A、BLOCK#C（即ち図６の矢印２５０の順番）であることを特定することができる。また、メモリコントローラ１０は、BANK#1に対するアクセスの順序が、BLOCK#B、BLOCK#D、BLOCK#B、BLOCK#D（即ち図６の矢印２５１の順番）であることを特定することができる。
【００５４】
メモリコントローラ１０は、論理ブロック構成情報１３１および合成論理ブロック構成情報１３２を参照し、アクセスの順序に基づいて、プリフェッチする物理ブロック２５を特定する。
【００５５】
なお、論理ブロック構成情報１３１および合成論理ブロック構成情報１３２のデータ構成は、図９、図１０に示したデータ構成例に限定されない。論理ブロック構成情報１３１は、各論理ブロックを構成する複数の物理ブロック２５を保持することができる限り、任意のデータ構成を有し得る。また、合成論理ブロック構成情報１３２は、各合成論理ブロックを構成する複数の論理ブロックと、複数の論理ブロックに対するアクセスの順序と、を保持ことができる限り、任意のデータ構成を有しうる。各合成論理ブロックを構成する複数の論理ブロックを保持する情報と、各合成論理ブロックに含まれる複数の論理ブロックに対するアクセスの順序を保持する情報と、は分けて構成されてもよい。
【００５６】
不良ブロック情報１３３は、不良ブロックを特定するための情報である。不良ブロックは、回路の故障などにより使用が不可と判断されるブロックである。図１１は、不良ブロック情報１３３のデータ構成例を示す図である。本図に例示されるように、不良ブロック情報１３３は、不良ブロックの物理アドレス番号が列挙されたデータ構成を備える。なお、不良ブロック情報１３３のデータ構成はこれに限定されない。また、論理ブロック単位で不良ブロックであるか否かが判断されてもよい。
【００５７】
次に、第１の実施形態のメモリシステム１の動作を説明する。図１２は、第１の実施形態のメモリシステム１の動作を説明するフローチャートである。
【００５８】
メモリコントローラ１０がホスト２からリード要求を受信すると（Ｓ１０１）、メモリコントローラ１０は、リード要求によって要求されたデータ（以降、対象データ）が、対象データを記憶するメモリチップ２１（以降、対象メモリチップ２１）のページバッファ２３に格納されているか否かを判定する（Ｓ１０２）。
【００５９】
対象メモリチップ２１において、対象データがプリフェッチされていれば、対象データはページバッファ２３に格納されており、対象データがプリフェッチされていなければ、対象データはページバッファ２３に格納されていない。
【００６０】
なお、Ｓ１０１において受信するリード要求に含まれる、アクセス先を指定する論理アドレスを、Ｌｃｕｒと表記する。また、対象メモリチップ２１が属するバンクを、対象バンクと表記する。また、対象データが格納されている物理ブロック２５を、対象物理ブロック２５と表記する。
【００６１】
対象データがページバッファ２３に格納されていない場合（Ｓ１０２、Ｎｏ）、メモリコントローラ１０は、対象メモリチップ２１に、対象物理ブロック２５からページバッファ２３に対象データを読み出させる（Ｓ１０３）。
【００６２】
対象データがページバッファ２３に格納されている場合（Ｓ１０２、Ｙｅｓ）、またはＳ１０３の処理の後、メモリコントローラ１０は、ページバッファ２３に格納されている対象データをデータキャッシュ２２を経由して取得する（Ｓ１０４）。
【００６３】
続いて、論理アドレスＬｃｕｒは、前回にホスト２から受信したリード要求に含まれる論理アドレスＬｐｒｅｖに後続しているか否かを判定する（Ｓ１０５）。
【００６４】
Ｓ１０５の処理は、Ｓ１０１にて受信したリード要求が、シーケンシャルリードのアクセスパターンに該当するか否かを判定する処理の一例である。論理アドレスＬｃｕｒが論理アドレスＬｐｒｅｖに後続していない場合（Ｓ１０５、Ｎｏ）、メモリコントローラ１０は、受信したリード要求がシーケンシャルリードのアクセスパターンに該当しないと判定し、リードの動作を終了する。論理アドレスＬｃｕｒが論理アドレスＬｐｒｅｖに後続する場合（Ｓ１０５、Ｙｅｓ）、メモリコントローラ１０は、受信したリード要求がシーケンシャルリードのアクセスパターンに該当すると判定し、以降の処理においてプリフェッチを実行する。
【００６５】
受信したリード要求がシーケンシャルリードのアクセスパターンに該当するか否かを判定する方法は、上記の方法だけに限定されない。別の例では、メモリコントローラ１０は、論理アドレスＬｐｒｅｖが前々回にホスト２から受信したリード要求に含まれる論理アドレスＬｐｒｅｖ１に後続し、かつ、論理アドレスＬｃｕｒが論理アドレスＬｐｒｅｖに後続する場合に、Ｓ１０１にて受信したリード要求はシーケンシャルリードのアクセスパターンに該当すると判定し、その他の場合に、Ｓ１０１にて受信したリード要求はシーケンシャルリードのアクセスパターンに該当しない、と判定してもよい。
【００６６】
なお、図１２の例では、メモリコントローラ１０は、ホスト２からのアクセスのパターンがシーケンシャルリードに該当するか否かを判定するが、当該判定は実行されなくてもよい。メモリコントローラ１０は、ホスト２からのアクセスのパターンに関係なくプリフェッチを実行してもよい。
【００６７】
論理アドレスＬｃｕｒが論理アドレスＬｐｒｅｖに後続する場合（Ｓ１０５、Ｙｅｓ）、メモリコントローラ１０は、合成論理ブロック構成情報１３２および論理ブロック構成情報１３１を参照することによって、対象メモリチップ２１に属し、かつ、対象ブロックと同一の合成論理ブロックに属する論理ブロックに対応するＮ２個の物理ブロック２５のうちの、アクセスの順序において後続する物理ブロック２５を特定する（Ｓ１０６）。
【００６８】
続いて、メモリコントローラ１０は、特定した物理ブロック２５が不良ブロックであるか否かを、不良ブロック情報１３３を参照することによって判定する（Ｓ１０７）。特定した物理ブロック２５が不良ブロックである場合（Ｓ１０７、Ｙｅｓ）、メモリコントローラ１０は、Ｓ１０６の処理を行うことによって、特定した不良ブロックである物理ブロック２５にさらに後続する物理ブロック２５を特定する。
【００６９】
例えば、図４、図５、および図６に例示されるケースにおいて、BLOCK#Aが対象ブロックである場合、メモリコントローラ１０は、最初のＳ１０６の処理によって、BLOCK#Cを特定する。そして、BLOCK#Cが不良ブロックである場合、メモリコントローラ１０は、次のＳ１０６の処理によって、BLOCK#Aを特定する。
【００７０】
特定した物理ブロック２５が不良ブロックではない場合（Ｓ１０７、Ｎｏ）、メモリコントローラ１０は、対象メモリチップ２１に、後続の物理ブロック２５からページバッファ２３にデータを読み出させる（Ｓ１０８）。
【００７１】
このように、メモリコントローラ１０は、着目する物理ブロック２５にアクセスの順序において後続する物理ブロック２５を順次探索し、不良ブロックではない物理ブロック２５が探索された場合、その物理ブロック２５をプリフェッチする物理ブロック２５として特定する。
【００７２】
なお、メモリコントローラ１０は、対象物理ブロック２５にアクセスの順序において後続する物理ブロック２５が不良ブロックであるか否かにかかわらず、対象物理ブロック２５にアクセスの順序において後続する物理ブロック２５をプリフェッチする物理ブロック２５として設定してもよい。
【００７３】
Ｓ１０８の処理に続いて、メモリコントローラ１０は、論理アドレスＬｃｕｒを論理アドレスＬｐｒｅｖとして上書き形式で保存し（Ｓ１０９）、リードの動作を終了する。
【００７４】
なお、以上では、１つの論理ブロックを構成する物理ブロック２５の数Ｎ１が「２」であり、１つの合成論理ブロックを構成する論理ブロックの数Ｎ２が「２」である場合について説明した。Ｎ１は「１」であってもよいし、「３」以上であってもよい。また、Ｎ２は、「３」以上であってもよい。
【００７５】
また、以上の説明では、それぞれ異なるバンクに属するメモリチップ２１がそれぞれ並列動作要素に該当する。並列動作要素は、バンクインターリーブの並列動作を実現する各要素の例だけに限定されない。
【００７６】
図１３は、第１の実施形態のメモリシステム１の他の構成例を示す図である。図１に示される構成要素と同じ構成要素については図示を省略している。図１３の例によれば、メモリシステム１は、４つのメモリチップ２１を備え、そのうちの２つのメモリチップ２１ｃ、２１ｄは１つのチャネル（ch.  0）に接続され、他の２つのメモリチップ２１ｅ、２１ｆは、他のチャネル（ch.  1）に接続される。メモリコントローラ１０は、２つのチャネルを独立して制御することが可能である。即ち、メモリコントローラ１０は、ch.  0に接続された２つのメモリチップ２１ｃ、２１ｄと、ch.  1に接続された２つのメモリチップ２１ｅ、２１ｆと、を、並列に動作させることが可能である。メモリコントローラ１０が、２つのチャネルを並列に制御し、２つのバンクをバンクインターリーブによって並列に動作させる場合、合計４つのメモリチップ２１ｃ、２１ｄ、２１ｅ、２１ｆを、並列に動作させることが可能である。即ち、接続先のチャネルまたは属するバンクがそれぞれ異なる４つのメモリチップ２１ｃ、２１ｄ、２１ｅ、２１ｆのそれぞれは、並列動作要素に該当する。
【００７７】
図１４は、第１の実施形態の合成論理ブロックの他の構成例を示す図である。本図に例示される合成論理ブロックの構成は、図１３の構成に対応する。図１４に示されるように、４つの物理ブロック２５ｅ、２５ｆ、２５ｇ、２５ｈは、１つの論理ブロックを構成し、別の４つの物理ブロック２５ｉ、２５ｊ、２５ｋ、２５ｌは、別の論理ブロックを構成する。そして、物理ブロック２５ｅ、２５ｆ、２５ｇ、２５ｈからなる論理ブロックと、物理ブロック２５ｉ、２５ｊ、２５ｋ、２５ｌからなる論理ブロックとは、１つの合成論理ブロックを構成する。この例によれば、Ｎ１は「４」であり、Ｎ２は「２」であり、誤り訂正のフレームは、８ページのデータによって構成される。即ち、メモリシステム１が複数のチャネルを有する場合には、複数のチャネルに跨ってフレームが構成される。
【００７８】
以上述べたように、第１の実施形態によれば、メモリシステム１は、Ｎ１個の並列動作要素を備え、各並列動作要素（より詳しくは各並列動作要素を構成するメモリチップ２１）は、複数の物理ブロック２５を有するメモリセルアレイ２４と、バッファとしてのデータキャッシュ２２およびページバッファ２３と、を備える。メモリコントローラ１０は、１つの並列動作要素に含まれるＮ２個の物理ブロック２５を少なくとも含む合成論理ブロックを構築する。メモリコントローラ１０は、当該１つの並列動作要素に含まれるＮ２個の物理ブロック２５のうちの一の物理ブロックからホスト２から要求されたデータを取得するに応じて、当該１つの並列動作要素に含まれるＮ２個の物理ブロック２５のうちの他の物理ブロック２５からページバッファ２３にデータをプリフェッチする。
【００７９】
例えば、合成論理ブロックを構成するＮ１＊Ｎ２個の物理ブロック２５に対して書き込み先の物理ブロックを変更しながらデータが書き込まれる場合において、各並列動作要素に対し、単に同一の物理ブロック２５においてページ番号において後続するページをプリフェッチする場合、プリフェッチされたデータが後のリード要求によって要求される可能性は小さい。
【００８０】
第１の実施形態では、メモリコントローラ１０は、１つの並列動作要素に対し、読み出し先の物理ブロック２５を切り替えながらプリフェッチをするので、合成論理ブロックを構成するＮ１＊Ｎ２個の物理ブロック２５に対して書き込み先の物理ブロックを変更しながらデータが書き込まれる場合において、後のリード要求によって要求され得るデータをプリフェッチすることが可能である。即ち、プリフェッチの効率が向上する。
【００８１】
なお、メモリコントローラ１０は、プリフェッチによってページバッファ２３に読み出したデータがホスト２から要求された場合、ページバッファ２３に格納されているデータを取得する。よって、ホスト２からのリード要求に対する応答の速度が向上する。
【００８２】
また、メモリコントローラ１０は、それぞれ異なる並列動作要素に属するＮ１個の物理ブロック２５によって１つの論理ブロックを構築し、Ｎ２個の論理ブロックによって１つの合成論理ブロックを構築する。そして、Ｎ１＊Ｎ２ページのデータによって誤り訂正のフレームを構築し、Ｎ１＊Ｎ２ページのデータのそれぞれを、同一の合成論理ブロックに属するＮ１＊Ｎ２個の物理ブロック２５のうちのそれぞれ異なる物理ブロック２５に格納する。
【００８３】
Ｎ２の数を大きくすることによって符号のサイズに対するフレームのサイズを大きくすることができるので、ホスト２から送られてくるデータを効率的に格納することが可能となる。
【００８４】
また、メモリコントローラ１０は、同一の合成論理ブロックを構成するＮ２個の論理ブロックに関し、アクセスの順序を記憶する。そして、メモリコントローラ１０は、データの読み出しを行った際に、プリフェッチする物理ブロック２５を、アクセスの順序に基づいて特定する。これにより、シーケンシャルライトのアクセスパターンによって送られてきた複数のデータをシーケンシャルリードのアクセスパタンによって読み出しが要求される場合、プリフェッチによって読み出されたデータをホスト２に送ることが可能となるので、ホスト２からのリード要求に対する応答の速度が向上する。
【００８５】
また、メモリコントローラ１０は、不良な物理ブロック２５を記憶する。そして、メモリコントローラ１０は、各並列動作要素において、データの読み出しを行った物理ブロック２５にアクセスの順序において後続する物理ブロック２５を順次探索し、不良ブロックではない物理ブロック２５が探索された場合、その物理ブロック２５をプリフェッチする物理ブロック２５として特定する。
【００８６】
一例では、メモリコントローラ１０は、不良ブロックをスキップしてデータを書き込む。メモリコントローラ１０は、使用が不可と判断される不良ブロックをプリフェッチ対象から外すので、ＮＡＮＤメモリ２０に不良ブロックが含まれる場合であっても、後に要求される可能性が高いデータをプリフェッチすることが可能である。
【００８７】
また、メモリコントローラ１０は、ホスト２からの要求のパターンがシーケンシャルリードに該当するか否かを判定する。そして、ホスト２からの要求のパターンがシーケンシャルリードに該当する場合、メモリコントローラ１０は、プリフェッチを実行し、ホスト２からの要求のパターンがシーケンシャルリードに該当しない場合、プリフェッチを実行しない。これにより、後のリード要求によって要求される可能性が高いデータをプリフェッチすることが可能となる。
【００８８】
なお、近年、１つのメモリチップ２１に含まれる複数の物理ブロック２５に同時にアクセスする技術がある。
【００８９】
図１５は、第１の実施形態のメモリチップ２１の他の構成例を示す図である。本図の例によれば、メモリセルアレイ２４は、２つのプレーン（PLANE#0、PLANE#1）に分割されている。各プレーンは、複数の物理ブロック２５を含む。各プレーンは互いに独立した周辺回路（ロウデコーダ、カラムデコーダ、ページバッファ２３、データキャッシュ２２等）を備えていることにより、２つのプレーンに対して同時にイレース／プログラム／リードを実行することが可能である。したがって、接続先のチャネルまたは属するバンクまたはプレーン番号が異なる４つのメモリセルアレイ２４のそれぞれは、並列動作要素に該当する。
【００９０】
図１６は、第１の実施形態の合成論理ブロックのさらに他の構成例を示す図である。本図に例示される合成論理ブロックの構成は、図１５の構成に対応する。図１６に示されるように、それぞれ属するプレーンおよびバンクの何れかが異なる４つの物理ブロック２５ｍ、２５ｎ、２５ｏ、２５ｐは、１つの論理ブロックを構成し、それぞれ属するプレーンおよびバンクの何れかが異なる別の４つの物理ブロック２５ｑ、２５ｒ、２５ｓ、２５ｔは、別の論理ブロックを構成する。そして、物理ブロック２５ｍ、２５ｎ、２５ｏ、２５ｐからなる論理ブロックと、物理ブロック２５ｑ、２５ｒ、２５ｓ、２５ｔからなる論理ブロックとは、１つの合成論理ブロックを構成する。この例によれば、Ｎ１は「４」であり、Ｎ２は「２」であり、誤り訂正のフレームは、８ページのデータによって構成される。即ち、メモリチップ２１が複数のプレーンを有する場合には、複数のプレーンに跨ってフレームが構成される。
【００９１】
メモリコントローラ１０は、１つのメモリチップ２１に対してプリフェッチを実行する際、アクセスの順序が対象ブロックを含む論理ブロックに後続する論理ブロックに属し、それぞれ異なるプレーンに属する２つの物理ブロック２５を特定する。そして、メモリコントローラ１０は、特定した２つの物理ブロック２５のそれぞれが不良ブロックではない場合、当該２つの物理ブロック２５から対応するページバッファ２３に並列にデータを読み出す。２つの物理ブロック２５の何れかが不良ブロックに該当する場合、メモリコントローラ１０は、２つの物理ブロック２５のうちの不良ブロックに該当しない物理ブロック２５からのみ、データを読み出す。
【００９２】
なお、１つのメモリチップ２１に含まれるプレーンの数は、「２」に限定されない。１つのメモリチップ２１が「３」以上のプレーンを有していてもよい。
【００９３】
このように、プリフェッチにおいては、メモリコントローラ１０は、アクセスの順序が対象ブロックを含む論理ブロックに後続する論理ブロックに属し、それぞれ異なるプレーンに属する複数の物理ブロック２５のうちの、不良ブロックに該当しない物理ブロック２５から、同時にデータを読み出す。よって、メモリチップ２１が複数の並列動作要素として複数のプレーンを含んで構成される場合においても、第１の実施形態の技術は適用可能である。
【００９４】
（第２の実施形態）
図１７は、第２の実施形態のＮＡＮＤメモリ２０に格納されるデータの例を示す図である。図示するように、ＮＡＮＤメモリ２０には、ファームウェアプログラム２０１と、固有情報２０２と、が格納される。
【００９５】
固有情報２０２は、少なくともＮ２を導出するための情報である。
【００９６】
一例では、フレームを構成するデータのページ数は、ファームウェアプログラム２０１において設定されている。製造者は、メモリシステム１を製造した際に、固有情報として、メモリシステム１に含まれるバンクの数、チャネルの数、および各メモリチップ２１に含まれるプレーンの数を記録する。メモリコントローラ１０は、ファームウェアプログラム２０１に基づき、固有情報２０２に記録されている、メモリシステム１に含まれるバンクの数、チャネルの数、および各メモリチップ２１に含まれるプレーンの数を乗算することによって、１つの論理ブロックを構成する物理ブロック２５の数Ｎ１を演算する。そして、メモリコントローラ１０は、フレームを構成するデータのページ数をＮ１で除算することによって、Ｎ２を導出する。
【００９７】
Ｎ２を導出するタイミングは、特定のタイミングに限定されない。一例では、メモリコントローラ１０は、起動時に固有情報２０２を参照することによってＮ２を導出する。その後、メモリコントローラ１０は、それぞれＮ２個の論理ブロックからなる複数の合成論理ブロックを構築する。
【００９８】
なお、固有情報２０２は、Ｎ２そのものが記録されてもよい。その場合には、ファームウェアプログラム２０１は、固有情報２０２を参照することによってＮ２を取得することができる。
【００９９】
このように、Ｎ２が可変に構成されることによって、製造者は、並列動作要素が異なる複数のメモリシステム１に対して同一のファームウェアプログラム２０１を適用することが可能となる。
【０１００】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０１】
１  メモリシステム、２  ホスト、１０  メモリコントローラ、１１  ＣＰＵ、１２  ホストＩ／Ｆコントローラ、１３  ＲＡＭ、１４  ＮＡＮＤコントローラ、１５  誤り訂正回路、２０  ＮＡＮＤメモリ、２１  メモリチップ、２２  データキャッシュ、２３  ページバッファ、２４  メモリセルアレイ、２５  物理ブロック、１３１  論理ブロック構成情報、１３２  合成論理ブロック構成情報、１３３  不良ブロック情報、１５０  符号、２０１  ファームウェアプログラム、２０２  固有情報、２５０，２５１  矢印。
【図１】
2018163434.tif 000003
【図２】
2018163434.tif 000004
【図３】
2018163434.tif 000005
【図４】
2018163434.tif 000006
【図５】
2018163434.tif 000007
【図６】
2018163434.tif 000008
【図７】
2018163434.tif 000009
【図８】
2018163434.tif 000010
【図９】
2018163434.tif 000011
【図１０】
2018163434.tif 000012
【図１１】
2018163434.tif 000013
【図１２】
2018163434.tif 000014
【図１３】
2018163434.tif 000015
【図１４】
2018163434.tif 000016
【図１５】
2018163434.tif 000017
【図１６】
2018163434.tif 000018
【図１７】
2018163434.tif 000019