欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

什么是内存BANK

程序员文章站 2022-06-18 22:06:50
什么是内存BANK关于内存Bank的探讨 目前很多人对内存Bank(电脑系统与内存之间数据总线的基本工作单位)都有一种误解,认为单面内存就是单Bank,双面内存就是双Bank的。其实这种观念是不对的,内存的B... 09-04-21...
关于内存bank的探讨 目前很多人对内存bank(电脑系统与内存之间数据总线的基本工作单位)都有一种误解,认为单面内存就是单bank,双面内存就是双bank的。其实这种观念是不对的,内存的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。