CN110908927A - 数据储存装置及其删除命名空间的方法 - Google Patents
数据储存装置及其删除命名空间的方法 Download PDFInfo
- Publication number
- CN110908927A CN110908927A CN201910807154.4A CN201910807154A CN110908927A CN 110908927 A CN110908927 A CN 110908927A CN 201910807154 A CN201910807154 A CN 201910807154A CN 110908927 A CN110908927 A CN 110908927A
- Authority
- CN
- China
- Prior art keywords
- mapping table
- logical
- namespace
- physical address
- global
- 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
- 238000013500 data storage Methods 0.000 title claims abstract description 43
- 238000000034 method Methods 0.000 title claims abstract description 20
- 238000013507 mapping Methods 0.000 claims abstract description 108
- 230000004044 response Effects 0.000 claims abstract description 7
- 238000012217 deletion Methods 0.000 claims description 6
- 230000037430 deletion Effects 0.000 claims description 6
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000012005 ligant binding assay Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
- G06F12/0623—Address space extension for memory modules
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Abstract
本发明涉及一种数据储存装置及其删除命名空间的方法。该数据储存装置包括:一快闪存储器及一存储器控制器。存储器控制器管理快闪存储器一全域逻辑至物理地址映射表(全域L2P映射表),其中全域L2P映射表包括多个命名空间,且上述命名空间对应于快闪存储器中的多个物理空间。响应于存储器控制器接收来自主机的命名空间删除指令,存储器控制器删除上述命名空间中的目标命名空间及目标命名空间在全域L2P映射表中所对应的逻辑地址范围。存储器控制器还移动在目标命名空间之后的所有命名空间在全域L2P映射表所相应的逻辑地址范围以更新全域L2P映射表。
Description
技术领域
本发明有关于一种数据储存装置,特别是有关于一种数据储存装置及其删除命名空间的方法。
背景技术
快闪存储器装置通常分为NOR快闪装置与NAND快闪装置。NOR快闪装置为随机存取装置,而可于地址脚位上提供任何的地址,用以存取NOR快闪装置的主装置(host),并及时地由NOR快闪装置的数据脚位上获得储存于该地址上的数据。相反地,NAND快闪装置并非随机存取,而是序列存取。NAND快闪装置无法像NOR快闪装置一样,可以存取任何随机地址,主装置反而需要写入序列的位元组(bytes)的值到NAND快闪装置中,用以定义请求命令(command)的类型(如,读取、写入、抹除等),以及用在此命令上的地址。地址可指向一个页面(在快闪存储器中的一个写入作业的最小数据块)或一个区块(在快闪存储器中的一个抹除作业的最小数据块)。实际上,NAND快闪装置通常从存储器单元(memory cells)上读取或写入完整的数页数据。当一整页的数据从阵列读取到装置中的缓存器(buffer)后,藉由使用提取信号(strobe signal)顺序地敲出(clock out)内容,让主单元可逐位元组或字元组(words)存取数据。
此外,在快闪存储器中往往会有多个命名空间,在快闪存储器的逻辑至物理地址映射表中,各个命名空间均有对应的命名空间映射表。然而,当主机对快闪存储器进行多次命名空间删除及建立的操作时,在传统的数据储存装置中的逻辑至物理地址映射表中的各命名空间映射表会逐渐变得零散,使得存储器控制器不易管理及维护命名空间映射表。
因此,需要一种数据储存装置及删除命名空间的方法以解决上述问题。
发明内容
本发明提供一种数据储存装置,包括:一快闪存储器及一存储器控制器。存储器控制器是管理快闪存储器一全域逻辑至物理地址映射表(全域L2P映射表),其中全域L2P映射表包括多个命名空间,且上述命名空间是对应于快闪存储器中的多个物理空间。响应于存储器控制器接收来自主机的命名空间删除指令,存储器控制器删除上述命名空间中的目标命名空间及目标命名空间在全域L2P映射表中所对应的逻辑地址范围。存储器控制器还移动在目标命名空间之后的所有命名空间在全域L2P映射表所相应的逻辑地址范围以更新全域L2P映射表。
本发明还提供一种删除命名空间的方法,用于一数据储存装置,其中数据储存装置包括一快闪存储器。该方法包括:管理该快闪存储器的一全域逻辑至物理地址映射表,其中该全域逻辑至物理地址映射表包括多个命名空间,且这些命名空间对应于该快闪存储器中的多个物理空间;接收来自一主机的一命名空间删除指令;依据该命名空间删除指令以删除这些命名空间中的一目标命名空间及该目标命名空间在该全域逻辑至物理地址映射表中所对应的逻辑地址范围;以及移动在该目标命名空间之后的所有命名空间在该全域逻辑至物理地址映射表所相应的逻辑地址范围以更新该全域逻辑至物理地址映射表。
本发明还提供一种数据储存装置,包括:一快闪存储器以及一存储器控制器。存储器控制器用以管理该快闪存储器的一全域逻辑至物理地址映射表,其中该全域逻辑至物理地址映射表包括多个命名空间,且这些命名空间对应于该快闪存储器中的多个物理空间。存储器控制器接收来自一主机的一命名空间删除指令,并删除这些命名空间中的一第一目标命名空间及该第一目标命名空间在该全域逻辑至物理地址映射表中所对应的逻辑地址范围。响应于该存储器控制器从该主机接收欲建立一第二目标命名空间的一命名空间建立指令,该存储器控制器还判断是否能在该第一目标命名空间的逻辑地址范围建立该第二目标命名空间。响应于该存储器控制器判断无法在该第一目标命名空间的逻辑地址范围建立该第二目标命名空间,该存储器控制器移动在该第一目标命名空间之后的所有命名空间在该全域逻辑至物理地址映射表所相应的逻辑地址范围以更新该全域逻辑至物理地址映射表,并将该第二目标命名空间建立在更新后的该全域逻辑至物理地址映射表中的剩余逻辑地址范围。
附图说明
图1为依据本发明一实施例中的电子系统的方块图。
图2为依据本发明一实施例的存取接口与储存单元的方块图。
图3为依据本发明一实施例的一个存取子接口与多个快闪存储器晶粒的连接示意图。
图4A~4F为依据本发明一实施例中的逻辑至物理地址映射表的示意图。
图5为依据本发明一实施例中的删除命名空间的方法的流程图。
图6为依据本发明一实施例中的建立命名空间的方法的流程图。
符号说明
100~电子系统;
120~主机;
140~数据储存装置;
150~存取接口;
160~存储器控制器;
162~处理单元;
163~储存单元;
164~启动程序式;
165~指令缓冲器;
166~静态随机存取存储器;
170~存取接口;
180~快闪存储器;
181~快闪转译层;
190~动态随机存取存储器;
170_0-170_j~存取子接口;
180_0_0-180_j_i~快闪存储器晶粒;
320_0_0-320_0_i~芯片致能控制信号;
420、422-428、432、442~逻辑地址范围;
430、434、440、444~剩余逻辑地址范围;
LBA(0)、LBA(A-1)、LBA(A+B-1)、LBA(A+B+C-1)、LBA(A+B+C+D-1)~逻辑地址;
LBA(X-1)、LBA(A+B+D-1)、LBA(A+B+E-1)~逻辑地址;
NSID#1~NSID#5~命名空间;
S510-S540、S610-S670~步骤。
具体实施方式
为使本发明的上述目的、特征和优点能更明显易懂,下文特举一较佳实施例,并配合附图,作详细说明如下。
图1为依据本发明一实施例中的电子系统的方块图。电子系统100例如可为一个人电脑(personal computer)、一数据伺服器(data server)、一网络附加储存装置(network-attached storage,NAS),一可携式电子装置(portable electronic device)等等,但本发明并不限于此。可携式电子装置例如可为一笔记型电脑、手持行动电话、智慧型手机、平板电脑、个人数位助理(personal digital assistant,PDA)、数位相机(digital camera)、数位摄影机(digital video camera)、可携式多媒体播放器(portable multimediaplayer)、个人导航装置(personal navigation device)、手持游戏主机(handheld gameconsole)、电子书(e-book)等等,但本发明并不限于此。
电子装置100包括主机(host)120以及数据储存装置140。数据储存装置140包括存储器控制器160、快闪存储器180以及动态随机存取存储器190。存储器控制器160包括处理单元162、储存单元163、静态随机存取存储器(Static Random Access Memory,SRAM)166。处理单元162可使用多种方式实施,例如专用硬件电路或通用硬件实现(例如,单一处理器、具平行处理能力的多处理器或其他具运算能力的处理器)、上述实现方式例如可为通用处理器(general-purpose processor)、或微控制器(microcontroller),但本发明并不限于此。动态随机存取存储器190为非必要元件,并且可被主机存储器缓存(Host MemoryBuffer,HMB)所替代。动态随机存取存储器190的数据储存空间大于静态随机存取存储器166。
存储器控制器160中的处理单元162可根据主机120所下达的命令操作,例如透过存取接口170写入数据到快闪存储器180中的指定地址、或是由快闪存储器180中的指定地址读取页面数据。
处理单元162与快闪存储器180间的数据与命令传递透过数个电子信号进行协调,上述电子信号包括数据线(data line)、时脉信号(clock signal)与控制信号(controlsignal)。数据线可用以传递命令、地址、读出及写入的数据;控制信号线可用以传递芯片致能(Chip Enable,CE)、地址提取致能(Address Latch Enable,ALE)、命令提取致能(Command Latch Enable,CLE)、写入致能(Write Enable,WE)等控制信号。
存取接口170可采用双倍数据率(Double Data Rate,DDR)通讯协定与快闪存储器180沟通,例如,开放NAND快闪(Open NAND Flash Interface,ONFI)、双倍数据率开关(DDRToggle)或其他接口。处理单元162另可使用存取接口150透过指定通讯协定与主机120进行沟通,例如,通用序列汇流排(Universal Serial Bus,USB)、先进技术附着(AdvancedTechnology Attachment,ATA)、序列先进技术附着(Serial Advanced TechnologyAttachment,SATA)、快速周边元件互联(Peripheral Component Interconnect Express,PCI-E)、非挥发性存储器的传输规范(Non-Volatile Memory Express,NVMe)或其他接口。
储存单元163可为非挥发性存储器,例如为只读存储器(Read-Only Memory,ROM)、可擦除式可程序式化只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电子可擦除式可程序式化只读存储器(Electrically Erasable Programmable Read-OnlyMemory,EEPROM)或电子熔丝(E-Fuse)。储存单元163储存启动程序式164,其包括启动码(Boot Code)或启动程序式(Bootloader),且可由处理单元162执行,存储器控制器160基于启动程序式164而完成开机,并开始控制该快闪存储器180的运作,例如,读取线上烧录(In-System Programming,ISP)码。
快闪存储器180例如为NAND快闪存储器,且快闪存储器180可包含多个储存子单元,每一个储存子单元实施于一个晶粒(die)或逻辑单元编号(Logical Unit Number,LUN)上,各自使用关联的存取子接口与处理单元162进行沟通。
图2为依据本发明实施例的存取接口与储存单元的方块图。数据储存装置140可包含j+1个存取子接口170_0至170_j,存取子接口又可称为通道(channel),每一个存取子接口连接i+1个快闪存储器晶粒。换句话说,i+1个快闪存储器晶粒共享一个存取子接口。例如,当数据储存装置140包含4个通道(j=3)且每一个通道连接4个储存单元(i=3)时,快闪存储器180一共拥有16个快闪存储器晶粒180_0_0至180_j_i。处理单元162可驱动存取子接口170_0至170_j中之一者,从指定的快闪存储器晶粒读取数据。每个快闪存储器晶粒拥有独立的芯片致能(CE)控制信号。
换句话说,当欲对指定的快闪存储器晶粒进行数据读取时,需要驱动关联的存取子接口致能此快闪存储器晶粒的芯片致能控制信号。图3为依据本发明实施例的一个存取子接口与多个快闪存储器晶粒的连接示意图。处理单元162可透过存取子接口170_0使用独立的芯片致能控制信号320_0_0至320_0_i来从连接的快闪存储器晶粒180_0_0至180_0_i中选择出其中一者,接着,透过共享的数据线310_0从选择出的快闪存储器晶粒的指定位置读取数据。
在一实施例中,数据储存装置140运作时,存储器控制器160建立并更新逻辑至物理地址映射表(L2P映射表),L2P映射表标示逻辑地址至物理空间的映射资讯,且储存于数据储存装置140的快闪存储器180的快闪转译层181。在一些实施例中,数据储存装置140仅配置小容量的动态随机存取存储器190(又称作部份动态随机存取存储器,Partial DRAM),或是数据储存装置140并未配置有动态随机存取存储器190而使用主机存储器缓存(HostMemory Buffer,HMB),因此,无法将整个L2P映射表载入动态随机存取存储器190或主机存储器缓存。在此条件下,存储器控制器160仅将部分L2P映射表载入动态随机存取存储器190、静态随机存取存储器166、或主机存储器缓存。
逻辑地址较佳为逻辑区块地址(Logical Block Address,LBA),可对应到512位元的使用者数据(简称数据)。在另一些实施例中,逻辑地址可为全域主机页编号(GlobalHost Page,GHP),可对应到4K位元组或16K位元组的数据。为了简化说明,在下述中将以LBA为例,但不以此为限。
图4A~4C为依据本发明一实施例中的L2P映射表的示意图。为了便于说明,在下面实施例中,存储器控制器160将全部或部分的L2P映射表载入至动态随机存取存储器190,并依据来自主机120的命名空间操作指令(例如可为命名空间建立指令或命名空间删除指令)以对L2P映射表中的命名空间映射表相进行相应的操作。
假设主机120未在数据储存装置140建立任何命名空间,或是,命名空间的数量等于1,数据储存装置140的储存空间(或最大储存空间)可用以储存X笔使用者数据,每一笔使用者数据皆对应至一个LBA,逻辑地址范围420从LBA(0)到LBA(X-1),LBA(0)为起始逻辑地址,LBA(X-1)为结束逻辑地址,如图4A所示。逻辑地址范围420中的逻辑地址较佳为连续;如果逻辑地址范围420中的逻辑地址为不连续时,逻辑地址范围420所表示的逻辑地址数量将小于数值X。
当主机100对数据储存装置140下达命名空间建立(create)指令以在数据储存装置140中建立新的命名空间,每一命名空间皆有一个特定的命名空间识别码,例如:命名空间识别码ID#1、ID#2、ID#3、ID#4,分别对应至命名空间NSID#1、NSID#2、NSID#3、NSID#4。在收到命名空间建立指令之后,存储器控制器160会依据LBA总数来建立命名空间,例如,命名空间NSID#1具有逻辑地址范围422,LBA总数等于数值A;命名空间NSID#2具有逻辑地址范围424,LBA总数等于数值B;命名空间NSID#3具有逻辑地址范围426,LBA总数等于数值C;命名空间NSID#4具有逻辑地址范围428,LBA总数等于数值D,数值A加上B加上C加上D小于等于数值X。每一命名空间NSID的起始逻辑地址最佳为LBA(0)。另外,数据储存装置140可能仍有部份储存空间未被使用,如剩余逻辑地址范围430所示。此外,命名空间NSID#1~NSID#4分别对应至快闪存储器180中的不同的物理空间。
由于每一命名空间NSID皆为独立运作,因此,为了管理命名空间NSID#1、NSID#2、NSID#3、NSID#4,存储器控制器160需建立4个L2P映射表,例如:L2P映射表#1、L2P映射表#2、L2P映射表#3、L2P映射表#4,以分别管理命名空间NSID#1、NSID#2、NSID#3、NSID#4内所储存的数据。
如何有效率且正确地管理多个命名空间一直是个重要且困扰的技术课题。在本发明中,存储器控制器160建立全域L2P映射表(Global L2P Mapping Table)来管理命名空间NSID#1、NSID#2、NSID#3、NSID#4内所储存的数据,并将每一命名空间逻辑地址范围彼此相邻,如图4B所示,逻辑地址范围422为LBA(0)至LBA(A-1),逻辑地址范围424为LBA(A)至LBA(A+B-1),逻辑地址范围426为LBA(A+B)至LBA(A+B+C-1),逻辑地址范围428为LBA(A+B+C)至LBA(A+B+C+D-1)。存储器控制器160藉由主机指令中的命名空间识别码ID#1、ID#2、ID#3、ID#4来判断主机指令所欲存取的命名空间,并将主机指令中的LBA对应至命名空间中的逻辑地址范围,例如,主机指令包括命名空间识别码ID#2以及LBA#100的读取指令,则存储器控制器160将LBA#100转换成LBA#(A+100),再参照全域L2P映射表的内容,LBA#100所对应的物理地址。存储器控制器160读取并回传此物理地址的内容以回复主机指令。如此一来,存储器控制器160可依据全域L2P映射表来有效率且正确地管理多个命名空间。
当主机120对特定命名空间写入数据或删除数据时,全域L2P映射表所记录的逻辑至物理地址的映射关系亦会更新。存储器控制器160较佳将全域L2P映射表上传至动态随机存取存储器190或主机存储器缓存,并在适当时机将更新后的全域L2P映射表写入快闪存储器180。
除了建立命名空间之外,主机120亦可对数据储存装置140进行命名空间的相关操作,例如,删除命名空间(已存在的)。例如,当主机120传送命名空间操作指令以删除命名空间NSID#3,由于命名空间NSID#3对应至逻辑地址范围426,所以存储器控制器160会删除全域L2P映射表中逻辑地址范围426所记录的映射关系,如图4C所示。为了简化全域L2P映射表的管理,逻辑地址范围426经过删除/修剪之后就不会再使用了。之后,如果欲建立(新的)命名空间NSID,则会使用剩余逻辑地址范围430。由上述中可知,在重复地执行建立命名空间以及删除命名空间之后,剩余逻辑地址范围430很快会被消耗/使用完毕,这将造成数据储存装置140尚有数据储存能力,但是主机120可能无法建立(新的)命名空间NSID的情况。因此,如何有效率且正确地删除命名空间是个重要且困扰的技术课题。
图5为依据本发明一实施例删除命名空间的方法的流程图。在步骤S510,存储器控制器160以全域L2P映射表管理多命名空间。举例来说,在图4A的条件下,存储器控制器160建立命名空间NSID#1、NSID#2、NSID#3及NSID#4,如图4B所示,并以全域L2P映射表管理命名空间NSID#1、NSID#2、NSID#3及NSID#4中逻辑地址与物理地址的映射关系。
在步骤S520,存储器控制器160接收命名空间删除指令,其中,上述命名空间删除指令来自主机120,目标命名空间为多命名空间其中之一,且非为依序排列的多命名空间中的最后一者,例如,命名空间NSID#3。
在步骤S530,存储器控制器160删除目标命名空间在全域L2P映射表中的逻辑地址范围。命名空间NSID#3的逻辑地址范围426为LBA(A+B)至LBA(A+B+C-1),因此,存储器控制器160删除全域L2P映射表中LBA(A+B)至LBA(A+B+C-1)所记录的映射关系,如图4C所示。
在步骤S540,存储器控制器160移动目标命名空间之后的所有命名空间在全域L2P映射表的逻辑地址范围。命名空间NSID#3之后的所有命名空间为命名空间NSID#4。存储器控制器160移动/复制命名空间NSID#4在全域L2P映射表的逻辑地址范围428,即将逻辑地址范围LBA(A+B+C)至LBA(A+B+C+D-1)所记录的映射关系一一复制至LBA(A+B)至LBA(A+B+D-1),最后,再将LBA(A+B+D)至LBA(A+B+C+D-1)所记录的映射关系予以删除,如图4D所示,并且更新全域L2P映射表。如此一来,命名空间NSID#1、NSID#2及NSID#4的逻辑地址范围422、424及428为相邻的。因为命名空间NSID#4被移动往前填补被删除的命名空间NSID#3的逻辑地址范围,剩余逻辑地址范围430(未使用的储存空间)则增加(变大)为剩余逻辑地址范围440。之后,如果主机120欲建立命名空间NSID#5,则存储器控制器160可将命名空间NSID#5建立在剩余逻辑地址范围440之中,例如命名空间NSID#5可由剩余逻辑地址范围440的起始逻辑地址开始。
图6为依据本发明一实施例建立命名空间的方法的流程图。在步骤S610,存储器控制器160以全域L2P映射表管理多命名空间。举例来说,在图4A的条件下,存储器控制器160建立命名空间NSID#1、NSID#2、NSID#3及NSID#4,如图4B所示,并以全域L2P映射表管理命名空间NSID#1、NSID#2、NSID#3及NSID#4中逻辑地址与物理地址的映射关系。
在步骤S620,存储器控制器160接收删除目标命名空间(例如为第一目标命名空间)的主机指令,并删除目标命名空间在全域L2P映射表中的逻辑地址范围。由于步骤S620与步骤S520~S530类似,被删除的目标命名空间为命名空间NSID#3,故不多作说明。
在步骤S630,存储器控制器160接收建立目标命名空间(例如为第二目标命名空间)的主机指令,其中,主机指令来自主机120,目标命名空间为新的命名空间,例如,命名空间NSID#5。
在步骤640,存储器控制器160判断是否能建立目标命名空间在被删除命名空间。如果是,则执行步骤650,如果否,则执行步骤660。原命名空间NSID#3的逻辑地址范围426为LBA(A+B)至LBA(A+B+C-1),LBA总数等于数值C。假如在步骤S630的主机指令表示命名空间NSID#5的LBA总数等于数值E,而数值E小于等于数值C,这表示命名空间NSID#5小于等于原命名空间NSID#3,则可在原命名空间NSID#3上建立命名空间NSID#5。相反的,如果数值E大于数值C,这表示命名空间NSID#5大于原命名空间NSID#3,则无法在原命名空间NSID#3上建立命名空间NSID#5。
在步骤650,存储器控制器160将目标命名空间建立在被删除命名空间。存储器控制器160将命名空间NSID#5与命名空间NSID#2相邻,命名空间NSID#5的逻辑地址范围432的起始逻辑地址为LBA(A+B),结束逻辑地址为LBA(A+B+E-1),如图4E所示,完成目标命名空间的建立。此时,剩余逻辑地址范围包括原剩余逻辑地址范围430以及新增剩余逻辑地址范围434。
在步骤660,存储器控制器160移动目标命名空间之后的所有命名空间在全域L2P映射表的逻辑地址范围。由于步骤660与步骤540类似,故不多作说明,最终产生剩余逻辑地址范围440。
在步骤670,存储器控制器160将目标命名空间建立在剩余逻辑地址范围。由于最后一个已建立命名空间NSID为命名空间NSID#4,存储器控制器160将命名空间NSID#5与命名空间NSID#4相邻,命名空间NSID#5的逻辑地址范围442的起始逻辑地址为LBA(A+B+D),结束逻辑地址为LBA(A+B+E-1),如图4F所示,完成目标命名空间的建立。剩余逻辑地址范围440则变更(缩小)为剩余逻辑地址范围444。
综上所述,本发明提供一种数据储存装置、一种删除命名空间方法以及一种建立命名空间方法,不但可迅速执行命名空间的删除或建立,且不会浪费数据储存装置的任何储存空间,达到本发明的目的。此外,存储器控制器160可用较有效率的方式管理命名空间映射表,故可提升数据储存装置140的效能,且在设计启动程序式164的固件或程序式码的阶段时可缩短功能验证的时间。
于权利要求中使用如"第一"、"第二"、"第三"等词用来修饰权利要求中的元件,并非用来表示的间具有优先权顺序,先行关系,或者是一个元件先于另一个元件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的元件。
本发明虽以较佳实施例揭示如上,然其并非用以限定本发明的范围,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当由权利要求书界定为准。
Claims (10)
1.一种数据储存装置,包括:
一快闪存储器;以及
一存储器控制器,用以管理该快闪存储器的一全域逻辑至物理地址映射表,其中该全域逻辑至物理地址映射表包括多个命名空间,且这些命名空间对应于该快闪存储器中的多个物理空间,
其中,响应于该存储器控制器接收来自一主机的一命名空间删除指令,该存储器控制器删除这些命名空间中的一目标命名空间及该目标命名空间在该全域逻辑至物理地址映射表中所对应的逻辑地址范围;
其中,该存储器控制器还移动在该目标命名空间之后的所有命名空间在该全域逻辑至物理地址映射表所相应的逻辑地址范围以更新该全域逻辑至物理地址映射表。
2.如权利要求1所述的数据储存装置,其特征在于,当该存储器控制器由该主机接收一存取指令,该存储器控制器依据该存取指令中的相应于这些命名空间的其中一者的一命名空间辨识符及相应的一存取逻辑地址以计算出该存取指令在该全域逻辑至物理地址映射表的逻辑地址。
3.如权利要求2所述的数据储存装置,其特征在于,在更新该全域逻辑至物理地址映射表后,当该数据储存装置由该主机接收到一命名空间建立指令以建立一第一命名空间,该存储器控制器依据该命名空间建立指令以在更新后的该全域逻辑至物理地址映射表的最后一个该命名空间的逻辑地址范围后加入该第一命名空间。
4.如权利要求1所述的数据储存装置,其特征在于,该存储器控制器先从该快闪存储器读取该全域逻辑至物理地址映射表至一挥发性存储器,再依据该命名空间删除指令在该挥发性存储器上从该全域逻辑至物理地址映射表删除该目标命名空间的逻辑地址范围,并移动在该全域逻辑至物理地址映射表中位于该目标命名空间之后的各命名空间往前填补已删除的该目标命名空间的逻辑地址范围以更新该全域逻辑至物理地址映射表,
其中该存储器控制器还将更新后的该全域逻辑至物理地址映射表写入该快闪存储器。
5.一种删除命名空间的方法,用于一数据储存装置,其中该数据储存装置包括一快闪存储器,该方法包括:
管理该快闪存储器的一全域逻辑至物理地址映射表,其中该全域逻辑至物理地址映射表包括多个命名空间,且这些命名空间对应于该快闪存储器中的多个物理空间;
接收来自一主机的一命名空间删除指令;
依据该命名空间删除指令以删除这些命名空间中的一目标命名空间及该目标命名空间在该全域逻辑至物理地址映射表中所对应的逻辑地址范围;以及
移动在该目标命名空间之后的所有命名空间在该全域逻辑至物理地址映射表所相应的逻辑地址范围以更新该全域逻辑至物理地址映射表。
6.如权利要求5所述的删除命名空间的方法,其特征在于,还包括:
当由该主机接收一存取指令,依据该存取指令中的相应于这些命名空间之其中一者的一命名空间辨识符及相应的一存取逻辑地址以计算出该存取指令在该全域逻辑至物理地址映射表的逻辑地址。
7.如权利要求6所述的删除命名空间的方法,其特征在于,在更新该逻辑至物理地址映射表后,该方法还包括:
当该数据储存装置由该主机接收到一命名空间建立指令以建立一第一命名空间,该存储器控制器依据该命名空间建立指令以在更新后的该全域逻辑至物理地址映射表的最后一个该命名空间的逻辑地址范围后加入该第一命名空间。
8.如权利要求5所述的删除命名空间的方法,其特征在于,还包括:
从该快闪存储器读取该全域逻辑至物理地址映射表至一挥发性存储器;
依据该命名空间删除指令在该挥发性存储器上从该全域逻辑至物理地址映射表删除该目标命名空间映射表的逻辑地址;
移动在该全域逻辑至物理地址映射表中位于该目标命名空间之后的各命名空间往前填补已删除的该目标命名空间映射表的逻辑地址范围以更新该逻辑至物理地址映射表;以及
将更新后的该逻辑至物理地址映射表写入该快闪存储器。
9.一种数据储存装置,包括:
一快闪存储器;以及
一存储器控制器,用以管理该快闪存储器的一全域逻辑至物理地址映射表,其中该全域逻辑至物理地址映射表包括多个命名空间,且这些命名空间对应于该快闪存储器中的多个物理空间,
其中,该存储器控制器接收来自一主机的一命名空间删除指令,并删除这些命名空间中的一第一目标命名空间及该第一目标命名空间在该全域逻辑至物理地址映射表中所对应的逻辑地址范围,
其中,响应于该存储器控制器从该主机接收欲建立一第二目标命名空间的一命名空间建立指令,该存储器控制器还判断是否能在该第一目标命名空间的逻辑地址范围建立该第二目标命名空间,
其中,响应于该存储器控制器判断无法在该第一目标命名空间的逻辑地址范围建立该第二目标命名空间,该存储器控制器移动在该第一目标命名空间之后的所有命名空间在该全域逻辑至物理地址映射表所相应的逻辑地址范围以更新该全域逻辑至物理地址映射表,并将该第二目标命名空间建立在更新后的该全域逻辑至物理地址映射表中的剩余逻辑地址范围。
10.如权利要求9所述的数据储存装置,其特征在于,该存储器控制器先从该快闪存储器读取该全域逻辑至物理地址映射表至一挥发性存储器,再依据该命名空间删除指令在该挥发性存储器上从该全域逻辑至物理地址映射表删除该目标命名空间的逻辑地址范围,并移动在该全域逻辑至物理地址映射表中位于该目标命名空间之后的各命名空间往前填补已删除的该目标命名空间的逻辑地址范围以更新该全域逻辑至物理地址映射表,
其中,该存储器控制器还将该第二目标命名空间建立在更新后的该全域逻辑至物理地址映射表中的剩余逻辑地址范围,且该第二目标命名空间接续更新后的该全域逻辑至物理地址映射表中的最后一个该命名空间的逻辑地址范围。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862731137P | 2018-09-14 | 2018-09-14 | |
US62/731,137 | 2018-09-14 | ||
TW108126206A TWI715116B (zh) | 2018-09-14 | 2019-07-24 | 資料儲存裝置及其刪除命名空間之方法 |
TW108126206 | 2019-07-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110908927A true CN110908927A (zh) | 2020-03-24 |
Family
ID=69772509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910807154.4A Pending CN110908927A (zh) | 2018-09-14 | 2019-08-29 | 数据储存装置及其删除命名空间的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20200089619A1 (zh) |
CN (1) | CN110908927A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559388A (zh) * | 2020-12-14 | 2021-03-26 | 杭州宏杉科技股份有限公司 | 数据缓存方法及装置 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11656992B2 (en) | 2019-05-03 | 2023-05-23 | Western Digital Technologies, Inc. | Distributed cache with in-network prefetch |
US11765250B2 (en) | 2020-06-26 | 2023-09-19 | Western Digital Technologies, Inc. | Devices and methods for managing network traffic for a distributed cache |
US11675706B2 (en) | 2020-06-30 | 2023-06-13 | Western Digital Technologies, Inc. | Devices and methods for failure detection and recovery for a distributed cache |
US11736417B2 (en) | 2020-08-17 | 2023-08-22 | Western Digital Technologies, Inc. | Devices and methods for network message sequencing |
US11947816B1 (en) * | 2022-09-19 | 2024-04-02 | Kioxia Corporation | Solid state drives with improved format handling |
CN115543865B (zh) * | 2022-11-25 | 2023-04-11 | 成都佰维存储科技有限公司 | 掉电保护方法、装置、可读存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020315A (zh) * | 2013-01-10 | 2013-04-03 | 中国人民解放军国防科学技术大学 | 一种基于主从分布式文件系统的海量小文件存储方法 |
US20170262228A1 (en) * | 2016-03-08 | 2017-09-14 | Kabushiki Kaisha Toshiba | Storage system, information processing system and method for controlling nonvolatile memory |
US20180121344A1 (en) * | 2016-10-31 | 2018-05-03 | Samsung Electronics Co., Ltd. | Storage device managing multi-namespace and method of operating the storage device |
CN108021334A (zh) * | 2016-10-31 | 2018-05-11 | 三星电子株式会社 | 存储设备及其操作方法 |
-
2019
- 2019-08-29 CN CN201910807154.4A patent/CN110908927A/zh active Pending
- 2019-09-04 US US16/560,016 patent/US20200089619A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020315A (zh) * | 2013-01-10 | 2013-04-03 | 中国人民解放军国防科学技术大学 | 一种基于主从分布式文件系统的海量小文件存储方法 |
US20170262228A1 (en) * | 2016-03-08 | 2017-09-14 | Kabushiki Kaisha Toshiba | Storage system, information processing system and method for controlling nonvolatile memory |
US20180121344A1 (en) * | 2016-10-31 | 2018-05-03 | Samsung Electronics Co., Ltd. | Storage device managing multi-namespace and method of operating the storage device |
CN108021334A (zh) * | 2016-10-31 | 2018-05-11 | 三星电子株式会社 | 存储设备及其操作方法 |
Non-Patent Citations (1)
Title |
---|
樊旭光: "多通道固态盘系统的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559388A (zh) * | 2020-12-14 | 2021-03-26 | 杭州宏杉科技股份有限公司 | 数据缓存方法及装置 |
CN112559388B (zh) * | 2020-12-14 | 2022-07-12 | 杭州宏杉科技股份有限公司 | 数据缓存方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20200089619A1 (en) | 2020-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11636032B2 (en) | Memory system, data storage device, user device and data management method thereof | |
CN108021510B (zh) | 操作对多重名称空间进行管理的存储装置的方法 | |
CN110908927A (zh) | 数据储存装置及其删除命名空间的方法 | |
US9069673B2 (en) | Memory system configured to perform segment cleaning and related method of operation | |
US9053007B2 (en) | Memory system, controller, and method for controlling memory system | |
CN111459844B (zh) | 数据储存装置及用于存取逻辑至物理地址映射表的方法 | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
KR20100015506A (ko) | 고상 드라이브 최적화를 위한 리무브-온-딜리트 기법들 | |
JP6734768B2 (ja) | 二重書込みを遂行するストレージ装置を含むシステム、装置、及びその方法 | |
US20160253257A1 (en) | Data processing system and operating method thereof | |
US9389998B2 (en) | Memory formatting method, memory controller, and memory storage apparatus | |
US8433847B2 (en) | Memory drive that can be operated like optical disk drive and method for virtualizing memory drive as optical disk drive | |
CN106445401B (zh) | 表格更新方法、存储器储存装置及存储器控制电路单元 | |
US11210226B2 (en) | Data storage device and method for first processing core to determine that second processing core has completed loading portion of logical-to-physical mapping table thereof | |
CN107943710B (zh) | 存储器管理方法及使用所述方法的存储控制器 | |
US10817624B2 (en) | Memory system and storage device capable of permanently deleting data stored in a non-volatile memory | |
US10776280B1 (en) | Data storage device and method for updating logical-to-physical mapping table | |
TWI715116B (zh) | 資料儲存裝置及其刪除命名空間之方法 | |
CN115390747A (zh) | 存储设备及其操作方法 | |
US10572382B2 (en) | Method of operating data storage device and method of operating data processing system including the same | |
CN114676092A (zh) | 一种文件管理方法及相关设备 | |
CN117492658A (zh) | 一种数据上电处理方法、系统、设备及计算机存储介质 | |
KR20210063814A (ko) | 메모리 시스템의 리드 동작 방법 및 장치 | |
JP2011118953A (ja) | 情報記録装置、情報記録方法及び情報記録用プログラム | |
JP2011113129A (ja) | 情報記録装置及び情報記録方法 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200324 |