具体实施方式
针对如何快速擦除闪存中的数据,本发明提出一种快速彻底销毁数据的方法。
为便于描述,本发明实施例以固态硬盘SSD为例进行说明,固态硬盘SSD一般由闪存控制器和闪存芯片构成。首先简要介绍闪存Flash芯片结构,如图1所示,在固态硬盘SSD产品中一般采用Flash芯片阵列作为存储介质,一个固态硬盘可以包括多个闪存芯片(Flash Chip)。考虑Flash自身特性,现主流Flash芯片由2或4个层(Layer)构成,每个层可划分为4个平面(plane),每个平面可以分为保留区与数据区。保留区可以根据开发者自定义保留一些表或相关信息,代码,也可作为坏块保留块的替换,数据区用于存取用户数据。另外,这里仅仅列举了一种具体的固态硬盘形式,而本发明实施例适用与各种固态硬盘形式,并不限定每个Flash芯片包括的层数、每个层包括的平面数。
实施例一
本发明实施例一提供一种擦除固态硬盘SSD数据的方法,参照图2,该方法包括以下步骤:
步骤101、闪存控制器接收数据销毁命令;
步骤102、闪存控制器将接收的数据销毁命令分发给闪存芯片的各个层;
步骤103、闪存芯片的各个层根据数据销毁命令并行擦除本层的数据。
该方法还可以包括:步骤104、在已执行数据擦除的闪存芯片各层上覆盖新数据。覆盖新数据的方式可以是,对所述闪存芯片中的各个层进行“0”“1”置位,将闪存芯片中的数据都置为“0”,“1”,或者“0”“1”的组合。
其中,步骤101中接收数据销毁命令可以是:固态硬盘在在线状态时,通过闪存控制器从主机接收数据销毁命令;或者,固态硬盘在离线状态时,通过闪存控制器接收由销毁开关发出的数据销毁命令。为了闪存控制器在离线状态时,能够接收销毁开关发送的数据销毁命令,可以为闪存控制器设置一个电源装置,该电源装置负责在离线状态时唤醒SSD并维持工作时的能量供应,以使固态硬盘能够进行数据擦除操作。
在执行步骤103或步骤104时,若固态硬盘在在线状态时销毁数据未完成,上述方法可以进一步包括:在离线状态继续进行数据销毁操作;或,记录在线状态销毁数据的进展状态,当系统重新上电时,根据记录的进展状态继续进行数据销毁操作。其中,销毁数据可以是擦除,或擦除和覆盖。
其中,在离线状态时,销毁命令可以通过以下方式产生:设置离线计时器,在固态硬盘离线时开始计时,当计时到达预设的离线时限时,产生数据销毁命令,发送给闪存控制器,启动数据销毁操作;
或者,设置离线电源,当离线电源电量低于设定的阈值时,产生数据销毁命令,发送给闪存控制器,启动数据销毁操作。这里的数据销毁命令,可以是离线计时器超时的通知,或者,离线电源电量低于阈值的通知。离线电源,用于在固态硬盘离线时,为固态硬盘供电或者为固态硬盘和离线计时器供电。
由上述实施例可知,通过在固态硬盘的每层Layer上并发执行数据擦除操作,从而快速擦除整个固态硬盘中所保存的数据,以保证固态硬盘所存储数据的安全性;另外,在已擦除数据的物理块上覆盖新数据,这样可进一步安全彻底地销毁固态硬盘中的数据,在短暂时间内完全销毁整盘数据。通过销毁开关发送数据销毁命令,可以在离线状态实现人工启动销毁数据;通过离线计数器超时或离线电源电量低于阈值时发出数据销毁命令,可以在离线状态实现自动销毁数据。
实施例二
本实施例提供是一种擦除固态硬盘SSD中数据的方法,可启动全盘闪存Flash中各层Layer并发进行旁路(Bypass)擦除;并根据电气特性覆盖新数据。参照3,该方法具体包括如下步骤:
步骤201,固态硬盘SSD控制器接收数据销毁命令。
固态硬盘SSD处于在线状态时,通过SSD控制器从主机接收数据销毁命令;或者,固态硬盘SSD处于离线状态时,通过SSD控制器接收由销毁开关发出的数据销毁命令。
为了SSD控制器在离线状态时,能够接收销毁开关发送的数据销毁命令,可以为SSD控制器设置一个电源装置,该电源装置负责在离线状态时唤醒SSD并维持工作时的能量供应,以使SSD能够进行数据擦除操作。
步骤202,将接收的数据销毁命令,分发给全盘闪存芯片的各个层Layer。
步骤203,根据数据销毁命令,在闪存芯片的各层Layer并发进行擦除数据操作。
可以通过旁路(Bypass)擦除,在闪存芯片的各层Layer上并发进行擦除数据操作。
步骤202中,可以针对各闪存芯片Chip内部的每层Layer按照物理块Block号由低至高发送数据销毁命令,由于Flash内Layer间可以并行操作,命令下发的时间间隔与擦除一层Layer中数据的时间不属于一个数量级,所以各层Layer中数据擦除操作,整体而言,步骤203基本是并发操作。
例如,参考图4a,每个闪存芯片Chip容量为2G,SSD固态硬盘包括16Chip,容量为32GB。每个闪存芯片Chip有两层Layer,每层Layer的空间容量为1GB,现有技术Flash擦除速度大约为1.5ms一个Block,一层Layer约8k个块Block。计算可得擦除一个Layer所需时间约为12秒,由于所有Layer并发操作,则擦除一次整盘所需时间约为12秒。在实际操作中,由于并发的处理方式,SSD固态硬盘大小对擦除时间影响非常小,擦除时间主要是由Layer大小决定的,由于数据销毁命令是顺序下发的,所以总的擦除时间为:
命令下发时延*Layer数+擦除一个Layer的时间
由于下发数据销毁命令的时间间隔与擦除周期不在同一数量级,也就是说,下发数据销毁命令的时间间隔相对于擦除周期可忽略不计,故宏观上可以认为,采用本发明的方法擦除一次不同容量的整盘时间为擦除单个Layer的周期,即擦除时间只与Layer大小相关。
步骤204,在已擦除数据的存储介质物理块上覆盖新数据。
为了提高数据销毁的彻底性,在擦除后需要对Flash物理块中的存储单元进行“0”“1”置位。参考图4b,可以在已执行数据擦除的闪存芯片的各平面上并行覆盖预设的数据,例如,在每个面Plane的保留区内保留一个写满“0xA55A”的块,以“0xA55A”作为预设数据进行覆盖。0xA5A5的二进制为“1010 0101 0101 1010”利用Flash的回写(Copyback)特性在每个Plane内并发进行全盘数据覆盖操作,也就是说,当某个Plane内的数据需要被复制到新的位置时,需将其载入到数据寄存器中,然后根据接收到的目标地址将该Plane内的数据固化到Flash上新的位置,这样就省去了整Plane内的数据在寄存器和RAM之间的输入输出过程。通常,一个页(Page)执行回写Copyback操作时延为220u左右,一个Block为64页约需14ms,以一个Plane包含2k个Block为例,大约需要30秒即可对全盘进行一次垃圾数据覆盖。原理同Bypass并发擦除,全盘垃圾覆盖受SSD固态硬盘容量影响很小宏观上可以忽略,只与Plane大小相关,即通过回写在各Plane上并行的覆盖预设数据。
步骤205,再次启动擦除操作,彻底销毁数据。
经过垃圾数据覆盖后再次启动旁路Bypass并行擦除过程,对于敏感数据可以重复前述步骤202-204进行多次擦除。
由上述实施例可知,通过在固态硬盘的每层Layer上并发执行数据擦除操作,从而快速擦除整个固态硬盘中所保存的数据,以保证固态硬盘所存储数据的安全性;另外,在已擦除数据的物理块上覆盖新数据,这样可进一步安全彻底地销毁固态硬盘中的数据,在短暂时间内完全销毁整盘数据。根据需要再次启动擦除,以彻底销毁数据。
实施例三
参照图5,本发明实施例提供一种擦除固态硬盘数据的装置300,包括:
接收单元310,用于接收数据销毁命令;
分发单元320,用于将接收单元310接收的数据销毁命令,分发给闪存芯片的各层;
擦除操作单元330,用于根据分发单元320分发的数据销毁命令,并行擦除闪存芯片各层的数据。
其中,装置300包括多个擦除操作单元330,每个擦除操作单元330负责闪存芯片中一个层的数据擦除,每个擦除操作单元330根据其接收的分发单元320分发的数据销毁命令,各自独立的执行数据销毁错作,擦除闪存芯片中擦除操作单元330负责的层的数据。若固态硬盘在在线状态时,销毁数据未完成,可以记录销毁数据的进展状态,一旦上电继续完成数据销毁,此时,本发明实施例提供的装置300还包括:记录单元340,用于记录在线状态销毁数据的进展状态,当系统重新上电时,激活擦除操作单元330根据记录的进展状态继续进行数据销毁操作。或者,若固态硬盘在在线状态时,销毁数据未完成,可以在离线状态时继续完成数据销毁,此时,本发明实施例提供的装置300还包括:离线电源单元350,用于在离线状态时,为固态硬盘和/或装置300提供工作电源。离线电源单元350能够使固态硬盘/或装置300在离线时继续工作,为装置300中的各个单元提供工作电源,例如使擦除操作单元330继续进行数据销毁操作。通常,离线电源单元350可采用适配的电池或电池组。在固态硬盘处于离线状态,可人工启动销毁数据操作。此时,装置300还包括:手动触发单元360,用于在被触发时,发送数据销毁命令给接收单元310。手动触发单元360可以是手动操作开关,并且,手动触发单元360可以在离线状态或者在线状态发出数据销毁命令。在固态硬盘处于离线状态,可自动启动销毁数据操作。此时,装置300可以还包括:离线计时单元370,用于在固态硬盘离线时开始计时,当计时到达预设的离线时限时,产生数据销毁命令,发送数据销毁命令给接收单元310。离线电源单元350可以进一步在离线时为离线计时单元370供电。或者,装置300可以还包括:电源电量监测单元380,用于监测离线电源单元350的电量,当离线电源电量低于设定的阈值时,产生数据销毁命令,发送数据销毁命令给接收单元310。电源电量监测单元380触发擦除操作单元330进行并行擦除各层数据的操作,直至固态硬盘中数据完全销毁。
为了彻底销毁固态硬盘中的数据,需要在已执行数据擦除的各平面上覆盖预设的新数据。因此,该装置300还包括:数据回写单元390,用于在已执行数据擦除的各平面上并行覆盖预设数据。
本实施例中的装置300,可以作为固态硬盘中的一个模块,与存储芯片一起构成能够快速擦除数据的固态硬盘。
由上述实施例可知,通过在固态硬盘的每层Layer上并发执行数据擦除操作,从而快速擦除整个固态硬盘中所保存的数据,以保证固态硬盘所存储数据的安全性;另外,在已擦除数据的物理块上覆盖新数据,这样可进一步安全彻底地销毁固态硬盘中的数据,在短暂时间内完全销毁整盘数据。通过销毁开关发送数据销毁命令,可以在离线状态实现人工启动销毁数据;通过离线计数器超时或离线电源电量低于阈值时发出数据销毁命令,可以在离线状态实现自动销毁数据。
实施例四
本发明实施例提供一种快速擦除数据的系统400,如图6所示,包括存储装置410及数据擦除装置420,其中,
存储装置410,可由一个或多个闪存芯片组成,用于存储数据;
数据擦除装置420,用于接收数据销毁命令;将接收的数据销毁命令分发给闪存芯片的各层;根据所接收的数据销毁命令并行擦除各层的数据。
数据擦除装置420可以采用如前述实施例三中提供的擦除固态硬盘中数据的装置300,在此不再赘述。
系统400可以是闪存固态硬盘,存储装置410和数据擦除装置420分别是固态硬盘的组成模块。
本发明实施例不局限于SSD盘的数据销毁操作,也可以运用于其他存储介质系统的数据销毁,由存储控制器统一下发销毁数据指令,每个SSD接收到命令后并发的在内部每片Flash上进行数据销毁操作。
综上所述,本发明实施例提供的技术方案中,在存储介质(如固态硬盘、闪存)的每层Layer上并发执行数据擦除操作,从而快速擦除整个存储介质中所保存的数据,以保证固态硬盘所存储数据的安全性;并在已擦除数据的物理块上覆盖新数据,这样可进一步安全彻底地销毁固态硬盘SSD中的数据,在短暂时间内完全销毁整盘数据。并可根据需要再次启动擦除彻底销毁数据。
显然,本领域的技术人员应该明白,上述的本发明实施例中的各单元及各步骤可以用通用的计算装置来实现,它们可以集成在单个的计算装置上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在计算装置,当需要时由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个单元或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。