用于数据存储的访问控制方法

文档序号:6383234阅读:263来源:国知局
专利名称:用于数据存储的访问控制方法
技术领域
本发明涉及数据存储技术,特别涉及一种用于数据存储的访问控制方法。
背景技术
在现有技术中,基于NAND FLASH (与非闪存)的SSD (Solid State Disk,固态硬盘)数据存储系统得益于高吞吐、低耗电、耐震、稳定性高、耐低温、发热量小、工作噪音低等众多优势,在企业高性能计算机、军事及产业、个人电脑、超低价个人电脑以及企业电脑等领域有着广阔的应用前景。
然而,随着NAND FLASH工艺尺寸的缩小以及MLC (Multi-Level Cell,多层单元) 技术的运用,使得NAND FLASH出现严重的可靠性问题。因此,现有技术中通常采用纠错码技术来解决NAND FLASH数据存储的可靠性问题。纠错码技术主要分为两个阶段,其中
在数据写入NAND FLASH的阶段中,纠错码技术通过相应算法为每一个page(页)的数据增加对应的冗余位、以使数据的原始信息能够更加分散地被存储,数据写入NANDFLASH 的阶段也可称为编码阶段;
在数据读出NAND FLASH的阶段中,纠错码技术利用冗余位找出对应page的数据的错误位置并进行纠正,从而正确地恢复得到数据的原始信息,数据读出NAND FLASH的阶段也可称为解码阶段。
基于上述说明可见,纠错码技术需要为每一个page的数据进一步增加冗余位,相应地,就增加了一个page的数据所要占用的存储空间容量。而且,纠错码技术的纠错性能越高,其添加的冗余位也就越多,相应地,一个page的数据所要占用的存储空间容量就越大。
对于某些可靠性相对较高的NAND FLASH来说,使用纠错能力较弱的纠错码既可以满足要求,编码后数据容量增加的比例基本在数据的原始信息的3%以下,可以实现数据的原始信息及对应的冗余位均存储于NAND FLASH的一页中。
但对于某些可靠性相对较低、或者对于数据可靠性有更高要求的NAND FLASH来说,需要更多的冗余位才能够实现相应的可靠性要求,在这种情况下,NAND FLASH中每一个 page中就不足以存储一个page的数据的原始信息和所有冗余位。发明内容
有鉴于此,本发明提供了一种用于数据存储的访问控制方法。
本发明提供的一种用于数据存储的访问控制方法,在应用该访问控制方法的存储架构中包含至少两个封装体,每个封装体中划分有数据存储区和冗余存储区;并且,该访问控制方法包括
al、当对所述存储架构执行写操作时,将数据的原始信息向其中一个封装体内的数据存储区写入、并同时将数据的冗余位向另一个封装体内的冗余存储区写入;
bl、当对所述存储架构执行读操作时,从一个封装体内的数据存储区中读取数据的原始信息、并同时从另一个封装体内的冗余存储区读取数据的冗余位。
优选地,所述封装体为NAND FLASH封装体。
可选地,所述数据为系统码数据,所述系统码数据包括信息数据段和冗余数据段, 所述步骤al从所述系统码数据的信息数据段中提取得到原始信息、从所述系统码数据的冗余数据段中提取得到冗余位,所述步骤bl将原始信息和冗余位分别填入至信息数据段和冗余数据段中、以得到所述系统码数据。
可选地,所述数据为非系统码数据,所述步骤al以预先设置的截取位置将所述非系统码数据截取为原始信息和冗余位,所述步骤bl将原始信息和冗余位拼接形成所述非系统码数据。
本发明提供的另一种用于数据存储的访问控制方法,在应用该访问控制方法的存储架构中包含至少一个封装体,该封装体中封装有至少两个存储单元,每个存储单元中划分有数据存储区和冗余存储区;并且,该访问控制方法包括
a2、当对所述存储架构执行写操作时,将数据的原始信息向其中一个存储单元内的数据存储区写入、并同时将数据的冗余位向另一个存储单元内的冗余存储区写入;
b2、当对所述存储架构执行读操作时,从一个存储单元内的数据存储区中读取数据的原始信息、并同时从另一个存储单元内的冗余存储区读取数据的冗余位。
优选地,所述封装体为NAND FLASH封装体。
更优地,所述存储单元为LUN、或为TARGET。
可选地,所述数据为系统码数据,所述系统码数据包括信息数据段和冗余数据段, 所述步骤a2从所述系统码数据的信息数据段中提取得到原始信息、从所述系统码数据的冗余数据段中提取得到冗余位,所述步骤b2将原始信息和冗余位分别填入至信息数据段和冗余数据段中、以得到所述系统码数据;
可选地,所述数据为非系统码数据,所述步骤a2以预先设置的截取位置将所述非系统码数据截取为原始信息和冗余位,所述步骤b2将原始信息和冗余位拼接形成所述非系统码数据。
本发明提供的又一种用于数据存储的访问控制方法,在应用该访问控制方法的存储架构中包含至少一个封装体,该封装体中封装有至少一个存储单元,该存储单元中包含有至少两个BANK,每个BANK中划分有数据存储区和冗余存储区;并且,该访问控制方法包括
a3、当对所述存储架构执行写操作时,将数据的原始信息向其中一个BANK内的数据存储区写入、并同时将数据的冗余位向另一个BANK内的冗余存储区写入;
b3、当对所述存储架构执行读操作时,从一个BANK内的数据存储区中读取数据的原始信息、并同时从另一个BANK内的冗余存储区读取数据的冗余位。
由此可见,本发明在封装体、或存储单元、或BANK中划分出专用于存放数据原始信息的数据存储区、以及专用于存放数据冗余位的冗余存储区,因此,数据的原始信息和冗余位就能够以分布式的存储方式分别存放在对应的数据存储区和冗余存储区、而无需集中存储在一个page中,从而,对于需要更多的冗余位的情况,就能够有足够的存储空间来存放数据的原始信息和冗余位;而且,在本发明中,同一数据的原始信息及冗余位所分别对应的数据存储区和冗余存储区位于不同封装体、或不同存储单元、或不同BANK中,因此,借助于封装体、或存储单元、或BANK可被并行访问的特性,对同一数据的读写访问可通过对不同封装体、或不同存储单元、或不同BANK的同时读写来实现,从而能够节省读写访问所需的时间,以确保存储性能不会由于采用分布式存储而被降低。


图1a和图1b为本发明实施例一中用于数据存储的访问控制方法的原理示意图2a和图2b为本发明实施例二中用于数据存储的访问控制方法的原理示意图3a和图3b为本发明实施例三中用于数据存储的访问控制方法的原理示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
在如图1a和图1b所示的实施例一中,存储架构包含至少两个NAND FLASH封装体 Γη (实施例一中的η为大于等于2的正整数),每个NAND FLASH封装体中均划分有数据存储区和冗余存储区;并且,实施例一中用于数据存储的访问控制方法包括
当对上述存储架构执行写操作时,参见图la,将数据的原始信息向其中一个 NANDFLASH封装体i (实施例一中的i为大于等于I且小于等于η的正整数)内的数据存储区写入、并同时将数据的冗余位向另一个NAND FLASH封装体j (实施例一中的j为大于等于I且小于等于η的正整数、实施例一中的j不等于实施例一中的i)内的冗余存储区写 A ;
当对上述存储架构执行读操作时,参见图1b,从一个NAND FLASH封装体i内的数据存储区中读取数据的原始信息、并同时从另一个NAND FLASH封装体j内的冗余存储区读取数据的冗余位。
可见,实施例一在各NAND FLASH封装体中划分出专用于存放数据原始信息的数据存储区、以及专用于存放数据冗余位的冗余存储区,因此,数据的原始信息和冗余位就能够以分布式的存储方式分别存放在对应的数据存储区和冗余存储区、而无需集中存储在一个 page中,从而,对于需要更多的冗余位的情况,就能够有足够的存储空间来存放数据的原始信息和冗余位。
而且,在实施例一中,同一数据的原始信息及冗余位所分别对应的数据存储区和冗余存储区位于不同NAND FLASH封装体i和j中,因此,借助于NAND FLASH封装体可被并行访问的特性,对同一数据的读写访问可通过对不同NAND FLASH封装体i和j同时发起的读写操作来实现,从而能够节省读写访问所需的时间,以确保存储性能不会由于采用分布式存储而被降低。
在如图2a和图2b所示的实施例二中,存储架构中包含至少一个NAND FLASH封装体,该封装体中封装有至少两个存储单元f η (实施例二中的η为大于等于2的正整数),每个存储单元中划分有数据存储区和冗余存储区,实际应用中,实施例二所述的存储单元可以为LUN (LogicalUnitNumber,逻辑单元号)或TARGET (目标);并且,实施例二中用于数据存储的访问控制方法包括
当对上述存储架构执行写操作时,参见图2a,将数据的原始信息向其中一个存储单元i (实施例二中的i为大于等于I且小于等于η的正整数)内的数据存储区写入、并同时将数据的冗余位向另一个存储单元j (实施例二中的j为大于等于I且小于等于η的正整数、实施例二中的j不等于实施例二中的i)内的冗余存储区写入;
当对上述存储架构执行读操作时,参见图2b,从一个存储单元i内的数据存储区中读取数据的原始信息、并同时从另一个存储单元j内的冗余存储区读取数据的冗余位。
可见,实施例二在NAND FLASH封装体的各存储单元中划分出专用于存放数据原始信息的数据存储区、以及专用于存放数据冗余位的冗余存储区,因此,数据的原始信息和冗余位就能够以分布式的存储方式分别存放在对应的数据存储区和冗余存储区、而无需集中存储在一个page中,从而,对于需要更多的冗余位的情况,就能够有足够的存储空间来存放数据的原始信息和冗余位。
而且,在实施例二中,同一数据的原始信息及冗余位所分别对应的数据存储区和冗余存储区位于不同存储单元i和j中,因此,借助于存储单元可被并行访问的特性,对同一数据的读写访问可通过对不同存储单元同时发起的读写操作来实现,从而能够节省读写访问所需的时间,以确保存储性能不会由于采用分布式存储而被降低。
在如图3a和图3b所示的实施例三中,存储架构中包含至少一个NAND FLASH封装体,该封装体中封装有 至少一个存储单元,一个存储单元中包括至少两个BANK (存储体)l"n (实施例三中的η为大于等于2的正整数),每个BANK中划分有数据存储区和冗余存储区, 实际应用中,实施例三所述的存储单元可以为LUN或TARGET ;并且,实施例三中用于数据存储的访问控制方法包括
当对上述存储架构执行写操作时,参见图3a,将数据的原始信息向其中一个 BANKi (实施例三中的i为大于等于I且小于等于η的正整数)内的数据存储区写入、并同时将数据的冗余位向另一个BANKj (实施例三中的j为大于等于I且小于等于η的正整数、 实施例三中的j不等于实施例三中的i)内的冗余存储区写入;
当对上述存储架构执行读操作时,参见图3b,从一个BANKi内的数据存储区中读取数据的原始信息、并同时从另一个BANKj内的冗余存储区读取数据的冗余位。
可见,实施例三在各BANK中划分出专用于存放数据原始信息的数据存储区、以及专用于存放数据冗余位的冗余存储区,因此,数据的原始信息和冗余位就能够以分布式的存储方式分别存放在对应的数据存储区和冗余存储区、而无需集中存储在一个page中,从而,对于需要更多的冗余位的情况,就能够有足够的存储空间来存放数据的原始信息和冗余位。
而且,在实施例三中,同一数据的原始信息及冗余位所分别对应的数据存储区和冗余存储区位于不同BANKi和j中,因此,借助于BANK可被并行访问的特性,对同一数据的读写访问可通过对不同存储单元同时发起的读写操作来实现,从而能够节省读写访问所需的时间,以确保存储性能不会由于采用分布式存储而被降低。
实际应用中,某些NAND FLASH封装体的存储单元会对不同BANK的并行访问存在一定的限制,即,在同一个存储单元中并行访问的不同BANK的块地址必须满足一定的逻辑关系,例如并行访问的不同BANK的块地址的地址之差只能为I。此时,在同一个存储单元中对不同BANK的并行访问就会被严格限制在很小的范围内,相应地,会导致实施例三会受到相应的约束。
因此,在具体实现实施例三时,需要尽可能选取存储单元不存在上述限制的 NANDFLASH封装体、或考虑存储单元存在的上述限制是否适用于实现实施例三的应用环境。 而对于实施例一和实施例二来说,就不会存在实施例三所涉及的限制。
另外,对于上述的实施例一、实施例二、以及实施例三来说,所涉及的数据既可以是系统码数据、也可以是非系统码数据。
系统码数据会明确地划分为信息数据段和冗余数据段,因此,若读写访问的数据为系统码数据,则当发起写访问时,可以从系统码数据的信息数据段中直接提取得到原始信息、从系统码数据的冗余数据段中直接提取得到冗余位;当发起读访问时,将原始信息和冗余位分别填入至信息数据段和冗余数据段中、即可得到系统码数据。
而非系统码数据则没有通过字段明确划分出原始信息和冗余位,因此,若读写访问的数据为非系统码数据,则当发起写访问时,可以按照预先设置的截取位置将非系统码数据截取为原始信息和冗余位,而当发起读访问时,可以将原始信息和冗余位直接拼接形成非系统码数据。
此外,上述的实施例一、实施例二、以及实施例三均以NAND FLASH为例,但实际应用中,对于除NAND FLASH之外的其他存储介质同样适用,本文对此就不再一一列举。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种用于数据存储的访问控制方法,其特征在于,在应用该访问控制方法的存储架构中包含至少两个封装体,每个封装体中划分有数据存储区和冗余存储区;并且,该访问控制方法包括 al、当对所述存储架构执行写操作时,将数据的原始信息向其中一个封装体内的数据存储区写入、并同时将数据的冗余位向另一个封装体内的冗余存储区写入; bl、当对所述存储架构执行读操作时,从一个封装体内的数据存储区中读取数据的原始信息、并同时从另一个封装体内的冗余存储区读取数据的冗余位。
2.根据权利要求I所述的访问控制方法,其特征在于,所述封装体为NANDFLASH封装体。
3.根据权利要求I或2所述的访问控制方法,其特征在于,所述数据为系统码数据,所述系统码数据包括信息数据段和冗余数据段,所述步骤al从所述系统码数据的信息数据段中提取得到原始信息、从所述系统码数据的冗余数据段中提取得到冗余位,所述步骤bl将原始信息和冗余位分别填入至信息数据段和冗余数据段中、以得到所述系统码数据。
4.根据权利要求I或2所述的访问控制方法,其特征在于,所述数据为非系统码数据,所述步骤al以预先设置的截取位置将所述非系统码数据截取为原始信息和冗余位,所述步骤bl将原始信息和冗余位拼接形成所述非系统码数据。
5.一种用于数据存储的访问控制方法,其特征在于,在应用该访问控制方法的存储架构中包含至少一个封装体,该封装体中封装有至少两个存储单元,每个存储单元中划分有数据存储区和冗余存储区;并且,该访问控制方法包括 a2、当对所述存储架构执行写操作时,将数据的原始信息向其中一个存储单元内的数据存储区写入、并同时将数据的冗余位向另一个存储单元内的冗余存储区写入; b2、当对所述存储架构执行读操作时,从一个存储单元内的数据存储区中读取数据的原始信息、并同时从另一个存储单元内的冗余存储区读取数据的冗余位。
6.根据权利要求5所述的访问控制方法,其特征在于,所述封装体为NANDFLASH封装体。
7.根据权利要求6所述的访问控制方法,其特征在于,所述存储单元为LUN、或为TARGET。
8.根据权利要求5或6或7所述的访问控制方法,其特征在于,所述数据为系统码数据,所述系统码数据包括信息数据段和冗余数据段,所述步骤a2从所述系统码数据的信息数据段中提取得到原始信息、从所述系统码数据的冗余数据段中提取得到冗余位,所述步骤b2将原始信息和冗余位分别填入至信息数据段和冗余数据段中、以得到所述系统码数据。
9.根据权利要求5或6或7所述的访问控制方法,其特征在于,所述数据为非系统码数据,所述步骤a2以预先设置的截取位置将所述非系统码数据截取为原始信息和冗余位,所述步骤b2将原始信息和冗余位拼接形成所述非系统码数据。
10.一种用于数据存储的访问控制方法,其特征在于,在应用该访问控制方法的存储架构中包含至少一个封装体,该封装体中封装有至少一个存储单元,该存储单元中包含有至少两个BANK,每个BANK中划分有数据存储区和冗余存储区;并且,该访问控制方法包括 a3、当对所述存储架构执行写操作时,将数据的原始信息向其中一个BANK内的数据存储区写入、并同时将数据的冗余位向另一个BANK内的冗余存储区写入; b3、当对所述存储架构执行读操作时,从一个BANK内的数据存储区中读取数据的原始信息、并同时从另一个BANK内的冗余存储区读取数据的冗余位。
全文摘要
本发明公开了一种用于数据存储的访问控制方法。本发明在封装体、或存储单元、或BANK中划分出数据存储区和冗余存储区,因此,数据的原始信息和冗余位就能够以分布式的存储方式分别存放在对应的数据存储区和冗余存储区、而无需集中存储在一个page中,从而能够提供足够的存储空间来存放数据的原始信息和冗余位;而且,在本发明中,同一数据的原始信息及冗余位所分别对应的数据存储区和冗余存储区位于不同封装体、或不同存储单元、或不同BANK中,因此,对同一数据的读写访问可通过对不同封装体、或不同存储单元、或不同BANK的同时读写来实现,从而能够节省读写访问所需的时间,以确保存储性能不会由于采用分布式存储而被降低。
文档编号G06F12/06GK102981976SQ20121051606
公开日2013年3月20日 申请日期2012年12月5日 优先权日2012年12月5日
发明者潘立阳, 麻昊志, 邹宏飞 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1