用于执行访问权限控制的存储设备及其操作方法与流程
未命名
08-02
阅读:129
评论:0

用于执行访问权限控制的存储设备及其操作方法
1.相关申请的交叉引用
2.该申请基于并要求于2022年1月26日在韩国知识产权局提交的韩国专利申请第10-2022-0011789号和于2022年6月7日在韩国知识产权局提交的韩国专利申请第10-2022-0069111号的优先权权益,其中的每一个的公开内容通过引用被全部结合于此。
技术领域
3.本发明构思的各种示例实施例涉及存储设备、包括存储设备的系统、操作存储设备的方法和/或存储用于执行操作存储的方法的计算机可读指令的非暂时性计算机可读介质设备。更具体地,一个或多个示例实施例涉及用于响应于来自主机的数据访问请求执行访问权限控制的存储设备、包括存储设备的系统、操作存储设备的方法和/或存储用于执行操作存储设备的方法的计算机可读指令的非暂时性计算机可读介质。
4.基于闪存设备的存储设备的示例是固态驱动器(ssd)。在诸如ssd的存储系统中使用的接口包括串行高级技术附接(sata)接口、外围组件互连高速(pcie)接口、串行连接小型计算机系统接口(串行连接scsi(sas))、计算高速链接(cxl)接口等,并且此外,还提出了基于pcie总线的接口,诸如非易失性存储器高速(nvme)接口。
5.存储设备可以由多个主机共享,并且此外,每个主机可以驱动多个虚拟机(vm),其中,每个主机的多个vm可以共享存储设备。例如,存储设备中的存储介质可以包括多个命名空间,不同的vm可以具有对不同命名空间的访问权限。在这种情况下,在存储设备中没有采用可以阻止没有正常和/或有效访问权限的恶意访问尝试的安全策略,从而降低了用户数据的安全性。
技术实现要素:
6.本发明构思的各种示例实施例提供了一种能够通过在存储设备中采用安全策略来阻止没有正常和/或有效访问权限的恶意访问尝试的存储设备、包括该存储设备的系统和/或操作该存储设备的方法。
7.根据本发明构思的至少一个示例实施例,提供了一种包括非易失性存储器的存储设备,非易失性存储器包括多个单元块,多个单元块被分配到多个命名空间中,多个命名空间中的每一个与由主机设备生成的多个虚拟机中的至少一个虚拟机相关联,以及处理电路,被配置为响应于来自主机的命令存储与多个命名空间相关联的多个安全信息,安全信息中的每一个包括与多个虚拟机中的对应一个相关联的虚拟机信息和与对应虚拟机相关联的唯一信息,虚拟机信息包括对应虚拟机的标识符,并且唯一信息包括为对应虚拟机唯一地设置的唯一信息,通过解码从主机设备接收的数据访问请求来提取至少第一信息,并且基于安全信息和提取的至少一个第一信息中止数据访问请求的处理。
8.根据本发明构思的至少一个示例实施例,提供了一种存储设备的操作方法,该操作方法包括从主机设备接收设置命令,响应于设置命令存储多个安全信息,多个安全信息包括与多个虚拟机中的每个虚拟机相关联的多个虚拟机信息,虚拟机由主机设备生成,虚
拟机信息中的每一个包括指示与相关联的虚拟机相关联的输入/输出队列在主机存储器中的位置的存储器地址和指示与虚拟机相关联的命名空间的命名空间标识符(id),以及基于安全信息和从读取请求中提取的信息选择性地中止从主机设备接收的读取请求的处理。
9.根据本发明构思的至少一个示例实施例,提供了一种主机设备,包括主机存储器,主机存储器包括分配给多个虚拟机中的至少一个虚拟机的多个输入/输出队列,以及处理电路,被配置为管理多个虚拟机的生成并将主机存储器中的多个输入/输出队列到多个虚拟机的分配,虚拟机中的每一个被配置为生成读取请求以根据虚拟化技术通过独立路径访问多个命名空间,并向存储设备发送设置命令,设置信息包括与多个虚拟机相关联的多个安全信息,多个安全信息中的每一个包括标识相关联的虚拟机的虚拟机信息、指示分配给相关联的虚拟机的输入/输出队列的位置的存储器地址,以及指示与虚拟机相关联的命名空间的命名空间标识符(id)。
附图说明
10.从以下结合附图的详细描述,将更清楚地理解本发明构思的各种示例实施例,其中:
11.图1是图示根据至少一个示例实施例的数据处理系统的框图;
12.图2是图示根据至少一个示例实施例的被应用虚拟化技术的数据处理系统的框图;
13.图3是图示根据至少一个示例实施例的控制器的实现示例的框图;
14.图4是图示根据至少一个示例实施例的数据处理系统的特定实现示例的框图;
15.图5是图示根据至少一个示例实施例的使用安全信息的示例的框图;
16.图6和图7是图示根据一些示例实施例的数据处理系统的操作方法的流程图;
17.图8和图9是图示根据至少一个示例实施例的设置和使用安全数据的过程的框图;
18.图10是图示根据至少一个示例实施例的数据处理系统的框图;
19.图11是图示根据至少一个示例实施例的包括在非易失性存储器中的单元块的实施示例的透视图;
20.图12是图示根据一些示例实施例的其中固态驱动器(ssd)被应用于数据处理系统中的存储设备的情况的框图;以及
21.图13是图示根据至少一个示例实施例的包括存储设备的数据中心的框图。
具体实施方式
22.在下文中,将参考附图详细描述本发明构思的各种示例实施例。
23.图1是图示根据至少一个示例实施例的数据处理系统10的框图。
24.参考图1,数据处理系统10可以包括至少一个主机100和/或存储设备200等,但是示例实施例不限于此,并且例如,数据处理系统10可以包括更多或更少的数量组成组件等。存储设备200可以包括至少一个控制器210和至少一个非易失性存储器(nvm)220等。主机100(例如,主机设备、外部主机、外部计算机、主机系统等)可以向存储设备200提供数据写入和/或读取请求。此外,响应于来自主机100的数据删除请求,存储设备200可以对由主机100指示的区域中的数据执行删除操作。根据一些示例实施例,主机100可以包括多个主机
等。
25.在至少一个示例实施例中,存储设备200包括至少一个存储设备和/或可以被实现为处理电路的至少一个控制器,处理电路可以被配置为控制存储设备并且可以由除存储设备之外的各种术语定义。例如,存储设备200可以被称为存储器系统、存储系统、云存储系统、分布式存储系统等,并且控制器210可以称为存储控制器、存储器控制器等。处理电路可以包括包含逻辑电路的硬件;硬件/软件组合,诸如执行软件和/或固件的处理器;或其组合。例如,处理电路更具体地可以包括但不限于中央处理器(cpu)、算术逻辑单元(alu)、数字信号处理器、微型计算机、现场可编程门阵列(fpga)、片上系统(soc)、可编程逻辑单元、微处理器、专用集成电路(asic)等,但不限于此。
26.存储设备200可以包括响应于来自主机100的请求而存储数据的存储介质。例如,存储设备200可以包括一个或多个固态驱动器(ssd),但不限于此。当存储设备200包括ssd时,nvm 220可以包括存储数据的多个闪存芯片(例如,nand存储器芯片、vnand存储器芯片等)并且nvm 220可以是非易失性的。在下文中,在示例实施例的描述中,假设存储设备200包括一个或多个闪存芯片,但是示例实施例不限于此。
27.作为另一示例,存储设备200可以包括除nvm之外或代替nvm的各种类型的其他存储器。例如,存储设备200可以包括nvm和各种类型的存储器,诸如磁随机存取存储器(mram)、自旋转移力矩mram、导电桥接ram(cbram)、铁电ram(feram)、相位ram(pram)、电阻式ram、纳米管ram、聚合物ram(poram)、纳米浮栅存储器(nfgm)、全息存储器、分子电子存储器设备和/或绝缘体电阻变化存储器等可以被应用于nvm。
28.主机100可以通过各种接口与存储设备200通信。例如,主机100可以通过各种接口与存储设备200通信,诸如通用串行总线(usb)接口、多媒体卡(mmc)接口、pcie接口、高级技术附接(ata)接口、sata接口、并行ata(pata)接口、scsi、sas接口、增强型小型磁盘接口(esdi)、集成驱动电子(ide)接口、cxl接口和/或nvm高速(nvme)接口等。根据一些示例实施例,假设在数据处理系统10中,主机100和存储设备200通过pcie总线执行基于nvme的接口,但是示例实施例不限于此。
29.根据至少一个示例实施例,主机100可以包括至少一个处理器110和/或至少一个主机存储器120等,但不限于此。处理器110可以通过执行存储在主机存储器120中的软件来控制在存储设备200上执行的诸如数据写入和/或数据读取等的存储器操作。在至少一个示例实施例中,主机100可以编码和/或解码至少一个满足在nvme接口中定义的标准的数据分组。主机100可以在主机存储器120中存储与写入和/或读取请求相对应的至少一个数据分组,并且响应于存储器请求(例如、写入和/或读取请求等)在主机存储器120中存储来自存储设备200的完成响应。在下面的一些示例实施例中,主机100对存储设备200的写入请求和读取请求中的每一个可以与访问请求req相对应,并且由主机100提供的至少一个数据分组可以被称为请求和/或命令等。根据至少一个示例实施例,处理器110可以被实现为处理电路,并且可以包括包含逻辑电路的硬件;硬件/软件组合,诸如执行软件和/或固件的处理器;或其组合。例如,处理电路更具体地可以包括但不限于中央处理器(cpu)、算术逻辑单元(alu)、数字信号处理器、微型计算机、现场可编程门阵列(fpga)、片上系统(soc)、可编程逻辑单元、微处理器、专用集成电路(asic)等,但不限于此。
30.在至少一个示例实施例中,控制器210(例如,处理电路)可以包括访问权限控制器
211,并且nvm 220可以包括多个命名空间(ns),但是示例实施例不限于此。在nvm 220中包括的每个闪存芯片可以包括存储单元阵列,并且存储单元阵列可以包括一个或多个单元块。图1图示了nvm 220包括多个命名空间的情况,例如,第一ns ns 1至第k ns ns k。在nvm 220中包括的多个单元块可以被分类到(例如,分配给和/或指定给)第一到第k ns,ns 1至ns k,并且一个或多个单元块可以被分配到第一到第n个ns,ns 1到ns k中的每一个。
31.在至少一个示例实施例中,主机100可以基于处理器110的控制生成和/或执行多个虚拟机(vm)。例如,主机100可以通过使用虚拟化技术来管理ns,并且多个vm可以共同访问相同的存储设备,但是示例实施例不限于此。例如,主机存储器120可以包括被配置为基于虚拟化技术使能对存储设备200的访问的虚拟机管理模块(未示出),并且处理器110可以执行vm管理模块以生成多个vm。多个vm可以共享主机100中的资源,诸如至少一个处理器、存储器、固件和/或软件等,但是对于存储设备200而言,可以虚拟地认识到多个vm中的每一个作为单独的虚拟硬件访问数据。换句话说,虽然只有一个物理硬件,但多个vm可以虚拟访问相同的物理硬件,如多个虚拟硬件等。
32.第一ns ns 1至第n ns ns k可以与多个vm相关联和/或被分配给多个vm。存储设备200可以基于主机100的控制将第一ns ns 1至第k ns ns k与多个vm相关联,并且例如,每个vm可以通过与至少一个ns相关联来访问与ns相关联的数据。每个vm可以与一个或多个ns相关联,并且附加地和/或备选地,至少两个vm可以共享任何一个ns。
33.主机100可以生成任意数量的vm,并且验证一个或多个vm对ns的访问权限的过程可以由主机100执行。例如,当生成第一ns ns 1至第k ns ns k时,主机100可以管理第一ns ns 1至第k ns ns k的标识符(id)信息(以下称为ns id),并且可以将与每个vm相关联的ns id提供给对应的vm。此外,多个vm中的每一个可以生成包括用于访问分配的ns中的数据的ns id的访问请求req,并将访问请求req发送到存储设备200等。
34.然而,当vm被恶意用户、计算机病毒等占用,并试图通过占用的vm访问存储设备200中的特定ns时,存储设备200可能不知不觉地解码来自主机100的恶意和/或无效访问请求req,从由访问请求req指示的特定ns读取数据,并将读取的数据提供给主机100。在这种情况下,其中安全性非常重要的数据处理系统10可能会在没有正常和/或有效访问权限的情况下将数据提供给恶意用户和/或计算机病毒,从而削弱和/或危及存储设备200、数据处理系统10和/或具有存储在存储设备200中的信息的任何人等的数据安全性。
35.根据至少一个示例实施例,响应于来自主机100的至少一个设置命令cmd_s,可以在访问权限控制器211中设置和/或存储用于确定访问权限的安全信息(未示出)。访问权限控制器211可以基于从来自主机100的访问请求req中提取的信息和存储在访问权限控制器211中的安全信息之间的比较来确定来自主机100的访问请求req是否是具有正常和/或有效权限的用户(和/或vm)的有效请求,但不限于此。如果访问权限控制器211确定访问请求req是具有正常和/或有效权限的vm的请求,则控制器210可以执行控制操作以正常处理来自主机100的访问请求req等。否则,如果访问权限控制器211确定访问请求req不是具有正常和/或有效权限的vm的有效请求(例如,访问请求req是恶意请求、欺诈请求等),则访问权限控制器211可以中止来自主机100的访问请求req的处理以减少和/或防止数据被恶意的、无效的和/或欺诈的从nvm 220读取和/或写入。
36.在至少一个示例实施例中,在访问权限控制器211中设置的安全信息可以包括与
在主机100中生成的多个vm中的每一个相关联的信息。例如,安全信息可以包括与多个vm相对应的多个条目,并且每个条目可以包括指示相应vm的标识的vm信息与唯一地分配给相应vm的至少一条唯一信息之间的映射信息.
37.例如,主机100可以将主机存储器120中特定的、唯一的和/或期望的位置(例如,存储器位置等)处的存储空间分配给每个vm的输入/输出队列(ioq),并且唯一信息可以包括指示分配的ioq在主机存储器120中的位置的存储器地址。例如,ioq可以包括包括在某个和/或期望的地址范围内的存储空间,并且存储器地址可以包括与地址范围相关的信息。此外,主机100可以为每个vm分配至少一个ns,并且唯一信息可以包括指示分配给每个vm的ns的ns id。也就是说,安全信息中的每个条目可以包括任意单个vm的vm信息,以及映射到vm信息的存储器地址和/或ns id等,但是示例实施例不限于此。
38.根据至少一个示例实施例,控制器210可以解码来自主机100的访问请求req并且从解码的访问请求req中提取至少一条信息以与安全信息进行比较。访问权限控制器211可以解码访问请求req以确定关于生成访问请求req的vm的信息、与生成访问请求req的vm相关的和/或与生成访问请求req的vm相对应的信息,并且提取指示与数据访问和/或ns id等相关联的ioq的位置的存储器地址。访问权限控制器211可以从安全信息中确定映射到确定的vm信息的存储器地址和/或ns id。另外,访问权限控制器211可以基于解码的请求信息和安全信息,例如通过比较从访问请求req提取的存储器地址和ns id与包括在安全信息中的存储器地址和ns id等,来确定访问请求req是否为具有正常和/或有效权限的vm的访问。例如,访问权限控制器211可以确定从访问请求req提取的存储器地址是否在安全信息中包括的存储器地址范围内,并且此外,访问权限控制器211可以确定从访问请求req提取的ns id是否与安全信息中包括的ns id相匹配等。
39.控制器210可以基于访问权限控制器211的确定结果中止访问请求req的处理,从而加强和/或提高用户数据安全性。例如,当没有正常和/或有效访问权限的恶意用户(例如,未经授权的用户、计算机病毒等)占用特定vm(例如,第二vm)并尝试通过分配给第一vm的主机存储器120中的ioq访问与另一vm(例如,第一vm)相关联的ns时,从访问请求req提取的存储器地址和ns id中的至少一个可以不同于映射到指示包括在安全信息中的第一mv的vm信息的存储器地址和ns id。因此,控制器210可以中止对来自没有正常和/或有效访问权限的第二vm的访问请求req的处理。另外,当恶意用户不知道分配给第一vm的ioq的存储器地址和与第一vm相关联的ns id中的至少一个时,对来自没有正常和/或有效的访问权限的第二vm的访问请求req的处理可以由控制器210通过使用存储设备200中的安全信息等的比较程序来中止。
40.在至少一个示例实施例中,在访问权限控制器211中,被配置为存储安全信息的电路和被配置为确定访问权限的电路可以使用单个电路块来实现。另外,在访问权限控制器211中,被配置为存储安全信息的存储电路和被配置为确定访问权限的电路可以由分离的电路块来实现。此外,被配置为存储安全信息的存储电路可以使用易失性存储器和/或nvm来实现,并且例如,当存储电路使用易失性存储器来实现时,当初始操作数据处理系统10时,主机100可以控制设置存储设备200的安全信息的操作,但是示例实施例不限于此。
41.图2是图示根据至少一个示例实施例的被应用虚拟化技术的数据处理系统300的框图。
42.参考图2,数据处理系统300可以包括至少一个主机310和至少一个存储设备320等,并且存储设备320可以包括至少一个控制器321和至少一个nvm322等,但示例实施例不限于此。主机310可以包括至少一个vm管理器311和多个vm,例如第一vm 312_1至第n vm 312_n等。vm管理器311可以由硬件或者硬件和软件的组合来实现,并且例如,vm管理器311的功能可以由处理器执行软件等来实现。vm管理器311可以被称为管理程序(hypervisor)并且被配置为生成和执行第一vm 312_1至第n vm 312_n,但是示例实施例不限于此。
43.主机310可以请求生成和/或删除与第一vm 312_1至第n vm 312_n中的每一个相关联的ns,但不限于此。例如,存储设备320可以基于主机310的控制和/或指令生成第一ns ns 1至第k ns ns k作为多个ns。根据至少一个示例实施例,包括在nvm 322中的多个单元块可以被分类和/或分配为第一ns ns 1至第k ns ns k,第一vm 312_1至第n vm 312_n中的每一个可以与至少一个ns相关联,并且可以生成访问请求以访问其相关联的ns。例如,当第一vm 312_1至第n vm 312_n中的每一个生成访问请求时,指示具有访问权限的ns的ns id可以被包括在访问请求中。
44.控制器321可以包括ns管理模块321_1和/或访问权限控制器321_2,但不限于此。ns管理模块321_1可以响应于来自主机310的至少一个请求来管理生成和/或删除第一ns ns 1至第k ns ns k的操作。另外,ns管理模块321_1可以响应于来自主机310的至少一个请求来控制对第一ns ns 1至第k ns k的至少一个访问操作,并且例如,ns管理模块321_1可以基于访问权限控制器321_2的控制和/或指令来进行和/或中止来自主机310的访问请求的处理。然而,示例实施例不限于此,并且控制器321可以包括附加组件,其被配置为,例如,根据和/或基于访问权限确定来控制对第一ns ns 1至第k ns ns k执行的读/写操作,和/或控制附加组件等以处理访问请求和/或中止访问请求的处理。
45.根据至少一个示例实施例,访问权限控制器321_2可以包括安全信息存储电路,并且安全信息存储电路可以响应于来自主机310的设置命令(例如,分配命令等)存储包括多个条目的安全信息。例如,根据至少一个示例实施例,多个条目可以与在主机310中生成的vm相对应,并且每个条目可以包括关于和/或与vm相对应的vm信息vm info和/或作为唯一信息的示例的映射信息,映射信息是指示分配给vm的ioq的位置的存储器地址ra与ns id nsid之间的映射信息,但是示例实施例不限于此,并且例如,其他唯一信息可以特定用于每个vm。访问权限控制器321_2可以从主机310接收访问请求(例如,读取请求req_r),通过对读取请求req_r的解码操作提取一条或多条信息,并基于提取的信息与存储在安全信息存储电路中的安全信息之间的比较来确定是否中止读取请求req_r的处理。换句话说,访问权限控制器321_2可以基于提取的信息和存储在安全信息存储电路中的安全信息等来确定是否中止读取请求req_r。
46.作为第一虚拟机vm1访问具有正常和/或有效权限的ns(例如,第一ns ns1)的操作的示例,第一vm vm1可以生成包括指示分配给第一vm vm 1的ioq的存储器地址ra的读取请求req_r和指示第一ns ns 1的ns id nsid。例如,在基于nvme接口的分组生成过程中,指示第一vm vm1的vm信息可以被添加到读取请求req_r,但是示例实施例不限于此。
47.来自第一虚拟机vm1的读取请求req_r可以被提供给存储设备320,并且控制器321可以解码读取请求req_r以提取包括在读取请求req_r中的指示第一虚拟机vm1的vm信息以及存储器地址ra和ns id nsid。如果第一vm vm1具有对第一ns ns1的正常和/或有效的访
问权限,则映射到指示第一vm vm1的vm信息的存储器地址ra和ns id nsid可以与从读取请求req_r中提取的信息相匹配,其中vm信息被包括在存储在访问权限控制器321_2中的安全信息中,并且因此,读取请求req_r可以被正常处理(例如,可以被允许执行等)。
48.否则,如果不具对第一ns ns 1的正常和/或有效访问权限的第二vm vm 2发送读取请求req_r作为访问第一ns ns 1的尝试,则通过解码读取请求req_r提取的信息可能与在安全信息中包括的信息不匹配。例如,映射到指示第二vm vm2的vm信息的存储器地址ra和ns id nsid可以包括在由主机310的设置过程中分配给第二vm vm2的信息,和/或与第二vm vm2相对应的信息,其中vm信息被包括在存储在访问权限控制器321_2中的安全信息中,因此,在安全信息中包括的存储器地址ra和ns id nsid中的至少一个可以与从读取请求req_r中提取的存储器地址ra和ns id nsid中的至少一个不同。因此,恶意用户和/或计算机病毒对读取请求req_r的处理可以被中止(例如,不被执行)。
49.图3是图示根据至少一个示例实施例的控制器400的实现示例的框图。
50.参考图3,控制器400可以包括主机接口(i/f)电路410、存储器i/f电路420、至少一个处理器430、访问权限控制模块440、工作存储器450和/或纠错码(ecc)电路460等,但示例实施例不限于此。在至少一个示例实施例中,可由处理器430执行的各种类型的软件可以被加载到工作存储器450中,并且例如,当由控制器400控制的nvm包括闪存设备时,闪存转换层(ftl)可以被加载到工作存储器450中等。另外,在另一实现示例中,当根据至少一个示例实施例的ns管理功能由软件实现时,ns管理模块可以被加载到工作存储器450中用于由处理器430执行等。工作存储器450可以以各种形式实现,诸如ram、只读存储器(rom)、电可擦除可编程rom(eeprom)、闪存和/或其他存储器技术。
51.处理器430可以通过执行存储在工作存储器450中的各种软件来控制存储设备的一般操作。主机i/f电路410可以根据某些的和/或期望的接口与主机通信,并且例如,控制器400可以经由pcie总线连接到主机并根据nvme接口与主机通信,但是示例实施例不限于此。另外,存储器i/f电路420可以提供与在nvm中包括的多个存储介质的接口,并且例如,存储器i/f电路420可以分别通过多个信道执行与多个存储介质的独立通信。此外,ecc电路460可以对将要存储在存储设备中的数据和/或已经存储在存储设备上的数据执行错误检测和纠正操作,并且例如,ecc电路460可以从写入数据生成ecc奇偶校验并通过使用读取数据和与读取数据相对应的ecc奇偶校验来执行错误检测和纠正操作,但是示例实施例不限于此。
52.根据至少一个示例实施例,访问权限控制模块440可以包括硬件组件和/或将在硬件上执行的软件组件等,并且当访问权限控制模块440包括软件组件时,在访问权限控制模块440中包括的软件可以被加载到工作存储器450中用于由处理器430执行等。访问权限控制模块440可以响应于数据访问请求,确定来自主机的数据访问请求是否是来自具有正常和/或有效权限的vm的访问请求。例如,根据一些示例实施例,安全信息可以基于来自主机的设置命令被存储在访问权限控制模块440中,访问权限控制模块440可以解码来自主机的访问请求以提取包括在访问请求中的各种信息,并将提取的信息与安全信息进行比较,以执行和/或中止来自主机的访问请求的处理等。
53.图4是图示根据至少一个示例实施例的数据处理系统500的特定实现示例的框图。
54.参考图4,数据处理系统500可以包括至少一个主机510和/或至少一个存储设备
520,主机510可以包括vm管理器511,并且多个vm可以基于vm管理器511的控制和/或指令由主机510生成,但示例实施例不限于此。图4图示其中生成第一vm 512和第二vm 513的情况,但是示例实施例不限于此。
55.vm管理器511可以响应于来自vm的请求(例如,ioq分配请求)将ioq分配给vm。例如,主机510可以包括主机存储器514,并且尽管图4示出ioq与主机存储器514分离,但是ioq可以与在主机存储器514中包括的存储空间相对应,但不限于此,并且ioq可以在主机存储器514等之外的存储中被分配。在至少一个示例实施例中,第一ioq ioq 0和第二ioq ioq 1可以被分配给第一vm 512,并且第三ioq ioq 0和第四ioq ioq 3可以被分配给第二vm 513,但是示例实施例不限于此。此外,指示分配给每个vm的ioq的位置的地址信息(例如,存储器地址)可以被提供给第一vm 512和第二vm 513。此外,每个ioq可以包括存储要被发送到存储设备520的数据分组的提交队列(sq)和/或存储从存储设备520发送的数据分组的完成队列(cq)等。
56.存储设备520可以包括控制器(例如,存储器控制器等),并且当在主机510和存储设备520之间提供根据nvme接口的单根输入/输出虚拟化(sr-iov)功能时,存储设备520可以生成多个虚拟功能(vf),例如,与第一vm512和第二vm 513相对应的第一vf 521和第二vf 522,但是示例实施例不限于此。第一vf 521和第二vf 522可以响应于来自主机510的请求而在存储设备520的控制器中实现和/或由其生成,并且可以独立地处理来自主机510的数据访问请求等。此外,由于第一vm 521和第二vf 522中的每一个处理来自其对应的vm的请求,所以第一vm 512和第二vm 513中的每一个可以通过独立的路径对存储设备520执行数据访问。
57.作为来自主机510的读取请求的示例,第一vf 521和第二vf 522中的每一个可以确定来自主机510的读取请求是否是来自具有正常和/或有效权限的vm的读取请求。根据一些示例实施例的访问权限控制器可以在第一vf521和第二vf 522中的每一个中被实现,并且可以包括例如安全管理器和/或安全信息存储电路(例如,分配给虚拟功能的安全信息存储电路的一部分)等,但示例实施例不限于此。例如,如图4所示,第一vf 521可以包括第一安全管理器521_1和第一安全信息存储电路521_2,并且第二vf 522可以包括第二安全管理器522_1和第二安全信息存储电路522_2,但不限于此。另外,nvm可以包括多个ns。图4图示其中生成第一ns 523和第二ns 524的情况,但是示例实施例不限于此。
58.下面描述其中不具有对第一ns 523的正常和/或有效访问权限的第二vm 513恶意地和/或无效地尝试访问第一ns 523的示例。
59.当第二vm 513生成与对第一ns 523的恶意访问尝试相关联的读取请求时,可以通过向读取请求添加指示到第一vf 521的路径的信息来将读取请求提供给第一vf 521,并且分配给第一vm 512的存储器地址和指示第一ns523的ns id可以被包括在读取请求中。此外,在根据和/或基于与存储设备520的接口的分组编码过程中,指示已经生成读取请求的第二vm 513的vm信息可以被添加到读取请求。
60.第一vf 521可以解码接收到的读取请求,并且通过将作为解码结果提取的vm信息与存储在第一安全信息存储电路521_2中的安全信息进行比较来中止读取请求的处理。相反,在传统存储设备中,第一vf 521可以从由来自第二vm 513的读取请求指示的第一ns 523读取数据,并且可以将包括读取数据的分组存储在被分配给第一vm 512的主机存储器
514中的ioq中。然而,根据至少一个示例实施例,映射到从读取请求提取的指示第二vm 513的vm信息的存储器地址和ns id可以从第一安全信息存储电路521_2被读取。读取的安全信息可能与从读取请求中提取的存储器地址和ns id不匹配,并且因此,对来自不具有正常和/或访问权限的第二vm 513的读取请求的处理可以被中止,或者换句话说,请求存储器操作的vm的安全访问和/或安全凭证可以被验证,并且如果验证不成功,则所请求的存储器操作可以被中止、取消等。
61.图5是图示根据至少一个示例实施例的使用安全信息的示例的框图。
62.作为第一vf 521的操作的示例,第一安全管理器521_1可以包括请求解码器521_11、比较器521_12和/或中止控制器521_13,但不限于此。第一安全信息存储电路521_2可以存储包括多个条目的安全信息。安全信息可以包括与存储设备520可访问的多个vm中的每一个相对应的安全信息,并且可以包括例如指示和/或与多个vm中的每一个相对应的vm信息vm info,以及作为映射到vm信息vm info的信息的存储器地址ram addr和ns id nsid等。
63.在至少一个示例实施例中,在响应于来自主机510的至少一个命令在存储设备520中设置安全信息之后,一个或多个vm可以在主机510中被额外地生成,并且因此,存储设备520中的安全信息可以被更新。例如,可以为存储设备520中生成的多个vf中的每一个设置安全信息,并且当vm在主机510中被添加和/或移除时,为多个vf中的每一个设置的安全信息可以被相应更新。
64.请求解码器521_11可以对提供给第一vf 521的读取请求req_r执行解码操作,并且可以从读取请求req_r中提取至少一条信息。例如,请求解码器521_11可以提取指示已经生成读取请求req_r的vm的vm信息、指示ioq的位置的存储器地址和/或访问目标的ns id等。在至少一个示例实施例中,vm信息可以根据和/或基于nvme接口在分组生成过程中被添加到分组,并且存储器地址和ns id可以在请求数据访问的vm处被生成并包括在分组中等
65.比较器521_12可以通过将请求解码器521_11提取的信息与存储在第一安全信息存储电路521_2中的安全信息进行匹配来执行比较操作,并且可以将比较结果提供给中止控制器521_13。中止控制器521_13可以基于接收到的比较结果输出指示是否中止读取请求req_r的处理的中止信号info_a,并且第一vf 521可以响应于中止信号info_a中止读取请求req_r的处理以减少和/或防止从没有正常和/或有效授权的vm对ns的访问,但是示例实施例不限于此。例如,存储器访问请求可以是除读取请求之外的任何存储器操作,包括写入请求、擦除请求、移动请求、加密请求、解密请求等。
66.图6和图7是图示根据一些示例实施例的数据处理系统的操作方法的流程图。图6和图7中示出的一些操作可以由主机执行,并且其他操作可以由存储设备执行。
67.参考图6,主机和存储设备可以包括数据处理系统,并且多个vm可以在主机中生成和/或由主机生成。例如,在操作s11中,主机中的vm管理器可以生成第一vm,并且可以对第一vm执行各种类型和/或种类的管理以访问存储设备。例如,在操作s12中,vm管理器可以将第一ioq和一个或多个相关联的第一ns分配给第一vm。此外,vm管理器可以向第一vm提供第一ns id和指示分配给第一vm的第一ioq在主机存储器中的位置的第一存储器地址。
68.根据至少一个示例实施例,在操作s13中,主机可以向存储设备提供与第一vm相关联的安全信息,并且例如,与第一vm相对应的第一vf可以响应于来自主机的请求在存储设
备中被生成。关于多个vm的安全信息可以被存储在第一vf中,并且例如,与第一vm相关联生成的安全信息可以被设置在(例如,存储在和/或复制到等)第一vf的存储电路中。安全信息可以包括各种信息,并且例如,安全信息可以包括指示第一vm、与第一vm关联和/或与第一vm相对应的vm信息,诸如作为与第一vm相关联的唯一信息的第一存储器地址和第一ns id,第一存储器地址和第一ns id被映射到与第一vm相关联的vm信息。
69.然后,在操作s14中,主机可以生成附加vm,例如生成第二vm。此外,在操作s15中,基于vm管理器的控制和/或指令,与第一ioq的位置不同的位置处的第二ioq可以被分配给第二vm,并且第二ns可以被分配给第二vm。此外,vm管理器可以向第二vm提供第二ns id和指示分配给第二vm的第二ioq在主机存储器中的位置的第二存储器地址。
70.关于和/或与在主机中和/或由主机生成的多个vm中的每一个相对应的安全信息可以被设置在提供给存储设备的多个vf中的每一个中,因此,在操作s16中,主机可以向第一vf提供与第二vm相关联生成的安全信息,并且第一vf的存储电路中与第二vm相关联的安全信息可以被更新。
71.图7图示其中存储设备基于安全信息中止和/或取消对来自主机的读取请求的处理的示例,但是示例实施例不限于此,并且例如,其他类型的数据访问请求可以被验证,诸如写入请求、删除请求、复制请求等。根据至少一个示例实施例,在操作s21中,在存储设备中生成的第一vf可以接收来自主机的读取请求,但是示例实施例是不限于此。当与主机的第一vm相对应生成第一vf时,存储设备可以确定第一vm具有对第一vf访问的存储设备中的第一ns的正常和/或有效的访问权限,而存储设备可以确定除第一vm之外的vm(例如,第二vm)不具有对存储设备中的第一ns的正常和/或有效访问权限。
72.根据一些示例实施例,在操作s22中,第一vf中的安全管理器可以通过解码读取请求来提取各种类型和/或种类的信息,并且可以从提取的信息中检查指示和/或与已经发送读取请求的请求vm相对应的vm信息。此外,在第一vf中设置的安全信息可以包括与多个vm中的每一个相对应的安全信息,并且在操作s23中,与从读取请求中提取的vm信息相对应的安全信息可以从安全信息存储电路中被读取。
73.在操作s24中,确定在提取的vm信息中包括的存储器地址ra_e是否和与安全信息相对应的存储器地址ram_addr相匹配,并且确定在提取的vm信息中包括的ns id ns_e是否和与安全信息相对应的ns id nsid相匹配的比较操作可以被执行。读取请求的处理可以根据和/或基于比较结果继续或被中止。例如,在操作s26中,如果从读取请求中提取的存储器地址ra_e和ns id ns_e中的至少一个和与安全信息相对应的存储器地址ram_addr和ns id nsid中的至少一个不同,则对该读取请求的处理可以被中止。否则,在操作s25中,如果从读取请求中提取的存储器地址ra_e和ns id ns_e和与安全信息相对应的存储器地址ram_addr和ns id nsid相同,则对读取请求的处理可以继续,并且完成响应被发送到主机。
74.图8和图9是图示根据至少一个示例实施例的设置和使用安全数据的过程的框图。
75.参考图8,数据处理系统600可以包括至少一个主机610和至少一个存储设备620等,但示例实施例不限于此。主机610可以包括至少一个vm管理器611、一个和/或多个vm,例如第一至第四vm等,和/或至少一个主机存储器613等。此外,存储设备620可以包括至少一个控制器621(例如,存储器控制器和/或存储控制器等),并且根据至少一个示例实施例的访问权限控制器可以被包括在控制器621中等。此外,根据一些示例实施例,访问权限控制
器可以包括安全管理器和/或安全信息存储电路622。虽然图9中没有示出,但是多个vf可以在控制器621中实现和/或由控制器621生成,并且安全信息存储电路622可以被包括在每个vf中。此外,存储设备620可以包括多个ns,数据基于控制器621的控制被写入多个ns和/或从多个ns中读取。
76.作为第一vm 612的示例,第一vm 612可以请求vm管理器611生成与第一vm 612相关联的ioq。响应于请求,vm管理器611可以分配要用于第一vm 612和存储设备620之间的通信的ioq和/或指示在主机存储器613中的ioq的存储器地址ra。
77.主机610可以向存储设备620提供与分配给第一至第四vm的ns和ioq相关联的信息,例如,主机610可以向存储设备620提供指示ioq已经被生成的第一命令。在至少一个示例实施例中,主机610可以包括管理提交队列(asq)614,并且第一命令可以经由asq 614被发送,但是示例实施例不限于此。存储设备620可以响应于第一命令存储与第一至第四vm中的每一个相关联的信息,并且例如,关于每个生成的ioq的信息、指示ioq的位置的存储器地址ram_addr以及指示ns的信息(ns id),其中数据可以通过ioq交换,它们可以被存储在安全信息存储电路622中。
78.然后,主机610可以将ns与第一至第四vm中的每一个相关联,并且根据ns的关联结果,可以将至少一个示例实施例中的设置命令作为第二命令提供给存储设备620等。设置命令可以包括指示分配给第一至第四vm中的每一个的ioq的信息,但不限于此。
79.如图8所示,存储设备620可以响应于来自主机610的设置命令,将安全信息存储在安全信息存储电路622中,并且例如,第一vm信息vm 1可以被映射到指示第一ioq ioq0和第二ioq ioq1的存储器地址a和b并且被映射到指示第一ns ns 1和第二ns ns 2的ns id等。同样地,第二vm信息vm2可以被映射到指示第三ioq ioq2和第四ioq ioq3的存储器地址c和d,并且被映射到指示第二ns ns 2到第五ns ns 5的ns id。在至少一个示例实施例中,对第三ns ns 2和第四ns ns 4的数据访问可以通过第三ioq ioq2被执行,并且对第二ns ns 2和第五ns ns 5的数据访问可以通过第四ioq ioq3被执行,但是示例实施例不限于此。
80.图9图示根据至少一个示例实施例的对安全信息的匹配操作。参考图9,第一vm 612可以根据nvme接口在第一ioq ioq0中存储至少一个分组作为读取请求,并且存储设备620可以向主机610发送用于获取关于第一ioq ioq0中的sq的信息的请求等。另外,在第一ioq ioq0中的sq中存储的读取请求可以被发送到存储设备620。
81.存储设备620可以解码读取请求以提取包括在读取请求中的各种信息,并且例如,可以提取指示读取请求的访问目标的ns的ns id nsid连同关于和/或与已经生成读取请求的vm(例如,请求vm)有关的信息(例如,vm info等)以及指示ioq的位置的存储器地址(和/或sq的信息(例如,sqid))等。存储在控制器621中的安全信息可以包括多个条目,并且根据与从读取请求提取的请求vm的vm信息vm info相对应的条目,映射到vm信息vm info的信息可以与从读取请求提取的信息进行比较。例如,控制器621可以检查、确定、验证和/或认证等关于sq和/或与sq相对应的信息(sqid)是否属于和/或与包括安全信息中的存储器地址ram addr相匹配等。控制器621可以确定从读取请求提取的ns id nsid是否与包括在安全信息中的ns id nsid相同。
82.图10是图示根据至少一个示例实施例的数据处理系统700的框图。图10图示其中当sr-iov技术未被应用于存储设备时至少一个示例实施例被应用于pcie物理功能(pf)的
情况。
83.参考图10,数据处理系统700可以包括包含在至少一个主机中的多个vm 710_1至710_n,并且多个vm 710_1至710_n可以经由pcie总线与至少一个存储设备(例如,ssd 720)通信,但不限于此。ssd 720可以包括第一pf 721和第二pf 722作为一个和/或多个pf,并且也可以包括多个ns723_1至723_k,但不限于此。
84.主机可以向第一pf 721和第二pf 722分配不同的id以标识通过第一pf 721和第二pf 722的访问,并且根据和/或基于添加到来自主机的访问请求的id,访问请求可以经由pcie总线被提供给第一pf 721和/或第二pf 722。根据至少一个示例实施例,第一pf 721和第二pf 722中的每一个可以包括访问权限控制器(和/或安全管理器),并且根据一些示例实施例的关于多个vm 710_1至710_n的安全信息可以被存储在第一pf 721和第二pf 722中的每一个中。
85.根据一些示例实施例,多个vm 710_1至710_n可以经由第一pf 721和/或第二pf 722访问一个或多个ns,并且为了确定访问权限,第一pf 721和第二pf 722中的每一个可以使用安全信息来执行匹配操作。根据使用安全信息的匹配结果,vm对访问请求的处理可以继续或被中止。
86.图11是图示根据至少一个示例实施例的包括在nvm中的单元块blka的实施例的透视图。
87.参考图11,可以被分配给本发明构思的至少一个示例实施例的ns的单元块blka可以具有三维结构,但示例实施例不限于此。例如,单元块blka在相对于基板sub的垂直方向vd上形成,基板sub具有第一导电类型(例如p型),并且公共源极线csl被设置基板sub上,每个csl在第二水平方向hd2上延伸并掺杂有第二导电类型(例如,n型)的杂质。在相邻的两条公共源极线csl之间的基板sub的区域中,在垂直方向vd上顺序设置有在第二水平方向hd2上延伸的多个绝缘层il,并且多个绝缘层il由垂直方向vd上的特定距离被彼此分离。例如,多个绝缘层il可以包括诸如氧化硅等的绝缘材料。
88.在第一水平方向hd1上顺序排列并在垂直方向上穿过多个绝缘层il的多个柱体p被设置在两条相邻公共源极线csl之间的基板sub的区域中。例如,多个柱体p可以通过穿过多个绝缘层il与基板sub接触,但不限于此。另外,每个柱体p的表面层s可以包括具有第一类型的硅材料并且可以用作沟道区。每个柱体p的内层i可以包括诸如氧化硅等的绝缘材料和/或气隙。
89.在两条相邻的公共源极线csl之间的区域中,沿绝缘层il、柱体p和/或衬底sub的暴露表面提供电荷存储层cs。电荷存储层cs可以包括栅极绝缘层(和/或隧道绝缘层)、电荷陷阱层和/或阻挡绝缘层等。例如,电荷存储层cs可以具有氧化物-氮化物-氧化物(ono)结构,但不限于此。此外,在两条相邻的公共源极线csl之间的区域中,包括选择线gsl和ssl以及字线wl0至wl7的栅电极ge被设置到电荷存储层cs的暴露表面。
90.漏极和/或漏极接触dr分别被设置在多个柱体p上。例如,漏极和/或漏极接触dr可以包括掺杂有具有第二导电类型的杂质的硅材料,但不限于此。在第一水平方向hd1上延伸并且在第二水平方向hd2上彼此分离特定距离的位线bl1至bl3被设置在漏极和/或漏极接触dr上。
91.图12是图示根据一些示例实施例的其中ssd 820被应用于数据处理系统800中的
存储设备的情况的框图。
92.参考图12,数据处理系统800可以包括至少一个主机810和ssd 820等。ssd 820通过至少一个信号连接器与主机810交换信号并通过至少一个电源连接器接收电力。ssd 820可以包括ssd控制器821、辅助电源822和多个nvm设备823至825等。nvm设备823至825可以是垂直堆叠的nand闪存设备,但不限于此。在本文中,ssd 820可以使用上文参考图1和图11描述的示例实施例中的一个或多个来实现,但不限于此。也就是说,ssd控制器821可以包括访问权限控制器821_1,并且访问权限控制器821_1可以包括响应于来自主机810的设置命令而存储的安全信息。此外,每当从在主机810中生成的多个vm接收访问请求时,访问权限控制器821_1可以使用安全信息和从访问请求提取的vm信息来执行访问权限确定(例如,验证和/或认证)操作,并且可以根据和/或基于确定结果中止访问请求的处理。
93.图13是图示根据至少一个示例实施例的包括存储设备的数据中心900的框图。在一些示例实施例中,以上参照附图描述的存储设备可以被包括在数据中心900中的应用服务器和/或存储服务器等中。
94.参考图13,数据中心900可以收集和/或存储各种数据、提供服务,并且被称为数据存储中心。例如,数据中心900可以是用于操作搜索引擎和数据库的系统和/或在诸如银行、企业等公司和/或政府组织中使用的计算系统。如图13所示,数据中心900可以包括应用服务器50_1至50_n和存储服务器60_1至60_m。应用服务器50_1至50_n的数量n和存储服务器60_1至60_m的数量m可以根据示例实施例被不同地选择,并且n可以不同于m。
95.应用服务器50_1、...和/或50_n可以包括处理器51_1、...和/或51_n、存储器52_1、...和/或52_n、开关53_1、...和/或53_n、网络接口控制器(nic)54_1,...和/或54_n,以及存储设备55_1,...和/或55_n等中的至少一个。处理器51_1、...和/或51_n可以控制应用服务器50_1、...和/或50_n的一般操作,并且可以访问存储器52_1、...和/或52_n以执行加载到存储器52_1、...和/或52_n中的指令和/或数据。作为非限制性示例,存储器52_1、...和/或52_n可以包括双倍数据速率同步动态随机存取存储器(ddr sdram)、高带宽存储器(hbm)、混合存储器立方体(hmc)、双列直插式存储器模块(dimm)、optane dimm和/或非易失性dimm(nvdimm)等。
96.根据至少一个示例实施例,包括在应用服务器50_1、...和/或50_n中的处理器的数量和存储器的数量可以被不同地选择。在一些示例实施例中,处理器51_1、...和/或51_n和存储器52_1、...和/或52_n可以提供处理器-存储器对,但不限于此。在一些示例实施例中,处理器51_1、...和/或51_n的数量可以不同于存储器52_1、...和/或52_n的数量。处理器51_1、...和/或51_n可以包括单核处理器和/或多核处理器。在一些示例实施例中,如图13中虚线所示,存储设备55_1、...和/或55_n可以从应用服务器50_1、...和/或50_n中被省略。根据一些示例实施例,包括在应用服务器50_1、...和/或50_n中的存储设备55_1、...和/或55_n的数量可以被不同地选择。处理器51_1、...和/或51_n、存储器52_1、...和/或52_n、开关53_1、...和/或53_n、nic 54_1、...和/或54_n,和/或存储设备55_1、...和/或55_n可以经由上面参考附图描述的链接相互通信。
97.存储服务器60_1、...和/或60_m可以包括处理器61_1、...和/或61_m、存储器62_1、...和/或62_m、开关63_1、...63_m、nic 64_1、...和/或64_m,和/或存储设备65_1、...和/或65_m中的至少一个。处理器61_1、...和/或61_m和/或存储器62_1、...和/或62_m可以
类似于上述应用服务器50_1、...和/或50_n中的处理器51_1、...和/或51_n以及存储器52_1、...和/或52_n来操作,但是示例实施例不限于此。
98.根据一些示例实施例的存储设备可以被应用于包括在数据中心900中的存储设备55_1至55_n和存储设备65_1至65_m,并且因此,根据一些示例实施例的被配置为确定数据访问权限的访问权限控制器和/或安全管理器可以被包括在存储设备55_1至55_n和存储设备65_1至65_m中。此外,安全信息可以被存储在存储设备55_1至55_n和存储设备65_1至65_m中,并且当虚拟化功能被应用于数据中心900时,存储设备55_1至55_n和/或存储设备65_1至65_m 65_m可以中止和/或取消对来自被确定为不具有正常和/或有效访问权限的vm的访问请求的处理。
99.应用服务器50_1至50_n和存储服务器60_1至60_m可以经由网络70相互通信。在一些示例实施例中,网络70可以使用光纤信道(fc)、以太网等来实现。fc可以是用于相对高速的数据传输的介质,并且fc中可以使用配置为提供高性能/高可用性的光开关。根据网络70的访问方案,存储服务器60_1至60_m可以被提供为文件存储、块存储和/或对象存储等。
100.在一些示例实施例中,网络70可以是存储专用网络,诸如存储区域网络(san)等。例如,san可以是fc-san,其可以使用fc网络并根据fc协议(fcp)来实现,但不限于此。作为另一示例,san可以是互联网协议(ip)-san,其使用传输控制协议(tcp)/ip网络并且根据tcp/ip上的scsi和/或互联网scsi(iscsi)协议来实现。在一些示例实施例中,网络70可以是通用网络,诸如tcp/ip网络等。例如,网络70可以根据以太网上的fc(fcoe)协议、网络附接存储(nas)协议、结构上的nvme(nvme-of)协议等来实现。
101.在下文中,尽管主要描述了应用服务器50_1和存储服务器60_1,但是应用服务器50_1的描述也可以被应用于其他应用服务器(例如,50_n),并且存储服务器60_1的描述也可以被应用到其他存储服务器(例如60_m)等。
102.应用服务器50_1可以经由网络70将用户和/或客户端请求存储的数据存储在存储服务器60_1至60_m中的一个中。此外,应用服务器50_1可以经由网络70从存储服务器60_1至60_m中的一个获取用户和/或客户端请求读取的数据。例如,应用服务器50_1可以由web服务器和/或数据库管理系统(dbms)实现。
103.应用服务器50_1可以经由网络70访问在另一应用服务器50_n中包括的存储器52_n和/或存储设备55_n和/或经由网络70访问在存储服务器60_1至60_m中包括的存储器62_1至62_m和/或存储设备65_1至65_m。因此,应用服务器50_1可以对存储在应用服务器50_1至50_n和/或存储服务器60_1至60_m中的数据执行各种操作。例如,应用服务器50_1可以执行用于在应用服务器50_1至50_n和/或存储服务器60_1至60_m之间移动和/或复制数据的指令。在这种情况下,数据可以经由存储服务器60_1至60_m中的存储器62_1至62_m和/或直接从地存储服务器60_1至60_m中的存储设备65_1至65_m移动到应用服务器50_1至50_n中的存储器52_1至52_n。在一些示例实施例中,经由网络70移动的数据可以是为了安全和/或隐私而加密的数据。
104.在存储服务器60_1中,接口if可以提供处理器61_1和控制器ctrl之间的物理连接,并且可以提供nic 64_1和控制器ctrl之间的物理连接等。例如,接口if可以通过使用专用电缆直接连接存储设备65_1的直接附接存储(das)方案来实现,但是示例实施例不限于此。另外,例如,接口if可以通过各种接口方案实现,诸如ata、sata、外部sata(e-sata)、
scsi、sas、pci、pcie、nvme、电气和电子工程师协会(ieee)1394、usb、安全数字(sd)卡、mmc、嵌入式mmc(emmc)、通用闪存(ufs)、嵌入式ufs(eufs)、紧凑型闪存(cf)卡接口和/或cxl等。
105.在存储服务器60_1中,开关63_1可以在处理器61_1的控制下选择性地将处理器61_1连接到存储设备65_1和/或选择性地将nic 64_1连接到存储设备65_1,但是示例实施例不限于此。
106.在一些示例实施例中,nic 64_1可以包括网络接口卡、网络适配器等。nic 64_1可以通过有线接口、无线接口、蓝牙接口、光接口等连接到网络70。nic 64_1可以包括内部存储器、数字信号处理器(dsp)、主机总线接口等,并且可以通过主机总线接口连接到处理器61_1、开关63_1等。在一些示例实施例中,nic 64_1可以与处理器61_1、开关63_1和存储设备65_1等中的至少一个集成。
107.在应用服务器50_1、...和/或50_n和/或存储服务器60_1、...和/或60_m中,处理器51_1、...、51_n、61_1、...和/或61_m可以向存储设备55_1、...、55_n、65_1、...和/或65_m和/或存储器52_1、...、52_n、62_1、...和/或61_m发送命令以进行编程和/或读取数据。在这种情况下,数据可以通过ecc引擎被数据纠错,但不限于此。数据可以是数据总线反转(dbi)和/或数据屏蔽处理的数据并且可以包括循环冗余码(crc)信息。数据可以是为了安全和/或隐私而加密的数据。
108.响应于从处理器51_1、...、51_n、61_1、...和/或61_m等接收的读取命令,存储设备55_1、...、55_n、65_1、...和/或65_m可以向nvm设备(例如,nand闪存设备)nvm发送控制信号和/或命令/地址信号。因此,当从nvm设备nvm读取数据时,读取使能信号作为数据输出控制信号被输入并且使得数据被输出到数据队列(dq)总线。数据选通信号可以使用读取使能信号来生成。命令/地址信号可以响应于写入使能信号的前沿和/或后沿而被锁存。
109.控制器ctrl通常可以控制存储设备65_1的操作。在至少一个示例实施例中,控制器ctrl可以包括静态随机存取存储器(sram)。控制器ctrl可以响应于写入命令在nvm设备nvm中写入数据和/或响应于读取命令从nvm设备nvm读取数据。例如,写入命令和/或读取命令可以基于从主机提供的请求而生成,例如存储服务器60_1中的处理器61_1、另一存储服务器60_m中的处理器61_m和/或应用服务器50_1...和/或50_n中的处理器51_1、...和/或51_n。缓冲器buf可以临时存储(缓冲)要写入nvm设备nvm的数据和/或从nvm设备nvm读取的数据。在一些示例实施例中,缓冲器buf可以包括dram,但不限于此。另外,缓冲器buf可以存储元数据,并且元数据可以指示用户数据和/或由控制器ctrl生成的用于管理nvm设备nvm的数据等。存储设备65_1可以包括用于安全和/或隐私的安全元件(se),但不限于此。
110.虽然本发明构思的各种示例实施例已在本文中具体示出和描述,但应理解,在不脱离所附权利要求的精神和范围的情况下,可在其中进行形式和细节上的各种改变。
技术特征:
1.一种用于与主机设备通信的存储设备,所述存储设备包括:非易失性存储器,包括多个单元块,多个单元块被分配到多个命名空间,多个命名空间中的每一个与由主机设备生成的多个虚拟机中的至少一个虚拟机相关联;以及处理电路,被配置为,响应于来自主机的命令存储与多个命名空间相关联的多个安全信息,安全信息中的每一个包括与多个虚拟机中的对应一个相关联的虚拟机信息和与对应虚拟机相关联的唯一信息,虚拟机信息包括对应虚拟机的标识符,并且唯一信息包括为对应虚拟机唯一地设置的唯一信息,通过解码从主机设备接收的数据访问请求来提取至少第一信息,并且基于安全信息和提取的至少一个第一信息中止数据访问请求的处理。2.如权利要求1所述的存储设备,其中,虚拟机信息中的每一个包括对应虚拟机唯一的虚拟机标识符;以及唯一信息中的每一个包括指示分配给对应虚拟机的输入/输出队列的位置的存储器地址以及指示与对应虚拟机相关联的命名空间的命名空间标识符(id)。3.如权利要求2所述的存储设备,其中,存储器地址包括指示输入/输出队列在包括在主机设备中的主机存储器中的位置的信息。4.如权利要求2所述的存储设备,其中,响应于由主机设备生成附加虚拟机,处理电路还被配置为生成关于附加虚拟机的安全信息。5.如权利要求1所述的存储设备,其中,处理电路还包括与多个虚拟机相对应的多个虚拟功能,以及多个虚拟功能中的每一个被配置为,存储与对应虚拟机关联的安全信息,和响应于从对应虚拟机接收的数据访问请求,基于存储的与对应虚拟机相关联的安全信息确定对应虚拟机的访问权限。6.如权利要求5所述的存储设备,其中,多个虚拟功能被配置为根据虚拟化技术通过多个独立路径向虚拟机提供对非易失性存储器的访问。7.如权利要求5所述的存储设备,其中,多个虚拟功能中的第一虚拟功能被配置为:接收来自多个虚拟机中的第一虚拟机的读取请求作为数据访问请求;通过解码读取请求提取包括在读取请求中的第一信息;以及基于包括在读取请求中的第一信息和与第一虚拟机相对应的唯一信息相匹配,处理来自第一虚拟机的读取请求。8.如权利要求5所述的存储设备,其中,多个虚拟功能中的第一虚拟功能被配置为:接收来自多个虚拟机中的第二虚拟机的读取请求作为数据访问请求;通过解码读取请求提取包括在读取请求中的第一信息;以及基于包括在读取请求中的第一信息和与第二虚拟机相对应的唯一信息不匹配,中止来自第二虚拟机的读取请求的处理。9.如权利要求1所述的存储设备,其中非易失性存储器包括多个闪存芯片。每个闪存芯片包括多个单元块的子集;以及
多个命名空间中的每一个包括至少一个单元块。10.一种用于与主机设备通信的存储设备的操作方法,所述存储设备包括多个命名空间,并且每个命名空间包括至少一个单元块,所述操作方法包括:接收来自主机设备的设置命令;响应于设置命令,存储多个安全信息,多个安全信息包括与多个虚拟机中的每个虚拟机关联的多个虚拟机信息,虚拟机由主机设备生成,虚拟机信息中的每一个包括指示与相关联的虚拟机相关联的输入/输出队列在主机存储器中的位置的存储器地址、以及指示与虚拟机关联的命名空间的命名空间标识符(id);以及基于安全信息和从读取请求中提取的信息,选择性地中止从主机设备接收的读取请求的处理。11.如权利要求10所述的操作方法,其中,虚拟机信息包括相关联虚拟机的指示,并且存储器地址和命名空间id被映射到相应虚拟机信息。12.如权利要求11所述的操作方法,还包括:将与从读取请求提取的虚拟机信息相对应的存储器地址和命名空间id与从读取请求提取的附加信息进行比较。13.如权利要求10所述的操作方法,还包括:用关于由主机设备生成的新虚拟机的新虚拟机信息更新多个安全信息,虚拟机信息包括与新虚拟机相对应的存储器地址和命名空间id,存储器地址和命名空间id被映射到新虚拟机信息。14.如权利要求10所述的操作方法,还包括:响应于来自主机设备的请求生成与多个虚拟机相对应的多个虚拟功能,其中,关于多个虚拟机的多个安全信息被存储在对应的虚拟功能中。15.如权利要求14所述的操作方法,其中,选择性地中止读取请求的处理包括:通过多个虚拟功能中的第一虚拟功能解码从多个虚拟机中的第一虚拟机接收的读取请求,并且从读取请求提取存储器地址和命名空间id;以及基于提取的信息和映射到与第一虚拟机相对应的虚拟机信息的存储器地址和命名空间id相匹配,处理来自第一虚拟机的读取请求。16.如权利要求14所述的操作方法,其中,选择性地中止读取请求的处理包括:通过多个虚拟功能中的第一虚拟功能解码从多个虚拟机中的第二虚拟机接收的读取请求,并且从读取请求提取存储器地址和命名空间标识符id;以及基于提取的信息和映射到与第二虚拟机相对应的虚拟机信息的存储器地址和命名空间id不匹配,中止来自第二虚拟机的读取请求的处理。17.如权利要求10所述的操作方法,其中,安全信息被存储在存储设备中的易失性存储器中;以及当初始操作存储设备时,接收设置命令被执行。18.一种用于访问提供给存储设备的多个命名空间的主机设备,所述主机设备包括:主机存储器,包括分配给多个虚拟机中的至少一个虚拟机的多个输入/输出队列;以及处理电路,被配置为,管理多个虚拟机的生成以及将主机存储器中的多个输入/输出队列分配给多个虚拟
机,虚拟机中的每一个被配置为生成用于根据虚拟化技术通过独立路径访问多个命名空间的读取请求,和向存储设备发送设置命令,设置命令包括与多个虚拟机相关联的多个安全信息,多个安全信息中的每一个包括标识相关联的虚拟机的虚拟机信息、指示分配给相关联的虚拟机的输入/输出队列的位置的存储器地址以及指示与虚拟机关联的命名空间的命名空间标识符(id)。19.如权利要求18所述的主机设备,其中,虚拟机信息中的每一个标识单个虚拟机,并且存储器地址和命名空间id被映射到相关联的虚拟机信息。20.如权利要求18所述的主机设备,其中,多个虚拟机中的第一虚拟机与存储设备的第一命名空间相关联;以及响应于多个虚拟机中的第二虚拟机向存储设备发送读取请求,该读取请求包括与第一虚拟机相对应的存储器地址或与第一命名空间相关联的命名空间id,来自第二虚拟机的读取请求的完成被阻止。
技术总结
公开了一种用于执行访问权限控制的存储设备及其操作方法。存储设备包括处理电路,该处理电路被配置为响应于来自主机的命令存储与多个命名空间相关联的多个安全信息,安全信息中的每一个包括与多个虚拟机中的对应一个相关联的虚拟机信息和与对应的虚拟机关联的唯一信息,虚拟机信息包括对应虚拟机的标识符,并且唯一信息包括为对应虚拟机唯一地设置的唯一信息,通过解码从主机设备接收的数据访问请求来提取至少第一信息,以及基于安全信息和提取的至少一个第一信息中止数据访问请求的处理。的处理。的处理。
技术研发人员:申燕雨 李汉柱 金善凤 禹胜文 宋庸镐 崔光熙
受保护的技术使用者:三星电子株式会社
技术研发日:2023.01.20
技术公布日:2023/7/31
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/