Wordline被选中,晶体管导通,电容的就和bitline导通,可以读出0和1。
DDR3因为本身支持的容量就小而且基本已被淘汰,我们就不必哀悼它了。
正是因为内存每个单元如此简单,才能如此大规模组织起来,形成低价而密度很高的内存颗粒。
这种方式设计简单,但是在充放电时电压和电荷管理有很多麻烦。
首先我们假定不考虑内存颗粒能不能做出这么大的容量,仅仅理论探讨。
有读者对每根内存条的极限容量感兴趣。
今天我们就一起来探讨一下问什么。
64个bits是内存控制器读取的最小单位。
2.讨论基于DDR内存的标准:JEDEC标准。
太棒了!我们知道,X86的cacheline是64Bytes(感谢@照猫画虎发现原文中这个问题),它会一次向内存控制器请求整个cacheline。
LRDIMM会有些许顾及,担不是重点。
有的则有16个内存颗粒。
甚至还有单面32个颗粒的超高怪物。
内存条的容量和它的基本单位:内存颗粒的组织方式息息相关。
所以引入了SenseAmplifier。
是不是我们有钱,可以通过不停增加颗粒数目来堆出超高内存容量的内存条呢?答案当然是否定的了。
SenseAmp一般由6个以上的晶体管组成。
但SenseAmp就复杂了不少。
好了,有了单个单元,我们来组成一个内存组试试:看起来简单而优美,一个wordline,选中后所有16单元都被SenseAmp缓存,漂亮!慢着,似乎那里不对?是的,这样效率太低,原来1个单元有1个晶体管和一个电容组成,现在平均变成了7个晶体管和1个电容,这和DRAM的低成本设计目标是违背的,必须减少SenseAmp的个数。
这个内存单元有32个行地址(rowaddress),32个列,5个列地址(columnaddress)。
地址线太多,有没有办法减低呢?如果一次列选中能够送出多个内容就好了:这样同样寻址这些单元,但列地址从5个,减小成3个。
前文中我们讨论了服务器能够支持的内存最大容量。
比较昂贵,但是因为整个bank只有一组SenseAmplifier,所以问题不大,而且好处不少。
DRAM原理:内存DRAM的每个单元可以看作一个晶体管和一个电容的组合。
晶体管是个开关,用于选中该电容。
这是减低成本必须付出的代价。
限于篇幅,为了简化讨论范围,我们给问题设置了一些限制:1.仅讨论大家DDR4,包括UDIMMDDR4和RDIMMDDR4。
单元就变成了这样:单元还是只有一个电容和一个晶体管。
如果我们仔细看上面那三种内存条和我的注解,你能不能发现一些规律呢?细心的同学也许发现了:越大的内存容量,nR中的n就越大;与此相反,越大的内存容量,Xn中的n反而越小。
我们平时看到内存条,有的上面单面有8个内存颗粒。
内存控制器发现他们是连续的地址后,会用一次用burst方式读取8个字长,每字长是64个bits。
电容负责存储,充过电时是1,没充过电是0,这就是内存是如何存储数据的。
DDR5目前还没有上市,我们等它成熟后再来重新回顾它的理论极限。
现在我们推广成更大的形式:bank里的每个row共享一个wordline,行激活ACT后,该row上的wordline高电平,row上的存储内容会被该bank的SenseAmplifier缓存。
这是为什么呢?我们需要从DRAM的原理讲起。
有没有更好的解决办法呢?这样好多了,还是16个存贮单元,但是仅仅用了4个senseamp,代价是wordline从一个变成了4个。
我们得出了结论:最大内存是由能够插多少条内存决定的,因为每根内存条现在最大128GB,整体内存容量就被限制了下来,这不是钱多钱少的问题。
标签: 计算机科学、 电脑硬件、 RAM、 内存、本文地址: https://yihaiquanyi.com/article/4cc26fbe6ed4fb5c9670.html
上一篇:internationalInternet人人都需要的到底是...