电源关断模块中的retention register低功耗设计

嵌入式技术

1343人已加入

描述

在电源关断模块有可能要求register对关断前的数据进行锁存或者在电源打开后要求对锁存的数据进行恢复,这就需要特殊的单元Retention Register。

retention reg有两组寄存器,Main Register和shadow寄存器,其中shadow寄存器使用的是always on的电源;

它有两个电源,一个用于模块电源未关断时的工作用电,一个用于模块电源关断时的用电。它还有两个控制信号save和restore,用于控制是否锁存数据或者恢复数据;

寄存器

如上图所示,这个寄存器需要有两个电源,一个是常开的VDD_BACKUP,给shadow寄存器用,另一个是可以关断的VDD,给Main Register用。

在需要保留状态时,使能SAVE信号,Main Register的值就被保留到shadow寄存器中,然后即使VDD关闭了,shadow寄存器的值也会保留。当模块/IP再次上电,通过使能RESTORE信号,就可以把shadow寄存器的值写回Main Register中;

寄存器

内部结构

对于可以关断的Power Domain,如下图Block1内的PD1,在关断电源之后,内部数据全部丢失,如果想在断电后仍然保存这些数据有几种方式:

在断电前,将内部数据存到Block外部的RAM中,等上电之后再将数据读回;

在电源可以关断的Power Domain中使用Retention Register。其内部结构如上图,该寄存器可以在电源关断前通过SAVE信号将数据从Main Register保存到内部的Shadow Register中。在上电后,再通过RESTORE信号将数据从Shadow Register恢复到Main Register中。

寄存器

与前面的各种低功耗Cell一样,Retention Register内部的Shadow Register也是Always On Cell,必须有Always On的供电源。Shadow Register连接到always-on电源上以保证其能够正常工作。由于是Always On的,所以为了实现低功耗的目标,内部的器件多用高阈值的MOS管来实现以降低Power Down模式下的Leakage Power。

Retention Register内除了Shadow Register之外,其余的器件均使用可以关断的电源,为了高性能以及快速恢复数据,Main Register可能还会使用低阈值的管子。

Retention Register与常规的寄存器相比,面积更大,一般要比普通寄存器面积大约20%,如果设计的鲁棒性好一些,甚至会大超过50%。 但是与其他方案相比,上电后数据恢复的速度非常快,且操作也简单。因此,使用retention register需要特别注意它带来的额外的面积和功耗。当需要断电保存的数据过多时,retention cell带来的功耗可能会使整体的low power效果打折扣。

QA1

在低功耗设计中retention register,这个寄存器其实包含两个寄存器,一个叫shadow register的寄存器用always on电源,用于寄存器值的恢复,那么为什么不直接一个普通的寄存器用always on电源呢?这样不是可以省下一个寄存器吗?

理论上说可以用普通的register来做,但是实际中需要考虑ISO,仅仅clock,data,reset就需要3个isolation cell。功耗比较高,另外对timing也有影响。

而retention register内部就考虑了这些,只要保证进ret的信号是always on就可以,而且进出ret的速度都非常慢,所以对timing 不会有影响。

QA2

retention registers指的是什么寄存器?它与一般的寄存器有什么不同,主要的功能是什么?

retention reg有两组寄存器,其中一个是shadow寄存器使用的是always on的电源。当power down之前,把主reg的值load到shadow reg,当power up之后,从shadow reg把值load到主reg。因为shadow寄存器只是用来存储数据,所以可以做得比较小,功耗比较低。

使用retention registers会增加额外的leakage,需要配合系统的省电方案使用,同时也会增加额外的面积;

QA3

retention registers看起来多了一个shadow寄存器,似乎费电更多才是,那怎么做到省电的呢?

关键就在于,retention registers中的shadow寄存器只消耗很少的电来保存信息,从而使得主寄存器可以完全掉电,从而省电;

QA4

retention registers中主从寄存器两者的区别?

主寄存器面积大,工作电压高,采用的晶体管阈值电压也低,工作电流大,这样可以保证该寄存器在正常工作时速度快,负载能力强。

从shadow寄存器,面积相对小一些,采用阈值电压高的晶体管,其驱动电压也会更低。因此,消耗的电量很少。

Liberty retention register,仅供参考

retention registers的lib描述指定了控制数据保存和恢复的电源引脚和输入信号。

指定了哪些电源引脚是正常的并且可以掉电,哪些是用于在掉电期间保持数据的常开引脚。

cell(RETENTION_DFF) { 
retention_cell:"ret_dff"; 
area : 1.0; 
... 
pg_pin(VDDB) { 
voltage_name : VDDB; 
pg_type : backup_power; 
} 
... 
pin(RETN) { 
direction : input; 
capacitance : 1.0; 
nextstate_type : data ; 
related_power_pin :VDDB; 
related_ground_pin:VSSG; 
retention_pin (save_restore, "1" ); 
} 
pin(Q) { 
power_down_function:"!VDD+VSS"; 
related_power_pin : VDD ; 
related_ground_pin : VSS; 
direction : output; 
...

编辑:黄飞

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分