电脑的架构是什么?硬件之间到底怎么配合
电脑的架构,说白了就是 CPU、内存、存储、总线这几大块怎么分工、怎么传数据的一套设计。
现在市面上几乎所有的个人电脑、服务器、手机,底层都绕不开一个上世纪四十年代提出的模型。
下面就从这个模型讲起,把硬件之间的配合关系理清楚。
冯诺依曼架构:现代电脑的底层模型
冯诺依曼架构是一种把程序和数据都存在同一块内存里的计算机设计,由数学家冯·诺依曼在 1945 年的报告中系统提出。
它的核心思想就一句话:指令和数据不分家,都用二进制存在内存里,CPU 按顺序取出来执行。
这个模型包含五大部分:运算器、控制器、存储器、输入设备、输出设备。
其中运算器和控制器后来合在一起,就是今天说的 CPU。
为什么这个设计能用八十年?因为它够简单。
程序也是数据,意味着电脑可以加载任意程序去跑,而不是出厂时就写死功能。
你今天能在同一台机器上既打游戏又写文档,根子就在这。
不过它有个老毛病,叫冯诺依曼瓶颈。
CPU 算得飞快,可数据得从内存一趟趟搬过来,总线带宽就成了卡脖子的地方。
现代架构里一大半的优化,都是在绕这个瓶颈。
CPU:负责算的那块
CPU 是中央处理器,负责取指令、解码、执行运算,是整台电脑的大脑。
它内部主要分三块:控制单元负责调度,算术逻辑单元(ALU)负责加减与逻辑判断,寄存器负责临时存放正在用的数据。
寄存器是离运算最近的存储,速度最快,但容量极小,通常只有几十到上百个,每个就几个字节。
CPU 干活的节奏由时钟频率控制。
一颗 3.5 GHz 的处理器,每秒钟时钟跳动 35 亿次,大致对应它能推进的基本操作数量。
但频率不是越高越好。
频率一高,功耗和发热就压不住,所以这些年厂商改走多核路线,一颗芯片里塞 8 个、16 个核心一起算。
内存和存储:别把这俩搞混
内存和存储是两种东西,最常被新手混为一谈。
内存指的是 RAM(随机存取存储器),断电就清空,专门给正在运行的程序当工作台用。
存储指的是硬盘或固态盘(SSD),断电数据还在,负责长期保存文件和系统。
打个比方,内存是你的书桌,存储是书柜。
干活时把书从书柜搬到桌上,桌子越大能同时摊开的书越多;但下班锁门(关机),桌上没收进柜子的东西就没了。
速度差距非常悬殊。
CPU 访问寄存器只要不到 1 纳秒,访问内存大约几十到上百纳秒,而访问机械硬盘可能要几毫秒,差了几百万倍。
正因为这种层层递增的延迟,硬件设计上才搞出了缓存。
CPU 内部一般有 L1、L2、L3 三级缓存,速度介于寄存器和内存之间,把常用数据提前搬近一点,少跑几趟内存。
这套从寄存器到硬盘的层级,业内叫存储器层次结构(memory hierarchy)。
总线:硬件之间的高速公路
总线是连接 CPU、内存、各种设备的公共通道,负责在它们之间搬运数据和信号。
可以把它理解成主板上的高速公路网。
总线通常分三类:数据总线传具体的数据,地址总线告诉对方数据该往哪存或从哪取,控制总线发读写之类的指令信号。
总线的宽度和频率,直接决定了数据搬得快不快。
前面提到的冯诺依曼瓶颈,本质上就是总线带宽跟不上 CPU 的胃口。
现在像 PCIe 这类高速总线,一条 PCIe 5.0 通道单向带宽就能到约 4 GB/s,显卡、固态盘这些吃带宽的大户都挂在上面。
输入输出:电脑和外界打交道
输入输出(I/O)指电脑接收外部信息和向外反馈结果的机制,键盘、鼠标、显示器、网卡都属于这一类。
这块容易被忽略,但少了它电脑就是个黑盒子。
I/O 设备速度普遍比 CPU 慢得多,所以现代系统里用中断和 DMA 来配合。
中断的意思是设备有事了主动喊一声 CPU,而不是 CPU 傻等;DMA 则允许设备绕过 CPU 直接读写内存,省得 CPU 当搬运工。
现代架构和教科书有什么不一样
经典冯诺依曼模型是个简化版,真实的现代电脑在它基础上做了大量改造。
最明显的是多核加超线程,一颗芯片并行处理多条任务流。
还有个常被提到的分支叫哈佛架构,它把指令和数据分开存放、分开走线,避免抢同一条总线。
很多 CPU 内部的缓存设计其实借鉴了哈佛思路,L1 缓存通常就拆成指令缓存和数据缓存两块。
另外现在 GPU、NPU 这些专用处理器越来越重要。
CPU 擅长复杂的串行逻辑,GPU 靠成千上万个小核心做大规模并行,跑图形和 AI 训练时效率甩 CPU 几条街。
这种让不同芯片各干各擅长的事的思路,叫异构计算,是这几年架构演进的主线之一。
x86 和 ARM:常说的电脑架构到底指什么
平时听到的"这台 Mac 是 ARM 架构"、“那台是 x86 架构”,说的其实是 CPU 的指令集架构(ISA),也就是处理器认识哪些指令、怎么执行。
这跟前面讲的整机架构是两个层面的事,但日常嘴里的"架构"多半指的就是它。
目前主流就两大阵营。
一类是 x86,由 Intel 提出,64 位版本叫 x86-64,因为是 AMD 率先做出来的,所以又叫 AMD64。
Intel 和 AMD 的桌面、服务器 CPU 都属于这一派,绝大多数 Windows 电脑跑的就是它。
注意一个常见误区:AMD 不是一种独立架构,它和 Intel 一样都用 x86 指令集,AMD64 只是 64 位 x86 的另一个名字。
另一类是 ARM,最早主攻低功耗,手机芯片几乎清一色是它。
苹果从 2020 年起把 Mac 从 Intel 的 x86 切到了自研的 Apple Silicon(M1、M2 这些),底层正是 ARM 架构。
很多人以为 Mac 用的是 AMD,其实老款 Mac 用的是 Intel,新款是苹果自家的 ARM 芯片,跟 AMD 没关系。
这两派最根本的分歧在设计哲学。
x86 是复杂指令集(CISC),一条指令能干的事多,历史包袱也重;ARM 是精简指令集(RISC),指令简单统一,省电、发热小。
这也是为什么 ARM 版 Mac 续航和发热表现普遍更好。
架构不同带来一个现实问题:为 x86 编译的软件不能直接在 ARM 上跑,反过来也一样。
苹果当年靠一个叫 Rosetta 2 的转译层,把 x86 程序翻译成 ARM 能懂的指令,才平稳过渡过来。
常见问题
Q1. 电脑架构和 CPU 架构是一回事吗?
不是。
电脑架构说的是整机各部件(CPU、内存、总线、I/O)怎么组织协作,范围更大。
CPU 架构(比如 x86、ARM)专指处理器内部的指令集和设计,是电脑架构里的一部分。
Q2. 冯诺依曼架构和哈佛架构哪个更好?
没有绝对的好坏,看场景。
冯诺依曼把指令和数据放一起,简单灵活,通用电脑都用它。
哈佛把两者分开,访问更快、更不容易冲突,常见于单片机和 DSP 这类对实时性要求高的场合。
Q3. 内存越大电脑就越快吗?
不一定。
内存够用时,再加大对速度提升有限。
只有当内存不足、系统被迫频繁把数据倒腾到硬盘上(也就是用虚拟内存)时,加内存才会明显变快。
Q4. 为什么 CPU 要有缓存?
因为内存太慢,跟不上 CPU 的速度。
缓存把最常用的数据提前搬到离 CPU 更近、更快的地方,减少 CPU 干等内存的时间,这是缓解冯诺依曼瓶颈最直接的办法。
Q5. ARM 架构的 Mac 能跑 x86 的 Windows 软件吗?
不能直接跑。
x86 和 ARM 指令集不通用,为 x86 编译的程序到了 ARM 上认不出来。
苹果用 Rosetta 2 这类转译层做翻译,能让大部分 x86 程序在 ARM Mac 上运行,但性能会有损耗。
总结
电脑的架构,核心就是 CPU 算、内存存运行时数据、硬盘存长期文件、总线负责搬运、I/O 对接外界这么一套分工。
冯诺依曼模型给出了最基础的骨架,多核、缓存、异构计算这些则是后人为了绕开瓶颈打的补丁。
理解了数据在这几块之间怎么流动,再去看装机、看性能参数,思路就清楚多了。
如果大家对某一块(比如缓存命中、总线协议)还想深挖,或者对文中哪里有不同看法,欢迎在评论区交流~~~
版权声明
未经授权,禁止转载本文章。
如需转载请保留原文链接并注明出处。即视为默认获得授权。
未保留原文链接未注明出处或删除链接将视为侵权,必追究法律责任!
本文原文链接: https://fiveyoboy.com/articles/computer-architecture-explained/
备用原文链接: https://blog.fiveyoboy.com/articles/computer-architecture-explained/