CN109478158A - Ddr存储器错误恢复 - Google Patents
Ddr存储器错误恢复 Download PDFInfo
- Publication number
- CN109478158A CN109478158A CN201780043920.3A CN201780043920A CN109478158A CN 109478158 A CN109478158 A CN 109478158A CN 201780043920 A CN201780043920 A CN 201780043920A CN 109478158 A CN109478158 A CN 109478158A
- Authority
- CN
- China
- Prior art keywords
- memory
- command
- queue
- response
- memory controller
- 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 250
- 238000011084 recovery Methods 0.000 title claims description 24
- 238000003860 storage Methods 0.000 claims abstract description 128
- 230000004044 response Effects 0.000 claims abstract description 57
- 238000012545 processing Methods 0.000 claims abstract description 18
- 238000000034 method Methods 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 5
- 230000014759 maintenance of location Effects 0.000 claims description 3
- 238000012790 confirmation Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 13
- 230000007246 mechanism Effects 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 230000005611 electricity Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000005055 memory storage Effects 0.000 description 3
- 238000012797 qualification Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000003032 molecular docking Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 238000012937 correction Methods 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
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000000246 remedial effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 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/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
-
- 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
-
- 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/1012—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 codes or arrangements adapted for a specific type of error
- G06F11/1016—Error in accessing a memory location, i.e. addressing error
-
- 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/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
-
- 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/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
Abstract
在一种形式中,一种存储器控制器包括命令队列、仲裁器和重放队列。所述命令队列接收并存储存储器访问请求。所述仲裁器耦合到所述命令队列,用于向存储器通道提供一系列存储器命令。所述重放队列存储提供给所述存储器通道的所述一系列存储器命令,并且继续存储尚未从所述存储器通道接收到响应的存储器访问命令。当响应指示完成对应的存储器命令而无任何错误时,所述重放队列移除所述对应的存储器命令而不采取进一步的措施。当响应指示完成所述对应的存储器命令而有错误时,所述重放队列重放至少所述对应的存储器命令。在另一种形式中,一种数据处理系统包括所述存储器控制器、存储器访问代理和存储器系统,所述存储器控制器耦合到所述存储器访问代理和所述存储器系统。
Description
背景技术
计算机系统通常将廉价且高密度的动态随机存取存储器(DRAM)芯片用于主存储器。现今销售的大部分DRAM芯片与电子器件工程联合委员会(JEDEC)所颁布的各种双数据速率(DDR)DRAM标准兼容。DDR存储器控制器用于根据公布的DDR标准来管理各种存储器访问代理与DDR DRAM之间的对接。
现代DDR存储器控制器维持队列以存储待决存储器访问请求,以允许它们关于待决存储器访问请求被生成或存储的顺序无序地选取所述待决存储器访问请求,以提高效率。例如,存储器控制器可从队列中检索对给定存储器存储列中的同一行的多个存储器访问请求,并且将它们连续地发出给存储器系统,以避免对当前行进行预充电和激活另一行的开销。
DDR存储器系统包括多种用于错误检测和恢复的机制,诸如奇偶校验位、循环冗余码(CRC)、错误检测码(EDC)、或与数据一起存储在DDR DRAM中的其他纠错码(ECC)。当执行存储器访问时,DDR存储器控制器将所存储的CRC或ECC位与利用存储器访问计算出的CRC或ECC位进行比较。响应于检测到错误,DDR存储器控制器在可能的情况下纠正错误,并将错误报告给操作系统,并且操作系统确定要采取的进一步的纠正措施。然而,DRAM总线以相对高的时钟速率、诸如2400兆赫兹(MHz)操作,并在时钟周期的两个转换上传输数据。由于高数据速率,DDR存储器总线容易受到偶然的随机错误或存储器总线上的“小故障”的影响。虽然已知的DDR存储器控制器具有检测和纠正这些错误的机制,但是由于操作系统调用所引起的开销,这些机制显著降低了系统性能。
附图说明
图1以框图形式示出根据一些实施方案的数据处理系统;
图2以框图形式示出适合于在图1的数据处理系统中使用的加速处理单元(APU);
图3以框图形式示出根据一些实施方案的适合于在图2的APU中使用的存储器控制器和相关联的物理接口(PHY);
图4以框图形式示出根据一些实施方案的适合于在图2的APU中使用的另一存储器控制器和相关联的PHY;
图5以框图形式示出根据一些实施方案的存储器控制器;并且
图6示出与图5的存储器控制器的有限状态机的操作相关联的状态图。
在以下描述中,在不同图示中相同参考符号的使用指示类似或完全相同的项目。除非另外指出,否则词语“耦合”及其相关联的动词形式包括直接连接和通过本领域中已知的手段的间接电气连接两者,并且除非另外指出,否则对直接连接的任何描述也意味着使用适当形式的间接电气连接的替代性实施方案。
具体实施方式
在一种形式中,一种存储器控制器包括命令队列、仲裁器和重放队列。所述命令队列接收并存储存储器访问请求。所述仲裁器耦合到所述命令队列,用于向存储器通道提供一系列存储器命令。所述重放队列存储提供给所述存储器通道的所述一系列存储器命令,并且继续存储尚未从所述存储器通道接收到响应的存储器访问命令。当响应指示完成对应的存储器命令而无任何错误时,所述重放队列移除所述对应的存储器命令而不采取进一步的措施。当响应指示完成所述对应的存储器命令而有错误时,所述重放队列重放至少所述对应的存储器命令。
在另一种形式中,一种存储器控制器包括命令队列、仲裁器、存储器接口队列和重放队列。所述命令队列接收并存储存储器访问请求。所述仲裁器耦合到所述命令队列,用于向存储器通道提供一系列存储器命令。所述存储器接口队列耦合到所述命令队列,用于接收并存储存储器访问请求。所述重放队列耦合到所述存储器接口队列并存储提供给所述存储器通道的所述一系列存储器命令,并且继续存储尚未从所述存储器通道接收到响应的存储器访问命令。只要所述存储器控制器没有检测到任何错误,所述存储器控制器就保持在正常状态中,其中在所述正常状态中,所述存储器接口队列继续从所述命令队列接收由所述仲裁器选取的命令。响应于检测到错误,所述存储器控制器进入恢复状态,在所述恢复状态中,所述重放队列通过将至少一个对应的存储器命令发送到所述存储器接口队列来重放所述至少一个对应的存储器命令。
在又一种形式中,一种数据处理系统包括存储器访问代理、存储器系统和存储器控制器。所述存储器访问代理提供存储器访问请求。所述存储器控制器耦合到所述存储器访问代理和所述存储器系统。所述存储器控制器包括命令队列、仲裁器和重放队列。所述命令队列接收并存储存储器访问请求。所述仲裁器耦合到所述命令队列,用于向所述存储器系统提供一系列存储器命令。所述重放队列存储提供给所述存储器通道的所述一系列存储器命令,并且继续存储尚未从所述存储器系统接收到响应的存储器访问命令。当响应指示完成对应的存储器命令而无任何错误时,所述重放队列移除所述对应的存储器命令而不采取进一步的措施。当响应指示完成所述对应的存储器命令而有错误时,所述重放队列重放至少所述对应的存储器命令。
在再一种形式中,一种方法包括接收并存储存储器访问请求。从所存储的存储器访问请求中向存储器通道提供一系列存储器命令,并且继续存储尚未从所述存储器通道接收到无错误的响应的存储器命令。检测从所述存储器通道接收的响应中是否发生存储器错误。响应于检测到没有存储器错误,存储器控制器保持在正常状态中,并且当在所述正常状态中时,继续从所存储的存储器访问请求之中提供命令。响应于检测到错误,进入恢复状态,并且当在所述恢复状态中时,从发生错误的对应存储器命令开始重放所存储的存储器命令。
图1以框图形式示出根据一些实施方案的数据处理系统100。数据处理系统100大体上包括呈加速处理单元(APU)形式的数据处理器110、存储器系统120、高速外围部件互连(PCIe)系统150、通用串行总线(USB)系统160以及磁盘驱动器170。数据处理器110操作为数据处理系统100的中央处理单元(CPU),并且提供可用于现代计算机系统中的各种总线和接口。这些接口包括两个双数据速率(DDRx)存储器通道、用于连接到PCIe链路的PCIe根联合体、用于连接到USB网络的USB控制器以及到串行高级技术附件(SATA)大容量存储装置的接口。
存储器系统120包括存储器通道130和存储器通道140。存储器通道130包括连接到DDRx总线132的一组双列直插式存储器模块(DIMM),包括在此实例中对应于单独的存储列的代表性DIMM 134、136和138。同样地,存储器通道140包括连接到DDRx总线142的一组DIMM,包括代表性DIMM 144、146和148。
PCIe系统150包括PCIe交换机152,其连接到数据处理器110中的PCIe根复合体、PCIe装置154、PCIe装置156以及PCIe装置158。PCIe装置156继而连接到系统基本输入/输出系统(BIOS)存储器157。系统BIOS存储器157可以是多种非易失性存储器类型中的任一种,诸如只读存储器(ROM)、闪速电可擦除可编程ROM(EEPROM)等。
USB系统160包括连接到数据处理器110中的USB主控器的USB集线器162,以及各自连接到USB集线器162的代表性USB装置164、166和168。USB装置164、166和168可以是诸如键盘、鼠标、闪速EEPROM端口等的装置。
磁盘驱动器170经由SATA总线连接到数据处理器110,并且为操作系统、应用程序、应用文件等提供大容量存储。
数据处理系统100通过提供存储器通道130和存储器通道140而适合于在现代计算应用中使用。存储器通道130和140中的每一者可以连接到现有技术DDR存储器,诸如DDR版本4(DDR4)、低功率DDR4(LPDDR4)、图形DDR版本5(gDDR5)和高带宽存储器(HBM),并且可适用于未来的存储器技术。这些存储器提供高总线带宽和高速操作。同时,这些存储器还提供低功率模式以便为诸如膝上型计算机等电池供电的应用节省电力,并且还提供内置的热监测。
图2以框图形式示出适合于在图1的数据处理系统100中使用的APU 200。APU 200大体上包括中央处理单元(CPU)核心联合体210、图形核心220、一组显示引擎230、存储器管理集线器240、数据组构250、一组外围控制器260、一组外围总线控制器270、系统管理单元(SMU)280以及一组存储器控制器290。
CPU核心联合体210包括CPU核心212和CPU核心214。在此实例中,CPU核心联合体210包括两个CPU核心,但是在其他实施方案中,CPU核心联合体可以包括任意数量的CPU核心。CPU核心212和214中的每一者双向地连接到形成控制组构的系统管理网络(SMN)并连接到数据组构250,并且能够将存储器访问请求提供到数据组构250。CPU核心212和214中的每一者可以是单一核心,或另外可以是具有共享某些资源(诸如高速缓存)的两个或更多个单一核心的核心联合体。
图形核心220是高性能图形处理单元(GPU),其能够以高度集成且并行的方式执行图形操作,诸如顶点处理、片段处理、明暗处理、纹理混合等。图形核心220双向地连接到SMN并连接到数据组构250,并且能够将存储器访问请求提供到数据组构250。在这方面,APU200可支持其中CPU核心联合体210和图形核心220共享同一存储器空间的统一存储器体系结构,或其中CPU核心联合体210和图形核心220共享存储器空间的一部分、同时图形核心220还使用CPU核心联合体210不可访问的专用图形存储器的存储器体系结构。
显示引擎230对由图形核心220生成的对象进行渲染和光栅化以便在监测器上显示。图形核心220和显示引擎230双向地连接到公共存储器管理集线器240以用于统一转变成存储器系统120中的适合的地址,并且存储器管理集线器240双向地连接到数据组构250以用于生成此类存储器访问以及接收从存储器系统返回的读取数据。
数据组构250包括用于在任何存储器访问代理与存储器控制器290之间路由存储器访问请求和存储器响应的纵横交换机。数据组构250还包括由BIOS限定的用于基于系统配置来确定存储器访问的目的地的系统存储器映射,以及用于每个虚拟连接的缓冲器。
外围控制器260包括USB控制器262和SATA接口控制器264,所述控制器中的每一者双向地连接到系统集线器266并连接到SMN总线。这两个控制器仅举例示出可在APU 200中使用的外围控制器。
外围总线控制器270包括系统控制器或“南桥”(SB)272和PCIe控制器274,所述控制器中的每一者双向地连接到输入/输出(I/O)集线器276并连接到SMN总线。I/O集线器276还双向地连接到系统集线器266并连接到数据组构250。因此,例如,CPU核心可通过数据组构250通过I/O集线器276来路由的访问来对USB控制器262、SATA接口控制器264、SB 272或PCIe控制器274中的寄存器进行编程。
SMU 280为本地控制器,其控制在APU 200上的资源的操作并使其间的通信同步。SMU 280管理APU 200上的各种处理器的加电定序,并且通过重置信号、启用信号以及其他信号来控制多个芯片外装置。SMU 280包括图2中未示出的一个或多个时钟源,诸如锁相环路(PLL),以便为APU 200的部件中的每一个提供时钟信号。SMU 280还管理用于各种处理器和其他功能块的功率,并且可从CPU核心212和214以及图形核心220接收所测量的功耗值以确定适合的功率状态。
APU 200还实施各种系统监测和功率节约功能。特别地,一个系统监测功能为热监测。例如,如果APU 200变热,则SMU 280可减小CPU核心212和214和/或图形核心220的频率和电压。如果APU200变得过热,则可将其完全关闭。热事件还可由SMU 280通过SMN总线从外部传感器接收,并且SMU 280作为响应可减小时钟频率和/或电源电压。
图3以框图形式示出根据一些实施方案的适合于在图2的APU200中使用的存储器控制器300和相关联的物理接口(PHY)330。存储器控制器300包括存储器通道310和电源引擎320。存储器通道310包括主机接口312、存储器通道控制器314和物理接口316。主机接口312经由可扩展数据端口(SDP)将存储器通道控制器314双向地连接到数据组构250。物理接口316经由遵守DDR-PHY接口规范(DFI)的总线将存储器通道控制器314双向地连接到PHY330。电源引擎320经由SMN总线双向地连接到SMU 280,经由高级外围总线(APB)双向地连接到PHY 330,并且还双向地连接到存储器通道控制器314。PHY 330具有到存储器通道(诸如图1的存储器通道130或存储器通道140)的双向连接。存储器控制器300是用于使用单个存储器通道控制器314的单个存储器通道的存储器控制器的实例化,并且具有电源引擎320来以下文将进一步描述的方式控制存储器通道控制器314的操作。
图4以框图形式示出根据一些实施方案的适合于在图2的APU 200中使用的另一存储器控制器400和相关联的PHY 440和450。存储器控制器400包括存储器通道410和420以及电源引擎430。存储器通道410包括主机接口412、存储器通道控制器414和物理接口416。主机接口412经由SDP将存储器通道控制器414双向地连接到数据组构250。物理接口416将存储器通道控制器414双向地连接到PHY 440,并且遵守DFI规范。存储器通道420包括主机接口422、存储器通道控制器424和物理接口426。主机接口422经由另一SDP将存储器通道控制器424双向地连接到数据组构250。物理接口426将存储器通道控制器424双向地连接到PHY450,并且遵守DFI规范。电源引擎430经由SMN总线双向地连接到SMU 280,经由APB双向地连接到PHY 440和450,并且还双向地连接到存储器通道控制器414和424。PHY 440具有到存储器通道(诸如图1的存储器通道130)的双向连接。PHY 450具有到存储器通道(诸如图1的存储器通道140)的双向连接。存储器控制器400是具有两个存储器通道控制器的存储器控制器的实例化,并且使用共享的电源引擎430来以下文将进一步描述的方式控制存储器通道控制器414和存储器通道控制器424两者的操作。
图5以框图形式示出根据一些实施方案的存储器控制器500。存储器控制器500大体上包括存储器通道控制器510和电源控制器550。存储器通道控制器510大体上包括接口512、队列514、命令队列520、地址生成器522、内容可寻址存储器(CAM)524、重放队列530、刷新逻辑块532、定时块534、页表536、仲裁器538、纠错码(ECC)校验块542、ECC生成块544和数据缓冲器(DB)546。
接口512具有经由外部总线到数据组构250的第一双向连接,并且具有输出端。在存储器控制器500中,这个外部总线与由英国剑桥的ARM Holdings,PLC指定的高级可扩展接口第四版(称为“AXI4”)兼容,但在其他实施方案中可为其他类型的接口。接口512将存储器访问请求从称为FCLK(或MEMCLK)域的第一时钟域转变到称为UCLK域的在存储器控制器500内部的第二时钟域。类似地,队列514将存储器访问从UCLK域提供到与DFI接口相关联的DFICLK域。
地址生成器522对经由AXI4总线从数据组构250接收的存储器访问请求的地址进行解码。存储器访问请求包括以归一化格式表示的在物理地址空间中的访问地址。地址生成器522将归一化地址变换成可用于对存储器系统120中的实际存储器装置进行寻址以及用于高效地调度相关访问的格式。这种格式包括区域识别符,所述区域识别符使存储器访问请求与特定存储列、行地址、列地址、存储体地址以及存储体群组相关联。在启动时,系统BIOS查询存储器系统120中的存储器装置以确定所述存储器装置的大小和配置,并且对与地址生成器522相关联的一组配置寄存器进行编程。地址生成器522使用存储在配置寄存器中的配置来将归一化地址转变成适合的格式。命令队列520是从数据处理系统100中的存储器访问代理(诸如CPU核心212和214以及图形核心220)接收的存储器访问请求的队列。命令队列520存储由地址生成器522解码的地址字段,以及允许仲裁器538高效地选择存储器访问的其他地址信息,包括访问类型和服务质量(QoS)识别符。CAM 524包括用于强制实施排序规则、诸如写后写(WAW)和写后读(RAW)排序规则的信息。
重放队列530是用于存储由仲裁器538选取的正在等待响应的存储器访问的暂时性队列,所述响应诸如地址和命令奇偶校验响应、DDR4 DRAM的写入循环冗余校验(CRC)响应或GDDR5 DRAM的写入和读取CRC响应。重放队列530访问ECC校验块542以确定返回的ECC是正确的还是指示错误。重放队列530允许在这些周期中的一个的奇偶校验错误或CRC错误的情况下重放访问。
刷新逻辑532包括用于各种下电、刷新和终端电阻(ZQ)校准周期的状态机,所述周期与从存储器访问代理接收的正常的读取和写入存储器访问请求分开生成。例如,如果存储器存储列处于预充电下电,则所述存储器存储列必须周期性地被唤醒以运行刷新周期。刷新逻辑532周期性地生成刷新命令,以防止通过DRAM芯片中的存储单元的存储电容器的电荷泄漏引起的数据错误。另外,刷新逻辑532周期性地校准ZQ以防止由于系统中的热变化所导致的片内终端电阻失配。刷新逻辑532还决定何时将DRAM装置置于不同的下电模式中。
仲裁器538双向地连接到命令队列520,并且是存储器通道控制器510的核心。仲裁器538通过智能地调度访问以提高存储器总线的利用率来提高效率。仲裁器538使用定时块534来通过基于DRAM定时参数确定命令队列520中的特定访问是否适合于发出来强制实施恰当的定时关系。例如,每个DRAM具有在针对同一存储体的激活命令之间的最小指定时间,这个时间被称为“tRC”。定时块534维持一组计数器,所述一组计数器基于在JEDEC规范中指定的这个参数和其他定时参数来确定合格性,并且所述定时块534双向地连接到重放队列530。页表536为仲裁器538维持关于存储器通道的每个存储体和存储列中的活动页的状态信息,并且双向地连接到重放队列530。
响应于从接口512接收的写入存储器访问请求,ECC生成块544根据写入数据来计算ECC。DB 546存储写入数据和针对所接收存储器访问请求的ECC。当仲裁器538选取对应的写入访问以用于分派到存储器通道时,DB 546将组合的写入数据/ECC输出到队列514。
电源控制器550大体上包括到高级可扩展接口版本1(AXI)的接口552、APB接口554和电源引擎560。接口552具有到SMN的第一双向连接,其包括输入端和输出端,所述输入端用于接收在图5中单独地示出的标记为“EVENT_n”的事件信号。APB接口554具有连接到接口552的输出端的输入端,以及用于经由APB连接到PHY的输出端。电源引擎560具有连接到接口552的输出端的输入端,以及连接到队列514的输入端的输出端。电源引擎560包括一组配置寄存器562、微控制器(μC)564、自刷新控制器(SLFREF/PE)566以及可靠的读取/写入训练引擎(RRW/TE)568。配置寄存器562经由AXI总线来编程,并且存储用来控制存储器控制器500中的各种块的操作的配置信息。因此,配置寄存器562具有连接到图5中未详细示出的这些块的输出端。自刷新控制器566是除了通过刷新逻辑532自动生成刷新之外、还允许手动生成刷新的引擎。可靠的读取/写入训练引擎568出于诸如DDR接口读取延时训练和回送测试目的而将连续的存储器访问流提供到存储器或I/O装置。
存储器通道控制器510包括允许其选取存储器访问以用于分派到相关联的存储器通道的电路。为做出期望的仲裁决定,地址生成器522将地址信息解码成预解码信息(包括存储器系统中的存储列、行地址、列地址、存储体地址以及存储体群组),并且命令队列520存储预解码信息。配置寄存器562存储用来确定地址生成器522如何对所接收地址信息进行解码的配置信息。仲裁器538使用解码的地址信息、由定时块534指示的定时合格性信息以及由页表536指示的活动页信息来高效地调度存储器访问,同时遵守其他准则,诸如QoS要求。例如,仲裁器538实施对打开页的访问的偏好以避免改变存储器页所需的预充电和激活命令的开销,并通过将对一个存储体的开销访问与对另一个存储体的读取和写入访问进行交错来隐藏所述开销访问。特别地,在正常操作期间,仲裁器538可以决定在不同的存储体中保持页打开,直到在选择不同的页之前需要对所述存储体进行预充电为止。
仲裁器538使用定时块534来确定待决访问的定时合格性,然后基于确保效率和公平性两者的一组准则来从命令队列520选取合格的访问。仲裁器538支持确保效率和公平性两者的两种机制。首先,仲裁器538通过检查存储在命令队列520中的存储器访问请求的属性以及可编程阈值来执行读取/写入事务管理以确保效率和公平性两者,以控制其中在允许写入取得进展的同时允许进行读取的条件。其次,仲裁器538包括条纹计数器,其确保不允许某些类型的访问条纹无限地占用存储器总线。现在将描述这两种机制。
DDR存储器错误恢复
如上所述,重放队列530是用于存储由仲裁器538选取的正在等待响应的存储器访问的暂时性队列,所述响应诸如地址和命令奇偶校验响应、DDR4 DRAM的写入循环冗余校验(CRC)响应或GDDR5 DRAM的写入和读取CRC响应。重放队列530访问ECC校验块542以确定返回的ECC是正确的还是指示错误。重放队列530允许在这些周期中的一个的奇偶校验错误或CRC错误的情况下重放访问。另外,重放队列530利用当前DDR DRAM中可用的错误报告机制来做出关于重放的决定。通过假设存储器错误通常是暂时性的并且存储器通道将很快恢复,重放队列530提供平滑的备份和重放机制以避免冗长且具破坏性的恢复序列。
一些装置支持数据传输保护(例如,具有错误检测和纠正(EDC)的GDDR5读取和写入数据传输;受写入CRC保护的DDR4写入数据传输)。GDDR5装置提供单向EDC总线来传输CRC数据,借此EDC值始终从装置行进到控制器,而与请求是读取还是写入无关。在GDDR5读取响应数据传输期间,基于参数tcrcrl,与响应数据一起或在响应数据之后不久返回EDC包。在写入数据传输期间,在GDDR5装置接收到写入数据之后返回EDC包(因为所述装置根据所接收写入数据计算EDC值)。在读取时,存储器控制器500根据所接收读取数据响应计算EDC值,并将这个EDC值与从所述读取接收的EDC数据进行比较。在写入时,存储器控制器500计算预期的EDC值并将其暂时地存储在存储器控制器500中,以便稍后与在写入数据周期之后从GDDR5装置返回的EDC分组进行比较。预期的写入数据EDC值存储在存储器控制器500中的EDC队列逻辑(EDCQ)中。
存储器控制器500支持“提前响应”以减少延时,并且重放队列530相对于返回EDC响应的时间“提前”将提前响应返回到存储器通道。于是,这种“提前响应”支持要求在EDC返回“坏”时“取消”响应。存储器控制器500用“提前响应”分组对存储器通道做出响应,并且在EDC返回坏时用“响应取消”对存储器通道做出响应。如果EDC返回“好”,则不需要进一步的措施。在读取或写入请求失败时,重放队列530执行周期请求的重试。在发出时,将写入请求确认回存储器通道。如果写入失败,则重放队列530重试命令并维持写入数据排序,而与存储器通道无关。
DDR4装置仅支持对写入命令进行CRC校验。在最后两个位时间期间,将CRC信息与写入数据一起发送出去。因此,与GDDR5 EDC不同,CRC信息是在DDR4装置中校验的,并且所述装置在检测到错误时断言ALERT#信号。因为ALERT#信号是开漏的并且被认为与DRAMMEMCLK或任何内部控制器时钟不同步,因此需要同步,所以存储器控制器500识别在一系列连续突发中引起错误的特定写入事务的能力是有限的,并且存储器控制器500重放一系列先前发出的写入命令以确保失败的写入的重放。对于GDDR5和DDR4存储器两者,重放队列530重放写入和读取事务,并且停止从命令队列520发出任何新事务,直到失败的周期成功完成为止。
现在将描述重放队列530的具体实现方式及其操作。
图6示出与图5的存储器控制器500的有限状态机600的操作相关联的状态图。有限状态机600由NORMAL(正常)状态610、标记为“WAIT_ACK”的等待确认状态620、标记为“CMD_REP”的命令重放状态630和标记为“ERR_REC”的错误恢复状态640限定。只要没有检测到DRAM错误,存储器控制器500就保持在NORMAL状态610中。在这个状态期间,仲裁器538保持对到存储器系统的存储器访问命令的定序的控制,并通过根据其正常优先级规则从命令队列520中选取命令来发送正常流量。当存储器控制器500检测到从重放队列530返回的DRAM错误时,存储器控制器500离开NORMAL状态610,并暂时地进入WAIT_ACK状态620。然后,队列514停止接受由仲裁器538选择的命令,并且在选定的恢复阶段中开始从重放队列530接收命令。重放队列530取得对发出存储器访问命令的控制并基于DRAM类型和错误类型执行恢复序列。例如,在DDR4系统中的命令/地址错误的情况下,存储器控制器500进入ERR_REC状态640,并且在重放队列530发送出最后一个恢复命令之后的等待时间之前都保持在这个状态中,以保证正确地提供命令。此时,存储器控制器500转换到CMD_REP状态630。在CMD_REP状态630中,重放队列530重放可能已经发生错误的一个或多个命令。当重放队列530发送出可能已经发生错误的最后一个命令时,CMD_REP状态630结束。
例如,典型的序列如下进行:
1)在启动时,有限状态机600在NORMAL状态610中开始。
2)对于DDR4系统,重放队列530对错误进行采样(ALERT_n=0),或者在GDDR5系统中,一旦重放队列530接收到从队列514返回的CRC错误,它就从队列514请求控制,并且有限状态机600移动到WAIT_ACK状态620。
3)仲裁器538和队列514需要在确认恢复请求之前将任何DRAM从下电模式唤醒,并且在重放队列530进行控制时禁用动态下电。
4)一旦队列514确认了请求,状态机600就移动到ERR_REC状态640以执行命令/地址错误恢复序列,或者直接移动到CMD_REP状态630。
5)一旦完成了命令/地址错误恢复,状态机600然后就移动到CMD_REP状态630。
6)在CMD_REP状态630中,错误事务得以重放并重新发送到存储器系统。在另外的错误的情况下,状态机600将保持在CMD_REP状态630中,或者在命令/地址错误的情况下移动到ERR_REC状态640。
7)一旦完成了重放并且冷却时间已经过去,重放队列530就将对事务的控制释放给仲裁器538,并且有限状态机600返回到NORMAL状态610,并且存储器控制器500再次准备好提供正常命令。如果存储器控制器500重放存储器命令并接收到错误达预限定的次数,那么它指示系统错误。重复错误的发生指示实际系统故障而不是存储器总线上的暂时状况,并且它要求操作系统采取其他补救措施。
图5的存储器控制器可以用硬件和软件的各种组合来实现。例如,硬件电路可以包括优先级编码器、有限状态机、可编程逻辑阵列(PLA)等。例如,仲裁器538可以用微控制器来实现,所述微控制器执行所存储的程序指令以评估待决命令的相对定时合格性。在这种情况下,所述指令中的一些可以存储在非暂时性计算机存储器或计算机可读存储介质中以用于由微控制器执行。在各种实施方案中,非暂时性计算机可读存储介质包括:磁盘或光盘存储装置、诸如闪速存储器的固态存储装置、或一个或多个其他非易失性存储器装置。存储在非暂时性计算机可读存储介质上的计算机可读指令可以呈源代码、汇编语言代码、目标代码的形式,或呈可由一个或多个处理器解译和/或执行的其他指令格式。
图5的存储器控制器或其任何部分(诸如重放队列530)可以由呈数据库或其他数据结构形式的计算机可访问数据结构来描述或表示,所述数据结构可以由程序读取并直接或间接地用于制造集成电路。例如,这个数据结构可以是用诸如Verilog或VHDL的高级设计语言(HDL)对硬件功能的行为级描述或寄存器传输级(RTL)描述。所述描述可由合成工具来读取,所述合成工具可以对描述进行合成,以便从合成库产生包括一系列门的网表。所述网表包括一组门,所述一组门还表示包括集成电路的硬件的功能性。所述网表随后可被放置并选路以产生描述要应用于掩模的几何形状的数据集。所述掩模然后在各种半导体制造步骤中用来制造集成电路。可替代地,计算机可存取存储介质上的数据库可以是网表(具有或不具有合成库)或数据集(根据需要)或图形数据系统(GDS)II数据。
虽然已描述特定实施方案,但本领域技术人员应清楚对这些实施方案的各种修改。例如,存储器通道控制器510和/或电源引擎550的内部体系结构在不同的实施方案中可以变化。存储器控制器500可与除DDRx存储器外的其他类型的存储器(诸如高带宽存储器(HBM)、RAMbus DRAM(RDRAM)等)对接。虽然所示出的实施方案示出对应于单独的DIMM的每个存储器存储列,但在其他实施方案中,每个DIMM可支持多个存储列。
因此,所附权利要求意图涵盖落入所公开实施方案的范围内的对所公开实施方案的所有修改。
Claims (15)
1.一种存储器控制器(500),其包括:
命令队列(520),其用于接收并存储存储器访问请求;
仲裁器(538),其耦合到所述命令队列,用于向存储器通道(130/140)提供一系列存储器命令;以及
重放队列(530),其用于存储提供给所述存储器通道(130/140)的所述一系列存储器命令,并且继续存储尚未从所述存储器通道(130/140)接收到响应的存储器访问命令,其中:
当响应指示完成对应的存储器命令而无任何错误时,所述重放队列(530)移除所述对应的存储器命令而不采取进一步的措施;并且
当响应指示完成所述对应的存储器命令而有错误时,所述重放队列(530)重放至少所述对应的存储器命令。
2.如权利要求1所述的存储器控制器(500),其还包括:
纠错码(ECC)校验块(542),其耦合到所述重放队列(530),用于计算所述对应的存储器命令的ECC,并将计算的ECC与从所述存储器通道(130/140)返回的ECC进行比较。
3.如权利要求1所述的存储器控制器(500),其还包括:
存储器接口队列(514),其耦合到所述命令队列(520),用于接收并存储存储器访问请求,其中所述存储器接口队列(514)进一步耦合到所述重放队列(530),用于提供已经分派到所述存储器通道(130/140)的命令和已经响应于所述命令而从所述存储器通道(130/140)接收到的响应。
4.如权利要求3所述的存储器控制器(500),其中:
响应于从所述存储器接口队列(514)接收到响应,所述重放队列(530)通过计算纠错码并将所述纠错码与从所述存储器通道(130/140)接收的纠错码进行比较,来确定所述响应中存在错误。
5.如权利要求3所述的存储器控制器(500),其中:
响应于从所述存储器接口队列(514)接收到具有错误的响应,所述重放队列(530)重放所述对应的存储器命令和在所述对应的存储器命令之后由所述存储器接口队列(514)向所述存储器通道(130/140)提供的任何另外的命令。
6.一种存储器控制器(500),其包括:
命令队列(520),其用于接收并存储存储器访问请求;以及
仲裁器(538),其耦合到所述命令队列(520),用于向存储器通道(130/140)提供一系列存储器命令;
存储器接口队列(514),其耦合到所述命令队列(520),用于接收并存储存储器访问请求;以及
重放队列(530),其耦合到所述存储器接口队列(514),用于存储提供给所述存储器通道(130/140)的所述一系列存储器命令,并且继续存储尚未从所述存储器通道(130/140)接收到响应的存储器访问命令,其中:
只要所述存储器控制器(500)没有检测到任何错误,所述存储器控制器(500)就保持在正常状态中,其中在所述正常状态中,所述存储器接口队列(514)继续从所述命令队列(520)接收由所述仲裁器(500)选取的命令;并且
响应于检测到错误,所述存储器控制器(500)进入恢复状态(630/640),在所述恢复状态(630/640)中,所述重放队列(530)通过将至少一个对应的存储器命令发送到所述存储器接口队列(514)来重放所述至少一个对应的存储器命令。
7.如权利要求6所述的存储器控制器(500),其中:
所述存储器控制器(500)保持在所述恢复状态(630/640)中,直到所述重放队列(530)重放所有生成存储器错误的存储器命令而没有任何另外的错误为止。
8.如权利要求6所述的存储器控制器(500),其中:
响应于命令和地址错误,所述存储器控制器(500)转换到错误恢复状态(640),并且响应于数据错误,所述存储器控制器(500)转换到命令重放状态(630)。
9.如权利要求8所述的存储器控制器(500),其中:
响应于重放可能已经发生错误的命令,所述存储器控制器(500)从所述错误恢复状态(640)转换到所述命令重放状态(630);并且
响应于接收到对所有重放的命令的响应而没有错误,所述存储器控制器(500)从所述命令重放状态(630)转换到所述正常状态(610)。
10.如权利要求8所述的存储器控制器(500),其中:
响应于重放可能已经发生错误的命令,所述存储器控制器(500)从所述错误恢复状态(640)转换到所述命令重放状态(630);并且
响应于另外的错误,所述存储器控制器(500)在所述另外的错误是命令/地址错误的情况下转换到所述错误恢复状态(640),否则转换到所述命令重放状态(630)。
11.如权利要求7所述的存储器控制器(500),其中:
响应于重放所述对应的存储器命令并接收到错误达预定的次数,所述存储器控制器(500)指示系统错误。
12.一种数据处理系统(100),其包括:
存储器访问代理(110/210/220),其用于提供所述存储器访问请求;
存储器系统(120);以及
如权利要求1-11中任一项所述的存储器控制器(290/500),其中所述存储器控制器(290/500)耦合到所述存储器访问代理(110/210/220)和所述存储器系统(120)。
13.一种方法,其包括:
接收并存储存储器访问请求;
从所存储的存储器访问请求中向存储器通道(130/140)提供一系列存储器命令;
存储提供给所述存储器通道(130/140)的所述一系列存储器命令,并且继续存储尚未从所述存储器通道(130/140)接收到无错误的响应的存储器命令;
检测从所述存储器通道(130/140)接收的响应中是否发生错误;
响应于没有检测到存储器错误,保持在正常状态(610)中,并且当在所述正常状态(610)中时,继续从所存储的存储器访问请求之中提供命令;以及
响应于检测到错误,进入恢复状态(630/640),并且当在所述恢复状态(630/640)中时,从发生所述错误的对应的存储器命令开始重放所存储的存储器命令。
14.如权利要求13所述的方法,其还包括:
在进入所述恢复状态(630/640)之前,等待至少一个存储器已经从下电状态被唤醒的确认。
15.如权利要求13所述的方法,其还包括:
保持在所述恢复状态(630/640)中,直到所有生成存储器错误的存储器命令都已经被重放而没有任何另外的错误为止。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662363075P | 2016-07-15 | 2016-07-15 | |
US62/363,075 | 2016-07-15 | ||
US15/375,076 | 2016-12-09 | ||
US15/375,076 US11675659B2 (en) | 2016-07-15 | 2016-12-09 | DDR memory error recovery |
PCT/US2017/041559 WO2018013584A1 (en) | 2016-07-15 | 2017-07-11 | Ddr memory error recovery |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109478158A true CN109478158A (zh) | 2019-03-15 |
Family
ID=57569922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780043920.3A Pending CN109478158A (zh) | 2016-07-15 | 2017-07-11 | Ddr存储器错误恢复 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11675659B2 (zh) |
EP (1) | EP3270290B1 (zh) |
JP (1) | JP7155103B2 (zh) |
KR (1) | KR102350538B1 (zh) |
CN (1) | CN109478158A (zh) |
WO (1) | WO2018013584A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110727530A (zh) * | 2019-09-12 | 2020-01-24 | 无锡江南计算技术研究所 | 基于窗口的错误访存请求重传系统及方法 |
CN114245891A (zh) * | 2019-08-12 | 2022-03-25 | 超威半导体公司 | 用于持久性存储器系统等的数据完整性 |
CN114902197A (zh) * | 2019-12-30 | 2022-08-12 | 超威半导体公司 | 非易失性双列直插式存储器模块的命令重放 |
CN114902198A (zh) * | 2019-12-30 | 2022-08-12 | 超威半导体公司 | 用于异构存储器系统的信令 |
CN116302659A (zh) * | 2023-04-27 | 2023-06-23 | 摩尔线程智能科技(北京)有限责任公司 | Gpu显存错误处理方法及装置、电子设备和存储介质 |
CN116701256A (zh) * | 2023-06-05 | 2023-09-05 | 牛芯半导体(深圳)有限公司 | 多通道仲裁器电路、接口芯片及数据访问方法 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11442813B2 (en) * | 2017-10-11 | 2022-09-13 | Hewlett-Packard Development Company, L.P. | Memory devices including execution trace buffers |
KR20190042970A (ko) * | 2017-10-17 | 2019-04-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
KR102485411B1 (ko) * | 2018-03-02 | 2023-01-06 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
CN110729006B (zh) * | 2018-07-16 | 2022-07-05 | 超威半导体(上海)有限公司 | 存储器控制器中的刷新方案 |
US11768701B2 (en) * | 2019-09-17 | 2023-09-26 | Western Digital Technologies, Inc. | Exception analysis for data storage devices |
US11531601B2 (en) * | 2019-12-30 | 2022-12-20 | Advanced Micro Devices, Inc. | Error recovery for non-volatile memory modules |
US20210357336A1 (en) * | 2020-05-14 | 2021-11-18 | Advanced Micro Devices, Inc. | Efficient memory bus management |
US11561862B2 (en) * | 2020-05-29 | 2023-01-24 | Advanced Micro Devices, Inc. | Refresh management for DRAM |
US11249839B1 (en) * | 2020-08-14 | 2022-02-15 | Rockwell Automation Technologies, Inc. | Method and apparatus for memory error detection |
TWI807919B (zh) * | 2022-07-14 | 2023-07-01 | 群聯電子股份有限公司 | 資料重讀方法、記憶體儲存裝置及記憶體控制電路單元 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070226579A1 (en) * | 2006-02-16 | 2007-09-27 | Intel Corporation | Memory replay mechanism |
US20140317443A1 (en) * | 2013-04-23 | 2014-10-23 | International Business Machines Corporation | Method and apparatus for testing a storage system |
US20150339245A1 (en) * | 2014-05-21 | 2015-11-26 | Arup Chakraborty | Adaptive Scheduling Queue Control For Memory Controllers Based Upon Page Hit Distance Determinations |
CN105474227A (zh) * | 2013-09-24 | 2016-04-06 | 英特尔公司 | 安全存储器重新分区 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3875749B2 (ja) * | 1996-08-08 | 2007-01-31 | 富士通株式会社 | マルチプロセッサ装置及びそのメモリアクセス方法 |
US6256745B1 (en) * | 1998-06-05 | 2001-07-03 | Intel Corporation | Processor having execution core sections operating at different clock rates |
EP0855718A1 (en) | 1997-01-28 | 1998-07-29 | Hewlett-Packard Company | Memory low power mode control |
US6772324B2 (en) * | 1997-12-17 | 2004-08-03 | Intel Corporation | Processor having multiple program counters and trace buffers outside an execution pipeline |
US6625756B1 (en) | 1997-12-19 | 2003-09-23 | Intel Corporation | Replay mechanism for soft error recovery |
US6629271B1 (en) | 1999-12-28 | 2003-09-30 | Intel Corporation | Technique for synchronizing faults in a processor having a replay system |
US6952764B2 (en) * | 2001-12-31 | 2005-10-04 | Intel Corporation | Stopping replay tornadoes |
US7852867B2 (en) * | 2007-07-06 | 2010-12-14 | Integrated Deoice Technology, Inc. | Integrated memory for storing egressing packet data, replay data and to-be egressed data |
US7770064B2 (en) * | 2007-10-05 | 2010-08-03 | International Business Machines Corporation | Recovery of application faults in a mirrored application environment |
US20110040924A1 (en) | 2009-08-11 | 2011-02-17 | Selinger Robert D | Controller and Method for Detecting a Transmission Error Over a NAND Interface Using Error Detection Code |
US8132048B2 (en) * | 2009-08-21 | 2012-03-06 | International Business Machines Corporation | Systems and methods to efficiently schedule commands at a memory controller |
US8307270B2 (en) * | 2009-09-03 | 2012-11-06 | International Business Machines Corporation | Advanced memory device having improved performance, reduced power and increased reliability |
WO2011031260A1 (en) * | 2009-09-10 | 2011-03-17 | Hewlett-Packard Development Company, L.P. | Memory subsystem having a first portion to store data with error correction code information and a second portion to store data without error correction code information |
US8677203B1 (en) * | 2010-01-11 | 2014-03-18 | Apple Inc. | Redundant data storage schemes for multi-die memory systems |
EP2378452B1 (en) * | 2010-04-16 | 2012-12-19 | Thomson Licensing | Method, device and computer program support for verification of checksums for self-modified computer code |
US8365015B1 (en) | 2010-08-09 | 2013-01-29 | Nvidia Corporation | Memory-based error recovery |
US8549383B2 (en) * | 2011-08-24 | 2013-10-01 | Oracle International Corporation | Cache tag array with hard error proofing |
US8549154B2 (en) * | 2011-09-09 | 2013-10-01 | Oracle International Corporation | Recovering stateful read-only database sessions |
US9202577B2 (en) * | 2012-03-30 | 2015-12-01 | Intel Corporation | Solid state drive management in power loss recovery |
US9575892B2 (en) | 2013-03-15 | 2017-02-21 | Nvidia Corporation | Replaying memory transactions while resolving memory access faults |
CN103258820B (zh) * | 2013-04-09 | 2016-12-28 | 北京兆易创新科技股份有限公司 | SPI接口的增强型Flash芯片及芯片封装方法 |
US9250995B2 (en) | 2013-05-29 | 2016-02-02 | Seagate Technology Llc | Protection of data in memory |
US10270705B1 (en) * | 2013-12-18 | 2019-04-23 | Violin Systems Llc | Transmission of stateful data over a stateless communications channel |
US9342402B1 (en) * | 2014-01-28 | 2016-05-17 | Altera Corporation | Memory interface with hybrid error detection circuitry for modular designs |
JP6439363B2 (ja) * | 2014-10-06 | 2018-12-19 | 富士通株式会社 | 記憶制御装置および記憶制御装置の制御方法 |
FR3027176B1 (fr) * | 2014-10-13 | 2016-12-09 | Oberthur Technologies | Rejeu d'un batch de commandes securisees dans un canal securise |
US20180081691A1 (en) * | 2016-09-21 | 2018-03-22 | Qualcomm Incorporated | REPLAYING SPECULATIVELY DISPATCHED LOAD-DEPENDENT INSTRUCTIONS IN RESPONSE TO A CACHE MISS FOR A PRODUCING LOAD INSTRUCTION IN AN OUT-OF-ORDER PROCESSOR (OoP) |
US10642536B2 (en) * | 2018-03-06 | 2020-05-05 | Western Digital Technologies, Inc. | Non-volatile storage system with host side command injection |
US10572185B2 (en) * | 2018-06-01 | 2020-02-25 | Western Digital Technologies, Inc. | Non-volatile storage system with command replay |
US20210382640A1 (en) * | 2021-08-25 | 2021-12-09 | Intel Corporation | Deferred ecc (error checking and correction) memory initialization by memory scrub hardware |
-
2016
- 2016-12-09 US US15/375,076 patent/US11675659B2/en active Active
- 2016-12-13 EP EP16203781.6A patent/EP3270290B1/en active Active
-
2017
- 2017-07-11 JP JP2019501916A patent/JP7155103B2/ja active Active
- 2017-07-11 KR KR1020197003840A patent/KR102350538B1/ko active IP Right Grant
- 2017-07-11 CN CN201780043920.3A patent/CN109478158A/zh active Pending
- 2017-07-11 WO PCT/US2017/041559 patent/WO2018013584A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070226579A1 (en) * | 2006-02-16 | 2007-09-27 | Intel Corporation | Memory replay mechanism |
US20140317443A1 (en) * | 2013-04-23 | 2014-10-23 | International Business Machines Corporation | Method and apparatus for testing a storage system |
CN105474227A (zh) * | 2013-09-24 | 2016-04-06 | 英特尔公司 | 安全存储器重新分区 |
US20150339245A1 (en) * | 2014-05-21 | 2015-11-26 | Arup Chakraborty | Adaptive Scheduling Queue Control For Memory Controllers Based Upon Page Hit Distance Determinations |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114245891A (zh) * | 2019-08-12 | 2022-03-25 | 超威半导体公司 | 用于持久性存储器系统等的数据完整性 |
CN110727530A (zh) * | 2019-09-12 | 2020-01-24 | 无锡江南计算技术研究所 | 基于窗口的错误访存请求重传系统及方法 |
CN110727530B (zh) * | 2019-09-12 | 2021-02-19 | 无锡江南计算技术研究所 | 基于窗口的错误访存请求重传系统及方法 |
CN114902197A (zh) * | 2019-12-30 | 2022-08-12 | 超威半导体公司 | 非易失性双列直插式存储器模块的命令重放 |
CN114902198A (zh) * | 2019-12-30 | 2022-08-12 | 超威半导体公司 | 用于异构存储器系统的信令 |
CN114902197B (zh) * | 2019-12-30 | 2023-06-13 | 超威半导体公司 | 非易失性双列直插式存储器模块的命令重放 |
CN114902198B (zh) * | 2019-12-30 | 2023-10-27 | 超威半导体公司 | 用于异构存储器系统的信令 |
CN116302659A (zh) * | 2023-04-27 | 2023-06-23 | 摩尔线程智能科技(北京)有限责任公司 | Gpu显存错误处理方法及装置、电子设备和存储介质 |
CN116302659B (zh) * | 2023-04-27 | 2023-08-08 | 摩尔线程智能科技(北京)有限责任公司 | Gpu显存错误处理方法及装置、电子设备和存储介质 |
CN116701256A (zh) * | 2023-06-05 | 2023-09-05 | 牛芯半导体(深圳)有限公司 | 多通道仲裁器电路、接口芯片及数据访问方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3270290B1 (en) | 2021-03-24 |
WO2018013584A1 (en) | 2018-01-18 |
US20180018221A1 (en) | 2018-01-18 |
JP7155103B2 (ja) | 2022-10-18 |
EP3270290A1 (en) | 2018-01-17 |
KR20190019209A (ko) | 2019-02-26 |
JP2019527424A (ja) | 2019-09-26 |
US11675659B2 (en) | 2023-06-13 |
KR102350538B1 (ko) | 2022-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109478158A (zh) | Ddr存储器错误恢复 | |
JP7121875B1 (ja) | パーシステントメモリシステム等のデータ完全性 | |
CN109155146A (zh) | 一体式封装后修复装置 | |
CN107924375A (zh) | 用于高速存储器接口的命令仲裁 | |
US11561862B2 (en) | Refresh management for DRAM | |
CN114902198B (zh) | 用于异构存储器系统的信令 | |
JP7357169B2 (ja) | Dramのリフレッシュ管理 | |
US20230125792A1 (en) | Error recovery for non-volatile memory modules | |
CN114902197B (zh) | 非易失性双列直插式存储器模块的命令重放 | |
CN114902186A (zh) | 非易失性存储器模块的错误报告 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |