DDR3的全称是:DDR3 SDRAM
SDRAM的全称是:SDR SDRAM(S:是同步的意思,D:是动态的意思,动态是指存储器需要不断的刷新,保证数据不丢失。)
SRAM:(S:是静态的意思)
1.SDRAM和DDR3的工作模式的区别
SDRAM 的工作方式:单边沿工作
DDR3的工作方式:双边沿传输数据
所以DDR3 SDRAM工作方式更快。
一、DDR3的存储结构
对于MT41J128M16来说,DDR3的存储结构是由8个bank(8张表),每张表上有16M的地址空间,每个地址空间存储的数据是16bit的。
那么一个bank上有多少行?多少列呢?
这个我们可以查datasheet。
观察到:row的地址有16K(14bit) col的地址有1k(10bit)16k*1k=16M
bank的地址为8(3bit)
那么在DDR 3中我们如何进行寻址呢?
我们观察到选择bank的地址有三个端口,即:BA0~BA2
但是对于行地址和列地址来说,我们只有A0~A14这15个端口,那么哪些是行地址和列地址呢?我们可以通过时分复用进行地址的访问。
根据数据手册,我们知道row地址是用A【13:0】进行访问的,col地址是用A【9:0】进行访问的,采用时分复用的方式。
(上图的右侧的DQ端是数据的写入和读出端)
上述给出了DDR3的状态转移图,对于DDR3 SDRAM 来说,其工作是需要不断的进行刷新的,而且刷新时间是固定的(他是所有的bank一行一行进行刷新,bank同时刷新),假设行地址有12根地址线,那么就是有4096行,刷新假设需要64ms,那么第一次刷新和第二次刷新之间的时间间隔为15us ,同理,第二次刷新和第三次刷新之间间隔也为15us。
上述所示的刷新过程要在放电结束之前进行刷新,因为一旦电量放完,那么数据就丢失了。所以在DDR3 SDRAM中,数据的刷新的优先级要大于写的优先级,数据的刷新的优先级要大于读的优先级,就算数据正在写,到了刷新时间,也要返回到IDEL状态,进行刷新。单纯的用verilog代码,感觉十分麻烦,我们可以利用仲裁机制进行处理。
对于写突发,我们观察到command给了一个WRITE的写命令,但是地址只给了bank地址和col地址,这是怎么回事呢?
因为在进行前面的ACTIVATE Operation时,已经给了行地址row(观察状态图,此操作在写操作之前)