(57)【特許請求の範囲】
【請求項１】
電源遮断時にもデータを保持する機能を持つ１つ又は複数のメモリを管理対象として、ホストの発行する論理アドレスの指すデータの格納先となるメモリ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理テーブル作成方法であって、
ホストから処理要求が発行されるときに、メモリ管理テーブルの未作成部分の作成に入って、上記メモリ域を単位にして、その処理要求で指定される論理アドレスの割り付けられる上記メモリにアクセスすることで、上記メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスした上記メモリ域の識別子情報とからメモリ管理テーブルの未作成部分を作成していくように処理し、
さらに、処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出するときに、メモリ管理テーブルの未作成部分の作成を中断していくように処理することを、
特徴とするメモリ管理テーブル作成方法。
【請求項２】
電源遮断時にもデータを保持する機能を持つ１つ又は複数のメモリを管理対象として、ホストの発行する論理アドレスの指すデータの格納先となるメモリ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理テーブル作成方法であって、
ホストから処理要求が発行されるときに、メモリ管理テーブルの未作成部分の作成に入って、上記メモリ域を単位にして、その処理要求で指定される論理アドレスの割り付けられる上記メモリにアクセスすることで、上記メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスした上記メモリ域の識別子情報とからメモリ管理テーブルの未作成部分を作成していくように処理し、
さらに、処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出した後、アクセスするメモリ域の数に制限を課することで、メモリ管理テーブルの未作成部分の作成を中断していくように処理することを、
特徴とするメモリ管理テーブル作成方法。
【請求項３】
電源遮断時にもデータを保持する機能を持つ１つ又は複数のメモリを管理対象として、ホストの発行する論理アドレスの指すデータの格納先となるメモリ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理テーブル作成方法であって、
ホストから処理要求が発行されるときに、メモリ管理テーブルの未作成部分の作成に入って、上記メモリ域を単位にして、その処理要求で指定される論理アドレスの割り付けられる上記メモリにアクセスすることで、上記メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスした上記メモリ域の識別子情報とからメモリ管理テーブルの未作成部分を作成していくように処理し、
さらに、処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出した後、アクセスする時間に制限を課することで、メモリ管理テーブルの未作成部分の作成を中断していくように処理することを、
特徴とするメモリ管理テーブル作成方法。
【請求項４】
電源遮断時にもデータを保持する機能を持つ１つ又は複数のメモリを管理対象として、ホストの発行する論理アドレスの指すデータの格納先となるメモリ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理テーブル作成方法であって、
メモリの起動時に、初期設定を終了すると、メモリ管理テーブルを作成せずに、直ちに、ホストに対してビジー状態の解除を通知し、
その後、ホストから処理要求が発行されるときに、メモリ管理テーブルの未作成部分の作成に入って、上記メモリ域を単位にして、その処理要求で指定される論理アドレスの割り付けられる上記メモリにアクセスすることで、上記メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスした上記メモリ域の識別子情報とからメモリ管理テーブルの未作成部分を作成していくように処理し、
さらに、処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出するときに、メモリ管理テーブルの未作成部分の作成を中断していくように処理することを、
特徴とするメモリ管理テーブル作成方法。
【請求項５】
電源遮断時にもデータを保持する機能を持つ１つ又は複数のメモリを管理対象として、ホストの発行する論理アドレスの指すデータの格納先となるメモリ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理テーブル作成方法であって、
メモリの起動時に、初期設定を終了すると、メモリ管理テーブルを作成せずに、直ちに、ホストに対してビジー状態の解除を通知し、
その後、ホストから処理要求が発行されるときに、メモリ管理テーブルの未作成部分の作成に入って、上記メモリ域を単位にして、その処理要求で指定される論理アドレスの割り付けられる上記メモリにアクセスすることで、上記メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスした上記メモリ域の識別子情報とからメモリ管理テーブルの未作成部分を作成していくように処理し、
さらに、処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出した後、アクセスするメモリ域の数に制限を課することで、メモリ管理テーブルの未作成部分の作成を中断していくように処理することを、
特徴とするメモリ管理テーブル作成方法。
【請求項６】
電源遮断時にもデータを保持する機能を持つ１つ又は複数のメモリを管理対象として、ホストの発行する論理アドレスの指すデータの格納先となるメモリ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理テーブル作成方法であって、
メモリの起動時に、初期設定を終了すると、メモリ管理テーブルを作成せずに、直ちに、ホストに対してビジー状態の解除を通知し、
その後、ホストから処理要求が発行されるときに、メモリ管理テーブルの未作成部分の作成に入って、上記メモリ域を単位にして、その処理要求で指定される論理アドレスの割り付けられる上記メモリにアクセスすることで、上記メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスした上記メモリ域の識別子情報とからメモリ管理テーブルの未作成部分を作成していくように処理し、
さらに、処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出した後、アクセスする時間に制限を課することで、メモリ管理テーブルの未作成部分の作成を中断していくように処理することを、
特徴とするメモリ管理テーブル作成方法。
【請求項７】
電源遮断時にもデータを保持する機能を持つ１つ又は複数のメモリを管理対象として、ホストの発行する論理アドレスの指すデータの格納先となるメモリ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理テーブル作成方法であって、
メモリの起動時に、初期設定を終了すると、メモリ管理テーブルの有する項目の一部分の作成に入って、上記メモリ域を単位にして上記メモリにアクセスすることで、上記メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスした上記メモリ域の識別子情報とからメモリ管理テーブルの有する項目の一部分を作成し、
それに続いて、ホストに対してビジー状態の解除を通知していくように処理することを、
特徴とするメモリ管理テーブル作成方法。
【請求項８】
電源遮断時にもデータを保持する機能を持つ１つ又は複数のメモリを管理対象として、ホストの発行する論理アドレスの指すデータの格納先となるメモリ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理テーブル作成方法であって、
メモリの起動時に、初期設定を終了すると、メモリ管理テーブルの有する項目の一部分の作成に入って、上記メモリ域を単位にして上記メモリにアクセスすることで、上記メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスした上記メモリ域の識別子情報とからメモリ管理テーブルの有する項目の一部分を作成し、
それに続いて、ホストに対してビジー状態の解除を通知し、
それに続けて、メモリ管理テーブルの未作成部分の作成に入って、ホストから処理要求が発行されるまでの間、上記メモリ域を単位にして上記メモリにアクセスすることで、上記メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスした上記メモリ域の識別子情報とからメモリ管理テーブルを作成していくように処理することを、
特徴とするメモリ管理テーブル作成方法。
【請求項９】
請求項７又は８記載のメモリ管理テーブル作成方法において、
メモリの起動時に、アクセスするメモリ域の数に制限を課することで、作成するメモリ管理テーブル部分を決定することを、
特徴とするメモリ管理テーブル作成方法。
【請求項１０】
請求項７又は８記載のメモリ管理テーブル作成方法において、
メモリの起動時に、アクセスする時間に制限を課することで、作成するメモリ管理テーブル部分を決定することを、
特徴とするメモリ管理テーブル作成方法。
【請求項１１】
電源遮断時にもデータを保持する機能を持つ１つ又は複数のメモリを管理対象として、ホストの発行する論理アドレスの指すデータの格納先となるメモリ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理テーブル作成方法であって、
メモリの起動時に、初期設定を終了すると、メモリ管理テーブルの有する項目の一部分の作成に入って、上記メモリ域を単位にして上記メモリにアクセスすることで、上記メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスした上記メモリ域の識別子情報とからメモリ管理テーブルの有する項目の一部分を作成し、
それに続いて、ホストに対してビジー状態の解除を通知し、
その後、ホストから処理要求が発行されるときに、メモリ管理テーブルの未作成部分の作成に入って、上記メモリ域を単位にして、その処理要求で指定される論理アドレスの割り付けられる上記メモリにアクセスすることで、上記メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスした上記メモリ域の識別子情報とからメモリ管理テーブルの未作成部分を作成していくように処理することを、
特徴とするメモリ管理テーブル作成方法。
【請求項１２】
請求項１１記載のメモリ管理テーブル作成方法において、
メモリの起動時に、アクセスするメモリ域の数に制限を課することで、作成するメモリ管理テーブル部分を決定することを、
特徴とするメモリ管理テーブル作成方法。
【請求項１３】
請求項１１記載のメモリ管理テーブル作成方法において、
メモリの起動時に、アクセスする時間に制限を課することで、作成するメモリ管理テーブル部分を決定することを、
特徴とするメモリ管理テーブル作成方法。
【請求項１４】
請求項１１ないし１３のいずれか１項に記載のメモリ管理テーブル作成方法において、
処理要求で指定される論理アドレスの割り付けられるメモリの持つ全メモリ域へのアクセスを終了するときに、メモリ管理テーブルの未作成部分の作成を中断していくように処理することを、
特徴とするメモリ管理テーブル作成方法。
【請求項１５】
請求項１１ないし１３のいずれか１項に記載のメモリ管理テーブル作成方法において、
処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出するときに、メモリ管理テーブルの未作成部分の作成を中断していくように処理することを、
特徴とするメモリ管理テーブル作成方法。
【請求項１６】
請求項１１ないし１３のいずれか１項に記載のメモリ管理テーブル作成方法において、
処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出した後、アクセスするメモリ域の数に制限を課することで、メモリ管理テーブルの未作成部分の作成を中断していくように処理することを、
特徴とするメモリ管理テーブル作成方法。
【請求項１７】
請求項１１ないし１３のいずれか１項に記載のメモリ管理テーブル作成方法において、
処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出した後、アクセスする時間に制限を課することで、メモリ管理テーブルの未作成部分の作成を中断していくように処理することを、
特徴とするメモリ管理テーブル作成方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電源遮断時にもデータを保持する機能を持つメモリを管理対象として、ホストの発行する論理アドレスの指すデータの格納先となるメモリ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るメモリ管理テーブル作成方法に関し、特に、メモリ装置の立ち上げ時間の短縮を実現するとともに、それによりシステムが確実に正常動作に入ることを実現するメモリ管理テーブル作成方法に関する。
【０００２】
【従来の技術】
フラッシュメモリやＦＲＡＭやＥＥＰＲＯＭといった不揮発性メモリや、バッテリでバックアップされたＲＡＭなどのメモリを、メモリカードなどに搭載する場合には、ホストの発行するアクセス要求を処理するために、どの論理アドレスのデータがどの物理アドレスに格納されているのかということを管理するメモリ管理テーブルを作成していく必要がある。
【０００３】
フラッシュメモリを具体例にして説明するならば、フラッシュメモリは、図２３に示すように、データ消去の単位となる例えば５１２個のブロックに分割されており、そして、これらの各ブロックは、データの格納単位となる例えば８個のセクタを持っている。各セクタに格納されるデータ（例えば５１２バイトで構成される）には、図２４に示すように、ホストの発行した論理アドレスが付加されており、１つのブロックに格納されるデータには、全て同一の論理アドレスが付加されている。
【０００４】
メモリ管理テーブルは、この論理アドレスとブロック番号との対応関係を管理することで、論理アドレスから物理アドレスへの変換処理を実行するために用意されるものであり、フラッシュメモリが４個搭載される場合を具体例にして説明するならば、図２５や図２６に示すようなデータ構造を持つ。
【０００５】
図２５に示すメモリ管理テーブルについて具体的に説明するならば、このメモリ管理テーブルは、論理アドレス０，４・・・を持つデータはチップ番号０のフラッシュメモリに格納され、論理アドレス１，５・・・を持つデータはチップ番号１のフラッシュメモリに格納され、論理アドレス２，６・・・を持つデータはチップ番号２のフラッシュメモリに格納され、論理アドレス３，７・・・を持つデータはチップ番号３のフラッシュメモリに格納されるという規約を前提にして作成されており、チップ番号０のフラッシュメモリに対応付けられるテーブル部分で、論理アドレス０の格納先ブロック番号、論理アドレス４の格納先ブロック番号、・・・を管理し、チップ番号１のフラッシュメモリに対応付けられるテーブル部分で、論理アドレス１の格納先ブロック番号、論理アドレス５の格納先ブロック番号、・・・を管理し、チップ番号２のフラッシュメモリに対応付けられるテーブル部分で、論理アドレス２の格納先ブロック番号、論理アドレス６の格納先ブロック番号、・・・を管理し、チップ番号３のフラッシュメモリに対応付けられるテーブル部分で、論理アドレス３の格納先ブロック番号、論理アドレス７の格納先ブロック番号、・・・を管理するというデータ構造を持っている。
【０００６】
このようなデータ構造を持つメモリ管理テーブルに従って、ホストから論理アドレスを指定してアクセス要求が発行されると、その論理アドレスの指すチップ番号及びブロック番号を特定することで、アクセス先となる物理アドレスを求めることができることになる。
【０００７】
このメモリ管理テーブルは、フラッシュメモリのブロックに順番にアクセスして、データの格納されているブロックのブロック番号を検出するとともに、そのデータに付加されている論理アドレスを検出して、その論理アドレスの指すメモリ管理テーブルのエントリーに、検出したブロック番号を格納していくことで生成されることになる。
【０００８】
従来のメモリカードなどでは、不揮発性メモリやバッテリでバックアップされたメモリを搭載する場合、メモリに電源を投入することでメモリを立ち上げるときに、内部レジスタに初期値を設定することで初期設定を行うと、それに続けて、メモリにアクセスすることでこのメモリ管理テーブルを作成するという構成を採っていた。
【０００９】
そして、このメモリ管理テーブルの作成を完了した時点に、ホストへビジー解除を通知することで、ホストに対して処理要求を許可していくという構成を採っていた。
【００１０】
【発明が解決しようとする課題】
しかしながら、従来技術のように、メモリを立ち上げるときに、メモリ管理テーブルの作成を完了させてから、ホストへビジー解除を通知するという構成を採っていると、メモリ管理テーブルが完成するまでに時間がかかることから、ホストは、なかなか処理に入れないという問題点があった。
【００１１】
そして、ホストは、アクセス先のメモリカードなどがなかなか立ち上がらないことで、メモリカードなどにエラーが発生したと誤認識してしまうことが起こるという問題点があった。
【００１２】
本発明はかかる事情に鑑みてなされたものであって、電源遮断時にもデータを保持する機能を持つメモリを管理対象として、ホストの発行する論理アドレスの指すデータの格納先となるメモリ域の識別子情報を管理するメモリ管理テーブルの作成処理を司るときにあって、メモリ装置の立ち上げ時間の短縮を実現するとともに、それによりシステムが確実に正常動作に入ることを実現する新たなメモリ管理テーブル作成方法の提供を目的とする。
【００１３】
【課題を解決するための手段】
図１に本発明の原理構成を図示する。
図中、１は本発明を具備するメモリ装置であって、電源遮断時にもデータを保持する機能を持つ１つ又は複数のメモリ１０と、ホスト装置２の発行する処理要求を受け取るＣＰＵ１１と、ＣＰＵ１１の指示に応答してメモリ制御のコマンドを発行することでメモリ１０を制御するコントローラ１２と、メモリ１０とＣＰＵ１１とコントローラ１２との間を接続するバス１３とを備えるもの、２はホスト装置であって、メモリ装置１に対して処理要求を発行するものである。
【００１４】
１４はメモリ管理テーブルであって、例えばＣＰＵ１１に展開されて、ホスト装置２の発行する論理アドレスの指すデータの格納先となるメモリ域の識別子情報を管理するもの、１５は作成手段であって、ＣＰＵ１１上で動作して、メモリ管理テーブル１４を作成するもの、１６は検出手段であって、ＣＰＵ１１上で動作して、ホスト装置２から処理要求が発行されたのか否かを検出するもの、１７は通知手段であって、ホスト装置２に対してビジー状態の解除を通知するものである。
【００１７】
このように構成される本発明のメモリ装置１では、電源が投入されて初期設定が終了すると、作成手段１５は、メモリ管理テーブル１４の有する項目の一部分の作成に入って、メモリ域を単位にしてメモリ１０にアクセスすることで、メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスしたメモリ域の識別子情報とからメモリ管理テーブル１４の有する項目の一部分を作成する。このとき、作成手段１５は、アクセスするメモリ域の数に制限を課することで、作成するメモリ管理テーブル部分を決定したり、アクセスする時間に制限を課することで、作成するメモリ管理テーブル部分を決定していく。
【００１８】
作成手段１５がメモリ管理テーブル１４の有する項目の一部分を作成すると、通知手段１７は、ホスト装置２に対してビジー状態の解除を通知し、それに続けて、作成手段１５は、メモリ管理テーブル１４の残りの項目部分の作成に入って、ホスト装置２が処理要求を発行するまでの間、メモリ域を単位にしてメモリ１０にアクセスすることで、メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスしたメモリ域の識別子情報とからメモリ管理テーブル１４を作成していく。
【００１９】
そして、メモリ管理テーブル１４に未作成部分が残されているときには、その後、作成手段１５は、ホスト装置２の発行する処理要求に対する処理を終了することで、ホスト装置２に対してビジー解除を通知した後、次の処理要求が発行されるまでの間、メモリ管理テーブル１４の未作成部分を作成していったり、ホスト装置２の処理要求が発行されるときに、その処理要求で指定される論理アドレスの割り付けられるメモリ１０にアクセスすることで、メモリ管理テーブル１４の未作成部分を作成していく。
【００２０】
また、このように構成される本発明のメモリ装置１では、電源が投入されて初期設定が終了すると、通知手段１７は、直ちに、ホスト装置２に対してビジー状態の解除を通知し、その後、作成手段１５は、ホスト装置２から処理要求が発行されるときに、メモリ管理テーブル１４の未作成部分の作成に入って、メモリ域を単位にして、その処理要求で指定される論理アドレスの割り付けられるメモリ１０にアクセスすることで、メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスしたメモリ域の識別子情報とからメモリ管理テーブル１４の未作成部分を作成していく。
【００２１】
このとき、作成手段１５は、処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出するときに、メモリ管理テーブル１４の未作成部分の作成を中断したり、処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出した後、アクセスするメモリ域の数に制限を課することで、メモリ管理テーブル１４の未作成部分の作成を中断したり、処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出した後、アクセスする時間に制限を課することで、メモリ管理テーブル１４の未作成部分の作成を中断していく。
【００２２】
また、このように構成される本発明のメモリ装置１では、電源が投入されて初期設定が終了すると、作成手段１５は、メモリ管理テーブル１４の有する項目の一部分の作成に入って、メモリ域を単位にしてメモリ１０にアクセスすることで、メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスしたメモリ域の識別子情報とからメモリ管理テーブル１４の有する項目の一部分を作成する。このとき、作成手段１５は、アクセスするメモリ域の数に制限を課することで、作成するメモリ管理テーブル部分を決定したり、アクセスする時間に制限を課することで、作成するメモリ管理テーブル部分を決定していく。
【００２３】
作成手段１５がメモリ管理テーブル１４の有する項目の一部分を作成すると、通知手段１７は、ホスト装置２に対してビジー状態の解除を通知し、その後、作成手段１５は、ホスト装置２から処理要求が発行されるときに、メモリ管理テーブル１４の未作成部分の作成に入って、メモリ域を単位にして、その処理要求で指定される論理アドレスの割り付けられるメモリ１０にアクセスすることで、メモリ域に格納されるデータの持つ論理アドレスを取得して、その取得した論理アドレスと、アクセスしたメモリ域の識別子情報とからメモリ管理テーブル１４の未作成部分を作成していく。
【００２４】
このとき、作成手段１５は、処理要求で指定される論理アドレスの割り付けられるメモリ１０の持つ全メモリ域へのアクセスを終了するときに、メモリ管理テーブル１４の未作成部分の作成を中断したり、処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出するときに、メモリ管理テーブル１４の未作成部分の作成を中断したり、処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出した後、アクセスするメモリ域の数に制限を課することで、メモリ管理テーブル１４の未作成部分の作成を中断したり、処理要求で指定される論理アドレスを持つメモリ域へのアクセスを検出した後、アクセスする時間に制限を課することで、メモリ管理テーブル１４の未作成部分の作成を中断していく。
【００２５】
このように、本発明のメモリ装置１では、従来技術のように、初期設定を行った後、メモリ管理テーブル１４を完成させてからホスト装置２にビジー解除を通知するという構成を採るのではなくて、メモリ管理テーブル１４を作成せずに、直ちに、ホスト装置２にビジー解除を通知したり、メモリ管理テーブル１４の有する項目の一部分だけを作成して、ホスト装置２にビジー解除を通知し、その後、ホスト装置２が処理要求を発行するまでの間、メモリ管理テーブル１４の未作成部分を作成したり、ホスト装置２が処理要求が発行するときに、その処理要求で指定される論理アドレスの指すメモリ管理テーブル１４の未作成部分を作成することで、メモリ管理テーブル１４を作成するという構成を採ることから、ホスト装置２は、メモリ装置１が起動された後、迅速に処理に入れるようになる。
【００２６】
そして、ホスト装置２は、迅速にメモリ装置１が正常であることを認識できることで、メモリ装置１にエラーが発生しているという誤認識を起こすことなく、処理に入れるようになる。
【００２７】
【発明の実施の形態】
以下、実施の形態に従って本発明を詳細に説明する。
図２に、本発明の適用されるメモリカード１ａを図示する。
【００２８】
このメモリカード１ａは、パーソナルコンピュータ２ａの持つスロットに着脱自在に装着され、複数のフラッシュメモリ２０（１つしか搭載されないこともある）を搭載して、パーソナルコンピュータ２ａの発行するアクセス要求に応答して、このフラッシュメモリ２０へのアクセス処理を実行するものであり、この処理を実現するために、フラッシュメモリ２０の他に、ＲＯＭ２２及びＳＲＡＭ領域２３を持つＣＰＵ２１、フラッシュコントローラ２４、ホストコントローラ２５、バッファ２６、ＲＡＭ２７などを備えるとともに、それらを接続する共通バス２８を備えている。
【００２９】
このＲＯＭ２２には、フラッシュメモリ２０へのアクセスを実現するプログラムが格納されており、ＣＰＵ２１は、パーソナルコンピュータ２ａがアクセス要求を発行するときに、そのプログラムに従って、フラッシュコントローラ２４に対してアクセス指示を発行することで、フラッシュメモリ２０へのアクセスを実行する処理を行う。
【００３０】
更に詳細に説明するならば、先頭のフラッシュメモリ２０には、搭載されるフラッシュメモリ２０の個数などの構成情報が格納されているので、ＣＰＵ２１は、メモリカード１ａの起動時に、ＲＯＭ２２に格納されるプログラムに従って、フラッシュメモリ２０に記録される１チップ当たりのメモリ容量とその構成情報とを読み出すことで全メモリ容量を特定して、それをパーソナルコンピュータ２ａに通知したり、通常の動作時に、パーソナルコンピュータ２ａがアドレスを指定してアクセス要求を発行すると、ＲＯＭ２２に格納されるプログラムに従って、その１チップ当たりのメモリ容量から、アクセス先となるフラッシュメモリ２０のチップ番号を特定して、そのチップ番号の指すフラッシュメモリ２０をイネーブル化しつつ、フラッシュコントローラ２４に対してアクセス指示を発行することで、フラッシュメモリ２０へのアクセスを実行するなどの処理を行う。
【００３１】
フラッシュコントローラ２４は、ＣＰＵ２１からフラッシュメモリ２０へのアクセス指示が発行されるときに、フラッシュメモリ２０にコマンドを発行することで、フラッシュメモリ２０へのアクセスを実行する。ホストコントローラ２５は、パーソナルコンピュータ２ａとの間のインタフェース処理を実行する。バッファ２６は、フラッシュメモリ２０に書き込むデータや、フラッシュメモリ２０から読み出したデータを格納する。ＲＡＭ２７は、ＣＰＵ２１の作業用メモリなどに用いられる。
【００３２】
ＣＰＵ２１の持つＳＲＡＭ領域２３には、図２５に示したようなデータ構造を持つメモリ管理テーブル２３０（図１に示したメモリ管理テーブル１４に相当する）が展開されるとともに、フラッシュメモリ２０の各ブロックにデータが格納されているのか否かを管理する図３に示すようなデータ構造を持つデータ格納管理テーブル２３１が展開されている。
【００３３】
以下説明の便宜上、フラッシュメモリ２０として、図２３及び図２４に説明したものを想定するとともに、メモリ管理テーブル２３０として、図２５に説明したものを想定する。
【００３４】
すなわち、メモリカード１ａの備えるフラッシュメモリ２０は、図２３に示すように、データ消去の単位となる５１２個のブロックに分割されており、これらの各ブロックは、データの格納単位となる８個のセクタを持っている。そして、各セクタは、図２４に示すように、５２８バイトの領域を有しており、５１２バイトのデータと、そのデータの持つ論理アドレスとを格納する。
【００３５】
また、ＳＲＡＭ領域２３に展開されるメモリ管理テーブル２３０は、図２５に示すように、チップ番号０のフラッシュメモリに対応付けられるテーブル部分で、論理アドレス０の格納先ブロック番号、論理アドレス４の格納先ブロック番号、・・・を管理し、チップ番号１のフラッシュメモリに対応付けられるテーブル部分で、論理アドレス１の格納先ブロック番号、論理アドレス５の格納先ブロック番号、・・・を管理し、チップ番号２のフラッシュメモリに対応付けられるテーブル部分で、論理アドレス２の格納先ブロック番号、論理アドレス６の格納先ブロック番号、・・・を管理し、チップ番号３のフラッシュメモリに対応付けられるテーブル部分で、論理アドレス３の格納先ブロック番号、論理アドレス７の格納先ブロック番号、・・・を管理している。
【００３６】
このメモリ管理テーブル２３０は、図４に示すように、２バイトの領域を有しており、１５ビットで表されるブロック番号と、そのエントリーが空いているときに“１”を表示し、そのエントリーが使用中あるいは未作成のときに“０”を表示する最上位ビット（以下、ｐビットと称する）とを格納する。
【００３７】
ここで、このｐビットが“０”で、そのエントリーが使用中のときには、そのエントリーに正規のブロック番号が登録されることになるが、そのエントリーが未作成のときには、そのエントリーにあり得ない非正規のブロック番号が登録されることになる。なお、このメモリ管理テーブル２３０は、メモリカード１ａの電源投入時に、未作成の状態に初期化されることになる。
【００３８】
図１で説明したように、本発明では、初期設定を行った後、メモリ管理テーブル２３０を完成させてからパーソナルコンピュータ２ａにビジー解除を通知するのではなくて、メモリ管理テーブル２３０を作成せずに、直ちに、パーソナルコンピュータ２ａにビジー解除を通知したり、メモリ管理テーブル２３０の有する項目の一部分だけを作成して、パーソナルコンピュータ２ａにビジー解除を通知し、その後、メモリ管理テーブル２３０の未作成部分を作成していくように処理する構成を採っている。
【００３９】
このメモリ管理テーブル２３０の未作成部分の作成処理は、パーソナルコンピュータ２ａから処理要求が発行されない間に実行したり、パーソナルコンピュータ２ａがアクセス要求が発行するときにそれと同期して実行する構成を採っている。
【００４０】
メモリ管理テーブル２３０の全体的な作成処理の実施例の説明に入る前に、図５ないし図７に示す処理フローに従って、このメモリ管理テーブル２３０の未作成部分の作成処理について説明する。
【００４１】
すなわち、前者の構成に従って、メモリ管理テーブル２３０の未作成部分の作成処理を行うときには、初期化を実行してパーソナルコンピュータ２ａにビジー状態の解除を通知したり、パーソナルコンピュータ２ａの処理要求に応答して処理を行って、その処理の終了に同期してパーソナルコンピュータ２ａにビジー状態の解除を通知すると、ＣＰＵ２１は、ＲＯＭ２２に格納されるプログラムに従って、図５の処理フローに示すように、先ず最初に、ステップ１で、未処理のフラッシュメモリ２０のブロックから、規定の順番に従ってブロックを１つ選択する。例えば、若いチップ番号のフラッシュメモリ２０からの順番に従いつつ、先頭ブロックからの順番に従って未処理のブロックを１つ選択するのである。
【００４２】
続いて、ステップ２で、そのブロックに格納される論理アドレス（但し、データがないときには、論理アドレスも書き込まれていない）を取得して、その論理アドレスの指すメモリ管理テーブル２３０のエントリーに、そのブロックのブロック番号を書き込むとともに、ｐビットに使用中を表示する“０”を書き込む（但し、初期値として未作成を表示する“０”が書き込まれているので、実際にはｐビットに対しての書き込み処理は行わない）ことで、そのエントリー部分のテーブルを作成する。
【００４３】
続いて、ステップ３で、１つのフラッシュメモリ２０の持つ全ブロックの選択を終了したのか否かを判断して、全ブロックの選択を終了したことを判断するときには、ステップ４に進んで、そのフラッシュメモリ２０に書き込まれていない論理アドレスの指すメモリ管理テーブル２３０のエントリーのｐビットに、空きを示す“１”を書き込む。一方、ステップ３で、１つのフラッシュメモリ２０の持つ全ブロックの選択を終了していないことを判断するときには、このステップ４の処理は行わない。
【００４４】
続いて、ステップ５で、全フラッシュメモリ２０の持つ全ブロックの選択を終了したのか否かを判断して、選択の終了を判断するときには、処理を終了し、選択の終了を判断しないときには、ステップ６に進んで、パーソナルコンピュータ２ａから処理要求が発行されたのか否かを判断して、処理要求が発行されていないことを判断するときには、ステップ１に戻ってテーブル作成処理を続行し、処理要求が発行されたことを判断するときには、後の処理のためにどこまでのテーブル作成処理を行ったのかを記録してから、処理を終了する。
【００４５】
このようにして、ＣＰＵ２１は、図５の処理フローを実行することで、パーソナルコンピュータ２ａから処理要求が発行されない間、メモリ管理テーブル２３０の未作成部分を作成していくように処理するのである。
【００４６】
また、後者の構成に従って、メモリ管理テーブル２３０の未作成部分の作成処理を行うときには、パーソナルコンピュータ２ａがアクセス要求（フラッシュメモリ２０に対するアクセスを指示する処理要求であり、論理アドレスが指定されることになる）が発行すると、ＣＰＵ２１は、ＲＯＭ２２に格納されるプログラムに従って、図６及び図７の処理フローに示すように、先ず最初に、ステップ１で、アクセス要求で指定される論理アドレスの指すメモリ管理テーブル２３０の管理データ（ブロック番号／ｐビット）を読み出す。例えば、論理アドレス８が発行されるときには、図２５に示すメモリ管理テーブル２３０に従って、チップ番号０及び行２の指すメモリ管理テーブル２３０のエントリーに格納される管理データを読み出すのである。
【００４７】
続いて、ステップ２で、読み出したｐビットが“１”を表示しているのか否かを判断して、“１”を表示していることを判断するとき、すなわち、発行された論理アドレスの指すメモリ管理テーブル２３０のエントリーが空いていることを判断するときには、ステップ３に進んで、アクセス要求でライトコマンドが発行されたのか否かを判断する。
【００４８】
この判断処理に従って、ライトコマンドが発行されたことを判断するときには、ステップ４に進んで、データ格納管理テーブル２３１を参照することで、発行された論理アドレスの割り付けられるフラッシュメモリ２０の持つ空きブロックを探し出して、そのブロックにライトデータを書き込む。例えば、論理アドレス８が発行されるときには、チップ番号０のフラッシュメモリ２０の持つ空きブロックを探し出して、その空きブロックにライトデータを書き込むのである。そして、続くステップ５で、発行された論理アドレスの指すメモリ管理テーブル２３０のエントリーに、データ格納先のブロック番号を書き込むとともに、ｐビットに、使用中を示す“０”を書き込んで処理を終了する。
【００４９】
一方、ステップ３の判断処理に従って、発行されたコマンドがライトコマンドでないことを判断するときには、ステップ６に進んで、そのコマンドに応じた処理を実行する。この処理ルートを経由してステップ６に入る場合、リードコマンドが発行されるときには、データがないことを示すコードをパーソナルコンピュータ２ａに転送する処理を行い、消去コマンドが発行されるときには、既に消去されているので、処理終了を示すコードをパーソナルコンピュータ２ａに転送する処理を行う。
【００５０】
一方、ステップ２でｐビットが“１”を表示していないことを判断するとき、すなわち、発行された論理アドレスの指すメモリ管理テーブル２３０のエントリーが使用中か未作成のどちらかであることを判断するときには、ステップ７（図７の処理フロー）に進んで、そのエントリーに正規のブロック番号が登録されているのか否かを判断する。
この判断処理に従って、発行された論理アドレスの指すメモリ管理テーブル２３０のエントリーに正規のブロック番号が登録されていることを判断するとき、すなわち、そのエントリーが使用中であることを判断するときには、ステップ３に進んで、上述した処理を行う。ここで、フラッシュメモリ２０は上書きできないので、ライトコマンドが発行されるときには、発行された論理アドレスの割り付けられるフラッシュメモリ２０の持つ空きブロックを探し出して、その空きブロックにライトデータを書き込むとともに、そのライトデータにより更新される古いデータを消去する処理を行う。
【００５１】
なお、この処理ルートを経由するときには、ｐビットは既に“０”を表示しているので、ステップ５ではｐビットに“０”を書き込むことは行わない。また、ステップ６では、リードコマンドが発行されるときには、発行された論理アドレスの割り付けられるフラッシュメモリ２０から、ステップ７で取得したブロック番号の指すデータを読み出してパーソナルコンピュータ２ａに転送する処理を行い、消去コマンドが発行されるときには、そのデータを消去するとともに、ｐビットに“１”を書き込む処理を行う。
【００５２】
一方、ステップ７の判断処理に従って、発行された論理アドレスの指すメモリ管理テーブル２３０のエントリーに正規のブロック番号が登録されていないことを判断するとき、すなわち、そのエントリーが未作成であることを判断するときには、ステップ８に進んで、発行された論理アドレスの割り付けられるフラッシュメモリ２０の持つブロックを規定の順番（例えば先頭からの順番）に従って１つ選択する。
【００５３】
続いて、ステップ９で、ステップ８の選択処理に従ってブロックを選択できたのか否かを判断して、ブロックを選択できたことを判断するときには、ステップ１０に進んで、そのブロックに格納される論理アドレス（但し、データがないときには、論理アドレスも書き込まれていない）を取得して、その論理アドレスの指すメモリ管理テーブル２３０のエントリーに、そのブロックのブロック番号を書き込むとともに、ｐビットに使用中を表示する“０”を書き込む（但し、初期値として未作成を表示する“０”が書き込まれているので、実際にはｐビットに対しての書き込み処理は行わない）ことで、そのエントリー部分のテーブルを作成してから、ステップ８に戻っていく。
【００５４】
一方、ステップ９で、ステップ８の選択処理に従ってブロックを選択できないことを判断するとき、すなわち、発行された論理アドレスの割り付けられるフラッシュメモリ２０の持つ全ブロックを選択したことを判断するときには、ステップ１１に進んで、そのフラッシュメモリ２０に書き込まれていない論理アドレスの指すメモリ管理テーブル２３０のエントリーのｐビットに、空きを示す“１”を書き込む。
【００５５】
続いて、ステップ１２で、ステップ１０で取得した論理アドレスに、発行された論理アドレスがあるのか否かを判断して、発行された論理アドレスがあることを判断するときには、ステップ３に進んで、上述した処理を行う。このときには、発行された論理アドレスの指すメモリ管理テーブル２３０のエントリーに正規のブロック番号が格納された状態となるので、ステップ３以降の処理では、ステップ７を経由してステップ３の処理に入るときと同じ処理を行うことになる。
【００５６】
一方、ステップ１２の判断処理で、ステップ１０で取得した論理アドレスに、発行された論理アドレスがないことを判断するときには、ステップ３に進んで、上述した処理を行う。このときには、発行された論理アドレスの指すメモリ管理テーブル２３０のエントリーが空いていることになるので、ステップ３以降の処理では、ステップ２を経由してステップ３の処理に入るときと同じ処理を行うことになる。
【００５７】
このようにして、ＣＰＵ２１は、図６及び図７の処理フローを実行することで、パーソナルコンピュータ２ａからアクセス要求が発行されると、そのアクセス要求で指定される論理アドレスを使って、メモリ管理テーブル２３０の未作成部分を作成していくように処理するのである。
【００５８】
この図６及び図７の処理フローでは、パーソナルコンピュータ２ａがアクセス要求を発行するときに、そのアクセス要求で指定される論理アドレスの指すメモリ管理テーブル２３０のエントリーが未作成であるときには、その論理アドレスの割り付けられるフラッシュメモリ２０の持つ全ブロックをサーチして、メモリ管理テーブル２３０を作成していくという構成を採ったが、図７の処理フローに代えて図８の処理フローを実行することで、その論理アドレスを持つデータが検索された時点で、そのサーチを打ち切ってメモリ管理テーブル２３０の作成を中断していくという構成を採ることも可能である。
【００５９】
更に、このとき、図９（ａ）に示すように、その論理アドレスを持つデータが検索された時点から、規定の数のブロックまでサーチを続けて、それが終了する時点でメモリ管理テーブル２３０の作成を中断していくという構成を採ったり、図９（ｂ）に示すように、その論理アドレスを持つデータが検索された時点から、規定時間の間だけサーチを続けて、それが終了する時点でメモリ管理テーブル２３０の作成を中断していくという構成を採ることも可能である。
【００６０】
ここで、アクセス要求で指定される論理アドレスの指すメモリ管理テーブル２３０のエントリーが未作成であるときに、その論理アドレスの割り付けられるフラッシュメモリ２０の持つ全ブロックをサーチするという方法を採ると、そのフラッシュメモリ２０を再びサーチする必要がないという利点が得られる。一方、アクセス要求で指定される論理アドレスの指すメモリ管理テーブル２３０のエントリーが未作成であるときに、その論理アドレスを持つデータが検索された時点で、そのサーチを打ち切るという方法を採ると、アクセス要求に対して迅速に応答できるという利点が得られる。
【００６１】
次に、メモリ管理テーブル２３０の全体的な作成処理について説明する。
図１０に、メモリ管理テーブル２３０の作成処理の処理フローの一例を図示する。
【００６２】
この処理フローでは、図１１に示すように、初期設定を終了すると、パーソナルコンピュータ２ａに対して直ちにビジー解除を通知してから、メモリ管理テーブル２３０の作成処理に入って、パーソナルコンピュータ２ａから立ち上げに必要となる処理要求が発行されると、その作成処理を一時停止して、その処理要求に対する処理を行ってパーソナルコンピュータ２ａに対してビジー解除を通知した後、メモリ管理テーブル２３０が完成されていないときには、パーソナルコンピュータ２ａから次の処理要求が発行されるまでの間、メモリ管理テーブル２３０の作成を続行していくことで、メモリ管理テーブル２３０を作成するという構成を採っている。
【００６３】
すなわち、ＣＰＵ２１は、メモリカード１ａに電源が投入されることで立ち上げられると、ＲＯＭ２２に格納されるプログラムに従って、図１０の処理フローに示すように、先ず最初に、ステップ１で、パーソナルコンピュータ２ａに対してビジーを通知し、続くステップ２で、内部の各レジスタに初期値を設定することで初期化処理を行い、その初期化処理を終了すると、続くステップ３で、パーソナルコンピュータ２ａに対してビジー解除を通知する。
【００６４】
続いて、ステップ４で、メモリ管理テーブル２３０の作成に入って、図５の処理フローで説明したように、フラッシュメモリ２０の格納データにアクセスすることでメモリ管理テーブル２３０を作成し、続くステップ５で、パーソナルコンピュータ２ａからコマンドや割り込みが発行されることが検出されるまでの間、その作成処理を続けていく。
【００６５】
続いて、ステップ５で、パーソナルコンピュータ２ａからコマンドや割り込みが発行（この時点で発行される処理要求は、立ち上げに関するもので、メモリ管理テーブル２３０を使用するアクセス要求ではない）されることが検出されると、ステップ６に進んで、パーソナルコンピュータ２ａに対してビジーを通知し、続くステップ７で、メモリ管理テーブル２３０が作成中であるのか否かを判断して、作成中であることを判断するときには、ステップ８に進んで、メモリ管理テーブル２３０の作成を一時停止する。
【００６６】
続いて、ステップ９で、パーソナルコンピュータ２ａの発行したコマンドや割り込みに対する処理を行い、その処理を終了すると、続くステップ１０で、パーソナルコンピュータ２ａに対してビジー解除を通知し、続くステップ１１で、メモリ管理テーブル２３０が作成中であるのか否かを判断して、作成中でないことを判断するときには、直ちにステップ５に戻り、作成中であることを判断するときには、ステップ１２に進んで、メモリ管理テーブル２３０の作成を再開してから、ステップ５に戻っていく。
【００６７】
このようにして、図１０の処理フローでは、初期設定を終了すると、メモリ管理テーブル２３０の作成に入らずに、パーソナルコンピュータ２ａに対して直ちにビジー解除を通知して、その後、パーソナルコンピュータ２ａが処理要求を発行してこない間、メモリ管理テーブル２３０を作成していくように処理するのである。
【００６８】
図１２及び図１３に、メモリ管理テーブル２３０の作成処理の処理フローの他の例を図示する。
この処理フローでは、図１４に示すように、初期設定を終了すると、メモリ管理テーブル２３０の有する項目の一部分を作成した後、パーソナルコンピュータ２ａに対してビジー解除を通知し、それに続けて、メモリ管理テーブル２３０の作成を再開して、パーソナルコンピュータ２ａから立ち上げに必要となる処理要求が発行されると、その作成処理を一時停止し、その処理要求に対する処理を行ってパーソナルコンピュータ２ａに対してビジー解除を通知した後、メモリ管理テーブル２３０が完成されていないときには、パーソナルコンピュータ２ａから次の処理要求が発行されるまでの間、メモリ管理テーブル２３０の作成を続行していくことで、メモリ管理テーブル２３０を作成するという構成を採っている。
【００６９】
すなわち、ＣＰＵ２１は、メモリカード１ａに電源が投入されることで立ち上げられると、ＲＯＭ２２に格納されるプログラムに従って、図１２及び図１３の処理フローに示すように、先ず最初に、ステップ１で、パーソナルコンピュータ２ａに対してビジーを通知し、続くステップ２で、内部の各レジスタに初期値を設定することで初期化処理を行い、その初期化処理を終了すると、続いて、ステップ３で、メモリ管理テーブル２３０の作成を開始し、続くステップ４で、その作成を一時停止することで、メモリ管理テーブル２３０の有する項目の一部分を作成する。
【００７０】
続いて、ステップ５で、パーソナルコンピュータ２ａに対してビジー解除を通知し、続くステップ６で、メモリ管理テーブル２３０の作成を再開して、続くステップ７で、パーソナルコンピュータ２ａからコマンドや割り込みが発行されることが検出されるまでの間、その作成処理を続けていく。
【００７１】
続いて、ステップ７で、パーソナルコンピュータ２ａからコマンドや割り込みが発行（この時点で発行される処理要求は、立ち上げに関するもので、メモリ管理テーブル２３０を使用するアクセス要求ではない）されることが検出されると、ステップ８に進んで、パーソナルコンピュータ２ａに対してビジーを通知し、続くステップ９で、メモリ管理テーブル２３０が作成中であるのか否かを判断して、作成中であることを判断するときには、ステップ１０に進んで、メモリ管理テーブル２３０の作成を一時停止する。
【００７２】
続いて、ステップ１１で、パーソナルコンピュータ２ａの発行したコマンドや割り込みに対する処理を行い、その処理を終了すると、続くステップ１２（図１３の処理フロー）で、パーソナルコンピュータ２ａに対してビジー解除を通知し、続くステップ１３で、メモリ管理テーブル２３０が作成中であるのか否かを判断して、作成中でないことを判断するときには、直ちにステップ７に戻り、作成中であることを判断するときには、ステップ１４に進んで、メモリ管理テーブル２３０の作成を再開してから、ステップ７に戻っていく。
【００７３】
このようにして、図１２及び図１３の処理フローでは、初期設定を終了すると、メモリ管理テーブル２３０の有する項目の一部分を作成した後、パーソナルコンピュータ２ａに対してビジー解除を通知して、その後、パーソナルコンピュータ２ａが処理要求を発行してこない間、メモリ管理テーブル２３０の作成を再開してメモリ管理テーブル２３０を作成していくように処理するのである。
【００７４】
このメモリ管理テーブル２３０の有する項目の一部分の作成処理は、図１５の処理フローに示すように、テーブルの作成時にアクセスするフラッシュメモリ２０のブロック数に制限を加えることで実現したり、図１６の処理フローに示すように、テーブルの作成時にアクセスするフラッシュメモリ２０へのアクセス時間に制限を加えることで実現することになる。
【００７５】
図１２及び図１３の処理フローでは、図１４に示すように、初期設定を終了すると、メモリ管理テーブル２３０の有する項目の一部分を作成し、それに続けて、パーソナルコンピュータ２ａに対してビジー解除を通知した後、パーソナルコンピュータ２ａが処理要求を発行してこない間、メモリ管理テーブル２３０の作成を再開していくという構成を採ったが、図１７に示すように、パーソナルコンピュータ２ａが論理アドレスを指定してアクセス要求（メモリ管理テーブル２３０を参照する必要のある処理要求）を発行するときに、図６及び図７の処理フローで説明したように、それと同期をとって、メモリ管理テーブル２３０の作成を再開していくという構成を採ることも可能である。
【００７６】
このとき作成するメモリ管理テーブル２３０の有する項目の一部分は、パーソナルコンピュータ２ａが最初に発行してくるアクセス要求で指定される論理アドレス（通常、小さな論理アドレス）に対応付けられる部分を作成していくことが好ましい。そのようにすれば、パーソナルコンピュータ２ａが最初に発行してくるアクセス要求に対して、メモリ管理テーブル２３０が用意されていることになるからである。
【００７７】
図１８ないし図２１に、この構成を採るときに実行する処理フローの一例を図示する。
この図１８に示す処理フローに従うときには、ＣＰＵ２１は、先ず最初に、ステップ１で、アクセス要求で指定された論理アドレスの指すメモリ管理テーブル２３０のエントリーに、データが登録されているのか否かを判断して、登録されていることを判断するときには、図６及び図７の処理フローでも説明したように、メモリ管理テーブル２３０の作成処理を行うことなく、直ちに、ステップ７に進んで、発行されたコマンドに対する処理を実行する。
【００７８】
図２５に示すメモリ管理テーブル２３０を具体例にして説明するならば、例えば、論理アドレス８が発行されるときには、チップ番号０及び行２の指すメモリ管理テーブル２３０のエントリーに、データが登録されているのか否かを判断して、登録されていることを判断するときには、直ちに、ステップ７に進んで、発行されたコマンドに対する処理を実行するのである。
【００７９】
一方、ステップ１で、データが登録されていないことを判断するときには、ステップ２に進んで、発行された論理アドレスの割り付けられるフラッシュメモリ２０を特定する。図２５に示すメモリ管理テーブル２３０を具体例にして説明するならば、例えば、論理アドレス８が発行されるときには、チップ番号０のフラッシュメモリ２０を特定するのである。
【００８０】
続いて、ステップ３で、変数ｉに“０”をセットし、続くステップ４で、ステップ２で特定したフラッシュメモリ２０の持つ変数ｉの指すブロック（例えば、先頭ブロックからの順番に従って、ブロックと変数ｉの値との対応関係がとられる）から、データを読み出すことで、ブロック番号とそのデータの持つ論理アドレスとの対応関係を抽出して、メモリ管理テーブル２３０を作成する。
【００８１】
続いて、ステップ５で、ステップ２で特定したフラッシュメモリ２０の持つ全ブロックのデータを読み出したのか否かを判断して、読み出していないことを判断するときには、ステップ６に進んで、変数ｉの値を１つインクリメントしてから、ステップ４に戻っていく。そして、ステップ５で、全ブロックのデータを読み出したことを判断するときには、ステップ７に進んで、発行されたコマンドに対する処理を実行する。
【００８２】
このようにして、図１８の処理フローでは、アクセス要求で指定された論理アドレスの指すメモリ管理テーブル２３０のエントリーに、データが登録されていないことを判断するときには、その論理アドレスの割り付けられるフラッシュメモリ２０の持つ全ブロックのデータを読み出して、それを用いてメモリ管理テーブル２３０を作成するのである。
【００８３】
この図１８の処理フローに従うと、メモリ管理テーブル２３０の作成のために一度アクセスされたフラッシュメモリ２３０については、メモリ管理テーブル２３０の作成のために再度アクセスされることがないという利点が得られるが、発行された論理アドレスが検索されても、フラッシュメモリ２０の持つ全ブロックの処理が終了するまでの間は、発行されたコマンドに対する処理に入れないことになる。
【００８４】
そこで、発行されたコマンドに対する処理の応答を優先する場合には、図１８の処理フローに代えて、図１９の処理フローを実行することで、発行された論理アドレスが検索された時点で、メモリ管理テーブル２３０の作成処理を中断して、直ちに、発行されたコマンドに対する処理に入る構成を採ることになる。
【００８５】
この図１９の処理フローでは、図１８の処理フローのステップ５に相当するステップ５で、発行された論理アドレスを持つブロックを読み出したのか否かを判断して、読み出したことを判断するときには、直ちに、ステップ７に進んで、発行されたコマンドに対する処理を実行していくことで、発行された論理アドレスが検索された時点で、メモリ管理テーブル２３０の作成処理を中断して、直ちに、コマンドに対する処理に入ることを実現している。
【００８６】
図１９の処理フローでは、発行された論理アドレスが検索された時点で、直ちに、メモリ管理テーブル２３０の作成処理を中断していくという構成を採ったが、その後もある程度、メモリ管理テーブル２３０の作成処理を続行していくという構成を採ることも可能である。
【００８７】
図２０及び図２１に、この構成を実現するための処理フローの一例を図示する。
図２０の処理フローでは、図１９の処理フローのステップ３に相当するステップ３で、変数ｊに“０”をセットする構成を採って、図１９の処理フローのステップ５に相当するステップ５で、発行された論理アドレスを持つブロックを読み出したことを判断すると、ステップ７に進んで、変数ｉ，ｊの値を１つインクリメントする。そして、続くステップ８で、変数ｉの指すメモリ管理テーブル２３０を作成した後、続くステップ９で、変数ｊの値が規定値に到達したのか否かを判断して、到達していないことを判断するときにはステップ７に戻り、到達したことを判断するときには、ステップ１０に進んで、発行されたコマンドに対する処理に入ることで、発行された論理アドレスが検索された時点から、ある程度、メモリ管理テーブル２３０の作成処理を続行していくことを実現している。
【００８８】
また、図２１の処理フローでは、図１９の処理フローのステップ５に相当するステップ５で、発行された論理アドレスを持つブロックを読み出したことを判断すると、ステップ７に進んで、タイマを起動し、続くステップ８で、変数ｉの値を１つインクリメントする。そして、続くステップ９で、変数ｉの指すメモリ管理テーブル２３０を作成した後、続くステップ１０で、タイマが規定時間をタイムオーバーしたのか否かを判断して、タイムオーバーしていないことを判断するときにはステップ８に戻り、タイムオーバーしたことを判断するときには、ステップ１１に進んで、発行されたコマンドに対する処理に入ることで、発行された論理アドレスが検索された時点から、ある程度、メモリ管理テーブル２３０の作成処理を続行していくことを実現している。
【００８９】
図１８ないし図２１の処理フローについては、図１７に示したアクセス要求の発行時点で、メモリ管理テーブル２３０の未作成部分の作成処理に入ることで説明した。すなわち、初期設定を終了した後、メモリ管理テーブル２３０の有する項目の一部分を作成して、パーソナルコンピュータ２ａにビジー解除を通知した後、アクセス要求が発行されるときに、図１８ないし図２１の処理フローを実行することで、メモリ管理テーブル２３０を作成していくことで説明したが、図２２に示すアクセス要求の発行時点で実行する構成を採ることも可能である。
【００９０】
すなわち、初期設定を終了した後、直ちに、パーソナルコンピュータ２ａにビジー解除を通知した後、アクセス要求が発行されるときに、メモリ管理テーブル２３０を作成していくようにしてもよいのである。
【００９１】
図示実施例に従って本発明を説明したが、本発明はこれに限定されるものではない。例えば、実施例では、フラッシュメモリ２０を搭載することを具体例にして本発明を説明したが、本発明はフラッシュメモリ２０にその適用が限られるものではなく、その他の不揮発性メモリやバッテリバックアップされた揮発性メモリに対しても、そのまま適用できる。
【００９２】
【発明の効果】
以上説明したように、本発明のメモリ装置では、論理アドレスと物理アドレスとの間の変換処理に用いるメモリ管理テーブルを作成するときにあって、従来技術のように、初期設定を行った後、メモリ管理テーブルを完成させてからホスト装置にビジー解除を通知するという構成を採るのではなくて、メモリ管理テーブルを作成せずに、直ちに、ホスト装置にビジー解除を通知したり、メモリ管理テーブルの有する項目の一部分だけを作成して、ホスト装置にビジー解除を通知し、その後、ホスト装置が処理要求を発行するまでの間、メモリ管理テーブルの未作成部分を作成したり、ホスト装置が処理要求が発行するときに、その処理要求で指定される論理アドレスの指すメモリ管理テーブルの未作成部分を作成することで、メモリ管理テーブルを作成するという構成を採ることから、ホスト装置は、メモリ装置が起動された後、迅速に処理に入れるようになる。
【００９３】
そして、ホスト装置は、迅速にメモリ装置が正常であることを認識できることで、メモリ装置にエラーが発生しているという誤認識を起こすことなく、処理に入れるようになる。
【図面の簡単な説明】
【図１】本発明の原理構成図である。
【図２】メモリカードの説明図である。
【図３】データ格納管理テーブルの説明図である。
【図４】メモリ管理テーブルの説明図である。
【図５】メモリ管理テーブルの作成処理の処理フローである。
【図６】メモリ管理テーブルの作成処理の処理フローである。
【図７】メモリ管理テーブルの作成処理の処理フローである。
【図８】メモリ管理テーブルの作成処理の処理フローである。
【図９】メモリ管理テーブルの作成中断処理の説明図である。
【図１０】メモリ管理テーブルの作成処理の処理フローである。
【図１１】メモリ管理テーブルの作成処理の説明図である。
【図１２】メモリ管理テーブルの作成処理の処理フローである。
【図１３】メモリ管理テーブルの作成処理の処理フローである。
【図１４】メモリ管理テーブルの作成処理の説明図である。
【図１５】メモリ管理テーブルの作成処理の処理フローである。
【図１６】メモリ管理テーブルの作成処理の処理フローである。
【図１７】メモリ管理テーブルの作成処理の説明図である。
【図１８】メモリ管理テーブルの作成処理の処理フローである。
【図１９】メモリ管理テーブルの作成処理の処理フローである。
【図２０】メモリ管理テーブルの作成処理の処理フローである。
【図２１】メモリ管理テーブルの作成処理の処理フローである。
【図２２】メモリ管理テーブルの作成処理の説明図である。
【図２３】フラッシュメモリの説明図である。
【図２４】フラッシュメモリの説明図である。
【図２５】メモリ管理テーブルの説明図である。
【図２６】メモリ管理テーブルの説明図である。
【符号の説明】
１    メモリ装置
２    ホスト装置
１０  メモリ
１１  ＣＰＵ
１２  コントローラ
１３  バス
１４  メモリ管理テーブル
１５  作成手段
１６  検出手段
１７  通知手段
【図１】
0003544476.tif 000002
【図２】
0003544476.tif 000003
【図３】
0003544476.tif 000004
【図４】
0003544476.tif 000005
【図５】
0003544476.tif 000006
【図６】
0003544476.tif 000007
【図７】
0003544476.tif 000008
【図８】
0003544476.tif 000009
【図９】
0003544476.tif 000010
【図１０】
0003544476.tif 000011
【図１１】
0003544476.tif 000012
【図１２】
0003544476.tif 000013
【図１３】
0003544476.tif 000014
【図１４】
0003544476.tif 000015
【図１５】
0003544476.tif 000016
【図１６】
0003544476.tif 000017
【図１７】
0003544476.tif 000018
【図１８】
0003544476.tif 000019
【図１９】
0003544476.tif 000020
【図２０】
0003544476.tif 000021
【図２１】
0003544476.tif 000022
【図２２】
0003544476.tif 000023
【図２３】
0003544476.tif 000024
【図２４】
0003544476.tif 000025
【図２５】
0003544476.tif 000026
【図２６】
0003544476.tif 000027