系统存储器延时补偿

文档序号:1590853 发布日期:2020-01-03 浏览:56次 >En<

阅读说明:本技术 系统存储器延时补偿 (System memory latency compensation ) 是由 D·T·全 R·A·斯图尔特 于 2018-03-26 设计创作,主要内容包括:可以补偿在以降低的频率进行操作的存储器系统中的流水线逻辑延时。可以至少使用第一时钟信号和第二时钟信号来控制流水线逻辑。当存储器系统以较高的频率进行操作时,可以使用第一时钟信号来控制流水线逻辑的全部寄存器。然而,当存储器系统以降低的频率进行操作时,可以使用第一时钟信号来控制一个或多个寄存器,以及可以使用第二时钟信号来控制一个或多个其它寄存器。(Pipeline logic delays in a memory system operating at a reduced frequency may be compensated. The pipeline logic may be controlled using at least the first clock signal and the second clock signal. When the memory system is operating at a higher frequency, the first clock signal may be used to control all registers of the pipeline logic. However, when the memory system is operating at a reduced frequency, one or more registers may be controlled using the first clock signal and one or more other registers may be controlled using the second clock signal.)

系统存储器延时补偿

背景技术

便携式计算设备(“PCD”)正在成为对于个人和专业人士而言的必需品。这些设备可以包括蜂窝电话、便携式数字助理、便携式游戏控制台、掌上电脑和其它便携式电子元件。

PCD具有消耗功率的各种电子系统,诸如片上系统(“SoC”)的一个或多个内核。内核可以包括例如中央处理单元(“CPU”)、图形处理单元(“GPU”)、数字信号处理器(“DSP”)和存储器系统。由于用户体验的质量是与系统性能相关的,因此期望维持较高的系统时钟频率、较宽的系统数据路径等等以使性能最大化。然而,与高性能相关联的参数(诸如高时钟频率和电源电压)可能影响省电。由于在电池供电的PCD中非常期望省电,因此已经开发出动态电压和频率缩放(“DVFS”)技术来平衡系统性能与功耗。例如,功率管理逻辑可以监测在PCD中的运行状况,包括对处理器、内核、SoC或其它系统的工作负荷需求。当功率管理逻辑检测到在这样的系统上的工作负荷需求较低时,功率管理逻辑可以向时钟信号控制器发出命令以将控制系统的操作的时钟信号的频率设置为低频率,这允许功率管理逻辑降低提供给系统或者系统的各部分的电源电压,从而在不对性能和因此的用户体验造成不利影响的情况下节省功率。当功率管理逻辑检测到在这样的系统上的工作负荷需求较高时,功率管理逻辑可以向时钟信号控制器发出命令以将时钟信号的频率设置为较高的频率,这通常需要功率管理逻辑还增加电源电压,从而以增加功耗为代价来维持性能(和用户体验)。

存储器延时还可能例如通过强制处理器或其它客户端设备等待存储器访问完成来影响用户体验。在客户端设备与存储器系统之间的接口可以包括由系统时钟控制的流水线逻辑。因此,当被设计用于高带宽、高频率操作的存储器接口被强制以较低的频率进行操作时,存储器延时成比例地增加。通过以较高的时钟频率对存储器接口和关联的系统进行操作,可以降低存储器延时,但是这样的解决方案不能使省电最大化。

发明内容

公开了用于补偿在存储器系统中的流水线逻辑延时的系统、方法和计算机程序产品。

在一个方面中,用于补偿流水线逻辑延时的系统可以包括时钟相位控制器、时钟频率控制器以及在客户端设备与存储器系统之间的存储器接口。存储器接口可以具有至少包括第一寄存器和第二寄存器的流水线逻辑。时钟频率控制器可以被配置为响应于检测到高客户端设备工作负荷需求,将提供给存储器接口的系统时钟信号调整为第一频率,以及响应于检测到低客户端设备工作负荷需求,将提供给存储器接口的系统时钟信号调整为比第一频率要低的第二频率。时钟相位控制器可以被配置为响应于将系统时钟信号调整为第一频率,使用第一周期性时钟边沿信号来控制第一寄存器和第二寄存器。时钟相位控制器还可以被配置为:响应于将系统时钟信号调整为第二频率,使用第一周期性时钟边沿信号和第二周期性时钟边沿信号中的一者来控制第一寄存器,以及使用第一周期性时钟边沿信号和第二周期性时钟边沿信号中的另一者来控制第二寄存器。在第一周期性时钟边沿信号的连续断言(assertion)之间的第一周期性时间间隔是比在第一周期性时钟边沿信号的断言与第一周期性时钟边沿信号的断言之后的第二周期性时钟边沿信号的下一个断言之间的第二周期性时间间隔要大的。

在另一方面中,用于补偿流水线逻辑延时的方法可以包括:检测与客户端设备相关联的客户端设备工作负荷需求,调整提供给存储器接口的系统时钟信号的频率,以及至少使用第一周期性时钟边沿信号和第二周期性时钟边沿信号来控制存储器接口的流水线逻辑。该流水线逻辑至少包括第一寄存器和第二寄存器。响应于检测到高客户端设备工作负荷需求,可以将提供给存储器接口的系统时钟信号调整为第一频率。响应于将系统时钟信号调整为第一频率,可以使用第一周期性时钟边沿信号来控制第一寄存器和第二寄存器。响应于检测到低客户端设备工作负荷需求,可以将提供给存储器接口的系统时钟信号调整为比第一频率要低的第二频率。响应于将系统时钟信号调整为第二频率,可以使用第一周期性时钟边沿信号和第二周期性时钟边沿信号中的一者来控制第一寄存器,以及使用第一周期性时钟边沿信号和第二周期性时钟边沿信号中的另一者来控制第二寄存器。在第一周期性时钟边沿信号的连续断言之间的第一周期性时间间隔是比在第一周期性时钟边沿信号的断言与第一周期性时钟边沿信号的断言之后的第二周期性时钟边沿信号的下一个断言之间的第二周期性时间间隔要大的。

在另一方面中,用于补偿流水线逻辑延时的计算机程序产品可以包括在至少一个非暂时性存储介质中体现的处理器可执行逻辑。系统的一个或多个处理器对所述逻辑的执行将该系统配置为:检测与客户端设备相关联的客户端设备工作负荷需求,调整提供给存储器接口的系统时钟信号的频率,以及使用至少第一周期性时钟边沿信号和第二周期性时钟边沿信号来控制存储器接口的流水线逻辑。该流水线逻辑至少包括第一寄存器和第二寄存器。响应于检测到高客户端设备工作负荷需求,可以将提供给存储器接口的系统时钟信号调整为第一频率。响应于将系统时钟信号调整为第一频率,可以使用第一周期性时钟边沿信号来控制第一寄存器和第二寄存器。响应于检测到低客户端设备工作负荷需求,可以将提供给存储器接口的系统时钟信号调整为比第一频率要低的第二频率。响应于将系统时钟信号调整为第二频率,可以使用第一周期性时钟边沿信号和第二周期性时钟边沿信号中的一者来控制第一寄存器,以及使用第一周期性时钟边沿信号和第二周期性时钟边沿信号中的另一者来控制第二寄存器。在第一周期性时钟边沿信号的连续断言之间的第一周期性时间间隔是比在第一周期性时钟边沿信号的断言与第一周期性时钟边沿信号的断言之后的第二周期性时钟边沿信号的下一个断言之间的第二周期性时间间隔要大的。

附图说明

在附图中,除非以其它方式指示的,否则遍及各个视图的同样的附图标记指的是同样的部分。对于利用诸如“102A”或“102B”的字母字符命名的附图标记而言,字母字符命名可以区分在相同的附图中出现的两个同样的部分或者元素。当附图标记旨在包括在全部附图中具有相同的附图标记的全部部分时,可以省略用于附图标记的字母字符命名。

图1是根据示例性实施例可以包括用于补偿系统存储器延时的系统的便携式计算设备的方块图。

图2是根据示例性实施例用于补偿系统存储器延时的系统的方块图。

图3是根据示例性实施例提供有互补的系统时钟信号的流水线逻辑的方块图。

图4是根据示例性实施例示出图3的流水线逻辑的操作的时序图。

图5类似于图4,但是根据示例性实施例示出了当将系统时钟设置为较低的频率时补偿系统存储器延时。

图6类似于图3,但示出了具有实质性延迟的流水线逻辑的至少一个寄存器。

图7是根据示例性实施例示出在具有图6的流水线逻辑的系统中补偿系统存储器延时的时序图。

图8是根据示例性实施例提供有相位延迟的系统时钟信号的流水线逻辑的方块图。

图9是根据示例性实施例示出图8的流水线逻辑的操作的时序图。

图10类似于图9,但根据示例性实施例示出了当在具有图8的流水线逻辑的系统中将系统时钟设置为低频率时补偿系统存储器延时。

图11是根据示例性实施例具有至少一个寄存器的流水线逻辑的方块图,所述至少一个寄存器具有利用相位延迟的系统时钟信号提供的实质性延迟。

图12是根据示例性实施例示出在具有图11的流水线逻辑的系统中补偿系统存储器延时的时序图。

图13是根据示例性实施例的DRAM控制器的方块图。

图14是根据示例性实施例示出用于补偿系统存储器延时的示例性方法的方法流程图。

图15根据示例性实施例示出了图13的时钟模式表格的示例。

具体实施方式

在本文中使用的单词“示例性的”意指“用作示例、实例或说明”。在本文中描述为“示例性”的任何方面不必要被解释为比其它方面优选或有优势。

术语“中央处理单元”(“CPU”)、“数字信号处理器”(“DSP”)和“图形处理单元”(“GPU”)是可以存在于PCD中的处理器的非限制性示例。除了以其它方式指示的之外,这些术语在本文中是可互换地使用的。

在本文中使用术语“便携式计算设备”(“PCD”)来描述在有限容量的电源(诸如电池)上进行操作的任何设备。虽然电池供电的PCD已经使用了数十年,但是在与第三代(“3G”)和***(“4G”)无线技术的出现相结合的可充电电池中的技术进步已经使能具有多种能力的大量PCD。因此,PCD可以是蜂窝电话或移动电话、卫星电话、寻呼机、个人数字助理(“PDA”)、智能手机、导航设备、智能本或阅读器、媒体播放器、上述设备的组合、具有无线连接或链路的笔记本电脑或手持计算机等等。

在本文中使用的术语“组件”、“模块”、“系统”等等指的是与计算机相关的实体,无论是硬件、固件、硬件和软件的结合、软件还是在运行中的软件。例如,组件可以是,但不限于是:在处理器上运行的过程、处理器、对象、可执行文件、执行的线程、程序和/或计算机。通过说明的方式,在计算设备上运行的应用和该计算设备两者可以是组件。一个或多个组件可以存在于过程和/或执行的线程内,以及组件可以位于一个计算机上和/或分布在两个或更多个计算机之间。另外,这些组件可以从在其上存储有各种数据结构的各种计算机可读介质中执行。所述组件可以诸如根据具有一个或多个数据分组(例如,来自一个组件的数据,该组件与在本地系统、分布式系统中的另一个组件进行交互和/或以信号的方式跨越诸如互联网的网络与其它系统进行交互)的信号,以本地和/或远程处理的方式进行通信。

术语“应用”或“应用程序”可以同义地用以指代具有可执行内容的软件实体,诸如目标代码、脚本、字节代码、标记语言文件、补丁等等。另外,“应用”可以进一步包括在性质上不可执行的文件,诸如数据文件、配置文件、文档等等。

如在图1中示出的,在说明性或示例性实施例中,用于系统存储器延时补偿的系统、方法和计算机程序产品可以体现在PCD 100中。PCD 100包括片上系统(“SoC”)102(即,体现在集成电路芯片中的系统)。SoC 102可以包括中央处理单元(“CPU”)104、图形处理单元(“GPU”)106或其它处理器。PCD 102可以包括模拟信号处理器108。

显示器控制器110和触摸屏控制器112可以是耦合到CPU 104的。在SoC 102外部的触摸屏显示器114可以是耦合到显示器控制器110和触摸屏控制器112的。PCD 102可以进一步包括视频解码器116。视频解码器116是耦合到CPU 104的。视频放大器118可以是耦合到视频解码器116和触摸屏显示器114的。视频端口120可以是耦合到视频放大器118的。通用串行总线(“USB”)控制器122还可以是耦合到CPU 104的,以及USB端口124可以是耦合到USB控制器122的。用户识别模块(“SIM”)卡126还可以是耦合到CPU 104的。

一个或多个存储器可以是耦合到CPU 104的。所述一个或多个存储器可以包括易失性存储器和非易失性存储器。易失性存储器的示例包括静态随机存取存储器(“SRAM”)128以及动态RAM(“DRAM”)130和131。这样的存储器可以在诸如DRAM 130的SoC 102外部,或者在诸如DRAM131的SoC 102内部。耦合到CPU 104的DRAM控制器132可以控制向DRAM 130和131写入数据,以及从DRAM 130和131读取数据。在其它实施例中,这样的DRAM控制器可以是包括在诸如CPU 104的处理器内的。

立体声音频CODEC 134可以是耦合到模拟信号处理器108的。进一步地,音频放大器136可以是耦合到立体声音频CODEC 134的。第一立体声扬声器138和第二立体声扬声器140可以是分别地耦合到音频放大器136的。另外,麦克风放大器142还可以是耦合到立体声音频CODEC 134的,以及麦克风144可以是耦合到麦克风放大器142的。调频(“FM”)无线调谐器146可以是耦合到立体声音频CODEC 134的。FM天线148可以是耦合到FM无线电调谐器146的。进一步地,立体声耳机150可以是耦合到立体声音频CODEC 134的。可以耦合到CPU 104的其它设备包括数码相机152。

调制解调器或射频(“RF”)收发机154可以是耦合到模拟信号处理器108的。RF开关156可以是耦合到RF收发机154和RF天线158的。另外,键盘160、具有麦克风的单声道耳机162和振动器设备164可以是耦合到模拟信号处理器108的。

电源166可以是经由电源管理集成电路(“PMIC”)168来耦合到SoC102的。电源166可以包括可充电电池或者DC电源,DC电源是通过连接到AC电源的AC对DC转换器来得到的。

CPU 104还可以是耦合到一个或多个内部的、片上的热传感器170A,以及一个或多个外部的、片外的热传感器170B的。热传感器170A和170B可以产生电压下降,其是利用模数转换器(“ADC”)控制器222来将转换为数字信号的。

在该示例性或说明性实施例中,触摸屏显示器114、视频端口120、USB端口124、照相机152、第一立体声扬声器138、第二立体声扬声器140、麦克风144、FM天线148、立体声耳机150、RF开关156、RF天线158、键盘160、单声道耳机162、振动器164、热传感器170B和PMIC168、电源166和DRAM 130是在SoC 102外部的。然而,将理解的是,在其它实施例中,这些设备中的一个或多个设备可以是包括在这样的SoC中的。

SoC 102可以包括时钟控制器172。时钟控制器172可以调整由各种系统(诸如处理器和存储器系统)使用的一个或多个系统时钟信号的频率。时钟控制器172响应于操作状况(诸如在处理器、内核、SoC或其它系统上的测量或预测的工作负荷需求),可以动态地调整这样的时钟频率。例如,当时钟控制器172检测到较高的处理器工作负荷需求时,时钟控制器172可以将提供给处理器的时钟信号的频率设置为高频率。同样地,当时钟控制器172检测到较低的处理器工作负荷需求时,时钟控制器172可以将提供给处理器的时钟信号的频率设置为低频率。如在本描述中使用的,术语“高频率”和“低频率”除了旨在指示相对于彼此的相对值之外没有其它意义;高频率是比低频率要高的。该动态频率缩放可以与动态电压缩放相结合使用。当将提供给系统的时钟信号设置为高频率时,PMIC 168可以将时钟系统的供电电压设置为高电压电平,以及当将提供给系统的时钟信号设置为低频率时,PMIC168可以将供电电压设置为低电压电平。如在本描述中使用的,术语“高电压”和“低电压”除了旨在指示相对于彼此的相对值之外没有其它意义;高电压是比低电压要高的。电源电压的降低通常导致在系统中消耗的功率成比例地节省。对电源电压和时钟频率的动态调整可以称为动态电压和频率缩放(“DVFS”)。如本领域普通技术人员理解的,DVFS技术使能了在功耗与性能之间的平衡。

如在图2中示出的,示例性系统200可以包括设备202、存储器系统204和功率管理器206。在上文中关于图1描述的SoC 102可以是设备202的示例。在上文中关于图1描述的PMIC 168可以是功率管理器206的示例。在上文中关于图1描述的DRAM 130可以是存储器系统204的示例。

设备202可以包括功率控制器208、时钟频率控制器210、时钟相位控制器212以及存储器控制器或接口214,其中的全部可以经由总线216相互进行通信。客户端设备218还可以经由总线216与前述组件进行通信。客户端设备218的示例包括CPU 104(或者其内核)、GPU 106、与相机152和显示器114相关的客户端等等,如在上文中关于图1描述的。出于清楚说明的目的,虽然在图2中仅示出了一个示例性客户端设备218,但其它这样的客户端设备可以是类似地耦合到总线216的。功率控制器208控制功率管理器206或者以其它方式与功率管理器206进行通信。时钟频率控制器210生成一个或多个系统时钟信号220。时钟频率控制器210可以监测和检测在客户端设备218上的工作负荷需求,以及响应于检测到的客户端工作负荷需求来调整一个或多个系统时钟信号220的频率。功率管理器206可以根据时钟频率来调整提供给设备202的一个或多个电源电压(即,电压轨),以便促进稳定的时钟信号。因此,例如,响应于时钟频率控制器210将一个这样的系统时钟信号220设置为高频率,功率管理器206可以将对应的电源轨设置为高电压。同样地,响应于时钟频率控制器210将一个这样系统时钟信号220设置为低频率,功率管理器206可以将对应的电源轨设置为低电压。

时钟相位控制器212接收由时钟频率控制器210生成的至少一个这样的系统时钟信号220。响应于或者基于这样的系统时钟信号220的频率,时钟相位控制器212生成时钟边沿信号222。将时钟边沿信号222(经由存储器接口214)提供给各种时钟系统,诸如总线216、存储器接口214和存储器系统204。这些时钟系统中的至少一些时钟系统的是通过流水线逻辑或阶段来表征的。相应地,数据可能花费许多时钟循环来遍及这样的系统进行传播。例如,数据可能花费许多时钟循环,来经由总线216和存储器接口214在客户端设备218与存储器系统204之间进行传播。在图3中以概括的形式示出了可以表征每个这样的时钟系统的流水线逻辑300的示例。

如在下文中进一步详细地描述的,时钟边沿信号222可以是通过其边沿来表征的或者是通过其边沿来定义的,所述边沿用以触发或控制流水线逻辑的寄存器。在下文中描述的一些示例中,时钟边沿信号222可以包括一对互补的信号,其中的一个信号对应于其基于的系统时钟。在下文中描述的其它示例中,时钟边沿信号222可以包括其基于的系统时钟的任何数量的相位延迟版本。

如在图3中示出的,这样的流水线逻辑300可以包括任何数量的寄存器302,诸如示例性寄存器302a、302b、302c和302d。可以在寄存器302的各对之间***组合逻辑304。例如,可以在寄存器302a与302b之间***逻辑304a,可以在寄存器302b与302c之间***逻辑304b,以及可以在寄存器302c与302d之间***逻辑304c。就是说,寄存器302b的数据输入是经由逻辑304a流水线到寄存器302a的数据输出的,寄存器302c的数据输入是经由通过逻辑304b流水线到寄存器302b的数据输出的,以及寄存器302d的数据输入是经由逻辑304c流水线到寄存器302c的数据输出的。在具有三个或更多个寄存器的流水线架构的上下文中,为了方便起见,在本公开内容中交替的寄存器可以称为“奇数”和“偶数”。例如,寄存器302a和302c可以称为偶数寄存器,以及寄存器302b和302d可以称为奇数寄存器。或者,寄存器302a和302c可以称为奇数寄存器,以及寄存器302b和302d可以称为偶数寄存器。换句话说,如在本公开内容中使用的术语“奇数”和“偶数”除了旨在标识交替的寄存器之外没有其它意义。虽然在图3中示出的实施例中,寄存器302a-302d包括D型触发器,但在其它实施例中,流水线逻辑可以采用其它类型的延迟元件,诸如透明锁存器、J-K触发器、S-R触发器、触发器、延迟线等等。

包括寄存器302、组合逻辑304、生成时钟边沿信号222的电路等等的电路元件,可以由源自于功率管理器206(图2)的一个或多个电源电压轨供电。电压轨在电压上可以根据系统特性(诸如时钟频率)升高或降低。例如,电压轨在低时钟频率下进行操作时可以降低,以及在高时钟频率下进行操作时可以升高。可能存在多个操作点,例如,具有低电压的低时钟频率、具有中电压的中时钟频率、以及具有高电压的高时钟频率等等。或者在其它实施例中,当仅调整时钟频率时,电压轨可以是静态地固定的。

在图4的时序图中,示例性时序400可以描述设备202(图2)的系统或组件(诸如存储器接口214)、或者作为两个或更多个系统或组件的组合的系统(诸如客户设备218、总线216、存储器接口214和存储器系统204)中的一者的操作的示例。在图4中,“相位_0”时钟边沿信号是由时钟相位控制器212(图2)基于系统时钟信号220中的一者(“系统时钟”)生成的时钟边沿信号222中的一者的示例。相位_0时钟边沿信号可以对应于一个这样的系统时钟信号220。就是说,相位_0时钟边沿信号可以具有与其基于的系统时钟信号相同的频率、占空比和其它特性。虽然在图4示出的示例中,将相位_0时钟边沿信号锁相为系统时钟信号(“系统时钟”),导致相位匹配的相位_0时钟边沿信号,但在其它示例(没有示出)中,这样的相位_0时钟边沿信号可以是系统时钟信号的时间延迟的版本,其导致相位_0时钟边沿信号相对于系统时钟信号的轻微地延迟。相位_0或相位_1时钟边沿信号的生成可以利用诸如简单的反相器、锁相环、延迟锁相环等等的已知技术。在系统时钟信号在空闲周期可能暂时地或间歇地成为静态逻辑1或逻辑0,以及随后相位_0时钟边沿信号可能同样地暂时地或间歇地成为静态逻辑1或0的情况下,还可能涉及时钟门控。另外,系统时钟信号的频率可以保持准确和稳定,或者其可以随时间变化(例如,当出于抑制射频干扰的目的并入扩频调制时)。图4中示出的示例性系统时钟信号(“系统时钟”)具有周期“T”和非对称(即,非50%)的占空比。然而,在其它示例中,系统时钟信号可以具有任何特性。相位_0时钟边沿信号是周期性信号,其以周期“T”的间隔进行断言。如在本描述中使用的,诸如相位_0时钟边沿信号的时钟边沿信号222的“断言”指的是标识的或“真实的”数字信号电平转变(即,标识的或真实的边沿)的发生。标识的或真实的边沿在一些示例中可以是上升沿,或者在其它示例中可以是下降沿。在图4示出的示例中,相位_0时钟边沿信号的标识的或真实的边沿是上升沿402,诸如边沿402a、边沿402b、边沿402c和边沿402d,以及相位_0时钟边沿信号是通过上升沿402的连续断言来定义的。由于在本描述中使用该术语,因此时钟边沿信号222(诸如图4中的相位_0时钟边沿信号)在标识的边沿的发生期间“断言”,以及在全部其它时间不“断言”。为了参考起见,在图4中还示出了另一时钟边沿信号相位_1(在该示例中其是相位_0时钟边沿信号的补充),但在本示例中未使用。然而,可能要注意的是,在图4示出的示例中,相位_1时钟边沿信号的标识的或真实的边沿是上升沿404(诸如边沿404a、边沿404b、边沿404c和边沿404d)。可能还要注意的是,在图4示出的示例中,相位_0时钟边沿信号是通过系统时钟信号(“系统时钟”)的真实的边沿的连续断言(诸如系统时钟信号的上升沿)来定义的或者是与系统时钟信号的真实的边沿的连续断言相对应的,以及相位_1时钟边沿信号是通过系统时钟信号的补充的边沿的连续断言(诸如系统时钟信号的下降沿)来定义的或者是与系统时钟信号的补充的边沿的连续断言相对应的。换句话说,在图4示出的示例中,相位_0时钟边沿信号对应于系统时钟信号(“系统时钟”),以及相位_1时钟边沿信号对应于系统时钟信号的补充。

在图4示出的示例中,相位_0时钟边沿信号对应于存储器接口214(图2)或其它这样的系统在其上进行操作的系统时钟信号220(“系统时钟”)中的一者。相应地,以一个或多个比特、字等等的形式的数据与相位_0时钟边沿信号同步地传播通过存储器接口214或者其它这样的系统的流水线逻辑。在图4示出的示例中,相位_0时钟边沿信号的频率可以是“高”频率,其中,响应于检测到客户端设备218的高工作负荷需求,时钟频率控制器210将系统时钟信号220(“系统时钟”)中的对应的信号设置或调整为“高”频率。

响应于将系统时钟信号调整为高频率,时钟相位控制器212仅使用周期性时钟边沿信号222中的一者(诸如相位_0时钟边沿信号)来控制寄存器302(图3)中的全部寄存器。相应地,在图3-4示出的示例中,寄存器302a响应于相位_0时钟边沿信号中通过边沿402a定义的第一断言,捕获和存储示例性数据(“数据”)。该数据经由逻辑304a从寄存器302a的数据输出传播到寄存器302b的数据输入,这延迟了信号传播。在该示例中(图3-4),流水线逻辑300达到全部时序门限(诸如寄存器302a-302d的建立和保持时间)。相应地,寄存器302b响应于相位_0时钟边沿信号中通过边沿402b定义的第二断言,捕获和存储示例性数据。该数据经由逻辑304b从寄存器302b的数据输出传播到寄存器302c的数据输入,这延迟了信号传播。由于在该示例中逻辑304b延迟数据不足以违反时序门限,因此寄存器302c响应于相位_0时钟边沿信号中通过边沿402c定义的第三次断言,捕获和存储示例性数据。该数据经由逻辑304c从寄存器302c的数据输出传播到寄存器302d的数据输入,这延迟了信号传播。由于在该示例中逻辑304c延迟数据不足以违反时序门限,因此寄存器302d响应于相位_0时钟边沿信号中通过上升沿402d定义的第四断言,捕获和存储示例性数据。在该示例中,应用高时钟频率(利用高电压电源轨)没有阻碍流水线逻辑300达到时序门限。

在上文中关于图3-4描述的示例中,通过流水线逻辑300的数据的总延时是系统时钟信号或相位_0时钟边沿信号的3个周期。在图4中利用时间单位标记的时间轴的任何时间单位中,当相位_0时钟边沿信号的频率设置为“高”频率时,流水线逻辑300的总延时(“L”)为3个时间单位。

在图5的时序图中,示例性时序500可以描述设备202(图2)的系统或组件(诸如存储器接口214)、或者作为两个或更多个系统或组件的组合的系统(诸如客户设备218、总线216、存储器接口214和存储器系统204)中的一者的操作的示例。除了在图5示出的操作的示例中,相位_0时钟边沿信号的频率可以是“低”频率之外,在图5中示出的相位_0时钟边沿信号和相位_1时钟边沿信号是类似于在上文中关于图4描述的那些时钟边沿信号的,其中时钟频率控制器210响应于检测到针对客户端设备218的低工作负荷需求,将系统时钟信号220(“系统时钟”)的对应的信号设置或调整为“低”频率。因此,在图5示出的示例中,相位_0时钟边沿信号的标识的或真实的边沿类似地是上升沿502(诸如边沿502a、边沿502b和边沿502c),以及相位_1时钟边沿信号的标识的或真实的边沿是上升沿504(诸如边沿504a、边沿504b和边沿504c)。响应于将系统时钟信号调整为低频率,时钟相位控制器212使用相位_0时钟边沿信号和相位_1时钟边沿信号中的一者(诸如相位_0时钟边沿信号)来控制寄存器302a和302c,以及使用相位_0时钟边沿信号和相位_1时钟边沿信号中的另一者(诸如相位_1时钟边沿信号)来控制寄存器302b和302d。要注意的是,在相位_0时钟边沿信号中通过边沿502a定义的断言与相位_1时钟边沿信号中通过边沿504a定义的下一个断言之间的时间是比在相位_0时钟边沿信号中通过边沿502a定义的断言与相位_0时钟边沿信号中通过边沿502b定义的下一个断言(即,整个时钟周期)之间的时间要小的。其原理是使用小于整个系统时钟周期的时钟来对流水线逻辑的寄存器中的至少一些寄存器计时,这促进了延时补偿。

在图5示出的示例中,寄存器302a(图3)响应于相位_0时钟边沿信号中通过边沿502a定义的断言,捕获和存储示例性数据。该数据经由逻辑304a从寄存器302a的数据输出传播到寄存器302b的数据输入,这延迟了信号传播。在该示例中(图3和图5),流水线逻辑300达到全部时序门限(诸如寄存器302a-302d的建立和保持时间)。相应地,寄存器302b响应于相位_1时钟边沿信号中通过边沿504a定义的下一个断言,捕获和存储示例性数据。该数据经由逻辑304b从寄存器302b的数据输出传播到寄存器302c的数据输入,这延迟了信号传播。由于在该示例中逻辑304b延迟数据不足以违反时序门限,因此寄存器302c响应于相位_0时钟边沿信号中通过边沿502b定义的下一个断言,捕获和存储示例性数据。该数据经由逻辑304c从寄存器302c的数据输出传播到寄存器302d的数据输入,这延迟了信号传播。由于在该示例中逻辑304c延迟数据不足以违反时序门限,因此寄存器302d响应于相位_1时钟边沿信号中通过上升沿504b定义的下一个断言,捕获和存储示例性数据。在该示例中,应用低时钟频率(利用低电压电源轨)没有阻碍流水线逻辑300达到时序门限。

在上文关于图3和图5描述的示例中,在图5中利用时间单位标记的时间轴的任何时间单位中,通过流水线逻辑300的数据的总延时(“L”)是稍微小于3个时间单位的。然而,要注意的是,如果在将系统时钟信号设置为“低”频率的情况下未采用在上文中描述的延时补偿,则通过流水线逻辑300的数据的总延时将是系统时钟信号的三个周期或6个时间单位。

可以参考图6和7来描述延时补偿的另一示例。如在图6中示出的,流水线逻辑600是类似于在上文中描述的流水线逻辑300(图3),除了在该示例中,逻辑604a实质上延迟了数据(例如,逻辑604a引入了比逻辑604b或逻辑604c要大的延迟)。流水线逻辑600可以包括任何数量的寄存器602(诸如示例性寄存器602a、602b、602c和602d)。可以在寄存器602的各对之间***组合逻辑604。例如,可以在寄存器602a与602b之间***逻辑604a,可以在寄存器602b与602c之间***逻辑604b,以及可以在寄存器602c与602d之间***逻辑604c。虽然在图6示出的实施例中,寄存器602a-602d包括D型触发器,但在其它实施例中,流水线逻辑可以采用其它类型的延迟元件,诸如透明锁存器、J-K触发器、S-R触发器、触发器、延迟线等等。

在图7的时序图中,示例性时序700可以描述设备202(图2)的系统或组件(诸如存储器接口214)、或者作为两个或更多个系统或组件的组合的系统(诸如客户设备218、总线216、存储器接口214和存储器系统204)中的一者的操作的示例。在图7中示出的相位_0时钟边沿信号和相位_1时钟边沿信号是类似于在上文中关于图5描述的那些时钟边沿信号的。相应地,相位_0时钟边沿信号的标识的或真实的边沿类似地是上升沿702(诸如边沿702a、边沿702b和边沿702c),以及相位_1时钟边沿信号的标识的或真实的边沿是上升沿704(诸如边沿704a、边沿704b和边沿704c)。响应于将系统时钟信号调整为低频率,时钟相位控制器212使用相位_0时钟边沿信号和相位_1时钟边沿信号中的一者(诸如相位_0时钟边沿信号)来控制寄存器602a和602c,以及使用相位_0时钟边沿信号和相位_1时钟边沿信号中的另一者(诸如相位_1时钟边沿信号)来控制寄存器602b和602d。

在图7示出的示例中,寄存器302a(图3)响应于相位_0时钟边沿信号中通过边沿702a定义的断言,捕获和存储示例性数据。该数据经由逻辑604a从寄存器702a的数据输出传播到寄存器702b的数据输入,这延迟了信号传播。在该示例中(图6-7),逻辑604a足够地延迟了数据,以使如果寄存器602b要由相位_1时钟边沿信号中通过边沿704a定义的下一个断言来控制,则在该示例中这将违反寄存器602b的时序门限,以及寄存器602b将可能无法捕获和存储示例性数据。换句话说,在边沿702a与边沿704a之间的时间“X”不足以达到时序门限要求。因此,代替相位_1时钟边沿信号控制寄存器602b,选择相位_0时钟边沿信号来控制寄存器602b,以向数据提供额外的时间来传播通过逻辑604a。在具有通过使用与用以控制寄存器602a的时钟边沿信号相同的时钟边沿信号(例如,相位_0)中的一者来控制寄存器602b而提供的额外的时间的情况下,没有违反寄存器602b的时序门限。因此,寄存器602b响应于相位_0时钟边沿信号中通过边沿702b定义的下一个断言,捕获和存储示例性数据。该数据经由逻辑604b从寄存器602b的数据输出传播到寄存器602c的数据输入,这延迟了信号传播。由于在该示例中逻辑604b延迟数据不足以违反时序门限,因此寄存器602c响应于相位_0时钟边沿信号中通过边沿702c定义的下一个断言,捕获和存储示例性数据。该数据经由逻辑604c从寄存器602c的数据输出传播到寄存器602d的数据输入,这延迟了信号传播。由于在该示例中逻辑604c延迟数据不足以违反时序门限,因此寄存器602d响应于相位_1时钟边沿信号中通过上升沿704c定义的下一个断言,捕获并存储示例性数据。

在上文关于图6-7描述的示例中,在图7中利用时间单位标记的时间轴的任何时间单位中,通过流水线逻辑300的数据的总延时(“L”)是在4个时间单位与5个时间单位之间的。然而,要注意的是,如果在将系统时钟信号设置为“低”频率的情况下未采用在上文中描述的延时补偿,则通过流水线逻辑600的数据的总延时将是系统时钟信号的三个周期或6个时间单位。

虽然在上文关于图6-7描述的示例中,可以以在上文中描述的方式解决通过逻辑604a引入的实质性延迟的影响,但在其它示例中,可以以相同的方式来解决通过在任何一对或多对寄存器之间***的任何其它组合逻辑或其它引入延迟的元件所引入的实质性延迟的影响。各寄存器可以通过已经被单独地选择来确保达到该寄存器的时序要求的时钟边沿信号222中的一者来控制。延迟和时序要求可以是通过在设备202的开发的设计阶段期间对来自电路综合和物理设计仿真器或时序分析器(没有示出)的时序分析报告进行分析来确定的。所述分析可以是在跨越温度和铸造工艺变化评估的每个频率和电压操作状况下针对每个时序路径来执行的。对于在源寄存器与目的寄存器之间的任何给定路径而言,对相位_0或相位_1时钟边沿信号的选择可以是通过选择导致最小可接受的(即,正松弛的)时序容限的时钟相位来确定的。通常,去往目的寄存器的输入可以是源自于多个上游寄存器和关联的逻辑路径的;在数字电路设计中众所周知的是,对于进入目的寄存器的全部路径而言,时序容限必须是可接受的(即,正松弛的)。对时钟相位的分配可以是在每个频率和电压操作状况下建立的。例如,具有高电压状况的高频率将具有对去往全部寄存器的时钟相位的分配,以及具有低电压状况的低频率将具有对去往全部寄存器的时钟相位的分配。可以在图15示出的模式表格1500中捕获总体分配。模式表格1500的一个实施例可以是在设计时间处固定的,以及使用硬连线数字逻辑或ROM来实现为最坏情况的时钟相位分配的静态查找表格。或者,模式表格1500可以使用可编程寄存器、RAM、保险丝、EPROM、闪存等等来实现。如果模式表格1500是可编程的,则在操作期间的时钟相位分配可以是根据在设计阶段期间确定的初始值进一步优化的。这是因为针对硬编码查找表格的时钟相位分配必须是基于最坏情况的过程和温度变化的(因为该分配必须跨越在数百万个设备和任何/全部温度是可靠的)。然而,如果模式表格是可重新编程的,则取决于工艺变化(例如,慢速或快速),可以针对特定设备来调整模式表格,即,与表现出比正常硅速度要慢的慢速设备相对比,表现出比正常硅速度要快的快速设备可以使用导致较低延时的时钟相位来填充模式表1500。所述调整可以是通过使用常规方法(例如,环形振荡器速度、泄漏电流等等)确定单独的设备的硅速度来进行的。这导致针对单独的设备的最低可能延时。在任何情况下,个性化和一体适用的(最坏情况)时钟相位分配都将导致总延时减少。

可以参考图8和9描述延时补偿的另一示例。如在图8中示出的,除了流水线逻辑800被配置为响应于多于两个相位的时钟边沿信号222进行操作之外,流水线逻辑800是类似于在上文中描述的流水线逻辑300(图3)的。流水线逻辑800可以包括任何数量的寄存器802(诸如示例性寄存器802a、802b、802c和802d)。可以在寄存器802的各对之间***组合逻辑804。例如,可以在寄存器802a与802b之间***逻辑804a,可以在寄存器802b与802c之间***逻辑804b,以及可以在寄存器802c与802d之间***逻辑804c。虽然在图8示出的实施例中,寄存器802a-802d包括D型触发器,但在其它实施例中,流水线逻辑可以采用其它类型的延迟元件,诸如透明锁存器、J-K触发器、S-R触发器、触发器、延迟线等等。

在图9的时序图中,示例性时序900可以描述设备202(图2)的系统或组件(诸如存储器接口214)、或者作为两个或更多个系统或组件的组合的系统(诸如客户设备218、总线216、存储器接口214和存储器系统204)中的一者的操作的示例。在图9中示出的相位_0时钟边沿信号是类似于在上文中关于图4描述的那些时钟边沿信号的。相应地,相位_0时钟边沿信号的频率可以是“高”频率,其中,响应于检测到客户端设备218的高工作负荷需求,时钟频率控制器210将系统时钟信号220(“系统时钟”)中的对应的信号设置或调整为“高”频率。同样地,在图9示出的示例中,相位_0时钟边沿信号的标识的或真实的边沿是上升沿902,诸如边沿902a、边沿902b、边沿902c和边沿902d。除了相位_0时钟边沿信号之外,其它时钟边沿信号(诸如相位_1时钟边沿信号、相位_2时钟边沿信号和相位_3时钟边沿信号)可以是包括在由时钟相位控制器212基于系统时钟220中的一者(“系统时钟”)生成的时钟边沿信号222中的。然而,由于在图9示出的操作的示例中仅使用了一个相位的时钟边沿信号222,所以出于清楚说明的目的,在图9中没有示出相位_1时钟边沿信号、相位_2时钟边沿信号和相位_3时钟边沿信号。应当注意的是,虽然在本公开内容描述的示例性实施例中,生成了多达四个相位的时钟边沿信号222,但是在其它示例性实施例(没有示出)中,可以生成多于四个相位的时钟边沿信号。

响应于将系统时钟信号调整为高频率,时钟相位控制器212仅使用时钟边沿信号222中的一者(例如,相位_0时钟边沿信号)来控制全部寄存器802(图8)。相应地,在图8-9示出的示例中,寄存器802a响应于相位_0时钟边沿信号中通过边沿802a定义的第一断言,捕获和存储示例性数据(“数据”)。该数据经由逻辑804a从寄存器802a的数据输出传播到寄存器802b的数据输入,这延迟了信号传播。在该示例中(图3-4),流水线逻辑800达到全部时序门限(诸如寄存器802a-802d的建立和保持时间)。相应地,寄存器802b响应于相位_0时钟边沿信号中通过边沿802b定义的第二断言,捕获和存储示例性数据。该数据经由逻辑804b从寄存器802b的数据输出传播到寄存器802c的数据输入,这延迟了信号传播。由于在该示例中逻辑804b延迟数据不足以违反时序门限,因此寄存器802c响应于相位_0时钟边沿信号中通过边沿802c定义的第三次断言,捕获和存储示例性数据。该数据经由逻辑804c从寄存器802c的数据输出传播到寄存器802d的数据输入,这延迟了信号传播。由于在该示例中逻辑804c延迟数据不足以违反时序门限,因此寄存器802d响应于相位_0时钟边沿信号中通过上升沿402d定义的第四断言,捕获和存储示例性数据。

在上文关于图8-9描述的示例中,通过流水线逻辑800的数据的总延时是相位_0时钟边沿信号的3个周期。在图9中利用时间单位标记的时间轴的任何时间单位中,当相位_0时钟边沿信号的频率设置为“高”频率时,流水线逻辑300的总延时(“L”)是3个时间单位。

在图10的时序图中,示例性时序1000可以描述设备202(图2)的系统或组件(诸如存储器接口214)、或者作为两个或更多个系统或组件的组合的系统(诸如客户设备218、总线216、存储器接口214和存储器系统204)中的一者的操作的示例。除了在图10示出的操作的示例中相位_0时钟边沿信号的频率可以是“低”频率之外,在图10中示出的相位_0时钟边沿信号是与在上文中关于图9描述时钟边沿信号相同的,其中时钟频率控制器210响应于检测到客户端设备218的低工作负荷需求,将系统时钟信号220(“系统时钟”)的对应的信号设置或调整为“低”频率。相位_0时钟边沿信号、相位_1时钟边沿信号、相位_2时钟边沿信号和相位_3时钟边沿信号相互具有相同的频率,但是相对于系统时钟信号220中的相关的系统时钟信号具有不同的相位或延迟。例如,相位_0时钟边沿信号相对于系统时钟信号220中的对应的一个系统时钟信号的延迟可以是零,相位_1时钟边沿信号相对于系统时钟信号220中的对应的一个系统时钟信号的延迟可以是一定数量的时间延迟(“D”),相位_2时钟边沿信号相对于系统时钟信号220中的对应的一个系统时钟信号的延迟可以是2xD,以及相位_3时钟边沿信号相对于系统时钟信号220中的对应的一个系统时钟信号的延迟可以是3xD。换句话说,在该示例中,系统时钟周期可以被划分为四个相位,其相对于系统时钟具有的相位延迟是0°、90°、180°和270°。相位的数量可以是四个,这是因为在该示例中,流水线逻辑800具有四个寄存器802。更普遍地,在具有N个寄存器的流水线逻辑800中,时钟相位控制器212可以被配置为生成N个延迟的系统时钟信号,其相对于相关的系统时钟信号具有的唯一相位延迟是360/N的整数倍。然而,在其它实施例中,所生成的延迟的系统时钟信号的数量可以大于或者小于在相关的流水线逻辑中的寄存器的数量。另外,在其它实施例中,延迟的系统时钟信号可以延迟任何量。

在图10示出的示例中,相位_0时钟边沿信号的标识的或真实的边沿是上升沿1002(诸如边沿1002a和边沿1002b);相位_1时钟边沿信号的标识的或真实的边沿是上升沿1004(诸如边沿1004a和边沿1004b);相位_2时钟边沿信号的标识的或真实的边沿是上升沿1006(诸如边沿1006a和边沿1006b);相位_3时钟边沿信号的标识的或真实的边沿是上升沿1008(诸如边沿1008a和边沿1008b)。在图10示出的示例中,响应于将系统时钟信号调整为低频率,时钟相位控制器212使用相位_0时钟边沿信号来控制寄存器802a,使用相位_1时钟边沿信号来控制寄存器802b,使用相位_2时钟边沿信号来控制寄存器802c,以及使用相位_3时钟边沿信号来控制寄存器802d。

在图10示出的示例中,寄存器802a(图8)响应于相位_0时钟边沿信号中通过边沿1002a定义的断言,捕获和存储示例性数据。该数据经由逻辑804a从寄存器802a的数据输出传播到寄存器802b的数据输入,这延迟了信号传播。在该示例中(图8和图10),流水线逻辑800达到全部的时序门限(诸如寄存器802a-802d的建立和保持时间)。相应地,寄存器802b响应于相位_1时钟边沿信号中通过边沿1004a定义的下一个断言,捕获和存储示例性数据。该数据经由逻辑304b从寄存器802b的数据输出传播到寄存器802c的数据输入,这延迟了信号传播。由于在该示例中逻辑304b延迟数据不足以违反时序门限,因此寄存器802c响应于相位_2时钟边沿信号中通过边沿1006a定义的下一个断言,捕获和存储示例性数据。该数据经由逻辑804c从寄存器802c的数据输出传播到寄存器802d的数据输入,这延迟了信号传播。由于在该示例中逻辑804c延迟数据不足以违反时序门限,因此寄存器802d响应于相位_3时钟边沿信号中通过上升沿1008a定义的下一个断言,捕获和存储示例性数据。

在上文关于图8和图10描述的示例中,在图10中利用时间单位标记的时间轴的任何时间单位中,通过流水线逻辑300的数据的总延时(“L”)是在1个时间单位与2个时间单位之间的。然而,要注意的是,如果在将系统时钟信号设置为“低”频率的情况下未采用在上文中描述的延时补偿,则通过流水线逻辑300的数据的总延时将是系统时钟信号的三个周期或6个时间单位。

可以参考图11和12来描述延时补偿的另一示例。如在图11中示出的,除了在该示例中逻辑1104b实质上延迟了数据(例如,逻辑1104b比逻辑1104a或逻辑1104c引入更大的延迟)之外,流水线逻辑1100是类似于在上文中描述的流水线逻辑800的(图8)。流水线逻辑1100可以包括任何数量的寄存器1102(诸如示例性寄存器1102a、1102b、1102c和1102d)。可以在寄存器1102的各对之间***组合逻辑1104。例如,可以在寄存器1102a与1102b之间***逻辑1104a,可以在寄存器1102b与1102c之间***逻辑1104b,以及可以在寄存器1102c与1102d之间***逻辑1104c。虽然在图11示出的实施例中,寄存器1102a-1102d包括D型触发器,但在其它实施例中,流水线逻辑可以采用其它类型的延迟元件,诸如透明锁存器、J-K触发器、S-R触发器、触发器、延迟线等等。

在图12的时序图中,示例性时序1200可以描述设备202(图2)的系统或组件(诸如存储器接口214)、或者作为两个或更多个系统或组件的组合的系统(诸如客户设备218、总线216、存储器接口214和存储器系统204)中的一者的操作的示例。在图12中示出的相位_0时钟边沿信号、相位_1时钟边沿信号、相位_2时钟边沿信号和相位_3时钟边沿信号是类似于在上文中关于图10描述的那些时钟边沿信号的。相应地,相位_0时钟边沿信号的标识的或真实的边沿类似地是上升沿1202(诸如边沿1202a和边沿1202b),相位_1时钟边沿信号的标识的或真实的边沿是上升沿1204(诸如边沿1204a和边沿1204b),相位_2时钟边沿信号的标识的或真实的边沿是上升沿1206(诸如边沿1206a和边沿1206b),以及相位_3时钟边沿信号的标识的或真实的边沿是上升沿1208(诸如边沿1208a和边沿1208b)。响应于将系统时钟信号调整为低频率,时钟相位控制器212以与控制寄存器1102a、1102b和1102c的方式不同的方式来控制寄存器1102c(图11),这是因为在该示例中,逻辑1104b实质上延迟了数据。

在图12示出的示例中,寄存器1102a(图11)响应于相位_0时钟边沿信号中通过边沿1202a定义的断言,捕获和存储示例性数据。该数据经由逻辑1104a从寄存器1102a的数据输出传播到寄存器1102b的数据输入。由于在该示例中逻辑1104a延迟数据不足以违反时序门限,因此寄存器1102b响应于相位_1时钟边沿信号中通过边沿1204a定义的下一个断言,捕获和存储示例性数据。该数据经由逻辑1104b从寄存器1102b的数据输出传播到寄存器1102c的数据输入,这延迟了信号传播。在该示例中(图11-12),逻辑1104b足够地延迟了数据,以使如果寄存器1102c要由相位_2时钟边沿信号中通过边沿1206a定义的下一个断言来控制,则在该示例中这将违反寄存器1102c的时序门限,以及寄存器1102c将可能无法捕获和存储示例性数据。换句话说,在边沿1204a与边沿1206a之间的时间“X”不足以达到时序门限要求。因此,代替相位_2时钟边沿信号控制寄存器1102c,选择相位_3时钟边沿信号来控制寄存器1102c,以向数据提供额外的时间来传播通过逻辑1104b。在具有额外的时间的情况下,没有违反寄存器1102c的时序门限。因此,寄存器1102c响应于相位_3时钟边沿信号中通过边沿1208a定义的下一个断言,捕获和存储示例性数据。该数据经由逻辑1104c从寄存器1102c的数据输出传播到寄存器1102d的数据输入。由于在该示例中逻辑1104c延迟数据不足以违反时序门限,因此寄存器1102d响应于相位_0时钟边沿信号中通过边沿1202b定义的下一个断言,捕获和存储示例性数据。

在上文关于图11-12描述的示例中,在图12中利用时间单位标记的时间轴的任何时间单位中,通过流水线逻辑1200的数据的总延时(“L”)是2个时间单位。然而,要注意的是,如果在将系统时钟信号设置为“低”频率的情况下未采用在上文中描述的延时补偿,则通过流水线逻辑1100的数据的总延时将是系统时钟信号的三个周期或6个时间单位。

虽然在上文关于图11-12描述的示例中,可以以在上文中描述的方式解决由逻辑1104b引入的实质性延迟的影响,但在其它示例中,可以以相同的方式来解决通过在任何一对或多对寄存器之间***的任何其它组合逻辑或其它引入延迟的元件所引入的实质性延迟的影响。各寄存器可以通过已经被单独地选择来确保达到该寄存器的时序要求的时钟边沿信号222中的一者来控制。延迟和时序要求可以是通过在设备202的开发的设计阶段期间对来自仿真器(没有示出)的时序分析报告进行分析来确定的。例如,寄存器1102a-1102d中的一个或多个寄存器的第一子集可以是通过相对于相关的系统时钟具有第一相位延迟的时钟边沿信号222中的第一时钟边沿信号来控制的,寄存器1102a-1102d中的一个或多个寄存器的第二子集可以是通过相对于相关的系统时钟具有第二相位延迟的时钟边沿信号222中的第二时钟边沿信号来控制的,寄存器1102a-1102c中的一个或多个寄存器的第三子集可以是通过相对于相关的系统时钟具有第三相位延迟的时钟边沿信号222中的第三时钟边沿信号来控制的等等。更普遍地,在系统时钟信号之间具有第一相位差或时间延迟的两个相应的延迟的系统时钟信号可以用以至少控制任何第一对流水线寄存器(例如,在其间没有实质上延迟数据的一对),以及在系统时钟信号之间具有第二相位差或时间延迟(即,第二相位差比第一相位差要大)的两个相应的延迟的系统时钟信号可以用以至少控制任何第二对流水线寄存器(例如,在其间实质上延迟数据的一对)。

在示例性实施例中,时钟相位控制器212和存储器接口214(图2)的各方面可以一起整合在单个系统或设备中。例如,如在图13中示出的,DRAM控制器1302可以包括时钟相位控制器1306(其可以是时钟相位控制器212的示例)和DRAM控制器接口1304(其可以是存储器接口214的示例)。DRAM控制器1302可以接收由时钟频率控制器210以在上文中描述的方式生成的(例如,响应于客户端设备工作负荷需求来在频率上调整的)一个或多个系统时钟信号。DRAM控制器1302可以是耦合到诸如总线216(图2)的SoC总线的。DRAM控制器接口1304可以是耦合到诸如存储器系统204(图2)的DRAM系统的。DRAM控制器接口1304可以具有常规的结构,以及可以包括例如物理接口1308、命令生成器1310、请求优化器1312、DRAM请求队列1314和DRAM响应队列1316。

时钟相位控制器1306可以包括时钟相位生成器1318和时钟模式表格1320。时钟相位生成器1318可以生成延迟的系统时钟信号或相位时钟信号,诸如在上文中关于图3-12描述的相位_0时钟边沿信号、相位_1时钟边沿信号、相位_2时钟边沿信号和相位_3时钟边沿信号。可以将所生成的相位时钟信号中的各相位时钟信号提供给在DRAM控制器接口1304中的流水线逻辑。同样地,流水线逻辑可以包括物理接口1308、命令生成器1310、请求优化器312、DRAM请求队列1314和DRAM响应队列1316(其中的各组件本身可以包括多个流水线逻辑阶段),因此可以认识到的是,数据可能花费许多时钟循环来传播通过DRAM控制器接口1304。还可以认识到的是,DRAM控制器接口1304的元件中的一些元件可以具有比其它元件要长的延迟。例如,DRAM请求队列1314和DRAM响应队列1316可以具有低逻辑延迟,而请求优化器1312可以具有高逻辑延迟。因此,在诸如包括具有高逻辑延迟的元件和具有低逻辑延迟的元件的组合的DRAM控制器接口1304的系统中,使用两个或更多个相位时钟信号中的单独地选择的一个相位时钟信号来控制各元件是有益的。

时钟模式表格1320可以将流水线逻辑的各元件或流水线逻辑的一组多个元件与不同相位时钟信号或其它时钟边沿信号中的一者相关联,以当系统在低频率模式下操作时使用(例如,响应于检测到低客户端设备工作负荷)。在上文中关于图3-5描述的示例中,时钟模式表格1320可以将寄存器302a和302c与相位_0时钟边沿信号相关联,以及将寄存器302b和302d与相位_1时钟边沿信号相关联。在上文关于图6-7描述的示例中,时钟模式表格1320可以将寄存器602a、602c和602d与相位_0时钟边沿信号相关联,以及将寄存器602b与相位_1时钟边沿信号相关联。在上文关于图8和图10描述的示例中,时钟模式表格1320可以将寄存器802a与相位_0时钟边沿信号相关联,将寄存器802b与相位_1时钟边沿信号相关联,将寄存器802c与相位_2时钟边沿信号相关联,以及将寄存器802d与相位_3时钟边沿信号相关联。在上文关于图11-12描述的示例中,时钟模式表格1320可以将寄存器1102a与相位_0时钟边沿信号相关联,将寄存器1102b与相位_1时钟边沿信号相关联,将寄存器1102c与相位_3时钟边沿信号相关联,以及将寄存器1102d与相位_0时钟边沿信号相关联。

时钟模式表格1320可以是在其中存储上文描述的关联的查找表格。或者,时钟模式表格1320具有任何其它结构,诸如使用可重新配置的寄存器、RAM、ROM、EPROM或其它类型的NV存储器。在上文中描述的模式表格1500(图15)可以是时钟模式表格1320的示例。时钟模式表格1320可以生成指示在上文中描述的关联的模式控制信号。可以将模式控制信号提供给流水线逻辑的元件。换句话说,时钟模式表格1320向流水线逻辑的各寄存器或其它元件指示:当系统在低频率模式下操作时,要使用两个或更多个相位时钟信号中的哪个相位时钟信号。在上文关于图3描述的示例中,向寄存器302a提供模式控制信号模式_A,向寄存器302b提供模式控制信号模式_B,向寄存器302c提供模式控制信号模式_C,以及向寄存器302d提供模式控制信号模式_D。在上文关于图3描述的示例中,这些模式控制信号中的各模式控制信号可以仅由一个比特组成,以使能在这些示例的两个相位时钟信号当中的选择。类似地,在上文关于图6描述的示例中,向寄存器602a提供模式控制信号模式_A,向寄存器602b提供模式控制信号模式_B,向寄存器602c提供模式控制信号模式_C,以及向寄存器602d提供模式控制信号模式_D。在上文关于图6描述的示例中,这些模式控制信号中的各模式控制信号可以仅由一个比特组成,以使能在这些示例的两个相位时钟信号当中的选择。在上文关于图8描述的示例中,向寄存器802a提供模式控制信号模式_A,向寄存器802b提供模式控制信号模式_B,向寄存器802c提供模式控制信号模式_C,以及向寄存器802d提供模式控制信号模式_D。在上文关于图8描述的示例中,这些模式控制信号中的各模式控制信号可以由两个比特组成,以使能在这些示例的四个相位时钟信号当中的选择。类似地,在上文关于图11描述的示例中,在低频下,使用模式表格1500向寄存器1102a提供模式控制信号模式_A,模式_A等于通过行1550(方块0_reg_1102a)和列1502(fLOW模式)确定的二进制值00。使用模式表格1500向寄存器1102b提供模式控制信号模式_B,模式_B等于通过行1551(方块0_reg_1102b)和列1503(fLOW模式)确定的二进制值01。使用模式表格1500向寄存器1102c提供模式控制信号模式_C,模式_C等于通过行1552(方块0_reg_1102c)和列1503(fLOW模式)确定的二进制值11。使用模式表格1500向寄存器1102d提供模式控制信号模式_D,模式_D等于由行1553(方块0_reg_1102d)和列1503(fLOW模式)确定的二进制值00。对于采用延时补偿的每个寄存器以及对于各频率和电压轨操作点而言,该过程是重复的。例如,模式表格1500包括通过列1502和1503定义的低频操作点、通过列1504和1505定义的中频操作点、以及通过列1506和1507定义的高频操作点。如在上文中描述的,电压轨对于相应的频率操作而言是特定的。对于给定的频率和电压轨操作点,应用适用的模式(列1503、1505、1507),这导致选择适当的时钟相位(列1502、1504、1506)。

在上文关于图11描述的示例中,模式控制信号中的各模式控制信号可以由2比特二进制值组成,以使能在这些示例的四个相位时钟信号当中的选择。虽然在本公开内容描述的示例性实施例中,流水线逻辑的各元件接收两个或更多个相位时钟信号和至少一个模式控制信号,但在其它实施例中,流水线逻辑的各元件可以仅接收由时钟相位控制器已经预先选择或生成的单个时钟信号。鉴于在本公开内容中的描述,本领域普通技术人员将会想到用于使用相位时钟信号或其它类型的周期性时钟边沿信号来控制流水线逻辑寄存器以补偿流水线逻辑延时的其它排列。

在图14中示出了用于补偿系统存储器延时的示例性方法1400。如通过方块1402示出的,方法1400可以包括:检测客户端设备工作负荷需求。可以以任何方式检测客户端设备工作负荷需求。用于检测客户端设备工作负荷需求的常规技术对是本领域普通技术人员而言是已知的,诸如对CPU总线业务、CPU利用率、CPU电流、CPU温度等等的硬件监测。功率控制器208(图2)和时钟频率控制器210是可以用作用于执行该功能的单元的元件的示例。如通过方块1404指示的,方法1400可以包括:调整提供给系统组件(诸如客户端设备、存储器接口、存储器系统等等)的系统时钟信号的频率。例如,可以响应于检测到高客户端设备工作负荷需求,采用常规的DVFS技术来将系统时钟信号调整为第一频率,以及响应于检测到低客户端设备工作负荷需求,将系统时钟信号调整为比第一频率要低的第二频率。随着时钟频率的变化,可以存在电源轨电压的变化(例如,当时钟频率降低时电压降低,反之亦然)。时钟频率控制器210是可以用作用于执行该功能的单元的元件的示例。

方块1406指示随后的某些动作取决于系统时钟信号是已经被调整为第一频率还是被调整为第二频率。如通过方块1408指示的,响应于将系统时钟信号调整为第一频率,流水线逻辑的至少一对(即,第一和第二)寄存器是使用第一周期性时钟边沿信号来控制的。如通过方块1410指示的,响应于将系统时钟信号调整为第二频率,在流水线逻辑的至少一对(即,第一和第二)寄存器中,第一寄存器是使用第一周期性时钟边沿信号和第二周期性时钟边沿信号中的一者来控制的,以及第二寄存器是使用第一周期性时钟边沿信号和第二周期性时钟边沿信号中的另一者来控制的。时钟相位控制器212是可以用作用于执行这些功能的单元的元件的示例。

第一周期性时钟边沿信号和第二周期性时钟边沿信号的相关性在于,在第一时钟边沿信号的连续断言(例如,标识的边沿)之间的第一周期性时间间隔是比在第一周期性时钟边沿信号的断言和第二周期性时钟边沿信号的下一个断言之间的第二周期性时间间隔要大的。因为在第一周期性时钟边沿信号的断言之后的第二周期性时钟边沿信号的下一个断言是在第一周期性时钟边沿信号的下一个断言之前发生的,所以在第一周期性时钟边沿信号的断言与第二周期性时钟边沿信号的下一个断言之间的时间是比与在第一周期性时钟边沿信号的断言与第一周期性时钟边沿信号的下一个断言之间的时间要小的。因此,当系统时钟信号已经调整为第二(低)频率时,使用第二周期性时钟边沿信号的下一个断言而不是等待第一周期性时钟边沿信号的下一个断言来控制寄存器,减少了通过流水线逻辑的延时。

在一个或多个处理器(诸如CPU 104(图1))的控制下,可以执行在本公开内容中描述的示例性方法(包括方法400)的各方面。处理器可以被配置有软件、固件、代码、指令等等或者其它计算机可执行逻辑,以执行在本文中描述的用于补偿系统存储器延时的方法。这样的计算机可执行逻辑可以存储在一个或多个计算机可读介质(诸如SRAM 128(图1)或非易失性存储器)中。计算机可执行逻辑和在其中存储逻辑的非暂时性介质的组合,通常定义了在专利词典中称为“计算机程序产品”的内容。

对于本发明相关领域的普通技术人员来说,在不背离本发明的精神和保护范围的情况下,替代的实施例将变得显而易见。因此,虽然已经详细地示出和描述了选择的各方面,但将理解的是,在不背离本发明的精神和保护范围的情况下,可以对其做出各种替代和改变,如通过下文的权利要求定义的。

40页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:具有形状记忆材料线的计算设备的锁定装置

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!