固态硬盘及数据移动方法

文档序号:6765733阅读:948来源:国知局
固态硬盘及数据移动方法
【专利摘要】本发明涉及固态硬盘及数据移动方法,其中,该固态硬盘包括:存储介质和控制芯片;存储介质的存储空间划分为至少两个用于存储数据的块,控制芯片包括:业务处理模块,用于向移动模块发送移动命令,移动命令用于指示移动模块将数据从源块移动到目的块;移动模块,用于接收业务处理模块发送的移动命令;根据移动命令,从源块读出有效数据,对有效数据进行错误检查纠正ECC校验;将校验后的数据写入所述目的块的空白页中。本发明实施例固态硬盘通过移动命令可以控制数据从源块移动到目的块的空白页,与读写分离数据移动过程相比,数据移动所经过的通路简单,可以提高SSD的数据移动效率,降低数据移动过程对SSD性能的影响。
【专利说明】固态硬盘及数据移动方法
【技术领域】
[0001]本发明涉及数据存储领域,尤其涉及一种固态硬盘及数据移动方法。
【背景技术】
[0002]固态硬盘(英文:Solid State Disk,缩写:SSD)可以使用与非门闪存(英文:NANDFlash)来实现。与非门闪存是一种非易失性随机访问存储介质,其特点是断电后数据不消失。与非门闪存执行重新写入操作之前需要先执行擦除操作,由于写入操作以页为单位,擦除操作以块为单位,需要擦除的块可能包含写入有效数据的页,因此,SSD可以预留部分冗余区用于数据搬移。
[0003]有效数据的搬移需要经过读控制过程和写控制过程。在读控制过程中,控制芯片将源块中的有效页中的有效数据读取到读缓存(英文:read buffer)中。由错误检查纠正编解码单元(英文:Error Correcting Code unit,缩写:EOJ)中对有效数据进行错误检查纠正(英文:Error Correcting Code,缩写:ECC)校验,ECC校验过程中会对有效数据进行解码,将校验成功且已经解码的数据通过直接内存存取(英文:Direct Memory Access,缩写:DMA)数据通路写入双倍速率同步动态随机存储器(英文:Double Data Rate,缩写:DDR)。在写控制过程中,控制芯片从DDR中将已经解码的数据读出,通过DMA数据通路,发送到E⑶中进行ECC编码,将编码之后的有效数据写入写缓存(英文:write buffer),然后再由写缓存写入SSD的空白块。
[0004]综上所述,现有SSD的数据移动的处理过程中,需要与主机抢占后端的E⑶资源、DDR资源、DMA数据通路资源和CPU资源等,降低了 SSD性能。

【发明内容】

[0005]有鉴于此,本发明要解决的技术问题是,如何在在数据移动过程中提升SSD数据的处理效率并降低对SSD性能的影响。
[0006]为了解决上述技术问题,第一方面,本发明提供了一种固态硬盘,包括:
[0007]存储介质和控制芯片;所述存储介质的存储空间划分为至少两个用于存储数据的块,所述控制芯片包括:
[0008]业务处理模块,用于向移动模块发送移动命令,所述移动命令用于指示所述移动模块将数据从源块移动到目的块,所述移动命令中包括所述源块的地址和所述目的块的地址,所述源块为所述存储介质中需要移出数据的块,所述目的块为所述存储介质中需要写入数据的块;
[0009]移动模块,用于接收所述业务处理模块发送的所述移动命令;根据所述移动命令,从所述源块读出有效数据,对所述有效数据进行错误检查纠正ECC校验;将校验后的数据写入所述目的块的空白页中。
[0010]结合第一方面,在第一种可能的实现方式中,所述移动模块包括:控制单元和错误检查纠正编解码单元E⑶;[0011]所述控制单元,用于在接收所述移动命令后,从所述源块读出有效数据,将所述有效数据发送至所述E⑶;
[0012]所述E⑶,用于对所述有效数据进行错误检查纠正ECC校验;
[0013]所述控制单元,还用于将所述ECU校验后的数据写入所述目的块的空白页中。
[0014]结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述移动模块还包括:
[0015]读缓存,用于缓存所述控制单元从所述源块中读取的有效数据;
[0016]所述控制单元,还用于从所述读缓存中读取所述有效数据并发送至所述ECU。
[0017]结合第一方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,所述移动模块还包括:
[0018]写缓存,用于缓存所述ECU校验后的数据;
[0019]所述控制单元,还用于从所述写缓存中读取所述ECU校验后的数据,并将所述校验后的数据写入所述目的块的空白页中。
[0020]结合第一方面的第一、第二或第三种可能的实现方式,在第四种可能的实现方式中,所述ECU,具体用于若所述ECU对所述有效数据校验的结果为正确,则将所述有效数据确定为所述ECU校验后的数据;若所述ECU对所述有效数据校验的结果为错误,则对所述有效数据进行纠错处理,将纠错处理后的数据确定为所述ECU校验后的数据。
[0021]为了解决上述技术问题,第二方面,本发明提供了一种数据移动方法,包括:所述方法应用于固态硬盘中,所述固态硬盘包括存储介质和控制芯片;所述存储介质的存储空间划分为至少两个用于存储数据的块,所述控制芯片包括业务处理模块和移动模块,所述方法包括:
[0022]所述移动模块接收所述业务处理模块发送的移动命令,所述移动命令用于指示所述移动模块将数据从源块移动到目的块,所述移动命令中包括所述源块的地址和所述目的块的地址,所述源块为所述存储介质中需要移出数据的块,所述目的块为所述存储介质中需要写入数据的块;
[0023]所述移动模块根据所述移动命令从所述源块读出有效数据,对所述有效数据进行ECC校验后,将校验后的数据写入所述目的块的空白页中。
[0024]结合第二方面,在第一种可能的实现方式中,所述移动模块根据所述移动命令从所述源块读出有效数据,对所述有效数据进行ECC校验后,将校验后的数据写入所述目的块的空白页中,包括:
[0025]所述移动模块的控制单元在接收所述移动命令后,从所述源块读出有效数据,将所述有效数据发送至所述移动模块的E⑶;
[0026]所述E⑶对所述有效数据进行ECC校验;
[0027]所述控制单元将所述ECU校验后的数据写入所述目的块的空白页。
[0028]结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述移动模块还包括读缓存,所述控制单元将所述有效数据发送至所述ECU,包括:
[0029]所述控制单元将从所述源块中读取的所述有效数据缓存到所述读缓存中;
[0030]所述控制单元从所述读缓存中读取所述有效数据并发送至所述ECU。
[0031]结合第二方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,所述移动模块还包括写缓存,所述控制单元将所述ECU校验后的数据写入所述目的块的空白页,包括:
[0032]所述控制单元将所述ECU校验后的数据缓存到所述写缓存中;
[0033]所述控制单元从所述写缓存中读取所述ECU校验后的数据,并将所述校验后的数据写入所述目的块的空白页中。
[0034]结合第二方面的第一、第二或第三种可能的实现方式,在第四种可能的实现方式中,所述ECU对所述有效数据进行ECC校验,包括:
[0035]若所述ECU对所述有效数据校验的结果为正确,则所述ECU将所述有效数据确定为所述ECU校验后的数据;
[0036]若所述ECU对所述有效数据校验的结果为错误,则所述ECU对所述有效数据进行纠错处理,将纠错处理后的数据确定为所述ECU校验后的数据。
[0037]本发明实施例在需要移动数据时,固态硬盘的业务处理模块可以将移动命令发送给移动模块,移动模块通过移动命令可以控制数据从源块移动到目的块的空白页,与读写分离数据移动过程相比,数据移动所经过的通路简单,可以提高固态硬盘的数据移动效率,并且可以减少数据移动所占用的后端资源,降低数据移动过程对固态硬盘性能的影响。
【专利附图】

【附图说明】
[0038]包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。
[0039]图1为本发明实施例一的固态硬盘的结构示意图;
[0040]图2为本发明实施例一的固态硬盘的控制芯片的工作原理示意图;
[0041]图3a为本发明实施例二的固态硬盘的结构示意图;
[0042]图3b和图3c为本发明实施例二的固态硬盘的数据移动的示意图;
[0043]图4为本发明实施例三的数据移动方法的流程图;
[0044]图5为本发明实施例四的数据移动方法的流程图;
[0045]图6为本发明实施例四的数据移动方法的另一流程图;
[0046]图7为本发明实施例五的固态硬盘的结构框图。
【具体实施方式】
[0047]实施例1
[0048]图1为本发明实施例一的固态硬盘的结构示意图,如图1所示,该固态硬盘(SSD)包括:存储介质11和控制芯片13 ;所述存储介质11的存储空间划分为至少两个用于存储数据的块,所述控制芯片13包括:
[0049]业务处理模块131,用于向移动模块发送移动(MOVE)命令,所述移动命令用于指示将数据从源块移动到目的块,所述移动命令中包括所述源块的地址和所述目的块的地址,所述源块为所述存储介质11中需要移出数据的块,所述目的块为所述存储介质11中需要写入数据的块。
[0050]移动模块133,用于接收所述业务处理模块131发送的所述移动命令;根据所述移动命令,从所述源块读出有效数据,对所述有效数据进行错误检查纠正ECC校验;将校验后的数据写入所述目的块的空白页中。
[0051]具体地,固态硬盘中的存储介质11可以采用与非门闪存(NAND Flash)等非易失性存储器实现。其中,与非门闪存可以由内部寄存器和存储矩阵组成,该存储矩阵可以包括若干个块(英文:Block),每个块包括若干个页(英文:Page),每个页包括若干个字节(英文:Byte)。每种NAND Flash的存储矩阵的大小可以不同。例如:NAND Flash的存储矩阵可以由4224个字节组成一个页,128个页组成一个块,由8192个块组成整个NAND Flash的存储矩阵。在每页中前4096字节可以用于存储数据;而后128字节可以用于存放ECC数据校验码,称为带外数据(英文:0ut of Bank,缩写:00B)区。每个页的状态可能为有效或者无效,其中,状态为有效的页中的数据为有效数据,状态为无效的页中的数据为无效数据。
[0052]SSD的控制芯片13中,可以包括多种业务处理模块131,例如:用于处理垃圾回收(英文:Garbage Collection,缩写:GC)业务的模块可以为GC模块,用于处理巡检业务的模块可以为巡检模块,用于处理均衡业务的模块可以为均衡模块。其中,在GC、巡检、均衡等业务处理的过程中,可能需要对有效数据进行移动,这时相关的业务处理模块131可以向移动模块133下发移动命令,指示移动模块133将数据从源块移动到目的块。图2为本发明实施例一的固态硬盘的控制芯片13的工作原理示意图,如图2所示,控制芯片13可以划分为业务处理层21和闪存(Flash)相关的命令操作层23,其中,各个业务处理模块131如GC模块211、巡检模块213、均衡模块215等属于业务处理层21,命令操作层23可以包括NANDflash的读模块231、NAND flash的写模块233和移动模块133等。其中,在业务处理模块131仅需要进行读数据操作时,可以由读模块231控制;在业务处理模块131仅需要进行写数据的操作时,可以由写模块233控制;而在业务处理模块131需要移动数据的操作时,可以将需要移出数据的源块的地址和需要写入数据的目的块的地址封装生成移动命令,由GC模块211、巡检模块213、均衡模块215等业务处理模块发送给移动模块133,以控制NANDflash中的数据移动。
[0053]以GC过程中的数据移动为例:在GC过程中,需要将GC链上的某源块中所有的有效数据搬移到空白块,再将该源块擦除,以达到释放空间的目的。其中,将某源块中所有的有效数据搬移到空白块的过程,就是数据移动的过程。这种情况下,GC模块211可以向移动模块133发送移动命令,将需要移出数据的源块的地址和需要写入数据的目的块的地址带给移动模块133,然后移动模块133可以将有效数据从NAND Flash中的源块读出,进行ECC校验后,将校验后的数据写入目的块的空白页。在源块中的所有的有效数据全部移动完成后,可以将源块擦除,从而达到对源块的存储空间进行回收的目的。
[0054]本实施例中,在需要移动数据时,固态硬盘的业务处理模块可以将移动命令发送给移动模块,移动模块通过移动命令可以控制数据从源块移动到目的块的空白页,与读写分离数据移动过程相比,数据移动所经过的通路简单,可以提高SSD的数据移动效率,并且可以减少数据移动所占用的后端资源如DMA数据通路、DDR、CPU等系统资源,降低数据移动过程对SSD性能的影响。
[0055]实施例2
[0056]图3a为本发明实施例二的固态硬盘的结构示意图,如图3a所示,在上一实施例的基础上,该固态硬盘的移动模块133可以包括:控制单元31和错误检查纠正编解码单元ECU33 ;[0057]所述控制单元31,用于在接收所述移动命令后,从所述源块读出有效数据,将所述有效数据发送至所述E⑶33;
[0058]所述E⑶33,用于对所述有效数据进行错误检查纠正ECC校验;
[0059]所述控制单元31,还用于将所述E⑶33校验后的数据写入所述目的块的空白页中。
[0060]具体地,图3b和图3c为本发明实施例二的固态硬盘的数据移动的示意图,如图3b所示,移动模块133通过控制单元31和ECU33可以形成独立的数据移动通道,不需要占用系统的其他资源。
[0061]在一种可能的实现方式中,如图3c所示,所述移动模块133还可以包括:
[0062]读缓存35,用于缓存所述控制单元31从所述源块中读取的有效数据;
[0063]所述控制单元31还用于从所述读缓存35中读取所述有效数据并发送至所述ECU33。
[0064]具体地,E⑶33进行ECC校验的速度,通常比控制单元31读取有效数据的速度快。因此,通过读缓存35可以先缓存控制单元31从源块预先读取一部分有效数据。然后再有ECU33进行ECC校验,可以减少ECU33等待读取数据的时间,从而加快数据移动的速度。
[0065]在一种可能的实现方式中,如图3c所示,所述移动模块还133可以包括:
[0066]写缓存37,用于缓存所述E⑶33校验后的数据;
[0067]所述控制单元31还用于从所述写缓存37中读取所述ECU33校验后的数据,并将所述校验后的数据写入所述目的块的空白页中。
[0068]具体地,由于E⑶33进行ECC校验的速度快,E⑶33校验后的数据也可以先缓存到写缓存37,可以减少ECU33等待写入数据的时间,从而加快数据移动的速度。
[0069]其中,读缓存、写缓存可以采用缓冲器、FIFO、RAM等形式来实现。
[0070]在一种可能的实现方式中,所述E⑶33具体可以用于若所述E⑶33对所述有效数据校验的结果为正确,则将所述有效数据确定为所述ECU33校验后的数据;若所述ECU33对所述有效数据校验的结果为错误,则所述有效数据进行纠错处理,将纠错处理后的数据确定为所述ECU33校验后的数据。
[0071]具体地,由于数据写入SSD之后,随着时间的偏移,可能发生比特(英文:bit)跳变,且通常情况下,时间越长,跳变的bit数越多。因此,需要进行ECC校验。虽然E⑶33对有效数据进行ECC校验的过程中,需要对有效数据进行解码,但是,由于移动模块133的控制单元31能够直接获取有效数据,因此,不需要将解码后的数据重新编码,而可以将校验后的数据直接写入目的块的空白页。其中,如果ECU33对有效数据的ECC校验结果为正确,控制单元31可以将有效数据直接作为校验后的数据写入目的块的空白页;如果ECU33对有效数据的ECC校验结果为有错,控制单元31可以将有效数据纠错后的数据作为校验后的数据写入目的块的空白页。
[0072]举例而言:若SSD中Block N的Page2的有效数据为“01010111”,但控制单元31读取到E⑶33中进入ECC校验的数据为“01010111”,则经过ECC校验,可以得知该有效数据未发生跳变,校验结果为正确。但是,如果控制单元31读取到ECU33中进入ECC校验的数据为“01010110”,可以得知有I位(bit)发生跳变,需要进行ECC纠错,将“01010110”纠正为“01010111”。[0073]本实施例中,在需要移动数据时,SSD的业务处理模块可以将移动命令发送给移动模块,移动模块通过移动命令可以控制数据从源块移动到目的块的空白页,与读写分离数据移动过程相比,数据移动所经过的通路简单,可以提高SSD的数据移动效率,并且可以减少数据移动所占用的后端资源如DMA数据通路、DDR、CPU等系统资源,降低数据移动过程对SSD性能的影响。并且,由于移动模块可以直接将有效数据(或纠错后的有效数据)写入目的块的空白页,不需要进行重新编码,可以减少数据移动的流程,进一步提高SSD的数据移动效率以及降低数据移动过程对SSD性能的影响。
[0074]实施例3
[0075]图4为本发明实施例三的数据移动方法的流程图,该数据移动方法可以应用于上述实施例中的任意一种结构的固态硬盘。其中,参见图1,固态硬盘可以包括存储介质和控制芯片;所述存储介质的存储空间划分为至少两个用于存储数据的块,所述控制芯片包括业务处理模块和移动模块。其中,固态硬盘中的存储介质可以采用与非门闪存(NANDFlash)等非易失性存储器实现。NAND Flash的具体结构可以参见上述固态硬盘实施例中的相关描述。
[0076]如图4所示,该数据移动方法可以包括:
[0077]步骤410、移动模块接收业务处理模块发送的移动命令,所述移动命令用于指示所述移动模块将数据从源块移动到目的块,所述移动命令中包括所述源块的地址和所述目的块的地址,所述源块为所述存储介质中需要移出数据的块,所述目的块为所述存储介质中需要写入数据的块。
[0078]步骤420、移动模块根据所述移动命令从所述源块读出有效数据,对所述有效数据进行ECC校验后,将校验后的数据写入所述目的块的空白页中。
[0079]具体地,参见图2,SSD的控制芯片可以划分为业务处理层21和闪存(Flash)相关的命令操作层23,其中,各个业务处理模块如GC模块211、巡检模块213、均衡模块215等属于业务处理层21,命令操作层23可以包括NAND flash的读模块231、NAND flash的写模块233和移动模块133等。其中,在业务处理模块仅需要进行读数据操作时,可以由读模块231控制;在业务处理模块仅需要进行写数据的操作时,可以由写模块233控制;而在业务处理模块需要移动数据的操作时,可以将需要移出数据的源块的地址和需要写入数据的目的块的地址封装生成移动命令,由移动模块133控制数据移动。
[0080]本实施例的数据移动方法中,在需要移动数据时,业务处理模块可以将移动命令发送给移动模块,移动模块通过移动命令可以控制数据从源块移动到目的块的空白页,与读写分离数据移动过程相比,数据移动所经过的通路简单,可以提高SSD的数据移动效率,并且可以减少数据移动所占用的后端资源如DMA数据通路、DDR、CPU等系统资源,降低数据移动过程对SSD性能的影响。
[0081]实施例4
[0082]图5为本发明实施例四的数据移动方法的流程图。图5中与图4标号相同的步骤具有相同的功能,为简明起见,省略对这些步骤的详细说明。
[0083]如图5所示,与图4所示的方法的区别在于,步骤420具体可以包括:
[0084]步骤510、所述移动模块的控制单元在接收所述移动命令后,从所述源块读出有效数据,将所述有效数据发送至所述移动模块的E⑶;[0085]步骤520、所述E⑶对所述有效数据进行ECC校验;
[0086]步骤530、所述控制单元将所述ECU校验后的数据写入所述目的块的空白页中。
[0087]参见图3,所述移动模块还可以包括读缓存。这种情况下,如图6所示,步骤510具体可以包括:
[0088]步骤600、所述移动模块的控制单元在接收所述移动命令后,从所述源块读出有效数据。
[0089]步骤610、所述控制单元将从所述源块中读取的所述有效数据缓存到所述读缓存中。
[0090]步骤620、所述控制单元从所述读缓存中读取所述有效数据并发送至所述ECU。[0091 ] 具体地,E⑶进行ECC校验的速度,通常比控制单元读取有效数据的速度快。因此,通过读缓存可以先缓存控制单元从源块预先读取一部分有效数据。然后再有ECU进行ECC校验,可以减少ECU等待读取数据的时间。
[0092]进一步地,如图6所示,步骤520具体可以包括:
[0093]步骤700、ECU对有效数据进行ECC校验,若所述ECU对所述有效数据校验的结果为正确,则执行步骤710 ;若所述ECU对所述有效数据校验的结果为错误,则则执行步骤720。
[0094]步骤710、E⑶将所述有效数据确定为所述E⑶校验后的数据;
[0095]步骤720、E⑶对所述有效数据进行纠错处理,将纠错处理后的数据确定为所述E⑶校验后的数据。
[0096]具体地,由于数据写入SSD之后,随着时间的偏移,可能发生比特(英文:bit)跳变,且通常情况下,时间越长,跳变的bit数越多。因此,需要进行ECC校验。虽然E⑶33对有效数据进行ECC校验的过程中,需要对有效数据进行解码,但是,由于移动模块的控制单元能够直接获取有效数据,因此,不需要将解码后的数据重新编码,而可以将校验后的数据直接写入目的块的空白页。其中,如果ECU对有效数据的ECC校验结果为正确,控制单元可以将有效数据直接作为校验后的数据写入目的块的空白页;如果ECU对有效数据的ECC校验结果为有错,控制单元可以将有效数据纠错后的数据作为校验后的数据写入目的块的空白页。ECU对有效数据进行ECC校验的示例可以参见上述SSD实施例中的相关描述。
[0097]进一步地,参见图3,所述移动模块还可以包括写缓存。这种情况下,如图6所示,步骤530具体可以包括:
[0098]步骤810、所述控制单元将所述ECU校验后的数据缓存到所述写缓存中;
[0099]步骤820、所述控制单元从所述写缓存中读取所述ECU校验后的数据,并将所述校验后的数据写入所述目的块的空白页中。
[0100]具体地,由于相比ECC校验的速度,写入到SSD中目的块的空白页的速度较慢。可以将ECC校验完的有效数据,先缓存到写缓存中,等待写入目的块,以减少ECU等待写入数据的时间,从而加快数据移动的速度
[0101]本实施例的数据移动方法中,在需要移动数据时,SSD的业务处理模块可以将移动命令发送给移动模块,移动模块通过移动命令可以控制数据从源块移动到目的块的空白页,与读写分离数据移动过程相比,数据移动所经过的通路简单,可以提高SSD的数据移动效率,并且可以减少数据移动所占用的后端资源如DMA数据通路、DDR、CPU等系统资源,降低数据移动过程对SSD性能的影响。并且,由于移动模块可以直接将有效数据(或纠错后的有效数据)写入目的块的空白页,不需要进行重新编码,可以减少数据移动的流程,进一步提高SSD的数据移动效率以及降低数据移动过程对SSD性能的影响。
[0102]实施例5
[0103]图7为本发明实施例五的固态硬盘的结构框图。所述固态硬盘可以是具备计算能力的主机服务器、个人计算机PC、或者可携带的便携式计算机或终端等。本发明具体实施例并不对计算节点的具体实现做限定。
[0104]所述固态硬盘包括处理器(processor) 910、通信接口(CommunicationsInterface)920、存储器(memory array)930 和总线 940。其中,处理器 910、通信接口 920、以及存储器930通过总线940完成相互间的通信。
[0105]通信接口 920用于与网元通信,其中网元包括例如虚拟机管理中心、共享存储等。
[0106]处理器910用于执行程序。处理器910可能是一个中央处理器CPU,或者是专用集成电路ASIC (Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
[0107]存储器930用于存放文件。存储器930可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器930也可以是存储器阵列。存储器930还可能被分块,并且所述块可按一定的规则组合成虚拟卷。
[0108]在一种可能的实施方式中,上述程序可为包括计算机操作指令的程序代码。该程序具体可用于:
[0109]所述方法应用于固态硬盘中,所述固态硬盘包括存储介质和控制芯片;所述存储介质的存储空间划分为至少两个用于存储数据的块,所述控制芯片包括业务处理模块和移动模块,所述方法包括:
[0110]所述移动模块接收所述业务处理模块发送的移动命令,所述移动命令用于指示所述移动模块将数据从源块移动到目的块,所述移动命令中包括所述源块的地址和所述目的块的地址,所述源块为所述存储介质中需要移出数据的块,所述目的块为所述存储介质中需要写入数据的块;
[0111]所述移动模块根据所述移动命令从所述源块读出有效数据,对所述有效数据进行ECC校验后,将校验后的数据写入所述目的块的空白页中。
[0112]在一种可能的实施方式中,所述移动模块根据所述移动命令从所述源块读出有效数据,对所述有效数据进行ECC校验后,将校验后的数据写入所述目的块的空白页中,包括:
[0113]所述移动模块的控制单元在接收所述移动命令后,从所述源块读出有效数据,将所述有效数据发送至所述移动模块的E⑶;
[0114]所述E⑶对所述有效数据进行ECC校验;
[0115]所述控制单元将所述ECU校验后的数据写入所述目的块的空白页。
[0116]在一种可能的实施方式中,所述移动模块还包括读缓存,所述控制单元将所述有效数据发送至所述E⑶,包括:
[0117]所述控制单元将从所述源块中读取的所述有效数据缓存到所述读缓存中;
[0118]所述控制单元从所述读缓存中读取所述有效数据并发送至所述ECU。[0119]在一种可能的实施方式中,所述移动模块还包括写缓存,所述控制单元将所述ECU校验后的数据写入所述目的块的空白页,包括:
[0120]所述控制单元将所述ECU校验后的数据缓存到所述写缓存中;
[0121]所述控制单元从所述写缓存中读取所述ECU校验后的数据,并将所述校验后的数据写入所述目的块的空白页中。
[0122]在一种可能的实施方式中,所述ECU对所述有效数据进行ECC校验,包括:
[0123]若所述ECU对所述有效数据校验的结果为正确,则所述ECU将所述有效数据确定为所述ECU校验后的数据;
[0124]若所述ECU对所述有效数据校验的结果为错误,则所述ECU对所述有效数据进行纠错处理,将纠错处理后的数据确定为所述ECU校验后的数据。
[0125]本领域普通技术人员可以意识到,本文所描述的实施例中的各示例性单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件形式来实现,取决于技术方案的特定应用和设计约束条件。专业技术人员可以针对特定的应用选择不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0126]如果以计算机软件的形式来实现所述功能并作为独立的产品销售或使用时,则在一定程度上可认为本发明的技术方案的全部或部分(例如对现有技术做出贡献的部分)是以计算机软件产品的形式体现的。该计算机软件产品通常存储在计算机可读取的存储介质中,包括若干指令用以使得计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各实施例方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM, Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0127]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【权利要求】
1.一种固态硬盘,其特征在于,包括:存储介质和控制芯片;所述存储介质的存储空间划分为至少两个用于存储数据的块,所述控制芯片包括: 业务处理模块,用于向移动模块发送移动命令,所述移动命令用于指示所述移动模块将数据从源块移动到目的块,所述移动命令中包括所述源块的地址和所述目的块的地址,所述源块为所述存储介质中需要移出数据的块,所述目的块为所述存储介质中需要写入数据的块; 移动模块,用于接收所述业务处理模块发送的所述移动命令;根据所述移动命令,从所述源块读出有效数据,对所述有效数据进行错误检查纠正ECC校验;将校验后的数据写入所述目的块的空白页中。
2.根据权利要求1所述固态硬盘,其特征在于,所述移动模块包括:控制单元和错误检查纠正编解码单元E⑶; 所述控制单元,用于在接收所述移动命令后,从所述源块读出有效数据,将所述有效数据发送至所述ECU; 所述ECU,用于对所述有效数据进行错误检查纠正ECC校验; 所述控制单元,还用于将所述ECU校验后的数据写入所述目的块的空白页中。
3.根据权利要求2所述固态硬盘,其特征在于,所述移动模块还包括: 读缓存,用于缓存所述 控制单元从所述源块中读取的有效数据; 所述控制单元,还用于从所述读缓存中读取所述有效数据并发送至所述E⑶。
4.根据权利要求2或3所述固态硬盘,其特征在于,所述移动模块还包括: 写缓存,用于缓存所述ECU校验后的数据; 所述控制单元,还用于从所述写缓存中读取所述ECU校验后的数据,并将所述校验后的数据写入所述目的块的空白页中。
5.根据权利要求2-4中任一项所述的固态硬盘,其特征在于: 所述ECU,具体用于若所述ECU对所述有效数据校验的结果为正确,则将所述有效数据确定为所述ECU校验后的数据;若所述ECU对所述有效数据校验的结果为错误,则对所述有效数据进行纠错处理,将纠错处理后的数据确定为所述ECU校验后的数据。
6.一种数据移动方法,其特征在于,所述方法应用于固态硬盘中,所述固态硬盘包括存储介质和控制芯片;所述存储介质的存储空间划分为至少两个用于存储数据的块,所述控制芯片包括业务处理模块和移动模块,所述方法包括: 所述移动模块接收所述业务处理模块发送的移动命令,所述移动命令用于指示所述移动模块将数据从源块移动到目的块,所述移动命令中包括所述源块的地址和所述目的块的地址,所述源块为所述存储介质中需要移出数据的块,所述目的块为所述存储介质中需要写入数据的块; 所述移动模块根据所述移动命令从所述源块读出有效数据,对所述有效数据进行ECC校验后,将校验后的数据写入所述目的块的空白页中。
7.根据权利要求6所述的数据移动方法,其特征在于,所述移动模块根据所述移动命令从所述源块读出有效数据,对所述有效数据进行ECC校验后,将校验后的数据写入所述目的块的空白页中,包括: 所述移动模块的控制单元在接收所述移动命令后,从所述源块读出有效数据,将所述有效数据发送至所述移动模块的E⑶; 所述ECU对所述有效数据进行ECC校验; 所述控制单元将所述ECU校验后的数据写入所述目的块的空白页。
8.根据权利要求7所述的数据移动方法,其特征在于,所述移动模块还包括读缓存,所述控制单元将所述有效数据发送至所述ECU,包括: 所述控制单元将从所述源块中读取的所述有效数据缓存到所述读缓存中; 所述控制单元从所述读缓存中读取所述有效数据并发送至所述ECU。
9.根据权利要求7或8所述的数据移动方法,其特征在于,所述移动模块还包括写缓存,所述控制单元将所述ECU校验后的数据写入所述目的块的空白页,包括: 所述控制单元将所述ECU校验后的数据缓存到所述写缓存中; 所述控制单元从所述写缓存中读取所述ECU校验后的数据,并将所述校验后的数据写入所述目的块的空白页中。
10.根据权利要求7-9中任一项所述的数据移动方法,其特征在于,所述ECU对所述有效数据进行ECC校验,包括: 若所述ECU对所述有效数据校验的结果为正确,则所述ECU将所述有效数据确定为所述ECU校验后的数据; 若所述ECU对所述有效数据校验的结果为错误,则所述ECU对所述有效数据进行纠错处理,将纠错处理后的数据确定为所述`ECU校验后的数据。
【文档编号】G11C16/06GK103761988SQ201310740030
【公开日】2014年4月30日 申请日期:2013年12月27日 优先权日:2013年12月27日
【发明者】黎燕, 周猛, 张颇 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1