0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

计算机通电之后CPU都在干什么?

FPGA之家 来源:编程技术宇宙 作者:轩辕之风O 2021-05-03 09:28 次阅读

来到我所在的工作车间,提取指令的小A、分析指令的小胖和负责结果回写的老K都已经到了,就差执行指令的我了。

我们几个各就各位,做起了准备工作。

“小A,报告一下各个寄存器的值”,我嘱咐小A,这是我们每天开始工作前必做的检查项。

每次一通电,咱们的电路就会启动自检工作,把所有的寄存器全部重置,如果哪里有异常的话,就会把错误记录到EAX寄存器中,如果发现EAX的值不是0,那可就大事不好了。

“报告,寄存器已确认:”

EAX,EBX, ECX, ESI, EDI, EBP, ESP: 0x00000000

EFLAGS: 0x00000002

CS: 0xF000

EIP: 0xFFF0

······

看起来没什么问题,尤其是CS和IP这两个寄存器,决定着一会儿该从哪里开始执行代码呢。

我们是一个64位的CPU,平时都是工作在保护模式下,使用虚拟地址来访问内存,由厂里的内存管理单元MMU负责给转换成真实的物理地址。

不过在刚刚开机的这会儿功夫,虚拟地址翻译所需要的页目录、页表这些信息都还没准备好,MMU还没法工作,这时候我们只能使用16位的寄存器,工作在实地址模式下,使用段+基址的方式来跟内存打交道,最多只能使用1MB的内存空间,实在是有点局促。

开始执行“大家都准备好了吗,打起精神来,要准备开始今天的工作了哦!”

“Q哥,这刚刚通电,内存条那家伙应该还是一片空白吧,咱们要去执行哪里的指令啊?”,小A问到。

“这你不用担心,在主板上,咱们CPU隔壁不远处有个叫BIOS的伙计,是一个ROM芯片,咱们已经跟他约定好了,一通电他就映射到地址空间中,你尽管按照CS:IP(0xF000:0xFFF0)指向的地方开始取指令就对了,他会安排好的”

“原来是这样”,小A点了点头,似懂非懂的样子。

正式开始干活了,小A熟练的从F000:FFF0处,也就是0xFFFF0处取到了第一条指令:jmp xxxx

好家伙,上来就是一个大跳转,我们一下来到了BIOS那家伙地盘的中央,开始执行他准备的程序了。

接下来执行的这一堆指令我已经做过无数次了,对主板上各单位进行检测,看看有没有异常情况,还有初始化我们工作需要的中断向量表等等,我早已经轻车熟路了。

“哥几个忙着呐”,我们正忙的热火朝天,发现有人在门口围观,回头看去,原来是隔壁二号车间、五号车间、八号车间的几个家伙。

“你们几个这么闲,要不来帮我们干会儿活?”

“哎,你想得美,你们一号核是引导处理器(BSP),待遇比我们好,这开机启动的活儿我们怎么能抢呢?”,二号车间的虎子阴阳怪气的说到。

真是羡慕他们,比我们1号车间上班时间晚,每次都可以多睡会儿。

MBR我继续执行BIOS中的代码,一切检查完毕,没什么异常,要准备启动操作系统大佬了。

接下来,我检查了BIOS中配置的启动顺序,排在第一位的是硬盘兄弟。

于是我把硬盘老哥第0盘第0道第1扇区的内容读取到了内存中的0x7C00位置,他们把这玩意叫做主引导记录MBR,一共512个字节。

听硬盘那哥们说,这是操作系统老大在安装的时候,写到他那里的。

他还告诉我,这个位置很重要,曾经就有病毒占据了这个位置,最后没办法只好重装系统。

2ed64e1e-a2d1-11eb-aece-12bb97331649.png

MBR

读取到了MBR后,还得检查最后两个字节必须是0x55和0xAA,看起来没什么问题,是一个合法的MBR,我们又跳到了0x7C00的位置开始执行。

操作系统终于来到操作系统的地盘儿了,在操作系统的指示下,我们切换了工作模式,开始在保护模式下工作了!

刚刚切换到保护模式下,MMU仍然没法做地址翻译工作,我们还是只有直接使用物理地址跟内存联系,所以得赶紧把页目录和页表准备妥当才行。

忙活了一阵子之后,总算把需要的东西都弄好了,我激动的打开了内存分页的开关,通知MMU部门开始工作,现在我们可以使用虚拟地址访问内存了,这感觉棒多了!

2ee10b6a-a2d1-11eb-aece-12bb97331649.png

这时,一旁围观的二号车间、五号车间、八号车间那几个家伙见状赶紧遛了回去,因为他们知道,马上就该他们工作了。

我们继续执行操作系统的代码,给咱们CPU其他所有核都准备好了数据和指令,创建了多个线程出来,把他们也叫起来一起工作,咱们这个八核CPU终于全面开动起来,一下子热闹了不少。

再后来,不知执行了多少指令,创建了多少线程,才把操作系统老大完整的运行了起来,成功完成了这一次的启动。

这就是通电后,我们CPU开始工作的日常,我已经记不清这是第多少次启动了,也不知道,我们还能启动多少次···

原文标题:按下电源后的几秒钟,CPU在干嘛?

文章出处:【微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电路
    +关注

    关注

    171

    文章

    5541

    浏览量

    170290
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10536

    浏览量

    207631

原文标题:按下电源后的几秒钟,CPU在干嘛?

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ESP32-C3的USB在计算机上识别的COM口能够干什么用?

    VSCODE+PLATFORMIO或ECLIPCE的调试配置过程出一个教程(采用ESP32-C3 USBJTAG) 2:ESP32-C3的USB在计算机上识别的COM口能够干什么用?资料上介绍可下
    发表于 06-21 06:41

    工业计算机与普通计算机的区别

    在信息化和自动化日益发展的今天,计算机已经成为了我们日常生活和工作中不可或缺的工具。然而,在计算机领域中,工业计算机和普通计算机虽然都具备基本的计算
    的头像 发表于 06-06 16:45 231次阅读

    美国云服务器是干什么

    美国云服务器主要用于提供计算资源、托管网站、应用程序以及存储数据等。很多用户想要了解美国云服务器具体是干什么的,rak部落小编为您整理发布美国云服务器是干什么的。 美国云服务器是一种
    的头像 发表于 04-10 10:16 211次阅读

    【量子计算机重构未来 | 阅读体验】+量子计算机的原理究竟是什么以及有哪些应用

    来的,看了本书第一部分内容,有了点认识,但是感觉还是迷糊,还是没有弄清楚什么是量子计算机,尤其是其原理。以下是个人读完之后的一些理解。 书中1.4章节,以解决交通拥堵问题为例进行了距离,对比了传统方法和量子
    发表于 03-11 12:50

    【量子计算机重构未来 | 阅读体验】+ 初识量子计算机

    欣喜收到《量子计算机——重构未来》一书,感谢电子发烧友论坛提供了一个让我了解量子计算机的机会! 自己对电子计算机有点了解,但对量子计算机真是一无所知,只是听说过量子纠缠、超快的运算速
    发表于 03-05 17:37

    美国云服务器是干什么

    对于美国服务器是干什么的,相信很多小白用户不是非常了解,接下来小编就为您整理发布美国云服务器是干什么的相关资讯,希望对您有帮助。
    的头像 发表于 02-19 09:53 261次阅读

    云服务器是干什么

     云服务器是干什么的?很多小白用户会有疑惑,今天小编为您整理云服务器是干什么的相关资料,希望对您了解云服务器是干什么的有帮助。
    的头像 发表于 02-18 09:58 1094次阅读

    什么是温补晶振?温补晶振是干什么的?

    泛应用,如计算机、手机、通信设备等。温补晶振的目的是通过对晶体振荡器的温度补偿,使其频率输出能够在不同温度环境下保持高精度和稳定性。 晶体振荡器一般是由石英晶体、IC芯片和封装电路组成的。石英晶体是其中最重要的组件,它对于
    的头像 发表于 01-23 16:42 478次阅读

    微机原理和计算机组成原理的区别

    来看微机原理和计算机组成原理的区别。微机原理是指微型计算机的工作原理,主要包括计算机的基本组成和运行原理,如中央处理器(CPU)、存储器、输入输出设备等,以及它们之间的连接方式和控制方
    的头像 发表于 01-14 14:56 1678次阅读

    工业计算机的应用

    工业计算机在半导体设备上的应用,具体在哪一方面。比如说图像处理使用什么样的计算机,工业控制使用哪一方面的计算机
    发表于 09-12 14:19

    cmos技术在计算机中的应用

    降低,速度提高,传输距离延长,从而在计算机领域有着广泛的应用。本文将详细介绍CMOS技术在计算机中的应用。 1. CPU CPU计算机中最
    的头像 发表于 09-05 17:39 1218次阅读

    什么是阻焊,阻焊的目的是干什么

    什么是阻焊,阻焊的目的是干什么
    的头像 发表于 08-28 07:45 4306次阅读

    手机里的npu是什么意思?手机npu是干什么的?

    。 什么是NPU? NPU,全称神经处理单元(Neural Processing Unit),是一种专门用来处理人工智能计算的芯片,它是一种对计算机网络算法架构进行优化的结构,是将深度神经网络计算从中央处理器(
    的头像 发表于 08-27 17:08 4177次阅读

    计算机组成与设计

    计算机组成与设计 计算机组成与设计是计算机科学中最基础的课程之一,它主要阐述了计算机的组成原理和设计方法。随着计算机技术的快速发展,
    的头像 发表于 08-17 12:37 1031次阅读

    人工智能计算中心是干什么

    人工智能计算中心是干什么的  人工智能计算中心是指一种计算机设施,专门用于进行人工智能领域的研究和开发工作。它是解决人工智能技术难题和推进人工智能发展的关键基础设施之一。 人工智能
    的头像 发表于 08-15 16:06 1055次阅读