CN110633048B - 闪存存储装置的命名空间操作方法 - Google Patents

闪存存储装置的命名空间操作方法 Download PDF

Info

Publication number
CN110633048B
CN110633048B CN201810970872.9A CN201810970872A CN110633048B CN 110633048 B CN110633048 B CN 110633048B CN 201810970872 A CN201810970872 A CN 201810970872A CN 110633048 B CN110633048 B CN 110633048B
Authority
CN
China
Prior art keywords
namespace
length
updated
value
command
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
CN201810970872.9A
Other languages
English (en)
Other versions
CN110633048A (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
Priority to CN202211272143.9A priority Critical patent/CN115421671A/zh
Priority to US16/164,252 priority patent/US11307992B2/en
Publication of CN110633048A publication Critical patent/CN110633048A/zh
Priority to US17/690,800 priority patent/US20220197818A1/en
Application granted granted Critical
Publication of CN110633048B publication Critical patent/CN110633048B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • G06F2212/1044Space efficiency improvement
    • 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

Abstract

本发明的实施例提出一种闪存存储装置的命名空间操作方法,该方法由存储装置的处理单元执行,包含:从主装置接收命名空间设定更新命令,请求更新命名空间的命名空间长度;判断是否能够支持该更新后的命名空间长度;以及当能够支持该更新后的命名空间长度时,更新命名空间的逻辑‑物理对照表,允许此命名空间存储更新后的命名空间长度的用户数据。

Description

闪存存储装置的命名空间操作方法
技术领域
本发明涉及闪存存储装置,尤指一种闪存存储装置的命名空间操作方法。
背景技术
闪存存储装置通常分为NOR闪存存储装置与NAND闪存存储装置。NOR 闪存存储装置为随机存取装置,主机端(Host)可于地址引脚上提供任何存取 NOR闪存存储装置的地址,并及时地从NOR闪存存储装置的数据引脚上获得存储于该地址上的数据。相反地,NAND闪存存储装置并非随机存取,而是序列存取。NAND闪存存储装置无法像NOR闪存存储装置一样,可以存取任何随机地址,主机端反而需要写入序列的字节(Bytes)的值到NAND闪存存储装置中,用以定义请求命令(Command)的类型(如,读取、写入、抹除等),以及用在此命令上的地址。地址可指向一个页面(闪存存储装置中写入操作的最小数据块)或一个区块(闪存存储装置中抹除操作的最小数据块)。
快速非易失性存储器(Non-Volatile Memory Express,NVMe)的命名空间管理命令(Namespace Management command)可用于建立(Create)及删除 (Delete)命名空间。除了以上所述的操作外,使用者可能需要增加命名空间的长度或在不同命名空间之间进行数据迁移的进阶操作。然而,目前的规范并不支持这些进阶操作。因此,本发明提出一种闪存存储装置的命名空间操作方法,用以支持这些进阶操作。
发明内容
有鉴于此,如何减轻或消除上述相关领域的缺失,实为有待解决的问题。
本发明提供一种闪存存储装置的命名空间操作方法的实施例,由存储装置的处理单元执行,其包含:从主装置接收命名空间设定更新命令,请求更新命名空间的命名空间长度;判断是否能够支持该更新后的命名空间长度;以及当能够支持该更新后的命名空间长度时,更新命名空间的逻辑-物理对照表,允许此命名空间存储更新后的命名空间长度的用户数据。
本发明还提供一种闪存存储装置的命名空间操作方法的实施例,由存储装置的处理单元执行,其包含:从主装置接收跨命名空间数据迁移命令,请求将第一命名空间的第一逻辑地址的用户数据迁移至第二命名空间的第二逻辑地址的存储空间;剪下第一逻辑-物理对照表中第一逻辑地址所对应的第一物理地址信息;将第一物理地址信息贴上第二逻辑-物理对照表中第二逻辑地址所对应的项目。
上述实施例的优点之一是,当命名空间被建立及依附后,还允许主装置可以增加此命名空间的长度及容量。
上述实施例的另一优点,因为不牵涉不同命名空间的任何实际的用户数据迁移,避免耗费空间及带宽来存储及传输一连串的读取及写入命令以及完成组件。
本发明的其他优点将配合以下的说明和附图进行更详细的解说。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为依据本发明实施例的闪存存储器的系统架构示意图。
图2为存取子接口与多个存储子单元的连接示意图。
图3为物理存储对照示意图。
图4为存储单元的数据组织示意图。
图5为命令队列示意图。
图6为管理或数据存取命令的执行步骤的流程图。
图7为命名空间建立及依附的顺序图。
图8为命名空间解依附及删除的顺序图。
图9为依据本发明实施例的命名空间设定更新的顺序图。
图10为依据本发明实施例的命名空间更新命令的数据结构示意图。
图11为依据本发明实施例的命名空间更新操作的方法流程图。
图12为依据本发明实施例的逻辑-物理对照表的扩充示意图。
图13为依据本发明实施例的命名空间设定更新操作的功能模块示意图。
图14为依据本发明实施例的跨命名空间数据迁移的顺序图。
图15为依据本发明实施例的跨命名空间数据迁移命令的数据结构示意图。
图16为依据本发明实施例的跨命名空间数据迁移的方法流程图。
图17为依据本发明实施例的不同命名空间的逻辑-物理对照表的物理地址信息迁移示意图。
图18为依据本发明实施例的跨命名空间数据迁移操作的功能模块示意图。
符号说明:
110 主装置
120、131 随机存取存储器
130 存储装置
132 数据链接层
135 闪存记忆控制器
137 存取接口
137_0 存取子接口
139 存储单元
139_0_0~139_0_i 存储子单元
210 数据线
230_0~230_i 芯片使能控制信号
310、1210、1230、1710、1730 逻辑-物理对照表
330、330-0~330-3 物理地址信息
350 物理区块
351 物理区域
410、430、450、470 输出输入通道
410_0~410_m、430_0~430_m、450_0~450_m、470_0~470_m 数据平面
490_0~490_n 超页面
P#0~p#(n) 物理页面
510、530 队列
S611~S636、S1110~S1170、S1610~S1640 方法步骤
712、732、752、812、832、912、1412 命令
714、734、754、814、834、914、1414 执行结果
720、740、760、780、820、840、920、1420 操作
1010~1070 字段
1310~1340、1810~1830 程序过程模块
具体实施方式
以下将配合相关附图来说明本发明的实施例。在这些附图中,相同的标号表示相同或类似的组件或方法流程。
必须了解的是,使用于本说明书中的“包含”、“包括”等词,是用于表示存在特定的技术特征、数值、方法步骤、作业处理、组件和/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、组件、组件,或以上的任意组合。
本发明中使用如“第一”、“第二”、“第三”等词是用来修饰权利要求中的组件,并非用来表示的间具有优先权顺序,先行关系,或者是一个组件先于另一个组件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的组件。
必须了解的是,当组件描述为“连接”或“耦接”至另一组件时,可以是直接连结、或耦接至其他组件,可能出现中间组件。相反地,当组件描述为“直接连接”或“直接耦接”至另一组件时,其中不存在任何中间组件。使用于描述组件之间关系的其他语词也可类似方式解读,例如“介于”相对于“直接介于”,或者是“邻接”相对于“直接邻接”等等。
参考图1。闪存记忆系统架构100包含主装置110、随机存取存储器 (RandomAccess Memory RAM)120及存储装置130。主装置110运作时可依据其需求而建立队列(Queue)。此系统架构可实施于个人计算机、笔记本计算机(Laptop PC)、平板计算机、移动电话、数字相机、数字摄影机等电子产品。随机存取存储器120中的特定区域可配置作为数据缓冲器及队列等,以及存储装置操作参数及命名空间变量。存储装置130可包含处理单元133。处理单元 133可从主装置110接收命名空间管理命令,并据此指示闪存控制器135执行增加命名空间长度或容量(Namespace Size or Capacity),以及跨命名空间的数据迁移操作。命名空间的长度或容量由可以以逻辑区块的数量来表示,每一逻辑区块都分配有一个逻辑区块地址。逻辑区块的大小可由格式化逻辑区块地址 (Formatted LBA Size)长度所决定,例如4KB,其中,逻辑区块除了包括用户数据之外,也可包括元数据(Metadata)。命名空间长度可指特定命名空间中以逻辑区块为单位的总数目。例如,长度为n的命名空间包含第0至n-1逻辑区块地址(logical block address,LBA)LBA#0~LBA#(n-1)的逻辑区块。命名空间容量可指特定命名空间可供主装置110存储逻辑区块的最大数目。主装置110及处理单元133间较佳采用快速非易失存储器(Non-Volatile Memory express,NVMe)通信协议以进行通信。主装置110及处理单元133中的任一者可使用多种方式实施,如使用通用硬件(例如,单处理器、具平行处理能力的多处理器、图形处理器或其他具运算能力的处理器),并且在执行指令 (Instructions)、宏码(Macrocode)或微码(Microcode)时,提供之后描述的功能。随机存取存储器120及131可存储执行过程中需要的数据,例如,变量、数据表等。
存储装置130另包含闪存控制器135、存取接口137及存储单元139,并且闪存控制器135通过存取接口137与存储单元139通信,详细来说,可采用双倍数据率(Double DataRate DDR)通信协议,例如,开放NAND闪存(Open NAND Flash Interface ONFI)、双倍数据率开关(DDR Toggle)或其他接口。存储装置130的闪存控制器135通过存取接口137写入用户数据到存储单元139 中的指定地址(目的地址),以及从存储单元139中的指定地址(来源地址) 读取用户数据。存取接口137使用数个电子信号来协调闪存控制器135与存储单元139间的数据与命令传递,包含数据线(data line)、时钟信号(clock signal) 与控制信号(control signal)。数据线可用以传递命令、地址、读出及写入的数据;控制信号线可用以传递芯片使能(Chip Enable CE)、地址提取使能(Address Latch Enable ALE)、命令提取使能(Command Latch Enable CLE)、写入使能 (Write Enable WE)等控制信号。处理单元133与闪存控制器135可分开存在或整合于同一芯片中。
存储单元139可包含多个存储子单元,每个存储子单元,各自使用关联的存取子接口与闪存控制器135进行通信。一个或多个存储子单元可封装在一个芯粒(Die)之中。存储装置130可包含j个存取子接口,每一个存取子接口连接i个存储子单元。存取子接口及其后连接的存储子单元又可统称为输出输入信道,并可以逻辑单元编号标识。换句话说,i个存储子单元共享一个存取子接口。例如,存储装置130包含4个输出输入且每一个输出输入连接4个存储单元时,存储装置130一共拥有16个存储子单元。闪存控制器135可驱动存取子接口中的一者,从指定的存储子单元读取,或写入数据至指定的存储子单元。每个存储子单元拥有独立的芯片使能(CE)控制信号。换句话说,当欲对指定的存储子单元进行数据读取时,需要驱动关联的存取子接口来使能此存储子单元的芯片使能控制信号。参考图2。闪存控制器135可通过存取子接口 137_0使用独立的芯片使能控制信号230_0_0至230_0_i从连接的存储子单元 139_0_0至139_0_i中选择出其中一者,接着,通过共享的数据线210_0从选择出的存储子单元的指定地址读取数据。
参考图3。逻辑-物理对照表310较佳依照顺序存储相应于每一逻辑地址(或逻辑区块地址)的物理地址信息。逻辑-物理对照表310所需的空间较佳与逻辑地址的总数成正比。逻辑地址可以逻辑区块地址表示,每一个LBA对应到一个固定大小的逻辑区块,例如512比特字节(Bytes),并存储至一物理地址。举例来说,逻辑-物理对照表310依序存储从LBA#0至LBA#65535的物理地址信息。数个连续逻辑地址(例如LBA#0至LBA#7)的数据可形成一个主页面(Host Page)。物理地址信息330可以四个字节表示:第1个字节330-0纪录(物理)区块编号((Physical)Block Number)),第2个字节330-1纪录(物理)页面编号及偏移量(offset);第3个字节330-2纪录(物理)平面编号,最后1个字节330-3纪录逻辑单元编号(Logical Unit Number,LUN)。例如,相应于LBA#2的物理信息330可指向区块350中的一个区域351。
参考图4。存储单元139包含多个平面(Planes)410_0至410_m、430_0 至430_m、450_0至450_m及470_0至470_m,每一平面或多个平面置于一个逻辑单元编号中。平面410_0至410_m及共享的存取子接口称为输出输入通道 410,平面430_0至430_m及共享的存取子接口称为输出输入通道430,平面 450_0至450_m及共享的存取子接口称为输出输入通道450,及平面470_0至 470_m及共享的存取子接口称为输出输入通道470,其中,m可为2的次方的整数(例如2、4、8、16、32等),输出输入通道410、430、450及470可使用逻辑单元编号标识。平面410_0至470_m中的每一者包含多个区块(Blocks),每个区块包含多个页面(Pages)P#0至P#(n),每个页面包含多个区段(Sectors) (例如,4个、8个等),其中,n可为767或1535等。每个页面包含多个NAND 存储器单元(Memory Cells),并且NAND存储器单元可为单层式单元 (Single-Level Cells SLCs)、多层式单元(Multi-Level Cells MLCs)、三层式单元(Triple-Level Cells TLCs)或四层式单元(Quad-Level Cells QLCs)。于一些实施例中,当每一个NAND存储器单元为单层式单元而可记录2个状态时,平面410_0至470_0中的页面P#0可虚拟形成超页面(Super Page)490_0,平面410_0至470_0中的页面P#1可虚拟形成超页面490_1,依此类推。于另一些实施例中,当每一个NAND存储器单元为多层式单元而可记录4个状态时,一个物理字符线可包含页面P#0(可称为最低比特页面,Most SignificantBit MSB page)、页面P#1(可称为最高比特页面,Least Significant Bit LSB page),依此类推。于更另一些实施例中,当每一个NAND存储器单元为三层式单元而可记录8个状态时,一个物理字符线可包含页面P#0(可称为最低比特页面, MSB page)、页面P#1(可称为中间比特页面,CSB,Center Significant Bit page) 及页面P#2(可称为最高比特页面,LSBpage)。当每一个NAND存储器单元为四层式单元而可记录16个状态时,除了MSB、CSB以及LSB页面之外,更包括TSB(可称为顶部比特,TSB,Top Significant Bit)页面。
存储单元139运作时,页面为数据写入或编程的最小单位,大小例如为 4KB,此时物理地址可表示为页面编号;如果页面包含多个区段,例如:4个区段,每一区段可存储4KB的数据时,则区段可为数据管理的最小单位,此时物理地址可表示为页面的区段编号(Sector Number)或区段在页面的偏移量 (Offset)。另外,一般而言,区块为数据抹除的最小单位。
图5为指令队列的示意图。指令队列可包含递交队列(Submission Queue, SQ)510及完成队列(Completion Queue,CQ)530,分别用以暂存主装置指令以及完成组件(Completion Element CE)。递交队列510及完成队列530较佳建立在同一装置中,例如,递交队列510及完成队列530较佳建立在主装置的存储器中,也可建立在存储装置130的存储器中。递交队列510及完成队列 530也可建立在不同的装置中。递交队列510及完成队列530中的每一者包含多笔项目(Entry)的集合。递交队列510中的每一笔项目存储一个主装置指令,主装置指令又可区分别管理命令(Administration Command),如辨认(Identify)、设定特征(Set Feature)、命名空间管理(Namespace Management)、命名空间依附(NamespaceAttachment)命令等;及输出输入命令(I/O Command),如抹除、读取、写入命令等,也可称为数据存取命令。虽然图5只显示两个队列 510及530,但所属技术领域的技术人员可建立两种递交队列510,分别为管理递交队列(Administration Submission Queue)及输出输入递交队列(I/O Submission Queue),分别用以暂存来自主装置110的管理命令及数据存取命令,同样的,所属技术领域人员可建立两种完成队列530,分别为管理完成队列(Administration Completion Queue)及输出输入完成队列(I/O Completion Queue),用以分别存储关联至管理命令及数据存取命令的完成组件。
完成队列530中的每一笔项目存储关联至一个管理命令或数据存取命令的完成组件,此完成组件用以回报主装置指令的执行结果,例如:成功或失败,也可作为确认信息。集合中的项目依序存放。集合的操作基本原则是由结束位置(或称为队列尾,Tail)新增项目(可称为入列),执行位于开始位置(或称为队列头,Head)的项目(可称为出列),其中,入列或出列一次的项目总数可大于等于一。第一个新增至递交队列510或完成队列530的命令或信息,之后,也将会是第一个被替代或更新的。主装置110可写入管理或数据存取命令至递交队列510,并且处理单元133从递交队列510读取(或称为提取Fetch) 最早到达的管理或数据存取命令并执行。于管理或数据存取命令执行完成后,处理单元133写入完成组件至完成队列530,主装置110可读取或提取完成组件而判断管理或数据存取命令的执行结果。
参考图6。主装置110产生并写入管理命令或数据存取命令至递交队列510 (步骤S611)。接着,主装置110发出递交门铃(Submission Doorbell)给处理单元133(步骤S612),用以通知处理单元133关于递交队列510中已写入一个管理命令或数据存取命令的信息,并更新递交队列510的队列尾的值。于此须注意的是,步骤S611及步骤S612又可称为主装置110发出管理命令或数据存取命令给存储装置130。处理单元133接收到递交门铃后(步骤S631),从递交队列510读取位于队列头的管理命令或数据存取命令(步骤S632),并且执行管理命令或数据存取命令所指定的操作(例如,辨认、参数设定、命名空间管理、命名空间依附、抹除、数据读取、写入等)(步骤S633)。
于此须注意的是,步骤S631及步骤S632又可称为存储装置130接收从主装置110发出的管理命令或数据存取命令。当指定的操作完成后,处理单元133 产生并写入完成组件至完成队列530(步骤S634)用以通知主装置110相应于特定管理命令或数据存取命令的操作的执行结果以及状态信息,并且发出中断给主装置110(步骤S635)。接收中断后(步骤S613),主装置110从完成队列 530读取位于队列头的完成组件(步骤S613)以判断特定管理命令或数据存取命令的执行结果。如果执行失败,更可依据完成组件中的状态信息进行失败原因的判断。接着,主装置110发出完成门铃给处理单元133(步骤S614)。接收完成门铃后(S636),处理单元133得知完成队列530中更新的队列头的值。于此须注意的是,步骤S634及步骤S635又可称为存储装置130回复主装置 110执行管理命令或数据存取命令的执行结果。于此须注意的是,步骤S613 及步骤S614又可称为主装置110从存储装置130接收执行管理命令或数据存取命令的执行结果。
于步骤S612及S614,主装置110可设定相应寄存器(Registers)来向处理单元133发出递交门铃及结束门铃。
参考图7,当存储装置130连接至主装置110并完成初始化后,主装置110 可发出辨认命令(Identify Command)712给存储装置130。存储装置130执行前置操作720完毕后,主装置110可从存储装置130接收执行结果714,其中,辨认命令712可为控制器辨认命令以请求控制器数据结构(Controller Data Structure)。控制器数据架构控制器能力及特性(Controller Capabilities and Features),如包含外设组件互联(PeripheralComponent Interconnect)供货商标识码、序号、固件版本、最大数据传输长度、控制器标识码等字段。控制器数据结构可更描述管理命令集属性及可选控制器能力,如可选管理命令集支持 (Optional Admin Command Support,OACS)等字段。OACS字段可记载控制器是否支持命名空间管理及依附命令的信息。
除了控制器辨认命令之外,辨认命令712也可为一般命名空间辨认命令以请求一般命名空间的数据结构(Namespace Data Structure),例如:一般命名空间能力(CommonNamespace Capabilities),包含命名空间长度(Namespace Size, NSZE)、命名空间容量(Namespace Capacity,NCAP)等字段。辨认命令712 中的第10双字组的第0字节可用于区分请求的标的为控制器数据结构或命名空间数据结构。
于前置操作720,处理单元133可读取只读存储器(未显示于图1)或读取存储单元139来获得控制器及命名空间数据结构中需要的信息,并且上传控制器及命名空间数据结构的内容至辨认命令712中指定的随机存取存储器120 的地址,用以让主装置110读取。
之后,主装置110可参考以上所述控制器及命名空间数据结构的内容,并发出命名空间管理命令732给存储装置130以建立一个新的命名空间。主装置 110可于随机存取存储器120分配4K字节,用以存储欲建立的命名空间数据结构的内容,其中的第0至383字节为定义命名空间字段(Identify Namespace field)。例如,第0至7字节为命名空间长度(Namespace Size)字段,值为 0x0FFFFFF,而第8至15字节为命名空间容量(NamespaceCapacity)字段,值为0x0FFFFFF。为建立新的命名空间,主装置110可于命名空间管理命令732 中指出这是一个建立操作(如第10双字组中第0至3比特所示),并提供指向命名空间数据结构的内容的地址(存储器地址)(如第6至7双字组或第6至9 双字组所示)。
于命名空间建立操作740,处理单元133可从可用命名空间标识码 (NamespaceIdentifier NSID)中分配一个给请求的命名空间,例如:0x00,并可存储命名空间长度及容量字段的值至随机存取存储器131及/或存储单元 139。存储装置130成功执行命名空间#0建立操作740后,主装置110可从存储装置130接收执行结果734,包含存储装置130分配的命名空间标识码,及命名空间#0建立成功的信息。
在另一实施例中,主装置110发出命名空间管理命令732以建立命名空间时,发出命名空间管理命令732,包含命名空间标识码,例如:0x00,于命名空间建立操作740时,存储装置130依据命名空间管理命令732建立命名空间 #0。
当命名空间#0成功建立后,主装置110可发出命名空间依附命令752给存储装置130,用以将此命名空间#0依附到一个或多个控制器。主装置110可于第10双字组的第0至3比特指出此命令请求控制器依附操作(Controller Attach Operation)。存储装置130成功执行命名空间依附操作760后,主装置110可从存储装置130接收执行结果754,包含命名空间#0依附成功的信息。
当成功建立命名空间#0及依附命名空间#0至控制器后,主装置110开始命名空间#0的数据存取780。例如,读取命名空间#0中特定逻辑区块地址的用户数据,于命名空间#0写入特定逻辑区块地址的用户数据等。
参考图8。主装置110可发出命名空间依附命令812给存储装置130,用以解除命名空间#0到特定控制器的依附。主装置110可于第10双字组的第0 至3比特指出此命令请求控制器解依附操作(Controller Detach Operation)。存储装置130成功执行命名空间解依附操作820后,主装置110可从存储装置130 接收执行结果814,包含命名空间#0解依附成功的信息。
当命名空间#0到特定控制器的所有依附都成功解除后,主装置110可发出命名空间管理命令832给存储装置130,用以删除命名空间#0。主装置110可于命名空间管理命令832中指出这是一个删除操作(如第10双字组中第0至3 比特),并提供欲删除命名空间的命名空间标识码(如第1双字组),例如:对应至命名空间#0的值0x00。存储装置130成功执行命名空间#0的删除操作840 后,主装置110可从存储装置130接收执行结果834,包含删除命名空间#0执行成功的信息。
然而,当一个命名空间被建立及依附后,目前并没有调整已建立的命名空间的长度或容量的机制,造成主装置110无法增加此命名空间的长度或容量。例如,存储装置130有1TB的可用空间而命名空间#0的长度或容量只占64GB,但主装置110无法将64GB的命名空间的长度或容量增加至128GB。为解决此缺陷,本发明实施例提出一种命名空间设定更新机制,允许主装置110可以增加命名空间的长度或容量。
参考图9。以命名空间#0为例,当命名空间#0被建立及依附后,主装置 110可发出命名空间设定更新命令912给存储装置130,用以请求增加命名空间#0的长度或容量。除了发出命名空间设定更新命令912以外,主装置110 更可以于随机存取存储器120分配4K字节,用以存储命名空间#0更新后的数据结构的内容,其中的第0至383字节为定义命名空间字段,例如,第0至7 字节为命名空间长度字段,可填入更新后的命名空间长度的值,例如:0x1FFFFFF(以逻辑区块为单位)。第8至15字节为命名空间容量字段,可填入更新后的命名空间容量值,例如:0x1FFFFFF。一般来说,命名空间长度与命名空间容量的值相等。但是,当主装置110希望预留空间(Over Provision) 作为数据迁移或其他操作的缓冲区时,更新后命名空间容量的值,例如: 0x1FFFF00,小于更新后命名空间长度的值。于一些实施例,除了命名空间长度字段及命名空间长度字段,更新后的命名空间数据结构的其余每一字节可设为虚假值(如0x00、0xFF,或其他预设的值),因此,存储装置130可忽略这些虚假值。
命名空间设定更新命令912的格式如图10所示。命名空间设定更新命令 912为64字节命令。第0双字组的第0字节纪录操作码(opcode)1010,用以通知存储装置130此为命名空间管理命令。第0双字组的第2至3字节纪录命令标识码1030,此命令标识码1030较佳为依序产生,作为命名空间设定更新命令912标识的依据,也用以让完成队列530中的一个对应的完成组件关联至命名空间设定更新命令912。第1双字组纪录欲更新的命名空间#0的标识码 1080,其值0x00。主装置110可于第10双字组中第0至3比特的选择字段1070 指出这是一个更新操作。主装置110于第6至7双字组的主要存储器地址字段 1050,或于第6至9双字组的主要存储器地址字段1050及延伸存储器地址字段1060提供指向随机存取存储器120中存储更新后命名空间数据结构的起始地址,用以让存储单元130依据该存储器地址从随机存取存储器120取得更新后的命名空间长度及容量。
虽然以上描述主装置110使用随机存取存储器120存储命名空间长度或容量,供存储装置130读取,但是,于另一些实施例中,主装置110可直接在命名空间设定更新命令912中直接提供更新后的命名空间长度或容量的值等信息,避免占用随机存取存储器120的空间及节省主装置110及存储装置130间的传输带宽,更可加速命名空间设定更新命令912的执行。例如,将更新后的命名空间长度的值存储于主要存储器地址字段1050,或将更新后的命名空间容量的值存储于延伸存储器地址字段1060。
在另一实施例中,操作码1010表示此为命名空间设定更新命令912,如此一来,选择字段1080则可省略不用。
另外,于发出命名空间管理命令912给存储装置130的前,主装置110可先发出辨认命令712给存储装置130以取得命名空间#0的原数据结构,并以原数据结构为基础,调整必要的参数,包括:命名空间长度或命名空间容量的值,以作为命名空间#0更新后的数据结构。另外,主装置110也可发出一般命名空间辨认命令以取得一般命名空间长度或容量的值,并以此值作为逻辑区块的最大值。之后,依序取得每一已建立的命名空间的命名空间长度或容量的值,即可得知未分配逻辑区块的值。如此一来,主装置110可将部分或全部未分配逻辑区块的值加至命名空间#0的命名空间长度或容量的值,作为命名空间#0更新后的命名空间长度或容量的值。
命名空间设定更新操作920较佳由处理单元133以较高优先权予以执行。命名空间设定更新操作920的细节说明如下:参考图11。处理单元133可从递交队列510取得命名空间设定更新命令912(步骤S1110),并且依据命名空间设定更新命令912取得更新后命名空间长度或容量(步骤S1120),其中,更新后命名空间长度或容量可由命名空间设定更新命令912的内容或存储在指定存储器地址的数据结构中取得。
接着,处理单元133判断是否能够支持更新后命名空间长度或容量(步骤 S1130)。处理单元133可将更新后命名空间长度或容量的值加上其他所有命名空间的命名空间长度或容量的值后,再判断是否超过逻辑区块的最大值,或是更新后命名空间长度或容量的值与原始命名空间长度或容量的值间的差值是否小于未分配逻辑区块的值。
当判断无法支持更新后命名空间长度或容量(步骤S1130中“否”的路径),处理单元133可写入包含执行失败信息的完成组件至完成队列530(步骤 S1170)。否则(步骤S1130中“是”的路径),处理单元133可存储此命名空间的更新后命名空间长度或容量至随机存取存储器131及/或存储单元139(步骤S1140)。
处理单元133更新此命名空间的逻辑-物理对照表(步骤S1150)。一般而言,逻辑-物理对照表可分割成多个子逻辑-物理对照表,因此,处理单元133 可更新子逻辑-物理对照表的数量以更新逻辑-物理对照表。另外,处理单元133 可预先建立子逻辑-物理对照表,或是等到需要存取子逻辑-物理对照表时再建立子逻辑-物理对照表。处理单元133写入包含执行成功信息的完成组件至完成队列530(步骤S1160)。
参考图12。假设命名空间(更新前)的原始长度或容量为64GB,则处理单元133建立逻辑-物理对照表1210以存储逻辑区块地址0x0000000至 0x0FFFFFF与物理地址的对应信息,以管理64GB的用户数据。当存储装置130 收到主装置110发出的命名空间设定更新命令912的请求,例如:将此命名空间的长度或容量增加至128GB时,处理单元133可于原来的逻辑-物理对照表 1210之后增加新的逻辑-物理对照表1230,使逻辑区块地址由0x0FFFFFF延申至0x1FFFFFF,以管理128GB的用户数据。逻辑-物理对照表1230中每一项目的物理地址信息可先填入虚假值(如0x00000000、0xFFFFFFFF,或其他),或是等到主装置110存取逻辑区块地址0x1000000至0x1FFFFFF时再建立逻辑- 物理对照表1230。
处理单元133所执行命名空间设定更新操作920的方法步骤,可用一个或多个功能模块组成的计算器程序产品来实现。这些功能模块存储于非易失性存储装置,并且可被处理单元133于特定时间点加载并执行。参考图13。处理单元133执行命名空间设定读取模块1310以完成步骤S1110及S1120的操作,执行判断模块1320以完成步骤S1130的操作,当不满足判断模块1320的判断时执行命名空间长度或容量扩充模块1330以完成步骤S1140及S1150的操作,并且执行完成组件写入模块1340以完成步骤S1160及S1170的操作。命名空间设定读取模块1310可包含NVMe接口的驱动程序及NVMe命令解析器 (parser),用以从主装置110接收命令,辨认命令及请求操作的类型,以及包含直接存储器访问控制器(DirectMemory Access controller,DMA controller) 的驱动程序,用以从随机存取存储器120读取特定命名空间的更新后长度及容量。命名空间长度或容量扩充模块1330可包含闪存记忆控制器135的驱动程序,用以通过存取接口137写入特定命名空间的更新后长度及容量至存储单元 139。完成组件写入模块1340可包含NVMe接口的驱动程序及NVMe完成组件的产生程序码,用以产生完成组件以及通知主装置110完成组件已写入,以及包含直接存储器访问控制器的驱动程序,用以写入完成组件至随机存取存储器120中的完成队列。
此外,目前没有跨命名空间的数据迁移机制。例如:欲迁移命名空间#0 的用户数据至命名空间#1时,主装置110需要发出一系列命名空间#0的读取命令给存储装置130,用以读取用户数据并存储至随机存取存储器120的数据缓冲区,接着,发出一系列命名空间#0的解除分配(Deallocate)命令给存储装置130,用以删除这些用户数据。然后,主装置110再发出一系列命名空间 #1的写入命令给存储装置130,用以将数据缓冲区的用户数据写入命名空间#1。然而,使用如上所述的读取、解除分配及写入命令来完成跨命名空间的数据迁移,会让队列耗费大量空间存储一连串的读取、解除分配及写入命令以及完成组件,并且随机存取存储器120也需要耗费大量带宽传输从存储单元存储单元 139读取的数据以及传输欲写入存储单元139的数据,以及耗费大量空间存储从存储单元139读取的数据。此外,主装置110及处理单元133也需要耗费大量运算资源处理这一连串的读取及写入命令,而这将使存储装置130无法维持适当的运算资源以及时响应主装置110的数据存取命令,造成存储装置130的系统效能低落。
为解决上述问题,参考图14,当命名空间被建立及依附后,主装置110 可发出跨命名空间数据迁移命令1412给存储装置130,用以指示存储装置130 将来源命名空间,例如:命名空间#0,的来源逻辑区块地址的用户数据以内部迁移的方式迁移到目的命名空间,例如:命名空间#1,的目的逻辑区块地址,其中,来源逻辑区块地址与目的逻辑区块地址的值可以相同,也可以不同。
参考图15,跨命名空间数据迁移命令1412为64字节命令。第0双字组的第0字节纪录操作码1510,用以通知存储装置130此为跨命名空间数据迁移命令。第0双字组的第2至3字节纪录命令标识码1530,此命令标识码1530较佳为依序产生,作为跨命名空间数据迁移命令1412标识的依据,也用以让完成队列530中的一个对应的完成组件关联至跨命名空间数据迁移命令1412。第 1双字组纪录目的命名空间的标识码1580,而第6至7双字组纪录起始目的逻辑区块编号1550。第2双字组纪录来源命名空间的标识码1590,而第10至11 双字组纪录起始来源逻辑区块编号1560。第12双字组的第0至1字节纪录迁移数量1570。起始来源逻辑区块编号1560及迁移数量1570定义来源命名空间中一段连续逻辑区块地址,而起始目的逻辑区块编号1550及迁移数量1570定义目的命名空间中一段连续逻辑区块地址。
跨命名空间数据迁移操作1420的细节说明如下:参考图16。跨命名空间数据迁移操作1420可由处理单元133于加载并执行有关的固件时实施。处理单元133可从递交队列510取得跨命名空间数据迁移命令1412,请求将来源命名空间的指定逻辑区块地址的用户数据迁移至目的命名空间的指定逻辑区块地址的存储空间(步骤S1610)。接着,处理单元133从来源逻辑-物理对照表 (即相应于来源命名空间标识码1590的逻辑-物理对照表)中的起始来源项目 (即起始来源逻辑区块编号1560指出的项目)开始剪下(或者先进行复制,待复制完成后解除分配)指定数量的物理地址信息(步骤S1620),以及从目的逻辑-物理对照表(即相应于目的命名空间标识码1580的逻辑-物理对照表)中的起始目的项目(即起始目的地逻辑区块编号1550指出的项目)开始依序存储这些剪下的物理地址信息(步骤S1630)。于步骤S1620前,处理单元133 可驱动闪存控制器135用以从存储单元139读取相应部分的来源逻辑-物理对照表及目的逻辑-物理对照表,并存储至随机存取存储器131。如步骤S1620及 S1630的剪下与贴上可指随机存取存储器131的数据更新。于步骤S1630后,处理单元133可驱动闪存控制器135用以将更新后的相应部分的来源逻辑-物理对照表及目的逻辑-物理对照表写入存储单元139。最后,处理单元133可写入包含执行成功信息的完成组件至完成队列530(步骤S1640)。图16描述的方法流程并不牵涉任何用户数据的实际移动,因此可有效解决如上所述的问题。
举例来说,主装置110可配置两个命名空间,用以分别存储机密及非机密数据,分别可称为机密命名空间(Confidential Namespace)与公开命名空间 (PublicNamespace)。机密命名空间的访问权限或资格较佳由主装置110所决定。例如,主装置110只允许属于机密群组的账号存取机密命名空间中的用户数据,而公开命名空间允许具有一般使用者的账号就可以存取其中的用户数据。当一些机密数据变更为公开数据时,主装置110可将这些数据从机密命名空间迁移到公开命名空间。此应用可使用如上所述的跨命名区域的数据迁移机制。参考图17 。假设跨命名空间数据迁移命令1412指示将命名空间#0的逻辑区块地址#1~#2的用户数据变更成命名空间#1的逻辑区块地址#3~#4的用户数据,则处理单元133剪下逻辑-物理对照表1710(相应于命名空间#0)中的第1至2项目所记录的物理地址信息,并存储至逻辑-物理对照表1730(相应于命名空间#1)中的第3至4项目中。
处理单元133所执行跨命名空间数据迁移操作1420的方法步骤,可用一个或多个功能模块组成的计算器程序产品来实现。这些功能模块存储于非易失性存储装置,并且可被处理单元133于特定时间点加载并执行。参考图18。处理单元133执行跨命名空间数据迁移命令读取模块1810以完成步骤S1610的操作,执行逻辑-物理对照表更新模块1820以完成步骤S1620及S1630的操作,并且执行完成组件写入模块1830以完成步骤S1640的操作。跨命名空间数据迁移命令读取模块1810可包含NVMe接口的驱动程序及NVMe命令解析器,用以从主装置110接收命令,以及辨认命令及请求操作的类型。逻辑-物理对照表更新模块1820可包含闪存记忆控制器135的驱动程序,用以通过存取接口 137从存储单元139读取相应部分的来源逻辑-物理对照表及目的地逻辑-物理对照表以及写入更新后的物理地址信息至存储单元139。完成组件写入模块 1830可包含NVMe接口的驱动程序及NVMe完成组件的产生程序码,用以产生完成组件以及通知主装置110完成组件已写入,以及包含直接存储器访问控制器的驱动程序,用以写入完成组件至随机存取存储器120中的完成队列。
本发明所述的方法中的全部或部分步骤可以计算器程序实现,例如计算机的操作系统、计算机中特定硬件的驱动程序、或软件程序。此外,也可实现于如上所示的其他类型程序。所属技术领域具有通常知识者可将本发明实施例的方法撰写成计算器程序,为求简明不再加以描述。依据本发明实施例方法实施的计算器程序可存储于适当的计算机可读取数据载具,例如DVD、CD-ROM、 USB碟、硬盘,也可置于可通过网络(例如,互联网,或其他适当载具)存取的网络服务器。
虽然图1中包含了以上描述的组件,但不排除在不违反发明的精神下,使用更多其他的附加组件,已达成更佳的技术效果。此外,虽然图11及16的流程图采用指定的顺序来执行,但是在不违反发明精神的情况下,所属技术领域的技术人员可以在达到相同效果的前提下,修改这些步骤间的顺序,所以,本发明并不局限于仅使用如上所述的顺序。此外,所属技术领域的技术人员也可以将若干步骤整合为一个步骤,或者是除了这些步骤外,循序或平行地执行更多步骤,本发明也不因此而局限。
虽然本发明使用以上实施例进行说明,但需要注意的是,这些描述并非用于限缩本发明。相反地,此发明涵盖了所属技术领域中的技术人员显而易见的修改与相似设置。所以,权利要求范围须以最宽广的方式解释来包含所有显而易见的修改与相似设置。

Claims (10)

1.一种闪存存储装置的命名空间操作方法,由存储装置的处理单元执行,其特征在于,包含:
从主装置接收命名空间设定更新命令,请求更新命名空间的命名空间长度,其中该命名空间长度表示逻辑区块的总数目;
从该命名空间设定更新命令取得存储器地址,其中,该存储器地址指出更新后的命名空间长度的值存储在随机存取存储器的位置;
依据该存储器地址从该随机存取存储器读取该更新后的命名空间长度的值,该随机存取存储器设置于该存储装置之外;
判断该命名空间是否能够支持更新后的命名空间长度;以及
当该命名空间能够支持该更新后的命名空间长度时,更新该命名空间的逻辑-物理对照表,允许该命名空间存储该更新后的命名空间长度的用户数据,
其中,当该更新后的命名空间长度的值加上其他命名空间的命名空间长度的值不超过逻辑区块的最大值时,或者当该更新后的命名空间长度的值与原始命名空间长度的值间的差值小于未分配逻辑区块的值时,判断该命名空间能够支持该更新后的命名空间长度以响应该命名空间设定更新命令。
2.如权利要求1所述的闪存存储装置的命名空间操作方法,其特征在于,包含:
当无法支持该更新后的命名空间长度时,回复更新失败信息给该主装置。
3.如权利要求1所述的闪存存储装置的命名空间操作方法,其特征在于,该存储器地址指向命名空间数据结构的起始地址,以及该命名空间数据结构包含字段,用以存储该更新后的命名空间长度的值。
4.如权利要求1所述的闪存存储装置的命名空间操作方法,其特征在于,该更新后的命名空间长度的值大于该命名空间的原先设定长度的值。
5.如权利要求1所述的闪存存储装置的命名空间操作方法,其特征在于,该命名空间已经依附至控制器。
6.一种闪存存储装置的命名空间操作装置,包括:
第一随机存取存储器,用于存储命名空间的逻辑-物理对照表;以及
处理单元,耦接该第一随机存取存储器,用于从主装置接收命名空间设定更新命令,请求更新该命名空间的命名空间长度,其中该命名空间长度表示逻辑区块的总数目;从该命名空间设定更新命令取得存储器地址,其中,该存储器地址指出更新后的命名空间长度的值存储在第二随机存取存储器的位置;依据该存储器地址从该第二随机存取存储器读取该更新后的命名空间长度的值,该第二随机存取存储器设置于该闪存存储装置的命名空间操作装置之外;判断该命名空间是否能够支持更新后的命名空间长度;以及当该命名空间能够支持该更新后的命名空间长度时,更新该命名空间的逻辑-物理对照表,允许该命名空间存储该更新后的命名空间长度的用户数据,
其中,该处理单元用于当该更新后的命名空间长度的值加上其他命名空间的命名空间长度的值不超过逻辑区块的最大值时,或者当该更新后的命名空间长度的值与原始命名空间长度的值间的差值小于未分配逻辑区块的值时,判断该命名空间能够支持该更新后的命名空间长度以响应该命名空间设定更新命令。
7.如权利要求6所述的闪存存储装置的命名空间操作装置,其特征在于,该存储器地址指向命名空间数据结构的起始地址,以及该命名空间数据结构包含字段,用以存储该更新后的命名空间长度的值。
8.如权利要求6所述的闪存存储装置的命名空间操作装置,其特征在于,该处理单元用于当无法支持该更新后的命名空间长度时,回复更新失败信息给该主装置。
9.如权利要求6所述的闪存存储装置的命名空间操作装置,其特征在于,该更新后的命名空间长度的值大于该命名空间的原先设定长度的值。
10.如权利要求6所述的闪存存储装置的命名空间操作装置,其特征在于,该命名空间已经依附至控制器。
CN201810970872.9A 2018-06-22 2018-08-24 闪存存储装置的命名空间操作方法 Active CN110633048B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202211272143.9A CN115421671A (zh) 2018-06-22 2018-08-24 闪存存储装置的命名空间操作方法
US16/164,252 US11307992B2 (en) 2018-06-22 2018-10-18 Method and apparatus for performing operations to namespaces of a flash memory device
US17/690,800 US20220197818A1 (en) 2018-06-22 2022-03-09 Method and apparatus for performing operations to namespaces of a flash memory device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862688743P 2018-06-22 2018-06-22
US62/688,743 2018-06-22

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202211272143.9A Division CN115421671A (zh) 2018-06-22 2018-08-24 闪存存储装置的命名空间操作方法

Publications (2)

Publication Number Publication Date
CN110633048A CN110633048A (zh) 2019-12-31
CN110633048B true CN110633048B (zh) 2022-11-08

Family

ID=68968259

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201810970872.9A Active CN110633048B (zh) 2018-06-22 2018-08-24 闪存存储装置的命名空间操作方法
CN202211272143.9A Pending CN115421671A (zh) 2018-06-22 2018-08-24 闪存存储装置的命名空间操作方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202211272143.9A Pending CN115421671A (zh) 2018-06-22 2018-08-24 闪存存储装置的命名空间操作方法

Country Status (3)

Country Link
US (2) US11307992B2 (zh)
CN (2) CN110633048B (zh)
TW (2) TWI678618B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11119929B2 (en) * 2019-01-31 2021-09-14 Marvell Asia Pte, Ltd. Low latency inter-chip communication mechanism in multi-chip processing system
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
TWI826236B (zh) * 2020-06-26 2023-12-11 日商鎧俠股份有限公司 記憶體系統及控制方法
US11675706B2 (en) 2020-06-30 2023-06-13 Western Digital Technologies, Inc. Devices and methods for failure detection and recovery for a distributed cache
KR20220003786A (ko) 2020-07-02 2022-01-11 삼성전자주식회사 스토리지 장치의 동작 방법
US11736417B2 (en) 2020-08-17 2023-08-22 Western Digital Technologies, Inc. Devices and methods for network message sequencing
KR20220053808A (ko) 2020-10-23 2022-05-02 삼성전자주식회사 멀티 네임스페이스 스토리지 장치, 상기 스토리지 장치를 포함하는 전자 시스템 및 상기 스토리지 장치의 동작 방법
CN117149093B (zh) * 2023-10-27 2024-03-26 四川省华存智谷科技有限责任公司 一种通过ssd缩容提升存储系统可靠性的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107168884A (zh) * 2016-03-08 2017-09-15 东芝存储器株式会社 存储系统、信息处理系统及非易失性存储器的控制方法
CN108021510A (zh) * 2016-10-31 2018-05-11 三星电子株式会社 操作对多重名称空间进行管理的存储装置的方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8489708B2 (en) * 2010-04-06 2013-07-16 Microsoft Corporation Virtual application extension points
US9003071B2 (en) * 2013-03-13 2015-04-07 Futurewei Technologies, Inc. Namespace access control in NVM express PCIe NVM with SR-IOV
KR102025180B1 (ko) * 2013-08-08 2019-09-26 삼성전자주식회사 스토리지 시스템 및 그것의 쓰기 방법
US9495478B2 (en) * 2014-03-31 2016-11-15 Amazon Technologies, Inc. Namespace management in distributed storage systems
US9696935B2 (en) * 2015-04-24 2017-07-04 Kabushiki Kaisha Toshiba Storage device that secures a block for a stream or namespace and system having the storage device
US20160342463A1 (en) * 2015-05-20 2016-11-24 Kabushiki Kaisha Toshiba Data protection in a namespace
CN106484587B (zh) * 2015-08-26 2019-07-19 华为技术有限公司 一种命名空间管理方法、装置及计算机系统
US10140122B2 (en) * 2015-09-23 2018-11-27 Hanan Potash Computer processor with operand/variable-mapped namespace
US10866910B2 (en) * 2015-09-28 2020-12-15 Sandisk Technologies Llc Systems, methods, and computer-readable media for managing instruction fetch in virtual computing environments
JP2017107318A (ja) * 2015-12-08 2017-06-15 株式会社東芝 メモリシステム、情報処理装置および処理方法
CN107305606A (zh) * 2016-04-20 2017-10-31 中兴通讯股份有限公司 应用文件的处理方法及装置和文件的访问方法及装置
US10402092B2 (en) * 2016-06-01 2019-09-03 Western Digital Technologies, Inc. Resizing namespaces for storage devices
US10452419B2 (en) * 2016-09-09 2019-10-22 Huawei Technologies Co., Ltd. Device virtualization for containers
US10162523B2 (en) * 2016-10-04 2018-12-25 Pure Storage, Inc. Migrating data between volumes using virtual copy operation
TWI622890B (zh) * 2016-12-29 2018-05-01 慧榮科技股份有限公司 建立多重命名空間方法與存取多重命名空間的資料的方法
US10866732B2 (en) * 2017-03-10 2020-12-15 Toshiba Memory Corporation Namespace re-sizing
CN107273061A (zh) * 2017-07-12 2017-10-20 郑州云海信息技术有限公司 一种固态硬盘创建多namespace的方法及系统
JP6785205B2 (ja) * 2017-09-21 2020-11-18 キオクシア株式会社 メモリシステムおよび制御方法
JP2019079464A (ja) * 2017-10-27 2019-05-23 東芝メモリ株式会社 メモリシステムおよび制御方法
US10866963B2 (en) * 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication
US11288180B2 (en) * 2018-01-19 2022-03-29 Micron Technology, Inc. Management of storage resources allocated from non-volatile memory devices to users
US10764180B1 (en) * 2018-02-20 2020-09-01 Toshiba Memory Corporation System and method for storing data using software defined networks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107168884A (zh) * 2016-03-08 2017-09-15 东芝存储器株式会社 存储系统、信息处理系统及非易失性存储器的控制方法
CN108021510A (zh) * 2016-10-31 2018-05-11 三星电子株式会社 操作对多重名称空间进行管理的存储装置的方法

Also Published As

Publication number Publication date
TW202001569A (zh) 2020-01-01
US20220197818A1 (en) 2022-06-23
TWI708144B (zh) 2020-10-21
CN110633048A (zh) 2019-12-31
TWI678618B (zh) 2019-12-01
TW202018514A (zh) 2020-05-16
CN115421671A (zh) 2022-12-02
US20190391928A1 (en) 2019-12-26
US11307992B2 (en) 2022-04-19

Similar Documents

Publication Publication Date Title
CN110633048B (zh) 闪存存储装置的命名空间操作方法
CN107844431B (zh) 映射表更新方法、存储器控制电路单元与存储器存储装置
US10970003B2 (en) Scalable low-latency storage interface
US20190095123A1 (en) Methods for internal data movements of a flash memory device and apparatuses using the same
WO2017000658A1 (zh) 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法
CN111459844B (zh) 数据储存装置及用于存取逻辑至物理地址映射表的方法
US20170031631A1 (en) Storage device and method of operating the same
US20200089619A1 (en) Data storage device and method of deleting namespace thereof
US10649893B2 (en) Namespace planning of non-volatile memory of data storage device
US20210034536A1 (en) Storage device, memory system comprising the same, and operating method thereof
KR20120063829A (ko) 비휘발성 메모리 장치의 데이터 처리 방법
US20160062659A1 (en) Virtual memory module
CN111399750B (zh) 闪存数据写入方法及计算机可读取存储介质
TW202101227A (zh) 閃存實體資源集合管理裝置及方法以及電腦程式產品
CN111796759A (zh) 多平面上的片段数据读取的计算机可读取存储介质及方法
TWI710905B (zh) 資料儲存裝置及邏輯至物理位址映射表之載入方法
WO2021035555A1 (zh) 一种固态硬盘的数据存储方法、装置及固态硬盘ssd
CN111813703A (zh) 数据储存装置及逻辑至物理地址映射表的更新方法
TWI756854B (zh) 管理資料儲存的方法及裝置以及電腦程式產品
US11573732B2 (en) Storage device, memory system comprising the same, and operation method thereof
US20230273878A1 (en) Storage device for classifying data based on stream class number, storage system, and operating method thereof
TWI760884B (zh) 主機效能加速模式的資料讀取方法及裝置
TWI835027B (zh) 更新主機與閃存位址對照表的方法及電腦程式產品及裝置
US20230147477A1 (en) Storage device, memory system comprising the same, and operation method thereof
KR20220159270A (ko) 스토리지 장치 및 그 동작 방법

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