存储器控制器中的刷新方案

文档序号:1568626 发布日期:2020-01-24 浏览:12次 >En<

阅读说明:本技术 存储器控制器中的刷新方案 (Refresh scheme in a memory controller ) 是由 赵亮 姚于斌 于 2018-07-16 设计创作,主要内容包括:本发明涉及存储器控制器中的刷新方案。在一种形式中,存储器控制器包括命令队列、仲裁器、刷新逻辑电路和最终仲裁器。所述命令队列接收并存储对存储器的存储器访问请求。所述仲裁器根据第一类型的访问和第二类型的访问来从所述命令队列选择性地选取访问。所述第一类型的访问和所述第二类型的访问对应于所述存储器中的对应存储器访问的不同页状态。所述刷新逻辑电路生成对所述存储器的存储体的刷新命令,并且为所述刷新命令提供优先级指示符,所述优先级指示符的值根据待处理刷新的数目来设置。所述最终仲裁器基于所述优先级指示符相对于所述第一类型的访问和所述第二类型的访问的存储器访问请求选择性地排序所述刷新命令。(The present invention relates to refresh schemes in memory controllers. In one form a memory controller includes a command queue, an arbiter, refresh logic, and a final arbiter. The command queue receives and stores memory access requests to memory. The arbiter selectively chooses an access from the command queue based on a first type of access and a second type of access. The first type of access and the second type of access correspond to different page states of corresponding memory accesses in the memory. The refresh logic generates a refresh command to a bank of the memory and provides the refresh command with a priority indicator whose value is set according to a number of pending refreshes. The final arbiter selectively orders the refresh commands relative to memory access requests of the first type of access and the second type of access based on the priority indicators.)

存储器控制器中的刷新方案

技术领域

本发明总体上涉及计算机领域,更具体地涉及存储器控制器中的刷新方案。

背景技术

计算机系统通常将廉价且高密度的动态随机存取存储器(DRAM)芯片用于主存储器。现今销售的大部分DRAM芯片与由联合电子器件工程委员会(JEDEC)颁布的各种双数据速率(DDR)DRAM标准相容。DRAM芯片不是持久存储器装置。因此,在计算机系统的正常操作期间,DRAM芯片需要周期性的存储器刷新用于数据保持。存储器刷新是在半导体DRAM的操作期间需要的后台维护过程。由于在形成DRAM芯片的小电容器上存在或不存在电荷而存储存储器数据的每一位。随着时间的推移,电容器上的电荷泄漏,并且在没有存储器刷新的情况下,所存储的数据将会丢失。为了防止数据丢失,外部电路发送命令以使存储器周期性地读取一行并重写该行,从而将该行的存储器单元的电容器上的电荷恢复到原始电荷电平。当发生刷新时,存储器不可用于正常的读取和写入操作。

已尝试调整刷新操作对DRAM带宽的影响。已知的存储器控制器采用两个过程中的一个来刷新DRAM。在第一示例中,存储器控制器等待,直到没有其他的对存储器的访问是待处理的,然后存储器控制器向存储器提供刷新。这些被称为临时刷新。在另一示例中,当存储器控制器已经等待过长时间并且存储器急需刷新时,然后存储器控制器提供紧急刷新。上述示例中的每一个都可能导致存储器交易停滞,因此导致存储器性能下降。

在一方面,提供了一种存储器控制器,其可以包括:命令队列,其用于接收并存储对存储器的存储器访问请求;仲裁器,其用于根据第一类型的访问和第二类型的访问来从所述命令队列选择性地选取访问,其中所述第一类型的访问和所述第二类型的访问对应于所述存储器中的对应存储器访问的不同的页状态;刷新逻辑电路,其用于生成对所述存储器的存储体的刷新命令,并为所述刷新命令提供优先级指示符,所述优先级指示符的值根据待处理刷新的数目来设置;以及最终仲裁器,其用于基于所述优先级指示符相对于所述第一类型的访问和所述第二类型的访问的存储器访问请求来选择性地排序所述刷新命令。

在另一方面,提供了一种数据处理系统,其可以包括:存储器访问代理,其用于提供对存储器的存储器访问请求;存储器系统,其耦合到所述存储器访问代理;以及存储器控制器,其耦合到所述存储器系统和所述存储器访问代理,所述存储器控制器包括:命令队列,其用于存储从所述存储器访问代理接收到的存储器访问命令;仲裁器,其用于根据第一类型的访问和第二类型的访问从所述命令队列选择性地选取存储器访问,其中每种类型的访问对应于所述存储器中的存储体的不同页状态;以及最终仲裁器,其基于从刷新逻辑电路接收到的输入进行仲裁,所述刷新逻辑电路生成对所述存储器的所述存储体的刷新命令并为所述刷新命令提供优先级指示符,所述优先级指示符的值根据待处理刷新的数目来设置,以相对于第一类型的访问和第二类型的访问选择性地排序所述刷新命令。

在又一方面,提供了一种用于经由存储器控制器来管理存储器系统中的存储器的刷新的方法,所述方法可以包括:接收多个存储器访问请求;将所述多个存储器访问请求存储在命令队列中;以及根据第一类型的访问和第二类型的访问从所述命令队列选择性地选取存储器访问请求,所述第一类型的访问和所述第二类型的访问对应于所述存储器中的对应存储器访问的不同页状态;生成对所述存储器的存储体的刷新命令,并且为所述刷新命令提供优先级指示符;以及基于所述优先级指示符相对于所述第一类型的访问和所述第二类型的访问的存储器访问请求选择性地排序所述刷新命令。

附图简述

图1以方框图形式示出根据一些实施方案的数据处理系统;

图2以方框图形式示出适合于在图1的数据处理系统中使用的加速处理单元(APU);

图3以方框图形式示出根据一些实施方案的适合于在图2的APU中使用的存储器控制器和相关联的物理接口(PHY);

图4以方框图形式示出根据一些实施方案的适合于在图2的APU中使用的另一存储器控制器和相关联的PHY;

图5以方框图形式示出根据一些实施方案的存储器控制器;

图6示出根据一些实施方案的存储器控制器的一部分的方框图;以及

图7示出根据一些实施方案的可用于图5和图6的刷新逻辑电路的刷新逻辑电路的方框图。

在以下描述中,不同图中使用的相同的参考符号指示相似或相同的项目。除非另外指出,否则词语“耦合”及其相关联的动词形式包括直接连接和通过本领域中已知的手段的间接电气连接两者,并且除非另外指出,否则对直接连接的任何描述也意味着使用适当形式的间接电气连接的替代性实施方案。

说明性实施方案的详细描述

如下文将以一种形式描述,存储器控制器包括命令队列、仲裁器、刷新逻辑电路和最终仲裁器。所述命令队列接收并存储对存储器的存储器访问请求。仲裁器根据第一类型的访问和第二类型的访问来从命令队列选择性地选取访问。第一类型的访问和第二类型的访问对应于存储器中的对应存储器访问的不同页状态。刷新逻辑电路生成对存储器的存储体(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)的集合,包括在此示例中对应于单独的内存条(rank)的代表性DIMM134、136以及138。同样地,存储器通道140包括连接到DDRx总线142的DIMM的集合,包括代表性DIMM 144、146以及148。

PCIe系统150包括连接到数据处理器110中的PCIe根复合体、PCIe装置154、PCIe装置156以及PCIe装置158的PCIe交换机152。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核心复合体210可包括任意数目的CPU核心。CPU核心212和214中的每一个均双向地连接到系统管理网络(SMN),这形成控制组构;并连接到数据组构250;且能够将存储器访问请求提供到数据组构250。CPU核心212和214中的每一个可为单一核心,或可另外为具有共享例如高速缓存等特定资源的两个或更多个单一核心的核心复合体。

图形核心220为高性能图形处理单元(GPU),其能够以高度集成且并行的方式执行图形操作,例如顶点处理、片段处理、明暗处理、纹理混合及类似者。图形核心220双向地连接到SMN和数据组构250,且能够将存储器访问请求提供到数据组构250。就此而言,APU200可支持其中CPU核心复合体210和图形核心220共享同一存储器空间的统一存储器架构,或其中CPU核心复合体210和图形核心220共享存储器空间的一部分同时图形核心220还使用CPU核心复合体210不可访问的专用图形存储器的存储器架构。

显示器引擎230渲染并光栅化通过图形核心220生成的对象以用于显示在监视器上。图形核心220和显示器引擎230双向地连接到共同的存储器管理集线器240以用于统一转变成存储器系统120中的适合的地址,且存储器管理集线器240双向地连接到数据组构250以用于生成此类存储器访问并接收从存储器系统返回的读取数据。

数据组构250包括用于在任何存储器访问代理与存储器控制器290之间路由存储器访问请求和存储器响应的交叉交换机。所述数据组构还包括通过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双向地连接到PHY 330。电源引擎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双向地连接到PHY 440和450,并且还双向地连接到存储器通道控制器414和424。PHY 440具有到存储器通道(例如图1的存储器通道130)的双向连接。PHY 450具有到存储器通道(例如图1的存储器通道140)的双向连接。存储器控制器400为具有两个存储器通道控制器的存储器控制器的示例化,并使用共享的电源引擎430来以下文将进一步描述的方式控制存储器通道控制器414和存储器通道控制器424两者的操作。

图5以方框图形式示出根据一些实施方案的存储器控制器500。存储器控制器500包括存储器通道控制器510和电源控制器550。存储器通道控制器510包括接口512、队列514、命令队列520、地址生成器522、内容可寻址存储器(CAM)524、重放队列530、刷新逻辑电路块532、定时块534、页表536、仲裁器538、错误校正码(ECC)校验块542、ECC生成块544以及数据缓冲器(DB)546。

接口512具有经由外部总线到数据组构250的第一双向连接,且具有输出。在存储器控制器500中,此外部总线与由英国剑桥的ARM Holdings,PLC指定的高级可扩展接口第四版(被称为“AXI4”)相容,但在其他实施方案中可为其他类型的接口。接口512将存储器访问请求从被称为FCLK(或MEMCLK)域的第一时钟域转变到被称为UCLK域的在存储器控制器500内部的第二时钟域。类似地,队列514将存储器访问从UCLK域提供到与DFI接口相关联的DFICLK域。

地址生成器522将经由AXI4总线从数据组构250接收到的存储器访问请求的地址进行解码。存储器访问请求包括表示为规范化地址的物理地址空间中的访问地址。地址生成器522将规范化地址转换成可用于对存储器系统120中的实际存储器装置进行寻址以及用于高效地调度相关访问的格式。此格式包括区域识别符,所述区域识别符使存储器访问请求与特定内存条、行地址、列地址、存储体地址以及存储体群组相关联。在启动时,系统BIOS查询存储器系统120中的存储器装置以确定所述存储器装置的大小和配置,并对与地址生成器522相关联的配置寄存器的集合进行编程。地址生成器522使用存储在配置寄存器中的配置来将规范化地址转变成适合的格式。命令队列520为从数据处理系统100中的存储器访问代理(例如CPU核心212和214以及图形核心220)接收到的存储器访问请求的队列。命令队列520存储通过地址生成器522解码的地址字段,以及允许仲裁器538高效地选择存储器访问的其他地址信息,包括访问类型和服务质量(QoS)识别符。CAM 524包括用以实施排序规则的信息,例如写后写(WAW)和写后读(RAW)排序规则。

重放队列530为用于存储通过仲裁器538选取的在等待响应的存储器访问的暂时性队列,所述响应例如地址和命令奇偶校验响应、DDR4DRAM的写循环冗余校验(CRC)响应或GDDR5DRAM的写入和读取CRC响应。重放队列530访问ECC校验块542以确定返回的ECC是正确的还是指示错误。重放队列530允许访问在这些循环中的一个的奇偶校验错误或CRC错误的情况下重放。

刷新逻辑电路532包括用于各种下电、刷新以及终结电阻(ZQ)校准周期的状态机,所述周期与从存储器访问代理接收到的正常的读取和写入存储器访问请求分开生成。例如,如果存储器内存条处于预充电下电,则所述存储器内存条必须定期被唤醒以运行刷新周期。刷新逻辑电路532周期性地生成自动刷新命令,以防止通过从DRAM芯片中的存储器单元的存储电容器泄漏电荷造成的数据错误。另外,刷新逻辑电路532周期性地校准ZQ以防止由于系统中的热变化导致的片内终结电阻中的失配。刷新逻辑电路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接口读取延时训练和回送测试等目的。

存储器通道控制器510包括允许所述存储器通道控制器选取存储器访问以分派到相关联的存储器通道的电路。为做出期望的仲裁决定,地址生成器522将地址信息解码成预解码信息,包括存储器系统中的内存条、行地址、列地址、存储体地址以及存储体群组,且命令队列520存储预解码信息。配置寄存器562存储配置信息以确定地址生成器522如何对接收到的地址信息进行解码。仲裁器538使用经解码的地址信息、由定时块534指示的定时合格性信息以及由页表536指示的活动页信息来高效地调度存储器访问,同时观察其他准则,例如QoS要求。例如,仲裁器538实施对打开页进行访问的偏好以避免改变存储器页所需的预充电和激活命令的开销,并通过将对一个存储体的开销访问与对另一个存储体的读取和写入访问进行交错来隐藏开销访问。确切地说,在正常操作期间,仲裁器538可决定在选择不同的页之前在不同存储体中保持页打开,直到需要对所述页进行预充电。

图6示出根据一些实施方案的图5的存储器控制器500的一部分600的方框图。部分600包含仲裁器538、刷新逻辑电路532和与仲裁器538的操作相关联的控制电路的集合660。仲裁器538包括子仲裁器的集合605和最终仲裁器650。子仲裁器605包括子仲裁器610、子仲裁器620以及子仲裁器630。子仲裁器610包括标记为“PH ARB”的页命中仲裁器612,以及输出寄存器614。页命中仲裁器612具有连接到命令队列520的第一输入端、第二输入端以及输出端。寄存器614具有连接到页命中仲裁器612的输出端的数据输入端、用于接收UCLK信号的时钟输入端,以及输出端。子仲裁器620包括标记为“PC ARB”的页冲突仲裁器622,以及输出寄存器624。页冲突仲裁器622具有连接到命令队列520的第一输入端、第二输入端以及输出端。寄存器624具有连接到页冲突仲裁器622的输出端的数据输入端、用于接收UCLK信号的时钟输入端,以及输出端。子仲裁器630包括标记为“PM ARB”的页错失仲裁器632,以及输出寄存器634。页错失仲裁器632具有连接到命令队列520的第一输入端、第二输入端以及输出端。寄存器634具有连接到页错失仲裁器632的输出端的数据输入端、用于接收UCLK信号的时钟输入端,以及输出端。最终仲裁器650具有连接到页关闭预测器662的输出端的第一输入端、连接到刷新逻辑电路532的输出端的第二输入端、连接到输出寄存器614的输出端的第三输入端、连接到输出寄存器624的输出端的第四输入端、连接到寄存器634的输出端的第五输入端以及用于将仲裁获胜者提供给队列514的第一输出端。

刷新逻辑电路532的输出端为相关联的刷新命令提供优先级指示符。刷新逻辑电路532还具有连接到最终仲裁器650的输出端的输入端。

控制电路660包括如先前关于图5描述的定时块534和页表536,以及页关闭预测器662。定时块534具有输入端和输出端,所述输出端连接到页命中仲裁器612、页冲突仲裁器622以及页错失仲裁器632的第一输入端。页表536具有连接到重放队列530的输出端的输入端、连接到重放队列530的输入端的输出端、连接到命令队列520的输入端的输出端、连接到定时块534的输入端的输出端以及连接到页关闭预测器662的输入端的输出端。页关闭预测器662具有连接到页表536的一个输出端的输入端、连接到输出寄存器614的输出端的输入端以及连接到最终仲裁器650的第二输入端的输出端。

在操作中,仲裁器538通过考虑每一条目的页状态及每一刷新命令的优先级来从命令队列520选择存储器访问请求(命令)和刷新逻辑532。存储器访问优先级是基于中间刷新间隔,但是可以基于存储器访问请求的页状态和刷新命令的优先级指示符状态来改变。仲裁器538包含三个子仲裁器,所述子仲裁器与刷新逻辑电路532并行操作以解决现有的集成电路技术的处理和传输限制之间的失配。各个子仲裁的获胜者与具有优先级指示符的刷新命令一起被呈现给最终仲裁器650。最终仲裁器650在这三个子仲裁获胜者和来自刷新逻辑532的刷新操作之间进行选择以向队列514输出。

页命中仲裁器612、页冲突仲裁器622以及页错失仲裁器632中的每一个均具有连接到定时块534的输出端的输入端以确定在命令队列520中落入这些相应类别中的命令的定时合格性。定时块534包括二进制计数器的阵列,所述二进制计数器的阵列对与每一内存条中的每一存储体的特定操作相关的持续时间进行计数。确定状态所需的定时器的数目取决于定时参数、给定存储器类型的存储体的数目以及在给定存储器通道上由系统支持的内存条的数目。所实施的定时参数的数目又取决于在系统中实施的存储器的类型。例如,与其他DDRx存储器类型相比,GDDR5存储器需要更多的定时器以遵守更多的定时参数。通过包括实施为二进制计数器的通用定时器的阵列,定时块534可扩展并重新用于不同的存储器类型。

页命中为打开页的读取或写入周期。页命中仲裁器612在命令队列520中的对打开页的访问之间进行仲裁。页冲突是在存储体中的一行当前被激活时对所述存储体中的另一行的访问。页冲突仲裁器622在命令队列520中的对与在对应存储体和内存条中当前打开的页冲突的页的访问之间进行仲裁。页冲突仲裁器622选择导致预充电命令的发出的子仲裁获胜者。页错失为在预充电状态下的对存储体的访问。页错失仲裁器632在命令队列520中的对预充电存储体的访问之间进行仲裁。仲裁器538根据存储器访问的类型从命令队列520选择性地选取访问。页命中仲裁器612、页冲突仲裁器622和页错失仲裁器632中的每一个均输出第一类型的访问或第二类型的访问。

第一类型的访问和第二类型的访问对应于存储器中的对应存储器访问的不同页状态。更具体地说,页命中仲裁器612输出第一类型的访问。页冲突仲裁器622和页错失仲裁器632各自输出第二类型的访问。在确定三个子仲裁获胜者当中的相对优先级之后,最终仲裁器650则确定子仲裁获胜者是否与刷新命令冲突(即,子仲裁获胜者是否指向相同的存储体和内存条)。当不存在这样的冲突并且刷新时间间隔被满足时,则最终仲裁器650选择刷新命令。当存在冲突时,则最终仲裁器650遵守以下规则。当刷新命令的优先级指示符是第一优先级状态(中间优先级)并且页命中仲裁器612选择待处理页命中时,则最终仲裁器650选择由页命中仲裁器612指示的访问。当刷新命令的优先级指示符是第二优先级状态(紧急优先级)并且子仲裁获胜者是来自页命中仲裁器612时,最终仲裁器650选择由刷新逻辑电路532指示的访问,由此优先执行刷新命令代替页命中。在一些情况下,刷新逻辑电路532基于紧急刷新计数阈值而将刷新命令的优先级状态提升到紧急状态。

刷新逻辑电路532为刷新命令提供优先级指示符以将刷新命令的优先级状态指定给最终仲裁器650。刷新逻辑电路532根据待处理刷新的数目来设置优先级指示符的值。刷新逻辑电路532向优先级指示符指派第一优先级状态或第二优先级状态。刷新逻辑532基于预定时间段均匀地展开每个存储体刷新周期。预定时间段是作为与定时相关的刷新间隔的中间刷新间隔,所述与定时相关的刷新间隔是基于刷新时间间隔(tREFI)和指派给存储器控制器的存储体的数目。中间刷新的触发取决于欠刷新的阈值。

在刷新逻辑电路532内,基于待处理刷新的数目初始地设置优先级。通常,刷新逻辑电路532将刷新命令提升为在第一类型的访问和第二类型的访问之间执行。更具体地说,当不存在页命中事务时,最终仲裁器650将刷新命令发送到目标存储体。响应于第二优先级状态,最终仲裁器650将刷新命令提升为高于第一类型的访问和第二类型的访问。由此,在一些情况下,最终仲裁器650优先对存储体执行刷新命令代替待处理请求。

通过对页命中、页冲突和页错失使用子仲裁器,仲裁器538可以基于子仲裁选择性地选取访问,并将它们分类为第一类型的访问和第二类型的访问。最终仲裁器650可以基于从刷新逻辑电路532接收的输入来选择刷新命令,所述刷新逻辑电路基于待处理刷新的数目来生成对存储器132的存储体134的刷新命令。最终仲裁器650相对于第一类型的访问和第二类型的访问排序刷新命令。中间刷新时间间隔是小于tREFI的时间段。基于存储器访问的类型以及根据待处理刷新的数目排序刷新命令允许以高于刷新时间间隔的频率并且在足够的时间量内发送刷新命令,以避免由于紧急刷新造成的损失。

在其他实施方案中,仲裁器538可以包括不同数目的子仲裁器。例如,仲裁器538可以包括两个子仲裁器,一个仲裁器用于页命中而另一个仲裁器用于页冲突和页错失。在这种情况下,仲裁器538能够基于两个子仲裁来访问页类型。

在一些实施方案中,刷新逻辑电路532在一个tREFI内生成每个存储体的刷新命令,使得在高工作负荷期间当一些存储体正在刷新时,其他事务正将其他存储体与存储器132一起使用以更充分地利用存储器132的总线带宽。通常,为了在事务期间发出中间刷新命令,当预定时钟周期到期并且存储体的页关闭时,最终仲裁器650对具有第一或第二优先级状态的中间刷新命令断言紧急刷新状态。这允许均匀且一致地生成对存储器132的每个存储体中间刷新命令。最终仲裁器650仲裁生成对存储体的每个存储体中间刷新命令在页命中和页错失之间。提升生成每个存储体中间刷新命令的优先级在页命中与页错失之间进一步节省了存储器132以免于由关闭页导致的损失。有利地,每个存储体中间刷新命令缓解了在打开存储器的一行和访问所述行内的列之间所需的时钟周期(trcd),并且缓解了在发出预充电命令和打开下一行之间所需的时钟周期(trp)。

在一些实施方案中,仲裁器538使用优先级指示符来使存储体的优先级进行降级。响应于同时接收具有等同的优先级指示符的对至少两个存储体的刷新命令,仲裁器538使作为刷新命令的最近接收者的存储体降级为低于作为刷新命令的最早接收者的存储器的存储体。响应于从刷新逻辑电路532接收到紧急刷新命令,仲裁器538阻止对应存储体的一行的激活,使得在该存储体中不开始新的活动。在接收到对存储体的紧急刷新命令之后,仲裁器538在两种情况下向存储体发送刷新请求。首先,如果在生成紧急刷新命令的同时满足刷新定时,则仲裁器538立即发送对该存储体的紧急刷新命令。其次,如果在生成紧急刷新命令的同时没有满足刷新定时,则仲裁器538等待刷新定时被满足,且然后发送对对应存储体的刷新请求。

图7示出了根据一些实施方案的可用于图5和图6的刷新逻辑电路532的刷新逻辑电路700的方框图。刷新逻辑电路700通常包括刷新内部定时器705、每个存储体定时器阵列710、待处理刷新队列720、欠刷新计数器730、第一比较器740和第二比较器750。

刷新内部定时器705具有连接到时钟源的输入端,和用于提供对欠刷新计数器730的递增计数的输出端。每个存储体计时器阵列710具有用于接收时钟信号的输入端,和用于提供对待处理刷新队列720的每个存储体刷新的输出端。待处理刷新队列720具有连接到每个存储体定时器阵列710的第一输入端、第二输入端以及用于提供对最终仲裁器650的刷新命令的输出端。欠刷新计数器730具有标记为“INC”的第一输入端、连接到最终仲裁器650的输出端的标记为“DEC”的第二输入端以及输出端。欠刷新计数器730的输出端向第一比较器740和第二比较器750提供欠刷新计数。第一比较器740还包括用于接收可编程紧急刷新限制的第二输入端,和用于为刷新命令提供优先级指示符的输出端。第二比较器750还包括用于接收可编程中间刷新限制的第二输入端,和用于利用刷新命令信号向最终仲裁器650提供优先级指示符的标记为“紧急”的输出端。最终仲裁器650向待处理刷新队列720和欠刷新计数器730提供“刷新已发送”信号以跟踪待处理刷新的数目。

在操作中,刷新逻辑电路700接收用于跟踪tREFI的时钟信号。刷新逻辑电路700基于tREFI确定中间刷新时间间隔,并基于时钟信号和指派给存储器控制器的存储体总数来提供刷新命令。每个周期中间时间段经过而未发送刷新,刷新定时器间隔定时器705发信号以使欠刷新计数器730递增。每个存储体定时器阵列710接收时钟信号,并提供对与相应存储体对应的待处理刷新队列720的刷新命令。待处理刷新队列720将刷新命令和优先级指示符提供给最终仲裁器650。刷新逻辑电路700根据待处理刷新的数目来设置优先级指示符的值。第一比较器740将欠刷新的数目与紧急刷新限制进行比较,并当欠刷新计数器730高于紧急刷新限制时,提升待处理刷新命令的优先级指示符。第二比较器750将欠刷新的数目与中间刷新限制进行比较,并当欠刷新计数器730高于中间刷新计数阈值时,将优先级指示符设置为第一优先级状态。

在一些实施方案中,刷新逻辑电路700生成每两个存储体的刷新命令。当成对存储体的待处理刷新命令的优先级指示符为第一优先级状态并且刷新定时器高于刷新定时间隔时,刷新逻辑电路700提升所述优先级指示符。因此,当成对存储体中的一个为关闭页并且中间刷新间隔已经过去时,优先级指示符被提升到两个成对存储体的紧急刷新状态。响应于页在目标存储体中打开,最终仲裁器650对两个存储体预充电。

通过选择为每个存储体刷新命令指示中间优先级,刷新逻辑电路700允许仲裁器538及时发送大部分刷新以避免由于紧急刷新造成的延时损失。此外,存储器带宽被增加,从而使得能够提高处理器性能。在一个示例中,对于双数据速率型六同步图形随机存取存储器(GDDR6),与使用每个存储体仅临时或紧急刷新方案时相比,当使用每个存储体中间刷新时,存储器带宽利用率增加了大约3%。

图5、图6和图7的电路可用硬件和软件的各种组合来实施。例如,硬件电路可包括优先级编码器、有限状态机、可编程逻辑阵列(PLA)及类似者,仲裁器538可用微控制器来实施,所述微控制器执行所存储的程序指令以评估待处理命令的相对定时合格性。在此情况下,指令中的一些可存储在非暂时性计算机存储器或计算机可读存储介质中以用于通过微控制器执行。在各种实施方案中,非暂时性计算机可读存储介质包括:磁盘或光盘存储装置、例如快闪存储器的固态存储装置或一个或多个其他的非易失性存储器装置。存储在非暂时性计算机可读存储介质上的计算机可读指令可以是源代码、汇编语言代码、目标代码或可由一个或多个处理器解译和/或执行的其他指令格式。

图1的APU 110或图5的存储器控制器500或其任何部分(例如仲裁器538)可通过呈数据库或其他数据结构形式的计算机可访问数据结构来描述或表示,所述数据库或其他数据结构可通过程序来读取并直接或间接地用于制造集成电路。例如,此数据结构可为用例如Verilog或VHDL等高级设计语言(HDL)对硬件功能性的行为级描述或寄存器传输级(RTL)描述。所述描述可以通过合成工具来读取,所述合成工具可以对描述进行合成,以便从合成库产生包括一系列门的网表。所述网表包括门的集合,所述门还表示包括集成电路的硬件的功能性。所述网表随后可被放置和选路以产生描述要应用于掩模的几何形状的数据集。随后可在各种半导体制造步骤中使用掩模来产生集成电路。替代地,计算机可访问存储介质上的数据库根据需要可以是网表(具有或不具有合成库)或数据集,或图形数据系统(GDS)II数据。

虽然已描述了特定实施方案,但所属领域的技术人员应清楚对这些实施方案的各种修改。例如,存储器控制器500和/或仲裁器538的内部架构在不同的实施方案中可不同。存储器控制器500可介接到除DDRx存储器外的其他类型的存储器,例如高带宽存储器(HBM)、RAMbusDRAM(RDRAM)、同步图形随机存取存储器及类似者。尽管所示实施方案示出了对应于每个存储体时间间隔的中间刷新的存储器的每个存储体,但是在其他实施方案中,存储器的成对存储体中的两个存储体可以支持对每个存储体时间间隔的中间刷新进行响应。

因此,所附权利要求意图涵盖落入所公开实施方案的范围内的对所公开实施方案的所有修改。

22页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:SRAM电路及其操作方法

相关技术

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类