CN115203065A - 快闪存储器控制器的控制方法、快闪存储器控制器以及储存装置 - Google Patents
快闪存储器控制器的控制方法、快闪存储器控制器以及储存装置 Download PDFInfo
- Publication number
- CN115203065A CN115203065A CN202210281090.0A CN202210281090A CN115203065A CN 115203065 A CN115203065 A CN 115203065A CN 202210281090 A CN202210281090 A CN 202210281090A CN 115203065 A CN115203065 A CN 115203065A
- Authority
- CN
- China
- Prior art keywords
- block
- flash memory
- data
- blocks
- region
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1056—Simplification
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Abstract
本发明涉及快闪存储器控制器的控制方法、快闪存储器控制器以及储存装置。在快闪存储器控制器的控制方法中,藉由根据来自主机装置的解分配命令来建立一有效页面计数表、一详细有效页面计数表及/或一区域有效页面计数表,快闪存储器控制器可以有效地且快速地判断任一个区域是否都不具有任何有效数据,以使得快闪存储器控制器可以建议主机装置传送一重置命令以重置该区域,此外,在接收到来自主机装置得重置命令之后,快闪存储器控制器可以利用一垃圾回收操作或直接地将对应于抹除区域的区块放入至一备用区块池中,以供进一步的使用。
Description
技术领域
本发明有关于快闪存储器,且尤指快闪存储器控制器以及相关控制方法。
背景技术
在非挥发性存储器主机控制器接口规范(non-volatile memory express,NVMe)中,一分区命名空间(zoned namespace)被标准化(standardize),然而,由于上述分区命名空间以及其内的每一个区域皆是纯粹地从主机装置的观点来看的,因此如何提供一种有效的存储器管理方法来正确地并且快速地对主机装置的命令进行适当的处理是一个重要议题。
发明内容
因此,本发明的目的之一在于提供一种能够根据来自主机装置的解分配命令来有效地管理快闪存储器模块的快闪存储器控制器,以解决上述问题。
根据本发明一实施例,提供了一种快闪存储器控制器的控制方法,其中快闪存储器控制器用以存取一快闪存储器模块,快闪存储器模块包含有多个区块,以及该控制方法包含有:自一主机装置接收一设置命令,其中设置命令将快闪存储器模块的至少一部分配置成一分区命名空间,分区命名空间逻辑上包含有多个区域,主机装置对分区命名空间进行一基于区域的数据写入操作,每一个区域具有一相同大小,对应于每一个区域的多个逻辑地址是连续的,以及多个逻辑地址在区域之间不重迭;将一第一区域的数据写入至多个第一区块中;建立一区域-区块映射表,其中区域-区块映射表包含有关于第一区域、相对应的多个第一区块以及一共享区块的资讯;基于写入至多个第一区块的第一区域的数据来建立或更新一逻辑至实体地址映射表;自主机装置接收一重置命令,其中重置命令指示重置第一区域;更新逻辑至实体地址映射表,以删除对应于第一区域的逻辑地址的实体地址;直接地将多个第一区块放入至一备用区块池中;藉由参考一有效页面计数表来判断共享区块是否不具有任一个有效数据,其中有效页面计数表记录共享区块以及相对应的有效页面计数;以及倘若共享区块被判断不具有任一个有效数据的话,则将共享区块放入至备用区块池中。
根据本发明一实施例,提供了一种快闪存储器控制器,其中快闪存储器控制器用以存取一快闪存储器模块,快闪存储器模块包含有多个区块,以及快闪存储器控制器包含有用以储存一程式码的一只读存储器、用以执行程式码来控制快闪存储器模块的存取的一微处理器以及一缓冲存储器。微处理器用以:自一主机装置接收一设置命令,其中设置命令将快闪存储器模块的至少一部分配置成一分区命名空间,分区命名空间逻辑上包含有多个区域,主机装置对分区命名空间进行一基于区域的数据写入操作,每一个区域具有一相同大小,对应于每一个区域的多个逻辑地址是连续的,以及多个逻辑地址在区域之间不重迭;将一第一区域的数据写入至多个第一区块中;建立一区域-区块映射表,其中区域-区块映射表包含有关于第一区域、相对应的多个第一区块以及一共享区块的资讯;基于写入至多个第一区块的第一区域的数据来建立或更新一逻辑至实体地址映射表;自主机装置接收一重置命令,其中重置命令指示重置第一区域;更新逻辑至实体地址映射表,以删除对应于第一区域的逻辑地址的实体地址;直接地将多个第一区块放入至一备用区块池中;藉由参考一有效页面计数表来判断共享区块是否不具有任一个有效数据,其中有效页面计数表记录共享区块以及相对应的有效页面计数;以及倘若共享区块被判断不具有任一个有效数据的话,则将共享区块放入至备用区块池中。
根据本发明一实施例,提供了一种储存装置,其包含有一快闪存储器模块以及一快闪存储器控制器。快闪存储器模块包含有多个区块,快闪存储器控制器用以存取快闪存储器模块,快闪存储器控制器用以:自一主机装置接收一设置命令,其中设置命令将快闪存储器模块的至少一部分配置成一分区命名空间,分区命名空间逻辑上包含有多个区域,主机装置对分区命名空间进行一基于区域的数据写入操作,每一个区域具有一相同大小,对应于每一个区域的多个逻辑地址是连续的,以及多个逻辑地址在区域之间不重迭;将一第一区域的数据写入至多个第一区块中;建立一区域-区块映射表,其中区域-区块映射表包含有关于第一区域、相对应的多个第一区块以及一共享区块的资讯;基于写入至多个第一区块的第一区域的数据来建立或更新一逻辑至实体地址映射表;自主机装置接收一重置命令,其中重置命令指示重置第一区域;更新逻辑至实体地址映射表,以删除对应于第一区域的逻辑地址的实体地址;直接地将多个第一区块放入至一备用区块池中;藉由参考一有效页面计数表来判断共享区块是否不具有任一个有效数据,其中有效页面计数表记录共享区块以及相对应的有效页面计数;以及倘若共享区块被判断不具有任一个有效数据的话,则将共享区块放入至备用区块池中。
总结来说,在本发明的快闪存储器控制器的控制方法中,藉由根据来自主机装置的解分配命令来建立一有效页面计数表、一详细有效页面计数表及/或一区域有效页面计数表,快闪存储器控制器可以有效地且快速地判断任一个区域是否都不具有任何有效数据,以使得快闪存储器控制器可以建议主机装置来传送一重置命令,以重置该区域。此外,在接收到来自主机装置的重置命令之后,快闪存储器控制器可以利用一垃圾回收操作或直接地将对应于抹除区域的区块放入至一备用区块池中,以供进一步的使用。
附图说明
图1为依据本发明一实施例的电子装置的示意图。
图2为依据本发明一实施例的在储存装置中的快闪存储器控制器的示意图。
图3为依据本发明一实施例的在快闪存储器模块中的区块的示意图。
图4为包含有一般储存空间以及分区命名空间的快闪存储器模块的示意图。
图5为被划分为多个区域的分区命名空间的示意图。
图6为依据本发明一实施例的将来自主机装置的数据写入至分区命名空间的流程图。
图7为被写入至快闪存储器模块中的区块的区域数据的示意图。
图8为依据本发明一实施例的逻辑至实体地址映射表的示意图。
图9为依据本发明一实施例的有效页面计数表的示意图。
图10为依据本发明一实施例的快闪存储器控制器的控制方法的流程图。
图11为依据本发明另一实施例的将来自主机装置的数据写入至分区命名空间的流程图。
图12为被划分为多个区域的分区命名空间的示意图。
图13为依据本发明一实施例的逻辑至实体地址映射表以及共享区块表的示意图。
图14为依据本发明一实施例的有效页面计数表的示意图。
图15为依据本发明一实施例的详细有效页面计数表的示意图。
图16为依据本发明一实施例的快闪存储器控制器的控制方法的流程图。
图17为依据本发明一实施例的区域有效页面计数表的示意图。
图18为依据本发明一实施例的快闪存储器控制器的控制方法的流程图。
图19为依据本发明一实施例的区域有效页面映射表的示意图。
图20为依据本发明一实施例的更新区域有效页面映射表的示意图。
图21为依据本发明一实施例的快闪存储器控制器的控制方法的流程图。
图22为依据本发明一实施例的快闪存储器控制器的控制方法的流程图。
图23为依据本发明一实施例的快闪存储器控制器的控制方法的流程图。
【符号说明】
100:电子装置
110:主机装置
120_1~120_N:储存装置
122:快闪存储器控制器
124:快闪存储器模块
212:微处理器
212C:程式码
212M:只读存储器
214:控制逻辑
216:缓冲存储器
218:接口逻辑
232:编码器
234:解码器
240:动态随机存取存储器
200,B3,B7,B8,B12,B99,B6:区块
202:浮闸晶体管
BL1~BL3:位元线
WL0,WL1,WL2,WL4,WL5,WL6:字元线
410_1,410_2:分区命名空间
420_1,420_2:一般储存空间
600~608,1000~1008,1100~1106,1600~1608,1800~1810,2100~2108,2200~2208,2300~2308:步骤
800,1300:逻辑至实体地址映射表
900,1400:有效页面计数表
1330:共享区块表
1500:详细有效页面计数表
1700:区域有效页面计数表
1900:区域有效页面映射表
具体实施方式
图1为依据本发明一实施例的电子装置100的示意图。如图1所示,电子装置100可包含有主机装置110以及多个储存装置120_1~120_N,每一个储存装置(例如储存装置120_1)可包含有快闪存储器控制器122以及快闪存储器模块124,在此实施例中,储存装置120_1~120_N的每一个储存装置可以是一固态硬碟(solid-state drive,SSD)或具有快闪存储器模块的任何储存装置,主机装置110可以是一中央处理单元(central processing unit,CPU)或可用以存取储存装置120_1~120_N的其它电子装置或元件。电子装置100可以是一伺服器、一个人电脑、一膝上型(笔记型)电脑或任何可携式电子装置,应注意的是,虽然图1绘示了储存装置120_1~120_N,但是在某些实施例中,电子装置100可能仅具有单一储存装置120_1。
图2为依据本发明一实施例的储存装置120_1的示意图。如图2所示,快闪存储器控制器122可包含有微处理器212、只读存储器(read only memory,ROM)212M、控制逻辑(control logic)214、缓冲存储器216以及接口逻辑(interface logic)218,只读存储器212M可用以储存程式码212C,以及微处理器212可用以执行程式码212C以控制快闪存储器模块124的存取,控制逻辑214可包含有编码器232以及解码器234,其中编码器232可用以编码写入至快闪存储器模块124的数据,以产生相对应的检查码(check code;亦即错误校正码(error correction code,ECC)),并且解码器234可用以解码自快闪存储器模块124读取的数据。
在一般情况中,快闪存储器模块124可包含有多个快闪存储器晶片,并且每一个快闪存储器晶片可包含有多个区块,快闪存储器控制器122可对快闪存储器模块124进行一基于区块的抹除(erase)操作,此外,一区块可记录特定数量的页面(page),其中快闪存储器控制器122可对快闪存储器模块124进行一基于页面的写入操作。在此实施例中,快闪存储器模块124可以是一3D与非门型(3D-NAND type)快闪存储器模块。
实际上,透过微处理器212执行程式码212C,快闪存储器控制器122可利用其本身内部的元件来进行许多控制操作,举例来说,快闪存储器控制器122可利用控制逻辑214来控制快闪存储器模块124的存取(尤其是,至少一区块或至少一页面的存取),利用缓冲存储器216来进行所需的缓冲操作,以及利用接口逻辑218来与主机装置110进行通讯。缓冲存储器216可藉由随机存取存储器(random access memory,RAM)来实现,举例来说,缓冲存储器216可以是一静态随机存取存储器(static random access memory,SRAM),但是本发明不以此为限。此外,快闪存储器控制器122可耦接于动态随机存取存储器(dynamic randomaccess memory,DRAM)240,应注意的是,动态随机存取存储器240可以一并被包含在快闪存储器控制器122中,举例来说,动态随机存取存储器240以及快闪存储器控制器122可共存于同一个封装(package)中。
在一实施例中,储存装置120_1可符合非挥发性存储器主机控制器接口规范(non-volatile memory express,NVMe),也就是说,接口逻辑218可符合一特定通讯规范,诸如外部组件互连(Peripheral Component Interconnect,PCI)规范或快速外部组件互连(Peripheral Component Interconnect Express,PCIe)规范,并且可根据该特定通讯规范来进行通讯,举例来说,接口逻辑218可藉由一连结器来与主机装置110进行通讯。
图3为依据本发明一实施例的在快闪存储器模块124中的区块200的示意图,其中快闪存储器模块124可以是一3D与非门型快闪存储器模块。如图3所示,区块200可包含有多个存储器单元(memory cell),诸如图3所示的浮闸晶体管(floating gate transistor)202或其它电荷捕捉元件(charge trapping component),一3D与非门型快闪存储器架构可透过多个位元线(bit line;在图3中仅绘示位元线BL1~位元线BL3)以及多个字元线(wordline;在图3中仅绘示字元线WL0~字元线WL2以及字元线WL4~字元线WL6)来形成,以图3中最上方平面为例,在字元线WL0上的所有浮闸晶体管形成至少一页面、在字元线WL1上的所有浮闸晶体管形成至少另一页面以及在字元线WL2上的所有浮闸晶体管形成至少再另一页面,以此类堆。此外,字元线WL0与页面(例如逻辑页面(logic page))之间的定义可以根据快闪存储器的写入方法而有所变化,详细地来说,当利用单层单元(single-level cell,SLC)的方式来储存数据时,在字元线WL0上的所有浮闸晶体管仅对应到单一逻辑页面;当利用多层单元(multi-level cell,MLC)的方式来储存数据时,在字元线WL0上的所有浮闸晶体管对应到两个逻辑页面;当利用三层单元(triple-level cell,TLC)的方式来储存数据时,在字元线WL0上的所有浮闸晶体管对应到三个逻辑页面;以及当利用四层单元(quad-level cell,QLC)的方式来储存数据时,在字元线WL0上的所有浮闸晶体管对应到四个逻辑页面。3D与非门型快闪存储器架构以及字元线与页面之间的关系已为本领域具有通常知识者所熟知,为了简洁起见,在此不再重复描述相关细节。
在此实施例中,主机装置110可藉由传送一设置命令集(settling command set;诸如一分区命名空间(zoned namespace)命令集)来将快闪存储器模块124的至少一部分配置成一分区命名空间,请参照图4,主机装置110可将一设置命令集传送至快闪存储器控制器122,以使得快闪存储器模块124具有至少一分区命名空间(在此实施例中,以分区命名空间410_1以及分区命名空间410_2为例)以及至少一一般储存空间(general storagespace;在此实施例中,以一般储存空间420_1以及一般储存空间420_2为例)。分区命名空间410_1可被划分成多个区域(zone)以供存取,并且主机装置110必须在分区命名空间410_1中进行一基于逻辑区块地址(logical block address,LBA)的数据写入操作,一逻辑区块地址(简称为逻辑地址)可代表一笔512位元组(byte)的数据或一笔4千位元组(kilobyte,KB)的数据,并且主机装置110需要将数据连续地写入至一区域中,具体来说,请参照图5,分区命名空间410_1可被划分为多个区域(例如区域Z0~区域Z3),其中每一个区域中的逻辑地址必须是连续的,以及区域之间不存在重迭逻辑地址(亦即一逻辑地址仅可存在于一区域中),举例来说,倘若每一个区域的大小是“x”个逻辑地址以及区域Z3的起始逻辑地址(starting logical address)是逻辑地址LBA_k的话,则区域Z3用以利用逻辑地址LBA_k、逻辑地址LBA_(k+1)、逻辑地址LBA_(k+2)、逻辑地址LBA_(k+3)…以及逻辑地址LBA_(k+x-1)来储存数据。在一实施例中,相邻区域的逻辑地址亦可以是连续的,举例来说,区域Z0用以利用逻辑地址LBA_1~LBA_2000来储存数据,区域Z1用以利用逻辑地址LBA_2001~LBA_4000来储存数据,区域Z2用以利用逻辑地址LBA_4001~LBA_6000来储存数据,区域Z3用以利用逻辑地址LBA_6001~LBA_8000来储存数据,以此类堆。此外,对应于一逻辑地址的数据量可以藉由主机装置110来决定,举例来说,对应于一逻辑地址的数据量可以是4千位元组。
此外,当数据被写入至每一个区域时,该数据根据该数据的多个逻辑地址的顺序来被写入,详细地来说,快闪存储器控制器122可根据已写入数据来设置一写入点(writepoint),以控制数据的写入序列。假设区域Z1用以利用逻辑地址LBA_2001~逻辑地址LBA_4000来储存数据,在主机装置110将对应于逻辑地址LBA_2001~逻辑地址LBA_2051的数据传送至快闪存储器控制器122之后,快闪存储器控制器122可将写入点设置至下一个逻辑地址LBA_2052,倘若主机装置110随后传送属于相同区域但不具有逻辑地址LBA_2052的数据的话(例如主机装置110传送具有逻辑地址LBA_3000的数据),则快闪存储器控制器122可拒绝数据写入操作并且将写入失败的讯息回传至主机装置110;换句话说,仅当接收到的数据的逻辑地址与写入点所指出的逻辑地址相同时,快闪存储器控制器122才会允许数据写入操作,此外,倘若在多个区域中的数据被交替地写入的话,每一个区域可具有自己的写入点。
此外,非挥发性存储器主机控制器接口规范提供了一解分配命令(deallocatecommand),其是自主机装置110传送以要求删除对应于一逻辑地址范围的数据,并且非挥发性存储器主机控制器接口规范另指出一快闪存储器控制器可建议(recommend)主机装置110来进行一重置命令(reset command),以控制一区域自一满状态(full state)至一空状态(empty state),因此,以下实施例被提出,以使得快闪存储器控制器122可有效地并且正确地建议主机装置110来进行重置命令。
图6为依据本发明一实施例的将来自主机装置110的数据写入至分区命名空间410_1的流程图。在此实施例中,假设对应于每一个区域的数据量大于在快闪存储器模块124中的每一个实体区块的大小,并且对应于每一个区域的数据量不是在快闪存储器模块124中的每一个实体区块的大小的整数倍。在步骤600中,流程开始,并且开启主机装置110与储存装置120_1的电源以及完成一初始化操作,主机装置110藉由使用一分区命名空间命令集来为储存装置120_1的储存区域的至少一部分设置基本设定(例如每一个区域的大小、区域的数量以及逻辑区块地址大小)。在步骤602中,主机装置110将一写入命令以及相对应的数据传送至快闪存储器控制器122,其中上述数据是对应于一个或多个区域的数据,诸如对应于在图5所示的区域Z3中的逻辑地址LBA_k~逻辑地址LBA_(k+x-1)的数据。在步骤604中,快闪存储器控制器122自快闪存储器模块124选择至少一区块(例如一空白区块(blankblock),亦即一备用区块(spare block)),并且将来自主机装置110的数据依序地写入至该至少一区块,由于主机装置110所设置的区域的大小很难与实体区块的大小相匹配,因此在主机装置110将写入命令传送至在区域Z3中的所有逻辑地址之后,主机装置110要写入的数据通常不可完全地填满实体区块的储存空间,换句话说,对应于一区域的数据储存容量通常不是用来储存主机装置110所写入的数据的实体区块的大小的整数倍。在步骤606中,在将数据写入至最后的区块并且完成数据写入之后,快闪存储器控制器122将无效数据写入至该最后的区块的剩余页面中,或直接地将剩余页面保持空白,应注意的是,每一个区块通常保留多个页面来储存系统管理资讯,其包含有一写入时间表、一实体至逻辑映射表、错误校正码的检查位元(check bit)以及磁碟阵列同位(redundant array of independentdisks parity,RAID parity)等等。上述剩余的页面代表在系统管理资讯以及主机装置110要储存的数据已经被写入至最后的区块后所剩余的页面。
举例来说,请参照图7,假设对应于每一个区域的数据量是介于在快闪存储器模块124中的两个区块以及三个区块之间。因应主机装置110针对区域Z1所传送的写入命令,快闪存储器控制器122可依序地将区域Z1的数据写入至区块B3、区块B7以及区块B8,应注意的是,在一实施例中,主机装置110针对区域Z1所传送的写入命令可包含有区域Z1的起始逻辑地址,以及快闪存储器控制器122可将区域Z1的起始逻辑地址映射至实体区块B3的起始实体储存空间(例如第一实体页面),并且将对应于区域Z1的起始逻辑地址的数据储存至实体区块B3的起始实体储存空间(例如第一实体页面)。区块B3、区块B7以及区块B8皆包含有页面P1~页面PM,并且自区块B3的第一页面P1开始至区块B3的最后页面PM,区域Z1中的数据根据逻辑地址来被依序地写入。在区块B3中的数据被写入之后,继续自区块B7的第一页面P1至区块B7的最后页面PM进行写入操作,应注意的是,即使主机装置110针对区域Z1中的逻辑地址继续进行写入操作,快闪存储器控制器122仍可以选择不连续的区块B3以及区块B7来储存在逻辑地址中是连续的数据,在区块B7中的数据被写入之后,数据被继续地写入至区块B8的第一页面P1直到区块Z1的数据结束;此外,区块B8的剩余页面保持空白或具有被写入其中的无效数据。类似地,快闪存储器控制器122可依序地将区域Z3的数据写入至区块B12、区块B99以及区块B6,其中区块B12、区块B99以及区块B6皆包含有页面P1~页面PM,以及自区块B12的第一页面P1开始至区块B12的最后页面PM,区域Z3的数据根据逻辑地址来被依序地写入。在区块B12的数据被写入之后,自区块B99的第一页面P1开始至区块B99的最后页面PM,数据被继续地写入,以及在区块B99的数据被写入之后,数据自区块B6的第一页面P1开始被继续地写入,直到区块Z3的数据结束。此外,区块B6的剩余页面保持空白或具有被写入其中的无效数据,应注意的是,快闪存储器控制器122可能不会为储存着无效数据的实体页面来建立一逻辑页面至实体页面映射关系,快闪存储器控制器122通常会将具有空白实体页面的实体区块或具有无效数据的实体页面的实体区块设置为对应于每一个区域的最后部分,换句话说,快闪存储器控制器122会将对应于区域的最后逻辑地址的数据储存至具有空白页面或无效数据的实体区块中。
在步骤608中,快闪存储器控制器122建立或更新一逻辑至实体(logical tophysical,L2P)地址映射表,来记录逻辑地址与实体地址之间的映射关系,以供分区命名空间410_1的后续数据读取。图8为依据本发明一实施例的逻辑至实体地址映射表800的示意图。逻辑至实体地址映射表800可包含有两个栏位(field),其中一栏位记录区域的起始逻辑地址,以及另一栏位记录区块的实体区块地址。请搭配参照图7以及图8,由于区域Z1的数据被依序地写入至区块B3、区块B7以及区块B8并且区域Z3的数据被依序地写入至区块B12、区块B99以及区块B6,因此逻辑至实体地址映射表800记录区域Z1的起始逻辑地址Z1_LBA_S、区块B3的实体区块地址PBA3、区块B7的实体区块地址PBA7以及区块B8的实体区块地址PBA8,并且记录区域Z3的起始逻辑地址Z3_LBA_S、区块B12的实体区块地址PBA12、区块B99的实体区块地址PBA99以及区块B6的实体区块地址PBA6。举例来说,假设区域Z1用以储存具有逻辑地址LBA_2001~逻辑地址LBA_4000的数据,区域Z3用以储存具有逻辑地址LBA_6001~逻辑地址LBA_8000的数据,区域Z1的起始逻辑地址Z1_LBA_S是逻辑地址LBA_2001,以及区域Z3的起始逻辑地址Z3_LBA_S是逻辑地址LBA_6001。应注意的是,只要能达到相同目的,则不必以固定顺序来进行用以将数据自主机装置110写入至分区命名空间410_1的流程图中的步骤,例如可以在步骤602之后进行步骤608,此为本领域具有通常知识者在本发明的教示下可以理解。应注意的是,在此实施例中,每一个实体区块仅对应于单一区域,举例来说,区块B3、区块B7以及区块B8仅对应于区域Z1,以及区块B12、区块B99以及区块B6仅对应于区域Z3,换句话说,一单一区块仅储存在一单一区域中的数据,举例来说,区块B3、区块B7以及区块B8仅储存对应于区域Z1的数据,以及区块B12、区块B99以及区块B6仅储存对应于区域Z3的数据。
要注意的是,图8所示的逻辑至实体地址映射表800仅用于说明之用,本发明不限于此。在本发明的其它实施例中,逻辑至实体地址映射表可包含有每一个逻辑地址以及相对应的实体地址,或逻辑至实体地址映射表可包含有多个实体地址以及相对应的逻辑地址范围。
此外,快闪存储器控制器122可建立一有效页面计数表,其记录一区块中有效页面的数量,其中有效页面代表数据不是旧数据(亦即快闪存储器模块124不具有用以更新旧数据的有着相同逻辑地址的其它数据)。图9为依据本发明一实施例的有效页面计数表900的示意图。如图9所示,假设有效页面计数表900包含有在区域Z1以及区域Z3的数据完整地被写入至快闪存储器模块12之后的即时资讯,对应于区域Z1的实体区块B3、实体区块B7以及实体区块B8的有效页面计数分别为“128”、“128”以及“60”,以及对应于区域Z3的实体区块B12、区块B99以及区块B6的有效页面计数分别为“128”、“128”以及“60”。在一实施例中,有效页面计数表900被暂时地储存在缓冲存储器216中。
接着,倘若快闪存储器控制器122自主机装置110接收到解分配命令以解分配对应于一逻辑地址范围的数据的话,则微处理器212会更新逻辑至实体地址映射表以移除该逻辑地址范围的资讯,以使得对应于该逻辑地址范围的数据可以被视为无效数据,举例来说,逻辑至实体地址映射表被更新以移除该逻辑地址范围的相对应的实体地址,或逻辑至实体地址映射表被更新以指出该逻辑地址范围不具有相对应的实体地址。之后,微处理器212基于对应于该逻辑地址范围的页面编号(page number)来更新有效页面计数表900,举例来说,倘若来自主机装置110的解分配命令指示对应于区块B3内30个页面的数据的一逻辑地址范围,则有效页面计数表900被更新以使得区块B3的有效页面计数变为“98”。
此外,微处理器212可检查有效页面计数表900以及一区域-区块映射表(zone-block mapping table),以判断任一个区域是否都不具有任何有效数据,其中该区域-区块映射表可包含有关于每一个区域以及相对应的实体区块的资讯。以图7为一范例,区域Z1对应于区块B3、区块B7以及区块B8,以及区域Z3对应于区块B12、区块B99以及区块B6。在一实施例中,逻辑至实体地址映射表800可作为该区域-区块映射表,具体来说,倘若微处理器212侦测到对应于区域Z1的区块B3、区块B7以及区块B8内不具有有效数据的话(亦即每一个区块B3、区块B7以及区块B8的有效页面计数皆等于0),则微处理器212可主动地通知主机装置110以建议主机装置110来进行一重置命令,以控制区域Z1自一满状态至一空状态。仅于接受到重置命令之后,微处理器212才可抹除区块B3、区块B7以及区块B8并且将区块B3、区块B7以及区块B8设置为备用区块(例如空白区块),以供储存其它数据。
在一实施例中,快闪存储器控制器122可另具有多个暂存器(register),其中每一个暂存器用以储存一区域的一重置区域建议属性(reset zone recommended attribute),以及该重置区域建议属性用来指示快闪存储器控制器122是否侦测到该区域内没有有效数据,具体来说,倘若微处理器212侦测到对应于区域Z1的区块B3、区块B7以及区块B8内不具有有效数据的话,则微处理器212可将对应于区域Z1的暂存器设置为“1”,以及一旦主机装置110侦测到对应于区域Z1的暂存器具有数值“1”的话,则主机装置110可考虑是否将一重置命令传送至快闪存储器控制器122。
在另一实施例中,倘若微处理器212侦测到对应于区域Z1的区块B3、区块B7以及区块B8内不具有有效数据的话,则快闪存储器控制器122可主动地为区域Z1将一区域描述符改变事件(zone descriptor changed event)传送至主机装置110,以建议主机装置110传送一重置命令以重置该区域。
图10为依据本发明一实施例的快闪存储器控制器122的控制方法的流程图。请搭配参照上述图6~图9的实施例,流程描述如下。
在步骤1000中,流程开始。
在步骤1002中,快闪存储器控制器判断是否自主机装置接收到一解分配命令,如果是,进入步骤1004;如果否,回到步骤1002。
在步骤1004中,快闪存储器控制器更新逻辑至实体地址映射表以及有效页面计数表。
在步骤1006中,快闪存储器控制器参考有效页面计数表来判断任一个区域是否都不具有任何有效数据,如果是,进入步骤1008;如果否,回到步骤1002。
在步骤1008中,快闪存储器控制器建议主机装置重送一重置命令,以重置不具有有效数据的区域。
图11为依据本发明另一实施例的将来自主机装置110的数据写入至分区命名空间410_1的流程图。在此实施例中,假设对应于每一个区域的数据量是大于快闪存储器模块124中每一个区块的大小,并且对应于每一个区域的数据量不是快闪存储器模块124中每一个区块的大小的整数倍。在步骤1100中,流程开始,启动主机装置110以及储存装置120_1的电源以及完成初始化操作,主机装置110藉由使用分区命名空间命令集来设置储存装置120_1以使其具有基本设定(例如每一个区域的大小、区域数量以及逻辑区块地址大小)。在步骤1102中,主机装置110将一写入命令以及相对应的数据传送至快闪存储器控制器122,其中上述数据对应于一个或多个区域的数据(例如对应于图5所示的区域Z3的逻辑地址LBA_k~逻辑地址LBA_(k+x-1)的数据)。在步骤1104中,快闪存储器控制器122自快闪存储器模块124选择至少一区块(例如一空白区块,亦即一备用区块),或选择至少一空白区块或至少一共享区块(shared block),以将数据自主机装置110依序地写入至该些区块,举例来说,请参照图12,假设对应于每一个区域的数据量是介于快闪存储器模块124中的两个区块与三个区块之间,以及快闪存储器控制器122可将区域Z1的数据依序地写入至区块B3、区块B7以及区块B8中,其中区块B3记录区域Z1的第一部分数据Z1_0,区块B7记录区域Z1的第二部分数据Z1_1,以及区块Z8记录区域Z1的第三部分数据Z1_2。在此实施例中,由于所有储存在区块B3以及区块B7中的数据皆是区域Z1中的数据,以及区域B8中仅部分页面储存区域Z1中的数据,因此为了利用区块B8中剩余的页面,微处理器212可将区块B8设置为一共享区块,也就是说,区块B8的剩余页面可用以储存其它区域的数据。
请参照图12,快闪存储器控制器122准备将区域Z3的数据写入至分区命名空间410_1,由于共享区块B8中具有一剩余空间,因此微处理器212可选择空白区块B12、空白区块B99以及共享区块B8来储存区域Z3中的数据,具体来说,快闪存储器控制器122依序地将区域Z3的数据写入至区块B12、区块B99以及区块B8,其中区块B12记录区域Z3的第一部分数据Z3_0,区块B99记录区域Z3的第二部分数据Z3_1,以及区域B8记录区域Z3的第三部分数据Z3_2。在此实施例中,所有区块B12以及区块B99所储存的数据皆是区域Z3的数据,而区块B8记录区域Z1的第三部分数据Z1_2以及区域Z3的第三部分数据Z3_2,要注意的是,对于管理的方便来说,由于会增加透过快闪存储器控制器122来建立逻辑至实体地址映射表的复杂度,因此快闪存储器控制器122不会将任一个区域的第一数据储存至共享区块中,快闪存储器控制器122将每一个区域的第一数据储存在一专属区块(exclusive block;诸如区块B3以及区块B12)中,该些专属区块仅储存属于相同区域的数据,因此它们被称为专属区块。任一个区域的最后数据(其对应于该区域的最后逻辑地址的数据)会被储存至一共享区块(例如区块B8)中,并且另一个区域的最后数据也会被储存至该共享区块中,在此实施例中,共享区块储存多个区域中的数据,换句话说,共享区块储存多个区域的最后数据,而专属区块仅储存单一区域中的数据。
在步骤1106中,快闪存储器控制器122建立或更新一逻辑至实体地址映射表,以记录逻辑地址与实体地址之间的映射关系,并且建立一共享区块表以供分区命名空间410_1的后续数据读取。图13为依据本发明一实施例的逻辑至实体地址映射表1300以及共享区块表1330的示意图。逻辑至实体地址映射表1300可包含有两个栏位,其中一栏位记录逻辑地址,以及另一栏位记录区块的实体地址。请搭配参照图12以及图13,由于区域Z1的数据被依序地写入至区块B3、区块B7以及区块B8中,以及区域Z3的数据被依序地写入至区块B12、区块B99以及区块B8中,因此逻辑至实体地址映射表1300记录区域Z1的起始逻辑地址Z1_LBA_S、区块B3的实体区块地址PBA3、区域Z1的逻辑地址(Z1_LBA_S+y)、区块B7的实体区块地址PBA7、区域Z1的逻辑地址(Z1_LBA_S+2*y)以及区块B8的实体区块地址PBA8,其中逻辑地址(Z1_LBA_S+y)可作为写入至区块B7的数据的第一逻辑地址(亦即第二部分数据Z1_1的第一逻辑地址),以及逻辑地址(Z1_LBA_S+2*y)可作为写入至区块B8的数据的第一逻辑地址(亦即第三部分数据Z1_2的第一逻辑地址)。
类似地,逻辑至实体地址映射表1300记录区域Z3的起始逻辑地址Z3_LBA_S、区块B12的实体区块地址PBA12、区域Z3的逻辑地址(Z3_LBA_S+y)、区块B99的实体区块地址PBA99、区域Z3的逻辑地址(Z3_LBA_S+2*y)以及区块B8的实体区块地址PBA8,其中逻辑地址(Z3_LBA_S+y)可作为写入至区块B99的数据的第一逻辑地址(亦即第二部分数据Z3_1的第一逻辑地址,其对应于区块B99的第一页面P1的逻辑地址),以及逻辑地址(Z3_LBA_S+2*y)可作为写入至区块B8的数据的第一逻辑地址(亦即第三部分数据Z3_2的第一逻辑地址)。应注意的是,上述“y”可代表有几笔来自主机装置110的有着不同逻辑地址的数据可被储存至一区块中,要注意的是,在主机装置110设置区域大小以及区域数量之后,每一个区域的起始逻辑地址就被决定,以及每一个子区域的起始逻辑地址也被决定,诸如起始逻辑地址Z1_LBA_S、逻辑地址(Z1_LBA_S+y)、逻辑地址(Z1_LBA_S+2*y)、起始逻辑地址Z3_LBA_S、逻辑地址(Z3_LBA_S+y)以及逻辑地址(Z3_LBA_S+2*y)。因此,逻辑至实体地址映射表1300可另被简化以具有一栏位,也就是说,仅具有实体区块地址的一栏位,并且可以藉由该表的项目(entry)来代表逻辑地址栏位,而无需实际地储存多个子区域的起始逻辑地址。
此外,共享区块表1330可包含有两个栏位,其中一栏位记录逻辑地址,以及另一栏位记录对应于逻辑地址的实体区块地址以及实体页面地址。在图13中,共享区块表1330记录区域Z1的第三部分数据Z1_2的第一逻辑地址(Z1_LBA_S+2*y)、相对应的实体区块地址PBA8以及实体页面地址P1,也就是说,对应于第三部分数据Z1_2中第一逻辑地址的数据被写入至区块B8的第一个页面P1中,此外,共享区块表1330记录区域Z3的第三部分数据Z3_2的第一逻辑地址(Z3_LBA_S+2*y)、相对应的实体区块地址PBA8以及实体页面地址P61,换句话说,对应于第三部分数据Z3_2的中第一逻辑地址的数据被写入至区块B8的第六十一个页面P61中。要注意的是,上述是假设区块中每一个页面仅可储存单一逻辑地址的数据,然而,取决于在一页面中可储存多少笔具有不同逻辑地址的数据,实际情况是可以被调整的。
此外,应注意的是,在写入区域Z1以及区域Z3的数据的过程中,写入操作可能并不会在区域Z1中的所有数据已经被写入至分区命名空间410_1之后,才开始写入区域Z3的数据,换句话说,在区域Z1中的数据还没完整地被写入时,快闪存储器控制器122可能需要开始将区域Z3的数据写入至分区命名空间410_1,因此,在本发明的另一实施例中,共享区块表1330可能额外地包含有一完成指示符栏位(completion indicator field),其是用以指示一区域的数据是否已经被完整地写入至共享区块中,微处理器212可参考对应于区域Z1的完成指示符来判断是否可以将区域Z3中的数据写入至区块B8中。
要注意的是,图13所示的逻辑至实体地址映射表1300以及共享区块表1330仅作为说明之用,在本发明的其它实施例中,逻辑至实体地址映射表1300以及共享区块表1330可包含有每一个逻辑地址以及相对应的实体地址,或逻辑至实体地址映射表1300以及共享区块表1330可包含有多个实体地址以及相对应的逻辑地址范围。
此外,快闪存储器控制器122可建立一有效页面计数表,其记录区块内有效页面的数量,其中有效页面代表数据不是旧数据(亦即快闪存储器模块124不具有用来更新旧数据的有着相同逻辑地址的其它数据)。图14为依据本发明一实施例的有效页面计数表1400的示意图。如图14所示,假设有效页面计数表1400包含有在区域Z1的数据完整地被写入至快闪存储器模块124中之后的即时资讯,但是区域Z3的数据还没有被完整地写入区块B8中。对应于区域Z1的区块B3、区块B7以及区块B8的有效页面计数分别为“128”、“128”以及“86”,以及对应于区域Z3的区块B12、区块B99以及区块B8的有效页面计数分别为“128”、“128”以及“86”,其中区域Z1的第三部分数据Z1_2在区块B8中具有60个页面,以及区域Z3的第三部分数据Z3_2在区块B8中暂时地具有26个页面。在一实施例中,有效页面计数表1400被暂时地储存于缓冲存储器126中。
此外,每一个共享区块另具有一详细(detailed)有效页面计数表,其用以清楚地指示区域的有效页面计数,图15为依据本发明一实施例的详细有效页面计数表1500的示意图,其中详细有效页面计数表1500是供图12~图14的共享区块B8来使用。如图15所示,详细有效页面计数表1500具有4个栏位:区域编号(zone number)、起始实体页面地址(startingphysical page address)、满资讯(full information)以及有效页面计数。起始实体页面地址栏位记录每一个区域的起始实体页面地址,举例来说,对应于区域Z1的第三部分数据Z1_2的页面P1以及对应于区域Z3的第三部分数据Z3_2的页面P61。满资讯栏位记录该区域的所有数据是否被完整地写入至区块B8,在此范例中,区域Z1的数据被完整地写入至快闪存储器模块124中,而区域Z3的数据还没有被完整地写入至区块B8中。有效页面计数栏位记录每一个区域的目前的有效页面计数,举例来说,区域Z1的第三部分数据Z1_2的有效页面计数是“60”,以及区域Z3的第三部分数据Z3_2的有效页面计数是“26”。
接着,倘若快闪存储器控制器122接收到来自主机装置110的解分配命令以解分配对应于一逻辑地址范围的数据的话,则微处理器212会更新逻辑至实体地址映射表以移除该逻辑地址范围的资讯,使得对应于该逻辑地址范围的数据可以被视为无效数据,举例来说,逻辑至实体地址映射表被更新以移除该逻辑地址范围的相对应的实体地址,或逻辑至实体地址映射表被更新以指出该逻辑地址范围不具有相对应的实体地址。之后,微处理器212基于对应于该逻辑地址范围的页面号码来更新有效页面计数表1400及/或详细有效页面计数表1500,举例来说,倘若来自主机装置110的解分配命令指示对应于区块B8内30个页面的数据的一逻辑地址范围,以及该逻辑地址范围对应于区域Z1的话,则有效页面计数表1400被更新以使得区块B8的有效页面计数变为“56”,并且详细有效页面计数表1500被更新以使得区域Z1的第三部分数据Z1_2的有效页面计数变为“30”。
此外,微处理器212可检查有效页面计数表1400、详细有效页面计数表1500以及一区域-区块映射表,以判断任一个区域是否都不具有任何有效数据,其中该区域-区块映射表可包含有关于每一个区域与相对应的实体区块的资讯,以图12为一范例,区域Z1对应于区块B3、区块B7以及区块B8,以及区域Z3对应于区块B12、区块B99以及区块B8,在一实施例中,逻辑至实体地址映射表1300可作为该区域-区块映射表,具体来说,倘若微处理器212侦测到在对应于区域Z1的区块B3以及区块B7不具有有效数据(亦即区块B3以及区块B7的有效页面计数皆等于0),在区块B8内的页面P1~页面P60不具有有效数据(亦即区域Z1的第三部分数据Z1_2的有效页面计数是等于0),并且详细有效页面计数表1500指示区域Z1的所有数据皆已经被完整地写入至快闪存储器模块124的话,则微处理器212可主动地通知主机装置110来建议其进行一重置命令以控制区域Z1自一满状态至一空状态。仅于接收到该重置命令之后,微处理器212才可抹除区块B3以及区块B7并且将区块B3以及区块B7设置为备用区块(亦即空白区块),以供储存其它数据,要注意的是,由于区块B8具有区域Z3的数据,因此即使区域Z1被重置,区块B8不可被释放(release)以作为备用区块。
要注意的是,为了避免错误地判断一区域不具有任何有效数据,微处理器212可建议主机装置110以仅于图15所示的满资讯栏位指示该区域的所有数据已经完整地被写入至快闪存储器模块124中时才会进行一重置命令,具体来说,倘若主机装置110传送一个或多个解分配命令以解分配对应于区域Z3的所有已写入数据的逻辑地址(例如逻辑地址对应于区块B12与区块B99内的所有页面以及区块B8的26个页面),但是图15所示的满资讯栏位指示区域Z3的所有数据还没有被完整地写入至快闪存储器模块124(亦即代表区域Z3的剩余数据在一周期之后可以被写入至区块B8中)的话,则微处理器212不可建议主机装置100来进行重置命令以重置区域Z3。
在一实施例中,快闪存储器控制器122可另具有多个暂存器,其中每一个暂存器用以储存一区域的一重置区域建议属性,以及该重置区域建议属性指示快闪存储器控制器122是否侦测到该区域内没有有效数据。在另一实施例中,倘若微处理器212侦测到在对应于区域Z1的区块B3、区块B7以及区块B8内没有有效数据的话,则快闪存储器控制器122可以为区域Z1主动地将一区域描述符改变事件传送至主机装置110,以建议主机装置110来传送一重置命令以重置该区域。
图16为依据本发明一实施例的快闪存储器控制器122的控制方法的流程图。请搭配参照图11~图15的上述实施例,该流程描述如下。
在步骤1600中,流程开始。
在步骤1602中,快闪存储器控制器判断是否自主机装置接收到一解分配命令,如果是,进入步骤1604;如果否,回到步骤1602。
在步骤1604中,快闪存储器控制器更新逻辑至实体地址映射表、有效页面计数表及/或详细有效页面计数表。
在步骤1606中,快闪存储器控制器参考有效页面计数表以及详细有效页面计数表来判断任一个区域是否都不具有任何有效数据,如果是,进入步骤1608;如果否,回到步骤1602。
在步骤1608中,快闪存储器控制器建议主机装置传送一重置命令,以重置不具有有效数据的区域。
在图6~图10所示的实施例中,每一个区块仅对应于单一区域,并且微处理器212检查有效页面计数表900以及一区域-区块映射表来判断任一个区域是否都不具有任何有效数据,以判断是否建议主机装置110传送重置命令。在图11~图16所示的实施例中,由于一区块可对应于多个区域,因此微处理器212检查有效页面计数表1400、详细有效页面计数表1500以及一区域-区块映射表来判断任一个区域是否都不具有任何有效数据,以判断是否建议主机装置110传送重置命令。在另一实施例中,微处理器212可基于有效页面计数表900或基于有效页面计数表1400以及详细有效页面计数表1500来建立一区域有效页面计数表,以便于判断任一个区域是否都不具有任何有效数据。
图17为依据本发明一实施例的区域有效页面计数表1700的示意图。如图17所示,区域有效页面计数表1700包含有关于每一个区域的有效页面计数的资讯,在此实施例中,当有效页面计数表900被更新时,区域有效页面计数表1700立即地被更新,或当有效页面计数表1400及/或详细有效页面计数表1500被更新时,区域有效页面计数表1700立即地被更新,举例来说,倘若每一个区域的所有数据被写入至快闪存储器模块124的282个页面,以及由于一第一解分配命令,有效页面计数表900被更新以减少对应于区域Z1的有效页面计数的话,则区域有效页面计数表1700基于更新后的有效页面计数表900而立即地被更新(例如区域Z1的有效页面计数自“282”被更新为“100”),接着,倘若由于一第二解分配命令,有效页面计数表900另被更新以减少对应于区域Z1的有效页面计数的话,区域有效页面计数表1700基于更新后的有效页面计数表900而立即地被更新(例如区域Z1的有效页面计数自“100”被更新为“0”),之后,微处理器212可基于区域有效页面计数表1700来判断任一个区域是否都不具有任何有效数据,而无需参考其它表(例如有效页面计数表900或有效页面计数表1400)。
图18为依据本发明一实施例的快闪存储器控制器122的控制方法的流程图。请搭配参照上述图17的实施例,该流程描述如下。
在步骤1800中,流程开始。
在步骤1802中,快闪存储器控制器判断是否自主机装置接到一解分配命令,如果是,进入步骤1804;如果否,回到步骤1802。
在步骤1804中,快闪存储器控制器更新逻辑至实体地址映射表、有效页面计数表及/或详细有效页面计数表。
在步骤1806中,快闪存储器控制器基于更新后的有效页面计数表及/或更新后的详细有效页面计数表来更新区域有效页面计数表。
在步骤1808中,快闪存储器控制器参考区域有效页面计数表来判断任一个区域是否都不具有任何有效数据,如果是,进入步骤1810;如果否,回到步骤1802。
在步骤1810中,快闪存储器控制器建议主机装置传送一重置命令,以重置不具有有效数据的区域。
在上述实施例中,倘若主机装置110传送一错误解分配命令的话,则有效页面计数表900、有效页面计数表1400以及区域有效页面计数表1700可能会有错误,这将会导致微处理器212做出错误决定,举例来说,倘若主机装置110传送一第一解分配命令,其指示一第一逻辑地址范围,接着主机装置110传送一第二解分配命令,其指示与该第一逻辑地址范围部分重迭的一第二逻辑地址范围的话,则有效页面计数的计算可能会有错误,为了解决此问题,区域有效页面计数表可以被修改为具有一解分配命令历史栏位(deallocate commandhistory field),以记录每一个页面的状态。具体来说,请参照图19,图19为依据本发明一实施例的区域有效页面映射表1900的示意图。区域有效页面映射表1900可包含有解分配命令历史栏位,其中解分配命令历史栏位可包含有多个位元,以及每一个位元用以指示一相对应的页面的数据是有效的还是无效的。举例来说,倘若一区域具有282个页面的话,则解分配命令历史栏位包含有282个位元,并且每一个位元对应于一页面,倘若该位元是等于“1”的话,则代表相对应的页面内的数据是有效的;以及倘若该位元是等于“0”的话,则代表相对应的页面内的数据是无效的。在图19所示的实施例中,由于区域Z1~区域Z3的所有数据被重新写入至快闪存储器模块124中,并且没有接受到任何解分配命令,因此解分配命令历史栏位的位元皆等于“1”,并且每一个区域Z1~区域Z3的有效页面计数是等于“282”。
接着,倘若快闪存储器控制器122自主机装置110接收到一解分配命令,以解分配一逻辑地址范围的话,则微处理器212可参考解分配命令内的该逻辑地址范围来反转(flip)解分配命令历史栏位的相对应的位元,具体来说,请参照图20,倘若快闪存储器控制器122自主机装置110接收到一解分配命令,以解分配对应于100个页面的一逻辑地址范围的话,则微处理器212可以将解分配命令历史栏位中对应于该100个页面的位元自“1”更新成“0”。
要注意的是,可以仅基于来自主机装置110的解分配命令来对区域有效页面映射表1900进行更新,而无需参考有效页面计数表900、有效页面计数表1400以及详细有效页面计数表1500。
在图19所示的实施例中,用语“页面”可以指示对应于一区块的一实体页面(例如16千位元组)或一逻辑地址单元(例如一逻辑区块地址,4千位元组)的一逻辑地址范围。
图21为依据本发明一实施例的快闪存储器控制器122的控制方法的流程图。请搭配参照上述图19以及图20的实施例,该流程描述如下。
在步骤2100中,流程开始。
在步骤2102中,快闪存储器控制器判断是否自主机装置接收到一解分配命令,如果是,进入步骤2104;如果否,回到步骤2102。
在步骤2104中,快闪存储器控制器基于该解分配命令的逻辑地址范围来更新区域有效页面计数表。
在步骤2106中,快闪存储器控制器参考区域有效页面计数表来判断任一个区域是否都不具有任何有效数据,如果是,进入步骤2018;如果否,回到步骤2102。
在步骤2108中,快闪存储器控制器建议主机装置传送一重置命令,以重置不具有有效数据的区域。
在图19~图21所示的实施例中,仅有区域有效页面计数表是用来让快闪存储器控制器122判断任一个区域是否都不具有任何有效数据,因此,当接收到解分配命令时,可能不会更新逻辑至实体地址映射表800、逻辑至实体地址映射表1300以及共享区块表1330,也就是说,即使数据对应于解分配命令的逻辑地址范围,储存在区块中的数据仍可以被读取。此外,在接收到来自主机装置110的重置命令之后,可以更新逻辑至实体地址映射表800、逻辑至实体地址映射表1300以及共享区块表1330,也就是说,仅在判断重置一个或多个区域之后,逻辑至实体地址映射表800、逻辑至实体地址映射表1300以及共享区块表1330才会被更新,具体来说,图22为依据本发明一实施例的快闪存储器控制器122的控制方法的流程图。请搭配参照上述实施例,该流程描述如下。
在步骤2200中,流程开始。
在步骤2202中,快闪存储器控制器自主机装置接收一重置命令,其中该重置命令指示重置一特定区域。
在步骤2204中,快闪存储器控制器基于该特定区域的逻辑地址范围来更新逻辑至实体地址映射表,以图13所示的逻辑至实体地址映射表1300为一范例,倘若区域Z1被重置的话,则对应于逻辑地址Z1_LBA_S、逻辑地址Z1_LBA_S+y以及逻辑地址Z1_LBA_S+2y的实体地址被修正为无效数据,诸如“FFFF”。
在步骤2206中,快闪存储器控制器将用来储存该特定区域的数据的多个区块的至少一部分作为一垃圾回收(garbage collection)操作的候选区块(candidate block),以图12与图13为例,倘若区域Z1被重置的话,则区块B3以及区块B7是用以进行垃圾回收操作的候选区块,并且由于区块B8可能还储存着区域Z3的数据,因此区块B8不作为用以进行垃圾回收操作的候选区块。
在步骤2208中,快闪存储器控制器在一适当的时间中对候选区块进行垃圾回收操作,以将候选区块内的有效数据(如果有的话)移动至一个或多个备用区块,并且再将候选区块抹除以作为备用区块(亦即空白(blank)区块或空(empty)区块),以供储存其它数据。
此外,在3D与非门型快闪存储器模块中,由于区块内的存储器单元可能被快闪存储器模块124内的操作(诸如对其它区块进行的其它读取操作或写入操作)所影响,因此区块内的存储器单元的电压位准可能会偏移(shift)。此外,倘若备用区块被快闪存储器模块124内的操作所影响的话,则备用区块可能会变脏(dirty),其导致随后被写入的数据的品质变差,为了解决此问题,此实施例提供了一种直接地将对应于重置区域的多个区块放入至备用区块池(spare block pool)中(亦即该些区块还没被抹除并且仍具有先前所写入的数据,其目前是无效数据),并且倘若需要一个或多个备用区块来储存新数据的话,则快闪存储器控制器122开始抹除该些区块以及储存新数据。藉由使用此控制方法,由于仅当该些区块需要被使用时,该些区块才会被抹除,因此准备储存新数据的备用区块相当干净(clean),并且写入的数据会具有较好的品质。鉴于以上所述,对应于重置区域的区块被直接地放入至备用区块池,而无需先对该些区块进行垃圾回收操作。
具体来说,图23为依据本发明一实施例的快闪存储器控制器122的控制方法的流程图。请搭配参照以上实施例,该流程描述如下。
在步骤2300中,流程开始。
在步骤2302中,快闪存储器控制器自主机装置接收一重置命令,其中该重置命令指示重置一特定区域。
在步骤2304中,快闪存储器控制器基于该特定区域的逻辑地址来更新逻辑至实体地址映射表,以图13所示的逻辑至实体地址映射表1300为一范例,倘若区域Z1被重置的话,则对应于逻辑地址Z1_LBA_S、逻辑地址Z1_LBA_S+y以及逻辑地址Z1_LBA_S+2y的实体地址被修正为无效数据,诸如“FFFF”。
在步骤2306中,直接地将用来储存该特定区域的数据的多个区块的至少一部分放入至一备用区块池中,以图12与图13为例,倘若区域Z1被重置的话,则区块B3以及区块B7被放入至备用区块池中,并且由于区块B8可能还储存着区域Z3的数据,因此区块B8不会被放入至备用区块池中。
在步骤2308中,仅当微处理器需要将新数据写入至该多个区块的至少一部分时,才会抹除该多个区块的至少一部分。
总结来说,在本发明的快闪存储器控制器的控制方法中,藉由根据来自主机装置的解分配命令来建立一有效页面计数表、一详细有效页面计数表及/或一区域有效页面计数表,快闪存储器控制器可以有效地且快速地判断任一个区域是否都不具有任何有效数据,以使得快闪存储器控制器可以建议主机装置来传送一重置命令,以重置该区域。此外,在接收到来自主机装置的重置命令之后,快闪存储器控制器可以利用一垃圾回收操作或直接地将对应于抹除区域的区块放入至一备用区块池中,以供进一步的使用。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (15)
1.一种快闪存储器控制器的控制方法,其中该快闪存储器控制器用以存取一快闪存储器模块,该快闪存储器模块包含有多个区块,每一个区块包含有多个页面,以及该控制方法包含有:
自一主机装置接收一设置命令,其中该设置命令将该快闪存储器模块的至少一部分配置成一分区命名空间,该分区命名空间逻辑上包含有多个区域,该主机装置对该分区命名空间进行一基于区域的数据写入操作,每一个区域具有一相同大小,对应于每一个区域的多个逻辑地址是连续的,以及该多个逻辑地址在该多个区域之间不重迭;
将一第一区域的数据写入至多个第一区块中;
建立一区域-区块映射表,其中该区域-区块映射表包含有关于该第一区域、相对应的该多个第一区块以及一共享区块的资讯;
基于写入至该多个第一区块的该第一区域的该数据来建立或更新一逻辑至实体地址映射表;
自该主机装置接收一重置命令,其中该重置命令指示重置该第一区域;
更新该逻辑至实体地址映射表,以删除对应于该第一区域的逻辑地址的实体地址;
直接地将该多个第一区块放入至一备用区块池中;
藉由参考一有效页面计数表来判断该共享区块是否不具有任何有效数据,其中该有效页面计数表记录该共享区块及其相对应的有效页面计数;以及
倘若该共享区块被判定不具有任何有效数据的话,则将该共享区块放入至该备用区块池中。
2.如权利要求1所述的控制方法,其特征在于,另包含有:
仅当该多个第一区块的至少一部分需被用来储存新数据时,才会抹除该多个第一区块。
3.如权利要求1所述的控制方法,其特征在于,直接地将该多个第一区块放入至该备用区块池中的步骤包含有:
直接地将该多个第一区块放入至该备用区块池中,而无需先对该多个第一区块进行一垃圾回收操作。
4.如权利要求1所述的控制方法,其特征在于,直接地将该多个第一区块放入至该备用区块池中的步骤包含有:
直接地将该多个第一区块放入至该备用区块池中,而无需先将该第一区域的该数据抹除。
5.如权利要求1所述的控制方法,其特征在于,另包含有:
基于该第一区域的逻辑地址来建立一区域有效页面计数表;
自该主机装置接收至少一解分配命令,其中每一个解分配命令包含有待解分配的一逻辑地址范围;
根据该至少一解分配命令的该逻辑地址范围来更新该区域有效页面计数表,以产生一更新后区域有效页面计数表;
根据该更新后区域有效页面计数表来判断对应于该第一区域的所有该数据是否变得无效;以及
倘若对应于该第一区域的所有该数据变得无效的话,则建议该主机装置传送该重置命令。
6.一种快闪存储器控制器,其中该快闪存储器控制器用以存取一快闪存储器模块,该快闪存储器模块包含有多个区块,每一个区块包含有多个页面,以及该快闪存储器控制器包含有:
一只读存储器,用以储存一程式码;
一微处理器,用以执行该程式码来控制该快闪存储器模块的存取;以及
一缓冲存储器;
其中该微处理器用以:
自一主机装置接收一设置命令,其中该设置命令将该快闪存储器模块的至少一部分配置成一分区命名空间,该分区命名空间逻辑上包含有多个区域,该主机装置对该分区命名空间进行一基于区域的数据写入操作,每一个区域具有一相同大小,对应于每一个区域的多个逻辑地址是连续的,以及该多个逻辑地址在该多个区域之间不重迭;
将一第一区域的数据写入至多个第一区块中;
建立一区域-区块映射表,其中该区域-区块映射表包含有关于该第一区域、相对应的该多个第一区块以及一共享区块的资讯;
基于写入至该多个第一区块的该第一区域的该数据来建立或更新一逻辑至实体地址映射表;
自该主机装置接收一重置命令,其中该重置命令指示重置该第一区域;
更新该逻辑至实体地址映射表,以删除对应于该第一区域的逻辑地址的实体地址;
直接地将该多个第一区块放入至一备用区块池中;
藉由参考一有效页面计数表来判断该共享区块是否不具有任何有效数据,其中该有效页面计数表记录该共享区块及其相对应的有效页面计数;以及
倘若该共享区块被判定不具有任何有效数据的话,则将该共享区块放入至该备用区块池中。
7.如权利要求6所述的快闪存储器控制器,其特征在于,另包含有:
仅当该多个第一区块的至少一部分需被用来储存新数据时,才会抹除该多个第一区块。
8.如权利要求6所述的快闪存储器控制器,其特征在于,直接地将该多个第一区块放入至该备用区块池中的步骤包含有:
直接地将该多个第一区块放入至该备用区块池中,而无需先对该多个第一区块进行一垃圾回收操作。
9.如权利要求6所述的快闪存储器控制器,其特征在于,直接地将该多个第一区块放入至该备用区块池中的步骤包含有:
直接地将该多个第一区块放入至该备用区块池中,而无需先将该第一区域的该数据抹除。
10.如权利要求6所述的快闪存储器控制器,其特征在于,另包含有:
基于该第一区域的逻辑地址来建立一区域有效页面计数表;
自该主机装置接收至少一解分配命令,其中每一个解分配命令包含有待解分配的一逻辑地址范围;
根据该至少一解分配命令的该逻辑地址范围来更新该区域有效页面计数表,以产生一更新后区域有效页面计数表;
根据该更新后区域有效页面计数表来判断对应于该第一区域的所有该数据是否变得无效;以及
倘若对应于该第一区域的所有该数据变得无效的话,则建议该主机装置传送该重置命令。
11.一种储存装置,包含有:
一快闪存储器模块,其中该快闪存储器模块包含有多个区块,以及每一个区块包含有多个页面;以及
一快闪存储器控制器,用以存取该快闪存储器模块;
其中该快闪存储器控器用以:
自一主机装置接收一设置命令,其中该设置命令将该快闪存储器模块的至少一部分配置成一分区命名空间,该分区命名空间逻辑上包含有多个区域,该主机装置对该分区命名空间进行一基于区域的数据写入操作,每一个区域具有一相同大小,对应于每一个区域的多个逻辑地址是连续的,以及该多个逻辑地址在该多个区域之间不重迭;
将一第一区域的数据写入至多个第一区块中;
建立一区域-区块映射表,其中该区域-区块映射表包含有关于该第一区域、相对应的该多个第一区块以及一共享区块的资讯;
基于写入至该多个第一区块的该第一区域的该数据来建立或更新一逻辑至实体地址映射表;
自该主机装置接收一重置命令,其中该重置命令指示重置该第一区域;
更新该逻辑至实体地址映射表,以删除对应于该第一区域的逻辑地址的实体地址;
直接地将该多个第一区块放入至一备用区块池中;
藉由参考一有效页面计数表来判断该共享区块是否不具有任何有效数据,其中该有效页面计数表记录该共享区块及其相对应的有效页面计数;以及
倘若该共享区块被判定不具有任何有效数据的话,则将该共享区块放入至该备用区块池中。
12.如权利要求11所述的储存装置,其特征在于,另包含有:
仅当该多个第一区块的至少一部分需被用来储存新数据时,才会抹除该多个第一区块。
13.如权利要求11所述的储存装置,其特征在于,直接地将该多个第一区块放入至该备用区块池中的步骤包含有:
直接地将该多个第一区块放入至该备用区块池中,而无需先对该多个第一区块进行一垃圾回收操作。
14.如权利要求11所述的储存装置,其特征在于,直接地将该多个第一区块放入至该备用区块池中的步骤包含有:
直接地将该多个第一区块放入至该备用区块池中,而无需先将该第一区域的该数据抹除。
15.如权利要求11所述的储存装置,其特征在于,另包含有:
基于该第一区域的逻辑地址来建立一区域有效页面计数表;
自该主机装置接收至少一解分配命令,其中每一个解分配命令包含有待解分配的一逻辑地址范围;
根据该至少一解分配命令的该逻辑地址范围来更新该区域有效页面计数表,以产生一更新后区域有效页面计数表;
根据该更新后区域有效页面计数表来判断对应于该第一区域的所有该数据是否变得无效;以及
倘若对应于该第一区域的所有该数据变得无效的话,则建议该主机装置传送该重置命令。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202163169222P | 2021-04-01 | 2021-04-01 | |
| US63/169,222 | 2021-04-01 | ||
| US17/581,998 US11809328B2 (en) | 2021-04-01 | 2022-01-24 | Control method of flash memory controller and associated flash memory controller and storage device |
| US17/581,998 | 2022-01-24 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN115203065A true CN115203065A (zh) | 2022-10-18 |
Family
ID=83448064
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202210277021.2A Pending CN115576860A (zh) | 2021-04-01 | 2022-03-21 | 快闪存储器控制器的控制方法、快闪存储器控制器以及储存装置 |
| CN202210281090.0A Pending CN115203065A (zh) | 2021-04-01 | 2022-03-21 | 快闪存储器控制器的控制方法、快闪存储器控制器以及储存装置 |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202210277021.2A Pending CN115576860A (zh) | 2021-04-01 | 2022-03-21 | 快闪存储器控制器的控制方法、快闪存储器控制器以及储存装置 |
Country Status (3)
| Country | Link |
|---|---|
| US (2) | US20220318157A1 (zh) |
| CN (2) | CN115576860A (zh) |
| TW (4) | TWI823784B (zh) |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| LU102091B1 (en) * | 2020-09-29 | 2022-03-29 | Microsoft Technology Licensing Llc | Zone hints for zoned namespace storage devices |
| US20220318157A1 (en) * | 2021-04-01 | 2022-10-06 | Silicon Motion, Inc. | Control method of flash memory controller and associated flash memory controller and storage device |
| US12360890B2 (en) * | 2022-11-10 | 2025-07-15 | SanDisk Technologies, Inc. | Zone-based garbage collection in ZNS SSDs |
| US20240168684A1 (en) * | 2022-11-22 | 2024-05-23 | Western Digital Technologies, Inc. | Efficient Deallocation and Reset of Zones in Storage Device |
| US12481426B2 (en) * | 2022-11-30 | 2025-11-25 | Micron Technology, Inc. | Optimizing data reliability using erase retention |
| CN115878051B (zh) * | 2023-03-03 | 2023-06-09 | 浪潮电子信息产业股份有限公司 | 一种数据同步方法、数据同步系统、存储介质和电子设备 |
| KR20240139438A (ko) | 2023-03-14 | 2024-09-23 | 삼성전자주식회사 | 스토리지 장치, 스토리지 장치를 포함하는 전자 장치, 그리고 스토리지 장치를 포함하는 전자 장치의 동작 방법 |
| CN119473164B (zh) * | 2025-01-13 | 2025-04-08 | 合肥兆芯电子有限公司 | 动态确定管理策略的共享缓存区数据管理方法与存储系统 |
| CN120723169B (zh) * | 2025-08-22 | 2026-01-16 | 山东云海国创云计算装备产业创新中心有限公司 | 一种存储设备、电子设备、数据存储方法及存储介质 |
Family Cites Families (17)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8015348B2 (en) | 2004-06-30 | 2011-09-06 | Super Talent Electronics, Inc. | Memory address management systems in a large capacity multi-level cell (MLC) based flash memory device |
| TWI447735B (zh) | 2010-02-05 | 2014-08-01 | Phison Electronics Corp | 記憶體管理與寫入方法及其可複寫式非揮發性記憶體控制器與儲存系統 |
| US9323668B2 (en) | 2011-06-10 | 2016-04-26 | International Business Machines Corporation | Deconfigure storage class memory command |
| TWI454911B (zh) | 2011-10-12 | 2014-10-01 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
| US20130254463A1 (en) * | 2012-03-23 | 2013-09-26 | Kabushiki Kaisha Toshiba | Memory system |
| US9690695B2 (en) | 2012-09-20 | 2017-06-27 | Silicon Motion, Inc. | Data storage device and flash memory control method thereof |
| WO2017022082A1 (ja) * | 2015-08-04 | 2017-02-09 | 株式会社日立製作所 | フラッシュメモリパッケージ、及び、フラッシュメモリパッケージを含むストレージシステム |
| JP6765321B2 (ja) | 2017-02-28 | 2020-10-07 | キオクシア株式会社 | メモリシステムおよび制御方法 |
| TWI672590B (zh) | 2017-06-27 | 2019-09-21 | 慧榮科技股份有限公司 | 資料儲存裝置 |
| US10877898B2 (en) * | 2017-11-16 | 2020-12-29 | Alibaba Group Holding Limited | Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements |
| KR102793029B1 (ko) | 2019-04-22 | 2025-04-09 | 에스케이하이닉스 주식회사 | 데이터를 저장할 수 있는 복수의 영역을 포함하는 메모리 시스템 및 메모리 시스템의 동작방법 |
| TWI726314B (zh) | 2019-05-02 | 2021-05-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
| US11726679B2 (en) * | 2019-11-05 | 2023-08-15 | Western Digital Technologies, Inc. | Applying endurance groups to zoned namespaces |
| JP7346311B2 (ja) * | 2020-01-16 | 2023-09-19 | キオクシア株式会社 | メモリシステム |
| US11200162B2 (en) * | 2020-04-28 | 2021-12-14 | Western Digital Technologies, Inc. | Condensing logical to physical table pointers in SSDs utilizing zoned namespaces |
| KR20220059259A (ko) * | 2020-11-02 | 2022-05-10 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그 동작 방법 |
| US20220318157A1 (en) * | 2021-04-01 | 2022-10-06 | Silicon Motion, Inc. | Control method of flash memory controller and associated flash memory controller and storage device |
-
2022
- 2022-01-24 US US17/582,010 patent/US20220318157A1/en not_active Abandoned
- 2022-01-24 US US17/581,998 patent/US11809328B2/en active Active
- 2022-03-08 TW TW112106639A patent/TWI823784B/zh active
- 2022-03-08 TW TW111108409A patent/TWI807674B/zh active
- 2022-03-08 TW TW111108415A patent/TWI798016B/zh active
- 2022-03-08 TW TW112119909A patent/TWI821151B/zh active
- 2022-03-21 CN CN202210277021.2A patent/CN115576860A/zh active Pending
- 2022-03-21 CN CN202210281090.0A patent/CN115203065A/zh active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| TW202240401A (zh) | 2022-10-16 |
| TWI821151B (zh) | 2023-11-01 |
| US20220318157A1 (en) | 2022-10-06 |
| CN115576860A (zh) | 2023-01-06 |
| TW202324116A (zh) | 2023-06-16 |
| TW202340960A (zh) | 2023-10-16 |
| TW202240402A (zh) | 2022-10-16 |
| US11809328B2 (en) | 2023-11-07 |
| TWI823784B (zh) | 2023-11-21 |
| TWI807674B (zh) | 2023-07-01 |
| TWI798016B (zh) | 2023-04-01 |
| US20220318133A1 (en) | 2022-10-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI807674B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置 | |
| CN115145478B (zh) | 快闪存储器控制器的控制方法、快闪存储器控制器以及储存装置 | |
| TWI806508B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置 | |
| US12014063B2 (en) | Control method for flash memory controller and associated flash memory controller and storage device | |
| TW201915733A (zh) | 用以在記憶裝置中進行存取管理的方法、相關記憶裝置及其控制器以及相關電子裝置 | |
| TW201413448A (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
| US20150058531A1 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
| CN111399751A (zh) | 闪存控制器、管理闪存模块的方法及相关的电子装置 | |
| US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
| TWI867597B (zh) | 借助隨機特性控制來進行記憶體裝置的資料存取管理的方法、記憶體裝置、電子裝置以及記憶體裝置的記憶體控制器 | |
| TWI883837B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置 | |
| TWI837829B (zh) | 存取快閃記憶體模組的方法與相關的快閃記憶體控制器及記憶裝置 | |
| TWI867952B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器以及儲存裝置 | |
| TW202414424A (zh) | 存取快閃記憶體模組的方法與相關的快閃記憶體控制器及記憶裝置 | |
| US20150205715A1 (en) | Data protecting method, memory storage apparatus and memory control circuit unit |
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 |