不请自来,正好最近学到这些内容,说说我的理解。
首先感觉题主的问题是不正确的。这四种存储器并不都是利用电容进行存储的。
首先是密度较高的Dynamic Random Access Memory (DRAM):
毫无疑问DRAM就是按照题主的问题,利用电容充放电存储数据,而电容是会漏电的,另外读取操作也会影响电荷存储,所以需要利用时钟信号进行refresh。
第二种是Static Random Access Memory (SRAM):
可以看到SRAM并不是利用电容存储电荷来记录数据,而是用两个inverter形成一个loop分别存储bit和bit_b,而我们还知道inverter连接vdd,是会对数据进行不停的restore的,如果停止供电,失去了restore的loop中的信号会很快衰减到不可读取。
以上是为什么DRAM和SRAM是易失性的。
而NAND和NOR型的闪存,存储原理是不同的。(以下内容部分来自wikipedia)
先说NOR flash:
同普通的mosfet不同的是,这里有两个gate,一个普通的control gate,还有一个在control gate和channel之间的floating gate。存储的关键就是这个floating gate。它是与周围绝缘的,一旦注入电荷,可以长时间保持状态而不耗散。这些电荷可以改变control gate产生的电场,进而改变沟道产生的阈值电压Vth,所以在相同的操作电压之下,通过控制floating gate的状态可以影响沟道是否导通,形成了1和0的区别。回到题主的问题,为什么NOR flash是具有nonvolatility呢?关键就是上面描述的一句话:floating gate与周遭是绝缘的,一旦充电可以长久保持,所以不需要定期刷新状态。
最后是NAND flash:
***********************************
此处没有图……我是凑数的……
***********************************
好叭,我偷懒了,因为本质上NAND flash也是利用floating gate transistor进行存储读写的,所以原理和NOR flash没有大区别,只不过NAND flash是串联到一起的,不过这个和本问题关系不太大,不赘述了。
所以,综上,DRAM和SRAM需要供电是因为他们如果失去了供电存储用的电荷或者信号会很快衰减消失,所以需要不停的刷新维持状态,而NAND/NOR flash存储的电荷是很难耗散的,所以不需要刷新。
如果理解有问题,请多多指正。