关于DRAM

CPU至DRAM晶粒之间依据层级由大到小为channel>dram>rank>chip>bank>ro/column
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述 单一DRAM内部

channel

CPU与DRAM 数据传输的管道

在这里插入图片描述single channel
在这里插入图片描述dual channel

Memory controller:管理数据在处理器和内存单元之间移动。

data arriving to the Memory Controller is first stored in the memory modules (2), then is re-read (3) and finally transferred to the processor (4). On a typical motherboard, these same components can be easily identified:

在这里插入图片描述

在这里插入图片描述

DIMM

我们买的内存条就是DIMM

DRAM芯片包装在存储器模块(memory module)中,它是插到主板的扩展槽上的。常见的包装是168个引脚的双列直插存储器模块(Dual inline memory module,DIMM),它以64位为块传送数据到存储控制器和从存储控制器传出数据。DIMM是在单列直插存储器模块(single inline memory module,SIMM)发展起来的,SIMM以32位为块传送数据。

rank

内存控制器只允许CPU每次只能与内存进行一组64bits的数据交换,这一个64bit的带宽就是一个rank,即1rank = 64bits。内存数据读写每次是64bits的一个数据宽度,ECC内存增加了8bit的校验位,因此ECC内存是72bits。

内存上的每个内存颗粒(chip),提供4bit/8bit的数据,提供4bit的芯片记作x4,提供8bit的芯片记作x8,为了组成一个rank,内存需要有16片x4的芯片或者8片x8的芯片(没有x4和x8的芯片混搭的情况)。所以,一条DIMM上至少有8颗内存颗粒,排列在DIMM的一面或两面上。标准的DIMM的每一面有足够的空间容纳第9颗芯片,第9颗芯片用来存储4bits或8bits的ECC.。

如果1根ECC DIMM的9颗芯片都位于DIMM的同一面,就叫做single-sided,如果9颗芯片分布在DIMM的两面,就叫做double-sided。

DIMM还被分为single-rank、double-rank、quad-rank(也就是我们在内存的lable上经常能看到的1R、2R、4R,4R的DIMM一般用在server上面)。

double-rank的每一个rank都可以独立的提供64bit的数据,DIMM需要有两个片选信号,选择使用哪个rank,选中的rank,数据会经过MUX输出,或经过MUX输入。同样quad-rank有四个rank,可以提供4组64bit的数据,需要四个片选信号选择使用哪个rank。
在这里插入图片描述
Channel是为了加快CPU与内存,多个DIMM可以增大内存,多个rank是为了查找数据更快?

bank,row,column

bank是逻辑的 实际储存单元的组合
一般来说横向选择排数的线路称为row(或者row select, word line) 竖向负责传递信号的线路成为column(bitline),每个bank的下方还会有个row buffer(sense amplifier),负责将读出的row数据暂存,等待column位址送到后输出正确的位,以及判断是0还是1

在这里插入图片描述

在这里插入图片描述

读写

读取时首先內存控制器会将1组位址由位址线传到內存上,控制线跟着传送控制信号;如果是多rank的安装情形,CS也会送出对应的信号选择目标rank。接着由于每个rank由许多chip组成,1个chip仅负责部分的数据读取,chip接收到位址信号后,将位址丢入内部的row/column解码器找出相对应的bank位址(每家每款产品的内部bank组合有可能不同,因此对应也会有所不同),接着开启row线,同1排row的内部资料就会流到row buffer内部,row buffer判断信号为0或是1之后就输出数据。
写入时除了位址数据外,还会传送欲写入的数据至芯片内部的input buffer,同样的也是依照row/column解码器找出对应位置之后写入。

在这里插入图片描述
加速原理为增加数据总线宽度,达到同时读写更多资料的能力。
另一种增加频宽的方法就是减少延迟,利用多个chip或是bank达成。一般的內存读取延迟为命令下达+內存读取延迟+输出数据,如果命令下达延迟为2ns、內存读取延迟为10ns、输出数据延迟为2ns,那么读取2笔数据的总延迟就会是(2+10+2)×2=24ns。
如果现在能够将数据拆分至2颗內存上,那么2笔读取延迟将降低至16ns,因为不需等到前笔数据读取完成才发出下一笔的读取命令,在第一笔数据进入內存读取时即可发出

**加粗样式**

https://www.cnblogs.com/jintianfree/p/3976027.html 内存扫盲
https://www.techbang.com/posts/18381-from-the-channel-to-address-computer-main-memory-structures-to-understand?page=1

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值