储存装置、其控制单元、及可用于储存装置的数据储存方法与流程

文档序号:11285639阅读:226来源:国知局
储存装置、其控制单元、及可用于储存装置的数据储存方法与流程

本发明涉及一种数据储存的相关技术,且特别是关于一种储存装置,其控制单元,以及一种可用于储存装置的数据储存方法。



背景技术:

一般而言,储存装置主要由控制单元与数据储存媒体(例如是闪存)所构成,其中数据储存媒体具有多个数据区块(datablock),每一数据区块具有多个数据页(page),而控制单元电性耦接数据储存媒体,以对上述数据区块的数据页进行数据之写入、读取或擦除动作。

然而,由于储存装置会因为频繁的擦除动作、制程上的缺陷、随着时间增长而导致的老化等因素而产生数据保存的问题。因此,在执行数据写入操作后,储存装置的控制单元会利用错误校正码(errorcorrectingcode,ecc)来对储存装置所储存的数据进行数据的纠错与修正操作。然而,错误校正码的修正能力有一定的限制(例如,60位),当数据页所储存的数据的错误位数超过60位时,超出了错误校正码的修正能力而发生错误校正码失效的问题,这将导致储存装置所储存的数据丧失有效性。



技术实现要素:

有鉴于此,本发明的目的在于提供一种储存装置,其在执行数据写入操作时会复制一份相同的数据,以在有其中一份数据发生错误校正码失效时能选择储存未发生错误校正码失效的另一份数据,或是针对二份皆有发生错误校正码失效的数据进行数据页的整并而合成一份未发生错误校正码失效的数据,进而避免数据遗失的问题。

本发明另提供一种储存装置的控制单元,其在执行数据写入操作时会复制一份相同的数据,以在有其中一份数据发生错误校正码失效时能选择储存未发生错误校正码失效的另一份数据,或是针对二份皆有发生错误校正码失效的数据进行数据页的整并而合成一份未发生错误校正码失效的数据,进而避免数据遗失的问题。

本发明再提供一种可用于储存装置的数据储存方法,其使得储存装置的控制单元在执行数据写入操作时会复制一份相同的数据,以在有其中一份数据发生错误校正码失效时能选择储存未发生错误校正码失效的另一份数据,或是针对二份皆有发生错误校正码失效的数据进行数据页的整并而合成一份未发生错误校正码失效的数据,进而避免数据遗失的问题。

本发明提出一种储存装置,其包括有数据储存媒体与控制单元。数据储存媒体具有备用区块池,而此备用区块池用以存放多个备用区块,且每一备用区块皆具有多个数据页。控制单元电性耦接数据储存媒体,且控制单元接收并判断来自于主机之数据是否为连续数据。当判断为是时,控制单元分别写入上述数据至至少二个备用区块。而当判断为否时,控制单元分别写入上述数据至其中一备用区块的至少二个资料页。

本发明另提出一种控制单元,其包括有控制逻辑与微处理器。控制逻辑电性耦接数据储存媒体,所述数据储存媒体具有备用区块池,而此备用区块池用以存放多个备用区块,且每一备用区块皆具有多个数据页。微处理器电性耦接控制逻辑,且微处理器用以接收并判断来自于主机之数据是否为连续数据。当判断为是时,微处理器透过控制逻辑分别写入上述数据至至少二个备用区块。而当判断为否时,微处理器透过控制逻辑分别写入上述数据至其中一备用区块的至少二个资料页。

本发明再提出一种可用于储存装置的数据储存方法,其包括下列步骤:接收来自主机之数据;判断此数据是否为连续数据;当判断为是时,分别写入上述资料至至少二个备用区块,其中上述至少二个备用区块系选自于备用区块池之复数备用区块且每一备用区块皆具有多个数据页;以及当判断为否时,分别写入上述资料至备用区块池之其中一备用区块的至少二个资料页。

本发明系使储存装置在执行数据写入操作时,采用上述方式来复制一份相同的资料,因此可以在有其中一份资料发生错误校正码失效时能选择储存未发生错误校正码失效的另一份数据,或是针对二份皆有发生错误校正码失效的数据进行数据页的整并而合成一份未发生错误校正码失效的数据,进而避免数据遗失的问题。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举优选实施例,并配合附图,详细说明如下。

附图说明

图1为本发明之储存装置的电路方块图。

图2为本发明之可用于储存装置之数据储存方法的流程图。

具体实施方式

图1为依照本发明一实施例之储存装置的电路方块图。如图1所示,储存装置100主要包括有控制单元110与数据储存媒体120。数据储存媒体120具有数据区块池(datablockpool)130与备用区块池(spareblockpool)140。备用区块池140用以存放未写入任何数据之备用区块(如标示141~k所示,其中k为自然数)。备用区块写满数据后将形成数据区块(如标示131~m所示,其中m为自然数),并被移至数据区块池130。在执行垃圾回收(garbagecollection)之程序时,数个数据区块的数据将被写入至一个备用区块,并于擦除动作后,又变回了备用区块并被移至备用区块池140;而写入资料的备用区块将形成资料区块并被移至资料区块池130。可想而知地,备用区块141~k及数据区块131~m皆为数据区块在逻辑上之定义,用户可依实际之需求而增加或减少数据区块在逻辑上之定义。而如图1所示,每一数据区块皆具有多个资料页(如标示p1~pn所示,其中n亦为自然数)。在此例中,数据储存媒体120包括以非挥发性内存来实现,例如是以闪存(flashmemory)、磁阻式随机存取内存(magnetoresistiveram)、相变内存(phase-changememory)、铁电随机存取内存(ferroelectricram)等具有长时间数据保存之内存装置来实现。

请继续参照图1。控制单元110系电性耦接数据储存媒体120,并用以控制数据储存媒体120的操作(例如进行数据的存取或抹除)。在此例中,控制单元110包括有接口逻辑112、微处理器114与控制逻辑116。微处理器114系电性耦接接口逻辑112,用以透过接口逻辑112接收来自主机(例如是计算机、手机、数字相机等具运算功能的电子装置,未绘示)之命令或数据,例如:写入命令、读取命令、擦除命令等。此外,微处理器114还透过控制逻辑116电性耦接数据储存媒体120,并用以透过控制逻辑116对数据储存媒体120进行数据之存取,或进行数据之抹除。

在此例中,当接收到来自于主机的写入命令以及欲写入的数据时,微处理器114就会去判断此数据是否为连续数据。所谓的连续数据即表示其所对应的多个逻辑区块地址(logicblockaddress,lba)为依序接续。另外,连续数据的判断不需以依序接续的二个逻辑区块地址为准,可以依使用者所需而予以设定。例如,当其设定值为四时,唯有欲写入的数据的依序接续逻辑区块地址超过四时,微处理器114才判断其为连续资料,否则,仍不视为连续资料。接着,微处理器114会依据判断结果来选择不同的数据储存方式。

当判断为否时,微处理器114就会透过控制逻辑116自备用区块池140中挑选出一个备用区块,并透过控制逻辑116而在挑选出的这个备用区块的二个资料页中皆写入上述资料。举例来说,微处理器114可以是透过控制逻辑116自备用区块池140中挑选出备用区块141,并在备用区块141的资料页p1中写入上述数据,以及在备用区块141的数据页p2中写入同样的资料。换句话说,一份数据还有其备份皆储存至同一个备用区块141中。图标中数据页p1与数据页p2为相邻的二个数据页,此为较佳的实施方式。然而,数据页p1与数据页p2也可为不相邻的二个数据页,微处理器114可依据一方程式或随机数生成器来决定数据页的位置,但不以此为限。另外,备份的数量可以大于一。例如,微处理器114于备用区块141的其他数据页,例如,数据页p3,写入同样的资料。如此一来,一份数据以及二份备份皆储存至同一个备用区块141中。

另外,备用区块141可为备用区块池140中擦除次数最少或者最久未执行擦除动作者,以符合磨损平均(wearleveling)之管理。

反之,当判断为是时,微处理器114便透过控制逻辑116自备用区块池140中挑选出二个备用区块,并透过控制逻辑116而在挑选出的每一备用区块中皆写入上述资料。举例来说,微处理器114可以是透过控制逻辑116自备用区块池140中挑选出备用区块142与143,并自备用区块142的数据页p1写入上述数据,以及自备用区块143的数据页p1写入同样的资料。

当上述的二个备用区块写满数据时(即所有的数据页皆写入数据),微处理器114就会启动数据验证(verification)之程序,即利用错误校正码来对这二个备用区块中的每一个数据页进行数据的纠错与修正操作,当任何一个备用区块的任一数据页有错误校正码失效的问题,则此备用区块即存在错误校正码失效的问题。并依是否有错误校正码失效的问题来决定是否对这二个备用区块进行数据整并。另外,为了特定的目的,微处理器114可主动地对备用区块的未写入数据的数据页填入虚置资料(dummydata),使备用区块写满数据而进入启动数据验证程序。

当执行数据验证程序而微处理器114判断上述这二个备用区块皆没有发生错误校正码失效的问题,或是判断只有一个备用区块有发生错误校正码失效的问题时,那么微处理器114就会透过控制逻辑116将没有发生错误校正码失效的问题的其中一个备用区块变更为数据区块,并存放至数据区块池130中,而剩下的另一个备用区块则被回收,即抹除数据并存放回备用区块池140中。

以前述微处理器114所挑选出的备用区块142与143为例,假设备用区块142与143皆已写满资料,且其中只有备用区块142有发生错误校正码失效的问题,而备用区块143没有发生错误校正码失效的问题时,那么微处理器114就会透过控制逻辑116将备用区块143变更为数据区块并存放至数据区块池130中。此外,微处理器114还会透过控制逻辑116抹除备用区块142中的所有数据并存回备用区块池140中。

另外,当执行数据验证程序而微处理器114判断上述的二个备用区块皆有发生错误校正码失效的问题时,就会透过控制逻辑116自备用区块池140中再挑选出一个备用区块(命名为第三备用区块),并将上述这二个已写满数据的备用区块中之没有发生错误校正码失效的数据页的数据储存至第三备用区块的数据页中,并在第三备用区块写满数据并通过数据验证后将其变更为数据区块,并存放至数据区块池130中,最后,将上述这二个备用区块在抹除其数据后存放回备用区块池140中。

再以前述微处理器114所挑选出的备用区块142与143为例,假设备用区块142与143皆已写满资料,且备用区块142数据页p1及pn有发生错误校正码失效的问题,备用区块143的数据页p1及pn并无错误校正码失效的问题;备用区块143的数据页p2及pn-1有发生错误校正码失效的问题,备用区块142的数据页p2及pn-1并无错误校正码失效的问题。那么微处理器114就会透过控制逻辑116自备用区块池140中挑选出一个备用区块以作为第三备用区块,例如是挑选出备用区块144,以将备用区块142的数据页p2~pn-1以及备用区块143的数据页p1及pn的数据储存至备用区块144中。于数据验证的程序中,微处理器114更可以于数据储存至备用区块144后,重新验证数据页之数据,以确保数据已正确地储存至备用区块144中。如果有数据页亦存在错误校正码失效的问题,则微处理器114透过控制逻辑116自备用区块池140中再挑选出另一个备用区块作为第三备用区块,并重新上述步骤。当数据的准确性完成验证后,微处理器114就会透过控制逻辑116将备用区块144变更为数据区块并存放至数据区块池130中。此外,微处理器114还会透过控制逻辑116抹除备用区块142与143并存回备用区块池140中,完成数据验证之程序。

藉由上述教示,本领域具有通常知识者当可归纳出一种可用于储存装置之数据储存方法的一些基本操作步骤,如图2所示。图2即为依照本发明一实施例之一种可用于储存装置之数据储存方法的流程图。请参照图2,此方法包括有下列步骤:首先,接收来自主机之数据(如步骤s201所示);接着,判断此数据是否为连续数据(如步骤s202所示);接下来,当判断为是时,分别写入上述资料至至少二个备用区块,其中上述至少二个备用区块系选自于备用区块池且每一备用区块皆具有多个数据页(如步骤s203所示);反之,当判断为否时,分别写入上述资料至备用区块池之其中一备用区块的至少二个资料页(如步骤s204所示)。

综上所述,本发明系使储存装置在执行数据写入操作时,采用上述方式来复制一份相同的资料,因此可以在有其中一份资料发生错误校正码失效时能选择储存未发生错误校正码失效的另一份数据,或是针对二份皆有发生错误校正码失效的数据进行数据页的整并而合成一份未发生错误校正码失效的数据,进而避免数据遗失的问题。

虽然本发明以前述的实施例揭露如上,然其并非用以限定本发明,任何熟习此技艺者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的专利保护范围须视本说明书所附的申请专利范围所界定者为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1