CN105556930A - 针对远程存储器访问的nvm express控制器 - Google Patents
针对远程存储器访问的nvm express控制器 Download PDFInfo
- Publication number
- CN105556930A CN105556930A CN201480042920.8A CN201480042920A CN105556930A CN 105556930 A CN105556930 A CN 105556930A CN 201480042920 A CN201480042920 A CN 201480042920A CN 105556930 A CN105556930 A CN 105556930A
- Authority
- CN
- China
- Prior art keywords
- nvme
- controller
- order
- expansion
- nvme controller
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 82
- 238000000034 method Methods 0.000 claims abstract description 20
- 230000006855 networking Effects 0.000 claims description 36
- 230000007246 mechanism Effects 0.000 claims description 17
- 238000013507 mapping Methods 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 claims description 10
- 238000012546 transfer Methods 0.000 claims description 10
- 238000010168 coupling process Methods 0.000 claims description 8
- 238000005859 coupling reaction Methods 0.000 claims description 8
- 230000008878 coupling Effects 0.000 claims description 7
- 230000011218 segmentation Effects 0.000 claims description 4
- 238000005538 encapsulation Methods 0.000 claims description 3
- 230000004044 response Effects 0.000 claims description 3
- 230000008520 organization Effects 0.000 claims description 2
- 238000006243 chemical reaction Methods 0.000 claims 1
- 238000004891 communication Methods 0.000 abstract description 5
- 239000007787 solid Substances 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 20
- 238000007726 management method Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000009977 dual effect Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004064 recycling Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000007858 starting material Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2002—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
- G06F11/2007—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
- G06F11/201—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media between storage system components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3027—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/349—Performance evaluation by tracing or monitoring for interfaces, buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0835—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/457—Network directories; Name-to-address mapping containing identifiers of data entities on a computer, e.g. file names
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40169—Flexible bus arrangements
- H04L12/40176—Flexible bus arrangements involving redundancy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Small-Scale Networks (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种用于使能非易失性存储器Express(NVMe)的方法和***,该NVMe用于在以太网或者其他网络上访问远程固态驱动器(SSD)(或者其他类型的远程非易失性存储器)。提供了用于使得CPU能够使用NVMe协议访问远程非易失性存储器的扩展的NVMe控制器。扩展的NVMe控制器被实现在一个服务器上,该服务器用于经由以太网交换机与其他服务器或者非易失性存储器通信。通过对其进行修改以提供特殊的以太网上的NVM帧,NVMe协议用于以太网或者类似网络上。
Description
技术领域
本发明总体上涉及在网络上使用非易失性存储器Express(NVMe)协议并利用低延时来访问远程存储器。
背景技术
通常,CPU可以在网络上通过使用网络协议来访问远程存储器或者I/O设备。用于访问远程存储器或者I/O设备的一个常规方法是通过iSCSI存储。该方法通过CPU使用大量的处理,其增加总访问延时。经由iSCSI存储访问远程存储器或者I/O设备通常具有比对本地存储器或者I/O设备的直接访问大四到五倍的延时。这导致针对在网络上要求远程存储器或者I/O设备访问的***的显著的性能和吞吐量退化。
处理本地非易失性存储器访问的相对新的接口标准是NVMExpress(NVMe),有时被称为非易失性存储器主机控制器接口规范。NVMe是寄存器级接口,其允许主机软件与非易失性存储器子***通信。该接口针对企业和客户端固态驱动器(SSD)而被优化,其通常附接到PCIExpress(PCIe)接口。NVMe提供对本地非易失性存储器的直接I/O访问。使用NVMe,与诸如SAS(串行SCSI)或者SATA(串行ATA)的传统I/O接口上的连接相比较,减少了读取和写入操作的延时。
然而,NVMe具有关于以太网交换机或者其他类型的网络上的数据传递的限制。通常,NVMe被设计为访问本地SSD并且未在通过网络访问远程存储方面被定义。如现今所定义的NVMe不提供用于通过网络通过多个主机CPU访问多个远程SSD的方案。因此,存在使得NVMe能够在网络(例如,以太网)上高效地工作以用于在网络上访问远程SSD和命名空间的需要。
发明内容
本发明通过提供一种***来克服现有技术的限制,该***使能使用NVMe命令在外部网络(诸如以太网)上对远程非易失性存储器的访问。在一个方面中,扩展的NVMe控制器提供该能力。
在一种方法中,扩展的NVMe控制器使得CPU能够使用NVMe协议来访问远程非易失性存储器(例如,SSD)。例如,扩展的NVMe控制器被实现在用于经由以太网交换机与其他服务器或者SSD通信的一个服务器上。可以通过提供以太网上的NVM(NVMoE)帧在以太网上使用NVMe协议。在一个实施方式中,定义NVMoE帧,其指定通过以太网由扩展的NVMe控制器所传输的NVMoE命令。扩展的NVMe控制器包括用于基于NVMoE帧的定义来将NVMe命令转换为NVMoE命令的转换机制。特别地,通过映射表支持转换机制,映射表用于将NVMe控制器的主机标识符(HSID)和/或NVMe命令的命名空间标识符(NSID)映射到NVMoE命令中所包括的以太网介质访问控制(MAC)地址。
在另一方面中,扩展的NVMe控制器配备有用于从通过外部网络所传输的NVMe命令的损耗恢复的重试机制。重试机制包括用于检测NVMe命令的损耗的定时器,并且如果NVMe命令被确定为根据定时器的丢失,则重试机制将重新发出NVMe命令。
在又一方面中,扩展的NVMe控制器使能多路径I/O和命名空间共享。多路径I/O是指单个主机与命名空间之间的两个或两个以上完全独立的物理PCIe路径。命名空间共享是指两个或两个以上主机使用不同的NVMe控制器来访问共同共享命名空间的能力。扩展的NVMe控制器中的一个或多个扩展的NVMe控制器可以使得主机能够通过多个PCIe路径访问单个命名空间和两个或两个以上主机访问共享命名空间。
本发明的另一方面包括扩展的NVMe存储网络和外部网络,该扩展的NVMe存储网络包括多个本地NVMe存储节点,并且该外部网络耦合多个NVMe存储节点。本地NVMe存储节点包括一个或多个主机处理器,如上文所描述的扩展的NVMe控制器和本地非易失性存储器。
在一个示例性实施例中,外部网络可以包括L3网络。因此,扩展的NVMe控制器可以包括用于将NVMe命令转译为由L3分组头部封装并且因此适于在L3网络上的传输的NVMoE命令。
扩展的NVMe存储网络的各种示例应用在本文中还被描述以适于不同的场景。在一个应用中,扩展的NVMe存储网络实现为服务器机架,其中本地存储节点包括服务器机架中的服务器,并且外部网络包括架顶以太网交换机。在另一应用中,扩展的NVMe存储网络实现为包括单个主机的单个服务器,其中每个本地NVMe存储节点包括专用扩展的NVMe控制器和基于专用本地非易失性存储器的命名空间。在又一示例应用中,扩展的NVMe存储网络包括至少两个主机处理器并且经由两个扩展的NVMe控制器提供冗余度。
本发明的其他方面包括与上文所描述的那些有关的方法、***、部件、设备、改进、应用和其他方面。
本发明的附加特征和优点将在以下描述中被阐述并且部分将从描述变得明显或者可以通过本发明的实践被学习。可以通过在书面描述和其权利要求以及附图中特别指出的结构实现和达到本发明的各种优点。应当理解,前述一般描述和以下详细描述是示例性和解释性的,并且旨在提供如所要求保护的本发明的进一步的解释。
附图说明
当结合附图时,本发明具有从本发明的以下详细描述和随附的权利要求更容易明显的其他优点和特征,其中:
图1是图示扩展的NVMe存储网络的***的框图。
图2是NVMoE帧定义的示图。
图3是如图2中所描绘的NVMoE帧定义的第一部分的示图。
图4是用于使得NVMe命令能够在以太网上传输的方法的流程图。
图5是扩展的NVMe控制器的框图。
图6是如图5中所描绘的扩展的NVMe控制器的详细结构的框图。
图7是NVMoE帧的一个实施例的示图。
图8是NVMoE帧的另一实施例的示图。
图9是L3网络上的扩展的NVMe存储***的框图。
图10是适于在L3网络上传输的NVMoE帧的示图。
图11A-B是将扩展的NVMe存储网络的应用模型图示为服务器机架的示图。
图12A-B是将扩展的NVMe存储网络的应用模型图示为单个服务器的示图。
图13是将扩展的NVMe存储网络的应用模型图示为双服务器***的示图。
图14是将扩展的NVMe存储网络的应用模型图示为双端口服务器***的示图。
图15是命名空间控制器的框图。
图16是可以使用在本发明中的计算机或者服务器的示意性示例的框图。
仅出于图示的目的,附图描绘了本发明的实施例。本领域的技术人员将容易地从以下讨论认识到,在不脱离本文所描述的本发明的原理的情况下,可以采用本文所图示的结构和方法的备选实施例。
具体实施方式
通常,NVMe控制器与单个PCI功能相关联。控制器所支持的能力在控制器能力(CAP)寄存器中被指示并且作为如标识命令所返回的控制器和命名空间数据结构的一部分。控制器数据结构指示适于整个控制器的能力和设置。命名空间数据结构指示特定于具体命名空间的能力和设置。另外,NVMe控制器基于配对的提交和完成队列机制。通过主机软件将命令放置到提交队列中。通过控制器将完成放置到相关联的完成队列中。多个提交队列可以利用相同的完成队列。将提交和完成队列分配在主机存储器中。
本发明涉及用于使能在网络上使用NVMe协议对远程非易失性存储器(例如,SSD)命名空间的访问以减少访问延时的方法。因此,扩展的NVMe控制器使得主机CPU能够使用NVMe协议来访问远程非易失性存储器。附图和以下描述仅以图示的方式涉及优选的实施例。应当注意,根据以下讨论,在不脱离权利要求书的原理的情况下,本文所公开的结构和方法的备选实施例将容易地被识别为可以采用的可行的备选方案。
现在参考图1,根据一个示例性实施例,描绘了图示扩展的NVMe存储网络的***100的框图。扩展的NVMe存储网络100可以是以太网架构上的NVMe的一个示例。在所图示的示例性实施例中,扩展的NVMe存储网络100包括两个本地NVMe存储节点111a、111b和耦合两个本地NVMe存储节点111a、111b的外部网络(包括交换机114)。扩展的NVMe存储网络100还包括目录服务器116,其通信地耦合到包括交换机114的外部网络。在一个实施例中,外部网络是以太网。在其他实施例中,外部网络可以是光纤信道(FC)或者无线带宽(IB)类型的网络。
两个本地NVMe存储节点111a、111b各自包括主机处理器(例如,CPUA或者CPUB)、扩展的NVMe控制器112A、112B和由NVMe命名空间(例如,NVMNS1-1和NVMNS1-2,或者NVMNS2-1和NVMNS2-2)所表示的本地非易失性存储器。在一个实施例中,非易失性存储器是固态驱动器(SSD)。在另一实施例中,非易失性存储器是硬盘驱动器。扩展的NVMe控制器112A、112B分别地经由其自身的主机接口耦合到CPU,例如CPUA、CPUB。例如,扩展的NVMe控制器112A、112B中所包括的主机接口可以是PCIExpress(PCIe)接口。另外,扩展的NVMe控制器112A、112B包括将其耦合到外部网络(包括交换机114)的其相应的直接网络接口。例如,为了将扩展的NVMe控制器112a、112B耦合到以太网,直接网络接口可以是以太网MAC接口。此外,扩展的NVMe控制器112A、112B各自经由一个或多个本地存储接口耦合到其本地非易失性存储器的本地NVMe命名空间。例如,扩展的NVMe控制器112a经由本地存储接口耦合到其本地NVMe命名空间(例如,NVMNS1-1和NVMNS1-2)。类似地,扩展的NVMe控制器112B经由控制器112B中所包括的另一本地存储接口耦合到其本地NVMe命名空间(例如,NVMNS2-1和NVMNS2-2)。
在节点111a、111b内,扩展的NVMe控制器112A、112B分别地从其主机(例如,CPUA、CPUB)接收指向其本地NVMe命名空间(例如,NVMNS1-1和NVMNS1-2或者NVMNS2-1和NVMNS2-2)的NVMe命令并且向CPU提供对其本地命名空间的I/O访问。例如,扩展的控制器112A可以从用于访问本地命名空间NVMNS1-1和NVMNS1-2的CPUA接收NVMe命令。由于NVMe控制器112A、112B具有针对其本地命名空间的地址的明确定义,因此NVMe控制器112A、112B可以处理命令。
在一个实施例中,扩展的NVMe控制器112A、112B(还单独地或者共同地被称为112)可以从其主机CPU(例如,CPUA或者CPUB)接收指向用于耦合到外部网络的远程非易失性存储器的远程命名空间的NVMe命令。例如,扩展的NVMe控制器112A可以从CPUA接收指向耦合到外部网络的NVMNS2-1或者NVMNS2-2的NVMe命令。这在例如节点111a中的CPUA期望从节点111b中的远程命名空间NVMNS2-1或者NVMNS2-2读取数据/将数据写入到节点111b中的远程命名空间NVMNS2-1或者NVMNS2-2时发生。根据图1中所图示的示例性实施例,扩展的NVMe控制器112可以应用以太网上的NVMe(NVMoE)协议来在外部网络交换机上传输NVMe命令(例如,融合增强型以太网交换机或者甚至传统以太网交换机)传输NVMe命令。这样的新协议有益地允许CPU使用NVMe协议访问附接到不同的扩展的NVMe控制器的命名空间或者调用远程命名空间。这还使得CPU能够仅利用本地访问延时来访问远程命名空间。
为了实现这一点,扩展的NVMe控制器112将指向远程命名空间的NVMe命令转换到适于在外部网络上传输的格式,使得可以将命令传输到本地耦合(诸如经由本地存储接口耦合)到远程命名空间的另一外部扩展的NVMe控制器112。通常,NVMe控制器具有64位主机标识符(HSID),并且NVMe命名空间具有32位命名空间标识符(NSID)。HSID是通过NVMe控制器寄存器可配置的。NSID是命名空间1-n的连续的序列,其中n是可用的命名空间的总数。在一个示例性实施例中,扩展的NVMe控制器112可以通过利用用于将NVMe命令中的HSID和HSID映射到用于以太网上的传输的以太网MAC地址的机制,将NVMe命令转换到针对在以太网上传输的适合的格式。在图2中图示了适于在以太网上传输的NVMe命令的格式的定义。
因此,图2图示了根据一个示例性实施例的以太网上的NVMe(NVMoE)帧结构200的定义。以太网上的NVMe(NVMoE)帧200包括目的地MAC地址(例如,48位目的地MAC地址)。在MAC地址的所有位之间,24个最高有效位构建组织唯一标识符(OUI)。NVMoE帧还包括源MAC地址(例如,48位源MAC地址);IEEE802.1Q标签,诸如虚拟局域网(VLAN)/服务质量(QoS)1Q标签;类型代码“ET”;以及版本号“VER”(例如,4位版本号)。类型代码“ET”可以用于指示这是以太网上的NVMe类型的帧。另外,NVMoE帧200包括定义Admin和I/O命令的NVMe帧和帧校验序列(FCS)(例如,针对整个NVMoE帧的32位帧校验和)。在该示例中,不存在针对NVMe帧的分离的循环冗余校验(CRC)。在一个实施例中,扩展的NVMe控制器112可以使用诸如图2中所示的帧200的NVMoE帧,以指定适于在以太网上传输的格式的NVMe命令。
返回参考图1,还图示了根据示例性实施例的HSID和NSID分配机制。在以太网上的NVMe协议中,HSID包括由CPU所配置的64位。当使扩展的NVMe控制器112附接的CPU将命令发送给远程NVMe命名空间时,其与目录服务器116通信。在一个示例性实施例中,目录服务器116可以是软件定义存储(SDS)控制器。实际上,SDS控制器116可以驻留在管理网络交换机114的相同CPU上。然而,其还可以实现在与管理交换机114的CPU不同的CPU上。SDS控制器116具有管理整个扩展的NVMe存储网络100内的NVMe存储节点111a、111b(还单独地或者共同地被称为111)的所有HSID和NSID的目录,使得不存在所分配的HSID以及所分配的NSID的重复。例如,对于不同的本地NVMe存储节点111而言,SDS控制器116将不同的HSID分配给不同的CPU并且将不同的NSID分配给不同的命名空间。因此,存储节点111中的每个命名空间具有唯一的HSID和NSID。对于诸如CPUA和CPUB的不同的CPU而言,相同命名空间的NSID可以是不同的,而在上层应用中,尽管不同的命名空间ID,命名空间仍被理解为相同的逻辑命名空间。
图1还图示了根据示例性实施例的NVMe到以太网映射表。一旦分配HSID和NSID以便通过以太网交换机114发送和接收NVMe命令和数据,扩展的NVMe存储网络110就将扩展的NVMe控制器的HSID和NVMe命名空间的NSID映射到MAC地址。图3图示了针对48位MAC地址的结构。因此,为了将64位HSID映射到48位MAC地址,使用64位到48位映射。扩展的NVMe控制器112使用MAC地址的最高有效24位的OUI并且使用所分配的HSID[23:0]作为起始地址,以填充MAC地址的网络接口控制器(NIC)特定较低24位。如果期望超过HSID的较低24位,则其他映射是可能的。
对于NSID到MAC地址映射而言,使用32位到48位映射。扩展的NVMe控制器112将上文HSID映射的MAC地址和本地NSID用作命名空间MAC地址。也就是说,MAC地址的较高24位是OUI;较低24位用于NSID特定值。(此外,如果期望超过NSID的较低24位,则其他映射是可能的。)这样,由扩展的NVMe控制器所使用的MAC地址可以连续并且易于管理。一个扩展的NVMe控制器卡使用MAC地址空间中的1+n个地址,其中1个地址用于HSID,并且n个地址用于由命名空间控制器所使用的NSID命名空间。基于其OUI和起始NICID,对针对其他扩展的NVMe控制器的NSID进行映射。在一个实施例中,目录服务器116的SDS控制器可以处理和管理HSID和NSID到MAC地址的映射。扩展的NVMe控制器112可以通过维持用于将HSID和NSID映射到MAC地址的映射表,处理HSID和NSID到MAC地址的映射。
在一个实施例中,由于实施例使用以太网MAC地址来标识HSID和NSID,因此该映射使使用L2学习机制成为可能。因此,可以应用L2网络交换机的行为。在一个实施例中,一个目录服务器116还管理融合增强型以太网(CEE)MAC地址到物理端口映射。在一个实施例中,单根I/O虚拟化(SR-IOV)支持可以根据扩展的NVMe控制器的虚拟功能(VF)来使用不同的MAC地址。
一旦将HSID和NSID映射到以太网MAC地址,如图3中所图示的,扩展的NVMe控制器112就使用MAC地址生成如图2中所图示的NVMoE帧。因此,图3还图示了图2中所描绘的NVMoE帧的第一部分(例如,MAC地址)。
现在参考图4-5,图4图示了根据一个示例性实施例的用于使NVMe命令能够在以太网上传输的方法的流程图。图5图示了与图4中所描绘的方法的一个实施例相对应的示例性的扩展的NVMe控制器。在图示的实施例中,扩展的NVMe控制器112包括PCIe接口和用于通过PCI接口从主机处理器(CPU)接收NVMe命令和/或数据的DMA逻辑模块。所接收的NVMe命令和/或数据可以指向针对本地存储器/存储装置的本地命名空间或者指向远程存储器/存储装置的远程命名空间。PCIe接口和DMA逻辑模块负责处理来自自和到达主机CPU的PCIe读和写命令以及由于调度到达和来自CPU主机存储器的DMA读和写。
扩展的NVMe控制器112还可以包括调度和仲裁逻辑模块(或者调度器和仲裁器),其将调度410用于处理和传输所接收的命令和/或数据的管理(Admin)和输入/输出(I/O)提交队列。此外,扩展的NVMe控制器112可以将所接收的NVMe命令转换为适于在外部网络上传输到耦合到远程命名空间的另一NVMe控制器112的格式。例如,扩展的NVMe控制器112包括NVMe到NVMoE命令转译器,其用于将HSID和NSID映射420到MAC地址并且基于映射而将NVMe命令转译430到NVMoE命令。特别地,在一个示例性实施例中,命令转译器包括NVMe到NVMoE映射器,其可以查询用于将HSID和NSID映射到以太网MAC地址的映射表。命令转译器可以基于映射将NVMe命令转译为NVMoE命令。
扩展的NVMe控制器112还包括传输器,其将NVMoE命令传输440到耦合到用于交换耦合到另一控制器112的远程命名空间中的数据的网络的另一扩展的NVMe控制器112。传输器将基于所映射的以太网MAC地址,来经由以太网MAC接口在以太网上传输NVMoE命令。
本领域技术人员应当理解,所提出的扩展的NVMe控制器112是可扩展的。扩展的NVMe控制器112利用减少的延时在以太网上提供对SSD的远程访问。
图6图示了根据一个示例性实施例的扩展的NVMe控制器的详细结构。在图示的实施例中,扩展的NVMe控制器112包括用于处理与PCIe接口的命令和/或数据通信的PCIE接口和消息信号中断(MSI)/MSI-X处理模块。扩展的NVMe控制器112还包括管理提交队列的提交Q管理器和队列仲裁器。队列仲裁器还可以从PCIe接口和MSI/MSI-X处理模块读取物理区域页面(PRP)或者散集列表(SGL)数据。扩展的NVMe控制器112包括用于将HSID和NSID映射到MAC地址的MAC地址映射器。此外,扩展的NVMe控制器112包括NVMe命令解析器和NVEe到NVMoE格式化器,该NVMe命令解析器解析从PCIe接口所接收的NVMe命令,并且所述NVMe到NVMoE格式化器将NVMe命令格式化为基于所映射的MAC地址而生成NVMoE命令。扩展的NVMe控制器112还可以包括用于缓冲NVMoE命令的共享缓冲池。从共享缓冲池,NVMoE命令可以然后通过内部SSD接口和以太网介质访问控制器(例如,10GEMAC或者40GEMAC)发出。共享缓冲池可以提供如使用从NVMe到NVMoE格式化器到内部SSD接口和10GEMAC的命令和/或数据流的虚线602a、602b、602c所描绘的流控制。扩展的NVMe控制器112还包括NVMe完成队列处理器和NVMe控制器命令处理器,其与NVMe命令解析器和共享缓冲池以缓冲和处理从内部SSD接口和以太网MAC接口所接收的NVMe命令返回队列。
图7图示了根据一个示例性实施例的由扩展的NVMe控制器112用于指定NVMoE命令的NVMoE帧700的结构。通常,所图示的NVMoE帧700具有与如2中所定义的那个结构相同的结构。然而,图7中所图示的NVMoE帧700包括作为NVMoE帧的一个部分的NVMo帧的详细结构。NVMe帧包括7位类值,其定义NVMoE帧数据的帧数据的类型;Admin/IO位,其中0指示这是Admin命令并且1指示这是I/O命令;如NVMe规范中所定义的命令代码;SEQ_ID[15:0],定义NVMeI/O中的所发出的命令的顺序并且被用于识别条目I/O命令中的子命令的顺序的序列标签的16位;Q_ID[15:0],标识来自启动器的提交队列的队列ID的16位;CMD_ID[15:0],标识提交队列中的命令的命令ID的16位;LENGTH[15:0],标识命令的大小的长度信息的16位;地址高和地址低[47:0],指向DWORD中的NVMe存储设备中的逻辑块地址或者物理存储器地址的地址的48位;描述NVMe命令的NVMe数据;和Status[31:0],指示数据是否包括任何错误或者可报告的警告消息的状态字段的32位。
注意,当区段大小是4096字节或者更大时,NVMe开销数据总计为小于所传输的数据的1%。
图8是NVMoE帧800的另一实施例的示图。与图7中所示的NVMoE帧700相比较,NVMoE帧800附加地包括时间戳,其描述被用于测量延时的16位的时间戳信息;NVME命令DW[10:15],其可以穿过NVMoE命令帧;头部FCS,其描述在NVMoE头部上所生成的CRC值;元数据;和完成DoubleWord(CMPLDword,或者CMPLDW),如NVMe规范中的所定义的针对完成的两个DW。
图9图示了根据一个示例性实施例的L3网络上的扩展的NVMe存储***。在所图示的示例性实施例中,***900包括与图1中所示的***100的那些类似的部件。例如,***900包括NVMe存储节点911a、911b、911c(还单独地或者共同地被称为911),其各自包括扩展的NVMe控制器912A、912B、912C(还单独地或者共同地被称为912)。在一个实施例中,扩展的NVMe控制器912具有如图1中所示的扩展的NVMe控制器112类似的功能。例如,扩展的NVMe控制器912可以将NVMe命令转译为NVMoE格式。
在一个实施例中,与扩展的NVMe控制器112不同,扩展的NVMe控制器912还使得帧的NVMoE格式能够使用通用路由封装(NVGRE)通过网关/隧道918A、918B(还单独地或者共同地被称为918)诸如无状态交通隧道(STT)、虚拟可扩展LAN(VXLAN)或者网络虚拟化通过L3网络。例如,扩展的NVMe控制器912可以将STT或者VXLAN或者NVGRE封装为L3分组报头并且将L3分组报头添加到NVMoE帧。在一个实施例中,为了支持诸如1.5K字节的较小的MTU大小,网关/隧道(功能)918可以在发送之前将原始NVMoE帧分段并且在接收到原始帧的分段时将分段重新装配到原始NVMoE帧中。
图9还示出了I/O命令的可靠传输的重试机制。尽管融合增强型以太网帧是无损的,但是可能一些分组丢弃由于以太网交换机914A、914B中的数据损坏或者其他错误而发生。类似地,分组数据的损失还可以诸如由于L3网络的交通拥堵而在L3以太网网络中发生。为了从所传送的NVMe命令数据的损失进行恢复,扩展的NVMe存储***900可以包含不同类型的重试机制。例如,扩展的NVMe存储***900可以实现基于硬件的重试机制,使得如果特定I/O命令将不回来,则***900可以由于超时而重新发送I/O命令。扩展的NVMe控制器912分配针对每个NVMoE命令的定时器,并且当扩展的NVMe控制器912将NVMoE命令发出到用于传输的以太网接口,则定时器开始运行。因此,如果定时器超时并且对应的NVMoE命令尚未回来,则指示所发出的NVMoE命令尚未丢失在网络中,并且扩展的NVMe控制器912因此重新发出用于传输的NVMoE命令。通过这种方式,扩展的NVMe存储***90可以从NVMoE命令损耗进行恢复。
另外,***900可以支持NVMe水平处的基于软件的重试机制。软件NVMe驱动程序包括针对每个所发出的命令的定时器。一旦特定NVMe命令在定时器超时时尚未返回,则软件NVMe驱动程序将停止原始NVMe命令并且重新发送新NVMe命令。
现在参考图10,图示了根据一个示例性实施例的由NVMe存储***900所使用的NVMoE帧1000。NVMoE帧1000可以通过诸如STT、VXLAN或者NVGRE的网关/隧道918L3网络而经过L3网络。如上文所提到的,为了使得NVMoE帧能够经过L3网络,扩展的NVMe控制器912将STT或者VXLAN或者NVGRE的封装添加到NVMoE帧1000。例如,在所图示的实施例中,NVMoE帧1000使L3分组报头***帧中。
图11A-B将扩展的NVMe存储网络的应用模型图示为服务器机架,其中,扩展的NVMe控制器经由以太网交换机通信。所图示的应用模型是服务器机架和架顶交换机***,其中NVMe存储节点可以包括服务器机架中的服务器,并且外部网络可以包括架顶交换机。在所图示的实施例中,服务器A的CPUA可以经由扩展的NVMe控制器访问服务器B中的命名空间NS_B1和NS_B2,所述扩展的NVMe控制器可以通过交换机发送和接收数据。所提出的扩展的NVMe控制器可以提供在减少的访问延时的优点。
扩展的NVMe控制器连同SSD命名空间安装在服务器的PCIe槽中,以太网连接器通过以太网电缆连接到架顶交换机。在这种情况下,服务器可以通过如由示例性实施例所描述的NVMoE协议来共享SSD命名空间。
图12A-B图示了根据一个示例性实施例的作为单个服务器***的扩展的NVMe存储网络的应用模型。在示例性实施例中,单个服务器***包括单个主机(CPU)和多个NVMe存储节点,其各自包括专用扩展的NVMe控制器和专用本地非易失性存储器。扩展的NVMe控制器可以充当主机总线适配器(HBA)。存在从扩展的NVMe控制器出来的多个接口。扩展的NVMe控制器可以然后将每个接口连接到SSD命名空间。这样,主机(CPU)能够利用比传统SAS/SATA接口更低延时的延时来访问SSD命名空间。图12A-B还示出了HBA启动器和设备。
图13图示了根据一个示例性实施例的作为高可用性双服务器***1300的扩展的NVMe存储网络的应用模型。在所图示的双服务器***1300中,扩展的NVMe控制器连同SSD命名空间被安装在服务器(例如,服务器A、服务器B)的PCIe槽中。每个服务器包括主机处理器(CPU)。以太网连接器被用于将两个服务器中的NVMe控制器连接在一起。在这种情况下,服务器A和服务器B可以工作在共享驻留在服务器A和服务器B中的所有命名空间的主动-主动或者主动-备用模式中。如果一个服务器的CPU发生故障,另一个服务器的CPU可以接管。另外,可能的是,驻留在服务器B上的命名空间可以是驻留在服务器A上的命名空间的镜像复制并且在写入服务器A上的命名空间时保持同步。因此,如果服务器A发生故障,则服务器B可以在没有损失的情况下接管。
注意,命名空间NS_A1、NS_A2、NS_B1和NS_B2是逻辑驱动器(即,非易失性存储器块的集合)。其相应地表现为CPUA和CPUB的本地驱动器。
图14是根据一个示例性实施例的将扩展的NVMe存储网络的应用模型图示为双端口服务器***1400的示图。***1400可以是双CPU单服务器***,其包括具有其本地命名空间控制器的两个扩展的NVMe控制器。两个扩展的NVMe控制器通过以太网接口彼此连接。在所图示的实施例中,***1400包括连接到两个CPU的两个PCIe端口以及每个CPU的一个PCIe接口。每个PCIe端口将CPU连接到扩展的NVMe控制器。通过这种方式,***1400可以支持双端口PCIeSSD控制器应用。
图15图示了根据一个示例性实施例的命名空间控制器。如示例性实施例中所示,命名空间控制器包括以太网MAC接口、命令处理器、数据缓冲管理器、ECC编码器/解码器、闪速存储器定序器、FTL管理逻辑模块、闪速块管理器和垃圾回收管理器。以太网MAC接口接收或者发送NVMoE帧。命令处理器解译NVMoE命令帧数据。在命令由命令处理器处理或者从ECC解码器接收之后,数据缓冲模块存储NVMoE命令。FTL管理逻辑模块可选地将逻辑块地址转换为物理页面地址。闪速块管理器管理块的状态,无论其是某些P/E周期期间或者需要刷新。垃圾回收管理器管理定时以重新循环非易失性存储器块数据以得到擦除和写入的自由块。ECC编码器/解码器可以可选地添加纠错编码(ErrorCorrectionCoding)能力以改正非易失性存储器位错误。闪速存储器接口定序器控制命令和数据接口,使得基于NVMoE命令和垃圾回收管理器的需要,来存储和读取数据。
参考图16,图示了用于实现本发明的示例性计算***1600。计算***1600包括以个人计算机(或者节点)20或者服务器等等的形式的通用计算设备(即,主机节点),其包括处理单元21、***存储器22和***总线23,其将包括***存储器的各种***部件耦合到处理单元21。***总线23可以是若多种类型的总线结构中的任一种,包括存储器总线或者存储器控制器、***设备总线和使用各种总线架构中的任一种总线架构的本地总线。***存储器包括只读存储器(ROM)24和随机存取存储器(RAM)25。
包含基本例程(其帮助在诸如启动期间传送计算机20内的元件之间的信息)的基本收入/输出***26(BIOS)被存储在ROM24中。个人计算机/节点20还可以包括用于从硬盘读取和写入到硬盘(未示出)的硬盘驱动器、用于从可移动磁盘29读取或者写入到可移动磁盘29的磁盘驱动器28和用于从可移动光盘31读取或者写入到可移动光盘31的光盘驱动器30,所述可移动光盘31,诸如CD-ROM、DVD-ROM或者其他光学介质。
硬盘驱动器、磁盘驱动器28和光盘驱动器30相应地通过硬盘驱动器接口32、磁盘驱动器接口33和光学驱动器接口34连接到***总线23。驱动器和其相关联的计算机可读介质提供针对个人计算机20的计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。
尽管在本文中所描述的示例性环境利用硬盘、可移动磁盘29和可移动光盘31,但是本领域技术人员应当理解,可以存储由计算机可访问的数据的其他类型的计算机可读介质(诸如磁带盒、闪速存储器卡、数字视频光盘、伯努利墨盒、随机存取存储器(RAM)、只读存储器(ROM)、固态驱动器等等)也可以用于示例性操作环境中。
若干程序模块可以被存储在硬盘、固态驱动器、磁盘29、光盘31、ROM24或者RAM25上,器包括操作***35(优选的WINDOWSTM)。计算机20包括与操作***35相关联或者被包括在操作***35内的文件***36,诸如WINDOWSNTTM文件***(NTFS)、一个或多个应用程序37、其他程序模块38和程序数据39。用户可以通过诸如键盘40和指点设备42的输入设备来将命令和信息输入个人计算机20中。
其他输入设备(未示出)可以包括麦克风、操纵杆、游戏板、卫星盘、扫描器等。这些和其他输入设备常常通过耦合到***总线的串行端口接口46来连接到处理单元21,但是可以通过(诸如并行端口、游戏端口或者通用串行总线(USB))的其他接口而连接。监视器47或者其他类型的显示设备还经由诸如视频适配器48的接口连接到***总线23。
除监视器47外,个人计算机通常包括其他***输出设备(未示出),诸如扬声器和打印机。数据存储设备(诸如硬盘驱动器、固态驱动器、磁带或者其他类型的存储设备)还经由接口连接到***总线23,诸如经由连接接口连接到主机适配器,诸如集成驱动电子设备(IDE)、高级技术附件(ATA)、UltraATA、小型计算机***接口(SCSI)、SATA、串行SCSI、PCIe等等。
计算机20可以使用到一个或多个远程计算机49的逻辑连接来在联网环境中进行操作。(一个或多个)远程计算机49可以是另一个人计算机、服务器、路由器、网络PC、对等设备或者其他公知的网络节点,并且通常包括关于计算机20上文所描述的许多或者全部元件。
计算机20还可以包括存储器存储设备50。逻辑连接包括局域网(LAN)51和广域网(WAN)52。这样的联网环境在办公室、企业计算机网络、内联网和因特网中是常见的。当使用在LAN联网环境中,个人计算机20通过网络接口或者适配器53连接到局域网51。
当使用在WAN网络环境中,个人计算机20通常包括调制解调器54或者用于通过诸如因特网的广域网52建立通信的其他装置。可以是内部或者外部的调制解调器54经由串行端口接口46连接到***总线23。在网络化的环境中,关于个人计算机20所描绘的程序模块或者其部分可以被存储在远程存储器存储设备中。应当理解,所示出的网络连接是示例性的,并且可以使用建立计算机之间的通信链路的其他装置。
因此,已经描述了***和方法的不同实施例,对于本领域技术人员而言应当明显的是,已经实现了所描述的方法和装置的一些优点。
还应当理解,可以在本发明的范围和精神内做出各种修改、变型和其备选实施例。本发明进一步由所附的权利要求书所限定。
尽管详细描述包含许多特性,但是这些不应当被解释为对本发明的范围的限制,而是仅图示本发明的不同示例和方面。应当理解,本发明的范围包括上文未详细讨论的其他实施例。在不脱离如所附的权利要求书中所限定的本发明的精神和范围的情况下,可以在本文所公开的本发明的方法和装置的布置、操作和细节中做出将对本领域技术人员明显的各种其他修改、改变和变型。因此,应当通过所附的权利要求书和其法律等同物来确定本发明的范围。
取决于模块的形式,模块之间的“耦合”还可以采取不同的形式。专用电路可以例如通过硬连线或者通过访问共同寄存器或者存储器位置而彼此耦合。软件“耦合”可以通过在软件组件之间(或者在软件和硬件之间,如果那种情况的话)传递信息的任何数目的方式发生。术语“耦合”旨在包括所有这些并且不旨在限制为两个组件之间的硬连线永久连接。另外,可以存在中介元件。例如,当两个元件描述为彼此耦合时,这既不隐含元件彼此直接耦合也不排除两者之间的其他元件的使用。
Claims (32)
1.一种扩展的NVMe控制器,所述扩展的NVMe控制器具有适于将所述NVMe控制器耦合到主机处理器的主机接口和适于将所述NVMe控制器耦合到外部网络的直接网络接口;其中所述NVMe控制器从所述主机处理器接收指向针对耦合到所述外部网络的远程非易失性存储器的远程命名空间的非易失性存储器Express(NVMe)命令,并且所述NVMe控制器将所述NVMe命令转换为适于在所述外部网络上向耦合到所述远程命名空间的远程扩展的NVMe控制器传输的格式。
2.根据权利要求1所述的扩展的NVMe控制器,其中所述外部网络是以太网。
3.根据权利要求2所述的扩展的NVMe控制器,其中所述直接网络接口是以太网MAC接口。
4.根据权利要求2所述的扩展的NVMe控制器,还包括命令转译器,所述命令转译器将所述NVMe命令转译为以太网上的NVM(NVMoE)命令,包括将所述NVMe命令的主机标识符(HSID)和/或命名空间标识符(NSID)映射到以太网介质访问控制(MAC)地址。
5.根据权利要求4所述的扩展的NVMe控制器,其中所述命令转译器访问用于将所述HSID和/或NSID映射到所述以太网MAC地址的映射表。
6.根据权利要求4所述的扩展的NVMe控制器,其中所述HSID和/或NSID被映射到所述以太网MAC地址的较低位。
7.根据权利要求4所述的扩展的NVMe控制器,其中所述以太网MAC地址的较高位被分配给组织唯一标识符(OUI)。
8.根据权利要求4所述的扩展的NVMe控制器,其中所述NVMoE命令由包括一个或多个MAC地址的NVMoE帧指定,并且NVMe帧指定所述NVMe命令。
9.根据权利要求8所述的扩展的NVMe控制器,其中所述一个或多个MAC地址包括目的地MAC地址和源MAC地址。
10.根据权利要求8所述的扩展的NVMe控制器,其中所述NVMoE帧还包括指示所述NVMoE帧是NVMoE类型的帧的帧类型代码。
11.根据权利要求8所述的扩展的NVMe控制器,其中所述NVMoE帧还包括针对整个NVMoE帧的帧校验和(FCS)。
12.根据权利要求8所述的扩展的NVMe控制器,其中所述NVMoE帧还包括适于测量延时的时间戳。
13.根据权利要求1所述的扩展的NVMe控制器,其中所述NVMe命令包括读取和写入命令。
14.根据权利要求1所述扩展的NVMe控制器,其中所述主机接口是PCIExpress(PCIe)接口。
15.根据权利要求1所述的扩展的NVMe控制器,还包括调度器和仲裁器,所述调度器和仲裁器调度用于处理所述NVMe命令的队列。
16.根据权利要求1所述的扩展的NVMe控制器,还包括重试机制,所述重试机制用于从在所述外部网络上传输的NVMe命令的丢失进行恢复。
17.根据权利要求16所述的扩展的NVMe控制器,其中所述重试机制包括用于检测NVMe命令的丢失的定时器。
18.根据权利要求17所述扩展的NVMe控制器,其中所述重试机制响应于根据所述定时器对所述NVMe命令的丢失的确定,重新发出NVMe命令。
19.根据权利要求1所述的扩展的NVMe控制器,其中所述远程非易失性存储器是固态驱动器。
20.根据权利要求1所述的扩展的NVMe控制器,其中所述远程非易失性存储器是硬盘驱动器。
21.根据权利要求1所述的扩展的NVMe控制器,还包括本地存储器接口,所述本地存储器接口适于将所述NVMe控制器耦合到针对本地非易失性存储器的本地命名空间;其中所述NVMe控制器从所述主机处理器接收指向所述本地命名空间的NVMe命令并且向所述本地命名空间提供针对所述主机处理器的I/O访问。
22.根据权利要求21所述的扩展的NVMe控制器,其中所述NVMe命令通过HSID和NSID对所述本地命名空间进行寻址,并且所述扩展的NVMe控制器访问目录服务器,所述目录服务器管理HSID和NSID以获得针对所述本地命名空间的HSID和/或NSID。
23.一种用于访问远程命名空间的方法,所述方法包括:
扩展的NVMe控制器从主机处理器接收指向针对耦合到外部网络的远程非易失性存储器的远程命名空间的NVMe命令,所述扩展的NVMe控制器还耦合到所述外部网络;
所述扩展的NVMe控制器将接收的所述NVMe命令转换为适于在所述外部网络上向耦合到所述远程命名空间的远程NVMe控制器传输的格式;以及
所述扩展的NVMe控制器在所述外部网络上向所述远程NVMe控制器直接传输转换的所述NVMe命令。
24.一种扩展的NVMe存储网络,所述扩展的NVMe存储网络包括多个本地NVMe存储节点和将所述本地NVMe存储节点耦合的外部网络;所述本地NVMe存储节点包括(一个或多个)主机处理器、扩展的NVMe控制器和本地非易失性存储器;其中所述扩展的NVMe控制器包括:
主机接口,所述主机接口适于将所述NVMe控制器耦合到所述(一个或多个)主机处理器;
本地存储接口,所述本地存储接口适于将所述NVMe控制器耦合到针对所述本地非易失性存储器的本地命名空间;其中所述NVMe控制器从所述(一个或多个)主机处理器接收指向所述本地命名空间的第一NVMe命令并且根据所述第一NVMe命令向所述本地命名空间提供针对所述(一个或多个)主机处理器的I/O访问;以及
直接网络接口,所述直接网络接口适于将所述NVMe控制器耦合到所述外部网络;其中所述NVMe控制器还从所述(一个或多个)主机处理器接收指向耦合到所述外部网络的远程命名空间的第二NVMe命令;并且所述NVMe控制器将所述第二NVMe命令转换为适于在所述外部网络上向耦合到所述远程命名空间的其他扩展的NVMe控制器传输的格式。
25.根据权利要求24所述的扩展的NVMe存储网络,其中所述外部网络是L3网络。
26.根据权利要求24所述的扩展的NVMe存储网络,其中所述外部网络包括L2以太网和L3网络。
27.根据权利要求26所述的扩展的NVMe存储网络,其中所述扩展的NVMe控制器还包括命令转译器,所述命令转译器将所述第二NVMe命令转译为适于在以太网上的传输的以太网上的NVM(NVMoE)命令,并且第二NVMoE命令由L3分组报头封装以用于在所述L3网络上传输。
28.根据权利要求26所述的扩展的NVMe存储网络,其中第二NVMoE命令由L3网关分段和重新装配。
29.根据权利要求24所述的扩展的NVMe存储网络,所述扩展的NVMe存储网络被实现为服务器机架,其中所述本地NVMe存储节点包括所述服务器机架中的服务器,并且所述外部网络包括架顶以太网交换机。
30.根据权利要求24所述的扩展的NVMe存储网络,所述扩展的NVMe存储网络被实现为单个服务器,其中所述(一个或多个)主机处理器包括单个主机,但是每个本地NVMe存储节点包括专用扩展的NVMe控制器和专用本地非易失性存储器。
31.根据权利要求24所述的扩展的NVMe存储网络,所述扩展的NVMe存储网络包括经由第二网络接口耦合到第二网络的至少两个主机处理器,其中所述本地NVMe存储节点经由耦合到所述外部网络的所述NVMe控制器提供冗余。
32.根据权利要求24所述的扩展的NVMe存储网络,所述扩展的NVMe存储网络被实现为单个服务器,所述单个服务器包括至少两个主机处理器,每个主机处理器经由PCIe端口连接到扩展的NVMe控制器,其中所述本地NVMe存储节点支持双端口NVMe控制器服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811212442.7A CN109582614B (zh) | 2013-06-26 | 2014-06-19 | 针对远程存储器访问的nvm express控制器 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361839389P | 2013-06-26 | 2013-06-26 | |
US61/839,389 | 2013-06-26 | ||
US14/191,335 | 2014-02-26 | ||
US14/191,335 US9430412B2 (en) | 2013-06-26 | 2014-02-26 | NVM express controller for remote access of memory and I/O over Ethernet-type networks |
PCT/US2014/043279 WO2014209764A1 (en) | 2013-06-26 | 2014-06-19 | Nvm express controller for remote memory access |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811212442.7A Division CN109582614B (zh) | 2013-06-26 | 2014-06-19 | 针对远程存储器访问的nvm express控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105556930A true CN105556930A (zh) | 2016-05-04 |
CN105556930B CN105556930B (zh) | 2018-11-06 |
Family
ID=52116735
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811212442.7A Active CN109582614B (zh) | 2013-06-26 | 2014-06-19 | 针对远程存储器访问的nvm express控制器 |
CN201480042920.8A Active CN105556930B (zh) | 2013-06-26 | 2014-06-19 | 扩展的NVMe控制器、存储网络以及访问远程命名空间的方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811212442.7A Active CN109582614B (zh) | 2013-06-26 | 2014-06-19 | 针对远程存储器访问的nvm express控制器 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9430412B2 (zh) |
CN (2) | CN109582614B (zh) |
TW (1) | TWI571087B (zh) |
WO (1) | WO2014209764A1 (zh) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106603346A (zh) * | 2017-02-07 | 2017-04-26 | 佛山易识科技有限公司 | 基于虚拟可扩展局域网的网络质量测试工具 |
CN107077304A (zh) * | 2016-09-18 | 2017-08-18 | 深圳市大疆创新科技有限公司 | 数据转换设备、芯片、方法、装置及影像*** |
CN107346265A (zh) * | 2016-05-05 | 2017-11-14 | 北京忆恒创源科技有限公司 | 实现QoS的方法与装置 |
CN107911414A (zh) * | 2017-10-20 | 2018-04-13 | 英业达科技有限公司 | 数据存取*** |
CN108549610A (zh) * | 2018-03-27 | 2018-09-18 | 深圳忆联信息***有限公司 | 一种NVMe扩展的实现方法及固态硬盘 |
CN108563585A (zh) * | 2018-03-27 | 2018-09-21 | 深圳忆联信息***有限公司 | 一种降低ssd写放大的方法 |
CN108776576A (zh) * | 2017-03-31 | 2018-11-09 | 三星电子株式会社 | 用于聚合的网上NVMe装置的聚合存储方法 |
CN108984420A (zh) * | 2017-05-31 | 2018-12-11 | 希捷科技有限公司 | 管理非易失性存储器(nvm)中的多个名称空间 |
CN109117386A (zh) * | 2018-07-12 | 2019-01-01 | 中国科学院计算技术研究所 | 一种网络远程读写二级存储的***及方法 |
CN109565523A (zh) * | 2016-09-12 | 2019-04-02 | 英特尔公司 | 用于结构上的解聚的存储级存储器的机制 |
CN109861914A (zh) * | 2017-11-30 | 2019-06-07 | 三星电子株式会社 | 提供差异化存储服务的方法和以太网固态驱动器 |
WO2019127018A1 (zh) * | 2017-12-26 | 2019-07-04 | 华为技术有限公司 | 存储***访问方法及装置 |
CN110199270A (zh) * | 2017-12-26 | 2019-09-03 | 华为技术有限公司 | 存储***中存储设备的管理方法及装置 |
CN110392092A (zh) * | 2018-04-17 | 2019-10-29 | 三星电子株式会社 | 与网络结构连接的网络存储设备 |
CN110727617A (zh) * | 2018-07-16 | 2020-01-24 | 三星电子株式会社 | 同时通过PCIe EP和网络接口访问双线SSD装置的方法和*** |
CN110825670A (zh) * | 2018-08-08 | 2020-02-21 | 马维尔国际贸易有限公司 | 基于NVMe协议的主机与固态驱动器(SSD)之间的受管理交换 |
CN111061425A (zh) * | 2018-10-16 | 2020-04-24 | 三星电子株式会社 | 主机、非易失性存储器快速固态驱动器及存储服务的方法 |
CN111107150A (zh) * | 2019-12-16 | 2020-05-05 | 联想(北京)有限公司 | 连接方法、网关装置和用于客户端的连接装置 |
WO2020135504A1 (zh) * | 2018-12-27 | 2020-07-02 | 中兴通讯股份有限公司 | 一种虚拟化方法和装置 |
CN111639008A (zh) * | 2020-05-29 | 2020-09-08 | 杭州海康威视***技术有限公司 | 基于双端口ssd的文件***状态监测方法、装置及电子设备 |
CN112347012A (zh) * | 2016-06-20 | 2021-02-09 | 北京忆芯科技有限公司 | 支持SR-IOV的NVMe控制器及方法 |
WO2021121054A1 (zh) * | 2019-12-17 | 2021-06-24 | 北京忆芯科技有限公司 | 加速sgl处理的方法与存储设备 |
CN114691586A (zh) * | 2022-05-26 | 2022-07-01 | 阿里巴巴(中国)有限公司 | 服务器、传输数据的方法以及带外管理芯片 |
Families Citing this family (151)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9785355B2 (en) | 2013-06-26 | 2017-10-10 | Cnex Labs, Inc. | NVM express controller for remote access of memory and I/O over ethernet-type networks |
US9430412B2 (en) | 2013-06-26 | 2016-08-30 | Cnex Labs, Inc. | NVM express controller for remote access of memory and I/O over Ethernet-type networks |
US9785356B2 (en) | 2013-06-26 | 2017-10-10 | Cnex Labs, Inc. | NVM express controller for remote access of memory and I/O over ethernet-type networks |
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 |
US9986028B2 (en) * | 2013-07-08 | 2018-05-29 | Intel Corporation | Techniques to replicate data between storage servers |
US9933956B2 (en) * | 2013-09-05 | 2018-04-03 | Nutanix, Inc. | Systems and methods for implementing stretch clusters in a virtualization environment |
US10628353B2 (en) * | 2014-03-08 | 2020-04-21 | Diamanti, Inc. | Enabling use of non-volatile media-express (NVMe) over a network |
US10635316B2 (en) | 2014-03-08 | 2020-04-28 | Diamanti, Inc. | Methods and systems for data storage using solid state drives |
US11921658B2 (en) * | 2014-03-08 | 2024-03-05 | Diamanti, Inc. | Enabling use of non-volatile media-express (NVMe) over a network |
CN106688217B (zh) * | 2014-03-08 | 2021-11-12 | 狄亚曼提公司 | 用于融合联网和存储的方法和*** |
US9727503B2 (en) * | 2014-03-17 | 2017-08-08 | Mellanox Technologies, Ltd. | Storage system and server |
US9696942B2 (en) | 2014-03-17 | 2017-07-04 | Mellanox Technologies, Ltd. | Accessing remote storage devices using a local bus protocol |
WO2015162660A1 (ja) * | 2014-04-21 | 2015-10-29 | 株式会社日立製作所 | 計算機システム |
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 |
US10339079B2 (en) * | 2014-06-02 | 2019-07-02 | Western Digital Technologies, Inc. | System and method of interleaving data retrieved from first and second buffers |
JP6181304B2 (ja) | 2014-06-19 | 2017-08-16 | 株式会社日立製作所 | ストレージ装置およびインタフェース装置 |
WO2015194033A1 (ja) * | 2014-06-20 | 2015-12-23 | 株式会社日立製作所 | 計算機システム |
US10979503B2 (en) | 2014-07-30 | 2021-04-13 | Excelero Storage Ltd. | System and method for improved storage access in multi core system |
US10936200B2 (en) | 2014-07-30 | 2021-03-02 | Excelero Storage Ltd. | System and method for improved RDMA techniques for multi-host network interface controllers |
US10237347B2 (en) * | 2015-06-08 | 2019-03-19 | Excelero Storage Ltd. | System and method for providing a client device seamless access to a plurality of remote storage devices presented as a virtual device |
US9563367B2 (en) * | 2014-08-26 | 2017-02-07 | HGST Netherlands B.V. | Latency command processing for solid state drive interface protocol |
US9712619B2 (en) * | 2014-11-04 | 2017-07-18 | Pavilion Data Systems, Inc. | Virtual non-volatile memory express drive |
US9565269B2 (en) | 2014-11-04 | 2017-02-07 | Pavilion Data Systems, Inc. | Non-volatile memory express over ethernet |
US10061743B2 (en) * | 2015-01-27 | 2018-08-28 | International Business Machines Corporation | Host based non-volatile memory clustering using network mapped storage |
CN104615577A (zh) * | 2015-02-09 | 2015-05-13 | 浪潮集团有限公司 | 一种大数据服务器 |
US9841904B2 (en) | 2015-03-02 | 2017-12-12 | Samsung Electronics Co., Ltd. | Scalable and configurable non-volatile memory module array |
US9876698B2 (en) | 2015-04-09 | 2018-01-23 | International Business Machines Corporation | Interconnect congestion control in a storage grid |
WO2016182756A1 (en) | 2015-05-14 | 2016-11-17 | Apeiron Data Systems | Accessing multiple storage devices from multiple hosts without remote direct memory access (rdma) |
US9760314B2 (en) * | 2015-05-29 | 2017-09-12 | Netapp, Inc. | Methods for sharing NVM SSD across a cluster group and devices thereof |
US9792048B2 (en) | 2015-06-22 | 2017-10-17 | Western Digital Technologies, Inc. | Identifying disk drives and processing data access requests |
US10310740B2 (en) | 2015-06-23 | 2019-06-04 | Pure Storage, Inc. | Aligning memory access operations to a geometry of a storage device |
US9547441B1 (en) | 2015-06-23 | 2017-01-17 | Pure Storage, Inc. | Exposing a geometry of a storage device |
US11983138B2 (en) | 2015-07-26 | 2024-05-14 | Samsung Electronics Co., Ltd. | Self-configuring SSD multi-protocol support in host-less environment |
KR102396441B1 (ko) | 2015-08-11 | 2022-05-10 | 삼성전자주식회사 | 통신 중단시 데이터 손실을 방지하도록 동작하는 스토리지 장치 |
WO2017040706A1 (en) * | 2015-09-02 | 2017-03-09 | Cnex Labs, Inc. | Nvm express controller for remote access of memory and i/o over ethernet-type networks |
US11269884B2 (en) | 2015-09-04 | 2022-03-08 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
KR20170028825A (ko) | 2015-09-04 | 2017-03-14 | 퓨어 스토리지, 아이앤씨. | 압축된 인덱스들을 사용한 해시 테이블들에서의 메모리 효율적인 스토리지 및 탐색 |
US11341136B2 (en) | 2015-09-04 | 2022-05-24 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US20170091127A1 (en) * | 2015-09-25 | 2017-03-30 | Intel Corporation | Techniques to Couple with a Storage Device via Multiple Communication Ports |
US10075524B1 (en) * | 2015-09-29 | 2018-09-11 | Amazon Technologies, Inc. | Storage bridge device for communicating with network storage |
US10162793B1 (en) * | 2015-09-29 | 2018-12-25 | Amazon Technologies, Inc. | Storage adapter device for communicating with network storage |
CN109117095B (zh) * | 2015-10-10 | 2021-06-15 | 北京忆芯科技有限公司 | NVMe协议处理器及其处理方法 |
US9886196B2 (en) | 2015-10-21 | 2018-02-06 | Western Digital Technologies, Inc. | Method and system for efficient common processing in memory device controllers |
US10108340B2 (en) | 2015-10-21 | 2018-10-23 | Western Digital Technologies, Inc. | Method and system for a common processing framework for memory device controllers |
US10467155B2 (en) * | 2015-10-26 | 2019-11-05 | Micron Technology, Inc. | Command packets for the direct control of non-volatile memory channels within a solid state drive |
US10452596B2 (en) * | 2015-10-29 | 2019-10-22 | Micron Technology, Inc. | Memory cells configured in multiple configuration modes |
CN106817291A (zh) * | 2015-11-30 | 2017-06-09 | 中兴通讯股份有限公司 | Vxlan实现装置及其工作方法 |
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 |
EP3260971B1 (en) * | 2015-12-28 | 2021-03-10 | Huawei Technologies Co., Ltd. | Data processing method and nvme storage |
US20170228328A1 (en) * | 2016-02-04 | 2017-08-10 | CNEXLABS, Inc. | Method and apparatus for providing small form-factor pluggable (“sfp”) non-volatile memory (“nvm”) storage devices |
US10255955B2 (en) | 2016-02-09 | 2019-04-09 | Samsung Electronics Co., Ltd. | Multi-port memory device and a method of using the same |
US10235198B2 (en) | 2016-02-24 | 2019-03-19 | Samsung Electronics Co., Ltd. | VM-aware FTL design for SR-IOV NVME SSD |
KR102564165B1 (ko) * | 2016-04-25 | 2023-08-04 | 삼성전자주식회사 | 비휘발성 메모리 익스프레스 컨트롤러에 의한 입출력 큐 관리 방법 |
US10133503B1 (en) | 2016-05-02 | 2018-11-20 | Pure Storage, Inc. | Selecting a deduplication process based on a difference between performance metrics |
US9940060B1 (en) | 2016-05-02 | 2018-04-10 | Pure Storage, Inc. | Memory use and eviction in a deduplication storage system |
US10452297B1 (en) | 2016-05-02 | 2019-10-22 | Pure Storage, Inc. | Generating and optimizing summary index levels in a deduplication storage system |
US10089134B2 (en) | 2016-06-30 | 2018-10-02 | Western Digital Technologies, Inc. | Controlling access to namespaces of a storage device |
US10628182B2 (en) | 2016-07-11 | 2020-04-21 | Pure Storage, Inc. | Generation of an instruction guide based on a current hardware configuration of a system |
KR102155659B1 (ko) * | 2016-07-26 | 2020-09-14 | 삼성전자주식회사 | 멀티-모드 장치 및 그것의 동작 방법 |
US10372659B2 (en) | 2016-07-26 | 2019-08-06 | Samsung Electronics Co., Ltd. | Multi-mode NMVE over fabrics devices |
US10762023B2 (en) | 2016-07-26 | 2020-09-01 | Samsung Electronics Co., Ltd. | System architecture for supporting active pass-through board for multi-mode NMVe over fabrics devices |
US11461258B2 (en) | 2016-09-14 | 2022-10-04 | Samsung Electronics Co., Ltd. | Self-configuring baseboard management controller (BMC) |
US10387353B2 (en) | 2016-07-26 | 2019-08-20 | Samsung Electronics Co., Ltd. | System architecture for supporting active pass-through board for multi-mode NMVE over fabrics devices |
US10210123B2 (en) | 2016-07-26 | 2019-02-19 | Samsung Electronics Co., Ltd. | System and method for supporting multi-path and/or multi-mode NMVe over fabrics devices |
KR102262541B1 (ko) * | 2016-07-26 | 2021-06-09 | 삼성전자주식회사 | 멀티-모드 장치 및 그것의 동작 방법 |
US11144496B2 (en) | 2016-07-26 | 2021-10-12 | Samsung Electronics Co., Ltd. | Self-configuring SSD multi-protocol support in host-less environment |
US10346041B2 (en) | 2016-09-14 | 2019-07-09 | Samsung Electronics Co., Ltd. | Method for using BMC as proxy NVMeoF discovery controller to provide NVM subsystems to host |
US20190109720A1 (en) | 2016-07-26 | 2019-04-11 | Samsung Electronics Co., Ltd. | Modular system (switch boards and mid-plane) for supporting 50g or 100g ethernet speeds of fpga+ssd |
US10540095B1 (en) | 2016-08-12 | 2020-01-21 | Pure Storage, Inc. | Efficient garbage collection for stable data |
TWI595356B (zh) * | 2016-08-19 | 2017-08-11 | 大心電子(英屬維京群島)股份有限公司 | 資料傳輸方法及使用所述方法的儲存控制器與清單管理電路 |
US10191662B2 (en) | 2016-10-04 | 2019-01-29 | Pure Storage, Inc. | Dynamic allocation of segments in a flash storage system |
US20180095788A1 (en) | 2016-10-04 | 2018-04-05 | Pure Storage, Inc. | Scheduling operations for a storage device |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
WO2018067746A1 (en) * | 2016-10-04 | 2018-04-12 | Pure Storage, Inc. | RESERVATIONS OVER MULTIPLE PATHS ON NVMe OVER FABRICS |
US10678432B1 (en) | 2016-10-04 | 2020-06-09 | Pure Storage, Inc. | User space and kernel space access to memory devices through private queues |
US10162523B2 (en) | 2016-10-04 | 2018-12-25 | Pure Storage, Inc. | Migrating data between volumes using virtual copy operation |
US10481798B2 (en) | 2016-10-28 | 2019-11-19 | Pure Storage, Inc. | Efficient flash management for multiple controllers |
CN107992436B (zh) * | 2016-10-26 | 2021-04-09 | 华为技术有限公司 | 一种NVMe数据读写方法及NVMe设备 |
US10185505B1 (en) | 2016-10-28 | 2019-01-22 | Pure Storage, Inc. | Reading a portion of data to replicate a volume based on sequence numbers |
US10359942B2 (en) | 2016-10-31 | 2019-07-23 | Pure Storage, Inc. | Deduplication aware scalable content placement |
KR20180047402A (ko) | 2016-10-31 | 2018-05-10 | 삼성전자주식회사 | 멀티 네임스페이스를 관리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
US10469288B2 (en) | 2016-11-01 | 2019-11-05 | International Business Machines Corporation | Efficient data transfer in remote mirroring connectivity on software-defined storage systems |
US10769081B2 (en) * | 2016-12-30 | 2020-09-08 | Intel Corporation | Computer program product, system, and method to allow a host and a storage device to communicate between different fabrics |
US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
US10387661B2 (en) | 2017-01-09 | 2019-08-20 | Pure Storage, Inc. | Data reduction with end-to-end security |
US10528280B1 (en) | 2017-01-31 | 2020-01-07 | Pure Storage, Inc. | Tombstones for no longer relevant deduplication entries |
US10331584B2 (en) | 2017-03-09 | 2019-06-25 | Toshiba Memory Corporation | Internal system namespace exposed through use of two local processors and controller memory buffer with two reserved areas |
US10733137B2 (en) | 2017-04-25 | 2020-08-04 | Samsung Electronics Co., Ltd. | Low latency direct access block storage in NVME-of ethernet SSD |
US10958729B2 (en) * | 2017-05-18 | 2021-03-23 | Intel Corporation | Non-volatile memory express over fabric (NVMeOF) using volume management device |
US10417733B2 (en) | 2017-05-24 | 2019-09-17 | Samsung Electronics Co., Ltd. | System and method for machine learning with NVMe-of ethernet SSD chassis with embedded GPU in SSD form factor |
US11102294B2 (en) | 2017-06-09 | 2021-08-24 | Samsung Electronics Co., Ltd. | System and method for supporting energy and time efficient content distribution and delivery |
US10579568B2 (en) * | 2017-07-03 | 2020-03-03 | Intel Corporation | Networked storage system with access to any attached storage device |
US10673678B1 (en) * | 2017-07-14 | 2020-06-02 | EMC IP Holding Company LLC | SCSI target re-entrant protocol |
US10852990B2 (en) * | 2017-08-02 | 2020-12-01 | Samsung Electronics Co., Ltd. | Hybrid framework of NVMe-based storage system in cloud computing environment |
US10768820B2 (en) * | 2017-11-16 | 2020-09-08 | Samsung Electronics Co., Ltd. | On-demand storage provisioning using distributed and virtual namespace management |
US10992967B2 (en) * | 2017-12-05 | 2021-04-27 | Sony Interactive Entertainment LLC | Ultra high-speed low-latency network storage |
US10846017B2 (en) | 2017-12-14 | 2020-11-24 | Western Digital Technologies, Inc. | Secure digital (SD) to NVMe buffer manager |
US11017126B2 (en) | 2017-12-19 | 2021-05-25 | Western Digital Technologies, Inc. | Apparatus and method of detecting potential security violations of direct access non-volatile memory device |
US11720283B2 (en) | 2017-12-19 | 2023-08-08 | Western Digital Technologies, Inc. | Coherent access to persistent memory region range |
US10929309B2 (en) | 2017-12-19 | 2021-02-23 | Western Digital Technologies, Inc. | Direct host access to storage device memory space |
US10715499B2 (en) | 2017-12-27 | 2020-07-14 | Toshiba Memory Corporation | System and method for accessing and managing key-value data over networks |
US10534738B2 (en) * | 2018-01-17 | 2020-01-14 | Western Digital Technologies, Inc. | Host bus adaptor with configurable interface |
US20190245924A1 (en) * | 2018-02-06 | 2019-08-08 | Alibaba Group Holding Limited | Three-stage cost-efficient disaggregation for high-performance computation, high-capacity storage with online expansion flexibility |
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 |
US10310760B1 (en) | 2018-05-21 | 2019-06-04 | Pure Storage, Inc. | Layering communication fabric protocols |
US11954220B2 (en) | 2018-05-21 | 2024-04-09 | Pure Storage, Inc. | Data protection for container storage |
CN108804035A (zh) * | 2018-05-22 | 2018-11-13 | 深圳忆联信息***有限公司 | 降低io延时的方法、装置、计算机设备及存储介质 |
US11509606B2 (en) * | 2018-06-29 | 2022-11-22 | Intel Corporation | Offload of storage node scale-out management to a smart network interface controller |
GB201814918D0 (en) * | 2018-09-13 | 2018-10-31 | Blancco Tech Group Ip Oy | Method and apparatus for use in sanitizing a network of non-volatile memory express devices |
KR102442118B1 (ko) * | 2018-11-12 | 2022-09-13 | 한국전자통신연구원 | 유니커널을 이용하는 원격 직접 메모리 접근 기반 파일 입출력 오프로드 방법 및 장치 |
US10635355B1 (en) | 2018-11-13 | 2020-04-28 | Western Digital Technologies, Inc. | Bandwidth limiting in solid state drives |
CN109448779B (zh) * | 2018-11-14 | 2020-11-20 | 苏州浪潮智能科技有限公司 | 一种Dual Port SSD的SI测试方法、装置 |
US10860504B2 (en) | 2018-12-05 | 2020-12-08 | New Century Technologies Ltd. | Peripheral device with embedded video codec functionality |
KR20200072639A (ko) | 2018-12-12 | 2020-06-23 | 삼성전자주식회사 | 저장 장치 및 그것의 동작 방법 |
US11366610B2 (en) | 2018-12-20 | 2022-06-21 | Marvell Asia Pte Ltd | Solid-state drive with initiator mode |
US10951544B2 (en) * | 2019-01-30 | 2021-03-16 | The Boeing Company | Apparatus and method of crosschecking data copies using one or more voter elements |
WO2020183246A2 (en) | 2019-03-14 | 2020-09-17 | Marvell Asia Pte, Ltd. | Termination of non-volatile memory networking messages at the drive level |
EP3939237B1 (en) * | 2019-03-14 | 2024-05-15 | Marvell Asia Pte, Ltd. | Transferring data between solid state drives (ssds) via a connection between the ssds |
US11294602B2 (en) * | 2019-03-14 | 2022-04-05 | Marvell Asia Pte Ltd | Ethernet enabled solid state drive (SSD) |
US11397644B2 (en) | 2019-04-23 | 2022-07-26 | Samsung Electronics Co., Ltd. | Method for controlling operations of RAID system comprising host device and plurality of SSDs |
US11481342B2 (en) | 2019-06-25 | 2022-10-25 | Seagate Technology Llc | Data storage system data access arbitration |
US10929025B2 (en) | 2019-06-25 | 2021-02-23 | Seagate Technology Llc | Data storage system with I/O determinism latency optimization |
US11030129B2 (en) | 2019-09-19 | 2021-06-08 | Samsung Electronics Co., Ltd. | Systems and methods for message tunneling |
US11086804B2 (en) * | 2019-12-09 | 2021-08-10 | Western Digital Technologies, Inc. | Storage system and method for reducing read-retry duration |
US11256448B2 (en) | 2019-12-16 | 2022-02-22 | Samsung Electronics Co., Ltd. | Network storage gateway |
US11157212B2 (en) | 2019-12-19 | 2021-10-26 | Seagate Technology, Llc | Virtual controller memory buffer |
US11422921B2 (en) * | 2019-12-31 | 2022-08-23 | Western Digital Technologies, Inc. | Debug systems for deterministic validation of data storage devices |
US11720413B2 (en) | 2020-06-08 | 2023-08-08 | Samsung Electronics Co., Ltd. | Systems and methods for virtualizing fabric-attached storage devices |
US11775210B2 (en) | 2020-10-14 | 2023-10-03 | Western Digital Technologies, Inc. | Storage system and method for device-determined, application-specific dynamic command clustering |
KR20220060909A (ko) | 2020-11-05 | 2022-05-12 | 삼성전자주식회사 | 스토리지 시스템 및 스토리지 시스템의 동작 방법 |
US20210105207A1 (en) * | 2020-11-18 | 2021-04-08 | Intel Corporation | Direct memory access (dma) engine with network interface capabilities |
US11467994B2 (en) | 2020-12-11 | 2022-10-11 | Hewlett Packard Enterprise Development Lp | Identifiers for connections between hosts and storage devices |
US20220200867A1 (en) * | 2020-12-18 | 2022-06-23 | Western Digital Technologies, Inc. | Management of non-volatile memory express nodes |
CN112749044B (zh) * | 2020-12-31 | 2023-08-18 | 北京七维视觉传媒科技有限公司 | 多通道渲染***的热备份方法及装置 |
US11934658B2 (en) | 2021-03-25 | 2024-03-19 | Mellanox Technologies, Ltd. | Enhanced storage protocol emulation in a peripheral device |
US11934333B2 (en) | 2021-03-25 | 2024-03-19 | Mellanox Technologies, Ltd. | Storage protocol emulation in a peripheral device |
KR102669925B1 (ko) | 2021-06-01 | 2024-05-29 | 에스케이하이닉스 주식회사 | PCIe 인터페이스 장치 및 그 동작 방법 |
KR102635450B1 (ko) * | 2021-05-26 | 2024-02-13 | 에스케이하이닉스 주식회사 | PCIe 장치 및 그 동작 방법 |
US11921657B2 (en) | 2021-05-26 | 2024-03-05 | SK Hynix Inc. | Peripheral component interconnect express (PCIE) device for supporting separate reference clock(s) operating between host and direct memory access (DMA) controller |
KR102669923B1 (ko) | 2021-06-01 | 2024-05-29 | 에스케이하이닉스 주식회사 | PCIe 인터페이스 장치 및 그 동작 방법 |
US11726666B2 (en) | 2021-07-11 | 2023-08-15 | Mellanox Technologies, Ltd. | Network adapter with efficient storage-protocol emulation |
US11966343B2 (en) | 2021-07-19 | 2024-04-23 | Samsung Electronics Co., Ltd. | Universal mechanism to access and control a computational device |
CN113342590B (zh) * | 2021-08-06 | 2021-10-29 | 苏州浪潮智能科技有限公司 | NVMe设备调试功能实现方法、装置、设备及存储介质 |
US11899585B2 (en) | 2021-12-24 | 2024-02-13 | Western Digital Technologies, Inc. | In-kernel caching for distributed cache |
US11934663B2 (en) | 2022-01-10 | 2024-03-19 | Western Digital Technologies, Inc. | Computational acceleration for distributed cache |
US11797379B2 (en) * | 2022-02-04 | 2023-10-24 | Western Digital Technologies, Inc. | Error detection and data recovery for distributed cache |
CN114745325B (zh) * | 2022-03-28 | 2024-07-23 | 合肥边缘智芯科技有限公司 | 一种基于PCIe总线的MAC层数据交换方法及*** |
US12007921B2 (en) | 2022-11-02 | 2024-06-11 | Mellanox Technologies, Ltd. | Programmable user-defined peripheral-bus device implementation using data-plane accelerator (DPA) |
US11811589B1 (en) * | 2023-01-20 | 2023-11-07 | Dell Products L.P. | Software defined storage aware hardware accelerated NVMe initiator service |
CN116880759A (zh) * | 2023-07-13 | 2023-10-13 | 北京大禹智芯科技有限公司 | 一种基于DPU的NVMe***及其启动方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008070172A3 (en) * | 2006-12-06 | 2008-07-24 | David Flynn | Apparatus, system, and method for remote direct memory access to a solid-state storage device |
CN101622606A (zh) * | 2006-12-06 | 2010-01-06 | 弗森多***公司(dba弗森-艾奥) | 用于作为大容量、非易失性存储器的高速缓存的固态存储器的装置、***和方法 |
US8078622B2 (en) * | 2008-10-30 | 2011-12-13 | Network Appliance, Inc. | Remote volume access and migration via a clustered server namespace |
US20130132643A1 (en) * | 2011-11-17 | 2013-05-23 | Futurewei Technologies, Inc. | Method and Apparatus for Scalable Low Latency Solid State Drive Interface |
US20130135816A1 (en) * | 2011-11-17 | 2013-05-30 | Futurewei Technologies, Inc. | Method and Apparatus for Scalable Low Latency Solid State Drive Interface |
Family Cites Families (75)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5862128A (en) | 1995-12-29 | 1999-01-19 | Gte Laboratories Inc | Merged buffer signal switch |
US6021047A (en) | 1997-10-24 | 2000-02-01 | Dell U.S.A., L,P. | Computer and a rack mount system and method for a computer |
US6065088A (en) | 1998-08-31 | 2000-05-16 | International Business Machines Corporation | System and method for interrupt command queuing and ordering |
US6400730B1 (en) | 1999-03-10 | 2002-06-04 | Nishan Systems, Inc. | Method and apparatus for transferring data between IP network devices and SCSI and fibre channel devices over an IP network |
US6834326B1 (en) | 2000-02-04 | 2004-12-21 | 3Com Corporation | RAID method and device with network protocol between controller and storage devices |
US6981070B1 (en) | 2000-07-12 | 2005-12-27 | Shun Hang Luk | Network storage device having solid-state non-volatile memory |
US7386610B1 (en) | 2000-09-18 | 2008-06-10 | Hewlett-Packard Development Company, L.P. | Internet protocol data mirroring |
US6888792B2 (en) | 2000-12-07 | 2005-05-03 | Intel Corporation | Technique to provide automatic failover for channel-based communications |
US6950895B2 (en) | 2001-06-13 | 2005-09-27 | Intel Corporation | Modular server architecture |
US7236459B1 (en) * | 2002-05-06 | 2007-06-26 | Packeteer, Inc. | Method and apparatus for controlling data transmission volume using explicit rate control and queuing without data rate supervision |
US6958916B2 (en) | 2003-02-24 | 2005-10-25 | Hewlett-Packard Development Company, L.P. | Rackmount computer system and method |
JP4558295B2 (ja) * | 2003-09-10 | 2010-10-06 | 株式会社メルコホールディングス | リモートアクセスシステム、リモートアクセス方法およびリモートアクセスプログラム |
US7453808B2 (en) | 2004-03-31 | 2008-11-18 | Alcatel Lucent | Throttling network management and element management system messaging |
US7929442B2 (en) | 2004-06-30 | 2011-04-19 | Intel Corporation | Method, system, and program for managing congestion in a network controller |
JP4446839B2 (ja) * | 2004-08-30 | 2010-04-07 | 株式会社日立製作所 | ストレージ装置及びストレージ管理装置 |
US7370133B2 (en) | 2005-01-20 | 2008-05-06 | International Business Machines Corporation | Storage controller and methods for using the same |
US7454406B2 (en) | 2005-04-29 | 2008-11-18 | Adaptec, Inc. | System and method of handling file metadata |
US20060286993A1 (en) | 2005-06-20 | 2006-12-21 | Motorola, Inc. | Throttling server communications in a communication network |
US8130648B2 (en) | 2006-01-04 | 2012-03-06 | Broadcom Corporation | Hierarchical queue shaping |
US7676694B2 (en) * | 2006-03-31 | 2010-03-09 | Emc Corporation | Managing system components |
US7519769B1 (en) | 2006-06-29 | 2009-04-14 | Emc Corporation | Scalable storage network virtualization |
US8086791B2 (en) | 2006-08-08 | 2011-12-27 | Dataram, Inc. | Solid state memory device with PCI controller |
US8774215B2 (en) | 2006-09-01 | 2014-07-08 | Emulex Corporation | Fibre channel over Ethernet |
JP4727537B2 (ja) | 2006-09-11 | 2011-07-20 | 富士通株式会社 | リレーエージェント装置及び代行アドレス貸与装置 |
US7707383B2 (en) * | 2006-11-21 | 2010-04-27 | Intel Corporation | Address translation performance in virtualized environments |
US7929372B2 (en) | 2007-01-25 | 2011-04-19 | Samsung Electronics Co., Ltd. | Decoder, memory system, and physical position converting method thereof |
JP5255048B2 (ja) | 2007-04-06 | 2013-08-07 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Ipネットワークを通じてブロードキャストされるマルチメディア番組を個別化するための方法、システム、およびコンピュータ・プログラム |
AU2008243102B2 (en) | 2007-11-05 | 2012-01-19 | Videobet Interactive Sweden AB | A gaming system and a method of managing bandwidth usage in a gaming system |
US20130086311A1 (en) | 2007-12-10 | 2013-04-04 | Ming Huang | METHOD OF DIRECT CONNECTING AHCI OR NVMe BASED SSD SYSTEM TO COMPUTER SYSTEM MEMORY BUS |
US8452934B2 (en) | 2008-12-16 | 2013-05-28 | Sandisk Technologies Inc. | Controlled data access to non-volatile memory |
US8977805B2 (en) | 2009-03-25 | 2015-03-10 | Apple Inc. | Host-assisted compaction of memory blocks |
US20100257281A1 (en) | 2009-04-03 | 2010-10-07 | Microsoft Corporation | Peer Connections Over Alternative Communication Mechanisms |
US8347028B2 (en) * | 2009-06-26 | 2013-01-01 | Hitachi, Ltd. | Performance separation optimization according to protocol usage status and storage system performance |
US8593973B2 (en) | 2010-03-09 | 2013-11-26 | Juniper Networks, Inc. | Communicating network path and status information in multi-homed networks |
US9170892B2 (en) | 2010-04-19 | 2015-10-27 | Microsoft Technology Licensing, Llc | Server failure recovery |
US8897303B2 (en) | 2010-06-29 | 2014-11-25 | Futurewei Technologies, Inc. | Delegate gateways and proxy for target hosts in large layer 2 and address resolution with duplicated internet protocol addresses |
US8631100B2 (en) | 2010-07-20 | 2014-01-14 | Juniper Networks, Inc. | Automatic assignment of hardware addresses within computer networks |
US8478714B2 (en) | 2011-01-20 | 2013-07-02 | Southern Company Services, Inc. | Integrated distribution management system channel adapter |
US8594164B2 (en) | 2011-03-25 | 2013-11-26 | Broadcom Corporation | Systems and methods for flow control of a remote transmitter |
US8433833B2 (en) | 2011-03-30 | 2013-04-30 | Intel Corporation | Dynamic reassignment for I/O transfers using a completion queue |
CN103562817A (zh) | 2011-05-25 | 2014-02-05 | 惠普发展公司,有限责任合伙企业 | 刀片计算机*** |
US20130067062A1 (en) * | 2011-09-12 | 2013-03-14 | Microsoft Corporation | Correlation of Users to IP Address Lease Events |
US9813491B2 (en) * | 2011-10-20 | 2017-11-07 | Oracle International Corporation | Highly available network filer with automatic load balancing and performance adjustment |
US9288555B2 (en) * | 2011-11-01 | 2016-03-15 | Plexxi Inc. | Data center network architecture |
US8966172B2 (en) * | 2011-11-15 | 2015-02-24 | Pavilion Data Systems, Inc. | Processor agnostic data storage in a PCIE based shared storage enviroment |
US9128662B2 (en) * | 2011-12-23 | 2015-09-08 | Novachips Canada Inc. | Solid state drive memory system |
US10613982B1 (en) * | 2012-01-06 | 2020-04-07 | Seagate Technology Llc | File-aware caching driver |
US10360176B2 (en) * | 2012-01-17 | 2019-07-23 | Intel Corporation | Techniques for command validation for access to a storage device by a remote client |
JP2015511074A (ja) | 2012-03-23 | 2015-04-13 | 日本電気株式会社 | 通信のためのシステム及び方法 |
US8935568B2 (en) * | 2012-07-27 | 2015-01-13 | Dell Products, Lp | System and method of replicating virtual machines for live migration between data centers |
US20150222705A1 (en) | 2012-09-06 | 2015-08-06 | Pi-Coral, Inc. | Large-scale data storage and delivery system |
US20140089553A1 (en) | 2012-09-24 | 2014-03-27 | Broadcom Corporation | Interface between a host and a peripheral device |
US8589659B1 (en) * | 2012-11-08 | 2013-11-19 | DSSD, Inc. | Method and system for global namespace with consistent hashing |
CN103019622B (zh) * | 2012-12-04 | 2016-06-29 | 华为技术有限公司 | 一种数据的存储控制方法、控制器、物理硬盘,及*** |
US20140195634A1 (en) * | 2013-01-10 | 2014-07-10 | Broadcom Corporation | System and Method for Multiservice Input/Output |
CN104798349B (zh) | 2013-01-30 | 2018-08-07 | 慧与发展有限责任合伙企业 | 响应于端口故障的故障转移 |
US9020893B2 (en) * | 2013-03-01 | 2015-04-28 | Datadirect Networks, Inc. | Asynchronous namespace maintenance |
US9003071B2 (en) * | 2013-03-13 | 2015-04-07 | Futurewei Technologies, Inc. | Namespace access control in NVM express PCIe NVM with SR-IOV |
US9304901B2 (en) | 2013-03-14 | 2016-04-05 | Datadirect Networks Inc. | System and method for handling I/O write requests |
US9756128B2 (en) * | 2013-04-17 | 2017-09-05 | Apeiron Data Systems | Switched direct attached shared storage architecture |
US8595385B1 (en) | 2013-05-28 | 2013-11-26 | DSSD, Inc. | Method and system for submission queue acceleration |
JP2015001908A (ja) | 2013-06-17 | 2015-01-05 | 富士通株式会社 | 情報処理装置、制御回路、制御プログラム、および制御方法 |
US9430412B2 (en) | 2013-06-26 | 2016-08-30 | Cnex Labs, Inc. | NVM express controller for remote access of memory and I/O over Ethernet-type networks |
US9311110B2 (en) | 2013-07-08 | 2016-04-12 | Intel Corporation | Techniques to initialize from a remotely accessible storage device |
US9323664B2 (en) * | 2013-07-23 | 2016-04-26 | Intel Corporation | Techniques for identifying read/write access collisions for a storage medium |
US9317204B2 (en) * | 2013-11-14 | 2016-04-19 | Sandisk Technologies Inc. | System and method for I/O optimization in a multi-queued environment |
US9459810B2 (en) * | 2013-12-30 | 2016-10-04 | Sandisk Technologies Llc | Storage module and method for configuring command attributes |
US9696942B2 (en) | 2014-03-17 | 2017-07-04 | Mellanox Technologies, Ltd. | Accessing remote storage devices using a local bus protocol |
WO2015162660A1 (ja) | 2014-04-21 | 2015-10-29 | 株式会社日立製作所 | 計算機システム |
US9529773B2 (en) | 2014-05-02 | 2016-12-27 | Cavium, Inc. | Systems and methods for enabling access to extensible remote storage over a network as local storage via a logical storage controller |
US9473353B2 (en) | 2014-06-23 | 2016-10-18 | International Business Machines Corporation | Cluster reconfiguration management |
US9703645B2 (en) | 2014-10-24 | 2017-07-11 | Netapp, Inc. | Data recovery technique for recovering data from an object storage service |
US10079797B2 (en) | 2014-10-29 | 2018-09-18 | Vmware, Inc. | Methods, systems and apparatus to remotely start a virtual machine |
US9565269B2 (en) | 2014-11-04 | 2017-02-07 | Pavilion Data Systems, Inc. | Non-volatile memory express over ethernet |
US9712619B2 (en) | 2014-11-04 | 2017-07-18 | Pavilion Data Systems, Inc. | Virtual non-volatile memory express drive |
-
2014
- 2014-02-26 US US14/191,335 patent/US9430412B2/en active Active
- 2014-06-19 CN CN201811212442.7A patent/CN109582614B/zh active Active
- 2014-06-19 WO PCT/US2014/043279 patent/WO2014209764A1/en active Application Filing
- 2014-06-19 CN CN201480042920.8A patent/CN105556930B/zh active Active
- 2014-06-26 TW TW103122146A patent/TWI571087B/zh active
-
2016
- 2016-08-19 US US15/242,299 patent/US10503679B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008070172A3 (en) * | 2006-12-06 | 2008-07-24 | David Flynn | Apparatus, system, and method for remote direct memory access to a solid-state storage device |
CN101622606A (zh) * | 2006-12-06 | 2010-01-06 | 弗森多***公司(dba弗森-艾奥) | 用于作为大容量、非易失性存储器的高速缓存的固态存储器的装置、***和方法 |
US8078622B2 (en) * | 2008-10-30 | 2011-12-13 | Network Appliance, Inc. | Remote volume access and migration via a clustered server namespace |
US20130132643A1 (en) * | 2011-11-17 | 2013-05-23 | Futurewei Technologies, Inc. | Method and Apparatus for Scalable Low Latency Solid State Drive Interface |
US20130135816A1 (en) * | 2011-11-17 | 2013-05-30 | Futurewei Technologies, Inc. | Method and Apparatus for Scalable Low Latency Solid State Drive Interface |
Cited By (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107346265A (zh) * | 2016-05-05 | 2017-11-14 | 北京忆恒创源科技有限公司 | 实现QoS的方法与装置 |
CN112347012B (zh) * | 2016-06-20 | 2024-07-23 | 北京忆芯科技有限公司 | 支持SR-IOV的NVMe控制器及方法 |
CN112347012A (zh) * | 2016-06-20 | 2021-02-09 | 北京忆芯科技有限公司 | 支持SR-IOV的NVMe控制器及方法 |
CN109565523A (zh) * | 2016-09-12 | 2019-04-02 | 英特尔公司 | 用于结构上的解聚的存储级存储器的机制 |
CN109565523B (zh) * | 2016-09-12 | 2022-08-19 | 英特尔公司 | 用于结构上的解聚的存储级存储器的机制 |
CN107077304B (zh) * | 2016-09-18 | 2019-02-12 | 深圳市大疆创新科技有限公司 | 数据转换设备、芯片、方法、装置及影像*** |
WO2018049648A1 (zh) * | 2016-09-18 | 2018-03-22 | 深圳市大疆创新科技有限公司 | 数据转换设备、芯片、方法、装置及影像*** |
CN107077304A (zh) * | 2016-09-18 | 2017-08-18 | 深圳市大疆创新科技有限公司 | 数据转换设备、芯片、方法、装置及影像*** |
CN106603346A (zh) * | 2017-02-07 | 2017-04-26 | 佛山易识科技有限公司 | 基于虚拟可扩展局域网的网络质量测试工具 |
CN108776576A (zh) * | 2017-03-31 | 2018-11-09 | 三星电子株式会社 | 用于聚合的网上NVMe装置的聚合存储方法 |
CN108776576B (zh) * | 2017-03-31 | 2023-08-15 | 三星电子株式会社 | 用于聚合的网上NVMe装置的聚合存储方法 |
CN108984420A (zh) * | 2017-05-31 | 2018-12-11 | 希捷科技有限公司 | 管理非易失性存储器(nvm)中的多个名称空间 |
CN107911414B (zh) * | 2017-10-20 | 2020-10-20 | 英业达科技有限公司 | 数据存取*** |
CN107911414A (zh) * | 2017-10-20 | 2018-04-13 | 英业达科技有限公司 | 数据存取*** |
US11544212B2 (en) | 2017-11-30 | 2023-01-03 | Samsung Electronics Co., Ltd. | Differentiated storage services in ethernet SSD |
CN109861914A (zh) * | 2017-11-30 | 2019-06-07 | 三星电子株式会社 | 提供差异化存储服务的方法和以太网固态驱动器 |
CN109861914B (zh) * | 2017-11-30 | 2022-07-12 | 三星电子株式会社 | 提供差异化存储服务的方法和以太网固态驱动器 |
US12001379B2 (en) | 2017-11-30 | 2024-06-04 | Samsung Electronics Co., Ltd. | Differentiated storage services in ethernet SSD |
US12038851B2 (en) | 2017-12-26 | 2024-07-16 | Huawei Technologies Co., Ltd. | Method and apparatus for accessing storage system |
US11436157B2 (en) | 2017-12-26 | 2022-09-06 | Huawei Technologies Co., Ltd. | Method and apparatus for accessing storage system |
CN110199270A (zh) * | 2017-12-26 | 2019-09-03 | 华为技术有限公司 | 存储***中存储设备的管理方法及装置 |
WO2019127018A1 (zh) * | 2017-12-26 | 2019-07-04 | 华为技术有限公司 | 存储***访问方法及装置 |
CN108549610A (zh) * | 2018-03-27 | 2018-09-18 | 深圳忆联信息***有限公司 | 一种NVMe扩展的实现方法及固态硬盘 |
CN108563585A (zh) * | 2018-03-27 | 2018-09-21 | 深圳忆联信息***有限公司 | 一种降低ssd写放大的方法 |
CN108549610B (zh) * | 2018-03-27 | 2021-02-23 | 深圳忆联信息***有限公司 | 一种NVMe扩展的实现方法及固态硬盘 |
CN110392092A (zh) * | 2018-04-17 | 2019-10-29 | 三星电子株式会社 | 与网络结构连接的网络存储设备 |
CN109117386B (zh) * | 2018-07-12 | 2021-03-09 | 中国科学院计算技术研究所 | 一种网络远程读写二级存储的***及方法 |
CN109117386A (zh) * | 2018-07-12 | 2019-01-01 | 中国科学院计算技术研究所 | 一种网络远程读写二级存储的***及方法 |
CN110727617B (zh) * | 2018-07-16 | 2024-05-07 | 三星电子株式会社 | 同时通过PCIe EP和网络接口访问双线SSD装置的方法和*** |
CN110727617A (zh) * | 2018-07-16 | 2020-01-24 | 三星电子株式会社 | 同时通过PCIe EP和网络接口访问双线SSD装置的方法和*** |
CN110825670A (zh) * | 2018-08-08 | 2020-02-21 | 马维尔国际贸易有限公司 | 基于NVMe协议的主机与固态驱动器(SSD)之间的受管理交换 |
CN111061425A (zh) * | 2018-10-16 | 2020-04-24 | 三星电子株式会社 | 主机、非易失性存储器快速固态驱动器及存储服务的方法 |
CN111061425B (zh) * | 2018-10-16 | 2024-07-12 | 三星电子株式会社 | 主机、非易失性存储器快速固态驱动器及存储服务的方法 |
WO2020135504A1 (zh) * | 2018-12-27 | 2020-07-02 | 中兴通讯股份有限公司 | 一种虚拟化方法和装置 |
CN111107150A (zh) * | 2019-12-16 | 2020-05-05 | 联想(北京)有限公司 | 连接方法、网关装置和用于客户端的连接装置 |
CN111107150B (zh) * | 2019-12-16 | 2021-11-16 | 联想(北京)有限公司 | 连接方法、网关装置和用于客户端的连接装置 |
WO2021121054A1 (zh) * | 2019-12-17 | 2021-06-24 | 北京忆芯科技有限公司 | 加速sgl处理的方法与存储设备 |
CN111639008B (zh) * | 2020-05-29 | 2023-08-25 | 杭州海康威视***技术有限公司 | 基于双端口ssd的文件***状态监测方法、装置及电子设备 |
CN111639008A (zh) * | 2020-05-29 | 2020-09-08 | 杭州海康威视***技术有限公司 | 基于双端口ssd的文件***状态监测方法、装置及电子设备 |
CN114691586A (zh) * | 2022-05-26 | 2022-07-01 | 阿里巴巴(中国)有限公司 | 服务器、传输数据的方法以及带外管理芯片 |
Also Published As
Publication number | Publication date |
---|---|
US9430412B2 (en) | 2016-08-30 |
WO2014209764A1 (en) | 2014-12-31 |
US20160357698A1 (en) | 2016-12-08 |
US20150006663A1 (en) | 2015-01-01 |
TWI571087B (zh) | 2017-02-11 |
CN109582614B (zh) | 2022-09-06 |
US10503679B2 (en) | 2019-12-10 |
CN105556930B (zh) | 2018-11-06 |
TW201524170A (zh) | 2015-06-16 |
CN109582614A (zh) | 2019-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105556930A (zh) | 针对远程存储器访问的nvm express控制器 | |
US10063638B2 (en) | NVM express controller for remote access of memory and I/O over ethernet-type networks | |
US9785355B2 (en) | NVM express controller for remote access of memory and I/O over ethernet-type networks | |
US9785356B2 (en) | NVM express controller for remote access of memory and I/O over ethernet-type networks | |
US9678918B2 (en) | Data processing system and data processing method | |
US9672143B2 (en) | Remote memory ring buffers in a cluster of data processing nodes | |
US9658782B2 (en) | Scalable data using RDMA and MMIO | |
WO2017040706A1 (en) | Nvm express controller for remote access of memory and i/o over ethernet-type networks | |
US20150378640A1 (en) | Nvm express controller for remote access of memory and i/o over ethernet-type networks | |
US20190370215A1 (en) | Programmed Input/Output Mode | |
US20130346666A1 (en) | Tunneling platform management messages through inter-processor interconnects | |
CN111427808A (zh) | 用于管理存储设备和主机单元之间的通信的***和方法 | |
WO2017162175A1 (zh) | 一种数据传输方法及装置 | |
US11314635B1 (en) | Tracking persistent memory usage | |
CN104750428A (zh) | 块储存存取和网关模块、储存***和方法与内容递送装置 | |
US11544205B2 (en) | Peer storage devices sharing host control data | |
CN116185553A (zh) | 数据迁移方法、装置及电子设备 | |
US20230280917A1 (en) | Storage system and method of operating the same | |
CN112104729A (zh) | 一种存储***及其缓存方法 | |
CN105765542B (zh) | 访问文件的方法、分布式存储***和存储节点 | |
US11487465B2 (en) | Method and system for a local storage engine collaborating with a solid state drive controller | |
US20220326855A1 (en) | Peripheral component interconnect express interface device and operating method thereof | |
CN117170928A (zh) | 封装后修复管理 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |