1.sdram和sram的区别
工艺上ssram的一个存储单元由6个晶体管组成,而sdram的一个存储单元由一个晶体管和一个电容组成。因为电容会存在漏电的问题,所以就sdram就必须定期刷新,保证不会因为电容漏电而出现存储电平改变。
sdram一般是一整片的存储矩阵,可以实现随机访问,类似于一个巨大的仓库,一旦打开仓门,后续就可以随意的存取货物。而sdram不同,sdram将所有的存储单元分为了若干个子仓库(bank),每个子仓库里面又分为若干多个盒子(row),需要在某个盒子里面存取货物时,都需要打开相应的子仓库和盒子,且同一时刻只能有一个子仓库的一个盒子被打开。
2.sdram效率问题
refresh和bank-row打开关闭时间共同导致了SDRAM存在访问效率的问题。首先是刷新,刷新时SDRAM必须关闭所有的bank和row,然后开启刷新并等待刷新完成。其次时随机访问时,需要频繁的关闭bank-row和打开bank-row。
那如何提高SDRAM的访问效率呢?
第一:使用bank交织技术。简单点说就是当访问某个bank-row快结束时,有一个固定的提前时间可以打开另外一个bank-row。当前的访问结束后,通过auto precharge功能自动关闭本bank-row,而此时另外一个bank-row已经被打开,从而实现无缝隙的访问。
第二:使用读写缓冲,就是在sdram的输入输出端再加一级缓存,保证sdram刷新时不会打断外部的数据的写入和读出