CN113767361A - 启用以太网的固态驱动器(ssd) - Google Patents

启用以太网的固态驱动器(ssd) Download PDF

Info

Publication number
CN113767361A
CN113767361A CN202080032540.1A CN202080032540A CN113767361A CN 113767361 A CN113767361 A CN 113767361A CN 202080032540 A CN202080032540 A CN 202080032540A CN 113767361 A CN113767361 A CN 113767361A
Authority
CN
China
Prior art keywords
nvm
processor
interface device
network interface
ssd
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
Application number
CN202080032540.1A
Other languages
English (en)
Other versions
CN113767361B (zh
Inventor
S·诺伊
N·米兹腊伊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Marvell Asia Pte Ltd
Original Assignee
Marvell Asia Pte Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Marvell Asia Pte Ltd filed Critical Marvell Asia Pte Ltd
Priority to CN202410709603.2A priority Critical patent/CN118502672A/zh
Publication of CN113767361A publication Critical patent/CN113767361A/zh
Application granted granted Critical
Publication of CN113767361B publication Critical patent/CN113767361B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

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)
  • Small-Scale Networks (AREA)
  • Communication Control (AREA)

Abstract

一种一体式固态驱动器(SSD)组件,包括非易失性存储器(NVM)和通信耦合到NVM的处理器。该处理器被配置为实现通信协议,该通信协议被配置用于通过通信网络访问固态存储器。一体式SSD组件还包括通信耦合到处理器的网络接口设备和耦合到网络接口设备的网络连接器。网络接口设备被配置为根据网络通信协议经由网络架构进行通信。NVM、处理器和网络接口设备布置在一体式组件中。

Description

启用以太网的固态驱动器(SSD)
相关申请的交叉引用
本申请要求于2019年3月14日提交的题为“NVMe-oF Solid State Drive(SSD)”的美国临时专利申请第62/818,621号的权益,该申请的全部内容通过引用并入本文。
技术领域
本公开总体上涉及存储服务,并且具体地涉及具有内置网络接口设备以通过网络架构启用通信的固态驱动器(SSD)。
背景技术
主机计算机(“主机”)与固态驱动器(SSD)通信以获取由SSD提供的数据服务,例如读取数据、存储数据和擦除数据。固态驱动器(SSD)是一种数据存储设备,其包括用于存储持久数字数据的非易失性存储器,例如NAND(Not-And)闪存。SSD可以被配置为模拟硬盘驱动器(HDD),例如,在快速旋转的盘片的磁性表面上存储持久数字数据的设备。当前SSD包括经由其可以访问SSD的三个物理接口中的一个:串行连接小型计算机系统接口(SAS)、串行AT连接(SATA)和外围组件互连快速(PCIe)(例如,U.2连接器).
非易失性存储器快速(NVMe)是定义用于通过PCIe总线访问非易失性存储器(例如,SSD)的寄存器级接口的逻辑接口。例如,主机计算机可以使用NVMe来访问具有PCIe物理接口的现有技术SSD。在主机计算机上执行的驱动程序将NVMe命令转换为PCIe信号,反之亦然。
基于架构的NVMe(NVMe-oF)是一种协议,其被设计为使用基于消息的命令通过网络(例如,以太网、光纤通道(FC)或InfiniBand无限带宽)在主机计算机与目标SSD或系统之间传输数据,从而扩展了SSD可以访问的距离。NVMe-oF使用基于消息的模型在主机与目标存储设备(例如,SSD)之间进行通信,并且包括用于发送和接收与存储器操作相关的命令和响应的传输映射机制。例如,主机可以使用NVMe-oF经由网络访问现有技术的SSD,其中SSD被包括在具有NVMe-oF接口设备的存储子系统中。NVMe-oF接口设备将来自主机的NVMe-oF消息中的NVMe命令转换为PCIe信号,并且将PCIe信号转换为NVMe命令,并且将NVMe命令包括在去往主机的NVMe-oF消息中。
发明内容
在一个实施例中,一种一体式固态驱动器(SSD)组件包括:非易失性存储器(NVM);被通信耦合到NVM并且被配置为实现通信协议的处理器,该通信协议被配置用于通过通信网络访问固态存储器;被通信耦合到处理器的网络接口设备,其中网络接口设备被配置为根据网络通信协议经由网络架构进行通信,并且其中NVM、处理器和网络接口设备被布置在一体式组件中。一体式SSD组件还包括被耦合到网络接口设备的网络连接器。
在另一实施例中,一种访问一体式SSD组件的NVM的方法包括:在一体式SSD组件的网络接口设备处接收包括与访问NVM相关的信息的分组,该分组是从被通信耦合到网络接口设备的网络架构接收到的;在一体式SSD组件的网络接口设备处确定分组的报头中的目的地网络地址与一体式SSD组件的网络地址匹配;并且响应于确定分组的报头中的网络地址与一体式SSD组件的网络地址匹配:在一体式SSD组件的处理器处从分组中解封装数据单元,该数据单元对应于用于访问存储设备的通信协议,并且使用数据单元中的信息来访问NVM。
附图说明
图1A是根据一个实施例的示例一体式固态驱动器(SSD)组件的图,该一体式SSD组件包括用于将一体式SSD组件通信耦合到网络架构的内置网络接口设备。
图1B是根据一个实施例的包围图1A的SSD组件的部件的示例壳体的图。
图2是根据一个实施例的利用图1A的一体式SSD组件的示例存储系统的图。
图3是根据一个实施例的示例网络分组的图,图1A的一体式SSD组件的内置网络接口设备被配置为生成、传输、接收和/或处理该网络分组。
图4是根据一个实施例的用于访问诸如图1A的一体式SSD组件等一体式SSD组件的非易失性存储器的示例方法的流程图。
图5是根据另一实施例的包括用于将一体式SSD组件通信耦合到网络架构的内置网络接口设备的另一示例一体式SSD组件的图。
具体实施方式
在以下描述的各种实施例中,SSD设备包括用于为SSD提供与网络(例如,以太网网络)的连接的内置网络接口设备(例如,以太网网络接口设备)。至少在一些实施例中,具有内置网络接口设备的SSD能够启用更容易和/或具有更实惠的存储容量可扩展性。作为说明性示例,根据一个实施例,存储子系统包括多个这样的SSD、和网络架构(例如,包括以太网交换机),该网络架构通信地耦合SSD并且提供对SSD的网络访问。通过添加具有内置网络接口设备的附加SSD并且将这样的SSD耦合到网络架构,存储子系统可以被轻松地扩展。类似地,通过添加附加的这样的存储子系统,存储系统可以被轻松地另外地或替代地扩展。
另外,至少在一些实施例中,具有内置网络接口设备的SSD启用现有技术的SSD不提供的功能。作为说明性示例,根据一个实施例,存储子系统包括具有相应内置网络接口设备的多个SSD,多个SSD经由网络架构被通信地耦合。在这样的存储子系统中,数据可以经由该架构从一个SSD被复制、移动到另一SSD,而无需首先将任何数据传输到主机计算机。
图1A是根据一个实施例的具有内置网络接口设备的示例一体式SSD组件100的简化图。在示例一体式SSD组件100中,内置网络接口设备包括以太网网络接口设备104,并且为了便于解释,图1A在以太网网络的上下文中描述。然而,在其他实施例中,内置网络接口设备包括另一合适的网络接口设备,该网络接口设备被配置为通信耦合到另一合适的网络架构,例如被配置为通信耦合到FC网络架构的光纤通道(FC)网络接口设备、被配置为通信耦合到无限带宽网络架构的无限带宽网络接口设备等。
一体式SSD组件100还包括非易失性存储器(NVM)108,例如NAND(Not-And)闪存或另一合适的固态存储器。在一个实施例中,NVM 108包括NVM存储器阵列。
一体式SSD组件100另外包括处理器112。在一些实施例中,处理器112被配置为执行存储在与处理器112耦合和/或集成的存储器(未示出)中的机器可读指令。机器可读指令在由处理器112执行时引起处理器112实现与经由网络架构访问NVM 108相关的一个或多个通信协议层或其子层,如下文将更详细描述的。在一些实施例中,处理器112另外地或替代地包括硬件控制器,该硬件控制器包括一个或多个硬件状态机和/或一个或多个流水线硬件处理器,该一个或多个硬件状态机和/或一个或多个流水线硬件处理器被配置为实现与经由网络架构访问NVM 108相关的一个或多个通信协议层或其子层,如下文将更详细描述的。在一些实施例中,处理器112另外地或替代地包括被配置用于分组处理、存储器管理等的一个或多个硬件表。在一些实施例中,处理器112在专用集成电路(ASIC)上实现。
在一些实施例中,处理器112被配置为实现存储器控制器以访问NVM 108。在其他实施例中,一体式SSD组件100还包括与处理器112分离的存储器控制器(未示出)。
在一些实施例中,一体式SSD组件100还包括易失性存储器116,例如随机存取存储器(RAM)或另一合适的易失性存储器。根据各种实施例,存储器116用于以下中的一者或两者:i)用作NVM 108的存储器高速缓存,以及ii)临时存储由处理器112生成或将由处理器112处理的消息、命令等,该消息、命令等与存储器访问操作相关。在一些实施例中,一体式SSD组件100省略了存储器116。
至少当SSD组件100的至少两个部件被包括在单独的集成电路(IC)器件中并且安装在一个或多个印刷电路板(PCB)(或另一合适的基板)上时,该至少两个部件通过PCIe网络120通信耦合,PCIe网络120包括一个或多个PCIe总线和可选的一个或多个PCIe交换机。例如,在一个实施例中,以太网网络接口设备104、NVM 108和处理器112通过PCIe网络通信耦合。根据另一实施例,作为另一示例,以太网网络接口设备104、NVM 108、处理器112和存储器116通过PCIe网络通信耦合。
在一些实施例中,SSD组件100的一个或多个部件被实现在一体式IC芯片封装内的单个集成电路(IC)设备上。例如,根据一个实施例,以太网网络接口设备104和处理器112被实现在一体式IC芯片封装内的单个IC设备上,并且以太网网络接口设备104和处理器112不是经由PCIe网络120而是经由单个IC上的接口电路通信耦合。在另一实施例中,以太网网络接口设备104和处理器112被实现在一体式IC芯片封装内的多芯片模块(MCM)上,并且根据一个实施例,以太网网络接口设备104和处理器112不是经由PCIe网络120而是经由MCM上的接口电路通信耦合。
在另一实施例中,以太网网络接口设备104、NVM 108、处理器112和存储器116(如果包括)被实现在一体式IC芯片封装内的单个IC设备上,而PCIe网络116被省略。在另一实施例中,以太网网络接口设备104、NVM 108、处理器112和存储器116(如果包括)被实现在一体式IC芯片封装内的MCM中,而PCIe网络116被省略。
在另一实施例中,以太网网络接口设备104、NVM 108和处理器112被实现在一体式IC芯片封装内的单个IC设备上,而PCIe网络116可选地被省略。在另一实施例中,以太网网络接口设备104、NVM 108和处理器112被实现在一体式IC芯片封装内的MCM中,而PCIe网络116可选地被省略。
在其他实施例中,一体式SSD组件100的两个或更多个部件使用堆叠IC技术来实现并且被包括在一体式IC芯片封装内。类似地,在一些实施例中,一体式SSD组件100的两个或更多个部件使用层叠封装(PoP)技术来实现。
一体式SSD组件100还包括耦合到以太网网络接口设备104的以太网连接器124。在各种实施例中,以太网连接器124包括RJ45连接器、M8连接器、M12连接器或另一合适的以太网连接器。
在一些实施例中,至少包括以太网网络接口设备104、NVM 108、处理器112和存储器116(如果包括)的一个或多个IC芯片封装和/或PoP模块被安装在一体式基板140上。在包括一体式基板140的一些实施例中,以太网连接器124也被安装在一体式基板140上。在其他实施例中,以太网连接器124没有被安装在一体式基板140上。在一个实施例中,一体式基板140包括PCB。在其他实施例中,一体式基板140包括被配置用于安装一个或多个IC芯片封装和/或PoP模块的另一合适的基板。
在一些实施例中,包括以太网网络接口设备104、NVM 108、处理器112和存储器116(如果包括)中的至少两个的两个或更多个IC芯片封装和/或PoP模块被安装在两个或更多个合适的基板上。
在一些实施例中,一体式SSD组件100包括壳体,该壳体包含以太网网络接口设备104、NVM 108、处理器112、PCIe网络116(如果包括)和存储器116(如果包括)。图1B是根据一个实施例的一体式SSD组件100的示例壳体160的图。在一个实施例中,壳体160至少部分包围以太网网络接口设备104、NVM 108、处理器112、PCIe网络116(如果包括)和存储器116(如果包括)。
在一个实施例中,壳体160限定孔164。根据一个实施例,孔164被成形为容纳以太网连接器124。在一些实施例中,壳体160还限定一个或多个其他孔(未示出),该其他孔用于各种其他目的,例如以下中的一项或多项:i)容纳其他连接器(未示出),ii)提供通风,iii)提供对壳体内的部件的访问,等等。
如上所述,尽管图1A-B在包括以太网网络接口设备的一体式SSD组件的内置网络接口设备的上下文中描述,但是在其他实施例中,一体式SSD组件100的内置网络接口设备包括另一合适的网络接口设备,例如,被配置为通信耦合到FC网络架构的FC网络接口设备、被配置为通信耦合到无限带宽网络架构的无限带宽网络接口设备等。在其中一体式SSD组件100包括FC网络接口设备的实施例中,连接器124是合适的FC连接器,例如Lucent连接器(LC)连接器、多光纤推入式(MPO)连接器或另一合适的FC连接器,并且孔164被成形为容纳FC连接器。在其中一体式SSD组件100包括无限带宽网络接口设备的实施例中,连接器124是合适的无限带宽连接器,并且孔164被成形为容纳无限带宽连接器。
在一些实施例中,具有内置网络接口设备的SSD被(至少部分)封闭在具有合适形状因数的壳体中,例如由存储网络工业协会(SNIA)定义的标准硬盘驱动器(HDD)/SSD形状因数,例如3.5英寸形状因数(例如,最大尺寸基本等于(即,在其1%以内):宽度为4英寸、深度为5.75英寸并且高度为1.00至1.63英寸)、3英寸长形状因数(例如,最大尺寸基本等于(即,在其1%以内):宽度为3英寸、深度为5.36英寸并且高度为0.3至0.66英寸)、3英寸短形状因数(例如,最大尺寸基本等于(即,在其1%以内):宽度为3英寸、深度为3.89英寸并且高度为0.3至0.66英寸)、1U短形状因数(例如,最大尺寸基本等于(即,在其1%以内):宽度为1.33英寸、深度为4.68英寸并且高度为0.37英寸)、1U长形状因数(例如,最大尺寸基本等于(即,在其1%以内):宽度为1.51英寸、深度为12.55英寸并且高度为0.37英寸)、2.5英寸形状因数(例如,最大尺寸基本等于(即,在其1%以内):宽度为2.75英寸、深度为3.94英寸并且高度为0.37至0.75英寸)、或1.8英寸形状因数(例如,最大尺寸基本等于(即,在其1%以内):宽度为2.1英寸、深度为3.1英寸并且高度为0.2英寸)。
在一些实施例中,壳体具有4英寸的最大宽度、6英寸的最大深度和2英寸的最大高度。
在其他实施例中,壳体具有比上面讨论的那些合适的尺寸。
在一些实施例中,一体式SSD组件100不包括诸如图1B的壳体160等壳体。例如,在一个实施例中,如上所述的一体式SSD组件100的部件(例如,以太网网络接口设备104、NVM108、处理器112、PCIe网络116(如果包括)、存储器116(如果包括)和连接器124)被安装在诸如PCB等单个一体式基板上。在另一实施例中,支架被安装到单个一体式基板,支架被成形为用于将一体式SSD组件100安装到另一PCB,以安装到诸如服务器、存储子系统等另一设备的壳体。在一些实施例中,支架限定容纳连接器124的孔。在其中单个一体式基板被安装到支架的一些实施例中,连接器124被安装到支架并且不被安装到单个一体式基板。在一些实施例中,PCB具有4英寸的最大宽度和6英寸的最大深度。在其他实施例中,PCB具有其他合适的尺寸。
在另一实施例中,单个一体式基板被安装在框架(包括金属、塑料等)内。在一个实施例中,框架被配置用于将一体式SSD组件100安装到另一PCB,以安装到诸如服务器、存储子系统等另一设备的壳体。在一些实施例中,框架限定容纳连接器124的孔。在其中单个一体式基板被安装在框架内的一些实施例中,连接器124被安装到框架,而没有被安装到单个一体式基板。在一些实施例中,框架具有4英寸的最大宽度和6英寸的最大深度。在其他实施例中,PCB具有其他合适的尺寸。
作为又一示例,在一个实施例中,如上所述的一体式SSD组件100的部件(例如,以太网网络接口设备104、NVM 108、处理器112、PCIe网络116(如果包括)、存储器116(如果包括)和连接器124)被安装在框架内以形成一体式部件。在一个实施例中,一体式部件被配置用于安装到另一PCB,以安装到诸如服务器、存储子系统等另一设备的壳体。在其中一体式SSD组件100的部件被安装在框架内的一些实施例中,一体式SSD组件100的两个或更多个部件被安装到两个或更多个PCB,并且两个或更多个PCB例如通过电缆、带状电缆、电线等通信耦合;两个或更多个PCB被安装在框架内以形成一体式部件。在一些实施例中,框架具有4英寸的最大宽度和6英寸的最大深度。在其他实施例中,PCB具有其他合适的尺寸。
再次参考图1A,根据一个实施例,以太网网络接口设备104与在通信网络内唯一地标识一体式SSD组件100的一个或多个网络地址相关联。网络地址是合适的逻辑或物理地址,例如媒体访问控制(MAC)地址、互联网协议(IP)地址等。在其中网络接口设备104是FC网络接口设备的实施例中,一个或多个网络地址包括一个或多个FC地址。在其中网络接口设备104是无限带宽网络接口设备的实施例中,一个或多个网络地址包括一个或多个本地标识符(LID)。
在一些实施例中,网络接口设备104不是通用网络接口设备104,而是包括网络接口前端接口逻辑的缩减功能(例如,与通用网络接口设备相比)网络接口,该网络接口前端接口逻辑配置有用于将专门用于通过网络架构(例如,NVMe-oF、基于TCP的NVMe(NVMe/TCP)等)访问存储设备的协议与网络架构协议(例如,以太网、光纤通道、无限带宽等)接口连接的功能。在一些实施例中,网络接口设备104包括以太网到NVMe-oF(或NVMe/TCP)前端接口逻辑。在其他实施例中,网络接口设备104包括FC到NVMe-oF(和/或基于TCP/IP的FC(FCIP))前端接口逻辑。在其他实施例中,网络接口设备104包括无限带宽到NVMe-oF(和/或基于无限带宽的TCP/IP(IPoIB))前端接口逻辑。
根据一个实施例,以太网网络接口设备104被配置为实现以太网通信协议(例如,提供服务直到在开放系统互连(OSI)模型中包括数据链路层)。在一个实施例中,以太网网络接口设备104被配置为从处理器112接收要被转发到网络架构(例如,以太网架构)的数据单元,将该数据单元封装在以太网帧中,并且经由连接器124向网络架构传输以太网帧。另外,根据一个实施例,以太网网络接口设备104被配置为经由连接器124从网络架构(例如,以太网架构)接收以太网帧,并且确定以太网帧中的目的地网络地址是否与一体式SSD组件100的网络地址匹配。以太网网络接口设备104还被配置为当以太网帧中的目的地网络地址与一体式SSD组件100的网络地址匹配时,从以太网帧中解封装数据单元,并且例如经由PCIe网络120(当存在时)将数据单元转发到处理器112。
在其中网络接口设备104包括FC网络接口设备的实施例中,根据一个实施例,FC网络接口设备104被配置为实现FC通信协议。在一个实施例中,FC网络接口设备104被配置为从处理器112接收要被转发到网络架构(例如,FC架构)的数据单元,将该数据单元封装在FC帧中,并且经由连接器124向网络架构传输FC帧。另外,根据一个实施例,FC网络接口设备104被配置为经由连接器124从网络架构(例如,FC架构)接收FC帧,并且确定FC帧中的目的地网络地址是否与一体式SSD组件100的网络地址匹配。FC网络接口设备104还被配置为当FC帧中的目的地网络地址与一体式SSD组件100的网络地址匹配时,从FC帧中解封装数据单元,并且例如经由PCIe网络120(当存在时)将数据单元转发到处理器112。
在其中网络接口设备104包括无限带宽网络接口设备的实施例中,根据一个实施例,无限带宽网络接口设备104被配置为实现无限带宽通信协议。在一个实施例中,无限带宽网络接口设备104被配置为从处理器112接收要被转发到网络架构(例如,无限带宽架构)的数据单元,将该数据单元封装在无限带宽分组中,并且经由连接器124向网络架构传输无限带宽分组。另外,根据一个实施例,无限带宽网络接口设备104被配置为经由连接器124从网络架构(例如,无限带宽架构)接收无限带宽分组,并且确定无限带宽分组中的目的地网络地址是否与一体式SSD组件100的网络地址匹配。无限带宽网络接口设备104还被配置为当FC帧中的目的地网络地址与一体式SSD组件100的网络地址匹配时,从无限带宽分组中解封装数据单元,并且例如经由PCIe网络120(当存在时)将该数据单元转发到处理器112。
在一个实施例中,处理器112被配置为在由网络接口设备104实现的(多个)通信协议层之上实现一个或多个通信协议层,由处理器112实现的一个或多个通信协议层用于促进经由耦合到连接器124的网络架构在NVM 108与外部设备(一体式SSD组件100外部)之间的数据传输。例如,根据一个实施例,处理器112实现NVMe驱动器,该NVMe驱动器用于将NVMe命令和/或数据转换为PCIe总线信号以及将PCIe总线信号转换为NVMe命令和/或数据。在其中一体式SSD组件100省略PCIe网络的一些实施例中,NVMe驱动器将NVMe命令/数据转换为用于访问NVM 108的信号,并且将来自NVM 108的信号转换为NVMe命令/数据。
作为另一示例,根据一个实施例,处理器112实现远程直接存储器访问(RDMA)协议以用于向NVM 108传输数据或从NVM 108传输数据。在各种实施例中,处理器112实现基于聚合以太网的RDMA(RoCE)、基于TCP/IP的RDMA等。
作为另一示例,根据一个实施例,处理器112实现基于架构的NVMe(NVMe-oF)协议以促进经由耦合到连接器124的网络架构在NVM 108与外部设备(一体式SSD组件100外部)之间的数据传输。例如,处理器112使用NVMe-oF协议经由耦合到连接器124的网络架构来与外部设备(在一体式SSD组件100外部)建立逻辑连接。作为另一示例,处理器112使用NVMe-oF协议经由耦合到连接器124的网络架构来与外部设备(在一体式SSD组件100外部)交换命令和/或数据(与访问存储设备相关联)。
在各种其他实施例中,处理器112另外地或替代地实现以下中的一项或者两项或更多项的任何合适的组合:i)基于用户数据协议(UDP)的RDMA作为传输层,ii)iWARP(在传输控制协议(TCP)和互联网协议(IP)(TCP/IP))上实现RDMA的网络协议,iii)基于TCP的NVMe作为传输层(NVMe/TCP)等。
作为与从NVM 108向外部设备(例如,在一体式SSD组件100外部)中的存储器传输数据相关联的说明性示例,处理器112使用NVMe-oF协议来打开通过网络架构与外部设备的逻辑连接。根据各种说明性实施例,逻辑连接是基于以太网、光纤通道、无限带宽等的NVMe-oF传输层连接。替代地,在其他实施例中,连接138基于RDMA、RoCEv2、iWARP、NVMe/TCP或另一合适的协议。在一个实施例中,连接在从NVM 108的数据传输之前被打开。
作为说明性示例,以太网接口设备104经由连接器124从网络架构接收以太网分组。以太网网络接口设备104从以太网分组中解封装胶囊,并且将胶囊提供给处理器112。胶囊包含一个或多个命令(例如,NVMe读取命令)、要被存储在NVM 108中的数据、指示要被获取的NVM 108中数据的网络地址的分散收集列表(SGL)等。响应于胶囊的内容,处理器112(实现NVMe-oF协议、NVMe/TCP协议等)根据胶囊的内容生成用于访问NVM 108的PCIe信号。在其中PCIe网络120被省略的一些实施例中,处理器112根据胶囊的内容生成用于访问NVM108的合适的信号。
作为另一示例,处理器112(实现NVMe-oF协议、NVMe/TCP协议等)生成包含从NVM108中读取的数据的胶囊(或TCP/IP帧)。处理器112将胶囊提供给以太网网络接口设备104,以太网接口设备104生成包括胶囊的以太网分组。以太网接口设备104然后经由连接器124向网络架构传输以太网分组。
图2是根据一个实施例的利用诸如图1的一体式SSD组件100等一体式SSD组件的示例存储系统200的图。示例存储系统200包括耦合到互连214的主机202,互连214又耦合到具有网络架构206和三个一体式SSD组件208、210和212的存储子系统204。互连214包括网络,例如局域网(LAN)、广域网(WAN)、或通信耦合主机202和存储子系统204的另一合适的互连或网络。根据一些实施例,互连214包括通过有线和/或无线互连被耦合的一个或多个中间设备,例如一个或多个接口交换机和/或路由器。
根据一个实施例,存储子系统204和主机202中的一者或两者位于用于安装多个电子模块的机架中。机架包括称为托架的多个安装槽,每个安装槽被设计为容纳硬件单元,例如主机202或存储子系统204。在一些示例中,机架可以包括架顶式交换机,架顶式交换机在硬件单元与远程网络和/或其他机架中的硬件单元之间提供连接。在一个实施例中,互连214包括机架的背板。此外,在各种实施例中,一个以上的存储子系统204和/或一个以上的主机202被耦合到互连214。类似地,根据一些实施例,存储子系统204被通信耦合到另一存储子系统和/或另一机架(未示出)中的另一主机,例如经由架顶式交换机。
根据各种实施例,主机202包括任何类型的主机,例如计算机处理器或计算机和/或处理器的网络。此外,主机202不一定限于单个主机设备,并且可以表示多个主机设备。在一个实施例中,主机202包括动态随机存取存储器(DRAM)和/或另一合适的存储器形式的存储器222、诸如中央处理单元(CPU)等处理器224、和网络接口卡(NIC)226。处理器224被实现在一个或多个IC设备上并且被配置为执行存储在存储器222(或另一存储器(未示出))中的机器可读指令以执行算术、逻辑、输入/输出(I/O)和其他操作。为了促进在存储子系统204中存储数据,主机202利用NIC 226来访问存储子系统204中的存储器。NIC 226促进通过互连214在主机202与存储子系统204之间传输数据。在各种实施例中,NIC 226包括以太网网络接口设备、FC网络接口设备、无限带宽网络接口设备等。
根据一个实施例,一体式SSD设备208、210、212被配置为经由网络架构206与主机202建立逻辑连接。例如,如图2所示,处理器224经由网络架构206与一体式SSD设备208建立逻辑连接238。例如,处理器224在各种实施例中使用NVMe-oF、NVMe/TCP等或在其他实施例中使用其他合适的协议与一体式SSD设备208建立逻辑连接238。
存储系统200还包括耦合到互连214的存储子系统250。存储子系统250包括通信耦合到网络架构260的一体式SSD组件258(例如,对应于一体式SSD组件100或具有内置网络接口设备的另一一体式SSD组件)。根据一个实施例,主机202被配置为与一体式SSD组件258建立逻辑连接并且经由网络架构260传输数据。
图3是根据一个实施例的示例以太网帧400的图,一体式SSD组件100被配置为生成和传输以及接收和处理该以太网帧400。帧400包括指示帧400与以太网协议相关联的以太网第2层报头402和以太网类型字段404。在一个实施例中,报头402包括传输器MAC地址(例如,正在传输以太网帧400的设备的MAC地址)和接收器MAC地址(例如,将要接收以太网帧400的设备的MAC地址)。示例帧400可以包括指示源IP网络地址和目的地IP网络地址的IP报头406。源IP网络地址可以是传输帧400的设备的IP地址,而目的地IP网络地址可以是帧400将要被发送到的设备的IP地址。MAC地址和/或IP网络地址可以促进将帧从一体式SSD组件100经由诸如网络架构206/260(图2)等网络架构定向到SSD组件。在一些实施例中,以太网帧400中的MAC地址和/或IP网络地址包括一体式SSD组件的网络地址。以太网帧400的有效载荷408包括与向/从一体式SSD组件100的数据传输相关联的NVMe-oF胶囊410,NVMe-oF胶囊410包括NVMe命令、响应、SGL等。帧400也可以包括其他数据,诸如与一体式SSD组件100与另一网络设备之间的逻辑连接相关联的端口ID,以促进通过逻辑连接将帧路由到一体式SSD组件或从一体式SSD组件路由。
图4是根据一个实施例的用于访问诸如上面参考图1A讨论的一体式SSD组件等一体式SSD组件的NVM的示例方法500的流程图。在一些实施例中,方法500由图1的一体式SSD组件100实现,并且为了便于解释,参考图1描述方法500。在其他实施例中,方法500由具有被配置为经由网络架构进行通信的内置网络接口设备的另一合适的一体式SSD组件来实现。
在框504处,一体式SSD组件的网络接口设备(例如,以太网网络接口设备、FC网络接口设备、无限带宽网络接口设备等)接收包括与访问NVM相关的信息的分组(例如,以太网帧、FC帧、无限带宽分组等)。在一个实施例中,分组从通信耦合到网络接口设备的网络架构(例如,以太网架构、FC架构、无限带宽架构等)接收。
在一个实施例中,在框504处经由耦合到网络接口设备的网络连接器(例如,以太网连接器、FC连接器、无限带宽连接器等)接收分组。
在框508处,一体式SSD组件的以太网网络接口设备确定在框504处接收的分组的报头中的目的地网络地址与一体式SSD组件的网络地址匹配。
在框512处,响应于在框508处确定在框504处接收的分组的报头中的目的地网络地址与一体式SSD组件的网络地址匹配,网络接口设备从在框504处接收的分组中解封装数据单元。在一个实施例中,从分组解封装的数据单元对应于用于访问存储设备的通信协议。在一个实施例中,从分组中解封装的数据单元对应于NVMe-oF协议。在另一实施例中,从分组中解封装的数据单元对应于RDMA协议。在另一实施例中,从分组中解封装的数据单元对应于RCoE协议。在另一实施例中,从分组中解封装的数据单元对应于NVMe协议。
在框516处,同样,响应于在框508处确定在框504处接收的分组的报头中的目的地网络地址与一体式SSD组件的网络地址匹配,一体式SSD组件的处理器使用数据单元中的信息访问NVM。
在一些实施例中,NVM、处理器和网络接口设备被集成到一体式基板上,并且在框516处使用数据单元中的信息访问NVM包括从NVM中获取数据并且经由一体式基板从NVM向处理器传输获取到的数据,而无需首先向未集成到一体式基板上的任何部件传输获取到的数据。
在一些实施例中,一体式基板是单个PCB,并且NVM、处理器和网络接口设备被安装在单个PCB上,并且经由一体式基板从NVM向处理器传输获取到的数据包括经由单个PCB从NVM向处理器传输获取到的数据,而无需首先向未安装到单个PCB上的任何部件传输获取到的数据。
在一些实施例中,NVM、处理器和网络接口设备在多个IC小芯片上实现,并且多个IC小芯片被集成到MCM中的一体式基板上;并且经由一体式基板从NVM向处理器传输获取到的数据包括从NVM向MCM内的处理器传输获取到的数据,而无需首先向MCM外部的任何部件传输获取到的数据。
在一些实施例中,NVM、处理器和网络接口设备被包括在壳体内;并且从NVM向处理器传输获取到的数据包括从NVM向处理器传输获取到的数据,而无需首先向壳体外部的任何部件传输获取到的数据。
在一些实施例中,NVM、处理器和网络接口设备在单个IC上实现;并且从NVM向处理器传输获取到的数据包括从NVM向处理器传输获取到的数据,而无需首先向未在单个IC上实现的任何部件传输获取到的数据。
在一些实施例中,NVM、处理器和网络接口设备被实现为多芯片模块(MCM)中的至少两个IC;并且从NVM向处理器传输获取到的数据包括从NVM向处理器传输获取到的数据,而无需首先向不在MCM中的任何部件传输获取到的数据。
在一些实施例中,NVM、处理器和网络接口设备被实现为一体式层叠封装(PoP)集成电路设备中的至少两个集成电路(IC);并且从NVM向处理器传输获取到的数据包括从NVM向处理器传输获取到的数据,而无需首先向不在PoP集成电路设备中的任何部件传输获取到的数据。
在一些实施例中,方法500还包括:在处理器处生成与用于访问存储设备的通信协议相对应的另外的数据单元,另外的数据单元被生成以包括从NVM中获取的数据;由处理器向以太网网络接口设备提供另外的数据单元;在网络接口设备处将另外的数据单元封装在另外的分组(例如,另外的以太网帧、另外的FC帧、另外的无限带宽分组等)中;并且由网络接口设备向网络架构传输另外的分组。
图5是根据一个实施例的具有内置网络接口设备的另一示例一体式SSD组件600的简化图。一体式SSD组件600是图1A的一体式SSD组件100的更具体的实施例,并且相同编号的元素出于简洁的目的而没有详细描述。尽管图5在以太网协议的上下文中讨论,但是根据各种实施例,一体式SSD组件600适合与诸如FC、无限带宽等其他网络架构协议一起使用。
在一些实施例中,图4的方法500由图1的一体式SSD组件600实现。在其他实施例中,一体式SSD组件实现除了方法500之外的其他合适的方法。
在示例一体式SSD组件600中,内置网络接口设备包括以太网网络接口设备104,并且为了便于解释,图1A在以太网网络的上下文中描述。然而,在其他实施例中,内置网络接口设备包括另一合适的网络接口设备,该网络接口设备被配置为通信耦合到另一合适的网络架构,诸如被配置为通信耦合到FC网络架构的FC网络接口设备、被配置为通信耦合到无限带宽网络架构的无限带宽网络接口设备等。
一体式SSD组件600包括处理器604。在一个实施例中,处理器604对应于图1A的处理器112。处理器604包括多个硬件逻辑部件,包括NVMe-oF到NVMe转换器逻辑608、NVMe前端接口逻辑612和SSD控制器逻辑616。根据一个实施例,NVMe-oF到NVMe转换器逻辑608被配置为实现NVMeoF协议功能,并且将NVMe命令/响应/数据封装到NVMe-oF胶囊/从NVMe-oF胶囊中解封装NVMe命令/响应/数据。在另一实施例中,根据一个实施例,处理器604包括被配置为实现NVMe/TCP协议功能并且将NVMe命令/响应/数据封装到TCP/IP帧/从TCP/IP帧中解封装NVMe命令/响应/数据的NVMe/TCP到NVMe转换器逻辑608。
根据一个实施例,NVMe前端接口逻辑612被配置为将NVMe命令/响应/数据转换成SSD控制器616可用的信号/从SSD控制器616可用的信号中转换NVMe命令/响应/数据。SSD控制器616是被配置为向NVM存储器108写入数据和从NVM存储器108中读取数据的合适的SSD控制器。
在一些实施例中,SSD组件还包括控制处理器620,控制处理器620被配置为执行诸如管理处理、网络接口设备104和/或处理器604的监测、网络接口设备104和/或处理器604和/或NVM 108的设置等功能。在一个实施例中,控制处理器620被包括作为处理器604的部件。在另一实施例中,控制处理器620是与处理器604分开的部件。控制处理器620被配置为执行存储在与控制处理器620耦合和/或集成的存储器(未示出)中的机器可读指令。该机器可读指令在由控制处理器620执行时引起控制处理器620执行诸如管理处理、网络接口设备104和/或处理器604的监测、网络接口设备104和/或处理器604和/或NVM 108的设置等功能。
在一些实施例中,本文中描述的具有内置网络接口设备的SSD被配置为执行诸如在与本申请同一天提交的题为“Transferring Data Between Solid State Drives(SSDs)via a Connection Between the SSDs”的美国专利申请号____中描述的动作,该申请通过引用整体并入本文。在其他实施例中,本文中描述的具有内置网络接口设备的SSD被配置为执行与经由网络架构将数据存储在NVM中、经由网络架构从NVM中获取数据、通过网络架构在具有内置网络接口设备的SSD之间复制数据等相关的其他合适的动作。
实施例1:一种一体式固态驱动器(SSD)组件,所述一体式SSD组件包括:非易失性存储器(NVM);处理器,被通信耦合到所述NVM,并且被配置为实现通信协议,所述通信协议被配置用于通过通信网络访问固态存储器;网络接口设备,被通信耦合到所述处理器,其中所述网络接口设备被配置为根据网络通信协议经由网络架构进行通信,并且其中所述NVM、所述处理器和所述网络接口设备被布置在一体式组件中;以及网络连接器,被耦合到所述网络接口设备。
实施例2:根据实施例1所述的一体式SSD组件,其中所述处理器被配置为实现非易失性存储器快速(NVMe)通信协议。
实施例3:根据实施例2所述的一体式SSD组件,其中所述处理器还被配置为实现基于架构的NVMe(NVMe-oF)通信协议。
实施例3A:根据实施例2所述的一体式SSD组件,其中处理器还被配置为实现基于TCP的NVMe(NVMe/TCP)通信协议。
实施例4:根据实施例1-3A中任一项所述的一体式SSD组件,还包括:外围组件互连快速(PCIe)总线系统,所述PCIe总线系统至少互连所述NVM和所述处理器。
实施例5:根据实施例1-3中任一项所述的一体式SSD组件,还包括:一体式基板,其中所述NVM、所述处理器和所述网络接口设备被连接到或集成到所述一体式基板上。
实施例6:根据实施例5所述的一体式SSD组件,其中:所述一体式基板是单个印刷电路板(PCB),其中所述NVM、所述处理器和所述网络接口设备被安装在所述单个PCB上。
实施例7:根据实施例5所述的一体式SSD组件,其中:所述NVM、所述处理器和所述网络接口设备被实现在多个集成电路(IC)小芯片上,并且所述多个IC小芯片被集成到多芯片模块(MCM)中的所述一体式基板上。
实施例8:根据实施例1-7中任一项所述的一体式SSD组件,还包括:壳体,其中所述NVM、所述处理器和所述网络接口设备被包括在所述壳体内,并且其中所述壳体限定容纳所述连接器的孔。
实施例9:根据实施例1-3中任一项所述的一体式SSD组件,其中:所述NVM、所述处理器和所述网络接口设备被实现在单个集成电路(IC)上。
实施例10:根据实施例9所述的一体式SSD组件,其中:其中其中所述单个IC被包括在单个IC芯片封装中。
实施例11:根据实施例1-3中任一项所述的一体式SSD组件,其中:所述NVM、所述处理器和所述网络接口设备被实现为多芯片模块(MCM)中的至少两个集成电路(IC)。
实施例12:根据实施例11所述的一体式SSD组件,其中:所述MCM被包括在单个IC芯片封装中。
实施例13:根据实施例1-3所述的一体式SSD组件,其中:所述NVM、所述处理器和所述网络接口设备被实现为一体式层叠封装(PoP)集成电路设备中的至少两个集成电路(IC)。
实施例14:根据实施例1-3所述的一体式SSD组件,还包括:框架,其中所述NVM、所述处理器和所述网络接口设备被安装到所述框架。
实施例15:根据实施例14所述的一体式SSD组件,其中所述网络连接器被安装到所述框架。
实施例16:根据实施例1-15所述的一体式SSD组件,其中:所述网络接口设备包括以太网网络接口设备;以及所述网络连接器是以太网网络连接器。
实施例17:根据实施例1-15所述的一体式SSD组件,其中:所述网络接口设备包括光纤通道网络接口设备;以及所述网络连接器是光纤通道网络连接器。
实施例18:根据实施例1-15所述的一体式SSD组件,其中:所述网络接口设备包括无限带宽网络接口设备;以及所述网络连接器是无限带宽网络连接器。
实施例19:一种访问一体式固态驱动器(SSD)组件的非易失性存储器(NVM)的方法,所述方法包括:在所述一体式SSD组件的网络接口设备处接收包括与访问所述NVM相关的信息的分组,所述分组是从被通信耦合到所述网络接口设备的网络架构接收到的;在所述一体式SSD组件的所述网络接口设备处确定所述分组的报头中的目的地网络地址与所述一体式SSD组件的网络地址匹配;以及响应于确定所述分组的所述报头中的所述网络地址与所述一体式SSD组件的所述网络地址匹配:在所述一体式SSD组件的处理器处从所述分组中解封装数据单元,所述数据单元对应于用于访问存储设备的通信协议,以及使用所述数据单元中的信息来访问所述NVM。
实施例20:根据实施例19所述的方法,还包括:在所述处理器处生成另外的数据单元,所述另外的数据单元与用于访问存储设备的所述通信协议相对应,所述另外的数据单元被生成为包括从所述NVM中获取的数据;由所述处理器向所述网络接口设备提供所述另外的数据单元;在所述网络接口设备处将所述另外的数据单元封装在另外的分组内;以及由所述网络接口设备向所述网络架构传输所述另外的分组。
实施例21:根据实施例19或20中任一项所述的方法,其中从所述分组中解封装所述数据单元包括:解封装包括符合非易失性存储器快速(NVMe)通信协议的信息的数据单元。
实施例22:根据实施例21所述的方法,其中从所述分组中解封装所述数据单元包括:解封装符合基于架构的NVMe(NVMe-oF)通信协议的数据单元。
实施例22A:根据实施例21所述的方法,其中从所述分组中解封装所述数据单元包括解封装符合基于TCP的NVMe(NVMe/TCP)通信协议的数据单元。
实施例23:根据实施例19-22A中任一项所述的方法,其中使用所述数据单元中的信息来访问所述NVM包括:使用所述一体式SSD组件的外围组件互连快速(PCIe)总线系统来访问所述NVM。
实施例24:根据实施例19-22中任一项所述的方法,其中:所述NVM、所述处理器和所述网络接口设备被集成到一体式基板上;以及使用所述数据单元中的信息来访问所述NVM包括从所述NVM中获取数据并且经由所述一体式基板从所述NVM向所述处理器传输获取到的所述数据,而无需首先向未集成到所述一体式基板上的任何部件传输获取到的所述数据。
实施例25:根据实施例24所述的方法,其中:所述一体式基板是单个印刷电路板(PCB),并且所述NVM、所述处理器和所述网络接口设备被安装在所述单个PCB上;以及经由所述一体式基板从所述NVM向所述处理器传输获取到的所述数据包括经由所述单个PCB从所述NVM向所述处理器传输获取到的所述数据,而无需首先向未安装到所述单个PCB上的任何部件传输获取到的所述数据。
实施例26:根据实施例24所述的方法,其中:所述NVM、所述处理器和所述网络接口设备被实现在多个集成电路(IC)小芯片上,并且所述多个IC小芯片被集成到多芯片模块(MCM)中的所述一体式基板上;以及经由所述一体式基板从所述NVM向所述处理器传输获取到的所述数据包括:从所述NVM向所述MCM内的所述处理器传输获取到的所述数据,而无需首先向所述MCM外部的任何部件传输获取到的所述数据。
实施例27:根据实施例24所述的方法,其中:所述NVM、所述处理器和所述网络接口设备被包括在壳体内;以及从所述NVM向所述处理器传输获取到的所述数据包括:从所述NVM向所述处理器传输获取到的所述数据,而无需首先向所述壳体外部的任何部件传输获取到的所述数据。
实施例28:根据实施例24所述的方法,其中:所述NVM、所述处理器和所述网络接口设备被实现在单个集成电路(IC)上;以及从所述NVM向所述处理器传输获取到的所述数据包括:从所述NVM向所述处理器传输获取到的所述数据,而无需首先向未在所述单个IC上实现的任何部件传输获取到的所述数据。
实施例29:根据实施例24所述的方法,其中:所述NVM、所述处理器和所述网络接口设备被实现为多芯片模块(MCM)中的至少两个集成电路(IC);以及从所述NVM向所述处理器传输获取到的所述数据包括:从所述NVM向所述处理器传输获取到的所述数据,而无需首先向不在所述MCM中的任何部件传输获取到的所述数据。
实施例30:根据实施例24所述的方法,其中:所述NVM、所述处理器和所述网络接口设备被实现为一体式层叠封装(PoP)集成电路设备中的至少两个集成电路(IC);以及从所述NVM向所述处理器传输获取到的所述数据包括:从所述NVM向所述处理器传输获取到的所述数据,而无需首先向不在所述PoP集成电路设备中的任何部件传输获取到的所述数据。
实施例31:根据实施例19-30中任一项所述的方法,其中:所述网络接口设备包括以太网网络接口设备,所述以太网网络接口设备耦合到所述一体式SSD组件的以太网连接器;以及从所述网络架构接收包括与访问所述NVM相关的所述信息的所述分组包括:经由所述以太网连接器接收包括与访问所述NVM相关的所述信息的以太网帧。
实施例32:根据实施例19-30中任一项所述的方法,其中:所述网络接口设备包括光纤通道网络接口设备,所述光纤通道网络接口设备耦合到所述一体式SSD组件的光纤通道连接器;从所述网络架构接收包括与访问所述NVM相关的所述信息的所述分组包括:经由所述光纤通道连接器接收包括与访问所述NVM相关的所述信息的光纤通道分组。
实施例33:根据实施例19-30中任一项所述的方法,其中:所述网络接口设备包括无限带宽网络接口设备,所述无限带宽网络接口设备耦合到所述一体式SSD组件的无限带宽连接器;以及从所述网络架构接收包括与访问所述NVM相关的所述信息的所述分组包括:经由所述无限带宽连接器接收包括与访问所述NVM相关的所述信息的无限带宽分组。
上述各种框、操作和技术中的至少一些可以利用硬件、执行固件指令的处理器、执行软件指令的处理器或其任何组合来实现。当利用执行软件或固件指令的处理器来实现时,软件或固件指令可以存储在任何合适的计算机可读存储器中,例如随机存取存储器(RAM)、只读存储器(ROM)、闪存等。软件或固件指令可以包括在由一个或多个处理器执行时引起该一个或多个处理器执行各种动作的机器可读指令。
当以硬件实现时,硬件可以包括分立组件、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)等中的一种或多种。
虽然已经参考具体实施例描述了本发明,这些实施例仅用于说明而不是限制本发明,在不脱离本发明的范围的情况下,可以对所公开的实施例进行改变、添加和/或删除。

Claims (33)

1.一种一体式固态驱动器(SSD)组件,所述一体式SSD组件包括:
非易失性存储器(NVM);
处理器,被通信耦合到所述NVM,并且被配置为实现通信协议,所述通信协议被配置用于通过通信网络访问固态存储器;
网络接口设备,被通信耦合到所述处理器,其中所述网络接口设备被配置为根据网络通信协议经由网络架构进行通信,并且其中所述NVM、所述处理器和所述网络接口设备被布置在一体式组件中;以及
网络连接器,被耦合到所述网络接口设备。
2.根据权利要求1所述的一体式SSD组件,其中所述处理器被配置为实现非易失性存储器快速(NVMe)通信协议。
3.根据权利要求2所述的一体式SSD组件,其中所述处理器还被配置为实现基于架构的NVMe(NVMe-oF)通信协议。
4.根据权利要求1所述的一体式SSD组件,还包括:
外围组件互连快速(PCIe)总线系统,所述PCIe总线系统至少互连所述NVM和所述处理器。
5.根据权利要求1所述的一体式SSD组件,还包括:
一体式基板,其中所述NVM、所述处理器和所述网络接口设备被连接到或集成到所述一体式基板上。
6.根据权利要求5所述的一体式SSD组件,其中:
所述一体式基板是单个印刷电路板(PCB),其中所述NVM、所述处理器和所述网络接口设备被安装在所述单个PCB上。
7.根据权利要求5所述的一体式SSD组件,其中:
所述NVM、所述处理器和所述网络接口设备被实现在多个集成电路(IC)小芯片上,并且所述多个IC小芯片被集成到多芯片模块(MCM)中的所述一体式基板上。
8.根据权利要求1所述的一体式SSD组件,还包括:
壳体,其中所述NVM、所述处理器和所述网络接口设备被包括在所述壳体内,并且其中所述壳体限定容纳所述连接器的孔。
9.根据权利要求1所述的一体式SSD组件,其中:
所述NVM、所述处理器和所述网络接口设备被实现在单个集成电路(IC)上。
10.根据权利要求9所述的一体式SSD组件,其中:
其中所述单个IC被包括在单个IC芯片封装中。
11.根据权利要求1所述的一体式SSD组件,其中:
所述NVM、所述处理器和所述网络接口设备被实现为多芯片模块(MCM)中的至少两个集成电路(IC)。
12.根据权利要求11所述的一体式SSD组件,其中:
所述MCM被包括在单个IC芯片封装中。
13.根据权利要求1所述的一体式SSD组件,其中:
所述NVM、所述处理器和所述网络接口设备被实现为一体式层叠封装(PoP)集成电路设备中的至少两个集成电路(IC)。
14.根据权利要求1所述的一体式SSD组件,还包括:
框架,其中所述NVM、所述处理器和所述网络接口设备被安装到所述框架。
15.根据权利要求14所述的一体式SSD组件,其中所述网络连接器被安装到所述框架。
16.根据权利要求1所述的一体式SSD组件,其中:
所述网络接口设备包括以太网网络接口设备;以及
所述网络连接器是以太网网络连接器。
17.根据权利要求1所述的一体式SSD组件,其中:
所述网络接口设备包括光纤通道网络接口设备;以及
所述网络连接器是光纤通道网络连接器。
18.根据权利要求1所述的一体式SSD组件,其中:
所述网络接口设备包括无限带宽网络接口设备;以及
所述网络连接器是无限带宽网络连接器。
19.一种访问一体式固态驱动器(SSD)组件的非易失性存储器(NVM)的方法,所述方法包括:
在所述一体式SSD组件的网络接口设备处接收包括与访问所述NVM相关的信息的分组,所述分组是从被通信耦合到所述网络接口设备的网络架构接收到的;
在所述一体式SSD组件的所述网络接口设备处确定所述分组的报头中的目的地网络地址与所述一体式SSD组件的网络地址匹配;以及
响应于确定所述分组的所述报头中的所述网络地址与所述一体式SSD组件的所述网络地址匹配:
在所述一体式SSD组件的处理器处从所述分组中解封装数据单元,所述数据单元对应于用于访问存储设备的通信协议,以及
使用所述数据单元中的信息来访问所述NVM。
20.根据权利要求19所述的方法,还包括:
在所述处理器处生成另外的数据单元,所述另外的数据单元与用于访问存储设备的所述通信协议相对应,所述另外的数据单元被生成为包括从所述NVM中获取的数据;
由所述处理器向所述网络接口设备提供所述另外的数据单元;
在所述网络接口设备处将所述另外的数据单元封装在另外的分组内;以及
由所述网络接口设备向所述网络架构传输所述另外的分组。
21.根据权利要求19所述的方法,其中从所述分组中解封装所述数据单元包括:解封装包括符合非易失性存储器快速(NVMe)通信协议的信息的数据单元。
22.根据权利要求21所述的方法,其中从所述分组中解封装所述数据单元包括:解封装符合基于架构的NVMe(NVMe-oF)通信协议的数据单元。
23.根据权利要求19所述的方法,其中使用所述数据单元中的信息来访问所述NVM包括:
使用所述一体式SSD组件的外围组件互连快速(PCIe)总线系统来访问所述NVM。
24.根据权利要求19所述的方法,其中:
所述NVM、所述处理器和所述网络接口设备被集成到一体式基板上;以及
使用所述数据单元中的信息来访问所述NVM包括:从所述NVM中获取数据并且经由所述一体式基板从所述NVM向所述处理器传输获取到的所述数据,而无需首先向未集成到所述一体式基板上的任何部件传输获取到的所述数据。
25.根据权利要求24所述的方法,其中:
所述一体式基板是单个印刷电路板(PCB),并且所述NVM、所述处理器和所述网络接口设备被安装在所述单个PCB上;以及
经由所述一体式基板从所述NVM向所述处理器传输获取到的所述数据包括:经由所述单个PCB从所述NVM向所述处理器传输获取到的所述数据,而无需首先向未安装到所述单个PCB上的任何部件传输获取到的所述数据。
26.根据权利要求24所述的方法,其中:
所述NVM、所述处理器和所述网络接口设备被实现在多个集成电路(IC)小芯片上,并且所述多个IC小芯片被集成到多芯片模块(MCM)中的所述一体式基板上;以及
经由所述一体式基板从所述NVM向所述处理器传输获取到的所述数据包括:从所述NVM向所述MCM内的所述处理器传输获取到的所述数据,而无需首先向所述MCM外部的任何部件传输获取到的所述数据。
27.根据权利要求24所述的方法,其中:
所述NVM、所述处理器和所述网络接口设备被包括在壳体内;以及
从所述NVM向所述处理器传输获取到的所述数据包括:从所述NVM向所述处理器传输获取到的所述数据,而无需首先向所述壳体外部的任何部件传输获取到的所述数据。
28.根据权利要求24所述的方法,其中:
所述NVM、所述处理器和所述网络接口设备被实现在单个集成电路(IC)上;以及
从所述NVM向所述处理器传输获取到的所述数据包括:从所述NVM向所述处理器传输获取到的所述数据,而无需首先向未实现在所述单个IC上的任何部件传输获取到的所述数据。
29.根据权利要求24所述的方法,其中:
所述NVM、所述处理器和所述网络接口设备被实现为多芯片模块(MCM)中的至少两个集成电路(IC);以及
从所述NVM向所述处理器传输获取到的所述数据包括:从所述NVM向所述处理器传输获取到的所述数据,而无需首先向不在所述MCM中的任何部件传输获取到的所述数据。
30.根据权利要求24所述的方法,其中:
所述NVM、所述处理器和所述网络接口设备被实现为一体式层叠封装(PoP)集成电路设备中的至少两个集成电路(IC);以及
从所述NVM向所述处理器传输获取到的所述数据包括:从所述NVM向所述处理器传输获取到的所述数据,而无需首先向不在所述PoP集成电路设备中的任何部件传输获取到的所述数据。
31.根据权利要求19所述的方法,其中:
所述网络接口设备包括以太网网络接口设备,所述以太网网络接口设备被耦合到所述一体式SSD组件的以太网连接器;以及
从所述网络架构接收包括与访问所述NVM相关的所述信息的所述分组包括:经由所述以太网连接器接收包括与访问所述NVM相关的所述信息的以太网帧。
32.根据权利要求19所述的方法,其中:
所述网络接口设备包括光纤通道网络接口设备,所述光纤通道网络接口设备被耦合到所述一体式SSD组件的光纤通道连接器;
从所述网络架构接收包括与访问所述NVM相关的所述信息的所述分组包括:经由所述光纤通道连接器接收包括与访问所述NVM相关的所述信息的光纤通道分组。
33.根据权利要求19所述的方法,其中:
所述网络接口设备包括无限带宽网络接口设备,所述无限带宽网络接口设备被耦合到所述一体式SSD组件的无限带宽连接器;以及
从所述网络架构接收包括与访问所述NVM相关的所述信息的所述分组包括:经由所述无限带宽连接器接收包括与访问所述NVM相关的所述信息的无限带宽分组。
CN202080032540.1A 2019-03-14 2020-03-16 启用以太网的固态驱动器(ssd) Active CN113767361B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410709603.2A CN118502672A (zh) 2019-03-14 2020-03-16 启用以太网的固态驱动器(ssd)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962818621P 2019-03-14 2019-03-14
US62/818,621 2019-03-14
PCT/US2020/023013 WO2020186270A1 (en) 2019-03-14 2020-03-16 Ethernet enabled solid state drive (ssd)

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202410709603.2A Division CN118502672A (zh) 2019-03-14 2020-03-16 启用以太网的固态驱动器(ssd)

Publications (2)

Publication Number Publication Date
CN113767361A true CN113767361A (zh) 2021-12-07
CN113767361B CN113767361B (zh) 2024-06-21

Family

ID=70228862

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202080032540.1A Active CN113767361B (zh) 2019-03-14 2020-03-16 启用以太网的固态驱动器(ssd)
CN202410709603.2A Pending CN118502672A (zh) 2019-03-14 2020-03-16 启用以太网的固态驱动器(ssd)

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202410709603.2A Pending CN118502672A (zh) 2019-03-14 2020-03-16 启用以太网的固态驱动器(ssd)

Country Status (4)

Country Link
US (1) US11294602B2 (zh)
EP (1) EP3938880A1 (zh)
CN (2) CN113767361B (zh)
WO (1) WO2020186270A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11366610B2 (en) 2018-12-20 2022-06-21 Marvell Asia Pte Ltd Solid-state drive with initiator mode
US11392527B2 (en) 2020-08-31 2022-07-19 Micron Technology, Inc. Ordered delivery of data packets based on type of path information in each packet
US11658922B2 (en) * 2020-08-31 2023-05-23 Micron Technology, Inc. Optional path ordering in packet-based network

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150006663A1 (en) * 2013-06-26 2015-01-01 Cnex Labs, Inc. NVM Express Controller for Remote Access of Memory and I/O Over Ethernet-Type Networks
CN104917743A (zh) * 2013-03-14 2015-09-16 罗斯蒙特公司 用于工业过程网络的通信单元
US20160062652A1 (en) * 2014-08-29 2016-03-03 Dell Products, Lp System and Method for Providing Personality Switching in a Solid State Drive Device
CN107077304A (zh) * 2016-09-18 2017-08-18 深圳市大疆创新科技有限公司 数据转换设备、芯片、方法、装置及影像系统
US20180046594A1 (en) * 2016-08-12 2018-02-15 Samsung Electronics Co., Ltd. Storage device with network access
CN108205499A (zh) * 2016-12-16 2018-06-26 西部数据技术公司 用于将数据处理转移到混合存储设备的方法和装置
US20180284989A1 (en) * 2017-03-31 2018-10-04 Samsung Electronics Co., Ltd. System and method for providing data replication in nvme-of ethernet ssd
CN108885597A (zh) * 2016-04-04 2018-11-23 马维尔国际贸易有限公司 用于使用直接目标访问经由通过结构的非易失性存储器桥接访问主机存储器的方法和系统
US20180373642A1 (en) * 2017-06-21 2018-12-27 Samsung Electronics Co., Ltd. Storage device, storage system comprising the same, and operating methods of the storage device
CN109213706A (zh) * 2017-06-30 2019-01-15 英特尔公司 用于访问作为存储器的存储设备的系统和方法
US20200293483A1 (en) * 2019-03-14 2020-09-17 Marvell Israel (M.I.S.L) Ltd. TRANSFERRING DATA BETWEEN SOLID STATE DRIVES (SSDs) VIA A CONNECTION BETWEEN THE SSDs

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7499450B2 (en) * 2004-04-30 2009-03-03 Infineon Technologies Ag Router IP port for an IP router
US9313128B2 (en) * 2011-02-17 2016-04-12 Nec Corporation Network system and network flow tracing method
US20180107591A1 (en) 2011-04-06 2018-04-19 P4tents1, LLC System, method and computer program product for fetching data between an execution of a plurality of threads
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
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
US9304690B2 (en) * 2014-05-07 2016-04-05 HGST Netherlands B.V. System and method for peer-to-peer PCIe storage transfers
US9565269B2 (en) * 2014-11-04 2017-02-07 Pavilion Data Systems, Inc. Non-volatile memory express over ethernet
WO2016182756A1 (en) * 2015-05-14 2016-11-17 Apeiron Data Systems Accessing multiple storage devices from multiple hosts without remote direct memory access (rdma)
KR102430187B1 (ko) 2015-07-08 2022-08-05 삼성전자주식회사 RDMA NVMe 디바이스의 구현 방법
US10162793B1 (en) 2015-09-29 2018-12-25 Amazon Technologies, Inc. Storage adapter device for communicating with network storage
CN107003816B (zh) 2016-06-14 2020-06-26 华为技术有限公司 数据访问方法和相关装置及系统
KR102631351B1 (ko) 2016-10-07 2024-01-31 삼성전자주식회사 피어-투 피어 통신을 수행할 수 있는 저장 장치와 이를 포함하는 데이터 저장 시스템
WO2018102968A1 (zh) 2016-12-05 2018-06-14 华为技术有限公司 NVMe over Fabric架构中数据读写命令的控制方法、设备和系统
US10282094B2 (en) 2017-03-31 2019-05-07 Samsung Electronics Co., Ltd. Method for aggregated NVME-over-fabrics ESSD
US10459665B2 (en) 2017-04-03 2019-10-29 Samsung Electronics Co., Ltd. System and method of configuring NVMe-oF devices using a baseboard management controller (BMC)
US10275180B2 (en) 2017-05-08 2019-04-30 Samsung Electronics Co., Ltd. Ethernet SSD system including storage offload engine (SoE) controller and ethernet switch
US10860508B2 (en) 2017-05-25 2020-12-08 Western Digital Technologies, Inc. Offloaded disaggregated storage architecture
US10423358B1 (en) * 2017-05-31 2019-09-24 FMAD Engineering GK High-speed data packet capture and storage with playback capabilities
US10719474B2 (en) * 2017-10-11 2020-07-21 Samsung Electronics Co., Ltd. System and method for providing in-storage acceleration (ISA) in data storage devices
US20190163364A1 (en) 2017-11-30 2019-05-30 Eidetic Communications Inc. System and method for tcp offload for nvme over tcp-ip
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
US10963394B2 (en) 2018-04-16 2021-03-30 Samsung Electronics Co., Ltd. System and method for optimizing performance of a solid-state drive using a deep neural network
US11231764B2 (en) 2018-10-17 2022-01-25 Samsung Electronics Co., Ltd. System and method for supporting chassis level keep alive in NVME-of based system
US10671302B1 (en) 2018-10-26 2020-06-02 Pure Storage, Inc. Applying a rate limit across a plurality of storage systems
KR102691053B1 (ko) 2019-01-10 2024-07-31 삼성전자주식회사 NVMe-SSD 저장 장치 및 NVMe-oF 호스트 유닛 사이의 통신 관리 시스템 및 방법
US10877682B2 (en) 2019-01-10 2020-12-29 Western Digital Technologies, Inc. Non-disruptive cross-protocol live data migration

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104917743A (zh) * 2013-03-14 2015-09-16 罗斯蒙特公司 用于工业过程网络的通信单元
US20150006663A1 (en) * 2013-06-26 2015-01-01 Cnex Labs, Inc. NVM Express Controller for Remote Access of Memory and I/O Over Ethernet-Type Networks
US20160062652A1 (en) * 2014-08-29 2016-03-03 Dell Products, Lp System and Method for Providing Personality Switching in a Solid State Drive Device
CN108885597A (zh) * 2016-04-04 2018-11-23 马维尔国际贸易有限公司 用于使用直接目标访问经由通过结构的非易失性存储器桥接访问主机存储器的方法和系统
US20180046594A1 (en) * 2016-08-12 2018-02-15 Samsung Electronics Co., Ltd. Storage device with network access
CN107077304A (zh) * 2016-09-18 2017-08-18 深圳市大疆创新科技有限公司 数据转换设备、芯片、方法、装置及影像系统
CN108205499A (zh) * 2016-12-16 2018-06-26 西部数据技术公司 用于将数据处理转移到混合存储设备的方法和装置
US20180284989A1 (en) * 2017-03-31 2018-10-04 Samsung Electronics Co., Ltd. System and method for providing data replication in nvme-of ethernet ssd
US20180373642A1 (en) * 2017-06-21 2018-12-27 Samsung Electronics Co., Ltd. Storage device, storage system comprising the same, and operating methods of the storage device
CN109213706A (zh) * 2017-06-30 2019-01-15 英特尔公司 用于访问作为存储器的存储设备的系统和方法
US20200293483A1 (en) * 2019-03-14 2020-09-17 Marvell Israel (M.I.S.L) Ltd. TRANSFERRING DATA BETWEEN SOLID STATE DRIVES (SSDs) VIA A CONNECTION BETWEEN THE SSDs

Also Published As

Publication number Publication date
CN118502672A (zh) 2024-08-16
WO2020186270A1 (en) 2020-09-17
US11294602B2 (en) 2022-04-05
EP3938880A1 (en) 2022-01-19
US20200293195A1 (en) 2020-09-17
CN113767361B (zh) 2024-06-21

Similar Documents

Publication Publication Date Title
US7480303B1 (en) Pseudo-ethernet switch without ethernet media-access-controllers (MAC's) that copies ethernet context registers between PCI-express ports
CN113767361B (zh) 启用以太网的固态驱动器(ssd)
US7668984B2 (en) Low latency send queues in I/O adapter hardware
US8447884B1 (en) Methods for mapping virtual addresses to physical addresses in a network device and systems thereof
US7937447B1 (en) Communication between computer systems over an input/output (I/O) bus
US7492710B2 (en) Packet flow control
US9306761B2 (en) Video streaming system and method
US10311008B2 (en) Storage device with network access
US11698881B2 (en) Transferring data between solid state drives (SSDs) via a connection between the SSDs
US20080098197A1 (en) Method and System For Address Translation With Memory Windows
US20090003361A1 (en) Multi-protocol controller that supports PCle, SAS and enhanced ethernet
TW202020665A (zh) 用於半導體封裝的序列介面
US11003607B2 (en) NVMF storage to NIC card coupling over a dedicated bus
US9753883B2 (en) Network interface device that maps host bus writes of configuration information for virtual NIDs into a small transactional memory
US7620047B2 (en) Method of transporting a RapidIO packet over an IP packet network
Kwon et al. Gen-z memory pool system architecture
US7120725B2 (en) Method of communicating a VMEbus signal over IP packet network
US8799519B2 (en) Network-to-network bridge
US9535851B2 (en) Transactional memory that performs a programmable address translation if a DAT bit in a transactional memory write command is set
US10228968B2 (en) Network interface device that alerts a monitoring processor if configuration of a virtual NID is changed
US7443844B2 (en) Switched fabric mezzanine storage module
US20230266926A1 (en) Memory sharing electronic circuit system and external device capable of storing data in host device
US7532616B2 (en) Fabric enabled storage module
Snively Implementing a Fibre Channel SCSI Transport
KR20160097683A (ko) 컴퓨팅 디바이스, 메모리 디바이스 및 메모리 확장 디바이스

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