(57)【要約】【課題】不揮発性メモリのアドレス管理情報を不揮発性メモリ内に記憶し、そのアドレス管理情報のうちの必要部分のみを揮発性メモリに読み出して使用するメモリカードにおける管理情報の更新時の信頼性を確保する。【解決手段】不揮発性メモリを有し、不揮発性メモリにアクセスするために与えられた論理アドレスを物理アドレスに変換する複数のアドレス管理テーブル（ＡＴ）と複数のＡＴ（ＡＴ群２，３）を管理するアドレス変換テーブルインデックス情報（ＡＴＩ）群１を不揮発性メモリに保持し、必要なアドレス管理情報を適宜揮発メモリに展開する構成のメモリカードにおいて、データ更新時に発生するＡＴの更新の際に次ＡＴを現在のＡＴとは別の書込み領域に書き込むことを特徴とする。【選択図】  図１
2004199605.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリを有し、前記不揮発性メモリにアクセスするために与えられた論理アドレスを物理アドレスに変換する複数のアドレス管理テーブルと前記複数のアドレス管理テーブルを管理するアドレス変換テーブルインデックス情報群を前記不揮発性メモリに保持し、必要なアドレス管理情報を適宜揮発メモリに展開する構成のメモリカードにおいて、データ更新時に発生するアドレス管理テーブルの更新の際に、次アドレス管理テーブルを現在のアドレス管理テーブルとは別の書込み領域に書き込むことを特徴とする半導体メモリカード。
【請求項２】
現アドレス管理テーブルが現アドレス変換テーブルインデックス情報群の管理するアドレス管理テーブル群の最終アドレス管理テーブルの場合に、データ更新が発生すると次アドレス変換テーブルインデックス情報の管理する次アドレス管理テーブルを更新した後、更新する次アドレス変換テーブルインデックス情報を現アドレス変換テーブルインデックス情報とは別の書込み領域に書き込むことを特徴とする請求項１記載の半導体メモリカード。
【請求項３】
前記アドレス管理テーブル及び前記アドレス変換テーブルインデックス情報が複数の不揮発性メモリに跨るアドレス空間を管理する場合に、アドレス管理テーブル更新の際に、現アドレス管理テーブルが書き込まれている不揮発性メモリとは別の不揮発性メモリの書込み領域に次アドレス管理テーブルを書き込むことを特徴とする請求項１または２記載の半導体メモリカード。
【請求項４】
前記アドレス管理テーブル及び前記アドレス変換テーブルインデックス情報が複数の不揮発性メモリに跨るアドレス空間を管理する場合に、アドレス変換テーブルインデックス情報更新の際に、現アドレス変換テーブルインデックス情報が書き込まれている不揮発性メモリとは別の不揮発性メモリの書込み領域に次アドレス変換テーブルインデックス情報を書き込むことを特徴とする請求項１または２記載の半導体メモリカード。
【請求項５】
次アドレス変換テーブル情報を不揮発性メモリに更新時に、前アドレス変換テーブルインデックス情報が管理するアドレス管理テーブル群が書き込まれたブロックを無効化することを特徴とする請求項１または２記載の半導体メモリカード。
【請求項６】
不揮発性メモリにアクセスするために与えられた論理アドレスを物理アドレスに変換する複数のアドレス管理テーブルと前記複数のアドレス管理テーブルを管理するアドレス変換テーブルインデックス情報群を前記不揮発性メモリに保持し、必要なアドレス管理情報を適宜揮発メモリに展開する管理情報更新方法において、データ更新時に発生するアドレス管理テーブルの更新の際に、次アドレス管理テーブルを現在のアドレス管理テーブルとは別の書込み領域に書き込むことを特徴とする管理情報更新方法。
【請求項７】
現アドレス管理テーブルが現アドレス変換テーブルインデックス情報群の管理するアドレス管理テーブル群の最終アドレス管理テーブルの場合に、データ更新が発生すると次アドレス変換テーブルインデックス情報の管理する次アドレス管理テーブルを更新した後、更新する次アドレス変換テーブルインデックス情報を現アドレス変換テーブルインデックス情報とは別の書込み領域に書き込むことを特徴とする請求項６記載の管理情報更新方法。
【請求項８】
前記アドレス管理テーブル及び前記アドレス変換テーブルインデックス情報が複数の不揮発性メモリに跨るアドレス空間を管理する場合に、アドレス管理テーブル更新の際に、現アドレス管理テーブルが書き込まれている不揮発性メモリとは別の不揮発性メモリの書込み領域に次アドレス管理テーブルを書き込むことを特徴とする請求項６または７記載の管理情報更新方法。
【請求項９】
前記アドレス管理テーブル及び前記アドレス変換テーブルインデックス情報が複数の不揮発性メモリに跨るアドレス空間を管理する場合に、アドレス変換テーブルインデックス情報更新の際に、現アドレス変換テーブルインデックス情報が書き込まれている不揮発性メモリとは別の不揮発性メモリの書込み領域に次アドレス変換テーブルインデックス情報を書き込むことを特徴とする請求項６または７記載の管理情報更新方法。
【請求項１０】
次アドレス変換テーブル情報を不揮発性メモリに更新時に、前アドレス変換テーブルインデックス情報が管理するアドレス管理テーブル群が書き込まれたブロックを無効化することを特徴とする請求項６または７記載の管理情報更新方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、書き換え可能な不揮発性メモリに対してのアドレス管理情報を不揮発性メモリ内に記憶し、そのアドレス管理情報のうちの必要な部分を揮発性メモリに読み出して使用する半導体メモリカードおよび管理情報更新方法に関する。
【０００２】
【従来の技術】
書き換え可能な不揮発性メモリを有するメモリカードは、不揮発性メモリにアクセスするために与えられる論理アドレスを物理アドレスに変換することで、データの書き込みや読み出しが行われる。そして、このアドレス変換のためのアドレス管理情報を有している。
【０００３】
上述したような、アドレス管理情報を不揮発性メモリに記憶して、そのアドレス管理情報のうちの必要部分のみを揮発性メモリに読み出して使用するメモリカードは、例えば、特許文献１に記載されたものが知られている。
【０００４】
図４に従来のメモリカード内の不揮発性メモリにおけるアドレスマップを示す。なお、不揮発性メモリは一般的にフラッシュメモリと呼ばれているメモリに相当し、その基本特性（オーバーライトが出来ない、あるいは書き込み回数に制限がある等）については典型的なフラッシュメモリに従うものとし、これらの特性についての説明は省略する。
【０００５】
不揮発性メモリは、管理領域１０１とデータ領域１０２とからなる。データ領域１０２は、外部機器（ホスト）から読み書きされるデータ（音楽データや画像データなどのいわゆるコンテンツ情報）を格納する領域であり、例えば、１０２４ブロック毎に４つの領域（データ領域＃０〜データ領域＃３）に分割される。管理領域１０１は、データの論理アドレスに対応する物理アドレスを決めるアドレス変換テーブル等の管理情報を格納する領域であり、アドレス変換テーブル（以下、ＬＴＰｂという）１０４とアドレス変換テーブルのインデックス（以下、ＬＴＰａという）１０３からなる。ＬＴＰｂ１０４は、上記データ領域１０２の＃０〜＃３をそれぞれ管理するためＬＴＰｂ１０４の＃０〜＃３からなる。ＬＴＰｂ１０４＃０〜ＬＴＰｂ１０４＃３が管理するエントリ数はブロック数に一致し、それぞれのデータ領域１０２において、基本的には論理アドレス（０〜１０２３[ブロック×ブロックサイズ]）を物理アドレス（０〜１０２３[ブロック×ブロックサイズ]）に変換するために、各論理アドレスに相当する論理ブロック番号毎（１ワード毎）に物理ブロック番号（物理アドレスに相当）とアロケーションフラグを持つ。アロケーションフラグとは、記憶された物理ブロック番号（物理アドレス）に有効なデータが既にアロケート（割り当て）されているか否かを識別するフラグである。ＬＴＰａ１０３は、ＬＴＰｂ１０４＃０〜ＬＴＰｂ１０４＃３が記憶されている物理ブロック番号（物理アドレスに相当）とアロケーションフラグを持つ。ＬＴＰａ１０３及びＬＴＰｂ１０４＃０〜ＬＴＰｂ１０４＃３は、消去単位である任意ブロックの中に存在し、例えばブロック内がページ１からページＮとするとページ１（例えば２Ｋバイト）を使用して１つのアドレス変換テーブルを構成する。例えば管理領域１０１の先頭ブロックのページ１にＬＴＰａ１０３を、その次のブロックのページ１にＬＴＰｂ１０４＃０を対応させ、各ブロックのページ１以外のページは不使用で構わない。
【０００６】
以上のように構成されたメモリカードについて、以下、書き込み動作を述べる。外部機器（ホスト）から与えられる論理アドレスに従い、データの書き込み先の領域を決定する。例えば、外部ホストから論理アドレス０が指定されると、不揮発性メモリの中のデータ領域１０２＃０に対応するＬＴＰｂ１０４＃０をＬＴＰａ１０３に基づき不揮発性メモリから揮発性メモリに読み出す。読み出されたＬＴＰｂ１０４＃０内の論理ブロック番号に対応する１ワード中のアロケーションフラグをチェックし、未アロケートの場合は、この１ワード中の物理ブロック番号に対応するデータ領域１０２＃０の物理ブロックをイレーズ（消去）処理後にデータを書き込み、揮発性メモリ内でこの１ワード中のアロケーションフラグをアロケート済み状態（値０）に更新した後に不揮発性メモリにＬＴＰｂ１０４＃０を書き戻す。一方、論理ブロック番号に対応する１ワード中のアロケーションフラグをチェックし、既にアロケート済みの場合は、論理ブロック番号０から１０２３までの全領域に対応する物理ブロック番号を調べ、アロケート済みでない物理ブロック番号（例えば、１０）を探しだし、物理ブロック番号１０に対応するデータ領域１０２＃０の物理ブロックをイレーズ処理後にデータを書き込む。また、揮発性メモリ内で、論理ブロック番号０の１ワード中物理ブロック番号の部分に物理ブロック番号１０を書き込み、更に、以前物理ブロック番号１０が記録されていた論理ブロック番号の１ワード中物理ブロック番号の部分を、以前論理ブロック番号０の物理ブロック番号の部分に記憶されていた物理ブロック番号値に変更すると共にアロケーションフラグを未アロケート状態（値１）にする。そして不揮発性メモリにＬＴＰｂ１０４＃１を書き戻す。
【０００７】
【特許文献１】
特開２００１−１４２７７４号公報（段落００１０〜００１２、図１）
【０００８】
【発明が解決しようとする課題】
しかしながら上記の従来の構成による不揮発性メモリを搭載したメモリカードにおいては、データの管理を不揮発性メモリ内に管理領域を設け集中管理するため、管理情報の信頼性を確保することが要求されている。そのため、不揮発性メモリへの管理情報の更新時において、書き込みエラーが発生した場合に電源遮断等が発生すると、管理情報が正常に更新されず、管理情報の信頼性が損なわれる可能性があった。
【０００９】
本発明は上記従来の問題点を解決するもので、管理情報の信頼性確保のために、特に、管理情報更新時の信頼性向上を可能とする半導体メモリカードおよび管理情報更新方法を提供すること目的とする。
【００１０】
【課題を解決するための手段】
この目的を達成するために本発明の半導体メモリカードおよび管理情報更新方法は、不揮発性メモリにアクセスするために与えられた論理アドレスを物理アドレスに変換する複数のアドレス管理テーブル（以下、ＡＴとする）と、複数のＡＴ（以下、ＡＴ群とする）を管理するアドレス変換テーブルインデックス情報（以下、ＡＴＩとする）群を不揮発性メモリに保持し、必要なアドレス管理情報を適宜揮発性メモリに展開するものであり、データ更新時に発生するＡＴの更新の際に次ＡＴを現在のＡＴとは別の書込み領域に書き込むことを特徴とする。
【００１１】
これにより、不揮発性メモリ内の次ＡＴを書き込む領域（例えば、ブロック）が次ＡＴの書き込みにより不良（バッドブロック）となった場合にも、更新前のＡＴ情報を不揮発性メモリ内の別領域（例えば、ブロック）に確保しておくことが出来るため、ＡＴ更新時に電源遮断等により正常にＡＴの更新が出来なかった場合にも、前ＡＴに基づき不揮発性メモリ内のデータを保護することが可能である。
【００１２】
【発明の実施の形態】
本発明の請求項１に記載の発明は、不揮発性メモリを有し、前記不揮発性メモリにアクセスするために与えられた論理アドレスを物理アドレスに変換する複数のアドレス管理テーブルと前記複数のアドレス管理テーブルを管理するアドレス変換テーブルインデックス情報群を前記不揮発性メモリに保持し、必要なアドレス管理情報を適宜揮発メモリに展開する構成のメモリカードにおいて、データ更新時に発生するアドレス管理テーブルの更新の際に、次アドレス管理テーブルを現在のアドレス管理テーブルとは別の書込み領域に書き込むことを特徴とする半導体メモリカードとしたものであり、これにより、アドレス管理テーブル更新時に電源遮断等により正常にアドレス管理テーブルの更新ができなかった場合にも、前アドレス管理テーブルに基づき不揮発性メモリ内のデータを保護することができるという作用を有する。
【００１３】
また、本発明の請求項２に記載の発明は、上記請求項１に係る発明に加え、現アドレス管理テーブルが現アドレス変換テーブルインデックス情報群の管理するアドレス管理テーブル群の最終アドレス管理テーブルの場合に、データ更新が発生すると次アドレス変換テーブルインデックス情報の管理する次アドレス管理テーブルを更新した後、更新する次アドレス変換テーブルインデックス情報を現アドレス変換テーブルインデックス情報とは別の書込み領域に書き込むことを特徴とするものであり、これにより、アドレス変換テーブルインデックス情報更新前に電源遮断等により正常にアドレス変換テーブルインデックス情報の更新ができなかった場合でも、前アドレス変換テーブルインデックス情報の管理する最終のアドレス管理テーブルに基づき不揮発性メモリ内のデータを保護することができるという作用を有する。
【００１４】
また、本発明の請求項３に記載の発明は、上記請求項１または２に係る発明に加え、前記アドレス管理テーブル及び前記アドレス変換テーブルインデックス情報が複数の不揮発性メモリに跨るアドレス空間を管理する場合に、アドレス管理テーブル更新の際に、現アドレス管理テーブルが書き込まれている不揮発性メモリとは別の不揮発性メモリの書込み領域に次アドレス管理テーブルを書き込むことを特徴とするものであり、これにより、アドレス管理テーブル更新のための同一不揮発性メモリへの書き込みを分散させる作用を有する。
【００１５】
また、本発明の請求項４に記載の発明は、上記請求項１または２に係る発明に加え、前記アドレス管理テーブル及び前記アドレス変換テーブルインデックス情報が複数の不揮発性メモリに跨るアドレス空間を管理する場合に、アドレス変換テーブルインデックス情報更新の際に、現アドレス変換テーブルインデックス情報が書き込まれている不揮発性メモリとは別の不揮発性メモリの書込み領域に次アドレス変換テーブルインデックス情報を書き込むことを特徴とするものであり、これにより、アドレス変換テーブルインデックス更新のための同一不揮発性メモリへの書き込みを分散させる作用を有する。
【００１６】
また、本発明の請求項５に記載の発明は、上記請求項１または２に係る発明に加え、次アドレス変換テーブル情報を不揮発性メモリに更新時に、前アドレス変換テーブルインデックス情報が管理するアドレス管理テーブル群が書き込まれたブロックを無効化することを特徴とするものであり、これにより、不要になったアドレス管理テーブルを通常のデータの書き込み領域として使用し、アドレス管理テーブル群に使用するブロックを集中させないという作用を有する。
【００１７】
また、本発明の請求項６に記載の発明は、不揮発性メモリにアクセスするために与えられた論理アドレスを物理アドレスに変換する複数のアドレス管理テーブルと前記複数のアドレス管理テーブルを管理するアドレス変換テーブルインデックス情報群を前記不揮発性メモリに保持し、必要なアドレス管理情報を適宜揮発メモリに展開する管理情報更新方法において、データ更新時に発生するアドレス管理テーブルの更新の際に、次アドレス管理テーブルを現在のアドレス管理テーブルとは別の書込み領域に書き込むことを特徴とする管理情報更新方法であり、これにより、アドレス管理テーブル更新時に電源遮断等により正常にアドレス管理テーブルの更新ができなかった場合にも、前アドレス管理テーブルに基づき不揮発性メモリ内のデータを保護することができるという作用を有する。
【００１８】
また、本発明の請求項７に記載の発明は、上記請求項６に係る発明に加え、現アドレス管理テーブルが現アドレス変換テーブルインデックス情報群の管理するアドレス管理テーブル群の最終アドレス管理テーブルの場合に、データ更新が発生すると次アドレス変換テーブルインデックス情報の管理する次アドレス管理テーブルを更新した後、更新する次アドレス変換テーブルインデックス情報を現アドレス変換テーブルインデックス情報とは別の書込み領域に書き込むことを特徴とするものであり、これにより、アドレス変換テーブルインデックス情報更新前に電源遮断等により正常にアドレス変換テーブルインデックス情報の更新ができなかった場合でも、前アドレス変換テーブルインデックス情報の管理する最終のアドレス管理テーブルに基づき不揮発性メモリ内のデータを保護することができるという作用を有する。
【００１９】
また、本発明の請求項８に記載の発明は、上記請求項６または７に係る発明に加え、前記アドレス管理テーブル及び前記アドレス変換テーブルインデックス情報が複数の不揮発性メモリに跨るアドレス空間を管理する場合に、アドレス管理テーブル更新の際に、現アドレス管理テーブルが書き込まれている不揮発性メモリとは別の不揮発性メモリの書込み領域に次アドレス管理テーブルを書き込むことを特徴とするものであり、これにより、アドレス管理テーブル更新のための同一不揮発性メモリへの書き込みを分散させる作用を有する。
【００２０】
また、本発明の請求項９に記載の発明は、上記請求項６または７に係る発明に加え、前記アドレス管理テーブル及び前記アドレス変換テーブルインデックス情報が複数の不揮発性メモリに跨るアドレス空間を管理する場合に、アドレス変換テーブルインデックス情報更新の際に、現アドレス変換テーブルインデックス情報が書き込まれている不揮発性メモリとは別の不揮発性メモリの書込み領域に次アドレス変換テーブルインデックス情報を書き込むことを特徴とするものであり、これにより、アドレス変換テーブルインデックス更新のための同一不揮発性メモリへの書き込みを分散させる作用を有する。
【００２１】
また、本発明の請求項１０に記載の発明は、上記請求項６または７に係る発明に加え、次アドレス変換テーブル情報を不揮発性メモリに更新時に、前アドレス変換テーブルインデックス情報が管理するアドレス管理テーブル群が書き込まれたブロックを無効化することを特徴とするものであり、これにより、不要になったアドレス管理テーブルを通常のデータの書き込み領域として使用し、アドレス管理テーブル群に使用するブロックを集中させないという作用を有する。
【００２２】
以下、本発明の実施の形態について、図１から図３を用いて説明する。
【００２３】
（実施の形態１）
図１は、本発明の実施の形態１による半導体メモリカードおよび管理情報更新方法におけるアドレス管理テーブル（ＡＴ）とアドレス変換デーブルインデックス情報（ＡＴＩ）の構成を示す概念図であり、図２は、本実施の形態による半導体メモリカードの構成、および半導体メモリカード内の不揮発性メモリのアドレスマップを示す概念図である。また、図３は、本実施の形態による管理情報更新方法を示すフローチャートである。
【００２４】
図１において、１はＡＴＩ群である。２および３はＡＴ群であり、便宜上ＡＴ群α２、ＡＴ群β３とし、図示した以外にも存在するものである。また１０はブロック（物理ブロック）であり、本実施の形態によるＡＴＩ群１、ＡＴ群α２、ＡＴ群β３、…は、それぞれ４つのブロック１０から構成され、それぞれを４バンク（Ｂａｎｋ０〜Ｂａｎｋ３）構成にしている。
【００２５】
また、図２においては、２０はフラッシュメモリ等の不揮発性メモリ、２１は半導体メモリカードとホスト機器との間でデータやコマンドなどの信号を送受信するためのホストインターフェース回路（ホストＩ／Ｆ）、２２はホスト機器からのコマンドなどにより不揮発性メモリ２０や半導体メモリカードの動作を制御する制御部、２３はデータやアドレス管理情報などを一時蓄える揮発性メモリとしてのＲＡＭ（ランダム・アクセス・メモリ）である。また、４はＡＴＩ群を記憶するためのＡＴＩ群領域、５はデータを記憶するためのデータ領域であり、不揮発性メモリ２０は、ＡＴＩ群領域４とデータ領域５からなる。また、６はＡＴ群であり、７は現ＡＴが管理するデータエントリである。
【００２６】
なお、本実施の形態で説明する不揮発性メモリ２０は、４バンク構成（Ｂａｎｋ０〜Ｂａｎｋ３）からなり、各ブロックはデータ容量が２ＫＢのページが２ページで構成されるメモリに制限している。
【００２７】
ＡＴＩ群領域４は、データ領域５（＃０〜＃３）内のＡＴ群を管理するためのＡＴＩ群を格納する領域である。ＡＴＩは、各ＡＴ群の物理ブロック番号（例えば、バンク０の物理アドレスに相当）を持つ。１つのＡＴＩで、各データ領域に６４のＡＴ群を管理すると、１ワード（物理ブロック番号）×４（データ領域数）×６４（ＡＴ群）＝５１２Ｂとなり、図１に示すように１ブロック当たり８個のＡＴＩを記録することができる。先頭ＡＴＩは、例えば、不揮発性メモリ２０の先頭物理ブロックに格納され、先頭ＡＴＩの格納されるページの冗長領域には、バンク当たり１ブロックへのリンク情報が書き込まれ、ＡＴＩ群を形成する。よって、最大３２個のＡＴＩを格納することができる。
【００２８】
データ領域５は、外部（ホスト）から読み書きされるデータ（音楽データや画像データなどのいわゆるコンテンツ情報）を格納すると共に、ＡＴ群を格納する領域である。また、データ領域５は、１０２４ブロック／バンク毎に４つの領域（データ領域＃０〜データ領域＃３）に分割され、ＡＴ群はそれぞれのデータ領域を管理するため、それぞれのデータ領域に格納される。ＡＴが管理するデータエントリ７は、１ブロック／バンク、計４ブロックを１つのエントリとして管理される。ＡＴの管理するエントリそれぞれの先頭ブロック（例えば、バンク０）下位ページの冗長領域には、バンク当たり１ブッロクへのリンク情報が書き込まれる。それぞれのデータ領域において、基本的には論理アドレス（０〜１０２３［ブロック×ブロックサイズ×バンク数］）を物理アドレス（０〜１０２３[ブロック×ブロックサイズ×バンク数]）に変換する為に、各論理アドレスに相当する論理ブロック番号毎（１ワード毎）に物理ブロック番号（例えば、バンク０の物理アドレス９ビットに相当）と各バンクのアロケーションフラグ（４ビット）を持つ。よって、１つのＡＴのデータ容量は、１ワード（物理ブロック番号）×１０２４（ブロック）＝２０４８Ｂとなり、１ページに１つのＡＴを持つことになる。また、アロケーションフラグは、各バンクの物理ブロック番号（物理アドレス）に有効なデータが既にアロケートされているか否かを識別するフラグであり、物理ブロック番号順に格納される。
【００２９】
次に、図１及び図３を用いて本実施の形態による書き込み動作について説明する。なお、図１中のＡＴ群α２及びＡＴ群β３は、同一のデータ領域を管理するＡＴ群であり、同図に示す例では、ＡＴ群α２はＡＴＩ＃４により管理され、ＡＴ群β３はＡＴＩ＃５により管理される領域である。また、ＡＴ及びＡＴＩの更新は、次のＡＴ及びＡＴＩの不揮発性メモリ２０への書き込みが現ＡＴ及び現ＡＴＩと同一ブロックに行われないように、書き込みの順番が予め決められる。また、ＡＴＩ群の中から最新のＡＴＩを検出する処理（図３のＳ０１）は、例えば、初期化時に実施され、外部（ホスト）からメモリカードに対するデータ書き込み指令毎には実施されない。また、図３に示す一連の制御は、図２に示した制御部２２によって実行され、制御部２２はＣＰＵ（中央処理演算装置）を含むものとする。
【００３０】
まず、１つのＡＴＩが管理するＡＴ群内での更新について述べる。外部（ホスト）から与えられる論理アドレスに従い、データの書き込み先の領域を決定する。例えば、外部ホストから論理アドレス０が指定されると、不揮発性メモリ２０の中のデータ領域＃０に対応するＡＴ群の物理ブロック番号を現ＡＴＩから求め、不揮発性メモリ２０から揮発性メモリ（ＲＡＭ２３）に読み出す（図３のＳ０２）。読み出された現ＡＴ群内で、現ＡＴ（例えば、ＡＴ＃２）を検出して論理ブロック番号に対応する１ワード中の物理ブロック番号をチェックする（同Ｓ０３）。なお、現ＡＴを検出する場合は、現在のＡＴを含むＡＴ群は事前にイレーズ処理されるため、図１に示す予め決められたＡＴの書き込み順（＃０〜＃７）に従い、正常に読み出された最終書き込み済みのＡＴを現ＡＴとする。論理ブロック番号に対応する１ワード中に物理ブロック番号が登録されていない、つまり未アロケートの場合は、各バンクの未アロケート物理ブロック番号を検出し、対応するデータ領域＃０の物理ブロックをイレーズ処理し、バンク０の下位ページ冗長領域に検出した各バンクの物理ブロック番号を付加してデータを不揮発性メモリ２０に書き込み、揮発性メモリ２３内でデータを書き込んだ各バンクの物理ブロック番号に対応したアロケーションフラグをアロケート済み状態（値０）に更新する（Ｓ０４）。その後に、図１に示す予め決められた書き込み順に従い不揮発性メモリにＡＴ＃３を書く（Ｓ０５、Ｓ０７）。
【００３１】
一方、論理ブロック番号に対応する１ワード中の物理ブロック番号をチェックし、既にアロケート済みの場合は、その物理ブロック番号の対応した物理ブロックの下位ページ冗長領域から各バンクのアロケート済みの物理ブロック番号を読み出す。更に、揮発性メモリ内で各バンクのアロケート済みでない物理ブロック番号を検出し、不揮発性メモリ内の対応するデータ領域＃０の物理ブロックをイレーズ処理し、バンク０の物理ブロック下位ページの冗長領域に各バンクの物理ブロック番号を付加してデータを書き込む。また、揮発性メモリ内で、論理ブロック番号０の１ワード中物理ブロック番号にデータを書き込んだバンク０の物理ブロック番号を書き込むと共に今回使用した各バンクの物理ブロック番号に対応するアロケーションフラグをアロケート済み状態（値０）に更新し、更に以前論理ブロック番号０で使用した各バンクの物理ブロック番号に対応するアロケーションフラグを未アロケート状態（値１）にする（Ｓ０４）。その後に、図１に示す予め決められた書き込み順に従い不揮発性メモリにＡＴ＃３を書く（Ｓ０５、Ｓ０７）。
【００３２】
次に、ＡＴＩの更新が発生する場合について述べる。図１中、現在のＡＴがＡＴＩ＃４の管理するＡＴ群α２の最終ＡＴ＃７の場合、Ｓ０５にて現ＡＴが現ＡＴＩで管理するＡＴの最終であると判断し、Ｓ０６にて次ＡＴ群を書き込むための空きブロックを確保する。揮発性メモリ２３内で現ＡＴであるＡＴ群α２のＡＴ＃７から各バンクのアロケーションフラグより未アロケートの物理ブロック番号を検出し、検出した物理ブロック番号に対応するデータ領域＃０内物理ブロックをイレーズ処理することでＡＴ群β３の領域を確保する。次ＡＴはデータ書き込み処理Ｓ０４で作成した情報に加え、揮発性メモリ２３内でＡＴ群α２の領域を確保するために使用していた各バンクの物理ブロック番号に対応するアロケーションフラグを未アロケートに更新し、更に、ＡＴ群β３の領域確保に使用する各バンクの物理ブロック番号に対応するアロケーションフラグをアロケートに更新する。Ｓ０８にて、更新する次ＡＴをデータ領域＃０内ＡＴ群β３のＡＴ＃０の領域に書き込む。その後Ｓ０９にて、ＡＴＩ＃５の領域に、ＡＴ群β３の各ＡＴの物理ブロックアドレスを書き込む。
【００３３】
ＡＴＩ群１を更新する際には、前記ＡＴＩ更新の際の処理に加え、次ＡＴＩ群を記録するための物理ブロックを確保する必要がある。揮発メモリ２３内でＡＴ＃７の各バンクのアロケーションフラグより未アロケートの物理ブロック番号を検出し、不揮発性メモリ２０の検出した各バンクの対象物理ブロックをイレーズ処理することで次ＡＴＩ群の領域を確保する。前記ＡＴＩ更新時の次ＡＴの情報に加え、揮発性メモリ２３内で現ＡＴＩ群の領域を確保するために使用していた各バンクの物理ブロック番号に対応するアロケーションフラグを未アロケートし、更に、次ＡＴＩ群１の領域確保に使用する各バンクの物理ブロック番号に対応するアロケーションフラグをアロケートに更新する。以降、前記ＡＴＩ更新時と同様に次ＡＴ及び次ＡＴＩを不揮発性メモリ２０に書き込む。
【００３４】
以上のように、ＡＴの更新時、現ＡＴとは異なるブロックに次ＡＴを書き込むことにより、次ＡＴの書き込み中にエラーが発生し正常に次ＡＴが更新できない場合にも、現ＡＴに基づきメモリカード内の不揮発性メモリ２０に記録されたデータを保護することができる。また、ＡＴＩ更新が必要なＡＴの更新時にエラーが発生した場合、現ＡＴＩに基づく現ＡＴによりメモリカード内の不揮発性メモリ２０に記録されたデータを保護することができる。更に、ＡＴＩ更新後は古いＡＴ群（例えば、ＡＴＩ更新後のＡＴ群α２）をデータの書き込める領域として使用し、ＡＴ群の同一領域への集中を避けＡＴ群の信頼性を向上できる。
【００３５】
なお、本実施の形態においては、メモリカード内に１つの不揮発性メモリで構成される場合について述べたが、複数の不揮発性メモリで構成される場合についてもＡＴの管理するアロケーションフラグを８ビットとし、２つの不揮発性メモリを１つのＡＴで管理するよう構成すれば本実施例と同様の処理が可能である。更に、ＡＴ及びＡＴＩ更新の際に、２つの不揮発性メモリに交互に書き込むよう処理すれば、ＡＴ及びＡＴＩ更新のための同一不揮発性メモリへ書き込みの集中をさけることができる。
【００３６】
また、本実施の形態においては、４バンク構成の不揮発性メモリについて述べたが、バンク構成に依存せず同様のＡＴＩ更新方法を適用することができる。
【００３７】
更に、本実施の形態においては、メモリカードのアドレス管理をＡＴＩとＡＴの二階層で実現したものについて述べたが、ＡＴＩを更に階層化した場合にも、同様のＡＴＩ更新方法を適用することができる。この場合、最上階のＡＴＩを管理領域に格納し、それ以外は、各データ領域に格納すれば、最も重要なＡＴＩへのアクセス頻度を低減することができる。
【００３８】
また、本実施の形態においては、図２に示すようにメモリカードを例に説明したが、メモリカードに限ることなく、例えば、不揮発性メモリが内蔵された機器に本発明の管理情報更新方法（アドレス管理情報を更新する方法）を用いてもよい。この場合、ホストＩ／Ｆ２１や制御部２２は、同様の機能を有する機器内の資源を用いて構成すればよい。
【００３９】
【発明の効果】
以上のように本発明によれば、不揮発性メモリ内の次ＡＴを書き込む領域（例えば、ブロック）が次ＡＴを書き込みにより不良（バッドブロック）となった場合にも、更新前のＡＴ情報を不揮発性メモリ内の別領域（例えば、ブロック）に確保しておくことが出来るため、ＡＴ更新時に電断等により正常にＡＴの更新が出来なかった場合にも、前ＡＴに基づき不揮発性メモリ内のデータを保護することが可能である。更に、ＡＴＩ更新前に電断等により正常にＡＴＩの更新が出来なかった場合にも、前ＡＴＩの管理する最終のＡＴに基づき不揮発性メモリ内のデータを保護することができる。更に、ＡＴＩの更新毎に不要になったＡＴ群を無効化することにより、通常のデータの書き込み領域として使用しＡＴ群に使用するブロックを集中させないためＡＴ群の信頼性を向上させることができる。
【図面の簡単な説明】
【図１】本発明の実施の形態によるアドレス管理方法を示す概念図
【図２】本発明の実施の形態によるメモリカードの構成およびアドレスマップを示す図
【図３】本発明の実施の形態によるアドレス管理方法の動作を説明するためのフローチャート
【図４】従来のメモリカードのアドレスマップを示す図
【符号の説明】
１  ＡＴＩ群
２  ＡＴ群α
３  ＡＴ群β
４  ＡＴＩ群領域
５  データ領域
６  ＡＴ領域
７  １データエントリ範囲
２０  不揮発性メモリ
２１  ホストＩ／Ｆ
２２  制御部
２３  ＲＡＭ
【図１】
2004199605.tif 000003
【図２】
2004199605.tif 000004
【図３】
2004199605.tif 000005
【図４】
2004199605.tif 000006