CN103678162B - 系统数据储存方法、存储器控制器与存储器储存装置 - Google Patents
系统数据储存方法、存储器控制器与存储器储存装置 Download PDFInfo
- Publication number
- CN103678162B CN103678162B CN201210335390.9A CN201210335390A CN103678162B CN 103678162 B CN103678162 B CN 103678162B CN 201210335390 A CN201210335390 A CN 201210335390A CN 103678162 B CN103678162 B CN 103678162B
- Authority
- CN
- China
- Prior art keywords
- physical
- unit
- erasing unit
- data
- physical programming
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种用于存储器储存装置的系统数据储存方法及使用此方法的存储器控制器与存储器储存装置。本方法包括判断系统实体抹除单元的剩余储存空间是否足够储存更新系统数据。本方法还包括,倘若系统实体抹除单元的剩余储存空间不足够储存更新系统数据时,选择一个空的实体抹除单元,将更新系统数据写入至所选择的实体抹除单元的至少一第一实体程序化单元及将虚拟数据写入至所选择的实体抹除单元的第二实体程序化单元中。
Description
技术领域
本发明是有关于一种数据储存方法,尤其是有关于一种用于可复写式非易失性记忆存储模块的系统数据储存方法、存储器控制器与存储器储存装置。
背景技术
数码相机、手机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可复写式非易失性存储器(rewritable non-volatile memory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于可携式电子产品,例如笔记本电脑。固态硬盘就是一种以快速存储器作为储存媒体的储存装置。因此,近年快速存储器产业成为电子产业中相当热门的一环。
快速存储器具有多个实体区块,且每一实体区块具有多个实体页面(physicalpage),其中在实体区块中写入数据时必须依据实体页面的顺序依序地写入数据。此外,已被写入数据的实体页面必需先被抹除后才能再次用于写入数据。特别是,实体区块为抹除的最小单位,并且实体页面为程序化(亦称写入)的最小单元。因此,一般来说,快速存储器的实体区块会以轮替的方式来映射主机系统所存取的逻辑地址,以储存主机系统所写入的数据。为了有效地管理以轮替方式储存数据的实体区块,在快速存储器储存装置在进行初始化时,存储器控制器会依据快速存储器的规格建立相关的管理信息(例如,映射表)并且在存储器储存装置操作时,进行更新与维护。例如,存储器控制器会将此些管理信息记录在一个或数个实体区块(亦称为系统实体区块)中,并且当系统实体区块无储存空间时,存储器控制器会使用另一个空的实体区块作为新的系统实体区块来写入新的管理信息,并且对旧的系统实体区块执行抹除操作。
然而,在存储器储存装置的操作过程中,可能会因为异常断电而造成写入失败并且使得实体区块存有不完整的数据。特别是,倘若所储存的新的管理信息因异常断电存有过多错误比特且旧的管理信息又已被抹除时,存储器控制器无法载入任何管理信息而使得存储器储存装置无法正常地操作。基于上述,如何安全地储存快速存储器的管理信息,是此领域技术人员所致力的目标。
发明内容
本发明提供一种系统数据储存方法,使用此方法的存储器控制器与存储器储存装置,其能够安全地储存系统数据。
本发明一实施例提出一种系统数据储存方法,用于一存储器储存装置,此存储器储存装置具有可复写式非易失性记忆存储模块,此可复写式非易失性记忆存储模块具有多个实体抹除单元,每一实体抹除单元具有多个实体程序化单元,此些实体程序化单元之中的一第一实体抹除单元储存系统数据。本系统数据储存方法包括判断第一实体抹除单元的剩余储存空间是否足够储存更新系统数据。本系统数据储存方法还包括,倘若第一实体抹除单元的剩余储存空间不足够储存更新系统数据时,从此些实体抹除单元之中选择第二实体抹除单元,将更新系统数据写入至第二实体抹除单元的此些实体程序化单元之中的至少一第一实体程序化单元及将虚拟数据写入至第二实体抹除单元的此些实体程序化单元之中的第二实体程序化单元。
在本发明的一实施例中,上述第二实体抹除单元的第二实体程序化单元排列在第二实体抹除单元的第一实体程序化单元之后。
在本发明的一实施例中,上述系统数据储存方法,还包括:在将虚拟数据成功地写入至第二实体抹除单元的该第二实体程序化单元之后,对第一实体抹除单元执行一抹除操作。
在本发明的一实施例中,上述的系统数据储存方法还包括:判断存储器储存装置是否发生一异常断电;倘若存储器储存装置发生该异常断电时,判断第二实体抹除单元的第二实体程序化单元是否已被写入数据;倘若判断第二实体抹除单元的第二实体程序化单元已被写入数据时,对第一实体抹除单元执行抹除操作;以及倘若判断第二实体抹除单元的第二实体程序化单元未被写入数据时,对第二实体抹除单元执行抹除操作。
在本发明的一实施例中,上述判断第二实体抹除单元的第二实体程序化单元是否已被写入数据的步骤包括:从第二实体抹除单元的第二实体程序化单元中读取数据与对应的错误检查与校正码;依据错误检查与校正码判断从第二实体抹除单元的第二实体程序化单元中读取的数据是否为可校正或未存有错误比特;倘若从第二实体抹除单元的第二实体程序化单元中读取的数据非为可校正时,识别第二实体抹除单元的第二实体程序化单元已被写入数据。
在本发明的一实施例中,上述判断第二实体抹除单元的第二实体程序化单元是否已被写入数据的步骤还包括:倘若从第二实体抹除单元的第二实体程序化单元中读取的数据为可校正或未存有错误比特时,判断第二实体抹除单元的第二实体程序化单元的冗余比特区是否存有系统实体抹除单元标记;以及倘若第二实体抹除单元的第二实体程序化单元的冗余比特区存有此系统实体抹除单元标记,识别第二实体抹除单元的第二实体程序化单元已被写入数据。
在本发明的一实施例中,每一实体抹除单元的实体程序化单元被区分为多个下实体程序化单元与多个上实体程序化单元,并且写入数据至此些下实体程序化单元的速度大于写入数据至此些上实体程序化单元的速度。并且,上述第二实体抹除单元的第一实体程序化单元与第二实体程序化单元属于此些下实体程序化单元。
在本发明的一实施例中,每一实体抹除单元的实体程序化单元被区分为多个下实体程序化单元与多个上实体程序化单元,并且写入数据至下实体程序化单元的速度大于写入数据至上实体程序化单元的速度。并且,上述第二实体抹除单元的第一实体程序化单元属于此些下实体程序化单元的其中之一并且第二实体抹除单元的第二实体程序化单元为此些上实体程序化单元之中对应第二实体抹除单元的第一实体程序化单元的上实体程序化单元。其中上述判断第二实体抹除单元的第二实体程序化单元是否已被写入数据的步骤还包括:倘若从第二实体抹除单元的第二实体程序化单元中读取的数据为可校正或未存有错误比特时,判断第二实体抹除单元的第二实体程序化单元的冗余比特区是否存有一系统实体抹除单元标记;以及倘若第二实体抹除单元的第二实体程序化单元的冗余比特区存有系统实体抹除单元标记,识别第二实体抹除单元的第二实体程序化单元已被写入数据。
本发明范例实施例提出一种存储器控制器,用于控制可复写式非易失性记忆存储模块,此可复写式非易失性记忆存储模块具有多个实体抹除单元并且每一实体抹除单元具有多个实体程序化单元。本存储器控制器包括主机接口、存储器接口与存储器管理电路。主机接口用以电性连接至主机系统。存储器接口用以电性连接至可复写式非易失性记忆存储模块。存储器管理电路电性连接至主机接口与存储器接口。在此,存储器管理电路用以将系统数据储存至此些实体程序化单元之中的一第一实体抹除单元。此外,存储器管理电路还用以判断第一实体抹除单元的剩余储存空间是否足够储存一更新系统数据。倘若第一实体抹除单元的剩余储存空间不足够储存更新系统数据时,存储器管理电路还用以从此些实体抹除单元之中选择第二实体抹除单元,将此更新系统数据写入至第二实体抹除单元的实体程序化单元之中的第一实体程序化单元及将虚拟数据写入至第二实体抹除单元的实体程序化单元之中的第二实体程序化单元。
在本发明的一实施例中,上述存储器管理电路还用以在将虚拟数据成功地写入至第二实体抹除单元的第二实体程序化单元之后,对第一实体抹除单元执行抹除操作。
在本发明的一实施例中,上述存储器管理电路还用以判断是否发生一异常断电。倘若发生异常断电时,存储器管理电路还用以判断第二实体抹除单元的第二实体程序化单元是否已被写入数据。倘若第二实体抹除单元的第二实体程序化单元已被写入数据时,存储器管理电路还用以对第一实体抹除单元执行抹除操作。倘若第二实体抹除单元的第二实体程序化单元未被写入数据时,存储器管理电路还用以对第二实体抹除单元执行抹除操作。
在本发明的一实施例中,上述存储器控制器还包括错误检查与校正电路。在此,存储器管理电路从第二实体抹除单元的第二实体程序化单元中读取数据与对应的错误检查与校正码,并且错误检查与校正电路依据此错误检查与校正码判断从第二实体抹除单元的第二实体程序化单元中读取的数据是否为可校正或未存有错误比特。倘若从第二实体抹除单元的第二实体程序化单元中读取的数据非为可校正时,存储器管理电路识别第二实体抹除单元的第二实体程序化单元已被写入数据。
在本发明的一实施例中,倘若从第二实体抹除单元的第二实体程序化单元中读取的数据为可校正或未存有错误比特时,存储器管理电路判断第二实体抹除单元的第二实体程序化单元的冗余比特区是否存有系统实体抹除单元标记。倘若第二实体抹除单元的第二实体程序化单元的冗余比特区存有系统实体抹除单元标记,存储器管理电路识别第二实体抹除单元的第二实体程序化单元已被写入数据。
在本发明的一实施例中,其中每一实体抹除单元的实体程序化单元被区分为多个下实体程序化单元与多个上实体程序化单元,并且写入数据至下实体程序化单元的速度大于写入数据至上实体程序化单元的速度,其中上述第二实体抹除单元的第一实体程序化单元属于下实体程序化单元的其中之一并且上述第二实体抹除单元的第二实体程序化单元为上实体程序化单元之中对应第二实体抹除单元的第一实体程序化单元的上实体程序化单元。此外,倘若从第二实体抹除单元的第二实体程序化单元中读取的数据为可校正或未存有错误比特时,存储器管理电路判断第二实体抹除单元的第二实体程序化单元的冗余比特区是否存有一系统实体抹除单元标记。倘若第二实体抹除单元的第二实体程序化单元的冗余比特区存有系统实体抹除单元标记,存储器管理电路识别第二实体抹除单元的第二实体程序化单元已被写入数据。
本发明的一实施例提出一种存储器储存装置,其包括连接器、可复写式非易失性记忆存储模块与存储器控制器。连接器用以电性连接至主机系统。可复写式非易失性记忆存储模块具有多个实体抹除单元并且每一实体抹除单元具有多个实体程序化单元。存储器控制器电性连接至连接器与可复写式非易失性记忆存储模块。在此,存储器控制器用以将系统数据储存至此些实体程序化单元之中的一第一实体抹除单元。此外,存储器控制器还用以判断第一实体抹除单元的剩余储存空间是否足够储存一更新系统数据。倘若第一实体抹除单元的剩余储存空间不足够储存更新系统数据时,存储器控制器还用以从此些实体抹除单元之中选择第二实体抹除单元,将此更新系统数据写入至第二实体抹除单元的实体程序化单元之中的第一实体程序化单元及将虚拟数据写入至第二实体抹除单元的实体程序化单元之中的第二实体程序化单元。
在本发明的一实施例中,上述存储器控制器还用以在将虚拟数据成功地写入至第二实体抹除单元的第二实体程序化单元之后,对第一实体抹除单元执行抹除操作。
在本发明的一实施例中,上述存储器控制器还用以判断是否发生一异常断电。倘若发生异常断电时,存储器控制器还用以存储器控制器判断第二实体抹除单元的第二实体程序化单元是否已被写入数据。倘若第二实体抹除单元的第二实体程序化单元已被写入数据时,存储器控制器还用以对第一实体抹除单元执行抹除操作。倘若第二实体抹除单元的第二实体程序化单元未被写入数据时,存储器控制器还用以对第二实体抹除单元执行抹除操作。
在本发明的一实施例中,上述存储器控制器还包括错误检查与校正电路。在此,存储器控制器从第二实体抹除单元的第二实体程序化单元中读取数据与对应的错误检查与校正码,并且错误检查与校正电路依据此错误检查与校正码判断从第二实体抹除单元的第二实体程序化单元中读取的数据是否为可校正或未存有错误比特。倘若从第二实体抹除单元的第二实体程序化单元中读取的数据非为可校正时,存储器控制器识别第二实体抹除单元的第二实体程序化单元已被写入数据。
在本发明的一实施例中,倘若从第二实体抹除单元的第二实体程序化单元中读取的数据为可校正或未存有错误比特时,存储器控制器判断第二实体抹除单元的第二实体程序化单元的冗余比特区是否存有系统实体抹除单元标记。倘若第二实体抹除单元的第二实体程序化单元的冗余比特区存有系统实体抹除单元标记,存储器控制器识别第二实体抹除单元的第二实体程序化单元已被写入数据。
在本发明的一实施例中,其中每一实体抹除单元的实体程序化单元被区分为多个下实体程序化单元与多个上实体程序化单元,并且写入数据至下实体程序化单元的速度大于写入数据至上实体程序化单元的速度,其中上述第二实体抹除单元的第一实体程序化单元属于下实体程序化单元的其中之一并且上述第二实体抹除单元的第二实体程序化单元为上实体程序化单元之中对应第二实体抹除单元的第一实体程序化单元的上实体程序化单元。此外,倘若从第二实体抹除单元的第二实体程序化单元中读取的数据为可校正或未存有错误比特时,存储器管理电路判断第二实体抹除单元的第二实体程序化单元的冗余比特区是否存有一系统实体抹除单元标记。倘若第二实体抹除单元的第二实体程序化单元的冗余比特区存有系统实体抹除单元标记,存储器管理电路识别第二实体抹除单元的第二实体程序化单元已被写入数据。
基于上述,本发明范例实施例的系统数据储存方法、存储器控制器与存储器储存装置能够安全地储存系统数据,由此避免系统数据遗失。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是本发明一实施例所示的主机系统与存储器储存装置的示意图;
图2是本发明一实施例所示的电脑、输入/输出装置与存储器储存装置的示意图;
图3是本发明一实施例所示的主机系统与存储器储存装置的示意图;
图4是本发明一实施例所示的存储器储存装置的概要方块图;
图5是本发明一实施例所示的存储器控制器的概要方块图;
图6与图7是本发明一实施例所示出的管理可复写式非易失性记忆存储模块的示意图;
图8是本发明一实施例所示的储存系统数据的示意图;
图9是本发明一实施例所示的储存系统数据的另一示意图;
图10是本发明一实施例所示的系统数据储存方法的流程图;
图11是识别图10所述的第二实体程序化单元是否已被写入数据的详细流程图。
附图标记说明:
1000:主机系统;
1100:电脑;
1102:微处理器;
1104:随机存取存储器(RAM);
1106:输入/输出(I/O)装置;
1108:系统总线;
1110:数据传输接口;
1202:鼠标;
1204:键盘;
1206:显示器;
1208:打印机;
1212:随身碟;
1214:记忆卡;
1216:固态硬盘;
1310:数码相机;
1312:SD卡;
1314:MMC卡;
1316:记忆棒;
1318:CF卡;
1320:嵌入式储存装置;
100:存储器储存装置;
102:连接器;
104:存储器控制器;
106:可复写式非易失性记忆存储模块;
304(0)~304(R):实体抹除单元;
202:存储器管理电路;
206:存储器接口;
252:缓冲存储器;
254:电源管理电路;
256:错误检查与校正电路;
402:数据区;
404:备用区;
406:系统区;
408:取代区;
LBA(0)~LBA(H):逻辑地址;
SD(0)~SD(K):系统数据;
DD:虚拟数据;
S1001、S1003、S1005、S1007、S1009、S1011、S1013、S1015、S1017、S1019、S1101、S1103、S1105、S1107、S1109、S1111、S1113、S1115:系统数据储存方法的步骤。
具体实施方式
一般而言,存储器储存装置(亦称,存储器储存系统)包括可复写式非易失性记忆存储模块与控制器(亦称,控制电路)。通常存储器储存装置是与主机系统一起使用,以使主机系统可将数据写入至存储器储存装置或从存储器储存装置中读取数据。
图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所示的随身碟1212、记忆卡1214或固态硬盘(SolidStateDrive,简称SSD)1216等的可复写式非易失性存储器储存装置。
一般而言,主机系统1000为可实质地与存储器储存装置100配合以储存数据的任意系统。虽然在本实施例中,主机系统1000是以电脑系统来作说明,然而,在本发明另一实施例中主机系统1000可以是数码相机、摄影机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为数码相机(摄影机)1310时,可复写式非易失性存储器储存装置则为其所使用的SD卡1312、MMC卡1314、记忆棒(memory stick)1316、CF卡1318或嵌入式储存装置1320(如图3所示)。嵌入式储存装置1320包括嵌入式多媒体卡(Embedded MMC,简称eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。
图4是本发明一实施例所示的存储器储存装置的概要方块图。
请参照图4,存储器储存装置100包括连接器102、存储器控制器104与可复写式非易失性记忆存储模块106。
在本实施例中,连接器102是兼容于安全数码(Secure Digital,简称SD)接口标准。然而,必须了解的是,本发明不限于此,连接器102亦可以是符合并列先进附件(Parallel Advanced Technology Attachment,PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,简称IEEE)1394标准、高速周边零件连接接口(Peripheral Component Interconnect Express,简称PCI Express)标准、通用串行总线(Universal Serial Bus,简称USB)标准、序列先进附件(Serial AdvancedTechnology Attachment,简称SATA)标准、超高速一代(Ultra High Speed-I,简称UHS-I)接口标准、超高速二代(Ultra High Speed-II,简称UHS-II)接口标准、记忆棒(MemoryStick,简称MS)接口标准、多媒体储存卡(Multi Media Card,简称MMC)接口标准、崁入式多媒体储存卡(Embedded Multimedia Card,简称eMMC)接口标准、通用快速记忆存储(Universal Flash Storage,简称UFS)接口标准、小型快速(Compact Flash,简称CF)接口标准、整合式驱动电子接口(Integrated Device Electronics,简称IDE)标准或其他适合的标准。
存储器控制器104用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令,并且根据主机系统1000的指令在可复写式非易失性记忆存储模块106中进行数据的写入、读取与抹除等操作。
可复写式非易失性记忆存储模块106是电性连接至存储器控制器104,并且用以储存主机系统1000所写入的数据。可复写式非易失性记忆存储模块106具有实体抹除单元304(0)~304(R)。例如,实体抹除单元304(0)~304(R)可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一实体抹除单元分别具有至少一个实体程序化单元,并且属于同一个实体抹除单元的实体程序化单元可被独立地写入且被同时地抹除。例如,每一实体抹除单元是由128个实体程序化单元所组成。然而,必须了解的是,本发明不限于此,每一实体抹除单元亦可由64个实体程序化单元、256个实体程序化单元或其他任意个实体程序化单元所组成。
更详细来说,实体抹除单元为抹除的最小单位。亦即每一实体抹除单元含有最小数目的一并被抹除的记忆胞。实体程序化单元为程序化的最小单元。即实体程序化单元为写入数据的最小单元。
具体来说,依据每个记忆胞可储存的比特数,NAND型快速存储器可区分为单阶储存单元(Single Level Cell,简称SLC)NAND型快速存储器、多阶储存单元(Multi LevelCell,简称MLC)NAND型快速存储器与复数阶储存单元(Trinary Level Cell,简称TLC)NAND型快速存储器,其中SLC NAND型快速存储器的每个记忆胞可储存1个比特的数据(即,“1”与“0”),MLC NAND型快速存储器的每个记忆胞可储存2个比特的数据并且TLC NAND型快速存储器的每个记忆胞可储存3个比特的数据。
在NAND型快速存储器中,实体程序化单元是由排列在同一条字符线上的数个记忆胞所组成。由于SLC NAND型快速存储器的每个记忆胞可储存1个比特的数据,因此,在SLCNAND型快速存储器中,排列在同一条字符线上的数个记忆胞是对应一个实体程序化单元。
相对于SLC NAND型快速存储器来说,MLC NAND型快速存储器的每个记忆胞的浮动闸储存层可储存2个比特的数据,其中每一个储存状态(即,“11”、“10”、“01”与“00”)包括最低有效比特(Least Significant Bit,简称LSB)以及最高有效比特(Most SignificantBit,简称MSB)。例如,储存状态中从左侧算起的第1个比特的值为LSB,而从左侧算起的第2个比特的值为MSB。因此,排列在同一条字符线上的数个记忆胞可组成2个实体程序化单元,其中由此些记忆胞的LSB所组成的实体程序化单元称为下实体程序化单元,并且由此些记忆胞的MSB所组成的实体程序化单元称为上实体程序化单元。特别是,下实体程序化单元的写入速度会快于上实体程序化单元的写入速度,并且当程序化上实体程序化单元发生错误时,下实体程序化单元所储存的数据亦可能因此遗失。
类似地,在TLC NAND型快速存储器中,每个记忆胞可储存3个比特的数据,其中每一个储存状态(即,“111”、“110”、“101”、“100”、“011”、“010”、“001”与“000”)包括左侧算起的第1个比特的LSB、从左侧算起的第2个比特的中间有效比特(Center Significant Bit,简称CSB)以及从左侧算起的第3个比特的MSB。因此,排列在同一条字符线上的数个记忆胞可组成3个实体程序化单元,其中由此些记忆胞的LSB所组成的实体程序化单元称为下实体程序化单元,由此些记忆胞的CSB所组成的实体程序化单元称为中实体程序化单元,并且由此些记忆胞的MSB所组成的实体程序化单元称为上实体程序化单元。同样地,相对于中实体程序化单元与上实体程序化单元来说,下实体程序化单元具有较高的稳定度并且写入数据至下实体程序化单元的速度快于写入数据至中实体程序化单元与上实体程序化单元的速度。
每一实体程序化单元通常包括数据比特区与冗余比特区。数据比特区包含多个实体存取地址用以储存使用者的数据,而冗余比特区用以储存系统的数据(例如,控制信息与错误更正码)。在本实施例中,每一个实体程序化单元的数据比特区中会包含4个实体存取地址,且一个实体存取地址的大小为512比特组(byte)。然而,在其他实施例中,数据比特区中也可包含数目更多或更少的实体存取地址,本发明并不限制实体存取地址的大小以及个数。例如,在一实施例中,实体抹除单元为实体区块,并且实体程序化单元为实体页面或实体扇区,但本发明不以此为限。
在本实施例中,可复写式非易失性记忆存储模块106为多阶储存单元(MultiLevel Cell,简称MLC)反及(NAND)型快速记忆存储模块。然而,本发明不限于此,可复写式非易失性记忆存储模块106亦可是单阶储存单元(Single Level Cell,简称SLC)NAND型快速记忆存储模块、复数阶储存单元(Trinary Level Cell,简称TLC)NAND型快速记忆存储模块、其他快速记忆存储模块或其他具有相同特性的记忆存储模块。
图5是本发明一实施例所示出的存储器控制器的概要方块图。必须了解的是,图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是兼容于SD标准。然而,必须了解的是本发明不限于此,主机接口204亦可以是兼容于PATA标准、IEEE 1394标准、PCIExpress标准、USB标准、SATA标准、UHS-I接口标准、UHS-II接口标准、MS标准、MMC标准、eMMC接口标准、UFS接口标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口206是电性连接至存储器管理电路202并且用以存取可复写式非易失性记忆存储模块106。也就是说,欲写入至可复写式非易失性记忆存储模块106的数据会经由存储器接口206转换为可复写式非易失性记忆存储模块106所能接受的格式。
在本发明一实施例中,存储器控制器104还包括缓冲存储器252、电源管理电路254以及错误检查与校正电路256。
缓冲存储器252是电性连接至存储器管理电路202并且用以暂存来自于主机系统1000的数据与指令或来自于可复写式非易失性记忆存储模块106的数据。
电源管理电路254是电性连接至存储器管理电路202并且用以控制存储器储存装置100的电源。
错误检查与校正电路256是电性连接至存储器管理电路202并且用以执行错误检查与校正程序以确保数据的正确性。在本实施例中,当存储器管理电路202从主机系统1000中接收到写入指令时,错误检查与校正电路256会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,简称ECC Code),并且存储器管理电路202会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性记忆存储模块106中。之后,当存储器管理电路202从可复写式非易失性记忆存储模块106中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路256会依据此错误检查与校正码对所读取的数据执行错误检查与校正程序。具体来说,错误检查与校正电路256会被设计能够校正一数目的错误比特(以下称为最大可校正错误比特数)。例如,最大可校正错误比特数为24。倘若发生在所读取的数据的错误比特的数目不大于24个时,错误检查与校正电路256就能够依据错误检查与校正码将错误比特校正回正确的值。反之,错误检查与校正电路256就会回报错误校正失败且存储器管理电路202会将指示数据已遗失的信息传送给主机系统1000。
图6与图7是本发明一实施例所示出的管理可复写式非易失性记忆存储模块的范例示意图。
必须了解的是,在此描述可复写式非易失性记忆存储模块106的实体抹除单元的操作时,以“提取”、“交换”、“分组”、“轮替”等词来操作实体抹除单元是逻辑上的概念。也就是说,可复写式非易失性记忆存储模块的实体抹除单元的实际位置并未更动,而是逻辑上对可复写式非易失性记忆存储模块的实体抹除单元进行操作。
请参照图6,存储器控制器104(或存储器管理电路202)会将可复写式非易失性记忆存储模块106的实体抹除单元304(0)~304(R)逻辑地分组为(或指派至)数据区(dataarea)402、备用区(spare area)404、系统区(system area)406与取代区(replacementarea)408。
逻辑上属于数据区402与备用区404的实体抹除单元是用以储存来自于主机系统1000的数据。具体来说,数据区402的实体抹除单元(亦称为数据实体抹除单元)是被视为已储存数据的实体抹除单元,而备用区404的实体抹除单元(亦称为备用实体抹除单元)是用以写入新数据的实体抹除单元。例如,当从主机系统1000接收到写入指令与欲写入的数据时,存储器控制器104(或存储器管理电路202)会从备用区404中提取实体抹除单元,整理欲写入的数据并且将数据写入至所提取的实体抹除单元中。
逻辑上属于系统区406的实体抹除单元是用以记录系统数据,其中此系统数据包括关于存储器芯片的制造商与型号、存储器芯片的实体抹除单元数、每一实体抹除单元的实体程序化单元数、映射表等。特别是,当实体抹除单元备用于写入系统数据时,存储器控制器104(或存储器管理电路202)会在此实体抹除单元的实体程序化单元的冗余比特区中记录一个系统实体抹除单元标记,以识别此实体抹除单元是被用于储存系统数据的系统实体抹除单元。值得一提的是,由于对于存储器储存装置100来说,系统数据是相当重要的数据,因此,在可复写式非易失性记忆存储模块106为MLC NAND型快速记忆存储模块或TLCNAND型快速记忆存储模块的实施例中,存储器控制器104(或存储器管理电路202)仅会使用系统实体抹除单元的下实体程序化单元来储存系统数据,以确保数据的可靠度。
逻辑上属于取代区408中的实体抹除单元是替代实体抹除单元。例如,可复写式非易失性记忆存储模块106于出厂时会预留4%的实体抹除单元作为更换使用。也就是说,当数据区402、备用区404或系统区406中的实体抹除单元损毁时,预留于取代区408中的实体抹除单元是用以取代损坏的实体抹除单元(即,坏实体抹除单元(bad block))。因此,倘若取代区408中仍存有正常的实体抹除单元且发生实体抹除单元损毁时,存储器控制器104(或存储器管理电路202)会从取代区408中提取正常的实体抹除单元来更换损毁的实体抹除单元。倘若取代区408中无正常的实体抹除单元且发生实体抹除单元损毁时,则存储器控制器104会将整个存储器储存装置100宣告为写入保护(write protect)状态,而无法再写入数据。
特别是,数据区402、备用区404、系统区406与取代区408的实体抹除单元的数量会依据不同的存储器规格而有所不同。此外,必须了解的是,在存储器储存装置100的操作中,实体抹除单元关联至数据区402、备用区404、系统区406与取代区408的分组关系会动态地变动。例如,当备用区404中的实体抹除单元损坏而被取代区408的实体抹除单元取代时,则原本取代区408的实体抹除单元会被关联至备用区404。
请参照图7,如上所述,数据区402与备用区404的实体抹除单元是以轮替方式来储存主机系统1000所写入的数据。在本实施例中,存储器控制器104(或存储器管理电路202)会配置逻辑地址LBA(0)~LBA(H)给主机系统1000以进行数据的存取。每个逻辑地址是由数个扇区(sector)所组成。例如,在本实施例中,每一逻辑地址是由4个扇区所组成。但本发明不限于此,在本发明另一实施例中,逻辑地址亦可是由8个扇区所组成或是由16个扇区所组成。一般来说,数据区402与备用区404的实体抹除单元的实体程序化单元的数目是大于逻辑地址的数目。
例如,当存储器控制器104(或存储器管理电路202)开始使用实体抹除单元304(0)来储存主机系统1000欲写入的数据时,不管主机系统1000是写入哪个逻辑地址,存储器控制器104(或存储器管理电路202)会将数据写入至实体抹除单元304(0)的实体程序化单元;而当存储器控制器104(或存储器管理电路202)开始使用实体抹除单元304(1)来储存主机系统1000欲写入的数据时,不管主机系统1000是写入哪个逻辑地址,存储器控制器104(或存储器管理电路202)会将数据写入至实体抹除单元304(1)的实体程序化单元中。也就是说,当写入主机系统1000欲写入的数据时,存储器控制器104(或存储器管理电路202)会使用一个实体抹除单元内的实体程序化单元来写入数据,并且当此实体抹除单元内的实体程序化单元被使用完后才会再选择另一个无储存数据的实体抹除单元,并且在新选择的实体抹除单元的实体程序化单元中继续写入数据。
为了识别每个逻辑地址的数据被储存在哪个实体程序化单元,在本实施例中,存储器控制器104(或存储器管理电路202)会记录逻辑地址与实体程序化单元之间的映射关系。并且,当主机系统1000欲在扇区中存取数据时,存储器控制器104(或存储器管理电路202)会确认此扇区所属的逻辑地址,并且在此逻辑地址所映射的实体程序化单元中来存取数据。例如,在本实施例中,存储器控制器104(或存储器管理电路202)会在可复写式非易失性记忆存储模块106的系统区406中储存逻辑地址映射表来记录每一逻辑地址所映射的实体程序化单元,并且当欲存取数据时存储器控制器104(或存储器管理电路202)会将逻辑地址映射表载入至缓冲存储器252来维护。
如前所述,系统区406会初始地配置有实体抹除单元304(N+1)~304(S)作为系统实体抹除单元,以储存系统数据。一般来说,系统区406会记录着多种类的系统数据(例如,映射表、变数表等等),并且每类的系统数据的大小是小于一个实体抹除单元的容量,因此,存储器控制器104(或存储器管理电路202)将不同种类的系统数据分别地储存在不同的系统实体抹除单元并且连续的使用对应的系统实体抹除单元的实体程序化单元来写入更新的系统数据。
图8是本发明一实施例所示的储存系统数据的示意图。
请参照图8,在此,假设实体抹除单元304(N+1)会指派用于储存某类的系统数据并且此系统数据需占用一个实体程序化单元容量。例如,系统数据SD(0)被储存在实体抹除单元304(N+1)的第0实体程序化单元。
当系统数据SD(0)被更新成系统数据SD(1)时,存储器控制器104(或存储器管理电路202)会将系统数据SD(1)依序地写入至实体抹除单元304(N+1)的第1实体程序化单元。以此类推,新的系统数据会被依序地写入至实体抹除单元304(N+1)的实体程序化单元。直到实体抹除单元304(N+1)被写满时,存储器控制器104(或存储器管理电路202)会从备用区404选择一个空的实体抹除单元作为新的系统实体抹除单元来写入更新的系统数据。
图9是本发明一实施例所示的储存系统数据的另一示意图。
请参照图9,当欲写入更新的系统数据SD(K+1)且实体抹除单元304(N+1)已被写满数据(即,系统数据SD(0)~SD(K))时,存储器控制器104(或存储器管理电路202)会从备用区404中选择一个空的实体程序化单元(例如,实体抹除单元304(D+1))并且将系统数据SD(K+1)写入至实体抹除单元304(D+1)的第0个实体程序化单元。
在本实施例中,存储器控制器104(或存储器管理电路202)会在将系统数据SD(K+1)写入至实体抹除单元304(D+1)的第0个实体程序化单元之后,将虚拟数据DD写入至实体抹除单元304(D+1)的实体程序化单元。例如,虚拟数据DD会被写入至排列在实体抹除单元304(D+1)的第0个实体程序化单元之后的下一个实体程序化单元(即,实体抹除单元304(D+1)的第1个实体程序化单元)。在此,虚拟数据DD可以是任意的数据,本发明不对此作限制。
特别是,在将新的系统数据写入至新的系统实体抹除单元的过程中可能会发生异常断电而影响所写入的数据的可靠度。因此,在本实施例中,存储器控制器104(或存储器管理电路202)会在确认虚拟数据已被程序化至新的系统实体抹除单元之后,才会对旧的系统实体抹除单元执行抹除操作。
例如,假设存储器储存装置100未发生异常断电下,在新的系统数据SD(K+1)被顺利写入至实体抹除单元304(D+1)的第0个实体程序化单元且虚拟数据DD被顺利写入至实体抹除单元304(D+1)的第1个实体程序化单元之后,存储器控制器104(或存储器管理电路202)会对实体抹除单元304(N+1)执行抹除操作且将实体抹除单元304(N+1)关联至备用区404。
例如,假设在将新的系统数据SD(K+1)写入至实体抹除单元304(D+1)的第0个实体程序化单元及将虚拟数据DD写入至实体抹除单元304(D+1)的第1个实体程序化单元期间存储器储存装置100发生异常断电。在存储器储存装置100重新上电后,存储器控制器104(或存储器管理电路202)会识别出储存同类的系统数据的旧系统实体抹除单元与新系统实体抹除单元(即,实体抹除单元304(N+1)与实体抹除单元304(D+1))同时存在于系统区406中,并且判断实体抹除单元304(D+1)的第1个实体程序化单元是否已被写入数据。
倘若判断实体抹除单元304(D+1)的第1个实体程序化单元未被写入数据时,存储器控制器104(或存储器管理电路202)会识别新的系统数据SD(K+1)未被正常地写入至实体抹除单元304(D+1),由此对实体抹除单元304(D+1)执行抹除操作且将实体抹除单元304(D+1)关联至备用区404。具体来说,由于可复写式非易失性记忆存储模块106是以实体程序化单元为单位来进行数据的写入,因此,若实体抹除单元304(D+1)的第1个实体程序化单元未被写入数据,表示在实体抹除单元304(D+1)的第0个实体程序化单元上所执行的写入操作可能未完成。在无法确认新的系统数据SD(K+1)是否已被正常写入至实体抹除单元304(D+1)下,在本实施例中,存储器控制器104(或存储器管理电路202)会放弃新的系统数据SD(K+1),继续使用旧的系统数据SD(K)以确保存储器储存装置100可以操作。
倘若判断实体抹除单元304(D+1)的第1个实体程序化单元已被写入数据时,存储器控制器104(或存储器管理电路202)会识别新的系统数据SD(K+1)已被正常地写入至实体抹除单元304(D+1),由此对实体抹除单元304(N+1)执行抹除操作且将实体抹除单元304(N+1)关联至备用区404。具体来说,由于可复写式非易失性记忆存储模块106是以实体程序化单元为单位来进行数据的写入,因此,若实体抹除单元304(D+1)的第1个实体程序化单元已被写入数据,表示在实体抹除单元304(D+1)的第0个实体程序化单元上所执行的写入操作已完成。在已确定新的系统数据SD(K+1)已被正常写入至实体抹除单元304(D+1)下,存储器控制器104(或存储器管理电路202)会抹除储存在实体抹除单元304(N+1)上的旧系统数据,以使实体抹除单元304(N+1)能够再次被利用。
例如,在本实施例中,存储器控制器104(或存储器管理电路202)会根据储存于用以写入虚拟数据的实体程序化单元的冗余比特区的错误检查与校正码以及系统实体抹除单元标记来确认虚拟数据是否已被写入至新的系统实体抹除单元。
具体来说,以图9所示的实施例为例,当在存储器储存装置100重新上电且储存同类的系统数据的旧系统实体抹除单元(即,实体抹除单元304(N+1))与新系统实体抹除单元(即,实体抹除单元304(D+1))同时存在于系统区406中时,存储器控制器104(或存储器管理电路202)会从实体抹除单元304(D+1)的第1个实体程序化单元的数据比特区中读取数据且从实体抹除单元304(D+1)的第1个实体程序化单元的冗余比特区中读取对应的错误检查与校正码。之后,存储器控制器104(或错误检查与校正电路256)会依据所读取的错误检查与校正码对所读取的数据进行错误检查与校正程序。倘若所读取的数据为无法校正(uncorrectable)时,存储器控制器104(或存储器管理电路202)会识别实体抹除单元304(D+1)的第1个实体程序化单元已被写入数据。倘若所读取的数据存有可校正(correctable)的错误比特或未存有错误比特时,则存储器控制器104(或存储器管理电路202)会更进一步判断实体抹除单元304(D+1)的第1个实体程序化单元的冗余比特区是否记录系统实体抹除单元标记。倘若实体抹除单元304(D+1)的第1个实体程序化单元的冗余比特区记录有系统实体抹除单元标记,存储器控制器104(或存储器管理电路202)会识别实体抹除单元304(D+1)的第1个实体程序化单元已被写入数据。反之,倘若实体抹除单元304(D+1)的第1个实体程序化单元的冗余比特区未记录有系统实体抹除单元标记,存储器控制器104(或存储器管理电路202)会识别实体抹除单元304(D+1)的第1个实体程序化单元未被写入数据。
值得一提的是,在本发明一实施例中,存储器控制器104(或存储器管理电路202)仅会使用系统实体抹除单元的下实体程序化单元来储存系统数据,以确保数据的可靠度。例如,实体抹除单元304(D+1)的第0个实体程序化单元与第1个实体程序化单元皆为下实体程序化单元。
然而,对于上述虚拟数据来说,存储器控制器104(或存储器管理电路202)亦可使用对应的上实体程序化单元来储存。例如,在一实施例中,实体抹除单元304(D+1)的第0个实体程序化单元为下实体程序化单元,并且实体抹除单元304(D+1)的第1个实体程序化单元为上实体程序化单元。特别是,在实体抹除单元304(D+1)的第0个实体程序化单元为下实体程序化单元,并且实体抹除单元304(D+1)的第1个实体程序化单元为上实体程序化单元的实施例中,存储器控制器104(或存储器管理电路202)会在当从实体抹除单元304(D+1)的第1个实体程序化单元中所读取的数据存有错误比特但可校正或未存有错误比特时,更进一步判断实体抹除单元304(D+1)的第1个实体程序化单元的冗余比特区是否记录系统实体抹除单元标记。并且,倘若实体抹除单元304(D+1)的第1个实体程序化单元的冗余比特区记录有系统实体抹除单元标记,存储器控制器104(或存储器管理电路202)会识别实体抹除单元304(D+1)的第1个实体程序化单元已被写入数据。反之,倘若实体抹除单元304(D+1)的第1个实体程序化单元的冗余比特区未记录有系统实体抹除单元标记,存储器控制器104(或存储器管理电路202)会识别实体抹除单元304(D+1)的第1个实体程序化单元未被写入数据。
必须了解的是,尽管在图8与图9的实施例中是以储存数据量小于或等于一个实体程序化单元的容量的系统数据为例,但本发明不限于此。在本发明另一实施例中,系统数据的大小亦可是大于一个实体程序化单元的容量,例如,储存系统数据所需的实体程序化单元的数目可以是2个、3个或4个。
图10是本发明一实施例所示的系统数据储存方法的流程图。
请参照图10,当欲将更新系统数据写入至可复写式非易失性记忆存储模块106时,在步骤S1001中,存储器控制器104(或存储器管理电路202)会判断系统区406中对应的实体抹除单元(以下称为第一实体抹除单元)的剩余储存空间是否足够储存此更新系统数据。
倘若第一实体抹除单元的剩余储存空间足够储存此更新系统数据时,在步骤S1003中,存储器控制器104(或存储器管理电路202)会将此更新系统数据写入至第一实体抹除单元中空的实体程序化单元中。之后,图10的流程会被中止。
倘若第一实体抹除单元的剩余储存空间不足够储存此更新系统数据时,在步骤S1005中,存储器控制器104(或存储器管理电路202)会从备用区404中选择一个空的实体抹除单元(以下称为第二实体抹除单元)。然后,在步骤S1007中,存储器控制器104(或存储器管理电路202)会将此更新系统数据写入至第二实体抹除单元的实体程序化单元(以下称为,第一实体程序化单元)。并且,在步骤S1009中,存储器控制器104(或存储器管理电路202)会将虚拟数据写入至第二实体抹除单元的实体程序化单元(以下称为第二实体程序化单元)。
在步骤S1011中,存储器控制器104(或存储器管理电路202)会判断是否发生异常断电。
倘若未发生异常断电时,在步骤S1013中,存储器控制器104(或存储器管理电路202)会对第一实体抹除单元执行抹除操作且将抹除后的第一实体抹除单元关联至备用区404,并且将第二实体抹除单元关联至系统区406。之后,图10的流程会被结束。具体来说,倘若在更新系统数据期间,未发生异常状态,则存储器控制器104(或存储器管理电路202)会识别更新系统数据已被成功写入至新的系统实体抹除单元,而将旧系统实体抹除单元上的数据抹除。
倘若发生异常断电时,在步骤S1015中,存储器控制器104(或存储器管理电路202)会判断第二实体抹除单元的第二实体程序化单元是否已被写入数据。
倘若第二实体抹除单元的第二实体程序化单元已被写入数据时,在步骤S1017中,存储器控制器104(或存储器管理电路202)会对第一实体抹除单元执行抹除操作并且将抹除后的第一实体抹除单元关联至备用区404。也就是说,在此状态下,存储器控制器104(或存储器管理电路202)会识别更新系统数据已被成功地写入至新的系统实体抹除单元,并且将旧系统实体抹除单元上的数据抹除。
倘若第二实体抹除单元的第二实体程序化单元未被写入数据时,在步骤S1019中,存储器控制器104(或存储器管理电路202)会对第二实体抹除单元执行抹除操作并且将抹除后的第二实体抹除单元关联至备用区404。也就是说,在此状态下,存储器控制器104(或存储器管理电路202)会识别更新系统数据未被成功地写入至新的系统实体抹除单元,并且使用旧系统实体抹除单元上的系统数据。
图11是识别图10所述的第二实体程序化单元是否已被写入数据的详细流程图。
请参照图11,在步骤S1101中,存储器控制器104(或存储器管理电路202)会从第二实体抹除单元的第二实体程序化单元中读取数据与对应的错误检查与校正码。
在步骤S1103中,存储器控制器104(或错误检查与校正电路256)会依据所读取的错误检查与校正码判断从第二实体抹除单元的第二实体程序化单元中读取的数据是否为可校正或未存有错误比特。
倘若从第二实体抹除单元的第二实体程序化单元中读取的数据为无法校正或存有错误比特时,在步骤S1105中,存储器控制器104(或存储器管理电路202)会判断第二实体抹除单元的第二实体程序化单元是否为下实体程序化单元。
倘若第二实体抹除单元的第二实体程序化单元为下实体程序化单元时,在步骤S1107中,存储器控制器104(或存储器管理电路202)会识别第二实体抹除单元的第二实体程序化单元已被写入数据。倘若第二实体抹除单元的第二实体程序化单元非为下实体程序化单元时,在步骤S1109中,存储器控制器104(或存储器管理电路202)会识别第二实体抹除单元的第二实体程序化单元未被写入数据。
倘若从第二实体抹除单元的第二实体程序化单元中读取的数据为可校正或未存有错误比特时,在步骤S1111中,存储器控制器104(或存储器管理电路202)会判断第二实体抹除单元的第二实体程序化单元的冗余比特区是否存有系统实体抹除单元标记。
倘若第二实体抹除单元的第二实体程序化单元的冗余比特区存有系统实体抹除单元标记,在步骤S1113中存储器控制器104(或存储器管理电路202)会识别该第二实体抹除单元的第二实体程序化单元已被写入数据。
倘若第二实体抹除单元的第二实体程序化单元的冗余比特区未存有系统实体抹除单元标记,在步骤S1115中存储器控制器104(或存储器管理电路202)会识别该第二实体抹除单元的第二实体程序化单元未被写入数据。
综上所述,本发明一范例实施例的系统数据储存方法、存储器控制器与存储器储存装置会在更换系统实体抹除单元时于新的系统实体抹除单元写入虚拟数据,并且通过识别虚拟数据是否已被写入至新的系统实体抹除单元来确认更新系统数据是否已被成功地写入至新的系统实体抹除单元,由此有效地确保系统数据已被安全地储存。
应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (21)
1.一种系统数据储存方法,用于一存储器储存装置,该存储器储存装置具有一可复写式非易失性记忆存储模块,该可复写式非易失性记忆存储模块具有多个实体抹除单元,每一所述实体抹除单元具有多个实体程序化单元,该些实体抹除单元之中的一第一实体抹除单元储存一系统数据,其特征在于,该系统数据储存方法包括:
判断该第一实体抹除单元的剩余储存空间是否足够储存一更新系统数据;以及
倘若该第一实体抹除单元的剩余储存空间不足够储存该更新系统数据时,从该些实体抹除单元之中选择一第二实体抹除单元,将该更新系统数据写入至该第二实体抹除单元的该些实体程序化单元之中的至少一第一实体程序化单元及将一虚拟数据写入至该第二实体抹除单元的该些实体程序化单元之中的一第二实体程序化单元;
判断该存储器储存装置是否发生一异常断电;
倘若该存储器储存装置发生该异常断电时,判断该第二实体抹除单元的第二实体程序化单元是否已被写入数据;
倘若判断该第二实体抹除单元的第二实体程序化单元已被写入数据时,对该第一实体抹除单元执行一抹除操作;以及
倘若判断该第二实体抹除单元的第二实体程序化单元未被写入数据时,对该第二实体抹除单元执行该抹除操作。
2.根据权利要求1所述的系统数据储存方法,其特征在于,该第二实体抹除单元的第二实体程序化单元排列在该第二实体抹除单元的第一实体程序化单元之后。
3.根据权利要求1所述的系统数据储存方法,其特征在于,还包括:
在将该虚拟数据成功地写入至该第二实体抹除单元的该第二实体程序化单元之后,对该第一实体抹除单元执行一抹除操作。
4.根据权利要求1所述的系统数据储存方法,其特征在于,判断该第二实体抹除单元的第二实体程序化单元是否已被写入数据的步骤包括:
从该第二实体抹除单元的第二实体程序化单元中读取数据与对应的一错误检查与校正码;
依据该错误检查与校正码判断从该第二实体抹除单元的第二实体程序化单元中读取的数据是否为可校正或未存有错误比特;
如果否,识别该第二实体抹除单元的第二实体程序化单元已被写入数据。
5.根据权利要求4所述的系统数据储存方法,其特征在于,判断该第二实体抹除单元的第二实体程序化单元是否已被写入数据的步骤还包括:
倘若从该第二实体抹除单元的第二实体程序化单元中读取的数据为可校正或未存有错误比特时,判断该第二实体抹除单元的第二实体程序化单元的冗余比特区是否存有一系统实体抹除单元标记;以及
倘若该第二实体抹除单元的第二实体程序化单元的冗余比特区存有该系统实体抹除单元标记,识别该第二实体抹除单元的第二实体程序化单元已被写入数据。
6.根据权利要求1所述的系统数据储存方法,其特征在于,每一所述实体抹除单元的该些实体程序化单元被区分为多个下实体程序化单元与多个上实体程序化单元,并且写入数据至该些下实体程序化单元的速度大于写入数据至该些上实体程序化单元的速度,
其中该第二实体抹除单元的该第一实体程序化单元与该第二实体程序化单元属于该些下实体程序化单元。
7.根据权利要求4所述的系统数据储存方法,其特征在于,每一所述实体抹除单元的该些实体程序化单元被区分为多个下实体程序化单元与多个上实体程序化单元,并且写入数据至该些下实体程序化单元的速度大于写入数据至该些上实体程序化单元的速度,
其中该第二实体抹除单元的该第一实体程序化单元属于该些下实体程序化单元的其中之一并且该第二实体抹除单元的该第二实体程序化单元为该些上实体程序化单元之中对应该第二实体抹除单元的该第一实体程序化单元的上实体程序化单元,
其中判断该第二实体抹除单元的第二实体程序化单元是否已被写入数据的步骤还包括:
倘若从该第二实体抹除单元的第二实体程序化单元中读取的数据为可校正或未存有错误比特时,判断该第二实体抹除单元的第二实体程序化单元的冗余比特区是否存有一系统实体抹除单元标记;以及
倘若该第二实体抹除单元的第二实体程序化单元的冗余比特区存有该系统实体抹除单元标记,识别该第二实体抹除单元的第二实体程序化单元已被写入数据。
8.一种存储器控制器,用于控制一可复写式非易失性记忆存储模块,该可复写式非易失性记忆存储模块具有多个实体抹除单元并且每一实体抹除单元具有多个实体程序化单元,其特征在于,该存储器控制器包括:
一主机接口,用以电性连接至一主机系统;
一存储器接口,用以电性连接至该可复写式非易失性记忆存储模块;以及
一存储器管理电路,电性连接至该主机接口与该存储器接口,
其中该存储器管理电路用以将一系统数据储存至该些实体程序化单元之中的一第一实体抹除单元,
其中该存储器管理电路还用以判断该第一实体抹除单元的剩余储存空间是否足够储存一更新系统数据,
倘若该第一实体抹除单元的剩余储存空间不足够储存该更新系统数据时,该存储器管理电路还用以从该些实体抹除单元之中选择一第二实体抹除单元,将该更新系统数据写入至该第二实体抹除单元的该些实体程序化单元之中的至少一第一实体程序化单元及将一虚拟数据写入至该第二实体抹除单元的该些实体程序化单元之中的一第二实体程序化单元,
其中该存储器管理电路还用以判断是否发生一异常断电,
倘若发生该异常断电时,该存储器管理电路还用以判断该第二实体抹除单元的第二实体程序化单元是否已被写入数据,
倘若该第二实体抹除单元的第二实体程序化单元已被写入数据时,该存储器管理电路还用以对该第一实体抹除单元执行一抹除操作,
倘若该第二实体抹除单元的第二实体程序化单元未被写入数据时,该存储器管理电路还用以对该第二实体抹除单元执行该抹除操作。
9.根据权利要求8所述的存储器控制器,其特征在于,该第二实体抹除单元的第二实体程序化单元排列在该第二实体抹除单元的第一实体程序化单元之后。
10.根据权利要求8所述的存储器控制器,其特征在于,该存储器管理电路还用以在将该虚拟数据成功地写入至该第二实体抹除单元的该第二实体程序化单元之后,对该第一实体抹除单元执行一抹除操作。
11.根据权利要求8所述的存储器控制器,其特征在于,还包括一错误检查与校正电路,
其中该存储器管理电路从该第二实体抹除单元的第二实体程序化单元中读取数据与对应的一错误检查与校正码,并且该错误检查与校正电路依据该错误检查与校正码判断从该第二实体抹除单元的第二实体程序化单元中读取的数据是否为可校正或未存有错误比特,
如果否,该存储器管理电路识别该第二实体抹除单元的第二实体程序化单元已被写入数据。
12.根据权利要求11所述的存储器控制器,其特征在于,倘若从该第二实体抹除单元的第二实体程序化单元中读取的数据为可校正或未存有错误比特时,该存储器管理电路判断该第二实体抹除单元的第二实体程序化单元的冗余比特区是否存有一系统实体抹除单元标记,
倘若该第二实体抹除单元的第二实体程序化单元的冗余比特区存有该系统实体抹除单元标记,该存储器管理电路识别该第二实体抹除单元的第二实体程序化单元已被写入数据。
13.根据权利要求8所述的存储器控制器,其特征在于,每一所述实体抹除单元的该些实体程序化单元被区分为多个下实体程序化单元与多个上实体程序化单元,并且写入数据至该些下实体程序化单元的速度大于写入数据至该些上实体程序化单元的速度,
其中该第二实体抹除单元的该第一实体程序化单元与该第二实体程序化单元属于该些下实体程序化单元。
14.根据权利要求11所述的存储器控制器,其特征在于,每一所述实体抹除单元的该些实体程序化单元被区分为多个下实体程序化单元与多个上实体程序化单元,并且写入数据至该些下实体程序化单元的速度大于写入数据至该些上实体程序化单元的速度,
其中该第二实体抹除单元的该第一实体程序化单元属于该些下实体程序化单元的其中之一并且该第二实体抹除单元的该第二实体程序化单元为该些上实体程序化单元之中对应该第二实体抹除单元的该第一实体程序化单元的上实体程序化单元,
其中倘若从该第二实体抹除单元的第二实体程序化单元中读取的数据为可校正或未存有错误比特时,该存储器管理电路判断该第二实体抹除单元的第二实体程序化单元的冗余比特区是否存有一系统实体抹除单元标记,
倘若该第二实体抹除单元的第二实体程序化单元的冗余比特区存有该系统实体抹除单元标记,该存储器管理电路识别该第二实体抹除单元的第二实体程序化单元已被写入数据。
15.一种存储器储存装置,其特征在于,包括:
一连接器,用以电性连接至一主机系统;
一可复写式非易失性记忆存储模块,具有多个实体抹除单元并且每一实体抹除单元具有多个实体程序化单元;以及
一存储器控制器,电性连接至该连接器与该可复写式非易失性记忆存储模块,
其中该存储器控制器用以将一系统数据储存至该些实体程序化单元之中的一第一实体抹除单元,
其中该存储器控制器还用以判断该第一实体抹除单元的剩余储存空间是否足够储存一更新系统数据,
倘若该第一实体抹除单元的剩余储存空间不足够储存该更新系统数据时,该存储器控制器还用以从该些实体抹除单元之中选择一第二实体抹除单元,将该更新系统数据写入至该第二实体抹除单元的该些实体程序化单元之中的至少一第一实体程序化单元及将一虚拟数据写入至该第二实体抹除单元的该些实体程序化单元之中的一第二实体程序化单元,
其中该存储器控制器还用以判断是否发生一异常断电,
倘若发生该异常断电时,该存储器控制器还用以判断该第二实体抹除单元的第二实体程序化单元是否已被写入数据,
倘若该第二实体抹除单元的第二实体程序化单元已被写入数据时,该存储器控制器还用以对该第一实体抹除单元执行一抹除操作,
倘若该第二实体抹除单元的第二实体程序化单元未被写入数据时,该存储器控制器还用以对该第二实体抹除单元执行该抹除操作。
16.根据权利要求15所述的存储器储存装置,其特征在于,该第二实体抹除单元的第二实体程序化单元排列在该第二实体抹除单元的第一实体程序化单元之后。
17.根据权利要求15所述的存储器储存装置,其特征在于,该存储器控制器还用以在将该虚拟数据成功地写入至该第二实体抹除单元的该第二实体程序化单元之后,对该第一实体抹除单元执行一抹除操作。
18.根据权利要求15所述的存储器储存装置,其特征在于,该存储器控制器从该第二实体抹除单元的第二实体程序化单元中读取数据与对应的一错误检查与校正码,并且依据该错误检查与校正码判断从该第二实体抹除单元的第二实体程序化单元中读取的数据是否为可校正或未存有错误比特,
如果否,该存储器控制器识别该第二实体抹除单元的第二实体程序化单元已被写入数据。
19.根据权利要求18所述的存储器储存装置,其特征在于,倘若从该第二实体抹除单元的第二实体程序化单元中读取的数据为可校正或未存有错误比特时,该存储器控制器判断该第二实体抹除单元的第二实体程序化单元的冗余比特区是否存有一系统实体抹除单元标记,
倘若该第二实体抹除单元的第二实体程序化单元的冗余比特区存有该系统实体抹除单元标记,该存储器控制器识别该第二实体抹除单元的第二实体程序化单元已被写入数据。
20.根据权利要求15所述的存储器储存装置,其特征在于,每一所述实体抹除单元的该些实体程序化单元被区分为多个下实体程序化单元与多个上实体程序化单元,并且写入数据至该些下实体程序化单元的速度大于写入数据至该些上实体程序化单元的速度,
其中该第二实体抹除单元的该第一实体程序化单元与该第二实体程序化单元属于该些下实体程序化单元。
21.根据权利要求18项所述的存储器储存装置,其特征在于,每一所述实体抹除单元的该些实体程序化单元被区分为多个下实体程序化单元与多个上实体程序化单元,并且写入数据至该些下实体程序化单元的速度大于写入数据至该些上实体程序化单元的速度,
其中该第二实体抹除单元的该第一实体程序化单元属于该些下实体程序化单元的其中之一并且该第二实体抹除单元的该第二实体程序化单元为该些上实体程序化单元之中对应该第二实体抹除单元的该第一实体程序化单元的上实体程序化单元,
其中倘若从该第二实体抹除单元的第二实体程序化单元中读取的数据为可校正或未存有错误比特时,该存储器控制器判断该第二实体抹除单元的第二实体程序化单元的冗余比特区是否存有一系统实体抹除单元标记,
倘若该第二实体抹除单元的第二实体程序化单元的冗余比特区存有该系统实体抹除单元标记,该存储器控制器识别该第二实体抹除单元的第二实体程序化单元已被写入数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210335390.9A CN103678162B (zh) | 2012-09-12 | 2012-09-12 | 系统数据储存方法、存储器控制器与存储器储存装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210335390.9A CN103678162B (zh) | 2012-09-12 | 2012-09-12 | 系统数据储存方法、存储器控制器与存储器储存装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103678162A CN103678162A (zh) | 2014-03-26 |
CN103678162B true CN103678162B (zh) | 2020-02-28 |
Family
ID=50315791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210335390.9A Active CN103678162B (zh) | 2012-09-12 | 2012-09-12 | 系统数据储存方法、存储器控制器与存储器储存装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103678162B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106843744B (zh) * | 2015-12-03 | 2020-05-26 | 群联电子股份有限公司 | 数据程序化方法与存储器储存装置 |
CN107402716B (zh) * | 2016-05-20 | 2021-06-08 | 合肥兆芯电子有限公司 | 数据写入方法、存储器控制电路单元与存储器储存装置 |
CN108694979B (zh) * | 2017-04-06 | 2023-08-01 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
CN109542335B (zh) * | 2017-09-22 | 2022-04-01 | 慧荣科技股份有限公司 | 快闪存储器的数据内部搬移方法以及使用该方法的装置 |
CN108304044A (zh) * | 2018-02-28 | 2018-07-20 | 郑州云海信息技术有限公司 | 一种nvme硬盘热插拔的设置方法及系统 |
CN111831210B (zh) * | 2019-04-18 | 2023-12-15 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元及存储器存储装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101408864B (zh) * | 2007-10-09 | 2011-08-24 | 群联电子股份有限公司 | 用于断电时的数据保护方法及使用此方法的控制器 |
TWI385519B (zh) * | 2008-04-18 | 2013-02-11 | Phison Electronics Corp | 資料寫入方法及使用此方法的快閃儲存系統與其控制器 |
CN102193871B (zh) * | 2010-03-12 | 2014-08-20 | 群联电子股份有限公司 | 非挥发性存储器存取方法、系统及非挥发性存储器控制器 |
CN102207905A (zh) * | 2010-03-30 | 2011-10-05 | 群联电子股份有限公司 | 系统恢复方法、存储媒体控制器及存储系统 |
-
2012
- 2012-09-12 CN CN201210335390.9A patent/CN103678162B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN103678162A (zh) | 2014-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI516927B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI479314B (zh) | 系統資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
CN104765568B (zh) | 数据存储方法、存储器控制电路单元与存储器存储装置 | |
TWI490871B (zh) | 防止讀取干擾的方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN104866429B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN104765569B (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN105320464B (zh) | 防止读取干扰的方法、存储器控制电路单元与存储装置 | |
CN103678162B (zh) | 系统数据储存方法、存储器控制器与存储器储存装置 | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
CN103593296B (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN105022695A (zh) | 数据存储方法、存储器控制电路单元与存储器存储装置 | |
CN107045890B (zh) | 数据保护方法、存储器控制电路单元及存储器存储装置 | |
CN104252317B (zh) | 数据写入方法、存储器控制器与存储器存储装置 | |
CN102800357B (zh) | 程序码载入与存取方法、存储器控制器与存储器储存装置 | |
CN113138720B (zh) | 数据存储方法、存储器控制电路单元以及存储器存储装置 | |
CN104252600B (zh) | 数据保护方法、存储器控制器与存储器储存装置 | |
CN102543184B (zh) | 存储器储存装置、其存储器控制器与数据写入方法 | |
CN106201932B (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN105335096B (zh) | 数据管理方法、存储器控制电路单元以及存储器存储装置 | |
CN102467459B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN107103930A (zh) | 数据写入方法、内存控制电路单元与内存储存装置 | |
CN103853666B (zh) | 存储器、其存储控制器与数据写入方法 | |
CN103488579A (zh) | 存储器管理方法、存储器控制器与存储器储存装置 | |
CN111858389B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
CN106326131B (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |