了解处理器:从婴儿到野兽

发布: (2025年12月24日 GMT+8 15:40)
12 min read
原文: Dev.to

Source: Dev.to

请提供您想要翻译的文章正文内容,我将为您翻译成简体中文,并保持原有的格式、Markdown 语法以及技术术语不变。谢谢!

Source:

基础

晶体管 是现代计算的基本构件。
处理器(CPU)不过是 数十亿个微小晶体管 安装在硅芯片上。

  • 可以把晶体管想象成一个 开关,它可以将电子流 ,就像灯开关控制灯泡一样。
  • 通过 1)和 0),晶体管表示所有计算机使用的二进制数据。

当数十亿个晶体管组合在一起时,它们就能执行复杂的计算。你在设备上进行的每一项任务,最终都被简化为一长串 0 和 1,由 CPU 处理后再转换回人类可读的输出。

CPU – 计算机的大脑

CPU(Central Processing Unit)执行指令,决定哪些任务运行以及运行顺序,并协调内存、存储和其他硬件之间的通信。

基本 CPU 循环

每条指令都遵循 Fetch → Decode → Execute → Writeback 循环(也称为 clock)。

阶段发生了什么?
取指指令从内存(RAM 或缓存)中取出。
解码CPU 解释指令(例如,加法、移动、跳转)。
执行实际工作被执行——算术、逻辑、内存访问等。
回写结果写回寄存器或内存。

简单类比

想象你在玩游戏,向对手射出一颗子弹:

  1. 取指 – 你的操作(“射击”)被发送到 CPU。
  2. 解码 – CPU 将该操作翻译成二进制,以便计算对手的血量、位置等。
  3. 执行 – CPU 执行计算(子弹速度、距离、伤害)。
  4. 回写 – 游戏接收结果(“爆头,100 % 伤害”)并更新显示。

由于该循环持续重复,形成了 时钟

  • 时钟频率 = CPU 完成每个循环的速度。
  • 1 GHz = 每秒 10 亿个循环
  • 更高的 GHz 通常意味着更高的单核性能,但这不是唯一因素。

时钟速度之外的性能因素

因素重要原因
架构决定每个时钟周期的使用效率。
缓存将经常访问的数据存放在靠近核心的位置。
核心数量更多核心可以并行处理更多任务。
IPC (Instructions Per Cycle)显示每个核心在每个时钟周期可以执行多少指令。更高的 IPC → 即使在相同 GHz 下也能获得更好性能。

核心与线程

  • 核心 = 独立的处理单元(“大脑”。)
  • 线程 = 逻辑路径,使核心能够同时处理多个任务。

示例:

  • 4 核心,8 线程 → 每个核心可以处理 2 个线程,产生 8 个任务同时进行的幻象。

注意: 更多核心并 自动意味着更快的性能;工作负载必须可并行化,且操作系统必须高效调度线程。

TDP(热设计功耗)

  • 以瓦特(W)为单位。
  • 低 TDP → 更凉爽、更节能(适合笔记本)。
  • 高 TDP → 更高性能,但需要强大的散热。

Source:

晶体管尺寸 – “3 nm”、 “2 nm”等

制造商宣传更小的工艺节点(例如 3 nm、2 nm)是为了表明 更小的晶体管

  • 为什么要缩小晶体管?

    • 更多的晶体管可以装在相同的硅面积上 → 提高性能并降低功耗。
  • 为什么不直接把芯片做大?

    1. 成本 – 更大的芯片需要更多的材料和能量,且每块晶圆能产出的芯片更少,导致价格上升。
    2. 散热 – 更大的芯片产生的热量更多,散热难度加大。
    3. 物理限制 – 设备(手机、笔记本、服务器)空间有限;大芯片无法适配纤薄设计,并且更难与其他组件连接。

因此,业界不断推动更小的晶体管几何尺寸。

缩小的限制

如果晶体管尺寸过小,电子泄漏会增加,这会导致功耗损失和可靠性问题。这是一种基本的物理极限,工程师在向亚纳米工艺迈进时必须加以管理。

Source:

📚 清理后的 Markdown – “CPU & Memory Hierarchy”

为什么晶体管阻止不了电子

“如果晶体管太小,就无法阻止电子流动(公司已经在研究碳等其他材料)。”

寄存器 – 直接数据持有者

┌──────────────────────────────────┐
│  Hold immediate data to          │
│  perform the action            │
└──────────────────────────────────┘

类比 – 子弹游戏示例
寄存器就像玩家手里正拿着的那本正在阅读的书——用于下一条指令的超紧急数据。

控制单元 – 大脑

┌──────────────────────────────────┐
│         CONTROL UNIT 🧠           │
│  It's the brain, the core which   │
│  takes the decision               │
└──────────────────────────────────┘

类比 – 当玩家点击开火时,控制单元决定*“子弹造成多少伤害?对手失去多少血量?”*

其他直接数据(重要性不如寄存器)

┌──────────────────────────────────┐
│  Hold other immediate data which │
│  are important but not as         │
│  critical as data in Register    │
└──────────────────────────────────┘

类比 – 游戏全局的数据,如菜单设置、地图选择、皮肤选择、语音聊天等,虽然需要,但并不是即时计算子弹伤害时必需的。

从存储到 RAM → CPU

  1. 应用启动 – 程序从 ROM / HDD / SSD 读取并复制到 RAM
  2. 程序运行时,驻留在 RAM 中。
  3. 其中一小部分 RAM 数据被复制到 CPU,以实现最快的计算。

房子类比

计算机部件现实类比
ROM / HDD / SSD图书馆的阅览室(存放所有书籍)
RAM书房(放置你近期需要的 10‑12 本书)
CPU / Processor书桌上的桌面(你正在阅读的那本书)
CPU Cache你的——阅读时手里拿着的那本书

CPU 缓存 – 处理器内部的超高速小内存

“在游戏过程中,大量数据驻留在 RAM 中(角色、菜单、地图等)。战斗时并不需要全部数据,所以使用最频繁的部分被缓存进 CPU。”

缓存层级及其特性

层级大小(典型值)速度 / 延迟位置是否共享
L1每核 10‑12 KB最快(≈ 1 周期)最靠近核心
L2每核 100 KB – 1 MB稍慢稍远一点
L3总计 10‑15 MB三者中最慢所有核心共享
┌──────────────┐   → Fastest ⚡   (Smallest)   ← Closest to core
│   L1 Cache   │
└──────────────┘

┌──────────────┐   → A bit slower 🐇   (Larger)   ← Still per core
│   L2 Cache   │
└──────────────┘

┌──────────────┐   → Shared among cores 🐢   (Biggest)   ← A bit away
│   L3 Cache   │
└──────────────┘

各层存放什么?

缓存典型内容
L1超必要数据:当前指令、寄存器值、立即数操作数、分支预测信息。
L2未能放入 L1 的常访问数据:最近的循环体、小型数据结构、已解码指令。
L3跨核心共享的大工作集:共享库、纹理数据、大数组。

小结 – 完整的游戏类比流程

  1. 游戏打开 – 文件从 硬盘 / ROM 读取 → 加载到 RAM
  2. 比赛开始 – 数据根据紧迫程度在内存层级中分配。
┌─────────────────────────────────────────────────────────┐
│            HARDWARE MEMORY HIERARCHY                   │
└───────────────────────────────────────────────────┘

寄存器(Your Hand)– 超即时

┌──────────────────────────────────────────────────────────┐
│  REGISTER (In your HAND)                                 │
│  Ultra‑Immediate Data (being processed RIGHT NOW)        │
│──────────────────────────────────────────────────────────│
│  • Player’s current position                              │
│  • Opponent’s position                                    │
│  • Bullet speed                                           │
│  • Distance to target                                     │
│  • Real‑time damage calculations                          │
│  • Current instruction being executed                     │
│                                                            │
│  Size: Tiny (bytes)   Speed: Instant                      │
│  (the book you’re reading at THIS moment)                 │
└──────────────────────────────────────────────────────────┘

L1、L2、L3 – 桌子、抽屉和壁橱

级别它包含的内容(游戏风格)
L1“我现在手里拿的是什么书?” – 当前指令及其操作数。
L2“桌子上有什么书?” – 最近的几条指令,小型数据结构。
L3“书架上有什么书?” – 多个核心可能需要的较大资产(地图、纹理)。

RAM – 书房

所有其他游戏资产(菜单、大厅 UI、语音聊天缓冲区等)都存放在 RAM 中,随时准备在需要时被拉入缓存。

存储(ROM/HDD/SSD)– 图书馆

完整的游戏文件存放在这里,直到操作系统加载它们。

最终要点

组件角色类比
寄存器保存此刻所需的数据。手中的书。
L1 缓存单核存储最常访问的字节。放在你面前桌子上的书。
L2 缓存为同一核心保存次重要的数据。桌子抽屉里的书。
L3 缓存所有核心共享的池子;容量更大但更慢。附近书架上的书。
RAM整个程序的主要工作内存。你即将需要的一堆书的学习室。
ROM / HDD / SSD程序和资源的永久存储。存放全世界所有书籍的图书馆。

🎮 简而言之

当你在游戏中开火时,CPU会从寄存器中提取超即时数据,从L1中提取极频繁数据,从L2中提取仍然频繁的数据,以及从L3中提取共享数据。其他数据则保留在RAM中,直到它们足够热以被缓存。这个层次结构使处理器保持闪电般的速度,而无需不断回到较慢的内存层。

Back to Blog

相关文章

阅读更多 »