CN108292282A - 分解块存储控制器堆栈 - Google Patents
分解块存储控制器堆栈 Download PDFInfo
- Publication number
- CN108292282A CN108292282A CN201680068876.7A CN201680068876A CN108292282A CN 108292282 A CN108292282 A CN 108292282A CN 201680068876 A CN201680068876 A CN 201680068876A CN 108292282 A CN108292282 A CN 108292282A
- Authority
- CN
- China
- Prior art keywords
- layer
- unknowable
- common
- subsystem
- common layer
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Abstract
系统、装置和方法可以提供通过公共层与本地块存储系统进行通信,并且通过与公共层通信地耦合的子系统层与一个或多个子系统进行通信。另外,公共层可以与子系统层的一个或多个硬件特定组件解除关联。在一个示例中,公共层可以将一个或多个回调函数导出到子系统层,其中回调函数包括注册函数和/或注销函数。
Description
相关申请的交叉引用
本申请要求于2015年12月24日提交的美国非暂时专利申请第14/998,061号的优先权的利益。
技术领域
实施例一般涉及存储器结构。更具体地,实施例涉及分解块存储控制器堆栈。
背景技术
块存储系统通常可以使用诸如固态盘(SSD)之类的非易失性存储器(NVM)来将数据存储在也被称为块的卷中,其中每个块可以充当能够由存储管理员配置的单独的硬盘驱动器。兼容NVMe(NVM Express)的块存储系统可以经由统一软件堆栈直接连接到PCI-e(快速外围组件互连)总线,该统一软件堆栈具有设计用于通过PCI-e的基于NVM的存储事务的精益化(streamlined)的寄存器接口和命令集。然而,根据特定类型的接口(例如,PCI-e)而对统一软件堆栈进行调整可能会限制可扩展性。
附图说明
通过阅读以下说明书和所附权利要求,并且通过参考以下附图,实施例的各种优点对于本领域技术人员将变得显而易见,其中:
图1是根据实施例的常规块存储控制器堆栈与分解块存储控制器堆栈之间的比较的示例的框图;
图2是根据实施例的支持通过结构连接的远程访问的分解块存储控制器堆栈的示例的框图;
图3是根据实施例的操作块存储系统的方法的示例的流程图;
图4是根据实施例的操作子系统层的方法的示例的流程图;以及
图5是根据实施例的计算系统的示例的框图。
具体实施方式
诸如例如NAND和NOR、EPROM(可擦除可编程只读存储器)、PROM(可编程只读存储器)等的存储器架构可以提供用于存储数据的非易失性存储器(NVM)。NVM的示例可以包括例如相变存储器(PCM)、三维交叉点存储器、电阻式存储器、纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、诸如NAND或NOR的闪存、包括忆阻器技术的磁阻随机存取存储器(MRAM)存储器、自旋转移转矩(STT)-MRAM等。而且,固态盘(SSD)驱动器可以具有基于块的NVM,诸如NAND或NOR,并且可以包括字节可寻址位写入存储器,例如三维交叉点存储器和MRAM。这些存储器结构在数据中心环境中尤其有用,例如高性能计算(HPC)系统、大数据系统和涉及相对高带宽数据传输的其他架构。
现在转到图1,示出了相对于增强型块存储系统12的常规块存储系统10。常规块存储系统10和增强型块存储系统12可以作为SSD、硬盘驱动器(HDD)等并入主计算机中。在所示示例中,常规块存储系统10具有经由控制器19的统一块存储堆栈18直接连接到子系统接口14(例如,PCI-e总线)的块存储装置16(例如,NVM)。相反,增强型块存储系统12具有通信地耦合到控制器21的公共层22的块存储装置20(例如,NVM),其中公共层22通信地耦合到一个或多个子系统层24(24a、24b)。子系统层24通常可以连接到具有不同类型总线、寄存器接口、命令集和其他硬件特定组件的不同类型的子系统26(26a、26b)。例如,第一子系统层24a可以被配置为根据PCI-e协议与第一子系统26a通信,而第二子系统层24b可以被配置为根据非PCI-e协议与第二子系统26b通信。
特别值得注意的是,公共层22可以被认为是与子系统层24的硬件特定组件解除关联,到公共层22不知道子系统层24的通信细节(例如,下层传输机制和/或硬件)或其不可知的程度。如将更详细讨论的,可以通过在公共层22和子系统层24之间交换一个或多个回调函数(例如,注册和/或注销函数)来建立解除关联以促进双向耦合。回调函数可以包括一段可执行代码,该段可执行代码作为参数传递给接收层,预期接收层在适当时回调(例如,执行)参数。因此,为了向公共层22注册,每个子系统层24可以执行注册回调函数。类似地,为了从公共层22注销,每个子系统层24可以执行注销回调函数。公共层22还可以接收来自子系统层24的导出的函数,并根据导出的函数执行注册的回调。因此,增强型块存储系统12可以比传统的块存储系统10更具可扩展性,因为增强型块存储系统12更能适应不同类型的子系统26(例如,随着时间的推移而对其进行开发)。在一个示例中,增强型块存储系统12是NVMe兼容文件系统(例如,NVMExpress,修订版1.2a,2015年10月23日,NVM Express公司,nvmexpress.org)。如果合适,层22、24可以包括驱动程序、共享库等。
图2示出了其中块存储装置30(例如NVM)通信地耦合到公共层32的另一示例,其中公共层32通信地耦合到多个子系统层34(34a、34b)。在所示的示例中,第一子系统层34a与特定类型的子系统接口36(“类型A”,例如PCI-e)通信,而第二子系统层34b支持到多个远程访问子系统38(38a、38b)的结构连接。在这方面,第二子系统层34b可以包括与公共层32通信的不可知层40和通信地耦合到不可知层40的多个远程访问层42(42a、42b)。
例如,第一远程访问层42a可以被配置为根据第一类型的远程访问协议(“类型B”,例如,RDMA/远程直接存储器访问、INFINIBAND、IWARP、ROCE等)与第一远程访问子系统38a通信,而第二远程访问层42b可以被配置为根据第二类型的远程访问协议(“类型C”,非RDMA协议,例如光纤通道)与第二远程访问子系统38b通信。所示的不可知层40将公共层32与远程访问层42的一个或多个网络结构特定组件解除关联。如将更详细讨论的,可通过在远程访问层42和不可知层40之间交换一个或多个回调函数以促进双向耦合来建立解除关联。例如,不可知层40可以将回调函数导出到远程访问层42以便建立、发送和/或完成来自公共层32的请求。不可知层40还可以从远程访问层42接收导出的函数并根据导出的函数执行注册的回调。由于适应不同类型的远程访问子系统38(例如,随着时间的推移而对其进行开发)的能力,所示的块存储装置30因此可以具有增强的可扩展性。在一个示例中,块存储装置30是NVMe兼容文件系统(例如,集成到主机计算机中的SSD)的一部分。此外,不可知层40可以从一个或多个子系统管理器41获得关于远程访问子系统38的附加连接性信息。
图3示出了操作块存储系统的方法44。方法44通常可以在已经讨论的块存储系统(例如,增强块存储系统12(图1)和/或包含块存储装置30的系统(图2))中实现。更具体地,方法44可作为以下中存储的一组逻辑指令而在一个或多个模块中实现:在机器或计算机可读存储介质中,诸如随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、固件、闪存等;在可配置逻辑中,诸如可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD);在使用电路技术的固定功能硬件逻辑中,诸如专用集成电路(ASIC)、互补金属氧化物半导体(CMOS)或晶体管-晶体管逻辑(TTL)技术,或其任意组合。例如,用于执行方法44中所示的操作的计算机程序代码可以以一种或多种操作系统适用/适当的编程语言的任意组合来编写,所述编程语言包括诸如JAVA、SMALLTALK、C++等的面向对象的编程语言和传统的过程式编程语言,诸如“C”编程语言或类似的编程语言。
所示的处理块46提供通过公共层与本地块存储系统(例如,集成到主计算机中的SSD)进行通信。块48可以可选地在公共层和通信地耦合到公共层的子系统层之间交换一个或多个回调函数以促进双向耦合,其中回调函数可以包括注册函数或注销函数中的一个或多个。另外,所示块50可以通过子系统层与一个或多个子系统进行通信。如已经提到的,公共层可以与子系统层的一个或多个硬件特定组件解除关联。在一个示例中,多个子系统层(例如,不同类型的)被通信地耦合到公共层,其中公共层与多个子系统层中的每一个的一个或多个硬件组件解除关联。
图4示出了操作子系统层的方法52。方法52通常可以在已经讨论的块存储系统(例如,增强块存储系统12(图1)和/或包含块存储装置30的系统(图2))中实现。更具体地,方法52可作为以下中存储的一组逻辑指令而在一个或多个模块中实现:在机器或计算机可读存储介质中,诸如RAM、ROM、PROM、固件、闪存等;在可配置逻辑中,诸如PLA、FPGA、CPLD;在使用电路技术的固定功能硬件逻辑中,诸如ASIC、CMOS或TTL技术,或其任意组合。
图示的处理块54提供通过不可知层与公共层进行通信,其中块56可以可选地在不可知层与通信地耦合到不可知层的远程访问层之间交换一个或多个回调函数以促进双向耦合。可以根据与远程访问层相关联的特定类型的网络结构而对回调函数进行调整。此外,所示块58通过远程访问层与一个或多个远程块存储系统(例如,经由特定类型的网络结构)进行通信。所示的不可知层将公共层与远程访问层的一个或多个结构特定组件解除关联。在一个示例中,不可知层使用一个或多个回调函数中的至少一个以进行以下中的一个或多个:建立、发送和/或完成来自公共层的请求。如已经提到的那样,多个远程访问层(例如,不同类型的)可以通信地耦合到不可知层,其中多个远程访问层与多个远程块存储系统进行通信,并且不可知层将公共层与所述多个远程访问层中的每个远程访问层的一个或多个网络结构特定组件解除关联。
图5示出了分解的存储器架构60。存储器架构60可以包括主机计算系统62,主机计算系统62经由结构连接66耦合到对等计算系统64(例如,在消息传递接口/MPI应用程序、大数据分析应用程序等中),结构连接66例如为RDMA协议(例如,INFINIBAND、IWARP和/或ROCE)。计算系统62、64通常可以是具有计算功能(例如数据中心、服务器、个人数字助理/PDA、笔记本电脑、平板电脑)、通信功能(例如智能电话),成像功能、媒体播放功能(例如,智能电视/TV)、可穿戴功能(例如手表、眼镜、头饰、鞋类、珠宝)、车辆功能性(例如汽车、卡车、摩托车)等或其任何组合的电子设备/平台的一部分。
在所示的示例中,主机计算系统62包括经由主桥74(例如,PCI-e主桥)耦合到系统总线72的主处理器68(例如中央处理单元/CPU)和系统存储器70(例如DRAM)。主处理器68可以执行操作系统(OS)和/或内核。主机计算系统62还可以包括电源76以向存储器架构60和/或主机计算系统62提供电力。系统总线72还可以耦合到图形适配器78和总线桥80(例如,PCI-e总线桥)。图示的总线桥80还耦合到输入/输出(IO)总线84,例如PCI-e总线。IO总线84可被认为是如本文所述的子系统接口。块存储系统88可以经由块存储控制器86间接地耦合到IO总线84。块存储系统88和块存储控制器86可以兼容诸如SAS(串行连接的SCSI/小型计算机系统接口)或SATA(串行ATA/高级技术附件)协议的协议。
另外,本地块存储系统90可以直接耦合到IO总线84,其中本地块存储系统90可以是NVM Express(NVMe)兼容的文件系统。在一个示例中,本地块存储系统90具有类似于已经讨论的增强型块存储系统12(图1)和/或包含块存储装置30的系统(图2)的功能的功能。因此,本地块存储系统90可以包括通信地耦合到本地块存储系统90的公共层和通信地耦合到公共层的子系统层。子系统层可以经由网络适配器82与对等计算系统64中的一个或多个子系统(例如,IO总线84、块存储系统88和/或远程访问存储系统92)通信。公共层可以通过一个或多个子系统层与一个或多个硬件特定组件解除关联。
在远程访问存储系统92的情况下,子系统层可以包括与公共层进行通信的不可知层以及与不可知层通信地耦合的远程访问层。远程访问层可以与远程访问存储系统92通信,其中不可知层将公共层与远程访问层的一个或多个网络结构特定组件解除关联。因此,数据可以以可扩展且高效的方式在主机处理器68、本地块存储系统90、间接连接块存储系统88和/或远程访问存储系统92之间传送。
附加注释和示例:
示例1可以包括一种分解式存储器架构,包括:向所述存储器架构提供电力的电源;一个或多个子系统;以及本地块存储系统,包括:本地块存储装置,通信地耦合到所述本地块存储装置的公共层,以及通信地耦合到所述公共层的子系统层,所述子系统层与所述一个或多个子系统进行通信,其中,所述公共层与所述子系统层的一个或多个硬件特定组件解除关联。
示例2可以包括示例1的存储器架构,其中所述公共层和所述子系统层交换一个或多个回调函数以促进双向耦合,并且其中,所述一个或多个回调函数包括注册函数或注销函数中的一个或多个。
示例3可以包括示例1的存储器架构,其中所述子系统层包括:与所述公共层进行通信的不可知层;以及通信地耦合到所述不可知层的远程访问层,其中,所述远程访问层与一个或多个远程块存储系统进行通信,并且所述不可知层将所述公共层与所述远程访问层的一个或多个网络结构特定组件解除关联。
示例4可以包括示例3的存储器架构,其中所述不可知层和所述远程访问层交换一个或多个回调函数以促进双向耦合,并且其中,所述不可知层使用所述一个或多个回调函数中的至少一个来进行以下中的一项或多项:构建来自所述公共层的请求、发送来自所述公共层的请求、或完成来自所述公共层的请求。
示例5可以包括示例1至4中的任何一个的存储器架构,还包括通信地耦合到所述公共层的多个子系统层,其中,所述公共层与所述多个子系统层中的每一个的一个或多个硬件特定组件解除关联。
示例6可以包括示例1至4中的任何一个的存储器架构,其中所述本地块存储系统是NVM Express兼容文件系统。
示例7可以包括块存储堆栈装置,包括:与本地块存储系统进行通信的公共层;以及通信地耦合到所述公共层的子系统层,所述子系统层与一个或多个子系统进行通信,其中,所述公共层与所述子系统层的一个或多个硬件特定组件解除关联。
示例8可以包括示例7的装置,其中所述公共层和所述子系统层交换一个或多个回调函数以促进双向耦合,并且其中,所述一个或多个回调函数包括注册函数或注销函数中的一个或多个。
示例9可以包括示例7的装置,其中所述子系统层包括:与所述公共层进行通信的不可知层;以及通信地耦合到所述不可知层的远程访问层,其中,所述远程访问层与一个或多个远程块存储系统进行通信,并且所述不可知层将所述公共层与所述远程访问层的一个或多个网络结构特定组件解除关联。
示例10可以包括示例9的装置,其中,所述不可知层和所述远程访问层交换一个或多个回调函数以促进双向耦合,并且其中,所述不可知层使用所述一个或多个回调函数中的至少一个来进行以下中的一项或多项:构建来自所述公共层的请求、发送来自所述公共层的请求、或完成来自所述公共层的请求。
示例11可以包括示例9的装置,还包括通信地耦合到所述不可知层的多个远程访问层,其中,所述多个远程访问层与多个远程块存储系统进行通信,并且所述不可知层将所述公共层与所述多个远程访问层中的每一个的一个或多个网络结构特定组件解除关联。
示例12可以包括示例7至11中的任何一个的装置,还包括通信地耦合到所述公共层的多个子系统层,其中,所述公共层与所述多个子系统层中的每一个的一个或多个硬件特定组件解除关联。
示例13可以包括一种操作块存储堆栈装置的方法,包括:通过公共层与本地块存储系统进行通信;以及通过通信地耦合到所述公共层的子系统层与一个或多个子系统进行通信,其中,所述公共层与所述子系统层的一个或多个硬件特定组件解除关联。
示例14可以包括示例13的方法,还包括在所述公共层和所述子系统层之间交换一个或多个回调函数以促成双向耦合,其中,所述一个或多个回调函数包括注册函数或注销函数中的一个或多个。
示例15可以包括示例13的方法,还包括:通过不可知层与所述公共层进行通信;以及通过通信地耦合到所述不可知层的远程访问层与一个或多个远程块存储系统进行通信,其中,所述不可知层将所述公共层与所述远程访问层的一个或多个网络结构特定组件解除关联。
示例16可以包括示例15的方法,还包括在所述不可知层与所述远程访问层之间交换一个或多个回调函数以促进双向耦合,其中,所述不可知层使用所述一个或多个回调函数中的至少一个来进行以下中的一项或多项:构建来自所述公共层的请求、发送来自所述公共层的请求、或完成来自所述公共层的请求。
示例17可以包括示例15的方法,其中所述公共层与通信地耦合到所述不可知层的多个远程访问层中的每一个的一个或多个网络结构特定组件解除关联。
示例18可以包括示例13至17中的任何一个的方法,其中所述公共层与通信地耦合到所述公共层的多个子系统层中的每一个的一个或多个硬件特定组件解除关联。
示例19可以包括至少一种非暂时性计算机可读存储介质,其包括一组指令,所述指令在由计算设备执行时使所述计算设备:通过公共层与本地块存储系统进行通信;以及通过通信地耦合到所述公共层的子系统层与一个或多个子系统进行通信,其中,所述公共层与所述子系统层的一个或多个硬件特定组件解除关联。
示例20可以包括示例19的至少一种非暂时性计算机可读存储介质,其中,所述指令在被执行时使计算设备在所述公共层与所述子系统层之间交换一个或多个回调函数以促进双向耦合,并且其中,所述一个或多个回调函数包括注册函数或注销函数中的一个或多个。
示例21可以包括示例19的至少一种非暂时性计算机可读存储介质,其中,所述指令在被执行时使计算设备:通过不可知层与所述公共层进行通信;以及通过通信地耦合到所述不可知层的远程访问层与一个或多个远程块存储系统进行通信,其中,所述不可知层将所述公共层与所述远程访问层的一个或多个网络结构特定组件解除关联。
示例22可以包括示例21的至少一种非暂时性计算机可读存储介质,其中,所述指令在被执行时使计算系统在所述不可知层与所述远程访问层之间交换一个或多个回调函数以促进双向耦合,并且其中,所述不可知层使用所述一个或多个回调函数中的至少一个来进行以下中的一项或多项:构建来自所述公共层的请求、发送来自所述公共层的请求、或完成来自所述公共层的请求。
示例23可以包括示例21的至少一种非暂时性计算机可读存储介质,其中,所述公共层与通信地耦合到所述不可知层的多个子系统层中的每一个的一个或多个网络结构特定组件解除关联。
示例24可以包括示例19至23中的任何一个的至少一种非暂时性计算机可读存储介质,其中,所述公共层与通信地耦合到所述公共层的多个子系统层中的每一个的一个或多个硬件特定组件解除关联。
示例25可以包括一种块存储堆栈装置,包括:用于通过公共层与本地块存储系统进行通信的单元;以及用于通过通信地耦合到所述公共层的子系统层与一个或多个子系统进行通信的单元,其中,所述公共层与所述子系统层的一个或多个硬件特定组件解除关联。
示例26可以包括示例25的装置,还包括用于在所述公共层与所述子系统层之间交换一个或多个回调函数以促进双向耦合的单元,其中,所述一个或多个回调函数包括注册函数或注销函数中的一个或多个。
示例27可以包括示例25的装置,还包括:用于通过不可知层与所述公共层进行通信的单元;以及用于通过通信地耦合到所述不可知层的远程访问层与一个或多个远程块存储系统进行通信的单元,其中,所述不可知层将所述公共层与所述远程访问层的一个或多个网络结构特定组件解除关联。
示例28可以包括示例27的装置,还包括用于在所述不可知层与所述远程访问层之间交换一个或多个回调函数以促进双向耦合的单元,其中,所述不可知层使用所述一个或多个回调函数中的至少一个来进行以下中的一项或多项:构建来自所述公共层的请求、发送来自所述公共层的请求、或完成来自所述公共层的请求。
示例29可以包括示例27的装置,其中所述公共层与通信地耦合到所述不可知层的多个远程访问层中的每一个的一个或多个网络结构特定组件解除关联。
示例30可以包括示例25至29中的任何一个的装置,其中所述公共层与通信地耦合到所述公共层的多个子系统层中的每一个的一个或多个硬件特定组件解除关联。
本文描述的技术因此可以使得能够经由灵活的和ad-hoc连接来访问NVMe控制器硬件。此外,NVMe设备可能能够通过多个接口与系统连接。此外,操作系统和内核可能与NVMe存储系统兼容,而无需进行标准的特定审查。
实施例适用于所有类型的半导体集成电路(“IC”)芯片。这些IC芯片的例子包括但不限于处理器、控制器、芯片组部件、可编程逻辑阵列(PLA)、存储芯片、网络芯片、片上系统(SoC)、SSD/NAND控制器ASIC等。另外,在一些附图中,信号导线用线表示。一些可以是不同的以指示更多组成信号路径,具有数字标签以指示多个组成信号路径,和/或在一个或多个端具有箭头以指示主要信息流方向。然而,这不应该以限制的方式来解释。而是,可以结合一个或多个示例性实施例来使用这样的添加的细节以促进对电路的更容易的理解。任何表示的信号线,无论是否具有附加信息,实际上可以包括可以在多个方向上行进的一个或多个信号,并且可以用任何合适类型的信号方案来实现,例如用差分对实现的数字或模拟线、光纤线和/或单端线。
可能已经给出了示例尺寸/模型/值/范围,但是实施例不限于此。随着制造技术(例如光刻)随时间推移而成熟,预期可以制造更小尺寸的设备。另外,为了图示和讨论的简单性,并且为了不模糊实施例的某些方面,可以或可以不在附图中示出对IC芯片和其他组件的公知电源/接地连接。此外,为了避免使实施例模糊,并且鉴于关于这种框图布置的实现的细节高度依赖于要在其中实现实施例的平台的事实,可以以框图形式示出布置,即,这些细节应该在本领域技术人员的视野范围内。在阐述具体细节(例如,电路)以描述示例实施例的情况下,对于本领域技术人员来说应当显而易见的是,可以在没有这些具体细节或者具有这些具体细节的变体的情况下实践实施例。因此该描述被认为是说明性的而不是限制性的。
术语“耦合”在本文中可以用于指代所讨论的组件之间的任何类型的直接或间接的关系,并且可以应用于电、机械、流体、光学、电磁、机电或其他连接。另外,除非另外指出,否则术语“第一”、“第二”等在此可以仅用于便于讨论,并且不带有特定的时间或时间顺序意义。
本领域的技术人员将从前面的描述中领会到,实施例的广泛技术可以以各种形式来实现。因此,虽然已经结合其特定示例描述了实施例,但是实施例的真实范围不应该如此受限制,因为在研究附图、说明书和所附权利要求书后,其他修改对于本领域技术人员将变得显而易见。
Claims (25)
1.一种分解式存储器架构,包括:
向所述存储器架构提供电力的电源;
一个或多个子系统;以及
本地块存储系统,包括:
本地块存储装置,
通信地耦合到所述本地块存储装置的公共层,以及
通信地耦合到所述公共层的子系统层,所述子系统层与所述一个或多个子系统进行通信,其中,所述公共层与所述子系统层的一个或多个硬件特定组件解除关联。
2.如权利要求1所述的存储器架构,其中,所述公共层和所述子系统层交换一个或多个回调函数以促进双向耦合,并且其中,所述一个或多个回调函数包括注册函数或注销函数中的一个或多个。
3.如权利要求1所述的存储器架构,其中,所述子系统层包括:
与所述公共层进行通信的不可知层;以及
通信地耦合到所述不可知层的远程访问层,其中,所述远程访问层与一个或多个远程块存储系统进行通信,并且所述不可知层将所述公共层与所述远程访问层的一个或多个网络结构特定组件解除关联。
4.如权利要求3所述的存储器架构,其中,所述不可知层和所述远程访问层交换一个或多个回调函数以促进双向耦合,并且其中,所述不可知层使用所述一个或多个回调函数中的至少一个来进行以下中的一项或多项:构建来自所述公共层的请求、发送来自所述公共层的请求、或完成来自所述公共层的请求。
5.如权利要求1至4中任一项所述的存储器架构,还包括通信地耦合到所述公共层的多个子系统层,其中,所述公共层与所述多个子系统层中的每一个的一个或多个硬件特定组件解除关联。
6.如权利要求1至4中任一项所述的存储器架构,其中,所述本地块存储系统是NVMExpress兼容文件系统。
7.一种块存储堆栈装置,包括:
与本地块存储系统进行通信的公共层;以及
通信地耦合到所述公共层的子系统层,所述子系统层与一个或多个子系统进行通信,其中,所述公共层与所述子系统层的一个或多个硬件特定组件解除关联。
8.如权利要求7所述的装置,其中,所述公共层和所述子系统层交换一个或多个回调函数以促进双向耦合,并且其中,所述一个或多个回调函数包括注册函数或注销函数中的一个或多个。
9.如权利要求7所述的装置,其中,所述子系统层包括:
与所述公共层进行通信的不可知层;以及
通信地耦合到所述不可知层的远程访问层,其中,所述远程访问层与一个或多个远程块存储系统进行通信,并且所述不可知层将所述公共层与所述远程访问层的一个或多个网络结构特定组件解除关联。
10.如权利要求9所述的装置,其中,所述不可知层和所述远程访问层交换一个或多个回调函数以促进双向耦合,并且其中,所述不可知层使用所述一个或多个回调函数中的至少一个来进行以下中的一项或多项:构建来自所述公共层的请求、发送来自所述公共层的请求、或完成来自所述公共层的请求。
11.如权利要求9所述的装置,还包括通信地耦合到所述不可知层的多个远程访问层,其中,所述多个远程访问层与多个远程块存储系统进行通信,并且所述不可知层将所述公共层与所述多个远程访问层中的每一个的一个或多个网络结构特定组件解除关联。
12.如权利要求7至11中任一项所述的装置,还包括通信地耦合到所述公共层的多个子系统层,其中,所述公共层与所述多个子系统层中的每一个的一个或多个硬件特定组件解除关联。
13.一种操作块存储堆栈装置的方法,包括:
通过公共层与本地块存储系统进行通信;以及
通过通信地耦合到所述公共层的子系统层与一个或多个子系统进行通信,其中,所述公共层与所述子系统层的一个或多个硬件特定组件解除关联。
14.如权利要求13所述的方法,还包括在所述公共层和所述子系统层之间交换一个或多个回调函数以促成双向耦合,其中,所述一个或多个回调函数包括注册函数或注销函数中的一个或多个。
15.如权利要求13所述的方法,还包括:
通过不可知层与所述公共层进行通信;以及
通过通信地耦合到所述不可知层的远程访问层与一个或多个远程块存储系统进行通信,其中,所述不可知层将所述公共层与所述远程访问层的一个或多个网络结构特定组件解除关联。
16.如权利要求15所述的方法,还包括在所述不可知层与所述远程访问层之间交换一个或多个回调函数以促进双向耦合,其中,所述不可知层使用所述一个或多个回调函数中的至少一个来进行以下中的一项或多项:构建来自所述公共层的请求、发送来自所述公共层的请求、或完成来自所述公共层的请求。
17.如权利要求15所述的方法,其中,所述公共层与通信地耦合到所述不可知层的多个远程访问层中的每一个的一个或多个网络结构特定组件解除关联。
18.如权利要求13至17中任一项所述的方法,其中,所述公共层与通信地耦合到所述公共层的多个子系统层中的每一个的一个或多个硬件特定组件解除关联。
19.至少一种非暂时性计算机可读存储介质,其包括一组指令,所述指令在由计算设备执行时使所述计算设备:
通过公共层与本地块存储系统进行通信;以及
通过通信地耦合到所述公共层的子系统层与一个或多个子系统进行通信,其中,所述公共层与所述子系统层的一个或多个硬件特定组件解除关联。
20.如权利要求19所述的至少一种非暂时性计算机可读存储介质,其中,所述指令在被执行时使计算设备在所述公共层与所述子系统层之间交换一个或多个回调函数以促进双向耦合,并且其中,所述一个或多个回调函数包括注册函数或注销函数中的一个或多个。
21.如权利要求19所述的至少一种非暂时性计算机可读存储介质,其中,所述指令在被执行时使计算设备:
通过不可知层与所述公共层进行通信;以及
通过通信地耦合到所述不可知层的远程访问层与一个或多个远程块存储系统进行通信,其中,所述不可知层将所述公共层与所述远程访问层的一个或多个网络结构特定组件解除关联。
22.如权利要求21所述的至少一种非暂时性计算机可读存储介质,其中,所述指令在被执行时使计算系统在所述不可知层与所述远程访问层之间交换一个或多个回调函数以促进双向耦合,并且其中,所述不可知层使用所述一个或多个回调函数中的至少一个来进行以下中的一项或多项:构建来自所述公共层的请求、发送来自所述公共层的请求、或完成来自所述公共层的请求。
23.如权利要求21所述的至少一种非暂时性计算机可读存储介质,其中,所述公共层与通信地耦合到所述不可知层的多个子系统层中的每一个的一个或多个网络结构特定组件解除关联。
24.如权利要求19至23中任一项所述的至少一种非暂时性计算机可读存储介质,其中,所述公共层与通信地耦合到所述公共层的多个子系统层中的每一个的一个或多个硬件特定组件解除关联。
25.一种块存储堆栈装置,其包括用于执行如权利要求13至17中任一项所述的方法的单元。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/998,061 US10013168B2 (en) | 2015-12-24 | 2015-12-24 | Disaggregating block storage controller stacks |
US14/998,061 | 2015-12-24 | ||
PCT/US2016/063551 WO2017112285A1 (en) | 2015-12-24 | 2016-11-23 | Disaggregating block storage controller stacks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108292282A true CN108292282A (zh) | 2018-07-17 |
CN108292282B CN108292282B (zh) | 2022-08-05 |
Family
ID=59086614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680068876.7A Active CN108292282B (zh) | 2015-12-24 | 2016-11-23 | 块存储堆栈装置、介质及其操作方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10013168B2 (zh) |
CN (1) | CN108292282B (zh) |
DE (1) | DE112016005988T5 (zh) |
WO (1) | WO2017112285A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10275160B2 (en) | 2015-12-21 | 2019-04-30 | Intel Corporation | Method and apparatus to enable individual non volatile memory express (NVME) input/output (IO) Queues on differing network addresses of an NVME controller |
US10620840B2 (en) | 2016-05-27 | 2020-04-14 | Intel Corporation | Computer product, method, and system to dynamically manage storage devices accessed remotely over a network |
US10200376B2 (en) | 2016-08-24 | 2019-02-05 | Intel Corporation | Computer product, method, and system to dynamically provide discovery services for host nodes of target systems and storage resources in a network |
US10176116B2 (en) | 2016-09-28 | 2019-01-08 | Intel Corporation | Computer product, method, and system to provide discovery services to discover target storage resources and register a configuration of virtual target storage resources mapping to the target storage resources and an access control list of host nodes allowed to access the virtual target storage resources |
US10204075B2 (en) * | 2016-10-25 | 2019-02-12 | Zentific LLC | Systems and methods for facilitating interactions with remote memory spaces |
US20190102107A1 (en) * | 2017-09-29 | 2019-04-04 | Intel Corporation | Techniques for batch operations to storage devices |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020169894A1 (en) * | 2001-02-22 | 2002-11-14 | Mourad Takla | Link layer device and method of translating packets between transport protocols |
CN1755647A (zh) * | 2004-09-29 | 2006-04-05 | 微软公司 | 测试自动化的堆栈分层 |
CN1838099A (zh) * | 2005-03-21 | 2006-09-27 | 大智电子科技公司 | 多重通讯协定模式的主机及装置、单一模式装置及其方法 |
CN101196948A (zh) * | 2006-12-05 | 2008-06-11 | 富士通株式会社 | Cad装置、编辑图形数据的方法及计算机产品 |
CN101788890A (zh) * | 2009-01-23 | 2010-07-28 | 普安科技股份有限公司 | 在一储存系统架构下产生一虚拟卷的方法及数据存取方法 |
CN101932996A (zh) * | 2007-09-24 | 2010-12-29 | 认知电子公司 | 具有降低功耗的并行处理计算机系统及提供该系统的方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006039711A1 (en) | 2004-10-01 | 2006-04-13 | Lockheed Martin Corporation | Service layer architecture for memory access system and method |
US8892831B2 (en) | 2008-01-16 | 2014-11-18 | Apple Inc. | Memory subsystem hibernation |
JP5404804B2 (ja) | 2009-05-25 | 2014-02-05 | 株式会社日立製作所 | ストレージサブシステム |
US8688926B2 (en) | 2010-10-10 | 2014-04-01 | Liqid Inc. | Systems and methods for optimizing data storage among a plurality of solid state memory subsystems |
US8911250B2 (en) | 2012-10-05 | 2014-12-16 | Facebook, Inc. | Floating bus bar connector |
-
2015
- 2015-12-24 US US14/998,061 patent/US10013168B2/en active Active
-
2016
- 2016-11-23 WO PCT/US2016/063551 patent/WO2017112285A1/en active Application Filing
- 2016-11-23 CN CN201680068876.7A patent/CN108292282B/zh active Active
- 2016-11-23 DE DE112016005988.4T patent/DE112016005988T5/de active Pending
-
2018
- 2018-06-11 US US16/004,507 patent/US10649660B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020169894A1 (en) * | 2001-02-22 | 2002-11-14 | Mourad Takla | Link layer device and method of translating packets between transport protocols |
CN1755647A (zh) * | 2004-09-29 | 2006-04-05 | 微软公司 | 测试自动化的堆栈分层 |
CN1838099A (zh) * | 2005-03-21 | 2006-09-27 | 大智电子科技公司 | 多重通讯协定模式的主机及装置、单一模式装置及其方法 |
CN101196948A (zh) * | 2006-12-05 | 2008-06-11 | 富士通株式会社 | Cad装置、编辑图形数据的方法及计算机产品 |
CN101932996A (zh) * | 2007-09-24 | 2010-12-29 | 认知电子公司 | 具有降低功耗的并行处理计算机系统及提供该系统的方法 |
CN101788890A (zh) * | 2009-01-23 | 2010-07-28 | 普安科技股份有限公司 | 在一储存系统架构下产生一虚拟卷的方法及数据存取方法 |
Also Published As
Publication number | Publication date |
---|---|
US10013168B2 (en) | 2018-07-03 |
CN108292282B (zh) | 2022-08-05 |
US10649660B2 (en) | 2020-05-12 |
US20170185310A1 (en) | 2017-06-29 |
DE112016005988T5 (de) | 2018-09-20 |
US20190138217A1 (en) | 2019-05-09 |
WO2017112285A1 (en) | 2017-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108292282A (zh) | 分解块存储控制器堆栈 | |
US10334334B2 (en) | Storage sled and techniques for a data center | |
US20190005606A1 (en) | Direct memory access for co-processor memory | |
CN108628685B (zh) | 用本地BMC在结构上NVMe内分配共享资源的系统、设备和方法 | |
CN106104500A (zh) | 存储数据的方法和设备 | |
US9654342B2 (en) | Bandwidth configurable IO connector | |
US20120117318A1 (en) | Heterogeneous computing system comprising a switch/network adapter port interface utilizing load-reduced dual in-line memory modules (lr-dimms) incorporating isolation memory buffers | |
JP2021533481A (ja) | 固定PCIe物理トランスポートネットワーク上の論理トランスポート | |
TWI760199B (zh) | 記憶體裝置以及包括其的記憶體系統 | |
US20140047159A1 (en) | Enterprise server with flash storage modules | |
US11645011B2 (en) | Storage controller, computational storage device, and operational method of computational storage device | |
US20170091127A1 (en) | Techniques to Couple with a Storage Device via Multiple Communication Ports | |
US10089270B2 (en) | Interchangeable power and signal contacts for IO connectors | |
US20210042147A1 (en) | Method, apparatus and system for handling non-posted memory write transactions in a fabric | |
CN114493978A (zh) | 加速器控制器中心 | |
CN111581152A (zh) | 可重构硬件加速soc芯片系统 | |
WO2019103736A1 (en) | Serial at attachment and non-volatile memory express device determination | |
CN103890743B (zh) | 主机控制的io功率管理 | |
US9059808B2 (en) | Microprocessor chip, data center, and computing system | |
CN107533443A (zh) | 在半导体器件中提供多个根 | |
US11544129B2 (en) | Cross-component health monitoring and improved repair for self-healing platforms | |
CN203276273U (zh) | 一种多gpu运算卡 | |
KR20210052702A (ko) | 뉴럴 프로세싱 유닛 및 이를 포함하는 전자장치 | |
CN113742264B (zh) | 采多级架构控制器的数据储存装置 | |
CN108958797A (zh) | 应用处理器和集成电路 |
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 |