本發(fā)明屬于固態(tài)盤存儲技術(shù)領(lǐng)域,更具體地,涉及一種獲取閃存對偶頁錯誤相關(guān)性的方法和系統(tǒng)。
背景技術(shù):
閃存具有高性能、大容量、低能耗、快速的讀寫速度等優(yōu)勢而被廣泛應(yīng)用于計算機存儲系統(tǒng)中,隨著閃存存儲密度的增加,原始誤碼率逐漸提升,數(shù)據(jù)可靠性下降,致使傳統(tǒng)的糾錯碼算法不足以保證數(shù)據(jù)可靠性,為了設(shè)計針對性的算法,需要對閃存的錯誤模式進行研究。
閃存對偶頁存在于閃存塊中,其結(jié)構(gòu)如圖1所示,當(dāng)將比特數(shù)據(jù)寫入閃存中時,每個單元的兩個比特被寫到兩個不同的頁中,其中這兩個比特被稱為對偶比特,這兩個比特所屬的頁被稱為對偶頁,其中每個頁是一個單獨的糾錯碼單位,每個頁中的錯誤數(shù)據(jù)通過糾錯碼算法獨立進行糾正。
然而,現(xiàn)有的對閃存塊中的頁錯誤特性進行研究存在以下幾個明顯的不足之處:首先,現(xiàn)有的對閃存頁的錯誤特性進行研究沒有探索對偶頁之間的比特錯誤相關(guān)性特征,沒有考慮到閃存塊中的頁發(fā)生比特錯誤時對其對偶頁中的比特的影響;其次,現(xiàn)有的研究方法沒有充分發(fā)掘閃存頁的內(nèi)部錯誤特征;這兩個問題的出現(xiàn),會導(dǎo)致后續(xù)設(shè)計糾錯碼時需要額外的存儲空間,從而增加了開銷。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)的以上缺陷或改進需求,本發(fā)明提供了一種獲取閃存對偶頁錯誤相關(guān)性的方法和系統(tǒng),其目的在于,通過考慮到閃存塊中的頁發(fā)生比特錯誤時對其對偶頁中比特的影響,并通過充分發(fā)掘閃存頁的內(nèi)部錯誤特征,解決現(xiàn)有研究方法中存在的后續(xù)設(shè)計糾錯碼時需要額外的存儲空間,從而增加了開銷的技術(shù)問題。
為實現(xiàn)上述目的,按照本發(fā)明的一個方面,提供了一種獲取閃存對偶頁錯誤相關(guān)性的方法,包括以下步驟:
(1)接收來自上層服務(wù)器的順序?qū)懭霐?shù)據(jù)請求,根據(jù)該順序?qū)懭霐?shù)據(jù)請求為SSD控制器生成的隨機數(shù)據(jù)分配對應(yīng)的緩存,所有的緩存組成數(shù)據(jù)池;
(2)接收來自用戶端的順序?qū)懭胝埱?,并根?jù)該順序?qū)懭胝埱鬄椴襟E(1)中分配的每個緩存中的所有數(shù)據(jù)分配頁面地址,并根據(jù)分配的頁面地址將數(shù)據(jù)池中的所有數(shù)據(jù)寫入到閃存的頁面中;
(3)判斷SSD的閃存中的所有頁是否全部被寫入,如果是,則轉(zhuǎn)入步驟(4),否則轉(zhuǎn)入步驟(7);
(4)根據(jù)步驟(2)中分配的第一個頁面地址將存儲在閃存頁面中的對應(yīng)數(shù)據(jù)讀出,并將讀出的數(shù)據(jù)與步驟(1)中分配的第一個緩存中的數(shù)據(jù)進行比較,以統(tǒng)計閃存頁面中該數(shù)據(jù)的錯誤數(shù)量和錯誤位置;
(5)針對步驟(2)中分配的剩余頁面地址,重復(fù)執(zhí)行上述步驟(4),直至閃存頁面中所有數(shù)據(jù)都被統(tǒng)計完畢為止,并將統(tǒng)計出的閃存頁面中所有錯誤數(shù)據(jù)的數(shù)量、錯誤位置和錯誤數(shù)據(jù)在閃存頁面中的地址作為一個信息條目存儲在預(yù)設(shè)的錯誤信息列表中;
(6)根據(jù)錯誤信息列表中錯誤數(shù)據(jù)在閃存頁面中的地址確定對偶頁,并統(tǒng)計所有對偶頁中的對偶比特錯誤數(shù)量和位置,并將統(tǒng)計出的對偶比特錯誤數(shù)量和位置存儲在錯誤信息列表中;
(7)繼續(xù)根據(jù)分配的頁面地址將數(shù)據(jù)池中的剩余數(shù)據(jù)寫入到閃存的頁面中,直到閃存頁面被完全寫滿為止,然后返回步驟(4)。
優(yōu)選地,順序?qū)懭霐?shù)據(jù)請求中要求按頁寫入數(shù)據(jù),該緩存的大小等于SSD的閃存的頁面大小。
優(yōu)選地,每個數(shù)據(jù)被分配的頁面地址為:SSD通道號+SSD芯片號+SSD芯片中的分組號+SSD芯片中分組號的塊號+SSD芯片中分組號的塊中的頁號;
優(yōu)選地,該錯誤信息列表可以設(shè)置在SSD中,也可以設(shè)置在服務(wù)器或用戶端。
優(yōu)選地,還包括在所述步驟(6)之后,所述步驟(7)之前,將錯誤信息列表中錯誤數(shù)據(jù)的數(shù)量、錯誤位置和錯誤數(shù)據(jù)在閃存頁面中的地址、以及對偶比特錯誤數(shù)量和位置寫入日志文件中。
按照本發(fā)明的另一方面,提供了一種獲取閃存對偶頁錯誤相關(guān)性的系統(tǒng),包括:
第一模塊,用于接收來自上層服務(wù)器的順序?qū)懭霐?shù)據(jù)請求,根據(jù)該順序?qū)懭霐?shù)據(jù)請求為SSD控制器生成的隨機數(shù)據(jù)分配對應(yīng)的緩存,所有的緩存組成數(shù)據(jù)池;
第二模塊,用于接收來自用戶端的順序?qū)懭胝埱?,并根?jù)該順序?qū)懭胝埱鬄榈谝荒K中分配的每個緩存中的所有數(shù)據(jù)分配頁面地址,并根據(jù)分配的頁面地址將數(shù)據(jù)池中的所有數(shù)據(jù)寫入到閃存的頁面中;
第三模塊,用于判斷SSD的閃存中的所有頁是否全部被寫入,如果是,則轉(zhuǎn)入第四模塊,否則轉(zhuǎn)入第七模塊;
第四模塊,用于根據(jù)第二模塊中分配的第一個頁面地址將存儲在閃存頁面中的對應(yīng)數(shù)據(jù)讀出,并將讀出的數(shù)據(jù)與第一模塊中分配的第一個緩存中的數(shù)據(jù)進行比較,以統(tǒng)計閃存頁面中該數(shù)據(jù)的錯誤數(shù)量和錯誤位置;
第五模塊,用于針對第二模塊中分配的剩余頁面地址,重復(fù)執(zhí)行上述第四模塊,直至閃存頁面中所有數(shù)據(jù)都被統(tǒng)計完畢為止,并將統(tǒng)計出的閃存頁面中所有錯誤數(shù)據(jù)的數(shù)量、錯誤位置和錯誤數(shù)據(jù)在閃存頁面中的地址作為一個信息條目存儲在預(yù)設(shè)的錯誤信息列表中;
第六模塊,用于根據(jù)錯誤信息列表中錯誤數(shù)據(jù)在閃存頁面中的地址確定對偶頁,并統(tǒng)計所有對偶頁中的對偶比特錯誤數(shù)量和位置,并將統(tǒng)計出的對偶比特錯誤數(shù)量和位置存儲在錯誤信息列表中;
第七模塊,用于繼續(xù)根據(jù)分配的頁面地址將數(shù)據(jù)池中的剩余數(shù)據(jù)寫入到閃存的頁面中,直到閃存頁面被完全寫滿為止,然后返回第四模塊。
優(yōu)選地,順序?qū)懭霐?shù)據(jù)請求中要求按頁寫入數(shù)據(jù),該緩存的大小等于SSD的閃存的頁面大小。
優(yōu)選地,每個數(shù)據(jù)被分配的頁面地址為:SSD通道號+SSD芯片號+SSD芯片中的分組號+SSD芯片中分組號的塊號+SSD芯片中分組號的塊中的頁號;
優(yōu)選地,該錯誤信息列表可以設(shè)置在SSD中,也可以設(shè)置在服務(wù)器或用戶端。
優(yōu)選地,還包括第八模塊,用于將錯誤信息列表中錯誤數(shù)據(jù)的數(shù)量、錯誤位置和錯誤數(shù)據(jù)在閃存頁面中的地址、以及對偶比特錯誤數(shù)量和位置寫入日志文件中。
總體而言,通過本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,能夠取得下列有益效果:
(1)本發(fā)明由于采用了步驟(2)到步驟(6),其考慮到閃存塊中的頁發(fā)生比特錯誤時對其對偶頁中比特的影響,并通過充分發(fā)掘閃存頁的內(nèi)部錯誤特征,從而解決了現(xiàn)有研究方法中存在的后續(xù)設(shè)計糾錯碼時需要額外的存儲空間,從而增加了開銷的技術(shù)問題;
(2)本發(fā)明能夠為設(shè)計有效的糾錯碼算法提供依據(jù)和參考。
附圖說明
圖1是現(xiàn)有閃存塊的內(nèi)部結(jié)構(gòu)示意圖。
圖2是本發(fā)明獲取閃存對偶頁錯誤相關(guān)性的方法的流程圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個實施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。
如圖2所示,本發(fā)明獲取閃存對偶頁錯誤相關(guān)性的方法包括以下步驟:
(1)接收來自上層服務(wù)器的順序?qū)懭霐?shù)據(jù)請求,根據(jù)該順序?qū)懭霐?shù)據(jù)請求為固態(tài)盤(Solid state disk,簡稱SSD)控制器生成的隨機數(shù)據(jù)分配對應(yīng)的緩存,所有的緩存組成數(shù)據(jù)池;具體而言,順序?qū)懭霐?shù)據(jù)請求中要求按頁寫入數(shù)據(jù),該緩存的大小等于SSD的閃存(Flash Memory,簡稱FM)的頁面大??;
本步驟的優(yōu)點在于:能夠?qū)ι傻碾S機數(shù)據(jù)進行有效的管理,當(dāng)需要緩存中的數(shù)據(jù)時能夠快速高效地提取。
(2)接收來自用戶端的順序?qū)懭胝埱?,并根?jù)該順序?qū)懭胝埱鬄椴襟E(1)中分配的每個緩存中的所有數(shù)據(jù)分配頁面地址,并根據(jù)分配的頁面地址將數(shù)據(jù)池中的所有數(shù)據(jù)寫入到閃存的頁面中;具體而言,每個數(shù)據(jù)被分配的頁面地址為:SSD通道號+SSD芯片號+SSD芯片中的分組號+SSD芯片中分組號的塊號+SSD芯片中分組號的塊中的頁號;
本步驟的優(yōu)點在于:能夠清楚地將生成的隨機數(shù)據(jù)寫入到指定的SSD頁面中,從而在讀取的時候能夠快速地讀取所需要的數(shù)據(jù)。
(3)判斷SSD的閃存中的所有頁是否全部被寫入,如果是,則轉(zhuǎn)入步驟(4),否則轉(zhuǎn)入步驟(8);
(4)根據(jù)步驟(2)中分配的第一個頁面地址將存儲在閃存頁面中的對應(yīng)數(shù)據(jù)讀出,并將讀出的數(shù)據(jù)與步驟(1)中分配的第一個緩存中的數(shù)據(jù)進行比較,以統(tǒng)計閃存頁面中該數(shù)據(jù)的錯誤數(shù)量和錯誤位置;具體而言,本步驟就是將二者數(shù)據(jù)進行逐位(bit)比對,一旦二者不相同,則說明閃存頁面中的對應(yīng)數(shù)據(jù)發(fā)生錯誤,此時記錄下該錯誤數(shù)據(jù)在閃存頁面中的位置;
本步驟的優(yōu)點在于:能夠有效地統(tǒng)計出存儲在SSD頁面中的錯誤數(shù)據(jù),為研究SSD對偶頁的錯誤相關(guān)性特征提供依據(jù)。
(5)針對步驟(2)中分配的剩余頁面地址,重復(fù)執(zhí)行上述步驟(4),直至閃存頁面中所有數(shù)據(jù)都被統(tǒng)計完畢為止,并將統(tǒng)計出的閃存頁面中所有錯誤數(shù)據(jù)的數(shù)量、錯誤位置和錯誤數(shù)據(jù)在閃存頁面中的地址作為一個信息條目存儲在預(yù)設(shè)的錯誤信息列表中;具體而言,該錯誤信息列表可以設(shè)置在SSD中,也可以設(shè)置在服務(wù)器或用戶端;
本步驟的優(yōu)點在于:根據(jù)頁面地址可以清楚的知道SSD頁面中的對偶頁,以及對偶頁出錯的比特數(shù)量和位置。
(6)根據(jù)錯誤信息列表中錯誤數(shù)據(jù)在閃存頁面中的地址確定對偶頁,并統(tǒng)計所有對偶頁中的對偶比特錯誤數(shù)量和位置(例如圖1中的字線1中的第2頁和第8頁是對偶頁),并將統(tǒng)計出的對偶比特錯誤數(shù)量和位置存儲在錯誤信息列表中;
(7)將錯誤信息列表中錯誤數(shù)據(jù)的數(shù)量、錯誤位置和錯誤數(shù)據(jù)在閃存頁面中的地址、以及對偶比特錯誤數(shù)量和位置寫入日志文件中;
本步驟的優(yōu)點在于:為后續(xù)對SSD對偶頁的錯誤相關(guān)性特征進行研究提供一種便利,當(dāng)研究需要時,可以直接調(diào)取所需要的數(shù)據(jù)。
(8)繼續(xù)根據(jù)分配的頁面地址將數(shù)據(jù)池中的剩余數(shù)據(jù)寫入到閃存的頁面中,直到閃存頁面被完全寫滿為止,然后返回步驟(4)。
本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。