LPDDR5/5X BG mode,8B mode和16B mode
BANK架构概述
总体说明
LPDDR5/5X 器件,协议上支持多个bank架构可静态配置;配置在MR3:
几个模式简要描述:
模式 | 说明 | 协议要求 | 速率要求 | BL |
---|---|---|---|---|
BG模式 | 每CH 4BG, 4BA | LPDDR5/5X | >3200Mbps | BL16 & 32 |
8B模式 | 每CH 8BA | LPDDR5 | 任何速率 | BL32 |
16B模式 | 每CH 16BA | LPDDR5/5X | <=3200Mbps | BL16 & 32 |
三种模式的示意图
BG模式图示
如图,可以看出:
- LPDDR 单通道16bit,即2Byte;
- BANK是per byte划分的,每个byte都有其bank存储资源,每个bank一行一列选中8bit;
- 每个byte预取资源是128bit,对应BL = 128bit / x8 = 16;(为啥BG模式能支持BL32? 后面会讲);
- 由于BG和BA都单独寻址,所以单byte而言,一次仅操作一个特定bank;
- 不得不说,这只是一个示意图,一般情况下,x16模式下,一个bank选中一行一列的数据位宽就是16bit, 况且address mapping章节也会讲,x16模式,BG模式的器件,4个Bg,4个bank;这个图有两种理解:1,上图中BG0,Bank0对应两个框框,两个框是一个物理BANK; 2,两个框框就是两个物理bank,只是device逻辑上把他们拼成了一个bank。 本文以第二种理解方式展开描述。
8B模式图示
- 每个byte预取资源是256bit,对应BL = 32, 所以此模式仅支持BL32的应用;
- 由于没有BG, 当我们指定一个bank地址时,其实是在并发操作两个BA(单byte而言),这两组BA都有128bit预取资源;(这是针对单条Bytelane而言, 上图中有俩Bytelane)。
16B模式图示
- 每个byte而言,预取128bit, 对应BL=16;
- 每个byte而言,16个bank都是可以单独寻址的,单次操作仅针对一个特定bank;
- 由于只有bank,没有BG,所以对于高速应用,个人猜测可能bank切换不及时导致数据存在气泡,所以仅支持低速应用场景;
burst操作波形,以读为例
BG模式 BL16 4:1模式的读波形
- BG交织访问,数据无气泡
BG模式 BL32 4:1模式的读波形
- BG交织访问呢,命令间隔适用BL/n = 2;
- 由于上面框图中的预取资源仅够burst16, 所以BL32实际上需要两个读命令的数据以BL16交织的形式出现;
- 第三次读由于没人跟他交织,所以中间空了8tWCK的时序;
- BL16和BL32的读命令可以混发,但是要注意BL32数据出来的时序,防止DQ线多驱;
8B模式 BL32 4:1模式的读波形
- 由于8B模式配置,本身就有256bit预取,对应BL = 32, 所以读数据BL32直接吐出来,无需和其他读命令交织;
16B模式 BL16 4:1模式的读波形
- 没啥特别的,标准的数据背靠背操作;
16B模式 BL32 4:1模式的读波形
- 这里为啥128bit预取可以实现BURST32, 是因为速率比较低,这里BL32其实就相当于两次背靠背的BL16读;