与前面的各种低功耗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;...