一、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的物理结构与控制逻辑将持续演进。