專(zhuān)利名稱(chēng):適用于閃存的數(shù)據(jù)結(jié)構(gòu)及其數(shù)據(jù)寫(xiě)入方法和數(shù)據(jù)讀取方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種適用于閃存的數(shù)據(jù)結(jié)構(gòu)、及其數(shù)據(jù)寫(xiě)入方法及數(shù)據(jù)讀取
方法,特別是涉及可包含6位ECC的冗余碼信息的數(shù)據(jù)結(jié)構(gòu)、及其數(shù)據(jù)寫(xiě) 入方法及數(shù)據(jù)讀取方法。
背景技術(shù):
目前,閃存(Flash memory)已是十分普遍的隨身數(shù)據(jù)儲(chǔ)存裝置。然而, 由于偶發(fā)性的電子噪聲(occasional electrical noise)或在工作周期間,此閃存的 材料本身特性無(wú)法高速地被存取信息,使得邏輯內(nèi)存單元儲(chǔ)存的0或1信息 位出現(xiàn)隨機(jī)(random)、非重復(fù)性(non-repetitive)的信息位排列,而導(dǎo)致錯(cuò)誤位 發(fā)生。為了保護(hù)在邏輯內(nèi)存單元所儲(chǔ)存的0或1信息位的正確性,通常會(huì)加 入一些位作為檢查碼,以從多個(gè)位中找出其中錯(cuò)誤,并且將錯(cuò)誤的位并予以 更正,此種位保護(hù)機(jī)制稱(chēng)的錯(cuò)誤修正碼(error control code, ECC)檢查。
請(qǐng)參閱圖la及圖lb,其顯示現(xiàn)有技術(shù)的閃存的數(shù)據(jù)結(jié)構(gòu)的示意圖。圖 la中,閃存1包含多個(gè)區(qū)塊(block) ll,且每一區(qū)塊11包含多個(gè)分頁(yè)(Page) 12, 而每一分頁(yè)至少包含一區(qū)段(sector,亦稱(chēng)之為mini Page) 13,區(qū)段13至少一 數(shù)據(jù)儲(chǔ)存區(qū)(data area) 131及一備用儲(chǔ)存區(qū)(space area) 132。因標(biāo)準(zhǔn)的整合電 子式驅(qū)動(dòng)(Integrated Device Electronic, IDE-ATA)接口的傳輸最小單位為512 字節(jié)(byte),因此數(shù)據(jù)儲(chǔ)存區(qū)的儲(chǔ)存空間一般為512字節(jié),而備用儲(chǔ)存區(qū)的 儲(chǔ)存空間為16字節(jié)。
請(qǐng)參閱圖lb,其顯示現(xiàn)有技術(shù)的備用儲(chǔ)存區(qū)132的信息儲(chǔ)存結(jié)構(gòu)的示意 圖。圖中,備用儲(chǔ)存區(qū)132包含一內(nèi)存損壞信息141、 一錯(cuò)誤修正碼檢查信 息142、 一邏輯區(qū)塊地址信息(logic block address, LBA)143、 一分裂區(qū)塊邏 輯區(qū)段地址信息(split block logic sector address, SBLSA) 144及一錯(cuò)誤控制碼 (error control code, ECC)的冗余碼信息(redundant) 145。其中,內(nèi)存損壞信息 141的儲(chǔ)存空間為l字節(jié),可包含一損壞區(qū)塊信息(bad block, BS)及一損壞分頁(yè)信息(badpage, PS),損壞區(qū)塊信息用以標(biāo)示此區(qū)塊是否為一損壞區(qū)塊, 而損壞分頁(yè)信息用以標(biāo)示此分頁(yè)是否為 一損壞分頁(yè)。錯(cuò)誤修正碼檢查信息 142的儲(chǔ)存空間為1字節(jié),用以標(biāo)示是否須進(jìn)行錯(cuò)誤控制碼確認(rèn)。邏輯區(qū)塊 地址信息143的儲(chǔ)存空間為2字節(jié)。分裂區(qū)塊邏輯區(qū)段地址信息144的儲(chǔ)存 空間為2字節(jié)。冗余碼信息145的儲(chǔ)存空間為IO字節(jié)。
現(xiàn)有的閃存大多以4位錯(cuò)誤控制碼進(jìn)行編碼,所產(chǎn)生的冗余碼信息需要 IO字節(jié)的儲(chǔ)存空間,因此可儲(chǔ)入圖lb所示的信息儲(chǔ)存結(jié)構(gòu)中。隨著數(shù)據(jù)保 護(hù)機(jī)制越來(lái)越受重視,用更高位錯(cuò)誤控制碼來(lái)進(jìn)行編碼是閃存的設(shè)計(jì)趨勢(shì), 然而,若使用6位錯(cuò)誤控制碼進(jìn)行編碼,則產(chǎn)生的冗余碼信息需要15字節(jié) 的儲(chǔ)存空間,無(wú)法儲(chǔ)入圖lb所示的信息儲(chǔ)存結(jié)構(gòu)中。目前制造商根據(jù)現(xiàn)有 的閃存結(jié)構(gòu)通常都會(huì)為每一閃存配置有一定數(shù)量的額外儲(chǔ)存空間,但由于這 些額外的儲(chǔ)存空間有限,無(wú)法擴(kuò)增儲(chǔ)存空間。因此,如何使閃存儲(chǔ)存還包含 統(tǒng)使用有限的儲(chǔ)存空間來(lái)獲取較佳的正確信息位元亦是迫切需要的。
發(fā)明內(nèi)容
因此本發(fā)明的目的為提供一適用于閃存的數(shù)據(jù)結(jié)構(gòu)、及其數(shù)據(jù)寫(xiě)入方法 及數(shù)據(jù)讀取方法,以在有限的內(nèi)存空間里提供安全性較好的數(shù)據(jù)保護(hù)機(jī)制。
根據(jù)的上述目的,本發(fā)明提供一種數(shù)據(jù)結(jié)構(gòu)及其數(shù)據(jù)寫(xiě)入方法,用以在 閃存的 一 區(qū)塊(block)的連續(xù)地址的第 一 區(qū)段(sector)及第二區(qū)段里,分別儲(chǔ)存 512字節(jié)的數(shù)據(jù)及此些數(shù)據(jù)經(jīng)過(guò)6位錯(cuò)誤修正碼(ECC)編碼所產(chǎn)生的冗余碼 信息。而此區(qū)塊的邏輯區(qū)塊地址信息分為兩部分,并分別儲(chǔ)存于第一區(qū)段及 第二區(qū)段
此外,本發(fā)明還提供一數(shù)據(jù)讀取方法,適用于一閃存的一區(qū)段,該區(qū)段 包括一數(shù)據(jù)、 一錯(cuò)誤修正碼檢查信息及一冗余碼信息,該方法包含下列步驟 根據(jù)該冗余碼信息對(duì)該數(shù)據(jù)進(jìn)行一錯(cuò)誤修正碼譯碼程序;判斷該錯(cuò)誤修正碼 譯碼程序是否完成,若是,則輸出該已經(jīng)過(guò)錯(cuò)誤修正碼譯碼程序的數(shù)據(jù);若
否,則判斷該數(shù)據(jù)中,儲(chǔ)存值為一默認(rèn)值的字節(jié)的數(shù)目是否高于一閾值,若 是,則判定該區(qū)段為抹除后(erase)的區(qū)段;若否,則根據(jù)錯(cuò)誤修正碼檢查信 息以判斷該區(qū)段是發(fā)生不可糾正的錯(cuò)誤或是該區(qū)段為一抹除后的區(qū)段。
為使本發(fā)明的上述和其它目的、特征、優(yōu)點(diǎn)與實(shí)施例能更明顯易懂,附 圖的詳細(xì)說(shuō)明如下
圖la及圖lb其顯示現(xiàn)有技術(shù)的閃存的數(shù)據(jù)結(jié)構(gòu)的示意圖; 圖2其顯示本發(fā)明一實(shí)施例的閃存的數(shù)據(jù)結(jié)構(gòu)的示意圖; 圖3其顯示本發(fā)明一實(shí)施例的數(shù)據(jù)寫(xiě)入方法的步驟流程圖; 圖4其顯示本發(fā)明一實(shí)施例的數(shù)據(jù)寫(xiě)入方法的步驟流程圖; 圖5其顯示一具有分裂區(qū)結(jié)構(gòu)的閃存的示意圖;以及 圖6其顯示本發(fā)明的數(shù)據(jù)結(jié)構(gòu)應(yīng)用于分裂區(qū)架構(gòu)的操作過(guò)程的步驟流 程圖。
附圖符號(hào)說(shuō)明 1:閃存; 11:區(qū)塊; 12:分頁(yè); 13:區(qū)段; 131:數(shù)據(jù)儲(chǔ)存區(qū); 132:備用儲(chǔ)存區(qū); 14:閃存;
141:內(nèi)存損壞信息;
142:錯(cuò)誤修正碼檢查信息;
143:邏輯區(qū)塊地址信息;
144:分裂區(qū)塊邏輯區(qū)段地址信息;
145:冗余碼信息;
201 ,202:區(qū)段;
21,23:數(shù)據(jù)儲(chǔ)存區(qū);
22:第一備用儲(chǔ)存區(qū);
221:損壞分頁(yè)信息;
222:錯(cuò)誤修正碼檢查信息;
223:損壞區(qū)塊信息;
224:第一部分邏輯區(qū)塊地址信息;
225:冗余碼信息;24:第二備用儲(chǔ)存區(qū);
241:損壞分頁(yè)信息;
242:錯(cuò)誤修正碼檢查訊;
244:第二部分邏輯區(qū)塊位址信息;
245:冗余碼信息;
30 35:步驟流程;
40 46:步驟流程;
5:具有分裂區(qū)架構(gòu)的閃存;
51:第一區(qū)塊;
52:第二區(qū)塊;以及
60 65:步驟流程。
具體實(shí)施例方式
以下詳細(xì)地討論目前較佳的實(shí)施例。然而應(yīng)被理解的是,本發(fā)明提供許 多可適用的發(fā)明觀念,而這些觀念能被體現(xiàn)于很寬廣多樣的特定具體背景
限制本發(fā)明的范圍。
請(qǐng)參閱圖2,其顯示本發(fā)明一實(shí)施例的適用于閃存的數(shù)據(jù)結(jié)構(gòu)的示意圖。 圖中,區(qū)段(sector)201及區(qū)段202為兩個(gè)相鄰的區(qū)段,區(qū)段201包含一數(shù)據(jù) 儲(chǔ)存區(qū)21及一第一備用儲(chǔ)存區(qū)22,而區(qū)段202包含一數(shù)據(jù)儲(chǔ)存區(qū)23及一第 二備用儲(chǔ)存區(qū)24。數(shù)據(jù)儲(chǔ)存區(qū)21及數(shù)據(jù)儲(chǔ)存區(qū)23的儲(chǔ)存空間為512字節(jié), 而第一備用儲(chǔ)存區(qū)22及第二備用儲(chǔ)存區(qū)24的儲(chǔ)存空間為16字節(jié)。由于使 用6位錯(cuò)誤控制碼進(jìn)行編碼時(shí),所產(chǎn)生的冗余碼信息需要15字節(jié)的儲(chǔ)存空 間,因此第一備用儲(chǔ)存區(qū)22及第二備用儲(chǔ)存區(qū)24存入冗余碼信息后便分別 只剩下1字節(jié)的空間來(lái)儲(chǔ)存其余信息,因此,本發(fā)明便將此些其余信息分存 在相鄰的兩區(qū)段里。
第一備用儲(chǔ)存區(qū)22用以?xún)?chǔ)存一 1位的損壞分頁(yè)信息221、 一 1位的錯(cuò)誤 修正碼檢查信息222、 一 1位的損壞區(qū)塊信息223、 一 5位的第一部分邏輯 區(qū)塊地址信息224及15字節(jié)的冗余碼信息225 。第二備用儲(chǔ)存區(qū)22用以?xún)?chǔ) 存一 1位的損壞分頁(yè)信息241、 一 1位的錯(cuò)誤修正碼檢查訊242、 一 6位的 第二部分邏輯區(qū)塊位址信息244及15字節(jié)的冗余碼信息245。將第一部分邏輯區(qū)塊地址信息224及第二部分邏輯區(qū)塊地址信息244組合便可取得一完整 的邏輯區(qū)塊地址信息。冗余碼信息225及冗余碼信息245為使用6位錯(cuò)誤控 制碼進(jìn)行編碼所產(chǎn)生的冗余碼信息。
請(qǐng)參閱圖3,其顯示本發(fā)明一實(shí)施例的數(shù)據(jù)寫(xiě)入方法的步驟流程圖。此 方法用于在閃存的一區(qū)塊寫(xiě)入數(shù)據(jù),包含下列步驟
步驟30:接收儲(chǔ)存空間為512字節(jié)的第一數(shù)據(jù)及一第二數(shù)據(jù);
步驟31:使用6位錯(cuò)誤控制碼對(duì)第一數(shù)據(jù)及一第二數(shù)據(jù)進(jìn)行編碼,以產(chǎn) 生15字節(jié)的第一冗余碼信息及第二冗余碼信息;
步驟32:選擇兩個(gè)連續(xù)的第一區(qū)段及第二區(qū)段,并取得包含此兩區(qū)塊的 分頁(yè)及區(qū)塊的損壞信息,并分別設(shè)定兩區(qū)段的錯(cuò)誤修正碼檢查訊息;
步驟33:將此區(qū)塊的邏輯區(qū)塊地址信息分為一 5位的第一部份邏輯區(qū)塊 地址信息及一 6位的第二邏輯區(qū)塊地址信息;
步驟34:將第一數(shù)據(jù)、第一冗余碼信息、第一邏輯區(qū)塊地址信息、分頁(yè) 損壞訊息、區(qū)塊損壞訊息及錯(cuò)誤修正碼檢查訊息,依照?qǐng)D2所示的區(qū)段201 的結(jié)構(gòu),存入第一區(qū)段;
步驟35:將第二數(shù)據(jù)、第二冗余碼信息、第二邏輯區(qū)塊地址信息、分頁(yè) 損壞訊息及錯(cuò)誤修正碼檢查訊息,依照?qǐng)D2所示的區(qū)段202的結(jié)構(gòu),存入第 二區(qū)段。
自閃存讀取數(shù)據(jù)時(shí),儲(chǔ)存數(shù)據(jù)的區(qū)段(sector)包含下列三種狀態(tài)
(1) 此區(qū)段已寫(xiě)入數(shù)據(jù),且數(shù)據(jù)可完成譯碼,可順利讀出。
(2) 此區(qū)段已寫(xiě)入數(shù)據(jù),但數(shù)據(jù)無(wú)法完成譯碼,無(wú)法順利讀出。
(3) 此區(qū)段為抹除(erase)后的區(qū)段,未寫(xiě)入數(shù)據(jù)。
一般而言,可通過(guò)區(qū)段所儲(chǔ)存的錯(cuò)誤修正碼檢查訊息來(lái)判斷此區(qū)段是否 已寫(xiě)入數(shù)據(jù),再使用冗余碼信息進(jìn)行譯碼來(lái)判斷此區(qū)段所儲(chǔ)存的數(shù)據(jù)是否正 常。然而,本發(fā)明的數(shù)據(jù)結(jié)構(gòu)中僅以l位來(lái)儲(chǔ)存錯(cuò)誤修正碼檢查訊息,位錯(cuò) 誤現(xiàn)象極有可能發(fā)生在儲(chǔ)存錯(cuò)誤修正碼檢查訊息的位,因此,僅依賴(lài)錯(cuò)誤修 正碼檢查訊息容易造成錯(cuò)誤判斷。而本發(fā)明所提出的數(shù)據(jù)讀取方法可減少錯(cuò) 誤判斷的可能性。
請(qǐng)參閱圖4,顯示本發(fā)明一實(shí)施例的數(shù)據(jù)讀取方法的步驟流程圖,此方 法包含
步驟40:讀取一區(qū)段所儲(chǔ)存的數(shù)據(jù)及冗余碼信息,并根據(jù)此冗余碼信息對(duì)此數(shù)據(jù)進(jìn)行ECC譯碼,以偵錯(cuò)及修正此數(shù)據(jù);
步驟41:判斷ECC譯碼是否完成,若是,則執(zhí)行步驟42,若否,則執(zhí)行 步驟43;其中,在進(jìn)行ECC譯碼的過(guò)程中,若偵測(cè)到的位錯(cuò)誤數(shù)超過(guò)ECC所 能修正的位錯(cuò)誤數(shù),則視為ECC譯碼無(wú)法完成;
步驟42:輸出修正后的數(shù)據(jù);
步驟43:估算此數(shù)據(jù)中,儲(chǔ)存值為"Oxff,的字節(jié)的數(shù)目是否超過(guò)一默認(rèn) 值,若是,執(zhí)行步驟44,若否,則執(zhí)行步驟45; 步驟44:判定此區(qū)段為抹除(erase)后的區(qū)段;
步驟45:根據(jù)此區(qū)段所儲(chǔ)存的錯(cuò)誤修正碼檢查訊息是否須進(jìn)行ECC譯 碼,若是,則執(zhí)行步驟46,若否,則執(zhí)行步驟44; 步驟46:判定此區(qū)塊是發(fā)生不可糾正的錯(cuò)誤。
上述閃存可為多級(jí)單元(Multi Level Cell, MLC)及單級(jí)單元(Single Level Cell, SLC)兩種其中的一個(gè)。
請(qǐng)參閱圖5,其顯示一具有分裂區(qū)(split block)結(jié)構(gòu)的閃存的示意圖。圖 中,閃存5為一具有分裂區(qū)架構(gòu)的閃存,其包含第一區(qū)塊51及第二區(qū)塊52, 其中第二區(qū)塊52作為一數(shù)據(jù)緩沖區(qū)。當(dāng)有數(shù)據(jù)欲寫(xiě)入第一區(qū)塊51時(shí),此數(shù)據(jù) 會(huì)先寫(xiě)入第二區(qū)塊52,直到第二區(qū)塊52寫(xiě)滿(mǎn)了,第二區(qū)塊52內(nèi)的數(shù)據(jù)才被逐 筆寫(xiě)入第一區(qū)塊51中。由于閃存的特性,使用分裂區(qū)架構(gòu)可使數(shù)據(jù)寫(xiě)入的速 度較快。例如,在圖5中,使用還包含要依序在第ll分頁(yè)、第32分頁(yè)及第2分 頁(yè)寫(xiě)入數(shù)據(jù),則在分裂區(qū)架構(gòu)下,第11分頁(yè)、第32分頁(yè)及第2分頁(yè)的寫(xiě)入數(shù) 據(jù)會(huì)先儲(chǔ)存于第二區(qū)塊52,直到第二區(qū)塊52滿(mǎn)了,才將第ll分頁(yè)、第32分頁(yè) 及第2分頁(yè)的寫(xiě)入數(shù)據(jù)依照分頁(yè)位置的順序?qū)懭氲?一 區(qū)塊51 。
由于在分裂區(qū)架構(gòu)下,儲(chǔ)存在第二區(qū)塊52的分頁(yè)數(shù)據(jù)里必須額外紀(jì)錄此 數(shù)據(jù);欲儲(chǔ)存在第 一 區(qū)塊51的位置信息,因此暫儲(chǔ)在第二區(qū)塊52的分頁(yè)數(shù)據(jù)不 適合以6位錯(cuò)誤控制碼進(jìn)行編碼。
請(qǐng)續(xù)參閱圖6,其顯示本發(fā)明的數(shù)據(jù)結(jié)構(gòu)應(yīng)用于分裂區(qū)(split block)架構(gòu) 的操作過(guò)程的步驟流程圖。圖中,此操作過(guò)程對(duì)應(yīng)圖5的閃存5,其包含下列 步驟
步驟60:接收一欲寫(xiě)入第一區(qū)塊51的數(shù)據(jù);
步驟61:使用4位錯(cuò)誤控制碼對(duì)此數(shù)據(jù)進(jìn)行編碼時(shí),將已編碼的數(shù)據(jù)、 所產(chǎn)生的冗余碼信息以及欲儲(chǔ)存于第 一 區(qū)塊51的位置信息及相關(guān)參數(shù)儲(chǔ)存于第二區(qū)塊52;
步驟62:判斷第二區(qū)塊52是否已經(jīng)寫(xiě)滿(mǎn),若是,則執(zhí)行步驟63,若否, 則執(zhí)行步驟60;
步驟63:依序自第二區(qū)塊52讀取一未處理的分頁(yè)數(shù)據(jù),并以根據(jù)分頁(yè) 數(shù)據(jù)中的冗余碼信息對(duì)已編碼數(shù)據(jù)進(jìn)行ECC譯碼,偵錯(cuò)及修正此數(shù)據(jù);
步驟64:使用6位錯(cuò)誤控制碼對(duì)此數(shù)據(jù)進(jìn)行編碼時(shí),將已編碼的數(shù)據(jù)、 所產(chǎn)生的冗余碼信息以及相關(guān)參數(shù)以圖2所示的數(shù)據(jù)結(jié)構(gòu),根據(jù)欲儲(chǔ)存的位 置信息儲(chǔ)存于第一區(qū)塊51;
步驟65:判斷是否已處理完第二區(qū)塊52內(nèi)的數(shù)據(jù),若是,則結(jié)束此流 程,若否,則執(zhí)行步驟63。
雖然本發(fā)明已以較佳實(shí)施例披露如上,然其并非用以限定本發(fā)明,本領(lǐng) 域的技術(shù)人員在不脫離本發(fā)明的精神和范圍的前提下可作各種的更動(dòng)與潤(rùn) 飾,因此本發(fā)明的保護(hù)范圍以本發(fā)明的權(quán)利要求為準(zhǔn)。
權(quán)利要求
1.一種數(shù)據(jù)結(jié)構(gòu),適用于一閃存的一區(qū)塊的連續(xù)地址的第一區(qū)段及第二區(qū)段,該數(shù)據(jù)結(jié)構(gòu)包含一第一數(shù)據(jù)儲(chǔ)存區(qū),配置于該第一區(qū)段,用以?xún)?chǔ)存一第一數(shù)據(jù);一第二數(shù)據(jù)儲(chǔ)存區(qū),配置于該第二區(qū)段,用以?xún)?chǔ)存一第二數(shù)據(jù);一第一備用儲(chǔ)存區(qū),配置于該第一區(qū)段,用以?xún)?chǔ)存一第一部分邏輯區(qū)塊地址信息及一第一冗余碼信息;以及一第二備用儲(chǔ)存區(qū),配置于該第二區(qū)段,用以?xún)?chǔ)存一第二部分邏輯區(qū)塊位址信息及一第二冗余碼信息;其中,該第一部分邏輯區(qū)塊地址信息及該第二部分邏輯區(qū)塊地址信息可組合成該區(qū)塊的邏輯區(qū)塊地址信息,而該第一冗余碼信息及該第二冗余碼信息分別由該第一數(shù)據(jù)及該第二數(shù)據(jù)經(jīng)過(guò)6位錯(cuò)誤修正碼編碼所產(chǎn)生。
2. 如權(quán)利要求l所述的數(shù)據(jù)結(jié)構(gòu),其中該閃存是多級(jí)單元及單級(jí)單元兩 種其中的一個(gè)。
3. 如權(quán)利要求1所述的數(shù)據(jù)結(jié)構(gòu),其中該第一備用儲(chǔ)存區(qū)及該第二備用 儲(chǔ)存區(qū)的儲(chǔ)存空間為16字節(jié)。
4. 如權(quán)利要求1所述的數(shù)據(jù)結(jié)構(gòu),其中還包含一損壞區(qū)塊信息,該損壞 區(qū)塊信息配置于該第一區(qū)段。
5. 如權(quán)利要求1所述的數(shù)據(jù)結(jié)構(gòu),其中該損壞區(qū)塊信息以1位儲(chǔ)存。
6. 如權(quán)利要求1所述的數(shù)據(jù)結(jié)構(gòu),其中該第一冗余碼信息及該第二冗余 碼信息所需的儲(chǔ)存空間皆為15字節(jié)。
7. 如權(quán)利要求1所述的數(shù)據(jù)結(jié)構(gòu),其中還包含一第一損壞分頁(yè)信息及一 第二損壞分頁(yè)信息,該第一損壞分頁(yè)信息配置于該第一區(qū)段,而該第二損壞分頁(yè)信息配置于該第二區(qū)段。
8. 如權(quán)利要求1所述的數(shù)據(jù)結(jié)構(gòu),其中還包含一第一錯(cuò)誤修正碼檢查信 息及一第二錯(cuò)誤修正碼檢查信息,該第 一錯(cuò)誤修正碼檢查信息配置于該第一 區(qū)段,而該第二錯(cuò)誤修正碼檢查信息配置于該第二區(qū)段。
9. 如權(quán)利要求1所述的數(shù)據(jù)結(jié)構(gòu),其中該第一錯(cuò)誤修正碼檢查信息及一 第二錯(cuò)誤修正碼檢查信息分別以1位儲(chǔ)存。
10. —種數(shù)據(jù)寫(xiě)入方法,用以將一第一數(shù)據(jù)及一第二數(shù)據(jù)寫(xiě)入一閃存的一區(qū)塊,該區(qū)塊是由多個(gè)區(qū)段所組成,該方法包含 自該區(qū)塊中選出地址連續(xù)的第一區(qū)段及第二區(qū)段;使用一 6位錯(cuò)誤控制碼對(duì)該第一數(shù)據(jù)及該第二數(shù)據(jù)進(jìn)行編碼,以產(chǎn)生一 第 一 冗余碼信息及一 第二冗余碼信息;將該區(qū)塊的邏輯區(qū)塊地址信息分為 一第 一邏輯區(qū)塊地址信息及一第二 邏輯區(qū)塊地址信息;以及將該第 一數(shù)據(jù)、該第 一 冗余碼信息及該第 一邏輯區(qū)塊地址信息儲(chǔ)存于該 第一區(qū)段,并將該第二數(shù)據(jù)、該第二冗余碼信息及該第二邏輯區(qū)塊地址信息 儲(chǔ)存于該第二區(qū)段。
11. 如權(quán)利要求10所述的數(shù)據(jù)寫(xiě)入方法,其中該閃存是多級(jí)單元及單級(jí) 單元兩種其中的一個(gè)。
12. 如權(quán)利要求IO所述的數(shù)據(jù)寫(xiě)入方法,其中還包含將一損壞區(qū)塊信息 儲(chǔ)存于該第一區(qū)段。
13. 如權(quán)利要求12所述的數(shù)據(jù)寫(xiě)入方法,其中該損壞區(qū)塊信息以l位儲(chǔ)存。
14. 如權(quán)利要求IO所述的數(shù)據(jù)寫(xiě)入方法,其中該第一冗余碼信息及該第 二冗余碼信息所需的儲(chǔ)存空間皆為15字節(jié)。
15. 如權(quán)利要求IO所述的數(shù)據(jù)寫(xiě)入方法,其中還包含將一第一損壞分頁(yè) 信息及一 第二損壞分頁(yè)信息分別儲(chǔ)存于該第 一 區(qū)段及該第二區(qū)段。
16. 如權(quán)利要求IO所述的數(shù)據(jù)寫(xiě)入方法,其中還包含將一第一錯(cuò)誤修正 碼檢查信息及一 第二錯(cuò)誤修正碼檢查信息分別儲(chǔ)存于該第 一 區(qū)段及該第二 區(qū)段。
17. 如權(quán)利要求16所述的數(shù)據(jù)寫(xiě)入方法,其中該第一錯(cuò)誤修正碼檢查信 息及一第二錯(cuò)誤修正碼檢查信息分別以1位儲(chǔ)存。
18. —種數(shù)據(jù)讀取方法,適用于一閃存的一區(qū)段,該區(qū)段包括一數(shù)據(jù)、 一錯(cuò)誤修正碼檢查信息及一冗余碼信息,該方法包含下列步驟(a) 根據(jù)該冗余碼信息對(duì)該數(shù)據(jù)進(jìn)行一錯(cuò)誤修正碼-澤碼程序;(b) 判斷該錯(cuò)誤修正碼譯碼程序是否完成,若是,則輸出該已經(jīng)過(guò)錯(cuò)誤 修正碼譯碼程序的數(shù)據(jù),若否,則執(zhí)行步驟(c);(c) 判斷該數(shù)據(jù)中,儲(chǔ)存值為一默認(rèn)值的字節(jié)的數(shù)目是否高于一閾值, 若是,則判定該區(qū)段為抹除后的區(qū)段,若否,則執(zhí)行步驟(d);以及(d)根據(jù)錯(cuò)誤修正碼檢查信息以判斷該區(qū)段發(fā)生不可糾正的錯(cuò)誤或是該 區(qū)段為一抹除后的區(qū)段。
19. 如權(quán)利要求18所述的數(shù)據(jù)讀取方法,該閃存是多級(jí)單元及單級(jí)單元 兩種其中的一個(gè)。
20. 如權(quán)利要求18所述的數(shù)據(jù)讀取方法,其中該默認(rèn)值為「0xffJ。
全文摘要
本發(fā)明披露了一種適用于閃存的數(shù)據(jù)結(jié)構(gòu)、及其數(shù)據(jù)寫(xiě)入方法及數(shù)據(jù)讀取方法,用以在閃存的一區(qū)塊(block)的連續(xù)地址的第一區(qū)段(sector)及第二區(qū)段里,分別儲(chǔ)存512字節(jié)的數(shù)據(jù)及該數(shù)據(jù)經(jīng)過(guò)6位錯(cuò)誤修正碼(ECC)編碼所產(chǎn)生的冗余碼信息。而此區(qū)塊的邏輯區(qū)塊地址信息分為兩部分,并分別儲(chǔ)存于第一區(qū)段及第二區(qū)段。
文檔編號(hào)G11C16/10GK101308702SQ20071010347
公開(kāi)日2008年11月19日 申請(qǐng)日期2007年5月18日 優(yōu)先權(quán)日2007年5月18日
發(fā)明者何東宇, 倪劍強(qiáng), 廖峻廷 申請(qǐng)人:瑞昱半導(dǎo)體股份有限公司