TWI381386B - 資料管理方法及其儲存裝置與其控制器 - Google Patents
資料管理方法及其儲存裝置與其控制器 Download PDFInfo
- Publication number
- TWI381386B TWI381386B TW097129546A TW97129546A TWI381386B TW I381386 B TWI381386 B TW I381386B TW 097129546 A TW097129546 A TW 097129546A TW 97129546 A TW97129546 A TW 97129546A TW I381386 B TWI381386 B TW I381386B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- parent
- data
- child
- blocks
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本發明是有關於一種資料管理方法及其儲存裝置與其控制器,且特別是有關於一種用於快閃記憶體儲存裝置之資料管理方法及此儲存裝置與其控制器。
隨著儲存與半導體技術的進步與發展,目前大容量、小尺寸且速度快的儲存裝置已經充斥於市面。其中,快閃記憶體的發明讓人們可以輕鬆地將資料儲存在快閃記憶體體的內,並且可以將快閃記憶所儲存的資料傳送到與其連接的電腦上。
傳統快閃記憶體的控制器在使用時,並不會將每一個變數資訊都儲存下來。若儲存每一個變數資訊,則會增加其控制器的負擔與工作時間,而使其寫入速度下降。因此,傳統快閃記體之控制器僅有在變換區域(Zone)時才可能會把一些表格(Table)儲存下來,其中,上述之表格例如是邏輯實體對應表。一般而言,變換區域的頻率不會太高。因此,在變換區域時將一些表格儲存下來所導致的時間損失與存取速度的下降是可以接受的。
另外,傳統的快閃記憶體在使用時,為了速度考量,並不會在每次指令下來時都儲存變數資料。更一進步地說,其所有的變數資料都是在剛開機時透過掃描並分析其內部的區塊(Block)時所重建的。
但是,在不正常斷電的情況下,重建內部的變數資料就會產生難度。因為快閃記憶體無法得知其內部的資料是否正確,而且區塊的資料在不正常斷電的情況下會變的不穩定,也許開機掃描時,區塊的資料是正常的,但是在開始存取後就會變的不正常。因此,上述的問題將會使快閃記憶體之控制器之內部程式在判斷上會產生困難,並且間接地影響到其資料的穩定性。
本發明之範例提供一種資料管理方法、其控制器與其儲存裝置。
本發明之範例提供一種資料管理方法,適用於具有多個區塊的儲存裝置,其中,這些區塊中之部分區塊關聯成為多個母子區塊(Mother and Child Block,簡稱為M&CBlock)。此資料管理方法包括:(a)檢查目前要寫入資料的母子區塊是否與上一次寫入資料的母子區塊相同;(b)若目前要寫入資料的母子區塊與上一次寫入資料的母子區塊不同,則記錄了目前要寫入資料之母子區塊的暫態資訊至母子暫態關係表。
本發明之範例提供一種資料管理控制器,用於具有多個區塊的儲存裝置,其中,這些區塊中之部分區塊關聯成為多個母子區塊。此資料管理控制器包括微處理器與緩衝器,處理器與緩衝器彼此耦接。其中,緩衝器具有程式碼,處理器讀取與執行此程式碼,並控制與其連接的儲存裝置
進行以下步驟:(a)檢查目前要寫入資料的母子區塊是否與上一次寫入資料的母子區塊相同;(b)若目前要寫入資料的母子區塊與上一次寫入資料的母子區塊不同,則記錄了目前要寫入資料之母子區塊的暫態資訊至母子暫態關係表。
本發明之範例提供一種儲存裝置,包括儲存區塊電路、系統電路與控制器。儲存區塊電路具有多個區塊,並用以儲存資料,其中,這些區塊中之部分區塊關聯成為多個母子區塊。系統電路用以儲存至少一母子區塊暫態關係表。控制器耦接於儲存區塊電路與系統電路,用以檢查目前要寫入資料的母子區塊是否與上一次寫入資料的母子區塊相同,若目前要寫入資料的母子區塊與上一次寫入資料的母子區塊不同,則記錄了目前要寫入資料之母子區塊的一暫態資訊至母子區塊暫態關係表。
本發明之範例提供的增加資料穩定性之方法及其控制器可以讓使用此方法或控制器的儲存裝置增加資料的穩定性,以藉此避免不正常斷電時會有資料不穩定的現象。另外,因為僅有在目前要寫入資料之母子區塊與上一次寫入資料之母子區塊不同時,才會記錄目前要寫入資料的母子區塊之暫態資訊,所以使用本發明之範例所提供的資料管理方法及其控制器與儲存裝置在其寫入速度上,並不會有太大的影響。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉較佳實施例,並配合所附圖式,作詳細說明如下。
在介紹本發明範例所提供的資料管理方法及其儲存裝置與其控制器之前,在此先簡述一下使用快閃記憶體之儲存裝置的寫入原理。快閃記憶體之儲存裝置具有多個區塊可以儲存資料,每一個區塊又包含多個頁面。快閃記憶體之儲存裝置在抹除時是以區塊為單位,而在讀取或寫入時則是以頁面為單位。在快閃記憶體之儲存裝置要寫入資料至某一個已經存有資料的區塊時,會先將此存有資料的區塊中的部分資料搬移到其另一個無記錄資料的區塊。其中,上述之原來存有資料的區塊又稱為母區塊,而上述之原來無記錄資料,且被用以與一母區塊關聯的區塊又稱為子區塊,此外,值得說明的是,在本發明中,由於此快閃記憶體之特性,該無記錄資料的區塊是指該區塊中各個正常細胞所儲存的資料皆為1,但依各快閃記憶體規格的不同,該無記錄資料的定義並不以此為限。接著,快閃記憶體之儲存裝置將所預寫入的資料寫入此子區塊相對應的頁面,及母區塊的其它資料則亦會搬移到此子區塊上相對應的頁面,接著,母區塊會被抹除(Erased),最後,邏輯實體對應表會將其對應關係更新。若本來母區塊的邏輯區塊編號是Logic_0,母區塊的實體區塊編號Block 0,而子區塊的實體區塊編號Block 1,那麼,上述之邏輯實體對應表在未更新前,邏輯區塊編號Logic 0是對應至實體區塊編號Block 0,而在邏輯實體對應表更新後,邏輯區塊編號Logic 0是對應至實體區塊編號Block 1。換言之,就是快閃記憶
體內的區塊之位址並未改變,而是邏輯實體表的內容有所更新,以讓實際上的邏輯位址正確地對應至實體區塊,使得資料之後能被正確地讀出與寫入。
當然,上述的存取方式僅是一種實施方式,並非用以限定本發明,其中,上述快閃記憶體詳細之存取方式可參考US12//0047144,在此不再多加贅述。在母區塊尚未被抹除,且子區塊與母區塊上的資料尚未被合併時,此種暫態的關係會被記錄至母子區塊暫態關係表。其中,合併子區塊與母區塊上的資料是指將母區塊的多筆有效資料全部搬至子區塊,並清除母子區塊之間的對應關係與更新邏輯實體對應表。其中,這個母子區塊暫態關係表包括子區塊之邏輯位址、子區塊中之更新頁面與母區塊中之頁面的對應關係、更新資料的版本、此次開機至目前所有實體區塊的抹除次數、母區塊的抹除次數、子區塊的抹除次數、目前存在的各母子區塊的映射資料、最近一次的寫入指令邏輯位址或其對應的母子區塊或其他可供協助平均各實體區塊磨損次數的相關資料。
請先參考圖1,圖1繪示了快閃記憶體之儲存裝置在儲存時的暫態示意圖。其中,圖1的例子與上述例子具有不同的寫入方式,但是這些寫入方式都不會用來限制本發明。假設邏輯實體表中紀錄快閃記憶體的邏輯區塊位址Logic 0對應實體區塊Block 0,且這個實體區塊Block 0以經存有多筆有效的有效資料,例如實體區塊Block 0的頁面Page 0~Page N皆存有有效資料。若要寫入資料的邏
輯位址對應於實體區塊Block 0的頁面Page 2與Page 3時,則快閃記憶體之儲存裝置的系統控制晶片會尋找一個無記錄資料的區塊,通常是備用區域中的區塊,例如備用區塊Block 1,並將備用區塊Block 1與實體區塊Block 0關聯成為一組母子區塊,然後才開始進行資料的寫入。換言之,就是有資料要寫入已經存有有效資料的實體區塊時,則儲存裝置會尋找一個空的區塊與此實體區塊關聯成一組母子區塊。因此,實體區塊Block 0可以視為母區塊Block 0,而備用區塊Block 1則可視為母區塊Block 0所對應的子區塊Block 1。接著,因為,母區塊Block 0的頁面Page 0與Page 1的資料為有效的資料,所以,母區塊Block 0的頁面Page 0與Page 1的資料會被搬至子區塊Block 1的頁面Page 0與Page 1。
然後,新的資料會依序寫入子區塊Block 1的頁面Page 2與Page 3,在未將母區塊Block 0的頁面Page 4~Page N之資料複製至子區塊Block 1的頁面Page 4~Page N前,也就是未關閉此組母子區塊前,此種暫態的關係可以記錄為母子區塊暫態關係表。因為頁面Page 4~Page N之資料可能會於之後的指令被更動,若能夠先將此暫態的關係儲存,並等到需要關閉母子區塊時才關閉母子區塊,則可以減少無謂的搬移與抹除區塊的動作。另外,藉由邏輯實體表與母子區塊暫態關係表,邏輯區塊位址與實體區塊位址的對映上會使多個實體區塊位址對應到一個邏輯區塊位址,換言之,就是母區塊Block 0與子區塊Block 1的內容
整合起來才是對應邏輯區塊的內容。
為了有效地管理快閃記憶體內的資料,最好的作法就是在每次指令來時就把內部的變數記錄下來。那麼在下次開機時就能夠知道哪個區塊的哪個頁面(Page)在斷電前正在被寫入,且此時就僅只需針對這個區塊去處理即可。所以,每次接收寫入指令時,都記錄子區塊之邏輯位址、子區塊中之更新頁面與母區塊中之頁面的對應關係以及更新資料的版本等資訊於母子區塊暫態關係表的方法是最穩固(Robust)的資料管理方法,但是,此方法對於其存取速度的影響很大。
因此,本發明的作法為在每次要寫入不同母子區塊時會將子區塊之邏輯位址、子區塊中之更新頁面與母區塊中之頁面的對應關係、更新資料的版本等資訊、此次開機至目前所有實體區塊的抹除次數、母區塊的抹除次數、子區塊的抹除次數、目前存在的各母子區塊的映射資料、最近一次的寫入指令邏輯位址或其對應的母子區塊或其他可供協助平均各實體區塊磨損次數平均的相關資料紀錄於母子區塊暫態關係表內。如果下次指令是要寫入上次寫入的子區塊(Child Block)時,就不會將子區塊之邏輯位址、子區塊中之更新頁面與母區塊中之頁面的對應關係、更新資料的版本、此次開機至目前所有實體區塊的抹除次數、母區塊的抹除次數子區塊的抹除次數、目前存在的各母子區塊的映射資料、至少最近一次的寫入指令邏輯位址或其對應的母子區塊或或其他可供協助實體區塊磨損次數平均的相
關資料紀錄於母子區塊暫態關係表。因為,這種狀況表示這次資料是接續之前資料的連續資料,不過亦有可能是隨機但剛好對應至相同的母區塊之資料,因此,此時的母子區塊之暫態資訊(包括子區塊之邏輯位址、子區塊中之更新頁面與母區塊中之頁面的對應關係、更新資料的版本、此次開機至目前所有實體區塊的抹除次數、母區塊的抹除次數子區塊的抹除次數、目前存在的各母子區塊的映射資料、至少最近一次的寫入指令邏輯位址或其對應的母子區塊或或其他可供協助實體區塊磨損次數平均的相關資料)並不需要儲存至母子區塊暫態關係表。如果下次的指令要寫入資料的母子區塊並不是另外的上一次寫入資料的母子區塊,則需將暫態資訊存入母子區塊暫態關係表。因此,可以利用目前寫入的母子區塊是否與上一次寫入的母子區塊相同來判斷是不是需要須將目前的暫態資訊記錄至母子區塊暫態關係表,以藉此有效地管理資料且不會嚴重影響到其寫入速度。
在下次開機時,或是在開機後的第一個寫入指令下來時,快閃記憶體為了能夠有效地管理資料,會強行關閉(close)斷電之前正在被寫入的母子區塊,也就是將母區塊的其它頁面之有效資料搬至子區塊對應之頁面。因此,無論是否是正常斷電,本發明之範例所提供的資料管理方法及其儲存裝置與其控制器可以避免有效的資料寫入存有無效的資料區塊,以藉此有效地管理資料。
在本發明之範例中,快閃記體之儲存裝置會儲存多個
母子區塊的暫態關係表,母子區塊暫態關係表可儲存於例如控制器中的緩衝電路中、暫存記憶體、快閃記憶體內之特定區塊或其系統電路中。當然,亦可基於資料保全或記錄資料的便利性,母子區塊暫態關係表中之最新母子區塊暫態關係資料會即時更新並先儲存在暫存記憶體,當經過特定時間,如3分鐘,或接收某特定指令,如flush,或執行特定動作,如更換邏輯與實體區塊對映表時,再由暫存記憶體中複制該具有最新資料之母子區塊暫態關係表至快閃記憶體中或更新儲存於快閃記憶體中之母子區塊暫態關係表。其中,所能紀錄之母子區塊暫態關係表的個數並非用以限定本發明。這些母子區塊的暫態資訊,可以讓快閃記憶體之儲存裝置在開機時,能夠知道哪個區塊的哪個頁面(Page)在斷電前正在被寫入。同時,這些暫態資訊能夠讓之後所欲寫入的資料能夠根據前面這些暫態資訊快速將資料寫入對應的母子區塊內。在另一實施例中,這些母子區塊暫態關係表記錄了多個母子區塊相關於平均磨損次數的資訊,例如此次開機至目前所有實體區塊的抹除次數、子區塊的抹除次數、母區塊的抹除次數、目前存在的各母子區塊的映射資料、至少最近一次的寫入指令邏輯位址、目前存在的各母子區塊的映射資料、最近一次的寫入指令邏輯位址或其對應的母子區塊或其對應的母子區塊資料。
請參照圖2,圖2是本發明之範例所提供的用於快閃記憶體之儲存裝置的資料管理方法之流程圖。首先,當電源重新打開後,在步驟S20,判斷是否存有母子區塊,若
是,則執行步驟S21,若否,則執行步驟S26。因為,快閃記憶體之儲存裝置剛出廠或在開卡後,大部份的區塊都無記錄資料,因此,可以直接執行步驟S26。
於步驟S21,判斷在所接收的寫入資料是否為在電源打開後所接收到的第一筆寫入資料,其中,每筆寫入指令中至少會有一筆寫入的邏輯位址會被記錄或更新至母子區塊暫態關係表中。若是,則執行步驟S22,若否,則執行步驟S23。在步驟S22,關閉指定的母子區塊,也就是將電源打開前之上一次寫入的母子區塊中的母區塊之資料給合併至子區塊,並更新邏輯實體表,以及清除或更新與其對應之母子區塊暫態關係表。因為,電源打開前的斷電可能是不正常的斷電,所以,斷電前最後一次寫入之母子區塊的資料可能是不正確的。為了避免將有效的資料寫入具有不穩定資料的區塊內,並有效地管理資料,步驟S22會關閉斷電前最後一次寫入之母子區塊。
於步驟S23,根據母子區塊暫態關係表中所記錄的寫入指令來判斷目前要寫入資料的區塊是否為先前已寫入資料的多個母子區塊之一。若是,則執行步驟S24,若否,則執行步驟S25。
於步驟S25,檢查是否有無記錄資料的區塊,可以搭配目前邏輯寫入位址之母區塊成為一相對應之母子區塊。若是,則執行步驟S26,若否則執行步驟S27。於步驟S27,關閉多個母子區塊之其中一個,以產生一個無記錄資料的子區塊,此外,清除或更新關閉之母子區塊的母子區塊暫
態關係表。如此,這個無記錄資料的子區塊可以與目前邏輯寫入位址之母區塊對應成為目前所寫入的母子區塊,所以接著便可以執行步驟S26。
於步驟S24,根據母子區塊暫態關係表中所記錄的寫入指令來判斷目前要寫入資料的母子區塊是否為上一次寫入資料的母子區塊,若是,則執行步驟S28,若否,則直接執行步驟S26。於步驟S26,儲存目前要寫入資料之母子區塊的暫態資訊至母子區塊暫態關係表。於步驟S28,將所需寫入的資料寫入母子區塊中的子區塊,然後,回到步驟S21。
由上述的方法流程圖中,可以知道本發明之範例所提供的資料管理方法,會在電源打開時,將斷電前最後一次寫入的母子區塊給關閉,以避免將有效的資料寫入可能有無效資料的區塊內,而能夠有效地管理資料。為了使此領域具有通常知識者可以更明白本發明,以下以一例子來說明上述之方法的操作情況。
假設目前要寫入資料的母子區塊為M&C1,則在開機後會依儲存在快閃記憶體中之母子區塊暫態關係表判斷是否存有母子區塊與是否為第一筆寫入指令,若皆是的話,則會關閉電源打開前的上一次寫入資料之母子區塊,接著便檢查要寫入資料的母子區塊是否為先前有寫入資料的多個母子區塊之一。若要寫入資料的母子區塊不為先前有寫入資料的多個母子區塊之一的話,則直接儲存要寫入資料之母子區塊的暫態資訊,並將資料寫入至此要寫入資料的
母子區塊。若不是第一筆寫入指令,則直接檢查要寫入資料的母子區塊是否為先前有寫入資料的多個母子區塊之一。
若目前要寫入資料的母子區塊M&C1為先前有寫入資料的多個母子區塊之一,也就是有母子暫態關係表紀錄了要寫入資料的母子區塊之暫態資訊,且此次要寫入資料的母子區塊M&C1與上一次寫入資料的母子區塊M&C1相同,則資料會繼續寫入母子區塊M&C1。若目前要寫入資料的母子區塊M&C1為先前寫入資料的多個母子區塊之一,但是與上一次寫入資料的母子區塊M&C2不同,則會儲存目前要寫入資料的母子區塊M&C1之暫態資訊,而使得有關此母子區塊M&C1的母子區塊暫態關係表內之前所記錄的暫態資訊會被目前的暫態資訊所更新。由於目前要寫入資料的母子區塊M&C1與上一次寫入資料的母子區塊M&C2不同,所以,資料會寫入目前所寫入的母子區塊M&C1。另外,在下一次寫入指令進來時,根據被更新後的母子區塊暫態關係表可以知道先前寫入資料的母子區塊為M&C1。
若目前要寫入資料的母子區塊M&C1不是先前寫入資料的多個母子區塊之一,則會檢查是否有無記錄資料的子區塊可以與目前邏輯寫入位址之母區塊關聯成為目前寫入之母子區塊,若是,則會儲存目前要寫入資料的母子區塊M&C1之暫態資訊,並接者將資料寫入此要寫入資料的母子區塊。若沒有空的子區塊,則會將任一母子區塊給關
閉,並清除此關閉的母子區塊的母子區塊暫態關係表,以藉此清出空的子區塊與目前要寫入資料之邏輯寫入位址的母區塊關聯成為目前寫入之母子區塊,然後儲存目前要寫入資料的母子區塊M&C1之暫態資訊,並接者將資料寫入此要寫入資料的母子區塊。
接著,請參考圖3,圖3是本發明之範例所提供的儲存裝置30與其控制器300之系統方塊圖。儲存裝置30包括控制器300、儲存區塊電路303與系統電路304。其中,控制器300包括了微處理器301與緩衝器302。緩衝器302耦接於微處理器301,處理器301耦接於儲存區塊電路303與系統電路304。在此範例中,控制器300與系統電路304是分開的,但是,亦可以將控制器300設計於系統電路304,換言之,上述之範例並非用以限定本發明。
儲存區塊電路303包括多個快閃記憶體的儲存區塊,如同前面所述,這些儲存區塊包括多個頁面。另外,系統電路304則是用以儲存前述的母子暫態關係表,此系統電路304可為隨機存取記憶體(Random Access Memory,RAM)或非揮發性記憶體或其他類型記憶單元,而母子暫態關係表則記錄了子區塊之邏輯位址、子區塊中之更新頁面與母區塊中之頁面的對應關係、更新資料的版本、此次開機至目前所有實體區塊的抹除次數、母區塊的抹除次數子區塊的抹除次數、目前存在的各母子區塊的映射資料、至少最近一次的寫入指令邏輯位址或其對應的母子區塊或或其他可供協助實體區塊磨損次數平均的相關資料。緩衝
器302儲存程式碼,微處理器301用以讀取緩衝器302的程式碼。上述的程式碼原來是儲存在儲存區塊電路303中,當電源打開後,控制器300才會控制儲存區塊電路303將此儲存的程式碼送至緩衝器302來儲存。微處理器301接著執行緩衝器302的程式碼,以控制儲存區塊電路303與系統電路304來達到圖2所示之方法。
值得說明的是,該母子區塊暫態關係除了儲於該系統電路304外,基於資料保全或記錄資料的便利性,該控制器300會於經過特定時間,如3分鐘,或接收某特定指令,如flush,或執行特定動作,如更換邏輯與實體區塊對映表時,由該系統電路304中複製最新資料之母子區塊暫態關係表至儲存區塊電路303中。除此之外,上述的儲存裝置30可以是隨身碟(Pen Drive)的儲存裝置或固態硬碟(Solid State Disk,SSD)的儲存裝置,而儲存區塊電路303可以是非揮發性記憶體,例如反及型快閃記憶體(Nand Flash)。
綜上所述,本發明之範例所提供的資料管理方法及其控制器可以讓使用此方法或控制器的儲存裝置有效地管理資料。另外,因為僅有在目前要寫入資料之母子區塊與上一次寫入資料之母子區塊不同時,才會記錄目前要寫入資料之母子區塊的暫態資訊,所以使用本發明之範例所提供的資料管理方法及其控制器與儲存裝置在其寫入速度上,並不會有太大的影響。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離
本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
Block 0‧‧‧母區塊
Block 1‧‧‧子區塊
Page 0~Page N‧‧‧頁面
S20~S28‧‧‧步驟流程
30‧‧‧儲存裝置
300‧‧‧控制器
301‧‧‧微處理器
302‧‧‧緩衝器
303‧‧‧儲存區塊電路
304‧‧‧系統電路
圖1繪示了快閃記憶體之儲存裝置在儲存時的暫態示意圖。
圖2是本發明之範例所提供的用於快閃記憶體之儲存裝置的資料管理方法之流程圖。
圖3是本發明之範例所提供的儲存裝置30與其控制器300之系統方塊圖。
S20~S28‧‧‧步驟流程
Claims (19)
- 一種資料管理方法,適用於具有多個區塊的一儲存裝置,其中,該些區塊中之部分區塊關聯成為多個母子區塊,該資料管理方法包括:檢查目前要寫入資料的該母子區塊是否與上一次寫入資料的該母子區塊相同;以及若目前要寫入資料的該母子區塊與上一次寫入資料的該母子區塊不同,則記錄了目前要寫入資料之該母子區塊的一暫態資訊至一母子暫態關係表,其中,該母子暫態關係表標記該些母子區塊中最近一次被寫入資料的母子區塊。
- 如申請專利範圍第1項所述之資料管理方法,其中,目前要寫入資料之該母子區塊的該暫態資訊包括一子區塊之邏輯位址、一子區塊中之更新頁面與母區塊中之頁面的對應關係、一更新資料的版本、一此次開機至目前所有實體區塊的抹除次數、一母區塊的抹除次數、一子區塊的抹除次數、目前存在的各母子區塊的映射資料、最近一次的寫入指令邏輯位址或其對應的母子區塊或至少一其他可供協助該儲存裝置之實體區塊磨損次數平均的相關資料。
- 如申請專利範圍第1項所述之資料管理方法,更包括:檢視目前要寫入資料的該母子區塊是否為先前寫入資料的該些母子區塊之一; 檢查該些區塊中是否有一個無記錄資料的區塊可以與要寫入資料的區塊關聯成為一個母子區塊;以及若該些子區塊無任何一個無記錄資料的該子區塊時,則關閉先前所寫入的該些母子區塊其中之任一個母子區塊。
- 如申請專利範圍第1項所述之資料管理方法,更包括:判斷所接收到的一筆寫入指令,是否為該儲存裝置打開電源後的第一筆寫入指令;以及若該筆寫入資料為該儲存裝置打開電源後的第一筆寫入指令,則關閉上一次寫入的該母子區塊。
- 如申請專利範圍第1項所述之資料管理方法,更包括:若目前要寫入資料的該母子區塊是否與上一次寫入資料的該母子區塊相同時,則將目前要寫入的資料寫入至目前要寫入資料的該母子區塊。
- 一種資料管理控制器,適用於具有多個區塊的一儲存裝置,其中,該些儲存區塊中之部分區塊關聯成為多個母子區塊,該資料管理控制器包括:一微處理器與一緩衝器,該處理器與該緩衝器彼此耦接,其中,該緩衝器具有一程式碼,該處理器讀取與執行該程式碼,並控制與其連接的該儲存裝置進行以下步驟:檢查目前要寫入資料的該母子區塊是否與上一次寫入資料的該母子區塊相同;以及 若目前要寫入資料的該母子區塊與上一次寫入資料的該母子區塊不同,則記錄了目前要寫入資料之該母子區塊的一暫態資訊至一母子暫態關係表,其中,該母子暫態關係表標記該些母子區塊中最近一次被寫入資料的母子區塊。
- 如申請專利範圍第6項所述之資料管理控制器,其中,目前要寫入資料之該母子區塊的該暫態資訊包括一子區塊之邏輯位址、一子區塊中之更新頁面與母區塊中之頁面的對應關係、一更新資料的版本、一此次開機至目前所有實體區塊的抹除次數、一母區塊的抹除次數、一子區塊的抹除次數、目前存在的各母子區塊的映射資料、最近一次的寫入指令邏輯位址或其對應的母子區塊或至少一其他可供協助該儲存裝置之實體區塊磨損次數平均的相關資料。
- 如申請專利範圍第6項所述之資料管理控制器,其中,該處理器更控制該儲存裝置進行以下步驟:檢視目前要寫入資料的該母子區塊是否為先前寫入資料的該些母子區塊之一;檢查該些區塊中是否有一個無記錄資料的區塊可以與要寫入資料的區塊關聯成為一個母子區塊;以及若該些子區塊無任何一個無記錄資料的該子區塊時,則關閉先前所寫入的該些母子區塊其中之任一個母子區塊。
- 如申請專利範圍第6項所述之資料管理控制器,其 中,該處理器更控制該儲存裝置進行以下步驟:判斷所接收到的一筆寫入指令,是否為該儲存裝置打開電源後的第一筆寫入指令;以及若該筆寫入資料為該儲存裝置打開電源後的第一筆寫入指令,則關閉上一次寫入的該母子區塊。
- 如申請專利範圍第6項所述之資料管理控制器,其中,該處理器更控制該儲存裝置進行以下步驟:若目前要寫入資料的該母子區塊是否與上一次寫入資料的該母子區塊相同時,則將目前要寫入的資料寫入至目前要寫入資料的該母子區塊。
- 如申請專利範圍第6項所述之資料管理控制器,該儲存裝置為一快閃記憶體之儲存裝置。
- 如申請專利範圍第6項所述之資料管理控制器,其中,該母子暫態係表儲存於該資料管理控制器之一系統電路。
- 一種儲存裝置,包括:一儲存區塊電路,具有多個區塊,用以儲存資料,其中,該些區塊中之部分區塊關聯成為多個母子區塊;一系統電路,用以儲存至少一母子區塊暫態關係表;一控制器,耦接於該儲存區塊電路與該系統電路,用以檢查目前要寫入資料的該母子區塊是否與上一次寫入資料的該母子區塊相同,若目前寫入要寫入資料的該母子區塊與上一次寫入資料的該母子區塊不同,則記錄了目前要寫入資料之母子區塊的一暫態資訊至該母子區塊暫態關係 表,其中,該母子暫態關係表標記該些母子區塊中最近一次被寫入資料的母子區塊。
- 如申請專利範圍第13項所述之儲存裝置,其中,目前寫入之該母子區塊的該暫態資訊包括其中,目前要寫入資料之該母子區塊的該暫態資訊包括一子區塊之邏輯位址、一子區塊中之更新頁面與母區塊中之頁面的對應關係、一更新資料的版本、一此次開機至目前所有實體區塊的抹除次數、一母區塊的抹除次數、一子區塊的抹除次數、目前存在的各母子區塊的映射資料、最近一次的寫入指令邏輯位址或其對應的母子區塊或至少一其他可供協助該儲存裝置之實體區塊磨損次數平均的相關資料。
- 如申請專利範圍第13項所述之儲存裝置,其中,該控制器更用以檢視目前要寫入資料的該母子區塊是否為先前有寫入資料的該些母子區塊之一,並檢查該些儲存區塊中是否有一個無記錄資料的區塊可以與要寫入資料的區塊關聯成為一個母子區塊,以及關閉先前有寫入資料的該些母子區塊其中之任一個母子區塊。
- 如申請專利範圍第13項所述之儲存裝置,其中,該控制器更用以判斷所接收到的一筆寫入指令,是否為該儲存裝置打開電源後的第一筆寫入指令,若該筆寫入資料為該儲存裝置打開電源後的第一筆寫入指令,則關閉上一次寫入資料的該母子區塊。
- 如申請專利範圍第13項所述之儲存裝置,該控制器更用以控制該儲存區塊電路在目前要寫入資料的該母子 區塊是否與上一次寫入資料的該母子區塊相同時,將目前要寫入的資料寫入目前要寫入資料的母子區塊。
- 如申請專利範圍第13項所述之儲存裝置,該儲存區塊電路是一反及型快閃記憶體。
- 如申請專利範圍第13項所述之儲存裝置,其中,該控制器更複製該儲存於該系統電路之該母子區塊暫態關係表並儲存至該儲存區塊電路。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW097129546A TWI381386B (zh) | 2008-08-04 | 2008-08-04 | 資料管理方法及其儲存裝置與其控制器 |
US12/259,026 US8065497B2 (en) | 2008-08-04 | 2008-10-27 | Data management method, and storage apparatus and controller thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW097129546A TWI381386B (zh) | 2008-08-04 | 2008-08-04 | 資料管理方法及其儲存裝置與其控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201007740A TW201007740A (en) | 2010-02-16 |
TWI381386B true TWI381386B (zh) | 2013-01-01 |
Family
ID=41609499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097129546A TWI381386B (zh) | 2008-08-04 | 2008-08-04 | 資料管理方法及其儲存裝置與其控制器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8065497B2 (zh) |
TW (1) | TWI381386B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI567554B (zh) * | 2014-11-06 | 2017-01-21 | 慧榮科技股份有限公司 | 緩存及讀取即將寫入儲存單元之資料的方法以及使用該方法的裝置 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI444825B (zh) * | 2011-03-29 | 2014-07-11 | Phison Electronics Corp | 記憶體儲存裝置、記憶體控制器與資料寫入方法 |
CN102231136B (zh) * | 2011-07-12 | 2014-06-11 | 晨星软件研发(深圳)有限公司 | 一种闪存存储设备的数据存储方法和装置 |
KR20130032155A (ko) * | 2011-09-22 | 2013-04-01 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 데이터 관리 방법 |
CN105408961B (zh) * | 2014-06-26 | 2018-10-19 | 华为技术有限公司 | 数据存储方法、装置和非易失性存储器 |
CN107861687B (zh) * | 2017-10-13 | 2020-09-11 | 华立科技股份有限公司 | 在flash存储器上实现电表电量小数的按位存储的方法 |
CN108763101B (zh) * | 2018-05-30 | 2021-11-09 | 郑州云海信息技术有限公司 | 一种数据的搬运方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW333648B (en) * | 1997-10-30 | 1998-06-11 | Key Technology Corp | The connection structure and algorithm for flash memory |
US20030145141A1 (en) * | 2002-01-31 | 2003-07-31 | Chien-An Chen | Universal serial bus flash memory integrated circuit device |
US20050010717A1 (en) * | 2003-07-07 | 2005-01-13 | Soo-Ching Ng | Access and data management method using double parallel tracks for flash memory cells |
TW200515419A (en) * | 2003-10-29 | 2005-05-01 | Phison Electronics Corp | Method for creating link between check page and logic page in child bock under a parent and child architecture |
TW200527201A (en) * | 2004-02-10 | 2005-08-16 | Phison Electronics Corp | Method for controlling and determining storage performance of flash memory |
US20050235097A1 (en) * | 2004-04-19 | 2005-10-20 | Phison Electronics Corp. | [storage controlling and judging method of flash memory] |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7206893B2 (en) * | 2003-12-12 | 2007-04-17 | Phison Electronics Corp. | Linking method under mother and child block architecture for building check area and logic page of the child block |
US8195870B2 (en) * | 2007-11-29 | 2012-06-05 | Silicon Motion, Inc. | Memory card and method for handling data updating of a flash memory |
TWI428747B (zh) * | 2008-12-12 | 2014-03-01 | Silicon Motion Inc | 非揮發性記憶體資料管理方法及使用該方法之非揮發性儲存裝置 |
-
2008
- 2008-08-04 TW TW097129546A patent/TWI381386B/zh active
- 2008-10-27 US US12/259,026 patent/US8065497B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW333648B (en) * | 1997-10-30 | 1998-06-11 | Key Technology Corp | The connection structure and algorithm for flash memory |
US20030145141A1 (en) * | 2002-01-31 | 2003-07-31 | Chien-An Chen | Universal serial bus flash memory integrated circuit device |
US20050010717A1 (en) * | 2003-07-07 | 2005-01-13 | Soo-Ching Ng | Access and data management method using double parallel tracks for flash memory cells |
TW200515419A (en) * | 2003-10-29 | 2005-05-01 | Phison Electronics Corp | Method for creating link between check page and logic page in child bock under a parent and child architecture |
TW200527201A (en) * | 2004-02-10 | 2005-08-16 | Phison Electronics Corp | Method for controlling and determining storage performance of flash memory |
US20050235097A1 (en) * | 2004-04-19 | 2005-10-20 | Phison Electronics Corp. | [storage controlling and judging method of flash memory] |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI567554B (zh) * | 2014-11-06 | 2017-01-21 | 慧榮科技股份有限公司 | 緩存及讀取即將寫入儲存單元之資料的方法以及使用該方法的裝置 |
US9779022B2 (en) | 2014-11-06 | 2017-10-03 | Silicon Motion, Inc. | Methods for caching and reading data to be programmed into a storage unit and apparatuses using the same |
Also Published As
Publication number | Publication date |
---|---|
US8065497B2 (en) | 2011-11-22 |
US20100030979A1 (en) | 2010-02-04 |
TW201007740A (en) | 2010-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5696118B2 (ja) | 不揮発性メモリシステムのためのウィーブシーケンスカウンタ | |
CN111752487B (zh) | 一种数据恢复方法、装置及固态硬盘 | |
TWI381386B (zh) | 資料管理方法及其儲存裝置與其控制器 | |
JP4524309B2 (ja) | フラッシュメモリ用のメモリコントローラ | |
TWI570737B (zh) | 資料儲存裝置以及快閃記憶體控制方法 | |
US8862808B2 (en) | Control apparatus and control method | |
TWI554877B (zh) | 處理用於具有非揮發性記憶體之一系統之不正常關機 | |
TWI461913B (zh) | 快閃記憶裝置及其資料讀取方法 | |
US10838629B2 (en) | Solid state device with fast boot after ungraceful shutdown | |
US20220269572A1 (en) | Storage device and method for operating storage device | |
TWI524183B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI645404B (zh) | 資料儲存裝置以及非揮發式記憶體操作方法 | |
US20120246393A1 (en) | Memory system and control method of the memory system | |
US20100070729A1 (en) | System and method of managing metadata | |
TWI459400B (zh) | 記憶體儲存裝置、及其記憶體控制器與電源控制方法 | |
JP2007004234A (ja) | ストレージ装置 | |
JP2008146255A (ja) | 記憶装置およびコンピュータシステム、並びに記憶装置のデータ処理方法 | |
TWI459198B (zh) | 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 | |
JP2010211734A (ja) | 不揮発性メモリを用いた記憶装置 | |
WO2023116346A1 (zh) | 异常掉电下Trim数据的恢复方法、系统及固态硬盘 | |
CN114115706A (zh) | 记忆装置、快闪存储器控制器及其存取方法 | |
US11487475B2 (en) | Control method for referring to expired block table to perform expired block recycling operation and associated flash memory controller and memory device | |
US11194502B1 (en) | Electronic device, flash memory controller and method for performing garbage collection operation on flash memory module | |
KR100866513B1 (ko) | 플래시 메모리 기반 저널링 파일 시스템을 이용한 데이터처리 방법 | |
JP2004326523A (ja) | 書き換え可能な不揮発性メモリを備えた記憶装置及び記憶装置用不揮発性メモリの制御方法 |