CN117407334A - 具有计算存储处理器的网络就绪存储产品 - Google Patents
具有计算存储处理器的网络就绪存储产品 Download PDFInfo
- Publication number
- CN117407334A CN117407334A CN202310858621.2A CN202310858621A CN117407334A CN 117407334 A CN117407334 A CN 117407334A CN 202310858621 A CN202310858621 A CN 202310858621A CN 117407334 A CN117407334 A CN 117407334A
- Authority
- CN
- China
- Prior art keywords
- storage
- message
- host system
- memory
- local
- 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.)
- Pending
Links
- 238000003860 storage Methods 0.000 title claims abstract description 713
- 230000015654 memory Effects 0.000 claims description 323
- 238000012545 processing Methods 0.000 claims description 280
- 230000006870 function Effects 0.000 claims description 32
- 230000006835 compression Effects 0.000 claims description 5
- 238000007906 compression Methods 0.000 claims description 5
- 230000006837 decompression Effects 0.000 claims description 5
- 230000010076 replication Effects 0.000 claims description 5
- 238000001914 filtration Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 description 90
- 238000000034 method Methods 0.000 description 72
- 230000008569 process Effects 0.000 description 49
- 238000004891 communication Methods 0.000 description 47
- 239000000872 buffer Substances 0.000 description 25
- 239000007787 solid Substances 0.000 description 22
- 230000005540 biological transmission Effects 0.000 description 21
- 238000004364 calculation method Methods 0.000 description 15
- 230000002093 peripheral effect Effects 0.000 description 12
- 230000008859 change Effects 0.000 description 9
- 239000000835 fiber Substances 0.000 description 9
- 238000007726 management method Methods 0.000 description 9
- 238000013500 data storage Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 230000003139 buffering effect Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000013341 scale-up Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 230000001965 increasing effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004886 process control Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001131 transforming 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/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
-
- 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/4004—Coupling between 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/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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及具有计算存储处理器的网络就绪存储产品。一种制造为待安装在计算装置中以提供网络存储服务的组件的存储产品。所述存储产品具有用以从远程主机系统接收存储存取消息的网络接口、可经由外部计算机总线连接到外部本地主机系统的总线连接器、本地存储装置及计算存储处理器。所述存储产品经配置以:将所述存储存取消息分离为第一消息、第二消息及第三消息;将所述第一消息提供到外部本地主机系统以产生第四消息;且将所述第二消息提供到所述计算存储处理器以产生第五消息。为了实施经由所述网络接口提供的网络存储服务,所述本地存储装置执行所述第三消息、来自所述本地主机系统的所述第四消息及来自所述计算存储处理器的所述第五消息中的命令。
Description
技术领域
本文公开的至少一些实施例大体上涉及存储器系统,且更特定来说涉及(但不限于)经配置以服务于通过计算机网络接收的数据存取请求的存储器系统。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。举例来说,所述存储器装置可为非易失性存储器装置及易失性存储器装置。一般来说,主机系统可利用存储器子系统以将数据存储于存储器装置处及从存储器装置检索数据。
发明内容
在一方面,本公开提供一种存储产品,其包括:网络接口,其能够在计算机网络上操作以从远程主机系统接收存储存取消息;总线连接器,其经配置以连接到如所制造的所述存储产品外部的计算机总线;本地存储装置,其具有能够经由通过所述网络接口提供的网络存储服务存取的存储容量;及计算存储处理器;其中所述存储产品经配置以:将所述存储存取消息分离为第一消息、第二消息及第三消息;通过所述总线连接器将所述第一消息提供到在所述存储产品外部且连接到所述计算机总线的本地主机系统,以产生第四消息;以及将所述第二消息提供到所述计算存储处理器以产生第五消息;且其中所述本地存储装置经配置以经由执行以下者中的命令来实施经由所述网络接口提供的网络存储服务:来自所述网络接口而不经过所述本地主机系统及所述计算存储处理器的所述第三消息;来自所述本地主机系统而不经过所述计算存储处理器的所述第四消息;及来自所述计算存储处理器而不经过所述本地主机系统的所述第五消息。
在另一方面,本公开提供一种方法,其包括:在存储产品中从在所述存储产品的网络接口中通过计算机网络从远程主机系统接收的传入分组产生存储存取消息;由所述存储产品将所述存储存取消息分为第一消息、第二消息及第三消息;通过经由外部计算机总线连接到本地主机系统的所述存储产品的总线连接器将所述第一消息提供到所述本地主机系统;由所述存储产品外部的所述本地主机系统处理所述第一消息以产生第四消息;由所述存储产品内部地将所述第二消息提供到所述存储产品的计算存储处理器;由所述存储产品中的所述计算存储处理器处理所述第二消息以产生第五消息;由所述存取产品经由所述存储产品的本地存储装置执行以下者中的命令来实施经由所述网络接口提供的网络存储服务:来自所述网络接口而不经过所述本地主机系统及所述计算存储处理器的所述第三消息;来自所述本地主机系统而不经过所述计算存储处理器的所述第四消息;及来自所述计算存储处理器而不经过所述本地主机系统的所述第五消息。
在又一方面,本公开提供一种计算装置,其包括:计算机总线;本地主机系统,其耦合到所述计算机总线;及存储产品,其制造为独立计算机组件且连接到所述计算机总线,所述存储产品包括:网络接口,其能够在计算机网络上操作以从远程主机系统接收传入分组;处理装置,其耦合到所述网络接口以从所述传入分组产生存储存取消息及将所述存储存取消息分为为第一消息、第二消息及第三消息,其中所述本地主机系统经配置以从所述第一消息产生第四消息;计算存储处理器;其经配置以从所述第二消息产生第五消息;及本地存储装置,其具有能够使用通过所述网络接口提供且经由所述本地存储装置执行以下者中的指令来实施的网络存储服务来存取的存储容量;来自所述网络接口而不经过所述本地主机系统及所述计算存储处理器的所述第三消息;来自所述本地主机系统而不经过所述计算存储处理器的所述第四消息;及来自所述计算存储处理器而不经过所述本地主机系统的所述第五消息。
附图说明
在附图的图式中通过实例而非限制的方式说明实施例,其中相似参考指示类似元件。
图1说明根据本公开的一些实施例的具有存储器子系统的实例计算系统。
图2展示根据一个实施例的存储器子系统中用于处理控制消息及数据消息的不同路径。
图3展示根据一个实施例的用于在存储器子系统中进行处理的控制消息及数据消息的配置。
图4展示根据一个实施例的网络就绪存储产品,其经配置以具有选择性地为所述存储产品处理消息的外部处理器。
图5说明根据一个实施例的用以配置存储产品以在不同路径上路由消息以用于处理的技术。
图6展示根据一个实施例的将从计算机网络接收的消息映射为待在存储产品中执行以实施网络存储服务的消息的存储应用程序。
图7说明根据一个实施例的经编程以使用到存储产品的多个消息来实施一消息的存储应用程序。
图8展示根据一个实施例的经编程以产生用于由存储产品传输的响应的存储应用程序。
图9展示根据一个实施例的具有计算存储处理器的存储产品。
图10展示根据一个实施例的经选择用于在存储产品内进行处理的消息的处理。
图11展示根据一个实施例的经选择用于在存储产品内进行处理的响应消息的处理。
图12展示根据一个实施例的具有存储装置、网络端口、计算存储处理器及到外部处理器的总线连接器的存储产品。
图13展示根据一个实施例的配置在印刷电路板上的存储产品。
图14展示根据一个实施例的用以经由具有计算存储处理器的存储产品来处理网络消息以实施网络存储服务的方法。
具体实施方式
本公开的至少一些方面涉及配置有用于控制消息及数据消息的不同处理路径的存储器子系统。下面结合图1描述存储装置及存储器模块的实例。一般来说,主机系统可利用包含一或多个组件的存储器子系统,所述组件例如存储数据的存储器装置。主机系统可提供待存储在存储器子系统处的数据,并且可请求待从存储器子系统检索的数据。
常规网络附接存储装置通常经配置为计算装置,其具有中央处理单元(CPU)、随机存取存储器、网络接口及一或多个存储器装置以提供可通过计算机网络存取的存储容量。CPU通常经配置以运行操作系统及/或存储应用程序,以响应于在网络接口中接收的通信来提供存储服务。在网络接口中从远程主机系统接收的通信可包含控制消息及数据消息。消息由远程主机系统产生以管理及/或存取网络附接存储装置的存储容量。可对在CPU中执行的指令进行编程以处理作为来自远程主机系统的输入的控制消息及数据消息。响应于所述消息,经由指令对CPU进行配置以认证用户、管理存取特权及安全设置、授权存取、管理存储容量、将数据存储到存储器装置中、从存储器装置检索数据,等等。
例如,经由常规网络附接存储装置的网络接口接收的控制消息及数据消息在随机存取存储器中被缓冲。CPU经配置以提取消息、处理消息,且将对应消息发送到本地存储装置,例如固态驱动器。固态驱动器可接收消息,执行消息中的命令以存储数据,从存储器装置检索数据,将所检索数据发送到CPU等。CPU可将所检索数据发送到网络接口以用于通过计算机网络传输到远程主机系统。
因此,在常规网络附接存储装置中,在网络接口中接收的消息(包含控制消息及数据消息)从网络接口通过CPU流向存储容量。存取响应,例如响应于读取请求/命令检索的数据,流动通过CPU以用于通过网络接口传输到计算机网络中。
然而,使数据消息流动通过CPU是低效的;且在按比例扩大存储容量时CPU可为处理能力及通信带宽的瓶颈。
本公开的至少一些方面通过针对控制消息及数据消息使用不同处理路径来解决上述及其它缺陷。
例如,提供网络存储服务的计算装置可配置有存储装置(例如,固态驱动器(SSD)、快闪存储器装置、球栅阵列(BGA)SSD)、处理装置(例如,微处理器、CPU)以及作为存储客户端连接到远程主机系统的网络接口。存储客户端(例如,从远程主机系统接收消息的网络接口)可将数据写入到存储装置中及从存储装置检索数据。存储客户端经配置以在不经过处理装置的情况下将数据消息提供到存储装置。控制消息(例如掌管命令及管理命令)路由通过处理装置。在处理装置中执行的指令经配置/编程以处理控制消息以实行存取控制、实行安全控制及执行掌管操作。
例如,为减少CPU的负担并提高效率,计算装置可配置有用于某些控制消息及其它消息的不同处理路径。
例如,单独处理路径上的控制消息可包含用于在存储容量中创建命名空间、将命名空间映射到客户端、认证用户、设置安全属性(例如,仅允许读取与允许读取及写入两者)、提供对允许哪个操作的授权、管理配置改变等的掌管及管理命令。此类控制消息(例如,用于掌管及管理功能)可经配置以流动通过处理装置;且处理装置经由经编程指令及/或其它数据进行配置以处理控制消息。在处理装置中执行的指令可经编程以执行存取控制、掌管操作、管理操作等,而无需对待存储到存储装置中的数据及/或从存储装置检索的数据进行操作。其它消息(例如数据消息,其含有写入命令及待根据写入命令写入到存储装置中的数据、读取命令、响应于读取命令而检索的数据等)可经配置以在存储装置与存储客户端之间传达而不经过处理装置。
因此,可降低计算装置的功耗;可降低通过处理装置(例如,微处理器、CPU)的通信带宽的要求;且可降低对处理装置的计算能力的要求。
相比之下,传统网络附接存储装置经配置以使数据消息流动通过CPU。在典型用法中,掌管及管理命令仅为消息的一小部分,数据消息可为在网络接口中经过的大多数消息。因此,在传统网络附接存储装置中由CPU对数据消息进行处理可给CPU(例如,要处理许多命令)及随机存取存储器(例如,许多数据缓冲)带来非常大的负担。
根据本公开,当数据消息从存储客户端传达到存储装置而不经过计算装置的处理装置(例如,微处理器、CPU)时,处理装置的任务是处理消息的非常小的一部分(例如,掌管及管理命令,其少于总命令的0.1%)。其它消息(例如,多于总命令的99.99%),包含命令部分及数据部分两者,可路由到存储装置而不经过处理装置。因此,可使用能力较低的处理装置来控制及管理存储;且通过处理装置控制各自含有网络接口及一或多个本地存储装置的多个单元,可容易地按比例扩大存储容量,如下文进一步论述。
图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含计算机可读存储媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此组合。
在图1中,存储器子系统110经配置为制造产品,可用作安装在计算装置中的组件。存储器子系统110具有由存储器子系统控制器115控制的网络接口113以通过计算机网络114与远程主机系统121通信。
例如,远程主机系统121可配置有处理装置128(例如,微处理器、CPU)、存储器控制器126、网络接口111及其它组件(例如,随机存取存储器、传感器及/或用户接口)。在处理装置128中执行的指令可经编程以使用网络接口111以使用存储协议(例如因特网小型计算机系统接口(iSCSI)、光纤通道(FC)、以太网光纤通道(FCoE)、网络文件系统(NFS)及服务器消息块(SMB)或另一协议)来存取存储器子系统110的存储容量。
存储器子系统110进一步包含用于可连接到具有存储器控制器116及处理装置118的本地主机系统120的计算机存储器总线或计算机外围总线125的主机接口112。
例如,在本地主机系统120中执行的指令可经编程以通过总线125根据串行高级技术附件(SATA)、外围组件互连快速(PCIe)、通用串行总线(USB)、光纤通道(FC)、串行附接SCSI(SAS)、双倍数据速率(DDR)、小型计算机系统接口(SCSI)、开放NAND快闪接口、低功率双倍数据速率(LPDDR)、非易失性存储器(NVM)快速(NVMe)、计算快速链路(CXL)或另一技术来控制存储器子系统110。
因此,本地主机系统120与存储器子系统110的组合可用作通过网络接口113使用存储器装置130、…、140的存储容量将存储服务提供到远程主机系统121的网络附接数据存储装置。
例如,处理装置118可为经配置为运行网络附接数据存储装置的计算装置的CPU的微处理器。本地主机系统120可经由外围总线125连接到存储器子系统(例如110)中的一或多者。为按比例扩大网络附接数据存储装置的存储容量,更多存储器子系统(例如110)可连接到本地主机系统120,其中其相应网络接口(例如,113)连接到计算机网络114及/或其它计算机网络。
尽管图1说明连接到网络接口113的一个远程主机系统121的实例,但多个远程主机系统(例如121)可配置在计算机网络114上以访问网络附接存储装置的存储服务。可经由用户凭证、主机属性、网络地址及/或安全设置等来控制对存储服务的访问。
为减轻本地主机系统120的负担,经由网络接口113从计算机网络114(例如,从远程主机系统121)接收的消息当中的控制消息的至少一部分可在存储器子系统110中与其它类型(例如数据消息)的消息分离。存储器子系统110经配置以通过主机接口112向本地主机系统120提供控制消息以用于处理,而不向主机接口112提供例如数据消息的其它消息,如下文进一步论述。
例如,在网络接口113中接收的网络分组可由存储器子系统控制器115处理以恢复或产生控制消息及数据消息。存储器子系统控制器115可包含本地存储器119(例如,随机存取存储器)及处理装置117,其经配置以至少处理来自网络接口113的网络分组。存储器子系统控制器115可在本地存储器119中缓冲控制消息以由本地主机系统120处理;且本地主机系统120可将处理结果放置在本地存储器119中用于执行。由本地主机系统120处理的控制消息的执行可产生控制对数据消息执行的存储操作的元数据123。控制器115可经配置以基于元数据123来执行数据消息的命令,以将数据存储到存储器中装置130、…、140中、从存储器装置130、…、140检索数据及使用网络接口113将所检索数据传输到远程主机系统121。
在一些实施方案中,存储器装置130可为固态驱动器(例如,BGA SSD)。因此,存储器子系统控制器115可处理及/或转发如由本地主机系统120处理的命令及用于操作存储器装置130的其它命令。
在一些实施方案中,存储器子系统控制器115的一部分及存储器装置130、…、140的至少一部分经配置为常规存储装置(例如,SSD);且存储器子系统控制器115的剩余部分可将命令转发到存储装置用于执行。因此,在实施存储器子系统110时,常规存储装置(例如,SSD)可用作组件或本地存储装置。
在一些实施方案中,存储器子系统控制器115及存储器装置130、…、140的多个部分可经配置为多个常规存储装置(例如,SSD)。在其它实施方案中,处理装置117由存储器装置130、…、140共享,而不根据常规存储装置(例如,SSD)来配置。因此,存储器子系统控制器115及存储器装置130、…、140的配置不限于特定连接性及/或拓扑。
在处理数据消息时绕过本地主机系统120大大减少了本地主机系统120的工作负载。因此,本地主机系统120可用于在扩大存储容量时控制多个存储器子系统(例如110)。
由于存储器子系统110作为产品经配置以专门服务于经由网络接口113接收的存储装置存取请求,所以可根据网络接口113的通信带宽来设计及定制存储器子系统110内的处理及通信带宽。类似于存储器子系统110的产品可用作由本地主机系统120控制的网络存储设施的构建块。可经由将更多单元连接到计算机网络114来容易地按比例扩大网络存储设施的容量。由于本地主机系统120的工作负载及到本地主机系统120的通信对于控制每一存储器子系统110来说非常低,因此可将许多存储器子系统(例如110)连接到本地主机系统120以按比例扩大网络存储设施的容量,而不受可用本地主机系统120的通信带宽及/或处理能力的限制。
图2展示根据一个实施例的用于处理存储器子系统中的控制消息及数据消息的不同路径。
例如,可使用图1的存储器子系统110及/或图1的计算系统100来实施图2的处理路径。
在图2中,远程主机系统121连接(例如,如图1中那样通过计算机网络114)到存储器子系统110的网络接口113。远程主机系统121可使用存储协议(例如因特网小型计算机系统接口(iSCSI)、光纤通道(FC)、以太网光纤通道(FCoE)、网络文件系统(NFS)及服务器消息块(SMB)或另一协议)将主机数据131存储到存储器子系统110的存储容量143中,及从存储器子系统110检索回主机数据131。
使用存储协议,远程主机系统121可向存储器子系统110发送控制消息133以管理及/或掌管存储容量。例如,主机系统可登录到存储器子系统以启动会话及/或读取/写入操作。控制消息133可包含用以在存储容量143中产生命名空间、创建、删除、打开或关闭命名空间中的文件、设置安全属性(例如,哪些文件可由哪些用户读取及/或写入)等的命令。
经由网络接口113接收的控制消息133被转发到连接到本地主机系统120的主机接口112以用于处理。经处理控制消息137被提供到存储器子系统110的控制器115。执行经处理控制信息137中的命令/请求可产生控制存储器子系统110的数据存储操作的元数据123。
控制消息133中的一些可用于产生存取控制配置数据141,例如用户帐户、存取特权、用户凭证等的标识。
任选地,连接到存储器子系统110的本地主机系统120可提供用户接口。管理员可使用所述用户接口来产生控制消息137以执行掌管及/或管理操作,例如创建帐户、记录或改变存取凭证、产生命名空间等。可经由用户接口产生存取控制配置数据141的至少一部分。
存取控制配置数据141可部分存储在存储器子系统110中,或者存储在连接到本地主机系统120的另一存储装置中。
随后,当远程主机系统121发送用于认证或存取的控制消息133时,本地主机系统120可接收控制消息133,且使用存取控制配置数据141来确定是否允许存取。如果允许请求,本地主机系统120可向存储器子系统的控制器115发送控制消息137以建立存取。例如,响应于控制消息137,控制器115可建立到存储容量的通道。例如,通道可在本地存储器119中包含用于由控制消息137允许的读取/写入操作的一或多个队列。在一些实施方案中,通道可进一步包含经产生以促进读取/写入操作(例如,用于地址转译)的元数据123的一部分。
为将主机数据131写入到存储器子系统110中,远程主机系统121可传输含有写入命令及待存储的数据的数据消息135。响应于数据消息135,控制器115可使用为远程主机系统121的操作建立的通道将所接收数据写入到存储容量中。因此,数据消息135未被路由到本地主机系统120。在路由数据消息135时绕过本地主机系统120防止本地主机系统120存取数据消息135中的主机数据131。因此,主机数据131的安全性得以提高。
为存取存储在存储器子系统110中的主机数据131,远程主机系统121可发送含有读取命令的数据消息135。响应于数据消息135中的读取命令,控制器115可使用为远程主机系统121的操作建立的通道来检索主机数据131且以数据消息135的形式产生响应。使用网络接口113将数据消息135传输回到远程主机系统121,而不经过主机接口112。因此,本地主机系统120不能存取从存储容量143检索的主机数据131,这也提高了主机数据131的安全性。
因此,通过分离用于路由到本地主机系统120中的控制消息133,在远程主机系统121与网络接口113之间传达的消息的仅非常小的一部分路由通过本地主机系统120。因此,大大降低了对本地主机系统120上的处理能力及通信带宽的要求,同时允许本地主机系统120对存储器子系统110的安全、掌管及管理操作进行控制。此减少使得容易按比例扩大由本地主机系统120控制的存储容量。例如,多个存储器子系统(例如110)可通过计算机总线或外围总线125连接到本地主机系统120,而存储器子系统(例如110)经由其相应网络接口(例如113)单独连接到一或多个计算机网络(例如114)。
在一些实施方案中,网络接口113包含逻辑电路、控制器及/或处理器,其经配置以从自计算机网络114接收的数据分组恢复、识别、确定或产生控制消息133及数据消息135。
在一些其它实施方案中,控制器115的处理能力用于将在网络接口113中接收的网络分组转换为控制消息133及数据消息135。控制器115可包含配置有用以产生控制消息137及数据信息135的指令的处理器。
图3展示根据一个实施例的用于在存储器子系统中进行处理的控制消息及数据消息的配置。
例如,可根据图3的配置来实施用于在图2中的不同处理路径中路由的控制消息133及数据消息135的分离。
如在图3中所说明,在远程主机系统121与存储器子系统110的网络接口113之间传达的网络存储存取消息151可划分为控制消息133及数据消息135。
控制消息133可包含含有用以启动会话或操作的存取凭证161的消息。
控制消息133可包含含有用以在存储容量143中创建命名空间163的命令的消息。
控制消息133可包含含有用以在存储容量143中映射命名空间165的命令的消息。
控制消息133可包含含有用以在存储容量143中设置安全属性167(例如,用户的读取权限、用户的写入权限)的命令的消息。
控制消息133可包含含有用以调整存储配置169(例如,移动文件)的命令的消息。
控制消息133可包含可改变存储器子系统110中的元数据123以控制及组织主机数据131的其它命令。然而,控制消息133不包含待写入到存储器子系统110中的主机数据131及/或从存储器子系统110读取的主机数据131。
数据消息135可包含具有读取命令171(及待读取的数据的地址)的读取消息153、具有从存储容量143检索的数据173的响应消息155、具有写入命令175且待写入到存储容量143中的所提供数据177的写入消息157、具有修整或解除分配命令的消息等。
控制消息133通过存储器子系统110的主机接口112路由,但数据消息135不通过存储器子系统110的主机接口112路由。在一些实施方案中,在一个存储协议中针对网络接口113接收的网络存储存取消息151被转换为用于本地存储装置(例如,固态驱动器、存储器装置130)的另一协议中的控制消息133及数据消息135。
在一个方面中,根据一个实施例,提供一种用以处理网络消息以存取存储器子系统的存储装置的方法。
例如,所述方法可由配置在图1的存储器子系统110及/或本地主机系统120中的存储管理器执行,以具有使用图3的配置的在图2中所说明的不同处理路径。例如,可实施存储器子系统110中的存储管理器以执行结合存储器子系统110论述的操作;且存储管理器可经由存储器子系统控制器115的逻辑电路及/或处理装置117及/或经编程以由处理装置117执行的指令来实施。例如,可实施本地主机系统120中的存储管理器以执行结合本地主机系统120论述的操作;且存储管理器可经由主机系统120的逻辑电路及/或处理装置118及/或经编程以由处理装置118执行的指令来实施。
在所述方法中,存储器子系统110的网络接口113通过计算机网络114接收来自远程主机系统121的分组。
例如,存储器子系统110可具有存储装置,例如存储器装置130,具有一或多个存储器装置130、…、140以提供远程主机系统121可通过计算机网络114存取的存储容量143的固态驱动器。存储器子系统110可具有主机接口112,其可在连接到本地主机系统120的外围总线125上操作,以处理从分组产生的网络存储存取消息151的一部分。存储器子系统110可具有存储管理器(例如,经由耦合到主机接口112、网络接口113及固态驱动器的控制器115来实施)。
在所述方法中,存储器子系统110从分组确定(例如,使用存储管理器)包含由远程主机系统121提供的第一主机数据131的第一控制消息133及第一数据消息135。
例如,远程主机系统121可使用存储协议(例如因特网小型计算机系统接口、光纤通道、以太网光纤通道、网络文件系统或服务器消息块或另一协议)来存取存储器子系统110的存储功能。可从由远程主机系统121使用存储协议传输的消息确定第一控制消息133及第一数据消息135。在一些实施方案中,从在网络接口113处接收的分组恢复第一控制消息133及第一数据消息135。在一些实施方案中,从远程主机系统121传输的消息被转换为用于存取固态驱动器的协议。
在所述方法中,存储器子系统110通过存储器子系统110的主机接口112将第一控制消息133发送(例如,使用存储管理器)到本地主机系统120。
例如,主机接口112可根据计算机外围总线125根据串行高级技术附件、外围组件互连快速、通用串行总线、光纤通道、串行附接小型计算机系统接口、双倍数据速率、小型计算机系统接口、开放NAND快闪接口、低功率双倍数据速率、非易失性存储器快速或计算快速链路或另一计算机总线技术来配置。
在所述方法中,本地主机系统120处理(例如,经由存储管理器)第一控制消息133以产生第二控制消息137。
在所述方法中,存储器子系统110经由主机接口112从本地主机系统120接收(例如,经由其存储管理器)响应于第一控制消息133的第二控制消息137。
在所述方法中,存储器子系统110处理(例如,经由其存储管理器)第二控制消息137及第一数据消息135,而不向本地主机系统120发送第一数据消息135及/或第一主机数据131,以将第一主机数据131写入到存储器子系统110的存储器装置130中。
例如,第一数据消息135可包含写入命令175;且第一主机数据131(例如,所提供数据177)可根据写入命令写入到存储器子系统的存储器装置(例如130)中,而不需要写入命令175及/或其数据177经过主机接口112。
例如,第一数据消息135可包含读取命令171。作为响应,存储器子系统110可根据在第一数据消息135中指定的读取命令171从固态驱动器及/或存储器装置(例如130)读取第二主机数据(例如,数据173)。存储器子系统110产生含有第二主机数据(例如,数据173)的第二数据消息(例如,响应消息155)。存储器子系统110经由网络接口113将第二数据消息(例如,响应消息155)传输到远程主机系统121,无需第二主机数据(例如,所检索数据173)及/或第二数据消息(例如,响应消息155)经过主机接口112。
例如,存储器子系统110可经配置以处理第二控制消息137以产生元数据123,根据元数据123,将第一主机数据131写入到固态驱动器(例如,存储器装置130)中,且从固态驱动器(例如,存储器装置130)检索第二主机数据(例如,数据173)。
例如,第一控制消息包含用以创建、映射或删除命名空间的命令(例如,创建命名空间163、映射命名空间165);且元数据123与命名空间相关联。
例如,存储器子系统110可经配置以处理第二控制消息137,以建立用以写入第一主机数据131或读取第二主机数据(例如,数据173)的通道。
例如,存储器子系统110可具有随机存取存储器(例如,存储器119);且通道可包含根据第二控制消息配置用于将数据写入到固态驱动器中及/或从固态驱动器检索数据的一或多个队列。
例如,通道可配置有由存储器子系统110的控制器115用来执行地址转译以将第一主机数据131写入到固态驱动器中的数据。
例如,第一控制消息133包含用以存取固态驱动器的存储容量143的凭证161。本地主机系统120可基于存取控制配置数据141来验证凭证161。
例如,第一控制消息133包含用以设置安全属性167的命令及/或用以调整固态驱动器中的存储配置169的命令。
本地主机系统120经配置以处理第一控制消息133以实行安全控制及执行掌管操作。
在至少一些实施例中,本地主机系统120经配置以处理在存储器子系统110的网络接口113中接收的消息的所选择子集。待选择用于处理的子集可由本地主机系统120指定。存储器子系统110可根据由本地主机系统120指定的选择准则来选择子集,且将所选择子集提供到本地主机系统120,而不将剩余消息提供到本地主机系统120。
例如,存储器子系统110的网络接口113可包含或连接到内部处理器(例如,控制器115及/或处理装置117)。内部处理器经配置以将在网络接口113中接收的数据分组转换为消息。内部处理器进一步经配置以将响应消息155转换为数据分组以用于通过网络接口113传输到远程主机系统121。
从远程主机系统121接收的消息可被分类为类别或类型。图3说明将消息分类为控制消息133及数据消息135的配置。替代地,消息151可被分类为用于由本地主机系统120处理的一群组消息,及用于由存储器子系统110处理而不传达到本地主机系统120的另一群组消息。
配置文件可由本地主机系统120写入到存储器子系统110中,以指示用于为本地主机系统120选择消息的准则。
例如,配置文件可指定含有读取命令171及写入命令175的消息在由存储器子系统110自身来处理的一群组消息中,且其它消息经选择用于由本地主机系统120来处理。
例如,配置文件可存储在存储器子系统110中,以请求存储器子系统110将与存取控制相关的消息转发到本地主机系统120进行处理。
例如,配置文件可存储在存储器子系统110中,以请求存储器子系统110转发在特定命名空间中读取或写入数据的数据消息以用于由本地主机系统120处理。
一般来说,用于由本地主机系统120处理的消息的选择可在构造选择准则时使用各种消息属性及/或参数。例如,可基于命令类型、命令类别、存储目的地、数据源、数据大小、用户帐户、存取类型、时间及日期等来制定选择准则。因此,用于由本地主机系统处理的消息的选择不一定受到预定分类的限制(例如,控制消息133用于由本地主机系统来处理而数据消息135用于由存储器子系统110自身来处理)。
存储器子系统110的内部处理器可实施为经由指令及/或逻辑电路配置的控制器115及/或处理装置117。内部处理器根据配置文件来标识及分离从计算机网络114接收的消息151。内部处理器根据配置文件来标识消息151的子集,且将子集传输到本地主机系统120。本地主机系统120可处理子集中的消息,且将响应传输到存储器子系统110以用于进一步处理。内部处理器标识且处理存储器子系统110内的剩余消息,而不将其传输到本地主系统120。
例如,存储器子系统110可包含随机存取存储器及本地存储装置,例如固态驱动器、硬盘驱动器等。内部处理器可在随机存取存储器中缓冲经选择用于由本地主机系统120来处理的消息以由本地主机系统120检索。其它消息可从内部处理器传输到本地存储装置,而不在随机存取存储器中缓冲及/或不传输到本地主机系统120。
任选地,本地主机系统120还可使用配置文件来指定用于选择响应消息155的一部分用于由本地主机系统120处理的准则。例如,内部处理器根据配置文件来选择响应消息155的一部分,且在随机存取存储器中缓冲所选择响应消息155用于由本地主机系统120检索。在处理所选择响应消息155之后,本地主机系统120可向存储器子系统110提供消息用于通过网络接口113来传输。剩余响应消息155可根据配置文件来选择且由存储器子系统110传输而在不经过本地主机系统120。
本地主机系统120可处理所选择消息以应用安全措施、控制存取、变换数据、执行动态掌管操作等。
存储器子系统110可经配置为存储产品,而没有用于硬件重新配置、修改及/或定制的选项。存储产品被制造为可通过与外部处理器及网络接口的经设计连接使用的计算机存储组件。
例如,存储产品可配置有总线连接器、网络端口及存储器子系统110。在不经过总线连接器及网络端口的情况下不可存取存储器子系统110。总线连接器连接到存储器子系统110的控制器115;且网络端口连接到网络接口113。
存储产品可以扩展卡的形式来配置,所述扩展卡具有可插入到母板上的扩展槽中以用于连接到计算机总线125及因此本地主机系统120的总线连接器。替代地,总线连接器可为端口;且可将适用于计算机总线125的计算机缆线插入到用于连接到本地主机系统120的端口中。
任选地,存储产品可经配置以具有类似于硬盘驱动器、固态驱动器、外部驱动器、网络驱动器等的形状因子。存储产品具有围封其组件且保护其免受篡改的壳体或外壳。
在将存储产品的网络端口连接到计算机网络114且将总线连接器连接到计算机总线125之后,存储产品的内部处理器可阻止网络存储服务,直到本地主机系统120指定配置文件为止。随后,存储产品的网络接口113可与一或多个远程主机系统(例如121)通信以提供网络存储服务。从远程主机系统接收的消息根据配置文件被分离在不同处理路径上。消息的子集被提供到本地主机系统120用于使用存储应用程序及/或操作系统来处理。通过处理消息的子集,本地主机系统120可控制及/或掌管存储产品内的活动,扩展存储产品的功能性,且定制由存储产品提供的服务,而无需修改存储产品的硬件及/或存储产品的固件。未被选择用于由本地主机系统120来处理的剩余消息由存储器子系统110自身来处理。
在一些实施方案中,配置文件可包含待阻止或丢弃的消息的标识。当网络接口113接收到经分类以进行阻止的消息时,内部处理器可删除或丢弃所述消息,而无需自身进一步单独处理所述消息或将其转发到本地主机系统120。例如,存储产品可与默认配置文件一起装运,所述默认配置文件阻止所有消息155以停用网络存储服务。本地主机系统120可改变配置文件以启用及/或定制网络存储服务。
存储器子系统110的一部分可经配置为本地存储装置。未被选择用于由本地主机系统120来处理的消息可转发到本地存储装置以用于处理。本地存储装置可具有本地存储器119以缓冲所接收命令,调度用于执行的命令,及执行其它存储操作,例如地址转译、损耗均衡、废弃项目收集、错误检测及校正。
在一些实施方案中,当连接到存储产品时,本地主机系统120用作存储产品的中央处理单元。任选地,存储产品可经配置为在没有外部中央处理单元的情况下无法独立操作。
任选地,本地主机系统120可配置有用户接口以接收来自管理员的输入以配置用于选择消息的配置文件。用户接口可进一步用于接收用以指定存取控制配置数据141的输入及/或接收用以执行掌管操作(例如创建命名空间、创建用户帐户、指派用户存取权等)的请求。响应于在用户接口中接收的输入,本地主机系统120可产生控制消息137以用于由存储产品中的存储器子系统110来执行。
存储产品可配置有足够的资源来执行预定义操作,例如网络操作及存储操作,而无需外部处理器的协助。例如,在允许的情况下,经由在网络接口113中接收的数据消息135请求的操作可由存储产品执行,而无需连接到存储产品的外部处理器(例如,本地主机系统120的处理装置128)的协助。例如,存储产品自身具有足够的资源来在网络分组与网络存储存取消息151之间进行转换,执行存储或检索数据的操作,以及执行其它存储操作,例如地址转译、损耗均衡、废弃项目收集、错误检测及校正等。
外部处理器可执行经编程以执行存取控制、掌管网络存储服务、管理存储配置、数据处理及/或其它操作的指令。用于掌管操作的命令可在本地用户接口中接收,而无需经过网络接口(例如113)。替代地,或者组合地,远程主机系统(例如121)可向网络接口(例如113)发送命令以请求掌管操作。因此,外部处理器可对存储产品内的数据操纵操作实行控制。
存储产品可经设计以基于网络接口113的通信带宽来优化性能及成本。网络通信带宽大体上定义具有存储产品的组件的工作负载。因此,存储产品可作为可用作存储构建块的计算机组件来制造及提供。存储系统可使用连接到同一外部处理器的一或多个此类存储产品来构建。通过使用连接到存储系统的更多存储产品(其中其网络接口单独地连接到一或多个计算机网络),可容易地按比例扩大存储系统的存储容量。由于外部处理器的工作负载在典型应用中较轻,因此外部处理器的处理能力及通信带宽在实际应用中不太可能成为瓶颈。
相比之下,常规网络附接存储装置不具有用于外部处理器的接口。此常规存储装置完全负责处理在其网络接口处接收的消息及数据。存取控制及安全性经由其固件实施。维持此固件的安全性可为一个挑战。在常规网络附接存储装置中不存在用以在不通过存储装置的网络接口进行请求的情况下应用控制及掌管操作的机制。
当存储产品具有用于外部处理器的接口时,可经由外部处理器执行控制及掌管操作而无需经过存储产品的网络接口以提高安全性。代替仅依赖存储产品的固件来通过网络接口来处置安全性及掌管操作,使用存储产品实施的存储系统可使用运行存储产品的外部处理器的软件来应用安全性控制及执行掌管操作。此外,可在存储产品的固件及在外部处理器中运行的软件两者中实施安全性措施;且此布置可通过增加获得未授权存取的难度来提高安全性。
此外,存储产品可经配置以在处理含有主机数据131的数据消息135时绕过外部处理器(例如,如在图2中)。因此,主机数据131免受本地主机系统120中的安全性漏洞。由于外部处理器无法存取主机数据131,因此无法经由外部处理器对主机数据131进行未授权存取。
当存储产品(例如,存储器子系统110)经由存储产品的主机接口112连接到外部处理器以形成计算装置时,外部处理器可用作计算装置的中央处理单元。然而,存储产品可经配置以提供对中央处理单元的有限存取。
例如,可为中央处理单元提供对由网络接口113具体标识的控制消息133的存取以用于对所述控制消息进行处理以产生控制消息137用于在存储产品内的存储装置中执行。然而,可防止中央处理单元直接存取网络接口113。例如,除处理由网络接口113标识的控制消息133之外,可防止中央处理单元使用网络接口113来传输消息及/或接收消息。因此,增加了未授权存取通过网络接口侵入在中央处理单元中运行的系统的难度;且消除、最小化或减少了在中央处理单元中运行的系统经由计算机网络114及/或因特网被侵入的风险。
类似地,控制器115可将外部处理器的存取限于存储容量143。中央处理单元可发送控制消息137,而不获得响应。对读取命令的响应直接路由到网络接口,而不经过中央处理单元。此外,存储产品可经配置以过滤来自外部处理器的控制消息137,以移除除用于安全性及掌管的命令之外的命令。
例如,在引导在中央处理单元中运行的系统之后,当消息来自中央处理单元时,控制器115可拒绝或丢弃与数据消息135相同类型的消息。因此,可防止中央处理单元读取主机数据131,及/或盖写或擦除主机数据131。
在一些实施方案中,存储产品的存储功能、存取控制及掌管操作由连接到主机接口112而不涉及网络接口113的外部处理器管理。管理员可动态监测活动,更新及/或增强在外部处理器中执行的软件。
例如,在外部处理器中运行的存储应用程序可经编程以提供用户接口。授权管理员可使用所述用户接口来指定存取控制配置数据141,例如谁有权存取哪些内容,存储容量(例如,命名空间)的哪一部分,资源及能力的什么集合暴露,等等。在网络接口113处(例如,在控制消息133中)接收的存取命令可对照存取控制配置数据141来检查及/或映射到存储容量143中的适当位置。外部处理器可为在网络接口113处从如由远程主机系统121标识的位置接收的存取命令/请求(例如,用于读取或写入操作)建立到在存取存储容量143中的适当位置时的对应命令的映射。
例如,在外部处理器中运行的操作系统及/或存储应用程序可经配置以仅在用于安全性及掌管的控制路径上而不在数据路径上。待写入到存储容量143或从存储容量143检索的数据不经过主机接口112到外部处理器。代替地,存储产品中内置的计算资源用于处理正被存储或检索的数据。因此,相对于进入存储产品或从存储产品输出的数据流,到外部处理器的通信带宽及应用于外部处理器的计算工作负载较小。因此,外部处理器可用于在按比例扩大处置大数据流的能力时控制多个存储数据处理单元。
图4展示根据一个实施例的网络就绪存储产品102,其经配置以具有选择性地为所述存储产品处理消息的外部处理器。
例如,可使用经配置以具有用于控制消息133及数据消息135的不同处理路径的图1及/或图2的存储器子系统110来实施网络就绪存储产品102。
在图4中,存储产品102包含存储器子系统110(例如,如在图1中)、总线连接器104及网络端口106。
存储器子系统110具有可由外部处理器(例如,本地主机系统120、处理装置118)指定的消息选择配置201。消息选择配置201标识待由外部处理器处理的消息的选择准则,以及待由存储器子系统110自身来处理的消息的选择准则。任选地,消息选择配置201可进一步包含待被阻止、丢弃或忽略的消息的选择准则。
消息选择配置201可存储在存储器子系统110的存储器或寄存器堆中,以控制存储器子系统110如何在不同处理单元上分派不同消息。任选地,本地主机系统120可动态调整配置文件用于选择在不同路径上处理的消息。
例如,为了根据图3的配置在不同处理路径上配置消息,消息选择配置201可经配置以将消息161到169标识为控制消息133以用于由本地主机系统120处理。此外,消息选择配置201可经配置以读取消息153、响应消息155、写入消息157等作为数据消息135以用于由数据存储产品102自身来处理,而不被转发到本地主机系统120。
例如,消息选择配置201可指定待由存储产品102自身来处理的消息的类型,且请求将剩余消息转发到本地主机系统120进行处理。
例如,消息选择配置201可经配置以指定待由本地主机系统120处理的消息的类型,且请求存储产品102处理剩余消息,而不将消息转发到本地主机系统120。
例如,消息选择配置201可经配置以指定待由存储产品102自身来处理的某些类型的消息,指定待传输到本地主机系统120进行处理的某些类型的消息,以及请求存储产品102阻止、丢弃或忽略剩余消息。
消息的分类或选择准则可基于消息的类型、消息中指定的命令、为命令指定的参数,例如地址、用户帐户、存取类型等。
存储器子系统110的控制器115可经配置以基于消息选择配置201来确定消息151的路由目的地。
存储产品102可制造成没有用于通用处理的中央处理单元。根据网络存储服务的核心存储操作来设计存储产品中的处理逻辑及计算资源。可经由使用消息选择配置201来实施服务的定制以选择用于由存储产品102外部的本地主机系统120来处理的消息。
存储产品102可作为独立计算机组件从制造商装运以用于生产或组装网络存储装置、服务器、计算机等。
网络缆线可插入到存储产品102的网络端口106中用于远程主机系统121与存储产品102的网络接口113之间的网络连接。在一些实施方案中,网络接口113包含用于无线计算机网络(例如,无线局域网或WiFi网络)的无线收发器;且网络端口106包含用于收发器的天线的连接器。
存储产品102的总线连接器104可连接到计算机总线125。当存储产品102经由计算机总线125连接到本地主机系统120时,本地主机系统120与存储产品102的组合可为经配置以提供网络存储服务的计算装置,所述服务例如典型网络附接存储装置的服务。
存储产品102可经制造以包含以类似于固态驱动器、硬盘驱动器、外部驱动器、网络驱动器等(例如,如在图12中)的方式围封存储器子系统110的任选壳体或外壳。在一些实施方案中,存储产品102配置在印刷电路板(PCB)上;且印刷电路板(PCB)的一部分经配置为可插入到扩展槽(例如,母板上的PCIe槽)中的总线连接器104(例如,如在图13中)。替代地,总线连接器104可经配置为端口,使得可插入计算机缆线(例如,根据PCIe、USB)用于连接到计算机总线125。
总线连接器104及网络端口106提供对存储产品102内的逻辑电路的存取。
在一些实施方案中,经由总线连接器104或网络端口106提供用以操作存储器子系统110的电力。在其它实施方案中,存储产品102具有单独电力连接器以接收用于存储器子系统110的操作的电力。
存储产品102不提供用于存取其组件及/或用于修改及/或增强存储产品102的硬件的其它接口。因此,可大大简化存储产品102在构造计算装置、服务器、网络存储装置等的硬件中的使用。
除连接到总线连接器104及本地主机系统120之外,计算机总线125可进一步连接到外围装置,例如监视器、键盘、鼠标、扬声器、打印机、存储存取控制配置数据141及/或待在中央处理装置中执行的操作系统213及/或存储应用程序215的指令的存储装置等。
外围装置中的一些可用于实施用户接口211,以接收用以管理存储器子系统110的存储容量143(例如,存储配额、存储分区)及/或管理存取控制配置数据141(例如,用户帐户、存取权、凭证)的命令。
例如,用户接口211可用于产生消息选择配置201的内容;且存储应用程序215及/或操作系统213可用于将消息选择配置201写入到存储器子系统110内的预定位置中,以控制其在将消息151分派到不同路径上时的操作。替代地,或组合地,可由远程主机系统121的授权用户通过网络接口113将消息选择配置201存储到存储器子系统110中。
在一些实施方案中,经由存储产品102的网络存储服务的用户接口来产生及/或配置存取控制配置数据141。此布置消除经由计算机网络114通过网络接口113来配置、调整及/或掌管存取控制配置数据141的需要。因此,可改进存取控制配置数据141的安全性。为进一步提高安全性,消息选择配置201可经配置以拒绝、阻止、忽略或丢弃从计算机网络114接收的控制消息133的一部分,且经配置以建立或改变存取控制配置数据141。
类似地,可经由用户接口执行掌管操作,以使远程主机系统(例如121)从经编程以经由网络连接执行此类操作中解脱出来。
任选地,当控制及/或掌管请求的一部分经实施以经由总线连接器104接收时,可选择在网络端口106中接收的用于此类操作的消息用于阻止、拒绝、丢弃等。
通过将类似于存储产品102的一或多个其它存储产品连接到计算机总线125,可扩展由本地主机系统120控制的存储能力。
在一些实施方案中,本地主机系统120可通过计算机总线125发送命令来控制在存储产品102内配置的组件中的至少一些的操作。例如,本地主机装置120可发送命令来启动或停止网络接口113的操作,管理网络接口113的网络属性/配置,等等。例如,本地主机系统120可向存储器子系统控制器115发送命令以启动或停止其操作。例如,本地主机系统120可发送命令以将数据写入到本地存储器119中且从本地存储器119读取数据。
在一些实施方案中,控制器115的至少一部分及存储器装置130、…、140经配置为一或多个本地存储装置(例如,固态驱动器),如在图12及图13中;且本地主机系统120可向存储装置发送用于存储操作的命令,所述存储操作例如创建或删除命名空间、在指定地址处读取数据、在指定地址处写入数据、在指定地址处擦除数据,等等。
任选地,本地主机系统120对存储器子系统110中的组件具有有限的存取。例如,所述存取可限于接收由网络接口113根据消息选择配置201标识的消息133以用于由存储产品102的外部处理器处理,及响应于所选择消息133或响应于经由在本地主机系统120中执行的指令提供的用户接口中指定的用户输入来发送控制消息137。
图5说明根据一个实施例的用以配置存储产品以在不同路径上路由消息以用于处理的技术。
例如,在图1、图2及/或图4中的存储器子系统110的网络接口113中接收的消息可经分离以分别由本地主机系统及存储装置进行处理。
在图5中,在网络接口113中接收的传入分组202用于构造存储存取消息151。消息151可具有不同的类型、属性及/或参数。消息151可包含消息205、207及206。多路分用器203由消息选择配置201控制以分离消息205、207及206用于不同处理路径。
消息选择配置201可指定主机选择准则217及本地选择准则219,以分别为本地主机系统120及本地存储装置105选择消息。
满足主机选择准则217的消息205由多路分用器203分派到本地主机系统120。响应于消息205,本地主机系统120可产生一或多个消息209用于由本地存储装置105进一步处理。此消息205在不经过本地主机系统120的情况下不被提供到本地存储装置105。
例如,在本地主机系统120中运行的存储应用程序215可经配置以处理输入消息205且为本地存储装置105产生输出消息209。
满足本地选择准则219的消息207由多路分用器203分派到本地存储装置105而不经过本地主机系统120。
消息206不满足主机选择准则217且不满足本地选择准则219。多路复用器203选择且丢弃210此消息206。
在一些实施方案中,本地主机系统120还可从用户接口211接收用户输入204,以为本地存储装置105产生输出消息209。
图5说明选择来自网络接口113的消息151以用于由本地主机系统120或本地存储装置105来处理。类似地,由本地存储装置105产生的响应消息155的一部分也可在消息选择配置201中任选地标识以用于由本地主机系统120处理。本地主机系统120处理所选择接收消息155以产生所得消息,且将所得消息提供到存储产品102用于经由网络接口113进行传输,如在图8中所说明。
在至少一些实施例中,经由存储产品102提供的网络存储服务至少部分通过在存储产品102外部的本地主机系统120中运行的软件来实施及定义。
例如,在本地主机系统120中运行的存储应用程序215可经编程以基于在存储产品102的网络接口113中接收的控制消息133来产生新的控制消息137。从远程主机系统121的角度来看,存储产品102的功能性可经由对存储应用程序215的编程来改变及/或实施。
例如,远程主机系统121可发送在存储产品102中不可执行的消息133。当消息133对应于不是为存储产品102预定义/设计的功能时,存储产品102可产生消息137来实施所述功能。可根据消息选择配置201来选择消息133用于由本地主机系统120来处理。在本地主机系统120上运行的存储应用程序215可经编程以处理消息133以实施不是存储产品102固有的功能。例如,存储应用程序215可经编程以将在网络接口113中接收的控制消息133动态地改变或重新映射为在存储产品102中可执行的、固有地受支持的消息137的组合。在存储产品102中接收及执行消息137的组合实施对应于消息133的功能。因此,经由存储产品102提供的网络存储服务的功能性可至少部分由存储产品102外部的数据及/或逻辑来定义。
作为实例,存储应用程序215可经配置以产生控制消息137以存储数据集的多个数据副本以提高数据集的可靠性。数据集可经由时间、帐户、用户、命名空间、应用程序及/或其它数据选择准则来选择。复制可动态打开或关闭,或在不需要更新存储产品102的固件及/或硬件的情况下对动态选择的数据集执行。
例如,存储应用程序215可经配置以提供集中式用户接口,以接收用以执行掌管操作、配置及/或定制经由存储产品102提供的功能等等的命令。
图6展示根据一个实施例的将从计算机网络接收的消息映射为待在存储产品中执行以实施网络存储服务的消息的存储应用程序。
例如,可在连接到具有根据图1、图2及/或图4的存储器子系统110的存储产品102的本地主机系统120中实施图6的存储应用程序215。
在图6中,存储器子系统110及/或含有存储器子系统110的存储产品102可经设计以支持存储产品命令集223。根据存储产品命令集223的命令或请求可在存储器子系统110内处理,而无需来自存储器子系统110外部的协助。
存储应用程序215可经编程以支持存储服务命令集221,其可任选地含有存储产品命令集223的至少一部分。存储服务命令集221的至少一个部分可在存储产品命令集223之外。
从存储器子系统110转发以用于由本地主机系统120处理的消息205可由存储应用程序215处理。除鉴于存取控制配置数据141来确定是否允许由消息205标识的操作之外,存储应用程序215还可使用存储产品命令集223来确定操作的实施。
例如,当在存储产品命令集223中支持消息205中的命令或请求时,在根据存取控制配置数据141确定允许所述命令或请求之后,存储应用程序215可简单地将所接收消息205转发为传输到存储器子系统110进行处理的消息209。
在一些实施方案中,存储应用程序215可更改消息205中提供的一或多个参数,以产生输出消息209供存储器子系统110处理。
当消息205中的命令或请求不在存储产品命令集223中时,存储应用程序215可经编程以将所接收消息205映射到存储产品命令集223中的一或多个输出消息209,以实施由消息205请求的功能。因此,提供到远程主机系统121的网络存储服务中的至少一些可由存储应用程序215定义及实施。
在一些情况下,传入消息205中的命令或请求可在存储产品命令集223中,但被选择用于附加服务及/或特征。响应于此类传入消息205,除将传入消息205转发到存储产品102之外,存储应用程序215还可产生附加消息209以实施附加服务及/或特征。
在一些实施方案中,存储应用程序215可对一组或一系列消息进行编程以实施由传入消息请求的功能,如在图7中所说明。
图7说明根据一个实施例的经编程以使用到存储产品的多个消息来实施一消息的存储应用程序。
例如,可以图7中所说明的方式处理在图6中的存储应用程序215中接收的消息205中的一者。
在图7中,在存储应用程序215中接收的消息237可为根据图4及/或图5的消息选择配置201来选择用于由本地主机系统120来处理的控制消息133(或消息205)中的一者。存储产品102不能够在没有来自存储产品102外部的协助的情况下处理所接收消息237以实施其相关联功能。
为了实施与所接收消息237相关联的功能,存储应用程序215可产生一组或一系列消息231、233、…、235。例如,消息231、233、…、235可为由本地主机系统120提供到存储器子系统110及/或本地存储装置105以实施由所接收消息237标识的请求的控制消息137(或消息209)的一部分。
消息231、233、…、235中的命令或请求配置在存储产品命令集223中。因此,存储产品102、存储器子系统110及/或本地存储装置105可在没有来自存储产品102外部的进一步协助的情况下处理消息231、233,…、235。
消息231、233、…、235经配置以使用存储产品102的资源及/或功能来实施传入消息237的请求。例如,消息231、233、…、235可使用存储产品命令集223中的一或多个命令来检索存储在存储产品102中的元数据123的相关部分,处理所检索数据,以及将数据写入到存储产品中以记录结果,以在处理后续读取/写入请求时配置存储产品102,等等。因此,存储应用程序215可在实施不是存储产品102固有的新服务时控制如何处理数据用于存储及检索。
消息选择配置201可经配置以选择由本地存储装置105产生的响应消息155,且请求存储产品102将所选择消息提供到本地主机系统120进行处理。例如,对消息231、233、…、235的响应可被选择用于由存储应用程序215来处理,以根据存储服务命令集221来产生对传入消息237的响应,如在图8中。
图8展示根据一个实施例的经编程以产生用于由存储产品传输的响应的存储应用程序。
例如,图8中的存储应用程序215可用于处理对图7中产生的消息231、233、…、235的响应,以实施以图5中所说明的方式选择的传入消息237。
在图8中,存储产品102中的本地存储装置105经配置以处理从本地主机系统120接收的消息209及绕过本地主机系统120的消息207。在执行消息207及209中的命令及/或请求之后,本地存储装置105可产生响应消息225。
存储产品102中的多路分用器203可基于在消息选择配置201中指定的主机选择准则217及本地选择准则219来分离响应消息225。
例如,可根据主机选择准则217来为涉及本地主机系统120的处理路径选择消息227。本地主机系统120中的存储应用程序215可提供响应消息228用于通过存储产品102的网络接口113来传输。
例如,可根据本地选择准则219来选择消息226以用于绕过本地主机系统120。
网络接口113产生传出分组229以用于将消息226及228传输到计算机网络114中。
可丢弃210未经由主机选择准则选择且未经由本地选择准则219选择的其它消息206。
例如,响应于为了实施图7中的传入消息237而接收的消息231、233、…、235,本地存储装置105可分别产生响应241、243、…、245。存储应用程序215可组合响应241、243、…、245以产生用于传入消息237的响应247。
在一些实施方案中,与存储产品102的操作及服务相关的数据的副本存储在存储产品102中。因此,具有存储应用程序215的另一本地主机系统120可动态地连接到存储产品102,以在处理根据消息选择配置201选择的消息时替换当前连接到存储产品102的本地主机系统120。替代地,连接到计算机总线125的另一存储器子系统可用于存储数据。
在至少一些实施例中,存储产品102具有计算存储处理器,以对从远程主机系统121接收的及/或从本地存储装置105检索的作为输入的数据执行计算,且将计算的结果存储在存储装置105中。在一些例子中,计算存储处理器可对从存储装置105检索的作为输入的数据执行计算,且提供计算的结果作为对从远程主机系统121检索数据的请求的响应。
例如,计算存储处理器可经配置以提供固定的计算存储服务,例如压缩/解压缩、加密/解密、擦除编码等。
任选地,计算存储处理器可经配置以提供可编程计算存储服务,其可动态地重新编程以实施应用于待存储到存储装置105中的数据及/或应用于从存储装置105检索的数据的不同功能。
计算存储处理器可用于为存储在存储装置105中的数据实施数据保护、擦除编码、复制等。计算存储处理器可用于实施布隆(bloom)过滤器、模式搜索、数据库搜索等,以用于从存储在存储装置105中的数据选择项目。计算存储处理器可用于对存储在存储装置105中的图像数据实施图像辨识,计算存储在存储装置105中的数据的统计,对存储在存储装置105中数据库表执行行/列旋转等。
计算存储处理器可包含通用微处理器、现场可编程门阵列(FPGA)、专用集成电路、逻辑电路等。在一些实施方案中,计算存储处理器经由指令配置及/或编程以执行计算存储功能。
一般来说,计算存储功能可为应用于变换进入或出自存储产品102的存储装置105的存储容量的数据的一组例程操作。
任选地,外部处理器(例如,本地主机系统120)可经由计算存储处理器动态配置在存储产品102中实施的计算存储功能。代替完全依赖于预编码的固件和/或硬件逻辑电路来执行预定计算存储功能,外部处理器可调整、改变及/或注入用于计算存储处理器的指令,以执行可取决于用户、帐户、命名空间、一天、一周、一个月或一年当中的时间的功能,及/或与待存储或检索的数据相关的其它属性及/或存储存取请求。
因此,具有计算存储处理器的存储产品102的功能的至少一部分可经由在外部处理器(例如,本地主机系统120)中运行的软件(例如,存储应用程序)来定义。
例如,存储产品102可使用计算存储处理器来执行用于加密/解密、压缩/解压缩、数据复制、擦除编码、过滤、匹配、搜索、报告等的计算中的至少一些。例如,外部处理器可响应于控制消息133而选择性地使用计算存储处理器作为本地计算加速器及/或使用存储产品102中的协处理器来处理在由外部处理器建立的通道中传达的数据,且应用于数据的计算存储功能可特定于通道及/或针对来自远程主机系统(例如121)的请求。将计算卸载到存储产品102中的计算存储处理器减少本地主机系统120上的计算工作负载,这允许本地主机系统120在提供具有动态计算存储功能的网络存储服务时控制多个存储产品(例如102)。
图9展示根据一个实施例的具有计算存储处理器的存储产品。
例如,图4的存储产品可以如图9中的方式实施以提供计算存储功能。
在图9中,存储产品102具有连接存储产品102的组件的互连件103,所述组件例如随机存取存储器101、到本地主机系统120的外部计算机总线125的主机接口112、处理装置107、网络接口113、本地存储装置105及计算存储处理器159。
在一些实施方案中,网络接口113直接连接到处理装置107;且提供网络接口113与处理装置107之间的连接的电路系统不与存储产品102的其它组件共享,所述组件例如随机存取存储器101、存储装置105及计算存储处理器159。在此类实施方案中,处理装置107可被视为网络接口113的部分;且网络接口113在不经过处理装置107的情况下不与其它组件通信。
替代地,用于连接网络接口113与处理装置107以进行通信的互连件103的一部分在时间上与存储产品102中的其它组件共享。网络接口113及处理装置107可具有到互连件103的单独连接;且当网络接口113与处理装置107处于通信中时,互连件103的部分不可用于支持其它组件的通信。在一些实施方案中,处理装置107与网络接口113经由将数据缓冲到随机存取存储器101且检索经缓冲数据来彼此通信。
处理装置107与网络接口113可彼此通信以将传入分组202转换为存储存取消息151,且将响应消息247及226转换为传出分组229。
互连件103可经由主机接口112在本地主机系统120与随机存取存储器101之间提供通信通道。本地主机系统120可控制通过通信通道到随机存取存储器101的通信。任选地,通过通道的通信可根据计算机总线125的协议。例如,本地主机系统120可检索由处理装置107缓冲到随机存取存储器101中的消息205以进行处理,缓冲其产生的消息209用于在本地存储装置105中进行处理,及/或将响应消息228缓冲到随机存取存储器101中用于经由网络接口113进行传输。
互连件103可在处理装置107与本地存储装置105之间提供通信通道。处理装置107可控制通过通信通道到本地存储装置105的通信。任选地,通过通道的通信可根据计算机总线125的协议。例如,处理装置107可将根据本地选择准则219选择的消息207发送到本地存储装置105,而不将消息207缓冲到随机存取存储器101中;且处理装置107可从本地存储装置105检索根据本地选择准则219选择的响应消息226。
例如,本地存储装置105具有本地存储器119;且处理装置107可将消息207缓冲到本地存储器119中用于由本地存储装置105来处理,且检索由本地存储装置105在本地存储器119中缓冲的响应消息226。
替代地,本地存储装置105可经配置以使用随机存取存储器101来缓冲及调度待在本地存储装置105中处理的消息207以及由本地存储装置105产生的响应消息226及228。
互连件103可在处理装置107与随机存取存储器101之间提供通信通道。处理装置107可控制通过通信通道到随机存取存储器101的通信。任选地,通过通道的通信可根据计算机总线125的协议。例如,处理装置107可将根据主机选择准则217选择的消息205缓冲到随机存取存储器101中用于由本地主机系统120检索,且从随机存取存储器101检索由本地主机系统120产生的响应消息228。
在一些实施方案中,处理装置107可进一步从随机存取存储器101检索由本地主机系统120产生的消息209,且将所检索消息209缓冲到本地存储装置105中的本地存储器119中用于处理。
互连件103可在本地存储装置105与随机存取存储器101之间提供通信通道。本地存储装置105可控制通过通信通道到随机存取存储器101的通信。例如,通过通道的通信可根据计算机总线125的协议。例如,本地存储装置105可在随机存取存储器101中检索由本地主机系统120产生及缓冲的消息209,且将响应于来自本地主机系统120的消息209的响应消息227缓冲到随机存取存储器101中用于由本地主机系统120检索。
替代地,处理装置107可在随机存取存储器101中检索由本地主机系统120产生及缓冲的消息209,且将所检索消息209缓冲到本地存储装置105的本地存储器119用于处理。
类似地,代替本地存储装置105将响应消息227缓冲到随机存取存储器101中用于由本地主机系统120处理,处理装置107可从本地存储装置105的本地存储器119检索响应消息225,根据主机选择准则217选择响应消息227,以及将所选择响应消息227缓冲到随机存取存储器101中用于由本地主机系统120检索。
在一些实施方案中,互连件103可经由主机接口112在本地主机系统120与本地存储装置105之间提供通信通道。本地主机系统120可控制通过通信通道到本地存储装置105的通信。任选地,通过通道的通信可根据计算机总线125的协议。例如,代替经由随机存取存储器101来传达由本地主机系统120产生的消息209,本地主机系统120可将所产生消息209直接缓冲到本地存储装置105的本地存储器119中用于处理。绕过随机存取存储器101以将由本地主机系统120产生的消息209传达到本地存储装置105可降低随机存取存储器101的大小要求及/或改进性能。
例如,代替经由随机存取存储器101来传达由本地存储装置105产生的消息227,本地主机系统120可直接从本地存储装置105的本地存储器119检索响应消息227用于处理。
可根据串行高级技术附件(SATA)、外围组件互连快速(PCIe)、通用串行总线(USB)、光纤通道(FC)、串行附接SCSI(SAS)、双倍数据速率(DDR)、小型计算机系统接口(SCSI)、开放NAND快闪接口、低功率双倍数据速率(LPDDR)、非易失性存储器(NVM)快速(NVMe)、计算快速链路(CXL)或另一技术来实施通过计算机总线125及/或互连件103的通信。
可使用动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、静态随机存取存储器(SRAM)、三维交叉点(“3D交叉点”)存储器等来实施随机存取存储器101。
存储装置105可具有经配置以在总线(例如,由互连件103提供)上通信以接收命令及发送响应的主机接口109。
例如,互连件103可适于连接与本地主机系统120在其上连接的计算机总线125相同类型的计算机总线。替代地,存储产品102的主机接口112可用于桥接计算机总线125与互连件103。
存储装置105可具有拥有本地存储器119及处理装置117的控制器115,类似于图1中的存储器子系统控制器115。控制器115可在本地存储器119中缓冲经由主机接口109接收的命令及数据。处理装置117可经由指令及/或逻辑电路进行配置以执行写入命令以将数据存储到存储器装置130、…、140中,执行读取命令以检索主机数据131等。在一些实施方案中,本地存储装置105的主机接口109使用与存储产品102的主机接口112及/或互连件103相同的通信协议。
任选地,处理装置107可经配置(例如,经由消息选择配置201)来选择消息207的至少一部分用于由计算存储处理器159处理,如在图10中。
例如,在处理装置107选择消息207的部分之后,处理装置107可在用于计算存储处理器159的随机存取存储器101中缓冲所选择消息。互连件103可将计算存储处理器159连接到随机存取存储器101以处理所选择消息。
类似地,处理装置107可经配置(例如,经由消息选择配置201)以选择响应消息226的至少一部分用于由计算存储处理器159处理,如在图11中。所选择响应消息可由处理装置107在随机存取存储器101中缓冲;且互连件103可将计算存储处理器159连接到随机存取存储器101以处理所选择响应消息。
在一些实施方案中,经由存储在存储产品102中的指令来配置由计算存储处理器159执行的计算存储功能。所述指令可为存储产品102的固件的部分,其在存储产品102的制造期间存储到存储产品102中,或在固件更新操作期间安装。
在一些实施方案中,本地主机系统120可在控制消息133的处理期间动态地为计算存储处理器159设置指令。例如,由本地主机系统120产生的用以设置用于远程主机系统121的读取或写入操作的存取的控制消息137可包含用以配置待由计算存储处理器159结合读取或写入操作执行的指令的消息。
在一些实施方案中,控制消息137的一部分由存储器子系统控制器115或处理装置107处理,以在随机存取存储器101中设置指令以由计算存储处理器159执行。替代地,本地主机系统120可将数据写入到随机存取存储器101中,以配置用于计算存储处理器159的指令。
在存储产品102中实施的计算存储功能的动态配置允许本地主机系统120中的存储应用程序215定义存储产品102在提供网络存储服务时的功能性。
图10展示根据一个实施例的经选择用于在存储产品内进行处理的消息的处理。
在图10中,在消息207被选择用于在存储产品102内本地处理而不去往本地主机系统120(例如,如在图5中)之后,多路分用器203可将消息207分离为用于由计算存储处理器159处理的消息251以及用于由本地存储装置105处理的消息255。
例如,消息选择配置201可包含用于选择消息251的计算选择准则218。所选择消息251可被缓冲到用于计算存储处理器159的随机存取存储器101中。计算存储处理器159经由逻辑电路及/或指令进行配置以从所选择消息251产生所得消息253。计算存储处理器159可经由将所得消息253缓冲到存储装置105的本地存储器119或将所得消息253缓冲到随机存取存储器101中而将所得消息253提供到本地存储装置105。
存储产品102可以类似于计算存储处理器159将所得消息253提供到本地存储装置105的方式将剩余消息255提供到存储装置105。
图11展示根据一个实施例的经选择用于在存储产品内进行处理的响应消息的处理。
在图11中,在响应消息226被选择用于在存储产品102内本地处理而不去往本地主机系统120(例如,如在图8中)之后,多路分用器203可将消息226分离为用于由计算存储处理器159处理的消息261以及用于通过网络接口113进行传输的消息265。
例如,消息选择配置201可包含用于选择响应消息261的计算选择准则218。所选择响应消息261可被缓冲到用于计算存储处理器159的随机存取存储器101中。计算存储处理器159经由逻辑电路及/或指令进行配置以从所选择响应消息261产生所得消息263。计算存储处理器159可将所得响应消息263提供到网络接口113用于传输到计算机网络114中。
在一些实施方案中,计算存储处理器159经配置以在随机存取存储器101中缓冲所得响应消息263;且处理装置107经配置以从随机存取存储器101检索所得响应消息263,且使用网络接口113来传输所得响应消息263
存储产品102可以类似于计算存储处理器159提供所得响应消息263以用于通过网络接口113传输的方式来提供剩余响应消息265以用于通过网络接口113传输。
图12展示根据一个实施例的具有存储装置、网络端口、计算存储处理器及到外部处理器的总线连接器的存储产品。
例如,图4及/或图9的存储产品102可用图5、图8、图10及图11中所说明的消息分派技术以图12中所说明的方式来实施。图12的存储产品102可连接到本地主机系统120以使用存储应用程序215来处理消息,如在图6、图7及/或图8中那样。
在图12中,存储产品102具有连接总线连接器104、网络接口113、连接到随机存取存储器101的处理装置107、计算存储处理器159及本地存储装置105的互连件103。例如,互连件103可为一或多个计算机总线。
本地主机系统120可通过计算机总线125存取随机存取存储器101。例如,待由本地主机系统120处理的消息205及/或待传输到存储装置105的消息209可在随机存取存储器101中缓冲。可使用动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、静态随机存取存储器(SRAM)、三维交叉点(“3D交叉点”)存储器等来实施随机存取存储器101。
外部处理器(例如,本地主机系统120)可经由总线连接器104存取存储产品102中的功能或电路的一部分。可经由存储应用程序215的指令对外部处理器进行编程,以通过指定用于接收消息205以进行处理的消息选择配置201以及通过产生用于在本地存储装置105中执行的消息209及用于通过网络接口113传输的消息228来控制存储器子系统110中的操作。
例如,外部处理器可在随机存取存储器101中设置、改变及/或配置计算指令259。计算存储处理器159可执行计算指令259以处理所选择传入消息251及所选择响应消息261。
任选地,在存储产品102的固件更新过程期间,由外部处理器设置或配置计算指令259。
在一些实施方案中,外部处理器可响应于经选择用于由外部处理器处理的消息205的处理来动态地改变或配置计算指令259。计算指令259可基于消息205中的属性及/或参数来配置。
在本地主机系统120中运行的存储应用程序215可将消息选择配置201及/或计算指令259写入到随机存取存储器101中的预定位置中。存储器子系统110的处理装置107经配置以从随机存取存储器101检索消息选择配置201。处理装置107经配置以基于在消息选择配置201中指定的准则来标识待由存储应用程序215处理的消息205。计算存储处理器159经配置以在处理写入消息157、读取消息153及/或响应消息155时执行计算指令259。
在一些实施方案中,在本地存储装置105的通电过程期间,将消息选择配置201从本地主机系统120传达到存储产品102。处理装置107可从随机存取存储器101检索消息选择配置201,且接着根据所检索消息选择配置201来控制存储器子系统110中的消息流。
在一些实施方案中,随机存取存储器101的预定部分经配置以存储消息选择配置201以控制处理装置107。本地主机系统120可动态地改变消息选择配置201以控制消息流。
在一些实施方案中,存储器子系统110的寄存器堆或非易失性存储器经配置以存储控制消息流的消息选择配置201。
消息选择配置201可包含用于使处理装置107选择消息205以用于由存储产品102外部的本地主机系统120来处理的主机选择准则217,用于使处理装置107选择消息251以用于由存储产品102内的计算存储处理器159来处理(绕过本地主机系统120)的计算选择准则218,及/或用于使处理装置107为本地存储装置105选择消息255(绕过计算存储处理器159及本地主机系统120两者)的本地选择准则219。
本地存储装置105可提供可通过计算机网络114存取的存储产品102的存储容量143。例如,本地存储装置105可具有集成电路存储器装置130、…、140以提供存储容量143。例如,存储装置105可经配置为可通过其主机接口109在计算机外围总线上使用的固态驱动器。在一些实施方案中,存储装置105是固态驱动器(SSD)或BGA SSD。在其它实施例中,硬盘驱动器可用作存储装置105。
存储产品102可被围封在外壳或壳体170中,以保护存储器子系统110的组件。对存储产品内组件的功能的存取可限制为使用总线连接器104及网络端口106。由于存储器子系统110的资源经设计为足以处置根据网络接口113的通信带宽接收的请求,所以存储产品102不为用户提供定制其硬件(例如,添加组件、移除组件、更改连接等)的选项。
在一些实施方案中,网络接口113包含用于无线网络连接的无线收发器;且网络端口106包含用于天线的连接器。
在图12中,网络接口113包含处理装置107(例如,逻辑电路、控制器或处理器)或由其控制。处理装置107经配置以处理从计算机网络114接收的传入分组202,且产生传出分组229以用于将消息(例如,响应消息226及228)传输到计算机网络114中。
网络接口113的处理装置107可进一步经配置以根据消息选择配置201标识及分离用于本地主机系统120、计算存储处理器159及存储装置105的消息。在网络接口113中从计算机网络114接收的消息的一部分被标识且被提供到本地主机系统120进行处理。例如,鉴于存取控制配置数据141,控制消息133被标识且被选择用于由本地主机系统120来处理。例如,连接到网络接口113的处理装置107可在随机存取存储器101中(例如,在一或多个队列中)缓冲经选择用于由本地主机系统120处理的消息205;且本地主机系统120可经配置(例如,经由操作系统213及/或存储应用程序215)来检索消息205,以确定是接受还是拒绝所检索消息205中的请求,是否变换所检索消息205,及/或是否产生新消息209用于由存储装置105及/或存储产品102来处理。任选地,在处理消息205时,本地主机系统120经由将数据写入到随机存取存储器101来设置计算指令259及/或产生待在本地存储装置105中执行的消息(例如,消息137的一部分)。
在网络接口113中从计算机网络114接收的消息的一部分被标识且被提供到计算存储处理器159进行处理。例如,数据消息135中的一些被标识且被选择用于由运行计算指令的计算存储处理器159来处理。例如,连接到网络接口113的处理装置107可将被选择用于由计算存储处理器159来处理的数据消息135的一部分缓冲在随机存取存储器101中(例如,在一或多个队列中);且计算存储处理器159可经配置(例如,经由计算指令259)来检索数据消息135的部分,以执行加密/解密、压缩/解压缩、数据复制、擦除编码、过滤、匹配、搜索、报告等。
处理装置107可将经由网络接口113从计算机网络114接收的剩余消息(例如,数据消息135)转发到存储装置105,而消息无需经过本地主机系统120及/或计算存储处理器159。在一些实施方案中,处理装置107进一步选择传入存储存取消息151的一部分,且将所选择消息207提供到本地存储装置105;且剩余消息被丢弃、拒绝或忽略,如在图5中。
任选地,存储产品102可经配置以将本地主机系统120的存取限于处理由网络接口113的处理装置107在随机存取存储器101中缓冲的消息,且将所处理或所产生消息(例如,控制消息137)发送到存储装置105。
存储装置105可具有经配置以在总线(例如,互连件103)上通信以接收命令及发送响应的主机接口109。
例如,互连件103可具有与连接存储产品102的总线连接器104与本地主机系统120的计算机总线125相同类型的总线。替代地,存储器子系统110的主机接口112可用于桥接计算机总线125与互连件103。
在一些实施方案中,主机接口112及109可支持同一通信协议。在一些实施方案中,互连件103为将本地主机系统120连接到存储产品102的随机存取存储器101的计算机总线125的一部分或扩展。
存储装置105可具有拥有本地存储器119及处理装置117的控制器115,类似于图1中的存储器子系统控制器115。控制器115可在本地存储器119中缓冲经由主机接口109接收的命令及数据。处理装置117可经由指令及/或逻辑电路进行配置以执行写入命令以将数据存储到存储器装置130、…、140中,执行读取命令以检索主机数据131,等等。
图13展示根据一个实施例的配置在印刷电路板上的存储产品。
例如,图4及/或图9的存储产品102可用图5、图8、图10及图11中所说明的消息分派技术以图13中所说明的方式来实施。图13的存储产品102可连接到本地主机系统120以使用存储应用程序215来处理消息,如在图6、图7及/或图8中那样。
类似于图12,图13中的存储产品102具有连接总线连接器104、处理装置107、网络接口113、随机存取存储器101、计算存储处理器159及存储装置105的互连件103。
在图13中,存储产品102可以构建在印刷电路板108上的扩展卡的形式来配置。印刷电路板108的一部分可经配置为总线连接器104。总线连接器104可插入到计算机总线125上的扩展槽中用于连接到本地主机系统120。
在图13中,存储器子系统110具有用以桥接计算机总线125与互连件103的主机接口112。在一些实施方案中,互连件103是计算机总线125的一部分或扩展,如在图12中那样。
在图13中,存储器子系统110具有与网络接口113分离的处理装置107。处理装置107与网络接口113可通过互连件103彼此通信,以处理分组以产生消息(例如,控制消息133及数据消息135)及传输消息(例如,响应消息155)。
在图13中,处理装置107(例如,处理器或控制器)可经编程以独立于本地主机系统120执行操作。处理装置107经配置以根据消息选择配置201标识消息205,且将消息205放置在随机存取存储器101中用于由本地主机系统120来处理。在本地主机系统120将其输出消息209放置在随机存取存储器101中之后,处理装置107进一步经配置以将消息209转发到存储装置105。因此,由本地主机系统120进行的控制及存取可被限于随机存取存储器101及消息选择配置201。
此外,处理装置107经配置以根据消息选择配置201标识消息251,且将消息251放置在随机存取存储器101中用于由计算存储处理器159来处理。在计算存储处理器159将其输出消息253放置在随机存取存储器101中之后,处理装置107进一步经配置以将消息253转发到存储装置105。替代地,计算存储处理器159可将消息253缓冲到本地存储装置105的本地存储器119中,而无需来自处理装置107的协助。
类似地,处理装置107可根据消息选择配置201标识响应消息261,且将消息261放置在随机存取存储器101中用于由本地主机系统159来处理。在计算存储处理器159将其输出消息263放置在随机存取存储器101中之后,处理装置107进一步经配置以产生传出分组229以供网络接口113传输消息263。替代地,计算存储处理器159可产生用于消息263的传出分组229,且指示网络接口113在没有来自处理装置107的协助的情况下传输用于消息253的传出分组。
在一些实施方案中,处理装置107及网络接口113具有存储产品102的其它组件无法存取的直接通信连接,如在图12中那样。在此类实施方案中,可将处理装置107视为网络接口113的部分。
任选地,印刷电路板108还具有经配置以大体上围封存储器子系统110的组件以防止篡改的壳体或外壳170。
图12及图13说明连接到存储器子系统110的互连件103的一个存储装置105的实例。任选地,在存储器子系统110中配置多个存储装置105来并行操作,以匹配网络接口113的带宽。
图14展示根据一个实施例的用以经由具有计算存储处理器的存储产品来处理网络消息以实施网络存储服务的方法。
例如,图14的方法可由存储管理器执行,所述存储管理器配置在图4、图9、图12及/或图13的存储产品102的存储器子系统110及/或本地主机系统120中,以使用图5、图8、图10及图11的技术具有图2中所说明的不同处理路径。例如,可实施存储器子系统110中的存储管理器(例如,处理装置107及在计算存储处理器159中运行的计算指令)以执行结合存储器子系统110论述的操作;且存储管理器可经由存储器子系统控制器115的逻辑电路及/或处理装置117及/或经编程以由处理装置117执行的指令来实施。例如,可实施本地主机系统120中的存储管理器(例如,存储应用程序215)以执行结合本地主机系统120论述的操作;且存储管理器可经由主机系统120的逻辑电路及/或处理装置118及/或经编程以由处理装置118执行的指令来实施。
在框271处,存储产品102从在存储产品102的网络接口113中通过计算机网络114从远程主机系统121接收的传入分组202产生存储存取消息151。
例如,存储产品102可制造为独立计算机组件以安装在计算装置中以提供网络存储服务。存储产品102可具有可在计算机网络114上操作以从远程主机系统121接收存储存取消息151的网络接口113。存储产品102进一步包含经配置以连接到存储产品102外部的计算机总线125的总线连接器104。存储产品102进一步包含本地存储装置105,其存储容量可经由通过网络接口113提供的网络存储服务存取。存储产品102可具有计算存储处理器159以执行计算存储功能。任选地,计算存储处理器159是可编程的。例如,计算存储处理器可为微处理器、逻辑电路、专用逻辑电路系统、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等。
例如,存储产品102可以经由插入到本地主机系统120的母板上的扩展槽来连接到计算机总线125的扩展卡的形式来配置。
例如,存储产品102可具有连接到网络接口113的网络端口106。存储产品102的壳体或外壳170可经配置以围封网络接口113、本地存储装置105、计算存储处理器159及处理装置107,使得存储产品102的功能性经设计以仅通过总线连接器104及网络端口106来存取。
在框273处,存储产品102将存储存取消息151分离为第一消息205、第二消息251及第三消息255。
例如,存储产品102可具有耦合到网络接口113或者作为网络接口113的一部分的处理装置107,其用以从在网络接口113处从计算机网络114接收的传入分组202产生存储存取消息151。
在一些实施方案中,使用计算存储处理器159来实施处理装置107。在其它实施方案中,处理装置107与存储产品102中的计算存储处理器159分离。
例如,处理装置107使用消息选择配置201中指定的准则来标识或选择第一消息205、第二消息251及第三消息255。
例如,本地主机系统120可通过总线连接器104指定消息选择配置201。消息选择配置201中的主机选择准则217可用于选择第一消息205;消息选择配置201中的计算选择准则218可用于选择第二消息251;且剩余存储存取消息151可被选择为第三消息255。替代地,消息选择配置201中的本地选择准则219可用于选择第三消息225;且可丢弃210存储存取消息151中的剩余消息206。
在框275处,存储产品102通过经由外部计算机总线连接到本地主机系统120的存储产品102的总线连接器104,向本地主机系统120提供第一消息。
在框277处,存储产品102外部的本地主机系统120处理第一消息205以产生第四消息209。
例如,鉴于存取控制配置数据141,第一消息205可由本地主机系统120来处理以实行存取控制,以建立供远程主机系统121用于将主机数据131读取及/或写入到本地存储装置105中的通道,及/或配置计算存储处理器159以执行通道的计算存储功能等。
例如,本地主机系统120可在第一消息205的处理期间将计算指令259写入到存储产品102中,以配置由计算存储处理器159执行的计算存储功能。例如,计算指令259可写入到存储产品102的随机存取存储器101及/或写入到存储产品102中的本地存储装置105中。计算存储处理器159经配置以在第二消息251的处理期间执行计算指令259以执行计算存储功能。
任选地,计算指令259可取决于第一消息205的属性或第一消息205中的参数。因此,由计算存储处理器159执行的计算存储功能可由运行本地主机系统120的存储应用程序215针对来自远程主机系统(例如121)的个别请求动态地改变、定制、调整及/或配置。
在框279处,存储产品102在内部将第二消息251提供到存储产品102的计算存储处理器159。
在框281处,存储产品102中的计算存储处理器159处理第二消息251以产生第五消息253。
例如,由计算存储处理器159执行以产生第五消息253的计算存储功能可包含压缩、解压缩、加密、解密、擦除编码、数据复制、数据过滤、数据库搜索、数据匹配、统计产生、图像辨识、模式搜索或行列旋转,或其任一组合。
在框283处,存储产品102经由存储产品102的本地存储装置105执行第三消息255、第四消息209及第五消息253中的命令来实施经由网络接口113提供的网络存储服务。
例如,第三消息255可从网络接口113及/或处理装置107路由到本地存储装置105而不经过本地主机系统120及/或计算存储处理器159。
例如,第四消息209可从本地主机系统120路由到本地存储装置105而不经过计算存储处理器159。
例如,第五消息253可从计算存储处理器159路由到本地存储装置105而不经过本地主机系统120。
存储产品102还可将由本地存储装置105产生的响应消息225分离为消息227以用于由本地主机系统120来处理,分离为消息261以用于由计算存储处理器159来处理,及分离为消息265以用于通过网络接口113来传输。本地主机系统120处理消息227以产生所得消息228以用于通过网络接口113来传输。计算存储处理器159处理消息265以产生所得消息263以用于通过网络接口113来传输。
在一些实施方案中,响应消息225的分离以类似于传入存储存取消息151的分离的方式基于消息选择配置201。替代地,到本地主机系统120的响应消息227、到计算存储处理器159的响应消息261及响应消息265分别响应于由本地主机系统120产生的第四消息209、由计算存储处理器159产生的第五消息253及来自网络接口113或处理装置107的第三消息255。
一般来说,存储器子系统110可为存储装置、存储器模块或存储装置与存储器模块的混合体。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM)及各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)的一部分、具有物联网(IoT)能力的装置、嵌入式计算机(例如,包含在交通工具、工业装备或联网商业装置中的计算机),或包含存储器及处理装置的此类计算装置。
计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文使用,“耦合到”或“与...耦合”一般是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,不具有中介组件),无论是有线的还是无线的,包含例如电连接、光学连接、磁连接等的连接。
例如,主机系统120可包含处理器芯片组(例如,处理装置118)及由处理器芯片组执行的软件栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,控制器116)(例如,NVDIMM控制器)及存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120例如使用存储器子系统110将数据写入到存储器子系统110及从存储器子系统110读取数据。
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含(但不限于)串行高级技术附件(SATA)接口、外围组件互连快速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)接口、双倍数据速率(DDR)存储器总线接口、小型计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双倍数据速率(DDR)的DIMM插槽接口)、开放式NAND快闪接口(ONFI)、双倍数据速率(DDR)接口、低功率双倍数据速率(LPDDR)接口、计算快递链路(CXL)接口或任何其它接口。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。主机系统120可进一步利用NVM快速(NVMe)接口来在存储器子系统110通过PCIe接口与主机系统120耦合时存取组件(例如,存储器装置130)。所述物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据及其它信号的接口。图1说明存储器子系统110作为实例。一般来说,主机系统120可经由相同通信连接、多个单独通信连接及/或通信连接的组合来存取多个存储器子系统。
主机系统120的处理装置118可为例如微处理器、中央处理单元(CPU)、处理器的处理核心、执行单元等。在一些例子中,控制器116可被称为存储器控制器、存储器管理单元及/或启动器。在一个实例中,控制器116控制通过耦合在主机系统120与存储器子系统110之间的总线的通信。一般来说,控制器116可向存储器子系统110发送命令或请求用于对存储器装置130、140的期望存取。控制器116可进一步包含接口电路系统以与存储器子系统110通信。接口电路系统可将从存储器子系统110接收的响应转换为针对主机系统120的信息。
主机系统120的控制器116可与存储器子系统110的控制器115通信以执行例如在存储器装置130、140处读取数据、写入数据或擦除数据的操作以及其它此类操作。在一些例子中,控制器116集成在处理装置118的同一封装内。在其它例子中,控制器116与处理装置118的封装分离。控制器116及/或处理装置118可包含硬件,例如一或多个集成电路(IC)及/或离散组件、缓冲器存储器、高速缓存存储器或其组合。控制器116及/或处理装置118可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适处理器。
存储器装置130、140可包含不同类型的非易失性存储器组件及/或易失性存储器组件的任一组合。易失性存储器装置(例如,存储器装置140)可为(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)。
非易失性存储器组件的一些实例包含“与非”(或,“或非”)(NAND)型快闪及就地写入存储器,例如三维交叉点(“3D交叉点”)存储器。非易失性存储器的交叉点阵列可结合可堆叠交叉网格数据存取阵列基于体电阻的改变执行位存储。另外,与许多基于快闪的存储器相反,交叉点非易失性存储器可执行就地写入操作,其中可对非易失性存储器单元进行编程而无需事先擦除非易失性存储器单元。NAND型快闪存储器包含例如二维NAND(2DNAND)及三维NAND(3D NAND)。
存储器装置130中的每一者可包含存储器单元的一或多个阵列。一种类型的存储器单元(例如单电平单元(SLC))可每单元存储一个位。其它类型的存储器单元(例如多电平单元(MLC)、三电平单元(TLC)、四电平单元(QLC)及五电平单元(PLC))可每单元存储多个位。在一些实施例中,存储器装置130中的每一者可包含存储器单元的一或多个阵列,例如SLC、MLC、TLC、QLC、或PLC或此任一组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分、MLC部分、TLC部分、QLC部分及/或PLC部分。存储器装置130的存储器单元可被分组为可指代用于存储数据的存储器装置的逻辑单元的页面。针对一些类型的存储器(例如,NAND),页面可经分组以形成块。
尽管描述例如3D交叉点型及NAND型存储器(例如,2D NAND、3D NAND)的非易失性存储器装置,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选择存储器、其它硫属化物基存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻式随机存取存储器(RRAM)、氧化物基RRAM(OxRAM)、“或非”(NOR)快闪存储器以及电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或为简单起见控制器115)可与存储器装置130通信以执行例如在存储器装置130处读取数据、写入数据或擦除数据的操作以及其它此类操作(例如,响应于由控制器116在命令总线上调度的命令)。控制器115可包含例如一或多个集成电路(IC)及/或离散组件、缓冲器存储器或其组合的硬件。硬件可包含具有专用(即,硬编码)逻辑的数字电路系统以执行本文所描述的操作。控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适处理器。
控制器115可包含经配置以执行存储在本地存储器119中的指令的处理装置117(处理器)。在所说明实例中,控制器115的本地存储器119包含经配置以存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流程以及例程的指令的嵌入式存储器,所述操作包含处置存储器子系统110与主机系统120之间的通信。
在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微代码的只读存储器(ROM)。尽管图1中的实例存储器子系统110已经说明为包含控制器115,但在本公开的另一实施例中,存储器子系统110可不包含控制器115,而是可依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
一般来说,控制器115可从主机系统120接收命令或操作,并且可将命令或操作转换为指令或适当命令以实现对存储器装置130的期望存取。控制器115可负责其它操作,例如损耗均衡操作、废弃项目收集操作、错误检测及错误纠正代码(ECC)操作、加密操作、高速缓存操作以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、命名空间)与物理地址(例如,物理块地址)之间的地址转译。控制器115可进一步包含主机接口电路系统,以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收的命令转换为命令指令以存取存储器装置130以及将与存储器装置130相关联的响应转换为用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含可从控制器115接收地址并解码所述地址以存取存储器装置130的高速缓存或缓冲器(例如,DRAM)及地址电路系统(例如,行解码器及列解码器)。
在一些实施例中,存储器装置130包含本地媒体控制器150,其与存储器子系统控制器115结合操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管存储器装置,其是与用于同一存储器装置封装内的媒体管理的本地控制器(例如,本地媒体控制器150)组合的原始存储器装置。被管理存储器装置的实例是被管理NAND(MNAND)装置。
控制器115及/或存储器装置130可包含经配置以实施上文论述的功能的存储管理器。在一些实施例中,存储器子系统110中的控制器115包含存储管理器的至少一部分。在其它实施例中,或在组合中,主机系统120中的控制器116及/或处理装置118包含存储管理器的至少一部分。举例来说,控制器115、控制器116及/或处理装置118可包含实施存储管理器的逻辑电路系统。举例来说,控制器115或主机系统120的处理装置118(处理器)可经配置以执行存储在存储器中的指令以用于执行本文描述的存储管理器的操作。在一些实施例中,存储管理器在安置在存储器子系统110中的集成电路芯片中实施。在其它实施例中,存储管理器可为存储器子系统110、主机系统120的操作系统、装置驱动器或应用程序或其任一组合的固件的部分。
在一个实施例中,计算机系统的实例机器,在所述计算机系统内可执行用于致使所述机器执行本文所论述的方法中的任一或多者的一组指令。在一些实施例中,计算机系统可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到、或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行存储管理器的操作(例如,执行指令以执行对应于参考图1到图14描述的操作的操作)。在替代实施例中,所述机器可连接(例如,联网)到LAN、内联网、外联网及/或因特网中的其它机器。所述计算机可在客户端-服务器网络环境中以服务器或客户端机器的身份操作,在对等(或分布式)网络环境中作为对等机器操作,或在云计算基础设施或环境中作为服务器或客户端机器操作。
机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络器械、服务器、网络路由器、交换机或网桥、网络附接存储设施或能够执行指定待由所述机器采取的动作的一组指令(循序或以其它方式)的任何机器。此外,虽然说明单个机器,但是术语“机器”也应被认为包含机器的任何集合,其个别地或共同地执行一组(或多组)指令以执行本文所论述的方法中的任一者或多者。
实例计算机系统包含处理装置、主存储器(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM)(例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM))、静态随机存取存储器(SRAM)等)以及数据存储系统,其经由总线(其可包含多个总线)彼此通信。
处理装置表示一或多个通用处理装置,例如微处理器、中央处理单元或类似者。更特定来说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或者是实施其它指令集的处理器,或者是实施指令集的组合的处理器。处理装置也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器或类似者。处理装置经配置以执行用于执行本文所论述的操作及步骤的指令。计算机系统可进一步包含用于通过网络进行通信的网络接口装置。
数据存储系统可包含机器可读媒体也称为计算机可读媒体),在其上存储体现本文所描述的方法或功能中的任一者或多者的一或多组指令或软件。在由计算机系统执行指令期间,所述指令也可全部或至少部分地驻留在主存储器内及/或处理装置内,主存储器及处理装置也构成机器可读存储媒体。机器可读媒体、数据存储系统及/或主存储器可对应于图1的存储器子系统110。
在一个实施例中,指令包含用以实施对应于存储管理器(例如,参考图1到图14描述的操作)的功能性的指令。尽管在实例实施例中将机器可读媒体展示为单个媒体,但是术语“机器可读存储媒体”应被认为包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”也应被认为包含能够存储或编码一组指令以供机器执行并且致使机器执行本公开的方法中的任一者或多者的任何媒体。因此,术语“机器可读存储媒体”应被认为包含(但不限于)固态存储器、光学媒体及磁性媒体。
已经根据对计算机存储器内的数据位的操作的算法及符号表示来呈现前述详细描述的一些部分。这些算法描述及表示是数据处理领域的技术人员用来最有效地向所属领域的其它技术人员传达其工作实质的方式。此处,算法通常被认为是导致所需结果的自洽操作序列。所述操作是需要对物理量的物理操纵的操作。通常但不是必须的,这些量采用能够被存储、组合、比较及以其它方式操纵的电或磁信号的形式。有时已经证明,主要出于通用的原因将这些信号称为位、值、元素、符号、字符、项、数字或类似者是方便的。
然而,应牢记,所有这些术语及类似术语均应与适当物理量相关联并且仅仅是应用于这些量的方便标签。本公开可涉及计算机系统或类似电子计算装置的动作及过程,所述计算机系统或类似电子计算装置将表示为计算机系统的寄存器及存储器内的物理(电子)量的数据操纵及变换为类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量。
本公开还涉及用于执行本文的操作的设备。此设备可经特定构造用于预期目的,或者其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储在计算机可读存储媒体中,例如(但不限于)任何类型的磁盘,包含软盘、光盘、CD-ROM及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适用于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
本文提出的算法及显示并非固有地与任何特定计算机或其它设备相关。各种通用系统可与根据本文的教示的程序一起使用,或者可证明构造更专用设备来执行所述方法是方便的。各种这些系统的结构将如下文描述中所阐述那样出现。另外,未参考任何特定编程语言来描述本公开。将了解,可使用各种编程语言来实施如本文所描述的本公开的教示。
本公开可被提供为计算机程序产品或软件,其可包含其上存储有指令的机器可读媒体,所述指令可用于对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程。机器可读媒体包含用于以由机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在此描述中,各种功能及操作被描述为由计算机指令执行或由计算机指令引起以简化描述。然而,所属领域的技术人员将认识到,此类表达的意思是功能是由一或多个控制器或处理器(例如微处理器)执行计算机指令而产生的。替代地或组合地,可使用具有或不具有软件指令的专用电路来实施功能及操作,例如使用专用集成电路(ASIC)或现场可编程门阵列(FPGA)。可使用没有软件指令的硬接线电路或结合软件指令来实施实施例。因此,技术既不限于硬件电路系统与软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定源。
在前述说明书中,已经参考本公开的特定实例实施例描述本公开的实施例。显而易见的是,在不脱离如所附权利要求书中阐述的本公开的实施例的更广泛精神及范围的情况下,可对其进行各种修改。因此,说明书及图式应被认为是说明意义而不是限制意义的。
Claims (10)
1.一种存储产品,其包括:
网络接口,其能够在计算机网络上操作以从远程主机系统接收存储存取消息;
总线连接器,其经配置以连接到如所制造的所述存储产品外部的计算机总线;
本地存储装置,其具有能够经由通过所述网络接口提供的网络存储服务存取的存储容量;及
计算存储处理器;
其中所述存储产品经配置以:
将所述存储存取消息分离为第一消息、第二消息及第三消息;
通过所述总线连接器将所述第一消息提供到在所述存储产品外部且连接到所述计算机总线的本地主机系统,以产生第四消息;以及
将所述第二消息提供到所述计算存储处理器以产生第五消息;且
其中所述本地存储装置经配置以经由执行以下者中的命令来实施经由所述网络接口提供的网络存储服务:
来自所述网络接口而不经过所述本地主机系统及所述计算存储处理器的所述第三消息;
来自所述本地主机系统而不经过所述计算存储处理器的所述第四消息;及
来自所述计算存储处理器而不经过所述本地主机系统的所述第五消息。
2.根据权利要求1所述的存储产品,其进一步包括:
处理装置,其耦合到所述网络接口以从在所述网络接口处从所述计算机网络接收的传入分组产生所述存储存取消息。
3.根据权利要求2所述的存储产品,其中所述处理装置与所述计算存储处理器分离。
4.根据权利要求2所述的存储产品,其中所述处理装置是所述网络接口的部分或所述计算存储处理器的部分。
5.根据权利要求2所述的存储产品,其中所述处理装置经配置以基于由所述本地主机系统通过所述总线连接器指定的消息选择配置来标识所述第一消息、所述第二消息及所述第三消息。
6.根据权利要求5所述的存储产品,其中所述本地主机系统经配置以经由处理所述第一消息来设置计算指令;且所述计算存储处理器经由所述计算指令进行配置以从所述第二消息的处理产生所述第五消息。
7.根据权利要求6所述的存储产品,其中所述计算指令取决于于所述第一消息的属性或所述第一消息中的参数。
8.根据权利要求6所述的存储产品,其中所述计算指令由所述本地主机系统配置以执行计算存储功能,所述计算存储功能包含压缩、解压缩、加密、解密、擦除编码、数据复制、数据过滤、数据库搜索、数据匹配、统计产生、图像辨识、模式搜索,或行列旋转,或其任一组合。
9.根据权利要求6所述的存储产品,其中所述存储产品以经由插入到母板上的扩展槽来连接到所述计算机总线的扩展卡的形式来配置。
10.根据权利要求6所述的存储产品,其进一步包括:
网络端口,其连接到所述网络接口;及
壳体或外壳,其围封所述网络接口、所述本地存储装置、所述计算存储处理器及所述处理装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/866,336 | 2022-07-15 | ||
US17/866,336 US11983434B2 (en) | 2022-07-15 | 2022-07-15 | Network-ready storage products with computational storage processors |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117407334A true CN117407334A (zh) | 2024-01-16 |
Family
ID=89498879
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310858621.2A Pending CN117407334A (zh) | 2022-07-15 | 2023-07-13 | 具有计算存储处理器的网络就绪存储产品 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11983434B2 (zh) |
CN (1) | CN117407334A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12050945B2 (en) | 2022-07-15 | 2024-07-30 | Micron Technology, Inc. | Storage products with connectors to operate external network interfaces |
Family Cites Families (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6766359B1 (en) | 1999-12-29 | 2004-07-20 | Emc Corporation | Method and apparatus for utilizing multiple paths in a file transfer utility employing an intermediate data storage system |
US7246192B1 (en) | 2003-01-10 | 2007-07-17 | Marvell International Ltd. | Serial/parallel ATA controller and converter |
US7657706B2 (en) | 2003-12-18 | 2010-02-02 | Cisco Technology, Inc. | High speed memory and input/output processor subsystem for efficiently allocating and using high-speed memory and slower-speed memory |
US8549226B2 (en) | 2004-05-14 | 2013-10-01 | Hewlett-Packard Development Company, L.P. | Providing an alternative caching scheme at the storage area network level |
US7424745B2 (en) | 2005-02-14 | 2008-09-09 | Lenovo (Singapore) Pte. Ltd. | Anti-virus fix for intermittently connected client computers |
US8140696B2 (en) | 2007-03-12 | 2012-03-20 | International Business Machines Corporation | Layering serial attached small computer system interface (SAS) over ethernet |
US20080320233A1 (en) | 2007-06-22 | 2008-12-25 | Mips Technologies Inc. | Reduced Handling of Writeback Data |
US8359408B2 (en) | 2008-06-30 | 2013-01-22 | Intel Corporation | Enabling functional dependency in a multi-function device |
US8239640B2 (en) | 2008-10-09 | 2012-08-07 | Dataram, Inc. | System for controlling performance aspects of a data storage and access routine |
US8291181B2 (en) | 2008-10-28 | 2012-10-16 | Micron Technology, Inc. | Temporary mirroring, logical segregation, and redundant programming or addressing for solid state drive operation |
US8615633B2 (en) | 2009-04-23 | 2013-12-24 | Empire Technology Development Llc | Multi-core processor cache coherence for reduced off-chip traffic |
US20110246823A1 (en) | 2010-04-05 | 2011-10-06 | Et International, Inc. | Task-oriented node-centric checkpointing (toncc) |
EP2598996B1 (en) | 2010-07-28 | 2019-07-10 | SanDisk Technologies LLC | Apparatus, system, and method for conditional and atomic storage operations |
US9047178B2 (en) | 2010-12-13 | 2015-06-02 | SanDisk Technologies, Inc. | Auto-commit memory synchronization |
US20120278396A1 (en) | 2011-04-26 | 2012-11-01 | Research In Motion Limited | Method, system and apparatus for managing messages |
US20120311271A1 (en) | 2011-06-06 | 2012-12-06 | Sanrad, Ltd. | Read Cache Device and Methods Thereof for Accelerating Access to Data in a Storage Area Network |
US8959528B2 (en) | 2013-03-13 | 2015-02-17 | International Business Machines Corporation | Acknowledging incoming messages |
US9432484B1 (en) | 2013-12-19 | 2016-08-30 | Emc Corporation | CIM-based data storage management system having a restful front-end |
US10866910B2 (en) | 2015-09-28 | 2020-12-15 | Sandisk Technologies Llc | Systems, methods, and computer-readable media for managing instruction fetch in virtual computing environments |
US10355858B2 (en) | 2016-03-30 | 2019-07-16 | Intel Corporation | Authenticating a system to enable access to a diagnostic interface in a storage device |
US20170344430A1 (en) | 2016-05-24 | 2017-11-30 | Intel Corporation | Method and apparatus for data checkpointing and restoration in a storage device |
US9537953B1 (en) | 2016-06-13 | 2017-01-03 | 1Qb Information Technologies Inc. | Methods and systems for quantum ready computations on the cloud |
US10984044B1 (en) | 2016-09-26 | 2021-04-20 | Splunk Inc. | Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system |
US11106734B1 (en) | 2016-09-26 | 2021-08-31 | Splunk Inc. | Query execution using containerized state-free search nodes in a containerized scalable environment |
US10403322B2 (en) | 2016-11-22 | 2019-09-03 | International Business Machines Corporation | Moving a car within a shuttle complex based upon library string data chunk counts |
US20180349487A1 (en) | 2017-05-31 | 2018-12-06 | Microsoft Technology Licensing, Llc | File disposition review system |
US20190095107A1 (en) | 2017-09-28 | 2019-03-28 | Intel Corporation | Data classification for placement within storage devices |
US11513840B2 (en) | 2018-05-07 | 2022-11-29 | Micron Technology, Inc. | Thread creation on local or remote compute elements by a multi-threaded, self-scheduling processor |
US20190044879A1 (en) | 2018-06-29 | 2019-02-07 | Intel Corporation | Technologies for reordering network packets on egress |
KR20200021821A (ko) | 2018-08-21 | 2020-03-02 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US10719462B2 (en) * | 2018-09-25 | 2020-07-21 | Intel Corporation | Technologies for computational storage via offload kernel extensions |
US10929206B2 (en) * | 2018-10-16 | 2021-02-23 | Ngd Systems, Inc. | System and method for outward communication in a computational storage device |
US11038778B2 (en) | 2018-12-11 | 2021-06-15 | Vmware, Inc. | Methods and systems that provision distributed applications that invoke functions provided by a distributed-function-as-a-service feature |
US20200226077A1 (en) * | 2019-01-15 | 2020-07-16 | Goke Us Research Laboratory | Network interface device with non-volatile memoery expreess over fabrics (nvme-of) support over wide-area networks |
US11410475B2 (en) | 2019-01-31 | 2022-08-09 | Micron Technology, Inc. | Autonomous vehicle data recorders |
US10664217B1 (en) | 2019-03-04 | 2020-05-26 | International Business Machines Corporation | Displaying dynamic content on multiple devices |
CN113424144A (zh) * | 2019-03-12 | 2021-09-21 | 英特尔公司 | 计算数据存储系统 |
US11436194B1 (en) | 2019-12-23 | 2022-09-06 | Tintri By Ddn, Inc. | Storage system for file system objects |
US11561870B2 (en) | 2020-03-30 | 2023-01-24 | Kioxia Corporation | SSD with compressed superblock mapping table |
US11733931B1 (en) * | 2020-07-13 | 2023-08-22 | Meta Platforms, Inc. | Software defined hybrid flash storage memory controller |
US11449443B2 (en) | 2020-10-16 | 2022-09-20 | Western Digital Technologies, Inc. | Identification and classification of write stream priority |
US11650868B2 (en) | 2020-10-21 | 2023-05-16 | Vmware, Inc. | Methods and systems that sample log/event messages in a distributed log-analytics system |
US20220137835A1 (en) | 2020-10-30 | 2022-05-05 | Kioxia Corporation | Systems and methods for parity-based failure protection for storage devices |
US20220236902A1 (en) * | 2021-01-27 | 2022-07-28 | Samsung Electronics Co., Ltd. | Systems and methods for data transfer for computational storage devices |
US11604752B2 (en) | 2021-01-29 | 2023-03-14 | Arm Limited | System for cross-routed communication between functional units of multiple processing units |
JP7566674B2 (ja) * | 2021-03-18 | 2024-10-15 | キオクシア株式会社 | メモリシステム、方法及びデータ処理システム |
KR102365312B1 (ko) * | 2021-06-17 | 2022-02-23 | 삼성전자주식회사 | 스토리지 컨트롤러, 연산 스토리지 장치, 및 연산 스토리지 장치의 동작 방법 |
US11720525B2 (en) | 2021-07-30 | 2023-08-08 | Netapp, Inc. | Flexible tiering of snapshots to archival storage in remote object stores |
US11675540B2 (en) * | 2021-08-05 | 2023-06-13 | Seagate Technology Llc | In-line data flow for computational storage |
CN113660611B (zh) | 2021-08-18 | 2023-04-18 | 荣耀终端有限公司 | 定位方法和装置 |
US20220004668A1 (en) | 2021-09-16 | 2022-01-06 | Intel Corporation | Lockable partition in nvme drives with drive migration support |
JP2023045456A (ja) * | 2021-09-22 | 2023-04-03 | キオクシア株式会社 | コンピュテーショナルストレージドライブ |
US11842050B2 (en) | 2021-10-21 | 2023-12-12 | EMC IP Holding Company, LLC | System and method for enabling smart network interface card (smartNIC) access to local storage resources |
US11853234B2 (en) | 2022-01-05 | 2023-12-26 | Dell Products L.P. | Techniques for providing access of host-local storage to a programmable network interface component while preventing direct host CPU access |
US11775225B1 (en) | 2022-07-15 | 2023-10-03 | Micron Technology, Inc. | Selective message processing by external processors for network data storage devices |
US11809361B1 (en) | 2022-07-15 | 2023-11-07 | Micron Technology, Inc. | Network data storage devices having external access control |
-
2022
- 2022-07-15 US US17/866,336 patent/US11983434B2/en active Active
-
2023
- 2023-07-13 CN CN202310858621.2A patent/CN117407334A/zh active Pending
-
2024
- 2024-04-25 US US18/646,650 patent/US20240295983A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240020049A1 (en) | 2024-01-18 |
US11983434B2 (en) | 2024-05-14 |
US20240295983A1 (en) | 2024-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783013B (zh) | 配置和访问可扩展对象存储的方法和系统 | |
US10334334B2 (en) | Storage sled and techniques for a data center | |
US20190042611A1 (en) | Technologies for structured database query for finding unique element values | |
US20240020062A1 (en) | Selective Message Processing by External Processors for Network Data Storage Devices | |
US10754588B2 (en) | Performing data operations in a storage area network | |
US20240020029A1 (en) | External Data Processing for Network-Ready Storage Products having Computational Storage Processors | |
US20240295983A1 (en) | Network-Ready Storage Products with Computational Storage Processors | |
US20240028546A1 (en) | Network Data Storage Devices having External Access Control | |
CN105408875B (zh) | 在存储器接口上的分布式过程执行和文件系统 | |
US11379127B2 (en) | Method and system for enhancing a distributed storage system by decoupling computation and network tasks | |
US20240118950A1 (en) | Message Routing in a Network-Ready Storage Product for Internal and External Processing | |
US20240069992A1 (en) | Message Queues in Network-Ready Storage Products having Computational Storage Processors | |
US20240143422A1 (en) | Network Storage Products with Options for External Processing | |
US20240176535A1 (en) | Data Storage Devices with Reduced Buffering for Storage Access Messages | |
US20240022645A1 (en) | Network Storage Services Implemented via Storage Products and External Software | |
US20240020011A1 (en) | Network-Ready Storage Products for Implementations of Internet Appliances | |
US20240020048A1 (en) | Network-Ready Storage Products with Artificial Intelligence Accelerators | |
US20240020047A1 (en) | Network-Ready Storage Products with Cryptography based Access Control | |
US20240022526A1 (en) | Message Queue Configuration to Separate Processing Paths for Control Messages and Data Messages | |
US20240020046A1 (en) | Data Storage Devices having Different Paths for Control Messages and Data Messages | |
US12050945B2 (en) | Storage products with connectors to operate external network interfaces | |
US11405579B2 (en) | Removable storage device with a virtual camera for video surveillance as a service | |
US11914879B2 (en) | Storage controller and storage system comprising the same | |
US20240264772A1 (en) | Operation method of storage device | |
US20230342049A1 (en) | Reading a master boot record for a namespace using a regular read operation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |