查看: 1105  |  回复: 1
静态SDRAM和动态SDRAM的区别

主题

回复
发表于2020-06-24 13:48:22 | 只看该作者
1# 电梯直达

SDRAM有一个同步接口,在响应控制输入前会等待一个时钟信号,这样就能和计算机的系统总线同步。时钟被用来驱动一个有限状态机,对进入的指令进行管线(Pipeline)操作。这使得SDRAM与没有同步接口的异步DRAM相比,可以有一个更复杂的操作模式。下面宇芯电子介绍关于静态SDRAM和动态SDRAM的区别。

静态记忆假设我们要将16Mb存储器连接到FPGA。16Mb表示内存可容纳1600万位(准确地说是16777216位)。现在,很少对比特进行单独寻址,而是通常以8或16的数据包(我们称其为字)进行寻址。因此,如果我们的16Mb存储器被组织为16位的1M字,则需要20位地址总线和16位数据总线,以及一些可写和可读信号。

 

实际的存储器也将具有CS(片选),如果存储器是同步的,则为时钟(为清晰起见,在图片中将其省略)。现在,如果该内存是一个Blockram(在FPGA内部),它将看起来有所不同(假设存在如此大的16Mb Blockram ...典型的Blockram要小得多)。

 

如您所见,它仍然是一块内存,但是有两条地址总线。那是因为现代FPGA中的Blockram是双端口的……这意味着两个代理可以同时访问存储器。通常,一个代理写入内存,而另一个则读取。因此,每个代理的内存都有独立的地址和数据总线。上面的图片在顶部显示了第一个(写)代理,在底部显示了第二个(读)代理。更高级的Blockram允许每个代理读取和写入,但是上面显示的体系结构是最常用的。同样,blockram通常也被同步使用,因此每个代理都必须提供一个时钟(未在图片中显示)。

到目前为止,所显示的内存是静态的,这意味着仅通过对其施加电源即可保存其内容。另外,静态存储器可以看作是一个长字形的线性数组(您只需提供一个地址即可访问匹配的数据...无需复杂)。需要权衡的是每比特成本要比...高得多。

动态记忆我们将使用SDRAM,它是动态内存(SDRAM中的“ D”)。在动态内存中,内存不被视为单词的长线性数组,而是被组织为单词的矩阵(行/列)。

 

上图显示行的12位和列的8位,如前所述总共有20个地址位...很容易。

有一种复杂性:为了提高性能,将内存分成相等的块(称为“存储体”)。那是因为某些动态内存操作速度很慢,因此拥有存储体可以在等待另一个存储体的同时使用它。

因此,如果我们的16Mb SDRAM有2个存储区,则每个存储区拥有8Mb。

 

访问SDRAM时,FPGA必须选择存储体(1位),行(现在只有11位)和列(8位),总共需要20位。但这是一个两步过程:首先是行+库,然后是列:

•FPGA选择一个存储区并激活其行之一。然后它等待几个时钟(等待行准备就绪)。

•现在,该行处于活动状态,FPGA只需提供列地址即可访问(读取和/或写入)该行中所需的任何数据。

•FPGA处理完该行后,必须先关闭该行,然后再打开新行。

为了获得最佳性能,用户(= FPGA)希望避免过多地打开和关闭行,而是在关闭行之前尽可能多地完成工作,并在不同存储体中进行交错操作,以免浪费时钟周期。大多数SDRAM实际上有4或8个存储体,每个存储体都是独立的,因此可以激活自己的行。


主题

回复
发表于2020-06-24 13:49:06   |  只看该作者
2#
SDRAM有一个同步接口,在响应控制输入前会等待一个时钟信号,这样就能和计算机的系统总线同步。时钟被用来驱动一个有限状态机,对进入的指令进行管线(Pipeline)操作。这使得SDRAM与没有同步接口的异步DRAM相比,可以有一个更复杂的操作模式。下面宇芯电子介绍关于静态SDRAM和动态SDRAM的区别。

主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部