这是一个真实的案例:用户正常使用过程中,没有进行任何执行烧毁的操作,刚一开机,SSD却起了火……
物理烧毁,其实真的很难实现,虽市面上“物理烧毁”功能的SSD很多,但真正没有Bug的版本如凤毛麟角,与普通版本的SSD相比,使用烧毁功能的SSD更具危险性,本来需求的出发点是出于数据安全考虑,实际上,设计不够完美的SSD反而会让用户数据出于更加危险的境地。
每一位工程师在设计物理烧毁功能时都应该问问自己以下几个问题是否真正都能做到,否则,你的设计就是有Bug,且有极大可能会导致灾难性后果:
1、当有电磁干扰时,控制烧毁的关键器件,如:单片机,是否会出现故障,从而引发物理自毁?
2、如何保证单片机程序没有Bug,在需要执行销毁时没有动作,而在不需要执行销毁时却错误执行了销毁?
3、如何保证所有的Nand Flash都能被销毁?假如,其中一块Nand Flash没有被销毁,是否有反馈机制触发二次或多次的销毁动作,以确保Nand Flash被彻底销毁?
下面从实现物理烧毁的方式来分析设计过程中必须要绕过的、可能致命的“坑”。
物理烧毁功能,市面上大致有两种方法实现:
一、“大水漫溉”法--号称一秒钟烧毁整个SSD的做法
此方法同时对SSD上所有Nand Flash施加高压,瞬间摧毁所有芯片,不过,这种做法只能做为营销的噱头,即使是从理论上都无法站住脚,不要错误的以为烧毁Nand Flash的是高电压,不是!是瞬间能量,事实证明,用之得当,12V就可以完全烧毁Nand Flash,用之不当,28V也无法烧毁。这种做法就等同于当把28V同时分配给8-16片Flash,单片Flash承受的瞬间能量极少,只有个别的Flash会无法承受,根据实际测试,这种方法一次烧毁所有芯片的概率基本为零。
当然,如果您能设计10000V来烧,我认为应该是可以完成的。
二、“分时分路”法--更能保障整盘都会烧毁的做法
所谓分时、分路,分时:是指对芯片指定烧毁时间,逐一进行烧毁,例如,每片Flash烧毁5秒,然后跳到下一片;分路:是指正常工作电路和烧毁电路分离,烧毁电路执行高压击穿Nand Flash。
1、分时分路法多是借助单片机进行烧毁执行及烧毁时间的控制,很不幸,绕回到上文需要工程师考虑的三个问题会莫名其妙的出现。
a)单片机程序出了故障,SSD莫名其妙的执行了烧毁;
b)单片机本身出现故障,SSD在没有执行烧毁操作的情况下执行了烧毁或者在需要执行销毁时却无法销毁;
c)给足了烧毁时间,每次总有那么一片或者几片Flash任凭风霜雪雨,总能劫后余生神奇般的“健在”。
应对策略:
1、单片机的选择很重要,非常重要,不是每个厂商的单片机都叫单片机,选择便宜的单片机多数是死路一条。
2、烧毁程序的执行,必须有附加条件,至少满足两个以上的条件才执行烧毁,而不是单一的条件,这样才能确保不会在上电后莫名出现烧毁,也不会因为单盘机软件或者电磁干扰导致的错误触发。
3、没一片Flash执行烧毁后,必须有反馈,假如发现没有烧毁,重新执行,直到烧毁。