DRAM基本原理

多个bank引入是为了解决bank内的读写间隙问题。如果一直操作同一个bank,比如读取完第一行再读取第二行,那么行与行之间要进行precharge,这个引入了读写间隙,降低io的利用率。因此我们可以在第一个bank precharge的时候操作第二个bank,就可以实现pipeline的读写。

跨BG的操作中间等待的时间,比同BG跨bank操作中间的等待时间短。本来两个bank之间的时间虽然比较短,但还不至于让两笔burst连起来,现在由于BG之间控制电路并行,两个BG之间的操作可以合并在一起,例如两个BL8可以拼成一个BL16。并且BG的引入不会增加预取数。

要从内存中读出,你要提供一个地址,而要向它写入,你还要提供数据。这个由用户提供的地址,通常被称为 "逻辑地址"。
这个逻辑地址在被提交给DRAM之前被翻译成物理地址。物理地址是由以下字段组成的:
• Bank Group
• Bank
• Row       #行
• Column #列
然后,这些单独的字段被用来识别内存中的确切位置,以便进行读出或写入
再继续往下看,这就是你将在每个bank中看到的内容。
• Memory Arrays       #内存阵列
• Row Decoder           #行解码器
• Column Decoder      #列解码器
• Sense Amplifiers       #感应放大器
一旦识别了Bank Group和Bank,地址的Row部分将激活内存阵列中的一行。这一行称为word line(字线) ,激活它会将数据从内存阵列读取到Sense Amplifiers感应放大器 中。然后,列地址读出加载到Sense Amplifiers感应放大器 中的 部分字。列的宽度称为Bit Line(位线) 【即部分字的宽度】
列的宽度是标准的 - 它是 4 位、8 位或 16 位宽,DRAM 根据此列宽分为 x4、x8 或 x16。另外需要注意的是,DQ 数据总线的宽度与列宽相同。因此,为简化起见,您可以说 DRAM 是根据 DQ 总线的宽度进行分类的。

类比时间:一块DRAM芯片相当于一栋满是文件柜的大楼
Bank Group → 确定楼层
Bank Address → 确定你所需要的文件在该楼层的文件柜
Row Address → 识别文件在柜子里的哪个抽屉。将数据读入感应放大器,相当于打开/拉出文件抽屉。
Col Address → 识别该抽屉内的文件编号

在最底层,一个比特本质上是一个保持电荷的电容和一个充当开关的晶体管。
由于电容会随着时间的推移而放电,除非定期对电容器进行刷新,否则信息最终会消失。这就是DRAM中 "D "它指的是动态,而不是SRAM(静态随机存取存储器)

访问内存
• 对DDR4 SDRAM的读和写操作是以突发为导向的。它从一个选定的位置开始(由用户提供的地址指定),并继续进行4个或8个突发长度。
• 读取和写入操作是一个两步过程。它以 ACTIVATE 命令开始(ACT_n 和 CS_n 在一个时钟周期内变为低电平),然后是 RD 或 WR 命令。
• 与 ACTIVATE 命令同时注册的地址位用于选择要激活的 Bank Group、Bank和Row(x4/8 中的 BG0-BG1 和 x16 中的 BG0 选择 bank group;BA0-BA1 选择 bank;A0-A17 选择row)。此步骤也称为RAS - Row Address Strobe(RAS -行地址选通)
• 与读或写命令同时注册的地址位用于选择突发操作的起始列位置。此步骤也称为CAS - Column Address Strobe(CAS -列地址选通)。
• 每个bank只有一组感应放大器。在对同一bank的不同行进行读/写之前,必须使用PRECHARGE命令解除当前打开的row的激活。PRECHARGE相当于关闭柜子里当前的文件抽屉,它使感应放大器中的数据被写回row中。
• 可以使用 RDA(自动预充电读取)和 WRA(自动预充电写入)命令,而不是发出显式 PRECHARGE 命令来停用行。这些命令告诉 DRAM 在读取或写入操作完成后自动停用/预充电行。由于列地址只使用地址位A0-A9,A10在CAS期间是一个未使用的位,它被重载以指示自动预充电。

DRAM子系统
ASIC或FPGA需要什么来与DRAM对话。这就是所谓的DRAM子系统,它由三个部分组成:
• DRAM存储器本身,包括上述的所有内容
• DDR PHY物理层:PHY包含模拟驱动器,并提供调整寄存器的能力,以增加驱动强度或变更终止,以改善信号完整性。
• DDR控制器
• DRAM 被焊接在板上。 PHY 和控制器以及用户逻辑通常是同一 FPGA 或 ASIC 的一部分。

• 用户逻辑和控制器之间的接口可以是用户定义的,不需要是标准的。
• 当用户逻辑向控制器发出读或写请求时,它会发出一个逻辑地址
• 然后控制器将此逻辑地址转换为物理地址并向 PHY 发出命令。
• 控制器和 PHY 通过称为 DFI 接口的标准接口相互通信。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值