SRAM(静态随机存取存储器)和DRAM(动态随机存取存储器)都是计算机中常用的随机存取存储器,它们的工作原理存在一定差异,具体如下:
存储单元结构:SRAM的存储单元通常由6个晶体管组成,形成两个交叉耦合的反相器,能够稳定地存储一位二进制数据,即0或1。其中,两个反相器的输出互为相反状态,分别代表存储的0和1。只要电源持续供电,存储单元就会保持其存储状态,不需要额外的刷新操作。
读操作:当进行读操作时,通过字线(Word Line)选中要读取的存储单元所在的行,使该行的所有存储单元被激活。然后,根据存储单元的状态,位线(Bit Line)上会产生相应的电平信号,通过 Sense Amp(灵敏放大器)对微弱的电平信号进行放大和判断,最终将存储的数据输出到数据总线上,完成读操作。
写操作:写操作时,同样先通过字线选中要写入的存储单元所在的行。然后,将要写入的数据通过数据总线传输到位线上,根据写入数据是0还是1,位线会施加相应的电平信号,改变存储单元中晶体管的状态,从而将数据写入存储单元。
存储单元结构:DRAM的存储单元由一个晶体管和一个电容组成。电容用于存储电荷来表示数据,电容充电表示存储1,放电表示存储0。但由于电容存在漏电现象,存储的电荷会逐渐丢失,所以需要定期进行刷新操作来保持数据的正确性。
读操作:读操作时,首先通过字线选中要读取的存储单元所在的行,使该行的所有存储单元中的电容与位线连接。由于电容上存储的电荷会使位线产生微弱的电压变化,通过 Sense Amp对这种微弱的电压变化进行检测和放大,判断出存储的数据是0还是1,并将数据输出到数据总线上。在读取过程中,电容上的电荷会被消耗,导致存储的数据被破坏,所以读出操作实际上是一种破坏性读出,需要在读取后对存储单元进行重写操作来恢复数据。
写操作:写操作时,同样先通过字线选中要写入的存储单元所在的行。然后,根据要写入的数据是0还是1,在位线上施加相应的电压信号,对存储单元中的电容进行充电或放电操作,从而将数据写入电容中。
刷新操作:由于电容的漏电特性,DRAM需要定期进行刷新操作。刷新操作就是每隔一定时间,对DRAM中的所有存储单元进行读取和重写操作,将电容上的电荷恢复到原来的状态,以确保数据的正确性。刷新操作通常由DRAM控制器自动完成,不需要CPU的干预。