專利名稱:具數(shù)據(jù)修正功能的閃存儲存裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種閃存儲存裝置,特別指一種在對閃存執(zhí)行復(fù)制回
存(CopyBack)指令與作業(yè)時(shí),能對數(shù)據(jù)進(jìn)行修正的閃存儲存裝置。
背景技術(shù):
近幾年來,由于NAND閃存具有成本低、讀寫速度快、省電及可 靠度高等優(yōu)點(diǎn),因而廣泛地被應(yīng)用在消費(fèi)型電子產(chǎn)品作為儲存媒體使用。
而由于NAND型閃存在讀寫單位容量及抹除單位容量實(shí)際上是不 同的,因而必須透過特殊的方式(一般稱為閃存文件系統(tǒng)(Flash File System, FFS))來分配與管理NAND型閃存的儲存空間。其中,讀寫單 位容量是記憶頁(Page),而抹除單位容量則是記憶區(qū)塊(Block),并且記 憶區(qū)塊容量較大,通常包含32或64個(gè)記憶頁。另外,NAND型閃存 在更新數(shù)據(jù)時(shí),其記憶單元必須經(jīng)過抹除以后,才能寫入新的數(shù)據(jù), 如此一來,在沒有同時(shí)更新一個(gè)記憶區(qū)塊內(nèi)的所有記憶頁的數(shù)據(jù)時(shí), 就必須將并未更新而仍舊有效的數(shù)據(jù),從即將被抹除的記憶區(qū)塊復(fù)制 到新的記憶區(qū)塊。
為了提高數(shù)據(jù)從NAND型閃存內(nèi)的來源記憶區(qū)塊(Source Memory Block)復(fù)制到目標(biāo)記憶區(qū)塊(Target Memory Block)的速度,NAND型閃 存提供了新的控制指令與通訊協(xié)定,讓原本記錄在NAND型閃存的記 憶單元的數(shù)據(jù),先讀取到NAND型閃存內(nèi)的記憶頁緩沖區(qū)(Page Buffer) 后,在不需將數(shù)據(jù)傳送到NAND型閃存外的控制器的情況下,便可重 新傳回NAND型閃存的記憶單元的其他位置。亦即,可以先執(zhí)行讀取 記憶頁(Read Page)的指令,然后再執(zhí)行寫入記憶頁(Write Page)的指令 (俗稱燒錄(Program)指令),以直接將記憶頁緩沖區(qū)內(nèi)所保存的數(shù)據(jù)重新 記錄到NAND型閃存的記憶單元的其他位置,而且每次可直接復(fù)制一 個(gè)記憶頁的數(shù)據(jù)。而這項(xiàng)指令與通訊協(xié)定,即被稱為復(fù)制回存(Copy Back)指令與作業(yè)。
而由于NAND型閃存的記憶單元的保存數(shù)據(jù)可靠度有限,因此 NAND型閃存廠商通常會在規(guī)格書中提出建議采用的錯誤檢查碼 (Error Correction Code, ECC)的強(qiáng)度。例如,若建議的ECC強(qiáng)度為 lbit/512Byte時(shí),即表示每512個(gè)位元組若有1個(gè)位元的數(shù)據(jù)發(fā)生錯誤,并且加以修正。
值得注意的是,在控制器對NAND型閃存執(zhí)行復(fù)制回存作業(yè)時(shí), 由于記錄在記憶單元中的數(shù)據(jù),并未傳送到NAND型閃存外,也就是 不會經(jīng)由控制器來進(jìn)行錯誤檢查。因此,原本存放在NAND型閃存內(nèi) 的數(shù)據(jù)若發(fā)生錯誤,經(jīng)過該復(fù)制回存指令復(fù)制到其他位置時(shí),錯誤的 數(shù)據(jù)將會直接從來源記憶頁被復(fù)制到新的目標(biāo)記憶頁的位置,而不會 經(jīng)過偵測錯誤與修正的程序。
為了克服這項(xiàng)問題,現(xiàn)有技術(shù)提出了在完成復(fù)制回存作業(yè)后,控 制器會進(jìn)一步透過讀取記憶頁的指令來讀取已復(fù)制到新的目標(biāo)記憶頁 內(nèi)的數(shù)據(jù),以進(jìn)行ECC的檢査而確定數(shù)據(jù)的正確性。并且在偵測到數(shù) 據(jù)發(fā)生錯誤的時(shí)候,放棄己經(jīng)完成復(fù)制的數(shù)據(jù),并進(jìn)行修正。
然而此一現(xiàn)有技術(shù),雖能在完成復(fù)制回存作業(yè)后,發(fā)現(xiàn)數(shù)據(jù)錯誤 并采取修正作業(yè)。但是,由于數(shù)據(jù)已經(jīng)自來源記憶頁復(fù)制到目標(biāo)記憶 頁,致使錯誤數(shù)據(jù)已占用了目標(biāo)記憶頁。因而必須再將已經(jīng)復(fù)制到目 標(biāo)記憶區(qū)塊內(nèi)的所有有效數(shù)據(jù),重新復(fù)制到其他記憶區(qū)塊,能將已存 放錯誤數(shù)據(jù)的目標(biāo)記憶區(qū)塊予以抹除。于是,在發(fā)生數(shù)據(jù)錯誤的情況 下,將會額外產(chǎn)生許多延遲的時(shí)間與修正處理作業(yè),以致嚴(yán)重影響到 利用復(fù)制回存來提升數(shù)據(jù)寫入與更新速度的效果及目的。
而為了克服此項(xiàng)問題,目前業(yè)界更提出了一種新的控制器作業(yè)模 式,其是在執(zhí)行復(fù)制回存指令的作業(yè)流程中,可以在將NAND型閃存 的記憶單元中的數(shù)據(jù)讀取存放到NAND型閃存內(nèi)的記憶頁緩沖區(qū)后, 控制器可以先將記憶頁緩沖區(qū)內(nèi)的數(shù)據(jù)讀取出來,檢査其正確性,并 于發(fā)現(xiàn)錯誤時(shí),對記憶頁緩沖區(qū)內(nèi)的錯誤數(shù)據(jù)進(jìn)行修正,然后才再將 記憶頁緩沖區(qū)內(nèi)經(jīng)過修正的數(shù)據(jù)燒錄(Progmm)到記憶單元中的新的位 置。
但是,上述現(xiàn)有作業(yè)流程雖可修正來源數(shù)據(jù)內(nèi)的錯誤,確保復(fù)制 回存作業(yè)將正確的數(shù)據(jù)燒錄到新的位置。然而,當(dāng)發(fā)現(xiàn)錯誤而進(jìn)行修 正時(shí),則需由控制器透過ECC檢查碼偵測數(shù)據(jù)發(fā)生錯誤的位置,并逐 一將錯誤予以修正。由于發(fā)生錯誤的位置不一定連續(xù),為了改變修正 錯誤數(shù)據(jù)的位置,必須逐一透過輸入指令、數(shù)據(jù)位址與正確數(shù)據(jù)的方 式,來完成修正NAND型閃存的記憶頁緩沖區(qū)內(nèi)的錯誤數(shù)據(jù)。于是, 在錯誤數(shù)據(jù)較多狀況下,則需要許多額外的作業(yè)時(shí)間,致使同樣無法 有效達(dá)到縮短作業(yè)時(shí)間的功效。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明所要解決的技術(shù)問題在于,借助閃存控制器的 改良,以改變閃存控制器對閃存所執(zhí)行的復(fù)制回存(Copy Back)指令及作業(yè)的程序。借此,可依據(jù)來源記憶頁所儲存的數(shù)據(jù)內(nèi)容是否發(fā)生錯 誤,以及發(fā)生錯誤的數(shù)量,而選擇不同的處理方式來處理。進(jìn)而達(dá)到 確保閃存儲存數(shù)據(jù)的可靠度以及提升閃存控制器的存取速度的目的。
為了達(dá)到上述目的,本發(fā)明提供一種具數(shù)據(jù)修正功能的閃存儲存 裝置,包括 一閃存,具有至少一記憶單元及一記憶頁緩沖區(qū); 一傳 輸緩沖區(qū),用以暫存對該記憶頁緩沖區(qū)存取的數(shù)據(jù); 一錯誤修正單元, 連接該傳輸緩沖區(qū),用以依據(jù)一錯誤檢査碼來檢測及修正該傳輸緩沖 區(qū)中的數(shù)據(jù),并產(chǎn)生一檢測結(jié)果;及一修正信息暫存器,連接該錯誤 修正單元,用以暫存該檢測結(jié)果。
換句話說,根據(jù)本發(fā)明所提出的一方案,提供一種具數(shù)據(jù)修正功 能的閃存儲存裝置,其在對一閃存執(zhí)行一復(fù)制回存程序時(shí),進(jìn)行該數(shù) 據(jù)修正功能,其中該閃存具有至少一記憶單元及一記憶頁緩沖區(qū)(Page Buffer),而該閃存控制器包括 一傳輸緩沖區(qū)、 一錯誤修正單元、一 修正信息暫存器及一微處理單元。其中,傳輸緩沖區(qū)是用以暫存對該 記憶頁緩沖區(qū)存取的數(shù)據(jù),錯誤修正單元連接傳輸緩沖區(qū),用以依據(jù) 一錯誤檢查碼(ECC)來檢測及修正該傳輸緩沖區(qū)中的數(shù)據(jù),并產(chǎn)生一檢 測結(jié)果。而修正信息暫存器連接錯誤修正單元,用以暫存該檢測結(jié)果。 最后,微處理單元在對該閃存產(chǎn)生一復(fù)制記憶頁的讀取指令之后,讀 取該記憶頁緩沖區(qū)中的數(shù)據(jù)而暫存至該傳輸緩沖區(qū),并控制該錯誤修 正單元及該修正信息暫存器進(jìn)行運(yùn)作,進(jìn)而該微處理單元再依據(jù)該檢 測結(jié)果中的一數(shù)據(jù)錯誤數(shù)量來產(chǎn)生相異的一燒錄指令,以將該修正后 的數(shù)據(jù)燒錄至該記憶單元。
為了達(dá)到上述目的,根據(jù)本發(fā)明所提出的另一方案,提供一種閃 存控制器的數(shù)據(jù)修正方法,其應(yīng)用在對一閃存執(zhí)行一復(fù)制回存程序, 該閃存具有至少一記憶單元及一記憶頁緩沖區(qū),而該數(shù)據(jù)修正方法的 步驟包括首先,對該閃存產(chǎn)生一復(fù)制記憶頁的讀取指令,并讀取該 記憶頁緩沖區(qū)的數(shù)據(jù)至一傳輸緩沖區(qū),接著進(jìn)行檢測及修正該傳輸緩 沖區(qū)的數(shù)據(jù),并取得一檢測結(jié)果。進(jìn)而依據(jù)該檢測結(jié)果的一數(shù)據(jù)錯誤 數(shù)量來產(chǎn)生相異的一燒錄指令,以將該修正后的數(shù)據(jù)燒錄至該記憶單 元。
綜上所述,本發(fā)明主要是改變閃存控制器對閃存所執(zhí)行的復(fù)制回 存(Copy Back)程序。借此,能夠提高閃存控制器執(zhí)行復(fù)制回存程序時(shí) 的效能,省時(shí)又能確保數(shù)據(jù)復(fù)制后的正確性。此外,更重要的是本發(fā) 明能依據(jù)讀取來源記憶頁所保存數(shù)據(jù)內(nèi)容是否發(fā)生錯誤,以及發(fā)生錯 誤的數(shù)量,選擇較佳的處理方式,確實(shí)改善閃存儲存數(shù)據(jù)的可靠度與 存取速度的功效。
以上的概述與接下來的詳細(xì)說明及附圖,皆是為了能進(jìn)一步說明本發(fā)明為達(dá)成預(yù)定目的所采取的方式、手段及功效。而有關(guān)本發(fā)明的 其他目的及優(yōu)點(diǎn),將在后續(xù)的說明及附圖中加以闡述。
圖1為本發(fā)明具數(shù)據(jù)修正功能的閃存控制器的實(shí)施例方塊圖;及 圖2為本發(fā)明閃存控制器的數(shù)據(jù)修正方法的實(shí)施例流程圖。附圖標(biāo)記說明
閃存控制器1 內(nèi)存接口單元11
傳輸緩沖區(qū)12 錯誤修正單元13 修正信息暫存器14 微處理單元15 閃存2 記憶單元21 記憶頁緩沖區(qū)22 接口控制單元2具體實(shí)施例方式
本發(fā)明是設(shè)計(jì)出一種具數(shù)據(jù)修正功能的閃存控制器及其數(shù)據(jù)修正 方法,其主要是改變閃存控制器對閃存所執(zhí)行的復(fù)制回存(Copy Back) 程序。借此,可依據(jù)來源記憶頁所儲存的數(shù)據(jù)內(nèi)容是否發(fā)生錯誤,以 及發(fā)生錯誤的數(shù)量,而選擇不同的處理方式來處理。進(jìn)而達(dá)到確保閃 存儲存數(shù)據(jù)的可靠度以及提升閃存控制器的存取速度的目的。而其中 關(guān)于復(fù)制回存程序的運(yùn)作原理是本領(lǐng)域技術(shù)人員所能了解的技術(shù),在 之后的實(shí)施例說明時(shí),就不加以贅述。
請參考圖1,為本發(fā)明具數(shù)據(jù)修正功能的閃存控制器的實(shí)施例方 塊圖。如圖所示,本實(shí)施例提供一種具數(shù)據(jù)修正功能的閃存控制器1, 其是可例如應(yīng)用在具備獨(dú)立功能,并且以閃存2作為儲存媒體的應(yīng)用 裝置,(如多媒體裝置、個(gè)人數(shù)字助理、多功能移動電話、筆記型電 腦、工業(yè)型電腦及POS機(jī)器等);亦可例如是應(yīng)用在采用閃存2作為儲 存媒體的儲存裝置,(如固態(tài)磁碟機(jī)(SSD)、隨身碟或記憶卡等裝置)。 并且在對閃存2執(zhí)行一復(fù)制回存程序時(shí),進(jìn)行該數(shù)據(jù)修正功能。
其中的閃存2是例如為目前最為普遍使用的NAND閃存(NAND Flash)。而在支援復(fù)制回存程序的閃存2中是具有至少一記憶單元21、 一記憶頁緩沖區(qū)(Page Buffer)22及一接口控制單元23。其中,記憶單 元21是用來存放使用者所儲存的數(shù)據(jù),而記憶頁緩沖區(qū)22是用以存放自記憶單元21所讀取的記憶頁數(shù)據(jù),以及在燒錄時(shí),是用以存放即
將燒錄至記憶單元21的數(shù)據(jù)。而接口控制單元23則是作為閃存2的 對外連接接口,并且控制記憶單元21及記憶頁緩沖區(qū)22的運(yùn)作。
而本實(shí)施例的閃存控制器1是包括 一內(nèi)存接口單元ll、 一傳輸
緩沖區(qū)12、 一錯誤修正單元13、 一修正信息暫存器14及一微處理單 元15。其中,內(nèi)存接口單元11是用以連接閃存2的接口控制單元23, 并且接收微處理單元15的控制而作為存取閃存2的接口 。
傳輸緩沖區(qū)12是連接內(nèi)存接口單元11,用以暫存對閃存2的記憶 頁緩沖區(qū)22存取的數(shù)據(jù)。以實(shí)際運(yùn)作來講,當(dāng)閃存2中的記憶單元21 有數(shù)據(jù)需更新時(shí),閃存控制器1會對閃存2執(zhí)行復(fù)制回存程序,使得 閃存2中的記憶頁緩沖區(qū)22會先自記憶單元21中讀取所欲進(jìn)行更新 的一來源記憶頁的數(shù)據(jù)。于是,此時(shí)的傳輸緩沖區(qū)12即是用來暫存讀 取自記憶頁緩沖區(qū)22中所存放的數(shù)據(jù)。
錯誤修正單元13是連接傳輸緩沖區(qū)12,用以依據(jù)一錯誤檢查碼 (ECC)來檢測及修正傳輸緩沖區(qū)12中的數(shù)據(jù),并且產(chǎn)生一檢測結(jié)果。 其中檢測結(jié)果可例如是包含有數(shù)據(jù)錯誤數(shù)量、數(shù)據(jù)錯誤位置、修正數(shù) 據(jù)及其修正指令等。修正信息暫存器14是連接錯誤修正單元13,用以 暫存檢測結(jié)果,并提供給微處理單元15進(jìn)行處理。而附帶一提的是, 錯誤修正單元13針對傳輸緩沖區(qū)12中的數(shù)據(jù),必須實(shí)際經(jīng)過檢測及 進(jìn)行修正之后,才可真正取得數(shù)據(jù)錯誤數(shù)量。
微處理單元15則是在執(zhí)行復(fù)制回存程序而對閃存2產(chǎn)生一復(fù)制記 憶頁的讀取指令之后,透過內(nèi)存接口單元11進(jìn)行讀取記憶頁緩沖區(qū)22 中的數(shù)據(jù)而暫存至傳輸緩沖區(qū)12。并且微處理單元15此時(shí)再控制錯誤 修正單元13及修正信息暫存器14的運(yùn)作,以進(jìn)一步依據(jù)該檢測結(jié)果 中的數(shù)據(jù)錯誤數(shù)量來產(chǎn)生相異的一燒錄指令,進(jìn)而得以將修正后的數(shù) 據(jù)燒錄至記憶單元21的一目標(biāo)記憶頁,以完成所謂的數(shù)據(jù)更新。
而進(jìn)一步說明的是,在實(shí)際設(shè)計(jì)上,微處理單元15是進(jìn)一步利用 一第一臨界值及一第二臨界值來判斷該數(shù)據(jù)錯誤數(shù)量,以產(chǎn)生不同的 燒錄指令。
其中,第一臨界值在設(shè)計(jì)上是以錯誤修正單元13的錯誤檢查碼的 錯誤修正能力值,及閃存2出廠的一建議修正值之間的差異來設(shè)計(jì)。 例如若閃存2出廠的規(guī)格建議是采用1 bit/512 Byte的錯誤檢查碼, 而錯誤修正單元13所采用的錯誤檢査碼的修正能力值是例如為4 bit/512 Byte時(shí),則第一臨界值的數(shù)值大小即為3 bit/512 Byte。此一臨 界值亦即表示可以容許記憶單元21的來源記憶頁的數(shù)據(jù)發(fā)生3 bit/512 Byte的錯誤,而直接忽略不加以修正。又例如若閃存2出廠的規(guī)格 建議是采用8 bit/512 Byte的錯誤檢査碼,而錯誤修正單元13所采用的錯誤檢查碼的修正能力值是例如為12 bit/512 Byte時(shí),則第一臨界值的 數(shù)值大小即為4 bit/512 Byte,表示可以容許記憶單元21的來源記憶頁 的數(shù)據(jù)發(fā)生4 bit/512 Byte的錯誤,而直接忽略不加以修正。
而第二臨界值在設(shè)計(jì)上是依據(jù)微處理單元15將傳輸緩沖區(qū)12中 的數(shù)據(jù)整個(gè)傳入記憶頁緩沖區(qū)22所需時(shí)間,除以微處理單元15對記 憶頁緩沖區(qū)22直接修正一筆數(shù)據(jù)所需時(shí)間的商數(shù)值來設(shè)計(jì)。例如若 微處理單元15直接對記憶頁緩沖區(qū)22修正一筆錯誤數(shù)據(jù)所需的時(shí)間 為10微秒(10us)(因?yàn)槊看涡拚e誤數(shù)據(jù)均需重新傳入控制指令與修正 錯誤的位置,然后才輸入修正的數(shù)據(jù),因而需要較長時(shí)間);而微處理 單元15將傳輸緩沖區(qū)12中的整個(gè)記憶頁的數(shù)據(jù)傳入記憶頁緩沖區(qū)22 所需的時(shí)間為100微秒(100us)。此時(shí)第二臨界值即是設(shè)計(jì)為100/10=10, 也就是當(dāng)數(shù)據(jù)錯誤的數(shù)量超過IO筆時(shí),即是高于第二臨界值。換句話 說,當(dāng)數(shù)據(jù)錯誤數(shù)量高于第二臨界值時(shí),則透過將傳輸緩沖區(qū)12中的 整個(gè)記憶頁的數(shù)據(jù)傳入記憶頁緩沖區(qū)22所需的時(shí)間,會比直接對記憶 頁緩沖區(qū)22逐筆進(jìn)行數(shù)據(jù)修正所需的時(shí)間要快;反之,當(dāng)數(shù)據(jù)錯誤數(shù) 量低于第二臨界值時(shí),則透過將傳輸緩沖區(qū)12中的整個(gè)記憶頁的數(shù)據(jù) 傳入記憶頁緩沖區(qū)22所需的時(shí)間,則會比直接對記憶頁緩沖區(qū)22逐 筆進(jìn)行數(shù)據(jù)修正所需的時(shí)間要慢。
于是,微處理單元15利用第一臨界值及第二臨界值來判斷數(shù)據(jù)錯 誤數(shù)量之后,所可能產(chǎn)生的狀況如下首先,當(dāng)微處理單元15判斷數(shù) 據(jù)錯誤數(shù)量是低于等于第一臨界值時(shí),則表示自記憶頁緩沖區(qū)22所讀 取的數(shù)據(jù)是完全正確或者是發(fā)生可以容許的錯誤數(shù)量,而可以直接忽 略。因此,微處理單元15便直接產(chǎn)生復(fù)制記憶頁的燒錄指令,以指定 記憶單元21中的目標(biāo)記憶頁的位置,并進(jìn)而執(zhí)行一開始燒錄指令,以 直接將記憶頁緩沖區(qū)22中的不需經(jīng)過修正的數(shù)據(jù)燒錄至記憶單元21 的目標(biāo)記憶頁。
而當(dāng)微處理單元15判斷數(shù)據(jù)錯誤數(shù)量是高于第一臨界值且低于 等于第二臨界值時(shí),則表示數(shù)據(jù)錯誤的數(shù)量不可徑行忽略,而且透過 將傳輸緩沖區(qū)12中的整個(gè)記憶頁的數(shù)據(jù)傳入記憶頁緩沖區(qū)22所需的 時(shí)間,會比直接對記憶頁緩沖區(qū)22逐筆進(jìn)行數(shù)據(jù)修正所需的時(shí)間要慢。 因此,微處理單元15會直接產(chǎn)生復(fù)制記憶頁的燒錄指令,以指定記憶 單元21中的目標(biāo)記憶頁的位置,并進(jìn)一步依據(jù)該檢測結(jié)果來下達(dá)修正 指令、指令修正位置與輸入修正數(shù)據(jù)以逐一修正記憶頁緩沖區(qū)22中的 數(shù)據(jù)。并且隨后即產(chǎn)生該開始燒錄指令來將記憶頁緩沖區(qū)22中的修正 后的數(shù)據(jù)燒錄至記憶單元21的目標(biāo)記憶頁的位置。
另外,當(dāng)微處理單元15判斷數(shù)據(jù)錯誤數(shù)量是高于第二臨界值,并 且是屬于在錯誤修正單元13的錯誤修正能力值以內(nèi)時(shí),則表示數(shù)據(jù)錯
9誤的數(shù)量同樣不可徑行忽略,而且透過將傳輸緩沖區(qū)12中的整個(gè)記憶
頁的數(shù)據(jù)傳入記憶頁緩沖區(qū)22所需的時(shí)間,會比直接對記憶頁緩沖區(qū) 22逐筆進(jìn)行數(shù)據(jù)修正所需的時(shí)間要快。因此,微處理單元15是產(chǎn)生一 基本燒錄指令,以指定記憶單元21中的目標(biāo)記憶頁的位置,而將傳輸 緩沖區(qū)12中已修正的數(shù)據(jù)整個(gè)傳入記憶頁緩沖區(qū)22,并且進(jìn)而產(chǎn)生該 開始燒錄指令來將記憶頁緩沖區(qū)22中的修正后的數(shù)據(jù)燒錄至記憶單元 21的目標(biāo)記憶頁的位置。
當(dāng)然,還有另一種狀況,就是當(dāng)微處理單元15判斷數(shù)據(jù)錯誤數(shù)量 是高于第二臨界值,并且也超出錯誤修正單元13的錯誤修正能力值時(shí), 則表示錯誤修正單元13無法依據(jù)錯誤修正碼來將發(fā)生錯誤的數(shù)據(jù)予以 修正。也就是表示此時(shí)已確定無法將正確的數(shù)據(jù)復(fù)制到目標(biāo)記憶頁的 位置。因此微處理單元15是會另外執(zhí)行一錯誤處理程序,如傳回錯 誤碼、標(biāo)示不良區(qū)塊等作業(yè),并結(jié)束復(fù)制回存程序。然而,此一狀況, 并非用來限制本發(fā)明的數(shù)據(jù)修正功能,而是讓整個(gè)閃存控制器1能因 應(yīng)各個(gè)狀況的產(chǎn)生。
如此一來,閃存控制器1便可依據(jù)來源記憶頁所儲存的數(shù)據(jù)內(nèi)容 是否發(fā)生錯誤,以及數(shù)據(jù)錯誤的數(shù)量,而自動選擇不同的處理方式來 處理,以在各種狀況產(chǎn)生時(shí),閃存控制器1皆可保持一定的存取速度。
為了進(jìn)一步說明本發(fā)明的詳細(xì)運(yùn)作流程,請?jiān)賲⒖紙D2,為本發(fā) 明閃存控制器的數(shù)據(jù)修正方法的實(shí)施例流程圖。如圖所示,本實(shí)施例 提供一種閃存1的數(shù)據(jù)修正方法,其步驟包括首先,當(dāng)閃存2中的 記憶單元21發(fā)生數(shù)據(jù)更新的情形時(shí),閃存控制器1會對閃存2開始執(zhí) 行復(fù)制回存程序(S201),并且產(chǎn)生一復(fù)制記憶頁的讀取指令(S203),以 讓閃存2中的記憶頁緩沖區(qū)22進(jìn)行讀取記憶單元21中所欲進(jìn)行數(shù)據(jù) 更新的來源記憶頁的數(shù)據(jù)。
接著,便進(jìn)行讀取記憶頁緩沖區(qū)22的數(shù)據(jù)至一傳輸緩沖區(qū) 12(S205)。并且緊接著進(jìn)行檢測傳輸緩沖區(qū)12的數(shù)據(jù)是否發(fā)生錯誤 (S207)。若傳輸緩沖區(qū)12的數(shù)據(jù)發(fā)生錯誤時(shí),則進(jìn)行修正傳輸緩沖區(qū) 12的數(shù)據(jù),以取得一檢測結(jié)果(S209),并且進(jìn)一步進(jìn)行判斷該檢測結(jié) 果中的一數(shù)據(jù)錯誤數(shù)量是否超出閃存控制器1的一錯誤能力修正值 (S211),以確認(rèn)是否可以將發(fā)生錯誤的數(shù)據(jù)進(jìn)行修正。
若步驟(S211)的判斷結(jié)果為否,則表示閃存控制器1可以進(jìn)行修正 數(shù)據(jù)的動作,于是進(jìn)一步進(jìn)行判斷數(shù)據(jù)錯誤數(shù)量是否高于一第一臨界 值(S213)。此時(shí),若數(shù)據(jù)錯誤數(shù)量是低于等于第一臨界值,則表示記憶 頁緩沖區(qū)22所讀取的數(shù)據(jù)發(fā)生可以容許的錯誤數(shù)量,而可以直接忽略。 因此,閃存控制器1便直接產(chǎn)生一復(fù)制記憶頁的燒錄指令,以指定記 憶單元21中的目標(biāo)記憶頁的位置(S215),并表示可以直接將原本的記憶頁緩沖區(qū)22中,未經(jīng)修正的數(shù)據(jù)燒錄至記憶單元21。而同樣的在步 驟(S207)的檢測結(jié)果為否時(shí),則表示記憶頁緩沖區(qū)22所讀取的數(shù)據(jù)是 完全正確,于是同樣不需經(jīng)過修正,而可以直接執(zhí)行步驟(S215)來產(chǎn)生 復(fù)制記憶頁的燒錄指令。
另外,若步驟(S213)的判斷結(jié)果為是時(shí),則會進(jìn)一步進(jìn)行判斷數(shù) 據(jù)錯誤數(shù)量是否高于一第二臨界值(S217)。此時(shí),若步驟(S217)的判斷 結(jié)果為否時(shí),則表示數(shù)據(jù)錯誤的數(shù)量不可徑行忽略,并且透過將傳輸 緩沖區(qū)12中的整個(gè)記憶頁的數(shù)據(jù)傳入記憶頁緩沖區(qū)22所需的時(shí)間, 會比直接對記憶頁緩沖區(qū)22逐筆進(jìn)行數(shù)據(jù)修正所需的時(shí)間要慢。因此, 閃存控制器1會直接產(chǎn)生復(fù)制記憶頁的燒錄指令,以指定記憶單元21 中的目標(biāo)記憶頁的位置,并進(jìn)一步依據(jù)該檢測結(jié)果來下達(dá)修正指令、 指令修正位置與輸入修正數(shù)據(jù)以逐一修正記憶頁緩沖區(qū)22中的數(shù)據(jù) (S219)。
而若步驟(S217)的判斷結(jié)果為是時(shí),則表示數(shù)據(jù)錯誤的數(shù)量同樣 不可徑行忽略,而且透過將傳輸緩沖區(qū)12中的整個(gè)記憶頁的數(shù)據(jù)傳入 記憶頁緩沖區(qū)22所需的時(shí)間,會比直接對記憶頁緩沖區(qū)22逐筆進(jìn)行 數(shù)據(jù)修正所需的時(shí)間要快。因此,閃存控制器1會產(chǎn)生一基本燒錄指 令,以指定記憶單元21中的目標(biāo)記憶頁的位置,進(jìn)而將傳輸緩沖區(qū)12 中已修正的數(shù)據(jù)整個(gè)傳入記憶頁緩沖區(qū)22(S221)。
而在步驟(S215)、步驟(S219)或步驟(S221)之后,閃存控制器1實(shí) 際會再產(chǎn)生一開始燒錄指令(S223),以開始將記憶頁緩沖區(qū)22中的數(shù) 據(jù)依據(jù)上述步驟中所指定的目標(biāo)記憶頁的位置而進(jìn)行燒錄寫入。如此 一來,便可完成對記憶單元21的數(shù)據(jù)更新,并且結(jié)束復(fù)制回存程序 (S225)。
最后,若步驟(S211)的判斷結(jié)果判斷出數(shù)據(jù)錯誤數(shù)量已經(jīng)超出閃存 控制器1的錯誤能力修正值時(shí),即表示閃存控制器1是無法將發(fā)生錯 誤的數(shù)據(jù)予以修正,也就是確定無法將正確的數(shù)據(jù)復(fù)制到目標(biāo)記憶頁 的位置。于是便會執(zhí)行一錯誤處理程序(S227),并直接結(jié)束復(fù)制回存程序。
綜上所述,本發(fā)明主要是改變閃存控制器對閃存所執(zhí)行的復(fù)制回 存(C叩y Back)程序。借此,能夠提高閃存控制器執(zhí)行復(fù)制回存程序時(shí) 的效能,省時(shí)又能確保數(shù)據(jù)復(fù)制后的正確性。此外,更重要的是本發(fā) 明能依據(jù)讀取來源記憶頁所保存數(shù)據(jù)內(nèi)容是否發(fā)生錯誤,以及發(fā)生錯 誤的數(shù)量,選擇較佳的處理方式,確實(shí)改善閃存儲存數(shù)據(jù)的可靠度與 存取速度的功效。
但,以上所述,僅為本發(fā)明的具體實(shí)施例的詳細(xì)說明及附圖而已, 并非用以限制本發(fā)明,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求書的范圍為準(zhǔn),
11任何本領(lǐng)域技術(shù)人員在本發(fā)明的領(lǐng)域內(nèi),可輕易思及的變化或修飾皆 可涵蓋在本案所界定的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種具數(shù)據(jù)修正功能的閃存儲存裝置,其特征在于,包括一閃存,具有至少一記憶單元及一記憶頁緩沖區(qū);一傳輸緩沖區(qū),用以暫存對該記憶頁緩沖區(qū)存取的數(shù)據(jù);一錯誤修正單元,連接該傳輸緩沖區(qū),用以依據(jù)一錯誤檢查碼來檢測及修正該傳輸緩沖區(qū)中的數(shù)據(jù),并產(chǎn)生一檢測結(jié)果;及一修正信息暫存器,連接該錯誤修正單元,用以暫存該檢測結(jié)果。
2、 如權(quán)利要求1所述的具數(shù)據(jù)修正功能的閃存儲存裝置,其特征 在于,所述的閃存為NAND閃存。
3、 如權(quán)利要求1所述的具數(shù)據(jù)修正功能的閃存儲存裝置,其特征 在于,更包括一微處理單元,該微處理單元工作是在對該閃存產(chǎn)生一 復(fù)制記憶頁的讀取指令之后,讀取該記憶頁緩沖區(qū)中的數(shù)據(jù)而暫存至 該傳輸緩沖區(qū),并控制該錯誤修正單元及該修正信息暫存器進(jìn)行運(yùn)作, 進(jìn)而依據(jù)該檢測結(jié)果中的一數(shù)據(jù)錯誤數(shù)量來產(chǎn)生相應(yīng)的一燒錄指令, 以將該修正后的數(shù)據(jù)燒錄至該記憶單元。
4、 如權(quán)利要求3所述的具數(shù)據(jù)修正功能的閃存儲存裝置,其特征在于,所述的微處理單元進(jìn)一步利用一第一臨界值及一第二臨界值來 判斷該數(shù)據(jù)錯誤數(shù)量,以產(chǎn)生相應(yīng)的該燒錄指令。
5、 如權(quán)利要求4所述的具數(shù)據(jù)修正功能的閃存儲存裝置,其特征 在于,所述的第一臨界值是以該錯誤修正單元的一錯誤修正能力值, 及該閃存的一建議修正值之間的差異值來設(shè)計(jì),該第二臨界值是依據(jù) 該微處理單元將該傳輸緩沖區(qū)中的整個(gè)記憶頁數(shù)據(jù)傳入該記憶頁緩沖 區(qū)所需時(shí)間,除以該微處理單元對該記憶頁緩沖區(qū)修正一筆數(shù)據(jù)所需 時(shí)間的商數(shù)值來設(shè)計(jì)。
6、 如權(quán)利要求4所述的具數(shù)據(jù)修正功能的閃存儲存裝置,其特征 在于,所述的微處理單元判斷該數(shù)據(jù)錯誤數(shù)量高于該第一臨界值且低 于等于該第二臨界值時(shí),進(jìn)一步依據(jù)該檢測結(jié)果來逐一修正該記憶頁 緩沖區(qū)中的數(shù)據(jù),進(jìn)而將該記憶頁緩沖區(qū)中的修正后的數(shù)據(jù)燒錄至該 記憶單元。
7、 如權(quán)利要求6所述的具數(shù)據(jù)修正功能的閃存儲存裝置,其特征 在于,所述的微處理單元判斷該數(shù)據(jù)錯誤數(shù)量高于該第二臨界值且在該錯誤修正單元的錯誤修正能力值以內(nèi)時(shí),將該傳輸緩沖區(qū)中修正后 的數(shù)據(jù)傳入該記憶頁緩沖區(qū),進(jìn)而將該記憶頁緩沖區(qū)中的修正后的數(shù) 據(jù)燒錄至該記憶單元。
8、 如權(quán)利要求7所述的具數(shù)據(jù)修正功能的閃存儲存裝置,其特征 在于,所述的微處理單元判斷該數(shù)據(jù)錯誤數(shù)量低于等于該第一臨界值 時(shí),直接將該記憶頁緩沖區(qū)中的數(shù)據(jù)燒錄至該記憶單元。
9、 如權(quán)利要求1所述的具數(shù)據(jù)修正功能的閃存儲存裝置,其特征在于,進(jìn)一步包含一內(nèi)存接口單元,連接該閃存,并且接收該微處理單元的控制而 存取該閃存;及一接口控制單元,連接該內(nèi)存接口單元,用以控制該記憶單元及 該記憶頁緩沖區(qū)的運(yùn)作。
10、 如權(quán)利要求1所述的具數(shù)據(jù)修正功能的閃存儲存裝置,其特 征在于,所述的數(shù)據(jù)修正功能的方法步驟包括讀取該記憶頁緩沖區(qū)的數(shù)據(jù)至一傳輸緩沖區(qū);檢測及修正該傳輸緩沖區(qū)的數(shù)據(jù),并取得一檢測結(jié)果;及依據(jù)該檢測結(jié)果的一數(shù)據(jù)錯誤數(shù)量來產(chǎn)生相應(yīng)的一燒錄指令。
11、 如權(quán)利要求IO所述的具數(shù)據(jù)修正功能的閃存儲存裝置,其特 征在于,在取得該檢測結(jié)果之后,進(jìn)一步進(jìn)行判斷該數(shù)據(jù)錯誤數(shù)量是 否超出該閃存控制器的一錯誤修正能力值,若超出該錯誤修正能力值 時(shí),則執(zhí)行一錯誤處理程序,以結(jié)束該復(fù)制回存程序。
12、 如權(quán)利要求IO所述的具數(shù)據(jù)修正功能的閃存儲存裝置,其特 征在于,在依據(jù)該檢測結(jié)果的數(shù)據(jù)錯誤數(shù)量來產(chǎn)生相應(yīng)的該燒錄指令 后,將修正后的數(shù)據(jù)燒錄至該記憶單元。
全文摘要
一種閃存儲存裝置,是在對一閃存執(zhí)行一復(fù)制回存程序時(shí),進(jìn)行數(shù)據(jù)修正功能,閃存具有至少一記憶單元及一記憶頁緩沖區(qū),而閃存控制器包括一傳輸緩沖區(qū)、一錯誤修正單元、一修正信息暫存器及一微處理單元。微處理單元是在對閃存產(chǎn)生一復(fù)制記憶頁的讀取指令后,讀取記憶頁緩沖區(qū)的數(shù)據(jù)而暫存至傳輸緩沖區(qū),進(jìn)而控制錯誤修正單元檢測及修正傳輸緩沖區(qū)的數(shù)據(jù)以產(chǎn)生一檢測結(jié)果。最后依據(jù)檢測結(jié)果中的一數(shù)據(jù)錯誤數(shù)量來產(chǎn)生相異的一燒錄指令,以將修正后的數(shù)據(jù)燒錄至記憶單元。以達(dá)到改善可靠度及存取效率的目的。
文檔編號G11C7/10GK101615420SQ20081012610
公開日2009年12月30日 申請日期2008年6月26日 優(yōu)先權(quán)日2008年6月26日
發(fā)明者林傳生, 謝祥安, 陳明達(dá) 申請人:威剛科技股份有限公司