專利名稱:管理非易失性存儲器的設(shè)備和方法
技術(shù)領(lǐng)域:
本發(fā)明的各方面涉及一種非易失性存儲器,更具體地說,涉及一種管理 非易失性存儲器的設(shè)備和方法,所述設(shè)備和方法用于提高非易失性存儲器的 性能,并用于在不參照所請求的邏輯頁和記錄有該邏輯頁的物理頁的映射信 息的情況下確定所述物理頁的偏移量。
背景技術(shù):
由于非易失性存儲器具有隨機存取存儲器(RAM)的可自由寫入和擦除 數(shù)據(jù)的優(yōu)點以及只讀存儲器(ROM)的即使斷電也能保留存儲的數(shù)據(jù)的優(yōu)點, 因此非易失性存儲器現(xiàn)在被廣泛用作諸如數(shù)字相機、個人數(shù)字助理(PDA) 和MP3播放器的便攜式電子裝置的存儲介質(zhì)。
從硬件的觀點來看,非易失性存儲器可按照與現(xiàn)有的存儲裝置(諸如, RAM、非易失性存儲裝置和磁存儲器)相同的方式任意訪問存儲在其特定位 置的數(shù)據(jù)。然而,與現(xiàn)有的存儲裝置不同,當(dāng)改正或擦除存儲的數(shù)據(jù)時,非 易失性存儲器以擦除塊(以下稱為"塊")為單位訪問數(shù)據(jù)。換句話說,當(dāng)改 正或擦除先前寫入的數(shù)據(jù)時,必須在再次寫入數(shù)據(jù)之前擦除包括先前寫入的 數(shù)據(jù)的塊(以下稱為"寫前擦除,,)。以此類推,該操作相當(dāng)于使用"擦除" 鍵擦除整個詞語,并隨后重新寫入該詞語以便改正該詞語中的字母。
以下,具有物理連續(xù)地址的字節(jié)被稱為扇區(qū)(sector)。扇區(qū)指的是在非 易失性存儲器中執(zhí)行數(shù)據(jù)讀/寫操作的基本單位,包括多個扇區(qū)的塊指的是在 擦除操作期間執(zhí)行數(shù)據(jù)擦除操作的基本單位。
非易失性存儲器支持邏輯-物理映射方法,即使由于上面提到的寫前擦除 操作而導(dǎo)致物理地址被改變,所述方法也可以通過一個邏輯地址訪問在非易 失性存儲器中寫入的數(shù)據(jù)。換句話說,所述映射方法通過預(yù)定的映射表來管
理與預(yù)定數(shù)據(jù)有關(guān)的邏輯地址和物理地址之間的映射數(shù)據(jù)。所述映射方法包 括扇區(qū)映射方法和塊映射方法。
圖1A表示根據(jù)扇區(qū)映射方法的非易失性存儲器訪問方法。如圖1A所示, 扇區(qū)映射方法以非易失性存儲器的扇區(qū)為單位按照映射表10的形式保存映
射數(shù)據(jù),從而使用邏輯扇區(qū)數(shù)據(jù)來訪問非易失性存儲器的物理扇區(qū)。例如,
如果在請求預(yù)定數(shù)據(jù)的寫操作時將邏輯扇區(qū)號(LSN)指定為9,則非易失性 存儲器的訪問裝置參照映射表IO檢索與LSN9相應(yīng)的物理扇區(qū)號(PSN) 6。 然后,預(yù)定數(shù)據(jù)被寫入非易失性存儲器的扇區(qū)號6。然而,如果在扇區(qū)號6 中已經(jīng)寫入了另外的數(shù)據(jù),則預(yù)定數(shù)據(jù)被寫入非易失性存儲器的空物理扇區(qū), 并且在映射表10中與LSN9相應(yīng)的PSN被改變。
圖1B表示根據(jù)塊映射方法的非易失性存儲器訪問方法。如圖1B所示, 塊映射方法以非易失性存儲器的塊為單位按照映射表11的形式保存映射數(shù) 據(jù),并將邏輯扇區(qū)數(shù)據(jù)轉(zhuǎn)換為邏輯塊數(shù)據(jù),從而使用邏輯塊數(shù)據(jù)和偏移量數(shù) 據(jù)來訪問非易失性存^t器的物理扇區(qū)。例如,如果四個扇區(qū)構(gòu)成一個塊,并 且在請求預(yù)定數(shù)據(jù)的寫操作時指定了 LSN 9,則通過執(zhí)行LSN 9的運算9/4=2, 非易失性存儲器的訪問裝置獲得邏輯塊號(LBN),并隨后通過參照映射表 11獲得與LBN相應(yīng)的物理塊號(PBN)。如所示出的,邏輯塊(LBN 2)的 偏移量1與物理塊(PBN 1 )的偏移量1 一致,從而數(shù)據(jù)被寫入與獲得的PBN 1中的偏移量1相應(yīng)的扇區(qū)。如果在該扇區(qū)中寫入了另外的數(shù)據(jù),則通過邏 輯塊的偏移量與物理塊的偏移量進(jìn)行匹配,預(yù)定的數(shù)據(jù)被寫入或記錄在非易 失性存儲器的空物理扇區(qū)。此后,在映射表11中與LBN 2相應(yīng)的PSN被改 變。
扇區(qū)映射方法的問題在于以扇區(qū)為單位保存過多的映射數(shù)據(jù),因此難 以將其應(yīng)用于非易失性存儲器。在這方面,最近的技術(shù)是基于需要使用較少 映射數(shù)據(jù)的塊映射方法。
第2002-0092487號韓國未審查專利公開了 "A Method of Managing Nonvolatile Memory"(管理非易失性存4諸器的方法),該方法通過^l為部分塊 提供映射信息并對剩余塊執(zhí)行合并(merge)操作來對邏輯頁偏移量和物理頁 偏移量進(jìn)行匹配,該方法可在不需要映射信息的情況下指示記錄有邏輯頁的 物理頁的偏移量。在第2002-0092487號韓國未審查專利中,完全合并操作比 復(fù)制-合并操作更頻繁地被請求。為了執(zhí)行完全合并操作,需要一個塊的擦除
操作和若干頁的寫操作。然而,頻繁的擦除/寫操作使非易失性存儲器的性能 惡化。
因此,需要一種通過減少完全合并操作的次數(shù)來提高非易失性存儲器系 統(tǒng)的性能的非易失性存儲器管理設(shè)備和方法。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種管理非易失性存儲器的設(shè)備和方法和/或其 他優(yōu)點,所述設(shè)備和方法可通過減少完全合并操作的次數(shù)來提高非易失性存 儲器系統(tǒng)的性能。
根據(jù)本發(fā)明的一方面,非易失性存儲器管理設(shè)備包括非易失性存儲器, 具有第一塊和第二塊,所述第一塊和第二塊具有一個或多個物理頁;以及操 作單元,根據(jù)記錄在第一塊中的連續(xù)物理頁中的邏輯頁偏移量是否逐步地(in steps )并按重復(fù)順序增加來對第一塊和第二塊執(zhí)行合并操作。
根據(jù)本發(fā)明的另一方面,非易失性存儲器管理設(shè)備包括非易失性存儲 器,具有至少一個塊,其中,記錄在所述塊的連續(xù)物理頁中的一個或多個邏 輯頁偏移量逐步地并按重復(fù)順序增加;輸入單元,接收使用第一邏輯頁偏移 量執(zhí)行讀操作的請求;操作單元,在訪問具有與第一邏輯頁偏移量相同的偏 移量的第 一物理頁之后,基于使用第 一物理頁獲得的第二邏輯頁偏移量獲得 其中記錄有第一邏輯頁偏移量的第二物理頁的偏移量。
根據(jù)本發(fā)明的另 一方面,提供一種具有第一塊和第二塊的非易失性存儲 器的非易失性存儲器管理方法,所述第一塊和第二塊具有一個或多個物理頁, 所述方法包括確定記錄在第一塊的連續(xù)物理頁中的邏輯頁偏移量是否逐步 地并按重復(fù)順序增加,并根據(jù)確定的結(jié)果決定將對第一塊和第二塊執(zhí)行的合 并操作。
根據(jù)本發(fā)明的另 一方面,提供一種非易失性存儲器的非易失性存儲器管 理方法,所述非易失性存儲器具有至少一個塊,其中,記錄在第一塊的連續(xù) 物理頁中的一個或多個邏輯頁偏移量逐步地并^l妄重復(fù)順序增加,所述方法包 括接收使用第一邏輯頁偏移量執(zhí)行讀操作的請求,訪問具有與第一邏輯頁 偏移量相同的偏移量的第一物理頁,以及基于從第一物理頁獲得的第二邏輯 頁偏移量的偏移量來獲得其中記錄有第 一邏輯頁偏移量的第二物理頁的偏移 量。
一種管理具有多個邏輯頁和多個物理頁的塊的非易失性存儲器的方法,
所述方法包括基于多個邏輯頁的偏移量是否按順序循環(huán),以及塊的有效邏
少一個來確定執(zhí)行交換(switch)合并、復(fù)制合并還是完全合并;以及對執(zhí)行 過交換合并、復(fù)制合并或完全合并的一個或多個塊執(zhí)行擦除操作。
一種用于管理具有多個邏輯頁和多個物理頁的塊的非易失性存儲器的設(shè) 備,包括非易失性存儲器;以及控制器,基于多個邏輯頁的偏移量是否按 順序循環(huán),以及塊的有效邏輯頁的數(shù)量是否與包括在所述塊中的物理頁的總 數(shù)相同以上兩個條件中的至少一個來確定執(zhí)行交換合并、復(fù)制合并還是完全 合并,并對執(zhí)行過交換合并、復(fù)制合并或完全合并的一個或多個塊執(zhí)行擦除 操作。
將在以下說明中部分地闡述本發(fā)明的另外的方面和/或優(yōu)點,通過該說 明,部分地將很明顯,或者可以通過本發(fā)明的實踐而得知。
通過下面參照附圖對各方面進(jìn)行的描述,本發(fā)明的這些和/或其他方面和 優(yōu)點將會變得清楚和更容易理解,其中
圖1A示出根據(jù)現(xiàn)有技術(shù)的扇區(qū)映射方法;
圖1B示出根據(jù)現(xiàn)有技術(shù)的塊映射方法;
圖2示出根據(jù)本發(fā)明的一方面的管理非易失性存儲器的設(shè)備;
圖3示出圖2中表示的非易失性存儲器的結(jié)構(gòu);
圖4示出圖2中表示的非易失性存儲器的數(shù)據(jù)塊和記錄(log)塊的關(guān)系;
圖5示出圖2中表示的非易失性存儲器的區(qū)域劃分;
圖6示出根據(jù)本發(fā)明的一方面的交換合并操作;
圖7示出根據(jù)本發(fā)明的一方面的復(fù)制合并操作;
圖8示出根據(jù)本發(fā)明的一方面的完全合并操作;
圖9是示出根據(jù)本發(fā)明的 一方面的寫操作的流程圖IO是示出根據(jù)本發(fā)明的一方面的合并操作的流程圖ll是示出根據(jù)本發(fā)明的一方面的讀操作的流程圖;以及
圖12示出根據(jù)本發(fā)明的一方面的在其中執(zhí)行合并操作的塊。
具體實施例方式
現(xiàn)在將詳細(xì)描述本發(fā)明的各方面,本發(fā)明的例子在附圖中示出,其中, 相同的標(biāo)號始終表示相同的部件。下面通過參照附圖描述各方面以便解釋本 發(fā)明。
以下參照用戶界面、方法和計算機程序產(chǎn)品的流程圖來描述本發(fā)明的各 方面。應(yīng)理解,可通過計算機程序指令來實現(xiàn)流程圖中的每個方框,以及流 程圖中多個方框的組合??梢詫⑦@些計算機程序指令提供給通用計算機、專 用計算機或者其他可編程數(shù)據(jù)處理設(shè)備的處理器以生產(chǎn)機器,從而使得經(jīng)由 計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令創(chuàng)建用于實現(xiàn)在流程 圖方框中指定的功能的設(shè)備和/或方法。
還可將這些計算機程序指令存儲在可引導(dǎo)計算機或其他可編程數(shù)據(jù)處理 設(shè)備按照特定方式運行的計算機可用或計算機可讀存儲器中,從而存儲在計 算機可用或計算機可讀存儲器中的指令產(chǎn)生包括實現(xiàn)在流程圖方框中指定的 功能的指令設(shè)備和/或方法的產(chǎn)品。
還可將計算機程序指令加載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上以使
一系列操作在計算機或其他可編程設(shè)備上被執(zhí)行,以產(chǎn)生計算機實現(xiàn)的處理,
從而在計算機或者其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖方框
中指定的功能的操作。
流程圖中的每個方框可代表包括一個或多個用于實現(xiàn)指定的邏輯功能的 可執(zhí)行指令的模塊、代碼段或部分代碼。還應(yīng)該注意,在一些可選的實施方 式中,在方框中提到的功能可不按順序出現(xiàn)。例如,根據(jù)涉及的功能,實際 上可基本上同時執(zhí)行連續(xù)示出的兩個方框,或者有時以相反的順序執(zhí)行所述 方框。
圖2示出根據(jù)本發(fā)明的一方面的管理非易失性存儲器300的設(shè)備。如圖 2所示,管理非易失性存儲器300的設(shè)備20包括輸入單元100、存儲單元200、 操作單元(或控制器)400和/或非易失性存儲器300。
將對邏輯地址的寫/讀請求轉(zhuǎn)換為對物理地址的寫/讀請求。也就是說,操作單 元400將用戶請求的邏輯頁轉(zhuǎn)換為非易失性存儲器300的物理地址,并執(zhí)行 寫/讀操作。
存儲單元200存儲當(dāng)操作單元400將要訪問非易失性存儲器300時所需
的訪問代碼。例如,存儲單元200存儲表示用戶請求的邏輯地址與非易失性
存儲器300的物理地址之間的映射關(guān)系的映射表(未示出)。存儲單元200可 以是外部存儲器,包括隨機存取存儲器(RAM)或非易失性存儲器。
非易失性存儲器300根據(jù)用戶請求存儲將^皮記錄的數(shù)據(jù)。將參照圖3描 述非易失性存儲器300的結(jié)構(gòu)。圖3示出圖2中表示的非易失性存儲器300 的結(jié)構(gòu)。如圖3所示,非易失性存儲器300包括具有多個頁320的多個塊310。
如圖3所示,作為讀/寫操作的基本單位,頁可以包括數(shù)據(jù)區(qū)域330和備 用(spare)區(qū)域340。在此方面,數(shù)據(jù)被存儲在數(shù)據(jù)區(qū)域330中,記錄在相 應(yīng)物理頁中的邏輯頁的偏移量被存儲在備用區(qū)域340中。在圖3中表示的劃 分示出非易失性存儲器300的物理劃分。
作為擦除操作的基本單位,塊可以分為數(shù)據(jù)塊、記錄塊和空閑(free)塊。 在此方面,空閑塊指的是其中沒有記錄數(shù)據(jù)的塊,即空塊。數(shù)據(jù)塊指的是存 儲普通數(shù)據(jù)的塊。記錄塊指的是當(dāng)記錄在數(shù)據(jù)塊中的數(shù)據(jù)的特定部分將被修 改時為了記錄^f務(wù)改的部分所分配的塊。因此,如圖4所示,記錄塊僅與單個 數(shù)據(jù)塊相應(yīng),并存儲相應(yīng)的數(shù)據(jù)塊的修改頁。因此,可優(yōu)先地(或一開始) 參照記錄塊的頁而不是數(shù)據(jù)塊的頁。
以下,在記錄塊中被優(yōu)先參照的頁將被稱為"有效頁",而即使物理有效 的數(shù)據(jù)被記錄在被忽略的頁中,該頁也將被稱為"無效頁"。
如圖5所示,非易失性存儲器300可包括映射區(qū)域510、數(shù)據(jù)塊區(qū)域530、 記錄塊區(qū)域520和/或空閑塊區(qū)域540。映射區(qū)域510存儲地址轉(zhuǎn)換信息。數(shù) 據(jù)塊區(qū)域530具有多個數(shù)據(jù)塊(未示出),記錄塊區(qū)域520具有多個記錄塊(未 示出)??臻e塊區(qū)域540具有分配給數(shù)據(jù)塊或記錄塊的多個空閑塊(未示出)。 在圖5中示出的區(qū)域均示出了非易失性存儲器300的邏輯劃分。包括在各個 區(qū)域中的數(shù)據(jù)塊、記錄塊和空閑塊均可按順序地物理存在,或者可以是分散 的。
根據(jù)本發(fā)明的一方面,可執(zhí)行"塊合并"以便管理非易失性存儲器300。 塊合并收集數(shù)據(jù)塊和/或記錄塊的有效頁,產(chǎn)生新的數(shù)據(jù)塊,并執(zhí)行現(xiàn)有的記 錄塊和/或數(shù)據(jù)塊的擦除操作以便產(chǎn)生空閑塊。當(dāng)用作記錄塊的空閑頁不再存 在或者空閑頁不再可用時,可執(zhí)行塊合并。塊合并可分為交換合并、復(fù)制合 并和完全合并。當(dāng)執(zhí)行塊合并時,可根據(jù)待合并的塊的狀態(tài)來執(zhí)行三種合并之—。
如圖6所示,如果記錄在記錄塊610的連續(xù)物理頁中的邏輯頁的偏移量 逐步地(或按順序地)并按重復(fù)順序增加,并且如果記錄塊610中的有效邏 輯頁的數(shù)量與包括在記錄塊610中的物理頁的總數(shù)相同,則執(zhí)行交換合并。 交換合并將記錄塊610轉(zhuǎn)變(transfer)為新的數(shù)據(jù)塊620,更新地址轉(zhuǎn)換信 息,并擦除記錄在現(xiàn)有數(shù)據(jù)塊630中的數(shù)據(jù)。也就是說,在不復(fù)制記錄在現(xiàn) 有數(shù)據(jù)塊630或記錄塊610中的數(shù)據(jù)的情況下,通過更新地址轉(zhuǎn)換信息來執(zhí) 行交換合并。 一旦更新發(fā)生,現(xiàn)有的數(shù)據(jù)塊630就變?yōu)榭刹脸龎K。
如圖7所示,如果記錄在記錄塊710的連續(xù)物理頁中的邏輯頁的偏移量 逐步地(或按順序地)并按重復(fù)順序增加,并且如果記錄塊710中的有效邏 輯頁的數(shù)量與包括在記錄塊710中的物理頁的總數(shù)不同,則執(zhí)行復(fù)制合并。 復(fù)制合并將現(xiàn)有的數(shù)據(jù)塊700的有效邏輯頁復(fù)制到記錄塊710中的空閑頁, 并將記錄塊710轉(zhuǎn)變?yōu)樾碌臄?shù)據(jù)塊(未示出)。 一旦轉(zhuǎn)變發(fā)生,則現(xiàn)有的數(shù)據(jù) 塊700變?yōu)榭刹脸龎K(未示出)。
如圖8所示,如果記錄在記錄塊810的連續(xù)物理頁中的邏輯頁的偏移量 不是逐步地(或按順序地)并按重復(fù)順序增加,則執(zhí)行完全合并。完全合并 接收分配的空閑塊820,并將記錄塊810和現(xiàn)有數(shù)據(jù)塊800的有效邏輯頁復(fù) 制到分配的空閑塊820。 一旦復(fù)制發(fā)生,現(xiàn)有的數(shù)據(jù)塊800和記錄塊810就 變?yōu)榭刹脸龎K。
將參照圖9到圖12描述管理非易失性存儲器的方法。圖9是示出根據(jù)本
發(fā)明的 一 方面的寫操作的流程圖。
如果用戶請求使用第一邏輯頁的偏移量進(jìn)行寫操作,則操作單元400參 照映射信息搜索與第 一邏輯頁偏移量相應(yīng)的物理頁偏移量。然后,在操作S810 確定找到的物理頁是否可用于寫操作。
在操作S810之后,如果相應(yīng)的物理頁可用(操作S810中的"是"),則 在操作S860,操作單元400將數(shù)據(jù)記錄在所述物理頁中。在操作S860,數(shù)據(jù) 可被記錄在相應(yīng)的物理頁的數(shù)據(jù)區(qū)域中。當(dāng)數(shù)據(jù)被記錄在數(shù)據(jù)區(qū)域中時,第 一邏輯頁偏移量被記錄在物理頁的備用區(qū)域中。當(dāng)數(shù)據(jù)已經(jīng)被寫入時,操作 單元400更新映射區(qū)域的映射信息。
在操作S810之后,如果相應(yīng)的物理頁不可用(操作S810中的"否"), 即,在該物理頁中已經(jīng)記錄了數(shù)據(jù),則在操作S820,操作單元400確定是否 可分配空閑頁。
在操作S820之后,如果可分配空閑頁(操作S820中的"是"),則操作 單元400分配空閑頁,并在操作S865將數(shù)據(jù)記錄在所分配的空閑頁的數(shù)據(jù)區(qū) 域中。在操作S865,操作單元400將第一邏輯頁偏移量記錄在空閑頁的備用 區(qū)域中。
在操作S820之后,如果不可以分配相應(yīng)的空閑頁(操作S820中的"否,,), 則在操作S830,操作單元400確定是否可分配記錄塊,即,操作單元400確 定剩余的空閑塊的數(shù)量是否足夠。
如果剩余的空閑塊的數(shù)量足夠用于分配新的記錄塊(操作S830中的 "是"),則在操作S850,操作單元400將一個或多個預(yù)定的空閑塊分配給記 錄塊,并在操作S860將數(shù)據(jù)記錄在分配的記錄塊的物理頁中。在操作S860, 操作單元400在物理頁的數(shù)據(jù)區(qū)域中記錄數(shù)據(jù),并在物理頁的備用區(qū)域中記 錄第一邏輯頁偏移量。當(dāng)數(shù)據(jù)已經(jīng)被寫入時,在操作S870,操作單元400更 新映射區(qū)域的映射信息。
然而,如果剩余的空閑塊的數(shù)量不足以分配新的記錄塊(操作S830中的 "否"),則在操作S840,操作單元400通過執(zhí)行合并操作來產(chǎn)生新的空閑塊, 在操作S850將新的空閑塊分配給記錄塊,并在所分配的新的記錄塊的物理頁 中執(zhí)行寫操作。然后,在操作S870,操作單元400更新映射區(qū)域的映射信息。
在以上參照圖9的描述中,通過示例的方式描述了如果用戶請求寫操作 則執(zhí)行合并操作以產(chǎn)生空閑塊的方法。然而,如果非易失性存儲器的塊狀態(tài) 滿足預(yù)定的標(biāo)準(zhǔn),則可以自動地執(zhí)行合并操作。例如,不僅可在用戶請求寫 操作的情況下可執(zhí)行合并操作,可選擇地,還可在空閑塊的數(shù)量少于預(yù)定數(shù) 量的情況下執(zhí)行合并操作。
圖10是示出根據(jù)本發(fā)明的一方面的合并操作的流程圖。操作單元400 檢查在待合并的記錄塊中的邏輯頁的排序(sort)狀態(tài)。具體地說,在操作 S901,操作單元400檢查記錄塊中連續(xù)物理頁的備用區(qū)域,以便在操作S901 確定記錄在備用區(qū)域中的邏輯頁偏移量是否逐步地(或按順序)并按重復(fù)順 序增加。在此方面,偏移量逐步地并按重復(fù)順序增加表示邏輯頁偏移量逐步 地增加,并且具有最大偏移量的邏輯頁和具有最小偏移量的邏輯頁按順序存 在。
參照圖8,如圖IO所示,如果記錄在記錄塊的連續(xù)物理頁中的邏輯頁的 偏移量不是逐步地或按重復(fù)順序增加(操作S901中的"否"),則操作單元
400執(zhí)行相應(yīng)的記錄塊的完全合并。為了執(zhí)行完全合并,在操作S908,操作 單元400接收(或獲得)新的空閑塊,并在操作S909將記錄塊和數(shù)據(jù)塊中的 有效邏輯頁復(fù)制到新的空閑塊。在操作S909,操作單元400根據(jù)偏移量相繼 將有效邏輯頁復(fù)制到新的空閑塊,從而當(dāng)所有有效邏輯頁已^C復(fù)制到新的空 閑塊時,邏輯頁偏移量可以逐步地并按重復(fù)順序增加。當(dāng)記錄塊和數(shù)據(jù)塊中 的所有有效邏輯頁都已經(jīng)被復(fù)制到新的空閑塊時,在操作S910,操作單元400 將新的空閑塊轉(zhuǎn)變?yōu)樾碌臄?shù)據(jù)塊,并在操作S911更新映射信息。然后,在操 作S912,操作單元400對先前的數(shù)據(jù)塊和記錄塊執(zhí)行〗察除操作以便產(chǎn)生新的 空閑塊。
在另 一方面,如果記錄在記錄塊的連續(xù)物理頁中的邏輯頁的偏移量逐步 地或按重復(fù)順序增加(操作S901中的"是"),則在操作S902,操作單元400 確定在相應(yīng)記錄塊中的有效邏輯頁的數(shù)量是否與包括在記錄塊中的物理頁的 總數(shù)相同。
參照圖7,如圖IO所示,如果記錄塊中的有效邏輯頁的數(shù)量與包括在記 錄塊中的物理頁的總數(shù)不同(操作S902中的"否"),則操作單元400執(zhí)行復(fù) 制合并。為了執(zhí)行復(fù)制合并,在操作S903,操作單元400將與記錄塊相應(yīng)的 數(shù)據(jù)塊中的有效邏輯頁記錄到記錄塊的空閑頁中。在操作S903,操作單元400 根據(jù)偏移量將有效邏輯頁相繼復(fù)制到記錄塊,從而在復(fù)制處理之后當(dāng)操作單 元400檢查記錄塊的狀態(tài)時,邏輯頁偏移量可以逐步地并按重復(fù)順序增加。 當(dāng)復(fù)制處理完成時,在操作S904,操作單元400將記錄塊轉(zhuǎn)變?yōu)樾碌臄?shù)據(jù)塊, 并在操作S905更新映射信息。然后,在操作S906,操作單元400對先前數(shù) 據(jù)塊執(zhí)行擦除操作以便產(chǎn)生新的空閑塊。
參照圖6,如圖IO所示,如果記錄塊中的有效邏輯頁的數(shù)量與包括在記 錄塊中的物理頁的總數(shù)相同(操作S902中的"是"),則操作單元400執(zhí)行交 換合并。具體地說,在操作S904,操作單元400將記錄塊轉(zhuǎn)變?yōu)閿?shù)據(jù)塊,并 在操作S905更新映射信息。然后,在操作S906,操作單元400對先前數(shù)據(jù) 塊執(zhí)行擦除操作以便產(chǎn)生新的空閑塊。
圖ll是示出根據(jù)本發(fā)明一方面的讀操作的流程圖。當(dāng)用戶請求使用第一 邏輯頁偏移量進(jìn)行讀操作時,在操作S10,操作單元400訪問具有與第一邏 輯頁的偏移量(以下,稱為"第一偏移量"或X)相同的偏移量的第一物理 頁。然后,在操作S20,操作單元400檢查第一物理頁的備用區(qū)域以便獲得
第二邏輯頁偏移量(以下稱為"第二偏移量"或Y)。
在操作S30,操作單元400基于第二偏移量Y獲得其中記錄有第一邏輯 頁偏移量的第二物理頁的偏移量X,。具體地說,第一偏移量和第二偏移量分 別由"X"和"Y,,表示。如果第一偏移量X和第二偏移量Y的差由"Z"表 示,并且包括在塊中的物理頁的總數(shù)是N,則操作單元400基于等式1獲得 第二物理頁的偏移量X,
X, = (X+Z+N) mod N (1)
也就是說,操作單元400獲得的偏移量X,是將Z、 X和N相加后除以N 得到的余數(shù)(即,取模操作)。當(dāng)通過等式1獲得偏移量X'時,在操作S40, 操作單元400讀取第二物理頁。
在此方面,通過參照圖12可理解讀操作。圖12示出根據(jù)本發(fā)明一方面 的塊1200。在圖12中示出的塊1200包括八個物理頁(頁0-頁7)。邏輯頁偏 移量被記錄在每個物理頁的備用區(qū)域中,塊1200的邏輯頁偏移量逐步地并按 重復(fù)順序增加。(由于記錄在頁4中的邏輯頁偏移量是7,記錄在頁5中的邏 輯頁偏移量是O,因此邏輯頁偏移量被稱為按重復(fù)順序增加)。
如果輸入了讀取具有偏移量7的第一邏輯頁的請求,則操作訪問具有與 第一邏輯頁的偏移量相同的偏移量的第一物理頁。具體地,由于第一邏輯頁 偏移量是7,因此操作單元400訪問具有偏移量7的第一物理頁,即頁7。然 后,操作單元400檢查頁7的備用區(qū)域,并獲得第二邏輯頁偏移量Y, Y為2。
操作基于記錄在塊1200的第一物理頁(頁7)的備用區(qū)域中的第二邏輯 頁偏移量Y來獲得其中記錄有第 一邏輯頁偏移量的第二物理頁的偏移量X,。 具體地說,操作單元400基于等式1獲得第二物理頁的偏移量X,。在圖12 示出的方面,第二物理頁的偏移量X,為X, = (7+5+8) mod 8=4。
當(dāng)獲得了第二物理頁的偏移量X,時,操作單元400在相應(yīng)的塊中讀取具 有偏移量4的物理頁(即,第五頁)。在第五頁(即,頁4)的備用區(qū)域中, 數(shù)字7被記錄為邏輯頁的地址。
在本發(fā)明的各方面中,如果包括在塊中的邏輯頁被排序,則邏輯頁偏移 量可以逐步地并按重復(fù)順序增加,以便減少完全合并操作的次數(shù),從而提高
了非易失性存儲器中的寫操作的速度。
在本發(fā)明的各方面中,記錄在物理頁中的邏輯頁偏移量被記錄在物理頁 的備用區(qū)域中,從而在不參照物理頁和邏輯頁的映射信息的情況下,指示其
中記錄有請求的邏輯頁的物理頁的偏移量。
在各方面中,非易失性存儲器可以是閃存。另外,在各個方面中,邏輯
頁和/或物理頁的偏移量的增加可被稱為上升(ascending),其重復(fù)可被稱為 循環(huán)。在各方面中,逐步地并按重復(fù)順序增加可被稱為順序循環(huán)。在各方面 中,至少一個指的是一個或多個部件的任意組合。另外,和/或的使用指的是 一個或多個部件的任意組合。
雖然已經(jīng)示出和描述了本發(fā)明的若干方面,但是本領(lǐng)域的技術(shù)人員將理 解,在不脫離本發(fā)明的原理和精神的情況下,可以在各方面做出改變,本發(fā) 明的范圍由權(quán)利要求及其等同物限定。
權(quán)利要求
1、一種非易失性存儲器管理設(shè)備,包括非易失性存儲器,具有第一塊和第二塊,所述第一塊和第二塊具有一個或多個物理頁;以及操作單元,根據(jù)記錄在第一塊的連續(xù)物理頁中的邏輯頁偏移量是否逐步地并按重復(fù)順序增加來確定對第一塊和第二塊執(zhí)行的合并操作。
1、 一種非易失性存儲器管理設(shè)備,包括非易失性存儲器,具有第一塊和第二塊,所述第一塊和第二塊具有一個 或多個物理頁;以及操作單元,根據(jù)記錄在第一塊的連續(xù)物理頁中的邏輯頁偏移量是否逐步 地并按重復(fù)順序增加來確定對第一塊和第二塊執(zhí)行的合并操作。
2、 如權(quán)利要求l所述的設(shè)備,其中,物理頁包括 數(shù)據(jù)區(qū)域,數(shù)據(jù)被記錄在所述數(shù)據(jù)區(qū)域中;以及備用區(qū)域,邏輯頁偏移量中的一個被記錄在所述備用區(qū)域中。
3、 如權(quán)利要求l所述的設(shè)備,其中,如果邏輯頁偏移量不是逐步地或按 重復(fù)順序增加,則操作單元執(zhí)行將第一塊和第二塊的一個或多個有效邏輯頁 復(fù)制到?jīng)]有記錄數(shù)據(jù)的空閑塊的完全合并。
4、 如權(quán)利要求3所述的設(shè)備,其中,操作單元將有效邏輯頁復(fù)制到空閑 塊,從而有效邏輯頁的偏移量逐步地并按重復(fù)順序增加。
5、 如權(quán)利要求l所述的設(shè)備,其中,如果邏輯頁偏移量逐步地并按重復(fù) 順序增加,并且第一塊中的有效邏輯頁的數(shù)量與包括在第一塊中的物理頁的 總數(shù)不同,則操作單元執(zhí)行將第二塊的一個或多個有效邏輯頁復(fù)制到第 一塊 中沒有記錄數(shù)據(jù)的空閑頁的復(fù)制合并。
6、 如權(quán)利要求5所述的設(shè)備,其中,操作單元將有效邏輯頁復(fù)制到第一 塊的空閑頁,從而有效邏輯頁的偏移量逐步地并按重復(fù)順序增加。
7、 如權(quán)利要求l所述的設(shè)備,其中,如果邏輯頁偏移量逐步地并按重復(fù) 順序增加,并且第一塊中的有效邏輯頁的數(shù)量與包括在第一塊中的物理頁的 總數(shù)相同,則操作單元執(zhí)行將第一塊轉(zhuǎn)變?yōu)榈谌龎K的交換合并。
8、 一種非易失性存儲器管理設(shè)備,包括非易失性存儲器,具有至少一個塊,其中,記錄在所述塊的連續(xù)物理頁中的一個或多個邏輯頁偏移量逐步地并按重復(fù)順序增加;輸入單元,接收使用第一邏輯頁偏移量執(zhí)行讀操作的請求;操作單元,在訪問具有與第 一邏輯頁的偏移量相同的偏移量的第 一物理頁之后,基于使用第 一物理頁獲得的第二邏輯頁偏移量獲得記錄有第 一邏輯頁偏移量的第二物理頁的偏移量。
9、 如權(quán)利要求8所述的設(shè)備,其中,物理頁包括 數(shù)據(jù)區(qū)域,數(shù)據(jù)被記錄在所述數(shù)據(jù)區(qū)域中;備用區(qū)域,邏輯頁偏移量中的一個被記錄在所述備用區(qū)域中。
10、 如權(quán)利要求8所述的設(shè)備,其中,第二物理頁的偏移量是第一物理 頁的偏移量和第二邏輯頁的偏移量之差與第一物理頁的偏移量以及包括在第 一塊中的物理頁的總數(shù)相加的結(jié)果除以所述物理頁的總數(shù)所得到的余數(shù)。
11 、 一種具有第 一塊和第二塊的非易失性存^l器的非易失性存儲器管理 方法,所述第一塊和第二塊具有一個或多個物理頁,所述方法包括確定記錄在第一塊的連續(xù)物理頁中的邏輯頁偏移量是否逐步地并按重復(fù) 順序增加;以及根據(jù)確定的結(jié)果決定對第一塊和第二塊執(zhí)行的合并操作。
12、 如權(quán)利要求11所述的方法,其中,物理頁包括 數(shù)據(jù)區(qū)域,數(shù)據(jù)被記錄在所述數(shù)據(jù)區(qū)域中;以及備用區(qū)域,所述偏移量中的一個被記錄在所述備用區(qū)域中。
13、 如權(quán)利要求11所述的方法,其中,如果邏輯頁偏移量不是逐步地或 按重復(fù)順序增加,則待執(zhí)行的合并操作的決定步驟包括將第 一塊和第二塊的一個或多個有效邏輯頁復(fù)制到?jīng)]有記錄數(shù)據(jù)的空閑 塊;以及對第 一塊和第二塊執(zhí)行擦除操作以便產(chǎn)生新的空閑塊。
14、 如權(quán)利要求13所述的方法,其中,復(fù)制步驟包括將所述有效邏輯 頁復(fù)制到空閑塊,從而使所述有效邏輯頁的偏移量逐步地并按重復(fù)順序增加。
15、 如權(quán)利要求11所述的方法,其中,如果邏輯頁偏移量逐步地并按重 復(fù)順序增加,并且第 一塊中的有效邏輯頁的數(shù)量與包括在第 一塊中的物理頁 的總數(shù)不同,則決定步驟包括將第二塊的 一個或多個有效邏輯頁復(fù)制到第 一塊中沒有記錄數(shù)據(jù)的空閑 頁;以及對第二塊執(zhí)行擦除操作以便產(chǎn)生新的空閑塊。
16、 如權(quán)利要求15所述的方法,其中,復(fù)制步驟包括將第二塊的有效 邏輯頁復(fù)制到空閑塊,從而使第一塊中的有效邏輯頁的偏移量逐步地并按重 復(fù)順序增加。
17、 如權(quán)利要求11所述的方法,其中,如果邏輯頁偏移量逐步地并按重復(fù)順序增加,并且第 一塊中的有效邏輯頁的數(shù)量與包括在第 一塊中的物理頁的總數(shù)相同,則決定步驟包括將第一塊轉(zhuǎn)變?yōu)榈谌龎K;以及 對第二塊執(zhí)行^^除操作以便產(chǎn)生新的空閑塊。
18、 一種具有至少一個塊的非易失性存儲器的非易失性存儲器管理方法, 其中,記錄在第一塊的連續(xù)物理頁中的一個或多個邏輯頁偏移量逐步地并按 重復(fù)順序增加,所述方法包括接收對使用第 一邏輯頁偏移量執(zhí)行讀操作的請求; 訪問具有與第一邏輯頁偏移量相同的偏移量的第一物理頁;以及 基于從第 一物理頁獲得的第二邏輯頁偏移量來獲得記錄有第 一邏輯頁偏 移量的第二物理頁的偏移量。
19、 如權(quán)利要求18所述的方法,其中,物理頁包括 數(shù)據(jù)區(qū)域,數(shù)據(jù)被記錄在所述數(shù)據(jù)區(qū)域中;以及備用區(qū)域,邏輯頁偏移量中的一個被記錄在所述備用區(qū)域中。
20、 如權(quán)利要求18所述的方法,其中,第二物理頁的偏移量是第一物理 頁的偏移量和第二邏輯頁的偏移量之差與第一物理頁的偏移量的偏移量以及 包括在第 一塊中的物理頁的總數(shù)相加的結(jié)果除以物理頁的總數(shù)所得到的余 數(shù)。
21、 一種管理具有多個邏輯頁和多個物理頁的塊的非易失性存儲器的方 法,包括基于所述多個邏輯頁的偏移量是否順序循環(huán)和所述塊的有效邏輯頁的數(shù) 量是否與包括在所述塊中的物理頁的總數(shù)相同以上兩個條件中的至少一個來 確定執(zhí)行交換合并、復(fù)制合并還是完全合并;以及對執(zhí)行了交換合并、復(fù)制合并或完全合并的一個或多個塊執(zhí)行擦除操作。
22、 如權(quán)利要求21所述的方法,還包括如果所述多個邏輯頁的偏移量 順序循環(huán),并且如果所述塊中的有效邏輯頁的數(shù)量與包括在所述塊中的物理 頁的總數(shù)相同,則執(zhí)行交換合并。
23、 如權(quán)利要求21所述的方法,還包括如果所述多個邏輯頁的偏移量 順序循環(huán),并且如果所述塊中的有效邏輯頁的數(shù)量與包括在所述塊中的物理 頁的總數(shù)不同,則執(zhí)行復(fù)制合并。
24、 如權(quán)利要求21所述的方法,還包括如果所述多個邏輯頁的偏移量 不是順序循環(huán),并且如果所述塊的有效邏輯頁的數(shù)量與包括在所述塊中的物理頁的總數(shù)不同,則執(zhí)行完全合并。
25、 如權(quán)利要求21所述的方法,其中,如果用戶請求寫操作,或者如果 空閑塊的數(shù)量比預(yù)定的數(shù)量少,則執(zhí)行合并。
26、 如權(quán)利要求21所述的方法,其中,順序循環(huán)的所述多個邏輯頁的偏 移量減少了所執(zhí)行的完全合并的次數(shù)。
27、 如權(quán)利要求21所述的方法,其中,邏輯頁的偏移量被記錄在物理頁 的備用區(qū)域中,從而在不參照邏輯頁和物理頁的映射信息的情況下指示物理 頁的偏移量。
28、 一種管理具有多個邏輯頁和多個物理頁的塊的非易失性存儲器的設(shè) 備,包括非易失性存儲器;以及控制器,基于所述多個邏輯頁的偏移量是否順序循環(huán)和所述塊的有效邏 輯頁的數(shù)量是否與包括在所述塊中的物理頁的總數(shù)相同以上兩個條件中的至 少一個,來確定執(zhí)行交換合并、復(fù)制合并還是完全合并,并對執(zhí)行了交換合 并、復(fù)制合并或完全合并的一個或多個塊執(zhí)行擦除操作。
29、 如權(quán)利要求28所述的設(shè)備,其中,如果所述多個邏輯頁的偏移量順 序循環(huán),并且如果所述塊中的有效邏輯頁的數(shù)量與包括在所述塊中的物理頁 的總數(shù)相同,則控制器執(zhí)行交換合并。
30、 如權(quán)利要求28所述的設(shè)備,其中,如果所述多個邏輯頁的偏移量順 序循環(huán),并且如果所述塊中的有效邏輯頁的數(shù)量與包括在所述塊中的物理頁 的總數(shù)不同,則控制器執(zhí)行復(fù)制合并。
31、 如權(quán)利要求28所述的設(shè)備,其中,如果所述多個邏輯頁的偏移量不 是順序循環(huán),并且如果所述塊的有效邏輯頁的數(shù)量與包括在所述塊中的物理 頁的總數(shù)不同,則控制器執(zhí)行完全合并。
32、 如權(quán)利要求28所述的設(shè)備,其中,如果用戶請求寫操作,或者如果 空閑塊的數(shù)量比預(yù)定的數(shù)量少,則執(zhí)行合并。
33、 如權(quán)利要求28所述的設(shè)備,其中,順序循環(huán)的所述多個邏輯頁的偏 移量減少了所執(zhí)行的完全合并的次數(shù)。
34、 如權(quán)利要求28所述的設(shè)備,其中,邏輯頁的偏移量被記錄在物理頁 的備用區(qū)域中,從而在不參照邏輯頁和物理頁的映射信息的情況下指示物理 頁的偏移量。
全文摘要
公開了一種管理非易失性存儲器的設(shè)備和方法,其中,所述非易失性存儲器管理設(shè)備包括非易失性存儲器,具有第一塊和第二塊,所述第一塊和第二塊具有一個或多個物理頁;以及操作單元,根據(jù)記錄在第一塊的連續(xù)物理頁中的邏輯頁偏移量是否逐步地并按重復(fù)順序增加來確定對第一塊和第二塊執(zhí)行的合并操作的類型。
文檔編號G06F12/06GK101187898SQ200710168029
公開日2008年5月28日 申請日期2007年11月2日 優(yōu)先權(quán)日2006年11月20日
發(fā)明者尹松虎, 禹南允, 金辰圭 申請人:三星電子株式會社