马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 hdy 于 2025-5-7 23:30 编辑
基础知识
当前技术通常采用单晶体管/单电容存储单元,以实现更密集的存储芯片。
CMOS 栅极连接到字线(Row Line),源极连接到位线(Column Line)。当电容冲上电是表示1,没有充电表示0。写入命令通过开启晶体管栅极,从而将电流(1将充电,0将放电)发送到电容来完成。读取操作通过位线上的感应放大器(Sense Amplifier, S-Amp) 来测量电容中的电荷来完成。
DRAM 的基本设计有两个主要问题。首先,读的时候要从电容读取电荷,将耗尽电荷,这导致所有读取都是破坏性的。从 DRAM 读取一段数据后,该值就不再存储在内存阵列中。为了解决这个问题,必须在完成后将数据写回数组中。这称为PreCharge。 为了提高DRAM接口的效率,将整行读入DRAM中的缓冲区。将行读入该缓冲区的过程称为Open或Active该行。打开一行后,可以将数据读取或写入该行中的任何列,而无需再次打开它。但是,每个bank一次只能打开一行。要从同一bank 中的不同行读取,必须先对当前行进行PreCharge,然后Open新行。 DRAM的第二个基本缺陷,也是它被称为动态RAM的原因,是电容器会漏电。这意味着一旦电荷存储在电容器上,它就会开始失去电荷。解决此问题的方法是定期刷新每一行。刷新包括简单地读取一行,然后将其写回数组中。此过程可确保电容保持其电荷。通常,SDRAM自己能够执行刷新操作,但仍然必须告诉它何时刷新。 DDR命令
DDR4示意图:
信号的不同,组合成不同的Command:
DRAM状态机
CKE:DRAM Clock Enable信号Active:至少一个Bank活动的,没有掉电(CKE=1),无内部刷新(DRAM 控制器必须发送刷新命令) IDLE:所有Bank都关闭并Precharge,不掉电(CKE=1),没有内部刷新。DRAM改变状态通过发出Precharge命令从Active到IDLE PDNP:Precharge Power Down:所有Bank都在Idle状态下,关闭Clock(CKE=0),没有内部刷新。 PDNA:Active Power-Down:Bank有行处于Active状态,关闭Clock(CKE=0),没有内部刷新。 SREF:Self Refresh,所有Bank都已Precharge并关闭,触发 DRAM 内部自定时刷新 (CKE=0)。
Active Power Down和Precharge Power Down通过打开Clock(CKE=1)退出。Power Down的时间必须在Refresh的时间范围内,以保证数据不会因为电容没有充电刷新丢失
DDR4 DRAM中提供了一种功耗更加低的Maximum Power Down模式。DDR控制器发送Deep Power Down命令,这时候存储阵列的Power会被断掉,所有的数据会丢失掉。当从Deep Power Down退出的时候,需要对SDRAM芯片进行初始化
不同省电模式下面的功耗比: [td]特性 | Active Power Down | Precharge Power Down | Self-Refresh | Maximum Power Down | 主要用途 | 短时间内预期会有新的访问请求 | 短时间内频繁切换活跃与空闲状态 | 长时间不访问内存但需保持数据 | 不需保持数据的长时间断电 | 功耗水平 | 较高,但低于完全活跃状态 | 中等,低于Active Power Down | 最低,通常为几毫瓦(mW) | 极低,接近于零 | 恢复时间 | 快速 | 较快 | 较长 | 最长 | 适用场景 | 快速响应需求较高的应用 | 需要在短时间内频繁切换状态的应用 | 设备待机、休眠等长时间无操作期 | 数据可重新加载的长时间断电情况 |
省电模式时序图
在CKE的配合下,可以发送省电相关的Command:
Auto-Refresh Auto-Refresh命令用于在DDR正常运行期间刷新阵列的内容。此命令是非持久性的,因此每次需要刷新时都必须发出。在发出Auto-Refresh命令之前,必须对所有Active存储体进行PreCharge。
Self-Refresh Self-Refresh模式可用于在系统其他部分断电的情况下,将数据保留在DDR中。在Self-Refresh模式下,DDR无需外部时钟即可保留数据。Self-Refresh命令的启动方式与Auto-Refresh命令类似,但CKE低电平。Self-Refresh命令后,除CKE必须保持低电平外,DDR的所有输入信号均变为“Don't Care”状态。 启用Self-Refresh模式后,DDR将提供自己的内部时钟,使其能够执行自身的自动刷新周期。设备必须保持自刷新模式至少一段时间,即tRAS,并且在此之后,可以无限期地保持自刷新模式。
Power down 当没有进行任何访问时,如果 CKE 被设置为低电平,且同时出现 NOP 或 COMMAND IN HIBIT 指令,则会发生Power down。如果所有 Bank 都处于空闲状态时发生Power down,则此模式称为Precharge Power Down;如果任何 Bank 中有一行处于活动状态时发生Power down,则此模式称为Active Power down主动。进入掉电模式会停用输入和输出缓冲器(CKE 除外),以在待机状态下最大限度地节省功耗。由于此模式下不执行任何Refresh操作,因此器件处于Power down状态的时间不能超过刷新周期 (64ms)。 通过在所需时钟沿(满足 tCKS 周期)将 CKE 设置为高电平并发出 NOP 或 COMMAND INHIBIT 指令,即可退出Power down状态。
Clock Suspend 当column access/burst正在进行且 CKE 寄存器为低电平时,将进入Clock Suspend模式。在该模式下,内部时钟停用,同步逻辑冻结。 通过将 CKE 寄存器为高电平退出时钟暂停模式;内部时钟和相关操作将在下一个时钟正沿恢复。
|