内存性能调优从哪几个方面(只知道内存容量怎么行)

内存在电子产品的设计中可以说是必需品,无论什么产品都需要。可以是板载内存颗粒,也可以是插内存条的形式。

内存性能调优从哪几个方面(只知道内存容量怎么行)(1)

皮皮最近又被一个事情给弄懵逼了,评估一个板子布局是否能够放的进去。由于板子空间小,器件多(怎么产品都是这么个情况)。想把内存颗粒用16bit的替换目前8bit的设计,这样一个略大点颗粒替换掉两个颗粒,岂不是美哉。空间直接省出来一半。原创今日头条:卧龙会IT技

内存性能调优从哪几个方面(只知道内存容量怎么行)(2)

图片只是示意,不是实际设计

然鹅,EE直接说你too young,too simple。用四颗达不到总容量要求,只能用八颗。然后说一堆8位什么容量,16bit颗粒什么容量。我的理解16bit的颗粒比8bit的多一倍,难道容量不翻倍吗?立马把我弄的更懵逼,好吧,大哥听您的!原创今日头条:卧龙会IT技术

但是,皮皮岂是那种别人说啥就是啥的人呢? 所以,找了一些资料,终于搞明白这个内存的容量计算方法。过来分享给大家看看,我也是现学现卖,大家看看有没有疑问,可以留言讨论哦!

首先,我想上一张图,很多年前某个高手做的,画的非常浅显易懂。有点欧姆社漫画的风格。这个也是我当初对内存的启蒙教材。

内存性能调优从哪几个方面(只知道内存容量怎么行)(3)

上图把芯片比作调度中心,总线比作传送带,P_BANK比作仓库基地,L_BANK比对子仓库,地址单元比作L_BANK的内部示意图。是不是非常的形象易懂啊。但是,初学也不要把内存想象成为了存储,它只是临时性的仓库。

下面我讲解一下上面提到的概念:

1. 物理Bank:(P_BANK)

内存系统为了保证CPU 的正常工作,必须一次传输完CPU 在一个传输周期所需要的数据。而CPU在一个传输周期能接受的数据容量就是CPU数据总线的位宽,单位是bit(位)。

这个位宽就称之为物理Bank(Physical Bank,P-Bank)的位宽。

以前很老的电脑两条72pin 的SIMM 才能启动,因为一条72pin -SIMM 只能提供32bit 的位宽,不能满足64bit数据总线的需要。直到168pin-SDRAM DIMM上市后,才可以使用一条内存开机。完了,不小心暴露年纪了。

现在CPU内存数据的位宽还是64bit。还好没增加,要不拉内存又苦逼一些。

P-Bank是SDRAM及以前传统内存家族的特有概念,现在一般说通道(Channel),因为现在多为并发式多通道DDR。也就是我们看到的主板上面有多个内存条。一般两根内存是一个通道。但是,不排除一根内存一个通道,或多个根内存一个通道。

内存性能调优从哪几个方面(只知道内存容量怎么行)(4)

2. 芯片位宽(bit)

上面也提到位宽的概念,那么为了满足CPU的位宽需求,我们是不是也要有一个相同位宽的SDRAM内存芯片连接,才能使CPU正常工作呢?原创今日头条:卧龙会IT技术

但这对技术的要求很高,我估计应该是成本和应用的问题,CPU都有能研究出来,64bit的内存颗粒应该也可以。哈哈,这点得需要专业做内存的来解释了。所以芯片的位宽一般都较小。

目前市场所用的SDRAM芯片位宽一般是16bit和 8bit。这样,为了组成P-Bank 所需的位宽,就需要多颗芯片并联工作。对于16bit 芯片,需要4颗(4×16bit=64bit)。对于8bit 芯片,则就需要8 颗。

内存性能调优从哪几个方面(只知道内存容量怎么行)(5)

上图是一个带ECC和寄存器的内存条,由8个8bit的芯片组成

3. 逻辑Bank:(L_BANK)

上面讲了需要多个SDRAM 组成一个P_BANK。那么SDRAM内部又是怎样组成呢?

简单地说,SDRAM的内部是一个存储阵列。因为如果是管道式存储(就如排队买票),就很难做到随机访问了。阵列就如同表格一样,将数据"填"进去,你可以它想象成一张表格。和表格的检索原理一样,先指定一个行(Row),再指定一个列(Column),我们就可以准确地找到所需要的单元格,这就是内存芯片寻址的基本原理。原创今日头条:卧龙会IT技术

内存性能调优从哪几个方面(只知道内存容量怎么行)(6)

对于内存,这个单元格可称为存储单元,那么这个表格(存储阵列)叫什么呢?它就是逻辑Bank(Logical Bank, L-Bank)

一般一颗内存芯片有多个L_BANK,现在最大可以达到8个。

4.地址单元:

地址单元就是上面提到的每个逻辑Bank中的存储整列。每一个格就是一个存储单元,里面存放了这个芯片位宽的一组数据。比如:一个8bit的芯片,一个存储单元中存放一组8位的二进制代码。

内存性能调优从哪几个方面(只知道内存容量怎么行)(7)

5.内存容量计算:

如果明白以上几个概念,就很容易知道一个内存颗粒的容量。公式如下:

颗粒容量=行X列X _BANK X 位宽

内存性能调优从哪几个方面(只知道内存容量怎么行)(8)

上图是在某芯片厂手册中的一个表,它的容量就是:64*4*8*4=8Gb的容量。原创今日头条:卧龙会IT技术

现在回到文章开篇的问题上面,其实很简单。以目前的生产工艺,位宽不同,但是最高容量一样。也就是说, 比如 8bit和32bit最大都只能做到1Gb,但是我需要8Gb的最高内存容量。用4颗16bit的只能达到1*4Gb,只能使用8颗8bit的能到1*8Gb。所以,就是为什么需要8颗的原因了,不是我想的位宽增加一倍,容量也增加一倍。

好了,现在是不是对内存内部组成和结构有了清晰的认识。干货满满哦!觉得好点个赞吧!也可收藏,转发一下!感谢支持

原创:卧龙会 皮希彼

卧龙会,卧虎藏龙,IT高手汇聚!由多名十几年的IT技术设计师组成,欢迎关注!

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页