(57)【要約】【課題】  フラッシュメモリに記憶させた起動プログラムの更新処理が正常に終了しなかったときに、ホストシステムが正常に動作できなくなる危険性を減じる。【解決手段】  フラッシュメモリ１の記憶空間の第１の領域１ｂ又は第２の領域１ｃに起動プログラムを書込むと共に、起動プログラムを書込んだ第１の領域１ｂ又は第２の領域１ｃを示す領域指示情報をフラッシュメモリ１に書込む。ホストシステムを起動するときには、領域指示情報に基づいて起動プログラムを読出してホストシステムに与える。新たな起動プログラムを書込む場合には、領域指示情報で示されていない第１の領域１ｂ又は第２の領域１ｃに新たな起動プログラムを書込み、書込みが終了したときに領域指示情報を更新する。【選択図】  図１
2006243780.tif 000002
【特許請求の範囲】
【請求項１】
消去はブロック単位で書込みと読出しはページ単位で行われるフラッシュメモリに対するアクセスをホストシステム側から与えられる指示に基いて制御するメモリコントローラであって、
前記フラッシュメモリ内の第１の領域又は第２の領域に起動プログラムを書込むプログラム書込み手段と、
前記フラッシュメモリに前記起動プログラムを書込んだ第１の領域又は第２の領域を示す領域指示情報を書込む領域指示情報書込み手段と、
前記フラッシュメモリに書込まれている前記領域指示情報を読出す領域指示情報読出し手段とを備え、
前記プログラム書込み手段は、新たな起動プログラムを書込むときに前記領域指示情報によって指示されていない第１の領域または第２の領域に該新たな起動プログラムを書込み、
前記領域指示情報書込み手段は、前記新たな起動プログラムの書込みが正常に終了した後に前記領域指示情報を該新たな起動プログラムが書込まれた第１の領域又は第２の領域を示す情報に変更する構成であることを特徴とするメモリコントローラ。
【請求項２】
前記フラッシュメモリ内の第１の領域又は第２の領域から起動プログラムをページ単位で読出すプログラム読出し手段と、
前記プログラム読出し手段によって読出された起動プログラムを前記ホストシステム側に転送する転送手段とを備え、
前記プログラム読出し手段は、前記領域指示情報によって指示されている第１の領域又は第２の領域から起動プログラムを読出す構成であることを特徴とする請求項１に記載のメモリコントローラ。
【請求項３】
前記プログラム読出し手段が、前記起動プログラムに記述されているコマンドの実行順序に従って前記起動プログラムを読出すことを特徴とする請求項２に記載のメモリコントローラ。
【請求項４】
起動時に、フラッシュメモリに記憶されている補助プログラムを読出す補助読出し手段と、
前記ホストシステム側からランダムアクセスが可能で、前記補助読出し手段によって読出された前記補助プログラムを保持するデータ保持手段を備え、
前記データ保持手段が、前記補助プログラムを保持した後に、前記プログラム読出し手段が動作可能になる構成であることを特徴とする請求項１乃至３のいずれか１項に記載のメモリコントローラ。
【請求項５】
前記補助プログラムは、該補助プログラムを読込んだ前記ホストシステムに前記起動プログラムの読出し指示を発生させるコマンドが記載されていることを特徴とする請求項４に記載のメモリコントローラ。
【請求項６】
前記転送手段が、前記補助プログラムに基づいて前記起動プログラムの転送処理を実行することを特徴とする請求項４又は５に記載のメモリコントローラ。
【請求項７】
前記第１の領域又は第２の領域には、前記ホストシステム側から与えられる論理アドレスが割当てられていないことを特徴とする請求項１乃至６のいずれか１項に記載のメモリコントローラ。
【請求項８】
前記領域指示情報が記憶されている領域には、前記ホストシステム側から与えられる論理アドレスが割当てられていないことを特徴とする請求項１乃至７のいずれか１項に記載のメモリコントローラ。
【請求項９】
前記補助プログラムが記憶されている領域には、前記ホストシステム側から与えられる論理アドレスが割当てられていないことを特徴とする請求項４乃至７のいずれか１項に記載のメモリコントローラ。
【請求項１０】
前記転送手段が、ＡＴＡインターフェースを介して前記起動プログラムを前記ホストシステム側に転送することを特徴とする請求項２乃至９のいずれか１項に記載のメモリコントローラ。
【請求項１１】
請求項１乃至１０のいずれか１項に記載のメモリコントローラとフラッシュメモリを備えることを特徴とするフラッシュメモリシステム。
【請求項１２】
消去はブロック単位で書込みと読出しはページ単位で行われるフラッシュメモリに対するアクセスをホストシステム側から与えられる指示に基いて制御するフラッシュメモリの制御方法であって、
前記フラッシュメモリに書込まれている該フラッシュメモリ内の第１の領域又は第２の領域を示す領域指示情報を読出す指示情報読出し処理と、
前記フラッシュメモリから読出された前記領域指示情報に基づいて前記フラッシュメモリ内の第１の領域又は第２の領域に起動プログラムを書込む書込み処理と、
前記起動プログラムの書込み終了後に、前記領域指示情報を変更する指示情報変更処理とを含み、
前記書込み処理では、前記領域指示情報によって指示されていない第１の領域又は第２の領域に新たな起動プログラムを書込み、
前記指示情報変更処理では、前記領域指示情報を新たな起動プログラムが書込まれた第１の領域又は第２の領域を示す情報に変更することを特徴とするフラッシュメモリの制御方法。
【請求項１３】
前記フラッシュメモリに書込まれている該フラッシュメモリ内の第1の領域又は第２の領域を示す領域指示情報を読出す指示情報読出し処理と、
前記フラッシュメモリから読出された前記領域指示情報に基づいて前記フラッシュメモリ内の第１の領域又は第２の領域に書込まれている起動プログラムを読出す読出し処理と、
前記読出し処理で読出された起動プログラムを前記ホストシステム側に転送する転送処理とを含み、
前記読出し処理では、前記領域指示情報によって指示されている第１の領域又第２の領域から前記起動プログラムを読出すことを特徴とする請求項１２に記載のフラッシュメモリの制御方法。
【請求項１４】
前記読出し処理では、前記起動プログラムに記述されているコマンドの実行順序に従って前記起動プログラムを読出すことを特徴とする請求項１３項に記載のフラッシュメモリの制御方法。
【請求項１５】
起動時に、フラッシュメモリに記憶されている補助プログラムを読出す補助読出し処理と、
前記補助読出し処理によって読出された補助プログラムを前記ホストシステム側からの要求に応じて該ホストシステム側に供給する供給処理とを含み、
前記供給処理により前記補助プログラムが前記ホストシステム側に供給された後に、前記読出し処理と前記転送処理とが開始されることを特徴とする請求項１３又は１４に記載のフラッシュメモリの制御方法。
【請求項１６】
前記補助プログラムは、該補助プログラムを読み込んだ前記ホストシステムに前記起動プログラムの読出し指示を発生させるコマンドが記載されていることを特徴とする請求項１５に記載のフラッシュメモリの制御方法。
【請求項１７】
前記転送処理が、前記補助プログラムに基づいて実行されることを特徴とする請求項１５又は１６に記載のフラッシュメモリの制御方法。
【請求項１８】
前記第１の領域又は第２の領域には、前記ホストシステム側から与えられる論理アドレスが割当てられていないことを特徴とする請求項１２乃至１７のいずれか１項に記載のフラッシュメモリの制御方法。
【請求項１９】
前記領域指示情報が記憶されている領域には、前記ホストシステム側から与えられる論理アドレスが割当てられていないことを特徴とする請求項１２乃至１８のいずれか１項に記載のフラッシュメモリの制御方法。
【請求項２０】
前記補助プログラムが記憶されている領域には、前記ホストシステム側から与えられる論理アドレスが割当てられていないことを特徴とする請求項１５乃至１９のいずれか１項に記載のフラッシュメモリの制御方法。
【請求項２１】
前記転送処理が、ＡＴＡインターフェースを介して前記起動プログラムを前記ホストシステム側に転送する処理であることを特徴とする請求項１３乃至２０のいずれか１項に記載のフラッシュメモリの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラ、そのメモリコントローラを備えるフラッシュメモリシステム、及びフラッシュメモリの制御方法に関する。
【背景技術】
【０００２】
近年、メモリーカードやシリコンディスクといったメモリシステムにて使用される半導体メモリに、フラッシュメモリが広く採用されている。フラッシュメモリは、不揮発性メモリの一種である。フラッシュメモリに格納されたデータは、電力が供給されていないときでも保持されていることが要求される。
【０００３】
ＮＡＮＤ型フラッシュメモリは、上記のメモリシステムで特に多く用いられるフラッシュメモリの一種である。ＮＡＮＤ型フラッシュメモリに含まれている複数のメモリセルのそれぞれは、他のメモリセルとは独立して、論理値“１”を示すデータが格納されている消去状態から、論理値“０”を示すデータが格納されている書込状態へと変化することができる。これとは対照的に、書込状態から消去状態へと変化するときには、各メモリセルは他のメモリセルと独立して変化することができない。このときには、ブロックと称される予め定められた数のメモリセルが、全て同時に消去状態になる。この一括消去動作は、一般的に、“ブロック消去”と称されている。
【０００４】
ＮＡＮＤ型フラッシュメモリに対する書込処理若しくは読出処理は、ページと称される予め定められた数のメモリセル単位で処理が行なわれる。消去処理の単位であるブロックは複数のページで構成されている。
【０００５】
ＮＡＮＤ型フラッシュメモリは、上記のような特徴を有するため、ＣＰＵ（Central Processing Unit）を備えたシステムでは、起動時に実行されるＢＩＯＳ（Basic Input Output System）等のプログラムを保存する場合には、通常、任意のアドレスを指定した読出しが可能なＮＯＲ型フラッシュメモリに保存していた。しかし、ＮＯＲ型フラッシュメモリは、ＮＡＮＤ型フラッシュメモリに比べて価格が高いため、価格を考慮すればＮＡＮＤ型フラッシュメモリを用いることが好ましかった。
【０００６】
この課題を解決するため、下記特許文献１では、起動時に実行されるＢＩＯＳ等のプログラムをＮＡＮＤ型フラッシュメモリに保存し、そのプログラムをＲＡＭ（Random Access Memory）にロードして実行する提案がなされている。
【０００７】
フラッシュメモリにＢＩＯＳ等のプログラムを保存した場合、そのプログラムを更新することができる。しかし、プログラムの書替え中に不測の停電等で処理が中断した場合、そのプログラムによって起動していたシステムは正常に動作することができなくなる。
【０００８】
この課題を解決するため、下記特許文献２では、更新可能領域と更新不可能領域を設け、更新可能領域に記憶されているプログラムの更新処理が正常に終了しなかった場合、更新不可能領域に記憶されているプログラムによってシステムが動作するようにしている。
【特許文献１】特表２００３−５１９８７０号公報
【特許文献２】特開２００２−２５９１５２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
特許文献２に示されたプログラムの更新処理を、ＮＡＮＤ型フラッシュメモリに適用した場合、更新不可能領域内のブロックが不良ブロック化することがあるため、更新処理が正常に終了しなかったときに、更新不可能領域に記憶されているプログラムによって動作できないこともある。
【００１０】
そこで、本発明は、ＮＡＮＤ型フラッシュメモリに好適なプログラムの更新処理を実行することができるメモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明の第１の観点に係るメモリコントローラは、
消去はブロック単位で書込みと読出しはページ単位で行われるフラッシュメモリに対するアクセスをホストシステム側から与えられる指示に基いて制御するメモリコントローラであって、
前記フラッシュメモリ内の第１の領域又は第２の領域に起動プログラムを書込むプログラム書込み手段と、
前記フラッシュメモリに前記起動プログラムを書込んだ第１の領域又は第２の領域を示す領域指示情報を書込む領域指示情報書込み手段と、
前記フラッシュメモリに書込まれている前記領域指示情報を読出す領域指示情報読出し手段とを備え、
前記プログラム書込み手段は、新たな起動プログラムを書込むときに前記領域指示情報によって指示されていない第１の領域または第２の領域に該新たな起動プログラムを書込み、
前記領域指示情報書込み手段は、前記新たな起動プログラムの書込みが正常に終了した後に前記領域指示情報を該新たな起動プログラムが書込まれた第１の領域又は第２の領域を示す情報に変更する構成であることを特徴とする。
【００１２】
このような構成を採用したことにより、有効な起動プログラムが書込まれている領域については、領域指示情報に示される。新たな起動プログラムを書込む場合には、領域指示情報に示されない側の領域が選択されて新たな起動プログラムが書込まれる。
【００１３】
尚、前記フラッシュメモリ内の第１の領域又は第２の領域から起動プログラムをページ単位で読出すプログラム読出し手段と、
前記プログラム読出し手段によって読出された起動プログラムを前記ホストシステム側に転送する転送手段とを備え、
前記プログラム読出し手段は、前記領域指示情報によって指示されている第１の領域又は第２の領域から起動プログラムを読出す構成であってもよい。
【００１４】
また、前記プログラム読出し手段が、前記起動プログラムに記述されているコマンドの実行順序に従って前記起動プログラムを読出してもよい。
【００１５】
また、起動時に、フラッシュメモリに記憶されている補助プログラムを読出す補助読出し手段と、
前記ホストシステム側からランダムアクセスが可能で、前記補助読出し手段によって読出された前記補助プログラムを保持するデータ保持手段を備え、
前記データ保持手段が、前記補助プログラムを保持した後に、前記プログラム読出し手段が動作可能になる構成であってもよい。
【００１６】
また、前記補助プログラムは、該補助プログラムを読込んだ前記ホストシステムに前記起動プログラムの読出し指示を発生させるコマンドが記載されてもよい。
【００１７】
また、前記転送手段が、前記補助プログラムに基づいて前記起動プログラムの転送処理を実行してもよい。
【００１８】
また、前記第１の領域又は第２の領域には、前記ホストシステム側から与えられる論理アドレスが割当てられていなくてもよい。
【００１９】
また、前記領域指示情報が記憶されている領域には、前記ホストシステム側から与えられる論理アドレスが割当てられていなくてもよい。
【００２０】
また、前記補助プログラムが記憶されている領域には、前記ホストシステム側から与えられる論理アドレスが割当てられていなくてもよい。
【００２１】
また、前記転送手段が、ＡＴＡインターフェースを介して前記起動プログラムを前記ホストシステム側に転送してもよい。
【００２２】
上記目的を達成するために、本発明の第２の観点に係るフラッシュメモリシステムは、本発明の第１の観点に係るメモリコントローラとフラッシュメモリを備えることを特徴とする。
【００２３】
上記目的を達成するために、本発明の第３の観点に係るフラッシュメモリの制御方法は、
消去はブロック単位で書込みと読出しはページ単位で行われるフラッシュメモリに対するアクセスをホストシステム側から与えられる指示に基いて制御するフラッシュメモリの制御方法であって、
前記フラッシュメモリに書込まれている該フラッシュメモリ内の第１の領域又は第２の領域を示す領域指示情報を読出す指示情報読出し処理と、
前記フラッシュメモリから読出された前記領域指示情報に基づいて前記フラッシュメモリ内の第１の領域又は第２の領域に起動プログラムを書込む書込み処理と、
前記起動プログラムの書込み終了後に、前記領域指示情報を変更する指示情報変更処理とを含み、
前記書込み処理では、前記領域指示情報によって指示されていない第１の領域又は第２の領域に新たな起動プログラムを書込み、
前記指示情報変更処理では、前記領域指示情報を新たな起動プログラムが書込まれた第１の領域又は第２の領域を示す情報に変更することを特徴とする。
【００２４】
尚、前記フラッシュメモリに書込まれている該フラッシュメモリ内の第1の領域又は第２の領域を示す領域指示情報を読出す指示情報読出し処理と、
前記フラッシュメモリから読出された前記領域指示情報に基づいて前記フラッシュメモリ内の第１の領域又は第２の領域に書込まれている起動プログラムを読出す読出し処理と、
前記読出し処理で読出された起動プログラムを前記ホストシステム側に転送する転送処理とを含み、
前記読出し処理では、前記領域指示情報によって指示されている第１の領域又第２の領域から前記起動プログラムを読出してもよい。
【００２５】
また、前記読出し処理では、前記起動プログラムに記述されているコマンドの実行順序に従って前記起動プログラムを読出してもよい。
【００２６】
また、起動時に、フラッシュメモリに記憶されている補助プログラムを読出す補助読出し処理と、
前記補助読出し処理によって読出された補助プログラムを前記ホストシステム側からの要求に応じて該ホストシステム側に供給する供給処理とを含み、
前記供給処理により前記補助プログラムが前記ホストシステム側に供給された後に、前記読出し処理と前記転送処理とが開始されてもよい。
【００２７】
また、前記補助プログラムは、該補助プログラムを読み込んだ前記ホストシステムに前記起動プログラムの読出し指示を発生させるコマンドが記載されていてもよい。
【００２８】
また、前記転送処理が、前記補助プログラムに基づいて実行されてもよい。
【００２９】
また、前記第１の領域又は第２の領域には、前記ホストシステム側から与えられる論理アドレスが割当てられていなくてもよい。
【００３０】
また、前記領域指示情報が記憶されている領域には、前記ホストシステム側から与えられる論理アドレスが割当てられていなくてもよい。
【００３１】
また、前記補助プログラムが記憶されている領域には、前記ホストシステム側から与えられる論理アドレスが割当てられていなくてもよい。
【００３２】
また、前記転送処理が、ＡＴＡインターフェースを介して前記起動プログラムを前記ホストシステム側に転送する処理であってもよい。
【発明の効果】
【００３３】
本発明によれば、フラッシュメモリ内の第１の領域と第２の領域に対して新たな起動プログラムが交互に書込まれるので、プログラムの更新処理が正常に終了しなかったときには、その更新処理を開始する直前に使用されていたプログラムによってシステムを起動させることができる。従って、本発明に係るフラッシュメモリシステムを組込んだシステムで、プログラムの更新処理が正常に終了しなかったときに、システムが正常に動作できなくなる危険性を、減じることができる。
【発明を実施するための最良の形態】
【００３４】
本発明の実施の形態に係るフラッシュメモリシステムの詳細を説明する前に、本発明のフラッシュメモリシステムの特徴を説明する。
【００３５】
図１（ａ），（ｂ）は、起動時の特徴を示す説明図である。
図２（ａ），（ｂ）は、起動プログラムの更新の処理の特徴を示す説明図である。
【００３６】
本発明に係るフラッシュメモリシステムは、ＮＡＮＤ型のフラッシュメモリ１とメモリコントローラ２とを備え、ＢＩＯＳ（Basic Input Output System）等の起動時に使用されるプログラムをフラッシュメモリ１に記憶させる場合に好適なプログラムの更新処理を提供する。
【００３７】
本発明に係るフラッシュメモリシステムが組み込まれるホストシステムは、ＲＡＭ（Random Access Memory）３及びＣＰＵ（Central Processing Unit）４等で構成されている。
【００３８】
ＢＩＯＳ等の起動時に使用されるプログラムは、起動時にフラッシュメモリ１からランダムアクセスが可能なＲＡＭ３に転送される。ＣＰＵ４は、ＲＡＭ３に保持されているプログラムを読込み、そのプログラムに基づいた処理を実行する。尚、起動時にプログラムをフラッシュメモリ１からＲＡＭ３に転送する処理については特に限定されないが、転送処理の例については後述する。
【００３９】
本発明に係るフラッシュメモリシステムでは、図１に示したようにフラッシュメモリ１上に、指示情報領域１ａ、第１の領域１ｂ及び第２の領域１ｃを設けている。第１の領域１ｂ及び第２の領域１ｃは、ＢＩＯＳ等の起動時に使用されるプログラムを記憶するために割当てられた領域であり、指示情報領域１ａは、第１の領域１ｂと第２の領域１ｃのいずれかの領域を指示する情報（以下、領域指示情報と言う）を記憶するために割当てられた領域である。
【００４０】
起動時には、領域指示情報に基づいて第１の領域１ｂ又は第２の領域１ｃに記憶されているプログラムがＲＡＭ３に転送される。例えば、領域指示情報が第１の領域１ｃを指示する情報の場合には、第１の領域１ｂに記憶されているプログラムがＲＡＭ３に転送される（図１（ａ））。領域指示情報が第２の領域１ｂを指示する情報の場合には、第２の領域１ｃに記憶されているプログラムがＲＡＭ３に転送される（図１（ｂ））。
【００４１】
尚、ＲＡＭ３に転送されるプログラムは、メモリコントローラ２内のＦＩＦＯ（First In First Out）バッファに読出された後、ＲＡＭ３に転送される。
【００４２】
第１の領域１ｂ又は第２の領域１ｃに記憶されているプログラムを読出すときは、そのプログラムに記述されているコマンドの実行順序に従ってプログラムを読出す。例えば、プログラムが記述されているブロックの冗長領域に、コマンドの実行順序に従って付けた連番（以下、実行順序連番）を書込み、この実行順序連番を参照してプログラムを実行順序に従って読出す。尚、ブロック内の各ページについてはページ順にプログラムを記述し、ページ順にプログラムを読出す。
【００４３】
プログラムを更新するときは、領域指示情報によって指示されていない方の領域に新たなプログラムを書込む。つまり、領域指示情報が第１の領域１ｂを指示している場合には、第２の領域１ｃに新たなプログラムを書込み、領域指示情報が第２の領域１ｃを指示している場合には、第１の領域１ｂに新たなプログラムを書込む。
【００４４】
例えば図２（ａ）に示したように、領域指示情報が第１の領域１ｂを指示している場合には、ホストシステム側から与えられる新たなプログラムは第２の領域１ｃに書込む。この際、新たなプログラムを書込んだブロックの冗長領域には実行順序連番を書込む。第２の領域１ｃに対する書込み処理が終了した後に、図２（ｂ）に示したように、指示情報領域１ａに書込まれている領域指示情報を、第１の領域１ｂを指示する情報から第２の領域１ｃを指示する情報に書替える。
尚、領域指示情報の書替えは、ベリファイ（書込んだプログラムを読出し、書込みが正しく行なわれているかチェックする処理）を実行した後に行なうことが好ましい。
【００４５】
領域指示情報を設定する場合には、例えば、指示情報領域１ａに含まれる特定のブロックに領域指示情報を書込み、そのブロックの冗長領域に領域指示情報が書込まれていることを示す情報を書込む。領域指示情報を読出す場合には、冗長領域に書込まれている情報に基づいて領域指示情報が書込まれているブロックを検索して、見つけ出されたブロックから領域指示情報を読出す。
【００４６】
このような特徴を有するフラッシュメモリシステムでは、第１の領域１ｂと第２の領域１ｃに対して新たな起動プログラムが交互に書込まれるので、プログラムの更新処理が正常に終了しなかったときには、その更新処理を開始する直前に使用されていたプログラムによってシステムを起動させることができる。従って、プログラムの更新処理が正常に終了しなかったときに、システムが正常に動作できなくなる危険性を減じることができる。
【００４７】
以上のような特徴を有するフラッシュメモリシステムの実施形態を説明する。
図３は、本発明の実施形態に係るフラッシュメモリシステム１０を示すブロック図である。
【００４８】
図３に示したように、フラッシュメモリシステム１０は、フラッシュメモリ１１と、それを制御するメモリコントローラ２０とで構成されている。このフラッシュメモリシステム１０は、通常、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとするホストシステムである各種情報処理装置に内蔵される。フラッシュメモリ１１は、図１及び図２のフラッシュメモリ１に対応し、メモリコントローラ２０がメモリコントローラ２に対応する。
以下に、フラッシュメモリ１１及びメモリコントローラ２０の詳細と、フラッシュメモリシステム１０の動作とを説明する。
【００４９】
[フラッシュメモリ１１の説明]
このフラッシュメモリシステム１０において、データが記憶されるフラッシュメモリ１１は、ＮＡＮＤ型フラッシュメモリで構成されている。ＮＡＮＤ型フラッシュメモリは、ストレージデバイスへの用途として(ハードディスクの代わりになるものとして)開発された不揮発性メモリである。このＮＡＮＤ型フラッシュメモリは、ランダムアクセスを行なうことができず、書込みと読出しはページ単位で、消去はブロック単位で行なわれる。又、データの上書きができないので、データを書込むときは、消去されている領域にデータの書込みが行なわれる。
【００５０】
ＮＡＮＤ型フラッシュメモリは、このような特徴を有するため、通常、データの書替えを行なう場合には、ブロック消去されている消去済ブロックに新たなデータ（書替え後のデータ）を書込み、古いデータ（書替え前のデータ）が書込まれていたブロックを消去するという処理を行なっている。
【００５１】
このようなデータの書替を行なった場合、書替後のデータは、書替前と異なるブロックに書込まれるため、ホストシステム側から与えられる論理アドレスと、フラッシュメモリ１１内での物理アドレスとの対応関係は、データを書替える毎に動的に変化する。従って、フラッシュメモリ１１にアクセスするときには、通常、論理アドレスと物理アドレスとの対応関係を示したアドレス変換テーブルが作成され、このアドレス変換テーブルを用いて、フラッシュメモリ１１に対するアクセスが行なわれる。
【００５２】
図４は、ブロックとページの関係を示す説明図である。
上記ブロックとページの構成は、フラッシュメモリ１１の仕様によって異なるが、一般的なフラッシュメモリでは、図４（ａ）に示したように、１ブロックが３２ページ（Ｐ０〜Ｐ３１）で構成され、各ページが５１２バイトのユーザー領域と１６バイトの冗長領域で構成されている。又、記憶容量の増加に伴い、図４（ｂ）に示したように、１ブロックが６４ページ（Ｐ０〜Ｐ６３）で構成され、各ページが２０４８バイトのユーザー領域と６４バイトの冗長領域で構成されているものも提供されている。
【００５３】
ここで、ユーザー領域は、主に、ホストシステムから供給されるデ―タが記憶される領域であり、冗長領域は、誤り訂正符号、対応論理アドレス情報及びブロックステータス等の付加データが記憶される領域である。誤り訂正符号は、ユーザー領域に記憶されているデータに含まれる誤りを検出、訂正するための付加データであり、後述するＥＣＣブロックによって生成される。
【００５４】
対応論理アドレス情報は、物理ブロックにデータが記憶されている場合に書込まれ、その物理ブロックに記憶されているデータの論理アドレスに関する情報を示している。尚、物理ブロックにデータが記憶されていない場合は、対応論理アドレス情報が書込まれないので、対応論理アドレス情報が書込まれているか否かで、そのブロックが消去済ブロックであるか否かを判断することができる。つまり、対応論理ブロックアドレスが書込まれていない場合は、消去済ブロックであると判断される。
【００５５】
ブロックステータスは、その物理ブロックが不良ブロック（正常にデータの書込み等を行なうことができない物理ブロック）であるか否かを示すフラグであり、その物理ブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグが設定される。
【００５６】
次に、フラッシュメモリ１１の回路構成について説明する。
一般的なＮＡＮＤ型フラッシュメモリは、書込みデータ若しくは読出しデータを保持するためのレジスタと、データを記憶するメモリセルアレイによって構成されている。メモリセルアレイは、複数のメモリセルが直列に接続されたメモリセル群を複数備えており、ワード線によって、メモリセル群の特定のメモリセルが選択される。このワード線によって選択されたメモリセルとレジスタの間で、データの複写（レジスタからメモリセルへの複写、若しくはメモリセルからレジスタへの複写）が行なわれる。
【００５７】
メモリセルアレイを構成するメモリセルは、２つのゲートを備えたＭＯＳトランジスタで構成されている。ここで、上側のゲートはコントロールゲートと、下側のゲートはフローティングゲートと呼ばれており、フローティングゲートに電荷（電子）を注入したり、フローティングゲートから電荷（電子）を排出したりすることによって、データの書込みや消去を行っている。
【００５８】
フローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧を印加して電子を注入し、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧を印加して電子を排出する。フローティングゲートに電子が注入されている状態（書込状態）が、論理値"０"のデータに対応し、フローティングゲートから電子が排出されている状態（消去状態）が、論理値"１"のデータに対応する。
【００５９】
［メモリコントローラ２０の説明］
メモリコントローラ２０は、ホストインターフェースブロック２１と、マイクロプロセッサ２２と、フラッシュメモリインターフェースブロック２３と、ＥＣＣ（エラー・コレクション・コード）ブロック２４と、バッファ２５と、ＦＩＦＯ（First In First Out）バッファ２６とから構成される。これら機能ブロックによって構成されるメモリコントローラ２０は、一つの半導体チップ上に集積されている。以下に、各機能ブロックの機能を説明する。
【００６０】
マイクロプロセッサ２２は、メモリコントローラ２０を構成する各機能ブロック全体の、動作を制御する機能ブロックである。又、論理アドレス（フラッシュメモリシステム１０に対して与えられるアドレス）と物理アドレス（フラッシュメモリ１１内のアドレス）の対応関係を示す変換テーブルは、マイクロプロセッサ２２の制御の下、ＳＲＡＭ（Static Random Access Memory）で構成された作業領域（図示せず）に作成される。
【００６１】
ホストインターフェースブロック２１は、コンパニオンチップ（Companion Chip）３０とバッファ２５、又はコンパニオンチップ３０とＦＩＦＯバッファ２６との間で行われるデータの授受を制御する機能ブロックである。
ここで、コンパニオンチップ３０は、ＳＲＡＭ用インターフェース３１とＡＴＡ（AT Attachment）インターフェース３２を提供するチップである。
【００６２】
バッファ２５は、コンパニオンチップ３０によって提供されるＳＲＡＭ用インターフェース３１を介して、ホストシステム内の回路と接続され、ＦＩＦＯバッファ２６は、コンパニオンチップ３０によって提供されるＡＴＡインターフェース３２を介して、ホストシステム内の回路と接続される。
【００６３】
ホストインターフェースブロック２１は、ＳＲＡＭ用インターフェース３１を介して供給される制御信号やアドレス信号に基づいて、バッファ２５の動作を制御する。バッファ２５は、ＳＲＡＭで構成されており、ＳＲＡＭ用インターフェース３１側からのランダムアクセス（アドレスを指定した読み書き）が可能な構成になっている。
【００６４】
更に、ホストインターフェースブロック２１は、ＡＴＡインターフェース３２から供給される論理アドレス、セクタ数及び外部コマンド等を保持するレジスタや、エラーが発生した場合にセットされるエラーレジスタ（図示せず）を有している。ホストインターフェースブロック２１は、ＡＴＡインターフェース３２から供給される論理アドレス、セクタ数及び外部コマンド等の情報や制御信号に基づいて、ＦＩＦＯバッファ２６の動作を制御する。ＦＩＦＯバッファ２６は、ホストインターフェースブロック２１の制御の下、ＡＴＡインターフェース３２側に対してページ単位でデータを送受信する。
【００６５】
フラッシュメモリインターフェースブロック２３は、フラッシュメモリ１１に対するアクセスを制御する機能ブロックであり、フラッシュメモリ１１とバッファ２５間、及びフラッシュメモリ１１とＦＩＦＯバッファ２６間のデータの送受信は、フラッシュメモリインターフェースブロック２３の制御の下に行われる。
【００６６】
フラッシュメモリインターフェースブロック２３は、複数のレジスタ（図示せず）を備え、この複数のレジスタに内部コマンドを実行する際に必要な情報が設定される。この複数のレジスタに、内部コマンドを実行する際に必要な情報（アドレス情報、アクセスするページ数等）が設定され、その情報に基づいて処理が実行される。ここで、「内部コマンド」とは、メモリコントローラ２０からフラッシュメモリ１１に与えられるコマンドである。一方、ＡＴＡインターフェース３２側から与えられるコマンドは「外部コマンド」と言う。
【００６７】
ＥＣＣブロック２４は、フラッシュメモリ１１に書込まれるデータに付加されるエラーコレクションコードを生成するブロックである。このエラーコレクションコードは、通常、フラッシュメモリの冗長領域に書込まれる。フラッシュメモリ１１からデータを読出すときは、データと共に読出されるエラーコレクションコードに基づいて、読出したデータに含まれる誤りの検出と訂正が、ＥＣＣブロック２４によって行われる。
【００６８】
［フラッシュメモリシステム１０の動作説明］
図５は、フラッシュメモリシステム１０の動作を説明するための図であり、フラッシュメモリシステム１０を組み込んだホストシステム４０の要部の構成を示している。
【００６９】
このホストシステム４０は、種々の情報を処理する情報処理装置であり、プログラム等によって与えられるコマンドを実行するＣＰＵ４１を中心に回路が構成されている。図５には、フラッシュメモリシステム１０の動作を説明するために必要な、ＣＰＵ４１、コンパニオンチップ３０及びＤＲＡＭ（Dynamic Random Access Memory）４２を図示している。ＣＰＵ４１は、図１（ａ）及び図１（ｂ）のＣＰＵ４に相当し、ＤＲＡＭ４２は、図１（ａ）及び図１（ｂ）のＲＡＭ３に相当する。図５においては、フラッシュメモリシステム１０についても、バッファ２５、ＦＩＦＯバッファ２６、及びフラッシュメモリ１１だけを簡略化して図示している。
【００７０】
ＣＰＵ４１とコンパニオンチップ３０とは、バス４３を介して接続されている。ＤＲＡＭ４２は、コンパニオンチップ３０のＤＲＡＭ用インターフェース４４に接続されている。ＣＰＵ４１は、コンパニオンチップ３０を介してフラッシュメモリシステム１０やＤＲＡＭ４２にアクセスする。
【００７１】
図６は、フラッシュメモリ１１に記憶されている情報を示す説明図である。
フラッシュメモリ１１の記憶領域は、属性情報等のシステム情報が記憶されているＳＹＳ領域(ＳＹＳ)１１ａと、起動プログラムであるＢＩＯＳをＤＲＡＭ４２にロードするためのプログラムであるイニシャルバイオスローダーが記憶されているＩＢＬ領域(ＩＢＬ)１１ｂと、ＢＩＯＳが記憶されているＢＩＯＳ領域(ＢＩＯＳ)１１ｃと、ＯＳ（Operating System）等のプログラムや各種データが記憶されるデータ領域(ＤＡＴＡ)１１ｄに区分されている。
【００７２】
ホストシステム４０の起動時に、イニシャルバイオスローダーは、バッファ２５にロードされ、ＢＩＯＳは、ＦＩＦＯバッファ２６を介してＤＲＡＭ４２にロードされる。
【００７３】
ここで、ＢＩＯＳが記憶されているＢＩＯＳ領域(ＢＩＯＳ)１１ｃは、図１に示したように指示情報領域１ａと第１の領域１ｂと第2の領域１ｃとで構成されている。ＦＩＦＯバッファ２６を介してＤＲＡＭ４２にロードされるＢＩＯＳは、上述のように指示情報領域１ａに記述されている領域指示情報に基づいて第１の領域１ｂ又は第２の領域１ｃから読出される。
【００７４】
つぎに、ＢＩＯＳ領域(ＢＩＯＳ)１１ｃから領域指示情報に基づいて第１の領域又は第２の領域からＢＩＯＳを読出す起動時の処理について図７を参照して説明する。
【００７５】
図７は、起動時の処理を示すフローチャートである。
まず、ホストシステム４０が起動するときに、メモリコントローラ２０がリセットされる（ステップ１）。メモリコントローラ２０がリセットされると、マイクロプロセッサ２２がメモリコントローラ２０内の初期化等の第１の起動処理を開始する。この第１の起動処理では、更に、フラッシュメモリ１１に記憶されているイニシャルバイオスローダー（ＩＢＬ）が、バッファ２５にロードされる（ステップ２）。
【００７６】
イニシャルバイオスローダーが、全てバッファ２５にロードされると、ＣＰＵ４１に対するリセットが解除される（ステップ３）。つまり、ＣＰＵ４１は、ホストシステム４０の起動開始からイニシャルバイオスローダーのロードが終了するまで、リセット状態になっている。
【００７７】
ＣＰＵ４１に対するリセットが解除されると、ＣＰＵ４１はホストシステム４０内の初期化等の第２の起動処理を開始する。この第２の起動処理では、ＣＰＵ４１がバッファ２５に対するアクセスを開始し、イニシャルバイオスローダーに記述されているコマンドを実行する。このコマンドでは、ＣＰＵ４１が、ＤＲＡＭ４２とＦＩＦＯバッファ２６にアクセスすることができるようにするために、ＤＲＡＭ用インターフェース４４とＡＴＡインターフェース３２の初期化が行われる（ステップ４）。
【００７８】
続いて、ＣＰＵ４１は、イニシャルバイオスローダーに記述されているコマンドに従って、フラッシュメモリ１１内のＢＩＯＳを読出すためのコマンド（以下、このＢＩＯＳを読出すためのコマンドを、バイオスロードコマンドと言う）を、ホストインターフェースブロック２１内のレジスタに設定する。つまり、バイオスロードコマンドが、ＡＴＡインターフェース３２を介してフラッシュメモリシステム１０（フラッシュメモリシステム１０内のメモリコントローラ２０）に与えられる。
【００７９】
このバイオスロードコマンドが与えられると、マイクロプロセッサ２２は、フラッシュメモリインターフェースブロック２３内のレジスタに、内部読出しコマンド、アドレス等を設定する。この際、マイクロプロセッサ２２は、ＢＩＯＳ領域(ＢＩＯＳ)１１ｃ内の指示情報領域１ａに記述されている領域指示情報に基づいて、第１の領域１ｂ又は第２の領域１ｃに記憶されているＢＩＯＳのアドレスをフラッシュメモリインターフェースブロック２３内のレジスタに設定する。
【００８０】
この設定に従って、フラッシュメモリ１１に対する読出し処理が開始されると、フラッシュメモリ１１内のＢＩＯＳが、その実行順序に従ってＦＩＦＯバッファ２６に読出される。つまり、マイクロプロセッサ２２は、フラッシュメモリ１１内のＢＩＯＳが、コマンドを実行する際の順序で読出されるように、読出し先のアドレス（フラッシュメモリ１１内の物理アドレス）を設定する。ＦＩＦＯバッファ２６に読出されたＢＩＯＳは、ＣＰＵ４１の制御の下、ＦＩＦＯバッファ２６からＤＲＡＭ４２に転送される。つまり、ＦＩＦＯバッファ２６からＡＴＡインターフェース３２側に出力されたデータが、ＤＲＡＭ４２に書込まれる（ステップ５）。
【００８１】
尚、上記のようにコマンドを実行する際の順序でＢＩＯＳを読出すため、ＢＩＯＳの読出し処理を開始する前に、領域指示情報を読出すと共に、領域指示情報で指示されている領域（第１の領域１ｂ又は第2の領域１ｃ）の冗長領域に書込まれている実行順序連番を読出し、読出した実行順序連番に従って読出し先のアドレス（フラッシュメモリ１１内の物理アドレス）を設定する。
【００８２】
又、読出す順序を記述したロード管理情報を、フラッシュメモリ１１内に書込んでおき、このロード管理情報に基づいて、読出し先のアドレス（フラッシュメモリ１１内の物理アドレス）を設定してもよい。読出す順序を物理ブロック単位で管理する場合（各物理ブロックについては、先頭ページから順番にプログラムが書込まれている場合）、ロード管理情報には、読出す物理ブロックの物理アドレスを、読出す順番で記述すればよい。
【００８３】
又、ＢＩＯＳ領域１１ｃ内の良品の物理ブロック（不良ブロックを除いた物理ブロック）に、物理アドレスの順番でＢＩＯＳを書込み、物理アドレスの順番とコマンドを実行する順序が一致するようにすれば、上記ロード管理情報を用いることなくコマンドを実行する順序でＢＩＯＳを読出すことができる。この場合、物理アドレスの順番でＢＩＯＳを読出せば、コマンドを実行する順序でＢＩＯＳが読出される。この際、不良ブロックの物理アドレスとＢＩＯＳのプログラム容量（例えば、ＢＩＯＳが書込まれている物理ブロックのブロック数等）をフラッシュメモリ１１内に書込んでおくことが好ましい。又、ＢＩＯＳが書込まれている先頭の物理ブロックに先頭であることを示す情報を書込み、最後の物理ブロックに最後であることを示す情報を書込んでもよい。
【００８４】
ＢＩＯＳが記憶されているＢＩＯＳ領域１１ｃは、ＡＴＡインターフェース３２を介してフラッシュメモリシステム１０（フラッシュメモリシステム１０内のメモリコントローラ２０）に与えられる読出しコマンド及び書込みコマンドでは、アクセスできないようにしておくことが好ましい。
【００８５】
例えば、上記のようなバイオスロードコマンドを設定し、バイオスロードコマンド以外のコマンドでは、ＢＩＯＳが記憶されているＢＩＯＳ領域１１ｃにアクセスできないように設定する。つまり、読出しコマンド及び書込みコマンドと共に与えられる論理アドレスが、ＢＩＯＳが記憶されているＢＩＯＳ領域１１ｃに割当てられないように、論理アドレスと物理アドレスの対応関係を設定することが望ましい。
【００８６】
フラッシュメモリ１１内に記憶されているＢＩＯＳが、全てＤＲＡＭ４２にロードされると、ジャンプコマンドが実行される（ステップ６）。ジャンプコマンドのジャンプ先は、ＤＲＡＭ４２にロードされているＢＩＯＳの先頭アドレスに対応する。尚、ジャンプコマンドにより、イニシャルバイオスローダーに記述されているコマンドの処理は終了する。
【００８７】
ジャンプコマンドの実行後、ＣＰＵ４１は、ＤＲＡＭ４２にロードされているＢＩＯＳの先頭アドレスから順番にコマンドの処理を続行する。ＢＩＯＳに記述されているコマンドを実行することにより、ホストシステム４０を構成する周辺デバイスの診断や初期化が行われる（ステップ７）。つまり、イニシャルバイオスローダーでは、フラッシュメモリ１１内に記憶されているＢＩＯＳをＤＲＡＭ４２にロードするために必要な初期化だけが行われ、イニシャルバイオスローダーで初期化されていなかった周辺デバイスは、ＢＩＯＳに記述されているコマンドの実行により、初期化される。
【００８８】
周辺デバイスの初期化が終了すると、イニシャルプログラムローダー（Initial Program Loader）が起動し、マスターブートレコード（Master Boot Record：ＭＢＲ）に記憶されているパーティション情報やプログラムが読出される（ステップ８）。
【００８９】
ここで、マスターブートレコードがフラッシュメモリ１１のデータ領域１１ｄ内のページに割当てられている場合、そのページ書込まれているパーティション情報やプログラムは、ＦＩＦＯバッファ２６を介してＤＲＡＭ４２に読出される。続いて、パーティション情報に記述されている情報に基づいて起動するＯＳに対応するブートセクタ（Boot Sector）が、ＤＲＡＭ４２に読出される。ブートセクタに記述されているプログラムに基づいて、ＯＳの起動が開始される（ステップ９）。
【００９０】
ブートセクタがフラッシュメモリ１１のデータ領域１１ｄ内のページに割当てられている場合、そのページ書込まれているプログラムは、ＦＩＦＯバッファ２６を介してＤＲＡＭ４２に読出される。
【００９１】
上記処理で、マイクロプロセッサ２２は、ＳＲＡＭ用インターフェース３１を介してバッファ２５にアクセスする場合と、ＡＴＡインターフェース３２を介してＦＩＦＯバッファ２６にアクセスする場合とがある。従って、メモリコントローラ２０又はメモリコントローラ２０を含むフラッシュメモリシステム１０は、バッファ２５を活性化状態にする第１のチップイネーブル信号とＦＩＦＯバッファ２６を活性化状態にする第２のチップイネーブル信号を受け取るための入力端子（制御信号の入力端子）とを、備えていることが好ましい。
【００９２】
第１のチップイネーブル信号と第２のチップイネーブル信号受け取るための入力端子を設けることにより、フラッシュメモリシステム１０は、ＣＰＵ４１から、ＳＲＡＭとＩＯデバイス（例えば、ＡＴＡインターフェース３２に接続されたハードディスクのようなデバイス）として認識される。
【００９３】
起動時にＣＰＵ４１がＮＯＲ型フラッシュメモリに記憶されているＢＩＯＳを読出す構成のホストシステムで、ＮＯＲ型フラッシュメモリの代わりに上記フラッシュメモリシステム１０を組み込む場合には、ＮＯＲ型フラッシュメモリを活性化状態にするためのチップイネーブル信号を、上記第１のチップイネーブル信号に割当てることにより、上記フラッシュメモリシステム１０への置き換えを容易に実現することができる。
【００９４】
上記ＯＳの起動が終了した後、ホストシステム４０に組み込まれたフラッシュメモリシステム１０は、ＡＴＡインターフェース３２に接続された記憶デバイスとして使用される。ＡＴＡインターフェース３２に接続された記憶デバイスとして使用されるときには、ホストインターフェースブロック２１内のレジスタに論理アドレス、セクタ数、及びコマンド等を書込むことにより、フラッシュメモリ１１のデータ領域１１ｄに対して、データの書込みや読出しを行うことができる。このデータの書込みや読出しでは、ＡＴＡインターフェース３２に接続された一般的な記憶デバイスと同様に、ＬＢＡ（Logical Block Address）等で論理アドレスが指定される。
【００９５】
論理アドレスを物理アドレスに割当てる場合、例えば、データ領域１１ｄ内の複数の物理ブロックでゾーンを形成し、ゾーン毎に予め設定された論理アドレスの領域を割当てる。ゾーン毎に論理アドレスの領域を割当てることにより、論理アドレスを物理アドレスの対応関係を示す変換テーブルを、ゾーン毎に作成することができる。
【００９６】
図８は、ゾーンの説明図である。
図８に示した例では、１０２４個の物理ブロックで１つのゾーンが形成され、このゾーンに対して１０００ブロック分（物理ブロック１０００個分）の論理アドレスの領域が割当てられている。論理アドレス空間は、セクタ単位で付けた連番であるＬＢＡで示されている。
【００９７】
１セクタの容量がフラッシュメモリ１１の１ページの容量と等しく、各物理ブロックが３２個のページで構成されている場合、ゾーン内の各物理ブロックは、論理アドレス空間の３２セクタ分の領域に割当てられる。
従って、論理アドレス空間の３２セクタ分の領域を１個の論理ブロックとすれば、１個の物理ブロックに対して１個の論理ブロックが割当てられる。
【００９８】
尚、論理ブロック内の各セクタと物理ブロック内の各ページの対応関係については、アドレスの管理が煩雑になることを避けるために、それぞれ先頭から順番に論理ブロック内のセクタが物理ブロック内のページに割当てられる。
【００９９】
１つのゾーンに割当てられる３２００セクタ分の領域（ＬＢＡ０〜ＬＢＡ３１９９９）を、３２セクタ毎に区切った論理ブロックに、連番（ＬＢＮ０〜ＬＢＮ９９９）を付け（以下、論理ブロックに付けた連番を論理ブロック連番という）、ゾーンを構成する１０２４個の物理ブロックに連番（＃０〜＃１０２３）を付けた場合（以下、物理ブロックに付けた連番を物理ブロック連番という）、論理ブロック連番と物理ブロック連番の対応関係を管理することにより、論理アドレスと物理アドレスの対応関係を管理することができる。
【０１００】
図８に示した例では、ＬＢＡ０〜ＬＢＡ３１に対応する論理ブロック連番ＬＢＮ０の論理ブロックが、物理ブロック連番＃３の物理ブロックに割当てられ、ＬＢＡ３２〜ＬＢＡ６３に対応する論理ブロック連番ＬＢＮ１の論理ブロックが、物理ブロック連番＃１の物理ブロックに割当てられている。ＬＢＡ６４〜ＬＢＡ９５に対応する論理ブロック連番ＬＢＮ２の論理ブロックが、物理ブロック連番＃５の物理ブロックに割当てられ、ＬＢＡ９６〜ＬＢＡ１２７に対応する論理ブロック連番ＬＢＮ３の論理ブロックが、物理ブロック連番＃７の物理ブロックに割当てられている。
【０１０１】
フラッシュメモリ１１にアクセスするときは、論理ブロックと物理ブロックの対応関係を示した変換テーブルを作成し、この変換テーブルを用いて、アクセスするページのアドレスを求める。変換テーブルは、各物理ブロックの冗長領域に書込まれている論理ブロックに関する情報（その物理ブロックに書込まれているユーザーデータに対応する論理ブロックを示す情報）に基づいて作成される。
【０１０２】
例えば、物理ブロックにユーザーデータを書込んだときに、そのユーザーデータに対応する論理ブロックの論理ブロック連番を、その物理ブロックの冗長領域に書込めば、この論理ブロック連番を順次読出すことにより、変換テーブルを作成することができる。
【０１０３】
この変換テーブルは、１つゾーンに割当てられている論理アドレス空間の論理ブロック連番と、これ対応する物理ブロックの物理ブロック連番との対応関係を示している。従って、ホストシステムから与えられるＬＢＡが属する論理ブロックの論理ブロック連番を変換テーブル上で検索することにより、それに対応する物理ブロックの物理ブロック連番を求めることができる。
【図面の簡単な説明】
【０１０４】
【図１】起動時の特徴を示す説明図である。
【図２】起動プログラムの更新の処理の特徴を示す説明図である。
【図３】本発明の実施形態に係るフラッシュメモリシステムを示すブロック図である。
【図４】ブロックとページの関係を示す説明図である
【図５】フラッシュメモリシステムの動作を説明するための図である。
【図６】フラッシュメモリに記憶されている情報を示す説明図である。
【図７】起動時の処理を示すフローチャートである。
【図８】ゾーンの説明図である。
【符号の説明】
【０１０５】
１              フラッシュメモリ
１ａ            指示情報領域
１ｂ            第１の領域
１ｃ            第２の領域
２              メモリコントローラ
３              ＲＡＭ
４              ＣＰＵ
１０            フラッシュメモリシステム
１１            フラッシュメモリ
２０            メモリコントローラ
２１            ホストインターフェースブロック
２２            マイクロプロセッサ
２３            フラッシュメモリインターフェースブロック
２４            ＥＣＣブロック
２５            バッファ
２６            ＦＩＦＯバッファ
３０            コンパニオンチップ
３１            ＳＲＡＭ用インターフェース
３２            ＡＴＡインターフェース
４０            ホストシステム
４１            ＣＰＵ
４２            ＤＲＡＭ
【図１】
2006243780.tif 000003
【図２】
2006243780.tif 000004
【図３】
2006243780.tif 000005
【図４】
2006243780.tif 000006
【図５】
2006243780.tif 000007
【図６】
2006243780.tif 000008
【図７】
2006243780.tif 000009
【図８】
2006243780.tif 000010