操作系统实战45讲
彭东
网名 LMOS,Intel 傲腾项目关键开发者
新⼈⾸单¥59.9
11996 人已学习
课程目录
已更新 47 讲 / 共 47 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 为什么要学写一个操作系统?
免费
尝尝鲜:从一个Hello到另一个Hello (2讲)
01 | 程序的运行过程:从代码到机器运行
02 | 几行汇编几行C:实现一个最简单的内核
心有蓝图:设计 (2讲)
03 | 黑盒之中有什么:内核结构与设计
04 | 震撼的Linux全景图:业界成熟的内核架构长什么样?
程序的基石:硬件 (3讲)
05 | CPU工作模式:执行程序的三种模式
06 | 虚幻与真实:程序中的地址如何转换?
07 | Cache与内存:程序放在哪儿?
基本法:同步原语 (2讲)
08 | 锁:并发操作中,解决数据同步的四种方法
09 | 瞧一瞧Linux:Linux的自旋锁和信号量如何实现?
夺权:启动初始化 (6讲)
10 | 设置工作模式与环境(上):建立计算机
11 | 设置工作模式与环境(中):建造二级引导器
12 | 设置工作模式与环境(下):探查和收集信息
13 | 第一个C函数:如何实现板级初始化?
14 | Linux初始化(上):GRUB与vmlinuz的结构
15 | Linux初始化(下):从_start到第一个进程
土地革命:内存 (8讲)
16 | 划分土地(上):如何划分与组织内存?
17 | 划分土地(中):如何实现内存页面初始化?
18 | 划分土地(下):如何实现内存页的分配与释放?
19 | 土地不能浪费:如何管理内存对象?
20 | 土地需求扩大与保障:如何表示虚拟内存?
21 | 土地需求扩大与保障:如何分配和释放虚拟内存?
22 | 瞧一瞧Linux:伙伴系统如何分配内存?
23 | 瞧一瞧Linux:SLAB如何分配内存?
活动实体:进程 (4讲)
24 | 活动的描述:到底什么是进程?
25 | 多个活动要安排(上):多进程如何调度?
26 | 多个活动要安排(下):如何实现进程的等待与唤醒机制?
27 | 瞧一瞧Linux:Linux如何实现进程与进程调度?
下属部门:设备I/O (4讲)
28 | 部门分类:如何表示设备类型与设备驱动?
29 | 部门建立:如何在内核中注册设备?
30 | 部门响应:设备如何处理内核I/O包?
31 | 瞧一瞧Linux:如何获取所有设备信息?
银行仓库:文件系统 (4讲)
32 | 仓库结构:如何组织文件?
33 | 仓库划分:文件系统的格式化操作
34 | 仓库管理:如何实现文件的六大基本操作?
35 | 瞧一瞧Linux:虚拟文件系统如何管理文件?
通信部:网络 (5讲)
36 | 从URL到网卡:如何全局观察网络数据流动?
37 | 从内核到应用:网络数据在内核中如何流转
38 | 从单排到团战:详解操作系统的宏观网络架构
39 | 瞧一瞧Linux:详解socket实现与网络编程接口
40 | 瞧一瞧Linux:详解socket的接口实现
服务交接:接口 (2讲)
41 | 服务接口:如何搭建沟通桥梁?
42 | 瞧一瞧Linux:如何实现系统API?
番外篇:虚化的世界 (3讲)
43 | 虚拟机内核:KVM是什么?
44 | 容器:如何理解容器的实现机制?
45 | ARM新宠:苹果的M1芯片因何而快?
特别放送 (1讲)
用户故事 | 成为面向“知识库”的工程师
操作系统实战45讲
15
15
1.0x
00:00/00:00
登录|注册

45 | ARM新宠:苹果的M1芯片因何而快?

你好,我是 LMOS。
前面两节课,我们一起学习了虚拟机和容器的原理,这些知识属于向上延展。而这节课我们要向下深挖,看看操作系统下面的硬件层面,重点研究一下 CPU 的原理和它的加速套路。
有了这些知识的加持,我还会给你说说,为什么去年底发布的苹果 M1 芯片可以实现高性能、低功耗。你会发现,掌握了硬件的知识,很多“黑科技”就不再那么神秘了。
好,让我们正式开始今天的学习!

CPU 的原理初探

经过前面的学习,我们已经对操作系统原理建立了一定认知。从操作系统的位置来看,它除了能够向上封装,为软件调用提供 API(也就是系统调用),向下又对硬件资源进行了调度和抽象。我们通常更为关注系统调用,但为了更好地设计实现一个 OS,我们当然也要对硬件足够了解。
接下来,我们一起看一看硬件中最重要的一个硬件——CPU 是怎么工作的。让我们拆开 CPU 这个黑盒子,看一看一个最小的 CPU 应该包含哪些部分。不同架构的 CPU,具体设计还是有很大差异的。为了方便你理解,我这里保留了 CPU 里的共性部分,给你抽象出了 CPU 的最小组成架构。
CPU架构图
对照上图描绘的基本模块,我们可以把 CPU 运行过程抽象成这样 6 步。
1. 众所周知,CPU 的指令是以二进制形式存储在存储器中的(这里把寄存器、RAM 统一抽象成了存储器),所以当 CPU 执行指令的时候,第一步就要先从存储器中取出(fetch)指令。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
该试读文章来自付费专栏《操作系统实战45讲》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥59.9
立即订阅
登录 后留言

精选留言(4)

  • pedro
    risc-v最近太火了,没有历史包袱,设计又足够精妙,谁能不爱呢。

    作者回复: 哈哈

    2021-08-20
    1
    2
  • Fan
    哈哈哈,再来几篇Verilog。🐂🍺
    2021-08-20
    1
  • springXu
    请教东哥,intel那款20年前的IA64(安腾)处理器,也是CISC的指令集么? 目前主流RISC指令集就ARM了,mips已经被市场淘汰。RISC-V是开源的指令集,被众多公司所追捧了。还有IBM的PowerPC指令集。

    作者回复: 安腾不是

    2021-08-20
  • 苏流郁宓
    mips?risc-v?不过,risc指令集实际实现某些功能的步骤比cisc多,苹果的cpu优秀离不开先进的工艺,假如intel的cpu也用5nm工艺,就台式机的cpu的价格估计会翻不少价,当然性能也会好到爆。问题是市场需要吗,认可吗?如同作者所言,这也是商业模式有关,不同的模式决定不同的选择?

    作者回复: RISC在并行流水线上有优势 当然工艺先进是绝对的 可以集成更多晶体管了 就可以实现更多逻辑了

    2021-08-20
收起评论
4
返回
顶部