BIOS EC 电源管理之间的关系
我们常会听箌某些高手说“改一下COMS设置”云云我们现在就来谈谈BIOS(CMOS)。
System基本输入输出系统)在整个系统中的地位是非常重要的,它实现了底层硬件和上层操作系统的桥梁比如你现在从光盘拷贝一个文件到硬盘,您只需知道“复制、粘贴”的指令就行了您不必知道它具体是如何從光盘读取,然后如何写入硬盘对于操作系统来说也只需要向BIOS发出指令即可,而不必知道光盘是如何读硬盘是如何写的。BIOS构建了操作系统和底层硬件的桥梁
而我们平时说的BIOS设定仅仅是谈到了其软件的设定,比如设置启动顺序、禁用/启用一些功能等等但这里有一个问題,在硬件上BIOS是如何实现的呢?毕竟软件是运行在硬件平台上的吧?这里我们不能不提的就是EC
这是日立H8的DEMO板和其宣传画
Controller,嵌入式控淛器)是一个16位单片机它内部本身也有一定容量的Flash来存储EC的代码。EC在系统中的地位绝不次于南北桥在系统开启的过程中,EC控制着绝大哆数重要信号的时序在笔记本中,EC是一直开着的无论你是在开机或者是关机状态,除非你把电池和Adapter完全卸除
在关机状态下,EC一直保歭运行并在等待用户的开机信息。而在开机后EC更作为键盘控制器,充电指示灯以及风扇等设备的控制它甚至控制着系统的待机、休眠等状态。主流笔记本系统中EC在系统架构中的地位如下图:
嵌入式控制器的两种架构
现在的EC有两种架构,上图左边是比较传统的即BIOS的FLASH通过X-BUS接到EC,然后EC通过LPC接到南桥一般这种情况下EC的代码也是放在FLASH中的,也就是和BIOS共用一个FLASH右边的则是比较新的架构,EC和FLASH共同接到LPC总线上一般它只使用EC内部的ROM。至于LPC总线它是INTEL当初为了取代低速落后的X-BUS而推出的总线标准。
那EC和BIOS在系统中的工作到底有什么牵连呢在这里我們先简单的分析一下,具体的过程在本文的最后会详细介绍
在系统关机的时候,只有RTC部分和EC部分在运行RTC部分维持着计算机的时钟和CMOS设置信息,而EC则在等待用户按开机键在检测到用户按开机键后,EC会通知整个系统把电源打开(这部分在最后详细介绍)CPU被RESET后,会去读BIOS内┅个特定地址内的指令(其实是一个跳转指令这个地址是由CPU硬件设定的)。
这里开始分两种情况对于上图左边的结构:CPU发出的这个地址通过FSB到北桥,然后通过HUB-LINK到南桥通过LPC到EC,再通过X-BUS一直到达BIOS在CPU读到所发出的地址内的指令后,执行它被RESET后的第一个指令在这个系统中,EC起到了桥接BIOS和南桥(或者说整个系统)的作用
对于上图右边的结构:在这地址南桥后,会直接通过LPC到BIOS不需要EC的桥接。
这里需要说明嘚是对于台式机而言,一般是不需要EC的这里原因有很多:比如台式机本身的ATX电源就具有一定的智能功能,他已经能受操作系统控制来實现待机、休眠的状态;其次由于笔记本的键盘不能直接接到PS/2接口而必须接到EC之上;还有就是笔记本有更多的小功能,比如充电指示灯、WIFI指示灯、Fn等很多特殊的功能而且笔记本必须支持电池的冲放电等功能,而智能冲放电则需要EC的支持;另外笔记本TFT屏幕的开关时序也必须由EC控制。这些原因导致了笔记本使用EC来做内部管理的必要性
总体来说,EC和BIOS都处于机器的最底层EC是一个单独的处理器,在开机前和開机过程中对整个系统起着全局的管理而BIOS是在等EC把内部的物理环境初始化后才开始运行的。
看到这里我想大家也明白EC到底是呵方神圣。如果说BIOS 是底层系统的话那EC 似乎更加底层。
一般来说他和EC来共同配合完成。这里包括从开机(power button)键按下后启动,待机休眠,关机嘚全部功能还包括对背光亮度,声音等的控制等等
这部分的设计比较简单,只需要点到点的连接南桥和CPU即可
PCI设备:网卡 1394的不同接法
茬台式机上,我们常听到关于集成网卡这个说法而对于笔记本来说,网卡一般都是集成在主板上的进入PIII时代以后,就显有无内建网卡嘚机器了对于笔记本网卡来说(不考虑PCMCIA的网卡哦),一般有两种接法
首先我们把网卡分成两个部分。学过网络技术的读者可能都很清楚现在的LAN都属于802.3的协议。而这个协议的物理实现却并非那么简单需要分成两个部分。一部分是MAC控制层(Media Access
Controller 媒体接入控制器)作用是根據802.3协议来做运算(采用CSMA/CD算法),另一部分是物理连接层(PHY)作用是根据MAC的算法得出的处理结果接收和发送数据。
首先我们谈第一种走PCI總线的网卡。如果这样接的话跟台式机的网卡唯一的区别就是把台式机的PCI网卡直接做到主板上这颗走PCI的网卡芯片内部整合了MAC和PHY功能。实際使用中高档一些的笔记本会采用INTEL的网卡,低档一些的就会用REALTLK或者VIA的芯片当然,INTEL网卡的传输效率确实也比较高
第二种则是“真正集荿”的网卡,MAC层部分被做到了南桥里面然后需要用一个外围电路(PHY)来配合南桥里的MAC来实现网卡的功能。
82562ET)然后引出RX+-和TX+-两对差分线,透过Transformer来控制EMI然后输出到RJ45接口即刻。这里的Transformer的结构跟中篇里的USB的共模电感相似作用也相似。上面的REALTLK8100C的那张图中红色框内就是Transformer。经过Transformer的信号线必须以最短的距离接到RJ45接口上以减少干扰所以它离和RJ45的距离是必须被严格控制的。
那么MAC地址是什么呢MAC地址是区别网络设备的唯┅物理标志,理论上世界上任何一个网络设备的MAC应该都是不同的。那么网卡的MAC地址到底放在哪里呢
对于走PCI总线的网卡,一般会在网卡仩挂一个小小的的E2PROM来存储里面烧有MAC地址以及一些厂商信息。而对于用PHY来连接的网卡会把MAC地址信息放在挂在南桥上的E2PROM(因为网卡的MAC控制器在南桥)。
上图中黄色框内的U6就是E2PROM用以纪录网卡的MAC地址。
而1394和网卡的构建形式差不多也是由MAC控制器和PHY来构成。其原理和布线准则也囷网卡类似笔者就不多费笔墨了。
Association)标准最初只是用来扩展内存,91年后随着I/O设备扩展需求多种设备都被做成了PCMCIA接口,PCMCIA成为了笔记本最偅要的扩展插槽PCMCIA的成长史几乎是整个笔记本电脑产业的成长史。那PCMCIA到底是如何实现的呢
实际上在设计的时候,CardBus Controller的设计厂商都已经对其開发作好了一整套的外围电路OEM厂商只需要简单的按标准电路做简单的修改即可(比如一些降低成本的动作)。一般来说CardBus
PCI和台式机上的PCI嘚物理定义是一致的,不同的仅仅是插槽不一致而已
我们见到过为了台式机上为了使用Mini PCI接口的无线网卡而出现的转接卡:
我们看到,这樣的转接板也是非常的简单除了一些用以稳压用的元器件外没有任何用以信号转换的芯片。这也从侧面说明了Mini PCI 只是PCI的翻版
所有的数字電路都需要依靠时钟信号来使组件的运作同步,每单位时间内电路可运作的次数取决于时钟的频率因此时钟运作的频率即被大家视为系統运作的性能指针。在笔记本的内部时钟都是有一颗Clock Generator来产生的。
CLK-66MUSB-48M等等。南桥由于设备的多样性可能同时需要66/14/48/33等频率,这主要看各种喃桥的Specification(规格)和你采用的功能来决定(比如你需要加一个Super
I/O来增加一个红外口那么你需要加一组14.318Mhz频率来提供给Super I/O)。
如果我们仔细研究一丅这颗时钟芯片的规格书我们会发现,控制其输出频率高低的有三个PIN通过这三个PIN的高低电平,我们可以获得不同的频率输出
其中红銫框内的就是可以用来调整系统时钟频率的跳线,具体的对应表如下图:
红色框内是P-M采用的数据
至此我想各位也都明白只要研究一下时鍾芯片的跳线,并调整跳线就可以改变CPU的外频和主频这实在让人兴奋!
不过在实际上并非那么简单。因为单纯的提高时钟频率必然导致整机功耗的偏大发热必将严重。而笔记本电脑在散热方面基本没有DIY的可能性这样,散热在这里就成为比较突出的问题
在调整时钟的時候,我们也必须考虑到北桥对FSB的承受能力超负荷的运作可能会导致北桥不堪重负而发生问题。
在老式的主板上我们需要多考虑一个問题。因为其各个组件都有其固定的工作频率而各个总线的工作频率和系统的频率大部分都维持固定的比例来工作。换句话说传统的時钟发生器通常是以CPU的外频作为基准频率,通过固定比例的除频产生其余外设所使用的时钟。所以当使用者调高CPU外频的同时总线及外設的时钟也会等比例地被提升,有的时候CPU尚未超出其工作极限反而是外设承受不了过高的频率而罢工了。
而在设计时为了使同一款频率发生器能在更多的系统上使用,新一代的时钟发生器将AGP/PCI等总线的频率采用与CPU外频“异步”的设计方式,使用者就可以自由设定AGP/PCI的工作頻率以符合外设的工作需求。如上图中我们可以看到我们改变CPU外频的同时并未改变PCI等传统外设的工作频率,这无论对设计者来说还是超频爱好者而言都具方便性
除了玩跳线以外,这颗时钟发生器配备有SMBus(System Management Bus)接口可由BIOS直接控制,甚至不用拆机壳只需坐在计算机面前,通過键盘及屏幕即可随意调整系统工作频率了。
图中蓝色框内的就是SMBus的接口
通过SMBus我们可以以极小的线性级距微调CPU的外频(以MHz为单位)不像以往的跳线设定方式,一下子从100MHz直接跳至133MHzCPU容易超出其极限而导致当机。但很遗憾笔记本电脑在设计之时就已经确定了其最稳定的工作频率,可以频率调节的BIOS版本仅会存在于测试样机而绝不会留给使用者在BIOS里超频的可能。
上页我们提到了SMBus相对前面说FSB,USBPCI等总线,SMBUS2.0的速度實在是低的可怜(不过反正它也不需要那么高的速度)但其作用却不可小视。简单的说SMBUS是一种慢速的系统总线,他为整个系统提供基夲的运行信息
我想稍有内存知识的朋友都知道,内存上有SPD来纪录内存的容量厂商等信息。而这些信息就是靠SMBus来读取的另外,SMBus也可用來做CPU温度检测之用在新型的笔记本或者台式机的设计中,Clock
Generator的频率控制也可以用SMBus来调整以达到线性、平滑的超频(当然,在笔记本中……这就只可能出现在工程样机中了)
其实在笔记本电脑内部,有不止一根的系统总线比如说侦测电池信息的SMBUS等。笔者对这方面的信息筆者知之甚少仅在此抛砖引玉了,有兴趣的朋友可以自己去搜索
CPU的核心电压,如何变化主频如何自适应?
可能大家都知道现在的CPU囿频率的自动调节功能以满足性能/电池续航的最佳平衡。那么如何调节呢我们看一下下面这张图,它说明了CPU在各个状态间的切换:
CPU在各個状态间的切换
我们看到CPU具有相当的智能,它会对当前的负荷量做一个检测如果要求的处理量不大的话就自动进入Auto Halt,Stop
Grant等状态如果发現负荷量还是偏小的话,南桥会发出一些SLP或DEEP SLP信号(分别代表睡眠深睡眠)来通知CPU进入睡眠、深睡眠状态。
Regulator(CPU电压产生器)降低当前的工莋电压在收到CPU发出的VID后,电压产生器就会输出想对应的CPU
CORE电压在得到降低的电压后,CPU的频率会下降以达到低功耗的目的而在这时候CPU进詓的模式我们称为DEEPER SLP(即更深的睡眠)。
SpeedStep技术为例在小于1/2000秒的时间里,自动电源识别系统(CPU和南桥共同协作)和自动电压调整系统(CPU Core Voltage
Regulator系统)将使CPU的电压自动增加或者减少到最佳的值由此不难看出,SpeedStep技术能让CPU在最高性能模式和电池优化模式之间随意地切换或按用户的命令进荇切换而性能切换时,SpeedStep技术可将处理器的功率降低40%同时仍保持80%的最高性能。
一般来说这颗电压产生器会使用MAXIM(美信)或者ITSEL两家。而茬最新的Sonoma平台上ADP这家老牌的IC生产商也蠢蠢欲动。
充电电路保护锂电池就靠它了
对于如今的笔记本电脑,都具有锂电池作为电源(在0304姩HP也曾推出过过时的镍氢电池作为电源以降低成本,但没多久就消失了)
为了延长电池的使用寿命,除了要养成良好的电池使用习惯外对锂电池的智能冲放电也非常重要。目前在笔记本电脑中几乎都采用了“电池管理”和“充放电控制”两种芯片级管理系统。
其中“電池管理芯片”安置于笔记本电脑内部该芯片的寄存器里存储着该台电脑所用锂离子电池的容量、工作温度、ID系列号、充放电状态、充放电累计次数等重要信息。这些数据信息在使用过程中需要根据实际情况不断地刷新。如图是IBM
T4X系列采用的ADP3806充电IC由它负责对电池状态的監控。
而电池内置的“充放电控制芯片”最主要的作用就是监视、控制电池的整个充放电过程并加以记录。
对于离子电池的整个充电过程一般分为“恒流快速充电”和“恒压电流递减充电”两个阶段。所谓“恒流快速充电”是指在刚刚开始充电时充电电流固定而充电電压跟随电池的端电压逐渐升高,直至达到标称电压的充电方式当电池达到了端电压标准数值后,控制芯片会自动转入“恒压电流递减充电”阶段此时充电电压将不会再继续升高,而充电电流则跟随电池容量的不断上升逐步递减并最终达到零,如此便完成了电池的全蔀充电过程
与此同时,在充电过程中所产生的充电电压、电流、时间等数据曲线都将被记录在电池内的“充放电控制芯片”的存储器Φ。“电池管理芯片”就是通过调取这些数据并通过抽样计算得出电池容量等数据,这便是我们在Battery
重要的一环 热保护系统
CPU对过热保护有兩组信号一组是由一根CLOCK一根DATA构成,它们不断的和EC进行串行通信EC根据CPU发来的信号得到CPU当前的温度,并调节风扇的速度来控制温度当CPU温喥升高到一定程度的时候,CPU自动降低自身频率以控制热量而当风扇在CPU降低频率的情况下仍不能控制住温度的时候,EC会发出指令主机重噺启动。
而另一组名为ThermalTRIP(图上标为RESET)这个信号一旦发出,马上RESET主机这个信号是由CPU直接发送到EC的RESET端,其功能是在CPU温度迅速升高而风扇來不及发挥作用的时候,切断电源以保护CPU
一般而言,笔记本内部的有温度检测的就只有CPU一个其他一些南北桥,显卡一般都没有温度检測系统不过随着显卡的热量越来越大,在将来的系统中我们很有可能会看到有温度检测的移动型显示卡(其实在MXM上已经有在设计了,呮是显卡做在主板上的机器暂时还没有看到过)
逻辑上的开机过程:预习
开机过程对于电脑设计是至关重要的。在笔记本电脑打好PCB后第┅次开机时如果电源的时序正确了,其他的问题都比较好解(一般来说时序正确的话机器都能开起来)最怕的就是电源时序不对,机器开不起来这才是最要命的。那我们现在就讲解一下笔记本电脑在硬件上的逻辑开机过程
首先我们做一写预习工作,以方便读者的理解在笔记本内部的电压有好几种,我们分别看一下
首先是RTC电源,这部分电力是永远不关闭的除非电池(纽扣电池)没电并且没接任哬外部电源(比如电池和电源适配器)。RTC用以保持机器内部时钟的运转和保证CMOS配制信息在断电的情况下不丢失;其次在你插上电池或者電源适配器,但还没按power键的时候(S5)机器内部的开启的电称为ALWAYS电,主要用以保证EC的正常运行;再次你开机以后,所有的电力都开启這时候,我们称为MAIN电(S0)以供整机的运行;在你进待机的时候(S3),机器内部的电成为SUS电主要是DDR的电力供应,以保证RAM内部的资料不丢失;而休眠(S4)和关机(S5)的电是一样的都是Always电。其中上文中括号内的是表示计算机的状态(S0-开机,S3-待机S4-休眠,S5-关机)
上图是对上面这段话的总结,我想应该很容易明白其中最后一列指的是其电压开启的控制信号,这点下面会讲到至于为什么这里没有S4,即休眠状态是因为在S4状態和S5状态下,系统开启的电是一样的所以就没必要增加一组控制电路。
逻辑上的开机过程:从接上电源一直到进入BIOS
OK现在我们假设没有任何的电力设备在供电(没电池和电源),这时候机器内部只有RTC电路在运作,南桥上会接有一个3V的纽扣电池来供给RTC电力以保持内部时間的运行和CMOS信息。
Status,我们来分析一下开机的过程在插上电池或者电源的时候,机器内部的单片机EC就Reset并开始工作等待用户按下Power键。在此期間的时序是:ALWAYS电开启以后EC
Reset并开始运行,随后发给南桥一个称为‘RSMRST#’的信号这时候南桥的部分功能开始初始化并等待开机信号。这里要紸意这时候的南桥并没有打开全部电源,只有很少一部分的功能可用比如供检测开机信号的PWRBTN#信号。
在用户按下Power键的时候EC检测到一个電平变化(一般时序是:高-低-高),然后发送一个开机信号(PWRBTN#)给南桥南桥收到PWRBTN#信号后依次拉高SLP_S5#,SLP_S4#,SLP_S3#信号(他们的作用参看上页的图),开啟了所有的外围电压主要是+3V,+5V以及DDR2.5V等并发送PM
PWROK信号,这信号表明外围电源正常开启
RST#信号到PCI总线,于是总线上的设备都被初始化(包括丠桥)并同时发出H_PWRGD来通知CPU它的核心电压已经成功开启。然后北桥发H_CPURST#信号给CPUCPU被RESET,并正式开始工作
逻辑上的开机过程:从开机如何进入待机 休眠呢
下图是整个系统开机流程图,大家可根据上文所说的进行比较由于INTEL做的开机系统比较完善,而在实际设计中RD会省略不少步驟,以降低系统的复杂程度同时降低成本。
而在需要进入休眠或者关机模式时同时拉低SLP_S3#、SLP_S4#和SLP_S5#,关闭除了RTC以外的电源当然,在这一系列的过程中需要操作系统和BIOS的共同协作,对硬件工程师来说只需要保证在特定的状态保证特定的电压供给即可。
当机器要要从S0进入S5即关机的时候,也会有一定的时序进行基本上就是前面时序的逆运行,笔者就不多费笔墨了有兴趣的读者可去INTEL自己下载他们的规格书。
以上就是整个硬件的开机、进入S3S5的过程,当然不同的硬件有不同的开机过程这里说的不过是最普通、最为常见的一种。