我其实不太懂Intel平台

325 阅读2分钟

www.bilibili.com/video/BV1YS…

  •  大概1998年,妈妈花了重金给买的奔腾II 266MHz,这个视频我也说了。
  • 20xx年,我自己组装的i7 7700k玩模拟飞行用。

其实我一共就拥有过这两台像样的Intel平台电脑。其实我一直感觉我不懂Intel平台,但是基于IA-32的操作系统,我也写出来了,其实自己知道,里面很多的代码都是建立在Intel的老平台兼容性上的,而新的CPU特性并没有用出来,而且其实我也不懂。

这次复活操作系统代码,再次燃起了我的激情,我决定把Intel平台知识整理一下。主要是解决我心中的困惑,尤其是和我手中玩过的单片机,STM8S/L,STM32,进行一个对比。

玩驱动,怎么能没有原理图。找到一个看笔记本主板原理图的,虽然这里的平台CFL,CNL都很老,但是相对于我脑中装的对Intel的理解,这绝对是很先进的图纸。 

www.laptop-schematics.com/view/12007/

对于玩过单片机的小伙伴,其实各种控制器芯片控制各种外设,这个方面Intel平台和单片机。USB,SATA,HD Audio这些都好理解,我就不做过多解释。简单说就是一回事。

那Intel平台和单片机的最大区别到底是什么?我先把不重要的信息全部掉,简化才能抓住重点。

Intel双芯片方案CPU+PCH

这里虽然有两个芯片,但是并没有两个脑袋:

  1. 只有CPU是有运算核心的。超高速设备DDR和显卡,都直接在CPU这颗上
  2. PCH简单理解为外设桥接芯片

 双脑袋方案CPU+EC

  • IA CPU里面是有运算单元的
  • EC(Embedded Controller),如上图的MEC1416,就是Microchip家的ARM芯片

双脑袋方案就需要两套Boot ROM

按照单片机的常识理解,既然有两个运算单元,那么就一定需要两套启动代码,你猜对了。其实这里不算是ROM,一般情况改不了,就定义为ROM

  • BIOS/UEFI这套代码是直接运行在IA核上的,存储在外部的SPI flash芯片上
  • EC的固件FW,也是运行在外部存储SPI flash芯片上

双脑袋共享存储SPI Flash

这也是Intel奇葩的地方,也可说是牛逼的地方。两个脑袋芯片通过共享SPI访问外部SPI flash。

按照传统设计,肯定是EC外接一个flash, PCH外接一个flash。结果这里人家共享存储。

从microchip的应用文档里找到了一幅图,可以说明PCH和EC到底如何共享SPI Flash

ww1.microchip.com/downloads/e…

以上这些才是真正和常识情况下的嵌入式系统最外层的区别。至于芯片内的细节,那就更多了。一次就说一点,下次继续