固態(tài)硬盤(pán)及數(shù)據(jù)移動(dòng)方法
【專(zhuān)利摘要】本發(fā)明涉及固態(tài)硬盤(pán)及數(shù)據(jù)移動(dòng)方法,其中,該固態(tài)硬盤(pán)包括:存儲(chǔ)介質(zhì)和控制芯片;存儲(chǔ)介質(zhì)的存儲(chǔ)空間劃分為至少兩個(gè)用于存儲(chǔ)數(shù)據(jù)的塊,控制芯片包括:業(yè)務(wù)處理模塊,用于向移動(dòng)模塊發(fā)送移動(dòng)命令,移動(dòng)命令用于指示移動(dòng)模塊將數(shù)據(jù)從源塊移動(dòng)到目的塊;移動(dòng)模塊,用于接收業(yè)務(wù)處理模塊發(fā)送的移動(dòng)命令;根據(jù)移動(dòng)命令,從源塊讀出有效數(shù)據(jù),對(duì)有效數(shù)據(jù)進(jìn)行錯(cuò)誤檢查糾正ECC校驗(yàn);將校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè)中。本發(fā)明實(shí)施例固態(tài)硬盤(pán)通過(guò)移動(dòng)命令可以控制數(shù)據(jù)從源塊移動(dòng)到目的塊的空白頁(yè),與讀寫(xiě)分離數(shù)據(jù)移動(dòng)過(guò)程相比,數(shù)據(jù)移動(dòng)所經(jīng)過(guò)的通路簡(jiǎn)單,可以提高SSD的數(shù)據(jù)移動(dòng)效率,降低數(shù)據(jù)移動(dòng)過(guò)程對(duì)SSD性能的影響。
【專(zhuān)利說(shuō)明】固態(tài)硬盤(pán)及數(shù)據(jù)移動(dòng)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)存儲(chǔ)領(lǐng)域,尤其涉及一種固態(tài)硬盤(pán)及數(shù)據(jù)移動(dòng)方法。
【背景技術(shù)】
[0002]固態(tài)硬盤(pán)(英文:Solid State Disk,縮寫(xiě):SSD)可以使用與非門(mén)閃存(英文:NANDFlash)來(lái)實(shí)現(xiàn)。與非門(mén)閃存是一種非易失性隨機(jī)訪問(wèn)存儲(chǔ)介質(zhì),其特點(diǎn)是斷電后數(shù)據(jù)不消失。與非門(mén)閃存執(zhí)行重新寫(xiě)入操作之前需要先執(zhí)行擦除操作,由于寫(xiě)入操作以頁(yè)為單位,擦除操作以塊為單位,需要擦除的塊可能包含寫(xiě)入有效數(shù)據(jù)的頁(yè),因此,SSD可以預(yù)留部分冗余區(qū)用于數(shù)據(jù)搬移。
[0003]有效數(shù)據(jù)的搬移需要經(jīng)過(guò)讀控制過(guò)程和寫(xiě)控制過(guò)程。在讀控制過(guò)程中,控制芯片將源塊中的有效頁(yè)中的有效數(shù)據(jù)讀取到讀緩存(英文:read buffer)中。由錯(cuò)誤檢查糾正編解碼單元(英文:Error Correcting Code unit,縮寫(xiě):EOJ)中對(duì)有效數(shù)據(jù)進(jìn)行錯(cuò)誤檢查糾正(英文:Error Correcting Code,縮寫(xiě):ECC)校驗(yàn),ECC校驗(yàn)過(guò)程中會(huì)對(duì)有效數(shù)據(jù)進(jìn)行解碼,將校驗(yàn)成功且已經(jīng)解碼的數(shù)據(jù)通過(guò)直接內(nèi)存存取(英文:Direct Memory Access,縮寫(xiě):DMA)數(shù)據(jù)通路寫(xiě)入雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(英文:Double Data Rate,縮寫(xiě):DDR)。在寫(xiě)控制過(guò)程中,控制芯片從DDR中將已經(jīng)解碼的數(shù)據(jù)讀出,通過(guò)DMA數(shù)據(jù)通路,發(fā)送到E⑶中進(jìn)行ECC編碼,將編碼之后的有效數(shù)據(jù)寫(xiě)入寫(xiě)緩存(英文:write buffer),然后再由寫(xiě)緩存寫(xiě)入SSD的空白塊。
[0004]綜上所述,現(xiàn)有SSD的數(shù)據(jù)移動(dòng)的處理過(guò)程中,需要與主機(jī)搶占后端的E⑶資源、DDR資源、DMA數(shù)據(jù)通路資源和CPU資源等,降低了 SSD性能。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明要解決的技術(shù)問(wèn)題是,如何在在數(shù)據(jù)移動(dòng)過(guò)程中提升SSD數(shù)據(jù)的處理效率并降低對(duì)SSD性能的影響。
[0006]為了解決上述技術(shù)問(wèn)題,第一方面,本發(fā)明提供了一種固態(tài)硬盤(pán),包括:
[0007]存儲(chǔ)介質(zhì)和控制芯片;所述存儲(chǔ)介質(zhì)的存儲(chǔ)空間劃分為至少兩個(gè)用于存儲(chǔ)數(shù)據(jù)的塊,所述控制芯片包括:
[0008]業(yè)務(wù)處理模塊,用于向移動(dòng)模塊發(fā)送移動(dòng)命令,所述移動(dòng)命令用于指示所述移動(dòng)模塊將數(shù)據(jù)從源塊移動(dòng)到目的塊,所述移動(dòng)命令中包括所述源塊的地址和所述目的塊的地址,所述源塊為所述存儲(chǔ)介質(zhì)中需要移出數(shù)據(jù)的塊,所述目的塊為所述存儲(chǔ)介質(zhì)中需要寫(xiě)入數(shù)據(jù)的塊;
[0009]移動(dòng)模塊,用于接收所述業(yè)務(wù)處理模塊發(fā)送的所述移動(dòng)命令;根據(jù)所述移動(dòng)命令,從所述源塊讀出有效數(shù)據(jù),對(duì)所述有效數(shù)據(jù)進(jìn)行錯(cuò)誤檢查糾正ECC校驗(yàn);將校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè)中。
[0010]結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,所述移動(dòng)模塊包括:控制單元和錯(cuò)誤檢查糾正編解碼單元E⑶;[0011]所述控制單元,用于在接收所述移動(dòng)命令后,從所述源塊讀出有效數(shù)據(jù),將所述有效數(shù)據(jù)發(fā)送至所述E⑶;
[0012]所述E⑶,用于對(duì)所述有效數(shù)據(jù)進(jìn)行錯(cuò)誤檢查糾正ECC校驗(yàn);
[0013]所述控制單元,還用于將所述ECU校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè)中。
[0014]結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述移動(dòng)模塊還包括:
[0015]讀緩存,用于緩存所述控制單元從所述源塊中讀取的有效數(shù)據(jù);
[0016]所述控制單元,還用于從所述讀緩存中讀取所述有效數(shù)據(jù)并發(fā)送至所述ECU。
[0017]結(jié)合第一方面的第一或第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述移動(dòng)模塊還包括:
[0018]寫(xiě)緩存,用于緩存所述ECU校驗(yàn)后的數(shù)據(jù);
[0019]所述控制單元,還用于從所述寫(xiě)緩存中讀取所述ECU校驗(yàn)后的數(shù)據(jù),并將所述校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè)中。
[0020]結(jié)合第一方面的第一、第二或第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述ECU,具體用于若所述ECU對(duì)所述有效數(shù)據(jù)校驗(yàn)的結(jié)果為正確,則將所述有效數(shù)據(jù)確定為所述ECU校驗(yàn)后的數(shù)據(jù);若所述ECU對(duì)所述有效數(shù)據(jù)校驗(yàn)的結(jié)果為錯(cuò)誤,則對(duì)所述有效數(shù)據(jù)進(jìn)行糾錯(cuò)處理,將糾錯(cuò)處理后的數(shù)據(jù)確定為所述ECU校驗(yàn)后的數(shù)據(jù)。
[0021]為了解決上述技術(shù)問(wèn)題,第二方面,本發(fā)明提供了一種數(shù)據(jù)移動(dòng)方法,包括:所述方法應(yīng)用于固態(tài)硬盤(pán)中,所述固態(tài)硬盤(pán)包括存儲(chǔ)介質(zhì)和控制芯片;所述存儲(chǔ)介質(zhì)的存儲(chǔ)空間劃分為至少兩個(gè)用于存儲(chǔ)數(shù)據(jù)的塊,所述控制芯片包括業(yè)務(wù)處理模塊和移動(dòng)模塊,所述方法包括:
[0022]所述移動(dòng)模塊接收所述業(yè)務(wù)處理模塊發(fā)送的移動(dòng)命令,所述移動(dòng)命令用于指示所述移動(dòng)模塊將數(shù)據(jù)從源塊移動(dòng)到目的塊,所述移動(dòng)命令中包括所述源塊的地址和所述目的塊的地址,所述源塊為所述存儲(chǔ)介質(zhì)中需要移出數(shù)據(jù)的塊,所述目的塊為所述存儲(chǔ)介質(zhì)中需要寫(xiě)入數(shù)據(jù)的塊;
[0023]所述移動(dòng)模塊根據(jù)所述移動(dòng)命令從所述源塊讀出有效數(shù)據(jù),對(duì)所述有效數(shù)據(jù)進(jìn)行ECC校驗(yàn)后,將校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè)中。
[0024]結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述移動(dòng)模塊根據(jù)所述移動(dòng)命令從所述源塊讀出有效數(shù)據(jù),對(duì)所述有效數(shù)據(jù)進(jìn)行ECC校驗(yàn)后,將校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè)中,包括:
[0025]所述移動(dòng)模塊的控制單元在接收所述移動(dòng)命令后,從所述源塊讀出有效數(shù)據(jù),將所述有效數(shù)據(jù)發(fā)送至所述移動(dòng)模塊的E⑶;
[0026]所述E⑶對(duì)所述有效數(shù)據(jù)進(jìn)行ECC校驗(yàn);
[0027]所述控制單元將所述ECU校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè)。
[0028]結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,所述移動(dòng)模塊還包括讀緩存,所述控制單元將所述有效數(shù)據(jù)發(fā)送至所述ECU,包括:
[0029]所述控制單元將從所述源塊中讀取的所述有效數(shù)據(jù)緩存到所述讀緩存中;
[0030]所述控制單元從所述讀緩存中讀取所述有效數(shù)據(jù)并發(fā)送至所述ECU。
[0031]結(jié)合第二方面的第一或第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,所述移動(dòng)模塊還包括寫(xiě)緩存,所述控制單元將所述ECU校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè),包括:
[0032]所述控制單元將所述ECU校驗(yàn)后的數(shù)據(jù)緩存到所述寫(xiě)緩存中;
[0033]所述控制單元從所述寫(xiě)緩存中讀取所述ECU校驗(yàn)后的數(shù)據(jù),并將所述校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè)中。
[0034]結(jié)合第二方面的第一、第二或第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述ECU對(duì)所述有效數(shù)據(jù)進(jìn)行ECC校驗(yàn),包括:
[0035]若所述ECU對(duì)所述有效數(shù)據(jù)校驗(yàn)的結(jié)果為正確,則所述ECU將所述有效數(shù)據(jù)確定為所述ECU校驗(yàn)后的數(shù)據(jù);
[0036]若所述ECU對(duì)所述有效數(shù)據(jù)校驗(yàn)的結(jié)果為錯(cuò)誤,則所述ECU對(duì)所述有效數(shù)據(jù)進(jìn)行糾錯(cuò)處理,將糾錯(cuò)處理后的數(shù)據(jù)確定為所述ECU校驗(yàn)后的數(shù)據(jù)。
[0037]本發(fā)明實(shí)施例在需要移動(dòng)數(shù)據(jù)時(shí),固態(tài)硬盤(pán)的業(yè)務(wù)處理模塊可以將移動(dòng)命令發(fā)送給移動(dòng)模塊,移動(dòng)模塊通過(guò)移動(dòng)命令可以控制數(shù)據(jù)從源塊移動(dòng)到目的塊的空白頁(yè),與讀寫(xiě)分離數(shù)據(jù)移動(dòng)過(guò)程相比,數(shù)據(jù)移動(dòng)所經(jīng)過(guò)的通路簡(jiǎn)單,可以提高固態(tài)硬盤(pán)的數(shù)據(jù)移動(dòng)效率,并且可以減少數(shù)據(jù)移動(dòng)所占用的后端資源,降低數(shù)據(jù)移動(dòng)過(guò)程對(duì)固態(tài)硬盤(pán)性能的影響。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0038]包含在說(shuō)明書(shū)中并且構(gòu)成說(shuō)明書(shū)的一部分的附圖與說(shuō)明書(shū)一起示出了本發(fā)明的示例性實(shí)施例、特征和方面,并且用于解釋本發(fā)明的原理。
[0039]圖1為本發(fā)明實(shí)施例一的固態(tài)硬盤(pán)的結(jié)構(gòu)示意圖;
[0040]圖2為本發(fā)明實(shí)施例一的固態(tài)硬盤(pán)的控制芯片的工作原理示意圖;
[0041]圖3a為本發(fā)明實(shí)施例二的固態(tài)硬盤(pán)的結(jié)構(gòu)示意圖;
[0042]圖3b和圖3c為本發(fā)明實(shí)施例二的固態(tài)硬盤(pán)的數(shù)據(jù)移動(dòng)的示意圖;
[0043]圖4為本發(fā)明實(shí)施例三的數(shù)據(jù)移動(dòng)方法的流程圖;
[0044]圖5為本發(fā)明實(shí)施例四的數(shù)據(jù)移動(dòng)方法的流程圖;
[0045]圖6為本發(fā)明實(shí)施例四的數(shù)據(jù)移動(dòng)方法的另一流程圖;
[0046]圖7為本發(fā)明實(shí)施例五的固態(tài)硬盤(pán)的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0047]實(shí)施例1
[0048]圖1為本發(fā)明實(shí)施例一的固態(tài)硬盤(pán)的結(jié)構(gòu)示意圖,如圖1所示,該固態(tài)硬盤(pán)(SSD)包括:存儲(chǔ)介質(zhì)11和控制芯片13 ;所述存儲(chǔ)介質(zhì)11的存儲(chǔ)空間劃分為至少兩個(gè)用于存儲(chǔ)數(shù)據(jù)的塊,所述控制芯片13包括:
[0049]業(yè)務(wù)處理模塊131,用于向移動(dòng)模塊發(fā)送移動(dòng)(MOVE)命令,所述移動(dòng)命令用于指示將數(shù)據(jù)從源塊移動(dòng)到目的塊,所述移動(dòng)命令中包括所述源塊的地址和所述目的塊的地址,所述源塊為所述存儲(chǔ)介質(zhì)11中需要移出數(shù)據(jù)的塊,所述目的塊為所述存儲(chǔ)介質(zhì)11中需要寫(xiě)入數(shù)據(jù)的塊。
[0050]移動(dòng)模塊133,用于接收所述業(yè)務(wù)處理模塊131發(fā)送的所述移動(dòng)命令;根據(jù)所述移動(dòng)命令,從所述源塊讀出有效數(shù)據(jù),對(duì)所述有效數(shù)據(jù)進(jìn)行錯(cuò)誤檢查糾正ECC校驗(yàn);將校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè)中。
[0051]具體地,固態(tài)硬盤(pán)中的存儲(chǔ)介質(zhì)11可以采用與非門(mén)閃存(NAND Flash)等非易失性存儲(chǔ)器實(shí)現(xiàn)。其中,與非門(mén)閃存可以由內(nèi)部寄存器和存儲(chǔ)矩陣組成,該存儲(chǔ)矩陣可以包括若干個(gè)塊(英文:Block),每個(gè)塊包括若干個(gè)頁(yè)(英文:Page),每個(gè)頁(yè)包括若干個(gè)字節(jié)(英文:Byte)。每種NAND Flash的存儲(chǔ)矩陣的大小可以不同。例如:NAND Flash的存儲(chǔ)矩陣可以由4224個(gè)字節(jié)組成一個(gè)頁(yè),128個(gè)頁(yè)組成一個(gè)塊,由8192個(gè)塊組成整個(gè)NAND Flash的存儲(chǔ)矩陣。在每頁(yè)中前4096字節(jié)可以用于存儲(chǔ)數(shù)據(jù);而后128字節(jié)可以用于存放ECC數(shù)據(jù)校驗(yàn)碼,稱(chēng)為帶外數(shù)據(jù)(英文:0ut of Bank,縮寫(xiě):00B)區(qū)。每個(gè)頁(yè)的狀態(tài)可能為有效或者無(wú)效,其中,狀態(tài)為有效的頁(yè)中的數(shù)據(jù)為有效數(shù)據(jù),狀態(tài)為無(wú)效的頁(yè)中的數(shù)據(jù)為無(wú)效數(shù)據(jù)。
[0052]SSD的控制芯片13中,可以包括多種業(yè)務(wù)處理模塊131,例如:用于處理垃圾回收(英文:Garbage Collection,縮寫(xiě):GC)業(yè)務(wù)的模塊可以為GC模塊,用于處理巡檢業(yè)務(wù)的模塊可以為巡檢模塊,用于處理均衡業(yè)務(wù)的模塊可以為均衡模塊。其中,在GC、巡檢、均衡等業(yè)務(wù)處理的過(guò)程中,可能需要對(duì)有效數(shù)據(jù)進(jìn)行移動(dòng),這時(shí)相關(guān)的業(yè)務(wù)處理模塊131可以向移動(dòng)模塊133下發(fā)移動(dòng)命令,指示移動(dòng)模塊133將數(shù)據(jù)從源塊移動(dòng)到目的塊。圖2為本發(fā)明實(shí)施例一的固態(tài)硬盤(pán)的控制芯片13的工作原理示意圖,如圖2所示,控制芯片13可以劃分為業(yè)務(wù)處理層21和閃存(Flash)相關(guān)的命令操作層23,其中,各個(gè)業(yè)務(wù)處理模塊131如GC模塊211、巡檢模塊213、均衡模塊215等屬于業(yè)務(wù)處理層21,命令操作層23可以包括NANDflash的讀模塊231、NAND flash的寫(xiě)模塊233和移動(dòng)模塊133等。其中,在業(yè)務(wù)處理模塊131僅需要進(jìn)行讀數(shù)據(jù)操作時(shí),可以由讀模塊231控制;在業(yè)務(wù)處理模塊131僅需要進(jìn)行寫(xiě)數(shù)據(jù)的操作時(shí),可以由寫(xiě)模塊233控制;而在業(yè)務(wù)處理模塊131需要移動(dòng)數(shù)據(jù)的操作時(shí),可以將需要移出數(shù)據(jù)的源塊的地址和需要寫(xiě)入數(shù)據(jù)的目的塊的地址封裝生成移動(dòng)命令,由GC模塊211、巡檢模塊213、均衡模塊215等業(yè)務(wù)處理模塊發(fā)送給移動(dòng)模塊133,以控制NANDflash中的數(shù)據(jù)移動(dòng)。
[0053]以GC過(guò)程中的數(shù)據(jù)移動(dòng)為例:在GC過(guò)程中,需要將GC鏈上的某源塊中所有的有效數(shù)據(jù)搬移到空白塊,再將該源塊擦除,以達(dá)到釋放空間的目的。其中,將某源塊中所有的有效數(shù)據(jù)搬移到空白塊的過(guò)程,就是數(shù)據(jù)移動(dòng)的過(guò)程。這種情況下,GC模塊211可以向移動(dòng)模塊133發(fā)送移動(dòng)命令,將需要移出數(shù)據(jù)的源塊的地址和需要寫(xiě)入數(shù)據(jù)的目的塊的地址帶給移動(dòng)模塊133,然后移動(dòng)模塊133可以將有效數(shù)據(jù)從NAND Flash中的源塊讀出,進(jìn)行ECC校驗(yàn)后,將校驗(yàn)后的數(shù)據(jù)寫(xiě)入目的塊的空白頁(yè)。在源塊中的所有的有效數(shù)據(jù)全部移動(dòng)完成后,可以將源塊擦除,從而達(dá)到對(duì)源塊的存儲(chǔ)空間進(jìn)行回收的目的。
[0054]本實(shí)施例中,在需要移動(dòng)數(shù)據(jù)時(shí),固態(tài)硬盤(pán)的業(yè)務(wù)處理模塊可以將移動(dòng)命令發(fā)送給移動(dòng)模塊,移動(dòng)模塊通過(guò)移動(dòng)命令可以控制數(shù)據(jù)從源塊移動(dòng)到目的塊的空白頁(yè),與讀寫(xiě)分離數(shù)據(jù)移動(dòng)過(guò)程相比,數(shù)據(jù)移動(dòng)所經(jīng)過(guò)的通路簡(jiǎn)單,可以提高SSD的數(shù)據(jù)移動(dòng)效率,并且可以減少數(shù)據(jù)移動(dòng)所占用的后端資源如DMA數(shù)據(jù)通路、DDR、CPU等系統(tǒng)資源,降低數(shù)據(jù)移動(dòng)過(guò)程對(duì)SSD性能的影響。
[0055]實(shí)施例2
[0056]圖3a為本發(fā)明實(shí)施例二的固態(tài)硬盤(pán)的結(jié)構(gòu)示意圖,如圖3a所示,在上一實(shí)施例的基礎(chǔ)上,該固態(tài)硬盤(pán)的移動(dòng)模塊133可以包括:控制單元31和錯(cuò)誤檢查糾正編解碼單元ECU33 ;[0057]所述控制單元31,用于在接收所述移動(dòng)命令后,從所述源塊讀出有效數(shù)據(jù),將所述有效數(shù)據(jù)發(fā)送至所述E⑶33;
[0058]所述E⑶33,用于對(duì)所述有效數(shù)據(jù)進(jìn)行錯(cuò)誤檢查糾正ECC校驗(yàn);
[0059]所述控制單元31,還用于將所述E⑶33校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè)中。
[0060]具體地,圖3b和圖3c為本發(fā)明實(shí)施例二的固態(tài)硬盤(pán)的數(shù)據(jù)移動(dòng)的示意圖,如圖3b所示,移動(dòng)模塊133通過(guò)控制單元31和ECU33可以形成獨(dú)立的數(shù)據(jù)移動(dòng)通道,不需要占用系統(tǒng)的其他資源。
[0061]在一種可能的實(shí)現(xiàn)方式中,如圖3c所示,所述移動(dòng)模塊133還可以包括:
[0062]讀緩存35,用于緩存所述控制單元31從所述源塊中讀取的有效數(shù)據(jù);
[0063]所述控制單元31還用于從所述讀緩存35中讀取所述有效數(shù)據(jù)并發(fā)送至所述ECU33。
[0064]具體地,E⑶33進(jìn)行ECC校驗(yàn)的速度,通常比控制單元31讀取有效數(shù)據(jù)的速度快。因此,通過(guò)讀緩存35可以先緩存控制單元31從源塊預(yù)先讀取一部分有效數(shù)據(jù)。然后再有ECU33進(jìn)行ECC校驗(yàn),可以減少ECU33等待讀取數(shù)據(jù)的時(shí)間,從而加快數(shù)據(jù)移動(dòng)的速度。
[0065]在一種可能的實(shí)現(xiàn)方式中,如圖3c所示,所述移動(dòng)模塊還133可以包括:
[0066]寫(xiě)緩存37,用于緩存所述E⑶33校驗(yàn)后的數(shù)據(jù);
[0067]所述控制單元31還用于從所述寫(xiě)緩存37中讀取所述ECU33校驗(yàn)后的數(shù)據(jù),并將所述校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè)中。
[0068]具體地,由于E⑶33進(jìn)行ECC校驗(yàn)的速度快,E⑶33校驗(yàn)后的數(shù)據(jù)也可以先緩存到寫(xiě)緩存37,可以減少ECU33等待寫(xiě)入數(shù)據(jù)的時(shí)間,從而加快數(shù)據(jù)移動(dòng)的速度。
[0069]其中,讀緩存、寫(xiě)緩存可以采用緩沖器、FIFO、RAM等形式來(lái)實(shí)現(xiàn)。
[0070]在一種可能的實(shí)現(xiàn)方式中,所述E⑶33具體可以用于若所述E⑶33對(duì)所述有效數(shù)據(jù)校驗(yàn)的結(jié)果為正確,則將所述有效數(shù)據(jù)確定為所述ECU33校驗(yàn)后的數(shù)據(jù);若所述ECU33對(duì)所述有效數(shù)據(jù)校驗(yàn)的結(jié)果為錯(cuò)誤,則所述有效數(shù)據(jù)進(jìn)行糾錯(cuò)處理,將糾錯(cuò)處理后的數(shù)據(jù)確定為所述ECU33校驗(yàn)后的數(shù)據(jù)。
[0071]具體地,由于數(shù)據(jù)寫(xiě)入SSD之后,隨著時(shí)間的偏移,可能發(fā)生比特(英文:bit)跳變,且通常情況下,時(shí)間越長(zhǎng),跳變的bit數(shù)越多。因此,需要進(jìn)行ECC校驗(yàn)。雖然E⑶33對(duì)有效數(shù)據(jù)進(jìn)行ECC校驗(yàn)的過(guò)程中,需要對(duì)有效數(shù)據(jù)進(jìn)行解碼,但是,由于移動(dòng)模塊133的控制單元31能夠直接獲取有效數(shù)據(jù),因此,不需要將解碼后的數(shù)據(jù)重新編碼,而可以將校驗(yàn)后的數(shù)據(jù)直接寫(xiě)入目的塊的空白頁(yè)。其中,如果ECU33對(duì)有效數(shù)據(jù)的ECC校驗(yàn)結(jié)果為正確,控制單元31可以將有效數(shù)據(jù)直接作為校驗(yàn)后的數(shù)據(jù)寫(xiě)入目的塊的空白頁(yè);如果ECU33對(duì)有效數(shù)據(jù)的ECC校驗(yàn)結(jié)果為有錯(cuò),控制單元31可以將有效數(shù)據(jù)糾錯(cuò)后的數(shù)據(jù)作為校驗(yàn)后的數(shù)據(jù)寫(xiě)入目的塊的空白頁(yè)。
[0072]舉例而言:若SSD中Block N的Page2的有效數(shù)據(jù)為“01010111”,但控制單元31讀取到E⑶33中進(jìn)入ECC校驗(yàn)的數(shù)據(jù)為“01010111”,則經(jīng)過(guò)ECC校驗(yàn),可以得知該有效數(shù)據(jù)未發(fā)生跳變,校驗(yàn)結(jié)果為正確。但是,如果控制單元31讀取到ECU33中進(jìn)入ECC校驗(yàn)的數(shù)據(jù)為“01010110”,可以得知有I位(bit)發(fā)生跳變,需要進(jìn)行ECC糾錯(cuò),將“01010110”糾正為“01010111”。[0073]本實(shí)施例中,在需要移動(dòng)數(shù)據(jù)時(shí),SSD的業(yè)務(wù)處理模塊可以將移動(dòng)命令發(fā)送給移動(dòng)模塊,移動(dòng)模塊通過(guò)移動(dòng)命令可以控制數(shù)據(jù)從源塊移動(dòng)到目的塊的空白頁(yè),與讀寫(xiě)分離數(shù)據(jù)移動(dòng)過(guò)程相比,數(shù)據(jù)移動(dòng)所經(jīng)過(guò)的通路簡(jiǎn)單,可以提高SSD的數(shù)據(jù)移動(dòng)效率,并且可以減少數(shù)據(jù)移動(dòng)所占用的后端資源如DMA數(shù)據(jù)通路、DDR、CPU等系統(tǒng)資源,降低數(shù)據(jù)移動(dòng)過(guò)程對(duì)SSD性能的影響。并且,由于移動(dòng)模塊可以直接將有效數(shù)據(jù)(或糾錯(cuò)后的有效數(shù)據(jù))寫(xiě)入目的塊的空白頁(yè),不需要進(jìn)行重新編碼,可以減少數(shù)據(jù)移動(dòng)的流程,進(jìn)一步提高SSD的數(shù)據(jù)移動(dòng)效率以及降低數(shù)據(jù)移動(dòng)過(guò)程對(duì)SSD性能的影響。
[0074]實(shí)施例3
[0075]圖4為本發(fā)明實(shí)施例三的數(shù)據(jù)移動(dòng)方法的流程圖,該數(shù)據(jù)移動(dòng)方法可以應(yīng)用于上述實(shí)施例中的任意一種結(jié)構(gòu)的固態(tài)硬盤(pán)。其中,參見(jiàn)圖1,固態(tài)硬盤(pán)可以包括存儲(chǔ)介質(zhì)和控制芯片;所述存儲(chǔ)介質(zhì)的存儲(chǔ)空間劃分為至少兩個(gè)用于存儲(chǔ)數(shù)據(jù)的塊,所述控制芯片包括業(yè)務(wù)處理模塊和移動(dòng)模塊。其中,固態(tài)硬盤(pán)中的存儲(chǔ)介質(zhì)可以采用與非門(mén)閃存(NANDFlash)等非易失性存儲(chǔ)器實(shí)現(xiàn)。NAND Flash的具體結(jié)構(gòu)可以參見(jiàn)上述固態(tài)硬盤(pán)實(shí)施例中的相關(guān)描述。
[0076]如圖4所示,該數(shù)據(jù)移動(dòng)方法可以包括:
[0077]步驟410、移動(dòng)模塊接收業(yè)務(wù)處理模塊發(fā)送的移動(dòng)命令,所述移動(dòng)命令用于指示所述移動(dòng)模塊將數(shù)據(jù)從源塊移動(dòng)到目的塊,所述移動(dòng)命令中包括所述源塊的地址和所述目的塊的地址,所述源塊為所述存儲(chǔ)介質(zhì)中需要移出數(shù)據(jù)的塊,所述目的塊為所述存儲(chǔ)介質(zhì)中需要寫(xiě)入數(shù)據(jù)的塊。
[0078]步驟420、移動(dòng)模塊根據(jù)所述移動(dòng)命令從所述源塊讀出有效數(shù)據(jù),對(duì)所述有效數(shù)據(jù)進(jìn)行ECC校驗(yàn)后,將校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè)中。
[0079]具體地,參見(jiàn)圖2,SSD的控制芯片可以劃分為業(yè)務(wù)處理層21和閃存(Flash)相關(guān)的命令操作層23,其中,各個(gè)業(yè)務(wù)處理模塊如GC模塊211、巡檢模塊213、均衡模塊215等屬于業(yè)務(wù)處理層21,命令操作層23可以包括NAND flash的讀模塊231、NAND flash的寫(xiě)模塊233和移動(dòng)模塊133等。其中,在業(yè)務(wù)處理模塊僅需要進(jìn)行讀數(shù)據(jù)操作時(shí),可以由讀模塊231控制;在業(yè)務(wù)處理模塊僅需要進(jìn)行寫(xiě)數(shù)據(jù)的操作時(shí),可以由寫(xiě)模塊233控制;而在業(yè)務(wù)處理模塊需要移動(dòng)數(shù)據(jù)的操作時(shí),可以將需要移出數(shù)據(jù)的源塊的地址和需要寫(xiě)入數(shù)據(jù)的目的塊的地址封裝生成移動(dòng)命令,由移動(dòng)模塊133控制數(shù)據(jù)移動(dòng)。
[0080]本實(shí)施例的數(shù)據(jù)移動(dòng)方法中,在需要移動(dòng)數(shù)據(jù)時(shí),業(yè)務(wù)處理模塊可以將移動(dòng)命令發(fā)送給移動(dòng)模塊,移動(dòng)模塊通過(guò)移動(dòng)命令可以控制數(shù)據(jù)從源塊移動(dòng)到目的塊的空白頁(yè),與讀寫(xiě)分離數(shù)據(jù)移動(dòng)過(guò)程相比,數(shù)據(jù)移動(dòng)所經(jīng)過(guò)的通路簡(jiǎn)單,可以提高SSD的數(shù)據(jù)移動(dòng)效率,并且可以減少數(shù)據(jù)移動(dòng)所占用的后端資源如DMA數(shù)據(jù)通路、DDR、CPU等系統(tǒng)資源,降低數(shù)據(jù)移動(dòng)過(guò)程對(duì)SSD性能的影響。
[0081]實(shí)施例4
[0082]圖5為本發(fā)明實(shí)施例四的數(shù)據(jù)移動(dòng)方法的流程圖。圖5中與圖4標(biāo)號(hào)相同的步驟具有相同的功能,為簡(jiǎn)明起見(jiàn),省略對(duì)這些步驟的詳細(xì)說(shuō)明。
[0083]如圖5所示,與圖4所示的方法的區(qū)別在于,步驟420具體可以包括:
[0084]步驟510、所述移動(dòng)模塊的控制單元在接收所述移動(dòng)命令后,從所述源塊讀出有效數(shù)據(jù),將所述有效數(shù)據(jù)發(fā)送至所述移動(dòng)模塊的E⑶;[0085]步驟520、所述E⑶對(duì)所述有效數(shù)據(jù)進(jìn)行ECC校驗(yàn);
[0086]步驟530、所述控制單元將所述ECU校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè)中。
[0087]參見(jiàn)圖3,所述移動(dòng)模塊還可以包括讀緩存。這種情況下,如圖6所示,步驟510具體可以包括:
[0088]步驟600、所述移動(dòng)模塊的控制單元在接收所述移動(dòng)命令后,從所述源塊讀出有效數(shù)據(jù)。
[0089]步驟610、所述控制單元將從所述源塊中讀取的所述有效數(shù)據(jù)緩存到所述讀緩存中。
[0090]步驟620、所述控制單元從所述讀緩存中讀取所述有效數(shù)據(jù)并發(fā)送至所述ECU。[0091 ] 具體地,E⑶進(jìn)行ECC校驗(yàn)的速度,通常比控制單元讀取有效數(shù)據(jù)的速度快。因此,通過(guò)讀緩存可以先緩存控制單元從源塊預(yù)先讀取一部分有效數(shù)據(jù)。然后再有ECU進(jìn)行ECC校驗(yàn),可以減少ECU等待讀取數(shù)據(jù)的時(shí)間。
[0092]進(jìn)一步地,如圖6所示,步驟520具體可以包括:
[0093]步驟700、ECU對(duì)有效數(shù)據(jù)進(jìn)行ECC校驗(yàn),若所述ECU對(duì)所述有效數(shù)據(jù)校驗(yàn)的結(jié)果為正確,則執(zhí)行步驟710 ;若所述ECU對(duì)所述有效數(shù)據(jù)校驗(yàn)的結(jié)果為錯(cuò)誤,則則執(zhí)行步驟720。
[0094]步驟710、E⑶將所述有效數(shù)據(jù)確定為所述E⑶校驗(yàn)后的數(shù)據(jù);
[0095]步驟720、E⑶對(duì)所述有效數(shù)據(jù)進(jìn)行糾錯(cuò)處理,將糾錯(cuò)處理后的數(shù)據(jù)確定為所述E⑶校驗(yàn)后的數(shù)據(jù)。
[0096]具體地,由于數(shù)據(jù)寫(xiě)入SSD之后,隨著時(shí)間的偏移,可能發(fā)生比特(英文:bit)跳變,且通常情況下,時(shí)間越長(zhǎng),跳變的bit數(shù)越多。因此,需要進(jìn)行ECC校驗(yàn)。雖然E⑶33對(duì)有效數(shù)據(jù)進(jìn)行ECC校驗(yàn)的過(guò)程中,需要對(duì)有效數(shù)據(jù)進(jìn)行解碼,但是,由于移動(dòng)模塊的控制單元能夠直接獲取有效數(shù)據(jù),因此,不需要將解碼后的數(shù)據(jù)重新編碼,而可以將校驗(yàn)后的數(shù)據(jù)直接寫(xiě)入目的塊的空白頁(yè)。其中,如果ECU對(duì)有效數(shù)據(jù)的ECC校驗(yàn)結(jié)果為正確,控制單元可以將有效數(shù)據(jù)直接作為校驗(yàn)后的數(shù)據(jù)寫(xiě)入目的塊的空白頁(yè);如果ECU對(duì)有效數(shù)據(jù)的ECC校驗(yàn)結(jié)果為有錯(cuò),控制單元可以將有效數(shù)據(jù)糾錯(cuò)后的數(shù)據(jù)作為校驗(yàn)后的數(shù)據(jù)寫(xiě)入目的塊的空白頁(yè)。ECU對(duì)有效數(shù)據(jù)進(jìn)行ECC校驗(yàn)的示例可以參見(jiàn)上述SSD實(shí)施例中的相關(guān)描述。
[0097]進(jìn)一步地,參見(jiàn)圖3,所述移動(dòng)模塊還可以包括寫(xiě)緩存。這種情況下,如圖6所示,步驟530具體可以包括:
[0098]步驟810、所述控制單元將所述ECU校驗(yàn)后的數(shù)據(jù)緩存到所述寫(xiě)緩存中;
[0099]步驟820、所述控制單元從所述寫(xiě)緩存中讀取所述ECU校驗(yàn)后的數(shù)據(jù),并將所述校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè)中。
[0100]具體地,由于相比ECC校驗(yàn)的速度,寫(xiě)入到SSD中目的塊的空白頁(yè)的速度較慢。可以將ECC校驗(yàn)完的有效數(shù)據(jù),先緩存到寫(xiě)緩存中,等待寫(xiě)入目的塊,以減少ECU等待寫(xiě)入數(shù)據(jù)的時(shí)間,從而加快數(shù)據(jù)移動(dòng)的速度
[0101]本實(shí)施例的數(shù)據(jù)移動(dòng)方法中,在需要移動(dòng)數(shù)據(jù)時(shí),SSD的業(yè)務(wù)處理模塊可以將移動(dòng)命令發(fā)送給移動(dòng)模塊,移動(dòng)模塊通過(guò)移動(dòng)命令可以控制數(shù)據(jù)從源塊移動(dòng)到目的塊的空白頁(yè),與讀寫(xiě)分離數(shù)據(jù)移動(dòng)過(guò)程相比,數(shù)據(jù)移動(dòng)所經(jīng)過(guò)的通路簡(jiǎn)單,可以提高SSD的數(shù)據(jù)移動(dòng)效率,并且可以減少數(shù)據(jù)移動(dòng)所占用的后端資源如DMA數(shù)據(jù)通路、DDR、CPU等系統(tǒng)資源,降低數(shù)據(jù)移動(dòng)過(guò)程對(duì)SSD性能的影響。并且,由于移動(dòng)模塊可以直接將有效數(shù)據(jù)(或糾錯(cuò)后的有效數(shù)據(jù))寫(xiě)入目的塊的空白頁(yè),不需要進(jìn)行重新編碼,可以減少數(shù)據(jù)移動(dòng)的流程,進(jìn)一步提高SSD的數(shù)據(jù)移動(dòng)效率以及降低數(shù)據(jù)移動(dòng)過(guò)程對(duì)SSD性能的影響。
[0102]實(shí)施例5
[0103]圖7為本發(fā)明實(shí)施例五的固態(tài)硬盤(pán)的結(jié)構(gòu)框圖。所述固態(tài)硬盤(pán)可以是具備計(jì)算能力的主機(jī)服務(wù)器、個(gè)人計(jì)算機(jī)PC、或者可攜帶的便攜式計(jì)算機(jī)或終端等。本發(fā)明具體實(shí)施例并不對(duì)計(jì)算節(jié)點(diǎn)的具體實(shí)現(xiàn)做限定。
[0104]所述固態(tài)硬盤(pán)包括處理器(processor) 910、通信接口(CommunicationsInterface)920、存儲(chǔ)器(memory array)930 和總線 940。其中,處理器 910、通信接口 920、以及存儲(chǔ)器930通過(guò)總線940完成相互間的通信。
[0105]通信接口 920用于與網(wǎng)元通信,其中網(wǎng)元包括例如虛擬機(jī)管理中心、共享存儲(chǔ)等。
[0106]處理器910用于執(zhí)行程序。處理器910可能是一個(gè)中央處理器CPU,或者是專(zhuān)用集成電路ASIC (Application Specific Integrated Circuit),或者是被配置成實(shí)施本發(fā)明實(shí)施例的一個(gè)或多個(gè)集成電路。
[0107]存儲(chǔ)器930用于存放文件。存儲(chǔ)器930可能包含高速RAM存儲(chǔ)器,也可能還包括非易失性存儲(chǔ)器(non-volatile memory),例如至少一個(gè)磁盤(pán)存儲(chǔ)器。存儲(chǔ)器930也可以是存儲(chǔ)器陣列。存儲(chǔ)器930還可能被分塊,并且所述塊可按一定的規(guī)則組合成虛擬卷。
[0108]在一種可能的實(shí)施方式中,上述程序可為包括計(jì)算機(jī)操作指令的程序代碼。該程序具體可用于:
[0109]所述方法應(yīng)用于固態(tài)硬盤(pán)中,所述固態(tài)硬盤(pán)包括存儲(chǔ)介質(zhì)和控制芯片;所述存儲(chǔ)介質(zhì)的存儲(chǔ)空間劃分為至少兩個(gè)用于存儲(chǔ)數(shù)據(jù)的塊,所述控制芯片包括業(yè)務(wù)處理模塊和移動(dòng)模塊,所述方法包括:
[0110]所述移動(dòng)模塊接收所述業(yè)務(wù)處理模塊發(fā)送的移動(dòng)命令,所述移動(dòng)命令用于指示所述移動(dòng)模塊將數(shù)據(jù)從源塊移動(dòng)到目的塊,所述移動(dòng)命令中包括所述源塊的地址和所述目的塊的地址,所述源塊為所述存儲(chǔ)介質(zhì)中需要移出數(shù)據(jù)的塊,所述目的塊為所述存儲(chǔ)介質(zhì)中需要寫(xiě)入數(shù)據(jù)的塊;
[0111]所述移動(dòng)模塊根據(jù)所述移動(dòng)命令從所述源塊讀出有效數(shù)據(jù),對(duì)所述有效數(shù)據(jù)進(jìn)行ECC校驗(yàn)后,將校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè)中。
[0112]在一種可能的實(shí)施方式中,所述移動(dòng)模塊根據(jù)所述移動(dòng)命令從所述源塊讀出有效數(shù)據(jù),對(duì)所述有效數(shù)據(jù)進(jìn)行ECC校驗(yàn)后,將校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè)中,包括:
[0113]所述移動(dòng)模塊的控制單元在接收所述移動(dòng)命令后,從所述源塊讀出有效數(shù)據(jù),將所述有效數(shù)據(jù)發(fā)送至所述移動(dòng)模塊的E⑶;
[0114]所述E⑶對(duì)所述有效數(shù)據(jù)進(jìn)行ECC校驗(yàn);
[0115]所述控制單元將所述ECU校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè)。
[0116]在一種可能的實(shí)施方式中,所述移動(dòng)模塊還包括讀緩存,所述控制單元將所述有效數(shù)據(jù)發(fā)送至所述E⑶,包括:
[0117]所述控制單元將從所述源塊中讀取的所述有效數(shù)據(jù)緩存到所述讀緩存中;
[0118]所述控制單元從所述讀緩存中讀取所述有效數(shù)據(jù)并發(fā)送至所述ECU。[0119]在一種可能的實(shí)施方式中,所述移動(dòng)模塊還包括寫(xiě)緩存,所述控制單元將所述ECU校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè),包括:
[0120]所述控制單元將所述ECU校驗(yàn)后的數(shù)據(jù)緩存到所述寫(xiě)緩存中;
[0121]所述控制單元從所述寫(xiě)緩存中讀取所述ECU校驗(yàn)后的數(shù)據(jù),并將所述校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè)中。
[0122]在一種可能的實(shí)施方式中,所述ECU對(duì)所述有效數(shù)據(jù)進(jìn)行ECC校驗(yàn),包括:
[0123]若所述ECU對(duì)所述有效數(shù)據(jù)校驗(yàn)的結(jié)果為正確,則所述ECU將所述有效數(shù)據(jù)確定為所述ECU校驗(yàn)后的數(shù)據(jù);
[0124]若所述ECU對(duì)所述有效數(shù)據(jù)校驗(yàn)的結(jié)果為錯(cuò)誤,則所述ECU對(duì)所述有效數(shù)據(jù)進(jìn)行糾錯(cuò)處理,將糾錯(cuò)處理后的數(shù)據(jù)確定為所述ECU校驗(yàn)后的數(shù)據(jù)。
[0125]本領(lǐng)域普通技術(shù)人員可以意識(shí)到,本文所描述的實(shí)施例中的各示例性單元及算法步驟,能夠以電子硬件、或者計(jì)算機(jī)軟件和電子硬件的結(jié)合來(lái)實(shí)現(xiàn)。這些功能究竟以硬件還是軟件形式來(lái)實(shí)現(xiàn),取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專(zhuān)業(yè)技術(shù)人員可以針對(duì)特定的應(yīng)用選擇不同的方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
[0126]如果以計(jì)算機(jī)軟件的形式來(lái)實(shí)現(xiàn)所述功能并作為獨(dú)立的產(chǎn)品銷(xiāo)售或使用時(shí),則在一定程度上可認(rèn)為本發(fā)明的技術(shù)方案的全部或部分(例如對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分)是以計(jì)算機(jī)軟件產(chǎn)品的形式體現(xiàn)的。該計(jì)算機(jī)軟件產(chǎn)品通常存儲(chǔ)在計(jì)算機(jī)可讀取的存儲(chǔ)介質(zhì)中,包括若干指令用以使得計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī)、服務(wù)器、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各實(shí)施例方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括U盤(pán)、移動(dòng)硬盤(pán)、只讀存儲(chǔ)器(ROM, Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM, Random Access Memory)、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0127]以上所述,僅為本發(fā)明的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【權(quán)利要求】
1.一種固態(tài)硬盤(pán),其特征在于,包括:存儲(chǔ)介質(zhì)和控制芯片;所述存儲(chǔ)介質(zhì)的存儲(chǔ)空間劃分為至少兩個(gè)用于存儲(chǔ)數(shù)據(jù)的塊,所述控制芯片包括: 業(yè)務(wù)處理模塊,用于向移動(dòng)模塊發(fā)送移動(dòng)命令,所述移動(dòng)命令用于指示所述移動(dòng)模塊將數(shù)據(jù)從源塊移動(dòng)到目的塊,所述移動(dòng)命令中包括所述源塊的地址和所述目的塊的地址,所述源塊為所述存儲(chǔ)介質(zhì)中需要移出數(shù)據(jù)的塊,所述目的塊為所述存儲(chǔ)介質(zhì)中需要寫(xiě)入數(shù)據(jù)的塊; 移動(dòng)模塊,用于接收所述業(yè)務(wù)處理模塊發(fā)送的所述移動(dòng)命令;根據(jù)所述移動(dòng)命令,從所述源塊讀出有效數(shù)據(jù),對(duì)所述有效數(shù)據(jù)進(jìn)行錯(cuò)誤檢查糾正ECC校驗(yàn);將校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè)中。
2.根據(jù)權(quán)利要求1所述固態(tài)硬盤(pán),其特征在于,所述移動(dòng)模塊包括:控制單元和錯(cuò)誤檢查糾正編解碼單元E⑶; 所述控制單元,用于在接收所述移動(dòng)命令后,從所述源塊讀出有效數(shù)據(jù),將所述有效數(shù)據(jù)發(fā)送至所述ECU; 所述ECU,用于對(duì)所述有效數(shù)據(jù)進(jìn)行錯(cuò)誤檢查糾正ECC校驗(yàn); 所述控制單元,還用于將所述ECU校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè)中。
3.根據(jù)權(quán)利要求2所述固態(tài)硬盤(pán),其特征在于,所述移動(dòng)模塊還包括: 讀緩存,用于緩存所述 控制單元從所述源塊中讀取的有效數(shù)據(jù); 所述控制單元,還用于從所述讀緩存中讀取所述有效數(shù)據(jù)并發(fā)送至所述E⑶。
4.根據(jù)權(quán)利要求2或3所述固態(tài)硬盤(pán),其特征在于,所述移動(dòng)模塊還包括: 寫(xiě)緩存,用于緩存所述ECU校驗(yàn)后的數(shù)據(jù); 所述控制單元,還用于從所述寫(xiě)緩存中讀取所述ECU校驗(yàn)后的數(shù)據(jù),并將所述校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè)中。
5.根據(jù)權(quán)利要求2-4中任一項(xiàng)所述的固態(tài)硬盤(pán),其特征在于: 所述ECU,具體用于若所述ECU對(duì)所述有效數(shù)據(jù)校驗(yàn)的結(jié)果為正確,則將所述有效數(shù)據(jù)確定為所述ECU校驗(yàn)后的數(shù)據(jù);若所述ECU對(duì)所述有效數(shù)據(jù)校驗(yàn)的結(jié)果為錯(cuò)誤,則對(duì)所述有效數(shù)據(jù)進(jìn)行糾錯(cuò)處理,將糾錯(cuò)處理后的數(shù)據(jù)確定為所述ECU校驗(yàn)后的數(shù)據(jù)。
6.一種數(shù)據(jù)移動(dòng)方法,其特征在于,所述方法應(yīng)用于固態(tài)硬盤(pán)中,所述固態(tài)硬盤(pán)包括存儲(chǔ)介質(zhì)和控制芯片;所述存儲(chǔ)介質(zhì)的存儲(chǔ)空間劃分為至少兩個(gè)用于存儲(chǔ)數(shù)據(jù)的塊,所述控制芯片包括業(yè)務(wù)處理模塊和移動(dòng)模塊,所述方法包括: 所述移動(dòng)模塊接收所述業(yè)務(wù)處理模塊發(fā)送的移動(dòng)命令,所述移動(dòng)命令用于指示所述移動(dòng)模塊將數(shù)據(jù)從源塊移動(dòng)到目的塊,所述移動(dòng)命令中包括所述源塊的地址和所述目的塊的地址,所述源塊為所述存儲(chǔ)介質(zhì)中需要移出數(shù)據(jù)的塊,所述目的塊為所述存儲(chǔ)介質(zhì)中需要寫(xiě)入數(shù)據(jù)的塊; 所述移動(dòng)模塊根據(jù)所述移動(dòng)命令從所述源塊讀出有效數(shù)據(jù),對(duì)所述有效數(shù)據(jù)進(jìn)行ECC校驗(yàn)后,將校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè)中。
7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)移動(dòng)方法,其特征在于,所述移動(dòng)模塊根據(jù)所述移動(dòng)命令從所述源塊讀出有效數(shù)據(jù),對(duì)所述有效數(shù)據(jù)進(jìn)行ECC校驗(yàn)后,將校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè)中,包括: 所述移動(dòng)模塊的控制單元在接收所述移動(dòng)命令后,從所述源塊讀出有效數(shù)據(jù),將所述有效數(shù)據(jù)發(fā)送至所述移動(dòng)模塊的E⑶; 所述ECU對(duì)所述有效數(shù)據(jù)進(jìn)行ECC校驗(yàn); 所述控制單元將所述ECU校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè)。
8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)移動(dòng)方法,其特征在于,所述移動(dòng)模塊還包括讀緩存,所述控制單元將所述有效數(shù)據(jù)發(fā)送至所述ECU,包括: 所述控制單元將從所述源塊中讀取的所述有效數(shù)據(jù)緩存到所述讀緩存中; 所述控制單元從所述讀緩存中讀取所述有效數(shù)據(jù)并發(fā)送至所述ECU。
9.根據(jù)權(quán)利要求7或8所述的數(shù)據(jù)移動(dòng)方法,其特征在于,所述移動(dòng)模塊還包括寫(xiě)緩存,所述控制單元將所述ECU校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè),包括: 所述控制單元將所述ECU校驗(yàn)后的數(shù)據(jù)緩存到所述寫(xiě)緩存中; 所述控制單元從所述寫(xiě)緩存中讀取所述ECU校驗(yàn)后的數(shù)據(jù),并將所述校驗(yàn)后的數(shù)據(jù)寫(xiě)入所述目的塊的空白頁(yè)中。
10.根據(jù)權(quán)利要求7-9中任一項(xiàng)所述的數(shù)據(jù)移動(dòng)方法,其特征在于,所述ECU對(duì)所述有效數(shù)據(jù)進(jìn)行ECC校驗(yàn),包括: 若所述ECU對(duì)所述有效數(shù)據(jù)校驗(yàn)的結(jié)果為正確,則所述ECU將所述有效數(shù)據(jù)確定為所述ECU校驗(yàn)后的數(shù)據(jù); 若所述ECU對(duì)所述有效數(shù)據(jù)校驗(yàn)的結(jié)果為錯(cuò)誤,則所述ECU對(duì)所述有效數(shù)據(jù)進(jìn)行糾錯(cuò)處理,將糾錯(cuò)處理后的數(shù)據(jù)確定為所述`ECU校驗(yàn)后的數(shù)據(jù)。
【文檔編號(hào)】G11C16/06GK103761988SQ201310740030
【公開(kāi)日】2014年4月30日 申請(qǐng)日期:2013年12月27日 優(yōu)先權(quán)日:2013年12月27日
【發(fā)明者】黎燕, 周猛, 張頗 申請(qǐng)人:華為技術(shù)有限公司