什么是单面和双面内存?它们有些什么样的特性与区别呢?下面咱们就细细道来。
何谓内存BANK
一般而言,各位注意了,是一般而言,单面内存每条拥有一组BANK,而双面的内存则每条提供了两组的BANK,之所以要强调一般而言我会在文中加以阐明。……什么?不知道BANK为何物?好!那我就来解释一下BANK先。 内存的BANK其实分为两部分,逻辑BANK和物理BANK。
先来讲讲逻辑BANK。芯片的内部,内存的数据是以位(bit)为单位写入一张大的矩阵中,每个单元格我们称为CELL,只要指定一个行(Row),再指定一个列(Column),就可以准确地定位到某个CELL,这就是内存芯片寻址的基本原理。这样的一个阵列我们就叫它内存的逻辑 BANK(Logical BANK)。
再来说说物理BANK。通常主板上的每个内存插槽分为两段,这个大家从VIA主板BIOS设置中的BANK 0/1 DRAM Timing选项很容易推理得到,实际上也就是两个BANK,不过这里的BANK概念与我们前面分析芯片内部结构时提到的BANK可不一样。
简单地说这个BANK就是内存和主板上的北桥芯片之间用来交换数据的通道,目前以SDRAM系统为例,CPU与内存之间(就是CPU到DIMM槽)的接口位宽是64bit,也就意味着CPU一次会向内存发送或从内存读取64bit的数据,那么这一个64bit的数据集合就是一个内存条BANK,很多厂家的产品说明里称之为物理BANK(Physical BANK)。
目前绝大多数的芯片组都只能支持一根内存包含两个物理BANK,但是针对某个具体的条子,很多人想当然,认为每个DIMM插槽使用内存条的面数来区分占用几个BANK通道,单面的(16M,64M)只占用一个物理BANK,而双面的(32M,128M)则需占用两个物理BANK。实际上物理BANK与面数是无关的,PCB电路可以设计成双面和单面,也可把全部芯片(16颗)放在一面上(至少从理论上是完全可能)。
有些内存条单面就是一个物理BANK,但有些双面才是一个物理BANK,所以不能一概而论。256MB内存条就是一个典型的例子,虽然是双面并多达 16枚芯片,但仍然是单个物理BANK的。要准确知道内存条实际物理BANK数量,我们只要将单个芯片的逻辑BANK数量和位宽以及内存条上芯片个数搞清楚。各个芯片位宽之和为64就是单物理BANK,如果是128就是双物理BANK。
CPU工作时与BANK的关系
CPU工作时,每次只访问一个物理BANK,这是因为一个物理BANK的位宽是64Bit。CPU访问的数据是存放在内存条的内存颗粒上的,现在的芯片组设计时都是要求内存条上每个芯片均承担提供数据的任务,即内存条上的每个颗粒都要负担这64bit数据的一部分。
这就要牵扯到我们上文所说得位宽的问题了,如果内存芯片的位宽是8位,那么用这个芯片组成内存条只需要8颗芯片即完成了64位数据并发任务,如果是4 位,那么就需要16颗芯片才能达到64bit的要求。当内存条颗粒设计为位宽为8位,16颗内存颗粒的时候,内存条的位宽就变为6 x 16=128bit。所以就要设计为双BANK。这是由于CPU一次只能处理64bit的数据所造成的。
以后随着技术的进步,128bit,256bit都是可以实现的。以上就是所谓的逻辑BANK和物理BANK。 虽然这些区别不是很大,但是却往往造成不小的问题,让人头痛。举一个较古老的例子:曾经有一款大度256M内存采用单面了设计,仅有一组物理BANK。但是由于INTEL(Intel440BX,i815)芯片组只能正确识别单物