專利名稱::提高閃存芯片內(nèi)部數(shù)據(jù)拷貝速度的方法、閃存存儲(chǔ)系統(tǒng)及其控制器的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及通信
技術(shù)領(lǐng)域:
,尤其涉及一種提高閃存芯片內(nèi)部數(shù)據(jù)拷貝速度的方法、閃存存儲(chǔ)系統(tǒng)及其控制器。
背景技術(shù):
:作為唯一主流的固態(tài)非揮發(fā)數(shù)據(jù)儲(chǔ)存技術(shù),閃存已經(jīng)成為了全球半導(dǎo)體產(chǎn)業(yè)體系中發(fā)展最為迅速的一環(huán)。2010年市場研究報(bào)告顯示,閃存產(chǎn)品的市場已突破200億美元。基于閃存芯片的固態(tài)數(shù)據(jù)存儲(chǔ)系統(tǒng)主要包含一個(gè)固態(tài)存儲(chǔ)系統(tǒng)控制器和一個(gè)以上閃存芯片。閃存芯片的基本信息存儲(chǔ)單元是浮柵金屬氧化物半導(dǎo)體晶體管(Floating-GateTransistor)。浮柵金屬氧化物半導(dǎo)體晶體管的閾值電壓可以通過注射一定數(shù)量的電子進(jìn)入浮柵而改變。因此,通過對(duì)浮柵內(nèi)電子數(shù)目的精確控制,每個(gè)存儲(chǔ)單元,即浮柵金屬氧化物半導(dǎo)體晶體管,可儲(chǔ)存多個(gè)比特信息。精確控制浮柵內(nèi)電子數(shù)目的過程通常被稱為編程。在每一個(gè)存儲(chǔ)單元可以被編程之前,其浮柵內(nèi)的所有電子必須被移走,從而使得其閾值電壓被置為最低,這個(gè)過程被稱為擦除。在對(duì)信息存儲(chǔ)單元編程的過程中,業(yè)界使用一種漸進(jìn)式的“編程一校驗(yàn)一再編程”的方法以實(shí)現(xiàn)對(duì)浮柵內(nèi)電子數(shù)目的精確控制。重復(fù)的“編程/擦除”操作直接導(dǎo)致閃存芯片數(shù)據(jù)存儲(chǔ)單元的逐漸老化,使其噪音容限逐漸降低。當(dāng)一存儲(chǔ)單元經(jīng)歷過多的“編程/擦除”操作后,就會(huì)喪失其標(biāo)稱的數(shù)據(jù)存儲(chǔ)功能。為了延長閃存芯片的使用壽命,固態(tài)存儲(chǔ)系統(tǒng)控制器芯片必須進(jìn)行老化均衡(Wear-leveling)的操作,其目的在于盡量使得所有閃存物理頁面經(jīng)歷幾乎相同的“編程/擦除”操作次數(shù),這樣可均衡所有頁面的老化程度。但是在老化均衡的操作過程中,為了達(dá)到“編程/擦除”操作次數(shù)均衡的目的,會(huì)引入多余的數(shù)據(jù)拷貝操作。閃存芯片內(nèi)的信息存儲(chǔ)單元陣列被劃分成為多個(gè)存儲(chǔ)塊,而每一個(gè)存儲(chǔ)塊包含多個(gè)存儲(chǔ)頁面。閃存芯片數(shù)據(jù)讀寫操作以頁面(page)作為基本單位,每一頁面內(nèi)所包含的用戶數(shù)據(jù)通常為4096字節(jié)(byte)、8192字節(jié)、或16384字節(jié)。一定數(shù)量(如256、512)的存儲(chǔ)頁面組成一個(gè)存儲(chǔ)塊,閃存芯片由大量同等大小的存儲(chǔ)塊以及必須的外圍輔助電路構(gòu)成。數(shù)據(jù)擦除操作必須以存儲(chǔ)塊為單位。每一個(gè)存儲(chǔ)塊內(nèi)的所有存儲(chǔ)單元必須被同時(shí)擦除,但存儲(chǔ)單元的編程和讀取則以頁面為單位。在系統(tǒng)運(yùn)行過程中,在擦除某一存儲(chǔ)塊之前,必須將其內(nèi)的所有依然有效的數(shù)據(jù)拷貝至另一存儲(chǔ)塊內(nèi)。所有這些數(shù)據(jù)拷貝操作均由固態(tài)數(shù)據(jù)存儲(chǔ)系統(tǒng)轉(zhuǎn)換層(FlashTranslationLayer)固件設(shè)計(jì)來完成。專利申請(qǐng)?zhí)枮?,040,997號(hào)美國專利介紹了專利權(quán)所有人與其他人已知的一種技術(shù),其中的閃存系統(tǒng)包括一個(gè)內(nèi)部緩沖區(qū),使得從閃存之內(nèi)的第一位置讀取的數(shù)據(jù)通過內(nèi)部緩沖區(qū)直接重寫到閃存中的第二位置,無需將該數(shù)據(jù)傳遞出閃存之外。這就改善了數(shù)據(jù)傳遞時(shí)間。不過,這種已知的技術(shù)不提供錯(cuò)誤檢驗(yàn)和糾正,而是簡單地假設(shè),從第一4個(gè)閃存位置讀取的數(shù)據(jù)是準(zhǔn)確的。然而,為了最大程度提高數(shù)據(jù)存儲(chǔ)的可靠性,必須先將待拷貝頁面的數(shù)據(jù)讀入固態(tài)數(shù)據(jù)存儲(chǔ)系統(tǒng)控制器內(nèi)進(jìn)行糾錯(cuò)碼解碼操作以得到完全正確的原始數(shù)據(jù)后,再將此數(shù)據(jù)寫入另外一個(gè)頁面內(nèi)。雖然這種操作方式可最大程度提高數(shù)據(jù)存儲(chǔ)的可靠性,但同時(shí)會(huì)占用寶貴的系統(tǒng)總線資源以及糾錯(cuò)碼解碼器資源,進(jìn)而降低數(shù)據(jù)存儲(chǔ)系統(tǒng)整體的運(yùn)行速度。申請(qǐng)?zhí)枮?01110008910.O的中國申請(qǐng)專利公開了一種在頁復(fù)制操作過程中具有錯(cuò)誤檢測和校正功能的閃存系統(tǒng)。該閃存系統(tǒng)可以防止從源頁轉(zhuǎn)錄錯(cuò)誤位到一個(gè)復(fù)制頁。該發(fā)明閃存的實(shí)施例包括一個(gè)用于校下存儲(chǔ)在頁緩沖器中源數(shù)據(jù)的位錯(cuò)誤的校正電路,一個(gè)配置得適于提供源數(shù)據(jù)到校正電路以及提供校正數(shù)據(jù)到頁緩沖器的電路,和一個(gè)配置得適于復(fù)制源數(shù)據(jù)到頁緩沖器、并將校正數(shù)據(jù)從頁緩沖器存儲(chǔ)到另一個(gè)頁的復(fù)制電路。將存儲(chǔ)單元陣列的第一位置的源數(shù)據(jù)存儲(chǔ)到緩沖器中,然后檢測存儲(chǔ)在緩沖器中的源數(shù)據(jù)的位錯(cuò)誤,當(dāng)檢測到位錯(cuò)誤時(shí)校正該位錯(cuò)誤,以及在所述校正之后,將校正后的源數(shù)據(jù)復(fù)制到存儲(chǔ)單元陣列的第二位置上。雖然所公開的系統(tǒng)能夠提高數(shù)據(jù)存儲(chǔ)的可靠性的同時(shí)且在一定程度上降低FTL操作對(duì)于閃存存儲(chǔ)系統(tǒng)性能的影響,但利用該系統(tǒng)實(shí)現(xiàn)的過程比較復(fù)雜,還是需要對(duì)源數(shù)據(jù)進(jìn)行糾錯(cuò)判斷,無論源數(shù)據(jù)是否有發(fā)生位錯(cuò)誤的可能;而且還需要改變現(xiàn)有閃存存儲(chǔ)系統(tǒng)的編程/擦除程序而實(shí)現(xiàn),不利于普及使用。
發(fā)明內(nèi)容本發(fā)明的實(shí)施例提供一種提高閃存芯片內(nèi)部數(shù)據(jù)拷貝速度的方法、閃存存儲(chǔ)系統(tǒng)及其控制器,能夠有效地利用閃存芯片存儲(chǔ)單元的工作特性來降低轉(zhuǎn)換層固件運(yùn)行時(shí)對(duì)固態(tài)存儲(chǔ)系統(tǒng)運(yùn)行速度的影響,且實(shí)現(xiàn)過程簡單、易行。為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案一種提高閃存芯片內(nèi)部數(shù)據(jù)拷貝速度的方法,其中每一閃存芯片具有多個(gè)存儲(chǔ)塊,每個(gè)存儲(chǔ)塊包括多個(gè)頁面,該方法包括步驟檢測待拷貝頁面當(dāng)前的最差情況下的噪音容限,并根據(jù)所述最差情況下的噪音容限獲得所述待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率;檢測所有閃存芯片內(nèi)是否存在至少一個(gè)可用的拷貝目標(biāo)頁面,使所述拷貝目標(biāo)頁面當(dāng)前的最大比特錯(cuò)誤率和待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率累加后的比特錯(cuò)誤率能夠?yàn)樗褂玫募m錯(cuò)碼容忍;若是,則將待拷貝頁面的數(shù)據(jù)直接讀出并拷貝到任一所述拷貝目標(biāo)頁面內(nèi)。一種控制器,包括微處理單元;閃存接口,耦接至所述微處理單元以及多個(gè)閃存芯片,其中每一閃存芯片具有多個(gè)存儲(chǔ)塊,每個(gè)存儲(chǔ)塊包括多個(gè)頁面;閃存管理模塊,耦接至所述微處理單元以通過微處理單元對(duì)所述多個(gè)閃存芯片執(zhí)行閃存處理程序,包括檢測待拷貝頁面當(dāng)前的最差情況下的噪音容限,并根據(jù)所述最差情況下的噪音容限獲得所述待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率;檢測所有閃存芯片內(nèi)是否存在至少一個(gè)可用的拷貝目標(biāo)頁面,使所述拷貝目標(biāo)頁面當(dāng)前的最大比特錯(cuò)誤率和待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率累加后的比特錯(cuò)誤率能夠?yàn)樗褂玫募m錯(cuò)碼容忍;若是,則將待拷貝頁面的數(shù)據(jù)直接讀出并拷貝到任一所述拷貝目標(biāo)頁面內(nèi)。一種閃存存儲(chǔ)系統(tǒng),包括多個(gè)閃存芯片,每一閃存芯片具有多個(gè)存儲(chǔ)塊,每個(gè)存儲(chǔ)塊包括多個(gè)存儲(chǔ)單元;控制器,耦接至所述多個(gè)閃存芯片以檢測待拷貝頁面當(dāng)前的最差情況下的噪音容限,并根據(jù)所述最差情況下的噪音容限獲得所述待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率;檢測所有閃存芯片內(nèi)是否存在至少一個(gè)可用的拷貝目標(biāo)頁面,使所述拷貝目標(biāo)頁面當(dāng)前的最大比特錯(cuò)誤率和待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率累加后的比特錯(cuò)誤率能夠?yàn)樗褂玫募m錯(cuò)碼容忍;若存在至少一個(gè)所述拷貝目標(biāo)頁面,則將待拷貝頁面的數(shù)據(jù)直接讀出并拷貝到任一所述拷貝目標(biāo)頁面內(nèi)。本發(fā)明實(shí)施例提供的一種提高閃存芯片內(nèi)部數(shù)據(jù)拷貝速度的方法、閃存存儲(chǔ)系統(tǒng)及其控制器通過檢測待拷貝頁面當(dāng)前的最差情況下的噪音容限,并根據(jù)所述最差情況下的噪音容限獲得所述待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率;并檢測所有閃存芯片內(nèi)是否存在至少一個(gè)可用的拷貝目標(biāo)頁面,使所述拷貝目標(biāo)頁面當(dāng)前的最大比特錯(cuò)誤率和待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率累加后的比特錯(cuò)誤率能夠?yàn)樗褂玫募m錯(cuò)碼容忍;若存在至少一個(gè)所述拷貝目標(biāo)頁面,則將待拷貝頁面的數(shù)據(jù)直接讀出并拷貝到任一所述拷貝目標(biāo)頁面內(nèi);若不存在所述拷貝目標(biāo)頁面,則先將待拷貝頁面的數(shù)據(jù)讀出以進(jìn)行糾錯(cuò)碼處理,再將經(jīng)過糾錯(cuò)碼處理后的正確的頁面數(shù)據(jù)拷貝到另一可用的頁面內(nèi)。即是,使用本發(fā)明時(shí),如果待拷貝頁面的比特錯(cuò)誤率足夠低,使閃存中存在另一個(gè)可用頁面,使得此兩頁面的比特錯(cuò)誤率直接累加后也不會(huì)超出糾錯(cuò)碼的糾錯(cuò)能力,則直接將待拷貝頁面數(shù)據(jù)拷貝至此可用頁面,顯然,在不降低存儲(chǔ)系統(tǒng)穩(wěn)定性的前提下,可直接降低對(duì)系統(tǒng)資源的占用、進(jìn)而降低轉(zhuǎn)換層固件運(yùn)行時(shí)對(duì)固態(tài)存儲(chǔ)系統(tǒng)運(yùn)行速度的影響。因此,有有效地利用閃存芯片存儲(chǔ)單元的工作特性來降低轉(zhuǎn)換層固件運(yùn)行時(shí)對(duì)固態(tài)存儲(chǔ)系統(tǒng)運(yùn)行速度的影響,,達(dá)到提高閃存芯片內(nèi)部數(shù)據(jù)拷貝速度的目的,并且本發(fā)明的設(shè)計(jì)與現(xiàn)有固態(tài)存儲(chǔ)系統(tǒng)設(shè)計(jì)直接兼容,實(shí)現(xiàn)過程簡單易行。為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I是本發(fā)明實(shí)施例I中一種閃存存儲(chǔ)系統(tǒng)的組成框圖;圖2是本發(fā)明實(shí)施例I中閃存芯片的組成框圖;圖34是現(xiàn)有技術(shù)與利用本發(fā)明實(shí)施例I中的閃存存儲(chǔ)系統(tǒng)實(shí)現(xiàn)的運(yùn)行過程比較示意圖;圖5是本發(fā)明實(shí)施例2中一種控制器的組成框圖;圖6是本發(fā)明實(shí)施例3中一種提高閃存芯片內(nèi)部數(shù)據(jù)拷貝速度的方法流程圖。圖7是本發(fā)明實(shí)施例4中另一種提高閃存芯片內(nèi)部數(shù)據(jù)拷貝速度的方法流程圖。具體實(shí)施方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。實(shí)施例I本發(fā)明實(shí)施例提供一種閃存存儲(chǔ)系統(tǒng),如圖I所示,閃存存儲(chǔ)系統(tǒng)100包括控制器110和閃存120,通常閃存存儲(chǔ)系統(tǒng)100會(huì)與主機(jī)140—起使用,并通過通信接口130連接,以使主機(jī)140可將數(shù)據(jù)寫入至存儲(chǔ)系統(tǒng)100或從存儲(chǔ)系統(tǒng)100中讀取數(shù)據(jù)。在本實(shí)施例中,主機(jī)140可以是計(jì)算機(jī)、數(shù)字相機(jī)、攝影機(jī)、通信裝置、音頻播放器或視頻播放器等可存儲(chǔ)數(shù)據(jù)的任意系統(tǒng)。通信接口130可以是USB接口、PCIExpress接口、SATA接口、MS接口、MMC接口、SD接口、CF接口、IDE接口或其他適合的數(shù)據(jù)傳輸接口。在本實(shí)施例中,所述閃存存儲(chǔ)系統(tǒng)100為固態(tài)硬盤(SolidStateDrive,SDD),但可理解的,在其他實(shí)施例中該閃存存儲(chǔ)系統(tǒng)100也可以是隨身碟或存儲(chǔ)卡。閃存120耦接控制器110并且用以存儲(chǔ)數(shù)據(jù)。在本實(shí)施例中,閃存120包括多個(gè)閃存芯片122,如圖2所示,每一閃存芯片122通常實(shí)質(zhì)上分成多個(gè)存儲(chǔ)塊(physicalblock)124,一般而言,在閃存中存儲(chǔ)塊為擦除(erase)的最小單元。每一區(qū)塊含有最小數(shù)碼的一病被擦除的存儲(chǔ)單元(memorycell)。每一存儲(chǔ)塊通常會(huì)分割成數(shù)個(gè)閃存頁面(page)126,其中一個(gè)閃存頁面通常為編程/讀取(program/read)的最小單元,但是針對(duì)不同的閃存設(shè)計(jì),最小的編程/讀取(program/read)單元也可為一個(gè)扇區(qū)(sector)大小,即一頁中有多個(gè)扇區(qū)并以一扇區(qū)為編程/讀取(program/read)的最小單元。在本實(shí)施例中,每一閃存芯片122包括多個(gè)閃存頁面(page)126,而每一個(gè)閃存頁面(page)126以扇區(qū)作為最小的存儲(chǔ)單元128。且每一閃存頁面包括用戶數(shù)據(jù)存放區(qū)和冗余區(qū),而冗余區(qū)通常又包括系統(tǒng)管理區(qū)與錯(cuò)誤更正區(qū)。其中,用戶數(shù)據(jù)存放區(qū)用以存儲(chǔ)用戶的數(shù)據(jù),系統(tǒng)管理區(qū)用以存儲(chǔ)系統(tǒng)管理數(shù)據(jù)(例如每一區(qū)塊的邏輯實(shí)體地址對(duì)應(yīng)關(guān)系、區(qū)塊的起始分頁…等),而錯(cuò)誤更正區(qū)則用以存儲(chǔ)經(jīng)糾錯(cuò)碼編碼模塊(后面描述)計(jì)算后的ECC的糾錯(cuò)碼(parity)??刂破?10用于協(xié)調(diào)主機(jī)140與閃存120的整體運(yùn)作,例如數(shù)據(jù)的寫入、讀取與擦除等??刂破?10包括微處理單元110a、閃存接口110b、閃存管理模塊IlOc以及糾錯(cuò)碼編碼模塊IlOcL微處理單元IlOa用于協(xié)調(diào)控制閃存接口110b、閃存管理模塊IlOc以及糾錯(cuò)碼編碼模塊110d,以及進(jìn)行對(duì)閃存120的寫入、讀取與抹除等運(yùn)作。閃存接口IlOb電性連接至微處理單元IlOa并且用以存取閃存120,也就是,主機(jī)140欲寫入至閃存120的用戶數(shù)據(jù)會(huì)經(jīng)由閃存接口IlOb轉(zhuǎn)換為閃存120所能接受的格式。特別是,在本實(shí)施中,閃存管理模塊IlOc對(duì)閃存120的信息獲取以及發(fā)送控制命令等也是需要通過閃存接口110b。糾錯(cuò)碼編碼模塊IlOd電性連接至微處理單元210a并且用于對(duì)欲寫入的用戶數(shù)據(jù)進(jìn)行糾錯(cuò)碼編碼,從而產(chǎn)生相應(yīng)的糾錯(cuò)碼編碼冗余并且與此數(shù)據(jù)一同儲(chǔ)存至閃存芯片122的同一閃存頁面124內(nèi),其中之后當(dāng)從閃存頁面124中讀取此數(shù)據(jù)時(shí),糾錯(cuò)碼編碼模塊IlOd可依據(jù)糾錯(cuò)碼編碼冗余來檢查數(shù)據(jù)是否正確,或者當(dāng)數(shù)據(jù)不正確時(shí)嘗試將錯(cuò)誤的數(shù)據(jù)恢復(fù)7為正確的數(shù)據(jù)。糾錯(cuò)碼編碼冗余是由所選擇的糾錯(cuò)碼本身所決定的。糾錯(cuò)碼編碼冗余量的大小直接決定了糾錯(cuò)碼編碼模塊的糾錯(cuò)強(qiáng)度。閃存管理模塊IlOc電性連接至微處理單元IlOa以通過微處理單元對(duì)所述多個(gè)閃存芯片執(zhí)行閃存管理程序。閃存管理模塊IlOc用于管理閃存120,例如執(zhí)行平均磨損(wearleveling)方法、壞區(qū)塊管理、維護(hù)對(duì)映表(mappingtable)等。特別是,在本發(fā)明實(shí)施例中,閃存管理模塊IlOc還用于檢測閃存120的使用情況,以控制當(dāng)前的閃存擦除操作時(shí)間。執(zhí)行過程如下檢測待拷貝頁面當(dāng)前的最差情況下的噪音容限,并根據(jù)所述最差情況下的噪音容限獲得所述待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率;檢測所有閃存芯片內(nèi)是否存在至少一個(gè)可用的拷貝目標(biāo)頁面,使所述拷貝目標(biāo)頁面當(dāng)前的最大比特錯(cuò)誤率和待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率累加后的比特錯(cuò)誤率能夠?yàn)樗褂玫募m錯(cuò)碼容忍;若存在至少一個(gè)所述拷貝目標(biāo)頁面,則將待拷貝頁面的數(shù)據(jù)直接讀出并拷貝到任一所述拷貝目標(biāo)頁面內(nèi);若不存在所述拷貝目標(biāo)頁面,則先將待拷貝頁面的數(shù)據(jù)讀出以進(jìn)行糾錯(cuò)碼處理,再將經(jīng)過糾錯(cuò)碼處理后的正確的頁面數(shù)據(jù)拷貝到另一可用的頁面內(nèi)。在具體實(shí)施時(shí),控制器110的閃存管理模塊IlOc通過在對(duì)任一存儲(chǔ)塊124進(jìn)行擦除操作前,實(shí)時(shí)檢測記錄每一閃存芯片的閃存頁面126經(jīng)歷過的編程/擦除次數(shù),并根據(jù)記錄的編程/擦除次數(shù)而估算每一閃存芯片的閃存頁面126的最差情況下的噪音容限,并根據(jù)所述最差情況下的噪音容限獲得每一閃存芯片的閃存頁126當(dāng)前的最大比特錯(cuò)誤率;另外,當(dāng)需要對(duì)儲(chǔ)塊124進(jìn)行擦除操作前,需要將該存儲(chǔ)塊124中的閃存頁面126內(nèi)仍然有效的數(shù)據(jù)(即待拷貝頁面數(shù)據(jù))拷貝到其他存儲(chǔ)塊的可用的頁面內(nèi)(拷貝目標(biāo)頁面,即將待拷貝頁面數(shù)據(jù)所拷貝至的頁面),在選擇拷貝目標(biāo)頁面的時(shí)候,首先要獲取待拷貝頁面當(dāng)前的最差情況下的噪音容限,并根據(jù)所述最差情況下的噪音容限獲得所述待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率,同時(shí)檢測所有閃存芯片內(nèi)是否存在至少一個(gè)可用的拷貝目標(biāo)頁面,使所述拷貝目標(biāo)頁面當(dāng)前的最大比特錯(cuò)誤率和待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率累加后的比特錯(cuò)誤率能夠?yàn)樗褂玫募m錯(cuò)碼容忍(即兩個(gè)頁面的比特錯(cuò)誤率直接累加后也不會(huì)超出糾錯(cuò)碼的糾錯(cuò)能力);這樣,若果發(fā)現(xiàn)存在至少一個(gè)所述拷貝目標(biāo)頁面,則將待拷貝頁面的數(shù)據(jù)直接讀出并拷貝到任一所述拷貝目標(biāo)頁面內(nèi),無需經(jīng)過糾錯(cuò)碼處理;若果不存在所述拷貝目標(biāo)頁面,則先將待拷貝頁面的數(shù)據(jù)讀出到閃存系統(tǒng)的控制器中利用糾錯(cuò)碼編碼模塊IlOd進(jìn)行糾錯(cuò)碼處理,以糾正所有的錯(cuò)誤比特,然后將正確的頁面數(shù)據(jù)拷貝到另一存儲(chǔ)塊中可用的頁面內(nèi)。為了進(jìn)一步闡述本發(fā)明實(shí)施例的效果,現(xiàn)在對(duì)比描述現(xiàn)有技術(shù)和本發(fā)明的本質(zhì)區(qū)別。圖34是現(xiàn)有技術(shù)與利用本發(fā)明實(shí)施例I中的閃存存儲(chǔ)系統(tǒng)實(shí)現(xiàn)的運(yùn)行過程比較示意圖。如圖3所示,在現(xiàn)有技術(shù)中,在現(xiàn)有固態(tài)存儲(chǔ)系統(tǒng)設(shè)計(jì)中,在將某一頁面(待拷貝頁面)數(shù)據(jù)拷貝至另一存儲(chǔ)頁面(拷貝目標(biāo)頁面)時(shí),首先是利用轉(zhuǎn)換層固件先將此待拷貝頁面數(shù)據(jù)讀出(第一步),然后傳輸頁面數(shù)據(jù)到固態(tài)數(shù)據(jù)存儲(chǔ)系統(tǒng)控制器內(nèi)(第二步),在控制器內(nèi)利用糾錯(cuò)碼模塊對(duì)此數(shù)據(jù)進(jìn)行糾錯(cuò)碼解碼操作以得到完全正確的原始數(shù)據(jù)(第三步),最后再將此完全正確的原始數(shù)據(jù)傳輸回閃存(第四步)并寫入拷貝目標(biāo)頁面內(nèi)(第五步)。雖然這種操作方式可最大程度提高數(shù)據(jù)存儲(chǔ)的可靠性,但同時(shí)會(huì)占用寶貴的系統(tǒng)總線資源以及糾錯(cuò)碼解碼器資源,進(jìn)而降低數(shù)據(jù)存儲(chǔ)系統(tǒng)整體的運(yùn)行速度。。而使用本發(fā)明時(shí),如圖4所示,在將某一頁面(待拷貝頁面)數(shù)據(jù)拷貝至另一存儲(chǔ)頁面(拷貝目標(biāo)頁面)時(shí),如果待拷貝頁面的比特錯(cuò)誤率足夠低,以致于存在另一個(gè)可用頁面(拷貝目標(biāo)頁面),使得此兩個(gè)頁面的比特錯(cuò)誤率直接累加后也不會(huì)超出糾錯(cuò)碼的糾錯(cuò)能力,則可直接讀出待拷貝頁面數(shù)據(jù)(第一步),然后傳輸待拷貝頁面數(shù)據(jù)(第二步)并寫入拷貝目標(biāo)頁面內(nèi)(第三步)。顯然,在不降低存儲(chǔ)系統(tǒng)穩(wěn)定性的前提下,可直接降低對(duì)系統(tǒng)資源的占用、進(jìn)而降低轉(zhuǎn)換層固件運(yùn)行時(shí)對(duì)固態(tài)存儲(chǔ)系統(tǒng)運(yùn)行速度的影響。固態(tài)存儲(chǔ)系統(tǒng)控制器僅僅使用一固定的糾錯(cuò)碼編碼方式并在每一閃存物理頁面內(nèi)寫入同樣大小的用戶數(shù)據(jù),同時(shí)所有閃存頁面數(shù)據(jù)寫入速度被設(shè)為一固定值。在實(shí)際系統(tǒng)運(yùn)行中,不同的用戶數(shù)據(jù)會(huì)具有非常不同的無損數(shù)據(jù)壓縮性,當(dāng)使用本發(fā)明時(shí),數(shù)據(jù)存儲(chǔ)系統(tǒng)可實(shí)時(shí)利用此無損數(shù)據(jù)壓縮性,盡可能地提高數(shù)據(jù)存儲(chǔ)糾錯(cuò)碼地糾錯(cuò)能力,進(jìn)而利用更為強(qiáng)大地糾錯(cuò)能力以允許更高地閃存芯片數(shù)據(jù)寫入速度,以達(dá)到提高固態(tài)存儲(chǔ)系統(tǒng)運(yùn)行速度的目的。此外,雖未繪示于本實(shí)施例,但控制器110可還包括一般閃存控制器常見的功能模塊,例如電源管理模塊等。本發(fā)明實(shí)施例中,在閃存存儲(chǔ)系統(tǒng)100的控制器110中設(shè)置閃存管理模塊110c,且該閃存管理模塊IlOc增設(shè)了對(duì)任一存儲(chǔ)塊進(jìn)行擦除操作前并需要將待拷貝頁面的數(shù)據(jù)拷貝到拷貝目標(biāo)頁面內(nèi),首先檢測待拷貝頁面當(dāng)前的最差情況下的噪音容限,并根據(jù)所述最差情況下的噪音容限獲得所述待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率,并檢測所有閃存芯片內(nèi)是否存在至少一個(gè)可用的拷貝目標(biāo)頁面,使所述拷貝目標(biāo)頁面當(dāng)前的最大比特錯(cuò)誤率和待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率累加后的比特錯(cuò)誤率能夠?yàn)樗褂玫募m錯(cuò)碼容忍;若存在至少一個(gè)所述拷貝目標(biāo)頁面,則將待拷貝頁面的數(shù)據(jù)直接讀出并拷貝到任一所述拷貝目標(biāo)頁面內(nèi);若不存在所述拷貝目標(biāo)頁面,則先將待拷貝頁面的數(shù)據(jù)讀出以進(jìn)行糾錯(cuò)碼處理,再將經(jīng)過糾錯(cuò)碼處理后的正確的頁面數(shù)據(jù)拷貝到另一可用的頁面內(nèi)。即是,使用本發(fā)明時(shí),如果待拷貝頁面的比特錯(cuò)誤率足夠低,使閃存中存在另一個(gè)可用頁面,使得此兩頁面的比特錯(cuò)誤率直接累加后也不會(huì)超出糾錯(cuò)碼的糾錯(cuò)能力,則直接將待拷貝頁面數(shù)據(jù)拷貝至此可用頁面,顯然,在不降低存儲(chǔ)系統(tǒng)穩(wěn)定性的前提下,可直接降低對(duì)系統(tǒng)資源的占用、進(jìn)而降低轉(zhuǎn)換層固件運(yùn)行時(shí)對(duì)固態(tài)存儲(chǔ)系統(tǒng)運(yùn)行速度的影響。因此,有有效地利用閃存芯片存儲(chǔ)單元的工作特性來降低轉(zhuǎn)換層固件運(yùn)行時(shí)對(duì)固態(tài)存儲(chǔ)系統(tǒng)運(yùn)行速度的影響,,達(dá)到提高閃存芯片內(nèi)部數(shù)據(jù)拷貝速度的目的,并且本發(fā)明的設(shè)計(jì)與現(xiàn)有固態(tài)存儲(chǔ)系統(tǒng)設(shè)計(jì)直接兼容,實(shí)現(xiàn)過程簡單易行。實(shí)施例2本發(fā)明實(shí)施例提供一種控制器,適用于具有閃存的閃存存儲(chǔ)系統(tǒng)上,其中,該閃存包括多個(gè)閃存芯片,每一閃存芯片具有多個(gè)存儲(chǔ)塊,且每一存儲(chǔ)塊內(nèi)設(shè)有多個(gè)頁面,關(guān)于閃存芯片的具體結(jié)構(gòu)請(qǐng)參考圖2以及上述實(shí)施例的相關(guān)描述。如圖5所示,本發(fā)明實(shí)施例的控制器300包括微處理單元310、閃存接口320、閃存管理模塊330以及糾錯(cuò)碼編碼模塊340。微處理單元310用于協(xié)調(diào)控制閃存接口320、閃存管理模塊330以及糾錯(cuò)碼編碼模塊340,以及進(jìn)行對(duì)閃存的寫入、讀取與抹除等運(yùn)作。閃存接口320電性連接至微處理單元310并且用以存取閃存,也就是,控制器欲將寫入至閃存的用戶數(shù)據(jù)會(huì)經(jīng)由閃存接口320轉(zhuǎn)換為閃存120所能接受的格式。特別是,在本實(shí)施中,閃存管理模塊330對(duì)閃存的信息獲取以及發(fā)送控制命令等也是需要通過閃存接口320發(fā)送。糾錯(cuò)碼編碼模塊340電性連接至微處理單元310并且用于對(duì)欲寫入的用戶數(shù)據(jù)進(jìn)行糾錯(cuò)碼編碼,從而產(chǎn)生相應(yīng)的糾錯(cuò)碼編碼冗余并且與此數(shù)據(jù)一同儲(chǔ)存至閃存芯片的同一閃存頁面內(nèi),其中之后當(dāng)從閃存頁面中讀取此數(shù)據(jù)時(shí),糾錯(cuò)碼編碼模塊340可依據(jù)糾錯(cuò)碼編碼冗余來檢查數(shù)據(jù)是否正確,或者當(dāng)數(shù)據(jù)不正確時(shí)嘗試將錯(cuò)誤的數(shù)據(jù)恢復(fù)為正確的數(shù)據(jù)。糾錯(cuò)碼編碼冗余是由所選擇的糾錯(cuò)碼本身所決定的。糾錯(cuò)碼編碼冗余量的大小直接決定了糾錯(cuò)碼編碼模塊的糾錯(cuò)強(qiáng)度。閃存管理模塊330電性連接至微處理單元310。閃存管理模塊330用于管理閃存,特別是,在本發(fā)明實(shí)施例中,閃存管理模塊330還用于檢測閃存的使用情況,以控制當(dāng)前的閃存擦除操作以及數(shù)據(jù)拷貝操作,具體包括編程/擦除次數(shù)記錄單元332、噪音容限估算單元334、頁面數(shù)據(jù)存儲(chǔ)錯(cuò)誤率估算單元336和拷貝目標(biāo)頁面選擇單元338編程/擦除次數(shù)記錄單元332,用于實(shí)時(shí)記錄閃存內(nèi)每一頁面經(jīng)歷過的編程/擦除次數(shù);噪音容限估算單元334,用于根據(jù)記錄的編程/擦除次數(shù)而估算每一存頁面的最差情況下的噪音容限;頁面數(shù)據(jù)存儲(chǔ)錯(cuò)誤率估算單元336,用于根據(jù)所述噪音容限估算單元估算的最差情況下的噪音容限而估算每一頁面當(dāng)前的最大比特錯(cuò)誤率;拷貝目標(biāo)頁面選擇單元338,用于檢測所有閃存芯片內(nèi)是否存在至少一個(gè)可用的拷貝目標(biāo)頁面,使所述拷貝目標(biāo)頁面當(dāng)前的最大比特錯(cuò)誤率和待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率累加后的比特錯(cuò)誤率能夠?yàn)樗褂玫募m錯(cuò)碼容忍;若存在,則發(fā)出將待拷貝頁面的數(shù)據(jù)直接讀出并拷貝到任一所述拷貝目標(biāo)頁面內(nèi)的命令;否則命令先將待拷貝頁面的數(shù)據(jù)讀出以進(jìn)行糾錯(cuò)碼處理,再將經(jīng)過糾錯(cuò)碼處理后的正確的頁面數(shù)據(jù)拷貝到另一可用的頁面內(nèi)。在具體實(shí)施時(shí),控制器300的閃存管理模塊330通過在對(duì)任一存儲(chǔ)塊124進(jìn)行擦除操作前,通過編程/擦除次數(shù)記錄單元332實(shí)時(shí)檢測記錄每一閃存芯片的閃存頁面經(jīng)歷過的編程/擦除次數(shù),并利用噪音容限估算單元334根據(jù)記錄的編程/擦除次數(shù)而估算每一閃存芯片的閃存頁面的最差情況下的噪音容限,且利用頁面數(shù)據(jù)存儲(chǔ)錯(cuò)誤率估算單元336根據(jù)所述最差情況下的噪音容限獲得每一閃存芯片的閃存頁面當(dāng)前的最大比特錯(cuò)誤率;另外,當(dāng)需要對(duì)儲(chǔ)塊進(jìn)行擦除操作前,需要將該存儲(chǔ)塊中的閃存頁面內(nèi)仍然有效的數(shù)據(jù)(即待拷貝頁面數(shù)據(jù))拷貝到其他存儲(chǔ)塊的可用的頁面內(nèi)(拷貝目標(biāo)頁面,即將待拷貝頁面數(shù)據(jù)所拷貝至的頁面),在選擇拷貝目標(biāo)頁面的時(shí)候,首先所述拷貝目標(biāo)頁面選擇單元338通過頁面數(shù)據(jù)存儲(chǔ)錯(cuò)誤率估算單元336獲得所述待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率,并同時(shí)通過頁面數(shù)據(jù)存儲(chǔ)錯(cuò)誤率估算單元336檢測所有閃存芯片內(nèi)是否存在至少一個(gè)可用的拷貝目標(biāo)頁面,使所述拷貝目標(biāo)頁面當(dāng)前的最大比特錯(cuò)誤率和待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率累加后的比特錯(cuò)誤率能夠?yàn)樗褂玫募m錯(cuò)碼容忍(即兩個(gè)頁面的比特錯(cuò)誤率直接累加后也不會(huì)超出糾錯(cuò)碼的糾錯(cuò)能力);這樣,若果發(fā)現(xiàn)存在至少一個(gè)所述拷貝目標(biāo)頁面,則發(fā)出將待拷貝頁面的數(shù)據(jù)直接讀出并拷貝到任一所述拷貝目標(biāo)頁面內(nèi)的命令,無需經(jīng)過糾錯(cuò)碼處理;若果不存在所述拷貝目標(biāo)頁面,則命令先將待拷貝頁面的數(shù)據(jù)讀出到閃存系統(tǒng)的控制器中利用糾錯(cuò)碼編碼模塊進(jìn)行糾錯(cuò)碼處理,以糾正所有的錯(cuò)誤比特,然后將正確的頁面數(shù)據(jù)拷貝到另一存儲(chǔ)塊中可用的頁面內(nèi)。本發(fā)明實(shí)施例中,在控制器中設(shè)置閃存管理模塊,且該閃存管理模塊增設(shè)了對(duì)任一存儲(chǔ)塊進(jìn)行擦除操作前并需要將待拷貝頁面的數(shù)據(jù)拷貝到拷貝目標(biāo)頁面內(nèi),首先檢測待拷貝頁面當(dāng)前的最差情況下的噪音容限,并根據(jù)所述最差情況下的噪音容限獲得所述待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率,并檢測所有閃存芯片內(nèi)是否存在至少一個(gè)可用的拷貝目標(biāo)頁面,使所述拷貝目標(biāo)頁面當(dāng)前的最大比特錯(cuò)誤率和待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率累加后的比特錯(cuò)誤率能夠?yàn)樗褂玫募m錯(cuò)碼容忍;若存在至少一個(gè)所述拷貝目標(biāo)頁面,則將待拷貝頁面的數(shù)據(jù)直接讀出并拷貝到任一所述拷貝目標(biāo)頁面內(nèi);若不存在所述拷貝目標(biāo)頁面,則先將待拷貝頁面的數(shù)據(jù)讀出以進(jìn)行糾錯(cuò)碼處理,再將經(jīng)過糾錯(cuò)碼處理后的正確的頁面數(shù)據(jù)拷貝到另一可用的頁面內(nèi)。即是,使用本發(fā)明時(shí),如果待拷貝頁面的比特錯(cuò)誤率足夠低,使閃存中存在另一個(gè)可用頁面,使得此兩頁面的比特錯(cuò)誤率直接累加后也不會(huì)超出糾錯(cuò)碼的糾錯(cuò)能力,則直接將待拷貝頁面數(shù)據(jù)拷貝至此可用頁面,顯然,在不降低存儲(chǔ)系統(tǒng)穩(wěn)定性的前提下,可直接降低對(duì)系統(tǒng)資源的占用、進(jìn)而降低轉(zhuǎn)換層固件運(yùn)行時(shí)對(duì)固態(tài)存儲(chǔ)系統(tǒng)運(yùn)行速度的影響。因此,有有效地利用閃存芯片存儲(chǔ)單元的工作特性來降低轉(zhuǎn)換層固件運(yùn)行時(shí)對(duì)固態(tài)存儲(chǔ)系統(tǒng)運(yùn)行速度的影響,達(dá)到提高閃存芯片內(nèi)部數(shù)據(jù)拷貝速度的目的,并且本發(fā)明的設(shè)計(jì)與現(xiàn)有固態(tài)存儲(chǔ)系統(tǒng)設(shè)計(jì)直接兼容,實(shí)現(xiàn)過程簡單易行。實(shí)施例3本發(fā)明實(shí)施例提供一種提高閃存芯片內(nèi)部數(shù)據(jù)拷貝速度的方法,適用于閃存存儲(chǔ)系統(tǒng)的控制器對(duì)閃存的控制上,其中,該閃存包括多個(gè)閃存芯片,每一閃存芯片具有多個(gè)存儲(chǔ)塊,且每一存儲(chǔ)塊內(nèi)設(shè)有多個(gè)頁面,關(guān)于閃存芯片的具體結(jié)構(gòu)請(qǐng)參考圖2以及上述實(shí)施例的相關(guān)描述。如圖6所示,該方法包括步驟SlOl:檢測待拷貝頁面當(dāng)前的最差情況下的噪音容限,并根據(jù)所述最差情況下的噪音容限獲得所述待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率;具體的,在本實(shí)施例中,可以通過多種現(xiàn)有的方式檢測閃存芯片存儲(chǔ)單元的噪音容限,例如通過檢測存儲(chǔ)單元的數(shù)據(jù)讀取誤碼率以檢測噪音容限、通過記錄閃存信息存儲(chǔ)單元的編程/擦除操作次數(shù)以檢測噪音容限。步驟S102:檢測所有閃存芯片內(nèi)是否存在至少一個(gè)可用的拷貝目標(biāo)頁面,使所述拷貝目標(biāo)頁面當(dāng)前的最大比特錯(cuò)誤率和待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率累加后的比特錯(cuò)誤率能夠?yàn)樗褂玫募m錯(cuò)碼容忍;若是,則將待拷貝頁面的數(shù)據(jù)直接讀出并拷貝到任一所述拷貝目標(biāo)頁面內(nèi)。具體的,在選擇拷貝目標(biāo)頁面的時(shí)候,首先通過步驟101獲取待拷貝頁面當(dāng)前的最差情況下的噪音容限,并根據(jù)所述最差情況下的噪音容限獲得所述待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率,然后檢測所有閃存芯片內(nèi)是否存在至少一個(gè)可用的拷貝目標(biāo)頁面,使所述拷貝目標(biāo)頁面當(dāng)前的最大比特錯(cuò)誤率和待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率累加后的比特錯(cuò)誤率能夠?yàn)樗褂玫募m錯(cuò)碼容忍(即兩個(gè)頁面的比特錯(cuò)誤率直接累加后也不會(huì)超出糾錯(cuò)碼的糾錯(cuò)能力);這樣,若果發(fā)現(xiàn)存在至少一個(gè)所述拷貝目標(biāo)頁面,則將待拷貝頁面的數(shù)據(jù)直接讀出并拷貝到任一所述拷貝目標(biāo)頁面內(nèi),無需經(jīng)過糾錯(cuò)碼處理。顯然,在不降低存儲(chǔ)系統(tǒng)穩(wěn)定性的前提下,可直接降低對(duì)系統(tǒng)資源的占用、進(jìn)而降低轉(zhuǎn)換層固件運(yùn)行時(shí)對(duì)固態(tài)存儲(chǔ)系統(tǒng)運(yùn)行速度的影響。圖6是根據(jù)本發(fā)明實(shí)施例示出的提高閃存芯片內(nèi)部數(shù)據(jù)拷貝速度的方法的流程11圖,其中這些步驟是閃存存儲(chǔ)系統(tǒng)的控制器的微處理器執(zhí)行閃存管理模塊的機(jī)械指令所完成的。必須了解的是,本發(fā)明所提出的提高閃存芯片內(nèi)部數(shù)據(jù)拷貝速度的方法步驟并不限于圖6所示的執(zhí)行順序,本領(lǐng)域技術(shù)人員可根據(jù)本發(fā)明的精神任意更動(dòng)提高閃存芯片內(nèi)部數(shù)據(jù)拷貝速度的方法步驟。實(shí)施例4本發(fā)明實(shí)施例提供另一種提高閃存芯片內(nèi)部數(shù)據(jù)拷貝速度的方法,適用于閃存存儲(chǔ)系統(tǒng)的控制器對(duì)閃存的控制上,其中,該閃存包括多個(gè)閃存芯片,每一閃存芯片具有多個(gè)存儲(chǔ)塊,且每一存儲(chǔ)塊內(nèi)設(shè)有多個(gè)頁面,關(guān)于閃存芯片的具體結(jié)構(gòu)請(qǐng)參考圖2以及上述實(shí)施例的相關(guān)描述。如圖7所示,該方法包括步驟S201:實(shí)時(shí)檢測記錄每一閃存芯片的閃存頁面經(jīng)歷過的編程/擦除次數(shù),并根據(jù)記錄的編程/擦除次數(shù)而估算每一閃存芯片的閃存頁面的最差情況下的噪音容限;步驟S202:根據(jù)所述最差情況下的噪音容限估算每一閃存芯片的閃存頁面當(dāng)前的最大比特錯(cuò)誤率;步驟S203:檢測所有閃存芯片內(nèi)是否存在至少一個(gè)可用的拷貝目標(biāo)頁面,使所述拷貝目標(biāo)頁面當(dāng)前的最大比特錯(cuò)誤率和待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率累加后的比特錯(cuò)誤率能夠?yàn)樗褂玫募m錯(cuò)碼容忍;具體的,在對(duì)任一存儲(chǔ)塊進(jìn)行擦除操作前,需要將該存儲(chǔ)塊中的閃存頁面內(nèi)仍然有效的數(shù)據(jù)(即待拷貝頁面數(shù)據(jù))拷貝到其他存儲(chǔ)塊的可用的頁面內(nèi)(拷貝目標(biāo)頁面,即將待拷貝頁面數(shù)據(jù)所拷貝至的頁面),在選擇拷貝目標(biāo)頁面的時(shí)候,首先獲得所述待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率,并檢測所有閃存芯片內(nèi)是否存在至少一個(gè)可用的拷貝目標(biāo)頁面,使所述拷貝目標(biāo)頁面當(dāng)前的最大比特錯(cuò)誤率和待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率累加后的比特錯(cuò)誤率能夠?yàn)樗褂玫募m錯(cuò)碼容忍(即兩個(gè)頁面的比特錯(cuò)誤率直接累加后也不會(huì)超出糾錯(cuò)碼的糾錯(cuò)能力)。另外,糾錯(cuò)碼的糾錯(cuò)容限由控制器的錯(cuò)誤校正模塊設(shè)定,錯(cuò)誤校正模塊用于對(duì)欲寫入的數(shù)據(jù)產(chǎn)生一組糾錯(cuò)碼并且與此數(shù)據(jù)一同儲(chǔ)存至閃存,其中之后當(dāng)從閃存中讀取此數(shù)據(jù)時(shí)可依據(jù)糾錯(cuò)碼來檢查數(shù)據(jù)是否正確,或者當(dāng)數(shù)據(jù)不正確時(shí)嘗試將錯(cuò)誤的數(shù)據(jù)恢復(fù)為正確的數(shù)據(jù),根據(jù)所使用的糾錯(cuò)碼的糾錯(cuò)強(qiáng)度,判斷待拷貝頁面和拷貝目標(biāo)頁面兩個(gè)頁面的比特錯(cuò)誤率直接累加后也不會(huì)超出糾錯(cuò)碼的糾錯(cuò)能力。而且注意拷貝頁面和拷貝目標(biāo)頁面是屬于不同存儲(chǔ)塊的。步驟S204:若存在至少一個(gè)所述拷貝目標(biāo)頁面,則將待拷貝頁面的數(shù)據(jù)直接讀出并拷貝到任一所述拷貝目標(biāo)頁面內(nèi);步驟S205:若不存在所述拷貝目標(biāo)頁面,則先將待拷貝頁面的數(shù)據(jù)讀出以進(jìn)行糾錯(cuò)碼處理,再將經(jīng)過糾錯(cuò)碼處理后的正確的頁面數(shù)據(jù)拷貝到另一存儲(chǔ)塊的可用的頁面內(nèi)。圖7是根據(jù)本發(fā)明實(shí)施例示出的提高閃存芯片內(nèi)部數(shù)據(jù)拷貝速度的方法的流程圖,其中這些步驟是閃存存儲(chǔ)系統(tǒng)的控制器的微處理器執(zhí)行閃存管理模塊的機(jī)械指令所完成的。必須了解的是,本發(fā)明所提出的提高閃存芯片內(nèi)部數(shù)據(jù)拷貝速度的方法步驟并不限于圖7所示的執(zhí)行順序,本領(lǐng)域技術(shù)人員可根據(jù)本發(fā)明的精神任意更動(dòng)提高閃存芯片內(nèi)部數(shù)據(jù)拷貝速度的方法步驟。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以借助軟件加必須的通用硬件的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件來完成,但很多情況下前1者是更佳的實(shí)施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在可讀取的存儲(chǔ)介質(zhì)中,如計(jì)算機(jī)的軟盤、硬盤或光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以使個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)來執(zhí)行本發(fā)明哥哥實(shí)施例所述的方法。以上所述是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本
技術(shù)領(lǐng)域:
的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也視為本發(fā)明的保護(hù)范圍。權(quán)利要求1.一種提高閃存芯片內(nèi)部數(shù)據(jù)拷貝速度的方法,其中每一閃存芯片具有多個(gè)存儲(chǔ)塊,每個(gè)存儲(chǔ)塊包括多個(gè)頁面,其特征在于,該方法包括步驟檢測待拷貝頁面當(dāng)前的最差情況下的噪音容限,并根據(jù)所述最差情況下的噪音容限獲得所述待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率;檢測所有閃存芯片內(nèi)是否存在至少一個(gè)可用的拷貝目標(biāo)頁面,使所述拷貝目標(biāo)頁面當(dāng)前的最大比特錯(cuò)誤率和待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率累加后的比特錯(cuò)誤率能夠?yàn)樗褂玫募m錯(cuò)碼容忍;若是,則將待拷貝頁面的數(shù)據(jù)直接讀出并拷貝到任一所述拷貝目標(biāo)頁面內(nèi)。2.如權(quán)利要求I所述的提高閃存芯片內(nèi)部數(shù)據(jù)拷貝速度的方法,其特征在于,還包括步驟若不存在所述拷貝目標(biāo)頁面,則先將待拷貝頁面的數(shù)據(jù)讀出以進(jìn)行糾錯(cuò)碼處理,再將經(jīng)過糾錯(cuò)碼處理后的正確的頁面數(shù)據(jù)拷貝到另一可用的頁面內(nèi)。3.如權(quán)利要求I所述的提高閃存芯片內(nèi)部數(shù)據(jù)拷貝速度的方法,其特征在于,通過實(shí)時(shí)記錄閃存內(nèi)每一頁面經(jīng)歷過的編程/擦除次數(shù)而估算每一頁面的最差情況下的噪音容限。4.如權(quán)利要求Γ3中任一項(xiàng)所述的提高閃存芯片內(nèi)部數(shù)據(jù)拷貝速度的方法,其特征在于,所述拷貝目標(biāo)頁面與待拷貝頁面不屬于同一個(gè)存儲(chǔ)塊。5.—種控制器,其特征在于,包括微處理單元;閃存接口,耦接至所述微處理單元以及多個(gè)閃存芯片,其中每一閃存芯片具有多個(gè)存儲(chǔ)塊,每個(gè)存儲(chǔ)塊包括多個(gè)頁面;閃存管理模塊,耦接至所述微處理單元以通過微處理單元對(duì)所述多個(gè)閃存芯片執(zhí)行閃存處理程序,包括檢測待拷貝頁面當(dāng)前的最差情況下的噪音容限,并根據(jù)所述最差情況下的噪音容限獲得所述待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率;檢測所有閃存芯片內(nèi)是否存在至少一個(gè)可用的拷貝目標(biāo)頁面,使所述拷貝目標(biāo)頁面當(dāng)前的最大比特錯(cuò)誤率和待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率累加后的比特錯(cuò)誤率能夠?yàn)樗褂玫募m錯(cuò)碼容忍;若存在至少一個(gè)所述拷貝目標(biāo)頁面,則將待拷貝頁面的數(shù)據(jù)直接讀出并拷貝到任一所述拷貝目標(biāo)頁面內(nèi)。6.如權(quán)利要求5所述的控制器,其特征在于,所述閃存管理模塊還包括執(zhí)行若不存在所述拷貝目標(biāo)頁面,則先將待拷貝頁面的數(shù)據(jù)讀出以進(jìn)行糾錯(cuò)碼處理,再將經(jīng)過糾錯(cuò)碼處理后的正確的頁面數(shù)據(jù)拷貝到另一可用的頁面內(nèi)。7.如權(quán)利要求5所述的控制器,其特征在于,所述閃存管理模塊包括編程/擦除次數(shù)記錄單元,用于實(shí)時(shí)記錄閃存內(nèi)每一頁面經(jīng)歷過的編程/擦除次數(shù);噪音容限估算單元,用于根據(jù)記錄的編程/擦除次數(shù)而估算每一頁面的最差情況下的噪音容限;頁面數(shù)據(jù)存儲(chǔ)錯(cuò)誤率估算單元,用于根據(jù)所述噪音容限估算單元估算的最差情況下的噪音容限而估算每一頁面當(dāng)前的最大比特錯(cuò)誤率;拷貝目標(biāo)頁面選擇單元,用于檢測所有閃存芯片內(nèi)是否存在至少一個(gè)可用的拷貝目標(biāo)頁面,使所述拷貝目標(biāo)頁面當(dāng)前的最大比特錯(cuò)誤率和待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率累加后的比特錯(cuò)誤率能夠?yàn)樗褂玫募m錯(cuò)碼容忍;若存在,則發(fā)出將待拷貝頁面的數(shù)據(jù)直接讀出并拷貝到任一所述拷貝目標(biāo)頁面內(nèi)的命令;否則命令先將待拷貝頁面的數(shù)據(jù)讀出以進(jìn)行糾錯(cuò)碼處理,再將經(jīng)過糾錯(cuò)碼處理后的正確的頁面數(shù)據(jù)拷貝到另一可用的頁面內(nèi)。8.如權(quán)利要求57任一項(xiàng)所述的控制器,其特征在于,所述拷貝目標(biāo)頁面與待拷貝頁面不屬于同一個(gè)存儲(chǔ)塊。9.一種閃存存儲(chǔ)系統(tǒng),其特征在于,包括多個(gè)閃存芯片,每一閃存芯片具有多個(gè)存儲(chǔ)塊,每個(gè)存儲(chǔ)塊包括多個(gè)存儲(chǔ)單元;控制器,耦接至所述多個(gè)閃存芯片以檢測待拷貝頁面當(dāng)前的最差情況下的噪音容限,并根據(jù)所述最差情況下的噪音容限獲得所述待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率;檢測所有閃存芯片內(nèi)是否存在至少一個(gè)可用的拷貝目標(biāo)頁面,使所述拷貝目標(biāo)頁面當(dāng)前的最大比特錯(cuò)誤率和待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率累加后的比特錯(cuò)誤率能夠?yàn)樗褂玫募m錯(cuò)碼容忍;若是,則將待拷貝頁面的數(shù)據(jù)直接讀出并拷貝到任一所述拷貝目標(biāo)頁面內(nèi)。10.如權(quán)利要求9所述的閃存存儲(chǔ)系統(tǒng),其特征在于,所述控制器還包括執(zhí)行若不存在所述拷貝目標(biāo)頁面,則先將待拷貝頁面的數(shù)據(jù)讀出以進(jìn)行糾錯(cuò)碼處理,再將經(jīng)過糾錯(cuò)碼處理后的正確的頁面數(shù)據(jù)拷貝到另一可用的頁面內(nèi)。全文摘要本發(fā)明公開了一種提高閃存芯片內(nèi)部數(shù)據(jù)拷貝速度的方法,其中每一閃存芯片具有多個(gè)存儲(chǔ)塊,每個(gè)存儲(chǔ)塊包括多個(gè)頁面,該方法包括步驟檢測待拷貝頁面當(dāng)前的最差情況下的噪音容限,并根據(jù)所述最差情況下的噪音容限獲得所述待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率;檢測所有閃存芯片內(nèi)是否存在至少一個(gè)可用的拷貝目標(biāo)頁面,使所述拷貝目標(biāo)頁面當(dāng)前的最大比特錯(cuò)誤率和待拷貝頁面當(dāng)前的最大比特錯(cuò)誤率累加后的比特錯(cuò)誤率能夠?yàn)樗褂玫募m錯(cuò)碼容忍;若是,則將待拷貝頁面的數(shù)據(jù)直接讀出并拷貝到任一所述拷貝目標(biāo)頁面內(nèi)。本發(fā)明還公開了一種閃存存儲(chǔ)系統(tǒng)及其控制器。本發(fā)明能夠有效地利用閃存芯片存儲(chǔ)單元的工作特性來降低轉(zhuǎn)換層固件運(yùn)行時(shí)對(duì)固態(tài)存儲(chǔ)系統(tǒng)運(yùn)行速度的影響,且實(shí)現(xiàn)過程簡單、易行。文檔編號(hào)G06F11/08GK102915277SQ20121039444公開日2013年2月6日申請(qǐng)日期2012年10月17日優(yōu)先權(quán)日2012年10月17日發(fā)明者張彤,鄒粵林申請(qǐng)人:鄒粵林