Skip to content

本文是视频《用最好的动画为你讲解--内存的原理》(作者:Redknot-乔红)的精读笔记,配套原视频观看效果更佳。

用最好的动画为你讲解--内存的原理 ​

一根内存条,凭什么能在通电时装下 16GB 数据,断电又瞬间“失忆”?这条 13 分钟的动画从“两块金属板”起手,一步步搭出内存的真实结构,还讲透了存储设备里独一份的第三种操作——刷新。动画演示干净、论证环环相扣,是把 DRAM 原理一次讲透的稀缺入门课。

图:视频开场,一根内存条“通电记忆、断电失忆”的动画

全景:一条主线看懂 ​

全片逻辑是一条单链:电容能存电荷→加晶体管当闸门,构成最小单元 1T1C→用位线、字线把亿万单元编成巨大阵列→靠“预充电+感应放大电路”完成刷新、读、写三种操作→点破内存速度瓶颈,把悬念交给 CPU 内部的寄存器与缓存。开场先立好坐标系:硬盘断电不丢数据但慢,内存断电即忘却快得多,所以电脑总是先把硬盘数据搬进内存、供 CPU 更快地读写——由此抛出三问:内部结构是什么?为何断电丢数据?为何比硬盘快那么多?

图:从电容到内存条的五步推导路线

从两块金属板开始:一个电容如何记住一个比特 ​

核心论点:内存存储数据最根本的原理,就是用电容“有电/没电”来记 1 和 0。

  • 论据:电容确实能“锁住”电荷。 取两块金属板相对摆放,中间夹一层绝缘物质,分别接电源正负极——通电后板上积累电荷,而且此时即使断开电源,电荷也不会消退。这个结构就是电容,作者给了一个极好懂的类比:

“电容是一种储能装置,你可以把它当成一块电池。”——视频作者 Redknot-乔红,在演示“两块金属板充电实验”、解释电容本质时说

  • 编码规则随之而来: 没电表示 0,充满电表示 1;把一排这样的电容组合起来,就能存下一段数据。
  • 例证(工程落地): 真实工艺里,电容的一个电极做成碗状圆桶,另一个做成圆柱,两者嵌套、中间填充绝缘材料——为的是在指甲盖大的面积里塞下天文数字的“小电池”。

但只有电容还不够。 电容一旦接进电路,它的充放电势必干扰其他电路,所以必须配一扇“闸门”:闸门开,电容与外界接通;闸门关,电容与外界隔绝,“安静地做自己”。这扇闸门就是晶体管——默认不导通,唯独给它的电极施加电压时才会打开。

结论:1 个电容+1 个晶体管=1T1C 结构(T=Transistor 晶体管,C=Capacitor 电容),这就是内存中最基本的存储单元。

本节要点:存储的本质是“电容存电荷、有电为 1 没电为 0”;晶体管是闸门,负责在“保持状态”与“允许访问”之间切换;两者合一即 1T1C。

图:两块金属板夹绝缘层的电容充电实验动画

位线与字线:把一颗颗“小电池”编成一张网 ​

问题一:一排 1T1C 怎么访问? 把连接电容的导线延长——晶体管导通时,这条导线等于直接接到了电容上,可以一条线操作一个电容。因为一个电容存的数据不是 0 就是 1,只有 1 位(bit),这条线便得名位线。注意:位线只有在晶体管导通时才碰得到电容。

问题二:再加一排怎么办? 如果每个电容都单独引一条位线,导线数量会爆炸。解法是多排共用同一组位线——于是需要“选择哪一排”的机制:再用一条线把整排晶体管的控制极连起来,加电压则整排导通,撤电压则整排断开。这条线就是 wordline,中文教科书译作“字线”。作者顺带吐槽了这个翻译:word 本义是“单词”,由多个字母组成,正如一排存储单元各出 1 位、组合成一个 word;直接译成“字”并不贴切(一个字是单个字符),但译名沿用多年,理解即可。

由此得出全片最重要的规则:同一时刻只能有一条字线有电压。 否则两排电容同时挂上位线,数据立刻乱套。

“字线实际上就是起到一个选择的作用,我们想要操作哪一排电容,就在这一排相应的字线上面施加一个电压。”——视频作者在总结字线功能本质时说

例证:真实内存的规模(DDR5)。

项目数值含义
单个 Bank 的字线(行数)65536激活一根字线=整行 8192 个电容同时挂上位线
单个 Bank 的位线(列数)8192一条位线对应一列电容,一个电容存 1 bit
Bank → 内存颗粒32 个 Bank 组成 1 颗颗粒颗粒封装后焊上电路板,才是一根内存条
逻辑 1 电压1.1V电容充满电
逻辑 0 电压0V电容放空电

(65536×8192 的阵列称为一个 Bank,中文译“库”,视频字幕误打成“酷”。)作者还请另一位大佬拆开了几颗真实内存颗粒,供观众与动画对照印证——不同颗粒的内部结构并不完全相同。

本节要点:位线管“读写数据”,字线管“选择哪一排”,二者正交成网;真实 DDR5 一个 Bank 就是 65536 行×8192 列,32 个 Bank 打包成一颗颗粒。

图:多排 1T1C 共用位线、字线负责行选择的阵列示意

图:Bank→内存颗粒→内存条的层级封装动画

漏电:断电丢数据与“刷新”的共同根源 ​

论点:存储设备一般只有读、写两种操作,内存却独有第三种——刷新;它和“断电丢数据”的根源是同一个:漏电。

  • 论据链: 1T1C 里的晶体管随工艺进步越做越小,而尺寸越小,断开状态下也会缓慢漏电→电容上的电荷被悄悄泄掉,电压越来越低→“慢慢地,1 就变成 0 了”。
  • 作者的强论断:

“晶体管漏电问题,是现在阻碍半导体发展的最大问题。”——视频作者在解释刷新的必要性、引出先进工艺时说;FinFET(字幕误作“分费工艺”)与 GAA 工艺,本质上都是冲着漏电去的

图:字幕金句画面,晶体管漏电被称为半导体发展的最大阻碍

刷新怎么做?(DDR5 电压标准:1=1.1V,0=0V) 五步闭环:

  1. 预充电:把所有位线电压拉到 0.55V——正好是满电 1.1V 的一半;
  2. 激活字线:整排晶体管导通,电容与位线接通;
  3. 扰动产生:满电电容(1.1V)遇上 0.55V 的位线,电荷从电容流向位线,电容略降、位线略升;空电容(0V)则相反,位线被拉低一点点;
  4. 感应放大:位线末端有一个“神奇的电路”——感应放大电路(Sense Amplifier),它感应位线上这点细微变化并放大:略升的直接拉高到 1.1V,略降的直接拉低到 0V;
  5. 重写完成:拉高的位线反过来把电容重新充到 1.1V,拉低的则把电容彻底放到 0V——一整行数据被原样“续命”。

妙处在于:刷新的同时,数据其实已经出现在位线上了。 这为读操作埋下伏笔。

本节要点:漏电让 1 会褪色成 0,所以内存必须定期“续命”;刷新=预充电到一半电压→开行→感应放大电路把微弱扰动放大成满幅的 1.1V/0V,原样写回。

图:感应放大电路把位线电压拉高/拉低的刷新过程动画

读与写:写之前那步“多此一举”,其实是保命 ​

读操作几乎是免费的: 刷新完成后,位线电压与电容电压一致,直接读位线即可——想读 8 个电容的数据,把 8 条位线上的电压读出来传给 CPU 就行。

写操作要先做一次“完整刷新”: 同样先预充电到 0.55V、激活字线、让感应放大电路把位线拉到 1.1V 或 0V(与刷新一模一样),然后通过感应放大电路的一个附加电路,强行按写入者的意愿修改它的状态,把新电压持续压在位线上,位线再反过来给目标电容充电或放电——新数据写入完成。

关键论证:为什么不直接强改位线写入,而要先刷新一次原数据?

  • 对要写的那 8 个电容来说,这次刷新确实多余;
  • 但字线的控制范围是一整行——字线一开,不止这 8 个电容挂上位线,这一行的其他电容也全部挂上了;
  • 若不先刷新统一电压,写这 8 个的时候,其余电容的电荷会顺着位线全部跑光,数据当场丢失;
  • 先刷新,让位线电压与整行一致,“我们在刷写这 8 个电容的时候,其他电容的数据就得以保全了”。

结论: 内存相对 CPU 里的存储其实并不快——读、写流程都繁琐,电容还漏电,必须定期刷新。作者原话:

“内存的读取写入操作都是比较繁琐的,而且电容还会漏电,我们还需要定期刷新电容,这些问题就导致内存的速度相对来说还是比较慢的。”——视频作者在总结 DRAM 缺陷、引出寄存器/缓存话题时说

本节要点:读=刷新的副产品;写=先刷新保住整行、再由感应放大电路强行翻转到新值;“写前必先刷新”不是冗余,而是给同行无辜电容保命。

图:写操作中附加电路强行改写感应放大器状态的动画

比内存更快的答案,藏在 CPU 里 ​

既然内存“又繁琐又漏电”,谁更快?CPU 内部的寄存器(字幕误作“计存器”)与缓存——存储容量有限,速度却惊人。例证:AMD 9800X3D 正是靠着 96MB 的 L3 缓存,拿到了令人吃惊的游戏性能。它们为什么这么快?结构与内存差在哪?视频把这两个问题留给了下一期。

One More Thing: 本讲对感应放大电路只讲了“能感应、能放大”,其内部原理被刻意按下不表——因为谜底是锁存器,而锁存器正是下期视频的主角:构成寄存器与缓存的基本单元。作者透露,感应放大电路里的锁存器与标准的 6T 锁存器(6 晶体管结构)“确实是神似”——两条知识线将在下期会师。

本节要点:内存的速度天花板由“繁琐+漏电”决定,更快的寄存器/缓存是下期主角;感应放大电路的秘密(锁存器)是留给下期的钩子。

图:CPU 内部寄存器与缓存的高速存储层级示意

总结要点 ​

  1. 最小单元: 内存靠 1T1C 存数据——电容存电荷(1.1V 为 1、0V 为 0),晶体管当闸门。
  2. 组织方式: 位线管读写、字线管选择,同一时刻只激活一条字线;DDR5 一个 Bank=65536 行×8192 列,32 个 Bank 组成一颗内存颗粒。
  3. 易失根源: 晶体管漏电让电荷慢慢流失、1 褪变成 0,断电则彻底清空——这就是“易失存储”。
  4. 第三种操作: 刷新=预充电到 0.55V→开行→感应放大电路把扰动放大回 1.1V/0V 原样写回;读是刷新的副产品,写必须先刷新才能保全整行数据。
  5. 速度的另一面: 繁琐的读写+永不停歇的刷新决定了内存的相对“慢”,也自然引出下期的寄存器、缓存与锁存器。

迁移与启发 ​

  • 给知识设“刷新周期”。 内存连数据都不敢放任漏电,人的知识和技能同样在悄悄“放电”:与其指望一次学习终身受用,不如学内存的机制——每月固定花一小时“重写”一次自己的项目成果、核心数据或技能清单(更新简历、复盘笔记、重跑一遍关键技能),让重要的“1”始终处于满电状态。
  • 把资产分清“内存型”和“硬盘型”。 高频要用的活钱,放随取随用的流动性产品(内存思路);长期不动的钱,放断电也不丢的确定性资产,比如存款、指数基金(硬盘思路)。同时警惕一切宣称“又快又稳”的理财——本片最大的提醒就是:速度有维护成本,内存的快是靠全时通电加亿万次刷新换来的,遇到高收益承诺,先问一句“刷新成本(费率、风险)谁在付”。
  • 一次只给一条字线通电。 内存铁律是同一时刻只能激活一行,否则数据乱套——多任务并行、同时追多个目标正是同款困境。做重要决策前先“预充电”:把各选项的信息拉到同一基准线上比较,再选定一条“字线”集中资源打透,比什么都想要、结果全线丢数据靠谱得多。

一句话升华 ​

所谓“快”,从来不是免费的——内存里的每一个比特,都是靠亿万次不间断的刷新硬撑出来的;世上所有稳定的性能背后,都站着一套沉默的、日复一日的维护系统。