memory-bank

来源:互联网 发布:长期大量收购博客数据 编辑:程序博客网 时间:2024/05/22 00:25

2009-10-21  22:07:30 

一、bank(内存库)三层意思:

1.在SDRAM内存模组上,"bank 数"表示该内存的物理存储体的数量。(等同于"行"/Row)
2、Bank还表示一个SDRAM设备内部的逻辑存储库的数量。(现在通常是4个bank)
3、它还表示DIMM 或 SIMM连接插槽或插槽组,例如bank 1 或 bank A。这里的BANK是内存插槽的计算单位(也叫内存库),它是电脑系统与内存之间数据总线的基本工作单位。只有插满一个BANK,电脑才可以正常开机。举个例子,奔腾系列的主板上,1个168线槽为一个BANK,而2个72线槽才能构成一个BANK,所以72线内存必须成对上。原因是,168线内存的数据宽度是64位,而72线内存是32位的。主板上的BANK编号从BANK0开始,必须插满BANK0才能开机,BANK1以后的插槽留给日后升级扩充内存用,称做内存扩充槽。

二、一种解释

      基本存储单元是内存芯片中存储信息的最小单位,每个存储单元可以存书1个bit的信息,并且有一个由行地址和列地址共同定义的唯一的地址。

      我们都知道 8个bit(位)可以在一起组成一个byte(byte:字节,这也就意味着1byte具有2的8次方=256种可能的数值),而byte是内存中最小的可寻址的单元。

      虽然内存基本存储单元具有唯一的地址,但是并不能进行独立的寻址--这将要求内存芯片有数以百计的引脚同计算机通讯,显然这个是不可能的。

     现在内存架构是处于同一列的基本存储单元共用一条行地址线,这就组成一个基本存储单元构成的矩阵架构。而这些矩阵架构构成一个内存bank。

每个bank中包含一个内存阵列,传感放大器,行地址解码器和列地址解码器。

三、一种说法
    

 

要讲清这个问题,就要提到内存的逻辑Bank,下面就给大家介绍一下物理Bank和逻辑Bank的概念。在介绍之前,我们先简单看一下现在市场上的DRAM内存产品.现在市场上的内存主要有:SDRAM、DDR SDRAM及Rambus。其中Rambus内存的控制器和前两者不同,且内部Bank和前两者也不同,将在后面单独介绍。先主要介绍SDRAM和DDR SDRAM的Bank问题,因为SDRAM就内核、Bank结构而言,和DDR SDRAM没有什么区别,这里作为一个整体来讲。逻辑Bank及其结构内存芯片存储数据的基本单位是bit(位),而进行寻址的基本单位则是Byte(字节),一个Byte就等于8bit。大家知道,在平面坐标系中,要确定一个点就要先找到它的横坐标和纵坐标。而在内存中数据的定位也很相似,内存中的数据结构就是一个大的数据阵列,为了便于理解,我们把它假想成一个大的表格,前面我们提到的平面坐标系中的点,在这里我们可以理解为经过定位后的单元格,当然在一个单元格中不是只有1bit的数据,而是由多个bit组成一个组放在单元格内,这里一个单元格我们可以称作一个组,这个单元格的位数也就是内存逻辑Bank的位宽。在进行数据读取时,先进行行的选定,再进行列的选定,最后再从这个单元格中读取出所需要的数据。而这由许许多多的单元格组成的大表我们就可以理解成逻辑Bank,当然因为制造工艺及数据寻址的原因,不可能让这个表格无限大,一般内存芯片中都是将内存容量分成几个阵列来制造,即多逻辑Bank。随着内存芯片容量的不断增加,逻辑Bank数量也在不断增加,早期的16Mbit之类的芯片采用的还是两个逻辑Bank的设计,现阶段常见内存芯片的Bank一般为4个(不包括Rambus),这点大家可通过内存条的编码进行识别。内存芯片设计时在一个时钟周期内只允许对一个逻辑Bank进行操作(实际上内存芯片的位宽就是逻辑Bank的位宽),而不能对所有逻辑Bank同时操作。所以逻辑Bank的地址线是通用的,只要再有一个逻辑Bank编号加以区别就可以了。内存芯片的位宽决定了一次能从它那里读出多少数据,并不是内存芯片里所有单元的数据能够一次全部读出。为了加深大家对逻辑Bank的理解,我们来看看一个单芯片的逻辑Bank示意图这里不用过于注意结构细节,只需要看看4个内存阵列。从图中可以很清楚地看到这个芯片是一个Bank数为4的芯片,其列和行分别为4096和2048,而逻辑位宽是4bit,将这三者相乘就是这个逻辑Bank的容量,这里是4096×2048×4 bit =32Mb。再乘以Bank的数量,则芯片的容量就可以算出来了,这里很显然是4个Bank,那么芯片的容量就是128Mb了。用虚线框起来的就是一个完整的逻辑Bank。可见一个Bank由内存阵列、传感放大器、一个行解码器、一个列解码器组成。

 

 

 


    
       物理Bank了解了逻辑Bank后,接下来我们简单看看物理Bank,物理Bank的含义就是指内存和主板北桥芯片之间传递数据的通道,自586以后的CPU数据总线均为64bit位宽,而CPU一次只能对一个物理Bank进行访问,所以一般情况下我们就把64bit作为一个物理Bank(Physical Bank),在前面我们已经讲过了逻辑Bank,所以在这里我给大家讲一下如何自己算出物理Bank,大家就会非常好理解了。由于CPU一次只能打开一个物理Bank,在单芯片上也只能打开一个逻辑Bank,这样我们就知道逻辑Bank的位宽也就是单芯片的位宽了,我们把芯片的数据宽度和芯片的数量相乘再除以64就得到了内存条的物理Bank数了,即内存的Bank数=数据宽度×芯片数量/64。现在大家初步明白了内存的物理Bank和内存的面数无关了吧?后面我还会举例说明。在大概了解了SDRAM和DDR内存的物理Bank及逻辑Bank之后。

    
       下面我们来简单了解一下Rambus的Bank情况。Rambus的Bank为了讲解方便,下面以PC800 Rambus为例。Rambus不再采用SDRAM和DDR内存的并联技术,而是采用了更先进的串联技术。就现阶段而言,PC800 Rambus使用400MHz的16位总线,在一个时钟周期内可以在上升沿和下降沿同时传输数据,实际操作频率为400MHz×2=800MHz,理论带宽为16bit×2×400MHz/8=1.6GB/s,再配合850主板芯片的双通道模式,可以达到3.2GB/s的数据带宽。这也是大家熟知的高带宽,而它最重要的优势在于其逻辑Bank上,就现阶段的主流 Rambus来说,其逻辑Bank数高达32个,拥有更多的Bank数则意味着具有较少的Bank冲突,寻址流更加短暂随意。另外还可以提高寻址命中率和降低潜伏周期。当然,更多的Bank也使Rambus的制作模具制造更复杂,也就增加了成本。于是RAMBUS随后又推出了4i 架构的DRDRAM──在每个颗粒芯片上只有4个Bank。