首页 / 知识库 / 进大厂必备计算机基础 / 计算机组成原理

04 - CPU 在干什么

CPU 被称为电脑的「大脑」,听起来很玄。但它的工作模式其实简单到有点无聊——它只是在没完没了地重复同一个循环。这一章讲清楚这个循环,你就懂 CPU 了。

CPU 只会做一件事:执行指令

CPU 不理解「打开微信」「渲染网页」这种高级任务。它只认识一小撮极其简单的指令,比如:

  • 把内存某个位置的数,搬进 CPU;
  • 把两个数加起来;
  • 比较两个数谁大;
  • 跳到程序的第几条指令去继续执行。

这些简单指令的集合,叫指令集。你写的任何高级代码(Python、Java……),最终都会被翻译成一长串这样的简单指令,CPU 一条条执行。

CPU 像个只会照着卡片做事的工人:每张卡片上是一个极简单的动作(「拿起 3 号盒子里的数」「把这俩加起来」)。它不懂大局,但把成千上万张卡片飞快执行完,复杂的任务就完成了。

核心循环:取指 → 解码 → 执行

CPU 干活就是一个永不停歇的三步循环,叫指令周期

   ┌──────────────────────────────────┐
   │                                  │
   ▼                                  │
① 取指令   ──▶  ② 解码   ──▶  ③ 执行 ─┘
(从内存取     (看懂这条      (真正干活:
 出下一条)     指令要干嘛)    算/存/跳转)
  1. 取指令(Fetch):控制器根据一个叫 PC(程序计数器) 的「书签」,从内存里取出下一条要执行的指令。
  2. 解码(Decode):分析这条指令是干什么的(加法?搬数据?跳转?),需要哪些数据。
  3. 执行(Execute):交给 ALU 真正干活——做运算、存结果,或者跳到别处。
  4. 更新那个「书签」PC,指向下一条,回到第 1 步。

一秒钟,这个循环要转几十亿次。所谓 CPU 「主频 3.0 GHz」,粗略说就是它一秒能推进约 30 亿个这样的基本节拍(第 07 章细讲)。

几个关键小部件

CPU 内部有几个你该认识的角色:

  • 控制器:总指挥,负责取指令、解码、协调各部件(第 03 章提过)。
  • ALU:干实际运算的(第 02 章那个算术逻辑单元)。
  • 寄存器(Register):CPU 内部极少量、极快的临时存储格子。CPU 干活时,正在用的数据就暂存在这里,比去内存拿快得多(第 06 章细讲)。
  • PC(程序计数器):那个记录「下一条指令在哪」的书签。

为什么「跳转」指令这么重要

你可能疑惑:光是「一条接一条往下执行」,怎么实现 if 判断for 循环 这些?

靠的就是跳转指令——它能修改那个「书签」PC,让 CPU 不按顺序走,而是跳到别的位置:

  • if:比较一下,条件成立就跳到 A 段代码,不成立就跳到 B 段。
  • for / while:干完一轮,跳回循环开头再来一遍。

有了「顺序执行 + 有条件地跳转」,CPU 就能表达出程序里所有的分支和循环。你写的每一个 if 和 for,底层都变成了「比较 + 跳转」。

小结

  • CPU 只认识一小撮极简单的指令(搬数、运算、比较、跳转),它们的集合叫指令集;高级代码最终都被翻译成这些指令。
  • CPU 的工作就是永不停歇地循环:取指令 → 解码 → 执行,一秒转几十亿次。
  • 关键部件:控制器(指挥)、ALU(运算)、寄存器(超快临时存储)、PC 程序计数器(记录下一条指令在哪)。
  • 跳转指令能改写 PC,从而实现 if 分支和 for 循环——顺序执行 + 有条件跳转,就够表达一切逻辑。

下一章 → 05 - 内存:数据的临时仓库 | 回到 README 目录