TWI551989B - 快閃儲存系統之管理方法 - Google Patents

快閃儲存系統之管理方法 Download PDF

Info

Publication number
TWI551989B
TWI551989B TW103131114A TW103131114A TWI551989B TW I551989 B TWI551989 B TW I551989B TW 103131114 A TW103131114 A TW 103131114A TW 103131114 A TW103131114 A TW 103131114A TW I551989 B TWI551989 B TW I551989B
Authority
TW
Taiwan
Prior art keywords
block
sub
page
cache
erase
Prior art date
Application number
TW103131114A
Other languages
English (en)
Other versions
TW201510722A (zh
Inventor
雷恩哈德 庫納
Original Assignee
晶先鋒科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 晶先鋒科技股份有限公司 filed Critical 晶先鋒科技股份有限公司
Publication of TW201510722A publication Critical patent/TW201510722A/zh
Application granted granted Critical
Publication of TWI551989B publication Critical patent/TWI551989B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Description

快閃儲存系統之管理方法
本發明有關於一種資料儲存系統及其管理方法,尤指一種用以管理非揮發性記憶體裝置的記憶體管理電路及方法、以及以頁面為基礎進行記憶管理的非揮發性記憶體裝置(例如:快閃隨機存取記憶體;RAM)。
固態硬碟(SSD)為一種資料儲存裝置,其使用半導體元件來儲存長駐資料。固態硬碟主要用以仿效一磁性硬碟或一光電硬碟,且普遍採用一SATA標準作為傳輸介面,以在大多數的應用領域中可輕易取代一般硬碟機。再者,固態硬碟也能採用其他介面規格,例如:PATA、USB、PCI express或光纖通道之實體及信號介面(ANSI X3.230-1994),而固態硬碟系統可使用於一揮發性記憶體,例如:SRAM、DRAM,或一非揮發性記憶體,例如:快閃記憶體。
請參閱第1a圖,為習用電腦系統之區塊示意圖,該電腦系統係採用一固態硬碟來取代一般硬碟進行長駐資料的儲存。如圖所示,一中央處理器105執行一連串的儲存程式指令,這些指令保存在暫存記憶體(RAM)110或長駐記憶體(SSD)100中。中央處理器105可執行四個基本功能:(1).從暫存記憶體110或長駐記憶體100中提取一指令或一資料、(2).解碼指令資料、(3).執行指令、(4).執行結果寫回暫存記憶體110或長駐記憶體100中。提取或寫回的結果資料可同時與一輸入/輸出裝置105進行通信,例如:印表機、一顯示器或一網路裝置。
中央處理器105、暫存記憶體110、長駐記憶體100及輸入/輸出裝置115連接一系統匯流排120。系統匯流排120用以提供在中央處理器105、暫存記憶體110、長駐記憶體100及輸入/輸出裝置115間所通信的必要資料,且進行資料規格化及資料變換。在長駐記憶體100的例子中,系統匯流排120所提供的通信規格可為SATA規格或其他上述所列出之其 他規格。長駐記憶體100配置有複數個邏輯位址及設置有SATA規格介面,SATA規格介面進行提取及儲存的資料訊息及控制訊息亦可透過中央處理器105處理資料及程式指令而獲得。
係由固態硬碟所構建的長駐記憶體100其具有一控制器125,該控制器係將該邏輯位址解碼成一實體位址及一控制訊息,以判斷是否從反及閘快閃陣列130中提取資料,或者,將資料儲存於反及閘快閃陣列130中。反及閘快閃陣列130包括複數個非揮發性快閃隨機存取記憶體晶片,該記憶體晶片切分成複數個區塊,例如:16G bit記憶體晶片切分成8192區塊。再者,每一區塊進一步細分為複數個頁面,例如:單階層記憶核心晶片中每個區塊包括有64個頁面或多階層記憶核心晶片中包括有128個頁面。一反及閘快閃記憶體晶片結構不允許係以位元組為基礎進行一位元組的讀寫,只能讀寫一頁面(通常為4KB)。此外,一個已經寫入的頁面係不能覆寫,其只能對於已抹除的頁面進行寫入的動作,並且每次抹除的最小單位為1個區塊、64個頁面或128個頁面。再者,不同單位尺寸的讀取(例如:1個頁面)及抹除(例如:64/128個頁面)會使得快閃隨機存取記憶體晶片不易管理,而且在寫入資料之前必須將舊區塊的資料進行複製及抹除,這意味著隨意寫入小量區塊資料其寫入速度將相當緩慢。一邏輯實體轉譯表位在快閃記憶體中,每當資料寫入時,邏輯實體轉譯表將進行轉變。
請參閱第1b圖,為習用快閃儲存系統中長駐記憶體(SSD)100之邏輯位址之結構示意圖。如圖所示,一非揮發性快閃隨機存取記憶體裝置150,其切分成8192個區塊(Block)155,各區塊155切分成64個頁面(Page)160,各頁面160切分成8個區段(Sector)165,各區段165切分成512個位元組(bytes)170。區段165通常定義為最小的單位,且在區段165上額外增加一ECC錯誤更正位元167。每一頁面160將相等於4K Bytes(512 Bytes×8區段)。
係以消費者為導向之快閃儲存卡對於價格非常敏感,因此,快閃儲存卡之控制器中通常只有一個最小數量之外部單晶片元件,並不會額外增設外部隨機存取記憶體,且快閃儲存卡之控制器內部所預設的隨機存取記憶體其容量非常有限。為了節省隨機存取記憶體之儲存空間,現今的控制器技術係採用區塊為導向進行記憶體管理,這意味著邏輯實體轉譯 表的每一項目係為一區塊號碼。一區塊位址包括有大量資料,例如:256kb或512kb,當資料連續地寫入於隨機存取記憶體時,其邏輯實體轉譯表會改變緩慢的。
請參閱第1c圖,為習用快閃儲存系統中長駐記憶體(SSD)100讀取及寫入之操作示意圖。如圖所示,一位址訊號200輸入於一實體位址解碼器205,以解碼出一實體位址250。實體位址使用23個位元來表示,較低位階的3個位元(0..2)用以指向頁面中之區段201,較高階級的6個位元(3..8)用以指向區塊中之頁面202,下一較高階級的13個位元(9..21)用以指向區塊203,而最高階級的位元(22)用以指向晶片位置204。
在這例子中,非揮發性快閃隨機存取記憶體陣列裝置235包括有至少兩個非揮發性快閃隨機存取記憶體晶片240/245。實體位址解碼器205產生一實體位址250,該實體位址250用以辨別在記憶體晶片240/245中之區塊242/247是進行讀取資料220或寫入資料220。
一控制訊號210用以提供編碼的控制指示,其傳送至控制邏輯器215以產生一陣列控制訊號270,非揮發性快閃隨機存取記憶體陣列裝置235在根據陣列控制訊號270讀取資料或寫入資料至記憶體晶片240/245。資料220用以提供最新區段資料222,其係從非揮發性快閃隨機存取記憶體陣列裝置235讀取或寫入至非揮發性快閃隨機存取記憶體陣列裝置235。資料220保存在一頁面緩衝器225中,直到資料220被一外部主機電路所讀取或寫入至非揮發性快閃隨機存取記憶體陣列裝置235為止。資料220透過一資料匯流排260傳輸於頁面緩衝器225與非揮發性快閃隨機存取記憶體陣列裝置235間。
就先前技術而言,SATA介面可對於一磁性硬碟或一光電硬碟進行區段讀取或寫入,為了相容於磁性硬碟或光電硬碟,固態硬碟操作於區段層級時也必須能夠與SATA介面進行通信。承上第1c圖所示,一更新的的訊號區段具有一邏輯區塊位址(LBA)51200。區段201及頁面202所對應的較低階級位元(0..8)其相同於邏輯及實體位址,並代表一區塊203內部之區段位置。高階級位元(9..22)的邏輯位址203/204係為進入邏輯實體轉譯表230之索引值。邏輯實體轉譯表230中有許多的項目232係為區塊。在每一項目232中,最高階級位元用以指示記憶體晶片240/245進行資料讀 取、寫入或抹除,而項目232的低階級位元用以指示其中一個記憶體晶片240/245的實體區塊號碼。
記憶體晶片240中區塊(100)242用以取代記憶體晶片245中該抹除資料之區塊(200)247,並且區塊(200)247係從外部電路接收新的區段資料222。再者,區塊(100)242中全部其他的區段亦可複製舊的區塊(100)242資料,該複製操作的動作亦可稱為區塊的重組。
為了達成資料更新的目的,位址訊號200被實體位址解碼器205所解碼,其最高階級位元(9..22)用以指向索引位址,以根據索引位址進入邏輯實體轉譯表230。區塊(100)242的實體位址傳送至非揮發性快閃隨機存取記憶體陣列裝置235,此時,控制邏輯器215接收及解碼控制訊號210,以及命令實體位址解碼器205傳送所解碼出的實體位址250,同時,控制邏輯器215傳送陣列控制訊號270至非揮發性快閃隨機存取記憶體陣列裝置235。記憶體晶片240讀取區塊(100)242中之資料並透過資料匯流排260傳送至頁面緩衝器225。控制邏輯器215指示頁面緩衝器225係將區塊(100)242資料以及區塊(200)247之區段位置4296704資料合併成新資料220。然後,控制邏輯器215決定區塊(100)242資料寫回區塊(200)247中,且指示實體位址解碼器205更新邏輯實體轉譯表230的索引內容,以將實體區塊100更新為實體區塊8392(8192+200)。再者,區塊緩衝器224指示更新區塊及區段51200內之新資料寫入至區塊(200)237中,然後,控制邏輯器215指示記憶體晶片(0)240抹除掉區塊100中之資料。
如上述,以區塊為基礎的管理,當整個區塊以新資料覆寫時,其連續的操作非常快速。但隨機的寫入作業將會依再結合區塊之數量而變慢。目前,高容量固態硬碟(SSD)必須與便宜很多的機械式硬碟(HDD)做比較。為了提高競爭力,固態硬碟必須具有比機械式硬碟高出許多的讀寫速率,尤其是在隨機寫入方面。因此,相對於控制器的價格,高速讀寫為更重要的問題。此類型的控制器通常具有一較大的外部隨機存取記憶體,藉以有效提高速率。對於新硬體架構之快閃隨機存取記憶體陣列裝置235,較佳的內部管理方法與電路才有利於效能的提升。
IEEE Transactions on Consumer Electronics期刊2002年5月號Vol.:48第366-375頁「Compact Flash系統具空間效率之快閃轉譯層」描 述一稱為快閃轉譯層(Flash Translation Layer,FTL)之中間軟體層,用以於快閃記憶體中將主機系統之邏輯位址重新指向至實體位址。快閃轉譯層結合頁面寫入與區塊抹除位址轉換之粒度。較大粒度之位址轉換可降低維持轉換資訊之資源,較細粒度之位址轉換可提高小量寫入之管理效率。
美國專利US 5,404,485提供一具有虛擬映射系統之快閃記憶體,可允許資料被連續寫入未寫入之實體位址。該虛擬記憶體地圖將快閃記憶體之實體位址關聯起來,以便於追蹤資料在記憶體中的位置。
美國專利US 5,963,983提供一具有工作記憶之記憶體裝置,用以儲存邏輯實體位址轉換資訊。該半導體記憶裝置被定位為預設區段單元。該記憶裝置具有可抹寫之非揮發性記憶體資料儲存器。一連接至主機系統之介面可接收一存取要求。該揮發性工作記憶體儲存非揮發性記憶體之頁面位址表,用以轉換需求之邏輯區段位址至該非揮發性實體記憶體空間之一實體區段位址。該揮發性記憶體尚儲存一第二表格,記錄各區塊之頁面之位址,用以轉換存取要求中之一邏輯頁面位址至該非揮發性記憶體之實體頁面位址。一第二存取控制裝置參考該第二表格以取得一邏輯區段位址所對應之實體頁面位址。
美國專利US 6,591,328提供一非揮發性記憶體,具有一儲存位址控制表,該表格包含有邏輯位址與實體位址。該邏輯實體位址控制表控制資料在非揮發性記憶體中離散儲存之位址。該邏輯實體位址控制表由複數個區塊所組成,各區塊分別做為一資料刪除單元,另包含有具有固定長度之相鄰頁面,分別做為一讀寫單元。一運算域資料區塊包含有運算域識別資料,用以指示儲存於運算域資料區塊中之資料。該邏輯實體控制表區塊位於非揮發性記憶體中,包含有控制表識別資料,用以指示經排序之控制表資料。
美國專利US 6,598,115提供一半導體儲存裝置,包含有複數個非揮發性快閃記憶體,並使用邏輯實體區段轉換。一控制器將區塊資料之邏輯區段數轉換為非揮發性半導體記憶體區域之實體區段數,其中該區塊資料為寫入資料。
美國專利US 7,386,655提供一非揮發性記憶體之高速暫存區(scratch pad)與更新區塊之索引方法。更新資料係可依一預設條件選擇記 錄於一更新區塊或一高速暫存區塊中。高速暫存區塊係用以緩衝最終要儲存於更新區塊之更新資料。
美國專利US 7,386,655提供一可存取主機資料之快閃記憶體管理系統。該系統包含有記憶體之實體單元與虛擬單元及各虛擬單元至一或多個實體單元之映射機制。
美國專利申請案US 2006/0069852提供一儲存於快閃記憶體裝置之資料之可用區段管理器。一快閃驅動器利用邏輯實體區段映射追蹤儲存於一快閃記憶體之資料。該映射係以一資料結構儲存,並允許資料寫入快閃記憶媒體之下一個可用實體區段。由於無需先進行抹除程序,故寫入程序可快速完成。以資料結構儲存之邏輯實體區段映射被複製於該快閃記憶媒體中。若發生電源中斷的悲劇,該邏輯實體區段映射可藉由掃描快閃記憶媒體中之複製映射而快速重建。
本發明提供一種以頁面為基礎進行一非揮發性隨機存取記憶體陣列裝置之管理方法及其電路。
本發明尚提供一種非揮發性隨機存取記憶體陣列裝置之耗損平衡方法及其裝置。
為了達到上述目的,本發明提供一種以頁面為基礎對於一快閃儲存系統進行讀取、寫入及區塊抹除之記憶體管理電路,記憶體管理電路包括有一管理處理器及一頁面緩衝器,頁面緩衝器用以管理一快取及一邏輯實體轉譯表;管理處理器與在快閃儲存系統中一非揮發性記憶體陣列裝置進行通信,用以提供一控制訊號,以在非揮發性記憶體陣列裝置中對於所選擇的頁面進行程式化、抹除及讀取動作,另,頁面緩衝器與非揮發性記憶體陣列裝置及管理處理器進行通信,頁面緩衝器切分成複數個頁面區段,各頁面區段與快閃儲存系統之各頁面具有相等之尺寸,各頁面區段暫存頁面資料,並根據控制訊號以決定從非揮發性記憶體陣列裝置讀取頁面資料或傳送頁面資料至非揮發性記憶體陣列裝置。邏輯實體轉譯表,接收一需求的邏輯頁面位址,轉換邏輯頁面位址為一實體頁面位址,與管理處理器進行通信並將實體頁面位址傳送至管理處理器,以確認非揮發性記憶體陣列裝置中一需求頁面的一實體位置,再者,邏輯實體轉譯表包括有 一快取旗標表,其用以確認目前頁面緩衝器是否有需求的邏輯頁面位址。
又,記憶體管理電路尚包括有一輸入/輸出轉接器,其連接在一外部端口、次區塊緩衝器及管理處理器間,用以接收一邏輯位址、控制訊號及一被通信規格所編碼的區段資料,轉換邏輯位址、控制訊號及被通信規格所編碼的區段資料成非揮發性記憶體陣列裝置可接受的規格。
又,記憶體管理電路尚包括有一實體位址解碼器,與輸入/輸出轉接器及邏輯實體轉譯表進行通信,從輸入/輸出轉接器接收邏輯位址,轉送邏輯位址至邏輯實體轉譯表,從邏輯實體轉譯表接收實體位址,與管理處理器進行溝通,以確認一需求的邏輯次區塊資料存在於頁面緩衝器或非揮發性記憶體陣列裝置中。
又,記憶體管理電路尚包括有一頁面緩衝器快取表,與管理處理器進行通信,頁面緩衝器快取表包括有一實體次區塊號碼,其用以確認在非揮發性記憶體陣列裝置中之一實體位置,實體位置與在頁面緩衝器中之一頁面位置相關聯,一快取類型項目用以標示一快取類型且被實體位置所佔用,一狀態項目根據一有效狀態分類頁面之區段資料,快取形式包括有一讀取快取、一串流快取、一寫入快取及一空閒列表,空閒列表用以表示一頁面緩衝器為抹除及可使用狀態之列表。
又,記憶體管理電路尚包括有一最近最少使用表,最近最少使用表包括有複數個連結指標,連結指標用以決定一最近最少使用的頁面資料存於頁面緩衝器中。各快取形式(讀取快取、串流快取、寫入快取及空閒列表)同樣包括有複數個連結指標,其連結指標用以決定最近最少使用表之資料分配到哪個快取。頁面緩衝器透過管理處理器執行一收回程序,最近最少使用表之頁面資料從頁面緩衝器中收回且寫入所指定的非揮發性記憶體陣列裝置之頁面中,在頁面緩衝器中之頁面位置附加至頁面緩衝器快取表之空閒列表內。
又,記憶體管理電路尚包括有一無效次區塊表及一實體邏輯表,無效次區塊表用以指示非揮發性記憶體陣列裝置中所選擇的頁面為有效的,而實體邏輯表用以映射非揮發性記憶體陣列裝置之實體位置至邏輯位置,實體邏輯表中之一不合法的頁面號碼用以指示實體位置在實體邏輯表中為已抹除或無效的。
又,記憶體管理電路尚包括有一抹除總數表及一實體區塊連結表,抹除總數表對於非揮發性記憶體陣列裝置中之各區塊記錄一抹除總數,而實體區塊連結表包括有一包含複數個指標之連接列表,各指標指向非揮發性記憶體陣列裝置中之各區塊,再者,連接列表包括有一錨定指標,其對於在非揮發性記憶體陣列裝置中之各區塊定義出無效頁面號碼。當管理處理器對於非揮發性記憶體陣列裝置執行一垃圾收集程序,錨定指標用以指出非揮發性記憶體陣列裝置之該區塊中具有該最大無效號碼頁面之區塊,進而允許具有最大無效號碼頁面之區塊選擇進行抹除的動作。
又,記憶體管理電路尚可執行一損耗平衡程序,在一損耗平衡程序中,一抹除區塊的抹除總數比較於一滑動視窗之抹除總數,若抹除區塊之抹除總數超過滑動視窗之抹除總數,選擇另一具有最低抹除總數之區塊,且具有最低抹除總數之區塊中全部有效的頁面複製至抹除區塊之低階級頁面中,然後,具有最低抹除總數之區塊將進行抹除動作,而具有最低抹除總數之區塊成為一新的可寫入區塊,且其抹除總數將會增加。
100‧‧‧長駐記憶體
105‧‧‧中央處理器
110‧‧‧暫存記憶體
115‧‧‧輸入/輸出裝置
120‧‧‧系統匯流排
125‧‧‧控制器
130‧‧‧反及閘快閃陣列
150‧‧‧非揮發性快閃隨機存取記憶體裝置
155‧‧‧非揮發性快閃隨機存取記憶體裝置
160‧‧‧頁面
165‧‧‧區段
167‧‧‧ECC錯誤更正位元
170‧‧‧位元
200‧‧‧位址訊號
201‧‧‧區段
202‧‧‧頁面
203‧‧‧區塊
204‧‧‧邏輯位址
205‧‧‧實體位址解碼器
210‧‧‧控制訊號
215‧‧‧控制邏輯器
220‧‧‧資料
222‧‧‧區段資料
225‧‧‧頁面緩衝器
230‧‧‧邏輯實體轉譯表
232‧‧‧項目
235‧‧‧非揮發性快閃隨機存取記憶體陣列裝置
240‧‧‧非揮發性快閃隨機存取記憶體晶片
242‧‧‧區塊
245‧‧‧非揮發性快閃隨機存取記憶體晶片
247‧‧‧區塊
250‧‧‧實體位址
260‧‧‧資料匯流排
270‧‧‧陣列控制訊號
300‧‧‧資料儲存系統
305‧‧‧輸入/輸出轉接器
310‧‧‧位址訊號
315‧‧‧資料訊號
320‧‧‧控制訊號
325‧‧‧邏輯位址訊號
326‧‧‧區段
327‧‧‧頁面
328‧‧‧區塊
329‧‧‧晶片位置
330‧‧‧資料訊號
332‧‧‧新資料
335‧‧‧控制碼
340‧‧‧管理處理器
342‧‧‧管理處理控制器
344‧‧‧韌體記憶體
345‧‧‧實體位址解碼器
350‧‧‧頁面緩衝器
355‧‧‧邏輯實體轉譯表
356‧‧‧位置
360‧‧‧實體位址訊號
365‧‧‧資料
370‧‧‧陣列控制訊號
375‧‧‧非揮發性隨機存取記憶體陣列裝置
376a-n‧‧‧晶片
377a-n‧‧‧區塊
378a-n‧‧‧頁面
378i‧‧‧頁面
378j‧‧‧頁面
379a-n‧‧‧區段
380‧‧‧實體邏輯位址表
382‧‧‧頁面緩衝器快取表
384‧‧‧無效頁面表
386‧‧‧抹除總數表
387‧‧‧耗損平均表
388‧‧‧缺陷區塊表
390‧‧‧實體區塊連結表
395‧‧‧動態隨機存取記憶體陣列裝置
396‧‧‧位址訊號
397‧‧‧控制時序訊號
398‧‧‧資料
400‧‧‧邏輯實體位址轉譯表
405a-n‧‧‧頁面位置
410‧‧‧快取旗標
415‧‧‧頁面緩衝器
416a-n‧‧‧項目位置
420‧‧‧頁面緩衝器快取轉譯表
425‧‧‧快取頁面表
426‧‧‧實體頁面位置
427‧‧‧快取模式旗標
428‧‧‧區段有效旗標
429a-n‧‧‧項目位置
430‧‧‧最近最少使用連結表
431a-d‧‧‧向前錨點項目
432a-d‧‧‧向後錨點項目
433‧‧‧向前連結佇列
434‧‧‧向後連結佇列
435‧‧‧無效頁面表
437a-d‧‧‧頁面
438‧‧‧區塊位置
440‧‧‧管理處理器
445‧‧‧實體邏輯位址轉譯表
446a-g‧‧‧實體頁面位置
450‧‧‧實體區塊連結表
451‧‧‧向前連結佇列
452‧‧‧向後連結佇列
453a-m‧‧‧區塊項目
454a-m‧‧‧區塊項目
455‧‧‧錨點連接
456a-m‧‧‧錨點連結
457a-n‧‧‧錨點連結
475‧‧‧快閃隨機存取記憶體陣列裝置
477a-b‧‧‧區塊
478a-m‧‧‧頁面
480‧‧‧抹除總數表
482a-b‧‧‧區塊
485‧‧‧耗損平衡表
515‧‧‧邏輯實體位址轉譯表
516‧‧‧實體位址項目
517‧‧‧快取旗標
535‧‧‧頁面緩衝器快取表
536‧‧‧區段有效旗標
537‧‧‧快取模式項目
538‧‧‧頁面緩衝器位置
555‧‧‧頁面緩衝器快取
第1a圖:為習用電腦系統之區塊示意圖。
第1b圖:為習用快閃儲存系統中長駐記憶體(SSD)100之邏輯位址之結構示意圖。
第1c圖:為習用快閃儲存系統中長駐記憶體(SSD)100讀取及寫入之操作示意圖。
第2圖:為本發明以頁面為基礎對於記憶體進行管理之一固態硬碟之資料儲存系統一較佳實施例之區塊示意圖。
第3圖:為本發明以頁面為基礎對於記憶體進行管理之一固態硬碟之資料儲存系統又一實施例之區塊示意圖。
第4圖:為本發明固態硬碟讀取及寫入一實施例之操作示意圖。
第5圖:為本發明以頁面為基礎之記憶體管理之表格式意圖。
第6圖:本發明以頁面為基礎對於記憶體進行管理之垃圾收集中各表格之示意圖。
第7圖:為本發明以頁面為基礎對於記憶體進行管理之耗損平衡中各表格之示意圖。
第8圖:為本發明以頁面為基礎管理非揮發性隨機存取記憶體陣列裝置進行讀取資料之步驟流程圖。
第9圖:為本發明以頁面為基礎管理非揮發性快閃記憶體寫入資料之步驟流程圖。
第10a、10b圖:為本發明以頁面為基礎管理頁面緩衝器之頁面收回之流程圖。
第11圖:為本發明以頁面為基礎管理之非揮發性快閃隨機存取記憶體陣列裝置之垃圾回收機制之流程圖。
第12a、12b、12c圖:為本發明以頁面為基礎管理非揮發性快閃隨機存取記憶體陣列裝置之一耗損平衡程序之步驟流程圖。
本發明之以頁面為基礎的管理架構,用以對位址進行解碼,並索引至邏輯實體轉換表及區塊內的頁碼。若頁面位於頁面或必須從非揮發性快閃隨機存取記憶體陣列裝置收回,邏輯實體轉換表包括一快取設置位元。
若頁面不在頁面緩衝器內,則由非揮發性快閃隨機存取記憶體陣列裝置取出。區段被指定為低順序的位址,區段會被讀取或寫入頁面緩衝器。若頁面緩衝器內不具有足夠的空閒頁面時,將會進行收回程序,並由頁面緩衝器收回至少一最近被使用的頁面。若頁面為有效且與儲存在非揮發性快閃隨機存取記憶體陣列裝置的頁面一致,則頁面緩衝器的頁面空間會被得知,且頁面將會被從非揮發性快閃隨機存取記憶體陣列裝置中取出。區段可被適當的被讀取或寫入。當頁面內之區塊為無效時,頁面緩衝器之無效區段將會是新的,並與非揮發性快閃隨機存取記憶體陣列裝置之舊的區段相配。頁面可被重新寫入非揮發性快閃隨機存取記憶體陣列裝置,且位於頁面緩衝器內的位置將會成為空閒頁面。
頁面緩衝器內最新的空閒頁面會被指派至位址頁面,且頁面由非揮發性快閃隨機存取記憶體陣列裝置中被讀取,並由頁面緩衝器讀取區段,或將區段寫入頁面緩衝器。
抹除區塊列表會被維持,且當不具有足夠的抹除區塊可允許非揮發性快閃隨機存取記憶體陣列裝置進行操作時,則會進行一垃圾收回的動作以抹除無效的區塊。當區塊被抹除之後,將會進行抹除數量及門檻的比對。若超過門檻,則具有最低抹除次數的區塊會被複製至較新的抹除區塊,而具有最低抹除次數的區塊會被抹除並成為一新的備用區塊。
首先,請參閱第2圖,為本發明以頁面為基礎對於記憶體進行管理之一固態硬碟之資料儲存系統一較佳實施例之區塊示意圖。如圖所示,本發明固態硬碟之資料儲存系統300以頁面為基礎進行記憶體管理。非揮發性隨機存取記憶體陣列裝置375包括有複數個晶片376a...376n。各晶片376a...376n切分成複數個區塊377a...377n,各區塊377a...377n切分成複數個頁面378a...378n,而各頁面378a...378n切分成複數個區段379a...379n。本發明實施例中,每一晶片具有8192個區塊,每一區塊具有64個頁面,每一頁面具有8個區段。在一128G位元之固態硬碟中,係採用8個16G非揮發性隨機存取記憶體陣列裝置375,並具有64個晶片376a...376n。
一輸入/輸出轉接器305接收一位址訊號310、接收及傳送一資料訊號315及接收一控制訊號320,雖然,這些訊號顯示為個別訊號,然,在SATA介面中實際上可以連續發送及接收這些訊號。輸入/輸出轉接器305調節及格式化這些訊號,以產生一邏輯位址訊號325並傳送至實體位址解碼器345及管理處理器340。資料訊號330在調節及格式化後,將傳送於實體位址解碼器345及管理處理器340間。輸入/輸出轉接器305同時可調節及格式化控制碼335,後續,以將控制碼335傳送至管理處理器340。
實體位址解碼器345解碼一邏輯位址訊號325,以產生一進入於邏輯實體位址轉譯表355之索引值。邏輯位址訊號325索引指向一實際實體位置,該實際實體位置使用於非揮發性隨機存取記憶體陣列裝置375的讀取或寫入程序。管理處理器340解碼一控制碼335,以產生必要的控制訊號控制實體位址解碼器345及頁面緩衝器350,以及產生一陣列控制訊號370並傳送至非揮發性隨機存取記憶體陣列裝置375。
管理處理器340使用一實體邏輯位址表380、一頁面緩衝器快取表382、一無效頁面表384、一抹除總數表386、一耗損平均表387、 一缺陷區塊表388及一實體區塊連結表390,藉以管理非揮發性隨機存取記憶體陣列裝置375及頁面緩衝器350間資料的一致性。
實體邏輯位址表380透過一實體頁面號碼進行索引,實體邏輯位址表380對於邏輯實體位址轉譯表355執行一反函數,且管理處理器340執行一垃圾收回程序及一耗損平衡程序時將會使用到該實體邏輯位址表380,其細節容後討論。本發明中,將保留兩個較高位址數字(0xffffffff、0xfffffffe),以鑑別該實體頁面是不是與一邏輯頁面號碼相關聯,再者,數字(0xffffffff)意味著該實體頁面進行抹除,而數字(0xfffffffe)意味著該實體頁面為無效的,再者,實體頁面號碼並不會寫入邏輯頁面中。非揮發性隨機存取記憶體陣列裝置375低階格式化之後,將產生初始化的邏輯實體位址轉譯表355。若讀取一頁面,管理處理器340在頁面緩衝器350中產生0xffffffff數字,0xffffffff數字為在非揮發性隨機存取記憶體陣列裝置375中一抹除頁面378a,378b,...,378n之資料內容。
有了這些特殊數字(如0xffffffff、0xfffffffe),除了恢復區塊內容之外,並不需要一無效的頁面表。當一區塊進行抹除時,在該實體邏輯位址表380中之區塊的全部頁面將具有一0xffffffff數字。為了在一區塊中判定出無效頁面的號碼,在該實體邏輯位址表380中,係將具有0xfffffffe數字之號碼頁面進行計數。實體邏輯位址表380對於所有抹除區塊的全部頁面進行初始化,作動的寫入區塊及缺陷區塊具有0xffffffff數字,而其餘頁面具有0xfffffffe數字。然後,邏輯實體位址轉譯表355在掃描之後,亦可擺放於實體邏輯位址表380中實體頁面的邏輯位置。
如第5圖所示,頁面緩衝器快取表382與頁面緩衝器350具有相同的項目號碼。頁面緩衝器快取表382進一步切分成一快取頁面表及一最近最少使用連結表。每個頁面緩衝器快取表382項目將對應至一頁面緩衝器350並且描述各頁面緩衝器350之快取狀態。全部頁面緩衝器快取表382之項目係連結四個快取:一讀取快取、一寫入快取、一串流快取及一最近最少使用次序之空閒列表,且各頁面緩衝器350分別指定於一對應的快取。再者,快取頁面項目鑑別所對應的頁面緩衝器350為髒掉的(dirty)、不髒或未使用過。假如一快取現存位元被設定於快取頁面表425中,即可利用邏輯頁面號碼索引該快取頁面緩衝器快取表382,反之,快取現存 位元未設定於快取頁面表425中,將無法透過邏輯頁面號碼得到頁面緩衝器350之位置。
頁面緩衝器快取表382具有一可用以指向頁面快閃位置之項目。從頁面緩衝器350收回頁面以及將收回頁面寫至頁面緩衝器350的另一位置之後,無效的頁面資訊也必須進行相對的設定。接著,從非揮發性隨機存取記憶體陣列裝置375之頁面位置進行資料讀取,以避免頁面緩衝器350中並非全部區段皆為有效的情況下,而造成頁面資料回收不全。
經由頁面緩衝器350之實體頁面號碼429a,...,429m索引該快取頁面表425,快取頁面表425包括有複數個頁面378a,378b,...,378n之實體位址及索引位址,頁面378a,378b,...,378n之實體位址資料係儲存在頁面緩衝器350中。一快取模式係指定頁面是否在四種快取形式(如一空閒列表、一讀取快取、一串流快取及一寫入快取)中採用其中一者。快取頁面表425尚包括一區段有效旗標428,其用以提供一頁面之區段無效性指示。
承上,讀取快取包括複數個不髒(或稱為乾淨)的頁面。當儲存在頁面緩衝器350及非揮發性隨機存取記憶體陣列裝置375中的資料是相同的,則快取內容可視為不髒,則存放於頁面緩衝器350的資料398必須寫回非揮發性隨機存取記憶體陣列裝置375中,並且從該讀取快取中收回頁面緩衝器350內所存放的資料365,從非揮發性隨機存取記憶體陣列裝置375中所讀取的頁面378a,378b,...,378n資料365都必須通過讀取快取。
串流快取包括有複數個髒掉(dirty)頁面,由於頁面緩衝器350相較於非揮發性隨機存取記憶體陣列裝置375之頁面378a,378b,...,378n係具有較新的資訊,髒掉頁面必須寫回非揮發性隨機存取記憶體陣列裝置375進行收回。再者,從外部主機電路所接收的全部資料都必須通過串流快取。假如一頁面位置已經在讀取快取中,則原本存放於讀取快取中之頁面資料將進行刪除並移動至寫入快取中,或者,在串流快取中之一頁面若被觸動兩次讀取或寫入指令,則該頁面將會提升至寫入快取。
又,寫入快取包括複數個髒掉(dirty)頁面,那些髒掉頁面最少被觸動兩次,寫入快取有效地切分成兩個部分,再者,在本發明中,串流快取及寫入快取將可提供一更有效的收回策略。串流快取只有對於頁面寫入一次,而寫入快取對於頁面最少寫入一次以上(例如:檔案分配表係經 常更新的)。為了避免因為只寫入一次資料而令全部寫入快取無效,在串流快取中之每一頁面將得到一個機會提升至寫入快取,並且,原本存放於串流快取中之資料假若仍繼續保留於串流快取中,則這些資料將可容易被收回的。
又,空閒列表提供一空閒之頁面緩衝器350池。每當一讀取/寫入指令從外部主機電路傳送至非揮發性隨機存取記憶體陣列裝置375之一頁面位置,然,在頁面緩衝器快取中找不到該讀取/寫入指令,此時將需要一新的快取項目。為了快速反應,管理處理器340試圖保持該空閒的頁面緩衝器350池之大小。假如空閒之頁面緩衝器350號碼太低,收回程序將開始運行並產生新的空閒之頁面緩衝器350。
讀取快取、寫入快取、串流快取及空閒列表間之記憶區間大小亦可不斷地改變,例如:根據實際工作量、讀寫指令之比例,寫入快取之記憶區間亦可因此增加,而消耗或佔用原本讀取快取之記憶區間。
最近最少使用頁面連結表430提供一連結項目機制,該連結項目機制允許一表格的搜索,以在頁面緩衝器350中找到一個不是最近存取的頁面。一頁面收回程序使用於頁面緩衝器350上,以在頁面緩衝器350中產生空閒空間。該頁面收回程序,一垃圾收集程序及一損耗平衡程序用以寫入頁面資料至非揮發性隨機存取記憶體陣列裝置375中,以及對於非揮發性隨機存取記憶體陣列裝置375進行區塊的抹除。隨著收回程序之進行,以致頁面資料可寫入至非揮發性隨機存取記憶體陣列裝置375中,再者,若消耗太多抹除頁面或及已抹除區塊之數量太低,該垃圾收集程序將會因此而進行觸發,垃圾收集程序將可產生新的抹除區塊。次外,該垃圾收集程序包括有兩個步驟程序:透過複製所有有效的頁面並準備一欲抹除區塊,以及係將該欲抹除區塊進行抹除。在區塊抹除之後,一區塊抹除總數將會增加,假如區塊抹除總數太高,該區塊將與另一具有較低抹除總數之區塊進行資料置換,在此,該具有較低抹除總數之區塊其資料係較少被進行抹除之動作。
無效頁面表384對於一個區塊之每一頁面提供一個狀態位元(如每一區塊具有64個頁面,因此每一區塊將會有64個位元)。當無效頁面表384對於其中一區塊之一頁面給予邏輯(1)之狀態位元,則代表這頁面 係為無效的。再者,無效頁面會被淘汰的,但也不會因此消失而不在使用,它將會被一新頁面所取代。無效頁面表384對於一恢復演算法是必須要的,在此,假如實體邏輯位址表380(最後電源斷電時寫入)無法在電源開啟狀態下進行讀取,它可透過再次讀取全部的頁面而重建出來。邏輯頁面號碼儲存在每一頁面之增加區域中,該邏輯頁面號碼為一反向指標,若淘汰的頁面並未抹除仍處在可使用之狀態,反向指標將產生不是唯一性的問題。無效頁面表384容易儲存於快閃記憶體中,其用以定義頁面的有效性,再者,無效頁面表384主要作用只是便利於記憶體內部之其他目的可採用之表格,因此,在一恢復演算法之進行程序中,無效頁面表384並不需要的,其可以省略。
抹除總數表386使用在一耗損平衡程序中,用以監控全部區塊之抹除總數。一滑動視窗之抹除總數為一最小抹除總數加上一區塊抹除總數之門檻值,而最小抹除總數為全部區塊中實際最低的抹除總數。
在非揮發性隨機存取記憶體陣列裝置375中對於其中一區塊進行抹除動作之後,該損耗平衡程序將接著進行,以在抹除總數表380中對於該抹除區塊增加抹除總數。假如區塊進行抹除而成為最新的抹除區塊,其抹除總數仍足夠大的,係可將具有較小抹除總數之區塊中全部有效的頁面複製到此最新抹除區塊中,然後,在將較小抹除總數之區塊進行抹除。再者,較小抹除總數之區塊中無效的頁面將不會複製到該最新抹除區塊中,該較小抹除總數之區塊內的資料將複製至該最新抹除區塊之已抹除的對應頁面,而該最新抹除區塊並不會指定為寫入區塊且會記錄到耗損平衡表387中,以表明已抹除之頁面係存在於該最新抹除區塊中。
缺陷區塊表388對於非揮發性隨機存取記憶體陣列裝置375中之各區塊分別使用一個位元進行缺陷表示,以定義區塊為製造中產生缺陷或者運用時成為缺陷而無法使用。
實體區塊連結表390為一具有項目之雙連結列表,其用以表示非揮發性隨機存取記憶體陣列裝置375中每一區塊之錨點項目號碼係相等於一區塊中的頁面號碼(例如:每一區塊具有64個頁面,因此,錨點項目號碼可為64)。再者,實體區塊連結表390進一步增加兩錨點項目,其中一錨點項目用以表示已抹除的區塊,另一錨點項目用以指示區塊將候補進行 損耗平衡之程序。區塊項目指向錨點項目藉以指出區塊中無效頁面的總數。錨點項目具有一可指回區塊之列表,且錨點項目可根據每一區塊中無效頁面之號碼數量而相對地具有多數個項目。再者,每次區塊額外得到一無效頁面,將可在實體邏輯位址表380中相對設定一個位元。本發明中,區塊亦可解開對於一特定錨點之連結,並進一步連結進入下一個更高錨點之連結。實體區塊連結表390提供該垃圾收集程序可以快速找到一具有最高無效頁面數量之區塊。本發明實際操作時,在區塊進行抹除而產生一空閒區塊以提供非揮發性隨機存取記憶體陣列裝置375進行頁面寫入之前,會盡量減少複製頁面的數量,以避免空閒區塊不足產生頁面複製失敗之情況發生。
請參閱第3圖,為本發明以頁面為基礎對於記憶體進行管理之一固態硬碟之資料儲存系統又一實施例之區塊示意圖。如圖所示,除了第2圖中之實體位址解碼器345合併於管理處理器340當中之外,第3圖實施例之功能構造係與第2圖完全相同。邏輯位址325、資料訊號330及控制碼335應用於管理處理器340。管理處理器340包括一管理處理控制器342及一韌體記憶體344。管理處理控制器342為一電腦處理器,其執行一電腦程式程序,以進行非揮發性隨機存取記憶體陣列裝置375的管理。韌體記憶體344為一電腦可讀取儲存媒體,其可用以保存一電腦程式碼,當該電腦程式碼運行時,將可執行上述之電腦程式程序以對於非揮發性隨機存取記憶體陣列裝置375進行記憶管理。動態隨機存取記憶體陣列裝置395提供儲存空間於頁面緩衝器350、邏輯實體轉譯表355、頁面緩衝器快取表382、無效頁面表384、抹除總數表386、損耗平衡表(wearlevel table)387及缺陷區塊表388。
管理處理控制器342產生所需之位址訊號396及控制時序訊號397,以儲存必要資料至動態隨機存取記憶體陣列裝置395,或從動態隨機存取記憶體陣列裝置395提取必要資料。該必要資料實際上係可為讀取或寫入到頁面緩衝器350之資料訊號、非揮發性隨機存取記憶體陣列裝置375之實體位址、或者是由實體邏輯轉譯表380、缺陷區塊表388、損耗平衡表387、以及390所得之轉譯表資訊(table information)。
請參閱第4圖,為本發明固態硬碟讀取及寫入一實施例之操 作示意圖,該固態硬碟以頁面為基礎進行記憶體管理。如圖所示,邏輯位址訊號325輸入於一實體位址解碼器345。該實體位址使用23個位元來表示,較低位階的3個位元(0...2)用以指向頁面內之區段326,接下來的較高階級的6個位元(3..8)用以指向區塊內的頁面327,下一較高階級13個位元(9...21)用以指向區塊328,最高階級位元(22)用以指向晶片位置329。
管理處理器340接收控制碼335,以要求資料由非揮發性隨機存取記憶體陣列裝置375讀取或寫入。實體位址解碼器345將邏輯位址325的最高有效位元(3,...,22)傳送至邏輯實體轉譯表355,以用於邏輯實體轉譯表355內的索引值357。位置356儲存頁面的實體位址(100)。
如邏輯實體轉譯表355的位置356指示資料儲存至快取記憶體(cached),該位置即包含頁面緩衝器350內的頁面位置。管理處理器340檢查該儲存至快取記憶體的快取頁面轉譯表425以核對頁面位置之所有區段(sector)為有效的。如果區段無效的,由非揮發性隨機存取記憶體陣列裝置375讀取至頁面位置之無效區段之資料以及儲存至快取相關頁面緩衝器快取轉譯表420之有效位元都會設定為有效。如果邏輯實體轉譯表355的位置356指示顯示資料未儲存至快取記憶體,該位置即包括非揮發性隨機存取記憶體陣列裝置375內的實際頁面位置。
假如邏輯實體轉譯表355的位置356指示資料已儲存至快取記憶體,管理處理器340即指示頁面緩衝器350將資料訊號330傳送至第2圖中之輸入/輸出轉接器305或由第2圖中之輸入/輸出轉接器305傳送出。假如邏輯實體轉譯表355的位置356指示資料未儲存至快取記憶體,管理處理器340會指示實體位址解碼器345從邏輯實體轉譯表355傳送位置356的內容,以作為傳送至非揮發性隨機存取記憶體陣列裝置375之實體位址訊號360。管理處理器340也傳送陣列控制訊號370到非揮發性隨機存取記憶體陣列裝置375。位置(頁面100)的頁面378i傳送到頁面緩衝器350。管理處理器340指示實體位址解碼器345將頁面位置寫入頁面緩衝器350內的邏輯實體轉譯表355之位置356。再者,管理處理器340另外會設定相關頁面緩衝器快取轉譯表420的有效位元。
管理處理器340從實體位址解碼器345擷取區段位址326並將區段位址326傳送至頁面緩衝器350。假如資料從非揮發性隨機存取記 憶體陣列裝置375讀取,頁面緩衝器350即擷取區段位址326所指向的區段並且將其區段資料作為資料訊號330進行傳送。假如資料要寫入,管理處理器340即指示頁面緩衝器350將新資料332寫入頁面位置。
接著在收回(eviction)程序中,頁面會從頁面緩衝器350中移除。管理處理器340在另一晶片376b內分派頁面位置378j之新頁面位址,作為資料之頁面的新位置。管理處理器340指示實體位址解碼器345將新實體位址376j(頁面100變為頁面524488)寫入位置356的邏輯實體轉譯表355,位置356由邏輯位址325的頁面位址部分(頁面327、區塊328、以及晶片位置329)指向。資料頁面從頁面緩衝器350寫入到378j(324488或376b之頁面200)。接著舊位置378i(第一晶片的位置100)進行標記,以在垃圾收集(garbage collection)程序中進行消除(容後詳細解釋)。
請參閱第5圖,為本發明以頁面為基礎之記憶體管理之表格式意圖。在當前的科技中,非揮發性隨機存取記憶體陣列裝置475可具有16G記憶單元(memory cell)或位元(bits)的密度,相當於2G位元組(bytes)或524,288個頁面(page)或8,192個區塊(block)。在本發明之一實施例中,每個非揮發性隨機存取記憶體陣列裝置475具有4k位元組以及1、2、或4個儲存板(plane)的結構。每個儲存板的每個頁面合併於頁面緩衝器415的位置。例如,在具有4k位元組以及2儲存板構造的非揮發性隨機存取記憶體陣列裝置475中,每個頁面緩衝器415內的位置416有8K位元組。本發明中之固態硬碟系統之結構的模擬顯示頁面緩衝器415加上所有其他表格的大小應該大致為非揮發性隨機存取記憶體陣列裝置375陣列之總共大小的0.1%。實際上,邏輯實體位址轉譯表400和實體邏輯位址轉譯表445是所有動態隨機存取記憶體最大的部份。因此,非揮發性隨機存取記憶體陣列裝置375之128G位元組陣列應該具有128G位元的DRAM。對每個非揮發性隨機存取記憶體陣列裝置475來說將會有約512個頁面。對非揮發性隨機存取記憶體陣列裝置475的整個陣列來說,這會轉換為具有約16M位元組大小的頁面緩衝器415。
邏輯實體位址轉譯表400具有和固態硬碟之邏輯記憶空間一樣多的項目頁面(entry page)位置405a,...,405i,...,405n。如第4圖所示,邏輯實體位址轉譯表400透過頁面位址357進行索引。邏輯實體位址轉譯 表400的每個項目位置405a,...,405i,...,405n包括非揮發性隨機存取記憶體陣列裝置475內的實體頁面位置478或頁面緩衝器415的快取位置。快取旗標(flag)410附加在每個項目位置405a,...,405i,...,405n中。快取旗標410標示出項目位置405a,...,405i,...,405n是否位於頁面緩衝器415之實體位置或在非揮發性隨機存取記憶體陣列裝置475中。
頁面緩衝器415對資料頁面提供暫時的快速存取,該資料頁面儲存在非揮發性隨機存取記憶體陣列裝置475中。資料由外部主機電路讀取或寫入頁面緩衝器415。非揮發性隨機存取記憶體陣列裝置475並非由外部主機電路直接存取。非揮發性隨機存取記憶體陣列裝置475具有一關聯性之頁面緩衝器快取轉譯表420。頁面緩衝器快取轉譯表420包括一具有項目位置429a,...,429i,...,429n的快取頁面轉譯表425,其對應至頁面緩衝器415內的每個項目位置416a,...,416i,...,416n。快取頁面轉譯表425內的每個項目位置429a,...,429i,...,429n具有實體頁面位置426、一快取模式旗標427、以及一區段有效旗標428。實體頁面位置426提供儲存於頁面緩衝器415內的頁面之非揮發性隨機存取記憶體陣列裝置475內之實體位置。
快取模式旗標427指示頁面資料是否存放於頁面緩衝器415中,並且快取模式旗標427為讀取快取、串流快取、寫入快取、或空閒列表之其中之一號碼。如前述,讀取快取中的資料為從非揮發性隨機存取記憶體陣列裝置475所擷取的資料,其保持與非揮發性隨機存取記憶體陣列裝置475的頁面位置相同。寫入快取中的資料是寫入頁面位置416a,...,416i,...,416n的外部資料,因此,在收回程序中直到資料寫回非揮發性隨機存取記憶體陣列裝置475前,不再和非揮發性隨機存取記憶體陣列裝置475的頁面位置相同。串流快取記憶體包括在收回程序中必須寫回快閃記憶體(flash)之髒掉的頁面(dirty page),因為快取記憶體內之頁面緩衝器相較於快取記憶體頁面係具有較新的的資訊。空閒列表並非真的快取,而是頁面緩衝器415內未佔據位置的列表,該空閒列表可以握有從頁面緩衝器415內所擷取之新頁面,或是新資料頁面從外部主機電路寫入至非揮發性隨機存取記憶體陣列裝置475。
區段有效旗號428利用一資料位元來指示每個頁面的每個區段是否為有效或無效。區段只在非揮發性隨機存取記憶體陣列裝置475 內有效,並且如果需要,必須由非揮發性隨機存取記憶體陣列裝置475內擷取。區段有效旗號428內的位元數量取決於每個頁面內存在的區段數量。如同前述在本實施例中,系統定義為每頁具有8個區段,或是每個區段有效旗號428有8個位元。在某些實施例中,頁面可以定義為具有8K位元組(512位元組x16區段)或是每個區段有效旗號428具有16位元。在其他實施例中,區段和頁面亦可以相等,區段有效旗號428可以不需要的。
另外,頁面緩衝器快取轉譯表420包括有一最近最少使用連結表(least recently used chain table)430。最近最少使用連結表430具有複數個項目,各項目對應快取頁面轉譯表425的每個項目位置429a,...,429i,...,429n。最近最少使用連結表430具有連結佇列433/434。向前連結佇列433係由最年輕的項目到最舊的項目排序,相反的,向後連結佇列434由最舊的項目到最年輕的項目排序。另外,對每個連結佇列433/434來說最近最少使用連結表430具有4個錨點項目(anchor entry)431a,431b,431c,431d,432a,432b,432c,432d。這允許最近最少使用連結表430有4個佇列(queue),讀取快取、串流快取、寫入快取、以及空閒清單分別在連結佇列433/434中。每個連結佇列433和434的錨點項目431a,431b,431c,431d,432a,432b,432c,432d是每個連結佇列433/434的這4個佇列的起始點。最近最少使用連結表430根據老化順序(age)連接讀取快取、串流快取、以及寫入快取、佇列的所有項目。因為接續點(successors)和前置點(predecessors)可立即獲得,這個雙重連接清單有效率地便利於連入/連出(chainin/chain out)程序。
最近最少使用連結表430的時間順序機制使得每次當碰到頁面緩衝器415內的位置時,最近最少使用連結表430內的項目移動到下一個向前清單(如果它還不在那裏)的起始處。所以每個越靠近向前清單的起始處的項目將掉回一個項目。同樣地,向前清單的最後項目位置和向後清單的起始相同,並且標記最舊的最近最少使用項目。
假如一輸入位址有一邏輯位址,該邏輯位址指向邏輯實體位址轉譯表400之位置405i,且其內容會指向頁面位置5。位置405i的快取旗標410從頁面緩衝器415的位置405i而指示指向頁面位置5。位置5之頁面緩衝器快取轉譯表420內的實體頁面位置426指向非揮發性隨機存取記憶體陣列裝置475內的實體頁面1000。在位置項目429i之頁面5的區段 有效旗號428包括一數值(7),數值(7)表示在位置416i中,除3個最低階級區段外,其餘其他全部區段都是無效的。這3個最低階級區段儲存於非揮發性隨機存取記憶體陣列裝置475中之實體頁面1000。
在固態硬碟的讀取和寫入資料中,不在頁面緩衝器415的頁面必須由快取模式旗標427從空閒列表中分配到一個頁面。如果頁面緩衝器415內的可用頁面數量低於門檻值,就會執行收回程序以移除最近最少使用頁面。最近最少使用頁面連結表430提供一種由頁面緩衝器415收回頁面的機制。如同前述,頁面緩衝位置416a,...,416i,...,416n的佔據者可以分為讀取快取、串流快取、寫入快取、以及空閒列表之其中之一。
串流快取以及寫入快取內所有的頁面緩衝位置416a,...,416i,...,416n都是髒掉的(dirty)並且在某個時間之後必須寫回非揮發性隨機存取記憶體陣列裝置475。因為寫入頁面緩衝器415所以頁面緩衝器415內的位置稱為髒掉。頁面緩衝器415的位置是寫入快取或是串流快取的成員。因為只是非揮發性隨機存取記憶體陣列裝置475之頁面位置的複製,所以讀取快取頁面不被當做是髒掉的。非髒掉的頁面會立即列於空閒列表。在插回可直接使用的空閒列表之前,髒掉的頁面必須寫回非揮發性隨機存取記憶體陣列裝置475的頁面位置。
在執行另一指令(讀取或寫入)時,從串流快取所找到的頁面緩衝位置416a,...,416i,...,416n會晉升到寫入快取。如果頁面緩衝位置416a,...,416i,...,416n需要被寫入並且已經在讀取快取中發現,它也會晉升到寫入快取。
每個快取都有一個已經定義的門檻值或是標準填滿率,其可以根據工作量而動態改變。當空閒清單小於門檻值之下時,收回程序會啟動以在頁面緩衝器415內提供可用頁面。在執行兩個步驟的收回時,收回程序選擇頁面緩衝位置416a,...,416i,...,416n,該兩個步驟包括利用計算到門檻值之實際填滿率的距離以選擇快取。由具有許多頁面緩衝位置416a,...,416i,...,416n的快取中找出其中最超過門檻值的快取,並且放開該頁面緩衝位置416a,...,416i,...,416n。由頁面緩衝器415要回收的頁面緩衝位置416a,...,416i,...,416n由最近最少使用連結表430選擇以找到快取內最舊的頁面緩衝位置416a,...,416i,...,416n。
最近最少使用連結表430與頁面緩衝器快取轉譯表420及頁面緩衝器415平行操作。老化的頁面緩衝位置416a,...,416i,...,416n項目經由重新連結最近最少使用連結表430內的項目而完成。例如,如果選擇讀取快取作為具有從其填滿率門檻值算起有最大距離的快取,向前連結佇列433(位置12)的向前錨點項目431a指向向前方向以到達頁面緩衝器415的最年輕項目(位置0)。向後連結佇列434(位置12)向後錨點項目432a指向向後方向到頁面緩衝器415的最老項目(位置4)。對讀取快取來說連結佇列433/434是相反順序:0,2,4以及4,2,0。每次參考每個老化的頁面緩衝位置416a,...,416i,...,416n時,它將變為最年輕的一個(將它解除連結(unchained)並且重新插入在最新的之前)。即,在參考頁面緩衝位置416h(位置4)時,向前以及向後連結佇列433/434會重新排序,使得每個佇列具有指向位置4的431a,位置4依次指向位置0,位置0指向位置2。432a指向依次指向位置0的位置2,位置0指向位置4。最近最少使用連結表430的每個項目皆由在連結佇列433/434中移動其參考點在佇列中的一個位置而產生老化。
如前所述,要收回並且稱為髒掉的的頁面緩衝位置416a,...,416i,...,416n必須具有區段,該區段已經複製有頁面緩衝器415內的抹除頁面。非有效區段由非揮發性隨機存取記憶體陣列裝置475到頁面緩衝位置416a,...,416i,...,416n。接著複製完整頁面至非揮發性隨機存取記憶體陣列裝置475中已抹除之頁面。邏輯實體位址轉譯表400調整反應非揮發性隨機存取記憶體陣列裝置475內的新實體位置。非揮發性隨機存取記憶體陣列裝置475內的先前頁面現在標記為無效,如同之後所述,該先前頁面包括頁面緩衝位置416a,...,416i,...,416n內曾經為無效的區段。如果非揮發性隨機存取記憶體陣列裝置475之抹除頁面號碼低於一抹除頁面門檻值,便會觸發垃圾收集程序。
請參閱第6圖,係本發明以頁面為基礎對於記憶體進行管理之垃圾收集中各表格之示意圖。為提高效能,非揮發性快閃隨機存取記憶體陣列裝置475在執行任何垃圾收集程序時,會同時選取一區塊進行抹除,以便於使用一快閃記憶體裝置之複製頁面命令。垃圾收集使用之區塊係由掃描實體區塊連結表450中的無效頁面錨點連結(invalid page anchor chain) 455而得。實體區塊連結表450分為一向前連結佇列451及一向後連結佇列452。雙向連結表(實體區塊連結表450中之向前連結佇列451與向後連結佇列452)可提供較佳的效能。因為前者與後者可立刻得知,故資料之擷取或插入很快。反之,使用簡單連結表則需從頭掃描以計算其前者。除了抹除總數表480需由抹除總數最低者開始之外,區塊連結並無方向性。垃圾收集使用之區塊,在搜尋無效頁面表435時會選用抹除總數最底之區塊。在垃圾收集的最後,該區塊將會被抹除。選取抹除總數最低的區塊可避免過度耗損。
具有實體區塊連結表450之快閃隨機存取記憶體陣列裝置475,其向前連結佇列451與向後連結佇列452中之第一個項目(entry)分別對應於各快閃隨機存取記憶體陣列裝置475。實體區塊連結表450中,向前連結佇列451與向後連結佇列452超出個別區塊項目(individual block entry,例如453a,...,453i,...,453m,及454a,...,454i,...,454m)部份之項目即為無效頁面之錨點連結455。
快閃隨機存取記憶體陣列裝置475之所有區塊皆包含於65個無效頁面錨點連結455(0至64)之其中之一。掃描無效頁面錨點連結455係由無效頁面錨點連結64 456n與457n開始,至無效頁面錨連結0 456a與457n結束。無效頁面錨連結0 456a與457a指向個別區塊項目453a,...,453i,...453m及454a,...,454i,...,454m中具有零(0)無效頁面者,各無效頁面錨點連結455分別表列具有一區塊列表,該區塊列表具有複數個無效頁面號碼,各無效頁面錨點連結455之個別位置用以表示各無效頁面號碼。例如,區塊100在個別區塊項目453i與454i中指向無效頁面錨點連結455之位置N+61 456i與457i,表示區塊100具有61個無效頁面及3個有效頁面。
每當快閃隨機存取記憶體陣列裝置475之一區塊增加1個無效頁面時,無效頁面表435中代表該區塊位置438之無效位元項目會被設定指示該頁面為無效。在區塊100的範例中,區塊100對應的項目438中具有3個有效頁面,其餘61個頁面為無效。當增加1無效頁面時,實體區塊連結表450中代表該區塊之位置並未改變,而在無效頁面錨點連結455中之位置則改變至較高1級的位置。
例如:區塊100 453i與454i從錨點連結61 456i與457i中移除或解除連結,並插入或連結至錨點連結62 456j與457j中(假設錨點連結62 456j與457j原本為空)。空的連結係以向前連結與向後連結指向自己表示。
管理處理器440執行垃圾收集程序時,搜尋無效頁面錨點連結455並選取具有最高數量無效頁面之區塊,藉以將重覆複製最小化。在本範例中,垃圾收集程序將複製區塊100中之有效頁面478a、478b及478c至快閃隨機存取記憶體陣列裝置475中之另一區塊。有效頁面478a、478b及478c被寫入區塊200 477b中已抹除之頁面478e、478f及478g中。被選定寫入之區塊200 477b依序允許被寫入之資料。先前被寫入之頁面478d將優先於有效頁面478a、478b及478c被複製到已抹除之頁面478e、478f及478g中。若區塊200 447b在複製有效頁面478a、478b及478c的過程中被填滿,則將由已抹除頁面錨連結(錨連結64)456m與457m中選取另一已抹除之區塊。當需要寫入新的區塊時,該已抹除頁面錨連結(錨連結64)456m與457m係經由搜尋最低抹除總數而得。
當選定一區塊477a後,其所有有效頁面478a、478b及478c將被複製到一第二區塊477b已抹除之頁面478e、478f及478g。在複製區塊477a之有效頁面478a、478b及478c前,有效頁面中為”髒”的頁面緩衝器,其所有區段需先複製。快閃隨機存取記憶體陣列裝置475中所有無效區段將最先被讀取。
管理處理器440執行垃圾收集程序時,於複製後將所有有效頁面478a、478b及478c在無效頁面表435中設定為無效。在邏輯實體位址轉換表400中,邏輯頁面位置2之快取旗標410項目表示該頁面位於實體頁面位置6400 478a之資料已被複製到索引位置為0之頁面緩衝器415中。類似地,邏輯頁面位置5 405f之快取旗標410項目表示該頁面位於實體頁面位置6404 478b之資料未保留於頁面緩衝器415中。實體位置(6404)405f被改變到新的實體位置(12811)。類似地,具有索引位置0 426之頁面緩衝器快取表420由實體位置(6400)改變到新的實體位置(12810)。
在實體邏輯位址轉譯表445中,實體頁面位置6400 446a由邏輯頁面位置2改變到一個不合法的頁面指標。不合法的頁面指標有兩個, 即兩個最高位址數字(0xffffffff,0xfffffffe)。兩者皆表示無相關聯的邏輯頁面數字。位址數字0xffffffff表示該頁面已被抹除,位址數字0xfffffffe表示該頁面為無效。其中,邏輯位置2被改變到不合法的頁面指標0xfffffffe表示該頁面為無效。類似地,頁面位置6404 446e由邏輯位置5改變到不合法的頁面指標0xfffffffe。項目6401 446b、6402 446c及6403 446d先前被設定為無效,故具有不合法的頁面指標0xfffffffe。頁面位置12810 446f及12811 446g分別由不合法的頁面指標0xffffffff(已抹除頁面)改變為邏輯頁面數字2及5。當區塊100中所有的頁面皆在無效頁面表435中顯示為無效,則區塊100 477a抹除完畢。
當快閃隨機存取記憶體陣列裝置475之區塊100 438被抹除,可易於達到耗損平衡。耗損平衡程序的模式,在於令第4圖所示之快閃隨機存取記憶體陣列裝置375均勻地損耗。
請參閱第7圖,為本發明以頁面為基礎對於記憶體進行管理之耗損平衡中各表格之示意圖。在本實施例中,假設每區塊包含有64個頁面,則區塊100 477a之起始位置與頁面6400 478a之起始位置相同,而區塊200 447b之起始位置與頁面12800 478b之起始位置相同。
在本發明的耗損平衡程序中,最新抹除的區塊200 477b在抹除總數表480中之對應位置482b將會增加。將位置482b之抹除總數值與一滑動視窗之抹除總數(sliding window)進行比較,若大於滑動視窗之抹除總數,則最新抹除之區塊接收來自具有最低抹除總數之區塊之資料。該滑動視窗之抹除總數由搜尋抹除總數表480所得最低抹除總數加上一區塊抹除總數之門檻值而得到。若有複數個區塊具有相同的抹除總數,則有效頁面最少的區塊將被指定為新的空閒區塊。若最新抹除之區塊200 482b之抹除總數大於滑動視窗之抹除總數,則具有最低抹除總數之區塊100 482a將被轉移至最近抹除之區塊200 482b。其轉移係依序複製所有有效頁面478a、478b與487c至最近抹除區塊200 482b之頁面478j、478k與487k,並忽略所有無效頁面478h與478i。區塊100 482b之無效頁面478h與478i變成區塊末端之已抹除頁面478m,做為後續寫入之用。如前述,無效頁面之數目由無效頁面表435取得。無效頁面表435以一64位元字元標示每一區塊之無效頁面,其中各位元分別顯示對應之頁面為有效437a、437b及437c 或無效437d。
頁面從區塊100 477a複製至區塊200 477b時,邏輯實體位址轉譯表400必須更新。欲得知快閃隨機存取記憶體陣列裝置475中邏輯頁面與有效實體頁面478a、478b及478c的關聯,則需存取實體邏輯位址轉譯表445。頁面6400之索引446a顯示其關聯頁面為邏輯頁面2。頁面6400之索引446e顯示其關聯頁面為邏輯頁面5。邏輯頁面2之索引405c及其快取旗標410顯示該頁面已被複製到第4圖所示之頁面緩衝器415。頁面緩衝器快取表420之項目426中實體頁面位置由6400改變為12800。實體邏輯位址轉譯表445之項目446a由邏輯頁面2更新為不合法頁面指標0xfffffffe而表示為無效頁面。索引405f顯示該頁面未保留於頁面緩衝器415中,並由實體頁面位址6404改變為新的實體頁面位址12801。實體邏輯位址轉譯表445中邏輯頁面5之項目446e改變為不合法指標0xfffffffe表示為無效。並將新頁面478j與478k由已抹除頁面之不合法指標0xffffffff分別更新為邏輯頁面2實體位址12800 446f及邏輯頁面5實體位址12801 446g。有效頁面478c亦適當地更新其實體頁面位址。複製之後,區塊100 477a為已抹除,並成為新的空閒區塊,可寫入新頁面。具有空閒頁面之區塊200 482b被登記到耗損平衡表485中。若區塊100 477a中具有無效頁面,已抹除之區塊200 477b在耗損平衡之複製程序中將不會被完全覆蓋,而會剩餘部分已抹除之頁面。耗損平衡表485用於暫時保留未被覆寫之頁面之位址。當一區塊被寫滿時,會在取用新的已抹除區塊之前檢查耗損平衡表485中是否記錄具有空閒已抹除頁面之區塊。而這些區塊中之空閒已抹除頁面將會優先被寫入利用。
在抹除總數表480中,各區塊之抹除總數皆位於一最小抹除總數值與最小抹除總數值加上一門檻值之滑動視窗之中。該最小抹除總數值為快閃隨機存取記憶體陣列裝置475中所有區塊實際上之最低抹除總數。該抹除總數門檻值,通常單階儲存單元(single level cell)為4096,多階儲存單元(multiple level cell)為512。快閃隨機存取記憶體陣列裝置475之抹除區塊連結係以各區塊之抹除總數排序。當區塊之抹除總數超過該滑動視窗抹除總數,耗損平衡程序將掃描抹除總數表以取得一具有最低抹除總數之區塊為取代區塊,並將兩區塊交換。若同時有多個區塊具有最低抹除總 數,則選取具有最多無效頁面者。該最低抹除總數值於掃描抹除總數表480後,依據掃描結果更新。最低抹除總數值更新後,若仍有交換區塊之需求,則耗損平衡程序將再次被執行。滑動視窗之值亦需根據最低抹除總數之更新而重新計算。
前述基於頁面管理快閃記憶體之讀取、寫入、區塊抹除等等作業模式可由一獨立設計之記憶體管理電路實施。此外,本發明之基於頁面之快閃記憶體管理亦可由微控制器執行一管理程式實施。其中,該微控制器連接一儲存有管理程式或韌體之電腦可讀媒體,當微控制器執行該管理程式或韌體時,即可實施前述之快閃隨機存取記憶體陣列裝置之管理。
管理快閃隨機存取記憶體陣列裝置之韌體為一多執行線程程式,可分為複數層或執行線程,分別執行收回程序、垃圾收集及耗損平衡等。各執行線程為平行執行,並分別由對應的門檻值觸發。當可用頁面緩衝器減少時,由一讀/寫命令觸發快取收回程序。”髒”頁面收回程序需進行頁面抹除,當已抹除區塊之數量太少時,頁面抹除動作將觸發垃圾收集程序。垃圾收集結束後,區塊為已抹除。而當區塊之抹除總數太高時,區塊之抹除動作將觸發耗損平衡程序。
在本實施例中,該多線程程式用以管理快閃隨機存取記憶體陣列裝置,該多線程程式係由管理處理器(340於第4圖或440於第6圖與第7圖)執行。該多線程程式包含有一閒置執行線程(idle thread),當收回執行線程、垃圾收集執行線程或耗損平衡執行線程之門檻值未達到時,則閒置執行線程將會被執行。該程式通常執行一迴圈,如下所示:
其中,WaitEvent函式在對應之事件(event)未發生時(即各執行線程之門檻值未達到),會令管理處理器340、440執行之作業系統排程器(scheduler)切換(switch)至其他的工作(task)。該閒置執行線程中包含有一睡眠命令,當所有執行線程都在等待狀態時,可命令處理器進入睡眠狀態。
請參閱第8圖,為本發明以頁面為基礎管理非揮發性隨機存取記憶體陣列裝置進行讀取資料的步驟流程圖。最頂層只會看到頁面緩衝器快取,一讀取指令要求邏輯頁面位址之頁面緩衝器快取包含有頁面資料。開始進行讀取動作,如步驟500所示,主要對非揮發性快閃記憶體中一連串區段的被需求區段進行讀取,並對該需求區段的邏輯區段位址進行解碼的動作,如步驟505所示。ATA標準之讀取及寫入的指令包括有一位址,且該位址指向一需求的邏輯區段號碼(SN)及一區段總數(SC)。讀取及寫入的指令起始於區段號碼,並處理區段數所指出之連續區段號碼。如第4圖所示,該邏輯位址可定義及界定出非揮發性隨機存取記憶體陣列裝置內之區段、頁碼、區塊及晶片的位置。邏輯頁面位址(如第4圖所示之327、328及329)指向需求的頁面,並對非揮發性隨機存取記憶體陣列裝置內的頁面進行讀取,如步驟510所示。邏輯頁面位址為邏輯實體位址轉譯表515的索引,邏輯實體位址轉譯表515包括有被讀取之需求資料頁面的實體位址項目516。
快取旗標517標示出資料頁面是位於非揮發性隨機存取記憶體陣列裝置或位於頁面緩衝器內。若資料頁面不在頁面緩衝器內,則在非揮發性隨機存取記憶體陣列裝置內之頁面資料的實際實體位址將會在實體位址項目516中。若資料頁面為頁面緩衝器,進入資料頁面之頁面緩衝器之索引值將會在實體位址項目516中。藉由檢查快取旗標將可得知需求的資料頁面是否位於頁面緩衝器快取,如步驟520所示。
若頁面資料位於頁面緩衝器快取位置中,則會從頁面緩衝器快取555讀取頁面,如步驟550所示。從頁面資料中細分成之區段資料將以符合傳輸協定之格式陸續分頁傳輸至送至外部主機電路,如步驟565所示。若邏輯頁面位址的快取旗標517所指向的頁面資料尚未被從非揮發性隨機存取記憶體陣列裝置中複製,則可由空閒列表快取檢查出空閒列表是否未被佔用或是已有充分足夠的空閒頁面緩衝器位置可用以由非揮發性隨機存取記憶體陣列裝置接收頁面資料,如步驟570所示。若空閒列表未被佔用且沒有頁面緩衝器快取區係為空閒狀態,則一收回步驟將會被執行,以空出至少一最近最少使用緩衝器快取位置,如步驟575所示。若有足夠的空閒頁面緩衝器之快取位置或收回程序已完成,便可指派頁面緩衝器位 置接收頁面資料,如步驟580所示。可由邏輯實體位址轉譯表515中取出實體位址項目516並進行解碼,如步驟585所示,且頁面資料由非揮發性隨機存取記憶體陣列裝置讀取至頁面緩衝器快取555,如步驟590所示。頁面緩衝器位置由頁面緩衝器快取表535的空閒列表中移除,並插入可為讀取快取項目之頁面緩衝器快取表535。邏輯實體位址轉譯表515可藉由設定快取旗標517的動作來進行調整,而在頁面緩衝器快取表535中最近最少使用連結表的頁面緩衝器位置的索引則會被設定並指派為頁面緩衝器位置,如步驟545。從頁面緩衝器快取555中讀取頁面,如步驟550。從頁面資料中細分成之區段資料將以符合傳輸協定之格式陸續分頁傳輸至送至外部主機電路,如步驟565所示。
請參閱第9圖,本發明以頁面為基礎管理非揮發性快閃記憶體寫入資料的步驟流程圖。寫入的指令需要頁面緩衝之快取位置來接收資料頁面及相對的邏輯頁面位址。進行寫入的動作,如步驟600所示,主要對非揮發性快閃記憶體中一串區段的被需求區段進行寫入,並該需求區段的邏輯區段位址進行解碼的動作,如步驟605所示。如第4圖所示,該邏輯位址可用以定義並界定出非揮發性隨機存取記憶體陣列裝置內之區段、頁碼、區塊及晶片的位置。邏輯頁面位址(如第4圖所示之327、328及329)指向需求的頁面,並對非揮發性隨機存取記憶體陣列裝置內的頁面進行讀取,如步驟610所示。邏輯頁面位址為邏輯實體位址轉譯表515的索引,邏輯實體位址轉譯表515包括有被讀取之需求資料頁面的實體位址項目516。
快取旗標517標示出資料頁面是位於非揮發性隨機存取記憶體陣列裝置或位於頁面緩衝器內。若資料頁面不在頁面緩衝器內,則在非揮發性隨機存取記憶體陣列裝置內之資料頁面的實際實體位址將位於實體位址項目516中。若資料頁面為頁面緩衝器,進入資料頁面之頁面緩衝器之索引值將會在實體位址項目516中。藉由檢查快取旗標將可得知需求的資料頁面是否位於頁面緩衝器快取,如步驟615所示。
若頁面資料位於頁面緩衝器快取位置中,則頁面緩衝器快取表535之快取模式項目537內之頁面緩衝器位置會被晉升為的寫入快取,如步驟645所示,以使得頁面資料被寫入頁面緩衝器快取555,如步驟650 所示。
若邏輯頁面位址的快取旗標517指向的頁面資料尚未被從非揮發性隨機存取記憶體陣列裝置中複製,則可由空閒列表快取檢查出空閒列表是否未被佔用或是已有充分足夠的空閒頁面緩衝器位置可用以由非揮發性隨機存取記憶體陣列裝置接收頁面資料,如步驟620所示。若空閒列表未被佔用且沒有頁面緩衝的快取位置為空閒狀態,則一收回步驟將會被執行,以空出至少一最近最少使用緩衝器快取位置,如步驟625所示。若有足夠的空閒頁面緩衝器之快取位置或收回步驟已完成,便可指派頁面緩衝器位置來接收頁面資料,如步驟630所示。可由邏輯實體位址轉譯表515中取出實體位址項目516並進行解碼,如步驟635所示。頁面緩衝器快取表535之快取模式項目537內的頁面緩衝器位置將會被晉升為串流快取,如步驟640所示。使得頁面被寫入頁面緩衝器快取555,如步驟650所示。
軔體的第二層為快取收回線程,如第8圖之步驟575及第9圖之步驟625所示。例如,當固態硬碟系統具有8個通道,每個通道有8個預備好的busy lines,並具有64個非揮發性隨機存取記憶體裝置。此外還包括有64個回收線程,用以將頁面立即由快取寫入快閃記憶體。在最佳的狀況下每一個快閃記憶體都具有一回收線程,但如此一來將會佔用太多的資源(每一線程的堆疊式SRAM)。為了節省資源也可使得複數個快閃晶片共用一個回收線程,例如2個、4個或8個快閃晶片共用一個線程。
當達到最大頁面使用門檻值時,收回線程便會開始作用。最大頁面使用門檻值為頁面緩衝器內之頁面資料之頁面位置的最大數量。當收回線程完成之後,頁面緩衝器快取內之可用的空閒頁面緩衝器的數量將會大於最大頁面緩衝器門檻值。最大頁面使用門檻值及最小空閒頁面緩衝值必須是適當選擇的門檻及可能需要隨著各個時間之工作量來進行調整的門檻。主要的目標是隨時都有可用之空閒頁面緩衝器之快取位置,以避免需要頁面緩衝器接收頁面資料時,軔體的頂層有延遲的情形。
請參閱第10a圖及第10b圖,為本發明以頁面為基礎管理頁面緩衝器之頁面收回之流程圖。頁面收回的線程如上所述,並可於快取頁面緩衝器之空閒頁面緩衝器之快取位置的數量過低時進行。如上所述,當 有足夠之頁面緩衝器位置被指派至空閒列表快取,便不會進行頁面回收線程。回收的動作可釋放頁面緩衝器位置,若快閃記憶體髒的(串流快取或寫入快取)時,則可藉由將頁面資料內容寫回其中。管理處理器340或440(如第6圖或第7圖所示)之操作系統的時程表可控制回收線程的起始,並可在空閒列表快取構件的數量大於最小空閒頁面緩衝器門檻值時起動,如步驟700所示。空閒列表快取構件的數量可與最小空閒頁面緩衝器門檻值進行比對。若空閒列表快取構件的數量大於最小空閒頁面緩衝器門檻值,則回到步驟700直到空閒列表快取構件的數量小於最小空閒頁面緩衝器門檻值為止。每一個讀取快取、寫入快取及串流快取的填充率都會被計算出,如步驟710、715及720。如上所述,在最近最少使用連結表(如第5圖之430)中包括有每一個讀取快取、寫入快取及串流快取之最近被使用的順序。此外,頁面緩衝器快取被區分成複數個快取,且每一種型式的快取都可以即時進行調整。快取的回收是以基於偏離門檻值的差異為基準,且門檻值被建立於劃分頁面緩衝器快取,例如寫入快取佔頁面緩衝器快取的50%;讀取快取佔頁面緩衝器快取的35%;而串流快取則佔頁面緩衝器快取的15%。實際使用時劃分的比例可能不同,因為緩衝器可能從一個快取移到另一個,例如由讀取快取移往串流快取,或是由串流快取移往寫入快取等等。
快取(如讀取快取、寫入快取及串流快取)具有最大填充率或與最小空閒頁面緩衝器門檻值的最小差距,或者是可預先由頁面緩衝器快取表535的快取模式數字來定義或選擇快取的大小,如步驟725所示。被回收之最新被使用的頁面快取緩衝位置則由最近最少使用連結表735所決定,如步驟730所示。
如上所述,串流快取或寫入快取之緩衝器頁面快取為髒的。在選擇頁面緩衝器快取的最大填充率時,如步驟725所示,主要是由被選取的頁面緩衝器快取位置是否髒的而決定,如步驟740所示。若頁面緩衝器位置為髒的,則會由頁面緩衝器快取表535中讀取區段有效旗標536,以判斷是否將所有包括有效資料的區段被寫入非揮發性隨機存取記憶體陣列裝置。所有的區段有效旗標皆會被測試,如步驟740所示,以判斷頁面緩衝器位置內的頁面資料是否皆為有效,如步驟750所示。若所有頁面資料的區段都不是有效,則可由頁面緩衝器快取表535中重新取得實體位址538 並進行解碼,如步驟755所示。由非揮發性隨機存取記憶體陣列裝置讀取有效頁面資料,如步驟760所示,並以頁面緩衝器快取內之有效資料與有效頁面資料重新組合,如步驟765所示。
頁面資料從頁面緩衝器位置被寫入非揮發性隨機存取記憶體陣列裝置,如步驟770所示。收回頁面緩衝器位置則由其最近被指派及使用的快取中移出,如步驟775所示。回收快取項目則由被選取之快取中最近被使用的連結中取出,以進行回收的動作,如步驟725所示。並將回收快取項目插入最近最少使用連結表的空閒列表連結中,如步驟780所示。
開始進行回收的程序,如步驟700所示,並將更多的頁面緩衝器位置進行回收,直到空閒頁面緩衝器位置的數量大於最大空閒頁面緩衝門檻值。在將有效頁面寫入非揮發性隨機存取記憶體陣列裝置的過程中,如步驟770所示,非揮發性隨機存取記憶體陣列裝置中之一抹除頁面位置是需要從頁面緩衝器快取之串流快取或寫入快取收回各有效資料。且頁面不會由讀取快取寫回非揮發性隨機存取記憶體陣列裝置。所有的頁面都是有效的,除了位於讀取快取之頁面內的無效區段。藉此所有被抹除之空閒抹除頁面都可以被使用。
在軔體的第三層中,垃圾回收程序被喚起並用以管裡區塊的抹除程序。以固態硬碟為例,包括有8個通道,且每個通道包括8個預備好的busy lines,並具有64個非揮發性隨機存取記憶體裝置。有多達64個垃圾回收線程,並可同時抹除各個區塊。
垃圾回收程序會紀錄那些頁面為無效或廢棄。主要包括有四種頁面的分級:有缺陷的頁面、被寫入的頁面、無效的頁面及被抹除的頁面。藉由判斷區塊所具有之無效頁面的最高數量,可使得每一個垃圾回收程序線程選擇一區塊。若有數個區塊具有相同號碼的無效頁面,則具有最小抹除次數的區塊將會被選取。
請參閱第11圖,為本發明以頁面為基礎管理之非揮發性快閃隨機存取記憶體陣列裝置之垃圾回收機制之流程圖。垃圾回收程序如以上所述,並於非揮發性隨機存取記憶體陣列裝置內被抹除的頁面位置的數量過低時起動。當非揮發性隨機存取記憶體陣列裝置內有足夠之被抹除頁面,則垃圾回收機制是一種無止境的空轉。管理處理器340或440(如第6 圖或第7圖所示)之操作系統的時程表可控制垃圾回收程序的起始,並可在非揮發性隨機存取記憶體陣列裝置之被抹除頁面位置的數量小於被抹除頁面門檻值時起動,如步驟800所示。將非揮發性隨機存取記憶體陣列裝置之被抹除頁面位置的數量與一抹除頁面門檻值進行比對,如步驟805所示,當非揮發性隨機存取記憶體陣列裝置之被抹除頁面區的數量小於抹除頁面門檻值,其他線程開始且不斷地循環過程(如步驟800),直到可使用之抹除頁面區的數量大於抹除頁面門檻值為止。若否,則垃圾回收動作則不會開始進行。
當被抹除頁面位置的數量低於抹除頁面門檻值時,便可搜尋實體區塊連結表450,並找出具有最大無效頁面的區塊,如步驟810所示。區塊的選擇是位了藉由檢視實體區塊連結表450之無效頁面錨點連結456a、...、456n及457a、...、457n找出垃圾收回。實體區塊連結表450被區分成向前連結佇列451及向後連結佇列452。之向前連結佇列451及向後連結佇列452的第一項目與非揮發性隨機存取記憶體陣列裝置之非揮發性隨機存取記憶體裝置的各個區塊相對應。向前連結佇列451及向後連結佇列452的項目是無效頁面的錨點連結455,且向前連結佇列451及向後連結佇列452橫跨特定的區塊項目453a,...,453m及454a,...,454m。非揮發性快閃記憶體的所有區塊為65個非揮發性隨機存取記憶體裝置(0...64)之無效頁面錨點連結陣列之其中一個。非揮發性隨機存取記憶體裝置之無效頁面錨點連結陣列將會被掃描,並由無效頁面的錨點連結64 456m及457m開始,並至無效頁面錨點連結0 456a及457a為止。無效頁面錨點連結0 456a及457a指向各個具有零(0)無效頁面之區塊項目453a,...,456m及...,454a,...454m,並可藉由無效頁面之區塊項目453a,...,456m及...,454a,...454m來呈現無效頁面的錨點連接455,再者,各個無效頁面的錨點連接455具有一無效頁面數量之區塊列表。
當被具有最大無效頁面的區塊被選定時,將會進一步判斷區塊內所有的頁面是否皆為無效,如步驟815所示。若不是所有頁面都是無效,則在當下寫入區塊內之被抹除頁面的實體位址將會由被抹除區塊被指派至有效頁面的邏輯位址,如步驟820所示。有效頁面資料則會由將被抹除的區塊複製至非揮發快閃記憶體之現行寫入區塊的頁面位置。要注意的 是垃圾回收門檻可同時被多個非揮發性隨機存取記憶體裝置所執行。
在無效頁面表435中設定抹除區塊的複製頁面為無效,並設定目前寫入區塊之新的複製為有效頁面資料,如步驟830所示。邏輯實體位址轉譯表400被更新並映射邏輯頁面號碼指向非揮發性隨機存取記憶體裝置內新的實體區的邏輯頁面。若邏輯頁面號碼位於快取頁面緩衝器,則快取頁面表420將會更新。當所有頁面在測試後皆為無效,如步驟815所示,則該區塊將會被抹除,如步驟835所示。所有被抹除區塊的頁面具有所有的邏輯頁面號碼,設置於實體邏輯位址轉譯表445內並設定為具有不合法位址碼(0xffffffff)之抹除頁面,如步驟840所示。抹除總數表480會記錄增加的區塊抹除總數,如步驟845。在抹除一個區塊時,耗損平衡程序將會執行,以確保所有的區塊具有大約相同的抹除總數,以使得各非揮發性隨機存取記憶體裝置的耗損相同。則抹除頁面的總數再次與抹除頁面門檻值比對,如步驟805所示,且垃圾回收步驟將會重新開始或停止,如步驟840所示。
耗損平衡程序的執行是為了使得非揮發性隨機存取記憶體陣列裝置的使用較為平均,並使得非揮發性隨機存取記憶體陣列裝置各個部分的損壞時間較為相近。在垃圾回收程序中各個區塊的抹除後,抹除記數表之所有區塊的抹除總數將會被監看。非揮發性隨機存取記憶體陣列裝置的各個區塊的抹除總數位於滑動視窗內,滑動視窗之抹除總數是以最小區塊抹除總數加上抹除總數門檻值為基礎。當區塊的抹除總數大於滑動視窗之抹除總數,則一具有最小區塊抹除總數的區塊將複製到此超過滑動視窗之抹除總數之區塊中,然後,該具有最低抹除總數之區塊成為一新的可寫入區塊。
耗損平衡程序具有兩種模式:動態耗損平衡程序及靜態耗損平衡程序。在動態耗損平衡程序下,當有大於一個可用的抹除區塊時,則會選擇最小抹除次數的區塊。在靜態耗損平衡程序下,一部分的非揮發性隨機存取記憶體陣列裝置會被視為讀取資料(靜態資料),且該讀取資料往往是很少被讀取的。例如讀取資料可為節目、歌曲、電影等等。具有高抹除資料次數的區塊則會與低抹除次數的區塊交換。這種交換可為高寫入區塊與低寫入區塊(靜態資料)的交換。本發明實施例的方法及裝置可同時使用動 態平均模損程序及靜態平均模損程序。
請參閱第12a、12b及12c圖,係用以說明本發明以頁面為基礎管理非揮發性快閃隨機存取記憶體陣列裝置之一耗損平衡程序之步驟流程圖。在垃圾收集程序期間之一區塊被抹除之後,藉由收回(方塊902)最新抹除區塊之抹除總數,以啟動損耗平衡程序(方塊900)。最新抹除區塊之抹除總數將存在於前述滑動視窗內,該滑動視窗之抹除總數之範圍亦可為其中一區塊之最低區塊抹除總數加上一抹除總數之門檻值。例如,對非揮發性多層次快閃隨機存取記憶體晶片而言,該抹除總數門檻值大約為512,但對非揮發性單層次快閃隨機存取記憶體晶片而言,該抹除總數門檻值大約為4096。
相較於最新抹除區塊,存在於非揮發性快閃隨機存取記憶體陣列裝置內所有區塊中具有最大抹除總數之一區塊,將藉由檢索抹除總數表480而被發現。該抹除總數表480也將被檢索以發現具有最小抹除總數之區塊,如步驟904所示。滑動視窗之一抹除總數將被確定數量,如步驟906所示,其為具有最小抹除總數之區塊的抹除總數再加上抹除總數門檻值(最低抹除總數+N,其中N是為抹除總數門檻值)。為了更好的損耗平衡,抹除總數表480將被掃描,以取得所有非揮發性快閃隨機存取記憶體裝置之所有區塊的抹除總數。如果完整的掃描將花費過多的時間,一種好的大概方法是可隨意的啟動及檢索該抹除總數表480的一固定部分(例如一半),或者是隨意經過該該抹除總數表480的一部分。如果一種不充分的掃描將被使用於來決定具有最小抹除總數之區塊時,一種隨機函數(random function)將被援用而檢索出具有最小抹除總數的區塊。如果掃描至抹除總數表480尾端,將從起端繼續開始掃描。
最新抹除區塊的抹除總數將與滑動視窗之抹除總數進行比較,如步驟908所示。假如兩者抹除總數之差距不大於抹除總數門檻值時,該損耗平衡程序將被終止,如步驟930所示。假如兩者抹除總數之差距是大於抹除總數門檻值時,具有最小抹除總數之區塊將被指定為最新可寫入區塊(new spare block)。具有最小抹除總數之區塊的所有頁面將被測試以決定是否所有的頁面都是無效的,如步驟910所示。假如並不是所有頁面無效的,則該具有最小抹除總數之區塊的有效頁面將被複製至最新抹除區 塊,如步驟912所示,具有最小抹除總數之區塊的被複製頁面將被設定成無效的,如步驟914所示,而存在於新抹除區塊之新的複製頁面則被設定成有效的,如步驟914所示,邏輯實體位址轉譯表515也將被更新。如果快取旗標517係指示邏輯頁面是被快取的,則頁面緩衝器快取表535將被更新,以致使包含有最新抹除區塊的實體位置及快取位置之頁面緩衝器位置538將被導入寫入快取(write cache),而寫入快取則是儲存於頁面緩衝器快取表535的快取模式項目(cache mode entry)537內。該複製程序將一直被執行,直到所有頁面變成無效為止,而在這段時間內,具有最小抹除總數之區塊中的頁面的有效性也將一直被測試,如步驟910所示。
無效頁面將不會被複製,且具有最小抹除總數之區塊的無效頁面將成為存在於該最新抹除區塊內的抹除頁面。值得注意的是,有效頁面將被持續的複製至最新替換區塊(new replacement block)中。例如,如果該替換區塊具有三個無法被複製的無效頁面,則這最新抹除區塊的最後三個頁面也將不會被改變及保持抹除。當具有最小抹除總數之區塊的所有頁面都是無效後,它就會被抹除,如步驟916所示。
具有最小抹除總數之區塊的頁面將被設定成不合法位址碼(illegal address code),如步驟918所示,以成為一儲存於實體邏輯位址轉譯表445的抹除頁面(0xffffffff)。抹除總數表480將增量,如步驟920所示,以成為一具有最小抹除總數之區塊。如果具有最新複製頁面之替換區塊具有抹除頁面,將登入於損耗平衡表485,如步驟922所示,被作為一當現行寫入區塊已滿時可被使用的可寫入抹除頁面,而損耗平衡程序也將在此時被終止,如步驟930所示。然而,在另一方面,如果替換區塊是持續被需要時,這個程序也會被重覆確定。
以頁面為基礎管理之一種非揮發性快閃隨機存取記憶體陣列裝置的一些實施例中,這三個層級(收回、垃圾收集、及損耗平衡)當有需要時將可同時執行。該收回及垃圾收集程序將跑在讀取及寫入操作之前被執行,以提供在頁面緩衝器快取內之頂層具有頁面緩衝器位置。本發明以頁面為基礎管理之一種非揮發性快閃隨機存取記憶體陣列裝置的操作模式不僅可適用於前述幾個少數實施例而已,也可期待適用於不限制頁面緩衝器位置。
先前所描述實施例中,主要是揭露一種具有頁面讀取、寫入及區塊層級抹除功能,並以頁面為基礎管理之非揮發性快閃隨機存取記憶體陣列裝置,它可提供一種很高執行力之任意寫入功能。而在其他實施例中,主要是揭露一種以次區塊之使用來替代頁面,一個次區塊將具有許多頁面,而一個區塊又包含有複數個次區塊。大量次區塊將意指所有內部表列之大小將被縮減,次區塊將重組總增加、及垃圾收集總減少。具有大量次區塊將可提供持續性寫入及惡劣之任意寫入。又,在其他實施例中,於同一時間內將可使用不同之次區塊尺寸大小,藉此以達到可依據工作量而致使隨意及持續性之寫入有更完美的執行。
實務上,在一次區塊內之頁面數量最好是2的次方數(例如1、2、4、8、16、32),而每一個區塊所能保證之頁面數量也是可被N整除,不帶有任何餘數。次區塊之被建構基本上有兩種方式:其中一種是一個次區塊(或是替代、一特別頁面)是一實體區塊之部分,由於一個實體區塊將被分割成多個次區塊,以致使具有2倍數之頁面。例如,如果一區塊包含有64個頁面,且具有16個次區塊,則一個次區塊將包括有4個實體頁面。區塊表將保持原有之數量,但頁面表(邏輯實體位址轉譯表400及實體邏輯位址表455)則會只有四分之一大小。在這個實施例中,寫入一個次區塊就是持續性寫入連續的4個頁面。
另外一個方式是取組成超級區塊(super-block)來當作是非揮發性快閃隨機存取記憶體陣列裝置所分割之區塊。例如,可從四個不同的非揮發性快閃隨機存取記憶體陣列裝置中各取一個區塊來組成一超級區塊。一個四頁面次區塊將具有四個實體頁面,而每一個實體頁面都是從不同的非揮發性快閃隨機存取記憶體陣列裝置中而來。如此將具有比較小的頁面表及比較小的區塊表,而快取管理也將依據超級區塊之數量而定,超級區塊之數量將是實體區塊數量的一小部分。在這個由四個不同的非揮發性快閃隨機存取記憶體陣列裝置來組成四個區塊之實施例中,超級區塊之數量將是實體區塊數量之四分之一。另外,每一個次區塊將可以被平行態樣寫入,因為一個次區塊之所有實體頁面將位於不同之晶片中,因此可提供以交錯的平行方式來進入非揮發性快閃隨機存取記憶體陣列裝置。
以上所述者,僅為本發明之一較佳實施例而已,並非用來 限定本發明實施之範圍,即凡依本發明申請專利範圍所述之形狀、構造、特徵及精神所為之均等變化與修飾,均應包括於本發明之申請專利範圍內。
300‧‧‧資料儲存系統
305‧‧‧輸入/輸出轉接器
310‧‧‧位址訊號
315‧‧‧資料訊號
320‧‧‧控制訊號
325‧‧‧邏輯位址訊號
330‧‧‧資料訊號
335‧‧‧控制碼
340‧‧‧管理處理器
345‧‧‧實體位址解碼器
350‧‧‧頁面緩衝器
355‧‧‧邏輯實體轉譯表
360‧‧‧實體位址訊號
365‧‧‧資料
370‧‧‧陣列控制訊號
375‧‧‧非揮發性隨機存取記憶體陣列裝置
376a-n‧‧‧晶片
377a-n‧‧‧區塊
378a-n‧‧‧頁面
379a-n‧‧‧區段
380‧‧‧實體邏輯位址表
382‧‧‧頁面緩衝器快取表
384‧‧‧無效頁面表
386‧‧‧抹除總數表
387‧‧‧耗損平均表
388‧‧‧缺陷區塊表
390‧‧‧實體區塊連結表

Claims (28)

  1. 一種快閃儲存系統之管理方法,其中該快閃儲存系統為一非揮發性記憶體陣列裝置所組成,其方法之步驟包括有:對於該快閃儲存系統中一非揮發性記憶體陣列裝置進行一次區塊的讀取或寫入,其步驟包括:(a)解碼該次區塊之一邏輯位址;(b)從一邏輯實體轉譯表中存取該邏輯位址,以判定該次區塊是否存在於一次區塊緩衝器快取中;(c)若該次區塊存在於該次區塊緩衝器快取中,對於該次區塊緩衝器快取進行該次區塊的讀取或寫入;(d)若該次區塊不存在於該次區塊緩衝器快取中,判定該次區塊緩衝器快取是否具有一空閒次區塊;(e)若該次區塊緩衝器快取具有該空閒次區塊,分配該邏輯位址給該空閒次區塊,以對於該次區塊緩衝器快取之該空閒次區塊進行讀取或寫入,從該非揮發性記憶體陣列裝置讀取該次區塊至該分配的空閒次區塊並且讀取該分配的空閒次區塊,或者該次區塊寫入至該分配的空閒次區塊中;(f)若該次區塊緩衝器快取沒有該空閒次區塊,從該次區塊緩衝器快取中收回一最近最少使用次區塊,以製作出一空閒次區塊;及(g)執行步驟(e),對於該分配的空閒次區塊進行該次區塊的讀取或寫入。
  2. 如申請專利範圍第1項所述之管理方法,其中該次區塊為一頁面、一在非揮發性記憶體陣列裝置中單一區塊所組成的超級頁面或一經由多個頁面與一區塊所組成的超級頁面。
  3. 如申請專利範圍第1項所述之管理方法,尚包括下列步驟:接收該邏輯位址,一控制訊號及一被通信規格所編碼的區段資料;及轉換該邏輯位址、該控制訊號及該被通信規格所編碼的區段資料成該非揮發性記憶體陣列裝置可接受的規格。
  4. 如申請專利範圍第3項所述之管理方法,尚包括有記錄一次區塊緩衝 器快取表之步驟,該次區塊緩衝器快取表包括有一實體次區塊號碼,其用以確認在該非揮發性記憶體陣列裝置中之一實體位置,該實體位置與在該次區塊緩衝器中之一次區塊位置相關聯,一快取類型項目用以標示一快取類型,而一狀態項目根據一有效狀態分類該次區塊之區段資料,且該快取類型項目及該狀態項目佔用於該實體位置中。
  5. 如申請專利範圍第4項所述之管理方法,其中該快取類型包括有一讀取快取、一串流快取、一寫入快取及一空閒列表。
  6. 如申請專利範圍第4項所述之管理方法,其中從該次區塊緩衝器快取中收回該最近最少使用次區塊,以製作出一空閒次區塊,尚包括下列步驟:查詢一最近最少使用表,該最近最少使用表包括有複數個連結指標;及根據該連結指標以判定在該次區塊緩衝器中一最近最少使用的次區塊。
  7. 如申請專利範圍第6項所述之管理方法,其中從該次區塊緩衝器快取中收回該最近最少使用次區塊,以製作出一空閒次區塊,尚包括下列步驟:該最近最少使用次區塊資料寫入於所指定的該非揮發性記憶體陣列裝置之該次區塊中,而該次區塊緩衝器中之該次區塊位置並附加至該次區塊緩衝器快取表之該空閒列表內。
  8. 如申請專利範圍第7項所述之管理方法,其中該次區塊寫入至該次區塊緩衝器快取之該分配的空閒次區塊,尚包括有下列步驟:設定一次區塊位元,該次區塊位元寫入於一無效的次區塊表中,其用以指示該非揮發性記憶體陣列裝置中所選擇的該區塊及其該次區塊為有效的或無效的。
  9. 如申請專利範圍第6項所述之管理方法,其中從該次區塊緩衝器快取中收回該最近最少使用的次區塊之後,尚包括下列步驟:執行一垃圾收集程序,以產生至少一空閒次區塊。
  10. 如申請專利範圍第6項所述之管理方法,執行一垃圾收集程序,以產生至少一空閒次區塊之後,尚包括下列步驟:決定該非揮發性記憶體陣列裝置中一可抹除次區塊號碼是否低於一抹除次區塊門檻;搜索一包括有一連結列表之實體區塊連結表,該連結列表包括有複數個指標,其中一指標為一錨定指標,其用以在該區塊中定義出該無效次區塊的號碼,藉以找到一具有最大無效號碼次區塊;判斷具有該最大無效號碼次區塊之該區塊中是否全部的該次區塊皆為無效;若非全部該次區塊均為無效的,將該有效的次區塊複製至該非揮發性記憶體陣列裝置中其他區塊,以及在該無效次區塊表中設定無效的該次區塊;及當全部該次區塊都為無效,具有最大無效號碼次區塊的該區塊將進行抹除。
  11. 如申請專利範圍第10項所述之管理方法,其中該垃圾收回程序製作出該空閒次區塊後,尚包括下列步驟:設定一不合法的次區塊號碼以指示該抹除區塊之該實體位置在該實體邏輯表中已被抹除,並且該實體邏輯表用以映射該非揮發性記憶體陣列裝置之該實體位置至該邏輯位置。
  12. 如申請專利範圍第6項所述之管理方法,其中從該次區塊緩衝器快取中收回該最近最少使用的次區塊之後,尚包括下列步驟:對於該抹除區塊進行一損耗平衡程序。
  13. 如申請專利範圍第12項所述之管理方法,其中對於該抹除區塊進行一損耗平衡程序之後,尚包括下列步驟:決定一抹除視窗之抹除總數,該抹除視窗之抹除總數為一區塊最低抹除總數之函數;判斷該抹除區塊之一區塊抹除總數是否超過該抹除視窗之抹除總數;若該抹除區塊之該區塊抹除總數超過該抹除視窗之抹除總數,搜尋一 抹除總數表,以在各抹除區塊中判斷出一具有最低區塊抹除總數之區塊;選擇該具有最低區塊抹除總數之區塊;複製該具有最低區塊抹除總數之區塊中全部有效次區塊至該抹除區塊之低階級次區塊中;抹除該具有最低抹除總數之區塊,以成為一最新的抹除區塊;在該抹除總數表中對於該最新的抹除區塊增加其該抹除總數;及分配該最新的抹除區塊為一新的可寫入區塊。
  14. 如申請專利範圍第13項所述之管理方法,其中決定該抹除視窗之抹除總數之步驟後,尚包括下列步驟:加入一抹除計數門檻值至該最低區塊抹除總數。
  15. 一種用以保留電腦程式碼之電腦可讀取媒體,其包括有一控制處理器,當該控制處理器進行運作時,執行一電腦程式程序以對於一快閃儲存體進行管理,其中該電腦程式程序包括下列步驟:對於該快閃儲存系統中一非揮發性記憶體陣列裝置進行一次區塊的讀取或寫入,其步驟包括:(a)解碼該次區塊之一邏輯位址;(b)從一邏輯實體轉譯表中存取該邏輯位址,以判定該次區塊是否存在於一次區塊緩衝器快取中;(c)若該次區塊存在於該次區塊緩衝器快取中,對於該次區塊緩衝器快取進行該次區塊的讀取或寫入;(d)若該次區塊不存在於該次區塊緩衝器快取中,判定該次區塊緩衝器快取是否具有一空閒次區塊;(e)若該次區塊緩衝器快取具有該空閒次區塊,分配該邏輯位址,以對於該次區塊緩衝器快取之該空閒次區塊進行讀取或寫入,該次區塊從該非揮發性記憶體陣列裝置讀取至該分配的空閒次區塊並且讀取該分配的空閒次區塊,或者該次區塊寫入至該分配的空閒次區塊中; (f)若該次區塊緩衝器快取沒有該空閒次區塊,從該次區塊緩衝器快取中收回一最近最少使用次區塊,以製作出一空閒次區塊;及(g)執行步驟(e),對於該分配的空閒次區塊進行該次區塊的讀取或寫入。
  16. 如申請專利範圍第15項所述之管理方法,其中該次區塊為一頁面、一在非揮發性記憶體陣列裝置中單一區塊所組成的超級頁面或一經由多個頁面與一區塊所組成的超級頁面。
  17. 如申請專利範圍第15項所述之管理方法,其中該電腦程式程序尚包括下列步驟:接收該邏輯位址,一控制訊號及一被通信規格所編碼的區段資料;及轉換該邏輯位址、該控制訊號及該被通信規格所編碼的區段資料成該非揮發性記憶體陣列裝置可接受的規格。
  18. 如申請專利範圍第17項所述之管理方法,其中該電腦程式程序尚包括下列步驟:記錄一次區塊緩衝器快取表,該次區塊緩衝器快取表與該管理處理器進行通信,該次區塊緩衝器快取表包括有一實體次區塊號碼,其用以確認在該非揮發性記憶體陣列裝置中之一實體位置,該實體位置與在該次區塊緩衝器中之一次區塊位置相關聯,一快取類型項目用以標示一快取類型,而一狀態項目根據一有效狀態分類該次區塊之區段資料,且該快取類型項目及該狀態項目佔用於該實體位置中。
  19. 如申請專利範圍第18項所述之管理方法,其中該快取類型包括有一讀取快取、一串流快取、一寫入快取及一空閒列表。
  20. 如申請專利範圍第18項所述之管理方法,其中從該次區塊緩衝器快取中收回該最近最少使用次區塊,以製作出一空閒次區塊,尚包括下列步驟:查詢一最近最少使用表,該最近最少使用表包括有複數個連結指標;及根據該連結指標以判定在該次區塊緩衝器中一最近最少使用的次區塊。
  21. 如申請專利範圍第16項所述之管理方法,其中從該次區塊緩衝器快取中收回該最近最少使用次區塊,以製作出一空閒次區塊,尚包括下列步驟:該最近最少使用次區塊資料寫入於所指定的該非揮發性記憶體陣列裝置之該次區塊中,而該次區塊緩衝器中之該次區塊位置並附加至該次區塊緩衝器快取表之該空閒列表內。
  22. 如申請專利範圍第20項所述之管理方法,其中該次區塊寫入至該次區塊緩衝器快取之該分配的空閒次區塊,尚包括有下列步驟:設定一次區塊位元,該次區塊位元寫入於一無效的次區塊表中,其用以指示該非揮發性記憶體陣列裝置中所選擇的該區塊及其該次區塊為有效的或無效的。
  23. 如申請專利範圍第22項所述之管理方法,其中從該次區塊緩衝器快取中收回該最近最少使用的次區塊之後,尚包括下列步驟:執行一垃圾收集程序,以產生至少一空閒次區塊。
  24. 如申請專利範圍第23項所述之管理方法,執行一垃圾收集程序,以產生至少一空閒次區塊之後,尚包括下列步驟:決定該非揮發性記憶體陣列裝置中一可抹除次區塊號碼是否低於一抹除次區塊門檻;搜索一包括有一連結列表之實體區塊連結表,該連結列表包括有複數個指標,其中一指標為一錨定指標,其用以在該區塊中定義出該無效次區塊的號碼,藉以找到一具有最大無效號碼次區塊;判斷具有該最大無效號碼次區塊之該區塊中是否全部的該次區塊皆為無效;若非全部該次區塊均為無效的,將該有效的次區塊複製至該非揮發性記憶體陣列裝置中其他區塊,以及在該無效次區塊表中設定無效的該次區塊;及當全部該次區塊都為無效,具有最大無效號碼次區塊的該區塊將進行抹除。
  25. 如申請專利範圍第24項所述之管理方法,其中該垃圾收回程序製作出該空閒次區塊後,尚包括下列步驟:設定一不合法的次區塊號碼以指示該抹除區塊之該實體位置在該實體邏輯表中已被抹除,並且該實體邏輯表用以映射該非揮發性記憶體陣列裝置之該實體位置至該邏輯位置。
  26. 如申請專利範圍第24項所述之管理方法,其中從該次區塊緩衝器快取中收回該最近最少使用的次區塊之後,尚包括下列步驟:對於該抹除區塊進行一損耗平衡程序。
  27. 如申請專利範圍第26項所述之管理方法,其中對於該抹除區塊進行一損耗平衡程序之後,尚包括下列步驟:決定一抹除視窗之抹除總數,該抹除視窗之抹除總數為一區塊最低抹除總數之函數;判斷該抹除區塊之一區塊抹除總數是否超過該抹除視窗之抹除總數;若該抹除區塊之該區塊抹除總數超過該抹除視窗之抹除總數,搜尋一抹除總數表,以在各抹除區塊中判斷出一具有最低區塊抹除總數之區塊;選擇該具有最低區塊抹除總數之區塊;複製該具有最低區塊抹除總數之區塊中全部有效次區塊至該抹除區塊之低階級次區塊中;抹除該具有最低抹除總數之區塊,以成為一最新的抹除區塊;在該抹除總數表中對於該最新的抹除區塊增加其該抹除總數;及分配該最新的抹除區塊為一新的可寫入區塊。
  28. 如申請專利範圍第27項所述之管理方法,其中決定一抹除視窗之抹除總數之步驟後,尚包括下列步驟:加入一抹除計數門檻值至該最低區塊抹除總數。
TW103131114A 2009-09-03 2010-09-01 快閃儲存系統之管理方法 TWI551989B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/584,299 US8688894B2 (en) 2009-09-03 2009-09-03 Page based management of flash storage

Publications (2)

Publication Number Publication Date
TW201510722A TW201510722A (zh) 2015-03-16
TWI551989B true TWI551989B (zh) 2016-10-01

Family

ID=43626523

Family Applications (3)

Application Number Title Priority Date Filing Date
TW99129426A TWI474167B (zh) 2009-09-03 2010-09-01 以頁面為基礎管理快閃儲存裝置
TW103131115A TWI553475B (zh) 2009-09-03 2010-09-01 以頁面為基礎管理快閃儲存裝置
TW103131114A TWI551989B (zh) 2009-09-03 2010-09-01 快閃儲存系統之管理方法

Family Applications Before (2)

Application Number Title Priority Date Filing Date
TW99129426A TWI474167B (zh) 2009-09-03 2010-09-01 以頁面為基礎管理快閃儲存裝置
TW103131115A TWI553475B (zh) 2009-09-03 2010-09-01 以頁面為基礎管理快閃儲存裝置

Country Status (3)

Country Link
US (1) US8688894B2 (zh)
CN (2) CN102012867B (zh)
TW (3) TWI474167B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI662418B (zh) * 2016-12-20 2019-06-11 日商索尼互動娛樂股份有限公司 Information processing device and memory access method
TWI714975B (zh) * 2018-09-07 2021-01-01 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
TWI803842B (zh) * 2021-02-08 2023-06-01 大陸商長江存儲科技有限責任公司 用於從快閃記憶體讀取數據的方法與快閃記憶體系統

Families Citing this family (285)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US8019938B2 (en) 2006-12-06 2011-09-13 Fusion-I0, Inc. Apparatus, system, and method for solid-state storage as cache for high-capacity, non-volatile storage
JP5064820B2 (ja) * 2007-02-01 2012-10-31 マーベル ワールド トレード リミテッド 磁気ディスクコントローラおよび方法
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US8166258B2 (en) * 2009-07-24 2012-04-24 Lsi Corporation Skip operations for solid state disks
US9063561B2 (en) * 2009-05-06 2015-06-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Direct memory access for loopback transfers in a media controller architecture
US8555141B2 (en) * 2009-06-04 2013-10-08 Lsi Corporation Flash memory organization
US8245112B2 (en) * 2009-06-04 2012-08-14 Lsi Corporation Flash memory organization
US8321639B2 (en) * 2009-12-30 2012-11-27 Lsi Corporation Command tracking for direct access block storage devices
US8219776B2 (en) * 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US8286004B2 (en) * 2009-10-09 2012-10-09 Lsi Corporation Saving encryption keys in one-time programmable memory
US20100306451A1 (en) * 2009-06-01 2010-12-02 Joshua Johnson Architecture for nand flash constraint enforcement
US8195917B2 (en) * 2009-07-01 2012-06-05 Advanced Micro Devices, Inc. Extended page size using aggregated small pages
KR20110018157A (ko) * 2009-08-17 2011-02-23 삼성전자주식회사 플래시 메모리 장치의 액세스 방법
EP2476055B1 (en) * 2009-09-08 2020-01-22 SanDisk Technologies LLC Apparatus, system, and method for caching data on a solid-state storage device
US8176220B2 (en) * 2009-10-01 2012-05-08 Oracle America, Inc. Processor-bus-connected flash storage nodes with caching to support concurrent DMA accesses from multiple processors
US8219746B2 (en) * 2009-10-08 2012-07-10 International Business Machines Corporation Memory package utilizing at least two types of memories
US8407449B1 (en) 2010-02-26 2013-03-26 Western Digital Technologies, Inc. Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table
US8725931B1 (en) 2010-03-26 2014-05-13 Western Digital Technologies, Inc. System and method for managing the execution of memory commands in a solid-state memory
US8782327B1 (en) 2010-05-11 2014-07-15 Western Digital Technologies, Inc. System and method for managing execution of internal commands and host commands in a solid-state memory
US9026716B2 (en) 2010-05-12 2015-05-05 Western Digital Technologies, Inc. System and method for managing garbage collection in solid-state memory
US9104546B2 (en) * 2010-05-24 2015-08-11 Silicon Motion Inc. Method for performing block management using dynamic threshold, and associated memory device and controller thereof
GB2496798B (en) * 2010-07-27 2016-10-12 Ibm Logical to physical address mapping in storage systems comprising solid state memory devices
US9530436B1 (en) * 2010-08-12 2016-12-27 Western Digital Technologies, Inc. Methods and systems for providing data security in data storage devices
KR20120028581A (ko) * 2010-09-15 2012-03-23 삼성전자주식회사 비휘발성 메모리 장치, 이의 동작 방법, 및 이를 포함하는 장치들
US9021192B1 (en) 2010-09-21 2015-04-28 Western Digital Technologies, Inc. System and method for enhancing processing of memory access requests
US9164886B1 (en) 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
US8738846B2 (en) * 2010-10-15 2014-05-27 Arkologic Limited File system-aware solid-state storage management system
US8713242B2 (en) * 2010-12-30 2014-04-29 Solid State System Co., Ltd. Control method and allocation structure for flash memory device
US9286204B2 (en) * 2011-01-31 2016-03-15 Mitsubishi Electric Corporation Memory controller
JP5295286B2 (ja) * 2011-02-23 2013-09-18 株式会社日立製作所 記憶装置およびそれを搭載した計算機
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
KR101717081B1 (ko) * 2011-03-23 2017-03-28 삼성전자주식회사 비휘발성 램과 휘발성 램을 버퍼 메모리로 사용하는 저장 장치
JP5708216B2 (ja) * 2011-05-09 2015-04-30 ソニー株式会社 フラッシュメモリ装置、メモリ制御装置、メモリ制御方法、ストレージシステム
US9104327B2 (en) * 2011-05-17 2015-08-11 Sandisk Technologies Inc. Fast translation indicator to reduce secondary address table checks in a memory device
KR20120128978A (ko) * 2011-05-18 2012-11-28 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 관리 방법
US9436594B2 (en) * 2011-05-27 2016-09-06 Seagate Technology Llc Write operation with immediate local destruction of old content in non-volatile memory
US9405670B2 (en) * 2011-06-09 2016-08-02 Tsinghua University Wear leveling method and apparatus
US8949508B2 (en) * 2011-07-18 2015-02-03 Apple Inc. Non-volatile temporary data handling
CN104536906B (zh) * 2011-08-02 2017-10-10 群联电子股份有限公司 数据写入方法、存储器控制器与存储器储存装置
CN102915273B (zh) * 2011-08-02 2015-06-10 群联电子股份有限公司 数据写入方法、存储器控制器与存储器储存装置
TWI448892B (zh) * 2011-09-06 2014-08-11 Phison Electronics Corp 資料搬移方法、記憶體控制器與記憶體儲存裝置
US8924632B2 (en) 2011-09-16 2014-12-30 Apple Inc. Faster tree flattening for a system having non-volatile memory
CN102999437B (zh) * 2011-09-19 2015-12-16 群联电子股份有限公司 数据搬移方法、存储器控制器与存储器储存装置
US8539007B2 (en) 2011-10-17 2013-09-17 International Business Machines Corporation Efficient garbage collection in a compressed journal file
US20130103889A1 (en) * 2011-10-25 2013-04-25 Ocz Technology Group Inc. Page-buffer management of non-volatile memory-based mass storage devices
US8972661B2 (en) 2011-10-31 2015-03-03 International Business Machines Corporation Dynamically adjusted threshold for population of secondary cache
US8966172B2 (en) 2011-11-15 2015-02-24 Pavilion Data Systems, Inc. Processor agnostic data storage in a PCIE based shared storage enviroment
US8959416B1 (en) * 2011-12-16 2015-02-17 Western Digital Technologies, Inc. Memory defect management using signature identification
KR20130076429A (ko) * 2011-12-28 2013-07-08 삼성전자주식회사 메모리 장치의 저장 영역 관리 방법 및 이를 이용한 저장 장치
WO2013101050A1 (en) 2011-12-29 2013-07-04 Intel Corporation Multi-level memory with direct access
KR20130079706A (ko) * 2012-01-03 2013-07-11 삼성전자주식회사 휘발성 메모리를 포함하는 저장 장치의 구동 방법
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9652182B2 (en) 2012-01-31 2017-05-16 Pavilion Data Systems, Inc. Shareable virtual non-volatile storage device for a server
US8700861B1 (en) * 2012-03-28 2014-04-15 Emc Corporation Managing a dynamic list of entries for cache page cleaning
KR20150010717A (ko) * 2012-04-27 2015-01-28 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 메모리 디바이스의 보호
US9251056B2 (en) * 2012-06-01 2016-02-02 Macronix International Co., Ltd. Bucket-based wear leveling method and apparatus
US9772948B2 (en) 2012-07-06 2017-09-26 Seagate Technology Llc Determining a criterion for movement of data from a primary cache to a secondary cache
US9477591B2 (en) 2012-07-06 2016-10-25 Seagate Technology Llc Memory access requests in hybrid memory system
US9529724B2 (en) 2012-07-06 2016-12-27 Seagate Technology Llc Layered architecture for hybrid controller
JP5631938B2 (ja) * 2012-07-19 2014-11-26 株式会社東芝 半導体記憶装置
US8799561B2 (en) * 2012-07-27 2014-08-05 International Business Machines Corporation Valid page threshold based garbage collection for solid state drive
US9146857B2 (en) * 2012-08-18 2015-09-29 Storart Technology Co. Ltd. Method for mapping management
US20140052899A1 (en) * 2012-08-18 2014-02-20 Yen Chih Nan Memory address translation method for flash storage system
US8898548B1 (en) 2012-08-24 2014-11-25 Western Digital Technologies, Inc. Methods, data storage devices and systems having variable size ECC page size
US9195578B2 (en) 2012-08-24 2015-11-24 International Business Machines Corporation Systems, methods and computer program products memory space management for storage class memory
TWI492051B (zh) * 2012-09-05 2015-07-11 Silicon Motion Inc 資料儲存裝置與快閃記憶體控制方法
US9690695B2 (en) * 2012-09-20 2017-06-27 Silicon Motion, Inc. Data storage device and flash memory control method thereof
US9268682B2 (en) 2012-10-05 2016-02-23 Skyera, Llc Methods, devices and systems for physical-to-logical mapping in solid state drives
US9507523B1 (en) 2012-10-12 2016-11-29 Western Digital Technologies, Inc. Methods, devices and systems for variable size logical page management in a solid state drive
CN102929790A (zh) * 2012-10-15 2013-02-13 株洲南车时代电气股份有限公司 一种数据存储系统和方法
US9489296B1 (en) 2012-10-17 2016-11-08 Western Digital Technologies, Inc. Methods, devices and systems for hardware-based garbage collection in solid state drives
US8954694B2 (en) 2012-11-15 2015-02-10 Western Digital Technologies, Inc. Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive
US9405621B2 (en) * 2012-12-28 2016-08-02 Super Talent Technology, Corp. Green eMMC device (GeD) controller with DRAM data persistence, data-type splitting, meta-page grouping, and diversion of temp files for enhanced flash endurance
US9547586B2 (en) * 2013-01-03 2017-01-17 Macronix International Co., Ltd. Metadata containers with indirect pointers
US8898410B1 (en) * 2013-02-20 2014-11-25 Google Inc. Efficient garbage collection in a data storage device
CN104008061B (zh) * 2013-02-22 2018-01-23 华为技术有限公司 内存回收方法及装置
US9323676B2 (en) * 2013-03-05 2016-04-26 International Business Machines Corporation Non-data inclusive coherent (NIC) directory for cache
US9436595B1 (en) * 2013-03-15 2016-09-06 Google Inc. Use of application data and garbage-collected data to improve write efficiency of a data storage device
US9558108B2 (en) * 2013-04-15 2017-01-31 Macronix International Co., Ltd. Half block management for flash storage devices
US9519591B2 (en) * 2013-06-22 2016-12-13 Microsoft Technology Licensing, Llc Latch-free, log-structured storage for multiple access methods
KR102164630B1 (ko) * 2013-06-28 2020-10-12 삼성전자주식회사 메모리 컨트롤러 및 상기 메모리 컨트롤러의 동작 방법
US20160196076A1 (en) * 2013-07-08 2016-07-07 Wilus Institute Of Standards And Technology Inc. Memory system and method for controlling same
US9606803B2 (en) 2013-07-15 2017-03-28 Texas Instruments Incorporated Highly integrated scalable, flexible DSP megamodule architecture
KR20150010150A (ko) * 2013-07-18 2015-01-28 삼성전자주식회사 메모리 시스템 및 이의 동작 방법
US10007428B2 (en) 2013-08-16 2018-06-26 Micron Technology, Inc. Data storage management
US9785564B2 (en) * 2013-08-20 2017-10-10 Seagate Technology Llc Hybrid memory with associative cache
US9928177B2 (en) * 2013-08-21 2018-03-27 Lite-On Electronics (Guangzhou) Limited Managing method for cache memory of solid state drive
US9645938B2 (en) 2013-09-27 2017-05-09 Intel Corporation Cache operations for memory management
JP6326209B2 (ja) * 2013-09-30 2018-05-16 ラピスセミコンダクタ株式会社 半導体装置及び半導体メモリにおける消去回数の検索方法
CN104598386B (zh) * 2013-10-31 2018-03-27 Lsi公司 通过追踪和利用二级映射索引重复利用固态驱动器块
TWI489279B (zh) * 2013-11-27 2015-06-21 Realtek Semiconductor Corp 虛擬實體位址轉換系統以及虛擬實體位址轉換系統的管理方法
US9348748B2 (en) 2013-12-24 2016-05-24 Macronix International Co., Ltd. Heal leveling
US20150186257A1 (en) * 2013-12-26 2015-07-02 Anand S. Ramalingam Managing a transfer buffer for a non-volatile memory
US9542278B2 (en) 2013-12-26 2017-01-10 Silicon Motion, Inc. Data storage device and flash memory control method
KR102192242B1 (ko) * 2014-02-24 2020-12-17 삼성전자주식회사 메모리로 커맨드를 이슈하는 커맨드 이슈 방법 및 메모리의 커맨드 처리 방법
US9092362B1 (en) * 2014-03-13 2015-07-28 NXGN Data, Inc. Programmable data write management system and method for operating the same in a solid state drive
US9354955B1 (en) 2014-03-19 2016-05-31 Western Digital Technologies, Inc. Partial garbage collection for fast error handling and optimized garbage collection for the invisible band
KR102254392B1 (ko) * 2014-05-12 2021-05-25 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템
US9959203B2 (en) * 2014-06-23 2018-05-01 Google Llc Managing storage devices
CN105279098B (zh) * 2014-07-22 2019-02-12 中兴通讯股份有限公司 内存的清理方法及装置
JP2016038907A (ja) * 2014-08-07 2016-03-22 富士通株式会社 アクセス制御プログラム、アクセス制御装置及びアクセス制御方法
CN105446653B (zh) 2014-08-27 2018-12-14 阿里巴巴集团控股有限公司 一种数据合并方法和设备
US9952981B2 (en) * 2014-09-29 2018-04-24 Apple Inc. Read cache management in multi-level cell (MLC) non-volatile memory
US9336136B2 (en) 2014-10-08 2016-05-10 HGST Netherlands B.V. Apparatus, systems, and methods for providing wear leveling in solid state devices
WO2016064395A1 (en) * 2014-10-23 2016-04-28 Hewlett Packard Enterprise Development Lp Determining a chip select from physical rank information
US9483413B2 (en) 2014-10-24 2016-11-01 Samsung Electronics Co., Ltd. Nonvolatile memory devices and methods of controlling the same
TWI604307B (zh) 2014-10-31 2017-11-01 慧榮科技股份有限公司 資料儲存裝置以及快閃記憶體控制方法
US9712619B2 (en) 2014-11-04 2017-07-18 Pavilion Data Systems, Inc. Virtual non-volatile memory express drive
US9565269B2 (en) 2014-11-04 2017-02-07 Pavilion Data Systems, Inc. Non-volatile memory express over ethernet
US9830087B2 (en) * 2014-11-13 2017-11-28 Micron Technology, Inc. Memory wear leveling
US9529718B2 (en) * 2014-12-12 2016-12-27 Advanced Micro Devices, Inc. Batching modified blocks to the same dram page
US20160179399A1 (en) * 2014-12-23 2016-06-23 Sandisk Technologies Inc. System and Method for Selecting Blocks for Garbage Collection Based on Block Health
US10474569B2 (en) 2014-12-29 2019-11-12 Toshiba Memory Corporation Information processing device including nonvolatile cache memory and processor
TWI545433B (zh) * 2015-03-04 2016-08-11 慧榮科技股份有限公司 實體儲存對照表維護方法以及使用該方法的裝置
US9588901B2 (en) 2015-03-27 2017-03-07 Intel Corporation Caching and tiering for cloud storage
US9891824B2 (en) * 2015-04-24 2018-02-13 International Business Machines Corporation Sub-block input/output (I/O) commands for storage device including byte stream buffer
CN104935657A (zh) * 2015-06-15 2015-09-23 清华大学深圳研究生院 主动推送信息的方法和嵌入式节点操作系统
US9715342B2 (en) * 2015-07-03 2017-07-25 Xitore, Inc. Apparatus, system, and method of logical address translation for non-volatile storage memory
TWI534619B (zh) * 2015-09-11 2016-05-21 慧榮科技股份有限公司 動態邏輯分段方法以及使用該方法的裝置
US10635596B2 (en) 2015-10-02 2020-04-28 Sony Interactive Entertainment Inc. Information processing device, access controller, information processing method, and computer program for accessing memory having access units of different sizes
US9933954B2 (en) * 2015-10-19 2018-04-03 Nxp Usa, Inc. Partitioned memory having pipeline writes
TWI571881B (zh) * 2015-10-23 2017-02-21 群聯電子股份有限公司 有效資料合併方法、記憶體控制器與記憶體儲存裝置
KR20170053278A (ko) * 2015-11-06 2017-05-16 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
TWI604308B (zh) * 2015-11-18 2017-11-01 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法
US10152321B2 (en) * 2015-12-18 2018-12-11 Intel Corporation Instructions and logic for blend and permute operation sequences
US20170177360A1 (en) * 2015-12-21 2017-06-22 Intel Corporation Instructions and Logic for Load-Indices-and-Scatter Operations
US10289416B2 (en) * 2015-12-30 2019-05-14 Intel Corporation Systems, apparatuses, and methods for lane-based strided gather
CN107132989B (zh) * 2016-02-26 2020-05-12 群联电子股份有限公司 数据程序化方法、存储器控制电路单元及存储器存储装置
TWI571740B (zh) * 2016-03-18 2017-02-21 華邦電子股份有限公司 記憶體裝置及記憶體區塊使用方法
US10540274B2 (en) * 2016-03-29 2020-01-21 Micron Technology, Inc. Memory devices including dynamic superblocks, and related methods and electronic systems
US11442760B2 (en) * 2016-07-01 2022-09-13 Intel Corporation Aperture access processors, methods, systems, and instructions
US9857988B1 (en) * 2016-07-10 2018-01-02 Winbond Electronics Corporaiton Data management in multiply-writeable flash memories
US9830098B1 (en) * 2016-07-11 2017-11-28 Silicon Motion, Inc. Method of wear leveling for data storage device
TWI584292B (zh) * 2016-09-08 2017-05-21 群聯電子股份有限公司 記憶體抹除方法、記憶體控制電路單元及記憶體儲存裝置
US10275156B2 (en) * 2016-09-29 2019-04-30 Intel Corporation Managing solid state drive defect redundancies at sub-block granularity
US10216417B2 (en) * 2016-10-26 2019-02-26 Samsung Electronics Co., Ltd. Method of consolidate data streams for multi-stream enabled SSDs
US10847196B2 (en) 2016-10-31 2020-11-24 Rambus Inc. Hybrid memory module
TWI619018B (zh) 2016-11-10 2018-03-21 慧榮科技股份有限公司 可用於資料儲存裝置之垃圾蒐集方法
TWI616807B (zh) * 2016-11-17 2018-03-01 英屬維京群島商大心電子(英屬維京群島)股份有限公司 資料寫入方法以及儲存控制器
TWI615710B (zh) * 2016-12-14 2018-02-21 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
US10318423B2 (en) * 2016-12-14 2019-06-11 Macronix International Co., Ltd. Methods and systems for managing physical information of memory units in a memory device
CN108228088B (zh) * 2016-12-21 2020-10-23 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和设备
US10445199B2 (en) * 2016-12-22 2019-10-15 Western Digital Technologies, Inc. Bad page management in storage devices
WO2018140036A1 (en) * 2017-01-27 2018-08-02 Hewlett-Packard Development Company, L.P. Read operation redirect
KR20180093152A (ko) * 2017-02-09 2018-08-21 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10241925B2 (en) 2017-02-15 2019-03-26 Ati Technologies Ulc Selecting a default page size in a variable page size TLB
KR20180094724A (ko) * 2017-02-16 2018-08-24 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10282309B2 (en) 2017-02-24 2019-05-07 Advanced Micro Devices, Inc. Per-page control of physical address space distribution among memory modules
US10120813B2 (en) * 2017-03-08 2018-11-06 Arm Limited Address translation
JP6387134B1 (ja) 2017-03-09 2018-09-05 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
TWI626540B (zh) * 2017-03-22 2018-06-11 慧榮科技股份有限公司 一般及垃圾回收的資料存取方法以及使用該方法的裝置
KR20180108939A (ko) * 2017-03-23 2018-10-05 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
CN106951193B (zh) * 2017-03-27 2019-11-12 深圳佰维存储科技股份有限公司 改善Nand Flash存储性能的方法及其系统
TWI643067B (zh) * 2017-04-14 2018-12-01 國立臺灣科技大學 三維非及閘快閃記憶體及其記憶體管理方法
US10339068B2 (en) 2017-04-24 2019-07-02 Advanced Micro Devices, Inc. Fully virtualized TLBs
US10698808B2 (en) 2017-04-25 2020-06-30 Samsung Electronics Co., Ltd. Garbage collection—automatic data placement
US11048624B2 (en) 2017-04-25 2021-06-29 Samsung Electronics Co., Ltd. Methods for multi-stream garbage collection
US9905294B1 (en) * 2017-05-03 2018-02-27 Seagate Technology Llc Writing logically offset pages of data to N-level memory cells coupled to a common word line
US11175853B2 (en) * 2017-05-09 2021-11-16 Samsung Electronics Co., Ltd. Systems and methods for write and flush support in hybrid memory
US11221956B2 (en) * 2017-05-31 2022-01-11 Seagate Technology Llc Hybrid storage device with three-level memory mapping
US10359954B2 (en) 2017-05-31 2019-07-23 Alibaba Group Holding Limited Method and system for implementing byte-alterable write cache
US10074436B1 (en) 2017-06-13 2018-09-11 Winbound Electronics Corp. Memory device and data reading method thereof
US10884926B2 (en) 2017-06-16 2021-01-05 Alibaba Group Holding Limited Method and system for distributed storage using client-side global persistent cache
US10303241B2 (en) 2017-06-19 2019-05-28 Alibaba Group Holding Limited System and method for fine-grained power control management in a high capacity computer cluster
US10613985B2 (en) * 2017-07-06 2020-04-07 Seagate Technology Llc Buffer management in a data storage device wherein a bit indicating whether data is in cache is reset after updating forward table with physical address of non-volatile memory and jettisoning the data from the cache
US10678443B2 (en) 2017-07-06 2020-06-09 Alibaba Group Holding Limited Method and system for high-density converged storage via memory bus
US10564856B2 (en) 2017-07-06 2020-02-18 Alibaba Group Holding Limited Method and system for mitigating write amplification in a phase change memory-based storage device
TWI633434B (zh) * 2017-07-12 2018-08-21 宏碁股份有限公司 管理固態硬碟之方法、系統及電腦可讀取媒體
US10109339B1 (en) 2017-07-28 2018-10-23 Micron Technology, Inc. Memory devices with selective page-based refresh
US11176047B2 (en) * 2017-08-07 2021-11-16 International Business Machines Corporation Data storage system with physical storage and cache memory
US10423508B2 (en) 2017-08-11 2019-09-24 Alibaba Group Holding Limited Method and system for a high-priority read based on an in-place suspend/resume write
US10303601B2 (en) 2017-08-11 2019-05-28 Alibaba Group Holding Limited Method and system for rearranging a write operation in a shingled magnetic recording device
CN107562844A (zh) * 2017-08-25 2018-01-09 苏州市千尺浪信息技术服务有限公司 一种大数据的存储系统
US10496829B2 (en) 2017-09-15 2019-12-03 Alibaba Group Holding Limited Method and system for data destruction in a phase change memory-based storage device
US10642522B2 (en) 2017-09-15 2020-05-05 Alibaba Group Holding Limited Method and system for in-line deduplication in a storage drive based on a non-collision hash
JP6785205B2 (ja) * 2017-09-21 2020-11-18 キオクシア株式会社 メモリシステムおよび制御方法
JP2019057178A (ja) * 2017-09-21 2019-04-11 東芝メモリ株式会社 メモリシステムおよび制御方法
US10503409B2 (en) 2017-09-27 2019-12-10 Alibaba Group Holding Limited Low-latency lightweight distributed storage system
US10789011B2 (en) * 2017-09-27 2020-09-29 Alibaba Group Holding Limited Performance enhancement of a storage device using an integrated controller-buffer
CN111433749B (zh) 2017-10-12 2023-12-08 拉姆伯斯公司 具有dram高速缓存的非易失性物理存储器
US10860334B2 (en) 2017-10-25 2020-12-08 Alibaba Group Holding Limited System and method for centralized boot storage in an access switch shared by multiple servers
JP2019079464A (ja) 2017-10-27 2019-05-23 東芝メモリ株式会社 メモリシステムおよび制御方法
JP6982468B2 (ja) 2017-10-27 2021-12-17 キオクシア株式会社 メモリシステムおよび制御方法
JP7074453B2 (ja) * 2017-10-30 2022-05-24 キオクシア株式会社 メモリシステムおよび制御方法
TWI645289B (zh) * 2017-10-31 2018-12-21 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體操作方法
US10996888B2 (en) * 2017-10-31 2021-05-04 Qualcomm Incorporated Write credits management for non-volatile memory
US10445190B2 (en) 2017-11-08 2019-10-15 Alibaba Group Holding Limited Method and system for enhancing backup efficiency by bypassing encoding and decoding
US10877898B2 (en) 2017-11-16 2020-12-29 Alibaba Group Holding Limited Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
US10387243B2 (en) * 2017-12-08 2019-08-20 Macronix International Co., Ltd. Managing data arrangement in a super block
KR20200096613A (ko) * 2017-12-11 2020-08-12 마이크론 테크놀로지, 인크. 캐싱된 플래시 변환 계층에서의 가비지 수집의 효율을 개선하기 위한 기법
KR20190069806A (ko) * 2017-12-12 2019-06-20 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
TWI644207B (zh) * 2017-12-29 2018-12-11 國科美國研究實驗室 Method for garbage collection of data storage device
KR20190082513A (ko) * 2018-01-02 2019-07-10 에스케이하이닉스 주식회사 컨트롤러 및 그것의 동작방법
TWI664531B (zh) * 2018-01-25 2019-07-01 矽創電子股份有限公司 快閃記憶體之控制器及控制方法
US10891239B2 (en) 2018-02-07 2021-01-12 Alibaba Group Holding Limited Method and system for operating NAND flash physical space to extend memory capacity
US10496548B2 (en) 2018-02-07 2019-12-03 Alibaba Group Holding Limited Method and system for user-space storage I/O stack with user-space flash translation layer
US10831404B2 (en) 2018-02-08 2020-11-10 Alibaba Group Holding Limited Method and system for facilitating high-capacity shared memory using DIMM from retired servers
US10402112B1 (en) 2018-02-14 2019-09-03 Alibaba Group Holding Limited Method and system for chunk-wide data organization and placement with real-time calculation
KR20190102790A (ko) * 2018-02-27 2019-09-04 에스케이하이닉스 주식회사 컨트롤러 및 그 동작 방법과, 이를 포함하는 메모리 시스템
TWI664527B (zh) * 2018-03-20 2019-07-01 慧榮科技股份有限公司 用來於一記憶裝置中進行初始化之方法、記憶裝置及其控制器以及電子裝置
KR102434343B1 (ko) * 2018-04-23 2022-08-22 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
TWI687811B (zh) * 2018-05-14 2020-03-11 慧榮科技股份有限公司 資料儲存裝置及系統資訊的編程方法
US11379155B2 (en) 2018-05-24 2022-07-05 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
US10921992B2 (en) 2018-06-25 2021-02-16 Alibaba Group Holding Limited Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency
WO2020000136A1 (en) 2018-06-25 2020-01-02 Alibaba Group Holding Limited System and method for managing resources of a storage device and quantifying the cost of i/o requests
US10871921B2 (en) 2018-07-30 2020-12-22 Alibaba Group Holding Limited Method and system for facilitating atomicity assurance on metadata and data bundled storage
TWI671631B (zh) * 2018-08-01 2019-09-11 大陸商深圳大心電子科技有限公司 記憶體管理方法以及儲存控制器
US10996886B2 (en) 2018-08-02 2021-05-04 Alibaba Group Holding Limited Method and system for facilitating atomicity and latency assurance on variable sized I/O
US10747673B2 (en) 2018-08-02 2020-08-18 Alibaba Group Holding Limited System and method for facilitating cluster-level cache and memory space
TWI676987B (zh) * 2018-08-06 2019-11-11 新唐科技股份有限公司 資料處理系統與資料處理方法
CN110825310B (zh) * 2018-08-09 2023-09-05 深圳大心电子科技有限公司 存储器管理方法以及存储控制器
KR102649131B1 (ko) * 2018-08-14 2024-03-19 에스케이하이닉스 주식회사 메모리 시스템 내 대용량 데이터 저장이 가능한 블록에서의 유효 데이터 체크 방법 및 장치
US10838621B2 (en) * 2018-08-14 2020-11-17 Silicon Motion, Inc. Method and flash memory controller capable of avoiding inefficient memory block swap or inefficient garbage collection
US10628072B2 (en) * 2018-08-21 2020-04-21 Samsung Electronics Co., Ltd. Scalable architecture enabling large memory system for in-memory computations
TWI684130B (zh) * 2018-08-22 2020-02-01 慧榮科技股份有限公司 資料儲存裝置
CN110858127B (zh) 2018-08-22 2023-09-12 慧荣科技股份有限公司 数据存储装置
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
CN110968528A (zh) * 2018-09-30 2020-04-07 北京忆恒创源科技有限公司 应用统一缓存架构为非易失存储介质组装数据
US10852948B2 (en) 2018-10-19 2020-12-01 Alibaba Group Holding System and method for data organization in shingled magnetic recording drive
KR20200046495A (ko) * 2018-10-24 2020-05-07 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
CN111124270B (zh) 2018-10-31 2023-10-27 伊姆西Ip控股有限责任公司 缓存管理的方法、设备和计算机程序产品
US10795586B2 (en) 2018-11-19 2020-10-06 Alibaba Group Holding Limited System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash
JP2020086748A (ja) * 2018-11-21 2020-06-04 Tdk株式会社 メモリコントローラ、及びメモリシステム
US10769018B2 (en) 2018-12-04 2020-09-08 Alibaba Group Holding Limited System and method for handling uncorrectable data errors in high-capacity storage
US10884654B2 (en) 2018-12-31 2021-01-05 Alibaba Group Holding Limited System and method for quality of service assurance of multi-stream scenarios in a hard disk drive
US10977122B2 (en) 2018-12-31 2021-04-13 Alibaba Group Holding Limited System and method for facilitating differentiated error correction in high-density flash devices
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US11132291B2 (en) 2019-01-04 2021-09-28 Alibaba Group Holding Limited System and method of FPGA-executed flash translation layer in multiple solid state drives
US11455402B2 (en) 2019-01-30 2022-09-27 Seagate Technology Llc Non-volatile memory with precise write-once protection
US11200337B2 (en) 2019-02-11 2021-12-14 Alibaba Group Holding Limited System and method for user data isolation
CN111651371B (zh) 2019-03-04 2023-06-16 慧荣科技股份有限公司 非对称型平面管理方法以及数据存储装置及其控制器
TWI718635B (zh) * 2019-03-04 2021-02-11 慧榮科技股份有限公司 非對稱型平面管理方法以及資料儲存裝置及其控制器
TWI732192B (zh) * 2019-03-20 2021-07-01 點序科技股份有限公司 記憶體管理方法及記憶體儲存裝置
US10944697B2 (en) 2019-03-26 2021-03-09 Microsoft Technology Licensing, Llc Sliding window buffer for minimum local resource requirements
US10922234B2 (en) 2019-04-11 2021-02-16 Alibaba Group Holding Limited Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
US10908960B2 (en) 2019-04-16 2021-02-02 Alibaba Group Holding Limited Resource allocation based on comprehensive I/O monitoring in a distributed storage system
US11288007B2 (en) * 2019-05-16 2022-03-29 Western Digital Technologies, Inc. Virtual physical erase of a memory of a data storage device
US11169873B2 (en) 2019-05-21 2021-11-09 Alibaba Group Holding Limited Method and system for extending lifespan and enhancing throughput in a high-density solid state drive
TWI745695B (zh) * 2019-05-22 2021-11-11 慧榮科技股份有限公司 用來進行無預警斷電復原管理之方法、記憶裝置及其控制器以及電子裝置
US11036411B2 (en) * 2019-06-24 2021-06-15 Western Digital Technologies, Inc. Yield improvement through block budget optimization by using a transient pool of multi-level blocks
CN112130749B (zh) * 2019-06-25 2023-12-22 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
US11481119B2 (en) * 2019-07-15 2022-10-25 Micron Technology, Inc. Limiting hot-cold swap wear leveling
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11126561B2 (en) 2019-10-01 2021-09-21 Alibaba Group Holding Limited Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
US11188261B2 (en) * 2019-11-18 2021-11-30 International Business Machines Corporation Memory controllers for solid-state storage devices
KR20210083914A (ko) * 2019-12-27 2021-07-07 에스케이하이닉스 주식회사 메모리 시스템에서의 쓰기 레이턴시 관리 방법 및 장치
US11042307B1 (en) 2020-01-13 2021-06-22 Alibaba Group Holding Limited System and method for facilitating improved utilization of NAND flash based on page-wise operation
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
TWI744049B (zh) * 2020-02-06 2021-10-21 瑞昱半導體股份有限公司 記憶體控制器與資料處理方法
US10872622B1 (en) 2020-02-19 2020-12-22 Alibaba Group Holding Limited Method and system for deploying mixed storage products on a uniform storage infrastructure
US10923156B1 (en) 2020-02-19 2021-02-16 Alibaba Group Holding Limited Method and system for facilitating low-cost high-throughput storage for accessing large-size I/O blocks in a hard disk drive
US11150986B2 (en) 2020-02-26 2021-10-19 Alibaba Group Holding Limited Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction
US11144250B2 (en) 2020-03-13 2021-10-12 Alibaba Group Holding Limited Method and system for facilitating a persistent memory-centric system
US11200114B2 (en) 2020-03-17 2021-12-14 Alibaba Group Holding Limited System and method for facilitating elastic error correction code in memory
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11218165B2 (en) 2020-05-15 2022-01-04 Alibaba Group Holding Limited Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
CN111459850B (zh) * 2020-05-18 2023-08-15 北京时代全芯存储技术股份有限公司 记忆体装置以及运作方法
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
KR20220021772A (ko) * 2020-08-14 2022-02-22 에스케이하이닉스 주식회사 메모리 시스템 및 이에 포함된 메모리 장치의 동작 방법
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
TWI741779B (zh) * 2020-09-04 2021-10-01 群聯電子股份有限公司 資料整併方法、記憶體儲存裝置及記憶體控制電路單元
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
RU2752782C1 (ru) * 2020-12-18 2021-08-03 Акционерное Общество "Крафтвэй Корпорэйшн Плс" Способ записи секторных данных в кэш-память
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
TWI811633B (zh) * 2021-02-09 2023-08-11 新唐科技股份有限公司 電子裝置與其操作方法
TWI821152B (zh) * 2021-02-23 2023-11-01 慧榮科技股份有限公司 儲存裝置、快閃記憶體控制器及其控制方法
TWI808384B (zh) * 2021-02-23 2023-07-11 慧榮科技股份有限公司 儲存裝置、快閃記憶體控制器及其控制方法
US11567935B2 (en) * 2021-03-30 2023-01-31 Google Llc Conditional response fulfillment cache for locally responding to automated assistant inputs
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage
US11899977B2 (en) 2022-03-10 2024-02-13 Silicon Motion, Inc. Method and apparatus for performing access management of memory device with aid of serial number assignment timing control
CN117348909B (zh) * 2023-12-04 2024-02-27 成都佰维存储科技有限公司 一种eMMC升级方法、芯片、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200725594A (en) * 2005-12-30 2007-07-01 Ind Tech Res Inst Mechanism, method and apparatus to snapshot data for multiple volumes to a single snapshot volume in a data processing system
TW200821909A (en) * 2006-05-18 2008-05-16 Buffalo Inc Data storage device and data storage method
US20080195801A1 (en) * 2007-02-13 2008-08-14 Cheon Won-Moon Method for operating buffer cache of storage device including flash memory
US20090172259A1 (en) * 2007-12-27 2009-07-02 Pliant Technology, Inc. Mass storage controller volatile memory containing metadata related to flash memory storage

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3328321B2 (ja) 1992-06-22 2002-09-24 株式会社日立製作所 半導体記憶装置
US5404485A (en) 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
JP3197815B2 (ja) 1996-04-15 2001-08-13 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 半導体メモリ装置及びその制御方法
JP4085478B2 (ja) 1998-07-28 2008-05-14 ソニー株式会社 記憶媒体及び電子機器システム
US6901499B2 (en) 2002-02-27 2005-05-31 Microsoft Corp. System and method for tracking data stored in a flash memory device
US20050144516A1 (en) * 2003-12-30 2005-06-30 Gonzalez Carlos J. Adaptive deterministic grouping of blocks into multi-block units
US7386700B2 (en) 2004-07-30 2008-06-10 Sandisk Il Ltd Virtual-to-physical address translation in a flash file system
US7386655B2 (en) 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
WO2008033952A2 (en) * 2006-09-15 2008-03-20 Sandisk Corporation Non-volatile memory and method for class-based update block replacement rules
CN101256535B (zh) * 2007-03-01 2011-03-09 创惟科技股份有限公司 硬盘资料读写快取装置及方法
TWI375953B (en) * 2008-02-21 2012-11-01 Phison Electronics Corp Data reading method for flash memory, controller and system therof
CN101477492B (zh) * 2009-01-21 2010-12-29 华中科技大学 一种用于固态硬盘的循环重写闪存均衡方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200725594A (en) * 2005-12-30 2007-07-01 Ind Tech Res Inst Mechanism, method and apparatus to snapshot data for multiple volumes to a single snapshot volume in a data processing system
TW200821909A (en) * 2006-05-18 2008-05-16 Buffalo Inc Data storage device and data storage method
US20080195801A1 (en) * 2007-02-13 2008-08-14 Cheon Won-Moon Method for operating buffer cache of storage device including flash memory
US20090172259A1 (en) * 2007-12-27 2009-07-02 Pliant Technology, Inc. Mass storage controller volatile memory containing metadata related to flash memory storage

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI662418B (zh) * 2016-12-20 2019-06-11 日商索尼互動娛樂股份有限公司 Information processing device and memory access method
US11281572B2 (en) 2016-12-20 2022-03-22 Sony Interactive Entertainment Inc. Information processing apparatus and memory access method
TWI714975B (zh) * 2018-09-07 2021-01-01 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
TWI803842B (zh) * 2021-02-08 2023-06-01 大陸商長江存儲科技有限責任公司 用於從快閃記憶體讀取數據的方法與快閃記憶體系統
US11755471B2 (en) 2021-02-08 2023-09-12 Yangtze Memory Technologies Co., Ltd. On-die static random-access memory (SRAM) for caching logical to physical (L2P) tables

Also Published As

Publication number Publication date
CN102012867B (zh) 2014-12-24
TW201122812A (en) 2011-07-01
US20110055458A1 (en) 2011-03-03
CN104298610A (zh) 2015-01-21
US8688894B2 (en) 2014-04-01
TW201510722A (zh) 2015-03-16
TWI553475B (zh) 2016-10-11
CN104298610B (zh) 2017-07-11
CN102012867A (zh) 2011-04-13
TW201510723A (zh) 2015-03-16
TWI474167B (zh) 2015-02-21

Similar Documents

Publication Publication Date Title
TWI551989B (zh) 快閃儲存系統之管理方法
US11579773B2 (en) Memory system and method of controlling memory system
US8898371B2 (en) Accessing logical-to-physical address translation data for solid state disks
US9411522B2 (en) High speed input/output performance in solid state devices
US9378131B2 (en) Non-volatile storage addressing using multiple tables
US20050251617A1 (en) Hybrid non-volatile memory system
KR101017067B1 (ko) 낸드 플래시 메모리를 위한 지역성 기반의 가비지 컬렉션기법
KR101077901B1 (ko) 로그 블록 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법
KR101191650B1 (ko) 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법
KR100980667B1 (ko) Ssd에서의 임의 쓰기 성능을 개선하기 위한 저장 장치, 방법, 및 컴퓨터 판독 가능한 기록 매체
CN117950590A (zh) 一种优化ZenFS中的重置操作以延长ZNS-SSD使用寿命的方法

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees