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