存储器的地址线(Address Line)数据线(Data Line)和存储体(Bank)

时间:2008-08-18

1.BANK计算公式可表示为:
    BANK数=颗粒数×位宽/64bit
下面来看看INTEL各芯片组对于内存的支持(资料来自于文档)
其中,芯片容量可如下计算:
          芯片容量=内存容量×8bit/颗粒数
例如:
256M的内存,双面16颗粒,则芯片容量为256×8/16=128bit
Intel440BX芯片组支持的SDRAM芯片类型
——————————————————————————————————
芯片容量|数据深度| 位宽|行地址线|列地址线|逻辑BANK数|单BANK容量
——————————————————————————————————
| 2M | 8bit | 12 | 9 | 2 | 16MB
|—————————————————————————————
| 2M | 8bit | 13 | 8 | 2 | 16MB
16M bit |—————————————————————————————
| 4M | 4bit | 12 | 10 | 2 | 32MB
|—————————————————————————————
| 4M | 4bit | 14 | 8 | 2 | 32MB
———— |—————————————————————————————
| 4M |16bit| 14 | 8 | 4 | 32MB
|—————————————————————————————
64M bit | 8M | 8bit | 14 | 9 | 4 | 64MB
|—————————————————————————————
| 16M | 4bit | 14 | 10 | 4 | 128MB
———— |—————————————————————————————
Intel 815(E/EP)芯片组支持的SDRAM芯片类型
——————————————————————————————————
芯片容量|数据深度| 位宽|行地址线|列地址线|逻辑BANK数|单BANK容量
——————————————————————————————————
16M bit | 2M | 8bit | 11 | 9 | 2 | 16MB
————|—————————————————————————————
| 8M | 8bit | 12 | 9 | 4 | 64MB
|—————————————————————————————
64M bit | 4M |16bit | 12 | 8 | 4 | 32MB
|—————————————————————————————
| 16M | 4bi t| 14 | 10 | 4 | 128MB
————|—————————————————————————————
| 16M | 8bit | 12 | 10 | 4 | 128MB
128M bit|—————————————————————————————
| 8M |16bit| 12 | 9 | 4 | 64MB
————|—————————————————————————————
| 32M | 8bit | 13 | 10 | 4 | 256MB
256M bit|—————————————————————————————
| 16M |16bit | 13 | 9 | 4 | 128MB
——————————————————————————————————
  也有传闻说815EP可支持32M×4的结构,但据我测试好像不行。
  其实从上表可以清楚地看出为什么会产生这样的情况了。
  同样一根256M内存,如果位宽不在支持之列,假设颗粒为8M×32bit,则位宽不被北桥所识别,则该内存无法使用;
  同时,若颗粒为16×16bit,则这时颗粒数应为8颗,则BANK=8×16/64=2,该内存有2个BANK,而从表中可以看到单BANK可以支持到128M,则1根DIMM可以支持到256M,完全可以使用。
  若像大度内存,位宽为4,数据深度为32M,则由表中可见,位宽为4bit的内存,支
持的数据深度为16M,则在BX和815EP主板上都识别为128M,其余容量丢失。
  市面上常见的内存芯片格式:
芯片格式 容量 内存条主要形式 bx、815、via 备注
8M×8 8M 单面64M, 双面128M 均支持 主流内存
16M×4 8M 无单面 双面128M 均支持 较少见
16M×8 16M 单面128M,双面256M 均支持 主流内存
16M×16 32M 单面256M,双面512M bx不支持 很少见
32M×4 16M 无单面 双面256M bx、815E不支持 例:大度256M内存
32M×8 32M 单面256M,双面512M bx不支持 例:ncp单面256M内存
结论:
  所以,对于128M以下的内存条来说,目前这些芯片组都支持。
对于256M内存,bx主板不支持所有的单面256M内存。
bx和815E主板都不支持大度256M双面内存。
其他内存基本没有问题。
内存的bank和芯片组支持内存的问题:
  1,内存的标号——数据深度M×数据宽度(单位bit)。这就是一般内存芯片上**M×**
的含义。比如16×8、8×8等,包括显存也是如此。如果芯片上没有直接标出,也
可以在编号中看出,一般是在编号的中部几个数字,如ncp内存编号:
NP33S328256K-7.5
中间的328就是32M×8,其他内存也是如此,大家找一找象168、324这样的数字就可以了。
  2,内存芯片的容量计算:数据深度×数据宽度。比如16×8的芯片,就是16×8=128Mb。
注意!是Mb,而8bit=1Byte,所以8Mb=1MB。平时大家说的128M内存,8M芯片等等都是指的MB。所以换算成大家常说的MB的话,就应该这么算:
数据深度×数据宽度/8=内存颗粒容量
数一数内存条上有几个芯片,这条内存的总容量也就算出来了。
大家可以自己验证一下。
  3,物理bank。大家经常提到显存的数据位宽这个概念,比如说tnt2是128位的,geforce
256就是256位的。内存也是如此,它是64位的,就是说CPU从内存读写数据,是64位并行。
而对于一条内存来说,数据宽度×芯片数量=数据位宽。
这个值可以是64或128,对应着这条内存就是1个或2个bank。
如:
128M内存16×8格式8个芯片:8×8=64,所以单面内存单bank
128M内存8×8格式16个芯片:8×16=128,所以双面内存双bank
大度256M内存32×4格式16个芯片:4×16=64,所以双面内存单bank
256M内存16M×16格式 8各芯片:16×8=128,所以单面内存双bank
所以说单或双bank和内存条的单双面没有关系,大家可以理解了吧?
  4,主板对于内存的支持:主板所能支持的内存仅由主板芯片组决定。
每种芯片组具体支持的内存格式可以去intel、via等网站上查到。
内存芯片常见的数据宽度有4、8、16这三种,芯片组对于不同的数据宽度支持的数据深度不同:
内存颗粒数据宽度 4 8 16
bx支持的数据深度 16 16 4
815E 16 32 16
via芯片组 支持所有深度
  当数据深度超过以上值时,多出的部分主板就认不出了,比如把256M认成128M就是这个原因,但是
可以正常使用。
  每个内存芯片也有自己的位宽,即每个传输周期能提供的数据量。理论上,完全可以做出一个位宽为 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(列)。


逻辑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 模组设计中出现。

  


  
上一篇:多种工业应用串行总线特性及比较
下一篇:基于FPGA的嵌入式系统设计

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料