SDRAM-高手进阶,终极内存技术指南----学习笔记

本文详细介绍了SDRAM的物理Bank、SDRAM芯片位宽、逻辑Bank与芯片容量表示方法,以及内存寻址步骤、SDRAM的初始化、读写时序、预充电与刷新操作。内容涵盖了内存芯片的结构、DIMM设计、时序参数,以及预充电和刷新对数据稳定性和性能的影响。通过对SDRAM工作原理的深入剖析,展示了如何通过内存控制器设置和操作内存芯片。
摘要由CSDN通过智能技术生成

目录

1、物理Bank

2、SDRAM、SIMM、DIMM、pin的含义

3、芯片位宽

4、SDRAM的逻辑Bank与芯片容量表示方法

5、与芯片位宽相关的DIMM设计

6、内存寻址的步骤

7、SDRAM芯片初始化、行有效、列读写时序

8、SDRAM的读/写时序与突发长度

9、SDRAM芯片的预充电与刷新操作

10、结合韦东山老师的第12课——内存控制器与SDRAM——SDRAM的设置

11、总结


1、物理Bank

传统内存系统为了保证CPU的正常工作,必须一次传输完CPU在一个传输周期内所需要的数据。而CPU在一个传输周期能接受的数据容量就是CPU数据总线的位宽,单位是bit(位)。当时控制内存与CPU之间数据交换的北桥芯片也因此将内存总线的数据位宽等同于CPU数据。总线的位宽,而这个位宽就称之为物理Bank(Physical Bank.简称P-Bank)的位宽。
    
结合韦东山老师讲的 不同位宽设备的连接:
       接到芯片上的引脚用来确定读取芯片上的哪一个单元的数据,把这个单元的数据返回给内存控制器,内存控制器会根据没有连接芯片的引脚,来确定返回哪一个字节的数据给CPU,最终的地址线终将都会用到。


2、SDRAM、SIMM、DIMM、pin的含义

1. SDRAM:

Synchronous Dynamic Random Access Memory,同步动态随机存储器。同步是指其时钟频率与CPU前满总线的系统时钟频率相同, 并且内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进行数据的读写。

2. pin:

楼组或芯片与外部电路联接用的金属引脚,而模组的pin就是常说的“金手指”。

3. SIMM:

Single In-line Memory Module,单列内存模组。内存模组就是我们常说的内存条,所谓单列是指模组电路板与主板插槽的接口只有一列引脚(虽然两侧都有金手指)。
        
4. DIMM:

Double In-line Memory Module,双列内存模组。所谓双列是指楼组电路板与主板插槽的接口有两列引脚,模组电路板两侧的金手指对应一列引脚,DIMM是SDRAM集合形式的最终体现。 

3、芯片位宽

SDRAM内存系统必须要组成一个P-Bank的位宽,才能使CPU正常工作,P-Bank位宽涉及到内存芯片的结构。每个内存芯片也有自己的位宽,即每个传输周期能提供的数据量。理论上,完全可以做出一个位宽为64bit的芯片来满足P-Bank的需要,但这对技术的要求很高,在成本和实用性方面也都处于劣势。所以芯片的位宽一般都较小。台式机市场所用的SDRAM芯片位宽最高也就是16bit、常见的则是8bit。这样,为了组成P-Bank所需的位宽,就需要多颗芯片并联工作。对于16bi芯片,需要4颗(4×16bit=64bit)。对于8bit芯片,则就需要8颗了。

提示:内存芯片与颗粒

很多时候,经常听人们说到“内存颗粒”,其实这是港台地区对内存芯片的一种称呼(仅对内存,其他的芯片,港台则            称 为“晶片”),两者的意思是一样的。具体怎么说,就看个人喜好了,就笔者而言,而倾向于用“内存芯片”来表                    述。

 DIMM是SDRAM集合形式的最终体现,每个DIMM至少包含一个P-Bank的芯片集合。在目前的DIMM标准中,每个模组最多可以包含两个P-Bank的内存芯片集合,理论上可以在一个DIMM上支持多个P-Bank,比如SDRAMDIMM就有4个芯片选择信号(Chip Select简称片选或CS),理论上可以控制4个P-Bank的芯片集合。由于难度原因没有这么去做。

DIMM的面数与P-Bank数量的关系,面数P ≠ Bank数,只有在知道芯片位宽的情况下,才能确定P-Bank的数量,大度256MB内存就是明显一例,而这种情况在Registered模组中非常普遍。内存模组的设计,将在后面的相关内容中继续探讨。

4、SDRAM的逻辑Bank与芯片容量表示方法

1.逻辑Bank与芯片位宽

下面深入了解SDRAM的内部结构。这里主要的概念就是逻辑Bank。简单地说,SDRAM的内部是一个存储阵列。因为如果是管道式存储(就如排队买票),就很难做到随机访问了。

阵列就如同表格一样,将数据“填”进去,你可以把它想象成一张表格。和表格的检索原理一样,先指定一个行(Row),再指定一个列(Column),我们就可以准确地找到所需要的单元格,这就是内存芯片寻址的基本原理。对于内存,这个单元格可称为存储单元。表格(存储阵列)== 逻辑Bank(Logical Bank,简称L-Bank)。

   L-Bank存储阵列示意图

  

由于技术、成本等原因,不可能只做一个全容量的L-Bank。而且单一的L-Bank将会造成非常严重的寻址冲突,大幅降低内存效率。所以人们在SDRAM内部分割成多个L-Bank,较早以前是两个,目前基本都是4个,这也是SDRAM规范中的最高L-Bank数量。到了RDRAM则最多达到了32个,在最新DDR-II的标准中,L-Bank的数量也提高到了8个。

这样,在进行寻址时:

①先确定是哪个L-Bank,

②再在这个选定的L-Bank中选择相应的行与列进行寻址。

可见对内存的访问,一次只能是一而每个L-Bank工作,次与北桥交换的数据就是L-Bank存储阵列中一个“存储单元”的容量。在某些厂商的表述中,将L-Bank中的存储单元称为Word(此处代表位的集合而不是字节的集合)。 

SDRAM内存芯片一次传输率的数据量 == 芯片位宽,那么这个存储单元的容量 == 芯片的位宽(也是L-Bank的位宽),但要注意,这种关系也仅对SDRAM有效,以下将会说明。

DRAM的存储原理

L-Bank中的存储单元是基本的存储单位,它的容量是若干Bit(对于SDRAM而言,就是芯片的位宽),而每个Bit则是存放于一个单独的存储体中。这些存储体就是内存中最小的存储单元。你可以用硬盘操作中的扇区的关系来理解内存中的存储形式。扇区是硬盘中的最小存储单元(相当于内存中的存储体),而每个簇则包含有多个扇区(相当于L-Bank中的存储单元),数据的交换都是一个簇为单位进行(一次传输一个存储单元的数据)。

DRAM的存储原理示意图:行选与列选信号将使存储电容与外界间的传输电路导通,从而可进行放电(读取)与充电(写入)。另外,图中刷新放大器的设计并不固定,目前这一功能被并入读出放大器(Sense Amplifier,简称S-AMP)

2.内存芯片的容量

已经清楚了内存芯片的基本组织结构。那么内存的容量怎么计算呢?显然,内存芯片的容量就是所有L-Bank中的存储单元的容量总合。计算有多少个存储单元和计算表格中的单元数量的方法一样:

存储单元数量=行数×列数(得到一个L-Bank的存储单元数量)xL-Bank的数量在很多内存产品介绍文档中,都会用MxW的方式来表示芯片的容量(或者说是芯片的规格/组织结构)。

M是该芯片中存储单元的总数,单位是兆(英文简写M,精确值是1048576,而不是1000000)

W代表每个存储单元的容量,也就是SDRAM芯片的位宽(Width),单位是bit。

计算出来的芯片容量也是以bit为单位,但用户可以采用除以8的方法换算为字节(Byte)。比如8M×8,这是一个8bit位宽芯片,有8M个存储单元,总容量是64Mbit(8MB)。

提示:bit、Byte、Word的关系

bit:位。二进制数中,一个0或1就是一个bit。

Byte:字节。8个bit 为一个字节,这与ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)的规定有关,ASCII用8位二进制数来表示256个信息代码,所以8个bit定义为一个字节。

Word:字:两个字节为一个字,这里的Word不是指L-Bank中存储单元,此外还有双字(DWords,Double Words,4个字节)和四字(QWord,Quad Words,8个字节)的表示法。目前一个P-Bank的位宽就是QWord,这在很多CPU与芯片组的介绍中经常用到。

MxW是最简单的表示方法。下图则是某公司对自己内存芯片的容量表示方法,这可以说是最正规的形式之一。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值