数据写入方法、数据读取方法和数据存储器的制作方法

文档序号:6577656阅读:169来源:国知局
专利名称:数据写入方法、数据读取方法和数据存储器的制作方法
技术领域
本发明涉及数据存储技术领域,具体涉及数据写入方法、数据读取方法和数据存 储器。
背景技术
闪存(Flash)是我们日常生活中的常见非易失性存储器,资料储存型闪存(Nand Flash)是一种新型的Flash,,Nand Flash由多个块组成,一个块由多个页组成,一个页可 分为一个或多个扇区(一般一个扇区为512个字节)。一个页的大小由数据存储空间+冗 余空间组成。Nand Flash的操作是以一个块为擦除单位,以一个页为写入单位。按照磁盘 驱动器在向磁盘读取和写入数据时,要以扇区为单位的特性,我们在使用以Nand Flash为 存储介质时,也以扇区为单位进行操作,我们都能识别,所以需要在扇区的冗余字段中写入 扇区地址,以保证数据的寻址。扇区的冗余字段中还保存扇区保存的数据对应的错误检查和纠正 (ErrorChecking and Correcting,ECC)码,以实现对数据的纠错,纠错能力(纠错位数)与 ECC码的位数是成正比的。现在一般的Nand Flash页的使用是按扇区来划分,每个扇区都有冗余,冗余存储 两种数据,一是扇区的地址,二是ECC码。一般一个扇区地址需要四个字节,ECC每纠错一 个位需要13位的ECC码。以一个2K字节/页的FLASH为例,一个页的所有冗余字节数为 64字节,平分到每个扇区的冗余字节数据为16字节,除去扇区地址,这样冗余只有12字节 给ECC码使用,按ECC每纠错一个位需要13位的ECC码,即(12*8)/13取整,从而只有7个 位每扇区的ECC纠错能力。当出现错误较多的时,经常出现无法实现ECC纠错的情况。

发明内容
本发明实施例提供数据写入方法、数据读取方法和数据存储器,可以提高对数据 的ECC纠错能力。本发明实施例提供的一种数据写入方法,包括存储器接收待写入数据对应的扇区地址;所述每一个扇区地址标识至少两个扇 区;接收待写入数据,根据所述扇区地址将待写入数据写入对应的扇区;将所述每一个扇区的地址按照对应的扇区数目进行分割,并将分割后的地址分片 分别写入对应的至少两个扇区;将错误检查和纠正ECC码写入所述每个扇区的冗余字段中。本发明实施例提供的一种数据读取方法,包括获取待读取数据对应的扇区地址,所述每一个扇区地址标识至少两个扇区;根据所述扇区地址读取对应的至少两个扇区内的数据;根据扇区冗余字段存储的ECC码对数据进行错误纠正检查。
4
本发明实施例提供的一种数据存储器,包括存储控制器,用于接收读/写命令,对存储单元进行数据的读/写操作;存储单元,用于保存所述存储控制单元写入的数据;所述存储单元内每连续的至 少两个扇区用一个扇区地址标识;所述扇区地址按照扇区地址对应的扇区数目进行划分, 所述至少两个扇区分别保存所述扇区地址的部分地址分片。本发明实施例采用将每一个扇区地址标识至少两个扇区;并将每一个扇区的地址 按照对应的扇区数目进行分割,并将分割后的地址分片分别写入对应的至少两个扇区,每 个扇区保存部分扇区地址,可以释放更多的空间为ECC码使用,使得ECC纠错的能力大大提
尚o


图1是本发明实施例一数据存储方法的流程图;图2是本发明实施例一中扇区冗余字段的示意图;图3是是本发明实施例二数据读取方法的流程图;图4是本发明实施例三数据存储器的结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。本发明实施例提供数据写入方法、数据读取方法和数据存储器,以下分别进行详 细说明。实施例一、一种数据写入方法,流程图如图1所示,包括A1,存储器接收待写入数据对应的扇区地址,所述每一个扇区地址标识至少两个 扇区;可以理解,每个扇区地址标识的扇区个数可以根据具体情况进行选择,考虑的因 素可以包括空间的利用(一个扇区地址标识的扇区个数越多,在写入小数据时,浪费的空 间越多),资源的占用等因素。对于一个扇区地址标识两个扇区的情况,所述根据所述扇区地址将待写入数据写 入对应的扇区的过程包括将数据所述扇区地址对应的数据写入所述两个扇区的第一个扇区里,将所述数据 的剩余部分写入所述两个扇区的第二个扇区里。本实施例中,所述扇区地址用4个字节,当 然扇区的地址的长度与存储空间大小有关系,存储空间越多,则需要更大的扇区地址的寻 址范围,则扇区地址则越长。A2,接收待写入数据,根据所述扇区地址将待写入数据写入对应的扇区;A3,将所述每一个扇区的地址按照对应的扇区数目进行分割,并将分割后的地址 分片分别写入对应的至少两个扇区;一个扇区地址标识两个扇区的情况下,对于一个4字节的扇区地址,进行扇区地址的分割,也写入地址分片可以采用以下方式将扇区地址分割为高2字节和低2字节;将高2字节写入所述第一个扇区的冗余中;将所述第二字节写入所述第二扇区的 冗余中。A4,将错误检查和纠正ECC码写入所述每个扇区的剩余冗余字段中。可以理解,本实施例中,步骤A2 步骤A4数据的写入并无绝对顺序;具体的执行 顺序可以依据应用环境进行选择。本发明实施例中,可以在每一个扇区内存储数据存储状态标识;数据存储状态标 识可以用1个字节或者1个位来表示;当扇区内存在数据时,将扇区内的数据存储状态标识,置为有效状态;当扇区内不 存在数据时,将所述扇区内的数据存储状态标识,置为无效状态。上层管理通过该存储状态 标识对该扇区内数据的存储状态进行识别。如图2所示,是本实施例中,数据写入完成后,存储器中第N个扇区和第N+1个扇 区对应的16字节冗余的示意图,其中字节0和字节1存储扇区地址分片(本例中是低两字 节或者高两字节),字节2为存储状态标识,字节3至字节15用于保存ECC码,由于ECC码 由12字节扩充到了 13字节,因此可以纠错8位。实施例二、一种数据读取方法,流程如图3所示,包括 B1,获取待读取数据对应的扇区地址,所述每一个扇区地址标识至少两个扇区;B2,根据所述扇区地址读取对应的至少两个扇区内的数据;以每一个扇区地址标识两个扇区为例,读取数据的过程可以为查找扇区地址对应的两个扇区;依次读取两个扇区内的数据。依次读取两个扇区内的数据的过程包括获取第一个扇区内的数据存储状态标识,若所述第一个扇区内的数据存储标识被 置为有效状态,则读取第一个扇区的数据;读取完成后,获取第二个扇区内数据存储标识, 若所述第二个扇区内的数据存储标识被置为有效状态,则继续读取第二个扇区的数据。B3,根据扇区冗余字段存储的ECC码对数据进行错误纠正检查。错误纠正检查的过程可以包括判断数据是否有错,如果有错,则扇区冗余字段存储的ECC码对数据进行纠错。本发明实施例二提供的数据读取方法,可以实现对实施例一中存储的数据的读取 和ECC纠错,提高ECC纠错的能力。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可 以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储 介质可以包括R0M、RAM、FLASH、磁盘或光盘等。实施例三、一种数据存储器,结构示意图如图4所示,包括存储控制器410,用于接收读/写命令,对存储单元进行数据的读/写操作;存储单元420,用于保存所述存储控制单元410写入的数据;所述存储单元420内 每连续的至少两个扇区用一个扇区地址标识;所述扇区地址按照扇区地址对应的扇区数目 进行划分,将划分后的扇区地址分别保存在每个扇区的冗余中。本实施例中,一个扇区地址 标识两个扇区或更多的扇区,下面以一个扇区标识两个扇区为例进行说明。
在不设置数据存储状态标识的情况下所述存储单元内所述扇区地址标识的每一个扇区包含512字节的数据存储区,有 16字节的冗余存储区;所述16字节的冗余存储区中2字节用于存储扇区地址的低/高2字 节,14字节用于存储ECC码。在设置数据存储状态标识的情况下所述存储单元内所述扇区地址标识的每一个扇区包含512字节的数据存储区,有 16字节的冗余存储区;所述16字节的冗余存储区中2字节用于存储扇区地址的低/高2字 节,13字节用于存储ECC码,1字节用于保存数据存储状态标识,所述数据存储状态标识的 值用于指示数据存储区是否有数据。以上对本发明实施例所提供的数据写入方法、数据读取方法和数据存储器进行了 详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的 说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依 据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容 不应理解为对本发明的限制。
权利要求
一种数据写入方法,其特征在于,包括存储器接收待写入数据对应的扇区地址;所述每一个扇区地址标识至少两个扇区;接收待写入数据,根据所述扇区地址将待写入数据写入对应的扇区;将所述每一个扇区的地址按照对应的扇区数目进行分割,并将分割后的地址分片分别写入对应的至少两个扇区;将错误检查和纠正ECC码写入所述每个扇区的冗余字段中。
2.如权利要求1所述数据写入方法,其特征在于,所述每一个扇区地址标识两个扇区; 所述根据所述扇区地址将待写入数据写入对应的扇区的过程包括将数据所述扇区地址对应的数据写入所述两个扇区的第一个扇区里,将所述数据的剩 余部分写入所述两个扇区的第二个扇区里。
3.如权利要求2所述的数据写入方法,其特征在于,所述扇区地址用4个字节表示; 将所述每一个扇区的地址按照对应的扇区数目进行分割,并将分割后的地址分片分别写入对应的至少两个扇区的过程包括将扇区地址分割为高2字节和低2字节;将高2字节写入所述第一个扇区的冗余中;将所述第二字节写入所述第二扇区的冗余中。
4.如权利要求2所述的方法,其特征在于,所述每一个扇区包含数据存储状态标识; 当扇区内存在数据时,将扇区内的数据存储状态标识,置为有效状态;当扇区内不存在数据时,将所述扇区内的数据存储状态标识,置为无效状态。
5.一种数据读取方法,其特征在于,包括获取待读取数据对应的扇区地址,所述每一个扇区地址标识至少两个扇区; 根据所述扇区地址读取对应的至少两个扇区内的数据; 根据扇区冗余字段存储的ECC码对数据进行错误纠正检查。
6.如权利要求5所述的数据读取方法,其特征在于,所述根据扇区冗余字段存储的ECC 码对数据进行错误纠正检查的过程包括判断数据是否有错,如果有错,则扇区冗余字段存储的ECC码对数据进行纠错。
7.如权利要求6所述的方法,其特征在于,所述每一个扇区地址标识两个扇区; 所述根据所述扇区地址读取对应的至少两个扇区内的数据的过程包括查找扇区地址对应的两个扇区; 依次读取两个扇区内的数据。
8.如权利要求7所述的方法,其特征在于,依次读取两个扇区内的数据的过程包括 获取第一个扇区内的数据存储状态标识,若所述第一个扇区内的数据存储标识被置为有效状态,则读取第一个扇区的数据;读取完成后,获取第二个扇区内数据存储标识,若所 述第二个扇区内的数据存储标识被置为有效状态,则继续读取第二个扇区的数据。
9.一种数据存储器,其特征在于,包括存储控制器,用于接收读/写命令,对存储单元进行数据的读/写操作; 存储单元,用于保存所述存储控制单元写入的数据;所述存储单元内每连续的至少两 个扇区用一个扇区地址标识;所述扇区地址按照扇区地址对应的扇区数目进行划分,将划 分后的扇区地址分别保存在每个扇区的冗余中。
10.如权利要求9所述的数据存储器,其特征在于,一个扇区地址标识两个扇区; 所述存储单元内所述扇区地址标识的每一个扇区包含512字节的数据存储区,有16字节的冗余存储区;所述16字节的冗余存储区中2字节用于存储扇区地址的低/高2字节, 14字节用于存储ECC码。
11.如权利要求9所述的数据存储器,其特征在于,一个扇区地址标识两个扇区; 所述存储单元内所述扇区地址标识的每一个扇区包含512字节的数据存储区,16字节的冗余存储区;所述16字节的冗余存储区中2字节用于存储扇区地址的低/高2字节,13 字节用于存储ECC码,1字节用于保存数据存储状态标识,所述数据存储状态标识的值用于 指示数据存储区是否有数据。
全文摘要
本发明公开了数据写入方法、数据读取方法和数据存储器,本发明实施例采用将每一个扇区地址标识至少两个扇区;并将每一个扇区的地址按照对应的扇区数目进行分割,并将分割后的地址分片分别写入对应的至少两个扇区,每个扇区保存部分扇区地址,可以释放更多的空间为ECC码使用,使得ECC纠错的能力大大提高。
文档编号G06F11/08GK101853212SQ200910132658
公开日2010年10月6日 申请日期2009年3月30日 优先权日2009年3月30日
发明者单见元, 毕磊 申请人:芯邦科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1