CN109690508A - 带虚拟控制器模式的存储器控制器 - Google Patents
带虚拟控制器模式的存储器控制器 Download PDFInfo
- Publication number
- CN109690508A CN109690508A CN201680088829.9A CN201680088829A CN109690508A CN 109690508 A CN109690508 A CN 109690508A CN 201680088829 A CN201680088829 A CN 201680088829A CN 109690508 A CN109690508 A CN 109690508A
- Authority
- CN
- China
- Prior art keywords
- memory
- controller
- subchannel
- memory access
- access request
- 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
Links
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/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
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/287—Multiplexed DMA
-
- 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
-
- 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
- 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
- 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/0674—Disk device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
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)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Dram (AREA)
Abstract
在一种形式中,一种存储器控制器具有存储器信道控制器,所述存储器信道控制器包括命令队列和仲裁器。所述命令队列存储包括虚拟控制器模式中的子信道编号的存储器访问请求。所述仲裁器耦合到所述命令队列以根据预定标准从所述命令队列中选择存储器访问命令。在所述虚拟控制器模式中,所述仲裁器使用所述预定标准独立地在每个子信道中的所述存储器访问请求中进行选择,并将选定的存储器访问请求发送到多个子信道中的对应子信道。在另一种形式中,一种数据处理系统包括多个存储器信道以及耦合到所述多个子信道的这种存储器控制器。
Description
背景技术
计算机系统通常将廉价且高密度的动态随机存取存储器(DRAM)芯片用于主存储器。现今销售的大部分DRAM芯片与由电子装置工程联合委员会(JEDEC)颁布的各种双倍数据速率(DDR)DRAM标准兼容。DDR DRAM通过提供各种低功耗模式来提供高性能和低功耗操作这两者。
现代DDR存储器控制器维持队列以存储搁置的存储器访问请求,以允许所述DDR存储器控制器按照与生成或存储所述搁置的存储器访问请求的顺序颠倒的顺序来选取所述搁置的存储器访问请求以便提高效率。例如,存储器控制器可以从队列中检索对存储器的给定存储排中的同一行的多个存储器访问请求,并将所述存储器访问请求连续地发出到存储器系统以避免带来对当前行预充电并激活另一行的开销。存储器控制器还需要足够灵活使得它们可以针对不同的存储器类型、密度和存储器信道拓扑进行配置,但这样做并不需要大量附加的电路面积,否则会增加芯片成本来支持这些不同的模式。
附图说明
图1以框图形式示出了根据一些实施方案的数据处理系统;
图2以框图形式示出了适合于在图1的数据处理系统中使用的加速处理单元(APU);
图3以框图形式示出了根据一些实施方案的适合于在图2的APU中使用的存储器控制器和相关物理接口(PHY);
图4以框图形式示出了根据一些实施方案的适合于在图2的APU中使用的另一存储器控制器和相关PHY;
图5以框图形式示出了根据一些实施方案的存储器控制器;并且
图6以框图形式示出了根据一些实施方案的带虚拟控制器模式的存储器信道控制器。
在以下描述中,不同附图中使用的相同的附图标记指示类似或相同的项目。除非另外指出,否则词语“耦合”及其相关动词形式包括直接连接和通过本领域中已知的装置进行的间接电气连接这两者,并且除非另外指出,否则对直接连接的任何描述也意味着使用适当形式的间接电气连接的替代实施方案。
具体实施方式
如下文将描述,在一种形式中,一种存储器控制器包括存储器信道控制器,其包括命令队列和仲裁器。所述命令队列存储包括虚拟控制器模式中的子信道编号的存储器访问请求。所述仲裁器耦合到所述命令队列以根据预定标准从所述命令队列中选择存储器访问命令,其中在所述虚拟控制器模式中,所述仲裁器使用所述预定标准独立地在每个子信道中的所述存储器访问请求中进行选择,并将选定的存储器访问请求发送到多个子信道中的对应子信道。通过这种方式,一个存储器信道控制器可以访问多个信道,并且可以减小所述存储器控制器的地址长度。
在另一种形式中,一种存储器控制器具有带虚拟控制器模式的存储器信道控制器。所述存储器信道控制器包括地址生成器、命令队列、仲裁器和调度队列。所述地址生成器接收存储器访问请求并对所述存储器访问请求解码以选择存储器系统中的存储器装置的存储排(rank)和存储体(bank),并且在所述虚拟控制器模式中对用于所述存储器访问请求中的每一个的多个子信道的子信道编号进一步解码。所述命令队列耦合到所述地址生成器以用于存储解码后的所述存储器访问请求,所述存储器访问请求包括所述虚拟控制器模式中的所述子信道编号。所述仲裁器耦合到所述命令队列以根据预定标准使用所述存储排和所述存储体从所述命令队列中选择存储器访问请求,并且在所述虚拟控制器模式中使用所述预定标准独立地在每个子信道中的所述存储器访问请求中进行选择。所述调度队列耦合到所述命令队列以用于通过物理接口向存储器系统调度选定的存储器命令,并且在所述虚拟控制器模式中向选定的子信道进一步调度所述选定的存储器命令。
在又一种形式中,一种数据处理系统包括多个存储器信道和耦合到所述多个存储器信道的存储器控制器。所述存储器控制器具有带虚拟控制器模式的存储器信道控制器。所述存储器信道控制器包括命令队列和仲裁器。所述命令队列用于存储包括所述虚拟控制器模式中的子信道编号的存储器访问请求。所述仲裁器耦合到所述命令队列以根据预定标准从所述命令队列中选择存储器访问命令。在所述虚拟控制器模式中,所述仲裁器使用所述预定标准独立地在每个子信道中的所述存储器访问请求中进行选择,并将选定的存储器访问请求发送到多个子信道中与所述子信道编号对应的一个存储器信道。
在又一种形式中,一种方法用于控制具有多个存储器信道的存储器系统。在虚拟控制器模式中:接收存储器访问请求,并且将所述存储器访问请求中的每一个解码到所述存储器系统中的存储器装置的存储体、存储排以及子信道。在命令队列中存储包括所述存储体、所述存储排和所述子信道的所述存储器访问请求。使用预定标准在所述命令队列中的多个存储器访问请求中进行选择,并且所述预定标准还用于独立地从对每个子信道的所述存储器访问请求中进行选择。根据所述子信道向所述多个存储器信道中的一个调度选择后的所述存储器访问请求。
图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包括连接到数据处理器110中的PCIe根联合体的PCIe交换机152,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第四版(DDR4)、低功率DDR4(LPDDR4)、图形DDR第五版(gDDR5)以及高带宽存储器(HBM),并可以适于未来的存储器技术。这些存储器提供高总线带宽和高速操作。同时,这些存储器还提供低功率模式以节省诸如膝上型计算机等电池供电应用的功率,并且还提供内置热监视。
图2以框图形式示出了适合于在图1的数据处理系统100中使用的APU 200。APU200通常包括中央处理单元(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提供存储器访问请求。就此而言,APU 200可以支持其中CPU核心联合体210和图形核心220共享同一存储器空间的统一存储器架构,或其中CPU核心联合体210和图形核心220共享存储器空间的一部分同时图形核心220还使用CPU核心联合体210不可访问的专用图形存储器的存储器架构。
显示引擎230渲染并光栅化通过图形核心220生成的对象以便显示在监视器上。图形核心220和显示引擎230双向地连接到公共的存储器管理集线器240以便统一转变成存储器系统120中的适当地址,而存储器管理集线器240双向地连接到数据组构250以用于生成此类存储器访问并接收从存储器系统返回的读取数据。
数据组构250包括用于在任何存储器访问代理与存储器控制器290之间路由存储器访问请求和存储器响应的交叉交换机。该数据组构还包括通过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核心可以通过访问对USB控制器262、SATA接口控制器264、SB 272或PCIe控制器274中的寄存器进行编程,该数据组构250通过I/O集线器276来路由这些访问。
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的频率和电压。如果APU 200变得过热,则可以完全关闭该APU。热事件还可以通过SMU 280经由SMN总线从外部传感器接收,并且作为响应,SMU 280可以减小时钟频率和/或电源电压。
图3以框图形式示出了根据一些实施方案的适合于在图2的APU 200中使用的存储器控制器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双向地连接到PHY 450并遵守DFI规范。电源引擎430通过SMN总线双向地连接到SMU 280,通过APB双向地连接到PHY440和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选取的在等待响应的存储器访问的暂时性队列,这些响应诸如地址和命令奇偶校验响应、DDR4DRAM的写入循环冗余校验(CRC)响应或GDDR5DRAM的写入和读取CRC响应。重放队列530访问ECC校验块542以确定返回的ECC是正确的还是指示错误。重放队列530允许访问在这些周期中的一个周期的奇偶校验错误或CRC错误的情况下重放。
刷新逻辑532包括用于各种掉电、刷新和终结电阻(ZQ)校准周期的状态机,这些周期与从存储器访问代理接收到的正常的读取和写入存储器访问请求分开生成。例如,如果存储排(memory rank)处于预充电掉电,则它必须定期被唤醒以运行刷新周期。刷新逻辑532定期地生成刷新命令以防止通过DRAM芯片中的存储器单元的存储电容器的电荷的泄漏造成的数据错误。另外地,刷新逻辑532定期地校准ZQ以防止由于系统中的热变化导致的片内终结电阻(on-die termination resistance)中的失配。刷新逻辑532还决定何时将DRAM装置置于不同的掉电模式中。
仲裁器538双向地连接到命令队列520,并且是存储器信道控制器510的心脏。该仲裁器通过智能地安排访问以提高存储器总线的使用率来提高效率。仲裁器538使用计时块534以通过基于DRAM计时参数来确定命令队列520中的某些访问是否有资格发出而执行正确的计时关系。例如,每一DRAM具有在针对同一存储体的激活命令之间的最小指定时间,被称为“tRC”。计时块534维持一组计数器,其基于在JEDEC规范中指定的该参数和其他计时参数来确定合格性,并且该计时块双向地连接到重放队列530。页表536维持关于仲裁器538的存储器信道的每一存储体和存储排中的活动页的状态信息,并且双向地连接到重放队列530。
响应于从接口512接收到的写入存储器访问请求,ECC生成块544根据写入数据来计算ECC。DB 546针对接收到的存储器访问请求存储写入数据和ECC。当仲裁器538选取对应的写入访问以供调度到存储器信道时,该DB将组合的写入数据/ECC输出到队列514。
电源控制器550通常包括与高级可扩展接口第一版(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向存储器或I/O装置提供连续的存储器访问流以用于诸如DDR接口读取延时训练和回送测试(loopback testing)等目的。
存储器信道控制器510包括允许它选取存储器访问以调度到相关存储器信道的电路。为了做出期望的仲裁决定,地址生成器522将地址信息解码成预解码信息,其包括存储器系统中的存储排、行地址、列地址、存储体地址以及存储体群组,而命令队列520存储预解码信息。配置寄存器562存储配置信息以确定地址生成器522如何对接收到的地址信息进行解码。仲裁器538使用解码的地址信息、由计时块534指示的计时合格性信息以及由页表536指示的活动页信息来高效地安排存储器访问,同时观察其他标准,诸如QoS要求。例如,仲裁器538实施对打开页进行访问的偏好以避免改变存储器页所需的预充电和激活命令的开销,并通过将对一个存储体的开销访问与对另一个存储体的读取和写入访问进行交错来隐藏开销访问。具体地,在正常操作期间,仲裁器538可以决定在选择不同的页之前在不同存储体中保持页打开,直到需要对这些页进行预充电。
图6以框图形式示出了根据一些实施方案的带虚拟控制器模式的存储器信道控制器600。存储器信道控制器600可以用作存储器信道控制器510,但图6示出了与虚拟控制器模式有关的队列514、命令队列520、地址生成器522和仲裁器538的附加细节。如上所述,地址生成器522通过数据组构250从各种存储器访问引擎接收存储器访问请求。然而,当在虚拟控制器模式下操作时,地址生成器522还根据由图5的配置寄存器562设定的可编程解码将每个存储器访问请求的地址解码为标记为“SC”的子信道编号。
地址生成器522将包括解码的子信道编号的解码的存储器访问请求发送到命令队列520。命令队列520将解码的存储器访问请求存储在命令队列520的条目610中,该条目具有用于存储解码的子信道编号的第一字段612和用于存储如上所述的解码的存储器访问请求的剩余部分的第二字段614。
仲裁器538双向地连接到命令队列520,并使用计时块534(图6中未示出)以通过基于DRAM计时参数来确定命令队列520中的某些访问是否有资格发出而执行正确的计时关系。仲裁器538根据它在未选择虚拟控制器模式时使用的预定标准从命令队列520中为每个子信道独立地选取合格的存储器访问请求。这些预定标准的示例在上面进行了描述并可以在各实施方案之间变化。
根据所公开实施方案的一方面,存储器信道控制器600假设每个子信道使用相同类型的存储器,并利用该假设以通过对两个子信道仅使用一组配置寄存器来形成带简化设计和更小地址长度的存储器信道控制器。例如,每个DRAM在激活命令(或行命令)与列命令之间具有最小指定时间,称为“tRCD”。仲裁器538使用计时块534中的计数器来基于相同的可编程值确定每个子信道的合格性,因此配置寄存器562仅需要单组配置寄存器以供两个子信道使用。
在某个时刻,这些标准将使仲裁器538选取存储在条目610中的存储器访问请求,并将所述存储器访问请求提供给队列514。队列514是存储器信道控制器600的后端处的调度队列,其在指定子信道、存储排和存储体的同时向对应的PHY发送存储器访问请求。如图6中所示,队列514在两个子信道之间进行选择,并包括选择器620和两个类似的子信道队列630和640。选择器620具有一个输入和两个输出,并基于由命令队列520提供的SC位612以及存储器访问请求614在两个输出之间进行选择。队列630具有连接到选择器620的第一输出的输入、用于连接到子信道0的PHY的双向端口,以及包括第一条目632和最后条目634的一组条目,每个条目存储解码的存储器访问请求,但不存储SC。类似地,队列640具有连接到选择器620的第二输出的输入、用于连接到子信道1的PHY的双向端口,以及包括第一条目642和最后条目644的一组条目,每个条目存储解码的存储器访问请求,但不存储SC。在其他实施方案中,虚拟控制器模式可以根据该模式支持两个以上的子信道。
虚拟控制器模式利用每个命令需要多个时钟的存储器设备类型的功能,诸如LPDDR4和HBM。因此,仲裁器538不需要同时发出两个命令,并可以错开单独的子信道之间的命令的发出。这种向不同子信道发布命令的错开避免了同时收集两个命令的数据并在各种内部总线上交错数据的需要。另外地,虚拟控制器模式能够获得对LPDDR4DRAM的子信道和HBM DRAM的伪信道模式的支持的益处。在示例性实施方案中,存储器信道控制器600被设计有内部总线,其足够宽以支持高带宽模式,诸如用于HBM传统模式。利用这些宽内部总线,存储器信道控制器600可以同时支持多个子信道上的数据传输而没有任何感知的带宽损失。
存储器访问控制器600能够使用除了具有单个对应存储器信道的存储器信道控制器所需的额外电路之外的少量额外电路来解码对多个子信道的访问。如图6的示例中所示,存储器信道控制器600包括:地址发生器522,其进一步对子信道解码;命令队列,其存储额外位(SC)以跟踪由每个存储器访问请求选择的子信道;仲裁器,其仅包括少量附加解码;计时发生器和页表(图6中未示出),其包括用于跟踪附加子信道的计时合格性和状态的额外电路;以及队列,其包括选择器和单独的队列结构以独立地对每个子信道的访问进行排队。然而,这些修改仅需要存储器信道控制器510的相对较小比例的电路面积,因此存储器信道控制器600比图4中所示的双存储器信道控制器设计更节省空间。
图5的存储器控制器500和图6的存储器访问控制器600可以利用硬件与软件的各种组合来实施。该硬件电路可以包括优先级编码器、有限状态机、可编程逻辑阵列(PLA)等。在一些实施方案中,其他功能块可以在软件控制下通过数据处理器来执行。一些软件部件可以存储在计算机可读存储介质中以供至少一个处理器执行,并可以对应于存储在非暂时性计算机存储器或计算机可读存储介质中的指令。在各种实施方案中,非暂时性计算机可读存储介质包括磁盘或光盘存储装置、诸如快闪存储器等固态存储装置,或者一个或多个其他非易失性存储器装置。存储在非暂时性计算机可读存储介质上的计算机可读指令可以是源代码、汇编语言代码、目标代码或可由一个或多个处理器解译和/或执行的其他指令格式。
图5的存储器控制器500或图6的存储器访问控制器600或其任何部分可以通过呈数据库或其他数据结构形式的计算机可访问数据结构来描述或表示,该数据库或其他数据结构可以通过程序来读取并直接或间接地用于制造集成电路。例如,该数据结构可以为用高级设计语言(HDL)(诸如Verilog或VHDL)对硬件功能性的行为级描述或寄存器传输级(RTL)描述。该描述可以通过合成工具来读取,该合成工具可以对描述进行合成以从合成库中产生包括一系列门的网表。该网表包括门的集合,这些门还表示包括集成电路的硬件的功能性。该网表然后可以被放置和路由以产生描述要应用于掩模的几何形状的数据集。然后可以在各种半导体制造步骤中使用掩模来产生集成电路。替代地,计算机可访问存储介质上的数据库根据需要可以为网表(具有或不具有合成库)或数据集或者图形数据系统(GDS)II数据。
虽然已经描述了特定实施方案,但是对这些实施方案的各种修改对于本领域技术人员来说是显而易见的。例如,存储器控制器500可以与除DDRx存储器之外的其他类型的存储器接口(诸如高带宽存储器(HBM)、RAMbus DRAM(RDRAM)等)以及不同类型的DIMM进行介接。虽然所示实施方案描述了在DDR存储器中有用的存储器寻址和控制信号,但是它们将根据所用存储器的类型而变化。此外,图6的存储器访问控制器600可以扩展到两个以上的虚拟信道。
因此,所附权利要求意图涵盖落入所公开实施方案的范围内的对所公开实施方案的所有修改。
Claims (25)
1.一种具有存储器信道控制器(510)的存储器控制器(500),所述存储器信道控制器(510)包括:
命令队列(520),其用于存储包括虚拟控制器模式中的子信道编号的存储器访问请求;以及
仲裁器(538),其耦合到所述命令队列(520)以根据预定标准从所述命令队列(520)中选择存储器访问命令,其中在所述虚拟控制器模式中,所述仲裁器(538)使用所述预定标准独立地在每个子信道中的所述存储器访问请求中进行选择,并将选定的存储器访问请求发送到多个子信道(130/140)中的对应子信道。
2.如权利要求1所述的存储器控制器(500),其中所述命令队列(520)包括:
多个条目(610),每个条目包括用于存储所述子信道编号(612)的第一字段和用于存储关于所述存储器访问请求的附加数据(614)的第二字段。
3.如权利要求1所述的存储器控制器(500),其还包括调度队列(514),其用于向所述多个子信道(130/140)中的选定子信道提供存储器命令。
4.如权利要求3所述的存储器控制器(500),其中所述调度队列(514)包括:
多个条目(620),每个条目(622)包括所述子信道编号(624)和关于所述存储器访问请求(626)的附加数据;以及
多路分用器(630),其具有耦合到所述多个条目(620)中的最后条目以用于接收所述附加数据的输入、用于接收所述子信道编号的控制输入、用于向第一子信道提供存储器命令的第一输出和用于向第二子信道提供存储器命令的第二输出。
5.如权利要求3所述的存储器控制器(500),其中所述仲裁器(538)对于所有所述多个子信道使用一组公共计时寄存器来确定计时合格性。
6.如权利要求5所述的存储器控制器(500),其还包括耦合到所述仲裁器(538)的计时块(534),其中所述计时块(534)使用所述一组公共计时寄存器来单独地确定所述命令队列(520)中的访问的计时合格性。
7.如权利要求3所述的存储器控制器(500),其中所述仲裁器(538)在每个存储器控制器时钟周期中选择性地选取多个命令,并将所述多个命令中的每一个提供给所述多个子信道(130/140)中的不同的子信道。
8.如权利要求3所述的存储器控制器,其中所述预定标准包括存储器访问类型、页状态和服务质量。
9.一种具有带虚拟控制器模式的存储器信道控制器(510)的存储器控制器(500),所述存储器信道控制器(510)包括:
地址生成器(522),其用于接收存储器访问请求并对所述存储器访问请求解码以选择存储器系统中的存储器装置的存储排和存储体,并且在所述虚拟控制器模式中对用于所述存储器访问请求中的每一个的多个子信道的子信道编号进一步解码;
命令队列(520),其耦合到所述地址生成器(522)以用于存储解码后的所述存储器访问请求,所述存储器访问请求包括所述虚拟控制器模式中的所述子信道编号;
仲裁器(538),其耦合到所述命令队列(520)以根据预定标准使用所述存储排和所述存储体从所述命令队列(520)中选择存储器访问请求,并且在所述虚拟控制器模式中使用所述预定标准独立地在每个子信道中的所述存储器访问请求中进行选择;以及
调度队列(514),其耦合到所述命令队列(520)以用于通过物理接口向存储器系统(120)调度选定的存储器命令,并且在所述虚拟控制器模式中向选定的子信道进一步调度所述选定的存储器命令。
10.如权利要求9所述的存储器控制器(500),其中所述命令队列(520)包括:
多个条目(610),每个条目包括用于存储所述子信道编号(612)的第一字段和用于存储关于所述存储器访问请求的附加数据(614)的第二字段。
11.如权利要求10所述的存储器控制器(500),其中所述调度队列(514)包括:
多个条目(620),每个条目(622)包括所述子信道编号(624)和关于所述存储器访问请求(626)的附加数据;以及
多路分用器(630),其具有耦合到所述多个条目(620)中的最后条目以用于接收所述附加数据的输入、耦合到所述子信道编号的控制输入、用于向第一子信道提供存储器命令的第一输出和用于向第二子信道提供存储器命令的第二输出。
12.如权利要求9所述的存储器控制器(500),其中所述仲裁器(538)对于所有所述多个子信道使用一组公共计时寄存器来确定计时合格性。
13.如权利要求12所述的存储器控制器(500),其还包括耦合到所述仲裁器(538)的计时块(534),其中所述计时块(534)使用所述一组公共计时寄存器来单独地确定所述命令队列(520)中的访问的计时合格性。
14.如权利要求9所述的存储器控制器(500),其中所述仲裁器(538)在每个存储器控制器时钟周期中选择性地选取多个命令,并将所述多个命令中的每一个提供给所述多个子信道(130/140)中的不同的子信道。
15.一种数据处理系统(100),其包括:
多个存储器信道(130/140);
存储器控制器(500),其耦合到所述多个存储器信道(130/140)并具有带虚拟控制器模式的存储器信道控制器(510),所述存储器信道控制器(510)包括:
命令队列(520),其用于存储包括所述虚拟控制器模式中的子信道编号的存储器访问请求;以及
仲裁器(538),其耦合到所述命令队列(520)以根据预定标准从所述命令队列(520)中选择存储器访问命令,其中在所述虚拟控制器模式中,所述仲裁器(538)使用所述预定标准独立地在每个子信道中的所述存储器访问请求中进行选择,并将选定的存储器访问请求发送到所述多个子信道(130/140)中与所述子信道编号对应的一个存储器信道。
16.如权利要求15所述的数据处理系统(100),其中所述命令队列(520)包括:
多个条目(610),每个条目包括用于存储所述子信道编号(612)的第一字段和用于存储关于所述存储器访问请求的附加数据(614)的第二字段。
17.如权利要求15所述的数据处理系统(100),其还包括调度队列(514),其用于向所述多个存储器信道(130/140)中的选定存储器信道提供存储器命令。
18.如权利要求17所述的数据处理系统(100),其中所述调度队列(514)包括:
多个条目(620),每个条目(622)包括所述子信道编号(624)和关于所述存储器访问请求(626)的附加数据;以及
多路分用器(630),其具有耦合到所述多个条目(620)中的所述最后一个以用于接收所述附加数据的输入、耦合到所述子信道编号的控制输入、用于向第一子信道提供存储器命令的第一输出和用于向第二子信道提供存储器命令的第二输出。
19.如权利要求17所述的数据处理系统(100),其中所述仲裁器(538)对于所有所述多个存储器信道(130/140)使用一组公共计时寄存器来确定计时合格性。
20.如权利要求19所述的数据处理系统(100),其还包括耦合到所述仲裁器(538)的计时块(534),其中所述计时块(534)使用所述一组公共计时寄存器来单独地确定所述命令队列(520)中的访问的计时合格性。
21.如权利要求17所述的数据处理系统(100),其中所述仲裁器(538)在每个存储器控制器时钟周期中选择性地选取多个命令,并将所述多个命令中的每一个提供给所述多个存储器信道(130/140)中的不同的存储器信道。
22.如权利要求17所述的数据处理系统(100),其还包括多个存储器访问代理(210/220)以用于提供所述存储器访问请求。
23.一种用于控制具有多个存储器信道(130/140)的存储器系统(120)的方法,其包括:
在虚拟控制器模式中:
接收存储器访问请求;
将所述存储器访问请求中的每一个解码到所述存储器系统(120)中的存储器装置的存储体、存储排以及多个子信道中的子信道;
在命令队列(520)中存储包括所述存储体、所述存储排和所述子信道的所述存储器访问请求;
使用预定标准在所述命令队列(520)中的多个存储器访问请求中进行选择,其中所述选择还包括使用所述预定标准独立地从对每个子信道的所述存储器访问请求中进行选择;以及
根据所述子信道向所述多个存储器信道(130/140)中的一个调度选择后的所述存储器访问请求。
24.如权利要求23所述的方法,其还包括:
基于所述子信道多路分用对所述多个存储器信道的选定的存储器访问请求。
25.如权利要求23所述的方法,其还包括:
使用用于所有所述多个子信道的一组公共计时寄存器来确定所述存储器访问请求的计时合格性。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662363008P | 2016-07-15 | 2016-07-15 | |
US62/363,008 | 2016-07-15 | ||
US201662377265P | 2016-08-19 | 2016-08-19 | |
US62/377,265 | 2016-08-19 | ||
US15/252,889 US10037150B2 (en) | 2016-07-15 | 2016-08-31 | Memory controller with virtual controller mode |
US15/252,889 | 2016-08-31 | ||
PCT/US2016/053455 WO2018013159A1 (en) | 2016-07-15 | 2016-09-23 | Memory controller with virtual controller mode |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109690508A true CN109690508A (zh) | 2019-04-26 |
CN109690508B CN109690508B (zh) | 2023-06-13 |
Family
ID=60941095
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680088829.9A Active CN109690508B (zh) | 2016-07-15 | 2016-09-23 | 带虚拟控制器模式的存储器控制器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10037150B2 (zh) |
KR (1) | KR102370477B1 (zh) |
CN (1) | CN109690508B (zh) |
WO (1) | WO2018013159A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111913652A (zh) * | 2019-05-10 | 2020-11-10 | 爱思开海力士有限公司 | 包括处理电路的存储器件、存储器控制器和存储系统 |
CN112767978A (zh) * | 2021-01-11 | 2021-05-07 | 湖南国科微电子股份有限公司 | 一种ddr命令调度方法、装置、设备及介质 |
CN116257191A (zh) * | 2023-05-16 | 2023-06-13 | 北京象帝先计算技术有限公司 | 存储器的控制器、组件、电子设备及命令调度方法 |
CN117120992A (zh) * | 2021-03-31 | 2023-11-24 | 超威半导体公司 | 用于多队列存储器控制器的信用方案 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102680418B1 (ko) * | 2016-11-29 | 2024-07-03 | 삼성전자주식회사 | 컨트롤러 및 컨트롤러와 불휘발성 메모리 장치들을 포함하는 스토리지 장치 |
KR20180118329A (ko) * | 2017-04-21 | 2018-10-31 | 에스케이하이닉스 주식회사 | 메모리 시스템, 데이터 처리 시스템 및 그것의 동작 방법 |
US20210200694A1 (en) * | 2019-12-27 | 2021-07-01 | Advanced Micro Devices, Inc. | Staging buffer arbitration |
US11494316B2 (en) * | 2020-08-24 | 2022-11-08 | Advanced Micro Devices, Inc. | Memory controller with a plurality of command sub-queues and corresponding arbiters |
US11934251B2 (en) * | 2021-03-31 | 2024-03-19 | Advanced Micro Devices, Inc. | Data fabric clock switching |
US11755246B2 (en) * | 2021-06-24 | 2023-09-12 | Advanced Micro Devices, Inc. | Efficient rank switching in multi-rank memory controller |
US20240289033A1 (en) * | 2021-09-15 | 2024-08-29 | Intel Corporation | Routing of memory transactions |
US12073114B2 (en) * | 2021-09-30 | 2024-08-27 | Advanced Micro Devices, Inc. | Stacked command queue |
US11756606B2 (en) | 2021-12-13 | 2023-09-12 | Advanced Micro Devices, Inc. | Method and apparatus for recovering regular access performance in fine-grained DRAM |
US12117945B2 (en) * | 2022-06-24 | 2024-10-15 | Advanced Micro Devices, Inc. | Memory controller with pseudo-channel support |
US20240112747A1 (en) * | 2022-09-30 | 2024-04-04 | Advanced Micro Devices, Inc. | Signal interference testing using reliable read write interface |
US20240296128A1 (en) * | 2023-03-02 | 2024-09-05 | Advanced Micro Devices, Inc. | Efficient input/output memory management unit |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4459661A (en) * | 1978-09-18 | 1984-07-10 | Fujitsu Limited | Channel address control system for a virtual machine system |
CN1047407A (zh) * | 1989-05-17 | 1990-11-28 | 国际商业机器公司 | 在数据处理系统提供附加系统特性的方法和装置 |
US5369767A (en) * | 1989-05-17 | 1994-11-29 | International Business Machines Corp. | Servicing interrupt requests in a data processing system without using the services of an operating system |
EP0811925A2 (en) * | 1996-06-05 | 1997-12-10 | Compaq Computer Corporation | Multi-threaded bus master |
US20010039605A1 (en) * | 1999-12-20 | 2001-11-08 | Takeshi Uematsu | Virtual channel memory access controlling circuit |
WO2006134746A1 (en) * | 2005-06-14 | 2006-12-21 | Sony Computer Entertainment Inc. | Command transfer controlling apparatus and command transfer controlling method |
US20060294264A1 (en) * | 2005-06-23 | 2006-12-28 | James Akiyama | Memory micro-tiling speculative returns |
US20070156946A1 (en) * | 2005-12-29 | 2007-07-05 | Intel Corporation | Memory controller with bank sorting and scheduling |
WO2008070798A1 (en) * | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for managing commands of solid-state storage using bank interleave |
CN101609438A (zh) * | 2008-06-19 | 2009-12-23 | 索尼株式会社 | 存储器系统、其访问控制方法和计算机程序 |
US20090327596A1 (en) * | 2008-06-27 | 2009-12-31 | Intel Corporation | Memory controller using time-staggered lockstep sub-channels with buffered memory |
US20100153661A1 (en) * | 2008-12-11 | 2010-06-17 | Nvidia Corporation | Processing of read requests in a memory controller using pre-fetch mechanism |
CN102177551A (zh) * | 2008-08-08 | 2011-09-07 | 惠普开发有限公司 | 与标准存储器模块管脚兼容的存储器模块中的独立可控制和可重新配置的虚拟存储器设备 |
CN102187323A (zh) * | 2008-08-13 | 2011-09-14 | 惠普开发有限公司 | 多核存储器模块中的功率下降模式的动态利用 |
CN102203752A (zh) * | 2008-07-29 | 2011-09-28 | Vl有限公司 | 具有多个队列之间的仲裁的数据处理电路 |
US20110238941A1 (en) * | 2010-03-29 | 2011-09-29 | Freescale Semiconductor, Inc. | Scheduling memory access requests using predicted memory timing and state information |
EP2431884A1 (en) * | 2010-09-16 | 2012-03-21 | Apple Inc. | Multi-ported memory controller with ports associated with traffic classes |
US20140258620A1 (en) * | 2013-03-05 | 2014-09-11 | Ramadass Nagarajan | Method, apparatus, system for handling address conflicts in a distributed memory fabric architecture |
US20150221358A1 (en) * | 2014-02-03 | 2015-08-06 | Advanced Micro Devices, Inc. | Memory and memory controller for high reliability operation and method |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6260081B1 (en) | 1998-11-24 | 2001-07-10 | Advanced Micro Devices, Inc. | Direct memory access engine for supporting multiple virtual direct memory access channels |
US6295586B1 (en) | 1998-12-04 | 2001-09-25 | Advanced Micro Devices, Inc. | Queue based memory controller |
CN107408405B (zh) * | 2015-02-06 | 2021-03-05 | 美光科技公司 | 用于并行写入到多个存储器装置位置的设备及方法 |
CN106547701B (zh) * | 2015-09-17 | 2020-01-10 | 慧荣科技股份有限公司 | 记忆装置及数据读取方法 |
US10684969B2 (en) * | 2016-07-15 | 2020-06-16 | Advanced Micro Devices, Inc. | Command arbitration for high speed memory interfaces |
-
2016
- 2016-08-31 US US15/252,889 patent/US10037150B2/en active Active
- 2016-09-23 CN CN201680088829.9A patent/CN109690508B/zh active Active
- 2016-09-23 KR KR1020197003112A patent/KR102370477B1/ko active IP Right Grant
- 2016-09-23 WO PCT/US2016/053455 patent/WO2018013159A1/en active Application Filing
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4459661A (en) * | 1978-09-18 | 1984-07-10 | Fujitsu Limited | Channel address control system for a virtual machine system |
CN1047407A (zh) * | 1989-05-17 | 1990-11-28 | 国际商业机器公司 | 在数据处理系统提供附加系统特性的方法和装置 |
US5369767A (en) * | 1989-05-17 | 1994-11-29 | International Business Machines Corp. | Servicing interrupt requests in a data processing system without using the services of an operating system |
EP0811925A2 (en) * | 1996-06-05 | 1997-12-10 | Compaq Computer Corporation | Multi-threaded bus master |
US20010039605A1 (en) * | 1999-12-20 | 2001-11-08 | Takeshi Uematsu | Virtual channel memory access controlling circuit |
WO2006134746A1 (en) * | 2005-06-14 | 2006-12-21 | Sony Computer Entertainment Inc. | Command transfer controlling apparatus and command transfer controlling method |
US20060294264A1 (en) * | 2005-06-23 | 2006-12-28 | James Akiyama | Memory micro-tiling speculative returns |
US20070156946A1 (en) * | 2005-12-29 | 2007-07-05 | Intel Corporation | Memory controller with bank sorting and scheduling |
WO2008070798A1 (en) * | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for managing commands of solid-state storage using bank interleave |
CN101609438A (zh) * | 2008-06-19 | 2009-12-23 | 索尼株式会社 | 存储器系统、其访问控制方法和计算机程序 |
US20090327596A1 (en) * | 2008-06-27 | 2009-12-31 | Intel Corporation | Memory controller using time-staggered lockstep sub-channels with buffered memory |
CN102203752A (zh) * | 2008-07-29 | 2011-09-28 | Vl有限公司 | 具有多个队列之间的仲裁的数据处理电路 |
CN102177551A (zh) * | 2008-08-08 | 2011-09-07 | 惠普开发有限公司 | 与标准存储器模块管脚兼容的存储器模块中的独立可控制和可重新配置的虚拟存储器设备 |
CN102187323A (zh) * | 2008-08-13 | 2011-09-14 | 惠普开发有限公司 | 多核存储器模块中的功率下降模式的动态利用 |
US20100153661A1 (en) * | 2008-12-11 | 2010-06-17 | Nvidia Corporation | Processing of read requests in a memory controller using pre-fetch mechanism |
US20110238941A1 (en) * | 2010-03-29 | 2011-09-29 | Freescale Semiconductor, Inc. | Scheduling memory access requests using predicted memory timing and state information |
EP2431884A1 (en) * | 2010-09-16 | 2012-03-21 | Apple Inc. | Multi-ported memory controller with ports associated with traffic classes |
US20140258620A1 (en) * | 2013-03-05 | 2014-09-11 | Ramadass Nagarajan | Method, apparatus, system for handling address conflicts in a distributed memory fabric architecture |
US20150221358A1 (en) * | 2014-02-03 | 2015-08-06 | Advanced Micro Devices, Inc. | Memory and memory controller for high reliability operation and method |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111913652A (zh) * | 2019-05-10 | 2020-11-10 | 爱思开海力士有限公司 | 包括处理电路的存储器件、存储器控制器和存储系统 |
CN111913652B (zh) * | 2019-05-10 | 2024-03-15 | 爱思开海力士有限公司 | 包括处理电路的存储器件、存储器控制器和存储系统 |
CN112767978A (zh) * | 2021-01-11 | 2021-05-07 | 湖南国科微电子股份有限公司 | 一种ddr命令调度方法、装置、设备及介质 |
CN117120992A (zh) * | 2021-03-31 | 2023-11-24 | 超威半导体公司 | 用于多队列存储器控制器的信用方案 |
CN116257191A (zh) * | 2023-05-16 | 2023-06-13 | 北京象帝先计算技术有限公司 | 存储器的控制器、组件、电子设备及命令调度方法 |
CN116257191B (zh) * | 2023-05-16 | 2023-10-20 | 北京象帝先计算技术有限公司 | 存储器的控制器、组件、电子设备及命令调度方法 |
Also Published As
Publication number | Publication date |
---|---|
US10037150B2 (en) | 2018-07-31 |
WO2018013159A1 (en) | 2018-01-18 |
CN109690508B (zh) | 2023-06-13 |
KR102370477B1 (ko) | 2022-03-04 |
KR20190019203A (ko) | 2019-02-26 |
US20180018105A1 (en) | 2018-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109690508A (zh) | 带虚拟控制器模式的存储器控制器 | |
US10593391B2 (en) | Refresh scheme in a memory controller | |
US10684969B2 (en) | Command arbitration for high speed memory interfaces | |
CN109154918A (zh) | 自刷新状态机mop阵列 | |
CN109564556A (zh) | 具有条纹和读取/写入事务管理的存储器控制器仲裁器 | |
CN109863481A (zh) | 用于平台裕度调节和调试的软件模式寄存器访问 | |
EP3436958B1 (en) | Low power memory throttling | |
JP2023539737A (ja) | 複数のコマンドサブキュー及び対応するアービタを有するメモリコントローラ | |
EP4150618B1 (en) | Refresh management for dram | |
EP3270294B1 (en) | Command arbitration for high-speed memory interfaces | |
US11379388B1 (en) | Credit scheme for multi-queue memory controllers | |
EP3270295A1 (en) | Memory controller with virtual controller mode | |
WO2024072725A1 (en) | Directed refresh management for 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 |