基于硬件和固件相结合的掉电保护策略的应用
摘 要 : 提出一种基于硬件和固件相结合的掉电保护策略在固态电子盘模块中的应用方案。主要以电源检测为掉电保护策略的启动中心,续流模块(储能单元)和固态电子盘模块主控器(内嵌高性能CPU)为硬件平台。主控器的固件基于FPGA内嵌PowerPC软核平台用于控制NandFlash数据的存储。通过电源检测监控系统电源的电压或电流产生物理激励信号,将整个固态电子盘模块的供电切换到续流模块,同时启动主控器动态调整NandFlash的读写策略,保证掉电瞬间能够最大程度地保护固态电子盘模块存储单元文件系统的完整性和一致性。测试结果表明,该应用方案具有较高的可靠性。
0 引言
嵌入式系统的应用环境恶劣,电源电压不稳定,突发性断电以及非法插拔都容易对NandFlash中的文件系统造成灾难性的影响[1]。为了管理复杂的存储硬件,同时提供可靠高效的存储环境,出现了基于固态电子盘模块(SSD)的主控器和NandFlash的掉电保护机制,有效地减少了上述原因对固态电子盘模块中文件系统一致性和完整性的破坏。
为了提高SSD的读写性能,大部分SSD控制器通过内部集成RAM或外部扩展RAM的方式增加缓存,每次主机需要存储数据到SSD中时,都先写到SSD的缓存中,SSD控制器再将缓存中的数据写入到NandFlash中。因此,在电源没有任何保护措施的情况下,如果SSD突然掉电(即外部供电在突发意外情况下发生浪涌或断电),将会造成缓存中的数据完全丢失,轻则丢失数据,重则导致SSD中文件系统崩溃,主机无法识别SSD。
本文提出了一种增加掉电监控和保护的硬件单元,并可以动态调整SSD主控器的固件的工作模式,这种设计方法在掉电瞬间,能够最大程度地保护SSD存储单元的文件系统的完整性和一致性。
1 系统设计
闪存(NandFlash)的管理(读写的策略、坏块的管理以及损耗均衡)针对嵌入式系统的应用特点,进行特别的优化,在掉电瞬间,减少主控器的能量需求,尽可能满足NandFlash的写操作,但是过低的功耗会限制固态盘在电源稳定状态下的性能。考虑到整个固态盘的稳定性,主控器的NandFlash的管理策略需要动态调整[2]。因此,要实现完整的掉电保护策略,需要结合完整的电源状态监控机制和动态调整SSD主控器的固件运行模式,才能达到有意义的掉电保护。根据以上原理设计了SSD的系统架构,如图1所示。
SSD系统架构主要由SSD控制器、扩展RAM(原理样机使用的DDRII)、NandFlash阵列(存储体的组织形式为SLC)、高速数据接口(原理样机使用的IDE接口)、电源检测功能单元电路和续流功能单元电路(储能电路)组成。
掉电保护增加了两部分功能:
(1)掉电保护硬件部分:包含电源检测模块和续流模块,电源检测模块用于检测系统的供电电源,当其电压过低或输出电流过小时,向SSD控制器产生中断,同时启动续流功能电路单元(储能电源模块),给SSD提供足够长时间的续航能力,保证主机给SSD的最后一帧数据能够顺利写入NandFlash中,并更新文件系统列表,保持SSD中文件系统的完整性和一致性;
(2)掉电保护固件部分:SSD主控制器接收到电源检测模块的中断后,动态调整工作模式,将主机当前发送的“写数据”直接搬家到NandFlash,同时启动多通道控制模式,将缓存DDR2中的数据写到NandFlash中,两部分的最后一帧数据写入NandFlash后,产生选通信号通知续流模块关闭。
1.1 掉电保护各功能单元电路设计
硬件电路由电源检测模块、续流模块和SSD主控器组成。
1.1.1 电源检测模块
电源检测模块采用掉电复位电路,监控系统供电电源的电压和电流,当系统的输入电压低于4.75 V或系统的输入电流小于1.35 A时,表明系统电源掉电,电源检测模块产生复位“低”信号,触动续流模块工作,同时动态调整固态电子盘模块主控器的工作模式。
(1)启动续流模块工作,将固态电子盘模块的供电电源由系统电源供电切换到续流模块供电,保证主控器、存储体NandFlash以及相关电路的工作稳定性;
(2)触发固态电子盘模块主控器的外部中断,主控器调整NandFlash的“写策略”。
1.1.2 续流模块
续流模块设计原理图如图2所示。其本质上是一个储能再利用电路,使用法拉电容充当储能元件。在SSD正常工作时,依靠系统电源完成充电操作。而当系统电源发生故障或者非正常断电时,储能电路释放电能,暂时维持SSD主控器、存储体NandFlash和相关的旁路电路的正常工作,尽量保证主机的最后一帧数据顺利存入到NandFlash中,并更新完成SSD中的文件系统列表。
将供电模块(电压转换器)切换到由法拉电容供电,需要两个条件:
(1)系统掉电(电源监控芯片)输出低电平或者输出电流低于判决门限值;
(2)选通信号为高电平,此时逻辑开关(电压监控)输出低电平。
以上两个条件都可将系统电源VCC切换到由法拉电容供电。
具体设计中,在进行重要数据操作之前,先通过固件将选通信号置为高。如果在操作过程中突然掉电,则电源监控输出低电平,此时硬件自动切换到由法拉电容供电;如果没有掉电,电源监控电压输出为高电平,系统还是由5 V电源供电。在重要数据操作完成之后,固件控制将选通信号置为低,或门输出高电平,切断法拉电容供电的可能。这样可避免法拉电容的无谓供电,减少充放电的次数,从而提高可靠性以及延长法拉电容的使用寿命[3]。
1.1.3 SSD主控器的工作模式设计
SSD主控器的功能组成框图如图3所示。
(1)SSD主控器的正常工作模式
在系统电源稳定供电的正常情况下,SSD进入正常工作模式,SSD主控器的工作内容:
①将文件系统列表存储在SSD主控器外扩RAM(DDRII缓存)中,方便SSD主控器能够迅速地查找和更新文件列表;
②因为数据写入DDRII的速度比直接写入NandFlash的速度快,为了不耽误接收主机“写数据”的时间,SSD主控器以“段页混合管理的形式”将DDRII中的数据以NandFlash的“页”模式组织,通知NandFlash控制器能够准确地进行整块的数据搬家到NandFlash阵列指定区域中,减少NandFlash控制器的固件开销,提高数据快速写入能力。这样的方式,能够大大提高主机数据写入的速度,同时也伴随着功耗的增加。
(2)SSD主控器的应急工作模式
在系统电源正常供电,SSD正常运行时,SSD主控器的内嵌CPU不创建掉电保护进程,减少了内存占用资源,简化任务管理、调度。当电源检测电路产生激励信号时,触发CPU立即创建掉电保护进程,进入就绪态,同时赋予最高的优先级,抢占CPU控制权,进而达到最强的实时性[4]。
SSD主控器接收到电源检测电路发送的电源异常中断后,动态调整SSD主控器上的运行固件,进入应急模式进程,进行以下操作:
①SSD主控器给主机上报SSD工作不稳定警告,发送中断(禁止“读操作”)给主机,将DDRII中的文件列表搬家并更新到NandFlash的指定区域。
②SSD主控器将主机当前需要完成存储的“写数据”,直接写入到SSD主控器的数据缓冲区(片内RAM)中,减少DDRII的功耗开销,同时进入“页映射”模式,通知内部集成的NandFlash控制器将缓冲区数据直接写入NandFlash阵列的指定数据区域后,再发送中断(禁止“写操作”)给主机。
③与②步骤同步,SSD主控器开启多通道传输控制模式,将DDRII(扩展RAM)中的暂存数据写入NandFlash中,如果与②步骤有冲突的数据区,则动态调整文件系统列表,将数据重新写入其他空闲块,并同时更新NandFlash中文件列表,如果与②步更新文件有冲突的,则将DDRII中的待写入数据放弃。
④完成②和③两个步骤,SSD控制器发送选通信号,通知续流模块电路停止供电,减少续流模块电路的功耗开销。
综上所述,整个SSD主控器的工作模式就是将主控器的工作模式分为了电源稳定的正常状态工作模式和电源不稳定时的应急状态工作模式[5],SSD控制器的固件进程流程如图4所示。
2 系统验证
将掉电时间控制在1 ms~10 ms之间,写入数据为10 MB,DDR2中待搬家数据为20 MB。在此虚拟环境中,测试续流模块启动时间、主控器上报中断“读操作”时间和SSD主控器发出续流模块关闭时间,观察这三个关键时间的关系并验证该SSD重新正常启动后,文件系统是否未破坏。
通过图5的采样图形可以看出,以SSD系统电源5 V为触发条件,掉电保护策略启动:
(1)续流模块的5 V的供电启动时间比系统电源5 V掉电时间提前了10 ns;
(2)系统电源5 V掉电时,主控器发回“关闭读操作”中断;
(3)续流模块持续供电100 ms后,保证数据记录完成,SSD主控器发出续流模块“关闭”信号后,续流模块输出的5 V电源关闭。
经过重新启动该SSD,重新读写SSD正常,证明该机制有效。
3 结束语
本文针对嵌入式SSD的应用环境中的掉电时间和文件系统保护两个重要指标进行测试,给出了测试结果,证明了该硬件和固件相结合的掉电保护策略能够保证SSD在嵌入式领域中的应用具有高效性和健壮性,但也随之带来了SSD的硬件成本和固件开发的难度。
参考文献
[1] 胡一飞,徐中伟,谢世环.NAND Flash上均匀损耗与掉电恢复在线测试[J].单片机与嵌入式系统应用,2007(3):5-8.
[2] 沈建华,罗悦怿.基于NAND Flash的FFS设计与实现[J].计算机应用与软件,2005(6):89-90.
[3] 王久文.低电压超大容量电容器的发展综述[J].世界电子元器件,1997(8):24-25.
[4] 徐连军.双CPU冗余通信控制系统的研究与实现[D].西安:西安电子科技大学,2011.
[5] 袁积德,黄文君,陆卫军.高性能集散控制系统主控制器设计[J].计算机工程,2012(5):215-218.
兆易创新申请兼具MCU和Flash的系统及其低功耗控制方法专利,能使Flash整体断电,提供更低的系统功耗
金融界2024年6月21日消息,天眼查知识产权信息显示,兆易创新科技集团股份有限公司申请一项名为“兼具MCU和Flash的系统及其低功耗控制方法“,公开号CN202211631988.2,申请日期为2022年12月。
专利摘要显示,本发明提供一种兼具MCU和Flash的系统及其低功耗控制方法,相比现有的系统架构,可以通过仅在MCU上增设一个电源引脚来耦接Flash的电源端,来提供一种新的低功耗模式(即第一低功耗模式),当系统需要进入低功耗状态时,能使Flash整体断电,比现有的低功耗模式(即第二低功耗模式),能提供更低的系统功耗,而且在Flash(IDLE)闲置状态下,能更快进入低功耗模式。此外还可以进一步兼容现有的深度睡眠模式,以满足系统在常规情况下的低功耗需求以及特殊情况下的低功耗需求。
本文源自金融界
相关问答
MSP430单片机中把数据放到 Flash 中, 断电 后数据后丢失吗?不会丢失的。但是你在初始化的时候可能有一个擦写flash的语句。这个你要设置一个标志,第一次上电的时候擦写flash,以后重启的时候就不再擦写。你可以自己将fl...
思科交换机 flash 啦如何格式化?要格式化思科交换机的flash,需要使用命令行界面(CLI)连接到交换机,并使用以下命令:1.showflash:用于显示flash的内容和大小;2.deletefilename:用于删......
flash 类型怎么选择?在选择Flash类型之前,需要考虑以下几个因素:1.存储容量:Flash存储器通常有不同的容量规格,从几MB到几TB不等。因此,你需要根据自己的需要来确定所需的存储...
什么是系统 保护 ? - 9ja44EwM 的回答 - 懂得系统保护是定2113期创建和保存计算机系统文件和5261设置的相关信息的4102功能。系统保护也1653保存已修改文件的以前版本。它将这些文件保存在还原...
戴尔笔记本装完系统在装驱动时突然 断电 ,然后不开机,电源指示...肯定是因为断电导致驱动程序不能正确安装,硬件无法正常工作,所以导致无法开机。...Fn+开机键你看看能看见什么不,如果不能打电话报修吧,如果能你就继续做下...
什么是路由器 flash ?路由器是个可以独立工作的系统设备,拥有自己的CPU,flash闪存,内存等,说白了就是很像一台小小电脑。flash就是闪存,有类似于U盘的存储作用,断电可以后照样可...
如何使用WINFLASH。怎么办?1。下载文件后将文件解压到一个独立的目录里面,并将需要刷新的BIOS也放到同一目录(请一定注意BIOS文件的正确性)2。双击“WINFLASH.EXE”程序,开始运行。。...
biosbackflash怎么设置?1/5首先,不建议在未出现稳定性及兼容性问题时自行刷BIOS,同时提醒刷新过程中不可出现断电等干扰情况。2/5可以参考以下步骤来操作:1、确认当前主板的BIO...
vivado如何将用户数据固化到 flash ?在这个界面,右击,选择添加配置存储设备接着,在弹出界面依据版型进行配置配置完成后,将bin文件装载至flash,点击ok后,即可。接下来断电,将下载器拔出,...在...
Alt+f2 to enter AwDFLASH utility 一直都开不-ZOL问答断电后,BIOS信息被初始化了,要重新设置才能进系统了。按Delete键进入BIOS。主...惠普开机显示errorloadingoperatingsystempresskeyto...