閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的方法和系統(tǒng)。所述方法,包括以下步驟:接收對(duì)閃存存儲(chǔ)設(shè)備發(fā)出的數(shù)據(jù)寫(xiě)操作命令,所述數(shù)據(jù)寫(xiě)操作命令包括待寫(xiě)入數(shù)據(jù)和待寫(xiě)入數(shù)據(jù)的邏輯地址;根據(jù)所述數(shù)據(jù)寫(xiě)操作命令將所述待寫(xiě)入數(shù)據(jù)存放在一個(gè)或多個(gè)數(shù)據(jù)緩存區(qū)域中;將所述緩存區(qū)域中的數(shù)據(jù)寫(xiě)入所述邏輯地址指向的閃存存儲(chǔ)設(shè)備的存儲(chǔ)單元中;對(duì)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)進(jìn)行ECC校驗(yàn);當(dāng)校驗(yàn)的錯(cuò)誤字節(jié)數(shù)超過(guò)ECC閾值時(shí),重寫(xiě)所述數(shù)據(jù)緩存區(qū)域的數(shù)據(jù),并對(duì)重寫(xiě)的數(shù)據(jù)進(jìn)行ECC校驗(yàn)直至所述校驗(yàn)的錯(cuò)誤字節(jié)數(shù)不超過(guò)ECC閾值。通過(guò)對(duì)寫(xiě)入存儲(chǔ)單元的數(shù)據(jù)進(jìn)行多次的校驗(yàn),直至寫(xiě)入存儲(chǔ)單元的數(shù)據(jù)是正確的,保證了數(shù)據(jù)存取的準(zhǔn)確,提高了寫(xiě)數(shù)據(jù)的穩(wěn)定性和可靠性。
【專利說(shuō)明】閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及存儲(chǔ)設(shè)備,特別是涉及一種閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的方法和系統(tǒng)。
【背景技術(shù)】
[0002]傳統(tǒng)的閃存存儲(chǔ)設(shè)備用于數(shù)據(jù)的存放和讀取時(shí),歷經(jīng)了反反復(fù)復(fù)的擦除和寫(xiě)入操作,即充電和放電的過(guò)程,其壽命將會(huì)縮小,性能將會(huì)下降,從而可能會(huì)導(dǎo)致在后續(xù)繼續(xù)使用該閃存存儲(chǔ)設(shè)備時(shí)容易出現(xiàn)數(shù)據(jù)存取錯(cuò)誤的問(wèn)題。
【發(fā)明內(nèi)容】
[0003]基于此,有必要針對(duì)傳統(tǒng)的閃存存儲(chǔ)設(shè)備因反復(fù)進(jìn)行擦除和寫(xiě)入操作導(dǎo)致后續(xù)使用容易出現(xiàn)數(shù)據(jù)存取錯(cuò)誤的問(wèn)題,提供一種能保證數(shù)據(jù)存取準(zhǔn)確的閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的方法。
[0004]此外,還有必要提供一種能保證數(shù)據(jù)存取準(zhǔn)確的閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的系統(tǒng)。
[0005]一種閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的方法,包括以下步驟:
[0006]接收對(duì)閃存存儲(chǔ)設(shè)備發(fā)出的數(shù)據(jù)寫(xiě)操作命令,所述數(shù)據(jù)寫(xiě)操作命令包括待寫(xiě)入數(shù)據(jù)和待寫(xiě)入數(shù)據(jù)的邏輯地址;
[0007]根據(jù)所述數(shù)據(jù)寫(xiě)操作命令將所述待寫(xiě)入數(shù)據(jù)存放在一個(gè)或多個(gè)數(shù)據(jù)緩存區(qū)域中;
[0008]將所述緩存區(qū)域中的數(shù)據(jù)寫(xiě)入所述邏輯地址指向的閃存存儲(chǔ)設(shè)備的存儲(chǔ)單元中;
[0009]對(duì)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)進(jìn)行ECC校驗(yàn);
[0010]當(dāng)所述校驗(yàn)的錯(cuò)誤字節(jié)數(shù)超過(guò)ECC閾值時(shí),重寫(xiě)所述數(shù)據(jù)緩存區(qū)域的數(shù)據(jù),并對(duì)重寫(xiě)的數(shù)據(jù)進(jìn)行ECC校驗(yàn)直至所述校驗(yàn)的錯(cuò)誤字節(jié)數(shù)不超過(guò)ECC閾值。
[0011]在其中一個(gè)實(shí)施例中,所述根據(jù)所述數(shù)據(jù)寫(xiě)操作命令將所述待寫(xiě)入數(shù)據(jù)存放在一個(gè)數(shù)據(jù)緩存區(qū)域中的步驟包括:
[0012]根據(jù)所述數(shù)據(jù)寫(xiě)操作命令以所述數(shù)據(jù)緩存區(qū)域的最大暫存數(shù)據(jù)量為單位分批次將所述待寫(xiě)入數(shù)據(jù)暫存入所述數(shù)據(jù)緩存區(qū)域中。
[0013]在其中一個(gè)實(shí)施例中,所述根據(jù)所述數(shù)據(jù)寫(xiě)操作命令將所述待寫(xiě)入數(shù)據(jù)存放在多個(gè)數(shù)據(jù)緩存區(qū)域中的步驟包括:
[0014]根據(jù)所述數(shù)據(jù)寫(xiě)操作命令,以所述多個(gè)數(shù)據(jù)緩存區(qū)域各自最大暫存數(shù)據(jù)量為單位輪流將所述待寫(xiě)入數(shù)據(jù)暫存入所述多個(gè)數(shù)據(jù)緩存區(qū)域中。
[0015]在其中一個(gè)實(shí)施例中,對(duì)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)進(jìn)行ECC校驗(yàn)的步驟包括:
[0016]對(duì)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)以頁(yè)為單位讀取并進(jìn)行ECC校驗(yàn);
[0017]當(dāng)所述校驗(yàn)的錯(cuò)誤字節(jié)數(shù)超過(guò)ECC閾值時(shí),重寫(xiě)所述數(shù)據(jù)緩存區(qū)域的數(shù)據(jù)的步驟包括:[0018]當(dāng)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)中每個(gè)頁(yè)的錯(cuò)誤字節(jié)超過(guò)ECC閾值時(shí),則將所述數(shù)據(jù)緩存區(qū)域中的數(shù)據(jù)寫(xiě)入到所述邏輯地址指向的后續(xù)的頁(yè)中。
[0019]在其中一個(gè)實(shí)施例中,對(duì)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)進(jìn)行ECC校驗(yàn)的步驟包括:
[0020]對(duì)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)以頁(yè)為單位讀取并進(jìn)行ECC校驗(yàn);
[0021]當(dāng)所述校驗(yàn)的錯(cuò)誤字節(jié)數(shù)超過(guò)ECC閾值時(shí),重寫(xiě)所述數(shù)據(jù)緩存區(qū)域的數(shù)據(jù)的步驟包括:
[0022]當(dāng)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)中部分頁(yè)的錯(cuò)誤字節(jié)超過(guò)ECC閾值時(shí),則將所述數(shù)據(jù)緩存區(qū)域中的部分頁(yè)的數(shù)據(jù)重寫(xiě)入到所述邏輯地址指向的后續(xù)的頁(yè)中。
[0023]一種閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的系統(tǒng),包括:
[0024]接收模塊,用于接收對(duì)閃存存儲(chǔ)設(shè)備發(fā)出的數(shù)據(jù)寫(xiě)操作命令,所述數(shù)據(jù)寫(xiě)操作命令包括待寫(xiě)入數(shù)據(jù)和待寫(xiě)入數(shù)據(jù)的邏輯地址;
[0025]緩存模塊,用于根據(jù)所述數(shù)據(jù)寫(xiě)操作命令將所述待寫(xiě)入數(shù)據(jù)存放在一個(gè)或多個(gè)數(shù)據(jù)緩存區(qū)域中;
[0026]寫(xiě)入模塊,用于將所述緩存區(qū)域中的數(shù)據(jù)寫(xiě)入所述邏輯地址所指向的閃存存儲(chǔ)設(shè)備的存儲(chǔ)單元中;
[0027]校驗(yàn)?zāi)K,用于對(duì)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)進(jìn)行ECC校驗(yàn);
[0028]所述寫(xiě)入模塊還用于當(dāng)所述校驗(yàn)的錯(cuò)誤字節(jié)數(shù)超過(guò)ECC閾值時(shí),重寫(xiě)所述數(shù)據(jù)緩存區(qū)域的數(shù)據(jù);
[0029]所述校驗(yàn)?zāi)K還用于對(duì)重寫(xiě)的數(shù)據(jù)進(jìn)行ECC校驗(yàn)直至所述校驗(yàn)的錯(cuò)誤字節(jié)數(shù)不超過(guò)所述ECC閾值。
[0030]在其中一個(gè)實(shí)施例中,所述緩存模塊還用于根據(jù)所述數(shù)據(jù)寫(xiě)操作命令以所述數(shù)據(jù)緩存區(qū)域的最大暫存數(shù)據(jù)量為單位分批次將所述待寫(xiě)入數(shù)據(jù)暫存入所述數(shù)據(jù)緩存區(qū)域中。
[0031]在其中一個(gè)實(shí)施例中,所述緩存模塊還用于根據(jù)所述數(shù)據(jù)寫(xiě)操作命令,以所述多個(gè)數(shù)據(jù)緩存區(qū)域各自最大暫存數(shù)據(jù)量為單位輪流將所述待寫(xiě)入數(shù)據(jù)暫存入所述多個(gè)數(shù)據(jù)緩存區(qū)域中。
[0032]在其中一個(gè)實(shí)施例中,所述校驗(yàn)?zāi)K還用于對(duì)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)以頁(yè)為單位讀取并進(jìn)行ECC校驗(yàn);所述寫(xiě)入模塊還用于當(dāng)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)中每個(gè)頁(yè)的錯(cuò)誤字節(jié)超過(guò)ECC閾值時(shí),則將所述數(shù)據(jù)緩存區(qū)域中的數(shù)據(jù)寫(xiě)入到所述邏輯地址指向的后續(xù)的頁(yè)中。
[0033]在其中一個(gè)實(shí)施例中,所述校驗(yàn)?zāi)K還用于對(duì)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)以頁(yè)為單位讀取并進(jìn)行ECC校驗(yàn);所述寫(xiě)入模塊還用于當(dāng)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)中部分頁(yè)的錯(cuò)誤字節(jié)超過(guò)ECC閾值時(shí),則將所述數(shù)據(jù)緩存區(qū)域中的部分頁(yè)的數(shù)據(jù)重寫(xiě)入到所述邏輯地址指向的后續(xù)的頁(yè)中。
[0034]上述閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的方法和系統(tǒng),通過(guò)在對(duì)閃存存儲(chǔ)設(shè)備進(jìn)行數(shù)據(jù)寫(xiě)操作的過(guò)程中,對(duì)寫(xiě)入存儲(chǔ)單元的數(shù)據(jù)進(jìn)行多次的校驗(yàn),直至寫(xiě)入存儲(chǔ)單元的數(shù)據(jù)是正確的,從而防止閃存存儲(chǔ)設(shè)備因?yàn)殚W存電壓不穩(wěn)定或壽命和性能的影響在進(jìn)行數(shù)據(jù)寫(xiě)操作時(shí)容易產(chǎn)生錯(cuò)誤數(shù)據(jù)的問(wèn)題,保證了數(shù)據(jù)存取的準(zhǔn)確,并且提高了閃存存儲(chǔ)設(shè)備寫(xiě)數(shù)據(jù)的穩(wěn)定性和可靠性。【專利附圖】
【附圖說(shuō)明】
[0035]圖1為一個(gè)實(shí)施例中閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的方法的流程圖;
[0036]圖2為一個(gè)實(shí)施例中閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的系統(tǒng)的結(jié)構(gòu)框圖;
[0037]圖3為一個(gè)實(shí)施例中閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的系統(tǒng)的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0038]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0039]圖1為一個(gè)實(shí)施例中閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的方法的流程圖。如圖1所示,該閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的方法,包括以下步驟:
[0040]步驟102,接收對(duì)閃存存儲(chǔ)設(shè)備發(fā)出的數(shù)據(jù)寫(xiě)操作命令,所述數(shù)據(jù)寫(xiě)操作命令包括待寫(xiě)入數(shù)據(jù)和待寫(xiě)入數(shù)據(jù)的邏輯地址。
[0041]具體的,通過(guò)主機(jī)對(duì)閃存存儲(chǔ)設(shè)備發(fā)出數(shù)據(jù)寫(xiě)操作命令,閃存存儲(chǔ)設(shè)備接收到該數(shù)據(jù)寫(xiě)操作命令。主機(jī)可為臺(tái)式計(jì)算機(jī)或掌上電腦等。
[0042]步驟104,根據(jù)所述數(shù)據(jù)寫(xiě)操作命令將所述待寫(xiě)入數(shù)據(jù)存放在一個(gè)或多個(gè)數(shù)據(jù)緩存區(qū)域中。
[0043]具體的,閃存存儲(chǔ)設(shè)備包括主控單元和存儲(chǔ)單元,主控單元內(nèi)可設(shè)置一個(gè)或多個(gè)數(shù)據(jù)緩存區(qū)域(buffer),用于臨時(shí)存放待寫(xiě)入數(shù)據(jù)。
[0044]當(dāng)待寫(xiě)入數(shù)據(jù)的數(shù)據(jù)量足夠大,且只有一個(gè)數(shù)據(jù)緩存區(qū)域,該數(shù)據(jù)緩存區(qū)域不能一次性的暫時(shí)存放待寫(xiě)入數(shù)據(jù),則根據(jù)數(shù)據(jù)寫(xiě)操作命令以數(shù)據(jù)緩存區(qū)域的最大暫存數(shù)據(jù)量為單位分批次將待寫(xiě)入數(shù)據(jù)暫存入數(shù)據(jù)緩存區(qū)域中。
[0045]具體的,所述數(shù)據(jù)緩存區(qū)域的最大暫存數(shù)據(jù)量,根據(jù)所述主控單元對(duì)所述數(shù)據(jù)緩存區(qū)域的劃分,可以劃分為一個(gè)頁(yè)大小、兩個(gè)頁(yè)大小或者三個(gè)頁(yè)大小等等。
[0046]例如,假設(shè)待寫(xiě)入數(shù)據(jù)需要占用6.5個(gè)頁(yè)(page)大小的數(shù)據(jù)量,該數(shù)據(jù)緩存區(qū)域的最大暫存數(shù)據(jù)量為I個(gè)頁(yè)大小,則一個(gè)數(shù)據(jù)緩存區(qū)域可以將待寫(xiě)入數(shù)據(jù)分為7次的存儲(chǔ)并寫(xiě)入存儲(chǔ)單元,該7次的數(shù)據(jù)量大小為I頁(yè)、I頁(yè)、I頁(yè)、I頁(yè)、I頁(yè)、I頁(yè)、0.5頁(yè),此僅為舉例說(shuō)明,并不作為對(duì)本發(fā)明范圍的限制。其中,待寫(xiě)入數(shù)據(jù)以數(shù)據(jù)緩存區(qū)域的最大暫存數(shù)據(jù)量為單位劃分為多個(gè)分塊后,剩余不足最大暫存數(shù)據(jù)量大小的待寫(xiě)入數(shù)據(jù)(如剩余的0.5頁(yè))也作為一個(gè)分塊占用一次數(shù)據(jù)緩存區(qū)域,即剩余不足最大暫存數(shù)據(jù)量大小的待寫(xiě)入數(shù)據(jù)可以最大暫存數(shù)據(jù)量為單位進(jìn)行統(tǒng)計(jì)。
[0047]假設(shè)待寫(xiě)入數(shù)據(jù)需要占用7個(gè)頁(yè)大小的數(shù)據(jù)量,該數(shù)據(jù)緩存區(qū)域的最大暫存數(shù)據(jù)量為I個(gè)頁(yè)大小,則一個(gè)數(shù)據(jù)緩存區(qū)域可以將待寫(xiě)入數(shù)據(jù)分為7次的存儲(chǔ)并寫(xiě)入存儲(chǔ)單元,該7次的數(shù)據(jù)量大小為I頁(yè)、I頁(yè)、I頁(yè)、I頁(yè)、I頁(yè)、I頁(yè)、I頁(yè)。
[0048]當(dāng)待寫(xiě)入數(shù)據(jù)的數(shù)據(jù)量足夠大,且主控單元內(nèi)設(shè)置有多個(gè)數(shù)據(jù)緩存區(qū)域,則根據(jù)數(shù)據(jù)寫(xiě)操作命令,以多個(gè)數(shù)據(jù)緩存區(qū)域各自最大暫存數(shù)據(jù)量為單位輪流將待寫(xiě)入數(shù)據(jù)暫存入多個(gè)數(shù)據(jù)緩存區(qū)域中。
[0049]例如,假設(shè)待寫(xiě)入數(shù)據(jù)需要占用6.5個(gè)頁(yè)大小的數(shù)據(jù)量,主控單元內(nèi)包含2個(gè)數(shù)據(jù)緩存區(qū)域,分別為第一數(shù)據(jù)緩存區(qū)域和第二數(shù)據(jù)緩存區(qū)域,且第一數(shù)據(jù)緩存區(qū)域和第二數(shù)據(jù)緩存區(qū)域的最大暫存數(shù)據(jù)量為I個(gè)頁(yè)大小。首先,第一數(shù)據(jù)緩存區(qū)域先接收待寫(xiě)入數(shù)據(jù)的前I個(gè)頁(yè)數(shù)據(jù)并準(zhǔn)確的寫(xiě)入待寫(xiě)入數(shù)據(jù)的邏輯地址指向的存儲(chǔ)單元,接著第二數(shù)據(jù)緩存區(qū)域接收待寫(xiě)入數(shù)據(jù)接下來(lái)的I個(gè)頁(yè)數(shù)據(jù)寫(xiě)入邏輯地址后續(xù)指向的存儲(chǔ)單元中,如此反復(fù)三次后,最后一次為第一數(shù)據(jù)緩存區(qū)域接收待寫(xiě)入數(shù)據(jù)最后的0.5個(gè)頁(yè)數(shù)據(jù),寫(xiě)入邏輯單元接下來(lái)后續(xù)地址指向的存儲(chǔ)單元中,從而完成對(duì)待寫(xiě)入數(shù)據(jù)的寫(xiě)操作。此處列舉了采用2個(gè)數(shù)據(jù)緩存區(qū)域的情況,在其他實(shí)施例中,還可采用3個(gè)、4個(gè)或5個(gè)等數(shù)據(jù)緩存區(qū)域,在此并不限定,且多個(gè)數(shù)據(jù)緩存區(qū)域的大小可相同,也可不同。采用多個(gè)數(shù)據(jù)緩存區(qū)域輪流寫(xiě)數(shù)據(jù)可均衡每個(gè)數(shù)據(jù)緩存區(qū)寫(xiě)入次數(shù),延長(zhǎng)數(shù)據(jù)緩存區(qū)域的使用壽命。其中,待寫(xiě)入數(shù)據(jù)以第一數(shù)據(jù)緩存區(qū)域和第二數(shù)據(jù)緩存區(qū)域的最大暫存數(shù)據(jù)量為單位劃分為多個(gè)分塊后,剩余不足最大暫存數(shù)據(jù)量大小的待寫(xiě)入數(shù)據(jù)(如剩余的0.5個(gè)頁(yè))也作為一個(gè)分塊占用一次數(shù)據(jù)緩存區(qū)域,即剩余不足最大暫存數(shù)據(jù)量大小的待寫(xiě)入數(shù)據(jù)可以最大暫存數(shù)據(jù)量為單位進(jìn)行統(tǒng)計(jì)。
[0050]步驟106,將所述緩存區(qū)域中的數(shù)據(jù)寫(xiě)入所述邏輯地址指向的閃存存儲(chǔ)設(shè)備的存儲(chǔ)單元中。
[0051]步驟108,對(duì)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)進(jìn)行ECC校驗(yàn)。
[0052]具體的,每一次對(duì)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)以頁(yè)為單位讀取并進(jìn)行ECC(Error Correcting Code,錯(cuò)誤檢查和糾正碼)校驗(yàn)。
[0053]步驟110,當(dāng)所述校驗(yàn)的錯(cuò)誤字節(jié)數(shù)超過(guò)ECC閾值時(shí),重寫(xiě)所述數(shù)據(jù)緩存區(qū)域的數(shù)據(jù),并對(duì)重寫(xiě)的數(shù)據(jù)進(jìn)行ECC校驗(yàn)直至所述校驗(yàn)的錯(cuò)誤字節(jié)數(shù)不超過(guò)ECC閾值。
[0054]具體的,錯(cuò)誤字節(jié)數(shù)是從主控單元內(nèi)部的寄存計(jì)數(shù)器獲取的,對(duì)數(shù)據(jù)進(jìn)行ECC解碼時(shí),寄存計(jì)數(shù)器會(huì)對(duì)錯(cuò)誤字節(jié)數(shù)進(jìn)行數(shù)值統(tǒng)計(jì)。ECC閾值表示ECC碼能檢測(cè)并糾正的最大字節(jié)數(shù)。對(duì)重寫(xiě)的數(shù)據(jù)進(jìn)行ECC校驗(yàn),若再次校驗(yàn)的錯(cuò)誤字節(jié)數(shù)超過(guò)ECC閾值,需再次重寫(xiě)數(shù)據(jù)緩存區(qū)域的數(shù)據(jù),再次進(jìn)行ECC校驗(yàn),直到校驗(yàn)的錯(cuò)誤字節(jié)數(shù)不超過(guò)ECC閾值為止。
[0055]重寫(xiě)數(shù)據(jù)緩存區(qū)域的數(shù)據(jù)是指將數(shù)據(jù)緩存區(qū)域的數(shù)據(jù)重新寫(xiě)入邏輯地址指向的后續(xù)頁(yè)中。邏輯地址指向的后續(xù)頁(yè),假如初始的邏輯地址為100,其指向的物理地址為300,寫(xiě)入I個(gè)頁(yè)后,邏輯地址重新指向的物理地址為301,數(shù)據(jù)出現(xiàn)錯(cuò)誤,則從邏輯地址重新指向的物理地址301起重寫(xiě),該301即為邏輯地址指向的后續(xù)頁(yè)。
[0056]當(dāng)通過(guò)數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)中每個(gè)頁(yè)的錯(cuò)誤字節(jié)超過(guò)ECC閾值時(shí),則將數(shù)據(jù)緩存區(qū)域中的數(shù)據(jù)寫(xiě)入到邏輯地址指向的后續(xù)的頁(yè)中。
[0057]當(dāng)通過(guò)數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)中部分頁(yè)的錯(cuò)誤字節(jié)超過(guò)ECC閾值時(shí),則將數(shù)據(jù)緩存區(qū)域中的部分頁(yè)的數(shù)據(jù)重寫(xiě)入到邏輯地址指向的后續(xù)的頁(yè)中。例如,假設(shè)待寫(xiě)入數(shù)據(jù)需要占用4個(gè)頁(yè)大小的數(shù)據(jù)量,數(shù)據(jù)緩存區(qū)域的最大暫存數(shù)據(jù)量為2個(gè)頁(yè)大小,將數(shù)據(jù)緩存區(qū)域中的數(shù)據(jù)寫(xiě)入邏輯地址指向的存儲(chǔ)單元的2個(gè)頁(yè)中,接著以頁(yè)為單位讀取存儲(chǔ)單元中的2個(gè)頁(yè)數(shù)據(jù)并進(jìn)行ECC校驗(yàn),其校驗(yàn)結(jié)果為:
[0058](I)當(dāng)該2個(gè)頁(yè)中每一個(gè)頁(yè)的錯(cuò)誤字節(jié)數(shù)超過(guò)了 ECC閾值時(shí),則將數(shù)據(jù)緩存區(qū)域中的數(shù)據(jù)寫(xiě)入到邏輯地址指向的后續(xù)的2個(gè)頁(yè)中,并對(duì)重寫(xiě)的數(shù)據(jù)進(jìn)行校驗(yàn),直到校驗(yàn)的錯(cuò)誤字節(jié)數(shù)不超過(guò)ECC閾值。
[0059](2)當(dāng)該2個(gè)頁(yè)中只有部分頁(yè)的數(shù)據(jù)字節(jié)超過(guò)了 ECC閾值時(shí),假設(shè)部分頁(yè)為I個(gè)頁(yè),則重寫(xiě)部分頁(yè)的數(shù)據(jù)到邏輯地址指向的后續(xù)I個(gè)頁(yè)中,并將重寫(xiě)的部分頁(yè)的數(shù)據(jù)進(jìn)行ECC校驗(yàn)。
[0060]此外,當(dāng)校驗(yàn)的錯(cuò)誤字節(jié)數(shù)未超過(guò)ECC閾值時(shí),擦除數(shù)據(jù)緩存區(qū)域的數(shù)據(jù)。當(dāng)數(shù)據(jù)緩存區(qū)域的數(shù)據(jù)完成準(zhǔn)確的寫(xiě)入存儲(chǔ)單元后,擦除這些數(shù)據(jù)可使數(shù)據(jù)緩存區(qū)域?yàn)橄乱淮谓邮諘捍鏀?shù)據(jù)做好準(zhǔn)備。
[0061]上述閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的方法,通過(guò)在對(duì)閃存存儲(chǔ)設(shè)備進(jìn)行數(shù)據(jù)寫(xiě)操作的過(guò)程中,對(duì)寫(xiě)入存儲(chǔ)單元的數(shù)據(jù)進(jìn)行多次的校驗(yàn),直至寫(xiě)入存儲(chǔ)單元的數(shù)據(jù)是正確的,從而防止閃存存儲(chǔ)設(shè)備因?yàn)殚W存電壓不穩(wěn)定或壽命和性能的影響在進(jìn)行數(shù)據(jù)寫(xiě)操作時(shí)容易產(chǎn)生錯(cuò)誤數(shù)據(jù)的問(wèn)題,保證了數(shù)據(jù)存取的準(zhǔn)確,并且提高了閃存存儲(chǔ)設(shè)備寫(xiě)數(shù)據(jù)的穩(wěn)定性和可靠性。
[0062]圖2為一個(gè)實(shí)施例中閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的系統(tǒng)的結(jié)構(gòu)框圖。如圖2所示,該閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的系統(tǒng)為與上述閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的方法對(duì)應(yīng)的功能模塊結(jié)構(gòu),描述中不詳細(xì)請(qǐng)參照上述方法中描述。該閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的系統(tǒng),包括接收模塊210、緩存模塊220、寫(xiě)入模塊230和校驗(yàn)?zāi)K240。其中:
[0063]接收模塊210用于接收對(duì)閃存存儲(chǔ)設(shè)備發(fā)出的數(shù)據(jù)寫(xiě)操作命令,所述數(shù)據(jù)寫(xiě)操作命令包括待寫(xiě)入數(shù)據(jù)和待寫(xiě)入數(shù)據(jù)的邏輯地址。
[0064]緩存模塊220用于根據(jù)所述數(shù)據(jù)寫(xiě)操作命令將所述待寫(xiě)入數(shù)據(jù)存放在一個(gè)或多個(gè)數(shù)據(jù)緩存區(qū)域中。
[0065]當(dāng)待寫(xiě)入數(shù)據(jù)的數(shù)據(jù)量足夠大,且只有一個(gè)數(shù)據(jù)緩存區(qū)域,該數(shù)據(jù)緩存區(qū)域不能一次性的暫時(shí)存放所述待寫(xiě)入數(shù)據(jù),則緩存模塊220用于根據(jù)所述數(shù)據(jù)寫(xiě)操作命令以所述數(shù)據(jù)緩存區(qū)域的最大暫存數(shù)據(jù)量為單位分批次將所述待寫(xiě)入數(shù)據(jù)暫存入所述數(shù)據(jù)緩存區(qū)域中。具體的,所述數(shù)據(jù)緩存區(qū)域的最大暫存數(shù)據(jù)量,根據(jù)所述主控單元對(duì)所述數(shù)據(jù)緩存區(qū)域的劃分,可以劃分為一個(gè)頁(yè)大小、兩個(gè)頁(yè)大小或者三個(gè)頁(yè)大小等等。
[0066]例如,假設(shè)待寫(xiě)入數(shù)據(jù)需要占用6.5個(gè)頁(yè)(page)大小的數(shù)據(jù)量,該數(shù)據(jù)緩存區(qū)域的最大暫存數(shù)據(jù)量為I個(gè)頁(yè)大小,則一個(gè)數(shù)據(jù)緩存區(qū)域可以將待寫(xiě)入數(shù)據(jù)分為7次的存儲(chǔ)并寫(xiě)入存儲(chǔ)單元,該7次的數(shù)據(jù)量大小為I頁(yè)、I頁(yè)、I頁(yè)、I頁(yè)、I頁(yè)、I頁(yè)、0.5頁(yè),此僅為舉例說(shuō)明,并不作為對(duì)本發(fā)明范圍的限制。其中,待寫(xiě)入數(shù)據(jù)以數(shù)據(jù)緩存區(qū)域的最大暫存數(shù)據(jù)量為單位劃分為多個(gè)分塊后,剩余不足最大暫存數(shù)據(jù)量大小的待寫(xiě)入數(shù)據(jù)(如剩余的0.5頁(yè))也作為一個(gè)分塊占用一次數(shù)據(jù)緩存區(qū)域,即剩余不足最大暫存數(shù)據(jù)量大小的待寫(xiě)入數(shù)據(jù)可以最大暫存數(shù)據(jù)量為單位進(jìn)行統(tǒng)計(jì)。
[0067]假設(shè)待寫(xiě)入數(shù)據(jù)需要占用7個(gè)頁(yè)大小的數(shù)據(jù)量,該數(shù)據(jù)緩存區(qū)域的最大暫存數(shù)據(jù)量為I個(gè)頁(yè)大小,則一個(gè)數(shù)據(jù)緩存區(qū)域可以將待寫(xiě)入數(shù)據(jù)分為7次的存儲(chǔ)并寫(xiě)入存儲(chǔ)單元,該7次的數(shù)據(jù)量大小為I頁(yè)、I頁(yè)、I頁(yè)、I頁(yè)、I頁(yè)、I頁(yè)、I頁(yè)。
[0068]當(dāng)待寫(xiě)入數(shù)據(jù)的數(shù)據(jù)量足夠大,且主控單元內(nèi)設(shè)置有多個(gè)數(shù)據(jù)緩存區(qū)域,則緩存模塊220用于根據(jù)數(shù)據(jù)寫(xiě)操作命令,以多個(gè)數(shù)據(jù)緩存區(qū)域各自最大暫存數(shù)據(jù)量為單位輪流將待寫(xiě)入數(shù)據(jù)暫存入多個(gè)數(shù)據(jù)緩存區(qū)域中。
[0069]例如,假設(shè)待寫(xiě)入數(shù)據(jù)需要占用6.5個(gè)頁(yè)大小的數(shù)據(jù)量,主控單元內(nèi)包含2個(gè)數(shù)據(jù)緩存區(qū)域,分別為第一數(shù)據(jù)緩存區(qū)域和第二數(shù)據(jù)緩存區(qū)域,且第一數(shù)據(jù)緩存區(qū)域和第二數(shù)據(jù)緩存區(qū)域的最大暫存數(shù)據(jù)量為I個(gè)頁(yè)大小。首先,第一數(shù)據(jù)緩存區(qū)域先接收待寫(xiě)入數(shù)據(jù)的前I個(gè)頁(yè)數(shù)據(jù)并準(zhǔn)確的寫(xiě)入待寫(xiě)入數(shù)據(jù)的邏輯地址指向的存儲(chǔ)單元,接著第二數(shù)據(jù)緩存區(qū)域接收待寫(xiě)入數(shù)據(jù)接下來(lái)的I個(gè)頁(yè)數(shù)據(jù)寫(xiě)入邏輯地址后續(xù)指向的存儲(chǔ)單元中,如此反復(fù)三次后,最后一次為第一數(shù)據(jù)緩存區(qū)域接收待寫(xiě)入數(shù)據(jù)最后的0.5個(gè)頁(yè)數(shù)據(jù),寫(xiě)入邏輯單元接下來(lái)后續(xù)地址指向的存儲(chǔ)單元中,從而完成對(duì)待寫(xiě)入數(shù)據(jù)的寫(xiě)操作。此處列舉了采用2個(gè)數(shù)據(jù)緩存區(qū)域的情況,在其他實(shí)施例中,還可采用3個(gè)、4個(gè)或5個(gè)等數(shù)據(jù)緩存區(qū)域,在此并不限定,且多個(gè)數(shù)據(jù)緩存區(qū)域的大小可相同,也可不同。采用多個(gè)數(shù)據(jù)緩存區(qū)域輪流寫(xiě)數(shù)據(jù)可均衡每個(gè)數(shù)據(jù)緩存區(qū)寫(xiě)入次數(shù),延長(zhǎng)數(shù)據(jù)緩存區(qū)域的使用壽命。其中,待寫(xiě)入數(shù)據(jù)以第一數(shù)據(jù)緩存區(qū)域和第二數(shù)據(jù)緩存區(qū)域的最大暫存數(shù)據(jù)量為單位劃分為多個(gè)分塊后,剩余不足最大暫存數(shù)據(jù)量大小的待寫(xiě)入數(shù)據(jù)(如剩余的0.5頁(yè))也作為一個(gè)分塊占用一次數(shù)據(jù)緩存區(qū)域,即剩余不足最大暫存數(shù)據(jù)量大小的待寫(xiě)入數(shù)據(jù)可以最大暫存數(shù)據(jù)量為單位進(jìn)行統(tǒng)計(jì)。
[0070]寫(xiě)入模塊230用于將所述緩存區(qū)域中的數(shù)據(jù)寫(xiě)入所述邏輯地址所指向的閃存存儲(chǔ)設(shè)備的存儲(chǔ)單元中。
[0071]校驗(yàn)?zāi)K240用于對(duì)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)進(jìn)行ECC校驗(yàn)。
[0072]具體的,校驗(yàn)?zāi)K240每一次對(duì)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)以頁(yè)為單位讀取并進(jìn)行ECC校驗(yàn)。
[0073]寫(xiě)入模塊230還用于當(dāng)所述校驗(yàn)的錯(cuò)誤字節(jié)數(shù)超過(guò)ECC閾值時(shí),重寫(xiě)所述數(shù)據(jù)緩存區(qū)域的數(shù)據(jù)。
[0074]校驗(yàn)?zāi)K240還用于對(duì)重寫(xiě)的數(shù)據(jù)進(jìn)行ECC校驗(yàn)直至所述校驗(yàn)的錯(cuò)誤字節(jié)數(shù)不超過(guò)ECC閾值。
[0075]在一個(gè)實(shí)施例中,寫(xiě)入模塊230還用于當(dāng)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)中每個(gè)頁(yè)的錯(cuò)誤字節(jié)超過(guò)ECC閾值時(shí),則將所述數(shù)據(jù)緩存區(qū)域中的數(shù)據(jù)寫(xiě)入到所述邏輯地址指向的后續(xù)的頁(yè)中。
[0076]在一個(gè)實(shí)施例中,寫(xiě)入模塊230還用于當(dāng)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)中部分頁(yè)的錯(cuò)誤字節(jié)超過(guò)ECC閾值時(shí),則將所述數(shù)據(jù)緩存區(qū)域中的部分頁(yè)的數(shù)據(jù)重寫(xiě)入到所述邏輯地址指向的后續(xù)的頁(yè)中。
[0077]上述閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的系統(tǒng),通過(guò)在對(duì)閃存存儲(chǔ)設(shè)備進(jìn)行數(shù)據(jù)寫(xiě)操作的過(guò)程中,對(duì)寫(xiě)入存儲(chǔ)單元的數(shù)據(jù)進(jìn)行多次的校驗(yàn),直至寫(xiě)入存儲(chǔ)單元的數(shù)據(jù)是正確的,從而防止閃存存儲(chǔ)設(shè)備因?yàn)殚W存電壓不穩(wěn)定或壽命和性能的影響在進(jìn)行數(shù)據(jù)寫(xiě)操作時(shí)容易產(chǎn)生錯(cuò)誤數(shù)據(jù)的問(wèn)題,保證了數(shù)據(jù)存取的準(zhǔn)確,并且提高了閃存存儲(chǔ)設(shè)備寫(xiě)數(shù)據(jù)的穩(wěn)定性和可靠性。
[0078]圖3為另一個(gè)實(shí)施例中閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的系統(tǒng)的結(jié)構(gòu)框圖。如圖3所示,該閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的系統(tǒng),除了包括接收模塊210、緩存模塊220、寫(xiě)入模塊230和校驗(yàn)?zāi)K240,還包括擦除模塊250。
[0079]當(dāng)校驗(yàn)的錯(cuò)誤字節(jié)數(shù)未超過(guò)ECC閾值時(shí),擦除模塊250用于擦除所述數(shù)據(jù)緩存區(qū)域的數(shù)據(jù)。當(dāng)所述數(shù)據(jù)緩存區(qū)域的數(shù)據(jù)完成準(zhǔn)確的寫(xiě)入所述存儲(chǔ)單元后,擦除這些數(shù)據(jù)可使所述數(shù)據(jù)緩存區(qū)域?yàn)橄乱淮谓邮諘捍鏀?shù)據(jù)做好準(zhǔn)備。
[0080]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤(pán)、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random AccessMemory, RAM)等。
[0081]以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【權(quán)利要求】
1.一種閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的方法,包括以下步驟: 接收對(duì)閃存存儲(chǔ)設(shè)備發(fā)出的數(shù)據(jù)寫(xiě)操作命令,所述數(shù)據(jù)寫(xiě)操作命令包括待寫(xiě)入數(shù)據(jù)和待寫(xiě)入數(shù)據(jù)的邏輯地址; 根據(jù)所述數(shù)據(jù)寫(xiě)操作命令將所述待寫(xiě)入數(shù)據(jù)存放在一個(gè)或多個(gè)數(shù)據(jù)緩存區(qū)域中; 將所述緩存區(qū)域中的數(shù)據(jù)寫(xiě)入所述邏輯地址指向的閃存存儲(chǔ)設(shè)備的存儲(chǔ)單元中; 對(duì)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)進(jìn)行ECC校驗(yàn); 當(dāng)所述校驗(yàn)的錯(cuò)誤字節(jié)數(shù)超過(guò)ECC閾值時(shí),重寫(xiě)所述數(shù)據(jù)緩存區(qū)域的數(shù)據(jù),并對(duì)重寫(xiě)的數(shù)據(jù)進(jìn)行ECC校驗(yàn)直至所述校驗(yàn)的錯(cuò)誤字節(jié)數(shù)不超過(guò)ECC閾值。
2.根據(jù)權(quán)利要求1所述的閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的方法,其特征在于,所述根據(jù)所述數(shù)據(jù)寫(xiě)操作命令將所述待寫(xiě)入數(shù)據(jù)存放在一個(gè)數(shù)據(jù)緩存區(qū)域中的步驟包括: 根據(jù)所述數(shù)據(jù)寫(xiě)操作命令以所述數(shù)據(jù)緩存區(qū)域的最大暫存數(shù)據(jù)量為單位分批次將所述待寫(xiě)入數(shù)據(jù)暫存入所述數(shù)據(jù)緩存區(qū)域中。
3.根據(jù)權(quán)利要求1所述的閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的方法,其特征在于,所述根據(jù)所述數(shù)據(jù)寫(xiě)操作命令將所述待寫(xiě)入數(shù)據(jù)存放在多個(gè)數(shù)據(jù)緩存區(qū)域中的步驟包括: 根據(jù)所述數(shù)據(jù)寫(xiě)操作命令,以所述多個(gè)數(shù)據(jù)緩存區(qū)域各自最大暫存數(shù)據(jù)量為單位輪流將所述待寫(xiě)入數(shù)據(jù)暫存入所述多個(gè)數(shù)據(jù)緩存區(qū)域中。
4.根據(jù)權(quán)利要求2或3所述的閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的方法,其特征在于,對(duì)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)進(jìn)行ECC校驗(yàn)的步驟包括: 對(duì)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)以頁(yè)為單位讀取并進(jìn)行ECC校驗(yàn); 當(dāng)所述校驗(yàn)的錯(cuò)誤字節(jié)數(shù)超過(guò)ECC閾值時(shí),重寫(xiě)所述數(shù)據(jù)緩存區(qū)域的數(shù)據(jù)的步驟包括: 當(dāng)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)中每個(gè)頁(yè)的錯(cuò)誤字節(jié)超過(guò)ECC閾值時(shí),則將所述數(shù)據(jù)緩存區(qū)域中的數(shù)據(jù)寫(xiě)入到所述邏輯地址指向的后續(xù)的頁(yè)中。
5.根據(jù)權(quán)利要求2或3所述的閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的方法,其特征在于,對(duì)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)進(jìn)行ECC校驗(yàn)的步驟包括: 對(duì)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)以頁(yè)為單位讀取并進(jìn)行ECC校驗(yàn); 當(dāng)所述校驗(yàn)的錯(cuò)誤字節(jié)數(shù)超過(guò)ECC閾值時(shí),重寫(xiě)所述數(shù)據(jù)緩存區(qū)域的數(shù)據(jù)的步驟包括: 當(dāng)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)中部分頁(yè)的錯(cuò)誤字節(jié)超過(guò)ECC閾值時(shí),則將所述數(shù)據(jù)緩存區(qū)域中的部分頁(yè)的數(shù)據(jù)重寫(xiě)入到所述邏輯地址指向的后續(xù)的頁(yè)中。
6.一種閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的系統(tǒng),其特征在于,包括: 接收模塊,用于接收對(duì)閃存存儲(chǔ)設(shè)備發(fā)出的數(shù)據(jù)寫(xiě)操作命令,所述數(shù)據(jù)寫(xiě)操作命令包括待寫(xiě)入數(shù)據(jù)和待寫(xiě)入數(shù)據(jù)的邏輯地址; 緩存模塊,用于根據(jù)所述數(shù)據(jù)寫(xiě)操作命令將所述待寫(xiě)入數(shù)據(jù)存放在一個(gè)或多個(gè)數(shù)據(jù)緩存區(qū)域中; 寫(xiě)入模塊,用于將所述緩存區(qū)域中的數(shù)據(jù)寫(xiě)入所述邏輯地址所指向的閃存存儲(chǔ)設(shè)備的存儲(chǔ)單元中; 校驗(yàn)?zāi)K,用于對(duì)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)進(jìn)行ECC校驗(yàn); 所述寫(xiě)入模塊還用于當(dāng)所述校驗(yàn)的錯(cuò)誤字節(jié)數(shù)超過(guò)ECC閾值時(shí),重寫(xiě)所述數(shù)據(jù)緩存區(qū)域的數(shù)據(jù); 所述校驗(yàn)?zāi)K還用于對(duì)重寫(xiě)的數(shù)據(jù)進(jìn)行ECC校驗(yàn)直至所述校驗(yàn)的錯(cuò)誤字節(jié)數(shù)不超過(guò)所述ECC閾值。
7.根據(jù)權(quán)利要求6所述的閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的系統(tǒng),其特征在于,所述緩存模塊還用于根據(jù)所述數(shù)據(jù)寫(xiě)操作命令以所述數(shù)據(jù)緩存區(qū)域的最大暫存數(shù)據(jù)量為單位分批次將所述待寫(xiě)入數(shù)據(jù)暫存入所述數(shù)據(jù)緩存區(qū)域中。
8.根據(jù)權(quán)利要求6所述的閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的系統(tǒng),其特征在于,所述緩存模塊還用于根據(jù)所述數(shù)據(jù)寫(xiě)操作命令,以所述多個(gè)數(shù)據(jù)緩存區(qū)域各自最大暫存數(shù)據(jù)量為單位輪流將所述待寫(xiě)入數(shù)據(jù)暫存入所述多個(gè)數(shù)據(jù)緩存區(qū)域中。
9.根據(jù)權(quán)利要求7或8所述的閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的系統(tǒng),其特征在于,所述校驗(yàn)?zāi)K還用于對(duì)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)以頁(yè)為單位讀取并進(jìn)行ECC校驗(yàn);所述寫(xiě)入模塊還用于當(dāng)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)中每個(gè)頁(yè)的錯(cuò)誤字節(jié)超過(guò)ECC閾值時(shí),則將所述數(shù)據(jù)緩存區(qū)域中的數(shù)據(jù)寫(xiě)入到所述邏輯地址指向的后續(xù)的頁(yè)中。
10.根據(jù)權(quán)利要求7或8所述的閃存存儲(chǔ)設(shè)備數(shù)據(jù)寫(xiě)的系統(tǒng),其特征在于,所述校驗(yàn)?zāi)K還用于對(duì)通過(guò)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)以頁(yè)為單位讀取并進(jìn)行ECC校驗(yàn);所述寫(xiě)入模塊還用于當(dāng)所述數(shù)據(jù)緩存區(qū)域所寫(xiě)入的數(shù)據(jù)中部分頁(yè)的錯(cuò)誤字節(jié)超過(guò)ECC閾值時(shí),則將所述數(shù)據(jù)緩存區(qū)域中的 部分頁(yè)的數(shù)據(jù)重寫(xiě)入到所述邏輯地址指向的后續(xù)的頁(yè)中。
【文檔編號(hào)】G06F3/06GK103984506SQ201410182873
【公開(kāi)日】2014年8月13日 申請(qǐng)日期:2014年4月30日 優(yōu)先權(quán)日:2014年4月30日
【發(fā)明者】梁小慶, 李志雄 申請(qǐng)人:深圳市江波龍電子有限公司