生成用于多种存储设备版本的操作命令的方法与设备技术

技术编号:34766578 阅读:17 留言:0更新日期:2022-08-31 19:18
本申请提供了生成用于多种存储设备版本的操作命令的方法与设备。所提供的处理多种设备版本的操作命令的方法,包括:获取操作命令,从操作命令中获取设备版本与命令名;用命令名查询命令集合,获得命令索引;用命令索引与设备版本查询命令版本集合,获得命令版本索引;用命令索引与命令版本索引查询命令实现函数集合,获得命令实现函数;调用所获得的命令实现函数来处理操作命令。现函数来处理操作命令。现函数来处理操作命令。

【技术实现步骤摘要】
生成用于多种存储设备版本的操作命令的方法与设备


[0001]本申请涉及计算机技术,特别地,涉及生成用于多种版本的信息处理设备的操作命令的方法。

技术介绍

[0002]图1A展示了固态存储设备的框图。固态存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial Advanced Technology Attachment,串行高级技术附件)、SCSI(Small Computer System Interface,小型计算机系统接口)、SAS(Serial Attached SCSI,串行连接SCSI)、IDE(Integrated Drive Electronics,集成驱动器电子)、USB(Universal Serial Bus,通用串行总线)、PCIE(Peripheral Component Interconnect Express,PCIe,高速外围组件互联)、NVMe(NVM Express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与固态存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM芯片105以及DRAM(Dynamic Random Access Memory,动态随机访问存储器)110。
[0003]NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、MRAM(Magnetic Random Access Memory,磁阻存储器)、RRAM(Resistive Random Access Memory,阻变存储器)、XPoint存储器等是常见的NVM。
[0004]接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。
[0005]控制部件104用于控制在接口103、NVM芯片105以及DRAM 110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是FPGA(Field

programmable gate array,现场可编程门阵列)、ASIC(Application Specific Integrated Circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理IO(Input/Output)命令。控制部件104还可以耦合到DRAM 110,并可访问DRAM 110的数据。在DRAM可存储FTL表和/或缓存的IO命令的数据。
[0006]控制部件104包括闪存接口控制器(或称为介质接口、介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM芯片105发出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。
[0007]存储设备存储了主固件与引导固件。控制部件104加载并执行固件来处理IO命令以及实施存储设备的其他功能。固件是例如存储设备104的处理器运行的软件。引导固件存储在例如存储设备102的NOR闪存(未示出)。控制部件上电后从NOR闪存的指定地址加载并
执行引导固件。执行引导固件来初始化存储设备的各部件,以及加载主固件。主固件存储在例如NVM芯片。为提高可靠性,NVM芯片中存储了多份主固件的镜像或副本。响应于加载了主固件,引导固件将控制权移交给主固件。
[0008]存储设备包括多个NVM芯片。每个NVM芯片包括一个或多个管芯(DIE)或逻辑单元(LUN,Logic UNit)。管芯或逻辑单元之间可以并行响应读写操作。在同一管芯或逻辑单元上的多个读、写或擦除操作顺序执行。
[0009]图1B展示了主机与存储设备耦合的示意图。
[0010]主机中运行存储管理工具软件。对于NVMe存储设备,存储管理工具是例如从互联网(https://github.com/linux

nvme/nvme

cli)可获得的nvme

cli工具软件,其用于根据用户指定的操作命令向存储设备发出NVMe命令,并获得命令的执行结果。除了NVMe命令,存储设备还支持未在NVMe协议中定义的其他命令。为了清楚的目的,将存储管理工具提供给存储设备的命令,称为存储命令,而将用户提供给存储设备的命令称为操作命令。存储设备接收并处理存储命令,并将执行结果提供给主机,存储管理工具获取存储命令的执行结果,并例如展示给用户。
[0011]存储设备有多种版本,图1B中展示的V1、V2与V3代表了存储设备的不同版本,例如,在不同时间研发完成的存储设备,支持NVMe协议的不同版本的不同存储设备。不同版本的存储设备支持的存储命令可能略有不同,因而,存储管理工具需要为每种存储设备版本提供对应的存储命令的生成和接收方式。
[0012]图1C展示了存储管理工具维护用于多种存储设备版本的多种存储命令的示意图。
[0013]存储管理工具包括命令实现函数库。命令实现函数库包括多个命令实现函数(记为Func1、Func2、
……
Func6)。存储管理工具通过调用命令实现函数Func1来生成用于存储设备V1的存储命令CMD1。命令实现函数Func1也被用来接收存储设备V1的存储命令CMD1的处理结果。
[0014]在图1C的例子中,存储设备V1与存储设备V2都支持存储命令CMD1(存储设备V1与存储设备V2支持的存储命令CMD1具有相同的命令名(“CMD1”)),然而存储设备V1与存储设备V2各自的存储命令CMD1却各自具有不同的形式、参数、含义和/或处理过程,因而,在命令实现函数库中,用不同的函数Func1与Func2来分别生成存储设备V1的存储命令CMD1与存储设备V2的存储命令CMD1。类似地,在命令实现函数库中,提供依然不同的函数Func3来生成存储设备V3的存储命令CMD1。
[0015]依然在图1C的例子中,存储设备V1还支持存储命令CMD2与CMD3,但这两个命令在存储设备V2与V3中都不被支持,因而命令实现函数库中没有对应这两个命令的函数。命令实现函数库的函数Func6用于生成用于存储设备V2的存储命令CMD4。
[0016]图1D展示了存储管理工具根据用户输入的操作命令生成管理命令的流程图。
[0017]用户通过例如主机操作系统的控制台向存储管理工具输入操作命令,例如,mgr[version][c本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.处理多种设备版本的操作命令的方法,包括:获取操作命令,从操作命令中获取设备版本与命令名;用命令名查询命令集合,获得命令索引;用命令索引与设备版本查询命令版本集合,获得命令版本索引;用命令索引与命令版本索引查询命令实现函数集合,获得命令实现函数;调用所获得的命令实现函数来处理操作命令。2.根据权利要求1所述的方法,其中命令集合包括多个条目,命令集合的条目记录了多种设备版本支持的操作命令的命令名;在用命令名查询命令集合时,用记录了命令名的条目在命令集合中的索引作为同命令名对应的命令索引。3.根据权利要求1或2所述的方法,其中命令版本集合包括多个条目,命令版本集合的条目记录了命令版本索引集合;命令版本索引集合的元素记录了同设备版本对应的命令版本索引;在用命令索引与设备版本查询命令版本集合时,用命令索引作为命令版本集合的索引获取第一条目,从第一条目记录的命令版本索引集合获取同设备版本对应的元素作为命令版本索引。4.根据权利要求3所述的方法,其中将从操作命令获取的设备版本映射为数值;用所映射的数值作为索引从第一条目记录的命令版本索引集合获取对应的元素。5.根据权利要求3或4所述的方法,其中单一命令版本索引集合中的一个或多个元素相同,使得所述单一单一命令版本索引集合对应的多个设备版本中的一个或多个设备版本对应的命令实现函数相同。6.根据权利要求3

5之一所述的方法,其中单一命令版本索引集合中的一个或多个元素不同,使得所述单一单一命令版本索引集合对应的多个设备版本中的一个或多个设备版本对应的命令实现函数不同。7.根据权利要求3

6之一所述的方法,其...

【专利技术属性】
技术研发人员:丁剑董力维
申请(专利权)人:北京忆恒创源科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1