TWI385667B - 用於快閃記憶體的資料管理方法、儲存系統與控制器 - Google Patents
用於快閃記憶體的資料管理方法、儲存系統與控制器 Download PDFInfo
- Publication number
- TWI385667B TWI385667B TW097123978A TW97123978A TWI385667B TW I385667 B TWI385667 B TW I385667B TW 097123978 A TW097123978 A TW 097123978A TW 97123978 A TW97123978 A TW 97123978A TW I385667 B TWI385667 B TW I385667B
- Authority
- TW
- Taiwan
- Prior art keywords
- physical
- block
- blocks
- data
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
Description
本發明是有關於一種資料管理方法,且特別是有關於一種存取快閃記憶體的資料管理方法及使用此方法的儲存系統與控制器。
數位相機、手機相機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於快閃記憶體(Flash Memory)具有資料非揮發性、省電、體積小與無機械結構等的特性,適合可攜式應用,最適合使用於這類可攜式由電池供電的產品上。記憶卡就是一種以反及(NAND)快閃記憶體作為儲存媒體的儲存裝置。由於記憶卡體積小容量大且攜帶方便,所以已廣泛用於個人重要資料的儲存。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。
一般來說,快閃記憶體會劃分為多個實體區塊並且此些實體區塊會分組為資料區(data area)與備用區(spare area),例如圖1A所示的資料區204與備用區206。歸類為資料區的實體區塊中會儲存由寫入指令所寫入的有效資料,而備用區中的實體區塊是用以在執行寫入指令時替換資料區中的實體區塊。為了能夠讓主機存取以輪替方式儲存資料的實體區塊,快閃記憶體儲存系統會提供邏輯區塊(例如圖1A中邏輯位址210中的多個邏輯區塊)給主機以進
行資料存取。具體來說,快閃記憶體儲存系統會維護一邏輯區塊與實體區塊對映表來記錄邏輯區塊與實體區塊的對映關係,其中一個邏輯區塊會對映資料區塊中的一個實體區塊。同時,當執行寫入指令而使資料區的實體區塊與備用區的實體區塊進行替換時,快閃記憶體儲存系統會更新邏輯區塊與實體區塊對映表以利後續正確地存取。
圖1A與1B是根據習知技術繪示快閃記憶體的實體區塊進行輪替的示意圖。
請參照圖1A,若要對已寫過資料的區塊位址再次寫入資料時,必須先執行抹除的動作。然而,快閃記憶體的寫入單位(即頁面)是小於抹除單位(即區塊),因此若要執行實體區塊的抹除動作時,必須先將欲抹除之實體區塊中的有效頁面位址的資料複製至其它實體區塊後才可進行。例如,當主機欲寫入資料至所配置多個邏輯區塊210之中的邏輯區塊L時,快閃記憶體儲存系統會透過邏輯區塊與實體區塊對映表得知邏輯區塊L目前是對映資料區204中的實體區塊M。因此,快閃記憶體儲存系統將對實體區塊M中的資料進行更新,期間,快閃記憶體儲存系統會從備用區206中提取實體區塊C來取代資料區204的實體區塊M。然而當將新資料入至實體區塊C的同時,不會立刻將實體區塊M中的所有有效資料搬移至實體區塊C而抹除實體區塊M。具體來說,會將實體區塊M中欲寫入頁面位址之前的有效資料(即頁P0與P1)複製至實體區塊C(如圖1B的(a)),並且將新資料(即實體區塊C的頁P2與
P3)寫入至C區塊(如圖1B的(b))。此時,將含有部分的有效舊資料與所寫入新資料的實體區塊C暫時地關聯為替換實體區塊208。此是因為,實體區塊M中的有效資料有可能在下個操作(例如,寫入指令)中變成無效,因此立刻將實體區塊M中的所有有效資料搬移至實體區塊C可能會造成無謂的搬移。在此案例中,實體區塊M與實體區塊C的內容整合起來才是所對映邏輯區塊L的完整內容。此等母子區塊(即,實體區塊M與實體區塊C)的暫態關係可依據控制器中緩衝記憶體的大小而定,例如一般會使用五組來實作。
之後,當需要將實體區塊M與實體區塊C的內容真正合併時,才將實體區塊M與實體區塊C整併為一區塊,由此提升區塊的使用效率。例如,如圖1B的(c)所示,當進行整併時,實體區塊M中剩餘的有效資料(即頁P4~PN)會複製至實體區塊C,然後將實體區塊M抹除並關聯為備用區206,同時,將實體區塊C關聯為資料區204,並且在邏輯區塊與實體區塊對映表中將邏輯區塊L的對映更改為實體區塊C,由此完成合併。
由於快閃記憶體的程式化規格要求必須從每一實體區塊的第一頁開始寫入至最後一頁並且在每個位元僅能程式一次(即由僅能“1”變為“0”)的條件下,一旦記憶體實體區塊的頁面位址寫入資料後,若欲更新已寫入的資料就必須如圖1A所示從備用區206中提取一實體區塊重新進行圖1B所示的步驟。因此,當實體區塊在未進行圖1B的(c)
合併動作之前(即處於圖1B的(b)所示的暫態),而發生必須更新剛搬移的資料(例如圖1B的P0~P1)時,則所搬移的舊資料就必須再搬移一次,此稱為混亂(Random)寫入模式時。例如,一般在儲存裝置中會使用檔案配置表(File Allocation Table,FAT)來管理儲存媒體,其中FAT資料的存取是非常頻繁。因此,當存取FAT表時可能會因為不斷更新剛搬移的資料而進入混亂寫入模式。在進入上述混亂寫入模式時,控制器會將欲寫入的資料依序地寫入至實體區塊C的頁面中而不進行如圖1B的(a)所示的有效資料搬移,並且於混亂寫入模式結束時才進行有效資料的整合,以避免在混亂寫入模式下不斷重複執行圖1A與圖1B的動作。
由於如上所述快閃記憶體的一個實體區塊是對映一個邏輯區塊,因此當對邏輯區塊進行混亂寫入模式,僅會在一個實體區塊中記錄欲寫入的資料。然而,在混亂寫入模式中頻繁更新的資料是屬於小資料量,且在快閃記憶體製程上的進步而使得程式化單位與抹除單位的設計容量會越來越大的同時,會使得用於此混亂寫入模式的實體區塊利用率偏低。
有鑑於此,本發明提供一種區塊存取入方法,其能夠改善實體區塊的利用率並且提升區塊存取的速度。
此外,本發明提供一種控制器,其使用上述資料管理
方法來存取快閃記憶體,以改善實體區塊的利用率並且提升區塊存取的速度。
再者,本發明提供一種儲存系統,其使用上述資料管理方法來存取快閃記憶體,以改善實體區塊的利用率並且提升區塊存取的速度。
本發明提出一種資料管理方法,其適用於存取快閃記憶體儲存系統的快閃記憶體,其中快閃記憶體包括多個實體區塊且實體區塊至少分組為資料區與備用區,此資料管理方法包括配置多個邏輯區塊以供主機存取。此方法也包括在每一實體區塊中劃分多個實體部,並且將上述邏輯區塊分別地對映所劃分的實體部。此方法更包括依據主機欲存取的邏輯區塊來存取所對映的實體部。
在本發明之一實施例中,上述之資料管理方法更包括在邏輯區塊與實體區塊對映表中記錄每一邏輯區塊所對映的實體區塊與所對映的實體部。
在本發明之一實施例中,上述之在每一實體區塊中上述邏輯區塊所對映的實體部為連續頁面位址或不連續頁面位址。
在本發明之一實施例中,上述之分別地在實體區塊中劃分多個實體部的步驟包括將每一實體區塊劃分為一上實體部與一下實體部。
在本發明之一實施例中,上述之資料管理方法更包括當主機寫入資料至邏輯區塊時,從備用區中選擇多個實體區塊作為替換實體區塊並且使用替換實體區塊的實體部來
替換在資料區中對映欲寫入資料之邏輯區塊的實體部,其中此些替換實體區塊的上實體部會先被使用來寫入資料,並且在所有替換實體區塊的上實體部皆被使用後才使用替換實體區塊的下實體部來寫入資料。
在本發明之一實施例中,上述之資料管理方法更包括當所有替換實體區塊的上實體部與下實體部皆已被使用時,將資料區中至少一實體區塊的有效資料搬移至從備用區中新提取的實體區塊中,其中在此資料區的實體區塊中僅上實體部或下實體部儲存有效資料。
在本發明之一實施例中,上述之資料管理方法更包括當主機以混亂寫入模式寫入資料至邏輯區塊時,從備用區中選擇多個實體區塊作為混亂替換實體區塊並且在每一混亂替換實體區塊中記錄對兩個邏輯區塊所寫入的資料。
本發明提出一種控制器,其適用於具有快閃記憶體的儲存裝置,其中快閃記憶體包括多個實體區塊且此些實體區塊至少分組為資料區與備用區,此控制器包括微處理器單元、快閃記憶體介面、緩衝記憶體與記憶體管理模組。快閃記憶體介面耦接至微處理器單元且用以存取快閃記憶體。緩衝記憶體耦接至微處理器單元且用以暫時地儲存資料。記憶體管理模組耦接至微處理器單元且具有可由微處理器單元執行的多個機器指令以對快閃記憶體進行多個資料管理步驟,此些資料管理步驟包括配置多個邏輯區塊以供主機存取。此些資料管理步驟也包括在每一實體區塊中劃分多個實體部,並且將上述邏輯區塊分別地對映所劃分
的實體部。此些資料管理步驟更包括依據主機欲存取的邏輯區塊來存取所對映的實體部。
在本發明之一實施例中,上述之資料管理步驟更包括在邏輯區塊與實體區塊對映表中記錄每一邏輯區塊所對映的實體區塊與所對映的實體部,其中邏輯區塊與實體區塊對映表是儲存在緩衝記憶體中。
在本發明之一實施例中,上述之在每一實體區塊中上述邏輯區塊所對映的實體部為連續頁面位址或不連續頁面位址。
在本發明之一實施例中,上述之分別地在實體區塊中劃分多個實體部的步驟包括將每一實體區塊劃分為一上實體部與一下實體部。
在本發明之一實施例中,上述之資料管理步驟更包括當主機寫入資料至邏輯區塊時,從備用區中選擇多個實體區塊作為替換實體區塊並且使用替換實體區塊的實體部來替換在資料區中對映欲寫入資料之邏輯區塊的實體部,其中此些替換實體區塊的上實體部會先被使用來寫入資料,並且在所有替換實體區塊的上實體部皆被使用後才使用替換實體區塊的下實體部來寫入資料。
在本發明之一實施例中,上述之資料管理步驟更包括當所有替換實體區塊的上實體部與下實體部皆已被使用時,將資料區中至少一實體區塊的有效資料搬移至從備用區中新提取的實體區塊中,其中在此資料區的實體區塊中僅上實體部或下實體部儲存有效資料。
在本發明之一實施例中,上述之資料管理步驟更包括當主機以混亂寫入模式寫入資料至邏輯區塊時,從備用區中選擇多個實體區塊作為混亂替換實體區塊並且在每一混亂替換實體區塊中記錄對兩個邏輯區塊所寫入的資料。
在本發明之一實施例中,上述之儲存裝置為USB隨身碟、快閃記憶卡或固態硬碟。
本發明提出一種儲存系統,其包括快閃記憶體、傳輸連接介面與控制器。快閃記憶體用以儲存資料,其中快閃記憶體包括多個實體區塊且此些實體區塊至少分組為資料區與備用區。傳輸連接介面用以連接主機。控制器耦接至快閃記憶體與傳輸連接介面,此控制器會執行記憶體管理模組的多個機器指令以執行多個資料管理步驟,此些資料管理步驟包括配置多個邏輯區塊以供主機存取。此些資料管理步驟也包括在每一實體區塊中劃分多個實體部,並且將上述邏輯區塊分別地對映所劃分的實體部。此些資料管理步驟更包括依據主機欲存取的邏輯區塊來存取所對映的實體部。
在本發明之一實施例中,上述之資料管理步驟更包括在邏輯區塊與實體區塊對映表中記錄每一邏輯區塊所對映的實體區塊與所對映的實體部,其中邏輯區塊與實體區塊對映表是儲存在上述控制器的緩衝記憶體中。
在本發明之一實施例中,上述之在每一實體區塊中上述邏輯區塊所對映的實體部為連續頁面位址或不連續頁面位址。
在本發明之一實施例中,上述之分別地在實體區塊中劃分多個實體部的步驟包括將每一實體區塊劃分為一上實體部與一下實體部。
在本發明之一實施例中,上述之資料管理步驟更包括當主機寫入資料至邏輯區塊時,從備用區中選擇多個實體區塊作為替換實體區塊並且使用替換實體區塊的實體部來替換在資料區中對映欲寫入資料之邏輯區塊的實體部,其中此些替換實體區塊的上實體部會先被使用來寫入資料,並且在所有替換實體區塊的上實體部皆被使用後才使用替換實體區塊的下實體部來寫入資料。
在本發明之一實施例中,上述之資料管理步驟更包括當所有替換實體區塊的上實體部與下實體部皆已被使用時,將資料區中至少一實體區塊的有效資料搬移至從備用區中新提取的實體區塊中,其中在此資料區的實體區塊中僅上實體部或下實體部儲存有效資料。
在本發明之一實施例中,上述之資料管理步驟更包括當主機以混亂寫入模式寫入資料至邏輯區塊時,從備用區中選擇多個實體區塊作為混亂替換實體區塊並且在每一混亂替換實體區塊中記錄對兩個邏輯區塊所寫入的資料。
在本發明之一實施例中,上述之記憶體管理模組是以一硬體型式配置在控制器中。
在本發明之一實施例中,上述之記憶體管理模組是以一韌體型式儲存在該快閃記憶體中。
在本發明之一實施例中,上述之記憶體管理模組是以
一韌體型式儲存在控制器的程式記憶體中。
本發明因採用多邏輯區塊對映一個實體區塊的結構來對快閃記憶體進行區塊存取,因此可減少整併實體區塊的次數,由此提升區塊存取的速度。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉較佳實施例,並配合所附圖式,作詳細說明如下。
圖2是根據本發明實施例繪示快閃記憶體儲存系統的概要方塊圖。請參照圖2,快閃記憶體儲存系統100包括控制器110、傳輸連接介面120以及快閃記憶體130。
通常快閃記憶體儲存系統100會與主機200一起使用,以使主機200可將資料寫入至快閃記憶體儲存系統100或從快閃記憶體儲存系統100中讀取資料。在本實施例中,快閃記憶體儲存系統120為固態硬碟(Solid State Drive,SSD)。但必須瞭解的是,在本發明另一實施例中快閃記憶體儲存系統120亦可以是記憶卡或隨身碟。
控制器110會執行以硬體型式或韌體型式實作的多個指令以配合傳輸連接介面120與快閃記憶體130以進行資料的儲存、讀取與抹除等運作。控制器110包括微處理器單元110a、記憶體管理模組110b、快閃記憶體介面110c與緩衝記憶體110d。
微處理器單元110a用以與記憶體管理模組110b、快閃記憶體介面110c與緩衝記憶體110d等協同合作以進行
快閃記憶體儲存系統100的各種操作。
記憶體管理模組110b是耦接至微處理器單元110a。記憶體管理模組110b具有可由微處理器單元110a執行的多個機器指令以管理快閃記憶體130,例如執行平均磨損(wear leveling)功能、壞區塊管理、維護對映表(mapping table)等的機器指令。特別是,在本發明實施例中,記憶體管理模組110b包含可完成根據本實施例的資料管理步驟(如圖3所示)的機器指令。具體來說,在本實施例中,記憶體管理模組110b是以一韌體型式來實作在控制器110中,例如以程式記憶體(例如,唯讀記憶體(Read Only Memory,ROM))並將相關機械指令存於其中來實作記憶體管理模組110b,其中當快閃記憶體儲存系統100運作時,記憶體管理模組110b會被載入至緩衝記憶體110d中以由微處理器單元110a來執行。
在本發明另一實施例中,亦可將記憶體管理模組110b的機械指令以韌體型式儲存於快閃記憶體130的特定區域(例如,下述的系統區)中,同樣的當快閃記憶體儲存系統100運作時,記憶體管理模組110b會被載入至緩衝記憶體110d中以由微處理器單元110a來執行。此外,在本發明另一實施例中記憶體管理模組110b亦可以一硬體型式實作在控制器110中。
快閃記憶體介面110c是耦接至微處理器單元110a並且用以存取快閃記憶體130。也就是,主機200欲寫入至快閃記憶體130的資料會經由快閃記憶體介面110c轉換為
快閃記憶體130所能接受的格式。
緩衝記憶體110d是耦接至微處理器單元110a並且用以暫時地儲存系統資料(例如邏輯區塊與實體區塊對映表)或者主機200所讀取或寫入的資料。在本實施例中,緩衝記憶體110d為靜態隨機存取記憶體(static random access memory,SRAM)。然而,必須瞭解的是,本發明不限於此,動態隨機存取記憶體(Dynamic Random Access memory,DRAM)、磁阻式記憶體(Magnetoresistive Random Access Memory,MRAM)、相變化記憶體(Phase Change Random Access Memory,PRAM)或其他適合的記憶體亦可應用於本發明。
此外,雖未繪示於本實施例,但控制器110可更包括錯誤校正模組與電源管理模組等用於控制快閃記憶體的一般功能模組。
傳輸連接介面120用以透過匯流排300連接主機200。在本實施例中,傳輸連接介面120為PCI Express介面。然而,必須瞭解的是本發明不限於此,傳輸連接介面120亦可以是USB介面、IEEE 1394介面、SATA介面、MS介面、MMC介面、SD介面、CF介面、IDE介面或其他適合的資料傳輸介面。
快閃記憶體130是耦接至控制器110並且用以儲存資料。快閃記憶體130通常實質上分割為多個實體區塊(physical block)130-0至130-N。一般而言,在快閃記憶體中實體區塊為抹除之最小單位。亦即,每一實體區塊含
有最小數目之一併被抹除之記憶胞。每一實體區塊通常會分割為數個頁面位址(page)。頁面位址通常為程式化(program)的最小單元。但要特別說明的是於有些不同的快閃記憶體設計,最小的程式化單位也可為一個扇區(sector)。也就是說,一頁面位址中有多個扇區並以一扇區為程式化的最小單元。換言之,頁面位址為寫入資料或讀取資料的最小單元。每一頁面位址通常包括使用者資料區D與冗餘區R。使用者資料區用以儲存使用者的資料,而冗餘區用以儲存系統的資料(例如,錯誤校正碼(error correcting code,ECC))。
為對應於磁碟驅動器的扇區(sector)大小,一般而言,使用者資料區D通常為512位元組,而冗餘區R通常為16位元組。也就是,一頁為一個扇區。然而,亦可以多個扇區形成一頁,例如一頁包括4個扇區。
一般而言,實體區塊可由任意數目的頁面位址所組成,例如64個頁面位址、128個頁面位址、256個頁面位址等。實體區塊130-0至130-N通常也可被分組為數個區域(zone),以區域來管理記憶體某種程度上是彼此獨立地操作以增加操作執行的平行程度且簡化管理的複雜度。
此外,在本實施例中,控制器110會執行記憶體管理模組110b的機械指令以如圖1A與1B的方式來操作快閃記憶體130。也就是說,實體區塊130-0至130-N會被分組為資料區204與備用區206且以前述使用替換實體區塊208的輪替方式進行區塊的存取,此外記憶體管理模組
110b會提供多個邏輯區塊140-0至140-M(如圖4所示)來對映關聯為資料區204的實體區塊以供主機200來存取。
值得一提的是,在本實施例中微處理器單元110a會執行記憶體管理模組110b的機械指令以將每一實體區塊130-0至130-N分割為多個實體部,並且每一邏輯區塊140-0至140-M是對映每一實體區塊130-0至130-N的實體部,因此當主機200存取邏輯區塊140-0至140-M時,記憶體管理模組110b會依據所對映的實體部來進行存取。以下將配合圖式詳細說明本實施例的資料管理步驟。
必須瞭解的是,在此描述快閃記憶體的運作時以“提取”、“搬移”、“交換”、”分割”等詞來操作資料區204與備用區206中的實體區塊是邏輯上的概念。也就是說,快閃記憶體區塊的實際位置並未更動,而是邏輯上對快閃記憶體的實體區塊進行操作。
圖3是根據本實施例繪示資料管理步驟的流程圖,且圖4是根據本實施例繪示邏輯區塊140-0至140-M與實體區塊130-0至130-N之對映關係的示意圖。
請參照圖3與圖4,控制器110的微處理器單元110a會執行記憶體管理模組110b的機械指令以完成下述資料管理步驟。在步驟S301中,多個邏輯區塊會被配置以供主機200來存取。如上所述,基於快閃記憶體的抹除與程式化特性,實體區塊會以輪替方式來儲存資料,因此在步驟S301中會配置邏輯區塊140-0至140-M(如圖4所示)以提供主機200存取的依據。
接著,在步驟S303中會分別地在實體區塊中劃分多個實體部,並且在步驟S305中會將所配置的邏輯區塊分別地對映所劃分的實體部。例如,如圖4所示,在本實施例中每一實體區塊130-0至130-N會被劃分為上實體部與下實體部,每一邏輯區塊140-0至140-M是對映其中一個實體區塊130-0至130-N的上實體部或下實體部。換言之,在本實施例中一個實體區塊會對映兩個邏輯區塊。在本實施例中,每一實體區塊130-0至130-N中的實體部為連續頁面位址。然而,在本發明另一實施例中亦可以不連續頁面位址來分割實體區塊,例如第0、2、4...頁面位址為上實體部而第1、3、5...頁面位址為下實體部。
之後,在步驟S307中會將上述多個邏輯區塊對映至一個實體區塊的對映關係記錄在緩衝記憶體110d中。例如,在本實施例中是以邏輯區塊與實體區塊對映表來儲存在緩衝記憶體110d中。
最後,在步驟S309中會依據主機200欲存取的邏輯區塊來檢視邏輯區塊與實體區塊對映表並且存取所對映的實體部。
值得一提的是,在進行如圖1A與1B所述的寫入運作期間,當完成對特定邏輯區塊所對映的實體部的合併動作(即合併屬於母子關係的實體部)後母區塊將成為無效區塊,因此會對母區塊進行抹除動作以重新關聯為備用區206以提供之後寫入資料時使用。由於在本實施例中一個實體區塊會對映多個邏輯區塊,因此在合併後無效實體部
所屬的實體區塊中仍存有其他邏輯區塊所對映的有效實體部。此時,無效實體部所屬的實體區塊無法立刻被抹除,因此在此本實施例的架構(即多個邏輯區塊對映一個實體區塊)下必須以特定的寫入步驟來避免無效實體部過於分散而造成實體區塊的實際使用率降低。
圖5A與5B是根據本發明實施例繪示替換實體區塊的運作範例示意圖。圖5A是繪示此範利目前資料儲存的狀態,其中邏輯區塊140-0是對映實體區塊130-0的上實體部,邏輯區塊140-1是對映實體區塊130-0的下實體部,邏輯區塊140-2是對映實體區塊130-1的上實體部,邏輯區塊140-3是對映實體區塊130-1的下實體部,邏輯區塊140-4是對映實體區塊130-2的上實體部,邏輯區塊140-5是對映實體區塊130-2的下實體部,邏輯區塊140-6是對映實體區塊130-3的上實體部,並且邏輯區塊140-7是對映實體區塊130-3的下實體部。另外,在本範例中控制器110會主機200中依序地接收到欲寫入資料至邏輯區塊140-0、140-2、140-4與140-6的寫入指令,並且在緩衝記憶體110d中可記錄2組母子區塊的暫態關係。
請參照圖5B,當控制器110接收到對邏輯區塊140-0的寫入指令時其會從備用區206中提取一實體區塊(例如,實體區塊130-N)作為第一替換實體區塊並且以類似圖1B的(a)與(b)所示的運作將原始對映邏輯區塊140-0的實體區塊130-0之上實體部的有效舊資料以及欲寫入的新資料寫入至第一替換實體區塊130-N的上實體部(如圖5的
(a))。此時,控制器110即完成寫入運作,並且會回應主機200已完成寫入而處於待命狀態。
接著,當控制器110接收到對邏輯區塊140-2的寫入指令時其會從備用區206中再提取一實體區塊(例如,實體區塊130-(N-1))作為第二替換實體區塊並且以類似圖1B的(a)與(b)所示的運作將原始對映邏輯區塊140-2的實體區塊130-1之上實體部的舊有效資料以及欲寫入的新資料寫入至第二替換實體區塊130-(N-1)的上實體部(如圖5的(b))。此時,控制器110即完成寫入運作,並且會回應主機200已完成寫入而處於待命狀態。
接著,當控制器110接收到對邏輯區塊140-4的寫入指令時,由於假設緩衝記憶體110d中僅可記錄2組母子區塊的暫態關係,因此控制器110會以類似圖1B的(c)所示的運作將原始對映邏輯區塊140-0的實體區塊130-0之上實體部的剩餘有效舊資料搬移至第一替換實體區塊的上實體部,並且將實體區塊130-0之上實體部標示為無效。此時,在邏輯區塊與實體區塊對映表中邏輯區塊140-0會被更新為對映實體區塊130-N的上實體部。值得一提的是,實體區塊130-0上仍有邏輯區塊140-1的資料,因此實體區塊130-0並不會被抹除,而會處於僅使用部分儲存空間的狀態。由於邏輯區塊140-0已完成資料的整併,因此第一替換實體區塊的下實體部就可用作為邏輯區塊140-4的替換實體區塊。也就是說,控制器110會以類似圖1B的(a)與(b)所示的運作將原始對映邏輯區塊140-4的實體區塊
130-2之上實體部的舊有效資料以及欲寫入的新資料寫入至第一替換實體區塊130-N的下實體部(如圖5的(c))。此時,控制器110即完成寫入運作,並且會回應主機200已完成寫入而處於待命狀態。
最後,當控制器110接收到對邏輯區塊140-6的寫入指令時,類似上述的運作控制器110會以類似圖1B的(c)所示的運作將原始對映邏輯區塊140-2的實體區塊130-1之上實體部的剩餘有效舊資料搬移至第二替換實體區塊的上實體部,並且將原始對映邏輯區塊140-2的實體區塊130-1之上實體部標示為無效。此時,邏輯區塊140-2會被更新為對映實體區塊130-(N-1)的上實體部。同樣的,實體區塊130-1上仍有邏輯區塊140-3的資料,因此實體區塊130-1並不會被抹除,而會處於僅使用部分儲存空間的狀態。然後,控制器110會以類似圖1B的(a)與(b)所示的運作將與原始對映邏輯區塊140-6的實體區塊130-3之上實體部的舊有效資料以及欲寫入的新資料寫入至第二替換實體區塊的下實體部(如圖5的(d))。此時,控制器110即完成寫入運作,並且會回應主機200已完成寫入而處於待命狀態。
綜合圖5的(a)~(d)所示,替換實體區塊的上實體部會先被使用來寫入該資料,並且在所有替換實體區塊的上實體部皆被使用後才使用替換實體區塊的下實體部寫入資料。
值得一提的是,在類似上述運作後,由於在資料區中
會產生僅部分資料為有效的實體區塊,因此在圖5的(d)所示的狀態下欲再寫入資料至其他邏輯區塊(即非邏輯區塊140-4與140-6)時,控制器110會將其中一個僅含有部分有效實體部的實體區塊進行整併。
例如,假設當主機200欲寫入資料至邏輯區塊140-7時,控制器110會先整併一個母子區塊。例如,控制器110會以類似圖1B的(c)所示的運作將原始對映邏輯區塊140-4的實體區塊130-2之上實體部的剩餘有效舊資料搬移至第一替換實體區塊的下實體部,並且將原始對映邏輯區塊140-4的實體區塊130-2之上實體部標示為無效。此時,控制器110例如會從備用區206中提取實體區塊130-(N-2)作為新的替換實體區塊並且將實體區塊130-0的有效部分(即下實體部)的資料搬移至新的替換實體區塊130-(N-2)的上實體部,並且將原始對映邏輯區塊140-1的實體區塊130-0之下實體部標示為無效。然後,於實體區塊130-(N-2)的下實體部中以如圖1B的(a)與(b)所示的運作繼續寫入邏輯區塊140-7的資料。此時,邏輯區塊140-1會被更新為對映實體區塊130-(N-2)的上實體部,且實體區塊130-0已無任何有效資料因此實體區塊130-0會被抹除並關聯為備用區206。
值得一提是,在本發明實施例中,在圖5的(c)所示的步驟中倘若控制器110是對邏輯區塊140-0與邏輯區塊140-4執行前述的混亂寫入模式時,則此時控制器110不會立刻整併邏輯區塊140-0,而會直接依序地在替換實體
區塊130-N中寫入欲寫入至邏輯區塊140-0與邏輯區塊140-4的資料。也就是說,在進入混亂模式的每一替換實體區塊(參考為混亂替換實體區塊)中可記錄對兩個邏輯區塊所寫入的資料。基此,一個混亂替換實體區塊可支援兩個進行混亂寫入模式的邏輯區塊,因此可以提升在混亂寫入模式時的實體區塊利用率,並且提升混亂寫入模式的速度。
綜上所述,本發明將實體區塊劃分為多個實體部,並且以所劃分的實體部來對映邏輯區塊。基此,以使用多邏輯區塊對映一個實體區塊的區塊存取下可減少整併實體區塊的次數,由此提升區塊存取的速度。特別是,快閃記憶體儲存系統進入混亂寫入模式時由於一個實體區塊可支援多個邏輯區塊的混亂寫入,因此大幅提昇混亂寫入模式的速度。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
S、M、L‧‧‧區塊
100‧‧‧快閃記憶體儲存系統
110‧‧‧控制器
110a‧‧‧微處理器單元
110b‧‧‧記憶體管理模組
110c‧‧‧快閃記憶體介面
110d‧‧‧緩衝記憶體
120‧‧‧傳輸連接介面
130‧‧‧快閃記憶體
130-0~130-N‧‧‧實體區塊
140-0~140-M‧‧‧邏輯區塊
200‧‧‧主機
204‧‧‧資料區
206‧‧‧備用區
208‧‧‧替換區塊
S301、S303、S305、S307、S309‧‧‧資料管理步驟
圖1A與1B是根據習知技術繪示快閃記憶體的實體區塊進行輪替的示意圖。
圖2是根據本發明實施例繪示快閃記憶體儲存系統的
概要方塊圖。
圖3是根據本實施例繪示資料管理步驟的流程圖。
圖4是根據本實施例繪示邏輯區塊與實體區塊之對映關係的示意圖。
圖5A與5B是根據本發明實施例繪示替換實體區塊的運作範例示意圖。
S301、S303、S305、S307、S309‧‧‧資料管理步驟
Claims (16)
- 一種資料管理方法,其適用於存取一快閃記憶體儲存系統的快閃記憶體,其中該快閃記憶體包括多個實體區塊且該些實體區塊至少分組為一資料區與一備用區,該資料管理方法包括:配置多個邏輯區塊以供一主機存取;分別地在該些實體區塊中劃分多個實體部,並且將該些邏輯區塊分別地對映該些實體部,其中每一該些實體區塊的該些實體部包括一上實體部與一下實體部;依據該主機欲存取的邏輯區塊來存取該些實體部,其中每一該些實體區塊至少對映至該些邏輯區塊其中的兩個邏輯區塊;當該主機寫入資料至該些邏輯區塊時,從該備用區中選擇多個實體區塊作為替換實體區塊並且使用該些替換實體區塊的實體部來替換在該資料區中對映該些邏輯區塊的實體部,其中該些替換實體區塊的上實體部會先被使用來寫入該資料,並且在該些替換實體區塊的上實體部被使用後才使用該些替換實體區塊的下實體部寫入該資料;以及當該些替換實體區塊的上實體部與下實體部皆已被使用時,將該資料區中至少一實體區塊的有效資料搬移至從該備用區中新提取的實體區塊中,其中在該至少一實體區塊中僅該上實體部或該下實體部儲存有效資料。
- 如申請專利範圍第1項所述之資料管理方法,更包括在一邏輯區塊與實體區塊對映表中記錄每一邏輯區塊所 對映的實體區塊與所對映的實體部。
- 如申請專利範圍第1項所述之資料管理方法,其中在每一實體區塊中該些邏輯區塊所對映的實體部為連續頁面位址或不連續頁面位址。
- 如申請專利範圍第1項所述之資料管理方法,更包括當該主機以一混亂寫入模式寫入資料至該些邏輯區塊時,從該備用區中選擇多個實體區塊作為混亂替換實體區塊並且在每一混亂替換實體區塊中記錄對欲寫入的至少兩個邏輯區塊所寫入的資料。
- 一種控制器,其適用於具有一快閃記憶體的一儲存裝置,其中該快閃記憶體包括多個實體區塊且該些實體區塊至少分組為一資料區與一備用區,該控制器包括:一微處理器單元;一快閃記憶體介面,耦接至該微處理器單元且用以存取該快閃記憶體;一緩衝記憶體,耦接至該微處理器單元且用以暫時地儲存資料;以及一記憶體管理模組,耦接至該微處理器單元且具有可由該微處理器單元執行的多個機器指令以對該快閃記憶體進行多個資料管理步驟,該些資料管理步驟包括:配置多個邏輯區塊以供一主機存取;分別地在該些實體區塊中劃分多個實體部,並且將該些邏輯區塊分別地對映該些實體部,其中每一該些實體區塊的該些實體部包括一上實體部與一下實體 部;依據該主機欲存取的邏輯區塊來存取該些實體部,其中每一該些實體區塊至少對映至該些邏輯區塊其中的兩個邏輯區塊;當該主機寫入資料至該些邏輯區塊時,從該備用區中選擇多個實體區塊作為替換實體區塊並且使用該些替換實體區塊的實體部來替換在該資料區中對映該些邏輯區塊的實體部,其中該些替換實體區塊的上實體部會先被使用來寫入該資料,並且在該些替換實體區塊的上實體部被使用後才使用該些替換實體區塊的下實體部寫入該資料;以及當該些替換實體區塊的上實體部與下實體部皆已被使用時,將該資料區中至少一實體區塊的有效資料搬移至從該備用區中新提取的實體區塊中,其中在該至少一實體區塊中僅該上實體部或該下實體部儲存有效資料。
- 如申請專利範圍第5項所述之控制器,其中該些資料管理步驟更包括在一邏輯區塊與實體區塊對映表中記錄每一邏輯區塊所對映的實體區塊與所對映的實體部,其中該邏輯區塊與實體區塊對映表是儲存在該緩衝記憶體中。
- 如申請專利範圍第5項所述之控制器,其中在每一實體區塊中該些邏輯區塊所對映的實體部為連續頁面位址或不連續頁面位址。
- 如申請專利範圍第5項所述之控制器,其中該些資 料管理步驟更包括當該主機以一混亂寫入模式寫入資料至該些邏輯區塊時,從該備用區中選擇多個實體區塊作為混亂替換實體區塊並且在每一混亂替換實體區塊中記錄對欲寫入的兩個邏輯區塊所寫入的資料。
- 如申請專利範圍第5項所述之控制器,其中該儲存裝置為一USB隨身碟、一快閃記憶卡或一固態硬碟。
- 一種儲存系統,包括:一快閃記憶體,用以儲存資料,其中該快閃記憶體包括多個實體區塊且該些實體區塊至少分組為一資料區與一備用區;一傳輸連接介面,用以連接一主機;以及一控制器,耦接至該快閃記憶體與該傳輸連接介面,該控制器會執行一記憶體管理模組的多個機器指令以執行多個資料管理步驟,該些資料管理步驟包括:配置多個邏輯區塊以供該主機存取;分別地在該些實體區塊中劃分多個實體部,並且將該些邏輯區塊分別地對映該些實體部,其中每一該些實體區塊的該些實體部包括一上實體部與一下實體部;依據該主機欲存取的邏輯區塊來存取該些實體部,其中每一該些實體區塊至少對映至該些邏輯區塊其中的兩個邏輯區塊;當該主機寫入資料至該些邏輯區塊時,從該備用區中選擇多個實體區塊作為替換實體區塊並且使用該 些替換實體區塊的實體部來替換在該資料區中對映該些邏輯區塊的實體部,其中該些替換實體區塊的上實體部會先被使用來寫入該資料,並且在該些替換實體區塊的上實體部被使用後才使用該些替換實體區塊的下實體部寫入該資料;以及當該些替換實體區塊的上實體部與下實體部皆已被使用時,將該資料區中至少一實體區塊的有效資料搬移至從該備用區中新提取的實體區塊中,其中在該至少一實體區塊中僅該上實體部或該下實體部儲存有效資料。
- 如申請專利範圍第10項所述之儲存系統,其中該些資料管理步驟更包括在一邏輯區塊與實體區塊對映表中記錄每一邏輯區塊所對映的實體區塊與所對映的實體部,其中該邏輯區塊與實體區塊對映表是儲存在該控制器的一緩衝記憶體中。
- 如申請專利範圍第10項所述之儲存系統,其中在每一實體區塊中該些邏輯區塊所對映的實體部為連續頁面位址或不連續頁面位址。
- 如申請專利範圍第10項所述之儲存系統,其中該些資料管理步驟更包括當該主機以一混亂寫入模式寫入資料至該些邏輯區塊時,從該備用區中選擇多個實體區塊作為混亂替換實體區塊並且在每一混亂替換實體區塊中記錄對欲寫入的兩個邏輯區塊所寫入的資料。
- 如申請專利範圍第10項所述之儲存系統,其中該 記憶體管理模組以一硬體型式配置在該控制器中。
- 如申請專利範圍第10項所述之儲存系統,其中該記憶體管理模組以一韌體型式儲存在該快閃記憶體中。
- 如申請專利範圍第10項所述之儲存系統,其中該記憶體管理模組以一韌體型式儲存在該控制器的一程式記憶體中。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW097123978A TWI385667B (zh) | 2008-06-26 | 2008-06-26 | 用於快閃記憶體的資料管理方法、儲存系統與控制器 |
US12/241,378 US8296502B2 (en) | 2008-06-26 | 2008-09-30 | Data management method for flash memory and storage system and controller using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW097123978A TWI385667B (zh) | 2008-06-26 | 2008-06-26 | 用於快閃記憶體的資料管理方法、儲存系統與控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201001422A TW201001422A (en) | 2010-01-01 |
TWI385667B true TWI385667B (zh) | 2013-02-11 |
Family
ID=41448929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097123978A TWI385667B (zh) | 2008-06-26 | 2008-06-26 | 用於快閃記憶體的資料管理方法、儲存系統與控制器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8296502B2 (zh) |
TW (1) | TWI385667B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101565974B1 (ko) * | 2009-03-02 | 2015-11-04 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것의 프로그램 방법, 그리고 그것을 포함하는 메모리 시스템 |
US8489803B2 (en) * | 2009-12-14 | 2013-07-16 | Smsc Holdings S.A.R.L. | Efficient use of flash memory in flash drives |
CN102314321B (zh) * | 2010-07-07 | 2015-11-25 | 深圳市朗科科技股份有限公司 | 存储系统、运用存储系统进行数据访问的方法和装置 |
TWI479505B (zh) * | 2010-12-16 | 2015-04-01 | Phison Electronics Corp | 資料管理方法、記憶體控制器與記憶體儲存裝置 |
TWI553654B (zh) * | 2010-12-16 | 2016-10-11 | 群聯電子股份有限公司 | 資料管理方法、記憶體控制器與記憶體儲存裝置 |
TWI562153B (en) * | 2011-06-15 | 2016-12-11 | Phison Electronics Corp | Memory erasing method, memory controller and memory storage apparatus |
TWI486765B (zh) * | 2012-06-11 | 2015-06-01 | Phison Electronics Corp | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 |
TWI454913B (zh) * | 2012-06-26 | 2014-10-01 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
CN102841851B (zh) * | 2012-07-19 | 2015-09-09 | 深圳市江波龙电子有限公司 | 闪存管理方法和闪存设备 |
TWI514141B (zh) * | 2013-08-08 | 2015-12-21 | Phison Electronics Corp | 記憶體位址管理方法、記憶體控制器與記憶體儲存裝置 |
CN104375945B (zh) * | 2013-08-15 | 2018-03-13 | 群联电子股份有限公司 | 存储器地址管理方法、存储器控制器与存储器储存装置 |
KR102491624B1 (ko) * | 2015-07-27 | 2023-01-25 | 삼성전자주식회사 | 데이터 저장 장치의 작동 방법과 상기 데이터 저장 장치를 포함하는 시스템의 작동 방법 |
KR20170058482A (ko) * | 2015-11-18 | 2017-05-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
TWI813362B (zh) * | 2022-06-30 | 2023-08-21 | 群聯電子股份有限公司 | 部分抹除管理方法、記憶體儲存裝置及記憶體控制電路單元 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6000006A (en) * | 1997-08-25 | 1999-12-07 | Bit Microsystems, Inc. | Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage |
US20030101327A1 (en) * | 2001-11-16 | 2003-05-29 | Samsung Electronics Co., Ltd. | Flash memory management method |
US20040068522A1 (en) * | 2002-10-03 | 2004-04-08 | Rodger Daniels | Virtual storage systems and virtual storage system operational methods |
US20050160223A1 (en) * | 2004-01-15 | 2005-07-21 | Super Talent Electronics Inc. | Dual-Mode Flash Storage Exchanger that Transfers Flash-Card Data to a Removable USB Flash Key-Drive With or Without a PC Host |
US20050162947A1 (en) * | 2004-01-27 | 2005-07-28 | Samsung Electronics Co., Ltd. | Data management apparatus and method of flash memory |
US20060161723A1 (en) * | 2005-01-14 | 2006-07-20 | Stmicroelectronics S.R.I. | Controlling operation of flash memories |
US20070050536A1 (en) * | 2005-09-01 | 2007-03-01 | Cypress Semiconductor Corporation | Flash drive fast wear leveling |
US20070097774A1 (en) * | 2003-09-12 | 2007-05-03 | Renesas Technology Corp. | Semiconductor memory device |
-
2008
- 2008-06-26 TW TW097123978A patent/TWI385667B/zh active
- 2008-09-30 US US12/241,378 patent/US8296502B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6000006A (en) * | 1997-08-25 | 1999-12-07 | Bit Microsystems, Inc. | Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage |
US20030101327A1 (en) * | 2001-11-16 | 2003-05-29 | Samsung Electronics Co., Ltd. | Flash memory management method |
US20040068522A1 (en) * | 2002-10-03 | 2004-04-08 | Rodger Daniels | Virtual storage systems and virtual storage system operational methods |
US20070097774A1 (en) * | 2003-09-12 | 2007-05-03 | Renesas Technology Corp. | Semiconductor memory device |
US20050160223A1 (en) * | 2004-01-15 | 2005-07-21 | Super Talent Electronics Inc. | Dual-Mode Flash Storage Exchanger that Transfers Flash-Card Data to a Removable USB Flash Key-Drive With or Without a PC Host |
US20050162947A1 (en) * | 2004-01-27 | 2005-07-28 | Samsung Electronics Co., Ltd. | Data management apparatus and method of flash memory |
US20060161723A1 (en) * | 2005-01-14 | 2006-07-20 | Stmicroelectronics S.R.I. | Controlling operation of flash memories |
US20070050536A1 (en) * | 2005-09-01 | 2007-03-01 | Cypress Semiconductor Corporation | Flash drive fast wear leveling |
Also Published As
Publication number | Publication date |
---|---|
TW201001422A (en) | 2010-01-01 |
US20090327585A1 (en) | 2009-12-31 |
US8296502B2 (en) | 2012-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI385667B (zh) | 用於快閃記憶體的資料管理方法、儲存系統與控制器 | |
TWI398770B (zh) | 用於快閃記憶體的資料存取方法、儲存系統與控制器 | |
TWI381274B (zh) | 用於快閃記憶體的區塊管理方法、儲存系統與控制器 | |
TWI385519B (zh) | 資料寫入方法及使用此方法的快閃儲存系統與其控制器 | |
TWI385669B (zh) | 用於快閃記憶體的平均磨損方法、儲存系統與控制器 | |
US8001317B2 (en) | Data writing method for non-volatile memory and controller using the same | |
US8180953B2 (en) | Data accessing method for flash memory, and storage system and controller system thereof | |
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 | |
TWI386802B (zh) | 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統 | |
US8407397B2 (en) | Block management method for flash memory and controller and storage system using the same | |
TWI385516B (zh) | 快閃記憶體儲存系統及其資料寫入方法 | |
US8214578B2 (en) | Method of storing data into flash memory according to usage patterns of addresses and data storage system using the same | |
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
US20100042774A1 (en) | Block management method for flash memory, and storage system and controller using the same | |
TWI405209B (zh) | 資料管理方法及使用此方法的快閃儲存系統與控制器 | |
US20090172255A1 (en) | Wear leveling method and controller using the same | |
US20100057979A1 (en) | Data transmission method for flash memory and flash memory storage system and controller using the same | |
US9037814B2 (en) | Flash memory management method and flash memory controller and storage system using the same | |
TWI381393B (zh) | 區塊管理與更換方法、快閃記憶體儲存系統及其控制器 | |
US20100042775A1 (en) | Block management method for flash memory, and storage system and controller using the same | |
TWI417884B (zh) | 用於快閃記憶體的資料存取方法、儲存系統與控制器 | |
TW201917581A (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器 | |
TWI584189B (zh) | 記憶體控制器、記憶體儲存裝置與資料寫入方法 | |
CN101625661B (zh) | 用于闪存的数据管理方法、储存系统与控制器 | |
TWI420528B (zh) | 用來增進一快閃記憶體的效能之方法以及相關之可攜式記憶裝置及其控制器 |