1、 电脑中有许许多多的半导体芯 片,每个芯片都是在特定的时钟频率下进行工作的。时钟发生器提供给芯片的时钟信号是一个连续的脉冲信号,而脉冲就相当于芯片的脉搏,每一次脉冲到来,芯片内的晶体管就改变一次状态,让整个芯片完成一定任务。电脑中的芯片绝大多数属于数字逻辑芯片,数字芯片中众多的晶体管全都工作在开关状态,它们的导通和关断动作无不是按照时钟信号的节奏进行的。如果时钟频率过高,就可能出现晶体管的状态来不及变化的情况,产生死锁或随机性误操作。所以,每一款芯片都有自己的频率极限。一 频率是什么?频率用 f 表示,基本单位为“1 次秒”,记做 Hz(赫兹)。 1Hz 就是每秒一次,10Hz 是每秒 10
2、次(图 1)。不过,Hz这个单位在电脑里面太小了,因此通常以 KHz、MHz 或 GHz 来表示信号频率。随着频率的攀升,若干年以后恐怕需要使用 THz 作为频率的单位了(表 1)。图 1: 脉冲波头越多则频率越高表 1: 频率表示法频率单位 kHz MHz GHz THz换算关系 1103Hz 1106Hz 1109Hz 11012Hz英文名称 Kilo Hz Mega Hz Giga Hz Tera Hz中文名称 千赫兹 兆赫兹 吉赫兹 太赫兹1. 周期与频率在电脑技术中,与频率相对应的一个常用术语是周期。周期是频率的倒数,频率越高,周期越短。譬如时钟频率为 1GHz 时,其时钟周期为 1
3、 纳秒(表 2)。表 2:频率与周期对照表时钟频率 时钟周期 时钟频率 时钟周期5MHz 200ns 133MHz 7.5ns10MHz 100ns 166MHz 6.0ns20MHz 50ns 200MHz 5.0ns25MHz 40ns 250MHz 4.0ns33MHz 30ns 300MHz 3.3ns40MHz 25ns 333MHz 3.0ns50MHz 20ns 400MHz 2.5ns66MHz 15ns 500MHz 2.0ns80MHz 12ns 800MHz 1.2ns100MHz 10ns 1GHz 1.0ns120MHz 8.3ns 4GHz 0.25ns2.带宽与频
4、率 与频率相关的另一个参数是数据传输率,也称为“带宽”,用于衡量数据通信速度的快慢。通常情况下,带宽时钟频率(位宽8)。譬如 PCI 总线的时钟频率为 33.33MH z,因其位宽为 32bit,所以其带宽为 33.33(328)133MB/s。3. CPU 的频率在 286 及以前的电脑中,CPU 的频率与外部总线的频率相同。Intel 386 电脑中采用了时钟分频方式,时钟电路提供给 CPU 的时钟信号的频率 66MHz,而 CPU 内部则以 33MHz 的频率工作。Intel 80486 DX2 则采用倍频方式,它允许 CPU 以 2 倍或 3 倍于外部总线的速度运行,但仍以原有时钟频率
5、与外界通讯。进入 Pentium 时代以后,倍频技术获得广泛应用,目前处理器的倍频已达 20 倍。系统时钟频率:通常也称作“外频”CPU 外部总线的时钟频率。外频由频率合成器芯片提供,后文将对频率合成器芯片进行详细介绍。主频:主频是 CPU 内核(整数和浮点运算器) 电路的实际运行频率,由外频(或前端总线频率) 与倍率共同决定,也即:主频外频倍率。前端总线频率:前端总线(Front Side Bus,FSB)频率是 CPU 和北桥芯片间进行数据交换的频率,它与外频既有联系,又有区别。外频是前端总线时钟信号的频率,而前端总线频率是指数据传输的频率。对于 Pentium 4 处理器来说,由于采用了
6、 QDR(Quad Data Rate,4 倍数据比率)技术,1 个时钟周期内可以传输 4 次数据,所以前端总线频率相当于外频的 4 倍:FSB 800MHz 的处理器,外频只有 200MHz。二、谁在产生频率?我们可以将作为频率源的时钟信号发生器看作电脑的心脏。只有心脏跳动起来,电脑才能工作。1.振荡源:晶体振荡器芯片本身通常并不具备时钟信号源,因此须由专门的时钟电路提供时钟信号,石英晶体振荡器(Quartz Crystal OSC)就是一种最常用的时钟信号振荡源。石英晶体就是纯净的二氧化硅 ,是二氧化硅的单晶体,即我们常说的水晶。石英晶体有天然(Crude) 晶体和人工合成(synthet
7、ic)晶体两种。天然石英晶体的杂质含量和形态等大多并不统一,因此电子线路中的晶体振荡器多使用人造石英晶体。从一块晶体上按一定的方位角切下薄片(称为“晶片”),在晶片的两个表面上涂覆一层薄薄的银层后接上一对金属板,焊接引脚,并用金属外壳封装,就构成了石英晶体振荡器(图 2)。石英晶片之所以能当为振荡器使用,是基于它的压电效应:在晶片的两个极上加一电场,会使晶体产生机械变形;在石英晶片上加上交变电压,晶体就会产生机械振动,同时机械变形振动又会产生交变电场,虽 然这种交变电场的电压极其微弱,但其振动频率是十分稳定的。当外加交变电压的频率与晶片的固有频率(由晶片的尺寸和形状决定)相等时,机械振动的幅度
8、将急剧增加,这种现象称为“压电谐振” 。压电谐振状态的建立和维持都必须借助于振荡器电路才能实现。图 3 是一个串联型振荡器,晶体管 T1 和 T2 构成的两级放大器,石英晶体 XT 与电容 C2 构成 LC 电路。在这个电路中,石英晶体相当于一个电感,C2 为可变电容器,调节其容量即可使电路进入谐振状态。该振荡器供电电压为 5V,输出波形为方波。图 3:有源晶体振荡器小知识:有源晶振与无源晶振在电子学上,通常将含有晶体管元件的电路称作“有源电路”(如有源音箱、有源滤波器等),而仅由阻容元件组成的电路称作“无源电路”。电脑中的晶体振荡器也分为无源晶振和有源晶振两种类型。无源晶振与有源晶振的英文名
9、称不同,无源晶振为 crystal(晶体),而有源晶振则叫做 oscillator(振荡器)。无源晶振是有 2 个引脚的无极性元件,需要借助于时钟电路才能产生振荡信号,自身无法振荡起来,所以“无源晶振”这个说法并不准确;有源晶振有 4 只引脚,是一个完整的振荡器,其中除了石英晶体外,还有晶体管和阻容元件,因此体积较大。图 4:石英晶体振荡器的频率稳定度可达 10-9/日,甚至 10-11。例如 10MHz 的振荡器,频率在一日之内的变化一般不大于 0.1Hz。因此,完全可以将晶体振荡器视为恒定的基准频率源(石英表、电子表中都是利用石英晶体来做计时的基准频率) 。从 PC 诞生至现在,主板上一直
10、都使用一颗 14.318MHz 的石英晶体振荡器作为基准频率源。至于始终沿用 14.318MHz 这个频率的原因,或许是保持兼容性的需要吧。但是,笔者在显卡、闪存盘和手机中也发现了 14.318MHz 的晶振,就不知道是什么原因了。主板上除了这颗 14.318MHz 的晶振,还能找到一颗频率为 32.768MHz 的晶振,它被用于实时时钟(RTC)电路中,显示精确的时间和日期。2.分频器与倍频器将脉冲频率降低 n 倍,这就是分频器的作用。在第一代 PC 机中,石英晶体振荡器输出的频率为 14.318MHz,而 Intel 8086 处理器的主频为 4.77MHz,后者刚好是前者的 1/3。变换
11、频率的工作是在 Intel 8284(时钟发生器/驱动器)中完成的,因为 Intel 8284 酒 屑 闪巳制档缏罚 芄唤 逭竦雌鞑 穆龀逍藕沤档?倍后,提供给 CPU 和外设(图 5)。图 5: 第一代 PC 的时钟电路随着 CPU 主频的提高,需要将晶体振荡器提高若干倍才能满足 CPU 的需要,于是在时钟电路中倍频器取代了分频器的位置。如果说分频器进行的是除法运算,倍频器则进行了乘法运算,它将晶体振荡器的频率提高 n 倍。三、时钟芯片:可编程的频率合成器整合的时钟缏罚 怯布 际踅 降囊桓霰曛尽缒灾械牟煌 璞付允敝悠德实囊 笫遣灰谎 模 绻 愦臃衔锵渲姓依匆豢?86 主板,可以看到有好几颗晶
12、振排 列在一起。电脑中的 CPU,AGP 插槽、PCI 插槽、硬盘接口、USB 端口和 PS/2 端口等在通信速度上有很大差异,所以需要提供不同的时钟频率,譬如 PCI 要求 33MHz、USB 为 48MHz 等(图 6)。可是,一只石英振荡器只能提供一种频率,所以主板制造商通常将这些原本散布在主机板上各处的振荡电路整合成一颗“频率合成器(Frequency Synthesizer)”芯片,对晶体振荡器产生的脉冲信号进行分频(或倍频),以便为不同运行速度的芯片(或设备 )提供所需要的时钟频率。图 6: i875P 主板上各种设备的速度普通分频器为整数分频器,其输出频率与输入频率之间为整数倍的
13、关系,只能分段调节频率,不能满足精密调节的要求。频率合成器是“分数分频器” ,可对输出频率进行精细调节。研发工程师可自由地设计电路中的各种频率,不再受限于石英震荡晶体的固定频率规格。目前电脑中的时钟芯片一般都具有“分数分频” 能力,可以根据需要将调节步长设计到 1,甚至 0.1。为了指导和规范频率合成器的设计和应用,Intel 制定了频率合成器设计指南,如 CK97、CK40X 等,适用于最新 Pentium 4 处理器的规范是 CK410。1.频率调节原理频率合成器是一个具有频率负反馈的时钟信号系统(图 7),其中使用了两个分频器,Mdiv 用于降低基准频率,Ndiv 则用于对 VCO 进行
14、分频。晶体振荡器(OSC)产生的频率 fi 经 M 分频器后得到参考频率 fref,它与反馈频率 ffd 分别送入鉴频器(Frequency Detector,FD)的两个反向输入端,鉴频器输出一个反映两者之商的直流电压,并经低通滤波器(Low Pass Filter,LPF)滤除交流分量后,提供给压控振荡器(Voltage Controlled Oscillator,VCO)输出频率信号 fout。图 7: 频率合成原理图频率合成器的输出频率 fout 与输入频率 fin 之间的关系可以用公式 foutfin(Nk/M)来表示,其中 N、M 和 K 均为整数,K 可取0M 间的任意整数。非整
15、数值 Nk/M 通常写作 N.F,这里的圆点代表小数点,N 表示频率的整数部分,而 Fk/M 则表示频率的小数部分。在输入频率 fin、N 和 M 均不改变的条件下,只要修改 k 值即可得到所需要频率值 fout。在频率合成器芯片中,有专门的 SMBus 接口电路,这是芯片的寄存器与外部联络的途径,有了它,就能够通过 BIOS 或软件对寄存器进行改写。频率寄存器中的每一位数据有两种可能,“0”或“1”,那么当这几位按不同状态进行组合时就可得到多种外频输出。频率合成器的频率调节精度与频率寄存器的位数有关,譬如,如果频率寄存器为 5 位,则调节步长为 1MHz。为数越多,调节精度越高。在实用的频率
16、合成器中,Mdiv 和 Ndiv 两个分频器均为可编程的,只要用户设定相应的 fout 数值,BIOS 便能自动给出 N、M 和 K 的值,并通过 SMBus 总线写入相应的寄存器中。2.PLL 实现相位同步的自动控制原理时钟芯片是电脑的心脏,其性能和稳定性直接决定着整个硬件系统的性能。采用频率合成器一方面可以节省成本与主板空间,更为重要的目的是使主板各芯片以及外部设备的时钟信号与 CPU 的时钟信号之间保持严格的同步关系,以保证正确地交换数据。 FS 芯片不仅具有倍频分频功能,更主要的特点就是具有相位锁定功能输出信号的相位被强制跟参考信号的相位保持一致。因此,频率合成器输出的各种时钟信号虽然
17、频率各不相同,但它们在相位上是完全一致的,它们都与参考信号源保持相位同步。为了实现相位锁定,VCO 输出的时钟信号与参考频率信号在鉴相器中进行相位比较,如果两者相位不同,就会输出一个与相位差大小成比例的误差电压;误差电压的极性决定了电荷泵内的电流源是吸收还是送出电流,所以电荷会流入或流出滤波器内的电容器,电荷流动的数量与相位差的大小成正比。压控振荡器是一个受电压控制的振荡器,内部的变容二极管两端电压变化时,其电容量会随之改变,从而改变振荡器的频率。压控振荡器是 PLL 电路的核心单元,相位控制过程是依靠改变压控振荡器的输入电压(即调谐电压)实现的,调谐电压的大小和极性决定了相位调整是滞后还是超
18、前,从而使相位误差得以校正。3.频率合成器的其它功能在主板设计中使用频率合成器芯片,可以很容易地实现时钟频率的调整和相位锁定。除了这些功能,频率合成器还允许主板设计工程师通过微调各种接口时钟之间的时钟延迟,使各种相关接口的组件保持同步,方便了设计和调试工作(图 8)。此外,频率合成器芯片在系统稳定性和安全性方面也是可以有所作为的。一方面,可以对不需要调整的频率进行锁定,防止因 CPU超频而导致其它设备失效的情况;另一方面,一些频率合成器芯片中还设计了“看门狗” 功能,一旦超频失败导致死机时,此功能可以对频率寄存器进行清零,使系统按照 CPU 的默认频率正常启动。目前,频率合成器芯片的应用已经十
19、分普遍,常见的有 ICS、Cypress、IDT、Realtek 和 Winbond 等品牌。不过,在 nForce2 主板中,已经找不到频率合成器的身影,因为频率合成功能已经整合到 IGP/SPP 芯片中了。图 8: 频率合成器整体结构四、CPU 和内存频率的 “按需供应 ”机制 CPU 时钟频率的设置不仅影响系统性能,还会影响 CPU 的安全。我们已经知道,CPU 的核心频率是由外频和倍频两个参数共同决定的,那么 CPU 的时钟频率到底是如何得来的呢? 1.BSEL 信号设定 CPU 外频CPU 制造商和主板制造商共同开发时钟频率的自动设置技术,其中,CPU 外频是频率合成器提供的,而倍频
20、则由 CPU 自身进行设定。为了实现对外频的调节和控制,早期主板通过跳线设定的方式让频率合成器产生不同的外频,后来在 CPU 外频设定引脚和频率合成器之间建立了一个逻辑信号转换芯片,使 CPU 外频可以通过 BIOS 或超频软件进行调节。上文已述,改变频率合成器的输出频率,是通过修改它的控制寄存器的频率控制位实现的。寄存器中的数据发生变化时,频率合成器的工作状态也随之改变,从而实现不同频率的输出。由于不同型号的 CPU 有着不同的外频,因此电脑在启动时就要告诉频率合成器按照怎样一个频率来启动系统,这一功能是通过 CPU 的 BSEL(FSB_Sense)引脚来实现的,BSEL 信号通过 SMB
21、us 总线将二进制数值存放到频率合成器的频率寄存器中,频率合成器按照所设定的编码/频率表,实现了 CPU 对频率合成器的控制。譬如,Socket 478 封装的各款处理器,外频是由 BSEL(AD5)和 BSEL0(AD6)两个引脚来控制的,两者不同的电平组合决定了 CPU 的外频(表 3)。表 3:Socket 478 之频率设置 BSEL BSEL0 外频0 0 100MHz0 1 133MHz1 0 200MHz2.FID 信号设置 CPU 倍频如同 CPU 供电电路使用 VID(Voltage Identify,电压识别码)信号自动设置电压值一样, CPU 倍频的设置是采用 FID(F
22、requency Identify,频率识别码 )信号来设置的 (表 4)。这样不仅能实现 CPU 工作频率的自动识别和设置,还能有效地防止不法商家对其进行Remark。表 4:FID 电平与倍率对照表FID3 FID2 FID1 FID0 CPU 倍频0 0 0 0 110 0 0 1 11.50 0 1 0 120 0 1 1 12.50 1 0 0 50 1 0 1 5.50 1 1 0 60 1 1 1 6.51 0 0 0 71 0 0 1 7.51 0 1 0 81 0 1 1 8.51 1 0 0 91 1 0 1 9.51 1 1 0 101 1 1 1 10.5图 9 是 A
23、MD Athlon 系列处理器的倍频信号工作流程,当 RESET#信号到来时,处理器将 FID 信号送给逻辑信号转换芯片,由该芯片产生 SIP(Serialization Initial ization Packet,串行初始化数据包) ,对系统总线进行初始化和设置。 在 CPU 上设置了一些称为金桥的连接线,FID 信号的电平可以通过改变金桥的通断进行设置,金桥接通时为低电平,断开时则为高电平。FID 信号在内置倍频控制单元内生成,并经内置 FID 驱动电路对信号进行放大后,从 FID 引脚送至逻辑信号转换芯片,产生的 SIP 数据包再从 BP_FID 引脚返回到 CPU。这样,CPU 内部
24、的频率合成电路便可以将倍频与外频两个信号一起合成 CPU 的核心频率。图 9: CPU 倍频信号工作流程3.内存频率的设置早期主板上内存总线时钟信号也是由频率合成器产生的,不过较新的主板已经撇开了主板上的频率合成器芯片,而由北桥芯片完成内存总线时钟频率的设定,这在业界被称作“内存异步” 。与 CPU 频率的自动设置原理相似,北桥芯片内的频率合成器也是通过一定的手段实现自动设置频率的。内存的频率由内存条上的SPD(Serial Presence Detect 内存序列存储芯片 )提供。SPD 类似于主板上的 BIOS,存储了内存芯片的内存容量、工作频率、延迟时间(CAS、tRCD 、tRP、tC
25、A)及工作电压和厂商信息等,北桥芯片通过 SMBus 总线的 SDA 引脚读取每个 DIMM 的 SPD 中的参数,SPD 芯片的信息就会被记录在北桥芯片内 PLL 电路的寄存器(Register) 中。内存总线时钟与系统时钟的频率往往并不相同,譬如系统时钟为 133MHz,而内存时钟的频率为 200MHz 时,两者之间存在 67MHz的差异,这种频率上的差异被称为“ 内存异步 ”。不过,为了实现内存与 CPU 之间的同步通信,两个总线在相位上仍然需要保持同步。实现相位的同步在技术上并不困难,只要北桥芯片中的 PLL 电路与频率合成器中的 PLL 电路使用同一个参考频率 fref 就可以了。事
26、实上,即插即用的外部设备的频率设置与内存频率的自动设置原理基本相同,主机通过读取设备中 ROM 芯片中包括频率在内的特征参数,然后自动分配系统资源,自动配置驱动程序,使得设备可以正常工作。五、为电脑把脉 1.检试实际频率,释放设备潜能Intel Processor Frequency ID Utility 是 Intel 公司发布的 CPU 的检测软件,该软件列出了“ 报告频率”和“预期频率”两项数据,前一项表示被测试 CPU 的当前运行速度,后一项表示被测试 CPU 出厂时所设计的最高操作速度(图 11)。如果两者数据一致,即说明 CPU 未被超频。如果报告频率低于预期频率,则说明处理器的能
27、力没有发挥出来。使用测试软件能够大致了解各设备的工作状态,对优化系统性能非常重要。与上述检测软件类似的还有很多,所有需要测试的频率都可以通过测试软件显示出来。不过,一些高级玩家怀疑软件测出的频率是否准确。这种怀疑不是没有根据的,因为检测软件运行的平台,是基于参考频率 fref 的。如果参考频率自身都不准确,软件测出的频率值也就难以保证。不过,要精确地测量时钟信号的频率时,可以使用示波器( 图 12)。图 11: Intel 测试软件的频率测试界面图 12: 示波器测出 PCI 总线时钟频率为 33MHz外部设备的性能与接口电路工作频率之间有着密切关系。以硬盘为例,如果使用 AIDA32 等软件
28、测出硬盘的最高 UDMA 传输模式为 UDMA 6(ATA-133),但当前 UDMA 传输模式为 UDMA 1(ATA-33)。即硬盘本来可以工作在 133MHz 的频率下,而接口却只以 33MHz的频率交换数据。那么就会极大地降低硬盘性能。遇到这种情况,说明设备的潜能没有发挥出来,应检查 BIOS 中的接口模式选择是否正确或通过安装相关 IDE 驱动程序来解决。2.防止心跳过速频率过低造成设备性能低下,相反,如果频率过高则会造成设备工作不稳定,甚至彻底罢工。平时我们在对显示芯片和显存进行超频之后,显示画面出现花屏就属于典型案例。因为心跳过速而导致设备不能工作的情况,在电脑故障中占有相当大的比重。因为种种原因,一些设备工作频率实际上是达不到标称频率的。对于此类问题的处理,笔者在“电脑故障降频诊断法”(微型计算机2003 年第 17 期)一文中已有详细介绍。在此需要补充一点,如果 CPU 超频失败导致不能启动后,将 CMOS 放电,BIOS 会以 100MHz 外频的安全模式启动,并不会造成严重后果。