TWI406127B - 更新使用者資料的方法 - Google Patents
更新使用者資料的方法 Download PDFInfo
- Publication number
- TWI406127B TWI406127B TW098128685A TW98128685A TWI406127B TW I406127 B TWI406127 B TW I406127B TW 098128685 A TW098128685 A TW 098128685A TW 98128685 A TW98128685 A TW 98128685A TW I406127 B TWI406127 B TW I406127B
- Authority
- TW
- Taiwan
- Prior art keywords
- user data
- indication information
- logical address
- volatile memory
- updating
- 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
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)
- Memory System (AREA)
- Read Only Memory (AREA)
Description
本發明有關非揮發性(non-volatile)記憶體陣列,更具體地,有關於一種更新使用者資料的方法以及恢復使用者資料的方法。
快閃記憶體(flash memory)為具有低功耗以及小體積的優勢的非揮發性記憶體陣列的一種。因此,快閃記憶體廣泛地用在各種應用中,尤其是可攜式(portable)電子裝置中。
快閃記憶體不可覆寫。一旦快閃記憶體的一部分寫入資料,必須首先刪除(即,擦除)現存資料,然後,該部分才可以重新寫入新資料。快閃記憶體可由多個晶體管單元所組成。這些晶體管單元可以分為幾個可擦除的區塊(block)。一個區塊中的多個單元可以同時擦除。也就是說,區塊為快閃記憶體一次可擦除資料的計量單位。每個區塊進一步可以分為多個頁面(page)。頁面為可程式化資料的計量單位。典型地,每個頁面都可以用作存儲使用者資料的一個扇區(sector)。儘管如此,一個頁面存儲使用者
資料的一個扇區的一部分或者多個扇區都是可能的。扇區是傳送資料的計量單位。
第1圖為快閃記憶體的頁面100的資料結構的示意圖。如圖所示,頁面100具有資料區域110以及備存區域(Spare area)120。資料區域110典型地可以存儲使用者資料。舉例說明,備存區域120可以存儲一些控制資料(例如邏輯位址,其中圖中邏輯位址可以稱之為LBA 122)以及時間戳記124,其中,當資料寫入資料區域110時,時間戳記124可用作記錄時間。備存區域120也可容納其他資訊,例如錯誤校正碼(Error Correction Code,ECC)。
如上所述,頁面為可程式化資料的計量單位,區塊為一次可擦除資料的計量單位。當邏輯頁面的資料(原始存儲在一個實體頁面)進行更新時,常用的方法就是查找另一個實體頁面,然後將新資料(即已更新資料)寫入新實體頁面。而邏輯頁面和實體頁面之間的映射關係則記錄於指標表中。第2圖為指標表(Pointer table)200的示意圖,其中,指標表200記錄電腦系統中的的邏輯位址和快閃記憶體所對應的實體位址之間的映射關係。邏輯位址為電腦作業系統(例如,WINDOWS)用來定址使用者資料區的方式,實體位址代表快閃記憶體中的特定位置。舉例說明,第一指標201指示出邏輯位址LBA1對應實體位址PA1,而第二指標202指示出邏輯位址LBA2對應實體位址PA2。也就是說,邏輯位址LBA1的資料存儲在快閃記憶體的由實體位址PA1所標示的位置,邏輯位址LBA2的資料存儲在快閃記憶體的由實體位址PA2所標示的位置。例如,當對應邏輯位址LBA1的實體位址PA1的資料更新時,新資料寫入新實體位址PA3。然後,指示邏輯位址LBA1與其所對應的實體位址的第一指標201指標表則需要更新。可以理解的是,既
然所有邏輯位址的映射關係都需要記錄,所以指標表200具有較大的容量。
當一使用快閃記憶體的儲存系統啟動時,系統自快閃記憶體中讀取指標表200,並將指標表200複製一份至系統中的揮發性記憶體(例如,動態隨機存取記憶體DRAM或者靜態隨機存取記憶體SRAM)。透過掃描位於揮發性記憶體中的指標表,就可以知道快閃記憶體的哪一個位置存儲特定邏輯位址對應的使用者資料。當使用者資料的片段(segment)更新時,指標表200也需要更新。如果快閃記憶體為大容量記憶體陣列(例如,1T位元)時,指標表將很大。所以更新指標表200將需要很長時間。相應地,如果快閃記憶體中的指標表在任何資料區域段更新時均更新的話,那麽整個系統的效能將會降低。
為了提升系統更新使用者資料的效率,在更新使用者資料時,可以僅更新位於揮發性記憶體中的指標表,並在系統關閉前,依據儲存於揮發性記憶體中的指標表,更新位於快閃記憶體中的舊版指標表200。如此,可以避免每次更新使用者資料,都需要更新指標表200所花費的時間。
當系統遭遇突然的斷電時,由於位於揮發性記憶體內的指標表內容,尚未更新至指標表200,就已損毀。則儲存系統重新啟動時,需要掃描快閃記憶體中所有頁面的備存區域120,利用記錄於備存區域的邏輯位址,還原斷電前儲存於揮發性記憶體的指標表。若有多於一個頁面的備存區域記錄了相同的邏輯位址,則再比較記錄於各頁面的時間戳記124,以還原最接近斷電前的指標表。
讀取備存區域的內容導致系統自斷電狀況還原時需要花費額
外的時間。對於大容量的儲存系統,此額外時間甚至可能超過電腦系統的開機時間規範。
為了減少快閃記憶體中的指標表的更新時間,以及指標表有效率地自斷電狀態恢復使用者資料,進而提高整個系統的效能,本發明提供一種更新使用者資料的方法以及恢復使用者資料的方法。
本發明提供一種更新使用者資料的方法,該使用者資料與一非揮發性記憶體陣列之多個邏輯位址以及多個實體位址關聯,一指標表存儲在該非揮發性記憶體陣列中,其中,該指標表記錄該多個邏輯位址與該多個實體位址之間之映射關係,而該方法包含:當一邏輯位址對應之原始使用者資料更新至一已更新使用者資料時,寫入該邏輯位址對應之該已更新使用者資料至一該非揮發性記憶體陣列之一記憶體位置,其中,該記憶體位置由一實體位址所標示;建立一指示資訊,該指示資訊指示出該邏輯位址與該實體位址之間之映射關係,其中,該指示資訊存儲在一額外非揮發性記憶體陣列之一修改區域中;以及當存儲該指示資訊之該修改區域已滿時,基於該指示資訊修訂該指標表。
本發明再提供一種更新使用者資料的方法,該使用者資料與多個邏輯位址關聯,該使用者資料存儲在非揮發性記憶體陣列之一記憶體位置中,該方法包含:建立一指示資訊,該指示資訊與該非揮發性記憶體陣列之多個記憶體位置關聯,其中,該多個記憶體位置定義為多個已指定記憶體位置,而該指示資訊指示出使用該多個已指定記憶體位置之一預設順序;根據該非揮發性記憶
體陣列之一條件或根據指示該非揮發性記憶體陣列之一運作之處理或完成之一狀態位元,調整該預設順序;以及當一邏輯位址對應之原始使用者資料更新為已更新使用者資料時,根據該指示資訊,將該邏輯位址對應之該已更新使用者資料寫入該多個已指定記憶體位置之一者。
本發明提供之更新使用者資料的方法,可以減少快閃記憶體中的指標表的更新時間,以及節省記憶體中用於存儲指標表的空間,進而提高整個系統的效能。
在說明書及後續的申請專利範圍當中使用了某些詞彙來指稱特定元件。所屬領域中具有通常知識者應可理解,製造商可能會用不同的名詞來稱呼同一個元件。本說明書及後續的申請專利範圍並不以名稱的差異來作為區域分元件的方式,而是以元件在功能上的差異來作為區域分的準則。在通篇說明書及後續的請求項當中所提及的「包括」和「包含」係為一開放式的用語,故應解釋成「包含但不限定於」。以外,「耦接」一詞在此係包含任何直接及間接的電氣連接手段。間接的電氣連接手段包括通過其他裝置進行連接。
快閃記憶體為具有低功耗以及小體積的優勢的非揮發性記憶體陣列的一種,本發明僅以快閃記憶體為例,然本發明不以此為限。參考第3圖以及第4圖描述本發明第一實施例,其中,第3圖為展示本發明第一實施例的概念的示意圖,而第4圖為根據本發明第一實施例的更新方法的流程圖。步驟S410中,對應邏輯位
址對應的使用者資料存儲在系統(圖未示)的第一快閃記憶體的多個位置中。第一快閃記憶體的多個位置(也稱之為記憶體位置)分別由實體位址(PA)而標示。每個邏輯位址(LBA)對應一個實體位址(PA)。在步驟S420中,建立第一快閃記憶體的指標表300,以記錄邏輯位址與實體位址之間映射關係。一般說來,指標表存儲在第一快閃記憶體,然後也可以寫入揮發性記憶體(例如DRAM)(圖未示)。為了描述方便,存儲在第一快閃記憶體中的指標表可以稱作第一指標表300,而寫入DRAM的指標表可以稱為第二指標表310。第二指標表310的副本可以回寫入第一快閃記憶體,用於在系統電源關閉時,更新第一指標表300。在第一指標表300與第二指標表310中,每個指標記錄第一快閃記憶體的一個邏輯位址和一個實體位址之間的關係。如圖所示,第一指標表300或者第二指標表310的第一指標都指示邏輯位址LBA1映射實體位址PA1。這就意味著,使用者資料存儲在由實體位址PA1所標示的快閃記憶體位置中,其中,該使用者資料與邏輯位址LBA1關聯。舉例來說,實體位址可以包含區塊號碼以及頁面號碼。
當系統電源開啟時,第一快閃記憶體的第一指標表300裝載到DRAM中,以產生第二指標表310。在系統電源關閉之前,DRAM中的第二指標表310回寫入第一快閃記憶體,以更新第一指標表300。
在此實施例中,當一邏輯位址對應之原始使用者資料更新為一新使用者資料時,步驟S430中,系統找到第一快閃記憶體中可用記憶體位置,例如找到具有新實體位址的未使用或者已擦除記憶體位置。在步驟S440中,系統將新使用者資料(已更新使用者資料)存儲到該可用記憶體位置中。然後,DRAM中的第二指標
表310更新,而第一快閃記憶體中的第一指標表300沒有更新。此外,在步驟S450,建立修改表以記錄邏輯位址與新實體位址之間的已修改映射關係,以及根據該修改表更新指標表,因為可以將修改表(例如,修改表311或者修改表312)稱為指示(indication)資訊,所以修改該修改表即為建立該指示資訊。更優地,修改表就可以存儲在一個小的記憶體陣列而不是第一快閃記憶體陣列的一個特定區域,或者整個區域中。例如,如第3圖所示的修改表311以及修改表312就可以存儲在第二快閃記憶體(圖未示),也就是存儲在一額外非揮發性記憶體中。而且,修改表存儲在第一快閃記憶體的特定區域也是可能的。用於存儲修改表的區域可以稱為本發明實施例的修改區域,所以修改表存儲在該快閃記憶體之一修改區域中,又可稱之為該指示資訊存儲在該快閃記憶體之一修改區域中。
修改表的建立意味著記錄新指標,而新指標指示出邏輯位址和新對應實體位址之間的新映射關係。在此實施例中,首先,邏輯位址的新使用者資料寫入新實體位址標示的新記憶體位置,然後,新指標寫入修改表(即建立指示資訊)。儘管如此,首先將新指標寫入修改表是可能的(其中,新指標指示出邏輯位址和新實體位址之間的映射關係),然後將新使用者資料寫入由新實體位址所標示的新位置。進一步說,將新指標寫入修改表與寫入新使用者資料也可平行進行。因此,在步驟S440以及步驟S450之間就不必存在特定的順序。相似地,在步驟S410以及步驟S420之間就不必存在特定的順序
如上所述,修改表記錄每個邏輯位址與對應新實體位址之間的映射關係的修訂。更優地,無論何時更新程序發生,那麽就會
建立一個新修改表。在更新程序中,更新一個或者多個邏輯位址對應的使用者資料。假設邏輯位址LBA1開始映射到實體位址PA1。在第一更新程序中,邏輯位址LBA1就會變為映射到新實體位址PAx,然後在第二更新程序中,變為映射到新實體位址PAy。如第3圖所示,在第一更新程序中,建立第一修改表311。在第一修改表311中,邏輯位址LBA1映射到實體位址PAx。在第二更新程序中,建立第二修改表312,其中,邏輯位址LBA1映射到實體位址PAy。如果實體位址PA1標示快閃記憶體的特定實體區塊的特定實體頁面,那麽實體位址PAx以及實體位址PAy之每一者均可為實體位址為PA1的同一區塊的一個未使用頁面或者已擦除頁面,或者實體位址PAx以及實體位址PAy為與實體位址PA1的另一個區塊中的頁面。
在更新程序中,已更新邏輯位址的所有已更新關係都記錄在同樣的修改表中。如果邏輯位址,例如邏輯位址LBA2,沒有在該更新程序中更新,即,邏輯位址LBA2的映射關係沒有修訂,那麽邏輯位址LBA2在該更新程序的修改表中就沒有記錄。
請注意,修改表都是從邏輯上定義的。實作中,較優地,每次更新的分別的新指標按順序記錄。也就是說,每次更新的分別的修改表都按順序存儲。儘管如此,存儲更新指標的任何其他安排均為可能,只要每個邏輯位址的更新指標中最後一者為已知。
在此實施例中,具有預設容量的修改表在第二快閃記憶體中分配,以存儲修改表。第二快閃記憶體為小容量快閃記憶體。儘管如此,如上所述,修改表分配在第一快閃記憶體的特定區域的修改區域中也是可能的。
當修改區域已滿,根據該指示資訊(即存儲在修改區域中的
修改表311以及修改表312),修訂第一指標表300,以成為新指標表。然後,現存修改表311以及修改表312可被無效。例如,清除(即,擦除)存儲在修改區域中的修改表311以及修改表312,換言之,即為清除該修改區域。相應地,修改區域就可以用作存儲新修改表(即,存儲新指標)。可替換地,基於該指示資訊,也可以週期性地修訂第一指標表300,換言之,即第一指標表300可以週期性地修訂以成為新指標表。舉例說明,無論何時預設時間週期過去之後,修改表就會過期,根據現存修改表(例如,修改表311以及修改表312),將第一指標表300修改為新指標表,然後,修改表就無效了。如上所述,只要存在更新,就修訂第二指標表310。因此,第二指標表310通常記錄邏輯位址與實體位址之間的最新映射關係。
在此實施例中,因為修改表的存在,第一指標表300不需要經常修訂。即,透過使用這樣的方法,第一指標表300的更新次數可以顯著降低。作為結果,更新第一指標表300的處理時間,與傳統的方法相比,也會顯著降低。另外,因為修改表的存在,當電源出錯時,即使第一快閃記憶體的第一指標表300沒有及時更新,那麽資料也可以輕易恢復。如上所述,只要存在更新,就修訂第二指標表310,而第一指標表300就不會修訂如此頻繁。儘管如此,更新時產生的邏輯位址與新實體位址之間的新映射關係,就記錄在修改表中。當系統重新啟動電源時,系統可以檢查,是否有修改表。如果有修改表,那麽第一快閃記憶體的舊第一指標表300就透過修改表而修訂,然後寫入DRAM,以產生DRAM中的第二指標表310。
第5圖為根據本發明的第一實施例的恢復方法的流程圖。在
此實施例中,首先自快閃記憶體讀取第一指標表300,以及讀取指示資訊(即修改表),該指示資訊記錄邏輯位址的至少一已修改映射關係,該邏輯位址對應之原始使用者資料已經更新為新使用者資料,其中,每一已修改映射關係指示出該邏輯位址與新實體位址之映射關係,而該新實體位址標示存儲該新使用者資料之該非揮發性記憶體陣列之一記憶體位置。然後,根據該指示資訊以及第一指標表310,並且優先考慮該指示資訊,確定該多個邏輯位址與該實體位址之一有效映射關係;以及根據該邏輯位址之該有效映射關係,自該新實體位址標示之該記憶體位置讀取該新使用者資料。請注意,讀取第一指標表310以及讀取該指示資訊的步驟不以上述描述為限,實作中,二者可以平行進行,或者先讀取該指示資訊,而後讀取第一指標表310。如上所述,修改表311與修改表312存儲在修改區域中。即,指示邏輯位址與對應新實體位址之間映射關係的新指標存儲在修改區域中。當電源出錯時,存儲在DRAM中的第二指標表310將會丟失。如上所述,只要存在更新,就修訂第二指標表310,而第一指標表300就不會修訂如此頻繁。儘管如此,邏輯位址與新實體位址之間的映射關係會記錄在修改表311以及修改表312中。相應地,邏輯位址與實體位址之間的最新映射關係就可得知。
在步驟S510開始恢復過程。當系統重新啟動電源以恢復使用者資料時,系統可以檢查是否有修改表。即,系統確定是否修改區域為空(步驟S520)。如果修改區域為空,那麽意味著在電源出錯之前沒有更新,然後轉向步驟S530以處理正常的電源啟動流程,也就是終止該更新資料的處理流程。也就是說,系統獨取第一指標表300,以存儲在第二指標表310中。如果修改區域不為
空,那麽意味著在電源出錯前至少出現一次更新。那麽轉向步驟S540。
在步驟S540,系統確定每個邏輯位址在修改表中的最新指標。在第3圖所示的例子中,邏輯位址LBA1的最新指標指示最新對應實體位址為PAy。在步驟S550中,根據修改表修訂指標表,也就是說第一指標表300寫入DRAM以產生新指標表,即第二指標表310。根據存儲在第二快閃記憶體的修改表311以及修改表312,修訂指標表310,也就是確定該多個邏輯位址與該對應實體位址的有效映射關係(其中,邏輯位址之最後一筆記錄的映射關係為該有效映射),而且優先考慮該指示資訊(即修改表311以及修改表312),也就是說根據該修改表以及第一指標表310,並且優先考慮該修改表,確定該多個邏輯位址與該對應實體位址的有效映射關係。實作中,當系統激活時,首先可以讀取第一指標表300,然後寫入DRAM以產生第二指標表310,然後系統檢查修改區域。根據每個邏輯位址在修改表311以及修改表312中的最新指標修訂第二指標表310。如果新指標按順序記錄,那麽,對於特定邏輯位址,最後存儲在修改區域中的的指標就為最新指標。最後,可以根據已修訂指標表恢復使用者資料,然後按需求而讀取(步驟S560)。
第6圖以及第7圖為根據本發明的第二實施例,快閃記憶體配置的兩個例子。在此實施例中,第一快閃記憶體的已選一個區域或者多個區域指定為存儲新使用者資料(即已更新使用者資料)。在一個例子中,連續的記憶體實體區塊可以作為整體而指定為更新區域,以存儲已更新使用者資料。如第6圖所示,包含第一區塊610、......、第十二區塊611到第二十區塊619的第一快閃
記憶體600,作為已指定記憶體位置,以存儲已更新使用者資料,在此實施例中,存儲已更新使用者資料的已指定記憶體位置亦可稱之為更新區域。如果更新了任何邏輯位址的使用者資料,邏輯位址對應的新使用者資料通常存儲在更新區域(例如,第一區塊610到第二十區塊619)的一個位置。經過多次更新的已更新使用者資料以特定順序存儲在更新區域的多個位置中。在另一個例子中,第一快閃記憶體的不連續區域分配作為更新區域,以存儲已更新使用者資料。如第7圖所示,第一快閃記憶體700的第一區塊711、第三區塊713、第五區塊715......指定為存儲已更新資料的已指定記憶體位置。除了上述兩個例子,用於已指定位置的其他指定方式都是可以的。舉例說明,區塊的一部分頁面也可以分配作為已指定記憶體位置。總結來說,可以指定快閃記憶體的一些記憶體位置。這些已指定記憶體位置可用作在更新程序中存儲已更新使用者資料。
在此實施例中,建立用於指導系統如何將已更新使用者資料存儲到更新區域的指示資訊。該指示資訊可以存儲在第二快閃記憶體(圖未示)。第二快閃記憶體可以專用作存儲該指示資訊。因此,第二快閃記憶體可以使用小容量快閃記憶體而實現。可替換地,該指示資訊可以存儲在第一快閃記憶體的修改區域中。而在前面一種情況下,全部第二快閃記憶體可作為修改區域。
第8圖為根據本發明的第二實施例的更新方法的流程圖。如上所述,在快閃記憶體中指定至少一個更新區域。即,一些記憶體位置定義為已指定記憶體位置(步驟S810)。在步驟S820中,可以建立以及存儲用於已指定記憶體位置的指示資訊。首先,建立以及存儲該指示資訊,然後根據該指示資訊指定記憶體位置都
是可能的。可替換地,步驟S810與步驟S820可以平行處理。即,在步驟S810與步驟S820之間沒有特定的順序。當邏輯位址對應的使用者資料更新時,根據該指示資訊,新使用者資料與邏輯位址均寫入該已指定記憶體位置(步驟S830)。可以注意到,邏輯位址也與新使用者資料均需記錄。相應地,可知使用者資料屬於該邏輯位址。
除了指示哪個快閃記憶體的記憶體位置被指定用於存儲已更新使用者資料的知識之外,該指示資訊也記錄用於已指定記憶體位置的預設順序。舉例說明,如果有二十個已指定記憶體位置,那麽順序就可以為第一已更新使用者資料存儲在第一已更新記憶體位置,第二已更新使用者資料存儲在第二已更新記憶體位置。其餘可以相應推知。順序可以與邏輯位址無關。這樣的順序就可以根據快閃記憶體的條件,或者基於記錄在系統的韌體(firmware)中的狀態位元而設置或者調整。該狀態位元指示閃記憶體的運作,例如程式化運作的處理或者完成,或者透過觸發(toggling)或者輪詢(poling)位元的擦除運作的處理或者完成,只要確保該預定的順序可於斷電後回復即可,然本發明不以此為限。
如果電源出錯,那麽參考該指示資訊很容易恢復使用者資料。邏輯位址的最新使用者資料寫入的位置就可以從該指示資訊而找到。
在此實施例中,該指示資訊設置一預設時間週期。當該指示過期時,就可以根據該指示資訊而修訂存儲在該快閃記憶體的指標表,也就是當指示過期時,修改指標表(步驟S840)。系統週期性地檢查自該指示資訊而得知的已指定記憶體位置,如果系統發現已指定記憶體位置已經作用存儲已更新使用者資料,那麽就
修訂該指標表。然後,提供一個新指示資訊。
第9圖為根據本發明的第二實施例的恢復方法流程圖。如果電源出錯,那麽在系統重新啟動電源之後,為了從第一快閃記憶體恢復使用者資料,系統自第一快閃記憶體讀取指標表(步驟S910)。該指標表可以寫入揮發性記憶體,例如DRAM中。在步驟S920系統自修改區域讀取該指示資訊。首先讀取該指示資訊,然後將指標表寫入到DRAM中也是可以的。可替換地,步驟S910與步驟S920可以平行進行。也就是說,步驟S910與步驟S920沒有特定的順序。在步驟S930,根據該指示資訊,以掃描該已指定記憶體位置,以讀取該邏輯位址以及該已更新使用者資料,也就是說系統根據記錄在該指示中的預設順序而掃描更新區域(即,掃描已指定記憶體位置),以讀取邏輯位址以及存儲在已指定記憶體位置之已更新使用者資料。在步驟S940中,系統可以使用已經讀取的邏輯位址以及已更新使用者資料進行恢復運作,也就是說根據邏輯位址以及已更新使用者資料,系統讀取快閃記憶體中的使用者資料。
任何熟習此項技藝者,在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視所附之申請專利範圍所界定者為準。
100‧‧‧頁面
110‧‧‧資料區域
120‧‧‧備存區域
122‧‧‧LBA
124‧‧‧時間戳記
200‧‧‧指標表
201‧‧‧第一指標
202‧‧‧第二指標
300‧‧‧第一指標表
310‧‧‧第二指標表
311,312‧‧‧修改表
600‧‧‧第一快閃記憶體
610‧‧‧第一區塊
611‧‧‧第十二區塊
619‧‧‧第二十區塊
700‧‧‧第一快閃記憶體
711‧‧‧第一區塊
713‧‧‧第三區塊
715‧‧‧第五區塊
S410-S450,S510-S560,S810-S840,S910-S940‧‧‧步驟
第1圖為快閃記憶體的頁面100的資料結構的示意圖。
第2圖為指標表200的示意圖,其中,指標表200記錄快閃記憶體的每個指標的邏輯位址和對應的實體位址。
第3圖為展示本發明第一實施例的概念的示意圖,而第4圖
為根據本發明第一實施例的更新方法的流程圖。
第5圖為根據本發明的第一實施例的恢復方法的流程圖。
第6圖以及第7圖為根據本發明的第二實施例,快閃記憶體配置的兩個例子。
第8圖為根據本發明的第二實施例的更新方法的流程圖。
第9圖為根據本發明的第二實施例的恢復方法流程圖。
S410-S450‧‧‧步驟
Claims (12)
- 一種更新使用者資料的方法,該使用者資料與一非揮發性記憶體陣列之多個邏輯位址以及多個實體位址關聯,一指標表存儲在該非揮發性記憶體陣列中,其中,該指標表記錄該多個邏輯位址與該多個實體位址之間之多個映射關係,該更新使用者資料的方法包含:當一邏輯位址對應之原始使用者資料更新為已更新使用者資料時,該邏輯位址之該已更新使用者資料寫入至一該非揮發性記憶體陣列之一記憶體位置,其中,該記憶體位置由一實體位址所標示;建立一指示資訊,該指示資訊指示出該邏輯位址與該實體位址之間一映射關係,其中,該指示資訊存儲在一額外非揮發性記憶體陣列之一修改區域中;以及當存儲該指示資訊之該修改區域已滿時,基於該指示資訊修訂該指標表。
- 如申請專利範圍第1項所述之更新使用者資料的方法,其中,首先該邏輯位址之該已更新使用者資料寫入該實體位址所標示之該記憶體位置,然後建立該指示資訊。
- 如申請專利範圍第1項所述之更新使用者資料的方法,其中,首先建立該指示資訊,然後該邏輯位址之新使用者資料寫入到該邏輯位址所標示之該記憶體位置。
- 如申請專利範圍第1項所述之更新使用者資料的方法,其中,寫入該邏輯位址對應之該已更新使用者資料至該非揮發性記憶體陣列之該記憶體位置與建立該指示資訊為平行進行。
- 如申請專利範圍第1項所述之更新使用者資料的方法,進一步包含基於該指示資訊週期性地修訂該指標表。
- 如申請專利範圍第1項所述之更新使用者資料的方法,其中,該指示資訊存儲在該非揮發性記憶體陣列之一修改區域中。
- 如申請專利範圍第6項所述之更新使用者資料的方法,進一步包含:當存儲該指示資訊之該修改區域已滿時,基於該指示資訊修訂該指標表。
- 如申請專利範圍第7項所述之更新使用者資料的方法,進一步包含:修訂該指標表後,清除該修改區域。
- 如申請專利範圍第1項所述之更新使用者資料的方法,進一步包含:修訂該指標表後,清除該修改區域。
- 一種更新使用者資料的方法,該使用者資料與多個邏輯位址關聯,該多個邏輯位址之每一者對應之該使用者資料存儲在非揮發性記憶體陣列之一記憶體位置中,該方法包含:建立一指示資訊,該指示資訊與該非揮發性記憶體陣列之多個記憶體位置關聯,其中,該多個記憶體位置定義為多個已指定記憶體位置,而該指示資訊指示出使用該多個已指定記憶體位置之一預設順序;根據該非揮發性記憶體陣列之一條件或根據指示該非揮發性記憶體陣列之一運作之處理或完成之一狀態位元,調整該預設順序;以及當一邏輯位址對應之原始使用者資料更新為已更新使用者資料時,根據該指示資訊,將該邏輯位址之該已更新使用者資料寫入該多個已指定記憶體位置之一者。
- 如申請專利範圍第10項所述之更新使用者資料的方法, 其中,建立該指示資訊,以指示該已指定記憶體位置在該非揮發性記憶體陣列中連續分佈。
- 如申請專利範圍第10項所述之更新使用者資料的方法,建立該指示資訊,以指示該已指定記憶體位置在該非揮發性記憶體陣列中不連續分佈。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/471,775 US8296503B2 (en) | 2009-05-26 | 2009-05-26 | Data updating and recovering methods for a non-volatile memory array |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201042450A TW201042450A (en) | 2010-12-01 |
TWI406127B true TWI406127B (zh) | 2013-08-21 |
Family
ID=43221559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098128685A TWI406127B (zh) | 2009-05-26 | 2009-08-26 | 更新使用者資料的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8296503B2 (zh) |
CN (1) | CN101901189B (zh) |
TW (1) | TWI406127B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110289282A1 (en) * | 2010-05-18 | 2011-11-24 | Microsoft Corporation | Sessions for Direct Attached Storage Devices |
CN101930404B (zh) * | 2010-08-27 | 2012-11-21 | 威盛电子股份有限公司 | 存储装置及其操作方法 |
CN103106143B (zh) * | 2011-11-11 | 2016-01-13 | 光宝科技股份有限公司 | 固态储存装置及其逻辑至实体对应表建立方法 |
CN102929790A (zh) * | 2012-10-15 | 2013-02-13 | 株洲南车时代电气股份有限公司 | 一种数据存储***和方法 |
CN104932831B (zh) * | 2014-03-20 | 2018-03-30 | 华邦电子股份有限公司 | 串行与非式闪存存储器及其内建可变式坏区的管理方法 |
CN104978280B (zh) * | 2015-06-04 | 2020-10-30 | 上海川源信息科技有限公司 | 数据储存***及其特定指令执行方法 |
KR102625637B1 (ko) * | 2016-02-01 | 2024-01-17 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
JP6760813B2 (ja) * | 2016-10-14 | 2020-09-23 | 日立オートモティブシステムズ株式会社 | ソフトウェア更新装置、ソフトウェア更新方法、ソフトウェア更新システム |
JP6708762B1 (ja) * | 2019-01-29 | 2020-06-10 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
CN111897748A (zh) * | 2019-05-05 | 2020-11-06 | 北京兆易创新科技股份有限公司 | 一种映射关系存储方法、读取方法、装置、设备及介质 |
US11580030B2 (en) * | 2019-08-18 | 2023-02-14 | Smart IOPS, Inc. | Devices, systems, and methods of logical-to-physical address mapping |
US11907114B2 (en) | 2019-08-18 | 2024-02-20 | Smart IOPS, Inc. | Devices, systems, and methods for dynamically remapping memory addresses |
CN111026676B (zh) * | 2019-12-27 | 2023-08-01 | 中煤科工集团重庆研究院有限公司 | 利用存储单元地址携带时间信息的存储方法及存储*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6711663B2 (en) * | 2001-11-15 | 2004-03-23 | Key Technology Corporation | Algorithm of flash memory capable of quickly building table and preventing improper operation and control system thereof |
US20050010266A1 (en) * | 2003-03-24 | 2005-01-13 | Les Bogdanowicz | Device and methodology for ocular stimulation |
TWI230942B (en) * | 2001-06-08 | 2005-04-11 | Nec Electronics Corp | Non-volatile storage device and rewrite control method thereof |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5043940A (en) * | 1988-06-08 | 1991-08-27 | Eliyahou Harari | Flash EEPROM memory systems having multistate storage cells |
US5172338B1 (en) * | 1989-04-13 | 1997-07-08 | Sandisk Corp | Multi-state eeprom read and write circuits and techniques |
US5341330A (en) * | 1992-10-30 | 1994-08-23 | Intel Corporation | Method for writing to a flash memory array during erase suspend intervals |
US6763424B2 (en) * | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
KR100449708B1 (ko) | 2001-11-16 | 2004-09-22 | 삼성전자주식회사 | 플래시 메모리 관리방법 |
US6839826B2 (en) * | 2002-02-06 | 2005-01-04 | Sandisk Corporation | Memory device with pointer structure to map logical to physical addresses |
CN101114255A (zh) * | 2002-08-29 | 2008-01-30 | 松下电器产业株式会社 | 用于将数据写入快闪存储设备的半导体存储器的装置和方法 |
JP4199519B2 (ja) * | 2002-11-05 | 2008-12-17 | パナソニック株式会社 | メモリ管理装置及びメモリ管理方法 |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
KR100526188B1 (ko) * | 2003-12-30 | 2005-11-04 | 삼성전자주식회사 | 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리 |
KR100526190B1 (ko) * | 2004-02-06 | 2005-11-03 | 삼성전자주식회사 | 플래시 메모리의 재사상 방법 |
US20070016721A1 (en) * | 2005-07-18 | 2007-01-18 | Wyse Technology Inc. | Flash file system power-up by using sequential sector allocation |
US7818610B2 (en) * | 2007-09-27 | 2010-10-19 | Microsoft Corporation | Rapid crash recovery for flash storage |
US8397014B2 (en) * | 2008-02-04 | 2013-03-12 | Apple Inc. | Memory mapping restore and garbage collection operations |
KR101555022B1 (ko) * | 2008-12-02 | 2015-09-23 | 삼성전자주식회사 | 메모리 장치, 그것을 포함한 메모리 시스템 및 그것의 맵핑정보 복원 방법 |
US9063886B2 (en) * | 2009-09-18 | 2015-06-23 | Apple Inc. | Metadata redundancy schemes for non-volatile memories |
US9110594B2 (en) * | 2009-11-04 | 2015-08-18 | Seagate Technology Llc | File management system for devices containing solid-state media |
US8250324B2 (en) * | 2009-11-30 | 2012-08-21 | International Business Machines Corporation | Method to efficiently locate meta-data structures on a flash-based storage device |
-
2009
- 2009-05-26 US US12/471,775 patent/US8296503B2/en active Active
- 2009-08-26 CN CN2009101717082A patent/CN101901189B/zh active Active
- 2009-08-26 TW TW098128685A patent/TWI406127B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI230942B (en) * | 2001-06-08 | 2005-04-11 | Nec Electronics Corp | Non-volatile storage device and rewrite control method thereof |
US6711663B2 (en) * | 2001-11-15 | 2004-03-23 | Key Technology Corporation | Algorithm of flash memory capable of quickly building table and preventing improper operation and control system thereof |
US20050010266A1 (en) * | 2003-03-24 | 2005-01-13 | Les Bogdanowicz | Device and methodology for ocular stimulation |
Also Published As
Publication number | Publication date |
---|---|
CN101901189A (zh) | 2010-12-01 |
TW201042450A (en) | 2010-12-01 |
US20100306447A1 (en) | 2010-12-02 |
CN101901189B (zh) | 2013-05-29 |
US8296503B2 (en) | 2012-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI406127B (zh) | 更新使用者資料的方法 | |
TWI590049B (zh) | 記憶體裝置與其操作方法 | |
JP4675984B2 (ja) | メモリシステム | |
US8255614B2 (en) | Information processing device that accesses memory, processor and memory management method | |
KR101473344B1 (ko) | 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작방법 | |
US8621139B2 (en) | Data writing method for writing data into block of multi-level cell NAND flash memory by skipping a portion of upper page addresses and storage system and controller using the same | |
US20070016719A1 (en) | Memory device including nonvolatile memory and memory controller | |
JP5808854B2 (ja) | ストレージシステム及びストレージ方法 | |
US20080082729A1 (en) | Device driver including a flash memory file system and method thereof and a flash memory device and method thereof | |
JP2012203443A (ja) | メモリシステムおよびメモリシステムの制御方法 | |
KR20130066525A (ko) | 데이터 이용가능성의 마운트타임 조정 | |
JP2013174975A (ja) | メモリシステムとそのデータ書き込み方法 | |
JP2006350430A (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP2006323751A (ja) | 情報処理装置、寿命監視方法およびプログラム | |
TWI459198B (zh) | 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 | |
US8156278B2 (en) | Non-volatile data storage system and method thereof | |
WO2023116346A1 (zh) | 异常掉电下Trim数据的恢复方法、***及固态硬盘 | |
JP2009211215A (ja) | メモリシステム | |
JP2004303238A (ja) | フラッシュメモリアクセス装置及び方法 | |
US8380920B2 (en) | Flash storage device and data access method of flash memory | |
US8527733B2 (en) | Memory system | |
JP2009116465A (ja) | 記憶装置及びメモリ制御方法 | |
JP3808842B2 (ja) | 書き換え可能な不揮発性メモリを備えた記憶装置及び記憶装置用不揮発性メモリの制御方法 | |
KR20150058092A (ko) | 네트워크 부트 시스템 | |
CN108255437B (zh) | 数据贮存装置及方法 |