- 积分
- 280
- 下载分
- 分
- 威望
- 点
- 原创币
- 点
- 下载
- 次
- 上传
- 次
- 注册时间
- 2007-5-14
- 精华
|
马上注册,获取阅读精华内容及下载权限
您需要 登录 才可以下载或查看,没有帐号?注册
x
文章是从别的地方弄的,这里有SDR,RAMBUS,DDR的基本讲解及技术。
先声明:要学内存的就在这里看完,不要存硬盘里发霉!!!
SDRAM 与内存基础概念( 一)
一、SDRAM 内存模组与基本结构
我们平时看到的SDRAM都是以模组形式出现, 为什么要做成这种形式呢? 这首先要接触到两个概念:
物理Bank 与芯片位宽。
1、物理Bank
传统内存系统为了保证CPU 的正常工作, 必须一次传输完CPU 在一个传输周期内所需要的数据。而
CPU 在一个传输周期能接受的数据容量就是CPU 数据总线的位宽, 单位是bit( 位) 。当时控制内存
与CPU 之间数据交换的北桥芯片也因此将内存总线的数据位宽等同于CPU 数据总线的位宽, 而这个
位宽就称之为物理Bank( Physical Bank, 下文简称P-Bank) 的位宽。所以, 那时的内存必须要组织
成P-Bank 来与CPU 打交道。资格稍老的玩家应该还记得Pentium 刚上市时, 需要两条72pin 的SIMM
才能启动, 因为一条72pin -SIMM 只能提供32bit 的位宽, 不能满足Pentium 的64bit 数据总线的需要。
直到168pin-SDRAM DIMM 上市后, 才可以使用一条内存开机。下面将通过芯片位宽的讲述来进一步
解释P-Bank 的概念。
不过要强调一点, P-Bank 是SDRAM 及以前传统内存家族的特有概念, 在RDRAM 中将以通道
( Channel) 取代, 而对于像Intel E7500 那样的并发式多通道DDR 系统, 传统的P-Bank 概念也不适
用。
2、芯片位宽
上文已经讲到SDRAM 内存系统必须要组成一个P-Bank 的位宽, 才能使CPU 正常工作, 那么这个
P-Bank 位宽怎么得到呢? 这就涉及到了内存芯片的结构。
每个内存芯片也有自己的位宽, 即每个传输周期能提供的数据量。理论上, 完全可以做出一个位宽为
64bit 的芯片来满足P-Bank 的需要, 但这对技术的要求很高, 在成本和实用性方面也都处于劣势。所
以芯片的位宽一般都较小。台式机市场所用的SDRAM 芯片位宽最高也就是16bit, 常见的则是8bit。
这样, 为了组成P-Bank 所需的位宽, 就需要多颗芯片并联工作。对于16bit 芯片, 需要4 颗
( 4×16bit=64bit) 。对于8bit 芯片, 则就需要8 颗了。
以上就是芯片位宽、芯片数量与P-Bank 的关系。P-Bank 其实就是一组内存芯片的集合, 这个集合的
容量不限, 但这个集合的总位宽必须与CPU 数据位宽相符。随着计算机应用的发展, 一个系统只有
一个P-Bank 已经不能满足容量的需要。所以, 芯片组开始可以支持多个P-Bank, 一次选择一个P-Bank
工作, 这就有了芯片组支持多少( 物理) Bank 的说法。而在Intel 的定义中, 则称P-Bank 为行( Row) ,
比如845G 芯片组支持4 个行, 也就是说它支持4 个P-Bank。另外, 在一些文档中, 也把P-Bank 称
为Rank( 列) 。
回到开头的话题, DIMM 是SDRAM 集合形式的最终体现, 每个DIMM 至少包含一个P-Bank 的芯片
集合。在目前的DIMM 标准中, 每个模组最多可以包含两个P-Bank 的内存芯片集合, 虽然理论上完
全可以在一个DIMM 上支持多个P-Bank, 比如SDRAM DIMM 就有4 个芯片选择信号( Chip Select,
简称片选或CS) , 理论上可以控制4 个P-Bank 的芯片集合。只是由于某种原因而没有这么去做。比
如设计难度、制造成本、芯片组的配合等。至于DIMM 的面数与P-Bank 数量的关系, 在2001 年2
月的专题中已经明确了, 面数≠ P-Bank 数, 只有在知道芯片位宽的情况下, 才能确定P-Bank 的数量,
大度256MB 内存就是明显一例, 而这种情况在Registered 模组中非常普遍。有关内存模组的设计,
将在后面的相关章节中继续探讨。
二、SDRAM 内存芯片的内部结构
1、逻辑Bank 与芯片位宽
讲完SDRAM 的外在形式, 就该深入了解SDRAM 的内部结构了。这里主要的概念就是逻辑Bank。
简单地说, SDRAM 的内部是一个存储阵列。因为如果是管道式存储( 就如排队买票) , 就很难做到随
机访问了。
阵列就如同表格一样, 将数据“ 填” 进去, 你可以它想象成一张表格。和表格的检索原理一样, 先指
定一个行( Row) , 再指定一个列( Column) , 我们就可以准确地找到所需要的单元格, 这就是内存芯
片寻址的基本原理。对于内存, 这个单元格可称为存储单元,那么这个表格( 存储阵列) 叫什么呢? 它
就是逻辑Bank( Logical Bank, 下文简称L-Bank) 。
L-Bank 存储阵列示意图
由于技术、成本等原因, 不可能只做一个全容量的L-Bank, 而且最重要的是, 由于SDRAM 的工作
原理限制, 单一的L-Bank 将会造成非常严重的寻址冲突, 大幅降低内存效率( 在后文中将详细讲述) 。
所以人们在SDRAM 内部分割成多个L-Bank, 较早以前是两个, 目前基本都是4 个, 这也是SDRAM
规范中的最高L-Bank 数量。到了RDRAM 则最多达到了32 个, 在最新DDR-Ⅱ 的标准中, L-Bank
的数量也提高到了8 个。
这样, 在进行寻址时就要先确定是哪个L-Bank, 然后再在这个选定的L-Bank 中选择相应的行与列进
行寻址。可见对内存的访问, 一次只能是一个L-Bank 工作, 而每次与北桥交换的数据就是L-Bank 存
储阵列中一个“ 存储单元” 的容量。在某些厂商的表述中, 将L-Bank 中的存储单元称为Word( 此处
代表位的集合而不是字节的集合) 。
从前文可知, SDRAM 内存芯片一次传输率的数据量就是芯片位宽, 那么这个存储单元的容量就是芯
片的位宽( 也是L-Bank 的位宽) , 但要注意, 这种关系也仅对SDRAM 有效, 原因将在下文中说明。
2、内存芯片的容量
现在我们应该清楚内存芯片的基本组织结构了。那么内存的容量怎么计算呢? 显然, 内存芯片的容量
就是所有L-Bank 中的存储单元的容量总合。计算有多少个存储单元和计算表格中的单元数量的方法
一样:
存储单元数量=行数× 列数( 得到一个L-Bank 的存储单元数量) × L-Bank 的数量
在很多内存产品介绍文档中, 都会用M×W 的方式来表示芯片的容量( 或者说是芯片的规格/组织结
构) 。M 是该芯片中存储单元的总数, 单位是兆( 英文简写M, 精确值是1048576, 而不是1000000) ,
W 代表每个存储单元的容量, 也就是SDRAM 芯片的位宽( Width) , 单位是bit。计算出来的芯片容
量也是以bit 为单位, 但用户可以采用除以8 的方法换算为字节( Byte) 。比如8M×8, 这是一个8bit
位宽芯片, 有8M 个存储单元, 总容量是64Mbit( 8MB) 。
不过, M×W 是最简单的表示方法。下图则是某公司对自己内存芯片的容量表示方法, 这可以说是最
正规的形式之一。
我们可以计算一下, 结果可以发现这三个规格的容量都是128Mbits, 只是由于位宽的变化引起了存储
单元的数量变化。从这个例子就也可以看出, 在相同的总容量下, 位宽可以采用多种不同的设计。
3、与芯片位宽相关的DIMM 设计
为什么在相同的总容量下, 位宽会有多种不同的设计呢? 这主要是为了满足不同领域的需要。现在大
家已经知道P-Bank 的位宽是固定的, 也就是说当芯片位宽确定下来后, 一个P-Bank 中芯片的个数也
就自然确定了, 而前文讲过P-Bank 对芯片集合的位宽有要求, 对芯片集合的容量则没有任何限制。
高位宽的芯片可以让DIMM 的设计简单一些( 因为所用的芯片少) , 但在芯片容量相同时, 这种DIMM
的容量就肯定比不上采用低位宽芯片的模组, 因为后者在一个P-Bank 中可以容纳更多的芯片。比如
上文中那个内存芯片容量标识图, 容量都是128Mbit, 合16MB。如果DIMM 采用双P-Bank+16bit 芯
片设计, 那么只能容纳8 颗芯片, 计128MB。但如果采用4bit 位宽芯片, 则可容纳32 颗芯片, 计512MB。
DIMM 容量前后相差出4 倍, 可见芯片位宽对DIMM 设计的重要性。因此, 8bit 位宽芯片是桌面台式
机上容量与成本之间平衡性较好的选择, 所以在市场上也最为普及, 而高于16bit 位宽的芯片一般用
在需要更大位宽的场合, 如显卡等, 至于4bit 位宽芯片很明显非常适用于大容量内存应用领域, 基本
不会在标准的Unbuffered 模组设计中出现。 |
|