(57)【要約】【課題】メモリシステムに含まれる不揮発性半導体メモリのページサイズと、ホストシステムが認識できるページサイズが異なっていても、ホストシステムを起動可能なメモリシステムを提供すること。【解決手段】メモリシステムの起動時に読み出される第１のデータが格納された第１のブロックと、前記メモリシステムの起動後に読み出される第２のデータが格納された第２のブロックとを含み、前記第１のブロックおよび前記第２のブロックは夫々複数のページから構成される不揮発性メモリと、前記メモリシステムの起動時に、ページサイズ識別情報を前記メモリシステムの外部に出力する制御部とを備え、前記ページサイズ識別情報は、前記第１のブロックに含まれるページは第１のページサイズを有し、前記第２のブロックに含まれるページは第２のページサイズを有することを示している。【選択図】図１
2015056171.tif 000002
【特許請求の範囲】
【請求項１】
メモリシステムの外部とのデータの送受信を行うインタフェース部と、
前記メモリシステムの起動時に読み出される第１のデータが格納された第１のブロックと、前記メモリシステムの起動後に読み出される第２のデータが格納された第２のブロックとを含み、前記第１のブロックおよび前記第２のブロックは夫々複数のページから構成される、不揮発性メモリと、
前記メモリシステムの起動時に、前記インタフェース部を介して、ページサイズ識別情報を前記メモリシステムの外部に出力する制御部とを備え、
前記ページサイズ識別情報は、前記第１のブロックに含まれるページは第１のページサイズを有し、前記第２のブロックに含まれるページは第２のページサイズを有することを示していることを特徴とするメモリシステム。
【請求項２】
前記第１のページサイズは、前記第２のページサイズのｎ（ｎは２以上の自然数）分の１であることを特徴とする請求項１記載に記載のメモリシステム。
【請求項３】
前記第１のブロックに対して、第１のページサイズをアクセス単位とする第１のアドレスに基づくアクセス要求があった場合、ｎ個の前記アクセス要求を、前記第１のブロックに含まれる同一のページにアクセスさせるアドレス変換を行うアドレス変換部をさらに備えることを特徴とする請求項２に記載のメモリシステム。
【請求項４】
前記第１のデータは、前記メモリシステムを駆動するためのデバイスドライバであることを特徴とする請求項３に記載のメモリシステム。
【請求項５】
前記不揮発性メモリに対するライトデータをバッファリングするバッファを更に備え、
前記バッファは、第１のバッファと、第２のバッファを備え、
前記制御部は、
受信した第１のページサイズのライトデータをｎ個分、前記第１のバッファにバッファリングし、
前記第１のバッファにバッファリングしたｎ個のライトデータを、第２のページサイズのライトデータになるように合成して第２のバッファにバッフアリングし、
前記第２のバッファにバッファリングされた合成データを前記不揮発性メモリの前記第１のブロックに含まれる同一のページに書き込む
合成処理部を備える
ことを特徴とする請求項３に記載のメモリシステム。
【請求項６】
前記バッファは、データ退避領域を備え、
前記合成処理部は、前記第１のブロックに対する書き込みが行われる場合、今回のライトデータが１回目のライトデータと合成して同一ページに書き込むか否かを判定し、同一ページに書き込まない場合は、今回のライトデータを前記データ退避領域に退避することを特徴とする請求項５に記載のメモリシステム。
【請求項７】
前記合成処理部は、ｎ個のライトデータを受信した時点で、前記第１のバッファにバッファリングされたライトデータがｎ個に満たない場合は、不足分だけダミーデータを付加して第２のページサイズのライトデータになるようにライトデータおよびダミーデータを合成して前記第２のバッファにバッフアリングし、
前記第２のバッファにバッファリングされた合成データを前記不揮発性メモリに書き込むことを特徴とする請求項６に記載のメモリシステム。
【請求項８】
ホスト装置およびメモリシステムを含む情報処理装置において、
前記ホスト装置は、
ブートプログラムを実行するプロセッサ
を備え、
前記メモリシステムは、
前記ホスト装置とデータの送受信を行うインタフェース部と、
前記ホスト装置の起動時に読み出される第１のデータが格納された第１のブロックと、前記メモリシステムの起動後に読み出される第２のデータが格納された第２のブロックとを含み、前記第１のブロックおよび前記第２のブロックは夫々複数のページから構成される、不揮発性メモリと、
前記メモリシステムの起動時に、前記インタフェース部を介して、ページサイズ識別情報を前記ホスト装置に出力する制御部とを備え、
前記ページサイズ識別情報は、前記第１のブロックに含まれるページは第１のページサイズを有し、前記第２のブロックに含まれるページは第２のページサイズを有することを示していることを特徴とする情報処理装置。
【請求項９】
前記ホスト装置は、前記ブートプログラム実行時に前記第１のブロックにアクセスすることを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記ホスト装置は、前記メモリシステムから受信した前記ページサイズ識別情報に基づき、前記第１のブロックに対しては第１のページサイズをアクセス単位とする第１のアドレスに基づきアクセス要求をすることを特徴とする請求項８に記載の情報処理装置。
【請求項１１】
前記メモリシステムは、前記第１のブロックに対して、第１のページサイズをアクセス単位とする第１のアドレスに基づくアクセス要求があった場合、ｎ個の前記アクセス要求を、前記第１のブロックに含まれる同一のページにアクセスさせるアドレス変換を行うアドレス変換部をさらに備えることを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
前記第１のページサイズは、前記第２のページサイズのｎ（ｎは２以上の自然数）分の１である請求項８記載に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、不揮発性半導体メモリを備えるメモリシステムおよび情報処理装置に関する。
【背景技術】
【０００２】
スマートフォン、タブレットＰＣなどのスマートデバイスをホストシステムとし、このホストシステムに組込まれるフラッシュメモリシステムは、簡単な制御機能を備えるコントローラと、不揮発性半導体メモリとしてのフラッシュメモリとを備える。フラッシュメモリは、消去単位であるブロックを複数個含み、各ブロックは複数のページによって構成されている。
【０００３】
ホストシステムは、ブート時に、フラッシュメモリのページサイズを示すページサイズ識別情報をメモリシステム側から取得し、取得したページサイズ識別情報に基づいてフラッシュメモリのページサイズを判定する。
【０００４】
しかしながら、ホストシステムのブートプログラムが認識可能なページサイズと、フラッシュメモリから取得したページサイズとが異なる場合、ホストシステムが起動不可能となる場合がある。フラッシュメモリのページサイズは半導体設計デザインルール変更により世代が進むにつれ急速に拡大化されており、フラッシュメモリの実ページサイズが、ホストシステムのブートプログラムが認識可能なページサイズより大きい場合でも、ホストシステムを起動可能なメモリシステムが望まれている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−２０５４１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明の一つの実施形態は、メモリシステムに含まれる不揮発性半導体メモリのページサイズと、ホストシステムが認識できるページサイズが異なっていても、ホストシステムを起動可能なメモリシステムおよび情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一つの実施形態によれば、メモリシステムは、インタフェース部と、不揮発性メモリと、制御部とを備えている。インタフェース部は、メモリシステムの外部とのデータの送受信を行う。不揮発性メモリは、メモリシステムの起動時に読み出される第１のデータが格納された第１のブロックと、前記メモリシステムの起動後に読み出される第２のデータが格納された第２のブロックとを含み、前記第１のブロックおよび前記第２のブロックは夫々複数のページから構成される。制御部は、前記メモリシステムの起動時に、前記インタフェース部を介して、ページサイズ識別情報を前記メモリシステムの外部に出力する。前記ページサイズ識別情報は、前記第１のブロックに含まれるページは第１のページサイズを有し、前記第２のブロックに含まれるページは第２のページサイズを有することを示している。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１の実施の形態のメモリシステムの構成例を示す図である。
【図２】図２は、ページサイズ識別情報の一例を示す図である。
【図３】図３は、ページサイズ識別情報の再設定の手順を示す図である。
【図４】図４は、ページサイズ識別情報の他の例を示す図である。
【図５】図５は、ホストシステム１の起動時の動作手順を示すフローチャートである。
【図６】図６は、ホストシステム側のアドレス−メモリシステム側のアドレス間のアドレス変換情報を示す図である。
【図７】図７は、ＮＡＮＤ上のデバイスドライバが記憶領域を示す図である。
【図８】図８は、メモリシステムの読み出し処理を示す概念図である。
【図９】図９は、メモリシステムの読み出し処理を示す工程図である。
【図１０】図１０は、メモリシステムの読み出し処理を示すタイムチャートである。
【図１１】図１１は、メモリシステムの書き込み処理を示すタイムチャートである。
【図１２】図１２は、メモリシステムの書き込み処理を示す概念図である。
【図１３】図１３は、メモリシステムの書き込み処理の他の例を示すタイムチャートである。
【図１４】図１４は、メモリシステムの書き込み処理の他の例を示すタイムチャートである。
【図１５】図１５は、メモリシステムの書き込み処理の他の例を示す概念図である。
【図１６】図１６は、メモリシステムの書き込み処理手順を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、実施形態にかかるメモリシステムおよび情報処理装置を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
【００１０】
（第１の実施形態）
図１に、第１の実施形態のメモリシステム１００の構成例を示す。メモリシステム１００は、インタフェース２を介してホストシステム１（以下、ホストと略す）と接続され、ホスト１の外部記憶装置として機能する。ホスト１は、例えば、スマートフォン、タブレットＰＣなどのスマートデバイスである。
【００１１】
メモリシステム１００は、不揮発性メモリとしてのＮＡＮＤ型フラッシュメモリ１０（以下、ＮＡＮＤと略す）と、メモリコントローラ３０と、揮発性半導体メモリとしてのＲＡＭ２０と、ページサイズ識別情報記憶部４０と、Ｉ／Ｏバス５とを有している。
【００１２】
ＮＡＮＤ１０は、メモリシステム１００を駆動するデバイスドライバＤＶ１、ホスト１から送信されるユーザデータＵＤなどを記憶する。デバイスドライバＤＶ１は、ホスト１で使用される。ホスト１のオペレーティングシステムやアプリケーションソフトウェアは、デバイスドライバＤＶ１を介してメモリシステム１００とデータの書き込みや読み出しを実行する。
【００１３】
ＮＡＮＤ１０は、複数のブロックを含んで構成されている。ブロックは、データ消去の単位である。ブロックは、複数のページによって構成されている。この実施形態では、デバイスドライバＤＶ１は、ブロック０〜９に記憶され、ユーザデータＵＤは、ブロック１０以降のブロックに記憶されるとする。ここで、この実施形態では、ＮＡＮＤ１０の各ページの実ページサイズは８ＫＢであるとし、また１ブロックは２５６ページで構成されているとする。すなわち、ＮＡＮＤ１０の１ブロックは２ＭＢであるとする。ＮＡＮＤ１０のページサイズは、１６ＫＢ、３２ＫＢであってもよいし、１ブロック内のページ数も他のページ数であってもよい。
【００１４】
メモリコントローラ３０は、メモリシステム１００の制御を行うプロセッサとしてのＣＰＵ３１と、ＣＰＵ３１上で実行される制御管理プログラムとしてのファームウエアが記憶されるプログラムＲＯＭ３２と、ホスト１から送信されるコマンド、メモリシステム１００からの応答などが設定される複数のレジスタを有する周辺レジスタ群３３を備える。
【００１５】
ＲＡＭ２０は、ホスト１とＮＡＮＤ１０間で転送されるデータを一時的に保存するためバッファ領域である一次バッファ２１、二次バッファ２２と、データ退避領域２３と、プログラムＲＯＭ３２に記憶されるファームウエアとしての制御プログラムが展開して実行される領域とを有している。図１では、制御プログラムの中のデータ合成処理を行う合成処理部としてのマージプログラムが展開されて実行されるマージ機能実行部２４を示している。マージプログラムは、後で詳述するが、ホスト１からのデータを複数個数分マージしてＮＡＮＤ１０にライトする機能と、ホスト１が指定する物理アドレスをＮＡＮＤ１０の物理アドレスに変換するためのマージ用アドレスに変換するアドレス変換機能を有する。
【００１６】
ページサイズ識別情報記憶部４０は、ＮＡＮＤ１０のデバイスドライバＤＶ１が記憶されている記憶領域のページサイズを識別するためのページサイズ識別情報ＰＩを記憶する。ページサイズ識別情報記憶部４０は、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）、シリアル・ペリフェラル・インタフェース（ＳＰＩ）フラッシュメモリなどの書き換え可能な不揮発メモリで構成されている。また、ページサイズ識別情報記憶部４０に記憶されるページサイズ識別情報ＰＩを、ＮＡＮＤ１０に記憶させるようにしてもよい。ページサイズ識別情報ＰＩに関しては、後で詳述する。
【００１７】
ホスト１は、ホスト１のブートプログラムＢＰが記憶されるブートＲＯＭ５０、不揮発性メモリとしてのＲＡＭ５１を有する。ホスト１内のＣＰＵ、ＯＳ（operating system）などは、便宜上、図示を省略する。ＲＡＭ５には、ＮＡＮＤ１０に保存されたデバイスドライバＤＶ１がメモリシステム１００から読み出されて記憶される。また、ページサイズ識別情報ＰＩの再設定の際には、ページサイズ識別情報記憶部４０に保存されたページサイズ識別情報がメモリシステム１００から読み出されてＲＡＭ５１に記憶される。
【００１８】
ここで、ブートＲＯＭ５０に記憶されるブートプログラムＢＰは、接続されるメモリシステムの不揮発性半導体メモリが、例えば、２ＫＢのページサイズを有していると認識しているものとする。前述したように、ＮＡＮＤ１０の実ページサイズは、８ＫＢであり、ブートプログラムが認識するページサイズより大きい。すなわち、ブートプログラムＢＰが認識しているページサイズは、ＮＡＮＤ１０の実ページサイズの自然数ｎ（ｎは２以上の自然数）分の１である。ここでは、ｎ＝４である。
【００１９】
図２は、ページサイズ識別情報記憶部４０に記憶されるページサイズ識別情報ＰＩの一例を示すものである。図２のページサイズ識別情報ＰＩは、ブロック単位に、ページサイズを任意に設定可能なフォーマットとしている。図２（ａ）は、メモリシステム１００がホスト１に組み込まれた初期状態での、ページサイズ識別情報ＰＩの設定状態を示している。図２（ａ）では、ページサイズ識別情報ＰＩは、全てのブロック０〜ブロックｎについて、ページサイズが８ＫＢと設定されており、ＮＡＮＤ１０の実ページサイズと一致している。
【００２０】
ページサイズ識別情報記憶部４０に記憶されているページサイズ識別情報ＰＩは、外部から書き換え可能となっている。このため、ホスト１の製造者、あるいはチップセットの製造者は、ページサイズ識別情報記憶部４０に記憶されているページサイズ識別情報ＰＩを書き換えることで、ブートプログラムＢＰがアクセスするＮＡＮＤ１０の記憶領域であるブロック０〜ブロック９を、ブートプログラムＢＰが認識するページサイズと一致させることができる。
【００２１】
図３に、ホスト１側からページサイズ識別情報記憶部４０に記憶されているページサイズ識別情報ＰＩを書き換える手順を示す。まず、ホスト１の製造者、あるいはチップセットの製造者は、メモリシステム１００の周辺レジスタ群３３のレジスタへのコマンド設定を行い、メモリシステム１００に対し、ページサイズ識別情報記憶部４０に記憶されたページサイズ識別情報ＰＩの読み出しを命令する。この周辺レジスタ群３３のレジスタへのコマンド設定により、ＣＰＵ３１上で動作するファームウエアは、ページサイズ識別情報記憶部４０から、例えば、図２（ａ）に示したページサイズ識別情報ＰＩを読み出し、読み出したページサイズ識別情報ＰＩを二次バッファ２２、一次バッファ２１、Ｉ／Ｏバス５、インタフェース２を介して、ホスト１に転送する（ステップＳ７０）。
【００２２】
メモリシステム１００から転送されたページサイズ識別情報ＰＩはＲＡＭ５１に記憶される。ホスト１の製造者、あるいはチップセットの製造者は、ＲＡＭ５１上のページサイズ識別情報ＰＩを、例えば図２（ｂ）に示すように、変更する（ステップＳ７１）。
【００２３】
図２（ｂ）は、ホスト１の製造者、チップセットの製造者などによって、変更されたページサイズ識別情報ＰＩを示している。図２（ｂ）では、デバイスドライバＤＶ１が記憶されるＮＡＮＤ１０のブロック０〜ブロック９が、ブートプログラムＢＰが認識可能な２ＫＢのページサイズに変更されている。これにより、ブートプログラムＢＰは、ホスト１の起動時、ブートプログラムＢＰ内に記述された判定条件を満足するメモリデバイスとして、メモリシステム１００を認識することが可能となる。
【００２４】
ホスト１側で変更されたページサイズ識別情報ＰＩは、ホスト１によってメモリシステム１００の周辺レジスタ３３のレジスタにコマンドとともにセットされる。この周辺レジスタ群３３へのコマンド設定により、ＣＰＵ３１上で動作するファームウエアは、周辺レジスタ群３３のレジスタにセットされたページサイズ識別情報ＰＩをページサイズ識別情報記憶部４０に書き込み、不揮発化する（ステップＳ７２）。これにより、ページサイズ識別情報ＰＩの再設定が行われる。
【００２５】
図４は、ページサイズ識別情報記憶部４０に記憶されるページサイズ識別情報ＰＩの他のフォーマット例を示すものである。このフォーマットでは、先頭ブロックから任意のブロックまでのページサイズを設定可能である。図４（ａ）は、メモリシステム１００がホスト１に組み込まれた初期状態での、ページサイズ識別情報ＰＩの設定状態を示している。図４（ａ）では、ページサイズ識別情報ＰＩは、ブロック番号の番号を入力する箇所と、ページサイズを入力する箇所が空欄となっている。図４（ｂ）は、ホスト１の製造者、チップセットの製造者などによって、変更されたページサイズ識別情報ＰＩを示している。図４（ｂ）では、ブロック９が２ＫＢのページサイズを有するように設定されており、これにより、デバイスドライバＤＶ１が記憶されるＮＡＮＤ１０のブロック０〜ブロック９が、ブートプログラムＢＰが認識可能な２ＫＢのページサイズであることをブートプログラムＢＰとメモリシステム１０の双方が認識する。
【００２６】
つぎに、図５に従って、メモリシステム１００が組み込まれたホスト１の通常の運用の際の起動時の動作手順について説明する。なお、メモリシステム１００は、通常の運用の際は、図５のステップＳ１００に示したホストシステム１の電源ＯＮの際に、電源ＯＮにされ、ステップＳ１１０〜Ｓ１７０の手順に従って起動される。但し、ホスト１の通常の運用の際は、メモリシステム１００のページサイズ情報記憶部４０に記憶されたページサイズ識別情報ＰＩは、図２（ｂ）あるいは図４（ｂ）に示したように、ブートプログラムＢＰが認識可能なページサイズに再設定されている。
【００２７】
ホスト１が起動されると（ステップＳ１００）、ブートＲＯＭ５０に記憶されるブートプログラムＢＰが起動される。ブートプログラムＢＰは、メモリシステム１００に対し、ページサイズ識別情報記憶部４０に記憶されたページサイズ識別情報ＰＩの読み出しを要求する。ＣＰＵ３１は、ブートプログラムＢＰによる周辺レジスタ群３３のレジスタへのコマンド設定によってホスト１からの読み出し要求を認識する。ＣＰＵ３１は、ページサイズ識別情報記憶部４０から、例えば、図２（ｂ）に示したページサイズ識別情報ＰＩを読み出し、読み出したページサイズ識別情報ＰＩを二次バッファ２２、一次バッファ２１、Ｉ／Ｏバス５、インタフェース２を介して、ホスト１に転送する（ステップＳ１１０）。ブートプログラムＢＰは、メモリシステム１００から転送されたページサイズ識別情報ＰＩをＲＡＭ５１に記憶する（ステップＳ１２０）。
【００２８】
ブートプログラムＢＰは、ブートプログラム自身が認識しているＮＡＮＤ１０のページサイズと、メモリシステム１００から取得したページサイズ識別情報ＰＩに登録されているページサイズとを比較し（ステップＳ１３０）、両者が不一致の場合は、これ以降の処理を停止する（ステップＳ１４０）。例えば、ページサイズ識別情報ＰＩとして、図２（ａ）に示すように、全てのページが８ＫＢであるような設定がなされている場合、ブートプログラムＢＰは、ブートプログラムＢＰ内に記述された判定条件を満足するメモリデバイスとして、メモリシステム１００を認識することができず、この時点で処理を停止する。
【００２９】
一方、ステップＳ１３０の判定で、両者が一致している場合、ブートプログラムＢＰは、メモリシステム１００に対し、ＮＡＮＤ１０のブロック０〜ブロック９のデータ読み出しを要求する。ブートプログラムＢＰが周辺レジスタ群３３のレジスタに対して読み出しコマンド、ブロック０〜ブロック９の物理アドレスを設定することによって、メモリシステム１００に対する読み出し要求が実行される。
【００３０】
ＣＰＵ３１は、ＮＡＮＤ１０のブロック０〜ブロック９からデータを読み出し、読み出したデータを二次バッファ２２、一次バッファ２１、Ｉ／Ｏバス５、インタフェース２を介して、ホスト１に転送する（ステップＳ１５０）。ブートプログラムＢＰは、メモリシステム１００から転送されたデータをデバイスドライバＤＶ１としてＲＡＭ５１に記憶する（ステップＳ１６０）。次に、ブートプログラムＢＰは、ホスト１のプログラムカウンタをデバイスドライバＤＶ１に設定することで、デバイスドライバＤＶ１を起動する（ステップＳ１７０）。このデバイスドライバＤＶ１の起動によって、ＮＡＮＤ１０のユーザ記憶領域ＵＤに対し、ホスト１のＯＳやアプリケーションからアクセスが可能な状態となる（ステップＳ１８０）。デバイスドライバＤＶ１は、メモリシステム１００とホスト１の起動時に読み出され、ユーザ記憶領域ＵＤに記憶されたユーザデータは、メモリシステム１の起動後に読み出される。
【００３１】
図６は、データの読み出しおよびデータの書き込みの際に、マージ機能実行部２４が行うアドレス変換処理を示すものである。図６において、左欄には、ブートプログラムＢＰのアクセス単位と、ブートプログラムＢＰが認識しているブロック内ページ数が示されている。ブートプログラムＢＰのアクセス単位とは、ブートプログラムＢＰが認識しているページサイズのことであり、この例では、２ＫＢである。また、ブートプログラムＢＰは、１ブロックが１２８ページで構成されると認識している。図６において、右欄には、ＮＡＮＤ１０のページサイズと、ＮＡＮＤ１０のブロック内ページ数が示されている。この例では、ＮＡＮＤ１０のページサイズは８ＫＢであり、ＮＡＮＤ１０は、１ブロックが２５６ページで構成されている。
【００３２】
図６の中欄は、マージ機能実行部２４が行うアドレス変換処理を示すものである。このアドレス変換処理は、リード処理およびライト処理の双方に適用可能であり、次のようなアドレス変換が行われる。ブートプログラムＢＰのアドレス指定は、ブロック番号およびブロック内ページ番号を使うのではなく、図６の符号Ｄ２に示すように、通しページ番号によって行われる。図６の符号Ｄ１に示したブロック番号は便宜上図示しただけで、アドレス指定の際には使用されない。
【００３３】
ここで、ＮＡＮＤ１０のページサイズ（８ＫＢ）をページサイズ識別情報に登録されたページサイズ（２ＫＢ）で除算した商をページサイズ比Ｒ（＝４）と呼ぶ。ホスト１が指定するページ番号をページサイズ比Ｒで除算した商が、ＮＡＮＤ１０のページ番号Ｎｐとなり、その余りが、ページ内オフセットＯｆｆとなる。また、ページ番号Ｎｐを、ＮＡＮＤ１０の１ブロックあたりのページ数ＰＰ（＝２５６）で除算した商が、ＮＡＮＤ１０のブロック番号Ｎｂとなる。
【００３４】
例えば、ホスト１が指定したページ番号０は、ブロック番号０、ページ番号０、オフセット０にアドレス変換され、ホスト１が指定したページ番号１は、ブロック番号０、ページ番号０、オフセット１にアドレス変換され、ホスト１が指定したページ番号２は、ブロック番号０、ページ番号０、オフセット２にアドレス変換され、ホスト１が指定したページ番号３は、ブロック番号０、ページ番号０、オフセット３にアドレス変換される。
【００３５】
このアドレス変換によれば、図７に示すように、ホスト１の指定した２ＫＢ単位の１２８０ページ分のデータ記憶領域は、ＮＡＮＤ１０のブロック０〜９のうちの前半部分（正確には、ブロック０のページ０からブロック１のページ６３）に対応することになる。別言すれば、デバイスドライバＤＶ１は、ＮＡＮＤ１０のブロック０〜９のうちの前半部分に先詰めで記憶されている。先の図５のステップＳ１５０で説明したブロック０〜ブロック９に対する読み出し処理では、実際には、図６に示したアドレス変換が行われて、デバイスドライバＤＶ１は、ＮＡＮＤ１０におけるブロック０のページ０からブロック１のページ６３までの領域から読み出されて、ホスト１に転送されることになる。
【００３６】
図８に、メモリシステム１００の２ＫＢ単位の読み出し処理を示す。図９は、メモリシステム１００の読み出し処理手順を示す図である。図１０は、メモリシステム１００の読み出し処理を示すタイムチャートである。ホスト１のデバイスドライバＤＶ１は、周辺レジスタ群３３のレジスタへ読み出しコマンド、読み出しアドレスをセットする（ステップＳ２００）。マージ機能実行部２４は、図１０に示す、第１のリードコマンドＲＤＣＭＤ１、アドレスＡＤＤＲ、第２のリードコマンドＲＤＣＭＤ２をホスト１から受信したことを検出すると、図６に示したアドレス変換処理を用いて、ホスト１から入力された読み出しアドレスを、ＮＡＮＤ１０の物理アドレスに変換する（ステップＳ２１０）。マージ機能実行部２４は、図８に示すように、変換したアドレスを用いてＮＡＮＤ１０から２ＫＢのデータを読み出し、読み出した２ＫＢのデータを二次バッファ２２に記憶する（ステップＳ２２０）。さらに、マージ機能実行部２４は、図８に示すように、二次バッファ２２に記憶された２ＫＢのデータを一次バッファ２１に転送する（ステップＳ２３０）。さらに、マージ機能実行部２４は、図８に示すように、一次バッファ２１に記憶された２ＫＢのデータをホスト１へ転送する（ステップＳ２４０）。
【００３７】
なお、ＮＡＮＤ１０のカラム読み出しシーケンスを使えば、ホスト１からバイト単位でのカラムアクセスを行うことで、ＮＡＮＤ１０からデータをバイト単位に読み出すことも可能である。
【００３８】
図１１に、ホスト１から２ＫＢ単位の通常の書き込み要求が来たときのタイムチャートを示す。図１２は、通常の書き込み処理を示す図である。以下に示す書き込み処理は、ホストシステムの製造者や、チップセットの製造者が、デバイスドライバＤＶ１を変更設定する際に、行われる。
【００３９】
メモリシステム１００では、ＮＡＮＤ１０のページサイズ単位（８ＫＢ）で書き込みを行う。一方、ホスト１からの書き込みデータは２ＫＢ単位である。このため、マージ機能実行部２４は、図６に示したアドレス変換規則にしたがって、図１２に示すように、２ＫＢのデータを一次バッファ２１で４個バッファリングし、バッファリングした４個のデータを図６に示したアドレス変換規則にしたがってマージし、マージ後の８ＫＢのデータを二次バッファ２２にバッファリングし、さらに二次バッファ２２にバッファリングした８ＫＢのデータを、図６に示したアドレス変換規則にしたがって計算されるＮＡＮＤ１０の所定のブロックに書き込む。
【００４０】
図１１に示すように、ホスト１から、１回目はページ番号１２８へ２ＫＢを書き込む要求があり、２回目はページ番号１２９へ２ＫＢを書き込む要求があり、３回目はページ番号１３０へ２ＫＢを書き込む要求があり、４回目はページ番号１３１へ２ＫＢを書き込む要求があったとする。
【００４１】
ホスト１からの１回目のデータ書き込みでは、ホスト１のデバイスドライバＤＶ１は、周辺レジスタ群３３のレジスタへ、第１書き込みコマンドＷＴＣＭＤ１、書き込みアドレスＡＤＤＲ、書き込みデータＡ、第２書き込みコマンドＷＴＣＭＤ２を順次セットする。マージ機能実行部２４は、第１書き込みコマンドＷＴＣＭＤ１、書き込みアドレスＡＤＤＲ（ページ番号）、書き込みデータＡをホスト１から受信したことを検出すると、データＡを周辺レジスタ群３３のレジスタからＩ／Ｏバス５を介して一次バッファ２１に転送する。また、図６に示したアドレス変換処理を用いて、ホスト１から入力された書き込みアドレスを、ブロック番号Ｎｂ、ページ番号ＮｐおよびオフセットＯｆｆから成るマージ用アドレスに変換する。なお、１回目の書き込みでは、メモリコントローラ３０は、第２書き込みコマンドＷＴＣＭＤ２を無視する。データは、一次バッファ２１にバッファリングされるのみでＮＡＮＤ１０に書かれることはないので、メモリシステム１００からホスト１に応答されるビジー信号Ｂｕｓｙのアサート期間は短い。
【００４２】
ホスト１からの２回目のデータ書き込みでは、ホスト１のデバイスドライバＤＶ１は、周辺レジスタ群３３のレジスタへ、第１書き込みコマンドＷＴＣＭＤ１、書き込みアドレスＡＤＤＲ、書き込みデータＢ、第２書き込みコマンドＷＴＣＭＤ２を順次セットする。マージ機能実行部２４は、第１書き込みコマンドＷＴＣＭＤ１、書き込みアドレスＡＤＤＲ、書き込みデータＢをホスト１から受信したことを検出すると、この書き込みアドレスＡＤＤＲが１回目のデータ書き込みの際に入力された書き込みアドレスＡＤＤＲ（ページ番号）と同一ページに書き込むべきアドレスであるか否かを判定する。同一ページに書き込むべきアドレスでない場合の処理は、後で説明する。図１１に示す例では、２回目の書き込み、３回目の書き込み、４回目の書き込みにおいて、アドレスＡＤＤＲ（ページ番号）が連続しており、かつこれらはＮＡＮＤ１０上の同一ページに書き込むべきアドレスである。マージ機能実行部２４は、書き込みデータＢを周辺レジスタ群３３のレジスタからＩ／Ｏバス５を介して一次バッファ２１に転送する。また、図６に示したアドレス変換処理を用いて、ホスト１から入力された書き込みアドレスを、ブロック番号Ｎｂ、ページ番号ＮｐおよびオフセットＯｆｆから成るマージ用アドレスに変換する。なお、２回目の書き込みでは、メモリコントローラ３０は、第１書き込みコマンドＷＴＣＭＤ１および第２書き込みコマンドＷＴＣＭＤ２を無視する。前回同様、ビジー信号Ｂｕｓｙのアサート期間は短い。
【００４３】
ホスト１からの３回目のデータ書き込みでは、ホスト１のデバイスドライバＤＶ１は、周辺レジスタ群３３のレジスタへ、第１書き込みコマンドＷＴＣＭＤ１、書き込みアドレスＡＤＤＲ、書き込みデータＣ、第２書き込みコマンドＷＴＣＭＤ２を順次セットする。マージ機能実行部２４は、第１書き込みコマンドＷＴＣＭＤ１、書き込みアドレスＡＤＤＲ、書き込みデータＣをホスト１から受信したことを検出すると、書き込みデータＣを周辺レジスタ群３３のレジスタからＩ／Ｏバス５を介して一次バッファ２１に転送する。また、図６に示したアドレス変換処理を用いて、ホスト１から入力された書き込みアドレスを、ブロック番号Ｎｂ、ページ番号ＮｐおよびオフセットＯｆｆから成るマージ用アドレスに変換する。なお、３回目の書き込みでも、メモリコントローラ３０は、第１書き込みコマンドＷＴＣＭＤ１および第２書き込みコマンドＷＴＣＭＤ２を無視する。前回同様、ビジー信号Ｂｕｓｙのアサート期間は短い。
【００４４】
ホスト１からの４回目のデータ書き込みでは、ホスト１のデバイスドライバＤＶ１は、周辺レジスタ群３３のレジスタへ、第１書き込みコマンドＷＴＣＭＤ１、書き込みアドレスＡＤＤＲ、書き込みデータＤ、第２書き込みコマンドＷＴＣＭＤ２を順次セットする。マージ機能実行部２４は、第１書き込みコマンドＷＴＣＭＤ１、書き込みアドレスＡＤＤＲ、書き込みデータＤ、第２書き込みコマンドＷＴＣＭＤ２をホスト１から受信したことを検出すると、書き込みデータＤを周辺レジスタ群３３のレジスタからＩ／Ｏバス５を介して一次バッファ２１に転送する。また、図６に示したアドレス変換処理を用いて、ホスト１から入力された書き込みアドレスを、ブロック番号Ｎｂ、ページ番号ＮｐおよびオフセットＯｆｆから成るマージ用アドレスに変換する。なお、４回目の書き込みでも、メモリコントローラ３０は、第１書き込みコマンドＷＴＣＭＤ１を無視する。
【００４５】
さらに、マージ機能実行部２４は、第２書き込みコマンドＷＴＣＭＤ２の受信を検出すると、一次バッファ２１でバッファリングしている４個の２ＫＢのデータを、オフセットＯｆｆ順にマージし、マージ後の８ＫＢのデータを二次バッファ２２にバッファリングする。さらに、マージ機能実行部２４は、図６に示したアドレス変換規則にしたがって、マージ後の８ＫＢのデータを書き込むべきＮＡＮＤ１０上のアドレスを計算する。この場合は、ブロック０のページ番号３２が計算される。したがって、マージ機能実行部２４は、二次バッファ２２にバッファリングした８ＫＢのマージデータＡ，Ｂ，Ｃ，Ｄを、ＮＡＮＤ１０のブロック０のページ番号３２のページに書き込む。ホスト１からの４回目のデータ書き込みの際には、ＮＡＮＤ１０への書き込みが実際に行われるので、ビジー信号Ｂｕｓｙのアサート期間は長い。
【００４６】
図１３に、ホスト１からページサイズ識別情報ＰＩの登録内容と異なるデータサイズの書き込み要求が来た場合の書き込み処理を示す。図１３に示すように、ホスト１から、１回目はページ番号１２８へ２ＫＢを書き込む要求があり、２回目はページ番号１２９へ２ＫＢを書き込む要求があり、３回目はページ番号１３０へ２ＫＢを書き込む要求があり、４回目はページ番号０へ８ＫＢを書き込む要求があったとする。
【００４７】
図１３の場合、ホスト１からの１回目〜３回目のデータ書き込みでは、ホスト１からの書き込み要求がページサイズ識別情報と一致しているので、前述と同様の処理が行われる。ホスト１からの４回目のデータ書き込みでは、ホスト１のデバイスドライバＤＶ１は、周辺レジスタ群３３のレジスタへ、第１書き込みコマンドＷＴＣＭＤ１、書き込みアドレスＡＤＤＲ、書き込みデータＤ、第２書き込みコマンドＷＴＣＭＤ２を順次セットする。マージ機能実行部２４は、第１書き込みコマンドＷＴＣＭＤ１、書き込みアドレスＡＤＤＲ（ページ番号０）、書き込みデータＤをホスト１から受信したことを検出すると、このデータＤのアドレスおよびデータサイズがページサイズ識別情報ＰＩに登録内容と一致するか否かを判定する。この場合、ページサイズ識別情報ＰＩでは、ブロック０に含まれるページ番号０のデータサイズは２ＫＢであると登録されているので、ページ番号０のアドレスを持つ８ＫＢのデータＤと一致しない。
【００４８】
マージ機能実行部２４は、データＤのアドレスおよびデータサイズがページサイズ識別情報ＰＩの登録内容と一致しないので、このデータＤを一次バッファ２１には転送しない。そして、メモリコントローラ３０は、ホスト１に対し、今回の１回目〜４回目のデータ書き込みが失敗したことを示す情報と、４回目のデータ書き込みはページ識別情報ＰＩに一致しないことを示す情報を含むエラー情報を応答する。このエラー情報により、ホスト１は、１回目〜４回目のデータ書き込みが失敗したことを知ることが可能となる。
【００４９】
図１４は、１回目の転送データとマージして同一ページに書き込むべきでないデータの書き込み要求がホスト１から来たときの書き込み処理を示すタイムチャートである。図１５は、１回目の転送データとマージして同一ページに書き込むべきでないデータの書き込み要求がホスト１から来たときの書き込み処理を示す図である。図１４に示すように、ホスト１から、１回目はページ番号０へ２ＫＢを書き込む要求があり、２回目はページ番号１へ２ＫＢを書き込む要求があり、３回目はページ番号２へ２ＫＢを書き込む要求があり、４回目はページ番号１１５２（ブロック９のページ０）へ２ＫＢを書き込む要求があったとする。
【００５０】
図１４の場合、ホスト１からの１回目〜３回目のデータ書き込み要求は、ＮＡＮＤ１０の同一ページに書き込むべきであるので、前述と同様の処理が行われる。したがって、ホスト１からの１回目〜３回目の書き込みデータＡ、Ｂ、Ｃは、図１５（ａ）に示すように、一次バッファ２１に順次バッファリングされる。ホスト１からの４回目のデータ書き込みでは、ホスト１のデバイスドライバＤＶ１は、周辺レジスタ群３３のレジスタへ、第１書き込みコマンドＷＴＣＭＤ１、書き込みアドレスＡＤＤＲ、書き込みデータＤ、第２書き込みコマンドＷＴＣＭＤ２を順次セットする。マージ機能実行部２４は、第１書き込みコマンドＷＴＣＭＤ１、書き込みアドレスＡＤＤＲ（ページ番号０）、書き込みデータＤをホスト１から受信したことを検出すると、このデータＤのアドレスおよびデータサイズがページサイズ識別情報ＰＩに登録内容と一致するか否かを判定する。この場合、ページサイズ識別情報ＰＩでは、ブロック９に含まれるページ番号０のデータサイズは２ＫＢであると登録されているので、ページ番号１１５２のアドレスを持つ２ＫＢのデータＤと一致する。
【００５１】
さらに、マージ機能実行部２４は、このデータＤのアドレスに基づき、このデータＤが１回目の転送データとマージして同一ページに書き込むべきであるか否かを判定する。この場合、図６に示したアドレス変換規則では、１回目のデータ書き込み要求のデータは、ＮＡＮＤ１０のブロック０のページ０に書き込むべきであり、４回目の書き込み要求のデータは、ブロック０のページ３１（ページ２８８）に書き込むべきである。したがって、マージ機能実行部２４は、この４回目の書き込み要求のデータは、１回目のデータ書き込み要求のデータと同一ページに書き込むべきではないと判断する。マージ機能実行部２４は、４回目の書き込みデータＤを一次バッファ２１に転送するのではなく、図１５（ａ）に示すように、データ退避領域２３に転送する。
【００５２】
さらに、マージ機能実行部２４は、図６に示したアドレス変換処理を用いて、ホスト１から入力された１回目〜３回目のデータ書き込み要求の書き込みアドレスを、ブロック番号Ｎｂ、ページ番号ＮｐおよびオフセットＯｆｆから成るマージ用アドレスに変換する。また、マージ機能実行部２４は、図１５（ｂ）に示すように、一次バッファ２１で３個バッファリングしている３個の２ＫＢのデータＡ、Ｂ、Ｃを、オフセットＯｆｆ順にマージし、さらにこのマージされた６ＫＢのデータにダミーデータを付加して８ＫＢのデータとし、この８ＫＢのデータを二次バッファ２２にバッファリングする。さらに、マージ機能実行部２４は、図６に示したアドレス変換規則にしたがって、マージ後の８ＫＢのデータを書き込むべきＮＡＮＤ１０上のアドレスを計算する。この場合は、ブロック０のページ番号０が計算される。したがって、マージ機能実行部２４は、二次バッファ２２にバッファリングした８ＫＢのマージデータ（Ａ＋Ｂ＋Ｃ＋ダミーデータ）を、ＮＡＮＤ１０のブロック０のページ番号０のページに書き込む。ホスト１からの４回目のデータ書き込みの際には、ＮＡＮＤ１０への書き込みが実際に行われるので、ビジー信号Ｂｕｓｙのアサート期間は長い。その後、データ退避領域２３に退避していたデータＤを、図１５（ｃ）に示すように、一次バッファ２１に転送する。一次バッファ２１にバッファリングされたデータＤは、その後のホスト１からの書き込み要求の内容に応じて、ホスト１からの書き込みデータあるいはダミーデータと組み合わされて８ＫＢのデータにされた後、二次バッファ２２を介してＮＡＮＤ１０に書き込まれる。
【００５３】
図１６は、図１１〜図１５で説明したマージ機能実行部２４での書き込み処理の手順を示すフローチャートである。なお、この書き込み手順では、ＮＡＮＤ１０の書き込み単位であるページサイズは、８ＫＢであって、ホスト１からの１回のコマンドシーケンスでの書き込みデータ単位（２ＫＢ）の４倍であり、４回のコマンドシーケンスに１回、ＮＡＮＤ１０での書き込みを行うことにしている。このため、ＮＡＮＤ１０のページサイズが１６ＫＢの場合は、８回のコマンドシーケンスに１回、ＮＡＮＤ１０での書き込みを行うことになる。
【００５４】
マージ機能実行部２４は、ホスト１から書き込み要求を受信すると（ステップＳ３００）、この書き込み要求で指定される書き込みアドレスおよびデータサイズがページサイズ識別情報記憶部４０に記憶されているページサイズ識別情報ＰＩの内容と一致するか否かを判定する（ステップＳ３１０）。そして、図１３に示した例のように、書き込み要求で指定される書き込みアドレスおよびデータサイズがページサイズ識別情報ＰＩの内容と一致していない場合は、マージ機能実行部２４は、この時点で処理を停止し（ステップＳ３２０）、ホスト１にエラー情報を送信する（ステップＳ３３０）。
【００５５】
マージ機能実行部２４は、ステップＳ３１０の判定がＹｅｓの場合、つぎにこのデータ書き込みが１回目の書き込み要求であるか否かを判定する（ステップＳ３４０）。マージ機能実行部２４は、ステップＳ３４０の判定がＹｅｓの場合、周辺レジスタ群３３のレジスタにセットされた書き込みデータを一次バッファ２１に転送する（ステップＳ３４５）。マージ機能実行部２４は、ステップＳ３４０の判定がＮｏの場合、すなわち今回の書き込み要求が２〜４回目の書き込み要求である場合は、今回の書き込み要求で指定される書き込みデータが、１回の書き込み要求で指定された書き込みデータと同一ページに書き込むべきデータであるか否かを判定する（ステップＳ３４２）。マージ機能実行部２４は、１回目の書き込み要求で指定された書き込みアドレスと、今回の書き込み要求で指定された書き込みアドレスと、図６に示したアドレス変換規則とに基づいて、ステップＳ３４２の判定処理を実行する。
【００５６】
このステップＳ３４２の判定処理がＹｅｓの場合は、マージ機能実行部２４は、今回の書き込み要求で指定された書き込みデータを周辺レジスタ群３３のレジスタから一次バッファ２１に転送する（ステップＳ３４５）。一方、ステップＳ３４２の判定処理がＮｏの場合は、マージ機能実行部２４は、図１４、図１５を用いて説明したように、今回の書き込み要求で指定された書き込みデータを周辺レジスタ群３３のレジスタからデータ退避領域２３に転送する（ステップＳ３６０）。
【００５７】
ステップＳ３７０では、今回の書き込み要求が４回目であるか否かが判定され、その判定結果がＮｏである場合は、手順をステップＳ３００に復帰させ、前述したステップＳ３１０〜Ｓ３７０の処理が、ステップＳ３７０の判定結果がＹｅｓになるまで、繰り返される。
【００５８】
ステップＳ３７０において、今回の書き込み要求が４回目であると判定された場合は、マージ機能実行部２４は、一次バッファ２１に、２ＫＢのデータが４個バッファリングされているか否かを判定する（ステップＳ３８０）。マージ機能実行部２４は、一次バッファ２１に、２ＫＢのデータが４個バッファリングされている場合は、一次バッファ２１にバッファリングしている４個の２ＫＢのデータを、オフセットＯｆｆ順にマージし（ステップＳ３９０）、マージ後の８ＫＢのデータを二次バッファ２２にバッファリングする（ステップＳ４１０）。さらに、マージ機能実行部２４は、図６に示したアドレス変換規則にしたがって、マージ後の８ＫＢのデータを書き込むべきＮＡＮＤ１０上のアドレスを計算し、計算したアドレスに従って二次バッファ２２にバッファリングした８ＫＢのマージデータを、ＮＡＮＤ１０のページに書き込む（ステップＳ４２０）。
【００５９】
ステップＳ３８０で、一次バッファ２１にデータが１個以上〜４個未満しかバッファリングされていない場合、マージ機能実行部２４は、この不足分をダミーデータで充足することで８ＫＢのデータを作成する（ステップＳ４００）。例えば、１回目の書き込み分のデータと、３回目の書き込み分のデータとを含む２個のデータしか一次バッファ２１にバッファリングされていない場合は、２個目の書き込みデータと４個目の書き込みデータに対応する箇所にダミーデータが配置されるように、図６に示したアドレス変換規則と書き込みアドレスとを参照して、書き込みデータとダミーデータのマージ処理を行う。図１５に示した例では、４回目の書き込み分のデータのみが不足しているので、４回目の書き込みデータに対応する箇所にダミーデータが配置されている。マージ機能実行部２４は、ダミーデータによって充足した８ＫＢのマージデータを二次バッファ２２にバッファリングする（ステップＳ４１０）。さらに、マージ機能実行部２４は、図６に示したアドレス変換規則にしたがって、マージ後の８ＫＢのデータを書き込むべきＮＡＮＤ１０上のアドレスを計算し、計算したアドレスに従って二次バッファ２２にバッファリングした８ＫＢのマージデータを、ＮＡＮＤ１０のページに書き込む（ステップＳ４２０）。
【００６０】
このようにこの実施形態においては、ページサイズ識別情報におけるデバイスドライバＤＶ１が記憶される一部のブロックについてのページサイズを外部設定可能としている。このため、ホストシステムの製造業者や、チップセットの製造業者は、デバイスドライバＤＶ１が記憶される一部のブロックがホストシステム側のブートプログラムによって読み出すことができるように、前記一部のブロックのページサイズを変更設定することができ、これにより、ブートプログラムによるメモリシステムの認識処理の際に、処理が停止されることが防止され、ホストシステムが起動不可能となることはない。
【００６１】
また、この実施形態では、ホストからの書き込みデータを複数個マージし、マージした複数個のデータをＮＡＮＤ１０のページに書き込むためのデータマージ機能とアドレス変換機能を備えているので、デバイスドライバＤＶ１が記憶される一部のブロックに対してホストシステム側がアクセスするデータサイズに比べ、ＮＡＮＤ１０のページサイズがｎ倍（ｎは２以上の自然数）である場合でも、ホストシステムの製造業者や、チップセットの製造業者によるデバイスドライバＤＶ１の変更作業が可能となる。
【００６２】
また、この実施形態では、デバイスドライバＤＶ１が記憶されたブロックに対する書き込みが行われる場合、この書き込みデータが、ページサイズ識別情報の登録内容と一致するか否かを判定し、一致しない場合、前記ホストシステムにエラーを送信することにしているので、ホストシステム１側で指定したデータサイズがメモリシステム側で受け入れることができない場合には、ホストシステム側で異常を検知することができ、デバイスドライバＤＶ１の変更作業を軽減することが可能となる。
【００６３】
また、この実施形態では、デバイスドライバＤＶ１が記憶されたブロックに対する書き込みが行われる場合、今回の書き込みデータが１回目の書き込みデータと合成して同一ページに書き込むか否かを判定し、同一ページに書き込むべきでない場合は、今回の書き込みデータをデータ退避領域に退避し、このデータ退避によりＮＡＮＤ１０のページサイズに対しデータが不足する場合は、不足分だけダミーデータを付加することとしているので、ホストシステム１側でのデバイスドライバＤＶ１の変更作業のアドレス指定作業が軽減化される。
【００６４】
なお、上記実施形態では、ホスト１の書き込みデータは、周辺レジスタ群３３のレジスタで一旦受信され、周辺レジスタ群３３のレジスタにセットされた書き込みデータをメモリコントローラ３０が一次バッファ２１に転送することとしたが、ホスト１がＩ／Ｏバス５上に出力したデータを、メモリコントローラ３０が一次バッファ２１に直接取り込むようにすることも可能である。
【００６５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６６】
１  ホストシステム、２  インタフェース、５  Ｉ／Ｏバス、１０  ＮＡＮＤ型フラッシュメモリ、２０  ＲＡＭ、２１  一次バッファ、２２  二次バッファ、２３  データ退避領域、２４  マージ機能実行部、３０  メモリコントローラ、３１  ＣＰＵ（プロセッサ）、３２  プログラムＲＯＭ、３３  周辺レジスタ群、４０  ページサイズ識別情報記憶部、５０  ブートＲＯＭ、５１  ＲＡＭ、１００  メモリシステム、ＤＶ１  デバイスドライバ、ＰＩ  ページサイズ識別情報、ＢＰ  ブートプログラム、Ｄ１  ブロック番号、Ｄ２  ページ番号、Ｎｂ  ブロック番号、Ｎｐ  ページ番号、Ｏｆｆ  オフセット、ＰＰ  １ブロックあたりのページ数、ＡＤＤＲ  アドレス、ＲＤＣＭＤ  リードコマンド、ＷＴＣＭＤ  ライトコマンド。
【図１】
2015056171.tif 000003
【図２】
2015056171.tif 000004
【図３】
2015056171.tif 000005
【図４】
2015056171.tif 000006
【図５】
2015056171.tif 000007
【図６】
2015056171.tif 000008
【図７】
2015056171.tif 000009
【図８】
2015056171.tif 000010
【図９】
2015056171.tif 000011
【図１０】
2015056171.tif 000012
【図１１】
2015056171.tif 000013
【図１２】
2015056171.tif 000014
【図１３】
2015056171.tif 000015
【図１４】
2015056171.tif 000016
【図１５】
2015056171.tif 000017
【図１６】
2015056171.tif 000018