(57)【要約】【課題】  効率よく制御され、コントロールチップのサイズを縮小し、書き込みが速いフラッシュメモリの読み書きの制御方法を提供する。【解決手段】フラッシュメモリの複数のブロックを１つの領域に設定し、システム作動時に対応する論理アドレスとの関係に基づき、FATと第１領域のアドレスマッピング表と、第２領域の部分的ブロックに対する高速アクセス・アドレスマッピング表を作成し、ホスト端末から検索を行う論理アドレスをフラッシュメモリに送信する場合、該論理アドレスが該メモリのFAT領域に存在すれば、表から直接物理的アドレスを検出し、存在しなければその位置を計算し、該論理アドレスが第１領域内に存在すれば当該アドレスマッピング表から物理アドレスを検索し、存在しなければ高速アクセス・アドレスマッピング表の検索を行い、該論理アドレスが存在しない場合は他の高速アクセス・アドレスマッピング表を作成し、更に他の領域の領域アドレスマッピング表を作成するか否かを決定し、該論理アドレスに対応する物理的アドレスを検出するまで検索を行う。【選択図】  図２
2005209058.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュメモリの複数のブロックを１つの領域に設定し、システムの作動時に該ブロックアドレスと該ブロックアドレスに対応する論理アドレスとの関係に基づき、FATアドレスマッピング表と、第１領域のアドレスマッピング表と、第２領域の部分的ブロックに対する高速アクセス・アドレスマッピング表の３組の論理／物理的アドレスマッピング表を作成し、
ホスト端末から検索を行う論理アドレスをフラッシュメモリに送信する場合、該検索を行う論理アドレスが該メモリのFAT領域に存在する場合は、該FATアドレスマッピング表から直接物理的アドレスを検出し、該検索を行う論理アドレスが該メモリのFAT領域に存在しない場合は、該検索を行う論理アドレスがどの領域のどのブロックに位置するかを計算し、
該計算の結果、該検索を行う論理アドレスが第１領域内に存在すると判断された場合は、第１領域のアドレスマッピング表から物理アドレスを検索し、該検索を行う論理アドレスが第１領域内に存在しない場合には高速アクセス・アドレスマッピング表の検索を行い、
該高速アクセス・アドレスマッピング表に該検索を行う論理アドレスが存在しなかった場合は、該計算結果に基づいて別途他の高速アクセス・アドレスマッピング表を作成し、更に検索の結果に基づいて別途他の領域の領域アドレスマッピング表を作成するか否かを決定し、該検索を行う論理アドレスに対応する物理的アドレスが検出されるまで検索を行って得られたアドレスをデータの読み取り、もしくは書き込みに供することを特徴とするフラッシュメモリの読み書きの制御方法。
【請求項２】
前記マッピング表を作成する場合、３組の対応する空のブロックを作成してFIFOデータを挿入し、検索する論理アドレスに対応する物理アドレスが作成されたアドレスマッピング表に存在した場合、アドレスマッピング表の中の対応するFIFOデータの中から新しい空ブロックを探し出し、新しいデータを新しいブロック内に書き込むとともに、該物理アドレスのもとのデータを新しいブロック内にコピーして物理アドレス内のデータを消去し、最後に新しいブロックの論理／物理アドレスのマッピング関係によりアドレスマッピング表を作成し、物理アドレスを消去した後の空ブロックにFIFOデータを増加させることを特徴とする請求項１に記載するフラッシュメモリの読み書きの制御方法。
【請求項３】
前記FIFOデータの中から新しい空ブロックを選択する場合、FIFOの原則により最も早くから存在する空ブロックを選択することを特徴とする請求項２に記載するフラッシュメモリの読み書きの制御方法。
【請求項４】
１つの領域に１つの高速アクセス・アドレスマッピング表を作成することを特徴とする請求項１に記載するフラッシュメモリの読み書きの制御方法。
【請求項５】
前記検索する論理アドレスが、どの領域のどのブロックに存在しているかを計算する場合、ディバイダー（divider）により計算することを特徴とする請求項１に記載するフラッシュメモリの読み書きの制御方法。
【請求項６】
前記計算方式は、領域のブロック数から第１固定数を決定し、該固定数を論理アドレスで除して算出された商数が検索する論理アドレスがマッピングするメモリの領域を表わし、算出された余数は検索する論理アドレスがマッピングする領域アドレスマッピング表の偏移位置の値を表わすことを特徴とする請求項５に記載するフラッシュメモリの読み書きの制御方法。
【請求項７】
前記高速領域のブロック数が決定した第２固定数により算出した余数は、第２固定数を論理アドレスで除して、検索する論理アドレスがマッピングするアドレスマッピング表の偏移位置の値を表わすことを特徴とする請求項６に記載するフラッシュメモリの読み書きの制御方法。
【請求項８】
前記フラッシュメモリ内にデータを書き込み、または更新する場合、新しいデータは同一領域内に制限されることを特徴とする請求項１に記載するフラッシュメモリの読み書きの制御方法。
【請求項９】
前記領域アドレスマッピング表、高速アクセス・アドレスマッピング表、空領域のFIFOデータはSDコントローラの内部に設けられたランダム・アクセス・メモリ(RAM)内に保存されることを特徴とする請求項１に記載するフラッシュメモリの読み書きの制御方法。
【請求項１０】
前記FATアドレスマッピング表、空ブロックのFIFOデータはCPU内のランダム・アクセス・メモリ（RAM）に保存されることを特徴とする請求項１に記載するフラッシュメモリの読み書きの制御方法。
【請求項１１】
フラッシュメモリ内の複数のブロックを１つの領域と設定し、システムを作動する場合、ブロックアドレスと対応する論理アドレスの関係から２組の論理／物理的アドレスマッピング表を作成し、それぞれFATアドレスマッピング表と第１領域アドレスマッピング表を作成し、ホスト端末は検索する論理アドレスをフラッシュメモリに送信する時、検索する論理アドレスがメモリのFAT領域に存在する場合、FATアドレスマッピング表の中から物理アドレスを直接探し出すか、もしくは検索する論理アドレスがどの領域に存在するかを算出し、
検索する論理アドレスが第１領域内に存在する場合、第１領域のアドレスマッピング表から物理アドレスを探し出し、第１領域内に存在しない場合、算出結果に基づき、別の領域の領域アドレスマッピング表を作成し、検索する論理アドレスに対応する物理アドレスを探し出し、得られたアドレスをデータの読み取りや書き込みに供することを特徴とするフラッシュメモリの読み書きの制御方法。
【請求項１２】
前記マッピング表を作成する場合、２組の対応する空領域を作成するとともに、該空領域にFIFOデータを挿入し、そのうちの１つのアドレスマッピング表から検索する論理アドレスが対応する物理アドレスを探し出した場合、アドレスマッピング表の対応するFIFOデータの中から新しい空ブロックを見つけ出し、新しいデータを新しい空ブロック内に書き込むとともに、該物理アドレスの過去のデータを新しい空ブロック内にコピーし、該物理アドレス内のデータを削除し、最後に新しい空ブロックの論理／物理的アドレスのマッピング関係をアドレスマッピング表に書き込み、物理アドレスを消去して空ブロックにFIFOデータを挿入することを特徴とする請求項１１に記載するフラッシュメモリの読み書きの制御方法。
【請求項１３】
前記FIFOデータ内から新しい空ブロックを選択する場合の順序は、FIFOの原則に基づいて最も早くに存在していた空ブロックから選択することを特徴とする請求項１１に記載するフラッシュメモリの読み書きの制御方法。
【請求項１４】
前記検索する論理アドレスがどの領域に位置するかを計算する順序は、ディバイダー（divider）により算出することを特徴とする請求項１１に記載するフラッシュメモリの読み書きの制御方法。
【請求項１５】
前記フラッシュメモリ内にデータの書き込みや更新を行う場合、新しいデータは同一領域内に制限されることを特徴とする請求項１１に記載するフラッシュメモリの読み書きの制御方法。
【請求項１６】
前記領域アドレスマッピング表、及び空ブロックのFIFOデータは、SDコントローラ内のランダム・アクセス・メモリに保存されることを特徴とする請求項１１に記載するフラッシュメモリの読み書きの制御方法。
【請求項１７】
前記FATアドレスマッピング表、及び空ブロックのFIFOデータはCPU内のランダム・アクセス・メモリに保存されることを特徴とする請求項１に記載するフラッシュメモリの読み書きの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はフラッシュメモリの読み書きの制御方法に関し、特にフラッシュメモリの読み書き方法を制御して読み書き速度を速めるフラッシュメモリの読み書きの制御方法に関する。
【背景技術】
【０００２】
メモリの操作原理において、コントローラがメモリをデータ保存領域として使用する場合、計算の結果及びそのデータは該領域に保存され、プログラムがアクセスする場合は、該領域にアクセスする。また、データを書き込み保存する場合、コントローラはデータの保存に必要とするアドレスを決定し、バスを介して該アドレスをメモリに送信する。よって、コントローラは対応するデータを正確なアドレスへ送信することができるようになる。またデータを読み取る場合には、コントローラから発信されたコマンドによって当該アドレスにアクセスし、データを取り出し、メモリが反応した後、コントローラが確実にデータを受信するまでデータを送信する。かかる手順にかかる時間がメモリの読み取り時間となる。
【０００３】
フラッシュメモリは複数のビットによってブロックを構成し、これを単位としてデータの書き込み、読み取りに提供される。データ保存に提供されるそれぞれのブロックは、いずれもフラッシュメモリ内部空間の順序を代表する物理アドレスを具えると同時に、各ブロックはホスト端末のオペレーションシステムが表示する論理的アドレスを記録し、且つ各物理アドレスはいずれも対応する論理アドレスを具えている。
【０００４】
但し、図１に開示するように、フラッシュメモリのメカニズムにおいて、ホスト端末がデータをアクセスするために必要とする物理的アドレスと論理的アドレスは、図１に開示するように非線形の対応関係にあって、直接物理的アドレスで論理アドレスの位置を知ることはできない。よって、データをアクセスする場合は最初からサーチしなければならず、このため一般には論理／物理的アドレスを対照させるアドレスマッピングテーブルを形成して、対応する物理的アドレスを探し出す。
【０００５】
該アドレスマッピングテーブルは、システム作動時に作成される。かかる表は論理アドレスと物理アドレスの間の相対関係を記録した表であって、2KサイズのSRAMによって該対照表を保存する。仮に２つ以上のアドレスマッピングテーブルがある場合、もしくは比較的大きなアドレスマッピングが存在する場合、SRAMの数や、容量を増加して保存しなけばならない。よって、フラッシュメモリのコントロールチップのサイズが大きくなる。しかし、フラッシュメモリ自身が１つの領域を越え、且つSRAMが固定された場合、ホスト端末のアドレスがマッピングの表の中に存在しないと、フラッシュメモリの他の領域から再度、物理アドレスを探し出して、対応する物理的アドレスをアドレスマッピングテーブルに書き込んで、該論理的アドレスに対応する物理的アドレスが迅速に得られるようにしなければならない。
【０００６】
フラッシュメモリについて言えば、そのデータの書き込みに必要な時間は読み取りに必要な時間よりも長い。しかも、データをメモリに書き込むと同時に、書き込んだアドレス内にデータがすでに存在しているか否かを考慮しなければならない。該アドレスにすでにデータが存在していた場合、ホスト端末によって書き込むデータをデータが存在していない空のブロックに予め書き込み、かつ本来該ブロックのアドレスに書き込まれたデータを新しいブロックへ移動させて、ホスト端末のアドレスが物理アドレスに対応できるようにする。このため、フラッシュメモリの書き込み操作は非常に複雑で、特に完全に空のブロックを探す場合、かなりの時間がかかり、すべてのブロックをサーチして、はじめて使用できる空のブロックを探し出す場合もある。よって、フラッシュメモリの読み書き方法を効率の良いものにするべく、従来の技術の欠点を改善できる方法の解決が望まれている。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
この発明は、フラッシュメモリを効率よく制御するとともに、フラッシュメモリのコントロールチップのサイズを縮小することができるフラッシュメモリの読み書きの制御方法を提供することを課題とする。
【０００８】
また、この発明は、フラッシュメモリが空のブロックを検索する回数を減らして書き込みの速度を高めることのできるフラッシュメモリの読み書きの制御方法を提供することを課題とする。
【課題を解決するための手段】
【０００９】
以下、この発明について具体的に説明する。
請求項１に記載するフラッシュメモリの読み書きの制御方法は、フラッシュメモリの複数のブロックを１つの領域に設定し、システムの作動時に該ブロックアドレスと該ブロックアドレスに対応する論理アドレスとの関係に基づき、FATアドレスマッピング表と、第１領域のアドレスマッピング表と、第２領域の部分的ブロックに対する高速アクセス・アドレスマッピング表の３組の論理／物理的アドレスマッピング表を作成し、
ホスト端末から検索を行う論理アドレスをフラッシュメモリに送信する場合、該検索を行う論理アドレスが該メモリのFAT領域に存在する場合は、該FATアドレスマッピング表から直接物理的アドレスを検出し、該検索を行う論理アドレスが該メモリのFAT領域に存在しない場合は、該検索を行う論理アドレスがどの領域のどのブロックに位置するかを計算し、
該計算の結果、該検索を行う論理アドレスが第１領域内に存在すると判断された場合は、第１領域のアドレスマッピング表から物理アドレスを検索し、該検索を行う論理アドレスが第１領域内に存在しない場合には高速アクセス・アドレスマッピング表の検索を行い、
該高速アクセス・アドレスマッピング表に該検索を行う論理アドレスが存在しなかった場合は、該計算結果に基づいて別途他の高速アクセス・アドレスマッピング表を作成し、更に検索の結果に基づいて別途他の領域の領域アドレスマッピング表を作成するか否かを決定し、該検索を行う論理アドレスに対応する物理的アドレスが検出されるまで検索を行って得られたアドレスをデータの読み取り、もしくは書き込みに供する方法である。
【００１０】
請求項２に記載するフラッシュメモリの読み書きの制御方法は、請求項１におけるマッピング表を作成する場合、３組の対応する空のブロックを作成してFIFOデータを挿入し、検索する論理アドレスに対応する物理アドレスが作成されたアドレスマッピング表に存在した場合、アドレスマッピング表の中の対応するFIFOデータの中から新しい空ブロックを探し出し、新しいデータを新しいブロック内に書き込むとともに、該物理アドレスのもとのデータを新しいブロック内にコピーして物理アドレス内のデータを消去し、最後に新しいブロックの論理／物理アドレスのマッピング関係によりアドレスマッピング表を作成し、物理アドレスを消去した後の空ブロックにFIFOデータを増加させる方法である。
【００１１】
請求項３に記載するフラッシュメモリの読み書きの制御方法は、請求項２におけるFIFOデータの中から新しい空ブロックを選択する場合、FIFOの原則により最も早くから存在する空ブロックを選択する方法である。
【００１２】
請求項４に記載するフラッシュメモリの読み書きの制御方法は、請求項１における領域が、１つの領域に１つの高速アクセス・アドレスマッピング表を作成する方法である。
【００１３】
請求項５に記載するフラッシュメモリの読み書きの制御方法は、請求項１における検索する論理アドレスが、どの領域のどのブロックに存在しているかを計算する場合、ディバイダー（divider）により計算する方法である。
【００１４】
請求項６に記載するフラッシュメモリの読み書きの制御方法は、請求項５における計算方式が、領域のブロック数から第１固定数を決定し、該固定数を論理アドレスで除して算出された商数が検索する論理アドレスがマッピングするメモリの領域を表わし、算出された余数は検索する論理アドレスがマッピングする領域アドレスマッピング表の偏移位置の値を表わす方法である。
【００１５】
請求項７に記載するフラッシュメモリの読み書きの制御方法は、請求項６における高速領域のブロック数が決定した第２固定数により算出した余数は、第２固定数を論理アドレスで除して、検索する論理アドレスがマッピングするアドレスマッピング表の偏移位置の値を表わす方法である。
【００１６】
請求項８に記載するフラッシュメモリの読み書きの制御方法は、請求項１におけるフラッシュメモリ内にデータを書き込み、または更新する場合、新しいデータは同一領域内に制限される方法である。
【００１７】
請求項９に記載するフラッシュメモリの読み書きの制御方法は、請求項１における領域アドレスマッピング表、高速アクセス・アドレスマッピング表、空領域のFIFOデータはSDコントローラの内部に設けられたランダム・アクセス・メモリ(RAM)内に保存される方法である。
【００１８】
請求項１０に記載するフラッシュメモリの読み書きの制御方法は、請求項１におけるFATアドレスマッピング表、空ブロックのFIFOデータはCPU内のランダム・アクセス・メモリ（RAM）に保存される方法である。
【００１９】
請求項１１に記載するフラッシュメモリの読み書きの制御方法は、フラッシュメモリ内の複数のブロックを１つの領域と設定し、システムを作動する場合、ブロックアドレスと対応する論理アドレスの関係から２組の論理／物理的アドレスマッピング表を作成し、それぞれFATアドレスマッピング表と第１領域アドレスマッピング表を作成し、ホスト端末は検索する論理アドレスをフラッシュメモリに送信する時、検索する論理アドレスがメモリのFAT領域に存在する場合、FATアドレスマッピング表の中から物理アドレスを直接探し出すか、もしくは検索する論理アドレスがどの領域に存在するかを算出し、
検索する論理アドレスが第１領域内に存在する場合、第１領域のアドレスマッピング表から物理アドレスを探し出し、第１領域内に存在しない場合、算出結果に基づき、別の領域の領域アドレスマッピング表を作成し、検索する論理アドレスに対応する物理アドレスを探し出し、得られたアドレスをデータの読み取りや書き込みに供する方法である。
【００２０】
請求項１２に記載するフラッシュメモリの読み書きの制御方法は、請求項１１におけるマッピング表を作成する場合、２組の対応する空領域を作成するとともに、該空領域にFIFOデータを挿入し、そのうちの１つのアドレスマッピング表から検索する論理アドレスが対応する物理アドレスを探し出した場合、アドレスマッピング表の対応するFIFOデータの中から新しい空ブロックを見つけ出し、新しいデータを新しい空ブロック内に書き込むとともに、該物理アドレスの過去のデータを新しい空ブロック内にコピーし、該物理アドレス内のデータを削除し、最後に新しい空ブロックの論理／物理的アドレスのマッピング関係をアドレスマッピング表に書き込み、物理アドレスを消去して空ブロックにFIFOデータを挿入する方法である。
【００２１】
請求項１３に記載するフラッシュメモリの読み書きの制御方法は、請求項１１におけるFIFOデータ内から新しい空ブロックを選択する場合の順序は、FIFOの原則に基づいて最も早くに存在していた空ブロックから選択する方法である。
【００２２】
請求項１４に記載するフラッシュメモリの読み書きの制御方法は、請求項１１における検索する論理アドレスがどの領域に位置するかを計算する順序は、ディバイダー（divider）により算出する方法である。
【００２３】
請求項１５に記載するフラッシュメモリの読み書きの制御方法は、請求項１１におけるフラッシュメモリ内にデータの書き込みや更新を行う場合、新しいデータは同一領域内に制限される方法である。
【００２４】
請求項１６に記載するフラッシュメモリの読み書きの制御方法は、請求項１１における領域アドレスマッピング表、及び空ブロックのFIFOデータは、SDコントローラ内のランダム・アクセス・メモリに保存される方法である。
【００２５】
請求項１７に記載するフラッシュメモリの読み書きの制御方法は、請求項１におけるFATアドレスマッピング表、及び空ブロックのFIFOデータはCPU内のランダム・アクセス・メモリに保存される方法である。
【発明の効果】
【００２６】
この発明のフラッシュメモリの読み書きの制御方法は、フラッシュメモリが空ブロックを検索する回数を減らし、データの書き込み速度を高める効果を有する。
【発明を実施するための最良の形態】
【００２７】
SDカードコントローラはカードリーダー、デジタルカメラなどの多種多様な電子製品のデータをホスト端末から受信してフラッシュメモリ内に保存する。これはフラッシュメモリの制御有効率を高め、コントローラの設計時のチップサイズを縮小するためである。したがって、SDカードコントローラに論理的アドレス及び物理的アドレスのマッピングテーブルの計算方法を提供することによって、フラッシュメモリの制御をさらに効率良くするとともに、チップサイズを縮小する目的を達成することができる。
【００２８】
基本的にフラッシュメモリの内部構造は領域（Zone）と、ブロック（Block）と、ページ（Page）との３つの計算単位に分けられる。この発明による方法ではフラッシュメモリ（１０）内の複数のブロックを１つの領域として設定する。システムを作動する時、各ブロックアドレスとこれらに対応する論理アドレスとの関係により３組の論理／物理的アドレスのマッピング表を作成する。即ち、図２に開示するFAT（File  Alocation  Table）アドレスマッピング表（１２）と、第１領域（Zone０）アドレスマッピング表（１４）と、第２領域（Zone１）の部分的ブロックの高速アクセス・アドレスマッピング表（１６）である。
【００２９】
該FATアドレスマッピング表（１２）は直接、CPU内のランダム・アクセス・メモリ（RAM）の内部に作成され、比較的高い効率を達成することができる。しかもFAT空ブロックのFIFOデータも、CPU内のランダム・アクセス・メモリ（RAM）内に作成される。
【００３０】
該第１領域アドレスマッピング表（１４）と、高速アクセス.・アドレスマッピング表（１６）と、その空ブロックFIFOデータはSDカードコントローラ内部のSRAM内に形成される。
【００３１】
ホスト端末が検索を行う論理アドレス（１８）をフラッシュメモリのコントローラへ伝送する場合、先に該検索を行う論理アドレス（１８）がフラッシュメモリのFAT内にあるかどうかを確認する。仮に該論理アドレス（１８）がFAT内に存在する場合は、FATアドレスマッピング表（１２）から直接対応する物理的アドレスを検索する。仮に該論理アドレス（１８）がFAT内に存在しなかった場合は、先に除算器（divider）を利用して該論理アドレス（１８）がどの領域のどのブロックにあるかを計算する。この計算の結果、検索を行う該論理アドレス（１８）が第１領域（Zone０）内にあると判断された場合、第１領域アドレスマッピング表（１４）から物理的アドレスを検索する。仮に第１領域内に存在しない場合は、引き続き高速アクセス・アドレスマッピング表（１６）を検索する。
【００３２】
また高速アクセス・アドレスマッピング表（１６）の中にも検索する論理アドレス（１８）が見つからなかった場合、上述の計算の結果に基づいて、別途他の高速アクセス・アドレスマッピング表（１６’）を作成する。更に、別途作成した高速アクセス・アドレスマッピング表（１６’）に基づく検索の結果によって、他の領域の領域アドレスマッピング表（１４’）を構築するかどうかを決定し、検索を行う該論理アドレス（１８）に対応する物理的アドレスが得られるまで検索を行い、得られたアドレスをデータの読み取りと書き込みに供する。それぞれの領域には高速アクセス・アドレスマッピング表が１つだけ作成される。
【００３３】
即ち、ホスト端末が検索を行う論理アドレスがZone０に位置しておらず、Zone１の高速アクセスブロック内にも位置していなかった場合、新規に高速アクセス・アドレスマッピング表を構築して、これに切り替えなければならない。検索を行うアドレスがZone０内に位置していなく、Zone１内に位置していることが確認された場合は、Zone１の領域アドレスマッピング表を新たに構築し、ホスト端末が対応する物理的アドレスを検索するために供する。
【００３４】
また上述の３組のアドレスマッピング表（１２）、（１４）、（１６）を作成する場合、同時に該３組のアドレスマッピング表（１２）、（１４）、（１６）に対応する空ブロックのFIFOデータ（図示しない）を構築する。検索を行う論理アドレス（１８）に対応する物理的アドレスが該アドレスマッピング表（１２）、（１４）、（１６）の内の１つから検索された場合、FIFOの原則に基づいて、先にアドレスマッピング表の対応するFIFOデータから最先に形成された新しい空ブロックを探し出す。次いで、新しいデータを該新しい空ブロック内に改めて書き込むとともに、物理アドレス内の本来のデータを該新しい空ブロック内に複写する。次ぎに、物理的アドレス内のデータを消去し、最後に新しい空ブロックの論理アドレスと物理的アドレスのマッピング関係をアドレスマッピング表の中に作成する。また、該物理的アドレスを消去した空ブロックを対応するFIFOデータに追加する。よって、それぞれのアドレスのマッピング表は空ブロックのFIFOデータと合わせ用いることによって、フラッシュメモリの効率を高め、各ブロックの平均使用頻度を効率良く高めることができる。
【実施例】
【００３５】
本発明の精神については、以上の説明の通りである。次いで、図２を参照にして、この発明の各マッピング表の構造とメカニズムについて説明する。この発明においては、フラッシュメモリが空ブロックを検索する回数を減少させるために、空ブロックのFIFO（Empty  Block  FIFO）メカニズムを応用して、領域内の未使用のブロックを集中させる。フラッシュメモリ内にデータを書き込む場合、直接該FIFOデータ内から空ブロックを呼び出せば物理的アドレスに直接書き込むことができ、このためフラッシュメモリの空ブロックを検索する回数を減少させることができ、またデータを書き込む過程において、それぞれのブロック内のページが使用されているかどうかをサーチする必要がなく、書き込み速度が上昇する。また、それぞれのブロックが消去された場合、該物理的アドレスはFIFOデータの中に保存される。よって、各消去されたブロックは物理的アドレスがFIFOバッファデータ内に補充され、FIFOデータを作成しなおす回数を減少させることができ、且つ全てのブロックの使用頻度が均一になる。
【００３６】
フラッシュメモリの操作原理を見ると、各領域は原則上１０２４のブロックを具えている。かかるフラッシュメモリの容量が１６Mバイト以上になる時、必ず２つ以上の領域が現われ、十分な旋回空間を提供する。各領域は１０００個のブロックを使用し、残りのブロックは保留ブロックとみなされ、データの旋回空間として利用される。よってフラッシュメモリが１２８Mバイトとすると、合計で８つの領域に分けられる。このため合計８１９２個のブロックを使用することができる。しかし、この発明では８０００個のブロックを８つの領域内に平均して分散させて使用するため、各領域では２４のブロックが保留ブロックになる。よってホストの論理アドレスは０〜７９９９アドレスを上回ることがない。このため論理アドレスは１０００（領域のブロック数が決定する固定数）を除して、論理アドレスがどの領域かを計算することができ、対応するアドレスマッピング表のオフセット（Offset）がどうなっているかを知ることができる。即ち、直接物理アドレスに対応することができる。しかし、保存領域アドレスマッピング表のランダム・アクセス・メモリ(RAM)は２Kしかないため、必ずアドレスマッピング表で現在の対応領域の論理アドレスが対応するアドレスであるかを確認しなければならない。また現在の対応領域が論理アドレスの対応するべきでない領域だった場合、必ず別のアドレスマッピング表を作成しなければならない。且つ、アドレスの演算を加速する。この発明では１つの１０００と１２８を除するディバイダー（divider）を設計する。かかるディバイダーは論理アドレスを入力すれば自動的に１０００と１２８の商数と余数を算出する。即ち、直接アドレスマッピング表の実際のアドレスを検索し、システムの効率を増加させる。
【００３７】
さらにFAT表の変更は頻繁に行われる。よって１組のFAT専用のFATアドレスマッピング表と空ブロックFIFOデータを増設する。かかるFATアドレスマッピング表と空ブロックFIFOデータは論理アドレスの０〜３９のアドレスに直接対応する。しかし、ホストの論理アドレスが０〜３９に位置している場合、現在の領域アドレスマッピング表がどの領域に対応しているか検討する必要がなく、FATアドレスマッピング表の中から直接対応するアドレスを探し出せばよい。このため領域アドレスマッピング表を作成する回数を減少させることができる。
【００３８】
全体の領域アドレスマッピング表を作成する回数を減少するため、１組の高速アクセス・アドレスマッピング表と快速空ブロックFIFOデータを増加する。かかる高速アクセス・アドレスマッピング表のサイズは２５６バイトで、１２８個のブロックに保存することができる。ホストの論理ブロックが領域アドレスマッピングとFATアドレスマッピング表の中に存在しない場合、高速アクセス・アドレスマッピング表から対応するアドレスを検索する。論理アドレスが存在しない場合、高速アクセス・アドレスマッピング表を作成する。なぜならこの表は１２８個のブロックだけで構成されているため、高速アクセス・アドレスマッピング表を作成する速度は２Kの領域アドレスマッピング表を作成するよりも速い。よって全体の領域アドレスマッピング表を作成する回数を減少させることができる。
【００３９】
従来の構築方法をさらに向上させるもう１種類の組み合わせ方式を説明する。かかる組み合わせ方式は、上述のFATアドレスマッピング表（１２）と空ブロックFIFOデータを保留し、高速アクセス・アドレスマッピング表（１６）の部分的消去を行う。また、もとの第１領域アドレスマッピング表（１４）のサイズを１０２４ブロックから２５６ブロックへ修正し、領域アドレスマッピング表を直接検索する。検索する論理アドレスに対応する物理アドレスを取得するまで検索を続け、得られたアドレスをデータ読み取りや書き込みに供する。この方式はアドレスマッピング表を作成する時間を節減し、SRAMのサイズを縮小させる。よって、もとの２Kから５１２バイトへ縮小させることができ、４分の３のSRAMへと縮小するため、効率を４倍に増加させる。このためコストを節減するとともに、効率を増加させる。
【００４０】
即ち、上述の方法は領域アドレスマッピング表を空ブロックFIFOデータと合わせて使用するとともに、FATの表における論理アドレスに領域アドレスマッピング表と空ブロックFIFOデータと合わせる概念を用いるため、フラッシュメモリを読み書きする場合に領域アドレスマッピング表がどの領域に対応しているかにかかわらず、FAT領域のFATアドレスマッピング表を作成する必要がない。
また高速アクセス・アドレスマッピング表を増加し、論理アドレスが出現し、且つ領域アドレスマッピング表とFATアドレスマッピング表の中に存在しない場合、先に比較的小さい高速アクセス・アドレスマッピング表を作成するため、システムの速度を確実に高めることができる。
【００４１】
以上は、この発明の好ましい実施例であって、この発明の実施の範囲を限定するものではない。よって、当業者のなし得る修正、もしくは変更であって、この発明の精神の下においてなされ、この発明に対して均等の効果を有するものは、いずれもこの発明の特許請求の範囲に属するものとする。
【図面の簡単な説明】
【００４２】
【図１】従来のフラッシュメモリにおける物理アドレスと論理アドレスの関係を示した説明図とかかる関係を利用して作成したアドレスマッピング表を示した説明図である。
【図２】この発明の論理アドレスの構造を示した説明図である。
【符号の説明】
【００４３】
１０  フラッシュメモリ
１２  FATアドレスマッピング表
１４、１４’ 第１領域アドレスマッピング表
１６、１６’ 高速アクセス・アドレスマッピング表
１８  論理アドレス
【図１】
2005209058.tif 000003
【図２】
2005209058.tif 000004