同步动态随机存取存储器(英语:Synchronous Dynamic Random-Access Memory),简称SDRAM,是一种利用同步计时器对存储器的输出入信号加以控制的动态随机存储器(DRAM)。SDRAM是在DRAM的架构基础上增加同步和双区域(Dual Bank)的功能,使得微处理器能与SDRAM的时钟同步,所以SDRAM执行命令和传输资料时相较于DRAM可以节省更多时间[1]。
SDRAM在计算机中被广泛使用,从起初的SDRAM到之后一代的DDR(或称DDR1),然后是DDR2和DDR3进入大众市场,2015年开始DDR4进入消费市场。
尽管SDRAM的概念至少从20世纪70年代就已经被人们所熟悉,在早期的Intel处理器上也已被采用,但要说到它在电子工业被广泛接受,那是从1993年才开始的。1993年,三星开始展示其新出品的KM48SL2000 SDRAM,到2000年,SDRAM因为其卓越的性能,实际上取代了其它类型的DRAM在现代电脑中的位置。
SDRAM本身的延迟其实并不比異步DRAM更低(延迟更低意指速度更快)。其实,早期的SDRAM因为其构造中的附加逻辑单元,在速度上比同时期的爆发式延伸数据输出DRAM(Burst EDO DRAM)还有所不及。而SDRAM的内建缓冲则可以使得运算交叉进入多行存儲,这样就可以有效提高带宽,速度更快。
时至今日,所有的SDRAM实际上都依照JEDEC(一个电子工业联盟,选定开放的标准,使电子组件的互容性更好)制定的标准制造。JEDEC于1993年正式采用其第一个有关SDRAM的标准,随后是其它SDRAM的标准,包括了DDR、DDR2和DDR3 SDRAM。
时至2012年,168-pin(pin指内存插入实际接触的金手指数量)的SDRAM双线内存模块(DIMM)在新的个人计算机上已经不再使用,被大量的184-pin的DDR存储器代替。在新的个人计算机,DDR2 SDRAM又已经普遍取代DDR SDRAM,但目前支持DDR3的主板和存储器比DDR2 SDRAM被更广泛地使用,成为主流,所以DDR3目前的价格比非主流的DDR2产品便宜了不少。
如今世界有三强SDRAM颗粒制造商:韩国的三星电子(Samsung Electronics)和海力士(Hynix),及美国的美光科技(Micron Technology)。三者垄断超过90%的全球市场,包括PC RAM、手机RAM和伺服器RAM。[2] 另外,以上三间公司及日本东芝亦垄断了全球90%的NAND闪存市场,这种存储器主要用来制造SD卡和SSD。[3]
有几个DRAM性能的极限,最有名的就是读取周期时间,是指对一个开放的行进行连续读操作之间的间隔。这个时间从100MHZ频率的SDRAM的10纳秒缩减为DDR-400的5纳秒,但是从DDR2-800和DDR3-1600就保持相对不变。然而,通过操作接口电路,使基本读取速度成倍提高,可实现带宽的迅速增加。
另一个极限是CAS等待时间,是指提供一个地址与接受到相关数据之间的间隔。这个也保持了相对稳定,最近几代DDR SDRAM的这个数据为10-15纳秒。
在操作上,对DRAM控制器来说CAS latency是一个已知的clock cycles特定数字, 这数字会被登录在SDRAM模式注册表中.在时钟速率很快的情况下,CAS等待时间相对的时钟周期数自然就会增加。10-15纳秒对200MHZ时钟频率的DDR-400 SDRAM就是2-3个周期,对DDR2-800就是4-6个周期,DDR3-1600就是8-12个周期。比较慢的时钟周期,CAS等待时间相对的周期数也会比较少。
100MHz的SDRAM晶片第一次出现时,有些制造商开始贩卖“100 MHz”的模块,而这些模块是不能在那个时钟频率下正常工作的。有鉴于此,Intel发布了PC100的标准,描述了具体要求,为生产能在100MHz频率下工作的内存模块提供了指引。这个标准影响深远,“PC100”这个术语很快成了100MHz SDRAM模块的通用标识。如今,模块通常被冠以“PC”为前缀的一组数字的名称(PC66、PC100或者PC133—尽管数字代表的实际含义早就不是其原有的)。[4]
单资料流SDRAM(SDR SDRAM)被视最早的SDRAM,单资料流SDRAM在每个时钟可以接收一个指令和传输一个字节。典型的时钟为66、100和133MHz(周期分别为15、10和7.5纳秒)时钟到150MHz的则可用于性能的发烧友。晶片有多种不同的数据总线宽度(最常见的是4、8或16bits),但是晶片一般被做成168-pin的DIMM模块,可以同时读写64bits(非ECC)或72bits(ECC)。
[6]
数据总线的存取机制很复杂,需要一个复杂的DRAM控制器。这是因为写入DRAM的数据必需和一个写入指令在同一个时钟中,而读取数据可以在读取指令后的2到3个时钟进行。DRAM控制器必须确保数据总线不会同时进行读写。
一个512MB的SDRAM DIMM存储器模块一般由8个到9个SDRAM晶片组成,每个晶片包含有512Mbit的存储空间,每颗晶片为模块的总线提供了8个bit的宽度。一个典型的512Mbit SDRAM晶片内部包含了4个独立的16Mbyte大小的库。每个库都有8,192行,16,384bits。一个库或者处于空闲状态、忙碌状态,或者介于两者状态之间。[7][8]
一个激活指令会将一个空闲状态的库激活。它占用2-bit的库地址(BA0–BA1)和13-bit的行地址(A0–A12),然后将那一行读取入有着16,384个读取放大器的库的队列。这也被称为“开启”行。
只有该行已被激活或者“开启”,读写指令才可以进行。每个指令都需要一个列地址,但是因为每个晶片同时能处理8-bit,因此有2048个可能的列地址,不过只需要11个地址行(A0–A9, A11)。激活需要一个最小周期,称为行到列延迟,或者tRCD。[9]