資料儲存系統及其管理方法
【專利摘要】本發明有關于一種資料儲存系統及其管理方法,尤指以頁面為基礎管理非揮發性隨機存取記憶體陣列裝置的快閃儲存系統、方法及電路,記憶體管理系統包括有一管理處理器、一頁面緩沖器及一邏輯實體轉譯表,其中,管理處理器與快閃儲存系統中一非揮發性記憶體陣列裝置進行通信,管理處理器提供控制信號,非揮發性記憶體陣列裝置根據控制信號以對于所選擇的頁面進行程序化、抹除及讀取動作。
【專利說明】資料儲存系統及其管理方法
【技術領域】
[0001]本發明有關于一種資料儲存系統及其管理方法,尤指一種用以管理非揮發性記憶體裝置的記憶體管理電路及方法、以及以頁面為基礎進行記憶管理的非揮發性記憶體裝置(例如:快閃隨機存取記憶體)。
【背景技術】
[0002]固態硬碟(330)為一種資料儲存裝置,其使用半導體元件來儲存長駐資料。固態硬碟主要用以仿效一磁性硬碟或一光電硬碟,且普遍采用一標準作為傳輸界面,以在大多數的應用領域中可輕易取代一般硬碟機。再者,固態硬碟也能采用其他界面規格,例^ 6乂即688或光纖通道的實體及信號界面(八吧〗^3.230-1994),而固態硬碟系統可使用于一揮發性記憶體,例如:3狀1、0狀1,或一非揮發性記憶體,例如:快閃記憶體。
[0003]請參閱圖,為現有電腦系統的區塊示意圖,該電腦系統系采用一固態硬碟來取代一般硬碟進行長駐資料的儲存。如圖所示,一中央處理器105執行一連串的儲存程序指令,這些指令保存在暫存記憶體(狀1) 110或長駐記憶體(330) 100中。中央處理器105可執行四個基本功能:(1).從暫存記憶體110或長駐記憶體100中提取一指令或一資料、(2).解碼指令資料、(3).執行指令、(4).執行結果寫回暫存記憶體110或長駐記憶體100中。提取或寫回的結果資料可同時與一輸入/輸出裝置105進行通信,例如:印表機、一顯示器或一網路裝置。
[0004]中央處理器105、暫存記憶體110、長駐記憶體100及輸入/輸出裝置115連接一系統匯流排120。系統匯流排120用以提供在中央處理器105、暫存記憶體110、長駐記憶體100及輸入/輸出裝置115間所通信的必要資料,且進行資料規格化及資料變換。在長駐記憶體100的例子中,系統匯流排120所提供的通信規格可為規格或其他上述所列出的其他規格。長駐記憶體100配置有數個邏輯位址及設置有“I八規格界面,“I八規格界面進行提取及儲存的資料信息及控制信息也可通過中央處理器105處理資料及程序指令而獲得。
[0005]由固態硬碟所構建的長駐記憶體100其具有一控制器125,該控制器是將該邏輯位址解碼成一實體位址及一控制信息,以判斷是否從反及閘快閃陣列130中提取資料,或者,將資料儲存于反及閘快閃陣列130中。反及閘快閃陣列130包括數個非揮發性快閃隨機存取記憶體芯片,該記憶體芯片切分成數個區塊,例如:16(}化丨記憶體芯片切分成8192區塊。再者,每一區塊進一步細分為數個頁面,例如:單階層記憶核心芯片中每個區塊包括有64個頁面或多階層記憶核心芯片中包括有128個頁面。一反及閘快閃記憶體芯片結構不允許以位元組為基礎進行一位元組的讀寫,只能讀寫一頁面(通常為41(8)。此外,一個已經寫入的頁面是不能覆寫,其只能對于已抹除的頁面進行寫入的動作,并且每次抹除的最小單位為1個區塊、64個頁面或128個頁面。再者,不同單位尺寸的讀取(例如:1個頁面)及抹除(例如:64/128個頁面)會使得快閃隨機存取記憶體芯片不易管理,而且在寫入資料的前必須將舊區塊的資料進行復制及抹除,這意味著隨意寫入小量區塊資料其寫入速度將相當緩慢。一邏輯實體轉譯表位在快閃記憶體中,每當資料寫入時,邏輯實體轉譯表將進行轉變。
[0006]請參閱圖1比為現有快閃儲存系統中長駐記憶體(330)100的邏輯位址的結構示意圖。如圖所示,一非揮發性快閃隨機存取記憶體裝置150,其切分成8192個區塊(810(^)155,各區塊155切分成64個頁面⑴叫一)160,各頁面160切分成8個區段(36(:1:010 165,各區段165切分成512個位元組化”⑶)。區段165通常定義為最小的單位,且在區段165上額外增加一 2(1:錯誤更正位元167。每一頁面160將相等于41( 8^68(51287^68X8 區段)。
[0007]以消費者為導向的快閃儲存卡對于價格非常敏感,因此,快閃儲存卡的控制器中通常只有一個最小數量的外部單芯片元件,并不會額外增設外部隨機存取記憶體,且快閃儲存卡的控制器內部所預設的隨機存取記憶體其容量非常有限。為了節省隨機存取記憶體的儲存空間,現今的控制器技術是采用區塊為導向進行記憶體管理,這意味著邏輯實體轉譯表的每一項目為一區塊號碼。一區塊位址包括有大量資料,例如:256?或5121^,當資料連續地寫入于隨機存取記憶體時,其邏輯實體轉譯表會改變緩慢的。
[0008]請參閱圖1(3,為現有快閃儲存系統中長駐記憶體(330) 100讀取及寫入的操作示意圖。如圖所示,一位址信號200輸入于一實體位址解碼電路205,以解碼出一實體位址250。實體位址使用23個位元來表示,較低位階的3個位元(0..2)用以指向頁面中的區段201,較高階級的6個位元(3..8)用以指向區塊中的頁面202,下一較高階級的13個位元(9..21)用以指向區塊203,而最高階級的位元(22)用以指向芯片位置204。
[0009]在這例子中,非揮發性快閃隨機存取記憶體陣列裝置235包括有至少兩個非揮發性快閃隨機存取記憶體芯片240/245。實體位址解碼電路205產生一實體位址250,該實體位址250用以辨別在記憶體芯片240/245中的區塊242/247是進行讀取資料220或寫入資料 220。
[0010]一控制信號210用以提供編碼的控制指示,其傳送至控制邏輯器215以產生一陣列控制信號270,非揮發性快閃隨機存取記憶體陣列裝置235在根據陣列控制信號270讀取資料或寫入資料至記憶體芯片240/245。資料220用以提供最新區段資料222,其從非揮發性快閃隨機存取記憶體陣列裝置235讀取或寫入至非揮發性快閃隨機存取記憶體陣列裝置235。資料220保存在一頁面緩沖器225中,直到資料220被一外部主機電路所讀取或寫入至非揮發性快閃隨機存取記憶體陣列裝置235為止。資料220通過一資料匯流排260傳輸于頁面緩沖器225與非揮發性快閃隨機存取記憶體陣列裝置235間。
[0011]就先前技術而言,8^1^界面可對于一磁性硬碟或一光電硬碟進行區段讀取或寫入,為了相容于磁性硬碟或光電硬碟,固態硬碟操作于區段層級時也必須能夠與界面進行通信。承上圖化所示,一更新的的信號區段具有一邏輯區塊位址(⑶八)51200。區段201及頁面202所對應的較低階級位元(0..8)其相同于邏輯及實體位址,并代表一區塊203內部的區段位置。高階級位元(9..22)的邏輯位址203/204為進入邏輯實體轉譯表230的索引值。邏輯實體轉譯表230中有許多的項目232為區塊。在每一項目232中,最高階級位元用以指示記憶體芯片240/245進行資料讀取、寫入或抹除,而項目232的低階級位元用以指示其中一個記憶體芯片240/245的實體區塊號碼。
[0012]記憶體芯片240中區塊(100) 242用以取代記憶體芯片245中該抹除資料的區塊(200) 247,并且區塊(200) 247從外部電路接收新的區段資料222。再者,區塊(100) 242中全部其他的區段也可復制舊的區塊(100)242資料,該復制操作的動作也可稱為區塊的重組。
[0013]為了達成資料更新的目的,位址信號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中的資料。
[0014]如上述,以區塊為基礎的管理,當整個區塊以新資料覆寫時,其連續的操作非常快速。但隨機的寫入作業將會依再結合區塊的數量而變慢。目前,高容量固態硬碟(330)必須與便宜很多的機械式硬碟¢00)做比較。為了提高競爭力,固態硬碟必須具有比機械式硬碟高出許多的讀寫速率,尤其是在隨機寫入方面。因此,相對于控制器的價格,高速讀寫為更重要的問題。此類型的控制器通常具有一較大的外部隨機存取記憶體,借以有效提高速率。對于新硬體架構的快閃隨機存取記憶體陣列裝置235,較佳的內部管理方法與電路才有利于效能的提升。
[0015]1222 11-8118801:10118 011 001181111161~期刊 2002 年 5 月號 7()1.: 48 第366-375頁系統具空間效率的快閃轉譯層》描述一稱為快閃轉譯層(打狀匕11-8118181:1011 ^1)的中間軟體層,用以于快閃記憶體中將主機系統的邏輯位址重新指向至實體位址。快閃轉譯層結合頁面寫入與區塊抹除位址轉換的粒度。較大粒度的位址轉換可降低維持轉換資訊的資源,較細粒度的位址轉換可提高小量寫入的管理效率。
[0016]美國專利…5,404,485提供一具有虛擬映射系統的快閃記憶體,可允許資料被連續寫入未寫入的實體位址。該虛擬記憶體地圖將快閃記憶體的實體位址關聯起來,以便于追蹤資料在記憶體中的位置。
[0017]美國專利…5,963,983提供一具有工作記憶的記憶體裝置,用以儲存邏輯實體位址轉換資訊。該半導體記憶裝置被定位為預設區段單元。該記憶裝置具有可抹寫的非揮發性記憶體資料儲存器。一連接至主機系統的界面可接收一存取要求。該揮發性工作記憶體儲存非揮發性記憶體的頁面位址表,用以轉換需求的邏輯區段位址至該非揮發性實體記憶體空間的一實體區段位址。該揮發性記憶體尚儲存一第二表格,記錄各區塊的頁面的位址,用以轉換存取要求中的一邏輯頁面位址至該非揮發性記憶體的實體頁面位址。一第二存取控制裝置參考該第二表格以取得一邏輯區段位址所對應的實體頁面位址。
[0018]美國專利6,591,328提供一非揮發性記憶體,具有一儲存位址控制表,該表格包含有邏輯位址與實體位址。該邏輯實體位址控制表控制資料在非揮發性記憶體中離散儲存的位址。該邏輯實體位址控制表由數個區塊所組成,各區塊分別做為一資料刪除單元,另包含有具有固定長度的相鄰頁面,分別做為一讀寫單元。一運算域資料區塊包含有運算域識別資料,用以指示儲存于運算域資料區塊中的資料。該邏輯實體控制表區塊位于非揮發性記憶體中,包含有控制表識別資料,用以指示經排序的控制表資料。
[0019]美國專利…6,598,115提供一半導體儲存裝置,包含有數個非揮發性快閃記憶體,并使用邏輯實體區段轉換。一控制器將區塊資料的邏輯區段數轉換為非揮發性半導體記憶體區域的實體區段數,其中該區塊資料為寫入資料。
[0020]美國專利…7,386,655提供一非揮發性記憶體的高速暫存區(^以化卜即山與更新區塊的索引方法。更新資料是可依一預設條件選擇記錄于一更新區塊或一高速暫存區塊中。高速暫存區塊用以緩沖最終要儲存于更新區塊的更新資料。
[0021]美國專利…7,386,655提供一可存取主機資料的快閃記憶體管理系統。該系統包含有記憶體的實體單元與虛擬單元及各虛擬單元至一或多個實體單元的映射機制。
[0022]美國專利申請案…2006/0069852提供一儲存于快閃記憶體裝置的資料的可用區段管理器。一快閃驅動器利用邏輯實體區段映射追蹤儲存于一快閃記憶體的資料。該映射是以一資料結構儲存,并允許資料寫入快閃記憶媒體的下一個可用實體區段。由于無需先進行抹除程序,故寫入程序可快速完成。以資料結構儲存的邏輯實體區段映射被復制于該快閃記憶媒體中。若發生電源中斷的悲劇,該邏輯實體區段映射可借助掃描快閃記憶媒體中的復制映射而快速重建。
【發明內容】
[0023]本發明提供一種以頁面為基礎進行一非揮發性隨機存取記憶體陣列裝置的管理方法及其電路。
[0024]本發明尚提供一種非揮發性隨機存取記憶體陣列裝置的耗損平衡方法及其裝置。
[0025]為了達到上述目的,本發明提供一種以頁面為基礎對于一快閃儲存系統進行讀取、寫入及區塊抹除的記憶體管理電路,記憶體管理電路包括有一管理處理器及一頁面緩沖器,頁面緩沖器用以管理一快取及一邏輯實體轉譯表;管理處理器與在快閃儲存系統中一非揮發性記憶體陣列裝置進行通信,用以提供一控制信號,以在非揮發性記憶體陣列裝置中對于所選擇的頁面進行程序化、抹除及讀取動作,另,頁面緩沖器與非揮發性記憶體陣列裝置及管理處理器進行通信,頁面緩沖器切分成數個頁面區段,各頁面區段與快閃儲存系統的各頁面具有相等的尺寸,各頁面區段暫存頁面資料,并根據控制信號以決定從非揮發性記憶體陣列裝置讀取頁面資料或傳送頁面資料至非揮發性記憶體陣列裝置。邏輯實體轉譯表,接收一需求的邏輯頁面位址,轉換邏輯頁面位址為一實體頁面位址,與管理處理器進行通信并將實體頁面位址傳送至管理處理器,以確認非揮發性記憶體陣列裝置中一需求頁面的一實體位置,再者,邏輯實體轉譯表包括有一快取旗標表,其用以確認目前頁面緩沖器是否有需求的邏輯頁面位址。
[0026]又,記憶體管理電路尚包括有一輸入/輸出轉接器,其連接在一外部端口、次區塊緩沖器及管理處理器間,用以接收一邏輯位址、控制信號及一被通信規格所編碼的區段資料,轉換邏輯位址、控制信號及被通信規格所編碼的區段資料成非揮發性記憶體陣列裝置可接受的規格。
[0027]又,記憶體管理電路尚包括有一實體位址解碼器,與輸入/輸出轉接器及邏輯實體轉譯表進行通信,從輸入/輸出轉接器接收邏輯位址,轉送邏輯位址至邏輯實體轉譯表,從邏輯實體轉譯表接收實體位址,與管理處理器進行溝通,以確認一需求的邏輯次區塊資料存在于頁面緩沖器或非揮發性記憶體陣列裝置中。
[0028]又,記憶體管理電路尚包括有一頁面緩沖器快取表,與管理處理器進行通信,頁面緩沖器快取表包括有一實體次區塊號碼,其用以確認在非揮發性記憶體陣列裝置中的一實體位置,實體位置與在頁面緩沖器中的一頁面位置相關聯,一快取類型項目用以標示一快取類型且被實體位置所占用,一狀態項目根據一有效狀態分類頁面的區段資料,快取形式包括有一讀取快取、一串流快取、一寫入快取及一空閑列表,空閑列表用以表示一頁面緩沖器為抹除及可使用狀態的列表。
[0029]又,記憶體管理電路尚包括有一最近最少使用表,最近最少使用表包括有數個連接指標,連接指標用以決定一最近最少使用的頁面資料存于頁面緩沖器中。各快取形式(讀取快取、串流快取、寫入快取及空閑列表)同樣包括有數個連接指標,其連接指標用以決定最近最少使用表的資料分配到哪個快取。頁面緩沖器通過管理處理器執行一收回程序,最近最少使用表的頁面資料從頁面緩沖器中收回且寫入所指定的非揮發性記憶體陣列裝置的頁面中,在頁面緩沖器中的頁面位置附加至頁面緩沖器快取表的空閑列表內。
[0030]又,記憶體管理電路尚包括有一無效次區塊表及一實體邏輯表,無效次區塊表用以指示非揮發性記憶體陣列裝置中所選擇的頁面為有效的,而實體邏輯表用以映射非揮發性記憶體陣列裝置的實體位置至邏輯位置,實體邏輯表中的一不合法的頁面號碼用以指示實體位置在實體邏輯表中為已抹除或無效的。
[0031]又,記憶體管理電路尚包括有一抹除總數表及一實體區塊連接表,抹除總數表對于非揮發性記憶體陣列裝置中的各區塊記錄一抹除總數,而實體區塊連接表包括有一包含數個指標的連接列表,各指標指向非揮發性記憶體陣列裝置中的各區塊,再者,連接列表包括有一錨定指標,其對于在非揮發性記憶體陣列裝置中的各區塊定義出無效頁面號碼。當管理處理器對于非揮發性記憶體陣列裝置執行一垃圾收集程序,錨定指標用以指出非揮發性記憶體陣列裝置的該區塊中具有該最大無效號碼頁面的區塊,進而允許具有最大無效號碼頁面的區塊選擇進行抹除的動作。
[0032]又,記憶體管理電路尚可執行一損耗平衡程序,在一損耗平衡程序中,一抹除區塊的抹除總數比較于一滑動視窗的抹除總數,若抹除區塊的抹除總數超過滑動視窗的抹除總數,選擇另一具有最低抹除總數的區塊,且具有最低抹除總數的區塊中全部有效的頁面復制至抹除區塊的低階級頁面中,然后,具有最低抹除總數的區塊將進行抹除動作,而具有最低抹除總數的區塊成為一新的可寫入區塊,且其抹除總數將會增加。
【專利附圖】
【附圖說明】
[0033]圖:為現有電腦系統的區塊示意圖。
[0034]圖化:為現有快閃儲存系統中長駐記憶體(330) 100的邏輯位址的結構示意圖。
[0035]圖化:為現有快閃儲存系統中長駐記憶體(330) 100讀取及寫入的操作示意圖。
[0036]圖2:為本發明以頁面為基礎對于記憶體進行管理的一固態硬碟的資料儲存系統一較佳實施例的區塊示意圖。
[0037]圖3:為本發明以頁面為基礎對于記憶體進行管理的一固態硬碟的資料儲存系統又一實施例的區塊示意圖。
[0038]圖4:為本發明固態硬碟讀取及寫入一實施例的操作示意圖。
[0039]圖5:為本發明以頁面為基礎的記憶體管理的表格式意圖。
[0040]圖6:本發明以頁面為基礎對于記憶體進行管理的垃圾收集中各表格的示意圖。
[0041]圖7:為本發明以頁面為基礎對于記憶體進行管理的耗損平衡中各表格的示意圖。
[0042]圖8:為本發明以頁面為基礎管理非揮發性隨機存取記憶體陣列裝置進行讀取資料的步驟流程圖。
[0043]圖9:為本發明以頁面為基礎管理非揮發性快閃記憶體寫入資料的步驟流程圖。
[0044]圖103、106:為本發明以頁面為基礎管理頁面緩沖器的頁面收回的流程圖。
[0045]圖11:為本發明以頁面為基礎管理的非揮發性快閃隨機存取記憶體陣列裝置的垃圾回收機制的流程圖。
[0046]圖12^12112^:為本發明以頁面為基礎管理非揮發性快閃隨機存取記憶體陣列裝置的一耗損平衡程序的步驟流程圖。
【具體實施方式】
[0047]本發明的以頁面為基礎的管理架構,用以對位址進行解碼,并索引至邏輯實體轉換表及區塊內的頁碼。若頁面位于頁面或必須從非揮發性快閃隨機存取記憶體陣列裝置收回,邏輯實體轉換表包括一快取設置位元。
[0048]若頁面不在頁面緩沖器內,則由非揮發性快閃隨機存取記憶體陣列裝置取出。區段被指定為低順序的位址,區段會被讀取或寫入頁面緩沖器。若頁面緩沖器內不具有足夠的空閑頁面時,將會進行收回程序,并由頁面緩沖器收回至少一最近被使用的頁面。若頁面為有效且與儲存在非揮發性快閃隨機存取記憶體陣列裝置的頁面一致,則頁面緩沖器的頁面空間會被得知,且頁面將會被從非揮發性快閃隨機存取記憶體陣列裝置中取出。區段可被適當的被讀取或寫入。當頁面內的區塊為無效時,頁面緩沖器的無效區段將會是新的,并與非揮發性快閃隨機存取記憶體陣列裝置的舊的區段相配。頁面可被重新寫入非揮發性快閃隨機存取記憶體陣列裝置,且位于頁面緩沖器內的位置將會成為空閑頁面。
[0049]頁面緩沖器內最新的空閑頁面會被指派至位址頁面,且頁面由非揮發性快閃隨機存取記憶體陣列裝置中被讀取,并由頁面緩沖器讀取區段,或將區段寫入頁面緩沖器。
[0050]抹除區塊列表會被維持,且當不具有足夠的抹除區塊可允許非揮發性快閃隨機存取記憶體陣列裝置進行操作時,則會進行一垃圾收回的動作以抹除無效的區塊。當區快被抹除之后,將會進行抹除數量及門檻的比對。若超過門檻,則具有最低抹除次數的區塊會被復制至較新的抹除區快,而具有最低抹除次數的區塊會被抹除并成為一新的備用區塊。
[0051]首先,請參閱圖2,為本發明以頁面為基礎對于記憶體進行管理的一固態硬碟的資料儲存系統一較佳實施例的區塊示意圖。如圖所示,本發明固態硬碟的資料儲存系統300以頁面為基礎進行記憶體管理。非揮發性隨機存取記憶體陣列裝置375包括有數個非揮發性隨機存取記憶體裝置376^1...37611。各非揮發性隨機存取記憶體裝置376^1...37611切分成數個區塊3771..37711,各區塊377^1...377=切分成數個頁面37?...37811,而各頁面3788...37811切分成數個區段379^1...37如。本發明實施例中,每一芯片具有8192個區塊,每一區塊具有64個頁面,每一頁面具有8個區段。在一 128(}位元的固態硬碟中,系采用8個166非揮發性隨機存取記憶體陣列裝置375,并具有64個非揮發性隨機存取記憶體裝置376?...37611。
[0052]一輸入/輸出轉接器305接收一位址信號310、接收及傳送一資料信號315及接收一控制信號320,雖然,這些信號顯示為個別信號,然,在“從界面中實際上可以連續發送及接收這些信號。輸入/輸出轉接器305調節及格式化這些信號,以產生一邏輯位址信號325并傳送至實體位址解碼器345及管理處理器340。資料信號330在調節及格式化后,將傳送于實體位址解碼器345及管理處理器340間。輸入/輸出轉接器305同時可調節及格式化控制碼335,后續,以將控制碼335傳送至管理處理器340。
[0053]實體位址解碼器345解碼一邏輯位址信號325,以產生一進入于邏輯實體位址轉譯表355的索引值。邏輯位址信號325索引指向一實際實體位置,該實際實體位置使用于非揮發性隨機存取記憶體陣列裝置375的讀取或寫入程序。管理處理器340解碼一控制碼335,以產生必要的控制信號控制實體位址解碼器345及頁面緩沖器350,以及產生一陣列控制時序信號370并傳送至非揮發性隨機存取記憶體陣列裝置375
管理處理器340使用一實體邏輯位址表380、一頁面緩沖器快取表382、一無效頁面表384、一抹除總數表386、一耗損平均表387、一缺陷區塊表388及一實體區塊連接表390,借以管理非揮發性隨機存取記憶體陣列裝置375及頁面緩沖器350間資料的一致性。
[0054]實體邏輯位址表380通過一實體頁面號碼進行索引,實體邏輯位址表380對于邏輯實體位址轉譯表355執行一反函數,且管理處理器340執行一垃圾收回程序及一耗損平衡程序時將會使用到該實體邏輯位址表380,其細節容后討論。本發明中,將保留兩個較高位址數字(01打打打打、01打打打?一),以鑒別該實體頁面是不是與一邏輯頁面號碼相關聯,再者,數字打打打打)意味著該實體頁面進行抹除,而數字(()1打打打?6)意味著該實體頁面為無效的,再者,實體頁面號碼并不會寫入邏輯頁面中。非揮發性隨機存取記憶體陣列裝置375低階格式化之后,將產生初始化的邏輯實體位址轉譯表355。若讀取一頁面,管理處理器340在頁面緩沖器350中產生0x8888數字,打打打打數字為在非揮發性隨機存取記憶體陣列裝置375中一抹除頁面3783,3786,…,378=的資料內容。
[0055]有了這些特殊數字(如打打打打、打打打?一),除了恢復區塊內容之外,并不需要一無效的頁面表。當一區塊進行抹除時,在該實體邏輯位址表380中的區塊的全部頁面將具有一打打打打數字。為了在一區塊中判定出無效頁面的號碼,在該實體邏輯位址表380中,是將具有0過打打打6數字的號碼頁面進行計數。實體邏輯位址表380對于所有抹除區塊的全部頁面進行初始化,作動的寫入區塊及缺陷區塊具有他打打打打數字,而其余頁面具有打打打6數字。然后,邏輯實體位址轉譯表355在掃描之后,也可擺放于實體邏輯位址表380中實體頁面的邏輯位置。
[0056]如圖5所示,頁面緩沖器快取表382與頁面緩沖器350具有相同的項目號碼。頁面緩沖器快取表382進一步切分成一快取頁面表及一最近最少使用連接表。每個頁面緩沖器快取表382項目將對應至一頁面緩沖器350并且描述各頁面緩沖器350的快取狀態。全部頁面緩沖器快取表382的項目是連接四個快取:一讀取快取、一寫入快取、一串流快取及一最近最少使用次序的空閑列表,且各頁面緩沖器350分別指定于一對應的快取。再者,快取頁面項目鑒別所對應的頁面緩沖器350為臟掉的、不臟或未使用過。假如一快取現存位元被設定于快取頁面表425中,即可利用邏輯頁面號碼索引該快取頁面緩沖器快取表382,反之,快取現存位元未設定于快取頁面表425中,將無法通過邏輯頁面號碼得到頁面緩沖器350的位置。
[0057]頁面緩沖器快取表382具有一可用以指向頁面快閃位置的項目。從頁面緩沖器350收回頁面以及將收回頁面寫至頁面緩沖器350的另一位置之后,無效的頁面資訊也必須進行相對的設定。接著,從非揮發性隨機存取記憶體陣列裝置375的頁面位置進行資料讀取,以避免頁面緩沖器350中并非全部區段皆為有效的情況下,而造成頁面資料回收不全。
[0058]經由頁面緩沖器350的實體頁面號碼42如,…,429?索引該快取頁面表425,快取頁面表425包括有數個頁面3783,3786,…,378=的實體位址及索引位址,頁面3783,3786,…,37811的實體位址資料是儲存在頁面緩沖器350中。一快取模式是指定頁面是否在四種快取形式(如一空閑列表、一讀取快取、一串流快取及一寫入快取)中采用其中一者。快取頁面表425尚包括一有效區段位元映像428,其用以提供一頁面的區段無效性指
0
[0059]承上,讀取快取包括數個不臟(或稱為干凈)的頁面。當儲存在頁面緩沖器350及非揮發性隨機存取記憶體陣列裝置375中的資料是相同的,則快取內容可視為不臟,貝0存放于頁面緩沖器350的資料必須寫回非揮發性隨機存取記憶體陣列裝置375中,并且從該讀取快取中收回頁面緩沖器350內所存放的資料,從非揮發性隨機存取記憶體陣列裝置375中所讀取的頁面3783,3786,…,378=資料都必須通過讀取快取。
[0060]串流快取包括有數個臟掉頁面,由于頁面緩沖器350相較于非揮發性隨機存取記憶體陣列裝置375的頁面3783,3786,…,378=是具有較新的資訊,臟掉頁面必須寫回非揮發性隨機存取記憶體陣列裝置375進行收回。再者,從外部主機電路所接收的全部資料都必須通過串流快取。假如一頁面位置已經在讀取快取中,則原本存放于讀取快取中的頁面資料將進行刪除并移動至寫入快取中,或者,在串流快取中的一頁面若被觸動兩次讀取或寫入指令,則該頁面將會提升至寫入快取。
[0061]又,寫入快取包括數個臟掉頁面,那些臟掉頁面最少被觸動兩次,寫入快取有效地切分成兩個部分,再者,在本發明中,串流快取及寫入快取將可提供一更有效的收回策略。串流快取只有對于頁面寫入一次,而寫入快取對于頁面最少寫入一次以上(例如:檔案分配表是經常更新的)。為了避免因為只寫入一次資料而令全部寫入快取無效,在串流快取中的每一頁面將得到一個機會提升至寫入快取,并且,原本存放于串流快取中的資料假若仍繼續保留于串流快取中,則這些資料將可容易被收回的。
[0062]又,空閑列表提供一空閑的頁面緩沖器350池。每當一讀取/寫入指令從外部主機電路傳送至非揮發性隨機存取記憶體陣列裝置375的一頁面位置,然,在頁面緩沖快取中找不到該讀取/寫入指令,此時將需要一新的快取項目。為了快速反應,管理處理器340試圖保持該空閑的頁面緩沖器350池的大小。假如空閑的頁面緩沖器350號碼太低,收回程序將開始運行并產生新的空閑的頁面緩沖器350。
[0063]讀取快取、寫入快取、串流快取及空閑列表間的記憶區間大小也可不斷地改變,例如:根據實際工作量、讀寫指令的比例,寫入快取的記憶區間也可因此增加,而消耗或占用原本讀取快取的記憶區間。
[0064]最近最少使用頁面連接表430提供一連接項目機制,該連接項目機制允許一表格的搜索,以在頁面緩沖器350中找到一個不是最近存取的頁面。一頁面收回程序使用于頁面緩沖器350上,以在頁面緩沖器350中產生空閑空間。該頁面收回程序,一垃圾收集程序及一損耗平衡程序用以寫入頁面資料至非揮發性隨機存取記憶體陣列裝置375中,以及對于非揮發性隨機存取記憶體陣列裝置375進行區塊的抹除。隨著收回程序的進行,以致頁面資料可寫入至非揮發性隨機存取記憶體陣列裝置375中,再者,若消耗太多抹除頁面或及已抹除區塊的數量太低,該垃圾收集程序將會因此而進行觸發,垃圾收集程序將可產生新的抹除區塊。次外,該垃圾收集程序包括有兩個步驟程序:通過復制所有有效的頁面并準備一欲抹除區塊,以及是將該欲抹除區塊進行抹除。在區塊抹除之后,一區塊抹除總數將會增加,假如區塊抹除總數太高,該區塊將與另一具有較低抹除總數的區塊進行資料置換,在此,該具有較低抹除總數的區塊其資料是較少被進行抹除的動作。
[0065]無效頁面表384對于一個區塊的每一頁面提供一個狀態位元(如每一區塊具有64個頁面,因此每一區塊將會有64個位元)。當無效頁面表384對于其中一區塊的一頁面給予邏輯(1)的狀態位元,則代表這頁面是無效的。再者,無效頁面會被淘汰的,但也不會因此消失而不在使用,它將會被一新頁面所取代。無效頁面表384對于一恢復演算法是必須要的,在此,假如實體邏輯位址表380(最后電源斷電時寫入)無法在電源開啟狀態下進行讀取,它可通過再次讀取全部的頁面而重建出來。邏輯頁面號碼儲存在每一頁面的增加區域中,該邏輯頁面號碼為一反向指標,若淘汰的頁面并未抹除仍處在可使用的狀態,反向指標將產生不是唯一性的問題。無效頁面表384容易儲存于快閃記憶體中,其用以定義頁面的有效性,再者,無效頁面表384主要作用只是便利于記憶體內部的其他目的可采用的表格,因此,在一恢復演算法的進行程序中,無效頁面表384并不需要的,其可以省略。
[0066]抹除總數表386使用在一耗損平衡程序中,用以監控全部區塊的抹除總數。一滑動視窗的抹除總數為一最小抹除總數加上一區塊抹除總數的門檻值,而最小抹除總數為全部區塊中實際最低的抹除總數。
[0067]在非揮發性隨機存取記憶體陣列裝置375中對于其中一區塊進行抹除動作之后,該損耗平衡程序將接著進行,以在抹除總數表380中對于該抹除區塊增加抹除總數。假如區塊進行抹除而成為最新的抹除區塊,其抹除總數仍足夠大的,是可將具有較小抹除總數的區塊中全部有效的頁面復制到此最新抹除區塊中,然后,在將較小抹除總數的區塊進行抹除。再者,較小抹除總數的區塊中無效的頁面將不會復制到該最新抹除區塊中,該較小抹除總數的區塊內的資料將復制至該最新抹除區塊的已抹除的對應頁面,而該最新抹除區塊并不會指定為寫入區塊且會記錄到耗損平衡表387中,以表明已抹除的頁面是存在于該最新抹除區塊中。
[0068]缺陷區塊表388對于非揮發性隨機存取記憶體陣列裝置375中的各區塊分別使用一個位元進行缺陷表示,以定義區塊為制造中產生缺陷或者運用時成為缺陷而無法使用。
[0069]實體區塊連接表390為一具有項目的雙連接列表,其用以表示非揮發性隨機存取記憶體陣列裝置375中每一區塊的錨點項目號碼是相等于一區塊中的頁面號碼(例如:每一區塊具有64個頁面,因此,錨點項目號碼可為64)。再者,實體區塊連接表390進一步增加兩錨點項目,其中一錨點項目用以表示已抹除的區塊,另一錨點項目用以指示區塊將候補進行損耗平衡的程序。區塊項目指向錨點項目借以指出區塊中無效頁面的總數。錨點項目具有一可指回區塊的列表,且錨點項目可根據每一區塊中無效頁面的號碼數量而相對地具有多數個項目。再者,每次區塊額外得到一無效頁面,將可在實體邏輯位址表380中相對設定一個位元。本發明中,區塊也可解開對于一特定錨點的連接,并進一步連接進入下一個更高錨點的連接。實體區塊連接表390提供該垃圾收集程序可以快速找到一具有最高無效頁面數量的區塊。本發明實際操作時,在區塊進行抹除而產生一空閑區塊以提供非揮發性隨機存取記憶體陣列裝置375進行頁面寫入之前,會盡量減少復制頁面的數量,以避免空閑區塊不足產生頁面復制失敗的情況發生。
[0070]請參閱圖3,為本發明以頁面為基礎對于記憶體進行管理的一固態硬碟的資料儲存系統又一實施例的區塊示意圖。如圖所示,除了圖2中的實體位址解碼器345合并于管理處理器340當中之外,圖3實施例的功能構造是與圖2完全相同。邏輯位址325、資料信號330及控制碼335應用于管理處理器340。管理處理器340包括一管理處理控制器342及一韌體記憶體344。管理處理控制器342為一電腦處理器,其執行一電腦程序程序,以進行非揮發性隨機存取記憶體陣列裝置375的管理。韌體記憶體344為一電腦可讀取儲存媒體,其可用以保存一電腦程序碼,當該電腦程序碼運行時,將可執行上述的電腦程序程序以對于非揮發性隨機存取記憶體陣列裝置375進行記憶管理。動態隨機存取記憶體陣列裝置395提供儲存空間于頁面緩沖器350、邏輯實體轉譯表355、頁面緩沖器快取表382、無效頁面表 384、抹除總數表 386、損耗平衡表 0^6211*16^61 ^^16)387 ^^^8^^ 388。
[0071]管理處理控制器342產生所需的位址信號396及控制時序信號397,以儲存必要資料至動態隨機存取記憶體陣列裝置395,或從動態隨機存取記憶體陣列裝置395提取必要資料。該必要資料實際上可為讀取或寫入到頁面緩沖器350的資料信號、非揮發性隨機存取記憶體陣列裝置375的實體位址、或者是由實體邏輯轉譯表380、缺陷區塊表388、損耗平衡表387、以及390所得的轉譯表資訊(1^1316 111^01-11181:1011)。
[0072]請參閱圖4,為本發明固態硬碟讀取及寫入一實施例的操作示意圖,該固態硬碟以頁面為基礎進行記憶體管理。如圖所示,邏輯位址信號325輸入于一實體位址解碼器345。該實體位址使用23個位元來表示,較低位階的3個位元(0…2)用以指向頁面內的區段326,接下來的較高階級的6個位元(3..8)用以指向區塊內的頁面327,下一較高階級13個位元(9…21)用以指向區塊328,最高階級位元(22)用以指向芯片位置329。
[0073]管理處理器340接收控制碼335,以要求資料由非揮發性隨機存取記憶體陣列裝置375讀取或寫入。實體位址解碼器345將邏輯位址325的最高有效位元(3,…,22)傳送至邏輯實體轉譯表355,以用于邏輯實體轉譯表355內的索引值357。位置356儲存頁面的實體位址(10(0。假如邏輯實體轉譯表355的位置356指示資料儲存至快取記憶體(⑶也^山,該位置即包含頁面緩沖器350內的頁面位置。管理處理器340檢查該儲存至快取記憶體的快取頁面轉譯表425以核對頁面位置的所有區段(此&沉)為有效的。如果區段無效的,由非揮發性隨機存取記憶體陣列裝置375讀取至頁面位置的無效區段的資料以及儲存至快取相關頁面緩沖快取轉譯表420的有效位元都會設定為有效。如果邏輯實體轉譯表355的位置356指示顯示資料未儲存至快取記憶體,該位置即包括非揮發性隨機存取記憶體陣列裝置375內的實際頁面位置。
[0074]假如邏輯實體轉譯表355的位置356指示資料已儲存至快取記憶體,管理處理器340即指示頁面緩沖器350將資料信號330傳送至圖2中的輸入/輸出轉接器305或由圖2中的輸入/輸出轉接器305傳送出。假如邏輯實體轉譯表355的位置356指示資料未儲存至快取記憶體,管理處理器340會指示實體位址解碼器345從邏輯實體轉譯表355傳送位置356的內容,以作為傳送至非揮發性隨機存取記憶體陣列裝置375的實體位址信號360。管理處理器340也傳送陣列控制信號370到非揮發性隨機存取記憶體陣列裝置375。位置(頁面100)的頁面3781傳送到頁面緩沖器350。管理處理器340指示實體位址解碼器345將頁面位置寫入頁面緩沖器350內的邏輯實體轉譯表355的位置356。再者,管理處理器340另外會設定相關頁面緩沖快取轉譯表420的有效位元。
[0075]管理處理器340從實體位址解碼器345擷取區段位址326并將區段位址326傳送至頁面緩沖器350。假如資料從非揮發性隨機存取記憶體陣列裝置375讀取,頁面緩沖器350即擷取區段位址326所指向的區段并且將其區段資料作為資料信號330進行傳送。假如資料要寫入,管理處理器340即指示頁面緩沖器350將新資料332寫入頁面位置。
[0076]接著在收回(價丨⑶丨如)程序中,頁面會從頁面緩沖器350中移除。管理處理器340在另一芯片3766內分派頁面位置378』的新頁面位址,作為資料的頁面的新位置。管理處理器340指示實體位址解碼器345將新實體位址376』(頁面100變為頁面524488)寫入位置356的邏輯實體轉譯表355,位置356由邏輯位址325的頁面位址部分(頁面327、區塊328、以及芯片位置329)指向。資料頁面從頁面緩沖器350寫入到378』(324488或3766的頁面20(0。接著舊位置3781 (第一芯片的位置100)進行標記,以在垃圾收集(職士叫6001160^10^)程序中進行消除(容后詳細解釋
[0077]請參閱圖5,為本發明以頁面為基礎的記憶體管理的表格式意圖。在當前的科技中,非揮發性隨機存取記憶體陣列裝置475可具有16(}記憶單元0611)或位元()311:8)的密度,相當于26位元組()35^68)或524,288個頁面(即陰)或8,192個區塊(13100^)。在本發明的一實施例中,每個非揮發性隨機存取記憶體陣列裝置475具有處位元組以及1、2、或4個儲存板的結構。每個儲存板的每個頁面合并于頁面緩沖器415的位置。例如,在具有處位元組以及2儲存板構造的非揮發性隨機存取記憶體陣列裝置475中,每個頁面緩沖器415內的位置416有81(位元組。本發明中的固態硬碟系統的結構的模擬顯示頁面緩沖器415加上所有其他表格的大小應該大致為非揮發性隨機存取記憶體陣列裝置375陣列的總共大小的0.1%。實際上,邏輯實體位址轉譯表400和實體邏輯位址轉譯表445是所有動態隨機存取記憶體最大的部分。因此,非揮發性隨機存取記憶體陣列裝置375的128(}位元組陣列應該具有128(}位元的0狀1。對每個非揮發性隨機存取記憶體陣列裝置475來說將會有約512個頁面。對非揮發性隨機存取記憶體陣列裝置475的整個陣列來說,這會轉換為具有約161位元組大小的頁面緩沖器415。
[0078]邏輯實體位址轉譯表400具有和固態硬碟的邏輯記憶空間一樣多的項目頁面(6111^7 1^86)^^ 4058, ---, 4051,…,40511。如圖4所示,邏輯實體位址轉譯表400通過頁面位址357進行索引。邏輯實體位址轉譯表400的每個項目位置4053,…,4051,…,405!!包括非揮發性隨機存取記憶體陣列裝置475內的實體頁面位置478或頁面緩沖器415的快取位置。快取旗標江1叫)410附加在每個項目位置4053,-,4051,…,405。中。快取旗標410標示出項目位置4053,…,4051,…,405=是否位于頁面緩沖器415的實體位置或在非揮發性隨機存取記憶體陣列裝置475中。
[0079]頁面緩沖器415對資料頁面提供暫時的快速存取,該資料頁面儲存在非揮發性隨機存取記憶體陣列裝置475中。資料由外部主機電路讀取或寫入頁面緩沖器415。非揮發性隨機存取記憶體陣列裝置475并非由外部主機電路直接存取。非揮發性隨機存取記憶體陣列裝置475具有一關聯性的頁面緩沖快取轉譯表420。頁面緩沖快取轉譯表420包括一具有項目位置42如,…,4291,…,42如的快取頁面轉譯表425,其對應至頁面緩沖器415內的每個項目位置4163,---, 4161,…,41611。快取頁面轉譯表425內的每個項目位置42如,…,4291,…,42如具有實體頁面位置426、一快取模式旗標427、以及一區段有效旗標428。實體頁面位置426提供儲存于頁面緩沖器415內的頁面的非揮發性隨機存取記憶體陣列裝置475內的實體位置。
[0080]快取模式旗標427指示頁面資料是否存放于頁面緩沖器415中,并且快取模式旗標427為讀取快取、串流快取、寫入快取、或空閑列表的其中之一號碼。如前述,讀取快取中的資料為從非揮發性隨機存取記憶體陣列裝置475所擷取的資料,其保持與非揮發性隨機存取記憶體陣列裝置475的頁面位置相同。寫入快取中的資料是寫入頁面位置416?…,4161,…,416=的外部資料,因此,在收回程序中直到資料寫回非揮發性隨機存取記憶體陣列裝置475前,不再和非揮發性隨機存取記憶體陣列裝置475的頁面位置相同。串流快取記憶體包括在收回程序中必須寫回快閃記憶體(¢13811)的臟掉的頁面¢£186),因為快取記憶體內的頁面緩沖器相較于快取記憶體頁面具有較新的資訊。空閑列表并非真的快取,而是頁面緩沖器415內未占據位置的列表,該空閑列表可以握有從頁面緩沖器415內所擷取的新頁面,或是新資料頁面從外部主機電路寫入至非揮發性隨機存取記憶體陣列裝置475。
[0081]區段有效旗號428利用一資料位元來指示每個頁面的每個區段是否為有效或無效。區段只在非揮發性隨機存取記憶體陣列裝置475內有效,并且如果需要,必須由非揮發性隨機存取記憶體陣列裝置475內擷取。區段有效旗號428內的位元數量取決于每個頁面內存在的區段數量。如同前述在本實施例中,系統定義為每頁具有8個區段,或是每個區段有效旗號428有8個位元。在某些實施例中,頁面可以定義為具有81(位元組(512位元組X”區段)或是每個區段有效旗號428具有16位元。在其他實施例中,區段和頁面也可以相等,區段有效旗號428可以不需要的。
[0082]另外,頁面緩沖快取轉譯表420包括有一最近最少使用連接表(16381: 1-606111:171186(1 0118111 ^^16)430。最近最少使用連接表430具有數個項目,各項目對應快取頁面轉譯表425的每個項目位置42如,…,4291,…,42如。最近最少使用連接表430具有連接佇列433/434。向前連接佇列433是由最年輕的項目到最舊的項目排序,相反的,向后連接佇列434由最舊的項目到最年輕的項目排序。另外,對每個連接佇列433/434來說最近最少使用連接表430具有4個錨點項目611廿7)4313,4316,4310, 431(1,432^,4326,4320, 432(1。這允許最近最少使用連接表430有4個佇列(叫一仙),讀取快取、串流快取、寫入快取、以及空閑清單分別在連接佇列433/434中。每個連接佇列433和434的錨點項目 4313,4316,4310, 431(1,432^, 4326,432。,432(1 是每個連接佇列 433/434 的這4個佇列的起始點。最近最少使用連接表430根據老化順序(#6)連接讀取快取、串流快取、以及寫入快取、仁列的所有項目。因為接續點(811(^68801^)和前置點(¢^6(16068801^)可立即獲得,這個雙重連接清單有效率地便利于連入/連出1110111:)程序。
[0083]最近最少使用連接表430的時間順序機制使得每次當碰到頁面緩沖器415內的位置時,最近最少使用連接表430內的項目移動到下一個向前清單(如果它還不在那里)的起始處。所以每個越靠近向前清單的起始處的項目將掉回一個項目。同樣地,向前清單的最后項目位置和向后清單的起始相同,并且標記最舊的最近最少使用項目。
[0084]假如一輸入位址有一邏輯位址,該邏輯位址指向邏輯實體位址轉譯表400的位置4051,且其內容會指向頁面位置5。位置4051的快取旗標410從頁面緩沖器415的位置4051而指示指向頁面位置5。位置5的頁面緩沖快取轉譯表420內的實體頁面位置426指向非揮發性隨機存取記憶體陣列裝置475內的實體頁面1000。在位置項目4291的頁面5的區段有效旗號428包括一數值(7),數值(7)表示在位置4161中,除3個最低階級區段外,其余其他全部區段都是無效的。這3個最低階級區段儲存于非揮發性隨機存取記憶體陣列裝置475中的實體頁面1000。
[0085]在固態硬碟的讀取和寫入資料中,不在頁面緩沖器415的頁面必須由快取模式旗標427從空閑列表中分配到一個頁面。如果頁面緩沖器415內的可用頁面數量低于門檻值,就會執行收回程序以移除最近最少使用頁面。最近最少使用頁面連接表430提供一種由頁面緩沖器415收回頁面的機制。如同前述,頁面緩沖位置4163,…,4161,…,416=的占據者可以分為讀取快取、串流快取、寫入快取、以及空閑列表的其中之一。
[0086]串流快取以及寫入快取內所有的頁面緩沖位置4163,…,4161,…,416=都是臟掉的并且在某個時間之后必須寫回非揮發性隨機存取記憶體陣列裝置475。因為寫入頁面緩沖器415所以頁面緩沖器415內的位置稱為臟掉。頁面緩沖器415的位置是寫入快取或是串流快取的成員。因為只是非揮發性隨機存取記憶體陣列裝置475的頁面位置的復制,所以讀取快取頁面不被當做是臟掉的。非臟掉的頁面會立即列于空閑列表。在插回可直接使用的空閑列表之前,臟掉的頁面必須寫回非揮發性隨機存取記憶體陣列裝置475的頁面位置。
[0087]在執行另一指令(讀取或寫入)時,從串流快取所找到的頁面緩沖位置4163,…,4161,…,416=會晉升到寫入快取。如果頁面緩沖位置4163,…,4161,…,416=需要被寫入并且已經在讀取快取中發現,它也會晉升到寫入快取。
[0088]每個快取都有一個已經定義的門檻值或是標準填滿率,其可以根據工作量而動態改變。當空閑清單小于門檻值之下時,收回程序會啟動以在頁面緩沖器415內提供可用頁面。在執行兩個步驟的收回時,收回程序選擇頁面緩沖位置4163,…,4161,…,41611,該兩個步驟包括利用計算到門檻值的實際填滿率的距離以選擇快取。由具有許多頁面緩沖位置4163,…,4161,…,416=的快取中找出其中最超過門檻值的快取,并且放開該頁面緩沖位置4163,…,4161,…,41611。由頁面緩沖器415要回收的頁面緩沖位置4163,…,4161,…,41611由最近最少使用連接表430選擇以找到快取內最舊的頁面緩沖位置416^,…,4161,…,41611。
[0089]最近最少使用連接表430與頁面緩沖快取轉譯表420及頁面緩沖器415平行操作。老化的頁面緩沖位置4163,…,4161,…,416=項目經由重新連接最近最少使用連接表430內的項目而完成。例如,如果選擇讀取快取作為具有從其填滿率門檻值算起有最大距離的快取,向前連接佇列433 (位置12)的向前錨點項目43匕指向向前方向以到達頁面緩沖器415的最年輕項目(位置0?。向后連接佇列434 (位置12)向后錨點項目4333指向向后方向到頁面緩沖器415的最老項目(位置4?。對讀取快取來說連接佇列433/434是相反順序:0,2,4以及4,2,0。每次參考每個老化的頁面緩沖位置4163,…,4161,…,41611時,它將變為最年輕的一個(將它解除連接并且重新插入在最新的之前即,在參考頁面緩沖位置4161!(位置4)時,向前以及向后連接佇列433/434會重新排序,使得每個佇列具有指向位置4的43匕,位置4依次指向位置0,位置0指向位置2。4328指向依次指向位置0的位置2,位置0指向位置4。最近最少使用連接表430的每個項目皆由在連接佇列433/434中移動其參考點在佇列中的一個位置而產生老化。
[0090]如前述,要收回并且稱為臟掉的頁面緩沖位置4163,…,4161,…,416=必須具有區段,該區段已經復制有頁面緩沖器415內的抹除頁面。非有效區段由非揮發性隨機存取記憶體陣列裝置475到頁面緩沖位置4163,…,4161,…,41611。接著復制完整頁面至非揮發性隨機存取記憶體陣列裝置475中已抹除的頁面。邏輯實體位址轉譯表400調整反應非揮發性隨機存取記憶體陣列裝置475內的新實體位置。非揮發性隨機存取記憶體陣列裝置475內的先前頁面現在標記為無效,如同之后所述,該先前頁面包括頁面緩沖位置4163,…,4161,…,416=內曾經為無效的區段。如果非揮發性隨機存取記憶體陣列裝置475的抹除頁面號碼低于一抹除頁面門檻值,便會觸發垃圾收集程序。
[0091]請參閱圖6,是本發明以頁面為基礎對于記憶體進行管理的垃圾收集中各表格的示意圖。為提高效能,非揮發性快閃隨機存取記憶體陣列裝置475在執行任何垃圾收集程序時,會同時選取一區塊進行抹除,以便于使用一快閃記憶體裝置的復制頁面命令。垃圾收集使用的區塊是由掃描實體區塊連接表450中的無效頁面錨點連接£11101101-
455而得。實體區塊連接表450分為一向前連接佇列451及一向后連接佇列452。雙向連接表(實體區塊連接表450中的向前連接佇列451與向后連接佇列452)可提供較佳的效能。因為前者與后者可立刻得知,故資料的擷取或插入很快。反之,使用簡單連接表則需從頭掃描以計算其前者。除了抹除總數表480需由抹除總數最低者開始之外,區塊連接并無方向性。垃圾收集使用的區塊,在搜尋無效頁面表435時會選用抹除總數最低的區塊。在垃圾收集的最后,該區塊將會被抹除。選取抹除總數最低的區塊可避免過度耗損。
[0092]具有實體區塊連接表450的快閃隨機存取記憶體陣列裝置475,其向前連接佇列451與向后連接佇列452中的第一個項目(6=廿7)分別對應于各快閃隨機存取記憶體陣列裝置475。實體區塊連接表450中,向前連接佇列451與向后連接佇列452超出個別區塊項目(111(11^1(11181 1^100^ 6111^7,^^ 4538^..,4531^..,453111,^ 4548,...,4541^..,454111)部分的項目即為無效頁面的錨點連接455。
[0093]快閃隨機存取記憶體陣列裝置475的所有區塊皆包含于65個無效頁面錨點連接455(0至64)的其中之一。掃描無效頁面錨點連接455是由無效頁面錨點連接64 45611與45711開始,至無效頁面錨連接0 4563與457=結束。無效頁面錨連接0 4563與4573指向個別區塊項目453^…,4531,…453?及45乜,…,4541,— , 45?中具有零(0)無效頁面者,各無效頁面錨點連接455分別表列具有一區塊列表,該區塊列表具有數個無效頁面號碼,各無效頁面錨點連接455的個別位置用以表示各無效頁面號碼。例如,區塊100在個別區塊項目4531與4541中指向無效頁面錨點連接455的位置奸61 4561與4571,表示區塊100具有61個無效頁面及3個有效頁面。
[0094]每當快閃隨機存取記憶體陣列裝置475的一區塊增加1個無效頁面時,無效頁面表435中代表該區塊位置438的無效位元項目會被設定指示該頁面為無效。在區塊100的范例中,區塊100對應的項目438中具有3個有效頁面,其余61個頁面為無效。當增加1無效頁面時,實體區塊連接表450中代表該區塊的位置并未改變,而在無效頁面錨點連接455中的位置則改變至較高1級的位置。
[0095]例如:區塊100 4531與4541從錨點連接61 4561與4571中移除或解除連接,并插入或連接至錨點連接62 456』與457』中(假設錨點連接62 456』與457』原本為空)。空的連接是以向前連接與向后連接指向自己表示。
[0096]管理處理器440執行垃圾收集程序時,搜尋無效頁面錨點連接455并選取具有最高數量無效頁面的區塊,借以將重復復制最小化。在本范例中,垃圾收集程序將復制區塊100中的有效頁面478^47?及478。至快閃隨機存取記憶體陣列裝置475中的另一區塊。有效頁面478^47?及478(3被寫入區塊200 4776中已抹除的頁面4786、478?及47?中。被選定寫入的區塊200 4776依序允許被寫入的資料。先前被寫入的頁面478(1將優先于有效頁面478^47?及478(3被復制到已抹除的頁面4786、478?及47?中。若區塊200 4476在復制有效頁面478^47?及478。的過程中被填滿,則將由已抹除頁面錨連接(錨連接64) 4560與4570中選取另一已抹除的區塊。當需要寫入新的區塊時,該已抹除頁面錨連接(錨連接64) 4560與4570是經由搜尋最低抹除總數而得。
[0097]當選定一區塊4773后,其所有有效頁面478^47?及478。將被復制到一第二區塊4776已抹除的頁面4786、478?及478。在復制區塊4773的有效頁面478^47?及478(3前,有效頁面中為“臟”的頁面緩沖器,其所有區段需先復制。快閃隨機存取記憶體陣列裝置475中所有無效區段將最先被讀取。
[0098]管理處理器440執行垃圾收集程序時,于復制后將所有有效頁面478^47?及4780在無效頁面表435中設定為無效。在邏輯實體位址轉換表400中,邏輯頁面位置2的快取旗標410項目表示該頁面位于實體頁面位置6400 478?的資料已被復制到索引位置為0的頁面緩沖器415中。類似地,邏輯頁面位置5 405?的快取旗標410項目表示該頁面位于實體頁面位置6404 478?的資料未保留于頁面緩沖器415中。實體位置(6404) 405?被改變到新的實體位置(12811)。類似地,具有索引位置0 426的頁面緩沖快取表420由實體位置(6400)改變到新的實體位置(12810)。
[0099]在實體邏輯位址表445中,實體頁面位置6400 446^由邏輯頁面位置2改變到一個不合法的頁面指標。不合法的頁面指標有兩個,即兩個最高位址數字打打打打,0過打打打一)。兩者皆表示無相關聯的邏輯頁面數字。位址數字他打打打打表示該頁面已被抹除,位址數字0過打打打6表示該頁面為無效。其中,邏輯位置2被改變到不合法的頁面指標0x1打打打6表示該頁面為無效。類似地,頁面位置6404 4466由邏輯位置5改變到不合法的頁面指標0x1打打打6。項目6401 44613,6402 446。及6403 446(1先前被設定為無效,故具有不合法的頁面指標0x1打打打6。頁面位置12810 446?及12811 4468分別由不合法的頁面指標他打打打打(已抹除頁面)改變為邏輯頁面數字2及5。當區塊100中所有的頁面皆在無效頁面表435中顯示為無效,則區塊100 4773抹除完畢。
[0100]當快閃隨機存取記憶體陣列裝置475的區塊100 438被抹除,可易于達到耗損平衡。耗損平衡程序的模式,在于令圖4所示的快閃隨機存取記憶體陣列裝置375均勻地損耗。
[0101]請參閱圖7,為本發明以頁面為基礎對于記憶體進行管理的耗損平衡中各表格的示意圖。在本實施例中,假設每區塊包含有64個頁面,則區塊100 4773的起始位置與頁面6400 47?的起始位置相同,而區塊200 4476的起始位置與頁面12800 47?的起始位置相同。
[0102]在本發明的耗損平衡程序中,最新抹除的區塊200 4776在抹除總表480中的對應位置4826將會增加。將位置4826的抹除總數值與一滑動視窗的抹除總數(811(11=8
進行比較,若大于滑動視窗的抹除總數,則最新抹除的區塊接收來自具有最低抹除總數的區塊的資料。該滑動視窗的抹除總數由搜尋抹除總數表480所得最低抹除總數加上一區塊抹除總數的門檻值而得到。若有數個區塊具有相同的抹除總數,則有效頁面最少的區塊將被指定為新的空閑區塊。若最新抹除的區塊200 4826的抹除總數大于滑動視窗的抹除總數,則具有最低抹除總數的區塊100 4823將被轉移至最近抹除的區塊200 482匕其轉移是依序復制所有有效頁面478^47?與487。至最近抹除區塊200 4826的頁面478』、478&與4871并忽略所有無效頁面478卜與4781。區塊100 4826的無效頁面478卜與4781變成區塊末端的已抹除頁面4780,做為后續寫入之用。如前述,無效頁面的數目由無效頁面表435取得。無效頁面表435以一 64位元字元標示每一區塊的無效頁面,其中各位元分別顯示對應的頁面為有效437^4376及437。或無效437(1。
[0103]頁面從區塊100 4773復制至區塊200 4776時,邏輯實體位址表400必須更新。欲得知快閃隨機存取記憶體陣列裝置475中邏輯頁面與有效實體頁面478^47?及478(3的關聯,則需存取實體邏輯位址表445。頁面6400的索引4463顯示其關聯頁面為邏輯頁面2。頁面6400的索引4466顯示其關聯頁面為邏輯頁面5。邏輯頁面2的索引405。及其快取旗標410顯示該頁面已被復制到圖4所示的頁面緩沖器415。頁面緩沖快取表420的項目426中實體頁面位址由6400改變為12800。實體邏輯位址表445的項目4463由邏輯頁面2更新為不合法頁面指標0x1打打打6而表示為無效頁面。索引405?顯示該頁面未保留于頁面緩沖器415中,并由實體頁面位址6404改變為新的實體頁面位址12801。實體邏輯位址表445中邏輯頁面5的項目4466改變為不合法指標0過打打打一表示為無效。并將新頁面478』與478&由已抹除頁面的不合法指標分別更新為邏輯頁面2實體位址12800 446?及邏輯頁面5實體位址12801 446。有效頁面478。也適當地更新其實體頁面位址。復制之后,區塊100 4773為已抹除,并成為新的空閑區塊,可寫入新頁面。具有空閑頁面的區塊200 4826被登記到耗損平衡表485中。若區塊100 4773中具有無效頁面,已抹除的區塊200 477?在耗損平衡的復制程序中將不會被完全覆蓋,而會剩余部分已抹除的頁面。耗損平衡表485用于暫時保留未被覆寫的頁面的位址。當一區塊被寫滿時,會在取用新的已抹除區塊之前檢查耗損平衡表485中是否記錄具有空閑已抹除頁面的區塊。而這些區塊中的空閑已抹除頁面將會優先被寫入利用。
[0104]在抹除總數表480中,各區塊的抹除總數皆位于一最小抹除總數值與最小抹除總數值加上一門檻值的滑動視窗之中。該最小抹除總數值為快閃隨機存取記憶體陣列裝置475中所有區塊實際上的最低抹除總數。該抹除總數門檻值,通常單階儲存單元(81110616X61 (3611)為4096,多階儲存單元(皿111106 —61 0611)為512。快閃隨機存取記憶體陣列裝置475的抹除區塊連接是以各區塊的抹除總數排序。當區塊的抹除總數超過該滑動視窗抹除總數,耗損平衡程序將掃描抹除總數表以取得一具有最低抹除總數的區塊為取代區塊,并將兩區塊交換。若同時有多個區塊具有最低抹除總數,則選取具有最多無效頁面者。該最低抹除總數值于掃描抹除總數表480后,依據掃描結果更新。最低抹除總數值更新后,若仍有交換區塊的需求,則耗損平衡程序將再次被執行。滑動視窗的值也需根據最低抹除總數的更新而重新計算。
[0105]前述基于頁面管理快閃記憶體的讀取、寫入、區塊抹除等等作業模式可由一獨立設計的記憶體管理電路實施。此外,本發明的基于頁面的快閃記憶體管理也可由微控制器執行一管理程序實施。其中,該微控制器連接一儲存有管理程序或韌體的電腦可讀媒體,當微控制器執行該管理程序或韌體時,即可實施前述的快閃隨機存取記憶體陣列裝置的管理。
[0106]管理快閃隨機存取記憶體陣列裝置的韌體為一多執行線程程序,可分為復數層或執行線程,分別執行收回程序、垃圾收集及耗損平衡等。各執行線程為平行執行,并分別由對應的門檻值觸發。當可用頁面緩沖器減少時,由一讀/寫命令觸發快取收回程序。”臟”頁面收回程序需進行頁面抹除,當已抹除區塊的數量太少時,頁面抹除動作將觸發垃圾收集程序。垃圾收集結束后,區塊為已抹除。而當區塊的抹除總數太高時,區塊的抹除動作將觸發耗損平衡程序。
[0107]在本實施例中,該多線程程序用以管理快閃隨機存取記憶體陣列裝置,該多線程程序是由管理處理器(340于圖4或440于圖6與圖7)執行。該多線程程序包含有一閑置執行線程(416'冊(1),當收回執行線程、垃圾收集執行線程或耗損平衡執行線程的門檻值未達到時,則閑置執行線程將會被執行。該程序通常執行一回圈,如下所示:
他116 (1'冊£)
I
(8011162^6111:);
11811(116 3011165^611 七;
I
其中,函式在對應的事件(6^6111:)未發生時(即各執行線程的門濫值未達到),會令管理處理器340、440執行的作業系統排程器切換(洲丨!:。]!)至其他的工作(仏810。該閑置執行線程中包含有一睡眠命令,當所有執行線程都在等待狀態時,可命令處理器進入睡眠狀態。
[0108]請參閱圖8,為本發明以頁面為基礎管理非揮發性隨機存取記憶體陣列裝置進行讀取資料的步驟流程圖。最頂層只會看到頁面緩沖器快取,一讀取指令要求邏輯頁面位址的頁面緩沖器快取包含有頁面資料。開始進行讀取動作,如步驟500所示,主要對非揮發性快閃記憶體中一連串區段的被需求區段進行讀取,并對該需求區段的邏輯區段位址進行解碼的動作,如步驟505所示。八從標準的讀取及寫入的指令包括有一位址,且該位址指向一需求的邏輯區段號碼(3吣及一區段總數(30。讀取及寫入的指令起始于區段號碼,并處理區段數所指出的連續區段號碼。如圖4所示,該邏輯位址可定義及界定出非揮發性隨機存取記憶體陣列裝置內的區段、頁碼、區塊及芯片的位置。邏輯頁面位址(如圖4所示的327、328及329)指向需求的頁面,并對非揮發性隨機存取記憶體陣列裝置內的頁面進行讀取,如步驟510所示。邏輯頁面位址為邏輯實體位址轉譯表515的索引,邏輯實體位址轉譯表515包括有被讀取的需求資料頁面的實體位址516。
[0109]快取旗標517標示出資料頁面是位于非揮發性隨機存取記憶體陣列裝置或位于頁面緩沖器內。若資料頁面不在頁面緩沖器內,則在非揮發性隨機存取記憶體陣列裝置內的頁面資料的實際實體位址將會在實體位址項目516。若資料頁面為頁面緩沖器,進入資料頁面的頁面緩沖器的索引值將會在實體位址項目516中。借助檢查快取旗標將可得知需求的資料頁面是否位于頁面緩沖器快取,如步驟520所示。
[0110]若頁面資料位于頁面緩沖器快取位置中,則會從頁面緩沖器快取555讀取頁面,如步驟550所示。從頁面資料中細分成的區段資料將以符合傳輸協定的格式陸續分頁傳輸至送至外部主機電路,如步驟565所示。若邏輯頁面位址的快取旗標517所指向的頁面資料尚未被從非揮發性隨機存取記憶體陣列裝置中復制,則可由空閑列表快取檢查出空閑列表是否未被占用或是已有充分足夠的空閑頁面緩沖器位置可用以由非揮發性隨機存取記憶體陣列裝置接收頁面資料,如步驟570所示。若空閑列表未被占用且沒有頁面緩沖快取區為空閑狀態,則一收回步驟將會被執行,以空出至少一最近最少使用緩沖器快取位置,如步驟575所示。若有足夠的空閑頁面緩沖器的快取位置或收回程序已完成,便可指派頁面緩沖器位置接收頁面資料,如步驟580所示。可由邏輯實體位址轉譯表515中取出實體頁面位址516并進行解碼,如步驟585所示,且頁面資料由非揮發性隨機存取記憶體陣列裝置讀取至頁面緩沖器快取555,如步驟590所示。頁面緩沖器位置由頁面緩沖器快取表535的空閑列表中移除,并插入可為讀取快取項目的頁面緩沖器快取表535。邏輯實體位址轉譯表515可借助設定快取旗標517的動作來進行調整,而在頁面緩沖快取表535中最近最少使用連接表的頁面緩沖器位置的索引則會被設定并指派為頁面緩沖器位置,如步驟545。從頁面緩沖器快取555中讀取頁面,如步驟550。從頁面資料中細分成的區段資料將以符合傳輸協定的格式陸續分頁傳輸至送至外部主機電路,如步驟565所示。
[0111]請參閱圖9,本發明以頁面為基礎管理非揮發性快閃記憶體寫入資料的步驟流程圖。寫入的指令需要頁面緩沖的快取位置來接收資料頁面及相對的邏輯頁面位址。進行寫入的動作,如步驟600所示,主要對非揮發性快閃記憶體中一串區段的被需求區段進行寫入,并該需求區段的邏輯區段位址進行解碼的動作,如步驟605所示。如圖4所示,該邏輯位址可用以定義并界定出非揮發性隨機存取記憶體陣列裝置內的區段、頁碼、區塊及芯片的位置。邏輯頁面位址(如圖4所示的327、328及329)指向需求的頁面,并對非揮發性隨機存取記憶體陣列裝置內的頁面進行讀取,如步驟610所示。邏輯頁面位址為邏輯實體位址轉譯表515的索引,邏輯實體位址轉譯表515包括有被讀取的需求資料頁面的實體位址516。
[0112]快取旗標517標示出資料頁面是位于非揮發性隨機存取記憶體陣列裝置或位于頁面緩沖器內。若資料頁面不在頁面緩沖器內,則在非揮發性隨機存取記憶體陣列裝置內的資料頁面的實際實體位址將位于實體位址項目516。若資料頁面為頁面緩沖器,進入資料頁面的頁面緩沖器的索引值將會在實體位址項目516中。借助檢查快取旗標將可得知需求的資料頁面是否位于頁面緩沖器快取,如步驟615所示。
[0113]若頁面資料位于頁面緩沖器快取位置中,則頁面緩沖器快取表535的快取模式項目537內的頁面緩沖器位置會被晉升為的寫入快取,如步驟645所示,以使得頁面資料被寫入頁面緩沖器快取555,如步驟650所示。
[0114]若邏輯頁面位址的快取旗標517指向的頁面資料尚未被從非揮發性隨機存取記憶體陣列裝置中復制,則可由空閑列表快取檢查出空閑列表是否未被占用或是已有充分足夠的空閑頁面緩沖器位置可用以由非揮發性隨機存取記憶體陣列裝置接收頁面資料,如步驟620所示。若空閑列表未被占用且沒有頁面緩沖的快取位置為空閑狀態,則一收回步驟將會被執行,以空出至少一最近最少使用緩沖器快取位置,如步驟625所示。若有足夠的空閑頁面緩沖器的快取位置或收回步驟已完成,便可指派頁面緩沖器位置來接收頁面資料,如步驟630所示。可由邏輯實體位址轉譯表515中取出實體頁面位址516并進行解碼,如步驟635所示。頁面緩沖快取表535的快取模式項目537內的頁面緩沖器位置將會被晉升為串流快取,如步驟640所示。使得頁面被寫入頁面緩沖器快取555,如步驟650所示。
[0115]韌體的第二層為快取收回線程,如圖8的步驟575及圖9的步驟625所示。例如,當固態硬碟系統具有8個通道,每個通道有8個預備好的1x187 11=68,并具有64個非揮發性隨機存取記憶體裝置。此外還包括有64個回收線程,用以將頁面立即由快取寫入快閃記憶體。在最佳的狀況下每一個快閃記憶體都具有一回收線程,但如此一來將會占用太多的資源(每一線程的堆迭式3狀的。為了節省資源也可使得數個快閃芯片共用一個回收線程,例如2個、4個或8個快閃芯片共用一個線程。
[0116]當達到最大頁面使用門檻值時,收回線程便會開始作用。最大頁面使用門檻值為頁面緩沖器內的頁面資料的頁面位置的最大數量。當收回線程完成之后,頁面緩沖器快取內的可用的空閑頁面緩沖器的數量將會大于最大頁面緩沖器門檻值。最大頁面使用門檻值及最小空閑頁面緩沖值必須是適當選擇的門檻及可能需要隨著各個時間的工作量來進行調整的門檻。主要的目標是隨時都有可用的空閑頁面緩沖器的快取位置,以避免需要頁面緩沖器接收頁面資料時,韌體的頂層有延遲的情形。
[0117]請參閱圖103及圖101為本發明以頁面為基礎管理頁面緩沖器的頁面收回的流程圖。頁面收回的線程如上所述,并可于快取頁面緩沖器的空閑頁面緩沖器的快取位置的數量過低時進行。如上所述,當有足夠的頁面緩沖器位置被指派至空閑列表快取,便不會進行頁面回收線程。回收的動作可釋放頁面緩沖器位置,若快閃記憶體臟的(串流快取或寫入快取)時,則可借助將頁面資料內容寫回其中。管理處理器340或440(如圖6或圖7所示)的操作系統的時程表可控制回收線程的起始,并可在空閑列表快取構件的數量大于最小空閑頁面緩沖器門檻值時起動,如步驟700所示。空閑列表快取構件的數量可與最小空閑頁面緩沖器門檻值進行比對。若空閑列表快取構件的數量大于最小空閑頁面緩沖器門檻值,則回到步驟700直到空閑列表快取構件的數量小于最小空閑頁面緩沖器門檻值為止。每一個讀取快取、寫入快取及串流快取的填充率都會被計算出,如步驟710、715及720。如上所述,在最近最少使用連接表(如圖5的430)中包括有每一個讀取快取、寫入快取及串流快取的最近被使用的順序。此外,頁面緩沖快取被區分成數個快取,且每一種型式的快取都可以即時進行調整。快取的回收是以基于偏離門檻值的差異為基準,且門檻值被建立于劃分頁面緩沖器快取,例如寫入快取占頁面緩沖快取的50% ;讀取快取占頁面緩沖快取的35%;而串流快取則占頁面緩沖快取的15%。實際使用時劃分的比例可能不同,因為緩沖器可能從一個快取移到另一個,例如由讀取快取移往串流快取,或是由串流快取移往寫入快取等等。
[0118]快取(如讀取快取、寫入快取及串流快取)具有最大填充率或與最小空閑頁面緩沖器門檻值的最小差距,或者是可預先由頁面緩沖快取表535的快取模式數字來定義或選擇快取的大小,如步驟725所示。被回收的最新被使用的頁面快取緩沖位置則由最新使用的連接表730所決定,如步驟730所示。
[0119]如上所述,串流快取或寫入快取的緩沖器頁面快取為臟的。在選擇頁面緩沖器快取的最大填充率時,如步驟725所示,主要是由被選取的頁面緩沖快取位置是否臟的而決定,如步驟740所示。若頁面緩沖器位置為臟的,則會由頁面緩沖快取表535中讀取區段有效旗標536,以判斷是否將所有包括有效資料的區段被寫入非揮發性隨機存取記憶體陣列裝置。所有的區段有效旗標皆會被測試,如步驟740所示,以判斷頁面緩沖器位置內的頁面資料是否皆為有效,如步驟750所示。若所有頁面資料的區段都不是有效,則可由頁面緩沖快取表535中重新取得實體位址538并進行解碼,如步驟755所示。由非揮發性隨機存取記憶體陣列裝置讀取有效頁面資料,如步驟760所示,并以頁面緩沖器快取內的有效資料與有效頁面資料重新組合,如步驟765所示。
[0120]頁面資料從頁面緩沖器位置被寫入非揮發性隨機存取記憶體陣列裝置,如步驟770所示。收回頁面緩沖器位置則由其最近被指派及使用的快取中移出,如步驟775所示。回收快取項目則由被選取的快取中最近被使用的連接中取出,以進行回收的動作,如步驟725所示。并將回收快取項目插入最近最少使用連接表的空閑列表連接中,如步驟780所
0
[0121]開始進行回收的程序,如步驟700所示,并將更多的頁面緩沖器位置進行回收,直到空閑頁面緩沖器位置的數量大于最大空閑頁面緩沖門檻值。在將有效頁面寫入非揮發性隨機存取記憶體陣列裝置的過程中,如步驟770所示,非揮發性隨機存取記憶體陣列裝置中的一抹除頁面位置是需要從頁面緩沖器快取的串流快取或寫入快取收回各有效資料。且頁面不會由讀取快取寫回非揮發性隨機存取記憶體陣列裝置。所有的頁面都是有效的,除了位于讀取快取的頁面內的無效區段。借此所有被抹除的空閑抹除頁面都可以被使用。
[0122]在韌體的第三層中,垃圾回收程序被喚起并用以管里區塊的抹除程序。以固態硬碟為例,包括有8個通道,且每個通道包括8個預備好的131187 111168,并具有64個非揮發性隨機存取記憶體裝置。有多達64個垃圾回收線程,并可同時抹除各個區塊。
[0123]垃圾回收程序會紀錄那些頁面為無效或廢棄。主要包括有四種頁面的分級:有缺陷的頁面、被寫入的頁面、無效的頁面及被抹除的頁面。借助判斷區塊所具有的無效頁面的最高數量,可使得每一個垃圾回收程序線程選擇一區塊。若有數個區塊具有相同號碼的無效頁面,則具有最小抹除次數的區塊將會被選取。
[0124]請參閱圖11,為本發明以頁面為基礎管理的非揮發性快閃隨機存取記憶體陣列裝置的垃圾回收機制的流程圖。垃圾回收程序如以上所述,并于非揮發性隨機存取記憶體陣列裝置內被抹除的頁面位置的數量過低時起動。當非揮發性隨機存取記憶體陣列裝置內有足夠的被抹除頁面,則垃圾回收機制是一種無止境的空轉。管理處理器340或440(如圖6或圖7所示)的操作系統的時程表可控制垃圾回收程序的起始,并可在非揮發性隨機存取記憶體陣列裝置的被抹除頁面位置的數量小于被抹除頁面門檻值時起動,如步驟800所示。將非揮發性隨機存取記憶體陣列裝置的被抹除頁面位置的數量與一抹除頁面門檻值進行比對,如步驟805所示,當非揮發性隨機存取記憶體陣列裝置的被抹除頁面區的數量小于抹除頁面門檻值,其他線程開始且不斷地循環過程(如步驟800),直到可使用的抹除頁面區的數量大于抹除頁面門檻值為止。若否,則垃圾回收動作則不會開始進行。
[0125]當被抹除頁面位置的數量低于抹除頁面門檻值時,便可搜尋實體區塊連接表450,并找出具有最大無效頁面的區塊,如步驟810所示。區塊的選擇是位了借助檢視實體區快連接表450的無效頁面錨點連接4563、...,45611及4573、?“、45711找出垃圾收回。實體區快連接表450被區分成向前連接佇列451及向后連接佇列452。向前連接佇列451及向后連接佇列452的第一項目與非揮發性隨機存取記憶體陣列裝置的非揮發性隨機存取記憶體裝置的各個區塊相對應。向前連接佇列451及向后連接佇列452的項目是無效頁面的錨點連接455,且向前連接佇列451及向后連接佇列452橫跨特定的區塊項目453~…,4530及45如,…,4540。非揮發性快閃記憶體的所有區塊為65個非揮發性隨機存取記憶體裝置(0…64)的無效頁面錨點連接陣列的其中一個。非揮發性隨機存取記憶體裝置的無效頁面錨點連接陣列將會被掃描,并由無效頁面的錨點連接64 4560及4570開始,并至無效頁面錨點連接0 4563及4573為止。無效頁面錨點連接0 4563及4573指向各個具有零
(0)無效頁面的區塊項目4533,…,456111及…,454^,…454111,并可借助無效頁面的區塊項目453?...,456111及…,45如,…45?來呈現無效頁面的錨點連接455,再者,各個無效頁面的錨點連接455具有一無效頁面數量的區塊列表。
[0126]當被具有最大無效頁面的區塊被選定時,將會進一步判斷區塊內所有的頁面是否皆為無效,如步驟815所示。若不是所有頁面都是無效,則在當下寫入區塊內的被抹除頁面的實體位址將會由被抹除區塊被指派至有效頁面的邏輯位址,如步驟820所示。有效頁面資料則會由將被抹除的區塊復制至非揮發快閃記憶體的現行寫入區塊的頁面位置。要注意的是垃圾回收門檻可同時被多個非揮發性隨機存取記憶體裝置所執行。
[0127]在無效頁面表435中設定抹除區塊的復制頁面為無效,并設定目前寫入區塊的新的復制為有效頁面資料,如步驟830所示。邏輯實體位址轉譯表400被更新并映射邏輯頁面號碼指向非揮發性隨機存取記憶體裝置內新的實體區的邏輯頁面。若邏輯頁面號碼位于快取頁面緩沖器,則快取頁面表420將會更新。當所有頁面在測試后皆為無效,如步驟815所示,則該區塊將會被抹除,如步驟835所示。所有被抹除區塊的頁面具有所有的邏輯頁面號碼,設置于實體邏輯轉譯表445內并設定為具有不合法位址碼打打打打)的抹除頁面,如步驟840所示。抹除總數表480會記錄增加的區塊抹除總數,如步驟845。在抹除一個區塊時,耗損平衡程序將會執行,以確保所有的區塊具有大約相同的抹除總數,以使得各非揮發性隨機存取記憶體裝置的耗損相同。則抹除頁面的總數再次與抹除頁面門檻值比對,如步驟805所示,且垃圾回收步驟將會重新開始或停止,如步驟840所示。
[0128]耗損平衡程序的執行是為了使得非揮發性隨機存取記憶體陣列裝置的使用較為平均,并使得非揮發性隨機存取記憶體陣列裝置各個部分的損壞時間較為相近。在垃圾回收程序中各個區塊的抹除后,抹除記數表的所有區塊的抹除總數將會被監看。非揮發性隨機存取記憶體陣列裝置的各個區塊的抹除總數位于滑動視窗內,滑動視窗的抹除總數是以最小區塊抹除總數加上抹除總數門檻值為基礎。當區塊的抹除總數大于滑動視窗的抹除總數,則一具有最小區塊抹除總數的區塊將復制到此超過滑動視窗的抹除總數的區塊中,然后,該具有最低抹除總數的區塊成為一新的可寫入區塊。
[0129]耗損平衡程序具有兩種模式:動態耗損平衡程序及靜態耗損平衡程序。在動態耗損平衡程序下,當有大于一個可用的抹除區塊時,則會選擇最小抹除次數的區塊。在靜態耗損平衡程序下,一部分的非揮發性隨機存取記憶體陣列裝置會被視為讀取資料(靜態資料),且該讀取資料往往是很少被讀取的。例如讀取資料可為節目、歌曲、電影等等。具有高抹除資料次數的區塊則會與低抹除次數的區塊交換。這種交換可為高寫入區塊與低寫入區塊(靜態資料)的交換。本發明實施例的方法及裝置可同時使用動態平均模損程序及靜態平均模損程序。
[0130]請參閱圖12^1213及12(3,是用以說明本發明以頁面為基礎管理非揮發性快閃隨機存取記憶體陣列裝置的一耗損平衡程序的步驟流程圖。在垃圾收集程序期間的一區塊被抹除之后,借助收回(方塊902)最新抹除區塊的抹除總數,以啟動損耗平衡程序(方塊900)。最新抹除區塊的抹除總數將存在于前述滑動視窗內,該滑動視窗的抹除總數的范圍也可為其中一區塊的最低區塊抹除總數加上一抹除總數的門檻值。例如,對非揮發性多層次快閃隨機存取記憶體芯片而言,該抹除總數門檻值大約為512,但對非揮發性單層次快閃隨機存取記憶體芯片而言,該抹除總數門檻值大約為4096。
[0131]相較于最新抹除區塊,存在于非揮發性快閃隨機存取記憶體陣列裝置內所有區塊中具有最大抹除總數的一區塊,將借助檢索抹除總數表480而被發現。該抹除總數表480也將被檢索以發現具有最小抹除總數的區塊,如步驟904所示。滑動視窗的一抹除總數將被確定數量,如步驟906所示,其為具有最小抹除總數的區塊的抹除總數再加上抹除總數門檻值(最低抹除總數帽,其中~是為抹除總數門檻值為了更好的損耗平衡,抹除總數表480將被掃描,以取得所有非揮發性快閃隨機存取記憶體裝置的所有區塊的抹除總數。如果完整的掃描將花費過多的時間,一種好的大概方法是可隨意的啟動及檢索該抹除總數表480的一固定部分(例如一半),或者是隨意經過該抹除總數表480的一部分。如果一種不充分的掃描將被使用于來決定具有最小抹除總數的區塊時,一種隨機函數血!將被援用而檢索出具有最小抹除總數的區塊。如果掃描至抹除總數表480尾端,將從起端繼續開始掃描。
[0132]最新抹除區塊的抹除總數將與滑動視窗的抹除總數進行比較,如步驟908所示。假如兩者抹除總數的差距不大于抹除總數門檻值時,該損耗平衡程序將被終止,如步驟930所示。假如兩者抹除總數的差距是大于抹除總數門檻值時,具有最小抹除總數的區塊將被指定為最新可寫入區塊(1161 81)81-6。具有最小抹除總數的區塊的所有頁面將被測試以決定是否所有的頁面都是無效的,如步驟910所示。假如并不是所有頁面無效的,貝1]該具有最小抹除總數的區塊的有效頁面將被復制至最新抹除區塊,如步驟912所示,具有最小抹除總數的區塊的被復制頁面將被設定成無效的,如步驟914所示,而存在于新抹除區塊的新的復制頁面則被設定成有效的,如步驟914所示,邏輯實體轉譯表516也將被更新。如果快取旗標517指示邏輯頁面是被快取的,則頁面緩沖器快取表535將被更新,以致使包含有最新抹除區塊的實體位置及快取位置的頁面緩沖器位置538將被導入寫入快取0^11:6 ,而寫入快取則是儲存于頁面緩沖器快取表535的快取模式記錄
1110(16 611廿7) 537內。該復制程序將一直被執行,直到所有頁面變成無效為止,而在這段時間內,具有最小抹除總數的區塊中的頁面的有效性也將一直被測試,如步驟910所示。
[0133]無效頁面將不會被復制,且具有最小抹除總數的區塊的無效頁面將成為存在于該最新抹除區塊內的抹除頁面。值得注意的是,有效頁面將被持續的復制至最新替換區塊(116界1-61)18061116111: 1^100^)中。例如,如果該替換區塊具有三個無法被復制的無效頁面,貝丨』這最新抹除區塊的最后三個頁面也將不會被改變及保持抹除。當具有最小抹除總數的區塊的所有頁面都是無效后,它就會被抹除,如步驟916所示。
[0134]具有最小抹除總數的區塊的頁面將被設定成不合法位址碼8(1(11-68800(16),如步驟918所示,以成為一儲存于實體邏輯位址表445的抹除頁面((^打打打打)。抹除總數表480將增量,如步驟920所示,以成為一具有最小抹除總數的區塊。如果具有最新復制頁面的替換區塊具有抹除頁面,將登入于損耗平衡表485,如步驟922所示,被作為一當現行寫入區塊已滿時可被使用的可寫入抹除頁面,而損耗平衡程序也將在此時被終止,如步驟930所示。然而,在另一方面,如果替換區塊是持續被需要時,這個程序也會被重復確定。
[0135]以頁面為基礎管理的一種非揮發性快閃隨機存取記憶體陣列裝置的一些實施例中,這三個層級(收回、垃圾收集、及損耗平衡)當有需要時將可同時執行。該收回及垃圾收集程序將跑在讀取及寫入操作之前被執行,以提供在頁面緩沖器快取內的頂層具有頁面緩沖器位置。本發明以頁面為基礎管理的一種非揮發性快閃隨機存取記憶體陣列裝置的操作模式不僅可適用于前述幾個少數實施例而已,也可期待適用于不限制頁面緩沖器位置。
[0136]先前所描述實施例中,主要是揭露一種具有頁面讀取、寫入及區塊層級抹除功能,并以頁面為基礎管理的非揮發性快閃隨機存取記憶體陣列裝置,它可提供一種很高執行力的任意寫入功能。而在其他實施例中,主要是揭露一種以次區塊的使用來替代頁面,一個次區塊將具有許多頁面,而一個區塊又包含有數個次區塊。大量次區塊將意指所有內部表列的大小將被縮減,次區塊將重組總增加、及垃圾收集總減少。具有大量次區塊將可提供持續性寫入及惡劣的任意寫入。又,在其他實施例中,于同一時間內將可使用不同的次區塊尺寸大小,借此以達到可依據工作量而致使隨意及持續性的寫入有更完美的執行。
[0137]實務上,在一次區塊內的頁面數量最好是2的次方數(例如1、2、4、8、16、32〉,而每一個區塊所能保證的頁面數量也是可被~整除,不帶有任何余數。次區塊的被建構基本上有兩種方式:其中一種是一個次區塊(或是替代、一特別頁面)是一實體區塊的部分,由于一個實體區塊將被分割成多個次區塊,以致使具有2倍數的頁面。例如,如果一區塊包含有64個頁面,且具有16個次區塊,則一個次區塊將包括有4個實體頁面。區塊表將保持原有的數量,但頁面表(邏輯實體位址轉譯表400及實體邏輯位址表455)則會只有四分之一大小。在這個實施例中,寫入一個次區塊就是持續性寫入連續的4個頁面。
[0138]另外一個方式是取組成超級區塊來當作是非揮發性快閃隨機存取記憶體陣列裝置所分割的區塊。例如,可從四個不同的非揮發性快閃隨機存取記憶體陣列裝置中各取一個區塊來組成一超級區塊。一個四頁面次區塊將具有四個實體頁面,而每一個實體頁面都是從不同的非揮發性快閃隨機存取記憶體陣列裝置中而來。如此將具有比較小的頁面表及比較小的區塊表,而快取管理也將依據超級區塊的數量而定,超級區塊的數量將是實體區塊數量的一小部分。在這個由四個不同的非揮發性快閃隨機存取記憶體陣列裝置來組成四個區塊的實施例中,超級區塊的數量將是實體區塊數量的四分之一。另外,每一個次區塊將可以被平行態樣寫入,因為一個次區塊的所有實體頁面將位于不同的芯片中,因此可提供以交錯的平行方式來進入非揮發性快閃隨機存取記憶體陣列裝置。
[0139]以上所述者,僅為本發明的一較佳實施例而已,并非用來限定本發明實施的范圍,即凡依本發明申請專利范圍所述的形狀、構造、特征及精神所為的均等變化與修飾,均應包括于本發明的申請專利范圍內。
【權利要求】
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所述的資料儲存系統,其特征在于,決定一抹除視窗的抹除總數的步驟后,尚包括下列步驟: 加入一抹除計數門檻值至該最低區塊抹除總數。
29.一種資料儲存系統的管理方法,指一種用以快閃儲存系統的抹除區塊的損耗平衡方法,其中,該快閃儲存系統包括一非揮發性記憶體陣列裝置,該非揮發性記憶體陣列裝置包括有數個次陣列,各次陣列包括有數個區塊,其特征在于,該損耗平衡方法包括有: 決定一抹除視窗的抹除總數,該抹除視窗的抹除總數為一區塊最低抹除總數的函數; 判斷該抹除區塊的一區塊抹除總數是否超過該抹除視窗的抹除總數; 若該抹除區塊的該區塊抹除總數超過該抹除視窗的抹除總數,搜尋一抹除總數表,以在各抹除區塊中判斷出一具有最低區塊抹除總數的區塊; 選擇該具有最低區塊抹除總數的區塊; 復制該具有最低區塊抹除總數的區塊中全部有效次區塊至該抹除區塊的低階級次區塊中; 抹除該具有最低抹除總數的區塊,以成為一最新的抹除區塊; 在該抹除總數表中對于該最新的抹除區塊增加其該抹除總數;及 分配該最新的抹除區塊為一新的可寫入區塊。
30.如權利要求29所述的管理方法,其特征在于,決定該抹除視窗的抹除總數的步驟后,尚包括下列步驟: 加入一抹除計數門檻值至該最低區塊抹除總數。
31.如權利要求29所述的管理方法,其特征在于,該次區塊為一頁面、一在非揮發性記憶體陣列裝置中單一區塊所組成的超級頁面或一經由多個頁面與一區塊所組成的超級頁面。
32.—種資料儲存系統,指一種用以快閃儲存系統的抹除區塊的損耗平衡設備,其特征在于,該快閃儲存系統包括一非揮發性記憶體陣列裝置,該非揮發性記憶體陣列裝置包括有數個次陣列,各次陣列包括有數個區塊,其中該損耗平衡設備用以執行一損耗平衡方法,該損耗平衡方法包括有: 用以決定一抹除視窗的抹除總數,該抹除視窗的抹除總數為一區塊最低抹除總數的函數; 用以判斷該抹除區塊的一區塊抹除總數是否超過該抹除視窗的抹除總數; 用以若該抹除區塊的該區塊抹除總數超過該抹除視窗的抹除總數,搜尋一抹除總數表,以在各抹除區塊中判斷出一具有最低區塊抹除總數的區塊; 用以選擇該具有最低區塊抹除總數的區塊; 用以復制該具有最低區塊抹除總數的區塊中全部有效次區塊至該抹除區塊的低階級次區塊中; 用以抹除該具有最低抹除總數的區塊,以成為一最新的抹除區塊; 用以在該抹除總數表中對于該最新的抹除區塊增加其該抹除總數;及 用以分配該最新的抹除區塊為一新的可寫入區塊。
33.如權利要求32所述的資料儲存系統,其特征在于,用以決定該抹除視窗的抹除總數的步驟后,尚包括下列步驟: 用以加入一抹除計數門檻值至該最低區塊抹除總數。
34.如權利要求32所述的資料儲存系統,其特征在于,該次區塊為一頁面、一在非揮發性記憶體陣列裝置中單一區塊所組成的超級頁面或一經由多個頁面與一區塊所組成的超級頁面。
【文檔編號】G06F12/02GK104298610SQ201410411424
【公開日】2015年1月21日 申請日期:2010年9月3日 優先權日:2009年9月3日
【發明者】雷恩哈德·庫納 申請人:晶先鋒科技有限公司