CN117631980A - 用于存储器系统的读取数据路径 - Google Patents
用于存储器系统的读取数据路径 Download PDFInfo
- Publication number
- CN117631980A CN117631980A CN202311040219.XA CN202311040219A CN117631980A CN 117631980 A CN117631980 A CN 117631980A CN 202311040219 A CN202311040219 A CN 202311040219A CN 117631980 A CN117631980 A CN 117631980A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- logic
- error
- signaling
- 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 494
- 238000000034 method Methods 0.000 claims abstract description 59
- 230000011664 signaling Effects 0.000 claims description 78
- 230000004044 response Effects 0.000 claims description 59
- 238000012795 verification Methods 0.000 claims description 15
- 125000004122 cyclic group Chemical group 0.000 claims description 9
- 238000012937 correction Methods 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 claims description 2
- 238000011084 recovery Methods 0.000 abstract description 21
- 239000003999 initiator Substances 0.000 description 22
- 238000004891 communication Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 150000003071 polychlorinated biphenyls Chemical class 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000002574 poison Substances 0.000 description 1
- 231100000614 poison Toxicity 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/008—Reliability or availability analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
所描述设备及方法涉及一种用于存储器系统的读取数据路径。存储器系统可包含从存储器接收数据的逻辑。所述数据可包含第一数据、奇偶校验数据及实现对所述数据的可靠性校验的元数据。所述逻辑可执行对所述数据的所述可靠性校验以确定所述数据的准确性。如果确定所述数据不包含错误,那么可传输所述数据以供请求者存取。然而,如果确定所述数据包含错误,那么可起始数据恢复过程以沿着单独数据路径恢复损坏数据。在这样做时,与用于存储器系统的读取数据路径有关且在本文中描述的所述设备及方法可降低存储器系统将损坏数据回传给请求者的可能性。
Description
技术领域
本申请案涉及用于存储器系统的读取数据路径。
背景技术
计算机、智能电话及其它电子装置依赖处理器及存储器。处理器基于数据执行代码以运行应用程序且向用户提供特征。处理器从存储器获得代码及数据。电子装置中的存储器可包含易失性存储器(例如,随机存取存储器(RAM))及非易失性存储器(例如,快闪存储器)。与处理器的核心数目或速度一样,可存取数据的速率以及存取数据的延迟可能会影响电子装置的性能。随着更快地执行代码的处理器的开发且随着电子装置上的应用程序在需要越来越大存储器的越来越大数据集上操作,这种对性能的影响会增加。
发明内容
本公开的一实施例提供一种设备,其包括:存储器;及逻辑,其耦合到所述存储器,所述逻辑经配置以:将指示对数据的请求的信令传输到所述存储器,所述数据定位于一组一或多个RAID条带中;从所述存储器接收指示所述数据的信令,所述数据包含第一数据、奇偶校验数据及有效地实现对所述数据的可靠性校验的元数据;且执行有效地确定所述数据的准确性的对所述数据的所述可靠性校验。
本公开的另一实施例提供一种方法,其包括:传输指示对数据的请求的信令;接收指示所述数据的信令,所述数据包含第一数据、奇偶校验数据及有效地实现对所述数据的可靠性校验的元数据;执行对所述数据的所述可靠性校验以确定所述第一数据的第一部分包含错误;及响应于确定所述第一数据的所述第一部分包含所述错误而使用所述第一数据的第二部分及所述奇偶校验数据来执行一或多个逻辑运算,所述一或多个逻辑运算有效地创建不包含所述错误的所述第一数据的所述第一部分的版本,第一数据的所述第二部分不同于第一数据的所述第一部分。
本公开的又另一实施例提供一种设备,其包括:逻辑,其包括:第一数据路径;及第二数据路径,其至少部分与所述第一数据路径并行实施,其中所述逻辑经配置以:接收指示数据的信令,所述数据包含第一数据、奇偶校验数据及有效地实现对所述数据的可靠性校验的元数据;执行对所述数据的可靠性校验以确定所述数据是否包含错误;且执行以下至少一者:响应于确定所述数据不包含所述错误而沿着所述第一数据路径传输指示所述数据的信令;或响应于确定所述数据包含所述错误而沿着所述第二数据路径传输指示所述数据的信令。
附图说明
此文献参考以下图式描述用于存储器系统的读取数据路径的设备及技术。贯穿图式使用相同数字来引用相似特征及组件:
图1说明包含可实施读取数据路径的设备的实例操作环境;
图2说明可实施读取数据路径的一或多个方面的实例计算系统;
图3说明其中可实施读取数据路径的实例存储器装置;
图4说明包含经由互连件耦合在一起的主机装置及存储器装置的系统的实例,在所述互连件中可实施读取数据路径;
图5说明其中可实施读取数据路径的系统的实例存储器架构;
图6说明包含能够实施执行不包含错误的读取操作的读取数据路径的逻辑的实例系统;
图7说明能够实施执行不包含错误的读取操作的读取数据路径的系统的实例序列图;
图8说明包含能够实施执行包含错误的读取操作的用于存储器系统的读取数据路径的逻辑的实例系统;
图9说明能够实施执行包含错误的读取操作的读取数据路径的系统的实例序列图;
图10说明用于根据用于存储器系统的读取数据路径的一或多个方面来实施不包含错误的读取操作的实例方法;以及
图11说明用于根据用于存储器系统的读取数据路径的一或多个方面来实施包含错误的读取操作的实例方法。
具体实施方式
概述
随着电子装置的不断改进,存储器装置不断被驱动以维护更大数据量。此外,正在开发经改进通信协议以支持处理器与这些存储器装置之间的更高速率的数据传送。此类改进协议的实例是计算协议或标准(下文中被称为“CXL协议”或“CXL标准”)。可在通过例如/>(外围组件互连快速)协议管理的物理层上实施CXL协议。CXL协议针对处理器及存储器装置(例如,加速器、存储器扩展器)的密集工作负载,其中高效、一致的存储器存取或处理器与存储器之间的交互是有利的。
CXL协议通过提供利用举例来说PCIe 5.0物理层及电气设备的接口同时为处理器与存储器装置之间的存储器存取及一致高速缓存提供更低延时路径来解决PCIe链路的一些限制。其在主机装置(例如,处理器、CPU、SoC)与存储器装置(例如,加速器、存储器扩展器、存储器缓冲器、智能输入/输出(I/O)装置)之间提供高带宽、低延时连接。CXL协议还通过支持在人工智能、机器学习、通信系统及其它高性能计算中具有潜在应用的异构处理及存储器系统来解决不断增长的高性能计算工作负载。随着利用例如CXL的经改进通信协议的存储器密度的增加,存储器装置可被设计成具有在存储器装置内带来新挑战的额外设计约束。
通常,存储器装置可以不同形式实施且部署于各种环境中。举例来说,可将存储器装置固定到印刷电路板(PCB),例如母板。PCB可包含用于接受至少一个处理器及一或多个存储器的插槽且可包含实现两个或更多个组件之间的通信的各种布线基础设施。然而,PCB为插槽及布线基础设施提供有限面积。一些PCB包含多个插槽,所述插槽塑形成线性槽且经设计以接受多个双列直插式存储器模块(DIMM)。这些插槽可被DIMM完全占据,而处理器仍能够利用更多存储器。在此类情况下,如果更多存储器可用,那么系统可具有改进性能,举例来说,通过提供例如高分辨率图形及人工智能的增强特征。
为了能够在类似大小装置上实施更高存储器容量,存储器密度不断增加。采取举例来说,双倍数据速率同步动态随机存取存储器(DDR SDRAM),包含低功率DDR(LPDDR)SDRAM,且更特定来说包含LPDDR5。在LPDDR5标准中,存储器密度可能非常高,以至于数据位错误的可能性变得越来越大。这些错误在未被校正时可能导致存储器装置回传不正确数据,接着不适当地依赖不正确数据来进行电路操作。因此,在一些情况下,开发响应于数据请求而提供可靠数据的解决方案可能很重要,尤其在利用高密度存储器的装置中。
确保从存储器回传的数据的可靠性的一种此解决方案是独立磁盘冗余阵列(RAID)技术。RAID技术可涉及将存储器布置成块,使得从可靠性角度来看可能相关的数据存储在存储器内(例如,多个裸片内)的对应地址处。这些相关数据集可被称为RAID条带,其可用于恢复已在RAID条带的数据块中的一者内损坏的数据。RAID条带可经配置使得由特定块保存的数据可由RAID条带内的其它数据块的组合表示或可从所述组合再现。通过这种存储器配置,可增加数据的可靠性以降低通过计算装置传播数据错误的可能性。这还可防止存储器装置发生故障。
可在存储器装置中采用多种类型的RAID技术以使损坏数据能够被恢复。作为实例,锁定RAID(LRAID)使能够在单个存储器面内实施RAID技术。可跨单个面内的不同存储器裸片存储数据以使RAID条带内的数据能够由单个存储器控制器读取。通过跨多个裸片分布数据且在每一面内执行RAID技术,存储器系统可减少在数据恢复过程内对额外存储器请求的需求,借此简化系统并改进检测到损坏数据时的延时。
除了采用特定存储器配置以外,设计逻辑以检测及恢复数据路径内的损坏数据可能带来巨大挑战。特定来说,存储器装置可接收对数据的连续请求,每一请求需要来自不同存储器位置的数据以实现不同功能。可高度优化此数据的回传以满足实现计算装置的性能的巨大改进的经高度改进的通信协议的带宽及延时要求。然而,这些高度优化数据路径可能几乎不提供实施可靠性校验的机会,这可能需要存储器装置在检测到错误时执行额外逻辑运算。执行额外逻辑运算以恢复损坏数据可能增加存储器回传的延时,这可能会不利地影响依赖存储器的计算装置的性能。
为了应对这些挑战,描述用于存储器系统的读取数据路径的技术、设备及系统。存储器系统可包含由高速缓存前面的多个裸片形成的存储器。技术可利用后端数据回传逻辑,其可在将数据存储于高速缓存内之前实施可靠性校验。数据可与可用于执行可靠性校验的伴随元数据一起存储于存储器中。当从存储器回传数据时,也可以此方式回传元数据以实现数据的可靠性校验。一旦已执行可靠性校验,逻辑就可在将回传数据传递到在其处存储数据以供处理器存取的高速缓存之前确定所述数据内是否已发生错误。
如果逻辑在从存储器回传的数据内检测到错误,那么数据不可以被转发到高速缓存。代替地,可将错误传递到LRAID控制器,且可更改重新定向系统的逻辑流程的错误状态。数据可经重新定向以执行有效地利用其它数据来恢复损坏数据的逻辑运算。特定来说,存储器可经配置以将数据存储于个别RAID条带内,这可允许通过存储于特定RAID条带内的其它数据的逻辑组合来恢复损坏数据。可将这些其它数据传递到逻辑,所述逻辑可与在存储器装置处接收的后续数据请求并行执行数据恢复操作以减少存储器数据回传的延时。逻辑可在并行数据路径之间进行仲裁以按减少对系统性能的不利影响的高效方式提供回传数据。
如上文所描述,用于存储器系统的读取数据路径的技术可使存储器装置能够高效地确保从存储器回传的数据是准确的,而不会显著增加延时或减小带宽。在一些情况下,用于存储器系统的读取数据路径的技术在涉及高密度存储器的应用(举例来说,与CXL标准有关的应用)中可能特别有利。然而,一般来说,用于存储器系统的读取数据路径的技术可确保从存储器回传的数据的可靠性而不会导致存储器数据回传的速度显著降低。
实例操作环境
图1说明包含可实施用于存储器系统的读取数据路径的设备102的实例操作环境。设备102可包含各种类型的电子装置,包含物联网(IoT)装置102-1、平板装置102-2、智能电话102-3、笔记本计算机102-4、乘用车102-5、服务器计算机102-6、可为云计算基础设施的部分的服务器集群102-7及数据中心或其部分(例如,PCB)。设备102的其它实例包含可佩戴装置(例如,智能手表或智能眼镜)、娱乐装置(例如,机顶盒、视频加密狗、智能电视、游戏装置)、台式计算机、母板、服务器刀片、家用电器、车辆、无人机、工业装备、安全装置、传感器或其电子组件。每一类型的设备可包含用于提供计算功能性或特征的一或多个组件。
在实例实施方案中,设备102可包含至少一个主机装置104、至少一个互连件106及至少一个存储器装置108。主机装置104可包含至少一个处理器110、至少一个高速缓冲存储器112、LRAID逻辑114(或更一般地,RAID逻辑114)及至少一个存储器控制器116。也可用存储器模块实现的存储器装置108包含至少一个存储器118,其可包含举例来说动态随机存取存储器(DRAM)裸片或模块(例如,低功率双倍数据速率同步DRAM(LPDDR SDRAM))。DRAM裸片或模块可包含三维(3D)堆叠DRAM装置,其可为高带宽存储器(HBM)装置或混合存储器立方体(HMC)装置。存储器装置108可作为设备102的主存储器操作。尽管未说明,但设备102还可包含存储存储器。存储存储器可包含举例来说存储类存储器装置(例如,快闪存储器、硬盘驱动器、固态驱动器、相变存储器(PCM)或采用3D XPointTM的存储器)。
处理器110可操作地耦合到高速缓冲存储器112,其直接或通过LRAID逻辑114间接可操作地耦合到存储器控制器116。在其它实施方案中,高速缓冲存储器112、LRAID逻辑114或存储器控制器116(包含两个或更多个此类组件)可并入存储器装置108中,例如在CXL环境中。下文特别参考图4描述实例CXL环境。处理器110还直接或间接耦合到存储器控制器116。主机装置104可包含用于形成例如系统单芯片(SoC)的其它组件。处理器110可包含通用处理器、中央处理单元(CPU)、图形处理单元(GPU)、神经网络引擎或加速器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)集成电路(IC)或通信处理器(例如,调制解调器或基带处理器)。
在操作中,存储器控制器116可在处理器110与至少一个存储器118(例如,外部存储器)之间提供高级或逻辑接口。可用各种适合存储器控制器(例如,可处理对存储于存储器装置108上的数据的请求的DDR存储器控制器)中的任一者实现存储器控制器116。尽管未展示,但主机装置104可包含物理接口(PHY),其通过互连件106在存储器控制器116与存储器装置108之间传送数据。举例来说,物理接口可为与DDR PHY接口(DFI)组接口协议兼容的接口。存储器控制器116可举例来说从处理器110接收存储器请求并以适当格式化、时序及重新排序将存储器请求提供给外部存储器。存储器控制器116还可将从外部存储器接收的对存储器请求的响应转发到处理器110。
LRAID逻辑114可操作地将高速缓冲存储器112或处理器110耦合到存储器控制器116。LRAID逻辑114可举例来说使用与由存储器控制器116回传的数据一起回传的元数据来执行对所述数据的可靠性校验(例如,错误检测过程)。在由LRAID逻辑114检测到错误的例子中,可实施数据恢复过程,其使损坏数据能够通过存储于存储器装置108处的其它数据(例如,RAID条带内的未损坏数据)的逻辑组合来恢复。可在LRAID逻辑114处接收连续数据请求,且可并行执行由于这些请求而回传的数据的数据处理以减少来自存储器装置108的存储器回传的延时。LRAID逻辑114可对从存储器装置108检索的其它数据执行逻辑运算以恢复损坏数据,所述经恢复数据接着可存储于高速缓冲存储器112中。关于图6及8描述LRAID逻辑114的细节。
主机装置104经由互连件106可操作地耦合到存储器装置108。在一些实例中,存储器装置108经由具有中介缓冲器或高速缓存的互连件106连接到主机装置104。存储器装置108可操作地耦合到存储存储器(未展示)。主机装置104还可直接或经由互连件106间接耦合到存储器装置108及存储存储器。互连件106及其它互连件(图1中未说明)可在设备102的两个或更多个组件之间传送数据。互连件106的实例包含总线、交换结构或载送电压或电流信号的一或多条导线。
在一些实施方案中,互连件106可包含至少一条命令及地址总线122(CA总线122)及至少一条数据总线124(DQ总线124)。每一总线可为单向或双向总线。CA总线122及DQ总线124可分别耦合到存储器装置108的CA及DQ引脚。互连件106还可包含芯片选择(CS)I/O或线(图1中未说明),其可举例来说耦合到存储器装置108的一或多个CS引脚。互连件106可进一步包含作为CA总线122的部分或与CA总线122分离的时钟总线(CK总线—图1中未说明)。
在其它实施方案中,互连件106可实现为CXL链路。换句话说,互连件106可符合至少一个CXL标准或协议。CXL链路可在PCIe 5.0物理层的物理层及电气设备之上提供接口。CXL链路可使到存储器装置108的请求及来自存储器装置108的响应封装为片(flit)。关于图4更详细地论述具有CXL链路的设备102的实例实施方案。在图4的至少一些实施方案中,除了存储器118以外,高速缓冲存储器112、LRAID逻辑114及存储器控制器116也可包含为存储器装置108的部分。在又其它实施方案中,互连件106可为另一类型的链路,包含PCIe 5.0链路。在此文献中,为清楚起见,一些术语可能取自这些标准或其版本中的一或多者,如CXL标准。然而,所描述原理也适用于符合其它标准及类型的互连件的存储器及系统。
设备102的所说明组件表示具有分层存储器系统的实例架构。分层存储器系统可包含不同层级处的存储器,其中每一层级具有具不同速度或容量的存储器。如所说明,高速缓冲存储器112在逻辑上将处理器110耦合到存储器装置108。在所说明实施方案中,高速缓冲存储器112处于比存储器装置108更高的层级。存储存储器又可处于比主存储器(例如,存储器装置108)更低的层级。处于更低分成层级的存储器相对于处于更高分成层级的存储器可具有降低的速度但具有增加的容量。
可用更多、更少或不同组件以各种方式实施设备102。举例来说,主机装置104可包含多个高速缓冲存储器(例如,包含多层级高速缓冲存储器)或不包含高速缓冲存储器。在其它实施方案中,主机装置104可省略处理器110或存储器控制器116。存储器(例如,存储器装置108)可具有“内部”或“本地”高速缓冲存储器。作为另一实例,设备102可包含在互连件106与存储器装置108之间的高速缓冲存储器。计算机工程师还可在分布式或共享存储器系统中包含所说明组件中的任一者。
计算机工程师可以多种方式实施主机装置104及各种存储器。在一些情况下,主机装置104及存储器装置108可安置于PCB(例如,刚性或柔性母板)上或由PCB物理支撑。主机装置104及存储器装置108可额外地一起集成在IC上或制造在单独IC上并封装在一起。存储器装置108还可经由一或多个互连件106耦合到多个主机装置104且可响应于来自两个或更多个主机装置104的存储器请求。每一主机装置104可包含相应存储器控制器116,或多个主机装置104可共享存储器控制器116。此文献参考图2描述具有耦合到存储器装置108的至少一个主机装置104的实例计算系统架构。
两个或更多个存储器组件(例如,模块、裸片、存储体或存储体组)可共享互连件106的电路径或耦合。在一些实施方案中,CA总线122将地址及命令从主机装置104的存储器控制器116传输到存储器装置108,这可排除数据的传播。在一些实施方案中,存储器装置108可包含耦合到共同CA总线122的多个存储器裸片。DQ总线124可在存储器控制器116与存储器装置108之间传播数据。与CA总线122一样,DQ总线124可通过共同DQ总线在多个存储器裸片之间传播数据。存储器装置108也可实施为任何适合存储器,包含但不限于DRAM、SDRAM、三维(3D)堆叠DRAM、DDR存储器或LPDDR存储器(例如,LPDDR DRAM或LPDDR SDRAM)。
存储器装置108可形成设备102的主存储器的至少部分。然而,存储器装置108可形成设备102的高速缓冲存储器、存储存储器或SoC的至少部分。
图2说明可实施读取数据路径的方面的实例计算系统200。在一些实施方案中,计算系统200包含至少一个存储器装置108、至少一个互连件106及至少一个处理器202。
存储器装置108可包含至少一个接口204及可操作地耦合到至少一个存储器阵列214的控制电路系统206(包含LRAID逻辑114、寄存器208、阵列控制逻辑210及时钟电路系统212)或与其相关联。存储器装置108可对应于图1的设备102的高速缓冲存储器、主存储器或存储存储器中的一或多者。因此,存储器阵列214可包含存储器单元阵列,包含但不限于DRAM、SDRAM、3D堆叠DRAM、DDR存储器、低功率DRAM或LPDDR SDRAM的存储器单元。举例来说,存储器阵列214可包含经配置为具有一个通道的存储器模块的SDRAM的存储器单元,所述通道含有16或8个数据(DQ)信号、双倍数据速率输入/输出(I/O)信令且支持0.3到0.5V的供应电压。存储器装置108的密度的范围可例如从2Gb到32Gb。存储器阵列214及控制电路系统206可为单个半导体裸片或单独半导体裸片上的组件。存储器阵列214或控制电路系统206也可跨多个裸片分布。
控制电路系统206可包含存储器装置108可将其用于执行各种操作的各种组件。这些操作可包含与其它装置通信、管理存储器性能、执行刷新操作及执行存储器读取或写入操作。举例来说,控制电路系统206可包含LRAID逻辑114、一或多个寄存器208、阵列控制逻辑210的至少一个例子及时钟电路系统212。LRAID逻辑114可实施为逻辑电路系统的集合以实现根据RAID或LRAID架构的数据可靠性操作。举例来说,寄存器208可实施为可存储将由控制电路系统206或存储器装置108的另一部分使用的信息的一或多个寄存器。阵列控制逻辑210可包含提供命令解码、地址解码、输入/输出功能、放大电路系统、电力供应管理、电力控制模式及其它功能的电路系统。时钟电路系统212可使用经由互连件106提供的一或多个外部时钟信号来同步各种存储器组件,所述时钟信号包含命令/地址时钟或数据时钟。时钟电路系统212还可使用内部时钟信号来同步存储器组件。
接口204可将控制电路系统206或存储器阵列214直接或间接耦合到互连件106。如图2中所展示,LRAID逻辑114、寄存器208、阵列控制逻辑210及时钟电路系统212可为单个组件(例如,控制电路系统206)的部分。在其它实施方案中,LRAID逻辑114、寄存器208中的一或多者、阵列控制逻辑210或时钟电路系统212可为单个半导体裸片上的单独组件或跨多个半导体裸片分布的单独组件。这些组件可经由接口204个别或联合地耦合到互连件106。
互连件106可使用将各种组件通信耦合在一起且使命令、地址或其它信息及数据能够在两个或更多个组件之间(例如,在存储器装置108与处理器202之间)传送的各种互连件中的一或多者。尽管互连件106在图2中用单条线说明,但互连件106可包含至少一条总线、至少一个交换结构、载送电压或电流信号的一或多条导线或迹线、至少一个交换机、一或多个缓冲器等等。此外,互连件106可被分成至少CA总线122及DQ总线124(如图1中所说明)。如上文关于图1所论述,互连件106可包含CXL链路或符合至少一个CXL标准且至少一条共同CA总线可耦合到多个存储器裸片。CXL链路可在PCIe 5.0物理层的物理层及电气设备之上提供接口或叠加。
在一些方面中,存储器装置108可为相对于(图1的)主机装置104或处理器202中的任一者的“单独”组件。单独组件可包含PCB、存储卡、存储棒或存储器模块(例如,单列直插式存储器模块(SIMM)或双列直插式存储器模块(DIMM))。因此,单独物理组件可一起定位于电子装置的相同外壳内或可分布于服务器机架、数据中心等等上方。替代地,存储器装置108可通过组合在PCB上或单个封装或SoC中而与其它物理组件(包含主机装置104或处理器202)集成。
所描述设备及方法可适合于经设计用于更低功率操作或节能应用的存储器。与低功率应用有关的存储器标准的实例是由联合电子装置工程委员会(JEDEC)固态技术协会颁布的SDRAM的LPDDR标准。在此文献中,为清楚起见,一些术语可能取自这些标准或其版本中的一或多者,如LPDDR5标准。然而,所描述原理也适用于符合包含其它LPDDR标准(例如,早期版本或未来版本,如LPDDR6)的其它标准的存储器及不符合某一标准的存储器。
如图2中所展示,处理器202可包含通过互连件106耦合到存储器装置108的计算机处理器202-1、基带处理器202-2及应用处理器202-3。处理器202可包含或形成CPU、GPU、SoC、ASIC或FPGA的部分。在一些情况下,单个处理器可包括多个处理资源,每一处理资源专用于不同功能(例如,调制解调器管理、应用、图形、中央处理)。在一些实施方案中,基带处理器202-2可包含或耦合到调制解调器(图2中未说明)且被称为调制解调器处理器。调制解调器或基带处理器202-2可经由举例来说蜂窝、 近场或用于无线通信的另一技术或协议无线地耦合到网络。
在一些实施方案中,处理器202可直接连接到存储器装置108(例如,经由互连件106)。在其它实施方案中,处理器202中的一或多者可间接连接到存储器装置108(例如,经由网络连接或通过一或多个其它装置)。此外,处理器202可实现为可经由CXL兼容互连件通信的处理器。因此,相应处理器202可包含相应链路控制器或与其相关联,如图4中所说明的链路控制器428。替代地,两个或更多个处理器202可使用共享链路控制器428来存取存储器装置108。在一些此类情况下,存储器装置108可实施为CXL兼容存储器装置(例如,实施为CXL 3型存储器扩展器)或与CXL协议兼容的另一存储器装置也可或代替地耦合到互连件106。
实例技术及硬件
图3说明实例存储器装置。实例存储器模块302包含多个裸片304。如所说明,存储器模块302包含第一裸片304-1、第二裸片304-2、第三裸片304-3及第D裸片304-D,其中“D”表示正整数。作为几个实例,存储器模块302可为SIMM或DIMM。作为另一实例,存储器模块302可经由总线互连件(例如,外围组件互连快速总线)与其它组件对接。图1及2中所说明的存储器装置108可对应于举例来说多个裸片(dies或dice)304-1到304-D或具有一或多个裸片304的存储器模块302。如所展示,存储器模块302可包含一或多个电触点306(例如,引脚)以将存储器模块302对接到其它组件。
可以各种方式实施存储器模块302。举例来说,存储器模块302可包含PCB,且多个裸片304-1到304-D可被安装或以其它方式附接到PCB。裸片304(例如,存储器裸片)可布置成行或沿着两个或更多个维度布置(例如,形成网格或阵列)。裸片304可具有类似大小或可具有不同大小。每一裸片304可类似于另一裸片304或在大小、形状、数据容量或控制电路系统方面不同。裸片304还可定位于存储器模块302的单个侧或多个侧上。在一些情况下,存储器模块302可为CXL存储器系统或模块的部分。
在若干方面中,裸片304可经实施使得多个裸片耦合到单个CA总线。举例来说,裸片304可经配置使得每一CA总线耦合到四个存储器裸片。在一些实施方案中,CA总线可将信号传达到四个存储器裸片中的第一裸片,其直接或间接链接到另外三个存储器裸片。耦合到共同CA总线的四个存储器裸片可沿着多条共享DQ总线传达数据。举例来说,四个存储器裸片中的第一存储器裸片及第二存储器裸片可耦合到第一DQ总线,且第三存储器裸片及第四存储器裸片可耦合到第二DQ总线。以此方式,存储器模块302可经实施为高密度存储器模块,其可能是例如LPDDR5标准或CXL标准的各种标准所需要的。
图4说明包含经由互连件106耦合在一起的主机装置104及存储器装置108的系统400的实例。系统400可形成如图1中所展示的设备102的至少部分。如所说明,主机装置104包含处理器110及链路控制器428,其可用至少一个启动器402实现。因此,启动器402可耦合到处理器110或互连件106(包含既耦合到处理器110又耦合到互连件106),且启动器402可耦合于处理器110与互连件106之间。启动器402的实例可包含引导器、主装置、主控装置、主组件等等。
在所说明实例系统400中,存储器装置108包含链路控制器430,其可用至少一个目标404实现。目标404可耦合到互连件106。因此,目标404及启动器402可经由互连件106彼此耦合。目标404的实例可包含跟随器、辅装置、从属装置、响应组件等等。所说明存储器装置108还包含至少一个存储器118,其可用至少一个存储器模块或其它组件(例如DRAM 410)实现,如在下文进一步描述。所说明存储器装置108进一步包含至少一个存储器控制器116,其可耦合于目标404与存储器118之间。下文描述存储器控制器116的实例。
在实例实施方案中,启动器402包含链路控制器428,且目标404包含链路控制器430。链路控制器428或链路控制器430可根据一或多个协议跨通过互连件106实现的物理或逻辑链路发起、协调、引起或以其它方式控制信令。链路控制器428可耦合到互连件106。链路控制器430也可耦合到互连件106。因此,链路控制器428可经由互连件106耦合到链路控制器430。每一链路控制器428或430可例如控制经由互连件106在给定协议的链路层处或一或多个其它层处的通信。通信信令可包含举例来说请求412(例如,写入请求或读取请求)、响应414(例如,写入响应或读取响应)等等。如本文中所描述,链路控制器430可经实施以提供CXL协议接口。
目标404可额外地或替代地包含至少一个高速缓冲存储器112及LRAID逻辑114的至少一个例子。与存储器118相比,高速缓冲存储器112可存储数据以供主机装置104相对较快地存取。LRAID逻辑114可控制到及来自至少一个存储器控制器116的通信信令以举例来说将RAID/LRAID条带化叠加于存储器118上。尽管高速缓冲存储器112及LRAID逻辑114被说明为实施于目标404内,但高速缓冲存储器112或LRAID逻辑114(在一些情况下,包含所述两者)可实施于链路控制器430与至少一个存储器控制器116之间的任何其它位置处。如所展示,至少一个存储器控制器116可经实现为一或多个存储器控制器408-1及408-2。LRAID逻辑114可将信令传输到至少一个存储器控制器408。举例来说,LRAID逻辑114可基于被请求的数据的位置(例如,在DRAM 410-1或410-2内)将指示请求412的信令传输到至少一个存储器控制器408的适当存储器控制器(例如,MC 408-1或MC 408-2)。
存储器装置108可进一步包含至少一个互连件406,其耦合于至少一个存储器控制器408(例如,MC 408-1及MC 408-2)与目标404(例如LRAID逻辑114)之间。尽管图4中未展示,但另一互连件可耦合于至少一个存储器控制器408与存储器118之间。存储器118可用DRAM 410-1及410-2的一或多个例子实现。在存储器装置108内,且相对于目标404,互连件406、存储器控制器408或DRAM 410(或其它存储器组件)可被称为存储器装置108的“后端”组件。类似地,相对于链路控制器430,高速缓冲存储器112及LRAID逻辑114也可被视为“后端”组件。在一些情况下,互连件406在存储器装置108内部且可以与互连件106相同或不同的方式进行操作。
如所展示,存储器装置108可包含多个存储器控制器408-1及408-2或多个DRAM410-1及410-2。尽管展示各自有两个,但存储器装置108可包含一或多个存储器控制器或一或多个DRAM。举例来说,存储器装置108可包含四个存储器控制器及16个DRAM,使得四个DRAM耦合到每一存储器控制器。存储器装置108的存储器组件仅作为实例被描绘为DRAM,因为存储器组件中的一或多者可实施为另一类型的存储器。例如,存储器组件可包含非易失性存储器,如快闪或PCM。替代地,存储器组件可包含其它类型的易失性存储器,如静态随机存取存储器(SRAM)。存储器装置108还可包含存储器类型的任何组合。
在一些情况下,存储器装置108可在单个外壳或其它壳体内包含目标404、互连件406、至少一个存储器控制器408及至少一个DRAM 410。然而,壳体可被省略或可与主机装置104、系统400或(图1的)设备102的壳体合并。互连件406可安置于PCB上。目标404、存储器控制器408及DRAM 410中的每一者可制造于至少一个IC上且一起或单独进行封装。经封装IC可固定到PCB或由PCB以其它方式支撑且可直接或间接耦合到互连件406。在其它情况下,目标404、互连件406及一或多个存储器控制器408可一起集成到一个IC中。在一些此类情况下,此IC可耦合到PCB,且用于存储器组件(例如,用于DRAM 410)的一或多个模块也可耦合到同一PCB,这可形成CXL类型的存储器装置108。此存储器装置108可被围封于外壳内或可包含此外壳。然而,可以其它方式制造、封装、组合及/或容置存储器装置108的组件。
如图4中所说明,包含链路控制器430或其LRAID逻辑114的目标404可耦合到互连件406。多个存储器控制器408-1及408-2中的每一存储器控制器408也可耦合到互连件406。因此,目标404及多个存储器控制器408-1及408-2中的每一存储器控制器408可经由互连件406彼此通信。每一存储器控制器408耦合到至少一个DRAM 410。如所展示,多个存储器控制器408-1及408-2中的每一相应存储器控制器408耦合到多个DRAM 410-1及410-2中的至少一个相应DRAM 410。然而,多个存储器控制器408-1及408-2中的每一存储器控制器408可耦合到一组相应的多个DRAM 410(例如,五个DRAM 410)或其它存储器组件。如关于DRAM 410-2借助实例展示,每一DRAM 410可包含至少一个存储器118(例如,图1的也是),包含两个此类组件的至少一个例子。
每一存储器控制器408可通过实施一或多个存储器存取协议来存取至少一个DRAM410以促进基于至少一个存储器地址读取或写入数据。存储器控制器408可基于如DRAM 410的存储器组件的存储器类型或组织来增加用于存储器存取的带宽或减少其延时。可以许多不同方式组织多个存储器控制器408-1及408-2以及多个DRAM 410-1及410-2。举例来说,每一存储器控制器408可实现用于存取DRAM 410的一或多个存储器通道。此外,DRAM 410可被制造成包含一或多个面,例如单面或双面存储器模块。每一DRAM 410(例如,至少一个DRAMIC芯片)还可包含多个存储体,例如8个或16个存储体。
此文献现在描述主机装置104存取存储器装置108的实例。实例依据可包含存储器读取存取(例如,检索操作)或存储器写入存取(例如,存储操作)的一般存取进行描述。处理器110可向启动器402提供存储器存取请求416。存储器存取请求416可经由总线或在主机装置104内部的其它互连件进行传播。此存储器存取请求416可为或可包含读取请求或写入请求。启动器402(例如其链路控制器428)可将存储器存取请求重新表述为适合于互连件106的格式。可基于适用于互连件106的物理协议或逻辑协议(包含所述两者)执行此表述。下文描述此类协议的实例。
启动器402可因此准备请求412且经由互连件106将请求412传输到目标404。目标404经由互连件106从启动器402接收请求412。包含其链路控制器430的目标404可处理请求412以确定(例如,提取或解码)存储器存取请求。基于所确定的存储器存取请求,目标404可经由互连件406将存储器请求418转发到存储器控制器408,在此实例中,存储器控制器408是第一存储器控制器408-1。针对其它存储器存取,目标数据可通过第二存储器控制器408-2向第二DRAM 410-2存取。
第一存储器控制器408-1可基于存储器请求418准备存储器命令420。第一存储器控制器408-1可经由适合所述类型的DRAM或其它存储器组件的接口或互连件将存储器命令420提供到第一DRAM 410-1。第一DRAM 410-1从第一存储器控制器408-1接收存储器命令420且可执行对应存储器操作。存储器命令420及对应存储器操作可涉及读取操作、写入操作、刷新操作等等。基于存储器操作的结果,第一DRAM 410-1可产生存储器响应422。如果存储器请求412是针对读取操作,那么存储器响应422可包含所请求数据。如果存储器请求412是针对写入操作,那么存储器响应422可包含成功执行写入操作的确认。第一DRAM 410-1可将存储器响应422回传到第一存储器控制器408-1。
第一存储器控制器408-1从第一DRAM 410-1接收存储器响应422。基于存储器响应422,第一存储器控制器408-1可准备存储器响应424且经由互连件406将存储器响应424传输到目标404。目标404经由互连件406从第一存储器控制器408-1接收存储器响应424。基于此存储器响应424,且响应于对应请求412,目标404可表述针对所请求存储器操作的响应414。响应414可包含读取数据或写入确认且根据互连件106的一或多个协议进行表述。
存储器响应424可由LRAID逻辑114接收,在LRAID逻辑114处执行可靠性校验以确定存储器响应424是否包含错误。例如,如果请求412是读取操作,那么LRAID逻辑114可确定回传数据是否包含错误。如果确定数据不包含错误,那么其可被表述为响应414。然而,如果确定数据包含错误,那么LRAID逻辑114可起始数据恢复过程以恢复包含错误的数据(例如,损坏数据)。举例来说,LRAID逻辑114可利用与损坏数据相同的(例如,DRAM 410-1或DRAM410-2的)RAID条带内的其它数据(例如,与存储器响应424一起回传)来恢复损坏数据。接着,经恢复数据可被表述到响应414中。
为了对来自主机装置104的存储器请求412作出响应,目标404可经由互连件106将响应414传输到启动器402。因此,启动器402经由互连件106从目标404接收响应414。启动器402可因此对在此实例中来自处理器110的“发起”存储器存取请求416作出响应。为此,启动器402使用来自响应414的信息准备存储器存取响应426且将存储器存取响应426提供到处理器110。以此方式,主机装置104可使用互连件106从存储器装置108获得存储器存取服务。接着,描述互连件106的实例方面。
互连件106可以各种各样的方式实施以使存储器相关通信能够在启动器402与目标404之间进行交换。通常,互连件106可在启动器402与目标404之间载送存储器相关信息,例如数据或存储器地址。在一些情况下,启动器402或目标404(包含所述两者)可准备存储器相关信息以用于通过封装此类信息来跨互连件106进行通信。存储器相关信息可被封装到举例来说至少一个分组(例如,片)中。一或多个分组可包含具有指示或描述每一分组的内容的信息的标头。
在实例实施方案中,互连件106可支持、强制或实现共享存储器系统、高速缓冲存储器、其组合等等的存储器一致性。额外地或替代地,互连件106可基于信用分配系统进行操作。拥有信用可使例如启动器402的实体能够将另一存储器请求412传输到目标404。目标404可回传信用以在启动器402处“重填”信用余额。跨互连件106的基于信用的通信方案可由目标404的信用逻辑或由启动器402的信用逻辑(包含通过两者一起协同工作)实施。本文中参考至少一个存储器控制器408及至少一个DRAM 410描述用于存储器系统的读取数据路径的实例。下文参考图5到11描述存储器控制器408及DRAM 410的实例方面。
系统400、主机装置104的启动器402或存储器装置108的目标404可根据一或多个物理或逻辑协议操作或对接互连件106。举例来说,可根据外围组件互连快速(PCIe或PCI-e)标准构建互连件106。PCIe标准的适用版本可包含1.x、2.x、3.x、4.0、5.0、6.0及未来或替代版本。在一些情况下,至少另一标准经由面向物理的PCIe标准分层。举例来说,启动器402或目标404可根据CXL标准经由互连件106通信。CXL标准的适用版本可包含1.x、2.0及未来或替代版本。CXL标准可基于信用(例如读取信用及写入信用)操作。在此类实施方案中,链路控制器428及链路控制器430可为CXL控制器。
图5说明其中可实施读取数据路径的系统的实例存储器架构。如所说明,系统包含至少一个存储器面502。存储器面502可包含一或多个存储器裸片506,其可实施为存储器装置(例如,图1、2或4的存储器装置108及/或包含图3的存储器模块302的至少一部分)的部分。存储器装置可包含任何数目的存储器裸片,如关于图3所描述。如所说明,存储器裸片506可例如经由互连件或使用接口耦合到存储器控制器508。存储器控制器508可对应于(图1的)主机侧存储器控制器116或(图4的)存储器侧存储器控制器408。以此方式,可在(图1的)主机装置104或(图1的)存储器装置108内实施LRAID逻辑114。存储器控制器508可起始或控制存储器裸片506的操作,例如读取或写入操作。
如所说明,系统包含存储器面502,其包含五个存储器裸片(例如,存储器裸片506-1、存储器裸片506-2、存储器裸片506-3、存储器裸片506-4及存储器裸片506-5)。尽管被说明为单个存储器面502,但存储器装置可包含任何数目的存储器面,每一存储器面包含与其它存储器面中的任一者数目相同或不同的存储器裸片。如所说明,存储器面502及其存储器裸片506耦合到负责存储器裸片506处的控制器存储器操作的存储器控制器508。
存储器装置可经配置使得数据根据RAID架构存储(例如)为跨一或多个存储器裸片506的RAID条带504。存储器面502可将数据存储于RAID条带内,使得可从存储于其它存储器裸片上的数据的逻辑运算创建存储于单个存储器裸片上的任何数据。存储器裸片506可被组织成页面,每存储器页面具有M个RAID条带,其中“M”是正整数。每一RAID条带504可存储特定量的数据(例如,作为CPU的字长的倍数或多个字节)及其元数据。存储器裸片506中的一或多者可存储奇偶校验数据,其可用于基于RAID条带504中的剩余数据的逻辑组合来恢复RAID条带504中的损坏数据。举例来说,如果从存储器裸片506-1检索的数据损坏,那么从存储器裸片506-2到506-5检索数据并对数据执行逻辑运算(例如,如通过LRAID逻辑114定义)可使损坏数据能够被恢复。对于RAID条带504,奇偶校验数据可由存储器裸片506中的一或多者维护。存储奇偶校验数据的一或多个存储器裸片可跨不同RAID条带504相同或不同。
作为特定实例,RAID条带504可具有32字节的宽度加上可提供关于数据的信息(例如,用以启用可靠性校验)的伴随元数据。因此,存储于RAID条带504内的数据可为32字节加上伴随元数据乘以存储RAID条带504的存储器裸片506的数目,不包含奇偶校验数据。奇偶校验数据可不存储将由例如CPU或其它请求者检索的有效数据,相反其为可用于恢复RAID条带504内的损坏数据的数据。
如上文所描述,存储器装置可实施为分层存储器,其中每一存储器层级具有不同速度或容量水平。如所说明,高速缓冲存储器112定位于比存储器裸片506更高的分成层级。当处理器需要数据来执行任务时,处理器可从高速缓冲存储器112请求数据。如果数据存在于高速缓冲存储器112内(例如,高速缓存命中),那么数据将被回传到处理器而无需从低层级存储器检索。然而,在高速缓存未命中的情况下,高速缓冲存储器112可从低层级存储器(例如,由存储器面502组成的存储器)请求所需数据。高速缓冲存储器112可请求作为完整高速缓存行的数据,其可为与存储器装置的数据宽度相同或不同大小。
举例来说,如果所请求数据小于高速缓存行的大小,那么高速缓存行通常设置为所请求数据量的某个倍数。因此,在至少一些此类情况下,高速缓冲存储器112可从存储器请求包含所请求数据以及用以完全填充高速缓存行的其它数据的高速缓存行替换。所请求数据可定位于沿着高速缓存行的任何位置。例如,高速缓冲存储器112可请求从第一请求数据的地址开始或从第一请求数据的地址之前的地址开始的数据的高速缓存行。仅借助实例,所请求数据可包含64字节,且高速缓存行可包含256字节。因此,高速缓存行含有“可请求”数据的4个部分,其在此实例中各自具有64字节。取决于所请求数据的地址,所请求数据可占据形成高速缓存行的四个部分(例如,第一、第二、第三或第四槽)中的任一者。在高速缓存行大于数据总线宽度(例如,128或256字节的高速缓存行长度)的情况下,高速缓存行可作为多个读取请求从存储器读取,其可跨越多个面或一或多个RAID/LRAID条带(例如,RAID条带504)。
继续参考图5,将高速缓存行读取传输到LRAID逻辑114,其将读取请求传输到存储器控制器508-1。读取请求作为单个读取请求传输,其将致使存储器回传多个数据突发。可将读取请求传输到存储器控制器508。如果数据定位于具有相关联存储器控制器(例如,存储器控制器508)的特定存储器面(例如,存储器面502)中,那么存储器控制器可接收读取请求,将所述读取请求传输到相关联存储器裸片506,且可将数据回传到存储器控制器。鉴于存储器面502可共享共同芯片选择或命令地址总线,多个存储器裸片中的每一裸片可将定位于由存储器控制器508指定的地址的数据传输到存储器控制器。以此方式,存储器控制器508可从跨越存储器裸片506的单个RAID条带504接收数据。
可将数据传输到LRAID逻辑114,其中使用伴随数据的元数据来执行可靠性校验。如果数据准确,那么其可存储于高速缓冲存储器112内。然而,如果在数据内检测到错误,那么LRAID逻辑114可对从与损坏数据相同的RAID条带504检索的其它数据(例如,非损坏数据及奇偶校验数据)执行逻辑运算以恢复损坏数据。
在恢复与第一读取请求相关联的数据之前、期间或之后,LRAID逻辑114可传输对与第二读取请求相关联的数据的请求。此数据可定位在与和第一读取请求相关联的数据相同的存储器面内。数据可回传到存储器控制器且与元数据一起提供给LRAID逻辑114。LRAID逻辑114可对第二数据执行可靠性校验并确定第二数据的准确性。可将此数据传递到高速缓冲存储器112,或可基于检测到数据内的错误来对此数据执行数据恢复过程。在一些例子中,LRAID逻辑114可包含并行逻辑路径,其可并行处置后续读取请求及数据恢复以减少延时且增加存储器装置的带宽。
一旦已从存储器检索数据,且已确保数据的准确性,数据就可存储于高速缓冲存储器112中。处理器可存取高速缓冲存储器112以检索数据并向计算装置提供功能性。数据可存储于高速缓冲存储器112中,直到检测到另一高速缓存未命中且需要高速缓存内的存储器资源来存储与新存储器请求相关联的数据为止。在上文所描述的一些实例实施方案中,读取请求实现(例如,传输)为对存储器裸片的两个读取请求。然而,在其它实施方案中,取决于沿着存储器裸片的条带几何布置且取决于高速缓存行的大小,读取请求可实现(例如,传输)为一个读取请求。
图6说明包含能够实施执行不包含错误的读取操作的读取数据路径的逻辑的实例系统。逻辑可为在主机装置或存储器装置上实施的(图1的)LRAID逻辑114的实例。如所说明,逻辑包含LRAID控制器602、互连件604、错误校正码块606(ECC 606)、循环冗余校验块608(CRC 608)、多路复用器610(MUX 610)、LRAID XOR逻辑612、仲裁器614、高级加密标准块及消息认证码块616(AES/MAC 616)以及MUX 618。请求指示为实线且回传指示为虚线。
LRAID控制器602可负责控制到存储器控制器508的读取请求。特定来说,LRAID控制器602可经由互连件604向存储器控制器508传输读取请求以使存储器控制器508能够从存储器(未展示)检索数据。LRAID控制器602可基于沿着存储器装置的条带几何布置及高速缓存行大小将高速缓存行读取请求解析为多个读取命令。可根据存储器装置或主机装置的任何组件的内部或外部时钟转发存储器请求。当在从存储器回传的数据内检测到错误时,可通知LRAID控制器602。当检测到错误时,LRAID控制器602可适当地处置来自高速缓冲存储器112的后续读取请求(例如,通过延迟将那些请求传输到存储器控制器508或控制那些请求的时序)。
逻辑可包含可靠性校验电路系统,其可包含ECC 606、CRC 608或AES/MAC 616。可靠性校验电路系统可利用与数据一起回传的元数据来确保从存储器回传的数据的准确性。如果在数据内检测到错误,那么可靠性校验电路系统可将指示错误(例如,错误状态)的信令传输到LRAID控制器602或MUX 610。可使用LRAID XOR逻辑612处理被确定为因错误而损坏的数据以恢复数据(例如,MUX 610上的错误状态“1”),而被确定为未因错误而损坏的数据可被提供给高速缓冲存储器112(例如,MUX 610上的错误状态“0”)。逻辑可包含可靠性校验电路系统的多个副本,例如,与存储器控制器相同数目的副本(例如,在多面存储器装置中),以使逻辑能够关于多个存储器控制器并行执行可靠性校验。
可靠性校验电路系统可包含ECC 606、CRC 608及AES/MAC 616中的一或多者。ECC606可用于基于由元数据提供的冗余信息来检测或校正从存储器接收的数据内的错误。在一些例子中,ECC 606可能够校正检测到的错误。在此情况下,ECC 606可选择不向LRAID控制器602传输错误的指示,而在其它例子中,ECC 606可向LRAID控制器602传输错误。通过不传输错误,ECC 606可能够在不需要额外数据处理的情况下恢复损坏数据。如果ECC 606无法校正所检测错误,那么可向LRAID控制器602或MUX 610提示错误,且可开始数据恢复过程。
可靠性校验电路系统可额外地或替代地包含CRC 608。在CRC 608处,数据的值可经散列以确定从存储器接收的数据的表示。可将数据的此散列与校验和进行比较以确定数据内是否发生错误。可从与数据一起从存储器检索的元数据确定校验和。如果数据的散列与校验和不匹配,那么可检测到错误,且可将错误的指示传输到LRAID控制器602或MUX610。响应于错误,逻辑可使用例如一或多种RAID技术开始数据恢复过程。
另外,或作为ECC 606或CRC 608的替代例,可靠性校验电路系统可包含AES/MAC616。AES/MAC 616可启用与从存储器接收的数据相关联的若干安全功能。AES单元可提供加密及解密功能性,例如通过使用一或多个协议及/或不同密钥大小,如128b、192b或256b。AES单元可执行对到达的数据(例如,使用不同块密码操作模式加密或解密的16字节数量)的加密或解密。可基于与从存储器接收的数据一起提供的元数据进行加密或解密。元数据可提供可用于加密或解密数据的密钥配对或其它密码信息的指示。如果AES单元未能使用元数据来加密或解密数据,那么可检测到错误并向LRAID控制器602或MUX 618指示所述错误以减少来自潜在不受信任活动的暴露。
MAC引擎可利用例如安全散列算法(SHA)SHA-256作为散列算法。SHA-256是SHA-2系列散列算法的成员,其中摘要(或散列输出)具有256b长度,而与要散列的输入的数据大小无关。MAC可作为分层在散列函数(例如,SHA-256)之上的消息认证协议来操作,所述散列函数混合用于加密目的的密钥。MAC可作为在消息的散列(经由SHA-256)周围以规定方式(例如两次)附加密钥的特定应用来操作。为了提供此功能性,可在消息散列开始之前将256b密钥编程到电路组件中。MAC引擎可利用元数据来执行散列算法或将散列与预期值进行比较。元数据可包含可用于认证数据的私钥或签名。如果数据无法由MAC引擎认证,那么LRAID控制器602或MUX 618可接收错误的指示以保护装置。
如果AES/MAC 616检测到错误,那么数据可被丢弃(例如,MUX 618上的错误状态“0”)。在若干方面中,当检测到错误时,可将指示错误的数据(例如,零及毒物)发送到高速缓冲存储器112。如果未检测到错误,那么AES/MAC 616可传输指示已成功认证/解密数据的信令,且数据可存储于高速缓冲存储器112中(例如,MUX 618上的错误状态“1”)。在这样做时,可降低存储器错误(例如,归因于恶意攻击或其它原因)到达处理器的可能性。
当MUX 610从可靠性校验电路系统接收到错误时,可开始利用来自RAID条带的其它数据来恢复损坏数据的数据恢复过程。RAID或LRAID技术可利用奇偶校验数据,其在与来自RAID条带的其它数据组合时可产生预期数据。可利用LRAID XOR逻辑612来执行必要的逻辑运算以组合来自RAID条带的数据以恢复损坏数据。LRAID XOR逻辑612可包含有效地以从存储器接收的数据作为输入来执行操作的任何数目的逻辑运算符。因此,LRAID XOR逻辑612可输出不包含所检测错误的损坏数据的恢复版本。
在一些实施方案中,逻辑可包含并行路径,基于对数据内的错误的检测将指示从存储器回传的数据的信令路由到所述并行路径。逻辑可包含从不含有错误的存储器接收的数据的逻辑路径及用于在数据被确定为包含错误时恢复损坏数据的单独逻辑路径。如所展示,ECC 606、CRC 608及MUX 610由两条数据路径共享。然而,当检测到错误时,可沿着包含LRAID XOR逻辑612的数据路径传输数据,LRAID XOR逻辑612可用于恢复损坏数据。可并行实施这些逻辑路径,使逻辑能够与从高速缓冲存储器112接收的后续请求并行地处理为数据恢复而接收的数据。鉴于这些路径可并行操作,可能需要仲裁器614来在载送于每一路径上的信号之间进行仲裁。仲裁器614可确定每一路径上的信号向下游传播的顺序。
在一些例子中,仲裁器614可实施为MUX装置,其向下游转发来自相应路径的数据以最终到达高速缓冲存储器112。举例来说,如果LRAID XOR逻辑612的速度足够快,那么仲裁器614可能不会在相同时刻沿着每一路径接收到信号。因此,可能不需要仲裁器614来确定传输信号的顺序,而是在所述信号到达仲裁器614时,向下游转发信号(例如,转发到AES/MAC 616)。以此方式,一些实施方案可利用MUX装置作为仲裁器614。
图6说明无错误的读取请求的实例数据路径。在高速缓冲存储器112处发生高速缓存未命中,且高速缓存行读取请求作为信令传输到LRAID控制器602。LRAID控制器602将高速缓存行读取请求解析为跨多个存储器裸片检索单个RAID条带内的数据的单个读取请求。LRAID控制器602经由互连件604且向存储器控制器508传输指示存储器控制器508从存储器中的特定地址检索数据的第一读取请求。存储器控制器508向存储器(未展示)传输信令以在地址处执行读取操作且回传指示数据及其相关联元数据的信令。存储器控制器508可将此读取请求传输到存储器内的每一存储器裸片或存储器裸片的子集。接着,数据及元数据被回传到存储器控制器508且经由互连件604提供给可靠性校验电路系统。
首先,将数据及元数据传递通过ECC 606,其中消耗元数据的ECC位以检测或校正数据内的错误。如所说明,ECC 606未检测到错误,或错误被校正,且数据继续到CRC 608。尽管被描述为消耗元数据,但可靠性校验电路系统可在不消耗元数据的情况下利用元数据。因而,当元数据通过可靠性校验电路系统时,可能不会从数据移除元数据。在CRC 608处,可消耗元数据的CRC位以验证数据的校验和。如所说明,在数据内未检测到错误且将数据传递到MUX 610。鉴于尚未引发错误,MUX保持“0”错误状态且将数据传递到仲裁器614。在此实例中,由于尚未实例化错误,所以沿着数据恢复路径不存在信令,因此数据可通过仲裁器614继续。然而,在其它实例中,可对数据进行仲裁以确定将指示数据的信号传播通过仲裁器614的正确时序。
接着,数据及剩余元数据(如果有)继续到AES/MAC 616,在AES/MAC 616处执行解密及认证。如果加密及认证成功,那么如所说明,AES/MAC 616传递指示数据已经历可靠性校验而无错误且数据准备好存储于高速缓冲存储器112中的信令。此信令导致MUX 618处的“1”状态,这使数据能够被存储于高速缓冲存储器112中。
图7说明能够实施执行不包含错误的读取操作的读取数据路径的系统的实例序列图。高速缓冲存储器112可接收对数据的请求。数据可保存在具有举例来说8、16、32或64字节的大小的用户数据块(UDB)内。数据块的大小可与保存在每一存储体上的单个RAID条带内的数据量相同或不同。数据块的大小可与高速缓存行的长度相同或不同。响应于接收到指示对数据(例如,UDB0)的请求的信令,高速缓冲存储器112可确定所述数据当前是否存储于高速缓冲存储器112中。如果数据存储于高速缓冲存储器112中(例如,高速缓存命中),那么指示数据的信令可回传到请求者。如果数据未存储于高速缓冲存储器112中(例如,高速缓存未命中),那么高速缓冲存储器112可向LRAID控制器602传输指示读取包含所请求数据的高速缓存行的请求的信令。
LRAID控制器602可基于存储器装置的带宽或存储器控制器508与存储器之间的互连件的大小将高速缓存行读取请求解析为读取命令。如所说明,高速缓存行等于存储器装置的带宽,所以高速缓存行请求作为多个数据块(例如,UDB0及UDB1)的单个读取请求来传输。指示读取请求的信令可从LRAID控制器602传输到存储器控制器508。如所说明,UDB0及UDB1定位于耦合到存储器控制器508的存储器中,所以将读取请求信令传输到存储器控制器508。
存储器控制器508可将指示对数据的请求的信令传输到存储器,这可导致数据与和回传数据有关的元数据一起被回传到存储器控制器508。一旦回传,存储器控制器508就可将指示数据或元数据的信令传输到可靠性校验电路系统。可靠性校验电路系统可包含CRC/ECC块702,其可包含(图6的)ECC 606或CRC 608中的一者或两者。CRC/ECC块702可使用元数据来执行对数据的可靠性校验。归因于在可靠性校验期间消耗元数据,这可导致创建不包含元数据的数据的版本。从可靠性校验电路系统输出的数据可被确定为不包含错误。如所说明,数据不包含错误且数据继续到AES/MAC 616,在AES/MAC 616处所述数据被解密或认证。
AES/MAC 616可利用元数据来执行解密或认证。如果解密或认证不成功,那么AES/MAC 616可检测数据中的错误。因此,AES/MAC 616有时可包含为可靠性校验电路系统的一部分。尽管说明为一起接收数据(例如,UDB0及UDB1),但任一条数据都可在另一条数据之后接收。一般来说,如果未检测到错误,那么可由AES/MAC 616以从存储器回传数据的顺序接收数据。如果AES/MAC 616成功解密或认证数据,那么所述数据可作为信令传输到高速缓冲存储器112,在高速缓冲存储器112处请求者可存取所述数据。
图8说明包含能够实施执行包含错误的读取操作的读取数据路径的逻辑的实例系统。如所说明,逻辑可与图6的逻辑相同。然而,与图6相反,图8说明回传确定为包含错误的数据的读取操作的数据路径。请求指示为实线指示且回传指示为虚线。
高速缓冲存储器112接收指示对数据的请求的信令,所述数据当前可或可不存储于高速缓冲存储器112中。如果数据当前未存储于高速缓冲存储器112中,那么高速缓冲存储器112可传输从存储器(未展示)读取数据的请求。LRAID控制器602接收指示从存储器读取包含所请求数据的高速缓存行的请求的信令。如果高速缓存行长于使用单个存储器突发命令读取的数据,那么LRAID控制器602可将高速缓存行读取请求解析为多个读取请求。将读取请求传输到与存储所请求数据的存储器相关联的存储器控制器508。存储器控制器508可通过互连件604接收指示读取请求的信令。
响应于存储器控制器508接收读取请求信令,存储器控制器508可将信令传输到存储器以读取并回传所请求数据。在将数据回传到存储器控制器508时,指示从存储器回传的数据及相关联元数据的信令可通过互连件604转发到可靠性校验电路系统。可靠性校验电路系统可包含ECC 606、CRC 608或AES/MAC 616中的一或多者。逻辑可包含用于并行处理从存储器接收的各种数据的一或多个并行数据路径(例如,用于数据恢复路径及无错误回传路径)。在若干方面中,当系统执行与数据恢复无关的回传操作(例如,无错误数据路径)时,存储器控制器508可将数据转发到第一可靠性校验电路。可靠性校验电路系统的每一副本可与特定存储器控制器508或系统的操作类型(例如,无错误操作或数据恢复)相关联。
如所说明,尚未在从存储器回传的数据中检测到错误,所以数据可沿着与无错误回传操作相关联的第一可靠性校验电路传播。将数据传输到ECC 606-1,其中使用元数据来执行错误检测或校正。如果检测到错误,那么可校正所述错误,或可将错误传输到LRAID控制器602。如果检测到错误或ECC 606无法校正错误,那么可在MUX 610中更改错误状态。然而,如果未检测到错误或校正错误,那么数据可继续到CRC 608,在CRC 608处可使用校验和来校验数据。
CRC 608-1可确定数据是否包含错误。如果CRC 608检测到错误,那么可将错误的指示传输到LRAID控制器602或可在MUX 610中更改错误状态。如关于图6所描述,可靠性校验电路系统可利用元数据来执行可靠性校验。可在校验期间消耗元数据以输出不包含元数据的数据的版本。如所说明,可靠性校验电路系统确定数据包含错误,且将错误的指示转发到LRAID控制器602。
可将错误传输到MUX 610以更改MUX 610的错误状态。因此,可将指示数据的信令重新引导到含有有效地恢复损坏数据的逻辑电路系统(例如,LRAID XOR逻辑612)的数据路径。从存储器回传的数据可存储于同一RAID条带内,因为可在所述裸片上的对应地址处从每一存储器裸片回传数据。因此,可使用已从存储器检索的数据来恢复损坏数据而无需传输额外存储器请求以检索奇偶校验数据或RAID条带内的其它数据。通过沿着包含LRAIDXOR逻辑612的数据路径传输数据,逻辑可在逻辑上组合奇偶校验数据与RAID条带内的其它未损坏数据以创建不包含错误的损坏数据的版本。因此,可使用从存储器接收的数据来恢复损坏数据。
如果在导致与损坏数据相关联的读取请求的第一高速缓存未命中之前在高速缓存存储器112处发生其它高速缓存未命中,或如果LRAID控制器602将高速缓存行读取分成多个读取请求,那么数据可存在于包含LRAID XOR逻辑612的数据线(例如,确定为包含错误的第一读取请求的数据)及不包含LRAID XOR逻辑612的数据线(例如,如果在从后续读取请求回传的数据中未检测到错误)上。因此,可能需要仲裁器614来在两条数据路径之间进行协商以确定向下游朝向高速缓冲存储器112传输信令的顺序。
可将不包含错误的损坏数据的版本传输到仲裁器614,在仲裁器614处仲裁沿着无错误(例如,非数据恢复)路径及数据恢复路径传输的信号。在数据恢复过程之前、期间或之后,可能已回传其它数据(例如,作为对高速缓存行读取或新高速缓存行读取的额外读取请求的结果)。此数据可能已执行可靠性校验,同时与先前请求相关联的数据执行LRAID XOR逻辑612以执行数据恢复,从而致使数据在相同时间段期间传输到仲裁器614。因此,仲裁器614可以任何数目种方式在两条路径之间进行仲裁。举例来说,仲裁器614可经配置以选择要首先传输的正常数据路径,选择要首先传输的数据恢复数据路径,或以在不同时刻选择不同路径的循环在路径之间进行仲裁。可使用所描述仲裁方法或任何其它仲裁方法中的任一者来在并行数据路径之间进行仲裁。替代地,如果LRAID XOR逻辑612被确定为足够快地执行,那么仲裁器614可避免同时沿着两条数据路径接收信令且仲裁器614可实施为转发沿着每一路径接收的信令的MUX装置。
在所说明实例中,从仲裁器614传输通过RAID或LRAID技术恢复的数据。将数据传输到AES/MAC 616,在AES/MAC 616处所述数据被解密或认证。解密及认证成功,从而致使AES/MAC 616将无错误状态传输到MUX 618。因此,通过MUX 618传输经解密及认证数据且将其存储于高速缓冲存储器112中。
图9说明能够实施执行包含错误的读取操作的读取数据路径的系统的实例序列图。高速缓冲存储器112接收指示对数据(例如,UDB0)的请求的信令。高速缓冲存储器112确定数据当前未存储于高速缓冲存储器112内且向LRAID控制器602传输指示将高速缓存行读取到高速缓冲存储器112中的请求的信令。LRAID控制器602将高速缓存行读取请求解析为对跨一或多个存储器裸片定位的UDB0及UDB1的读取请求。LRAID控制器602向存储器控制器508传输指示读取请求的信令。
存储器控制器508从存储器接收数据及伴随元数据且向在其处执行可靠性校验的CRC/ECC 702传输数据。CRC/ECC 702检测数据内的一或多个错误。可在数据的第一部分(例如,UDB0或UDB0的一部分)或数据的另一部分(例如,UDB1或UDB1的一部分)或两者中确定错误。将所检测错误传输到LRAID控制器602及将数据重新引导到包含LRAID XOR逻辑612的数据恢复路径的MUX。
LRAID XOR逻辑612接收数据且对不包含错误的数据的部分与奇偶校验数据执行逻辑运算以创建被确定为损坏的不包含错误的数据的版本。因此,LRAID XOR逻辑612有效地恢复损坏数据,且将没有错误的经恢复数据提供给AES/MAC 616,在AES/MAC 616处对数据进行解密或认证。在解密及认证之后,将数据作为高速缓存行存储于高速缓冲存储器112中以供请求者存取。
实例方法
此章节参考图10及11的流程图描述用于实施存储器系统的读取数据路径的实例方法。这些描述还可涉及图1到9中所描绘的组件、实体及其它方面,所述参考仅作为实例进行。在若干方面中,以下实例方法可至少部分由LRAID逻辑114或存储器控制器116或存储器控制器408(在此章节中统称为存储器控制器508)执行。在其它实施方案中,可在存储器存取链中的不同功能位置处(例如,在主机装置104或存储器装置108中的另一控制器处)实施实例方法。
图10说明用于根据用于存储器系统的读取数据路径的一或多个方面来实施不包含错误的读取操作的实例方法1000。当可靠性校验电路系统未检测到检索数据内的错误时,方法1000可提供用于读取操作的操作。
在1002,LRAID控制器602传输指示从存储器读取数据的请求的信令。可将信令传输到耦合到存储数据的存储器面502的存储器控制器508。数据可根据RAID或LRAID架构来存储(例如,存储在各自跨耦合到存储器控制器的一或多个存储器裸片散布的一或多个RAID条带中)。存储器控制器508可从存储器检索数据连同提供关于第一数据的信息的元数据。
在1004,接收指示包含第一数据、奇偶校验数据及元数据的数据的信令。可从存储器控制器508接收信令。元数据可有效地启用对数据的可靠性校验。例如,元数据可包含与第一数据的ECC 606有关的一或多个位、与第一数据的CRC 608校验和相关联的一或多个位或与用于解密或认证数据的密钥(例如,私钥)或签名相关联的一或多个位。奇偶校验数据可包含在与第一数据的一部分逻辑组合时创建第一数据的剩余部分的数据。奇偶校验数据可存储于耦合到存储器控制器508的存储器裸片506的一或多者上。
在1006,对数据执行可靠性校验以确定第一数据不包含错误。可靠性校验可包含ECC 606、CRC 608或AES/MAC 616。可靠性校验电路系统可消耗元数据以创建不包含元数据的数据的版本。在若干方面中,可靠性校验可检测或校正从存储器控制器508接收的数据内的错误。ECC 606可确定第一数据内不存在位错误。CRC 608可确定第一数据通过循环冗余校验。AES/MAC 616可解密或认证第一数据。
在1010,可将指示第一数据的信令传输到高速缓冲存储器112以进行存储。可响应于确定第一数据不包含错误而传输信令。第一数据可存储于高速缓冲存储器112内以供在高速缓冲存储器112处起始读取请求的请求者存取。在这样做时,数据可可靠地从存储器(例如,DRAM)读取且存储于高速缓存(例如,高速缓冲存储器112)内。
图11说明用于根据用于存储器系统的读取数据路径的一或多个方面来实施包含错误的读取操作的实例方法1100。当可靠性校验电路系统检测到检索数据内的错误时,方法1100可提供用于读取操作的操作。因而,方法1100的部分可描述根据RAID或LRAID架构的一或多个方面的数据恢复过程。方法1100可涉及确定在最初回传数据内存在错误。因此,方法1100可任选地从图10的1004开始,在1004处从存储器控制器508接收数据。
在1102,对数据执行可靠性校验以确定第一数据的第一部分(例如,存储于回传数据的存储器裸片中的一者中的数据的一部分)包含错误。可靠性校验可类似于图10中在1006处所描述的可靠性校验。当在第一数据的第一部分内检测到错误时,可将错误报告给LRAID控制器602或MUX 610。通过向MUX 610报告错误,可更改MUX 610的错误状态以致使数据被重新路由并在包含LRAID XOR逻辑612的数据路径上传输。通过向LRAID控制器602报告错误,系统可被提示所检测的错误并相应地作出响应。
在1104,对第一数据的第二部分与奇偶校验数据执行逻辑运算以创建不包含错误的第一数据的第一部分的版本。可由LRAID XOR逻辑612执行逻辑运算以组合第一数据的第二部分与奇偶校验数据。第一数据的第二部分可包含来自未保存损坏数据或奇偶校验数据的RAID条带504内的其它存储器裸片506的数据。鉴于数据存储在根据RAID或LRAID架构的RAID条带中,此LRAID XOR逻辑612可有效地使用已从存储器118检索的数据来恢复损坏数据而无需到存储器118的额外读取请求。此恢复数据及未损坏数据可经认证或解密并传输到高速缓冲存储器112以供请求者存取。通过执行方法1100,可实施确保回传数据的可靠性的读取操作。
对于上文所描述的实例流程图及方法,展示及/或描述操作的顺序不意欲被解释为限制。可依任何顺序组合或重新布置任何数目或组合的所描述操作以实施给定方法或替代方法。操作也可从所描述方法省略或添加到所描述方法。此外,可以完全或部分重叠方式实施所描述操作。
可在举例来说硬件(例如,固定逻辑电路系统或与存储器结合的处理器)、固件、软件或其某一组合中实施这些方法的方面。可使用图1到9中所展示的设备或组件中的一或多者来实现方法,其组件可进一步划分、组合、重新布置等等。这些图的装置及组件通常表示:硬件,例如电子装置、封装模块、IC芯片或电路;固件或其动作;软件;或其组合。因此,这些图说明能够实施所描述方法的许多可能系统或设备中的一些。
除非上下文另有规定,否则本文中使用词语“或”可被视为使用“包含或”,或允许包含或应用由词语“或”链接的一或多个项目的术语(例如,短语“A或B”可被解释为仅允许“A”、仅允许“B”或允许“A”及“B”两者)。而且,如本文中所使用,涉及项目列表中的“至少一者”的短语是指那些项目的任何组合,包含单个成员。例如,“a、b或c中的至少一者”可涵盖a、b、c、a-b、a-c、b-c及a-b-c,以及具有相同元素的倍数的任何组合(例如,a-a、a-a-a、a-a-b、a-a-c、a-b-b、a-c-c、b-b、b-b-b、b-b-c、c-c,及c-c-c,或a、b及c的任何其它排序)。此外,在本文中所论述的附图及术语中表示的项目可指示一或多个项目或术语,且因此可互换地引用此书面描述中的项目及术语的单数或复数形式。
总结
尽管此文献以特定于某些特征或方法的语言描述用于存储器系统的读取数据路径的实施方案,但所附权利要求书的主题不限于所描述特征或方法。代替地,此文献公开作为用于存储器系统的读取数据路径的实例实施方案的所描述特征及方法。
Claims (40)
1.一种设备,其包括:
存储器;及
逻辑,其耦合到所述存储器,所述逻辑经配置以:
将指示对数据的请求的信令传输到所述存储器,所述数据定位于一组一或多个RAID条带中;
从所述存储器接收指示所述数据的信令,所述数据包含第一数据、奇偶校验数据及有效地实现对所述数据的可靠性校验的元数据;且
执行有效地确定所述数据的准确性的对所述数据的所述可靠性校验。
2.根据权利要求1所述的设备,其中所述逻辑进一步经配置以:
响应于对所述数据的所述可靠性校验的所述执行而确定所述第一数据的第一部分包含错误;且
响应于所述确定所述第一数据的所述第一部分包含所述错误而使用所述第一数据的第二部分来执行一或多个逻辑运算,所述一或多个逻辑运算有效地创建不包含所述错误的所述第一数据的所述第一部分的版本,所述第一数据的所述第二部分不同于所述第一数据的所述第一部分。
3.根据权利要求2所述的设备,其中:
所述数据的所述第一部分定位于所述存储器的第一存储器裸片上;且
所述第二数据定位于所述存储器的一或多个第二存储器裸片上,所述一或多个第二存储器裸片不同于所述第一存储器裸片。
4.根据权利要求2所述的设备,其中所述逻辑进一步经配置以:
使用所述第一数据的所述第二部分与有效地创建所述第一数据的所述第一部分的所述版本的所述奇偶校验数据来执行一或多个逻辑运算。
5.根据权利要求2所述的设备,其中所述逻辑进一步经配置以:
响应于使用所述第一数据的所述第二部分的所述一或多个逻辑运算的所述执行而将指示所述第一数据的所述第一部分的所述版本的信令传输到额外存储器。
6.根据权利要求5所述的设备,其中所述逻辑进一步经配置以:
将指示所述第一数据的所述第二部分的信令传输到所述额外存储器。
7.根据权利要求6所述的设备,其中所述逻辑进一步经配置以:
响应于对所述数据的所述可靠性校验的所述执行而确定所述第一数据的所述第二部分不包含错误;且
响应于所述确定所述第一数据的所述第二部分不包含所述错误而将指示所述第一数据的所述第二部分的信令传输到所述额外存储器。
8.根据权利要求6所述的设备,其中所述逻辑进一步经配置以:
在指示所述第一数据的所述第一部分的所述版本的所述信令与指示所述第一数据的所述第二部分的所述信令之间进行仲裁以确定在第二信令之前向所述额外存储器传输的第一信令。
9.根据权利要求8所述的设备,其中所述逻辑进一步经配置以:
将指示所述第一数据的所述第一部分的所述版本的所述信令确定为所述第一信令;且
将指示所述第一数据的所述第二部分的所述信令确定为所述第二信令。
10.根据权利要求8所述的设备,其中所述逻辑进一步经配置以:
将指示所述第一数据的所述第二部分的所述信令确定为所述第一信令;且
将指示所述第一数据的所述第一部分的所述版本的所述信令确定为所述第二信令。
11.根据权利要求2所述的设备,其中所述逻辑经配置以根据锁定独立磁盘冗余阵列LRAID架构使用所述第一数据的所述第二部分来执行所述一或多个逻辑运算。
12.根据权利要求1所述的设备,其中所述逻辑进一步经配置以:
响应于对所述数据的所述可靠性校验的所述执行而确定所述第一数据不包含错误;且
响应于所述确定所述第一数据不包含所述错误而将指示所述第一数据的信令传输到额外存储器。
13.根据权利要求1所述的设备,其中所述逻辑进一步经配置以:
执行有效地消耗所述元数据的对所述数据的所述可靠性校验并创建不包含所述元数据的所述第一数据的版本;且
响应于对所述数据的所述可靠性校验的所述执行而将指示不包含所述元数据的所述第一数据的所述版本的信令传输到额外存储器。
14.根据权利要求1所述的设备,其中:
所述元数据包含有效地实现对所述数据的循环冗余校验的一或多个位;且
所述逻辑经配置以使用有效地实现所述循环冗余校验的所述一或多个位来执行对所述数据的所述循环冗余校验。
15.根据权利要求1所述的设备,其中:
所述元数据包含有效地使错误校正码操作能够识别或校正所述数据中的错误的一或多个位;且
所述逻辑经配置以使用有效地使所述错误校正码操作能够识别或校正所述数据中的所述错误的所述一或多个位对所述数据执行所述错误校正码操作。
16.根据权利要求1所述的设备,其中:
所述元数据包含有效地使加密单元能够解密所述数据的一或多个位;且
所述逻辑经配置以使用有效地使所述加密单元能够解密所述数据的所述一或多个位来解密所述数据。
17.根据权利要求1所述的设备,其中:
所述元数据包含有效地实现对所述数据的消息真实性校验的一或多个位;且
所述逻辑经配置以使用有效地实现对所述数据的所述消息真实性校验的所述一或多个位来执行对所述数据的所述消息真实性校验。
18.根据权利要求1所述的设备,其中:
所述第一数据包括128个字节;且
所述奇偶校验数据包括32个字节。
19.根据权利要求1所述的设备,其中所述逻辑进一步经配置以:
从一或多个第一存储器裸片接收所述第一数据;且
从一或多个第二存储器裸片接收所述奇偶校验数据,所述一或多个第二存储器裸片不同于所述一或多个第一存储器裸片。
20.根据权利要求1所述的设备,其中逻辑进一步经配置以:
从单个存储器控制器接收所述数据。
21.根据权利要求1所述的设备,其中所述设备包括计算快速链路CXL装置。
22.根据权利要求1所述的设备,其中所述设备经配置以耦合到符合至少一个计算快速链路CXL标准的互连件。
23.一种方法,其包括:
传输指示对数据的请求的信令;
接收指示所述数据的信令,所述数据包含第一数据、奇偶校验数据及有效地实现对所述数据的可靠性校验的元数据;及
执行对所述数据的所述可靠性校验以确定所述第一数据的第一部分包含错误;及
响应于确定所述第一数据的所述第一部分包含所述错误而使用所述第一数据的第二部分与所述奇偶校验数据来执行一或多个逻辑运算,所述一或多个逻辑运算有效地创建不包含所述错误的所述第一数据的所述第一部分的版本,第一数据的所述第二部分不同于第一数据的所述第一部分。
24.根据权利要求23所述的方法,其进一步包括:
使用所述元数据来执行错误校正码操作;及
响应于执行所述错误校正码操作而确定所述第一数据的所述第一部分包含所述错误。
25.根据权利要求23所述的方法,其进一步包括:
使用所述元数据来执行循环冗余校验;
响应于执行所述循环冗余校验而确定所述第一数据未通过所述循环冗余校验;及
响应于确定所述第一数据未通过所述循环冗余校验而确定所述第一数据的所述第一部分包含所述错误。
26.根据权利要求23所述的方法,其进一步包括:
使用所述元数据来执行加密单元;
响应于执行所述加密单元而未能解密所述第一数据;及
响应于未能解密所述第一数据而确定所述第一数据包含所述错误。
27.根据权利要求23所述的方法,其进一步包括:
使用所述元数据来执行消息真实性校验;
响应于执行所述消息真实性校验而未能认证所述第一数据;及
响应于未能认证所述第一数据而确定所述第一数据包含所述错误。
28.根据权利要求27所述的方法,其进一步包括:
响应于未能认证所述第一数据而将指示错误的信令传输到存储器。
29.根据权利要求23所述的方法,其进一步包括:
响应于确定所述第一数据的所述第一部分包含错误而传输指示所述错误的信令。
30.根据权利要求23所述的方法,其进一步包括:
执行对所述数据的可靠性校验以确定所述第一数据的所述第二部分不包含错误。
31.根据权利要求30所述的方法,其进一步包括:
响应于执行所述可靠性校验而将指示所述第一数据的所述第二部分的信令传输到存储器。
32.根据权利要求31所述的方法,其进一步包括:
响应于使用所述第一数据的所述第二部分执行所述一或多个逻辑运算而将指示不包含所述错误的所述第一数据的所述第一部分的所述版本的信令传输到所述存储器。
33.根据权利要求31所述的方法,其进一步包括:
根据独立磁盘冗余阵列RAID架构使用所述第一数据的所述第二部分与所述奇偶校验数据来执行所述一或多个逻辑运算。
34.一种设备,其包括:
逻辑,其包括:
第一数据路径;及
第二数据路径,其至少部分与所述第一数据路径并行实施,其中所述逻辑经配置以:
接收指示数据的信令,所述数据包含第一数据、奇偶校验数据及有效地实现对所述数据的可靠性校验的元数据;
执行对所述数据的可靠性校验以确定所述数据是否包含错误;且
执行以下至少一者:
响应于确定所述数据不包含所述错误而沿着所述第一数据路径传输指示所述数据的信令;或
响应于确定所述数据包含所述错误而沿着所述第二数据路径传输指示所述数据的信令。
35.根据权利要求34所述的设备,其中所述逻辑进一步经配置以:
从耦合到单个存储器面的逻辑电路系统接收指示所述数据的所述信令。
36.根据权利要求34所述的设备,其中所述第二数据路径包括逻辑电路系统,所述逻辑电路系统经配置以:
对所述数据执行一或多个逻辑运算以创建不包含所述错误的所述数据的版本。
37.根据权利要求34所述的设备,其中所述逻辑进一步包括:
逻辑电路系统,其耦合到所述第一数据路径及所述第二数据路径,所述逻辑电路系统经配置以进行以下至少一者:
将指示沿着所述第一数据路径传输的所述数据的信令传输到存储器;或
将指示沿着所述第二数据路径传输的所述数据的信令传输到所述存储器。
38.根据权利要求37所述的设备,其中所述逻辑电路系统包括多路复用器。
39.根据权利要求34所述的设备,其中所述设备包括计算快速链路CXL装置。
40.根据权利要求34所述的设备,其中所述设备经配置以耦合到符合至少一个计算快速链路CXL标准的互连件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/823,476 US20240070024A1 (en) | 2022-08-30 | 2022-08-30 | Read Data Path for a Memory System |
US17/823,476 | 2022-08-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117631980A true CN117631980A (zh) | 2024-03-01 |
Family
ID=90000572
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311040219.XA Pending CN117631980A (zh) | 2022-08-30 | 2023-08-17 | 用于存储器系统的读取数据路径 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240070024A1 (zh) |
CN (1) | CN117631980A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11989088B2 (en) | 2022-08-30 | 2024-05-21 | Micron Technology, Inc. | Read data path |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6076165A (en) * | 1998-01-16 | 2000-06-13 | Sony Corporation | Method for authenticating digital recording devices |
US10901867B2 (en) * | 2018-01-24 | 2021-01-26 | Apple Inc. | Distributed redundant storage system |
US20210326320A1 (en) * | 2018-10-15 | 2021-10-21 | Ocient Inc. | Data segment storing in a database system |
US20210279007A1 (en) * | 2021-05-06 | 2021-09-09 | Intel Corporation | Device-initiated input/output assistance for computational non-volatile memory on disk-cached and tiered systems |
US11663081B2 (en) * | 2021-05-10 | 2023-05-30 | Western Digital Technologies, Inc. | Storage system and method for data recovery after detection of an uncorrectable error |
US11782778B2 (en) * | 2021-07-28 | 2023-10-10 | Alibaba Singapore Holding Private Limited | Data recovery bypassing protocol for cloud network storage system |
US11868210B2 (en) * | 2021-12-16 | 2024-01-09 | Micron Technology, Inc. | Memory device crossed matrix parity |
CN116974456A (zh) * | 2022-04-21 | 2023-10-31 | 戴尔产品有限公司 | 锁定存储系统中的存储区域的方法、设备和计算机程序产品 |
US20230409245A1 (en) * | 2022-06-21 | 2023-12-21 | Samsung Electronics Co., Ltd. | Method and system for solid state drive (ssd)-based redundant array of independent disks (raid) |
-
2022
- 2022-08-30 US US17/823,476 patent/US20240070024A1/en active Pending
-
2023
- 2023-08-17 CN CN202311040219.XA patent/CN117631980A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240070024A1 (en) | 2024-02-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10585602B2 (en) | Smart memory buffers | |
US11461017B2 (en) | Systems and methods for improving efficiencies of a memory system | |
US10802910B2 (en) | System for identifying and correcting data errors | |
US8234540B2 (en) | Error correcting code protected quasi-static bit communication on a high-speed bus | |
JP2022153654A (ja) | パーシステントメモリシステム等のデータ完全性 | |
EP4109270A1 (en) | Memory bus integrity and data encryption (ide) | |
CN117631980A (zh) | 用于存储器系统的读取数据路径 | |
CN111309248A (zh) | 与安全存储器存取有关的方法、系统和设备 | |
CN116701253A (zh) | 用于管理raid信息的存储器控制器 | |
US20240004759A1 (en) | Cache line data protection | |
US20240004760A1 (en) | Apparatus for redundant array of independent disks | |
US20240004751A1 (en) | Intra-controllers for error correction code | |
EP4202685A1 (en) | Algebraic and deterministic memory authentication and correction with coupled cacheline metadata | |
US20220300370A1 (en) | Configurable Error Correction Code (ECC) Circuitry and Schemes | |
US11989088B2 (en) | Read data path | |
US11687407B2 (en) | Shared error correction code (ECC) circuitry | |
CN116360674A (zh) | 写入请求缓冲器 | |
WO2022047266A1 (en) | Automated error correction with memory refresh | |
US11960770B2 (en) | Access request management using sub-commands | |
US20240071464A1 (en) | Dynamic Address Scramble | |
US20240020262A1 (en) | Storage controller and storage device comprising the same | |
US20230144135A1 (en) | Trusted computing device and operating method thereof | |
US20240007265A1 (en) | Data authenticity and integrity check for data security schemes | |
CN117672334A (zh) | 独立模式 | |
CN116543824A (zh) | 无限数据流的有限时间计数周期计数 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |