(57)【特許請求の範囲】
【請求項１】
複数のセクタから構成されるクラスタを単位として、ファイルデータを分割・管理するホストシステムから論理アドレスによってアクセスされる半導体記憶装置であって、
物理アドレスによってアクセス可能で、セクタを単位としてファイルデータを管理し、複数のセクタから構成されるブロック単位の消去を行ってデータの書き込みを行う記憶媒体と、
前記記憶媒体に対するデータの読み書きを制御するＣＰＵと、
前記クラスタの先頭セクタの論理アドレスを前記ブロックの先頭セクタの物理アドレスに対応させるためのアドレスオフセット値を格納するアドレスオフセット格納手段と、を備え、
前記記憶媒体は、
当該記憶媒体上に作成される一以上のパーティション毎の論理アドレス範囲と、前記論理アドレス範囲内に作成されるファイルシステムの種類と、を有するパーティションに関する情報を格納する領域を有し、
前記ＣＰＵは、
前記パーティションに関する情報を参照し、前記論理アドレス範囲内に作成されるファイルシステムにおける前記クラスタの先頭セクタの論理アドレスと、等しい値を持つ物理アドレスが前記ブロックの先頭に対応していない場合、それ以降のブロックの先頭セクタの物理アドレス値からその論理アドレス値を減算して、アドレスオフセット値を算出し、算出したアドレスオフセット値を前記アドレスオフセット格納手段に格納し、
前記ファイルデータへのアクセス時、前記論理アドレスに前記アドレスオフセット格納手段に格納されているアドレスオフセット値を加算することによって、当該論理アドレスを前記物理アドレスに変換すること、
を特徴とする半導体記憶装置。
【請求項２】
前記アドレスオフセット値の算出を、前記パーティションに関する情報が所定の論理アドレスに書き込まれる際に行うことを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
前記パーティションに関する情報は、前記論理アドレス０番地に書き込まれるデータであることを特徴とする請求項２に記載の半導体記憶装置。
【請求項４】
前記パーティションに関する情報は、マスターブートレコード（ＭＢＲ）に含まれる情報であることを特徴とする請求項１、２および３のいずれか一項に記載の半導体記憶装置。
【請求項５】
複数のセクタから構成されるクラスタを単位として、ファイルデータを分割・管理するホストシステムから論理アドレスによってアクセスされる半導体記憶装置であって、
物理アドレスによってアクセス可能で、セクタを単位としてファイルデータを管理し、複数のセクタから構成されるブロック単位の消去を行ってデータの書き込みを行う記憶媒体と、
前記記憶媒体に対するデータの読み書きを制御するＣＰＵと、
前記クラスタの先頭セクタの論理アドレスを前記ブロックの先頭セクタの物理アドレスに対応させるためのアドレスオフセット値を格納するアドレスオフセット格納手段と、を備え、
前記記憶媒体上に作成されるパーティションの論理アドレス範囲内に作成されるファイルシステムは、当該ファイルシステムを構成する一以上の領域毎の論理アドレス範囲を有する管理情報を格納する領域を有し、
前記ＣＰＵは、
前記管理情報を参照し、当該ファイルシステムにおける前記クラスタの先頭セクタの論理アドレスと、等しい値を持つ物理アドレスが前記ブロックの先頭に対応していない場合、それ以降のブロックの先頭セクタの物理アドレス値からその論理アドレス値を減算して、アドレスオフセット値を算出し、算出したアドレスオフセット値を前記アドレスオフセット格納手段に格納し、
前記ファイルデータへのアクセス時、前記論理アドレスに前記アドレスオフセット格納手段に格納されているアドレスオフセット値を加算することによって、当該論理アドレスを前記物理アドレスに変換すること、
を特徴とする半導体記憶装置。
【請求項６】
前記アドレスオフセット値の算出を、前記管理情報が前記パーティション内の所定の論理アドレスに書き込まれる際に行うことを特徴とする請求項５に記載の半導体記憶装置。
【請求項７】
前記所定の論理アドレスは、前記パーティション内の先頭論理アドレスであることを特徴とする請求項６に記載の半導体記憶装置。
【請求項８】
前記管理情報は、パーティションブートレコード（ＰＢＲ）に含まれる情報であることを特徴とする請求項５、６および７のいずれか一項に記載の半導体記憶装置。
【請求項９】
前記アドレスオフセット格納手段は、前記記憶媒体上に設けられることを特徴とする請求項１〜８のいずれか一項に記載の半導体記憶装置。
【請求項１０】
請求項１〜９のいずれか一項に記載の半導体記憶装置を備えたことを特徴とする情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体記憶装置に関し、特に、データを書き込む際に、所定のブロック単位での消去が必要な記憶媒体を利用した半導体記憶装置に関する。
【０００２】
【従来の技術】
携帯端末等の外部記憶装置として、半導体メモリを搭載した半導体記憶装置が急速に普及している。このような半導体記憶装置では、半導体メモリとしては、通常、電気的に一括消去と書き換えが可能で、不揮発性であり、消費電力が低く、大容量のデータを格納できるフラッシュメモリが用いられている。
【０００３】
このようなフラッシュメモリでは、近年の大容量化の要求にともなって、１セルに１ビットのデータを蓄える２値構造のフラッシュメモリに代わって、１セルに２ビット以上のデータを蓄えることのできる多値構造のフラッシュメモリが導入されている。
【０００４】
このような多値構造のフラッシュメモリでは、１セルに２ビット以上のデータを蓄えることができるので、単位面積当たりの記憶容量が増加するが、多値構造のセルは、２値構造のセルよりも消去や書き込みの処理時間が長くかかるため、一括消去・書き込みの単位ブロック（以下、消去ブロックという）のサイズが同じである限り、書き込み処理性能が低下してしまう。
【０００５】
そこで、消去ブロックのサイズを拡張するという対策がなされている。これにより、一定量のデータの書き込みにおいて、同時に一括して消去・書き込みをおこなう回数（消去ブロック数）を減らすことができるため、処理性能の低下を防ぐことができる。
【０００６】
また、消去ブロックが細分化され、消去ブロックの数が増えると、その分、周辺回路も必要となり、全体としてのチップ面積が拡大してしまい製造の歩留まりを悪化させるが、消去ブロックのサイズを拡張し、ブロックの数を減らすことにより面積の拡大が抑えられ、歩留まりを向上させることもできる。
【０００７】
一方、ホストシステムがこのような外部記憶装置に対して、ファイルデータを読み出したり書き込んだりするときには、一般に、ハードディスク装置等と同様に、セクタをそのアクセス単位としている。１セクタのサイズは、例えば、５１２バイトである。
【０００８】
２値構造のフラッシュメモリを搭載した半導体記憶装置では、一般に、このセクタの大きさと消去ブロックの大きさを一致させていた。一方、多値構造のフラッシュメモリを搭載した半導体記憶装置では、前述したように消去ブロックのサイズを拡大して、このセクタを複数まとめたものを消去ブロックとしている。これにより、ホストシステムが半導体記憶装置に対して、複数セクタを一括して書き込むコマンドを送った場合、複数セクタのデータを同時に一括して消去したり書き込んだりすることが可能になり、２値構造のフラッシュメモリを搭載した半導体記憶装置に比べて処理時間を短縮することができる。
【０００９】
また、フラッシュメモリを搭載した半導体記憶装置を用いる場合、ホストシステムは、ハードディスク装置等のファイル管理方式として最も一般的なＦＡＴ（File Allocation Table）ファイルシステムという方式によってファイルデータ管理を行うことが多い。
【００１０】
ＦＡＴファイルシステムが構築されたパーティション（以下、ＦＡＴパーティションという）は、管理データを格納するための領域である管理データ領域（ＰＢＲ領域やＦＡＴ領域等）と、ファイルデータを格納するための領域であるＦＡＴファイル領域とを有し、このうちＦＡＴファイル領域は、一般に、４、８、１６、３２などの複数個のセクタから構成されるクラスタを単位として管理される。
【００１１】
ホストシステムがＦＡＴファイル領域にファイルデータを格納する状況においては、このクラスタを単位とする書き込みが頻繁におこなわれている。多値構造のフラッシュメモリでは、通常、消去ブロックを構成するセクタの数Ｋ（Ｋは２以上の整数）を、クラスタを構成するセクタの数Ｊを割り切れるような数に設定している。すなわち、クラスタを構成するセクタ数Ｊは、Ｋ×Ｌ個（Ｌは正整数）となる。
【００１２】
【発明が解決しようとする課題】
ホストシステムが、複数のセクタで構成される消去ブロックを有するフラッシュメモリを搭載した半導体記憶装置を、ＦＡＴファイルシステムでファイルデータを管理するため、ＦＡＴパーティションをフラッシュメモリ上に割り付ける場合を考える。
【００１３】
従来のフラッシュメモリを搭載した半導体記憶装置においては、ホストシステムがセクタの番号を管理するときに用いる論理アドレスを、フラッシュメモリの同じ値の物理アドレスに割り当てていた。
【００１４】
このような割り当てを行った場合、ＦＡＴファイル領域におけるクラスタと消去ブロックの対応関係としては、次の２つの場合が考えられる。
【００１５】
ケース１は、クラスタの先頭セクタの論理アドレスと、消去ブロックの先頭セクタの物理アドレスとが対応している場合であり、ケース２は、クラスタの先頭セクタの論理アドレスと消去ブロックの先頭セクタの物理アドレスとが対応していない場合である。
【００１６】
例えば、消去ブロックが４セクタから構成され（Ｋ＝４）、クラスタが８セクタから構成される場合（Ｊ＝８，Ｌ＝２）、ケース１では、１クラスタは、連続する２個のブロックに含まれる８個のセクタで過不足なく構成されるが、ケース２では、クラスタの先頭と消去ブロックの先頭がずれているため、１クラスタは、連続する３個の消去ブロックに含まれる１２個のセクタのうち、中間の８個のセクタで構成されることになる。
【００１７】
つまり、ケース２の場合、互いに隣接するクラスタ（以下、クラスタＡ、Ｂという）は、一つの消去ブロック（以下、ブロックＭという）を共有していることになる。
【００１８】
ここで、ブロックＭを構成する４個のセクタのうち、クラスタＡに含まれるセクタ部分をセクタ部分Ｘ、クラスタＢに含まれるセクタ部分をセクタ部分Ｙとする。いま、ホストシステムがクラスタＡにデータを書き込むと、セクタ部分Ｙのデータは書き換える必要が無いにもかかわらず、ブロックＭとして一括して消去されて、もとのデータが再び書き込まれる。また、クラスタＢにデータを書き込むときについても、セクタ部分Ｘのデータは書き換える必要が無いにもかかわらず、ブロックＭとして一括して消去されて、もとのデータが再び書き込まれる。
【００１９】
従って、ＦＡＴファイル領域の各クラスタが平均的に書き込まれた場合を考えると、ブロックＭのように互いに隣接するクラスタに共有されている消去ブロックの消去・書き込み回数は、単一のクラスタに含まれている消去ブロック（以下、ブロックＮという）の消去・書き込み回数の２倍必要になり、ブロックＭの記憶素子の寿命をブロックＮに比べ確率的に半減させてしまうことになる。
【００２０】
さらに、ケース１では１クラスタを書き込むのに２個の消去ブロックの消去と書き込みが必要になるが、ケース２では１クラスタを書き込むのに３個の消去ブロックの消去と書き込みが必要になる。したがって、ケース１に比べて、書き込み処理速度についても遅くなる。
【００２１】
本発明の目的は、各ブロックの消去回数や１回の書き込みで消去するブロックの数を必要最低限に抑えることができる半導体記憶装置を提供することにある。
【００２２】
【課題を解決するための手段】
本発明に係る半導体記憶装置は、複数のセクタから構成されるクラスタを単位として、ファイルデータを分割・管理するホストシステムから論理アドレスによってアクセスされる半導体記憶装置であって、物理アドレスによってアクセス可能で、セクタを単位としてファイルデータを管理し、複数のセクタから構成されるブロック単位の消去を行ってデータの書き込みを行う記憶媒体を備え、前記クラスタの先頭セクタの論理アドレスが前記ブロックの先頭セクタの物理アドレスに対応するよう、前記論理アドレスを前記物理アドレスに変換することを特徴とする。
【００２３】
この場合に、論理アドレスに、アドレスオフセット値を適用することによって、前記論理アドレスを前記物理アドレスに変換するようにしてもよい。
【００２４】
前記アドレスオフセット値の算出は、電源投入直後に、前記記憶媒体の総記憶容量情報を利用して行うようにしてもよい。
【００２５】
また、前記記憶媒体上に作成されるパーティションに関する情報を利用して、前記パーティションに関する情報が書き込まれる際におこなうようにしてもよい。前記パーティションに関する情報は、例えば、前記論理アドレス０番地に書き込まれるデータである。
【００２６】
また、前記アドレスオフセット値の算出を、前記記憶媒体上に作成されるファイルシステムにおいて、前記ファイルデータを管理するのに用いられる管理情報を利用して、前記管理情報の書き込み時におこなうようにしてもよい。
【００２７】
前記管理情報は、例えば、前記ファイルシステムの管理データ領域が占める論理アドレス範囲に書き込まれるデータであり、例えば、ファイルシステムがＦＡＴファイルシステムの場合は、ＰＢＲ（パーティションブートレコード）のデータである。
【００２８】
本発明に係る情報処理装置は、以上のような半導体記憶装置を備えたことを特徴とする。
【００２９】
本発明に係るホストシステムは、複数のセクタから構成されるクラスタを単位として、ファイルデータを分割・管理するホストシステムであって、物理アドレスによってアクセス可能で、セクタを単位としてファイルデータを管理し、複数のセクタから構成されるブロック単位の消去を行ってデータの書き込みを行う記憶媒体に対してアクセスする際に、前記クラスタの先頭セクタの論理アドレスが前記ブロックの先頭セクタの物理アドレスに対応するよう、前記論理アドレスを前記物理アドレスに変換することを特徴とする。
【００３０】
【発明の実施の形態】
以下、本発明の実施形態について図面を参照しつつ詳細に説明する。
【００３１】
《第１実施形態》
図１は、本発明による半導体記憶装置のブロック図である。
【００３２】
同図に示すように、本発明による半導体記憶装置１００は、ホストインターフェース３と、ＣＰＵ６と、プログラムＲＯＭ８と、アドレスオフセット格納手段１０と、バッファメモリ１２と、メモリインターフェース１５と、フラッシュメモリ１７とを備える。
【００３３】
また、半導体記憶装置１００は、バス２を介して、パーソナルコンピュータなどのホストシステム１と接続され、ホストシステム１からのコマンドを受けたり、ホストシステム１との間でデータのやり取りをおこなう。
【００３４】
バス２は、ホストシステム１が半導体記憶装置１００にアクセスする際に利用するバスであり、例えば、ホストシステム１のローカルバスや、パーソナルコンピュータの標準バス（ＩＤＥバス、ＩＳＡバス、ＰＣＩバス、ＳＣＳＩバス、ＰＣカードバス等）である。
【００３５】
ホストインターフェース３は、バス２を通して送られたデータをバッファメモリ１２に転送したり、バッファメモリ１２が保持するデータをバス２に転送するハードウェアである。
【００３６】
バッファメモリ１２は、フラッシュメモリ１７から読み出したデータやフラッシュメモリ１７に書き込むデータを一時的に保持する記憶手段であり、例えば、スタティックＲＡＭ（Ramdom Access Memory）で構成される。
【００３７】
メモリインターフェース１５は、フラッシュメモリ１７から読み出したデータをバッファメモリ１２に転送したり、バッファメモリ１２が保持するデータをフラッシュメモリ１７に書き込むハードウェアである。
【００３８】
ＣＰＵ（Central Processing Unit）６は、プログラムＲＯＭ（Read Only Memory）８に格納されたプログラムを読み出し、そのプログラムに従って所定の動作を行う。例えば、ＣＰＵ６は、ホストインターフェース３を介して受け取ったホストシステム１のコマンドやステータスを解釈し、コマンドに従って、ホストインターフェース３やメモリインターフェース１５の機能を制御する。また、ＣＰＵ６は、バッファメモリ１２が保持しているデータの読み出しや書き換えをおこなう。
【００３９】
また、ＣＰＵ６は、アドレスオフセット格納手段１０に格納されたアドレスオフセット値を使って、ホストシステム１が指定した論理アドレスを、フラッシュメモリ１７をアクセスするための物理アドレスに変換する。アドレスオフセット値の算出方法及び論理アドレスから物理アドレスへのアドレス変換方法については後述する。
【００４０】
アドレスオフセット格納手段１０は、論理アドレスを物理アドレスに変換するときに使われるアドレスオフセット値を格納する記憶手段であり、不揮発性または揮発性の記憶素子で構成される。なお、アドレスオフセット格納手段１０は、独立した記憶手段を設けるようにしてもよいし、他の記憶手段（例えば、フラッシュメモリ１７）の一部を利用して構成するようにしてもよい。
【００４１】
フラッシュメモリ１７は、半導体記憶装置１００においてファイルデータなどを格納する記憶手段である。
【００４２】
図２は、フラッシュメモリ１７の構成を示す図である。
【００４３】
同図に示すように、フラッシュメモリ１７は、フラッシュメモリアレイ１８とデータレジスタ１９とを備える。
【００４４】
フラッシュメモリアレイ１８は、データを格納する領域であり、複数の（消去）ブロック２０の集合として構成される。
【００４５】
データレジスタ１９は、任意のブロック２０からデータを読み出したり、任意のブロック２０にデータを格納するために、一時的にデータを保持する記憶手段である。
【００４６】
同図に示すフラッシュメモリ１７において、指定された物理アドレスに対するセクタデータの書き込みは、次のようにして行われる。まず、書き込み対象セクタが含まれるブロックの全データをデータレジスタ１９へ転送する。その後、フラッシュメモリアレイ１８上のそのブロックの全データを消去する。消去によりそのブロックのビットデータは、消去状態（例えば、すべて‘１’）になる。図２の２１は、消去状態のブロックを示している。
【００４７】
次に、データレジスタ１９に保持したデータのうち、書き込み対象となるセクタ部分のデータを書き換え、データレジスタ１９のデータ全体をブロック２１に書き込む。同図の例では、書き込みは、データレジスタ１９内の‘０’であるビットデータに対応するブロック２１のビットデータを‘１’から‘０’へ反転させることによっておこなう。
【００４８】
図３は、フラッシュメモリアレイ１８の構成を表した図である。同図に示すように、フラッシュメモリアレイ１８は、複数のブロック２０から構成され、各ブロック２０は、それぞれ４個のセクタ２２から構成される。なお、各ブロックは、２個以上のセクタであれば何個のセクタから構成されていてもよい。
【００４９】
セクタ２２は、ホストシステム１が半導体記憶装置１００に対してデータの読み出しや書き込みをおこなう際のデータ単位であり、その大きさは、例えば、５１２バイトである。
【００５０】
フラッシュメモリアレイ１８を構成する各セクタ２２には、０ｈから昇順に通し番号がつけられており、そのセクタ番号を物理アドレスと呼ぶ。
【００５１】
ホストシステム１が半導体記憶装置１００に対してセクタを単位とするデータの読み出しや書き込みをおこなう際、ホストシステム１が管理するセクタ番号を論理アドレスと呼び、０ｈを開始点とする。ホストシステム１は、論理アドレスを指定して、半導体記憶装置１００に対するデータの読み書きを行う。
【００５２】
次に、ホストシステム１からデータの書き込みが指示された場合の半導体記憶装置１００の動作について説明する。
【００５３】
ホストシステム１から半導体記憶装置１００に、指定された論理アドレスへのデータの書き込みを要求するコマンドが送られると、ＣＰＵ６は、ホストインターフェース３を通してその論理アドレスを取得し、それを物理アドレスに変換する。
【００５４】
すなわち、ＣＰＵ６は、アドレスオフセット格納手段１０に格納されたアドレスオフセット値を読み出し、それを論理アドレス値に加算することによって、物理アドレスを生成する。
【００５５】
ホストシステムから転送された書き込みデータは、ホストインターフェース３を通してバッファメモリ１２に保持される。ＣＰＵ６は、バッファメモリ１２内のデータをアドレス変換後の物理アドレスに書き込むようにメモリインターフェース１５を制御し、そのデータをフラッシュメモリ１７の指定された物理アドレスに書き込む。
【００５６】
次に、アドレス変換に使われるアドレスオフセット値の算出方法について説明する。
【００５７】
そのために、まず、半導体記憶装置１００に作成されるファイルシステムについて説明する。ホストシステム１が、フラッシュメモリ１７のフラッシュメモリアレイ１８上でファイルデータを管理する方式をファイルシステムと呼ぶ。ファイルシステムは、フラッシュメモリアレイ１８上に複数作成することができ、ある一つのファイルシステムを置くための論理アドレス範囲をパーティションと呼ぶ。
【００５８】
ここでは、ファイルシステムとしてＦＡＴファイルシステムを採用した場合について説明する。
【００５９】
図４は、ＦＡＴファイルシステムの構成を示す図である。同図は、ＦＡＴパーティション２５がフラッシュメモリアレイ１８上に一つ作成されている例を示したものである。ＦＡＴパーティション２５は、ＦＡＴファイルシステムが占有するパーティションである。
【００６０】
同図の例では、ＦＡＴパーティション２５の論理アドレス範囲は、２０ｈから１Ｅ７Ｆｈまでになっている。ＦＡＴパーティション２５は、ＰＢＲ２６と、ＦＡＴ領域Ｉ２７と、ＦＡＴ領域II２８と、ルートディレクトリ領域２９と、ＦＡＴファイル領域３０とから構成される。
【００６１】
ＰＢＲ（パーティションブートレコード）２６は、ＦＡＴパーティション２５の先頭論理アドレスに格納されたデータである。図４の例では、ＰＢＲ２６の論理アドレスは、２０ｈである。ＰＢＲ２６には、ＦＡＴパーティション２５のＦＡＴ領域Ｉ２７、ＦＡＴ領域II２８、ルートディレクトリ領域２９、ＦＡＴファイル領域３０の各論理アドレス範囲を知ることができる情報が含まれる。
【００６２】
ＦＡＴファイル領域３０は、ファイルデータを格納するための領域である。図４の例では、ＦＡＴファイル領域３０の論理アドレス範囲は、４７ｈから１Ｅ７Ｆｈになっている。
【００６３】
ホストシステム１は、ＦＡＴファイル領域３０をクラスタ３１を単位として管理し、ファイルデータを書き込むときは、クラスタ３１を単位として書き込む。
【００６４】
ここでは、各クラスタ３１は、８個のセクタ２２から構成されるものとする。なお、クラスタ３１を構成するセクタ２２の数は、ブロック２０を構成するセクタ２２の数の自然数倍であればいくつでもよい。
【００６５】
ＦＡＴ領域Ｉ２７は、各クラスタ３１の使用状況を示すテーブルデータを格納する領域である。図４の例では、ＦＡＴ領域Ｉ２７の論理アドレス範囲は、２１ｈから２３ｈになっている。
【００６６】
ＦＡＴ領域II２８は、ＦＡＴ領域Ｉ２７のデータのコピーを格納する領域である。図４の例では、その論理アドレス範囲は、２４ｈから２６ｈになっている。
【００６７】
ルートディレクトリ領域２９は、このＦＡＴパーティション２５のルートディレクトリにあるファイルやサブディレクトリの情報を示すデータを格納する領域である。図４の例では、その論理アドレス範囲は、２７ｈから４６ｈになっている。
【００６８】
ホストシステム１は、半導体記憶装置１００上にファイルシステムを作成する場合、まず、フラッシュメモリアレイ１８上で空いている（他のパーティションが割り当てられていない）論理アドレス範囲にパーティションを割り当てる。そして、そのパーティションをフォーマットする。フォーマットとは、パーティション上にＰＢＲ２６、ＦＡＴ領域Ｉ２７、ＦＡＴ領域II２８、ルートディレクトリ領域２９の論理アドレス範囲を割り当て、それらの領域にファイルデータを管理するための初期化データを書き込むことをいう。
【００６９】
ＭＢＲ（マスターブートレコード）２３は、論理アドレス０ｈに格納されたデータである。ＭＢＲ２３は、ホストシステム１がファイルデータを格納することができる論理アドレス範囲において、そこに存在する各ファイルシステムの種類や各パーティションの論理アドレス範囲を示す情報を含む。ホストシステム１は、パーティションの割り当て、パーティションのフォーマット、既存のパーティションの削除などをおこなうとき、このＭＢＲ２３のデータ書き換えをおこなう。
【００７０】
このようなＦＡＴファイルシステムが半導体記憶装置１００に作成される場合、ＣＰＵ６は、次の条件を満足するようなアドレスオフセット値を算出する。すなわち、そのアドレスオフセット値を加算すると、ＦＡＴファイル領域３０の先頭論理アドレスが、あるブロック２０の先頭セクタの物理アドレスに対応するようになるようなアドレスオフセット値である。このような条件を満足するアドレスオフセット値を算出することにより、ＦＡＴファイル領域３０を構成する各クラスタ３１の先頭セクタの論理アドレスの変換先は、必ずブロック２０の先頭セクタの物理アドレスとなる。
【００７１】
図５は、上記条件下におけるＦＡＴファイル領域３０のクラスタ３１とフラッシュメモリ１７のブロック２０の対応状態を表した図である。同図は、ブロック２０が４セクタから構成され、クラスタ３１が８セクタから構成されている場合について示しており、各クラスタ３１はちょうど２個のブロック２０から構成される。
【００７２】
これにより、クラスタ単位の書き込みにおいて書き込むクラスタに含まれないセクタを消去することがなくなる。従って、前述の記憶素子の寿命低下の問題を解決し、さらに、クラスタ当たりの書き込みブロック数が最小となり、処理時間が短縮されるという効果をもたらす。
【００７３】
次に、アドレスオフセット値の算出を行うアドレスオフセット設定処理の詳細について説明する。図６は、その処理の流れを表した図である。
【００７４】
半導体記憶装置１００の電源を投入すると（Ｓ３２）、ＣＰＵ６は、まずフラッシュメモリ１７を構成するメモリチップの個数と各メモリチップの容量を調査する（Ｓ３３）。本調査は、例えば、各メモリチップから容量情報等を読みとることで行う。
【００７５】
そして、フラッシュメモリ１７でファイルシステムを作成することができる総メモリ容量を算出する（Ｓ３４）。次に、算出した容量全体を用いて１つのＦＡＴパーティション２５を作成した場合にＰＢＲ２６、ＦＡＴ領域Ｉ２７、ＦＡＴ領域II２８、ルートディレクトリ領域２９が占める論理アドレス範囲を算出し、ＦＡＴファイル領域３０が開始する論理アドレス値を計算する（Ｓ３５）。
【００７６】
そして、その論理アドレス値に等しい値を物理アドレスとするセクタがブロックの先頭アドレスであるか否かを判別し、ブロックの先頭アドレスでない場合は、それ以降のブロックの先頭セクタの物理アドレス値からその論理アドレス値を減算して、アドレスオフセット値を算出し（Ｓ３６）、算出したアドレスオフセット値をアドレスオフセット格納手段１０に格納する（Ｓ３７）。
【００７７】
そして、これ以後、ＣＰＵ６は、ホストシステム１が指定した論理アドレスについては、アドレスオフセット格納手段１０に格納されたこのアドレスオフセット値を加算した値の物理アドレスに変換してフラッシュメモリ１７に対するアクセスを行う。
【００７８】
図７は、ホストシステム１が全フラッシュメモリ領域を１パーティションに割り当て、これをＦＡＴでフォーマットした場合に、ＭＢＲ２３やＦＡＴパーティションの各領域２６〜３０や各クラスタ３１の先頭セクタの論理アドレスが物理アドレスとどのように対応づけられるかの例を表している図である。
【００７９】
この場合、ブロック２０は４セクタから構成されるため、４の倍数を物理アドレスとするセクタはブロック２０の先頭セクタになる。ＦＡＴファイル領域３０の先頭論理アドレス４７ｈに等しい値を物理アドレスとするセクタはブロック２０の先頭アドレスでないので、例えば、その次のブロック２０の先頭セクタの物理アドレス値４８ｈから４７ｈを減算した１がアドレスオフセット値となる。
【００８０】
論理アドレスにアドレスオフセット値の１を加算することによって、ＦＡＴファイル領域３０を構成する各クラスタ３１の先頭論理アドレスは、ブロック２０の先頭セクタの物理アドレスに対応するように変換されるので、上記のアドレスオフセット値の条件が満たされる。なお、ここでは、論理アドレス範囲全体についてアドレスオフセット値を適用しているが、少なくとも、ＦＡＴファイル領域３０が占める論理アドレス範囲にアドレスオフセット値が適用されていれば、どのような範囲にアドレスオフセット値を適用してもよい。
【００８１】
《第２実施形態》
次に、アドレスオフセット設定処理の別の実施形態について説明する。図８は、第２の実施形態におけるアドレスオフセット設定処理の流れを表した図である。本実施形態は、ＭＢＲ２３にデータが書き込まれた際に、そのデータを使って、アドレスオフセット値を算出するものである。
【００８２】
ホストシステム１は、フラッシュメモリアレイ１８上に新しくパーティションを作成すると（Ｓ３８）、そのパーティションの論理アドレス範囲の情報を含むデータを論理アドレス０ｈのＭＢＲ２３に書き込む。すなわち、論理アドレス０ｈにデータを書き込むコマンドを送る（Ｓ３９）。
【００８３】
ＣＰＵ６は、論理アドレス０ｈに対するデータの書き込みが指示されると、バッファメモリ１２に保持されているデータをフラッシュメモリ１７の物理アドレス０ｈに書き込むと共に、そのデータを読み出して解析し、新しく作成されるパーティションの論理アドレス範囲を知る（Ｓ４０）。そして、このパーティションがＦＡＴでフォーマットされた場合にＰＢＲ２６、ＦＡＴ領域Ｉ２７、ＦＡＴ領域II２８、ルートディレクトリ領域２９が占める論理アドレス範囲を算出し、ＦＡＴファイル領域３０が開始する論理アドレス値を計算する（Ｓ４１）。
【００８４】
そして、その論理アドレス値と等しい値を持つ物理アドレスがブロックの先頭に対応していない場合は、それ以降のブロックの先頭セクタの物理アドレス値からその論理アドレス値を減算して、アドレスオフセット値を算出し（Ｓ４２）、算出したアドレスオフセット値をアドレスオフセット格納手段１０に格納する（Ｓ４３）。
【００８５】
これ以後、ＣＰＵ６は、ＦＡＴパーティション２５が占める範囲内の論理アドレスについては、アドレスオフセット格納手段１０に格納されたアドレスオフセット値を加算した値の物理アドレスに変換して、フラッシュメモリ１７に対するアクセスを行う。
【００８６】
図９は、ＭＢＲ２３やＦＡＴパーティションの各領域２６〜３０や各クラスタ３１の先頭セクタの論理アドレスと物理アドレスとの対応づけの例を示す図である。
【００８７】
同図に示すように、ＭＢＲ２３にアドレスオフセット値が加算されていないことを除けば、図７と同じである。なお、アドレスオフセットを適用する範囲は、少なくとも、ＦＡＴファイル領域３０が占める論理アドレス範囲にアドレスオフセット値が適用されていれば、どのような範囲にアドレスオフセット値を適用するようにしてもよい。例えば、図７と同様に、ＭＢＲ２３のデータを物理アドレス１ｈに書き込むようにしてもよい。
【００８８】
《第３実施形態》
次に、アドレスオフセット設定処理の更に別の実施形態について説明する。図１０は、第３の実施形態におけるアドレスオフセット設定処理の流れを表した図である。本実施形態は、パーティションをフォーマットする際に、ＰＢＲデータを使ってアドレスオフセット値を算出するものである。
【００８９】
ホストシステムが、フラッシュメモリアレイ１８上のパーティションをＦＡＴでフォーマットする場合（Ｓ４４）、そのＦＡＴパーティションの各領域の論理アドレス範囲の情報を含むデータをパーティションの先頭論理アドレスにあるＰＢＲ２６に書き込む（Ｓ４５）。
【００９０】
ホストシステムからある論理アドレスにデータを書き込むコマンドが送られると、ＣＰＵ６は、その論理アドレスがそのパーティションの先頭論理アドレスであるか否かを調べる。その結果、書き込み対象の論理アドレスがパーティションの先頭論理アドレスであるならば、バッファメモリ１２が保持しているデータを読み出して解析し、そのデータがＦＡＴファイルシステムのＰＢＲ２６に相当するデータであるかを調べる（Ｓ４６）。
【００９１】
これにより、そのパーティションがＦＡＴでフォーマットされていることを検出すると、ＣＰＵ６は、バッファメモリ１２が保持しているＰＢＲデータを、パーティションの先頭論理アドレス値に等しい値の物理アドレスに書き込むとともに、そのデータからこのＦＡＴパーティション２５を構成するＦＡＴ領域Ｉ２７、ＦＡＴ領域II２８、ルートディレクトリ領域２９が占める論理アドレス範囲を計算し、ＦＡＴファイル領域３０が開始する論理アドレス値を算出する（Ｓ４７）。
【００９２】
そして、算出した論理アドレス値に等しい値を持つ物理アドレスがブロックの先頭アドレスでないならば、それ以降のブロックの先頭セクタの物理アドレス値からその論理アドレス値を減算し、アドレスオフセット値を算出し（Ｓ４８）、算出されたアドレスオフセット値をアドレスオフセット格納手段１０に格納する（Ｓ４９）。
【００９３】
これ以後、ＣＰＵ６は、ＦＡＴファイル領域３０が占める範囲内の論理アドレスについては、アドレスオフセット格納手段１０に格納されたアドレスオフセット値を加算した値の物理アドレスに変換して、フラッシュメモリ１７に対するアクセスを行う。
【００９４】
図１１は、ＭＢＲ２３やＦＡＴパーティションの各領域２６〜３０や各クラスタ３１の先頭セクタの論理アドレスと物理アドレスとの対応づけの例を示す図である。
【００９５】
同図に示すように、この場合は、ＦＡＴファイル領域３０が占める論理アドレス範囲についてのみアドレスオフセット値を適用している。なお、他の範囲、例えば、図９に示すように、ＰＢＲ領域２６以降の領域にアドレスオフセット値を適用するようにしてもよい。
【００９６】
以上説明した実施形態では、半導体記憶装置１００内のＣＰＵ６がアドレスオフセット値の算出や、アドレス変換等を行っていたが、これらの機能の一部または全てを半導体記憶装置外部のＣＰＵが行うようにしてもよい。
【００９７】
図１２は、ホストシステムにおいてアドレス変換等を行う場合のホストシステム及び半導体記憶装置の構成を示す図である。
【００９８】
同図に示すように、ホストシステム１ａは、ホストＣＰＵ５０と、アドレスオフセット格納手段１０と、バッファメモリ１２とを備える。
【００９９】
一方、半導体記憶装置１００ａには、メモリインタフェース１５と、フラッシュメモリ１７が搭載されている。なお、半導体記憶装置１００ａ内に、バッファメモリ１２等を設けるようにしてもよい。
【０１００】
ホストシステムのＣＰＵ５０は、上記のＣＰＵ６と同様の処理を行い、アドレス変換後の物理アドレスを使って、半導体記憶装置１００ａ内のフラッシュメモリ１７にアクセスをする。これにより、半導体記憶装置１００ａにおいても、前述した半導体記憶装置１００と同様の効果を得ることができる。
【０１０１】
以上の説明では、ファイルデータ管理方式としてＦＡＴファイルシステムについて説明したが、本発明は、クラスタ等のファイルデータ領域の割り当て単位の先頭と、フラッシュメモリの一括消去・書き込みブロックの先頭とが一致しない場合が発生し、管理データを利用してファイルデータ領域の占める論理アドレスが算出できるファイルデータ管理方式であれば、他のファイルシステムについても適用することは可能である。
【０１０２】
また、本発明による半導体記憶装置を構成する記憶媒体は、フラッシュメモリに限られず、データを書き込む際に、２個以上のセクタから構成されるブロックを単位とする消去を行う記憶媒体であればよい。
【０１０３】
【発明の効果】
以上詳細に説明したように、本発明によれば、複数のセクタから構成されるブロックを消去・書き込みの単位とする記憶媒体を搭載した半導体記憶装置に対して、ホストシステムが、複数のブロックから構成されるクラスタ単位でファイルデータの書き込みを行う場合であっても、各ブロックの消去回数を必要最低限に抑えることができ、ブロックの寿命低下を防止することができる。また、１回の書き込みに対して、一括して消去・書き込みするブロック数を必要最低限に抑えることができ、書き込みに要する処理時間を短縮することもできる。
【図面の簡単な説明】
【図１】  本発明による半導体記憶装置のブロック図である。
【図２】  フラッシュメモリの構成を示す図である。
【図３】  フラッシュメモリアレイの構成を示す図である。
【図４】  ＦＡＴファイルシステムの構成を示す図である。
【図５】  フラッシュメモリアレイ上に配置されたＦＡＴファイル領域のクラスタとブロックの関係を表した図である。
【図６】  アドレスオフセット設定処理のフローチャートを表した図である。
【図７】  論理アドレスと物理アドレスとの対応関係の一例を表した図である。
【図８】  第２のアドレスオフセット設定処理のフローチャートを表した図である。
【図９】  論理アドレスと物理アドレスとの対応関係の一例を表した図である。
【図１０】  第３のアドレスオフセット設定処理のフローチャートを表した図である。
【図１１】  論理アドレスと物理アドレスとの対応関係の一例を表した図である。
【図１２】  半導体記憶装置およびホストシステムのブロック図である。
【符号の説明】
１  ホスト
３  ホストインターフェース
６  ＣＰＵ
８  プログラムＲＯＭ
１０  アドレスオフセット格納手段
１２  バッファメモリ
１５  メモリインターフェース
１７  フラッシュメモリ
１８  フラッシュメモリアレイ
１９  データレジスタ
２０  ブロック
２２  セクタ
２３  ＭＢＲ
２５  ＦＡＴパーティション
２６  ＰＢＲ
２７  ＦＡＴ領域Ｉ
２８  ＦＡＴ領域II
２９  ルートディレクトリ領域
３０  ＦＡＴファイル領域
３１  クラスタ
【図１】
0003942807.tif 000002
【図２】
0003942807.tif 000003
【図３】
0003942807.tif 000004
【図４】
0003942807.tif 000005
【図５】
0003942807.tif 000006
【図６】
0003942807.tif 000007
【図７】
0003942807.tif 000008
【図８】
0003942807.tif 000009
【図９】
0003942807.tif 000010
【図１０】
0003942807.tif 000011
【図１１】
0003942807.tif 000012
【図１２】
0003942807.tif 000013