CN114328306A - 智能存储装置 - Google Patents
智能存储装置 Download PDFInfo
- Publication number
- CN114328306A CN114328306A CN202111144318.3A CN202111144318A CN114328306A CN 114328306 A CN114328306 A CN 114328306A CN 202111144318 A CN202111144318 A CN 202111144318A CN 114328306 A CN114328306 A CN 114328306A
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- protocol
- cxl
- access
- 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
Images
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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/28—DMA
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
提供了一种智能存储装置。所述智能存储装置包括连接到主机装置的智能接口。加速器电路通过CXL.cache协议和CXL.mem协议的数据总线连接到智能接口。加速器电路被配置为响应于主机装置的计算命令而执行加速计算。存储控制器通过符合CXL.io协议的数据总线连接到智能接口。存储控制器被配置为响应于主机装置的数据访问命令而控制针对存储装置的数据访问操作。加速器电路能够通过直接连接到存储控制器的内部总线而直接访问存储装置。
Description
技术领域
本公开涉及一种存储装置,更具体地,涉及一种使用计算快速链路(ComputeExpress Link,CXL)接口的存储装置。
背景技术
现代存储装置能够存储较大量的数据,并且被装备为以较快的速度进行操作。
然而,主机装置(诸如,中央处理器(CPU)和图形处理器(GPU))最常通过根据外围组件互连快速(PCIe)协议进行操作的数据总线连接到半导体装置(诸如,存储器装置)。数据总线(诸如,PCIe)具有相对低的带宽和长延迟,并且与一致性和存储器共享有关的问题通常可能发生在以这种方式布置的半导体装置中。
发明内容
一种智能存储装置包括:智能接口,连接到主机装置;加速器电路,通过符合计算快速链路(CXL).cache协议和CXL.mem协议的数据总线连接到智能接口,并且被配置为响应于主机装置的计算命令而执行加速计算;以及存储控制器,通过符合CXL.io协议的数据总线连接到智能接口,并且被配置为响应于主机装置的数据访问命令而控制针对存储装置的数据访问操作。加速器电路能够通过直接连接到存储控制器的内部总线直接访问存储装置。
一种智能存储装置包括:智能接口,连接到主机装置;存储器控制器电路,通过符合CXL.cache协议和CXL.mem协议的数据总线连接到智能接口,并且被配置为控制针对存储器装置的第一访问操作。存储控制器,通过符合CXL.io协议的数据总线连接到智能接口,并且被配置为控制针对存储装置的第二访问操作。智能接口包括内部连接,内部连接直接连接符合CXL.mem协议和CXL.io协议的数据总线,以直接访问存储器控制器和存储控制器。
一种智能存储装置包括连接到主机装置的智能接口。加速器电路通过符合CXL.cache协议和CXL.mem协议的数据总线连接到智能接口,并且被配置为响应于主机装置的计算命令而执行加速计算。存储控制器通过符合CXL.io协议的数据总线连接到智能接口,并且被配置为响应于主机装置的数据访问命令来控制针对存储装置的数据访问操作。加速器存储器控制器电路通过符合CXL.cache协议和CXL.mem协议的数据总线连接到智能接口,并且被配置为控制针对加速器存储器装置的第二访问操作。存储控制器能够直接访问加速器电路和加速器存储器控制器电路。
一种操作智能存储装置的方法包括:从主机装置接收命令;通过计算快速链路(CXL)接口向加速器电路发送命令;由加速器电路基于通过对命令进行解码提取的计算信息通过内部总线向存储控制器请求数据访问;由存储控制器根据请求从存储装置访问数据;以及由加速器电路接收从存储装置接收的数据访问结果,以基于命令执行加速计算。
附图说明
通过参照附图详细描述本公开的各种实施例,本公开的以上和其它方面和特征将变得更加清楚,其中:
图1是示出根据本公开的示例实施例的智能存储装置的框图;
图2是示出图1的智能存储装置的框图;
图3是示出图2的加速器电路的框图;
图4是示出图2的存储控制器的框图;
图5和图6是示出操作图2的智能存储装置的方法的流程图;
图7是示出图1的智能存储装置的框图;
图8是示出图1的智能接口的框图;以及
图9至图11是示出操作图7的智能存储装置的方法的流程图。
具体实施方式
在下文中,将参照附图描述本公开的实施例。
图1是示出根据本公开的实施例的智能存储装置的框图。
在一些实施例中,主机装置(或主机)10可对应于中央处理器(CPU)、图形处理器(GPU)、神经处理器(NPU)、现场可编程门阵列(FPGA)、处理器、微处理器、应用处理器(AP)等。根据一些实施例,主机装置10可被实现为片上系统(SoC)。例如,主机装置10可以是移动系统(诸如,便携式通信终端(移动电话)、智能电话、平板计算机、可穿戴装置、医疗保健装置、物联网(IoT)装置、个人计算机、膝上型/笔记本计算机、服务器、媒体播放器或汽车装置(诸如,卫星导航系统))。另外,主机装置10可包括被配置为根据各种通信协议在主机装置10外部的其它装置之间发送和接收信号的通信装置。通信装置是将主机装置10连接到有线连接或无线连接的装置,并且可包括例如天线、收发器和/或调制解调器。主机装置10可连接到例如以太网网络,或者可通过通信装置连接到无线网络。
主机装置10可包括主机处理器11和主机存储器12。主机处理器11可控制主机装置10的整体操作,主机存储器12是工作存储器并且可存储主机处理器11的操作可能需要的指令、程序、数据等。
根据本公开的实施例,智能存储装置1000可以是数据中心或人工智能学习数据装置。智能存储装置1000可以是能够执行计算并存储数据的半导体装置(诸如,存储器内处理(processing-in-memory,PIM)或存储器内计算(computing-in-memory,CIM))。
智能存储装置1000可包括智能接口100、加速器电路(或称为加速器)200、存储控制器(storage controller)300和存储器控制器(memory controller)400。根据一些实施例,智能存储装置1000可包括智能接口100、加速器200和存储控制器300,或者根据一些实施例,智能存储装置1000可包括智能接口100、存储控制器300和存储器控制器,或者根据一些实施例,智能存储装置1000可包括智能接口100、加速器200、存储控制器300和存储器控制器。
根据一些实施例,图1中示出的智能存储装置1000是使用计算快速链路(ComputeExpress Link,CXL)接口的半导体装置。根据一些实施例,智能接口100使用CXL接口。
CXL接口是计算机装置互连器标准,是可减小主机装置和智能存储装置1000的开销(overhead)和等待时间的接口,并且可允许主机存储器和存储器装置的存储空间在主机装置10和智能存储装置1000一起操作的异构计算环境中被共享。例如,主机装置10和片上系统、执行复杂计算的GPU以及加速模块(诸如,现场可编程门阵列(FPGA))直接地通信并且共享存储器。本说明书的智能存储装置1000基于CXL标准。
主机装置10可通过智能接口100连接到加速器电路200、存储控制器300和存储器控制器400中的至少一个,以控制智能存储装置1000的整体操作。
智能接口100被配置为利用CXL子协议(诸如,CXL.io、CXL.cache和CXL.mem)。CXL.io协议是PCIe事务层,PCIe事务层在系统中用于装置发现、中断管理、提供寄存器访问、初始化处理、信号错误处理等。当加速器电路200访问主机装置的主机存储器12时,可使用CXL.cache协议。当主机装置10访问加速器电路200的加速器存储器290(参见图2)或连接到存储器控制器400的存储器装置490(参见图7)时,可使用CXL.mem协议。
加速器电路200可根据主机装置10的计算命令来执行加速计算。根据一些实施例,加速器电路200可以是神经网络处理器、AI加速器、CPU、图形处理器(GPU)、数字信号处理器(DSP)、神经处理器(NPU)、协处理器或另外的合适的处理器。
存储控制器300可连接到至少一个存储装置390(参见图2)以控制存储装置390的操作。例如,访问操作(诸如,读取或删除存储在存储装置390中的数据或者写入数据)可被包括。至少一个存储装置390可包括非易失性存储器装置(例如,与非(NAND)存储器装置)或一些其它合适形式的存储器。
存储器控制器400可连接到至少一个存储器装置490(参见图7),以控制存储器装置490的操作。例如,访问操作(读取或删除存储在存储器装置490中的数据或者写入数据)可被包括。
根据一些实施例,连接到存储控制器300的至少一个存储装置390和连接到存储器控制器400的至少一个存储器装置490可被包括在智能存储装置1000中,可以是嵌入式的,或者可被实现为可拆卸的。以下提供详细描述。
存储器控制器400可通过主机装置10和CXL接口以非常高的带宽保持存储器装置490与主机装置10的主机存储器12之间的数据一致(coherence)。例如,主机装置10可使用包括在智能存储装置1000中的存储器作为支持高速缓存一致的主机装置10的工作存储器,并且可通过存储器或者加载/存储存储器命令来访问数据。可通过例如根据MESI协议的一致处理来执行数据一致。MESI协议可通过包括无效状态、共享状态、修改状态和排它状态来定义存储器装置与主机装置之间的存储器间状态(inter-memory state),并且可根据定义的状态执行一致操作。
当在加速器电路200、存储控制器300和存储器控制器400之间执行数据访问时,智能存储装置1000可在没有主机装置10的干预(intervention)的情况下,通过加速器电路200与存储控制器300之间或存储控制器300与存储器控制器400之间的内部连接来执行直接访问。
图2是示出根据一些实施例的图1的智能存储装置的框图。图3是示出根据一些实施例的图2的加速器电路的框图,图4是示出根据一些实施例的图2的存储控制器的框图。
参照图2至图4,根据一些实施例,加速器电路200可通过智能接口100的CXL.cache协议和CXL.mem协议连接到主机装置10。加速器电路200可向主机装置10发送命令(A.CMD)和计算数据(A.cache/mem)并从主机装置10接收命令(A.CMD)和计算数据(A.cache/mem),并且根据发送数据的对象,加速器电路200可通过选择CXL.cache协议和CXL.mem协议中的一个来发送并接收数据。
如在此所述,对各种CXL子协议的引用可用于表示符合相应CXL子协议的数据总线。因此,当表示加速器电路200通过CXL.cache协议和CXL.mem协议连接到主机装置10时,可理解,加速器电路200通过依据CXL协议的CXL.cache子协议和CXL.mem子协议操作的数据总线连接到主机装置10。
加速器电路200可包括至少一个加速器存储器290。加速器电路200的加速器存储器290可专用于加速器电路200,这可被理解为表示:加速器存储器290仅可由加速器电路200访问,并且不可由与加速器电路200无关的任何其它装置访问。因此,加速器存储器不是共享存储器。根据各种实施例,加速器存储器290可以是非易失性存储器或易失性存储器。根据一些实施例,作为工作存储器的加速器存储器290可以是易失性存储器(诸如,动态RAM(DRAM)、静态RAM(SRAM)或同步动态RAM(SDRAM)),或者根据一些实施例,作为工作存储器的加速器存储器29可以是非易失性存储器中的至少一种。
加速器存储器290根据各种实施例可通过被嵌入在加速器电路200中来实现,可通过被设置在加速器电路200外部进行电连接,或者可被实现为加速器电路200的可拆卸的/可移除的存储器。
根据一些实施例,存储控制器300可通过智能接口100的CXL.io协议连接到主机装置10。主机装置10和存储控制器300可通过智能接口100的CXL.io协议发送并接收数据访问请求(S.CMD)和数据(S.Data)。
存储控制器300可包括至少一个存储装置390。存储装置390可以是非易失性存储器装置,并且非易失性存储器可包括(例如)闪存(例如,NAND闪存或者或非(NOR)闪存等)、硬盘驱动器或固态驱动器(SSD)或其它存储技术。
存储装置390可在存储控制器300的控制下执行数据的删除操作、写入操作或读取操作等。为此,存储装置390通过输入/输出线从存储控制器300接收命令CMD和地址ADDR,并且向存储控制器300发送用于编程操作或读取操作的数据DATA以及从存储控制器300接收用于编程操作或读取操作的数据DATA。另外,存储装置390可通过控制线接收控制信号CTRL,并且存储装置390可从存储控制器300接收电力PWR。
根据一些实施例,加速器电路200和存储控制器300可通过内部总线IPath1彼此连接。加速器电路200可通过内部总线IPath1直接访问存储控制器300。例如,加速器电路200可在没有主机装置10的干预的情况下直接请求对存储装置390的数据的访问。
如图3中所示,根据一些实施例,加速器电路200可包括命令解码器电路210、一致性引擎(coherency engine)220(其也可被称为一致引擎)、直接存储器存取(DMA)引擎230、加速器存储器控制器240以及计算模块250(这也可被称为加速器硬件模块),并且相应组件可通过加速器系统总线201彼此电连接。如在此所使用的,短语“引擎”可表示执行用于执行特定功能的命令的逻辑电路。
当从主机装置10接收到命令(例如,计算命令)时,命令解码器电路210对接收到的计算命令进行解码以提取计算信息。计算信息可包括例如计算类型、将被计算的数据的地址等。
一致性引擎220保持存储在加速器电路200的加速器存储器290中的数据与主机装置10的主机存储器12中的数据之间的一致性。例如,一致处理被执行,使得主机装置10使用存储在作为主机附接的存储器的加速器电路200的加速器存储器290中的数据。例如,当新的计算数据被存储在加速器存储器290中时,一致性引擎220可通过CXL.cache协议来执行一致处理,来以相同的方式将计算数据也存储在主机装置10的主机存储器12中。类似地,主机装置10可通过CXL.mem协议执行一致处理,以将主机装置10的主机存储器12中的数据共享到加速器存储器290。
DMA引擎230可通过内部总线IPath1连接到存储控制器300,并且可使用存储控制器300直接访问存储装置390。当需要根据计算模块250或主机装置10的请求将数据写入存储装置390或者从存储装置390读取数据时,DMA引擎230可请求对存储控制器300的数据进行访问。
加速器存储器控制器240可控制加速器存储器290的操作。例如,控制可被执行,使得存储在加速器存储器290中的计算数据被读取或删除,或者新的计算数据被写入。
计算模块250可根据解码后的计算命令执行加速计算。加速计算可包括根据一些实施例的信号处理和图像信号处理以及基于各种类型的网络(例如,卷积神经网络(CNN)、区域卷积神经网络(R-CNN)、区域建议网络(region proposal network,RPN)、循环神经网络(RNN)、基于堆叠的深度神经网络(S-DNN)、状态空间动态神经网络(S-SDNN)、解卷积网络、深度信念网络(DBN)、受限玻尔兹曼机(RBM)、全卷积网络、长短期记忆(LSTM)网络、分类网络等)的计算处理(诸如,神经处理)。
如图4中所示,根据一些实施例,存储控制器300可包括调度器310、控制单元320、内部存储器330和非易失性存储器控制器340,并且相应组件可通过内部系统总线301彼此电连接。
调度器310可连接到内部总线IPath1和智能接口100中的每个,并且可在接收到来自主机装置10的访问请求和来自加速器电路200的访问请求时根据预设策略调度操作顺序。根据一些实施例,预设策略可以是将来自加速器电路200的访问请求优先于来自主机装置10的访问请求。可选地,在已经被预订的其它请求之前可优先处理主机装置10的紧急请求。
控制单元320可控制存储控制器300的整体操作,并且可执行例如数据访问操作(诸如,写入、读取或删除存储装置390中的数据)以及存储装置390的内部操作等。
内部存储器330可以是存储控制器300的工作存储器,并且可存储在存储控制器300被驱动时生成的操作数据。
非易失性存储器控制器340可控制连接到存储控制器300的至少一个非易失性存储器装置390。
图5和图6是示出图2的智能存储装置的操作方法的流程图。
参照图5,首先,主机装置10向智能存储装置1000发送命令(步骤S10)。智能存储装置1000的智能接口100检查命令用于哪个组件,并且选择并发送相应组件的协议(步骤S11)。例如,当主机装置10发送计算命令时,智能接口100通过用于加速器电路200的协议(CXL.cache或CXL.mem)进行连接。
加速器电路200通过对接收到的计算命令CMD1进行解码,来提取计算信息(步骤S12)。计算信息可包括例如计算类型、计算所需的数据的地址等。根据一些实施例,计算命令可包括将由加速器电路200执行的至少一个操作。在以下描述的实施例中,假设计算命令CMD1指示基于存储装置390的数据执行加速计算的情况。
加速器电路200向存储控制器300发送数据访问请求(步骤S13)。在这种情况下,可在没有主机装置10的干预的情况下通过内部总线IPath1直接向存储控制器300请求访问请求。
当从加速器电路200接收到访问请求时(步骤S14),存储控制器300以根据预设策略确定的操作次序对存储装置390执行根据访问请求的操作(步骤S15)。例如,存储控制器300通过调度器根据预设策略调度多个访问请求以确定操作次序。控制单元320和非易失性存储器控制器340根据由调度器310确定的次序对非易失性存储器装置390执行访问操作。
存储控制器300向加速器电路200发送访问的执行结果(步骤S16)。例如,在数据读取请求的情况下,读取数据(在下文中,第一数据)被返回,并且在数据写入请求或删除请求的情况下,执行完成被返回。
当接收到执行结果(例如,读取的第一数据)时(步骤S17),加速器电路200与主机装置10执行一致处理(或针对第一数据向主机装置10请求一致处理)以将数据存储在加速器存储器290中(步骤S18)。此时,可通过CXL.cache协议执行一致处理。一致处理可由主机装置10侧的一致相关组件和一致性引擎220执行,并且在一致性引擎220从自主机装置10确认一致处理完成之后,第一数据可通过加速器存储器控制器240被存储在加速器存储器290中(步骤S19)。
加速器电路200读取存储在加速器存储器290中的第一数据作为后续操作,并且执行计算(步骤S20)。在这种情况下,计算可基于包括在计算信息中的计算的类型。加速器电路200与主机装置10执行一致处理(或针对通过执行计算生成的第二数据向主机装置10请求一致处理),以将通过执行计算生成的第二数据存储在加速器存储器290中(步骤S21)。此时,可通过CXL.cache协议执行一致处理。当一致性引擎220从主机装置10确认一致处理的完成时,加速器存储器控制器240将第二数据存储在加速器存储器290中(步骤S22)。
当根据计算命令CMD1的一个或多个操作中的全部被完成时,加速器电路200(例如,加速器电路200的计算模块)通过智能接口100向主机装置10发送完成消息(步骤S23)。在这种情况下,完成消息可包括第二数据或基于第二数据设置的值。此后,主机装置10接收完成消息(步骤S25)。
以上描述的实施例假设加速计算使用存储在存储装置390中的数据而被执行的情况,但是本公开的实施例不限于此,并且加速计算可基于加速器存储器290或主机装置10的主机存储器12的初始数据而被执行。在这种情况下,与主机装置10共享加速计算结果可如步骤S19至步骤S25中那样被执行,但是步骤S13至步骤S17可根据将被读取的初始数据的位置不被执行。
同时,参照图6,当主机装置10发送命令CMD2(步骤S30)时,智能存储装置1000检查哪个组件针对智能接口100,并且选择并发送对应组件的协议(步骤S31)。例如,当主机装置10请求数据访问时,智能接口100通过CXL.io协议连接到存储控制器300。
当存储控制器300从主机装置10接收到命令CMD2时,调度器310根据预设策略确定操作顺序。控制单元320和非易失性存储器控制器340根据由调度器310确定的次序执行数据访问操作(步骤S32)。
存储控制器300向主机装置10发送步骤S32的执行结果(步骤S33)。例如,当命令CMD2是数据读取请求时,读取数据被发送到主机装置10,并且当命令CMD2是数据写入请求或删除请求时,执行完成被发送到主机装置10。主机装置10通过存储控制器300和CXL.io协议接收执行结果(步骤S34)。
图7是示出根据一些实施例的图1的智能存储装置的框图。图8是示出根据一些实施例的图1的智能接口的框图。
参照图7和图8,智能存储装置1000可在智能接口100将从主机装置10接收的信号转换为CXL.mem协议、CXL.io协议或CXL.cache协议的信号,并且可向组件200、300和400中的每个发送信号。
智能接口100可包括用于与主机装置10进行通信的多个层。每个层可基于预设定义来解释(interpret)发送和接收的电信号,并且可将该信号转换为用于操作智能存储装置1000中的组件(例如,200、300和400)中的每个的信号。
智能接口100可包括物理层110、仲裁器120、链路层130和事务层140,并且每个配置将被称为基于CXL接口标准进行操作。另外,智能接口100还可包括各种其它通信层。
物理层110解释发送到主机装置10的电信号(TX)或从主机装置10接收的电信号(RX)。仲裁器120可进行复用以决定使用哪个子协议来发送从物理层110输出的信号。例如,对于加速器电路200,信号被输出到CXL.cache或CXL.mem链路层131,并且对于存储器装置490、存储装置390或使用PCI接口的异构装置,信号被输出到CXL.io链路层132或PCIe链路层133。
事务层140通过与每个协议对应的事务层141、142和143接收通过CXL.cache或CXL.mem链路层131、CXL.io链路层132或PCIe链路层133发送的信号,并且生成输出。
智能接口100包括直接连接CXL.mem协议和CXL.io协议的内部连接IPath2,并且内部连接IPath2直接连接存储器控制器400与存储控制器300之间的数据访问。根据一些实施例,CXL.cache或CXL.mem链路层131和CXL.io链路层132可通过内部连接IPath2彼此直接连接。
根据一些实施例,存储控制器300可通过智能接口100的CXL.io协议连接到主机装置10。
例如,存储器控制器400可通过CXL.mem协议或CXL.io协议连接,存储控制器300可通过CXL.io协议连接。
根据一些实施例,智能存储装置1000还可包括用于组件200、300和400之间的更高效的数据访问的路由器500、存储器协议处理器(memory protocol handler)700和存储协议处理器(storage protocol handler)600。
路由器500可连接到CXL.io事务层142,并且可将从事务层接收的信号路由到存储器控制器400或存储控制器300。根据一些实施例,路由器500可被设置在智能接口100内,并且根据一些实施例,路由器500可相对于智能接口100、存储控制器300和存储器控制器400中的每个被单独设置并实现。
存储器协议处理器700可连接在事务层141和路由器500与存储器控制器400之间,可接收对存储器装置490的数据访问请求并将数据访问请求传送到存储器控制器400,并且可将来自存储器控制器400的请求结果返回到事务层141或路由器500。根据一些实施例,存储器协议处理器700可被设置在智能接口100内,根据一些实施例,存储器协议处理器700可相对于存储器控制器400被单独设置并实现,并且根据一些实施例,存储器协议处理器700可被设置在存储器控制器400内。
存储协议处理器600可连接在路由器500与存储控制器300之间,可接收对存储装置390的数据访问请求并将数据访问请求传送到存储控制器300,并且可将请求结果返回到事务层142。根据一些实施例,存储协议处理器600可被设置在智能接口100内,根据一些实施例,存储协议处理器600可相对于存储控制器300被单独设置并实现,并且根据一些实施例,存储协议处理器600可被设置在存储控制器300内。
当从路由器500接收到数据访问命令(或访问命令)时,存储协议处理器600对访问命令进行解析以检查请求的数据的地址。在这种情况下,访问命令可包括操作类型、数据地址或数据。
当通过访问命令解析的数据的地址是存储装置390的地址时,存储协议处理器600将访问命令传送到存储控制器300。
当通过访问命令解析的数据的地址是存储器装置490的地址时,存储协议处理器600通过内部连接IPath2将访问命令传送到存储器协议处理器700。存储器控制器400可基于通过存储器协议处理器700传送的访问命令对存储器装置490执行数据访问操作,并且向存储协议处理器600通知执行结果。当与解析后的访问命令对应的执行操作被完成时,存储协议处理器600可通过智能接口100向主机装置10通知执行完成。
存储控制器300和非易失性存储器装置390的描述与图2的描述重叠,因此在各种元件的描述被省略的程度上,可假设那些元件至少类似于在本公开内的其它地方描述的对应元件。
存储器控制器400可控制存储器装置490的操作。例如,控制可被执行,使得存储在存储器装置490中的计算数据可被读取或删除,或者新的计算数据可被写入。
根据一些实施例,存储器装置490可以是易失性存储器(诸如,动态RAM(DRAM)、静态RAM(SRAM)或同步动态RAM(SDRAM)),或者根据一些实施例,存储器装置490可以是非易失性存储器中的至少一种。非易失性存储器可被实现为例如一次性可编程ROM(OTPROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、掩模ROM、闪存ROM、闪存(例如,NAND闪存或NOR闪存等)、硬盘驱动器和固态驱动器(SSD)中的至少一个。可选地,非易失性存储器可以以诸如存储器卡(例如,紧凑型闪存(CF)、安全数字(SD)、微型安全数字(Micro-SD))、迷你安全数字(Mini-SD)、极限数字(xD)、多媒体卡(MMC)等)或可连接到USB端口的外部存储器(例如,USB存储器)的形式来实现。
存储器装置490可以是例如智能存储装置1000的工作存储器。存储器装置490可根据存储数据的目的以嵌入式存储器的形式实现,或者可以以可移除的存储器的形式实现。例如,用于驱动智能存储装置1000的数据可被存储在嵌入智能存储装置1000中的存储器中,并且用于智能存储装置1000的扩展功能的数据可被存储在智能存储装置1000中可移除的存储器中。
图9至图11是示出图7的智能存储装置的操作方法的流程图。
参照图9,当主机装置10发送命令(步骤S100)时,智能接口100基于命令将被发送的目标来检查协议(步骤S101)。
当该命令用于存储装置390时,CXL.io协议被选择(步骤S102中的“是”),并且存储协议处理器对该命令进行解析(步骤S110)。存储协议处理器600从解析后的命令检查将被请求的数据的地址信息(步骤S111),并且当地址信息(存储ID)属于存储装置390时,数据访问命令CMD1被发送到存储控制器300。
存储控制器300基于数据访问命令CMD1(步骤S112)基于地址信息读取第一数据(步骤S113),并且向存储协议处理器600发送第一数据。
另一方面,当基于解析后的命令不存在将被执行的附加操作时(步骤S114),存储协议处理器600通过发送(步骤S119)由主机10接收(步骤S120)的完成消息来向主机装置10通知执行完成。
另一方面,当基于解析后的命令需要将第一数据写入存储器装置490时(图9中的步骤S114),存储协议处理器600通过内部连接IPath2将数据访问命令CMD2和第一数据传送到存储器协议处理器700。存储器协议处理器700接收数据访问命令CMD2和第一数据(步骤S115),并且向存储器控制器400请求对存储器装置490的数据访问(步骤S116)。
存储器控制器400根据数据访问命令CMD2将第二数据写入存储器装置490(步骤S117),并且向存储器协议处理器700发送访问完成消息。存储器协议处理器700向存储协议处理器600通知执行完成(步骤S118),存储协议处理器600最终向主机装置10通知执行完成(步骤S119、步骤S120)。
另一方面,如图10中所示,存储控制器300从存储协议处理器600接收数据访问命令CMD2(S130),并且生成对数据的请求(步骤S131)。当基于解析后的命令需要从存储器装置490读取第三数据时(图10中的步骤S114),存储协议处理器600通过内部连接IPath2将数据访问命令CMD3传送到存储器协议处理器700。存储器协议处理器700接收数据访问命令CMD3(步骤S133),并且向存储器控制器400请求对存储器装置490的数据访问(步骤S134)。
存储器控制器400从存储器装置490读取第三数据(步骤S135)。根据一些实施例,存储控制器300将通过内部连接IPath2接收的第三数据写入存储装置390(步骤S136),并且向存储协议处理器600发送完成消息。存储协议处理器600最终向主机装置10通知执行完成(步骤S137),主机装置10可接收完成消息(S138)。
在图11中,当由智能接口100检查的协议是CXL.mem协议时(步骤S102),从主机装置10发送的命令CMD被发送到存储器协议处理器700(步骤S140)。存储器协议处理器700根据命令CMD4向存储器控制器400发送访问请求(步骤S141),存储器控制器400执行与对存储器装置490的请求对应的操作(步骤S142),随后向存储器协议处理器700通知执行结果。存储器协议处理器700将执行结果(或完成消息)传送到主机装置10(步骤S143),并且主机10接收执行结果(或完成消息)(步骤S144)。
以上描述的智能存储装置1000可通过单个智能接口允许主机装置10将智能存储装置1000的组件之中的至少两个组件(例如,加速器电路、存储装置和存储器装置)视为单独的装置或单个装置。因此,主机装置10必须进行干预来传送数据的延迟开销可被减小,并且由于组件之间的物理连接被设置,因此用于保持数据一致的软件开销可被减小。
Claims (20)
1.一种智能存储装置,包括:
智能接口,连接到主机装置;
加速器电路,通过符合计算快速链路CXL.cache协议和/或CXL.mem协议的数据总线连接到智能接口,并且被配置为响应于主机装置的计算命令而执行加速计算;以及
存储控制器,通过符合CXL.io协议的数据总线连接到智能接口,并且被配置为响应于主机装置的数据访问命令而控制针对存储装置的数据访问操作,
其中,加速器电路能够通过直接连接到存储控制器的内部总线直接访问存储装置。
2.根据权利要求1所述的智能存储装置,其中,加速器电路包括:
命令解码器电路,被配置为通过对计算命令进行解码来提取计算信息;
计算模块,被配置为响应于解码后的计算命令而执行加速计算;
加速器存储器控制器电路,被配置为:将通过计算模块的操作生成的计算数据写入加速器存储器装置,或者从加速器存储器装置读取通过计算模块的操作生成的计算数据;
直接存储器存取引擎,连接到存储控制器以直接访问存储装置;以及
一致性引擎,被配置为保持存储在加速器存储器装置中的计算数据与存储在主机装置中的数据之间的一致性。
3.根据权利要求1所述的智能存储装置,其中,存储控制器包括:
调度器电路,被配置为:接收来自主机装置的第一访问请求和来自加速器电路的第二访问请求,并且根据预设策略调度用于处理第一访问请求和第二访问请求的操作的顺序;以及
控制单元电路,被配置为控制将数据写入存储装置或者从存储装置读取数据。
4.根据权利要求2所述的智能存储装置,其中,直接存储器存取引擎通过基于计算信息向存储控制器请求数据访问,来接收数据,
一致性引擎向主机装置请求对接收的数据的一致处理,并且
加速器存储器控制器电路将接收的数据存储在加速器存储器装置中。
5.根据权利要求2所述的智能存储装置,其中,
加速器存储器控制器电路读取存储在加速器存储器装置中的第一计算数据,
计算模块通过对第一计算数据执行加速计算来生成第二计算数据,并且
一致性引擎针对第二计算数据向主机装置请求一致处理。
6.根据权利要求5所述的智能存储装置,其中,当一致处理被完成时,加速器存储器控制器电路将第二计算数据写入加速器存储器装置,并且
计算模块向主机装置通知计算命令的完成。
7.一种智能存储装置,包括:
智能接口,连接到主机装置;
存储器控制器电路,通过符合计算快速链路CXL.io协议和/或CXL.mem协议的数据总线连接到智能接口,并且被配置为控制针对存储器装置的第一访问操作;以及
存储控制器,通过符合CXL.io协议的数据总线连接到智能接口,并且被配置为控制针对存储装置的第二访问操作,
其中,智能接口包括内部连接,内部连接直接连接符合CXL.mem协议和CXL.io协议的数据总线,以直接访问存储器控制器电路和存储控制器。
8.根据权利要求7所述的智能存储装置,还包括:
路由器,连接到符合CXL.io协议的数据总线;
存储器协议处理器,连接到路由器和符合CXL.mem协议的数据总线,以将用于第一访问操作的请求发送和返回到存储器控制器电路;以及
存储协议处理器,连接到路由器,以发送和返回用于第二访问操作的请求。
9.根据权利要求8所述的智能存储装置,其中,存储协议处理器对从主机装置接收的访问命令进行解析,并且检查请求的数据的地址。
10.根据权利要求9所述的智能存储装置,其中,当请求的数据的地址是存储器装置的地址时,存储协议处理器通过内部连接将访问命令传送到存储器协议处理器。
11.根据权利要求10所述的智能存储装置,其中,当请求的数据通过向存储器控制器电路发送传送的访问命令而被访问时,存储器协议处理器向存储协议处理器通知访问命令的执行完成。
12.根据权利要求8至权利要求11中的任意一项所述的智能存储装置,其中,智能接口包括路由器、存储器协议处理器和存储协议处理器。
13.一种智能存储装置,包括:
智能接口,连接到主机装置;
加速器电路,通过符合计算快速链路CXL.cache协议和/或CXL.mem协议的数据总线连接到智能接口,并且被配置为响应于主机装置的计算命令而执行加速计算;
存储控制器,通过符合CXL.io协议的数据总线连接到智能接口,并且被配置为响应于主机装置的数据访问命令而控制针对存储装置的数据访问操作;以及
存储器控制器电路,通过符合CXL.io协议和/或CXL.mem协议的数据总线连接到智能接口,并且被配置为控制针对存储器装置的第二访问操作,
其中,存储控制器能够直接访问加速器电路和存储器控制器电路。
14.根据权利要求13所述的智能存储装置,其中,加速器电路包括直接存储器存取引擎,直接存储器存取引擎通过内部连接总线连接到存储控制器以直接访问存储装置,并且
存储控制器包括调度器,调度器被配置为:针对通过内部连接总线接收的直接存储器存取引擎的请求和通过符合CXL.io协议的数据总线接收的主机装置的请求,根据预设策略调度用于处理直接存储器存取引擎的请求和主机装置的请求的操作的顺序。
15.根据权利要求14所述的智能存储装置,其中,加速器电路还包括:
命令解码器电路,被配置为通过对计算命令进行解码来提取计算信息;
计算模块,被配置为响应于解码后的计算命令而执行加速计算;
加速器存储器控制器电路,被配置为:将通过计算模块的操作生成的计算数据写入加速器存储器装置,或者从加速器存储器装置读取通过计算模块的操作生成的计算数据;以及
一致性引擎,被配置为保持存储在加速器存储器装置中的计算数据与存储在主机装置中的数据之间的一致性。
16.根据权利要求15所述的智能存储装置,其中,加速器电路基于计算信息向存储控制器请求第三访问,
请求对通过第三访问接收的第一数据的一致处理,并且
当一致处理完成时,将第一数据存储在加速器存储器装置中。
17.根据权利要求13至权利要求16中的任意一项所述的智能存储装置,其中,智能接口包括直接连接符合CXL.mem协议和CXL.io协议的数据总线的内部连接。
18.根据权利要求17所述的智能存储装置,还包括:协议处理器,被配置为:对从主机装置接收的命令进行解析,当包括在所述命令中的地址属于存储装置时,向存储控制器发送所述命令,并且当所述地址属于存储器装置时,通过内部连接向存储器控制器电路发送所述命令。
19.根据权利要求18所述的智能存储装置,其中,协议处理器包括:
存储协议处理器,连接在存储控制器与智能接口之间;以及
存储器协议处理器,连接在存储器控制器电路与智能接口之间,
其中,存储器协议处理器分别通过符合CXL.io协议的数据总线和符合CXL.mem协议的数据总线连接到智能接口。
20.根据权利要求19所述的智能存储装置,其中,存储器控制器电路响应于发送的命令而执行第二访问操作,并且向存储协议处理器通知执行结果。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20200126199 | 2020-09-28 | ||
KR10-2020-0126199 | 2020-09-28 | ||
KR10-2021-0007897 | 2021-01-20 | ||
KR1020210007897A KR20220042991A (ko) | 2020-09-28 | 2021-01-20 | 스마트 스토리지 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114328306A true CN114328306A (zh) | 2022-04-12 |
Family
ID=80624245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111144318.3A Pending CN114328306A (zh) | 2020-09-28 | 2021-09-28 | 智能存储装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220100669A1 (zh) |
CN (1) | CN114328306A (zh) |
DE (1) | DE102021121105A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112466A (zh) * | 2023-10-25 | 2023-11-24 | 浪潮(北京)电子信息产业有限公司 | 一种数据处理方法、装置、设备、存储介质及分布式集群 |
CN117493237A (zh) * | 2023-12-29 | 2024-02-02 | 苏州元脑智能科技有限公司 | 计算设备、服务器、数据处理方法和存储介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230297520A1 (en) * | 2022-03-21 | 2023-09-21 | Micron Technology, Inc. | Compute express link memory and storage module |
US20230384960A1 (en) * | 2022-05-31 | 2023-11-30 | Samsung Electronics Co., Ltd. | Storage system and operation method therefor |
US20240193085A1 (en) * | 2022-12-12 | 2024-06-13 | Micron Technology, Inc. | Data Storage Device with Memory Services based on Storage Capacity |
US20240289270A1 (en) * | 2023-02-27 | 2024-08-29 | Micron Technology, Inc. | Data Storage Devices with File System Managers |
CN116880773B (zh) * | 2023-09-05 | 2023-11-17 | 苏州浪潮智能科技有限公司 | 一种内存扩展装置及数据处理方法、系统 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2503412B1 (fr) * | 1981-04-03 | 1986-10-31 | Cit Alcatel | Dispositif de commande multiprocesseur |
US9389805B2 (en) * | 2011-08-09 | 2016-07-12 | Seagate Technology Llc | I/O device and computing host interoperation |
DE112013007751B3 (de) * | 2012-10-22 | 2023-01-12 | Intel Corporation | Hochleistungs-Zusammenschaltungs-Bitübertragungsschicht |
US11194753B2 (en) * | 2017-09-01 | 2021-12-07 | Intel Corporation | Platform interface layer and protocol for accelerators |
US11509606B2 (en) * | 2018-06-29 | 2022-11-22 | Intel Corporation | Offload of storage node scale-out management to a smart network interface controller |
US12117956B2 (en) * | 2019-03-04 | 2024-10-15 | Intel Corporation | Writes to multiple memory destinations |
US10698842B1 (en) * | 2019-04-10 | 2020-06-30 | Xilinx, Inc. | Domain assist processor-peer for coherent acceleration |
WO2020236283A1 (en) * | 2019-05-23 | 2020-11-26 | Cray Inc. | System and method for dynamic allocation of reduction engines |
US20210042228A1 (en) * | 2019-07-17 | 2021-02-11 | Intel Corporation | Controller for locking of selected cache regions |
US11036650B2 (en) * | 2019-09-19 | 2021-06-15 | Intel Corporation | System, apparatus and method for processing remote direct memory access operations with a device-attached memory |
US11740958B2 (en) * | 2019-11-27 | 2023-08-29 | Intel Corporation | Multi-protocol support on common physical layer |
US20210373951A1 (en) * | 2020-05-28 | 2021-12-02 | Samsung Electronics Co., Ltd. | Systems and methods for composable coherent devices |
US20210014324A1 (en) * | 2020-09-24 | 2021-01-14 | Intel Corporation | Cache and memory content management |
US12066939B2 (en) * | 2020-10-30 | 2024-08-20 | Intel Corporation | Cache line demote infrastructure for multi-processor pipelines |
-
2021
- 2021-08-13 DE DE102021121105.0A patent/DE102021121105A1/de active Pending
- 2021-08-16 US US17/403,862 patent/US20220100669A1/en active Pending
- 2021-09-28 CN CN202111144318.3A patent/CN114328306A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112466A (zh) * | 2023-10-25 | 2023-11-24 | 浪潮(北京)电子信息产业有限公司 | 一种数据处理方法、装置、设备、存储介质及分布式集群 |
CN117112466B (zh) * | 2023-10-25 | 2024-02-09 | 浪潮(北京)电子信息产业有限公司 | 一种数据处理方法、装置、设备、存储介质及分布式集群 |
CN117493237A (zh) * | 2023-12-29 | 2024-02-02 | 苏州元脑智能科技有限公司 | 计算设备、服务器、数据处理方法和存储介质 |
CN117493237B (zh) * | 2023-12-29 | 2024-04-09 | 苏州元脑智能科技有限公司 | 计算设备、服务器、数据处理方法和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20220100669A1 (en) | 2022-03-31 |
DE102021121105A1 (de) | 2022-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114328306A (zh) | 智能存储装置 | |
US9749413B2 (en) | Peer-to-peer interrupt signaling between devices coupled via interconnects | |
CN112783818B (zh) | 一种多核嵌入式系统的在线升级方法及系统 | |
US8055805B2 (en) | Opportunistic improvement of MMIO request handling based on target reporting of space requirements | |
KR102365312B1 (ko) | 스토리지 컨트롤러, 연산 스토리지 장치, 및 연산 스토리지 장치의 동작 방법 | |
US10540303B2 (en) | Module based data transfer | |
US20220114098A1 (en) | System, apparatus and methods for performing shared memory operations | |
CN109564562B (zh) | 大数据运算加速系统和芯片 | |
US20230229357A1 (en) | Storage controller, computational storage device, and operational method of computational storage device | |
US20140258643A1 (en) | Method and system for maintaining release consistency in shared memory programming | |
US11231927B2 (en) | System, apparatus and method for providing a fabric for an accelerator | |
EP4290380A1 (en) | Method and system for accelerating application performance in solid state drive | |
US20130007768A1 (en) | Atomic operations on multi-socket platforms | |
KR20220042991A (ko) | 스마트 스토리지 장치 | |
WO2013141871A1 (en) | Application-reserved cache for direct i/o | |
CN111427817A (zh) | 一种amp系统双核共用i2c接口的方法、存储介质及智能终端 | |
US20220147458A1 (en) | Semiconductor device | |
EP4357928A1 (en) | Methods and system for efficient access to solid state drive | |
US12019581B2 (en) | Multi-core processor and storage device | |
US20240281402A1 (en) | Computing systems having congestion monitors therein and methods of controlling operation of same | |
KR20230138777A (ko) | 데이터 재구성가능한 스토리지 장치, 전자 시스템 및 그 동작방법 | |
KR20080035873A (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 |