DRAM学习笔记

DRAM非常重要,但是我发现我并没有真正的懂DRAM的整个架构与执行流程。

image.png

上图为DRAM的硬件结构,右图CAP为电容,WL表示一个晶体管。若要DRAM密度变大,则会使得取CAP数据的难度加大,所以DRAM不能无限扩容。

image.png
image.png
image.png

image.png

整个DRAM的结构如上图所示,其中Chip、Bank以及Row/Column的概念比较重要。

image.png

读取数据的时候,开始Row Decoder会将一个row读到Sense Amps(row buffer)中,然后由Column decoder读具体的数据cell。

image.png

操作包括三个步骤:Activate、读写、充电(读取的时候会破坏数据,所以需要重写)。

而这里我们疑惑,到底一个对应的数据量有多大呢?

image.png

根据上图所知,一个行列选中的cell中包括了1B(8bit)的数据。

image.png

而如果需要找一个cache line,那么需要通过八个Chip分别找对应的数据8*8B=64B(这样快很多)。而这里要注意,我们的Chip是并行读取数据,然而一个Chip中其实包括了8个Bank,但是一个Chip中我只能读一个Bank上的数据,而不是并行,是或的关系。操作流程如下:

image.png

首先我想读取64B的cache line,那么我需要将任务分担给8个Chip。

image.png
image.png

一个Chip中分了8Byte的读取任务,此时,我需要在一个Chip中找到一个Bank,我需要从这个Bank中读出这8Byte数据。如上两图。

image.png

此外,这里DRAM的最小读写粒度为64bit。

http://web.cecs.pdx.edu/~zeshan/hw2_sol.pdf这个网页中也贴出来了许多DRAM的参数计算方式,包括Row、Column的个数等。

真实硬件:

image.png

其中黑色的颗粒就是我们所说的Chip。

参考链接

https://course.ece.cmu.edu/~ece740/f11/lib/exe/fetch.php?media=wiki:lectures:onur-740-fall11-lecture25-mainmemory.pdf

你可能感兴趣的:(DRAM学习笔记)