ENZH
和 AI 讨论这篇文章
ChatGPTClaude

内存和显存是怎么分家的

内存大家都知道,插在主板上、给 CPU 暂存数据的那个条。显卡上其实也有一圈类似的颗粒,焊在 GPU 旁边,给显卡暂存数据,这个叫显存。这俩活听着是不是一模一样?都是暂存数据。但你真去看参数,它们早就不是一个东西了,差得非常远。同样是存数据,凭啥就分了家啊?这篇就聊这个事情。

内存是怎么存数据的

内存存数据靠的是电容。电容充了电就算 1,没电就算 0。但电容不能直接挂在电路上,它会乱放电,干扰旁边的电路,所以得给它配一个晶体管当闸门:晶体管打开,电容才跟外面通话;关上,它就自己安静待着。一个电容配一个晶体管,这就是内存最小的存储单元。

麻烦的是电容会漏电。电放着放着就漏没了,1 慢慢就变成 0 了,数据就丢了。所以内存得隔一段时间把所有电容读一遍,再原样写回去,这个动作叫刷新。你想啊,读写本来就绕,还得定时刷新,内存天生比 CPU 慢,根子就在这。电容阵列、感应放大这些细节,「存储为什么是门好生意」里讲 DRAM 那篇拆得很细,这里就拿它当个底子,不重复讲。

显存一开始就是内存

很多人可能不知道,显存一开始跟内存就是同一个东西,显卡厂直接拿内存的 DDR 标准来做显存。后来 GPU 越做越强,DDR 喂不饱它了,英伟达就拉上 ATI 另起炉灶,搞了一套自己的标准,叫 GDDR,前面那个 G 就是 Graphics。

那为啥 DDR 就喂不饱 GPU 了啊?这得先看 CPU 和 GPU 干活的方式差在哪。CPU 是核少,但每个核都很猛;GPU 是核特别多,但每个都比较弱。拿「把一张很暗的图提亮」举个例子。CPU 的干法是:把第一个像素从内存搬进来,算完亮度,写回去,再搬第二个、第三个,一趟一趟来。GPU 完全不是这个路子,它的控制器先给成百上千个核把活分好,你管 1 号像素、你管 2 号像素,然后一声令下,所有核同时冲到显存把自己那个像素取回来,同时算,同时写回去。

CPU 少核逐个搬像素,GPU 多核同时冲向显存取数——两种取数方式是内存与显存分家的根源CPU 少核逐个搬像素,GPU 多核同时冲向显存取数——两种取数方式是内存与显存分家的根源

显存的带宽是怎么堆上去的

GPU 这种所有核一起搬的干法,对带宽的胃口比 CPU 大太多了。带宽等于传输频率乘以位宽。Redknot 有个比方我觉得特别好懂:带宽就像两个城市之间运货,位宽是你修了几条路,频率是每条路上货车跑多快。

带宽 = 位宽 × 频率:位宽是两城之间修了几条路,频率是每条路上货车跑多快带宽 = 位宽 × 频率:位宽是两城之间修了几条路,频率是每条路上货车跑多快

位宽上,内存一般就是 64 比特,双通道也就 128;显存这边,4090 是 384 比特,5090 直接干到 512 比特,完全不是一个量级。

频率呢?电信号在线路里本来就跑得接近光速,这条路上没法再快了。那怎么办?在一个时钟周期里多传几次。最传统的电路,一个周期传一次数据,这叫 SDR。后来大家发现时钟信号一上一下有两个边沿,每个边沿各传一次,一个周期就能传两次,这就是 DDR——内存名字里那个 DDR 就是这么来的。显存还嫌不够:GDDR5 把时钟信号拷四份、错开,一个周期传四次;GDDR6 干到八次。再往下榨,就得让一次传输带上更多比特:原来电平只有高低两种,一次传 1 比特;改成四种电平,一次就传 2 比特,这个技术叫 PAM4。GDDR6X 靠它又翻了一倍,一个周期传 16 次。不过 PAM4 这步迈得太激进了,到 GDDR7 又退回了更稳一点的三电平 PAM3。

内存为啥不卷带宽

反过来看内存,除了上下边沿传输这一招,这么多年基本没整什么新活,位宽一直是 64 比特,每一代就把频率往上挤一挤。不是内存厂不想卷,是卷带宽对 CPU 真没什么用。

CPU 干的活大部分是串行的。比如从 1 加到 100,每一步都得等上一步的结果出来,你没办法把 99 次加法分给 99 个核同时算。这种活只能一步一步来,每一步要的数据其实没多少,所以对带宽的需求不高。CPU 真正在乎的是另一个东西——从开始取数据,到数据拿到手,中间那段时间差,这个叫延迟。串行任务一步接一步,每一步都搭进去一点延迟,累加起来就把总时间拖得很长。现在内存的延迟大概在五六十到七八十纳秒,这对 CPU 来说已经是龟速了,所以 CPU 才拼命往芯片上加缓存,能不去内存就不去。

GPU 就不在乎延迟了。那么多核是同时去取数的,等也是一块儿等,延迟长一点,摊到整个任务上并不明显。Redknot 在这顺手拆了个老师最爱用的偷换概念:「你一个人说话耽误一分钟,45 个同学就被你耽误 45 分钟」——不对啊,明明就是一分钟,45 个人一起等是一分钟,一万个人一起等还是一分钟。GPU 就是这个道理。所以显存延迟普遍在 200 纳秒往上,也无所谓,它堆带宽的那些花招,很多本来就是拿延迟换的。(苹果那种把内存显存揉到一块的统一内存,是另一个故事,够单开一篇。)

带宽推到极致,就是 HBM

到了 AI 这,游戏显卡那点带宽又不够看了。AI 芯片要的是更狠的位宽,于是就有了 HBM。狠到什么程度呢?普通的 GDDR7 一颗芯片才 32 比特,HBM3E 一个堆叠上来就是 1024 比特。但 1024 比特意味着光传数据的线就得上千根,再加上供电、地址、时钟这些,HBM3E 总共得接近四千根线,普通基板是玻璃纤维做的,这么多线根本铺不开。怎么办?换一片磨得比镜子还平的硅来当转接板,这个东西叫中介层;存储芯片这边则打孔、穿铜柱,一层一层垂直叠起来,这个工艺叫 TSV。一个 GB300 服务器节点这么堆下来,能塞超过 1TB 的 HBM,单价 200 万人民币。这里面 GPU 芯片本身没那么贵,贵的大头是它头顶那坨 HBM。

HBM 把存储芯片打孔穿铜柱垂直叠起来,坐在硅中介层上紧贴 GPU,用近四千根线换来极致带宽HBM 把存储芯片打孔穿铜柱垂直叠起来,坐在硅中介层上紧贴 GPU,用近四千根线换来极致带宽

硅中介层、TSV 这些精细活,「存储为什么是门好生意」里讲 HBM 那篇专门拆过,这里不展开。只补一个副作用:HBM 的产线跟普通内存高度重叠,AI 把产能抢走了,普通内存就得涨价。你最近买内存条觉得贵了吧?有一部分原因就是产能被 AI 拿走了。

存储这条线到这就讲齐了。硬盘上的浮栅也好,内存里的电容也好,还有 GPU 这颗芯片本身,说到底全是一块块硅上造出来的电路。下一篇聊聊这些电路是怎么用光造出来的


本文整理自 B 站 UP 主 Redknot-乔红 的硬件科普合集。「运货」的带宽比喻、还有那个「45 个同学」的段子都是他的原话,比干巴巴讲参数好懂太多。本系列只做主题重编与转写。

和 AI 讨论这篇文章
ChatGPTClaude

订阅更新

新文章发布时发到你的邮箱,不发别的。


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