(57)【特許請求の範囲】
【請求項１】
複数のブロックから構成され、記憶データを前記ブロック単位で一括して消去可能であり、ファイルアロケーションテーブルを自己の記憶領域内に格納しており、当該記憶領域をオペレーティングシステムによりパーティション毎に管理可能であるブロック消去型記憶媒体であって、
前記ブロック消去型記憶媒体は、整数個の前記ブロックとデータの記憶領域の単位であるクラスタとのサイズ及び位置を一致させるための情報であって、前記ブロックのサイズを示す情報に基づいて生成された情報であるフォーマット情報を記憶したフォーマット情報記憶領域を備え、
前記フォーマット情報を記憶した前記ブロックを含む特定ブロック以外のブロックの記憶データは、当該フォーマット情報を書き込むブロックの記憶データが物理的に消去されないような態様で、物理的に消去されている、
ことを特徴とするブロック消去型記憶媒体。
【請求項２】
前記フォーマット情報は、前記クラスタのサイズを前記ブロックのサイズに一致させるための情報と、前記各クラスタの開始位置と終了位置を各前記ブロックの開始位置と終了位置に一致させるための位置調整用の領域と、から構成されている、
ことを特徴とする請求項１に記載のブロック消去型記憶媒体。
【請求項３】
複数のブロックから構成され、記憶データを前記ブロック単位で一括して消去可能なブロック消去型記憶媒体に接続可能に構成された接続部と、
整数個の前記ブロックとクラスタとのサイズ及び位置を一致させるフォーマット情報を前記接続部を介して前記ブロック消去型記憶媒体に書き込むことにより、前記ブロック消去型記憶媒体をフォーマットするフォーマット手段とを備え、
前記フォーマット手段は、前記フォーマット情報を書き込むブロックの記憶データを物理的に消去することなく、前記フォーマット情報を書き込むブロック以外のブロックの記憶データを物理的に消去する手段を含む、
ことを特徴とするデータ処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ブロック消去型記憶媒体を用いたデータ処理システム、ブロック消去型記憶媒体、及びブロック消去型記憶媒体のフォーマット、データの消去及びデータの書き込みを行うためのプログラムを記憶したコンピュータ読み取り可能なプログラム記録媒体に関する。
【０００２】
【従来の技術】
近年、可搬性の不揮発性の記憶媒体として、フロッピーディスクに代わってフラッシュメモリが、特に携帯情報端末用の記憶媒体として用いられるようになっている。ここで、フラッシュメモリとは、複数のブロックで構成され、内部に記憶されたデータをブロック単位でのみ電気的に消去可能な不揮発性のブロック消去型記憶媒体のことをいう。
【０００３】
フラッシュメモリをＭＳ−ＤＯＳ（マイクロソフト社商標）などのディスクオペレーティングシステムの制御の下で使用する場合、フロッピーディスクと同様に扱うために、従来よりフロッピーディスクに施されていたフォーマットに従ってフォーマットされている。このフォーマットでは、図２１に示すように、記憶領域は、ブート領域、ＦＡＴ（ファイルアロケーションテーブル）領域、ディレクトリ領域及びデータ領域に分けられている。データ領域は、ブート領域に記憶された定義に従ってクラスタに論理的に分割され、フラッシュメモリ内に記憶されるファイルは、クラスタを単位として記憶されている。
【０００４】
しかし、従来のフラッシュメモリのフォーマットでは、図２１に示すように、クラスタとブロックの位置とが一致していなかった。
【０００５】
従って、あるクラスタに記憶されたデータ（ファイル）を更新しようとする場合に、更新する必要のないデータ（ファイル）までブロック単位で一緒に消去されてしまうため、更新する必要のないデータについては、他のクラスタに退避する必要があった。
フラッシュメモリにデータ（ファイル）を書き込む場合にも同様の問題が生じていた。
さらに、データの消去或いは書き込みを行った場合には、ＦＡＴやディレクトリも書き換えなければならず、これに応じて消去する必要のないデータを別のブロックに退避する必要があった。
【０００６】
例えば、図２１の２つの領域ＳｂとＳｃからなるクラスタに記録されたファイルを更新する場合には、図２２のフローチャートに示す処理が必要になる。
まず、領域Ｓｂに格納されている更新対象データの前半部と、領域Ｓｂと同一のブロックに属する領域Ｓａにあるデータとを書き込むための空きブロックを検索する（ステップＳ１）。
【０００７】
空きブロックが索出されると、領域Ｓａに記憶されているデータを読み出して（ステップＳ２）、ステップＳ１で索出されたブロックに書き込む（ステップＳ３）。そして更に、領域Ｓｂに記憶されているデータを更新したものにあたるデータを書き込む（ステップＳ４）。これにより、更新対象のデータの前半部が更新される。
前半部の更新が終わると、更新前の前半部のデータを記録しているブロック４の記憶内容を消去する（ステップＳ５）。
【０００８】
次に、領域Ｓｃに格納されている更新対象データの後半部と、領域Ｓｃと同一のブロックに属する領域Ｓｄにあるデータとを書き込むための空きブロックを検索する（ステップＳ６）。
【０００９】
空きブロックが索出されると、その空きブロックに、領域Ｓｃに記憶されているデータを更新したものにあたるデータを書き込む（ステップＳ７）。これにより、更新対象のデータの後半部が更新される。そして更に、領域Ｓｄに記憶されているデータを読み出して、ステップＳ６で索出されたブロックに書き込む（ステップＳ８）。
【００１０】
後半部の更新が終わると、更新前の後半部のデータを記録しているブロック５の記憶内容を消去する（ステップＳ９）。続いて、更新されたファイルに関するＦＡＴ上の情報を更新し（ステップＳ１０）、処理を終了する。
【００１１】
【発明が解決しようとする課題】
上述したように、従来のブロック消去型記録媒体において、１つのファイルを更新するためには、複数のブロックを更新する必要があった。このため、データの書き込みの処理が２分割されることにより時間がかかり、これが、記憶装置全体の動作を低速化する原因になっていた。
【００１２】
また、フラッシュメモリにデータ（ファイル）を書き込む場合にも同様の問題が生じていた。
さらに、データの消去或いは書き込みを行った場合には、ＦＡＴやディレクトリも書き換えなければならず、これに応じて消去する必要のないデータを別のブロックに退避する必要があった。
【００１３】
このような問題は、記憶装置の小型化及び小電力化等のために、専用のコントローラを使用せず、ＣＰＵ等のデータ処理装置がこのブロック消去型記憶媒体を直接アクセスして制御する場合に顕著となる。
【００１４】
この発明は上記実状に鑑みてなされたもので、ブロック消去型記憶装置において、データアクセス、特に、データの消去を伴う処理を高速化することを目的とする。
また、この発明は、特に、データの書き込みの処理を高速に行うことができ、記憶容量を有効に利用することができるフォーマット構造を有するブロック消去型記憶媒体、及びこれらの記憶媒体を使用するデータ処理システムを提供することを目的とする。
【００１７】
また、本発明の第１の観点にかかるブロック消去型記憶媒体は、
複数のブロックから構成され、記憶データを前記ブロック単位で一括して消去可能であり、ファイルアロケーションテーブルを自己の記憶領域内に格納しており、当該記憶領域をオペレーティングシステムによりパーティション毎に管理可能であるブロック消去型記憶媒体であって、
前記ブロック消去型記憶媒体は、整数個の前記ブロックとデータの記憶領域の単位であるクラスタとのサイズ及び位置を一致させるための情報であって、前記ブロックのサイズを示す情報に基づいて生成された情報であるフォーマット情報を記憶したフォーマット情報記憶領域を備え、
前記フォーマット情報を記憶した前記ブロックを含む特定ブロック以外のブロックの記憶データは、当該フォーマット情報を書き込むブロックの記憶データが物理的に消去されないような態様で、物理的に消去されている、
ことを特徴とする。
【００１８】
このブロック消去型記憶媒体では、クラスタが整数個の前記ブロックで構成される。このため、データの消去或いは書き込みの処理をすべてブロック単位で行うことができる。これにより、データの書き込みのために他のデータを退避する必要がなく、データの消去或いは書き込みの処理を高速に行うことができる。
【００１９】
前記クラスタは、通常、前記ブロックの１つから構成される。前記クラスタを複数の前記ブロックから構成しても良い。
【００２０】
前記フォーマット情報は、前記クラスタのサイズを前記ブロックのサイズに一致させるための情報と、前記各クラスタの開始位置と終了位置を各前記ブロックの開始位置と終了位置に一致させるための位置調整用の領域、例えば、空き領域から構成されている。
【００２３】
一般の記憶媒体では、データ領域に記憶されたデータを、物理的に消去する（例えば、全て「１」に相当するデータを書き込んで消去する）ことなく、データの特定箇所（例えば、先頭１文字）を特定コードに置換すること等により、データが消去されていると見なして処理することも可能である。
しかし、フラッシュメモリなどのブロック消去型記憶媒体では、このような形式のデータの消去では、消去データの上に新たなデータを書き込むことができず、元のデータの退避と、該当エリアの消去という処理が必要となる。
この発明では、ブート領域やＦＡＴ領域等の特定の領域以外の領域は、データが消去されているので、書き込み動作時に、データの退避や消去が不要となり、書き込み処理を高速化することができる。
【００３１】
また、本発明の他の観点に係るデータ処理システムは、
複数のブロックから構成され、記憶データを前記ブロック単位で一括して消去可能なブロック消去型記憶媒体に接続可能に構成された接続部と、
整数個の前記ブロックとクラスタとのサイズ及び位置を一致させるフォーマット情報を前記接続部を介して前記ブロック消去型記憶媒体に書き込むことにより、前記ブロック消去型記憶媒体をフォーマットするフォーマット手段とを備え、
前記フォーマット手段は、前記フォーマット情報を書き込むブロックの記憶データを物理的に消去することなく、前記フォーマット情報を書き込むブロック以外のブロックの記憶データを物理的に消去する手段を含む、
ことを特徴とする。
【００３２】
【発明の実施の形態】
以下、添付図面を参照して、本発明の実施の形態について説明する。
【００３３】
［第１の実施の形態］
図１は、本発明の第１の実施の形態のフラッシュメモリの記憶制御システムの構成を示すブロック図である。
図示するように、この記憶制御システムは、フラッシュメモリ１と、記憶制御装置２と、コンピュータ３と、入出力バス４とから構成されている。また、記憶制御装置２は、ＳＣＳＩバスなどによって構成された入出力バス４を介してコンピュータ３に接続されており、コンピュータ３に着脱可能に構成されている。
【００３４】
フラッシュメモリ１は、メモリセルアレー１１と、アドレスレジスタ１２と、カラムデコーダ１３と、ローアドレスデコーダ１４と、電圧変換回路１５と、高電圧発生回路１６とからなるブロック消去型記憶媒体である。
【００３５】
メモリセルアレー１１は、各１バイトの記憶容量を有する複数の記憶領域から構成されている。各記憶領域は、縦１６３８４行、横５２８列のマトリクス状に配置されており、従って、メモリセルアレーは全体として約８．６５メガバイトの記憶容量を有する。
【００３６】
メモリセルアレー１１の各行は、図２に示すように、５２８バイトの記憶容量を有するページを構成する。各ページには連続的に１から１６３８４までのページアドレスが付与され、各ページに含まれる各記憶領域には、連続的に１から５２８までのカラムアドレスが与えられている。
各ページは、先頭から１６ページ単位で１つのブロックを構成する。各ブロックは約８．０３キロバイトの記憶容量を有し、記憶領域全体は、１０２４個のブロックから構成されている。そして、各ブロックには、連続的に１から１０２４までのブロックアドレスが与えられている。
【００３７】
同一ブロックに属する１６個ずつの記憶領域は、図３に示すように、縦１６行、横８列のマトリクス状に配列されたメモリセルからなる。各メモリセルはＮＡＮＤ型のものであって、共通の基板上に形成されている。
各列のメモリセルの電流路は、カスケードに接続され、各行のメモリセルのゲートは、共通の行制御入力端Ｔｒｃｎｔに接続されている。各行制御入力端Ｔｒｃｎｔは更に、同一ページの他の列に属する各メモリセルのゲートに接続されている。
【００３８】
カスケードに接続された各電流路の一端には、列選択用のＦＥＴ１−１〜１−８（電界効果トランジスタ）のソースが接続されている。各ＦＥＴ１−１〜１−８のドレインは、各列に対応付けられたデータ入出力端Ｔｄａｔａに接続され、ゲートは、共通の列制御入力端Ｔｃｃｎｔ１に接続されている。
また、各電流路の他端には、列選択用のＦＥＴ２−１〜２−８のドレインが接続されており、ＦＥＴ２−１〜２−８のソースは、基板に接続されている。またＦＥＴ２−１〜２−８のゲートは、共通の列制御入力端Ｔｃｃｎｔ２に接続されている。
また、列制御入力端Ｔｃｃｎｔ１及びＴｃｃｎｔ２は、フラッシュメモリアレー１１の同一の列に属する各メモリセルに接続する各列選択用ＦＥＴ１−１〜１−８及びＦＥＴ２−１〜２−８のゲートに更に接続されている。
【００３９】
各メモリセルは、行制御入力端Ｔｒｃｎｔ、列制御入力端Ｔｃｃｎｔ１、Ｔｃｃｎｔ２及び基板に印加される電圧に従って、データ入出力端Ｔｄａｔａ上のデータの書き込み、データ入出力端Ｔｄａｔａ上への読み出し、及び記憶内容の消去を行う。
メモリセルアレー１１は、全体としては、後述するように、データの書き込みはページ単位で行い、データの読み出しはバイト単位で行い、データの消去はブロック単位で行う。
【００４０】
なお、各メモリセルはＮＡＮＤ型であるため、データの記録は、記憶値を「１」から「０」にする方向にしか行うことができない。メモリセルの記憶値が「０」となったビットは、記憶内容がリセット（ブロック単位の消去）されるまで、「０」の状態を維持する。
【００４１】
アドレスレジスタ１２は、カラムデコーダ１３と、ローアドレスデコーダ１４と、記憶制御装置２とに接続されている。
アドレスレジスタ１２は、記憶制御装置２より、メモリセルアレー１１のカラムアドレス及びページアドレスを示す３バイトの情報を、１バイトずつ入力して記憶する。そして、記憶した情報のうち、カラムアドレスの情報をカラムデコーダ１３に出力し及びページアドレスの情報をローアドレスデコーダ１４に出力する。
【００４２】
カラムデコーダ１３は、アドレスレジスタ１２よりカラムアドレスの情報を入力する。そして、入力したカラムアドレスの情報と、制御回路２１の指示とに応じて、各行制御入力端Ｔｒｃｎｔに、高電圧発生回路１６が発生した書込電圧、消去電圧、読出電圧又は読出禁止電圧を印加する。
【００４３】
ローアドレスデコーダ１４は、アドレスレジスタ１２よりページアドレスの情報を入力する。そして、その情報と、制御回路２１の指示とに応じて、各列の列制御入力端Ｔｃｃｎｔ１、Ｔｃｃｎｔ２に、高電圧発生回路１６が発生した順バイアス電圧又は逆バイアス電圧を印加する。
【００４４】
電圧変換回路１５は、メモリセルアレー１１に書き込むべきデータをデータレジスタ２４より入力し、そのデータの各ビットの値を表す電圧を、所定の書込電圧に変換する。そして、この書込電圧を、制御回路２１の指示に従い、データ入出力端Ｔｄａｔａに印加する。
また、電圧変換回路１５は、メモリセルアレー１１からデータが読み出されたとき、各メモリセルの記憶内容を表す電圧をデータ入出力端Ｔｄａｔａ上から入力し、その電圧を増幅して、データレジスタ２４に格納する。
【００４５】
高電圧発生回路１６は、制御回路２１の指示に従って、各行制御入力端Ｔｒｃｎｔに印加する書込電圧と、各データ入出力端Ｔｄａｔａに印加する書込禁止電圧と、基板に印加する消去電圧と、各列の列制御入力端Ｔｃｃｎｔ１、Ｔｃｃｎｔ２に印加する順バイアス電圧又は逆バイアス電圧を生成する。そして、生成した電圧を、メモリセルアレー１１の基板と、カラムデコーダ１３と、アドレスデコーダ１４とに供給する。
【００４６】
図１に記載の記憶制御装置２は、制御回路２１、入出力コントロール回路２２、動作ロジックコントロール回路２３、コマンドレジスタ２４及びデータレジスタ２５から構成されている。記憶制御装置２は、フラッシュメモリ１と主記憶装置３２との間でデータを転送する。
【００４７】
制御回路２１は、コマンドレジスタ２４に格納されたコマンドと、動作ロジックコントロール回路２３の指示とに従って、カラムデコーダ１３と、ローアドレスデコーダ１４と、電圧変換回路１５と、高電圧発生回路１６とを、後述する通りに制御する。
【００４８】
入出力コントロール回路２２は、フラッシュメモリ１のデータバスと、入出力バス４と、動作ロジックコントロール回路２３と、コマンドレジスタ２４、アドレスレジスタ１２及びステータスレジスタ２８に接続されている。
入出力コントロール回路２２は、動作ロジックコントロール回路２３の指示に従って、データレジスタ２５及び入出力バス４よりデータを入力し、また、アドレスレジスタ１２、コマンドレジスタ２４、データレジスタ２５及び入出力バス４にデータを出力する。
【００４９】
動作ロジックコントロール回路２３は、後述するＣＰＵ３１と、入出力コントロール回路２２と、制御回路２１とに接続されている。
動作ロジックコントロール回路２３は、ＣＰＵ３１より、コマンドラッチ信号、アドレスラッチ信号、書込信号及び読出信号を入力し、これらの信号の状態に従って、制御回路２１及び入出力コントロール回路２２を、後述の通りに制御する。
【００５０】
コマンドレジスタ２４は、入出力コントロール回路２２から入力したコマンドの情報を格納し、制御回路２１に出力する。
データレジスタ２５は、５２８バイトの記憶容量を有し、書き込む対象のデータを入出力コントロール回路２２から入力して記憶し、電圧変換回路１５に出力する。また、メモリセルアレー１１の読み出し処理の結果として電圧変換回路１５から出力されるデータを入力し、入出力コントロール回路２２に出力する。
【００５１】
コンピュータ３は、ＶＭＥバスなどによって構成されたシステムバス３４を介して互いに接続されたＣＰＵ（中央処理装置）３１と、主記憶装置３２と、ＩＯＣ（入出力制御装置）３３とから構成されている。コンピュータ３は、ＩＯＣ３３を介して入出力バス４に接続されている。
【００５２】
ＣＰＵ３１は、主記憶装置３２に記憶されたプログラムを実行する。ＣＰＵ３１は、また、入出力バス４を介してコンピュータ３に接続されたキーボードなどの入力装置（図示せず）の操作に応答して、後述するフローチャートに示すプログラムを実行させるためのコマンドを出力する。
【００５３】
主記憶装置３２は、ＣＰＵ３１の処理プログラムを記憶する他、フラッシュメモリ１に記憶させるためのファイルや、フラッシュメモリ１から読み出されたファイルを記憶する。
また、主記憶装置３２は、フラッシュメモリ１をフォーマットするときにブート領域に記憶するマスターブートレコード及びパーティションレコードや、後述するアドレス変換テーブルを記憶する。
【００５４】
ＩＯＣ３３は、コンピュータ３のＣＰＵ３１または主記憶装置３２から入出力バス４へのデータの出力、またはその逆の入力を制御する入出力制御装置である。
【００５５】
（メモリセルアレー１１の記憶領域の論理的構造）
メモリセルアレー１１は、コンピュータ３が使用するオペレーティングシステム（ＯＳ）、例えば、ＭＳ−ＤＯＳ（マイクロソフト社商標）のフォーマットに従ってフォーマットされ、特に、メモリセルアレー１１の物理的構成であるブロックとＯＳが管理するファイルの論理的単位であるクラスタとが一致するようにフォーマットされている。
ただし、各クラスタには「１」より始まる番号が付されており、この番号とメモリセルアレー１１の先頭番地からのブロックの順番とは、必ずしも一致しない。
【００５６】
メモリセルアレー１１がフォーマットされた初期状態において、メモリセルアレー１１の記憶領域は、図４に示すように、
１．マスターブート記録領域
２．空き領域
３．パーティションブート記録領域
４．ＦＡＴ（ファイルアロケーションテーブル）
５．ディレクトリ領域
６．ファイル領域
の各領域に区分されている。
【００５７】
これらの領域のうち、マスターブート記憶領域と、空き領域と、パーティションブート記憶領域とが、メモリセルアレー１１の先頭のブロックに配置されている。
【００５８】
マスターブート記録領域は先頭の第１ページ（第１セクタ）より構成され、起動の処理に関する情報と、このメモリ装置に設けられている各パーティション（このメモリ装置を１以上の仮想の記憶装置に分割して用いる場合の、各仮想の記憶装置）に関する情報とを記録する領域である。
各パーティションに関する情報は、例えば、各パーティションが起動の対象となっているか否かの情報を含み、更に、
（１）各パーティションのデータ領域の始めのページの位置
（２）各パーティションの終わりのページの位置
（３）各パーティションに含まれるページの総数
を示す情報を含む。
【００５９】
空き領域は、マスターブート記録領域に続く１４ページにより構成される。空き領域は、記憶領域が複数のクラスタに分割されたとき、物理的単位であるブロックとＯＳが管理する論理的単位であるクラスタとの先頭及び末尾を一致させる目的で設けられる。
【００６０】
パーティションブート記録領域は、空き領域に続く１ページから構成される。パーティションブート記録領域は、各パーティションの構造に関する情報と、起動時の処理に関する情報とを記憶する。
各パーティションの構造に関する情報は、以下の内容を有する。
（４）各パーティションに含まれるページ１個の記憶容量
（５）クラスタ１個を構成するページの数
（６）各パーティションが含むことができるディレクトリの最大数
（７）ＦＡＴが占めるページの数
（８）ＦＡＴの数
【００６１】
クラスタは、パーティションブート記録領域に定義された所定数のページからなる記憶単位であり、ＯＳが管理する１つのファイルの内容が記録される最小の記憶単位である。従って、１つのクラスタに異なるファイルの内容が含まれることはない。
この実施の形態では、ブロックとクラスタのサイズを一致させるため、各クラスタは１６ページから構成されるように定義されている。
【００６２】
ブロック２〜ブロック１０２４は、任意のデータ、ファイル、等を格納するためのデータ領域を構成する。
データ領域のいずれか（初期状態ではブロック２）には、ＦＡＴとディレクトリが記憶されている。ＦＡＴは、１ブロック内の１６ページのうち、先頭の３ページに記憶され、ディレクトリは、残りの１３ページに記憶されている。
ＦＡＴは、ファイルの配置を示すテーブルである。ディレクトリは、記憶するファイル名、ファイルの先頭が記憶されているクラスタの番号等に関する情報を含む。
【００６３】
コンピュータ３のオペレーティングシステム（ＯＳ）が管理するクラスタとメモリセルアレー１１の物理的単位であるブロックのサイズ及び位置を一致させるため、マスターブート記録領域とパーティションブート領域には、具体的には、例えば、次の値が記録される。
【００６４】
（１）パーティションのデータ領域の始めのページの位置を１６、
（２）パーティションの終わりのページの位置を１６３８４、
（３）パーティションに含まれるページの総数を１６３６８、
（４）パーティションに含まれる１ページの記憶容量を５１２バイト、
（５）１つのクラスタを構成するページの数を１６、
（６）パーティションが含むことができるディレクトリの最大数を２５６、
（７）ＦＡＴが占めるページの数を３、
（８）ＦＡＴの数を１、
とする。
【００６５】
図５は、ＦＡＴ、ディレクトリ、及びクラスタの対応付けを示す図である。
図示するように、ＦＡＴ及びディレクトリが記憶されたクラスタの番号は制御回路２１の記憶部２１ａ内のポインタによって示されている。
【００６６】
ディレクトリは、メモリセルアレー１１内に記憶されているファイルのファイル名とそのファイルの先頭部分が記憶されているクラスタをポインタで示す。
ＦＡＴは、ファイルが１つのクラスタ内に収まらないとき、後続の部分を記憶するクラスタをそれぞれポインタで示すものである。ファイルの最終部分が記憶されているクラスタは、終了コード（ＥＣ）によって示される。
【００６７】
（アドレス変換テーブル）
アドレス変換テーブルは、各ブロックに割り当てられているクラスタの番号を表す情報を格納するテーブルである。アドレス変換テーブルは、前述の通りコンピュータ３の主記憶装置３２に記憶されており、ＣＰＵ３１によりアクセスされ、また更新される。
【００６８】
アドレス変換テーブルの構造の一例を図６に示す。アドレス変換テーブルは複数のレコードからなり、各レコードの先頭には、「１」から始まるクラスタの番号が格納され、続いて、その番号に対応付けられているブロックの番号が格納されている。
【００６９】
なお、ＦＡＴが記憶されているブロックには、クラスタの番号として常に「１」が割り当てられる。そして、ＦＡＴが更新されるとき、クラスタの番号「１」は、後述する処理により、ＦＡＴが新たに記憶されるブロックを示すように変更される。
【００７０】
（フラッシュメモリ及び記憶制御装置の基本動作）
次に、フラッシュメモリ１及び記憶制御装置２による、データの読み出し、書き込み及び消去の基本動作を、図７〜図９のフローチャートを参照して説明する。
図７は、データ読み出しの動作を示すフローチャートである。
図８は、データ書き込みの動作を示すフローチャートである。
図９は、データ消去の動作を示すフローチャートである。
【００７１】
（読み出し）
読み出しのモードは、以下述べるように３種類ある。
図７に示す第１の読み出しモードは、コマンドラッチ信号がアクティブレベルにあり、第１の読み出しモードを表すコマンド「００Ｈ」が入出力バス４より入出力コントロール回路２２に入力されている状態で、動作ロジックコントロール回路２３に書込信号が入力されることにより開始する（ステップＳ１０１。なお、末尾に”Ｈ”が付された数字は１６進数を表す）。
【００７２】
書込信号が入力されると、動作ロジックコントロール回路２３は、入出力コントロール回路２２にコマンドの入力を指示し（ステップＳ１０２）、指示を受けた入出力コントロール回路２２は、コマンドレジスタ２４にコマンド「００Ｈ」を格納する（ステップＳ１０３）。
そして、制御回路２１がコマンドレジスタ２４の内容を読み取ると（ステップＳ１０４）、制御回路２１は、第１の読み出しモードの開始を検知する。
【００７３】
次に、コマンドラッチ信号が解除され、代わってアドレスラッチ信号がアクティブレベルになり、入出力バス４には、カラムアドレスを表す信号が入力される。そして、この状態で書込信号が再び入力されると（ステップＳ１０５）、動作ロジックコントロール回路２３は、入出力コントロール回路２２にアドレスの入力を指示し（ステップＳ１０６）、指示を受けた入出力コントロール回路２２は、アドレスレジスタ１２にカラムアドレスを格納する（ステップＳ１０７）。
【００７４】
次に、アドレスラッチ信号がアクティブレベルを保ったまま、入出力バス４に、ページアドレスの下位８ビットを特定する下位ページアドレス信号が入力される（ステップＳ１０８）。そして、この状態で書込信号が再び入力されると、動作ロジックコントロール回路２３は、入出力コントロール回路２２にアドレスの入力を指示し、指示を受けた入出力コントロール回路２２は、アドレスレジスタ１２に下位ページアドレスを格納する（ステップＳ１０９）。
【００７５】
次に、ステップＳ１０８〜Ｓ１０９と同一の処理により、アドレスレジスタ１２には、ページアドレスの上位５ビットを特定する上位ページアドレスが更に格納される（ステップＳ１１０）。
以上３回に分けてカラムアドレス及びページアドレスの情報を入力したアドレスレジスタ１２は、カラムアドレスをカラムデコーダ１３に入力し、ブロックアドレス及びページアドレスをローアドレスデコーダ１４に入力する（ステップＳ１１１）。これにより、カラムデコーダ１３及びローアドレスデコーダ１４は、読み出し対象の先頭の記憶領域を特定する。
【００７６】
読み出し対象が特定されると、アドレスラッチ信号は解除され、読出信号が入力される（ステップＳ１１２）。読出信号を入力した動作ロジックコントロール回路２３は、制御回路２１に、データの読み出しの制御の開始を指示する（ステップＳ１１３）。
指示を受けた制御回路２１は、カラムデコーダ１３と、ローアドレスデコーダ１４と、高電圧発生回路１６とに、データを読み出す動作の開始を指示する（ステップＳ１１４）。
【００７７】
指示を受けたカラムデコーダ１３は、列制御入力端Ｔｃｃｎｔ１、Ｔｃｃｎｔ２に十分深い順バイアスを印加する。そして、この状態で、ローアドレスデコーダ１４が、読み出し対象の記憶領域を構成する各メモリセルのゲートに接続する列制御入力端Ｔｃｃｎｔに所定の読出電圧を印加し、他の列制御入力端Ｔｃｃｎｔには所定の読出禁止電圧を印加する（ステップＳ１１５）。
【００７８】
これにより、各データ入出力端Ｔｄａｔａには読み出し対象の記憶領域が記憶する１バイト分のデータが出力される。そして、該データは、電圧変換回路１５により電圧値を変換された後、データレジスタ２５及び入出力コントロール回路２２を経て、入出力バス４に出力される（ステップＳ１１６）。
【００７９】
以下、読出信号が動作ロジックコントロール回路に入力される毎に、ステップＳ１１２〜Ｓ１１６と同一の処理により、後続の記憶領域の記憶内容が、入出力バスに１バイトずつ順次出力される（ステップＳ１１７）。
【００８０】
第２の読み出しモードは、上述のステップＳ１０１において、入出力バス４より入出力コントロール回路２２に、第２の読み出しモードを表すコマンド「０１Ｈ」が入力されている場合に、書込信号によって開始する。
第２の読み出しモードの動作においては、読み出される先頭の位置が、入出力バス４から入力されたカラムアドレス及びページアドレスが示す位置の２５６個先のアドレスとなる点が、第１の読み出しモードと異なる。その他の動作は、第１の読み出しモードと同一である。
【００８１】
第３の読み出しモードは、上述のステップＳ１０１において、入出力バス４より入出力コントロール回路２２に、第２の読み出しモードを表すコマンド「５０Ｈ」が入力されている場合に、書込信号によって開始する。
第２の読み出しモードの動作においては、読み出される先頭の位置が、入出力バス４から入力されたカラムアドレス及びページアドレスの下位４ビットが示す位置の５１２個先のアドレスである。また、各ページの最終カラムのメモリセルのデータが読み込まれた後、さらに読出信号が入力されると、次ページの５１３番目のメモリセルから読み出しが行われ、以下、各ページの５１３番目以降のメモリセルが読み出しの対象となる。その他の動作は、第１の読み出しモードと同一である。
【００８２】
（書き込み）
図８に示すデータ書き込みの動作は、以下説明するように、書き込み対象ページのアドレスが指定され、１ページ分のデータがデータレジスタ２５に書き込まれた後、データレジスタ中のデータが、指定されたページに順次書き込まれることにより実行される。
【００８３】
書き込みの処理は、コマンドラッチ信号がアクティブレベルで、データレジスタへのデータ出力を表すコマンド「８０Ｈ」が入出力コントロール回路２２に入力されている状態において、動作ロジックコントロール回路２３に書込信号が入力されると、開始される（ステップＳ２０１）。
【００８４】
処理が始まると、カラムデコーダ１３及びローアドレスデコーダ１４は、データ読み込みの処理におけるステップＳ１０２〜Ｓ１１１と同様の処理により、書き込み対象のページの先頭の位置を示すカラムアドレス及びページアドレスを特定する（ステップＳ２０２）。
ステップＳ２０２の処理が終わった後、アドレスラッチ信号が解除され、動作ロジックコントロール回路２３に書込信号が入力されると、動作ロジックコントロール回路２３は、入出力コントロール回路２２にデータの入力を指示する（ステップＳ２０３）。
指示を入力した入出力コントロール回路２２は、入出力バス４上に出力されているデータを、データレジスタ２５の先頭の番地に格納する（ステップＳ２０４）。
【００８５】
以下、制御回路２１、入出力コントロール回路２２及び動作ロジックコントロール回路２３は、ステップＳ２０３〜Ｓ２０４と同様の処理を行って、データレジスタ２５の後続の番地に、書き込むべきデータを順次格納する（ステップＳ２０５）。ただし、書き込むべきデータの総量は、１ページ分以内すなわち５２８バイト以下である必要がある。
【００８６】
書き込む対象のデータがすべてデータレジスタ２５に格納されると、コマンドラッチ信号が再びアクティブレベルにされ、入出力バス４には、データレジスタ２５の記憶内容を書き込み対象ページへ書き込むことを指示するコマンド「１０Ｈ」が入力される（ステップＳ２０６）。
【００８７】
この状態で、動作ロジックコントロール回路２３に書込信号が入力されると、動作ロジックコントロール回路２３は、制御回路２１に、データ書き込みの制御を開始するよう指示する（ステップＳ２０７）。
指示を受けた制御回路２１は、カラムデコーダ１３と、ローアドレスデコーダ１４と、電圧変換回路１５と、高電圧発生回路１６と、データレジスタ２５とに、データ書き込みの処理の開始を指示する（ステップＳ２０８）。
【００８８】
指示を受けた高電圧発生回路１６は、書込電圧を生成してローアドレスデコーダ１４に供給し、また、書込禁止電圧を生成して電圧変換回路１５に供給する（ステップＳ２０９）。
そして、電圧変換回路１５は、データレジスタ１４の先頭番地に格納されている１バイトのデータを読み込む。そして、論理値が「１」であるビットにあたるデータ入出力端Ｔｄａｔａには、高電圧発生回路１６から入力した書込禁止電圧を印加し、一方、論理値が「０」であるビットにあたるデータ入出力端Ｔｄａｔａには、接地電圧を印加する（ステップＳ２１０）。
【００８９】
次いで、カラムデコーダ１３が、ステップＳ２０２で特定されたページの先頭の記憶領域にあたる列制御入力端Ｔｃｃｎｔ１に十分深い順バイアスを加え、列制御入力端Ｔｃｃｎｔ２には十分深い逆バイアスを加える。また、ローアドレスデコーダ１４は、ステップＳ２０２で特定されたページにあたる行制御入力端Ｔｒｃｎｔに、高電圧発生回路１６から入力した書込電圧を印加する（ステップＳ２１１）。
このとき、当該メモリセルの電流路に接地電圧が印加されていれば、該メモリセルの記憶値は「１」から「０」に転ずる。
【００９０】
ステップＳ２１１の処理が終わると、以下、ステップＳ２０９〜Ｓ２１１と同一の処理により、データレジスタ２５に格納されている後続の各データが、ステップＳ２０２で特定されたページの後続の記憶領域に順次書き込まれる（ステップＳ２１２）。
以上の処理により、メモリセルアレー１１には、１ページ単位でデータが書き込まれる。
【００９１】
（消去）
図９に示すブロック内のデータ消去の動作は、コマンドラッチ信号がアクティブレベルにあり、消去対象ブロックのアドレスのロードを指示するコマンド「６０Ｈ」が入出力コントロール回路２２に入力されている状態において、動作ロジックコントロール回路２３に書込信号が入力されることにより開始される（ステップＳ３０１）。
【００９２】
処理が始まると、アドレスレジスタ１２は、データ読み込みの処理におけるステップＳ１０２〜Ｓ１１１と同様の処理により、上位及び下位のページアドレスを入力する。そして、入力したページアドレスの上位９ビットを抽出して、消去対象のブロックの位置を示すブロックアドレスを特定する（ステップＳ３０２）。
【００９３】
消去対象のブロックアドレスが特定されると、コマンドラッチ信号が再びアクティブレベルになり、入出力バス４には、データレジスタ２５の消去対象のブロックの記憶内容の消去を指示するコマンド「Ｄ０Ｈ」が入力される（ステップＳ３０３）。
この状態で、動作ロジックコントロール回路２３に書込信号が入力されると、動作ロジックコントロール回路２３は、制御回路２１に、特定されたブロックのデータ消去の制御を開始するよう指示する（ステップＳ３０４）。そして、この指示を受けた制御回路２１は、カラムデコーダ１３と、ローアドレスデコーダ１４と、高電圧発生回路１６とに、データ消去の処理の開始を指示する（ステップＳ３０５）。
【００９４】
指示を受けたカラムデコーダ１３は、メモリセルアレー１１のすべての列制御入力端Ｔｃｃｎｔ１、Ｔｃｃｎｔ２に十分深い逆バイアスを印加する。また、ローアドレスデコーダ１４は、ステップＳ３０２で特定されたブロックに属するすべてのページにあたる行制御入力端Ｔｒｃｎｔに、接地電圧を印加する（ステップＳ３０６）。
【００９５】
この状態で、高電圧発生回路１６は消去電圧を生成し、この消去電圧をメモリセルアレー１１の基板に印加する（ステップＳ３０７）。これにより、当該ブロックに属する全メモリセルの記憶値は「１」になる。
以上の処理により、メモリセルアレー１１に記憶されたデータは、１ブロック単位で消去される。
【００９６】
（フラッシュメモリ１のフォーマット処理）
次に、フラッシュメモリ１を図４のようにフォーマットする処理について、図１０のフローチャートを参照して説明する。
この処理は、ユーザがコンピュータ３に接続されたキーボードなどの入力装置（図示せず）を操作することによって、フォーマットの開始を指示することにより開始する。
【００９７】
まず、フラッシュメモリ１及び記憶制御装置２は、上述の消去の動作、すなわちステップＳ３０１〜Ｓ３０６の動作を、各ブロックを消去対象として順次実行し、各ブロックの記憶内容を消去する（ステップＳ４０１）。ステップＳ４０１の処理において、出力バス４上に出力されるコマンド「６０Ｈ」及び「Ｄ０Ｈ」は、ＣＰＵ３１より、システムバス３４、ＩＯＣ３３を介して送出される。
【００９８】
次に、ＣＰＵ３１は、フォーマットプログラムを実行し、フラッシュメモリ１のブロックとセクタとのサイズと位置を一致させるために、上述の内容を有するマスタブートレコードと、空きエリアのサイズと、パーティションブートレコードとを生成する。
そして、フラッシュメモリ１及び記憶制御装置２が、上述の書込の動作、すなわちステップＳ２０１〜Ｓ２１１の動作を実行し、上述の内容を有するマスタブートレコードを、先頭から１ページ分ずつ書き込む（ステップＳ４０２）。ステップＳ４０２の処理において、出力バス４上に出力されるコマンド「８０Ｈ」及び「１０Ｈ」と、書込対象のデータとは、ＣＰＵ３１より、システムバス３４、ＩＯＣ３３を介して送出される。
【００９９】
次に、記憶制御装置２は、１４ページを空けて、同様の動作により、ブロック１のページ１６にパーティションブートレコードを書き込む（ステップＳ４０３）。
このようにして、ブロック１に、マスタブート領域と空き領域とパーティションブート領域とが形成される。
【０１００】
最後に、ＣＰＵ３１は、アドレス変換テーブルを作成して、主記憶装置３２内に格納する（ステップＳ４０４）。
ステップＳ４０４において作成されるアドレス変換テーブルにおいて、各クラスタ及び各ブロックの値は、各クラスタの番号が、メモリセルアレー１１の先頭番地からの各ブロックの番号が各クラスタに一致するように対応付けられる。すなわち、ブロック２はクラスタ２に、ブロック３はクラスタ３に対応付けられ、以下同様に、ブロックの番号がクラスタの番号に一致するよう対応付けられる。
【０１０１】
以上で、図１０のフローチャートの処理を終了する。これにより、図４に示したように、フラッシュメモリ１がフォーマットされる。
【０１０２】
（電源立ち上げ時の処理）
コンピュータ３の電源が投入されると、ＣＰＵ３１は、フラッシュメモリ１のマスタブート領域及びパーティションブート領域に格納された情報を、第１の読み出しモードで読み出すよう、図示せぬ内部ＲＯＭなどに記憶されたプログラムに従って、記憶制御装置２に指示する。
【０１０３】
これにより、第１ブロックの第１ページに記憶されたマスタブートレコードがデータ入出力端Ｔｄａｔａから読み出される。読み出されたマスタブートレコードは、ＣＰＵ３１に提供される。
ＣＰＵ３１は、読み出されたマスタブートレコードに基づいて、同様の動作により、パーティションブートレコードを第１の読み出しモードで読み出すよう、記憶制御装置２に指示する。読み出されたパーティションブートレコードは、ＣＰＵ３１に提供される。ＣＰＵ３１は、読み出したブート情報を主記憶装置３２に格納する。
【０１０４】
ＣＰＵ３１は、読み出したデータから、クラスタのサイズとデータ領域の先頭を判別する。
これ以後、ファイルをアクセスする動作を、これらのブート情報の定義に従って行う。従って、データの読み出し及び書き込み時のファイルの最小単位とその位置は、フラッシュメモリ１のブロックのサイズと位置に等しいものとなる。
【０１０５】
（ファイルの削除処理）
次に、フラッシュメモリ１に書き込まれたファイルを削除する処理について、図１１のフローチャートを参照して説明する。
ファイル削除処理は、ユーザがコンピュータ３に接続されたキーボードなどの入力装置（図示せず）を操作することによって、あるいは、ＣＰＵ３１が実行中のアプリケーションプログラムの必要により開始される。
【０１０６】
ファイルを削除する処理が開始されると、ＣＰＵ３１は、削除対象のファイル名を特定する（ステップＳ５０１）。
次に、ＣＰＵ３１は、ＦＡＴ及びディレクトリのあるページ（すなわち、アドレス変換テーブル上でクラスタの番号「１」が割り当てられているブロックの先頭以降のページ）を特定する。そして、ＣＰＵ３１は、システムバス３４、ＩＯＣ３３及び入出力バス４を介して、記憶制御装置２に、当該ページを第１の読み出しモードで読み出すよう指示する。そして、ＣＰＵ３１は、記憶制御装置２が読み出したＦＡＴ及びディレクトリの記憶内容を入力し、主記憶装置３２に記憶する（ステップＳ５０２）。
【０１０７】
次に、ＣＰＵ３１は、主記憶装置３２に記憶したＦＡＴ及びディレクトリを検索して、ステップＳ５０１で特定したファイルが記憶されているクラスタを特定する。そして、そのクラスタの番号を主記憶装置３２内に一時記憶する（ステップＳ５０３）。
【０１０８】
次に、ＣＰＵ３１は、主記憶装置３２に記憶したＦＡＴの内容を解析して、現在空いているクラスタを１つ選択する（ステップＳ５０４）。
そして、ＣＰＵ３１は、現在クラスタの番号「１」が割り当てられているブロックに、ステップＳ５０４で選択されたクラスタの番号を新たに割り当て、一方で、現在ＦＡＴが格納されているブロックに、ステップＳ５０４で選択されたクラスタの番号を新たに割り当てる。そして、この割り当て変更に従って、アドレス変換テーブルの内容を書き換える（ステップＳ５０５）。
【０１０９】
次に、ＣＰＵ３１は、主記憶装置３２に記憶したＦＡＴ及びディレクトリの内容のうち、ステップＳ５０１で特定された、消去対象のファイルを示す情報を削除する（ステップＳ５０６）。これにより、ＦＡＴ及びディレクトリは更新される。
次に、ＣＰＵ３１は、更新されたＦＡＴ及びディレクトリを第１の空きブロックに書き込むため、記憶制御装置２に書込の動作を行うよう指示する。この結果、記憶制御装置２は、ステップＳ２０１〜Ｓ２１２の動作に従い、更新後のＦＡＴの先頭の１ページ分を、ステップＳ５０４で選択された空きブロックの先頭の１ページに書き込む（ステップＳ５０７）。
【０１１０】
ＣＰＵ３１は、更新されたＦＡＴ及びディレクトリがすべてステップＳ５０４で選択された空きブロックに書き込まれるまで、記憶制御装置２の書込動作が終了する都度、書込の指示を行う。記憶制御装置２は、その指示を受ける度に、後続の各ページに、ステップＳ２０１〜Ｓ２１２の動作に従って順次ＦＡＴ及びディレクトリを書き込む（ステップＳ５０８）。
【０１１１】
次に、ＣＰＵ３１は、アドレス変換テーブルを参照して、ステップＳ５０３で記憶したクラスタの番号にあたるブロックを特定し、そのブロックの記憶内容を消去するよう、記憶制御装置２に指示する。これにより、そのブロックに記憶されたデータ、即ち、消去対象ファイルが、ステップＳ３０１〜Ｓ３０６の動作に従って消去される（ステップＳ５０９）。
【０１１２】
次に、ＣＰＵ３１は、更新前のＦＡＴ及びディレクトリのあるブロックの記憶内容を消去するよう、記憶制御装置２に指示する（ステップＳ５１０）。これにより、更新前のディレクトリ及びＦＡＴが記憶されていたブロックの記憶内容は、ステップＳ３０１〜Ｓ３０６の動作に従って消去される。
【０１１３】
以上説明したステップＳ５０１〜Ｓ５１０の処理により、消去対象のファイルを示す情報はＦＡＴ及びディレクトリから削除され、また当該ファイルの内容も消去される。なお、ステップＳ５０２の処理は、ステップＳ５０１〜Ｓ５１０の処理に先行した処理などによって予め主記憶装置３２にＦＡＴ及びディレクトリの内容が読み込まれているときは、省略してもよい。
【０１１４】
（ファイルの書き込み処理）
フラッシュメモリ１にファイルを書き込む処理について、図１２のフローチャートを参照して説明する。
このフローチャートの処理も、ユーザがコンピュータ３に接続されたキーボードなどの入力装置（図示せず）を操作することによって、あるいは、ユーザプログラムの必要により実行される。
【０１１５】
処理が始まると、ＣＰＵ３１は、書き込むべきファイルのファイル名とその先頭アドレス及びデータ量を特定する（ステップＳ６０１）。ＣＰＵ３１は、前述のフォーマット情報に従って動作しているので、データ量は、ブロックの整数倍の量である。
【０１１６】
次に、ＣＰＵ３１は、アドレス変換テーブルを参照してＦＡＴ及びディレクトリがあるブロックを特定し、記憶制御装置２に、そのブロックを第１の読み出しモードで読み出すよう指示して、ＦＡＴ及びディレクトリの記憶内容を入力する（ステップＳ６０２）。そして、入力したＦＡＴを参照し、フラッシュメモリ１内の空きクラスタを検索する（ステップＳ６０３）。
【０１１７】
次に、ステップＳ６０３で検索した空きクラスタの数が、ステップＳ６０１で特定したデータ量のファイルと、後述する更新後のディレクトリ及びＦＡＴを記憶するのに十分であるかを判別する（ステップＳ６０４）。
ステップＳ６０４で空きクラスタの数が十分でないと判別した場合は、後述するステップＳ６１０の処理に進む。
【０１１８】
ステップＳ６０４で空きクラスタの数が十分であると判別した場合は、ステップＳ６０１で特定したデータ量のファイルを記憶するために必要なブロックを、ステップＳ６０３で検索した空きクラスタのうち先頭のものから順に書き込み対象として特定する。そして、特定された各クラスタが示す各ブロックの番号をアドレス変換テーブルを検索することにより特定し、特定されたブロックの番号を主記憶装置３２に一時記憶する（ステップＳ６０５）。
【０１１９】
次に、ＣＰＵ３１は、ステップＳ６０５で特定したブロックにファイルを書き込むため、記憶制御装置２に書込の動作を行うよう指示する。この結果、記憶制御装置２は、書込対象のファイルの先頭の１ページ分を、ステップＳ６０３で検索された空きブロックの先頭の１ページに書き込む（ステップＳ６０６）。
【０１２０】
ＣＰＵ３１は更に、書込対象のファイルの内容がすべてステップＳ６０３で検索された空きクラスタに書き込まれるまで、記憶制御装置２の書込動作が終了する都度、書込の動作を指示する。記憶制御装置２は、その指示を受ける度に、ステップＳ２０１〜Ｓ２１２の動作に従い、後続の各ページに、順次ファイルの内容を書き込む（ステップＳ６０７）。
ＣＰＵ３１が作成するファイルのサイズは、ブロックのサイズの整数倍である。従って、書き込み対象のファイルは、複数のブロックに均等に分割されて格納される。
【０１２１】
ファイルの書き込みが終了すると、ＣＰＵ３１は、消去の処理におけるステップＳ５０４〜Ｓ５０８の動作に従って、ＦＡＴ及びディレクトリの更新を行う（ステップＳ６０８）。ただし、ステップＳ５０６の処理の際は、主記憶装置３２に記憶したＦＡＴ及びディレクトリから消去対象のファイルを示す情報を削除する代わりに、書き込まれたファイルを示す情報の追加を行う。
ＦＡＴ及びディレクトリの更新が終了すると、このフローチャートの処理は終了する。
【０１２２】
一方、ステップＳ６０４で、空きクラスタの数がファイルを書き込むのに十分ではないと判別されると、ＣＰＵ３１はファイルの書込ができないことを認識し、このフローチャートの処理を終了する（ステップＳ６１０）。
【０１２３】
（ファイルの読み出し処理）
このフラッシュメモリ１からファイルを読み出す場合は、従来、フラッシュメモリ１からファイルを読み出していた際と同一の処理を行えばよい。即ち、ＣＰＵ３１は、読み出し対象のファイル名を特定し、ＦＡＴ情報及びディレクトリ情報を第１の読み出しモードで読み出して、読み出した各情報から、当該ファイル名を持つファイルが記憶されているページを特定する。そして、そのページを第１の読み出しモードで読み出すよう指示する。これにより、該当するファイルは順次読み出され、ＣＰＵ３１に提供される。
【０１２４】
以上説明したように、この実施の形態の記憶制御システムでは、フラッシュメモリ１のブロックのサイズと位置をＯＳが管理するファイルの最小単位であるクラスタのサイズと位置に一致させた。
【０１２５】
従って、各ブロック内に複数のファイルが記憶されることがない。従って、フラッシュメモリ１に記憶されたファイルの書き込みを行うときに、同一ブロック内の消去対象データ以外のデータを別のクラスタに退避したり、退避したデータを格納していたブロックを消去する等の処理の必要がない。
一般に、フラッシュメモリ１のデータの書き込みの速度は、データの読み出しの速度よりもかなり遅く、消去速度は書き込み速度よりもさらに遅い。従って、このような構成により、従来必要であった書き込み処理及び消去処理を行う必要がなく、処理速度を高速化することができる。
【０１２６】
一般のオペレーティングシステムでは、媒体を初期化する際、データを物理的に消去するのではなく、既存データの一部を特定コードに置換することによりデータを消去している。しかし、フラッシュメモリでは、データを書き込む際に、このような消去されたデータが残っている場合でも、このデータの退避及び該当ブロックの物理的消去という手続きが必要になり、書き込み動作が遅くなる。この実施の形態では、フォーマット時にデータ領域を物理的に消去しているので、書き込み時の消去処理が不要となり、書き込み処理を高速化することができる。
【０１２７】
また、一般のオペレーティングシステムでは、ファイルを削除する際に、実際にファイルを構成するデータ全体を削除するのではなく、先頭の１文字を特定コード、例えば、”ＣＥ”に書き換えることにより、消去ファイルとして取り扱っている。フラッシュメモリでは、データを書き込む際に、このような消去されたデータが残っている場合でも、このデータの退避及び該当ブロックの物理的消去という手続きが必要になり、書き込み動作が遅くなる。この実施の形態では、フォーマット時にデータ領域を物理的に消去しているので、書き込み時の消去処理が不要となり、書き込み処理を高速化することができる。
【０１２８】
なお、この実施の形態の記憶制御システムにおけるフラッシュメモリ１の構成は上記構成のものに限るものではない。
例えば、フラッシュメモリ１の記憶容量は全体で８メガバイトである必要はなく、また、各メモリセルの記憶容量が１バイトである必要もなく、また、１ページの記憶容量が５２８バイトである必要もない。また、１ブロックあたりのページ数が１６である必要もない。
【０１２９】
フラッシュメモリはＮＯＲ型のものであってもよい。また、フラッシュメモリ１が一度に入出力するデータの量は１バイトである必要はなく、例えば、２バイト以上を一度に入出力してもよい。
【０１３０】
また、上記実施の形態では、電源立ち上げ時等に、ブート領域をアクセスし、フラッシュメモリ１のフォーマットを判別したが、フラッシュメモリ１をアクセスする際に、一旦ブート領域をアクセスし、制御回路２１又はＣＰＵ３１が認識しているフォーマットと一致することを確認した上で、データをアクセスしてもよい。
【０１３１】
また、図４のフォーマットでは、ＦＡＴとディレクトリとを同一クラスタ内に配置したが、別々のクラスタに配置してもよい。この場合、例えば、ＦＡＴ及びディレクトリが格納されるクラスタを、「１」及び「２」又はその他の所定の番号のクラスタに対応付けることにより、ＦＡＴ及びディレクトリの位置を判別する。
【０１３２】
図４のフォーマットでは、ＦＡＴを１つのみ配置したが、通常のディスクフォーマットに従って、ＦＡＴの第１コピー（ＦＡＴ１）と第２コピー（ＦＡＴ２）を配置してもよい。
【０１３３】
また、図４のフォーマットでは、ブート情報とＦＡＴ等の他の情報を別個のブロックに書き込んだが、これらの情報を同一のクラスタ（ブロック）に書き込んでも良い。このようなフォーマット構造を採用した場合には、ＦＡＴの更新に伴って、ブート情報等も他の空きブロックに複写される。従って、制御回路２１又はＣＰＵ３１は、ブート領域の位置を記憶しておく。
【０１３４】
例えば、各クラスタを８ページ（４ＫＢ）とした場合に、あるセクタのページ１にマスタブートレコードを書き込み、ページ２〜４を空き領域とし、パーテションブートレコードをページ５に書き込み、ＦＡＴ１とＦＡＴ２をページ７と８に書き込み、ディレクトリを別のクラスタに書き込んでも良い。この構成は、ＦＡＴ及びディレクトリのサイズが小さい場合、例えば、記憶容量が全体で１ＭＢ程度の場合に有効である。
【０１３５】
また、各クラスタを８ページとした場合に、あるセクタのページ１にマスタブートレコードを書き込み、ページ２と２を空き領域とし、パーテションブートレコードをページ４に書き込み、ＦＡＴ１とＦＡＴ２をページ５〜８に書き込み、ディレクトリを別のクラスタに書き込んでも良い。
【０１３６】
各クラスタを１６ページ（８ＫＢ）とした場合に、あるセクタのページ１にマスタブートレコードを書き込み、ページ２〜９を空き領域とし、パーテションブートレコードをページ１０に書き込み、ＦＡＴ１とＦＡＴ２をページ１１〜１６に書き込み、ディレクトリを別のクラスタに書き込んでも良い。同様に、あるセクタのページ１にマスタブートレコードを書き込み、ページ２と３を空き領域とし、パーテションブートレコードをページ４に書き込み、ＦＡＴ１とＦＡＴ２をページ５〜１６に書き込み、ディレクトリを別のクラスタに書き込んでも良い。これらの構成は、ＦＡＴ及びディレクトリのサイズが比較的大きい場合、例えば、記憶容量が全体で８ＭＢ、１６ＭＢ程度の場合に有効である。
【０１３７】
このようなフォーマット構成を採用しても、ブロックとクラスタのサイズが同一のサイズ及び位置に設定されているため、不要な消去処理などが発生せず、処理を高速で行うことができる。
【０１３８】
フラッシュメモリ１は、記憶制御装置２に固定されている必要はなく、記憶制御装置２に着脱可能に構成されてもよい。
【０１３９】
［第２の実施の形態］
第１の実施の形態では、ＣＰＵ３１からのコマンドに応答して、記憶制御装置２がフラッシュメモリ１のフォーマット、ファイルの消去、ファイルの書き込み等の処理を行ったが、ＣＰＵ３１自身が記憶制御装置２の動作を行っても良い。
【０１４０】
この構成においては、例えば、図１３に示すように、フラッシュメモリ１のアドレスレジスタ１２、カラムデコーダ１３、ローアドレスデコーダ１４、電圧変換回路１５及び高電圧発生回路１５は、ＩＯＣ３３に接続されている。
【０１４１】
このような構成を採用した場合、ＣＰＵ３１は、記憶制御装置２が実行した動作をＣＰＵ自身で行う。
例えば、フラッシュメモリ１をフォーマットする場合、ＣＰＵ３１は、ブロックアドレスを更新しながら、ＩＯＣ３３を介し、ローアドレスデコーダ１４、電圧変換回路１５及び高電圧発生回路１６に、データ消去の処理の開始を指示する（図１０、ステップＳ４０１）。さらに、書き込み対象マスタブートレコード及びパテションブートレコードを出力し、カラムデコーダ１３、ローアドレスデコーダ１４、電圧変換回路１５及び高電圧発生回路１６に、これらのデータの書込の処理の開始を指示する（ステップＳ４０２、４０３）。続いて、主記憶装置３２上のアドレス変換テーブルを作成する（ステップＳ４０４）。
【０１４２】
また、ＣＰＵ３１は、電源立ち上げ時等に、フラッシュメモリ１の先頭のブロックをアクセスしてブート情報を読み出し、クラスタの構造（サイズ及び位置）を判別し、これに基づいて、以後のフラッシュメモリ１へのアクセスを制御する。
【０１４３】
例えば、ファイルを削除する場合には、ＣＰＵ３１は、自ら、ポインタの値からＦＡＴとディレクトリとを読み出し（図１１、ステップＳ５０１〜Ｓ５０２）、消去したいファイルが記憶されているクラスタを判別する（ステップＳ５０３）。そして、ＦＡＴ及びディレクトリを更新し（ステップＳ５０４〜Ｓ５０８）、そのクラスタに相当するブロックを消去する（ステップＳ５０９）。最後に、ＣＰＵ３１は、更新前のＦＡＴ等が記憶されているブロックを消去して（ステップＳ５１０）、処理を終了する。
【０１４４】
また、例えば、データを新たに書き込む場合には、ＣＰＵ３１は、ＦＡＴから空きクラスタを判別し、カラムデコーダ１３と、ローアドレスデコーダ１４と、電圧変換回路１５と、高電圧発生回路１６とを制御することにより、データを順次メモリセルアレー１１に格納する。ファイルの書き込みが完了すると、ＦＡＴ及びディレクトリを更新する。
【０１４５】
ＣＰＵ３１が生成するファイルのサイズは、ブロックのサイズの整数倍である。従って、ファイルは１又は複数のブロックに過不足なく格納される。また、ＦＡＴとディレクトリのサイズも、１ブロックと同一サイズに設定されているので、ＦＡＴとディレクトリは、１つのブロックに過不足なく格納される。
従って、１回の書き込み処理で、一部のブロックに、ファイルやディレクトリの一部の少量のデータが格納される等の事態を防止でき、前述の消去時等に、ブロック単位でファイルを消去することが可能となる。
【０１４６】
このようして、ＣＰＵ３１自身がフォーマット、ファイルの削除、ファイルの更新などの制御を行うことにより、制御回路を使用せずに、フラッシュメモリ１をアクセスすることができる。
【０１４７】
このような構成の場合、同一ブロック内に消去対象データと他のデータが混在すると、ＣＰＵ３１自身がファイルの退避、消去などの処理を行わなければならず、コンピュータシステム全体の動作速度が非常に低下する虞がある。この実施の形態によれば、図４に示すようなクラスとブロックが一致するフォーマット構成を採用しているので、不要な退避処理や消去処理を抑えることができ、システム全体としての処理速度を高めることができる。
【０１４８】
［第３の実施の形態］
上記の第１及び第２の実施の形態では、１つのクラスタが１つのブロックに一致するように、フラッシュメモリ１がフォーマットされていたが、図１４に示すように、１つのクラスタが複数のブロックに対応するようにフラッシュメモリ１をフォーマットしてもよい。
【０１４９】
図示するように、このフォーマットでは、フラッシュメモリ１のブロック１がブート領域となり、マスターブートレコード及びパーティションブートレコードが記憶される。
【０１５０】
ブート領域内のマスターブートレコード及びパーティションブートレコード内に記憶されたデータによって、フラッシュメモリ１のクラスタが特定される。このフォーマットでは、フラッシュメモリ１のブロック２〜ブロック４がクラスタ１に対応する。ブロック５〜ブロック７がクラスタ２に対応する。ブロック８〜ブロック１０がクラスタ３に対応する。以下、同様にして、ブロック１０２２〜１０２４がクラスタ３４３に対応する。
【０１５１】
なお、この実施の形態の記憶制御システム及びその処理は、上記第１及び第２の実施の形態の場合と同一である。但し、１つのクラスタのデータを消去するときに、この記憶制御システムは、データ消去対象のクラスタに対応する３つのブロックのそれぞれのデータを消去するため、ステップＳ３０１〜Ｓ３０７の処理を３回繰り返す。
また、図１４では、１つのクラスタが３つのブロックに対応する例を示したが、１つのクラスタが２つ以上の任意の整数個のブロックに対応するものであってもよい。
【０１５２】
［第４の実施の形態］
上記の第１の実施の形態では、フラッシュメモリ１をフォーマットする際に、フラッシュメモリ１のすべてのブロックの記憶内容を消去し、その後、ブロック１にマスターブートレコード及びパーティションブートレコードを書き込んでいた。
しかし、フォーマットする前後のブート情報が同一の場合には、これらの情報を再度書き込む必要がない。そこで、この実施の形態では、フォーマット前後のブート情報が同一の場合に、これらを消去することなく、フラッシュメモリ１をフォーマットする方法について説明する。
【０１５３】
この実施の形態において、記憶制御システムの構成は、図１の場合と同一である。また、フラッシュメモリ１のフォーマット以外の処理は、第１の実施の形態の場合と同一である。
【０１５４】
図１５は、この実施の形態においてフラッシュメモリ１をフォーマットするための処理を示すフローチャートである。
このフローチャートの処理は、図１０のフローチャートの処理と同様に、ユーザがコンピュータ３に接続されたキーボードなどの入力装置（図示せず）を操作することによって、ＣＰＵ３１からシステムバス３４、ＩＯＣ３３及び入出力バス４を介して所定のコマンドが入出力コントロール回路２２に投入されることによってスタートする。
【０１５５】
処理がスタートすると、ＣＰＵ３１は、第１の実施の形態における電源立ち上げ時の処理と同様にして、フラッシュメモリ１内のブート領域に記憶されているマスターブートレコード及びパーティションブートレコードを読み出し、主記憶装置３２に一時記憶する（ステップＳ７０１）。
【０１５６】
次に、ＣＰＵ３１は、フラッシュメモリ１をフォーマットするために主記憶装置３２内に記憶されているマスターブートレコード及びパーティションブートレコードを、システムバス３４、ＩＯＣ３３及び入出力バス４及び入出力コントロール回路２２を介して読み出す。そして、読み出したマスターブートレコード及びパーティションブートレコードと、ステップＳ７０１で一時記憶したマスターブートレコード及びパーティションブートレコードとが一致するか否か判別する（ステップＳ７０２）。
【０１５７】
ステップＳ７０２において、一致していると判断された場合には、フラッシュメモリ１のブロック１以外のブロックについて、順次ステップＳ３０１〜Ｓ３０７の処理を行う。これによって、フラッシュメモリ１のブロック１（ブート領域）以外のブロックのメモリセルに記憶されたデータを消去する（ステップＳ７０３）。そして、このフローチャートの処理を終了する。
これにより、図４に示したようにフラッシュメモリ１がフォーマットされる。
【０１５８】
一方、ステップＳ７０２における比較結果が不一致である場合には、制御回路２１は、図１０のフローチャートのステップＳ４０１〜Ｓ４０４の処理を行って、フラッシュメモリ１をフォーマットする（ステップＳ７０４）。そして、このフローチャートの処理を終了する。
【０１５９】
以上説明したように、この実施の形態の記憶制御システムによれば、フラッシュメモリ１をフォーマットするとき、ブート領域に書き込まれていたマスターブートレコード及びパーティションブートレコードに変更を加える必要がないときは、ブート領域に書き込まれたデータの消去及びブート領域へのデータの書き込みを行わない。このように、データの読み出しよりも時間がかかるデータの書き込み及び消去の処理を行わなくてよいので、第１の実施の形態の記憶制御システムよりも、さらに高速にフラッシュメモリ１をフォーマットすることができる。
【０１６０】
［第５の実施の形態］
上記の第１〜第４の実施の形態では、ＦＡＴとディレクトリとをデータ領域内の空きクラスタに適宜書き込んだが、ＦＡＴ及びディレクトリを特定のブロックのみに書き込んでもよい。以下、このような構成の第５の実施の形態を説明する。
【０１６１】
この実施の形態において、記憶制御システムの構成及びフラッシュメモリ１のフォーマット構造は、第１の実施の形態の場合と同じである。但し、ＦＡＴ及びディレクトリのデータが書き込まれるクラスタの番号は特定されておらず、代わりに、後述する特定のクラスタグループに属するクラスタに特定の番号が割り当てられている。そして、ＣＰＵ３１は、後述する識別フラグによってＦＡＴ及びディレクトリのデータが書き込まれているクラスタを判断する。
【０１６２】
図１６は、この実施の形態におけるＦＡＴ及びディレクトリのデータを記憶するための特定のクラスタグループを示す図である。
図示するように、特定のクラスタグループは、クラスタグループ１及びクラスタグループ２の２つあり、そのいずれかにＦＡＴ及びディレクトリが書き込まれる。
【０１６３】
ディレクトリ及びＦＡＴの構成については、上記の第１、第２の実施の形態の場合とほぼ同様であるが、ＦＡＴ及びディレクトリが書き込まれている方のクラスタグループの先頭には、図１７に示すように、通常のデータが取り得ない値である「ＦＦｈ」を値とする識別フラグが書き込まれている。一方、ＦＡＴ及びディレクトリが書き込まれていない方のクラスタグループを構成するブロックは、空きブロックとなっている。また、ＦＡＴ領域及びディレクトリ領域の先頭には、それぞれ識別コード（図示せず）が付されている。
【０１６４】
以下、この実施の形態において制御回路２１が行うフラッシュメモリ１のフォーマットの処理について、図１８のフローチャートを参照して説明する。
このフローチャートの処理は、ユーザがコンピュータ３に接続されたキーボードなどの入力装置（図示せず）を操作することによって、ＣＰＵ３１からシステムバス３４、ＩＯＣ３３及び入出力バス４を介して所定のコマンドが入出力コントロール回路２２に投入されることによってスタートする。
【０１６５】
処理がスタートすると、制御回路２１は、まず、図５のステップＳ４０１〜Ｓ４０３と同様の処理を行う（ステップＳ８０１）。次に、ＣＰＵ３１は、初期設定されるＦＡＴ及びディレクトリを記憶するためのクラスタグループ１の先頭のページに、ステップＳ２０１〜Ｓ２１２の処理に従ってＦＦｈのデータを書き込み、このフローチャートの処理を終了する（ステップＳ８０２）。これにより、フラッシュメモリ１がフォーマットされる。
【０１６６】
以下、この実施の形態において制御回路２１が行うフラッシュメモリ１に書き込まれたファイルを削除する処理について、図１９のフローチャートを参照して説明する。
このフローチャートの処理も、ユーザがコンピュータ３に接続されたキーボードなどの入力装置（図示せず）を操作することによって、ＣＰＵ３１からシステムバス３４、ＩＯＣ３３及び入出力バス４を介して所定のコマンドが入出力コントロール回路２２に投入されることによってスタートする。
【０１６７】
処理がスタートすると、制御回路２１は、まず、図６のステップＳ５０１〜Ｓ５０６の処理を行う（ステップＳ９０１）。次に、ＣＰＵ３１は、識別フラグがＦＦｈとなっていないクラスタグループの先頭ページ以降の各ページに、ステップＳ２０１〜Ｓ２１２の動作に従い、更新後のＦＡＴ及びディレクトリの内容を１ページずつ順次書き込む（ステップＳ９０２）。
【０１６８】
次に、ＣＰＵ３１は、ステップＳ３０１〜Ｓ３０６の処理に従って、更新前のディレクトリ及びＦＡＴが記憶されていたクラスタグループの記憶内容を消去する（ステップＳ９０３）。そして、このフローチャートの処理を終了する。
【０１６９】
以下、この実施の形態において制御回路２１が行うフラッシュメモリ１にファイルを書き込む処理について、図２０のフローチャートを参照して説明する。
このフローチャートの処理も、ユーザがコンピュータ３に接続されたキーボードなどの入力装置（図示せず）を操作することによって、ＣＰＵ３１からシステムバス３４、ＩＯＣ３３及び入出力バス４を介して所定のコマンドが入出力コントロール回路２２に投入されることによってスタートする。
【０１７０】
処理がスタートすると、制御回路２１は、まず、図１１のステップＳ６０１〜Ｓ６０７の処理（ただし、ステップＳ６０４の処理において空きクラスタの数が十分でないと判別されたときは、更にＳ６１０の処理）を行う（ステップＳ１００１）。
次に、ＣＰＵ３１は、図１９のステップＳ９０２〜９０３の処理を行う（ステップＳ１００２）。ただし、更新後のＦＡＴ及びディレクトリは、消去対象のファイルを示す情報が削除されたものである代わりに、新たに書き込まれたファイルの情報が追加されたものとなる。
以上で、このフローチャートの処理は終了する。
【０１７１】
以上説明したように、この実施の形態の記憶制御システムでは、ＦＡＴ及びディレクトリのデータの記憶位置をファイルの消去及び書換の度に書き換えなくても、ＦＡＴ及びディレクトリのデータを読み出すことができる。
なお、この実施の形態の記憶制御システムで、クラスタグループを構成するクラスタの数は、２つに限るものではなく、１つ以上の任意個の個数のクラスタでクラスタグループを構成することができる。
【０１７２】
また、この実施の形態の記憶制御システムで、ＦＡＴ及びディレクトリのデータを記憶するための特定の２つのクラスタグループは、必ずしもフラッシュメモリ１内の最初の領域に設ける必要はなく、任意の位置に設けることができる。
【０１７３】
ＣＰＵ３１等が実行するフラッシュメモリ１のフォーマットの処理等を行うためのプログラム（フォーマット用のドライバ）は、フロッピーディスクやＣＤ−ＲＯＭなどの記憶媒体によって提供してもよい。
【０１７４】
【発明の効果】
以上説明したように、この実施の形態のブロック消去型記憶媒体によれば、データの消去及び書き込みを高速に行うことができる。
【０１７５】
また、この実施の形態のプログラム記録媒体に記憶されたプログラムを実行することによって、データの消去及び書き込みを高速に行うことができるようにブロック消去型記憶媒体をフォーマットすることができる。また、この実施の形態のプログラム記録媒体に記憶されたプログラムを実行することによって、データの消去及び書き込みを高速に行うことができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態のフラッシュメモリの記憶制御システムの構成を示すブロック図である。
【図２】フラッシュメモリの構成を模式的に示す図である。
【図３】メモリセルアレイの構成を示す図である。
【図４】本発明の第１の実施の形態のフラッシュメモリのフォーマットにおけるブロックとクラスタとの関係を示す図である。
【図５】本発明の第１の実施の形態におけるディレクトリ、ファイルアロケーションテーブル及びクラスタの対応付けを示す図である。
【図６】アドレス変換テーブルの構成の一例を示す図である。
【図７】本発明の第１の実施の形態におけるデータ読み出しの動作を示すフローチャートである。
【図８】本発明の第１の実施の形態におけるデータ書き込みの動作を示すフローチャートである。
【図９】本発明の第１の実施の形態におけるデータ消去の動作を示すフローチャートである。
【図１０】本発明の第１の実施の形態におけるフラッシュメモリをフォーマットする処理を示すフローチャートである。
【図１１】本発明の第１の実施の形態におけるフラッシュメモリ内のファイルを削除する処理を示すフローチャートである。
【図１２】本発明の第１の実施の形態におけるフラッシュメモリへファイルを書き込む処理を示すフローチャートである。
【図１３】本発明の第２の実施の形態の記憶装置の構成を示すブロック図である。
【図１４】本発明の第３の実施の形態におけるフラッシュメモリのフォーマット図である。
【図１５】本発明の第４の実施の形態におけるフラッシュメモリをフォーマットする処理を示すフローチャートである。
【図１６】本発明の第５の実施の形態におけるファイルアロケーションテーブル及びディレクトリのデータを記憶するための特定のクラスタグループを示す図である。
【図１７】本発明の第５の実施の形態における特定の２つのクラスタグループを図である。
【図１８】本発明の第５の実施の形態におけるフラッシュメモリをフォーマットする処理を示すフローチャートである。
【図１９】本発明の第５の実施の形態におけるフラッシュメモリ内のファイルを削除する処理を示すフローチャートである。
【図２０】本発明の第５の実施の形態におけるフラッシュメモリへファイルを書き込む処理を示すフローチャートである。
【図２１】従来のフラッシュメモリのブロックとクラスタとの関係を示す図である。
【図２２】従来のフラッシュメモリのフォーマットの手順を示すフローチャートである。
【符号の説明】
１      フラッシュメモリ
１１    メモリセルアレー
１２    アドレスレジスタ
１３    カラムデコーダ
１４    ローアドレスデコーダ
１５    電圧変換回路
１６    高電圧発生回路
２      記憶制御装置
２１    制御回路
２２    入出力コントロール回路
２３    動作ロジックコントロール回路
２４    コマンドレジスタ
２５    データレジスタ
３      コンピュータ
３１    ＣＰＵ（中央処理装置）
３２    主記憶装置
３３    ＩＯＣ（入出力制御装置）
３４    システムバス
４      入出力バス
【図１】
0003588231.tif 000002
【図２】
0003588231.tif 000003
【図３】
0003588231.tif 000004
【図４】
0003588231.tif 000005
【図５】
0003588231.tif 000006
【図６】
0003588231.tif 000007
【図７】
0003588231.tif 000008
【図８】
0003588231.tif 000009
【図９】
0003588231.tif 000010
【図１０】
0003588231.tif 000011
【図１１】
0003588231.tif 000012
【図１２】
0003588231.tif 000013
【図１３】
0003588231.tif 000014
【図１４】
0003588231.tif 000015
【図１５】
0003588231.tif 000016
【図１６】
0003588231.tif 000017
【図１７】
0003588231.tif 000018
【図１８】
0003588231.tif 000019
【図１９】
0003588231.tif 000020
【図２０】
0003588231.tif 000021
【図２１】
0003588231.tif 000022
【図２２】
0003588231.tif 000023