Uploaded by 阿达

3D DRAM

advertisement
3D DRAM
因为DRAM内部的晶体管尺度越小,同等面积下,DRAM能包含能够储存数据的Cell单元也越多,但
是当线宽进入10nm时,电容器电流泄露和干扰等物理限制明显增加,即使引入高介电沉积材料和EUV设
备,生产10nm或更小工艺的DRAM芯片也是十分艰难的。
因此提出3D DRAM结构,将多个二维的DRAM在垂直方向上进行堆叠,从而在DRAM面积不增的前
提下使整体DRAM的容量增加,换个角度,也能缩小DRAM芯片所占面积同时保持高容量。
3D DRAM row buffer共享
1
问题1: 3D DRAM怎么存储数据,比如一个32bit数据?
2
对于DIMM,如果输出数据线是32位,rank数是4个,那么每个bank需要有8个cell阵列,每个cell阵列
每次读写一个bit数据。
3
3D DRAM的一层是否可以看成是多个cell阵列的相同行(word line一致)组成,而这些cell阵列都有
各自相连的row buffer,每个row buffer每次都将读写1个数据?由于第一个图可以看出是3个cell阵
列,所以单次会读写3个bit数据,类似于一个bank中有3个cell阵列?
4
5
问题2: 3D DRAM的row buffer结构与row buffer共享技术如何实现?
6
如何让row buffer从私有变公有。
7
8
问题3: 关于文档中DRAM外延拓展技术补充修改地方。
1
共享技术的目标是为了让cell阵列的row buffer从私有变公有,从而扩大那些经常访问的cell阵列的
row buffer容量,从而整体上降低访问延迟。
2
3
3D DRAM如何访问特定单元元素,如何访址?
4
答: 堆叠层(Z维度)、堆叠层中特定层(行地址,对应wordline)、特定层的特定行(行地址)、特
定列(列地址)
5
6
row buffer与cell阵列如何连接,3D DRAM如何读写?
7
答:row buffer缓存一层cell单元数据,二维的?
8
9
row buffer如何完成共享?
如图,这是个3D DRAM的cell阵列,给定word line,将有一面的cell单元信息被激活,行列相同的
cell单元共用一条bit line,而每次只有一面的cell单元被激活,因此bit line单次只会记录一个cell单元的
信息。
可以把3D DRAM的一个“单元”看成一个bank中的cell阵列不水平排列,而是“垂直插入到一个3维空
间中”,即多面构成体。
由第二个图也可以发现,不同的“侧面”,即可以看成DRAM的不同cell阵列的bit line是不共用的。同
一个“侧面”,即DRAM中一个cell阵列的不同行的bit line也是不同的。
DRAM
DRAM内部由Cell阵列、放大器(含row buffer)、word line、bit line,以及外围的行地址解码器、
列地址解码器、行地址buffer、列地址buffer组成。
下图为cell阵列,每个cell单元由1T1C组成,即一个晶体管一个电容,晶体管是开关,当word line
拉高时,电容如果有电荷(电容电压高)将放电,流入bit line,如果电容无电荷(电容电压低)将充
电,bit line电压将降低,而bit line 与放大器相连,放大器连接两个bit line,其中一个bit line电压始终
不变,是通过与cell阵列连接的bit line和不变的bit line进行差分,从而判断与cell连接的bit line电压如何
变化(这是因为差分更容易检测,精度更高)。
同一时刻,只有一个word line 拉高,此时读取一行的信息,放大器能够检测到一行所有的cell单元
储存的比特信息,放大器将保存在内部的row buffer中。row buffer再将数据传往外部,但因为对cell阵
列的读是破坏性读出,即电容中有电荷将变成无电荷,电荷中无电荷将变成有电荷,因此需要复原。复
原就是根据row buffer中暂存的数据完成,如果row buffer中对应的cell单元存储的是1,则将cell相连的
bit line施加供电电压进行充电,如果存储的是0,则将与cell相连的bit line与地相连,完成放电。
由于电容存在微电流,所以电容会慢慢放电,因此DRAM需要定时刷新,刷新操作即完成一次数据
不流出的读取操作。
数据的比特级读入写入,即外部总线传来读写使能信号与地址信息,根据读写使能信号区分地址是
行地址还是列地址,如果是读,则数据会保存再data buffer中,从接口读出,如果是写,写入数据将保
存在data buffer中,然后根据列地址解析器,判断哪个cell单元需要写入,然后选通,写入row buffer
中。
写入数据时,首先输入行号,打开目标单元行,把单元行数据缓存到放大器本地;然后输入列地址
和写入数据,一到多分配器根据列地址把写入数据写入到放大器中,然后放大器把本地缓存写到单元
行;写完后关闭单元行字线。
一个cell阵列一次读写涉及1个bit,而DRAM芯片每次读取都是提供多个bit,这是因为多个cell阵列
可以共享相同的行、列地址,这样的cell阵列被称为一个bank。而DRAM是由多个bank构成,因此,在
读写数据时需要提供行地址、列地址之外还需要提供bank号。
DIMM(Dual-Inline-Memory-Modules,中文名叫双列直插式存储模块),也叫内存条,内存条通
过与主板上的内存通道连接内存控制器,一组可以被一个内存通道同时访问的芯片称作一个rank,一个
rank中的每个芯片都共用内存通道提供的地址线、控制线和数据线,同时每个芯片都提供一组输出线,
这些输出线组合起来就是内存条的输出线。
因此每次读写是对一个rank中所有的芯片中的同一个bank中所有cell阵列的对应行列地址的cell单
元。可以把rank看成多个bank的复制品。读写地址需要提供bank号、cell阵列的行列地址。
缓存行
单元行进入row buffer后,并不会在读取1个bit后立即写回cell阵列,而是待在行缓存中等待下一个
读写命令,如果该读写命令仍然发生在该缓存行,则直接操作该缓存行。
因此row buffer应该保存该row 的行地址,以及row buffer是保存在放大器中,每个cell阵列都有1
个放大器,row buffer缓存cell阵列的一行数据。
思考,dram中的缓存行肯定是要有多行的,这样才能提升性能。但也肯定是小于cell阵列行数的。
可以采用SRAM结构。其大小会随着DRAM芯片容量以及数据总线宽度变化,一般来说是几KB到几十
KB。
DRAM中的row buffer是为直接相连的cell阵列服务的,是私有的。
同一bank中的不同cell阵列相连的row buffer缓存各自相连cell的row 数据。不同bank的cell阵列相
连的row buffer是相互独立的,因为操作一个bank时,其余bank是不工作的。
缓存行与放大器相互配合,放大器负责将数据从DRAM cell阵列中读出并写入row buffer,同时也将
row buffer中的数据写入DRAM阵列。
row buffer中不保存行地址,由行地址控制器保存,下次取不同行时,会维护一个buffer表?如果
表满,则选择row buffer中的一行写回,然后就会空出一行,将该次读写的行数据写入row buffer中。
Burst猝发模式
由于cpu去访问内存中的单个字时,不仅需要访问这个字,还需要把这个字所在的缓存行都搬入
cache中,而缓存行上的字在物理上也是相邻的,也就是在cell阵列中是相邻的比特。因此可以利用row
buffer结构,不仅将该比特输出,还把周围的多个比特连续读出。
Download