数据储存装置以及数据读取方法与流程

文档序号:11829482阅读:206来源:国知局
数据储存装置以及数据读取方法与流程

本发明系关于一种数据储存装置,特别是关于可将不同存储器平面的页面合并存取的数据储存装置。



背景技术:

快闪存储器为一种可以被电抹除并且重新写入的非易失性存储器,并且主要是应用在存储卡、USB随身盘、eMMC以及固态硬盘(Solid-State Disk)中,借以作为一般的储存与电脑装置和数字产品间的数据的转运。

快闪存储器于生产过程中,会因为粉尘或是光罩问题,使得快闪存储单元中的一整列(column)的数据都无法正确存取。传统上,可以扫描的方式检测出坏列的数量。但是,一旦无法存取的数据列数目太多,则会影响到错误检查码进行修正的能力。



技术实现要素:

本发明所提供的数据储存装置以及错误校正方法,可将不同存储器平面的页面合并存取。

本发明提供一种数据储存装置包括一快闪存储器以及一控制器。快闪存储器包括多个芯片(die),并且每一芯片包括一第一存储器平面(plane)以及一第二存储器平面(plane),其中第一存储器平面以及第二存储器平面分别包括多个实体页面(page)。控制器被设置为用以根据用以对一目标页面进行读取的一读取命令,读取第一存储器平面中的一第一实体页面以及第二存储器平面中的一第二实体页面。

在一实施例中,控制器更包括一错误校正引擎,并且控制器更被设置为用以将所读取的第一实体页面的数据以及第二实体页面的数据传送至错误校正引擎,使得错误校正引擎根据第一实体页面的数据以及第二实体页面的数据对 目标页面进行错误校正。

详细而言,控制器被设置为用以根据读取命令,依序传送多个数据块读取命令至快闪存储器,以依序读取由第一实体页面以及第二实体页面所构成的目标页面中的多个数据块,其中控制器更被设置为用以借由数据块读取命令中的两者,分别对第一实体页面中的多个字节以及第二实体页面中的多个字节进行读取,以获得数据块中的一第一数据块。每一数据块包括一数据段以及用以校正数据段的一校验码。控制器更被设置为用以将根据数据块读取命令中的两者所读取的第一实体页面以及第二实体页面中的字节传送至错误校正引擎,使得错误校正引擎可根据所读取的第一实体页面以及第二实体页面中的字节对第一数据块进行错误校正。在一实施例中,数据块读取命令包括一地址闩锁致能信号(address latch enable,ALE)以及命令闩锁致能信号(command latch enable,CLE)。

本发明亦提供一种数据读取方法,适用于一快闪存储器,其中快闪存储器包括多个芯片(die),每一芯片包括一第一存储器平面(plane)以及一第二存储器平面(plane),第一存储器平面以及第二存储器平面分别包括多个实体页面(page)。数据读取方法包括:自主机接收一读取命令,其中读取命令是用以对一目标页面进行读取;以及根据读取命令,读取第一存储器平面中的一第一实体页面以及第二存储器平面中的一第二实体页面。

在另一实施例中,数据读取方法更包括:将所读取的第一实体页面的数据以及第二实体页面的数据传送至一错误校正引擎;以及借由错误校正引擎根据第一实体页面的数据以及第二实体页面的数据对目标页面进行错误校正。

详细而言,根据读取命令读取第一存储器平面中的第一实体页面以及第二存储器平面中的第二实体页面的步骤更包括:根据读取命令,依序传送多个数据块读取命令至快闪存储器,以依序读取由第一实体页面以及第二实体页面所构成的目标页面中的多个数据块,其中数据块读取命令中的两者,分别对第一实体页面中的多个字节以及第二实体页面中的多个字节进行读取,以获得数据块中的一第一数据块。每一数据块包括一数据段以及用以校正数据段的一校验码。

在一实施例中,数据读取方法更包括:根据数据块读取命令中的两者所读 取的第一实体页面以及第二实体页面中的字节传送至一错误校正引擎;以及借由错误校正引擎,根据所读取的第一实体页面以及第二实体页面中的字节对第一数据块进行错误校正。

附图说明

图1为本发明所提供的一电子系统的一种实施例的方块图。

图2为本发明所提供的芯片的一种实施例的示意图。

图3为本发明所提供的实体页面的一种实施例的示意图。

图4为本发明所提供的实体页面的另一种实施例的示意图。

图5为本发明所提供的芯片的另一种实施例的示意图。

图6为本发明所提供的一数据读取方法的一种实施例的流程图。

图7为本发明所提供的一数据读取方法的另一种实施例的流程图。

附图标记说明:

100 电子系统;

120 主机;

140 数据储存装置;

160 控制器;

162 运算单元;

164 永久存储器;

166 随机存取存储器;

168 错误校正引擎;

180 快闪存储器;

D0~DN 芯片;

BU 缓冲器;

MD 元数据;

PL0、PL1 存储器平面;

P0_1~P0_N、P1_0~P1_N 实体页面;

P0’~PN’ 页面;

S600~S602、S700~S706 步骤。

具体实施方式

以下将详细讨论本发明各种实施例的装置及使用方法。然而值得注意的是,本发明所提供的许多可行的发明概念可实施在各种特定范围中。这些特定实施例仅用于举例说明本发明的装置及使用方法,但非用于限定本发明的范围。

图1为本发明所提供的一电子系统的一种实施例的方块图。电子系统100包括一主机120以及一数据储存装置140。数据储存装置140包括一快闪存储器180以及一控制器160,且可根据主机110所下达的命令操作。控制器160包括一运算单元162、一永久存储器(如,只读存储器ROM)164、随机存取存储器(RAM)166以及一错误校正引擎168。永久存储器164与所载的程序码、数据组成固件(firmware),由运算单元162执行,使控制器160基于该固件控制该快闪存储器180。随机存取存储器(RAM)166用以载入程序码与参数以提供控制器160根据所载入的程序码与参数动作。错误校正引擎168用以对所读取的数据进行错误校正(Error Correction),以及对写入的数据进行编码以获得校验码(parity)。快闪存储器180包括多个芯片(die)D0~DN,如图2所示。每一芯片D0~DN包括一缓冲器BU、一第一存储器平面(plane)PL0以及一第二存储器平面(plane)PL1。每一第一存储器平面PL0以及第二存储器平面PL1分别包括多个实体页面(page)P0~PN。值得注意的是,在本实施例中,每一芯片D0~DN包括一缓冲器BU,用以缓冲第一存储器平面PL0以及第二存储器平面PL1的数据,但本发明不限于此。在其他实施例中,每一芯片D0~DN可包括两个缓冲器,分别用以缓冲第一存储器平面PL0以及第二存储器平面PL1的数据。

快闪存储器于生产过程中,会因为粉尘或是光罩问题,使得快闪存储单元中的一整列(column)的数据都无法正确存取,损毁的列称为坏列(bad column)。然而,在同一芯片中的存储器平面所具有坏列的数量可能彼此不同。坏列的数量越多,存储器平面中的实体页面里可利用的存储器空间则越少,其中存储器空间的大小影响到错误比特校正能力。详细而言,具有越高的错误比特校正能力的错误校正(Error Correction)的编码,会产生长度越长的校验码(Parity)。

图3为本发明所提供的实体页面的一种实施例的示意图。在本实施例中, 第一存储器平面PL0的每一实体页面P0_0~P0_N分别具有1000字节(Byte)无法使用的坏列,第二存储器平面PL1的每一实体页面P1_0~P1_N中,分别具有900字节(Byte)无法使用的坏列。另外,在本实施例中,实体页面为快闪存储器180的最小读取单位。换言之,每一实体页面为一页面。值得注意的是,图3示意性的将坏列显示于实体页面P0_0以及P1_0尾端,但实际上坏列是随机散落于实体页面P0_0以及P1_0中。在本实施例中,产品设计者将同一芯片中具有不同坏列数量的第一存储器平面PL0以及第二存储器平面PL1的错误比特校正能力,皆定义为同一错误比特校正能力值。举例而言,在本实施例中,第一存储器平面PL0以及第二存储器平面PL1的错误比特校正能力值皆为59比特(Bit),59比特的错误比特校正能力值需要长度为104字节的校验码。以第一存储器平面PL0的实体页面P0_0以及第二存储器平面PL1的实体页面P1_0为例,实体页面P0_0以及实体页面P1_0分别具有7个数据块(Chunk)C0~C6以及一元数据段(Meta data)MD。每一数据块C0~C6分别具有一数据段以及一校验码段(parity)。数据段的长度为1024字节。校验码的长度为104字节。元数据段MD的长度为32字节。如图3所示,具有较少坏列的第二存储器平面PL1由于配合具有较多坏列的第一存储器平面PL0,会损失可使用的100字节,造成资源的浪费。值得注意的是,坏列的数量、元数据段MD的长度、数据段的长度、以及错误比特校正能力值皆为本发明的一种实施例,但本发明不限于此。每一个不同的存储器平面皆可能由于不同的生产环境具有不同数量的坏列。实体页面中数据块的数量、错误比特校正能力值以及数据段的长度皆可由产品开发者自行决定,其中元数据段MD的长度则是由所决定的错误比特校正能力值以及错误校验的种类而决定的。

图4为本发明所提供的实体页面的另一种实施例的示意图。在本实施例中,第一存储器平面PL0的每一实体页面P0_0~P0_N分别具有1000字节(Byte)无法使用的坏列,第二存储器平面PL1的每一实体页面P1_0~P1_N分别具有900字节(Byte)无法使用的坏列。值得注意的是,图4示意性的将坏列显示于实体页面P0_0以及实体页面P1_0尾端,但实际上坏列是随机散落于实体页面中。另外,在本实施例中,快闪存储器180的最小读取单位为页面P0’~PN’,如图5所示。换言之,在本实施例中,快闪存储器180的最小读取单位(页面)是由第 一存储器平面PL0中的一实体页面以及第二存储器平面PL1中的一实体页面所构成的。在本实施例中,由第一存储器平面PL0与第二存储器平面PL1所构成的页面P0’~PN’具有一错误比特校正能力值。值得注意的是,由于第一存储器平面PL0中的实体页面P0_0~P0_N以及第二存储器平面PL1中的实体页面P1_0~P1_N已分别依序被合并为页面P0’~PN’,因此在图3中所示未使用的字节(100Byte)可在本实施例中作为的校验码空间。由于有相较于图3中的实施例较多用以储存校验码的空间并且两个实体页面仅需要一个元数据MD,因此在本实施例中页面P0’~PN’可具有相较于图3的实施例更高的错误比特校正能力值。举例而言,在本实施例中,第一存储器平面PL0以及第二存储器平面PL1所构成的页面P0’~PN’的错误比特校正能力值为65比特,但本发明不限于此。65比特的错误比特校正能力值需要长度为114字节的校验码。以第一存储器平面PL0的实体页面P0_0以及第二存储器平面PL1的实体页面P1_0所构成的页面P0’为例,页面P0’具有14个数据块(Chunk)C0~C13以及一元数据段(Meta data)MD。每一数据块C0~C13分别具有一数据段以及一校验码段(parity)。数据段的长度为1024字节、校验码的长度为114字节以及元数据段MD的长度为32字节。值得注意的是,坏列的数量、元数据段MD的长度、数据段的长度、以及错误比特校正能力值皆为本发明的一种实施例,但本发明不限于此。每一个不同的存储器平面皆可能由于不同的生产环境具有不同数量的坏列。页面中数据块的数量、错误比特校正能力值以及数据段的长度皆可由产品开发者自行决定,其中元数据段MD的长度则是由所决定的错误比特校正能力值以及错误校验的种类决定。

详细而言,在图4以及图5的实施例中,控制器160被设置为根据用以对一目标页面P0’进行读取的一读取命令,读取第一存储器平面PL0中的第一实体页面P0_0以及第二存储器平面PL1中的第二实体页面P1_0。另外,控制器160更被设置为用以将所读取的第一实体页面P0_0的数据以及第二实体页面P1_0的数据传送至错误校正引擎168,使得错误校正引擎168可根据第一实体页面P0_0的数据以及第二实体页面P1_0的数据对目标页面P0’进行错误校正。详细而言,控制器160被设置为用以根据读取命令,依序传送多个数据块读取命令至快闪存储器180,以依序读取由第一实体页面P0_0以及第二实体页面 P1_0所构成的目标页面中的多个数据块C0~C13。值得注意的是,每一数据块读取命令中皆包括一地址闩锁致能信号(address latch enable,ALE)以及命令闩锁致能信号(command latch enable,CLE)。

另外,在某些实施例中,控制器160更被设置为用以借由数据块读取命令中的两者,分别对第一实体页面P0_0中的多个字节以及第二实体页面P1_0中的多个字节进行读取,以获得数据块中的一数据块。控制器160更被设置为用以将根据数据块读取命令所读取数据块C0~C13,传送至错误校正引擎168,使得错误校正引擎168可根据所读取的数据块C0~C13进行错误校正。举例而言,如图4所示,由于第一存储器平面PL0的存储器空间不够,因此数据块C6中的数据有一部分被分配至第二存储器平面PL1。因此,在本实施例中,控制器160更被设置为用以借由数据块读取命令中的两者,分别对第一实体页面P0_0中的多个字节以及第二实体页面P1_0中的多个字节进行读取,以获得数据块中的数据块C6。接着,控制器160更被设置为用以将根据数据块读取命令中的两者所读取的第一实体页面P0_0以及第二实体页面P1_0中的字节传送至错误校正引擎168,使得错误校正引擎168可根据所读取的第一实体页面P0_0以及第二实体页面P1_0中的字节对数据块C6进行错误校正。

值得注意的是,在一实施例中,快闪存储器180可更包括一对应表,用以储存页面P0’~PN’所对应的实体页面。当数据储存装置140上电时,控制器160可将对应表载入随机存取存储器166中,以当接收到读取命令或者写入命令时,将目标页面的地址转换为所相应的实体页面的地址,并根据所转换的地址对快闪存储器180进行存取。在另一实施例中,控制器160更可包括一页面转换电路。页面转换电路以硬件的方式,将第一存储器平面PL0中的实体页面P0_0~P0_N的数据以及第二存储器平面PL1中的实体页面P1_0~P1_N的数据合并为页面P0’~PN’的数据,以将所合并的的页面P0’~PN’数据提供给控制器160进行读取以及写入,但本发明不限于此。

图6为本发明所提供的一数据读取方法的一种实施例的流程图。数据读取方法适用于图1~图5所示的电子系统100。流程开始于步骤S600。

在步骤S600中,控制器160自主机120接收一读取命令,其中读取命令是用以对一目标页面进行读取。

接着,在步骤S602中,控制器160根据读取命令,读取第一存储器平面PL0中的一第一实体页面以及第二存储器平面PL1中的一第二实体页面。详细而言,控制器160被设置为用以根据读取命令,依序传送多个数据块读取命令至快闪存储器180,以依序读取由第一实体页面P0_0以及第二实体页面P1_0所构成的目标页面中的多个数据块C0~C13。值得注意的是,每一数据块读取命令中皆包括一地址闩锁致能信号(address latch enable,ALE)以及命令闩锁致能信号(command latch enable,CLE)。另外,在某些实施例中,控制器160更被设置为用以借由数据块读取命令中的两者,分别对第一实体页面P0_0中的多个字节以及第二实体页面P1_0中的多个字节进行读取,以获得数据块中的一数据块。举例而言,如图4所示,由于第一存储器平面PL0的存储器空间不够,因此数据块C6中的数据有一部分被分配至第二存储器平面PL1。因此,在本实施例中,控制器160更被设置为用以借由数据块读取命令中的两者,分别对第一实体页面P0_0中的多个字节以及第二实体页面P1_0中的多个字节进行读取,以获得数据块中的数据块C6。流程结束于步骤S602。

图7为本发明所提供的一数据读取方法的另一种实施例的流程图。数据读取方法适用于图1~图5所示的电子系统100。流程开始于步骤S700。值得注意的是,步骤S700~S702相似于步骤S600~S602,因此步骤S700~S702的细节请参考图7的说明,在此不再赘述。

在步骤S704中,控制器160更被设置为用以将所读取的第一实体页面P0_0的数据以及第二实体页面P1_0的数据传送至错误校正引擎168。详细而言,控制器160是被设置为用以将根据数据块读取命令所读取数据块,传送至错误校正引擎168。在图4的实施例中,当控制器160借由数据块读取命令中的两者,分别对第一实体页面P0_0中的多个字节以及第二实体页面P1_0中的多个字节进行读取后,控制器160将根据数据块读取命令中的两者所读取的第一实体页面P0_0以及第二实体页面P1_0中的字节传送至错误校正引擎168。

在步骤S706中,错误校正引擎168根据第一实体页面P0_0的数据以及第二实体页面P1_0的数据对目标页面进行错误校正。详细而言,错误校正引擎168是根据所读取的数据块进行错误校正。在图4的实施例中,错误校正引擎168是根据所读取的第一实体页面P0_0中的字节以及第二实体页面P1_0中的 字节对数据块C6进行错误校正。流程结束于步骤S706。

本发明所提供的数据储存装置140以及数据读取方法合并两个存储器平面的页面。换言之,数据储存装置140中的最小读取单位是由两个存储器平面的页面所构成的。

本发明的方法,或特定型态或其部分,可以以程序码的型态存在。程序码可储存于实体媒体,如软盘、光盘片、硬盘、或是任何其他机器可读取(如电脑可读取)储存媒体,亦或不限于外在形式的电脑程序产品,其中,当程序码被机器,如电脑载入且执行时,此机器变成用以参与本发明的装置。程序码也可通过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序码被机器,如电脑接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理单元实作时,程序码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。

惟以上所述者,仅为本发明的较佳实施例而已,当不能以此限定本发明实施的范围,即大凡依本发明权利要求及发明说明内容所作的简单的等效变化与修饰,皆仍属本发明专利涵盖的范围内。另外本发明的任一实施例或权利要求不须达成本发明所揭露的全部目的或优点或特点。此外,摘要部分和标题仅是用来辅助专利文件搜寻之用,并非用来限制本发明的权利范围。

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