第3章:重学计算机大脑CPU

《重学计算机》系列中第3章:重学计算机大脑 CPU主要讲的是:CPU 是如何工作的,以及程序是如何在 CPU 上被执行的。下面给你用通俗但完整的方式梳理这一章的核心内容 🧠


一、CPU 是什么(计算机的大脑)

CPU(Central Processing Unit,中央处理器)是计算机负责 执行指令和处理数据 的核心部件。

简单理解:

  • 内存:存数据
  • 硬盘:长期存储
  • CPU:负责计算和执行程序

当你运行一个程序时,本质上就是:

CPU 从内存中取出指令 → 解释 → 执行


二、CPU 的核心组成

一个 CPU 主要由三个核心部分组成:

1. 控制器(Control Unit)

作用:指挥整个 CPU 工作

它负责:

  • 从内存取指令
  • 解码指令
  • 控制各个部件执行

就像 指挥官


2. 运算器(ALU)

ALU(Arithmetic Logic Unit)负责:

  • 加减乘除
  • 位运算
  • 比较运算

例如:

3 + 5
10 > 8

这些都是 ALU 完成的。


3. 寄存器(Registers)

寄存器是 CPU 内部的超高速小内存

特点:

  • 比内存快很多
  • 容量非常小
  • 存放当前计算的数据

常见寄存器:

  • PC(Program Counter)
    存储下一条指令地址
  • IR(Instruction Register)
    当前执行的指令
  • 通用寄存器
    存放数据

三、CPU 是如何执行程序的

CPU 执行程序遵循一个循环,叫:

取指 → 译码 → 执行

英文:

Fetch → Decode → Execute

流程如下:

第一步:取指(Fetch)

CPU 根据 PC 寄存器 的地址:

从内存取出一条指令

例如:

ADD R1, R2

第二步:译码(Decode)

CPU 判断:

这条指令要干什么

比如:

ADD = 加法

控制器就会安排 ALU 工作。


第三步:执行(Execute)

ALU 开始运算:

R1 + R2

结果再写回寄存器或内存。


第四步:更新 PC

PC 指向:

下一条指令

然后继续循环。


整体循环:

取指 -> 译码 -> 执行 -> 下一条指令

这个循环每秒可以执行 几十亿次


四、指令到底长什么样

在 CPU 眼里,所有程序其实都是:

二进制

例如:

10110000

这可能表示:

MOV AX, 1

因此:

高级语言 (Java/Python)
      ↓
编译
      ↓
汇编语言
      ↓
机器码(二进制)
      ↓
CPU执行

五、为什么寄存器这么重要

CPU 访问速度排行:

寄存器  >  L1缓存  >  L2缓存  >  内存  >  硬盘

速度差距巨大。

举例(大概量级):

存储访问时间
寄存器~1ns
缓存~3ns
内存~100ns
硬盘~10ms

所以程序优化很大程度是:

尽量让数据留在寄存器和缓存


六、为什么 CPU 可以并行

现代 CPU 不只是简单执行指令,还会:

1. 指令流水线(Pipeline)

把执行过程拆成阶段:

取指
译码
执行
访存
写回

像流水线一样:

指令1: 取指
指令2:      取指
指令3:           取指

多个指令同时处理。


2. 多核(Multi-Core)

一个 CPU 里面有多个核心:

Core1
Core2
Core3
Core4

可以并行执行多个任务。


3. 超标量执行

CPU 一次可以执行:

多条指令

而不是一条。


七、CPU 执行程序的完整路径

一个程序运行大致流程:

程序启动
   ↓
加载到内存
   ↓
CPU取指
   ↓
译码
   ↓
执行
   ↓
写回结果
   ↓
继续下一条

直到:

程序结束

八、本章核心总结

这一章最核心只有 3 个点

1 CPU 的结构

CPU =
控制器 + 运算器(ALU) + 寄存器

2 CPU 的工作循环

取指
↓
译码
↓
执行
↓
下一条

循环执行。


3 程序的本质

所有程序最终都会变成:

机器指令(二进制)

由 CPU 一条一条执行。


如果你愿意,我可以继续给你讲这一章最关键但很多人忽略的三个概念

1️⃣ 为什么 CPU 需要缓存(Cache)
2️⃣ 为什么会有分支预测
3️⃣ 为什么 CPU 主频不是越高越好

这三个其实是理解 现代 CPU 性能的关键

文章已创建 5021

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部