在上期,我们了解到了,计算机的基准频率来自南桥的时钟发生器,它像来自各拉丹冬雪山脚下的沱沱河那样,经过6400公里的奔流,每年把近10000亿立方米的水送入东海。
在计算机系统中,来自南桥的时钟,经过倍频转换,就生成了DRAM控制器、CPU和GPU的时钟脉冲。那么,倍频转换的原理是什么呢?
进一步地,CPU的睿频特性,能够支持CPU的工作频率动态调整,也就是倍频的倍数是可以自动控制的。这又是如何实现的呢?
原来,这依赖于一个关键部件——数字锁相环。
学习过模拟电路的同学可能会记得,锁相环电路可以在一定范围内跟踪调频或调相信号,其中,如果对压控振荡器VCO产生的频率进行分频,最终输出的频率就是参考频率源的倍频。如参考频率源为100MHz,分频器进行了4次分频,则最终锁相环可以把参考频率源给出的时钟频率提升到原来的4倍,也就是得到400MHz的时钟频率。
数字锁相环就是计算机可编程,通过数字信号控制的锁相环。
图中是某款数字锁相环芯片的框图,S1:0是两位数字信号输入,通过这两位数字信号输入,可以操纵倍频输出,也就是改变CLK频率和ICLK频率的比值。
在CPU中也存在这种数字锁相环。计算机的睿频等操作,实际上就是CPU动态调整数字锁相环的倍频倍数的结果。如Intel Xeon Scalable 5318Y CPU,其基频为2.1GHz,最高睿频可达3.4GHz,这就说明,该CPU内部提供主频时钟的锁相环,其典型工作倍频为21倍,最高可达34倍。
和方老师差不多时代的一批个人计算机玩家可能会回忆起来,早在1996年前后的Intel Pentium时代,是可以对CPU进行超频的。如Pentium MMX 166处理器的外频为66MHz,2.5倍频以后得到166MHz。在某些主板上,通过改变跳线开关的排列组合,可以让主板提供83MHz的主频,倍频上升为3倍,从而让CPU工作在250MHz下。显然,我们在《虚拟化与云计算硬核技术内幕 (2) —— 挑选模特的潜规则》中提到了,这种行为会导致CPU的功耗显著增加,也就需要更好的散热系统排出热量。一旦发生风扇损坏等情况,轻则导致系统死机,重则烧毁CPU。
那么,工作在睿频状态的处理器是如何保证,在处理器额外产生的热量不对系统运行造成危害的时候,就将处理器的频率降回安全范围的呢?
让我们看这张图:
Intel定义睿频技术时,引入了几个概念:PL1,CPU长期工作的功率,也就是所谓的TDP(Thermal Design Power, 散热设计功耗),PL2,CPU短时间能工作的功率,也就是最大功率;Tau,CPU在PL2功耗坚持的时间长度。
当CPU突然变得很忙(任务压过来了)的时候,在睿频2.0机制驱动下,CPU内部的PLL会提升倍频数,驱使CPU高速运转,其功耗达到PL2后倍频停止提升,在Tau的时间窗口耗尽后,降低频率,使得CPU的功率一直维持在PL1,直到这个运算任务完成,再将CPU频率降低到基准频率。
细心的读者会发现,PL1和PL2是相对固定的,而不是动态调整的。事实上,PL1和PL2是可以通过BIOS修改的。那么,如果有人将PL1和PL2设置得过高,或者系统实际的散热能力低于PL1和PL2的值,会不会让CPU中积聚的热量烧毁CPU呢?
Intel等CPU厂商早已想到了这个问题。
Intel在2008年以后就引入了自适应温度监控ATM (Ataptive Thermal Monitor)功能,为CPU设定了一个最大结温(Maximum Junction Temperature, TjMAX),(“结”为半导体PN结,不理解的读者请自行补习《模拟电子技术基础》)。当CPU工作温度超过这个最大结温的时候,CPU内部的硬件电路会自动把PROCHOT信号线拉起。此时,CPU电压控制模块会降低CPU的工作电压,同时,CPU的工作频率也会同时下降,让CPU休息一会。这种机制俗称“温度墙”,CPU的工作温度撞上“温度墙”时,触发CPU降频操作,这就是笔记本电脑或年久失修的台式机,散热不良会导致卡顿的原因所在。
在最坏的情况下,主板检测到系统温度到达“灾难性温度”,会让CPU电源管理器强制关断CPU电源。用户会看见计算机自动强制关机,只有在系统温度下降以后,才能再开机上电。
有了这样的双保险,CPU就可以保证不会在过高的温度下升起一缕青烟了。
给个Tips:GPU也有类似的这种温度保护机制,因此,社会上流传的“用于特殊用途的GPU体质会受损”的说法,其准确与否,大家是可以自己判断的。