数据储存装置与数据处理方法

文档序号:1904101 发布日期:2021-11-30 浏览:1次 >En<

阅读说明:本技术 数据储存装置与数据处理方法 (Data storage device and data processing method ) 是由 邱慎廷 于 2020-06-19 设计创作,主要内容包括:本发明涉及一种存储器控制器,耦接一存储器装置,用以控制存储器装置的存取操作,包括一数据保护引擎以及一微处理器。数据保护引擎用以根据接收自一主机装置的数据产生对应的保护资讯。微处理器响应于将数据写入存储器装置之一或多个写入操作检测存储器装置的一状态,根据状态决定数据保护引擎于产生保护资讯时是否需排除数据的一部分,并产生一决定结果,以及将保护资讯与决定结果一并储存于存储器装置,其中决定结果指示出保护资讯是根据数据的哪些部分被产生。(The invention relates to a memory controller, which is coupled with a memory device and is used for controlling the access operation of the memory device. The data protection engine is used for generating corresponding protection information according to data received from a host device. The microprocessor detects a state of the memory device in response to one or more write operations to write data into the memory device, determines whether the data protection engine is to exclude a portion of the data when generating the protection information based on the state, and generates a determination result indicating which portions of the data the protection information is generated based on, and stores the protection information and the determination result in the memory device.)

数据储存装置与数据处理方法

技术领域

本发明有关于一种数据处理方法,尤指一种可有效保护存储器装置储存的数据的数据处理方法。

背景技术

随着数据储存装置的科技在近几年快速地成长,许多数据储存装置,如符合安全数位(Secure Digital,缩写为SD)/多媒体卡(Multi Media Card,缩写为MMC)规格、复合式快闪存储器(Compact flash,缩写为CF)规格、记忆条(Memory Stick,缩写为MS)规格与极数位(Extreme Digital,缩写为XD)规格的记忆卡、固态硬碟、嵌入式多媒体记忆卡(embedded Multi Media Card,缩写为eMMC)以及通用快闪存储器储存(Universal FlashStorage,缩写为UFS)已经广泛地被应用在多种用途上。因此,在这些数据储存装置上,有效率的存取控制也变成一个重要的议题。

为了提高数据储存装置的存取效能,并保护存储器装置所储存的数据,本发明提出一种新颖的数据处理方法,可有效地保护存储器装置所储存的数据,并且可避免因错误保护机制的实施而降低数据储存装置的存取效能。

发明内容

本发明之一目的在于有效地保护存储器装置所储存的数据,并且可避免因错误保护机制的实施而降低数据储存装置的存取效能。

根据本发明的一实施例,一种存储器控制器,耦接一存储器装置,用以控制存储器装置的存取操作,包括一数据保护引擎以及一微处理器。数据保护引擎用以根据接收自一主机装置的数据产生对应的保护资讯。微处理器响应于将数据写入存储器装置的一或多个写入操作检测存储器装置的一状态,根据状态决定数据保护引擎于产生保护资讯时是否需排除数据的一部分,并产生一决定结果,以及将保护资讯与决定结果一并储存于存储器装置,其中决定结果指示出保护资讯系根据数据的哪些部分被产生。

根据本发明的另一实施例,一种数据处理方法,由耦接一存储器装置的一存储器控制器所执行,包括:响应于将接收自一主机装置的数据写入存储器装置之一或多个写入操作检测存储器装置的一状态;根据状态决定于产生数据所对应的保护资讯时是否需排除数据的一部分,并产生一决定结果;根据决定结果与数据产生数据所对应的保护资讯;以及将保护资讯与决定结果一并储存于存储器装置,其中决定结果指示出保护资讯系根据数据的哪些部分被产生。

附图说明

图1是显示根据本发明的一实施例所述的数据储存装置100的示意图。

图2是显示根据本发明的一实施例所述的数据处理方法流程图。

图3是显示根据本发明的第一实施例所述的产生多个多平面数据页所对应的保护资讯的示意图。

图4是显示根据图3所示的保护资讯建立的位元表范例。

图5是显示根据本发明的第二实施例所述的产生多个多平面数据页所对应的保护资讯的示意图。

图6是显示根据图5所示的保护资讯建立的位元表范例。

符号说明

100:数据储存装置

110:存储器控制器

112:微处理器

112C:程序码

112M:只读存储器

114:存储器接口

116:缓冲存储器

115:数据保护引擎

118:主机接口

120:存储器装置

130:主机装置

132:编码器

134:解码器

136:电压检测电路

310,510,520,530,540,550,LP_Parity,MP_Parity,P_S0~P_S383,Pj_S0~Pj_S7,S0_L,S0_M,S0_U,UP_Pairty:保护资讯

410,610:位元表

710:备用区域

720:数据区域

Die[0],Die[1],Die[2],Die[n-1]:存储器晶粒

Lower_Page,Middle_Page,Page[0],Page[1],Page[2],Upper_Page:数据页

META:元数据

Plane[0],Plane[1]:平面

WL_0~WL_95:字元线

具体实施方式

在下文中,描述了许多具体细节以提供对本发明实施例的透彻理解。然而,本领域技术人员仍将理解如何在缺少一个或多个具体细节或依赖于其他方法、元件或材料的情况下实施本发明。在其他情况下,未详细示出或描述公知的结构、材料或操作,以避免模糊本发明的主要概念。

在整个说明书中对"一个实施例"、"一实施例"、"一个范例"或"一范例"的引用意味着结合该实施例或范例所描述的特定特征、结构或特性系包括于本发明的多个实施例的至少一个实施例中。因此,贯穿本说明书在各个地方出现的短语"在一个实施例中"、"在一实施例中"、"在一个范例中"或"在一范例中"不一定都指到相同的实施例或范例。此外,特定特征、结构或特性可以在一个或多个实施例或范例中以任何合适的组合和/或子组合进行结合。

此外,为让本发明的目的、特征和优点能更明显易懂,下文特举出本发明的具体实施例,并配合附图,作详细说明如下。目的在于说明本发明的精神而非用以限定本发明的保护范围,应理解下列实施例可经由软件、硬件体、固件、或上述任意组合来实现。

图1是显示根据本发明的一实施例所述的数据储存装置100的示意图。数据储存装置100包括一存储器装置120,例如,一快闪存储器(Flash Memory)模块,以及一存储器控制器110。存储器控制器110用以存取(Access)存储器装置120。根据本发明一实施例,存储器控制器110包含一微处理器112、一只读存储器(Read Only Memory,ROM)112M、一存储器接口114、一数据保护引擎115、一缓冲存储器116、与一主机接口118。只读存储器112M系用以储存一程序码112C,程序码112C可包含一或多个程序模块,例如开机载入器(boot loader)码,于主机装置130供电给数据储存装置100时,微处理器112可执行程序码112C来进行初始化运作,以从存储器装置120载入一群系统内编程(In-System Programming,缩写为ISP)码(图未绘示)。微处理器112可执行该群ISP码,使数据储存装置100具备各种功能。依据本实施例,该群ISP码可包含(但不限于)关于存取(例如读取、写入及抹除)的多个程序模块,诸如一读取操作模块、一查表模块、一耗损平均(wear leveling)模块、一读取刷新(eadrefresh)模块、一读取回收(read reclaim)模块、一垃圾收集(garbage collection)模块、一突然断电回复(sudden power off recovery,缩写为SPOR)模块以及一不可更正错误更正码(uncorrectable error correction code,缩写为UECC)模块,以供分别进行读取、查表、耗损平均、读取刷新、读取回收、垃圾收集、突然断电回复以及针对UECC错误的错误处置。存储器接口114包含了一编码器132、一解码器134以及一电压检测电路136。编码器132用以对写入到存储器装置120中的数据进行编码以产生对应的校验码(或称,错误更正码(Error Correction Code),ECC)。解码器134用以将从存储器装置120所读出的数据进行解码。电压检测电路136用以检测存储器装置120的一电压位准,例如,电源电压的位准,并产生对应的一检测结果。微处理器112可根据检测结果判断存储器装置120是否发生电源电压变化(例如,电源电压不稳定),或者发生非预期或突然断电(SPO)等。数据保护引擎115用以根据接收自一主机装置的数据产生对应的保护资讯,以及用以根据保护资讯恢复损坏或遗失的数据,其中保护资讯可以是根据所欲保护的数据产生的编码过的资讯,例如,同位(parity)位元资讯。当一既定保护资讯所保护的数据的一部分发生损坏或被遗失时,数据保护引擎115可根据此既定保护资讯与其所保护的数据的剩余部分执行对应的解码操作,藉此推导出被损坏或被遗失的部分。

于典型状况下,存储器装置120包含了多个快闪存储器晶片或晶粒,而每一个快闪存储器晶片或晶粒包含多个存储器区块(Block),而存储器控制器110对存储器装置120进行抹除数据运作是以区块为单位来进行。另外,一存储器区块可记录(包含)特定数量的数据页(Page),即,物理数据页,其中存储器控制器110对存储器装置120进行写入数据的运作是以数据页为单位来进行写入。

实作上,存储器控制器110可利用其本身内部的元件来进行诸多控制运作,例如:利用存储器接口114来控制存储器装置120的存取运作(尤其是对至少一区块或至少一数据页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用主机接口118来与一主机装置(Host Device)130沟通。其中,主机接口118亦可被视为一前端控制器引擎,用以于存储器控制器110与主机装置130之间传递沟通讯号、传递写入/读取的数据、以及控制工作排程等。

在一实施例中,存储器控制器110透过主机接口118并使用一标准通讯协定与主机装置130沟通。举例而言,上述的标准通讯协定包含(但不限于):通用序列汇流排(Universal Serial Bus,缩写为USB)标准、安全数位(Secure Digital,缩写为SD)接口标准、超高速一代(Ultra High Speed-I,缩写为UHS-I)接口标准、超高速二代(Ultra HighSpeed-II,缩写为UHS-II)接口标准、复合式快闪存储器(Compact flash,缩写为CF)接口标准、多媒体卡(Multimedia Card,缩写为MMC)接口标准、嵌入式多媒体卡(EmbeddedMultimedia Card,缩写为eMMC)接口标准、通用快闪存储器(Universal Flash Storage,缩写为UFS)接口标准、高技术组态(Advanced Technology Attachment,缩写为ATA)标准、序列高技术组态(Serial ATA,缩写为SATA)标准、快捷外设互联标准(Peripheral ComponentInterconnect Express,缩写为PCI-E)标准、并列先进附件(Parallel AdvancedTechnology Attachment,缩写为PATA)标准。

在一实施例中,缓冲存储器116是以随机存取存储器(Random Access Memory,缩写为RAM)来实施。例如,缓冲存储器116可以是静态随机存取存储器(Static RAM,缩写为SRAM),但本发明不限于此。于其它实施例中,缓冲存储器116可以是动态随机存取存储器(Dynamic RAM,缩写为DRAM)。

在一实施例中,数据储存装置100可以是可携式存储器装置(例如:符合SD/MMC、CF、MS、XD、UFS标准的记忆卡),且主机装置130为一可与数据储存装置连接的电子装置,例如手机、笔记型电脑、桌上型电脑…等等。而在另一实施例中,数据储存装置100可以是固态硬碟或符合UFS或eMMC规格的嵌入式储存装置,以设置在一电子装置中,例如设置在手机、笔记型电脑、桌上型电脑之中,而此时主机装置130可以是该电子装置的一处理器。

主机装置130可对数据储存装置100发出指令,例如,读取指令或写入指令,用以存取存储器装置120所储存的数据,或者进一步控制、管理数据储存装置100。

根据本发明的一实施例,存储器装置120所包含的多个存储器区块中可包括单层单元(Single-Level Cell,缩写为SLC)存储器区块、多层单元(Multiple-Level Cell,缩写为MLC)存储器区块以及/或是三层单元(Triple-Level Cell,缩写为TLC)存储器区块。SLC存储器区块的每个存储器单元中储存一个位元数据,MLC存储器区块的每个存储器单元中储存两个位元数据,TLC存储器区块的每个存储器单元中储存三个位元数据。根据本发明的一实施例,存储器装置120为一立体NAND型快闪存储器(3D NAND-type flash)。

一般而言,为了保护存储器装置不会因为存储器单元的损坏而发生有效数据遗失,存储器装置可运用容错式磁碟阵列(Redundant Array of Independent Disks,缩写RAID)技术中所采用的错误保护机制进行数据保护。于RAID所采用的错误保护机制中,存储器控制器可根据被写入存储器装置的数据计算出保护资讯。当发现有效数据遗失时,便可利用保护资讯反向推导出被遗失的有效数据内容。

然而,于某些情况中,于数据被写入存储器装置之际,便已发生损坏。若存储器控制器得知已被写入的部分数据发生损坏时,则通常需要触发数据搬移的程序,将其余未受损坏的数据(即,正确的数据)重整于一个既定记忆区域后,再针对此既定记忆区域内的数据计算保护资讯,用以保护其余未受损坏的数据。然而,由于保护资讯必须被计算出来后,才会对数据产生保护的效力,若数据搬移过程中发生数据错误,因数据在搬移过程中尚未受到保护,错误的数据将无法救回。因此,数据搬移过程中存在着数据发生错误的风险。此外,数据搬移与重整亦为相当耗费时间的操作。

为解决上述问题,本发明提出一种新颖的数据处理方法,可有效地保护存储器装置所储存的数据,并且可有效避免因错误保护机制的实施而降低数据储存装置的存取效能。

根据本发明的一实施例,除了储存保护资讯外,存储器控制器110于储存保护资讯的记忆空间也储存了可指示出所述的保护资讯是根据数据的哪些部份产生的的相关资讯,如此一来,于存储器控制器110发现数据的一部分不需要或不可被加密或保护时,可直接略过这部分的数据,仅对数据的其余部分执行加密或保护的操作,而无须为了收集一既定数量的正确的数据而执行数据搬移的操作。存储器控制器110所储存的保护资讯是根据数据的哪些部份产生的相关资讯可于需要对数据解码时被使用。举例而言,当存储器控制器110发现受保护的数据的另一部分已遗失或损坏时,可藉由所储存的资讯得知保护资讯是根据数据的哪些部份产生的,并正确地存取所需的数据执行数据修复的操作。

图2是显示根据本发明的一实施例所述的数据处理方法流程图。本发明的数据处理方法可由存储器控制器110或存储器控制器所包含之一或多个元件执行,并包含以下步骤:

步骤S202:响应于将接收自主机装置130的数据写入存储器装置120之一或多个写入操作检测存储器装置120的一状态或者检测根据所述一或多个写入操作被写入存储器装置120的数据的状态。

步骤S204:根据所述状态决定于产生所述数据所对应的保护资讯时是否需排除所述数据的一部分,并对应产生一决定结果。

步骤S206:根据所述决定结果与所述数据产生所述数据所对应的保护资讯。例如,存储器控制器110(或,微处理器112)可根据所述决定结果指示数据保护引擎115于产生所述数据所对应的保护资讯时应使用所述数据的哪些部分,或者应排除所述数据的哪些部分。数据保护引擎115依循存储器控制器110所指示的内容根据未被排除的数据产生对应的保护资讯。

步骤S208:将所述保护资讯与所述决定结果一并储存于存储器装置。

请注意,假若可获得实质上相同的结果,则这些步骤并不一定要遵照图2所示的执行次序来执行,且其他的步骤可插入其中。例如,步骤S204跟S206可同时被执行,或者其执行顺序可以互相调换。更具体的说,自主机装置130的数据可先被暂存于缓冲存储器116内。假设数据保护引擎115被设定为根据一个超数据页(Super page)的内容产生此超数据页所对应的保护资讯,其中数据保护引擎115的基本保护单位为一个数据页,一个超数据页包含了一第一数量的数据页,则于缓冲存储器116内所暂存的一个超数据页被写入存储器装置120的同时,数据保护引擎115可预设地根据缓冲存储器116内所储存的此超数据页的所有数据页产生保护资讯。即,数据保护引擎115可先根据缓冲存储器116内所储存的数据产生保护资讯。若微处理器112于步骤S204中判断此超数据页中的一或多个数据页需被排除时,可再指示数据保护引擎115执行对应的一数据排除操作,用以将所述一或多个数据页的相关内容自保护资讯中去除,此结果相当于数据保护引擎115根据此超数据页中不包含所述一或多个数据页的其他数据页产生对应的保护资讯。或者,微处理器112指示数据保护引擎115排除此超数据页的所述一或多个数据页后重新产生对应的保护资讯,即,数据保护引擎115最终是根据此超数据页中不包含所述一或多个数据页的其他数据页重新产生对应的保护资讯。因此,于一或多个数据页需被排除的情况下,此超数据页的保护资讯实际上是根据少于第一数量的数据页被产生。

于本发明的实施例中,决定结果可用以指示出保护资讯是根据数据的哪些部分被产生(例如,一个超数据页中的哪些数据页)。此外,根据本发明的一实施例,于步骤S208中,存储器控制器110可将决定结果可以多个位元表示。举例而言,存储器控制器110可根据决定结果为保护资讯建立一位元表(bit map),用以纪录保护资讯是根据对应的数据的那些部分产生,并且将保护资讯与位元表储存于相同的记忆空间,例如,一数据页(例如,物理数据页),其中一个物理数据页的大小可以是,例如但不限于,16K位元组,并且一个物理数据页可包括一数据区域以及一备用区域,存储器控制器110可将保护资讯储存于数据区域,并且将决定结果或位元表储存于备用区域,作为此记忆空间的元数据(meta data)的一部分。

当存储器控制器110(或,微处理器112)判断入存储器装置120所储存的数据的一部分被损坏或遗失时,可存取存储器装置120以取得损坏或遗失的部分所对应的保护资讯与决定结果(或,位元表),以及根据决定结果(或,位元表)指示数据保护引擎115使用数据的哪些部分解码对应的保护资讯以推导出被损坏或遗失的部分。

如上述,于本发明的一实施例中,决定结果可以多个位元表示,而一位元用以指示一既定储存单位的数据是否被排除,其中既定储存单位可被设定为与数据保护引擎115的基本保护单位相同,或者,既定储存单位的大小可大于数据保护引擎115的基本保护单位。

举例而言,假设目前设定的基本保护单位为一个数据页,则数据保护引擎115所产生的保护资讯的大小可为一个数据页的大小,例如,保护资讯可以是一个数据页的同位位元。

于本发明的一实施例中,既定储存单位的大小可同样被设定为一个数据页的大小,因此,一位元是用以指示对应的一个数据页的数据是否于产生对应的保护资讯时被排除。于此实施例中,当数据保护引擎115根据一个单平面超数据页的所有数据页产生保护资讯时,此单平面超数据页所对应的决定结果可包含了前述第一数量的位元。

或者,于本发明的另一实施例中,既定储存单位的大小可被设定为一个多平面数据页(multi-plane page)的大小,其中一个多平面数据页可包含,例如但不限于,两个位于不同平面的数据页,因此,于此实施例中,一位元是用以指示对应的一个多平面数据页(例如,两个数据页)的数据是否于产生对应的保护资讯时被排除。于此实施例中,当数据保护引擎115根据一个多平面超数据页的所有数据页产生保护资讯时,此多平面超数据页所对应的决定结果可包含了前述第一数量的位元,而各位元可以是压缩过的资讯,用以指示多个数据页的数据是否于产生对应的保护资讯时被排除。

值得注意的是,于本发明的实施例中,数据保护引擎115可弹性地为不同大小的数据产生对应的保护资讯,且数据保护引擎115的基本保护单位也不限于一个数据页。举例而言,数据保护引擎115可根据一个单平面或多平面超数据页的内容产生此超数据页所对应的保护资讯、根据一个存储器区块的内容产生此存储器区块所对应的保护资讯、根据一个超存储器区块的内容产生此超存储器区块所对应的保护资讯(其中一个超存储器区块可包含多个存储器区块)、或其他。数据保护引擎115的基本保护单位可以是一个数据页、一个多平面数据页、一个超数据页、一个存储器区块等。

图3是显示根据本发明的第一实施例所述的产生多个多平面数据页所对应的保护资讯的示意图。于此实施例中,存储器装置120可包含多个快闪存储器晶片(或,存储器晶粒),数据保护引擎115可将其中的n个存储器晶粒绑在一起进行编码,以产生对应的保护资讯,例如图中所示的存储器晶粒Die[0]~Die[n-1],其中n为一正整数。各存储器晶粒可包含一或多个平面,例如图中所示的平面Plane[0]与Plane[1]。各平面可包含多个数据页,例如,数据页Page[0]、Page[1]、Page[2]等。于此实施例中,假设存储器装置120使用三层式储存(Triple-Level Cell,TLC)的方式被写入,则一个物理数据页可对应到三个逻辑数据页,例如图中所示的低、中、高数据页(逻辑数据页):Lower_Page、Middle_Page与Upper_Page。其中,各平面的数据页Page[0]、Page[3]、Page[6]、Page[9]等可为低数据页,数据页Page[1]、Page[4]、Page[7]、Page[10]等可为中数据页,数据页Page[2]、Page[5]、Page[8]、Page[11]等可为高数据页,并依此类推。

于图3所示的实施例中,数据保护引擎115可把n个存储器晶粒归类为一个保护群组,并根据此n个存储器晶粒于各平面的各数据页所对应的数据产生对应的保护资讯。举例而言,假设n=8,则数据保护引擎115可把每8个存储器晶粒归类为一个保护群组,其中的一个保护群组包含了图3所示的存储器晶粒Die[0]~Die[7]。存储器晶粒Die[0]~Die[7]的数据页可形成多个超数据页,其中一个超数据页包含了第一数量的数据页,例如,8个数据页。值得注意的是,所述的超数据页可以是一单平面的超数据页,或者多平面超数据页。举例而言,存储器晶粒Die[0]~Die[7]的第一平面Plane[0]的第一个数据页Page[0]可组成一单平面的超数据页,存储器晶粒Die[0]~Die[7]的第二平面Plane[1]的第一个数据页Page[0]可组成另一单平面的超数据页,或者,存储器晶粒Die[0]~Die[7]的两个平面的第一个数据页Page[0]可组成一多平面超数据页。

于本发明的实施例中,低、中、高数据页的一个集合可形成一串(string)。数据保护引擎115可对存储器晶粒Die[0]~Die[7]的低、中、高数据页所对应的数据分别执行互斥或(exclusive or,XOR)运算,以得到一串所对应的保护资讯,例如,图3所示的第一串所对应的保护资讯310,其中保护资讯310可包含数据保护引擎115根据存储器晶粒Die[0]~Die[7]的第一个数据页Page[0](低数据页)所对应的数据执行XOR运算所得的保护资讯S0_L、根据存储器晶粒Die[0]~Die[7]的第二个数据页Page[1](中数据页)所对应的数据执行XOR运算所得的保护资讯S0_M以及根据存储器晶粒Die[0]~Die[7]的第三个数据页Page[2](高数据页)所对应的数据执行XOR运算所得的保护资讯S0_U,而第一平面Plane[0]与第二平面Plane[1]的保护资讯S0_L、S0_M、S0_U则分别用以保护存储器晶粒Die[0]~Die[7]于该平面的第一串所包含的低、中、高数据页所对应的数据。

图4是显示根据图3所示的保护资讯310建立的位元表范例。于此实施例中,假设存储器控制器110根据于执行第一串所对应的写入操作时存储器装置120的状态或者被写入存储器装置120的第一串数据的状态决定所有的数据均可用于产生第一串所对应的保护资讯(即,数据保护引擎115于产生第一串所对应的保护资讯时无须排除图3所示的任一数据页),则存储器控制器110可将位元表410所包含的各位元设定为一对应的数值(例如,1),用以表示所有数据页均受到保护资讯310的保护。其中,位元表410的一个位元组(Byte)对应于一个平面的一个超数据页,一个位元组的一位元可用以指示出对应的超数据页所包含的一数据页是否被排除。另一方面,若存储器控制器110判断一个数据页需被排除时,存储器控制器110可将位元表410中所对应的位元设定为另一对应的数值(例如,0),用以表示该数据页并未受到保护资讯310的保护,并且可进一步指示数据保护引擎115于产生包含此数据页的一超数据页所对应的保护资讯时,须将此数据页排除。

值得注意的是,如上所述,保护资讯亦可以是压缩过的资讯。举例而言,于本发明的另一实施例中,位元表410中第一平面Plane[0]与第二平面Plane[1]所分别对应的一位元组中各位元所纪录的内容可被压缩并以一个位元表示,用以表示此位元所对应的多平面超数据页是否受到保护资讯310的保护。即,位元表410可被压缩为一位元组。

此外,除了应用于多平面的架构,本发明的数据处理方法与错误保护机制亦可应用于单平面的架构。举例而言,于本发明的又另一实施例中,各存储器晶粒可包含单一个平面,例如,图3与图4所示的内容可被化简为仅包含其中一个平面的数据页。数据保护引擎115可把n个存储器晶粒归类为一个保护群组,并根据此n个存储器晶粒的各数据页所对应的数据产生各数据页所对应的保护资讯。

图5是是显示根据本发明的第二实施例所述的产生多个多平面数据页所对应的保护资讯的示意图。本发明的第二实施例可为第一实施例的延伸。如上所述,低、中、高数据页的一个集合可形成一串(string)。数据页Page[0]、Page[1]与Page[2]可形成第一串S0,数据页Page[3]、Page[4]与Page[5]可形成第二串S1,数据页Page[6]、Page[7]与Page[8]可形成第三串S2,并依此类推。

于本发明的第二实施例中,数据保护引擎115可反复执行如第一实施例所述的操作得到不同串所对应的保护资讯。

如图5所示,保护资讯P_S0为第一串S0所对应的保护资讯,其可进一步包含如图3所示的保护资讯S0_L、S0_M与S0_U,保护资讯P_S1为第二串S1所对应的保护资讯,其可进一步包含第二串的低、中、高数据页所对应的保护资讯,并依此类推。此外,于本发明的第二实施例中,四个串的一个集合可形成一字元线(Word Line,缩写WL),因此,保护资讯510可包含对应于字元线WL_0与WL_1的保护资讯,保护资讯520可包含对应于字元线WL_2与WL_3的保护资讯,保护资讯530可包含对应于字元线WL_4与WL_5的保护资讯,保护资讯540可包含对应于字元线WL_94与WL_95的保护资讯,并依此类推。于此实施例中,每个存储器晶粒可包含1152个数据页,相当于384串,亦相当于96条字元线。

于本发明的第二实施例中,在得到384串所对应的保护资讯P_S0~P_S383后,数据保护引擎115可进一步将两条字元线所对应的保护资讯形成的一个集合,例如图中所示的保护资讯510~540,并且对各集合分别执行互斥或(XOR)运算,以得到一个超存储器区块所对应的保护资讯550,其中保护资讯550可包含两个平面的保护资讯Pj_S0~Pj_S7,第一平面Plane[0]/第二平面Plane[1]的保护资讯Pj_S0为数据保护引擎115根据第一平面Plane[0]/第二平面Plane[1]的保护资讯P_S0、P_S8、P_S16…P_S376执行XOR运算所得的保护资讯,第一平面Plane[0]/第二平面Plane[1]的保护资讯Pj_S1为数据保护引擎115根据第一平面Plane[0]/第二平面Plane[1]的保护资讯P_S1、P_S9、P_S17…P_S377执行XOR运算所得的保护资讯,并依此类推。

图6是显示根据图5所示的保护资讯建立的位元表范例。位元表610的一个位元组(Byte)对应于一个平面的一个超数据页,一个位元组的一位元可用以指示出对应的超数据页所包含的一数据页是否被排除。类似地,若存储器控制器110判断一个数据页需被排除时,存储器控制器110可将位元表610中所对应的位元设定为对应的数值(例如,0),用以表示该数据页并未受到保护资讯550的保护。

根据本发明的一实施例,存储器控制器110可将保护资讯与其对应的位元表(决定结果)一并储存于一个物理数据页,其中保护资讯储存于数据区域,位元表储存于备用区域,作为此物理数据页的元数据(例如图中的META)的一部分。如图6所示,数据区域720储存了保护资讯Pj_S2于第一平面Plane[0]的内容,其为数据保护引擎115根据第一平面Plane[0]的保护资讯P_S2、P_S10、P_S18…P_S378执行XOR运算所得的保护资讯,并且可进一步包含低、中、高数据页所对应的保护资讯LP_Parity、MP_Parity与UP_Pairty。与各保护资讯相关联的位元表是储存于对应的备用区域。如图所示,备用区域710用以储存保护资讯Pj_S2于第一平面Plane[0]的低数据页的保护资讯LP_Parity所对应的位元表,其中保护资讯Pj_S2于第一平面Plane[0]的低数据页的保护资讯LP_Parity所对应的位元是于图6中以方框凸显,并藉由指向备用区域710表示其内容是被储存于备用区域710。

根据本发明的一实施例,所述的决定结果或位元表可于数据保护引擎115编码的过程中暂存于缓冲存储器116,并且于保护资讯产生后一并写入存储器装置120中。此外,于本发明的实施例中,数据保护引擎115可预设地根据既定数量的数据页及/或保护资讯产生最终的保护资讯,例如,于第一实施例中,数据保护引擎115可预设地根据第一数量的数据页产生保护资讯,例如,图3所示的超数据页的保护资讯,并且于第二实施例中,数据保护引擎115可进一步根据第二数量的保护资讯的集合产生如图5所示的超存储器区块的保护资讯。由于所述的既定数量为已知的,因此,当数据的一部分发生损坏或被遗失时,数据保护引擎115可根据所述的既定数量(例如,第一数量、第二数量等)的资讯推算出此数据所对应的保护资讯的储存位置,并且根据此位置存取其元数据即可得到此保护资讯所对应的位元表。接着,数据保护引擎115可根据取得的保护资讯与位元表所指示的的内容执行对应的解码操作,藉此推导出被损坏或被遗失的数据。

此外,于本发明的实施例中,所述的数据排除操作可以是产生保护资讯的一反向操作。举例而言,当数据保护引擎115藉由执行互斥或(XOR)运算产生保护资讯时,数据排除操作可以是反向的互斥或运算。需注意的是,数据保护引擎115亦可藉由执行其他运算产生保护资讯,因此,本发明并不限于使用互斥或(XOR)运算产生保护资讯。

此外,于本发明的实施例中,由于存储器控制器110可根据存储器装置120的一状态或者检测根据被写入存储器装置120的数据的状态判断是否须排除一或多个数据页。因此,在数据保护引擎115预设地根据第一数量的数据页产生超数据页的保护资讯而其中一或多个数据页需被排除的情况下,此超数据页的保护资讯实际上是根据少于第一数量的数据页被产生。

参考回图2,根据本发明的一实施例,于步骤S202中,响应于将接收自主机装置130的数据写入存储器装置120之一或多个写入操作,微处理器112可检测存储器装置120的状态。

举例而言,微处理器112可检测存储器装置120于执行写入操作后回传的一状态讯息,用以得知写入操作为成功或失败。当状态讯息指示出数据的第一部分的写入操作失败时,微处理器112可决定指示数据保护引擎115于产生保护资讯时排除第一部分,并且将此决定结果的对应资讯或位元表中对应的位元设定为对应的数值(例如,0)。

举另一例,电压检测电路136可于检测到存储器装置发生电源电压变化(例如,电压下降、电压不稳、或存储器装置断电等)时发出一讯息通知微处理器112,使微处理器112可得知存储器装置120于执行写入操作的状态。当该状态指示出于执行数据的第一部分所对应的写入操作的过程中存储器装置120发生电源电压变化时,因不稳定的电压可能导致写入数据错误或者数据无法被写入,微处理器120可决定指示数据保护引擎115于产生保护资讯时排除第一部分,并且将此决定结果的对应资讯或位元表中对应的位元设定为对应的数值(例如,0)。

举又另一例,微处理器120亦可根据数据储存装置100的状态判断存储器装置120于执行写入操作的状态。若数据储存装置100于存储器装置120于执行写入操作的过程中发生突然断电,对存储器装置120而言同样是发生了发生突然断电。因突然断电可能伤及正在被写入的数据,因此当状态指示出于执行数据的第一部分所对应的写入操作的过程中存储器装置120发生突然断电,微处理器120可决定指示数据保护引擎115于产生保护资讯时排除第一部分,并且将此决定结果的对应资讯或位元表中对应的位元设定为对应的数值(例如,0)。

根据本发明的另一实施例,于步骤S202中,响应于将接收自主机装置130的数据写入存储器装置120之一或多个写入操作,微处理器112亦可检测根据所述一或多个写入操作被写入存储器装置120的数据的状态。举例而言,微处理器112可读取被写入存储器装置120的数据并尝试透过解码器134解码其内容,以得知是否发生数据错误(例如,错误位元过多导致解码器134无法更正其错误内容)。当被写入存储器装置120的数据的状态指示出数据的第一部分已发生错误或包含无法更正的错误时,微处理器120可决定指示数据保护引擎115于产生保护资讯时排除第一部分,并且将此决定结果的对应资讯或位元表中对应的位元设定为对应的数值(例如,0)。

综上所述,本发明提出的数据处理方法可有效地保护存储器装置所储存的数据,并且可有效避免因错误保护机制的实施而降低数据储存装置的存取效能。于本发明的实施例中,除了储存保护资讯外,存储器控制器110于储存保护资讯的记忆空间也储存了可指示出所述的保护资讯是根据数据的哪些部份产生的相关资讯,如此一来,于存储器控制器110发现数据的一部分不需要或不可被加密或保护时,可直接略过这部分的数据,仅对数据的其余部分执行加密或保护的操作,而无须为了收集一既定数量的正确的数据而执行数据搬移的操作。当存储器控制器110发现受保护的数据的另一部分已遗失或损坏时,可藉由所储存的资讯得知保护资讯是根据数据的哪些部份产生的,并正确地存取所需的数据执行数据修复的操作。

以上所述仅为本发明的较佳实施例,依本发明权利要求书范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

19页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:存储信息的方法、获取信息的方法、装置、设备和介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类