CN118899021A - 选择性动态随机存取存储器(dram)设备内元数据的存储和存取 - Google Patents
选择性动态随机存取存储器(dram)设备内元数据的存储和存取 Download PDFInfo
- Publication number
- CN118899021A CN118899021A CN202311806214.3A CN202311806214A CN118899021A CN 118899021 A CN118899021 A CN 118899021A CN 202311806214 A CN202311806214 A CN 202311806214A CN 118899021 A CN118899021 A CN 118899021A
- Authority
- CN
- China
- Prior art keywords
- dram
- dimm
- die ecc
- memory
- die
- 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 description 38
- 230000015654 memory Effects 0.000 claims abstract description 139
- 230000009977 dual effect Effects 0.000 claims abstract description 6
- 230000004044 response Effects 0.000 claims description 18
- 239000000872 buffer Substances 0.000 claims description 10
- 238000012937 correction Methods 0.000 claims description 4
- 238000000034 method Methods 0.000 abstract description 24
- 238000012546 transfer Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 11
- 230000008878 coupling Effects 0.000 description 10
- 238000010168 coupling process Methods 0.000 description 10
- 238000005859 coupling reaction Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000011664 signaling Effects 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000000630 rising effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002207 retinal effect Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual 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/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/1068—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 in sector programmable memories, e.g. flash disk
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
- G06F11/0784—Routing of error reports, e.g. with a specific transmission path or data flow
-
- 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
-
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Library & Information Science (AREA)
- Dram (AREA)
Abstract
描述了用于在选择性动态随机存取存储器(DRAM)设备内存储和存取元数据的技术。在一个示例中,一种双列直插式存储器模块(DIMM)包括多个动态随机存取存储器(DRAM)设备,其中多个DRAM设备中的每个DRAM设备包括管芯上ECC比特。所述多个DRAM设备中的至少一个包括用于提供存取以从所述DRAM设备的所述管芯上ECC比特读取和向所述DRAM设备的所述管芯上ECC比特写入的电路模块。所述DIMM包括一个或多个管脚,用于向所述DRAM设备的所述管芯上ECC比特传输元数据或从所述DRAM设备的所述管芯上ECC比特传输元数据。
Description
相关申请
本申请要求享受于2023年5月4日递交的、标题为“STORAGE AND ACCESS OFMETADATAWithin SELECTIVE DYNAMIC RANDOMACCESS MEMORY(DRAM)DEVICES”的美国临时专利申请No.63/464,163的优先权的权益,其完整内容在此通过引用的方式并入本文。
技术领域
概括地说,描述与计算机存储器相关,并且更具体地说,描述与动态随机存取存储器(DRAM)设备中的元数据的存储和存取相关。
背景技术
计算系统的性能高度依赖于其系统存储器的性能。存储器系统将元数据用于各种目的。例如,元数据可以具有多种用途中的任何一种,例如存储以下类型的元数据中的任何一种或全部:安全性、目录、位置、高速缓存标签、完整性、加密、解密、压缩、存储器层次结构比特和/或其他元数据。
附图说明
下面的说明包括对具有通过对本发明的实施例的实现进行举例的方式给出的图示的图的讨论。应该通过举例的方式而不是通过限定的方式来理解这些图。如本文中所使用的,对一个或多个“实施例”或示例的提及应该被理解为:描述包括在本发明的至少一个实现中的特定的特征、结构和/或特性。因此,本文中出现的诸如“在一个实施例中”或者“在替代实施例中”等的短语描述本发明的各个实施例和实现方式,并且并不一定都指的是相同的实施例。然而,它们也不一定是互斥的。
图1A示出了可以在其中实施用于在选择性DRAM设备内存储和存取元数据的技术的DIMM的示例。
图1B示出了DIMM连接器中的DIMM的示例。
图2示出了可以在其中实施用于在选择性DRAM设备内存储和存取元数据的技术的具有数据缓冲器的DIMM的示例。
图3示出了具有管芯上ECC元数据存储和存取方案的DDR5 x4设备的示例。
图4示出了具有管芯上ECC元数据存储和存取方案的DDR6 x4设备的示例。
图5示出了具有管芯上ECC元数据存储和存取方案的DDR6 x8设备的示例。
图6是用于可以在其中实施管芯上ECC元数据存储和存取方案的DRAM设备的状态机图的示例。
图7示出了具有管芯上ECC元数据存储和存取方案的DRAM设备的时序图的两个示例。
图8是可以在其中实施用于在选择性DRAM设备内存储和存取元数据的技术的存储器子系统的实施例的框图。
图9是可以在其中实施用于在选择性DRAM设备内存储和存取元数据的技术的计算系统的实施例的框图。
下面是对某些细节和实现的描述,包括对可能描绘了下文描述的实施例中的一些或所有实施例的图的描述,并且讨论了本文中呈现的发明构思的其他潜在实施例或实现。
具体实施方式
描述了用于在选择性动态随机存取存储器(DRAM)设备内存储和存取元数据的技术。
在一些传统解决方案中,来自标准ECC的比特用于存储元数据。例如,通过使用一个或多个DRAM芯片作为ECC器件,可以在DIMM上获取一定数量的ECC比特。例如,在DDR5中,两个ECC器件在DIMM上提供128个ECC比特。因此,在一个这样的示例中,用于ECC的DRAM设备的128个数据(DQ)比特是用于DIMM的ECC比特。在一个此类示例中,这128个ECC比特中的一些被重新占用以用于存储元数据。使用来自ECC器件中的ECC比特会降低DIMM上的RAS覆盖范围,并可以导致提供低于100%的单设备数据校正(SDDC)。
相比之下,将元数据存储在存储器通道上一个或多个设备的管芯上ECC比特内提供了一种用于存储元数据的方法,而不会损失DIMM级别的容量,也不会通过延长数据突发长度或需要更长的核心时序参数来牺牲性能,并且不会降低RAS能力。在一个示例中,经由与设备内的正常数据比特并行的单个比特来存取管芯上ECC比特。在一个示例中,来自多于一个设备的管芯上ECC比特可以经由缓冲器设备进行整理,以使返回到主机设备的比特流的数量最小化。
图1A示出了可以在其中实施用于在选择性DRAM设备内存储和存取元数据的技术的DIMM100的示例。DIMM 100可以是多种类型的DIMM中的任何一种,该多种类型的DIMM例如无缓冲或无寄存器的DIMM(UDIMM)、带寄存器的DIMM(RDIMM)、低负载的DIMM(LRDIMM)、增强型低负载的DIMM(eLRDIMM)、多级缓冲DIMM(MRDIMM)或其他类型的DIMM。
DIMM 100包括DRAM设备102-1至102-N(也被称为DRAM芯片、存储器设备或存储器芯片)。下文讨论的图8包括存储器模块870的示例,该存储器模块870包括存储器设备840,存储器设备840可以与DRAM设备102-1至102-N相同或相似。再次参考图1A,DRAM设备102-1至102-N中的每一个包括数据阵列104和管芯上ECC阵列106。数据比特与管芯上ECC比特的比率是实施方式特定的。在一个示例中,每128比特的数据具有8比特的管芯上ECC。在大多数情况下,该管芯上ECC只能防止单比特错误。除了由管芯上ECC 106提供的单比特错误保护之外,DIMM 100可以在DIMM 100上具有ECC器件,该ECC器件提供至少单比特错误保护。例如,DRAM设备102-1至102-N中的一个或多个是ECC DRAM设备(例如,用于存储ECC比特的DRAM设备),而其余的是数据DRAM设备(例如,用于存储数据的DRAM设备)。例如,参考图1A,如果DIMM100具有20个DRAM设备(例如,N=20),则四个DRAM设备可以专用于存储ECC比特,并且其余16个设备可以专用于存储数据。因此,一些DIMM包括两种形式的ECC保护:每个DRAM设备的管芯上ECC比特,以及DIMM上的一个或多个专用ECC器件。
在传统的DRAM中,管芯上ECC 106不能从芯片外存取。例如,管芯上ECC完全在DRAM设备内部处理,并且不能由主机(例如,存储器控制器)读取或以其他方式存取。因此,在传统的DRAM设备中,不存在将管芯上ECC比特连接到DRAM的管脚的路径,并且因此不存在将管芯上ECC比特连接到DIMM的管脚的路径。
相反,DRAM 102和DIMM 100包括使得能够从管芯上ECC比特106读取和写入管芯上ECC比特106的路径。例如,DRAM设备102-1至102-N中的至少一个包括一个或多个导电接触部或管脚112(例如,管芯上ECC管脚),主机可以经由该一个或多个导电接触部或管脚112存取管芯上ECC 106。在图1A的示例中,DRAM设备102-2被示为具有用于将管芯上ECC路由到芯片外的管脚112。DRAM芯片102-2的管脚112与DIMM 100的一个或多个导电接触部(例如,管脚或金手指)耦合。
除了连接DRAM设备102-1至102-N的数据阵列104-1至104-N的导电互连108(例如,电线、迹线、总线和/或其他导电互连)之外,一个或多个导电互连110将管芯上ECC比特106与DRAM设备102-2的管芯上ECC管脚112以及DIMM 100的一个或多个管脚114耦合。因此,在图示示例中,DRAM设备102-2包括与DIMM 100的一个或多个管脚114耦合的管芯上ECC管脚112,用于向DRAM设备102-2的管芯上ECC比特106传送元数据以及从DRAM设备102-2的管芯上ECC比特106传送元数据。在一个示例中,在DDRx存储器系统中,所选DRAM设备的一个额外管脚以及每个DIMM的四个额外管脚将返回到主机以用于存取管芯上ECC。例如,一个或多个DRAM设备的管芯上ECC管脚被路由至DIMM 100的一个或多个管芯上ECC管脚,DIMM 100的一个或多个管芯上ECC管脚与DIMM连接器的接触部耦合以实现主机存取。
图1B示出了DIMM连接器134中的DIMM 100的示例。DIMM 100可以插入或固定到PCB或母板136上的DIMM连接器134的插槽中。连接器134包括与DIMM 100的管脚130接触部的管脚132。管脚130经由DIMM 100上或DIMM 100中的导电迹线与DIMM 100上的DRAM芯片102-1至102-N耦合。以此方式,可以经由连接器134向DRAM芯片102-1至102-N传输信号以及从DRAM芯片102-1至102-N传输信号。
再次参考图1A,注意在所示示例中,一个DRAM设备102-2被示为使其管芯上ECC比特从该设备路由出去。在一个示例中,所有DRAM设备102-1至102-N都包括管芯上ECC管脚;然而,仅一个或DRAM设备的子集具有的管芯上ECC管脚与DIMM 100的相应管脚114耦合。在一个示例中,其中管芯上ECC比特不可选择的设备将不能通过不将它们的管芯上ECC管脚路由至在DIMM连接器边缘处的相应管脚114来存取。对于此类其中无法选择管芯上ECC的设备,管芯上ECC管脚可以保持开路或连接到VDD或VSS以将其接地。在一个这样的示例中,DRAM设备可以被配置为禁用管芯上ECC管脚的I/O能力。例如,DRAM设备可以包括一个或多个寄存器来存储值,以使得能够从管芯上ECC比特读取元数据以及向管芯上ECC比特写入元数据。
因此,在图1A的示例中,DIMM 100包括多个动态随机存取存储器(DRAM)设备,其中的每个都具有管芯上ECC比特。多个DRAM设备中的至少一个包括用于提供存取以从所述DRAM设备的所述管芯上ECC比特读取以及向所述DRAM设备的所述管芯上ECC比特写入的电路模块。所选择的DRAM设备包括读/写(R/W)管脚,用于向DRAM设备的管芯上ECC比特传输元数据以及从DRAM设备的管芯上ECC比特传输元数据,并且管芯上ECC比特106被路由到管芯上ECC管脚,以使主机设备能够将元数据比特存储在DIMM 100的一个或多个所选择的DRAM设备的管芯上ECC比特中。
图2示出了可以在其中实施用于在选择性DRAM设备内存储和存取元数据的技术的具有数据缓冲器203至203-M的DIMM 200的示例。在使用数据缓冲器DIMM架构(例如LRDIMM、MRDIMM或其他缓冲DIMM架构)的情况下,我们可以整理元数据通道以减少返回到主机的管脚数量。在图2的示例中,存在两个具有用于元数据存储的管芯上ECC比特106-2、106-3的DRAM设备102-2、102-3。在该示例中,在数据缓冲器203-2中收集或整理比特,并且通过一个或多个管脚205传输整理的元数据。因此,在一些示例中,DIMM可以包括数据缓冲器,用于整理去往多于一个DRAM设备的管芯上ECC比特以及来自多于一个DRAM设备的管芯上ECC比特的元数据。
图3示出了具有管芯上ECC元数据存储和存取方案的DDR5 x4设备的DIMM的示例。在图3的示例中,存在两个通道,每个通道具有八个数据DRAM设备和两个ECC DRAM设备,从而在DIMM 300上总共有十六个数据DRAM设备302A、302B和四个ECC DRAM设备307A、307B。例如,第一通道A包括数据DRAM设备302A和ECC DRAM设备307A,而第二通道B包括数据DRAM设备302B和ECC DRAM设备307B。数据DRAM设备302A、302B存储数据,并且ECCDRAM设备307A、307B存储ECC比特以为DIMM提供纠错能力。在图示示例中,每个通道包括32个数据比特和8个ECC比特。
与传统的DIMM不同,在图3的示例中,两个ECC器件(例如,每个通道一个ECC器件)的管芯上ECC比特从ECC器件路由到DIMM 300的一个或多个管脚。在图3所示的示例中,每个通道选择ECC DRAM设备中的一个来将元数据存储在设备的管芯上ECC比特中。因此,在该示例中,存在读取和写入两个ECC器件(例如,ECC器件307A中的一个和ECC器件307B中的一个)的管芯上ECC比特的路径。因此,除了每通道32比特数据和8比特ECC之外,每通道还有一个元数据/管芯上ECC比特,总共82比特。
图4示出了具有管芯上ECC元数据存储和存取方案的DDR6 x4设备的示例。图4中的示例基于具有两个通道的伪分割管芯,每个通道具有八个用于数据的伪分割x4 DRAM设备和用于ECC的两个伪分割x4 DRAM设备,从而在DIMM 400上总共有十六个伪分割数据DRAM设备402A、402B和四个伪分割ECC DRAM设备407A、407B。例如,第一通道A包括数据DRAM设备402A和ECCDRAM设备407A,而第二通道B包括数据DRAM设备402B和ECC DRAM设备407B。在图示示例中,每个通道包括32个数据比特和8个ECC比特。
在图4的示例中,四个ECC器件的一半(例如,每个通道一个ECC器件或两个ECC器件一半)的管芯上ECC比特被路由离开ECC器件去往DIMM 400的一个或多个管脚。在图4所示的示例中,选择每个通道的伪分割ECC DRAM设备中的一个来将元数据存储在设备的管芯上ECC比特中。例如,示出了用于伪分割ECC器件的一半的管芯上ECC比特415。因此,在该示例中,存在读取和写入四个半ECC器件的管芯上ECC比特的路径(例如,来自伪分割ECC器件407A中的一个的两个比特以及来自伪分割ECC器件407B中的一个的两个比特)。因此,除了每个通道32比特数据和8比特ECC之外,每个通道还有两个元数据/管芯上ECC比特,总共84比特。
图5示出了具有管芯上ECC元数据存储和存取方案的DDR6 x8设备的示例。图5中的示例基于具有两个通道的伪分割管芯,每个通道具有四个用于数据的伪分割x8 DRAM设备和用于ECC的两个伪分割x8 DRAM设备,从而在DIMM 500上总共有八个伪分割数据DRAM设备502A、502B和四个伪分割ECC DRAM设备507A、507B。例如,第一通道A包括数据DRAM设备502A和ECCDRAM设备507A,而第二通道B包括数据DRAM设备502B和ECC DRAM设备507B。在图示示例中,每个通道包括32个数据比特和8个ECC比特。
在图5的示例中,四个ECC器件中的每一个的一半(例如,每个通道一个ECC器件或两个ECC器件一半)的管芯上ECC比特被路由离开ECC器件去往DIMM 500的一个或多个管脚。因此,在该示例中,存在读取和写入四个半ECC器件的管芯上ECC比特(例如,来自伪分割ECC器件507A的两个比特和来自伪分割ECC器件507B的两个比特)的路径。因此,除了每个通道32比特数据和8比特ECC之外,每个通道还有两个元数据/管芯上ECC比特,总共84比特。
图1-图5示出了DIMM和DRAM设备的一些具体示例,其中实现了管芯上ECC元数据存储和存取方案,然而,其他示例也是可能的。例如,不同的实施方式可能会暴露每个通道或每个DIMM的DRAM设备中的一个的管芯上ECC比特。在一个示例中,每个通道的多个DRAM设备中的仅一个的管芯上ECC管脚与DIMM的相应管脚耦合。在另一示例中,多于一个DRAM设备(例如,DIMM上的DRAM设备的子集或全部)的管芯上ECC管脚与DIMM的相应管脚耦合。尽管上文讨论的具体示例示出了被选择用于将元数据存储在管芯上ECC比特中的ECC DRAM设备,但是数据DRAM设备的管芯上ECC比特也可以或者替代地用于存储元数据。
图6是用于其中实施管芯上ECC元数据存储和存取方案的DRAM设备的状态机图600的示例。状态机图600从上电开始,处于状态602。上电后,在状态604,DRAM设备执行重置过程。在一个示例中,在完成重置过程之后,在状态606,DRAM设备空闲,直到在状态608接收到激活命令。一旦DRAM设备被激活,在状态610,可以接收和处理读取或写入命令。例如,在状态612当在激活命令之后接收到写入命令时,DRAM设备执行写入。在一个示例中,当执行写入命令时,管芯上ECC比特(ODECC)也被写入。例如,经由DRAM设备的管芯上ECC管脚(例如,图1A的管脚112)接收的值被写入设备管芯上ECC比特。在另一示例中,在状态614,当在激活命令之后接收到读取命令时,DRAM设备执行读取。在一个示例中,当执行读取命令时,还读取管芯上ECC比特(ODECC)。例如,存储在管芯上ECC比特中的值经由DRAM设备的管芯上ECC管脚读取和传输。
图7示出了具有管芯上ECC元数据存储和存取方案的DRAM设备的时序图的两个示例。时序图示例702针对x4 DDR6分割管芯,如图4所示的示例。时序图示例704针对x8 DDR6分割管芯,如图5所示的示例。
首先参考DDR6分割管芯x4示例702,ECC DRAM设备(例如,ECC DRAM设备407A中的一个的一半)响应于读取或写入命令而通过其数据信号线(ECC<1:0>)传输32位ECC数据。此外,响应于读取或写入命令,通过其管芯上ECC/元数据信号线(METADATA<0>)传输四比特元数据。
参考DDR6分割管芯x8示例704,ECC DRAM设备(例如,ECC DRAM设备507A的一半)响应于读取或写入命令而通过其数据信号线(ECC<3:0>)传输32位ECC数据。此外,响应于读取或写入命令,通过其管芯上ECC/元数据信号线(METADATA<0>)传输八比特元数据。因此,在一个示例中,对于被配置为将管芯上ECC比特路由离开该设备的DRAM设备,对于所有地址的每次读取和写入都存取管芯上ECC比特。
因此,用于暴露DIMM上的一个或多个所选择的DRAM设备的管芯上ECC比特的技术可以使得能够将元数据存储在管芯上ECC比特中,而不损害DIMM的ECC覆盖。
图8是可以在其中实施用于在选择性DRAM设备内存储和存取元数据的技术的存储器子系统的实施例的框图。系统800包括计算设备中的处理器和存储器子系统的元件。处理器810表示可以执行操作系统(OS)和应用的计算平台的处理单元,其可以被统称为存储器的主机或用户。操作系统和应用执行导致存储器存取的操作。处理器810可以包括一个或多个单独的处理器。每个单独的处理器可以包括单个处理单元、多核处理单元,或其组合。处理单元可以是诸如CPU(中央处理单元)之类的主处理器、诸如GPU(图形处理单元)之类的外围处理器,或它们的组合。存储器存取也可以由网络控制器或硬盘控制器等设备发起。此类设备可以与某些系统中的处理器集成或经由总线(例如,PCI快速)附接到处理器,或其组合。系统800可以实施为SOC(片上系统),或用独立组件实施。
对存储器设备的引用可以适用于不同的存储器类型。存储器设备通常是指易失性存储器技术。易失性存储器是这样一种存储器:如果设备断电,其状态(以及因此存储在其中的数据)是不确定的。动态易失性存储器需要刷新存储在设备中的数据以保持状态。动态易失性存储器的一个示例包括DRAM(动态随机存取存储器)或某些变体,例如同步DRAM(SDRAM)。本文描述的存储子系统可以与多种存储技术兼容,例如DDR3(双数据速率版本3,由JEDEC(联合电子设备工程委员会)于2007年6月27日发布的原始版本)。DDR4(DDR版本4,最初由JEDEC于2012年9月发布)、DDR5(DDR版本5,最初于2020年7月发布)、DDR6、LPDDR3(低功耗DDR版本3,JESD209-3B,由JEDEC于2013年8月发布)、LPDDR4(LPDDR版本4,JESD209-4,最初由JEDEC于2014年8月发布)、LPDDR5(LPDDR版本5,JESD209-5A,最初由JEDEC于2020年1月发布)、WIO2(最初由JEDEC于2014年8月发布的宽输入/输出版本2,JESD229-2)、HBM(高带宽存储器,JESD235,最初由JEDEC于2013年10月发布)、HBM2(HBM版本2,JESD235C,最初由JEDEC于2020年1月发布),或者HBM3(HBM版本3,目前正在由JEDEC讨论),或其他存储器技术或者存储器技术的组合,以及基于此类规范的派生或扩展的技术。JEDEC标准可在www.jedec.org上获取。
本文中涉及“RAM”或“RAM设备”的描述可以适用于允许随机存取的任何存储器设备,无论是易失性的还是非易失性的。涉及“DRAM”或“DRAM设备”的描述可以指易失性随机存取存储器设备。存储器设备或DRAM可以指管芯本身、包括一个或多个管芯的封装的存储器产品,或者这二者。在一个实施例中,具有需要刷新的易失性存储器的系统还可以包括非易失性存储器。
存储器控制器820表示系统800的一个或多个存储器控制器电路或设备。存储器控制器820表示响应于处理器810执行操作而生成存储器存取命令的控制逻辑。存储器控制器820存取一个或多个存储器设备840。存储器设备840可以是根据上述任何内容的DRAM设备。在一个实施例中,存储器设备840被组织和管理为不同的通道,其中每个通道耦合到总线和信号线,这些总线和信号线并行耦合到多于一个存储器设备。每个通道都可独立操作。因此,每个通道都是独立存取和控制的,并且针对每个通道,时序、数据传输、命令和地址交换以及其他操作都是独立的。耦合可以指电耦合、通信耦合、物理耦合或这些的组合。物理耦合可以包括直接接触部。电耦合包括接口或互连,其允许组件之间的电流流动,或允许组件之间的信令,或两者兼而有之。通信耦合包括使组件能够交换数据的连接,包括有线或无线连接。
在一个实施例中,每个通道的设置由单独的模式寄存器或其他寄存器设置来控制。在一个实施例中,每个存储器控制器820管理单独的存储器通道,尽管系统800可以被配置为具有由单个控制器管理的多于一个通道,或者在单个通道上具有多于一个控制器。在一个实施例中,存储器控制器820是主机处理器810的一部分,例如在与处理器相同的管芯上实现或在与处理器相同的封装空间中实现的逻辑。
存储器控制器820包括I/O接口逻辑822,用于耦合到存储器总线,例如如上所述的存储器通道。I/O接口逻辑822(以及存储器设备840的I/O接口逻辑842)可以包括管脚、焊盘、连接器、信号线、迹线或电线,或用于连接设备的其他硬件,或者这些的组合。I/O接口逻辑822可以包括硬件接口。如图所示,I/O接口逻辑822至少包括用于信号线的驱动器/收发机。通常,集成电路接口内的电线与焊盘、管脚或连接器耦合,用于对接设备之间的信号线或迹线或其他电线。I/O接口逻辑822可以包括驱动器、接收机、收发机或终端,或者其他电路模块或电路模块的组合,用于在设备之间的信号线上交换信号。信号交换包括发送或接收中的至少一项。虽然显示为将I/O 822从存储器控制器820耦合到存储器设备840的I/O842,但应理解,在并行存取多组存储器设备840的系统800的实施方式中,多于一个存储器设备可包括到存储器控制器820的相同接口的I/O接口。在包括一个或多个存储器模块870的系统800的实施方式中,I/O 842除了存储器设备本身上的接口硬件之外还可以包括存储器模块的接口硬件。其他存储器控制器820将包括到其他存储器设备840的单独接口。
存储器控制器820和存储器设备840之间的总线可以实施为将存储器控制器820耦合到存储器设备840的多于一条信号线。总线通常可以至少包括时钟(CLK)832、命令/地址(CMD)834、写入数据(DQ)和读取数据(DQ)836,以及零个或多个其他信号线838。在一个实施例中,存储器控制器820和存储器之间的总线或连接可以被称为存储器总线。CMD的信号线可以被称为“C/A总线”(或ADD/CMD总线,或指示传输命令(C或CMD)和地址(A或ADD)信息的某个其他名称),并且用于写入和读取DQ的信号线可以被称为“数据总线”。在一个实施例中,独立通道具有不同的时钟信号、C/A总线、数据总线和其他信号线。因此,系统800可以被认为具有多于一条“总线”,在独立的接口路径可以被认为是单独的总线的意义上。应当理解,除了明确示出的线路之外,总线还可以包括选通信令线、警报线、辅助线或其他信号线中的至少一种,或者它们的组合。还将理解,串行总线技术可以用于存储器控制器820和存储器设备840之间的连接。串行总线技术的一个示例是8B10B编码和高速数据传输,其中嵌入时钟在每个方向上的单个差分信号对上。在一个实施例中,CMD 834表示与多于一个存储器设备并行共享的信号线。在一个实施例中,多于一个存储器设备共享CMD 834的编码命令信号线,并且每个存储器设备具有单独的片选(CS_n)信号线以选择单独的存储器设备。
应当理解,在系统800的示例中,存储器控制器820和存储器设备840之间的总线包括辅助命令总线CMD 834以及承载写入和读取数据的辅助总线DQ 836。在一个实施例中,数据总线可以包括用于读取数据以及用于写入/命令数据的双向线。在另一实施例中,辅助总线DQ 836可以包括用于从主机向存储器写入数据的单向写入信号线,并且可以包括用于从存储器向主机读取数据的单向线。根据所选择的存储器技术和系统设计,其他信号838可以伴随总线或子总线,例如选通线DQS。基于系统800的设计,或者如果设计支持多于一个实现,则数据总线可以具有每个存储器设备840更多或更少的带宽。例如,数据总线可以支持具有x32接口、x16接口、x8接口或其他接口的存储器设备。约定“xW”,其中W是指存储器设备40的接口的接口大小或宽度的整数,其表示与存储器控制器820交换数据的信号线的数量。存储设备的接口大小是关于多少个存储器设备可以在系统800中的每个通道上同时使用或并行耦合到相同信号线的控制因子。在一个实施例中,高带宽存储器设备、宽接口设备或堆叠存储器配置或其组合可以启用更宽的接口,例如x128接口、x256接口、x512接口、x1024接口或其他数据总线接口宽度。
在一个实施例中,存储器设备840和存储器控制器820在数据总线上以突发或连续数据传输序列交换数据。突发对应于多个传输周期,这与总线频率有关。在一个实施例中,传输周期可以是用于在相同时钟或选通信号沿(例如,在上升沿)上发生的传输的整个时钟周期。在一个实施例中,每个时钟周期,指的是系统时钟的周期,被分成多于一个单元间隔(UI),其中每个UI是一个传输周期。例如,双倍数据速率传输在时钟信号的两个边沿(例如,上升和下降边沿)上触发。突发可以持续配置数量的UI,这可以是存储在寄存器中的配置,或者可以是动态触发的。例如,八个连续传输周期的序列可以被认为是突发长度8(BL8),并且每个存储器设备840可以在每个UI上传输数据。因此,在BL8上运行的x8存储器设备可以传输64比特数据(8条数据信号线乘以突发中每条线传输的8个数据比特)。应当理解,这个简单的例子仅仅是说明性的,而不是限制性的。
存储器设备840表示系统800的存储器资源。在一个实施例中,每个存储器设备840是单独的存储器管芯。在一个实施例中,每个存储器设备840可以与每个设备或管芯的多于一个(例如,2个)通道对接。每个存储器设备840包括I/O接口逻辑842,其具有由设备的实施确定的带宽(例如,x16或x8或一些其他接口带宽)。I/O接口逻辑842使存储器设备能够与存储器控制器820对接。I/O接口逻辑842可以包括硬件接口并且可以根据存储器控制器的I/O822,但在存储器设备端。在一个实施例中,多个存储器设备840并行连接到相同的命令和数据总线。在另一实施例中,多于一个存储器设备840并行连接到相同的命令总线并且连接到不同的数据总线。例如,系统800可以配置有多于一个并行耦合的存储器设备840,其中,每个存储器设备响应命令,并且存取每个存储器设备内部的存储器资源860。对于写操作,个体存储器设备840可以写入总体数据字的一部分,而对于读取操作,个体存储器设备840可以取出总体数据字的一部分。作为非限制性示例,特定存储器设备可以分别提供或接收128比特数据字的8比特用于读或写事务,或者256比特数据字的8比特或16比特(取决于x8或x16设备)。该字的剩余比特将由其他存储器设备并行提供或接收。
在一个实施例中,存储器设备840直接设置在计算设备的母板或主机系统平台(例如,处理器810设置在其上的PCB(印刷电路板))上。在一个实施例中,存储器设备840可以被组织成存储器模块870。在一个实施例中,存储器模块870表示双列直插式存储器模块(DIMM)。
在一个实施例中,存储器模块870表示多于一个存储器设备的其他组织,用于共享存取或控制电路模块的至少一部分,存取或控制电路模块可以是独立的电路、独立的设备或独立于主机系统平台的单独的板。存储器模块870可以包括多于一个存储器设备840,并且存储器模块可以包括对设置在其上的所包括的存储器设备的多于一个单独通道的支持。在另一实施例中,存储器设备840可以结合到与存储器控制器820相同的封装中,例如通过诸如多芯片模块(MCM)、封装上封装、硅通孔(TSV)的技术或其他技术或者组合。类似地,在一个实施例中,多于一个存储器设备840可以并入存储器模块870中,它们本身可以并入与存储器控制器820相同的封装中。应当理解,对于这些和其他实施例,存储器控制器820可以是主机处理器810的一部分。
存储器设备840各自包括存储器资源860。存储器资源860表示存储器位置或数据存储位置的单独阵列。通常,存储器资源860作为数据行来管理,通过字线(行)和位线(行内的各个比特)控制来存取。存储器资源860可以被组织为存储器的单独的通道、队列和存储体。通道可以指代到存储器设备840内的存储位置的独立控制路径。队列指代与相同片选耦合的存储器设备。队列可以指代跨越多于一个存储器设备的公共位置(例如,不同设备内的相同行地址)。存储体可以指存储器设备840内的存储器位置的阵列。在一个实施例中,存储器的存储体被划分为子存储体,其具有用于子存储体的共享电路模块(例如,驱动器、信号线、控制逻辑)的至少一部分,从而允许进行单独寻址和存取。应当理解,存储位置的通道、队列(rank)、存储体(bank)、子存储体(sub-bank)、存储体组或其他组织,以及这些组织的组合,在它们对物理资源的应用中可以重叠。例如,可以通过特定通道存取同一物理存储器位置作为特定的存储体,该存储体也可以属于一个队列。因此,将以包容性而非排他性的方式来理解存储器资源的组织。
在一个实施例中,存储器设备840包括一个或多个寄存器844。寄存器844表示一个或多个存储设备或存储位置,它们为存储器设备的操作提供配置或设置。在一个实施例中,作为控制或管理操作的一部分,寄存器844可以为存储器设备840提供存储位置以用于存储数据以供存储器控制器820存取。在一个实施例中,寄存器844包括一个或多个模式寄存器。在一个实施例中,寄存器844包括一个或多个多用途寄存器。寄存器844内的位置配置可以将存储器设备840配置为以不同的“模式”操作,其中命令信息可以基于模式来触发存储器设备840内的不同操作。附加地或替代地,不同的模式也可以取决于模式从地址信息或其他信号线触发不同的操作。寄存器844的设置可以指示I/O设置的配置(例如,时序、终止或ODT(管芯上终止)、驱动器配置或其他I/O设置)。
存储器设备840包括控制器850,其表示存储器设备内的用于控制存储器设备内的内部操作的控制逻辑。例如,控制器850对由存储器控制器820发送的命令进行解码并生成内部操作以执行或满足命令。控制器850可以被称为内部控制器并且独立于主机的存储器控制器820。控制器850可基于寄存器844确定选择何种模式,并基于所选择的模式配置操作的内部执行用于存取存储器资源860或其他操作。控制器850生成控制信号以控制存储器设备840内的比特的路由,从而为所选择的模式提供适当的接口并将命令引导至适当的存储器位置或地址。控制器850包括命令逻辑852,它可以对在命令和地址信号线上接收的命令编码进行解码。因此,命令逻辑852可以是或包括命令解码器。使用命令逻辑852,存储器设备可以识别命令并生成内部操作以执行所请求的命令。
再次参考存储器控制器820,存储器控制器820包括命令(CMD)逻辑824,其表示用于生成命令以发送到存储器设备840的逻辑或电路模块。命令的生成可以是指调度之前的命令,或者是准备好被发送的入队命令的准备。通常,存储器子系统中的信令包括在命令内或伴随命令的地址信息,用于指示或选择存储器设备应执行命令的一个或多个存储器位置。响应于存储器设备840的事务调度,存储器控制器820可以经由I/O 822发出命令以使存储器设备840执行命令。在一个实施例中,存储器设备840的控制器850接收并解码经由I/O842从存储器控制器820接收的命令和地址信息。基于接收到的命令和地址信息,控制器850可以控制存储器设备840内的逻辑和电路模块的操作时序以执行命令。控制器850负责遵守存储器设备840内的标准或规范,例如时序和信令要求。存储器控制器820可以通过存取调度和控制来实现对标准或规范的遵守。
存储器控制器820包括调度器830,其表示用于生成和排序事务以发送到存储器设备840的逻辑或电路模块。从一个角度来看,存储器控制器820的主要功能可以说是向存储器设备840调度存储器存取和其他事务。这种调度可以包括生成事务本身以实施处理器810对数据的请求并保持数据的完整性(例如,使用与刷新相关的命令)。事务可以包括一个或多个命令,并导致在一个或多个定时周期(例如时钟周期或单位间隔)上传输命令或数据或这二者。事务可以用于对诸如读取或写入相关命令或其组合的存取,并且其他事务可以包括用于配置、设置、数据完整性或其他命令或其组合的存储器管理命令。
存储器控制器820通常包括诸如调度器830之类的逻辑,用于实现事务的选择和排序以提高系统800的性能。因此,存储器控制器820可以选择应以何种顺序将哪些未完成事务发送到存储器设备840,这通常通过比简单的先进先出算法复杂得多的逻辑来实现。存储器控制器820管理事务到存储器设备840的传输,并管理与事务相关联的时序。在一个实施例中,事务具有确定性时序,其可由存储器控制器820管理并用于确定如何使用调度器830来调度事务。
在一个示例中,存储器设备包括电路模块845,用于提供存取以从管芯上ECC位读取元数据和向管芯上ECC位写入元数据。例如,电路模块845用于响应于读取请求而提供存储在芯管芯上ECC比特中的元数据,并且响应于写入请求而向管芯上ECC比特写入元数据。在一个示例中,寄存器844包括一个或多个寄存器,用于启用或禁用设备的管芯上ECC管脚的I/O能力。
图9是可以在其中实施用于在选择性DRAM设备内存储和存取元数据的技术的计算系统的实施例的框图。系统900表示根据本文中的任意实施例的计算设备,并且可以是膝上型计算机、桌面式计算机、平板计算机、服务器、游戏或娱乐控制系统、扫描仪、复印机、打印机、路由或交换设备、嵌入式计算设备、智能手机、可穿戴设备、物联网设备或其他电子设备。
系统900包括处理器910,其为系统900提供处理、操作管理和指令执行。处理器910可以包括任意类型的微处理器、中央处理单元(CPU)、图形处理单元(GPU)、处理内核、或用于为系统900提供处理的其他处理硬件或者处理器的组合。处理器910控制系统900的总体操作,并且可以是或者包括一个或多个可编程通用或专用微处理器、数字信号处理器(DSP)、可编程控制器、专用集成电路(ASIC)、可编程逻辑器件(PLD)或类似物,或者这些设备的组合。
在一个实施例中,系统900包括耦合至处理器910的接口912,其可以表示用于需要更高带宽连接的系统组件(例如,存储器子系统920或图形接口组件940)的更高速度的接口或高吞吐量的接口。接口912表示接口电路,其可以是独立组件或集成到处理器管芯上。当存在时,图形接口940与图形组件对接,用于向系统900的用户提供视觉显示。在一个实施例中,图形接口940可以驱动向用户提供输出的高清晰度(HD)显示器。高清晰度可以指具有约100PPI(每英寸像素)或更高的像素密度的显示器,并且可以包括诸如全高清(例如1080p)、视网膜显示、4K(超高清或UHD)的格式或其他格式。在一个实施例中,显示器可以包括触摸屏显示器。在一个实施例中,图形接口940基于存储在存储器930中的数据或基于由处理器910执行的操作或二者来生成显示。在一个实施例中,图形接口940基于存储在存储器930中的数据或基于由处理器910执行的操作或二者来生成显示。
存储器子系统920代表系统900的主存储器,并为将由处理器910执行的代码或将在执行例程中使用的数据值提供存储。存储器子系统920可以包括诸如只读存储器(ROM)、闪存器、一种或多种随机-存取存储器(RAM)(例如DRAM)或其他存储器设备的一个或多个存储器设备930,或这些设备的组合。除其他事项外,存储器930存储并托管操作系统(OS)932,以便提供用于系统900中的指令的执行的软件平台。另外,应用程序934可以在OS 932的软件平台上从存储器930执行。应用934表示具有其自己的操作逻辑以执行一个或多个功能的程序。过程936表示向OS 932或一个或多个应用934或组合提供辅助功能的代理或例程。OS932、应用934和过程936提供用于为系统900提供功能的软件逻辑。在一个实施例中,存储器子系统920包括存储器控制器922,该存储器控制器922是用于生成命令并将向存储器930发布命令的存储器控制器。将理解的是,存储器控制器922可以是处理器910的物理部分或接口912的物理部分。例如,存储器控制器922可以是集成存储器控制器,其与处理器910一起集成到电路上。
尽管没有具体示出,但是将理解,系统900可以包括设备之间的一个或多个总线或总线系统,例如存储器总线、图形总线、接口总线或其他总线。总线或其他信号线可以将组件通信地耦合或电耦合在一起,或者将组件通信耦合并且电耦合二者。总线可以包括物理通信线路、点对点连接、桥接、适配器、控制器或其他电路模块或组合。总线可以包括:例如,下列各项中的一个或多个:系统总线、外围组件互连(PCI)总线、超传输或工业标准体系结构(ISA)总线、小型计算机系统接口(SCSI)总线、通用串行总线(USB)、或电气和电子工程师协会(IEEE)标准1394总线。
在一个实施例中,系统900包括接口914,其可以耦合至接口912。接口914可以是比接口912低速的接口。在一个实施例中,接口914表示接口电路,其可以包括独立组件和集成电路模块。在一个实施例中,多于一个用户接口组件或外围组件或二者耦合至接口914。网络接口950向系统900提供通过一个或多个网络与远程设备(例如,服务器或其他计算设备)通信的能力。网络接口950可以包括以太网适配器、无线互连组件、蜂窝网络互连组件、USB(通用串行总线)或其他有线或无线的基于标准的或专用接口。网络接口950可以与远程设备交换数据,这可以包括发送存储在存储器中的数据或接收要存储在存储器中的数据。
在一个实施例中,系统900包括一个或多个输入/输出(I/O)接口960。I/O接口960可以包括一个或多个接口组件,通过这些接口组件用户与系统900交互(例如,音频、字母数字、触觉/触摸或其他对接)。外围接口970可以包括上文没有具体提到的任何硬件接口。外围设备通常指的是依赖性地连接到系统900的设备。依赖连接是系统900提供在其上执行操作的软件平台或硬件平台或这二者的位置,并且用户与该依赖连接进行交互。
在一个实施例中,系统900包括用于以非易失性方式存储数据的存储子系统980。在一个实施例中,在某些系统实现中,存储980的至少某些组件可以与存储器子系统920的组件重叠。存储子系统984包括存储设备984,其可以是或者包括:用于以非易失性方式存储大量数据的任何常规介质,诸如一个或多个基于磁的、固态的或光的盘、或者它们的某种组合。存储984以持久状态保持代码或指令以及数据986(即,尽管系统900电力中断,但值仍然保留)。存储984可被一般化认为是“存储器”,尽管存储器930通常是用于向处理器910提供指令的执行或操作存储器。而存储984是非易失性的,存储930可以包括易失性存储器(即,如果系统900电力中断,则数据的值或状态是不确定的)。在一个实施例中,存储子系统980包括用于与存储984对接的控制器982。在一个实施例中,控制器982是接口914或处理器910的物理部分,或者可以在处理器910和接口914二者中包括电路或逻辑。
电源902向系统900的组件供电。更具体地说,电源902通常与系统900中的一个或多个电源供应对接,以向系统900的组件供电。在一个实施例中,电源供应904包括AC到DC(交流到直流)适配器,以插入壁装电源插座。这样的AC电源可以是可再生能源(例如,太阳能)电源902。在一个实施例中,电源902包括DC电源,例如外部AC至DC转换器。在一个实施例中,电源902或电源供应904包括用于通过与充电场接近来进行充电的无线充电硬件。在一个实施例中,电源902可以包括内部电池或燃料电池源。
因此,本文描述的用于存储和存取元数据的技术可以实现元数据存储,而不会损害数据的RAS/ECC覆盖范围并且不会额外减少元数据存储的容量。另外,本文描述的技术使得能够与数据比特并行地存取元数据并在一个或多个单独的通道上传输它们,使得不需要扩展突发,也不需要向核心定时参数添加额外的时间。
下面是用于在选择性DRAM设备内存储和存取元数据的技术的示例。
示例1:一种双列直插式存储器模块(DIMM)包括多个动态随机存取存储器(DRAM)设备,其中,多个DRAM设备中的每个DRAM设备包括管芯上ECC比特,并且其中,所述多个DRAM设备中的至少一个包括用于提供存取以从所述DRAM设备的所述管芯上ECC比特读取以及向所述DRAM设备的所述管芯上ECC比特写入的电路模块,以及用于向所述DRAM设备的所述管芯上ECC比特传输元数据或从所述DRAM设备的所述管芯上ECC比特传输元数据的管脚。
示例2:根据示例1所述的DIMM,其中:所述DRAM设备包括与所述DIMM的所述管脚耦合的管芯上ECC管脚,用于向所述DRAM设备的所述管芯上ECC比特传输元数据以及从所述DRAM设备的所述管芯上ECC比特传输元数据。
示例3:根据示例1或示例2所述的DIMM,其中:所述DRAM设备的所述电路模块用于响应于读取请求来提供存储在所述管芯上ECC比特中的所述元数据。
示例4:根据示例1-3中任意示例所述的DIMM,其中:所述DRAM设备包括用于响应于写入请求而向所述管芯上ECC比特写入所述元数据的电路模块。
示例5:根据示例1-4中任意示例所述的DIMM,其中:所述DRAM设备包括一个或多个寄存器,用于存储值以使得能够从所述管芯上ECC比特读取元数据以及向所述管芯上ECC比特写入元数据。
示例6:根据示例1-5中任意示例所述的DIMM,其中:用于提供存取以从所述管芯上ECC比特读取以及向所述管芯上ECC比特写入的所述DRAM设备是所述DIMM的ECC器件。
示例7:根据示例1-6中任意示例所述的DIMM,其中:每个通道仅所述多个DRAM设备中的一个DRAM设备的管芯上ECC管脚与所述DIMM的所述管脚耦合。
示例8:根据示例1-7中任意示例所述的DIMM,其中:所述多个DRAM设备中的多于一个DRAM设备的所述管芯上ECC管脚与所述DIMM的所述管脚耦合。
示例9:根据示例8所述的DIMM,还包括:用于整理去往所述多于一个DRAM设备的所述管芯上ECC比特以及来自所述多于一个DRAM设备的所述管芯上ECC比特的元数据的数据缓冲器。
示例10:根据示例1-9中任意示例所述的DIMM,其中:所述多个DRAM设备中的所选择的DRAM设备的所述管芯上ECC管脚与所述DIMM的所述管脚耦合;并且所述多个DRAM设备中的未被选择的DRAM设备的所述管芯上ECC管脚开路,或者连接至VDD或VSS。
示例11:一种存储器设备,其包括:管芯上纠错码(ECC)比特;用于提供存取以从所述管芯上ECC比特读取以及向所述管芯上ECC比特写入的电路模块;以及一个或多个输入/输出(I/O)管脚,用于向所述管芯上ECC比特传输元数据或从所述管芯上ECC比特传输元数据。
示例12:根据示例11所述的存储器设备,其中:所述电路模块用于响应于读取请求来提供存储在所述管芯上ECC比特中的所述元数据。
示例13:根据示例11或12所述的存储器设备,其中:所述电路模块用于响应于写入请求而向所述管芯上ECC比特写入所述元数据。
示例14:根据示例11-13中任意示例所述的存储器设备,还包括:一个或多个寄存器,用于存储值以使得能够从所述存储器设备的所述管芯上ECC比特读取元数据以及向从所述存储器设备的所述管芯上ECC比特写入元数据。
示例15:一种系统,其包括:母板,其包括双列直插式存储器模块(DIMM)连接器;以及DIMM,其包括:多个动态随机存取存储器(DRAM)设备,其中,DRAM设备中的至少一个DRAM设备包括管芯上ECC比特,并且其中,所述多个DRAM设备中的至少一个DRAM设备包括用于提供存取以从所述DRAM设备的所述管芯上ECC比特读取以及向所述DRAM设备的所述管芯上ECC比特写入的电路模块,以及由所述DIMM连接器接纳的靠近所述DIMM的边缘的多个导电接触部,其中,导电接触部中的一个或多个导电接触部用于向所述DRAM设备中的至少一个DRAM设备的所述管芯上ECC比特传输元数据以及从所述DRAM设备中的至少一个DRAM设备的所述管芯上ECC比特传输元数据。
示例16、根据示例15所述的系统,其中:用于提供存取以从所述管芯上ECC比特读取以及向所述管芯上ECC比特写入的所述DRAM设备是所述DIMM的ECC器件。
示例17:根据示例15或16所述的系统,其中:所述多个DRAM设备中的仅一个DRAM设备的管芯上ECC管脚与所述DIMM的所述一个或多个导电接触部耦合。
示例18:根据示例15-17中任意示例所述的系统,其中:所述多个DRAM设备中的多于一个DRAM设备的所述管芯上ECC管脚与所述DIMM的所述一个或多个导电接触部耦合。
示例19:根据示例18所述的系统,还包括:用于整理去往所述多于一个DRAM设备的所述管芯上ECC比特以及来自所述多于一个DRAM设备的所述管芯上ECC比特的元数据的数据缓冲器。
示例20:根据示例15-19中任一项所述的系统,还包括下列一项或多项:存储器控制器、处理器和显示器。
本文中示出的流图提供了各个处理动作序列的示例。流程图可以指示要由软件或固件例程执行的操作以及物理操作。在一个实施例中,流程图可以示出有限状态机(FSM)的状态,其可以在硬件和/或软件中实现。虽然以特定的顺序或次序示出,但除非另有说明,否则动作的次序是可以修改的。因此,所示出的实施例应该仅被理解为示例,并且可以以不同的次序来执行过程,并且一些动作可以并行执行。另外,一个或多个动作在各个实施例中可以省略,因此,不是在每个实施例中都需要所有的动作。其他过程流是可能的。
根据各个操作或功能在本文中描述的程度,可以将这些操作或功能描述或定义为软件代码、指令、配置和/或数据。内容可以是可直接执行的(“对象”或(可执行)形式)、源代码或差异代码(“增量”或“补丁”代码)。本文中描述的实施例的软件内容可以经由具有存储在其上的内容的制品,或者经由操作通信接口以便经由该通信接口来发送数据的方法来提供。机器可读存储介质可以使机器执行所描述的功能或操作,并包括存储机器(例如,计算设备、电子系统等)可存取形式的信息的任何机制,例如可记录/不可记录介质(例如,只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存设备等)。通信接口包括与硬连线、无线或光等介质中的任何介质进行接口以便与另一个设备进行通信的任何机制,另一个设备诸如存储器总线接口、处理器总线接口、互联网连接、磁盘控制器等。可以通过提供配置参数和/或发送信号来配置通信接口,以使通信接口准备好以提供描述软件内容的数据信号。通信接口可以经由向该通信接口发送的一个或多个命令或信号来存取。
本文中描述的各个组件可以是用于执行所描述的操作或功能的单元。本文中描述的每个组件包括软件、硬件或这些的组合。这些组件可以实现为软件模块、硬件模块、专用硬件(例如,应用特定的硬件、应用特定的集成电路(ASIC)、数字信号处理器(DSP)等)、嵌入式控制器,硬连线电路模块等等。
上述硬件设计实施例可以体现在半导体芯片内和/或作为用于最终针对半导体制造工艺的电路设计的描述。在后者的情况下,这样的电路描述可以采取(例如,VHDL或Verilog)寄存器传输级(RTL)电路描述、门级电路描述、晶体管级电路描述或掩模描述或者其各种组合的形式。电路描述通常体现在计算机可读存储介质(例如CD-ROM或其他类型的存储技术)上。
除了本文中描述的,可以在不脱离本发明所公开的实施例和实现的的范围的前提下对其进行各种修改。因此,本文中的图示和示例应该被解释为说明性的而非限制性的意义。本发明的范围应该完全参照所附权利要求书来确定。
Claims (25)
1.一种双列直插式存储器模块(DIMM),包括:
多个动态随机存取存储器(DRAM)设备,其中,多个DRAM设备中的每个DRAM设备包括管芯上ECC比特,并且其中,所述多个DRAM设备中的至少一个DRAM设备包括用于提供存取以从所述DRAM设备的所述管芯上ECC比特读取以及向所述DRAM设备的所述管芯上ECC比特写入的电路模块;以及
用于向所述DRAM设备的所述管芯上ECC比特传输元数据或从所述DRAM设备的所述管芯上ECC比特传输元数据的管脚。
2.根据权利要求1所述的DIMM,其中:
所述DRAM设备包括与所述DIMM的所述管脚耦合的管芯上ECC管脚,用于向所述DRAM设备的所述管芯上ECC比特传输元数据以及从所述DRAM设备的所述管芯上ECC比特传输元数据。
3.根据权利要求1所述的DIMM,其中:
所述DRAM设备的所述电路模块用于响应于读取请求而提供存储在所述管芯上ECC比特中的所述元数据。
4.根据权利要求1所述的DIMM,其中:
所述DRAM设备包括用于响应于写入请求而向所述管芯上ECC比特写入所述元数据的电路模块。
5.根据权利要求1所述的DIMM,其中:
所述电路模块用于与读取或写入数据比特并行地对存储在所述管芯上ECC比特中的所述元数据进行读取或写入。
6.根据权利要求1-5中的任一项所述的DIMM,其中:
所述电路模块用于针对所有地址的每个读取以及写入提供对所述管芯上ECC比特的存取。
7.根据权利要求1-5中的任一项所述的DIMM,其中:
所述DRAM设备包括一个或多个寄存器,用于存储值以使得能够从所述管芯上ECC比特读取元数据以及向所述管芯上ECC比特写入元数据。
8.根据权利要求1-5中的任一项所述的DIMM,其中:
用于提供存取以从所述管芯上ECC比特读取以及向所述管芯上ECC比特写入的所述DRAM设备是所述DIMM的ECC DRAM设备。
9.根据权利要求1-5中的任一项所述的DIMM,其中:
用于提供存取以从所述管芯上ECC比特读取以及向所述管芯上ECC比特写入的所述DRAM设备是所述DIMM的数据DRAM设备。
10.根据权利要求1-5中的任一项所述的DIMM,其中:
所述多个DRAM设备中的每个DRAM设备包括管芯上ECC管脚;以及
每个通道所述多个DRAM设备中的仅一个DRAM设备的管芯上ECC管脚与所述DIMM的所述管脚耦合。
11.根据权利要求1-5中的任一项所述的DIMM,其中:
所述多个DRAM设备中的每个DRAM设备包括管芯上ECC管脚;以及
所述多个DRAM设备中的多于一个DRAM设备的管芯上ECC管脚与所述DIMM的所述管脚耦合。
12.根据权利要求11所述的DIMM,还包括:
用于整理去往所述多于一个DRAM设备的所述管芯上ECC比特的元数据以及来自所述多于一个DRAM设备的所述管芯上ECC比特的元数据的数据缓冲器。
13.根据权利要求1-5中的任一项所述的DIMM,其中:
所述多个DRAM设备中的每个DRAM设备包括管芯上ECC管脚;
所述多个DRAM设备中的一个DRAM设备或所述多个DRAM设备的子集是所选择的DRAM设备以用于将元数据存储在相应的管芯上ECC比特中,而所述多个DRAM设备中的其余DRAM设备是未被选择的DRAM设备;
所述多个DRAM设备中的所选择的DRAM设备的管芯上ECC管脚与所述DIMM的所述管脚耦合;并且
所述多个DRAM设备中的未被选择的DRAM设备的管芯上ECC管脚开路,或者连接至VDD或VSS。
14.一种存储器设备,包括:
管芯上纠错码(ECC)比特;
用于提供存取以从所述管芯上ECC比特读取以及向所述管芯上ECC比特写入的电路模块,;以及
一个或多个输入/输出(I/O)管脚,用于向所述管芯上ECC比特传输元数据或从所述管芯上ECC比特传输元数据。
15.根据权利要求14所述的存储器设备,其中:
所述电路模块用于响应于读取请求而提供存储在所述管芯上ECC比特中的所述元数据。
16.根据权利要求14所述的存储器设备,其中:
所述电路模块用于响应于写入请求而向所述管芯上ECC比特写入所述元数据。
17.根据权利要求14-16中的任一项所述的存储器设备,还包括:
一个或多个寄存器,用于存储值以使得能够从所述存储器设备的所述管芯上ECC比特读取元数据以及向所述存储器设备的所述管芯上ECC比特写入元数据。
18.一种系统,包括:
母板,其包括双列直插式存储器模块(DIMM)连接器;以及
DIMM,其包括:
多个动态随机存取存储器(DRAM)设备,其中,DRAM设备中的至少一个DRAM设备包括管芯上ECC比特,并且其中,所述多个DRAM设备中的至少一个DRAM设备包括用于提供存取以从所述DRAM设备的所述管芯上ECC比特读取以及向所述DRAM设备的所述管芯上ECC比特写入的电路模块;以及
由所述DIMM连接器接纳的靠近所述DIMM的边缘的多个导电接触部,其中,导电接触部中的一个或多个导电接触部用于向所述DRAM设备中的至少一个DRAM设备的所述管芯上ECC比特传输元数据以及从所述DRAM设备中的至少一个DRAM设备的所述管芯上ECC比特传输元数据。
19.根据权利要求18所述的系统,其中:
所述DRAM设备的所述电路模块用于响应于读取请求而提供存储在所述管芯上ECC比特中的所述元数据。
20.根据权利要求18所述的系统,其中:
所述DRAM设备包括用于响应于写入请求而向所述管芯上ECC比特写入所述元数据的电路模块。
21.根据权利要求18-20中的任一项所述的系统,其中:
用于提供存取以从所述管芯上ECC比特读取以及向所述管芯上ECC比特写入的所述DRAM设备是所述DIMM的ECC DRAM设备。
22.根据权利要求18-20中的任一项所述的系统,其中:
所述多个DRAM设备中的每个DRAM设备包括管芯上ECC管脚;以及
所述多个DRAM设备中的仅一个DRAM设备的管芯上ECC管脚与所述DIMM的所述一个或多个导电接触部耦合。
23.根据权利要求18-20中的任一项所述的系统,其中:
所述多个DRAM设备中的每个DRAM设备包括管芯上ECC管脚;以及
所述多个DRAM设备中的多于一个DRAM设备的管芯上ECC管脚与所述DIMM的所述一个或多个导电接触部耦合。
24.根据权利要求23所述的系统,还包括:
用于整理去往所述多于一个DRAM设备的管芯上ECC比特的元数据以及来自所述多于一个DRAM设备的管芯上ECC比特的元数据的数据缓冲器。
25.根据权利要求18-20中的任一项所述的系统,还包括下列各项中的一项或多项:
存储器控制器、处理器以及显示器。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202363464163P | 2023-05-04 | 2023-05-04 | |
US63/464,163 | 2023-05-04 | ||
US18/212,057 | 2023-06-20 | ||
US18/212,057 US20230333928A1 (en) | 2023-05-04 | 2023-06-20 | Storage and access of metadata within selective dynamic random access memory (dram) devices |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118899021A true CN118899021A (zh) | 2024-11-05 |
Family
ID=88307838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311806214.3A Pending CN118899021A (zh) | 2023-05-04 | 2023-12-25 | 选择性动态随机存取存储器(dram)设备内元数据的存储和存取 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230333928A1 (zh) |
CN (1) | CN118899021A (zh) |
-
2023
- 2023-06-20 US US18/212,057 patent/US20230333928A1/en active Pending
- 2023-12-25 CN CN202311806214.3A patent/CN118899021A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230333928A1 (en) | 2023-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10755753B2 (en) | Memory device with flexible internal data write control circuitry | |
CN109074851B (zh) | 利用额外系统位的内部错误校验和校正(ecc) | |
US10482947B2 (en) | Integrated error checking and correction (ECC) in byte mode memory devices | |
CN107924693B (zh) | 多区块系统中的可编程的片上端接定时 | |
US9940984B1 (en) | Shared command address (C/A) bus for multiple memory channels | |
CN109478177B (zh) | 双数据率命令总线 | |
US20180096719A1 (en) | Staggering initiation of refresh in a group of memory devices | |
KR102501147B1 (ko) | 메모리에서 에러 체킹 및 정정 코드의 확장된 적용 | |
US20220075689A1 (en) | Memory wordline isolation for improvement in reliability, availability, and scalability (ras) | |
US20170285941A1 (en) | Read delivery for memory subsystem with narrow bandwidth repeater channel | |
US11188264B2 (en) | Configurable write command delay in nonvolatile memory | |
US20220293162A1 (en) | Randomization of directed refresh management (drfm) pseudo target row refresh (ptrr) commands | |
WO2017172286A1 (en) | Write delivery for memory subsystem with narrow bandwidth repeater channel | |
CN117099075A (zh) | 针对长突发长度的存储器数据传送的双倍取得 | |
US11042315B2 (en) | Dynamically programmable memory test traffic router | |
US20220368047A1 (en) | Adapter card with compression attached memory modules | |
US20230044892A1 (en) | Multi-channel memory module | |
EP4155953A1 (en) | Enabling logic for flexible configuration of memory module data width | |
EP4459468A1 (en) | Storage and access of metadata within selective dynamic random access memory (dram) devices | |
US20230333928A1 (en) | Storage and access of metadata within selective dynamic random access memory (dram) devices | |
US20220358072A1 (en) | Memory module adapter card with multiplexer circuitry | |
US20230393740A1 (en) | Four way pseudo split die dynamic random access memory (dram) architecture | |
US20240028531A1 (en) | Dynamic switch for memory devices | |
US20230342035A1 (en) | Method and apparatus to improve bandwidth efficiency in a dynamic random access memory | |
US20240118970A1 (en) | Techniques for memory scrubbing associated with reliability availability and serviceability features |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |