CN114902197A - 非易失性双列直插式存储器模块的命令重放 - Google Patents

非易失性双列直插式存储器模块的命令重放 Download PDF

Info

Publication number
CN114902197A
CN114902197A CN202080090840.5A CN202080090840A CN114902197A CN 114902197 A CN114902197 A CN 114902197A CN 202080090840 A CN202080090840 A CN 202080090840A CN 114902197 A CN114902197 A CN 114902197A
Authority
CN
China
Prior art keywords
volatile
memory
queue
command
read
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.)
Granted
Application number
CN202080090840.5A
Other languages
English (en)
Other versions
CN114902197B (zh
Inventor
王静
詹姆斯·R·马格罗
凯达尔纳特·巴拉里斯南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of CN114902197A publication Critical patent/CN114902197A/zh
Application granted granted Critical
Publication of CN114902197B publication Critical patent/CN114902197B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

将存储器访问命令置于存储器接口队列中并将其从所述存储器接口队列传输到异构存储器通道,所述异构存储器通道耦合到易失性双列直插式存储器模块(DIMM)和非易失性DIMM。将置于所述存储器接口队列中的选定的存储器访问命令存储在重放队列中。置于所述存储器接口队列中的非易失性读在非易失性命令队列(NV队列)中。方法基于通过所述异构存储器通道接收的信息来检测到已经发生需要恢复序列的错误。响应于所述错误,所述方法发起所述恢复序列,所述恢复序列包括(i)传输存储在所述重放队列中的选定的存储器访问命令和(ii)传输存储在所述NV队列中的非易失性读。

Description

非易失性双列直插式存储器模块的命令重放
背景技术
计算机系统典型地将廉价且高密度的动态随机存取存储器(DRAM)芯片用于主存储器。现今销售的大多数DRAM芯片都与由美国电子器件工程联合委员会(Joint ElectronDevices EngineeringCouncil)(JEDEC)颁布的各种双数据速率(DDR)DRAM标准兼容。DDR存储器控制器用于根据公布的DDR标准来管理在各种存储器访问代理与DDR DRAM之间的接口。
具有持久性存储的非易失性双列直插式存储器模块(“NVDIMM-P”)是可替代标准DDR DIMM进行使用但包括持久性存储器的存储级存储器。使用具有支持易失性存储器(诸如DRAM)的存储器通道的持久性或“非易失性”存储器会带来一些新问题。从非易失性DIMM上的非易失性存储器读是比从DRAM读更慢的过程。非易失性存储器读典型地在不确定的时间内完成,这与在确定的已知时间内更快地完成的DRAM读相反。处理诸如此类的差异在设计可与非易失性DIMM交互的存储器控制器时带来各种挑战。
附图说明
图1以框图形式示出了现有技术中已知的加速处理单元(APU)和存储器系统;
图2以框图形式示出了根据一些实施方案的适合在与图1类似的APU中使用的存储器控制器;
图3以框图形式示出了根据一些实施方案的数据处理系统;
图4是根据一些实施方案的用于处理存储器访问请求的过程的流程图;
图5是根据一些实施方案的用于处理错误的过程的流程图;
图6以图示形式示出了图5的过程;并且
图7以图示形式示出了图5的过程的另外部分。
在以下描述中,在不同的附图中使用相同的附图标记指示类似或相同的项。除非另有说明,否则词语“耦合的”及其相关联动词形式包括通过本领域已知的手段的直接连接和间接电连接,并且除非另有说明,否则直接连接的任何描述也暗示使用合适形式的间接电连接的替代实施方案。
具体实施方式
一种存储器控制器包括命令队列、存储器接口队列、非易失性命令队列(NV队列)、重放队列以及重放控制电路。命令队列具有第一输入和输出并且具有多个条目,该第一输入用于接收存储器访问请求,包括易失性读、易失性写、非易失性读和非易失性写。存储器接口队列具有用于接收从命令队列选择的命令的输入和用于耦合到异构存储器通道的输出,该异构存储器通道耦合到至少一个非易失性双列直插式存储器模块(DIMM)。NV队列耦合到命令队列的输出以用于存储置于存储器接口队列中的非易失性读命令。重放队列耦合到命令队列的输出以用于存储置于存储器接口队列中的选定的存储器访问命令。重放控制电路基于通过异构存储器通道接收的信息来检测到已经发生需要恢复序列的错误,并且响应于该错误,发起恢复序列,该恢复序列包括传输存储在重放队列中的选定的存储器访问命令和传输存储在NV队列中的非易失性读。
一种方法对存储系统中的错误进行响应。该方法包括接收多个存储器访问命令,该多个存储器访问命令包括易失性存储器读、易失性存储器写、非易失性存储器读和非易失性存储器写。将用于履行存储器访问请求的存储器访问命令置于存储器接口队列中。将存储器访问命令从存储器接口队列传输到异构存储器通道,该异构存储器通道耦合到易失性双列直插式存储器模块(DIMM)和非易失性DIMM。将置于存储器接口队列中的选定的存储器访问命令存储在重放队列中。将置于存储器接口队列中的非易失性读存储在非易失性命令队列(NV队列)中。基于通过异构存储器通道接收的信息,该方法检测到已经发生需要恢复序列的错误,并且响应于所述错误,发起恢复序列,该恢复序列包括(i)传输存储在重放队列中的选定的存储器访问命令和(ii)传输存储在NV队列中的非易失性读。将置于存储器接口队列中的存储器访问命令存储在至少一个存储队列中。
一种数据处理系统包括:中央处理单元;数据构架,该数据构架耦合到中央处理单元;以及存储器控制器,该存储器控制器耦合到数据构架以用于履行来自中央处理单元的存储器访问请求。存储器控制器包括命令队列、存储器接口队列、非易失性命令队列(NV队列)、重放队列以及重放控制电路。命令队列具有第一输入和输出并且具有多个条目,该第一输入用于接收存储器访问请求,包括易失性读、易失性写、非易失性读和非易失性写。存储器接口队列具有用于接收从命令队列选择的命令的输入和用于耦合到异构存储器通道的输出,该异构存储器通道耦合到至少一个非易失性双列直插式存储器模块(DIMM)。NV队列耦合到命令队列的输出以用于存储置于存储器接口队列中的非易失性读命令。重放队列耦合到命令队列的输出以用于存储置于存储器接口队列中的选定的存储器访问命令。重放控制电路基于通过异构存储器通道接收的信息来检测到已经发生需要恢复序列的错误,并且响应于该错误,发起恢复序列,该恢复序列包括传输存储在重放队列中的选定的存储器访问命令和传输存储在NV队列中的非易失性读。
图1以框图形式示出了现有技术中已知的加速处理单元(APU)100和存储器系统130。APU 100是适合用作主机数据处理系统中的处理器的集成电路,并且一般包括中央处理单元(CPU)核心复合体110、图形核心120、一组显示引擎122、存储器管理集线器140、数据构架125、一组外围控制器160、一组外围总线控制器170以及系统管理单元(SMU)180。
CPU核心复合体110包括CPU核心112和CPU核心114。在该示例中,CPU核心复合体110包括两个CPU核心,但在其他实施方案中,CPU核心复合体110可包括任意数量的CPU核心。CPU核心112和114中的每一者双向连接到形成控制架构的系统管理网络(SMN)并连接到数据构架125,并且能够向数据构架125提供存储器访问请求。CPU核心112和114中的每一者可以是单一核心,或者可以进一步是具有共享某些资源(诸如高速缓存)的两个或更多个单一核心的核心复合体。
图形核心120是能够以高度集成和并行的方式执行诸如顶点处理、片段处理、着色、纹理混合等的图形操作的高性能图形处理单元(GPU)。图形核心120双向连接到SMN并连接到数据构架125,并且能够向数据构架125提供存储器访问请求。在这点上,APU 100可支持其中CPU核心复合体110和图形核心120共享相同的存储器空间的统一存储器架构,或者其中CPU核心复合体110和图形核心120共享存储器空间的一部分而图形核心120还使用CPU核心复合体110无法访问的私有图形存储器的存储器架构。
显示引擎122对由图形核心120生成的对象进行渲染和光栅化以在监视器上显示。图形核心120和显示引擎122双向连接到共用存储器管理集线器140以用于统一转换为存储器系统130中的适当地址,并且存储器管理集线器140双向连接到数据构架125以用于生成此类存储器访问并接收从存储器系统返回的读数据。
数据构架125包括纵横交换机以用于在任何存储器访问代理与存储器管理集线器140之间路由存储器访问请求和存储器响应。该数据构架还包括由系统基本输入/输出系统(BIOS)定义的系统存储器映射,以用于基于系统配置来确定存储器访问的目的地,以及每个虚拟连接的缓冲器。
外围控制器160包括通用串行总线(USB)控制器162和串行高级技术附件(SATA)接口控制器164,其中每一者双向连接到系统集线器166并连接到SMN总线。这两个控制器仅是可用于APU 100中的外围控制器的示例。
外围总线控制器170包括系统控制器或“南桥”(SB)172和外围部件互连快速(PCIe)控制器174,其中每一者双向连接到输入/输出(I/O)集线器176并连接到SMN总线。I/O集线器176也双向连接到系统集线器166并连接到数据构架125。因此,例如,CPU核心可经由数据构架125通过I/O集线器176路由的访问对USB控制器162、SATA接口控制器164、SB172或PCIe控制器174中的寄存器进行编程。APU 100的软件和固件存储在系统数据驱动器或系统BIOS存储器(未示出)中,该系统数据驱动器或系统BIOS存储器可以是各种非易失性存储器类型中的任一种,诸如只读存储器(ROM)、闪存电可擦除可编程ROM(EEPROM)等。典型地,通过PCIe总线来访问BIOS存储器,并且通过SATA接口来访问系统数据驱动器。
SMU 180是控制APU 100上的资源的操作并使它们之间的通信同步的本地控制器。SMU 180管理APU 100上的各种处理器的加电序列,并且经由复位、使能和其他信号来控制多个片外装置。SMU 180包括一个或多个时钟源(未示出),诸如锁相环路(PLL),以便为APU100的部件中的每一者提供时钟信号。SMU 180还管理各种处理器和其他功能块的功率,并且可从CPU核心112和114以及图形核心120接收测量到的功率消耗值以确定适当的功率状态。
在该实施方案中,存储器管理集线器140及其相关联的物理接口(PHY)151和152与APU 100集成。存储器管理集线器140包括存储器通道141和142以及功率引擎149。存储器通道141包括主机接口145、存储器通道控制器143以及物理接口147。主机接口145通过串行存在检测链路(SDP)将存储器通道控制器143双向连接到数据构架125。物理接口147将存储器通道控制器143双向连接到PHY 151,并且符合DDR PHY接口(DFI)规范。存储器通道142包括主机接口146、存储器通道控制器144以及物理接口148。主机接口146通过另一个SDP将存储器通道控制器144双向连接到数据构架125。物理接口148将存储器通道控制器144双向连接到PHY 152,并且符合(DFI规范。功率引擎149通过SMN总线双向连接到SMU 180、通过高级外围总线(APB)连接到PHY 151和152,并且还双向连接到存储器通道控制器143和144。PHY151具有与存储器通道131的双向连接。PHY 152具有与存储器通道133的双向连接。
在该实施方案中,存储器管理集线器140及其相关联的物理接口(PHY)151和152与APU 100集成。存储器管理集线器140包括存储器通道141和142以及功率引擎149。存储器通道141包括主机接口145、存储器通道控制器143以及物理接口147。主机接口145通过串行存在检测链路(SDP)将存储器通道控制器143双向连接到数据构架125。物理接口147将存储器通道控制器143双向连接到PHY 151,并且符合DDR PHY接口(DFI)规范。存储器通道142包括主机接口146、存储器通道控制器144以及物理接口148。主机接口146通过另一个SDP将存储器通道控制器144双向连接到数据构架125。物理接口148将存储器通道控制器144双向连接到PHY 152,并且符合DFI规范。功率引擎149通过SMN总线双向连接到SMU 180、通过高级外围总线(APB)连接到PHY 151和152,并且还双向连接到存储器通道控制器143和144。PHY151具有与存储器通道131的双向连接。PHY 152具有与存储器通道133的双向连接。
存储器系统130包括存储器通道131和存储器通道133。存储器通道131包括连接到DDRx总线132的一组双列直插式存储器模块(DIMM),包括在该示例中对应于单独存储列的代表性DIMM 134、136和138。同样,存储器通道133包括连接到DDRx总线129的一组DIMM,包括代表性DIMM 135、137和139。
APU 100作为主机数据处理系统的中央处理单元(CPU)操作并且提供在现代计算机系统中有用的各种总线和接口。这些接口包括两个双数据速率(DDRx)存储器通道、用于连接到PCIe链路的PCIe根联合体、用于连接到USB网络的USB控制器以及SATA大容量存储装置的接口。
APU 100还实现了各种系统监控和节电功能。特别地,一种系统监控功能是热监控。例如,如果APU 100变热,那么SMU 180可降低CPU核心112和114和/或图形核心120的频率和电压。如果APU100变得太热,那么它可完全关闭。也可由SMU 180经由SMN总线从外部传感器接收热事件,并且作为响应,SMU 180可降低时钟频率和/或电源电压。
图2以框图形式示出了适合在与图1类似的APU中使用的存储器控制器200。存储器控制器200一般包括存储器通道控制器210和功率控制器250。存储器通道控制器210一般包括接口212、存储器接口队列214(“存储器接口队列”、“队列”)、命令队列220、地址生成器222、内容可寻址存储器(CAM)224、包括重放队列230的重放控制逻辑231、刷新逻辑块232、时序块234、页表236、仲裁器238、纠错码(ECC)校验电路242、ECC生成块244、数据缓冲器246、非易失性(NV)缓冲器247以及NV队列248。
接口212具有通过外部总线到数据构架125的第一双向连接,并且具有输出。在存储器控制器200中,该外部总线与由英国剑桥安谋国际科技公司(ARM Holdings,PLC)指定的高级可扩展接口版本4(被称为AXI4)兼容,但是在其他实施方案中,可以是其他类型的接口。接口212将存储器访问请求从被称为FCLK(或MEMCLK)域的第一时钟域变换到在存储器控制器200内部的被称为UCLK域的第二时钟域。类似地,存储器接口队列214提供从UCLK域到与DFI接口相关联的DFICLK域的存储器访问。
地址生成器222对通过AXI4总线从数据构架125接收到的存储器访问请求的地址进行解码。存储器访问请求包括以规范化格式表示的物理地址空间中的访问地址。地址生成器222将规范化地址转换为可用于对存储器系统130中的实际存储器装置进行寻址以及高效地调度相关访问的格式。该格式包括区域标识符,该区域标识符将存储器访问请求与特定存储列、行地址、列地址、存储体地址和存储体组相关联。在启动时,系统BIOS查询存储器系统130中的存储器装置以确定它们的大小和配置,并且对与地址生成器222相关联的一组配置寄存器进行编程。地址生成器222使用存储在配置寄存器中的配置来将规范化地址变换成适当的格式。地址生成器222对存储器(包括NVDIMM-P存储器)的地址范围进行解码,并且存储指示存储器访问请求是否是命令队列220中的对NVDIMM-P的请求的解码的信号。然后,仲裁器238可相对于其他请求以适当的优先级对NVDIMM-P请求进行优先级排序。命令队列220是APU 100中的存储器访问代理(诸如CPU核心112和114以及图形核心120)接收到的存储器访问请求的队列。命令队列220存储由地址生成器222解码的地址字段以及允许仲裁器238高效地选择存储器访问(包括访问类型和服务质量(QoS)标识符)的其他地址信息。CAM 224包括用于实施排序规则(诸如写后写(WAW)和写后读(RAW)排序规则)的信息。
纠错码(ECC)生成块244确定要发送到NVDIMM-P的写数据的ECC。ECC校验电路242对照传入的ECC对接收到的ECC进行校验。
重放队列230是用于存储由仲裁器238挑选的正在等待响应(诸如地址和命令奇偶校验响应)的选定存储器访问的临时队列。重放控制逻辑231访问ECC校验电路242以确定返回的ECC是正确还是指示错误。重放控制逻辑231发起并控制重放序列,其中在这些循环中的一者的奇偶校验或ECC错误的情况下重放访问。重放的命令置于存储器接口队列214中。
刷新逻辑232包括用于与从存储器访问代理接收到的正常读和写存储器访问请求分开地生成的各种断电、刷新和终端电阻(ZQ)校准循环的状态机。例如,如果存储器存储列处于预充电断电,则必须周期性地唤醒该存储器存储列以运行刷新循环。刷新逻辑232周期性地生成刷新命令,以防止由电荷从DRAM芯片中的存储器单元的存储电容器泄漏导致的数据错误。另外,刷新逻辑232周期性地校准ZQ,以防止因系统中的热变化而造成的管芯上终端电阻的失配。
仲裁器238双向地连接到命令队列220,并且是存储器通道控制器210的核心。它通过智能地调度访问来改善效率,以改善存储器总线的使用。仲裁器238使用时序块234以通过基于DRAM时序参数确定命令队列220中的某些访问是否有资格发布来实施适当的时序关系。例如,每个DRAM在激活命令之间具有最小指定时间,被称为“tRC”。时序块234维护一组计数器,该组计数器基于此和JEDEC规范中指定的其他时序参数来确定资格,并且该时序块双向地连接到重放队列230。页表236为仲裁器238维护有关存储器通道的每个存储体和存储列中的活动页面的状态信息,并且双向地连接到重放队列230。
NV缓冲器247将NV读命令存储在NV队列248中,以便既用于重放序列,也用于管理NV读响应。NV缓冲器247双向地连接到存储器接口队列214,以用于处理RD_RDY和SEND命令,如下面进一步描述。
响应于从接口212接收到的存储器访问请求,ECC生成块244根据写数据来计算ECC。数据缓冲器246存储接收到的存储器访问请求的写数据和ECC。它在仲裁器238挑选对应的写访问以供分派到存储器通道时将组合的写数据/ECC输出到存储器接口队列214。
功率控制器250一般包括到高级可扩展接口版本1(AXI)的接口252、APB接口254和功率引擎260。接口252具有到SMN的第一双向连接,该第一双向连接包括用于接收在图2中单独地示出的标记为“EVENT_n”的事件信号的输入,以及输出。APB接口254具有连接到接口252的输出的输入和用于通过APB连接到PHY的输出。功率引擎260具有连接到接口252的输出的输入以及连接到存储器接口队列214的输入的输出。功率引擎260包括一组配置寄存器262、微控制器(μC)264、自刷新控制器(SLFREF/PE)266和可靠的读/写时序引擎(RRW/TE)268。配置寄存器262通过AXI总线进行编程,并且存储配置信息以控制存储器控制器200中的各种块的操作。因此,配置寄存器262具有连接到在图2中未详细地示出的这些块的输出。自刷新控制器266是除了由刷新逻辑232自动地生成刷新之外还允许手动地生成刷新的引擎。可靠的读/写时序引擎268为存储器或I/O装置提供连续存储器访问流,以用于诸如DDR接口最大读延迟(MRL)训练和回送测试等目的。
存储器通道控制器210包括允许其挑选存储器访问以供分派到相关联存储器通道的电路。为了做出期望的仲裁决策,地址生成器222将地址信息解码为预解码信息,包括存储器系统中的存储列、行地址、列地址、存储体地址和存储体组,并且命令队列220存储预解码信息。配置寄存器262存储配置信息以确定地址生成器222如何对接收到的地址信息进行解码。仲裁器238使用解码的地址信息、由时序块234指示的时序合格性信息和由页表236指示的活动页面信息来高效地调度存储器访问,同时遵守其他标准,诸如服务质量(QoS)要求。例如,仲裁器238实施关于对打开页面的访问的偏好,以避免改变存储器页面所需的预充电和激活命令的开销,并且通过将对一个存储体的开销访问与对另一个存储体的读和写访问交错来隐藏所述开销访问。特别地,在正常操作期间,仲裁器238正常地保持页面在不同的存储体中打开,直到需要在选择不同的页面之前进行预充电为止。
图3以框图形式示出了根据一些实施方案的数据处理系统300。数据处理系统300包括APU 310和存储器系统330。未示出系统的各种其他部分以便集中于存储器布置。APU310包括存储器控制器,如存储器控制器200(图2),所述存储器控制器支持异构存储器通道以与存储器系统330介接。除了正常DDRx存储器通道之外,APU 310除了仅具有通过总线342连接的RDIMM 344、346和348的同构存储器通道340之外还支持在具有正常寄存DIMM或RDIMM 334和336以及NVDIMM-P 338两者的异构存储器通道330上的NVDIMM-P 338。在一些实施方案中,支持其他DIMM类型,诸如LRDIMM和UDIMM。虽然在该实施方案中,异构存储器通道330连接到NVDIMM-P和RDIMM,但在一些实施方案中,异构存储器通道具有与所有NVDIMM-P型DIMM介接的能力。
根据NVDIMM-P标准草案,在APU 310上的存储器控制器与NVDIMM-P 338之间的事务受“链路”ECC保护。链路ECC确保在存储器控制器与NVDIMM之间通过总线332的数据传送的数据完整性。根据已知的ECC机制,它防止链路上的由随机或瞬时错误导致的数据损坏。保护根据使用的ECC码而不同。ECC可允许例如具有多位错误检测的单位校正。响应于检测到不可校正错误,存储器控制器可重放事务,使得瞬时或随机错误将不持续,并且还可向操作系统报告可校正和不可校正错误两者。
虽然在该实施方案中描述了NVDIMM-P型DIMM,但其他实施方案采用本文中的技术通过异构存储器通道与其他类型的存储级存储器(SCM)模块介接。如本文所用,SCM指示具有可在系统存储器空间中寻址的非易失性存储器的存储器模块。SCM模块中的非易失性存储器可用RAM缓冲和/或与SCM模块上的RAM配对。从操作系统(OS)的角度看,SCM存储器地址映射与常规DRAM群一起出现。OS典型地意识到SCM定义的地址范围是与常规存储器“不同”类型的存储器。这样区别是为了通知OS这个存储器可能更隐藏并且具有持久的质量。OS可将SCM存储器映射为直接访问存储器或文件系统访问存储器。直接访问意味着OS将SCM地址范围作为物理可寻址存储器进行访问。文件系统访问意味着OS将持久性存储器作为文件系统的一部分进行管理,并且经由基于文件的API来管理对SCM的访问。最终,请求到达在SCM地址范围内的存储器控制器,而这与更高级别的OS如何管理访问无关。
图4是根据一些实施方案的用于处理存储器访问命令的过程400的流程图。过程400集中于非易失性读命令的处理,并且适合用图2的存储器控制器200或其他存储器控制器布置来实现。过程400在框402处开始,其中接收多个存储器访问请求,该多个存储器访问请求包括易失性存储器读、易失性存储器写、非易失性存储器读和非易失性存储器写。在框404处,对用于填充请求的存储器访问命令进行调度并将其置于存储器接口队列中。框404通常涉及对存储器访问请求的存储器访问命令进行解码,并且可包括先将存储器访问命令保持在命令队列中,然后再由诸如仲裁器238(图2)的仲裁器进行调度并置于存储器接口队列中。
在框406处,过程400将置于存储器接口队列中的非易失性读命令存储在非易失性命令队列(NV队列)中。在框408处,通过耦合到至少一个非易失性双列直插式存储器模块(DIMM)的异构存储器通道来传输来自存储器接口队列的存储器访问命令。在一些实施方案中,存储器通道还耦合到至少一个易失性DIMM。
如在框410处所示,对于通过异构存储器通道传输的非易失性读命令,由于读取所请求的数据的不可预测过程,非易失性DIMM通常将在不确定的时间段之后进行响应,这可能是在非易失性DIMM处的非易失性存储器中、在非易失性DIMM处的DRAM中或在介质控制器处的高速缓存中。在不确定的时间段期间,通常从存储器接口队列发送其他存储器访问命令。当非易失性DIMM处的介质控制器完成读取所请求的数据的过程时,它会向存储器控制器发送就绪响应信号“RD_RDY”。该过程等待接收针对每个非易失性读的RD_RDY。典型地,在异构存储器通道的与存储器接口队列在其上接收对存储访问命令的响应的子通道不同的单独子通道上发送和接收RD_RDY信号。例如,对于NVDIMM-P存储器通道,典型地在存储器通道的与在其上传输命令和数据的“CMD”和“DQ”线分开的“RSP_R”线上发送RD_RDY信号。
在框412处,从非易失性DIMM接收RD_RDY信号,该信号指示响应数据可用于非易失性读命令中的相关联的一者。控制电路(在该示例中是NV缓冲器247(图2))接收RD_RDY信号。作为响应,在框414处,NV缓冲器247将SEND命令置于存储器接口队列中。因此,对SEND命令进行调度或排队以用于传输到非易失性DIMM。
在接收到SEND命令时,非易失性DIMM介质控制器将针对非易失性读取命令(包括命令的相关联标识符)读取的响应数据传输回到存储器控制器。该实施方案中的相关联标识符是用于读命令的读标识符“RID”。在框416处,在存储器控制器处从非易失性DIMM接收响应数据和相关联标识符。作为响应,存储器控制器处的NV缓冲器使用关联标识符来识别NV队列中具有相同的相关联标识符的非易失性读命令。在框418处,在履行针对其产生非易失性就绪命令的相关联非易失性读请求时提供响应数据。这履行了请求,并且将相关联的非易失性读命令从NV队列移除。
在一些实施方案中,过程400在框404处包括利用诸如仲裁器238(图2)的仲裁器来调度存储器访问命令。在一个示例中,在将存储器访问命令置于存储器接口队列之前,该过程对非易失性读命令与其他非易失性读命令或易失性读命令进行分组。在一些实施方案中,过程400在框414处还包括在将发送命令置于存储器接口队列之前,在将发送命令置于存储器接口队列之前对发送命令与一组非易失性或易失性读命令进行分组。因为SEND命令的响应时间是确定的,所以存储器接口队列214可能会将SEND命令与其他命令混合到易失性存储器,诸如正常的DDRx读和WRITE,以及非易失性WRITE。
图5是根据一些实施方案的用于处理错误的过程的流程图。图6和图7是示出图5的过程的一系列图600和700。参考图5至图7,过程500一般处理存储命令和提供恢复序列,其中将通道和非易失性DIMM复位,并且然后重放最近的命令以校正错误。虽然以特定顺序示出框,但该顺序不是限制性的,并且一些框持续地并行发生。过程500适合由存储器控制器200(图2)或具有合适的NV队列和重放队列以及错误检测能力的其他存储器控制器来执行。
在框502中,将非易失性读命令的副本存储在NV队列中,因为它们被置于存储器接口队列中以用于传输到相应的非易失性DIMM。这在图600中由以下箭头示出:箭头601,其示出了命令在被选择用于传输时去往存储器接口队列;以及箭头602,其示出了非易失性读命令的副本被存储在NV队列中。其他类型的命令具有存储在重放队列中的副本,如在框504处所示,所述命令包括非易失性写、易失性写、易失性读、SEND命令和其他存储器访问命令。图600在箭头603处示出了其他命令被存储在重放队列中。当存储器控制器处理存储器访问请求时,框502和504持续地发生。
当没有检测到错误时,过程500继续将命令存储在NV队列和重放队列中,它们被保存在那里直到它们被履行并从相应的队列中移除。过程500在框506处检测在DIMM中的一者处或在存储器通道上是否存在需要恢复序列的错误,并且开始恢复序列并根据检测到的错误的性质而进行到框507、508或509中的一者。如果检测到的错误是命令奇偶校验错误,则过程500从框506进行到框507,其中发送命令以清除存储器通道上的每个DIMM处的奇偶校验错误。如果检测到写或读ECC错误,则过程500进行到框508,其中清除写或读ECC状态。如果检测到命令奇偶校验错误和写/读ECC错误两者,则过程500进行到框509,其中发送命令以清除通道上的每个DIMM处的奇偶校验错误,并且然后进行到框510,其中清除写或读ECC状态。在一些实施方案中,如果该过程不能确定错误类型,则框509还前进到框510,从而清除两种错误类型的错误以确保完全清除错误状态。然后过程500进行到框511以继续恢复序列。
在框511处,如果多用途寄存器(MPR)模式当前处于活动状态,则将其禁用。在框512处,存储器控制器将PHY的先进先出(FIFO)缓冲器复位。在框514处,在存储器通道上的非易失性DIMM和通道缓冲器中将所有读ID(RID)复位。在一些实施方案中,框514包括发送复位RID(RST_RID)命令、等待就绪(RDY)响应,以及发送SEND命令,并且等待结果数据包以确认所有未完成的读都已经被复位,因此非易失性DIMM不再针对未决读命令发送任何RDY响应。
如果需要写信用,则在框516处请求并获得它们。在一些实施方案中,框516包括发送写状态命令以确定有多少写信用可用于非易失性DIMM,从而确定是否需要更多的写信用,并且然后请求并获得更多的写信用。请求可包括循环通过多个写信用请求,直到接收到足够的写信用。
如果MPR模式在恢复序列之前处于活动状态,则在框518处再次启用该MPR模式,以便将非易失性DIMM置于与错误发生时相同的条件下,以重放必要的命令。
此时,恢复序列已将通道和非易失性DIMM的各个部分复位并清除,以便开始重放命令。在框520处,过程500以来自重放队列的选定命令开始重放命令。在一些实施方案中,选定的命令包括存在于重放队列中的任何易失性读、多用途寄存器(MPR)相关命令、与MPR相关命令相关联的SEND命令、易失性写和非易失性写。与非易失性读相关联的SEND命令存储在重放队列中以用于报告和除错目的,但在框520处不传输。存在于重放队列中的FLUSH命令也不会重放。
优选地,在重放控制逻辑231(图2)或类似的重放控制电路的控制下执行从框506到框520的框。然后,该过程将控制传递给NV缓冲器247以便完成非易失性读命令重放。
在框522处,过程500包括通过将存储在NV队列中的所有非易失性读发送到存储器接口队列来重放它们。优选地,这发生在传输存储在重放队列中的所有选定的存储器访问命令之后。如关于图4所解释,非易失性读具有不确定的响应时间,这意味着最初在针对非易失性读的RD_RDY响应之后传输的SEND命令不必再次按相同顺序传输。为了处理这种排序,过程500包括跳过存储在重放队列中的与非易失性读相关联的SEND命令,并且在框524处,通过响应于在恢复序列期间从非易失性DIMM接收到的读就绪(RD_RDY)响应而生成新的SEND命令来在RD-RDY响应针对非易失性读到达时对其作出响应。此时,重放序列完成,并且存储器控制器结束重放序列并返回其正常操作条件。
因此,如本文所述的存储器控制器和数据处理系统提高了存储器控制器与非易失性DIMM介接的能力。此外,本文的存储器控制器通过消除对存储器接口队列保持非易失性读命令的需要来减少存储器接口队列的长度,这些非易失性读命令在被履行之前具有不确定且可能很长的等待时间。
图2的存储器控制器200或其任何部分(诸如仲裁器238)可由呈数据库或其他数据结构形式的计算机可访问数据结构来描述或表示,该数据库或其他数据结构可由程序读取并直接地或间接地用于制造集成电路。例如,该数据结构可以是用高级设计语言(HDL)(诸如Verilog或VHDL)对硬件功能的行为级描述或寄存器传送级(RTL)描述。该描述可由综合工具读取,该综合工具可综合该描述以产生包括来自综合库的门的列表的网表。网表包括一组门,该组门也代表包括集成电路在内的硬件的功能。然后,可放置并路由网表以产生描述要应用于掩模的几何形状的数据集。然后,可在各种半导体制造步骤中使用掩模来生产集成电路。替代地,在计算机可存取存储介质上的数据库可以是网表(有或没有综合库)或数据集(根据需要),或者图形数据系统(GDS)II数据。
虽然已经描述了特定实施方案,但是对这些实施方案的各种修改对于本领域技术人员来说将显而易见。例如,存储器通道控制器210和/或功率引擎250的内部构架可在不同实施方案中变化。存储器控制器200可连接到除了NVDIMM-P存储器之外的其他类型的存储器,诸如高带宽存储器(HBM)、RAMbus DRAM(RDRAM)等。虽然所示实施方案示出了对应于单独DIMM的存储器的每个存储列,但在其他实施方案中,每个DIMM可支持多个存储列。此外,虽然一般支持异构存储器通道,但该通道可完全填充非易失性DIMM。此外,虽然已经描述了两个单独的队列以用于完成恢复和重放,但在一些实施方案中,采用单个专用存储队列。
因此,所附权利要求书旨在覆盖落入所公开的实施方案的范围内的所公开的实施方案的所有修改。

Claims (20)

1.一种存储器控制器,所述存储器控制器包括:
命令队列,所述命令队列具有第一输入和输出并具有多个条目,所述第一输入用于接收存储器访问请求,包括易失性读、易失性写、非易失性读和非易失性写;
存储器接口队列,所述存储器接口队列具有耦合到所述命令队列的所述输出的输入和用于耦合到异构存储器通道的输出,所述异构存储器通道耦合到易失性双列直插式存储器模块(DIMM)和非易失性DIMM;
非易失性命令队列(NV队列),所述NV队列耦合到所述命令队列的所述输出以用于存储置于所述存储器接口队列中的非易失性读命令;
重放队列,所述重放队列耦合到所述命令队列的所述输出以用于存储置于所述存储器接口队列中的选定的存储器访问命令;以及
重放控制电路,所述重放控制电路用于基于通过所述异构存储器通道接收的信息来检测到已经发生需要恢复序列的错误,并且响应于所述错误,发起所述恢复序列,所述恢复序列包括传输存储在所述重放队列中的选定的存储器访问命令和传输存储在所述NV队列中的非易失性读。
2.如权利要求1所述的存储器控制器,其中所述恢复序列还包括在传输存储在所述重放队列中的所有的所述选定的存储器访问命令之后传输存储在所述NV队列中的非易失性读。
3.如权利要求1所述的存储器控制器,其中所述恢复序列还包括请求所述DIMM中的一者或多者上的所有未决读标识符(RID)的复位。
4.如权利要求1所述的存储器控制器,其中所述恢复序列还包括针对所述DIMM中的一者或多者上的缓冲器请求并获得写信用。
5.如权利要求1所述的存储器控制器,其中所述选定的命令包括易失性读、易失性写、非易失性写、多用途寄存器(MPR)相关命令和与MPR相关命令相关联的SEND命令。
6.如权利要求1所述的存储器控制器,其中所述恢复序列还包括跳过存储在所述重放队列中的与非易失性读相关联的SEND命令,并且响应于在所述恢复序列期间从所述非易失性DIMM接收的读就绪(RD_RDY)响应而生成新的SEND命令。
7.如权利要求1所述的存储器控制器,其中需要所述恢复序列的所述错误是以下错误中的一者:命令奇偶校验错误、与非易失性DIMM相关联的写命令纠错码(ECC)错误和与非易失性DIMM相关联的读命令ECC错误。
8.一种方法,所述方法包括:
接收多个存储器访问命令,所述多个存储器访问命令包括易失性存储器读、易失性存储器写、非易失性存储器读和非易失性存储器写;
将用于履行所述存储器访问请求的存储器访问命令置于存储器接口队列中并将所述存储器访问命令从所述存储器接口队列传输到异构存储器通道,所述异构存储器通道耦合到易失性双列直插式存储器模块(DIMM)和非易失性DIMM;
将置于所述存储器接口队列中的选定的存储器访问命令存储在重放队列中;以及
将置于所述存储器接口队列中的非易失性读存储在非易失性命令队列(NV队列)中;以及
基于通过所述异构存储器通道接收的信息来检测到已经发生需要恢复序列的错误,并且响应于所述错误,发起所述恢复序列,所述恢复序列包括(i)传输存储在所述重放队列中的选定的存储器访问命令和(ii)传输存储在所述NV队列中的非易失性读。
9.如权利要求8所述的方法,其中所述恢复序列还包括在传输存储在所述重放队列中的所有的所述选定的存储器访问命令之后传输存储在所述NV队列中的非易失性读。
10.如权利要求8所述的方法,其中所述恢复序列还包括请求所述DIMM中的一者或多者上的所有未决读标识符(RID)的复位。
11.如权利要求8所述的方法,其中所述恢复序列还包括针对所述DIMM中的一者或多者上的缓冲器请求并获得写信用。
12.如权利要求8所述的方法,其中所述选定的命令包括易失性读、易失性写、非易失性写、多用途寄存器(MPR)相关命令和与MPR相关命令相关联的SEND命令。
13.如权利要求8所述的方法,其中所述恢复序列跳过存储在所述重放队列中的与非易失性读相关联的SEND命令,并且响应于在所述恢复序列期间从所述非易失性DIMM接收的读就绪(RD_RDY)响应而生成新的SEND命令。
14.如权利要求8所述的方法,其中需要所述恢复序列的所述错误是以下错误中的至少一者命令奇偶校验错误、与非易失性DIMM相关联的写命令纠错码(ECC)错误和与非易失性DIMM相关联的读命令ECC错误。
15.一种数据处理系统,所述数据处理系统包括:
中央处理单元;
数据构架,所述数据构架耦合到所述中央处理单元;以及
存储器控制器,所述存储器控制器耦合到所述数据构架以用于履行通过所述数据构架进行的存储器访问请求,所述存储器控制器包括:
命令队列,所述命令队列具有第一输入和输出并具有多个条目,所述第一输入用于接收存储器访问请求,包括易失性读、易失性写、非易失性读和非易失性写;
存储器接口队列,所述存储器接口队列具有耦合到所述命令队列的所述输出的输入和用于耦合到异构存储器通道的输出,所述异构存储器通道耦合到易失性双列直插式存储器模块(DIMM)和非易失性DIMM;
非易失性命令队列(NV队列),所述NV队列耦合到所述命令队列的所述输出以用于存储置于所述存储器接口队列中的非易失性读;
重放队列,所述重放队列耦合到所述命令队列的所述输出以用于存储置于所述存储器接口队列中的选定的存储器访问命令;以及
重放控制电路,所述重放控制电路用于基于通过所述异构存储器通道接收的信息来检测到已经发生需要恢复序列的错误,并且响应于所述错误,传输存储在所述重放队列中的选定的存储器访问命令并传输存储在所述NV队列中的非易失性读。
16.如权利要求15所述的数据处理系统,其中所述恢复序列还包括在传输存储在所述重放队列中的所有的所述选定的存储器访问命令之后传输存储在所述NV队列中的非易失性读。
17.如权利要求15所述的数据处理系统,其中所述恢复序列还包括请求所述DIMM中的一者或多者上的所有未决读标识符(RID)的复位。
18.如权利要求15所述的数据处理系统,其中所述恢复序列还包括针对所述DIMM中的一者或多者上的缓冲器请求并获得写信用。
19.如权利要求15所述的存储器控制器,其中所述选定的命令包括易失性读、易失性写、非易失性写、多用途寄存器(MPR)相关命令和与MPR相关命令相关联的SEND命令。
20.如权利要求15所述的数据处理系统,其中需要所述恢复序列的所述错误是以下错误中的一者:命令奇偶校验错误、与非易失性DIMM相关联的写命令纠错码(ECC)错误和与非易失性DIMM相关联的读命令ECC错误。
CN202080090840.5A 2019-12-30 2020-12-10 非易失性双列直插式存储器模块的命令重放 Active CN114902197B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/730,092 2019-12-30
US16/730,092 US11137941B2 (en) 2019-12-30 2019-12-30 Command replay for non-volatile dual inline memory modules
PCT/US2020/064188 WO2021138014A1 (en) 2019-12-30 2020-12-10 Command replay for non-volatile dual inline memory modules

Publications (2)

Publication Number Publication Date
CN114902197A true CN114902197A (zh) 2022-08-12
CN114902197B CN114902197B (zh) 2023-06-13

Family

ID=76546230

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080090840.5A Active CN114902197B (zh) 2019-12-30 2020-12-10 非易失性双列直插式存储器模块的命令重放

Country Status (6)

Country Link
US (1) US11137941B2 (zh)
EP (1) EP4085339B1 (zh)
JP (1) JP7195484B1 (zh)
KR (1) KR102542493B1 (zh)
CN (1) CN114902197B (zh)
WO (1) WO2021138014A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11531601B2 (en) * 2019-12-30 2022-12-20 Advanced Micro Devices, Inc. Error recovery for non-volatile memory modules
US11099786B2 (en) * 2019-12-30 2021-08-24 Advanced Micro Devices, Inc. Signaling for heterogeneous memory systems
US11379388B1 (en) * 2021-03-31 2022-07-05 Advanced Micro Devices, Inc. Credit scheme for multi-queue memory controllers

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110119456A1 (en) * 2009-11-18 2011-05-19 Microsoft Corporation Efficiency of hardware memory access using dynamically replicated memory
WO2013016723A2 (en) * 2011-07-28 2013-01-31 Netlist, Inc. Flash-dram hybrid memory module
JP2013137624A (ja) * 2011-12-28 2013-07-11 Toshiba Corp データ記憶装置、メモリ制御装置及び方法
US20150178243A1 (en) * 2013-12-20 2015-06-25 Rambus Inc. High level instructions with lower-level assembly code style primitives within a memory appliance for accessing memory
KR20160148689A (ko) * 2014-06-30 2016-12-26 인텔 코포레이션 비휘발성 이중 인-라인 메모리 모듈을 위한 제어기와 통신하기 위한 기법들
US9817610B1 (en) * 2015-12-08 2017-11-14 Inphi Corporation Hybrid memory systems for autonomous non-volatile memory save and restore operations
EP3270295A1 (en) * 2016-07-15 2018-01-17 Advanced Micro Devices, Inc. Memory controller with virtual controller mode
EP3270290A1 (en) * 2016-07-15 2018-01-17 Advanced Micro Devices, Inc. Ddr memory error recovery

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6640313B1 (en) * 1999-12-21 2003-10-28 Intel Corporation Microprocessor with high-reliability operating mode
US20040022094A1 (en) 2002-02-25 2004-02-05 Sivakumar Radhakrishnan Cache usage for concurrent multiple streams
US7082500B2 (en) * 2003-02-18 2006-07-25 Cray, Inc. Optimized high bandwidth cache coherence mechanism
US7587625B2 (en) * 2006-02-16 2009-09-08 Intel Corporation Memory replay mechanism
US20080082750A1 (en) * 2006-09-28 2008-04-03 Okin Kenneth A Methods of communicating to, memory modules in a memory channel
US8185800B2 (en) 2008-01-31 2012-05-22 International Business Machines Corporation System for error control coding for memories of different types and associated methods
US8631271B2 (en) 2010-06-24 2014-01-14 International Business Machines Corporation Heterogeneous recovery in a redundant memory system
US9311251B2 (en) * 2012-08-27 2016-04-12 Apple Inc. System cache with sticky allocation
KR20150105323A (ko) * 2013-01-08 2015-09-16 바이올린 메모리 인코포레이티드 데이터 스토리지 방법 및 시스템
CN105340017A (zh) 2013-07-09 2016-02-17 惠普发展公司,有限责任合伙企业 对包括非兼容性存储器技术或与其接合的存储器模块的写入流控制
US10048878B2 (en) 2015-06-08 2018-08-14 Samsung Electronics Co., Ltd. Nonvolatile memory module and storage system having the same
KR102461460B1 (ko) * 2015-06-08 2022-11-02 삼성전자주식회사 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템 및 그것의 pvt 보상 방법
US10621119B2 (en) * 2016-03-03 2020-04-14 Samsung Electronics Co., Ltd. Asynchronous communication protocol compatible with synchronous DDR protocol
US9576637B1 (en) * 2016-05-25 2017-02-21 Advanced Micro Devices, Inc. Fine granularity refresh
CN111448543B (zh) 2017-12-07 2021-10-01 华为技术有限公司 内存访问技术及计算机系统
US10296230B1 (en) * 2017-12-22 2019-05-21 Advanced Micro Devices, Inc. Scheduling memory requests with non-uniform latencies
US11061787B2 (en) * 2019-04-23 2021-07-13 Micron Technology, Inc. Custom error recovery in selected regions of a data storage device
US11200106B2 (en) * 2019-08-12 2021-12-14 Advanced Micro Devices, Inc. Data integrity for persistent memory systems and the like

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110119456A1 (en) * 2009-11-18 2011-05-19 Microsoft Corporation Efficiency of hardware memory access using dynamically replicated memory
WO2013016723A2 (en) * 2011-07-28 2013-01-31 Netlist, Inc. Flash-dram hybrid memory module
JP2013137624A (ja) * 2011-12-28 2013-07-11 Toshiba Corp データ記憶装置、メモリ制御装置及び方法
US20150178243A1 (en) * 2013-12-20 2015-06-25 Rambus Inc. High level instructions with lower-level assembly code style primitives within a memory appliance for accessing memory
KR20160148689A (ko) * 2014-06-30 2016-12-26 인텔 코포레이션 비휘발성 이중 인-라인 메모리 모듈을 위한 제어기와 통신하기 위한 기법들
US9817610B1 (en) * 2015-12-08 2017-11-14 Inphi Corporation Hybrid memory systems for autonomous non-volatile memory save and restore operations
EP3270295A1 (en) * 2016-07-15 2018-01-17 Advanced Micro Devices, Inc. Memory controller with virtual controller mode
EP3270290A1 (en) * 2016-07-15 2018-01-17 Advanced Micro Devices, Inc. Ddr memory error recovery
CN109478158A (zh) * 2016-07-15 2019-03-15 超威半导体公司 Ddr存储器错误恢复

Also Published As

Publication number Publication date
US20210200468A1 (en) 2021-07-01
KR102542493B1 (ko) 2023-06-13
WO2021138014A1 (en) 2021-07-08
KR20220113818A (ko) 2022-08-16
JP7195484B1 (ja) 2022-12-23
JP2023502546A (ja) 2023-01-24
EP4085339A1 (en) 2022-11-09
EP4085339A4 (en) 2023-07-12
CN114902197B (zh) 2023-06-13
EP4085339B1 (en) 2024-10-09
US11137941B2 (en) 2021-10-05

Similar Documents

Publication Publication Date Title
US11675659B2 (en) DDR memory error recovery
KR102478527B1 (ko) 이기종 메모리 시스템용 시그널링
JP2022153654A (ja) パーシステントメモリシステム等のデータ完全性
US11531601B2 (en) Error recovery for non-volatile memory modules
CN114902197B (zh) 非易失性双列直插式存储器模块的命令重放
KR20230017865A (ko) Dram을 위한 리프레시 관리
US11797369B2 (en) Error reporting for non-volatile memory modules
CN115885268A (zh) Dram命令拖尾管理

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
GR01 Patent grant
GR01 Patent grant