计算机硬件速览:一台电脑是怎么跑起来的
本篇目标是一周建立整机观:计算机由什么组成、各部件怎么协作、买电脑时那些参数到底在看什么。有个大认识之后,再去细分学 操作系统 和 计算机网络,脑中始终挂着这张整机图。
一、先想清楚:计算机为什么存在
何为计算机?为什么要有计算机?
看《模仿游戏》就明白了——计算机的诞生就是为了取代人力。新时代了,没有奴隶制了,谁干活呢?总不能自己干吧,那就造些"合法的奴隶"出来(玩笑话,但本质真是如此)。
还真就被造出来了。计算机最初不是为日常加减乘除发明的,是投入军用于武器精密计算——所以需求大部分是数字运算。沿着这个初衷往下想,一切硬件设计都说得通了。
几个绕不开的概念:
- 什么是编程? 把想让计算机做的事的步骤想清楚,用一种它能听懂的语言(编程语言)翻译下来。
- 什么是程序? 做一件事翻译一次太浪费,重复做的事就把翻译结果保存下来以便调用。程序就是一堆代码文件。
- 硬件和软件什么关系? 计算机硬件就是一堆废铁,运行全受程序控制——程序是计算机硬件的灵魂。硬件之外都是软件,软件分两类:系统软件(操作系统,协调管理一切资源的控制程序)和应用软件。
计算机系统 = 硬件 + 软件,也就是一台能正常工作的计算机。
二、冯诺依曼体系:一切的原点
计算机主要用于计算,所以一定要有一个运算器;进行何种运算(加减乘除),需要控制器指挥;指令和数据要放着,所以有存储器;数据从哪来?得有输入设备;一切为了得到结果,得有输出设备。
冯诺依曼体系五大部件:输入设备、存储器、运算器、控制器、输出设备
- 硬件由这五部分组成
- 采用二进制表示数据和指令
- 程序预先放在主存储器中,工作时高速调用(存储程序思想)
这套体系沿用至今没有被撼动。但看自己手边的笔记本,CPU 好像不在五大部件里?——因为常见个人计算机是微型计算机,为了便携和进家入户,必须集成:CPU 就是把运算器和控制器集成在一个芯片上(CPU 里还有寄存器,正好模拟了大脑思考、控制、记忆三大功能)。而小型机、中型机、银河那种大家伙不压缩体积,运算器和控制器至今仍是分开的。
于是同一种结构有三种说法,本质都一样,场景不同而已:
教科书式: 输入设备、存储器、运算器、控制器、输出设备
微机式: CPU(=运算器+控制器)、内存、I/O 设备
再简化: 主机(CPU+内存)、外部设备(外设)
(这种把系统细化再重新组合的方法有三个名字,层次化、模块化、规则性——后面学操作系统结构时会再遇到这套思想。)
三、CPU:大脑
类比大脑:
| 大脑 | CPU | 说明 |
|---|---|---|
| 控制手脚等器官 | 控制器 | 控制各种硬件的使用 |
| 思考问题给出答案 | 运算器 | 接收数据和指令进行运算 |
| 记忆 | 寄存器 | CPU 内部的小型存储器 |
买 CPU 看什么参数?
- 主频:速度
- 缓存:3/4 级缓存
- 核数:工人数,1 核 ≈ 1 个人
2 核 4 线程:真两个核心,但相当于 4 个核能做的事——可以理解为这个大脑很强大,1 个核顶 2 个大脑用。CPU 高速运算会过热,过热就死机重启,所以散热很重要。
指令集:
| 精简指令集(RISC) | 复杂指令集(CISC) | |
|---|---|---|
| 指令 | 少而简单 | 单条指令较复杂 |
| 实现功能 | 需要大量指令 | 所需指令较少 |
| 用途 | 精准计算(火箭、卫星) | 日常使用(x86 基本是) |
杂项:Intel 共享 L2 缓存,AMD 每核配一个缓存(有数据不同步问题)。位数:内存里放的其实都是高低电平,不是数字,只是便于理解等效成 01 代码。CPU 每次从内存读取的 01 是一定的,所以有 32 位(一次取 32 位)、64 位(一次取 64 位)CPU。CPU 有向下兼容性:64 位可拆成高 32 位 + 低 32 位,所以能跑 32 位程序。
四、存储金字塔:速度与容量的永恒权衡
核心指标:速度、容量,而这两者天然矛盾,于是层层妥协出一条金字塔:
寄存器(塔尖)
CPU 内部,与 CPU 同材质同速度,访问零时延。容量极小(32 位机 32×32,64 位机 64×64,都不到 1KB)。
高速缓存(Cache)
L2 向下还能拓展 L3、L4。核心概念是命中:程序要读一个存储字时,缓存硬件先检查所需数据在不在缓存里——在,就叫命中,直接用;不在,才去下层拿。把要立刻用的东西从内存搬到缓存,就是拿空间换时间的典型。
内存(存储主力)
内部存储,负责存放正在运行的数据,高速、随机存取。
- RAM:可读可写,断电丢数据。放 QQ、影视、微信等真正要运行的东西
- ROM:只读,断电不丢。放 BIOS(基本输入输出系统)
💡 电脑卡顿的两种"内存"不是一回事:360 那个球、上划清后台,说的是运行内存(RAM);手机"存储空间不足"、C 盘爆红,说的是外存(硬盘)。两个概念,别混。
鸡生蛋问题:BIOS 为什么存在?
买来计算机还没装系统,没有操作系统帮忙,连硬盘都转不起来、显示器都打不开,那怎么装系统?——死循环,一堆废铁。
所以生产商在装 Windows、Linux 之前,就在 ROM 里固化了一个 BIOS 系统。它不能用鼠标,不能听歌打游戏,唯一职责就是保证这台计算机能用。为什么放 ROM? 买来时不可能带电,ROM 断电仍保存数据;这系统是保命用的,肯定不能被改,只能读。
BIOS 相当于一个代理管家:
- 装系统前:CPU + ROM + CMOS(记录硬件配置,耗电极少,纽扣电池就能维持)
- 系统启动后:管家交权给操作系统——CPU + RAM + 硬盘(系统软件放硬盘,运行数据进 RAM)
参考参数:容量、频率(并非越大越好,要与主板匹配)。卡了?加内存 or 重启(清缓存)。
硬盘(塔基)
程序先放硬盘,运行时加载:代码和数据从硬盘读入内存,CPU 再从内存取指运行。硬盘大小决定能装多少软件,内存大小决定能同时跑多少软件。外部存储,永久保存,低速。
- 机械硬盘:磁盘片、磁头、马达,速度看转速
- 固态硬盘(SSD):电信号存储,小、贵、快
扇区与块(理解 Linux 优化前先记住两个单位):
- 扇区:硬盘最小的读写单位,512 byte(单个快递盒子)
- 块(block):操作系统读写的最小单位,8 个扇区 ≈ 4K(收纳箱)
Linux 的三板斧优化:
- Buffer 缓冲区(大卡车):攒一波数据再送,减少趟数
- Cache:内存富余时拿来继续做性能优化
- 虚拟内存 Swap 分区(备胎):硬盘分一块出来当内存用。内存告急时把非必要数据倒腾出去——虽然过程费时间,但用时间保生命。这块区域平时也不能当硬盘用,相当于应急车道
柱面:
分区就是从一个柱面到另一个柱面之间的所有盘片。工作过程:机械手臂移到磁道 → 磁盘旋转 → 在扇区上找数据(运气好刚转就找到,运气不好等一整圈)——运行程序的时间主要耗在这里;找到后读入内存、进 CPU 的速度反而非常快。
参考参数:容量、转速(读写速度)、缓存大小、接口(IDE / SCSI / SATA / SAS)。
磁带与 RAID
- 磁带:便携易拆,大容量低成本,专用于备份保数据。磁盘越来越便宜后逐渐退出历史舞台。
- RAID(独立磁盘冗余阵列):单块磁盘在性能、容量、安全上都有单点问题。多块磁盘组成一个 group,操作系统当成一个逻辑驱动器——并行存取提高吞吐和速度、扩大容量、更好管理,而且任何一块盘坏了系统还能继续工作。
五、主板:把一切连起来
主板将所有设备直接或间接地连接起来。看什么:大板小板、接口数量、支持的 CPU 类型、是否集成三卡(网卡/显卡/声卡)。
其他:
- 机箱电源:材质、抗静电、空间
- UPS 不间断电源:市电正常时稳压供电兼充电;停电瞬间切电池逆变继续供 220V,保硬件不受损
- 网卡/声卡:主板一般自带千兆网卡
- 显示器:看分辨率
六、闲话:服务器与去 IOE
服务器按尺寸:1U、4U(U 是厚度,1U = 1.75 英寸 ≈ 4.445cm);按外形:机架式、刀片式、塔式;还有小型机(高端定制)和云服务器(阿里云最初就是为双 11 短时访问量暴增堆服务器,闲时靠出租回本,才有了云服务)。
去 IOE 运动——理解国内技术圈演化的一件大事:
- I:IBM,干服务器的
- O:Oracle,干数据库的
- E:EMC,干存储的
当年除了操作系统(Linux 开源),服务器、数据库软件、存储全被垄断。阿里 2009 年提出"去 IOE",2013 年 5 月 17 日最后一台 IBM 小型机在支付宝下线。结果是:
- 服务器 → Dell、浪潮、联想、云主机
- 数据库 → MySQL(开源)。戏剧性的是 MySQL 后来被 Oracle 收购,这帮人又搞出 MariaDB
- 存储 → 不再用 EMC 专业存储,自研 ceph 块存储、nfs 文件存储、swift 对象存储
(红帽 RedHat 与社区版 CentOS 的开源协议故事也值得一读。)
七、盲点自测
- 微机的 CPU 为什么"不在"五大部件里? ——在的,只是运算器+控制器被集成了。微机为体积做集成,大型机不集成。
- ROM 也是内存,为什么放 BIOS 而不放系统? ——ROM 只读、断电不丢,只够放"保命+引导"的最小系统;真正的操作系统要可更新、体积大,放硬盘。
- 内存和存储空间不足,分别表现为什么? ——内存不足:卡顿、后台被杀;存储不足:装不下东西、C 盘爆红。
- 为什么程序运行时间主要耗在磁盘寻址? ——机械臂寻道 + 盘片旋转是物理运动,微秒到毫秒级;而读入内存后是电信号,纳秒级。差着几个数量级。
- RAID 解决什么? ——单点问题:性能(并行读写)、容量(逻辑合并)、安全(冗余容错)。
部件认识了,接下来让它们集体开工——看开机五级接力 → 02-从按下电源到桌面
⬅️ 00-计算机速览 🏠 00-基础与理论 ➡️ 02-从按下电源到桌面
💬 评论