用于平台裕度调节和调试的软件模式寄存器访问的制作方法

文档序号:17850587发布日期:2019-06-11 22:10阅读:294来源:国知局
用于平台裕度调节和调试的软件模式寄存器访问的制作方法

由具有亚微米特征的大型电容器阵列形成的动态随机存取存储器(dram)芯片用于计算机系统中的主存储器。dram相对廉价且密度高,从而使得每个设备能够整合大量dram。目前销售的大多数dram芯片与电子设备工程联合委员会(jedec)颁布的各种双倍数据速率(ddr)dram标准兼容。

可以周期性地重新校准一些ddr存储器芯片,以便针对诸如温度和电压的操作条件的变化来调整某些操作参数。例如,ddr3和ddr4允许周期性的输出缓冲器阻抗重新校准,称为“zq校准”,并且ddr4允许周期性的内部参考电压重新校准,称为“vrefdq训练”。另外,当dram芯片包括在双列直插式存储器模块(dimm)中时,它们可以可选地包括数据缓冲器,所述数据缓冲器本身具有需要重新校准的定时参数。

例如,在ddr4dram芯片中,在初始化期间由主机ddr控制器来配置vrefdq值,并且可以在操作期间重新校准所述vrefdq值。通过某些模式寄存器设置命令来配置vrefdq值。优选地在操作期间随着条件改变(诸如电路板升温、电源漂移等)来重新训练vrefdq。重新训练可能是破坏性的并且当通过现有软件机制完成时导致性能较差。另外,为了更新ddr4dram芯片上的vrefdq值,jedec规范要求特定的多模式寄存器设置命令序列,并且在所述序列期间不允许其他介入的dram命令。当前的jedec标准使得难以通过脚本工具、例如硬件调试工具来利用单测试模式寄存器命令。

附图说明

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

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

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

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

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

图6以状态图形式示出根据一些实施例的用于启用模式寄存器设置写入命令的状态转换;

图7以状态图形式示出根据一些实施例的用于双倍数据速率数据缓冲操作的状态转换;

图8示出根据一些实施例的可以由图5的存储器控制器使用的双倍数据速率操作的流程图;

图9示出根据一些实施例的可以由图5的存储器控制器使用的数据缓冲器控制操作的流程图;

图10示出根据一些实施例的可以由图5的存储器控制器使用的多用途寄存器的内容检索的流程图;并且

图11示出根据一些实施例的2维数据眼,其以图形方式显示响应于一系列输入值的dram的输出值。

在以下描述中,在不同附图中使用相同的参考数字指示相似或相同的物件。除非另有说明,否则词语“耦合”及其相关联动词形式包括通过本领域已知的方式的直接连接和间接电连接,并且除非另有说明,否则任何直接连接的描述也暗指使用适当形式的间接电连接的替代实施例。

具体实施方式

如下文将以一种形式描述的,数据处理系统包括存储器通道以及耦合到存储器通道的数据处理器。数据处理器包括耦合到存储器通道的存储器控制器,并且适于访问至少一列双倍数据速率存储器。存储器控制器包括用于存储接收到的存储器访问请求的命令队列,以及用于从命令队列中挑选存储器访问请求、然后将所述存储器访问请求提供给存储器通道的仲裁器。基于预定标准选择存储器访问请求,并且响应于模式寄存器访问请求而使待处理操作静止。另外,存储器控制器包括模式寄存器访问控制器,所述模式寄存器访问控制器响应于模式寄存器访问请求,生成对存储器总线的至少一个对应的模式寄存器设置命令。此后,存储器控制器将对存储器总线的控制让给仲裁器。

在另一种形式中,数据处理器包括存储器访问代理以及耦合到存储器访问代理的存储器控制器。存储器控制器适于耦合到存储器系统,并且包括用于存储接收到的存储器访问请求的命令队列、仲裁器和模式寄存器。仲裁器选择性地从命令队列中挑选存储器访问请求,并将所述存储器访问请求提供给存储器通道,并且对模式寄存器访问请求作出响应。所述请求被提供给存储器通道以使待处理操作静止。响应于模式寄存器访问请求,模式寄存器访问控制器生成对存储器总线的至少一个对应的模式寄存器设置命令,并且此后将对存储器总线的控制让给仲裁器。

在又一种形式中,描述了一种用于通过模式寄存器访问控制器对存储器系统中的双倍数据速率接口进行裕度调节和测试的方法。在系统初始化之后的某个时间,接收生成双倍数据速率操作的请求。生成使一列的当前和待处理双倍数据速率操作静止的请求。在存储器总线处接收模式寄存器设置命令序列。响应于接收到模式寄存器命令序列,将第一模式寄存器命令序列发送到所述列中的多个存储体以获得对与所述列相关联的第一参数的控制。将后续模式寄存器命令序列发送到所述多个存储体以更新与所述列相关联的第一参数。

另外,在另一种形式中,描述了一种用于通过模式寄存器访问控制器对存储器系统中的双倍数据速率数据缓冲器接口进行裕度调节和测试的方法。在初始化之后的某个时间,接收在双倍数据速率数据缓冲器初始化之后生成缓冲器控制字写入命令序列的请求。仲裁器能够实现当前和待处理双倍数据速率缓冲器操作的静止。分发缓冲器控制字写入命令序列以修改电压参数和数据缓冲器定时参数之中的至少一个参数。

图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),包括代表性dimm134、136和138,在这个实例中,它们对应于单独的列。同样,存储器通道140包括连接到ddrx总线142的一组dimm,包括代表性dimm144、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,并且为操作系统、应用程序、应用程序文件等提供大容量存储。

通过提供存储器通道130和存储器通道140,数据处理系统100适合于在现代计算应用中使用。每个存储器通道130和140可以连接到最先进的ddr存储器,诸如ddr版本4(ddr4)、低功率ddr4(lpddr4)、图形ddr版本五(gddr5)和高带宽存储器(hbm),并且可以适用于未来的存储器技术。这些存储器提供高总线带宽和高速操作。同时,它们还提供低功率模式,以便为电池供电的应用(诸如膝上型计算机)节省电力,并且还提供内置热监控。

图2以框图形式示出适合于在图1的数据处理系统100中使用的apu200。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提供存储器访问请求。在这方面,

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总线。这两个控制器仅仅是apu200中可以使用的外围控制器的示例。

外围总线控制器270包括系统控制器或“南桥”(sb)272和pcie控制器274,它们中的每一个双向连接到输入/输出(i/o)集线器276和smn总线。i/o集线器276还双向连接到系统集线器266和数据结构250。因此,例如,cpu核心可以经由数据结构250路由通过i/o集线器276的访问来对usb控制器262、sata接口控制器264、sb272或pcie控制器274中的寄存器进行编程。

smu280是本地控制器,其控制apu200上的资源的操作并且同步它们之间的通信。smu280管理apu200上的各种处理器的加电排序,并且通过复位信号、使能信号和其他信号来控制多个片外设备。smu280包括图2中未示出的一个或多个时钟源,诸如锁相环(pll),以便为apu200的每个组件提供时钟信号。smu280还管理用于各种处理器和其他功能块的功率,并且可以从cpu核心212和214以及图形核心220接收测量的功耗值以确定适当的功率状态。

apu200还实现各种系统监控和省电功能。具体地,一个系统监控功能是热监控。例如,如果apu200变热,则smu280可以降低cpu核心212和214和/或图形核心220的频率和电压。如果apu200变得太热,则它可以完全关闭。smu280还可以通过smn总线从外部传感器接收热事件,并且作为响应,smu280可以降低时钟频率和/或电源电压。

图3以框图形式示出根据一些实施例的适合于在图2的apu200中使用的存储器控制器300和相关联物理接口(phy)330。存储器控制器300包括存储器通道310和功率引擎320。存储器通道310包括主机接口312、存储器通道控制器314和物理接口316。主机接口312通过可伸缩数据端口(sdp)将存储器通道控制器314双向连接到数据结构250。物理接口316通过符合ddr-phy接口规范(dfi)的总线将存储器通道控制器314双向连接到phy330。功率引擎320通过smn总线双向连接到smu280,通过高级外围总线(apb)双向连接到phy330,并且还双向连接到存储器通道控制器314。phy330具有到存储器通道、诸如图1的存储器通道130或存储器通道140的双向连接。存储器控制器300是使用单个存储器通道控制器314的单个存储器通道的存储器控制器的实例化,并且具有功率引擎320,以便以下文将进一步描述的方式控制存储器通道控制器314的操作。

图4以框图形式示出根据一些实施例的适合于在图2的apu200中使用的另一个存储器控制器400以及相关联phy440和450。存储器控制器400包括存储器通道410和420以及功率引擎430。存储器通道410包括主机接口412、存储器通道控制器414和物理接口416。主机接口412通过sdp将存储器通道控制器414双向连接到数据结构250。物理接口416将存储器通道控制器414双向连接到phy440,并且符合dfi规范。存储器通道420包括主机接口422、存储器通道控制器424和物理接口426。主机接口422通过另一个sdp将存储器通道控制器424双向连接到数据结构250。物理接口426将存储器通道控制器424双向连接到phy450,并且符合dfi规范。功率引擎430通过smn总线双向连接到smu280,通过apb双向连接到phy440和450,并且还双向连接到存储器通道控制器414和424。phy440具有到存储器通道、诸如图1的存储器通道130的双向连接。phy450具有到存储器通道、诸如图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控股有限公司指定的高级可扩展接口版本四(称为“axi4”)兼容,但是在其他实施例中可以是其他类型的接口。接口512将存储器访问请求从第一时钟域、称为fclk(或memclk)域转换到存储器控制器500内部的第二时钟域、称为uclk域。类似地,队列514提供从uclk域到与dfi接口相关联的dficlk域的存储器访问。

地址生成器522对通过axi4总线从数据结构250接收的存储器访问请求的地址进行解码。存储器访问请求包括以标准化格式表示的物理地址空间中的访问地址。地址生成器522将标准化地址转变为可以用于寻址存储器系统120中的实际存储器设备并且有效地调度相关访问的格式。这种格式包括将存储器访问请求与特定列、行地址、列地址、存储体地址和存储体组相关联的区域标识符。在启动时,系统bios查询存储器系统120中的存储器设备以确定它们的大小和配置,并且对与地址生成器522相关联的一组配置寄存器进行编程。地址生成器522使用存储在配置寄存器中的配置来将标准化地址转换为适当的格式。命令队列520是从数据处理系统100中的存储器访问代理接收的存储器访问请求的队列,所述存储器访问代理诸如cpu核心212和214以及图形核心220。命令队列520存储由地址生成器522解码的地址字段以及允许仲裁器538有效地选择存储器访问的其他地址信息,包括访问类型和服务质量(qos)标识符。cam524包括用于强制执行排序规则的信息,诸如写入后写入(waw)和写入后读取(raw)排序规则。

重放队列530是用于存储由仲裁器538挑选的作为等待响应的存储器访问的临时队列,所述等待响应诸如地址和命令奇偶校验响应、ddr4dram的写入循环冗余校验(crc)响应或gddr5dram的写入和读取crc响应。重放队列530访问ecc检查块542以确定返回的ecc是正确的还是指示错误。重放队列530允许在这些周期之一的奇偶校验或crc错误的情况下重放访问。

刷新逻辑532包括用于各种断电、刷新和终止电阻(zq)校准周期的状态机,所述周期与从存储器访问代理接收的正常读取和写入存储器访问请求分开生成。例如,如果存储器列处于预充电断电状态,则必须周期性地唤醒它以运行刷新周期。刷新逻辑532周期性地生成刷新命令,以防止由dram芯片中的存储器单元的存储电容器的电荷泄漏引起的数据错误。另外,刷新逻辑532周期性地校准zq以防止由于系统中的热变化导致的管芯上终止电阻的不匹配。

仲裁器538双向连接到命令队列520和配置寄存器562。仲裁器538是存储器通道控制器510的核心。它通过智能调度访问以改进存储器总线的使用来提高效率。仲裁器538使用定时块534,通过基于dram定时参数确定命令队列520中的某些访问是否适合发布来强制执行适当的定时关系。例如,每个dram在活动命令之间具有最小指定时间,称为“trc”。定时块534维护一组计数器,所述一组计数器基于在jedec规范中指定的这个定时参数和其他定时参数来确定合格性,并且所述定时块双向连接到重放队列530。页表536维护关于每个存储体中的活动页面的状态信息和仲裁器538的存储器通道的列,并且双向连接到重放队列530。

响应于从接口512接收的写入存储器访问请求,ecc生成块544根据写入数据计算ecc。db546存储用于接收到的存储器访问请求的写入数据和ecc。当仲裁器538挑选对应的写入访问以分派到存储器信道时,它将组合的写入数据/ecc输出到队列514。

功率控制器550通常包括到高级可扩展接口、版本一(axi)的接口552、apb接口554和功率引擎560。接口552具有到smn的第一双向连接,其包括用于接收标记为“event_n”的事件信号(在图5中单独示出)的输入端以及输出端。apb接口554具有连接到接口552的输出端的输入端,以及用于通过apb连接到phy的输出端。功率引擎560具有连接到接口552的输出端的输入端,以及连接到队列514的输入端的输出端。功率引擎560包括一组配置寄存器562、微控制器(μc)564、自刷新控制器(slfref/pe)566以及可靠的读取/写入模式寄存器访问(rrw/mra)控制器568。配置寄存器562双向连接到队列514。配置寄存器562通过axi总线进行编程,并且存储配置信息以控制存储器控制器500中的各种块的操作。因此,配置寄存器562具有连接到这些块的附加输出端,所述附加输出端在图5中未详细示出。自刷新控制器566是除了由刷新逻辑532自动生成刷新之外还允许手动生成刷新的引擎。rrw/mra控制器568为存储器或i/o设备提供连续的存储器访问流,用于诸如ddr接口最大读取延迟(mrl)训练和环回测试的目的。rrw/mra控制器568另外提供控制接口552的选择操作的逻辑。

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

在操作中,存储器控制器、诸如图5的存储器控制器500连接到存储器访问代理并且从存储器访问代理接收存储器访问请求,所述存储器访问代理诸如图2的cpu核心复合体210中的cpu核心或图形核心220。存储器控制器500还适于连接到图1的存储器系统120。如上所述,存储器系统120可以包括多列存储器,其实现为图1中的dimm134、136和138。存储器控制器500内的仲裁器538基于预定标准从命令队列520中挑选存储器访问请求。仲裁器538执行读取和写入访问以及刷新,并且对来自rrw/mra控制器568的请求作出响应。响应于至少一个ddr存储器总线访问请求,rrw/mra控制器568生成对仲裁器538的请求以放弃对ddr存储器总线的控制。仲裁器538将对存储器总线的控制让给rrw/mra控制器568,以生成一系列指定的操作,例如用于实现vrefdq训练的特定模式寄存器设置(mrs)命令。

通常,配置寄存器562通过接口552接收重新校准写入命令请求。在任务模式下进行高带宽数据传输期间,通过接口512提供重新校准写入命令请求。响应于写入命令请求,rrw/mra控制器568向仲裁器538提交请求以获得对存储器总线的控制。响应于来自rrw/mra控制器568的请求,仲裁器538使待处理操作静止。使待处理操作静止可以包括但不限于完成和停止与目标总线相关联的当前和待处理操作。使总线静止另外可以包括确定没有待处理的紧急刷新命令。在仲裁器538使与目标列相关联的当前和待处理操作静止之后,rrw/mra控制器568执行一系列mrs命令。在完成所述一系列mrs命令之后,rrw/mra控制器568将对存储器总线的控制返回给仲裁器538,以恢复正常的读取和写入存储器总线操作。通过在仅对存储器访问请求流造成少量中断并且对存储器进行刷新的情况下提供侧通道来控制存储器总线,存储器控制器500允许周期性地重新校准参数而不会显著牺牲性能或增加访问延迟。

图6示出根据一些实施例的可以由图5的存储器控制器500使用的状态图600。状态图600是对应于将由存储器控制器500用来写入和读取双倍数据速率存储器参数的裕度调节和测试命令的状态图。状态图600包括请求状态602、检测状态604、静止状态606、生成状态610、mra控制状态608、等待状态612、分发状态614、禁用状态616和仲裁器控制状态618。状态图600通过箭头表示状态转换,并且存储器控制器500响应于对应的请求而执行状态转换。

状态图600呈现状态机的状态,其对应于先前描述的存储器控制器操作。在请求状态602下,rrw/mra控制器568从操作系统接收请求。请求状态602对应于访问配置寄存器562的请求,以便执行至少一个mrs命令。所述请求选择状态机将mrs命令发送到的dram的列。在一个实施例中,dram设备提供支持以利用每个dram可访问性(pda)mrs命令生成对特定列的特定dram设备的mrs命令。pda特征用于对预定参数进行编程,所述预定参数例如给定列上的dram设备上的管芯上终止(odt)值和内部参考电压值。

在检测状态604下,仲裁器538检测任何活动的系统操作。响应于访问模式寄存器的请求,在活动的系统操作期间,仲裁器538通过等待对存储器通道的待处理操作(包括正常读取和写入操作以及待处理刷新)完成来使所述操作静止。当前和待处理存储器列操作的静止对应于静止状态606。使存储器总线静止暂时将dram置于空闲状态。当dram处于空闲状态时,可以在操作系统的正常操作期间改变模式寄存器内容,或者在满足定时参数的情况下dimm处于预充电状态。在当前和待处理操作静止之后,仲裁器538将对存储器总线的控制让给配置寄存器562。

在mra控制状态608下,模式寄存器访问控制器承担对目标列的控制,并且模式寄存器被编程来执行修改的参数值。作为响应,在生成状态610下,rrw/mra控制器568生成对与dimm134、136和138相关联的存储器总线、例如ddrx总线132的至少一个对应模式寄存器设置命令。在生成状态610下,mrs命令是dram模式寄存器写入命令序列、寄存器控制字命令序列和数据缓冲器控制字写入命令序列中的一个。mrs命令周期时间是完成对模式寄存器的写入操作所必需的,并且是mrs命令之间所需的最短时间。

因此,在等待状态612下,针对每个mrs命令满足模式寄存器设置命令周期时间。在对模式寄存器进行编程的情况下,当rrw/mra控制器568发出mrs命令时,重新定义被访问模式寄存器内的地址字段。mrs命令在分发状态614下被分发和重新分发到存储器总线。rrw/mra控制器568在执行每个mrs命令之后在分发状态614与等待状态612之间循环,以满足mrs命令的执行之间所需的最短时间。尽管一些模式寄存器具有定义的默认值,但是并非所有模式寄存器都具有定义的默认值,并且因此在必要时,模式寄存器的内容也在分发状态614下被初始化和/或重新初始化(即写入)。在执行更多的模式寄存器设置命令之前,执行预定数量的时钟周期。

响应于最终接收到的模式寄存器设置命令的执行,等待状态612执行确定数量的时钟周期,并且转换到禁用状态616。在禁用状态616下,停止对目标参数的修改。rrw/mra控制器568在仲裁器控制状态618下将对存储器总线的控制返回给仲裁器。返回到请求状态602,存储器控制器等待下一个修改和/或读取至少一个dram参数的请求。

在一个实施例中,当mrs命令是模式寄存器写入命令序列时,写入命令序列被分发给双倍数据速率存储器列中的所有dram。模式寄存器写入命令序列使得能够更新与双倍数据速率存储器列中的drams相关联的电压参数、定时参数和预定的备用设备参数中的至少一个。在一个实例中,当请求更新内部参考电压时,在接收到生成的mrs命令时,在与至少一列双倍数据速率存储器相关联的模式寄存器六(mr6)处接收mrs命令的至少一部分。响应于接收到mrs命令,所述过程在等待状态612下等待预定数量的电压参考存储器时钟周期,然后执行后续mrs命令。

在另一个实施例中,接收请求以立即控制与ddr设备相关联的参数。响应于立即访问存储器总线的请求,绕过仲裁器538。生成对存储器总线(ddrx总线132)的直接mrs命令,以使得能够获得对存储器总线的立即控制。

图7示出根据一些实施例的可以由图5的存储器控制器500使用的状态图700。状态图700是对应于将由存储器控制器500用来读取和更新与双倍数据速率存储器相关联的数据缓冲器参数的裕度调节和测试命令的状态图。状态图700包括请求状态702、初始化状态704、活动状态706、空闲状态708、仲裁器控制状态710、等待状态712、写入状态714、静止状态716、启用状态718、等待时间状态720和等待状态722。

在操作中,通过与数据缓冲器相关联的总线(例如缓冲器控制总线或ddrx总线132)将缓冲器控制字(bcw)写入作为命令序列从寄存时钟驱动器(rcd)发送到与dimm134、136和138相关联的数据缓冲器。配置寄存器562接收命令序列。仲裁器538基于预定标准来从命令队列520中挑选对数据缓冲器的读取或写入命令的存储器访问请求。预定标准可以包括刷新请求、紧急刷新请求、按时间顺序排序的请求和预先调度的分发请求。响应于接收到访问数据缓冲器的请求,rrw/mra控制器568指示仲裁器538使存储器总线的当前和待处理活动静止。rrw/mra控制器568控制存储器总线以便通过bcw写入命令序列修改预定参数,诸如内部参考电压参数和数据缓冲器定时值。通过缓冲器控制总线将修改预定数据缓冲器参数的bcw写入命令序列作为命令序列从寄存时钟驱动器(rcd)发送到与dimm134、136和138相关联的数据缓冲器。利用bcw写入命令序列中的控制字对数据缓冲器参数的改变需要时间来使设备稳定。当执行bcw写入命令序列时,存储器控制器500在最后一个控制字访问之后等待预定数量的时钟周期(tmrc),然后才能进一步访问dram。对于时钟定时的改变或写入,可能需要tdllk时间来稳定。

状态图700进一步呈现状态机的状态,其对应于先前描述的用于通过存储器控制器500执行的dimm数据缓冲器训练和裕度调节操作。如状态图700进一步所示,rcd在操作系统的初始化状态704、活动状态706或空闲状态708下接收访问和更新与dimm134、136和138相关联的参数的请求。初始化状态704对应于操作系统的启动状态。多个功能可以与活动状态706相关联。在一个实施例中,与数据处理系统100相关联的活动的范围可以从完整任务模式流量操作到最小任务模式流量操作。空闲状态708对应于不活动但功能正常的数据处理系统100。响应于在初始化状态704、活动状态706或空闲状态708期间接收到访问数据缓冲器的请求,存储器控制器500转换到等待状态712。等待状态712是用于准备数据缓冲器以执行bcw写入命令序列的预定义等待时间。仲裁器538使得rrw/mra控制器568能够在状态718下控制存储器总线。在完成与等待状态712相关联的预定等待周期之后,仲裁器538使与数据缓冲器相关联的当前和待处理操作静止。转换回到等待状态712。

在状态716下,配置寄存器562请求从仲裁器538获得对存储器总线的控制。当仲裁器538已经暂时停止与存储器总线相关联的活动时,仲裁器538将对存储器总线的控制让给配置寄存器562。利用在写入状态714下生成的bcw写入命令序列,通过rrw/mra控制器568来执行数据缓冲器写入操作。在一个实施例中,bcw命令序列对应于bcw读取命令序列。在一个实施例中,在每个bcw写入和读取命令序列之后,执行五个数据传输周期和一个奇偶校验数据传输周期。在写入状态714下,通过缓冲器控制总线将生成的bcw写入命令序列作为命令序列从ddr4寄存时钟驱动器发送到特定列的ddr数据缓冲器。对缓冲器控制字和参数设置的改变需要时间来使设备稳定。bcw时间(tbcw)参数指示用于从活动bcw写入命令转换到后续有效bcw写入命令的时间。预定数量的周期转换对应于在写入状态714下,在bcw写入命令之间等待周期712的转换次数。

在缓冲器控制设置改变之后,ddrbcw写入命令序列被分发到至少一列ddr存储器,在写入状态714下,存储器控制器500转换到等待状态720以执行预定数量的时钟周期tmrc。在最后一个控制字访问之后发生到等待状态720的转换,然后才能进一步访问dram。对于时钟定时的改变,在写入状态714下,存储器控制器500转换到等待状态722。响应于到等待状态712的最终转换,转换到附加的周期时间,即等待状态720和等待状态722中的至少一个。等待状态722对应于在改变定时参数之后执行的预定数量的时钟周期tdllk,然后在状态710下,存储器控制器500启用仲裁器538以重新获得对存储器总线的控制。

在一个实施例中,从电压参考参数、定时控制参数、预定的备用缓冲器参数和备用数据缓冲器参数之中选择至少一个数据缓冲器参数。例如,dimm数据缓冲器参数可以包括但不限于参考电压操作范围、参考电压步长大小、参考电压设置容差、参考电压步长时间、参考电压有效容差和时钟定时。在相关联的双倍数据速率存储器列的数据缓冲器的定时控制寄存器处接收定时控制参数。此外,dimm数据缓冲器支持缓冲器控制字访问事务中的特征,称为每缓冲器可寻址性(pba)。每个数据缓冲器可以彼此独立地配置。pba允许每个缓冲器进行独立的参数修改和训练,或者独立于预定dimm数据缓冲器的odt阻抗设置。pba特征由存储在字中的bcw位启用,所述字不包含需要在pba模式下进行编程的任何寄存器;从而使得缓冲器能够进入和退出pba模式,而不必修改每个缓冲器专门编程的bcw位。

用于在图6和图7的状态之间进行切换的许多条件中的任何一个可以单独使用或以各种组合使用。在所示的实施例中,这些条件包括读取或写入命令序列的生成、定时等待周期、存储器总线访问、仲裁器控制以及待处理操作的静止。另外,虽然图6和图7可以示出给定存储器列(即,pda和pba)中的单个设备的裕度调节和训练,但是图6和图7的状态机可以以各种方式扩展到存储器系统的较大子集,诸如用于单列和多列。

图8示出可以由图5的存储器控制器500使用的方法800的流程图。在框802处,在系统初始化之后的某个时间,从操作系统接收请求以生成至少一个ddr训练和裕度调节操作。在框804处,rrw/mra控制器568生成对仲裁器538的请求以使特定列的当前和待处理双倍数据速率操作静止。在框806处,在存储器总线、例如ddrx总线132处接收mrs命令。响应于在存储器总线处接收到mrs命令,在框808处,通过rrw/mra控制器568将第一mrs命令发送到特定列,以获得对所述列的预定ddr存储器设备参数、例如vrefdq参数的控制。在框810处,执行预定数量的时钟周期(tvref)。在框812处,将第二模式寄存器命令序列发送到所述列,以更新与所述列相关联的至少一个ddr4存储器设备参数。在执行ddr4存储器设备参数修改之后,在框814处,执行预定数量的时钟周期。rrw/mra控制器568向所述列发送后续mrs命令以禁用参数控制。在框818处,执行附加的预定数量的时钟周期。在框820处,启用仲裁器以重新获得对存储器总线的访问。所述过程在结束框处终止。

图9示出可以由图5的存储器控制器500使用的方法900的流程图。在框902处,在系统初始化之后的某个时间,接收请求以生成bcw写入命令序列来修改预定数据缓冲器参数。rrw/mra控制器568请求从仲裁器538获得对存储器总线的控制。在框904处,存储器控制器500启用仲裁器538以使当前和待处理的缓冲器操作静止。在框906处,执行预定数量的时钟周期。在框908处,生成bcw写入命令序列。响应于bcw写入命令序列的生成,在框910处,将bcw写入命令序列分发给至少一个数据缓冲器以修改第一参数。在框912处,执行预定数量的时钟周期。在框914处,将后续bcw写入命令序列发送到数据缓冲器以更新与所述列相关联的第二参数。在执行参数更新之后,在框916处,执行另一预定数量的时钟周期(直到tdllk)。在框918处,发送后续bcw写入命令序列以禁用对数据缓冲器的控制。在框920处,执行附加数量的预定时钟周期。在框922处,启用仲裁器以重新获得对当前和待处理数据总线操作的访问。所述过程在结束框处终止。

图10示出可以由图5的存储器控制器500使用的方法1000的流程图。在框1002处,在rrw/mra控制器568处接收请求以检索/读取多用途寄存器的内容。在框1004处,由rrw/mra控制器568生成并且在仲裁器538处接收使ddr存储器设备的当前和待处理ddr存储器总线操作静止的请求。在框1006处,存储器控制器500启用仲裁器538以使当前和待处理的ddr4存储器总线操作静止。在框1008处,在存储器总线处接收mrs命令。在框1010处,将至少一个mrs命令分发给特定列以读取与所述列内的至少一个dram设备相关联的预定参数值。在框1012处,执行预定数量的时钟周期。在框1014处,检索/读取相关联列的内容。在读取内容之后,在框1016处,执行预定数量的时钟周期。在框1018处,存储器控制器启用仲裁器以重新获得对当前和待处理存储器数据总线操作的访问。所述过程在结束框处终止。

图11示出2维数据眼,其以图形方式显示响应于一系列输入值的dram的输出值。数据眼1100包括数据眼1106、轴线1102和轴线1104。轴线1102显示最小和最大y轴值,并且轴线1104显示最小和最大x轴值。

在一个实施例中,数据眼1100是用于优化dram设备的预定参数的2维数据眼。在仲裁器538使存储器总线静止之后,rrw/mra控制器568使得能够将mrs命令分发到dram设备以动态地将预定参数值移动到数据眼的中心。动态地将预定参数值移动到数据眼的中心优化了在测试和裕度调节期间与dram设备相关联的参数值。

图8、图9和图10所示的一些或所有方法可以由存储在计算机可读存储介质中并且由至少一个处理器执行的指令来管理。图8、图9和图10所示的每个操作可以对应于存储在非暂时性计算机存储器或计算机可读存储介质中的指令。在各种实施例中,非暂时性计算机可读存储介质包括磁盘或光盘存储设备、诸如闪速存储器的固态存储设备、或者一个或多个其他非易失性存储器设备。存储在非暂时性计算机可读存储介质上的计算机可读指令可以是源代码、汇编语言代码、目标代码或由一个或多个处理器解释和/或可执行的其他指令格式。

虽然已经描述了特定实施例,但是对这些实施例的各种修改对于本领域技术人员来说将是显而易见的。存储器控制器500可以与除ddrx存储器之外的其他类型的存储器接口连接,诸如高带宽存储器(hbm)、同步dram类型等。虽然所示实施例示出了对应于单独dimm的每列存储器,但是在其他实施例中,每个dimm可以支持多列。另外,存储器通道可以包括多列ddr4存储器或仅包括单列。此外,虽然参考特定类型的校准(诸如vredq训练的zq校准)描述了mra控制器的操作,但是应当显而易见的是,它可以用于在操作期间执行的其他类型的校准和训练。

因此,所附权利要求书旨在涵盖落入所公开实施例的范围内的对所公开实施例的所有修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1