按下电源键后发生了什么?电脑是如何优雅地开机的?

17021210937

石小帆

转载自:

https://zhuanlan.zhihu.com/p/31180815

(有少量删减)

【嵌牛导读】:或许很多人都和我一样,开电脑的时候只知道按下电源键,至于它到底是怎么开机的,从来不曾关注过,那么本文就将带来其背后开机原理。

【嵌牛鼻子】:电源键,电脑开机

【嵌牛提问】:对我们来说电脑开机,只需要按一下电源键,那么对于电脑本身来说,它到底是怎么开机的呢?

【嵌牛正文】:

          一个程序是如何开始运行的呢?这个问题,一千个人有一千种回答。电脑用户说:“双击程序图标就行了啊。”;初级程序员信心满满的回答:“是从main函数开始执行的。”;高级程序员也许会和你聊到c运行时库,那里才是程序编译运行的第一条指令;而熟悉操作系统的专家却并不知道如何说起,程序加载器、重定位、堆和栈的建立、进程和线程的创建等等细节闪过脑海,哪里才是真正的源头呢?

      同样问道计算机是如何启动的,也许答案就是按下电源键而已。但在那个简单到极致的动作后面却隐藏了复杂的机理。启动的开始并不仅仅是操作系统引导,亦或BIOS运行,甚至CPU在reset vector执行第一条指令之前,很多事情已经发生了。正如地球生命的发端并不由人类的到来而伊始,秘密隐藏在远古而不为人知的远古时代。让我们顺着时间回溯,站在一切发生的起点:“电源键按下”,通过时间的流转,梳理其中所有的硬件软件过程,来深入了解计算机的工作原理。

史前时代:上电时序

      上电时序,也叫做Power-up Sequence,是指电源时序关系。它牵扯到诸多计算机部件,在正式开始时间之旅之前,我们来介绍一下所有参与的小伙伴们。

图片发自简书App


电源

        ATX电源提供+12V、-12V、+5V、-5V、+3V和+5VSB等六种电压。也就是我们图上的两个白色的电源接入口。主板其他的不同电压是主板上的变压线路转换过来的,他们包括+3VSB、+1.5VSB、1.8VDual、2.5VDual、3VDual、VCore、VTDDR等等很多。

      +12V主要是给CPU内核供电,它可以单独给PCIe设备供电,包括显卡等等。+5V应用最广,给USB等等外设供电。+5VSB等各种带SB的电压,是提供Stand By的供电,即在S3 Sleep时提供电力,保障唤醒和刷新。

      主板右边中间那个纽扣电池,它叫做RTC电源,永不掉电。除非电池没电并且没接任何外部电源。 RTC用以保持机器内部时钟的运转和保证CMOS配置信息在断电的情况下不丢失。

时钟

      电脑中的CPU,AGP、PCI插槽、SATA、USB端口和PS/2端口等在通信速度上有很大差异,所以需要提供不同的时钟频率。由ck410、ck505和iCLK等芯片将原先散布在不同地方的晶振和分频电路整合在一起,为CPU、SATA、PCI、USB等等设备提供基础频率。

电源时序控制芯片/电路

      主板对于上电的要求是很严格的,各种上电的必备 条件都要有着先后的顺序,一项条件满足后才可以转到下一步,如果其中的某一个环节出现了故障,则整个上电过程不能继续下去。谁来控制和协调整个时序过程呢?不同的主板、芯片组、代际之间都有不同的方案,在笔记本上过去经常采用EC的方案、台式机则很多用SIO或者定制芯片。现在很多电源时序控制被整合进了ME中,在面向嵌入式设备的Atom系列主板上则越来越多的引入了在手机等设备上常用的PMIC。

时间开始

我们通过一个古老的例子来了解一下开机的整个过程:

图片发自简书App


在G3(未接电源)情况下,RTC电源提供RTC_RST#和VCC_RTC电源给南桥。

插入电源或者电池。系统进入G2,S5的状态。EC检查电源的可靠性,并发送PM_RSMRST#通知南桥各种SB电压已经准备完毕。南桥复位,部分功能SB功能激活,进入待机状态。

用户按下电源键,时间开始。

EC收到PWRSW#信号,通过PM_PWRBTN#通知南桥。南桥收到PM_PWRBTN#信号后依次拉高SLP_S5#,SLP_S4#,SLP_S3#信号给EC。

EC发出PCON#给ATX电源。

ATX电源接到低电平的PSON#信号后,开始工作,发出各路基本电压给主板上的各个元件。

基本电压变换的其他电压也被转换出来。

电源发出PWROK#给EC,EC转交给南桥和北桥(有的话)

VRM和CPU通讯,根据VID送出Vcore

VRM发生VRMPWRGD#给南桥,表示核心电压OK。

南桥发送PLT_RST#给北桥。

南桥发送PWRGOOD#给CPU。

北桥在收到PLT_RST#信号后,1秒钟后发生CPU_RST#,让CPU复位

时序图如下:

图片发自简书App


青铜时代:神秘消失的时间

在CPU复位后,是不是要立刻跳到reset vector开始执行BIOS程序了呢?还没有,pcode、on die rom会在这个阶段执行,TXT、boot guard等安全保障措施也在这里运行。

城邦时代:UEFI的四个阶段

CPU终于开始执行reset vector的代码了,这就进入了我们熟悉的UEFI的世界。我们之前已经有很多文章都有介绍UEFI的各个阶段,这里简单回顾一下:

图片发自简书App


• 在SEC阶段,系统从复位开始运行(由主机引导处理器取回的第一指令),通过初始化处理器高速缓存(Cache)来作为临时内存使用,我们有了堆栈,从而可以执行c程序,然后转到PEI阶段。

• 在PEI最开始阶段,仅少量栈和堆可用,我们需要找到并使能足够我们使用的永久内存,通常是内存颗粒或内存条(DIMM),然后转入DXE。

• DXE阶段有了永久存储空间,真正开始负责初始化核心芯片,然后转换到BDS阶段。

• 核心芯片初始化完成后BDS阶段开始,并继续初始化引导操作系统(输入,输出和存储设备)所需的硬件。 纵观PI的整个阶段,BDS对应的是“执行UEFI驱动程序模型”来引导OS这一过程。

近代和现代:引导程序和操作系统

UEFI会在BDS阶段后加载操作系统引导程序,也就是OS loader。不同的OS有不同的Loader。一般用户都十分熟悉,我们这里不再赘述。

结论

        按下电源键,CPU并不是第一个得到通知并立刻执行代码的。简单的开机后面隐藏了如此丰富的内容,这是很多人想象不到的。很多主板,尤其是很多服务器主板,从按下电源键到CPU开始执行UEFI固件程序,期间经历了很多隐藏的片段。这些片段可长可短,有的转瞬即逝、有的却让人等上片刻。它们究竟是什么,为什么存在,值得大家细细探究。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260

推荐阅读更多精彩内容