CN100483303C - 用于集成设备中功率节流的快速频率切换的方法和系统 - Google Patents
用于集成设备中功率节流的快速频率切换的方法和系统 Download PDFInfo
- Publication number
- CN100483303C CN100483303C CNB2004100916457A CN200410091645A CN100483303C CN 100483303 C CN100483303 C CN 100483303C CN B2004100916457 A CNB2004100916457 A CN B2004100916457A CN 200410091645 A CN200410091645 A CN 200410091645A CN 100483303 C CN100483303 C CN 100483303C
- Authority
- CN
- China
- Prior art keywords
- bus
- clock
- ratio
- bus ratio
- counter
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3253—Power saving in bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明提供了用于集成设备中功率节流的快速频率切换的方法和系统,其能够在不清空处理器的事务队列的情况下从第一总线比率切换到第二总线比率。
Description
技术领域
本发明一般地涉及使用节流(throttle)来降低功率。
背景技术
对功能更强大的计算机和通信产品的需求导致出现了通常具有更高的晶元(die)温度而且功耗更大的更快的处理器。但是,设计工程师要为降低功耗和晶元温度而努力。
一般地,处理器或微控制器使用时钟倍频。时钟倍频是指处理器的核心频率与总线频率之比。一种典型的解决方案是用于改变时钟倍频的节流。例如,当集成设备的工作温度升高时,工作频率被降低。结果,集成设备由于较低的工作频率而冷却。因此,当集成设备冷却后,工作频率可以被提高。但是,这种节流可能对处理器的性能有不良影响,因为处理器要忍受时钟倍频切换中包含的长延迟。
发明内容
根据本发明的一个方面,提供了一种用于在从第一总线比率切换到第二总线比率时产生总线控制信号的方法,该方法包括:在所述第一总线比率的总线时钟边沿之前x个核心时钟处产生所述总线控制信号;沿具有x+1个流水段的流水线逐段推进,其中第一流水段在所述第一总线比率的总线时钟边沿之前x个核心时钟处,最末流水段在所述第一总线比率的总线时钟边沿之前0个核心时钟处;将计数器从0增加到比所述第一总线比率小1;将所述计数器与根据所述第一总线比率计算得到的值进行比较;以及从所述第一总线比率切换到所述第二总线比率。
根据本发明的另一方面,提供了一种用于产生总线控制信号的系统,该系统包括:用于在第一总线比率的总线时钟边沿之前x个核心时钟处产生所述总线控制信号的装置;用于沿具有x+1个流水段的流水线逐段推进的装置,其中第一流水段在所述第一总线比率的总线时钟边沿之前x个核心时钟处,最末流水段在所述第一总线比率的总线时钟边沿之前0个核心时钟处;用于将计数器从0增加到比所述第一总线比率小1的装置;以及用于将所述计数器与根据所述第一总线比率计算得到的值进行比较的装置。
根据本发明的另一方面,提供了一种用于在从第一总线比率切换到第二总线比率时产生总线控制信号的方法,该方法包括:在所述第一总线比率的总线时钟边沿之前x个核心时钟处产生所述总线控制信号;沿具有x+1个流水段的流水线逐段推进,其中第一流水段在所述第一总线比率的总线时钟边沿之前x个核心时钟处,最末流水段在所述第一总线比率的总线时钟边沿之后x+n个核心时钟处;将计数器从0增加到比所述第一总线比率小1;将所述计数器与根据所述第一总线比率计算得到的值进行比较,以及从所述第一总线比率切换到所述第二总线比率。
附图说明
在本说明的权利要求书中具体地指出并清楚地要求了本发明的主题。但是,通过参照下面的详细描述并结合附图进行阅读,可以最好地理解所要求的主题,包括操作的组成和方法及其对象、特征和优点,在所述附图中:
图1的时序图根据所要求的主题,图示了产生驱动使能信号的实施例。
图2的时序图根据所要求的主题,图示了产生选通驱动/采样使能信号的实施例。
图3的方框图示出了被实施例使用的总线比率和控制信号的产生流水线。
图4的系统简图示出的系统可以应用图1或图2或图3的实施例,或它们的任意组合。
图5是实施例使用的仿真。
具体实施方式
在下面的详细描述中列出了许多具体细节,以提供对所要求的主题的全面理解。但是,本领域的技术人员应当理解,所要求的主题可以在没有这些具体细节的情况下被实现。在其它情况下,没有详细描述公知的方法、步骤、部件和电路,以免混淆所要求的主题。
现今的技术发展领域涉及通过降低功耗来获得用于通信产品和计算机或计算系统的电池的更长寿命。一般地,当处理器工作在更高温度时,处理器的晶体管的性能可能会下降并变慢。目前,使用节流,通过降低工作频率来降低功耗和晶元温度。但是,如前面讨论过的那样,节流对例如处理器的集成设备的性能有不良影响,因为处理器可能会中断所有指令的执行并清空或阻断处理器队列。结果这导致处理器慢慢停了下来。因此,当改变时钟倍频以试图降低功耗时,一般的节流近似于“猛踩刹车”以使汽车(处理器)慢慢停了下来。如前面所提到的那样,处理器或集成设备的核心频率是将总线频率乘以时钟倍频得到的。在一个实施例中,总线频率对应于前端总线而且是固定的,而时钟倍频是由用户指定的。
与一般的节流形成对照,所要求的主题实现了一种系统和方法,其促成了时钟倍频切换以降低核心频率的同时防止了处理器队列被清空或阻断,这是由于频率切换发生在少许核心时钟中而且对用户透明。所要求的主题在下面的详细描述中被描述。
一方面,所要求的主题教导了一种用于产生驱动使能和选通产生信号的时钟计数器算法,如结合图1和图2所描述的那样。时钟计数器算法可以在软件中实现,例如,所述软件可以被存储在电可访问介质中,包括提供(即存储和/或传输)可被电子设备(例如计算机、个人数字助理、移动电话)读取的形式的内容(例如计算机可执行指令)的任何机制。例如,机器可访问介质包括只读存储器(ROM)、随机访问存储器(RAM)、磁盘存储介质、光存储介质、闪存设备以及电的、光的、声的或其它形式的传播信号(例如载波、红外信号、数字信号)。
在另一个实施例中,所要求的主题方便了总线控制信号和锁相环(PLL)开关摆动的流水线化,以支持任意的深度,以用于容纳去往和来自焊盘(pad)的更大的传播延迟、用于将控制信号提前到开关之前以及用于容纳PLL开关的开关信号建立时间,如结合图3所描述的那样。
图1的时序图根据所要求的主题,图示了产生驱动使能信号的实施例。在一个实施例中,所要求的主题支持为以不同核心频率运行的处理器或集成设备产生驱动使能信号。在一个实施例中,所要求的主题与前端总线交互,并以核心频率工作,而且对于一个范围内的时钟倍频来说在功能上是等同的。因此,每个信号遵守把信号驱动到总线时钟上的延迟需求,并包括在随后的总线时钟上升沿之前的预定时刻驱动信号。因此,这使得所要求的主题的逻辑独立于时钟倍频,以得到基于所支持的最高时钟倍频而选择的最小延迟。
如前面所提到的那样,处理器或集成设备可以支持一个范围内的时钟倍频。一般地,例如驱动使能和采样使能之类的一组同步信号被用作同步信号。驱动使能信号被用于把信号驱动到例如前端总线的总线上,而采样使能信号被用于对来自例如前端总线的总线的进入的信号进行采样。
在一个实施例中,采样使能信号能够从所述驱动使能中获得并关于驱动使能对称。在一个实施例中,在总线时钟的上升沿之后使用采样使能信号。例如,为了在总线时钟之后1周期产生采样使能,驱动使能信号被延迟了x+1个周期。在一个实施例中,如下代码被编入寄存器传送语言
(RTL):
For x=2
DFF(coreClk,drive_enable_2_before,drive_enable_1_before)
DFF(coreClk,drive_enable_1_before,drive_enable_aligned_with_bus_clk)
DFF(coreClk,drive_enable_aligned_with_bus_clk,sample_enable_1_after_bus_clk)
下面的例子示出了用于基于时钟计数器,为时钟倍频产生驱动使能信号的时序。如前所述,对把信号驱动到总线时钟上存在延迟需求。假设所述延迟需求是(x-1)个核心时钟,那么,在下一个总线时钟的上升沿之前就有(x)个核心时钟。而且,假设时钟倍频为(N),这就导致驱动使能信号在下一个总线时钟的上升沿之前x个核心时钟、后沿之后的(N-x)个时钟处被断言(assert)。相反,假设时钟倍频为(2N),则各时钟到总线时钟前沿的相对距离不变,但是到后沿的距离为(2N-x)。
在一个实施例中,至少部分基于时钟计数器,计算对于一个范围的时钟倍频的驱动使能的固定位置。所述时钟计数器的计算(操作)为:
对于核心时钟的每个上升沿,计数器=if(reset){init_constant}
else if(!counter){reload_constant}
else{counter-1}
当计数器=0时,drive_enable=1
上述时钟计数器的操作描述了基于判断的为计数器指定不同的值的嵌套循环。例如,如果reset的值是逻辑1,那么计数器会被设为与init_constant相同的值。否则,如果计数器的值是逻辑0,那么计数器将被设为与reload_constant相同的值。如果计数器的值不等于逻辑0,那么计数器的值被减去1。
最后,如果计数器的值是0,那么drive_enable被设为逻辑1。
下面对上述变量进行进一步解释,在一个实施例中,变量init_constant为特定的时钟倍频定义了初始偏移。例如,当时钟倍频为10时,超前总线时钟2个核心时钟周期为真(有效)的驱动使能信号的init_constant值将是8;类似地,当时钟倍频为14时,超前总线时钟2个核心时钟周期为真(有效)的驱动使能信号的init_constant值将是12。在同一个实施例中,reload_constant的值等于时钟倍频。
为了支持功率节流,需要改变时钟倍频值。因此,需要为不同的时钟倍频值产生驱动使能信号。而且,init_constant和reload_constant必须反映新的时钟倍频值。因此,在计数器重启前,变量init_constant和reload_constant针对于新的时钟倍频值而被重新初始化。例如,在一个实施例中,当希望在下一个总线时钟周期进行频率切换时,产生对应于新时钟倍频值的驱动使能。因此,通过像下面这样改变前面的计数器算法来重新初始化变量init_constant和reload_constant:
对于核心时钟的每个上升沿,计数器=if(reset){init_constant}
else if(!counter&&switch_freq_next_bus_clock){reload_constant_new}
else if(!counter){reload_constant}
else{counter-1}
当计数器=0时,drive_enable=1
上述时钟计数器的操作描述了基于判断的为计数器指定不同的值的嵌套循环。例如,如果reset的值是逻辑1,那么计数器会被设为与init_constant相同的值。否则,如果计数器的非和switch_freq_next_bus_clock的布尔函数(&&是逻辑与)的值是逻辑1,那么计数器将被设为与reload_constant_new相同的值(以反映新的时钟倍频值)。否则,如果该布尔函数是逻辑0而且计数器的值是逻辑0,那么计数器的值被设为reload_constant。否则,计数器的值被减去1。
最后,如果计数器的值是0,那么drive_enable被设为逻辑1。
图1描述了时钟倍频从2N减小到N后的功率节流的例子。驱动使能(DriveEn1)被用于时钟倍频为2N的情况,相反地,驱动使能(DriveEn2)被用于时钟倍频为N的情况。DriveEn1与总线时钟Q1相距(x)个核心时钟。假设频率切换在总线时钟Q1的上升沿出现,DriveEn2与总线时钟Q1的上升沿相距(N-x)个核心时钟周期。当DriveEn1产生时,计数器被加载下一个驱动使能(DriveEn2)产生前的核心时钟的数量。在一个实施例中,该核心时钟的数量是2N。但是,由于频率切换,该数量将是(x+N-x),即N。因此,不论该数量是多少,当在下一个总线时钟周期存在频率切换时,计数器都被加载新的倍频值。
所要求的主题并不限于前面的将时钟倍频从2N减小到N的功率节流的例子。相反,所要求的主题支持提高时钟倍频。类似地,所要求的主题支持时钟倍频的不同值。
图2的时序图根据所要求的主题,图示了产生选通驱动/采样使能信号的实施例。在一个实施例中,选通信号以总线时钟频率的两倍运行,并被用于锁存总线数据信号。例如,总线数据信号可以是前端总线(FSB)数据信号。在同一个实施例中,在总线时钟工作周期的25%和75%处产生选通信号(如总线时钟时序上对应于两个驱动使能信号的25%和75%处的垂线所示)。如前面结合图1所描述的那样,驱动使能(DriveEn1)对应于时钟倍频2N,相反,驱动使能(DriveEn2)对应于时钟倍频N。在75%选通之前x个核心时钟周期产生DriveEn1,而下一个选通产生于下一个倍频为N的总线周期的25%处(如半圆弧标记202所示)。因此,这两个选通之间的距离是:(.25)乘以(2N)(在时钟倍频为2N的DriveEn1期间)+.25N(在时钟倍频为N的DriveEn2期间)。另外,在一个实施例中,重置常数公式为:
reload_constant_new_for_strobes=.25(times)(current multiplier)+
.25(times)(next_multiplier)。
但是,所要求的主题并不限于在总线时钟的工作周期的25%和75%处的选通值。通过改变选通设置并改变重加载常数公式以反映不同选通值,所要求的主题支持选通值的任意组合。
图3的方框图示出了被实施例使用的总线比率和控制信号的产生流水线。所述方框图至少部分基于希望的总线比率和计数器,促成了控制信号的产生。因此,所述方框图支持任意范围的总线比率,以及从第一总线比率切换到另一总线比率。
所述方框图包括在先计数器、PLL控制逻辑和多个流水段。PLL控制逻辑接收来自在先计数器的输出端的计数。
在先计数器接收来自控制逻辑的输出端的计数器控制信号。用于当前总线比率的在先计数器被保持为充分领先于PLL比率计数器。在先计数器用于对第一(最先)流水段中的核心时钟进行计数。例如,在先计数器从0计数到(比总线比率小1)。所述计数器在达到(总线比率-1)后的下一个时钟重置为0。于是,通过将来自在先计数器的计数值和从总线比率中得到的多个计数值进行比较,并将匹配状况沿着流水线推进到合适的流水段上,从而产生来自PLL控制逻辑的控制信号。
在一个实施例中,流水线中的段数至少部分基于需要产生的最先控制信号。例如,如果总线比率需要从7切换到28,那么在总线时钟边沿之前9个核心时钟处产生最先控制信号。因此,使用10段流水线,其中各段被描述为9b、8b、……直到0b。在本实施例中,最先流水段被描述为9b。如前所述,在先计数器对最先流水段中的核心时钟进行计数,在本例中,最先流水段为9b。因此,如果总线比率为7,则在先计数器从0计到6然后返回到0。
通过将在先计数器的值与根据总线比率计算得到的值进行比较,得到总线相关信号。例如,如果在50%总线时钟处需要选通,那么在先计数器的值就与总线比率的50%(即进行算术右移操作)进行比较。类似地,算术位移处理奇数和偶数总线比率。因此,所要求的主题支持奇数和偶数总线比率。回去看总线比率为7的例子,将在先计数器的值与段9b(比总线时钟早9个核心时钟)中的3(因为这是数学右移操作7>>1的结果)进行比较。因此,在总线时钟的50%之前9个核心时钟处,在先计数器的值刚好等于3,并且9b信号(在总线时钟之前9个时钟处的信号)被逐段推进的时钟数量等于为在总线时钟的50%之前或之后任意数量的时钟处产生信号所需的时钟数量。
当接收到从第一总线比率变为第二总线比率(频率改变)的请求时,在先计数器的值被重置为0。因此,当产生频率切换时,在先计数器的值就切换到新的计数值。例如,当如果禁用时钟盗齿(clock toothstealing),那么在先计数器的值达到比总线比率小1时,以及当如果时钟盗齿被使能,那么在先计数器的值到达比总线比率小2时,在最先流水段中也产生切换信号。如果产生切换信号,则在先计数器的值在下一个时钟处重置为0,并开始到切换后的总线比率(第二总线比率)的计数。在上面的例子中,当在允许时钟盗齿的情况下从7切换到28时,在计数器到达5(比正常的0到6计数小1)时产生切换信号。在下一个时钟处,计数器重置为0,并对于总线比率28开始0到27的计数。当改变总线比率时,在两个PLL之间复用并切换。PLL切换的结果是,在PLL的切换之后的第一个时钟周期中出现轻微的延迟。例如,第一个时钟周期可能在任何位置延迟至少几皮秒。相反,时钟盗齿允许延长第一个时钟以补偿该延迟。例如,第一时钟周期可以比正常的单个时钟周期长,而比两个正常的时钟周期短。如前所述,所要求的主题支持在允许或禁用时钟盗齿情况下产生控制信号。
在一个实施例中,通过将切换信号逐段传递直到其到达总线时钟边沿(我们的例子中为9个时钟),把切换信号传播到PLL控制逻辑。在总线时钟边沿,核心时钟被从当前总线比率切换到所请求的总线比率。在先计数器类似地可以在切换之前任意数量的总线时钟处产生控制信号。
在一个实施例中,所述方框图可以在软件中实现。例如,所述软件可以被存储在电可访问介质中,包括提供(即存储和/或传输)可被电子设备(例如计算机、个人数字助理、移动电话)读取的形式的内容(例如计算机可执行指令)的任何机制。例如,机器可访问介质包括只读存储器(ROM)、随机访问存储器(RAM)、磁盘存储介质、光存储介质、闪存设备以及电的、光的、声的或其它形式的传播信号(例如载波、红外信号、数字信号)。
类似地,可以使用RTL代码来实现前述功能。RTL代码是一种有利于硬件功能合成并对最终产品不透明的构建模块。
例如,可以如下编写所述软件。注意插入的注释是为了清楚地说明变量值和每段代码的功能。类似地,每段注释都开始于行首的首字符“!”。
!=================================================
!建立两个总线比率模型ratio0和ratiol。
!ratio代表当前总线比率。current选择比率。
ratio:=CASE current OF BEGIN
[‘1]ratio1;
[‘0]ratio0;
END;
!cclk是核心时钟,bclk是总线时钟。
!bck具有总线时钟频率,并在一个脉冲期间为高。
vDFF(cclk,bclk,bclkdel);
bck:=bclk AND NOT bclkdel;
!ratio0/1在总线重置时被初始化为pocratio。
!从总线获取pocratio(Power On Clear比率)。
vEDFF(qclkebl,fsbresetinc00h,pocratio,ratio0);
vEDFF(qclkeb1,fsbresetinc00h,pocratio,ratio1);
!=================================================
!pocratio被初始化为从总线获得的比率,除非pocratio低于
!或高于所支持的范围(此时其被初始化为默认比率)。
pocratio:=CASE(EblQValCOOB[4:0])OF BEGIN
[‘000一] $cvn(8);
[‘0010_] $cvn(8);
[‘11111] $cvn(8);
[] EblQValCOOB;
END;
!ratio24代表ratio的第2/4(即一半)部分。
!lastcount是计数器在重置为0前所计的最后一个值。
!syncount是当总线被重置时,用来将计数器与总线在各种总线比率
!下同步的值。
!countl是count加1,用于增加计数器。
!request是总线比率请求。1表明请求使用ratio1,
!而0表明请求使用ratio0。
ratio24:=0 & ratio[4:1];
lastcount:=ratio-‘00001;
synccount:=CASE ratio OF BEGIN
[‘00110]‘00100;
[‘00111]‘00011;
[‘01000]‘00010;
[‘01001]‘00001;
[‘01010]‘00000;
[] ‘01010;
END;
count1:=count+‘00001;
vEDFF(cclk,fsbresetinc00h,‘0,request);
!sync是同步选通,其将计数器初始化,以对应于所有总线比率用
!正确的count即synccount来初始化计数器。
!switchnext表明在先计数器将在下一个时钟处切换总线比率。
!这发生在当被请求的比率与当前比率不同,且增加后的
!count等于lastcount时。
!resetnext表明在先计数器将在下一个时钟处重置为0。这发生
!在当增加后的count等于(当前)比率时。
sync:=fsbresetinc00h AND bck;
switchnext:=(request XOR current)AND vBAND(count1 XNOR lastcount);
resetnext:=vBAND(count1 XNOR ratio);
!状态机产生对应于各个sync、switchnext和resetnext值的current
!和count的下一个值。
!当sync是1时,即当重置时,current保持不变,count(即计
!数器)得到合适的synccount。
!当switchnext是1时,即,需要在下一个时钟处切换比率,
!request被指定给下一个current,即被请求的比率被指定给下一个当
!前比率;并且下一个count被重置为0。
!当resetnext是1时;即,计数器已经达到对应于当前比率的
!lastcount,需要被重置;当前比率保持不变,count被重置为0。
!在所有其它情况下,当前比率保持不变,计数器计数增加。
nextcurrent & nextcount:=CASE sync & switchnext & resetnext OF BEGIN
[‘1_] current & synccount;
[‘01_] request & ‘00000;
[‘001] current & ‘00000;
[] current & count1;
END;
!count、switch和current的下一个值被触发;即下一个状态被指定给
!当前状态。
vRSDFF(cclk,‘0,nextcount,count);
vRSDFF(cclk,‘0,switchnext,switch);
vRSDFF(cclk,‘0,nextcurrent,current);
!switch9b是实际比率切换前9个时钟处的切换信号(b代表“之
!前”)。
!current9b是所述切换前9个时钟处的current值。
!ssdrive9b是总线时钟的50%前9个时钟处的控制信号。它在整个
!比率切换期间起作用。
switch9b:=switch;
current9b:=current;
ssdrive9b:=vBNOR(count)OR vBAND(count XNOR ratio24);
!switch信号从切换前9个时钟到切换前0个时钟的逐段推进。
vRSDFF(cclk,fsbresetinc00h,switch9b,switch8b);
vRSDFF(cclk,fsbresetinc00h,switch8b,switch7b);
vRSDFF(cclk,fsbresetinc00h,switch7b,switch6b);
vRSDFF(cclk,fsbresetinc00h,switch6b,switch5b);
vRSDFF(cclk,fsbresetinc00h,switch5b,switch4b);
vRSDFF(cclk,fsbresetinc00h,switch4b,switch3b);
vRSDFF(cclk,fsbresetinc00h,switch3b,switch2b);
vRSDFF(cclk,fsbresetinc00h,switch2b,switch1b);
vRSDFF(cclk,fsbresetinc00h,switch1b,switch0b);
!current信号从切换前9个时钟到切换前0个时钟的逐段推进。
vRSDFF(cclk,fsbresetinc00h,current9b,current8b);
vRSDFF(cclk,fsbresetinc00h,current8b,current7b);
vRSDFF(cclk,fsbresetinc00h,current7b,current6b);
vRSDFF(cclk,fsbresetinc00h,current6b,current5b);
vRSDFF(cclk,fsbresetinc00h,current5b,current4b);
vRSDFF(cclk,fsbresetinc00h,current4b,current3b);
vRSDFF(cclk,fsbresetinc00h,current3b,current2b);
vRSDFF(cclk,fsbresetinc00h,current2b,current1b);
vRSDFF(clke,fsbresetinc00h,current1b,current0b);
!ssdrive信号从切换前9个时钟到切换前0个时钟的逐段推进。
vRSDFF(cclk,fsbresetinc00h,ssdrive9b,ssdrive8b);
vRSDFF(cclk,fsbresetinc00h,ssdrive8b,ssdrive7b);
vRSDFF(cclk,fsbresetinc00h,ssdrive7b,ssdrive6b);
vRSDFF(cclk,fsbresetinc00h,ssdrive6b,ssdrive5b);
vRSDFF(cclk,fsbresetinc00h,ssdrive5b,ssdrive4b);
vRSDFF(cclk,fsbresetinc00h,ssdrive4b,ssdrive3b);
vRSDFF(cclk,fsbresetinc00h,ssdrive3b,ssdrive2b);
vRSDFF(cclk,fsbresetinc00h,ssdrive2b,ssdrive1b);
vRSDFF(cclk,fsbresetinc00h,ssdrive1b,ssdrive0b);
图4的系统简图示出了可以应用图1或图2或图3的实施例,或它们的任意组合的系统。多处理器系统将代表具有多个处理器的多种系统(例如计算机系统、实时监控系统等)。可替换的处理器系统可以包括更多、更少和/或不同的部件。在某些情况下,这里描述的控制信号的产生可以被应用于单处理器和多处理器系统。
系统总线是到处理器、存储器和I/O的多处理接口。多达四个(代理3到0)处理器可以在系统总线上无缝互连。在一个实施例中,这些代理是总线主控。高速I/O接口和存储器接口模块代表了到系统其它部分的接口。总线代理发射传输数据和系统信息的事务。每个事务具有若干阶段,可以包括仲裁阶段、请求阶段、监听(snoop)阶段、响应阶段和数据阶段。
图5是一个实施例使用的仿真。本领域的技术人员理解,仿真的输出描述了前面讨论的在允许时钟盗齿的情况下,将总线比率从7切换到28再回到7的例子。因此,该仿真表明了所要求的主题的一个工作示例。
对本仿真的更详细的信息是,建立了基于ratio0和ratio1产生clk0和clk1的两个PLL的模型。为了说明逻辑是如何工作的,可以将ratio0和ratio1设为7、14或28。在本仿真中,ratio0和clk0为7,ratio1和clk1为28。当前核心时钟为cclk。当前总线时钟为bclk。bck在bclk的整个第一cclk中是活动的。request信号提出对比率的请求,current信号表明当前比率。当request与current不同的时候,开始频率切换。request可以在任何时候被反转。request信号和current信号超前总线时钟9个时钟。current9b信号、ssdrive9b信号和switch9b信号超前bclk9个时钟。它们被逐段推进以产生信号8b、7b,直到0b。current是当前总线比率,ssdrive是源同步驱动信号,switch表明频率切换。所述信号可以被继续逐段推进以产生bclk之后n个时钟的信号。
虽然所要求的主题是参照具体实施例描述的,但是本描述并不应当被理解为限制性的。参照对所要求的主题的说明,所公开的实施例的各种修改以及所要求的主题的可替换实施例对于本领域的技术人员来说将是显而易见的。因此,可以不偏离在所附权利要求中定义的所要求的主题的精神或范围来进行此类修改。
Claims (17)
1.一种用于在从第一总线比率切换到第二总线比率时产生总线控制信号的方法,包括:
在所述第一总线比率的总线时钟边沿之前x个核心时钟处产生所述总线控制信号;
沿具有x+1个流水段的流水线逐段推进,其中第一流水段在所述第一总线比率的总线时钟边沿之前x个核心时钟处,最末流水段在所述第一总线比率的总线时钟边沿之前0个核心时钟处;
将计数器从0增加到比所述第一总线比率小1;
将所述计数器与根据所述第一总线比率计算得到的值进行比较;以及
从所述第一总线比率切换到所述第二总线比率。
2.如权利要求1所述的方法,其中至少部分基于就所述第一总线比率的总线时钟的百分比来说何时需要选通,来根据所述第一总线比率计算所述值。
3.如权利要求2所述的方法,其中通过对所述第一总线比率执行算术右移操作来计算所述值。
4.如权利要求1所述的方法,还包括:
将所述信号从所述第一流水段逐段推进若干个时钟数,所述时钟数等于为在所述第一总线比率的总线时钟的预定百分比之前或之后任意数量的时钟处产生信号所需的时钟数。
5.如权利要求4所述的方法,其中至少部分基于所述第一总线比率的总线时钟的所述预定百分比,来根据所述第一总线比率计算所述值,所述预定百分比是就所述第一总线比率的总线时钟的百分比来说何时需要选通。
6.如权利要求5所述的方法,其中通过对所述第一总线比率执行算术右移操作来计算所述值。
7.如权利要求1所述的方法,其中当接收到从所述第一总线比率变为所述第二总线比率的请求时,所述计数器重置为0。
8.如权利要求1所述的方法,还包括:
在接收到从所述第一总线比率变为所述第二总线比率的请求时,将所述计数器重置为不同的值,以反映所述第二总线比率。
9.如权利要求8所述的方法,其中至少部分基于就所述第一总线比率的总线时钟的百分比来说何时需要选通,来根据所述第一总线比率计算所述值。
10.如权利要求9所述的方法,其中通过对所述第一总线比率执行算术右移操作来计算所述值。
11.如权利要求8所述的方法,其中当所述计数器的值达到比所述第一总线比率小1的值时,在所述第一流水段产生对从所述第一总线比率改变到所述第二总线比率的请求。
12.一种用于产生总线控制信号的系统,包括:
用于在第一总线比率的总线时钟边沿之前x个核心时钟处产生所述总线控制信号的装置;
用于沿具有x+1个流水段的流水线逐段推进的装置,其中第一流水段在所述第一总线比率的总线时钟边沿之前x个核心时钟处,最末流水段在所述第一总线比率的总线时钟边沿之前0个核心时钟处;
用于将计数器从0增加到比所述第一总线比率小1的装置;以及
用于将所述计数器与根据所述第一总线比率计算得到的值进行比较的装置。
13.如权利要求12所述的系统,其中至少部分基于就所述第一总线比率的总线时钟的百分比来说何时需要选通,来根据所述第一总线比率计算所述值。
14.一种用于在从第一总线比率切换到第二总线比率时产生总线控制信号的方法,包括:
在所述第一总线比率的总线时钟边沿之前x个核心时钟处产生所述总线控制信号;
沿具有x+1个流水段的流水线逐段推进,其中第一流水段在所述第一总线比率的总线时钟边沿之前x个核心时钟处,最末流水段在所述第一总线比率的总线时钟边沿之后x+n个核心时钟处;
将计数器从0增加到比所述第一总线比率小1;
将所述计数器与根据所述第一总线比率计算得到的值进行比较;以及
从所述第一总线比率切换到所述第二总线比率。
15.如权利要求14所述的方法,其中至少部分基于就所述第一总线比率的总线时钟的百分比来说何时需要选通,来根据所述第一总线比率计算所述值。
16.如权利要求14所述的方法,还包括:
在将所述计数器与根据所述第一总线比率计算得到的值进行比较之前,使能时钟盗齿。
17.如权利要求16所述的方法,其中至少部分基于就所述第一总线比率的总线时钟的百分比来说何时需要选通,来根据所述第一总线比率计算所述值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/794,735 | 2004-03-03 | ||
US10/794,735 US7272736B2 (en) | 2004-03-03 | 2004-03-03 | Method and system for fast frequency switch for a power throttle in an integrated device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1664753A CN1664753A (zh) | 2005-09-07 |
CN100483303C true CN100483303C (zh) | 2009-04-29 |
Family
ID=34912337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100916457A Expired - Fee Related CN100483303C (zh) | 2004-03-03 | 2004-11-24 | 用于集成设备中功率节流的快速频率切换的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (4) | US7272736B2 (zh) |
CN (1) | CN100483303C (zh) |
DE (1) | DE102005009086B4 (zh) |
TW (1) | TWI314262B (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7272736B2 (en) * | 2004-03-03 | 2007-09-18 | Intel Corporation | Method and system for fast frequency switch for a power throttle in an integrated device |
US7793291B2 (en) * | 2004-12-22 | 2010-09-07 | International Business Machines Corporation | Thermal management of a multi-processor computer system |
KR101150989B1 (ko) * | 2007-08-07 | 2012-05-30 | 삼성전자주식회사 | 화상처리장치 및 그 제어방법 |
US7941687B2 (en) * | 2007-12-13 | 2011-05-10 | Digi International Inc. | Method and apparatus for digital I/O expander chip with multi-function timer cells |
US8688926B2 (en) | 2010-10-10 | 2014-04-01 | Liqid Inc. | Systems and methods for optimizing data storage among a plurality of solid state memory subsystems |
US8914650B2 (en) | 2011-09-28 | 2014-12-16 | Intel Corporation | Dynamically adjusting power of non-core processor circuitry including buffer circuitry |
US8929373B2 (en) | 2011-09-29 | 2015-01-06 | Intel Corporation | Sending packets with expanded headers |
US8874976B2 (en) | 2011-09-29 | 2014-10-28 | Intel Corporation | Providing error handling support to legacy devices |
US8711875B2 (en) | 2011-09-29 | 2014-04-29 | Intel Corporation | Aggregating completion messages in a sideband interface |
CN103064461B (zh) * | 2012-12-31 | 2016-03-09 | 华为技术有限公司 | 一种时钟使能信号的产生方法及装置 |
US10467166B2 (en) | 2014-04-25 | 2019-11-05 | Liqid Inc. | Stacked-device peripheral storage card |
US10114784B2 (en) | 2014-04-25 | 2018-10-30 | Liqid Inc. | Statistical power handling in a scalable storage system |
US9798636B2 (en) | 2014-06-23 | 2017-10-24 | Liqid Inc. | Front end traffic handling in modular switched fabric based data storage systems |
US9653124B2 (en) | 2014-09-04 | 2017-05-16 | Liqid Inc. | Dual-sided rackmount storage assembly |
US10362107B2 (en) | 2014-09-04 | 2019-07-23 | Liqid Inc. | Synchronization of storage transactions in clustered storage systems |
US10198183B2 (en) | 2015-02-06 | 2019-02-05 | Liqid Inc. | Tunneling of storage operations between storage nodes |
US10191691B2 (en) | 2015-04-28 | 2019-01-29 | Liqid Inc. | Front-end quality of service differentiation in storage system operations |
US10108422B2 (en) | 2015-04-28 | 2018-10-23 | Liqid Inc. | Multi-thread network stack buffering of data frames |
US10019388B2 (en) | 2015-04-28 | 2018-07-10 | Liqid Inc. | Enhanced initialization for data storage assemblies |
US10255215B2 (en) | 2016-01-29 | 2019-04-09 | Liqid Inc. | Enhanced PCIe storage device form factors |
EP3469486B1 (en) | 2016-06-10 | 2021-07-21 | Liqid Inc. | Multi-port interposer architectures in data storage systems |
US11294839B2 (en) | 2016-08-12 | 2022-04-05 | Liqid Inc. | Emulated telemetry interfaces for fabric-coupled computing units |
US11880326B2 (en) | 2016-08-12 | 2024-01-23 | Liqid Inc. | Emulated telemetry interfaces for computing units |
CN109844722B (zh) | 2016-08-12 | 2022-09-27 | 利奇得公司 | 分解式结构交换计算平台 |
WO2018200761A1 (en) | 2017-04-27 | 2018-11-01 | Liqid Inc. | Pcie fabric connectivity expansion card |
US10180924B2 (en) | 2017-05-08 | 2019-01-15 | Liqid Inc. | Peer-to-peer communication for graphics processing units |
US10660228B2 (en) | 2018-08-03 | 2020-05-19 | Liqid Inc. | Peripheral storage card with offset slot alignment |
US10585827B1 (en) | 2019-02-05 | 2020-03-10 | Liqid Inc. | PCIe fabric enabled peer-to-peer communications |
US20200344329A1 (en) | 2019-04-25 | 2020-10-29 | Liqid Inc. | Multi-Protocol Communication Fabric Control |
EP3959604A4 (en) | 2019-04-25 | 2023-01-18 | Liqid Inc. | MACHINE TEMPLATES FOR DEDICATED COMPUTING UNITS |
US11442776B2 (en) | 2020-12-11 | 2022-09-13 | Liqid Inc. | Execution job compute unit composition in computing clusters |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5553275A (en) * | 1993-07-13 | 1996-09-03 | Intel Corporation | Method and apparatus for synchronously detecting phase relationships between a high-frequency clock and a low-frequency clock |
US5485602A (en) * | 1993-12-27 | 1996-01-16 | Motorola, Inc. | Integrated circuit having a control signal for identifying coinciding active edges of two clock signals |
SG47976A1 (en) * | 1994-05-10 | 1998-04-17 | Intel Corp | Method and apparatus for providing synchronous data transmission between digital devices operating at frequencies having a p/q integer ratio relationship |
US5787294A (en) * | 1995-10-13 | 1998-07-28 | Vlsi Technology, Inc. | System for reducing the power consumption of a computer system and method therefor |
US6032211A (en) * | 1998-06-17 | 2000-02-29 | Advanced Micro Devices, Inc. | Method of mode control in a bus optimized for personal computer data traffic |
US6266779B1 (en) * | 1998-10-08 | 2001-07-24 | Intel Corporation | Clock enable generation, synchronization, and distribution |
EP1002621B2 (de) * | 1998-11-20 | 2007-04-18 | Mikron SA Agno | Vorrichtung zur Erzeugung einer Relativbewegung |
US6367023B2 (en) * | 1998-12-23 | 2002-04-02 | Intel Corporation | Method and apparatus of measuring current, voltage, or duty cycle of a power supply to manage power consumption in a computer system |
JP2000244309A (ja) * | 1999-02-18 | 2000-09-08 | Mitsubishi Electric Corp | クロック生成回路および半導体装置 |
US6457135B1 (en) * | 1999-08-10 | 2002-09-24 | Intel Corporation | System and method for managing a plurality of processor performance states |
US6636980B1 (en) * | 1999-08-19 | 2003-10-21 | International Business Machines Corporation | System for launching data on a bus by using first clock for alternately selecting data from two data streams and using second clock for launching data thereafter |
US6715023B1 (en) * | 1999-09-23 | 2004-03-30 | Altera Corporation | PCI bus switch architecture |
US6799280B1 (en) * | 2000-01-04 | 2004-09-28 | Advanced Micro Devices, Inc. | System and method for synchronizing data transfer from one domain to another by selecting output data from either a first or second storage device |
US6813721B1 (en) * | 2000-09-20 | 2004-11-02 | Stratus Computer Systems, S.A.R.L. | Methods and apparatus for generating high-frequency clocks deterministically from a low-frequency system reference clock |
KR100369463B1 (ko) * | 2000-12-21 | 2003-01-24 | 엘지전자 주식회사 | 휴대용 컴퓨터에서의 호스트 버스 클럭 가변 제어방법 |
US7194650B2 (en) * | 2003-05-09 | 2007-03-20 | Hewlett-Packard Development Company, L.P. | System and method for synchronizing multiple synchronizer controllers |
US7272736B2 (en) * | 2004-03-03 | 2007-09-18 | Intel Corporation | Method and system for fast frequency switch for a power throttle in an integrated device |
-
2004
- 2004-03-03 US US10/794,735 patent/US7272736B2/en not_active Expired - Fee Related
- 2004-11-24 CN CNB2004100916457A patent/CN100483303C/zh not_active Expired - Fee Related
-
2005
- 2005-02-28 DE DE102005009086A patent/DE102005009086B4/de not_active Expired - Fee Related
- 2005-03-01 TW TW094106127A patent/TWI314262B/zh not_active IP Right Cessation
-
2006
- 2006-09-22 US US11/525,781 patent/US7475269B2/en not_active Expired - Fee Related
- 2006-09-22 US US11/525,780 patent/US7571341B2/en not_active Expired - Fee Related
-
2007
- 2007-08-21 US US11/894,415 patent/US7725757B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20050198544A1 (en) | 2005-09-08 |
US20080034237A1 (en) | 2008-02-07 |
CN1664753A (zh) | 2005-09-07 |
US7571341B2 (en) | 2009-08-04 |
US7272736B2 (en) | 2007-09-18 |
US7475269B2 (en) | 2009-01-06 |
US7725757B2 (en) | 2010-05-25 |
TW200601027A (en) | 2006-01-01 |
DE102005009086B4 (de) | 2010-09-09 |
DE102005009086A1 (de) | 2005-12-22 |
TWI314262B (en) | 2009-09-01 |
US20070016819A1 (en) | 2007-01-18 |
US20070016820A1 (en) | 2007-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100483303C (zh) | 用于集成设备中功率节流的快速频率切换的方法和系统 | |
Muttersbach et al. | Practical design of globally-asynchronous locally-synchronous systems | |
US4758945A (en) | Method for reducing power consumed by a static microprocessor | |
TWI243979B (en) | Method, apparatus, circuit, and system for reducing clock frequency during low workload periods | |
US6209072B1 (en) | Source synchronous interface between master and slave using a deskew latch | |
Yakovlev et al. | Advances in asynchronous logic: From principles to GALS & NoC, recent industry applications, and commercial CAD tools | |
Mullins et al. | Demystifying data-driven and pausible clocking schemes | |
US20020163361A1 (en) | Source synchronous I/O without synchronizers using temporal delay queues | |
US9367286B2 (en) | Crossing pipelined data between circuitry in different clock domains | |
US6989695B2 (en) | Apparatus and method for reducing power consumption by a data synchronizer | |
CN103684375B (zh) | 一种时钟分频切换电路及时钟芯片 | |
CN100576140C (zh) | 产生数字信号处理器和存储器的时钟信号的电路和方法 | |
US5537582A (en) | Bus interface circuitry for synchronizing central processors running at multiple clock frequencies to other computer system circuitry | |
Stepchenkov et al. | Energy efficient speed-independent 64-bit fused multiply-add unit | |
JP3488224B2 (ja) | 遷移信号制御装置とそれを用いたdmaコントローラ及び遷移信号制御プロセッサ | |
CN113791892A (zh) | 数据通路仲裁方法、数据通路仲裁装置及芯片 | |
CN104508748A (zh) | 用于使用延迟锁相回路的记忆体装置的节能设备及方法 | |
EP0649097B1 (en) | An interface between unsynchronised devices | |
TW200303472A (en) | Transferring data between differently clocked busses | |
Dasgupta et al. | Comparative analysis of GALS clocking schemes | |
US7466753B2 (en) | Microcontroller having a digital to frequency converter and/or a pulse frequency modulator | |
Apperson | A dual-clock FIFO for the reliable transfer of high-throughput data between unrelated clock domains | |
Tan et al. | Self-timed precharge latch | |
CN113168205B (zh) | 用于低功率设计的用于基于事务的传输时钟门控的装置 | |
US9658857B2 (en) | Method and apparatus for processor to operate at its natural clock frequency in the system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090429 Termination date: 20131124 |