專利名稱:令隨機存取閃存最佳效能的控制方法
技術領域:
本發(fā)明為一種令隨機存取閃存達最佳效能的控制方法,尤指該方法提供一種以頁(Page)或以區(qū)塊(Block)為單位,對該閃存進行數據存取的設置方法。
背景技術:
一般傳統(tǒng)閃存(Flash)的存取方式,受限于快閃存儲器本身結構設計的關系,在讀取時只能以一個頁(Page)為單位,從各頁內的任一地址開始讀取數據。在寫入時,則須以區(qū)塊(Block)為單位,先刪除(Erase)整個區(qū)塊后,才能逐頁寫入(Page by Page)。這樣一來在處理容量小于一個區(qū)塊的數據時必須受限于閃存的結構,來設定存取的方式。
由于閃存的物理特性,該閃存中必須不含任何數據,才能將相當一個扇區(qū)(Sector)的數據,完完整整的寫到該閃存一個頁中,所以,于該頁中寫入數據時,就得先確定這個頁是″空″的,所謂″空″的就是說這個頁原本的數據都是″1″。以往對閃存的管理是以區(qū)塊(Block)為單位,所以若要寫數據到區(qū)塊里其中一個頁(Page)中時,為了方便及安全起見,就得于閃存中找出一個無任何數據的新區(qū)塊(也稱為備用的區(qū)塊)來,將此數據寫入該新區(qū)塊相對的頁中,而原來舊區(qū)塊的數據就完完整整的搬到該新區(qū)塊中,再將舊區(qū)塊刪除(Erase)掉,以當成另一個新的區(qū)塊。
若處理的數據容量大小為連續(xù)好幾個區(qū)塊時,則于閃存中找出一個新區(qū)塊來,將要寫入的數據逐個寫到相對的頁中,等到所有的數據都寫完后,再將舊區(qū)塊原有數據搬到新區(qū)塊相對頁中,之后再將舊區(qū)塊刪除掉。由于主機(如計算機、讀卡機、手機等)常會不斷地更新閃存的檔案配置表(FAT),且若拷貝的數據都是一些小檔案的話,這時對閃存而言一次也不過處理幾個頁的數據,但閃存就得不斷地找一個新的區(qū)塊出來,并不斷地將舊區(qū)塊里的數據搬到新的區(qū)塊去,及不斷地對舊的區(qū)塊做刪除。
基于閃存的物理特性,對閃存作刪除的動作超過一百萬次后,會容易造成閃存內部的損毀,所以要延長閃存的壽命,就得減少對閃存做刪除的動作。由此,利用以往現有區(qū)塊為單位來管理閃存,閃存的破壞率相較于以頁為單位來管理會高出很多。
發(fā)明內容
發(fā)明人有鑒于前述現有以區(qū)塊為單位來管理閃存的方法,容易造成閃存內部的損毀的缺陷,乃依其從事電子元件、電子裝置的制造經驗和技術累積,針對上述缺陷悉心研究各種解決的方法,在經過不斷地研究、實驗與改良后,終于開發(fā)設計出一種全新的令隨機存取閃存達最佳效能的控制方法的發(fā)明,該方法能加快寫入的速度,并減少對該閃存做刪除的動作,以解決現有技術中的許多缺陷。
本發(fā)明的主要目的,提供一種以頁(Page)或以區(qū)塊(Block)為單位,對該閃存進行數據存取的設置方法,當一主機(如計算機、讀卡機、手機等)于該閃存中進行數據的寫入時,能依據此數據的容量大小,計算以區(qū)塊為單位的刪除、搬移數據的時間及次數,以及計算以頁為單位的刪除、搬移數據的時間及次數,再根據上述計算的數據,選擇一種最佳的寫入方式,達成可加快寫入的速度的目的,并減少對該閃存做刪除的動作,令該閃存得以延長使用壽命的目的。
圖1本發(fā)明的整體系統(tǒng)結構圖。
圖2本發(fā)明以頁為基本存取單位的閃存結構圖。
圖3本發(fā)明進行刪除的時序圖。
圖4本發(fā)明以頁為單位進行寫入的時序圖。
圖5本發(fā)明作頁刪除的示意圖。
圖6本發(fā)明以頁為單位的寫入示意圖。
圖7本發(fā)明以區(qū)塊為單位進行寫入數據的示意圖之一。
圖8本發(fā)明以區(qū)塊為單位進行寫入數據的示意圖之二。
圖9本發(fā)明以區(qū)塊為單位進行寫入數據的示意圖之三。
圖10本發(fā)明以區(qū)塊為單位進行寫入數據的示意圖之四。
圖11本發(fā)明以區(qū)塊為單位進行寫入數據的示意圖之五。
圖中符號說明11單芯片閃存控制器12閃存13主機接口14主機15程序內存具體實施方式
為能對本發(fā)明的目的、形狀、構造裝置特征及其功效,做更進一步的認識與了解,將以實施例配合附圖,詳細說明如下本發(fā)明乃有關于一種令隨機存取閃存達最佳效能的控制方法,該方法提供一種以頁(Page)或以區(qū)塊(Block)為單位,對該閃存進行數據存取的設置方法,當一主機(如計算機、讀卡機、手機等)于該閃存中進行數據的寫入時,能依據此數據的容量大小,計算以區(qū)塊為單位的刪除、搬移數據的時間及次數,以及依據此數據的容量大小,計算以頁為單位的刪除、搬移數據的時間及次數,再根據上述計算的數據,選擇一種最佳的寫入方式,若以區(qū)塊為單位的刪除次數少且搬移數據時間速度快,就選擇以區(qū)塊為單位進行該數據的寫入,若以頁為單位的刪除次數少且搬移數據時間速度快,就選擇以頁為單位進行該數據的寫入,達到可加快寫入的速度的目的,并減少對該閃存做刪除(Erase)的動作的目的,令該閃存得以延長使用壽命。
請參閱圖1所示,本發(fā)明的整體系統(tǒng)結構圖,該系統(tǒng)包括一單芯片閃存控制器11、一閃存12、一主機接口13及一主機14,其中單芯片閃存控制器11與閃存12相連接,并透過主機接口13與主機14(如計算機、讀卡機、手機等)相接,令該主機14可操控該單芯片閃存控制器11自該閃存12中存取數據,而該單芯片閃存控制器11內嵌或外掛一程序內存15,俾該單芯片閃存控制器11可依該程序內存15事先設定的程序,執(zhí)行對該閃存12的存取動作。
在該發(fā)明中,請參閱圖2所示,以頁為基本存取單位的新型閃存結構圖,當每次在寫入之前都會對頁/區(qū)塊作刪除的動作,其中刪除的時序如圖3所示,而寫入是以頁為單位,寫入的時序如圖4所示。
在該發(fā)明中,請參閱圖1、5、6所示,本發(fā)明的方法可根據欲寫入數據容量的頁數多少,來決定是否要用新的區(qū)塊(備用的區(qū)塊)來存放新的數據,亦或直接刪除(Erase)欲更改的頁51(Page),使這個頁51變成″空″的之后(如圖5所示),再將新的數據寫到這個新的頁51中(如圖6所示),以減少刪除的動作,免除閃存12的損毀,及延長閃存12的使用壽命。
再者,根據規(guī)格書上的特性,區(qū)塊刪除(Block Erase)的時間是4毫秒(ms),頁刪除(Page Erase)的時間也是4毫秒(ms)。而頁寫入數據的時間是200微秒(μs)以一個區(qū)塊(Block)共有32個頁(Page),故區(qū)塊寫入數據(Block Program)的時間就是頁寫入數據(PageProgram)的時間乘以32(即200微秒×32)等于6.4毫秒(ms),而頁數據讀出(Page read)的時間是5微秒(μs)(First byte latency)加上50奈秒(ns)乘以528等于31.4微秒(μs),所以,依以往如果以區(qū)塊(Block)為單位的管理方式,如只是要更改區(qū)塊(Block)里的某一個頁(Page),除了新的頁(Page)的數據是由外部控制器所輸入,其余31個頁(Page)的數據都需由舊的區(qū)塊(Block)搬到新的區(qū)塊(Block)去(如圖7、8、9、10、11所示),共至少需要區(qū)塊刪除(Block Erase)乘1加上頁數據讀出(Page read)乘31加上頁數據寫入(Page Program)乘32等于11.37毫秒(ms),但以頁(Page)為單位的管理時(如圖5、6所示),只需要一個頁刪除(Page Erase)加上一個頁數據寫入(Page Program)等于4.2毫秒(ms),省去了其它31個頁(Page)從舊的區(qū)塊(Block)搬到新的區(qū)塊(Block)的時間。
但由于頁刪除(Page Erase)和區(qū)塊刪除(Block Erase)的時間相等,都是4毫秒(ms),因此若32個頁(Page)的數據都和原來的數據不同,需全部刪除(Erase)時,都只用頁刪除(Page Erase)的方式來處理,反而需要頁刪除(Page Erase)乘32加上頁數據寫入(PageProgram)乘32等于134.4毫秒(ms),比用區(qū)塊(Block)方式需一個區(qū)塊刪除(Block Erase)加上頁數據寫入(Page Program)乘32等于10.4毫秒(ms)多出甚多,因此何時需要以頁刪除(Page Erase)來處理,何時需要以區(qū)塊刪除(Block Erase)來處理,必須要視閃存12(Flash Memory)中的規(guī)格上頁數據寫入(PageProgram)的時間、頁刪除(Page Erase)的時間、頁數據讀出(Page read)的時間以及區(qū)塊刪除(Block Erase)的時間來決定。存取的頁(Page)少時,以頁刪除(Page Erase)來做較有利,存取頁(Page)數目多時,以區(qū)塊刪除(Block Erase)來處理較省時。
而這個多與少的個數如何決定呢?我們可以假設各時間的變量,來計算出在存取幾個頁(Page)以何種方式可得到最有利的結果首先,假設頁數據讀出(Page read)的時間是pr、頁數據寫入(Page Program)的時間是pp、頁刪除(Page Erase)的時間是pe,區(qū)塊刪除(Block Erase)的時間是be,則以頁刪除(Page Erase)的方式存取若干個(N個)頁(Page)所花的時間是pe×N+pp×N,另外,以區(qū)塊刪除(Block Erase)方式存取所花的時間為be×1+pr×(32-N)+pp×32;兩相比較,欲使頁刪除(Page Erase)的時間少于區(qū)塊刪除(Block Erase)的時間pe×N+pp×N<be×1+pr×(32-N)+pp×32代入此閃存12(Flash Memory)的參數,pe=4ms,pp=200μs,pr=31.4μs,be=4ms可計算出N<2.6時使用頁刪除(Page Erase)的方式,可以得到較佳的效能,其原因是因為此閃存12(Flash Memory)在頁刪除(Page Erase)的時間和區(qū)塊刪除(BlockErase)的時間相同,若未來有新的規(guī)格的閃存頁刪除(Flash Memory Page Erase)的時間低于區(qū)塊刪除(Block Erase)的時間,即可提高N值,使管理閃存(Flash Memory)的彈性更大。
以上所述,僅為本發(fā)明最佳具體實施例,本發(fā)明的構造特征并不局限于此,任何熟悉該技藝者在本發(fā)明領域內,可輕易思及的變化或修飾,皆可涵蓋在所述的專利范圍內。
權利要求
1.一種令隨機存取閃存達最佳效能的控制方法,該方法提供一種以頁或以區(qū)塊為單位,對該閃存進行數據存取的設置方法,其特征在于當一主機于該閃存中進行數據的寫入時,能依據此數據的容量大小,計算以區(qū)塊為單位的數據刪除、頁數據讀出、頁數據寫入的時間及次數;并依據此數據的容量大小,計算以頁為單位的頁數據刪除、頁數據寫入的時間及次數;再根據上述計算的數據,選擇一種最佳的寫入方式;若以區(qū)塊為單位的刪除次數少且搬移數據時間速度快,就選擇以區(qū)塊為單位進行該數據的寫入;若以頁為單位的刪除次數少且搬移數據時間速度快,就選擇以頁為單位進行該數據的寫入。
2.如權利要求1所述的令隨機存取閃存達最佳效能的控制方法,其中,該頁數據讀出的時間是pr、頁數據寫入的時間是pp、頁刪除的時間是pe,區(qū)塊刪除的時間是be,則以頁刪除的方式存取若干個(N個)頁所花的時間是pe×N+pp×N,而以區(qū)塊刪除方式存取所花的時間則為be×1+pr×(32-N)+pp×32。
3.如權利要求1所述的令隨機存取快閃記憶體達最佳效能的控制方法,其中該主機可為一計算機、讀卡機或手機。
全文摘要
本發(fā)明涉及一種令隨機存取閃存達最佳效能的控制方法,該方法提供一種以頁(Page)或以區(qū)塊(Block)為單位,對該閃存進行數據存取的設置方法,當一主機(如計算機、讀卡機、手機等)于該閃存中進行數據的寫入時,能依據此數據的容量大小,來選擇以逐頁寫入該數據,或者選擇以區(qū)塊為單位進行該數據的寫入,達成可加快寫入的目的,并減少對該閃存做刪除(Erase)的動作,令該閃存得以延長使用壽命。
文檔編號G06F12/00GK1619507SQ20031011967
公開日2005年5月25日 申請日期2003年11月21日 優(yōu)先權日2003年11月21日
發(fā)明者梁鳴仁, 歐陽志光 申請人:群聯電子股份有限公司