导学(一)| 拆解CPU的基本结构和运行原理

你好,我是海纳。

在开始正式的课程之前,我专门为你设置了三节导学课,目的是帮你打好基础,扫清一些知识盲区,这样你学习这个课程会更加轻松、高效。

导学部分共有三节课,都是以视频方式讲述的,内容比较多,但我保证干货十足,非常值得你花时间好好观看学习。

今天这节导学课,我们会来拆解CPU的基本结构和运行原理。我们知道,CPU 作为计算机的总司令官,它管理着计算机的所有资源。它有两个主要的作用,分别是计算和控制。其中,计算主要是指逻辑数值运算,控制则体现在对数据传输,输入输出的控制上。可以想象,CPU在内存管理方面一定发挥着重要的作用。

CPU的基本架构,包含了运算器、寄存器、内存管理单元等模块。我在视频中会对这些模块的构成原理、运行原理以及其作用进行介绍。

了解了基本架构之后,我们还会从CPU运行的角度出发,来深入理解机器码和中断的原理。为什么我要给你讲机器码和中断呢?

这是因为程序员可以通过编程来指挥CPU为人们工作,而对 CPU 发号施令的就是机器码。此外,CPU 在与外设交互时,最重要的机制就是中断,内存、磁盘 IO、网络 IO 有很多功能都是依赖中断完成的,所以,不管是系统级程序员,还是应用开发程序员,深刻地理解中断也是你的必备技能之一。

好,不啰嗦了,现在就请你点开下面的视频,来学习今天的课程吧!

点击这里获取课件,提取码:hn66。

精选留言

  • 冬风向左吹

    2021-11-07 20:31:37

    视频尽然不能倍速播放。。。
  • 分清云淡

    2021-11-07 16:37:43

    CPU这20年主频没法提升的核心原因是:频率提升就必然导致电压提升(3倍指数提升),这是因为频率高了,因为晶体管的门延迟效应,必须加大电压来抵消这个门延迟,所以一昧提升频率得不偿失(能耗高),另外温度控制不住,所以最终大家都选择了2-3G主频这个区间。特别追求主频的也有做到5G的,是用能耗高换来的,实操意义不大
  • 我爱裸奔

    2022-01-25 17:43:36

    极客看到目前最好的课程
  • 2021-10-27 14:14:54

    CPU 多核,大核和小核 有什么区别的?
    作者回复

    大核频率高,电路更复杂,计算能力更强,功耗高;小核反之。这是为了适应不同特点的任务。有的任务时间敏感就调度给大核,有的任务时间长但性能要求不高就交给小核。任务的核间调度算法是大小核架构上的重要优化方向。

    2021-10-27 17:42:52

  • 海生

    2021-12-25 20:22:10

    中断常规的就是楼主讲的,不过增加了芯片的管脚,后来发明了msi和msi-x技术,增加描述寄存器,通过带内总线来发中断。
    作者回复

    顶你上精选评论!

    2021-12-27 23:21:17

  • 伯阳

    2021-11-12 09:33:39

    感觉这种东西有点难啊 老师
    作者回复

    嗯。要记的东西有点多,难是不难的。加油!

    2021-11-20 10:33:05

  • 小时候可鲜啦

    2021-11-04 15:31:22

    CPU刷新流水线的目的是啥?
    作者回复

    它也不想啊:(,它在遇到分支指令的时候会猜一个去执行,如果发现最后猜错了,只好把流水线排空,再去把对的拿进来执行。

    2021-11-07 17:59:31

  • Stormouble

    2021-11-17 09:49:31


    老师,关于CPU乱序执行有一个疑惑:乱序执行下,为保证顺序,会把指令的执行结果会被写入到重排序缓存ROB中,按照原有顺序进行提交。既然会保证顺序,那么为什么会出现因为乱序执行导致的并发问题呢?
    举个例子;
    cpu1: load 地址B 寄存器B;store 100 地址A
    cpu2: load 地址A 寄存器A;store 200 地址B
    假设cpu1乱序执行,先执行store指令,再执行load指令,cpu2顺序执行,初始时地址A、B的值为0。在cpu1执行完store指令后,cpu2开始执行load指令,这个时候cpu1看到的值可能是100吗?
    作者回复

    这个问题产生的原因非常复杂,我们在第15课会有详细解释,欢迎持续关注。如果看完第15课,还不能解决你的问题,你可以继续提问。

    2021-11-19 20:54:36

  • 秋天的树

    2024-07-30 21:49:03

    老师cpu响应中断跟人脑响应外部事件原理一样吗
  • Geek_a851a9

    2023-05-17 05:27:11

    老师很强居然录了视频 话不多说,老师你录了我就学了
  • 当初莫相识

    2022-10-20 23:14:54

    视频能在其他地方播放吗,这里不能缓存,没法在地铁上看,也不能倍速
  • Geek_225244

    2022-01-19 10:47:26

    PPT生成汇编地方,采用-S选项的 GCC 编译过程会为每个被编译的输入文件生成以.s作为后缀的汇编语言文件,变量的名称作为汇编语言语句中的注释,可以加上-fverbose-asm选项:
    PPT用的是误写成 -s(小写),这个参数会把符号表从最终的可执行文件中删除。
  • 海生

    2021-12-25 20:11:13

    ARM中针对大于32位位宽的操作数,通过增加单独一个得特殊寄存器,并标记有效位宽来实现
  • 海生

    2021-12-25 20:05:35

    ARM好像也是跟这个汇编指令方向相反
  • 海生

    2021-12-25 19:54:52

    Arm使用r15来做pc
  • 海生

    2021-12-25 19:52:29

    楼主会讲arm得汇编吗?
    作者回复

    一点点,主要是arm的服务器不太容易搞。虽然手机很多,但是手机上的相关调试工具少了一点,所以还是拿大家最熟悉的x86来讲。我看你对arm已经很熟悉了呀。

    2021-12-27 23:22:43

  • 海生

    2021-12-25 19:38:15

    这个是经典的soc设计架构,现在都是采用NOC来规避总线的弊端。总线技术从单总线然后是crossbar一直发展到现在的NOC全局异步局部同步技术。
  • 海生

    2021-12-25 19:34:10

    图灵完备性要求实现.或和异或就可以,数理完备性要求实现加和乘法就可以。二者可以转换
  • HollyWong

    2021-11-10 11:38:52

    段寄存器在8086里是直接存放段基址,但是在286以上也是有用的,存放的是段选择子,用它到段表里找段描述符,然后在段描述符里有段基址。所以一直有用,不能说段寄存器没用了。
    作者回复

    i386的段选择子我们已经讲了。你再看看64位是怎么处理的呢?

    2021-11-10 14:47:42

  • John

    2021-10-26 13:53:38

    请问有简报档案吗?