• 正文
  • 相关推荐
申请入驻 产业图谱

SDRAM详细分析——02 内存访问周期

09/15 09:39
314
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

大家好,这里是大话硬件。

上一篇文章介绍了SDRAM基础,了解到SDRAM的发展历程。这篇文章主要总结SDRAM内部的构造和最基础的内存访问周期。

打开DDR的数据手册,在Diagram这一页如下所示:

上面的框图说明SDRAM内部有大量banks,即多bank架构。这个多Bank有点像图书馆里面的书架。

下面是1Gb内存DDR3手册,可以看到有8个Banks,对应到框图里面的Bank0~Bank7

将Bank类比成书架,如下所示

在Bank内部,存在不同的行Rows,而每一行又有很多列columns

根据上面的类比,当需要读取或者写入数据时,也就是要借取或者还回某本书,需要3个地址信息,分别是哪个Bank(书架),哪一行,哪一列。

那么在DDR内部,完成一次数据的操作,具体是如何进行的呢?

芯片上电完成初始化后处理idle状态。进行数据处理,主要有3步:

第一步:activating 激活

激活命令会把数据所在的bank一行,全部复制到bank对应的缓冲行里面,这里的行缓冲区访问速度非常快。

可以类比成你需要在图书馆找到清华大学出版的电路书籍,你在前台发出指令,图书馆会将一推车清华大学出版的电路书籍全部送到你面前。

第二步:读取或写入 read/write

此时数据在高速行缓冲区,可以直接进行读取或者写入。你能直接找你想要的具体的一本书籍。

第三步:预充电 precharge

当读取或者写入完成后,需要将这一行关闭掉,使其恢复到初始化的状态,这个动作就是预充电。

预充电完,将会发生两个变化: 如果刚刚写入了新的数据到缓冲行,那么预充电会把修改后的数据,复制到Bank中,使Bank的数据完成更新。另外,复制完成后,缓冲区将恢复到初始态。

此时整个Bank又回到了idle的状态。

上面三步,就是DDR一次完整的内存访问周期。对应下面的1,2,3。

根据上面状态机可知,在DDR内部还有refresh的操作,即刷新。在上一篇文章中介绍了SDRAM内部最小单元是一个电容晶体管,但是这个电容并不是理想的,会慢慢漏电。刷新的操作就是给这些电容充电,防止因为漏电导致0和1发生翻转,导致数据错误。

从上面框图看出,刷新操作是不能读取或者写入数据的,因为上一个状态是idle也就是在预充电完成之后,才能进行刷新。可见刷新的频率和时间其实会影响到SDRAM操作的效率。因为刷新是实实在在地消耗时间,不能进行任何的数据操作。

将上面的命令功能总结如下:

下一篇文章将介绍SDRAM流水线操作指令关注我,让我成为你的专属小太阳吧

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录