一、BANK的定义与物理结构
-
基本概念
BANK(存储体) 是内存芯片内部的一个逻辑或物理分区,每个BANK由存储单元阵列、地址解码电路和缓冲器组成,用于分块管理内存操作。-
作用:通过并行操作减少访问冲突,提升内存吞吐量。
-
-
物理实现
-
DRAM BANK结构:
-
存储阵列:由行(Row)和列(Column)组成的电容矩阵。
-
行解码器:激活特定行(行地址)。
-
灵敏放大器:读取时放大电容电荷信号。
-
列解码器:选择目标列(列地址)。
-
-
典型BANK数量:
-
DDR4:16-32个BANK(分4-8组BANK Group)。
-
GDDR6:16-32个独立BANK。
-
-
二、BANK的核心意义
-
提升并行性与带宽
-
并行操作:多个BANK可同时执行激活、读写或预充电操作。
-
带宽增益公式:
带宽提升倍数 ≈ BANK数量 / 平均访问间隔周期
(例如:4个BANK交错访问,带宽提升3-4倍)
-
-
减少访问延迟
-
隐藏预充电时间(tRP):当一个BANK预充电时,其他BANK可继续操作。
-
Bank Interleaving(交错访问):轮流访问不同BANK,减少行冲突。
-
-
降低功耗
-
局部激活:仅激活目标BANK的行,减少电容充放电范围。
-
动态功耗公式:
P_dynamic = α * C_eff * V_DD^2 * f
(C_eff与激活的BANK数量正相关)
-
三、BANK的工作原理与访问流程
-
地址映射
-
地址组成:
物理地址 = BANK地址 + 行地址 + 列地址
(例如:DDR4地址格式为BG:BANK:ROW:COL
)
-
-
典型操作流程
-
步骤1:激活目标BANK的行(ACT命令)。
-
步骤2:读取或写入数据(RD/WR命令)。
-
步骤3:预充电当前行(PRE命令),准备下次访问。
-
-
多BANK并行示例
-
时序重叠:BANK0激活(tRCD=15ns)期间,BANK1可读取数据(tCAS=10ns)。
-
四、BANK对系统性能的影响
-
Bank Conflict(存储体冲突)
-
定义:连续访问同一BANK的不同行,需频繁预充电,增加延迟。
-
冲突概率公式:
P_conflict = 1 / BANK数量
(例如:16个BANK的冲突概率≈6.25%)
-
-
优化手段
-
增加BANK数量:DDR4通过BANK Group技术(4 Groups × 4 BANKs)降低冲突。
-
地址交错算法:控制器将连续地址映射到不同BANK。
-
五、不同内存技术中的BANK设计
内存类型 | BANK结构特点 | 典型应用场景 |
---|---|---|
DDR4 | 16-32 BANKs,分4-8 BANK Groups | 服务器、PC主内存 |
LPDDR5 | 16 BANKs,支持Bank Group Refresh | 手机、低功耗设备 |
HBM2 | 8-16垂直堆叠BANKs,通过TSV互联 | 高性能计算、AI加速卡 |
GDDR6 | 16-32独立BANKs,高并发访问优化 | 显卡显存 |
六、设计注意事项
-
信号完整性
-
BANK地址(BA)信号需等长布线(偏差≤50mil),防止解码错误。
-
-
时序约束
-
同一BANK的两次行激活间隔需满足 tRC(Row Cycle Time)(DDR4-3200的tRC≈45ns)。
-
-
功耗管理
-
多BANK同时激活时,配置低ESR去耦电容(如每BANK组1μF)。
-
-
控制器调度算法
-
采用 FR-FCFS(First-Ready First-Come-First-Serve) 策略,优先处理无冲突请求。
-
总结:
BANK是内存实现高效并行的核心架构,通过分块管理提升带宽并降低延迟。设计时需优化BANK数量、地址映射策略及控制器调度,以最大化性能并规避冲突。随着3D堆叠(如HBM)技术发展,BANK的物理结构与控制逻辑将持续演进。