多功能装置的服务类别

文档序号:1966936 发布日期:2021-12-14 浏览:12次 >En<

阅读说明:本技术 多功能装置的服务类别 (Service classes of multifunction devices ) 是由 L·伯特 于 2020-05-01 设计创作,主要内容包括:与存储器组件可操作地耦合的处理装置配置成提供多个虚拟存储器控制器并提供多个物理功能,其中所述多个物理功能中的每一个对应于所述多个虚拟存储器控制器中的不同一个。所述处理装置进一步通过外围组件互连高速(PCIe)接口向主机计算系统呈现所述多个物理功能,其中所述多个物理功能中的每一个对应于在所述主机计算系统上运行的不同虚拟机;以及鉴于与所述多个物理功能相关联的服务类别参数,管理从所述主机计算系统接收并指向所述多个物理功能的输入/输出(IO)操作,以及在所述存储器组件上执行的后台操作。(A processing device operatively coupled with the memory component is configured to provide a plurality of virtual memory controllers and to provide a plurality of physical functions, wherein each of the plurality of physical functions corresponds to a different one of the plurality of virtual memory controllers. The processing device further presents the plurality of physical functions to a host computing system over a peripheral component interconnect express (PCIe) interface, wherein each of the plurality of physical functions corresponds to a different virtual machine running on the host computing system; and managing input/output (IO) operations received from the host computing system and directed to the plurality of physical functions, and background operations executing on the memory component in view of service class parameters associated with the plurality of physical functions.)

具体实施方式

和本公开的各种实施例的附图将更加充分地理解本公开。

图1示出根据本公开的一些实施例的用于NVMe直接虚拟化和服务类别管理的实例计算环境。

图2示出根据本公开的一些实施例的主机系统与实施NVMe直接虚拟化和服务类别管理的存储器子系统之间的实例物理主机接口。

图3示出根据本公开的一些实施例的用于NVMe直接虚拟化和服务类别管理的存储器子系统中的存储器映射。

图4示出根据本公开的一些实施例的具有NVMe直接虚拟化和服务类别管理的存储器子系统的装置层次结构和拓扑结构。

图5示出根据本公开的一些实施例的实施NVMe直接虚拟化和服务类别管理的物理控制器。

图6示出根据本公开的一些实施例的存储器子系统中的NVMe直接虚拟化和服务类别管理的方法。

图7示出根据本公开的一些实施例的鉴于存储器子系统中的对应服务类别参数值处理输入/输出操作的方法。

图8是本公开的实施例可在其中操作的实例计算机系统的框图。

具体实施方式

本公开的方面涉及存储器子系统中的多功能存储器装置的服务类别参数的用途。存储器子系统可以是存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个存储器组件(下文还称为“存储器装置”)的存储器子系统。主机系统可提供数据以存储于存储器子系统处,且可请求从存储器子系统检索数据。

服务器体系结构的演变和多核处理器的可用性促使服务器设计发生重大变化。最值得注意的是,运行单一操作系统(OS)的服务器已被多租户服务器所取代,其中许多“所有者”(例如,在虚拟机(VM)、容器或微服务中运行的来宾操作系统)共享同一物理服务器平台,而不知道彼此的存在。

将输入/输出(I/O)装置连接到每个VM可能会出现问题,并且会占用大量资源,因此,已经发展了特殊的体系结构,以简化连接过程并最大限度地提高性能。某些常规存储器子系统使用单根输入/输出虚拟化(SR-IOV)规范。SR-IOV是一种规范,允许出于可管理性和性能原因在各种硬件功能之间隔离外围组件互连(PCI)高速(PCIe)资源,同时也允许在虚拟环境中共享单个物理PCIe装置。SR-IOV将不同的虚拟功能提供到物理服务器机器上的不同虚拟组件(例如,网络适配器)。SR-IOV还允许虚拟环境中的不同虚拟机共享单个PCIe硬件接口。替代地,可以通过称为“多PF”的多个并行物理功能提供等效功能。多PF体系结构将每个物理功能(PF)映射到VM。一个物理功能允许枚举多个物理功能,然后虚拟机监控程序可以将这些物理功能分配给一或多个虚拟机。这些解决方案既需要负责枚举和资源分配的主机OS,也需要负责常规数据流的在虚拟机上运行的一组来宾OS。主机OS可以了解这些功能,并识别要添加到主机OS的特殊功能。另外,大多数虚拟机监控程序环境不支持SR-IOV,这使得所述解决方案不适用于许多情况。此外,在许多情况下,每个VM可以具有服务级别协议(SLA),其定义一定级别的服务,包含待提供的质量、可用性、责任等。

本公开的方面通过具有存储器子系统来解决上述和其它缺陷,所述存储器子系统提供了一种机制,使得控制器的每个VF和/或PF能够提供不同的服务质量(QoS),以满足系统SLA的条件。在一个实施方案中,存储器子系统通过允许系统设置此类QoS条件的最小值(即“保留”)和最大值(即“限制”)来定义与每秒输入/输出操作(IOPS)和吞吐量相关的某些QoS参数。

当在使用基于NAND的存储器和类似装置的存储器子系统中使用此类QoS参数时,需要解决某些考虑因素。例如,NAND写入(程序)速度慢且异步并且会干扰传入的系统IO,这可能影响QoS。另外,在NAND装置上,作为耗损均衡操作的一部分,数据通常四处移动,且与传入数据的冲突通常是不可预测的。此外,存储器子系统还可能执行某些后台操作(例如,垃圾收集、媒体扫描、耗损均衡),这些操作可能以不可预测的程度影响IO。NAND擦除和编程操作都是高影响操作,因为它们在激活时会锁定整个裸片,而且速度非常慢(例如,比读取速度慢10至30倍),因此影响此类裸片的IO可能会大大延迟。此外,NAND擦除和程序操作具有暂停/恢复功能,但这将影响所有其它IO,因此可以使用方案来管理它们的使用。

在一个实施方案中,存储器子系统使用非易失性存储器快速(NVMe)虚拟化模式,允许动态配置本机不支持SR-IOV的云计算服务。此解决方案提供了主机操作系统或其上运行的虚拟机自然可见的物理功能,并且不依赖于虚拟机监控程序和PCIe执行的软件转换。在一个实施方案中,固件或其它逻辑,例如存储器子系统中的NVMe虚拟化模块,生成多个虚拟NVMe控制器。每个虚拟NVMe控制器具有对应PCIe物理功能,使每个虚拟NVMe控制器表现为连接到存储器子系统与主机系统之间的PCIe总线的可单独寻址PCIe装置(即物理控制器)。因此,存储器子系统中可能只有单个底层存储装置,其借助于多个虚拟NVMe控制器表现为经由PCIe总线连接到主机系统的多个单独的存储装置。在另一实施例中,存储器子系统中可能有多个底层存储装置,其表现为由虚拟NVMe控制器表示的更多数量的存储装置。

本文描述的NVMe虚拟化技术允许连接到PCIe总线的存储器子系统(通常表现为单个PCIe装置)将自身呈现为多个可单独寻址PCIe装置。各自具有对应物理功能的虚拟NVMe控制器的用途消除了对存储器子系统中额外物理控制器以及对通常与此类物理控制器相关联的额外硬件资源的需要。另外,NVMe虚拟化允许与SR-IOV规范相关的性能,包含主机系统中的不同虚拟机能够在本机不支持SR-IOV的环境中与存储器子系统共享单个PCIe接口。因此,代替主机系统中执行虚拟化的PCIe根复合体,存储器子系统本身可以实施虚拟化,而不需要主机系统的虚拟机监控程序或其它软件参与。主机系统将每个物理功能视为单独的物理存储装置,可以将其分配给主机操作系统或其上运行的多个虚拟机中的一个。通过这种方式,主机上的多个实体可以以完全透明的方式共享单个底层存储资源。此外,每个物理功能和虚拟NVMe控制器对可以具有多个相关联的QoS参数,包含本文所指的服务类别(CoS)。CoS参数可以是4位值,例如(0x0-0xF),其描述了相关虚拟和物理功能对IO的所有活动的影响程度。CoS参数可以定义存储器子系统将如何处理待处理的主机访问命令、新的主机访问命令以及在存储器子系统中执行的所有后台操作。在下文关于图1-8提供这些技术的额外细节。

图1示出根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此类的组合。

存储器子系统110可为存储装置、存储器模块,或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器以及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)以及非易失性双列直插式存储器模块(NVDIMM)。

计算环境100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1示出耦合到一个存储器子系统110的主机系统120的一个实例。主机系统120使用存储器子系统110以例如将数据写入到存储器子系统110和从存储器子系统110读取数据。如本文所使用,“耦合到”通常是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,无中间组件),无论是有线的还是无线的,包含例如电学、光学、磁性等连接。

主机系统120可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、嵌入式计算机(例如,包含在车辆、工业设备或联网的商业装置中的计算机),或包含存储器和处理装置的此类计算装置。主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(SAS)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用NVM高速(NVMe)接口来访问存储器组件(例如,存储器装置130)。物理主机接口可以提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。

存储器装置可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。

非易失性存储器装置(例如,存储器装置130)的一些实例包含“与非”(NAND)型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器。3D交叉点存储器装置是非易失性存储器单元的交叉点阵列,与可堆叠交叉网格数据访问阵列一起,可基于体积电阻的变化执行位存储。另外,与许多基于闪存的存储器相比,交叉点非易失性存储器可以执行就地写入操作,其中可以对非易失性存储器单元进行编程,而无需事先擦除非易失性存储器单元。

存储器装置130中的每一个可以包含一或多个存储器单元阵列,例如单级单元(SLC)或多级单元(MLC)(例如,三级单元(TLC)或四级单元(QLC))。在一些实施例中,特定存储器组件可以包含存储器单元的SLC部分,以及MLC部分、TLC部分或QLC部分。存储器单元中的每一个可以存储由主机系统120使用的一或多个数据位。此外,存储器装置130的存储器单元可分组以形成页,所述页可指用于存储数据的存储器组件的单元。对于一些类型的存储器(例如,NAND),页可进行分组以形成块。一些类型的存储器(例如3D交叉点)可对跨裸片和通道的页进行分组以形成管理单元(MU)。

虽然描述了例如NAND类型快闪存储器和3D交叉点的非易失性存储器组件,但是存储器装置130可以基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、磁性随机存取存储器(MRAM)、“或非”(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)。

存储器子系统控制器115可以与存储器装置130通信以执行操作,例如,在存储器装置130处读取数据、写入数据或擦除数据和其它此类操作。存储器子系统控制器115可以包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包含具有专用(即,硬译码)逻辑的数字电路以执行本文所描述的操作。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或其它合适的处理器。

存储器子系统控制器115可包含处理器(处理装置)117,其配置成执行存储在本地存储器119中的指令。在所示的实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,其配置成存储用于进行以下操作的指令:执行控制存储器子系统110的操作的各种过程、操作、逻辑流和例程,包含处理存储器子系统110与主机系统120之间的通信。

在一些实施例中,本地存储器119可以包含存储存储器指针、提取的数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。尽管图1中的实例存储器子系统110示出为包含存储器子系统控制器115,但是在本公开的另一实施例中,存储器子系统110可以不包含存储器子系统控制器115,而是可以依赖于外部控制(例如,由外部主机或者由与存储器子系统分离的处理器或控制器提供)。

通常,存储器子系统控制器115可从主机系统120接收命令或操作,并且可以将命令或操作转换成指令或适当的命令以实现对存储器装置130的所需访问。存储器子系统控制器115可以负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作,以及与存储器装置130相关联的逻辑块地址和物理块地址之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统,以经由物理主机接口与主机系统120通信。主机接口电路系统可以将从主机系统接收的命令转换成访问存储器装置130的命令指令,以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。

存储器子系统110还可包含未示出的额外电路系统或组件。在一些实施例中,存储器子系统110可以包含高速缓存或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),其可从存储器子系统控制器115接收地址且对地址进行解码以访问存储器装置130。

在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。在一些实施例中,存储器装置130是受管理存储器装置,其为与同一存储器装置封装内进行存储器管理的本地控制器(例如,本地控制器135)组合的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。

存储器子系统110包含可用于执行NVMe直接虚拟化的NVMe虚拟化模块113。在一个实施例中,NVMe虚拟化模块113执行固件或其它逻辑以在存储器子系统110中提供多个虚拟NVMe控制器。NVMe虚拟化模块113向每个虚拟NVMe控制器分配对应PCIe物理功能,使得每个虚拟NVMe控制器表现为连接到存储器子系统110与主机系统120之间的PCIe总线的可单独寻址PCIe装置(即,物理控制器)。因此,包含在其上运行的单独虚拟机或分区的主机系统120可以通过物理主机接口(例如,PCIe总线)单独且并行地访问由虚拟NVMe控制器表示的存储器装置130。下文描述关于NVMe虚拟化模块113的操作的其它细节。

存储器子系统110进一步包含调度器114,所述调度器可以鉴于包含所述CoS参数的QoS参数来管理与不同物理功能和虚拟NVMe控制器有关的存储操作。如上所述,CoS参数可以定义调度器114将如何处理待处理的主机访问命令、新主机访问命令以及在存储器子系统110中执行的所有后台操作。调度器114可以将CoS参数与存储器子系统110中的物理功能和虚拟NVMe控制器对中的每一个相关联,以定义如何相对于其它对处理针对每一对的操作。在一个实施方案中,并非定义了4位CoS参数可能的所有16个值。例如,在一个实施方案中,调度器114可以考虑三个值:0x0,其指示不允许QoS影响的情况下的最高优先级;0x8,其表示不考虑QoS的标准行为;以及0xF,其表示来自其它物理功能和/或后台操作的待处理操作将优先的最低优先级。在其它实施方案中,可以定义任何其它数量的CoS参数,例如0x4,其表示中高优先级;或0xC,其表示中低优先级。下面描述关于调度器114的操作的其它细节。

图2示出根据本公开的一些实施例的主机系统与实施NVMe直接虚拟化和服务类别管理的存储器子系统之间的实例物理主机接口。在一个实施例中,存储器子系统110的控制器115通过物理主机接口(例如PCIe总线210)连接到主机系统120。在一个实施例中,在控制器115上运行的NVMe虚拟化模块113生成并管理控制器115内的多个虚拟NVMe控制器202-208。虚拟NVMe控制器202-208是虚拟实体,其对于借助于与每个虚拟NVMe控制器202-208相关联的物理功能212-218连接到PCIe总线210的其它装置(例如主机系统120)表现为物理控制器。图2示出四个虚拟NVMe控制器202-208和四个对应物理功能212-218。然而,在其它实施例中,可以存在各自具有对应物理功能的任何其它数量的NVMe控制器。所有虚拟NVMe控制器202-208具有相同的优先级和相同的功能。因此,与SR-IOV相比,没有主控制器或辅控制器的概念,在SR-IOV中,主控制器可以在主控制器处于操作状态时创建辅控制器。这意味着在启动时,SR-IOV系统将不会看到任何辅控制器,直到主控制器驱动器创建它们。

虚拟NVMe控制器202-208中的每一个管理底层存储器装置130的存储访问操作。例如,虚拟NVMe控制器202可以通过PCIe总线210接收来自主机系统120的数据访问请求,包含读取、写入或擦除数据的请求。响应于所述请求,虚拟NVMe控制器202可识别存储器装置130中与所述请求中的逻辑存储器地址有关的物理存储器地址,对存储在所述物理地址处的数据执行请求的存储器访问操作,并将请求的数据和/或确认或错误消息返回给主机系统120,视情况而定。对于存储器装置130的数据访问请求,虚拟NVMe控制器204-208可以以相同或类似的方式工作。

如上所述,NVMe虚拟化模块113将物理功能212-218中的一个与虚拟NVMe控制器202-208中的每一个相关联,以允许每个虚拟NVMe控制器202-208在PCIe总线210上表现为物理控制器。例如,物理功能212可对应于虚拟NVMe控制器202,物理功能214可对应于虚拟NVMe控制器204,物理功能216可对应于虚拟NVMe控制器206,且物理功能218可对应于虚拟NVMe控制器208。物理功能212-218是功能齐全的PCIe功能,可像任何其它PCIe装置一样发现、管理和操作,因此可用于配置和控制PCIe装置(例如,虚拟NVMe控制器202-208)。每个物理功能212-218可以具有与其相关联的一些虚拟功能。虚拟功能是与物理功能以及与物理功能关联的虚拟功能共享一或多个资源的轻型PCIe功能。每个虚拟功能具有PCI存储器空间,用于映射其寄存器集。虚拟功能装置驱动器在寄存器集上操作以启用其功能,并且虚拟功能表现为可由主机系统120通过PCIe总线210访问的实际PCIe装置。

如上所述,每个物理功能212-218可以分配给主机系统120中的虚拟机232-236中的任何一个。当在虚拟NVMe控制器202-208处从虚拟机232-236接收到I/O数据时,虚拟机驱动器为对应读取/写入命令提供来宾物理地址。NVMe虚拟化模块113将物理功能号转换为总线、装置和功能(BDF)号,然后将所述命令添加到直接存储器访问(DMA)操作中,以对来宾物理地址执行DMA操作。在一个实施例中,控制器115进一步将来宾物理地址转换为存储器子系统110的系统物理地址。

此外,每个物理功能212-218可以在特权模式或正常模式下实施。在特权模式下实施时,物理功能具有单个管理点,其可以控制在正常模式下实施的其它功能的资源操作和存储调配。此外,特权模式下的物理功能可以执行管理选项,包含例如启用/禁用多个物理功能、存储和服务质量(QoS)调配、固件和控制器更新、供应商唯一统计数据和事件、诊断、安全擦除/加密等。通常,第一物理功能可以实施特权模式,其余物理功能可以实施正常模式。然而,在其它实施例中,可以将任何物理功能配置为在特权模式下操作。因此,可以有一或多个功能在特权模式下运行。

主机系统120通过执行软件层224(通常称为“虚拟机监控程序”)来运行多个虚拟机232、234、236,所述软件层在硬件上方和虚拟机下方,如图2所示。在一个说明性实例中,虚拟机监控程序224可以是由主机系统120执行的主机操作系统222的组件。替代地,虚拟机监控程序224可以由在主机操作系统222下运行的应用程序提供,或者可以直接在没有在其下运行的操作系统的主机系统120上运行。虚拟机监控程序224可以抽象化包含处理器、存储器和I/O装置的物理层,并将此抽象化作为虚拟装置呈现给虚拟机232、234、236,包含虚拟处理器、虚拟存储器和虚拟I/O装置。虚拟机232、234、236可各自执行来宾操作系统,所述来宾操作系统可利用底层虚拟装置,所述底层虚拟装置可以例如映射到由存储器子系统110中的虚拟NVMe控制器202-208中的一个管理的存储器装置130。一或多个应用程序可以在来宾操作系统下的每个虚拟机上运行。

每个虚拟机232、234、236可以包含一或多个虚拟处理器。处理器虚拟化可以通过虚拟机监控程序224实施,其在一或多个物理处理器上调度时隙,使得从来宾操作系统的角度来看是在虚拟处理器上调度这些时隙。存储器虚拟化可以通过页表(PT)实施,其将来宾存储器地址转换为物理存储器地址的存储器结构。虚拟机监控程序224可以比来宾操作系统以更高的特权级别运行,并且来宾操作系统可以比来宾应用程序以更高的特权级别运行。

在一个实施方案中,主机系统120上可以存在表示虚拟机232、234、236的多个分区。对应于虚拟机232的父分区是根分区(即,根环0),其具有控制例如对应于虚拟机234和236的其它子分区(即,传统环0)的生命周期的额外特权。每个分区具有对应虚拟存储器,并且子分区不呈现虚拟装置,而是看到分配给它们的物理装置。当主机系统120最初启动时,父分区可以直接看到所有物理装置。直通机制(例如,PCIe直通或直接装置分配)允许父分区将NVMe装置(例如,虚拟NVMe控制器202-208中的一个)分配给子分区。相关联的虚拟NVMe控制器202-208可以表现为虚拟机232、234、236中的每一个的虚拟存储资源,其中运行的来宾操作系统或来宾应用程序可以访问所述虚拟存储资源。在一个实施例中,例如,虚拟机232与虚拟NVMe控制器202相关联,虚拟机234与虚拟NVMe控制器204相关联,并且虚拟机236与虚拟NVMe控制器206相关联。在其它实施例中,一个虚拟机可与两个或更多个虚拟NVMe控制器相关联。虚拟机232、234、236可以使用对应总线、装置和功能(BDF)号来识别相关联的虚拟NVMe控制器,如下文将更详细地描述。

在一个实施例中,NVMe虚拟化模块113进一步为虚拟NVMe控制器202-208中的每一个实施访问控制服务。访问控制服务管理哪些装置具有虚拟NVMe控制器202-208的访问权限。例如,访问权限可以定义主机系统120上的虚拟机232-236中的哪一个可以访问虚拟NVMe控制器202-208中的每一个,以及虚拟机232-236中的每一个可以在虚拟NVMe控制器202-208中的每一个上执行哪些操作。在一个实施例中,NVMe虚拟化模块113单独地控制虚拟NVMe控制器202-208中的每一个的访问权限。例如,在特权模式下,NVMe虚拟化模块113可以向虚拟机232授予使用虚拟NVMe控制器202读取和写入数据的权限,但仅授予使用虚拟NVMe控制器204读取数据的权限。类似地,在特权模式下,NVMe虚拟化模块113可以向虚拟机232授予仅使用虚拟NVMe控制器204读取和写入数据的权限。可以为虚拟NVMe控制器202定义访问权限的任何组合。当针对虚拟NVMe控制器202-208中的一个接收到存储器访问请求时,NVMe虚拟化模块113可以基于定义访问控制服务的访问策略分析请求的条件(例如,请求者、目标、操作、请求的数据地址等)。访问策略可以存储在本地存储器119中。如果请求满足对应访问策略(请求的条件与对应访问策略中指定的条件相匹配),则NVMe虚拟化模块113可以授予访问请求。否则,可拒绝请求。

在一个实施方案中,调度器114根据包含所述CoS参数的各种QoS参数管理指向物理功能212-218的主机IO操作和后台操作。表1示出调度器114如何相对于来自其它物理功能的现有IO操作、来自其它物理功能的新IO操作、现有后台操作和新后台操作,对给定IO操作或后台操作(BG)执行此类管理。因此,CoS参数可以定义指向第一物理功能的给定IO操作或后台操作相对于存储器子系统中的其它操作的优先级执行顺序。

表1

例如,如果为物理功能212分配了指示最高优先级的CoS参数设置0x0,则调度器114可以对指向物理功能212的IO操作进行优先级排序。因此,如果存在针对指向底层存储器组件(例如,存储器装置130)的相同段的具有较低CoS优先级(例如0x8)的另一物理功能214执行的现有IO操作,则调度器114可以暂停所述现有IO操作,以便可以执行指向物理功能212的IO操作。如果在执行指向物理功能212的IO操作时接收到指向物理功能214的新IO操作,则调度器114可以延迟所述新IO操作,直到当前IO操作完成。类似地,如果正在存储器装置130的相关段上执行现有后台操作,则调度器114可以暂停那些现有后台操作,以便可以执行指向物理功能212的IO操作。在执行指向物理功能212的IO操作时,也不在存储器装置130的相关段上调度新的后台操作。

如果为物理功能214分配了指示标准优先级的CoS参数设置0x8,则调度器114可以相应地管理指向物理功能214的IO操作。如果存在针对指向存储器装置130的相同段的具有较低CoS优先级(例如,0xF)的另一物理功能216执行的现有IO操作,则调度器114可允许所述现有IO操作在执行指向物理功能214的IO操作之前完成。因此,调度器114不采取关于CoS优先级的动作,并且按照接收它们的顺序执行IO操作。如果在执行指向物理功能214的IO操作时接收到指向物理功能212的新IO操作,则调度器114可以暂停当前IO操作并执行所述新IO操作。如果在执行指向物理功能214的IO操作时接收到指向物理功能216的新IO操作,则调度器114可以延迟所述新IO操作,直到当前IO操作完成。类似地,如果正在存储器装置130的相关段上执行现有后台操作,则调度器114可以继续运行那些现有后台操作并在后台操作完成后执行指向物理功能212的IO操作。根据正常调度方案,在存储器装置130的相关段上调度新的后台活动。

如果为物理功能216分配了指示最低优先级的CoS参数设置0xF,则调度器114可以相应地管理指向物理功能216的IO操作。如果存在针对指向存储器装置130的相同段的另一物理功能执行的现有读取IO操作,则调度器114可允许所述现有读取IO操作在执行指向物理功能216的新IO操作之前完成。如果存在针对另一物理功能正在执行的现有写入IO操作,则调度器114可以允许所述现有写入IO操作在暂停所述现有写入IO操作并执行指向物理功能216的新IO操作之前进行一段阈值时间(例如,10xtR)。如果在执行指向其它物理功能的现有读取IO操作时接收到指向物理功能216的新IO操作,则调度器114可以延迟所述新IO操作,直到当前读取IO操作完成。如果在执行指向另一物理功能的现有写入IO操作时接收到指向物理功能216的新IO操作,则调度器114可以允许所述现有写入IO操作在暂停所述现有写入IO操作并执行指向物理功能216的新IO操作之前进行一段阈值时间(例如,5xtR)。类似地,如果正在存储器装置130的相关段上执行现有后台扫描操作,则调度器114可以延迟新IO操作,直到现有后台扫描操作完成。如果正在存储器装置130的相关段上执行现有后台写入操作,则调度器114可允许所述现有后台写入操作在暂停所述现有后台写入操作并执行指向物理功能216的新IO操作之前进行一段阈值时间(例如,5xtR)。调度器114可以赋予新后台扫描操作优于指向物理功能216的现有IO操作的优先顺序,并且可以允许所述现有IO操作在暂停所述现有IO操作并执行新后台写入操作之前进行一段阈值时间(例如,5xtR)。

在另一实施方案中,可以使用上文描述的相同CoS参数来定义每个VF/PF的信用加权分配,并且如果操作正确,可以对IO流执行相同的分配。这与传统系统不同,传统系统没有信用分配机制(即,传统系统充当“先到先服务”的方式),并且没有QoS能力。对于任何设置了“保留”字段的VM,可以保留一些信用,这将保证有最低的可用能力,但它们之间没有真正的QoS。不仅将保留一些信用,而且将为具有最积极(即最小编号)QoS参数的VF/PF分配成比例的信用。这不仅将确保满足最低“保留”容量,还可以确保与VF/PF QoS目标成比例的足够信用,并且可以基于表1中的策略发放信用。

图3示出根据本公开的一些实施例的用于NVMe直接虚拟化和服务类别管理的存储器子系统110中的存储器映射。在一个实施例中,存储器子系统110包含快闪转换层(FTL)300,其例如可以在存储器子系统控制器115中实施。FTL 300负责逻辑到物理(L2P)地址映射和转换、耗损均衡操作、不良块管理、错误检测和纠正以及其它操作。在一个实施例中,FTL 300包含NVMe虚拟化模块113和调度器114。

如上所述,NVMe虚拟化模块113将存储器子系统110中的每个NVMe控制器映射到一或多个存储器装置130。在一个实施例中,存储器装置130具有唯一的名称空间。名称空间是一或多个存储器装置130的数量,当使用NVMe协议配置存储器组件时,可以将其格式化为逻辑块。NVMe协议提供对名称空间的访问,其表现为文件系统和应用程序可以部署在上面而没有任何修改的标准块装置。每个虚拟NVMe控制器202-208可以具有一或多个单独的名称空间,每个名称空间由唯一名称空间ID(NSID)标识。此外,可能存在可由两个或更多个虚拟NVMe控制器202-208访问的一或多个共享名称空间。

另外,每个虚拟NVMe控制器202-208还可以具有相关联数量的队列对。NVMe虚拟化模块113可以具有固定数量的输入/输出(I/O)队列对和管理队列对,它们可以分布在虚拟NVMe控制器202-208之间。I/O队列对用于从主机系统120接收存储器访问请求,并且管理队列对用于接收管理命令。分配给每个虚拟NVMe控制器202-208的I/O队列对的数量控制对应虚拟NVMe控制器处可以接收多少并发存储器访问请求。例如,如果虚拟NVMe控制器202被分配了十个I/O队列对,则虚拟NVMe控制器202可以在后续请求被拒绝之前从主机系统120接收最多十个存储器访问请求。在处理当前请求时,存储器访问请求保存在相关联的I/O队列对中。一旦虚拟NVMe控制器202完成当前请求的处理,就可以从相关联的I/O队列对中检索下一个请求以进行处理,并且可以将另一存储器访问请求添加到队列中。在一个实施例中,NVMe虚拟化模块在虚拟NVMe控制器202-208之间均匀地分布可用I/O队列对。在另一实施例中,分配给每个虚拟NVMe控制器的I/O队列对的数量在不同虚拟NVMe控制器202-208之间不相等,并且基于一些其它因素,例如虚拟NVMe控制器上的过去活动的级别。在任何实施例中,每个虚拟NVMe控制器被分配至少一个管理队列对。

每个虚拟NVMe控制器可以接收从对应客户端接收的存储器访问请求(例如,读取请求或写入请求)。FTL 300和调度器114可以鉴于与每个虚拟NVMe控制器相关联的多个QoS参数来管理存储器访问请求的处理以及后台操作310。QoS参数可以包含例如每秒输入/输出操作(IOPS)、吞吐量和服务类别(CoS)。在一个实施例中,IOPS和吞吐量参数可各自分配最小值(即“保留”)和最大值(即“限制”),指示对应虚拟NVMe控制器的特定性能要求。例如,IOPS参数可指示相关联虚拟NVMe控制器每秒可执行的最小和/或最大输入/输出操作数。类似地,吞吐量参数可指示相关联虚拟NVMe控制器在给定时间段内可处理的最小和/或最大数据量。如上所述,CoS参数可以定义如何相对于彼此处理在存储器子系统110中执行的待处理的主机访问命令、新主机访问命令和所有后台操作310。

图4示出根据本公开的一些实施例的具有NVMe直接虚拟化和服务类别管理的存储器子系统的装置层次结构和拓扑结构。在一个实施例中,主机系统120包含PCIe根复合体422,其用作主机系统120的物理和虚拟组件与PCIe总线210之间的连接。PCIe根复合体422可以代表处理装置(例如虚拟机232、234、236之一中的虚拟处理装置)生成事务请求。取决于实施例,PCIe根复合体422可以实施为离散装置,或者可以与主机系统120中的物理处理装置集成。PCIe根复合体422可以具有多个通信端口,使得PCIe根复合体422可以向多个PCIe装置(例如连接到PCIe总线210的虚拟NVMe控制器202-208)发送命令/从其接收命令。

如上所述,虚拟NVMe控制器202-208中的每一个表现为连接到PCIe总线210的单独物理PCIe装置,这是因为其各自具有单独的物理功能。每个物理功能为虚拟NVMe控制器202-208中的对应一个提供对应配置空间。在一个实施例中,每个配置空间为256字节长,并且可通过知晓对应总线、装置和功能(BDF)号来寻址。BDF号可以包含指示PCIe总线的八位值、指示对应装置的五位值和指示相关联功能的三位值。因此,最多可识别256条总线,每条总线具有最多32个装置,每个装置支持八种功能。在一个实施例中,替代路由解释(ARI)可用于将可在装置中实施的物理功能的数量从正常最大八个增加到256个。在图4所示的实例中,PCIe总线210的值为3,因此虚拟NVMe控制器202-208中的每一个的BDF号包含值3。另外,虚拟NVMe控制器202-208中的每一个具有唯一装置值(在本例中分别为0、1、2和3)。此外,由于虚拟NVMe控制器202-208中的每一个仅具有单个物理功能,因此各自具有0的功能值。这导致虚拟NVMe控制器202-208中的每一个具有唯一的BDF号,PCIe根复合体422可使用所述BDF号来寻址所需虚拟NVMe控制器。在一个实施例中,控制器115维护将每个虚拟NVMe控制器的物理功能号映射到唯一BDF的表或其它数据结构。此外,每个物理功能可以使用名称空间标识符(NSID)创建自己的名称空间(例如,卷)。对于每个功能,这些NSID可以从0开始到N-1。NSID可以在存储器子系统110中是唯一的,并且在一个实施例中,物理功能号被附加到每个NSID的最高有效位。

图5示出根据本公开的一些实施例的实施NVMe直接虚拟化和服务类别管理的物理控制器。如上所述,控制器115包含NVMe虚拟化模块113和虚拟NVMe控制器202-208。虚拟NVMe控制器202-208耦合到PCIe端口505,所述端口支持通过PCIe总线210与主机系统120通信。在一个实施例中,控制器115进一步包含媒体控制器520。媒体控制器520管理存储器子系统110中的存储媒体的操作,所述存储媒体包含存储器装置130和可选的易失性存储器装置140,例如一或多个动态随机存取存储器(DRAM)装置510。例如,当虚拟NVMe控制器202-208中的一个接收到访问存储器装置130之一中的数据的请求时,虚拟NVMe控制器将所述请求提供给媒体控制器520,所述媒体控制器检索并返回请求的数据、写入请求的数据或从存储器装置130擦除请求的数据。

在一个实施例中,控制器115进一步包含调度器114和边带管理(SM)总线524。调度器114可以调度IO操作和后台操作,以实施每个虚拟NVMe控制器202-208的单独服务质量管理。为了满足这些要求,每个虚拟NVMe控制器202-208可以具有附加的QoS。QoS控制可以包含例如时延、带宽、服务类别或其它特征。调度器114可以随时间推移监测虚拟NVMe控制器202-208的性能,并且可以根据需要重新配置资源分配以确保符合QoS要求。

SM总线524与例如存储器子系统110中的基板管理控制器(BMC)之类的平台管理器(未示出)通信,以与平台硬件介接。平台管理器可与内置在存储器子系统110中的不同类型的传感器介接,以报告参数,例如温度、冷却风扇转速、电力状态、操作系统状态等。平台管理器监测这些传感器,并且可以在任何参数未保持在某些预设限制内时生成警报,指示潜在故障。控制器115可以从平台管理器接收这些警报和/或通过SM总线524向平台管理器提供状态信息。

图6是根据本公开的一些实施例的存储器子系统中的NVMe直接虚拟化和服务类别管理的实例方法。方法600可以通过处理逻辑来执行,所述处理逻辑可以包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法600由图1的NVMe虚拟化模块113和调度器114执行。尽管以特定顺序或次序示出,但除非另有规定,过程的顺序可以修改。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。

在操作610,处理逻辑提供一或多个虚拟存储器控制器,例如虚拟NVMe控制器202-208。虚拟存储器控制器是虚拟实体,其借助于与每个虚拟存储器控制器相关联的物理功能212-218表现为连接到PCIe总线210的其它装置(例如主机系统120)的物理控制器。在一个实施例中,虚拟存储器控制器在控制器115内创建,但直到它们例如响应于经由管理接口从系统管理员接收的输入而被启用时才可使用。

在操作620,处理逻辑提供多个物理功能212-218,其中多个物理功能212-218中的每一个对应于多个虚拟存储器控制器(例如,虚拟NVMe控制器202-208)中的不同一个。多个物理功能212-218中的每一个将多个虚拟存储器控制器中的对应一个表示为外围组件互连高速(PCIe)接口(例如PCIe总线210)上的主机系统120的物理存储器控制器。在一个实施例中,响应于经由管理接口从系统管理员接收的输入,创建多个物理功能212-218。

在操作630,处理逻辑通过PCIe接口(例如PCIe总线210)向主机计算系统(例如主机系统120)呈现多个物理功能212-218。主机系统120将多个物理功能212-218中的每一个分配给在主机系统120上运行的不同虚拟机,例如虚拟机232、234、236中的一个。多个物理功能212-218中的每一个为多个虚拟存储器控制器中的对应一个提供配置空间,其中每个配置空间可通过知晓唯一总线、装置和功能(BDF)号来寻址。此外,多个物理功能212-218中的第一物理功能(例如,物理功能212)可以在特权模式下实施,并且配置成对多个物理功能中的可以在正常模式下实施的其余部分(例如,物理功能214-218)执行管理操作。

在操作640,处理逻辑从在主机系统120上运行的经分配虚拟机(例如虚拟机232、234、236中的一个)接收存储器访问请求。存储器访问请求可以涉及一或多个存储器装置,例如存储器装置130。

在操作650,处理逻辑将经分配虚拟机(例如,虚拟机232、234、236中的一个)和存储器访问请求与和多个虚拟存储器控制器(例如,虚拟NVMe控制器202-208)相关联的访问控制策略进行比较,并且响应于经分配虚拟机和存储器访问请求满足访问控制策略的一或多个条件的而授权对多个虚拟存储器控制器的访问。

在操作660,处理逻辑处理存储器访问请求。在一个实施例中,虚拟NVMe控制器202-208中的一或多个可以执行请求的存储器访问操作,例如读取、写入或擦除操作,并且可以根据需要将请求的数据和/或确认或错误消息返回给主机系统120。在一个实施方案中,调度器114鉴于与多个物理功能相关联的服务类别参数来管理存储器访问请求以及在存储器组件上执行的后台操作。

图7示出根据本公开的一些实施例的鉴于存储器子系统中的对应服务类别参数值处理输入/输出操作的方法。方法700可以通过处理逻辑来执行,所述处理逻辑可以包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法700由图1的NVMe虚拟化模块113和调度器114执行。尽管以特定顺序或次序示出,但除非另有规定,过程的顺序可以修改。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。

在操作710,处理逻辑通过主机接口总线从在与存储器系统耦合的主机计算系统上运行的第一虚拟机接收第一IO操作。在一个实施例中,存储器系统中的多个虚拟存储器控制器中的第一虚拟存储器控制器接收第一IO操作。在一个实施例中,第一虚拟存储器控制器具有对应物理功能,其使得第一虚拟存储器控制器表现为连接到主机接口总线的可单独寻址存储器装置。因此,第一虚拟机可以将第一IO操作直接发送到第一虚拟存储器控制器。第一IO操作可以是例如从存储器组件读取数据的读取请求或将数据写入存储器组件的写入请求。

在操作720,处理逻辑从主机计算系统上运行的第二虚拟机接收第二IO操作。在一个实施例中,多个虚拟存储器控制器中的第二虚拟存储器控制器接收第二IO操作。第二虚拟存储器控制器也可以具有对应物理功能,其使得第二虚拟存储器控制器表现为连接到主机接口总线的可单独寻址存储器装置。因此,第二虚拟机可以将第二IO操作直接发送到第二虚拟存储器控制器。第一IO操作也可以是例如从存储器组件读取数据的读取请求或将数据写入存储器组件的写入请求。

在操作730,处理逻辑确定与第一虚拟存储器控制器相关联的第一服务类别参数值和与第二虚拟存储器控制器相关联的第二服务类别参数值。在一个实施例中,每个虚拟存储器控制器具有可存储在例如本地存储器119中的相关联服务类别参数值。当接收到指向特定虚拟存储器控制器的IO操作时,调度器114可以识别对应服务类别参数值。服务类别参数值可以定义给定IO操作或后台操作相对于存储器子系统中其它操作的优先级执行顺序。例如,虚拟存储器控制器的服务类别参数值可以指定调度器114将如何相对于来自其它物理功能的现有IO操作、来自其它物理功能的新IO操作、现有后台操作和新后台操作调度指向虚拟存储器控制器的IO操作。

在操作740,处理逻辑接收待在存储器组件上执行的后台操作。后台操作可以包含例如垃圾收集操作、媒体完整性检查或扫描、耗损均衡操作等。后台操作的优先级通常低于主机IO操作,但最终必须执行某些后台操作,以便在达到相关联阈值时,调度器114可以将这些后台操作优先于主机IO操作。

在操作750,处理逻辑鉴于第一服务类别参数值和第二服务类别参数值调度对存储器系统的存储器组件上的第一IO操作和第二IO操作以及相对于第一IO操作和第二IO操作的执行调度后台操作的执行。如上所述,调度器114可以将第一服务类别参数值与第二服务类别参数值进行比较,根据比较确定哪个虚拟存储器控制器将优先,然后根据关于表1阐述的指令调度来自所述虚拟存储器控制器的IO操作。

图8示出计算机系统800的实例机器,其中可以执行指令集,用于使机器执行本文讨论的任何一或多种方法。在一些实施例中,计算机系统800可对应于主机系统(例如,图1的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110),或可用于执行控制器的操作(例如,执行操作系统以执行与图1的NVMe虚拟化模块113或调度器114相对应的操作)。在替代性实施例中,机器可连接(例如联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的容量进行操作。

机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的指令集的任何机器。另外,尽管示为单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多)个指令集以进行本文中所论述的任何一或多种方法。

实例计算机系统800包含处理装置802、主存储器804(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器806(例如,快闪存储器、静态随机存取存储器(SRAM)等),以及数据存储系统818,其经由总线830彼此通信。

处理装置802表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置802也可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器或类似物。处理装置802配置成执行指令826,用于执行本文讨论的操作和步骤。计算机系统800可以进一步包含网络接口装置808,以通过网络820进行通信。

数据存储系统818可以包含机器可读存储媒体824(也称为计算机可读媒体),其上存储一或多个指令集826或体现本文描述的任何一或多种方法或功能的软件。指令826还可以在计算机系统800执行期间完全或至少部分地驻留在主存储器804和/或处理装置802内,主存储器804和处理装置802也构成机器可读存储媒体。机器可读存储媒体824、数据存储系统818和/或主存储器804可对应于图1的存储器子系统110。

在一个实施例中,指令826包含实施与图1的NVMe虚拟化模块113或调度器114相对应的功能的指令。虽然机器可读存储媒体824在实例实施例中示出为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集合且致使机器执行本公开的任何一或多种方法的任何媒体。术语“计算机可读存储媒体”因此应被认为包含但不限于固态存储器、光学媒体和磁性媒体。

已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其它技术人员的方式。在本文中,且一般将算法构想为产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较以及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等等有时是便利的。

然而,应牢记,所有这些和类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可以指将计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据操控和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理数量的其它数据的计算机系统或类似电子计算装置的动作和过程。

本公开还涉及用于执行本文中的操作的设备。这一设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这种计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、CD-ROM以及磁性光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。

本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示的程序一起使用,或可以证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。

本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以进行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。

在前述说明书中,本公开的实施例已经参照其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书及图式。

26页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:电子装置及其控制方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类