JP2005209058A - フラッシュメモリの読み書きの制御方法 - Google Patents
フラッシュメモリの読み書きの制御方法 Download PDFInfo
- Publication number
- JP2005209058A JP2005209058A JP2004016672A JP2004016672A JP2005209058A JP 2005209058 A JP2005209058 A JP 2005209058A JP 2004016672 A JP2004016672 A JP 2004016672A JP 2004016672 A JP2004016672 A JP 2004016672A JP 2005209058 A JP2005209058 A JP 2005209058A
- Authority
- JP
- Japan
- Prior art keywords
- address
- area
- mapping table
- flash memory
- address mapping
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000013507 mapping Methods 0.000 claims abstract description 144
- 238000004364 calculation method Methods 0.000 claims description 14
- 238000013500 data storage Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Abstract
【課題】 効率よく制御され、コントロールチップのサイズを縮小し、書き込みが速いフラッシュメモリの読み書きの制御方法を提供する。
【解決手段】フラッシュメモリの複数のブロックを1つの領域に設定し、システム作動時に対応する論理アドレスとの関係に基づき、FATと第1領域のアドレスマッピング表と、第2領域の部分的ブロックに対する高速アクセス・アドレスマッピング表を作成し、ホスト端末から検索を行う論理アドレスをフラッシュメモリに送信する場合、該論理アドレスが該メモリのFAT領域に存在すれば、表から直接物理的アドレスを検出し、存在しなければその位置を計算し、該論理アドレスが第1領域内に存在すれば当該アドレスマッピング表から物理アドレスを検索し、存在しなければ高速アクセス・アドレスマッピング表の検索を行い、該論理アドレスが存在しない場合は他の高速アクセス・アドレスマッピング表を作成し、更に他の領域の領域アドレスマッピング表を作成するか否かを決定し、該論理アドレスに対応する物理的アドレスを検出するまで検索を行う。
【選択図】 図2
【解決手段】フラッシュメモリの複数のブロックを1つの領域に設定し、システム作動時に対応する論理アドレスとの関係に基づき、FATと第1領域のアドレスマッピング表と、第2領域の部分的ブロックに対する高速アクセス・アドレスマッピング表を作成し、ホスト端末から検索を行う論理アドレスをフラッシュメモリに送信する場合、該論理アドレスが該メモリのFAT領域に存在すれば、表から直接物理的アドレスを検出し、存在しなければその位置を計算し、該論理アドレスが第1領域内に存在すれば当該アドレスマッピング表から物理アドレスを検索し、存在しなければ高速アクセス・アドレスマッピング表の検索を行い、該論理アドレスが存在しない場合は他の高速アクセス・アドレスマッピング表を作成し、更に他の領域の領域アドレスマッピング表を作成するか否かを決定し、該論理アドレスに対応する物理的アドレスを検出するまで検索を行う。
【選択図】 図2
Description
この発明はフラッシュメモリの読み書きの制御方法に関し、特にフラッシュメモリの読み書き方法を制御して読み書き速度を速めるフラッシュメモリの読み書きの制御方法に関する。
メモリの操作原理において、コントローラがメモリをデータ保存領域として使用する場合、計算の結果及びそのデータは該領域に保存され、プログラムがアクセスする場合は、該領域にアクセスする。また、データを書き込み保存する場合、コントローラはデータの保存に必要とするアドレスを決定し、バスを介して該アドレスをメモリに送信する。よって、コントローラは対応するデータを正確なアドレスへ送信することができるようになる。またデータを読み取る場合には、コントローラから発信されたコマンドによって当該アドレスにアクセスし、データを取り出し、メモリが反応した後、コントローラが確実にデータを受信するまでデータを送信する。かかる手順にかかる時間がメモリの読み取り時間となる。
フラッシュメモリは複数のビットによってブロックを構成し、これを単位としてデータの書き込み、読み取りに提供される。データ保存に提供されるそれぞれのブロックは、いずれもフラッシュメモリ内部空間の順序を代表する物理アドレスを具えると同時に、各ブロックはホスト端末のオペレーションシステムが表示する論理的アドレスを記録し、且つ各物理アドレスはいずれも対応する論理アドレスを具えている。
但し、図1に開示するように、フラッシュメモリのメカニズムにおいて、ホスト端末がデータをアクセスするために必要とする物理的アドレスと論理的アドレスは、図1に開示するように非線形の対応関係にあって、直接物理的アドレスで論理アドレスの位置を知ることはできない。よって、データをアクセスする場合は最初からサーチしなければならず、このため一般には論理/物理的アドレスを対照させるアドレスマッピングテーブルを形成して、対応する物理的アドレスを探し出す。
該アドレスマッピングテーブルは、システム作動時に作成される。かかる表は論理アドレスと物理アドレスの間の相対関係を記録した表であって、2KサイズのSRAMによって該対照表を保存する。仮に2つ以上のアドレスマッピングテーブルがある場合、もしくは比較的大きなアドレスマッピングが存在する場合、SRAMの数や、容量を増加して保存しなけばならない。よって、フラッシュメモリのコントロールチップのサイズが大きくなる。しかし、フラッシュメモリ自身が1つの領域を越え、且つSRAMが固定された場合、ホスト端末のアドレスがマッピングの表の中に存在しないと、フラッシュメモリの他の領域から再度、物理アドレスを探し出して、対応する物理的アドレスをアドレスマッピングテーブルに書き込んで、該論理的アドレスに対応する物理的アドレスが迅速に得られるようにしなければならない。
フラッシュメモリについて言えば、そのデータの書き込みに必要な時間は読み取りに必要な時間よりも長い。しかも、データをメモリに書き込むと同時に、書き込んだアドレス内にデータがすでに存在しているか否かを考慮しなければならない。該アドレスにすでにデータが存在していた場合、ホスト端末によって書き込むデータをデータが存在していない空のブロックに予め書き込み、かつ本来該ブロックのアドレスに書き込まれたデータを新しいブロックへ移動させて、ホスト端末のアドレスが物理アドレスに対応できるようにする。このため、フラッシュメモリの書き込み操作は非常に複雑で、特に完全に空のブロックを探す場合、かなりの時間がかかり、すべてのブロックをサーチして、はじめて使用できる空のブロックを探し出す場合もある。よって、フラッシュメモリの読み書き方法を効率の良いものにするべく、従来の技術の欠点を改善できる方法の解決が望まれている。
この発明は、フラッシュメモリを効率よく制御するとともに、フラッシュメモリのコントロールチップのサイズを縮小することができるフラッシュメモリの読み書きの制御方法を提供することを課題とする。
また、この発明は、フラッシュメモリが空のブロックを検索する回数を減らして書き込みの速度を高めることのできるフラッシュメモリの読み書きの制御方法を提供することを課題とする。
以下、この発明について具体的に説明する。
請求項1に記載するフラッシュメモリの読み書きの制御方法は、フラッシュメモリの複数のブロックを1つの領域に設定し、システムの作動時に該ブロックアドレスと該ブロックアドレスに対応する論理アドレスとの関係に基づき、FATアドレスマッピング表と、第1領域のアドレスマッピング表と、第2領域の部分的ブロックに対する高速アクセス・アドレスマッピング表の3組の論理/物理的アドレスマッピング表を作成し、
ホスト端末から検索を行う論理アドレスをフラッシュメモリに送信する場合、該検索を行う論理アドレスが該メモリのFAT領域に存在する場合は、該FATアドレスマッピング表から直接物理的アドレスを検出し、該検索を行う論理アドレスが該メモリのFAT領域に存在しない場合は、該検索を行う論理アドレスがどの領域のどのブロックに位置するかを計算し、
該計算の結果、該検索を行う論理アドレスが第1領域内に存在すると判断された場合は、第1領域のアドレスマッピング表から物理アドレスを検索し、該検索を行う論理アドレスが第1領域内に存在しない場合には高速アクセス・アドレスマッピング表の検索を行い、
該高速アクセス・アドレスマッピング表に該検索を行う論理アドレスが存在しなかった場合は、該計算結果に基づいて別途他の高速アクセス・アドレスマッピング表を作成し、更に検索の結果に基づいて別途他の領域の領域アドレスマッピング表を作成するか否かを決定し、該検索を行う論理アドレスに対応する物理的アドレスが検出されるまで検索を行って得られたアドレスをデータの読み取り、もしくは書き込みに供する方法である。
請求項1に記載するフラッシュメモリの読み書きの制御方法は、フラッシュメモリの複数のブロックを1つの領域に設定し、システムの作動時に該ブロックアドレスと該ブロックアドレスに対応する論理アドレスとの関係に基づき、FATアドレスマッピング表と、第1領域のアドレスマッピング表と、第2領域の部分的ブロックに対する高速アクセス・アドレスマッピング表の3組の論理/物理的アドレスマッピング表を作成し、
ホスト端末から検索を行う論理アドレスをフラッシュメモリに送信する場合、該検索を行う論理アドレスが該メモリのFAT領域に存在する場合は、該FATアドレスマッピング表から直接物理的アドレスを検出し、該検索を行う論理アドレスが該メモリのFAT領域に存在しない場合は、該検索を行う論理アドレスがどの領域のどのブロックに位置するかを計算し、
該計算の結果、該検索を行う論理アドレスが第1領域内に存在すると判断された場合は、第1領域のアドレスマッピング表から物理アドレスを検索し、該検索を行う論理アドレスが第1領域内に存在しない場合には高速アクセス・アドレスマッピング表の検索を行い、
該高速アクセス・アドレスマッピング表に該検索を行う論理アドレスが存在しなかった場合は、該計算結果に基づいて別途他の高速アクセス・アドレスマッピング表を作成し、更に検索の結果に基づいて別途他の領域の領域アドレスマッピング表を作成するか否かを決定し、該検索を行う論理アドレスに対応する物理的アドレスが検出されるまで検索を行って得られたアドレスをデータの読み取り、もしくは書き込みに供する方法である。
請求項2に記載するフラッシュメモリの読み書きの制御方法は、請求項1におけるマッピング表を作成する場合、3組の対応する空のブロックを作成してFIFOデータを挿入し、検索する論理アドレスに対応する物理アドレスが作成されたアドレスマッピング表に存在した場合、アドレスマッピング表の中の対応するFIFOデータの中から新しい空ブロックを探し出し、新しいデータを新しいブロック内に書き込むとともに、該物理アドレスのもとのデータを新しいブロック内にコピーして物理アドレス内のデータを消去し、最後に新しいブロックの論理/物理アドレスのマッピング関係によりアドレスマッピング表を作成し、物理アドレスを消去した後の空ブロックにFIFOデータを増加させる方法である。
請求項3に記載するフラッシュメモリの読み書きの制御方法は、請求項2におけるFIFOデータの中から新しい空ブロックを選択する場合、FIFOの原則により最も早くから存在する空ブロックを選択する方法である。
請求項4に記載するフラッシュメモリの読み書きの制御方法は、請求項1における領域が、1つの領域に1つの高速アクセス・アドレスマッピング表を作成する方法である。
請求項5に記載するフラッシュメモリの読み書きの制御方法は、請求項1における検索する論理アドレスが、どの領域のどのブロックに存在しているかを計算する場合、ディバイダー(divider)により計算する方法である。
請求項6に記載するフラッシュメモリの読み書きの制御方法は、請求項5における計算方式が、領域のブロック数から第1固定数を決定し、該固定数を論理アドレスで除して算出された商数が検索する論理アドレスがマッピングするメモリの領域を表わし、算出された余数は検索する論理アドレスがマッピングする領域アドレスマッピング表の偏移位置の値を表わす方法である。
請求項7に記載するフラッシュメモリの読み書きの制御方法は、請求項6における高速領域のブロック数が決定した第2固定数により算出した余数は、第2固定数を論理アドレスで除して、検索する論理アドレスがマッピングするアドレスマッピング表の偏移位置の値を表わす方法である。
請求項8に記載するフラッシュメモリの読み書きの制御方法は、請求項1におけるフラッシュメモリ内にデータを書き込み、または更新する場合、新しいデータは同一領域内に制限される方法である。
請求項9に記載するフラッシュメモリの読み書きの制御方法は、請求項1における領域アドレスマッピング表、高速アクセス・アドレスマッピング表、空領域のFIFOデータはSDコントローラの内部に設けられたランダム・アクセス・メモリ(RAM)内に保存される方法である。
請求項10に記載するフラッシュメモリの読み書きの制御方法は、請求項1におけるFATアドレスマッピング表、空ブロックのFIFOデータはCPU内のランダム・アクセス・メモリ(RAM)に保存される方法である。
請求項11に記載するフラッシュメモリの読み書きの制御方法は、フラッシュメモリ内の複数のブロックを1つの領域と設定し、システムを作動する場合、ブロックアドレスと対応する論理アドレスの関係から2組の論理/物理的アドレスマッピング表を作成し、それぞれFATアドレスマッピング表と第1領域アドレスマッピング表を作成し、ホスト端末は検索する論理アドレスをフラッシュメモリに送信する時、検索する論理アドレスがメモリのFAT領域に存在する場合、FATアドレスマッピング表の中から物理アドレスを直接探し出すか、もしくは検索する論理アドレスがどの領域に存在するかを算出し、
検索する論理アドレスが第1領域内に存在する場合、第1領域のアドレスマッピング表から物理アドレスを探し出し、第1領域内に存在しない場合、算出結果に基づき、別の領域の領域アドレスマッピング表を作成し、検索する論理アドレスに対応する物理アドレスを探し出し、得られたアドレスをデータの読み取りや書き込みに供する方法である。
検索する論理アドレスが第1領域内に存在する場合、第1領域のアドレスマッピング表から物理アドレスを探し出し、第1領域内に存在しない場合、算出結果に基づき、別の領域の領域アドレスマッピング表を作成し、検索する論理アドレスに対応する物理アドレスを探し出し、得られたアドレスをデータの読み取りや書き込みに供する方法である。
請求項12に記載するフラッシュメモリの読み書きの制御方法は、請求項11におけるマッピング表を作成する場合、2組の対応する空領域を作成するとともに、該空領域にFIFOデータを挿入し、そのうちの1つのアドレスマッピング表から検索する論理アドレスが対応する物理アドレスを探し出した場合、アドレスマッピング表の対応するFIFOデータの中から新しい空ブロックを見つけ出し、新しいデータを新しい空ブロック内に書き込むとともに、該物理アドレスの過去のデータを新しい空ブロック内にコピーし、該物理アドレス内のデータを削除し、最後に新しい空ブロックの論理/物理的アドレスのマッピング関係をアドレスマッピング表に書き込み、物理アドレスを消去して空ブロックにFIFOデータを挿入する方法である。
請求項13に記載するフラッシュメモリの読み書きの制御方法は、請求項11におけるFIFOデータ内から新しい空ブロックを選択する場合の順序は、FIFOの原則に基づいて最も早くに存在していた空ブロックから選択する方法である。
請求項14に記載するフラッシュメモリの読み書きの制御方法は、請求項11における検索する論理アドレスがどの領域に位置するかを計算する順序は、ディバイダー(divider)により算出する方法である。
請求項15に記載するフラッシュメモリの読み書きの制御方法は、請求項11におけるフラッシュメモリ内にデータの書き込みや更新を行う場合、新しいデータは同一領域内に制限される方法である。
請求項16に記載するフラッシュメモリの読み書きの制御方法は、請求項11における領域アドレスマッピング表、及び空ブロックのFIFOデータは、SDコントローラ内のランダム・アクセス・メモリに保存される方法である。
請求項17に記載するフラッシュメモリの読み書きの制御方法は、請求項1におけるFATアドレスマッピング表、及び空ブロックのFIFOデータはCPU内のランダム・アクセス・メモリに保存される方法である。
この発明のフラッシュメモリの読み書きの制御方法は、フラッシュメモリが空ブロックを検索する回数を減らし、データの書き込み速度を高める効果を有する。
SDカードコントローラはカードリーダー、デジタルカメラなどの多種多様な電子製品のデータをホスト端末から受信してフラッシュメモリ内に保存する。これはフラッシュメモリの制御有効率を高め、コントローラの設計時のチップサイズを縮小するためである。したがって、SDカードコントローラに論理的アドレス及び物理的アドレスのマッピングテーブルの計算方法を提供することによって、フラッシュメモリの制御をさらに効率良くするとともに、チップサイズを縮小する目的を達成することができる。
基本的にフラッシュメモリの内部構造は領域(Zone)と、ブロック(Block)と、ページ(Page)との3つの計算単位に分けられる。この発明による方法ではフラッシュメモリ(10)内の複数のブロックを1つの領域として設定する。システムを作動する時、各ブロックアドレスとこれらに対応する論理アドレスとの関係により3組の論理/物理的アドレスのマッピング表を作成する。即ち、図2に開示するFAT(File Alocation Table)アドレスマッピング表(12)と、第1領域(Zone0)アドレスマッピング表(14)と、第2領域(Zone1)の部分的ブロックの高速アクセス・アドレスマッピング表(16)である。
該FATアドレスマッピング表(12)は直接、CPU内のランダム・アクセス・メモリ(RAM)の内部に作成され、比較的高い効率を達成することができる。しかもFAT空ブロックのFIFOデータも、CPU内のランダム・アクセス・メモリ(RAM)内に作成される。
該第1領域アドレスマッピング表(14)と、高速アクセス.・アドレスマッピング表(16)と、その空ブロックFIFOデータはSDカードコントローラ内部のSRAM内に形成される。
ホスト端末が検索を行う論理アドレス(18)をフラッシュメモリのコントローラへ伝送する場合、先に該検索を行う論理アドレス(18)がフラッシュメモリのFAT内にあるかどうかを確認する。仮に該論理アドレス(18)がFAT内に存在する場合は、FATアドレスマッピング表(12)から直接対応する物理的アドレスを検索する。仮に該論理アドレス(18)がFAT内に存在しなかった場合は、先に除算器(divider)を利用して該論理アドレス(18)がどの領域のどのブロックにあるかを計算する。この計算の結果、検索を行う該論理アドレス(18)が第1領域(Zone0)内にあると判断された場合、第1領域アドレスマッピング表(14)から物理的アドレスを検索する。仮に第1領域内に存在しない場合は、引き続き高速アクセス・アドレスマッピング表(16)を検索する。
また高速アクセス・アドレスマッピング表(16)の中にも検索する論理アドレス(18)が見つからなかった場合、上述の計算の結果に基づいて、別途他の高速アクセス・アドレスマッピング表(16’)を作成する。更に、別途作成した高速アクセス・アドレスマッピング表(16’)に基づく検索の結果によって、他の領域の領域アドレスマッピング表(14’)を構築するかどうかを決定し、検索を行う該論理アドレス(18)に対応する物理的アドレスが得られるまで検索を行い、得られたアドレスをデータの読み取りと書き込みに供する。それぞれの領域には高速アクセス・アドレスマッピング表が1つだけ作成される。
即ち、ホスト端末が検索を行う論理アドレスがZone0に位置しておらず、Zone1の高速アクセスブロック内にも位置していなかった場合、新規に高速アクセス・アドレスマッピング表を構築して、これに切り替えなければならない。検索を行うアドレスがZone0内に位置していなく、Zone1内に位置していることが確認された場合は、Zone1の領域アドレスマッピング表を新たに構築し、ホスト端末が対応する物理的アドレスを検索するために供する。
また上述の3組のアドレスマッピング表(12)、(14)、(16)を作成する場合、同時に該3組のアドレスマッピング表(12)、(14)、(16)に対応する空ブロックのFIFOデータ(図示しない)を構築する。検索を行う論理アドレス(18)に対応する物理的アドレスが該アドレスマッピング表(12)、(14)、(16)の内の1つから検索された場合、FIFOの原則に基づいて、先にアドレスマッピング表の対応するFIFOデータから最先に形成された新しい空ブロックを探し出す。次いで、新しいデータを該新しい空ブロック内に改めて書き込むとともに、物理アドレス内の本来のデータを該新しい空ブロック内に複写する。次ぎに、物理的アドレス内のデータを消去し、最後に新しい空ブロックの論理アドレスと物理的アドレスのマッピング関係をアドレスマッピング表の中に作成する。また、該物理的アドレスを消去した空ブロックを対応するFIFOデータに追加する。よって、それぞれのアドレスのマッピング表は空ブロックのFIFOデータと合わせ用いることによって、フラッシュメモリの効率を高め、各ブロックの平均使用頻度を効率良く高めることができる。
本発明の精神については、以上の説明の通りである。次いで、図2を参照にして、この発明の各マッピング表の構造とメカニズムについて説明する。この発明においては、フラッシュメモリが空ブロックを検索する回数を減少させるために、空ブロックのFIFO(Empty Block FIFO)メカニズムを応用して、領域内の未使用のブロックを集中させる。フラッシュメモリ内にデータを書き込む場合、直接該FIFOデータ内から空ブロックを呼び出せば物理的アドレスに直接書き込むことができ、このためフラッシュメモリの空ブロックを検索する回数を減少させることができ、またデータを書き込む過程において、それぞれのブロック内のページが使用されているかどうかをサーチする必要がなく、書き込み速度が上昇する。また、それぞれのブロックが消去された場合、該物理的アドレスはFIFOデータの中に保存される。よって、各消去されたブロックは物理的アドレスがFIFOバッファデータ内に補充され、FIFOデータを作成しなおす回数を減少させることができ、且つ全てのブロックの使用頻度が均一になる。
フラッシュメモリの操作原理を見ると、各領域は原則上1024のブロックを具えている。かかるフラッシュメモリの容量が16Mバイト以上になる時、必ず2つ以上の領域が現われ、十分な旋回空間を提供する。各領域は1000個のブロックを使用し、残りのブロックは保留ブロックとみなされ、データの旋回空間として利用される。よってフラッシュメモリが128Mバイトとすると、合計で8つの領域に分けられる。このため合計8192個のブロックを使用することができる。しかし、この発明では8000個のブロックを8つの領域内に平均して分散させて使用するため、各領域では24のブロックが保留ブロックになる。よってホストの論理アドレスは0〜7999アドレスを上回ることがない。このため論理アドレスは1000(領域のブロック数が決定する固定数)を除して、論理アドレスがどの領域かを計算することができ、対応するアドレスマッピング表のオフセット(Offset)がどうなっているかを知ることができる。即ち、直接物理アドレスに対応することができる。しかし、保存領域アドレスマッピング表のランダム・アクセス・メモリ(RAM)は2Kしかないため、必ずアドレスマッピング表で現在の対応領域の論理アドレスが対応するアドレスであるかを確認しなければならない。また現在の対応領域が論理アドレスの対応するべきでない領域だった場合、必ず別のアドレスマッピング表を作成しなければならない。且つ、アドレスの演算を加速する。この発明では1つの1000と128を除するディバイダー(divider)を設計する。かかるディバイダーは論理アドレスを入力すれば自動的に1000と128の商数と余数を算出する。即ち、直接アドレスマッピング表の実際のアドレスを検索し、システムの効率を増加させる。
さらにFAT表の変更は頻繁に行われる。よって1組のFAT専用のFATアドレスマッピング表と空ブロックFIFOデータを増設する。かかるFATアドレスマッピング表と空ブロックFIFOデータは論理アドレスの0〜39のアドレスに直接対応する。しかし、ホストの論理アドレスが0〜39に位置している場合、現在の領域アドレスマッピング表がどの領域に対応しているか検討する必要がなく、FATアドレスマッピング表の中から直接対応するアドレスを探し出せばよい。このため領域アドレスマッピング表を作成する回数を減少させることができる。
全体の領域アドレスマッピング表を作成する回数を減少するため、1組の高速アクセス・アドレスマッピング表と快速空ブロックFIFOデータを増加する。かかる高速アクセス・アドレスマッピング表のサイズは256バイトで、128個のブロックに保存することができる。ホストの論理ブロックが領域アドレスマッピングとFATアドレスマッピング表の中に存在しない場合、高速アクセス・アドレスマッピング表から対応するアドレスを検索する。論理アドレスが存在しない場合、高速アクセス・アドレスマッピング表を作成する。なぜならこの表は128個のブロックだけで構成されているため、高速アクセス・アドレスマッピング表を作成する速度は2Kの領域アドレスマッピング表を作成するよりも速い。よって全体の領域アドレスマッピング表を作成する回数を減少させることができる。
従来の構築方法をさらに向上させるもう1種類の組み合わせ方式を説明する。かかる組み合わせ方式は、上述のFATアドレスマッピング表(12)と空ブロックFIFOデータを保留し、高速アクセス・アドレスマッピング表(16)の部分的消去を行う。また、もとの第1領域アドレスマッピング表(14)のサイズを1024ブロックから256ブロックへ修正し、領域アドレスマッピング表を直接検索する。検索する論理アドレスに対応する物理アドレスを取得するまで検索を続け、得られたアドレスをデータ読み取りや書き込みに供する。この方式はアドレスマッピング表を作成する時間を節減し、SRAMのサイズを縮小させる。よって、もとの2Kから512バイトへ縮小させることができ、4分の3のSRAMへと縮小するため、効率を4倍に増加させる。このためコストを節減するとともに、効率を増加させる。
即ち、上述の方法は領域アドレスマッピング表を空ブロックFIFOデータと合わせて使用するとともに、FATの表における論理アドレスに領域アドレスマッピング表と空ブロックFIFOデータと合わせる概念を用いるため、フラッシュメモリを読み書きする場合に領域アドレスマッピング表がどの領域に対応しているかにかかわらず、FAT領域のFATアドレスマッピング表を作成する必要がない。
また高速アクセス・アドレスマッピング表を増加し、論理アドレスが出現し、且つ領域アドレスマッピング表とFATアドレスマッピング表の中に存在しない場合、先に比較的小さい高速アクセス・アドレスマッピング表を作成するため、システムの速度を確実に高めることができる。
また高速アクセス・アドレスマッピング表を増加し、論理アドレスが出現し、且つ領域アドレスマッピング表とFATアドレスマッピング表の中に存在しない場合、先に比較的小さい高速アクセス・アドレスマッピング表を作成するため、システムの速度を確実に高めることができる。
以上は、この発明の好ましい実施例であって、この発明の実施の範囲を限定するものではない。よって、当業者のなし得る修正、もしくは変更であって、この発明の精神の下においてなされ、この発明に対して均等の効果を有するものは、いずれもこの発明の特許請求の範囲に属するものとする。
10 フラッシュメモリ
12 FATアドレスマッピング表
14、14’ 第1領域アドレスマッピング表
16、16’ 高速アクセス・アドレスマッピング表
18 論理アドレス
12 FATアドレスマッピング表
14、14’ 第1領域アドレスマッピング表
16、16’ 高速アクセス・アドレスマッピング表
18 論理アドレス
Claims (17)
- フラッシュメモリの複数のブロックを1つの領域に設定し、システムの作動時に該ブロックアドレスと該ブロックアドレスに対応する論理アドレスとの関係に基づき、FATアドレスマッピング表と、第1領域のアドレスマッピング表と、第2領域の部分的ブロックに対する高速アクセス・アドレスマッピング表の3組の論理/物理的アドレスマッピング表を作成し、
ホスト端末から検索を行う論理アドレスをフラッシュメモリに送信する場合、該検索を行う論理アドレスが該メモリのFAT領域に存在する場合は、該FATアドレスマッピング表から直接物理的アドレスを検出し、該検索を行う論理アドレスが該メモリのFAT領域に存在しない場合は、該検索を行う論理アドレスがどの領域のどのブロックに位置するかを計算し、
該計算の結果、該検索を行う論理アドレスが第1領域内に存在すると判断された場合は、第1領域のアドレスマッピング表から物理アドレスを検索し、該検索を行う論理アドレスが第1領域内に存在しない場合には高速アクセス・アドレスマッピング表の検索を行い、
該高速アクセス・アドレスマッピング表に該検索を行う論理アドレスが存在しなかった場合は、該計算結果に基づいて別途他の高速アクセス・アドレスマッピング表を作成し、更に検索の結果に基づいて別途他の領域の領域アドレスマッピング表を作成するか否かを決定し、該検索を行う論理アドレスに対応する物理的アドレスが検出されるまで検索を行って得られたアドレスをデータの読み取り、もしくは書き込みに供することを特徴とするフラッシュメモリの読み書きの制御方法。 - 前記マッピング表を作成する場合、3組の対応する空のブロックを作成してFIFOデータを挿入し、検索する論理アドレスに対応する物理アドレスが作成されたアドレスマッピング表に存在した場合、アドレスマッピング表の中の対応するFIFOデータの中から新しい空ブロックを探し出し、新しいデータを新しいブロック内に書き込むとともに、該物理アドレスのもとのデータを新しいブロック内にコピーして物理アドレス内のデータを消去し、最後に新しいブロックの論理/物理アドレスのマッピング関係によりアドレスマッピング表を作成し、物理アドレスを消去した後の空ブロックにFIFOデータを増加させることを特徴とする請求項1に記載するフラッシュメモリの読み書きの制御方法。
- 前記FIFOデータの中から新しい空ブロックを選択する場合、FIFOの原則により最も早くから存在する空ブロックを選択することを特徴とする請求項2に記載するフラッシュメモリの読み書きの制御方法。
- 1つの領域に1つの高速アクセス・アドレスマッピング表を作成することを特徴とする請求項1に記載するフラッシュメモリの読み書きの制御方法。
- 前記検索する論理アドレスが、どの領域のどのブロックに存在しているかを計算する場合、ディバイダー(divider)により計算することを特徴とする請求項1に記載するフラッシュメモリの読み書きの制御方法。
- 前記計算方式は、領域のブロック数から第1固定数を決定し、該固定数を論理アドレスで除して算出された商数が検索する論理アドレスがマッピングするメモリの領域を表わし、算出された余数は検索する論理アドレスがマッピングする領域アドレスマッピング表の偏移位置の値を表わすことを特徴とする請求項5に記載するフラッシュメモリの読み書きの制御方法。
- 前記高速領域のブロック数が決定した第2固定数により算出した余数は、第2固定数を論理アドレスで除して、検索する論理アドレスがマッピングするアドレスマッピング表の偏移位置の値を表わすことを特徴とする請求項6に記載するフラッシュメモリの読み書きの制御方法。
- 前記フラッシュメモリ内にデータを書き込み、または更新する場合、新しいデータは同一領域内に制限されることを特徴とする請求項1に記載するフラッシュメモリの読み書きの制御方法。
- 前記領域アドレスマッピング表、高速アクセス・アドレスマッピング表、空領域のFIFOデータはSDコントローラの内部に設けられたランダム・アクセス・メモリ(RAM)内に保存されることを特徴とする請求項1に記載するフラッシュメモリの読み書きの制御方法。
- 前記FATアドレスマッピング表、空ブロックのFIFOデータはCPU内のランダム・アクセス・メモリ(RAM)に保存されることを特徴とする請求項1に記載するフラッシュメモリの読み書きの制御方法。
- フラッシュメモリ内の複数のブロックを1つの領域と設定し、システムを作動する場合、ブロックアドレスと対応する論理アドレスの関係から2組の論理/物理的アドレスマッピング表を作成し、それぞれFATアドレスマッピング表と第1領域アドレスマッピング表を作成し、ホスト端末は検索する論理アドレスをフラッシュメモリに送信する時、検索する論理アドレスがメモリのFAT領域に存在する場合、FATアドレスマッピング表の中から物理アドレスを直接探し出すか、もしくは検索する論理アドレスがどの領域に存在するかを算出し、
検索する論理アドレスが第1領域内に存在する場合、第1領域のアドレスマッピング表から物理アドレスを探し出し、第1領域内に存在しない場合、算出結果に基づき、別の領域の領域アドレスマッピング表を作成し、検索する論理アドレスに対応する物理アドレスを探し出し、得られたアドレスをデータの読み取りや書き込みに供することを特徴とするフラッシュメモリの読み書きの制御方法。 - 前記マッピング表を作成する場合、2組の対応する空領域を作成するとともに、該空領域にFIFOデータを挿入し、そのうちの1つのアドレスマッピング表から検索する論理アドレスが対応する物理アドレスを探し出した場合、アドレスマッピング表の対応するFIFOデータの中から新しい空ブロックを見つけ出し、新しいデータを新しい空ブロック内に書き込むとともに、該物理アドレスの過去のデータを新しい空ブロック内にコピーし、該物理アドレス内のデータを削除し、最後に新しい空ブロックの論理/物理的アドレスのマッピング関係をアドレスマッピング表に書き込み、物理アドレスを消去して空ブロックにFIFOデータを挿入することを特徴とする請求項11に記載するフラッシュメモリの読み書きの制御方法。
- 前記FIFOデータ内から新しい空ブロックを選択する場合の順序は、FIFOの原則に基づいて最も早くに存在していた空ブロックから選択することを特徴とする請求項11に記載するフラッシュメモリの読み書きの制御方法。
- 前記検索する論理アドレスがどの領域に位置するかを計算する順序は、ディバイダー(divider)により算出することを特徴とする請求項11に記載するフラッシュメモリの読み書きの制御方法。
- 前記フラッシュメモリ内にデータの書き込みや更新を行う場合、新しいデータは同一領域内に制限されることを特徴とする請求項11に記載するフラッシュメモリの読み書きの制御方法。
- 前記領域アドレスマッピング表、及び空ブロックのFIFOデータは、SDコントローラ内のランダム・アクセス・メモリに保存されることを特徴とする請求項11に記載するフラッシュメモリの読み書きの制御方法。
- 前記FATアドレスマッピング表、及び空ブロックのFIFOデータはCPU内のランダム・アクセス・メモリに保存されることを特徴とする請求項1に記載するフラッシュメモリの読み書きの制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004016672A JP2005209058A (ja) | 2004-01-26 | 2004-01-26 | フラッシュメモリの読み書きの制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004016672A JP2005209058A (ja) | 2004-01-26 | 2004-01-26 | フラッシュメモリの読み書きの制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005209058A true JP2005209058A (ja) | 2005-08-04 |
Family
ID=34901751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004016672A Pending JP2005209058A (ja) | 2004-01-26 | 2004-01-26 | フラッシュメモリの読み書きの制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005209058A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100801072B1 (ko) * | 2005-09-30 | 2008-02-11 | 삼성전자주식회사 | 플래시 메모리, 이를 위한 맵핑 장치 및 방법 |
KR100818993B1 (ko) | 2006-05-12 | 2008-04-02 | 삼성전자주식회사 | 블록 가상 할당을 이용한 파일 관리 장치 및 방법 |
KR100881597B1 (ko) | 2007-02-02 | 2009-02-03 | 지인정보기술 주식회사 | 읽기 요청 처리 시스템 및 방법 |
JP2012068863A (ja) * | 2010-09-22 | 2012-04-05 | Toshiba Corp | 半導体記憶制御装置 |
JP2012517627A (ja) * | 2009-02-12 | 2012-08-02 | 株式会社東芝 | メモリシステム及びメモリシステムの制御方法 |
CN110851372A (zh) * | 2018-08-20 | 2020-02-28 | 慧荣科技股份有限公司 | 储存装置及快取区定址方法 |
US11474950B2 (en) | 2020-01-16 | 2022-10-18 | Samsung Electronics Co., Ltd. | Memory controller including plurality of address mapping tables, system on chip, and electronic device |
-
2004
- 2004-01-26 JP JP2004016672A patent/JP2005209058A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100801072B1 (ko) * | 2005-09-30 | 2008-02-11 | 삼성전자주식회사 | 플래시 메모리, 이를 위한 맵핑 장치 및 방법 |
KR100818993B1 (ko) | 2006-05-12 | 2008-04-02 | 삼성전자주식회사 | 블록 가상 할당을 이용한 파일 관리 장치 및 방법 |
KR100881597B1 (ko) | 2007-02-02 | 2009-02-03 | 지인정보기술 주식회사 | 읽기 요청 처리 시스템 및 방법 |
US8255663B2 (en) | 2007-02-02 | 2012-08-28 | Yookun Cho | System and method for processing read request |
JP2012517627A (ja) * | 2009-02-12 | 2012-08-02 | 株式会社東芝 | メモリシステム及びメモリシステムの制御方法 |
JP2012068863A (ja) * | 2010-09-22 | 2012-04-05 | Toshiba Corp | 半導体記憶制御装置 |
CN110851372A (zh) * | 2018-08-20 | 2020-02-28 | 慧荣科技股份有限公司 | 储存装置及快取区定址方法 |
CN110851372B (zh) * | 2018-08-20 | 2023-10-31 | 慧荣科技股份有限公司 | 储存装置及快取区定址方法 |
US11474950B2 (en) | 2020-01-16 | 2022-10-18 | Samsung Electronics Co., Ltd. | Memory controller including plurality of address mapping tables, system on chip, and electronic device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10635310B2 (en) | Storage device that compresses data received from a host before writing therein | |
US7861028B2 (en) | System and method for configuration and management of flash memory | |
US8145829B2 (en) | Flash memory device capable of preventing read disturbance | |
US20050055532A1 (en) | Method for efficiently controlling read/write of flash memory | |
CN107066393B (zh) | 提高地址映射表中映射信息密度的方法 | |
US7475185B2 (en) | Nonvolatile memory system, nonvolatile memory device, memory controller, access device, and method for controlling nonvolatile memory device | |
US7487303B2 (en) | Flash memory device and associated data merge method | |
US10628303B2 (en) | Storage device that maintains a plurality of layers of address mapping | |
US20080183955A1 (en) | Flash translation layer apparatus | |
US20050231765A1 (en) | Information recording medium, data processing apparatus and data processing method | |
KR20100132244A (ko) | 메모리 시스템 및 메모리 시스템 관리 방법 | |
JP2008016003A (ja) | メモリー格納装置及びその読み書き方法 | |
CN107621959A (zh) | 电子装置及其软件训练方法、计算系统 | |
US20190065395A1 (en) | Storage device and data arrangement method | |
JP2006285669A (ja) | ホスト機器 | |
JP2006268776A (ja) | メモリカード | |
TW201126338A (en) | Flash memory device and data access method for flash memories | |
JP2005209058A (ja) | フラッシュメモリの読み書きの制御方法 | |
JP2005115561A (ja) | フラッシュrom制御装置 | |
CN113407111B (zh) | 闪存控制器、闪存控制器的方法及记忆装置 | |
CN112015671B (zh) | 闪存控制器、存储器装置以及存取闪存模块的方法 | |
JP2005222534A (ja) | フラッシュメモリのデータ管理装置及び方法 | |
WO2015118623A1 (ja) | 情報処理装置 | |
KR20200053052A (ko) | 스토리지 장치 및 스토리지 장치로 전송되는 데이터를 관리하는 전자 장치 | |
CN111638910B (zh) | 移位型和指针型混合的寄存器队列数据存储方法及系统 |