一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

存储装置及其操作方法与流程

2023-01-01 11:36:36 来源:中国专利 TAG:

存储装置及其操作方法
1.本技术要求于2021年6月8日在韩国知识产权局提交的第10-2021-0074039号韩国专利申请的优先权,所述韩国专利申请的公开通过引用全部包含于此。
技术领域
2.本公开的实施例涉及一种存储装置及其操作方法,更具体地,涉及一种包括命名空间的存储装置及其操作方法。


背景技术:

3.易失性存储器装置是在电力从其被移除时丢失存储在其中的数据的存储器装置。易失性存储器装置包括静态随机存取存储器(sram)和动态随机存取存储器(dram)。非易失性半导体存储器即使在电源供应中断时也保留存储在其中的数据,并且包括诸如闪存装置的装置。
4.最近,基于闪存的固态驱动器(ssd)已经越来越多地用作大容量存储介质。使用ssd的主机(诸如,服务器或个人计算机)可生成各种类型的数据。例如,数据可表示不同类型的信息(诸如,图像信息、声音信息和/或字母数字信息)。ssd可提供命名空间功能,以在一个物理装置上配置多个逻辑装置。


技术实现要素:

5.本公开的实施例提供一种为每个命名空间指定数据关键度和优先级并且基于指定的数据关键度和优先级来内部地管理数据和数据的访问的存储装置以及上述存储装置的操作方法。
6.根据实施例,一种操作包括非易失性存储器装置的存储装置的方法包括:通知主机指定功能可用,所述指定功能用于将数据关键度和优先级指定给非易失性存储器装置的命名空间;响应于接收到对所述指定功能的批准而启用所述指定功能;从主机接收用于指定命名空间中的第一命名空间的数据关键度和优先级的第一请求;以及响应于第一请求生成命名空间映射表。
7.根据实施例,一种存储装置包括一个或多个存储控制器、非易失性存储器装置和管理控制器。管理控制器被配置为:通知主机指定功能可用,所述指定功能用于将数据关键度和优先级指定给非易失性存储器装置的命名空间;在接收到使用所述指定功能的批准时启用所述指定功能;从主机接收用于指定命名空间中的第一命名空间的数据关键度和优先级的第一请求;并响应于第一请求生成命名空间映射表。
8.根据实施例,一种存储装置包括一个或多个存储控制器、包括被划分为一个或多个域的多个存储器块的非易失性存储器装置、以及管理控制器。管理控制器被配置为:通知主机指定功能是可行的,所述指定功能用于将数据关键度和优先级指定给非易失性存储器装置的命名空间;响应于接收到对所述指定功能的批准而启用所述指定功能;从主机接收用于指定命名空间中的第一命名空间的数据关键度和优先级的第一请求;并且生成命名空
间映射表,其中,响应于第一请求,命名空间映射表将第一命名空间与所述一个或多个存储控制器中的第一存储控制器、第一数据关键度和第一优先级相关联,其中,所述一个或多个域中的第一域被指定到第一数据关键度。
9.根据实施例,一种存储装置的操作方法,其中,所述存储装置包括非易失性存储器装置,非易失性存储器装置包括被划分为一个或多个域的多个存储器块。所述操作方法包含:通知主机指定功能是可行的,所述指定功能用于将数据关键度和优先级指定给非易失性存储器装置的命名空间;响应于主机的启用请求而启用所述指定功能;从主机接收对与第一命名空间相关联的第一数据的写入命令,其中,第一命名空间具有第一数据关键度和第一优先级;以及响应于对第一数据的写入命令,将第一数据写入到一个或多个存储器块中的一个存储器块,所述一个或多个存储器块被包括在所述一个或多个域之中的被指定到第一数据关键度的第一域中。
10.根据实施例,一种存储装置包括一个或多个存储控制器、管理控制器和非易失性存储器装置,非易失性存储器装置包括被划分为一个或多个域的多个存储器块。所述存储装置被配置为:通知主机指定功能可用,所述指定功能用于将数据关键度和优先级指定到非易失性存储器装置的命名空间;响应于主机的启用请求而启用所述指定功能;从主机接收对与命名空间中的具有第一数据关键度和第一优先级的第一命名空间相关联的第一数据的写入命令;以及响应于对第一数据的写入命令,将第一数据写入到一个或多个存储器块中的一个存储器块,所述一个或多个存储器块被包括在所述一个或多个域中的被指定到第一数据关键度的第一域中。
附图说明
11.通过参照附图详细描述本公开的实施例,本公开的以上和其他目的和特征将变得清楚。
12.图1示出根据本公开的一些实施例的存储系统的框图。
13.图2示出根据本公开的一些实施例的图1的存储控制器的框图。
14.图3示出根据本公开的一些实施例的图1的非易失性存储器装置的框图。
15.图4示出根据本公开的一些实施例的存储系统的软件层。
16.图5示出根据本公开的一些实施例的存储系统的框图。
17.图6示出根据本公开的一些实施例的存储系统的框图。
18.图7示出根据本公开的一些实施例的命名空间映射表。
19.图8示出根据本公开的一些实施例的非易失性存储器装置的存储器块。
20.图9示出根据本公开的一些实施例的可用于与主机通信的输入/输出队列。
21.图10示出根据本公开的一些实施例的可用于与非易失性存储器装置通信的输入/输出队列。
22.图11示出根据本公开的一些实施例的图6的存储装置的操作方法的流程图。
23.图12示出根据本公开的一些实施例的通过图6的存储装置执行从图6的主机接收的请求的方法的流程图。
具体实施方式
24.在一些系统中(诸如,连接到存储装置的主机计算装置),可通过使用命名空间将数据划分为不同的类型。然后,可为不同类型的数据分配不同的优先级。例如,在时间在应用中至关重要的系统(例如,自动驾驶汽车、医疗系统等)中,可能期望为一些类型的数据分配比其他类型更高的优先级。例如,可能期望能够通过备份相机镜头数据来访问和操纵来自雷达系统的传感器数据。为了优先访问特定数据,主机可将关于数据的信息连同数据本身一起提供给存储装置。关于数据的信息可被称为元数据。
25.在下文中,将参照附图详细描述实施例。附图中相同的参照标号可表示相同的元件,并且在一定程度上已省略对元件的描述,可被理解为该元件至少类似于在说明书中其他地方描述的相应元件。
26.图1示出根据本公开的一些实施例的存储系统1000的框图。参照图1,存储系统1000可包括主机1100和存储装置1200。在一些实施例中,存储系统1000可以是被配置为处理各种信息并存储已处理的信息的信息处理装置(诸如,个人计算机(pc)、膝上型计算机、服务器、工作站、智能电话、平板pc、数字相机和黑盒)。
27.主机1100可控制存储系统1000的操作。例如,主机1100可向存储装置1200发送用于将数据存储在存储装置1200中或用于读取存储在存储装置1200中的数据的请求。在一些实施例中,主机1100可包括处理器核(诸如,中央处理器(cpu)或应用处理器(ap)),处理器核被配置为控制存储系统1000。在一个实施例中,主机可使用通过网络连接的计算节点被实现。
28.主机1100可包括主机处理器1110、主机存储器1120和接口电路1130。主机处理器1110可管理来自在主机1100上驱动的各种应用、软件或虚拟机的命令。主机处理器1110可控制主机1100的操作。例如,主机处理器1110可控制用于将主机存储器1120的缓冲区域的数据(例如,写入数据)存储在存储装置1200中的操作或用于将存储装置1200的数据(例如,读取数据)存储在主机存储器1120的缓冲区域中的操作。
29.主机存储器1120可用作缓冲存储器,缓冲存储器用于临时存储将要发送到存储装置1200的数据或用于存储从存储装置1200接收的数据。例如,主机存储器1120可包括管理队列、提交队列和完成队列。
30.管理队列可用于管理主机处理器1110对存储装置1200进行控制所需的信息或(一个或多个)命令。提交队列可用于管理将要发送到存储装置1200的命令或输入/输出(i/o)。完成队列可用于管理关于由存储装置1200完成的操作的信息。在一些实施例中,管理队列、提交队列和完成队列可由主机处理器1110或存储控制器1210管理。在一些实施例中,提交队列和完成队列可以是可被称为“输入/输出队列”的一对队列。
31.接口电路1130可在主机处理器1110的控制下与存储装置1200通信。例如,基于给定协议,接口电路1130可向存储装置1200发送将要写入存储装置1200中的数据。接口电路1130可从存储装置1200接收存储在存储装置1200中的数据。在一些实施例中,接口电路1130可基于诸如pcie(外围组件互连快速)等的标准与存储装置1200通信。
32.在一些实施例中,主机处理器1110和主机存储器1120可使用单独的半导体芯片被实现。可选择地,在一些实施例中,主机处理器1110和主机存储器1120可在同一半导体芯片中被实现。例如,主机处理器1110可以是包括在应用处理器中的多个模块中的一个;在这种
情况下,应用处理器可被实现为片上系统(soc)。在一个实施例中,主机存储器1120可以是包括在应用处理器中的嵌入式存储器,或者可以是设置在应用处理器外部的非易失性存储器或存储器模块。
33.存储装置1200可包括存储控制器1210和非易失性存储器装置1220。存储控制器1210可控制存储装置1200的操作。例如,响应于从主机1100接收的请求,存储控制器1210可将数据写入非易失性存储器装置(nvm)1220或者可读取存储在非易失性存储器装置1220中的数据。存储控制器1210可执行用于管理或控制非易失性存储器装置1220的各种操作。稍后将详细描述存储控制器1210的操作。
34.存储装置1200可包括用于存储数据的存储介质(例如,非易失性存储器装置1220),其中,存储操作基于来自主机1100的请求。例如,存储装置1200可包括固态驱动器(ssd)、嵌入式存储器和可移动外部存储器中的一者或多者。在存储装置1200是ssd的情况下,存储装置1200可符合nvme(非易失性存储器快速)标准。在存储装置1200是嵌入式存储器或外部存储器的情况下,存储装置1200可符合ufs(通用闪存)或emmc(嵌入式多媒体卡)标准。主机1100和存储装置1200中的每个可生成符合应用于它们的标准协议的数据,并且可发送生成的数据。
35.当存储装置1200的非易失性存储器装置1220包括闪存时,闪存可包括二维(2d)nand闪存阵列或三维(3d)(或垂直)nand(vnand)存储器阵列。又例如,存储装置1200可使用各种不同的非易失性存储器来实现。例如,存储装置1200可包括磁性ram(mram)、自旋转移力矩mram(stt-mram)、导电桥接ram(cbram)、铁电ram(feram)、相变ram(pram)、电阻式ram(rram)或各种不同的存储器装置中的一者或者多者。
36.在一些实施例中,存储装置1200可支持命名空间功能。命名空间可被定义为一个逻辑块或两个或更多个逻辑块的集合。对应于存储装置1200的逻辑空间可被划分为多个命名空间。唯一的逻辑块地址(lba)可被分配给每个命名空间。
37.在一些实施例中,响应于从主机1100接收的请求,存储装置1200可针对多个命名空间中的每个命名空间指定数据关键度(data criticality)和优先级。主机1100可针对至存储装置1200的每个数据源指定关键度和优先级。例如,主机1100可向与自主车辆或医疗装置相关联的数据源指定高关键度和高优先级。另外,存储装置1200可基于主机1100的请求,为将被存储(或正被存储)在特定命名空间中的数据指定关键度和优先级。例如,被发送到存储装置1200的数据流可使用关键度和优先级进行标记,并且以这种方式,(一个或多个)数据流可对于多个命名空间中的一个命名空间来说是唯一的。例如,标记有特定关键度和优先级的数据流可存储在多个命名空间中的一个命名空间中。
38.在一些实施例中,存储装置1200可基于数据关键度和优先级来区分存储在非易失性存储器装置1220中的数据之间的服务质量(qos)。例如,基于每个数据流的标签信息,存储装置1200可使用不同的优先级来处理数据流。
39.在一些实施例中,存储装置1200可基于特定命名空间的数据关键度和优先级来处理与特定命名空间相关联的输入/输出请求。例如,存储装置1200可更快地(或以更低的时延)处理与关键并具有高优先级的命名空间相关联的输入/输出请求。存储装置1200可内部地管理命名空间的数据和对命名空间(或数据)的访问,使得关键和高优先级命名空间的数据可以以低时延被访问或写入。
40.在一些实施例中,非易失性存储器装置1220可包括多个存储器块,并且存储装置1200可将多个存储器块划分为多个域。存储装置1200可将与关键并具有高优先级的命名空间相关联的数据存储在具有高可靠性的单独的域中。因此,存储装置1200可立即向主机1100提供关键并具有高优先级的数据,而不考虑未决的低优先级的对数据的输入/输出请求。
41.图2示出根据本公开的一些实施例的图1的存储控制器1210的框图。参照图1和图2,存储控制器1210可包括cpu 1211、闪存转换层(ftl)1212、纠错码(ecc)引擎1213、主机接口1214、缓冲存储器1215和nvm接口1216。
42.cpu 1211可驱动操作系统、固件、软件或程序代码,以驱动存储控制器1210。cpu 1211可将用于控制非易失性存储器装置1220的元数据加载到缓冲存储器1215上,并且可参考加载的数据。缓冲存储器1215可包括随机存取存储器(ram)。例如,缓冲存储器1215可包括静态ram(sram)或动态ram(dram)。
43.为了控制非易失性存储器装置1220,cpu 1211可基于从主机1100接收的请求生成各种命令和地址,并可生成与非易失性存储器装置1220相关联的映射表。cpu 1211可将生成的命令和地址发送到nvm接口1216。在cpu1211的控制下,存储在缓冲存储器1215中的数据(或存储在存储装置1200的外部缓冲器中的数据)可通过nvm接口1216存储在非易失性存储器装置1220中。
44.ftl 1212可执行各种功能(诸如,地址映射、损耗均衡(wear-leveling)、垃圾收集及命名空间映射)。例如,地址映射操作是指将从主机1100接收的逻辑地址转换为用于将数据实际存储在非易失性存储器装置1220中的物理地址的操作。损耗均衡可通过“允许非易失性存储器装置1220中的块被均匀地使用使得特定块的过度劣化被避免”的技术来实现。例如,损耗均衡可包括用于平衡物理块的擦除计数的固件技术。垃圾收集是指用于通过提供在将现有块的有效数据复制到新块之后擦除现有块的方式来确保非易失性存储器装置1220的可用容量的技术。垃圾收集可例如防止存储器泄漏。稍后将详细描述命名空间映射。
45.在一些实施例中,ftl 1212可被实现为硬件或软件。在ftl 1212被实现为软件的情况下,与ftl 1212相关联的程序代码或信息可被存储到缓冲存储器1215中(或被加载到缓冲存储器1215上),并可由cpu 1211执行。当ftl 1212被实现为硬件时,存储控制器1210还可包括硬件加速器,该硬件加速器被配置为与cpu 1211分开地执行ftl 1212的操作。
46.ecc引擎1213可对从非易失性存储器装置1220读取的数据执行错误检测和纠正功能。更详细地,ecc引擎1213可针对将要写入非易失性存储器装置1220的数据生成纠错码(或奇偶校验位)。生成的纠错码可与将要写入非易失性存储器装置1220的数据一起存储在非易失性存储器装置1220中。在存储在非易失性存储器装置1220中的数据从非易失性存储器装置1220读取的情况下,ecc引擎1213可基于读取数据和与其对应的纠错码来检测读取数据的错误,可纠正检测到的错误,并可输出已纠错的读取数据。
47.主机接口1214可遵从给定的接口协议的与主机1100通信。在一个实施例中,给定接口协议可包括用于各种接口(诸如,ata(高级技术附件)接口、sata(串行ata)接口、e-sata(外部sata)接口、scsi(小型计算机小型接口)接口、sas(串行连接scsi)接口、pci(外围组件互连)接口、pcie(pci快速)接口、nvme(nvm快速)接口、ieee 1394接口、usb(通用串行总线)接口、sd(安全数字)卡接口、mmc(多媒体卡)接口、emmc(嵌入式多媒体卡)接口、ufs
(通用闪存)接口、eufs(嵌入式通用闪存)接口、cf(紧凑型闪存)卡接口或网络接口)的协议。主机接口1214可基于给定的接口协议从主机1100接收信号,并且可基于所接收的信号进行操作。可选择地,主机接口1214可基于给定的接口协议向主机1100发送信号。
48.缓冲存储器1215可以是被配置为临时存储输入到存储控制器1210的数据的写入缓冲器或读取缓冲器。可选择地,缓冲存储器1215可被配置为存储存储控制器1210操作所需的各种信息。例如,缓冲存储器1215可存储由ftl1212管理的映射表(例如,图7的命名空间映射表nsmt)。可选择地,缓冲存储器1215可存储与ftl 1212相关联的软件、固件或信息。
49.nvm接口1216可被配置为遵从给定的通信协议与非易失性存储器装置1220通信。在一些实施例中,给定接口协议可包括用于各种接口(诸如,触发接口(toggle interface)和开放式nand闪存接口(onfi))的协议。在一些实施例中,nvm接口1216可基于触发接口与非易失性存储器装置1220通信。在这种情况下,nvm接口1216可通过多个通道与非易失性存储器装置1220通信。在一些实施例中,多个通道中的每个可包括被配置为传送各种控制信号、数据信号和数据选通信号的多条信号线。
50.图3示出根据本公开的一些实施例的图1的非易失性存储器装置1220的框图。参照图1和图3,非易失性存储器装置1220可包括存储器单元阵列1221、行解码器电路1222、页缓冲器电路1223、数据输入/输出电路1224和控制逻辑电路1225。
51.存储器单元阵列1221可包括多个存储器块(例如,图8的存储器块blk0至blkc)。多个存储器块中的每个可包括多个存储器单元。每个存储器块可通过至少一条地选择线(或多条地选择线)gsl、字线wl和至少一条串选择线(或多条串选择线)ssl与行解码器电路1222连接。每个存储器块可通过多条位线bl与页缓冲器电路1223连接。多个存储器块可共同与多条位线bl连接。
52.行解码器电路1222可通过串选择线ssl、字线wl和地选择线gsl连接到存储器单元阵列1221。行解码器电路1222可由控制逻辑电路1225控制。
53.在一个示例操作中,行解码器电路1222可从存储控制器1210接收行地址ra并且可对接收的行地址ra进行解码。行解码器电路1222可响应于解码的行地址而选择与存储器单元阵列1221连接的字线wl中的一条。在控制逻辑电路1225的控制下,行解码器电路1222可基于解码的行地址来调节将要施加到串选择线ssl、字线wl和地选择线gsl的电压。
54.页缓冲器电路1223可通过多条位线bl与存储器单元阵列1221连接。页缓冲器电路1223可通过多条数据线dl与数据输入/输出电路1224连接。
55.页缓冲器电路1223可由控制逻辑电路1225控制。
56.在写入操作中,页缓冲器电路1223可存储将写入到存储器单元阵列1221的数据。页缓冲器电路1223可基于存储的数据向位线bl施加电压。在与写入操作或擦除操作相关联的验证读取操作中或读取操作中,页缓冲器电路1223可感测位线bl的电压并且可存储感测结果。
57.数据输入/输出电路1224可通过多条数据线dl连接到页缓冲器电路1223。数据输入/输出电路1224可由控制逻辑电路1225控制。在一个示例操作中,数据输入/输出电路1224可从存储控制器1210接收列地址ca。数据输入/输出电路1224可输出由页缓冲器电路1223读取的数据之中的与列地址ca对应的数据。数据输入/输出电路1224可基于列地址ca,通过数据线dl将从存储控制器1210接收的数据“data”传输到页缓冲器电路1223。
58.控制逻辑电路1225可从存储控制器1210接收命令cmd。控制逻辑电路1225可与存储控制器1210交换控制信号ctrl。控制逻辑电路1225可对接收的命令cmd进行解码。控制逻辑电路1225可基于解码的命令来控制行解码器电路1222、页缓冲器电路1223和数据输入/输出电路1224。
59.图4示出根据本公开的一些实施例的存储系统2000的软件层。参照图1、图2和图4,存储系统1000的软件层可包括应用层2110、文件系统层2120、装置驱动器层2130和ftl 2210。在一个实施例中,应用层2110、文件系统层2120和装置驱动器层2130可被包括在主机2100中,并且ftl 2210和非易失性存储器装置2220可被包括在存储装置2200中。
60.应用层2110可包括在主机2100中或由主机2100驱动的各种应用程序(或虚拟机)。文件系统层2120可被配置为组织在应用层2110处使用的文件或数据。例如,文件系统层2120可将存储装置2200的存储空间管理为逻辑块地址。文件系统层2120可将逻辑块地址分配给将被存储在存储装置2200中的数据,并且可管理逻辑块地址。
61.在一些实施例中,在应用层2110中驱动的应用程序均可在被执行时生成唯一的命名空间。通过每个应用程序写入或读取的数据可以是与其唯一命名空间相关联的输入/输出。例如,一个或多个应用程序可被实现为共享一个命名空间。
62.在一些实施例中,文件系统层2120的格式可基于主机2100的操作系统而改变。例如,文件系统层2120可包括各种文件系统(诸如,fat(文件分配表)、fat32、ntfs(nt文件系统)、hfs(分层文件系统)、jsf2(日志文件系统2)、xfs、ods-5(磁盘上结构-5)、udf、zfs、ufs(unix文件系统)、ext2、ext3、ext4、reiserfs、reiser4、iso 9660、gnome vfs、bfs和winfs)中的一个或多个。
63.装置驱动器层2130可将来自文件系统层2120或应用层2110的信息转换成可由存储装置2200识别的信息。在一些实施例中,应用层2110、文件系统层2120和装置驱动器层2130可以以软件的形式实现,并且可在主机2100上驱动。
64.ftl 2210可执行主机2100与非易失性存储器装置2220之间的各种维护操作。例如,ftl 2210可被配置为将从主机2100接收的请求的逻辑块地址转换为非易失性存储器装置2220中的可用存储器的物理块地址(或物理地址)。
65.图5示出根据本公开的一些实施例的存储系统3000的框图。参照图5,存储系统3000可包括第一主机3110、第二主机3120和存储装置3200。
66.可在第一主机3110上驱动多个虚拟机。例如,第一主机3110可支持第一虚拟机vm1和第二虚拟机vm2。第一虚拟机vm1和第二虚拟机vm2可各自执行独立的操作系统。第一主机3110上的管理程序(hypervisor)3111可允许在第一主机3110上驱动的多个虚拟机vm1和vm2访问存储系统3000的资源。例如,第一虚拟机vm1和第二虚拟机vm2可通过管理程序3111访问存储装置3200。响应于第一虚拟机vm1或第二虚拟机vm2的请求,管理程序3111可向存储装置3200发送用于将数据写入存储装置3200的请求或用于读取存储在存储装置3200中的数据的请求。在一些实施例中,管理程序3111可被称为“主节点”或“协调器”。
67.可在第二主机3120上驱动单个虚拟机。例如,第二主机3120可支持第三虚拟机vm3。第三虚拟机vm3可通过第二主机3120上的管理程序3121访问存储系统3000的资源。例如,第三虚拟机vm3可通过管理程序3121访问存储装置3200。响应于第三虚拟机vm3的请求,管理程序3121可向存储装置3200发送用于将数据写入存储装置3200的请求或用于读取存
储在存储装置3200中的数据的请求。
68.图6示出根据本公开的一些实施例的存储系统4000的框图。参照图6,存储系统4000可包括主机4100和存储装置4200。
69.主机4100可支持多个虚拟机。例如,可在主机4100上驱动虚拟机vm1、vm2、
……
、vmn(其中,n是正整数)。可在一个虚拟机上驱动至少一个应用。虚拟机vm1、vm2、
……
、vmn可通过管理程序4110访问存储装置4200。响应于虚拟机vm1、vm2、
……
、vmn的请求,管理程序4110可向存储装置4200发送用于将数据写入存储装置4200的请求或用于读取存储在存储装置4200中的数据的请求。
70.存储装置4200可包括管理控制器(administration controller)(在下文中被称为“管理控制器”(admin controller))4210、存储控制器4211至421m(其中,m是自然数)和非易失性存储器装置4220。存储装置4200可支持物理功能(pf)装置pf0。可通过pf装置pf0将用于访问存储装置4200的请求从主机4100提供到管理控制器4210或存储控制器4211至421m。在主机4100上驱动的虚拟机vm1至vmn可通过pf装置pf0共享可以是单个存储装置的存储装置4200。
71.管理控制器4210可从主机4100接收用于管理非易失性存储器装置4220的命名空间4221的请求(或命令)。例如,主机4100的管理程序4110可向管理控制器4210发送用于指定命名空间4221中的一个或多个的优先级或将要存储到命名空间4221中的每个的数据的关键度的请求。在一些实施例中,管理程序4110可通过nvme接口等向管理控制器4210发送请求。响应于从管理程序4110接收的请求,管理控制器4210可生成并管理命名空间映射表(例如,图7的命名空间映射表nsmt)。稍后将详细描述管理控制器4210的操作。
72.存储控制器4211至421m可与虚拟机vm1至vmn的一个进行通信。例如,存储控制器4211可响应于从虚拟机vm1接收的请求而访问非易失性存储器装置4220。存储控制器4212可响应于从虚拟机vm2接收的请求而访问非易失性存储器装置4220,并且存储控制器421m可响应于从虚拟机vmn接收的请求而访问非易失性存储器装置4220。在一些实施例中,与图6中所示的实施例不同,两个虚拟机可共享一个存储控制器。
73.非易失性存储器装置4220可被划分为“k”个命名空间ns1至nsk(即,4221)。命名空间4221可具有不同的特性或要求。例如,命名空间ns1的可靠性和/或优先级可与命名空间ns2的可靠性和/或优先级不同。
[0074]“n”个虚拟机vm1至vmn可共享具有“k”个命名空间4221的单个非易失性存储器装置4220。例如,虚拟机vm1至vmn的子集(或至少一部分)可将数据存储在命名空间4221的子集(或至少一部分)中。
[0075]
在一些实施例中,将要通过一个虚拟机写入存储装置4200的数据的关键度或优先级可与将要通过另一个虚拟机写入存储装置4200的数据的关键度或优先级不同。例如,当在虚拟机vm1上驱动具有相对低的关键度或低的优先级的应用(例如,数据流应用或数据显示应用)时,可在虚拟机vm2上驱动具有相对高的关键度或高的优先级的应用(例如,自动驾驶应用或救生应用)。在以上实施例中,将要通过虚拟机vm1写入存储装置4200的数据的关键度或优先级可低于将要通过虚拟机vm2写入存储装置4200的数据的关键度或优先级。
[0076]
在以上实施例中,响应于主机4100的请求,管理控制器4210可针对命名空间4221中一个或多个指定优先级和数据关键度。基于为每个命名空间4221指定的优先级和数据关
parity raid)的存储器单元)中。
[0083]
存储装置4200可管理“任务关键”的命名空间的数据,使得该数据具有最低时延。例如,存储装置4200可将以上数据存储在对数据输入/输出的故障是安全的(例如,缺陷预防)和单独的存储器块中。例如,以上存储器块可以是其中能够阻碍读取时延的操作(诸如,读取重试操作)的频率由于读取错误等被避免而减少的存储器块。因此,当在主机4100上驱动的应用读取以上数据时,“任务关键”的命名空间的数据可具有最低时延。
[0084]
例如,在一个实施例中,在图7中示出这样的示例:命名空间ns1未被指定给特定存储控制器(“x”),将要写入命名空间ns1的数据(或已写入ns1的数据)可被指定为“任务关键”,并且将要写入命名空间ns1的数据(或已写入ns1的数据)的优先级可以是“极端”。因此,将要写入命名空间ns1的数据(或已写入ns1的数据)可被存储在非易失性存储器装置4220的存储器单元之中的具有最高可靠性的存储器单元(例如,单层单元(slc)或应用了故障安全奇偶校验raid的存储器单元)中,并且与任何其他输入/输出请求相比,用于访问命名空间ns1的输入/输出请求可被更快地处理。
[0085]
在图7中示出这样的示例:命名空间ns2被指定给存储控制器4212(“控制器2”),将要写入命名空间ns2的数据(或已写入ns2的数据)可被设置为不重要(“不关键”),并且将要写入命名空间ns2的数据(或已写入ns2的数据)的优先级可以是“非常低”。因此,命名空间ns2可仅被存储控制器4212访问,将要写入命名空间ns2的数据(或已写入ns2的数据)可被存储在非易失性存储器装置4220的存储器单元之中的具有相对低可靠性的存储器单元(例如,多层单元(mlc)或未应用故障安全奇偶校验raid的存储器单元)中,并且与任何其他输入/输出请求相比,用于访问命名空间ns2的输入/输出请求可被更慢地处理。
[0086]
图7还示出了这样的示例:命名空间nsk未被指定给特定存储控制器(“x”),将要写入命名空间nsk的数据(或已写入nsk的数据)可以是“重要的”,并且将要写入命名空间nsk的数据(或已写入nsk的数据)的优先级可以是“高”。因此,将要写入命名空间nsk的数据(或已写入nsk的数据)可被存储在非易失性存储器装置4220的存储器单元之中的具有相对高可靠性的存储器单元中,并且与任何其他输入/输出请求相比,用于访问命名空间nsk的输入/输出请求可被相对快速地处理。
[0087]
图8示出根据本公开的一些实施例的非易失性存储器装置4220的存储器块blk1至blkc。参照图6、图7和图8,非易失性存储器装置4220可包括存储器块blk0至blkc。
[0088]
存储器块blk0至blkc可被划分为多个域。可针对任务关键数据指定多个域之中的特定域的id。例如,存储器块blk0至blka可被指定为存储任务关键数据。在这个示例中,通过存储装置4200(例如,由存储装置4200驱动的ftl),与任务关键命名空间(例如,命名空间ns1)对应的逻辑块地址可被映射到与域对应的物理块地址(例如,包括存储器块blk0至blka的物理块地址)上。因此,任务关键数据可被存储在与非任务关键数据分离的物理空间中。结果,可防止重要数据和不重要数据之间的干扰。例如,不重要数据可对重要数据的时延或完整性没有影响。此外,可防止由于数据拥塞而导致的不必要的垃圾收集。
[0089]
在一些实施例中,为了支持对为任务关键数据指定的域的超量供应(overprovisioning),非易失性存储器装置4220还可包括空闲存储器块。例如,响应于当从主机4100接收到与任务关键命名空间对应的写入数据和逻辑块地址时,存储装置4200可将接收的逻辑块地址映射到空闲存储器块的物理块地址(pba)上,而不是映射到存储器块
blk0至blka。在另一示例中,为了执行读取刷新操作或垃圾收集操作,存储装置4200可将存储在存储器块blk0至blka中的数据的至少一部分迁移到空闲存储器块,并且可再次将与迁移的数据对应的逻辑块地址映射到空闲存储器块的物理块地址上。
[0090]
在一些实施例中,任务关键命名空间可始终通过ftl(例如,通过由对应的存储控制器驱动的ftl)被高速缓存在内部缓冲器或外部缓冲存储器中。例如,图7的命名空间映射表nsmt可始终被高速缓存在存储装置4200的内部存储器装置或外部存储器装置中。
[0091]
在一些实施例中,存储装置4200可将积极的数据保护策略应用于任务关键域(例如,存储器块blk0至blka)。例如,存储装置4200可将各种数据保护策略应用于任务关键域,各种数据保护策略提供针对快速读取时延和块损坏的保护。
[0092]
多个域之中的一些域可被指定为存储重要数据或存储不重要数据。例如,重要数据和不重要数据可具有比任务关键数据更低的优先级。例如,存储器块blka 1至blkb可被指定为存储重要数据。剩余的存储器块(例如,存储器块blkb 1至blkc)可被指定为存储不重要的数据。
[0093]
在一些实施例中,存储装置4200可动态地改变存储器块blk0至blkc的域。存储装置4200可基于任务关键域中包括的空闲存储器块的数量来动态地改变任务关键域的大小。例如,存储装置4200可(例如,周期性地)监视用于存储任务关键数据的空闲物理空间。例如,存储装置4200可监视任务关键域中包括的空闲存储器块的数量。响应于当任务关键域中包括的空闲存储器块的数量是阈值(例如,“0”)或更小时,存储装置4200可确定用于存储任务关键数据的空闲物理空间是不足的。
[0094]
基于确定用于存储任务关键数据的空闲物理空间不足,存储装置4200可从不属于任务关键域的存储器块(例如,存储器块blka 1至blkc中的空闲块)中重新组织(或再次指定)不包含数据的存储器块作为(或用于)任务关键域。又例如,基于确定非易失性存储器装置4220的容量已满,存储装置4200可对不属于任务关键域的存储器块(例如,存储器块blka 1至blkc)之中的至少一些存储器块执行擦除操作,并且可将擦除的存储器块重新组织到任务关键域中。
[0095]
图9示出根据本公开的一些实施例的可用于与主机4100通信的主机输入/输出队列510。参照图6至图9,主机4100的虚拟机vm1、vm2和vmn可通过主机输入/输出队列510之中的相应的(一个或多个)输入/输出队列来访问存储装置4200。主机输入/输出队列510可由存储控制器4211至421m之中的相应的存储控制器管理。主机输入/输出队列510可存储从主机4100接收的命令和/或可包括与从主机4100接收的命令对应的完成条目。
[0096]
存储控制器4211至421m中的每个存储控制器的主机输入/输出队列的优先级可基于命名空间映射表nsmt被确定。例如,与任务关键命名空间相关联(或连接(attached to)到任务关键命名空间)的存储控制器的主机输入/输出队列的优先级可被确定为“关键”(例如,关键主机输入/输出队列511和514)。与关键命名空间相关联的存储控制器的主机输入/输出队列的优先级可被确定为“重要”(例如,重要主机输入/输出队列515)。与不关键或不重要的命名空间相关联的存储控制器的主机输入/输出队列的优先级可被确定为“普通”(例如,普通主机输入/输出队列512和513)。
[0097]
可基于主机输入/输出队列510中的每个队列的优先级来确定处理存储在主机输入/输出队列510中的命令的顺序。例如,存储装置4200可选择输入/输出队列仲裁(优先级)
策略,使得存储在关键主机输入/输出队列(例如,主机输入/输出队列511和514)中的命令和完成条目在任何其他命令和完成条目之前被处理。因此,存储在关键主机输入/输出队列中的命令可比任何其他命令更快地被相应的存储控制器提取,并且存储在关键主机输入/输出队列中的完成条目可比任何其他条目更快地发布到主机4100。
[0098]
在一些实施例中,用于特定命名空间的命令可存储在对应的存储控制器的主机输入/输出队列中。例如,基于图7的命名空间映射表nsmt,用于命名空间ns2的命令可被添加(或入队)到存储控制器4212的主机输入/输出队列。
[0099]
在一些实施例中,一些命名空间可能不被指定给特定的存储控制器。例如,在图7中所示的实施例中,命名空间ns1可能不被指定给特定的存储控制器。在这样的情况下,用于访问命名空间ns1的请求可基于命名空间ns1的数据关键度被添加到主机输入/输出队列510中的一个。例如,基于命名空间ns1是“任务关键”的,用于访问命名空间ns1的命令可被添加(或入队)到关键主机输入/输出队列511和514中的一个。
[0100]
在一些实施例中,特定虚拟机可指定优先级,使得其输入/输出请求具有高优先级。例如,虚拟机vm1可向存储装置4200请求它自身的输入/输出请求始终具有最高优先级,或可以以它自身的输入/输出请求始终具有最高优先级的这样的方式对存储装置4200进行设置。不管以上请求(或配置)如何,存储装置4200可使用基于命名空间映射表nsmt的优先级覆写以上请求(或配置)。例如,不管虚拟机vm1的请求(或配置)如何,存储装置4200可基于与相应的存储控制器相关联的命名空间的数据关键度来确定主机输入/输出队列510中的每个的优先级。
[0101]
图10示出根据本公开的一些实施例的可用于与非易失性存储器装置4220通信的nvm输入/输出队列520。参照图6至图10,存储在主机输入/输出队列510中的命令可被发送到nvm输入/输出队列520中的一个。
[0102]
当相应的存储控制器从主机输入/输出队列510中的一个获取命令时,存储控制器可根据命名空间映射表nsmt检查与该命令对应的命名空间。基于对应的命名空间的优先级,存储控制器可将与该命令对应的对非易失性存储器装置4220的输入/输出请求添加(或入队)到nvm输入/输出队列520中的一个。
[0103]
例如,与关键主机输入/输出队列511的命令cmd1对应的命名空间可以是“任务关键”。包括关键主机输入/输出队列511的存储控制器可检查命名空间映射表nsmt。响应于确定与命令cmd1对应的命名空间是“任务关键”,存储控制器可将与命令cmd1对应的输入/输出请求添加(或入队)到nvm输入/输出队列520中的关键nvm输入/输出队列521的提交队列。
[0104]
存储装置4200可基于nvm输入/输出队列520中的每个的优先级来处理nvm输入/输出队列520的输入/输出请求。例如,在存储装置4200上驱动的ftl可选择用于nvm输入/输出队列520的仲裁(或优先级排序)策略,使得关键nvm输入/输出队列521的提交队列的请求被首先处理。在一些实施例中,nvm输入/输出队列520可基于加权轮询算法被仲裁;在这样的情况下,加权轮询算法的权重可基于nvm输入/输出队列520中的每个的优先级被确定。在存储装置4200上驱动的ftl可响应于nvm输入/输出队列520的输入/输出请求而访问非易失性存储器装置4220。
[0105]
可在普通nvm输入/输出队列522和低优先级nvm输入/输出队列523的输入/输出队列之前处理与关键nvm输入/输出队列521的提交队列中的命令cmd1对应的输入/输出请求。
响应于与命令cmd1对应的输入/输出请求,ftl可从任务关键域的存储器块(例如,从存储器块blk0至blka)读取数据,或者可向任务关键域的存储器块写入数据。然后,ftl可将与命令cmd1对应的完成条目添加到关键nvm输入/输出队列521的完成队列。关键nvm输入/输出队列521的完成队列的完成条目可以以高于普通nvm输入/输出队列522或低优先级nvm输入/输出队列523的输入/输出请求的优先级的优先级(例如,在普通nvm输入/输出队列522或低优先级nvm输入/输出队列523的输入/输出请求之前)提供给主机4100。
[0106]
在以上方案中,存储装置4200可针对具有高优先级并且是“任务关键”的数据的提供特定的输入/输出路径。例如,当请求与具有高优先级并且是“任务关键”的数据相关联时,存储装置4200可使用包括关键主机输入/输出队列511和关键nvm输入/输出队列521的输入/输出路径来提供主机4100的输入/输出请求。
[0107]
在另一示例中,与普通主机输入/输出队列512的命令cmd2对应的命名空间和与普通主机输入/输出队列513的命令cmd3对应的命名空间可以被设置为重要或不重要。包括普通主机输入/输出队列512的存储控制器和包括普通主机输入/输出队列513的存储控制器可检查命名空间映射表nsmt;响应于确定与命令cmd2对应的命名空间和与命令cmd3对应的命名空间不是“任务关键”,存储控制器可将与命令cmd2对应的输入/输出请求和与命令cmd3对应的输入/输出请求添加(或入队)到nvm输入/输出队列520之中的普通nvm输入/输出队列522或低优先级nvm输入/输出队列523。
[0108]
在一些实施例中,一些命名空间可具有相同的数据关键度。在这样的情况下,存储装置4200可基于以上命名空间中的每个的相应优先级来处理对以上命名空间的输入/输出请求。例如,在第一命名空间具有任务关键数据关键度和高优先级并且第二命名空间具有任务关键数据关键度和低优先级的情况下,存储装置4200可在处理与第二命名空间相关联的输入/输出请求之前处理与第一命名空间相关联的输入/输出请求。
[0109]
在一些实施例中,一些命名空间可仅针对特定输入/输出命令被指定为“任务关键”。例如,命名空间可仅针对读取命令、写入命令或针对任何其他输入/输出命令(例如,比较命令和数据存储管理(dsm)命令)的一部分被指定为“任务关键”。因此,用于以上命名空间的所有命令可能不会被添加到关键nvm输入/输出队列(例如,521)。例如,命令cmd1可以是写入命令,并且与命令cmd1对应的命名空间可仅相对于读取命令是“任务关键”。在这样的情况下,与图10中示出的示例不同,与命令cmd1对应的写入请求可被添加(或入队)到普通nvm输入/输出队列522的提交队列,或者被添加到低优先级nvm输入/输出队列523的提交队列,而不是关键nvm输入/输出队列521。此外,与命令cmd1对应的完成条目可被添加(或入队)到普通nvm输入/输出队列522的完成队列,或者被添加到低优先级nvm输入/输出队列523的完成队列。
[0110]
图11示出根据本公开的一些实施例的图6的存储装置4200的操作方法的流程图。参照图6至图11,存储装置4200可执行操作s110至操作s160。
[0111]
在操作s110中,存储装置4200可通知主机4100可执行用于针对每个命名空间指定数据关键度和优先级的功能。例如,存储装置4200的管理控制器4210可向主机4100提供指示可为每个命名空间指定数据关键度和优先级的信息。
[0112]
在操作s120中,存储装置4200可确定以上功能是否被主机4100批准。例如,响应于在操作s110中从存储装置4200提供的信息,主机4100可批准指定功能。存储装置4200可响
应于接收到由主机4100对功能的批准而执行操作s130。如果未批准(例如,当确定以上功能未被主机批准时),存储装置4200可执行操作s160。在操作s130中,存储装置4200可从主机4100的管理员接收用于指定命名空间4221的数据关键度和优先级的请求。例如,存储装置4200的管理控制器4210可启用以上功能。存储装置4200的管理控制器4210可从主机4100的管理程序4110接收用于指定多个命名空间4221中的至少一个命名空间的数据关键度和优先级的请求。
[0113]
在操作s140中,存储装置4200可响应于在操作s110中接收的请求而生成命名空间映射表nsmt。例如,存储装置4200的管理控制器4210可基于在操作s110中接收的请求来生成或更新命名空间映射表nsmt。
[0114]
在操作s150中,存储装置4200可基于命名空间的数据关键度将非易失性存储器装置4220的存储器块划分为多个域。例如,存储装置4200可至少部分地基于命名空间映射表nsmt来划分存储器块。例如,存储装置4200可将存储器块blk0至blkc划分成多个域,并且可将多个域中的至少一个域指定为用于存储任务关键数据的域。
[0115]
在当主机4100不批准指定功能时发生的操作s160中,存储装置4200可在没有数据关键度和优先级的情况下管理命名空间。例如,存储装置4200可禁用以上功能。
[0116]
图12示出根据本公开的一些实施例的通过图6的存储装置4200执行从图6的主机4100接收的请求的方法的流程图。参照图6至图12,存储装置4200可执行操作s210至操作s230。
[0117]
在操作s210中,存储装置4200可从主机4100接收命令和地址。例如,命令可以是读取命令、写入命令、比较命令、数据存储管理命令等。
[0118]
在操作s220中,存储装置4200可响应于在操作s210中接收的命令和地址来检查命名空间映射表nsmt。
[0119]
在操作s230中,存储装置4200可基于命名空间映射表nsmt,使用合适的主机输入/输出队列和nvm输入/输出队列来处理与接收的命令对应的请求。例如,如在以上参照图9和图10描述的方案中一样,存储装置4200可执行操作s230。
[0120]
在一些实施例中,可在主机4100与存储装置4200之间提供能够通过管理控制器4210的管理队列指定命名空间4221中的每个命名空间的数据关键度和优先级的主机-存储接口。非易失性存储器装置4220的输入/输出队列(例如,nvm输入/输出队列520)之间的仲裁策略可至少部分地基于连接到存储装置4200中的存储控制器4211至421m中的每个的命名空间的关键度和优先级。存储装置4200可基于命名空间的关键度和优先级来调整输入/输出请求的顺序,从而确保在所有条件下对任务关键数据的访问。此外,可改进存储在存储装置4200中的任务关键数据的读取响应时间(例如,可减少存储在存储装置4200中的任务关键数据的读取响应时间)。
[0121]
在一些实施例中,存储装置4200可基于关键度和优先级来管理非易失性存储器装置4220的输入/输出队列。例如,非易失性存储器装置4220的一些输入/输出队列(例如,关键nvm输入/输出队列521)可被映射到(或指定到)一些输入/输出队列(例如,关键主机输入/输出队列511和514)以用于主机4100与存储装置4200之间的通信。因此,用于管理和访问重要数据的端到端路径可被提供给主机4100。
[0122]
根据本公开的一些实施例的存储装置可响应于来自主机的请求而为每个命名空
间指定数据关键度和优先级。存储装置可基于每个命名空间的数据关键度和优先级内部地调度从主机接收的输入/输出请求。此外,存储装置可将具有不同数据关键水平的数据存储在不同的存储器块中。因此,可对于重要(例如,被指定为“任务关键”的数据)并具有高优先级的数据确保低延时和高可靠性。作为示例,“任务关键”数据可包括对自主车辆和医疗系统的系统来说必需的数据,而“重要”和“不重要”数据可以是诸如备份视频日志的数据或非时间敏感数据。
[0123]
虽然已经参照本公开的实施例描述了本公开,但是对于本领域普通技术人员来说将清楚的是,在不脱离如所附权利要求中阐述的本公开的精神和范围的情况下,可对其进行各种改变和修改。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献