DRAM的DVFS: Dynamic Voltage Frequence Scale: 动态电压频率调节
也即为了降低DRAM的功耗来实现的一种模式。在LPDDR5开始Spec开始实际定义了相关feature. 但是在DDR4/LPDDR4,如果controller支持的话,也是可以支持DVFS的。
- 电压/频率的变化会带来一些training的参数值会有些变化,所以在training阶段需要对各个可能使用到的电压/频率点要分别进行training,将training的结果存到SRAM or其他的memory里面,需要切换频率电压的时候,需要将training的值捞出来进行切换,同时要保存当前频点电压下的training值。
- 除了捞取training值外,还需要注意对温度影响比较敏感的参数,例如tDQSCK/tDQS2DQ等,可能需要base温度偏差要做补偿。补偿的时候还需要注意delay cell(PHY上调节delay的invertor chain)在不同电压温度下的step的精度的差别。那么捞取training值后,还需要根据当前温度跟training时候的温度的差值,对这些参数进行线性补偿。
- DVFS过程是很漫长的,需要引入较长的latency。而且切换频率的时候,可能还要满足spec的切换频率的timing要求。DDR系列因为DLL跟input tCK的频率强相关,所以切换频率之后还要重新设置DLL的MR配置,并做DLL Reset. 这个时候要注意是否能满足retention的要求,别切换的时间太长,结果导致array里面的data丢失了
- 如果同时调节电压跟频率,应该是以什么顺序来调节呢?
比如高频切到低频,电压一般也可以降低,这个时候一般先降频,再降低电压
如果低频切换到高频,一般是先升高电压,再提升频率
原因是因为一般电压越高,device的Idsat越大,性能越好,从而速度可以更高。
复杂的系统的话,DVFS的频点电压不止一个。根据系统访问memory的loading来实现动态的切换。