JP4356782B2 - メモリ装置、メモリ制御方法、およびプログラム - Google Patents
メモリ装置、メモリ制御方法、およびプログラム Download PDFInfo
- Publication number
- JP4356782B2 JP4356782B2 JP2007237181A JP2007237181A JP4356782B2 JP 4356782 B2 JP4356782 B2 JP 4356782B2 JP 2007237181 A JP2007237181 A JP 2007237181A JP 2007237181 A JP2007237181 A JP 2007237181A JP 4356782 B2 JP4356782 B2 JP 4356782B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- data
- cache
- cache block
- logical
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
フラッシュメモリは、データの書き込みおよび読み出しをクラスタ単位でランダムに行うことができるが、データの消去はランダムではなくブロック単位で行われる。
ある物理アドレスに記憶されたある論理アドレスのデータを書き換える場合には、更新されたデータは、同じ物理ブロックには書き込まれず、消去状態の新しい物理ブロック(フリーブロック)に書き込まれる。
そして、データ領域に書き込まれるデータレコードの先頭アドレスおよびレコード長をヘッダ領域に書き込むとともに、データ領域に書き込まれるデータレコードにリンク情報領域およびフラグ領域を付加するようにしている。
これにより、データレコード単位の書き込み/更新を行い、ブロックの空き領域がなくなったときには、有効なデータレコードを抽出してフリーブロックに転送し、転送元のブロックを消去するようにしている(たとえば特許文献1参照)。
ここで、上述したデータ処理システムにおいて、不揮発性メモリを記録媒体とするメモリ装置は、不揮発性メモリに対してデータの上書きが不可であるとともに、書き込み単位と消去単位が異なる(書き込み単位<消去単位)ものであり、さらに、不揮発性メモリのブロック内は追記可能である。
また、管理情報を保存する記録装置は、メモリ装置内に、ユーザ用のデータ領域以外に管理情報を保存するエリアを持っていて、ホスト装置からのファイルデータの書き込みが発生するたびに、管理情報をフラッシュメモリに更新する。
さらに、キャッシュブロックを有するメモリ装置は、クラスタ単位でキャッシュブロック内のデータを保存するとともに、キャッシュブロック内の論理・物理の対応関係は固定である(物理ブロックの先頭から昇順に論理アドレスが割当られている)。
このライトバック処理により、ブロック消去が発生するため製品寿命が短くなるという不都合が発生する。また、ライトバック処理による、ガベージ処理と消去処理により書き込みパフォーマンスの低下を招くという不都合が発生する。
このため、上述したデータ処理システムでは、1度キャッシュブロックに書き込まれた論理空間に対して書き込みが行われた場合、ライトバック処理が発生してしまう。このライトバック処理により、ブロック消去が発生するため製品寿命が短くなる。また、ライトバック処理による、ガベージ処理と消去処理により書き込みパフォーマンスの低下を招くという不都合が発生する。
このため、ライトバック処理により、書き換えデータのサイズに関係なく、ブロック単位で別ブロックに書き換えデータを保存する必要があった。
また、書き換えデータ以外のデータは元ブロック内にあるデータをガベージ処理によりコピーする必要があった。そして、書き換え後は不必要なデータが存在するブロックが発生するため、そのブロックを消去する必要があったが、ブロックには消去回数が制限されていた。
しかし、この技術においても次のような不利益ある。
また、管理情報のサイズを大きくすることで上記問題は解決できたが、管理情報の保存時間と保存処理の発生頻度が増加するため、ライトバックが発生しない場合の書き込みにおけるパフォーマンス低下が問題だった。
CPU11は、メモリ12、ディスプレイ13、I/O部14および外部メモリI/F15とバス16を介し相互に接続されている。メモリ12は、プログラム格納用のROM、作業用メモリであるRAM等を有する。外部メモリI/F15は、CPU11の制御命令に従ってメモリカード20との間でデータを送受する。
CPU21は、メモリ22、フラッシュメモリ23およびホストI/F24とバス25を介し相互に接続されている。メモリ22は、プログラム格納用のROM、作業用メモリであるRAM等を有する。
フラッシュメモリ23は、たとえば、NOR型またはNAND型のフラッシュメモリ(不揮発性メモリ)からなる。
ホストI/F24は、CPU21の制御命令に従ってホスト装置10との間でデータを送受する。
メモリカード20は、コントローラ部30およびメモリ部40を有する。メモリ部40は複数のフラッシュメモリ23を含み、コントローラ部30によりそのアクセスが制御される。
シリアルI/F31、パラレルI/F32、レジスタ33、データバッファ34およびECC35は、バス38により相互に接続されている。レジスタ33、データバッファ34およびECC35は、MPU36に接続されている。
また、メモリカード20には、ホスト装置10からのデータを取り込むために必要となるクロック信号が入力される信号線SCLKや、ホスト装置10に対しメモリカード20が正常に装着されているか否かを判断させるための信号線INSや、ホスト装置10から供給されるデータの向きを判断するための信号線BS等も設けられている。
まず、書き込みコマンドおよび書き込みデータのアドレスが、次に、書き込みデータがホスト装置10から送信され、メモリカード20で受信される。
フラッシュメモリ23は、セクタ単位にデータの書き込みおよび読み出しを行うが、ホスト装置10は、クラスタ単位でデータの書き込みおよび読み出しを行う。書き込みデータがメモリカード20に受信されると、受信された書き込みデータがデータバッファ34に記憶される。書き込みデータの受信が終了すると、データバッファ34に記憶された書き込みデータがフラッシュメモリ23に書き込まれる。
読み出しコマンドおよび読み出しデータのアドレスがホスト装置10から送信され、メモリカード20に受信されると、このアドレスの読み出しデータがフラッシュメモリ23から読み出され、データバッファ34に記憶される。フラッシュメモリ23の読み出しデータの読み出しが終了すると、データバッファ34に記憶された読み出しデータが読み出されホスト装置10に送信される。
図3は、ユーザデータブロックとキャッシュブロックの対応を示す図である。
図3において、51は論理/物理テーブルを、52はキャッシュブロックをそれぞれ示している。
この論理/物理テーブル51は、論理ブロックのアドレス0,1,2,3,4,5と、論理ブロックに割り当てられた物理ブロックのアドレス3,8,7,6,5,4とを対応付けたものである。
この論理/物理テーブル51は、メモリカード20がホスト装置10に装着されると、コントローラ部30によりフラッシュメモリ23から読み出され、データの書き込み動作に従って書き換えられる。
このとき、キャッシュ領域の新規キャッシュブロック52の物理アドレス2,1,0,9は、キャッシュブロック52のうちで比較的使用頻度が低い順に配置され、これにより、キャッシュブロック52の先頭からデータ書き込みを可能にする。
まず、第1に用語の定義について説明する。
ここで、ユーザデータ領域42のブロックをユーザデータブロックと呼び、キャッシュ領域43のブロックをキャッシュブロックと呼ぶ。キャッシュブロックはユーザブロックと同じサイズである。
また、キャッシュブロックの論理空間をユーザブロック単位に区切ったサイズを論理ブロックサイズと呼び、ユーザブロック内の複数セクタ単位の論理空間のサイズを論理ページサイズ(指定論理境界)と呼ぶ。
また、消去済みのブロックをフリーブロックと呼び、新規キャッシュブロックを取得する際はフリーブロックから取得する。
このとき、ユーザデータブロックとキャッシュブロック間のデータをマージする必要があるため、コピー処理が発生する。また、マージ処理後、不必要になったブロックは消去する。
ガベージ処理とは、ライトバック処理を行うためのコピー処理をいう。
キャッシュブロックはAD-CACHEとOD-CACHEの2種類の形態がある。キャッシュブロックとして確保されている個数は固定数だが、AD-CACHE、OD-CACHEの各個数は、ホストからの書き込みにより変化する。
AD-CACHEは、ファイルデータの保存を目的としたキャッシュブロックである。書き込みサイズにより、OD-CACHE、AD-CACHEを判別する。新規キャッシュブロックを取得して書き込みを行う際に、指定論理境界(論理ページサイズ)を超えればAD-CACHEとする。
キャッシュブロックの更新頻度を示す管理情報、キャッシュブロックがどの論理ブロックに対応しているかを示す管理情報およびキャッシュブロックの先頭の論理アドレス情報が管理情報内に保持される。
また、キャッシュブロックがAD-CACHEかOD-CACHEかを区別する情報が管理情報内に保持される。
図4〜図8は、書き込み処理を示すフローチャートである。図4〜図8は、CPU21の制御によるフラッシュメモリ23に対する書き込み動作を示す図である。
また、CPU21はユーザデータ領域42のユーザデータブロックの論理アドレスに対応したキャッシュ領域43のキャッシュブロックのアドレス情報と書き込み済み論理空間情報を取得する。
また、このとき、CPU21はキャッシュ領域43の新規キャッシュブロック(フリーブロック)のアドレス情報を取得する処理を行う。
ステップS3の判断で、未使用のキャッシュブロックがあるときは、図5に示すステップS10以降の処理へ進み、ステップS3の判断で、未使用のキャッシュブロックがないときは、CPU21はキャッシュブロック(AD-CACHE)でかつフル状態のキャッシュブロックがあるか否かを判断する(ステップS4)。
そして、CPU21は取得した使用頻度の低いキャッシュブロックをユーザデータブロックの論理セクタアドレスに再割当をするライトバック処理を行う(ステップS7)。
CPU21はメモリ22の管理情報を更新して(ステップS8)、図5に示すステップS10以降の処理へ進む。
ステップS9の判断で、キャッシュブロックの状態がキャッシュブロック(AD-CACHE)であるときは図6に示すステップS21以降の処理へ進み、キャッシュブロックの状態がキャッシュブロック(OD-CACHE)である図7に示すステップS31以降の処理へ進む。
ステップS10の判断で、指定論理境界を超える書き込みが発生した場合に、CPU21は新規キャッシュブロック(AD-CACHE)へ書き込みを行う(ステップS14)。
ステップS14で新規キャッシュブロック(AD-CACHE)を用いることで、ライトバック処理を発生させずに書き込みを行う。ステップS14の書き込みは、論理アドレスに関係なくキャッシュブロックの先頭から行う。
たとえば、図10において、ユーザデータブロック111に対する論理セクタアドレス2〜5の書き込みが発生した場合の書き込み終了後はキャッシュブロック112の先頭から論理セクタアドレス2〜5の書き込みが行われ、残りは空き領域の状態となる(第1の書き込み手段、第2の書き込み手段)。
ステップS21の判断で、キャッシュブロック(AD-CACHE)が書き込み済み領域のみのフル状態でないときは、CPU21はキャッシュブロック(AD-CACHE)への書き込み条件を満たすか否かを判断する(ステップS22)。
図11において、81は、書き込み済み空間86の書き込み済みセクタ以降から書き込みが始まる場合を示し、82は、書き込み済み空間86の書き込み済みセクタ直後から書き込みが始まる場合を示す。83は、ホストからの書き込みデータの書き終わりが書き込み済み空間86の書き込み済みセクタの手前の場合を示し、84は、ホストからの書き込みデータの書き終わりが書き込み済み空間86の書き込み済みセクタの直前の場合を示している。
ステップS23の書き込みはキャッシュブロック内の書き込み済みセクタの直後から書き込みを行う。直後から書き込みができない場合は、書き込みの開始セクタアドレスまでコピーを行う。
たとえば、図10の状態から、図12において、ユーザデータブロック121に対する論理セクタアドレス7〜8の書き込みが発生した場合、書き込み終了後のキャッシュブロック122は論理セクタアドレス2〜5の書き込み済みデータ123に続いて、124に示すように論理セクタアドレス6はユーザデータブロック121からコピーされ、これに続いて論理セクタアドレス7〜8のホストからの書き込みデータ125が書き込まれた状態となる(第3の書き込み手段、第4の書き込み手段)。
ステップS21の判断で、キャッシュブロック(AD-CACHE)が書き込み済み領域のみのフル状態であるとき、または、ステップS22の判断で、キャッシュブロック(AD-CACHE)への書き込み条件を満たさないときは、CPU21は書き込みサイズが論理ブロックサイズであるか否かを判断する(ステップS25−1)。
ステップS25−1の判断で、書き込みサイズが論理ブロックサイズでないときは、CPU21はライトバック処理を行う(ステップS25)。そして、CPU21はメモリ22の管理情報を更新する(ステップS26)。
このとき、キャッシュブロックをユーザデータブロックとして管理情報に登録する。ライトバック処理前のユーザデータブロックは消去処理を行いフリーブロックとして管理情報に登録する。
また、ステップS25−1の判断で、書き込みサイズが論理ブロックサイズのときは、新規キャッシュブロック(AD-CACHE)へフル状態で書き込みを行う(図8のステップS41)。そして、CPU21はキャッシュブロック(AD-CACHE)が割当済みであるか否かを判断する(ステップS42)。
そして、ステップS43の割当済みキャッシュブロック(AD-CACHE)の消去終了後は、CPU21はユーザデータブロック111に対して割当済みキャッシュブロック112が消去されたのでメモリ22の管理情報を更新し(ステップS44)、管理領域41に管理情報を書き込む(ステップS45)。
なお、この場合、消去処理は発生することになる。また、キャッシュブロック(AD-CACHE)、または後述するキャッシュブロック(OD-CACHE)の割り当てがどのような状態であってもガベージ処理が発生しないため、パフォーマンスを一定に保つことができる。
たとえば、図13において、ユーザデータブロック131の論理セクタアドレス0〜nに対して、キャッシュブロック132に論理セクタアドレス2〜7の書き込み済みデータ133があるとき、他の論理セクタアドレス8〜n、0〜1のデータをユーザデータブロック131からキャッシュブロック132に134に示すようにコピーして、キャッシュブロック132をフル状態にしておいて、ライトバック処理を行った後に再割当を行うことができる(第5の書き込み手段)。
コピー処理後、キャッシュブロック132をユーザデータブロック131としてメモリ22の管理情報に登録し、コピー処理前のユーザデータブロックは消去処理を行いフリーブロックとしてメモリ22の管理情報に登録する。
ステップS11で新規キャッシュブロック(OD-CACHE)を用いることで、ライトバック処理を発生させずに書き込みを行う。ステップS11の書き込みは、論理アドレスに関係なくキャッシュブロックの先頭から行う。
たとえば、図14において、ユーザデータブロック151に対する論理セクタアドレス2の書き込みが発生した場合の書き込み終了後はキャッシュブロック152の先頭から論理セクタアドレス2はホストからの書き込みデータ153が書き込まれ、これに続いて、154に示すように論理セクタアドレス3はユーザデータブロック151からデータをコピーして、両者を合わせて指定論理境界155となるようにし、残りは空き領域の状態となる(第6の書き込み手段、第7の書き込み手段)。
ステップS11は、指定論理境界以下の書き込みが発生した場合にキャッシュブロックを用いることで、ライトバック処理を発生させずに書き込みを行う処理である。ステップS11の書き込みは、論理アドレスに関係なくキャッシュブロックの先頭から行う。
つまり、論理セクタアドレス2のデータをキャッシュブロック152の先頭に書き込み、論理セクタアドレス3のデータは、ユーザデータブロック151の任意のデータからコピーしている。
この書き込みおよびコピー処理の終了後は、キャッシュブロック152が新しく割り当てられるのでメモリ22の管理情報を更新し、管理領域41に書き込むようにしている。
ステップS31の判断で、キャッシュブロック(OD-CACHE)への書き込み条件を満たすときは、CPU21はキャッシュブロック(OD-CACHE)が書き込み済み領域のみのフル状態であるか否かを判断する(ステップS32)。
図15において、91は、書き込み済み空間94の範囲内の書き込みの場合であり、92は、書き込み済み空間94と同一範囲の書き込みの場合である。
たとえば、図16の状態から、再度、ユーザデータブロック161に対する論理セクタアドレス2の書き込みが発生した場合、書き込み終了後のキャッシュブロック162は論理セクタアドレス2〜3の書き込み済みデータ163に続いて、164に示すように論理セクタアドレス2のホストからのデータの書き込みを行い、165に示すように論理セクタアドレス3のデータはユーザデータブロックからコピーする。
これにより、164および165に示す論理セクタアドレス2〜3は指定論理境界166の状態となる(第8の書き込み手段、第9の書き込み手段)。
ステップS35は、これから書き込む予定の論理空間が、キャッシュブロックに書き込み済みの論理空間104に対して、図17に示す101−1,101−2、102−1,102−2の論理空間に当てはまるか否かを判別する処理である。
以下に図17の処理フローについて説明する。
このとき、キャッシュブロック(OD-CACHE)に保存される、図19に示されるようなOD管理情報分も付加して判定を行う。
ステップS3501の判断で、追記可能であればステップS3502の処理に進み、追記不可であればステップS3505の処理に進む。
この場合、空き領域は書き込みサイズとOD管理情報のサイズを加算したサイズより小さい。
ここで、OD管理情報110をフラッシュメモリに保存する理由は、起動時にて、キャッシュブロック(OD-DCACHE)内にある有効データの物理アドレスをすばやく取得するためである。キャッシュブロック(OD-CACHE)内を全てリードする必要がない。フラッシュメモリへの保存が発生することで、多少のオーバーヘッドにはなるが従来のライトバックに比べれば影響は小さい。
OD管理情報110は、ブロックサイズを管理するための情報であり、論理セクタアドレスと、これに対応する物理セクタアドレス、あるいは登録がなければ登録なしとの情報が設定される。
この場合、指定論理境界とOD管理情報110は同一サイズである。
図22に示すように、OD管理情報を書き込んだ後に続いてホスト装置からの書き込みデータが書き込まれる。
ステップS3505の判断で、既定数以上であればステップS3511の処理に進み、既定数未満であればステップS3506の処理に進む。
この場合、ブロック内の最後尾にあるOD管理情報110が有効となる。
このとき、RAM上のOD管理情報も更新し、ステップS3507の処理に進む。
ここで新規キャッシュブロック(OD-CACHE)へのコピーを行う理由は、キャッシュブロック(OD-CACHE)へ書き込みデータはFATなど、同一論理アドレスを頻繁に更新してくるデータを対象としており、一度キャッシュブロック(OD-CACHE)へ書き込まれたデータは以降、頻繁に更新されると考えられるため、ライトバック処理を行うよりはオーバーヘッド(ブロック内の全ページコピーとブロック消去2回)が抑えられるためである。
有効データのコピーの際、最後尾の有効なOD管理情報110にみがコピーされる。このコピーしたOD管理情報110の前側の領域には、論理セクタアドレス0〜7順番につめて書き込まれる。そして、OD管理情報110の後の領域は空き領域となる。
ステップS39−1の判断で、書き込みサイズが論理ブロックサイズでないときは、CPU21はライトバック処理を行う(ステップS39)。そして、CPU21はメモリ22の管理情報を更新する(ステップS40)。
ステップS39は、書き込みが発生した場合、新規キャッシュブロック(AD-CACHE)を取得しライトバック処理を行う処理である。
たとえば、始めに、キャッシュブロック172に書き込まれている論理セクタアドレス2〜3のデータを、174に示すように新規キャッシュブロック173へコピーする。その後に、ユーザデータブロック171に書き込まれている他の論理セクタアドレス4〜n、0〜1のデータを、175に示すように新規キャッシュブロック173へコピーする。
たとえば、図16に示す状態からステップS39のライトバック処理を行うと図24に示す状態となる。
ステップS39のライトバック処理によるコピー処理後、新規キャッシュブロック173をユーザデータブロック171として管理情報に登録し、前のユーザデータブロック171は消去処理を行いフリーブロックとして管理情報に登録する(第13の書き込み手段、第1優先処理手段)。
ステップS41で新規キャッシュブロック(OD-CACHE)を用いることで、ライトバック処理を発生させずに書き込みを行う。ステップS41の書き込みは、論理アドレスに関係なくキャッシュブロックの先頭から行う。
ステップS41は、書き込みが発生した場合、新規キャッシュブロック(OD-CACHE)を取得することで、ライトバック処理を行わずにキャッシュブロックの更新を行う処理である。
図27は、ステップS41の書き込み処理後におけるキャッシュブロックとユーザデータブロックの状態を示す図である。
ステップS41のコピー終了後は、新規キャッシュブロック193を新たなユーザデータブロック191として管理情報に登録し、前のユーザデータブロック191は消去処理を行いフリーブロックとして管理情報に登録する(第10の書き込み手段)。
ステップS36で新規キャッシュブロック(AD-CACHE)を用いることで、ライトバック処理を発生させずに書き込みを行う。ステップS36の書き込みは、論理アドレスに関係なくキャッシュブロックの先頭から行う。
図29は、ステップS36の書き込み処理後におけるキャッシュブロックとユーザデータブロックの状態を示す図である。
215に示すデータのコピー終了後に、216に示す論理セクタアドレス5〜7のホストからのデータの書き込みを行う(第11の書き込み手段)。
ステップS36は、ステップS35の条件を満たす書き込みが発生した場合に、新規キャッシュブロック(AD-CACHE)を取得することで、ライトバック処理を行わずに書き込みを行う処理である。
そして、ステップS43の割当済みキャッシュブロック(AD-CACHE)の消去終了後は、CPU21はユーザデータブロック111に対して割当済みキャッシュブロック112が消去されたのでメモリ22の管理情報を更新し(ステップS44)、管理領域41に管理情報を書き込む(ステップS45)。
これにより、既存の管理情報をフラッシュメモリへ保存する際のサイズと更新タイミングを変更せずに、管理情報の情報量を多くすることができる。
そして、管理情報の情報量の増加により、ライトバックの発生頻度を低下させる(抑止する)ことが可能となる。
ライトバックの発生頻度が低下することで、ガベージ処理、フラッシュメモリの消去の発生頻度が低下し、ライトパフォーマンスの低下を防ぐことが可能となる。
フラッシュメモリの消去の発生頻度が低下することで書き換え回数(消去回数)に制限があるフラッシュメモリの寿命延命につながる。
特に、FATを用いたメディアの場合、FAT1、FAT2など論理アドレスが連続でなく(飛び飛び)、かつ、同一アドレスへの書き込みが頻繁に発生するため、ブロックサイズが大きいメディア(同一ブロック内にFAT1、FAT2が存在)に対し本発明の実施形態による処理が有効となる。
すなわち、OD内のライト済み最終ページのリードにより管理情報の保存場所を取得し、次のリードで管理情報を取得することができることから、管理情報をライトする処理を行わなくとも起動時にキャッシュブロック(OD-CACHE)内を全リードすることにより管理情報を構築することが可能となる。その結果、起動時に行う管理情報の取得の高速化を図ることができる。
図30において、まず、ステップS111で、CPU21は管理情報からユーザデータブロックのアドレス情報と書き込み済み論理空間情報を取得し、また、論理アドレスに対応したキャッシュブロックのアドレス情報と書き込み済み論理空間情報を取得する。
ステップS112の判断で、キャッシュブロックがユーザデータブロックに対して割当済みでないとき、CPU21はユーザデータブロック内のデータを読み出してホストに供給する(ステップS113)。
ステップS113は、読み出し要求された論理ブロックに対してキャッシュブロックが割り当てられていなかった場合の処理である。
ステップS114の判断で、読み出し開始アドレスがキャッシュブロックに存在する論理アドレスよりも小さいときは、CPU21は読み出し終了アドレスがキャッシュブロックに存在する論理アドレスよりも小さいか否かを判断する(ステップS115)。
ステップS115の判断で、読み出し終了アドレスがキャッシュブロックに存在する論理アドレスよりも小さいときは、CPU21はユーザデータブロック内のデータを読み出してホストに供給する(ステップS116)。
ステップS123の判断で、読み出し開始アドレスがキャッシュブロックに存在する論理アドレスと同一でないときは、CPU21はユーザデータブロック内のデータを読み出してホストに供給する(ステップS128)。
ステップS117の判断で、読み出し終了アドレスがキャッシュブロックに存在する論理アドレスと同一であるときは、CPU21はユーザデータブロック内のデータを読み出すと共に(ステップS118)、残りのデータをキャッシュブロックから読み出して、ホストに供給する(ステップS119)。
ステップS124の判断で、読み出し終了アドレスがキャッシュブロックに存在する論理アドレスと同一であるときは、CPU21はキャッシュブロック内のデータを読み出して、ホストに供給する(ステップS125)。
この場合、読み出し始めは、ユーザデータブロック内のデータをホストに読み出す。
読み出しの後半は、ホストからの要求論理セクタアドレスに対応するデータがキャッシュブロック内に存在するならば、キャッシュブロック内のデータをホストに読み出し、存在しないならば、ユーザデータブロック内のデータをホストに読み出す。
ステップS125は、キャッシュブロック内のデータをホストに読み出す処理である。
また、ブロックには消去回数の制限があった。
そして、OD内のライト済み最終ページのリードにより管理情報の保存場所を取得し、次のリードで管理情報を取得することができることから、管理情報をライトする処理を行わなくとも起動時にキャッシュブロック(OD-CACHE)内を全リードすることにより管理情報を構築することが可能となり、その結果、起動時に行う管理情報の取得の高速化を図ることができる。
このとき、ライトバック処理の発生を抑えることでガベージ処理の発生が抑えられ、書き込みパフォーマンスを向上させることができる。
ライトバック処理の発生を抑えることでブロックへの消去処理を減少させることができるため、製品寿命を延ばすことができる。このとき、キャッシュブロックのブロックアドレスのみを管理することで、ブロックアドレスが変化しなければ管理情報を更新する必要がなくなり、書き込みパフォーマンスを向上させることができる。
また、管理情報の更新頻度が減少することで管理情報が登録されているブロックの消去処理を減少させることができるため、製品寿命を延ばすことができる。
ライトバック処理の発生を抑えることでブロックへの消去処理を減少させることができるため、製品寿命を延ばすことができる。
ライトバック処理の発生を抑えることでブロックへの消去処理を減少させることができるため、製品寿命を延ばすことができる。
このとき、キャッシュブロックのブロックアドレスのみを管理することで、ブロックアドレスが変化しなければ管理情報を更新する必要がなくなり、書き込みパフォーマンスを向上させることができる。管理情報の更新頻度が減少することで管理情報が登録されているブロックの消去処理を減少させることができるため、製品寿命を延ばすことができる。
ライトバック処理の発生を抑えることでブロックへの消去処理を減少させることができるため、製品寿命を延ばすことができる。この時、キャッシュブロックのブロックアドレスのみを管理することで、ブロックアドレスが変化しなければ管理情報を更新する必要がなくなり、書き込みパフォーマンスを向上させることができる。管理情報の更新頻度が減少することで管理情報が登録されているブロックの消去処理を減少させることができるため、製品寿命を延ばすことができる。
更新頻度が低いキャッシュブロックを優先的にライトバック処理することで、書き込みに対するキャッシュブロックの使用効率を上げることができる。これは、更新頻度が低いキャッシュブロックは、更新頻度が高いキャッシュブロックと比較して、書き込みが発生する確率が低いためである。
書き込みに対するキャッシュブロックの使用効率が上がることで、ライトバック処理の発生を抑えるので、ガベージ処理の発生が抑えられ書き込みパフォーマンスを向上させることができる。ライトバック処理の発生を抑えることでブロックへの消去処理を減少させることができるため、製品寿命を延ばすことができる。
書き込みに対するキャッシュブロックの使用効率が上がることで、ガベージ処理の発生が抑えられ書き込みパフォーマンスを向上させることができる。ライトバック処理の発生を抑えることでブロックへの消去処理を減少させることができるため、製品寿命を延ばすことができる。また、フル状態であれば、ガベージ処理によるブロック内のコピー処理を行う必要がないため、パフォーマンスを向上させることができる。
上述した本実施の形態に限らず、本発明の要旨を逸脱しない限り、適宜、変更しうることはいうまでもない。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー(登録商標)ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
Claims (15)
- クラスタ単位にデータの書き込みおよび読み出しが行われるとともに、複数のセクタからなるブロック単位にデータの消去が行われる不揮発性メモリと、
前記不揮発性メモリのアクセス動作を制御する制御回路と、を有し、
前記不揮発性メモリは、
管理情報を記録する管理領域と、
ユーザからのデータが記録されるユーザデータ領域と、
前記ユーザデータ領域に対する書き込みおよび読み出しデータを一時的に保持するキャッシュ領域と、を有し、
前記管理領域は、
前記ユーザデータ領域の論理ブロックのアドレスと、前記論理ブロックに割り当てられた物理ブロックのアドレスとを対応付けて記憶する論理/物理テーブルと、前記論理/物理テーブルの物理ブロックのアドレスに対応する前記キャッシュ領域の物理ブロックのアドレスを含み、
前記制御回路は、
前記ユーザデータ領域のユーザブロック内の複数セクタ単位の論理空間サイズである指定論理サイズ以内のデータの書き込みの際には所定のキャッシュブロックを選択し、データを保存させた当該キャッシュブロック内に管理情報の一部を保存する
メモリ装置。 - 前記制御回路は、
管理情報の前記不揮発性メモリの保存サイズは維持したままで、キャッシュブロックに複数の論理空間のデータを保存させる
請求項1記載のメモリ装置。 - 前記制御回路は、
前記選択したキャッシュブロックにデータを追記可能か否かを当該キャッシュブロックの管理情報を含めて判定し、追記可能な場合には管理情報を前記キャッシュブロックに追記した後、書き込みデータを追記する
請求項1記載のメモリ装置。 - 前記制御回路は、
前記選択したキャッシュブロックにデータを追記可能な場合には前記管理領域にある管理情報を更新した後、管理情報を前記キャッシュブロックに追記し、書き込みデータを追記する
請求項3記載のメモリ装置。 - 前記制御回路は、
前記選択したキャッシュブロックにデータを、追記可能か否かを判定し、追記不可の場合には前記キャッシュブロック内に登録されている複数の論理空間が既定数以上であるか否かの判定を行い、既定数未満である場合には、前記キャッシュブロックに保存されている有効データを新規キャッシュブロックにコピーし、コピー後の状態の管理情報を前記新規キャッシュブロックに追記する
請求項3記載のメモリ装置。 - 前記制御回路は、
前記キャッシュブロック内に複数の管理情報が存在する場合、最後尾にある管理情報を有効とする
請求項5記載のメモリ装置。 - 前記制御回路は、
前記新規キャッシュブロックに管理情報を追記した後に、書き込みデータを追記する
請求項5記載のメモリ装置。 - クラスタ単位にデータの書き込みおよび読み出しが行われ、複数のセクタからなるブロック単位にデータの消去が行われる不揮発性メモリが有する管理領域、ユーザデータ領域およびキャッシュ領域に対するメモリ制御方法であって、
前記ユーザデータ領域の論理ブロックのアドレスと、前記論理ブロックに割り当てられた物理ブロックのアドレスとを対応付けて記憶する論理/物理テーブルと、前記論理/物理テーブルの物理ブロックのアドレスに対応する前記キャッシュ領域の物理ブロックのアドレスを記憶する記憶ステップと、
前記ユーザデータ領域のユーザブロック内の複数セクタ単位の論理空間サイズである指定論理サイズ以内のデータの書き込みの際には所定のキャッシュブロックを選択し、データを保存させた当該キャッシュブロック内に管理情報の一部を保存する保存ステップと
を含むメモリ制御方法。 - 前記保存ステップにおいては、
管理情報の前記不揮発性メモリの保存サイズは維持したままで、キャッシュブロックに複数の論理空間のデータを保存させる
請求項8記載のメモリ制御方法。 - 前記保存ステップにおいては、
前記選択したキャッシュブロックにデータを追記可能か否かを当該キャッシュブロックの管理情報を含めて判定し、追記可能な場合には管理情報を前記キャッシュブロックに追記した後、書き込みデータを追記する
請求項8記載のメモリ制御方法。 - 前記保存ステップにおいては、
前記選択したキャッシュブロックにデータを追記可能な場合には前記管理領域にある管理情報を更新した後、管理情報を前記キャッシュブロックに追記し、書き込みデータを追記する
請求項10記載のメモリ制御方法。 - 前記保存ステップにおいては、
前記選択したキャッシュブロックにデータを、追記可能か否かを判定し、追記不可の場合には前記キャッシュブロック内に登録されている複数の論理空間が既定数以上であるか否かの判定を行い、既定数未満である場合には、前記キャッシュブロックに保存されている有効データを新規キャッシュブロックにコピーし、コピー後の状態の管理情報を前記新規キャッシュブロックに追記する
請求項10記載のメモリ制御方法。 - 前記保存ステップにおいては、
前記キャッシュブロック内に複数の管理情報が存在する場合、最後尾にある管理情報を有効とする
請求項12記載のメモリ制御方法。 - 前記保存ステップにおいては、
前記新規キャッシュブロックに管理情報を追記した後に、書き込みデータを追記する
請求項12記載のメモリ制御方法。 - クラスタ単位にデータの書き込みおよび読み出しが行われ、複数のセクタからなるブロック単位にデータの消去が行われる不揮発性メモリが有する管理領域、ユーザデータ領域およびキャッシュ領域に対するメモリ制御処理であって、
前記ユーザデータ領域の論理ブロックのアドレスと、前記論理ブロックに割り当てられた物理ブロックのアドレスとを対応付けて記憶する論理/物理テーブルと、前記論理/物理テーブルの物理ブロックのアドレスに対応する前記キャッシュ領域の物理ブロックのアドレスを記憶する記憶処理と、
前記ユーザデータ領域のユーザブロック内の複数セクタ単位の論理空間サイズである指定論理サイズ以内のデータの書き込みの際には所定のキャッシュブロックを選択し、データを保存させた当該キャッシュブロック内に管理情報の一部を保存する保存処理と
を含むメモリ制御処理をコンピュータに実行させるプログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007237181A JP4356782B2 (ja) | 2007-09-12 | 2007-09-12 | メモリ装置、メモリ制御方法、およびプログラム |
TW097131738A TWI409630B (zh) | 2007-09-12 | 2008-08-20 | 記憶體設備,記憶體控制方法,及非暫態電腦可讀式媒體 |
US12/207,143 US8386713B2 (en) | 2007-09-12 | 2008-09-09 | Memory apparatus, memory control method, and program |
CN2008101494018A CN101387987B (zh) | 2007-09-12 | 2008-09-12 | 存储器装置、存储器控制方法和程序 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007237181A JP4356782B2 (ja) | 2007-09-12 | 2007-09-12 | メモリ装置、メモリ制御方法、およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009070098A JP2009070098A (ja) | 2009-04-02 |
JP4356782B2 true JP4356782B2 (ja) | 2009-11-04 |
Family
ID=40433084
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007237181A Expired - Fee Related JP4356782B2 (ja) | 2007-09-12 | 2007-09-12 | メモリ装置、メモリ制御方法、およびプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US8386713B2 (ja) |
JP (1) | JP4356782B2 (ja) |
CN (1) | CN101387987B (ja) |
TW (1) | TWI409630B (ja) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011145838A (ja) * | 2010-01-13 | 2011-07-28 | Toshiba Corp | 記憶装置管理装置および記憶装置の管理方法 |
TWI423026B (zh) * | 2010-10-29 | 2014-01-11 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
CN102479054B (zh) * | 2010-11-22 | 2015-01-07 | 北京兆易创新科技股份有限公司 | 一种存储芯片的读写系统和方法 |
JP2012173778A (ja) * | 2011-02-17 | 2012-09-10 | Sony Corp | 管理装置、および管理方法 |
JP5699712B2 (ja) * | 2011-03-17 | 2015-04-15 | ソニー株式会社 | メモリ制御装置、メモリ装置、メモリ制御方法、及びプログラム |
CN102405467B (zh) * | 2011-04-25 | 2013-08-28 | 华为技术有限公司 | 存储系统中数据处理方法及设备 |
JP6072428B2 (ja) | 2012-05-01 | 2017-02-01 | テセラ アドバンスト テクノロジーズ インコーポレーテッド | 制御装置、記憶装置、記憶制御方法 |
JP5929485B2 (ja) | 2012-05-08 | 2016-06-08 | ソニー株式会社 | 制御装置、記憶装置、データ書込方法 |
JP5949122B2 (ja) | 2012-05-11 | 2016-07-06 | ソニー株式会社 | 制御装置、記憶装置、記憶制御方法 |
JP5983019B2 (ja) | 2012-05-17 | 2016-08-31 | ソニー株式会社 | 制御装置、記憶装置、記憶制御方法 |
US20130332652A1 (en) * | 2012-06-11 | 2013-12-12 | Hitachi, Ltd. | Computer system and method for controlling computer system |
WO2016095233A1 (zh) * | 2014-12-19 | 2016-06-23 | 北京麓柏科技有限公司 | 一种非易失性缓存实现方法及装置 |
TWI561983B (en) | 2015-06-10 | 2016-12-11 | Phison Electronics Corp | Method of accessing buffer memory, memory controller and memory storage device |
KR102468992B1 (ko) * | 2015-11-06 | 2022-11-22 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이의 동작 방법 |
KR20190044968A (ko) * | 2017-10-23 | 2019-05-02 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US10652208B2 (en) * | 2018-10-03 | 2020-05-12 | Axonius Solutions Ltd. | System and method for managing network connected devices |
JP2020155052A (ja) * | 2019-03-22 | 2020-09-24 | キオクシア株式会社 | メモリシステムおよび制御方法 |
CN113905097B (zh) * | 2021-09-26 | 2022-07-05 | 合肥申威睿思信息科技有限公司 | 一种数据传输方法和装置 |
CN116257176A (zh) | 2022-11-30 | 2023-06-13 | 平头哥(上海)半导体技术有限公司 | 数据存储系统、数据存储方法和存储介质 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09506988A (ja) * | 1993-09-30 | 1997-07-08 | アップル コンピュータ,インコーポレイテッド | コンピュータの仮想メモリにおける補助記憶の分散制御システム |
US5724501A (en) * | 1996-03-29 | 1998-03-03 | Emc Corporation | Quick recovery of write cache in a fault tolerant I/O system |
US5930167A (en) * | 1997-07-30 | 1999-07-27 | Sandisk Corporation | Multi-state non-volatile flash memory capable of being its own two state write cache |
JP3954698B2 (ja) | 1997-08-29 | 2007-08-08 | パナソニック コミュニケーションズ株式会社 | メモリー制御装置 |
US6029237A (en) * | 1997-10-08 | 2000-02-22 | Dell Usa, L.P. | Method for simulating the presence of a diskette drive in a NetPC computer that contains only a hard disk drive |
US6973556B2 (en) * | 2000-06-19 | 2005-12-06 | Storage Technology Corporation | Data element including metadata that includes data management information for managing the data element |
JP4211385B2 (ja) * | 2002-12-20 | 2009-01-21 | パナソニック株式会社 | 半導体メモリカードおよび管理情報更新方法 |
US20050015557A1 (en) * | 2002-12-27 | 2005-01-20 | Chih-Hung Wang | Nonvolatile memory unit with specific cache |
TW200504577A (en) * | 2003-07-16 | 2005-02-01 | Matsushita Electric Ind Co Ltd | Management method for data storage in data recording medium, and information processing device using the same |
JP2005234738A (ja) * | 2004-02-18 | 2005-09-02 | Matsushita Electric Ind Co Ltd | 半導体メモリ装置 |
JP4710274B2 (ja) | 2004-08-02 | 2011-06-29 | ソニー株式会社 | メモリ装置、メモリ装置の制御方法およびデータ処理システム |
KR100725390B1 (ko) * | 2005-01-06 | 2007-06-07 | 삼성전자주식회사 | 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법 |
JP4751163B2 (ja) * | 2005-09-29 | 2011-08-17 | 株式会社東芝 | メモリシステム |
JP4356686B2 (ja) * | 2005-12-01 | 2009-11-04 | ソニー株式会社 | メモリ装置及びメモリ制御方法 |
US7752391B2 (en) * | 2006-01-20 | 2010-07-06 | Apple Inc. | Variable caching policy system and method |
-
2007
- 2007-09-12 JP JP2007237181A patent/JP4356782B2/ja not_active Expired - Fee Related
-
2008
- 2008-08-20 TW TW097131738A patent/TWI409630B/zh not_active IP Right Cessation
- 2008-09-09 US US12/207,143 patent/US8386713B2/en not_active Expired - Fee Related
- 2008-09-12 CN CN2008101494018A patent/CN101387987B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
TW200931249A (en) | 2009-07-16 |
US8386713B2 (en) | 2013-02-26 |
JP2009070098A (ja) | 2009-04-02 |
TWI409630B (zh) | 2013-09-21 |
CN101387987A (zh) | 2009-03-18 |
US20090070517A1 (en) | 2009-03-12 |
CN101387987B (zh) | 2011-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4356782B2 (ja) | メモリ装置、メモリ制御方法、およびプログラム | |
JP4356686B2 (ja) | メモリ装置及びメモリ制御方法 | |
US12189947B2 (en) | Memory device and host device | |
JP4844639B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP6016137B2 (ja) | ソリッドステートドライブおよびその動作方法 | |
RU2642349C1 (ru) | Способ для сохранения данных посредством устройства хранения данных и устройство хранения данных | |
US7702846B2 (en) | Memory controller, nonvolatile storage device, nonvolatile storage system, and data writing method | |
US20050021904A1 (en) | Mass memory device based on a flash memory with multiple buffers | |
JPWO2005103903A1 (ja) | 不揮発性記憶システム | |
US20140223075A1 (en) | Physical-to-logical address map to speed up a recycle operation in a solid state drive | |
JP5570406B2 (ja) | メモリコントローラ、及びデータ記録装置 | |
JP2019199059A (ja) | 画像形成装置、画像形成装置の制御方法及びプログラム | |
JP4665539B2 (ja) | メモリ制御装置、メモリ制御方法、プログラム | |
JP2023002294A (ja) | メモリシステムおよびリフレッシュ制御方法 | |
WO2020039927A1 (ja) | 不揮発性記憶装置、ホスト装置、及びデータ記憶システム | |
JP2013200726A (ja) | 半導体記憶装置 | |
JP3934659B1 (ja) | メモリコントローラ及びフラッシュメモリシステム | |
JP2009282836A (ja) | メモリカード及びメモリカードドライブ | |
JP2008191855A (ja) | 半導体記憶装置及びメモリ制御方法 | |
JP5255389B2 (ja) | 記憶装置およびメモリ制御方法 | |
JP4227989B2 (ja) | メモリコントローラ及びフラッシュメモリシステム | |
JP2007164391A (ja) | メモリカードおよびその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090706 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090714 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090727 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120814 Year of fee payment: 3 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4356782 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120814 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120814 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130814 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |