1.3、cell阵列的读取
cell 的读取依靠小电容充放电,电容充放电导致位线产生电压波动,通过读取位线电压波动即可获取信息。小电容充放电所产生的电压波动是很微弱的,充放电所造成的电压波动的时间也是很短的,因此很难直接读取充放电信息,为此 cell 阵列的读取使用到了“ sense amplifier ”,即读出放大器。
读出放大器可以捕捉到微弱的电压波动,并根据电压波动的情况在本地还原出 cell 的电容电压,而且放大器内还有锁存器,可以把还原出来的电容电压值保存起来,这样一来 cell 保存的信息就从 cell 电容转移到了放大器本地。

每条位线都要接到一个放大器中,效果图如图三。在读取 cell 行(之后也称作单元行)前,需要把每根位线都 precharge(预充电)到电容电压/供电电压最大值的一半,如果供电电压是 3 V,那么就预充电到 1.5 V。预充电完毕后打开字线,单元行中每个 cell 电容或是向位线放电,或是由位线充电。放电者位线电压上升一点,充电者位线电压下降一点。放大器可以捕捉位线上的电压波动,继而在本地还原、暂存对应 cell 电压。
有的读者可能好奇放大器是如何捕捉微弱电压波动并还原 cell 电容电压的,实际上放大器涉及到模拟电路的知识,因为模拟电路不是本文的重点,所以这里不会展开。不过有一件事很重要:在 DRAM 芯片中,读出放大器把 cell 阵列分成了两半。
分成两半的效果图如图四。为什么要把 cell 阵列分成两半?因为一个放大器需要同时接入两根位线。为什么一个放大器要接两根位线?因为放大器在捕捉、放大其中一条位线的电压波动时需要另一条位线的帮助。DRAM 芯片用到的放大器是“差分感测放大器”,它在放大信号波动时需要用一个基准和待测线作“比较”,此时接到放大器上的两条位线的其中一条就是所谓的基准,这条基准线经过预充电之后,其电压恒等于供电电压的一半。
更多关于存储芯片中差分放大器的内容可以参考《数字集成电路——电路、系统与设计》(第二版)的457~462页。

到这里我们清楚了 cell 阵列的读取,但是还有一个问题:在读取单元行时,读取行的 cell 电容经过充/放电之后,原本的信息就丢失了,即原来有的电荷现在放掉了,而原来没有电荷的现在却有了电荷。这种会造成信息丢失的读取行为称为“破坏性读出”。
破坏性读出是不行的,因此在读取单元行之后我们还要恢复单元行的信息。如何恢复?在读取时,放大器还原并暂存了单元行每个 cell 的电容电压,因此可以在输出完毕之后再把这些暂存电压写回原单元行。
具体做法是在读出数据之后,根据放大器锁存的值,把各条位线拉到供电电压或接到地,然后 cell 电容就会根据位线电压进行充电或放电,当 cell 电容充放电结束,就可以断开字线,断开字线也就宣告本次 DRAM 读取结束。