首页> 中国专利> 数据抹除方法、存储器控制电路单元及存储器存储装置

数据抹除方法、存储器控制电路单元及存储器存储装置

摘要

本发明提供一种数据抹除方法、存储器控制电路单元及存储器存储装置。本方法包括从主机系统接收指示在第一逻辑子单元上执行的预先定义指令;将第一逻辑子单元所映射的第一实体程序化单元标记为无效数据状态,并且记录对应第一逻辑子单元所映射的第一实体程序化单元所属的第一实体抹除单元的标记,以回应此预先定义指令。还包括:根据此标记选择第一实体抹除单元,将第一实体抹除单元中的有效数据搬移至从闲置区的该些实体抹除单元中所提取的第二实体抹除单元中并且对第一实体抹除单元执行实体抹除。

著录项

  • 公开/公告号CN104732153A

    专利类型发明专利

  • 公开/公告日2015-06-24

    原文格式PDF

  • 申请/专利权人 群联电子股份有限公司;

    申请/专利号CN201310698677.2

  • 发明设计人 叶志刚;

    申请日2013-12-18

  • 分类号G06F21/60(20130101);

  • 代理机构11205 北京同立钧成知识产权代理有限公司;

  • 代理人臧建明

  • 地址 中国台湾苗栗县竹南镇群义路1号

  • 入库时间 2023-12-18 09:28:35

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-01-12

    授权

    授权

  • 2015-07-22

    实质审查的生效 IPC(主分类):G06F21/60 申请日:20131218

    实质审查的生效

  • 2015-06-24

    公开

    公开

说明书

技术领域

本发明是有关于一种用于可复写式非易失性存储器模块的数据抹除方 法、存储器控制电路单元及存储器存储装置。

背景技术

数码相机、手机与MP3在这几年来的成长十分迅速,使得消费者对存储 媒体的需求也急速增加。由于可复写式非易失性存储器(rewritable non-volatile  memory)具有数据非挥发性、省电、体积小、无机械结构、读写速度快等特性, 最适于可携式电子产品,例如笔记型电脑。固态硬盘就是一种以快闪存储器 作为存储媒体的存储器存储装置。因此,近年快闪存储器产业成为电子产业 中相当热门的一环。

快闪存储器模块具有多个实体抹除单元且每一实体抹除单元具有多个实 体程序化单元(physical page),其中在实体抹除单元中写入数据时必须依据实 体程序化单元的顺序写入数据。此外,已被写入数据的实体程序化单元并需 先被抹除后才能再次用于写入数据。特别是,实体抹除单元为抹除的最小单 位,并且实体程序化单元为程序化(也称写入)的最小单元。因此,在快闪存储 器模块的管理中,实体抹除单元会被区分为数据区与闲置区。

数据区的实体抹除单元是用以存储主机系统所存储的数据。具体来说, 存储器存储装置中的存储器控制电路单元会将主机系统所存取的逻辑存取地 址转换为逻辑块的逻辑子单元并且将逻辑块的逻辑子单元映射至数据区的实 体抹除单元的实体程序化单元。也就是说,快闪存储器模块的管理上数据区 的实体抹除单元是被视为已被使用的实体抹除单元(例如,已存储主机系统所 写入的数据)。例如,存储器控制电路单元会使用逻辑转实体地址映射表来记 载逻辑块与数据区的实体抹除单元的映射关系,其中逻辑块中的逻辑子单元 是对应所映射的实体抹除单元的实体程序化单元。

闲置区的实体抹除单元是用以轮替数据区中的实体抹除单元。具体来说, 如上所述,已写入数据的实体抹除单元必须被抹除后才可再次用于写入数据, 因此,闲置区的实体抹除单元是被设计用于写入数据以替换映射逻辑块的实 体抹除单元。基此,在闲置区中的实体抹除单元为空或可使用的实体抹除单 元,即无记录数据或标记为已没用的无效数据。

也就是说,数据区与闲置区的实体抹除单元的实体程序化单元是以轮替 方式来映射逻辑块的逻辑子单元,以存储主机系统所写入的数据。基此,当 主机系统下达删除指令以请求清除逻辑子单元上的数据时,存储器控制电路 单元会将此逻辑子单元(以下称为逻辑子单元数据无效逻辑子单元)所映射的 实体程序化单元标记为无效数据状态,由此完成删除指令。尽管,在存储器 控制电路单元的管理信息中,映射逻辑子单元数据无效逻辑子单元的实体程 序化单元已被标记为无效数据状态,但此实体程序化单元上的数据并未实际 地被抹除,因此,此数据仍可能有被窃取的风险。

发明内容

本发明提供一种数据抹除方法、存储器控制电路单元及存储器存储装置, 其能够避免可复写式非易失性存储器中已被删除的数据被还原与窃取。

本发明的一实施例提供一种用于可复写式非易失性存储器模块的数据抹 除方法,此可复写式非易失性存储器模块包括多个实体抹除单元,且每一实 体抹除单元包括多个实体程序化单元。本数据抹除方法包括:将此些实体抹 除单元至少分组为数据区与闲置区;且配置多个逻辑单元,其中此些逻辑单 元包括多个逻辑子单元。本数据抹除方法包括:从主机系统接收写入指令与 对应此写入指令的第一数据,其中此写入指令请求写入第一数据至此些逻辑 子单元之中的第一逻辑子单元中。本数据抹除方法还包括:从闲置区的实体 抹除单元中提取第一实体抹除单元,根据此写入指令将第一数据程序化至第 一实体抹除单元的第一实体程序化单元中,并且将第一逻辑子单元映射至第 一实体程序化单元。本数据抹除方法也包括:从主机系统接收指示在第一逻 辑子单元上执行的预先定义指令;依据该预先定义指令将第一逻辑子单元所 映射的第一实体程序化单元标记为无效数据状态,并且在对应第一实体程序 化单元的特定区域中记录标记,以回应此预先定义指令。本数据抹除方法还 包括:依据此标记确认对应第一逻辑子单元所映射的第一实体程序化单元所 属的第一实体抹除单元,将第一实体抹除单元中的有效数据搬移至从闲置区 的该些实体抹除单元中所提取的第二实体抹除单元中并且对第一实体抹除单 元执行实体抹除。

在本发明的一实施例中,上述的数据抹除方法,还包括:在对第一实体 抹除单元执行实体抹除之后,从垃圾回收表中删除对应第一实体抹除单元的 标记。

在本发明的一实施例中,上述指示在第一逻辑子单元上执行的预先定义 指令为用于指示第一逻辑子单元上的数据已被删除的整理指令或者用于指示 写入预先定义态样数据至第一逻辑子单元的预先定义写入指令。

在本发明的一实施例中,上述依据标记确认对应第一逻辑子单元所映射 的第一实体程序化单元所属的第一实体抹除单元,将第一实体抹除单元中的 有效数据搬移至从闲置区的实体抹除单元中所提取的第二实体抹除单元中并 且对第一实体抹除单元执行实体抹除的操作是在存储器控制电路单元的背景 执行模式中被执行。

在本发明的一实施例中,上述特定区域为垃圾回收表。

本发明的一实施例提供一种用于控制可复写式非易失性存储器模块的存 储器控制电路单元。此存储器控制电路单元包括主机接口、存储器接口与存 储器管理电路。主机接口用以电性连接至主机系统。存储器接口用以电性连 接至可复写式非易失性存储器模块,其中可复写式非易失性存储器模块具有 多个实体抹除单元并且每一实体抹除单元包括多个实体程序化单元。存储器 管理电路电性连接至主机接口与存储器接口,并且用以将此些实体抹除单元 至少分组为数据区与闲置区。在此,存储器管理电路还用以配置多个逻辑单 元,且此些逻辑单元包括多个逻辑子单元。并且,存储器管理电路还用以从 主机系统接收写入指令与对应此写入指令的第一数据,其中此写入指令请求 写入第一数据至此些逻辑子单元之中的第一逻辑子单元。另外,存储器管理 电路还用以从闲置区的实体抹除单元中提取第一实体抹除单元,根据此写入 指令将第一数据程序化至第一实体抹除单元的第一实体程序化单元,并且将 第一逻辑子单元映射至第一实体程序化单元。此外,存储器管理电路还用以 从主机系统接收指示在第一逻辑子单元上执行的预先定义指令。存储器管理 电路还用以依据该预先定义指令将第一逻辑子单元所映射的第一实体程序化 单元标记为无效数据状态,并且在对应第一实体程序化单元的特定区域中记 录标记,以回应此预先定义指令。再者,存储器管理电路还用以依据此标记 确认对应第一逻辑子单元所映射的第一实体程序化单元所属的第一实体抹除 单元,将第一实体抹除单元中的有效数据搬移至从闲置区的该些实体抹除单 元中所提取的第二实体抹除单元中并且对第一实体抹除单元执行实体抹除。

在本发明的一实施例中,上述存储器管理电路还用以在对第一实体抹除 单元执行实体抹除之后,从垃圾回收表中删除对应第一实体抹除单元的标记。

在本发明的一实施例中,上述的存储器管理电路在背景执行模式中执行 上述依据标记确认对应第一逻辑子单元所映射的第一实体程序化单元所属的 第一实体抹除单元,将第一实体抹除单元中的有效数据搬移至从闲置区的实 体抹除单元中所提取的第二实体抹除单元中并且对第一实体抹除单元执行实 体抹除的操作。

本发明的一实施例提供一种存储器存储装置,其包括连接接口单元、可 复写式非易失性存储器模块与存储器控制电路单元。连接接口单元用以电性 连接至主机系统。可复写式非易失性存储器模块具有多个实体抹除单元,且 每一实体抹除单元包括多个实体程序化单元。存储器控制电路单元电性连接 至连接接口单元与可复写式非易失性存储器模块,并且用以将此些实体抹除 单元至少分组为数据区与闲置区。在此,存储器控制电路单元还用以配置多 个逻辑单元,且此些逻辑单元包括多个逻辑子单元。并且,存储器控制电路 单元还用以从主机系统接收写入指令与对应此写入指令的第一数据,其中此 写入指令请求写入第一数据至此些逻辑子单元之中的第一逻辑子单元。另外, 存储器控制电路单元还用以从闲置区的实体抹除单元中提取第一实体抹除单 元,根据此写入指令将第一数据程序化至第一实体抹除单元的第一实体程序 化单元,并且将第一逻辑子单元映射至第一实体程序化单元。此外,存储器 控制电路单元还用以从主机系统接收指示在第一逻辑子单元上执行的预先定 义指令。存储器控制电路单元还用以依据该预先定义指令将第一逻辑子单元 所映射的第一实体程序化单元标记为无效数据状态,并且在对应第一实体程 序化单元的特定区域中记录标记,以回应此预先定义指令。再者,存储器控 制电路单元还用以依据标记确认对应第一逻辑子单元所映射的第一实体程序 化单元所属的第一实体抹除单元,将第一实体抹除单元中的有效数据搬移至 从闲置区的该些实体抹除单元中所提取的第二实体抹除单元中并且对第一实 体抹除单元执行实体抹除。

在本发明的一实施例中,上述存储器控制电路单元还用以在对第一实体 抹除单元执行实体抹除之后,从垃圾回收表中删除对应第一实体抹除单元的 标记。

在本发明的一实施例中,上述的存储器控制电路单元在背景执行模式中 执行上述依据标记确认对应第一逻辑子单元所映射的第一实体程序化单元所 属的第一实体抹除单元,将第一实体抹除单元中的有效数据搬移至从闲置区 的实体抹除单元中所提取的第二实体抹除单元中并且对第一实体抹除单元执 行实体抹除的操作。

基于上述,本发明实施例中的数据抹除方法、存储器控制电路单元及存 储器存储装置在接收到来自主机系统的预先定义指令后,会将逻辑子单元数 据无效逻辑子单元所映射的实体抹除单元标记在垃圾回收表中,并且通过数 据合并程序实际地抹除已删除的数据,由此避免已删除的数据被还原与窃取。

为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合 附图作详细说明如下。

附图说明

图1是根据本发明一实施例所示出的主机系统与存储器存储装置的示意 图;

图2是根据本发明实施例所示出的电脑、输入/输出装置与存储器存储装 置的示意图;

图3是根据本发明另一实施例所示出的主机系统与存储器存储装置的示 意图;

图4是示出图1所示的存储器存储装置的概要方块图;

图5是根据一实施例所示出的存储器控制电路单元的概要方块图;

图6与图7是根据第一实施例所示出的管理实体块的示意图;

图8~20是根据本发明一实施例所示出的写入数据的示意图;

图21与22是示出执行有效数据合并程序以完成后续写入指令的简化示 意图;

图23与24是根据本发明一实施例示出接收到整理指令后的操作示意图;

图25与图26是根据本发明一实施例所示出的数据抹除方法的流程图。

附图标记说明:

1000:主机系统;

1100:电脑;

1102:微处理器;

1104:随机存取存储器;

1106:输入/输出装置;

1108:系统总线;

1110:数据传输接口;

1202:鼠标;

1204:键盘;

1206:显示器;

1208:打印机;

1212:U盘;

1214:存储卡;

1216:固态硬盘;

1310:数码相机;

1312:SD卡;

1314:MMC卡;

1316:存储棒;

1318:CF卡;

1320:嵌入式存储装置;

100:存储器存储装置;

102:连接接口单元;

104:存储器控制电路单元;

106:可复写式非易失性存储器模块;

202:存储器管理电路;

204:主机接口;

206:存储器接口;

208:缓冲存储器;

212:电源管理电路;

210:错误检查与校正电路;

410(0)~410(N):实体抹除单元;

502:数据区;

504:闲置区;;

506:系统区

508:取代区;

LBA(0)~LBA(H):逻辑单元;

LZ(0)~LZ(M):逻辑区域;

UD1~UD14:数据;

S2501、S2503、S2505、S2601、S2603、S2605、S2607:数据抹除方法 的步骤。

具体实施方式

图1是根据本发明一实施例所示出的主机系统与存储器存储装置的示意 图。

请参照图1,主机系统1000一般包括电脑1100与输入/输出(input/output, 简称I/O)装置1106。电脑1100包括微处理器1102、随机存取存储器(random  access memory,简称RAM)1104、系统总线1108与数据传输接口1110。输 入/输出装置1106包括如图2的鼠标1202、键盘1204、显示器1206与打印 机1208。必须了解的是,图2所示的装置非限制输入/输出装置1106,输入/ 输出装置1106可还包括其他装置。

在本发明实施例中,存储器装置100是通过数据传输接口1110与主机系 统1000的其他元件电性连接。通过微处理器1102、随机存取存储器1104与 输入/输出装置1106的操作可将数据写入至存储器存储装置100或从存储器 存储装置100中读取数据。例如,存储器存储装置100可以是如图2所示的 U盘1212、存储卡1214或固态硬盘(Solid State Drive,简称SSD)1216等的可 复写式非易失性存储器存储装置。

一般而言,主机系统1000为可实质地与存储器存储装置100配合以存储 数据的任意系统。虽然在本实施例中,主机系统1000是以电脑系统来作说明, 然而,在本发明另一实施例中主机系统1000可以是数码相机、摄影机、通信 装置、音频播放器或视频播放器等系统。例如,在主机系统为数码相机(摄影 机)1310时,可复写式非易失性存储器存储装置则为其所使用的SD卡1312、 MMC卡1314、存储棒(memory stick)1316、CF卡1318或嵌入式存储装置 1320(如图3所示)。嵌入式存储装置1320包括嵌入式多媒体卡(Embedded  MMC,简称eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接在主机 系统的基板上。

图4是示出图1所示的存储器存储装置的概要方块图。

请参照图4,存储器存储装置100包括连接接口单元102、存储器控制电 路单元104与可复写式非易失性存储器模块106。

在本实施例中,连接接口单元102是相容于串行高级技术附件(Serial  Advanced Technology Attachment,简称SATA)标准。然而,必须了解的是, 本发明不限于此,连接接口单元102也可以是符合并行高级技术附件(Parellel  Advanced Technology Attachment,简称PATA)标准、电气和电子工程师协会 (Institute of Electrical and Electronic Engineers,IEEE)1394标准、高速外设互 联接口(Peripheral Component Interconnect Express,简称PCI Express)标准、 通用串行总线(Universal Serial Bus,简称USB)标准、超高速一代(Ultra High  Speed-I,简称UHS-I)接口标准、超高速二代(Ultra High Speed-II,简称UHS-II) 接口标准、安全数字(Secure Digital,简称SD)接口标准、存储棒(Memory Stick, 简称MS)接口标准、多媒体存储卡(Multi Media Card,简称MMC)接口标准、 小型快闪(Compact Flash,简称CF)接口标准、整合式驱动电子接口(Integrated  Device Electronics,简称IDE)标准或其他适合的标准。在本实施例中,连接 接口单元可与存储器控制电路单元封装在一个芯片中,或布设在一包含存储 器控制电路单元的芯片外。

存储器控制电路单元104用以执行以硬件形式或固件形式实作的多个逻 辑门或控制指令,并且根据主机系统1000的指令在可复写式非易失性存储器 模块106中进行数据的写入、读取与抹除等操作。

可复写式非易失性存储器模块106是电性连接至存储器控制电路单元 104,并且用以存储主机系统1000所写入的数据。可复写式非易失性存储器 模块106具有实体抹除单元410(0)~410(N)。例如,实体抹除单元410(0)~410(N) 可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一实体抹除单 元分别具有复数个实体程序化单元,其中属于同一个实体抹除单元的实体程 序化单元可被独立地写入且被同时地抹除。然而,必须了解的是,本发明不 限于此,每一实体抹除单元是可由64个实体程序化单元、256个实体程序化 单元或其他任意个实体程序化单元所组成。

更详细来说,实体抹除单元为抹除的最小单位。也即,每一实体抹除单 元含有最小数目之一并被抹除的存储单元。实体程序化单元为程序化的最小 单元。即,实体程序化单元为写入数据的最小单元。每一实体程序化单元通 常包括数据比特区与冗余比特区。数据比特区包含多个实体存取地址用以存 储使用者的数据,而冗余比特区用以存储系统的数据(例如,控制信息与错 误更正码)。在本实施例中,每一个实体程序化单元的数据比特区中会包含 4个实体存取地址,且一个实体存取地址的大小为512字节(byte)。然而,在 其他实施例中,数据比特区中也可包含数目更多或更少的实体存取地址,本 发明并不限制实体存取地址的大小以及个数。例如,在一实施例中,实体抹 除单元为实体块,并且实体程序化单元为实体页面或实体扇区,但本发明不 以此为限。

在本实施例中,可复写式非易失性存储器模块106为多层存储单元(Multi  Level Cell,简称MLC)NAND型快闪存储器模块(即,一个存储单元中可 存储2个比特数据的快闪存储器模块)。然而,本发明不限于此,可复写式 非易失性存储器模块106也可是单层存储单元(Single Level Cell,简称:SLC) NAND型快闪存储器模块(即,一个存储单元中可存储1个比特数据的快闪 存储器模块)、复数层存储单元(Trinary Level Cell,简称TLC)NAND型 快闪存储器模块(即,一个存储单元中可存储3个比特数据的快闪存储器模 块)、其他快闪存储器模块或其他具有相同特性的存储器模块。

图5是根据一实施例所示出的存储器控制电路单元的概要方块图。

请参照图5,存储器控制电路单元104包括存储器管理电路202、主机接 口204与存储器接口206。

存储器管理电路202用以控制存储器控制电路单元104的整体操作。具 体来说,存储器管理电路202具有多个控制指令,并且在存储器存储装置100 操作时,此些控制指令会被执行以进行数据的写入、读取与抹除等操作。

在本实施例中,存储器管理电路202的控制指令是以固件形式来实作。 例如,存储器管理电路202具有微处理器单元(未示出)与只读存储器(未示出), 并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置100操作 时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除 等操作。

在本发明另一实施例中,存储器管理电路202的控制指令也可以程序码 形式存储在可复写式非易失性存储器模块106的特定区域(例如,存储器模块 中专用于存放系统数据的系统区)中。此外,存储器管理电路202具有微处理 器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是, 此只读存储器具有驱动码,并且当存储器控制电路单元104被致能时,微处 理器单元会先执行此驱动码段来将存储在可复写式非易失性存储器模块106 中的控制指令载入至存储器管理电路202的随机存取存储器中。之后,微处 理器单元会运转此些控制指令以进行数据的写入、读取与抹除等操作。

此外,在本发明另一实施例中,存储器管理电路202的控制指令也可以 一硬件形式来实作。例如,存储器管理电路202包括微控制器、存储单元管 理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电 路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电 路与数据处理电路是电性连接至微控制器。其中,存储单元管理电路用以管 理可复写式非易失性存储器模块106的实体抹除单元;存储器写入电路用以 对可复写式非易失性存储器模块106下达写入指令以将数据写入至可复写式 非易失性存储器模块106中;存储器读取电路用以对可复写式非易失性存储 器模块106下达读取指令以从可复写式非易失性存储器模块106中读取数据; 存储器抹除电路用以对可复写式非易失性存储器模块106下达抹除指令以将 数据从可复写式非易失性存储器模块106中抹除;而数据处理电路用以处理 欲写入至可复写式非易失性存储器模块106的数据以及从可复写式非易失性 存储器模块106中读取的数据。

主机接口204是电性连接至存储器管理电路202并且用以接收与识别主 机系统1000所传送的指令与数据。也就是说,主机系统1000所传送的指令 与数据会通过主机接口204来传送至存储器管理电路202。在本实施例中, 主机接口204是相容于SATA标准。然而,必须了解的是本发明不限于此, 主机接口204也可以是相容于PATA标准、IEEE1394标准、PCI Express标 准、USB标准、UHS-I接口标准、UHS-II接口标准、SD标准、MS标准、 MMC标准、CF标准、IDE标准或其他适合的数据传输标准。

存储器接口206是电性连接至存储器管理电路202并且用以存取可复写 式非易失性存储器模块106。也就是说,欲写入至可复写式非易失性存储器 模块106的数据会经由存储器接口206转换为可复写式非易失性存储器模块 106所能接受的格式。

在本发明一实施例中,存储器控制电路单元104还包括缓冲存储器208、 电源管理电路210与错误检查与校正电路212。

缓冲存储器208是电性连接至存储器管理电路202并且用以暂存来自于 主机系统1000的数据与指令或来自于可复写式非易失性存储器模块106的数 据。

电源管理电路210是电性连接至存储器管理电路202并且用以控制存储 器存储装置100的电源。

错误检查与校正电路212是电性连接至存储器管理电路202并且用以执 行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路 202从主机系统1000中接收到写入指令时,错误检查与校正电路212会为对 应此写入指令的数据产生对应的错误检查与校正码(Error Checking and  Correcting Code,简称ECC Code),并且存储器管理电路202会将对应此写入 指令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器模块 106中。之后,当存储器管理电路202从可复写式非易失性存储器模块106 中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与 校正电路212会依据此错误检查与校正码对所读取的数据执行错误检查与校 正程序。

图6与图7是根据第一实施例所示出的管理实体块的示意图。

请参照图6,存储器控制电路单元104(或存储器管理电路202)会将实体 抹除单元410(0)~410(N)逻辑地分组为数据区502、闲置区504、系统区506 与取代区508。

逻辑上属于数据区502与闲置区504的实体抹除单元是用以存储来自于 主机系统1000的数据。具体来说,数据区502的实体抹除单元是被视为已存 储数据的实体抹除单元,而闲置区504的实体抹除单元是用以替换数据区502 的实体抹除单元。也就是说,当从主机系统1000接收到写入指令与欲写入的 数据时,存储器管理电路202会从闲置区504中提取实体抹除单元,并且将 数据写入至所提取的实体抹除单元中,以替换数据区502的实体抹除单元。

逻辑上属于系统区506的实体抹除单元是用以记录系统数据。例如,系 统数据包括关于可复写式非易失性存储器模块的制造商与型号、可复写式非 易失性存储器模块的实体抹除单元数、每一实体抹除单元的实体程序化单元 数等。

逻辑上属于取代区508中的实体抹除单元是用于坏实体抹除单元取代程 序,以取代损坏的实体抹除单元。具体来说,倘若取代区508中仍存有正常 的实体抹除单元并且数据区502的实体抹除单元损坏时,存储器管理电路202 会从取代区508中提取正常的实体抹除单元来更换损坏的实体抹除单元。

特别是,数据区502、闲置区504、系统区506与取代区508的实体抹除 单元的数量会依据不同的存储器规格而有所不同。此外,必须了解的是,在 存储器存储装置100的操作中,实体抹除单元关联至数据区502、闲置区504、 系统区506与取代区508的分组关系会动态地变动。例如,当闲置区504中 的实体抹除单元损坏而被取代区508的实体抹除单元取代时,则原本取代区 508的实体抹除单元会被关联至闲置区504。

请参照图7,存储器控制电路单元104(或存储器管理电路202)会配置逻 辑单元LBA(0)~LBA(H)以映射数据区502的实体抹除单元,其中每一逻辑单 元具有多个逻辑子单元以映射对应的实体抹除单元的实体程序化单元。并且, 当主机系统1000欲写入数据至逻辑单元或更新存储在逻辑单元中的数据时, 存储器控制电路单元104(或存储器管理电路202)会从闲置区504中提取一个 实体抹除单元来写入数据,以轮替数据区502的实体抹除单元。在本实施例 中,逻辑子单元可以是逻辑页面或逻辑扇区。

为了识别数据每个逻辑单元的数据被存储在哪个实体抹除单元,在本实 施例中,存储器控制电路单元104(或存储器管理电路202)会记录逻辑单元 与实体抹除单元之间的映射。并且,当主机系统1000欲在逻辑子单元中存取 数据时,存储器控制电路单元104(或存储器管理电路202)会确认此逻辑子单 元所属的逻辑单元,并且在此逻辑单元所映射的实体抹除单元中来存取数据。 例如,在本实施例中,存储器控制电路单元104(或存储器管理电路202)会在 可复写式非易失性存储器模块106中存储逻辑转实体地址映射表来记录每一 逻辑单元所映射的实体抹除单元,并且当欲存取数据时存储器控制电路单元 104(或存储器管理电路202)会将逻辑转实体地址映射表载入至缓冲存储器 208来维护。

值得一提的是,由于缓冲存储器208的容量有限无法存储记录所有逻辑 单元的映射关系的映射表,因此,在本实施例中,存储器控制电路单元104 (或存储器管理电路202)会将逻辑单元LBA(0)~LBA(H)分组为多个逻辑区 域LZ(0)~LZ(M),并且为每一逻辑区域配置一个逻辑转实体地址映射表。特 别是,当存储器控制电路单元104(或存储器管理电路202)欲更新某个逻辑单 元的映射时,对应此逻辑单元所属的逻辑区域的逻辑转实体地址映射表会被 载入至缓冲存储器208来被更新。

如上所述,在本实施例中,存储器存储装置100的可复写式非易失性存 储器模块106是以页面为基础来进行管理,因此,在执行写入指令时,不管 目前数据是要写入至哪个逻辑单元的逻辑子单元,存储器控制电路单元104 (或存储器管理电路202)皆会以一个实体程序化单元接续一个实体程序化 单元的方式来写入数据(以下也称为随机写入机制)。具体来说,存储器控制电 路单元104(或存储器管理电路202)会从闲置区504中提取一个空的实体抹 除单元作为目前使用的实体抹除单元来写入数据。并且,当此目前使用的实 体抹除单元已被写满时,存储器控制电路单元104(或存储器管理电路202)会 再从闲置区504中提取另一个空的实体抹除单元作为目前使用的实体抹除单 元,以继续写入对应来自于主机系统1000的写入指令的数据。特别是,为了 避免闲置区504的实体抹除单元被耗尽,当存储器控制电路单元104(或存储 器管理电路202)欲从闲置区504中提取实体抹除单元且闲置区504的实体抹 除单元的数目下降到所设定的垃圾回收门槛值时,存储器控制电路单元 104(或存储器管理电路202)会先执行数据合并程序,来使数据区502的至少 一个实体抹除单元中的数据成为无效数据,并且将数据区502中所存储的数 据皆为无效数据的实体抹除单元关联回闲置区504,以致于闲置区504的实 体抹除单元的数目大于所设定的垃圾回收门槛值。例如,在执行数据合并程 序时,存储器控制电路单元104(或存储器管理电路202)至少需使用一个空的 实体抹除单元,因此,垃圾回收门槛值至少会被设定为大于1的数值。

图8~20是根据本发明一实施例所示出的写入数据的示意图。

请参照图8,为方便说明,在此假设数据区502初始地未有映射逻辑单 元的实体抹除单元(即,存储器存储装置100在开卡后尚未写入过使用者数 据),闲置区504具有5个实体抹除单元,每一实体抹除单元具有3个实体程 序化单元,欲写入至每一实体抹除单元的数据必须依照实体程序化单元的顺 序来被写入。此外假设存储器控制电路单元104(或存储器管理电路202)会配 置3个逻辑单元以供主机系统1000存取,并且设定垃圾回收门槛值为1其中 每个逻辑单元具有3个逻辑子单元且每一个逻辑子单元的容量等于1实体抹 除单元的容量。

请参照图9,假设欲程序化数据UD1并且数据UD1是属于逻辑单元 LBA(0)的第1个逻辑子单元时,存储器控制电路单元104(或存储器管理电路 202)会从闲置区504中提取实体抹除单元410(0),下达程序化指令以将此数 据UD1写入至实体抹除单元410(0)的第0个实体程序化单元并且将实体抹除 单元410(0)关联至数据区502。

请参照图10,接续图9,假设欲再程序化数据UD2并且数据UD2是属 于逻辑单元LBA(1)的第0个逻辑子单元时,存储器控制电路单元104(或存储 器管理电路202)会下达程序化指令以将此数据UD2写入至实体抹除单元 410(0)的第1个实体程序化单元。

请参照图11,接续图10,假设欲再程序化数据UD3并且数据UD3是属 于逻辑单元LBA(2)的第1个逻辑子单元时,存储器控制电路单元104(或存储 器管理电路202)会下达程序化指令以将此数据UD3写入至实体抹除单元 410(0)的第2个实体程序化单元。

请参照图12,接续图11,假设欲再程序化数据UD4并且数据UD4是属 于逻辑单元LBA(0)的第0个逻辑子单元时,由于实体抹除单元410(0)已无存 储空间,因此,存储器控制电路单元104(或存储器管理电路202)会从闲置区 504中提取实体抹除单元410(1),下达程序化指令以将此数据UD4写入至实 体抹除单元410(1)的第0个实体程序化单元并且将实体抹除单元410(1)关联 至数据区502。

请参照图13,接续图12,假设欲再程序化数据UD5并且数据UD5是属 于逻辑单元LBA(1)的第1个逻辑子单元时,存储器控制电路单元104(或存储 器管理电路202)会下达程序化指令以将此数据UD5写入至实体抹除单元 410(1)的第1个实体程序化单元。

请参照图14,接续图13,假设欲再程序化数据UD6并且数据UD6是属 于逻辑单元LBA(0)的第2个逻辑子单元时,存储器控制电路单元104(或存储 器管理电路202)会下达程序化指令以将此数据UD6写入至实体抹除单元 410(1)的第2个实体程序化单元。

请参照图15,接续图14,假设欲再程序化数据UD7并且数据UD7是属 于逻辑单元LBA(2)的第0个逻辑子单元时,由于实体抹除单元410(1)已无存 储空间,因此,存储器控制电路单元104(或存储器管理电路202)会从闲置区 504中提取实体抹除单元410(2),下达程序化指令以将此数据UD7写入至实 体抹除单元410(2)的第0个实体程序化单元并且将实体抹除单元410(2)关联 至数据区502。

请参照图16,接续图15,假设欲再程序化数据UD8并且数据UD8是属 于逻辑单元LBA(1)的第2个逻辑子单元时,存储器控制电路单元104(或存储 器管理电路202)会下达程序化指令以将此数据UD8写入至实体抹除单元 410(2)的第1个实体程序化单元。

请参照图17,接续图16,假设欲再程序化数据UD9并且数据UD9是属 于逻辑单元LBA(2)的第2个逻辑子单元时,存储器控制电路单元104(或存储 器管理电路202)会下达程序化指令以将此数据UD9写入至实体抹除单元 410(2)的第2个实体程序化单元。

请参照图18,接续图17,假设欲再程序化数据UD10并且数据UD10是 属于逻辑单元LBA(1)的第2个逻辑子单元时,由于实体抹除单元410(2)已无 存储空间,因此,存储器控制电路单元104(或存储器管理电路202)会从闲置 区504中提取实体抹除单元410(3),下达程序化指令以将此数据UD10写入 至实体抹除单元410(3)的第0个实体程序化单元并且将实体抹除单元410(3) 关联至数据区502,其中实体抹除单元410(2)的第1个实体程序化单元会被标 记为无效数据状态(如虚线所示)。

请参照图19,接续图18,假设欲再程序化数据UD11并且数据UD11是 属于逻辑单元LBA(2)的第2个逻辑子单元时,存储器控制电路单元104(或存 储器管理电路202)会下达程序化指令以将此数据UD11写入至实体抹除单元 410(3)的第1个实体程序化单元,其中实体抹除单元410(2)的第2个实体程序 化单元会被标记为无效数据状态(如虚线所示)。

请参照图20,接续图19,假设欲再程序化数据UD12并且数据UD12是 属于逻辑单元LBA(1)的第1个逻辑子单元时,存储器控制电路单元104(或存 储器管理电路202)会下达程序化指令以将此数据UD12写入至实体抹除单元 410(3)的第2个实体程序化单元,其中实体抹除单元410(1)的第1个实体程序 化单元会被标记为无效数据状态(如虚线所示)。

以此类推,不论主机系统1000欲将数据存储至哪个逻辑单元的逻辑子单 元中,存储器控制电路单元104(或存储器管理电路202)会依序地将主机系统 1000欲存储的数据写入目前使用的实体抹除单元中。特别是,当闲置区504 的实体抹除单元的数目不大于垃圾回收门槛值时,存储器控制电路单元 104(或存储器管理电路202)会在执行写入指令时一并执行数据合并程序,以 防止闲置区的实体抹除单元被用尽。

图21与22是示出执行有效数据合并程序以完成后续写入指令的简化示 意图。

接续图20,假设欲再程序化数据UD13与UD14并且数据UD13与UD14 是属于逻辑单元LBA(2)的第0与第1个逻辑子单元时,由于实体抹除单元 410(3)已无存储空间,因此,存储器控制电路单元104(或存储器管理电路202) 需要从闲置区504中提取空的实体抹除单元。然而,此时,闲置区504的实 体抹除单元的数目是不大于垃圾回收门槛值,因此,存储器控制电路单元 104(或存储器管理电路202)必须先执行数据合并程序。

请参照图21,例如,存储器控制电路单元104(或存储器管理电路202) 从闲置区504中提取实体抹除单元410(4),将实体抹除单元410(1)中的有效 数据(即,数据UD4与UD6)和实体抹除单元410(2)中的有效数据(即,数据 UD7)复制到实体抹除单元410(4),将实体抹除单元410(4)关联至数据区502, 将实体抹除单元410(1)的第0与1个实体程序化单元和实体抹除单元410(2) 的第0实体程序化单元标记为无效,对仅存储无效数据的实体抹除单元(即, 实体抹除单元410(1)与实体抹除单元410(2))执行实体抹除,并且将抹除后的 实体抹除单元关联回闲置区504。此时,闲置区504的实体抹除单元的数目 会回复为2(大于垃圾回收门槛值)。

请参照图22,之后,存储器控制电路单元104(或存储器管理电路202) 会从闲置区504中提取实体抹除单元410(1),下达程序化指令以将数据UD13 与数据UD14写入至实体抹除单元410(1)的第0与第1个实体程序化单元并 且将实体抹除单元410(1)关联至数据区502,其中逻辑单元LBA(2)的第0与 第1个逻辑子单元所映射的实体程序化单元(即,实体抹除单元410(0)的第2 个实体程序化单元以及实体抹除单元410(4)的第2个实体程序化单元)会被标 记为无效数据状态。

在本实施中,存储器控制电路单元104(或存储器管理电路202)会判断是 否从主机系统1000接收到用于在一逻辑子单元上执行的预先定义指令。特别 是,当判断接收到此预先定义指令时,存储器控制电路单元104(或存储器管 理电路202)会对应此逻辑子单元所映射的实体抹除单元的特殊区域记录一标 记,并且之后根据此标记对此逻辑子单元所映射的实体抹除单元执行上述数 据合并程序,由此对此实体抹除单元执行实体抹除,以致于属于此逻辑子单 元的数据可以完全地从存储器存储装置100中被移除。例如,当判断接收到 此预先定义指令时,存储器控制电路单元104(或存储器管理电路202)会在一 垃圾回收表中记录此逻辑子单元所映射的实体抹除单元,并且之后根据此垃 圾回收表对此逻辑子单元所映射的实体抹除单元执行上述数据合并程序。

例如,在一实施例中,垃圾回收表可以是由多个表所组成,其中一个表 先记录逻辑子单元与实体程序化单元之间的映射关系,并且另一个表记录实 体程序化单元与实体抹除单元的从属关系。基此,存储器控制电路单元104(或 存储器管理电路202)可通过垃圾回收表识别映射一个逻辑子单元的实体程序 化单元所属的实体抹除单元。

例如,在本发明一实施例中,上述的预先定义指令为整理(Trim)指令用以 告知哪些数据已不再被使用。必须了解的是,在另一实施例中,预先定义指 令也可为删除指令(delete command)、移除指令(remove command)、批次程序 快速复制指令(robocopy command)、写入特定数据指令或其他用以指示哪些数 据已不再使用的指令。具体来说,存储器控制电路单元104(或存储器管理电 路202)可根据主机系统1000所下达的整理指令来识别逻辑子单元之中的数 据无效逻辑子单元并且将数据无效逻辑子单元所映射的实体程序化单元识别 为空的。在此,数据无效逻辑子单元是指存储的其上的数据已被主机系统1000 通过文件分配表(File Allocation Table)所删除的逻辑子单元并且主机系统 1000可通过文件系统确认此逻辑子单元上的数据不再被考虑使用且此逻辑子 单元可被写入新数据。在本实施例中,文件系统可例如是文件分配表(File  Allocation Table)、窗口操作系统的NTFS、麦金塔操作系统(OS X)的HFS+、 Linux的Ext等。在本实施例中,当主机系统1000的操作系统为微软窗口7 时,主机系统1000会通过整理指令来告知存储器存储装置100哪些逻辑子单 元上的数据已为无效数据。也就是说,在主机系统1000将数据删除并通过整 理指令告知存储器存储装置100之后,存储器控制电路单元104(或存储器管 理电路202)会将此逻辑子单元所映射的实体抹除单元记录在垃圾回收表中。 之后,存储器控制电路单元104(或存储器管理电路202)会根据垃圾回收表对 此逻辑子单元所映射的实体抹除单元执行数据合并程序来实际地抹除其上的 数据,以避免被主机认知为已删除的数据仍存在可复写式非易失性存储器模 块106中,而有机会被窃取。

图23与24是根据本发明一实施例示出接收到整理指令后的操作示意图。

请参照图23,假设在如图22的状态下,存储器存储装置100接收到整 理指令且此整理指令告知在文件分配表中逻辑单元LBA(0)的第0逻辑子单元 的数据已为无效数据时,存储器控制电路单元104(或存储器管理电路202)会 将逻辑单元LBA(0)的第0逻辑子单元所映射的实体程序化单元(即,实体抹 除单元410(4)的第0个实体程序化单元)标记为无效状态,并且在垃圾回收表 中记录对应实体抹除单元410(4)的标记,以回应所接收的整理指令。此外, 例如,在另一实施例中,存储器控制电路单元104(或存储器管理电路202)还 会在逻辑转实体地址映射表中删除逻辑单元LBA(0)的第0逻辑子单元的映射 关系。

请参照图24,在将实体抹除单元410(4)的第0个实体程序化单元标记为 无效状态之后,例如,存储器控制电路单元104(或存储器管理电路202)会闲 置区504中提取实体抹抹除单元410(2),将实体抹除单元410(4)中的有效数 据(即,数据UD6)和实体抹除单元410(0)中的有效数据(即,数据UD1与数据 UD2)复制到实体抹抹除单元410(2),将实体抹抹除单元410(2)关联至数据区 502,将实体抹除单元410(0)的第0与1个实体程序化单元和实体抹除单元 410(4)的第1个实体程序化单元标记为无效,对仅存储无效数据的实体抹除单 元410(0)与实体抹除单元410(4)执行实体抹除,并且将抹除后的实体抹除单 元关联回闲置区504。

值得一提的是,通过执行数据合并程序来对已无效的数据进行实际地抹 除的操作(如图24所示的操作)可以是在接收到整理指令时立即执行,或者是 在一背景执行模式中执行。具体来说,当存储器存储装置100接收到来自主 机系统1000的指令时,存储器控制电路单元104(或存储器管理电路202)需立 即执行并且回应主机系统1000,以避免超时。在此,为回应主机系统1000 所执行的程序的模式,称为前景执行模式。相对地,存储器控制电路单元 104(或存储器管理电路202)也可在闲置下(即,未收到主机系统1000所传送 的指令)操作,例如,搬移数据等。在此,非为回应主机系统1000所执行的 程序的模式,称为背景执行模式。

例如,在一实施例中,存储器控制电路单元104(或存储器管理电路202) 会传送确认信息给主机系统1000,以表示已完成对应此整理指令的操作。基 此,在一实施例中,存储器控制电路单元104(或存储器管理电路202)可以在 传送此确认信息之前,执行如图24所示的操作,即,在前景执行模式中来执 行数据合并程序以将主机系统1000欲删除的数据实际地抹除。或者,在另一 实施例中,存储器控制电路单元104(或存储器管理电路202)可以在传送此确 认信息之后,执行如图24所示的操作,即,在背景执行模式中执行数据合并 程序以将主机系统1000欲删除的数据实际地抹除。

此外,值得一提的是,在本实施例中,存储器控制电路单元104(或存储 器管理电路202)是在识别接收到整理指令时,通过执行数据合并程序以将主 机系统1000欲删除的数据实际地抹除。然而,本发明不限于此,在本发明另 一实施例中,存储器控制电路单元104(或存储器管理电路202)也可在从主机 系统1000中接收到指示写入预先定义态样的数据至逻辑子单元的写入指令 (也称为预先定义写入指令)时,通过执行数据合并程序以将此逻辑子单元的数 据实际地抹除。在此,预先定义态样的数据可根据使用者的需求自行设定, 在此不作限制。

例如,在本发明一实施例中,主机系统1000预先安装有安全抹除应用程 序,并且当使用者使用此安全抹除应用程序来删除数据时,安全抹除应用程 序通过主机系统1000的操作系统发送预先定义指令(例如,整理指令或指示 写入预先定义态样的数据至逻辑子单元的写入指令)给存储器存储装置100。

图25与图26是根据本发明一实施例所示出的数据抹除方法的流程图。

请参照图25,步骤S2501中,存储器控制电路单元104(或存储器管理电 路202)会将可复写式非易失性存储器模块106的实体抹除单元至少分组为数 据区502与闲置区504,并且配置具有多个逻辑子单元的多个逻辑单元以供 主机系统1000存取。

在步骤S2503中,存储器控制电路单元104(或存储器管理电路202)从主 机系统1000接收写入指令与对应此写入指令的数据(以下称为第一数据),其 中此写入指令请求写入此第一数据至逻辑子单元之中其中一个逻辑子单元 (以下称为第一逻辑子单元)。

在步骤S2505中,存储器控制电路单元104(或存储器管理电路202)从闲 置区504的实体抹除单元中提取一个实体抹除单元(以下称为第一实体抹除单 元),根据此写入指令将第一数据程序化至第一实体抹除单元的实体程序化单 元(以下称为第一实体程序化单元),并且将该第一逻辑子单元映射至第一实体 程序化单元。

请参照图26,在步骤S2601中,存储器控制电路单元104(或存储器管理 电路202)从主机系统100接收到指示在第一逻辑子单元上执行的预先定义指 令。

在步骤S2603中,存储器控制电路单元104(或存储器管理电路202)将第 一逻辑子单元所映射的第一实体程序化单元标记为一无效数据状态,并且在 垃圾回收表中记录对应第一逻辑子单元所映射的第一实体程序化单元所属的 第一实体抹除单元的一标记,以回应此预先定义指令。

然后,在步骤S2605中,存储器控制电路单元104(或存储器管理电路202) 根据垃圾回收表的记录选择第一实体抹除单元,将第一实体抹除单元中的有 效数据搬移至从闲置区504的实体抹除单元中提取的第二实体抹除单元中并 且对第一实体抹除单元执行实体抹除。

最后,在步骤S2607中,存储器控制电路单元104(或存储器管理电路202) 从垃圾回收表中删除对应第一实体抹除单元的标记。

综上所述,本发明实施例所提供的数据抹除方法、存储器控制电路单元 以及存储器存储装置会根据主机系统的请求,在快闪存储器模块中实际地抹 除欲删除的数据,由此避免数据被还原或窃取。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非 对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的 普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进 行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或 者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范 围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号