TWI409630B - 記憶體設備,記憶體控制方法,及非暫態電腦可讀式媒體 - Google Patents
記憶體設備,記憶體控制方法,及非暫態電腦可讀式媒體 Download PDFInfo
- Publication number
- TWI409630B TWI409630B TW097131738A TW97131738A TWI409630B TW I409630 B TWI409630 B TW I409630B TW 097131738 A TW097131738 A TW 097131738A TW 97131738 A TW97131738 A TW 97131738A TW I409630 B TWI409630 B TW I409630B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- data
- cache memory
- management information
- cache
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
Description
本發明關於2007年12月12日向日本專利局提出申請之日本專利申請案JP 2007-237181之主題內容,其整個內容以提及的方式併入本文。
本發明關於記憶體設備、記憶體控制方法及程式。較具體地,本發明關於具有例如快閃記憶體之非揮發性記憶體的記憶體設備,以及關於記憶體控制方法和使用該記憶體設備之程式。
有各類記憶體設備,各包含快閃記憶體並做為個人電腦、數位相機、數位攝影機和音頻記錄器之外部儲存裝置。快閃記憶體為一種記憶體,其允許將資料隨意寫入其中並以叢集之形式從中讀取資料。從快閃記憶體刪除資料並非隨意而係以區塊為單位。
快閃記憶體中之儲存格經由重複資料更新而變壞。為此原因,便限制快閃記憶體上更新作業之次數。即,避免集中於相同叢集上之存取,以便延長快閃記憶體之壽命。當設於與特定實體位址相關之邏輯位址的資料將予更新時,更新資料並非寫入至相同實體區塊,而是寫入至新刪除狀態之另一實體區塊(即自由區塊)。
實施資料更新之前配賦有意義之邏輯位址的實體位址與更新之後配賦邏輯位址的實體位址不同。此特徵係由使用標示邏輯與實體位址之間相應關係之內部儲存位址轉移表之快閃記憶體履行。當記憶體設備附著於主機裝置時,便從快閃記憶體讀取位址轉移表,並載入主機裝置的工作記憶體或記憶體設備中,而於其中更新。
在普通記憶體設備中,少數扇區之資料更新包含重寫整個實體區塊中之資料。對於區塊之存取費時並加速其中儲存格的惡化。為使缺點降至最低,快閃記憶體中每一區塊被分為標頭區及資料區。將寫入資料區之資料記錄的起始位址及記錄長度被寫入至相應標頭區,且資料區中之資料記錄被配置鏈結資訊區和旗標區。因而資料係以資料記錄為單位而被寫入及更新。當目前區塊被廢棄時,便擷取有效資料記錄及轉移至自由區塊,並刪除被擷取記錄之區塊。該技術係揭露於早期公開之日本專利No. Hei 11-73363(以下稱為專利文獻1)。
由每一均如上列概述之標頭區和資料區組成之區塊所形成之快閃記憶體因而具有為每一區塊建立之標頭區、鏈結資訊區和旗標區。上列專利文獻1中之技術傾向於減少記憶體容量以容納資料,且無助於有效使用記憶體。
為克服上述技術之缺點,本申請人提出於早期公開之日本專利No. 2006-48227(以下稱為專利文獻2)中揭露之資料處理系統。該資料處理系統包含提供邏輯/實體表,其中邏輯區塊之位址、實體區塊之位址及實體區塊之終端叢集編號係彼此相關。作業中,若依據寫入指令之將被寫入之資料的起始叢集編號SC高於邏輯/實體表中實體區塊之終端叢集編號EC,該資料便附加至實體區塊而不執行普通實體區塊更新(即新資料寫入至新實體區塊和複製原始實體區塊)。
上述專利文獻2中提出之資料處理系統減少了快閃記憶體被刪除之次數,並有效地更新快閃記憶體中資料而未顯著地減少快閃記憶體之容量,藉以緩和記憶體格之惡化,並加速對於記憶體中資料之存取。
上述資料處理系統具有許多特徵。使用非揮發性記憶體做為其記錄媒體之系統的記憶體設備中之資料無法被覆寫。資料被寫入之單位與資料被刪除之單位不同(即寫入單位小於刪除單位)。資料可被附加至非揮發性記憶體之每一區塊內。
使用檔案配置表(FAT)檔案系統之記憶體設備需要將該等管理資訊更新為與寫入檔案資料平行之FAT和目錄條目。保存管理資訊之記錄裝置於記憶體中除了使用者之資料區外尚具有儲存管理資訊之區域。每次從主機裝置實施檔案資料寫入時,便更新快閃記憶體中之管理資訊。
包含高速緩衝記憶體區塊之記憶體設備以每一高速緩衝記憶體區塊內之叢集為單位保存資料。邏輯和實體位址之間之相應性在高速緩衝記憶體區塊中是固定的(即邏輯位址係從實體區塊之開端起以上升之順序配置)。
在該些狀況下,上述資料處理系統需於檔案資料之寫入作業期間對超出指定邏輯邊界(即以多扇區為單位之邏輯空間大小)之連續邏輯位址實施回寫,即使更新大小小於叢集大小亦然。回寫作業蒙受了可縮短產品壽命之區塊刪除。回寫亦包含廢料收集及資料抹除,其可導致寫入性能下降。
例如FAT和目錄條目之管理資訊被更新並結合檔案資料寫入。由於將被寫入之檔案的大小小於構成以複數扇區為單位之邏輯空間大小的指定邏輯邊界,存取便集中於相同邏輯位址空間。此蒙受了頻繁的資料覆寫。
為了這些原因,上述資料處理系統被限制於每當資料被寫入至邏輯空間時,此係一次寫入至高速緩衝記憶體區塊,便實施回寫作業。回寫觸發了縮短產品壽命之區塊刪除。回寫亦包含廢料收集及資料抹除,其可導致寫入性能下降。
因為非揮發性記憶體(反及(NAND)型快閃記憶體)中之資料無法被覆寫,且因為資料係以區塊為單位被刪除,每當進行資料更新時,邏輯/實體表便需一貫保持在記憶體設備內部。此意即無論將更新之資料的大小,寫入資料需以區塊為單位儲存在別的地方。
此外,更新資料以外之資料需經由來自原始區塊之資料的廢料收集而予複製。在更新之後,便出現包含不必要資料並需予以刪除之區塊。在這點上,每一區塊可允許刪除之次數便予限制。
本申請人接著(於以下稱為專利文獻3之早期公開之日本專利No. 2007-156633中)提出記憶體設備和記憶體控制方法,希望克服上列概述之缺點。所提出之設備和方法係設計以抑制回寫作業,藉以避免廢料收集和資料抹除,並使寫入性能之下降最小。然而,所提出之設備和方法具有下列缺點:依據上述技術,若在指定邏輯邊界內寫入資料便已停止,那麼該資料便儲存於稱為OD-高速緩衝記憶體之高速緩衝記憶體區塊中。管理資訊係以允許於OD-高速緩衝記憶體中識別邏輯空間(邏輯空間A)之起始和結束之方式登錄。由於僅可登錄一邏輯空間,若於相同區塊中發生寫入至不同邏輯空間B,便需實施回寫。儘管可經由放大管理資訊之大小而忽略該問題,但其花費更長時間以儲存膨脹的管理資訊,且儲存管理資訊之程序需更頻繁地實施。此導致當未發生回寫作業時寫入性能下降。
本發明己鑒於上述環境並提供記憶體設備、記憶體控制方法及程式,以可靠地降低回寫作業之頻率,藉以避免當未發生回寫作業時寫入性能下降。
在實施本發明中及依據其一實施例,提供一種記憶體設備包括:非揮發性記憶體,用於允許以叢集為單位而將資料寫入其中和從中讀取資料,並用於許可以由複數扇區構成之區塊為單位而從中刪除資料;及控制電路,用以控制對於該非揮發性記憶體之存取作業;其中該非揮發性記憶體包括:管理區,其中記錄管理資訊;使用者資料區,其中記錄來自使用者之資料;及高速緩衝記憶體區,其中暫時保存將寫入至該使用者資料區和自該使用者資料區讀取之資料;其中該管理區包括儲存該使用者資料區中邏輯區塊之位址連同配賦予該邏輯區塊的實體區塊之位址的邏輯/實體表,和相應於該邏輯/實體表中該實體區塊之位址的該高速緩衝記憶體區中實體區塊之位址;及其中一旦將大小小於構成以使用者區塊中複數扇區為單位之邏輯空間大小的指定邏輯大小之資料寫入該使用者資料區中,該控制電路便將該資料儲存於適當選擇之高速緩衝記憶體區塊中,同時將部分管理資訊寫入保存該資料之高速緩衝記憶體區塊中。
較佳地,該控制電路可將該資料儲存於該高速緩衝記憶體區塊中之複數邏輯空間中,同時維持該非揮發性記憶體中之大小以儲存該管理資訊。
較佳地,該控制電路可鑒於該高速緩衝記憶體區塊中該管理資訊而判斷是否可將附加資料寫入至所選擇之高速緩衝記憶體區塊,若發現可將附加資料寫入至該高速緩衝記憶體區塊,便於附加該寫入資料之前將附加管理資訊寫入至該高速緩衝記憶體區塊。
較佳地,若發現可將附加資料寫入至該高速緩衝記憶體區塊,該控制電路便於將附加管理資訊寫入至該高速緩衝記憶體區塊和附加該寫入資料之前更新該管理區中之該管理資訊。
較佳地,該控制電路可判斷是否可將附加資料寫入至所選擇之高速緩衝記憶體區塊,若發現無法將附加資料寫入至該高速緩衝記憶體區塊,便判斷登錄於該高速緩衝記憶體區塊中之複數邏輯空間之數量是否大於預定數量;其中若發現該複數邏輯空間之數量小於該預定數量,該控制電路便將儲存於該高速緩衝記憶體區塊中之有效資料複製至新高速緩衝記憶體區塊,並將有關該複製後之情形的管理資訊附加至該新高速緩衝記憶體區塊。
較佳地,若該高速緩衝記憶體區塊中存在複數項管理資訊,該控制電路便使最近寫入之管理資訊項有效。
較佳地,該控制電路可於附加該寫入資料之前,將附加管理資訊寫入至該新高速緩衝記憶體區塊。
依據本發明之另一實施例,提供一種使用非揮發性記憶體之記憶體控制方法,該非揮發性記憶體係用於允許以叢集為單位而將資料寫入其中和從中讀取資料,並用於許可以由複數扇區構成之區塊為單位而從中刪除資料,該非揮發性記憶體包括管理區、使用者資料區和高速緩衝記憶體區,該記憶體控制方法包含以下步驟:記錄儲存該使用者資料區中邏輯區塊之位址連同配賦予該邏輯區塊的實體區塊之位址的邏輯/實體表,和相應於該邏輯/實體表中該實體區塊之位址的該高速緩衝記憶體區中實體區塊之位址;及一旦將大小小於構成以使用者區塊中複數扇區為單位之邏輯空間大小的指定邏輯大小之資料寫入該使用者資料區中,便將該資料儲存於適當選擇之高速緩衝記憶體區塊中,同時將部分管理資訊寫入保存該資料之高速緩衝記憶體區塊中。
依據本發明之進一步實施例,提供一種使電腦於非揮發性記憶體上執行記憶體控制程序之程式,該非揮發性記憶體係用於允許以叢集為單位而將資料寫入其中和從中讀取資料,並用於許可以由複數扇區構成之區塊為單位而從中刪除資料,該非揮發性記憶體包括管理區、使用者資料區和高速緩衝記憶體區,該記憶體控制程序包含以下步驟:記錄儲存該使用者資料區中邏輯區塊之位址連同配賦予該邏輯區塊的實體區塊之位址的邏輯/實體表,和相應於該邏輯/實體表中該實體區塊之位址的該高速緩衝記憶體區中實體區塊之位址;及一旦將大小小於構成以使用者區塊中複數扇區為單位之邏輯空間大小的指定邏輯大小之資料寫入該使用者資料區中,便將該資料儲存於適當選擇之高速緩衝記憶體區塊中,同時將部分管理資訊寫入保存該資料之高速緩衝記憶體區塊中。
在如上列概述而體現本發明處,部分管理資訊便儲存於預定高速緩衝記憶體區塊中。即,部分管理資訊係儲存於儲存使用者資料之區塊中。此使其可於高速緩衝記憶體區塊中保持複數邏輯空間,同時保持大小完整無缺而將管理資料儲存於非揮發性記憶體,藉以降低發生回寫作業之次數。
依據本發明,如上列概述,可靠地降低回寫作業之頻率。此於抑制回寫時反過來避免寫入性能下降。
現在將參照圖式描述本發明之較佳實施例。圖1為一示意圖,概述體現本發明之資料處理系統的典型組態。
如圖1中所示,資料處理系統係由兩主要組件構成:主機裝置10,及可移除地附加於主機裝置10之記憶卡20。在本實施例中,記憶卡20包括非揮發性記憶體之快閃記憶體。
主機裝置10典型地係由個人電腦、數位照相機、數位攝影機或音頻記錄器等裝備構成。主機裝置10包括中央處理單元(CPU)11、記憶體12、顯示單元13、輸入/輸出(I/O)段14及外部記憶體介面15。
CPU 11經由匯流排16而與記憶體12、顯示單元13、I/O段14及外部記憶體介面15相連接。記憶體12具有唯讀記憶體(ROM)以儲存程式,和做為工作記憶體之隨機存取記憶體(RAM)。外部記憶體介面15依據來自CPU 11之控制指令而發送資料予記憶卡20和接收來自記憶卡20之資料。
記憶卡20包括CPU 21、記憶體22、快閃記憶體23及主機介面24。
CPU 21經由匯流排25而與記憶體22、快閃記憶體23及主機介面24相連接。記憶體22具有ROM以儲存程式,和做為工作記憶體之RAM。快閃記憶體23典型地為反或(NOR)或反及(NAND)型快閃記憶體(非揮發性記憶體)。主機介面24依據來自CPU 21之控制指令而發送資料予主機裝置10和接收來自主機裝置10之資料。
圖2為一區塊圖,顯示圖1中記憶卡20之典型結構。如圖2中所示,記憶卡20為一種板型Memory Stick(註冊商標)。當記憶卡20附著至主機裝置10時,主機裝置10所供應之資料便寫入至記憶卡20。記憶卡20具有控制器段30及記憶體段40。記憶體段40包括複數快閃記憶體23,並由控制器段30控制對於快閃記憶體23之存取。
控制器段30包括串列介面31、並列介面32、暫存器33、資料緩衝器34、錯誤修正電路(ECC)35、微處理單元(MPU)36及時脈信號產生器37。串列介面31、並列介面32、暫存器33、資料緩衝器34及ECC 35經由匯流排38而彼此互相連接。暫存器33、資料緩衝器34及ECC 35被連接至MPU 36。
暫存器33包括指令暫存器和其他暫存器。資料緩衝器34暫時保存與快閃記憶體23連接而存取之資料。ECC 35實施保存於資料緩衝器34中之資料的錯誤修正程序。時脈信號產生器37產生用於Memory Stick內部之時脈信號。
主機設備10輸出之資料經由信號線DATA0至DATA3而輸入至串列介面31和並列介面32其中之一或二者。由此,資料被轉移至資料緩衝器34。資料緩衝器34中資料經由MPU 36而被寫入至快閃記憶體23。
記憶卡20經由信號線VSS和VCC而被供應予參考電壓和源極電壓。記憶卡20亦配置其他信號線:信號線SCLK,經此而輸入自主機裝置10輸入資料所需之時脈信號;信號線INS,用以檢查而判斷記憶卡20是否正常地附著至主機裝置10;及信號線BS,用以判斷從主機裝置10供應之資料的方向。
下列為資料處理系統所實施之寫入作業的概述。主機裝置10首先於寫入資料之前發送寫入指令和寫入資料位址予記憶卡20。每一快閃記憶體23具有以扇區為單位而寫入其中之資料並自其中讀取資料,其中主機裝置20係以叢集為單位而寫入和讀取資料。記憶卡20所接收之寫入資料因而被置於資料緩衝器34中。當寫入資料之接收完成後,保存於資料緩衝器34中之寫入資料便被寫入至快閃記憶體23。
以下概述資料處理系統所實施之讀取作業。主機裝置10首先發送讀取指令和讀取資料位址予記憶卡20。一旦接收該指令和位址,便自快閃記憶體23讀取提及之資料並將其置於資料緩衝器34中。當完成從快閃記憶體23讀取提及之資料時,所讀取之保存於資料緩衝器34中之資料便發送予主機裝置10。
以下將概述體現本發明之記憶體控制方法。圖3為一示意圖,顯示使用者資料區塊與高速緩衝記憶體區塊之間之相應性的典型關係。在圖3中,參考編號51代表邏輯/實體表,參考編號52則標示高速緩衝記憶體區塊。
圖1和2中所示之快閃記憶體23保持標示圖3中所示之使用者資料區塊的實體與邏輯位址之間的相應性關係之邏輯/實體表51。在邏輯/實體表51中,邏輯區塊之位址0、1、2、3、4和5係與配賦予邏輯區塊之實體區塊的位址3、8、7、6、5和4相關。當記憶卡20附著至主機裝置20時,控制器段30便從快閃記憶體23讀取邏輯/實體表51並予更新,藉以符合資料寫入作業。
邏輯/實體表51中每一實體區塊位址3、8、7、6、5和4係與高速緩衝記憶體區塊52中實體位址2、1、0和9之一相關。高速緩衝記憶體區塊中實體位址2、1、0和9係如參考編號53所表示的以使用頻率之上升順序配置。
例如,假設實體區塊位址8、1、6和4標示自由區中實體區塊之位址。如此一來,自由區塊之新高速緩衝記憶體區塊52中實體位址2、1、0和9(即資料-自由高速緩衝記憶體區)便分別配賦予實體區塊位址8、1、6和4。在高速緩衝記憶體區之新高速緩衝記憶體區塊52中,實體位址2、1、0和9係以相關使用頻率之上升順序配置。此使得將被寫入之資料可從高速緩衝記憶體區塊52之開端開始。
之後為體現本發明之記憶體控制方法的先決條件之描述。在繼而發生之描述中所使用之主要術語定義如下。
例如圖2中記憶卡20之記憶體設備中複數快閃記憶體23各包括管理區41、使用者資料區42和高速緩衝記憶體區43。使用者資料區42中之區塊稱為使用者資料區塊,而高速緩衝記憶體區43中之區塊則稱為高速緩衝記憶體區塊。高速緩衝記憶體區塊與使用者區塊大小相等。當每一高速緩衝記憶體區塊之邏輯空間被分為使用者區塊時,每一部分具有稱為邏輯區塊大小之大小。當每一使用者區塊之邏輯空間被分為複數扇區時,每一部分具有稱為邏輯頁面大小(亦稱為指定邏輯邊界)之大小。資料已被刪除之區塊稱為自由區塊。新高速緩衝記憶體區塊係自該等自由區塊獲得。
回寫作業包含將保存於高速緩衝記憶體區塊中之資料回寫至使用者資料區塊,藉此中斷該高速緩衝記憶體區塊之使用。此使其必須將使用者資料區塊中之資料與高速緩衝記憶體區塊中之資料合併。此合併觸發了複製作業。在合併之後,已成為不必要之區塊需予以刪除。亦存在稱為廢料收集之作業。此為實施回寫所需之複製作業。
接著為高速緩衝記憶體區塊之描述。有兩類高速緩衝記憶體區塊:AD-高速緩衝記憶體和OD-高速緩衝記憶體。可用之高速緩衝記憶體區塊的總數量是固定的。AD-高速緩衝記憶體之數量和OD-高速緩衝記憶體之數量隨著主機裝置所實施之寫入作業而改變。
AD-高速緩衝記憶體為用於保持檔案資料之高速緩衝記憶體區塊。OD-高速緩衝記憶體或AD-高速緩衝記憶體係依據寫入大小而予識別。若於獲得新高速緩衝記憶體區塊之後實施寫入作業時超出指定邏輯邊界(邏輯頁面大小)便識別為AD-高速緩衝記憶體。
依據首先寫入資料之邏輯位址,便限制將資料寫入AD-高速緩衝記憶體中之後續邏輯位址。若首先寫入資料之邏輯位址空間位於特定邏輯區塊大小空間(A)內部,及若接著寫入資料之邏輯位址位於邏輯空間(A)內部且位於高速緩衝記憶體區塊之寫入邏輯空間外部,便可將資料寫入至該高速緩衝記憶體區塊。
OD-高速緩衝記憶體為用於保存例如FAT和目錄條目之管理資訊的高速緩衝記憶體區塊。OD-高速緩衝記憶體或AD-高速緩衝記憶體係依據寫入大小而予識別。若於獲得新高速緩衝記憶體區塊之後實施寫入作業時未超出指定邏輯邊界(邏輯頁面大小)便識別為OD-高速緩衝記憶體。
依據首先寫入資料之邏輯位址,便限制將資料寫入OD-高速緩衝記憶體中之後續邏輯位址。若首先寫入資料之邏輯位址空間位於特定邏輯區塊大小空間(B)內部,及若接著寫入資料之邏輯位址位於邏輯空間(B)內部,便可將資料寫入至該高速緩衝記憶體區塊。
高速緩衝記憶體區塊相關資訊以下說明為部分管理資訊。管理資訊包括表示高速緩衝記憶體區塊更新之頻率的資訊,標示相應於高速緩衝記憶體區塊之邏輯區塊的資訊,及有關高速緩衝記憶體區塊中第一邏輯位址的資訊。
有關高速緩衝記憶體區塊中寫入扇區之位址資訊未包括於管理資訊中,寫入扇區位址係經由讀取高速緩衝記憶體區塊內部而獲得。表示所處理之高速緩衝記憶體區塊係為AD-高速緩衝記憶體或OD-高速緩衝記憶體之資訊亦包括於管理資訊中。
現在將描述記憶體控制方法之具體作業。圖4至8為表示寫入程序之流程圖。圖4至8概述CPU 21所實施之步驟,用以將資料寫入至快閃記憶體23。
在圖4之步驟S1中,CPU 21從管理區41中之管理資訊獲得有關使用者資料區42中之使用者資料區塊的位址資訊和寫入邏輯空間資訊。CPU 21亦獲得有關高速緩衝記憶體區43中之高速緩衝記憶體區塊的位址資訊和寫入邏輯空間資訊,該位址資訊相應於使用者資料區42中之使用者資料區塊的邏輯位址。CPU 21進一步獲得有關高速緩衝記憶體區43中之新高速緩衝記憶體區塊(自由區塊)的位址資訊。
在步驟S2中,CPU 21檢查以判斷是否使用高速緩衝記憶體區塊中之任何配置的高速緩衝記憶體區塊。此係於步驟S2中實施以搜尋例如圖9A和9B中所示高速緩衝記憶體區塊之一的高速緩衝記憶體區塊。
圖9A和9B為示意圖,各顯示具有從主機裝置寫入之資料的完整狀態之高速緩衝記憶體區塊(AD-高速緩衝記憶體)(兩種類型)。
圖9A顯示類型1之高速緩衝記憶體區塊(AD-高速緩衝記憶體)142,其具有相應於使用者資料區塊141之邏輯扇區位址0至"n",並填注以寫入資料143和從主機裝置寫入之資料144。
圖9B顯示類型2之高速緩衝記憶體區塊(AD-高速緩衝記憶體)146,其具有相應於使用者資料區塊145之邏輯扇區位址2至"n"、0和1,並填注以寫入資料147和從主機裝置寫入之資料148。
在圖9A和9B中之任一高速緩衝記憶體區塊狀態中,無進一步資料可寫入至高速緩衝記憶體區塊。因為無具有該高速緩衝記憶體區塊之點,所以回寫作業優先於高速緩衝記憶體區塊上實施。若未應用圖9A和9B中之狀態,回寫作業便優先地以低使用頻率於高速緩衝記憶體區塊上實施。
若步驟S2中未發現存在配置的高速緩衝記憶體區塊,便到達步驟S3。在步驟S3中,CPU 21檢查以判斷是否存在任何未使用之高速緩衝記憶體區塊。若在步驟S3中發現存在未使用之高速緩衝記憶體區塊,便到達並實施圖5中步驟S10和後續步驟。若在步驟S3中未發現存在未使用之高速緩衝記憶體區塊,便到達步驟S4。在步驟S4中,CPU 21檢查以判斷是否有完整狀態之高速緩衝記憶體區塊(AD-高速緩衝記憶體)。
若在步驟S4中未發現存在完整狀態之高速緩衝記憶體區塊(AD-高速緩衝記憶體),便到達步驟S5。在步驟S5中,CPU 21獲得低使用頻率之高速緩衝記憶體區塊。在步驟S7中,CPU 21實施回寫,藉此所獲得之低使用頻率之高速緩衝記憶體區塊便重新配置予使用者資料區塊中之邏輯扇區位址。在步驟S8中,CPU 21更新記憶體22中之管理資訊,並前進至圖5中之步驟S10及後續步驟。
若步驟S4中發現存在完整狀態之高速緩衝記憶體區塊(AD-高速緩衝記憶體),便到達步驟S6。在步驟S6中,CPU 21於到達步驟S7之前獲得完整狀態之高速緩衝記憶體區塊。
若步驟S2中發現存在配置的高速緩衝記憶體區塊,便到達步驟S9。在步驟S9中,CPU 21檢查以判斷提及之高速緩衝記憶體區塊是否為AD-高速緩衝記憶體或OD-高速緩衝記憶體。若步驟S9中發現提及之高速緩衝記憶體區塊為AD-高速緩衝記憶體,便到達並實施圖6中之步驟S21及後續步驟。若步驟S9中發現高速緩衝記憶體區塊為OD-高速緩衝記憶體,便到達並實施圖7中之步驟S31及後續步驟。
在圖5之步驟S10中,CPU 21檢查以判斷在指定邏輯邊界內寫入資料是否已停止。若步驟S10中發現寫入資料已超出指定邏輯邊界,便到達步驟S14。在步驟S14中,CPU 21將資料寫入至新高速緩衝記憶體區塊(AD-高速緩衝記憶體)。步驟S14中新高速緩衝記憶體區塊(AD-高速緩衝記憶體)之使用允許寫入資料而不觸發回寫作業。在步驟S14中,資料從高速緩衝記憶體區塊之開端開始寫入,無關乎邏輯位址。
圖10為一示意圖,顯示步驟S14中寫入時高速緩衝記憶體區塊之狀態及使用者資料區塊之狀態。假設在圖10中資料被寫入至使用者資料區塊111中之邏輯扇區位址2至5。基於資料因而寫入,邏輯扇區位址2至5從區塊之開端開始被寫入高速緩衝記憶體區塊112中,其餘高速緩衝記憶體區塊則保持空白。
在步驟S14中之寫入作業之後,便到達步驟S15。在步驟S15中,因為高速緩衝記憶體區塊112已被新配置予使用者資料區塊111,所以CPU 21更新記憶體22中之管理資訊。在步驟S16中,CPU 21將管理資訊寫入至管理區41。
在圖6之步驟S21中,CPU 21檢查以判斷高速緩衝記憶體區塊(AD-高速緩衝記憶體)是否僅具有其寫入區處於完整狀態。若步驟S21中未發現高速緩衝記憶體區塊(AD-高速緩衝記憶體)僅具有其寫入區處於完整狀態,便到達步驟S22。在步驟S22中,CPU 21檢查以判斷是否符合寫入至高速緩衝記憶體區塊(AD-高速緩衝記憶體)之狀況。
若步驟S22中發現符合寫入至高速緩衝記憶體區塊(AD-高速緩衝記憶體)之狀況,便到達步驟S23。在步驟S23中,CPU 21於高速緩衝記憶體區塊(AD-高速緩衝記憶體)上實施寫入作業。在步驟S24中,CPU 21更新記憶體22中之管理資訊。
步驟S22中所實施係判斷有關將寫入資料之邏輯空間是否應用於圖11中所示相對於高速緩衝記憶體區塊中之寫入邏輯空間而不同配置之邏輯空間81至84之一。
圖11為一示意圖,顯示符合步驟S22中寫入狀況之典型寫入類型。在圖11中,參考編號81標示於寫入空間86中寫入扇區之後開始寫入資料之狀況;參考編號82表示於寫入空間86中寫入扇區之後立即開始寫入資料之狀況;參考編號83代表在寫入空間86中寫入扇區內已停止從主機裝置寫入資料之狀況;及參考編號84表示於寫入空間86中寫入扇區之前即已停止從主機裝置寫入資料之狀況。
步驟S23中所實施係將資料寫入至配置的高速緩衝記憶體區塊而不依靠回寫作業。在步驟S23中,於高速緩衝記憶體區塊內部寫入扇區之後立即開始寫入資料。若不可能於寫入扇區之後立即開始寫入資料,便複製直至寫入起始扇區位址之資料區。
圖12為一示意圖,顯示步驟S23中寫入時高速緩衝記憶體區塊之狀態和使用者資料區塊之狀態。說明上假設實質具有圖10之狀態,並於使用者資料區塊121中之邏輯扇區位址7和8展開寫入作業。如此一來,基於已完成之寫入作業,寫入至高速緩衝記憶體區塊122中之邏輯扇區位址2至5的資料123之後為從使用者資料區塊121複製至邏輯扇區位址6的資料124。在資料124之後為從主機裝置寫入至邏輯扇區位址7和8的資料125。
在步驟S23中寫入之後,高速緩衝記憶體區塊中並無區塊位址改變。其並未蒙受任何至管理區41以儲存管理資訊之寫入作業;僅記憶體22中管理資訊於步驟S24中被更新。若步驟S21中發現高速緩衝記憶體區塊(AD-高速緩衝記憶體)僅具有其寫入區處於完整狀態,或若步驟S22中未發現符合寫入至高速緩衝記憶體區塊(AD-高速緩衝記憶體)之狀況,便到達步驟S25-1。在步驟S25-1中,CPU 21檢查以判斷寫入大小使否等於邏輯區塊大小。若步驟S25-1中未發現寫入大小等於邏輯區塊大小,便到達步驟S25且CPU 21實施回寫作業。在步驟S26中,CPU 21更新記憶體22中之管理資訊。
步驟S25中所展開係基於所實施之寫入作業,假設高速緩衝記憶體區塊(AD-高速緩衝記憶體)係處於圖9A和9B中所示完整狀態之一,實施回寫作業而不觸發廢料收集。此時,高速緩衝記憶體區塊係登錄於管理區塊中做為使用者資料區塊。回寫之前的實質使用者資料區塊之內容被刪除,且結果之使用者資料區塊被登錄做為管理資訊中之自由區塊。
即使未發現高速緩衝記憶體區塊(AD-高速緩衝記憶體)處於完整狀態,仍可於步驟S25中實施廢料收集,而使高速緩衝記憶體區塊處於完整狀態。若步驟S25-1中發現寫入大小等於邏輯區塊大小,資料便於圖8之步驟S41中完全寫入至新高速緩衝記憶體區塊(AD-高速緩衝記憶體)。在步驟S42中,CPU 21檢查以判斷是否配置高速緩衝記憶體區塊(AD-高速緩衝記憶體)。
若步驟S42中發現將配置高速緩衝記憶體區塊(AD-高速緩衝記憶體),便到達步驟S43。在步驟S43中,CPU 21刪除已配置之高速緩衝記憶體區塊(AD-高速緩衝記憶體)。在高速緩衝記憶體區塊(AD-高速緩衝記憶體)於步驟S43中被刪除之後,CPU 21便前進至步驟S44,由於配置予使用者資料區塊111之高速緩衝記憶體區塊112已被刪除,CPU 21便更新記憶體22中之管理資訊。在步驟S45中,CPU 21將管理資訊寫入至管理區41。
若步驟S42中未發現將配置高速緩衝記憶體區塊(AD-高速緩衝記憶體),便到達步驟S46。在步驟S46中,由於對使用者資料區塊111而言存在未配置之高速緩衝記憶體區塊112,所以CPU 21更新記憶體22中之管理資訊。在步驟S47中,CPU 21將管理資訊寫入至管理區41。
如同所描述的,基於已配置之高速緩衝記憶體區塊(AD-高速緩衝記憶體獲知後將討論的OD-高速緩衝記憶體),便伴隨回寫作業展開寫入作業。如此一來,若發現寫入大小等於邏輯區塊大小,資料便被寫入至新高速緩衝記憶體區塊而不需依靠回寫,並刪除舊高速緩衝記憶體區塊。
由於回寫作業在上述狀況下被抑制,歸因於廢料收集之寫入性能下降得以避免。應注意的是展開刪除作業,性能保持固定係由於缺少廢料收集,與是否配置高速緩衝記憶體區塊(AD-高速緩衝記憶體或OD-高速緩衝記憶體)無關。
圖13為一示意圖,顯示步驟S25中寫入時高速緩衝記憶體區塊之狀態和使用者資料區塊之狀態。圖13中說明,具邏輯扇區位址0至"n"之使用者資料區塊131係與具位於邏輯扇區位址2至7之寫入資料133的高速緩衝記憶體區塊132。如此一來,如參考編號134所表示的,處於其他邏輯扇區位址8至"n"、0和1之資料便從使用者資料區塊131複製至高速緩衝記憶體區塊132。此使高速緩衝記憶體區塊132處於完整狀態,使得可實施回寫作業而重新配置高速緩衝記憶體區塊。
換言之,如圖13中所示,使用者資料區塊131中所有資料被複製至高速緩衝記憶體區塊132。在此複製作業之後,高速緩衝記憶體區塊132被登錄為記憶體22之管理資訊中之使用者資料區塊131。實質使用者資料區塊之內容於複製之前被刪除,並被登錄為記憶體22之管理資訊中之自由區塊。
上述描述係有關超出指定邏輯邊界之寫入作業。之後將描述落於指定邏輯邊界內之寫入作業。
若圖5之步驟S10中發現在指定邏輯邊界內已停止寫入資料,便到達步驟S11。在步驟S11中,CPU 21將資料寫入至新高速緩衝記憶體區塊(OD-高速緩衝記憶體)。新高速緩衝記憶體區塊(OD-高速緩衝記憶體)係用於步驟S11中之寫入作業,以避免回寫作業。在步驟S11中,資料係從高速緩衝記憶體區塊之開端開始寫入,與邏輯位址無關。
圖14為一示意圖,顯示步驟S11中寫入時高速緩衝記憶體區塊之狀態和使用者資料區塊之狀態。圖14中說明,假設寫入作業係於使用者資料區塊151中之邏輯扇區位址2上實施。在寫入作業之後,從主機裝置寫入至高速緩衝記憶體區塊152中之邏輯扇區位址2的資料153之後為參考編號154所表示之從使用者資料區塊151複製至邏輯扇區位址3之資料。資料之二扇區結合以形成指定邏輯邊界155。其餘的高速緩衝記憶體區塊則留下而沒有資料。
在步驟S11中之寫入作業之後,CPU 21前進至步驟S12,由於高速緩衝記憶體區塊152已重新配置予使用者資料區塊151,所以CPU 21更新記憶體22中之管理資訊。在步驟S13中,CPU 21將管理資訊寫入至管理區41。
由於高速緩衝記憶體區塊被用於處理指定邏輯邊界內寫入之資料,所以步驟S11所實施係為未伴隨回寫作業之寫入作業。在步驟S11中,資料係從高速緩衝記憶體區塊之開端開始寫入,與邏輯位址無關。
說明上,若寫入作業係於代表構成圖14中之指定邏輯邊界155之兩扇區的邏輯扇區位址2上實施,那麼在寫入作業之後,高速緩衝記憶體區塊152便出現圖14中所示之狀態。即,位於邏輯扇區位址2之資料被寫入至高速緩衝記憶體區塊152之開端,且位於邏輯位址3之資料係複製自使用者資料區塊151中之任一資料。在寫入和複製作業之後,更新記憶體22中之管理資訊以反映新配置之高速緩衝記憶體區塊152。該管理資訊亦被寫入至管理區41。
在圖7之步驟S31中,CPU 21檢查以判斷是否符合寫入至高速緩衝記憶體區塊(OD-高速緩衝記憶體)之狀況。若步驟S31中發現符合寫入至高速緩衝記憶體區塊(OD-高速緩衝記憶體)之狀況,便到達.步驟S32。在步驟S32中,CPU 21檢查以判斷高速緩衝記憶體區塊(OD-高速緩衝記憶體)是否僅具有其寫入區處於完整狀態。
若步驟S32未發現高速緩衝記憶體區塊(OD-高速緩衝記憶體)僅具有其寫入區處於完整狀態,便到達步驟S33。在步驟S33中,CPU 21於高速緩衝記憶體區塊(OD-高速緩衝記憶體)上實施寫入作業。在步驟S34中,CPU 21更新記憶體22中之管理資訊。
步驟S31中所實施係判斷有關將寫入資料之邏輯空間是否應用於圖15中所示之相對於高速緩衝記憶體區塊中之寫入邏輯空間而不同配置之邏輯空間91和92之一。
圖15為一示意圖,顯示符合步驟S31中之寫入狀況的典型寫入類型。在圖15中,參考編號91標示資料被寫入寫入空間94中之狀況,及參考編號92代表資料被寫入與寫入空間94相同之區域中。
步驟S33中所展開係為於配置的高速緩衝記憶體區塊上實施而未觸發回寫作業之寫入作業。在步驟S33中,資料係於高速緩衝記憶體區塊中之寫入扇區之後立即被寫入。
圖16為一示意圖,顯示步驟S33中寫入時高速緩衝記憶體區塊之狀態和使用者資料區塊之狀態。說明上,假設處於圖16之狀態,資料再次被寫入至使用者資料區塊161中之邏輯扇區位址2。如此一來,在實施寫入之後,寫入至高速緩衝記憶體區塊162中之邏輯扇區位址2和3的資料163之後為參考編號164所表示之從主機裝置寫入至邏輯扇區位址2之資料。如參考編號165所表示的,資料係從使用者資料區塊複製至邏輯扇區位址3。之後,參考編號164和165所表示之邏輯扇區位址2和3構成指定邏輯邊界166。
在步驟S33中寫入之後,高速緩衝記憶體區塊中便無區塊位址改變。此未蒙受任何儲存管理資訊之至管理區41的寫入作業;僅記憶體22中之管理資訊於步驟S34中被更新。
若步驟S31中未發現符合寫入至高速緩衝記憶體區塊(OD-高速緩衝記憶體)之狀況,便到達步驟S35。在步驟S35中,CPU 21檢查以判斷是否符合寫入至高速緩衝記憶體區塊(OD-高速緩衝記憶體)之狀況。
若步驟S35中發現符合寫入至高速緩衝記憶體區塊之狀況,即從主機裝置寫入資料之範圍落入指定邏輯邊界之大小內,便到達圖17之各步驟並予實施。若寫入資料超出指定邏輯邊界之大小,便到達步驟S39-1。
圖18為一示意圖,顯示符合步驟S35中寫入狀況之典型寫入類型。步驟S35中所實施係判斷有關寫入資料之邏輯空間是否應用於相對於高速緩衝記憶體區塊中之寫入邏輯空間而不同配置之圖18中所示邏輯空間101-1、101-2、102-1和102-2之一。
圖17為符合寫入至高速緩衝記憶體區塊(OD-高速緩衝記憶體)之狀況時將實施之步驟的流程圖。之後為圖17中步驟所構成之程序流程描述。
在圖17之步驟S3501中,實施檢查以判斷來自主機裝置之附加資料是否可寫入至高速緩衝記憶體區塊(OD-高速緩衝記憶體)。當實施檢查時,亦考量圖19中所示之將寫入至高速緩衝記憶體區塊(OD-高速緩衝記憶體)之OD管理資訊。若步驟S3501中發現附加資料可寫入至高速緩衝記憶體區塊,便到達步驟S3502。若步驟S3501中未發現附加資料可寫入至高速緩衝記憶體區塊,便到達步驟S3505。
圖19為一示意圖,顯示步驟S3501中處於完整狀態(類型2)之高速緩衝記憶體區塊的狀態。在此狀況下,自由空間之大小便小於寫入大小和OD管理資訊之大小的總和。
在步驟S3502中,由於資料被寫入至與目前寫入資料之邏輯空間不同的邏輯空間,所以例如圖20中所示並置於RAM中之OD管理資訊110(表示OD-高速緩衝記憶體中寫入資料之實體位置)被更新。更新之後,OD管理資訊便被附加至高速緩衝記憶體區塊(OD-高速緩衝記憶體)並到達步驟S3503。
OD管理資訊110被儲存於快閃記憶體中,使得啟動時可快速獲得高速緩衝記憶體區塊(OD-高速緩衝記憶體)中之有效資料的實體位址。不需讀取整個高速緩衝記憶體區塊(OD-高速緩衝記憶體)。儘管因在快閃記憶體上之寫入作業而發生有限的過熱量,當相較於普通回寫作業時,該作業的影響是可忽略的。
圖20為一示意圖,顯示用於本發明之實施例之OD管理資訊的典型結構。OD管理資訊110係用於管理區塊大小,並為邏輯扇區位址和相應於該邏輯扇區位址之實體扇區位址所構成。若無位址登錄,OD管理資訊便由表示缺少登錄之設定構成。
圖21為一示意圖,顯示當OD管理資訊於步驟S3502中被寫入至高速緩衝記憶體區塊(OD-高速緩衝記憶體)時之實質典型狀態。在此狀況下,指定邏輯邊界與OD管理資訊110大小相等。
在步驟S3503中,OD管理資訊110被寫入至高速緩衝記憶體區塊。接著將附加資料從主機裝置寫入至高速緩衝記憶體區塊,並到達步驟S3504。
圖22為一示意圖,顯示當OD管理資訊於步驟S3503中被寫入至高速緩衝記憶體區塊(OD-高速緩衝記憶體)時之實質典型狀態。如圖22中所示,OD管理資訊首先被寫入至高速緩衝記憶體區塊,之後為從主機裝置寫入之資料。
在步驟S3504中,RAM中之管理資訊被更新。
若步驟S3501中未發現附加資料可寫入至高速緩衝記憶體區塊,便到達步驟S3505。在步驟S3505中,實施檢查以判斷登錄於高速緩衝記憶體區塊(OD-高速緩衝記憶體)中之邏輯空間之數量是否大於預定數量。若步驟S3505中發現所登錄之邏輯空間之數量大於預定數量,便到達步驟S3511。若步驟S3505中發現邏輯空間總數小於預定數量,便到達步驟S3506。
圖23為一示意圖,顯示複數邏輯資料於步驟S3505中如何寫入至高速緩衝記憶體區塊(OD-高速緩衝記憶體)。在此狀況下,最近寫入至高速緩衝記憶體區塊之OD管理資訊110變成有效。
在步驟S3506中,保存在高速緩衝記憶體區塊(OD-高速緩衝記憶體)中之有效資料被複製至新高速緩衝記憶體區塊(OD-高速緩衝記憶體)。此時亦更新RAM中之OD管理資訊,並到達步驟S3507。有效資料被複製至新高速緩衝記憶體區塊之原因如下:寫入高速緩衝記憶體區塊(OD-高速緩衝記憶體)中之資料包括FAT和包含相同邏輯位址之頻繁更新的其他條目。一旦寫入至高速緩衝記憶體區塊(OD-高速緩衝記憶體),便預期資料將被頻繁更新,因而若歷經回寫作業便較複製(即在兩區塊刪除之前複製區塊中所有頁面)蒙受更多過熱。
圖24為一示意圖,顯示有效資料於步驟S3506中被複製至新高速緩衝記憶體區塊(OD-高速緩衝記憶體)後之實質典型狀態。在複製有效資料時,複製最近寫入之有效OD管理資訊110。在複製的OD管理資訊之前為填注資料之配置的邏輯扇區位址0至7。在OD管理資訊110之後為自由區。
在步驟S3507中,在有效資料被複製至新高速緩衝記憶體區塊(OD-高速緩衝記憶體)之後的實質OD管理資訊110被附加地寫入至新高速緩衝記憶體區塊(OD-高速緩衝記憶體)。步驟S3507之後為步驟S3508。
在步驟S3508中,基於所儲存之OD管理資訊,資料從主機裝置被附加地寫入至新高速緩衝記憶體區塊。步驟S3508之後為步驟S3509。
步驟S3511和後續步驟係與以下將討論之圖7中步驟S39和後續步驟相同。
若步驟S35中未發現資料寫入之範圍為高速緩衝記憶體區塊(OD-高速緩衝記憶體)中指定邏輯邊界之後,便到達步驟S39-1。在步驟S39-1中,CPU 21檢查以判斷寫入大小是否與邏輯區塊大小相同。若步驟S39-1中未發現寫入大小與邏輯區塊大小相同便到達步驟S39,且CPU 21實施回寫作業。在步驟S40中,CPU 21更新記憶體22中之管理資訊。步驟S39中所實施係於寫入作業展開時獲得新高速緩衝記憶體區塊(AD-高速緩衝記憶體)以實施回寫。
圖25為一示意圖,顯示步驟S39中寫入時高速緩衝記憶體區塊之狀態和使用者資料區塊之狀態。說明上,如參考編號174所表示的,高速緩衝記憶體區塊172中邏輯扇區位址2和3之資料首先被複製至新高速緩衝記憶體區塊173。之後,如參考編號174所表示的,使用者資料區塊171中其他邏輯扇區位址4至"n"、0和1之資料被複製至新高速緩衝記憶體區塊173。從圖16之狀態開始,執行步驟S39中之回寫作業,引發了有關圖24中所示之狀態。
在與步驟S39中之回寫結合的複製作業之後,新高速緩衝記憶體區塊173被登錄為管理資訊中使用者資料區塊171。舊使用者資料區塊171之內容被刪除並登錄為管理資訊中自由區塊。
若步驟S32中發現高速緩衝記憶體區塊(OD-高速緩衝記憶體)僅具有其寫入區處於完整狀態,便到達步驟S41。在步驟S41中,CPU21於新高速緩衝記憶體區塊(OD-高速緩衝記憶體)上實施寫入作業。步驟S41中使用新高速緩衝記憶體區塊使其可寫入資料而不觸發回寫作業。在步驟S41中,資料係從高速緩衝記憶體區塊之開端開始寫入,與邏輯位址無關。
在步驟S41中之寫入作業後,便到達步驟S42。在步驟S42中,由於高速緩衝記憶體區塊已重新配置予使用者資料區塊,CPU21便更新記憶體22中之管理資訊。在步驟S43中,CPU21將管理資訊寫入至管理區41。步驟S41中所實施係實施高速緩衝記憶體區塊更新而不觸發回寫作業,此歸因於新獲得之高速緩衝記憶體區塊(OD-高速緩衝記憶體)。
圖26為一示意圖,顯示步驟S41中寫入之前高速緩衝記憶體區塊之狀態和使用者資料區塊之狀態。圖27為一示意圖,顯示步驟S41寫入之後高速緩衝記憶體區塊之狀態和使用者資料區塊之狀態。
說明上,假設基於如圖26中所示形成之高速緩衝記憶體區塊182和使用者資料區塊181,便於邏輯扇區位址2上實施其他寫入作業。在此狀況下,如圖27中所示,來自主機裝置之資料如參考編號194所表示的被寫入至高速緩衝記憶體區塊193之開端的邏輯扇區位址2,之後為從使用者資料區塊191複製至邏輯扇區位址3之資料。
在步驟S41中之複製作業之後,新高速緩衝記憶體區塊193被登錄為管理資訊中新使用者資料區塊。舊使用者資料區塊191之內容被刪除,並被登錄為管理資訊中之自由區塊。
若步驟S35中發現資料寫入之範圍為高速緩衝記憶體區塊(OD-高速緩衝記憶體)中指定邏輯邊界之後,便到達步驟S36。在步驟S36中,CPU 21於新高速緩衝記憶體區塊(AD-高速緩衝記憶體)上實施寫入作業。步驟S36中使用新高速緩衝記憶體區塊使其可寫入資料而不觸發回寫作業。在步驟S36中,資料係從高速緩衝記憶體區塊之開端開始寫入,與邏輯位址無關。
圖28為一示意圖,顯示步驟S36中寫入之前高速緩衝記憶體區塊之狀態和使用者資料區塊之狀態。圖29為一示意圖,顯示步驟S36中寫入之後高速緩衝記憶體區塊之狀態和使用者資料區塊之狀態。
說明上,假設基於如圖28中所示形成之高速緩衝記憶體區塊202和使用者資料區塊201,資料便寫入至使用者資料區塊201中之邏輯位址5至7。在此狀況下,如圖29中所示,邏輯扇區位址2和3之資料如參考編號214所表示的從高速緩衝記憶體區塊212被複製至新高速緩衝記憶體區塊213之開端,之後為如參考編號215所表示的從使用者資料區塊211複製至邏輯扇區位址4之資料。在資料215複製之後,如參考編號216所表示的資料從主機裝置被寫入至邏輯扇區位址5至7。
在步驟S36中之寫入作業之後,便到達步驟S37。在步驟S37中,由於高速緩衝記憶體區塊213已重新配置予使用者資料區塊211,CPU 21便更新記憶體22中之管理資訊。在步驟S38中,CPU 21將管理資訊寫入至管理區41中。步驟S41中所實施係為實施寫入作業而不觸發回寫作業,此歸因於當符合步驟S35中寫入狀況時新獲得之高速緩衝記憶體區塊(AD-高速緩衝記憶體)。
在步驟S36中寫入之前,參考編號214所表示之資料從高速緩衝記憶體區塊212被複製至新高速緩衝記憶體區塊213。資料接著於緊接著複製資料214之後的扇區開始寫入。若資料無法於緊接著複製資料214之後的扇區開始寫入,便複製使用者資料214直至寫入起始扇區位址。在步驟S36中寫入之後,新高速緩衝記憶體區塊213被登錄為管理資訊中之新高速緩衝記憶體區塊212,並將舊高速緩衝記憶體區塊212刪除。
若步驟S39-1中發現寫入大小不等於邏輯區塊大小,便到達步驟S41。在步驟S41中,CPU 21將資料完整寫入至新高速緩衝記憶體區塊(AD-高速緩衝記憶體)。在步驟S42中,CPU 21檢查以判斷是否已配置高速緩衝記憶體區塊(AD-高速緩衝記憶體)。
若步驟S42中發現將配置高速緩衝記憶體區塊(AD-高速緩衝記憶體),便到達步驟S43。在步驟S43中,CPU 21刪除所配置之高速緩衝記憶體區塊(AD-高速緩衝記憶體)。在步驟S43刪除所配置之高速緩衝記憶體區塊(AD-高速緩衝記憶體)之後,CPU 21便前進至步驟S44。在步驟S44中,CPU 21更新記憶體22中之管理資訊,以反映所配置之高速緩衝記憶體區塊112己相對於使用者資料區塊111而被刪除。在步驟S45中,CPU 21將管理資訊寫入至管理區41。
若步驟S42中未發現配置的高速緩衝記憶體區塊(AD-高速緩衝記憶體),便到達步驟S46。在步驟S46中,CPU 21更新記憶體22中之管理資訊,以反映高速緩衝記憶體區塊(AD-高速緩衝記憶體)相對於使用者資料區塊111而未配置。在步驟S47中,CPU 21將管理資訊寫入至管理區41。
如同所描述的,若以已配置之高速緩衝記憶體區塊(OD-高速緩衝記憶體或AD-高速緩衝記憶體)伴隨回寫作業而實施寫入作業,且若發現寫入大小等於邏輯區塊大小,資料便被寫入至新高速緩衝記憶體區塊而不依靠回寫,並刪除舊高速緩衝記憶體區塊。
由於回寫作業在上述狀況下被抑制,歸因於廢料收集之寫入性能下降得以避免。應注意的是展開刪除作業,性能保持固定係由於缺少廢料收集,與是否配置高速緩衝記憶體區塊(AD-高速緩衝記憶體)無關。
在寫入資料未超出特定指定邏輯邊界處,部分管理資訊被儲存於高速緩衝記憶體區塊(OD-高速緩衝記憶體)中。較具體地,部分OD管理資訊被寫入至保存使用者資料之區塊。此配置使其可維持跨越高速緩衝記憶體區塊(OD-高速緩衝記憶體)中之複數邏輯空間的資料,同時快閃記憶體中之管理資訊的大小保持不變。此反過來協助顯著地降低回寫作業之頻率。
以此方式,可提升管理資訊之量而不改變保存於快閃記憶體中之現有管理資訊的大小,亦不改變管理資訊更新的時序。管理資訊之量的增加解譯為回寫作業之適當減少(及其實際抑制)。
基於回寫作業之頻率因而降低,展開廢料收集和快閃記憶體抹除之頻率遠低於前,藉以避免寫入性能下降。當快閃記憶體較少刪除其內容時,便可延長重新寫入總量(即刪除總量)有限之快閃記憶體的壽命。
特別是,使用FAT之媒體的特徵在於例如FAT1和FAT2中之不連續(間斷)邏輯位址之佈局。該類媒體歷經相同位址之頻繁寫入作業。當用於結合具有大區塊大小(例如在相同區塊中發現FAT1和FAT2)之該類媒體時,本發明所提出之記憶體控制方法最為有效。
此外,在寫入資料未超出特定指定邏輯邊界處,部分管理資訊可保存於高速緩衝記憶體區塊(OD-高速緩衝記憶體)中,以便加速啟動時管理資訊之獲得。即,OD中最後寫入頁面之讀取作業許可獲得保存管理資訊之位置,使得第二讀取作業允許獲得管理資訊。基於不需寫入管理資訊,讀取高速緩衝記憶體區塊(OD-高速緩衝記憶體)之整個內容使其可構成管理資訊。結果,可較前適當地加速啟動時管理資訊之獲得。
圖30為構成以邏輯區塊為單位之寫入程序之步驟的流程圖。在圖30之步驟S111中,CPU 21從管理資訊獲得有關使用者資料區塊之位址資訊及寫入邏輯空間資訊。CPU 21亦獲得有關高速緩衝記憶體區塊之位址資訊及寫入邏輯空間資訊,該位址資訊係相應於使用者資料區塊之邏輯位址。
在步驟S112中,CPU 21檢查以判斷是否存在配置予所考量之使用者資料區塊的高速緩衝記憶體區塊。若步驟S112中發現並無高速緩衝記憶體區塊配置予使用者資料區塊,便到達步驟S113。在步驟S113中,CPU 21讀取來自使用者資料區塊之資料並將所讀取之資料發送予主機裝置。當無高速緩衝記憶體區塊配置予要求讀取資料之邏輯區塊時便實施步驟S113。
若步驟S112中發現高速緩衝記憶體區塊配置予使用者資料區塊,便到達步驟S114。在步驟S114中,CPU 21檢查以判斷讀取起始位址是否小於高速緩衝記憶體區塊中邏輯位址。若步驟S114中發現讀取起始位址小於高速緩衝記憶體區塊中邏輯位址,便到達步驟S115。在步驟S115中,CPU 21檢查以判斷讀取終止位址是否小於高速緩衝記憶體區塊中邏輯位址。若步驟S115中發現讀取終止位址小於高速緩衝記憶體區塊中邏輯位址,便到達步驟S116。在步驟S116中,CPU 21從使用者資料區塊讀取資料,並將所讀取之資料供應予主機裝置。
若步驟S114中未發現讀取起始位址小於高速緩衝記憶體區塊中邏輯位址,便到達步驟S123。在步驟S123中,CPU 21檢查以判斷讀取起始位址是否等於高速緩衝記憶體區塊中邏輯位址。若步驟S123中未發現讀取起始位址等於高速緩衝記憶體區塊中任何邏輯位址,便到達步驟S128。在步驟S128中,CPU 21從使用者資料區塊讀取資料,並將所讀取之資料發送予主機裝置。
當配置高速緩衝記憶體區塊但並未於該高速緩衝記憶體區塊中發現要求讀取資料之邏輯位址的資料時,便實施步驟S116和S128。在該些步驟中,資料係從使用者資料區塊讀出主機裝置。
若步驟S115中未發現讀取終止位址小於高速緩衝記憶體區塊中邏輯位址,便到達步驟S117。在步驟S117中,CPU 21檢查以判斷讀取終止位址是否等於高速緩衝記憶體區塊中邏輯位址。若步驟S117中發現讀取終止位址等於高速緩衝記憶體區塊中邏輯位址,便到達步驟S118。CPU 21於步驟S118中從使用者資料區塊讀取資料,並於步驟S119中從高速緩衝記憶體區塊讀取其餘資料,所讀取之資料將發送予主機裝置。
若步驟S117中未發現讀取終止位址等於高速緩衝記憶體區塊中任何邏輯位址,便到達步驟S120。CPU 21於步驟S120中從使用者資料區塊讀取資料,於步驟S121中從高速緩衝記憶體區塊讀取後續資料,並於步驟S122中從高速緩衝記憶體區塊讀取剩餘資料,所讀取之資料將供應予主機裝置。
若步驟S123中發現讀取起始位址等於高速緩衝記憶體區塊中邏輯位址,便到達步驟S124。在步驟S124中,CPU 21檢查以判斷讀取終止位址是否等於高速緩衝記憶體區塊中邏輯位址。若步驟S124中發現讀取終止位址等於高速緩衝記憶體區塊中邏輯位址,便到達步驟S125。在步驟S125中,CPU 21從高速緩衝記憶體區塊讀取資料,並將所讀取之資料發送予主機裝置。
若步驟S124中未發現讀取終止位址等於高速緩衝記憶體區塊中任何邏輯位址,便到達步驟S126。CPU 21於步驟S126中從高速緩衝記憶體區塊讀取資料,並於步驟S127中從使用者資料區塊讀取剩餘資料,所讀取之資料將發送予主機裝置。
在步驟S118和S119、S120至S122、S126及S127中使用者資料區塊中之資料和高速緩衝記憶體區塊中之資料被讀出。在該些狀況下讀取作業包括第一和第二部分。在第一部分中,使用者資料區塊中之資料被讀出至主機裝置。在第二部分中,若發現相應於主機裝置所要求之邏輯扇區位址的資料存在於高速緩衝記憶體區塊中,該高速緩衝記憶體區塊中之資料便被讀出至主機裝置。若未發現所考量之資料存在於高速緩衝記憶體區塊中,便從使用者資料區塊讀取資料並發送予主機裝置。在步驟S125中高速緩衝記憶體區塊中之資料被讀出至主機裝置。
如上述,以快閃記憶體23為例示之非揮發性記憶體(NAND型快閃記憶體)具有兩項特徵:記憶體中資料無法被覆寫,且資料係以區塊為單位刪除。由此可知在資料更新的狀況下,以記憶卡20為例示之記憶體設備要求將更新資料以區塊為單位儲存於其他區塊中,無關乎更新資料大小,以便維持邏輯/實體表之一致性。
為此原因,除了更新資料之外,需複製原始區塊中之資料。在更新之後,需將具有不必要資料之區塊的內容刪除(即回寫作業)。此外,每一區塊均需受限於可重寫總數。
體現本發明之記憶體控制方法以包含較記憶體設備之普通控制方法為少之回寫作業的方式控制使用高速緩衝記憶體區塊之區塊。降低的回寫作業頻率反過來減少了複製和刪除作業的實施次數,使得提高了資料更新作業的處理速度。由於區塊刪除總數降低,便相應地延長了記憶體設備的壽命。
當主機裝置寫入超出指定邏輯邊界(即以複數扇區為單位之邏輯空間大小)之檔案資料時,資料便被寫入至新配置之高速緩衝記憶體區塊以便抑制回寫作業。基於避免的回寫,便抑制廢料收集且寫入性能相應地改進。回寫作業之抑制反過來減少了區塊內容被刪除的次數,藉以延長記憶體產品之壽命。
當將被寫入之資料未超出指定邏輯邊界時,部分管理資訊便依據本發明之記憶體控制方法而儲存於高速緩衝記憶體區塊(OD-高速緩衝記憶體)中。較具體地,部分OD管理資訊被儲存於保存使用者資料之區塊中。此使其可將跨越複數邏輯空間之資料儲存於高速緩衝記憶體區塊(OD-高速緩衝記憶體),而不需改變儲存於快閃記憶體中之管理資訊的大小,藉以較前更少實施回寫作業。
OD中最後寫入頁面上之讀取作業許可獲得保存管理資訊處之位置,使得第二讀取作業允許獲得管理資訊。基於不需寫入管理資訊,讀取高速緩衝記憶體區塊(OD-高速緩衝記憶體)的整個內容使其可構成管理資訊。結果,啟動時管理資訊之獲得便適當地較前為快。
在將從主機裝置寫入資料處,資料係從高速緩衝記憶體區塊之開端開始寫入,與寫入資料之邏輯位址空間無關。此特徵抑制了高速緩衝記憶體區塊內的複製作業,此解譯為寫入性能之提升。
當先前範例中寫入資料後續之檔案資料係以不限於任何叢集邊界的方式寫入時,該資料便可附加至高速緩衝記憶體區塊。此亦抑制回寫作業。基於回寫被抑制,便避免廢料收集且寫入性能因而提升。
當回寫作業被抑制時,區塊刪除作業便相應地減少,此有助於延長記憶體產品之壽命。僅高速緩衝記憶體區塊之區塊位址受管理使得若無區塊位址改變,便不需更新管理資訊。此有助於改進寫入性能。
此外,管理資訊更新作業之頻率降低解譯為保存管理資訊之區塊內容被刪除次數的適當降低。此有助於延長記憶體產品之壽命。
當資料附加至高速緩衝記憶體區塊以便抑制回寫作業時,便抑制廢料收集及提升寫入性能。基於回寫被抑制,區塊內容被刪除之次數便減少,造成記憶體產品的壽命更長。僅高速緩衝記憶體區塊之區塊位址受管理使得若區塊位址未改變,便不需更新管理資訊。此有助於改進寫入性能。管理資訊更新作業之頻率降低解譯為保存管理資訊之區塊內容被刪除次數的顯著降低。此有助於延長記憶體產品之壽命。
所考量之高速緩衝記憶體區塊處於完整狀態處,便實施對於使用者區塊之回寫作業而不觸發廢料收集。此使其可改進寫入性能。
當主機裝置寫入構成落入指定邏輯邊界(即以複數扇區為單位之邏輯空間大小)內之管理資訊的FAT和目錄調目時,資料便被寫入至新配置的高速緩衝記憶體區塊以便抑制回寫作業。基於回寫因而被抑制,便避免廢料收集並改進寫入性能。回寫作業之抑制反過來減少了區塊內容被刪除之次數,藉此延長了記憶體產品之壽命。
當寫入作業後進一步資料將被寫入至相同邏輯位址空間時,資料便附加至高速緩衝記憶體區塊以便抑制回寫作業。基於回寫因而被抑制,便避免廢料收集並相應地提升寫入性能。回寫作業之抑制反過來減少了區塊內容被刪除之次數,藉此延長了記憶體產品之壽命。
僅高速緩衝記憶體區塊之區塊位址受管理處,假設區塊位址未改變便不需更新管理資訊。此有助於改進寫入性能。降低的管理資訊更新作業之頻率解譯為保存管理資訊之區塊內容被刪除次數顯著減少。此有助於延長記憶體產品之壽命。
當資料係附加地寫入至考量中之高速緩衝記憶體區塊時,回寫被抑制且廢料收集亦然。此有助於改進寫入性能。抑制回寫作業有助於降低區塊刪除作業之次數,藉以延長記憶體產品之壽命。僅高速緩衝記憶體區塊之區塊位址受管理處,假設區塊位址未改變,管理資訊便不需更新。此造成寫入性能提升。降低的管理資訊更新作業頻率允諾保存管理資訊之區塊內容被刪除的次數。此有助於延長記憶體產品之壽命。
當於完整狀態之高速緩衝記憶體區塊上實施資料寫入作業時,資料便被寫入至另一高速緩衝記憶體區塊。此抑制了回寫作業和廢料收集並提升了寫入性能。由於回寫之抑制解譯為區塊內容被刪除之次數的降低,記憶體產品之壽命遂得以延長。
若檔案資料寫入作業於構成管理資訊之FAT或目錄條目已被寫入之後展開,資料便被寫入至另一高速緩衝記憶體區塊,以便可抑制回寫作業。此反過來抑制了廢料收集並有助於提升寫入性能。由於回寫作業之抑制使其可減少區塊內容被刪除之次數,記憶體產品之壽命遂得以延長。
當無自由高速緩衝記憶體區塊可用時,具有低更新頻率之高速緩衝記憶體區塊便優先配置予回寫作業。回寫作業時配賦優先性予具有低更新頻率之高速緩衝記憶體區塊提升了相對於寫入作業之高速緩衝記憶體區塊的使用效率。提供此特徵係由於具有低更新頻率之高速緩衝記憶體區塊相較於具有高更新頻率之高速緩衝記憶體區塊,較不可能有資料寫入。
當用於寫入作業之高速緩衝記憶體區塊的使用效率因而提升時,便抑制回寫且廢料收集亦然,藉以提昇寫入性能。回寫作業之抑制解譯為區塊刪除作業的頻率降低,此延長了記憶體產品之壽命。
無自由高速緩衝記憶體區塊可用處,處於完整狀態之高速緩衝記憶體區塊便優先歷經廢料收集。當處於完整狀態之高速緩衝記憶體區塊優先配置用於回寫作業時,便可相對於寫入作業提升高速緩衝記憶體區塊的使用效率。這是因為若高速緩衝記憶體區塊處於完整狀態便不需使用高速緩衝記憶體區塊。
高速緩衝記憶體區塊之使用效率在寫入作業方面被提升處,廢料收集被抑制,且寫入性能相應地提升。基於抑制的回寫,區塊刪除作業便減少使得記憶體產品之壽命得以延長。只要高速緩衝記憶體區塊處於完整狀態,便不需經由廢料收集而將資料複製於每一區塊中。此有助於提升性能。
上列詳細討論之步驟和程序可配置為由CPU或其他適當計算設備執行之程式。該些程式可儲存於例如半導體記憶體、磁碟、光碟或軟碟之記錄媒體上。攜帶該些程式之適當媒體可附屬於電腦。反過來,電腦可存取和執行保存在附屬記錄媒體上之程式。
熟悉本技藝之人士應理解的是在申請專利範圍或其等效論述之範圍內,可基於設計需要或其他因素而實施各式修改、結合、子結合和替代。
10...主機裝置
11、21...中央處理單元
12、22...記憶體
13...顯示單元
14...輸入/輸出段
15...外部記憶體介面
16、25、38...匯流排
20...記憶卡
23...快閃記憶體
24...主機介面
30...控制器段
31...串列介面
32...並列介面
33...暫存器
34...資料緩衝器
35...錯誤修正電路
36...微處理單元
37...時脈信號產生器
40...記憶體段
41...管理區
42...使用者資料區
43...高速緩衝記憶體區
51...邏輯/實體表
52、53、112、122、132、142、146、152、162、172、173、182、193、202、212、213...高速緩衝記憶體區塊
86、94...寫入空間
81-84、91、92、101-1、101-2、102-1、102-2...邏輯空間
110...OD管理資訊
111、121、131、141、145、151、161、171、181、191、201、211...使用者資料區塊
123、124、125、134、144、148、153、154、163、164、165、174、175、194、214、215、216...資料
133、143、147...寫入資料
155、166...指定邏輯邊界
BS、DATA0-DATA3、INS、VSS、VCC、SCLK...信號線
EC...終端叢集編號
SC...起始叢集編號
S1-S16、S21-S26、S25-1、S31-S35、S39-S47、S39-1、S111-S128、S3501-S3512...步驟
圖1為一示意圖,概述體現本發明之資料處理系統的典型組態;
圖2為一區塊圖,顯示記憶卡的典型結構;
圖3為一示意圖,顯示使用者資料區塊與高速緩衝記憶體區塊之間之相應性的典型關係;
圖4為構成寫入程序之步驟的流程圖;
圖5為構成寫入程序之其他步驟的流程圖;
圖6為構成寫入程序之其他步驟的流程圖;
圖7為構成寫入程序之其他步驟的流程圖;
圖8為構成寫入程序之其他步驟的流程圖;
圖9A和9B為示意圖,各顯示從主機寫入資料之完整狀態的高速緩衝記憶體區塊(AD-高速緩衝記憶體)(兩種類型);
圖10為一示意圖,顯示步驟S14中寫入時高速緩衝記憶體區塊之狀態及使用者資料區塊之狀態;
圖11為一示意圖,顯示符合步驟S25中寫入之狀況的典型寫入類型;
圖12為一示意圖,顯示步驟S23中寫入時高速緩衝記憶體區塊之狀態及使用者資料區塊之狀態;
圖13為一示意圖,顯示步驟S25中寫入時高速緩衝記憶體區塊之狀態及使用者資料區塊之狀態;
圖14為一示意圖,顯示步驟S11中寫入時高速緩衝記憶體區塊之狀態及使用者資料區塊之狀態;
圖15為一示意圖,顯示符合步驟S31中寫入之狀況的典型寫入類型;
圖16為一示意圖,顯示步驟S33中寫入時高速緩衝記憶體區塊之狀態及使用者資料區塊之狀態;
圖17為當符合寫入至高速緩衝記憶體區塊(OD-高速緩衝記憶體)之狀況時將實施之步驟的流程圖;
圖18為一示意圖,顯示符合步驟S35中寫入之狀況的典型寫入類型;
圖19為一示意圖,顯示步驟S3501中完整狀態(類型2)之高速緩衝記憶體區塊的狀態;
圖20為一示意圖,顯示本發明之實施例所使用之OD管理資訊的典型結構;
圖21為一示意圖,顯示步驟S3502中當OD管理資訊被寫入至高速緩衝記憶體區塊(OD-高速緩衝記憶體)時之實質典型狀態;
圖22為一示意圖,顯示步驟S3503中當OD管理資訊被寫入至高速緩衝記憶體區塊(OD-高速緩衝記憶體)時之實質典型狀態;
圖23為一示意圖,顯示步驟S3505中複數邏輯資料如何被寫入至高速緩衝記憶體區塊(OD-高速緩衝記憶體);
圖24為一示意圖,顯示步驟S3506中有效資料被複製至新高速緩衝記憶體區塊(OD-高速緩衝記憶體)後之實質典型狀態;
圖25為一示意圖,顯示步驟S39中寫入時高速緩衝記憶體區塊之狀態及使用者資料區塊之狀態;
圖26為一示意圖,顯示步驟S41中寫入前高速緩衝記憶體區塊之狀態及使用者資料區塊之狀態;
圖27為一示意圖,顯示步驟S41中寫入後高速緩衝記憶體區塊之狀態及使用者資料區塊之狀態;
圖28為一示意圖,顯示步驟S36中寫入前高速緩衝記憶體區塊之狀態及使用者資料區塊之狀態;
圖29為一示意圖,顯示步驟S36中寫入後高速緩衝記憶體區塊之狀態及使用者資料區塊之狀態;及
圖30為構成以邏輯區塊為單位之寫入程序之步驟的流程圖。
Claims (13)
- 一種記憶體設備,包含:非揮發性記憶體,用於允許以叢集為單位而將資料寫入其中和從中讀取資料,並用於許可以由複數扇區構成之區塊為單位而從中刪除資料;及控制電路,用以控制對於該非揮發性記憶體之存取作業;其中該非揮發性記憶體包括管理區,其中記錄管理資訊,使用者資料區,其中記錄來自使用者之資料,及高速緩衝記憶體區,其中暫時保存將寫入至該使用者資料區和自該使用者資料區讀取之資料;及該管理區包括儲存該使用者資料區中邏輯區塊之位址連同配賦予該邏輯區塊的實體區塊之位址的邏輯/實體表,和相應於該邏輯/實體表中該實體區塊之位址的該高速緩衝記憶體區中實體區塊之位址;其中,一旦將大小小於構成以使用者區塊中複數扇區為單位之邏輯空間大小的指定邏輯大小之資料寫入該使用者資料區中,該控制電路便將該資料儲存於適當選擇之高速緩衝記憶體區塊中,同時將部分該管理資訊寫入保存該資料之高速緩衝記憶體區塊中, 該控制電路鑒於該高速緩衝記憶體區塊中該管理資訊而判斷是否可將附加資料寫入至所選擇之高速緩衝記憶體區塊,若發現可將附加資料寫入至該高速緩衝記憶體區塊,該控制電路便於將附加管理資訊寫入至該高速緩衝記憶體區塊和附加該寫入資料至該高速緩衝記憶體區塊之前更新該非揮發性記憶體的該管理區中之該管理資訊。
- 如申請專利範圍第1項之記憶體設備,其中該控制電路將該資料儲存於該高速緩衝記憶體區塊中之複數邏輯空間中,同時維持該非揮發性記憶體中之大小以儲存該管理資訊。
- 如申請專利範圍第1項之記憶體設備,其中若發現可將該附加資料寫入至該高速緩衝記憶體區塊,則該控制電路便於附加該寫入資料至該高速緩衝記憶體區塊之前將附加管理資訊寫入至該高速緩衝記憶體區塊。
- 如申請專利範圍第3項之記憶體設備,其中該控制電路判斷是否可將附加資料寫入至所選擇之高速緩衝記憶體區塊,若發現無法將附加資料寫入至該高速緩衝記憶體區塊,便判斷登錄於該高速緩衝記憶體區塊中之複數邏輯空間之數量是否大於預定數量;若發現該複數邏輯空間之數量小於該預定數量,該控制電路便將儲存於該高速緩衝記憶體區塊中之有效資料複製至新高速緩衝記憶體區塊,並將有關該複製後之情形的管理資訊附加至該新高速緩衝記憶體區塊。
- 如申請專利範圍第4項之記憶體設備,其中若該高 速緩衝記憶體區塊中存在複數項管理資訊,該控制電路便使最近寫入之管理資訊項有效。
- 如申請專利範圍第4項之記憶體設備,其中該控制電路於附加該寫入資料之前,將附加管理資訊寫入至該新高速緩衝記憶體區塊。
- 一種使用非揮發性記憶體之記憶體控制方法,該非揮發性記憶體係用於允許以叢集為單位而將資料寫入其中和從中讀取資料,並用於許可以由複數扇區構成之區塊為單位而從中刪除資料,該非揮發性記憶體包括適於儲存管理資訊之管理區、使用者資料區和高速緩衝記憶體區,該記憶體控制方法包含以下步驟:記錄儲存該使用者資料區中邏輯區塊之位址連同配賦予該邏輯區塊的實體區塊之位址的邏輯/實體表,和相應於該邏輯/實體表中該實體區塊之位址的該高速緩衝記憶體區中實體區塊之位址;一旦將大小小於構成以使用者區塊中複數扇區為單位之邏輯空間大小的指定邏輯大小之資料寫入該使用者資料區中,便將該資料儲存於適當選擇之高速緩衝記憶體區塊中,同時將部分管理資訊寫入保存該資料之高速緩衝記憶體區塊中,及鑒於該高速緩衝記憶體區塊中該管理資訊而判斷是否可將附加資料寫入至所選擇之高速緩衝記憶體區塊,若發現可將附加資料寫入至該高速緩衝記憶體區塊,便於將附加管理資訊寫入至該高速緩衝記憶體區塊和附加該寫入資 料至該高速緩衝記憶體區塊之前更新該非揮發性記憶體的該管理區中之該管理資訊。
- 如申請專利範圍第7項之記憶體控制方法,其中該儲存步驟包括將該資料儲存於該高速緩衝記憶體區塊中之複數邏輯空間中,同時維持該非揮發性記憶體中之大小以儲存該管理資訊。
- 如申請專利範圍第7項之記憶體控制方法,其中若發現可將附加資料寫入至該高速緩衝記憶體區塊,便於附加該寫入資料至該高速緩衝記憶體區塊之前將附加管理資訊寫入至該高速緩衝記憶體區塊。
- 如申請專利範圍第9項之記憶體控制方法,其中該儲存步驟包括判斷是否可將附加資料寫入至所選擇之高速緩衝記憶體區塊,若發現無法將附加資料寫入至該高速緩衝記憶體區塊,便判斷登錄於該高速緩衝記憶體區塊中之複數邏輯空間之數量是否大於預定數量;若發現該複數邏輯空間之數量小於該預定數量,該儲存步驟便包括將儲存於該高速緩衝記憶體區塊中之有效資料複製至新高速緩衝記憶體區塊,並將有關該複製後之情形的管理資訊附加至該新高速緩衝記憶體區塊。
- 如申請專利範圍第10項之記憶體控制方法,其中若該高速緩衝記憶體區塊中存在複數項管理資訊,該儲存步驟便包括使最近寫入之管理資訊項有效。
- 如申請專利範圍第10項之記憶體控制方法,其中該儲存步驟包括於附加該寫入資料之前,將附加管理資訊 寫入至該新高速緩衝記憶體區塊。
- 一種儲存有電腦可執行指令之非暫態電腦可讀式媒體,該些電腦可執行指令使電腦於非揮發性記憶體上執行記憶體控制程序,該非揮發性記憶體係用於允許以叢集為單位而將資料寫入其中和從中讀取資料,並用於許可以由複數扇區構成之區塊為單位而從中刪除資料,該非揮發性記憶體包括適於儲存管理資訊之管理區、使用者資料區和高速緩衝記憶體區,該些指令包含:記錄儲存該使用者資料區中邏輯區塊之位址連同配賦予該邏輯區塊的實體區塊之位址的邏輯/實體表,和相應於該邏輯/實體表中該實體區塊之位址的該高速緩衝記憶體區中實體區塊之位址;一旦將大小小於構成以使用者區塊中複數扇區為單位之邏輯空間大小的指定邏輯大小之資料寫入該使用者資料區中,便將該資料儲存於適當選擇之高速緩衝記憶體區塊中,同時將部分管理資訊寫入保存該資料之高速緩衝記憶體區塊中,及鑒於該高速緩衝記憶體區塊中該管理資訊而判斷是否可將附加資料寫入至所選擇之高速緩衝記憶體區塊,若發現可將附加資料寫入至該高速緩衝記憶體區塊,便於將附加管理資訊寫入至該高速緩衝記憶體區塊和附加該寫入資料至該高速緩衝記憶體區塊之前更新該非揮發性記憶體的該管理區中之該管理資訊。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007237181A JP4356782B2 (ja) | 2007-09-12 | 2007-09-12 | メモリ装置、メモリ制御方法、およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200931249A TW200931249A (en) | 2009-07-16 |
TWI409630B true TWI409630B (zh) | 2013-09-21 |
Family
ID=40433084
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097131738A TWI409630B (zh) | 2007-09-12 | 2008-08-20 | 記憶體設備,記憶體控制方法,及非暫態電腦可讀式媒體 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8386713B2 (zh) |
JP (1) | JP4356782B2 (zh) |
CN (1) | CN101387987B (zh) |
TW (1) | TWI409630B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011145838A (ja) * | 2010-01-13 | 2011-07-28 | Toshiba Corp | 記憶装置管理装置および記憶装置の管理方法 |
TWI423026B (zh) * | 2010-10-29 | 2014-01-11 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
CN102479054B (zh) * | 2010-11-22 | 2015-01-07 | 北京兆易创新科技股份有限公司 | 一种存储芯片的读写***和方法 |
JP2012173778A (ja) * | 2011-02-17 | 2012-09-10 | Sony Corp | 管理装置、および管理方法 |
JP5699712B2 (ja) * | 2011-03-17 | 2015-04-15 | ソニー株式会社 | メモリ制御装置、メモリ装置、メモリ制御方法、及びプログラム |
WO2011110133A2 (zh) * | 2011-04-25 | 2011-09-15 | 华为技术有限公司 | 存储***中数据处理方法及设备 |
JP6072428B2 (ja) | 2012-05-01 | 2017-02-01 | テセラ アドバンスト テクノロジーズ インコーポレーテッド | 制御装置、記憶装置、記憶制御方法 |
JP5929485B2 (ja) | 2012-05-08 | 2016-06-08 | ソニー株式会社 | 制御装置、記憶装置、データ書込方法 |
JP5949122B2 (ja) | 2012-05-11 | 2016-07-06 | ソニー株式会社 | 制御装置、記憶装置、記憶制御方法 |
JP5983019B2 (ja) | 2012-05-17 | 2016-08-31 | ソニー株式会社 | 制御装置、記憶装置、記憶制御方法 |
JP5944502B2 (ja) * | 2012-06-11 | 2016-07-05 | 株式会社日立製作所 | 計算機システム及び制御方法 |
WO2016095233A1 (zh) * | 2014-12-19 | 2016-06-23 | 北京麓柏科技有限公司 | 一种非易失性缓存实现方法及装置 |
TWI561983B (en) | 2015-06-10 | 2016-12-11 | Phison Electronics Corp | Method of accessing buffer memory, memory controller and memory storage device |
KR102468992B1 (ko) * | 2015-11-06 | 2022-11-22 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이의 동작 방법 |
KR20190044968A (ko) * | 2017-10-23 | 2019-05-02 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US10652208B2 (en) * | 2018-10-03 | 2020-05-12 | Axonius Solutions Ltd. | System and method for managing network connected devices |
JP2020155052A (ja) * | 2019-03-22 | 2020-09-24 | キオクシア株式会社 | メモリシステムおよび制御方法 |
CN113905097B (zh) * | 2021-09-26 | 2022-07-05 | 合肥申威睿思信息科技有限公司 | 一种数据传输方法和装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5724501A (en) * | 1996-03-29 | 1998-03-03 | Emc Corporation | Quick recovery of write cache in a fault tolerant I/O system |
US5930167A (en) * | 1997-07-30 | 1999-07-27 | Sandisk Corporation | Multi-state non-volatile flash memory capable of being its own two state write cache |
JP2004199605A (ja) * | 2002-12-20 | 2004-07-15 | Matsushita Electric Ind Co Ltd | 半導体メモリカードおよび管理情報更新方法 |
JP2005234738A (ja) * | 2004-02-18 | 2005-09-02 | Matsushita Electric Ind Co Ltd | 半導体メモリ装置 |
US6973556B2 (en) * | 2000-06-19 | 2005-12-06 | Storage Technology Corporation | Data element including metadata that includes data management information for managing the data element |
CN1823327A (zh) * | 2003-07-16 | 2006-08-23 | 松下电器产业株式会社 | 信息记录介质的数据区域管理方法、使用数据区域管理方法的信息处理装置 |
TW200721016A (en) * | 2005-09-29 | 2007-06-01 | Toshiba Kk | Memory system and method of writing into nonvolatile semiconductor memory |
JP2007156633A (ja) * | 2005-12-01 | 2007-06-21 | Sony Corp | メモリ装置及びメモリ制御方法 |
US20070174551A1 (en) * | 2006-01-20 | 2007-07-26 | Cornwell Michael J | Variable caching policy system and method |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69429777T2 (de) * | 1993-09-30 | 2002-10-17 | Apple Computer, Inc. | System zur dezentralen massenspeichersteuerung eines rechners mit virtuellem speicher |
JP3954698B2 (ja) | 1997-08-29 | 2007-08-08 | パナソニック コミュニケーションズ株式会社 | メモリー制御装置 |
US6029237A (en) * | 1997-10-08 | 2000-02-22 | Dell Usa, L.P. | Method for simulating the presence of a diskette drive in a NetPC computer that contains only a hard disk drive |
AU2002353406A1 (en) * | 2002-12-27 | 2004-07-22 | Solid State System Co., Ltd. | Nonvolatile memory unit with specific cache |
JP4710274B2 (ja) | 2004-08-02 | 2011-06-29 | ソニー株式会社 | メモリ装置、メモリ装置の制御方法およびデータ処理システム |
KR100725390B1 (ko) * | 2005-01-06 | 2007-06-07 | 삼성전자주식회사 | 수정 빈도를 고려하여 데이터를 비휘발성 캐쉬부에저장하는 장치 및 방법 |
-
2007
- 2007-09-12 JP JP2007237181A patent/JP4356782B2/ja not_active Expired - Fee Related
-
2008
- 2008-08-20 TW TW097131738A patent/TWI409630B/zh not_active IP Right Cessation
- 2008-09-09 US US12/207,143 patent/US8386713B2/en active Active
- 2008-09-12 CN CN2008101494018A patent/CN101387987B/zh not_active Expired - Fee Related
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5724501A (en) * | 1996-03-29 | 1998-03-03 | Emc Corporation | Quick recovery of write cache in a fault tolerant I/O system |
US5930167A (en) * | 1997-07-30 | 1999-07-27 | Sandisk Corporation | Multi-state non-volatile flash memory capable of being its own two state write cache |
US6973556B2 (en) * | 2000-06-19 | 2005-12-06 | Storage Technology Corporation | Data element including metadata that includes data management information for managing the data element |
JP2004199605A (ja) * | 2002-12-20 | 2004-07-15 | Matsushita Electric Ind Co Ltd | 半導体メモリカードおよび管理情報更新方法 |
CN1823327A (zh) * | 2003-07-16 | 2006-08-23 | 松下电器产业株式会社 | 信息记录介质的数据区域管理方法、使用数据区域管理方法的信息处理装置 |
JP2005234738A (ja) * | 2004-02-18 | 2005-09-02 | Matsushita Electric Ind Co Ltd | 半導体メモリ装置 |
TW200721016A (en) * | 2005-09-29 | 2007-06-01 | Toshiba Kk | Memory system and method of writing into nonvolatile semiconductor memory |
JP2007156633A (ja) * | 2005-12-01 | 2007-06-21 | Sony Corp | メモリ装置及びメモリ制御方法 |
US20070174551A1 (en) * | 2006-01-20 | 2007-07-26 | Cornwell Michael J | Variable caching policy system and method |
Also Published As
Publication number | Publication date |
---|---|
TW200931249A (en) | 2009-07-16 |
JP2009070098A (ja) | 2009-04-02 |
JP4356782B2 (ja) | 2009-11-04 |
CN101387987A (zh) | 2009-03-18 |
US20090070517A1 (en) | 2009-03-12 |
US8386713B2 (en) | 2013-02-26 |
CN101387987B (zh) | 2011-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI409630B (zh) | 記憶體設備,記憶體控制方法,及非暫態電腦可讀式媒體 | |
US8489850B2 (en) | Memory apparatus and memory control method | |
US9058254B2 (en) | Memory device | |
US7702846B2 (en) | Memory controller, nonvolatile storage device, nonvolatile storage system, and data writing method | |
US7475185B2 (en) | Nonvolatile memory system, nonvolatile memory device, memory controller, access device, and method for controlling nonvolatile memory device | |
US20230161475A1 (en) | Memory device and host device | |
US7657701B2 (en) | System and method of flash memory wear leveling using distributed write cycles | |
US10203876B2 (en) | Storage medium apparatus, method, and program for storing non-contiguous regions | |
US20060020744A1 (en) | Method and apparatus for maintaining data on non-volatile memory systems | |
JP2009199625A (ja) | メモリカードおよびメモリカードの制御方法および不揮発性半導体メモリの制御方法 | |
US20100332717A1 (en) | Access device, information recording device, controller, and information recording system | |
JP7208000B2 (ja) | 情報処理装置及び情報処理装置の制御方法 | |
US9778857B2 (en) | Recording device, access device, recording system, and recording method | |
JP5570406B2 (ja) | メモリコントローラ、及びデータ記録装置 | |
WO2011121870A1 (ja) | データ記録装置、及びデータ記録方法 | |
US20150012691A1 (en) | Storage control apparatus, control program, and control method | |
JP2008262452A (ja) | 記録デバイスのキャッシュ方法および記録装置 | |
JP2008191797A (ja) | ファイルシステム | |
JP4710274B2 (ja) | メモリ装置、メモリ装置の制御方法およびデータ処理システム | |
JP4042898B2 (ja) | メモリコントローラ及びこれを備えるメモリシステム並びにフラッシュメモリの制御方法 | |
JP5255389B2 (ja) | 記憶装置およびメモリ制御方法 | |
JP2004038236A (ja) | 情報処理装置およびプログラム | |
JP2009282568A (ja) | 半導体記録装置 | |
JP2008009636A (ja) | 記憶装置 | |
JP2016015059A (ja) | 記録装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |