条记本有很多台式机没有的有趣功能:合上盖子带上就走的便利性,就寝时神秘的呼吸灯,俊秀的键盘灯等等。这些功能很多都可以在电脑关机的时候还在起浸染,那么是谁在掌握他们呢?肯定不是CPU,这也让Windows等操作系统失落去了实行的土壤,他们也可以被打消。这个隐形的管家便是EC。
EC简介险些所有的条记本的主板上都一个小家伙:EC(Embedded Controller),它是一个16位的小芯片,它与做事器中的BMC类似,掌控条记本电脑的方方面面。它最早脱胎于条记本的键盘掌握器,现在条记本上诸多特色功能,背后都有它的身影。充电指示灯为什么会亮?EC在得当的韶光让它亮;风扇为什么狂转?EC以为你的CPU太热了;各种功能键和上面的小灯也是它的功劳。乃至关机后EC还在不知疲倦的事情,它的特色功能也是条记本厂商要发力的重点。
市情上有多种EC掌握器,有ENE、ITE、Nuvoton和SMSC等玩家。它一样平常被焊接在条记本主板上:

遐想Y700 EC的位置在左下角
它有自己的固件(firmware),但主板厂商一样平常叫这个固件EC BIOS,有点让人困惑。于此对应,条记本主板的事理图是中间一样平常至少有一到两页的EC篇章:
一个简陋的例子
我在参考资料1 放了ENE的一款EC掌握器芯片手册,对细节感兴趣的同学可以参考阅读一下。
EC的事情事理EC和BIOS的互助十分紧密。EC通过BIOS的ACPI表将它所须要报告的信息和方法报告给操作系统,并与之交互。
一个范例的信息交互通道是这样:
它在ACPI table中的表现便是:
Device (EC0) { Name (_HID, EISAID(“PNP0C09”)) Method (_CRS) { … } Name (_GPE, 0 ) Method(_Q06) { … } Method(_Q07) { … } Method(_Q08) { … } Method(_Q0A) { … } // EC uses GPE0 // Adapter event // Thermal event // Battery event // LID event
从这个例子中看到,电池报警、AC电源插入、温度传感器报告和LID(条记本盖子)信息,先报告给EC不同的Q里,EC再接入ACPI的GPE,GPE的触发会产生SCI,这时候操作系统就知道了。一个Event产生,操作系统在收到SCI后,会检讨GPE,看是谁触发了事宜;在创造是GP_STS0后,就知道是EC产生的韶光,接着会去检讨EC的Q0x,看看详细是EC的哪个管脚引发的,按图索骥,终极创造Event的产生方,而对该作出相应处理。
看起来彷佛相称难懂!
好吧,我们看个case study。
条记本盖子开启/合上case study
我们来简化一下上面那个图:
条记本合上,EC触发GPE。OS收到GPE,查看GP_STS,创造是GPE0触发,知道是EC导致。访问EC得知是Q0A。通过_LID的关键字和PNP知道是盖子信息,知道是盖子合上了。
然后检讨用户的电源管理策略作出相应处理:
2.盖子开启,GPEB会触发wake up干系动作。
结论不但是LID,各种温度传感器也是先过EC的:
AC插上,开启切换电源策略也是EC触发。乃至有的条记本,AC插上阁下的小LED灯都是EC掌握。
EC在条记本电脑中如此主要,厂商为了作出自己不同的产品策略,开拓花哨的功能,在EC上频频发力。EC不愧是条记本中的隐形管家!