CN114902198B - 用于异构存储器系统的信令 - Google Patents
用于异构存储器系统的信令 Download PDFInfo
- Publication number
- CN114902198B CN114902198B CN202080090910.7A CN202080090910A CN114902198B CN 114902198 B CN114902198 B CN 114902198B CN 202080090910 A CN202080090910 A CN 202080090910A CN 114902198 B CN114902198 B CN 114902198B
- Authority
- CN
- China
- Prior art keywords
- memory
- command
- queue
- volatile
- nonvolatile
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 359
- 230000011664 signaling Effects 0.000 title description 2
- 230000004044 response Effects 0.000 claims abstract description 71
- 230000005540 biological transmission Effects 0.000 claims abstract description 6
- 238000000034 method Methods 0.000 claims description 27
- 238000012545 processing Methods 0.000 claims description 27
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 7
- 239000003795 chemical substances by application Substances 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- 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/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Abstract
一种存储器控制器通过异构存储器通道与非易失性存储类存储器(SCM)模块对接,并且包括用于接收存储器访问命令的命令队列。存储器接口队列耦合到命令队列以保存导出命令。非易失性命令队列耦合到命令队列以用于存储置于存储器接口队列中的非易失性读取命令。仲裁器从命令队列中选择条目,并将它们置于存储器接口队列中以在异构存储器通道上传输。控制电路耦合到异构存储器通道以用于从非易失性SCM模块接收就绪响应,所述就绪响应指示响应数据可用于非易失性读取命令,并且响应于接收到就绪响应,导致发送命令被置于存储器接口队列中以用于命令非易失性SCM模块发送响应数据。
Description
背景技术
计算机系统通常将廉价且高密度的动态随机存取存储器(DRAM)芯片用于主存储器。现今销售的大部分DRAM芯片与由电子装置工程联合委员会(JEDEC)颁布的各种双倍数据速率(DDR)DRAM标准兼容。DDR存储器控制器用于根据已发布的DDR标准管理各种存储器访问代理与DDR DRAM之间的接口。
具有持久性存储装置的非易失性双列直插式存储器模块(“NVDIMM-P”)是可以用于代替标准DDR DIMM但是包括持久性存储器的一种存储类存储器。然而,这些存储器具有非确定性访问延时,并且可能具有可能会暂时延迟对非易失性存储器的访问的板载介质管理活动,因此这些存储器需要握手协议来就来自NVDIMM-P的数据的可用性通知主机控制器。JEDEC正在开发一种事务协议以减轻这种非确定性对性能的影响,以提供启用乱序事务和堆栈命令的能力。
附图说明
图1以框图形式示出了现有技术中已知的加速处理单元(APU)和存储器系统;
图2以框图形式示出了根据一些实施方案的适用于在类似于图1的APU中使用的存储器控制器;
图3以框图形式示出了根据一些实施方案的一对存储器通道和一个APU;
图4以图形形式示出了根据一些实施方案的处置存储器访问命令的过程;
图5以图形形式示出了图4的过程的其他部分;
图6以图形形式示出了图4和图5的过程的又其他部分;
图7是根据一些实施方案的用于处置存储器访问请求的过程的流程图。
在以下描述中,不同附图中使用的相同的附图标记来指示类似或相同的项目。除非另外指出,否则词语“耦合”及其相关动词形式包括直接连接和通过本领域中已知的装置进行的间接电气连接这两者,并且除非另外指出,否则对直接连接的任何描述也意味着使用适当形式的间接电气连接的替代实施方案。
具体实施方式
存储器控制器与至少一个非易失性存储类存储器(SCM)模块对接。存储器控制器包括命令队列、存储器接口队列、非易失性命令队列(NV队列)、仲裁器和控制电路。命令队列具有用于接收包括易失性存储器读取、易失性存储器写入、非易失性存储器读取和非易失性存储器写入的存储器访问命令的第一输入以及输出,并且具有多个条目。存储器接口队列具有耦合到命令队列的输出的输入,以及用于耦合到异构存储器通道的输出,所述异构存储器通道耦合到至少一个非易失性SCM模块。NV队列耦合到命令队列的输出以用于存储置于存储器接口队列中的非易失性读取命令。仲裁器耦合到命令队列以用于从命令队列中选择条目,并将它们置于存储器接口队列中从而使它们在异构存储器通道上传输。控制电路适于耦合到异构存储器通道以用于从非易失性SCM模块接收就绪响应,所述就绪响应指示响应数据可用于非易失性读取命令中的相关联非易失性读取命令,并且作为响应,导致发送命令被置于存储器接口队列中以用于命令非易失性SCM模块发送响应数据。
一种方法包括接收多个存储器访问请求,所述多个存储器访问请求包括易失性存储器读取、易失性存储器写入、非易失性存储器读取和非易失性存储器写入。将用于执行存储器访问请求的存储器访问命令置于存储器接口队列中,并将存储器访问命令从存储器接口队列传输到连接到非易失性存储类存储器(SCM)模块的异构存储器通道。所述方法包括将置于存储器接口队列中的非易失性读取命令存储在NV队列中。从非易失性SCM模块接收到就绪响应,所述就绪响应指示响应数据可用于非易失性读取命令中的相关联非易失性读取命令。作为响应,所述方法包括将用于命令非易失性SCM模块发送响应数据的发送命令置于存储器接口队列中。
一种数据处理系统包括:中央处理单元;数据结构,所述数据结构耦合到中央处理单元;以及存储器控制器,所述存储器控制器耦合到数据结构以用于执行来自中央处理单元的存储器请求。存储器控制器包括命令队列、存储器接口队列、NV队列、仲裁器和控制电路。命令队列具有用于接收包括易失性存储器读取、易失性存储器写入、非易失性存储器读取和非易失性存储器写入的存储器访问命令的第一输入以及输出,并且具有多个条目。存储器接口队列具有耦合到命令队列的输出的输入,以及用于耦合到异构存储器通道的输出,所述异构存储器通道耦合到至少一个非易失性SCM模块。NV队列耦合到命令队列的输出以用于存储置于存储器接口队列中的非易失性读取命令。仲裁器耦合到命令队列以用于从命令队列中选择条目,并将它们置于存储器接口队列中从而使它们在异构存储器通道上传输。控制逻辑耦合到所述异构存储器通道以用于从非易失性SCM模块接收就绪响应,所述就绪响应指示响应数据可用于非易失性读取命令中的相关联非易失性读取命令,并且响应于接收到就绪响应,导致发送命令被置于存储器接口队列中以用于命令非易失性SCM模块发送响应数据。
图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核心可以通过访问对USB控制器162、SATA接口控制器164、SB 172或PCIe控制器174中的寄存器进行编程,所述数据结构125通过I/O集线器176来路由这些访问。用于APU 100的软件和固件存储在系统数据驱动器或系统BIOS存储器(未示出)中,所述系统数据驱动器或系统BIOS存储器可以是各种非易失性存储器类型中的任何一种,诸如只读存储器(ROM)、闪存电可擦除可编程ROM(EEPROM)等。通常情况下,BIOS存储器通过PCIe总线访问,并且系统数据驱动器通过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。PHY 151与存储器通道131进行双向连接。PHY 152与存储器通道133进行双向连接。
存储器管理集线器140是具有两个存储器通道控制器的存储器控制器的实例化,并使用共享的电源引擎149来以下文将进一步描述的方式控制存储器通道控制器143和存储器通道控制器144这两者的操作。存储器通道141和142中的每一者可以连接到现有技术DDR存储器,诸如DDR第四版(DDR4)、低功率DDR4(LPDDR4)、图形DDR第五版(gDDR5)以及高带宽存储器(HBM),并可以适于未来的存储器技术。这些存储器提供高总线带宽和高速操作。同时,这些存储器还提供低功率模式以节省诸如膝上型计算机等电池供电应用的功率,并且还提供内置热监视。
存储器系统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的频率和电压。如果APU 100变得过热,则可以完全关闭该APU。热事件还可以通过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中,该外部总线与由英国剑桥的ARMHoldings,PLC指定的高级可扩展接口第四版(被称为“AXI4”)兼容,但在其他实施方案中可以为其他类型的接口。接口212将存储器访问请求从被称为FCLK(或MEMCLK)域的第一时钟域转变到被称为UCLK域的在存储器控制器200内部的第二时钟域。类似地,存储器接口队列214将存储器访问从UCLK域提供到与DFI接口相关联的DFICLK域。
地址生成器222对通过AXI4总线从数据结构125接收到的存储器访问请求的地址进行解码。存储器访问请求包括以规范化格式表示的物理地址空间中的访问地址。地址生成器222将规范化地址转换成可以用于对存储器系统130中的实际存储器装置进行寻址以及用于高效地调度相关访问的格式。该格式包括区域标识符,其使存储器访问请求与特定存储排、行地址、列地址、存储体地址以及存储体群组相关联。在启动时,系统BIOS查询存储器系统130中的存储器装置以确定所述存储器装置的地址长度和配置,并对与地址生成器222相关联的一组配置寄存器进行编程。地址生成器222使用存储在配置寄存器中的配置来将规范化地址转变成适当格式。地址生成器222对存储器(包括NVDIMM-P存储器)的地址范围进行解码,并将指示存储器访问请求是否是对NVDIMM-P的请求的解码信号存储在命令队列220中。然后,仲裁器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以防止由于系统中的热变化导致的片内终结电阻(on-dietermination resistance)中的失配。
仲裁器238双向地连接到命令队列220,并且是存储器通道控制器210的心脏。所述仲裁器通过智能地调度访问以提高存储器总线的使用率来提高效率。仲裁器238使用定时块234以通过基于DRAM定时参数来确定命令队列220中的某些访问是否有资格发出而执行正确的定时关系。例如,每个DRAM在激活命令之间都有最小指定时间,称为“tRC”。定时块234维护一组计数器,该组计数器基于此和在JEDEC规范中规定的其他定时参数来确定资格,并且所述定时块双向连接到重放队列230。页表236维持关于仲裁器238的存储器通道的每一存储体和存储排中的活动页的状态信息,并且双向地连接到重放队列230。
NV缓冲器247将用于重放序列并且用于管理NV读取响应的NV读取命令存储在NV队列248中。NV缓冲器247双向连接到存储器接口队列214以用于处置RD_RDY和SEND命令,如下文进一步描述。
响应于从接口212接收到的写存储器访问请求,ECC生成块244根据写数据来计算ECC。数据缓冲器246针对接收到的存储器访问请求存储写数据和ECC。当仲裁器238选取对应的写入访问以供调度到存储器通道时,所述数据缓冲器将组合的写入数据/ECC输出到存储器接口队列214。
电源控制器250大体上包括与高级可扩展接口第一版一(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)训练和回送测试(loopback testing)等目的。
存储器通道控制器210包括允许它选取存储器访问以调度到相关存储器通道的电路。为了做出期望的仲裁决定,地址生成器222将地址信息解码成预解码信息,其包括存储器系统中的存储排、行地址、列地址、存储体地址以及存储体群组,而命令队列220存储预解码信息。配置寄存器262存储配置信息以确定地址生成器222如何对接收到的地址信息进行解码。仲裁器238使用解码的地址信息、由定时块234指示的定时合格性信息以及由页表236指示的活动页信息来高效地调度存储器访问,同时观察其他标准,诸如服务质量(QoS)要求。例如,仲裁器238实施对打开页进行访问的偏好以避免改变存储器页所需的预充电和激活命令的开销,并通过将对一个存储体的开销访问与对另一个存储体的读取和写入访问进行交错来隐藏开销访问。具体地,在正常操作期间,仲裁器238通常在选择不同的页之前在不同存储体中保持页打开,直到需要对这些页进行预充电。
图3以框图形式示出了根据一些实施方案的数据处理系统300。数据处理系统300包括存储器系统330和APU 310。APU 310包括存储器控制器,如存储器控制器200(图2),其支持异构存储器通道与存储器系统330对接。除了正常的DDRx存储器通道之外,APU 310还在具有正常注册的DIMM或RDIMM 334和336以及NVDIMM-P338两者的异构存储器通道330上支持NVDIMM-P 338,所述异构存储器通道作为仅具有通过总线342连接的RDIMM 344、346和348的同构存储器通道340的补充。尽管在该实施方案中异构存储器通道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填充一起出现。操作系统通常知道SCM定义的地址范围是与常规存储器“不同”的存储器类型。这种区别是为了通知OS:该存储器可能更隐蔽并且具有持久的质量。OS可以将SCM存储器映射为直接访问存储器或文件系统访问存储器。直接访问意味着OS将SCM地址范围作为物理可寻址存储器进行访问。文件系统访问意味着OS将持久存储器作为文件系统的一部分进行管理,并经由基于文件的API管理对SCM的访问。最终,请求到达SCM地址范围内的存储器控制器,这与更高级别的OS如何管理访问无关。
图4至图6是示出根据一些实施方案的处置非易失性读取命令的过程700(图7)的一系列图。所描绘的过程包括使用NV队列248来保存NV读取命令,诸如XREAD命令,完成对命令的执行,并在发生需要重放命令的错误时使命令可供重放过程使用。将参考图7描述图4至图6。
图7是根据一些实施方案的用于处置存储器访问命令的过程700的流程图。过程700适合于用图2的存储器控制器200或其他存储器控制器布置来实施。过程700开始于框702,其中所述过程接收多个存储器访问请求,所述多个存储器访问请求包括易失性存储器读取、易失性存储器写入、非易失性存储器读取和非易失性存储器写入。在框704处对用于执行请求的存储器访问命令进行解码并将其置于诸如命令队列220(图2)等命令队列中。
在框706处,选择来自命令队列的存储器访问命令用于通过异构存储器通道传输。所述选择通常由诸如仲裁器238(图2)等仲裁器来执行。选定的存储器访问命令被置于要传输的存储器接口队列中。图4的图中示出了这种情况的示例,其中箭头401描绘了被置于存储器接口队列中的命令。在框708处,过程700将置于存储器接口队列中的非易失性读取命令存储在非易失性命令队列(NV队列)(诸如NV队列248(图2))中。这种情况的示例在箭头402处示出,其中被发送到存储器接口队列的XREAD命令存储在NV队列中。来自存储器接口队列的存储器访问命令被传输到耦合到易失性双列直插式存储器模块(DIMM)和非易失性DIMM的异构存储器通道。来自存储器接口队列的存储器访问命令的传输由箭头403描绘,所述箭头示出了通过异构存储器通道传递到非易失性DIMM的XREAD命令,在这种情况下,NVDIMM-P包括介质控制器、非易失性介质和DRAM。
对于通过异构存储器通道传输的非易失性读取命令,由于读取请求数据的过程不可预测,非易失性DIMM通常在非确定性时间段后做出响应,所述请求数据可以在非易失性DIMM处的非易失性存储器中、在非易失性DIMM的DRAM中或在介质控制器处的缓存中。在非确定性时间段期间,通常执行其他存储器访问命令并将其从存储器接口队列中移除。当非易失性DIMM处的介质控制器完成读取请求数据的过程时,它向存储器控制器发送就绪响应信号“RD_RDY”。通常,在异构存储器通道的子通道上而非在存储器接口队列在其上接收对存储器访问命令的响应的子通道上发送和接收RD_RDY信号。例如,对于NVDIMM-P存储器通道,RD_RDY信号通常在存储器通道的与在其上传输命令和数据的“CMD”和“DQ”线分开的“RSP_R”线上发送。
在框712处,从非易失性DIMM接收RD_RDY,所述RD_RDY指示响应数据可用于非易失性读取命令中的相关联非易失性读取命令。控制电路(在该示例中为NV缓冲器控制电路)接收RD_RDY信号。图5中的箭头404描绘了从非易失性DIMM传递到NV缓冲器控制电路的RD_RDY信号。作为响应,在框714处,控制电路将SEND命令置于存储器接口队列中,如箭头405所描绘。SEND命令由此被调度或排队以传输到非易失性DIMM,如图6中的箭头406所描绘。SEND命令具有确定性响应时间,因为响应数据在SEND命令到达时已准备好从非易失性DIMM发送,因此SEND命令不会给存储器接口队列操作增加非确定性延迟。如果非易失性读取命令被保存在存储器接口队列而非NV队列中,直到命令被执行,则它会“阻塞”存储器接口队列,延迟对其他命令的处理并增加整体命令处理的延迟。
在接收到SEND命令时,非易失性DIMM介质控制器将针对非易失性读取命令读取的响应数据(包括所述命令的相关联标识符)传输回存储器控制器。该实施方案中的相关联标识符是用于读取命令的读取标识符“RID”,如图6中的箭头407所描绘,示出了传输到存储器控制器的数据和RID。
在框716处,存储器控制器从非易失性DIMM接收响应数据和相关联标识符。作为响应,存储器控制器的NV缓冲器使用相关联标识符来标识NV队列中具有同一相关联标识符的非易失性读取命令。在框718处,提供响应数据以执行为其产生非易失性就绪命令的相关联的非易失性读取请求。这执行所述请求,并且如箭头408所描绘将相关联的非易失性读取命令从NV队列中移除,然后在NV队列中划掉XREAD命令。
在一些实施方案中,过程700包括利用诸如仲裁器238(图2)等仲裁器来调度存储器访问命令。在一个示例中,在将存储器访问命令置于存储器接口队列中之前,所述过程将非易失性读取命令与其他非易失性读取命令或易失性读取命令分组。这种分组在图4中进行描绘,其中箭头401示出以新顺序置于存储器接口队列中的存储器访问命令,其中READ(易失性读取命令)和XREAD(一种非易失性读取命令)命令被分组在一起,并且WRITE(易失性写入命令)和XWRITE(一种非易失性写入命令)命令被分组在一起。
在一些实施方案中,过程700在框714处还包括在将SEND命令置于存储器接口队列之前,在将发送命令置于存储器接口队列之前,将SEND命令与一组非易失性或易失性读取命令分组。这在图5的箭头405处进行描绘,其中SEND命令被置于一组READ命令中。
因此,如本文所述的存储器控制器和数据处理系统提高了存储器控制器与异构存储器通道上的非易失性DIMM对接的能力。此外,本文的存储器控制器通过消除存储器接口队列长时间保持非易失性读取命令直到它们被执行的需要来减少存储器接口队列所需的长度。
图2的存储器控制器200或其任何部分(诸如仲裁器238)可以由数据库或其他数据结构形式的计算机可访问数据结构来描述或表示,所述数据库或其他数据结构可以由程序读取并直接或间接用于制造集成电路。例如,该数据结构可以是用诸如Verilog或VHDL等高级设计语言(HDL)对硬件功能性的行为级描述或寄存器传输级(RTL)描述。所述描述可以通过合成工具来读取,所述合成工具可以对描述进行合成以从合成库中产生包括一系列门的网表。所述网表包括门的集合,这些门还表示包括集成电路的硬件的功能性。所述网表然后可以被放置和路由以产生描述要应用于掩模的几何形状的数据集。然后可以在各种半导体制造步骤中使用掩模来产生集成电路。替代地,计算机可访问存储介质上的数据库根据需要可以为网表(具有或不具有合成库)或数据集或者图形数据系统(GDS)II数据。
尽管已经描述了特定实施方案,但是对这些实施方案的各种修改对于本领域技术人员来说将是显而易见的。例如,存储器通道控制器210和/或功率引擎250的内部架构可以在不同实施方案中变化。存储器控制器200可以对接到除了NVDIMM-P和DDRx之外的其他类型的存储器,诸如高带宽存储器(HBM)、RAMbus DRAM(RDRAM)等。尽管所示实施方案示出了与单独DIMM相对应的每个存储排,但是在其他实施方案中,每个DIMM可以支持多个存储排。此外,尽管通常支持异构存储器通道,但是异构通道可以被完全填充有非易失性DIMM。此外,尽管本文讨论的非易失性读取命令的示例类型是XREAD命令,但是也支持其他类型的非易失性读取命令。例如,NVDIMM-P规范提供了推测性读取(SREAD)命令,如果在非易失性DIMM上的DRAM中找到请求的存储器,则所述SREAD命令具有确定性响应时间,但是如果非易失性DIMM确定所请求的数据在DRAM中不可用,而是必须从非易失性存储器介质中读取,则所述SREAD命令被解释为具有非确定性响应时间的非易失性读取。在一些实施方案中,如果发生这种“未命中”,则SREAD命令也被添加到NV队列中,然后类似于XREAD进行处理。
因此,所附权利要求意图涵盖落入所公开实施方案的范围内的对所公开实施方案的所有修改。
Claims (18)
1.一种存储器控制器,其包括:
命令队列,所述命令队列具有用于接收包括易失性存储器读取、易失性存储器写入、非易失性存储器读取和非易失性存储器写入的存储器访问命令的第一输入以及输出,并且具有多个条目;
存储器接口队列,所述存储器接口队列具有耦合到所述命令队列的所述输出的输入,以及用于耦合到异构存储器通道的输出,所述异构存储器通道耦合到包括能在系统存储器空间中寻址的非易失性存储器的至少一个非易失性存储类存储器模块;
非易失性命令队列,所述非易失性命令队列耦合到所述命令队列的所述输出以用于存储置于所述存储器接口队列中的非易失性读取命令;
仲裁器,所述仲裁器耦合到所述命令队列以用于从所述命令队列中选择条目,并将它们置于所述存储器接口队列中从而使它们在所述异构存储器通道上传输;以及
控制电路,所述控制电路适于耦合到所述异构存储器通道以用于从所述非易失性存储类存储器模块接收就绪响应,所述就绪响应指示响应数据能用于所述非易失性读取命令中的相关联非易失性读取命令,并且响应于接收到所述就绪响应,导致发送命令被置于所述存储器接口队列中以用于命令所述非易失性存储类存储器模块发送所述响应数据。
2.根据权利要求1所述的存储器控制器,其中所述控制电路还适于检测从所述非易失性存储类存储器模块接收到响应数据和相关联的标识符,并且作为响应,使用所述相关联的标识符在所述非易失性队列中标识所述相关联的非易失性读取命令,并从所述非易失性队列中移除所述相关联的非易失性读取命令。
3.根据权利要求1所述的存储器控制器,其中在将所述存储器访问命令置于所述存储器接口队列中之前,所述仲裁器将非易失性存储器读取命令与其他非易失性读取命令或易失性读取命令分组。
4.根据权利要求3所述的存储器控制器,其中在将所述发送命令置于所述存储器接口队列之前,所述仲裁器将所述发送命令与非易失性读取命令或易失性读取命令分组。
5.根据权利要求1所述的存储器控制器,其中:
所述存储器控制器能操作以在所述相关联的非易失性读取命令之后的非确定性时间段之后接收所述就绪响应;以及
在所述非确定性时间段期间,所述存储器控制器能操作以执行其他存储器访问命令,并将它们从所述存储器接口队列中移除。
6.根据权利要求1所述的存储器控制器,其中所述控制电路在所述异构存储器通道的与所述存储器接口队列在其上接收对所述存储器访问命令的响应的子通道分离的子通道上接收所述就绪响应。
7.一种方法,其包括:
接收多个存储器访问请求,所述多个存储器访问请求包括易失性存储器读取、易失性存储器写入、非易失性存储器读取和非易失性存储器写入;
将用于执行所述存储器访问请求的存储器访问命令置于存储器接口队列中,并将所述存储器访问命令从所述存储器接口队列传输到异构存储器通道,所述异构存储器通道耦合到包括能在系统存储器空间中寻址的非易失性存储器的非易失性存储类存储器模块;
将置于所述存储器接口队列中的所述非易失性读取命令存储在非易失性命令队列中;以及
从所述非易失性存储类存储器模块接收就绪响应,所述就绪响应指示响应数据能用于所述非易失性读取命令中的相关联非易失性读取命令,并且响应于接收到所述就绪响应,将用于命令所述非易失性存储类存储器模块发送所述响应数据的发送命令置于所述存储器接口队列中。
8.根据权利要求7所述的方法,其还包括从所述非易失性存储类存储器模块接收所述响应数据和相关联的标识符,并且作为响应,使用所述相关联的标识符在所述非易失性命令队列中标识所述相关联的非易失性读取命令,提供所述响应数据以执行相关联的非易失性读取请求,并从所述非易失性命令队列中移除所述相关联的非易失性读取命令。
9.根据权利要求7所述的方法,其还包括在将所述存储器访问命令置于所述存储器接口队列中之前,将非易失性读取命令与其他非易失性读取命令或易失性读取命令分组。
10.根据权利要求9所述的方法,其还包括在将所述发送命令置于所述存储器接口队列之前,在将所述发送命令置于所述存储器接口队列之前,将所述发送命令与一组非易失性或易失性读取命令分组。
11.根据权利要求7所述的方法,其中:
在所述相关联的非易失性读取命令之后的非确定性时间段之后接收到所述就绪响应;以及
在所述非确定性时间段期间,执行其他存储器访问命令并将其从所述存储器接口队列中移除。
12.根据权利要求7所述的方法,其中在所述异构存储器通道的与所述存储器接口队列在其上接收对所述存储器访问命令的响应的子通道分离的子通道上接收所述就绪响应。
13.一种数据处理系统,其包括:
中央处理单元;
数据结构,所述数据结构耦合到所述中央处理单元;以及
存储器控制器,所述存储器控制器耦合到所述数据结构以用于执行来自所述中央处理单元的存储器请求,所述存储器控制器包括:
命令队列,所述命令队列具有用于接收包括易失性读取命令、易失性写入命令、非易失性读取命令和非易失性写入命令的存储器访问命令的第一输入以及输出,并且具有多个条目;
存储器接口队列,所述存储器接口队列具有耦合到所述命令队列的所述输出的输入,以及耦合到异构存储器通道的输出,所述异构存储器通道耦合到包括能在系统存储器空间中寻址的非易失性存储器的至少一个非易失性存储类存储器模块;
非易失性命令队列,所述非易失性命令队列耦合到所述命令队列的所述输出以用于存储置于所述存储器接口队列中的非易失性读取命令;
仲裁器,所述仲裁器耦合到所述命令队列以用于从所述命令队列中选择条目,将它们置于所述存储器接口队列中从而使它们在所述异构存储器通道上传输;以及
控制逻辑,所述控制逻辑耦合到所述异构存储器通道以用于从所述非易失性存储类存储器模块接收就绪响应,所述就绪响应指示响应数据能用于所述非易失性读取命令中的相关联非易失性读取命令,并且响应于接收到所述就绪响应,导致发送命令被置于所述存储器接口队列中以用于命令所述非易失性存储类存储器模块发送所述响应数据。
14.根据权利要求13所述的数据处理系统,其中所述控制逻辑进一步检测从所述非易失性存储类存储器模块接收到响应数据和相关联的标识符,并且作为响应,使用所述相关联的标识符在所述非易失性命令队列中标识所述相关联的非易失性读取命令,并从所述非易失性命令队列中移除所述相关联的非易失性读取命令。
15.根据权利要求13所述的数据处理系统,其中在将所述存储器访问命令置于所述存储器接口队列中之前,所述仲裁器将非易失性读取命令与其他非易失性读取命令或易失性读取命令分组。
16.根据权利要求15所述的数据处理系统,其中在将所述发送命令置于所述存储器接口队列之前,所述仲裁器将所述发送命令与非易失性读取命令或易失性读取命令分组。
17.根据权利要求13所述的数据处理系统,其中:
所述存储器控制器在所述相关联的非易失性读取命令之后的非确定性时间段之后接收所述就绪响应;以及
在所述非确定性时间段期间,所述存储器控制器执行其他存储器访问命令,并将它们从所述存储器接口队列中移除。
18.根据权利要求13所述的数据处理系统,其中在所述异构存储器通道的与所述存储器接口队列在其上接收对所述存储器访问命令中的其他存储器访问命令的响应的子通道分离的子通道上接收所述就绪响应。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/730,070 | 2019-12-30 | ||
US16/730,070 US11099786B2 (en) | 2019-12-30 | 2019-12-30 | Signaling for heterogeneous memory systems |
PCT/US2020/064265 WO2021138017A1 (en) | 2019-12-30 | 2020-12-10 | Signalling for heterogeneous memory systems |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114902198A CN114902198A (zh) | 2022-08-12 |
CN114902198B true CN114902198B (zh) | 2023-10-27 |
Family
ID=76546262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080090910.7A Active CN114902198B (zh) | 2019-12-30 | 2020-12-10 | 用于异构存储器系统的信令 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11099786B2 (zh) |
EP (1) | EP4085340A4 (zh) |
JP (1) | JP7195486B1 (zh) |
KR (1) | KR102478527B1 (zh) |
CN (1) | CN114902198B (zh) |
WO (1) | WO2021138017A1 (zh) |
Families Citing this family (4)
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 |
US20230393750A1 (en) * | 2022-06-01 | 2023-12-07 | Micron Technology, Inc. | Apparatus with response completion pacing |
CN116301664B (zh) * | 2023-05-16 | 2023-08-15 | 北京象帝先计算技术有限公司 | 存储器的控制器、组件、电子设备及命令缓存方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102326154A (zh) * | 2008-12-23 | 2012-01-18 | 苹果公司 | 用于管理型非易失性存储器的地址映射的体系结构 |
CN107481746A (zh) * | 2016-06-08 | 2017-12-15 | 三星电子株式会社 | 用于操作ddr可兼容异步存储器模块的系统和方法 |
CN108885597A (zh) * | 2016-04-04 | 2018-11-23 | 马维尔国际贸易有限公司 | 用于使用直接目标访问经由通过结构的非易失性存储器桥接访问主机存储器的方法和系统 |
CN109478158A (zh) * | 2016-07-15 | 2019-03-15 | 超威半导体公司 | Ddr存储器错误恢复 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6912612B2 (en) | 2002-02-25 | 2005-06-28 | Intel Corporation | Shared bypass bus structure |
US8572322B2 (en) | 2010-03-29 | 2013-10-29 | Freescale Semiconductor, Inc. | Asynchronously scheduling memory access requests |
KR20150017526A (ko) | 2013-08-07 | 2015-02-17 | 삼성전자주식회사 | 메모리 명령 스케줄러 및 메모리 명령 스케줄링 방법 |
US8874836B1 (en) | 2014-07-03 | 2014-10-28 | Pure Storage, Inc. | Scheduling policy for queues in a non-volatile solid-state storage |
US9996262B1 (en) | 2015-11-09 | 2018-06-12 | Seagate Technology Llc | Method and apparatus to abort a command |
US10282103B1 (en) * | 2015-11-09 | 2019-05-07 | Seagate Technology Llc | Method and apparatus to delete a command queue |
US10572180B1 (en) * | 2015-11-09 | 2020-02-25 | Seagate Technology Llc | Method and apparatus to perform a function level reset in a memory controller |
US10296230B1 (en) | 2017-12-22 | 2019-05-21 | Advanced Micro Devices, Inc. | Scheduling memory requests with non-uniform latencies |
US10503438B1 (en) * | 2018-08-24 | 2019-12-10 | Micron Technology, Inc. | Memory sub-system supporting non-deterministic commands |
US11099786B2 (en) * | 2019-12-30 | 2021-08-24 | Advanced Micro Devices, Inc. | Signaling for heterogeneous memory systems |
US11137941B2 (en) * | 2019-12-30 | 2021-10-05 | Advanced Micro Devices, Inc. | Command replay for non-volatile dual inline memory modules |
US11531601B2 (en) * | 2019-12-30 | 2022-12-20 | Advanced Micro Devices, Inc. | Error recovery for non-volatile memory modules |
-
2019
- 2019-12-30 US US16/730,070 patent/US11099786B2/en active Active
-
2020
- 2020-12-10 JP JP2022540334A patent/JP7195486B1/ja active Active
- 2020-12-10 WO PCT/US2020/064265 patent/WO2021138017A1/en unknown
- 2020-12-10 KR KR1020227025670A patent/KR102478527B1/ko active IP Right Grant
- 2020-12-10 CN CN202080090910.7A patent/CN114902198B/zh active Active
- 2020-12-10 EP EP20910872.9A patent/EP4085340A4/en active Pending
-
2021
- 2021-08-23 US US17/409,099 patent/US11748034B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102326154A (zh) * | 2008-12-23 | 2012-01-18 | 苹果公司 | 用于管理型非易失性存储器的地址映射的体系结构 |
CN108885597A (zh) * | 2016-04-04 | 2018-11-23 | 马维尔国际贸易有限公司 | 用于使用直接目标访问经由通过结构的非易失性存储器桥接访问主机存储器的方法和系统 |
CN107481746A (zh) * | 2016-06-08 | 2017-12-15 | 三星电子株式会社 | 用于操作ddr可兼容异步存储器模块的系统和方法 |
CN109478158A (zh) * | 2016-07-15 | 2019-03-15 | 超威半导体公司 | Ddr存储器错误恢复 |
Also Published As
Publication number | Publication date |
---|---|
US11099786B2 (en) | 2021-08-24 |
KR102478527B1 (ko) | 2022-12-16 |
US20210382661A1 (en) | 2021-12-09 |
EP4085340A4 (en) | 2023-06-14 |
JP2023500741A (ja) | 2023-01-10 |
US20210200467A1 (en) | 2021-07-01 |
US11748034B2 (en) | 2023-09-05 |
KR20220116041A (ko) | 2022-08-19 |
EP4085340A1 (en) | 2022-11-09 |
WO2021138017A1 (en) | 2021-07-08 |
JP7195486B1 (ja) | 2022-12-23 |
CN114902198A (zh) | 2022-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109564556B (zh) | 具有条纹和读取/写入事务管理的存储器控制器仲裁器 | |
JP7155103B2 (ja) | Ddrメモリエラーリカバリ | |
CN114902198B (zh) | 用于异构存储器系统的信令 | |
US11531601B2 (en) | Error recovery for non-volatile memory modules | |
US11561862B2 (en) | Refresh management for DRAM | |
JP7195484B1 (ja) | 不揮発性デュアルインラインメモリモジュールのコマンドリプレイ | |
CN115516563B (zh) | 用于dram的刷新管理 | |
CN117083588A (zh) | 仲裁期间写入存储体组掩码 | |
JP2023508117A (ja) | 不揮発性メモリモジュールのエラー報告 | |
CN115605853A (zh) | 高效存储器总线管理 | |
CN117546135A (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 |