EC(Embed Controller,嵌入式控制器)是一个16位单片机,它内部本身也有一定容量的Flash来存储EC的代码。EC在系统中的地位绝不次于南北桥,在系统开启的过程中,EC控制着绝大多数重要信号的时序。在笔记本中,EC是一直开着的,无论你是在开机或者是关机状态,除非你把电池和Adapter完全卸除。


在关机状态下,EC一直保持运行,并在等待用户的开机信息。而在开机后,EC更作为键盘控制器,充电指示灯以及风扇等设备的控制,它甚至控制着系统的待机、休眠等状态. 现在的EC有两种架构,上图左边是比较传统的,即BIOS的FLASH通过X-BUS接到EC,然后EC通过LPC接到南桥,一般这种情况下EC的代码也是放在FLASH中的,也就是和BIOS共用一个FLASH。右边的则是比较新的架构,EC和FLASH共同接到LPC总线上,一般它只使用EC内部的ROM。至于LPC总线,它是INTEL当初为了取代低速落后的X-BUS而推出的总线标准。


EC上一般都含有键盘控制器,所以也称KBC(Keyboard Controller)。


那EC和BIOS在系统中的工作到底有什么牵连呢?在这里我们先简单的分析一下,具体的过程在本文的最后会详细介绍。


在系统关机的时候,只有RTC部分和EC部分在运行。RTC部分维持着计算机的时钟和CMOS设置信息,而EC则在等待用户按开机键。在检测到用户按开机键后,EC会通知整个系统把电源打开(这部分在最后详细介绍)。CPU被RESET后,会去读BIOS内一个特定地址内的指令(其实是一个跳转指令,这个地址是由CPU硬件设定的)。


这里开始分两种情况1)CPU发出的这个地址通过FSB到北桥,然后通过HUB-LINK到南桥,通过LPC到EC,再通过X-BUS一直到达BIOS。在CPU读到所发出的地址内的指令后,执行它被RESET后的第一个指令。在这个系统中,EC起到了桥接BIOS和南桥(或者说整个系统)的作用。(2)在CPU发出的地址到达南桥后,会直接通过LPC到BIOS,不需要EC的桥接。


这里需要说明的是,对于台式机而言,一般是不需要EC的。这里原因有很多:比如台式机本身的ATX电源就具有一定的智能功能,他已经能受操作系统控制来实现待机、休眠的状态;其次由于笔记本的键盘不能直接接到PS/2接口,而必须接到EC之上;还有就是笔记本有更多的小功能,比如充电指示灯、WIFI指示灯、Fn等很多特殊的功能,而且笔记本必须支持电池的充放电等功能,而智能充放电则需要EC的支持;另外,笔记本TFT屏幕的开关时序也必须由EC控制。这些原因导致了笔记本使用EC来做内部管理的必要性。


总体来说,EC和BIOS都处于机器的最底层。EC是一个单独的处理器,在开机前和开机过程中对整个系统起着全局的管理。而BIOS是在等EC把内部的物理环境初始化后才开始运行的。


看到这里,我想大家也明白EC到底是呵方神圣。如果说BIOS 是底层系统的话,那EC 似乎更加底层。


在南桥上还有一个功能块就是电源管理单元(PM,Power Management)。


一般来说,他和EC来共同配合完成。这里包括从开机(power button)键按下后,启动,待机,休眠,关机的全部功能。还包括对背光亮度,声音等的控制等等。


至于现在Intel的Speed Step技术,也有部分功能是透过南桥来实现的(南桥发送SLP、STPCLK(sleep,Stop Clock)来实现睡眠、深睡眠等)。