DRAM非常重要,但是我发现我并没有真正的懂DRAM的整个架构与执行流程。
上图为DRAM的硬件结构,右图CAP为电容,WL表示一个晶体管。若要DRAM密度变大,则会使得取CAP数据的难度加大,所以DRAM不能无限扩容。
整个DRAM的结构如上图所示,其中Chip、Bank以及Row/Column的概念比较重要。
读取数据的时候,开始Row Decoder会将一个row读到Sense Amps(row buffer)中,然后由Column decoder读具体的数据cell。
操作包括三个步骤:Activate、读写、充电(读取的时候会破坏数据,所以需要重写)。
而这里我们疑惑,到底一个
根据上图所知,一个行列选中的cell中包括了1B(8bit)的数据。
而如果需要找一个cache line,那么需要通过八个Chip分别找对应
首先我想读取64B的cache line,那么我需要将任务分担给8个Chip。
一个Chip中分了8Byte的读取任务,此时,我需要在一个Chip中找到一个Bank,我需要从这个Bank中读出这8Byte数据。如上两图。
此外,这里DRAM的最小读写粒度为64bit。
http://web.cecs.pdx.edu/~zeshan/hw2_sol.pdf这个网页中也贴出来了许多DRAM的参数计算方式,包括Row、Column的个数等。
真实硬件:
其中黑色的颗粒就是我们所说的Chip。
参考链接
https://course.ece.cmu.edu/~ece740/f11/lib/exe/fetch.php?media=wiki:lectures:onur-740-fall11-lecture25-mainmemory.pdf