JP4356686B2 - メモリ装置及びメモリ制御方法 - Google Patents

メモリ装置及びメモリ制御方法 Download PDF

Info

Publication number
JP4356686B2
JP4356686B2 JP2005348111A JP2005348111A JP4356686B2 JP 4356686 B2 JP4356686 B2 JP 4356686B2 JP 2005348111 A JP2005348111 A JP 2005348111A JP 2005348111 A JP2005348111 A JP 2005348111A JP 4356686 B2 JP4356686 B2 JP 4356686B2
Authority
JP
Japan
Prior art keywords
block
data
writing
logical
cache
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
Application number
JP2005348111A
Other languages
English (en)
Other versions
JP2007156633A (ja
Inventor
暢宏 金子
健一 中西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2005348111A priority Critical patent/JP4356686B2/ja
Priority to US11/565,279 priority patent/US8489850B2/en
Publication of JP2007156633A publication Critical patent/JP2007156633A/ja
Application granted granted Critical
Publication of JP4356686B2 publication Critical patent/JP4356686B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、例えばフラッシュメモリに適用して好適な、不揮発性メモリを有するメモリ装置及びメモリ制御方法に関する。
従来、パーソナルコンピュータ、デジタルスチルカメラ、デジタルビデオカメラ、オーディオレコーダ等の外部記憶装置として、フラッシュメモリを備えたメモリ装置が知られている。フラッシュメモリは、データの書き込みおよび読み出しをクラスタ単位でランダムに行うことができるが、データの消去はランダムではなくブロック単位で行われる。
フラッシュメモリの記憶素子は、データの書換えを行うことにより劣化するため、その書き換え回数が制限される。このため、同じクラスタに繰り返しアクセスが集中するのを防止してフラッシュメモリの寿命を延ばすようにしている。ある物理アドレスに記憶されたある論理アドレスのデータを書き換える場合には、更新されたデータは、同じ物理ブロックには書き込まれず、消去状態の新しい物理ブロック(フリーブロック)に書き込まれる。
ここで、データ更新の前後で論理アドレスが割り当てられる物理アドレスが変化するため、論理アドレスおよび物理アドレスの対応関係を表わすアドレス変換テーブルがフラッシュメモリに記憶される。アドレス変換テーブルは、メモリ装置がホスト装置に装着されると、フラッシュメモリから読み出され、ホスト装置またはメモリ装置の作業メモリに格納され更新される。
従来のメモリ装置では、わずか数セクタのデータを書き換える場合にも、物理ブロックの更新が行われるため、そのアクセス時間がかかるとともに、記憶素子の劣化が早まるため、例えば、フラッシュメモリのブロックをヘッダ領域とデータ領域に分けている。そして、データ領域に書き込まれるデータレコードの先頭アドレスおよびレコード長をヘッダ領域に書き込むとともに、データ領域に書き込まれるデータレコードにリンク情報領域及びフラグ領域を付加するようにしている。これにより、データレコード単位の書き込み/更新を行い、ブロックの空き領域がなくなったときには、有効なデータレコードを抽出してフリーブロックに転送し、転送元のブロックを消去するようにしている。(例えば特許文献1参照)。
特開平11−73363号公報
しかしながら、上記のように、ヘッダ領域およびデータ領域からなるブロックを設定した従来のフラッシュメモリでは、ブロック毎にヘッダ領域、リンク情報領域及びフラグ領域が設定されるため、データを記憶するメモリ容量が減少し、メモリを有効に利用することができないといった問題があった。
そこで、本出願人は、先願として、論理ブロックのアドレス、物理ブロックのアドレスおよび物理ブロックの終了クラスタ番号を対応付けた論理/物理テーブルを設け、書き込み命令に基づくデータの開始クラスタ番号SCが、論理/物理テーブルの物理ブロックの終了クラスタ番号ECより大きい場合、従来のような物理ブロックの更新(新たなデータの書き込みおよび元の物理ブロックのコピー)を行わずに、物理ブロックにデータを追記するメモリ装置、メモリ装置の制御方法及びデータ処理システムを提案した(特願2004−225716号)。
これによれば、フラッシュメモリのメモリ容量を大きく減少させることなく、フラッシュメモリの消去回数を減らし、フラッシュメモリのデータの更新を効率的に行い、記憶素子の劣化を低減するとともに、データのアクセスを高速に行うことができる。
ここで、上述した先願では、不揮発性メモリを記録媒体とするメモリ装置は、不揮発性メモリに対してデータの上書きが不可であるとともに、書き込み単位と消去単位が異なる(書き込み単位<消去単位)ものであり、さらに、不揮発性メモリのブロック内は追記可能である。
また、FAT(File Allocation Tables)ファイルシステムを用いたメモリ装置は、ファイルデータの書き込みと同時に、管理情報のFATやディレクトリエントリ(Directory Entry)の更新が必要である。
また、管理情報を保存する記録装置は、メモリ装置内に、ユーザ用のデータ領域以外に管理情報を保存するエリアを持っていて、ホストからのファイルデータの書き込みが発生するたびに、管理情報をフラッシュメモリに更新する。
さらに、キャッシュブロックを有するメモリ装置は、クラスタ単位でキャッシュブロック内のデータを保存するとともに、キャッシュブロック内の論理・物理の対応関係は固定(物理ブロックの先頭から昇順に論理アドレスが割当られている)である。
このため、上述した先願では、複数セクタ単位の論理空間サイズである指定論理境界を超える論理アドレスが連続したファイルデータの書き込みにおいて、更新サイズがクラスタサイズ未満であっても、ライトバッグ処理が発生してしまう。このライトバッグ処理により、ブロック消去が発生するため製品寿命が短くなるという不都合が発生する。また、ライトバッグ処理による、ガベージ処理と消去処理により書き込みパフォーマンスの低下を招くという不都合が発生する。
また、ファイルデータの書き込みに伴う管理情報のFATやディレクトリエントリの更新は、書き込まれるファイルサイズが複数セクタ単位の論理空間サイズである指定論理境界以下となることから、同じ論理アドレス空間にアクセスが集中するため上書きが頻繁に発生する。このため、上述した先願では、1度キャッシュブロックに書き込まれた論理空間に対して書き込みが行われた場合、ライトバッグ処理が発生してしまう。このライトバッグ処理により、ブロック消去が発生するため製品寿命が短くなる。また、ライトバック処理による、ガベージ処理と消去処理により書き込みパフォーマンスの低下を招くという不都合が発生する。
つまり、不揮発性メモリ(NAND型フラッシュメモリ)は上書き不可であることとデータの消去単位がブロック単位であるため、データの書き換えが発生した場合に、メモリ装置内では、論理/物理テーブルの整合を取る必要がある。このため、ライトバック処理により、書き換えデータのサイズに関係なく、ブロック単位で別ブロックに書き換えデータを保存する必要があった。また、書き換えデータ以外のデータは元ブロック内にあるデータをガベージ処理によりコピーする必要があった。そして、書き換え後は不必要なデータが存在するブロックが発生するため、そのブロックを消去する必要があったが、ブロックには消去回数が制限されていた。
そこで、本発明の目的は、ライトバッグ処理の発生を抑え、ライトバッグ処理によるガベージ処理と消去処理を防止することにより書き込みパフォーマンスの低下を防ぐことができるメモリ装置及びメモリ制御方法を提供することである。
上記課題を解決し、本発明の目的を達成するため、本発明のメモリ装置では、不揮発性メモリは、管理情報を記録する管理領域と、ユーザからのデータが記録されるユーザデータ領域と、ユーザデータ領域に対する書き込み及び読み出しデータを一時的に保持するキャッシュ領域と、を有し、管理領域は、ユーザデータ領域の論理ブロックのアドレスと、論理ブロックに割り当てられた物理ブロックのアドレスとを対応付けて記憶する論理/物理テーブルと、論理/物理テーブルの物理ブロックのアドレスに対応するキャッシュ領域の物理ブロックのアドレスを含み、制御回路は、ユーザデータ領域のユーザブロック内の複数セクタ単位の論理空間サイズである指定論理境界を超えるデータの書き込みの際に、消去済みのキャッシュ領域の新規キャッシュブロックに書き込む第1の書き込み手段と、第1の書き込み手段による新規キャッシュブロックへのデータの書き込みの際に、書き込まれる新規キャッシュブロックの論理アドレス空間に関係なく新規キャッシュブロックの先頭からデータを書き込む第2の書き込み手段と、第1の書き込み手段による新規キャッシュブロックへのデータの書き込みから連続したデータの書き込みを行う場合に、新規キャッシュブロック内の書き込み済みセクタの直後から追記する第3の書き込み手段と、第1の書き込み手段による新規キャッシュブロックへのデータの書き込みから不連続なデータの書き込みを行う場合に、書き込みの開始セクタアドレスまでユーザデータブロックから不連続な範囲のデータのコピーを行った後に追記する第4の書き込み手段とを備えたものである。
これにより、複数セクタ単位の論理空間サイズである指定論理境界を超えるファイルデータについて、ホストから書き込みが行われた場合に、新規キャッシュブロックに書き込むことで、ライトバック処理を発生させない処理をすることができる。このとき、ライトバック処理の発生を抑えることでガベージ処理の発生が抑えられ、書き込みパフォーマンスを向上させることができる。また、ライトバック処理の発生を抑えることでブロックへの消去処理を減少させることができるため、製品寿命を延ばすことができる。
また、上述した書き込みから連続した、クラスタ境界に限らないファイルデータの書き込みが行われた場合、キャッシュブロック内を追記することで、ライトバック処理を発生させない処理をすることができる。このとき、ライトバック処理の発生を抑えることでガベージ処理の発生が抑えられ、書き込みパフォーマンスを向上させることができる。ライトバック処理の発生を抑えることでブロックへの消去処理を減少させることができるため、製品寿命を延ばすことができる。
また、本発明のメモリ装置では、不揮発性メモリは、管理情報を記録する管理領域と、ユーザからのデータが記録されるユーザデータ領域と、ユーザデータ領域に対する書き込み及び読み出しデータを一時的に保持するキャッシュ領域と、を有し、管理領域は、ユーザデータ領域の論理ブロックのアドレスと、論理ブロックに割り当てられた物理ブロックのアドレスとを対応付けて記憶する論理/物理テーブルと、論理/物理テーブルの物理ブロックのアドレスに対応するキャッシュ領域の物理ブロックのアドレスを含み、制御回路は、ユーザデータ領域のユーザブロック内の複数セクタ単位の論理空間サイズである指定論理境界以下のデータの書き込みの際に、消去済みのキャッシュ領域の新規キャッシュブロックに書き込む第6の書き込み手段と、第6の書き込み手段による新規キャッシュブロックへのデータの書き込みの際に、書き込まれる新規キャッシュブロックの論理アドレス空間に関係なく新規キャッシュブロックの先頭からデータを書き込み、書き込み後のデータが指定論理境界以下となる場合は、指定論理境界となる連続したセクタアドレスまで前記ユーザデータブロックからデータのコピーを行う第7の書き込み手段とを備えたものである。
これにより、複数セクタ単位の論理空間サイズである指定論理境界以下の管理情報のFATやディレクトリエントリについて、ホストから書き込みが行われた場合に、新規キャッシュブロックにデータを書き込むことで、ライトバック処理を発生させない処理をすることができる。このとき、ライトバック処理の発生を抑えることでガベージ処理の発生が抑えられ、書き込みパフォーマンスを向上させることができる。また、ライトバック処理の発生を抑えることでブロックへの消去処理を減少させることができるため、製品寿命を延ばすことができる。
また、本発明のメモリ装置では、不揮発性メモリは、管理情報を記録する管理領域と、ユーザからのデータが記録されるユーザデータ領域と、ユーザデータ領域に対する書き込み及び読み出しデータを一時的に保持するキャッシュ領域とを有し、管理領域は、ユーザデータ領域の論理ブロックのアドレスと、論理ブロックに割り当てられた物理ブロックのアドレスとを対応付けて記憶する論理/物理テーブルと、論理/物理テーブルの物理ブロックのアドレスに対応するキャッシュ領域の物理ブロックのアドレスを含み、制御回路は、ユーザデータ領域のユーザブロック内のデータの書き込みの際に、キャッシュ領域のキャッシュブロック内がすべて書き込み済みの場合は、ライトバック処理を行うためのコピー処理であるガベージ処理を発生させずに、キャッシュブロックユーザデータブロックとして割り当てることによりライトバック処理を行う第12の書き込み手段と、第12の書き込み手段によるライトバック処理を、キャッシュブロックを含むキャッシュブロックのうち、データの更新頻度が低いキャッシュブロックに対して優先的に行う第1の優先処理手段とを備えたものである。
これにより、キャッシュブロックがフル書き込み状態の場合、ガベージ処理を発生させずにユーザブロックへライトバック処理を行うことで、書き込みパフォーマンスを向上させることができる。
また、ライトバックされるキャッシュブロックの優先順位について、キャッシュブロックの空きがない場合に、キャッシュブロックの内で更新頻度の低いキャッシュブロックを優先的にライトバック処理する。このとき、更新頻度が低いキャッシュブロックを優先的にライトバック処理することで、書き込みに対するキャッシュブロックの使用効率を上げることができる。これは、更新頻度が低いキャッシュブロックは、更新頻度が高いキャッシュブロックと比較して、書き込みが発生する確率が低いためである。また、書き込みに対するキャッシュブロックの使用効率が上がることで、ライトバック処理の発生を抑えるので、ガベージ処理の発生が抑えられ書き込みパフォーマンスを向上させることができる。さらに、ライトバック処理の発生を抑えることでブロックへの消去処理を減少させることができるため、製品寿命を延ばすことができる。
また、本発明のメモリ制御方法は、ユーザデータ領域の論理ブロックのアドレスと、論理ブロックに割り当てられた物理ブロックのアドレスとを対応付けて記憶する論理/物理テーブルと、論理/物理テーブルの物理ブロックのアドレスに対応するキャッシュ領域の物理ブロックのアドレスを記憶する記憶ステップと、ユーザデータ領域のユーザブロック内の複数セクタ単位の論理空間サイズである指定論理境界を超えるデータの書き込みの際に、消去済みのキャッシュ領域の新規キャッシュブロックに書き込む第1の書き込みステップと、第1の書き込みステップによる新規キャッシュブロックへのデータの書き込みの際に、書き込まれる新規キャッシュブロックの論理アドレス空間に関係なく新規キャッシュブロックの先頭からデータを書き込む第2の書き込みステップと、第1の書き込みステップによる新規キャッシュブロックへのデータの書き込みから連続したデータの書き込みを行う場合に、新規キャッシュブロック内の書き込み済みセクタの直後から追記する第3の書き込みステップと、第1の書き込みステップによる新規キャッシュブロックへのデータの書き込みから不連続なデータの書き込みを行う場合に、書き込みの開始セクタアドレスまでユーザデータブロックから不連続な範囲のデータのコピーを行った後に追記する第4の書き込みステップとを含むものである。
これにより、複数セクタ単位の論理空間サイズである指定論理境界を超えるファイルデータについて、ホストから書き込みが行われた場合に、新規キャッシュブロックに書き込むことで、ライトバック処理を発生させない処理をすることができる。このとき、ライトバック処理の発生を抑えることでガベージ処理の発生が抑えられ、書き込みパフォーマンスを向上させることができる。また、ライトバック処理の発生を抑えることでブロックへの消去処理を減少させることができるため、製品寿命を延ばすことができる。
また、上述した書き込みから連続した、クラスタ境界に限らないファイルデータの書き込みが行われた場合、キャッシュブロック内を追記することで、ライトバック処理を発生させない処理をすることができる。このとき、ライトバック処理の発生を抑えることでガベージ処理の発生が抑えられ、書き込みパフォーマンスを向上させることができる。ライトバック処理の発生を抑えることでブロックへの消去処理を減少させることができるため、製品寿命を延ばすことができる。
また、本発明のメモリ制御方法は、ユーザデータ領域の論理ブロックのアドレスと、論理ブロックに割り当てられた物理ブロックのアドレスとを対応付けて記憶する論理/物理テーブルと、論理/物理テーブルの物理ブロックのアドレスに対応するキャッシュ領域の物理ブロックのアドレスを記憶する記憶ステップと、ユーザデータ領域のユーザブロック内の複数セクタ単位の論理空間サイズである指定論理境界以下のデータの書き込みの際に、消去済みの新規キャッシュブロックに書き込む第6の書き込みステップと、第6の書き込みステップによる新規キャッシュブロックへのデータの書き込みの際に、書き込まれる新規キャッシュブロックの論理アドレス空間に関係なく新規キャッシュブロックの先頭からデータを書き込み、書き込み後のデータが指定論理境界以下となる場合は、指定論理境界となる連続したセクタアドレスまで前記ユーザデータブロックからデータのコピーを行う第7の書き込みステップと、を含むものである。
これにより、複数セクタ単位の論理空間サイズである指定論理境界以下の管理情報のFATやディレクトリエントリについて、ホストから書き込みが行われた場合に、新規キャッシュブロックにデータを書き込むことで、ライトバック処理を発生させない処理をすることができる。このとき、ライトバック処理の発生を抑えることでガベージ処理の発生が抑えられ、書き込みパフォーマンスを向上させることができる。また、ライトバック処理の発生を抑えることでブロックへの消去処理を減少させることができるため、製品寿命を延ばすことができる。
また、本発明のメモリ制御方法は、ユーザデータ領域の論理ブロックのアドレスと、論理ブロックに割り当てられた物理ブロックのアドレスとを対応付けて記憶する論理/物理テーブルと、論理/物理テーブルの物理ブロックのアドレスに対応するキャッシュ領域の物理ブロックのアドレスを記憶する記憶ステップと、ユーザデータ領域のユーザブロック内のデータの書き込みの際に、キャッシュ領域のキャッシュブロック内がすべて書き込み済みの場合は、ライトバック処理を行うためのコピー処理であるガベージ処理を発生させずに、キャッシュブロックユーザデータブロックとして割り当てることによりライトバック処理を行う第12の書き込みステップと、第12の書き込みステップによるライトバック処理を、キャッシュブロックを含むキャッシュブロックのうち、データの更新頻度が低いキャッシュブロックに対して優先的に行う第1の優先処理ステップとを含むものである。
これにより、キャッシュブロックがフル書き込み状態の場合、ガベージ処理を発生させずにユーザブロックへライトバック処理を行うことで、書き込みパフォーマンスを向上させることができる。
また、ライトバックされるキャッシュブロックの優先順位について、キャッシュブロックの空きがない場合に、キャッシュブロックの内で更新頻度の低いキャッシュブロックを優先的にライトバック処理する。このとき、更新頻度が低いキャッシュブロックを優先的にライトバック処理することで、書き込みに対するキャッシュブロックの使用効率を上げることができる。これは、更新頻度が低いキャッシュブロックは、更新頻度が高いキャッシュブロックと比較して、書き込みが発生する確率が低いためである。また、書き込みに対するキャッシュブロックの使用効率が上がることで、ライトバック処理の発生を抑えるので、ガベージ処理の発生が抑えられ書き込みパフォーマンスを向上させることができる。さらに、ライトバック処理の発生を抑えることでブロックへの消去処理を減少させることができるため、製品寿命を延ばすことができる。
本発明によれば、キャッシュブロックを用いたブロック制御方法により、従来のメモリ装置と比較してライトバック処理の発生頻度を減らすことができる。また、ライトバッグの発生頻度が減ることにより、コピーと消去の発生頻度が減るため、データ書き換え際の処理速度を向上させることができる。また、ブロックの消去回数が減るため、メモリ装置としての製品寿命を延ばすことができる。
以下に、本発明の実施の形態について、適宜、図面を参照しながら詳細に説明する。
図1は、本実施の形態に適用されるデータ処理システムの概略構成を示す図である。
図1に示すように、このデータ処理システムは、フラッシュメモリ23を有するメモリカード20と、メモリカード20が着脱自在に装着されるホスト装置10とを備える。
ホスト装置10は、パーソナルコンピュータ、デジタルスチルカメラ、デジタルビデオカメラ、オーディオレコーダ等の機器からなり、CPU11、メモリ12、ディスプレイ13、入出力処理(I/O)部14及び外部メモリI/F(インタフェース)15を備える。CPU11は、メモリ12、ディスプレイ13、I/O部14及び外部メモリI/F15とバス16を介し相互に接続されている。メモリ12は、プログラム格納用のROM、作業用メモリであるRAM等を有する。外部メモリI/F15は、CPU11の制御命令に従ってメモリカード20との間でデータを送受する。
メモリカード20は、CPU21、メモリ22、フラッシュメモリ23及びホストI/F24を備える。CPU21は、メモリ22、フラッシュメモリ23及びホストI/F24とバス25を介し相互に接続されている。メモリ22は、プログラム格納用のROM、作業用メモリであるRAM等を有する。フラッシュメモリ23は、例えば、NOR型またはNAND型のフラッシュメモリ(不揮発性メモリ)からなる。ホストI/F24は、CPU21の制御命令に従ってホスト装置10との間でデータを送受する。
図2は、図1に示されるメモリカード20の構成を示すブロック図である。
図2に示すように、メモリカード20は、例えば板状のメモリスティック(登録商標)に相当し、ホスト装置10に装着され、ホスト装置10から供給されるデータが書き込まれる。メモリカード20は、複数のフラッシュメモリ23を有するメモリ部40と、メモリ部40を制御するコントローラ部30とを備える。
コントローラ部30は、シリアルI/F(インタフェース)31、パラレルI/F32、レジスタ33、データバッファ34、ECC(Error Correcting Circuit)35及びMPU(Micro Processing Unit)36及びクロック信号発生部37を備える。
シリアルI/F31、パラレルI/F32、レジスタ33、データバッファ34及びECC35は、バス38により相互に接続されている。レジスタ33、データバッファ34及びECC35は、MPU36に接続されている。
レジスタ33は、命令レジスタ等を有する。データバッファ34は、フラッシュメモリ23にアクセスされるデータを一時的に記憶する。ECC35は、データバッファ34に記憶されたデータの誤り訂正処理を実行する。クロック信号発生部37は、メモリスティック内部のクロック信号を発生する。
ホスト装置10により出力されたデータは、信号線DATA0〜3を通してシリアルI/F31およびパラレルI/F32の一方又は双方に入力され、データバッファ34に転送される。データバッファ34に転送されたデータは、MPU36によりフラッシュメモリ23に書き込まれる。
メモリカード20には、信号線VSS及びVCCを通して電源が供給される。また、メモリカード20には、ホスト装置10からのデータを取り込むために必要となるクロック信号が入力される信号線SCLKや、ホスト装置10に対しメモリカード20が正常に装着されているか否かを判断するための信号線INSや、ホスト装置10から供給されるデータの向きを判断するための信号線BS等も設けられている。
次に、データ処理システムの書き込み動作の概略を説明する。
まず、書き込みコマンド及び書き込みデータのアドレスが、次に、書き込みデータがホスト装置10から送信され、メモリカード20に受信される。フラッシュメモリ23は、セクタ単位にデータの書き込み及び読み出しを行うが、ホスト装置10は、クラスタ単位でデータの書き込み及び読み出しを行う。書き込みデータがメモリカード20に受信されると、受信された書き込みデータがデータバッファ34に記憶される。書き込みデータの受信が終了すると、データバッファ34に記憶された書き込みデータがフラッシュメモリ23に書き込まれる。
次に、データ処理システムの読み出し動作の概略を説明する。
読み出しコマンド及び読み出しデータのアドレスがホスト装置10から送信され、メモリカード20に受信されると、当該アドレスの読み出しデータがフラッシュメモリ23から読み出され、データバッファ34に記憶される。フラッシュメモリ23の読み出しデータの読み出しが終了すると、データバッファ34に記憶された読み出しデータが読み出されホスト装置10に送信される。
次に、本実施の形態によるメモリ制御方法の概要について説明する。
図3は、ユーザデータブロックとキャッシュブロックの対応を示す図である。
図1及び図2に示されるフラッシュメモリ23には、図3に示されるユーザデータブロックの論理アドレスと物理アドレスの対応を示すテーブル51である論理/物理テーブルが記憶されている。この論理/物理テーブル51は、論理ブロックのアドレス0,1,2,3,4,5と、論理ブロックに割り当てられた物理ブロックのアドレス3,8,7,6,5,4とを対応付けたものである。この論理/物理テーブル51は、メモリカード20がホスト装置10に装着されると、コントロール部30によりフラッシュメモリ23から読み出され、データの書き込み動作に従って書き換えられる。
ここで、この論理/物理テーブル51の物理ブロックのアドレス3,8,7,6,5,4のうちのいずれかには、52で示すキャッシュブロックの物理アドレス2,1,0,9が対応付けられる。このとき、52で示すキャッシュブロックの物理アドレス2,1,0,9は、53に示すように使用頻度が低い順に配置される。
例えば、論理/物理テーブル51の物理ブロックのアドレス8,7,6,4が空き領域の物理ブロックのアドレスを示しているとき、この物理ブロックのアドレス8,7,6,4に対応して、52で示す消去済みのキャッシュ領域であるフリーブロックの新規キャッシュブロックの物理アドレス2,1,0,9が割り当てられる。このとき、52で示すキャッシュ領域の新規キャッシュブロックの物理アドレス2,1,0,9は、キャッシュブロックのうちで比較的使用頻度が低い順に配置され、これにより、52で示すキャッシュブロックの先頭からデータ書き込みを可能にする。
次に、本実施の形態によるメモリ制御方法の前提条件について説明する。
まず、第1に用語の定義について説明する。
上述した図2に示したメモリカード20などのメモリ装置内の複数のフラッシュメモリ23には、それぞれ、管理領域41、ユーザデータ領域42、キャッシュ領域43が存在する。ここで、ユーザデータ領域42のブロックをユーザデータブロックと呼び、キャッシュ領域43のブロックをキャッシュブロックと呼ぶ。キャッシュブロックはユーザブロックと同じサイズである。また、キャッシュブロックの論理空間をユーザブロック単位に区切ったサイズを論理ブロックサイズと呼び、ユーザブロック内の複数セクタ単位の論理空間のサイズを指定論理境界と呼ぶ。また、消去済みのブロックをフリーブロックと呼び、新規キャッシュブロックを取得する際はフリーブロックから取得する。
ライトバック処理とは、キャッシュブロック内のデータをユーザデータブロックに書き戻すことで、キャッシュブロックを使用していた状態から使用しない状態にする処理である。このとき、ユーザデータブロックとキャッシュブロック間のデータをマージする必要があるため、コピー処理が発生する。また、マージ処理後、不必要になったブロックは消去する。また、ガベージ処理とは、ライトバック処理を行うためのコピー処理をいう。
第2に、キャッシュブロックについて説明する。
キャッシュブロックはAD-CACHEとOD-CACHEの2種類の形態がある。キャッシュブロックとして確保されている個数は固定数だが、AD-CACHE、OD-CACHEの各個数は、ホストからの書き込みにより変化する。
AD-CACHEは、ファイルデータの保存を目的としたキャッシュブロックである。書き込みサイズにより、OD-CACHE、AD-CACHEを判別する。新規キャッシュブロックを取得して書き込みを行う際に、指定論理境界を超えればAD-CACHEとする。
AD-CACHEは、最初に書き込みが発生した論理アドレスにより、以降書き込まれる論理アドレスが制限される。最初に書き込みが発生した論理アドレス空間がある任意の論理ブロックサイズ空間(A)内である場合、次に書き込む論理アドレス空間が論理空間(A)内であり、かつ、キャッシュブロック内の書き込み済み論理空間以外の場合、このキャッシュブロックへの書き込みが可能である。
OD-CACHEは、管理情報のFATやディレクトリエントリの保存を目的としたキャッシュブロックである。書き込みサイズにより、OD-CACHE、AD-CACHEを判別する。新規キャッシュブロックを取得して書き込みを行う際に、指定論理境界以下であればOD-CACHEとする。
OD-CACHEは、最初に書き込みが発生した論理アドレスにより、以降書き込まれる論理アドレスが制限される。最初に書き込みが発生した論理アドレス空間がある任意の指定論理境界空間(B)内である場合、次に書き込む論理アドレス空間が論理空間(B)内である場合、このキャッシュブロックへの書き込みが可能である。
第3に、管理情報内にあるキャッシュブロックの情報について説明する。
キャッシュブロックの更新頻度を示す情報、キャッシュブロックがどの論理ブロックに対応しているかを示す情報及びキャッシュブロックの先頭の論理アドレス情報が管理情報内に保持される。
また、キャッシュブロック内の書き込み済みセクタアドレス情報は、管理情報内に登録されていないため、キャッシュブロック内をリードすることにより取得される。また、キャッシュブロックがAD-CACHEかOD-CACHEかを区別する情報が管理情報内に保持される。
次に、具体的な動作を説明する。
図4〜図8は、書き込み処理を示すフローチャートである。図4〜図8は、CPU21の制御によるフラッシュメモリ23に対する書き込み動作を示す図である。
図4において、まず初めに、CPU21は管理領域41の管理情報からユーザデータ領域42のユーザデータブロックのアドレス情報と書き込み済み論理空間情報を取得する(ステップS1)。また、CPU21はユーザデータ領域42のユーザデータブロックの論理アドレスに対応したキャッシュ領域43のキャッシュブロックのアドレス情報と書き込み済み論理空間情報を取得する。また、このとき、CPU21はキャッシュ領域43の新規キャッシュブロック(フリーブロック)のアドレス情報を取得する処理を行う。
次に、CPU21は使用中のキャッシュブロックの中から割当済みキャッシュブロックがあるか否かを判断する(ステップS2)。ステップS2は図15に示す状態のキャッシュブロックを検索する処理である。図15は、ホストからの書き込みにより空きのないフル状態になったときのキャッシュブロック(AD-CACHE)の状態(2パターン)を示す図である。
図15において、図15の上半分は、ユーザデータブロック141に対して、キャッシュブロック(AD-CACHE)142が、ユーザデータブロック141に対応する論理セクタアドレス0〜nの空間に書き込み済みデータ143及びホストからの書き込みデータ144が書き込まれた第1の状態を示している。
また、図15の下半分は、ユーザデータブロック145に対して、キャッシュブロック(AD-CACHE)146が、ユーザデータブロック145の論理セクタアドレス0〜nの空間に対してずれた論理セクタアドレス2〜n、0〜1の空間に書き込み済みデータ147及びホストからの書き込みデータ148が書き込まれた第2の状態を示している。
図15に示すキャッシュブロックの状態は、更なる書き込みができないため、キャッシュブロックとして存在する意味がないので優先的にライトバックを行う。図15に示すキャッシュブロックの状態がなければ、使用頻度の低いキャッシュブロックを優先的にライトバックする(第12の書き込み手段、第1優先処理手段)。
ステップS2の判断で、割当済みキャッシュブロックがなければ、CPU21は未使用のキャッシュブロックがあるか否かを判断する(ステップS3)。ステップS3の判断で、未使用のキャッシュブロックがあるときは、図5に示すステップS10以降の処理へ進み、ステップS3の判断で、未使用のキャッシュブロックがないときは、CPU21はキャッシュブロック(AD-CACHE)でかつフル状態のキャッシュブロックがあるか否かを判断する(ステップS4)。
ステップS4の判断で、キャッシュブロック(AD-CACHE)でかつフル状態のキャッシュブロックがなければ、CPU21は使用頻度の低いキャッシュブロックを取得する(ステップS5)。そして、CPU21は取得した使用頻度の低いキャッシュブロックをユーザデータブロックの論理セクタアドレスに再割当をするライトバック処理をおこなう(ステップS7)。CPU21はメモリ22の管理情報を更新して(ステップS8)、図5に示すステップS10以降の処理へ進む。
ステップS4の判断で、キャッシュブロック(AD-CACHE)でかつフル状態のキャッシュブロックがあれば、CPU21はフル状態のキャッシュブロックを取得する(ステップS6)。そして、ステップS7へ進む。
また、ステップS2の判断で、割当済みキャッシュブロックがあれば、CPU21はキャッシュブロックの状態がキャッシュブロック(AD-CACHE)であるか又はキャッシュブロック(OD-CACHE)であるかを判断する(ステップS9)。ステップS9の判断で、キャッシュブロックの状態がキャッシュブロック(AD-CACHE)であるときは図6に示すステップS21以降の処理へ進み、キャッシュブロックの状態がキャッシュブロック(OD-CACHE)である図7に示すステップS31以降の処理へ進む。
図5に示すステップS10では、CPU21は指定論理境界を超える書き込みが発生したか否かを判断する(ステップS10)。ステップS10の判断で、指定論理境界を超える書き込みが発生した場合に、CPU21は新規キャッシュブロック(AD-CACHE)へ書き込みを行う(ステップS14)。ステップS14で新規キャッシュブロック(AD-CACHE)を用いることで、ライトバック処理を発生させずに書き込みを行う。ステップS14の書き込みは、論理アドレスに関係なくキャッシュブロックの先頭から行う。
図12は、ステップS14の書き込み処理におけるキャッシュブロックとユーザデータブロックの状態を示す図である。
例えば、図12において、ユーザデータブロック111に対する論理セクタアドレス2〜5の書き込みが発生した場合の書き込み終了後はキャッシュブロック112の先頭から論理セクタアドレス2〜5の書き込みが行われ、残りは空き領域の状態となる(第1の書き込み手段、第2の書き込み手段)。
ステップS14の書き込み終了後は、CPU21はユーザデータブロック111に対してキャッシュブロック112が新しく割り当てられたのでメモリ22の管理情報を更新し(ステップS15)、管理領域41に管理情報を書き込む(ステップS16)。
図6に示すステップS21では、CPU21はキャッシュブロック(AD-CACHE)が書き込み済み領域のみのフル状態であるか否かを判断する(ステップS21)。ステップS21の判断で、キャッシュブロック(AD-CACHE)が書き込み済み領域のみのフル状態でないときは、CPU21はキャッシュブロック(AD-CACHE)への書き込み条件を満たすか否かを判断する(ステップS22)。
ステップS22の判断で、キャッシュブロック(AD-CACHE)が書き込み条件を満たす時は、CPU21はキャッシュブロック(AD-CACHE)への書き込みを行う(ステップS23)。そして、CPU21はメモリ22の管理情報を更新する(ステップS24)。
ステップS22は、これから書き込む予定の論理空間が、キャッシュブロックに書き込み済みの論理空間に対して、以下の図9に示す81〜84の論理空間に当てはまるか否かを判別する処理である。
図9は、ステップS22の書き込み条件を満たす書き込みパターンを示す図である。図9において、81は、書き込み済み空間86の書き込み済みセクタ以降から書き込みが始まる場合であり、82は、書き込み済み空間86の書き込み済みセクタ直後から書き込みが始まる場合である。83は、ホストからの書き込みデータの書き終わりが書き込み済み空間86の書き込み済みセクタの手前の場合であり、84は、ホストからの書き込みデータの書き終わりが書き込み済み空間86の書き込み済みセクタの直前の場合である。
ステップS23は、書き込みが発生した場合、ライトバック処理を行わずに割り当てられているキャッシュブロックに書き込みを行う処理である。ステップS23の書き込みはキャッシュブロック内の書き込み済みセクタの直後から書き込みを行う。直後から書き込みができない場合は、書き込みの開始セクタアドレスまでコピーを行う。
図13は、ステップS23の書き込み処理におけるキャッシュブロックとユーザデータブロックの状態を示す図である。
例えば、図12の状態から、図13において、ユーザデータブロック121に対する論理セクタアドレス7〜8の書き込みが発生した場合、書き込み終了後のキャッシュブロック122は論理セクタアドレス2〜5の書き込み済みデータ123に続いて、124に示すように論理セクタアドレス6はユーザデータブロック121からコピーされ、これに続いて論理セクタアドレス7〜8のホストからの書き込みデータ125が書き込まれた状態となる(第3の書き込み手段、第4の書き込み手段)。
ステップS23の書き込み終了後は、キャッシュブロックのブロックアドレスが変化していないため管理情報を保存するための管理領域41への書き込みは発生しないことから、メモリ22の管理情報を更新するのみとなる(ステップS24)。
ステップS21の判断で、キャッシュブロック(AD-CACHE)が書き込み済み領域のみのフル状態であるとき、又は、ステップS22の判断で、キャッシュブロック(AD-CACHE)への書き込み条件を満たさないときは、CPU21は書き込みサイズが論理ブロックサイズであるか否かを判断する(ステップS25−1)。ステップS25−1の判断で、書き込みサイズが論理ブロックサイズでないときは、CPU21はライトバック処理を行う(ステップS25)。そして、CPU21はメモリ22の管理情報を更新する(ステップS26)。
ステップS25は、書き込みが発生した場合、キャッシュブロック(AD-CACHE)が、図15に示す書き込み済みのフル状態であれば、ガベージ処理を発生させずにライトバックを行う処理である。このとき、キャッシュブロックをユーザデータブロックとして管理情報に登録する。ライトバック処理前のユーザデータブロックは消去処理を行いフリーブロックとして管理情報に登録する。
また、ステップS25で、キャッシュブロック(AD-CACHE)がフル状態でない場合であっても、ガベージ処理を行うことによりフル状態にすることも可能である。
また、ステップS25−1の判断で、書き込みサイズが論理ブロックサイズのときは、新規キャッシュブロック(AD-CACHE)へフル状態で書き込みを行う(ステップS41)。そして、CPU21はキャッシュブロック(AD-CACHE)が割当済みであるか否かを判断する(ステップS42)。
ステップS42の判断で、キャッシュブロック(AD-CACHE)が割当済みであるときは、CPU21は割当済みキャッシュブロック(AD-CACHE)の消去を行う(ステップS43)。そして、ステップS43の割当済みキャッシュブロック(AD-CACHE)の消去終了後は、CPU21はユーザデータブロック111に対して割当済みキャッシュブロック112が消去されたのでメモリ22の管理情報を更新し(ステップS44)、管理領域41に管理情報を書き込む(ステップS45)。
ステップS42の判断で、キャッシュブロック(AD-CACHE)が割当済みでないときは、CPU21はユーザデータブロック111に対して未割当キャッシュブロック112があるのでメモリ22の管理情報を更新し(ステップS46)、管理領域41に管理情報を書き込む(ステップS47)。
上述したように、キャッシュブロック(AD-CACHE)、又は後述するキャッシュブロック(OD-CACHE)が割当済の状態において、書き込みが発生し、かつライトバックが発生する場合において、書き込みサイズが論理ブロックサイズである場合に限り、ライトバッグを行なわずに新規キャッシュブロックに書き込みを行い、古いキャッシュブロックを消去する。
これにより、ライトバッグ処理が発生しないため、ガベージ処理による書き込みパフォーマンスの低下を防ぐことができる。なお、この場合、消去処理は発生することになる。また、キャッシュブロック(AD-CACHE)、又は後述するキャッシュブロック(OD-CACHE)の割り当てがどのような状態であってもガベージ処理が発生しないため、パフォーマンスを一定に保つことができる。
図14は、ステップS25の書き込み処理におけるキャッシュブロックとユーザデータブロックの状態を示す図である。
例えば、図14において、ユーザデータブロック131の論理セクタアドレス0〜nに対して、キャッシュブロック132に論理セクタアドレス2〜7の書き込み済みデータ133があるとき、他の論理セクタアドレス8〜n、0〜1のデータをユーザデータブロック131からキャッシュブロック132に134に示すようにコピーして、キャッシュブロック132をフル状態にしておいて、ライトバック処理を行った後に再割当を行うことができる(第5の書き込み手段)。
つまり、図14に示すようにユーザデータブロック131に書き込まれているデータをすべてキャッシュブロック132にコピーする。コピー処理後、キャッシュブロック132をユーザデータブロック131としてメモリ22の管理情報に登録し、コピー処理前のユーザデータブロックは消去処理を行いフリーブロックとしてメモリ22の管理情報に登録する。
以上が、指定論理境界を超える書き込みについての説明である。次に、指定論理境界以下の書き込みについて説明する。
図5のステップS10の判断で、指定論理境界以下の書き込みが発生した場合に、CPU21は新規キャッシュブロック(OD-CACHE)へ書き込みを行う(ステップS11)。ステップS11で新規キャッシュブロック(OD-CACHE)を用いることで、ライトバック処理を発生させずに書き込みを行う。ステップS11の書き込みは、論理アドレスに関係なくキャッシュブロックの先頭から行う。
図16は、ステップS11の書き込み処理におけるキャッシュブロックとユーザデータブロックの状態を示す図である。
例えば、図16において、ユーザデータブロック151に対する論理セクタアドレス2の書き込みが発生した場合の書き込み終了後はキャッシュブロック152の先頭から論理セクタアドレス2はホストからの書き込みデータ153が書き込まれ、これに続いて、154に示すように論理セクタアドレス3はユーザデータブロック151からデータをコピーして、両者を合わせて指定論理境界155となるようにし、残りは空き領域の状態となる(第6の書き込み手段、第7の書き込み手段)。
ステップS11の書き込み終了後は、CPU21はユーザデータブロック151に対してキャッシュブロック152が新しく割り当てられたのでメモリ22の管理情報を更新し(ステップS12)、管理領域41に管理情報を書き込む(ステップS13)。
ステップS11は、指定論理境界以下の書き込みが発生した場合にキャッシュブロックを用いることで、ライトバック処理を発生させずに書き込みを行う処理である。ステップS11の書き込みは、論理アドレスに関係なくキャッシュブロックの先頭から行う。
例えば、図16に示す指定論理境界155を2セクタとして論理セクタアドレス2の書き込みが発生した場合の書き込み終了後は図16のキャッシュブロック152の状態となる。つまり、論理セクタアドレス2のデータをキャッシュブロック152の先頭に書き込み、論理セクタアドレス3のデータは、ユーザデータブロック151の任意のデータからコピーしている。この書き込み及びコピー処理の終了後は、キャッシュブロック152が新しく割り当てられるのでメモリ22の管理情報を更新し、管理領域41に書き込むようにしている。
図7に示すステップS31では、CPU21はキャッシュブロック(OD-CACHE)へ書き込み条件を満たすか否かを判断する(ステップS31)。ステップS31の判断で、キャッシュブロック(OD-CACHE)への書き込み条件を満たすときは、CPU21はキャッシュブロック(OD-CACHE)が書き込み済み領域のみのフル状態であるか否かを判断する(ステップS32)。
ステップS32の判断で、キャッシュブロック(OD-CACHE)が書き込み済み領域のみのフル状態でないときは、CPU21はキャッシュブロック(OD-CACHE)への書き込みを行う(ステップS33)。そして、CPU21はメモリ22の管理情報を更新する(ステップS34)。
ステップS31は、これから書き込む予定の論理空間が、キャッシュブロックに書き込み済みの論理空間に対して、以下の図10に示す91〜92の論理空間に当てはまるか否かを判別する処理である。
図10は、ステップS31の書き込み条件を満たす書き込みパターンを示す図である。図10において、91は、書き込み済み空間94の範囲内の書き込みの場合であり、92は、書き込み済み空間94と同一範囲の書き込みの場合である。
ステップS33は、書き込みが発生した場合、ライトバック処理を行わずに割り当てられているキャッシュブロックに書き込みを行う処理である。ステップS33の書き込みはキャッシュブロック内の書き込み済みセクタの直後から書き込みを行う。
図17は、ステップS33の書き込み処理におけるキャッシュブロックとユーザデータブロックの状態を示す図である。
例えば、図16の状態から、再度、ユーザデータブロック161に対する論理セクタアドレス2の書き込みが発生した場合、書き込み終了後のキャッシュブロック162は論理セクタアドレス2〜3の書き込み済みデータ163に続いて、164に示すように論理セクタアドレス2のホストからのデータの書き込みを行い、165に示すように論理セクタアドレス3のデータはユーザデータブロックからコピーする。これにより、164及び165に示す論理セクタアドレス2〜3は指定論理境界166の状態となる(第8の書き込み手段、第9の書き込み手段)。
ステップS33の書き込み終了後は、キャッシュブロックのブロックアドレスが変化していないため管理情報を保存するための管理領域41への書き込みは発生しないことから、メモリ22の管理情報を更新するのみとなる(ステップS34)。
ステップS31の判断で、キャッシュブロック(OD-CACHE)への書き込み条件を満たさないときは、CPU21はキャッシュブロック(OD-CACHE)に登録されている論理空間以降の書き込みであるか否かを判断する(ステップS35)。
ステップS35は、これから書き込む予定の論理空間が、キャッシュブロックに書き込み済みの論理空間に対して、図11に示す101〜102の論理空間に当てはまるか否かを判別する処理である。
図11は、ステップS35の書き込み条件を満たす書き込みパターンを示す図である。図11において、101は、書き込み済み空間104の書き込み済みセクタ以降から書き込みが始まる場合であり、102は、書き込み済み空間104の書き込み済みセクタ直後から書き込みが始まる場合である。
ステップS35の判断で、キャッシュブロック(OD-CACHE)に登録されている論理空間以降の書き込みでないときは、CPU21は書き込みサイズが論理ブロックサイズであるか否かを判断する(ステップS39−1)。ステップS39−1の判断で、書き込みサイズが論理ブロックサイズでないときは、CPU21はライトバック処理を行う(ステップS39)。そして、CPU21はメモリ22の管理情報を更新する(ステップS40)。
ステップS39は、書き込みが発生した場合、新規キャッシュブロック(AD-CACHE)を取得しライトバック処理を行う処理である。
図18は、ステップS39の書き込み処理におけるキャッシュブロックとユーザデータブロックの状態を示す図である。
例えば、始めに、キャッシュブロック172に書き込まれている論理セクタアドレス2〜3のデータを、174に示すように新規キャッシュブロック173へコピーする。その後に、ユーザデータブロック171に書き込まれている他の論理セクタアドレス4〜n、0〜1のデータを、175に示すように新規キャッシュブロック173へコピーする。例えば、図17に示す状態からステップS39のライトバック処理を行うと図18に示す状態となる。ステップS39のライトバック処理によるコピー処理後、新規キャッシュブロック173をユーザデータブロック171として管理情報に登録し、前のユーザデータブロック171は消去処理を行いフリーブロックとして管理情報に登録する(第13の書き込み手段、第1優先処理手段)。
ステップS32の判断で、キャッシュブロック(OD-CACHE)が書き込み済み領域のみのフル状態のときは、CPU21は新規キャッシュブロック(OD-CACHE)へ書き込みを行う(ステップS41)。ステップS41で新規キャッシュブロック(OD-CACHE)を用いることで、ライトバック処理を発生させずに書き込みを行う。ステップS41の書き込みは、論理アドレスに関係なくキャッシュブロックの先頭から行う。
ステップS41の書き込み終了後は、CPU21はユーザデータブロックに対してキャッシュブロックが新しく割り当てられたのでメモリ22の管理情報を更新し(ステップS42)、管理領域41に管理情報を書き込む(ステップS43)。
ステップS41は、書き込みが発生した場合、新規キャッシュブロック(OD-CACHE)を取得することで、ライトバック処理を行わずにキャッシュブロックの更新を行う処理である。
図19は、ステップS41の書き込み処理前におけるキャッシュブロックとユーザデータブロックの状態を示す図である。
図20は、ステップS41の書き込み処理後におけるキャッシュブロックとユーザデータブロックの状態を示す図である。
例えば、図19に示すキャッシュブロック182とユーザデータブロック181の状態から、再度、論理セクタアドレス2の書き込みが発生した場合、図20に示すように新規キャッシュブロック193の先頭に194に示す論理セクタアドレス2のホストからのデータを書き込み、これに続いて195に示す論理セクタアドレス3のデータをユーザデータブロック191からコピーする。ステップS41のコピー終了後は、新規キャッシュブロック193を新たなユーザデータブロック191として管理情報に登録し、前のユーザデータブロック191は消去処理を行いフリーブロックとして管理情報に登録する(第10の書き込み手段)。
ステップS35の判断で、キャッシュブロック(OD-CACHE)に登録されている論理空間以降の書き込みであるときは、CPU21は新規キャッシュブロック(AD-CACHE)へ書き込みを行う(ステップS36)。ステップS36で新規キャッシュブロック(AD-CACHE)を用いることで、ライトバック処理を発生させずに書き込みを行う。ステップS36の書き込みは、論理アドレスに関係なくキャッシュブロックの先頭から行う。
図21は、ステップS36の書き込み処理前におけるキャッシュブロックとユーザデータブロックの状態を示す図である。
図22は、ステップS36の書き込み処理後におけるキャッシュブロックとユーザデータブロックの状態を示す図である。
例えば、図21において、キャッシュブロック202とユーザデータブロック201の状態から、ユーザデータブロック201に対する論理アドレス5〜7の書き込みが発生した場合、図22に示すように新規キャッシュブロック213の先頭に214に示す論理セクタアドレス2〜3のデータをキャッシュブロック212からコピーし、これに続いて215に示す論理セクタアドレス4のデータをユーザデータブロック211からコピーする。215に示すデータのコピー終了後に、216に示す論理セクタアドレス5〜7のホストからのデータの書き込みを行う(第11の書き込み手段)。
ステップS36の書き込み終了後は、CPU21はユーザデータブロック211に対してキャッシュブロック213が新しく割り当てられたのでメモリ22の管理情報を更新し(ステップS37)、管理領域41に管理情報を書き込む(ステップS38)。
ステップS36は、ステップS35の条件を満たす書き込みが発生した場合に、新規キャッシュブロック(AD-CACHE)を取得することで、ライトバック処理を行わずに書き込みを行う処理である。
ステップS36の書き込みの前に、キャッシュブロック212内の214に示すデータを新規キャッシュブロック213へコピーする。その後にコピーした214に示すデータの直後のセクタから書き込みを行う。直後から書き込みができない場合は、書き込みの開始セクタアドレスまで214に示すユーザデータからのコピーを行う。ステップS36の書き込み終了後は、新規キャッシュブロック213を新たなキャッシュブロック212として管理情報に登録し、前のキャッシュブロック212は消去処理を行う。
また、ステップS39−1の判断で、書き込みサイズが論理ブロックサイズでないときは、新規キャッシュブロック(AD-CACHE)へフル状態で書き込みを行う(ステップS41)。そして、CPU21はキャッシュブロック(AD-CACHE)が割当済みであるか否かを判断する(ステップS42)。
ステップS42の判断で、キャッシュブロック(AD-CACHE)が割当済みであるときは、CPU21は割当済みキャッシュブロック(AD-CACHE)の消去を行う(ステップS43)。そして、ステップS43の割当済みキャッシュブロック(AD-CACHE)の消去終了後は、CPU21はユーザデータブロック111に対して割当済みキャッシュブロック112が消去されたのでメモリ22の管理情報を更新し(ステップS44)、管理領域41に管理情報を書き込む(ステップS45)。
ステップS42の判断で、キャッシュブロック(AD-CACHE)が割当済みでないときは、CPU21はユーザデータブロック111に対して未割当キャッシュブロック112があるのでメモリ22の管理情報を更新し(ステップS46)、管理領域41に管理情報を書き込む(ステップS47)。
上述したように、キャッシュブロック(OD-CACHE)、又は前述したキャッシュブロック(AD-CACHE)が割当済の状態において、書き込みが発生し、かつライトバックが発生する場合において、書き込みサイズが論理ブロックサイズである場合に限り、ライトバッグを行なわずに新規キャッシュブロックに書き込みを行い、古いキャッシュブロックを消去する。
これにより、ライトバッグ処理が発生しないため、ガベージ処理による書き込みパフォーマンスの低下を防ぐことができる。なお、この場合、消去処理は発生することになる。また、キャッシュブロック(OD-CACHE)、又は前述したキャッシュブロック(AD-CACHE)の割り当てがどのような状態であってもガベージ処理が発生しないため、パフォーマンスを一定に保つことができる。
図23は、論理ブロック単位の読み出し処理を示すフローチャートである。
図23において、まず、ステップS111で、CPU21は管理情報からユーザデータブロックのアドレス情報と書き込み済み論理空間情報を取得し、また、論理アドレスに対応したキャッシュブロックのアドレス情報と書き込み済み論理空間情報を取得する。
次に、CPU21はキャッシュブロックがユーザデータブロックに対して割当済みであるか否かを判断する(ステップS112)。ステップS112の判断で、キャッシュブロックがユーザデータブロックに対して割当済みでないとき、CPU21はユーザデータブロック内のデータを読み出してホストに供給する(ステップS113)。ステップS113は、読み出し要求された論理ブロックに対してキャッシュブロックが割り当てられていなかった場合の処理である。
ステップS112の判断で、キャッシュブロックがユーザデータブロックに対して割当済みであるとき、CPU21は読み出し開始アドレスがキャッシュブロックに存在する論理アドレスよりも小さいか否かを判断する(ステップS114)。ステップS114の判断で、読み出し開始アドレスがキャッシュブロックに存在する論理アドレスよりも小さいときは、CPU21は読み出し終了アドレスがキャッシュブロックに存在する論理アドレスよりも小さいか否かを判断する(ステップS115)。ステップS115の判断で、読み出し終了アドレスがキャッシュブロックに存在する論理アドレスよりも小さいときは、CPU21はユーザデータブロック内のデータを読み出してホストに供給する(ステップS116)。
ステップS114の判断で、読み出し開始アドレスがキャッシュブロックに存在する論理アドレスよりも小さくないときは、CPU21は読み出し開始アドレスがキャッシュブロックに存在する論理アドレスと同一であるか否かを判断する(ステップS123)。ステップS123の判断で、読み出し開始アドレスがキャッシュブロックに存在する論理アドレスと同一でないときは、CPU21はユーザデータブロック内のデータを読み出してホストに供給する(ステップS128)。
ステップS116及びステップS128は、キャッシュブロックは割り当てられているが、読み出し要求された論理アドレスのデータがキャッシュブロックに存在しない場合の処理である。この場合の処理は、ユーザデータブロック内のデータをホストに読み出す処理である。
ステップS115の判断で、読み出し終了アドレスがキャッシュブロックに存在する論理アドレスよりも小さくないときは、CPU21は読み出し終了アドレスがキャッシュブロックに存在する論理アドレスと同一であるか否かを判断する(ステップS117)。ステップS117の判断で、読み出し終了アドレスがキャッシュブロックに存在する論理アドレスと同一であるときは、CPU21はユーザデータブロック内のデータを読み出すと共に(ステップS118)、残りのデータをキャッシュブロックから読み出して、ホストに供給する(ステップS119)。
ステップS117の判断で、読み出し終了アドレスがキャッシュブロックに存在する論理アドレスと同一でないときは、CPU21はユーザデータブロック内のデータを読み出すと共に(ステップS120)、続くデータをキャッシュブロックから読み出して(ステップS12)、さらに残りのデータをキャッシュブロックから読み出して、ホストに供給する(ステップS122)。
ステップS123の判断で、読み出し開始アドレスがキャッシュブロックに存在する論理アドレスと同一であるときは、CPU21は読み出し終了アドレスがキャッシュブロックに存在する論理アドレスと同一であるか否かを判断する(ステップS124)。ステップS124の判断で、読み出し終了アドレスがキャッシュブロックに存在する論理アドレスと同一であるときは、CPU21はキャッシュブロック内のデータを読み出して、ホストに供給する(ステップS125)。
ステップS124の判断で、読み出し終了アドレスがキャッシュブロックに存在する論理アドレスと同一でないときは、CPU21はキャッシュブロック内のデータを読み出して(ステップS126)、残りのデータをユーザデータブロックから読み出して、ホストに供給する(ステップS127)。
ステップS118〜ステップS119、ステップS120〜ステップS122、ステップS126〜ステップS127は、ユーザデータブロックとキャッシュブロック内の書き込み済みデータの両方を読み出す処理である。この場合、読み出し始めは、ユーザデータブロック内のデータをホストに読み出す。読み出しの後半は、ホストからの要求論理セクタアドレスに対応するデータがキャッシュブロック内に存在するならば、キャッシュブロック内のデータをホストに読み出し、存在しないならば、ユーザデータブロック内のデータをホストに読み出す。
ステップS125は、キャッシュブロック内のデータをホストに読み出す処理である。
上述したように、フラッシュメモリ23で示した不揮発性メモリ(NAND型フラッシュメモリ)は上書きが不可であることとデータの消去単位がブロック単位であるため、データの書き換えが発生した場合、メモリカード20で示したメモリ装置内では、論理・物理テーブルの整合を取るため、書き換えデータのサイズに関係なく、ブロック単位で、別ブロックに書き換えデータを保存する必要があった。
そのため、書き換えデータ以外のデータは元ブロック内にあるデータをコピーする必要がある。そして、書き換え後は不必要なデータが存在するブロックが発生するため、そのブロックを消去する必要があった(ライトバック処理)。また、ブロックには消去回数の制限があった。
本実施の形態では、キャッシュブロックを用いたブロック制御方法により、従来のメモリ装置と比較してライトバック処理の発生頻度を減らすことができる。ライトバックの発生頻度が減ることにより、コピーと消去の発生頻度が減るため、データ書き換えの際の処理速度を向上させることができる。また、ブロックの消去回数を減るため、メモリ装置としての製品寿命を延ばすことができる。
これにより、複数セクタ単位の論理空間サイズである指定論理境界を超えるファイルデータについて、ホストから書き込みが行われた場合に、新規キャッシュブロックに書き込むことで、ライトバック処理を発生させない処理をすることができる。このとき、ライトバック処理の発生を抑えることでガベージ処理の発生が抑えられ、書き込みパフォーマンスを向上させることができる。また、ライトバック処理の発生を抑えることでブロックへの消去処理を減少させることができるため、製品寿命を延ばすことができる。
また、ホストから書き込みが行われた場合に、書き込まれる論理アドレス空間に関係なくキャッシュブロックの先頭からデータを書き込むことで、キャッシュブロック内のコピー処理を発生させない処理をすることができる。このとき、コピー処理の発生を抑えることで、書き込みパフォーマンスを向上させることができる。
また、上述した書き込みから連続した、クラスタ境界に限らないファイルデータの書き込みが行われた場合、キャッシュブロック内を追記することで、ライトバック処理を発生させない処理をすることができる。このとき、ライトバック処理の発生を抑えることでガベージ処理の発生が抑えられ、書き込みパフォーマンスを向上させることができる。ライトバック処理の発生を抑えることでブロックへの消去処理を減少させることができるため、製品寿命を延ばすことができる。このとき、キャッシュブロックのブロックアドレスのみを管理することで、ブロックアドレスが変化しなければ管理情報を更新する必要がなくなり、書き込みパフォーマンスを向上させることができる。また、管理情報の更新頻度が減少することで管理情報が登録されているブロックの消去処理を減少させることができるため、製品寿命を延ばすことができる。
また、キャッシュブロック内を追記することで、ライトバック処理を発生させない処理により、ライトバック処理の発生を抑えることでガベージ処理の発生を抑えられ、書き込みパフォーマンスを向上させることができる。ライトバック処理の発生を抑えることでブロックへの消去処理を減少させることができるため、製品寿命を延ばすことができる。この時、キャッシュブロックのブロックアドレスのみを管理することで、ブロックアドレスが変化しなければ管理情報を更新する必要がなくなり、書き込みパフォーマンスを向上させることができる。管理情報の更新頻度が減少することで管理情報が登録されているブロックの消去処理を減少させることができるため、製品寿命を延ばすことができる。
また、キャッシュブロックがフル書き込み状態の場合、ガベージ処理を発生させずにユーザブロックへライトバック処理を行うことで、書き込みパフォーマンスを向上させることができる。
次に、複数セクタ単位の論理空間サイズである指定論理境界以下の管理情報のFATやディレクトリエントリについて、ホストから書き込みが行われた場合に、新規キャッシュブロックにデータを書き込むことで、ライトバック処理を発生させない処理により、ライトバック処理の発生を抑えることでガベージ処理の発生が抑えられ、書き込みパフォーマンスを向上させることができる。ライトバック処理の発生を抑えることでブロックへの消去処理を減少させることができるため、製品寿命を延ばすことができる。
また、書き込み後、同じ論理アドレス空間の書き込みが発生した場合、キャッシュブロック内を追記することで、ライトバック処理を発生させない処理により、ライトバック処理の発生を抑えることでガベージ処理の発生を抑えられ、書き込みパフォーマンスを向上させることができる。ライトバック処理の発生を抑えることでブロックへの消去処理を減少させることができるため、製品寿命を延ばすことができる。この時、キャッシュブロックのブロックアドレスのみを管理することで、ブロックアドレスが変化しなければ管理情報を更新する必要がなくなり、書き込みパフォーマンスを向上させることができる。管理情報の更新頻度が減少することで管理情報が登録されているブロックの消去処理を減少させることができるため、製品寿命を延ばすことができる。
また、キャッシュブロック内を追記することで、ライトバック処理を発生させない処理により、ライトバック処理の発生を抑えることでガベージ処理の発生を抑えられ、書き込みパフォーマンスを向上させることができる。ライトバック処理の発生を抑えることでブロックへの消去処理を減少させることができるため、製品寿命を延ばすことができる。この時、キャッシュブロックのブロックアドレスのみを管理することで、ブロックアドレスが変化しなければ管理情報を更新する必要がなくなり、書き込みパフォーマンスを向上させることができる。管理情報の更新頻度が減少することで管理情報が登録されているブロックの消去処理を減少させることができるため、製品寿命を延ばすことができる。
また、キャッシュブロックがフル状態で書き込みが発生した場合、別のキャッシュブロックへデータ書き込むことで、ライトバック処理を発生させない処理により、ライトバック処理の発生を抑えることでガベージ処理の発生を抑えられ、書き込みパフォーマンスを向上させることができる。ライトバック処理の発生を抑えることでブロックへの消去処理を減少させることができるため、製品寿命を延ばすことができる。
また、管理情報のFATやディレクトリエントリの書き込み後、ファイルデータの書き込みが発生した場合、別のキャッシュブロックへデータ書き込むことで、ライトバック処理を発生させない処理により、ライトバック処理の発生を抑えることでガベージ処理の発生を抑えられ、書き込みパフォーマンスを向上させることができる。ライトバック処理の発生を抑えることでブロックへの消去処理を減少させることができるため、製品寿命を延ばすことができる。
また、ライトバックされるキャッシュブロックの優先順位について、キャッシュブロックの空きがない場合、キャッシュブロックの内で更新頻度の低いキャッシュブロックを優先的にライトバック処理する。更新頻度が低いキャッシュブロックを優先的にライトバック処理することで、書き込みに対するキャッシュブロックの使用効率を上げることができる。これは、更新頻度が低いキャッシュブロックは、更新頻度が高いキャッシュブロックと比較して、書き込みが発生する確率が低いためである。書き込みに対するキャッシュブロックの使用効率が上がることで、ライトバック処理の発生を抑えるので、ガベージ処理の発生が抑えられ書き込みパフォーマンスを向上させることができる。ライトバック処理の発生を抑えることでブロックへの消去処理を減少させることができるため、製品寿命を延ばすことができる。
また、キャッシュブロックの空きがない場合、書き込みがフル状態であるキャッシュブロックを優先的にガベージ処理する。フル状態のキャッシュブロックを優先的にライトバックすることで、書き込みに対するキャッシュブロックの使用効率を上げることができる。これは、フル状態ならばキャッシュブロックを使用する必要がないためである。書き込みに対するキャッシュブロックの使用効率が上がることで、ガベージ処理の発生が抑えられ書き込みパフォーマンスを向上させることができる。ライトバック処理の発生を抑えることでブロックへの消去処理を減少させることができるため、製品寿命を延ばすことができる。また、フル状態であれば、ガベージ処理によるブロック内のコピー処理を行う必要がないため、パフォーマンスを向上させることができる。
上述した本実施の形態に限らず、本発明の要旨を逸脱しない限り、適宜、変更しうることはいうまでもない。
本実施の形態に適用されるデータ処理システムの概略構成を示す図である。 メモリカード20の構成を示すブロック図である。 ユーザデータブロックとキャッシュブロックの対応を示す図である。 書き込み処理を示すフローチャートである。 書き込み処理を示すフローチャートである。 書き込み処理を示すフローチャートである。 書き込み処理を示すフローチャートである。 書き込み処理を示すフローチャートである。 ステップS22の書き込み条件を満たす書き込みパターンを示す図である。 ステップS31の書き込み条件を満たす書き込みパターンを示す図である。 ステップS35の書き込み条件を満たす書き込みパターンを示す図である。 ステップS14の書き込み処理におけるキャッシュブロックとユーザデータブロックの状態を示す図である。 ステップS23の書き込み処理におけるキャッシュブロックとユーザデータブロックの状態を示す図である。 ステップS25の書き込み処理におけるキャッシュブロックとユーザデータブロックの状態を示す図である。 ホストからの書き込みによりフルになったときのキャッシュブロック(AD-CACHE)の状態(2パターン)を示す図である。 ステップS11の書き込み処理におけるキャッシュブロックとユーザデータブロックの状態を示す図である。 ステップS33の書き込み処理におけるキャッシュブロックとユーザデータブロックの状態を示す図である。 ステップS39の書き込み処理におけるキャッシュブロックとユーザデータブロックの状態を示す図である。 ステップS41の書き込み処理前におけるキャッシュブロックとユーザデータブロックの状態を示す図である。 ステップS41の書き込み処理後におけるキャッシュブロックとユーザデータブロックの状態を示す図である。 ステップS36の書き込み処理前におけるキャッシュブロックとユーザデータブロックの状態を示す図である。 ステップS36の書き込み処理後におけるキャッシュブロックとユーザデータブロックの状態を示す図である。 論理ブロック単位の読み出し処理を示すフローチャートである。
符号の説明
20…メモリカード、21…CPU、22…メモリ、23…フラッシュメモリ、24…ホストI/F、25…バス、30…コントローラ部、40…メモリ部、41…管理領域、42…ユーザデータ領域、43…キャッシュ領域

Claims (16)

  1. クラスタ単位にデータの書き込み及び読み出しが行われるとともに、複数のセクタからなるブロック単位にデータの消去が行われる不揮発性メモリと、
    前記不揮発性メモリの動作を制御する制御回路と備えたメモリ装置であって、
    前記不揮発性メモリは、管理情報を記録する管理領域と、
    ユーザからのデータが記録されるユーザデータ領域と、
    前記ユーザデータ領域に対する書き込み及び読み出しデータを一時的に保持するキャッシュ領域と、を有し、
    前記管理領域は、前記ユーザデータ領域の論理ブロックのアドレスと、前記論理ブロックに割り当てられた物理ブロックのアドレスとを対応付けて記憶する論理/物理テーブルと、前記論理/物理テーブルの物理ブロックのアドレスに対応する前記キャッシュ領域の物理ブロックのアドレスを含み、
    前記制御回路は、
    前記ユーザデータ領域のユーザブロック内の複数セクタ単位の論理空間サイズである指定論理境界を超えるデータの書き込みの際に、消去済みの前記キャッシュ領域の新規キャッシュブロックに書き込む第1の書き込み手段と、
    前記第1の書き込み手段による前記新規キャッシュブロックへのデータの書き込みの際に、書き込まれる前記新規キャッシュブロックの論理アドレス空間に関係なく前記新規キャッシュブロックの先頭からデータを書き込む第2の書き込み手段と、
    前記第1の書き込み手段による前記新規キャッシュブロックへのデータの書き込みから連続したデータの書き込みを行う場合に、前記新規キャッシュブロック内の書き込み済みセクタの直後から追記する第3の書き込み手段と、
    前記第1の書き込み手段による前記新規キャッシュブロックへのデータの書き込みから不連続なデータの書き込みを行う場合に、書き込みの開始セクタアドレスまで前記ユーザデータブロックから前記不連続な範囲のデータのコピーを行った後に追記する第4の書き込み手段とを備え
    メモリ装置。
  2. 前記制御回路は、前記第4の書き込み手段によるデータの書き込みの際に、前記新規キャッシュブロック内がすべて書き込み済みの場合は、ライトバック処理を行うためのコピー処理であるガベージ処理を発生させずに、前記新規キャッシュブロック内のデータを前記ユーザデータブロックに書き戻すライトバック処理を行う第5の書き込み手段、を備えた
    請求項1に記載のメモリ装置。
  3. クラスタ単位にデータの書き込み及び読み出しが行われるとともに、複数のセクタからなるブロック単位にデータの消去が行われる不揮発性メモリと、
    前記不揮発性メモリの動作を制御する制御回路と備えたメモリ装置であって、
    前記不揮発性メモリは、管理情報を記録する管理領域と、
    ユーザからのデータが記録されるユーザデータ領域と、
    前記ユーザデータ領域に対する書き込み及び読み出しデータを一時的に保持するキャッシュ領域と、を有し、
    前記管理領域は、前記ユーザデータ領域の論理ブロックのアドレスと、前記論理ブロックに割り当てられた物理ブロックのアドレスとを対応付けて記憶する論理/物理テーブルと、前記論理/物理テーブルの物理ブロックのアドレスに対応する前記キャッシュ領域の物理ブロックのアドレスを含み、
    前記制御回路は、
    前記ユーザデータ領域のユーザブロック内の複数セクタ単位の論理空間サイズである指定論理境界以下のデータの書き込みの際に、消去済みの前記キャッシュ領域の新規キャッシュブロックに書き込む第6の書き込み手段と、
    前記第6の書き込み手段による前記新規キャッシュブロックへのデータの書き込みの際に、書き込まれる前記新規キャッシュブロックの論理アドレス空間に関係なく前記新規キャッシュブロックの先頭からデータを書き込み、書き込み後のデータが前記指定論理境界以下となる場合は、前記指定論理境界となる連続したセクタアドレスまで前記ユーザデータブロックからデータのコピーを行う第7の書き込み手段と、を備えた
    メモリ装置。
  4. 前記制御回路は、前記第6の書き込み手段による前記新規キャッシュブロックへのデータの書き込みの後に、前記新規キャッシュブロック内の同じ論理アドレス空間の書き込みが発生した場合、前記新規キャッシュブロック内の書き込み済みセクタの直後から追記する第8の書き込み手段、を備えた
    請求項3に記載のメモリ装置。
  5. 前記制御回路は、前記第8の書き込み手段による前記新規キャッシュブロックへのデータの書き込みの後に、前記書き込み後のデータが前記指定論理境界以下となる場合は、前記指定論理境界となる連続したセクタアドレスまで前記ユーザデータブロックからデータのコピーを行う第9の書き込み手段、を備えた
    請求項4に記載のメモリ装置。
  6. 前記制御回路は、前記第9の書き込み手段によるデータの書き込みの際に、前記新規キャッシュブロック内がすべて書き込み済みの場合は、他のキャッシュブロックへデータの書き込みを行う第10の書き込み手段、を備えた
    請求項5に記載のメモリ装置。
  7. 前記制御回路は、前記第10の書き込み手段による前記新規キャッシュブロックへのデータの書き込みの後に、前記指定論理境界を超えるデータの書き込みが発生した場合は、他のキャッシュブロックへデータの書き込みを行う第11の書き込み手段、を備えた
    請求項6に記載のメモリ装置。
  8. クラスタ単位にデータの書き込み及び読み出しが行われるとともに、複数のセクタからなるブロック単位にデータの消去が行われる不揮発性メモリと、
    前記不揮発性メモリの動作を制御する制御回路と備えたメモリ装置であって、
    前記不揮発性メモリは、管理情報を記録する管理領域と、
    ユーザからのデータが記録されるユーザデータ領域と、
    前記ユーザデータ領域に対する書き込み及び読み出しデータを一時的に保持するキャッシュ領域とを有し、
    前記管理領域は、前記ユーザデータ領域の論理ブロックのアドレスと、前記論理ブロックに割り当てられた物理ブロックのアドレスとを対応付けて記憶する論理/物理テーブルと、前記論理/物理テーブルの物理ブロックのアドレスに対応する前記キャッシュ領域の物理ブロックのアドレスを含み、
    前記制御回路は、
    前記ユーザデータ領域のユーザブロック内のデータの書き込みの際に、前記キャッシュ領域のキャッシュブロック内がすべて書き込み済みの場合は、ライトバック処理を行うためのコピー処理であるガベージ処理を発生させずに、前記キャッシュブロックを前記ユーザデータブロックとして割り当てることによりライトバック処理を行う第12の書き込み手段と、
    前記第12の書き込み手段による前記ライトバック処理を、前記キャッシュブロックを含むキャッシュブロックのうち、データの更新頻度が低いキャッシュブロックに対して優先的に行う第1の優先処理手段と、を備えた
    メモリ装置。
  9. クラスタ単位にデータの書き込み及び読み出しが行われるとともに、複数のセクタからなるブロック単位にデータの消去が行われる不揮発性メモリが有する管理領域、ユーザデータ領域及びキャッシュ領域に対するメモリ制御方法であって、
    前記ユーザデータ領域の論理ブロックのアドレスと、前記論理ブロックに割り当てられた物理ブロックのアドレスとを対応付けて記憶する論理/物理テーブルと、前記論理/物理テーブルの物理ブロックのアドレスに対応する前記キャッシュ領域の物理ブロックのアドレスを記憶する記憶ステップと、
    前記ユーザデータ領域のユーザブロック内の複数セクタ単位の論理空間サイズである指定論理境界を超えるデータの書き込みの際に、消去済みの前記キャッシュ領域の新規キャッシュブロックに書き込む第1の書き込みステップと、
    前記第1の書き込みステップによる前記新規キャッシュブロックへのデータの書き込みの際に、書き込まれる前記新規キャッシュブロックの論理アドレス空間に関係なく前記新規キャッシュブロックの先頭からデータを書き込む第2の書き込みステップと、
    前記第1の書き込みステップによる前記新規キャッシュブロックへのデータの書き込みから連続したデータの書き込みを行う場合に、前記新規キャッシュブロック内の書き込み済みセクタの直後から追記する第3の書き込みステップと、
    前記第1の書き込みステップによる前記新規キャッシュブロックへのデータの書き込みから不連続なデータの書き込みを行う場合に、書き込みの開始セクタアドレスまで前記ユーザデータブロックから前記不連続な範囲のデータのコピーを行った後に追記する第4の書き込みステップとを含む
    メモリ制御方法。
  10. 前記第4の書き込みステップによるデータの書き込みの際に、前記新規キャッシュブロック内がすべて書き込み済みの場合は、ライトバック処理を行うためのコピー処理であるガベージ処理を発生させずに、前記新規キャッシュブロック内のデータを前記ユーザデータブロックに書き戻すライトバック処理を行う第5の書き込みステップ、を含む
    請求項9に記載のメモリ制御方法。
  11. クラスタ単位にデータの書き込み及び読み出しが行われるとともに、複数のセクタからなるブロック単位にデータの消去が行われる不揮発性メモリが有する管理領域、ユーザデータ領域及びキャッシュ領域に対するメモリ制御方法であって、
    前記ユーザデータ領域の論理ブロックのアドレスと、前記論理ブロックに割り当てられた物理ブロックのアドレスとを対応付けて記憶する論理/物理テーブルと、前記論理/物理テーブルの物理ブロックのアドレスに対応する前記キャッシュ領域の物理ブロックのアドレスを記憶する記憶ステップと、
    前記ユーザデータ領域のユーザブロック内の複数セクタ単位の論理空間サイズである指定論理境界以下のデータの書き込みの際に、消去済みの前記キャッシュ領域の新規キャッシュブロックに書き込む第6の書き込みステップと、
    前記第6の書き込みステップによる前記新規キャッシュブロックへのデータの書き込みの際に、書き込まれる前記新規キャッシュブロックの論理アドレス空間に関係なく前記新規キャッシュブロックの先頭からデータを書き込み、書き込み後のデータが前記指定論理境界以下となる場合は、前記指定論理境界となる連続したセクタアドレスまで前記ユーザデータブロックからデータのコピーを行う第7の書き込みステップと、を含む
    メモリ制御方法。
  12. 前記第6の書き込みステップによる前記新規キャッシュブロックへのデータの書き込みの後に、前記新規キャッシュブロック内の同じ論理アドレス空間の書き込みが発生した場合、前記新規キャッシュブロック内の書き込み済みセクタの直後から追記する第8の書き込みステップ、を含む
    請求項11に記載のメモリ制御方法。
  13. 前記第8の書き込みステップによる前記新規キャッシュブロックへのデータの書き込みの後に、前記書き込み後のデータが前記指定論理境界以下となる場合は、前記指定論理境界となる連続したセクタアドレスまで前記ユーザデータブロックからデータのコピーを行う第9の書き込みステップ、を含む
    請求項12に記載のメモリ制御方法。
  14. 前記第9の書き込みステップによるデータの書き込みの際に、前記新規キャッシュブロック内がすべて書き込み済みの場合は、他のキャッシュブロックへデータの書き込みを行う第10の書き込みステップ、を含む
    請求項13に記載のメモリ制御方法。
  15. 前記第10の書き込みステップによる前記新規キャッシュブロックへのデータの書き込みの後に、前記指定論理境界を超えるデータの書き込みが発生した場合は、他のキャッシュブロックへデータの書き込みを行う第11の書き込みステップ、を含む
    請求項14に記載のメモリ制御方法。
  16. クラスタ単位にデータの書き込み及び読み出しが行われるとともに、複数のセクタからなるブロック単位にデータの消去が行われる不揮発性メモリが有する管理領域、ユーザデータ領域及びキャッシュ領域に対するメモリ制御方法であって、
    前記ユーザデータ領域の論理ブロックのアドレスと、前記論理ブロックに割り当てられた物理ブロックのアドレスとを対応付けて記憶する論理/物理テーブルと、前記論理/物理テーブルの物理ブロックのアドレスに対応する前記キャッシュ領域の物理ブロックのアドレスを記憶する記憶ステップと、
    前記ユーザデータ領域のユーザブロック内のデータの書き込みの際に、前記キャッシュ領域のキャッシュブロック内がすべて書き込み済みの場合は、ライトバック処理を行うためのコピー処理であるガベージ処理を発生させずに、前記キャッシュブロックを前記ユーザデータブロックとして割り当てることによりライトバック処理を行う第12の書き込みステップと、
    前記第12の書き込みステップによる前記ライトバック処理を、前記キャッシュブロックを含むキャッシュブロックのうち、データの更新頻度が低いキャッシュブロックに対して優先的に行う第1の優先処理ステップと、を含む
    メモリ制御方法。
JP2005348111A 2005-12-01 2005-12-01 メモリ装置及びメモリ制御方法 Expired - Fee Related JP4356686B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005348111A JP4356686B2 (ja) 2005-12-01 2005-12-01 メモリ装置及びメモリ制御方法
US11/565,279 US8489850B2 (en) 2005-12-01 2006-11-30 Memory apparatus and memory control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005348111A JP4356686B2 (ja) 2005-12-01 2005-12-01 メモリ装置及びメモリ制御方法

Publications (2)

Publication Number Publication Date
JP2007156633A JP2007156633A (ja) 2007-06-21
JP4356686B2 true JP4356686B2 (ja) 2009-11-04

Family

ID=38240946

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005348111A Expired - Fee Related JP4356686B2 (ja) 2005-12-01 2005-12-01 メモリ装置及びメモリ制御方法

Country Status (2)

Country Link
US (1) US8489850B2 (ja)
JP (1) JP4356686B2 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007130386A2 (en) * 2006-05-01 2007-11-15 Mediatek Inc. Method and apparatus for secure context switching in a system including a processor and cached virtual memory
KR100850515B1 (ko) * 2007-01-24 2008-08-05 삼성전자주식회사 멀티레벨 셀 플래시 메모리를 갖는 메모리 시스템 및그것의 프로그램 방법
JP2008299513A (ja) * 2007-05-30 2008-12-11 Sony Corp データ記憶装置およびその制御方法
JP4356782B2 (ja) * 2007-09-12 2009-11-04 ソニー株式会社 メモリ装置、メモリ制御方法、およびプログラム
US8200904B2 (en) * 2007-12-12 2012-06-12 Sandisk Il Ltd. System and method for clearing data from a cache
US7870446B2 (en) * 2008-02-29 2011-01-11 Kabushiki Kaisha Toshiba Information processing apparatus and nonvolatile semiconductor memory drive
JP4558054B2 (ja) * 2008-03-11 2010-10-06 株式会社東芝 メモリシステム
US8261009B2 (en) * 2008-12-30 2012-09-04 Sandisk Il Ltd. Method and apparatus for retroactive adaptation of data location
US20100169540A1 (en) * 2008-12-30 2010-07-01 Sinclair Alan W Method and apparatus for relocating selected data between flash partitions in a memory device
KR101663667B1 (ko) * 2009-02-03 2016-10-07 삼성전자주식회사 플래시 메모리의 주소 매핑에 의한 데이터 관리 방법 및 장치
US9280477B2 (en) * 2010-12-13 2016-03-08 Seagate Technology Llc Data storage management in a memory device
US9323670B2 (en) 2010-12-13 2016-04-26 Seagate Technology Llc Protecting volatile data of a storage device in response to a state reset
JP5178857B2 (ja) * 2011-02-16 2013-04-10 株式会社東芝 メモリシステム
WO2012161659A1 (en) * 2011-05-24 2012-11-29 Agency For Science, Technology And Research A memory storage device, and a related zone-based block management and mapping method
US8977799B2 (en) * 2011-09-26 2015-03-10 Lsi Corporation Storage caching/tiering acceleration through staggered asymmetric caching
US9612956B2 (en) 2013-03-15 2017-04-04 Seagate Technology Llc Multi-tiered caching for data storage management in a device
JP6260395B2 (ja) * 2014-03-27 2018-01-17 Tdk株式会社 メモリコントローラ、メモリシステム及びメモリ制御方法
KR102447471B1 (ko) 2015-06-24 2022-09-27 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 스토리지 장치
KR20200057473A (ko) 2018-11-16 2020-05-26 삼성전자주식회사 스토리지 장치 및 이를 포함하는 스토리지 시스템
KR20210027563A (ko) * 2019-08-28 2021-03-11 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11929121B2 (en) 2022-03-09 2024-03-12 Micron Technology, Inc. Storing one data value by programming a first memory cell and a second memory cell

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5263142A (en) * 1990-04-12 1993-11-16 Sun Microsystems, Inc. Input/output cache with mapped pages allocated for caching direct (virtual) memory access input/output data based on type of I/O devices
JPH0997206A (ja) 1995-09-28 1997-04-08 Canon Inc フラッシュrom管理方法及び装置及びコンピュータ制御装置
JP3954698B2 (ja) 1997-08-29 2007-08-08 パナソニック コミュニケーションズ株式会社 メモリー制御装置
JP3534585B2 (ja) 1997-10-21 2004-06-07 株式会社日立製作所 フラッシュメモリを複数使用した外部記憶装置のデータ記憶制御方法及び装置
JPH11249968A (ja) 1998-03-05 1999-09-17 Sanyo Electric Co Ltd ファイル記録方法及びファイルシステム
JP2002091707A (ja) 2000-09-14 2002-03-29 Hitachi Electronics Eng Co Ltd 記憶媒体ライブラリシステムにおけるファイル情報管理方法
TW539950B (en) 2000-12-28 2003-07-01 Sony Corp Data recording device and data write method for flash memory
JP2003015928A (ja) 2001-07-04 2003-01-17 Nec System Technologies Ltd フラッシュメモリのデータ格納装置及びそれに用いるデータ格納方法
JP3892751B2 (ja) 2002-04-23 2007-03-14 日本電信電話株式会社 Icカードに搭載されたフラッシュメモリの管理方法及びシステム
JP4334331B2 (ja) 2003-12-11 2009-09-30 群聯電子股▲ふん▼有限公司 フラッシュメモリのアクセス制御方法
US7173863B2 (en) * 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
JP2005225716A (ja) 2004-02-12 2005-08-25 Katagiri Seisakusho:Kk セラミックス材、およびその製造方法
JP2005301591A (ja) * 2004-04-09 2005-10-27 Toshiba Corp 不揮発性メモリを備えた装置及びメモリコントロ−ラ
JP2007102314A (ja) * 2005-09-30 2007-04-19 Fujitsu Ltd ディスクキャッシュ制御装置

Also Published As

Publication number Publication date
US8489850B2 (en) 2013-07-16
JP2007156633A (ja) 2007-06-21
US20070150693A1 (en) 2007-06-28

Similar Documents

Publication Publication Date Title
JP4356686B2 (ja) メモリ装置及びメモリ制御方法
JP4356782B2 (ja) メモリ装置、メモリ制御方法、およびプログラム
JP4122972B2 (ja) データ記録装置及びフラッシュメモリに対するデータ書き込み方法
KR100877448B1 (ko) 비휘발성 기억 시스템
JP3825465B2 (ja) メモリカード及びメモリカードシステム
JP5087347B2 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
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
US7647470B2 (en) Memory device and controlling method for elongating the life of nonvolatile memory
US20080028132A1 (en) Non-volatile storage device, data storage system, and data storage method
US8819387B2 (en) Memory storage device, memory controller, and method for identifying valid data
JP5570406B2 (ja) メモリコントローラ、及びデータ記録装置
JP4665539B2 (ja) メモリ制御装置、メモリ制御方法、プログラム
JPWO2007105688A1 (ja) メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
JP2004326165A (ja) メモリ制御装置およびメモリ制御方法
US20050204115A1 (en) Semiconductor memory device, memory controller and data recording method
WO2020039927A1 (ja) 不揮発性記憶装置、ホスト装置、及びデータ記憶システム
JP4710274B2 (ja) メモリ装置、メモリ装置の制御方法およびデータ処理システム
JP3934659B1 (ja) メモリコントローラ及びフラッシュメモリシステム
JP2007280329A (ja) 不揮発性記憶装置および不揮発性記憶装置の管理方法
JP2008191855A (ja) 半導体記憶装置及びメモリ制御方法
US20090319587A1 (en) Memory controller, nonvolatile memory device, and nonvolatile memory system
JP2004326538A (ja) 情報記録再生方法
JP2006040170A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP5255389B2 (ja) 記憶装置およびメモリ制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090410

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090421

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090602

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: 4356686

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