CN108351813B - 用于在非易失性存储器快速(NVMe)控制器的不同网络地址上使能个别的NVMe输入/输出(IO)队列的方法和装置 - Google Patents
用于在非易失性存储器快速(NVMe)控制器的不同网络地址上使能个别的NVMe输入/输出(IO)队列的方法和装置 Download PDFInfo
- Publication number
- CN108351813B CN108351813B CN201680067899.6A CN201680067899A CN108351813B CN 108351813 B CN108351813 B CN 108351813B CN 201680067899 A CN201680067899 A CN 201680067899A CN 108351813 B CN108351813 B CN 108351813B
- Authority
- CN
- China
- Prior art keywords
- logic
- controller
- backend
- target
- nvme
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Retry When Errors Occur (AREA)
- Hardware Redundancy (AREA)
- Debugging And Monitoring (AREA)
- Information Transfer Systems (AREA)
Abstract
描述了涉及在NVMe(非易失性存储器快速)控制器的不同网络地址上使能个别的NVMe IO(输入输出或I/O)队列的方法和装置。在一个实施例中,多个后端控制器逻辑被耦合到多个非易失性存储器设备。一个或多个虚拟控制器目标逻辑(耦合到多个后端控制器逻辑)向多个后端控制器逻辑中的第一后端控制器逻辑传输来自多个IO队列的第一部分的数据。一个或多个虚拟控制器目标逻辑向多个后端控制器逻辑中的第二后端控制器逻辑传输来自多个IO队列的第二部分的数据。还公开并且要求保护了其它实施例。
Description
相关申请
本申请按照35 U.S.C. 365(c)要求于2015年12月21日提交的美国申请No. 14/976,949的优先权。所述申请No. 14/976,949由此通过引用以其整体被并入本文中。
技术领域
本公开一般地涉及电子器件的领域。更特别地,一些实施例一般地涉及在NVMe(非易失性存储器快速)控制器的不同网络地址上使能个别的NVMe输入输出(“IO”或“I/O”)队列。
背景技术
一般地,用于在计算系统中存储数据的存储器可以是易失性的(用于存储易失性信息)或者非易失性的(用于存储持久的信息)。存储在易失性存储器中的易失性数据结构一般地用于在程序的运行时间期间被需要用于支持程序的功能的临时的或中间信息。另一方面,存储在非易失性(或持久的存储器)中的持久的数据结构超过程序的运行时间是可用的并且可以被再使用。
随着计算能力在处理器中被增强,一个忧虑是可以由处理器以其来访问存储器的速度。例如,为了处理数据,处理器可能需要首先从存储器取出数据。在数据处理的完成之后,结果可能需要被存储在存储器中。因此,存储器访问速度可以对总体系统性能具有直接影响。
另一个重要的考虑是功耗。例如,在依赖于电池功率的移动计算设备中,非常重要的是减少功耗以虑及设备在移动时操作。功耗对于非移动计算设备(诸如计算机服务器,例如,在数据中心中使用等)而言也是重要的,因为过量的功耗可能增加成本(例如,由于附加的功率使用、增加的冷却要求等)、缩短部件寿命、限制设备可以在其处被使用的位置等。
又一个重要的考虑是执行存储技术方案的可靠性,因为机械磁盘驱动器具有可能损坏的电机和(一个或多个)磁盘头,而SSD(固态驱动器)没有机械移动部分并且可以更加可读地幸免于(survive)意外的碰撞和移动。
为此目的,一些计算设备正越来越多地利用SSD来提供非易失性存储器(NVM)存储技术方案。
附图说明
参照附图提供详细描述。在图中,参考编号的最左边的(一个或多个)数位标识其中该参考编号首次出现的图。相同的参考编号在不同的图中的使用指示类似或相同的条目。
图1和4-6图示了可以被利用来实现在本文中讨论的各种实施例的计算系统的实施例的框图。图1A图示了图1的系统的另一个实施例。
图2图示了根据实施例的固态驱动器的各种部件的框图。
图3A、3B和3C图示了根据一些实施例的用于NVMe IO队列的各种配置。
具体实施方式
在以下的描述中,阐述了多个具体细节以便提供对各种实施例的透彻理解。然而,在没有具体细节的情况下可以实施各种实施例。在其他实例中,尚未详细地描述公知的方法、过程、部件和电路以便不模糊特定实施例。此外,可以使用各种构件来执行实施例的各种方面,诸如集成半导体电路(“硬件”)、组织到一个或多个程序中的计算机可读指令(“软件”)、或者硬件和软件的某组合。出于本公开的目的,对“逻辑”的引用应当意味着硬件、软件、固件或者其某组合。
如以上讨论的那样,一些计算系统可以利用NVM设备。根据NVMe(非易失性存储器快速)规范(诸如NVM快速规范,修订本1.2a,2015年10月23日)提供一种类型的非易失性存储器(NVM)。NVMe规范限定了各种条目(诸如寄存器接口、命令集和特征集)以允许对固态驱动器(SSD)的访问,所述固态驱动器(SSD)通过外围部件互连快速(PCIe)总线(例如,根据PCI快速基础规范,修订本3.1,2014年11月等)连接到计算机。
为此目的,一些实施例涉及用于在NVMe控制器的不同网络地址上使能个别的NVMe(非易失性存储器快速)IO(输入输出或I/O)队列的方法和装置。例如,网络存储技术方案可以通过允许经由单个(例如,虚拟的或物理的)NVMe控制器对多个NVMe设备(其可以通过计算机网络被耦合)的访问来改进。
更具体地,在一些NVMe实现中,NVMe队列被束缚到物理NVMe设备的控制器,并且在设备驱动软件中创建的NVMe队列可以被束缚到针对PCIe NVMe设备在单个硬件控制器中实现的NVMe队列。尽管这样,网络结构(诸如RDMA(远程直接存储器访问))不一定需要该约束来针对NVMe控制器实现NVMe队列以传递数据。可以应用实施例以移除该关系并且相对于NVMe设备上的物理NVMe队列创建NVMe队列的更高抽象水平。因此,该更高抽象NVMe目标实现可以虚拟地支持/提供具有用于该单个控制器的一些数量的IO队列的完整的NVMe控制器,但是实际上该虚拟表示中的那些IO队列的子集可以被映射到一个物理NVMe控制器和所述物理NVMe控制器的IO队列。此外,该子集的其余部分可以被映射到另一个物理NVMe控制器和所述另一个物理NVMe控制器的IO队列。另外,诸如admin(或管理)队列的NVMe队列可以被配置为广播类型配置,例如,控制巨大的NVMe存储数据网络中的多个NVMe控制器。
因此,一些实施例允许在NVMe队列级处经由网络连接性对虚拟或物理存储控制器的远程访问,以及通告可配置的NVMe队列设置(例如,NVMe队列设置是静态的还是动态的)。甚至可以提供在队列级处初始化或配置NVMe网络和所述NVMe网络的设备的机制。此外,为了冗余性、性能优化和/或其他尚待发现的益处,可以提供不同的控制器主机、虚拟或物理控制器目标和物理存储介质之间的NVMe队列的静态的和动态的可配置性和连接性。
此外,即使参照非易失性存储器(NVM)或NVMe一般地讨论了一些实施例,实施例也不限于单个类型的NVM,并且任何类型的非易失性存储器或不同的NVM类型的组合(例如,以诸如固态驱动器(或SSD,例如包括NAND和/或NOR类型的存储器单元)的格式,或者诸如存储器驱动器、闪存驱动器等的可用于存储的其他格式)可以被使用。存储介质(无论以SSD格式还是其他方式使用)可以是任何类型的存储介质,包括例如以下中的一个或多个:纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、磁阻随机存取存储器(MRAM)、闪存、自旋力矩转移随机存取存储器(STTRAM)、电阻随机存取存储器、字节可寻址3维交叉点存储器、PCM(相变存储器)等。另外,可以使用由功率储备(诸如电池或电容)支持以保持数据的诸如动态RAM(DRAM)的任何类型的随机存取存储器(RAM)。因此,在各种实施例中,甚至能够在功率故障或(一个或多个)功率中断期间保持数据的易失性存储器可以被用于存储。
在本文中讨论的技术可以在各种计算系统(例如,包括诸如台式计算机、工作站、服务器、机架系统等的非移动计算设备,以及诸如智能电话、平板计算机、UMPC(超移动个人计算机)、膝上型计算机、UltrabookTM计算设备、智能手表、智能眼镜、智能手镯等的移动计算设备)中提供,包括参照图1-6讨论的那些。更特别地,图1图示了根据实施例的计算系统100的框图。系统100可以包括一个或多个处理器102-1到102-N(一般地在本文中被称为“多个处理器102”或“处理器102”)。处理器102可以经由互连或总线104通信。每个处理器可以包括各种部件,为了清楚起见,其中的一些部件仅参照处理器102-1来讨论。相应地,其余处理器102-2到102-N中的每个可以包括参照处理器102-1讨论的相同或相似的部件。
在实施例中,处理器102-1可以包括一个或多个处理器核106-1到106-M(在本文中被称为“多个核106”,或者更一般地被称为“核106”)、处理器高速缓存108(在各种实施例中其可以是共享的高速缓存或者私有的高速缓存)和/或路由器110。处理器核106可以在单个集成电路(IC)芯片上实现。此外,芯片可以包括一个或多个共享的和/或私有的高速缓存(诸如处理器高速缓存108)、总线或互连(诸如总线或互连112)、逻辑120、存储器控制器(诸如参照图4-6讨论的那些)或其他部件。
在一个实施例中,路由器110可以被用于在处理器102-1和/或系统100的各种部件之间通信。此外,处理器102-1可以包括多于一个路由器110。此外,众多的路由器110可以处于通信中以使得数据能够在处理器102-1之内或之外的各种部件之间路由。
处理器高速缓存108可以存储由处理器102-1的一个或多个部件(诸如核106)利用的数据(例如,包括指令)。例如,处理器高速缓存108可以将存储在存储器114中的数据本地地高速缓存用于由处理器102的部件的更快访问。如在图1中示出的那样,存储器114可以经由互连104与处理器102通信。在实施例中,处理器高速缓存108(其可以是共享的)可以具有各种级,例如,处理器高速缓存108可以是中级高速缓存和/或最后级高速缓存(LLC)。另外,核106中的每个可以包括1级(L1)处理器高速缓存(116-1)(一般地在本文中被称为“L1处理器高速缓存116”)。处理器102-1的各种部件可以直接地、通过总线(例如,总线112)和/或存储器控制器或中枢与处理器高速缓存108通信。
如在图1中示出的那样,存储器114可以通过存储器控制器120被耦合到系统100的其他部件。存储器114包括易失性存储器,并且可以被可互换地称为主存储器。即使存储器控制器120被示出为被耦合在互连104与存储器114之间,存储器控制器120也可以位于系统100中的别处。例如,在一些实施例中,存储器控制器120或所述存储器控制器120的部分可以在处理器102中的一个内提供。
系统100还包括非易失性(NV)存储(或非易失性存储器(NVM),诸如根据用于通过PCIe访问NVM的NVMe协议操作的NVM)设备,诸如经由SSD控制器逻辑125耦合到互连104的SSD 130。因此,逻辑125可以控制由系统100的各种部件对SSD 130的访问。此外,即使在图1中逻辑125被示出为被直接地耦合到互连104,逻辑125也可以经由存储总线/互连(诸如SATA(串行高级技术附件)总线、外围部件互连(PCI)(或PCI快速(PCIe)接口)等)与系统100的一个或多个其他部件通信(例如,其中存储总线经由比如总线桥、芯片组(诸如参照图2和4-6讨论的)等的某其他逻辑被耦合到互连104)。此外,在各种实施例中,逻辑125可以被并入到存储器控制器逻辑(诸如参照图4-6讨论的那些)中或者在相同的集成电路(IC)设备上提供(例如,在与SSD 130相同的IC设备上或者在与SSD 130相同的外壳中提供)。系统100还可以包括其他类型的非易失性存储设备,诸如参照图4-6讨论的那些,包括例如硬盘驱动器等。
此外,逻辑125和/或SSD 130可以被耦合到一个或多个传感器(未示出)以接收用于指示一个或多个传感器的状态或者由一个或多个传感器检测的值的信息(例如,以一个或多个比特或信号的形式)。可以接近于系统100的部件(或者在本文中讨论的其他计算系统,诸如例如参照包括图4-6的其他图讨论的那些)提供这些(一个或多个)传感器,所述系统100的部件包括核106、互连104或112、在处理器102之外的部件、SSD 130、SSD总线、SATA总线、PCIe总线、逻辑125等,以感测影响系统/平台的功率/热行为的各种因素中的变化,诸如温度、操作频率、操作电压、功耗和/或核间通信活动性等。
图1A图示了图1的系统100的另一个实施例。如在图1A中示出的那样,SSD控制器逻辑125可以被耦合到网络结构,例如经由RDMA网络技术(例如,InfiniBand®)或者光纤信道、以太网、OmniPath或Omni-Path(例如,由Intel®公司提供)等被耦合到网络结构。更特别地,计算机存储设备160(包括逻辑125和SSD 130)经由网卡150被耦合到互连104或系统100。网卡150可以是任何类型的网络通信接口,诸如参照图4、5和/或6讨论的那些。另外,在实施例中,计算机存储设备160可以在另一个计算机系统中提供。此外,计算机存储设备160可以包括(或以其他方式具有对其的访问)网卡150以通过网络通信。
图2图示了根据实施例的SSD的各种部件的框图。虽然SSD控制器逻辑125可以促进SSD 130和其他系统部件之间经由接口250(例如,SATA、SAS、PCIe、OmniPath、InfiniBand等)的通信,但是控制器逻辑282促进逻辑125和在SSD 130内的部件之间的通信(或者在SSD130内的部件之间的通信)。因此,在一些实施例中,逻辑125是操作SSD 130的可选的外部控制器或者设备驱动如在图2中示出的那样,控制器逻辑282包括一个或多个处理器核或处理器284以及存储器控制器逻辑286,并且被耦合到随机存取存储器(RAM)288、固件存储设备290和一个或多个存储器模块或管芯292-1至292-n(其可以包括NAND闪存、NOR闪存、三维交叉点存储器或其他类型的非易失性存储器)。逻辑282还可以管理一个或多个IO队列,诸如参照图3A-3C讨论的那些。存储器模块292-1至292-n经由一个或多个存储器信道或总线被耦合到存储器控制器逻辑286。参照图1-6讨论的操作中的一个或多个可以由图2的部件中的一个或多个来执行,例如,处理器284和/或控制器282可以对写到存储器模块292-1至292-n或者从存储器模块292-1至292-n读取的数据压缩/解压缩(或以其他方式引起压缩/解压缩)。另外,图1-6的操作中的一个或多个可以被编程到固件290中。此外,在一些实施例中,可以使用混合驱动器代替SSD 130(其中存在多个存储器模块/介质292-1至292-n,诸如硬盘驱动器、闪存或者在本文中讨论的其他类型的非易失性存储器)。
如上所述,一些实施例针对新颖网络存储配置在NVMe队列级处提供了数据网络带宽和/或连接的更细粒度的配置控制,以及甚至在以下中的一个或多个中的潜在优势:性能、带宽、正确性、维护、针对这些质量的动态按需调整和/或测试技术。例如,网络结构上的NVMe可以采取结构不可知方法,因为主机和目标之间(或者目标到物理存储介质)的任何连接可以利用任何支持的网络结构类型。使用该结构技术允许特定NVMe队列到物理NVMe控制器的松耦合,使能代替在物理计算机内的PCIe总线配置上找到的NVMe控制器级在NVMe队列级处的新颖网络配置的可能性。
此外,该类型的配置的消费者仍然可以经由正常的操作系统实体访问NVMe设备,认为其正在通过具有多个NVMe队列的单个NVMe控制器访问单个NVMe设备。但是实际上,其数据操作可能被引导到多个NVMe设备,例如,经由耦合在一个NVMe控制器表示(例如,物理或虚拟NVMe控制器)和其他NVMe控制器表示(例如,也是物理或虚拟的)之间的NVMe队列的互连性的网格。
图3A、3B和3C图示了根据一些实施例的用于NVMe IO队列的各种配置。在本文中讨论的各种部件(例如,参照图1、2、4、5和/或6)可以被用于执行参照图3A、3B和3C讨论的操作(包括例如逻辑125和/或SSD 130)。
参照图3A,示出了用于NVMe虚拟控制器目标的IO队列网络配置。如图示的那样,主机系统300经由将NVMe主机节点逻辑303耦合到NVMe虚拟控制器目标逻辑304的一个或多个队列(例如,NVMe admin队列0、一个或多个NVMe IO队列1、2等)与目标系统302通信。在一些实施例中,NVMe主机节点逻辑(例如,逻辑303)、NVMe虚拟控制器目标逻辑和NVMe虚拟目标控制器逻辑(例如,参照图3A-3C讨论的逻辑304、逻辑304-1和/或304-2)和/或后端NVMe控制器逻辑中的一个或多个可以被提供为在本文中参照图1、2、4、5和/或6讨论的逻辑125的部分。因此,图3A-3C的后端NVMe控制器1和2可以被耦合到(或并入到其中)诸如参照图1、2、4、5和/或6讨论的SSD 130,和/或后端NVMe控制器1和2可以被耦合到(或并入到其中)SSD存储技术方案,其中两个NVMe后端控制器是(例如,单个)物理SSD产品(还称为“双头”SSD)的部分。
主机系统300可以在操作系统级处暴露一个NVMe磁盘资源,因为所述主机系统300认为仅一个NVMe控制器被耦合到所述主机系统300。NVMe虚拟控制器304可以被配置成将IO队列的大约一半(或某其他部分)发送/引导到一个NVMe控制器(例如,后端NVMe控制器1)并且将其余的部分发送/引导到另一个NVMe控制器(例如,后端NVMe控制器2)。这还虑及数据复制和其他特征。替代地,虚拟控制器304可以动态地配置IO队列从一个控制器路由到另一个控制器,例如,如果控制器是带宽约束的或者虚拟控制器304检测到与一个控制器相关联的IO队列是断裂的或者以其他方式不完全地或部分地功能的(例如,基于与某阈值的比较)。
图3A还示出了被选择性地引导到两个图示的后端NVMe控制器1和2中的一个的样本主机IO队列。另外,可以基于来自主机的管理队列信息将NVMe管理命令(诸如创建提交/完成IO队列、标识控制器等)从NVMe虚拟控制器逻辑304发送到后端NVMe控制器。虚拟目标可以包括用于基于目标针对其来配置的操作模式来做出决定的逻辑,所述决定关于哪个后端控制器最终接收admin命令以及如何(例如,诸如点到点、广播等的操作模式)接收admin命令。
参照图3B,针对IO队列网络示出了配置,其中NVMe主机队列连接分裂在驻留在分离的网络上的多个NVMe目标中。在图3B中,为了示例的目的,示出了IPv4(因特网协议版本4)地址,但是在各种实施例中可以使用任何类型的网络结构,包括例如光纤信道或者Omnipath(或者Omni-Path)结构(例如,由Intel®公司提供)。另外,两个目标系统1和2(302-1和302-2)包括后端NVMe控制器1,表示该后端NVMe控制器1是用于每个目标系统的第一(或“1)NVMe存储设备。然而,每个目标系统不限于单个物理后端NVMe控制器,并且多于一个后端NVMe控制器可以被提供用于目标系统。
如在图3B中示出的那样,在该实施例中,主机系统300仅包括一个NVMe主机节点逻辑303。相应地,主机具有在OS级处暴露的仅一个NVMe磁盘资源。所述主机的NVMe队列以广播状配置来设置,例如,其中两个IO队列去往NVMe目标并且一个NVMe admin队列被广播到两个目标。在实施例中,在NVMe主机中可以存在逻辑以处理针对单个NVMe admin提交分组从多个NVMe目标接收的分离的完成分组。
虚拟NVMe控制器目标逻辑304-1/304-2可以被耦合到具有由主机配置/分配的个别的NVMe队列的不同网络路径。主机NVMe节点303可以具有逻辑,所述逻辑确定动态地重新配置NVMe队列设置,例如,基于某网络的带宽问题、NVMe队列的故障、NVMe控制器(虚拟或后端)的故障或者网络本身的故障来确定动态地重新配置NVMe队列设置。
参照图3C,针对在多个连接级之上提供的NVMe队列连接示出了配置。例如,主机系统300经由一个或多个计算机系统与一个或多个目标通信。如示出的那样,每个计算机系统(标记为计算机系统1、计算机系统2等)包括其自身的NVMe虚拟目标控制器逻辑以与主机系统300通信(例如,通过将NVMe命令和数据封装在通过网络传输的分组中),以及其自身的NVMe主机节点逻辑以与对应的目标系统(例如,302-1/302-2)通信。继而,每个目标系统包括诸如参照图3A和/或3B讨论的NVMe虚拟控制器目标逻辑(例如,304-1/304-2)。
在图3C的实施例中,每个NVMe队列在OS级处被暴露为磁盘资源。可以存在主机逻辑,使得一个用户空间线程可以正在控制某类型的命令与控制用户空间NVMe主机节点程序中的一个队列。在该实施例中,对于多个NVMe控制器的命令与控制类型环境,网络交换机350可以被用于传输或广播NVMe admin队列命令(封装在要通过网络来传输/广播的分组中,所述分组例如光纤信道分组)。
在主机系统可以检索的目标系统中的每个上可以存在文件的副本。在图3C中示出的NVMe队列的多网络路径可以允许文件的片或部分采取无论什么路径以快速到达主机系统处。主机系统然后将文件的接收的部分(例如,经由网络控制器接收)重新组装成(一个或多个)目标系统上的文件的完整副本。
相应地,在一些实施例中,NVMe主机-目标模型提供了用于每个基于目标的NVMe控制器的一个NVMe管理队列和多个NVMe IO队列。继而,主机系统具有对NVMe控制器的访问和/或与NVMe控制器耦合。此外,实施例建立了NVMe队列,使得每个队列可以经由独立的和/或可配置的网络路由和附着点(参见例如图3C)被耦合在主机、目标和远程的基于NVMe的物理存储介质之间。这导致主机系统和所述主机系统的(一个或多个)分配的存储资源之间的冗余的和/或可重新配置的访问。这还可以导致使能可用存储带宽的更高效的使用以及新颖计算机存储网络配置,这可以导致冗余性、正确性方面的益处和/或其他未实现但是积极的益处。
此外,用于每个NVMe队列的路由可以基于主机使用模型和/或目标资源来优化。这继而允许针对虚拟存储目标配置NVMe队列连接性用于对物理存储介质的最佳访问。如在本文中讨论的那样,“路由”一般地指的是单个NVMe IO队列可以在主机系统与目标系统之间采取的(例如,网络)路径。此外,取决于在主机-目标耦合之下的网络结构,在网络硬件和/或路由故障的事件中提供网络设备失效备援(failover),这是可能的。
图4图示了根据实施例的计算系统400的框图。计算系统400可以包括经由互连网络(或总线)404通信的一个或多个中央处理单元(CPU)402或者处理器。处理器402可以包括通用处理器、网络处理器(其处理通过计算机网络403传送的数据)、应用处理器(诸如在蜂窝电话、智能电话等中使用的那些)或者其他类型的处理器(包括精简指令集计算机(RISC)处理器或者复杂指令集计算机(CISC))。可以利用各种类型的计算机网络403,包括有线(例如,以太网、千兆位、光纤等)或者无线网络(诸如蜂窝,包括3G(第三代蜂窝电话技术或者第3代无线格式(UWCC))、4G(第四代蜂窝电话技术)、4G高级型、低功率嵌入式(LPE)、长期演进(LTE)、LTE高级型、低功率嵌入式(LPE)等)。此外,处理器402可以具有单个或多个核设计。具有多个核设计的处理器402可以将不同类型的处理器核集成在相同的集成电路(IC)管芯上。另外,具有多个核设计的处理器402可以被实现为对称的或者不对称的多处理器。
在实施例中,处理器402中的一个或多个可以与图1的处理器102相同或类似。例如,处理器402中的一个或多个可以包括核106中的一个或多个和/或处理器高速缓存108。另外,参照图1-3F讨论的操作可以由系统400的一个或多个部件执行。
芯片组406还可以与互连网络404通信。芯片组406可以包括图形和存储器控制中枢(GMCH)408。GMCH 408可以包括与存储器114通信的存储器控制器410(在实施例中,所述存储器控制器410可以与图1的存储器控制器120相同或类似)。存储器114可以存储数据,包括由CPU 402或者包括在计算系统400中的任何其他设备执行的指令的序列。另外,系统400包括逻辑125和/或SSD 130(其可以经由总线422、经由诸如404的其他互连被耦合到系统400,其中在各种实施例中逻辑125被并入到芯片组406等中)。在一个实施例中,存储器114可以包括一个或多个易失性存储(或存储器)设备,诸如随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)或者其他类型的存储设备。非易失性存储器也可以被利用,诸如硬盘驱动器、闪存等,包括在本文中讨论的任何NVM。附加的设备可以经由互连网络404通信,所述附加的设备诸如多个CPU和/或多个系统存储器。
GMCH 408还可以包括与图形加速器416通信的图形接口414。在一个实施例中,图形接口414可以经由加速的图形端口(AGP)或者外围部件互连(PCI)(或者PCI快速(PCIe)接口)与图形加速器416通信。在实施例中,显示器417(诸如平板显示器、触摸屏等)可以通过例如信号转换器与图形接口414通信,所述信号转换器将存储在诸如视频存储器或系统存储器的存储设备中的图像的数字表示转换成由显示器解释和显示的显示信号。在由显示器417解释并且随后在显示器417上显示之前,由显示设备产生的显示信号可以穿过各种控制设备。
中枢接口418可以允许GMCH 408和输入/输出控制中枢(ICH)420通信。ICH 420可以提供到与计算系统400通信的I/O设备的接口。ICH 420可以通过外围桥(或控制器)424与总线422通信,所述外围桥(或控制器)424诸如外围部件互连(PCI)桥、通用串行总线(USB)控制器或者其他类型的外围桥或控制器。桥424可以提供CPU 402与外围设备之间的数据路径。可以利用其他类型的拓扑。另外,多个总线可以与ICH 420通信,例如,通过多个桥或控制器与ICH 420通信。此外,在各种实施例中,与ICH 420通信的其他外围设备可以包括集成驱动器电子器件(IDE)或者(一个或多个)小型计算机系统接口(SCSI)硬盘驱动器、(一个或多个)USB端口、键盘、鼠标、(一个或多个)并行端口、(一个或多个)串行端口、(一个或多个)软盘驱动器、数字输出支持(例如,数字视频接口(DVI))或者其他设备。
总线422可以与音频设备426、一个或多个磁盘驱动器428和网络接口设备430(其与计算机网络403通信,例如,经由有线或无线接口与计算机网络403通信)通信。如示出的那样,网络接口设备430可以被耦合到天线431以与网络403无线地(例如,经由电气与电子工程师协会(IEEE)802.11接口(包括IEEE 802.11a/b/g/n/ac等)、蜂窝接口、3G、4G、LPE等)通信。其他设备可以经由总线422通信。另外,在一些实施例中,各种部件(诸如网络接口设备430)可以与GMCH 408通信。此外,处理器402和GMCH 408可以被组合以形成单个芯片。此外,在其他实施例中,图形加速器416可以被包括在GMCH 408内。
此外,计算系统400可以包括易失性和/或非易失性存储器(或存储设备)。例如,非易失性存储器可以包括以下中的一个或多个:只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电EPROM(EEPROM)、磁盘驱动器(例如,428)、软盘、压缩盘ROM(CD-ROM)、数字通用盘(DVD)、闪存、磁光盘、或者能够存储电子数据(例如,包括指令)的其他类型的非易失性机器可读介质。
图5图示了根据实施例的以点到点(PtP)配置来布置的计算系统500。特别地,图5示出了一种系统,其中处理器、存储器和输入/输出设备通过多个点到点接口来互连。参照图1-4讨论的操作可以由系统500的一个或多个部件执行。
如在图5中图示的那样,系统500可以包括若干个处理器,为了清楚起见,示出了其中的仅两个处理器502和504。处理器502和504每个可以包括本地存储器控制器中枢(MCH)506和508以使能与存储器510和512的通信。存储器510和/或512可以存储各种数据,诸如参照图1和/或4的存储器114讨论的那些。另外,在一些实施例中,MCH 506和508可以包括存储器控制器120。此外,系统500包括逻辑125和/或SSD 130(其可以是在网络403上可访问的,或者替代地,经由总线540/544、经由到(一个或多个)处理器502/504或芯片组520的其他点到点连接耦合到系统500,其中在各种实施例中,逻辑125被并入到芯片组520等中)。
在实施例中,处理器502和504可以是参照图4讨论的处理器402中的一个。处理器502和504可以分别使用PtP接口电路516和518经由点到点(PtP)接口514交换数据。另外,处理器502和504每个可以使用点到点接口电路526、528、530和532经由个别的PtP接口522和524与芯片组520交换数据。芯片组520可以进一步例如使用PtP接口电路537经由高性能图形接口536与高性能图形电路534交换数据。如参照图4讨论的那样,在一些实施例中,图形接口536可以被耦合到显示设备(例如,显示器417)。
在一个实施例中,图1的核106中的一个或多个和/或处理器高速缓存108可以位于处理器502和504(未示出)内。然而,其他实施例可以存在于图5的系统500内的其他电路、逻辑单元或设备中。此外,其他实施例可以遍及在图5中图示的若干电路、逻辑单元或设备分布。
芯片组520可以使用PtP接口电路541与总线540通信。总线540可以具有与其通信的一个或多个设备,诸如总线桥542和I/O设备543。经由总线544,总线桥542可以与其他设备通信,所述其他设备诸如键盘/鼠标545、通信设备546(诸如调制解调器、网络接口设备或者如参照网络接口设备430讨论的例如包括经由天线431可以与计算机网络403通信的其他通信设备)、音频I/O设备和/或数据存储设备548。数据存储设备548可以存储代码549,所述代码549可以由处理器502和/或504执行或传递。
在一些实施例中,在本文中讨论的部件中的一个或多个可以被实现为片上系统(SOC)设备。图6图示了根据实施例的SOC封装的框图。如在图6中图示的那样,SOC 602包括一个或多个中央处理单元(CPU)核620、一个或多个图形处理器单元(GPU)核630、输入/输出(I/O)接口640和存储器控制器642。SOC封装602的各种部件可以被耦合到诸如在本文中参照其他图讨论的互连或总线。另外,SOC封装602可以包括更多或更少的部件,诸如在本文中参照其他图讨论的那些。此外,SOC封装620的每个部件可以包括一个或多个其他部件,例如,如在本文中参照其他图讨论的那样。在一个实施例中,SOC封装602(以及所述SOC封装602的部件)在一个或多个集成电路(IC)管芯上提供,例如,所述SOC封装602(以及所述SOC封装602的部件)被封装到单个半导体设备上。
如在图6中图示的那样,SOC封装602经由存储器控制器642被耦合到存储器660(所述存储器660可以与在本文中参照其他图讨论的存储器类似或相同)。在实施例中,存储器660(或存储器660的部分)可以被集成在SOC封装602上。
I/O接口640可以被耦合到一个或多个I/O设备670,例如经由诸如在本文中参照其他图讨论的互连和/或总线被耦合到一个或多个I/O设备670。(一个或多个)I/O设备670可以包括以下中的一个或多个:键盘、鼠标、触摸板、显示器、图像/视频捕获设备(诸如照相机或摄像录像机/视频记录仪)、触摸屏、扬声器或者诸如此类。此外,在实施例中,SOC封装602可以包括/集成条目125和/或130。替代地,条目125和/或130可以在SOC封装602之外提供(即,作为分立的逻辑)。
以下示例与其他的实施例相关。示例1包括一种装置,所述装置包括:多个后端控制器逻辑,其耦合到多个非易失性存储器设备;以及一个或多个虚拟控制器目标逻辑,其耦合到多个后端控制器逻辑,用于向多个后端控制器逻辑中的第一后端控制器逻辑传输来自要从主机系统传输的多个输入输出(IO)队列的第一部分的数据,其中一个或多个虚拟控制器目标逻辑用于向多个后端控制器逻辑中的第二后端控制器逻辑传输来自多个IO队列的第二部分的数据。示例2包括示例1的装置,其中多个IO队列的第一部分和第二部分中的每个用于包括多个IO队列的大约一半。示例3包括示例1的装置,其中一个或多个虚拟控制器目标逻辑用于向第一后端控制器逻辑和第二后端控制器逻辑两者传输来自管理队列的信息。示例4包括示例3的装置,其中一个或多个虚拟控制器目标逻辑用于基于要从管理队列提供的信息向第一或第二后端控制器逻辑传输一个或多个管理命令。示例5包括示例1的装置,其中目标系统用于包括一个或多个虚拟控制器目标逻辑和以下中的至少一个:第一后端控制器逻辑和第二后端控制器逻辑。示例6包括示例1的装置,其中第一目标系统用于包括来自一个或多个虚拟控制器逻辑的第一虚拟控制器目标逻辑以及第一后端控制器逻辑,其中第二目标系统用于包括来自一个或多个虚拟控制器逻辑的第二虚拟控制器目标逻辑以及第二后端控制器逻辑。示例7包括示例6的装置,其中第一虚拟控制器目标逻辑用于向多个后端控制器逻辑中的第一后端控制器逻辑传输来自多个IO队列的第一部分的数据,其中第二虚拟控制器目标逻辑用于向多个后端控制器逻辑中的第二后端控制器逻辑传输来自多个IO队列的第二部分的数据。示例8包括示例6的装置,其中,第一虚拟控制器目标逻辑和第二虚拟控制器目标逻辑用于向第一后端控制器逻辑和第二后端控制器逻辑传输来自管理队列的信息。示例9包括示例6的装置,其中,第一目标系统和第二目标系统用于通过一个或多个计算机系统被耦合到主机系统。示例10包括示例9的装置,所述装置包括网络交换机逻辑,用于向第一目标系统和第二目标系统传输来自要从主机系统接收的管理队列的信息。示例11包括示例1的装置,其中多个非易失性存储器设备用于包括多个非易失性存储器快速(NVMe)设备。示例12包括示例1的装置,其中,非易失性存储器用于包括以下中的一个或多个:纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、磁阻随机存取存储器(MRAM)、闪存、自旋力矩转移随机存取存储器(STTRAM)、电阻随机存取存储器、字节可寻址3维交叉点存储器、PCM(相变存储器)以及由功率储备支持以在功率故障或功率中断期间保持数据的易失性存储器。示例13包括示例1的装置,进一步包括至少一个网络接口,用于与主机系统传送数据。
示例14包括一种方法,所述方法包括:在一个或多个虚拟控制器目标逻辑处向多个后端控制器逻辑中的第一后端控制器逻辑传输来自多个输入输出(IO)队列的第一部分的数据;以及在一个或多个虚拟控制器目标逻辑处向多个后端控制器逻辑中的第二后端控制器逻辑传输来自多个IO队列的第二部分的数据,其中所述多个IO队列从主机系统传输,其中多个后端控制器逻辑被耦合到多个非易失性存储器设备。示例15包括示例14的方法,其中多个IO队列的第一部分和第二部分中的每个包括多个IO队列的大约一半。示例16包括示例14的方法,进一步包括一个或多个虚拟控制器目标逻辑向第一后端控制器逻辑和第二后端控制器逻辑两者传输来自管理队列的信息。示例17包括示例14的方法,其中第一目标系统包括来自一个或多个虚拟控制器逻辑的第一虚拟控制器目标逻辑以及第一后端控制器逻辑,其中第二目标系统包括来自一个或多个虚拟控制器逻辑的第二虚拟控制器目标逻辑以及第二后端控制器逻辑。示例18包括示例14的方法,其中多个非易失性存储器设备包括多个非易失性存储器快速(NVMe)设备。示例19包括示例14的方法,其中,非易失性存储器包括以下中的一个或多个:纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、磁阻随机存取存储器(MRAM)、闪存、自旋力矩转移随机存取存储器(STTRAM)、电阻随机存取存储器、字节可寻址3维交叉点存储器、PCM(相变存储器)以及由功率储备支持以在功率故障或功率中断期间保持数据的易失性存储器。示例20包括示例14的方法,进一步包括至少一个网络接口与主机系统传送数据。
示例21包括一种计算机可读介质,所述计算机可读介质包括一个或多个指令,当所述一个或多个指令在至少一个处理器上被执行时将至少一个处理器配置成执行一个或多个操作以:在一个或多个虚拟控制器目标逻辑处向多个后端控制器逻辑中的第一后端控制器逻辑传输来自多个输入输出(IO)队列的第一部分的数据;以及在一个或多个虚拟控制器目标逻辑处向多个后端控制器逻辑中的第二后端控制器逻辑传输来自多个IO队列的第二部分的数据,其中所述多个IO队列从主机系统传输,其中多个后端控制器逻辑被耦合到多个非易失性存储器设备。示例22包括示例21的计算机可读介质,进一步包括一个或多个指令,当所述一个或多个指令在至少一个处理器上被执行时将至少一个处理器配置成执行一个或多个操作以使得一个或多个虚拟控制器目标逻辑向第一后端控制器逻辑和第二后端控制器逻辑两者传输来自管理队列的信息。示例23包括示例21的计算机可读介质,其中第一目标系统包括来自一个或多个虚拟控制器逻辑的第一虚拟控制器目标逻辑以及第一后端控制器逻辑,其中第二目标系统包括来自一个或多个虚拟控制器逻辑的第二虚拟控制器目标逻辑以及第二后端控制器逻辑。示例24包括示例21的计算机可读介质,其中多个非易失性存储器设备包括多个非易失性存储器快速(NVMe)设备。示例25包括示例21的计算机可读介质,其中非易失性存储器包括以下中的一个或多个:纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、磁阻随机存取存储器(MRAM)、闪存、自旋力矩转移随机存取存储器(STTRAM)、电阻随机存取存储器、字节可寻址3维交叉点存储器、PCM(相变存储器)以及由功率储备支持以在功率故障或功率中断期间保持数据的易失性存储器。
示例26包括一种计算系统,所述计算系统包括:至少一个网络接口,用于与主机系统通信;多个后端控制器逻辑,其耦合到多个非易失性存储器设备;以及一个或多个虚拟控制器目标逻辑,其耦合到多个后端控制器逻辑,用于向多个后端控制器逻辑中的第一后端控制器逻辑传输来自要从主机系统传输的多个输入输出(IO)队列的第一部分的数据,其中一个或多个虚拟控制器目标逻辑用于向多个后端控制器逻辑中的第二后端控制器逻辑传输来自多个IO队列的第二部分的数据。示例27包括示例26的系统,其中多个IO队列的第一部分和第二部分中的每个用于包括多个IO队列的大约一半。示例28包括示例26的系统,其中一个或多个虚拟控制器目标逻辑用于向第一后端控制器逻辑和第二后端控制器逻辑两者传输来自管理队列的信息。示例29包括示例26的系统,其中目标系统用于包括一个或多个虚拟控制器目标逻辑和以下中的至少一个:第一后端控制器逻辑和第二后端控制器逻辑。示例30包括示例26的系统,其中第一目标系统用于包括来自一个或多个虚拟控制器逻辑的第一虚拟控制器目标逻辑以及第一后端控制器逻辑,其中第二目标系统用于包括来自一个或多个虚拟控制器逻辑的第二虚拟控制器目标逻辑以及第二后端控制器逻辑。示例31包括示例26的系统,其中多个非易失性存储器设备用于包括多个非易失性存储器快速(NVMe)设备。示例32包括示例26的系统,其中非易失性存储器用于包括以下中的一个或多个:纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、磁阻随机存取存储器(MRAM)、闪存、自旋力矩转移随机存取存储器(STTRAM)、电阻随机存取存储器、字节可寻址3维交叉点存储器、PCM(相变存储器)以及由功率储备支持以在功率故障或功率中断期间保持数据的易失性存储器。
示例33包括一种装置,所述装置包括用于执行如在任何在前的示例中阐述的方法的构件。示例34包括机器可读存储设备,所述机器可读存储设备包括机器可读指令,当所述机器可读指令被执行时实现如在任何在前的权利要求中阐述的方法或实现如在任何在前的权利要求中阐述的装置。
在各种实施例中,在本文中例如参照图1-6讨论的操作可以被实现为硬件(例如,电路)、软件、固件、微代码或其组合,其可以被提供为计算机程序产品,例如,包括具有存储在其上的指令(或软件过程)的有形的(例如,非暂时性的)机器可读或计算机可读介质,所述指令(或软件过程)用于将计算机编程以执行在本文中讨论的过程。另外,作为示例,术语“逻辑”可以包括软件、硬件或者软件和硬件的组合。机器可读介质可以包括存储设备,诸如关于图1-6讨论的那些。
此外,这样的有形计算机可读介质可以作为计算机程序产品被下载,其中程序可以经由通信链路(例如,总线、调制解调器或网络连接)通过数据信号的方式(诸如在载波或其他传播介质中)从远程计算机(例如,服务器)被传递到请求计算机(例如,客户端)。
在说明书中对“一个实施例”或“实施例”的引用意味着结合实施例描述的特定特征、结构或特性可以被包括在至少实现中。短语“在一个实施例中”在说明书中的各种地方中的出现可以或者可以不是所有都指的是相同的实施例。
另外,在说明书和权利要求书中,可以使用术语“耦合”和“连接”连同它们的派生词。在一些实施例中,“连接”可以被用于指示两个或更多元件与彼此处于直接物理或电接触中。“耦合”可以意味着两个或更多元件处于直接物理或电接触中。然而,“耦合”还可以意味着两个或更多元件与彼此可以不处于直接接触中,但是仍然可以与彼此合作或交互。
因此,尽管已经以特定于结构特征、数值和/或方法论动作的语言描述了实施例,但是要理解,要求保护的主题可以不限于描述的具体特征、数值或动作。相反,具体特征、数值和动作被公开为实现要求保护的主题的样本形式。
Claims (22)
1.一种用于在NVMe(非易失性存储器快速)控制器的不同的网络地址上提供个别的NVMe IO(输入输出或I/O)队列的装置,所述装置包括:
多个后端控制器逻辑,其耦合到多个非易失性存储器设备;以及
一个或多个虚拟控制器目标逻辑,其耦合到多个后端控制器逻辑,用于向多个后端控制器逻辑中的第一后端控制器逻辑传输来自要从主机系统传输的多个输入输出(IO)队列的第一部分的数据,其中所述一个或多个虚拟控制器目标逻辑中的每一个能经由不同的网络地址而被寻址,
其中一个或多个虚拟控制器目标逻辑用于向多个后端控制器逻辑中的第二后端控制器逻辑传输来自多个IO队列的第二部分的数据。
2.如权利要求1所述的装置,其中多个IO队列的第一部分和第二部分中的每个用于包括多个IO队列的大约一半。
3.如权利要求1所述的装置,其中一个或多个虚拟控制器目标逻辑用于向第一后端控制器逻辑和第二后端控制器逻辑两者传输来自管理队列的信息。
4.如权利要求3所述的装置,其中一个或多个虚拟控制器目标逻辑用于基于要从管理队列提供的信息向第一或第二后端控制器逻辑传输一个或多个管理命令。
5.如权利要求1所述的装置,其中目标系统用于包括一个或多个虚拟控制器目标逻辑和以下中的至少一个:第一后端控制器逻辑和第二后端控制器逻辑。
6.如权利要求1所述的装置,其中第一目标系统用于包括来自一个或多个虚拟控制器逻辑的第一虚拟控制器目标逻辑以及第一后端控制器逻辑,其中第二目标系统用于包括来自一个或多个虚拟控制器逻辑的第二虚拟控制器目标逻辑以及第二后端控制器逻辑。
7.如权利要求6所述的装置,其中第一虚拟控制器目标逻辑用于向多个后端控制器逻辑中的第一后端控制器逻辑传输来自多个IO队列的第一部分的数据,其中第二虚拟控制器目标逻辑用于向多个后端控制器逻辑中的第二后端控制器逻辑传输来自多个IO队列的第二部分的数据。
8.如权利要求6所述的装置,其中第一虚拟控制器目标逻辑和第二虚拟控制器目标逻辑用于向第一后端控制器逻辑和第二后端控制器逻辑传输来自管理队列的信息。
9.如权利要求6所述的装置,其中第一目标系统和第二目标系统用于通过一个或多个计算机系统被耦合到主机系统。
10.如权利要求9所述的装置,包括网络交换机逻辑,用于向第一目标系统和第二目标系统传输来自要从主机系统接收的管理队列的信息。
11.如权利要求1所述的装置,其中多个非易失性存储器设备用于包括多个非易失性存储器快速(NVMe)设备。
12.如权利要求1所述的装置,其中非易失性存储器用于包括以下中的一个或多个:纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、磁阻随机存取存储器(MRAM)、闪存、自旋力矩转移随机存取存储器(STTRAM)、电阻随机存取存储器、字节可寻址3维交叉点存储器、PCM(相变存储器)以及由功率储备支持以在功率故障或功率中断期间保持数据的易失性存储器。
13.如权利要求1所述的装置,进一步包括至少一个网络接口,用于与主机系统传送数据。
14.一种用于在NVMe(非易失性存储器快速)控制器的不同的网络地址上提供个别的NVMe IO(输入输出或I/O)队列的方法,所述方法包括:
在一个或多个虚拟控制器目标逻辑处向多个后端控制器逻辑中的第一后端控制器逻辑传输来自多个输入输出(IO)队列的第一部分的数据,其中所述一个或多个虚拟控制器目标逻辑中的每一个能经由不同的网络地址而被寻址;以及
在一个或多个虚拟控制器目标逻辑处向多个后端控制器逻辑中的第二后端控制器逻辑传输来自多个IO队列的第二部分的数据,其中所述多个IO队列从主机系统传输,其中多个后端控制器逻辑被耦合到多个非易失性存储器设备。
15.如权利要求14所述的方法,其中多个IO队列的第一部分和第二部分中的每个包括多个IO队列的大约一半。
16.如权利要求14所述的方法,进一步包括一个或多个虚拟控制器目标逻辑向第一后端控制器逻辑和第二后端控制器逻辑两者传输来自管理队列的信息。
17.如权利要求14所述的方法,其中第一目标系统包括来自一个或多个虚拟控制器逻辑的第一虚拟控制器目标逻辑以及第一后端控制器逻辑,其中第二目标系统包括来自一个或多个虚拟控制器逻辑的第二虚拟控制器目标逻辑以及第二后端控制器逻辑。
18.如权利要求14所述的方法,其中多个非易失性存储器设备包括多个非易失性存储器快速(NVMe)设备。
19.如权利要求14所述的方法,其中非易失性存储器包括以下中的一个或多个:纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、磁阻随机存取存储器(MRAM)、闪存、自旋力矩转移随机存取存储器(STTRAM)、电阻随机存取存储器、字节可寻址3维交叉点存储器、PCM(相变存储器)以及由功率储备支持以在功率故障或功率中断期间保持数据的易失性存储器。
20.如权利要求14所述的方法,进一步包括至少一个网络接口与主机系统传送数据。
21.一种机器可读介质,包括代码,当所述代码被执行时使得机器执行权利要求14至20中的任一项所述的的方法。
22.一种装置,包括用于执行如在权利要求14至20中的任一项中要求保护的方法的构件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/976,949 US10275160B2 (en) | 2015-12-21 | 2015-12-21 | Method and apparatus to enable individual non volatile memory express (NVME) input/output (IO) Queues on differing network addresses of an NVME controller |
US14/976949 | 2015-12-21 | ||
PCT/US2016/055226 WO2017112021A1 (en) | 2015-12-21 | 2016-10-03 | METHOD AND APPARATUS TO ENABLE INDIVIDUAL NON VOLATLE MEMORY EXPRESS (NVMe) INPUT/OUTPUT (IO) QUEUES ON DIFFERING NETWORK ADDRESSES OF AN NVMe CONTROLLER |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108351813A CN108351813A (zh) | 2018-07-31 |
CN108351813B true CN108351813B (zh) | 2022-05-24 |
Family
ID=59064912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680067899.6A Active CN108351813B (zh) | 2015-12-21 | 2016-10-03 | 用于在非易失性存储器快速(NVMe)控制器的不同网络地址上使能个别的NVMe输入/输出(IO)队列的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (3) | US10275160B2 (zh) |
KR (1) | KR102616458B1 (zh) |
CN (1) | CN108351813B (zh) |
WO (1) | WO2017112021A1 (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102336443B1 (ko) * | 2015-02-04 | 2021-12-08 | 삼성전자주식회사 | 가상화 기능을 지원하는 스토리지 장치 및 사용자 장치 |
US10423568B2 (en) * | 2015-12-21 | 2019-09-24 | Microsemi Solutions (U.S.), Inc. | Apparatus and method for transferring data and commands in a memory management environment |
US10275160B2 (en) | 2015-12-21 | 2019-04-30 | Intel Corporation | Method and apparatus to enable individual non volatile memory express (NVME) input/output (IO) Queues on differing network addresses of an NVME controller |
US10620840B2 (en) | 2016-05-27 | 2020-04-14 | Intel Corporation | Computer product, method, and system to dynamically manage storage devices accessed remotely over a network |
US10200376B2 (en) | 2016-08-24 | 2019-02-05 | Intel Corporation | Computer product, method, and system to dynamically provide discovery services for host nodes of target systems and storage resources in a network |
US10176116B2 (en) | 2016-09-28 | 2019-01-08 | Intel Corporation | Computer product, method, and system to provide discovery services to discover target storage resources and register a configuration of virtual target storage resources mapping to the target storage resources and an access control list of host nodes allowed to access the virtual target storage resources |
US20180335971A1 (en) * | 2017-05-16 | 2018-11-22 | Cisco Technology, Inc. | Configurable virtualized non-volatile memory express storage |
KR102446733B1 (ko) | 2017-11-30 | 2022-09-23 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치를 포함하는 전자 장치 |
US10761775B2 (en) | 2018-02-09 | 2020-09-01 | Samsung Electronics Co., Ltd. | System and method for NVMe inter command association in SSD storage using a bridge device |
US11016924B2 (en) | 2018-03-01 | 2021-05-25 | Samsung Electronics Co., Ltd. | System and method for supporting multi-mode and/or multi-speed non-volatile memory (NVM) express (NVMe) over fabrics (NVMe-oF) devices |
US11018444B2 (en) | 2018-03-09 | 2021-05-25 | Samsung Electronics Co., Ltd. | Multi-mode and/or multi-speed non-volatile memory (NVM) express (NVMe) over fabrics (NVMe-of) device |
US10769042B2 (en) | 2018-06-25 | 2020-09-08 | Seagate Technology Llc | Single port data storage device with multi-port virtualization |
US11231872B2 (en) | 2018-07-05 | 2022-01-25 | Hewlett Packard Enterprise Development Lp | Identification of substitute controllers based on temperature data |
CN109165105A (zh) * | 2018-08-17 | 2019-01-08 | 郑州云海信息技术有限公司 | 一种主机和物理机系统 |
US11016911B2 (en) | 2018-08-24 | 2021-05-25 | Samsung Electronics Co., Ltd. | Non-volatile memory express over fabric messages between a host and a target using a burst mode |
JP6920001B2 (ja) * | 2018-12-04 | 2021-08-18 | 株式会社日立製作所 | マルチノードストレージシステム、及びマルチノードストレージシステムのキュー制御方法 |
CN111722786B (zh) * | 2019-03-21 | 2024-07-16 | 阿里巴巴集团控股有限公司 | 基于NVMe设备的存储系统 |
WO2020242474A1 (en) | 2019-05-30 | 2020-12-03 | Hewlett Packard Enterprise Development Lp | Routing nvme-over-fabric packets |
US11777804B2 (en) | 2019-06-11 | 2023-10-03 | Hewlett Packard Enterprise Development Lp | Automatic system provisioning for NVME-over-fabric storage |
DE112019007502T5 (de) | 2019-06-25 | 2022-09-22 | Hewlett Packard Enterprise Development Lp | Zuordnen von nvme-over-fabric-paketen mithilfe von virtuellen ausgangswarteschlangen |
JP2021028762A (ja) | 2019-08-09 | 2021-02-25 | キオクシア株式会社 | 情報処理装置および制御方法 |
US10817460B2 (en) * | 2019-08-28 | 2020-10-27 | Advanced New Technologies Co., Ltd. | RDMA data sending and receiving methods, electronic device, and readable storage medium |
US11079968B1 (en) | 2020-02-21 | 2021-08-03 | International Business Machines Corporation | Queue management in multi-site storage systems |
US11803446B2 (en) | 2020-07-13 | 2023-10-31 | Samsung Electronics Co., Ltd. | Fault resilient storage device |
US11494098B2 (en) | 2020-06-30 | 2022-11-08 | Western Digital Technologies, Inc. | Variable performance storage devices |
US11604743B2 (en) | 2020-08-31 | 2023-03-14 | International Business Machines Corporation | Input/output queue hinting for resource utilization |
US11429444B1 (en) * | 2021-04-29 | 2022-08-30 | Hewlett Packard Enterprise Development Lp | Managing distribution of I/O queue pairs of a target among hosts |
US11829602B2 (en) * | 2022-03-16 | 2023-11-28 | Dell Products L.P. | Intelligent path selection in a distributed storage system |
US11977504B2 (en) * | 2022-04-26 | 2024-05-07 | Dell Products L.P. | Smart network interface controller operating system deployment |
CN115550377B (zh) * | 2022-11-25 | 2023-03-07 | 苏州浪潮智能科技有限公司 | 一种nvmf存储集群节点互联方法、装置、设备及介质 |
CN118259837A (zh) * | 2024-03-30 | 2024-06-28 | 苏州元脑智能科技有限公司 | 一种固态硬盘缓存管理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102959525A (zh) * | 2010-07-01 | 2013-03-06 | 高通股份有限公司 | 移动装置内的集成非易失性存储器与主易失性存储器的并行使用 |
US8966164B1 (en) * | 2013-09-27 | 2015-02-24 | Avalanche Technology, Inc. | Storage processor managing NVME logically addressed solid state disk array |
CN104572516A (zh) * | 2013-10-25 | 2015-04-29 | 三星电子株式会社 | 服务器系统和存储系统 |
Family Cites Families (80)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5396637A (en) | 1993-03-02 | 1995-03-07 | Hewlett-Packard Company | Data processing system with power-fail protected memory module |
US5603038A (en) | 1994-09-07 | 1997-02-11 | International Business Machines Corporation | Automatic restoration of user options after power loss |
FI102788B (fi) | 1995-09-14 | 1999-02-15 | Nokia Telecommunications Oy | Yhteisen levydatan hallinta kahdennetussa tietokoneyksikössä |
US5809526A (en) | 1996-10-28 | 1998-09-15 | International Business Machines Corporation | Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation |
JPH10154101A (ja) | 1996-11-26 | 1998-06-09 | Toshiba Corp | データ記憶システム及び同システムに適用するキャッシュ制御方法 |
KR100281535B1 (ko) | 1997-02-12 | 2001-02-15 | 윤종용 | 컴퓨터 시스템 및 그의 제어 방법 |
US6535996B1 (en) | 1999-10-07 | 2003-03-18 | International Business Machines Corporation | Method and apparatus for protecting user data during power failures in a data processing system |
US6523102B1 (en) | 2000-04-14 | 2003-02-18 | Interactive Silicon, Inc. | Parallel compression/decompression system and method for implementation of in-memory compressed cache improving storage density and access speed for industry standard memory subsystems and in-line memory modules |
US6839792B2 (en) | 2000-12-15 | 2005-01-04 | Innovative Concepts, Inc. | Data modem |
US6968463B2 (en) | 2001-01-17 | 2005-11-22 | Hewlett-Packard Development Company, L.P. | System for controlling access to resources in a storage area network |
US6990603B2 (en) | 2002-01-02 | 2006-01-24 | Exanet Inc. | Method and apparatus for securing volatile data in power failure in systems having redundancy |
US7171396B2 (en) | 2002-04-04 | 2007-01-30 | Hewlett-Packard Development Company, L.P. | Method and program product for specifying the different data access route for the first data set includes storing an indication of the different access for the first data set providing alternative data access routes to a data storage |
US6968424B1 (en) | 2002-08-07 | 2005-11-22 | Nvidia Corporation | Method and system for transparent compressed memory paging in a computer system |
US7146455B2 (en) | 2003-05-19 | 2006-12-05 | Accton Technology Corporation | System and method for optimized access to memory devices requiring block writing |
US7653699B1 (en) | 2003-06-12 | 2010-01-26 | Symantec Operating Corporation | System and method for partitioning a file system for enhanced availability and scalability |
TWI225589B (en) | 2003-08-01 | 2004-12-21 | Inventec Corp | Power source managing method of chassis |
US7260695B2 (en) | 2004-03-05 | 2007-08-21 | International Business Machines Corporation | Scanning modified data during power loss |
US7802145B1 (en) | 2004-05-18 | 2010-09-21 | Cisco Technology, Inc. | Approach for facilitating analysis of computer software errors |
US7536506B2 (en) | 2004-06-21 | 2009-05-19 | Dot Hill Systems Corporation | RAID controller using capacitor energy source to flush volatile cache data to non-volatile memory during main power outage |
US20060085781A1 (en) | 2004-10-01 | 2006-04-20 | Lockheed Martin Corporation | Library for computer-based tool and related system and method |
IES20040777A2 (en) | 2004-11-22 | 2006-04-19 | Pendula Ltd | Protection of electronic data |
US7290702B2 (en) | 2004-12-28 | 2007-11-06 | Elbex Video Ltd. | Method and apparatus for recording and utilizing unknown signals of remote control devices |
US7437597B1 (en) | 2005-05-18 | 2008-10-14 | Azul Systems, Inc. | Write-back cache with different ECC codings for clean and dirty lines with refetching of uncorrectable clean lines |
JP2006338370A (ja) | 2005-06-02 | 2006-12-14 | Toshiba Corp | メモリシステム |
US7911474B2 (en) | 2006-04-03 | 2011-03-22 | Siemens Medical Solutions Usa, Inc. | Memory management system and method for GPU-based volume rendering |
US7613876B2 (en) | 2006-06-08 | 2009-11-03 | Bitmicro Networks, Inc. | Hybrid multi-tiered caching storage system |
US20070294543A1 (en) | 2006-06-16 | 2007-12-20 | Arachnoid Biometrics Identification Group Corp. | Method for reading encrypted data on an optical storage medium |
US8069309B1 (en) | 2006-06-29 | 2011-11-29 | Emc Corporation | Servicing memory in response to system failure |
US7716525B1 (en) | 2006-07-24 | 2010-05-11 | Solace Systems, Inc. | Low latency, high throughput data storage system |
US8301833B1 (en) | 2007-06-01 | 2012-10-30 | Netlist, Inc. | Non-volatile memory module |
US8904098B2 (en) | 2007-06-01 | 2014-12-02 | Netlist, Inc. | Redundant backup using non-volatile memory |
US7725637B2 (en) | 2007-12-31 | 2010-05-25 | Intel Corporation | Methods and apparatus for generating system management interrupts |
US8892831B2 (en) | 2008-01-16 | 2014-11-18 | Apple Inc. | Memory subsystem hibernation |
US20090254705A1 (en) | 2008-04-07 | 2009-10-08 | International Business Machines Corporation | Bus attached compressed random access memory |
US20090271563A1 (en) | 2008-04-28 | 2009-10-29 | Microsoft Corporation | Flash memory transactioning |
US8009499B2 (en) | 2008-06-16 | 2011-08-30 | Hewlett-Packard Development Company, L.P. | Providing a capacitor-based power supply to enable backup copying of data from volatile storage to persistent storage |
US20090313416A1 (en) | 2008-06-16 | 2009-12-17 | George Wayne Nation | Computer main memory incorporating volatile and non-volatile memory |
US8037380B2 (en) | 2008-07-08 | 2011-10-11 | International Business Machines Corporation | Verifying data integrity of a non-volatile memory system during data caching process |
US8325554B2 (en) | 2008-07-10 | 2012-12-04 | Sanmina-Sci Corporation | Battery-less cache memory module with integrated backup |
JP2010020586A (ja) | 2008-07-11 | 2010-01-28 | Nec Electronics Corp | データ処理装置 |
US8078622B2 (en) | 2008-10-30 | 2011-12-13 | Network Appliance, Inc. | Remote volume access and migration via a clustered server namespace |
US7954006B1 (en) | 2008-12-02 | 2011-05-31 | Pmc-Sierra, Inc. | Method and apparatus for archiving data during unexpected power loss |
EP2211263A3 (en) | 2009-01-23 | 2013-01-23 | Infortrend Technology, Inc. | Method for performing storage virtualization in a storage system architecture |
US9344401B2 (en) | 2009-02-04 | 2016-05-17 | Citrix Systems, Inc. | Methods and systems for providing translations of data retrieved from a storage system in a cloud computing environment |
US8169839B2 (en) | 2009-02-11 | 2012-05-01 | Stec, Inc. | Flash backed DRAM module including logic for isolating the DRAM |
US7990797B2 (en) | 2009-02-11 | 2011-08-02 | Stec, Inc. | State of health monitored flash backed dram module |
JP5569815B2 (ja) | 2009-03-19 | 2014-08-13 | 日本電気株式会社 | アクセス制御リスト変換システム、その方法及びそのプログラム |
US8055816B2 (en) | 2009-04-09 | 2011-11-08 | Micron Technology, Inc. | Memory controllers, memory systems, solid state drives and methods for processing a number of commands |
US8806300B2 (en) | 2009-05-25 | 2014-08-12 | Hitachi, Ltd. | Storage subsystem |
US8484414B2 (en) | 2009-08-31 | 2013-07-09 | Hitachi, Ltd. | Storage system having plurality of flash packages |
TW201118546A (en) | 2009-11-18 | 2011-06-01 | Inventec Corp | Power circuit, computer system and method for managing power thereof |
US8612809B2 (en) | 2009-12-31 | 2013-12-17 | Intel Corporation | Systems, methods, and apparatuses for stacked memory |
US8510598B2 (en) | 2010-03-29 | 2013-08-13 | Dot Hill Systems Corporation | Buffer management method and apparatus for power reduction during flush operation |
US8489833B2 (en) | 2010-08-20 | 2013-07-16 | Transcend Information, Inc. | Data backup method for flash memory module and solid state drive |
US8688926B2 (en) | 2010-10-10 | 2014-04-01 | Liqid Inc. | Systems and methods for optimizing data storage among a plurality of solid state memory subsystems |
US8527837B2 (en) | 2010-10-15 | 2013-09-03 | Micron Technology, Inc. | Selective error control coding in memory devices |
US8612676B2 (en) | 2010-12-22 | 2013-12-17 | Intel Corporation | Two-level system main memory |
US8607003B2 (en) | 2011-07-15 | 2013-12-10 | International Business Machines Corporation | Memory access to a dual in-line memory module form factor flash memory |
US20140189203A1 (en) | 2012-12-28 | 2014-07-03 | Hitachi, Ltd. | Storage apparatus and storage control method |
US9003071B2 (en) | 2013-03-13 | 2015-04-07 | Futurewei Technologies, Inc. | Namespace access control in NVM express PCIe NVM with SR-IOV |
US9009397B1 (en) | 2013-09-27 | 2015-04-14 | Avalanche Technology, Inc. | Storage processor managing solid state disk array |
US9483431B2 (en) * | 2013-04-17 | 2016-11-01 | Apeiron Data Systems | Method and apparatus for accessing multiple storage devices from multiple hosts without use of remote direct memory access (RDMA) |
KR102079939B1 (ko) | 2013-06-04 | 2020-02-21 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 명령어 스케줄링 방법 |
US10063638B2 (en) | 2013-06-26 | 2018-08-28 | Cnex Labs, Inc. | NVM express controller for remote access of memory and I/O over ethernet-type networks |
KR101749466B1 (ko) | 2013-09-23 | 2017-06-20 | 인텔 코포레이션 | 비휘발성 메모리에 대한 데이터의 이벤트 트리거링된 저장 |
US9229855B2 (en) * | 2013-11-12 | 2016-01-05 | Skyera, Llc | Apparatus and method for routing information in a non-volatile memory-based storage device |
US9245140B2 (en) | 2013-11-15 | 2016-01-26 | Kabushiki Kaisha Toshiba | Secure data encryption in shared storage using namespaces |
US20160259568A1 (en) | 2013-11-26 | 2016-09-08 | Knut S. Grimsrud | Method and apparatus for storing data |
US9294567B2 (en) | 2014-05-02 | 2016-03-22 | Cavium, Inc. | Systems and methods for enabling access to extensible storage devices over a network as local storage via NVME controller |
US20160188414A1 (en) | 2014-12-24 | 2016-06-30 | Intel Corporation | Fault tolerant automatic dual in-line memory module refresh |
US10459634B2 (en) * | 2015-10-31 | 2019-10-29 | Sandisk Technologies Llc | Methods, systems, and computer readable media for aggregating completion entries in a nonvolatile storage device |
US10275160B2 (en) * | 2015-12-21 | 2019-04-30 | Intel Corporation | Method and apparatus to enable individual non volatile memory express (NVME) input/output (IO) Queues on differing network addresses of an NVME controller |
US10013168B2 (en) | 2015-12-24 | 2018-07-03 | Intel Corporation | Disaggregating block storage controller stacks |
US10620840B2 (en) | 2016-05-27 | 2020-04-14 | Intel Corporation | Computer product, method, and system to dynamically manage storage devices accessed remotely over a network |
US10089134B2 (en) | 2016-06-30 | 2018-10-02 | Western Digital Technologies, Inc. | Controlling access to namespaces of a storage device |
US10200376B2 (en) | 2016-08-24 | 2019-02-05 | Intel Corporation | Computer product, method, and system to dynamically provide discovery services for host nodes of target systems and storage resources in a network |
US10176116B2 (en) | 2016-09-28 | 2019-01-08 | Intel Corporation | Computer product, method, and system to provide discovery services to discover target storage resources and register a configuration of virtual target storage resources mapping to the target storage resources and an access control list of host nodes allowed to access the virtual target storage resources |
US20180088978A1 (en) | 2016-09-29 | 2018-03-29 | Intel Corporation | Techniques for Input/Output Access to Memory or Storage by a Virtual Machine or Container |
US20180188974A1 (en) | 2016-12-30 | 2018-07-05 | Intel Corporation | Computer program product, system, and method to allow a host and a storage device to communicate using different fabric, transport, and direct memory access protocols |
US10073640B1 (en) | 2017-03-10 | 2018-09-11 | Toshiba Memory Corporation | Large scale implementation of a plurality of open channel solid state drives |
-
2015
- 2015-12-21 US US14/976,949 patent/US10275160B2/en active Active
-
2016
- 2016-10-03 KR KR1020187014348A patent/KR102616458B1/ko active IP Right Grant
- 2016-10-03 WO PCT/US2016/055226 patent/WO2017112021A1/en active Application Filing
- 2016-10-03 CN CN201680067899.6A patent/CN108351813B/zh active Active
-
2019
- 2019-04-11 US US16/381,994 patent/US11385795B2/en active Active
-
2022
- 2022-07-11 US US17/862,145 patent/US20220350483A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102959525A (zh) * | 2010-07-01 | 2013-03-06 | 高通股份有限公司 | 移动装置内的集成非易失性存储器与主易失性存储器的并行使用 |
US8966164B1 (en) * | 2013-09-27 | 2015-02-24 | Avalanche Technology, Inc. | Storage processor managing NVME logically addressed solid state disk array |
CN104572516A (zh) * | 2013-10-25 | 2015-04-29 | 三星电子株式会社 | 服务器系统和存储系统 |
Also Published As
Publication number | Publication date |
---|---|
US20220350483A1 (en) | 2022-11-03 |
US20190303003A1 (en) | 2019-10-03 |
US20170177216A1 (en) | 2017-06-22 |
US11385795B2 (en) | 2022-07-12 |
KR20180087255A (ko) | 2018-08-01 |
US10275160B2 (en) | 2019-04-30 |
CN108351813A (zh) | 2018-07-31 |
KR102616458B1 (ko) | 2023-12-26 |
WO2017112021A1 (en) | 2017-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108351813B (zh) | 用于在非易失性存储器快速(NVMe)控制器的不同网络地址上使能个别的NVMe输入/输出(IO)队列的方法和装置 | |
CN108604456B (zh) | 在存储器插槽中支持多个存储器类型 | |
CN107077303B (zh) | 分配和配置持久存储器 | |
RU2624563C2 (ru) | Оперативное регулирование производительности твердотельных запоминающих устройств | |
EP3161622B1 (en) | Accelerating boot time zeroing of memory based on non-volatile memory (nvm) technology | |
US9703697B2 (en) | Sharing serial peripheral interface flash memory in a multi-node server system on chip platform environment | |
KR102533062B1 (ko) | 비휘발성 메모리에서 결함에 대한 내성을 향상시키기 위한 방법 및 장치 | |
US10444813B2 (en) | Multi-criteria power management scheme for pooled accelerator architectures | |
JP2012079320A (ja) | ハードウェアのダイナミックなキャッシュパワー管理 | |
WO2016160163A1 (en) | Mechanism to adapt garbage collection resource allocation in a solid state drive | |
EP2936317A1 (en) | In-place change between transient and persistent state for data structures in non-volatile memory | |
CN107624178B (zh) | 快速归零的机柜式架构(rsa)和共享存储器控制器(smc)技术 | |
CN103927233A (zh) | 多节点内存互联装置及一种大规模计算机集群 | |
US9588882B2 (en) | Non-volatile memory sector rotation | |
US9274885B2 (en) | Phase change memory with switch (PCMS) write error detection | |
US20220043475A1 (en) | Access to multiple timing domains | |
US20240303086A1 (en) | Boot time reduction for an information handling system with a data processing unit |
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 |