宇芯电子 · 2020年06月24日

静态SDRAM和动态SDRAM的区别

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

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

SDRAM1.jpg

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

SDRAM2.jpg

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

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

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

SDRAM3.jpg

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

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

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

MCU4.jpg

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

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

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

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

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

推荐阅读
关注数
8
文章数
168
专注于代理国内外各大知名品牌的半导体元器件,致力于为客户提供具有竞争优势的产品,是一家专业提供存储方案解决商。主要产品线有静态随机存储器SRAM,非易发性存储器MRAM,伪静态存储器PSRAM等多种类型随机记忆体及微控制器MCU等半导体产品,产品主要应用于:工业控制,物联网,智能控制,消费类电子,仪表仪器等多方面。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息