CN109521944A - 数据储存装置以及数据储存方法 - Google Patents
数据储存装置以及数据储存方法 Download PDFInfo
- Publication number
- CN109521944A CN109521944A CN201711104176.1A CN201711104176A CN109521944A CN 109521944 A CN109521944 A CN 109521944A CN 201711104176 A CN201711104176 A CN 201711104176A CN 109521944 A CN109521944 A CN 109521944A
- Authority
- CN
- China
- Prior art keywords
- data
- block
- virtual
- virtual block
- flash memory
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000013500 data storage Methods 0.000 title claims abstract description 42
- 238000013507 mapping Methods 0.000 claims abstract description 93
- 239000011800 void material Substances 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 11
- 239000011159 matrix material Substances 0.000 description 7
- 238000012546 transfer Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 230000005621 ferroelectricity Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005138 cryopreservation Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Abstract
本发明涉及一种数据储存装置以及数据储存方法。数据储存装置包括一快闪存储器、一控制器以及一随机存取存储器。数据储存方法包括:将快闪存储器的多个区块的一主动区块区分为多个虚拟区块;选取虚拟区块的其中一者对数据进行存取;以及对虚拟区块配置其对应的映射表。映射表用以记录多个逻辑地址与快闪存储器的多个物理地址的映射资讯、以及记录虚拟区块的有效页面的数量。
Description
技术领域
本发明有关于数据储存装置与数据储存方法,特别有关于利用虚拟区块提升效能的数据储存装置与数据储存方法。
背景技术
数据储存装置所采用的非挥发式存储器有多种形式─例如,快闪存储器(flashmemory)、磁阻式挥发性存储器(Magnetoresistive RAM)、铁电挥发性存储器(Ferroelectric RAM)、电阻式挥发性存储器(Resistive RAM)、自旋转移力矩挥发性存储器(Spin Transfer Torque-RAM,STT-RAM)…等,用于长时间数据保存。
数据储存装置的效能受限于非挥发式存储器的操作特性。本领域一项重要议题为提升数据储存装置的效能。
发明内容
本发明揭示了一种数据储存方法,将快闪存储器的区块区分为多个虚拟区块,藉由虚拟区块的每一者分别对多个数据进行存取,并且对每一虚拟区块配置其对应的映射表以记录虚拟区块的有效页面的数量。由此可知,在进行数据的读取或写入等操作时,本发明的数据储存方法是以虚拟区块的方式进行管理,以增加数据储存装置的效能,节省数据储存装置的储存容量。藉由利用虚拟区块的管理方式,能够在不需要耗费太多储存容量的情况下,达成增加数据储存装置的效能的目的。
本发明提供一种数据储存方法,应用于一数据储存装置。数据储存装置包括一快闪存储器、一控制器以及一随机存取存储器。数据储存方法包括:将快闪存储器的多个区块的一主动区块区分为多个个虚拟区块;选取虚拟区块的其中一者对数据进行存取;以及对虚拟区块配置其对应的映射表。映射表用以记录多个逻辑地址与快闪存储器的多个物理地址的映射资讯、以及记录虚拟区块的有效页面的数量。
在一实施例中,映射表储存于快闪存储器或是随机存取存储器。控制器将区块区分为虚拟区块的数量决定于映射表的数据大小、以及储存映射表的快闪存储器或随机存取存储器的储存容量。此外,控制器判断映射表的每一者所记录的有效页面的数量是否为零,并且当有效页面的数量不为零时,控制器对有效页面的数量不为零所对应的虚拟区块执行垃圾回收(Garbage Collection)流程,对虚拟区块的有效页面进行合并。再者,当控制器接收到一抹除(erase)指令时,控制器对需要抹除的区块的整体进行抹除。当控制器接收到一读取指令或是一写入指令时,控制器依据读取指令或写入指令判断需要进行读取或写入的区块之中的虚拟区块,并且对虚拟区块进行数据的读取或写入。
本发明提供一种数据储存装置,包括一快闪存储器以及一控制器。快闪存储器,包括多个个区块(block),上述区块的每一者包括多个页面(page)。控制器操作快闪存储器以储存多笔数据,以及将区块的一主动区块区分为多个虚拟区块。选取虚拟区块的其中一者对数据进行存取,虚拟区块具有其对应的映射表。映射表用以记录多个逻辑地址与快闪存储器的多个物理地址的映射资讯、以及记录虚拟区块的有效页面的数量。
本发明提供一种数据储存方法,应用于一数据储存装置。数据储存装置包括一快闪存储器、一控制器以及一随机存取存储器。数据储存方法包括:将快闪存储器的多个区块的一主动区块区分为多个虚拟区块;选取虚拟区块的其中一者对一数据进行存取;输出一数据写入指令;以及确认该数据写入指令是否执行完成,并且判断被选取的该虚拟区块是否已写满该数据。
下文特举实施例,并配合附图,详细说明本发明内容。
附图说明
图1是根据本发明一种实施例所述的数据储存装置与主机的示意图;
图2A是根据本发明一种实施例所述的区块的示意图;
图2B是根据本发明一种实施例所述的区块及其虚拟区块与映射表的示意图;
图3是显示根据本发明一实施例所述的数据储存方法的流程图;
图4是显示根据本发明另一实施例所述的数据储存方法的流程图;
图5A是根据本发明一种实施例所述的区块的示意图;
图5B是根据本发明一种实施例所述的区块及其虚拟区块与映射表的示意图;
图5C是根据本发明一种实施例所述的藉由虚拟区块与映射表执行垃圾回收流程的示意图。
符号说明
100~数据储存装置;
120~控制器;
140~快闪存储器;
160-16N~储存矩阵;
160_A、160_Z…16N_A、16N_Z、BLK~区块;
160_A_1、160_ZX…16N_A1、16N_ZX~页面;
180~随机存取存储器;
200~主机;
210~中央处理器;
P2L、P2L#1、P2L#2…P2L#11~映射表;
VB#1、VB#2…VB#N~虚拟区块;
S300…S414~步骤。
具体实施方式
为让本发明的目的、特征和优点能更明显易懂,下文特举出本发明的具体实施例,并配合附图,作详细说明如下。目的在于说明本发明的精神而非用以限定本发明的保护范围,应理解下列实施例可经由软件、硬件、固件、或上述任意组合来实现。
图1是显示根据本发明一实施例所述的数据储存装置100与主机200的示意图。在一实施例中,数据储存装置100包括控制器120、非挥发性存储器以及随机存取存储器(RAM)180。主机200包括中央处理器(CPU)210。数据储存装置100耦接主机200以传送数据与指令、或是接收数据与指令。数据储存装置100符合嵌入式快闪存储器模组(eMMC)规范以及通用快闪存储器(UFS)规范。非挥发式存储器可以是快闪存储器(Flash Memory)、磁阻式挥发性存储器(Magnetoresistive RAM)、铁电挥发性存储器(Ferroelectric RAM)、电阻式存储器(Resistive RAM,RRAM)、自旋转移力矩挥发性存储器(Spin Transfer Torque-RAM,STT-RAM)…等具有长时间数据保存之存储器装置。以下特别以快闪存储器(Flash Memory)140为例进行讨论。
如图1所示,控制器120耦接快闪存储器140以及随机存取存储器180。随机存取存储器180用以暂存以及预取控制器120所需之数据,或是用以暂存主机200要写入快闪存储器140的数据,以加快数据储存装置100的存取时间。控制器120耦接快闪存储器140以相互传送数据与指令或接收数据与指令。在一实施例中,控制器120与快闪存储器140之间具有4个通道(亦即CH0~CH3)以传输数据或指令。进一步而言,控制器120可包括具有固件码的一微控制器以及只读存储器(ROM),并且微控制器执行固件码以操作或是存取快闪存储器140。
快闪存储器140包括多个储存矩阵(Array)160~16N。举例而言,快闪存储器140具有4个储存矩阵160~163(亦即CE0~CE3)。储存矩阵160~16N中的每一者还包括多个区块(block)160_A~16N_Z。在一实施例中,每一储存矩阵160~16N的一部分区块组合成一超级区块(Super Block),使得快闪存储器140包括多个超级区块。如图1所示,储存矩阵160包括区块160_A~160_Z,储存矩阵16N包括区块16N_A~16N_Z。对于储存矩阵160而言,区块160_A~160_Z中的每一者还包括多个实体页面160_A_1~16N_Z_X。区块160_A包括实体页面160_A_1~160_A_X,区块160_Z包括实体页面160_Z_1~160_Z_X。控制器120在对快闪存储器140执行写入或储存动作时,是藉由控制快闪存储器140以实体页面为单位来执行写入或程式化的运作。
对于快闪存储器140而言,其实体页面(简称页面)160_A_1~16N_Z_X的每一者皆具有不同的实体地址。换言之,页面160_A_1~16N_Z_X的每一者都具有一个实体地址,而页面160_A_1~16N_Z_X的每一者的实体地址都是不同的。当数据储存装置100执行写入运作时,控制器120选取快闪存储器140的一个实体地址(即一个页面)以写入或储存数据,并将数据的逻辑地址与实体地址的对应关系记录至映射表L2P(Logical addresses toPhysical addresses),另外,页面如果仍有多余空间的话,控制器120亦可将数据的逻辑地址写入页面中。之后,主机200可藉由逻辑地址来读取数据储存装置100所储存于某个逻辑地址的数据。此外,控制器120亦会在区块或超级区块的尾端储存映射表P2L(Physicaladdresses to Logical addresses),以记录区块或超级区块的数据的实体地址与逻辑地址的映射关系。当映射表L2P遗失或毁损时,控制器120可读取区块或超级区块所储存的映射表P2L以重建映射表L2P。
图2A是根据本发明一种实施例所述的区块BLK的示意图。上述区块BLK可为图1的160_A区块至16N_Z区块之中的任一者、或是由储存矩阵160~16N的一部分所组成的超级区块,本发明并不加以限制。如图2A所示,区块BLK储存有映射表P2L以记录数据的实体地址与逻辑地址的映射关系。然而,随着区块BLK的储存容量的增加,其对应之映射表P2L的数据大小也随之增加。由于快闪存储器140内建的静态随机存取存储器的储存容量是有限的,过于庞大的映射表P2L可能会导致无法储存于快闪存储器140内建的静态随机存取存储器,或是,增加因为掉电所导致映射表P2L损毁或遗失的风险。尤其是当数据储存装置100没有配置随机存取存储器180时,对于映射表P2L的储存或维护将更为困难。
图2B是根据本发明一种实施例所述的区块BLK及其虚拟区块与映射表的之示意图。在一实施例中,控制器120将区块BLK分割为多个虚拟区块VB#1~VB#4。举例而言,区块BLK具有3072个页面或1024条字元线(Word lines),虚拟区块VB#1~VB#4之每一者具有768个页面或256条字元线。此外,虚拟区块VB#1~VB#4分别具有所对应的映射表P2L#1~P2L#4,并记录于虚拟区块VB#1~VB#4中的其中一个页面或字元线。如图2B所示,虚拟区块VB#1具有映射表P2L#1,虚拟区块VB#2具有映射表P2L#2,以下类推。上述4个映射表P2L#1~P2L#4的总和即为图2A的原本映射表P2L。由此可知,每个映射表P2L#1~P2L#4的数据大小,小于原本映射表P2L的数据大小。因此,数据储存装置100能够轻易储存上述映射表P2L#1~P2L#4,不需要耗费许多储存容量。
要注意的是,上述4个虚拟区块VB#1~VB#4以及4个映射表P2L#1~P2L#4用以说明本发明而非加以限制,本领域的技术人员可依据需求将区块BLK切割为其他数量的虚拟区块及其映射表。在一实施例中,控制器120将区块BLK区分为这些虚拟区块VB#1~VB#N的数量N决定于映射表P2L的数据大小、以及储存映射表P2L的快闪存储器140或随机存取存储器180的储存容量。举例而言,原本映射表P2L的数据大小为2MB,一个页面或字元的储存容量为100KB,则控制器120将区块BLK切割为20个虚拟区块VB#1~VB#20,并储存20个映射表P2L#1~P2L#20(亦即N等于20),以符合数据大小以及储存容量的需求。
详细而言,每个映射表P2L#1~P2L#4用以记录快闪存储器的多个物理地址(平面编号、区块编号、页面编号或单元编号)与多个逻辑地址的映射资讯。此外,映射表P2L#1~P2L#4还可以记录数据的有效与否,亦可以记录其对应虚拟区块的可用页面的数量。上述可用页面是指该页面并未发生损毁,可以正常进行数据的读取与写入。在另一实施例中,可用页面表示该页面还有剩余容量可以储存数据。
每个虚拟区块VB#1~VB#4分别具有所对应的映射表P2L#1~P2L#4,可以分别记录物理地址与逻辑地址的映射关系,每个虚拟区块VB#1~VB#4彼此独立存在。
在另一实施例中,当控制器120接收到主机200所传送的抹除(erase)指令时,控制器120对需要抹除的区块BLK的整体进行抹除,以清除区块BLK所储存的全部数据。换言之,在进行区块BLK的抹除时,以区块BLK为整体考量,不探究其所包括的多个虚拟区块VB#1~VB#4。
由此可知,本发明的数据储存方法是以虚拟区块的方式进行数据管理,可套用相同的数据管理方法在各种规格的快闪存储器140,不需因为快闪存储器140的架构改变或容量增减而大幅修改原数据管理方法,并且可以降低掉电所导致映射表P2L损毁或遗失的风险。
图3是显示根据本发明一实施例所述的数据储存方法的流程图。在步骤S300中,控制器120选取快闪存储器140的多个区块的至少一区块作为主动区块,其中,主动区块用以储存来自于主机200的数据或是在垃圾回收(Garbage Collection)程序时作为目的区块(Destination Block)。在下述说明中将以储存来自于主机200的数据进行说明。
在步骤S302中,控制器120将主动区块区分为多个虚拟区块VB#1~VB#N。在步骤S304中,控制器120选取其中之的虚拟区块,例如,虚拟区块VB#1。在步骤S306中,控制器120接收数据写入指令,其中,数据写入指令来自于数据储存装置100的外部,例如:主机200。
在步骤S308中,控制器120依据数据写入指令而操作被选取的虚拟区块,即虚拟区块VB#1,以执行数据写入。在步骤S310中,控制器120判断虚拟区块是否已写满数据。假设虚拟区块VB#1具有768个页面或256字元线,当767个页面或255字元线已执行数据写入而写入数据后,则虚拟区块VB#1已写满数据,第768个页面或第256字元线不再写入数据写入指令所对应的使用者数据,而是写入映射表P2L#1。
在步骤S312中,控制器120关闭虚拟区块,即写入关闭资讯(End of Block,EOB)至第768个页面或第256字元线。其中,EOB记录与虚拟区块VB#1相关的资讯,例如:映射表P2L#1、有效页总数、有效单元总数或有效数据总数。另外,有效页总数、有效单元总数或有效数据总数的取得较佳于写入EOB之前,由控制器120将映射表P2L#1与映射表L2P进行比对,如果映射表P2L#1与映射表L2P针对同一笔数据的逻辑地址与实体地址皆相同,则此为有效数据,则有效页总数、有效单元总数或有效数据总数加一;如果映射表P2L#1与映射表L2P针对同一笔数据的逻辑地址与实体地址并不相同,则此为无效数据。
在步骤S314中,控制器120判断是否所有虚拟区块已被选取过。由上述中可知,目前仅虚拟区块VB#1被选取过,虚拟区块VB#2~4未被选取过,因此,执行步骤S304,此时较佳选取虚拟区块VB#2。于第四次执行步骤S314时,理论上所有的虚拟区块已被选取过了,所以结束本发明数据储存方法的执行。
图4是显示根据本发明另一实施例所述的数据储存方法的流程图,本实施例与之前实施例的主要差别在于本实施例乃由主机200的中央处理器210执行数据储存方法,而非数据储存装置100的控制器120,有效性列表bitMap乃由中央处理器210所建立,而非控制器120。数据储存装置100完成初始化之后,中央处理器210会要求控制器120,或者控制器120会主动,提供操作参数给中央处理器210,中央处理器210依据操作参数建立映射表L2P并输出指令至控制器120以间接地控制快闪存储器140的运作。在步骤S400中,中央处理器210选取快闪存储器140的多个区块的至少一区块作为主动区块,其中,主动区块用以储存来自于主机200的数据或是在垃圾回收(Garbage Collection)程序时作为目的区块(DestinationBlock)。在下述说明中将以储存来自于主机200的数据进行说明。
在步骤S402中,中央处理器210将主动区块区分为多个虚拟区块VB#1~VB#N。在步骤S404中,中央处理器210选取其中之一虚拟区块,例如,虚拟区块VB#1。在步骤S406中,中央处理器210输出数据写入指令至控制器120,其中,数据写入指令包括欲写入的数据以及欲写入的实体地址,较佳还包括欲写入的数据的逻辑地址。
在步骤S408中,确认数据写入指令执行完成。中央处理器210输出数据写入指令至控制器120后,由控制器120依据数据写入指令而操作快闪存储器140,例如,将欲写入的数据写入至欲写入的实体地址。如果欲写入的数据成功地写入至欲写入的实体地址,则控制器120回传指令执行完成讯息至中央处理器210。当中央处理器210收到指令执行完成讯息时,即可确认数据写入指令执行完成。
在步骤S410中,中央处理器210判断虚拟区块是否已写满数据。假设虚拟区块VB#1具有768个页面或256字元线,当767个页面或255字元线已执行数据写入而写入数据后,则虚拟区块VB#1已写满数据,第768个页面或第256字元线不再写入数据写入指令所对应的使用者数据,而是写入映射表P2L#1。
在步骤S412中,中央处理器210关闭虚拟区块,即中央处理器210输出数据写入指令至控制器120,并要求控制器120将关闭资讯(End of Block,EOB)写入至第768个页面或第256字元线。其中,EOB记录与虚拟区块VB#1相关的资讯,例如:映射表P2L#1、有效页总数、有效单元总数或有效数据总数。另外,有效页总数、有效单元总数或有效数据总数的取得较佳于写入EOB之前,由中央处理器210将映射表P2L#1与映射表L2P进行比对,如果映射表P2L#1与映射表L2P针对同一笔数据的逻辑地址与实体地址皆相同,则此为有效数据,则有效页总数、有效单元总数或有效数据总数加一;如果映射表P2L#1与映射表L2P针对同一笔数据的逻辑地址与实体地址并不相同,则此为无效数据。
在步骤S414中,中央处理器210判断是否所有虚拟区块已被选取过。由上述中可知,目前仅虚拟区块VB#1被选取过,虚拟区块VB#2~4未被选取过,因此,执行步骤S404,此时较佳选取虚拟区块VB#2。于第四次执行步骤S414时,理论上所有的虚拟区块已被选取过了,所以结束本发明数据储存方法的执行。
图5A是根据本发明一种实施例所述的区块的示意图。在此实施例中,数据储存装置100为4个通道与4个储存矩阵的架构(亦即4CH4CE)。如图5A所示,区块BLK是由CH0CE0、CH1CE0、CH0CE1以及CH1CE1等4个部分所组成。区块BLK包括多个有效页面(以灰色表示)、多个无效页面(以白色表示)、以及映射表P2L。由于区块BLK的页面数量众多,并且有效页面为各处零散,因此造成储存以及数据存取的困难。
图5B是根据本发明一种实施例所述的区块及其虚拟区块与映射表的示意图。在此实施例中,区块BLK被区分为多个虚拟区块VB#1~VB#12,映射表P2L被区分为多个映射表P2L#1~P2L#12。每个映射表P2L#1~P2L#12记录其对应虚拟区块P2L#1~P2L#12的有效页面的数量、以及其对应虚拟区块P2L#1~P2L#12的逻辑地址与快闪存储器140的物理地址的映射资讯。由图5B所示的有效页面分布情况可得知,映射表P2L#1所记录的有效页面数量为4,映射表P2L#2所记录的有效页面数量为0,映射表P2L#3所记录的有效页面数量为1,映射表P2L#4所记录的有效页面数量为3。
由于映射表P2L#1、P2L#3~P2L#12所记录的有效页面的数量不为0,因此控制器120对虚拟区块VB#1、VB#3~VB#12执行垃圾回收程序。要注意的是,由于虚拟区块P2L#2没有任何有效页面,因此虚拟区块P2L#2不会用于进行数据存取或是垃圾回收等操作。图5C是根据本发明一种实施例所述的藉由虚拟区块与映射表执行垃圾回收流程的示意图。由于垃圾回收程序是对虚拟区块VB#1、VB#3~VB#12的有效页面进行合并,经过垃圾回收程序之后,区块BLK的有效页面系重新配置并且集中于虚拟区块VB#1~VB#6。因此,藉由本发明所提出的虚拟区块的数据储存方法,能够增加执行垃圾回收程序的效率。
本发明数据储存方法除了可以达到本发明的目的之外,更具有额外的优点。例如:于执行垃圾回收(Garbage Collection)程序时,可直接读取来源区块(Source Block)的虚拟区块的EOB中有效页总数、有效单元总数或有效数据总数,即可得知来源区块的中的每一虚拟区块的有效数据的总数。如果来源区块的虚拟区块,例如:虚拟区块VB#3的有效数据的总数为0,这表示虚拟区块VB#3并不储存任何有效数据,则可跳过虚拟区块VB#3,直接进行虚拟区块VB#4的有效数据的检查。如果虚拟区块VB#4的有效数据的总数大于0,例如:100,则控制器120可将映射表P2L#4与映射表L2P进行比对,以产生有效性列表bitMap,其中,有效性列表bitMap依序记录每笔数据或每页面的有效性,例如,数据有效则记录为"1",数据无效则记录为"0",最后,控制器120可依序将"1"所对应的有效数据搬移至目的区块。
在本说明书以及申请专利范围中的序数,例如"第一"、"第二"、"第三"等等,彼此之间并没有顺序上的先后关系,其仅用于标示区分两个具有相同名字的不同元件。本发明说明书中"耦接"一词泛指各种直接或间接的电性连接方式。本发明虽以较佳实施例揭示如上,然其并非用以限定本发明的范围,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当由权利要求书界定为准。
Claims (20)
1.一种数据储存方法,应用于一数据储存装置,该数据储存装置包括一快闪存储器、一控制器以及一随机存取存储器,该数据储存方法包括:
将该快闪存储器的多个区块的一主动区块区分为多个虚拟区块;
选取这些虚拟区块的其中一者对数据进行存取;以及
对该虚拟区块配置其对应的映射表,其中该映射表用以记录多个逻辑地址与该快闪存储器的多个物理地址的映射资讯、以及记录该虚拟区块的有效页面的数量。
2.如权利要求1所述的数据储存方法,其特征在于,这些映射表储存于该快闪存储器或是该随机存取存储器。
3.如权利要求2所述的数据储存方法,其特征在于,还包括:依据该映射表的数据大小、以及储存该映射表的该快闪存储器或该随机存取存储器的储存容量,决定将该区块区分为这些虚拟区块的数量。
4.如权利要求1所述的数据储存方法,其特征在于,还包括:判断这些映射表的每一者所记录的该有效页面的数量是否为零,并且当该有效页面的数量大于零时,对该有效页面的数量大于零所对应的该虚拟区块执行垃圾回收流程。
5.如权利要求4所述的数据储存方法,其特征在于,该主动区块用以储存来自该主机的该数据或是在该垃圾回收流程时作为目的区块。
6.如权利要求4所述的数据储存方法,其特征在于,该垃圾回收流程用以对该虚拟区块的有效页面进行合并。
7.如权利要求1所述的数据储存方法,其特征在于中,当接收到一抹除指令时,藉由该控制器对需要抹除的该区块的整体进行抹除。
8.如权利要求1所述的数据储存方法,其特征在于,当接收到一数据写入指令时,依据该数据写入指令对所选取的该虚拟区块进行数据的写入,并且判断该虚拟区块是否已写满该数据。
9.如权利要求8所述的数据储存方法,其特征在于,当该虚拟区块已写满该数据,则关闭该虚拟区块,并且判断是否这些虚拟区块的每一者都已被选取过。
10.如权利要求9所述的数据储存方法,其特征在于,当这些虚拟区块的每一者并非都已被选取过,则选取不同于该虚拟区块的另一虚拟区块以进行数据的存取。
11.一种数据储存装置,包括:
一快闪存储器,包括多个区块,其中这些区块的每一者包括多个页面;以及
一控制器,操作该快闪存储器以储存多个笔数据,以及将这些区块的一主动区块区分为多个虚拟区块,选取这些虚拟区块的其中一者对数据进行存取,该虚拟区块具有其对应的映射表,该映射表用以记录多个逻辑地址与该快闪存储器的多个物理地址的映射资讯、以及记录该虚拟区块的有效页面的数量。
12.如权利要求11所述的数据储存装置,其特征在于,这些映射表储存于该快闪存储器或是该数据储存装置的一随机存取存储器。
13.如权利要求12所述的数据储存装置,其特征在于,该控制器将该区块区分为这些虚拟区块的数量决定于该映射表的数据大小、以及储存该映射表的该快闪存储器或该随机存取存储器的储存容量。
14.如权利要求11所述的数据储存装置,其特征在于,该控制器判断这些映射表的每一者所记录的该有效页面的数量是否为零,并且当该有效页面的数量大于零时,该控制器对该有效页面的数量大于零所对应的该虚拟区块执行垃圾回收流程。
15.如权利要求14所述的数据储存装置,其特征在于,该主动区块用以储存来自该主机的该数据或是在该垃圾回收流程时作为目的区块。
16.如权利要求11所述的数据储存装置,其特征在于,当该控制器接收到一抹除指令时,该控制器对需要抹除的该区块的整体进行抹除。
17.如权利要求11所述的数据储存装置,其特征在于,当该控制器接收到一数据写入指令时,该控制器依据该数据写入指令对所选取的该虚拟区块进行这些数据的写入,并且判断该虚拟区块是否已写满该数据。
18.一种数据储存方法,应用于一数据储存装置,该数据储存装置包括一快闪存储器、一控制器以及一随机存取存储器,该数据储存方法包括:
将该快闪存储器的多个区块的一主动区块区分为多个虚拟区块;
选取这些虚拟区块的其中一者对一数据进行存取;
输出一数据写入指令;以及
确认该数据写入指令是否执行完成,并且判断被选取的该虚拟区块是否已写满该数据。
19.如权利要求18所述的数据储存方法,其特征在于,当该虚拟区块已写满该数据,则关闭该虚拟区块,并且判断是否这些虚拟区块的每一者都已被选取过。
20.如权利要求19所述的数据储存方法,其特征在于,当这些虚拟区块的每一者并非都已被选取过,则选取不同于该虚拟区块的另一虚拟区块以进行数据的存取。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106131913A TWI679534B (zh) | 2017-09-18 | 2017-09-18 | 資料儲存裝置以及資料儲存方法 |
TW106131913 | 2017-09-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109521944A true CN109521944A (zh) | 2019-03-26 |
CN109521944B CN109521944B (zh) | 2022-09-30 |
Family
ID=65719302
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711104176.1A Active CN109521944B (zh) | 2017-09-18 | 2017-11-10 | 数据储存装置以及数据储存方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10929303B2 (zh) |
CN (1) | CN109521944B (zh) |
TW (1) | TWI679534B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111813703A (zh) * | 2019-04-10 | 2020-10-23 | 慧荣科技股份有限公司 | 数据储存装置及逻辑至物理地址映射表的更新方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210063764A (ko) * | 2019-11-25 | 2021-06-02 | 에스케이하이닉스 주식회사 | 메모리 시스템의 동작 방법 및 장치 |
CN113495681A (zh) * | 2020-04-07 | 2021-10-12 | 杭州萤石软件有限公司 | 一种nand flash文件数据存取方法、装置及存储介质 |
US11556467B1 (en) * | 2021-07-13 | 2023-01-17 | Micron Technology, Inc. | Optimizing garbage collection that uses a logical-to-physical table search |
JP2023044824A (ja) * | 2021-09-21 | 2023-04-03 | キオクシア株式会社 | メモリシステム |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1447242A (zh) * | 2002-03-25 | 2003-10-08 | 太和科技股份有限公司 | 可适用于快闪存储卡的控制装置及其建构方法 |
CN1534509A (zh) * | 2003-03-27 | 2004-10-06 | 太和科技股份有限公司 | 具有快速且预防不当操作功效的快闪记忆体演算法及其控制系统 |
US20050246480A1 (en) * | 2004-04-29 | 2005-11-03 | Hung-Shiun Fu | System and method capable of sequentially writing data to a flash memory |
TWI264678B (en) * | 2001-08-31 | 2006-10-21 | Key Technology Corp | Control device adapted to flash memory card and method for constructing the same |
US20080301256A1 (en) * | 2007-05-30 | 2008-12-04 | Mcwilliams Thomas M | System including a fine-grained memory and a less-fine-grained memory |
KR20110115871A (ko) * | 2010-04-16 | 2011-10-24 | (주)다윈텍 | 파티션별로 플랙시블한 크기의 로그블록을 포함하는 플래시 메모리 및 이를 이용한 메모리 시스템 |
CN103020550A (zh) * | 2012-12-03 | 2013-04-03 | 记忆科技(深圳)有限公司 | 一种固态硬盘及其安全访问方法、固态硬盘系统 |
CN103455437A (zh) * | 2012-05-30 | 2013-12-18 | 慧荣科技股份有限公司 | 数据储存装置与数据储存装置操作方法 |
CN103530062A (zh) * | 2012-07-03 | 2014-01-22 | 群联电子股份有限公司 | 数据存储方法、存储器控制器与存储器存储装置 |
US20140297927A1 (en) * | 2013-03-28 | 2014-10-02 | Sony Corporation | Information processing apparatus, information processing method, and recording medium |
CN104166636A (zh) * | 2013-05-17 | 2014-11-26 | 宇瞻科技股份有限公司 | 存储器储存装置及其还原方法与存储器控制器 |
CN106021013A (zh) * | 2016-03-22 | 2016-10-12 | 威盛电子股份有限公司 | 非挥发性存储器装置及其操作方法 |
CN106326134A (zh) * | 2015-06-30 | 2017-01-11 | 华为技术有限公司 | Ftl地址映射的方法及装置 |
US20170010810A1 (en) * | 2015-07-06 | 2017-01-12 | CNEXLABS, Inc. a Delaware Corporation | Method and Apparatus for Providing Wear Leveling to Non-Volatile Memory with Limited Program Cycles Using Flash Translation Layer |
CN106557432A (zh) * | 2015-09-29 | 2017-04-05 | 群联电子股份有限公司 | 缓冲存储器管理方法、存储器控制电路单元及存储装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6978342B1 (en) * | 1995-07-31 | 2005-12-20 | Lexar Media, Inc. | Moving sectors within a block of information in a flash memory mass storage architecture |
TW368626B (en) * | 1998-04-17 | 1999-09-01 | Winbond Electronics Corp | Microprocessor with self-programmed embedded flash memory and programming method |
JP2002063797A (ja) * | 2000-08-22 | 2002-02-28 | Mitsubishi Electric Corp | 不揮発性半導体記憶装置 |
KR100789406B1 (ko) * | 2006-11-03 | 2007-12-28 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그것의 가비지 컬렉션 방법 |
KR20080085574A (ko) * | 2007-03-20 | 2008-09-24 | 삼성전자주식회사 | 비휘발성 메모리의 가비지 컬렉션을 위한 장치 및 방법 |
WO2013048451A1 (en) * | 2011-09-30 | 2013-04-04 | Intel Corporation | Presentation of direct accessed storage under a logical drive model |
US9201786B2 (en) * | 2012-12-21 | 2015-12-01 | Kabushiki Kaisha Toshiba | Memory controller and memory system |
US9983829B2 (en) * | 2016-01-13 | 2018-05-29 | Sandisk Technologies Llc | Physical addressing schemes for non-volatile memory systems employing multi-die interleave schemes |
-
2017
- 2017-09-18 TW TW106131913A patent/TWI679534B/zh active
- 2017-11-10 CN CN201711104176.1A patent/CN109521944B/zh active Active
-
2018
- 2018-07-05 US US16/028,005 patent/US10929303B2/en active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI264678B (en) * | 2001-08-31 | 2006-10-21 | Key Technology Corp | Control device adapted to flash memory card and method for constructing the same |
CN1447242A (zh) * | 2002-03-25 | 2003-10-08 | 太和科技股份有限公司 | 可适用于快闪存储卡的控制装置及其建构方法 |
CN1534509A (zh) * | 2003-03-27 | 2004-10-06 | 太和科技股份有限公司 | 具有快速且预防不当操作功效的快闪记忆体演算法及其控制系统 |
US20050246480A1 (en) * | 2004-04-29 | 2005-11-03 | Hung-Shiun Fu | System and method capable of sequentially writing data to a flash memory |
US20080301256A1 (en) * | 2007-05-30 | 2008-12-04 | Mcwilliams Thomas M | System including a fine-grained memory and a less-fine-grained memory |
KR20110115871A (ko) * | 2010-04-16 | 2011-10-24 | (주)다윈텍 | 파티션별로 플랙시블한 크기의 로그블록을 포함하는 플래시 메모리 및 이를 이용한 메모리 시스템 |
CN103455437A (zh) * | 2012-05-30 | 2013-12-18 | 慧荣科技股份有限公司 | 数据储存装置与数据储存装置操作方法 |
CN103530062A (zh) * | 2012-07-03 | 2014-01-22 | 群联电子股份有限公司 | 数据存储方法、存储器控制器与存储器存储装置 |
CN103020550A (zh) * | 2012-12-03 | 2013-04-03 | 记忆科技(深圳)有限公司 | 一种固态硬盘及其安全访问方法、固态硬盘系统 |
US20140297927A1 (en) * | 2013-03-28 | 2014-10-02 | Sony Corporation | Information processing apparatus, information processing method, and recording medium |
CN104166636A (zh) * | 2013-05-17 | 2014-11-26 | 宇瞻科技股份有限公司 | 存储器储存装置及其还原方法与存储器控制器 |
CN106326134A (zh) * | 2015-06-30 | 2017-01-11 | 华为技术有限公司 | Ftl地址映射的方法及装置 |
US20170010810A1 (en) * | 2015-07-06 | 2017-01-12 | CNEXLABS, Inc. a Delaware Corporation | Method and Apparatus for Providing Wear Leveling to Non-Volatile Memory with Limited Program Cycles Using Flash Translation Layer |
CN106557432A (zh) * | 2015-09-29 | 2017-04-05 | 群联电子股份有限公司 | 缓冲存储器管理方法、存储器控制电路单元及存储装置 |
CN106021013A (zh) * | 2016-03-22 | 2016-10-12 | 威盛电子股份有限公司 | 非挥发性存储器装置及其操作方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111813703A (zh) * | 2019-04-10 | 2020-10-23 | 慧荣科技股份有限公司 | 数据储存装置及逻辑至物理地址映射表的更新方法 |
Also Published As
Publication number | Publication date |
---|---|
TWI679534B (zh) | 2019-12-11 |
CN109521944B (zh) | 2022-09-30 |
US10929303B2 (en) | 2021-02-23 |
US20190087349A1 (en) | 2019-03-21 |
TW201915739A (zh) | 2019-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10657047B2 (en) | Data storage device and method of performing partial garbage collection | |
US9842030B2 (en) | Data storage device and flash memory control method | |
US8386698B2 (en) | Data accessing method for flash memory and storage system and controller using the same | |
EP2605142B1 (en) | Lba bitmap usage | |
US8250286B2 (en) | Block management method, and storage system and controller using the same | |
CN109521944A (zh) | 数据储存装置以及数据储存方法 | |
US8001317B2 (en) | Data writing method for non-volatile memory and controller using the same | |
CN102292711B (zh) | 固态存储器格式化 | |
CN108733510A (zh) | 数据储存装置及映射表重建方法 | |
CN106354615B (zh) | 固态硬盘日志生成方法及其装置 | |
CN108664418A (zh) | 数据储存装置以及其操作方法 | |
US8838877B2 (en) | File system derived metadata for management of non-volatile memory | |
US20100057979A1 (en) | Data transmission method for flash memory and flash memory storage system and controller using the same | |
US9619380B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
CN104461397A (zh) | 一种固态硬盘及其读写方法 | |
CN109977034A (zh) | 数据储存装置以及非挥发式存储器操作方法 | |
CN108121664A (zh) | 数据储存装置以及其操作方法 | |
CN108932107A (zh) | 数据存储装置及其操作方法 | |
US8892816B1 (en) | System and method for writing data to a memory | |
US8074128B2 (en) | Block management and replacement method, flash memory storage system and controller using the same | |
KR100882740B1 (ko) | 맵 히스토리 기반의 불휘발성 메모리의 매핑 방법 및 저장장치 | |
JP7026833B1 (ja) | 記憶装置、フレッシュメモリコントローラ及びその制御方法 | |
CN104021089A (zh) | 快闪存储器控制芯片与存储装置以及快闪存储器控制方法 | |
CN111625197A (zh) | 存储器控制方法、存储器存储装置及存储器控制器 | |
US8972650B2 (en) | Methods and systems for performing efficient page reads in a non-volatile memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |