内存的基本知识

来源:互联网 发布:ubuntu 运行shadowsock 编辑:程序博客网 时间:2024/06/05 18:24

1、什么是内存的BANK呢?

Bank (内存库) 在内存行业里,Bank至少有三种意思,

1、在SDRAM内存模组上,"bank 数"表示该内存的物理存储体的数量。(等同于"行"/Row) 2、Bank还表示一个SDRAM设备内部的逻辑存储库的数量。现在通常是4个bank)。

3、它还表示DIMM 或 SIMM连接插槽或插槽组,例如bank 1 或 bank A。这里的BANK是内存插槽的计算单位(也叫内存库),它是电脑系统与内存之间数据总线的基本工作单位。只有插满一个BANK,电脑才可以正常开机。

其实最关键的一句就是:只有插满一个BANK,电脑才可以正常开机。要记住这一点。

首先我们来说明一下:地址深度。

看一个模拟。比如说有一栋宿舍楼,这栋楼里有M层,每一层都有N个房间,通过用数字来表示层数和房间号,我们就可以通过编号来选择每一个房间里所住的人。内存内部也是一样的结构,它分有很多行(相当于楼层),每一行有数量一样的存储单元(相当于房间),而通过呼叫某一行的某一编号的存储单元,我们可以得到里面的数据(相当于住的人)在这里,内存里的行数(相当于楼层)的多少就叫做 地址深度 。和楼层的编号一样,地址越深,表示的行数越高而地址线越多,所能代表的行数也越多。而所能代表的地址线的多少,叫做 地址深度。一般来说,内存的地址线有11-13条,这样,相应的地址深度也为11-13。

说完内存的行,我们来说每一行里的数据。和宿舍楼一样,当我们指定了内存的行(即楼层数)和存储单元(即房间号)后,我们就可以得到了里面的数据。但是这样得到的数据非常少。为了适应计算机的运算速度,人们决定不再单独呼叫某一存储单元里的数据,而采用

呼叫行的方法,把同一行里的数据一次性呼出一并交给CPU处理。即相当于呼叫宿舍楼里某一层的人全部出来。这样可以得到更大的控制量。

由于CPU是按照一个运算标准所制定的。那么它在获取数据的时候也必须按一定的标准获取,如果一次性从内存中读出的数据过少,那么将会影响速度,如果一次性读取的数据过多,可能处理不过来。还有可能呼叫到多余的数据(因为一次呼叫就一整行)。经过几大公司的商定(好象我没有得参加)将CPU一次性从内存读取的数据定为64位这表明了一点:内存中一个行里有64个数据,每次CPU呼叫的时候,内存控制器就把响应行的64个数据送给CPU处理。处理完后再把64个数据一并送回到一行。

而根据规定,完成了这一行64个数据和有相关的地址深度(也就是说你的内存总要有那么几行,就是要有点容量啦就完成了一个BANK的构建。就可以正常开机了!!!

那么为什么我们要那么多颗粒呢?这个还是用楼房来做比画啦!

算一下,同时在一行里做64个数据存储单元是比较麻烦的。就好比宿舍楼,要是每一层都有64间房,做起来是挺麻烦的(不过那是当年的事情了)不过内存控制器不挑剔,他允许用多片颗粒来完成64个数据位的组合,就好比楼房一样,如果每一层的房间数不足64个房间,那么可以另起一栋楼来作为补足。如果还不够,允许再起。总之,要保证每一层都有64个间房。而呼叫层数的时候一次性出来64个就完成了。

但是这样的话就有一个要求:内存的地址深度要一样(就好比楼的高度要一致。如果有的楼超高,那超出的就作废-由于生产的成品率和生产难度,颗粒的位数一般为4位,8位,16位。要用这些颗粒构成64位的方法有很多,比如8个8位,4个8位+2个16位。等等。这些都可以构成一个BANK而正常开机。但由于设计的方便性和得到更好的颗粒的性能一致,在生产上都使用一样位数的颗粒来进行组合。要得到64位的话,组合就有16个4位,8个8位,4个16位2个32位,等等;所以在内存的维修中,我们首先要看颗粒的位数,而用相同位数和相同地址深度的颗粒来代换。

原创粉丝点击