亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

地址映射方法和映射信息管理方法及其閃速存儲器的制作方法

文檔序號:6447316閱讀:123來源:國知局
專利名稱:地址映射方法和映射信息管理方法及其閃速存儲器的制作方法
技術(shù)領域
本發(fā)明涉及一種用于訪問閃速存儲器的方法,更具體地講,涉及一種當使用邏輯-物理映射方案來訪問閃速存儲器時減小性能的降低的方法,以及一種用于在閃速存儲器中有效地存儲并管理關于邏輯-物理映射的信息的方法。
背景技術(shù)
由于閃速存儲器具有高存取速度和低功耗,并且與硬盤一樣是非易失性的,所以它們被廣泛地應用于例如嵌入式系統(tǒng)和移動裝置的應用中。
為了在閃速存儲器的已經(jīng)寫入的扇區(qū)中執(zhí)行寫操作,則考慮到閃速存儲器的硬件特性,擦除包括扇區(qū)的整個塊的操作應被提前執(zhí)行。這是閃速存儲器的性能的降低的主要原因。
為了解決以上的寫之前擦除的問題,邏輯和物理地址的概念被引入。即,通過幾種類型的映射算法,對于從主機端請求的邏輯地址的讀/寫操作被轉(zhuǎn)變?yōu)閷τ陂W速存儲器的實際物理地址的讀/寫操作。此時,因為考慮其物理狀態(tài),所以可最大化閃速存儲器的性能。
近來,為了提高閃速存儲器系統(tǒng)的性能,開發(fā)了其中連續(xù)的閃速操作同時可被緩沖并且被處理的閃速存儲器。此閃速存儲器被稱為大型塊閃速存儲器。然而,事實上,如果現(xiàn)有的邏輯-物理映射算法被應用到大型塊閃速存儲器中,則大型塊閃速存儲器的優(yōu)點不能被充分地實現(xiàn)。因此,對于大型塊閃速存儲器,像本發(fā)明一樣,存在對有效邏輯-物理映射算法的需求。
在轉(zhuǎn)讓給‘艾蒙系統(tǒng)閃速盤倡導者(M-Systems F1ash Disk Pioneer)’的專利號為5,404,485和5,937,425的美國專利、轉(zhuǎn)讓給‘三菱(Mitsubishi)’的專利號為5,905,993的美國專利、和轉(zhuǎn)讓給‘三星電子(Samsung Electronics)’的專利號為6,381,176的美國專利等中描述了閃速存儲器邏輯-物理映射方案的傳統(tǒng)技術(shù)。在這樣的現(xiàn)有技術(shù)中的閃速存儲器訪問方法的核心涉及響應于對從主機端請求的邏輯扇區(qū)的寫請求,寫操作在閃速存儲器的實際物理扇區(qū)中如何有效地被執(zhí)行。這里,假設在閃速存儲器中擦除操作以塊為基礎被執(zhí)行,并且讀/寫操作以扇區(qū)為基礎被執(zhí)行,現(xiàn)有技術(shù)被粗略地分為扇區(qū)映射方案和塊映射方案。
圖1示出傳統(tǒng)扇區(qū)映射的例子。由扇區(qū)號和扇區(qū)號偏移量組成的虛擬地址,通過已經(jīng)被存儲在閃速存儲器中的以扇區(qū)為基礎的映射信息被轉(zhuǎn)換為邏輯地址。隨后可從獲得的邏輯地址的高位獲得邏輯塊號。最后的物理地址將從存儲在主存儲器中的邏輯塊-物理塊表被獲得。
圖2示出傳統(tǒng)塊映射的例子。虛擬塊具有主塊和映射到其的替換塊。即,在任一邏輯塊中的一個扇區(qū)通過以塊為基礎的映射信息將被映射到另一塊中的一個扇區(qū)。此時,如果其他數(shù)據(jù)已經(jīng)被寫入主塊中的相關扇區(qū)中,那么數(shù)據(jù)被寫入替換塊中。
閃速存儲器包括讀、寫和擦除的三個主要操作。本發(fā)明的主要內(nèi)容是關于讀和寫操作。因為讀操作和寫操作在操作中沒有明顯的區(qū)別,所以現(xiàn)有技術(shù)中的寫操作將在這里討論。
主機轉(zhuǎn)發(fā)邏輯扇區(qū)號(LSN)以在閃速存儲器中寫數(shù)據(jù)。在如圖1的扇區(qū)映射方案中,因為對于LSN和PSN(物理扇區(qū)號)的映射表存在,所以其足夠在相關PSN中寫數(shù)據(jù)。此時,在數(shù)據(jù)已經(jīng)存在于相關PSN中的情況下,另一空PSN被找到。數(shù)據(jù)被寫入找到的PSN中并且映射信息被修改。
在如圖2的塊映射方案中,邏輯塊號(LBN)從給定的LSN中獲得,物理塊號(PBN)從存在的LBN-PBN映射表被找到,并且具有匹配的偏移量的PSN被找到以在其中寫數(shù)據(jù)。當在處于扇區(qū)映射狀態(tài)下數(shù)據(jù)已經(jīng)充滿扇區(qū)時,數(shù)據(jù)被寫入可寫的塊中的扇區(qū)中,并且映射信息被修改。
近來已經(jīng)開發(fā)的大型塊閃速存儲器提供用于兩個或多個扇區(qū)的讀和寫方案。即,假設在閃速存儲器中以頁為基礎執(zhí)行操作并且頁的大小等于4個扇區(qū),可同時讀或?qū)?個扇區(qū)。然而,因為現(xiàn)存的邏輯-物理映射算法假設主機的扇區(qū)大小等于用于閃速存儲器的操作的基準,所以當現(xiàn)有的算法被應用到大型塊閃速存儲器時不能獲得大型塊閃速存儲器的優(yōu)點。特別地,即使大型塊閃速存儲器關于用于一個或多個連續(xù)扇區(qū)的寫操作(多個扇區(qū)寫操作)顯示出極好的性能,現(xiàn)有的算法也不考慮這種特性。

發(fā)明內(nèi)容
本發(fā)明的目的在于解決上述問題。本發(fā)明的一個目的在于提供一種適用于大型塊閃速存儲器的邏輯-物理映射算法。
本發(fā)明的另一目的在于提供一種方法,通過其閃速存儲器的性能可被最大化,并且通過邏輯-物理映射信息管理方法該系統(tǒng)即使在突然掉電的情況下也可被恢復。
根據(jù)用于實現(xiàn)上述目的的本發(fā)明的示例性實施例,提供了一種用于將數(shù)據(jù)寫入包括具有包括預定數(shù)目的扇區(qū)的頁的至少一個塊的閃速存儲器中的方法,其中數(shù)據(jù)以扇區(qū)或頁為基礎被寫入并且以塊為基礎被擦除。該方法包括第一步驟,確定在具有將被寫入的數(shù)據(jù)的最近寫入的邏輯頁號的物理頁中扇區(qū)是否為空,扇區(qū)的偏移量匹配將被寫入的數(shù)據(jù)的偏移量;第二步驟,如果確定其偏移量匹配的扇區(qū)為空,那么將數(shù)據(jù)寫入其偏移量匹配的物理頁的扇區(qū)中;和第三步驟,如果確定其偏移量匹配的扇區(qū)不為空,那么選擇空物理頁以將數(shù)據(jù)寫入其偏移量匹配將被寫入的數(shù)據(jù)的偏移量的被選空物理頁中的扇區(qū)中,并且將數(shù)據(jù)的物理頁號寫入被選空物理頁中。
根據(jù)本發(fā)明的示例性實施例,提供了一種用于將數(shù)據(jù)寫入閃速存儲器中的方法,包括第一步驟,確定空扇區(qū)是否存在于具有將被寫入的數(shù)據(jù)的最近寫入的邏輯頁號的物理頁中,空扇區(qū)能夠存儲將被寫入的數(shù)據(jù);第二步驟,如果確定空扇區(qū)存在,那么將數(shù)據(jù)寫入物理頁中的空扇區(qū)中,并且將數(shù)據(jù)的邏輯扇區(qū)號寫入物理頁中;和第三步驟,如果確定空扇區(qū)不存在,那么選擇空物理頁以將數(shù)據(jù)寫入被選物理頁中的空扇區(qū)中,并且將數(shù)據(jù)的邏輯頁號和邏輯扇區(qū)號寫到被選空物理頁中。
根據(jù)本發(fā)明的示例性實施例,提供了一種用于將數(shù)據(jù)寫入閃速存儲器中的方法,包括第一步驟,確定能夠存儲將被寫入的數(shù)據(jù)的空扇區(qū)是否存在于當前塊中;和第二步驟,如果確定空扇區(qū)存在,那么將數(shù)據(jù)寫入空扇區(qū)中,并且將數(shù)據(jù)的物理扇區(qū)號寫入與空扇區(qū)位于的相同的物理頁的物理頁中。
根據(jù)本發(fā)明的示例性實施例,提供了一種包括具有包括預定數(shù)目的扇區(qū)的頁的至少一個塊的閃速存儲器,其中,數(shù)據(jù)以扇區(qū)或頁為基礎被寫入,并且以塊為基礎被擦除。閃速存儲器確定在具有將被寫入的數(shù)據(jù)的最近寫入的邏輯頁號的物理頁中其偏移量匹配將被寫入的數(shù)據(jù)的任何扇區(qū)是否為空。如果確定其偏移量匹配的扇區(qū)為空,那么閃速存儲器將數(shù)據(jù)寫入在物理頁中其偏移量匹配的扇區(qū)中。如果確定其偏移量匹配的扇區(qū)不為空,那么閃速存儲器選擇空物理頁以將數(shù)據(jù)寫入其偏移量匹配將被寫入的數(shù)據(jù)的偏移量的扇區(qū)中,并且將數(shù)據(jù)的邏輯頁號寫入被選空物理頁中。
根據(jù)本發(fā)明的示例性實施例,提供了一種閃速存儲器,其中確定能夠存儲將被寫入的數(shù)據(jù)的空扇區(qū)是否存在于具有將被寫入的數(shù)據(jù)的最近寫入的邏輯頁號的物理頁中。如果確定空扇區(qū)存在,那么閃速存儲器將數(shù)據(jù)寫入物理頁中的空扇區(qū)中,并且將數(shù)據(jù)的邏輯扇區(qū)號寫入物理頁中。如果確定空扇區(qū)不存在,那么空物理頁被選擇以將數(shù)據(jù)寫入被選物理頁中的空扇區(qū)中,并且將數(shù)據(jù)的邏輯頁號和邏輯扇區(qū)號寫入被選空物理頁中。
根據(jù)本發(fā)明的示例性實施例,提供了一種閃速存儲器,其中,進行確定關于能夠存儲將被寫入的數(shù)據(jù)的空扇區(qū)是否存在于當前塊中,并且如果空扇區(qū)存在,數(shù)據(jù)被寫入空扇區(qū)中,并且數(shù)據(jù)的邏輯扇區(qū)號被寫入與空扇區(qū)位于其中的物理頁相同的物理頁中。
根據(jù)本發(fā)明的示例性實施例,提供了一種包括多個塊的閃速存儲器,包括至少一個其中一些塊被分配作為單獨的映射塊以存儲邏輯-物理映射信息的映射片段單元。此時,映射塊存儲分為片段的映射信息。當映射信息被修改時,通過將存儲修改的信息的映射片段單元寫入該映射塊中的空單元中來更新映射信息。


通過下面結(jié)合附圖對優(yōu)選實施例進行的描述,本發(fā)明的上述和其他目的和特點將會變得更加清楚,其中圖1是示出扇區(qū)映射的例子的示圖;圖2是示出傳統(tǒng)塊映射的例子的示圖;圖3是示出具有在其上運行的閃速存儲器的系統(tǒng)的整個結(jié)構(gòu)的示圖;圖4是示出傳統(tǒng)的NAND類型的小型塊閃速存儲器的配置的示圖;圖5是示出傳統(tǒng)的NAND類型的大型塊閃速存儲器的配置的示圖;圖6是示出作為用于在大型塊閃速存儲器中讀/寫操作的基礎的頁的基本格式的示圖;圖7是示出根據(jù)本發(fā)明的一對一的頁映射處理的流程圖;圖8是示出根據(jù)本發(fā)明的一對一的頁映射方法的應用例子的示圖;圖9是示出根據(jù)本發(fā)明的一對n的頁映射處理的流程圖;圖10是示出根據(jù)本發(fā)明的一對n的頁映射方法的應用例子的示圖;
圖11是示出一對一的頁映射被應用到其的扇區(qū)映射方法的流程圖;圖12是示出根據(jù)本發(fā)明的一對一的頁映射被應用到其的扇區(qū)映射方法的應用例子的示圖;圖13是示出根據(jù)本發(fā)明的一對n的頁映射被應用到其的扇區(qū)映射方法的流程圖;圖14是示出根據(jù)本發(fā)明的一對n的頁映射方法的應用例子的示圖;圖15是示出根據(jù)本發(fā)明的偏移量匹配的扇區(qū)映射方法的流程圖;圖16是示出根據(jù)本發(fā)明的偏移量匹配的扇區(qū)映射方法的應用例子的示圖;圖17是示出根據(jù)本發(fā)明的偏移量失配的扇區(qū)映射方法的流程圖;圖18是示出根據(jù)本發(fā)明的偏移量失配的扇區(qū)映射方法的應用例子的示圖;圖19A是示出映射塊和映射片段之間的關系的示圖;圖19B是示出存儲在映射片段中的信息的例子的示圖;圖19C是示出當映射片段被修改時的操作的示圖;圖20是示出預定分配數(shù)目的映射塊的示圖;和圖21是示出根據(jù)本發(fā)明的在映射片段單元中的備用區(qū)域的配置的示圖。
具體實施例方式
以下,參照附圖來詳細描述本發(fā)明的示例性實施例。以下結(jié)合附圖對實施例進行詳細討論,本發(fā)明的優(yōu)點和特點以及用于實現(xiàn)優(yōu)點和特點的方法將會變得清楚。然而,本發(fā)明不受下述的實施例的限制,并且將以各種不同的方式來實現(xiàn)。描述的示例性實施例打算完成揭示本發(fā)明,并且為向本發(fā)明所屬的技術(shù)領域的技術(shù)人員完全指示本發(fā)明的范圍而提供。本發(fā)明僅由權(quán)利要求的范圍限定。在整個描述中,相同的標號始終表示相同的部件。
圖3示出具有在其上運行閃速存儲器的系統(tǒng)的整個結(jié)構(gòu)。能夠XIP的存儲器311是能夠本地執(zhí)行(XIP)功能的存儲器,例如只讀存儲器(ROM)或者隨機存取存儲器(RAM)。程序代碼可被加載并且在這種存儲器上執(zhí)行。在這種存儲器中,RAM是易失性的而ROM是非易失性的。閃速存儲器312不是前述的能夠XIP的存儲器311而是用于存儲數(shù)據(jù)并且具有非易失特性的簡單存儲器。CPU 313用于通過執(zhí)行加載到直接地(自)可執(zhí)行存儲器中閃速存儲器存取代碼來將從外部主機300請求的讀/寫操作轉(zhuǎn)變?yōu)閷﹂W速存儲器的讀/寫操作。
圖4和5示出128MB NAND類型的當前閃速存儲器的配置。注意本發(fā)明可被應用于存儲容量大小不同的閃速存儲器中。如圖4所示的小型塊閃速存儲器是其中對于從外部主機請求的數(shù)據(jù)的讀/寫操作的基礎與由閃速存儲器實際提供的讀/寫操作的基礎相同的系統(tǒng)。例如,如果由外部主機以512B為基礎進行讀或?qū)懻埱?,所以即使在閃速存儲器中同樣以512B為基礎進行讀和寫。在如圖4的128MB閃速存儲器的情況下,一頁包括主區(qū)域512B和備用區(qū)域16B,并且作為用于擦除操作的基礎的塊包括32頁。
在如圖5中的大型塊閃速存儲器的情況下,用于閃速存儲器的讀/寫操作的基礎是用于由外部主機請求的讀/寫操作的多個基礎。具體地講,在圖5的例子中,可看出閃速存儲器中的一個頁的大小與四個扇區(qū)的大小相同,并且作為用于擦除操作的基礎的塊包括64頁。
圖6示出用于大型塊閃速存儲器的讀/寫操作的基礎的頁的基本結(jié)構(gòu)。近來,通常使用的大型塊閃速存儲器具有在小型塊閃速存儲器中的頁的大小的四倍的頁,因此,四個扇區(qū)可被存儲在大型閃速存儲器的主區(qū)域中。然而,即使四個或或多或少的扇區(qū)被存儲在一個頁中,本領域的技術(shù)人員應該明白,本發(fā)明的概念可被等同地應用。幾類的元信息可被存儲在備用區(qū)域中。主要元信息可包括作為每一扇區(qū)的邏輯扇區(qū)號的‘LSN(邏輯扇區(qū)號)’和作為閃速存儲器的一個頁的邏輯頁號的‘LPN(邏輯頁號)’。因此,邏輯-物理映射信息可被存儲在閃速存儲器的每一頁中,但是映射表信息被單獨地存儲在閃速存儲器的整個區(qū)域的部分中時可考慮不同的方法。
本發(fā)明是指將由主機端對邏輯地址的讀/寫請求轉(zhuǎn)變?yōu)閷Υ笮蛪K閃速存儲器的物理地址的讀/寫請求的方法。將通過用于大型塊的邏輯-物理地址映射方法和邏輯-物理地址映射信息管理方法來討論本發(fā)明。
邏輯-物理地址映射方法首先,將討論用于大型塊的邏輯-物理地址映射算法。閃速存儲器的主要操作包括寫操作和讀操作,并且因為讀操作僅僅是寫操作的相反操作,則將討論寫操作。
由外部主機請求的寫操作有兩類。一類是輸入LSN和相關數(shù)據(jù)的單一扇區(qū)寫操作,另一類是輸入開始LSN、連續(xù)LSN的數(shù)目、和相關數(shù)據(jù)的多扇區(qū)寫操作。因為大型塊閃速存儲器系統(tǒng)能夠執(zhí)行對于至少一個扇區(qū)的并發(fā)的寫操作,所以其可在多扇區(qū)寫操作中提供極好的性能。另外,因為在當前被通常使用的大容量的閃速存儲器中的一頁包括四個扇區(qū),其一頁包括四個扇區(qū)的大型塊閃速存儲器的邏輯-物理映射算法將作為本發(fā)明的例子被討論。
因為大型塊閃速存儲器不像小型塊閃速存儲器,其一頁包括幾個扇區(qū)并且具有能夠多扇區(qū)寫操作的結(jié)構(gòu),與小型塊閃速存儲器相比大型塊閃速存儲器可容納各種邏輯-物理地址映射算法。
即,傳統(tǒng)小型塊閃速存儲器系統(tǒng)具有塊和作為用于基本邏輯映射的基礎的扇區(qū),而大型塊閃速存儲器具有頁以及塊和作為用于基本映射的基礎的扇區(qū)。如上所述,在單一扇區(qū)寫操作的情況下,大型塊閃速存儲器的寫操作的輸入是LSN和相關數(shù)據(jù),并且該輸入通過映射算法被轉(zhuǎn)換為作為閃速存儲器的物理地址的物理扇區(qū)號(PSN)。
首先,相應于LSN的邏輯塊號的LBN通過閃速存儲器的每塊的扇區(qū)號來計算。相應于計算的LBN的物理塊號的PBN通過參照LBN和PBN之間的映射表來確定。確定PBN的另一方法還包括通過將LBN寫入閃速存儲器的每一塊的特定區(qū)域來存儲邏輯物理塊映射信息,并且找到相應于LBN的PBN的方法。
從找到的PBN獲得扇區(qū)地址的方法粗略的包括兩種方法在假設扇區(qū)偏移量在邏輯塊和物理塊之間相同的情況下獲得扇區(qū)地址的方法,和其中通過存儲新的映射信息在扇區(qū)偏移量之間沒有匹配被需要的方法。因為前者已經(jīng)在現(xiàn)有技術(shù)中提出,所以后者被應用到根據(jù)本發(fā)明的大型塊閃速存儲器。具體地講,其被分為六種方法的總和。第一和第二種方法是頁映射第三和第四方法是頁映射應用到其的扇區(qū)映射,以及第五和第六種方法是不具有頁映射的扇區(qū)映射方法。對于頁映射,LPN應如圖6中被寫入,并且對于扇區(qū)映射,LSN應如6中被寫入。
第一方法是一對一的頁映射方法,其中僅存在一個相應于一個邏輯地址的物理地址。圖7是示出根據(jù)本發(fā)明的一對一的頁映射處理的流程圖。首先,將被處理的至少一個扇區(qū)的LSN從外部主機輸入(S110)。LPN和LBN根據(jù)LSN被計算,并且通過使用以預定塊為基礎的映射信息來確定PBN(S120)。與確定的PBN相關的物理塊須經(jīng)以下處理。首先,確定相關LPN是否曾經(jīng)在物理塊中被使用(S130)。對于到大型塊閃速存儲器的應用,通過使用在本發(fā)明中提出的頁的概念,預先確定特定扇區(qū)被包括在特定頁中。因此,相關LPN是指包括以上定義的LSN的頁的LPN。
在一對一的頁映射方案中,因為一個物理頁號(PPN)被確定用于一個LPN,所以需要檢查關于輸入的數(shù)據(jù)是否可被寫入確定的PPN中。如果在S130中確定LPN還未被使用,則確定在適當位置的頁是否為空(S131)。如果該頁為空,則數(shù)據(jù)被寫入該適當位置(S132),LPN被寫入與那個位置相關的頁的備用區(qū)域中(S133)并且結(jié)束處理。該適當位置是指由現(xiàn)有的物理-邏輯映射信息來描述的默認位置。即,其是指被描述以便根據(jù)預定映射信息具有特定LSN的扇區(qū)被寫入具有特定LPN的頁的偏移量的位置。
因此,數(shù)據(jù)基本上被寫入其自己的適當位置,但是當其他數(shù)據(jù)已經(jīng)被寫入時,從而,沒有被寫入適當位置時,其能夠?qū)⑵渌麛?shù)據(jù)從具有較低編號的物理頁號的上面的頁或物理頁到空物理頁順序地寫入。
如果在S130中確定LPN已經(jīng)被使用,所以當存在許多具有有效LPN的頁,即,具有使用的LPN的頁時,進行關于其偏移量匹配的扇區(qū)以及在最近生成的頁中的隨后的扇區(qū)是否為空(S140)。如果為空,則數(shù)據(jù)被寫入其偏移量匹配的扇區(qū)的位置(S150),并且結(jié)束處理。這里,偏移量是指在一個頁中適于被扇區(qū)占據(jù)的位置。例如,如果預先確定D4、D5、D6、和D7被順序?qū)懭肴我豁撝?,則D4、D5、D6、和D7將具有分別作為它們偏移量值的0、1、2、和3。
在本發(fā)明中,為了獲得在多扇區(qū)寫操作中的高性能,盡管相關扇區(qū)為空,則只要頁中的所有下一扇區(qū)不為空,數(shù)據(jù)就不被寫入相關扇區(qū)中。原因是因為大多數(shù)寫請求是對于連續(xù)扇區(qū),并且其后當扇區(qū)不為空時,執(zhí)行對于相關扇區(qū)的寫操作,并且隨后請求向連續(xù)扇區(qū)的另一請求需要代價大的更新操作。然而,在多扇區(qū)操作的情況下,存在提前指定多少扇區(qū)被使用的應用。在這種情況下,因為不需要所有隨后的扇區(qū)必須為空,所以在S140中其能夠僅確定其存偏移量匹配的扇區(qū)是否存在。
如果在S131中確定在適當位置的頁不為空,則確定空的頁是否存在于當前塊中(S141)。如果空的頁不存在,則分配下一新的塊(S142),并且隨后數(shù)據(jù)被寫入新的塊的適當位置(S132)。LPN被寫入與該位置相關的頁中的備用區(qū)域(S133)并且結(jié)束處理。
如果在S141中確定空頁存在,則選擇空頁的一頁,數(shù)據(jù)被寫入偏移量匹配LSN的扇區(qū)的位置(S151)。并且LPN被寫入被選頁的備用區(qū)域(S160)。選擇空頁中的一個可在幾種方法中進行。即,空頁可從上面的頁連續(xù)地選擇,反之亦然。最后,進行將相關數(shù)據(jù)復制到現(xiàn)存的有效LPN以維持一對一的頁映射(S170),其后,結(jié)束處理。
圖8示出了根據(jù)本發(fā)明的一對一的頁映射方法的應用例子。因為大型塊閃速存儲器能夠多扇區(qū)寫操作,則假設四個數(shù)據(jù)可被同時寫入存儲器。首先,四個數(shù)據(jù)D0、D1、D2和D3被順序?qū)懭氘斍皦K的第一頁(PPN=0)(S132)并且0被寫入備用區(qū)域作為LPN值(S133)。然后,另四個數(shù)據(jù)D4、D5、D6和D7被順序?qū)懭氲诙?PPN=1)(S132)并且1被寫入備用區(qū)域作為LPN值(S133)。此后,當D0和D1應被寫入時,因為相關LPN‘0’已經(jīng)被寫入(S130的例子),所以確定在具有有效LPN的第一頁(PPN=0)中具有相關偏移量的扇區(qū)是否為空(S140)。因為扇區(qū)不為空,所以D0被寫入下一空頁(PPN=2)的第一扇區(qū),D1被寫入第二扇區(qū)(S151),并且相關LPN‘0’被寫入備用區(qū)域(S160)。另外,與現(xiàn)有有效LPN相關的剩余數(shù)據(jù)(寫入PPN=0的剩余數(shù)據(jù)),即,D2和D3根據(jù)偏移量被復制到當前頁(PPN2)(S170)。
緊接著,當D3應被寫入時,D3被寫入其偏移量在隨后的空頁(PPN=3)中匹配的扇區(qū)的位置,即,第四扇區(qū)(S151)并且相關LPN‘0’被寫入(S160)。其后,來自第三頁(PPN=2)的剩余數(shù)據(jù),即,D0、D1、和D2根據(jù)它們的偏移量被復制到當前頁(PPN=3)。
第二方法是一對n的頁映射方法。該方法的流程圖如圖9所示。此映射方法是允許至少一個有效頁將處于一個塊中的方法,不像第一方法那樣。即,執(zhí)行寫操作到具有被保持的相關LSN的扇區(qū)偏移量的物理地址,但是沒有從現(xiàn)有的有效頁復制剩余扇區(qū)的步驟。即,因為在本方法中,有效數(shù)據(jù)可處于至少一個頁中,其中現(xiàn)有有效LPN的數(shù)據(jù)被復制的步驟不必要。因此,與以上的圖7的流程圖相比,盡管剩余步驟都相同,但是僅有的差別在于沒有與圖7的步驟S170相似的步驟。
圖10示出根據(jù)本發(fā)明一對n的頁映射方法的應用例子。首先,數(shù)據(jù)D0、D1、D2、和D3被順序?qū)懭氘斍皦K的第一頁(PPN=0)(S232),并且作為LPN值的0被寫入備用區(qū)域(S233)。四個數(shù)據(jù)D4、D5、D6和D7隨后被順序?qū)懭氲诙?PPN=1)(S232),并且作為LPN值的1被寫入備用區(qū)域(S233)。此后,當D0和D1應被寫入時,因為相關LPN‘0’已經(jīng)被寫入(S230的例子)所以確定在近來已經(jīng)寫入LPN的第一頁(PPN=0)中具有相關偏移量的扇區(qū)是否為空(S240)。因為扇區(qū)不為空,所以D0被寫入隨后的空頁(PPN=2)的第一扇區(qū)中,并且D1被寫入其第二扇區(qū)(S251)。相關LPN‘0’被寫入備用區(qū)域(S260)。
當D3隨后應被寫入時,因為在S240中確定在當前頁(PPN=2)中其相關偏移量匹配的第四扇區(qū)為空,所以D3被寫入第四扇區(qū)(S250)。其后,當D1應被寫入時,因為在近來已經(jīng)寫入LPN的頁(PPN=2)中其偏移量匹配的扇區(qū)不為空(S240),所以D1被寫入在下一空頁(PPN=3)中其偏移量匹配的第二扇區(qū)(S251),LPN被寫入該頁的備用區(qū)域中(S260),并且隨后結(jié)束處理。
第三種方法是根據(jù)本發(fā)明的一對一的頁映射被應用到其的扇區(qū)映射方法。該第三種方法與第一種一對一的頁映射方法相似,而是一種在寫時不需保持扇區(qū)偏移而在頁中自由地寫入的方法。即,其是其中數(shù)據(jù)被寫入而不需保持扇區(qū)偏移量,但是在寫入相關頁被完成后剩余扇區(qū)從現(xiàn)有有效頁被復制以便僅有一個有效頁存在于一個塊中的方式。圖11是示出一對一的頁映射被應用到其的扇區(qū)映射方法的流程圖。因為不像圖7的一對一的頁映射那樣,扇區(qū)偏移量不被保持,所以需要存儲指示以扇區(qū)為基礎的映射信息的LSN。此時,LSN和LPN連同相關數(shù)據(jù)一起被同時寫入。
首先,將被處理的至少一個扇區(qū)的LSN從外部主機300被輸入(S310)。LPN和LBN根據(jù)LSN來計算,并且通過使用以塊為基礎的預定映射信息來確定PBN(S320)。下列處理在與已確定的PBN相關的物理塊上來執(zhí)行。首先,確定相關LPN是否曾經(jīng)在物理塊中被使用(S330)。
如果在S330中確定LPN還未被使用,則確定在適當位置的頁是否為空(S331)。如果頁為空,則數(shù)據(jù)被寫入適當位置(S332),LSN被寫入與該位置相關的頁的備用區(qū)域,LPN被寫入備用區(qū)域的給定位置(S333),并且隨后結(jié)束處理。將LSN寫入與該位置相關的備用區(qū)域是指將數(shù)據(jù)寫入與在物理頁的主區(qū)域中數(shù)據(jù)被寫入的扇區(qū)的位置相應的備用區(qū)域中的位置。例如,其是指如果數(shù)據(jù)被寫入第一扇區(qū),則數(shù)據(jù)的LSN被寫入分配以在備用區(qū)域中寫LSN的四個數(shù)位(digit)中的第一數(shù)位。
如果在S330中確定LPN已經(jīng)被寫,則確定空扇區(qū)是否存在于具有已寫的LPN中的最近的一個的頁中(S340)。如果存在空扇區(qū),則數(shù)據(jù)被寫入空扇區(qū)(S350),并且數(shù)據(jù)的LSN被寫入在與該位置相關的頁中的備用區(qū)域(S380)。
如果在S331中確定在適當位置的頁不為空,則確定空頁是否存在于當前塊中(S341)。如果空頁不存在,則分配下一新的塊(S342),并且隨后數(shù)據(jù)被寫入新的塊的適當位置(S332),LPN和LSN被寫入與該位置相關的備用區(qū)域中(S333)并且結(jié)束處理。
如果在S341中確定存在空頁,則空頁之一被選擇并且數(shù)據(jù)被寫入該頁的任一空扇區(qū)(通常,第一扇區(qū))(S351),并且LPN和LSN被寫入被選頁的備用扇區(qū)(S360)。最后,為了保持一對一的頁映射,復制具有現(xiàn)有有效的LSN的數(shù)據(jù)和該數(shù)據(jù)的LSN(S370)并且隨后結(jié)束處理。有效LSN是指當相同LSN存在時,相同LSN中最近寫入的一個。為了找到這個,當存在幾個同樣的LPN時,具有最近入寫的LPN(有效LPN)的頁被檢索。因為在頁中還可能存在幾個相同的LSN,所以其能夠找到LSN中的最近的LSN(如果數(shù)據(jù)被順序?qū)懭氲淖畹蛯懭氲腖SN)。
圖12示出根據(jù)本發(fā)明的一對一的頁映射被應用到其的扇區(qū)映射方法的應用例子。首先,兩個數(shù)據(jù)D0和D1被順序?qū)懭氘斍皦K(PPN=0)的第一頁(S332),0和1被分別地寫入該頁的備用區(qū)域的LSN被寫入的四個數(shù)位的第一和第二數(shù)位,并且0被寫入LPN被寫入的部分(S333)。四個數(shù)據(jù)D4、D5、D6、和D7被順序?qū)懭氲诙?PPN=1)(S332),4、5、6、和7作為LSN被分別的寫入備用區(qū)域,并且1作為LPN值被寫入(S333)。
此后,如果D0和D1應被寫入,則因為相關LPN‘0’已經(jīng)被寫入(S330的例子)所以確定空扇區(qū)是否存在于具有LPN的頁(PPN=0)中(S340)。因為存在兩個空扇區(qū),所以D0和D1被分別地寫入空扇區(qū)(S350),0和1被寫入備用區(qū)域的LSN被寫入的部分之間的第三和第四數(shù)位,分別與寫入的D0和D1的位置一致(S380)。
如果D3必須被隨后寫入,則D3被寫入下一空頁(PPN=2)的空扇區(qū),即,第一扇區(qū)(S350),并且相關LSN‘3’和相關LPN‘0’被寫入(S360)。其后,來自第一頁(PPN=0)的有效D0和D1(指的是最近寫入的D0和D1)被復制到當前頁(PPN=2)的空扇區(qū)中。作為D0和D1的LSN的0和1被復制到相關位置,即,被復制到備用區(qū)域的LSN被寫入的部分的第二和第三數(shù)位(S370)。然后,如果D1應被寫入,則因為空扇區(qū)存在于當前頁(PPN=2)中(S340的例子),所以D1被寫入該扇區(qū)(S350),并且1被寫入相關LSN被寫入的位置(S380)。
第四種方法是根據(jù)本發(fā)明的一對n的頁映射被應用到其的扇區(qū)映射方法。與提出的第二種方法相似,但是差別在于在寫期間不需保持扇區(qū)偏移量,寫操作也在頁中自由地進行。然而,這兩種方法彼此相似之處在于具有有效扇區(qū)的至少一頁可出現(xiàn)在一個塊中。當寫操作在該頁中進行時,一旦數(shù)據(jù)被寫入扇區(qū)偏移量匹配的位置,并且,如果數(shù)據(jù)已經(jīng)存在于該數(shù)位,則空扇區(qū)可從左邊被找到來寫數(shù)據(jù),反之亦然。圖13是示出一對n的頁映射被應用到其的扇區(qū)映射方法的流程圖。與圖11的流程圖相比,盡管剩余步驟都相同,但是存在不同僅在于與圖11的步驟S370相似的步驟不存在。
圖14示出根據(jù)本發(fā)明的一對n的頁映射方法的應用例子。首先,兩個數(shù)據(jù)D0和D1被順序?qū)懭氘斍皦K(PPN=0)中的第一頁中(S432)。0和1被分別地寫入該頁的備用區(qū)域的LSN被寫入的四個數(shù)位的第一和第二數(shù)位中,并且0被寫入LPN被寫入的部分(S433)。然后四個數(shù)據(jù)D4、D5、D6、和D7被順序?qū)懭氲诙?PPN=1)(S432),并且4、5、6、和7作為LSN值被分別地寫入備用區(qū)域,并且1作為LPN值被寫入(S433)。
然后,如果D0和D1應被寫入,則因為相關LPN‘0’已被寫入(S430的例子),所以確定空扇區(qū)是否存在于具有LPN的頁(PPN=0)中(S440)。因為存在兩個空扇區(qū),所以D0和D1被寫入空扇區(qū)(S450)。與寫入的D0和D1的位置一致,0和1被分別地寫入LSN被寫入的備用區(qū)域中的部分中的第三和第四數(shù)位中(S480)。
如果D3應被寫入,則D3被寫入下一空頁(PPN=2)中的空扇區(qū),即第一扇區(qū)中(S451),并且相關LSN‘3’和相關LPN‘0’被寫入(S460)。如果D1隨后應被寫入,則因為空扇區(qū)存在于當前頁(PPN=2)中(S340的例子),所以D1被寫入當前頁(PPN=2)中的第二扇區(qū)中(S450),并且1被寫入相關LSN被寫入的位置(S480)。
因為提出的第五和第六種方法是沒有頁映射的扇區(qū)映射方法,所以其不需要在頁的備用區(qū)域中寫入LPN。圖15是示出根據(jù)本發(fā)明的如第五種方法的偏移量匹配的扇區(qū)映射方法的流程圖。此方法是找到空扇區(qū)并且當僅保持扇區(qū)偏移量時向其寫數(shù)據(jù)的方法。
首先,將被處理的至少一個扇區(qū)的LSN從外部主機300輸入(S510)。LPN和LBN根據(jù)LSN來計算,并且通過使用以塊為基礎的預定的映射信息來確定LPN(S520)。接下來的處理是在與確定的PBN相關的物理決上被執(zhí)行。首先進行關于其偏移量匹配并且當時為空的扇區(qū)是否存在于當前塊中的確定(S530)。如果在S530中確定空扇區(qū)存在,則數(shù)據(jù)被寫入偏移量匹配的扇區(qū)的位置(S540),數(shù)據(jù)的LSN被寫入當前頁中的備用區(qū)域的LSN被寫入的部分的相關位置中(S550),并且結(jié)束處理。如果在S530中確定空扇區(qū)不存在,則分配新的塊(S531),并且隨后執(zhí)行S540和S550,結(jié)束處理。
圖16示出根據(jù)本發(fā)明的偏移量匹配扇區(qū)映射方法的應用例子。D0和D1首先被分別地寫入第一頁(PPN=0)的第一和第二扇區(qū)中(S540),并且0和1被寫入在LSN被寫入的備用區(qū)域中的部分的相關數(shù)位(S550)。然后,如果D4、D5、D6、和D7將被寫入,那么因為在第一頁(PPN=0)中不存在寫四個扇區(qū)的空間,所以四個扇區(qū)被寫入下一頁(PPN=1)(S540),并且作為相關LSN的4、5、6、和7被分別地向其寫入(S550)。然后,如果D0和D1將被寫入,那么D0和D1被寫入以D0和D1的偏移量的空頁(PPN=2)中(S540),并且作為相關LSN的0和1被分別地寫入其中(S550)。
然后,如果D3將被寫入,那么D3被寫入以D3的偏移量的空頁(PPN=0)中(S540),并且作為相關LSN的3被寫入(S550)。其后,如果D1將被寫入,那么D1被寫入以D1的偏移量的空頁(PPN=3)中(S540),并且作為相關LSN的1被分別地寫入其中(S550)。
最后,如果D6和D7將被寫入,那么D6和D7被寫入其中第三和第四扇區(qū)為空的頁(PPN=2)中,第三和第四扇區(qū)是D6和D7的偏移量(S540),并且作為相關LSN的6和7被寫入(S550)。
圖17是示出作為第六方法的偏移量失配扇區(qū)映射方法的流程圖。此方法是不管頁和扇區(qū)偏移量而順序向空扇區(qū)寫數(shù)據(jù)的方法。
首先,將被處理的至少一個扇區(qū)的LSN從外部主機300被輸入(S610),LPN和LBN根據(jù)LSN被計算,并且通過使用以塊為基礎的預定映射信息來確定PBN(S620)。接下來的處理在與確定的PBN相關的物理塊上被執(zhí)行。首先,不考慮偏移量,確定空扇區(qū)是否存在于當前塊中(S630)。如果在S630中確定存在空扇區(qū),那么數(shù)據(jù)被寫入空扇區(qū)中(S640),并且數(shù)據(jù)的LSN被寫入當前頁的備用區(qū)域的LSN被寫入的部分的相關位置中(S650),結(jié)束處理。如果在S630中確定不存在空扇區(qū),那么新的塊被分配(S631),并且隨后執(zhí)行S640和S650,結(jié)束處理。
圖18示出根據(jù)本發(fā)明的偏移量失配扇區(qū)映射方法的應用例子。首先,D0和D1被分別地寫入第一頁(PPN=0)的第一和第二扇區(qū)中(S640),并且0和1被寫入備用區(qū)域的LSN被寫入的位置中的相關數(shù)位中(S650)。然后,如果D4、D5、D6、和D7將被寫入,那么因為在第一頁(PPN=0)中不存在寫四個扇區(qū)的空間,所以四個扇區(qū)的每個被寫入下一扇區(qū)(PPN=1)(S640),并且作為相關LSN的4、5、6、和7被寫入其上(S650)。然后,如果D0和D1將被寫入,那么D0和D1被寫入兩個扇區(qū)為空的第一頁(PPN=0)中(S640),并且作為相關LSN的0和1被寫入其上(S650)。
然后,如果D3將被寫入,那么因為第一頁(PPN=0)和第二頁(PPN=1)沒有空扇區(qū),所以D3被寫入下一頁(PPN=2)的第一扇區(qū)(S640),并且作為相關LSN的3被寫入其上(S650)。其后,如果D1將被寫入,那么D1被寫入該頁(PPN=2)的第二扇區(qū)中(S640),作為相關LSN的1被寫入(S650)。最后,如果D6和D7將被寫入,由于該頁(PPN=2)的兩個扇區(qū)仍為空,則D6和D7被寫入頁的第三和第四扇區(qū)中(S640),并且作為相關LSN的6和7被寫入(S650)。
就有效地向根據(jù)本發(fā)明的能夠多扇區(qū)寫入的大型塊閃速存儲器寫入數(shù)據(jù)的方法來說,已經(jīng)提出了六種方式。因為閃速存儲器允許以頁為基礎I/O,所以在多扇區(qū)寫操作的情況下,通過使用閃速存儲器的緩沖,扇區(qū)被緩沖,并且用于兩個或多個扇區(qū)的寫操作可在一次閃速寫操作中被執(zhí)行。
相應于這種寫方法的讀算法以與寫算法相反的順序被執(zhí)行。在第一和第二方法的頁映射中,因為物理扇區(qū)偏移量匹配邏輯地址的扇區(qū)偏移量,其能夠找到其中請求讀的扇區(qū)被定位的一頁,并且隨后能讀取輸入的扇區(qū)的偏移量的數(shù)據(jù)。此時,在第二方法中,因為一個或多個有效頁存在,所以以與寫算法相反的順序找到最新的數(shù)據(jù)。
在第三和第四方法中,一旦相關頁被找到,LSN被檢索以找到相關扇區(qū)。此時,如果兩個或多個同樣的LSN存在,那么以與寫算法相反的順序找到有效扇區(qū)。
在第五方法中,因為扇區(qū)偏移量匹配,所以其能夠以與寫算法相反的順序找到有效扇區(qū)。在基于LSN值找到有效扇區(qū)的第六方法中,相似地,當存在至少一個LSN時,其足夠以與寫算法相反的順序來找到有效扇區(qū)。
邏輯-物理映射信息管理方法以下,將討論用于在閃速存儲器中存儲并管理邏輯-物理映射信息的方法的操作。應注意此方案可被特別地應用到小型塊閃速存儲器以及大型塊閃速存儲器。
圖19A顯示分為預定大小的片段(片)的邏輯-物理映射信息。通過將一個映射(map)片段和一個備用區(qū)域求和而獲得的一個單元被定義為映射片段單元。一個映射片段單元的大小可等于閃速存儲器的頁中的主區(qū)域的大小。幾個片段可被包括在閃速存儲器的頁的主區(qū)域中。一個片段可被存儲在閃速存儲器中的幾個頁的主區(qū)域中。因為當一些映射信息應被更新時,更新所有的映射信息可降低系統(tǒng)性能,所以映射信息被分為預定大小的片段以僅更新需要的片段。
如圖19B所示,假設映射片段的大小等于頁的主區(qū)域的大小,并且2字節(jié)被需要用于一個塊的邏輯-物理映射信息,因為小型塊閃速存儲器具有每頁512B的主區(qū)域,所以用于256塊的映射信息可被存儲在一個映射片段中。因為一塊具有32頁,所以32個映射片段單元可被存儲在一個映射塊中。因此,如果整個邏輯-物理映射信息可被分為并被存儲在N個映射片段中,那么將存在32-N個空單元。當N個映射片段單元如圖19A被初始地寫入時,映射信息的修改發(fā)生。如果修改發(fā)生在映射片段#1中,那么將能夠?qū)⑿薷牡挠成淦?1寫入下一空單元,如圖19C所示。如果多個具有相同映射片段號(#)的映射片段存在于一個塊中,那么確定僅最近寫入的映射片段是有效的。
每個映射片段單元除了映射片段之外具有含有關于映射片段的附加信息的備用區(qū)域。在小型塊閃速存儲器中,16字節(jié)可用于備用區(qū)域。邏輯-物理映射信息可以是以塊為基礎的映射信息,如上所述。在大型塊閃速存儲器中,不限于以塊為基礎的映射信息,或者可以是以扇區(qū)為基礎的映射信息或以頁為基礎的映射信息。即,邏輯-物理映射信息可以是邏輯塊號和物理塊號之間的映射信息、邏輯頁號和物理頁號之間的映射信息、或者邏輯扇區(qū)號和物理扇區(qū)號之間的映射信息。
圖20顯示M個分配的映射塊。預定數(shù)目的映射塊(M個映射塊)可從其中可寫入所有邏輯-物理映射信息的數(shù)據(jù)塊中來獨立地分配。以下,如果將被寫入的映射信息的大小不超過一個塊(這種情況在以下被假設),那么操作可僅用一個分配的塊來進行。然而,在任何系統(tǒng)在執(zhí)行寫或擦除任務期間突然掉電的情況下,留下先前映射表,直到最新更新的映射表被完全寫入時才擦除先前映射表是安全的。因此,通過分配兩個或多個塊,即使一旦突然掉電映射表信息也可被安全地管理。
圖21顯示根據(jù)本發(fā)明的在映射片段單元400中的備用區(qū)域的配置。為了安全地保護邏輯-物理映射信息,附加信息被寫入備用區(qū)域420。附加信息可包括隨著當關于有效映射信息的映射片段單元從現(xiàn)有映射塊被復制到新的映射塊時增加的次數(shù)而被寫的年齡(age)421、表示關于被劃分并且被存儲的映射片段的序列號的片段號422、表示當映射塊被擦除時錯誤是否存在的簽名423、和表示在寫映射片段期間沒有產(chǎn)生錯誤的有效標記424。當映射片段被寫入時它們一起被寫入。
年齡421被用于找到幾個塊中的有效塊。其滿足年齡每個塊被寫入一次,但是在本實施例中假設年齡被寫入塊中的所有映射片段單元中。在關于映射信息的映射片段410被更新的情況下,映射片段與關于更新的映射信息的片段號422一起被寫入塊中的第一空單元中。在通過對映射片段410的幾次更新,空單元不再存在于塊中的情況下,當下一空映射塊存在時,其被寫到下一空映射塊中,并且當沒有空映射塊存在時,在有效映射塊被擦除之后,涉及先前塊的有效映射信息的映射片段410被整個地移動,并且比先前塊的年齡421更高的年齡421被寫入新的塊。因此,具有最大年齡號421的映射塊被認為有效。
當與映射信息相關的映射片段410在閃速存儲器中被更新時,找到有效映射片段410的下列方法如下。在本發(fā)明中僅有一個塊,該塊具有與有效映射信息相關的映射片段410。因此,具有有效映射信息的映射塊被首先找到,并且此塊變成具有最大年齡421的映射塊的塊。由于即使在具有最大年齡421的映射塊中也可存在具有特定片段號422的幾個映射片段410,在映射片段之中最近記錄的映射片段(當映射片段單元被順序地記錄時最低記錄的一個)被選擇。
即使寫入閃速存儲器的典型數(shù)據(jù)信息被部分地丟失,信息的剩余部分也僅允許用戶執(zhí)行期望的任務。相反地,映射信息包含較小數(shù)量的信息,但是,如果丟失,存儲在閃速存器中的所有的數(shù)據(jù)很可能沒用。因此,映射信息的安全保護非常重要。具體地講,由于閃速存儲器被廣泛地使用在如嵌入式系統(tǒng)和移動裝置的應用中,掉電頻繁地發(fā)生。因此,對掉電的解決方法是必須的。在寫或擦除操作期間掉電尤其重要。在本發(fā)明中,簽名423和有效標記424概念的引入被用于辨別由掉電引起的無效數(shù)據(jù)。在關于映射信息的映射片段410已經(jīng)被寫入之后,有效標記424總是被寫入。有效標記424沒有被寫到其的映射片段410被認為是由于完成記錄處理結(jié)束失敗導致的無效映射片段410。
另外,在寫映射片段410的情況下,其與包括至少一位0的簽名423的給定字節(jié)一起被寫入。如果對于塊的擦除操作被完成,那么塊中的位都被初始化為1。因此,寫入的數(shù)據(jù)的0s都被變?yōu)?s。當在擦除處理期間掉電發(fā)生時,一些位變?yōu)?s,而一些保留0s。因此,盡管有效標記424按照原樣被保持,年齡421、簽名423或諸如此類,包括映射片段410也將可能被修改。如果這樣,將被擦除的塊的年齡被修改,并且不幸地,有可能被修改為具有最高年齡421的塊。例如,假設在擦除之前映射塊的年齡的二進制數(shù)為‘0000101’,在映射塊的擦除期間,‘0’將被改為‘1’,以致年齡為‘1111111’。如果此比有效映射塊421的年齡大,那么停止擦除的映射塊可被錯誤地識別為具有最大年齡421的有效映射塊。
然而,當年齡421由于在塊擦除期間發(fā)生掉電而導致被修改時,簽名423的位也將被修改為1。因此,當簽名不匹配時,其被認為是其中在擦除處理期間發(fā)生掉電的塊,從而解決了前述問題。當這種方法被用于識別擦除操作期間的掉電,辨別的可能性取決于簽名的長度和簽名中的0s的數(shù)目。
最終,在映射塊中不存在空單元的情況下,需要用于將所有的有效映射片段單元400移動到新的塊的任務。此時,如果當有效映射片段單元400被移動到新的塊時掉電發(fā)生,那么因為先前塊還未被擦除,所以有效映射片段410可一起存在于兩個映射塊中。然而,根據(jù)本發(fā)明,有效標記424僅在所有的有效映射片段單元400、年齡421、片段號422、和簽名423被完全地寫入新的塊中之后被寫入。因此,即使當映射片段單元400被移動到新的塊時掉電發(fā)生時,因為當搜索有效映射塊時有效標記424不存在于新的映射塊中,所以根據(jù)年齡421或諸如此類的,認為甚至可能具有更新映射信息的映射塊無效。因此,這種映射塊起初被從找到有效映射塊的處理中排除。同時,因為先前映射塊沒有被擦除而按照原樣保留,所以其被選擇為有效映射塊。從而,最新的映射信息可被安全地管理。
根據(jù)本發(fā)明,優(yōu)點在于通過提出大型塊閃速存儲器的特性被影響的邏輯-物理地址映射方法和邏輯-物理地址映射方法,即使在突然掉電時大型塊閃速存儲器的性能可被增強并且系統(tǒng)可被安全地恢復。
盡管本發(fā)明的實施例是參照附圖來描述的,但本領域的那些技術(shù)人員應該理解,在不修改本發(fā)明的技術(shù)精神或本質(zhì)特征的情況下本發(fā)明可在其他詳細形式下被實現(xiàn)。因此,應注意該實施例在所有方面是示例性的,而不是限定性的。
權(quán)利要求
1.一種用于在閃速存儲器中寫數(shù)據(jù)的方法,該閃速存儲器包括具有包括預定數(shù)目的扇區(qū)的頁的至少一個塊,數(shù)據(jù)以扇區(qū)為基礎或以頁為基礎被寫入,并且以塊為基礎被擦除,該方法包括第一步驟,確定在具有將被寫入的數(shù)據(jù)的最新寫入的邏輯頁號的第一物理頁中第一扇區(qū)是否為空,其中,第一扇區(qū)的偏移量匹配將被寫入的數(shù)據(jù)的偏移量;第二步驟,如果確定其偏移量匹配的第一扇區(qū)為空,那么在其偏移量匹配的物理頁的第一扇區(qū)中寫數(shù)據(jù);和第三步驟,如果確定其偏移量匹配的第一扇區(qū)不為空,則選擇第二空物理頁以將數(shù)據(jù)寫到被選的第二空物理頁中的第二扇區(qū)中,其中,第二扇區(qū)的偏移量匹配將被寫入的數(shù)據(jù)的偏移量,并且將數(shù)據(jù)的邏輯頁號寫到被選的第二空物理頁中。
2.如權(quán)利要求1所述的方法,其中,數(shù)據(jù)被寫入的區(qū)域是多個物理頁中的其中一個的主區(qū)域,并且邏輯頁號被寫入的區(qū)域是多個物理頁中的其中一個的備用區(qū)域。
3.如權(quán)利要求1所述的方法,在第一步驟之前,還包括以下步驟確定將被寫入的數(shù)據(jù)的邏輯頁號是否曾經(jīng)被寫入,并且,如果邏輯頁號已經(jīng)被寫入,那么執(zhí)行第一步驟,否則,將數(shù)據(jù)和數(shù)據(jù)的邏輯頁號寫入由現(xiàn)有的物理-邏輯映射信息指定的位置。
4.如權(quán)利要求1所述的方法,其中,第一步驟同時確定在具有將被寫入的數(shù)據(jù)的最近寫入的邏輯頁號的第一物理頁中其偏移量匹配將被寫入的數(shù)據(jù)的偏移量的第一扇區(qū)是否為空,并且跟隨在第一物理頁中的第一扇區(qū)的扇區(qū)是否都為空。
5.如權(quán)利要求1至4所述的方法,其中,該數(shù)據(jù)為第一數(shù)據(jù),還包括第四步驟,在寫到具有在第三步驟中寫入的邏輯頁號的現(xiàn)有有效邏輯頁的多個數(shù)據(jù)之中,將第二數(shù)據(jù)而不是在第三步驟中寫入的第一數(shù)據(jù)復制到被選第二空物理頁中。
6.如權(quán)利要求5所述的方法,其中,通過找到一個或多個具有相同邏輯頁號的最高編號的物理頁,來完成當?shù)诙?shù)據(jù)被從較低編號的物理頁順次寫入時找到現(xiàn)有有效邏輯頁。
7.如權(quán)利要求5所述的方法,其中,通過在一個或多個具有相同邏輯頁號的物理頁之中選擇除在適當位置的頁之外的頁,并且找到被選頁的最高編號的物理頁,來完成當以適當位置優(yōu)先方式寫入第一數(shù)據(jù)時找到現(xiàn)有有效邏輯頁。
8.一種用于在閃速存儲器中寫數(shù)據(jù)的方法,該閃速存儲器包括具有包括預定數(shù)目的扇區(qū)的頁的至少一個塊,數(shù)據(jù)以扇區(qū)或頁為基礎被寫入,并且以塊為基礎被擦除,該方法包括第一步驟,確定第一空扇區(qū)是否存在于具有將被寫入的數(shù)據(jù)的最近寫入的邏輯頁號的第一物理頁中,第一空扇區(qū)能夠存儲將被寫入的數(shù)據(jù);第二步驟,如果確定第一空扇區(qū)存在,那么將數(shù)據(jù)寫入第一物理頁中的第一空扇區(qū)中,并且將數(shù)據(jù)的邏輯扇區(qū)號寫入第一物理頁中;和第三步驟,如果確定第一空扇區(qū)不存在,那么選擇第二空物理頁以將數(shù)據(jù)寫到被選的第二空物理頁中的第二扇區(qū)中,并且將數(shù)據(jù)的邏輯頁號和邏輯扇區(qū)號寫到被選的第二空物理頁中。
9.如權(quán)利要求8所述的方法,其中,第二步驟和第三步驟中寫邏輯扇區(qū)號,將邏輯扇區(qū)號寫入與數(shù)據(jù)被寫入的第一空和第二空扇區(qū)中的一個的位置相應的第一物理頁和第二空物理頁中的一個的主區(qū)域中的備用區(qū)域的位置。
10.如權(quán)利要求8所述的方法,其中,數(shù)據(jù)為第一數(shù)據(jù),還包括第四步驟,在寫入具有在第三步驟中寫入的邏輯頁號的現(xiàn)有有效邏輯頁中的多個數(shù)據(jù)之中,將第二數(shù)據(jù)而不是在第三步驟中寫入的第一數(shù)據(jù)以及第二數(shù)據(jù)的邏輯扇區(qū)號復制到被選的第二空物理頁中。
11.如權(quán)利要求10所述的方法,其中,通過在一個或多個具有相同邏輯頁號的物理頁之中找到最高編號的物理頁,來完成當?shù)诙?shù)據(jù)被從較低編號的物理頁順次寫入時找到現(xiàn)有有效邏輯頁。
12.如權(quán)利要求10所述的方法,其中,通過在一個或多個具有相同邏輯頁號的物理頁之中選擇除在適當位置的頁之外的頁,并且找到被選的頁的最高編號的物理頁,來完成當以適當位置優(yōu)先方式寫入第一數(shù)據(jù)時找到有效邏輯頁。
13.一種用于在閃速存儲器中寫數(shù)據(jù)的方法,該閃速存儲器包括具有包括預定數(shù)目的扇區(qū)的頁的至少一個塊,數(shù)據(jù)以扇區(qū)為基礎或以頁為基礎被寫入,并且以塊為基礎被擦除,該方法包括第一步驟,確定能夠存儲將被寫入的數(shù)據(jù)的第一空扇區(qū)是否存在于當前塊中;和第二步驟,如果確定第一空扇區(qū)存在,那么將數(shù)據(jù)寫入第一空扇區(qū)中,并且將數(shù)據(jù)的邏輯扇區(qū)號寫入第一空扇區(qū)所位于的第一物理頁中。
14.如權(quán)利要求13所述的方法,其中,寫邏輯扇區(qū)號,將邏輯扇區(qū)號寫入在與數(shù)據(jù)被寫入的第一空扇區(qū)的位置相應的物理頁的主區(qū)域中的備用區(qū)域的位置。
15.如權(quán)利要求13所述的方法,其中,第一空扇區(qū)為空扇區(qū),其中第一空扇區(qū)的偏移量匹配將被寫入的數(shù)據(jù)的偏移量。
16.如權(quán)利要求15所述的方法,其中,第一步驟確定其偏移量匹配將被寫入的數(shù)據(jù)的偏移量并且為空的第一空扇區(qū)是否存在于當前塊中。
17.一種閃速存儲器,包括具有包括預定數(shù)目的扇區(qū)的頁的至少一個塊,數(shù)據(jù)以扇區(qū)為基礎或以頁為基礎被寫入,并且以塊為基礎被擦除,其中閃速存儲器確定在具有將被寫入的數(shù)據(jù)的最新寫入的邏輯扇區(qū)號的第一物理頁中其中第一扇區(qū)的偏移量匹配將被寫入的數(shù)據(jù)的偏移量的第一扇區(qū)是否為空,和如果確定其偏移量匹配的第一扇區(qū)為空,那么閃速存儲器將數(shù)據(jù)寫入在第一物理頁中的其偏移量匹配的第一扇區(qū)中,或者如果確定其偏移量匹配的第一扇區(qū)不為空,那么閃速存儲器選擇第二空物理頁以將數(shù)據(jù)寫到第二扇區(qū)中,其中第二扇區(qū)的偏移量匹配將被寫入的數(shù)據(jù)的偏移量,并且將數(shù)據(jù)的邏輯頁號寫入被選的第二空物理頁中。
18.如權(quán)利要求17所述的閃速存儲器,其中,確定第一扇區(qū)是否為空,同時確定在具有將被寫入的數(shù)據(jù)的最新寫入的邏輯頁號的第一物理頁中其偏移量匹配將被寫入的數(shù)據(jù)的偏移量的第一扇區(qū)是否為空,并且跟隨第一物理頁中的第一扇區(qū)的剩余扇區(qū)是否都為空。
19.如權(quán)利要求17或18所述的閃速存儲器,其中,數(shù)據(jù)是第一數(shù)據(jù),并且在寫到具有寫入的邏輯頁號的現(xiàn)有有效邏輯頁的多個數(shù)據(jù)之中,第二數(shù)據(jù)而不是第一數(shù)據(jù)被復制到被選的第二空物理頁中。
20.一種包括具有包括預定數(shù)目的扇區(qū)的頁的至少一個塊的閃速存儲器,數(shù)據(jù)以扇區(qū)為基礎或以頁為基礎被寫入,并且以塊為基礎被擦除,其中閃速存儲器確定第一空扇區(qū)是否存在于具有將被寫入的數(shù)據(jù)的最新寫入的邏輯頁號的第一物理頁中,第一空扇區(qū)能夠存儲將被寫入的數(shù)據(jù),和如果確定第一空扇區(qū)存在,那么閃速存儲器將數(shù)據(jù)寫入第一物理頁中的第一空扇區(qū)中,并且將數(shù)據(jù)的邏輯扇區(qū)號寫入第一物理頁中,或者如果確定第一空扇區(qū)不存在,那么第二空物理頁被選擇以將數(shù)據(jù)寫入被選的第二空物理頁中的第二空扇區(qū)中,并且將數(shù)據(jù)的邏輯頁號和邏輯扇區(qū)號寫入被選的第二空物理頁中。
21.如權(quán)利要求20所述的閃速存儲器,其中,寫邏輯扇區(qū)號,將邏輯扇區(qū)號寫入與數(shù)據(jù)被寫入的第一和第二扇區(qū)中的一個的位置相應的第一物理頁和第二物理頁中的一個中的主區(qū)域中的備用區(qū)域的位置中。
22.如權(quán)利要求20所述的閃速存儲器,其中,數(shù)據(jù)是第一數(shù)據(jù),并且在被寫入具有寫入的邏輯頁號的現(xiàn)有有效邏輯頁中的多個數(shù)據(jù)之中第二數(shù)據(jù)而不是第一數(shù)據(jù)以及其的邏輯扇區(qū)號被復制到第一物理頁和被選的第二空物理頁中的一個中。
23.一種包括具有包括預定數(shù)目的扇區(qū)的頁的至少一個塊的閃速存儲器,數(shù)據(jù)以扇區(qū)為基礎或以頁為基礎被寫入,并且以塊為基礎被擦除,其中確定關于能夠存儲將被寫入的數(shù)據(jù)的空扇區(qū)是否存在于當前塊中,和如果空扇區(qū)存在,那么數(shù)據(jù)將被寫入空扇區(qū)中,并且數(shù)據(jù)的邏輯扇區(qū)號被寫入空扇區(qū)所位于的物理頁中。
24.如權(quán)利要求23所述的閃速存儲器,其中,寫邏輯扇區(qū)號,將邏輯扇區(qū)號寫入與其中數(shù)據(jù)被寫入物理頁的主區(qū)域的空扇區(qū)的位置相應的備用區(qū)域的位置中。
25.如權(quán)利要求23所述的閃速存儲器,其中,空扇區(qū)是其中扇區(qū)偏移量相應于將被寫入的數(shù)據(jù)的偏移量的空扇區(qū)。
26.如權(quán)利要求25所述的閃速存儲器,其中,確定空扇區(qū)是否存在于當前塊中,確定扇區(qū)偏移量匹配將被寫入的數(shù)據(jù)的扇區(qū)偏移量的空扇區(qū)以及其后面的剩余空扇區(qū)是否存在于當前塊中。
27.一種包括多個塊的閃速存儲器,包括在被分配作為單獨的映射塊以存儲邏輯-物理映射信息的多個塊中的至少一個中的至少一個映射片段單元,單獨的映射塊存儲被分為片段的邏輯-物理映射信息,其中,當邏輯-物理映射信息被修改時,通過將修改的信息寫入單獨映射塊中的空映射單元中來更新邏輯-物理映射信息。
28.如權(quán)利要求27所述的閃速存儲器,其中,在一個映射塊中多個映射片段單元具有相同的號,當多個映射片段單元存在時,僅最近寫入的映射片段單元被認為有效。
29.如權(quán)利要求27所述的閃速存儲器,其中,邏輯-物理映射信息是邏輯塊號和物理塊號之間的映射信息。
30.如權(quán)利要求27所述的閃速存儲器,其中,邏輯-物理映射信息是邏輯頁號和物理頁號之間的映射信息。
31.如權(quán)利要求27所述的閃速存儲器,其中,邏輯-物理映射信息是邏輯扇區(qū)號和物理扇區(qū)號之間的映射信息。
32.如權(quán)利要求27所述的閃速存儲器,其中,將被存儲的邏輯-物理映射信息的數(shù)量不大于一個映射塊。
33.如權(quán)利要求27所述的閃速存儲器,其中,映射片段單元包括映射片段,用于存儲分段為片段的邏輯-物理映射信息;和備用區(qū)域,用于寫入安全地保護邏輯-物理映射信息的附加信息。
34.如權(quán)利要求33所述的閃速存儲器,其中,附加信息包括片段號字段,表示存儲的分段的映射片段的序列號;和年齡字段,其中,當關于有效映射信息的映射片段單元從現(xiàn)有的映射塊被復制到新的映射塊時年齡字段的數(shù)增加。
35.如權(quán)利要求33所述的閃速存儲器,其中,附加信息包括表示因為在映射片段已經(jīng)被完全寫之后該附加信息才被寫入所以在映射片段的擦除期間錯誤不發(fā)生的有效標記。
36.如權(quán)利要求33所述的閃速存儲器,其中,附加信息包括具有至少一位0的位序列,并且附加信息還包括表示在存在至少一位被轉(zhuǎn)換為1的基礎上在映射塊的擦除期間錯誤是否發(fā)生的簽名字段。
全文摘要
一種用于當使用邏輯-物理映射方案訪問閃速存儲器時最小化性能的降低的方法,和用于有效地存儲并管理關于閃速存儲器中的邏輯-物理映射的信息的方法。一種用于將數(shù)據(jù)寫入閃速存儲器中的方法包括確定在具有將被寫入的數(shù)據(jù)的最近寫入的邏輯頁號的物理頁中扇區(qū)是否為空,該扇區(qū)偏移量匹配將被寫入的數(shù)據(jù)的偏移量;如果該扇區(qū)為空,那么數(shù)據(jù)被寫入該物理頁中的扇區(qū)中;和如果扇區(qū)不為空,那么選擇空物理頁以將數(shù)據(jù)寫入其偏移量匹配將被寫入的數(shù)據(jù)的偏移量的被選空物理頁中的扇區(qū)中并且將數(shù)據(jù)邏輯頁號寫入被選空物理頁中。
文檔編號G06F12/00GK1637721SQ20041010402
公開日2005年7月13日 申請日期2004年12月30日 優(yōu)先權(quán)日2003年12月30日
發(fā)明者鄭泰善, 印至蜆, 鄭明珍 申請人:三星電子株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1