CPU至DRAM晶粒之间依据层级由大到小为channel>dram>rank>chip>bank>ro/column
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