CN109144886B - 数据储存装置 - Google Patents

数据储存装置 Download PDF

Info

Publication number
CN109144886B
CN109144886B CN201710646686.5A CN201710646686A CN109144886B CN 109144886 B CN109144886 B CN 109144886B CN 201710646686 A CN201710646686 A CN 201710646686A CN 109144886 B CN109144886 B CN 109144886B
Authority
CN
China
Prior art keywords
trimming
flash memory
space
groups
group
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
Application number
CN201710646686.5A
Other languages
English (en)
Other versions
CN109144886A (zh
Inventor
钟建众
李冠辉
黄逸昌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
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 Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN109144886A publication Critical patent/CN109144886A/zh
Application granted granted Critical
Publication of CN109144886B publication Critical patent/CN109144886B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • 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/7205Cleaning, compaction, garbage collection, erase control
    • 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/7206Reconfiguration of flash memory system
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及一种数据储存装置,包括快闪存储器以及快闪存储器控制器,操作该快闪存储器以储存数据,并储存映射表以记录多个逻辑地址与快闪存储器的多个物理地址的映射资讯,并且将映射表区分为多个群组;其中,部分群组划分为第一类空间修整群组,第一类空间修整群组的每一群组所记录的部分逻辑地址包含于空间修整指令,快闪存储器控制器对第一类空间修整群组进行空间修整。

Description

数据储存装置
技术领域
本发明有关于数据储存装置,特别有关于非挥发式存储器的空间修整(trim)。
背景技术
数据储存装置所采用的非挥发式存储器有多种形式─例如,快闪存储器(flashmemory)、磁阻式挥发性存储器(Magnetoresistive RAM)、铁电挥发性存储器(Ferroelectric RAM)、电阻式挥发性存储器(Resistive RAM)、自旋转移力矩挥发性存储器(Spin Transfer Torque-RAM, STT-RAM)…等,用于长时间数据保存。
数据储存装置的效能受限于非挥发式存储器的操作特性。本领域一项重要议题为提升数据储存装置的效能。
发明内容
本发明揭示一种整合型空间修整技术,使得当数据储存装置无法在一期限内依据主机的空间修整指令完成空间修整时,能够优先完成一部分的空间修整。然后,在不影响数据储存装置的正常运作下,完成另一部分的空间修整,使得主机可以顺利对该数据储存装置进行数据的存取。
本发明提供一种数据储存装置,包括快闪存储器以及快闪存储器控制器,操作快闪存储器以储存数据,并储存映射表以记录多个逻辑地址与快闪存储器的多个物理地址的映射资讯,并且将映射表区分为多个群组;其中,部分群组划分为第一类空间修整群组,第一类空间修整群组的每一群组所记录的部分逻辑地址包含于空间修整指令,快闪存储器控制器对第一类空间修整群组进行空间修整。另外,部分群组更划分为第二类空间修整群组,第二类空间修整群组的每一群组所记录的全部逻辑地址包含于空间修整指令。
本发明提供一种数据储存装置,包括:快闪存储器以及快闪存储器控制器,操作快闪存储器以储存数据,并储存映射表以记录多个逻辑地址与快闪存储器的多个物理地址的映射资讯,并且将映射表区分为多个群组,部分群组划分为第二类空间修整群组,第二类空间修整群组的每一群组所记录的全部逻辑地址包含于空间修整指令;其中,当执行垃圾回收程序时,如果来源区块的有效数据属于第二类空间修整群组的其中之一群组时,快闪存储器控制器对其中之一群组进行空间修整。
下文特举实施例,并配合附图,详细说明本发明内容。
附图说明
图1A以及图1B根据本发明一种实施方式图解一快闪存储器120的物理空间规划;
图2示意以逻辑地址(如,逻辑区块地址LBA或全域主机页GHP)为索引的映射表H2F;
图3举例说明一空间修整指令(trim command);
图4以方块图图解根据本发明一种实施方式实现的一数据储存装置100;
图5是根据本发明一种实施方式图解一对应空间修整指令的群组化的数据储存方式;
图6为流程图,根据本发明一种实施方式描述配合空间修整指令的数据储存方法;
图7为流程图,根据本发明另一种实施方式描述配合空间修整指令的数据储存方法;
图8为流程图,根据本发明另一种实施方式描述配合空间修整指令的数据储存方法;
图9为流程图,根据本发明另一种实施方式描述配合空间修整指令的数据储存方法。
符号说明
100~数据储存装置;
102~控制器;
110~微处理器;
111~数据处理模组;
122~快闪存储器控制器;
120~快闪存储器;
130~挥发性存储器;
(BLK#,U#)~(物理区块编号,储存单元编号) ;
BE~后端;
BLK#1、BLK#2、BLK#Z~物理区块;
DA~数据区域;
FE~前端;
G#0…G#4~群组;
H#3、H#4、H#5、H#6、H#7、H#H、H#K、H#L、H#M、H#N ~主机区块;
H2F~映射表;
H2F_H#1、H2F_H#2、H2F_H#N~主机区块映射表;
L#0…L#1280~逻辑地址;
S602…S918~步骤;
SA~备用区域;
U#i、U#(i+1)、U#(i+2)、U#(i+3)~储存单元。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照申请专利范围界定。
非挥发式存储器可以是快闪存储器(flash memory)、磁阻式挥发性存储器(Magnetoresistive RAM)、铁电挥发性存储器(Ferroelectric RAM)、电阻式存储器(Resistive RAM,RRAM)、自旋转移力矩挥发性存储器(Spin Transfer Torque-RAM, STT-RAM)…等具有长时间数据保存的存储器装置。以下特别以快闪存储器(flash memory)为例进行讨论。
现今数据储存装置常以快闪存储器为储存媒体,常用来实现记忆卡(memorycard)、通用串行总线闪存装置(USB flash device)、固态硬碟(SSD、NVME、M.2、U.2) …等产品。有一种应用是采多晶片封装、将快闪存储器与其控制器包装在一起─称为嵌入式快闪存储器模组(如eMMC)。
以快闪存储器为储存媒体的数据储存装置可应用于多种电子装置中。所述电子装置包括智慧型手机、穿戴装置、平板电脑、虚拟实境设备…等。电子装置的中央处理单元(CPU)可视为操作所述数据储存装置的一主机。
图1A以及图1B根据本发明一种实施方式图解一快闪存储器120的物理空间规划。如图1A所示,快闪存储器120的储存空间划分为多个区块(或称物理区块,physicalblocks)BLK#1、BLK#2…BLK#Z等,Z为正整数。各物理区块包括多个物理页(physicalpages),例如:256个物理页。
图1B详解物理页结构。每一物理页包括一数据区域(data area)DA、以及一备用区域(spare area)SA。一种实施方式中,数据区域DA的尺寸为16KB,数据区域DA可划分为多个储存单元U#i、U#(i+1)、U#(i+2)、U#(i+3),储存单元U#i、U#(i+1)、U#(i+2)、U#(i+3)各为4KB,各4KB储存单元对应1个或多个逻辑地址。备用区域SA是用来储存元数据(metadata),包括该物理页各储存单元U#i、U#(i+1)、U#(i+2)、U#(i+3)所储存的数据的逻辑地址、时间戳记(timestamp)、读取次数(read count)等。逻辑地址有多种形式,例如,以逻辑区块地址(Logical Block Address,简称LBA)、或全域主机页(Global Host Page,简称GHP)编排。
然而,备用区域SA记录的储存单元至逻辑地址映射关系并非一直有效。快闪存储器120有一种特殊的物理特性:其中数据的更新并非对同样空间作复写,而是将更新数据储存在闲置空间,且原空间的储存内容将转为无效。因应之,快闪存储器120的映射资讯需动态整理成映射表(如,显示逻辑地址至物理空间映射的映射表H2F)。
图2示意以逻辑地址(如,逻辑区块地址LBA或全域主机页GHP)为索引的映射表H2F,其中记录不同逻辑地址的数据是被储存至快闪存储器120哪一物理区块BLK#的哪一储存单元U#。因应庞大的储存空间,映射表H2F可更以主机区块(host block)为单位,对应主机区块H#1、H#2…H#Z细分为主机区块映射表H2F_H#1、H2F_H#2…H2F_H#Z,Z为正整数。
一种实施方式中,一主机区块映射表的长度为64KB(可储存于4个连续物理页中),用以记录8K个数据的映射关系。一主机区块映射表涉及的逻辑地址可为GPH#0~#8191、GPH#8192~#16383、GPH#16384~#24575、GPH#24576~#32767、或GPH#32768~#40959之类。这些主机区块映射表H2F_H#1、H2F_H#2…H2F_H#Z于更新后,可依序储存至特定的物理区块中,例如***资讯区块。一种实施方式中,为了加速主机区块映射表H2F_H的读取,主机区块映射表H2F_H#1、H2F_H#2…H2F_H#Z可以一指标列表管理,或以一高阶映射表(high-levelmapping table)来记录主机区块映射表H2F_H的编号以及主机区块映射表H2F_H所储存的物理地址的映射资讯。映射表H2F是数据储存装置操控快闪存储器120运作的重要依据。
空间修整指令(trim command)为一种增加数据储存装置的效能且符合快闪存储器120运作特性的指令。主机可发出空间修整指令至数据储存装置以通知某一或多个逻辑地址(下文中称为目标逻辑地址)可移除(即目标逻辑地址的数据已不再有效),数据储存装置会立即将某一或多个目标逻辑地址的记录自映射表H2F(或主机区块映射表H2F_H)中删除或修改。日后,这些目标逻辑地址的无效数据的物理空间可于垃圾回收(garbagecollection)程序时回收、再利用。
第3图举例说明一空间修整指令。一空间修整指令可有高达500笔的修整要求。图3所示实施例更示意每笔修整要求所对应的主机区块,依序涉及主机区块H#5、H#6、H#7、H#3、H#4、H#5、H#6、H#7、H#3、H#4…等。每一笔修整要求可指示一长度以及一起始逻辑地址,或是起始逻辑地址以及终点逻辑地址,以对应一逻辑地址段。映射表H2F中,修整要求所指示的逻辑地址段的映射资讯可移除,或者逻辑地址段所对应的物理地址被修改为一特定值,例如:0xFFFF或0x0000,以打断或移除该逻辑地址段中所有逻辑地址至该快闪存储器120的映射。
图4以方块图图解根据本发明一种实施方式实现的一数据储存装置100。数据储存装置100包括控制器102、快闪存储器120、以及挥发性存储器130。控制器102包括微处理器110、数据处理模组111、快闪存储器控制器122。详细而言,微处理器110以及数据处理模组111配置于控制器102的前端FE(front end),快闪存储器控制器122配置于控制器102的后端BE(back end)。前端FE负责数据储存装置100与主机200的沟通。后端BE负责控制快闪存储器120的运作,使得主机200可以对快闪存储器120进行数据的写入或读取。如此两阶层架构使得主机200以及数据储存装置之间的数据通讯被专责进行(前端FE),主机200与数据储存装置100之间的数据吞吐量(throughput)因而显著提升,更可降低前端FE以及后端BE除错的复杂度。
此外,主机200可透过一总线介面连结数据储存装置100A。主机200下达的符合NVMe规范的指令(以下称为外部指令)将由微处理器110排程,再交由后端BE处理。换言之,微处理器110藉由汇流排介面与主机200进行沟通,接收主机200所传送的数据10或外部指令。挥发性存储器130可用以暂存上述数据10或外部指令。微处理器110依优先权的设定或接收的先后顺序来对外部指令或是数据进行排程。微处理器110除了是符合NVMe规范之外,亦可以符合ATA(advanced technology attachment,先进技术附件)、PATA(ParallelATA)、SATA(Serial ATA),SCSI(Small Computer System Interface,小型电脑***介面SCSI)、eMMC或UFS等规范。
数据写入的流程为微处理器110经由数据处理模组111而传送数据10至快闪存储器控制器122。详细而言,数据处理模组111会对数据10进行加密、产生校正码(paritycode)、或随机化处理(randomization)。举例而言,上述加密机制包括进阶加密标准(Advanced Encryption Standard,AES)、或是RSA加密演算法。然后,数据处理模组111依加密后的数据10产生额外的校正码,此校正码可以提供加密后的数据10数据正确性的保护。上述校正机制包括CRC校正机制或是ECC校正机制。随机化处理(randomization)可使加密后的数据10以及校正码的值("0"或"1")的分布平均化。最后,快闪存储器控制器122将随机化处理后的数据10写入至快闪存储器120,并将数据10的逻辑地址以及物理地址储存至映射表H2F。
在一实施例中,快闪存储器控制器122可用以储存映射表H2F。主机200可发出空间修整指令至数据储存装置100以指示移除某一或多个目标逻辑地址,则数据储存装置100的快闪存储器控制器122直接或间接地将某一或多个目标逻辑地址自映射表H2F中移除或将目标逻辑地址所对应的目标物理地址修改成特定值,例如0xFFFF,以完成空间修整指令的执行。映射表H2F是对应主机200之空间修整指令可即时且动态地更新。
图5是根据本发明一种实施方式图解一对应空间修整指令的群组化的数据储存方式。在一实施例中,快闪存储器控制器122储存一映射表H2F,以记录主机200的逻辑地址与快闪存储器120的物理地址之间的映射资讯,并且将映射表H2F依据上述逻辑地址的顺序区分为多个空间修整群组G#0~G#N。如图5所示,映射表H2F记录了逻辑地址L#0~L#1279,共计1280笔记录,即1280笔逻辑地址与快闪存储器120的物理地址之间的映射资讯。快闪存储器控制器122依上述逻辑地址的顺序将映射表H2F区分为多个空间修整群组G#0~G#4。上述每个空间修整群组的大小较佳是固定的,例如1K Bytes。详细而言,4B大小用以记录一笔逻辑地址与快闪存储器120的物理地址之间的映射资讯。以逻辑地址的值作为判断,逻辑地址L#0~L#255属于空间修整群组G#0,逻辑地址L#256~L#511属于空间修整群组G#1,逻辑地址L#512~L#767属于空间修整群组G#2,逻辑地址L#768~L#1023属于空间修整群组G#3,逻辑地址L#1024~L#1079属于空间修整群组G#4。
然后,控制器120收到主机200所传送的空间修整指令,其中该空间修整指令包括多个个修整要求#1~#4。举例而言,在图5所示的实施例中,空间修整指令系涵盖了逻辑地址L#100~L#1150。空间修整指令使空间修整群组G#0与G#4(以下称为第一类空间修整群组)的一部分记录为无效,并且空间修整群组G#1~G#3的全部记录为无效(以下称为第二类空间修整群组)。换言之,上述空间修整指令涵盖了空间修整群组G#0与G#4的一部分、以及空间修整群组G#1~G#3的全部。其中,修整要求#1包括空间修整群组G#0的部分与群组G#1的全部,修整要求#2包括空间修整群组G#3的全部与群组G#4的部分,修整要求#3包括空间修整群组G#1和G#2的全部,修整要求#4包括空间修整群组G#2与G#3的部分。
在一实施例中,快闪存储器控制器122优先对部分无效的空间修整群组G#0与G#4进行空间修整。完成空间修整群组G#0与G#4的空间修整后,快闪存储器控制器122可先处理来自于主机200的指令,待指令完成后,或是主机200要求数据储存装置100进入省电模式后,或是数据储存装置100进入背景模式后,再依序对空间修整群组G#1~G#3进行空间修整。由于空间修整群组G#0与G#4为部分记录无效,并非全部无效,因此修整空间修整群组G#0与G#4耗费的时间有限。因此,上述方法可以让快闪存储器控制器122在有限时间内先完成一部分的空间修整,剩余的部分再依序安排空间修整,如此一来,可避免干扰主机200对数据储存装置100进行指令控制或数据存取。
在另一实施例中,快闪存储器控制器122会将修整要求予以整合,再进行第一类空间修整群组及第二类空间修整群组的判断。例如:将修整要求#1与修整要求#2予以整合,得到第一类空间修整群组的空间修整群组G#0及G#4,以及第二类空间修整群组的空间修整群组G#1及G#3。接着,将修整要求#1、#2及#3予以整合,得到第一类空间修整群组的空间修整群组G#0及G#4,以及第二类空间修整群组的空间修整群组G#1、G#2及G#3。最后,将修整要求#1、#2、#3及#4予以整合,得到第一类空间修整群组的空间修整群组G#0及G#4,以及第二类空间修整群组的空间修整群组G#1、G#2及G#3。由于,修整要求中重复的范围已被整合,因此,可有效地降低执行空间修整的次数。
此外,快闪存储器控制器122还储存一空间修整查找表用以记录多个数值,其中该等数值的每一者分别对应并记录上述空间修整群组的每一者是否已完成空间修整。举例而言,上述空间修整查找表的格式如下:
G#0 G#1 G#2 G#3 G#4
0 1 1 1 0
由此可知,空间修整查找表用以储存1或0的数值。上述空间修整查找表系对应至空间修整群组,而空间修整群组对应至映射表H2F的部分内容。每个空间修整群组G#0~G#4皆具有一数值储存于空间修整查找表中。数值1表示该空间修整群组需要进行空间修整但是尚未进行空间修整。数值0表示该空间修整群组已经完成空间修整、或是不需要进行空间修整。另外,由于第一类空间修整群组已于第一时间执行空间修整,因此,第一类空间修整群组的空间修整群组的值为"0"。每当数据储存装置100进行空间修整或是接收到空间修正指令,上述空间修整查找表及映射表H2F就需要即时更新。
在一些实施例中,快闪存储器控制器122使用一指标,用以搭配该空间修整查找表,并且指示目前进行空间修整的空间修整群组的次序以及记录需进行空间修整的空间修整群组的数量。举例而言,在上述空间修整查找表中,有4个空间修整群组需进行空间修整,并且接下来将对空间修整群组G#1进行空间修整。当空间修整群组G#1完成空间修整后,在空间修整查找表其数值将由1修正为0,表示已修整完成。然后,指标将指向空间修整群组G#2,以标示下一个进行空间修整的空间修整群组,以此类推。
由于空间修整查找表仅记录1或0等数值,因此所需要的储存空间很小,可以储存在挥发性存储器130。再者,藉由本发明所提供的空间修整查找表,能够快速得知目前映射表H2F的每个空间修整群组G#0~G#4的空间修整的状况。因此,快闪存储器控制器120能够在其余裕或空档时间,依据空间修整查找表执行某些空间修整群组的空间修整,而不会影响到其正常运作,增加数据储存装置100的使用效率。
在另一实施例中,当上述第一类空间修整群组完成空间修整后,快闪存储器控制器122产生并储存该空间修整查找表,然后,当数据储存装置100下一次重新启动时,快闪存储器控制器122依据该空间修整查找表对第二类空间修整群组继续进行空间修整。因此,藉由本发明所提供的数据储存方法,即使发生意外断电的情况,也能使用空间修整查找表进行重新启动并且继续执行空间修整。
以下将介绍当主机200发出读取、写入指令时,数据储存装置100藉由空间修整查找表搭配空间修整指令的处理方式。图6为流程图,根据本发明一种实施方式描述配合空间修整指令的数据储存方法。首先执行步骤S602,建立一映射表H2F以记录逻辑地址与物理地址之间的映射资讯。在步骤S604,快闪存储器控制器122将映射表H2F依据逻辑地址的顺序区分为多个空间修整群组,例如:映射表H2F依据逻辑地址的顺序区分为5个空间修整群组,即空间修整群组G#0~G#4。
在步骤S606,判断是否接收一空间修整指令。空间修整指令来自于主机200,如果主机200没有传送空间修整指令,则重复执行步骤S606。如果主机200传送空间修整指令,则执行步骤S608,记录空间修整指令与空间修整群组G#0~G#N的对应关系。例如:空间修整指令对应至空间修整群组G#0与G#4的部分内容(L#100~L#255以及L#1024~L#1150),空间修整群组G#0与G#4称之为第一类空间修整群组;空间修整指令对应至空间修整群组G#1~G#3的全部内容,空间修整群组G#1~G#3称之为第二类空间修整群组。
在步骤S610,对第一类空间修整群组进行空间修整;在步骤S612,依序对第二类空间修整群组中的空间修整群组进行空间修整。
快闪存储器控制器122优先对上述第一类空间修整群组进行空间修整。由于第一类空间修整群组已完成修整,所以空间修整查找表较佳不记录第一类空间修整群组。当第一类空间修整群组完成空间修正后,快闪存储器控制器122再执行步骤S612,依序对第二类空间修整群组中的空间修整群组进行空间修整。第二类空间修整群组包括空间修整群组G#1~G#3,在空间修整查找表的值记录为"1"。快闪存储器控制器122可使用指标指向空间修整查找表中的地址最前的"1"(对应至空间修整群组G#1)或地址最后的"1"(对应至空间修整群组G#3),并对此地址所对应的空间修整群组作为目前空间修整群组。当目前空间修整群组完成空间修整后,将目前空间修整群组在空间修整查找表的值由"1"变更为"0"之后,再将指标指向空间修整查找表中下一个值为"1"的地址,并将此地址所对应的空间修整群组作为目前空间修整群组。例如:空间修整查找表中下一个值为"1"乃对应至空间修整群组G#2,则改由空间修整群组G#2作为目前空间修整群组,以此类推。
另外,由于主机200可能发送另一空间修整指令至数据储存装置100,而此空间修整指令乃要求对已完成或不需执行空间修整的空间修整群组进行空间修整。因此,快闪存储器控制器122较佳记录等待空间修整群组的总数,即值为"1"的总数,以确定所有应执行空间修整的空间修整群组皆完成空间修整。
步骤S612较佳可于背景模式中执行,且可分段执行,即目前空间修整群组完成空间修整后,再选取下一个目前空间修整群组之前,快闪存储器控制器122可先执行数据存取指令,例如:读取指令或写入指令。待数据存取指令执行结束后,再下一个目前空间修整群组继续进行空间修整,直到空间修整群组的总数归零为止。
步骤S612可包括下列步骤,如图7所示,步骤S702,从第二类空间修整群组中选取目前空间修整群组并进行空间修整。然后,在步骤S704中,判断是否执行读取指令,此读取指令较佳来自于主机200,亦可能是垃圾回收程序或数据搬移程序所产生的。如果否则执行步骤S702;如果是则执行步骤S706:判断该读取指令的目标逻辑地址是否属于第二类空间修整群组。如果是,则执行步骤S708,输出数值为零的目标数据,并执行步骤S702。如果否则执行步骤S710:依据映射表H2F(或主机区块映射表H2F_H)以及目标逻辑地址自快闪存储器120取得目标数据并输出该目标数据。最后,执行步骤S702。
步骤S612可包括下列步骤,如第8图所示,步骤S802与步骤S702相同,从第二类空间修整群组中选取目前空间修整群组并进行空间修整。然后,在步骤S804中,判断是否执行写入指令,此写入指令较佳来自于主机200,亦可能是垃圾回收程序或数据搬移程序所产生的。如果否则执行步骤S802;如果是则执行步骤S806:判断该写入指令的目标逻辑地址是否属于第二类空间修整群组。如果是则执行步骤S808:对该目标逻辑地址所属的目标空间修整群组(例如空间修整群组G#2)进行空间修整。步骤S810将写入指令的数据写入快闪存储器120并更新映射表H2F(或主机区块映射表H2F_H)。如果否则直接执行步骤S810。最后,执行步骤S802。
图9为流程图,根据本发明一种实施方式的垃圾回收程序,此垃圾回收程序运作时将参考空间修整查找表以判断是否进行数据的搬移。首先执行步骤S902以及S904,其中,步骤S902与步骤S602相同,步骤S904与步骤S604相同,故不多作说明。
在步骤S906,判断是否启动垃圾回收程序。垃圾回收程序的启动条件有许多,例如,数据储存装置100的备用区块总数低于一预设值,或是数据区块的有效数据总数低于另一预设值,或进入背景模式,或主机200输出指令要求数据储存装置100进入省电模式(power saving)等等。当其中一个条件被满足时,数据储存装置100可启动垃圾回收程序。
在步骤S908,选取来源区块以及目的区块,其中,来源区块选自于数据区块池,并较佳为具有最少有效数据总数、最久建立时间、最高抹写(erase)次数、或最高读取次数;目的区块选自于备用区块池,并较佳为具有最久闲置时间或最低抹写次数。
在步骤S910,判断来源区块的有效数据是否属于第二类空间修整群组
Figure DEST_PATH_IMAGE001
例如:有效数据的逻辑地址L#300属于至空间修整群组G#1,而对应至空间修整群组G#1在空间修整查找表中的值为"1"。如果是则执行步骤S912:对有效数据所属的目标空间修整群组(例如空间修整群组G#1)进行空间修整。由于空间修整群组G#1所对应的数据为无效数据,故不作数据的搬移。如果数据储存装置100记录有来源区块的有效数据总数,则将有效数据总数减1。如果否则执行步骤S914:复制来源区块的有效数据至目的区块并更新映射表H2F。
在步骤S916,判断来源区块是否仍有有效数据。如果是则执行步骤S910,再度判断来源区块的有效数据是否属于第二类空间修整群组,例如:有效数据的逻辑地址L#600属于空间修整群组G#2,属于第二类空间修整群组,在空间修整查找表中的值为"1";或是,有效数据的逻辑地址L#200属于空间修整群组G#0,空间修整群组G#0不属于第二类空间修整群组,其在空间修整查找表中的值为"0"。如果否则表示来源区块中已不含任何有效数据,故结束垃圾回收程序。
其他采用上述整合型空间修整概念实现的技术都属于本发明所欲保护的范围。基于以上技术内容,本发明更涉及数据储存装置操作方法。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围由权利要求书界定为准。

Claims (11)

1.一种数据储存装置,包括:
一快闪存储器;以及
一快闪存储器控制器,操作该快闪存储器以储存数据,并储存一映射表以记录多个逻辑地址与该快闪存储器的多个物理地址的映射资讯,并且将该映射表区分为多个群组;
其中,部分这些群组划分为一第一类空间修整群组,该第一类空间修整群组的每一这些群组所记录的部分这些逻辑地址包含于一空间修整指令,该快闪存储器控制器对该第一类空间修整群组进行空间修整;
部分这些群组还划分为一第二类空间修整群组,该第二类空间修整群组的每一这些群组所记录的全部这些逻辑地址包含于一空间修整指令;
待该第一类空间修整群组完成空间修整后,快闪存储器控制器对该第二类空间修整群组开始进行空间修整。
2.如权利要求1所述的数据储存装置,其特征在于,待该第一类空间修整群组完成空间修整且该数据储存装置被要求进入一省电模式或进入一背景模式后,快闪存储器控制器对该第二类空间修整群组开始进行空间修整。
3.如权利要求1所述的数据储存装置,其特征在于,这些群组之每一者的大小是固定的。
4.如权利要求1所述的数据储存装置,其特征在于,该快闪存储器控制器更储存一查找表用以记录该第二类空间修整群组的每一这些群组。
5.如权利要求1所述的数据储存装置,其特征在于,该快闪存储器控制器更记录该第二类空间修整群组的一总数。
6.如权利要求4所述的数据储存装置,其特征在于,该快闪存储器控制器使用一指标用以指向该查找表中其中之一记录。
7.如权利要求1所述的数据储存装置,其特征在于,当该快闪存储器控制器接收一读取指令时,如果该读取指令的一目标逻辑地址属于该第二类空间修整群组时,该快闪存储器控制器输出数值为”0”的一目标数据。
8.如权利要求1所述的数据储存装置,其特征在于,当该快闪存储器控制器接收一写入指令时,如果该写入指令的一目标逻辑地址属于该第二类空间修整群组的其中之一这些群组时,该快闪存储器控制器对其中之一这些群组进行空间修整。
9.一种数据储存装置,包括:
一快闪存储器;以及
一快闪存储器控制器,操作该快闪存储器以储存数据,并储存一映射表以记录多个逻辑地址与该快闪存储器的多个物理地址的映射资讯,并且将该映射表区分为多个群组,部分这些群组划分为一第二类空间修整群组,该第二类空间修整群组的每一这些群组所记录的全部这些逻辑地址包含于一空间修整指令;
其中,当执行一垃圾回收程序时,如果一来源区块的一有效数据属于该第二类空间修整群组的其中之一这些群组时,该快闪存储器控制器对其中之一这些群组进行空间修整;
该快闪存储器控制器对其中之一这些群组进行空间修整之后,不移动该有效数据至一目的区块。
10.如权利要求9所述的数据储存装置,其特征在于,该来源区块具有一最少有效数据总数、一最久建立时间、一最高抹写次数或一最高读取次数。
11.如权利要求9所述的数据储存装置,其特征在于,该来源区块选自于一数据区块池。
CN201710646686.5A 2017-06-27 2017-08-01 数据储存装置 Active CN109144886B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW106121683A TWI672590B (zh) 2017-06-27 2017-06-27 資料儲存裝置
TW106121683 2017-06-27

Publications (2)

Publication Number Publication Date
CN109144886A CN109144886A (zh) 2019-01-04
CN109144886B true CN109144886B (zh) 2022-11-11

Family

ID=64693295

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710646686.5A Active CN109144886B (zh) 2017-06-27 2017-08-01 数据储存装置

Country Status (3)

Country Link
US (1) US10437737B2 (zh)
CN (1) CN109144886B (zh)
TW (1) TWI672590B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10909030B2 (en) * 2018-09-11 2021-02-02 Toshiba Memory Corporation Enhanced trim command support for solid state drives
CN111610930B (zh) * 2019-02-26 2023-05-02 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
TWI698744B (zh) * 2019-04-10 2020-07-11 慧榮科技股份有限公司 資料儲存裝置及邏輯至物理位址映射表之更新方法
TWI726314B (zh) * 2019-05-02 2021-05-01 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
KR20200137542A (ko) * 2019-05-30 2020-12-09 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 저장 장치
US11748023B2 (en) 2019-11-29 2023-09-05 Silicon Motion, Inc. Data storage device and non-volatile memory control method
CN112882649B (zh) 2019-11-29 2024-04-02 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112882650B (zh) * 2019-11-29 2024-04-30 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
TWI742698B (zh) * 2019-11-29 2021-10-11 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
US11604601B2 (en) * 2020-10-12 2023-03-14 Micron Technology, Inc. Trim value loading management in a memory sub-system
CN116710902A (zh) * 2020-12-28 2023-09-05 华为技术有限公司 快闪存储装置、存储控制方法和电子设备
US11809328B2 (en) 2021-04-01 2023-11-07 Silicon Motion, Inc. Control method of flash memory controller and associated flash memory controller and storage device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103455437A (zh) * 2012-05-30 2013-12-18 慧荣科技股份有限公司 数据储存装置与数据储存装置操作方法
CN103677667A (zh) * 2012-09-20 2014-03-26 慧荣科技股份有限公司 数据储存装置以及快闪存储器控制方法
CN104750619A (zh) * 2013-12-26 2015-07-01 慧荣科技股份有限公司 数据储存装置以及快闪存储器控制方法
CN105593940A (zh) * 2013-09-27 2016-05-18 高通股份有限公司 用于修整电阻式存储器中的参考电平的***和方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7188228B1 (en) * 2003-10-01 2007-03-06 Sandisk Corporation Hybrid mapping implementation within a non-volatile memory system
KR101638061B1 (ko) * 2009-10-27 2016-07-08 삼성전자주식회사 플래시 메모리 시스템 및 그것의 플래시 조각 모음 방법
US20130326169A1 (en) * 2012-05-31 2013-12-05 Amir Shaharabany Method and Storage Device for Detection of Streaming Data Based on Logged Read/Write Transactions
US9927999B1 (en) * 2016-09-09 2018-03-27 Western Digital Technologies, Inc. Trim management in solid state drives

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103455437A (zh) * 2012-05-30 2013-12-18 慧荣科技股份有限公司 数据储存装置与数据储存装置操作方法
CN103677667A (zh) * 2012-09-20 2014-03-26 慧荣科技股份有限公司 数据储存装置以及快闪存储器控制方法
CN105593940A (zh) * 2013-09-27 2016-05-18 高通股份有限公司 用于修整电阻式存储器中的参考电平的***和方法
CN104750619A (zh) * 2013-12-26 2015-07-01 慧荣科技股份有限公司 数据储存装置以及快闪存储器控制方法

Also Published As

Publication number Publication date
US10437737B2 (en) 2019-10-08
US20180373643A1 (en) 2018-12-27
TWI672590B (zh) 2019-09-21
TW201905700A (zh) 2019-02-01
CN109144886A (zh) 2019-01-04

Similar Documents

Publication Publication Date Title
CN109144886B (zh) 数据储存装置
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
US10409717B2 (en) Data storage device and method for operating data storage device
CN106354745B (zh) 用于提供计算机装置的接口的方法和计算机装置
US9792069B2 (en) Offline deduplication for solid-state storage devices
US8316176B1 (en) Non-volatile semiconductor memory segregating sequential data during garbage collection to reduce write amplification
US10496334B2 (en) Solid state drive using two-level indirection architecture
US8966160B2 (en) Storage device trimming
US10877898B2 (en) Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
US11120081B2 (en) Key-value storage device and method of operating key-value storage device
US20180321883A1 (en) Data storage device and method for operating data storage device
US8909895B2 (en) Memory apparatus
US10048884B2 (en) Method for erasing data entity in memory module
KR20170009706A (ko) 중복 데이터를 감소시키기 위한 저장 장치 및 그것의 동작 방법
JP4745465B1 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
US10203899B2 (en) Method for writing data into flash memory apparatus, flash memory apparatus, and storage system
US11263147B2 (en) Memory system including logical-to-physical address translation table in a first cache and a compressed logical-to-physical address translation table in a second cache
US20100318726A1 (en) Memory system and memory system managing method
US10628301B1 (en) System and method for optimizing write amplification of non-volatile memory storage media
JP5204265B2 (ja) 半導体記憶装置及び半導体記憶装置の制御方法
US11461225B2 (en) Storage device, control method of storage device, and storage medium
US10846019B2 (en) Semiconductor device
CN116368472A (zh) 数据处理方法及相关设备
US20240256465A1 (en) Method of handling trim command in flash memory and related memory controller and storage system thereof
US20240231624A1 (en) Method and apparatus for performing data access management of memory device in predetermined communications architecture with aid of unbalanced table regions

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