WO2005106673A1 - 不揮発性記憶装置及びデータ書込み方法 - Google Patents

不揮発性記憶装置及びデータ書込み方法 Download PDF

Info

Publication number
WO2005106673A1
WO2005106673A1 PCT/JP2005/008188 JP2005008188W WO2005106673A1 WO 2005106673 A1 WO2005106673 A1 WO 2005106673A1 JP 2005008188 W JP2005008188 W JP 2005008188W WO 2005106673 A1 WO2005106673 A1 WO 2005106673A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
write
address
logical
written
Prior art date
Application number
PCT/JP2005/008188
Other languages
English (en)
French (fr)
Inventor
Toshiyuki Honda
Original Assignee
Matsushita Electric Industrial Co., Ltd.
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 Matsushita Electric Industrial Co., Ltd. filed Critical Matsushita Electric Industrial Co., Ltd.
Priority to JP2006512845A priority Critical patent/JP4773342B2/ja
Priority to EP05736975A priority patent/EP1746510A4/en
Priority to US11/587,808 priority patent/US7877569B2/en
Publication of WO2005106673A1 publication Critical patent/WO2005106673A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2069Management of state, configuration or failover
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2087Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring with a common controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/08Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers from or to individual record carriers, e.g. punched card, memory card, integrated circuit [IC] card or smart card
    • 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/7201Logical to physical mapping or translation of blocks or pages
    • 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/7202Allocation control and policies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)

Abstract

 不揮発性記憶装置(101)はホスト(102)からの論理アドレスを受けてデータの書込み、読み出しが可能であって、物理アドレスによりデータの書込み、読み出しが行われる不揮発性メモリ(103)と、所定の管理単位領域毎に論理アドレスと物理アドレスの対応情報を格納する論物変換テーブル(106)と、不揮発性メモリ内の複数領域に重複して配置され管理単位領域のサイズよりも小さなサイズのデータの論理アドレスと物理アドレスの対応情報を格納する重複テーブル(107)と、不揮発性記憶装置の動作制御を行うコントローラ(104)とを備える。コントローラ(104)は、一の管理単位領域に書込み済みのデータと同一の論理アドレスを持つデータを他の管理単位領域に重複して書込むことを許可し、その重複して書込むための書込みモードを複数有し、ホストからの論理アドレスの変化の状況に応じて書込みモードを選択的に切り替える。

Description

明 細 書
不揮発性記憶装置及びデータ書込み方法
技術分野
[0001] 本発明は、フラッシュメモリ等の不揮発性メモリを用いた記憶装置およびその書込 み方法に関する。
背景技術
[0002] 近年、不揮発性メモリを搭載したメモリカードはデジタルカメラや携帯電話の記憶媒 体としてその巿場を拡大している。そしてメモリカード容量の増加に伴い、データファ ィルゃ静止画等の小容量の記録からより大容量が必要となる動画記録へとその用途 は広がっている。このため、従来より、不揮発性メモリを搭載した記録媒体に関し種々 の考案がなされている(例えば、特許文献 1〜4)。
[0003] 近年、メモリカードの不揮発性メモリとして主に使用されている NANDタイプのフラ ッシュメモリは、その容量の増加に伴!、データの消去単位となる物理ブロックのサイズ 力 l6kB (主に 128MB以下のフラッシュメモリについて)のものから 128kB (主に 128 MB以上のフラッシュメモリ)へと大きくなつてきている。それに対し、メモリカードへの データ書込みを管理するファイルシステムでは、データの書込み単位となるクラスタ は 16kBのままで変化して!/ヽな!、。
[0004] 従来の小容量(主に 128MBまでの容量)のメモリカードにおいては、メモリカードに データを書込む際のクラスタの容量と、メモリカード内部に搭載されている NANDタ イブのフラッシュメモリの消去単位となる物理ブロックとは等し力つた。
[0005] 特許文献 1 :特開 2001— 154909号公報
特許文献 2:特開平 11― 53248号公報
特許文献 3:特開 2002— 324008号公報
特許文献 4:特開平 5 - 216780号公報
発明の開示
発明が解決しょうとする課題
[0006] しかし、大容量化が進むと、例えば、容量が 128MBを越えた容量値の不揮発性メ モリからは、メモリカードにデータを書込む単位であるクラスの容量の 16kBと、メモリ カード内部に搭載されている NANDタイプのフラッシュメモリの消去単位である物理 ブロックの容量の 128kBとが異なる。これにより、メモリカードに書込まれたファイルが フラグメンテーションを発生して 、た場合の書込み性能の低下を招 、て 、た。
[0007] 上記の様にフラグメンテーションが発生した状態での、従来の不揮発性メモリの書 込み方法においては、書込み処理に要する時間が長いとともに、書込み'消去を行う 物理ブロックの数が多く必要となると 、う課題が存在して 、た。
[0008] また、ホストからの書込み要求には、前回にデータを書込んだ領域と連続した論理 アドレス領域にデータを続けて書込む場合や、前回にデータを書込んだ領域と全く 別の任意の領域にデータを書込む場合等、種々の場合があり、いずれのアクセス方 法によっても効率的な書込み処理が実現されることが望まれる。
[0009] 本発明は上記課題を解決すべくなされたものであり、その目的とするところは、ホス トからのアクセス方法に依存せず書込み処理に要する時間を短縮できる不揮発性の 記憶装置を提供することにある。
課題を解決するための手段
[0010] 本発明に係る不揮発性記憶装置は、ホストからの論理アドレスを受けてデータの書 込み、読み出しが可能な不揮発性記憶装置である。不揮発性記憶装置は、物理アド レスによりデータの書込み、読み出しが行われ、複数の物理ブロック力 構成される 不揮発性メモリと、論理アドレスと物理アドレスの対応情報を、所定の管理単位領域 毎に論理グループアドレスと、 1つ以上の物理ブロックからなる物理グループのァドレ スとの対応情報をとして格納する論物変換テーブルと、論物変換テーブルで対応付 けられている論理グループアドレスと同一の論理グループアドレスを持つデータにつ
V、て、管理単位領域のサイズよりも小さなサイズのデータの論理アドレスと物理アドレ スの対応情報として格納する重複テーブルと、不揮発性記憶装置の動作制御を行う コントローラとを備える。コントローラは、一の管理単位領域に書込み済みのデータと 同一の論理アドレスを持つデータを、他の管理単位領域に重複して書込むことを許 可し、その重複して書込むための書込みモードを複数有し、ホストからの論理アドレス の変化の状況に応じて、論物変換テーブルの情報を更新することなぐ書込みモード を選択的に切り替える。
[0011] 本発明に係るデータ書込み方法は、ホストからの論理アドレスを受けてデータの書 込み、読み出しが可能な不揮発性記憶装置に対するデータ書込み方法である。そ の書込み方法は、一の管理単位領域に書込み済みのデータと同じ論理アドレスを持 つデータを他の管理単位領域に重複して書込むための書込みモードを複数有し、ホ ストから、既に書込み済みのデータと同じ論理アドレスを持つデータの書込みコマン ドを受けたときに、書込み要求のあったデータを、書込み済みデータの管理単位領 域とは別の管理単位領域に重複して書込み、別の管理単位領域に書込んだデータ の論理アドレスと物理アドレスを対応づけて記憶し、その後、続けてホストから書込み コマンドを受けたときに、ホストからの論理アドレスの変化の状況に応じて書込みモー ドを選択的に切り替える。
発明の効果
[0012] 本発明によれば、不揮発性メモリ内のある論理アドレスに対してデータが書込まれ た後、同じ論理アドレスに対して再度データが書込まれる場合に、物理アドレス上で 前に書込まれたデータを消去せず保持したまま、前にデータが書込まれた物理領域 と異なる物理領域に新たにデータを書込む重複書込みを許可する。これにより、不揮 発性メモリ特有の、データの更新に伴うコピー、消去処理の回数を低減でき、書込み 効率を向上できる。さらに、書込みアドレスの変化の状況に応じて書込みモードを選 択的に切り替えるので、ホストからの書込み要求の種類 (連続アクセス、ランダムァク セス)に依存せずに、より最適な方法で書込み処理を実行できる。
図面の簡単な説明
[0013] [図 1A]本発明の不揮発性記憶装置の一実施形態であるメモリカードの構成を示す図 [図 1B]論物変換テーブルの構成を示す図
[図 2]フラッシュメモリの内部の構成を示す図
[図 3]フラッシュメモリの物理ブロックの構成を示す図
[図 4]メモリカードの内部における論理的なデータの管理を示した図
[図 5]重複テーブルの構成を示した図
[図 6] (a) FAT領域に対する重複情報の構成を示す図、(b)データ領域に対する重 複情報の構成を示す図
[図 7]フラッシュメモリの記憶領域のページのデータフォーマットを示す図
[図 8]書込み単位配置テーブルの構成を示す図
[図 9]メモリカードのフラッシュメモリへの書込み処理を示すフローチャート
[図 10]メモリカードのフラッシュメモリへの書込み処理を示すフローチャート(図 9のつ づき)
圆 11A]従来の書込み処理を説明するための図
[図 11B]従来の書込み処理を説明するための図
[図 11C]本発明の連続書込み処理を説明するための図
[図 12]連続書込み処理のフローチャート
[図 13]上書き書込み処理を説明するための図
[図 14]上書き書込み処理のフローチャート
[図 15]ランダム書込み処理のフローチャート
[図 16]重複テーブルの登録位置の決定処理のフローチャート
[図 17]新規書込み処理のフローチャート
圆 18]連続モードの場合の集約処理を説明するための図
[図 19]上書きモード、ランダムモードの場合の集約処理を説明するための図
[図 20]集約処理のフローチャート
[図 21]集約処理のフローチャート(図 20の続き)
[図 22]FAT情報に対する論理グループの割当てにつ 、て説明した図
[図 23A]FAT情報に関する種々の管理条件をまとめて示した図
[図 23B]FAT領域変換テーブルのデータ構成例を示す図
[図 24A]FAT2に対する論理グループ 0— 2に対応する物理ブロックの領域構成を示 した図
[図 24B]FAT書込み処理のフローチャート
[図 25]連続書込みモード時の動作の具体例を説明した図
[図 26]連続書込みモード時の動作の具体例を説明した図
[図 27]連続書込みモード時の動作の具体例を説明した図 [図 28]連続書込みモード時の動作の具体例を説明した図
[図 29]連続書込みモード時の動作の具体例を説明した図
[図 30]連続書込みモード時の動作の具体例を説明した図
[図 31]連続書込みモード時の動作の具体例を説明した図
[図 32]上書き書込みモード時の動作の具体例を説明した図
[図 33]上書き書込みモード時の動作の具体例を説明した図
[図 34]上書き書込みモード時の動作の具体例を説明した図
[図 35]上書き書込みされたブロックの集約処理の具体例を説明した図
[図 36]上書き書込みされたブロックの集約処理の具体例を説明した図
[図 37]ランダム書込みモード時の動作の具体例を説明した図
[図 38]メモリカードのフラッシュメモリからの読み出し処理を示すフローチャート
[図 39]通常読み出し処理を示すフローチャート
[図 40]連続読み出し処理を示すフローチャート
[図 41]上書き読み出し処理を示すフローチャート
[図 42]ランダム読み出し処理を示すフローチャート
[図 43]メモリカードのフラッシュメモリからの読み出し処理を示すフローチャート(図 38 のつづき)
[図 44]FAT通常読み出し処理を示すフローチャート
[図 45]FAT重複読み出し処理を示すフローチャート
符号の説明
101 メモリカード
102 ホス卜
103 フラッシュメモリ
104 コントローラ
105 消去済みテーブル
106 論物変換テーブル
107 重複テーブル
107a FAT領域に対する重複情報 107b データ領域に対する重複情報
108 FAT領域変換テーブル
150 書込み単位配置テーブル
発明を実施するための最良の形態
[0015] 以下、添付の図面を参照し、本発明に係る不揮発性記憶装置の一実施形態であるメ モリカード及びその書込み方法にっ 、て説明する。
[0016] 1. メモリカードの構成
図 1Aに本発明の不揮発性記憶装置の一実施形態であるメモリカードの構成を示 す。メモリカード 101はホスト 102からデータの読み出し、書込みが可能な記憶装置 である。メモリカード 101は、不揮発性の記憶素子であるフラッシュメモリ 103と、フラ ッシュメモリに対するデータの書込み、読み出しを制御するコントローラ 104と、消去 済みテーブル 105と、論物変換テーブル 106と、重複テーブル 107と、 FAT領域変 換テーブル 108とを備える。
[0017] フラッシュメモリ 103はここでは 128MBの容量を持つ。但し、フラッシュメモリ 103の 容量はこれに限定されず、また、複数のフラッシュメモリを備えても良い。コントローラ 104は、ホスト 102からの書込みと読み出し命令を受けてフラッシュメモリ 103へのデ ータの格納、または、フラッシュメモリ 103からのデータの読み出しを制御する。
[0018] フラッシュメモリ 103に格納されるデータは、ファイルシステムの 1つである FATファ ィルシステムにより管理される。 FATファイルシステムは、ファイル管理情報(以下「F AT情報」という。)として、データ記録領域を複数のパーティションと呼ばれる領域に 分割して管理するための情報を格納するマスターブートレコード 'パーティションテー ブル、 1つのパーティション内の管理情報を格納するパーティションブートセクタ、ファ ィルに含まれるデータの格納位置を示す FATテーブル 1及び FATテーブル 2、並び にルートディレクトリ直下に存在するファイル及びディレクトリの情報を格納するルート ディレクトリエントリを含む。なお、ファイルシステムは他の種類のものでもよい。
[0019] 消去済みテーブル 105はフラッシュメモリ 103内部の物理ブロックのそれぞれ消去 済であるか、または、書込み済みであるかを示す情報を格納する。論物変換テープ ル 106は、ホスト 102が指定するアドレス(以下「論理アドレス」という。)と、フラッシュメ モリ 103内部のアドレス(以下「物理アドレス」という。)との変換を行うテーブルである
[0020] 論物変換テーブル 106は、論理グループアドレスに対応するアドレスの領域に、そ の論理グループに対応する物理ブロックのアドレスを格納する。論物変換テーブル 1 06の簡単な構成を図 1Bに示す。論物変換テーブル 106は論理グループアドレスを テーブルのアドレスとして論理アドレスに対応する物理アドレスをテーブルのデータと して持つ。対応する物理ブロックが存在しな!ヽ場合には無効値 (本実施の形態では 0 xOOOO)をデータとして持つ。論物変換テーブル 106は論理ブロック 1〜999に対応 する領域と論理グループ 0— 0〜0— 3に対応する 2つの領域力 なる構成を取る。こ れは後述するが、論理アドレスを FAT領域とデータ領域に分割して取り扱う本発明 の特徴に起因する。
[0021] 本実施形態では、フラッシュメモリ 103において、ある物理ブロック Aに既に書込み 済みであるデータと同じ論理アドレスを持つ別のデータを、物理ブロック Aとは異なる 物理ブロック Bに書込むこと(以下、これを「重複書込み」という。)を許容する。重複テ 一ブル 107は、このような重複書込みされたデータに関する物理アドレスと論理アド レス間の対応情報を格納するテーブルである。 FAT領域変換テーブル 108は、フラ ッシュメモリ 103〖こおける、 FAT1, FAT2等の FAT情報を格納する領域の境界セク タに関する情報を格納する。
[0022] すなわち、本実施形態のメモリカード 101は、フラッシュメモリ 103において、ある論 理アドレスに対応した物理アドレスにデータが書込まれた後、同じ論理アドレスに対し て再度データが書込まれる場合に、前に書込まれたデータを物理的に消去せず保 持したまま、前にデータが書込まれた物理ブロックと異なる物理ブロックにデータを書 込むことを可能とする。メモリカード 101は、新たに書込んだデータの論理アドレスと 物理アドレスを重複テーブル 107に格納するとともに、前にデータが書込まれた物理 ブロックと後にデータが書込まれた物理ブロックの対応関係をも重複テーブルに格納 する。すなわち、重複テーブル 107は、データが書込まれた論理アドレスと、その論 理アドレスに対して以前にデータが書込まれた物理領域 (転送元)と、その論理アドレ スに対して後にデータが書込まれた物理領域 (転送先)とに関する情報を互いに関 連づけて格納する。
[0023] また、言い換えると、重複テーブル 107は、フラッシュメモリ 103の物理領域に対し てのみデータが書込まれ、未書込みの物理ページを残している物理ブロック(転送先 )に書込まれたデータに関する情報を格納するテーブルである。重複テーブル 107 は、未書込み領域をもつ物理ブロック(転送先)のブロックアドレス、旧データがある物 理ブロック(転送元)のブロックアドレスや、そこに書込まれたデータの論理グループ アドレス等の情報を格納する、とも言える。
[0024] 図 2はフラッシュメモリ 103の内部の構成を示す図である。フラッシュメモリ 103の記 録領域は複数の物理ブロック 201から構成される。物理ブロック 201は 128kBの大き さを持ちデータを一括に消去できる消去単位である。本実施形態では 1物理ブロック をデータの管理単位として扱うが、複数の物理ブロックをまとめて管理単位として扱つ てもよい。
[0025] 図 3は物理ブロック 201の内部の構成を示す図である。物理ブロック 201は複数の 物理ページ 301から構成される。物理ページ 301は、データを書込む際の書込み単 位であり、 2kBの大きさを持つ。ホスト 102が論理的にデータの書込みを行う単位で あるクラスタは 16kBである力 この値は物理ブロック 201の容量 128kBとも物理ぺー ジ 301の容量 2kBとも一致しない。そのため、連続する 8ページ分の物理ページによ り容量 16kBの部分物理ブロックを構成する。部分物理ブロック(16kB)はホストから のデータの書込みを想定してコントローラ 103が論理的に扱うデータの単位である。 1つの物理ブロック 201は 8つの部分物理ブロックからなり、その部分物理ブロック単 位でホスト 102からのデータが書込まれる。
[0026] 図 4はメモリカード 101の内部における論理的なデータの管理を示した図である。メ モリカード 101に搭載されて!、るフラッシュメモリ 103の記憶容量は 128MBである。 一般的にフラッシュメモリ 103には初期不良ブロックや、書き換えを繰り返すことにより 不良ブロックが発生することがあるため、予めやや少な目の容量をメモリカード 101の 容量とする。本例では、ホスト 102が認識できる容量は 125MBとする。ホスト 102から 書込みを行う単位である 16kB単位を論理ブロック 402とし、メモリカード 101の 125 MBの容量において、 0から順に 7999まで割り当てている。この論理ブロック 8個で、 フラッシュメモリ 103の消去単位である物理ブロックと等しい 128kB単位の論理ダル ープを構成する。
[0027] 図 5は重複テーブル 107の構成を示した図である。重複テーブル 107は、フラッシ ュメモリ 103内の主として FAT情報を格納する領域 (以下「FAT領域」という。 )に対 する重複情報 (FAT重複情報) 107aと、ユーザデータを格納する領域 (以下「データ 領域」という。 )に対する重複情報 107bとを格納する。本例では、 FAT領域に対する 重複情報 107aは、 4つのレコード (FAT重複情報 0〜3)を有し、データ領域に対す る重複情報は 8つのレコード (重複情報 0〜7)を有するが、重複情報のレコード数は これに限られない。
[0028] 図 6 (a)に FAT重複情報 107aの構成を示す。 FAT重複情報 107aにおいて、「転 送先物理ブロックアドレス」は、転送先の物理ブロックのアドレスを格納する。「転送先 アロケーション物理ページ」は、転送先として割当てられた物理ページの番号を格納 する。 FAT重複情報 107aは転送元に関する情報を格納していない。これは、後述 するように、 FAT領域については、前にデータが書込まれた物理ブロックと同じ物理 ブロック内に後のデータが書込まれるため、転送元の物理ブロックと転送先の物理ブ ロックが同じになるからである。
[0029] 図 6 (b)にデータ領域に対する重複情報 107bの構成を示す。重複情報 107bにお いて、「論理ブロックアドレス」のフィールドは、書込みデータの論理ブロックのアドレス を格納する。「転送元物理ブロックアドレス」のフィールドは、転送元の物理ブロックの アドレスを格納する。「転送先物理ブロックアドレス」のフィールドは、転送先の物理ブ ロックのアドレスを格納する。「転送先先頭ページ論理アドレス」のフィールドは、転送 先の物理ブロックの先頭ページに格納されたデータの論理アドレスを格納する。
[0030] 「転送先次書込み論理アドレス」のフィールドは、転送先の物理ブロックにお!/、て次 に書込まれるデータの先頭データの論理アドレスを格納する。すなわち、転送先の物 理ブロックにおいて最後に書込まれたデータの論理アドレスの次のアドレスを格納す る。「転送先次書込み物理アドレス」のフィールドは、転送先の物理ブロックにおいて 次に書込みを行うときの先頭の物理アドレスを格納する。すなわち、転送先の物理ブ ロックにお 、て消去済み領域の先頭の物理アドレスを格納する。 [0031] 「転送先書込みモード」のフィールドは、書込みモードを示す値を格納する。書込み モードには、「連続モード」、「上書きモード」、「ランダムモード」の 3種類がある。各モ ードを示す値は以下のとおりである。
連続モード: OxOOOOh
上書きモード: OxFFFFh
ランダムモード:上記以外 (ランダムモードでの書込み周期)
[0032] 「転送先有効オフセット物理アドレス」のフィールドは、転送先物理ブロックにおいて 最後に書込まれたデータについての、転送先物理ブロック先頭からのオフセット値を 格納する。
[0033] 図 7にフラッシュメモリ 103の記憶領域のページのデータフォーマットを示す。各ぺ ージは、そのページについての管理情報を格納する管理領域と、データを格納する セクタデータ領域とを有する。管理領域は、集約フラグ、論理ブロックアドレス、論理 セクタアドレス、管理領域の ECC (Error Correction Code)等が格納される。セクタデ ータ領域には、セクタデータと、セクタ IDと、セクタデータとセクタ IDについての ECC とが格納される。
[0034] 図 8に書込み単位配置テーブルの構成を示す。書込み単位配置テーブル 150は フラッシュメモリ 103内の管理領域に格納される。書込み単位配置テーブル 150はラ ンダムモードでの書込みと FAT書込みの際に使用される。
[0035] ランダムモードでの書込みでは「書込み単位」のフィールドは、ランダムモードで書 込みを行うときの最小の書込みデータサイズを格納する。この書込み単位より小さい データサイズでの書込みは禁止される。書込み単位は、例えば、 0x0010h(16セク タ)、 0x0020h (32セクタ)、 0x0040h (64セクタ)に設定される。 1物理ブロック(=6 4ページ)に含まれる書込み単位の数は、書込み単位の大きさにより異なる。例えば、 書込み単位の値力 S0x0020h (32セクタ( = 8ページ) )であれば、 1物理ブロック内に 8個の書込み単位が含まれる。図 8は、書込み単位の値が 0x0010h (16セクタ(=4 ページ))の場合の単位配置テーブル 150の構成を示す。この場合、 1物理ブロック 内に 16 (F)個の書込み単位 (書込み単位 0〜書込み単位 F)が含まれる。「書込み単 位 0先頭アドレス」のフィールドは、 16個の書込み単位のうちの第 1番目の書込み単 位のデータが書込まれた領域の先頭物理アドレスの値を格納する。「書込み単位 n 先頭アドレス」のフィールドは、第 n+ 1番目の書込み単位が書込まれた領域の先頭 物理アドレスの値を格納する。
[0036] FAT書込みでは「書込み単位」のフィールドは、書込みを行う論理グループによる 固定値となる(図 23Aの書込み単位のサイズ)。従って 1物理ブロック( = 64ページ) に含まれる書込み単位の数も論理グループにより異なる。
[0037] 2. メモリカードの動作
上記の構成を有するメモリカード 101の動作を以下に説明する。
[0038] 2. 1 書込み動作
本実施形態のメモリカードによるフラッシュメモリ 103への書込み処理について図 9 、図 10を参照して説明する。
[0039] 図 9において、メモリカード 101のコントローラ 104は、ホスト 102から書込みコマンド を受信すると、ホスト 102から指定された書込み論理アドレスに基づきフラッシュメモリ 103にお 、てデータを書込むべき領域が FAT領域かデータ領域かを判定する(S1 D o FAT領域であれば、図 10に示す処理を実行する(詳細は後述する)。なお、ホ スト 102はデータ書込み領域を論理セクタアドレスで指定する。
[0040] データ領域であれば、コントローラ 104は重複テーブル 107を参照し、指定された 論理アドレスの登録がある力否かを判断する(S 12)。この判断は、重複テーブル 10 7の重複情報の「論理ブロックアドレス」を参照し、その値がホスト 102により指定され た論理ブロックアドレスと等しいか否かを判断して行われる。ここで、論理ブロックアド レスは、論理セクタアドレスを管理単位であるフラッシュメモリの物理ブロックサイズで 除した商として得られる。
[0041] 重複テーブル 107に登録がない場合、重複テーブル 107での登録位置を決定した 後(S23)、物理ブロックへの新規書込みを行う(S24)。これらの処理の詳細は後述 する。
[0042] 重複テーブル 107に登録がある場合、転送先の物理ブロックにおいて未書込みの 領域 (消去済み領域)がある力否かを判断する(S13)。これは、重複情報 1071)の「 転送先次書込み物理アドレス」フィールドの値力 判断できる。すなわち、「転送先次 書込み物理アドレス」フィールドの値力 0x0100 (物理ブロックのサイズ)よりも小さけ れば、未書込み領域があると判断し、 0x0100と同じであれば、未書込み領域がある と判断する。
[0043] 未書込みページがない場合、集約処理を行い(S 18)、未書込みページがある場合 、重複情報 107bの「転送先書込みモード」フィールドの値から書込みモードを判定 する(S14)。
[0044] 書込みモードがランダムモードの場合、まずランダム書込みが可能カゝ否かを判断す る(S15)。この判断は以下のように行う。重複情報 107bの「書込みモード」の値が" 連続モード"であるときは、「転送先次書込み物理アドレス」が、書込み周期(例えば、 0x0040)以下のときに、ランダム書込み「可」と判断する。それ以外は、ランダム書込 み「不可」と判断する。ここで、書込み周期とは、書込みを行う際の所定のデータサイ ズであり、書込み周期より小さいデータサイズでの書込みは不可能となる。「書込みモ ード」の値が"上書きモード"であるときは、「転送先先頭ページ論理アドレス」と「転送 先次書込み論理アドレス」との差分力 書込み周期(例えば、 0x0010、 0x0020又 は 0x0040)に一致するときに、ランダム書込み「可」と判断する。それ以外は、ランダ ム書込み「不可」と判断する。
[0045] ランダム書込みが可能であれば、ランダム書込みを行う(S16)。ランダム書込みが 不可能であれば、集約処理を行う(S18)。
[0046] 書込みモードが上書きモードの場合、まず上書き書込みが可能か否かを判断する( S19)。この判断は以下のように行う。重複情報 107bの「書込みモード」の値が"連続 モード"であるときは、ホスト 102により指定された論理アドレスが「転送先先頭ページ 論理アドレス」以上のときに、上書き書込み「可」と判断する。それ以外は、上書き書 込み「不可」と判断する。「書込みモード」の値が"上書きモード"であるときは、ホスト 1 02により指定された論理アドレスが「転送先先頭ページ論理アドレス」以上でかつ「 転送先次書込み論理アドレス」よりも小さなときに、上書き書込み「可」と判断する。そ れ以外は、上書き書込み「不可」と判断する。
[0047] 上書き書込みが可能であれば、上書き書込みを行う (S20)。上書き書込みが不可 能であれば、ステップ S 15に進む。 [0048] 書込みモードが連続モードの場合、まず連続書込みが可能か否かを判断する(S2 D o重複情報 107bの「転送先次書込み論理アドレス」の値が、ホスト 102により指定 された論理アドレスよりも小さいときに、連続書込み「可」と判断する。それ以外は、連 続書込み「不可」と判断する。連続書込みが可能であれば、連続書込みを行う(S22 )。連続書込みが不可能であれば、ステップ S 19に進む。
[0049] 書込み処理(S16、 S20、 S22、 S24)が終了すると、ホスト 102からの書込みデー タの転送が継続している力否かを判断する(S 17)。ホスト 102から終了を示すコマン ドが送信されたときは、処理を終了し、そうでなければ、ステップ S11に戻り、上記処 理を繰り返す。
[0050] 本実施形態のメモリカード 101は以上のように、直前の書込みアドレスとは関連性 のな 、任意の論理アドレス領域に書込みを行うランダムモードと、直前に書込みを行 つた論理アドレス領域と同じ論理アドレス領域に書込みを行う上書きモードと、連続し た論理アドレス領域に書込みを行う連続モードとを有し、これらのモードを、ホストから 受けた論理アドレスの変化の状況に応じて選択的に切り替える。このように書込みモ ードを切り替えることで、書込み状況に応じた最適な書込み処理が実現され、書込み 処理の効率を向上できる。
[0051] なお、本実施形態のメモリカードは 3つの書込みモードを有している力 これらの書 込みモードは全て備えていなくてもよぐアプリケーションに応じて 1つ又は 2つの書 込みモードのみを備えてもよ 、。
[0052] 以下、各書込み処理についてより具体的に説明する。
[0053] 2. 1. 1 連続書込み
本実施形態における連続書込み処理の概念を説明する。本実施形態における連 続書込み処理の概念を説明する前に、従来の書込み処理によるフラッシュメモリ内部 のデータ配置の変化を説明する。
[0054] 図 11 Aに示すようにデータの消去、書込みが行われる場合を検討する。図 11 A (a )の状態では、データ領域において、クラスタ 2とクラスタ 3にファイル 1が書込まれ、ク ラスタ 4にファイルが書込まれ、クラスタ 5とクラスタ 6にフィル 3が書込まれクラスタ 7に ファイル 4が書込まれ、クラスタ 8とクラスタ 9にファイル 5が書込まれている。 [0055] この状態からホスト 102によってファイル 1, 3, 5が消去された状態を図 l lA (b)に 示す。ホスト 102は、フラッシュメモリ 103内のデータ領域に対しては何らデータの書 込み'消去を行わず、 FAT1において、ファイル 1, 3, 5に関連するクラスタの値を全 て" 0000"に書き換えることによってファイル 1, 3, 5を論理的に消去する。それにより 、データ領域のファイル 1, 3, 5があった領域は、ホスト 102により空き領域として認識 される。
[0056] この状態力もホスト 102が容量 96KBの新ファイルを書込んだ後の状態が図 11A ( c)である。 FAT1にお 、て空き領域を示す" 0000"が書かれたクラスタに対して新フ アイノレを書込む。
[0057] 以上のようにしてホスト 102はメモリカード 101に書込んだファイルを消去し、また新 たなファイルを書込む。
[0058] 図 11Aの消去 ·書込み処理に対してメモリカード 101内部での従来の処理につ!ヽ て図 11Bを用いて説明する。
[0059] 図 l lB (a)はフラッシュメモリ 103内部におけるデータ構成を示したものであり、物 理ブロック 100にファイル 1〜5が書込まれている。物理ブロック 101〜104は消去済 みブロックである。この状態からファイル 1, 3, 5が論理的に消去された図 l lB (b)の 状態になっても、この物理ブロック 100の状態は変わらず図 l lB (a)の状態のままで ある。
[0060] 次にホスト 102が新ファイルをメモリカード 101に書込む場合、新ファイルを書込む べきクラスタは 3つの部分 (クラスタ 2と 3、クラスタ 5と 6、クラスタ 8と 9)に分かれている ので、ホスト 102は 3回に分けてメモリカード 101に対してデータを書込む必要がある
[0061] まず、別の消去済み物理ブロック 101において、消去されたファイル 1に対応する 領域に新ファイルの一部を書込み、残りの領域にファイル 2〜5をコピーする。そして 書込み後に物理ブロック 100を物理的に消去する。これにより図 l lB (b)の状態にな る。
[0062] 次に、別の消去済み物理ブロック 102において、消去されたファイル 3に対応する 領域に新ファイルのデータの一部を書込むとともに、それ以外の領域には物理ブロッ ク 101からデータをコピーする。その後、物理ブロック 101を物理的に消去する。これ により図 1 IB (c)の状態になる。
[0063] さらに、別の消去済み物理ブロック 103において、消去されたファイル 5に対応する 領域に新ファイルのデータの一部を書込むとともに、それ以外の領域には物理ブロッ ク 102からデータをコピーする。その後、物理ブロック 102を物理的に消去する。これ により図 1 IB (d)の状態になる。
[0064] 以上のように、従来では、 1つの論理グループ内の書込みであるにもかかわらず、 3 つの物理ブロックに対して書込み ·消去を行う必要があり、書き込み処理に時間がか かった。
[0065] 次に、本実施形態による上書き書込みの動作について図 11Cを用いて説明する。
図 l lC (a)に示すように、最初、物理ブロック 99にファイル 1〜5のデータが格納さ れている。物理ブロック 100〜物理ブロック 102は消去済みブロックである。この状態 で、新ファイルを、ファイル 1、ファイル 3、ファイル 5がそれぞれ記録された論理アドレ ス領域と同じ論理アドレス領域に分けて書込む場合を考える。メモリカード 101は、消 去済みテーブル 105を参照して、消去済みの物理ブロック 100を検索し、その物理 ブロック 100に新ファイルの一部を記録する(図 l lC (b)参照)。その時点で重複テー ブル 107において新ファイルについて論理アドレスと物理アドレスの対応づけを行う とともに、新ファイルとファイル 1の物理アドレスの対応づけを行う。このとき、論理ブロ ック 99は変更されない。続いて、物理ブロック 100においてファイル 3に対応する位 置に次の新ファイルの一部を記録する。その際、物理ブロック 99におけるファイル 2 のデータをコピーした後、書込む(図 l lC (c)参照)。その時点で重複テーブル 107 において新ファイルについて論理アドレスと物理アドレスの対応づけを行うとともに、 新ファイルとファイル 3の物理アドレスの対応づけを行う。同様に、物理ブロック 100に おいて、ファイル 4のデータをコピー後、新ファイルの一部を書込み後、物理ブロック 99を消去する(図 l lC (d)参照)。この時点で、重複テーブル 107において物理ブロ ック 99と物理ブロック 100の対応づけを解消する。
[0066] 以上のように、重複テーブル 107によって、既に書込まれたデータと同じ論理アドレ スを持ち、異なる物理ブロックに書込まれた新たなデータについて、論理アドレスと物 理アドレスの対応づけを行うとともに、前に書込まれたデータと新たに書込んだデー タの物理ブロック間の対応付けを行っている。このような重複テーブル 107を備えるこ とにより、データの上書きによる別の物理ブロックへのデータのコピー及び消去の回 数を低減でき、書込み効率を向上できる。
[0067] 図 12のフローチャートを参照し、連続書込み処理の詳細を説明する。
最初に、直ちに、連続書込み可能か否かを判断する(S51)。具体的には、登録さ れて 、る重複情報 107bの「転送先次書込み論理アドレス」が、ホスト 102が指定する 論理アドレスに等しい場合に、直ちに連続書込み可能と判定する。ホスト 102が指定 する論理アドレスよりも小さいときは、「不可」と判定する。
[0068] 書込み「不可」である場合、「転送先次書込み物理アドレス」の示すアドレスから、ホ スト 102が指定する論理セクタアドレスの前までの領域に、転送元の物理ブロックに おける対応するデータをコピーする(S52)。この際、書込み状況にしたがい重複情 報 107bの「転送先次書込み論理アドレス」と「転送先次書込み物理アドレス」を更新 する。
[0069] その後、ホスト 102から転送されたデータを指定された領域にページ単位で書込む
(S53)。この際、書込み状況にしたがい重複情報 107bの「転送先次書込み論理ァ ドレス」と「転送先次書込み物理アドレス」を更新する。
[0070] ホスト 102からの書込みデータの転送が終了したか否かを判定する(S54)。ホスト 1 02から終了を示すコマンドが送信されたときに、書込みデータが終了したと判定する 。ホスト 102からのデータ転送が継続している場合、次に書込む領域が同じ論理ダル ープか否かを判断し (S55)、同じ論理グループであれば、データの書込みを継続す る(S53)。「転送先次書込み論理アドレス」が 0x0100であれば、異なる論理グルー プと判断し、 0x0100以下であれば同じ論理グループであると判断する。異なる論理 グループであれば処理を終了する。
[0071] 2. 1. 2 上書き書込み
図 13を参照し、本実施形態における上書き書込み処理の概念を説明する。図 13 ( a)を参照し、物理ブロック 100の論理ブロック 8〜15のそれぞれにデータが格納され ている場合に、ホスト 102からの論理ブロック 10に対する書込みに対して、コントロー ラ 104は論理ブロック 10が属する論理グループ 0に対応する物理ブロック 100を論物 変換テーブル 106から得る。そして消去済みテーブル 105から消去済みのブロックで ある物理ブロック 101を得る。そしてホスト 102からのデータを論理ブロック 10として書 込み、まだ未書込みのページを残した物理ブロック 101に関する情報を重複テープ ノレ 107に格納する。
[0072] この後、さらにホスト 102が同一の論理ブロックである論理ブロック 10に対して書込 みを行う場合、コントローラ 104は論理ブロック 10が属する論理グループ 0に対応す る物理ブロック 100を論物変換テーブル 106から得る。そして、重複テーブル 107を 参照して、未書込みのページを持ち、かつ、同じ論理グループ 0のデータが書込み 済みである物理ブロック 101を得る、そしてホスト 102からのデータを、論理ブロック 1 0として書込み、まだ未書込みのページを残した物理ブロック 101に関する情報を重 複テーブル 107に格納して書込みを終える。この状態が図 13 (b)に示した状態であ る。この処理に要する時間も同様に 2880 sである。
[0073] さらに、この後、連続してホスト 102から同一の論理ブロックである論理ブロック 2に 対して複数回の書込みを行った後の状態を示した図が図 13 (c)である。
[0074] 以上のように本実施の形態では、同一の論理ブロックに対する書込みが連続して 発生した場合に、 1つの物理ブロックに対して続けて、かつ、書込みが発生した論理 ブロックに対してのみ書込み行う。これにより、論理ブロックの書き換えに要する時間 を低減できる。
[0075] 図 14のフローチャートを参照し、上書き書込み処理の詳細を説明する。最初に、上 書きモードに設定する(S61)。重複情報 107bの「転送先書込みモード」フィールドの 値を"上書きモード"を示す値に設定する。
[0076] そして、連続モードからの移行か否かを判断する(S62)。この判断は、重複情報 10 7bの「転送先書込みモード」を参照して行われる。連続モードからの移行であれば、 直ぐにホストデータを書込み可能か否かを判断する(S63)。この判断は、以前の書 込みにおいて、書込み周期を満たすように、書込みがなされている力否かを判断す ることにより行う。すなわち、書込み対象の物理ブロックにおいてデータ書込み済み の領域の境界が、書込み周期にァライメントされているかを判断する。具体的には、 既に書込み済みのページの合計のサイズが 2のべき乗の値となる力否かを判断する 。より具体的には、重複情報 107bの「転送先次書込み物理アドレス」が、 0x0004、 0 x0008、 0x0010、 0x0020、 0x0040、 0x0080の! /、ずれ力であれば、、直ぐに上書 き可能であると判定し、上記以外の時には不可と判定する。
[0077] 直ぐに書込みが不可の場合、周期を満たすように不足分のデータを、書込み対象 のブロックにコピーする(S64)。すなわち、転送元物理ブロック力 転送先物理ブロッ クへ、論理ブロックが連続になるように、「転送先次書込み物理アドレス」が示すアドレ スから、書込み後のページ数のサイズが 2のべき乗となるアドレスまでのデータをコピ 一する。この際、書込み状況に応じて「転送先次書込み論理アドレス」と「転送先次書 込み物理アドレス」を更新する。
[0078] 次に、有効オフセットを設定する(S65)。「転送先有効オフセット物理アドレス」に「 転送先次書込み物理アドレス」の値を書込む。
[0079] その後、直ぐにホストデータを書込み可か否かを判断する(S66)。登録されて ヽる 重複情報の「転送先先頭ページ論理アドレス」とホストが指定する論理セクタアドレス とが同じページに属していれば、書込み可と判定し、属していなければ書込み不可と 判定する。
[0080] 不可と判定されたときは、書込みデータの前のデータを書込み対象ブロックにコピ 一する(S67)。「転送先先頭ページ論理アドレス」フィールドが示すアドレスからホスト 102が指定するセクタアドレスの直前までのデータを、転送元物理ブロックから転送 先物理ブロックへコピーする。この際、書込み状況に応じて「転送先次書込み物理ァ ドレス」フィールドを更新する。
[0081] そして、ホスト 102から転送されたデータをページ単位で書込む(S68)。この際、書 込み状況に応じて「転送先次書込み物理アドレス」フィールドを更新する。
[0082] ホスト 102からの書込みデータの転送が終了したか否かを判定する(S69)。ホスト 1 02からのデータ転送が終了して 、る場合、上書き周期分の残りのデータを書込み対 象ブロックにコピーする(S70)。ホスト 102からのデータ転送が継続している場合、次 に書込む領域が同じ論理グループカゝ否かを判断し (S71)、同じ論理グループであ れば、データの書込みを継続する(S68)。異なる論理グループであれば処理を終了 する。
[0083] 2. 1. 3 ランダム書込み
本実施形態において、ランダム書込みとは、転送先物理ブロックにおいて既に書込 まれたデータの論理アドレスと、新たに書込もうとするデータの論理アドレスとが、連 続でもなぐ重複もしない場合の書込みである。
[0084] 図 15のフローチャートを参照し、ランダム書込み処理の詳細を説明する。最初に、 重複情報 107bの「転送先書込みモード」を参照してランダムモードであるか否かを 判断する(S81)。
[0085] ランダムモードでなければ、ホストデータを直ぐに書込み可能か否かを判断する(S 82)。この判断は、上書き書込みの場合と同様、以前の書込みにおいて、書込み周 期を満たすように、書込みがなされている力否かを判断することにより行う。直ぐに書 込みが不可の場合は、周期を満たすように不足分のデータを、書込み対象のブロッ クにコピーする(S83)。
[0086] その後、ランダムモードに設定する(S84)。重複情報 107bの「転送先書込みモー ド」の値が"上書きモード"のときは、「転送先書込みモード」に「転送先次書込み物理 アドレス」の値を書込む。
[0087] 次に、有効オフセットを設定する(S85)。「転送先有効オフセット物理アドレス」に「 転送先次書込み物理アドレス」の値を書込む。
[0088] その後、直ぐにホストデータを書込み可か否かを判断する(S86)。ホスト 102が指 定する論理セクタアドレスを、重複情報 107bの「転送先書込みモード」の値で割った 剰余が、 1ページサイズ未満 (0x0003未満)であれば、直ぐに書込み可と判定する。 上記以外は不可と判定する。
[0089] 不可と判定されたときは、書込みデータの前のデータを書込み対象ブロックにコピ 一する(S87)。ホスト 102の指定するセクタアドレスを「ランダム書込み」の書込み単 位でグループ化したときの先頭のアドレスから、ホスト 102の指定するセクタアドレス の直前までのデータを、転送先物理ブロックへコピーする。
この際、書込み状況に応じて「転送先次書込み物理アドレス」フィールドを更新する。
[0090] その後、有効オフセットを設定する(S88)。「転送先次書込み物理アドレス」が「転 送先書込みモード」で割り切れる時には、「転送先有効オフセット物理アドレス」に「転 送先次書込み物理アドレス」を書込む。
[0091] ホスト 102から転送されたデータをページ単位で書込む(S89)。この際、書込み状 況に応じて「転送先次書込み物理アドレス」フィールドを更新する。
[0092] ホスト 102からの書込みデータの転送が終了したか否かを判定する(S90)。ホスト 1 02からのデータ転送が終了して 、る場合、書込み周期分の残りのデータを書込み対 象ブロックにコピーする(S91)。ホスト 102からのデータ転送が継続している場合、次 に書込む領域が同じ論理グループカゝ否かを判断し (S92)、同じ論理グループであ れば、データの書込みを継続する。異なる論理グループであれば処理を終了する。
[0093] 2. 1. 4 新規書込み
ステップ S12において、重複テーブル 107に登録がない場合、重複テーブル 107 での登録位置を決定した後(S23)、物理ブロックへの新規書込みを行う(S24)。こ れらの処理の詳細を説明する。
[0094] 図 16を参照し、ステップ S23の重複テーブルの登録位置の決定処理の詳細を説 明する。重複テーブル 107の中で最も以前に使用された重複情報を求める(S121) 。この処理は重複テーブル 107において、これから書込むデータ用の空きレコードを 確保するための候補を決定するもので、重複情報 0〜7のうちひとつを選択できれば よい。ここでは LRU(Least Recently Used)に従った決定方法を使用している。
[0095] その求めた重複情報が有効力否かを判断する(S122)。有効であれば、集約処理 を行う(S123)。求めた重複情報の「論理ブロックアドレス」の値力 OxFFFF以外であ れば有効と判定し、 OxFFFFであれば無効と判定する。なお、 OxFFFFは、重複情 報が初期化されたときに「論理ブロックアドレス」に設定される値である。
[0096] 図 17を参照し、ステップ S24の新規書込み処理の詳細を説明する。まず、重複テ 一ブル 107への登録を行う(S41)。このとき、重複情報 107bの各フィールドの初期 化を行う。「論理ブロックアドレス」にはホストの指定する論理ブロックアドレスを登録す る。「転送元物理ブロックアドレス」には、ホスト 102の指定する論理ブロックアドレスに 対応するデータが書きこまれている物理ブロックアドレス、即ち、論物変換テーブル 力 ホスト 102の指定する論理ブロックアドレスを基に得られるアドレスを登録する。「 転送先物理ブロックアドレス」には、消去済みの物理ブロックアドレスを消去済みテー ブル力も検索して登録する。この際、消去済みテーブルの該当ビットは書込み済みを 示す状態に書き換える。「転送先先頭ページアドレス」には、ホスト 102の指定する論 理セクタアドレスを登録する。
[0097] ホスト 102から転送されたデータをページ単位で書込む(S42)。状況に応じて「転 送先次書込み論理アドレス」と「転送先次書込み物理アドレス」を更新する。
[0098] ホスト 102からの書込みデータの転送が終了したか否かを判定する(S43)。ホスト 1 02からのデータ転送が終了している場合、処理を終了する。ホスト 102からのデータ 転送が継続して ヽる場合、次に書込む領域が同じ論理グループカゝ否かを判断し (S4 4)、同じ論理グループであれば、データの書込みを継続する(S42)。異なる論理グ ループであれば処理を終了する。
[0099] 2. 1. 5 集約処理
集約処理について説明する。集約処理とは、転送元ブロックのデータと転送先プロ ックのデータの重複関係を解消するための処理である。
[0100] 図 18は、連続モードの場合の集約処理を説明するための図である。図 18 (a)に示 すように転送元物理ブロック 99と転送先物理ブロック 100がある場合、これらのブロッ クが図 18 (b)に示すように転送先物理ブロック 100に集約され、転送元物理ブロック 99のデータは消去される。このとき、転送先物理ブロック 100においては、元々記録 されて 、た論理ブロック 10に続 、て転送元物理ブロック 99から論理ブロック 10に連 続する論理ブロック 11〜15がコピーされ、論理ブロック 15の後に論理ブロック 8、 9が コピーされる。
[0101] また、図 19は、上書きモード、ランダムモードの場合の集約処理を説明するための 図である。この例では、転送元物理ブロック 99と転送先物理ブロック 100から、消去 済みの物理ブロック 101に対して、それぞれ論理ブロックのデータをコピーし、その後 、転送元物理ブロック 99と転送先物理ブロック 100のデータを消去する。
[0102] 以上のように、集約処理により、複数の論理ブロックに亘り書込まれていたデータを 1つの論理ブロックにまとめることができる。
[0103] 図 20、図 21のフローチャートを参照し、図 9のステップ S18の集約処理について説 明する。重複情報 107bの「転送先書込みモード」の値から書込みモードを判定する( S101)。書込みモードが上書きモード、ランダムモードであれば、図 21の処理を行う
[0104] 書込みモードが連続モードであれば、転送元ブロックから転送先ブロックへデータ の一部をコピーする(S 102)。具体的には、「転送先次書込み論理アドレス」の値を 含むページのデータを、転送元物理ブロッから転送先物理ブロックへコピーする。こ の際、書込み状況に応じて「転送先次書込み論理アドレス」と「転送先次書込み物理 アドレス」を更新する。
[0105] 転送先物理ブロックにおいて最終ページまで書込まれた力否かを判断する(S103 )。最終ページまで書込みがなされた場合は、転送元物理ブロックのデータを消去す る(S106)。「転送元物理ブロックアドレス」で示されるフラッシュメモリの物理ブロック のデータを消去する。この際、消去済みテーブル 105の該当ビットは消去済みを示 す状態に書き換える。
[0106] その後、各種のテーブルを更新する(S107)。すなわち、集約された物理ブロック( 転送先物理ブロック)につ ヽて論理アドレスと物理アドレスの対応を論物変換テープ ル 106に登録する。具体的には、論物変換テーブル 106の「論理ブロックアドレス」の 値を、「転送先物理ブロックアドレス」の値に書き換える。また、重複情報 107bの各フ ィールドの無効化を行う。具体的には、「論理ブロックアドレス」には OxFFFF (無効を 意味する値)を登録する。「転送元物理ブロックアドレス」、「転送先物理ブロックァドレ ス」、「転送先先頭ページ論理アドレス」、「転送先次書込み論理アドレス」、「転送先 次書込み物理アドレス」、「転送先書込みモード」、及び「転送先有効オフセット物理 アドレス」の各々に 0x0000を登録する。
[0107] 一方、最終ページまで書込みがなされてな!、場合は、論理ページのオーバーフロ 一を判断する(S104)。具体的には「転送先次書込み論理アドレス」の値が 0x0100 のときに、論理ページがオーバーフローと判定し、 0x0100未満のときは、オーバー フローでないと判定する。
[0108] 論理ページがオーバーフローのときは、論理ページ番号を 0にする(S105)。具体 的には、「転送先次書込み論理アドレス」の値に 0x0000を設定する。 [0109] ステップ 101において、書込みモードが上書きモード、ランダムモードの場合の処 理を図 21を参照して説明する。
[0110] 消去済みテーブル 105を参照して消去済みブロックを取得し、また、論理ページ番 号を 0にする(S 111)。論理ページ番号を 0にするために、「転送先次書込み物理ァ ドレス」を 0x0000に設定する。この段階で同じ重複レコードの他のフィールドの"転 送先"とは異なる物理ブロックを指し示す状態となる。また、内部的な変数として「集約 論理アドレス」を持ち、その値を 0x0000に設定する。
[0111] 重複情報に基づいて、集約するデータの読み出し先を判定する(S112)。転送元 物理ブロックからデータを読み出す場合、転送元物理ブロックから消去済みブロック へデータをコピーする(S 113)。すなわち、「転送元物理ブロック」から、消去済みの 物理ブロックに、「集約論理アドレス」のデータをコピーする。この際、書込み状況に 応じて「転送先次書込み物理アドレス」を更新する。
[0112] 転送先物理ブロックからデータを読み出す場合、転送先物理ブロックから消去済み ブロックへデータをコピーする(S115)。すなわち、「転送先物理ブロック」から、消去 済みの物理ブロックに、「集約論理アドレス」のデータをコピーする。この際、書込み 状況に応じて「転送先次書込み物理アドレス」を更新する。
[0113] 転送先物理ブロックにおいて最終ページまで書込まれた力否かを判断する(S114 )。最終ページまで書込みがなされた場合は、転送元物理ブロックと転送先物理プロ ックのデータを消去する(S 117)。
[0114] その後、各種のテーブルを更新する(S118)。すなわち、論物変換テーブル 106の 「論理ブロックアドレス」の値を、このフローで取得した消去済みブロックのアドレスに 書き換える。また、重複情報 107bの各フィールドの無効化を行う。
[0115] 一方、最終ページまで書込みがなされてな 、場合は、論理ページをインクリメントし
(S 116)、次の論理ページ (集約論理アドレス)のデータをコピーする。
[0116] 2. 1. 6 FAT書込み
図 9のフローチャートのステップ S 11の書込み領域判定において、書込み領域が F AT領域であると判定された場合の処理を以下に説明する。基本的な処理のフロー はランダム書込みと全く同じであるが、書込み単位が論理グループによって固定され た値であることと、 FAT領域の論理グループがデータ領域の論理グループよりも小さ な容量で構成されるために、論理グループ単位で書込みを行った物理ブロックに対 して更にランダムで書きこみを行う事ができるのが特徴である。その説明の前に本メ モリカード 101による FAT領域に対する管理方法について説明する。
[0117] 図 22は、 FAT情報に対する論理グループの割当てについて説明した図である。
同図においては、論理セクタァドレス0〜97 (0 000〜0 0061)の領域には、未使 用領域を含め、マスターブートレコードとパーティションブートレコードの情報が格納 される。論理セクタァドレス98〜128 (0 0062〜0 0080)の領域には、 FAT1の情 報力 S格糸内される。餘理セクタアドレス 129〜159 (0x008 l〜Ox009F)の領域に ίま、 FAT2の情報が格納される。論理セクタアドレス 160〜255 (OxOOAO〜OxOOFF) の領域には、ルートディレクトリの情報が格納される。
[0118] 本実施形態のメモリカード 101のコントローラ 103は、マスタブートレコードとパーテ イシヨンブートレコードを格納する連続した領域 (セクタ 0〜セクタ 97の領域)を、論理 グループ 0— 0に割り当てる。同様に、 FAT1の情報を格納するセクタ 98〜セクタ 12 8の領域を論理グループ 0— 1に、 FAT2の情報を格納するセクタ 129〜セクタ 159 の領域を論理グループ 0— 2にそれぞれ割り当てる。ルートディレクトリの情報を格納 する領域を含むセクタ 160〜セクタ 255の領域を論理グループ 0— 3として割り当てる 。そして、各論理グループ 0— 0〜0— 3に対応してフラッシュメモリ 103の物理ブロッ クを 1つずつ割り当てる。
[0119] マスタブートレコード、パーティションブートレコード、 FAT1、 FAT2、及びルートデ ィレクトリの情報のサイズは合計しても 256セクタに満たないため、 1つの物理ブロック があれば、これらの全ての情報を格納できる。しかし、本実施形態では、 FAT情報の 種類に応じて論理グループ 0— 0〜0 3をそれぞれ割りあて、各論理グループ 0— 0 〜0 3に物理ブロックを対応させる。また、各論理グループ 0— 0〜0 3に対して F AT重複情報 0〜3をそれぞれ対応させる。 FAT重複情報 0〜3は、論理グループ 0 0〜0 3に対応する物理ブロックのアドレスを「転送先物理ブロックアドレス」に格 納する。
[0120] 図 23Aは、本実施形態におけるカード容量が 128MBの場合の FAT情報に関する 種々の管理条件を示した図である。図 23Aに示す情報はコントローラ 103が適宜参 照できるようメモリカード 101内の FAT領域変換テーブル 108に保持されている。
[0121] カード容量が 128MBの場合、一般的に、図 22に示したように各 FAT情報の論理 セクタアドレスが割り当てられる。同図を参照すると、論理セクタアドレス 0〜97 (0x00 0〜0x0061)の領域は、論理グループ 0— 0に対応する。論理グループ 0— 0の固定 オフセットは 0である。論理グループ 0— 0の重複情報は FAT重複情報 0に格納され る。集約条件は OxOOEOである。なお、集約条件は、物理ブロックサイズ (0x0100) から、その論理グループの書込み単位の大きさ(例えば、 0x0020)を減算して得ら れる値である。また、書込み単位の大きさは 32セクタであり、よって、論理グループ 0 ー0では、 1つの物理ブロックにおいて、セクタ 0〜セクタ 31、セクタ 32〜セクタ 63、セ クタ 64〜セクタ 95、セクタ 96及び 97の 4つの書込み単位が含まれる。書込み単位の 大きさは、論理グループにより異なっている。
[0122] 図 23Bは、 FAT領域変換テーブル 108の構成を示す図である。 FAT領域変換テ 一ブル 108は、メモリカード(フラッシュメモリ 103)の容量に応じた、各論理グループ 0— 0〜0— 3に割り当てる論理アドレスの情報を格納する。同図に示すように、メモリ カード 101の容量に応じて各論理グループ 0— 0〜0— 3に割り当てる領域の大きさを 異ならせている。コントローラ 103はメモリカード 101の初期化時に FAT領域変換テ 一ブル 108を参照してカード容量に基づ!/、て、 FAT領域の論理アドレスに対して論 理グループの割り当てを行う。
[0123] 図 24A(a)は、 FAT領域に関する論理グループに対応して割り当てられる物理ブ ロックの領域構成を示した図である。なお、図 24A(a)は、 FAT2に関連する論理グ ループ 0— 2の例を示している。物理ブロックは、部分ブロック書込み領域と、固定ラ ンダム書込み領域とを含む。物理ブロック先頭のページ 0〜ページ 7の領域が部分ブ ロック書込み領域であり、この領域に FAT2に関する情報(31セクタ分の情報)が最 初に書込まれる。それに続くページ 8〜ページ 63の領域がランダム書込み領域であ り、この領域には、重複書込みされるデータが格納される。ランダム書込み領域にお ける書込み単位は図 23Aに示す書込み単位 (論理グループ 0— 2の場合は 4セクタ) であり、この値は部分ブロック書込み領域における書込み単位よりも小さい値となる。 [0124] データ領域への書込みの場合、重複書込みする場合は、元のデータが格納された 物理ブロックとは別の物理ブロックにデータを書込んでいた。これに対して、 FAT領 域における重複書込みの場合、元のデータが格納された物理ブロックと同じ物理ブ ロックにデータを書込む。すなわち、最初に部分ブロック書込み領域にデータが書込 まれ、以後、既に書込み済みのデータの論理アドレスと同じ論理アドレスに対して別 のデータを重複書込みする必要が生じた場合、その別のデータを同じ物理ブロック 内の固定ランダム書込み領域に書込む。ランダム書込み領域の空きが無くなると、そ の物理ブロックは集約される。このように、 FAT情報の種類毎に物理ブロックを割り当 て、さらに、物理ブロックにおいて重複書き込みを行うことで、比較的不規則なァクセ ス頻度が高い FAT領域での集約回数を低減でき、書き込み効率を向上できる。
[0125] なお、図 24A(b)に示すように、さらに別の物理ブロック Bにランダム書込み領域を 設けて、ランダム書込み領域として使用する領域を拡張してもよい。その際には複数 のランダム書込み領域を管理するために図 6 (a)で示した FAT領域の重複情報で管 理すべき項目が増えス必要がある。図 24A(b)の場合は、図 24A (a)の場合よりも集 約処理される回数が低減されるため、書込み効率をより向上できる。
[0126] 図 9のフローチャートのステップ S 11の書込み領域判定において、書込み領域が F AT領域であると判定された場合の処理を図 10を参照して説明する。
[0127] 最初に、重複テーブル 107において、ホスト 102が指定する論理アドレスに対応す る FAT重複情報の登録があるか否かを判定する(S31)。具体的には、ホスト 102が 指定する論理アドレスに対応する FAT重複情報の「転送先物理ブロックアドレス」が 0x0000であれば、登録ありと判定し、 0x0000以外であれば、登録なしと判定する。
[0128] FAT重複情報の登録がない場合、消去済みブロックを取得 (S35)後、その消去済 みブロックに FAT情報を書込む(S33)。
[0129] FAT重複情報の登録がある場合、 FAT重複情報が指定する物理ブロックにおい て未書込みページの有無を判断する(S32)。ホスト 102が指定する論理アドレスに 対応する FAT重複情報の「転送先アロケーション物理ページ」が、集約条件(図 23A 参照)と同じであれば未書込みページ無しと判定し、同じでなければ、未書込みべ一 ジありと判定する。 [0130] 未書込みページがあれば、その未書込みページに FAT情報を書込む FAT書込 み処理を行う(S33)。未書込みページがなければ、集約処理を行った (S34)後、消 去済みブロックを取得し(S35)、その消去済みブロックに FAT情報を書込む FAT書 込み処理を行う(S33)。
[0131] 図 24Bを参照し、上記ステップ S33の FAT書込み処理を説明する。ホスト 102から 受けた論理アドレスに対応する書込み単位配置テーブルを取得する(S131)。具体 的には、ホスト 102から指定された論理セクタアドレスに基づき、図 23Aに示す情報 にしたがい、その論理アドレスに該当する論理グループを決定し、その論理グループ に対応する FAT重複情報を特定し、読み出す。例えば、ホスト 102からの論理セクタ アドレス力 0x0020であれば、論理グループ 0— 0の FAT重複情報 0を取得する。そ の取得した FAT重複情報の「転送先物理ブロックアドレス」と「転送先アロケーション 物理ページ」で指定されるフラッシュメモリの管理領域から、最新の書込み単位配置 テーブル 150を読み出す。
[0132] 次に、書込み先を設定する(S132)。対応する FAT重複情報の「転送先物理プロ ックアドレス」を書込み先の物理ブロックアドレスとし、「転送先アロケーション物理べ ージ」に、該当する論理グループの「書込み単位のサイズ」を加算したものを書込み 先の物理セクタアドレスとする。
[0133] 有効オフセットを設定する(S 133)。対応する FAT重複情報の「転送先ァロケ一シ ヨン物理ページ」に、書込み先の物理ページを書込む。
[0134] 直ぐにデータを書込みできる力否かを判断する(S 134)。この判断は次のように行う 。ホスト 102が指定する論理セクタアドレスを、該当する論理グループの「固定オフセ ット」で割った剰余が 1ページ未満 (0x0003未満)であれば、直ぐに書込み可と判定す る。それ以外は直ぐに書込み不可と判定する。
[0135] 直ぐに書込みができなければ、ホスト 102により指定されたアドレスの直前までのデ ータを、書込み対象ブロックにコピーする(S135)。すなわち、論物変換テーブル 10 6から得られる物理ブロックから、書込み先の物理ブロックへ、該当する論理グループ の「固定オフセット」力 ホストの指定するセクタアドレスの直前までのデータをコピー する。この際、書込み状況に応じて書込み先の物理セクタをインクリメントする。フラッ シュメモリ 103の管理領域には、書込み単位配置テーブル 150を更新して書込む。
[0136] その後、有効オフセットの設定を行う(S136)。書込み先の物理セクタが、対応する 論理グループの「書込み単位のサイズ」で割り切れるときには、 FAT重複情報の「転 送先アロケーション物理ページ」に書込み先の物理ページを書込む。
[0137] 次に、ホスト 102が転送してくるデータを前のステップで設定した書込み先力もぺー ジ単位で順次書込む(S 137)。この際、書込み状況に応じて書込み先の物理セクタ アドレスをインクリメントする。フラッシュメモリ 103の管理領域には、書込み単位配置 テーブル 150を更新して書込む。
[0138] ホスト 102からの書込みデータの転送が継続しているか否か判断する(S138)。デ ータ転送が終了すれば、論理グループのデータを書込み対象ブロックにコピーする( S139)。具体的には、論物変換テーブル 106から得られる物理ブロックから書込み 先の物理ブロックへ、対応する論理グループ内に含まれるデータのうち、未だ書込ま れていない部分を全てコピーする。この際、書込み状況に応じて書込み先の物理セ クタアドレスをインクリメントする。フラッシュメモリ 103の管理領域には、書込み単位配 置テーブル 150を更新して書込む。
[0139] データ転送が «続中であれば、次の書込みデータが前回と同じ論理グループ力否 かを判断し(S140)、同じであれば、次のデータを書込む。異なっていれば、本処理 を終了する。
[0140] 2. 1. 7 書込み動作の具体例
(例 1)連続書込みモードの例
図 25から図 31を参照し、新規書込み力 連続書込みモード時の例について説明 する。図 25にお!/ヽて、ホス卜 102力ら、餘理ブロック 0x0010、餘理セクタ 0x0020〜 0x003Fの領域へ新規にデータの書込みが要求されると、重複情報に登録がない( S 12)ケースにおいて新規書込み(S 24)が行われ、消去済みブロックである物理ブ ロック 100にデータが書込まれる。
[0141] 上記の状況下において重複テーブル 107の重複情報 107bは次のように設定され る。「論理ブロックアドレス」には、ホスト 102から指定された論理アドレス 0x0010が設 定される。「転送先物理ブロックアドレス」には、論物変換テーブルにおいて論理プロ ックアドレス 0x0010に対応する値である 0x0000が設定される。「転送先物理ブロッ クアドレス」には、データが書込まれる予定の物理ブロック 100のブロックアドレスを示 す 0x0100力設定される。「転送先先頭ページ論理アドレス」には、ホスト 102から指 定された先頭の論理セクタの値 0x0020が設定される。「転送先書込みモード」には「 連続」を示す 0x0000が設定される。重複情報 107bの他のフィールドには初期値が 設定される。
[0142] その後、ホスト 102の要求にしたがい論理セクタ 0x0020〜0x003F分のデータが 物理ブロック 100の先頭力も書込まれる。そのときの状態が図 26に示す状態である。 図 26において、重複情報 107bの「転送先次書込み論理アドレス」には、 0x0040力 S 格納され、「転送先次書込み物理アドレス」には、 0x0020が格納される。
[0143] 続けて、ホス卜 102力ら餘理ブロック 0x0010、餘理セクタ 0x0040〜0x007Fの領 域へのデータの書込み要求に対して連続書込みが行われる(S22)。物理ブロック 1 00にお 、て記録済みの領域と物理的に連続する領域に、論理的に連続するデータ が書込まれる。そのときの状態が図 27に示す状態である。図 27において、重複情報 107bの「転送先次書込み論理アドレス」の値は 0x0080に更新され、「転送先次書 込み物理アドレス」は 0x0060に更新されている。
[0144] 図 27に示す状態において、ホスト 102から不連続な論理アドレスへの書込み要求 があると、すなわち、論理セクタアドレス 0x00E0〜0x00FFの領域への書込み要求 力 Sあると、図 28に示すように、まず!^理セクタアドレス 0x0080〜0x00DFにお!/ヽて 重複情報 107bの「転送元物理ブロック」からデータを読み出して「転送先物理ブロッ ク」へとコピーする必要がある。しかし、ここでは、重複情報 107bの「転送元物理プロ ック」には、無効値を表す 0x0000が格納されており、これは、転送元物理ブロックが ないことを意味する。よって、ここでは、論理セクタアドレス 0x0080〜0x00DF〖こは、 所定データ(例えば「FF」)を書込む。その後に続いて、図 29に示すように、ホスト 10 2から要求のあった論理セクタアドレス 0x00E0〜0x00FFのデータを書込む。このよ うに、本実施形態では、データが書込まれた領域が不連続とならないよう、空き領域 にデータを補充した後に指定された領域にデータを書込む処理を行う。なお、上記 において、所定データを書込むのは、物理ブロック 100に新規にデータが書込まれ ているためである(注:物理ブロック 100の重複情報 107bの転送元物理ブロックアド レスには 0x0000力格納されており、これは物理ブロック 100に新規にデータが書込 まれていることを意味する。 ) 0転送元の物理ブロックからの重複書込みの場合は、転 送元の物理ブロックの対応する論理アドレスのデータがコピーされる。
[0145] 図 29の状態で、集約処理がなされる場合、物理ブロック 100の残りの領域に、論理 アドレスが連続となるようデータが書込まれる。すなわち、図 30に示すように、論理セ クタアドレス 0x00E0〜0x001Fのデータとして重複情報 107bの「転送元物理ブロッ ク」のデータを書込む、ここでは「転送元物理ブロック」が無効値なので所定データが 書込まれる。そして、論物変換テーブル 106の論理ブロック 0x0010に対応する値が 物理ブロック 100のブロックアドレスを示す 0x0100に更新され、重複情報 107bが初 期化される。
[0146] 上記の例では、書込み周期が 32セクタの場合の書込み動作の例を示したが、図 3 1に示すようにセクタ単位での書込み動作の場合も同様である。
[0147] (例 2)上書き書込みモードの例
図 32から図 34を参照し、新規書込みから上書き書込みモードの場合の例につい て説明する。図 32にお!/ヽて、ホス卜 102力ら、餘理ブロック 0x0010、餘理セクタ 0x0 0E0〜0x00FFの領域へ新規にデータの書込みが要求されると、消去済みブロック である物理ブロック 100にデータが書込まれる。
[0148] 上記の状況下において重複テーブル 107の重複情報 107bは次のように設定され る。「論理ブロックアドレス」には、ホスト 102から指定された論理アドレス 0x0010が設 定される。「転送先物理ブロックアドレス」には、論物変換テーブルにおいて論理プロ ックアドレス 0x0010に対応する値である 0x0000が設定される。「転送先物理ブロッ クアドレス」には、データが書込まれる予定の物理ブロック 100のブロックアドレスを示 す 0x0100力設定される。「転送先先頭ページ論理アドレス」には、ホスト 102から指 定された先頭の論理セクタの値 OxOOEOが設定される。「転送先次書込み論理アドレ ス」には、 0x0100力 S格納される。「転送先次書込み物理アドレス」には、 0x0020力 S 格納される。「転送先書込みモード」には「連続」を示す 0x0000が設定される。重複 情報 107bの他のフィールドには初期値が設定される。 [0149] さらに、図 33に示すように、ホスト 102力ら、前回と同じ論理アドレスにデータの書込 み要求があると、物理ブロック 100において前回書込まれた領域(ページ 0〜ページ 7)に続く領域に新たにデータが書込まれる。このとき、重複情報 107bの「転送先次 書込み論理アドレス」には 0x0040に、「転送先有効オフセット物理アドレス」には、 0 X0020に更新される。また、「転送先書込みモード」には、上書きを意味する OxFFF Fが設定される。
[0150] さらに、図 34に示すように、ホスト 102力ら、前回と同じ論理アドレスにデータの書込 み要求があると、物理ブロック 100において前回書込まれた領域(ページ 8〜ページ F)に続く領域に新たにデータが書込まれる。このとき、重複情報 107bの「転送先次 書込み論理アドレス」には 0x0060に、「転送先有効オフセット物理アドレス」には、 0 x0040に更新される。
[0151] (例 3) 上書きされたブロックの集約
図 35、図 36を参照し、上書き書込みされたブロックの集約処理の例について説明 する。図 35に示すように物理ブロック 100において最後に上書き書込みがなされた データが、消去済み物理ブロック 101にコピーされる。物理ブロック 101において、残 りの領域 (ページ 8〜3F)には、重複情報 107bの「転送元物理ブロック」から読み出 したデータを書込む必要がある力 ここでは重複情報 107bの「転送元物理ブロック」 は無効値を表す 0x0000が格納されて 、るので所定データ (FF)が書込まれる。
[0152] その後、図 36に示すように物理ブロック 100が消去される。これに伴い、物理ブロッ ク 100に関する重複情報は初期化されるとともに、論物変換テーブル 106に物理ブ ロック 101が登録される。
[0153] (例 4) ランダム書込みモードの例
図 37を参照し、ランダム書込みモードの例について説明する。図 37は、物理ブロッ ク 100においてページ 0〜ページ 17の領域において上書きモードで論理セクタアド レス E0〜FFのデータが順次書込まれた後に(図 34の状態に相当する)、ページ 18 〜ページ 1Fの領域において論理セクタアドレス 00〜1Fのデータがランダムモードで 書込まれた例を示す。
[0154] 重複情報 107bの「転送先次書込み物理アドレス」には、消去済み領域の先頭物理 アドレスである 0x0080が設定される。「転送先有効オフセット物理アドレス」には、ラ ンダムモードで書込まれたデータのオフセット値である 0x0060が設定される。「転送 先書込みモード」には、ランダム書込み周期である 0x0020が設定される。
[0155] 書込み単位配置テーブル 150の「書込み単位」にはランダム書込み周期である Ox 0020が設定される。「書込み単位 0先頭アドレス」には、論理アドレス 00〜1Fのデー タが格納される領域の先頭物理アドレスが格納される。ここでは、ページ 18〜ページ 1Fに書込まれたデータの先頭アドレスである 0x0060が設定される。「書込み単位 7 先頭アドレス」には、論理アドレス E0〜FFのデータが格納される領域の先頭物理ァ ドレスが格納される。ここでは、ページ 10〜ページ 17に書込まれたデータの先頭アド レスである 0x0040が設定される。「書込み単位 1先頭アドレス」等の OxFFFFは、デ ータが転送元のブロックに格納されて 、ることを示す。
[0156] 2. 2 読み出し動作
フラッシュメモリ 103からの読み出し動作について図 38を参照して説明する。
最初に、ホスト 102から指定された、読み出し論理アドレスを取得する(S201)。な お、ホスト 102の指定する論理ブロックアドレスを「読出し論理ブロックアドレス」とし、 論理セクタアドレスを「読出し論理セクタアドレス」とする。
[0157] ホストの指定する論理アドレスが FAT領域かデータ領域かを判断し、読み出し領域 を判定する(S202)。
[0158] 読み出し領域がデータ領域の場合、 FAT領域の場合、図 43に示す処理を行う(詳 細は後述)。読み出し領域がデータ領域の場合、内部変数として重複インデックス (X )に 0x0000を設定する (S203)。
[0159] 重複テーブル 107の X番目の重複情報(重複情報 X)の論理ブロックアドレスを取 得(S204)。
[0160] 重複テーブル 107から取得した論理ブロックアドレスと、ホストが指定する論理ブロ ックアドレスとを比較する(S205)。
[0161] 両論理ァドレスが異なっていれば、重複インデックス (X)をインクリメントし(S 206)、 次の重複情報について論理ブロックアドレスを比較する。ここで、重複情報は 8個しか ないので、重複インデックス (X)の値が 8以上になったときは、オーバーフローとし(S 207)、通常読み出し処理を行う(S208)。
[0162] 両論理ァドレスが一致して!/、れば、重複情報 Xの「転送先書込みモード」の値を取 得し (S211)、書込みモードを判定し (S212)、書込みモードに応じた読み出し処理
(S213、 S214、 S215)を行う。
[0163] 各読み出し処理(S208、 S213、 S214、 S215)の終了後、読み出し論理ブロック アドレスをブロック単位でインクリメントし、読み出し論理セクタアドレスを 0x0000に設 定する(S209)。
[0164] 以上の処理を、ホスト 102から、読み出しの終了を示すコマンドを受信するまで繰り 返す (S210)。以下、各読み出し処理の詳細を説明する。
[0165] 2. 2. 1 通常読み出し
図 39のフローチャートを参照し、通常読み出し処理 (S208)を説明する。論物変換 テーブル 106力ら、読み出し論理ブロックアドレスに対応する物理ブロックアドレスを 取得する(S221)。
[0166] 取得した物理ブロックアドレスで指定される物理ブロックのオフセット情報をフラッシ ュメモリ 103から読み出す (S222)。具体的には、取得した物理ブロックアドレスで指 定されるブロックの先頭物理ページの管理領域に書かれている論理セクタアドレスを フラッシュメモリから読み出し、その物理ブロックのオフセット値の情報を得る。
[0167] 読み出し論理セクタ力 オフセット値を減算することで、読み出し論理セクタアドレス に対応する、読み出し物理セクタアドレスを得る(S223)。読み出し物理セクタァドレ スのデータをページ単位で読み出す(S 224)。
[0168] 読み出し論理セクタアドレスをページ単位でインクリメントする(S225)。ホスト 102 力もの読み出しが終了した力否かを判断し (S226)、読み出しが終了したときは、読 み出し処理全体を終了する。ホスト 102からの読み出しが継続しているときは、読み 出し論理セクタアドレスのオーバーフローを判断する(S227)。オーバーフローして なければ、ステップ S223に戻り、次のデータを読み出し、オーバーフローしていれば 、本通常読み出し処理を終了する。
[0169] 2. 2. 2 連続読み出し
図 40のフローチャートを参照し、連続読み出し処理 (S213)を説明する。重複テー ブル 107における対応の重複情報を取得する(S231)。すなわち、重複情報から、「 転送元物理ブロックアドレス」、「転送先物理ブロックアドレス」、「転送先先頭ページ 論理アドレス」、「転送先次書込み論理アドレス」の情報を得る。
[0170] 転送元物理ブロックのオフセット値の情報をフラッシュメモリ 103から取得する(S23 2)。データの読み出し先が転送元物理ブロックか転送先物理ブロックかを判定する( S233)。具体的には、読み出し論理セクタアドレスが、「転送先先頭ページ論理アド レス」を含むページの先頭アドレスよりも小さ!、とき、又は「転送先次書込み論理アド レス」よりも大きいときに、転送元からの読出しと判定する。それ以外は、転送先から の読出しと判定する。
[0171] 転送元力 の読み出しの場合、転送元物理ブロックの読み出し物理セクタを得る(S 234)。読み出し論理セクタアドレスから、転送元物理ブロックのオフセット値を減算す ることで、「読出し論理セクタアドレス」に対応するデータが書込まれている物理セクタ を得ることができる。
[0172] 取得した転送元物理ブロックの読み出し物理セクタのデータをページ単位で読み 出す (S235)。
[0173] ステップ S233において、転送先力もの読み出しの場合、転送先物理ブロックの読 み出し物理セクタを得る(S239)。読み出し論理セクタアドレスから、転送先先頭ぺー ジ論理アドレスを減算することで、「読出し論理セクタアドレス」に対応するデータが書 込まれて!/ヽる物理セクタを得ることができる。
[0174] 取得した転送先物理ブロックの読み出し物理セクタのデータをページ単位で読み 出す(S240)。
[0175] ホスト 102から読み出しが継続している力否かを判断し(S236)、終了していれば、 読み出し処理全体を終了する。ホスト 102からの読み出しが継続していれば、読み出 し論理セクタアドレスをページ単位でインクリメントし (S237)、読み出し論理セクタァ ドレスのオーバーフローを判断する(S238)。オーバーフローしてなければ、ステップ S233に戻り、次のデータを読み出し、オーバーフローしていれば、本連続読み出し 処理を終了する。
[0176] 2. 2. 3 上書読み出し 図 41のフローチャートを参照し、上書き読み出し処理 (S214)を説明する。重複テ 一ブル 107における対応の重複情報を取得する(S251)。すなわち、重複情報から 、「転送元物理ブロックアドレス」、「転送先物理ブロックアドレス」、「転送先先頭ぺー ジ論理アドレス」、「転送先次書込み論理アドレス」、「転送先有効オフセット物理アド レス」の情報を得る。
[0177] 転送元物理ブロックのオフセット値の情報をフラッシュメモリ 103から取得する(S25 2)。データの読み出し先が転送元物理ブロックか転送先物理ブロックかを判定する( S253)。具体的には、読み出し論理セクタアドレスが「転送先先頭ページ論理アドレ ス」を含むページの先頭アドレスよりも小さ!、とき、又は「転送先次書込み論理アドレ ス」よりも大きいときに、転送元からの読出しと判定する。それ以外は、転送先からの 読出しと判定する。
[0178] 転送元力 の読み出しの場合、転送元物理ブロックの読み出し物理セクタを得る(S 254)。
[0179] 取得した転送元物理ブロックの読み出し物理セクタのデータをページ単位で読み 出す (S255)。
[0180] ステップ S253において、転送先力もの読み出しの場合、転送先物理ブロックの読 み出し物理セクタを得る(S259)。読み出し論理セクタアドレスから、転送先先頭ぺー ジ論理アドレスを減算し、さらに、その値に「転送先有効オフセット物理アドレス」をカロ 算することで、読出し論理セクタアドレスに対応するデータが書込まれて 、る物理セク タを得ることがでさる。
[0181] 取得した転送先物理ブロックの読み出し物理セクタのデータをページ単位で読み 出す(S260)。
[0182] その後、ホスト 102から読み出しが継続して 、るか否かを判断し(S256)、終了して いれば、読み出し処理全体を終了する。ホスト 102からの読み出しが継続していれば 、読み出し論理セクタアドレスをページ単位でインクリメントし (S257)、読み出し論理 セクタアドレスのオーバーフローを判断する(S258)。オーバーフローしてなければ、 ステップ S253に戻り、次のデータを読み出し、オーバーフローしていれば、本上書き 読み出し処理を終了する。 [0183] 2. 2. 4 ランダム読み出し
図 42のフローチャートを参照し、ランダム読み出し処理 (S215)を説明する。重複 テーブル 107において対応の重複情報を取得する(S271)。すなわち、重複情報か ら、「転送元物理ブロックアドレス」、「転送先物理ブロックアドレス」、「転送先先頭べ ージ論理アドレス」、「転送先次書込み論理アドレス」、「転送先書込みモード」、「転 送先有効オフセット物理アドレス」の情報を得る。
[0184] 転送元物理ブロックのオフセット値の情報をフラッシュメモリ 103から取得する(S27 2)。
[0185] 「転送先物理ブロックアドレス」と「転送先有効オフセット物理アドレス」で指定される フラッシュメモリ 103の管理領域から、書込み単位配置テーブル 150の情報を得る(2
73)。
[0186] データの読み出し先が転送元物理ブロックか転送先物理ブロックかを判定する(S2
74)。この判定は以下のように行う。まず、複数の書込み単位の中から、読み出し論 理セクタアドレスを含む 1つの書込み単位を決定する。次に、書込み単位配置テープ ル 150を参照し、求めた書込み単位のデータが格納される領域の先頭物理アドレス を取得する。例えば、書込み単位の値が OxOOl Oh ( 16セクタ(=4ページ))であれ ば、 1物理ブロック内に 16個の書込み単位 (書込み単位 0〜F)が含まれる。読み出し 論理セクタアドレスが ΟχΟΟΙΒであれば、読み出し論理セクタアドレスを含む書込み 単位は、 2番目の書込み単位 (書込み単位 1)となる。その後、書込み単位配置テー ブル 150を参照し、書込み単位 1の先頭アドレスを取得する。取得した先頭物理アド レスが無効値であれば転送元力 の読み出しと判定する。有効値であれば転送先か らの読み出しと判定する。
[0187] 転送元力 の読み出しの場合、転送元物理ブロックの読み出し物理セクタを得る(S 275)。取得した転送元物理ブロックの読み出し物理セクタのデータをページ単位で 読み出す (S276)。
[0188] ステップ S274において、転送先力もの読み出しの場合、転送先物理ブロックの読 み出し物理セクタを得る(S280)。読み出し論理セクタアドレスを「転送先書込みモー ド」の値で除した剰余に、書込み単位配置テーブル 150から求めた先頭物理アドレス を加算することで、読出し論理セクタアドレスに対応する、読み出し物理セクタを得る ことができる。取得した転送先物理ブロックの読み出し物理セクタのデータをページ 単位で読み出す (S281)。
[0189] その後、ホスト 102から読み出しが継続して 、るか否かを判断し(S277)、終了して いれば、読み出し処理全体を終了する。ホスト 102からの読み出しが継続していれば 、読み出し論理セクタアドレスをページ単位でインクリメントし (S278)、読み出し論理 セクタアドレスのオーバーフローを判断する(S279)。オーバーフローしてなければ、 ステップ S274に戻り、次のデータを読み出し、オーバーフローしていれば、本ランダ ム読み出し処理を終了する。
2. 2. 5 FAT読み出し
図 38のフローチャートのステップ S202の読み出し領域判定において FAT領域か らの読み出しであると判断されたときに実行される、図 43に示す処理について説明 する。
[0190] 図 43において、論理ブロックアドレスに対応する FAT重複情報が有効か否かを判 断する(S291)。具体的には以下のように行う。読出し論理セクタアドレスの値から、 以下のようにして対応する重複テーブル 107の FAT重複情報を求める。
[表 1]
論理セクタァ ドレス 該当する FAT重複情報
0x 0000 -0 x0061 FAT重複情報 0
FAT重複情報 1
FAT重複情報 2
Figure imgf000039_0001
FAT重複情報 3 その「転送先物理ブロックアドレス」を取得し、その値の有効/無効を判定する。その 値が OxOOOO (無効値)の時には無効と判定し、 0x0000以外の時には有効と判定す る。
[0191] FAT重複情報が無効であるとき、 FAT通常読み出し処理を行い(S292)、 FAT重 複情報が有効であるとき、 FAT重複読み出し処理を行う(S293)。
[0192] その後、読み出し論理ブロックアドレスをブロック単位でインクリメントするとともに、 読み出し論理セクタアドレスに 0x0000を設定する(S94)。 [0193] ホスト 102からの読み出しが終了した力否かを判定し(S295)、終了していれば、読 み出し処理全体を終了する。ホスト 102からの読み出しが継続していれば、ステップ S202に戻り、次の読み出しを行う。
[0194] 2. 2. 5. 1 FAT通常読み出し
図 44のフローチャートを参照し、上記ステップ S292の FAT通常読み出し処理を説 明する。
[0195] 論物変換テーブル 106から、読み出し論理ブロックアドレスに対応する物理ブロック アドレスを取得する(S301)。
[0196] 読み出し論理セクタアドレスから固定オフセット値(図 23A参照)を減算することで、 部分ブロック書込み領域の読み出し物理セクタアドレスを得る(S302)。読み出し物 理セクタアドレスのデータをページ単位で読み出す(S303)。
[0197] ホスト 102からの読み出しが終了した力否かを判断し(S304)、読み出しが終了し たときは、読み出し処理全体を終了する。
[0198] ホスト 102からの読み出しが継続しているときは、読み出し論理セクタアドレスをぺ ージ単位でインクリメントする(S305)。
[0199] 読み出し論理セクタアドレスのオーバーフローを判断する(S306)。オーバーフロ 一してなければ、ステップ S302に戻り、次のデータを読み出す。オーバーフローして いれば、本 FAT通常読み出し処理を終了する。
[0200] 2. 2. 5. 2 FAT重複読み出し
図 45のフローチャートを参照し、上記ステップ S293の FAT重複読み出し処理を説 明する。
[0201] 重複テーブル 107において対応の重複情報を取得する(S311)。すなわち、重複 情報から、「転送先物理ブロックアドレス」、「転送先アロケーション物理ページ」の情 報を得る。
[0202] 「転送先物理ブロックアドレス」と「転送先アロケーション物理ページ」で指定されるフ ラッシュメモリ 103の管理領域から、書込み単位配置テーブル 150の情報を得る(31 2)。
[0203] データの読み出し先が転送元物理ブロックか転送先物理ブロックかを判定する(S3 13)。すなわち、読み出し論理セクタアドレスから固定オフセット(図 23A参照)を減算 し、その減算した値を FAT領域に固有の書込み単位で除す。その商に基づき、書込 み単位配置テーブル 150を参照し、読み出し論理セクタアドレスに対応する書込み 単位の先頭物理アドレスを取得する。その先頭物理アドレスの値が無効値であれば 、転送元からの読み出しと判定し、有効値であれば転送先からの読み出しと判定す る。
[0204] 転送元力 の読み出しの場合、転送元物理ブロックの読み出し物理セクタを得る(S 314)。取得した転送先物理ブロックにおける読み出し物理セクタのデータをページ 単位で読み出す (S315)。
[0205] ステップ S313において、転送先力もの読み出しの場合、転送先物理ブロックの読 み出し物理セクタを得る(S319)。読み出し論理セクタアドレスから、固定オフセットを 減算し、その値を、 FAT領域に固有の書込み単位で除す。その商に基づき、書込み 単位配置テーブル 150を参照して得た先頭物理アドレスに、剰余を加算することで、 読出し論理セクタアドレスに対応する物理セクタが得られる。
[0206] 取得した転送先物理ブロックの読み出し物理セクタのデータをページ単位で読み 出す(S320)。
[0207] その後、ホスト 102から読み出しが継続しているか否かを判断し(S316)、終了して いれば、読み出し処理全体を終了する。ホスト 102からの読み出しが継続していれば 、読み出し論理セクタアドレスをページ単位でインクリメントし (S317)、読み出し論理 セクタアドレスのオーバーフローを判断する(S318)。オーバーフローしてなければ、 ステップ S313に戻り、次のデータを読み出し、オーバーフローしていれば、本 FAT 重複読み出し処理を終了する。
[0208] 本発明は、特定の実施形態について説明されてきたが、当業者にとっては他の多 くの変形例、修正、他の利用が明らかである。それゆえ、本発明は、ここでの特定の 開示に限定されず、添付の請求の範囲によってのみ限定され得る。なお、本出願は 日本国特許出願、特願 2004— 133112号(2004年 4月 28日提出)、特願 2004— 133113号(2004年 4月 28曰提出)、特願 2004— 138200号(2004年 5月 7曰提 出)に関連し、それらの内容は参照することにより本文中に組み入れられる。 産業上の利用可能性
本発明にかかる不揮発性記憶装置の書込み方法は、ホストからのデータの書込み 処理を高速に実行できると共に、処理に必要な物理ブロックの数を少なくすることが でき、フラッシュメモリのデータ書換え回数を高めることができるとの特有の効果を有 し、不揮発性記憶装置、メモリカード、不揮発性メモリのコントローラ装置等に有用で ある。

Claims

請求の範囲
[1] ホストからの論理アドレスを受けてデータの書込み、読み出しが可能な不揮発性記 憶装置であって、
物理アドレスによりデータの書込み、読み出しが行われ、複数の物理ブロック力 構 成される不揮発性メモリと、
論理アドレスと物理アドレスの対応情報を、所定の管理単位領域毎に論理グルー プアドレスと、 1つ以上の物理ブロック力 なる物理グループのアドレスとの対応情報 をとして格納する論物変換テーブルと、
前記論物変換テーブルで対応付けられている論理グループアドレスと同一の論理 グループアドレスを持つデータにっ 、て、前記管理単位領域のサイズよりも小さなサ ィズのデータの論理アドレスと物理アドレスの対応情報として格納する重複テーブル と、
前記不揮発性記憶装置の動作制御を行うコントローラとを備え、
前記コントローラは、一の管理単位領域に書込み済みのデータと同一の論理アドレ スを持つデータを、他の管理単位領域に重複して書込むことを許可し、その重複して 書込むための書込みモードを複数有し、前記ホストからの論理アドレスの変化の状況 に応じて、前記論物変換テーブルの情報を更新することなぐ前記書込みモードを選 択的に切り替える、
不揮発性記憶装置。
[2] 前記コントローラは、ホストからの論理アドレスと、その論理アドレスに対応する重複 テーブルの情報とに基いて前記書込みモードを切り替える、請求項 1記載の不揮発 性記憶装置。
[3] 重複テーブルは、重複配置されるデータの論理グループアドレスに対応する所定 情報を、複数の論理グループアドレスに対応して格納するための複数のレコードを有 する、請求項 1記載の不揮発性記憶装置。
[4] 前記書込みモードは、同一の論理グループアドレスに対する複数回のホストからの 書込みコマンドに対して、前記管理単位よりも小さな書込み単位と等 、サイズのデ 一タを書込むランダムモードを含む、請求項 1記載の不揮発性記憶装置。
[5] 前記不揮発性メモリは、前記書込み単位毎のデータについて、不揮発性メモリ内に おける配置情報を格納する、請求項 4記載の不揮発性記憶装置。
[6] 前記配置情報は、最後に書込まれた書込み単位のデータとともに前記不揮発性メ モリに書込まれる、請求項 5記載の不揮発性記憶装置。
[7] 前記配置情報は、前記不揮発性メモリの管理領域に書込まれる、請求項 5記載の 不揮発性記憶装置。
[8] 前記配置情報は、前記書込み単位のデータが書込まれた領域の物理アドレス位置 を直接的に示す情報と、前記書込み単位毎のデータが重複して配置されていないこ とを示す情報とを含む、請求項 5記載の不揮発性記憶装置。
[9] 前記重複テーブルは、重複して配置されたデータが格納された不揮発性メモリ内 の領域の前記配置情報が格納された物理位置の情報を含む、請求項 4記載の不揮 発性記憶装置。
[10] 前記コントローラはランダム書込みを行うときに、ホストからの書込みデータのサイズ が前記書込み単位よりも小さ!、ときは、書込みデータの合計サイズが前記書込み単 位のサイズとなるように不足分のデータを補充してデータを書込む、請求項 4記載の 不揮発性記憶装置。
[11] 前記書込みモードは、同一の論理グループアドレスに対する複数回のホストの書込 みコマンドに対して、前記管理単位よりも小さな書込み単位のサイズで、かつ、前回 に書込まれたデータと同じ論理アドレス範囲を持つデータを書込む上書きモードを 含む、請求項 1記載の不揮発性記憶装置。
[12] 前記書込みモードはさらに、複数回のホストからの書込みコマンドに対して、前記管 理単位よりも小さな書込み単位と等しいサイズのデータをコマンド毎に書込むランダ ムモードを含み、
前記コントローラは、上書きモードでの書込み中にホストから指定された論理アドレ スカ 続けて上書きモードで書込みを行うことができないアドレス範囲にある場合に、 前記ランダムモードでの書込みを行う、請求項 11記載の不揮発性記憶装置。
[13] 前記重複テーブルは、重複して配置されたデータに関して、最初の論理アドレスと 、最後の論理アドレスと、最後に上書きモードで書込まれた前記書込み単位のデー タの物理位置情報とを含む、請求項 11記載の不揮発性記憶装置。
[14] 前記コントローラは、前記ホストから指定されたアドレス力 前記重複テーブルに格 納された情報の最初のアドレス以上で、かつ、最後のアドレスよりも小さい値である場 合に、上書きモードで書込みを行う、請求項 11記載の不揮発性記憶装置。
[15] 前記コントローラは上書き書込みを行うときに、前記ホストからの書込みデータが前 記書込み単位よりも小さいときには、書込みデータの合計サイズが前記書込み単位 のサイズとなるように不足分のデータを補充してデータを書込む、請求項 11記載の 不揮発性記憶装置。
[16] 前記書込みモードは、同一の論理グループアドレスに対する複数回のホストからの 書込みコマンドに対して、前記管理単位領域にお!ヽてデータを論理アドレス順に連 続して書込む連続モードを含む、請求項 1記載の不揮発性記憶装置。
[17] 前記コントローラは、前記管理単位領域において、論理アドレスのオフセットを持つ た状態でデータを書込む、請求項 16記載の不揮発性記憶装置。
[18] 前記論理アドレスのオフセットの情報を前記不揮発性メモリに格納する、請求項 17 記載の不揮発性記憶装置。
[19] 前記書込みモードはさらに、複数回のホストの書込みコマンドに対して、前記管理 単位よりも小さな書込み単位と等しいサイズで、かつ、前回に書込まれたデータと同 じ論理アドレス範囲を持つデータをコマンド毎に書込む上書きモードを含み、 前記コントローラは、連続モードでの書込み中にホストから指定された論理アドレス 力 直前の連続モードでの書込み時と同じ管理単位領域の論理アドレスではあるが 、続けて連続モードで書込みを行うことができないアドレス範囲にある場合に、前記 上書きモードで書込みを行う、請求項 16記載の不揮発性記憶装置。
[20] 前記書込みモードはさらに、複数回のホストからの書込みコマンドに対して、前記管 理単位よりも小さな書込み単位と等しいサイズのデータをコマンド毎に書込むランダ ムモードを含み、
前記コントローラは、連続モードでの書込み中にホストから指定された論理アドレス 力 直前の連続モードでの書込み時と同じ管理単位の論理アドレスではある力 続け て連続モードで書込みを行うことができないアドレス範囲にある場合に、前記ランダム モードで書込みを行う、請求項 16記載の不揮発性記憶装置。
[21] 前記重複テーブルは、重複して配置されたデータに関しての最初の論理アドレスと
、最後の論理アドレスとを含む、請求項 16記載の不揮発性記憶装置。
[22] 前記コントローラは、前記ホストから指定する論理アドレスが重複テーブルに格納さ れた最後の論理アドレス情報よりも大き 、ときに、続けて連続書込みモードで書込み を行う、請求項 21記載の不揮発性記憶装置。
[23] 前記書込みモードはさらに、複数回のホストの書込みコマンドに対して、前記管理 単位よりも小さな書込み単位と等しいサイズで、かつ、前回に書込まれたデータと同 じ論理アドレス範囲を持つデータをコマンド毎に書込む上書きモードを含み、 前記コントローラは、前記ホストから指定するアドレスが重複テーブルに格納された 最初のアドレス以上で、かつ、最後のアドレスよりも小さいときに、前記上書きモード に移行して書込みを行う、請求項 21記載の不揮発性記憶装置。
[24] 前記書込みモードはさらに、複数回のホストからの書込みコマンドに対して、前記管 理単位よりも小さな書込み単位と等しいサイズのデータをコマンド毎に書込むランダ ムモードを含み、
前記コントローラは、前記ホストから指定するアドレスが重複テーブルに格納された 最初のアドレス情報よりも小さいときに、前記ランダムモードに移行して書込みを行う
、請求項 21記載の不揮発性記憶装置。
[25] 前記コントローラは、前記管理単位領域内の最後の論理アドレスのデータを書込ん だ後に、前記管理単位領域内に未書込みの領域があるときは、前記管理単位領域 内の最初の論理アドレスのデータ力 順に前記未書込みの領域に書込む、請求項 1
6記載の不揮発性記憶装置。
[26] 前記コントローラは、所定範囲に含まれる論理アドレスに対しては、前記所定範囲 に含まれない論理アドレスに対する書込みモードとは異なる書込みモードを選択する
、請求項 1記載の不揮発性記憶装置。
[27] 前記重複テーブルは、前記所定範囲に含まれる論理グループの個々に対応して 専用のレコードを有する、請求項 26記載の不揮発性記憶装置。
[28] 前記論物変換テーブルは、前記所定範囲に含まれる論理アドレスに対応する情報 と、前記所定範囲に含まれない論理アドレスに対応する情報とで構成が異なる、請求 項 26記載の不揮発性記憶装置。
[29] 前記所定範囲に含まれる論理アドレスの論理グループのサイズは、前記所定範囲 に含まれない論理グループのサイズよりも、小さいサイズで管理単位領域とする、請 求項 26記載の不揮発性記憶装置。
[30] 前記所定範囲に含まれる論理アドレスの論理グループのサイズ力 論理グループ により異なるサイズである、請求項 26記載の不揮発性記憶装置。
[31] 前記所定範囲は、ファイルシステムにより管理されるファイル管理情報が格納される 領域を含む範囲に設定される、請求項 26記載の不揮発性記憶装置。
[32] 前記所定範囲の大きさは前記不揮発性記憶装置の容量に応じて異なる値とする、 請求項 31記載の不揮発性記憶装置。
[33] 前記論理グループに対応付けられた前記管理単位領域は、最初に前記管理単位 のデータが書込まれる第 1の領域と、前記第 1の領域に書込まれた管理単位のデー タと同一の論理アドレスを持つデータを前記管理単位よりも小さなサイズで重複して 書込む第 2の領域とを含む、請求項 26記載の不揮発性記憶装置。
[34] 前記第 1の領域と前記第 2の領域が、前記不揮発性メモリの同じ物理ブロック内に 含まれる、請求項 33記載の不揮発性記憶装置。
[35] 一つの論理グループに対する前記第 2の領域を複数の管理単位領域に配置する、 請求項 33記載の不揮発性記憶装置。
[36] ホストからの論理アドレスを受けてデータの書込み、読み出しが可能な不揮発性記 憶装置に対するデータ書込み方法であって、
一の管理単位領域に書込み済みのデータと同じ論理アドレスを持つデータを他の 管理単位領域に重複して書込むための書込みモードを複数有し、
前記ホストから、既に書込み済みのデータと同じ論理アドレスを持つデータの書込 みコマンドを受けたときに、該書込み要求のあったデータを、前記書込み済みデータ の管理単位領域とは別の管理単位領域に重複して書込み、前記別の管理単位領域 に書込んだデータの論理アドレスと物理アドレスを対応づけて記憶し、
その後、続けて前記ホストから書込みコマンドを受けたときに、前記ホストからの論 理アドレスの変化の状況に応じて前記書込みモードを選択的に切り替える、 データ書込み方法。
[37] 前記書込みモードは、複数回のホストからの書込みコマンドに対して、前記管理単 位よりも小さな書込み単位と等しいサイズのデータをコマンド毎に書込むランダムモ ードを含む、請求項 36記載のデータ書込み方法。
[38] 前記書込みモードは、複数回のホストの書込みコマンドに対して、前記管理単位よ りも小さな書込み単位と等しいサイズで、かつ、前回に書込まれたデータと同じ論理 アドレス範囲を持つデータをコマンド毎に書込む上書きモードを含む、請求項 36記 載のデータ書込み方法。
[39] 前記書込みモードは、複数回のホストからの書込みコマンドに対して、前記管理単 位領域にお ヽてデータを論理アドレス順に連続して書込む連続モードを含む、請求 項 36記載のデータ書込み方法。
[40] さらに、所定範囲内の論理アドレスを複数のアドレス領域に分割し、分割したァドレ ス領域の各々に対して 1つの論理グループを割当て、各論理グループと前記管理単 位領域とを 1対 1に対応させる、請求項 36記載のデータ書込み方法。
PCT/JP2005/008188 2004-04-28 2005-04-28 不揮発性記憶装置及びデータ書込み方法 WO2005106673A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006512845A JP4773342B2 (ja) 2004-04-28 2005-04-28 不揮発性記憶装置及びデータ書込み方法
EP05736975A EP1746510A4 (en) 2004-04-28 2005-04-28 NONVOLATILE STORAGE DEVICE AND DATA WRITING METHOD
US11/587,808 US7877569B2 (en) 2004-04-28 2005-04-28 Reduction of fragmentation in nonvolatile memory using alternate address mapping

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2004-133113 2004-04-28
JP2004-133112 2004-04-28
JP2004133112 2004-04-28
JP2004133113 2004-04-28
JP2004-138200 2004-05-07
JP2004138200 2004-05-07

Publications (1)

Publication Number Publication Date
WO2005106673A1 true WO2005106673A1 (ja) 2005-11-10

Family

ID=35241847

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/008188 WO2005106673A1 (ja) 2004-04-28 2005-04-28 不揮発性記憶装置及びデータ書込み方法

Country Status (6)

Country Link
US (1) US7877569B2 (ja)
EP (2) EP1746510A4 (ja)
JP (1) JP4773342B2 (ja)
KR (1) KR20070005730A (ja)
TW (1) TW200608201A (ja)
WO (1) WO2005106673A1 (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007037507A1 (en) * 2005-09-29 2007-04-05 Kabushiki Kaisha Toshiba Memory system and method of writing into nonvolatile semiconductor memory
DE102007006307A1 (de) * 2006-10-19 2008-04-24 Samsung Electronics Co., Ltd., Suwon Verfahren zum Betreiben eines nichtflüchtigen Speicherelements, Aufzeichnungsmedium und nichtflüchtigen Speicherelement
JP2008176727A (ja) * 2007-01-22 2008-07-31 Denso Corp 情報処理装置、ナビゲーション装置及びプログラム
WO2008102610A1 (ja) * 2007-02-23 2008-08-28 Panasonic Corporation メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
EP2031514A1 (en) * 2006-05-18 2009-03-04 Buffalo Inc. Data memory device and data memorizing method
JP2010140268A (ja) * 2008-12-11 2010-06-24 Toshiba Corp メモリデバイス
JP2013525886A (ja) * 2010-04-16 2013-06-20 マイクロン テクノロジー, インク. メモリデバイスおよびシステム中のブートパーティション
US8572307B2 (en) 2007-07-20 2013-10-29 Panasonic Corporation Memory controller, memory card, and nonvolatile memory system
CN104407936A (zh) * 2014-11-18 2015-03-11 华为数字技术(成都)有限公司 一种数据快照方法及装置
CN104407933A (zh) * 2014-10-31 2015-03-11 华为技术有限公司 一种数据的备份方法及装置
KR20220052423A (ko) * 2020-10-20 2022-04-28 성균관대학교산학협력단 스토리지 장치, 스토리지 장치의 동작 방법, 및 스토리지 장치를 포함하는 스토리지 시스템

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007148799A (ja) * 2005-11-28 2007-06-14 Orion Denki Kk 電子機器及びそのデータ処理方法
JP4182993B2 (ja) * 2006-06-30 2008-11-19 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US7657701B2 (en) * 2007-01-03 2010-02-02 The General Electric Company System and method of flash memory wear leveling using distributed write cycles
US7975109B2 (en) 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
WO2008150927A2 (en) * 2007-05-30 2008-12-11 Schooner Information Technology System including a fine-grained memory and a less-fine-grained memory
US8073884B2 (en) * 2007-12-20 2011-12-06 Hewlett-Packard Development Company, L.P. System and method to derive high level file system information by passively monitoring low level operations on a FAT file system
US8307180B2 (en) 2008-02-28 2012-11-06 Nokia Corporation Extended utilization area for a memory device
US8099544B2 (en) * 2008-02-29 2012-01-17 Kabushiki Kaisha Toshiba Information processing apparatus and nonvolatile semiconductor memory drive
US8732386B2 (en) 2008-03-20 2014-05-20 Sandisk Enterprise IP LLC. Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory
US8229945B2 (en) 2008-03-20 2012-07-24 Schooner Information Technology, Inc. Scalable database management software on a cluster of nodes using a shared-distributed flash memory
TWI398770B (zh) * 2008-07-08 2013-06-11 Phison Electronics Corp 用於快閃記憶體的資料存取方法、儲存系統與控制器
FR2933790B1 (fr) 2008-07-10 2010-09-10 Oberthur Technologies Gestion d'une memoire physique partitionnee dans une entite electronique : procede et dispositif.
US8285970B2 (en) 2008-11-06 2012-10-09 Silicon Motion Inc. Method for managing a memory apparatus, and associated memory apparatus thereof
US8874824B2 (en) 2009-06-04 2014-10-28 Memory Technologies, LLC Apparatus and method to share host system RAM with mass storage memory RAM
US9110594B2 (en) * 2009-11-04 2015-08-18 Seagate Technology Llc File management system for devices containing solid-state media
JP2011107851A (ja) * 2009-11-13 2011-06-02 Toshiba Corp メモリシステム
US8725951B2 (en) 2010-04-12 2014-05-13 Sandisk Enterprise Ip Llc Efficient flash memory-based object store
US9164554B2 (en) 2010-04-12 2015-10-20 Sandisk Enterprise Ip Llc Non-volatile solid-state storage system supporting high bandwidth and random access
US8868487B2 (en) 2010-04-12 2014-10-21 Sandisk Enterprise Ip Llc Event processing in a flash memory-based object store
US9047351B2 (en) 2010-04-12 2015-06-02 Sandisk Enterprise Ip Llc Cluster of processing nodes with distributed global flash memory using commodity server technology
US8856593B2 (en) 2010-04-12 2014-10-07 Sandisk Enterprise Ip Llc Failure recovery using consensus replication in a distributed flash memory system
US8954385B2 (en) 2010-06-28 2015-02-10 Sandisk Enterprise Ip Llc Efficient recovery of transactional data stores
US8694733B2 (en) 2011-01-03 2014-04-08 Sandisk Enterprise Ip Llc Slave consistency in a synchronous replication environment
JP5349515B2 (ja) * 2011-03-14 2013-11-20 株式会社東芝 バッファ管理装置、バッファ管理方法及び記憶装置
US8874515B2 (en) 2011-04-11 2014-10-28 Sandisk Enterprise Ip Llc Low level object version tracking using non-volatile memory write generations
JP5708216B2 (ja) * 2011-05-09 2015-04-30 ソニー株式会社 フラッシュメモリ装置、メモリ制御装置、メモリ制御方法、ストレージシステム
JP5915079B2 (ja) * 2011-10-27 2016-05-11 富士通株式会社 書込制御プログラム、書込制御方法、書込制御装置およびシステム
US8593866B2 (en) 2011-11-11 2013-11-26 Sandisk Technologies Inc. Systems and methods for operating multi-bank nonvolatile memory
US9417998B2 (en) 2012-01-26 2016-08-16 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
US9135064B2 (en) 2012-03-07 2015-09-15 Sandisk Enterprise Ip Llc Fine grained adaptive throttling of background processes
US9311226B2 (en) 2012-04-20 2016-04-12 Memory Technologies Llc Managing operational state data of a memory module using host memory in association with state change
TWI454913B (zh) * 2012-06-26 2014-10-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
KR20140099737A (ko) 2013-02-04 2014-08-13 삼성전자주식회사 존-기반 조각모음 방법 및 그것을 이용한 유저 장치
KR102108839B1 (ko) 2013-06-12 2020-05-29 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 사용자 장치 및 그것의 데이터 쓰기 방법
JP6160294B2 (ja) * 2013-06-24 2017-07-12 富士通株式会社 ストレージシステム、ストレージ装置及びストレージシステムの制御方法
US10002048B2 (en) * 2014-05-15 2018-06-19 International Business Machines Corporation Point-in-time snap copy management in a deduplication environment
KR20160015793A (ko) * 2014-07-31 2016-02-15 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20170015708A (ko) * 2015-07-30 2017-02-09 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 프로그램 방법
US10031845B2 (en) * 2016-04-01 2018-07-24 Intel Corporation Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device
US10019198B2 (en) * 2016-04-01 2018-07-10 Intel Corporation Method and apparatus for processing sequential writes to portions of an addressable unit
US10282094B2 (en) * 2017-03-31 2019-05-07 Samsung Electronics Co., Ltd. Method for aggregated NVME-over-fabrics ESSD
JP2020154584A (ja) 2019-03-19 2020-09-24 キオクシア株式会社 メモリシステム
JP6727365B1 (ja) * 2019-03-27 2020-07-22 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
US11093170B2 (en) * 2019-04-02 2021-08-17 EMC IP Holding Company LLC Dataset splitting based on workload footprint analysis
CN110795040A (zh) * 2019-10-28 2020-02-14 浙江互灵科技有限公司 简易文件管理系统及其实现方法
TWI721660B (zh) * 2019-11-22 2021-03-11 財團法人工業技術研究院 控制資料讀寫裝置與方法
US11200162B2 (en) 2020-04-28 2021-12-14 Western Digital Technologies, Inc. Condensing logical to physical table pointers in SSDs utilizing zoned namespaces
KR20220052152A (ko) * 2020-10-20 2022-04-27 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
KR20220060372A (ko) * 2020-11-04 2022-05-11 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
US20230342049A1 (en) * 2022-04-21 2023-10-26 Micron Technology, Inc. Reading a master boot record for a namespace using a regular read operation
US20230376228A1 (en) * 2022-05-17 2023-11-23 Micron Technology, Inc. Techniques for sequential access operations
CN117687580A (zh) * 2024-02-02 2024-03-12 深圳曦华科技有限公司 一种Flash的数据管理系统、微控制单元以及车辆

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002324008A (ja) * 2001-04-26 2002-11-08 Tdk Corp メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP2002366423A (ja) * 2001-06-04 2002-12-20 Samsung Electronics Co Ltd フラッシュメモリの管理方法
JP2004164633A (ja) * 2002-10-28 2004-06-10 Sandisk Corp 不揮発性メモリシステム内においてアウトオブシーケンス書き込みプロセスを効果的に可能にするための方法および装置
JP2004326165A (ja) * 2003-04-21 2004-11-18 Toshiba Corp メモリ制御装置およびメモリ制御方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3171901B2 (ja) 1992-02-05 2001-06-04 セイコーインスツルメンツ株式会社 不揮発性メモリカードの書換え方法
US5745418A (en) * 1996-11-25 1998-04-28 Macronix International Co., Ltd. Flash memory mass storage system
JP3588231B2 (ja) 1997-08-04 2004-11-10 東京エレクトロンデバイス株式会社 データ処理システム及びブロック消去型記憶媒体
WO1999031592A1 (fr) * 1997-12-16 1999-06-24 Tdk Corporation Systeme de memoire flash
US6282605B1 (en) * 1999-04-26 2001-08-28 Moore Computer Consultants, Inc. File system for non-volatile computer memory
US6377500B1 (en) * 1999-11-11 2002-04-23 Kabushiki Kaisha Toshiba Memory system with a non-volatile memory, having address translating function
JP3793868B2 (ja) 1999-11-25 2006-07-05 カシオ計算機株式会社 フラッシュメモリ管理装置及び記録媒体
DE10227255B4 (de) 2002-06-19 2008-06-26 Hyperstone Gmbh Verfahren zur Wiederherstellung von Verwaltungsdatensätzen eines blockweise löschbaren Speichers
US7433993B2 (en) * 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
KR20070007264A (ko) * 2003-12-30 2007-01-15 쌘디스크 코포레이션 비순차 갱신 블록 관리를 구비한 비휘발성 메모리 및 방법
US20050144363A1 (en) * 2003-12-30 2005-06-30 Sinclair Alan W. Data boundary management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002324008A (ja) * 2001-04-26 2002-11-08 Tdk Corp メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP2002366423A (ja) * 2001-06-04 2002-12-20 Samsung Electronics Co Ltd フラッシュメモリの管理方法
JP2004164633A (ja) * 2002-10-28 2004-06-10 Sandisk Corp 不揮発性メモリシステム内においてアウトオブシーケンス書き込みプロセスを効果的に可能にするための方法および装置
JP2004326165A (ja) * 2003-04-21 2004-11-18 Toshiba Corp メモリ制御装置およびメモリ制御方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1746510A4 *

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007037507A1 (en) * 2005-09-29 2007-04-05 Kabushiki Kaisha Toshiba Memory system and method of writing into nonvolatile semiconductor memory
US8310896B2 (en) 2005-09-29 2012-11-13 Kabushiki Kaisha Toshiba Memory system and method of writing into nonvolatile semiconductor memory
US8130557B2 (en) 2005-09-29 2012-03-06 Kabushiki Kaisha Toshiba Memory system and method of writing into nonvolatile semiconductor memory
US7872922B2 (en) 2005-09-29 2011-01-18 Kabushiki Kaisha Toshiba Memory system and method of writing into nonvolatile semiconductor memory
EP2031514A1 (en) * 2006-05-18 2009-03-04 Buffalo Inc. Data memory device and data memorizing method
US8364730B2 (en) 2006-05-18 2013-01-29 Buffalo Inc. Data storage apparatus and data storage method
EP2031514A4 (en) * 2006-05-18 2010-11-03 Buffalo Inc DATA MEMORY DEVICE AND DATA STORING METHOD
US7783851B2 (en) 2006-10-19 2010-08-24 Samsung Electronics Co., Ltd. Methods of reusing log blocks in non-volatile memories and related non-volatile memory devices
DE102007006307A1 (de) * 2006-10-19 2008-04-24 Samsung Electronics Co., Ltd., Suwon Verfahren zum Betreiben eines nichtflüchtigen Speicherelements, Aufzeichnungsmedium und nichtflüchtigen Speicherelement
DE102007006307A8 (de) * 2006-10-19 2008-07-31 Samsung Electronics Co., Ltd., Suwon Verfahren zum Betreiben eines nichtflüchtigen Speicherelements, Aufzeichnungsmedium und nichtflüchtiges Speicherelement
JP2008176727A (ja) * 2007-01-22 2008-07-31 Denso Corp 情報処理装置、ナビゲーション装置及びプログラム
WO2008102610A1 (ja) * 2007-02-23 2008-08-28 Panasonic Corporation メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
JPWO2008102610A1 (ja) * 2007-02-23 2010-05-27 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
US8572307B2 (en) 2007-07-20 2013-10-29 Panasonic Corporation Memory controller, memory card, and nonvolatile memory system
JP2010140268A (ja) * 2008-12-11 2010-06-24 Toshiba Corp メモリデバイス
JP2013525886A (ja) * 2010-04-16 2013-06-20 マイクロン テクノロジー, インク. メモリデバイスおよびシステム中のブートパーティション
US8762703B2 (en) 2010-04-16 2014-06-24 Micron Technology, Inc. Boot partitions in memory devices and systems
US9342371B2 (en) 2010-04-16 2016-05-17 Micron Technology, Inc. Boot partitions in memory devices and systems
CN104407933A (zh) * 2014-10-31 2015-03-11 华为技术有限公司 一种数据的备份方法及装置
CN104407936A (zh) * 2014-11-18 2015-03-11 华为数字技术(成都)有限公司 一种数据快照方法及装置
KR20220052423A (ko) * 2020-10-20 2022-04-28 성균관대학교산학협력단 스토리지 장치, 스토리지 장치의 동작 방법, 및 스토리지 장치를 포함하는 스토리지 시스템
KR102546740B1 (ko) 2020-10-20 2023-06-26 성균관대학교산학협력단 스토리지 장치, 스토리지 장치의 동작 방법, 및 스토리지 장치를 포함하는 스토리지 시스템

Also Published As

Publication number Publication date
EP1746510A1 (en) 2007-01-24
EP1746510A4 (en) 2008-08-27
US20080109589A1 (en) 2008-05-08
TWI364658B (ja) 2012-05-21
US7877569B2 (en) 2011-01-25
JPWO2005106673A1 (ja) 2007-12-13
EP2977906A1 (en) 2016-01-27
TW200608201A (en) 2006-03-01
KR20070005730A (ko) 2007-01-10
JP4773342B2 (ja) 2011-09-14

Similar Documents

Publication Publication Date Title
JP4773342B2 (ja) 不揮発性記憶装置及びデータ書込み方法
US7487303B2 (en) Flash memory device and associated data merge method
KR100684942B1 (ko) 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템
US6587915B1 (en) Flash memory having data blocks, spare blocks, a map block and a header block and a method for controlling the same
KR100877448B1 (ko) 비휘발성 기억 시스템
CN102831071B (zh) 用于存储器装置的存储地址重新映射的方法和系统
US6381176B1 (en) Method of driving remapping in flash memory and flash memory architecture suitable therefor
CN102693184B (zh) 处理具有非易失性存储器的系统的动态和静态数据
US8214583B2 (en) Direct file data programming and deletion in flash memories
KR100389867B1 (ko) 플래시 메모리 관리방법
US8612719B2 (en) Methods for optimizing data movement in solid state devices
US8645614B2 (en) Method and apparatus for managing data of flash memory via address mapping
CN101763309B (zh) 非易失性存储装置、信息记录系统及信息记录方法
KR101465789B1 (ko) 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법
US20080120488A1 (en) Apparatus and method of managing nonvolatile memory
US20060184720A1 (en) Direct data file storage in flash memories
TW200417856A (en) Method and apparatus for splitting a logical block
US20080082727A1 (en) Header blocks for flash memory writes
US20050216687A1 (en) Data managing method and data access system for storing all management data in management bank of non-volatile memory
US20100318726A1 (en) Memory system and memory system managing method
JP2009512066A (ja) 固定サイズ格納ブロックを有するメモリシステムにおける変換データ単位格納
JP2009503740A (ja) データファイルを直接記憶する再プログラム可能な不揮発性メモリ内のファイルデータの索引付け
CN100437517C (zh) 非易失性存储装置和数据写入方法
CN111610930A (zh) 数据储存装置以及非挥发式存储器控制方法
CN109376095B (zh) 一种基于flash区域地址映射机制的垃圾回收方法

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 200580013088.X

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2005736975

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2006512845

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

WWE Wipo information: entry into national phase

Ref document number: 1020067024662

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 1020067024662

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 2005736975

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 11587808

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 11587808

Country of ref document: US