【计算机是怎样跑起来的】(二)CPU、内存、I/O 和总线到底是什么?

《计算机是怎样跑起来的》学习笔记(二):CPU、内存、I/O 和总线到底是什么?

一、前言:上一部分讲了什么?

在第一部分中,我们先理解了计算机的三大原则:

复制代码
输入 → 运算 → 输出

以及:

复制代码
软件 = 指令 + 数据

还有一个非常重要的观点:

复制代码
计算机内部的一切信息,最终都要转换成数字。

也就是说,计算机做任何事情,本质上都是接收输入、处理数字化的数据,然后输出结果。

但是,这里还有一个问题:

计算机到底靠什么来完成这些工作?

答案就是计算机硬件。

这一部分主要整理《计算机是怎样跑起来的》中关于硬件组成的内容,重点理解:

复制代码
CPU、内存、I/O、总线、时钟信号

这些概念是理解计算机工作原理的基础。


二、计算机硬件的基本组成

从最基础的角度看,一台计算机至少需要几个核心部分:

复制代码
CPU
内存
I/O 设备
总线
时钟信号

它们之间的关系可以简单理解为:

复制代码
CPU 负责处理
内存负责临时存放程序和数据
I/O 负责和外部交换信息
总线负责在各部分之间传递信息
时钟负责让整个系统按节奏工作

可以用一个通俗例子来理解。

假设计算机是一家餐厅:

计算机部件 餐厅类比 作用
CPU 厨师 按照菜谱处理食材
内存 操作台 临时摆放正在使用的食材和工具
硬盘 仓库 长期保存食材和资料
I/O 设备 点餐口、出餐口 接收顾客点单,输出做好的菜
总线 餐厅内部通道 传递食材、订单和结果
时钟信号 节拍器 让所有动作按节奏进行

计算机运行程序的过程,就像餐厅根据订单做菜:

复制代码
顾客点餐
↓
点餐信息进入餐厅
↓
厨师查看菜谱
↓
从操作台拿食材
↓
加工处理
↓
做好的菜送出去

对应到计算机中就是:

复制代码
输入数据
↓
数据进入内存
↓
CPU 读取指令和数据
↓
CPU 执行运算
↓
结果写回内存或输出到设备

三、CPU:计算机的大脑

1. CPU 是什么?

CPU,全称是 Central Processing Unit,中文叫中央处理器

它是计算机中最核心的部件之一,主要负责执行程序中的指令。

通俗理解:

CPU 就是计算机里的"执行者"。

程序让计算机做什么,最终都需要 CPU 去执行。

比如:

复制代码
计算两个数相加
判断密码是否正确
读取某个内存地址的数据
把结果写到某个位置
控制某个设备工作

这些操作最终都离不开 CPU。


2. CPU 并不是"什么都懂"

很多人会把 CPU 理解成"计算机的大脑",这个说法可以帮助入门,但要注意:

CPU 并不是真的会思考。

CPU 做的事情非常机械:

复制代码
取出一条指令
理解这条指令代表什么操作
执行这条指令
继续取下一条指令

它不会自己决定要做什么,只会按照程序给出的指令一步步执行。

可以把 CPU 想象成一个严格按照菜谱做菜的厨师:

复制代码
菜谱写:切菜
他就切菜

菜谱写:放油
他就放油

菜谱写:翻炒 3 分钟
他就翻炒 3 分钟

如果菜谱写错了,厨师也会照着错的步骤做。

程序也是这样。

如果程序逻辑写错,CPU 仍然会严格执行错误的指令。这也是为什么程序会出现 bug。


3. CPU 的基本工作过程

CPU 执行程序时,大致会重复下面几个步骤:

复制代码
取指令
↓
解释指令
↓
执行指令
↓
保存结果
↓
继续执行下一条指令

可以进一步理解为:

第一步:取指令

CPU 从内存中取出下一条要执行的指令。

程序运行时,指令通常存放在内存中。CPU 会按照地址去内存里取指令。

第二步:解释指令

CPU 判断这条指令是什么意思。

比如这条指令可能表示:

复制代码
把两个数相加
从内存读取数据
把数据写入内存
跳转到另一个地址

第三步:执行指令

CPU 根据指令完成对应操作。

例如执行加法、比较、跳转、读取数据等。

第四步:保存结果

如果运算产生了结果,CPU 会把结果保存到寄存器或内存中。

第五步:继续下一条指令

执行完一条指令后,CPU 会继续执行下一条指令。

整个程序就是这样一条一条执行下去的。


四、内存:程序运行时的临时工作区

1. 内存是什么?

内存,也叫主存,英文常称为 Memory 或 RAM。

它的作用是:

临时存放正在运行的程序和正在处理的数据。

电脑关机后,内存里的内容通常会消失,所以内存是临时性的。

通俗理解:

复制代码
硬盘像仓库,内存像工作台。

仓库可以长期保存东西,但取东西比较慢。

工作台空间有限,但拿取方便,适合处理当前正在做的事情。


2. 为什么程序运行前要加载到内存?

很多初学者会有一个疑问:

程序不是已经保存在硬盘里了吗?为什么运行时还要放到内存里?

这是因为 CPU 不能直接高效地从硬盘中一条条读取指令执行。

硬盘适合长期保存文件,但速度相对较慢。

内存速度更快,更适合 CPU 随时读取程序指令和数据。

程序运行的大致过程是:

复制代码
程序原本保存在硬盘中
↓
用户双击程序
↓
操作系统把程序加载到内存
↓
CPU 从内存读取指令
↓
程序开始运行

比如打开一个浏览器:

复制代码
浏览器程序文件保存在硬盘
↓
双击浏览器图标
↓
操作系统把浏览器相关内容加载到内存
↓
CPU 开始执行浏览器程序
↓
浏览器窗口显示出来

所以,程序只有保存在硬盘里是不够的。

要真正运行起来,必须被加载到内存中。


3. 内存为什么需要地址?

内存可以想象成一排很多很多的小格子,每个格子都能存放数据。

为了找到某个具体位置,每个内存单元都需要一个编号,这个编号就是内存地址

可以类比酒店房间:

复制代码
房间 101
房间 102
房间 103

服务员要找某个客人,不能只说"去那个房间",必须知道房间号。

内存也是一样。

CPU 要读取某个数据时,必须知道它在内存中的地址。

复制代码
CPU 发出地址
↓
内存根据地址找到对应位置
↓
把数据传给 CPU

4. 变量和内存地址的关系

在编程语言中,我们经常写变量:

复制代码
age = 18

从人的角度看,age 是一个变量名。

但从计算机角度看,这个变量背后对应的是内存中的某个位置。

可以理解为:

复制代码
变量名:方便人理解
内存地址:方便计算机查找
变量值:真正保存的数据

比如:

人看到的内容 计算机内部理解
age 某个内存地址
18 存放在该地址中的数据

变量名是给程序员看的,内存地址是给计算机使用的。


五、硬盘和内存有什么区别?

很多初学者容易把硬盘和内存混淆。

它们都能"存东西",但作用完全不同。

对比项 内存 硬盘
作用 临时存放正在运行的程序和数据 长期保存文件、软件、系统
速度 相对慢
容量 通常较小 通常较大
断电后数据 通常消失 仍然保存
类比 工作台 仓库

举个例子:

写一篇文章时:

复制代码
文章文件保存在硬盘中
↓
打开文档后,内容被加载到内存
↓
编辑过程中,CPU 处理内存中的内容
↓
点击保存后,修改结果写回硬盘

所以:

复制代码
硬盘负责长期保存
内存负责运行时临时使用
CPU 负责执行和处理

这三者配合起来,程序才能正常运行。


六、I/O:计算机和外部世界的通道

1. I/O 是什么?

I/O 是 Input/Output 的缩写,中文叫输入/输出

它指的是计算机和外部世界交换信息的过程。

输入设备负责把外部信息送入计算机;

输出设备负责把计算机处理结果展示或传递出去。


2. 常见输入设备

输入设备 作用
键盘 输入文字、数字、命令
鼠标 输入点击、移动、拖拽
摄像头 输入图像
麦克风 输入声音
扫描仪 输入纸质文档图像
传感器 输入温度、湿度、压力等信息
网卡 接收网络数据

3. 常见输出设备

输出设备 作用
显示器 显示文字、图像、视频
打印机 输出纸质文档
扬声器 输出声音
网卡 发送网络数据
指示灯 显示设备状态
电机 根据控制信号运动

需要注意的是,有些设备既可以输入,也可以输出。

比如网卡:

复制代码
接收网络数据 → 输入
发送网络数据 → 输出

硬盘也可以看作 I/O 设备:

复制代码
读取文件 → 输入
写入文件 → 输出

4. 为什么 CPU 不能直接和所有设备随便通信?

计算机连接的设备很多:

复制代码
键盘
鼠标
显示器
硬盘
打印机
网卡
摄像头
音箱

每个设备的工作方式都不一样。

CPU 如果要直接理解所有设备的细节,会非常复杂。

所以计算机系统通常会通过 I/O 控制器、接口、驱动程序等方式来管理设备。

可以通俗理解为:

复制代码
CPU 不直接和所有设备"说方言"
而是通过统一的接口和设备沟通

比如电脑要打印文件:

复制代码
应用程序发出打印请求
↓
操作系统处理请求
↓
打印机驱动把请求转换成打印机能理解的格式
↓
打印机开始工作

这就是为什么安装打印机时经常需要驱动程序。

驱动程序就像翻译:

复制代码
操作系统的话
↓
驱动程序翻译
↓
设备能听懂的指令

七、总线:计算机内部的信息道路

1. 总线是什么?

计算机内部的各个部件需要互相传递信息。

CPU 要从内存读取数据;

CPU 要把结果写回内存;

CPU 要控制 I/O 设备;

I/O 设备也要把数据送入计算机。

这些信息不能凭空传递,必须通过某种通道。

这个通道就可以理解为总线

通俗地说:

总线就是计算机内部传递数据和控制信息的道路。


2. 为什么叫"总线"?

"总线"这个名字可以理解成一条公共线路。

多个部件都连接在这条线路上,通过它进行通信。

就像城市中的道路系统:

复制代码
人、车、货物都通过道路移动
不同地点靠道路连接起来

计算机内部也是一样:

复制代码
CPU、内存、I/O 设备通过总线连接起来
数据、地址、控制信号通过总线传递

3. 三类重要总线

一般可以把总线分成三类:

复制代码
地址总线
数据总线
控制总线

这三个概念很重要。


4. 地址总线:告诉计算机"去哪儿"

地址总线的作用是传递地址信息。

CPU 要访问内存或 I/O 设备时,必须先告诉系统:

复制代码
我要访问哪个位置?

这个"位置"就是地址。

可以用取快递来类比:

复制代码
地址总线 = 快递地址

快递员送包裹时,必须知道送到哪个地址。

CPU 访问内存时,也必须知道访问哪个内存地址。

例如:

复制代码
CPU 想读取内存中某个数据
↓
CPU 通过地址总线发出地址
↓
内存根据地址找到对应位置

5. 数据总线:真正传输数据

数据总线负责传输真正的数据。

继续用快递类比:

复制代码
地址总线告诉快递送到哪里
数据总线负责运输包裹本身

CPU 读取内存时:

复制代码
CPU 发出地址
↓
内存找到数据
↓
数据通过数据总线传回 CPU

CPU 写入内存时:

复制代码
CPU 发出地址
↓
CPU 把数据通过数据总线送出去
↓
内存把数据保存到对应地址

6. 控制总线:告诉系统"要做什么"

控制总线负责传递控制信号。

它告诉系统当前操作是:

复制代码
读取
写入
中断
复位
确认

继续用快递类比:

复制代码
地址总线:送到哪里
数据总线:送什么东西
控制总线:是送货、取货,还是退货

没有控制总线,系统就不知道当前到底是读数据还是写数据。


八、CPU 读取内存数据的完整过程

现在把 CPU、内存、总线放到一起,看一个完整例子。

假设 CPU 想从内存中读取一个数据。

过程大致如下:

复制代码
第一步:CPU 通过地址总线发出内存地址
第二步:CPU 通过控制总线发出"读取"信号
第三步:内存根据地址找到对应数据
第四步:内存通过数据总线把数据传给 CPU
第五步:CPU 接收数据并进行处理

可以用表格整理:

步骤 做什么 使用的总线
1 CPU 指定要访问的内存位置 地址总线
2 CPU 告诉内存要读取数据 控制总线
3 内存找到对应数据 内存内部操作
4 数据传回 CPU 数据总线
5 CPU 处理数据 CPU 内部操作

这就是一次最基础的读取过程。

看起来很简单,但计算机每秒会重复进行大量类似操作。


九、CPU 写入内存数据的完整过程

再看 CPU 把数据写入内存的过程。

复制代码
第一步:CPU 通过地址总线发出目标内存地址
第二步:CPU 通过数据总线发送要写入的数据
第三步:CPU 通过控制总线发出"写入"信号
第四步:内存把数据保存到指定地址

可以理解为:

复制代码
CPU:我要把这个数据写到某个位置
内存:收到,我把它保存起来

完整过程如下:

步骤 做什么 使用的总线
1 指定写入位置 地址总线
2 发送要写入的数据 数据总线
3 发出写入命令 控制总线
4 内存保存数据 内存内部操作

十、时钟信号:让计算机按节奏工作

1. 为什么需要时钟?

计算机内部有很多部件:

复制代码
CPU
内存
I/O 控制器
各种芯片

这些部件需要协调工作。

如果没有统一节奏,就会混乱。

时钟信号的作用就是:

让计算机各个部分按照统一节拍执行操作。

可以把时钟想象成乐队指挥。

乐队里有很多乐器:

复制代码
小提琴
钢琴
鼓
长笛

每个乐器都能发声,但必须跟着指挥的节拍,音乐才不会乱。

计算机也是一样。

各个硬件部件必须按照时钟节拍协调工作。


2. 时钟信号像节拍器

时钟信号可以理解成不断变化的电信号:

复制代码
高电平
低电平
高电平
低电平

它像节拍器一样不断发出节奏:

复制代码
滴答
滴答
滴答
滴答

CPU 会根据这些节拍执行操作。


3. CPU 主频是什么?

我们常说 CPU 是 2.4GHz、3.0GHz、4.0GHz。

这里的 GHz 就和时钟频率有关。

1Hz 表示每秒 1 次周期。

1GHz 表示每秒大约 10 亿次周期。

所以 3GHz 可以简单理解为:

复制代码
每秒大约有 30 亿个时钟周期

但是要注意:

CPU 主频高,不一定代表电脑整体性能一定强。

因为性能还受到很多因素影响:

复制代码
CPU 架构
核心数量
缓存大小
内存速度
硬盘速度
程序优化
散热情况

就像一个厨师动作很快,但厨房太小、食材送得慢、工具不好用,整体出餐速度也不一定快。


十一、计算机是怎样执行一条简单指令的?

现在假设计算机要执行一个非常简单的任务:

复制代码
计算 1 + 2

从人的角度看,这很简单。

但从计算机内部看,可能要经历很多步骤:

复制代码
把数字 1 放入某个位置
把数字 2 放入某个位置
CPU 读取数字 1
CPU 读取数字 2
CPU 执行加法指令
把结果 3 保存起来
把结果输出

进一步拆开:

第一步:数据进入内存

复制代码
1 和 2 作为数据被保存到内存中

第二步:指令进入内存

程序中的加法指令也保存在内存中。

复制代码
加法指令也有自己的存放地址

第三步:CPU 读取指令

CPU 根据指令地址,从内存中取出加法指令。

第四步:CPU 读取数据

CPU 再从内存中取出数字 1 和数字 2。

第五步:CPU 执行加法

CPU 内部完成加法运算。

第六步:结果写回内存

计算结果 3 被保存到内存或寄存器中。

第七步:输出结果

程序把结果显示到屏幕上,或者保存到文件中。


十二、程序运行时,硬件之间如何配合?

一个程序运行时,硬件之间大致是这样配合的:

复制代码
硬盘保存程序文件
↓
程序运行时被加载到内存
↓
CPU 从内存读取指令
↓
CPU 根据指令处理数据
↓
需要输入输出时,通过 I/O 设备完成
↓
处理结果可能显示到屏幕,也可能保存回硬盘

比如打开一个文本编辑器写文章:

复制代码
文本编辑器程序保存在硬盘
↓
用户双击图标
↓
操作系统把程序加载到内存
↓
CPU 执行程序指令
↓
用户通过键盘输入文字
↓
键盘作为输入设备把信息送入计算机
↓
CPU 和程序处理输入
↓
显示器输出文字
↓
点击保存后,数据写回硬盘

这个例子里面,几乎所有硬件都参与了:

硬件 作用
硬盘 保存程序和文件
内存 临时存放正在运行的程序和文本内容
CPU 执行文本编辑器程序
键盘 输入文字
显示器 显示文字
总线 在硬件之间传递信息
时钟 协调各部分工作节奏

十三、为什么计算机需要"架构"?

计算机不是简单把 CPU、内存、硬盘拼在一起就能工作。

它们之间必须有清晰的连接方式和协作规则。

这种整体设计方式,就可以理解为计算机架构。

最基本的计算机结构可以概括为:

复制代码
CPU
↓ ↑
内存
↓ ↑
I/O 设备

它们通过总线连接,并在时钟信号协调下工作。

可以理解为:

复制代码
CPU 是执行中心
内存是运行中心
I/O 是外部通道
总线是连接道路
时钟是工作节奏

这几个部分共同组成了计算机的基本运行环境。


十四、初学者容易混淆的几个问题

1. CPU 和内存谁更重要?

二者作用不同,不能简单比较。

CPU 负责执行指令;

内存负责存放正在运行的指令和数据。

没有 CPU,程序没人执行。

没有内存,CPU 找不到正在运行的程序和数据。

可以理解为:

复制代码
CPU 是干活的人
内存是工作台

只有人没有工作台,活不好干。

只有工作台没有人,也不会自动完成任务。


2. 内存越大,电脑一定越快吗?

不一定。

内存越大,意味着电脑可以同时容纳更多正在运行的程序和数据。

比如同时打开:

复制代码
浏览器
视频软件
文档
聊天软件
开发工具

内存大时更不容易卡顿。

但如果只是运行很小的程序,增加内存不一定明显提升速度。

电脑速度还和 CPU、硬盘、系统、软件优化等有关。


3. 硬盘容量大和内存大是一回事吗?

不是。

硬盘容量大,说明能长期保存更多文件。

内存大,说明能同时运行更多程序或处理更大的临时数据。

比如:

复制代码
硬盘 1TB:能保存很多视频、软件、文件
内存 16GB:能更流畅地同时运行多个程序

它们不是同一个概念。


4. 为什么电脑会"卡"?

电脑卡顿可能有很多原因:

复制代码
CPU 忙不过来
内存不够
硬盘读写太慢
程序占用资源太多
系统后台任务太多
散热不好导致降频

比如同时打开很多软件,内存不够时,系统可能频繁把数据在内存和硬盘之间搬来搬去。硬盘速度比内存慢很多,所以电脑就会变卡。


5. 程序在硬盘里,为什么关机后还能存在?

因为硬盘是长期存储设备,断电后数据仍然保存。

内存是临时存储设备,断电后数据通常消失。

所以:

复制代码
安装的软件、保存的照片、文档 → 在硬盘里
正在运行的程序、临时处理的数据 → 在内存里

十五、本部分核心知识总结

这一部分主要理解计算机硬件的基本组成。

可以总结为下面几句话。

1. CPU 负责执行指令

复制代码
CPU 是计算机的执行核心,负责读取、解释和执行程序指令。

它并不真正思考,只是按照程序一步步执行。


2. 内存负责临时存放程序和数据

复制代码
程序运行前需要从硬盘加载到内存,CPU 再从内存中读取指令和数据。

内存速度快,但断电后数据通常消失。


3. I/O 负责连接外部世界

复制代码
键盘、鼠标、显示器、硬盘、网卡、打印机等都属于输入输出相关设备。

计算机通过 I/O 接收输入,也通过 I/O 输出结果。


4. 总线负责传递信息

复制代码
地址总线传地址
数据总线传数据
控制总线传控制信号

总线就像计算机内部的道路系统。


5. 时钟信号负责协调节奏

复制代码
计算机内部的各个部件按照时钟信号的节拍工作。

CPU 主频和时钟频率有关,但整体性能不只由主频决定。


十六、用一句话理解本部分

本部分可以用一句话总结:

计算机之所以能运行程序,是因为 CPU、内存、I/O 设备通过总线连接起来,并在时钟信号的协调下,按照程序指令一步步处理数据。

再简化一点:

复制代码
CPU 负责算
内存负责放
I/O 负责进出
总线负责传
时钟负责节奏
相关推荐
zhangrelay2 小时前
三分钟云课实践速通--概率统计--python版
linux·开发语言·笔记·python·学习·ubuntu
智慧化智能化数字化方案2 小时前
数字孪生应用——数字孪生赋能的智慧园区物联网云平台建设方案【附全文阅读】
物联网·智慧园区·园区数字化·数字孪生应用·数字孪生智慧园区
BT-BOX2 小时前
基于STM32的多参数物联网安防监测与远程报警系统
stm32·嵌入式硬件·物联网
雅斯驰2 小时前
工业自动化、物联网传感器、车身控制:PIC18F26K20-I/ML的典型应用场景
运维·物联网·自动化
三品吉他手会点灯2 小时前
STM32 VSCode 开发-C语言程序运行后,终端中文乱码
c语言·ide·笔记·vscode·stm32·学习·编辑器
南境十里·墨染春水2 小时前
C++笔记——STL list
c++·笔记·list
zmj3203242 小时前
单片机共地通信
单片机·嵌入式硬件·公共地·共地
今天你TLE了吗2 小时前
HelloAgents学习:PartⅠChapterⅠ初识智能体
人工智能·笔记·学习·agent·智能体
小茴香3532 小时前
React学习笔记(一)
笔记·学习·react.js