问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

SDRAM刷新模式详解:Auto-Refresh与Self-Refresh

创作时间:
作者:
@小白创作中心

SDRAM刷新模式详解:Auto-Refresh与Self-Refresh

引用
CSDN
1.
https://blog.csdn.net/iNostory/article/details/146492176

SDRAM(同步动态随机存取存储器)是计算机系统中常用的内存类型,其数据存储依赖于电容的电荷状态。为了保持数据的完整性,SDRAM需要定期刷新。本文将详细介绍SDRAM的两种主要刷新模式:Auto-Refresh (AR) 和 Self-Refresh (SR)。

SDRAM使用Auto-Refresh (AR) 和 Self-Refresh (SR) 来执行刷新操作。一般来说,SR 在系统空闲时用于节能,而 AR 在系统忙碌时使用。

Auto-Refresh (AR)

在 SDRAM 中,命令和地址信号在时钟边缘被采样。下图展示了一个典型的 AR 场景,其中通过 precharging 所有打开的 rows 将设备带到空闲状态,然后发出 AR 命令。在 DDRx 中发出 AR 命令时,内存控制器同时声明 row access strobe (RAS) 和 column access strobe (CAS),并通过 chip select (CS) 选择设备。

为了简化刷新管理,每个 DRAM 设备都有一个内部刷新计数器,用于跟踪下一次刷新操作中要刷新的 rows。控制器负责以指定速率发出 AR 命令,以刷新所有 bank 中的一定数量的 rows(称为 all-bank auto-refresh)。只有在 AR 完成后,正常内存操作才能恢复。

LPDDRx 设备在 command/address (CA) 总线上甚至使用双倍数据速率,以减少引脚数。当 CA0 和 CA1 引脚在时钟上升沿被驱动为 LOW,同时保持 CA2 为 HIGH 时,启动 AR。与 DDRx 设备不同,LPDDRs 可以灵活地在 bank 粒度上调度 AR(称为 per-bank auto-refresh),这只需要被刷新的 bank 处于空闲状态,而其他 bank 可以服务内存请求。需要注意的是,per-bank AR 无法指定要刷新的 bank 地址,即 DRAM 内部维护目标 bank 编号,并且每次命令时目标 bank 编号从 bank 0 开始顺序递增。因此,内存控制器必须确保其目标 bank 编号的概念与 LPDDR 设备的目标 bank 编号保持同步。还值得注意的是,AR 是 per-bank 还是 all-bank 可以根据 CA3 信号动态决定(LOW 表示 per-bank,HIGH 表示 all-bank)。

Self-Refresh (SR)

Auto-Refresh 会消耗大量功耗,因为在整个刷新期间,SDRAM 中的所有时钟电路保持活动状态。因此,除了刷新所需的功耗外,由于 delay locked loop (DLL) 和外围逻辑,还会消耗 background power。为了节省 background power,DRAM 可以选择进入 SR 模式,在此模式下,设备使用内置的模拟定时器内部生成刷新脉冲。换句话说,当设备处于 SR 模式时,所有外部 I/O 引脚和时钟都被禁用,DLL 关闭,设备无需内存控制器干预即可保持数据。SR 是 DRAM 设备在不丢失数据的情况下最低功耗的模式。

下图显示了 DDR4 设备进入和退出 SR 的时序。

首先,与 AR 相同,在进入 SR 之前,所有 bank 都应被 precharged。当 clock enable (CKE) 信号被采样为低电平,同时命令被解码为刷新(RAS = LOW, CAS = LOW, WE = HIGH, CS = LOW)时,设备进入 SR 模式。此外,前一个和下一个时钟周期的命令应被取消选择(CS = HIGH)。此外,DRAM 应至少在 tCKESR 指定的时间段内保持在 SR 模式。设备还应在进入 SR 模式后在 tCKE 周期内内部调度刷新命令。一旦设备在 tCKSRE 时间内处于 SR 模式,外部时钟可以被禁用。

退出 SR 时,需要指定的时间来确保正在进行的刷新命令完成并且 DLL 正确锁定。所需时间是以下两个时序参数的最大值:(i) tRFC,服务刷新命令所需的时间,以及 (ii) tXSDLLK,DLL 锁定周期。值得注意的是,DDR4 设备支持中止正在进行的刷新命令的选项,使退出 SR 更快(tXS_FAST 和 tXS_ABORT)。尽管如此,需要锁定 DLL 的后续命令仍需等到 tDLLK 完成。由于 LPDDRx 设备没有 DLL,退出 SR 的时间仅取决于 tRFC。最后,在重新进入 SR 模式之前,必须至少发出一个 AR。

LPDDRx 设备投入更多资源以减少 SR 期间的 background power。具体来说,LPDDRs 使用了两种重要技术:(i) 由片上温度传感器引导的温度补偿刷新率,以及 (ii) partial array self-refresh (PASR) 选项,控制器可以编程设备仅刷新内存的某一部分。这些技术可以在 SR 模式下大幅降低能耗。例如,下图显示了在 SR 期间电流如何随温度和 PASR 变化。

刷新时序

现代 DRAM 设备包含内置的刷新计数器;因此,内存控制器的唯一要求是在适当的时间发出刷新命令。基本要求是每个 DRAM 单元在其保持期内至少被刷新或访问一次。

大多数商用 DRAM 设备具有 32 毫秒或 64 毫秒的保持时间,也称为刷新窗口(tREFW)。保持时间通常随温度升高而减少。此外,平均每隔一个刷新间隔时间(tREFI)应发出一个 AR 命令。因此,内存控制器应在刷新窗口内至少发出 tREFW/tREFI个 AR 命令,以确保每个 DRAM 单元在保持时间到期之前被刷新。

每个 AR 命令根据 DRAM 设备中的总 row 数刷新每个 bank 中的一定数量的 row。例如,DDR3 设备具有 7.8 微秒的 tREFI 和 64 毫秒的 tREFW。因此,在 tREFW 期间发出 8,192 个刷新命令。去过每个 bank 有 8,192 个 row,因此每个 AR 仅需刷新每个 bank 中的一个 row,内部刷新计数器仅增加 1。然而,如果每个 bank 有 65,536 个 row;因此,一个 AR 命令应刷新每个 bank 中的 8 个 row 并将内部计数器增加 8。随着单个 AR 刷新的 row 数增加,刷新完成时间也增加。刷新命令的时间是刷新周期(tRFC)。

在 DDRx 设备中,刷新灵活性允许最多延迟或提前发出八个 AR 命令,如下图所示。JEDEC 标准允许在高内存活动阶段最多延迟八个刷新,然后在空闲期间发出这些额外的 AR 命令。或者,可以通过先发出额外的刷新,然后稍后跳过它们。

然而,刷新速率应满足两个约束:

(i) 在 9*tREFI 时间段内必须至少发出一个 AR,以及

(ii) 在 2*tREFI 间隔内发出的 AR 命令不超过 16 个。

LPDDRx 设备在调度 AR 方面提供了更大的灵活性,如图所示。

这些设备支持分布式和突发刷新模式以及介于两者之间的任何模式。要求是,在 tREFW 的窗口内,应发出 8,192 个 all-bank AR 操作。此外,最多可在持续时间为 32*tRFC的突发窗口(称为 tREFBW)中发出 8 个刷新。

DDR2 和 DDR3 设备被指定为保持 tREFI 恒定(7.8 微秒),但根据设备密度具有不同的 tRFC 周期。因此,对于高密度设备,tRFC 变得过长。作为对 tRFC 增长的回应,DDR4 引入了细粒度刷新模式,允许编程 tREFI。这允许用户启用 2x 或 4x模式,其中 tREFI 分别除以 2 或 4。因此,单个刷新命令刷新的 row 数减少 2x 或 4x,从而缩短 tRFC。通过即时设置,可以动态更改刷新速率以适应内存需求。

下表 显示了几代 DRAM 和几种设备尺寸的 tREFI 和 tRFC 时序值。注意,对于给定的 DRAM 架构(例如 DDR3),tRFC 不是恒定的,并且可能有显著差异。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号