TWI389125B - 記憶體儲存裝置及其控制方法 - Google Patents
記憶體儲存裝置及其控制方法 Download PDFInfo
- Publication number
- TWI389125B TWI389125B TW097127299A TW97127299A TWI389125B TW I389125 B TWI389125 B TW I389125B TW 097127299 A TW097127299 A TW 097127299A TW 97127299 A TW97127299 A TW 97127299A TW I389125 B TWI389125 B TW I389125B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- list
- erased
- block
- physical block
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
-
- 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
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Read Only Memory (AREA)
Description
本發明係關於一種記憶體儲存裝置之控制方法,特別係指一種記憶體之均勻抹除(Wear-leveling)之控制方法。
由於採用NAND型快閃記憶體作儲存媒體之非揮發性記憶體儲存裝置具有體積小、省電、安靜及耐震等優點,因此目前以多種不同型態廣泛的被應用在主機(即各種電子裝置)上。例如應用在網路伺服器、筆記型電腦、隨身音樂播放裝置、一般個人桌上型電腦、數位相機等。
請參閱第一圖,該圖係為習知之記憶體儲存裝置之一具體實施例之系統架構示意圖。如第一圖所示,記憶體儲存裝置13包括一控制單元131以及一儲存單元133,其中儲存單元133是由快閃記憶體(Flash memory)所構成,用來儲存資料;而控制單元131係耦接於主機11,接受主機11所下達的指令運作,並配合指令指定之作業,進行資料存取動作,將主機11輸入的資料記錄到儲存單元133中,或將自儲存單元133讀取主機11所要求的資料後傳回。
儲存單元133中提供了包括複數個實體區塊(Physical Block)的實體儲存空間來存取資料,每一實體區塊會因原本儲存資料搬移後的抹除動作而增加累計抹除次數(Accumulated Erase Count),當其耗損程度接近可用壽命(Useable Life Cycle)時,保存資料的可靠度(Reliability of Data Retention)將逐漸劣化(gradually degraded),而不能可靠正確地記錄資料,
同時導致儲存裝置必須因為儲存單元中部分實體區塊的劣化而產生故障。因此,為了降低各實體區塊間的累計抹除次數差異,必須透過抹除平均技術(Wear-Leveling Technique),來平均使用各個實體區塊,藉以避免過度集中使用部分實體區塊,而使其過早達到使用壽命限制,進而導致在其他實體區塊尚未充分使用前,發生儲存裝置無法可靠保存正確資料的現象。
目前提出的抹除平均技術大致分為動態抹除平均(Dynamic Wear-Leveling)與靜態抹除平均(Static Wear-Leveling)兩種。動態抹除平均係在實體區塊內記錄保存的資料改變更新時,從已抹除之實體區塊中選出累計抹除次數最低者來儲存更新後的資料。由於只有內容被更新改變的動態資料會被調整存放位置,因此被稱為動態抹除平均技術。
而靜態抹除平均則是在實體區塊內記錄保存的資料雖未改變更新,但當已配置資料的實體區塊中,累計抹除次數最高及最低的差異到達一預先設定的門限值時,即開始進行靜態抹除平均作業。執行靜態抹除平均時,控制器會將累計抹除次數最低的實體區塊中的資料搬至累計抹除次數最高的已抹除之實體區塊中,並將最低累計抹除次數的實體區塊抹除。藉此,可改變靜態資料使用的實體區塊的位置,並釋出先前長期被靜態資料佔用,使累計抹除次數較低的實體區塊,得以供後續寫入更新資料時使用,進而達到調整靜態資料使用之實體區塊位置,實現靜態抹除平均化的功效。
然而,上述之抹除平均作業需要消耗大量的時間及資源來搜尋累計次數較低的實體區塊,而動態抹除平均作業則是只針對有更新資料的區塊進行抹除平均,故仍有抹除不平均的缺點,因此如何提升抹除平均的效能一直是此技術領域所待突破
的關鍵。
有鑑於此,為有效提升記憶體儲存裝置的使用壽命,本發明所提出之記憶體儲存裝置之控制方法,係透過追蹤資料更新位置來選擇記憶體抹除平均作業方式,期提供更可靠且有效率的方法來改善實體儲存空間中抹除不均的問題。
因此,本發明之目的係在於提供一種記憶體儲存裝置及其控制方法,俾能在配置更新資料到記憶體時,達到抹除平均化的目的,進而提升記憶體系統的壽命,並防止儲存資源的浪費,同時簡化記憶體抹除平均作業,進而提升記憶體的資料儲存效能。
本發明揭示一種記憶體儲存裝置及該裝置之控制方法,其適用於提供一主機寫入一更新資料至該記憶體儲存裝置中,其中主機的檔案系統提供一具有複數個邏輯區塊(Logical Block)之儲存空間,而記憶體儲存裝置提供複數個實體區塊(Physical Block)之儲存空間來與檔案系統的邏輯區塊對應。該儲存裝置還具有一熱門資料清單,該熱門資料清單記錄有複數個特定邏輯區塊位址(Logical Block Address,LBA);以及具有一來源指標暫存器,其內部存放的位址係指向一邏輯區塊,以作為靜態抹除平均時的資料來源區塊;所述控制方法之步驟係為首先,判斷若欲執行一更新資料的寫入動作,則進行一動態抹除平均程序;接著,將儲存此更新資料的邏輯區塊位址加入熱門資料清單中;然後,比對來源指標暫存器的邏輯區塊位址是否落入
熱門資料清單中;最後,根據比對結果來調整來源指標暫存器以變更指向的邏輯區塊,進而確保儲存裝置在進行靜態抹除平均時,未出現於熱門資料清單中的邏輯區塊位址所對應儲存之內容能優先搬至抹除次數較高的實體區塊中。
於本發明之一具體實施例中,其中若判斷欲執行一抹除動作時,則判斷被抹除之實體區塊的抹除次數是否大於一門限值;若是,則進行一靜態抹除平均程序,將來源指標暫存器指向之邏輯區塊所對應的實體區塊內的資料搬移至抹除次數較高之實體區塊中儲存。
本發明又揭示一種記憶體儲存裝置,係適用於提供一主機存取一更新資料,其中主機的檔案系統提供一具有複數個邏輯區塊(Logical Block)之儲存空間。所述之記憶體儲存裝置包括有一儲存單元以及一控制單元。儲存單元係包括複數個實體區塊(Physical Block)之儲存空間來存取資料;控制單元係耦接於主機以及儲存單元之間,其包括有一暫存單元以及一微處理器。微處理器係耦接於暫存單元;暫存單元包括有一熱門資料清單以及一來源指標暫存器。熱門資料清單記錄有複數個特定存有熱門資料的邏輯區塊之位址;來源指標暫存器內部存放的位址係指向檔案系統所提供的複數個邏輯區塊其中之一。當主機發出資料更新指令將更新資料寫入儲存單元後,熱門資料清單會記錄此更新資料的邏輯區塊位址,之後微處理器比對來源指標暫存器所暫存之邏輯區塊是否與熱門資料清單所存的特定邏輯區塊位址相同,並根據比對結果來選擇性地調整來源指標暫存器之內容或執行一靜態抹除平均程序,進而使非
熱門資料從原存放之實體區塊搬至抹除次數較高的實體區塊中。
於本發明之一具體實施例中,所述之來源指標暫存器係由微處理器進行調整,使來源指標暫存器循序指向下一個之邏輯區塊。
以上之概述與接下來的詳細說明及附圖,皆是為了能進一步說明本發明為達成預定目的所採取之方式、手段及功效。而有關本發明的其他目的及優點,將在後續的說明及圖示中加以闡述。
本發明之主要技術特徵在於均勻抹除記憶體儲存裝置之控制方法以及使用該方法的記憶體儲存裝置架構,以下就僅提出必要之內部系統架構及其動作流程,然而,熟悉該項技藝者得知,除了以下所提及之構件,記憶體儲存裝置中當然包括其他的必要元件,因此,不應以本實施例揭露者為限。
首先,請參閱第二圖,該圖係為本發明所揭示之記憶體儲存裝置的一具體實施例之系統架構示意圖。如第二圖所示,記憶體儲存裝置23係耦接於主機21,接受主機21所下達的指令進行資料讀取、寫入或儲存區塊的抹除動作。
記憶體儲存裝置23包括有一儲存單元233以及一控制單元231。儲存單元233是由快閃記憶體(Flash memory)所構成,其用來儲存主機21所要求存放的資料;而控制單元231係耦接於主機21以及儲存單元233之間,用以接收主
機21所下達之一指令,所述之指令可為一寫入指令或一讀取指令,寫入指令是將對應一邏輯位址的資料寫入儲存單元233中,而讀取指令則是將對應一邏輯位址的資料從儲存單元233中讀取出來。
控制單元231包括有一系統介面2311、一資料傳輸緩衝區2313、一記憶體介面2315、一微處理器2317、一暫存單元2319。系統介面2311係耦接於主機21,作為主機21及記憶體儲存裝置23間指令與資料之傳輸介面;資料傳輸緩衝區2313係耦接於系統介面2311,以暫存資料;記憶體介面2315係耦接於資料傳輸緩衝區2313及儲存單元233之間,受微處理器2317的控制以傳輸資料;而微處理器2317係耦接於暫存單元2319,用以控制記憶體儲存裝置23中各元件的運作情形。
於本發明之一具體實施例中,該儲存單元233係為單級單元記憶體(SLC)、相變化記憶體(PCM)、自由鐵電式隨機存取記憶體(FeRAM)、磁性隨機存取記憶體(MRAM)或多級單元記憶體(MLC)之群組組合之一。
為了更了解邏輯/實體位址的對應關係,請參考第三A圖,該圖係為本發明所揭示之邏輯/實體區塊映射之一具體實施例示意圖。按,其中相關之系統架構請一併參考第二圖。如第三A圖所示,主機21的檔案系統與儲存單元233分別提供了一邏輯儲存空間31以及一實體儲存空間35來存取資料,其中邏輯儲存空間31劃分成複數個邏輯區塊(Logical Block)LBA0
~LBAn
,而實體儲存空間35亦劃分成複數個實體區塊(Physical Block)PBA0
~PBAn
,藉由一L2P映
射表(Logical to Physical Translation Table)33來記錄邏輯區塊LBA0
~LBAn
與實體區塊PBA0
~PBAn
的對應關係。
請一併參考第三B圖,該圖係為本發明所揭示之管理儲存空間之資料結構示意圖。如第三B圖所示,為了方便管理實體儲存空間35的使用情形,暫存單元2319中特別儲存一已抹除清單23191、一已分配清單23193、一熱門資料清單23195以及一來源指標暫存器23197。已抹除清單23191用以記錄已被抹除之實體區塊PBAi
之位址,一具體實施例中,已抹除清單23191係根據各已抹除之實體區塊PBAi
的累計抹除次數由小到大(亦可由大到小)地將已抹除之實體區塊PBAi
的位址依序記錄於表中,請參照第三B圖,實體區塊PBA5
的抹除次數最小,愈往右邊的實體區塊PBAi
之抹除次數愈大。除了以順序來表示抹除次數多寡外,已抹除清單亦可額外增加一個欄位來記錄每一個已抹除之實體區塊PBAi
的抹除次數,不應以本實施例為限。
於本發明之一具體實施例中,已抹除清單23191、已分配清單23193、熱門資料清單23195以及來源指標暫存器23197亦可儲存或設置於控制單元231外部之一隨機存取記憶體中,為避免其內容因記憶體儲存裝置23之電源關閉時消失,控制單元231會將其複製到儲存單元233中,並於啟動記憶體儲存裝置23時載入。
已分配清單23193用以記錄已配置資料之實體區塊PBAi
之位址;熱門資料清單23195記錄有複數個特定邏輯區塊之位址,其中該特定邏輯區塊係為存放較常更新之資料(即熱門資料)的邏輯區塊LBAi
。而來源指標暫存器23197內部存放
的位址係依序指向存放有資料之邏輯區塊LBAi
,假設第一個邏輯區塊LBA0
存放有資料,,則來源指標暫存器23197即存放邏輯區塊LBA0
的位址。
接下來的第四A圖~第七B圖,係為本發明所揭露之資料處理之一具體實施例之示意圖,其中說明了當儲存於邏輯區塊LBA0
的一更新資料寫入時,所進行的抹除平均處理方式。首先參照第三A圖,該更新資料之原始資料存放於邏輯區塊LBA0
,透過L2P映射表33對應後,可知該原始資料實際是儲存於實體區塊PBA2
中。隨後若欲對該原始資料進行資料更新動作,控制單元231即從已抹除清單23191中挑出累計抹除次數最少的實體區塊PBA5
,用以儲存更新資料以及目前存放在實體區塊PBA2
中的原始資料。接下來,如第四A、四B圖所示,微處理器2317會根據上述動作將實體區塊PBA5
從已抹除清單23191中刪除,轉而將其增加於已分配清單23193中,並將發生過更新資料動作的邏輯區塊LBA0
位址記錄於熱門資料清單23195中。
在更新熱門資料清單23195後,微處理器2317會檢查來源指標暫存器23197所指的邏輯區塊LBAi
是否為熱門資料清單23195中所指向之特定邏輯區塊,如第五A、五B圖所示,由於來源指標暫存器23197所指的邏輯區塊LBA0
係存在於更新後的熱門資料清單23195中,因此來源指標暫存器23197即循序指向下一個邏輯區塊LBA1
,然後與熱門資料清單23195所指向的特定邏輯區塊進行比對,此一程序會反覆進行直到來源指標暫存器23197所指向之邏輯區塊的位址未被記錄於熱門資料清單23195中,接著抹除存放該更新資料之原始資料的實體區塊PBA2
,進而依
據累計抹除次數大小將實體區塊PBA2
安插在已抹除清單23191中適當的位置,以本實施例來說,由於實體區塊PBA2
的抹除次數介於實體區塊PBA3
以及實體區塊PBAn
之間,因此已抹除清單23191儲存已抹除實體區塊位址的順序即如第五B圖所示。
記憶體儲存裝置23中特別定義了一門限值,若任一被抹除的實體區塊PBAi
之累計抹除次數大於門限值,即表示儲存單元233中有已抹除次數過高的實體區塊PBAi
,因而進行一靜態抹除平均程序來將不常更新的資料搬到抹除次數過高的實體區塊PBAi
,以避免該實體區塊PBAi
過度被抹除。一具體實施例中,門限值EC係為全部實體區塊PBAi
的平均抹除次數ECavg
與一預先設定之門限偏移值ECth
的總和,系統僅需調整門限偏移值ECth
的大小,即可輕易調整靜態抹除平均程序被執行的頻率,其中在放大門限偏移值ECth
的情況下,執行靜態抹除平均程序的頻率降低,反之亦然。
因此,在抹除實體區塊PBA2
後,微處理器2317將該區塊的累計抹除次數加1,並更新平均抹除次數ECavg
,接著判斷實體區塊PBA2
的抹除次數是否大於更新後的門限值,若有,則表示已達到執行抹除平均的條件,進而執行靜態抹除平均程序。
假設實體區塊PBA2
已達抹除平均條件,且來源指標暫存器23197所指向的邏輯區塊LBA1
的位址並未出現於熱門資料清單23195中,即可判定邏輯區塊LBA1
內的資料不常更新,應該將其搬至抹除次數過高的實體區塊PBA2
中,以避免實體區塊PBA2
承受更多的抹除消耗。是以,如第六A、六B圖所示,微處理器2317將來源指標暫存器23197所指的邏輯
區塊LBA1
所對應的實體區塊PBA4
內儲存的資料複製至實體區塊PBA2
中,然後把實體區塊PBA4
抹除,並將實體區塊PBA2
從已抹除清單23191移除,轉置於已分配清單23193中。
接著,如第七A、七B圖所示,在上述靜態抹除平均程序後,更新L2P映射表33,以將邏輯區塊LBA1
對應至實體區塊PBA2
;同時,由於實體區塊PBA4
已被抹除以供其他資料寫入,因此亦須更新該區塊PBA4
的累計抹除次數以及平均抹除次數ECavg
。
之後,來源指標暫存器23197會依序指向下一個邏輯區塊LBA2
,並重複上述與熱門資料清單23195的比對檢查程序,直到來源指標暫存器23197所指的邏輯區塊PBAi
沒有落入熱門資料清單中,且未達到執行靜態抹除平均的條件,即完成一次完整的抹除平均處理。
最後,請參考第八圖以及第九圖,該圖係為本發明所揭示之記憶體儲存裝置控制方法之一具體實施例之步驟流程圖。其中相關之系統架構以及資料處理方式請同時參考第二圖~第七B圖。如第八圖所示,此控制方法包括下列步驟:首先,啟動記憶體儲存裝置23(步驟S901),並將已抹除清單23191、已分配清單23193、熱門資料清單23195以及來源指標暫存器23197的內容載入到暫存單元2319中(步驟S903);啟動初始化作業完成後,記憶體儲存裝置23即進入待機狀態(步驟S905),等待主機21下達指令;當記憶體儲存裝置透過系統介面2311接收到主機21下達的指令時(步驟
S907),控制單元231判斷該指令是否為一更新資料的寫入指令(步驟S909),即欲將更新資料從主機21端寫入儲存單元233中;若非更新資料寫入指令,則執行該指令的相關作業(步驟S911),否則,便開始執行動態抹除平均程序,即從已抹除清單23191中選出累計抹除次數最少之實體區塊(步驟S913),然後將更新資料寫入選出之實體區塊(步驟S915),之後微處理器2317會根據上述動作來更新已抹除清單23191、已分配清單23193以及熱門資料清單23195(步驟S917),即將更新資料的邏輯區塊位址記錄於熱門資料清單23195中,使其成為其一之特定邏輯區塊(步驟S913~S917請參考第三A、四A、四B圖);隨後,微處理器2317會判斷來源指標暫存器23197所指的邏輯區塊是否為熱門資料清單23195中所指向之特定邏輯區塊(步驟S919);若是,則調整來源指標暫存器23197循序指向下一個邏輯區塊(步驟S921)後,再與熱門資料清單23195進行比對;反之,若來源指標暫存器23197所指的邏輯區塊未落入熱門資料清單23195中,即表示目前來源指標暫存器23197所指的邏輯區塊中存放的資料應該不常更新,適合將其放置於抹除次數較高的實體區塊中,同時檢查儲存單元233中是否有無效資料佔用的實體區塊(步驟S923),若否,則回到待機狀態來等待下一道指令(步驟S905),若存在無效資料,則執行抹除作業(步驟S925),將無效資料佔用之實體區塊予以抹除(步驟S919~S925請參考第五A、五B圖);完成抹除無效資料佔用之實體區塊作業後,即累進該實體
區塊之累計抹除次數,以及全部實體區塊的之平均抹除次數ECavg
(步驟S927);之後判斷被抹除的實體區塊之抹除次數是否大於預定門限值(步驟S929),若否,則根據上述抹除區塊動作更新已抹除清單23191(步驟S931)後,回到待機狀態(步驟S905);否則,若步驟S929的判斷為是,則表示已達到啟動靜態抹除平均作業的需求,進而進行靜態抹除平均程序(步驟S933);啟動靜態抹除平均作業時,微處理器2317將來源指標暫存器23197所指的邏輯區塊所對應的實體區塊(以下以Si
表示此實體區塊)內的資料複製到實體區塊Sj
中(步驟S1001),並依據改變後的區塊對應關係來更新L2P映射表33(步驟S1003);隨後將實體區塊Sj
位址加入已分配清單23193中(步驟S1005)(步驟S927~S1005請參考第六A、六B圖);由於實體區塊Si
中的資料已搬至實體區塊Sj
儲存,因此隨即抹除實體區塊Si
(步驟S1007),使其能提供其他新資料寫入;抹除作業後,累計實體區塊Si
的抹除次數以及計算全部實體區塊的平均抹除次數(步驟S1009),並將實體區塊Si
位址加入已抹除清單23191中(步驟S1011);完成上述作業後,微處理器2317調整來源指標暫存器23197指向下一個邏輯區塊(步驟S1013),並比對目前來源指標暫存器23197指向的邏輯區塊是否落入熱門資料清單23195中(步驟S1015);若有,則須依序移動來源指標暫存器23197,並重複執行步驟S1015的比對程序;若來源指標暫存器23197指向的邏輯區塊並未落入熱門資料清單
23195中指向特定邏輯區塊,則結束靜態抹除平均程序(步驟S1017),進而回到待機狀態(步驟S1007~S1017請參考第七A、七B圖)。
如此一來,控制單元231將已分配清單23193中累計抹除次數最少的實體區塊內,所記錄保存的使用者資料,經過複製轉移到已抹除清單23191中累計抹除次數最多的實體區塊。藉此,可改變並釋出長期未更新之資料使用的實體區塊,使抹除次數較低的實體區塊從已分配清單23193中轉移到已抹除清單23191中,俾供後續寫入更新資料時使用,進而有效達到抹除平均化的功效。
藉由以上實例詳述,當可知悉本發明之記憶體儲存裝置及其控制方法,係透過熱門資料清單與來源指標暫存器的管理,來正確地辨識長期未更新之靜態資料,並將這種長期未更新靜態資料搬移至抹除次數較高的實體區塊中,以釋放靜態資料所占用的實體區塊,及防止累計抹除次數高的實體區塊繼續磨耗,因此本發明能更確實的執行抹除平均程序,更有效發揮快閃記憶體儲存裝置應有之壽命。本發明具備以下優點:1.藉由進行動態抹除平均作業時,控制是否觸發執行靜態抹除平均程序,如此無須由控制單元另外利用閒置時間執行靜態抹除平均作業,進而避免消耗大量系統資源的缺失。
2.執行動態抹除作業時,會從已抹除清單中優先選擇累計抹除次數低之實體區塊記錄更新資料,加快累計抹除次數平均化的速度;且利用判斷更新資料的邏輯區塊是否落入熱門資料清單,來決定該更新資料是否因屬非熱門資料而應搬至抹除
次數達到門限值的實體區塊,除了能避免熱門資料在靜態抹除平均作業中,被複製到累計抹除次數高的實體區塊,還能大幅簡化從已抹除清單中,搜尋累計抹除次數較高之實體區塊作為儲存非熱門資料的作業程序,進而縮短作業時間,降低控制器負荷與記憶體需求。
3.於執行資料寫入與動態抹除平均作業,因無效資料佔用實體區塊而發生抹除作業時,同時檢查被抹除之實體區塊的累計抹除次數,是否達到啟動靜態抹除平均作業的啟動值。如此能簡化啟動靜態抹除平均作業的判斷程序,免除統計分析或搜尋比對實體區塊累計抹除次數所需作業程序、作業時間與其對控制單元產生之負荷及記憶體需求。
4.直接以來源指標暫存器循序自邏輯區塊位址分布之起始位址開始累進至最大存儲空間之結束位置為止之循環方式,避開熱門資料佔用之邏輯區塊,選擇執行靜態抹除平均作業時抹累計除次數較低之實體區塊。如此大幅簡化從已分配清單中,搜尋累計抹除次數較低之實體區塊,並把該實體區塊中的資料搬移之作業程序,除了縮短作業時間,降低控制器負荷與記憶體需求,亦能有效的調整所有邏輯區塊使用者資料的保存記錄位置。
5.藉由調整門限偏移值ECth
大小,即可輕易達到調整靜態抹除平均作業執行頻率、目標平均化程度的效果。即放大門限偏移值ECth
時,則靜態抹除平均作業執行頻率低,累計抹除次數較不平均;縮小門限偏移值ECth
時,則靜態抹除平均作業執行頻率高,累計抹除次數較平均。
惟,以上所述,僅為本發明的具體實施例之詳細說明
及圖式而已,並非用以限制本發明,本發明之所有範圍應以下述之申請專利範圍為準,任何熟悉該項技藝者在本發明之領域內,可輕易思及之變化或修飾皆可涵蓋在以下本案所界定之專利範圍。
11‧‧‧主機
13‧‧‧記憶體儲存裝置
131‧‧‧控制單元
133‧‧‧儲存單元
21‧‧‧主機
23‧‧‧記憶體儲存裝置
231‧‧‧控制單元
233‧‧‧儲存單元
2311‧‧‧系統介面
2313‧‧‧資料傳輸緩衝區
2315‧‧‧記憶體介面
2317‧‧‧微處理器
2319‧‧‧暫存單元
23191‧‧‧已抹除清單
23193‧‧‧已分配清單
23195‧‧‧熱門資料清單
23197‧‧‧來源指標暫存器
31‧‧‧邏輯儲存空間
LBA0
~LBAn
‧‧‧邏輯區塊
33‧‧‧L2P映射表
35‧‧‧實體儲存空間
PBA0
~PBAn
、Si
、Sj
‧‧‧實體區塊
門限值‧‧‧EC
平均抹除次數‧‧‧ECavg
門限偏移值‧‧‧ECth
S901~S933‧‧‧各個步驟流程
S1001~S1017‧‧‧各個步驟流程
第一圖係為習知之記憶體儲存裝置之一具體實施例之系統架構示意圖;第二圖係為本發明所揭示之記憶體儲存裝置之一具體實施例之系統架構示意圖;第三A圖係為本發明所揭示之邏輯/實體區塊映射之一具體實施例之儲存架構示意圖;第三B圖係為本發明所揭示之管理儲存空間之資料結構示意圖;第四A圖~第七B圖係為本發明所揭露之資料處理之一具體實施例之示意圖;以及第八圖~第九圖係為本發明所揭示之記憶體儲存裝置之控制方法之一具體實施例之步驟流程圖。
S901~S933‧‧‧各個步驟流程
S1001~S1017‧‧‧各個步驟流程
Claims (9)
- 一種記憶體儲存裝置之控制方法,該記憶體儲存裝置提供複數個與檔案系統的複數個邏輯區塊(Logical Block)相對應的實體區塊(Physical Block)之儲存空間,該控制方法包括下列步驟:提供一熱門資料清單,該熱門資料清單記錄有特定邏輯區塊之位址;提供一來源指標暫存器,其內部存放的位址係指向該複數個邏輯區塊中之一;以及執行一更新資料寫入動作,並將存放該資料的邏輯區塊的位址存入該熱門資料清單中;比對該來源指標暫存器指向的邏輯區塊是否屬於該熱門資料清單中的該等特定邏輯區塊其中之一;若比對結果為是,則調整該來源指標暫存器指向另一個邏輯區塊;若比對結果為否,則抹除該更新資料的原始資料存放之實體區塊;以及若被抹除的實體區塊之累計抹除次數大於一門限值,則進行一靜態抹除平均程序,將該來源指標暫存器指向之邏輯區塊所對應的實體區塊內的資料儲存至該被抹除的實體區塊中。
- 如申請專利範圍第1項所述之控制方法,更包括下列步驟:提供一已抹除清單,用以記錄已被抹除之實體區塊之位址;以及 提供一已分配清單,用以記錄已配置資料之實體區塊之位址。
- 如申請專利範圍第2項所述之控制方法,更包括下列步驟:從該已抹除清單中選出累計抹除次數最少之實體區塊;將該更新資料連同原始資料寫入該累計抹除次數最少之實體區塊;更新該已抹除清單,將選出之該累計抹除次數最少之實體區塊之位址從該已抹除清單中刪除;以及更新該已分配清單,將選出之該累計抹除次數最少之實體區塊記錄於該已分配清單中。
- 如申請專利範圍第1項所述之控制方法,其中該門限值係為全部之該等實體區塊的平均抹除次數與一預先設定之門限偏移值的總和。
- 如申請專利範圍第2項所述之控制方法,其中該已抹除清單中的位址資料順序是依所指向的實體區塊的累計抹除次數由大到小或由小到大排列。
- 一種記憶體儲存裝置,該記憶體儲存裝置包括:一微處理器,係執行該主機對該裝置所發出之指令;一儲存單元,係包括複數個實體區塊(Physical Block)之儲存空間,與一檔案系統的邏輯區塊相對應;一熱門資料清單,記錄有特定邏輯區塊之位址,其中該特定邏輯區塊係存放熱門資料;以及一來源指標暫存器,其內部存放的位址係指向該複數 個邏輯區塊其中之一;其中,該來源指標暫存器所指向之邏輯區塊係根據熱門資料清單所指向之特定邏輯區塊來進行調整,若該來源指標暫存器所指向之邏輯區塊未落入熱門資料清單所指向之特定邏輯區塊,則該微處理器抹除該更新資料的原始資料存放之實體區塊;若被抹除的實體區塊之累計抹除次數大於一門限值,則進行一靜態抹除平均程序,將該來源指標暫存器指向之邏輯區塊所對應的實體區塊內的資料儲存至該被抹除的實體區塊中。
- 如申請專利範圍第6項所述之記憶體儲存裝置,其中該裝置更包括一暫存單元,該暫存單元還包括:一已抹除清單,用以記錄已被抹除之實體區塊之位址;以及一已分配清單,用以記錄已配置資料之實體區塊之位址。
- 如申請專利範圍第6項所述之記憶體儲存裝置,其中該裝置更包括一控制單元,該控制單元還包括:一系統介面,係耦接於一主機,作為該主機及該記憶體儲存裝置間指令與資料之傳輸介面;一資料傳輸緩衝區,係耦接於該系統介面,以暫存該更新資料;以及一記憶體介面,係耦接於該資料傳輸緩衝區及該儲存單元之間,受該微處理器的控制以傳輸資料到該儲存單元。
- 如申請專利範圍第8項所述之記憶體儲存裝置,其中該來源指標暫存器係由該微處理器調整指向之邏輯區塊。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW097127299A TWI389125B (zh) | 2008-07-18 | 2008-07-18 | 記憶體儲存裝置及其控制方法 |
US12/320,141 US8909846B2 (en) | 2008-07-18 | 2009-01-21 | Memory storage device and control method thereof |
JP2009021332A JP5413572B2 (ja) | 2008-07-18 | 2009-02-02 | メモリストレージ装置及びその制御方法 |
KR1020090014892A KR101515617B1 (ko) | 2008-07-18 | 2009-02-23 | 메모리 스토리지 장치 및 그 제어 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW097127299A TWI389125B (zh) | 2008-07-18 | 2008-07-18 | 記憶體儲存裝置及其控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201005746A TW201005746A (en) | 2010-02-01 |
TWI389125B true TWI389125B (zh) | 2013-03-11 |
Family
ID=41531271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097127299A TWI389125B (zh) | 2008-07-18 | 2008-07-18 | 記憶體儲存裝置及其控制方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8909846B2 (zh) |
JP (1) | JP5413572B2 (zh) |
KR (1) | KR101515617B1 (zh) |
TW (1) | TWI389125B (zh) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI375887B (en) * | 2008-10-31 | 2012-11-01 | A Data Technology Co Ltd | Flash memory device with wear-leveling mechanism and controlling method thereof |
JP4666080B2 (ja) * | 2009-02-09 | 2011-04-06 | Tdk株式会社 | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
JP4666081B2 (ja) * | 2009-02-09 | 2011-04-06 | Tdk株式会社 | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
JP4844639B2 (ja) * | 2009-02-19 | 2011-12-28 | Tdk株式会社 | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
TWI421869B (zh) * | 2009-10-14 | 2014-01-01 | Phison Electronics Corp | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 |
TWI447735B (zh) * | 2010-02-05 | 2014-08-01 | Phison Electronics Corp | 記憶體管理與寫入方法及其可複寫式非揮發性記憶體控制器與儲存系統 |
US8621141B2 (en) | 2010-04-01 | 2013-12-31 | Intel Corporations | Method and system for wear leveling in a solid state drive |
TWI475564B (zh) * | 2010-04-21 | 2015-03-01 | Silicon Motion Inc | 記憶體之資料寫入方法及資料儲存裝置 |
WO2012065112A2 (en) * | 2010-11-12 | 2012-05-18 | Apple Inc. | Apparatus and methods for recordation of device history across multiple software emulations |
TWI417721B (zh) * | 2010-11-26 | 2013-12-01 | Etron Technology Inc | 衰減熱資料之方法 |
TWI466121B (zh) * | 2010-12-31 | 2014-12-21 | Silicon Motion Inc | 用來進行區塊管理之方法以及記憶裝置及控制器 |
US8621328B2 (en) * | 2011-03-04 | 2013-12-31 | International Business Machines Corporation | Wear-focusing of non-volatile memories for improved endurance |
JP2012203443A (ja) * | 2011-03-23 | 2012-10-22 | Toshiba Corp | メモリシステムおよびメモリシステムの制御方法 |
US8862902B2 (en) * | 2011-04-29 | 2014-10-14 | Seagate Technology Llc | Cascaded data encryption dependent on attributes of physical memory |
KR101257691B1 (ko) | 2011-08-12 | 2013-04-24 | 아주대학교산학협력단 | 메모리 컨트롤러 및 이의 데이터 관리방법 |
US8694754B2 (en) * | 2011-09-09 | 2014-04-08 | Ocz Technology Group, Inc. | Non-volatile memory-based mass storage devices and methods for writing data thereto |
JP5971547B2 (ja) * | 2012-02-15 | 2016-08-17 | 国立大学法人 東京大学 | メモリコントローラ,データ記憶装置およびメモリの制御方法 |
US9116792B2 (en) * | 2012-05-18 | 2015-08-25 | Silicon Motion, Inc. | Data storage device and method for flash block management |
FR2999845A1 (fr) * | 2012-12-14 | 2014-06-20 | Thomson Licensing | Methode d'activation d'un mode de maintenance dans un dispositif electronique et dispositif associe |
US20150143021A1 (en) * | 2012-12-26 | 2015-05-21 | Unisys Corporation | Equalizing wear on storage devices through file system controls |
KR102023351B1 (ko) * | 2013-03-19 | 2019-11-04 | 삼성전자 주식회사 | 저장 장치 내 할당 촉진을 위한 데이터 분석 방법 및 장치 |
US10007428B2 (en) | 2013-08-16 | 2018-06-26 | Micron Technology, Inc. | Data storage management |
US9587501B2 (en) | 2013-11-11 | 2017-03-07 | General Electric Company | Rotary machine secondary sealing assembly and method of assembling the same |
CN104015981A (zh) * | 2014-06-13 | 2014-09-03 | 浙江理工大学 | 一种伸缩式草莓包装运输箱 |
US9785374B2 (en) * | 2014-09-25 | 2017-10-10 | Microsoft Technology Licensing, Llc | Storage device management in computing systems |
CN107077883B (zh) | 2014-11-25 | 2021-04-27 | 三星电子株式会社 | 基于概率信息检测半导体存储器的被最频繁存取的地址的方法 |
TWI553477B (zh) * | 2015-06-12 | 2016-10-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
JP6544088B2 (ja) * | 2015-07-06 | 2019-07-17 | 富士通株式会社 | 端末、情報漏洩防止方法および情報漏洩防止プログラム |
US10007432B2 (en) * | 2015-10-13 | 2018-06-26 | Dell Products, L.P. | System and method for replacing storage devices |
WO2017077624A1 (ja) * | 2015-11-05 | 2017-05-11 | 株式会社日立製作所 | 不揮発メモリデバイス、及び、不揮発メモリデバイスを有するストレージ装置 |
TWI608350B (zh) * | 2016-03-09 | 2017-12-11 | 慧榮科技股份有限公司 | 儲存裝置及其控制單元、可用於儲存裝置的資料搬移方 法 |
JP6629999B2 (ja) * | 2016-04-12 | 2020-01-15 | ガードノックス・サイバー・テクノロジーズ・リミテッドGuardKnox Cyber Technologies Ltd. | セキュアロックダウンを実装するように構成された関連装置を有する特別にプログラムされたコンピューティングシステムおよびその使用方法 |
GB2559119B (en) * | 2017-01-20 | 2020-12-30 | Advanced Risc Mach Ltd | Apparatus and methods to prolong lifetime of memories |
KR102504368B1 (ko) * | 2017-12-22 | 2023-02-24 | 에스케이하이닉스 주식회사 | 비휘발성 메모리의 웨어 레벨링 동작을 관리하는 반도체 장치 |
KR102534648B1 (ko) * | 2018-03-08 | 2023-05-22 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
CN115194283A (zh) | 2018-04-02 | 2022-10-18 | 艾沛克斯品牌公司 | 智能焊接端头 |
KR102387960B1 (ko) * | 2018-07-23 | 2022-04-19 | 삼성전자주식회사 | 컨트롤러 및 그것의 동작 방법 |
US10795576B2 (en) * | 2018-11-01 | 2020-10-06 | Micron Technology, Inc. | Data relocation in memory |
JP2020086748A (ja) * | 2018-11-21 | 2020-06-04 | Tdk株式会社 | メモリコントローラ、及びメモリシステム |
US10877671B2 (en) * | 2018-12-03 | 2020-12-29 | Vast Data Ltd. | Techniques for prolonging lifespan of storage drives |
US11157379B2 (en) * | 2019-10-30 | 2021-10-26 | International Business Machines Corporation | Managing blocks of memory based on block health using hybrid controllers |
CN111459850B (zh) * | 2020-05-18 | 2023-08-15 | 北京时代全芯存储技术股份有限公司 | 记忆体装置以及运作方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3938208B2 (ja) * | 1991-11-28 | 2007-06-27 | 株式会社日立製作所 | フラッシュメモリを備えた情報機器 |
ATE372578T1 (de) * | 2002-10-28 | 2007-09-15 | Sandisk Corp | Automatischer abnutzungsausgleich in einem nicht- flüchtigen speichersystem |
JP2004240616A (ja) | 2003-02-05 | 2004-08-26 | Mitsubishi Electric Corp | メモリコントローラ及びメモリアクセス制御方法 |
US7441067B2 (en) * | 2004-11-15 | 2008-10-21 | Sandisk Corporation | Cyclic flash memory wear leveling |
US7315917B2 (en) * | 2005-01-20 | 2008-01-01 | Sandisk Corporation | Scheduling of housekeeping operations in flash memory systems |
JP2007133683A (ja) * | 2005-11-10 | 2007-05-31 | Sony Corp | メモリシステム |
JP2008097132A (ja) * | 2006-10-06 | 2008-04-24 | Matsushita Electric Ind Co Ltd | メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム |
KR100791325B1 (ko) * | 2006-10-27 | 2008-01-03 | 삼성전자주식회사 | 비휘발성 메모리를 관리하는 장치 및 방법 |
JP2008123314A (ja) * | 2006-11-14 | 2008-05-29 | Nec Electronics Corp | 半導体記憶装置への情報記録方法及び情報記録システム |
TWI368224B (en) * | 2007-03-19 | 2012-07-11 | A Data Technology Co Ltd | Wear-leveling management and file distribution management of hybrid density memory |
KR101401560B1 (ko) * | 2007-12-13 | 2014-06-03 | 삼성전자주식회사 | 반도체 메모리 시스템 및 그것의 마모도 관리 방법 |
-
2008
- 2008-07-18 TW TW097127299A patent/TWI389125B/zh active
-
2009
- 2009-01-21 US US12/320,141 patent/US8909846B2/en active Active
- 2009-02-02 JP JP2009021332A patent/JP5413572B2/ja active Active
- 2009-02-23 KR KR1020090014892A patent/KR101515617B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20100009464A (ko) | 2010-01-27 |
US8909846B2 (en) | 2014-12-09 |
JP5413572B2 (ja) | 2014-02-12 |
JP2010027026A (ja) | 2010-02-04 |
TW201005746A (en) | 2010-02-01 |
US20100017555A1 (en) | 2010-01-21 |
KR101515617B1 (ko) | 2015-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI389125B (zh) | 記憶體儲存裝置及其控制方法 | |
US8103820B2 (en) | Wear leveling method and controller using the same | |
KR101464338B1 (ko) | 불휘발성 메모리 장치를 이용한 데이터 저장장치, 메모리시스템, 그리고 컴퓨터 시스템 | |
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
US8386698B2 (en) | Data accessing method for flash memory and storage system and controller using the same | |
US8250286B2 (en) | Block management method, and storage system and controller using the same | |
US8086787B2 (en) | Wear leveling method, and storage system and controller using the same | |
JP5612514B2 (ja) | 不揮発性メモリコントローラ及び不揮発性記憶装置 | |
US8046526B2 (en) | Wear leveling method and controller using the same | |
US8606987B2 (en) | Data writing method for flash memory and controller using the same | |
US8234466B2 (en) | Flash memory storage system applying SLC NAND flash memory and MLC NAND flash memory and data writing method thereof | |
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 | |
US20100042775A1 (en) | Block management method for flash memory, and storage system and controller using the same | |
KR101403922B1 (ko) | 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법 | |
US8037236B2 (en) | Flash memory writing method and storage system and controller using the same | |
TWI718710B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
JP2011070365A (ja) | メモリシステム | |
US8156278B2 (en) | Non-volatile data storage system and method thereof | |
CN101739350B (zh) | 存储器储存装置及其控制方法 | |
US11249920B2 (en) | Non-volatile memory device using efficient page collection mapping in association with cache and method of operating the same | |
TWI420528B (zh) | 用來增進一快閃記憶體的效能之方法以及相關之可攜式記憶裝置及其控制器 | |
US8850160B2 (en) | Adaptive write behavior for a system having non-volatile memory | |
US11036414B2 (en) | Data storage device and control method for non-volatile memory with high-efficiency garbage collection | |
Firmware et al. | A Beginner’s Guide to SSD Firmware |