CN104461383B - 一种独立磁盘冗余阵列的实现方法及装置 - Google Patents
一种独立磁盘冗余阵列的实现方法及装置 Download PDFInfo
- Publication number
- CN104461383B CN104461383B CN201410710269.9A CN201410710269A CN104461383B CN 104461383 B CN104461383 B CN 104461383B CN 201410710269 A CN201410710269 A CN 201410710269A CN 104461383 B CN104461383 B CN 104461383B
- Authority
- CN
- China
- Prior art keywords
- data
- data channel
- solid state
- state hard
- hard disc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Human Computer Interaction (AREA)
Abstract
本发明公开了一种独立磁盘冗余阵列的实现方法及装置,涉及计算机技术领域。为了解决现有技术中存在的用于存储校验数据的冗余空间较大的问题而发明。其中,该方法应用于固态硬盘中,该固态硬盘包括至少两个数据通道,每个数据通道包括至少两个存储单元,该方法包括针对每个数据通道获取欲存储到所述每个数据通道的至少两个目标数据,所述至少两个目标数据欲存储到所述每个数据通道的目标存储单元中;根据已获取的至少两个目标数据确定一个校验数据,所述校验数据的大小与一个所述目标存储单元的大小相同。本发明主要应用在数据存储的过程中。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种独立磁盘冗余阵列的实现方法及装置。
背景技术
固态硬盘(Solid State Drive,简称SSD),是用固态电子存储芯片阵列制成的硬盘,由控制单元和存储单元组成,常见的SSD包括存储卡、U盘等。目前的SSD通常使用NANDFlash颗粒作为存储介质,随着NAND Flash颗粒制作工艺的不断更新,虽然SSD的读写速度得以提高,但是SSD的可靠性却随之降低。为了提高SSD的可靠性,现有的SSD厂商通常将独立磁盘冗余阵列(Redundant Arrays of independent Disks,简称RAID)技术应用于SSD中。
目前,在RAID技术的具体实现过程中,将SSD中的通道分为多个数据通道和一个冗余通道,从每个数据通道中获取一个目标数据,如1页(page),再将各个已获取的目标数据进行运算得到与之对应的校验数据,将该校验数据存储至冗余通道的一个存储单元中,这样,存储该校验数据的存储单元以及用于存储目标数据的存储单元构成条带,当条带中的某一个存储单元中存储的数据损坏时,可通过该条带中其他数据经过运算后得到。
表一
条带0 | 条带1 | 条带2 | … | 条带99 | |
CH0 | Page0 | Page1 | Page2 | Page99 | |
CH1 | Page0 | Page1 | Page2 | Page99 | |
… | |||||
CH7 | Page0 | Page1 | Page2 | Page99 | |
CH8 | Page0 | Page1 | Page2 | Page99 |
以SSD包括9个通道(Channel,简称CH),每个通道包括100个page为例,如表一所示,CH0至CH7为数据通道,CH8为冗余通道,CH8中page0中存储的 校验数据由CH0至CH7中page0的数据经异或运算后得到,CH0至CH8中的page0构成条带0,进而依次得到page1、page2至page99中的数据以及相应的条带1至条带99。然而,这样的RAID实现方式中,冗余通道的容量占总容量的比例为1/N,N为SSD中的通道总数。因而,在通道比较少的情况下,冗余通道占据的空间较大,例如当通道总数为9(8个数据通道,1个冗余通道)时,冗余空间占到10%以上。
发明内容
本发明的实施例提供一种独立磁盘冗余阵列的实现方法及装置,以解决现有技术中存在的用于存储校验数据的冗余空间较大的问题。
一方面,本发明提供了一种独立磁盘冗余阵列的实现方法,所述方法应用于固态硬盘中,所述固态硬盘包括至少两个数据通道,每个所述数据通道包括至少两个存储单元,所述包括:
针对每个数据通道获取欲存储到所述每个数据通道的至少两个目标数据,所述至少两个目标数据欲存储到所述每个数据通道的目标存储单元中;
根据已获取的至少两个目标数据确定一个校验数据,所述校验数据的大小与一个所述目标存储单元的大小相同。
结合第一方面,在第一方面的一种实现方式中,所述针对每个数据通道获取欲存储到所述每个数据通道的至少两个目标数据,具体包括:
针对每个所述数据通道,通过至少两个第一片选CE信号获取所述欲存储到所述每个数据通道的至少两个目标数据,每个所述第一片选信号对应一个目标数据。
结合第一方面,在第一方面的第二种实现方式中,所述针对每个数据通道获取欲存储到所述每个数据通道的至少两个目标数据,具体包括:
针对每个所述数据通道,通过至少一个第二片选CE信号获取所述欲存储到所述每个数据通道的至少两个目标数据,每个所述第二片选信号对应预设数量的目标存储单元。
结合第一方面,在第一方面的第三种实现方式中,在所述根据已获取的至 少两个目标数据确定一个校验数据之后,所述方法还包括:
将所述校验数据存储到预设通道的空闲存储单元中。
结合第一方面的第三种实现方式,在第一方面的第四种实现方式中,所述将所述校验数据存储到预设通道的空闲存储单元中,具体包括:
将所述校验数据存储到数据通道的空闲存储单元中;或者,
所述固态硬盘还包括一个冗余通道;所述将所述校验数据存储到预设通道的空闲存储单元中,具体包括:
将所述校验数据存储到所述冗余通道的空闲存储单元中。
结合第一方面、第一方面的第一种、第二种、第三种或第四种实现方式,在第一方面的第五种实现方式中,所述根据已获取的至少两个目标数据确定一个校验数据,具体包括:
将所述已获取的至少两个目标数据进行异或运算确定一个校验数据。
第二方面,本发明提供了一种独立磁盘冗余阵列的实现装置,所述装置应用于固态硬盘中,所述固态硬盘包括至少两个数据通道,每个所述数据通道包括至少两个存储单元,所述装置包括:
获取单元,用于针对所述固态硬盘中每个数据通道获取欲存储到所述每个数据通道的至少两个目标数据,所述至少两个目标数据欲存储到所述每个数据通道的目标存储单元中;
处理单元,用于根据所述获取单元已获取的至少两个目标数据确定一个校验数据,所述校验数据的大小与一个所述目标存储单元的大小相同。
结合第二方面,在第二方面的第一种实现方式中,
所述获取单元,还用于针对所述固态硬盘中每个所述数据通道,通过至少两个第一片选CE信号获取所述欲存储到所述每个数据通道的至少两个目标数据,每个所述第一片选信号对应选择一个目标存储单元。
结合第二方面,在第二方面的第二种实现方式中,
所述获取单元,还用于针对所述固态硬盘中每个所述数据通道,通过至少一个第二片选CE信号获取所述欲存储到所述每个数据通道的至少两个目标数据,每个所述第二片选信号对应预设数量的目标存储单元。
结合第二方面,在第二方面的第三种实现方式中,
所述装置还包括:
存储单元,用于将所述处理单元得到的所述校验数据存储到所述固态硬盘中预设通道的空闲存储单元中。
结合第二方面,在第二方面的第四种实现方式中,
所述存储单元,还用于将所述处理单元确定的校验数据存储到所述固态硬盘中数据通道的空闲存储单元中;或者,
所述固态硬盘还包括一个冗余通道;所述存储单元还用于,将所述校验数据存储到所述固态硬盘中所述冗余通道的空闲存储单元中。
结合第二方面、第二方面的第一种、第二种、第三种或者第四种实现方式,在第二方面的第五种实现方式中,
所述处理单元,还用于将所述获取单元已获取的至少两个目标数据进行异或运算确定一个校验数据。
第三方面,本发明还提供了一种独立磁盘冗余阵列的实现装置,该装置包括处理器和固态硬盘,所述固态硬盘包括至少两个数据通道,每个所述数据通道包括至少两个存储单元;
所述处理器用于,用于针对所述固态硬盘中的每个数据通道获取欲存储到所述每个数据通道的至少两个目标数据,所述至少两个目标数据欲存储到所述每个数据通道的目标存储单元中;
根据已获取的所述至少两个目标数据确定一个校验数据,所述校验数据的大小与一个所述目标存储单元的大小相同。
结合第三方面,在第三方面的第一种实现方式中,
所述固态硬盘还包括至少两个第一片选CE信号引脚,
所述处理器还用于针对所述固态硬盘中每个所述数据通道,通过所述至少两个第一片选CE信号引脚上的第一片选CE信号,获取所述欲存储到所述每个数据通道的至少两个目标数据,每个所述第一片选信号对应选择一个目标存储单元。
结合第三方面,在第三方面的第二种实现方式中,
所述固态硬盘还包括至少一个第二片选CE信号引脚;
所述处理器,还用于针对所述固态硬盘中每个所述数据通道,通过所述至少一个第二片选CE信号引脚上的第二片选CE信号,获取所述欲存储到所述每个数据通道的至少两个目标数据,每个所述第二片选信号对应预设数量的目标存储单元。
结合第三方面,在第三方面的第三种实现方式中,
所述处理器还用于,将所述校验数据存储到所述固态硬盘中预设通道的空闲存储单元中。
结合第三方面的第三种实现方式,在第三方面的第四种实现方式中,
所述处理器,还用于将所述校验数据存储到所述固态硬盘中数据通道的空闲存储单元中;或者,
所述固态硬盘还包括一个冗余通道;所述处理器,还用于将所述校验数据存储到所述固态硬盘中所述冗余通道的空闲存储单元中。
结合第三方面、第三方面的第一种、第二种、第三种或者第四种实现方式,在第三方面的第五种实现方式中,
所述处理器还用于,将已获取的至少两个目标数据进行异或运算确定一个校验数据。
本发明提供的独立磁盘冗余阵列的实现方法及装置,从每个数据通道中获取至少两个欲存储到数据通道中的目标存储单元的目标数据,将已获取的所有目标数据计算得到一个仅占据一个目标存储单元的容量的校验数据。与现有技术中SSD中的通道分为多个数据通道和一个冗余通道,从每个数据通道中仅获取一个目标数据,再将所有已获取的目标数据进行运算得到校验数据相比,本发明中由于从每个数据通道中获取的,用于计算得到一个校验数据的目标数据的个数增多,因而在每个校验数据的容量不变的前提下,得到的校验数据的总数量减少,则所有校验数据的总容量减少,因而能够节约用于存储校验数据的存储容量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种独立磁盘冗余阵列的实现方法的流程图;
图2为本发明提供的又一种独立磁盘冗余阵列的实现方法的流程图;
图3为本发明提供的通道与CE引脚的关系示意图;
图3a为本发明提供的从每个通道中选择2个存储单元的结构示意图;
图3b为本发明提供的从每个通道中选择4个存储单元的结构示意图;
图4为本发明提供的再一种独立磁盘冗余阵列的实现方法的流程图;
图5为本发明提供的一种独立磁盘冗余阵列的实现装置的结构示意图;
图6为本发明提供的另一种独立磁盘冗余阵列的实现装置的结构示意图;
图7为本发明提供的再一种独立磁盘冗余阵列的实现装置的结构示意图;
图8为本发明提供的一种独立磁盘冗余阵列的实现装置的结构示意图;
图9为本发明提供的一种独立磁盘冗余阵列的实现装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术中存在的在通道比较少的情况下,冗余通道占据的空间较大的问题,本发明实施例提供了一种独立磁盘冗余阵列的实现方法,该方法应用于固态硬盘中,所述固态硬盘包括至少两个数据通道,每个数据通道包括至少两个存储单元,如图1所示,该方法包括:
S101:针对每个数据通道获取欲存储到所述每个数据通道的至少两个目标数据,所述至少两个目标数据欲存储到所述每个数据通道的目标存储单元中。
一般而言,SSD中的通道用以进行数据的读写。在不同的RAID实现方式中, 通道的划分不同。例如在RAID4的实现方式中,所有的校验数据均存储在冗余通道中,数据通道仅仅用来进行数据的存储,而在RAID5的具体实现方式中,每个数据通道中有一个存储单元用来存储校验数据,因而一个数据通道中既有用于存储数据的存储单元,也有用于存储校验数据的存储单元。无论是哪种RAID实现方式,每个数据通道均包含有多个用于存储数据的存储单元,因而每个数据通道可以存储多个数据。
一般而言,在RAID实现方式中,需要将一定数量的目标数据经计算得到校验数据后进行存储,因而在将数据存储到数据通道的存储单元中前,为了计算得到校验值,本实施例中首先针对每个通道获取待存储的目标数据。
本实施例中所指的一个目标数据的大小与一个目标存储单元的大小相同,既可以为一个ECC纠错单元的容量,也可以为数据读写的最小容量,如1页,也可以为本领域内进行条带划分时选取的单位存储单元的容量大小。所指的至少两个,用于与现有技术进行区分,表明本实施例中所选择的目标数据为多个,可以不限于两个,因而并不限定目标数据的具体数量,获取的目标数据的数量越多,则经计算得到的校验数据的总数量越少,因而校验数据所占据的总容量越少。该数量的选择可根据硬件布局进行选择。
与现有技术中每个数据通道仅仅选择一个目标数据不同的是,本实施例从每一个数据通道中选择至少两个欲存储到数据通道中的目标存储单元的目标数据,因此,用于得到一个校验数据的目标数据的数量得以扩充。
S102:根据已获取的至少两个目标数据确定一个校验数据,所述校验数据的大小与一个所述目标存储单元的大小相同。
在RAID技术的实现方式中,需要将已获取的所有目标数据经过计算后得到一个校验数据,各个存储数据的存储单元以及存储对应的校验数据的存储单元构成一个条带,当条带中的某个数据损坏时,可通过其他未损坏的数据以及校验数据进行恢复。因而,本步骤中,需要将步骤S101中已获取的所有目标数据经过一定的运算得到与之对应的校验数据,该校验数据所在的存储单元与所有用于存储已获取目标数据的目标存储单元构成一个条带,且得到的校验数据仅仅占据一个目标存储单元的大小,这样与现有技术相比,用于计算得到一个校 验数据而获取的目标数据的个数虽然增加,但计算得到的该一个校验数据所占据的容量并未增加。
在本实施例的一种实现方式中,上述根据已获取的至少两个目标数据确定一个校验数据,具体包括:
将已获取的所有目标数据进行异或运算确定一个校验数据。异或运算的具体过程可参考现有技术。此外,本实施例中校验数据还可以通过其他算法计算得到。
为了更清楚的解释本步骤,本实施例将以下述例子进行解释。
例如:SSD包括CH0至CH7共8个数据通道,每个数据通道包括100页,则如表二所示,从每一个数据通道中获取欲存储到该通道的4个目标存储单元的4个目标数据,每个存储单元为1页,也即每个目标数据的大小为1页,即从所有数据通道中共获取32个目标存储数据,将所述32个目标存储数据进行异或运算得到一个校验数据,该校验数据所在的存储单元与用于存储32个目标数据的32个目标存储单元构成一个条带,该校验数据的大小与一个目标存储单元的大小相同即也为1页。如当一个目标存储单元的大小为8k时,则将32个目标存储数据经过异或运算得到的校验数据的大小也为8k,进而总共可以得到25个校验数据,所有校验数据的总容量为200K。此外,由该表格可以看出,可以将所有已计算出的校验数据存储至通道CH8中。
表二
现有技术中,如表三所示,从每个数据通道中获取一个目标数据,则每8个目标数据对应于一个8k的校验数据,进而总共可以得到100个8k的校验数据,所有校验数据的总容量为800k。此外,由该表格可以看出,可以将所有已计算出的校验数据存储至通道CH8中。
表三
条带0 | 条带1 | 条带2 | … | 条带99 | |
CH0 | Page0 | Page1 | Page2 | Page99 | |
CH1 | Page0 | Page1 | Page2 | Page99 | |
… | |||||
CH7 | Page0 | Page1 | Page2 | Page99 | |
CH8 | Page0 | Page1 | Page2 | Page99 |
因而相比于现有技术,本实施例中的校验数据的总容量减少。
本发明提供的独立磁盘冗余阵列的实现方法,从每个数据通道中获取至少两个欲存储到数据通道中的目标存储单元的目标数据,将已获取的所有目标数据计算得到一个仅占据一个目标存储单元的容量的校验数据。与现有技术中SSD中的通道分为多个数据通道和一个冗余通道,从每个数据通道中仅获取一个目标数据,再将所有已获取的目标数据进行运算得到校验数据相比,本发明中由于从每个数据通道中获取的,用于计算得到一个校验数据的目标数据的个数增多,因而在每个校验数据的容量不变的前提下,得到的校验数据的总数量减少,则所有校验数据的总容量减少,因而能够节约用于存储校验数据的存储容量。
进一步的,在上述步骤根据已获取的至少两个目标数据确定一个校验数据之后,该方法还包括:将校验数据存储到预设通道的空闲存储单元中。
本方法应用于不同的RAID实现方式中时,选取的预设通道不同。
其中,在本实施例的一种实现方式中,该预设通道为数据通道,本步骤即为将校验数据存储到数据通道的空闲存储单元中。
例如,在RAID5的具体实现过程中,SSD中的数据通道可能存储有校验数据。本实施例可以应用在RAID5中,因而本实施例中也可以将校验数据存储到数据通道中的未存储数据的空闲存储单元中。
在本实施例的另一种实现方式中,所述固态硬盘还包括一个冗余通道;所述将所述校验数据存储到预设通道的空闲存储单元中,具体包括:
将所述校验数据存储到所述冗余通道的空闲存储单元中。
例如,在RAID4的具体实现过程中,SSD中的通道既包括冗余通道也包括数据通道,所有的校验数据均保存在冗余通道中。本实施例可以应用在RAID4中,因而可以将得到的校验数据存储到冗余通道的空闲存储单元中。此外,由于校验数据占据的容量减少,因而在RAID4的实现方式中,在数据通道的数量及容量不变的前提下,可以减少冗余通道的容量,因而构成冗余通道的存储介质可以采用与构成数据通道的容量不同的芯片,如容量较小的芯片,进而能够节约成本。
需要说明的是,与现有技术中的冗余通道不同的是,本实施例中的冗余通道的容量并不限定为一个数据通道的容量,本实施例中冗余通道的容量与校验数据的个数及每个校验数据的容量相关,也即本实施例中冗余通道的容量是可变的。
以本方法在RAID4中的具体应用为例,假设SSD共包括8个数据通道,1个冗余通道,每个数据通道由1024个页构成,每页的容量为8k,可通过每个数据通道选择2个存储单元,每个存储单元为1页,也即每个通道选择2页,则8个通道共16页,将这16页中存储的数据进行计算得出一个8k的校验数据,将得出的校验数据存储在冗余通道的1页中,这样,冗余通道的总容量为512页即可实现对所有校验数据的存储。此外,本方法中也可通过每个数据通道选择4个页,8个通道共32个页,将该32个页计算得到一个容量为1页的校验数据,将该校验数据存储至冗余通道中。这样,每32页计算得到一页校验数据,则用于存储校验数据的冗余通道的总容量为256页。
进一步的,作为图1所示方法的细化,本发明实施例还提供了一种独立磁盘冗余阵列的实现方法,在该方法中,上述步骤S101:针对每个数据通道获取欲 存储到所述每个数据通道的至少两个目标数据,具体为下述步骤S201;因而如图2所示,该方法具体包括:
S201:针对每个所述数据通道,通过至少两个第一片选CE信号获取所述欲存储到所述每个数据通道的至少两个目标数据,每个所述第一片选信号对应一个目标数据。
现有的构成SSD存储介质的NAND Flash颗粒一般具有一个或多个CE引脚,每个CE引脚对应有一定的存储容量,以整个SSD的容量为32G为例,则每个CE引脚对应的容量为8G。SSD的每个通道可能对应一个或多个CE引脚,因而SSD中的每个通道的容量可能为一个CE引脚对应的容量,也可能为多个CE引脚对应的容量之和。控制芯片和Nand Flash颗粒通过使能不同的CE引脚选择不同的物理存储地址进行数据的读写,控制芯片与存储芯片的物理连接可参考现有技术。控制芯片对数据进行读写的最小地址为一个ECC纠错单元,一般为512B(字节),也可能为1K、2K等,控制芯片进行数据读写的最小单位也可能为1页(page)。前文中提到的存储单元为逻辑上进行数据读写的最小容量,一个CE引脚对应的物理地址可能包括多个存储单元。综上所述,通道和存储单元为逻辑上的概念,实际物理实现中,控制芯片与存储芯片的CE引脚相连形成通道,进行数据读写时,控制芯片以page(1page的容量小于1个CE引脚对应的容量)为最小的读写单位,因而逻辑上的page对应于不同的物理上的CE引脚。通道、CE、存储单元(以page为例)的对应关系如表四所示。
表四
本方法中,在获取目标数据时,从每个数据通道对应的多个CE信号中对应的物理地址中分别获取一个目标数据,选择的CE信号的数量与需要获取的目标数据的数量相同。如当SSD包括8个数据通道,1个通道对应有8个CE引脚时,从每个通道中获取的4个目标数据可以分别为欲存储至每个通道中的4个不同的CE引脚对应的目标存储单元的目标数据,这样选择的32个目标数据所对应的目标存储单元分别来自32个不同的CE引脚。由于不同的CE对应的物理地址可以并发进行数据的读写,因而可以同时通过多个片选信号获取目标数据。且通过一个片选信号获取一个欲存储至该片选信号对应的目标存储单元的目标数据,这样将获取的所有目标数据进行运算得到校验数据的速度可以提升。
S202:根据已获取的至少两个目标数据确定一个校验数据,所述校验数据的大小与一个所述目标存储单元的大小相同。
步骤S202的具体实现过程可参考步骤S102,本方法不再赘述。
本方法中,每个通道在获取目标数据时,由于每个通道对应有CE引脚,因而可通过CE引脚实现对欲存储所述目标数据的目标存储单元的获取,又由于可以同时驱动不同的CE引脚以实现对数据的并发读写,因而本方法可以一次性的获取所有欲存储至目标存储单元的目标数据以进行校验数据的计算。相应的,当某个目标存储单元中的数据损坏需要恢复时,本方法可以快速的把该目标存储单元所在的条带内的数据全部读出,再通过运算获得损坏数据。
作为图2所示方法的实际应用,在本实施例的一种应用场景中,如图3所示,以一个NAND Flash颗粒具备四个CE引脚,其中两个CE引脚属于同一通道,另外两个CE引脚属于另一通道为例,则一个控制芯片与16个NAND Flash颗粒 相连,使得所有CE引脚分别属于CH0至CH7共8个数据通道,CH8为冗余通道。
如图3a所示,若从每个数据通道中分别获取两个目标数据,且该两个目标数据为欲存储至分别属于两个不同的CE的目标存储单元的数据,则将8个通道共16个目标数据进行计算得到一个校验数据。且在存储时,将该校验数据存储至冗余通道的一个CE的一个存储单元中,这样可将依次得到的所有校验数据分别存储在冗余通道的各个CE的各个存储单元中,也即该冗余通道仅需要四个CE具备的容量即可存储所有的校验数据,如图3中的实线所示。因而,与数据通道对应的NAND Flash颗粒相比,该冗余通道对应的NAND Flash颗粒可以为小容量的NAND Flash颗粒。
如图3b所示,若从每个数据通道中分别获取四个目标数据,每个目标数据又分别属于该数据通道对应的一个CE中,则将32个目标数据计算得到一个校验数据。在存储校验数据时,将该校验数据储存在冗余通道CH8的CE0中的一个储存单元中,这样将得到的存储单元依次存储在CE0的其他存储单元中,当CE0存储完后,再依次存储至CE1中;CH8与CE的对应关系如图3中虚线框所示。因而冗余通道只需与两个CE引脚进行相连即可实现存储所有的校验数据,冗余通道所占据的容量进一步减少。
进一步的,作为图1所示方法的细化,本发明实施例还提供了一种独立磁盘冗余阵列的实现方法,在该方法中,上述步骤S101:针对每个数据通道获取欲存储到所述每个数据通道的至少两个目标数据具体为下述步骤S401。因而,如图4所示,该方法具体为:
S401:针对每个所述数据通道,通过至少一个第二片选CE信号获取所述欲存储到所述每个数据通道的至少两个目标数据,每个所述第二片选信号对应预设数量的目标存储单元。
本方法中,由于每个数据通道对应有多个CE,每个CE对应有多个存储单元,因而在从每个数据通道中获取目标数据时,除了采用图2所示方法中的每个CE选取一个目标数据,也可以通过每个CE分别获取预设数量的目标数据,也即每个第二片选信号对应预设数量的目标存储单元;通过多个CE共获取所有目标数据。如当SSD包括8个数据通道,1个通道对应有8个CE引脚时,则从每个通 道中获取的4个目标数据可以为欲存储至每个通道中的2个不同的CE引脚所对应的目标存储单元,每2个目标存储单元来自1个CE引脚的形式来实现。如此,获取的32个目标数据分别来自16个不同的CE引脚。
由于每驱动一个CE引脚会产生一定的功耗,因而减少CE引脚的数量可以减少功耗。
S402:根据已获取的至少两个目标数据确定一个校验数据,所述校验数据的大小与一个所述目标存储单元的大小相同。
步骤S402的具体实现过程可参考步骤S102,本方法不再赘述。
本方法中,在选取目标存储单元时,通过选取每个通道中对应的多个CE引脚中的某些CE引脚,并通过该特定的CE引脚分别获取预设数量的目标存储数据,该预设数量的目标存储数据为欲存储至CE引脚对应的目标存储单元的数据,因而在实现每个通道中获取多个目标数据的过程中,不仅可以节约容量,还可以减少功耗。
此外,还需要说明的是,上述表格以及例子仅用于对本实施例进行解释说明,其中具体数字并不具备实际意义,实际应用中,一个通道可能不仅仅包括8个CE,每个CE不仅仅包括10个存储单元,一个通道可能包括成千上万个存储单元。
作为上述各图所示方法的应用,本发明实施例还提供了一种独立磁盘冗余阵列的实现装置,如图5所示,所述装置包括固态硬盘500,所述固态硬盘包括至少两个数据通道,每个所述数据通道包括至少两个存储单元:
获取单元501,用于针对所述固态硬盘500中每个数据通道获取欲存储到所述每个数据通道的至少两个目标数据,所述至少两个目标数据欲存储到所述每个数据通道的目标存储单元中。
处理单元502,用于根据获取单元501已获取的至少两个目标数据确定一个校验数据,所述校验数据的大小与一个所述目标存储单元的大小相同。
进一步的,获取单元501,还用于针对所述固态硬盘500中每个所述数据通道,通过至少两个第一片选CE信号获取所述欲存储到所述每个数据通道的至少两个目标数据,每个所述第一片选信号对应选择一个目标存储单元。
进一步的,获取单元501,还用于针对所述固态硬盘500中每个所述数据通道,通过至少一个第二片选CE信号获取所述欲存储到所述每个数据通道的至少两个目标数据,每个所述第二片选信号对应预设数量的目标存储单元。
进一步的,如图6所示,该装置还包括存储单元601,用于将处理单元502得到的所述校验数据存储到所述固态硬盘500中预设通道的空闲存储单元中。
进一步的,存储单元601,还用于将处理单元502确定的校验数据存储到所述固态硬盘500中数据通道的空闲存储单元中;或者,
所述固态硬盘500还包括一个冗余通道;存储单元601还用于,将所述校验数据存储到所述固态硬盘500中所述冗余通道的空闲存储单元中。
进一步的,所述处理单元502,还用于将所述获取单元501已获取的至少两个目标数据进行异或运算确定一个校验数据。
本发明提供的独立磁盘冗余阵列的实现装置,从每个数据通道中获取至少两个欲存储到数据通道中的目标存储单元的目标数据,将已获取的所有目标数据计算得到一个仅占据一个目标存储单元的容量的校验数据。与现有技术中SSD中的通道分为多个数据通道和一个冗余通道,从每个数据通道中仅获取一个目标数据,再将所有已获取的目标数据进行运算得到校验数据相比,本发明中由于从每个数据通道中获取的,用于计算得到一个校验数据的目标数据的个数增多,因而在每个校验数据的容量不变的前提下,得到的校验数据的总数量减少,则所有校验数据的总容量减少,因而能够节约用于存储校验数据的存储容量。
作为上述各图所示方法的具体实现,本实施例还提供了一种独立磁盘冗余阵列的实现装置,如图7所示,该装置包括处理器701和固态硬盘702,所述固态硬盘702包括至少两个数据通道,每个所述数据通道包括至少两个存储单元,处理器701与固态硬盘702相连。
处理器701,用于针对固态硬盘702中的每个数据通道获取欲存储到每个数据通道的至少两个目标数据,所述至少两个目标数据欲存储到所述每个数据通道的目标存储单元中;
根据已获取的所述至少两个目标数据确定一个校验数据,所述校验数据的 大小与一个所述目标存储单元的大小相同。
进一步的,如图8所示,固态硬盘702还包括至少两个第一片选CE信号引脚801。
处理器701还用于针对固态硬盘702中每个数据通道,通过至少两个第一片选CE信号引脚801上的第一片选CE信号,获取所述欲存储到所述每个数据通道的至少两个目标数据,每个所述第一片选信号对应选择一个目标存储单元。
进一步的,如图9所示,固态硬盘702还包括至少一个第二片选CE信号引脚901。
处理器701,还用于针对固态硬盘702中每个所述数据通道,通过所述至少一个第二片选CE信号引脚901上的第二片选CE信号,获取所述欲存储到所述每个数据通道的至少两个目标数据,每个所述第二片选信号对应预设数量的目标存储单元。
进一步的,处理器701还用于,将校验数据存储到所述固态硬盘702中预设通道的空闲存储单元中。
进一步的,处理器701,还用于将所述校验数据存储到所述固态硬盘702中数据通道的空闲存储单元中;或者,
固态硬盘702还包括一个冗余通道;处理器701,还用于将所述校验数据存储到所述固态硬盘702中所述冗余通道的空闲存储单元中。
进一步的,处理器701还用于,将已获取的至少两个目标数据进行异或运算确定一个校验数据。
本发明提供的独立磁盘冗余阵列的实现装置,从每个数据通道中获取至少两个欲存储到数据通道中的目标存储单元的目标数据,将已获取的所有目标数据计算得到一个仅占据一个目标存储单元的容量的校验数据。与现有技术中SSD中的通道分为多个数据通道和一个冗余通道,从每个数据通道中仅获取一个目标数据,再将所有已获取的目标数据进行运算得到校验数据相比,本发明中由于从每个数据通道中获取的,用于计算得到一个校验数据的目标数据的个数增多,因而在每个校验数据的容量不变的前提下,得到的校验数据的总数量减少,则所有校验数据的总容量减少,因而能够节约用于存储校验数据的存储容量
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
Claims (18)
1.一种独立磁盘冗余阵列的实现方法,其特征在于,所述方法应用于固态硬盘中,所述固态硬盘包括至少两个数据通道,每个所述数据通道包括至少两个存储单元,所述方法包括:
针对每个数据通道获取欲存储到所述每个数据通道的至少两个目标数据,所述至少两个目标数据欲存储到所述每个数据通道的目标存储单元中;
根据已获取的至少两个目标数据确定一个校验数据,所述校验数据的大小与一个所述目标存储单元的大小相同。
2.根据权利要求1所述的独立磁盘冗余阵列的实现方法,其特征在于,所述针对每个数据通道获取欲存储到所述每个数据通道的至少两个目标数据,具体包括:
针对每个所述数据通道,通过至少两个第一片选CE信号获取所述欲存储到所述每个数据通道的至少两个目标数据,每个所述第一片选信号对应一个目标数据。
3.根据权利要求1所述的独立磁盘冗余阵列的实现方法,其特征在于,所述针对每个数据通道获取欲存储到所述每个数据通道的至少两个目标数据,具体包括:
针对每个所述数据通道,通过至少一个第二片选CE信号获取所述欲存储到所述每个数据通道的至少两个目标数据,每个所述第二片选信号对应预设数量的目标存储单元。
4.根据权利要求1所述的独立磁盘冗余阵列的实现方法,其特征在于,在所述根据已获取的至少两个目标数据确定一个校验数据之后,所述方法还包括:
将所述校验数据存储到预设通道的空闲存储单元中。
5.根据权利要求4所述的独立磁盘冗余阵列的实现方法,其特征在于,所述将所述校验数据存储到预设通道的空闲存储单元中,具体包括:
将所述校验数据存储到数据通道的空闲存储单元中;或者,
所述固态硬盘还包括一个冗余通道;所述将所述校验数据存储到预设通道的空闲存储单元中,具体包括:
将所述校验数据存储到所述冗余通道的空闲存储单元中。
6.根据权利要求1至5中任意一项所述的独立磁盘冗余阵列的实现方法,其特征在于,所述根据已获取的至少两个目标数据确定一个校验数据,具体包括:
将所述已获取的至少两个目标数据进行异或运算确定一个校验数据。
7.一种独立磁盘冗余阵列的实现装置,其特征在于,所述装置包括固态硬盘,所述固态硬盘包括至少两个数据通道,每个所述数据通道包括至少两个存储单元,所述装置包括:
获取单元,用于针对所述固态硬盘中每个数据通道获取欲存储到所述每个数据通道的至少两个目标数据,所述至少两个目标数据欲存储到所述每个数据通道的目标存储单元中;
处理单元,用于根据所述获取单元已获取的至少两个目标数据确定一个校验数据,所述校验数据的大小与一个所述目标存储单元的大小相同。
8.根据权利要求7所述的独立磁盘冗余阵列的实现装置,其特征在于,
所述获取单元,还用于针对所述固态硬盘中每个所述数据通道,通过至少两个第一片选CE信号获取所述欲存储到所述每个数据通道的至少两个目标数据,每个所述第一片选信号对应选择一个目标存储单元。
9.根据权利要求7所述的独立磁盘冗余阵列的实现装置,其特征在于,
所述获取单元,还用于针对所述固态硬盘中每个所述数据通道,通过至少一个第二片选CE信号获取所述欲存储到所述每个数据通道的至少两个目标数据,每个所述第二片选信号对应预设数量的目标存储单元。
10.根据权利要求7所述的独立磁盘冗余阵列的实现装置,其特征在于,所述装置还包括:
存储单元,用于将所述处理单元得到的所述校验数据存储到所述固态硬盘中预设通道的空闲存储单元中。
11.根据权利要求10所述的独立磁盘冗余阵列的实现装置,其特征在于,
所述存储单元,还用于将所述处理单元确定的校验数据存储到所述固态硬盘中数据通道的空闲存储单元中;或者,
所述固态硬盘还包括一个冗余通道;所述存储单元还用于,将所述校验数据存储到所述固态硬盘中所述冗余通道的空闲存储单元中。
12.根据权利要求7至11中任意一项所述的独立磁盘冗余阵列的实现装置,其特征在于,
所述处理单元,还用于将所述获取单元已获取的至少两个目标数据进行异或运算确定一个校验数据。
13.一种独立磁盘冗余阵列的实现装置,其特征在于,所述装置包括处理器和固态硬盘,所述固态硬盘包括至少两个数据通道,每个所述数据通道包括至少两个存储单元;
所述处理器用于,用于针对所述固态硬盘中的每个数据通道获取欲存储到所述每个数据通道的至少两个目标数据,所述至少两个目标数据欲存储到所述每个数据通道的目标存储单元中;
根据已获取的所述至少两个目标数据确定一个校验数据,所述校验数据的大小与一个所述目标存储单元的大小相同。
14.根据权利要求13所述的独立磁盘冗余阵列的实现装置,其特征在于,所述固态硬盘还包括至少两个第一片选CE信号引脚,
所述处理器还用于针对所述固态硬盘中每个所述数据通道,通过所述至少两个第一片选CE信号引脚上的第一片选CE信号,获取所述欲存储到所述每个数据通道的至少两个目标数据,每个所述第一片选信号对应选择一个目标存储单元。
15.根据权利要求13所述的独立磁盘冗余阵列的实现装置,其特征在于,所述固态硬盘还包括至少一个第二片选CE信号引脚;
所述处理器,还用于针对所述固态硬盘中每个所述数据通道,通过所述至少一个第二片选CE信号引脚上的第二片选CE信号,获取所述欲存储到所述每个数据通道的至少两个目标数据,每个所述第二片选信号对应预设数量的目标存储单元。
16.根据权利要求13所述的独立磁盘冗余阵列的实现装置,其特征在于,所述处理器还用于,将所述校验数据存储到所述固态硬盘中预设通道的空闲存储单元中。
17.根据权利要求16所述的独立磁盘冗余阵列的实现装置,其特征在于,
所述处理器,还用于将所述校验数据存储到所述固态硬盘中数据通道的空闲存储单元中;或者,
所述固态硬盘还包括一个冗余通道;所述处理器,还用于将所述校验数据存储到所述固态硬盘中所述冗余通道的空闲存储单元中。
18.根据权利要求13至17中任意一项所述的独立磁盘冗余阵列的实现装置,其特征在于,
所述处理器还用于,将已获取的至少两个目标数据进行异或运算确定一个校验数据。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410710269.9A CN104461383B (zh) | 2014-11-28 | 2014-11-28 | 一种独立磁盘冗余阵列的实现方法及装置 |
PCT/CN2015/080303 WO2016082504A1 (zh) | 2014-11-28 | 2015-05-29 | 一种独立磁盘冗余阵列的实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410710269.9A CN104461383B (zh) | 2014-11-28 | 2014-11-28 | 一种独立磁盘冗余阵列的实现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104461383A CN104461383A (zh) | 2015-03-25 |
CN104461383B true CN104461383B (zh) | 2017-10-10 |
Family
ID=52907512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410710269.9A Active CN104461383B (zh) | 2014-11-28 | 2014-11-28 | 一种独立磁盘冗余阵列的实现方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104461383B (zh) |
WO (1) | WO2016082504A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461383B (zh) * | 2014-11-28 | 2017-10-10 | 华为技术有限公司 | 一种独立磁盘冗余阵列的实现方法及装置 |
CN108108263B (zh) * | 2017-12-14 | 2020-11-20 | 联想(北京)有限公司 | 一种固态硬盘的数据处理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102122235A (zh) * | 2011-01-24 | 2011-07-13 | 武汉固捷联讯科技有限公司 | 一种raid4系统及其数据读写方法 |
CN101976178B (zh) * | 2010-08-19 | 2012-09-05 | 北京同有飞骥科技股份有限公司 | 一种垂直排布集中校验的节能型磁盘阵列的构建方法 |
US8850161B2 (en) * | 2010-10-13 | 2014-09-30 | Riverbed Technology, Inc. | Method of improving performance of a data storage device |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9424128B2 (en) * | 2011-08-12 | 2016-08-23 | Futurewei Technologies, Inc. | Method and apparatus for flexible RAID in SSD |
CN104461383B (zh) * | 2014-11-28 | 2017-10-10 | 华为技术有限公司 | 一种独立磁盘冗余阵列的实现方法及装置 |
-
2014
- 2014-11-28 CN CN201410710269.9A patent/CN104461383B/zh active Active
-
2015
- 2015-05-29 WO PCT/CN2015/080303 patent/WO2016082504A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101976178B (zh) * | 2010-08-19 | 2012-09-05 | 北京同有飞骥科技股份有限公司 | 一种垂直排布集中校验的节能型磁盘阵列的构建方法 |
US8850161B2 (en) * | 2010-10-13 | 2014-09-30 | Riverbed Technology, Inc. | Method of improving performance of a data storage device |
CN102122235A (zh) * | 2011-01-24 | 2011-07-13 | 武汉固捷联讯科技有限公司 | 一种raid4系统及其数据读写方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2016082504A1 (zh) | 2016-06-02 |
CN104461383A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9292382B2 (en) | Codewords that span pages of memory | |
CN102880428B (zh) | 分布式独立磁盘冗余阵列的创建方法及装置 | |
CN109358809B (zh) | 一种raid数据存储系统及方法 | |
US20160364181A1 (en) | Stripe mapping in memory | |
CN101587425A (zh) | 一种增加独立磁盘冗余阵列冗余性的方法及装置 | |
DE102009026189A1 (de) | Intelligenter Speicher-Transfer-Manager für den Befehlsablauf für Data-Striping zu Raw-NAND-Flash-Speicher-Modulen | |
CN103473146A (zh) | 存储器控制方法、存储器控制器以及电子装置 | |
WO2012030388A2 (en) | Stripe-based non-volatile multilevel memory operation | |
CN106409344A (zh) | 数据储存设备及其操作方法 | |
DE102009026178A1 (de) | Mehrstufiger Controller mit intelligentem Speicher-Transfer-Manager zum Verschachteln mehrfacher Ein-Chip-Flash-Speichereinheiten | |
CN101620518B (zh) | 一种磁盘冗余阵列raid的创建方法及装置 | |
CN109933280A (zh) | 数据存储装置及其操作方法 | |
CN109933546A (zh) | 一种ssd主控中的raid主动加速装置和加速方法 | |
CN101840364A (zh) | 一种恢复数据的方法及存储装置 | |
CN101604227B (zh) | 数据存储的方法及设备 | |
US20240037041A1 (en) | System and method for lba-based raid | |
CN107678690A (zh) | 一种固态硬盘及其冗余独立磁盘阵列的实现方法 | |
CN103714010B (zh) | 存储设备写入方法及存储设备 | |
CN102981969A (zh) | 重复数据删除的方法及其固态硬盘 | |
CN111552436A (zh) | 存储系统中数据恢复方法、系统及装置 | |
CN109407966A (zh) | 数据存储装置及其操作方法 | |
CN104182293B (zh) | 数据写入方法、存储器存储装置与存储器控制器 | |
CN104461383B (zh) | 一种独立磁盘冗余阵列的实现方法及装置 | |
CN107678894B (zh) | 一种内存测试方法、装置及系统 | |
CN108984133A (zh) | 一种ssd中raid的实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |