
DRAM 存储阵列与读写时序解析从 1T1C Cell 到 Burst Length 16 的演进在计算机体系结构和芯片设计领域DRAM动态随机存取存储器作为主存储器的主流技术其性能直接影响整个系统的表现。本文将深入剖析DRAM的核心工作原理从最基本的1T1C存储单元开始逐步展开到现代DDR4的Burst Length 16技术为读者构建完整的DRAM知识体系。1. DRAM基础1T1C存储单元DRAM的基本存储单元由一个晶体管和一个电容组成1T1C结构这是所有DRAM技术的基石。在这个结构中晶体管作为开关控制电容的充放电状态电容的电荷状态则代表存储的数据位有电荷为1无电荷为0。1T1C单元的关键特性特性描述技术挑战结构简单仅需1个晶体管和1个电容电容必须足够大以保证可靠读取高密度单元面积可做到6-8F²F为工艺特征尺寸电容值随工艺缩小而减小动态存储需要定期刷新保持数据刷新操作影响性能破坏性读取读取后数据被破坏需要恢复增加电路复杂性现代DRAM芯片中这些基本单元被组织成二维阵列。同一行的所有单元共享一条字线Wordline同一列的所有单元共享一条位线Bitline。当字线被激活时整行的晶体管导通允许对应电容与位线连接。提示DRAM电容的典型值在10-30fF范围而位线的寄生电容可达200-300fF这使得直接检测电容状态变得极具挑战性。2. 差分感测放大器与读操作时序为解决小信号检测问题现代DRAM采用差分感测放大器Differential Sense Amplifier设计。这种架构将位线成对布置通过比较两条位线间的微小电压差来放大信号。完整的读操作包含四个阶段预充电Precharge阶段位线对通过均衡电路被预充电到参考电压Vref确保感测开始时两条位线处于相同电位访问Access阶段目标字线被激活存储电容与位线连接电容电荷导致位线电压发生微小变化约50-100mV感测Sense阶段感测放大器检测位线对的电压差并放大将小信号差转换为全摆幅的逻辑电平0或VDD恢复Restore阶段将放大后的数据写回存储电容补偿因读取操作导致的电荷损失// 简化的DRAM读操作Verilog描述 module DRAM_Read ( input wire WL, // 字线 input wire EQ, // 均衡信号 input wire SAN, SAP, // 感测放大器控制 inout wire BL, BLB // 位线对 ); // 预充电阶段 always (posedge EQ) begin BL Vref; BLB Vref; end // 访问阶段 always (posedge WL) begin // 存储电容与位线连接 // 产生微小电压差 end // 感测阶段 always (posedge SAN or posedge SAP) begin // 差分放大电压差 if (BL BLB) begin BL VDD; BLB 0; end else begin BL 0; BLB VDD; end end endmodule3. 存储阵列组织与性能优化随着DRAM容量的增长存储阵列的组织方式经历了多次演进。早期的简单阵列结构逐渐被更复杂的层次化设计所取代以解决信号完整性和性能问题。现代DRAM的层次化结构Bank Group最高层次划分可独立操作Bank每个Bank Group包含多个Bank通常4-8个SubarrayBank内部分为多个子阵列Mat子阵列的基本组成单元这种分层设计带来了显著的性能优势并行操作不同Bank Group可同时工作降低激活功耗仅需激活目标子阵列缩短信号路径减少位线/字线长度DDR各代技术参数对比参数DDR2DDR3DDR4DDR5突发长度481616/32预取技术4n8n8n16n核心频率(MHz)100-266100-266200-400300-525传输速率(MT/s)400-1066800-21331600-32004800-8400工作电压(V)1.81.51.21.14. Burst Length与预取技术Burst Length突发长度是DRAM性能优化的关键参数它定义了在一次行激活后可以连续传输的列地址数量。现代DDR4支持Burst Length 16相比早期的DDR2BL4有了显著提升。Burst Length演进的技术原理预取缓冲内部数据总线宽度是I/O接口的倍数8n预取双倍数据速率在时钟上升沿和下降沿都传输数据Bank交错多个Bank交替工作隐藏预充电时间# 模拟DDR4 Burst Length 16的数据传输 def ddr4_burst_transfer(data_buffer, start_col): # 8n预取意味着内部每次获取8个I/O位宽的数据 internal_data fetch_8n_data(start_col) # Burst Length 16需要2个内部周期完成 for i in range(2): # 在时钟双沿传输数据 transmit_data(internal_data[i*8:(i1)*8], rising_edgeTrue) transmit_data(internal_data[i*8:(i1)*8], falling_edgeTrue) # 总传输数据量16 x I/O位宽Burst Length与系统性能的关系长突发适合顺序访问提高带宽利用率短突发适合随机访问降低延迟自适应突发现代控制器可根据访问模式动态调整在实际系统设计中理解这些底层机制对于优化内存访问模式、提高应用程序性能至关重要。通过合理组织数据结构利用空间局部性原理可以最大化Burst传输的效率。