0.7 cpu collection

Changelogs:2024-03-23,语雀导出md,图片无法显示问题已解决。

0.7 cpu collection.pdf

1. cpu

了解CPU知道这些就够了! 下面这个视频集合都会讲到。

https://youtu.be/sK-49uz3lGg?si=I6EL--S8OclMYBCk

CPU(中央处理器)是计算机的核心组件,它包括多个内部组成部分,这些部分协同工作以执行各种计算和控制任务。以下是 CPU 内部的一些主要构成部分:

构件

描述

控制单元(Control Unit)

控制单元负责协调和管理 CPU 内部的操作。它从内存中获取指令,解码它们,并确保正确的操作执行。

算术逻辑单元(ALU)

算术逻辑单元执行各种算术和逻辑运算,如加法、减法、乘法、除法、与、或、非等。

寄存器(Registers)

寄存器是高速存储器件,用于暂时存储数据和地址。其中包括通用寄存器、指令寄存器、程序计数器等。

缓存(Cache)

缓存是高速临时存储器,用于存储最常用的数据和指令。它有助于提高 CPU 访问内存的速度。

时钟(Clock)

时钟是 CPU 的节拍器,它以固定的速度发出脉冲信号,用于同步 CPU 内部的各个操作。

数据总线(Data Bus)

数据总线用于在 CPU、内存和其他设备之间传输数据。它确定了一次可以传输多少位的数据。

地址总线(Address Bus)

地址总线用于指示内存中的特定位置或外部设备的地址。它确定了 CPU 可以访问的地址范围。

2. cpu 内部长什么样子

https://youtu.be/_4LtRvYW2I8?si=6ax4NHB6RjhF1sQ6 暴力拆解电脑CPU,AMD处理器内部长什么样子?放大1000倍看的清清楚楚!

3. intel 和 amd 历史

3.1 intel

记住几个重要的时间节点:

【【小白科普】回顾CPU发展史 intel和AMD的爱恨情仇】 【精准空降到 01:57】 https://www.bilibili.com/video/BV1Ct4y1G72m/?share_source=copy_web&vd_source=59d47afd43812c161ca8ef67a1dfea4d&t=117

  • 1968年英特尔成立

  • 1971年 intel 4004处理器 4位处理器 具有革命性意义的

  • 1972年 intel 8008 处理器 8位处理器

  • 1974年intel 8080 处理器出现,个人计算机 Altair8800 也采用 intel8080 处理器 8位处理器

  • 1978年 intel 8086 处理器 16位处理器 x86-16

8086在三年后为IBM PC(https://zh.wikipedia.org/wiki/IBM_PC)(1981年,其实采用的是8086变体8088处理器)所选用,之后 x86 便成为了个人电脑的标准平台,成为了历来最成功的CPU架构。

The Intel ® 8086 and the IBM PC

https://www.intel.com/content/www/us/en/history/virtual-vault/articles/the-8086-and-the-ibm-pc.html

IBM PC 在那个年代真的是大卖特卖! 超越Apple II。

intel 8086 处理器非常重要,现代CPU的第一个真正祖先就是 intel 8086 :the first proper ancestor of the modern CPU the intel 8086

笔记: x86架构需要在后面细细学习!已然成为PC的事实标准。x86 的 86 就是因为 8086 处理器的 86 而来。

  • 1985年 intel 80386 处理器 32位处理器 x86-32 IA-32 Intel Architecture 32bit x86 i386

https://zh.wikipedia.org/zh-tw/Intel_80386

  • 1993年 奔腾处理器 32位处理器

【【小白科普】回顾CPU发展史 intel和AMD的爱恨情仇】 【精准空降到 04:27】 https://www.bilibili.com/video/BV1Ct4y1G72m/?share_source=copy_web&vd_source=59d47afd43812c161ca8ef67a1dfea4d&t=267

【进化史 - 英特尔 处理器 (1971-2018)】 https://www.bilibili.com/video/BV1zW411z7ku/?share_source=copy_web&vd_source=59d47afd43812c161ca8ef67a1dfea4d

3.2 amd

  • 1969年AMD成立

  • 2003年 AMD 速龙64 x86-64 首款64位的x86架构CPU x86_64 amd64

  • 2005年 AMD 速龙64 X2 双核处理器

  • 2016年 AMD RYZEN 锐龙系列 Zen结构 8核处理器 AMD走出“至暗时刻”

【历史首位女性:AMD CEO苏姿丰获半导体界最大奖】 【精准空降到 02:47】 https://www.bilibili.com/video/BV1iT4y1Z7nV/?share_source=copy_web&vd_source=59d47afd43812c161ca8ef67a1dfea4d&t=167

【AMD进化史 (1975-2019)】 https://www.bilibili.com/video/BV1GJ411v7mo/?share_source=copy_web&vd_source=59d47afd43812c161ca8ef67a1dfea4d

4. CPU 内部组成

【【CPU科普】油管搬运,中文字幕,CPU的构成和工作原理】 【精准空降到 01:52】 https://www.bilibili.com/video/BV1QS4y1R7Ce/?share_source=copy_web&vd_source=59d47afd43812c161ca8ef67a1dfea4d&t=112

把 CPU 理解成输入输出中的黑匣子,CPU 里用晶体管封着,暴露的引脚,每个引脚负责将电子信号传入和传出芯7片。 再一次提到cpu从内存中提取数据,cpu 要 “翻译” 成二进制。

CPU 工作:

  • fetch 获取

  • decode 解码

  • execute 执行

Control Unit 类似一个乐队的指挥,包括电路系统,该系统用电信号指示整个计算机系统执行存储程序指令,计算机程序存储在HDD和SSD等存储设备中,当执行这些程序的时候,它们会进入内存执行。

ALU: Arithmetic logic unit 算术逻辑单元 ALU是置于CPU内部的数字电子电路,ALU是CPU的基本构件。

ALU负责整数运算和位逻辑运算,非整数运算CPU怎么处理? 浮点数计算和整数运算的不同到底在哪里?

CPU的运行速度由其时钟周期决定 时钟周期 clock cycle

5. cpu 如何与数据交互

二进制01可以表示任何其他的双态值(bi-state value),在cpu中,“bit”位在物理上以电压电平的形式传输。

  • 位 bit

  • 字节 byte

  • 字 word 字以其位容量表示 32位字包含32位 a 32-bit word contains 32 bits, a 64-bit word contains 64 bits and so on.

4004处理器 4位,就意味着通过 cpu 传输的数据,一次以四位块为单位进行传输(chunks of four bits at time)

cpu 需要加载数据字的时候,我就向 ram 去申请一个位置,ram 行,我给你留好了,你来找吧。

“找”的过程,就是在寻址。 例如4004 处理器, 4位就是1个字,我要找地方,我只能寻址16个数据位置。假如说有100个房子、空间,我给你开了间房98号,我要把1个字放进去,我找,但是我一口气只能找16个房间,没找到再找呗,这就是寻址。

我一次能找多少,是由我的寻址容量来决定的。寻址容量就理解成,一口气走多远。

寻址容量 address capacity 寻址 adressing

数据在 ram 中来回移动的机制成为总线。 内存位置的地址存储在 cpu 中,存、记下来,这个怎么办到的? 寄存器 register.

register "notepad" by cpu operstions 寄存器就理解成cpu的记事本。它通常用作指令的临时数据存储,速度很快,这个寄存器。

6. intel 8086 引入的多任务处理

【进击的CPU三部曲之CPU原理、X86的崛起、操作系统的诞生】 https://www.bilibili.com/video/BV1ht411E7kt/?p=3&share_source=copy_web&vd_source=59d47afd43812c161ca8ef67a1dfea4d

mutitasking 多任务处理,我们进入到 cpu 多任务处理部分。

为了同时处理多个进程,随着 cpu在内存中不断地从程序切换到程序(程序是在memory中运行的), 第一我们需要一种能够管理内存中这些进程的机制,第二我们还需要一种方法来防止一个进程使用分配给另一个进程的内存(但是它们之间可以communicate,上文提到 IPC进程间通信),这个问题怎么解决呢?

加一个东西呗,MMU 专门用来管理内存。cpu 需要要执行的你告诉我,ok,我给你合理分配,别的你不用操心了。 MMU 就是专门干这个活,就是来帮你“管理内存”。相当于什么?你在家教孩子没教好,你要把孩子送去学校,去学校学习,或者你请一个家教,类似这个意思。

所以说鉴于 MMU 的这个“管理内存”的任务,它有一个特性就是“memory protection”,内存保护是多任务处理的关键机制,它不但能有效隔离系统的其他资源,而且还能确保系统不受恶意代码 xxx 之类的“破坏”、“伤害”。

mmu 本身呢,它也有自已的机制,虚拟内存“virtual memory”,也是一种内存管理技术,现在不是进入多任务处理的时代了么,虚拟内存这个东西有什么用?可以提到效率。 虚拟内存怎么做呢?就是通过将内存访问从逻辑位置映射到物理位置来实现。 再回想上文提到的,cpu 向内存提出申请内存空间的请求,内存说可以,但是 cpu呢,在内存给你说你是几号房间之前,你是不知道的 unpredictable。

7. Windows 操作系统

贴几个很有意思的视频:

【为什么windows在桌面端能成为霸主级的操作系统1-计算机硬件发展速览】 【精准空降到 00:00】 https://www.bilibili.com/video/BV1PG4y1b7Vq/?share_source=copy_web&vd_source=59d47afd43812c161ca8ef67a1dfea4d&t=0

【【结局】微软如何一招致胜?】 【精准空降到 00:01】 https://www.bilibili.com/video/BV1X14y1E7ot/?share_source=copy_web&vd_source=59d47afd43812c161ca8ef67a1dfea4d&t=1

https://opensource.com/article/18/4/gentle-introduction-freedos 一篇介绍FreeDOS的文章

原来有一个时代是“DOS(磁盘操作系统)”,在这之后才有了 Windows。在 MS-DOS 之前,专门为 IBM PC开发的 PC DOS 也奠定了微软在该行业的主导地位。MS-DOS 对微软来说有很深远意义,Windows95 也是。

8. 总结

从单任务到多任务,从单核到多核,从没有现代操作系统到有,这些从无到有的过程,都是直面现实问题困境,比如效率。

我怎么去解决效率问题,我 CPU 跑的很快,我程序能不能跟上? 我怎么把性能发挥出来,这些其实还是效率问题,解决效率问题推动了个人PC的发展,一系列的革新。从今天来看也是,这些发明都太 amazing 了,然后你还能体会到“标准”和“生态”的重要意义,很多我们现在在用到的东西,在使用的产品 or 技术背后,其实在十几年、几十年前已经存在了,并成为那个时代的标准,我们在沿用也在革新这个“标准”。

Last updated