ENZH

CPU 是怎么算数的,得先看它怎么记事

CES 2026 上,AMD 发了颗游戏旗舰 9850X3D,打游戏平均比英特尔的 Ultra9 285K 快 27%。AMD 这个 X3D 系列一直邪门,靠的不是频率多猛,而是在 CPU 里堆了一大坨缓存,前一代 9950X3D 光 L3 缓存就塞了 128MB。

缓存到底是个啥,凭什么堆得多就跑得快?要说清楚,得先回答一个更朴素的问题:一个电路,怎么才能「记住」一件事。

普通电路是条金鱼,记不住事

你家的灯,合闸就亮,断闸就灭。它亮不亮,只跟此刻合没合闸有关,跟一秒钟前发生了什么半毛钱关系没有。这种只看当下、不管过去的电路叫组合电路。

可电脑不行。你敲下的每个字、点开的每个窗口,下一步的状态都得参考之前干了啥。一条记不住过去的电路,造不出电脑。问题就卡在这儿:电路得先学会记住过去发生的事。

让电路自己提醒自己

Redknot 打了个特实在的比方:俩人都记性差,一件事只能记几秒。怎么让他俩长久记住?让他们互相提醒,第一个快忘了就告诉第二个,第二个快忘了再回头告诉第一个,这么循环着,事儿就记住了。当然,前提是你得管饭,俩人饿死了也就记不住了。

放电路里一模一样。拿两个非门(输入高就吐低、输入低就吐高),让第一个的输出接到第二个的输入,第二个的输出再绕回第一个。第一个说「高」,第二个反成「低」回传,第一个又反成「高」……信息就这么被锁在环里,记住了。同一个结构,既能稳在「记住高」也能稳在「记住低」,两种状态对应 1 和 0。这叫双稳态电路。那顿「饭」,就是电源。别忘了非门除了信号线还接着电源线,它不是永动机。

补一句,这里的非门,本身就是上一篇那个 MOS 管搭出来的。底层全是开关。

给它加个「写」和一道「锁」

光能记还不够,你得能改。在环里插两个或门,引出两根控制线,就能强行把状态扳成你要的值,写数据就靠它。再加一道叫 enable 的开关:拉高才准写,拉低就把外面的输入隔开、安心锁存。这套东西,计算机课本上叫「带使能的 D 锁存器」。

可写的时机还得管。计算机里有个晶振,配上电路能产出一个固定节奏的方波,叫时钟信号。它震一下,运算往前推一步,像军队喊口令,全体部件踩着同一个节奏走,才不会乱套。

一个时钟周期,只准写一次

麻烦在于,D 锁存器只要 enable 是高电压,整段时间都敞着门让你写。来个手快的,一个时钟周期内噼里啪啦按好多下,存的值就被改好几回,后面接着的电路当场懵掉。

解法是把「整段时间都能写」改成「只在时钟跳变的那一瞬间写」。拿两个 D 锁存器,一主一从(master 和 slave),时钟信号给俩人喂相反的电平,这样只有时钟从低跳到高的那一刹那,数据才被放进来,一个周期稳稳只写一次。这就是主从触发器,也叫 D 触发器。拿 8 个排成一排,就是一个能存 8 比特的寄存器了。

寄存器最快,可它也最贵

寄存器为啥快得离谱?因为它纯靠晶体管硬扛,没有任何拖泥带水。代价是一个 D 触发器要十几二十个晶体管,又费面积又费钱。CPU 里要塞几兆几十兆的缓存,全用寄存器来做,成本和面积直接爆炸。

所以缓存换了个更省的方案:6 个晶体管搭一个存储单元(课本里的 6T SRAM)。读的时候有个巧招,给一个单元接左右两根位线,先都充到同样的高电压再断电,然后打开单元,存「1」的那侧几乎不放电、另一侧悄悄掉个 50 到 100 毫伏,末端的灵敏放大电路一测这点电压差,就知道存的是 0 还是 1。位线上的电压只动一丁点,所以读得飞快。

就算省成这样,缓存依然是吞面积的大户。一颗 CPU 拍开看,那一大片像地毯一样规整重复的结构基本都是缓存,有的处理器 L2 加 L3 能占掉一半以上的芯片面积。

所以堆缓存,是真能堆出性能的

CPU 一个时钟周期才 0.2 纳秒,可它去内存里取一次数据要几十纳秒——这一趟的工夫,CPU 本可以空跑上百条指令。换句话说,大部分时间它都在干等内存。这就是所谓的存储墙

缓存就是架在 CPU 和内存之间的近水楼台。要用的数据先搬进片上缓存,CPU 大多数时候直接从缓存拿,不用大老远跑去内存。缓存越大,需要远程取数的次数就越少。游戏这种疯狂、高频访问内存的场景,缓存一大,提升立竿见影。AMD 的 X3D 干脆把芯片做成 3D 堆叠,一层算、一层缓存,硬把 L3 堆到 96MB(9800X3D)甚至 128MB(9950X3D),名字里那个 3D 就是这么来的。

寄存器、缓存都快,但它们有个共同的软肋:一断电,存的东西全没。要管更大的数据、还得断电不丢,就轮到内存和它下游的硬盘登场了。


本文整理自 B 站 UP 主 Redknot-乔红 的硬件科普合集。那个「俩人互相提醒」的比方就是他的原话,把抽象的双稳态讲活了。本系列只做了主题重编与文字转写,讲错的地方算我的。


© Xingfan Xia 2024 - 2026 · CC BY-NC 4.0