【计算机是怎样跑起来的】(二)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 接收数据并进行处理

可以用表格整理:

步骤做什么使用的总线
1CPU 指定要访问的内存位置地址总线
2CPU 告诉内存要读取数据控制总线
3内存找到对应数据内存内部操作
4数据传回 CPU数据总线
5CPU 处理数据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 负责进出
总线负责传
时钟负责节奏
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

维吉斯蔡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值