大数跨境
0
0

谈谈SDRAM的预取Prefetch和Burst Length

谈谈SDRAM的预取Prefetch和Burst Length Manda与FPGA
2025-11-06
1
导读:SDRAM的Prefetch,即预取功能,是值SDRAM内核一个时钟周期操作的位宽。

        SDRAMPrefetch,即预取功能,是指SDRAM内核一个时钟周期操作的位宽。而Burst Length,即突发长度,是指在DQ总线上一个操作可以存取的Burst个数。所以,二者的时钟域不同。Prefetch是内核低频时钟率的概念。BurstIO上高频时钟域的概念。从内核到IO上,即读SDRAM方向,存在n-bit的并/串转换。从IO到内核的写方向,存在n-bit的串/并转换。

SDRAM

Prefetch

Burst Length

DDR

2n-bit

BL2, BL4, BL8

DDR2

4n-bit

BL4, BL8

DDR3

8n-bit

BL8, BC4

DDR4

8n-bit

BL8, BC4

DDR5

16n-bit

BL16,BC8

        下面从SDRAM的内部框图来理解Prefetch的概念。

        从上面的DDR,DDR2,DDR3,DDR4,DDR5的内部结构框图可以看出,在存取SDRAM阵列的时候,Col列地址的低比特是没有用到的。比如DDRcol[0]没用,内核一次存取2bit,所以prefetch就是2n-bit,其中的n是指DQ的宽度。同理,DDR2col[1:0]没用,内核一次存取4bit,所以prefetch就是4n-bit。以此类推,所以DDR3/4就是8n-bit prefetch,而DDR516n-bit prefetch

        再来说说Burst Length

        以DDR5 x16DQ为例,就是DQ宽度为16 bits。从上面的DDR5框图可以看到,内核一次存取是256bit,即16n-bit prefetch,也就是16 x16 bits。这256 bits数据在宽度为16DQ总线上就需要16Burst,所以通常DDR5Burst Length就为16。由于DQ是使用DQS双沿采样的,所以需要8DQS周期才能传完这256 bits数据。所以内核时钟频率是IO外部时钟频率的1/8。某些应用可能一次不需要256 bits这么多的数据,只需要128 bits数据。这时候,可以只选择其中的128 bits数据出现在DQ总线上,这就是8Burst数据,即BC8Burst Chop 8

        同样的道理,由于DDR3/DDR48n-bit prefetch,所以他们支持的Burst Length通常为8,或者只需要一半的数据的BC4

        对于DDR/DDR2,可以支持多次prefetch,然后一次BurstDQ上面。例如DDR支持BL=8,那内核需要42n-bit预取,然后在DQ1Burst

【声明】内容源于网络
0
0
Manda与FPGA
Manda,与FPGA打交道十八年。
内容 4
粉丝 0
Manda与FPGA Manda,与FPGA打交道十八年。
总阅读0
粉丝0
内容4