CN112885397B - 数据储存装置以及非挥发式存储器控制方法 - Google Patents
数据储存装置以及非挥发式存储器控制方法 Download PDFInfo
- Publication number
- CN112885397B CN112885397B CN202011173409.5A CN202011173409A CN112885397B CN 112885397 B CN112885397 B CN 112885397B CN 202011173409 A CN202011173409 A CN 202011173409A CN 112885397 B CN112885397 B CN 112885397B
- Authority
- CN
- China
- Prior art keywords
- trimming
- length
- trim
- bit
- information
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 123
- 238000013500 data storage Methods 0.000 title claims abstract description 24
- 238000000034 method Methods 0.000 title claims description 30
- 238000009966 trimming Methods 0.000 claims abstract description 212
- 238000013507 mapping Methods 0.000 claims abstract description 97
- 230000008439 repair process Effects 0.000 claims description 16
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000012005 ligant binding assay Methods 0.000 description 80
- 210000004027 cell Anatomy 0.000 description 11
- 238000013523 data management Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 238000006467 substitution reaction 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0614—Improving the reliability of 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及数据储存装置的高效修整对应的复电技术。该控制器根据一程序化顺序扫描该非挥发式存储器,收集一串修整资讯旗标,据以解读自该非挥发式存储器扫描出的一串储存资讯为逻辑地址、或是修整代号。解读出的逻辑地址用于重建一主机‑装置映射表。解读出的修整代号用于判断该非挥发式存储器相应储存空间是储存中等长度、或大量修整的资讯。根据中等长度修整的资讯,虚置映射数据填入该主机‑装置映射表。根据大量修整的资讯,一修整位元总表重建,该修整位元总表各位元对应一第一长度的修整。
Description
技术领域
本发明有关于数据储存装置的修整(trimming)技术。
背景技术
非挥发式存储器有多种形式─例如,快闪存储器(flash memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式随机存取存储器(Resistive RAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,用于长时间数据保存,可做为储存媒体实现一数据储存装置。
非挥发式存储器通常有其特殊的储存特性。本技术领域需要相应非挥发式存储器的储存特性发展相应的控制技术。例如,符合非挥发式存储器储存特性的修整(trimming)技术。
发明内容
本发明相应一种高效修整技术,提出一种复电技术。
根据本发明一种实施方式实现的一数据储存装置包括一非挥发式存储器、以及耦接该非挥发式存储器的一控制器以及一暂存存储器。该控制器是建构来在该暂存存储器上重建该非挥发式存储器的修整状况。该控制器根据一程序化顺序扫描该非挥发式存储器,收集一串修整资讯旗标,据以解读自该非挥发式存储器扫描出的一串储存资讯为逻辑地址、或是修整代号。该控制器根据解读出的逻辑地址重建一主机-装置映射表。该控制器根据解读出的修整代号,判断该非挥发式存储器相应储存空间是储存中等长度修整的资讯、或大量修整的资讯。根据中等长度修整的资讯,该控制器将虚置映射数据填入该主机-装置映射表。根据大量修整的资讯,该控制器重建一修整位元总表,该修整位元总表各位元对应一第一长度的修整。
一种实施方式中,一笔中等长度修整不超过该第一长度,且对齐一第二长度的分界。一笔中等长度修整的资讯包括该笔中等长度修整的起始逻辑地址以及长度。上述修整代号为一中等长度修整代号时,该控制器判断该非挥发式存储器相应储存空间是储存一笔中等长度修整的起始逻辑地址以及长度。
一种实施方式中,一笔大量修整对齐该第一长度的分界、且为该第一长度的N倍,对应该修整位元总表的N个位元,N为正整数。该修整位元总表包括多个修整位元子表。上述N个位元对应到该等修整位元子表其中M个修整位元子表,M为正整数。该笔大量修整的资讯包括上述M个修整位元子表。上述修整代号为上述M个修整位元子表的M个子表编号时,该控制器判断该非挥发式存储器相应储存空间是储存上述M个修整位元子表。
一种实施方式中,该主机-装置映射表包括多个映射子表。各映射子表以该第二长度为单位,管理该第一长度的逻辑地址区间的映射数据。
以上控制该非挥发式存储器的控制器也可以由其他架构实现。本发明还可以前述概念实现非挥发式存储器的控制方法。
下文特举实施例,并配合附图,详细说明本发明内容。
附图说明
图1图解快闪存储器中区块Blk的结构;
图2图解根据本发明一种实施方式所实现的一数据储存装置200;
图3图解修整的分类;
图4图解首位少量修整(302),其中修整逻辑区块地址LBA 5~LBA 7;
图5图解首位中等长度修整(304),其中修整逻辑区块地址LBA 8~LBA 4095;
图6A以及图6B图解大量修整(306),其中修整逻辑区块地址LBA 4096~LBA100663295;
图7图解末位中等长度修整(308);
图8图解末位少量修整(310),其中修整逻辑区块地址LBA 100664320~LBA100664323;
图9整理LBA 5~LBA 100664323修整指令执行后,动态随机存取存储器206上存在内容;
图10A、10B以及10C图解该修整位元总表TBM一位元的"1"至"0"翻转;
图11图解LBA 10240(5MB)起始的12KB写入如何被回应;
图12A、12B、12C根据本发明一种实施方式图解表格重建机制;
图13根据本发明一种实施方式图解修整指令(trim command)处理方法;
图14为流程图,根据本发明一种实施方式图解如何根据该修整位元总表TBM背景更新该主机-快闪存储器映射表H2F;
图15为流程图,根据本发明一种实施方式图解如何回应主机208发出的写入指令;以及
图16为流程图,根据本发明一种实施方式图解如何一复电程序。
符号说明
200~数据储存装置;
202~快闪存储器;
204~控制器;
206~动态随机存取存储器(DRAM);
208~主机;
210~主动区块A_Blk的闲置区域;
302…310~修整逻辑地址范围分类区间;
402、404、502、602、604、702、802、804、1002、1004、1102、1104、1106~快取区Data_Cache的储存区间;
1202~一串修整资讯旗标;
1204~一串储存资讯;
A_Blk~主动区块;
Blk~区块;
Data_Cache~快取区;
GHP0、GHP1、GHP511、GHP0x100、GHP0x17F、GHP0xC00000、GHP0xC0007F、GHP0xC00080~全域主机页编号的映射资讯;
H2F~主机-快闪存储器映射表;
H2F_G0、H2F_G48、H2F_G#~映射子表;
Info_Blk~***资讯区块;
S1302…S1314、S1402…S1410、S1502…S1510、S1602…S1618~步骤;
Spare_Area~闲置区域;
TBM~修整位元总表;
TBM_G0、TBM_G1、TBM_G2、TBM_G3、TBM_G127~修整位元子表;
TIFM~修整资讯旗标表;
Trim_Code~修整代码;
Trim_Tag~修整标签。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照权利要求书界定。
非挥发式存储器可以是快闪存储器(Flash Memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式存储器(Resistive RAM,RRAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,提供长时间数据保存的储存媒体。以下特别以快闪存储器为例进行讨论。
现今数据储存装置常以快闪存储器为储存媒体,实现记忆卡(Memory Card)、通用串行总线闪存装置(USB Flash Device)、固态硬碟(SSD)…等产品。有一种应用是采多晶片封装、将快闪存储器与其控制器包装在一起─称为嵌入式快闪存储器模组(如eMMC)。
以快闪存储器为储存媒体的数据储存装置可应用于多种电子装置中。所述电子装置包括智慧型手机、穿戴装置、平板电脑、虚拟实境设备…等。电子装置的运算模块可视为主机(Host),操作所使用的数据储存装置,以存取其中快闪存储器。
以快闪存储器为储存媒体的数据储存装置也可用于建构数据中心。例如,伺服器可操作固态硬碟(SSD)阵列形成数据中心。伺服器即可视为主机,操作所连结的固态硬碟,以存取其中快闪存储器。
快闪存储器有其特殊的储存特性,以下叙述之。
主机(Host)端是以逻辑地址(例如,逻辑区块地址LBA或全域主机页编号GHP…等)来区别数据。至于数据实际储存在快闪存储器何处,则是以映射方式管理。
快闪存储器的物理空间是划分为多个区块(Blocks)配置使用。图1图解快闪存储器中区块Blk的结构。
区块Blk包括多个页面(Pages),例如,页面0…页面255。各页面包括多个区段(Sectors),例如32个区段。每一区段可储存512B长度的使用者数据;一页面可供应16KB储存空间。一种实施方式是根据页面编号─由低编号至高编号─循序使用一区块(Blk)的储存空间。或者,某些实施方式使用的是数据吞吐量大幅提升的多通道技术,是将不同通道存取的区块视为一个超级区块(Super Block),将不同通道之间的页面视为超级页面(SuperPage)。多通道技术可根据超级页面编号─由低编号至高编号─循序使用一超级区块的储存空间。以下讨论所指区块也可以是超级区块。
一种实施方式中,一区段(512B)可对应一个逻辑区块地址LBA。以4KB数据管理模式为例,八个连续区段组成的4KB空间为一数据管理单元,对应八个连续逻辑区块地址LBAs的数据储存,即对应一个全域主机页编号GHP。一页面的四段数据管理单元(共16KB)可对应四个全域主机页编号GHPs。如图1所示,区块Blk包括一闲置区域(spare area)Spare_Area,由各页末端闲置空间组成,其中可标注对应页面的四段数据管理单元所对应的四个全域主机页编号GHPs。一种实施方式是在闲置区域Spare_Area为各段4KB数据管理单元规划4B的全域主机页编号GHP栏位(GHP entry)。除了载于该闲置区域Spare_Area,整个区块Blk空间所映射的全域主机页编号GHPs也可编排为区块结尾资讯(end-of-block information,简称EoB),载于该区块Blk最末的页面255。闲置区域Spare_Area、或区块结尾资讯(EoB)的全域主机页编号GHPs记录就是用于追踪物理空间以及逻辑地址之间复杂的映射关系。
特别是,快闪存储器有一项重要特性,就是同样逻辑地址的数据更新并非覆写至旧数据的储存空间。新版本的数据须写入空白的空间。旧空间的内容无效。一区块可能仅零星留存有效数据。由于快闪存储器的储存空间需抹除(erase)后方能再次使用,备用区块逐渐消耗。备用区块数量不足时(如,低于阀值),垃圾回收(Garbage Collection)需求产生。一区块留存的零星有效数据经垃圾回收集中到其他空间。徒留无效数据的区块则抹除释出,拉升备用区块数量,确保快闪存储器的正常使用。垃圾回收也可能使得同区块内容的逻辑顺序更跳跃。
由前述内容可知,快闪存储器的空间配置相当复杂。一种实施方式是除了维护前述物理至逻辑映射的资讯外(例如,为各4KB数据管理单元所储存的4B全域主机页编号GHP),还反向建立一主机-装置映射表;如,一主机-快闪存储器映射表(host-to-flashmapping table,H2F映射表),显示主机操作用的全域主机页编号GHP是映射到快闪存储器哪些实体地址。
然而,随着制程进步,快闪存储器尺寸越来越大。4TB的快闪存储器,其主机-快闪存储器映射表H2F会达4GB。8TB的快闪存储器,其主机-快闪存储器映射表H2F会达8GB。过分庞大的主机-快闪存储器映射表H2F不容易动态管理。
一种解决方案是将主机-快闪存储器映射表H2F切分为较小尺寸的映射子表,例如,对应不同逻辑地址群组G#(#为编号)的映射子表H2F_G#。被呼叫到的映射子表H2F_G#才载出参考或更新。相较于完整的主机-快闪存储器映射表H2F,映射子表H2F_G#的动态更新只耗费少量***资源。
本发明特别讨论快闪存储器的修整(trim)操作。修整操作是用于无效所指定的逻辑地址区间。由于修整的逻辑地址区间常常尺寸可观,涉及数量庞大的映射子表H2F_G#更新(载出填入虚置映射数据),非常耗时。本发明提出一种新的修整方案,使得该主机-快闪存储器映射表H2F可部分在修整完成后,再以背景方式更新。以下讨论之。
图2图解根据本发明一种实施方式所实现的一数据储存装置200,包括一快闪存储器202、一控制器204以及一动态随机存取存储器(DRAM)206。主机208透过控制器204操作快闪存储器202。数据储存装置200内部也可经控制器204发动快闪存储器202的最佳化操作;例如,整理快闪存储器202空间,使其发挥最大储存效能。控制器204进行运算时是以动态随机存取存储器206暂存数据。动态随机存取存储器206也可以其他暂存存储器取代,如静态随机存取存储器SRAM,或其他控制器204得以高速存取的储存空间。
动态随机存取存储器206有多种规划,包括提供快取区Data_Cache,将数据收集成数据管理单元4KB大小后,再一一冲至(flush)快闪存储器202的主动区块A_Blk中。主动区块A_Blk是选自闲置区块,待完成写入则视为数据区块。完整的主机-快闪存储器映射表H2F一般保存在快闪存储器202的***资讯区块Info_Blk。数据自快取区Data_Cache冲至主动区块A_Blk时,相关的映射子表H2F_G#自快闪存储器202载出修正,再回存快闪存储器202更新总表H2F。传统修整也包括映射子表H2F_G#的载出修正以及回存。但大量修整涉及到多个映射子表H2F_G#更新,非常耗时。本发明提出替代方案。根据主机208发出的一修整指令(trim command),控制器204编写该快取区Data_Cache快取一修整标签Trim_Tag,反映修整状况,使修整状况也会冲至主动区块A_Blk作非挥发式储存。修整标签Trim_Tag注明主机-快闪存储器映射表H2F还有哪些部分没有随着修整指令更新。控制器204可以在填写指令完成伫列(completion queue)回报主机208修整指令完成后,再找机会,根据修整标签Trim_Tag,将映射子表H2F_G#一一载出更新,符合修整需求。如此一来,控制器204不会被修整指令困住。数据储存装置200效能显著提升。
为了帮助解读该修整标签Trim_Tag,控制器204还在该动态随机存取存储器206上维护修整资讯旗标表TIFM、修整代号Trim_Code、以及修整位元总表TBM。修整资讯旗标表TIFM以及修整代号Trim_Code的内容也会冲至主动区块A_Blk的闲置区域210作非挥发式储存,后续若有复电重建需求,就可以根据闲置区域210解读出快闪存储器202相对页面是储存修整标签Trim_Tag。修整位元总表TBM是以简单位元方式标注主机-快闪存储器映射表H2F中未同步处,使控制器204正确回复主机208读、写指令。
本发明将修整分为三种类型:大量修整;中等长度修整;以及少量修整。大量修整对齐一第一长度的分界、且为该第一长度的N倍,N为正整数。中等长度修整不超过该第一长度,且对齐一第二长度的分界。少量修整短于该第二长度。一种实施方式中,映射子表H2F_G#管理的逻辑地址长度即该第一长度,例如2MB。一种实施方式中,数据管理单元尺寸(即快取区Data_Cache各储存格尺寸)即该第二长度,例如4KB。三种尺寸的修整技术不同。少量修整是直接填虚置数据(dummy data)代表该段逻辑地址区间已修整。中等长度修整是快取起始逻辑地址以及长度。大量修整是快取该修整位元总表TBM的相关部分。
以下以逻辑区块地址LBA 5~LBA 100664323的修整为例,讨论本发明控制器204的操作细节。
图3图解修整的分类。主机208对逻辑区块地址LBA 5~LBA 100664323发出修整指令。控制器204分类该修整指令指定的修整范围LBA 5~LBA 100664323,将之分为区间302、304、306、308以及310。区间306为大量修整,位于逻辑区块地址LBA4096~LBA 100663295,对齐2MB分界,尽可能的在整体修整范围中,切出2MB倍数的最大修整。区间306之前包括:小于4KB的区间302,位于逻辑区块地址LBA 5~LBA 7,对应首位少量修整;以及对齐4KB分界、但不足2MB的区间304,位于逻辑区块地址LBA 8~LBA 4095,对应首位中等长度修整。区间306之后包括:对齐4KB分界但不足2MB的区间308,位于逻辑区块地址LBA 100663296~LBA100664319,对应末位中等长度修整;以及小于4KB的区间310,位于逻辑区块地址LBA100664320~LBA100664323,对应末位少量修整。
图4图解首位少量修整(302),其中修整逻辑区块地址LBA 5~LBA7,包括:步骤1,填写4KB内容进快取区Data_Cache;以及,步骤2,更新主机-快闪存储器映射表H2F。
步骤1,控制器204将逻辑区块地址LBA 0~LBA 4(不修整区间)的原本数据填入快取区Data_Cache的区间402,并对应要修整的逻辑区块地址LBA 5~LBA 7填写虚置数据(dummy data例如,零)至快取区Data_Cache的区间404。区间402中关于逻辑区块地址LBA0~LBA 4的2.5KB不修整数据、以及区间404中1.5KB的虚置数据组合成4KB数据,符合4KB数据管理单元,由快取区Data_Cache一个储存格快取。
步骤2,控制器204在动态随机存储器206上更新逻辑区块地址LBA 0~LBA 7(即GHP 0)对应的映射子表H2F_G0,以更新该主机-快闪存储器映射表H2F。控制器204将全域主机页编号GHP 0的映射数据指向该快取区Data_Cache上述区间402以及404组成的该4KB储存格。如此一来,全域主机页编号GHP 0的映射绑定此4KB内容。虚置数据代表逻辑区块地址LBA 5~LBA 7的修整状态。对应该快取区Data_Cache的多个储存格,控制器204会在动态随机存取存储器206上还维护一储存资讯表(未绘制在此图),在对应储存格快取的是使用者数据时,记录一逻辑地址;此例即记录全域主机编号GHP 0,将与快取区Data_Cache储存格内容一起冲至主动区块A_Blk作为储存资讯,例如,用作日后主机-快闪存储器映射表H2F重建。后面讨论的应用中,快取区Data_Cache储存格储存的可以不是使用者资讯,而是修整资讯,则该储存资讯表可对应储存其他内容,例如:修整代号。
图5图解首位中等长度修整(304),其中修整逻辑区块地址LBA 8~LBA 4095,包括:步骤1,更新主机-快闪存储器映射表H2F;步骤2,编写修整资讯旗标表TIFM、以及修整代号Trim_Code;以及,步骤3,将修整资讯填入快取区Data_Cache。
步骤1,控制器204在动态随机存储器206上更新逻辑区块地址LBA 8~LBA 4095(即GHP 1~GHP 511)对应的映射子表H2F_G0,以更新该主机-快闪存储器映射表H2F。控制器204填入虚置映射数据(如,零)作为全域主机页编号GHP 1~GHP 511的映射数据。不同于少量修整是填充虚置数据,中等长度数据修整是填充虚置映射数据。
步骤2,控制器204编写修整资讯旗标表TIFM、以及修整代号Trim_Code。修整资讯旗标表TIFM各位元对应该快取区Data_Cache一个4KB储存格。修整代号Trim_Code则是填入前述储存资讯表中。接续在区间404后的4KB储存格所对应的修整资讯旗标表TIFM位元设立为"1",表示该储存格4KB内容要解读为修整资讯,不可当使用者数据解读。控制器204是在上述储存资讯表对应填写4B的修整代号Trim_Code,包括:2B的数据"0xAAAA";以及2B的虚置代号(例如全零)。此实施方式中,修整代号Trim_Code是以2B编写。快取区Data_Cache是以切半的储存格,用2KB空间储存修整资讯。2KB"0xAAAA"代表2KB区间502所填写的修整资讯是中等长度修整的起始逻辑地址以及长度。
步骤3,控制器204将修整资讯填入快取区Data_Cache,在2KB区间502中填入起始逻辑地址GHP 1以及修整长度511,注明修整范围为GHP 1~GHP 511,即首位中等长度修整(304)要求修整的逻辑区块地址LBA 8~LBA 4095。如图所示,2KB区间502其他未使用到的地方是填入虚置数据。
大量修整(306)则用到修整位元总表(trim bit map,TBM),其中每1位元对应逻辑空间上2MB长度;"1"代表修整。4TB容量的装置需建构256KB(=4TB/2MB)的修整位元总表TBM。如此庞大的修整位元总表TBM还可以2KB为单位分组,分为128个修整位元子表TBM_G#(#为子表编号)。完整256KB修整位元总表TBM可载于动态随机存取存储器206上动态管理。但写入快取区Data_Cache作为修整资讯冲至主动区块A_Blk的可以只是修整位元子表TBM_G#。
图6A以及图6B图解大量修整(306),其中修整逻辑区块地址LBA 4096~LBA100663295,包括:步骤1,更新修整位元总表TBM;步骤2,编写修整资讯旗标表TIFM、以及修整代号Trim_Code;以及,步骤3,将修整资讯填入快取区Data_Cache。
步骤1,控制器204对动态随机存储器206上暂存的256KB修整位元总表TBM进行更新。逻辑区块地址LBA 4096~LBA100663295即LBA 2MB~49152MB,对应修整位元总表TBM中的位元1~24596,属修整位元总表TBM前3KB的内容。如图所示,控制器204将修整位元总表TBM中的位元1~24596翻成"1",其中涉及两个修整位元子表:TBM_G0(第一段2KB内容);以及TBM_G1(第二段2KB内容)。
步骤2,控制器204编写修整资讯旗标表TIFM、以及修整代号Trim_Code。控制器204是规划修整位元子表TBM_G0(第一段2KB内容)、以及TBM_G1(第二段2KB内容)分别由快取区Data_Cache的2KB区间602、以及2KB区间604快取。区间602所属该4KB空间(包括区间502以及602)早已由修整资讯旗标表TIFM中对应位元标示("1")。控制器204在此步骤是对接续4KB快取空间(包括区间604)进行标示,使修整资讯旗标表TIFM中对应位元也为"1"。控制器204编写修整代号Trim_Code。对应区间502的0xAAAA之后是对应区间602填写一子表编号0x0000(为修整位元子表TBM_G0的编号),再对应区间604填写一子表编号0x0001(为修整位元子表TBM_G1的编号)。
步骤3,控制器204将修整资讯填入快取区Data_Cache,在2KB区间602填入修整位元子表TBM_G0,并在2KB区间604填入修整位元子表TBM_G1。
图6B图解填入快取区Data_Cache区间602、604的修整位元子表TBM_G0、TBM_G1。2KB的修整位元子表TBM_G0中,只有第一个位元(对应首位少量、以及中等长度修整已经处理的GHP 0~GHP 511)为零,其余位元都是1。2KB的修整位元子表TBM_G1中,头1KB位元为1,其余位元都是0。逻辑区块地址范围LBA 2MB~49152MB即(LBA4096~LBA100663295)被修整。
大量修整(306)后,控制器204进行末位中等长度修整(308)。随后,控制器204进行末位少量修整(310)。
图7图解末位中等长度修整(308)。修整逻辑区块地址LBA 100663296~LBA100664319,对应全域主机页编号GHP 0xC00000~GHP 0xC0007F,技术同首位中等长度修整(304)。
步骤1,控制器204在动态随机存储器206上更新逻辑区块地址LBA 100663296~LBA 100664319(即GHP 0xC00000~GHP 0xC0007F)对应的映射子表H2F_G48,以更新该主机-快闪存储器映射表H2F。控制器204填入虚置映射数据作为全域主机页编号GHP0xC00000~GHP 0xC0007F的映射数据。
步骤2,控制器204编写修整资讯旗标表TIFM、以及修整代号Trim_Code。快取区Data_Cache上,2KB的区间702对应末位中等长度修整(308)。区间702所属该4KB空间(包括区间604以及702)早已由修整资讯旗标表TIFM中对应位元标示("1"),故此步骤没有变动之。至于修整代号Trim_Code,在相应区间604的修整位元子表TBM_G1编号0x0001之后,控制器204相应区间702填上"0xAAAA",代表2KB区间702所快取的是中等长度修整的修整资讯。
步骤3,控制器204将修整资讯填入快取区Data_Cache,在2KB区间702中填入起始逻辑地址GHP0xC0000以及修整长度0x80,注明修整范围为GHP C0000~GHP 0xC0007F,即末位中等长度修整(308)要求修整的逻辑区块地址LBA 100663296~LBA 100664319。
图8图解末位少量修整(310),其中修整逻辑区块地址LBA 100664320~LBA100664323,对应全域主机页编号GHP 0xC00080。技术同首位少量修整(302)。
步骤1,控制器204对应修整逻辑区块地址范围LBA100664320~LBA 100664323填写虚置数据至快取区Data_Cache的区间802,并将逻辑地址LBA 100664324~LBA100664327(不修整区间)的原本数据填入快取区Data_Cache的区间804。区间802的2KB虚置数据、以及区间804中关于逻辑地址LBA 100664324~LBA 100664327的2KB数据组合成4KB数据,符合4KB数据管理单元,由快取区Data_Cache一个储存格快取。
步骤2,控制器204在动态随机存储器206上更新逻辑区块地址LBA 100664320~LBA 100664327(即GHP 0xC00080)对应的映射子表H2F_G48,以更新该主机-快闪存储器映射表H2F。如此一来,全域主机页编号GHP 0xC00080的映射绑定此4KB内容。虚置数据代表逻辑区块地址LBA 100664320~LBA 100664323的修整状态。
图9整理LBA 5~LBA 100664323修整指令执行后,动态随机存取存储器206上存在内容。
快取区Data_Cache上,修整标签Trim_Tag占4个储存格。区间402以及404相应首位少量修整(302),为原始数据(LBA 0~LBA4)以及虚置数据结合的4KB内容。区间502占2KB,相应首位中等长度修整(304),所载为起始逻辑地址GHP 1以及长度511。区间602以及604各占2KB,相应大量修等(306),所载为修整位元子表TBM_G0以及TBM_G1。区间702占2KB,相应末位中等长度修整(308),所载为起始逻辑地址GHP 0xC00000以及修整长度0x80。区间802以及804相应末位少量修整(310),为虚置数据以及LBA 100664324~LBA 100664327原始数据结合的4KB内容。
相应该修整标签Trim_Tag,修整资讯旗标表TIFM载有四个位元"0"、"1"、"1"、"0"。中间的两个"1"使得储存资讯表上对应的8B全域主机页编号GHP#储存区域转而储存修整代号Trim_Code,为[0xAAAA;0x0000;0x0001;0xAAAA]。
至于主机-快闪存储器映射表H2F,动态随机存取存储器206上只载有最末少量修整(310)时处理到的映射子表H2F_G48。但结合已封存到***资讯区块Info_Blk的主机-快闪存储器映射表H2F,可知前述修整过程中,映射资讯仅有部分更新,包括:GHP0指向区间402以及404所在4KB空间;GHP1~GHP511、GHP0xC0000~0xC0007F填虚置映射数据;且GHP0xC00080指向区间802以及804所在4KB空间。未来得及更新的映射资讯载明在修整位元总表TBM。
如图所示,修整位元总表TBM则在前3KB处,标示出LBA 2M~49152MB的已修整状况,弥补主机-快闪存储器映射表H2F未同步更新的部分。
一种实施方式中,主机208发出读取要求时,控制器204可根据主机208要求读取的逻辑区块地址区间查询该修整位元总表TBM。"1"代表对应的2MB已修整。若为"0",控制器204需再查询该主机-快闪存储器映射表H2F。虚置映射数据代表该段空间已修整。若指向虚置数据(如404、802),其解读同修整空间。
图示占据4个4KB快取储存格的修整标签Trim_Tag,需与其相应的修整资讯旗标[0,1,1,0]、以及8B的修整代号Trim_Code([0xAAAA,0x0000,0x0001,0xAAAA])冲(flush)至快闪存储器202主动区块A_Blk做非挥发式储存,以应付非预期断电后,于复电程序重建修整状况的需求。修整标签Trim_Tag可写入一页的数据区。修整代号Trim_Code([0xAAAA,0x0000,0x0001,0xAAAA])可以该页的闲置区域210中,原本规划来储存映射的全域主机页编号GHP#的地方。修整资讯旗标[0,1,1,0]可在闲置区域210中另外储存,也可另外编码结合在修整代号Trim_Code中。
以下讨论控制器204冗闲时,如何完成主机-快闪存储器映射表H2F的更新。主机-快闪存储器映射表H2F更新会一并维护快闪存储器202各区块的一有效页数(valid pagecount)表。即使以修整位元总表TBM暂时应付修整指令,修整对有效页数表的影响也能在控制器204冗闲时反应在有效页数表上。
一种实施方式中,控制器204将该修整位元总表TBM的"1"值逐位元翻成"0"。每位元翻转对应2MB,是以前述中等长度修整技术(图5或7),将此2MB的修整反应在对应的映射子表H2F_G#、以及快取区Data_Cache上,并以前述大量修整区间的修整技术(图6A、6B),将有逐位元翻转的修整位元子表TBM_G#一一快取于快取区Data_Cache。
图10A、10B以及10C图解该修整位元总表TBM一位元的"1"至"0"翻转。
图10A显示翻转的目标位元,即目标修整位元子表TBM_G0头一个"1"位元,将之翻成"0",即目标修整GHP 512~GHP 1023。
图10B采用前述中等长度修整技术(图5或7),将目标位元相应的2MB目标修整(GHP512~GHP 1023)更新至该主机-快闪存储器映射表H2F,并包括快取区Data_Cache、修整资讯旗标表TIFM、以及修整代号Trim_Code的编写。
步骤1,控制器204在动态随机存储器206上更新该2MB目标修整(GHP 512~GHP1023)对应的映射子表H2F_G1,以更新该主机-快闪存储器映射表H2F。控制器204填入虚置映射数据(如,零)作为全域主机页编号GHP 512~GHP 1023的映射数据。
步骤2,控制器204编写修整资讯旗标表TIFM、以及修整代号Trim_Code。修整资讯旗标表TIFM的一位元设定"1",标示此次目标位元翻转会使用到的快闪区Data_Cache储存格。控制器204是规划快取区Data_Cache的2KB区间1002(半个储存格)储存此目标修整(GHP512~GHP 1023)的起始逻辑地址GHP 512以及长度512。对应的4B修整代号Trim_Code即以"0xAAAA"指示区间1002内容的解读方式。剩余2B修整代号Trim_Code则暂填虚置数据。
步骤3,对应"0xAAAA"修整代号,控制器204将目标修整(GHP 512~GHP 1023)起始逻辑地址GHP 512以及长度512填入快取区Data_Cache的2KB半个储存格1002。
图10C采用前述大量区间修整技术(图6A、6B),将目标位元已翻转的目标修整位元子表TBM_G0载入快取区Data_Cache。
步骤1,控制器204对动态随机存储器206上暂存的256KB的修整位元总表TBM进行更新。即第二位元翻"0"。
步骤2,控制器204编写修整资讯旗标表TIFM、以及修整代号Trim_Code。控制器204是规划区间1004快取该目标修整位元子表TBM_G0。区间1004所属该4KB空间(包括区间1002以及1004)早已由修整资讯旗标表TIFM中对应位元标示("1"),此处不再调整。但该修整代号Trim_Code中,控制器204在对应区间1002的0xAAAA之后的2B填写该目标修整位元子表TBM_G0的目标子表编号0x0000。
步骤3,控制器204在2KB区间1004中填入最新版本的该目标修整位元子表TBM_G0。
整理之,控制器204是在填写一指令完成伫列(completion queue)回报主机208一第一指令完成后,但尚未自一指令伫列(command queue)获得主机208发出的一第二指令时,利用此闲冗区间,逐位元将修整位元总表TBM状况更新到主机-快闪存储器映射表H2F。每位元翻转指涉及一个映射子表H2F_G#更新,不会过度耗时。
以下更讨论主机208的写入指令。倘若要求写入的逻辑地址是由该修整位元总表TBM标示成已修整,控制器204需要以前述修整位元总表TBM翻转技术更新该主机-快闪存储器映射表H2F(图10A~10C),再进行写入动作。
图11图解LBA 10240(5MB)起始的12KB写入如何被回应。
快取区Data_Cache以2KB区间1102以及2KB区间1104反映该修整位元总表TBM相应位元的翻转。此例中,该修整位元总表TBM的第三个位元(对应5MB,属修整位元子表TBM_G0)为翻转的目标位元,对应2MB目标修整GHP 1024~1535,其映射资讯属映射子表H2F_G3。控制器204将映射子表H2F_G3为全域主机页GHP 1024~1535全数填上虚置映射数据,并在快取区Data_Cache半个储存格的2KB空间1102储存目标修整GHP 1024~1535的起始逻辑地址GHP 1024、以及长度512。随后,控制器204翻转该修整位元总表TBM,并将翻转后的该修整位元子表TBM_G0填入储存格1104。同前述技术,虽未绘制在图中,但对应区间1102、1104的填写,控制器204还将修整资讯旗标表TIFM对应位元设立为"1",且修整代号Trim_Code为[0xAAAA,0x0000]。
映射子表H2F_G3反映出GHP 1024~1535修整状况后,控制器204就可以安心进行其上12KB的使用者数据写入。如图所示,控制器204将12KB写入数据快取于区间1106所标示的三个储存格。此时,本全为虚置映射数据的映射子表H2F_G3,其中全域主机页编号GHP1279~1281会改成指向区间1106。全域主机页编号GHP 1024~1278、以及GHP 1282~1535的修整状态仍可由其虚置映射资讯观察而得。
一种实施方式中,非预期断电事件发生时,为了善用装置电力,控制器204可能只会挽救动态随机存取存储器206部分内容,例如,只将快取区Data_Cache内容、快取区Data_Cache各储存格对应资讯(包括标示逻辑地址、或修整代号的各储存格储存资讯、以及修整资讯旗标表TIFM)冲至快闪存储器202。修整位元总表TBM会遗失。主机-快闪存储器映射表H2F部分内容可能也来不及更新。因此,非预期断电的复电(sudden power-off recovery,SPOR)需要一个重建机制,重建修整位元总表TBM、以及主机-快闪存储器映射表H2F。
图12A、12B、12C根据本发明一种实施方式图解表格重建机制。
参阅图12A,复电时,控制器204扫描快闪存储器202(例如,根据***资讯区块Info_Blk所载的区块使用顺序),于各区块的区块结尾资讯EoB中收集到一串修整资讯旗标1202。各位元对应所属区块相对位置的4KB数据、以及该4KB数据的4B储存资讯(为全域主机页编号GHP#、或是修整代号Trim_Code)。位元值"0",则对应的该4KB数据被解读为使用者数据,对应的4B储存资讯乃映射的全域主机页编号GHP#。位元值"1",则对应的该4KB数据被解读为修整资讯,对应的4B储存资讯乃修整代号Trim_Code。该串修整资讯旗标1202对应五段各为4KB的数据,且对应的五段各为4B的储存资讯1204。储存资讯1204也可以是自区块结尾资讯EoB取得。
如图所示,该串修整资讯旗标1202中,第一个"1"值对应储存资讯1204内的4B储存资讯[0xAAAA,0X0003],表示其在区块中对应的4KB数据乃两种类型的修整资讯。"0xAAAA"表示前端2KB数据乃一中等长度修整的起始逻辑地址、以及长度。非"0xAAAA"的"0x0003"则应当解读为一子表编号,表示后端2KB数据乃一大量修整的修整位元子表TBM_G3。该串修整资讯旗标1202另有第二个"1"值,对应储存资讯1204内的4B储存资讯[0xAAAA,虚置数据],表示其在区块中对应的4KB数据只有前端2KB数据有意义。"0xAAAA"表示前端2KB数据乃一中等长度修整的起始逻辑地址、以及长度。以下特别讨论该串修整资讯旗标1202中第一个"1"值所涉及的表格重建。
参阅图12B,根据"0xAAAA",区块中对应的2KB数据乃一中等长度修整的起始逻辑地址GHP0x100、以及长度0x80。控制器204在动态随机存取存储器206上,将相应的映射子表H2F_G0载出,令全域主机页编号GHP0x100~GHP0x17F的映射数据都填虚置映射数据。因此,主机-快闪存储器映射表H2F更新,确实反映出全域主机页编号GHP0x100~GHP0x17F的修整状态。
参阅图12C,根据"0x0003",区块中对应的2KB数据乃一大量修整的修整位元子表TBM_G3。控制器204会将此2KB修整位元子表TBM_G3更新到动态随机存取存储器206上完整维护的修整位元总表TBM中,重建修整位元总表TBM。
图13根据本发明一种实施方式图解修整指令(trim command)处理方法。步骤S1302接收一修整指令。步骤S1304分类该修整范围(图3)。步骤S1306进行首位少量修整(图4),若不存在首位少量修整可跳过此步骤。步骤S1308进行首位中等长度修整(图5),若不存在首位中等长度修整可跳过此步骤。步骤S1310进行大量修整(图6A、6B),若不存在大量修整可跳过此步骤。步骤S1312进行末位中等长度修整(图7),若不存在末位中等长度修整可跳过此步骤。步骤S1314进行末位少量修整(图8),若不存在末位少量修整可跳过此步骤。各分类修整完毕后,该修整指令即完成。如,控制器204可回填指令完成伫列(completionqueue)告知主机208修整完成,控制器204可再接收主机208其他指令。如前述,流程中大量修整(S1310)并不会耗费资源在主机-快闪存储器映射表H2F更新上。控制器204以图13修整程序快速回应修整指令,进而执行主机208接续其他要求。
图13修整程序后,动态随机存取存储器206所维护的内容可如图9所示。关于主机208再发出的读取指令,控制器204会参考该修整位元总表TBM进行,避免漏掉尚未更新到主机-快闪存储器映射表H2F的修整状况。非预期断电时,控制器204会将修整标签Trim_Tag、TIFM中相应的修整资讯旗标、以及修整代号Trim_Code冲(flush)至快闪存储器202,以应付复电需求。
图14为流程图,根据本发明一种实施方式图解如何根据该修整位元总表TBM背景更新该主机-快闪存储器映射表H2F。
步骤S1402,对应一修整位元子表TBM_G#中一位元的"1"'"0"翻转,控制器204以中等长度修整更新该主机-快闪存储器映射表H2F(包括相应映射子表H2F_G#填写虚置映射数据、且将其起始逻辑地址以及长度快取于快取区Data_Cache)。步骤S1404,控制器204以大量修整将新版的该修整位元子表TBM_G#快取于该快取区Data_Cache。步骤S1406判断控制器204是否闲冗;例如,主机208塞入指令伫列(command queue)中的指令是否都执行完毕。空闲的控制器204可还在步骤S1408确定该修整位元总表TBM尚未完全被"1"'"0"翻转时,再次进行步骤S1402以及S1404。若控制器204有待应付的主机208指令,则进行步骤S1410回应主机208新发出的指令。
图15为流程图,根据本发明一种实施方式图解如何回应主机208发出的写入指令。
步骤S1502,控制器204接收一写入指令。步骤S1504,控制器204查询该修整位元总表TBM,确定该写入指令要求写入数据的逻辑地址是否被该修整位元总表TBM标注。若是标注在一修整位元子表TBM_G#的一位元Bit#,控制器204进行步骤S1506,对该修整位元子表TBM_G#的该位元Bit#作"1"'"0"翻转,其中以中等长度修整更新该主机-快闪存储器映射表H2F(包括相应映射子表H2F_G#填写虚置映射数据、且将其起始逻辑地址以及长度快取于快取区Data_Cache),再以大量修整将新版的该修整位元子表TBM_G#快取于该快取区Data_Cache。步骤S1508,控制器204将写入数据快取于该快取区Data_Cache。步骤S1510,控制器204更新主机-快闪存储器映射表H2F,将写入数据的映射资讯填为该快取区Data_Cache。以上步骤妥善应付大量修整后发生的少量写入。
图16为流程图,根据本发明一种实施方式图解如何一复电程序。
步骤S1602复电。步骤S1604,控制器204扫描快闪存储器202(例如,根据程序化顺序),获得一串修整资讯旗标。步骤S1606,控制器204判读该串修整资讯旗标其中一位元。若为"1",控制器204以步骤S1608更判读修整代号。若为"0xAAAA",控制器204以步骤S1610解读出一中等长度修整的起始逻辑地址以及修整长度,据以重建该主机-快闪存储器映射表H2F中对应部分(填虚置映射数据)。步骤S1608若判断出修整代号为一修整位元子表TBM_G#的子表编号,控制器204以步骤S1612解读出修整位元子表TBM_G#,据以重建该修整位元总表TBM。步骤S1614判别是否该修整资讯旗标对应的两个修整代号都完成判读。若否,控制器204再次进行步骤S1608。若是,控制器204以步骤S1616判断是否该串修整资讯旗标处理完毕。若否,控制器重回步骤S1606。若是,流程结束。
步骤S1606若判读一修整资讯旗标为"0",则进行步骤S1618,控制器204解读出4KB使用者数据对应的全域主机页编号GHP#,据以更新该主机-快闪存储器映射表H2F。
以上控制器204对快闪存储器202的操作设计也可以由其他结构实现。凡是根据前述概念执行修整者,都属于本发明欲保护范围。本发明还可以前述概念实现非挥发式存储器的控制方法。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当由权利要求书界定为准。
Claims (12)
1.一种数据储存装置,包括:
一非挥发式存储器;以及
耦接该非挥发式存储器的一控制器以及一暂存存储器,其中,该控制器是建构来在该暂存存储器上重建该非挥发式存储器的修整状况,
其中:
该控制器根据一程序化顺序扫描该非挥发式存储器,收集一串修整资讯旗标,据以解读自该非挥发式存储器扫描出的一串储存资讯为逻辑地址、或是修整代号;
该控制器根据解读出的逻辑地址重建一主机-装置映射表;
该控制器根据解读出的修整代号,判断该非挥发式存储器相应储存空间是储存中等长度修整的资讯、或大量修整的资讯;
根据中等长度修整的资讯,该控制器将虚置映射数据填入该主机-装置映射表;
根据大量修整的资讯,该控制器重建一修整位元总表,该修整位元总表各位元对应一第一长度的修整;
一笔中等长度修整不超过该第一长度,且对齐一第二长度的分界;且
一笔大量修整对齐该第一长度的分界、且为该第一长度的N倍,对应该修整位元总表的N个位元,N为正整数。
2.如权利要求1的数据储存装置,其特征在于:
一笔中等长度修整的资讯包括该笔中等长度修整的起始逻辑地址以及长度。
3.如权利要求2的数据储存装置,其特征在于:
上述修整代号为一中等长度修整代号时,该控制器判断该非挥发式存储器相应储存空间是储存一笔中等长度修整的起始逻辑地址以及长度。
4.如权利要求3的数据储存装置,其特征在于:
该修整位元总表包括多个修整位元子表;
上述N个位元对应到这些修整位元子表其中M个修整位元子表,M为正整数;且
该笔大量修整的资讯包括上述M个修整位元子表。
5.如权利要求4的数据储存装置,其特征在于:
上述修整代号为上述M个修整位元子表的M个子表编号时,该控制器判断该非挥发式存储器相应储存空间是储存上述M个修整位元子表。
6.如权利要求5的数据储存装置,其特征在于:
该主机-装置映射表包括多个映射子表;且
各映射子表以该第二长度为单位,管理该第一长度的逻辑地址区间的映射数据。
7.一种非挥发式存储器控制方法,包括:
在一暂存存储器上重建一非挥发式存储器的修整状况;
根据一程序化顺序扫描该非挥发式存储器,收集一串修整资讯旗标,据以解读自该非挥发式存储器扫描出的一串储存资讯为逻辑地址、或是修整代号;
根据解读出的逻辑地址重建一主机-装置映射表;
根据解读出的修整代号,判断该非挥发式存储器相应储存空间是储存中等长度修整的资讯、或大量修整的资讯;
根据中等长度修整的资讯,将虚置映射数据填入该主机-装置映射表;且
根据大量修整的资讯,重建一修整位元总表,该修整位元总表各位元对应一第一长度的修整;其中一笔中等长度修整不超过该第一长度,且对齐一第二长度的分界;且
一笔大量修整对齐该第一长度的分界、且为该第一长度的N倍,对应该修整位元总表的N个位元,N为正整数。
8.如权利要求7的非挥发式存储器控制方法,其特征在于:
一笔中等长度修整的资讯包括该笔中等长度修整的起始逻辑地址以及长度。
9.如权利要求8的非挥发式存储器控制方法,其特征在于,还包括:
上述修整代号为一中等长度修整代号时,判断该非挥发式存储器相应储存空间是储存一笔中等长度修整的起始逻辑地址以及长度。
10.如权利要求9的非挥发式存储器控制方法,其特征在于:
该修整位元总表包括多个修整位元子表;
上述N个位元对应到这些修整位元子表其中M个修整位元子表,M为正整数;且
该笔大量修整的资讯包括上述M个修整位元子表。
11.如权利要求10的非挥发式存储器控制方法,其特征在于,还包括:
上述修整代号为上述M个修整位元子表的M个子表编号时,判断该非挥发式存储器相应储存空间是储存上述M个修整位元子表。
12.如权利要求11的非挥发式存储器控制方法,其特征在于中:
该主机-装置映射表包括多个映射子表;且
各映射子表以该第二长度为单位,管理该第一长度的逻辑地址区间的映射数据。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962941936P | 2019-11-29 | 2019-11-29 | |
US62/941,936 | 2019-11-29 | ||
TW109117980 | 2020-05-29 | ||
TW109117980A TWI745987B (zh) | 2019-11-29 | 2020-05-29 | 資料儲存裝置以及非揮發式記憶體控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112885397A CN112885397A (zh) | 2021-06-01 |
CN112885397B true CN112885397B (zh) | 2024-04-02 |
Family
ID=76043008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011173409.5A Active CN112885397B (zh) | 2019-11-29 | 2020-10-28 | 数据储存装置以及非挥发式存储器控制方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11748023B2 (zh) |
CN (1) | CN112885397B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI423026B (zh) * | 2010-10-29 | 2014-01-11 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
CN108874300A (zh) * | 2017-05-11 | 2018-11-23 | 慧荣科技股份有限公司 | 数据储存装置以及其操作方法 |
CN109144886A (zh) * | 2017-06-27 | 2019-01-04 | 慧荣科技股份有限公司 | 数据储存装置 |
CN109271329A (zh) * | 2018-09-01 | 2019-01-25 | 苏州韦科韬信息技术有限公司 | 一种提高重建未映射表效率的方法 |
US10489289B1 (en) * | 2016-09-30 | 2019-11-26 | Amazon Technologies, Inc. | Physical media aware spacially coupled journaling and trim |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101824949B1 (ko) * | 2011-11-23 | 2018-02-05 | 삼성전자주식회사 | 플래시 메모리를 기반으로 하는 저장 장치 및 그것을 포함한 사용자 장치 |
US9274937B2 (en) | 2011-12-22 | 2016-03-01 | Longitude Enterprise Flash S.A.R.L. | Systems, methods, and interfaces for vector input/output operations |
US8949512B2 (en) * | 2012-02-17 | 2015-02-03 | Apple Inc. | Trim token journaling |
JP6725120B2 (ja) * | 2016-06-24 | 2020-07-15 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | データ処理方法、記憶装置、ソリッドステートディスク及び記憶システム |
US9927999B1 (en) * | 2016-09-09 | 2018-03-27 | Western Digital Technologies, Inc. | Trim management in solid state drives |
US10740251B2 (en) | 2017-01-20 | 2020-08-11 | Seagate Technology Llc | Hybrid drive translation layer |
CN108733577B (zh) | 2017-04-21 | 2021-10-22 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元及存储器存储装置 |
TWI634424B (zh) | 2017-05-08 | 2018-09-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
KR102567140B1 (ko) * | 2017-11-24 | 2023-08-16 | 삼성전자주식회사 | 데이터 관리 방법 및 이를 수행하는 저장 장치 |
TWI660271B (zh) * | 2018-04-24 | 2019-05-21 | 群聯電子股份有限公司 | 整理指令記錄方法、記憶體控制電路單元與記憶體儲存裝置 |
US20190369892A1 (en) * | 2018-05-31 | 2019-12-05 | Cnex Labs, Inc. | Method and Apparatus for Facilitating a Trim Process Using Auxiliary Tables |
US10909030B2 (en) * | 2018-09-11 | 2021-02-02 | Toshiba Memory Corporation | Enhanced trim command support for solid state drives |
US10942659B2 (en) * | 2019-06-03 | 2021-03-09 | International Business Machines Corporation | Persistent logical to virtual table |
KR20210027563A (ko) | 2019-08-28 | 2021-03-11 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
-
2020
- 2020-09-18 US US17/025,004 patent/US11748023B2/en active Active
- 2020-10-28 CN CN202011173409.5A patent/CN112885397B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI423026B (zh) * | 2010-10-29 | 2014-01-11 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
US10489289B1 (en) * | 2016-09-30 | 2019-11-26 | Amazon Technologies, Inc. | Physical media aware spacially coupled journaling and trim |
CN108874300A (zh) * | 2017-05-11 | 2018-11-23 | 慧荣科技股份有限公司 | 数据储存装置以及其操作方法 |
CN109144886A (zh) * | 2017-06-27 | 2019-01-04 | 慧荣科技股份有限公司 | 数据储存装置 |
CN109271329A (zh) * | 2018-09-01 | 2019-01-25 | 苏州韦科韬信息技术有限公司 | 一种提高重建未映射表效率的方法 |
Also Published As
Publication number | Publication date |
---|---|
US11748023B2 (en) | 2023-09-05 |
CN112885397A (zh) | 2021-06-01 |
US20210165598A1 (en) | 2021-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112882650B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
US9792067B2 (en) | Trim command processing in a solid state drive | |
CN100487672C (zh) | 用于分割一逻辑块的方法及设备 | |
CN112882649B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
KR100468880B1 (ko) | 불발성기억장치,불휘발성기억장치의제어방법및불휘발성기억장치를제어하는프로그램을기록한정보기록매체 | |
JP6210570B2 (ja) | ソリッドステートドライブにおける物理論理マッピングのための方法、装置及びシステム | |
US8386698B2 (en) | Data accessing method for flash memory and storage system and controller using the same | |
TWI272483B (en) | Non-volatile memory and method with block management system | |
TWI306263B (zh) | ||
US20140136753A1 (en) | Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive | |
US10606760B2 (en) | Nonvolatile memory devices and methods of controlling the same | |
CN109344088A (zh) | 固态驱动器中的原子写入命令支持 | |
KR20140084337A (ko) | 비휘발성 스토리지에 대한 셀프-저널링 및 계층적 일치성 | |
KR20070024504A (ko) | 기억 장치, 메모리 관리 방법 및 프로그램 | |
US11520696B2 (en) | Segregating map data among different die sets in a non-volatile memory | |
US11520698B2 (en) | Data storage device in a key-value storage architecture with data compression, and non-volatile memory control method | |
CN112130749B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
US6347355B1 (en) | Non-volatile storage, the controlling method, and information memory medium | |
CN107943710B (zh) | 存储器管理方法及使用所述方法的存储控制器 | |
TWI745987B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
CN112885397B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN111610929A (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN112527692B (zh) | 数据储存装置以及非挥发式存储器控制方法 |
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 |