TWI386802B - 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統 - Google Patents
用於快閃記憶體的資料寫入方法及其控制電路與儲存系統 Download PDFInfo
- Publication number
- TWI386802B TWI386802B TW098122621A TW98122621A TWI386802B TW I386802 B TWI386802 B TW I386802B TW 098122621 A TW098122621 A TW 098122621A TW 98122621 A TW98122621 A TW 98122621A TW I386802 B TWI386802 B TW I386802B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- block
- physical
- flash memory
- logical
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明是有關於一種資料寫入方法,且特別是有關於一種能夠縮短回應時間的資料寫入方法及使用此方法的快閃記憶體控制電路與快閃記憶體儲存系統。
數位相機、手機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於快閃記憶體(Flash Memory)具有資料非揮發性、省電、體積小與無機械結構等的特性,適合可攜式應用,最適合使用於這類可攜式由電池供電的產品上。固態硬碟就是一種以NAND快閃記憶體作為儲存媒體的儲存裝置。
一般來說,快閃記憶體儲存裝置中的快閃記憶體模組會具有多個實體區塊,且這些實體區塊會由快閃記憶體儲存裝置的快閃記憶體控制器邏輯地分組為系統區(system area)、資料區(data area)、備用區(spare area)與取代區(replacement area)。系統區的實體區塊是用以儲存快閃記憶體儲存裝置的相關重要資訊,而取代區的實體區塊是用以取代資料區或備用區中已損壞的實體區塊,因此在一般存取狀態下,主機系統是無法存取系統區與取代區中的實體區塊。至於歸類為資料區的實體區塊中會儲存由寫入指令所寫入的有效資料,而備用區中的實體區塊是用以在執行寫入指令時替換資料區中的實體區塊。具體來說,當快閃記憶體儲存裝置接受到主機系統的寫入指令而欲對資料區的實體區塊進行寫入時,快閃記憶體儲存裝置會從備用區中提取一實體區塊並且將在資料區中欲寫入的實體區塊中的有效舊資料與欲寫入的新資料寫入至從備用區中提取的實體區塊中,並且將已寫入新資料的實體區塊邏輯地關聯為資料區,並且將原本資料區的實體區塊進行抹除並邏輯地關聯為備用區。為了能夠讓主機系統能夠順利地存取以輪替方式儲存資料的實體區塊,快閃記憶體儲存裝置會提供邏輯區塊給主機系統。也就是說,快閃記憶體儲存裝置會透過在邏輯位址-實體位址對映表(logical address-physical address mapping table)中記錄與更新邏輯區塊與資料區的實體區塊之間的對映關係來反映實體區塊的輪替,所以主機系統僅需要針對所提供邏輯區塊進行寫入而快閃記憶體儲存裝置會依據邏輯位址-實體位址對映表對所對映的實體區塊進行讀取或寫入資料。
由於快閃記憶體製程上的進步且為了滿足儲存媒體大容量的趨勢,每個程式化單位與抹除單位的設計容量會越來越大,因此將造成需要更多的時間來搬移實體區塊內的有效資料。然而,此類大容量抹除單位的快閃記憶體往往因為過長的區塊搬移時間而使得資料寫入指令的回應時間會超過某些快閃記憶體儲存裝置(例如,SD記憶卡)的規格,因此造成無法使用此類具大容量抹除單位的快閃記憶體。基此,有需要縮短快閃記憶體儲存裝置在每個資料寫入指令下的回應時間。
本發明提供一種資料寫入方法,其能夠縮短在寫入資料至快閃記憶體晶片時的回應時間以防止逾時的問題。
本發明提供一種快閃記憶體控制電路,其能夠縮短在寫入資料至快閃記憶體晶片時的回應時間以防止逾時的問題。
本發明提供一種快閃記憶體儲存系統,其能夠縮短在寫入資料至快閃記憶體時的回應時間以防止逾時的問題。
本發明範例實施例提出一種資料寫入方法,用於將來自於一主機系統的資料寫入至一快閃記憶體晶片,其中快閃記憶體晶片包括多個實體區塊。本資料寫入方法包括提供一快閃記憶體控制器,用以從主機系統接收一資料寫入指令與資料。本資料寫入方法也包括配置多個邏輯區塊,其中每一邏輯區塊對映至少一個實體區塊,其中主機系統儲存此資料於邏輯區塊的其中之一。本資料寫入方法亦包括將邏輯區塊分組為多個邏輯區塊群組,並且選擇部分實體區塊作為多個緩衝實體區塊(buffer physical block),其中緩衝實體區塊的其中之一對應邏輯區塊群組的其中之一。本資料寫入方法更包括由快閃記憶體控制器判斷此資料的大小是否小於預定資料量且判斷此資料所屬的邏輯區塊所對應的緩衝實體區塊是否已被寫滿,其中當此資料的大小小於預定資料量且此資料所屬的邏輯區塊所對應的緩衝實體區塊已被寫滿時,則快閃記憶體控制器選擇另一實體區塊作為對應的一備用緩衝實體區塊(spare buffer physical block)並且將此資料寫入至此備用緩衝實體區塊中,其中此備用緩衝實體區塊是對應此資料所屬的邏輯區塊所對應的緩衝實體區塊。
在本發明之一實施例中,在將資料寫入至上述備用緩衝實體區塊中之後更包括將暫存於上述備用緩衝實體區塊所對應的緩衝實體區塊中屬於其中一個邏輯區塊的資料搬移至其中一個實體區塊中。
在本發明之一實施例中,上述之將暫存於上述備用緩衝實體區塊所對應的緩衝實體區塊中屬於其中一個邏輯區塊的資料搬移至其中一個實體區塊中的步驟包括:從暫存於備用緩衝實體區塊所對應的緩衝實體區塊中的資料之中選擇其中一筆資料,並且判斷所選擇之資料所屬的邏輯區塊;選擇其中一個實體區塊以作為對應所選擇之資料所屬的邏輯區塊的一輪替實體區塊(substitute physical block);以及將屬於所選擇之資料所屬的邏輯區塊的有效舊資料以及在對應的該緩衝實體區塊中屬於所選擇之資料所屬的邏輯區塊的資料搬移至此輪替實體區塊中,其中在主機系統每次執行資料寫入指令時僅搬移屬於所選擇之資料所屬的邏輯區塊的有效舊資料與對應的該緩衝實體區塊中屬於所選擇之資料所屬的邏輯區塊的資料的部分資料。
在本發明之一實施例中,上述之資料寫入方法更包括當上述備用緩衝實體區塊所對應的緩衝實體區塊內已無未被搬移的資料時,抹除上述備用緩衝實體區塊所對應的緩衝實體區塊中所暫存的所有資料。
在本發明之一實施例中,上述之資料寫入方法更包括當此資料的大小不小於預定資料量時,則將此資料寫入至此資料所屬的邏輯區塊所對映的實體區塊中。
在本發明之一實施例中,上述之資料寫入方法更包括當此資料的大小小於該預定資料量並且此資料所屬的邏輯區塊所對應的緩衝實體區塊未被寫滿時,則將資料寫入至此資料所屬的邏輯區塊所對應的緩衝實體區塊中。
在本發明之一實施例中,上述之資料寫入方法更包括將實體區塊的部分實體區塊至少分組為一資料區與一備用區。
在本發明之一實施例中,上述之緩衝實體區塊是選自於備用區的實體區塊。
在本發明之一實施例中,上述之備用緩衝實體區塊是選自於備用區的實體區塊。
在本發明之一實施例中,上述之資料寫入方法,更包括將部分實體區塊分組為一特殊區,其中緩衝實體區塊是選自於特殊區的實體區塊。
在本發明之一實施例中,上述之備用緩衝實體區塊是選自於備用區的實體區塊。
在本發明之一實施例中,上述之備用緩衝實體區塊是選自於特殊區的實體區塊。
在本發明之一實施例中,上述之將邏輯區塊分組為多個邏輯區塊群組的步驟包括根據每一緩衝實體區塊的頁面數來將邏輯區塊分組為邏輯區塊群組,其中每一邏輯區塊群組中的邏輯區塊的數目為小於或等於每一緩衝實體區塊的頁面數的二分之一。
在本發明之一實施例中,上述之在將資料寫入至備用緩衝實體區塊中之後更包括判斷是否存有僅完成搬移部分資料的邏輯區塊,其中當無存有僅完成搬移部分資料的邏輯區塊時,則將暫存於緩衝實體區塊的其中一個緩衝實體區塊中部分的資料搬移至其中一個實體區塊中,其中此其中一個緩衝實體區塊所對應的備用緩衝實體區塊所暫存的資料量大於其他緩衝實體區塊所對應的備用緩衝實體區塊所暫存的資料量。
在本發明之一實施例中,上述之在將資料寫入至備用緩衝實體區塊中之後更包括判斷是否存有僅完成搬移部分資料的邏輯區塊,其中當存有僅完成搬移部分資料的邏輯區塊時,則繼續搬移此邏輯區塊的其他資料。
在本發明之一實施例中,上述之預定資料量為三個或五個扇區。
本發明範例實施例提出一種快閃記憶體控制電路,用以將來自於一主機系統的資料寫入至一快閃記憶體晶片,其中快閃記憶體晶片包括多個實體區塊。此快閃記憶體控制電路包括微處理器單元、快閃記憶體介面單元、主機介面單元與記憶體管理單元。快閃記憶體介面單元耦接至微處理器單元,用以連接快閃記憶體晶片。主機介面單元耦接至微處理器單元,用以連接主機系統,並從主機系統接收一資料寫入指令與此資料。記憶體管理單元耦接至該微處理器單元,用以配置多個邏輯區塊,將邏輯區塊分組為多個邏輯區塊群組,並且選擇的部分實體區塊作為多個緩衝實體區塊,其中每一邏輯區塊對映至少一個實體區塊,主機系統儲存此資料於邏輯區塊的其中之一,且每一緩衝實體區塊對應邏輯區塊群組的其中之一。此外,記憶體管理單元更用以判斷此資料的大小是否小於預定資料量並且判斷此資料所屬的邏輯區塊所對應的緩衝實體區塊是否已被寫滿,其中當此資料的大小小於預定資料量並且此資料所屬的邏輯區塊所對應的緩衝實體區塊已被寫滿時,則記憶體管理單元選擇另一實體區塊作為對應的一備用緩衝實體區塊,並且將此資料寫入至此備用緩衝實體區塊中,其中此備用緩衝實體區塊是對應此資料所屬的邏輯區塊所對應的緩衝實體區塊。
在本發明之一實施例中,上述之記憶體管理單元更用以將暫存於該備用緩衝實體區塊所對應的緩衝實體區塊中屬於其中一個邏輯區塊的資料搬移至其中一個該些實體區塊中。
在本發明之一實施例中,上述之記憶體管理單元從暫存於上述備用緩衝實體區塊所對應的緩衝實體區塊中的資料之中選擇其中一筆資料,並且判斷所選擇之資料所屬的邏輯區塊。上述之記憶體管理單元選擇其中一個實體區塊以作為對應所選擇之資料所屬的邏輯區塊的一輪替實體區塊。此外,上述之記憶體管理單元將屬於所選擇之資料所屬的邏輯區塊的有效舊資料以及在對應的緩衝實體區塊中屬於所選擇之資料所屬的邏輯區塊的資料搬移至該輪替實體區塊中,其中在主機系統每次執行資料寫入指令時記憶體管理單元僅搬移屬於所選擇之資料所屬的邏輯區塊的有效舊資料與對應的緩衝實體區塊中屬於所選擇之資料所屬的邏輯區塊的資料的部分資料。
在本發明之一實施例中,當上述備用緩衝實體區塊所對應的緩衝實體區塊內已無未被搬移的資料時,則上述之記憶體管理單元抹除上述備用緩衝實體區塊所對應的緩衝實體區塊中所暫存的所有資料。
在本發明之一實施例中,當此資料的大小不小於預定資料量時,則上述之記憶體管理單元將此資料寫入至此資料所屬的邏輯區塊所對映的實體區塊中。
在本發明之一實施例中,當此資料的大小小於預定資料量並且此資料所屬的邏輯區塊所對應的緩衝實體區塊未被寫滿時,則記憶體管理單元將此資料寫入至此資料所屬的邏輯區塊所對應的緩衝實體區塊中。
在本發明之一實施例中,上述之記憶體管理單元將實體區塊的部分實體區塊至少分組為一資料區與一備用區。
在本發明之一實施例中,上述之記憶體管理單元將實體區塊的部分實體區塊更分組為一特殊區。
在本發明之一實施例中,上述之記憶體管理單元根據每一緩衝實體區塊的頁面數來將邏輯區塊分組為邏輯區塊群組,其中每一邏輯區塊群組中的邏輯區塊的數目為小於或等於每一緩衝實體區塊的頁面數的二分之一。
在本發明之一實施例中,上述之記憶體管理單元更用以判斷是否存有僅完成搬移部分資料的邏輯區塊,其中當無存有僅完成搬移部分資料的邏輯區塊時,則記憶體管理單元將暫存於緩衝實體區塊的其中一個緩衝實體區塊中部分的資料搬移至其中一個實體區塊中,其中此其中一個緩衝實體區塊所對應的備用緩衝實體區塊所暫存的資料量大於其他緩衝實體區塊所對應的備用緩衝實體區塊所暫存的資料量;以及當邏輯區塊之中存有僅完成搬移部分資料的邏輯區塊時,則記憶體管理單元繼續搬移此邏輯區塊的其他資料。
本發明範例實施例提出一種快閃記憶體儲存系統,用於儲存來自於一主機系統的資料,本快閃記憶體儲存系統包括連接器、快閃記憶體晶片與快閃記憶體控制器。連接器用以連接主機系統,並從主機系統接收一資料寫入指令與此資料。快閃記憶體晶片具有多個實體區塊。快閃記憶體控制器耦接連接器與快閃記憶體晶片,用以配置多個邏輯區塊,將邏輯區塊分組為多個邏輯區塊群組,並且選擇部分實體區塊作為多個緩衝實體區塊,其中每一邏輯區塊對映至少一個實體區塊,主機系統儲存此資料於邏輯區塊的其中之一,且每一緩衝實體區塊對應邏輯區塊群組的其中之一。快閃記憶體控制器更用以判斷此資料的大小是否小於預定資料量並且判斷此資料所屬的邏輯區塊所對應的緩衝實體區塊是否已被寫滿,其中當此資料的大小小於預定資料量並且此資料所屬的邏輯區塊所對應的緩衝實體區塊已被寫滿時,則快閃記憶體控制器選擇另一實體區塊作為對應的一備用緩衝實體區塊並且將此資料寫入至備用緩衝實體區塊中,其中此備用緩衝實體區塊是對應此資料所屬的邏輯區塊所對應的緩衝實體區塊。
在本發明之一實施例中,上述之快閃記憶體控制器更用以將暫存於備用緩衝實體區塊所對應的緩衝實體區塊中屬於其中一個邏輯區塊的資料搬移至其中一個實體區塊中。
在本發明之一實施例中,上述之快閃記憶體控制器從暫存於上述備用緩衝實體區塊所對應的緩衝實體區塊中的資料之中選擇其中一筆資料,並且判斷所選擇之資料所屬的邏輯區塊。上述之快閃記憶體控制器選擇其中一個實體區塊以作為對應所選擇之資料所屬的邏輯區塊的一輪替實體區塊。上述之快閃記憶體控制器將屬於所選擇之資料所屬的邏輯區塊的有效舊資料以及在對應的緩衝實體區塊中屬於所選擇之資料所屬的邏輯區塊的資料搬移至該輪替實體區塊中,其中在主機系統每次執行資料寫入指令時快閃記憶體控制器僅搬移屬於所選擇之資料所屬的邏輯區塊的有效舊資料與對應的緩衝實體區塊中屬於所選擇之資料所屬的邏輯區塊的資料的部分資料。
在本發明之一實施例中,當上述備用緩衝實體區塊所對應的緩衝實體區塊內已無未被搬移的資料時,則上述之快閃記憶體控制器抹除上述備用緩衝實體區塊所對應的緩衝實體區塊中所暫存的所有資料。
在本發明之一實施例中,當此資料的大小不小於預定資料量時,則快閃記憶體控制器將此資料寫入至此資料所屬的邏輯區塊所對映的實體區塊中。
在本發明之一實施例中,當此資料的大小小於預定資料量並且對應此資料所屬的邏輯區塊所對應的緩衝實體區塊未被寫滿時,則快閃記憶體控制器將此資料寫入至此資料所屬的邏輯區塊所對應的緩衝實體區塊中。
在本發明之一實施例中,上述之快閃記憶體控制器將實體區塊的部分實體區塊至少分組為一資料區與一備用區。
在本發明之一實施例中,上述之快閃記憶體控制器將實體區塊的部分實體區塊更分組為一特殊區。
在本發明之一實施例中,上述之快閃記憶體控制器根據每一緩衝實體區塊的頁面數來將邏輯區塊分組為邏輯區塊群組,其中每一邏輯區塊群組中的邏輯區塊的數目為小於或等於每一緩衝實體區塊的頁面數的二分之一。
在本發明之一實施例中,上述之快閃記憶體控制器更用以判斷是否存有僅完成搬移部分資料的邏輯區塊,其中當無存有僅完成搬移部分資料的邏輯區塊時,則快閃記憶體控制器將暫存於緩衝實體區塊的其中一個緩衝實體區塊中部分的資料搬移至其中一個實體區塊中,其中此其中一個緩衝實體區塊所對應的備用緩衝實體區塊所暫存的資料量大於其他緩衝實體區塊所對應的備用緩衝實體區塊所暫存的資料量;以及當存有僅完成搬移部分資料的邏輯區塊時,則快閃記憶體控制器繼續搬移此邏輯區塊的其他資料。
本發明將資料大小小於預定資料量的更新資料暫存於緩衝實體區塊中,並且以分次方式來搬移實體區塊內有效資料,因此可縮短執行資料寫入指令的時間,由此防止可能發生的逾時問題。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1是根據本發明一範例實施例所繪示的快閃記憶體儲存系統的概要方塊圖。
請參照圖1,通常快閃記憶體儲存裝置100會與主機系統200一起使用,以使主機系統200可將資料儲存至快閃記憶體儲存裝置100或從快閃記憶體儲存裝置100中讀取資料。在本範例實施例中,快閃記憶體儲存裝置100為記憶卡。但必須瞭解的是,在本發明另一實施例中快閃記憶體儲存裝置100亦可以是固態硬碟(Solid State Drive,SSD)或隨身碟。
快閃記憶體儲存裝置100包括快閃記憶體控制器(亦稱快閃記憶體控制電路)110、連接器120與快閃記憶體晶片130。
快閃記憶體控制器110會執行以硬體型式或韌體型式實作的多個邏輯閘或控制指令,並且根據主機系統200的指令在快閃記憶體晶片130中進行資料的寫入、讀取與抹除等。快閃記憶體控制器110包括微處理器單元110a、記憶體管理單元110b、快閃記憶體介面單元110c與主機介面單元110d。
微處理器單元110a用以與記憶體管理單元110b、快閃記憶體介面單元110c與主機介面單元110d等協同合作以進行快閃記憶體儲存裝置100的各種運作。
記憶體管理單元110b是耦接至微處理器單元110a,並且用以執行根據本範例實施例的區塊管理機制與資料寫入機制。
在本範例實施例中,記憶體管理單元110b是以一韌體型式實作在快閃記憶體控制器110中。例如,將包括多個程式指令的記憶體管理單元110b燒錄至一程式記憶體(例如,唯讀記憶體(Read Only Memory,ROM))中並且將此程式記憶體嵌入在快閃記憶體控制器110中,當快閃記憶體儲存裝置100運作時,記憶體管理單元110b的多個機器指令會由微處理器單元110a來執行以完成根據本發明實施例的區塊管理機制與資料寫入機制。
在本發明另一實施例中,記憶體管理單元110b的控制指令亦可以程式碼型式儲存於快閃記憶體晶片130的特定區域(例如,快閃記憶體中專用於存放系統資料的系統區)中。同樣的,當快閃記憶體儲存裝置100運作時,記憶體管理單元110b的多個控制指令會由微處理器單元110a來執行。此外,在本發明另一實施例中,記憶體管理單元110b亦可以一硬體型式實作在快閃記憶體控制器110中。
快閃記憶體介面單元110c是耦接至微處理器單元110a並且用以存取快閃記憶體晶片130。也就是說,欲寫入至快閃記憶體晶片130的資料會經由快閃記憶體介面單元110c轉換為快閃記憶體晶片130所能接受的格式。
主機介面單元110d是耦接至微處理器單元110a並且用以接收與識別主機系統200所傳送的指令。也就是說,主機系統200所傳送的指令與資料會透過主機介面單元110d來傳送至微處理器單元110a。在本範例實施例中,主機介面單元110d為安全數位(secure digital,SD)介面。然而,必須瞭解的是本發明不限於此,主機介面單元110d亦可以是序列先進附件(Serial Advanced Technology Attachment,SATA)介面、通用序列匯流排(Universal Serial Bus,USB)介面、電氣和電子工程師協會(Institute of Electrical and Electronic Engineers,IEEE)1394介面、高速周邊零件連接介面(Peripheral Component Interconnect Express,PCI Express)、記憶棒(Memory Sick,MS)介面、多媒體儲存卡(Multi Media Card,MMC)介面、小型快閃(Compact Flash,CF)介面、整合式驅動電子介面(Integrated Device Electronics,IDE)或其他適合的資料傳輸介面。
此外,雖未繪示於本範例實施例中,但快閃記憶體控制器110亦更包括錯誤校正單元與電源管理單元等用於控制快閃記憶體的一般功能模組。
連接器120是耦接至快閃記憶體控制器110並且用以透過匯流排300連接主機系統200。在本範例實施例中,連接器120為SD連接器。然而,必須瞭解的是本發明不限於此,連接器120亦可以是SATA連接器、USB連接器、IEEE 1394連接器、PCI Express連接器、MS連接器、MMC連接器、CF連接器、IDE連接器或其他適合的連接器。
快閃記憶體晶片130是耦接至快閃記憶體控制器110並且用以儲存資料。在本範例實施中,快閃記憶體晶片130為多層記憶胞(Multi Level Cell,MLC)NAND快閃記憶體。然而,必須瞭解的是,本發明不限於此。在本發明另一實施例中,單層記憶胞(Single Level Cell, SLC)NAND快閃記憶體亦可應用於本發明。
快閃記憶體晶片130是耦接至快閃記憶體控制器110並且用以儲存資料。快閃記憶體晶片130具有實體區塊310-(0)~310-(N),其中實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。每一實體區塊通常會分割為數個頁面(page)。由於在本範例實施例中,快閃記憶體晶片130為MLC NAND快閃記憶體,因此,頁面為程式化(program)的最小單元。換言之,頁面為寫入資料或讀取資料的最小單元。每一頁面通常包括資料區與冗餘區。資料區用以儲存使用者的資料,而冗餘區用以儲存系統的資料(例如,錯誤檢查與校正碼(Error Checking and Correcting Code,ECC Code)。在本範例實施例中,快閃記憶體晶片130的每一頁面具有16個扇區的容量,一般來說,一個扇區為512位元組,因此一個頁面為8千位元組。
但要特別說明的是,在其他快閃記憶體設計中(例如,SLC NAND快閃記憶體),最小的程式化單位亦可為一個扇區,也就是說,以一個扇區為程式化的最小單元。此外,實體區塊310-(0)~310-(N)也可被分組為數個區域(zone),以每一獨立的區域來管理實體區塊310-(0)~310-(N)可增加操作執行的平行程度且簡化管理的複雜度。
圖2A~2C是根據本發明一範例實施例所繪示的快閃記憶體晶片的運作示意圖。
必須瞭解的是,在此描述快閃記憶體實體區塊的運作時,以“提取”、“搬移”、“交換”、“替換”、“輪替”、“分組”等詞來操作快閃記憶體晶片130的實體區塊是邏輯上的概念。也就是說,快閃記憶體之實體區塊的實際位置並未更動,而是邏輯上對快閃記憶體的實體區塊進行操作。值得一提的是,下述的運作是由快閃記憶體控制器110的記憶體管理單元110b所完成。
請參照圖2A,記憶體管理單元110b會將快閃記憶體晶片130的實體區塊310-(0)~310-(N)邏輯地分組為儲存區320以及取代區330。
在儲存區320中的實體區塊310-(0)~310-(P)是快閃記憶體儲存裝置100中正常被使用的實體區塊。也就是說,記憶體管理單元110b會將資料寫入至屬於儲存區320的實體區塊。
在取代區330中的實體區塊310-(P+1)~310-(N)是替代實體區塊。例如,快閃記憶體晶片130於出廠時會預留4%的實體區塊作為更換使用。也就是說,當儲存區320中的實體區塊損毀時,預留於取代區330中的實體區塊可用以取代損壞的實體區塊(即,壞的實體區塊(bad block))。因此,倘若取代區330中仍存有可用之實體區塊且發生實體區塊損毀時,記憶體管理單元110b會從取代區330中提取可用的實體區塊來更換損毀的實體區塊。倘若取代區330中無可用之實體區塊且發生實體區塊損毀時,則快閃記憶體儲存裝置100將會被宣告成寫入保護(write protect),而無法再寫入資料。
請參照圖2B,記憶體管理單元110b會將儲存區320的實體區塊邏輯地分組成一系統區302、一資料區304、一備用區306與一特殊區308。
系統區302包括實體區塊310-(0)~實體區塊310-(S),資料區304包括實體區塊310-(S+1)~實體區塊310-(M),備用區306包括實體區塊310-(M+1)~實體區塊310-(K)且特殊區308包括實體區塊310-(K+1)~實體區塊310-(P)。在本範例實施例中,上述S、M、K與P為正整數,其代表各區配置的實體區塊數量,其可由快閃記憶體儲存系統的製造商依據所使用的快閃記憶體晶片的容量而設定。
邏輯上屬於系統區302中的實體區塊用以記錄系統資料,此系統資料包括關於快閃記憶體晶片的製造商與型號、每一快閃記憶體模組的區域數、每一區域的實體區塊數、每一實體區塊的頁面數等。
邏輯上屬於資料區304中的實體區塊用以儲存使用者的資料,一般來說就是主機系統200所存取之邏輯區塊所對映的實體區塊。也就是說,資料區304的實體區塊為儲存有效資料的單元。
邏輯上屬於備用區306中的實體區塊是用以輪替資料區304中的實體區塊,因此在備用區306中的實體區塊為空的或可使用的單元,即無記錄資料或標記為已沒用的無效資料。也就是說,資料區304與備用區306的實體區塊會以輪替方式來儲存主機系統200對快閃記憶體儲存裝置100寫入的資料。
如前所述,快閃記憶體晶片130的實體區塊會以輪替方式提供主機系統200來儲存資料,因此記憶體管理單元110b會提供邏輯區塊350-0~350-H給主機系統200以進行資料存取,並且透過維護邏輯位址-實體位址對映表(logical address-physical address mapping table)來記錄邏輯區塊所對映的實體區塊。
請同時參照圖2B與圖2C,例如,當主機系統200欲儲存資料至邏輯區塊350-0時,記憶體管理單元110b會透過邏輯位址-實體位址對映表得知邏輯區塊350-0目前是對映邏輯上屬於資料區304的實體區塊310-(S+1)。因此,記憶體管理單元110b會對實體區塊310-(S+1)中的資料進行更新,期間,快閃記憶體控制器110會從備用區306中提取實體區塊310-(M+1)作為輪替實體區塊以替換資料區304的實體區塊310-(S+1)。然而,當記憶體管理單元110b將新資料寫入至實體區塊310-(M+1)的同時,記憶體管理單元110b不會立刻將實體區塊310-(S+1)中的所有有效資料搬移至實體區塊310-(M+1)而抹除實體區塊310-(S+1)。具體來說,記憶體管理單元110b會將實體區塊310-(S+1)中欲寫入頁面之前的有效資料(即,頁P0與P1)複製至實體區塊310-(M+1)(如圖2C的(a)),並且將新資料(即,實體區塊310-(M+1)的頁P2與P3)寫入至實體區塊310-(M+1)(如圖2C的(b))。此時,記憶體管理單元110b即完成寫入的動作。因為實體區塊310-(S+1)中的有效資料有可能在下個操作(例如,寫入指令)中變成無效,因此立刻將實體區塊310-(S+1)中的所有有效資料搬移至替換實體區塊310-(M+1)可能會造成無謂的搬移。在此案例中,實體區塊310-(S+1)與實體區塊310-(M+1)的內容整合起來才是所對映邏輯區塊350-1的完整內容。此等母子區塊(即,實體區塊310-(S+1)與實體區塊310-(M+1))的暫態關係可依據快閃記憶體控制器110中緩衝記憶體(未繪示)的大小而定,而暫時地維持此種暫態關係的動作一般稱為開啟(open)母子區塊。特別是,在此開啟母子區塊的狀態下,所處理的邏輯區塊是對映多個實體區塊。
之後,當需要將實體區塊310-(S+1)與實體區塊310-(M+1)的內容真正合併時,記憶體管理單元110b才會將實體區塊310-(S+1)與實體區塊310-(M+1)整併為一個實體區塊,由此提升實體區塊的使用效率,在此,此合併的動作又可稱為關閉(close)母子區塊。例如,如圖2C的(c)所示,當進行關閉母子區塊時,記憶體管理單元110b會將實體區塊310-(S+1)中剩餘的有效資料(即,頁P4~PN)複製至替換實體區塊310-(M+1),然後將實體區塊310-(S+1)抹除並關聯為備用區306,同時,將實體區塊310-(M+1)關聯為資料區304,並且在邏輯位址-實體位址對映表中將邏輯區塊350-0的對映更改為實體區塊310-(M+1),由此完成關閉母子區塊的動作。特別是,在完成關閉母子區塊的狀態下,所處理的邏輯區塊是對映一個實體區塊。
請再參照圖2B,邏輯上屬於特殊區308中的實體區塊是用以暫時地儲存主機系統200欲寫入至快閃記憶體晶片130的資料。如上所述由於根據本發明實施例的快閃記憶體晶片130的實體區塊的頁面可儲存空間較大(如上所述8千位元組),因此進行上述搬移實體區塊310-(S+1)內有效的資料至實體區塊310-(M+1)時,需要花費較長的時間,而可能造成無法於快閃記憶體儲存裝置100之規格所規範的預定時間內回應完成資料寫入指令,亦即發生逾時(timeout)的情形。值得一提的是,記憶體管理單元110b僅會將資料長度小於預定資料量的資料暫存於特殊區308中。
具體來說,例如以一個具有128個頁面的2層MLC NAND快閃記憶體的實體區塊為例,當執行關閉母子區塊時,寫入資料所需的時間約為200毫秒(millisecond),讀取資料所需的時間約為10毫秒,而傳輸資料所需的時間為140毫秒,因此,完成關閉一個母子區塊所需的時間約為350毫秒。此外,主機系統允許寫一個扇區的回應時間為250毫秒,故當寫入的資料的長度超過2個扇區時就可於系統規範的時間內完成寫入指令。再者,為確保系統更為穩定,在本範例實施例中更預留1個扇區的回應時間。因此,在具有128個頁面的2層MLC NAND快閃記憶體的實體區塊的例子中,預設資料量會被設定為3個扇區。類似地,以一個具有192個頁面的3層MLC NAND快閃記憶體的實體區塊為例,完成關閉一個母子區塊所需的時間約為600毫秒,故預設資料量會被設定為5個扇區。
基於上述,在本範例實施例中僅會先將資料長度小於預設資料量的資料先暫存至特殊區308的實體區塊中,以縮短回應時間而避免逾時。
在本範例實施例中,記憶體管理單元110b會將邏輯區塊350-0~350-H分群為多個邏輯區塊群組並且將特殊區308的實體區塊310-(K+1)~310-(P)分別地分配給邏輯區塊群組,以作為對應的緩衝實體區塊。並且,當主機系統200欲儲存的資料的大小小於預設資料量時,記憶體管理單元110b會根據欲儲存此資料的邏輯區塊所屬的邏輯區塊群組將資料暫存於對應的緩衝實體區塊中。
圖3A~3D是根據本發明範例實施例所繪示的暫存資料於緩衝實體區塊的範例。例如,假設在記憶體管理單元110b配置9個邏輯區塊(即,邏輯區塊350-0~350-8),且將邏輯區塊350-0~350-8分群為包括邏輯區塊350-0~350-2的第一邏輯區塊群組、邏輯區塊350-3~350-5的第二邏輯區塊群組與邏輯區塊350-6~350-8的第三邏輯區塊群組的例子中,記憶體管理單元110b會在特殊區308中配置3個實體區塊(實體區塊310-(K+1)~310-(K+3)),其中實體區塊310-(K+1)是用作為第一邏輯區塊群組的緩衝實體區塊S1、實體區塊310-(K+2)是用作為第二邏輯區塊群組的緩衝實體區塊S2且實體區塊310-(K+3)是用作為第三邏輯區塊群組的緩衝實體區塊S3。在此範例中,每一實體區塊是以具有6個頁面的簡化架構來作說明,然而必須瞭解的是,本發明不限於此,每一實體區塊可以是少於6個頁面或多於6個頁面。例如,實體區塊具有192個頁面。
當主機系統200欲儲存資料至快閃記憶體儲存裝置100時,主機介面單元110d會從主機系統200中接收一資料寫入指令與一資料,其中此資料寫入指令會包含欲儲存此資料的邏輯位址。之後,記憶體管理單元110b會將此邏輯位址轉換為對應的邏輯區塊,並且記憶體管理單元110b會判斷此資料的資料長度是否小於預設資料量,其中當此資料的資料長度不小於預設資料量時,則記憶體管理單元110b會依據記憶體管理單元110b所轉換之邏輯區塊將資料寫入至對映的實體區塊中(如圖2B~2C所示)。當此資料的資料長度小於預設資料量時,則記憶體管理單元110b會依據記憶體管理單元110b所轉換之邏輯區塊將資料暫存於對應的緩衝實體區塊中。例如,如圖3A所示,若主機系統200欲儲存資料長度小於預設資料量的資料至邏輯區塊350-2時,則記憶體管理單元110b會將此資料暫存於緩衝實體區塊S1中。
此外,當緩衝實體區塊已被寫滿而無可用儲存空間時,記憶體管理單元110b會從備用區306中提取實體區塊作為對應的備用緩衝實體區塊,以使記憶體管理單元110b可在緩衝實體區塊已被寫滿時將資料暫存於對應的備用緩衝實體區塊中。例如,如圖3B所示,當主機系統200欲儲存資料長度小於預設資料量的資料至邏輯區塊350-2且緩衝實體區塊S1已被寫滿時,則記憶體管理單元110b會從備用區306中提取實體區塊(例如,實體區塊310-(M+2))作為緩衝實體區塊S1的備用緩衝實體區塊S1’,且記憶體管理單元110b會將此資料暫存於備用緩衝實體區塊S1’中。
特別是,在本範例實施例中,在某一緩衝實體區塊已被寫滿的狀態下,當記憶體管理單元110b依據主機系統200的資料寫入指令將資料暫存於對應此已被寫滿之緩衝實體區塊的備用緩衝實體區塊時,則記憶體管理單元110b更會進行邏輯區塊的合併程序,其中在每次執行資料寫入指令時記憶體管理單元110b僅會合併邏輯區塊中一半的資料,以避免上述逾時的問題。具體來說,記憶體管理單元110b會從暫存在此已被寫滿之緩衝實體區塊中的多筆資料所屬的邏輯區塊之中選擇其中一個邏輯區塊作為合併的目標,記憶體管理單元110b會從備用區306中提取一個實體區塊作為輪替實體區塊,並且記憶體管理單元110b會將屬於所選擇之邏輯區塊的資料的其中一半搬移至所提取的輪替實體區塊中。值得一提的是,在本範例實施例中儘管記憶體管理單元110b會將屬於所選擇之邏輯區塊的資料的1/2搬移至所提取的輪替實體區塊中,然而本發明不限於此。具體來說,搬移資料的數量會根據每一實體區塊的容量和每一邏輯區塊群組所包含的邏輯區塊數來決定。例如,當每一實體區塊的頁面數為I且每一邏輯區塊群組所包含的邏輯區塊數為J時,則搬移的資料量為所選擇之邏輯區塊的資料的(J/I),其中J小於或等於(I/2)。
例如,如圖3B所示,記憶體管理單元110b將屬於邏輯區塊350-2的資料暫存於備用緩衝實體區塊S1’之後,會依據暫存於緩衝實體區塊S1中的資料來選擇第一筆資料所屬之邏輯區塊(即,邏輯區塊350-2)為合併的目標。然後,記憶體管理單元110b會從備用區306中選擇一個實體區塊(例如,實體區塊310-(M+3))作為輪替實體區塊,並且記憶體管理單元110b會依據邏輯位址與實體位址對映表將邏輯區塊350-2所對映之實體區塊中的有效舊資料以及在緩衝實體區塊S1中屬於邏輯區塊350-2的資料搬移至實體區塊310-(M+3),其中記憶體管理單元110b僅搬移屬於邏輯區塊350-2之前半部的資料。之後,如圖3C所示,當記憶體管理單元110b再次依據主機系統200的資料寫入指令而將屬於邏輯區塊350-1的資料暫存於備用緩衝實體區塊S1’之後,記憶體管理單元110b會搬移屬於邏輯區塊350-2之後半部的資料,而完成邏輯區塊350-2的合併。
在本範例實施例中,當已存滿資料的緩衝實體區塊中已無未搬移的資料時,則記憶體管理單元110b會對此緩衝實體區塊執行抹除指令,並且已抹除的緩衝實體區塊就可繼續暫存資料。例如,如圖3D所示,倘若記憶體管理單元110b後續暫存多筆資料長度小於預設資料量的資料於備用緩衝實體區塊S1’中,並完成多個邏輯區塊的合併而使緩衝實體區塊S1中的資料皆被搬移至對映的實體區塊後,記憶體管理單元110b會抹除儲存在緩衝實體區塊S1的資料。之後,當備用緩衝實體區塊S1’被寫滿後,記憶體管理單元110b則可將資料暫存於緩衝實體區塊S1中,並合併備用緩衝實體區塊S1’中之資料所屬的邏輯區塊。同樣地,當備用緩衝實體區塊S1’中的資料皆被搬移至對映的實體區塊後,記憶體管理單元110b會抹除暫存於備用緩衝實體區塊S1’中的資料。基此,可反覆地在緩衝實體區塊S1與備用緩衝實體區塊S1’中暫存資料長度小於預設資料量的資料。值得一提的是,在本發明另一範例實施例中,當從備用區306中所提取用作為備用緩衝實體區塊的實體區塊被執行抹除指令後,此被抹除的實體區塊會被關聯至備用區,且記憶體管理單元會重新提取一個實體區塊作為備用緩衝實體區塊。儘管本範例實施例是從備用區中提取實體區塊作為備用緩衝實體區塊,然在本發明另一範例實施例中,備用緩衝實體區塊亦可是從特殊區308中提取。
此外,在本範例實施例中是配置固定的實體區塊(即特殊區308)作為緩衝實體區塊,然而本發明不限於此,在本發明另一範例實施例中,記憶體管理單元110b會從備用區306中輪流的提取實體區塊作為緩衝實體區塊。例如,當記憶體管理單元110b對目前作為緩衝實體區塊S1的實體區塊執行抹除指令後,記憶體管理單元110b會將此被抹除的實體區塊關聯為備用區306,並且從備用區306中提取另一實體區塊作為緩衝實體區塊S1。
值得一提的是,上述邏輯區塊的分組與緩衝實體區塊的配置會與每一實體區塊的頁面數有關。在圖3A~3D所示的範例中,在實體區塊具有6個頁面且記憶體管理單元110b在備用緩衝實體區塊中暫存兩筆資料(即,程式化兩個頁面)時即可完成1個邏輯區塊的合併的情況下,當記憶體管理單元110b在備用緩衝實體區塊中寫滿資料時,記憶體管理單元110b可完成3個邏輯區塊的合併。因此,在此範例中,每一緩衝實體區塊是對應以3個邏輯區塊所組成的邏輯區塊群組,由此可確保在備用緩衝實體區塊被寫滿前,其對應的緩衝實體區塊中的資料皆已被搬移至對映的實體區塊中。基此,在本範例實施例中,緩衝實體區塊與備用緩衝實體區塊可輪替地來暫存資料長度小於預定資料量的資料。必須瞭解的是,上述邏輯區塊群組的分組方式與緩衝實體區塊的配置方式僅為一範例,以方便說明本發明的精神,然而本發明不限於此,任何能達成上述輪替暫存資料的配置方式皆可應用於本發明。例如,若每一實體區塊的頁面數為I時,則將每一邏輯區塊群組中的邏輯區塊數配置為小於或等於(I/2),則可達成在備用緩衝實體區塊被寫滿前完成儲存在對應的緩衝實體區塊中之所有資料的搬移。
必須瞭解的,儘管上述僅針對緩衝實體區塊S1與備用緩衝實體區塊S1’來描述,然而此運作方式可類推於其他緩衝實體區塊與備用緩衝實體區塊。然而,在快閃記憶體儲存裝置100具足夠的資源讓每一邏輯區塊群組開啟一組母子區塊的本發明另一範例實施例中,當記憶體管理單元110b暫存資料於備用緩衝實體區塊(例如,備用緩衝實體區塊S1’)時,記憶體管理單元110b僅對緩衝實體區塊(例如,緩衝實體區塊S1)所對應之邏輯區塊群組的其中一個邏輯區塊的資料進行搬移。
圖4A與4B是繪示快閃記憶體儲存系統具足夠的資源讓每一邏輯區塊群組開啟一組母子區塊的範例。
請參照圖4A與圖4B,假設緩衝實體區塊S1與緩衝實體區塊S2皆已被寫滿下,當記憶體管理單元110b暫存邏輯區塊350-2的資料於備用緩衝實體區塊S1’時,記憶體管理單元110b會合併邏輯區塊350-2的資料(如圖4A所示)。之後,當記憶體管理單元110b暫存邏輯區塊350-3的資料於備用緩衝實體區塊S2’時,記憶體管理單元110b會合併邏輯區塊350-4的資料(如圖4B所示),此時邏輯區塊350-2與邏輯區塊350-4皆處於僅搬移部分資料的狀態(即,上述開啟母子區塊的狀態)。
值得一提的是,在快閃記憶體儲存裝置100不具足夠的資源讓每一邏輯區塊群組開啟一組母子區塊的例子中,記憶體管理單元110b會選擇已存有較多資料的備用緩衝實體區塊所對應之緩衝實體區塊來進行上述資料的搬移。特別是,在此例子中,當快閃記憶體儲存裝置100已存有僅搬移一部份資料的邏輯區塊時,記憶體管理單元110b會先繼續搬移此僅搬移一部份資料的邏輯區塊的剩餘資料。也就是說,在此例子中,當記憶體管理單元110b於不同備用緩衝實體區塊中暫存資料時,記憶體管理單元110b仍會針對同一個邏輯區塊進行資料的搬移,直到此邏輯區塊的所有資料皆完成搬移為止。
圖5A與5B是繪示快閃記憶體儲存系統不具足夠的資源讓每一邏輯區塊群組開啟一組母子區塊的範例。
請參照圖5A與圖5B,假設緩衝實體區塊S1與緩衝實體區塊S2接已被寫滿下,當記憶體管理單元110b暫存邏輯區塊350-2的資料於備用緩衝實體區塊S1’時,記憶體管理單元110b會合併邏輯區塊350-2的資料(如圖5A所示)。之後,當記憶體管理單元110b暫存邏輯區塊350-3的資料於備用緩衝實體區塊S2’時,記憶體管理單元110b會搬移邏輯區塊350-2的其他資料以完成邏輯區塊350-2的合併(如圖5B所示),然後於下一個寫入指令時才進行緩衝實體區塊S2所對應之邏輯區塊的合併。
圖6是根據本發明範例實施例所繪示的資料寫入方法的流程圖。
請參照圖6,首先,在步驟S601中記憶體管理單元110b會初始化快閃記憶體晶片130。具體來說,在步驟S601中記憶體管理單元110b會將快閃記憶體晶片130的實體區塊邏輯地分組為系統區302、資料區304、備用區306、特殊區308與取代區330,配置邏輯區塊350-0~350-H並將邏輯區塊350-0~350-H分群為多個邏輯區塊群組以及分配緩衝實體區塊等初始化運作。
在步驟S603中主機介面單元110d會從主機系統200中接收資料寫入指令與欲儲存的資料,其中微處理器單元110a會將此資料寫入指令內的資訊提供給記憶體管理單元110b。
在步驟S605中,記憶體管理單元110b會根據資料寫入指令內的資訊判斷主機系統200欲儲存至邏輯區塊的資料的長度是否小於預設資料量。
倘若在步驟S605中判斷欲儲存的資料的長度不小於預設資料量時,則在步驟S607中記憶體管理單元110b會將資料寫入至對映的實體區塊中,其寫入程序是類似圖2B~2C所示,在此不重複描述。
倘若在步驟S605中判斷欲儲存的資料的長度小於預設資料量時,則在步驟S609中記憶體管理單元110b會判斷欲儲存此資料的邏輯區塊所對應的緩衝實體區塊是否被寫滿。倘若欲儲存此資料的邏輯區塊所對應的緩衝實體區塊未被寫滿時,則在步驟S611中記憶體管理單元110b會將此資料暫存至對應的緩衝實體區塊中。具體來說,記憶體管理單元110b會根據資料寫入指令中的資訊來判斷主機系統200欲將此資料儲存在那個邏輯區塊及其對應的邏輯區塊群組,並且記憶體管理單元110b會根據主機系統200所提供的資訊將資料暫存至欲儲存此資料之邏輯區塊所對應的緩衝實體區塊中。
例如,以圖3A~3D為例,當資料是屬於邏輯區塊350-0~350-2的資料時,則此資料會被暫存至緩衝實體區塊S1中;當資料為屬於邏輯區塊350-3~350-5的資料時,則此資料會被暫存至緩衝實體區塊S2中;以及當資料為屬於邏輯區塊350-6~350-8的資料時,則此資料會被暫存至緩衝實體區塊S3中。例如,如圖3A所示,當欲儲存之資料屬於邏輯區塊350-2時,此資料會被暫存於緩衝實體區塊S1中。
倘若欲儲存此資料的邏輯區塊所對應的緩衝實體區塊已被寫滿時,則在步驟S613中記憶體管理單元110b會判斷是否存有用於此已被寫滿之緩衝實體區塊的備用緩衝實體區塊。倘若無存有對應的備用緩衝實體區塊時,則在步驟S615中記憶體管理單元110b會從備用區306中提取一個實體區塊作為對應的備用緩衝實體區塊。然後,在步驟S617中記憶體管理單元110b會將資料暫存於備用緩衝實體區塊中。值得一提的是,在本範例實施例中,當需要配置備用緩衝實體區塊時,記憶體管理單元110b會從備用區306中提取作為備用緩衝實體區塊的實體區塊,然而,本發明不限於此,在本發明另一範例實施例中,作為備用緩衝實體區塊的實體區塊亦可於預先配置於特殊區308中。
例如,如圖3B所示,當緩衝實體區塊S1已被寫滿時,則記憶體管理單元110b會提取一個實體區塊作為備用緩衝實體區塊S1’,且記憶體管理單元110b將資料暫存於備用緩衝實體區塊S1’中。
接著,在步驟S619中記憶體管理單元110b會判斷儲存此資料的邏輯區塊所屬的邏輯區塊群組之中是否存有僅完成部分有效資料搬移的邏輯區塊。也就是說,在步驟S619中會判斷儲存此資料的邏輯區塊所屬的邏輯區塊群組之中是否有等待完成剩餘有效資料搬移的邏輯區塊。
倘若在步驟S619中判斷無存有僅完成部分有效資料搬移的邏輯區塊時,則在步驟S621中記憶體管理單元110b會從對應的緩衝實體區塊所暫存之未搬移資料所屬的邏輯區塊之中選擇一個邏輯區塊來進行有效資料搬移動作,其中僅搬移此邏輯區塊中一半的有效資料。例如,如圖3B所示,記憶體管理單元110b選擇邏輯區塊350-2來進行有效資料的搬移。
倘若在步驟S619中判斷存有僅完成部分有效資料之搬移的邏輯區塊時,則在步驟S623中記憶體管理單元110b會對此僅完成部分有效資料搬移的邏輯區塊進行剩餘有效資料的搬移動作,由此完成此邏輯區塊的所有有效資料的搬移動作(如圖3C所示)。
接著,在步驟S625中記憶體管理單元110b會判斷暫存在對應的緩衝實體區塊中的所有資料是否已被搬移,其中倘若暫存於對應的緩衝實體區塊中的所有資料已被搬移時,則在步驟S627中記憶體管理單元110b會執行抹除指令以清空對應的緩衝實體區塊(如圖3D所示)。
在本發明範例實施例中,是以循序方式在對應的緩衝實體區塊中挑選資料來進行其所屬邏輯區塊的有效資料搬移。然而,在本發明另一實施例中亦可選擇對應的緩衝實體區塊中已暫存最多筆資料之邏輯區塊來進行有效資料搬移,或者以一隨機方式挑選對應的邏輯區塊來進行有效資料搬移。
綜上所述,根據本發明範例實施例的資料寫入方法會在當資料的資料長度小於預設資料量時將此資料暫存於特殊區的緩衝實體區塊中,並且本發明實施例的資料寫入方法僅會對邏輯區塊的部分有效資料進行搬移動作,因此快閃記憶體儲存裝置可快速完成資料寫入動作並於預定時間內回應主機系統而不會造成逾時的問題。基此,透過本發明實施例所提出的資料寫入方法可在不會發生上述逾時的問題之下將頁(page)以大容量設計之快閃記憶體晶片應用於快閃記憶體儲存裝置中以滿足大儲存容量的需求。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100...快閃記憶體儲存裝置
110...快閃記憶體控制器
110a...微處理器單元
110b...記憶體管理單元
110c...快閃記憶體介面單元
110d...主機介面單元
120...連接器
130...快閃記憶體晶片
200...主機系統
300...匯流排
302...系統區
304...資料區
306...備用區
308...特殊區
310-0~310-N...實體區塊
320...儲存區
330...取代區
350-0~350-H...邏輯區塊
S1、S2、S3...緩衝實體區塊
S1’、S2’...備用緩衝實體區塊
S601、S603、S605、S607、S609、S611、S613、S615、S617、S619、S621、S625、S627...資料寫入步驟
圖1是根據本發明一範例實施例所繪示的快閃記憶體儲存系統的概要方塊圖。
圖2A~2C是根據本發明一範例實施例所繪示的快閃記憶體晶片的運作示意圖。
圖3A~3D是根據本發明範例實施例所繪示的暫存資料於緩衝實體區塊的範例。
圖4A與4B是繪示快閃記憶體儲存系統具足夠的資源讓每一邏輯區塊群組開啟一組母子區塊的範例。
圖5A與5B是繪示快閃記憶體儲存系統不具足夠的資源讓每一邏輯區塊群組開啟一組母子區塊的範例。
圖6是根據本發明範例實施例所繪示的資料寫入方法的流程圖。
S601、S603、S605、S607、S609、S611、S613、S615、S617、S619、S621、S625、S627‧‧‧資料寫入步驟
Claims (48)
- 一種資料寫入方法,用於將來自於一主機系統的一資料寫入至一快閃記憶體晶片,其中該快閃記憶體晶片包括多個實體區塊,該資料寫入方法包括:提供一快閃記憶體控制器,用以從該主機系統接收一資料寫入指令與該資料;配置多個邏輯區塊,其中每一該些邏輯區塊對映至少一個該些實體區塊,其中該主機系統儲存該資料於該些邏輯區塊之中的一第一邏輯區塊;將該些邏輯區塊分組為多個邏輯區塊群組,其中該些邏輯區塊之中的至少兩個邏輯區塊被分組至該些邏輯區塊群組的其中之一並且該第一邏輯區塊屬於該些邏輯區塊群組之中的一第一邏輯區塊群組;選擇該些實體區塊的部分實體區塊作為分別用於該些邏輯區塊群組的多個緩衝實體區塊,其中該些緩衝實體區塊之中的一第一緩衝實體區塊被指派給該第一邏輯區塊群組;由該快閃記憶體控制器判斷該資料的大小是否小於一預定資料量並且判斷該第一緩衝實體區塊是否已被寫滿;以及當該資料的大小為小於該預定資料量並且該第一緩衝實體區塊已被寫滿時,則由該快閃記憶體控制器選擇該些實體區塊之中的另一實體區塊作為該第一邏輯區塊群組的一第一備用緩衝實體區塊,並且將該資料寫入至該第一 備用緩衝實體區塊中。
- 如申請專利範圍第1項所述之資料寫入方法,其中在將該資料寫入至該第一備用緩衝實體區塊中之後更包括將暫存於該第一緩衝實體區塊中屬於其中一個邏輯區塊的資料搬移至其中一個該些實體區塊中。
- 如申請專利範圍第2項所述之資料寫入方法,其中將暫存於該第一緩衝實體區塊中屬於其中一個邏輯區塊的資料搬移至其中一個該些實體區塊中的步驟包括:從暫存於該第一緩衝實體區塊中的資料之中選擇其中一筆資料,並且判斷所選擇之資料所屬的邏輯區塊;選擇其中一個該些實體區塊作為所選擇之資料所屬的邏輯區塊的一輪替實體區塊;以及將屬於所選擇之資料所屬的邏輯區塊的有效舊資料以及在該第一緩衝實體區塊中所選擇的資料搬移至該輪替實體區塊中,其中在該主機系統每次執行該資料寫入指令時僅搬移屬於所選擇之資料所屬的邏輯區塊的有效舊資料與在該第一緩衝實體區塊中所選擇的資料的部分資料。
- 如申請專利範圍第2項所述之資料寫入方法,更包括當該第一緩衝實體區塊內已無未被搬移的資料時,抹除該第一緩衝實體區塊中所暫存的所有資料。
- 如申請專利範圍第1項所述之資料寫入方法,更包括當該資料的大小不小於該預定資料量時,則將該資料寫入至該第一邏輯區塊所對映的實體區塊中。
- 如申請專利範圍第1項所述之資料寫入方法,更包 括當該資料的大小小於該預定資料量並且該第一緩衝實體區塊未被寫滿時,則將該資料寫入至該第一緩衝實體區塊中。
- 如申請專利範圍第1項所述之資料寫入方法,更包括將該些實體區塊的部分實體區塊至少分組為一資料區與一備用區。
- 如申請專利範圍第7項所述之資料寫入方法,其中該些緩衝實體區塊是選自於該備用區的實體區塊。
- 如申請專利範圍第7項所述之資料寫入方法,其中該第一備用緩衝實體區塊是選自於該備用區的實體區塊。
- 如申請專利範圍第7項所述之資料寫入方法,更包括將該些實體區塊的部分實體區塊分組為一特殊區,其中該些緩衝實體區塊是選自於該特殊區的實體區塊。
- 如申請專利範圍第10項所述之資料寫入方法,其中該第一備用緩衝實體區塊是選自於該備用區的實體區塊。
- 如申請專利範圍第10項所述之資料寫入方法,其中該第一備用緩衝實體區塊是選自於該特殊區的實體區塊。
- 如申請專利範圍第1項所述之資料寫入方法,其中將該些邏輯區塊分組為多個邏輯區塊群組的步驟包括:根據每一緩衝實體區塊的頁面數來將該些邏輯區塊分組為該些邏輯區塊群組,其中每一邏輯區塊群組中的該些邏輯區塊的數目為小於或等於每一緩衝實體區塊的頁面 數的二分之一。
- 如申請專利範圍第1項所述之資料寫入方法,其中在將該資料寫入至該第一備用緩衝實體區塊中之後更包括:判斷是否存有僅完成搬移部分資料的邏輯區塊;當無存有僅完成搬移部分資料的邏輯區塊時,則將暫存於該些緩衝實體區塊的其中一個緩衝實體區塊中部分的資料搬移至其中一個該些實體區塊中,其中該其中一個緩衝實體區塊所對應的備用緩衝實體區塊所暫存的資料量大於其他緩衝實體區塊所對應的備用緩衝實體區塊所暫存的資料量。
- 如申請專利範圍第1項所述之資料寫入方法,其中在將該資料寫入至該第一備用緩衝實體區塊中之後更包括:判斷是否存有僅完成搬移部分資料的邏輯區塊;當存有僅完成搬移部分資料的邏輯區塊時,則繼續搬移該邏輯區塊的其他資料。
- 如申請專利範圍第1項所述之資料寫入方法,其中該預定資料量為三個或五個扇區。
- 一種快閃記憶體控制電路,用以將來自於一主機系統的一資料寫入至一快閃記憶體晶片,其中該快閃記憶體晶片包括多個實體區塊,該快閃記憶體控制電路包括:一微處理器單元;一快閃記憶體介面單元,耦接至該微處理器單元,用 以連接該快閃記憶體晶片;一主機介面單元,耦接至該微處理器單元,用以連接該主機系統,並從該主機系統接收一資料寫入指令與該資料;一記憶體管理單元,耦接至該微處理器單元,用以配置多個邏輯區塊,將該些邏輯區塊分組為多個邏輯區塊群組,並且選擇該些實體區塊的部分實體區塊作為多個緩衝實體區塊,其中每一該些邏輯區塊對映至少一個該些實體區塊,該主機系統儲存該資料於該些邏輯區塊之中的一第一邏輯區塊,該些邏輯區塊之中的至少兩個邏輯區塊被分組至該些邏輯區塊群組的其中之一,該第一邏輯區塊屬於該些邏輯區塊群組之中的一第一邏輯區塊群組且該些緩衝實體區塊之中的一第一緩衝實體區塊被指派給該第一邏輯區塊群組,其中該記憶體管理單元更用以判斷該資料的大小是否小於一預定資料量並且判斷該第一緩衝實體區塊是否已被寫滿,其中當該資料的大小小於該預定資料量並且該第一緩衝實體區塊已被寫滿時,則該記憶體管理單元選擇該些實體區塊之中的另一實體區塊作為該第一邏輯區塊群組的一第一備用緩衝實體區塊,並且將該資料寫入至該第一備用緩衝實體區塊中。
- 如申請專利範圍第17項所述之快閃記憶體控制電路,其中該記憶體管理單元更用以將暫存於該第一緩衝實 體區塊中屬於其中一個邏輯區塊的資料搬移至其中一個該些實體區塊中。
- 如申請專利範圍第18項所述之快閃記憶體控制電路,其中該記憶體管理單元從暫存於該第一緩衝實體區塊中的資料之中選擇其中一筆資料,並且判斷所選擇之資料所屬的邏輯區塊,該記憶體管理單元選擇其中一個該些實體區塊作為所選擇之資料所屬的邏輯區塊的一輪替實體區塊,以及該記憶體管理單元將屬於所選擇之資料所屬的邏輯區塊的有效舊資料以及在該第一緩衝實體區塊中所選擇的資料搬移至該輪替實體區塊中,其中在該主機系統每次執行該資料寫入指令時該記憶體管理單元僅搬移屬於所選擇之資料所屬的邏輯區塊的有效舊資料與在該第一緩衝實體區塊中所選擇的資料的部分資料。
- 如申請專利範圍第18項所述之快閃記憶體控制電路,其中當該第一緩衝實體區塊內已無未被搬移的資料時,則該記憶體管理單元抹除該第一緩衝實體區塊中所暫存的所有資料。
- 如申請專利範圍第17項所述之快閃記憶體控制電路,其中當該資料的大小不小於該預定資料量時,則該記憶體管理單元將該資料寫入至該第一邏輯區塊所對映的實體區塊中。
- 如申請專利範圍第17項所述之快閃記憶體控制 電路,其中當該資料的大小小於該預定資料量並且該第一緩衝實體區塊未被寫滿時,則該記憶體管理單元將該資料寫入至該第一緩衝實體區塊中。
- 如申請專利範圍第17項所述之快閃記憶體控制電路,其中該記憶體管理單元將該些實體區塊的部分實體區塊至少分組為一資料區與一備用區。
- 如申請專利範圍第23項所述之資料快閃記憶體控制電路,其中該些緩衝實體區塊是選自於該備用區的實體區塊。
- 如申請專利範圍第23項所述之資料快閃記憶體控制電路,其中該第一備用緩衝實體區塊是選自於該備用區的實體區塊。
- 如申請專利範圍第23項所述之快閃記憶體控制電路,其中該記憶體管理單元更將該些實體區塊的部分實體區塊分組為一特殊區,其中該些緩衝實體區塊是選自於該特殊區的實體區塊。
- 如申請專利範圍第26項所述之快閃記憶體控制電路,其中該第一備用緩衝實體區塊是選自於該備用區的實體區塊。
- 如申請專利範圍第26項所述之快閃記憶體控制電路,其中該第一備用緩衝實體區塊是選自於該特殊區的實體區塊。
- 如申請專利範圍第17項所述之快閃記憶體控制電路,其中該記憶體管理單元根據每一緩衝實體區塊的頁面 數來將該些邏輯區塊分組為該些邏輯區塊群組,其中每一邏輯區塊群組中的該些邏輯區塊的數目為小於或等於每一緩衝實體區塊的頁面數的二分之一。
- 如申請專利範圍第17項所述之快閃記憶體控制電路,其中該記憶體管理單元更用以判斷是否存有僅完成搬移部分資料的邏輯區塊,其中當無存有僅完成搬移部分資料的邏輯區塊時,則該記憶體管理單元將暫存於該些緩衝實體區塊的其中一個緩衝實體區塊中部分的資料搬移至其中一個該些實體區塊中,其中該其中一個緩衝實體區塊所對應的備用緩衝實體區塊所暫存的資料量大於其他緩衝實體區塊所對應的備用緩衝實體區塊所暫存的資料量。
- 如申請專利範圍第17項所述之快閃記憶體控制電路,其中該記憶體管理單元更用以判斷是否存有僅完成搬移部分資料的邏輯區塊,其中當存有僅完成搬移部分資料的邏輯區塊時,則該記憶體管理單元繼續搬移該邏輯區塊的其他資料。
- 如申請專利範圍第17項所述之快閃記憶體控制電路,其中該預定資料量為三個或五個扇區。
- 一種快閃記憶體儲存系統,用於儲存來自於一主機系統的一資料,該快閃記憶體儲存系統包括:一連接器,用以連接該主機系統,並從該主機系統接收一資料寫入指令與該資料;一快閃記憶體晶片,具有多個實體區塊;以及 一快閃記憶體控制器,耦接該連接器與該快閃記憶體晶片,用以配置多個邏輯區塊,將該些邏輯區塊分組為多個邏輯區塊群組,並且選擇該些實體區塊的部分實體區塊作為多個緩衝實體區塊,其中每一該些邏輯區塊對映至少一個該些實體區塊,該主機系統儲存該資料於該些邏輯區塊之中的一第一邏輯區塊,該些邏輯區塊之中的至少兩個邏輯區塊被分組至該些邏輯區塊群組的其中之一,該第一邏輯區塊屬於該些邏輯區塊群組之中的一第一邏輯區塊群組且該些緩衝實體區塊之中的一第一緩衝實體區塊被指派給該第一邏輯區塊群組,其中該快閃記憶體控制器更用以判斷該資料的大小是否小於一預定資料量並且判斷該第一緩衝實體區塊是否已被寫滿,其中當該資料的大小小於該預定資料量並且該第一緩衝實體區塊已被寫滿時,則該快閃記憶體控制器選擇該些實體區塊之中的另一實體區塊作為該第一邏輯區塊群組的一第一備用緩衝實體區塊,並且將該資料寫入至該第一備用緩衝實體區塊中。
- 如申請專利範圍第33項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器更用以將暫存於該第一緩衝實體區塊中屬於其中一個邏輯區塊的資料搬移至其中一個該些實體區塊中。
- 如申請專利範圍第34項所述之快閃記憶體儲存系統, 其中該快閃記憶體控制器從暫存於該第一緩衝實體區塊中的資料之中選擇其中一筆資料,並且判斷所選擇之資料所屬的邏輯區塊,其中該快閃記憶體控制器選擇其中一個該些實體區塊作為所選擇之資料所屬的邏輯區塊的一輪替實體區塊,以及其中該快閃記憶體控制器將屬於所選擇之資料所屬的邏輯區塊的有效舊資料以及在該第一緩衝實體區塊中所選擇的資料搬移至該輪替實體區塊中,其中在該主機系統每次執行該資料寫入指令時該快閃記憶體控制器僅搬移屬於所選擇之資料所屬的邏輯區塊的有效舊資料與在該第一緩衝實體區塊中所選擇的資料的部分資料。
- 如申請專利範圍第34項所述之快閃記憶體儲存系統,其中當該第一緩衝實體區塊內已無未被搬移的資料時,則該快閃記憶體控制器抹除該第一緩衝實體區塊中所暫存的所有資料。
- 如申請專利範圍第33項所述之快閃記憶體儲存系統,其中當該資料的大小不小於該預定資料量時,則該快閃記憶體控制器將該資料寫入至該第一邏輯區塊所對映的實體區塊中。
- 如申請專利範圍第33項所述之快閃記憶體儲存系統,其中當該資料的大小小於該預定資料量並且該第一緩衝實體區塊未被寫滿時,則該快閃記憶體控制器將該資料寫入至該第一緩衝實體區塊中。
- 如申請專利範圍第33項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器將該些實體區塊的部分實體區塊至少分組為一資料區與一備用區。
- 如申請專利範圍第39項所述之快閃記憶體儲存系統,其中該些緩衝實體區塊是選自於該備用區的實體區塊。
- 如申請專利範圍第39項所述之快閃記憶體儲存系統,其中該第一備用緩衝實體區塊是選自於該備用區的實體區塊。
- 如申請專利範圍第39項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器更將該些實體區塊的部分實體區塊分組為一特殊區,其中該些緩衝實體區塊是選自於該特殊區的實體區塊。
- 如申請專利範圍第42項所述之快閃記憶體儲存系統,其中該第一備用緩衝實體區塊是選自於該備用區的實體區塊。
- 如申請專利範圍第42項所述之快閃記憶體儲存系統,其中該第一備用緩衝實體區塊是選自於該特殊區的實體區塊。
- 如申請專利範圍第33項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器根據每一緩衝實體區塊的頁面數來將該些邏輯區塊分組為該些邏輯區塊群組,其中每一邏輯區塊群組中的該些邏輯區塊的數目為小於或等於每一緩衝實體區塊的頁面數的二分之一。
- 如申請專利範圍第33項所述之快閃記憶體儲存系 統,其中該快閃記憶體控制器更用以判斷是否存有僅完成搬移部分資料的邏輯區塊,其中當無存有僅完成搬移部分資料的邏輯區塊時,則該快閃記憶體控制器將暫存於該些緩衝實體區塊的其中一個緩衝實體區塊中部分的資料搬移至其中一個該些實體區塊中,其中該其中一個緩衝實體區塊所對應的備用緩衝實體區塊所暫存的資料量大於其他緩衝實體區塊所對應的備用緩衝實體區塊所暫存的資料量。
- 如申請專利範圍第33項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器更用以判斷是否存有僅完成搬移部分資料的邏輯區塊,其中當存有僅完成搬移部分資料的邏輯區塊時,則該快閃記憶體控制器繼續搬移該邏輯區塊的其他資料。
- 如申請專利範圍第33項所述之快閃記憶體儲存系統,其中該預定資料量為三個或五個扇區。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098122621A TWI386802B (zh) | 2009-07-03 | 2009-07-03 | 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統 |
US12/554,347 US8645613B2 (en) | 2009-07-03 | 2009-09-04 | Data writing method for flash memory and control circuit and storage system using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098122621A TWI386802B (zh) | 2009-07-03 | 2009-07-03 | 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201102815A TW201102815A (en) | 2011-01-16 |
TWI386802B true TWI386802B (zh) | 2013-02-21 |
Family
ID=43413234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098122621A TWI386802B (zh) | 2009-07-03 | 2009-07-03 | 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8645613B2 (zh) |
TW (1) | TWI386802B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI567554B (zh) * | 2014-11-06 | 2017-01-21 | 慧榮科技股份有限公司 | 緩存及讀取即將寫入儲存單元之資料的方法以及使用該方法的裝置 |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI417889B (zh) * | 2009-12-30 | 2013-12-01 | Silicon Motion Inc | 快閃記憶體之寫入逾時控制方法及其記憶裝置 |
TWI435216B (zh) * | 2010-09-27 | 2014-04-21 | Silicon Motion Inc | 用來進行超區塊管理之方法以及記憶裝置及控制器 |
US8924627B2 (en) | 2011-03-28 | 2014-12-30 | Western Digital Technologies, Inc. | Flash memory device comprising host interface for processing a multi-command descriptor block in order to exploit concurrency |
TWI443512B (zh) * | 2011-07-13 | 2014-07-01 | Phison Electronics Corp | 區塊管理方法、記憶體控制器與記憶體儲存裝置 |
CN103365790B (zh) * | 2012-03-29 | 2016-03-02 | 群联电子股份有限公司 | 存储器控制器、存储装置与数据写入方法 |
TWI479492B (zh) * | 2012-11-20 | 2015-04-01 | Phison Electronics Corp | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 |
US9092353B1 (en) * | 2013-01-29 | 2015-07-28 | Pmc-Sierra Us, Inc. | Apparatus and method based on LDPC codes for adjusting a correctable raw bit error rate limit in a memory system |
US10230396B1 (en) | 2013-03-05 | 2019-03-12 | Microsemi Solutions (Us), Inc. | Method and apparatus for layer-specific LDPC decoding |
US9813080B1 (en) | 2013-03-05 | 2017-11-07 | Microsemi Solutions (U.S.), Inc. | Layer specific LDPC decoder |
US9590656B2 (en) | 2013-03-15 | 2017-03-07 | Microsemi Storage Solutions (Us), Inc. | System and method for higher quality log likelihood ratios in LDPC decoding |
US9450610B1 (en) | 2013-03-15 | 2016-09-20 | Microsemi Storage Solutions (Us), Inc. | High quality log likelihood ratios determined using two-index look-up table |
US9454414B2 (en) | 2013-03-15 | 2016-09-27 | Microsemi Storage Solutions (Us), Inc. | System and method for accumulating soft information in LDPC decoding |
TWI503841B (zh) * | 2013-04-26 | 2015-10-11 | Phison Electronics Corp | 寫入方法、記憶體控制器與記憶體儲存裝置 |
CN104142895B (zh) * | 2013-05-08 | 2017-05-17 | 群联电子股份有限公司 | 写入方法、存储器控制器与存储器储存装置 |
CN104679437B (zh) * | 2013-11-27 | 2017-12-08 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元与存储器储存装置 |
US10332613B1 (en) | 2015-05-18 | 2019-06-25 | Microsemi Solutions (Us), Inc. | Nonvolatile memory system with retention monitor |
US9799405B1 (en) | 2015-07-29 | 2017-10-24 | Ip Gem Group, Llc | Nonvolatile memory system with read circuit for performing reads using threshold voltage shift read instruction |
US9886214B2 (en) | 2015-12-11 | 2018-02-06 | Ip Gem Group, Llc | Nonvolatile memory system with erase suspend circuit and method for erase suspend management |
US9892794B2 (en) | 2016-01-04 | 2018-02-13 | Ip Gem Group, Llc | Method and apparatus with program suspend using test mode |
US9899092B2 (en) | 2016-01-27 | 2018-02-20 | Ip Gem Group, Llc | Nonvolatile memory system with program step manager and method for program step management |
KR102710346B1 (ko) * | 2016-05-18 | 2024-09-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
US10291263B2 (en) | 2016-07-28 | 2019-05-14 | Ip Gem Group, Llc | Auto-learning log likelihood ratio |
US10283215B2 (en) | 2016-07-28 | 2019-05-07 | Ip Gem Group, Llc | Nonvolatile memory system with background reference positioning and local reference positioning |
US10236915B2 (en) | 2016-07-29 | 2019-03-19 | Microsemi Solutions (U.S.), Inc. | Variable T BCH encoding |
CN106293841A (zh) * | 2016-08-11 | 2017-01-04 | 青岛海信移动通信技术股份有限公司 | 一种烧录数据的方法和装置 |
KR20180041898A (ko) * | 2016-10-17 | 2018-04-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
TWI641988B (zh) | 2017-07-21 | 2018-11-21 | 慧榮科技股份有限公司 | 用來於一記憶裝置中進行編程管理之方法以及記憶裝置及其控制器 |
TWI720400B (zh) * | 2019-01-04 | 2021-03-01 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
KR102696159B1 (ko) * | 2019-12-12 | 2024-08-19 | 엘지전자 주식회사 | 펌웨어 제공 장치 및 그 제공 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144365A1 (en) * | 2003-12-30 | 2005-06-30 | Sergey Anatolievich Gorobets | Non-volatile memory and method with control data management |
US20070143561A1 (en) * | 2005-12-21 | 2007-06-21 | Gorobets Sergey A | Methods for adaptive file data handling in non-volatile memories with a directly mapped file storage system |
TW200923762A (en) * | 2007-11-29 | 2009-06-01 | Silicon Motion Inc | Memory card and method for data updating for a flash memory |
TW200926183A (en) * | 2007-12-07 | 2009-06-16 | Phison Electronics Corp | Flash memory data writing method and controller using the same |
-
2009
- 2009-07-03 TW TW098122621A patent/TWI386802B/zh active
- 2009-09-04 US US12/554,347 patent/US8645613B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144365A1 (en) * | 2003-12-30 | 2005-06-30 | Sergey Anatolievich Gorobets | Non-volatile memory and method with control data management |
US20070143561A1 (en) * | 2005-12-21 | 2007-06-21 | Gorobets Sergey A | Methods for adaptive file data handling in non-volatile memories with a directly mapped file storage system |
TW200923762A (en) * | 2007-11-29 | 2009-06-01 | Silicon Motion Inc | Memory card and method for data updating for a flash memory |
TW200926183A (en) * | 2007-12-07 | 2009-06-16 | Phison Electronics Corp | Flash memory data writing method and controller using the same |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI567554B (zh) * | 2014-11-06 | 2017-01-21 | 慧榮科技股份有限公司 | 緩存及讀取即將寫入儲存單元之資料的方法以及使用該方法的裝置 |
US9779022B2 (en) | 2014-11-06 | 2017-10-03 | Silicon Motion, Inc. | Methods for caching and reading data to be programmed into a storage unit and apparatuses using the same |
Also Published As
Publication number | Publication date |
---|---|
US8645613B2 (en) | 2014-02-04 |
US20110004723A1 (en) | 2011-01-06 |
TW201102815A (en) | 2011-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI386802B (zh) | 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統 | |
US8606987B2 (en) | Data writing method for flash memory and controller using the same | |
US8001317B2 (en) | Data writing method for non-volatile memory and controller using the same | |
US8250286B2 (en) | Block management method, and storage system and controller using the same | |
US8621139B2 (en) | Data writing method for writing data into block of multi-level cell NAND flash memory by skipping a portion of upper page addresses and storage system and controller using the same | |
US9098395B2 (en) | Logical block management method for a flash memory and control circuit storage system using the same | |
TWI405209B (zh) | 資料管理方法及使用此方法的快閃儲存系統與控制器 | |
TWI506430B (zh) | 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 | |
US8054686B2 (en) | Flash memory storage apparatus, flash memory controller, and switching method thereof | |
US8180953B2 (en) | Data accessing method for flash memory, and storage system and controller system thereof | |
US9009399B2 (en) | Flash memory storage system and controller and data writing method thereof | |
TWI385519B (zh) | 資料寫入方法及使用此方法的快閃儲存系統與其控制器 | |
US20100011154A1 (en) | Data accessing method for flash memory and storage system and controller using the same | |
US20100042774A1 (en) | Block management method for flash memory, and storage system and controller using the same | |
US20100057979A1 (en) | Data transmission method for flash memory and flash memory storage system and controller using the same | |
TWI381393B (zh) | 區塊管理與更換方法、快閃記憶體儲存系統及其控制器 | |
US8037236B2 (en) | Flash memory writing method and storage system and controller using the same | |
TWI417884B (zh) | 用於快閃記憶體的資料存取方法、儲存系統與控制器 | |
TWI451247B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
US8572350B2 (en) | Memory management, memory control system and writing method for managing rewritable semiconductor non-volatile memory of a memory storage system | |
TWI415128B (zh) | 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統 | |
US8417909B2 (en) | Block management and data writing method, and flash memory storage system and controller using the same | |
TWI410795B (zh) | 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統 | |
US8589620B2 (en) | Data writing method, memory controller, and memory storage apparatus |