CN116486868A - 计算高速链路(CXL)上的高速非易失性存储器(NVMe) - Google Patents
计算高速链路(CXL)上的高速非易失性存储器(NVMe) Download PDFInfo
- Publication number
- CN116486868A CN116486868A CN202310046008.0A CN202310046008A CN116486868A CN 116486868 A CN116486868 A CN 116486868A CN 202310046008 A CN202310046008 A CN 202310046008A CN 116486868 A CN116486868 A CN 116486868A
- Authority
- CN
- China
- Prior art keywords
- memory
- request
- cxl
- nvme
- dram
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 188
- 239000007787 solid Substances 0.000 claims abstract description 5
- 238000013500 data storage Methods 0.000 claims abstract 6
- 238000000034 method Methods 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 15
- 230000005055 memory storage Effects 0.000 claims description 7
- 208000000283 familial pityriasis rubra pilaris Diseases 0.000 description 14
- 238000010586 diagram Methods 0.000 description 5
- 239000000284 extract Substances 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4093—Input/output [I/O] data interface arrangements, e.g. data buffers
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4096—Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
一种用于与主机系统一起使用的存储卡组合以下两者:(i)例如固态硬盘SSD等高速非易失性存储器NVMe数据存储装置,及(ii)符合计算机高速链路CXL协议的动态随机存取存储器DRAM。所述SSD和CXL DRAM共享共同的控制器。根据所述CXL.io协议处理来自所述主机系统的CXL存储器请求。将NVMe数据请求封装到CXL请求包中。共同前端识别所述CXL包内的所述NVMe数据请求,解析所述NVMe数据请求,且将所述请求路由到所述NVMe存储器。主机操作系统软件驱动器拦截所述NVMe存储器请求且将其封装到所述CXL请求包中。
Description
相关申请的交叉参考
本申请要求2022年1月22日提交的标题为“计算高速链路(CXL).IO上的高速非易失性存储器(NVME)(NON-VOLATILE MEMORY EXPRESS(NVME)OVER COMPUTE EXPRESS LINK(CXL).IO)”的第63/302,047号美国临时专利申请的权益,该美国临时专利申请的公开内容全文以引用的方式并入本文中。
技术领域
本公开大体上涉及用于存储器的一或多个系统。本公开更具体地说涉及经由共同存储器控制器管理针对可使用不同存储器管理协议的不同种类的存储器存储装置的存储器读取和存储器写入。
背景技术
存储器装置(也被称作“存储器媒体装置”)广泛用于将信息存储在例如计算机、用户装置、无线通信装置、相机、数字显示器等各种电子装置中。通过将存储器装置内的存储器单元编程为各种状态来存储信息。举例来说,二进制存储器单元可编程到常常对应于逻辑1或逻辑0的两个支持状态中的一个。在一些实例中,单个存储器单元可支持两个以上可能的状态,所述状态中的任一个可由存储器单元存储。为了存取由存储器装置存储的信息,组件可读取或感测存储器装置内的一或多个存储器单元的状态。为了存储信息,组件可将存储器装置内的一或多个存储器单元写入或编程到相应状态。
专用集成电路(ASIC)可经设计并用于计算机、蜂窝电话和其它数字系统及控制系统中的许多不同目的。举例来说,ASIC可调节计算机的中央处理单元(CPU)或蜂窝电话的微处理器对动态随机存取存储器(DRAM)的存取。作为第二实例,第一快闪存储器控制器ASIC可调节对例如可在固态硬盘中使用的快闪存储器的读取和写入操作。作为另一实例,第二计算机高速链路(CXL)ASIC可充当控制器以调节动态存储器并且还根据最近出现的硬件标准集成不同数字存储器电路。
计算机、蜂窝电话或其它数字/控制系统可将多个服务请求发布到ASIC,包含例如存储器读取/写入请求、服务中断,或对ASIC的其它形式的服务请求(例如,针对ASIC输入/输出(I/O)活动的中断驱动的请求)。在常规存储器和存储器控制器中,需要通过为动态存储器存储和非易失性存储器存储两者使用单个共同的控制器来降低成本。确切地说,需要用于CXL DRAM存储器和例如固态硬盘中使用的“与非”(NAND)快闪基存储系统的单个共同的控制器。
发明内容
附图说明
本公开的实施例的有利设计来自于独立权利要求项和附属权利要求项、描述内容和图式。在下文中,借助于附图详细解释本公开的实施例的优选实例。并入本文中并且形成本说明书的部分的图式示出本公开,并且与描述内容一起进一步用以阐释本公开的原理并且使相关领域的技术人员能够制造和使用本公开。
图1示出根据传统配置和方法的计算机系统的示例性配置。
图2示出根据当前实施例的计算机系统的示例性配置。
图3呈现表,其列出可包含在CXL.io包中的示例性CXL装置命令操作码。
图4A呈现根据当前实施例用于经由CXL.io协议处理NVMe存储器命令的系统图。
图4B呈现根据当前实施例用于经由CXL.io协议处理NVMe存储器命令的组合数据流图示和流程图。
图5呈现根据当前实施例用于经由CXL.io协议处理NVMe存储器命令的组合数据流图示和流程图。
图6呈现根据当前实施例用于经由CXL.io协议处理CXL存储器命令的组合数据流图示和流程图。
本文中,说明性实施例可采取各种组件和组件布置的形式。说明性实施例展示于附图中,在整个附图中,相同的参考标号可指示各图中的相应或类似的零件。图式仅用于示出实施例的目的并且不应被解释为限制本公开。鉴于图式的以下启发性描述,本公开的新颖方面对于相关领域的一般技术人员来说将变得显而易见。
具体实施方式
CXL是用于计算机系统100、102(请参见图1、2)中的处理器、存储器和存储器扩展的开放标准高速缓存相干互连。CXL技术维持主机系统110存储器空间与例如固态硬盘(SSD)120或CXL DRAM 125等所附接装置上的存储器之间的存储器相干性。主机系统110通常除CXL ASIC外还具有其自身的处理器和其它动态随机存取存储器。
图1示出根据传统配置和方法的计算机系统100的示例性配置。除主机110外,系统100还可包含通信总线,例如外围组件互连高速(PCIe)总线115。
主机110是数据写入命令430(见图4)和数据读取请求530(见图5)的来源。在系统100中,PCIe总线115维持到例如SSD 120和CXL DRAM 125等单独的存储器装置的单独的物理数据路径116、117。因此,存储器请求(读取/写入)被载送进出用于SSD 120的第一存储器控制器122和用于CXL DRAM 125的第二存储器控制器127。传统架构使用NVME协议与基于NVME的SSD 120通信,且使用基于CXL的协议与基于CXL的CXL DRAM装置125通信。
如紧接在下文所论述,当前实施例为存储器装置采用共同前端205(见图2),其将基于CXL.io协议接受NVME。存储器模块的共同共享前端205与命令路由器212耦合以确定所接收的存储器请求包载送CXL.io存储器请求还是NVMe存储器请求。命令路由器212接着将存储器请求路由到适当的存储装置。这紧接在下文进一步论述。
图2示出根据当前实施例的计算机系统102的示例性配置。在示例性计算机系统102中,主机110采用PCIe总线115来连接到单单元双类型存储器(single-unit,dual typememory,SUDTM)装置200。SUDTM装置200具有(板载)NAND快闪存储器基存储装置,其可例如为NVMe SSD 220(类似于系统100的SSD 120)。SUDTM装置200还可包含双数据速率(DDR)CXLDRAM装置225(例如,类型2CXL DRAM),其功能上类似于计算机系统100的CXL DRAM 125。在替代实施例中,SUDTM装置200可以是具有三个或更多个类型的存储装置的多类型存储器装置。
SUDTM装置200具有包含共同前端205和命令路由器212的单个共享装置控制器203。共同前端205经由PCIe总线115以通信方式将SUDTM装置200与主机110链接。前端205被配置成经由PCIe总线115从主机110接收CXL.io包435(见图4)。如下文进一步论述,CXL.io包435可含有CXL读取/写入命令。来自主机110的CXL.io包435还可包含NVMe写入命令430和/或NVMe读取命令530。以此方式,当前系统的实施例采用CXL.io包435作为共享数据媒介来处理针对例如NVMe SSD 220等NAND快闪存储装置以及针对CXL DRAM装置225两者的读取/写入。
装置控制器203的命令路由器212为被配置成将CXL写入/读取命令路由到CXLDRAM装置225的硬件装置或软件/固件。命令路由器212还被配置成将NVMe写入/读取命令430、530路由到NVMe SSD 220。
在示例性SUDTM装置200上,例如NVMe SSD 220等基于快闪的存储装置可具有其自身的存储器控制器122。类似地,CXL DRAM装置225可具有其自身的相应存储器控制器127。然而,这些控制器将与共享的命令路由器212介接,借此减小主机110、主机CPU(图中未图示)和PCIe总线115上的管理负担。
图3呈现表1,其列出可包含在CXL.io包中的示例性CXL装置命令操作码310。第一命令集312是所建立的CXL.io协议的一部分,且既定载送CXL数据读取和数据写入命令,以及其它种类的命令。
表1还反映根据实施例的额外示例性命令操作码315。这些额外操作码315是CXL规范的扩展,且表示可包含NVMe读取/写入命令530/430作为输入有效负载的操作码。作为存储器读取/写入操作的一部分,命令路由器212被配置成从NVMe读取/写入命令集315识别和区分CXL数据读取/写入命令312。当此些命令经识别和区分时,命令路由器212被配置成按需要将读取/写入命令路由到NVMe SSD 220或CXL DRAM装置225。
图4A呈现根据当前实施例用于经由CXL.io协议处理NVMe存储器命令的系统图。图4包含类似于图2的计算机系统102的示例性计算机系统400。
计算机系统400包含上文所论述的主机110。主机110包含CXL上NVMe(NVMe-over-CXL,NoC)驱动器405(例如,加载到计算机操作系统的驱动器层中的软件驱动器)。NoC驱动器405可以机器层级代码、字节代码、固件,或能够指示处理器执行本文中所描述的操作的类似代码的形式而存储。
主机110可经由总线407联接到示例性系统DRAM 410。借助于实例,总线407可以是PCIe总线。在一实施例中,主机110可初始地将用于NoC驱动器405的软件加载到DRAM 410中,作为从例如NVMe SSD 220等基于快闪的存储装置加载操作系统的一部分。在实施例中,DRAM 410可留出或预留内存用于提交队列(SQ)415和完成队列(CQ)420。
SQ 415是具有固定时隙大小的循环缓冲器,主机软件用其提交存储器命令(例如,门铃命令)以供由装置控制器203执行。装置控制器203的前端205依次从SQ 415提取SQ条目。装置控制器203可按任何次序执行那些命令。每一SQ条目可以是CXL命令,例如大小为64字节。
使用物理区页(PRP)条目422指定用于数据传递的主机410的存储器中的物理存储器位置。每一门铃命令可包含两个PRP条目422。如果必需两个以上PRP条目422来描述数据缓冲器,则可提供到PRP列表445(描述PRP条目的列表)的指针。
CQ 420是用于发布完成的存储器命令的状态的循环缓冲器。SQ 415可临时存储针对NVMe SSD 220的NVMe读取/写入命令目标的列表。CQ 420用于存储已经成功地存储在SUDTM装置200中或从SUDTM装置200读取的NVMe写入块430的记录。如下文进一步论述,装置控制器203从SQ 415检索存储器命令且将完成指示存储在CQ 420中。
计算机系统400包含上文已经论述的SUDTM装置200(见图2)。依据图2,SUDTM装置200具有装置控制器203,其包含命令前端205和命令路由器212两者。SUDTM装置200还具有例如NVMe SSD 220等基于快闪的存储装置,其在实施例中可以是NAND快闪基存储装置。SUDTM装置200还具有CXL DRAM装置225,其在实施例中可充当扩展存储器或主机-存储器映射。
主机110可经由例如示例性CXL链路(PCIe Gen 5)数据总线403等数据总线以通信方式链接到SUDTM装置200。主机110还可经由数据总线407以通信方式链接到系统DRAM410。
在系统DRAM 410或CXL DRAM装置225中的任一个中,在执行NVMe写入命令430之前,与NVMe写入命令430相关联的数据将已经存储在系统DRAM 410或CXL DRAM装置225中的任一个中的物理区页(PRP)422中。
PRP列表445列出DRAM 410和CXL DRAM装置225中的存储数据的页。数据可分布在DRAM 410和CXL DRAM装置225的扩展及主机映射存储器两者上。NVMe写入命令430(下文进一步论述)提供用于将物理区页中的数据传递到例如示例性NVMe SSD 220等非易失性NAND快闪存储装置的指令。实施例采用CXL.io包435将封装的NVMe写入命令440传达或“渡运”到装置控制器203。
图4B相对于方法470示出如图4A的计算机系统400。方法470采用一系列示例性数据处理和数据传递步骤来经由CXL.io包435处理NVMe写入请求430。
在框480中,主机110生成NVMe写入命令430。在框482处,NoC驱动器405将NVMe写入命令430封装到数据字段-参数中,或CXL.io包435的其它数据区段中。NVMe写入命令430包含写入到NVMe SSD 220的所述系列的PRP 422的PRP列表445。在框484中,NoC驱动器405将CXL.io包435及封装的NVMe写入命令430置于SQ 415中。
在框486中,CXL.io包435-及封装的NVMe写入命令430-被传递到SUDTM装置200的装置控制器203。装置控制器203包含命令路由器212,所述命令路由器包含数字逻辑以解析CXL.io包435且识别NVMe写入命令430嵌入于包435中。作为响应,命令路由器212确定与NVMe写入命令430相关联的数据必须去往例如示例性NVMe SSD220等NAND快闪存储装置。在一些实施例中,命令路由器被配置成通过确认指示存储器存取协议的存储器请求中的旗标的值来解析存储器请求。
如上所述,在执行NVMe写入命令430之前,将与NVMe写入命令430相关联的数据存储在系统DRAM 410或CXL DRAM装置225中的任一个中的物理区页422中。在下一框488中,命令路由器212提取NVMe写入命令430所需的PRP 422的PRP列表445。
在框490中,命令路由器212从(系统DRAM 422或CXL DRAM装置225中的任一个的)适当页442提取数据。在框492中,命令路由器212将数据写入到NVME SSD 220。在框494中,NVME SSD 220传回指示写入命令完成的状态465。在框496中,装置控制器203将信号发送到CQ 420以更新NVMe写入命令430,从而指示命令的完成。
在一些实施例中,装置控制器203是能够理解CXL.io包435可能具有嵌入的NVMe写入命令430的CXL控制器。装置控制器203还可提取到NVMe SSD 220的数据传递所需的PRP列表445。在替代实施例中,装置控制器203可确定并汇编PRP列表445(而非接收所述列表作为NVMe写入包430的一部分)。当装置控制器203接收常规CXL.io包时,嵌入的数据将直接发送到CXL DRAM装置225(见下文图6)。
图5示出与上文的图4A和4B相同的计算机系统400,但进一步示出方法570,所述方法采用一系列示例性数据处理和数据传递块来经由CXL.io包435处理NVMe读取请求530。
在第一框580中,主机110生成NVMe读取命令530。NVMe读取命令530包含待从例如示例性NVMe SSD 220等NAND快闪存储装置读取的一系列数据块522的数据块列表545。
在框582中,NoC驱动器405将NVMe读取命令530封装到数据字段-参数中,或CXL.io包435的其它数据区段中。在框584中,NoC驱动器405将CXL.io包435及封装的NVMe写入命令530置于SQ 415中。在框586中,将CXL.io包435及封装或嵌入的NVMe读取命令530传递到SUDTM装置200的装置控制器203。
装置控制器203包含命令路由器212,其具有解析CXL.io包435所必需的数字逻辑。在框588中,命令路由器212识别包含数据块列表545的包435中嵌入的NVMe读取命令530。基于所述确定,命令路由器212可确定,待从NVMe SSD 220的适当的数据块522读取与NVMe读取命令530相关联的数据。在一些实施例中,命令路由器被配置成通过确认指示存储器存取协议的存储器请求中的旗标的值来解析存储器请求。
在框590中,命令路由器212将读取命令530发布到NVMe SSD 220且因此读取数据块522。在框592中,命令路由器接收从NVMe SSD 220返回的读取状态。在框594中且取决于意图将数据写入到系统DRAM 410还是CXL DRAM装置225,将数据写入到适当的随机存取存储器的适当的PRP 422。在框596中,装置控制器203向CQ 420发送信号,即:应更新NVMe读取命令530的状态以指示命令的完成。
图6相对于用于处理CXL存储器读取和写入命令的方法670示出图4A、4B和5中描绘的计算机系统400。因为方法670反映已经确立的CXL存储器读取/写入协议,所以已经在图6中省略许多细节。
在方法670的第一框680中,主机生成存储器读取请求或存储器写入请求。在框682中,NoC驱动器405将读取请求或写入请求打包成标准CXL包格式682。在框684中,由装置控制器684检索合适的CXL.io包。在框686中,装置控制器203的命令路由器212确保CXL读取/写入命令由CXL DRAM装置225处理。
相应地,图6示出,当主机110发布CXL存储器读取命令或存储器写入命令时,实施例采用CXL的现有操作和协议来处理所述命令。
一起来看,图4B、5和6的方法470、570、670可理解为经由装置控制器203处理CXL读取/写入命令642、646和NVMe读取/写入命令430、530。方法670可根据经由例如NoC驱动器405等软件和例如装置控制器203等硬件实施的合适的计算机代码来执行。
方法670确定由主机系统110生成的存储器存取命令是待经由与主机系统耦合的非易失性(NV)存储器执行的用于存储器读取/写入操作的NVM命令430、440;还是CXL动态随机存取存储器命令642、644(用于存储器读取操作或存储器写入操作中的任一个)。
如果存储器存取为NVM命令,则主机110的NoC驱动器405将NVMe存储器命令结构430、530封装在CXL命令包435内。接着将CXL包435存储在与主机系统110相关联的SQ 415中。接着将CXL包435从SQ 415发送到包含例如示例性NVMe SSD 220等集成NAND快闪存储器存储装置的单单元双类型存储器装置200的装置控制器203。装置控制器203从CXL命令包435提取NVMe存储器命令430、530。装置控制器203接着将NVMe存储器命令430、530越区切换到NVMe SSD 220以供处理。
如果存储器存取为CXL命令,则NoC驱动器405根据CXL协议将读取或写入命令汇编在CXL.io包642、644中。包存储在SQ 415中,且由还包含集成类型2CXL DRAM225的单单元双类型存储器装置200的装置控制器203从该处接收。装置控制器203接着将CXL存储器命令642、644越区切换到CXL DRAM装置225以供处理。
在实施例中,NoC驱动器405通过扩展邮箱支持而工作。也就是说,NoC驱动器405可使用CXL.io邮箱协议发送NVMe包。NoC驱动器405中的额外NVMe命令315产生组合驱动器。如果主机110发布为NVMe的块存储命令,则主机110将经由作为CXL.mem协议的要素的门铃机制采用CXL接口。
当前实施例意图在可包含标准消费者/商业膝上型计算机或服务器的标准计算机系统中操作。所述实施例实现在CXL.io协议之上使用NVMe协议。相应地,NVMe SSD 220及CXL DRAM装置225可与装置控制器203一起合并在单个存储卡(例如,SUDTM装置200)上。此融合用于装置控制器203的前端架构,其可接着处理NVMe和CXL.io包两者。因此,装置控制器203可充当用于存储/检索DRAM和非易失性存储装置需求两者的单个资源。
此功能性类似于CXL.io协议中邮箱命令的处理。存储器装置控制器203可将NVMe包与CXL.io包进行区分。
实施例的一个显著优点是,主机110可在单个通用驱动器上获得额外DRAM和快闪存储。主机110可在主机偏置模式中利用SUDTM装置200上的存储器映射DRAM空间,且可在不需要时转交控制。当不需要额外DRAM空间时,系统可使用所述额外空间来增强用于去往快闪的突发写入的带宽。
因此,当前实施例与传统系统相比的优点(尤其)在于:(i)用于CXL DRAM装置225和快闪存储器基NVMe SSD 220两者的单个通用前端架构,(ii)能够将SUDTM装置200用作类型2主机偏置模式中的加速器,以及(iii)因仅有一个存储器控制器而非两个,实现了显著成本节省。
提供本文中的描述以使所属领域的技术人员能够制造或使用本公开。对本公开的各种修改将是所属领域的技术人员显而易见的,且本文所定义的一般原理可应用于其它变型,而不脱离本公开的范围。因此,本公开不限于本文中所描述的实例和设计,而是应被赋予与本文中所公开的原理和新颖特征一致的最广范围。
Claims (19)
1.一种存储器系统,其包括:
动态随机存取存储器DRAM,其被配置成用于根据第一存储器存取协议进行数据读取和写入;
非易失性NV存储器,其被配置成用于根据第二存储器存取协议进行数据读取和写入;以及
共享装置控制器,其被配置成:
从主机系统接收存储器请求;
解析所述存储器请求以确定所述请求是(i)根据所述第一存储器存取协议还是(ii)根据所述第二存储器存取协议;
当所述请求是根据所述第一存储器存取协议时,向所述DRAM写入或从所述DRAM读取;以及
当所述请求是根据所述第二存储器存取协议时,向所述NV存储器写入或从所述NV存储器读取。
2.根据权利要求1所述的存储器系统,其中所述共享装置控制器包括:
命令路由器,其被配置成接收所述存储器请求且解析所述存储器请求以确定请求协议的类型,所述类型包括DRAM存储器请求或NV存储器请求。
3.根据权利要求2所述的存储器系统,其中所述命令路由器进一步被配置成分别依据所述请求是根据所述第一存储器存取协议还是所述第二存储器存取协议分别将所述存储器请求路由到所述DRAM或所述NV存储器中的任一个。
4.根据权利要求2所述的存储器系统,其进一步包括前端,所述前端被配置成与所述主机系统的总线及所述命令路由器两者介接,其中所述命令路由器经由所述前端从所述主机接收所述数据请求。
5.根据权利要求2所述的存储器系统,其中所述命令路由器进一步被配置成通过确认指示所述第一存储器存取协议或所述第二存储器存取协议的所述存储器请求中的旗标的值来解析所述存储器请求。
6.根据权利要求2所述的存储器系统,其中所述命令路由器进一步被配置成通过以下操作来解析所述存储器请求:
将指示NV存储器存储装置中的存储器块的数据结构识别为封装在所述存储器存取请求内;以及
从所述存储器存取请求提取指示所述存储器块的所述数据结构。
7.根据权利要求1所述的存储器系统,其中所述DRAM为CXL存储器,且所述第一存储器存取协议为CXL协议。
8.根据权利要求1所述的存储器系统,其中所述NV存储器存储装置为固态硬盘SSD,且所述第二存储器存取协议为NVMe协议。
9.一种计算机系统,其包括:
存储器系统,其被配置成用于从主机接收多个存储器读取/写入请求,每一存储器读取/写入请求包括以下中的一个:(i)到所述DRAM的计算高速链路CXL存储器请求,和(ii)高速非易失性存储器NVMe请求,所述存储器系统包括:
非易失性NV数据存储装置;
动态随机存取存储器DRAM;以及
装置控制器,其以通信方式耦合到所述NV数据存储装置和所述DRAM;
其中所述装置控制器被配置成(i)确定所接收的读取/写入请求中的一个为CXL存储器请求还是NVMe存储器请求;(ii)当所述存储器请求为CXL请求时,经由所述DRAM处理所述存储器请求;以及(iii)当所述存储器请求为NVMe请求时,经由所述NV数据存储装置处理所述存储器请求。
10.根据权利要求9所述的计算机系统,其中所述装置控制器进一步被配置成将每一NVMe存储器请求封装在CXL.io包中。
11.根据权利要求9所述的计算机系统,其中所述装置控制器进一步被配置成:
将具有封装在CXL.io包内的NVMe存储器请求的所述CXL.io包识别为NVMe存储器请求;以及
从所述CXL.io包提取所述NVMe存储器请求以供路由到所述NV存储器。
12.一种有形非暂时性计算机可读存储媒体,其包括指令,所述指令在由主机系统的处理器执行时致使所述处理器执行一种方法,所述方法包括:
确定由主机系统生成的存储器存取命令何时为用于待经由与所述主机系统耦合的非易失性NV存储器执行的存储器读取/写入操作的非易失性存储器NVM命令;
在所述确定后,将所述NVM命令封装在不同于NVM协议的存储器协议的命令包内;且
其中所述封装的NVM命令适于由与所述不同存储器协议相关联的存储器装置控制器处理。
13.根据权利要求12所述的有形非暂时性计算机可读存储媒体,其进一步包括将所述命令包存储在与所述主机系统相关联的提交队列SQ中。
14.根据权利要求12所述的有形非暂时性计算机可读存储媒体,其中所述不同存储器协议为计算高速链路输入/输出CXL.io协议,且
其中所述方法进一步包括将所述NVM命令封装在CXL.io包内。
15.根据权利要求12所述的有形非暂时性计算机可读存储媒体,其进一步包括:
确定由所述主机系统生成的所述存储器存取命令何时为用于待经由与所述不同存储器协议相关联的第二类型的存储器执行的存储器读取操作或存储器写入操作中的任一个的存储器命令;以及
在所述确定后,根据所述不同存储器协议生成所述命令包。
16.根据权利要求15所述的有形非暂时性计算机可读存储媒体,其中所述不同存储器协议是计算高速链路输入/输出CXL.io协议,且所述方法进一步包括生成所述存储器命令作为CXL.io包。
17.一种方法,其包括:
在存储器系统的存储器控制器处接收包括存储器读取请求或存储器写入请求中的任一个的存储器请求;
在所述存储器控制器处确定所述存储器请求为(i)与第一类型的数据存储装置相关联的第一类型的存储器请求,还是(ii)与第二类型的数据存储装置相关联的第二类型的存储器请求;
当所述存储器请求为所述第一类型时,将所述存储器请求路由到第一数据存储装置;以及
当所述存储器请求为所述第二类型时,将所述存储器请求路由到第二数据存储装置。
18.根据权利要求17所述的方法,其中所述第一和第二类型的存储器存储装置分别包括动态随机存取存储器DRAM和非易失性存储器NVM,且所述方法进一步包括:在所述存储器控制器处确定所述存储器请求为DRAM存储器请求还是NVM存储器请求;
当所述存储器请求为DRAM存储器请求时,将所述DRAM存储器请求路由到与所述存储器控制器耦合的DRAM;以及
当所述存储器请求为所述NVM请求时,将所述NVM存储器请求路由到NVM存储器。
19.根据权利要求18所述的方法,其中所述DRAM包括计算机高速链路CXL DRAM,所述方法进一步包括:
当所述存储器请求为所述NVM请求时,从其中封装所述NVM存储器请求的CXL包提取NVMe存储器块的识别;以及
向所述NVM存储器传递所述NVMe存储器块和所述NVMe存储器块的所述识别中的至少一个。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/302,047 | 2022-01-22 | ||
US17/941,567 | 2022-09-09 | ||
US17/941,567 US20230236742A1 (en) | 2022-01-22 | 2022-09-09 | NONVOLATILE MEMORY EXPRESS (NVMe) OVER COMPUTE EXPRESS LINK (CXL) |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116486868A true CN116486868A (zh) | 2023-07-25 |
Family
ID=87210808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310046008.0A Pending CN116486868A (zh) | 2022-01-22 | 2023-01-30 | 计算高速链路(CXL)上的高速非易失性存储器(NVMe) |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116486868A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117827548A (zh) * | 2024-03-06 | 2024-04-05 | 北京超弦存储器研究院 | 一种数据备份方法、cxl控制器、cxl模组和存储介质 |
-
2023
- 2023-01-30 CN CN202310046008.0A patent/CN116486868A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117827548A (zh) * | 2024-03-06 | 2024-04-05 | 北京超弦存储器研究院 | 一种数据备份方法、cxl控制器、cxl模组和存储介质 |
CN117827548B (zh) * | 2024-03-06 | 2024-05-24 | 北京超弦存储器研究院 | 一种数据备份方法、cxl控制器、cxl模组和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102460405B (zh) | 用于通过存储器装置来控制主机存储器存取的方法及系统 | |
CN109726163B (zh) | 一种基于spi的通信系统、方法、设备和储存介质 | |
US7234004B2 (en) | Method, apparatus and program product for low latency I/O adapter queuing in a computer system | |
KR100634436B1 (ko) | 멀티 칩 시스템 및 그것의 부트코드 페치 방법 | |
US11314418B2 (en) | Extensible storage system and method | |
US20190155765A1 (en) | Operation method of host system including storage device and operation method of storage device controller | |
JP4696199B2 (ja) | 転送ディスクリプタ用メモリを備えるusbホストコントローラ | |
CN112214158A (zh) | 主机输出输入命令的执行装置及方法及计算机可读取存储介质 | |
CN116486868A (zh) | 计算高速链路(CXL)上的高速非易失性存储器(NVMe) | |
US20060112184A1 (en) | Adapter card for on-demand formatting of data transfers between network devices | |
CN101261611A (zh) | 一种外围设备间的数据传输装置和传输方法 | |
TWI269978B (en) | Method allowing single host to access plurality of peripheral devices and electronic system thereof | |
US10853255B2 (en) | Apparatus and method of optimizing memory transactions to persistent memory using an architectural data mover | |
US9087050B2 (en) | Memory controller and operating method thereof | |
US9244824B2 (en) | Memory sub-system and computing system including the same | |
US20230236742A1 (en) | NONVOLATILE MEMORY EXPRESS (NVMe) OVER COMPUTE EXPRESS LINK (CXL) | |
US8996772B1 (en) | Host communication device and method with data transfer scheduler | |
US20060277326A1 (en) | Data transfer system and method | |
US20040186949A1 (en) | XIP system and method for serial memory | |
JP2007310760A (ja) | 記憶装置 | |
US20240168876A1 (en) | Solving submission queue entry overflow using metadata or data pointers | |
US11442882B2 (en) | Bridge circuit for providing conversion between PCIe-NVMe protocol and NVMe-TCP protocol and computer system using the same | |
US20240168877A1 (en) | Solving submission queue entry overflow with an additional out-of-order submission queue entry | |
US8296481B2 (en) | Device and method for improving transfer efficiency of odd number of data blocks | |
JP2008299747A (ja) | Usbホストシステム及び転送データの転送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |