TWI398770B - 用於快閃記憶體的資料存取方法、儲存系統與控制器 - Google Patents
用於快閃記憶體的資料存取方法、儲存系統與控制器 Download PDFInfo
- Publication number
- TWI398770B TWI398770B TW097125741A TW97125741A TWI398770B TW I398770 B TWI398770 B TW I398770B TW 097125741 A TW097125741 A TW 097125741A TW 97125741 A TW97125741 A TW 97125741A TW I398770 B TWI398770 B TW I398770B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- physical block
- area
- physical
- new data
- 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/7202—Allocation control and policies
-
- 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Read Only Memory (AREA)
Description
本發明是有關於一種資料存取方法,且特別是有關於一種存取快閃記憶體的資料存取方法及使用此方法的儲存系統與控制器。
數位相機、手機相機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於快閃記憶體(Flash Memory)具有資料非揮發性、省電、體積小與無機械結構等的特性,適合可攜式應用,最適合使用於這類可攜式由電池供電的產品上。記憶卡就是一種以反及(NAND)快閃記憶體作為儲存媒體的儲存裝置。由於記憶卡體積小容量大且攜帶方便,所以已廣泛用於個人重要資料的儲存。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。
一般來說,快閃記憶體儲存系統的快閃記憶體會劃分為多個實體區塊並且此些實體區塊會分組為資料區(data area)與備用區(spare area)。歸類為資料區的實體區塊中會儲存由寫入指令所寫入的有效資料,而備用區中的實體區塊是用以在執行寫入指令時替換資料區中的實體區塊。具體來說,當快閃記憶體儲存系統接受到主機的寫入指令而欲對資料區的實體區塊進行寫入時,快閃記憶體儲存系統會從備用區中提取一實體區塊並且將在資料區中欲寫入的
實體區塊中的有效舊資料與欲寫入的新資料寫入至從備用區中提取的實體區塊並且將已寫入新資料的實體區塊關聯為資料區,並且將原本資料區的實體區塊進行抹除並關聯為備用區。
為了能夠讓主機存取以輪替方式儲存資料的實體區塊,快閃記憶體儲存系統會提供邏輯區塊給主機以進行資料存取。具體來說,快閃記憶體儲存系統會維護一邏輯區塊與實體區塊對映表來記錄邏輯區塊與資料區中之實體區塊的對映關係。同時,當快閃記憶體儲存系統執行寫入指令而使資料區的實體區塊與備用區的實體區塊進行替換時,快閃記憶體儲存系統會更新邏輯區塊與實體區塊對映表以利後續正確地存取。
然而,在上述架構下倘若快閃記憶體儲存系統不斷被主機要求寫入屬於不同邏輯區塊的少量資料時,快閃記憶體儲存系統必須不斷的執行上述從備用區中提取實體區塊、搬移資料與抹除實體區塊的動作。因此,快閃記憶體儲存系統就必須耗費相當多的時間進行資料的搬移與實體區塊的抹除,由此會嚴重地影響快閃記憶體儲存系統的效能。
有鑑於此,本發明提供一種資料存取方法,其能夠減少資料搬移與實體區塊抹除的次數,由此提升在混亂寫入模式中快閃記憶體儲存系統的存取速度。
此外,本發明提供一種控制器,其使用上述資料存取方法來存取快閃記憶體,以減少資料搬移與實體區塊抹除的次數,由此提升在混亂寫入模式中快閃記憶體儲存系統的存取速度。
再者,本發明提供一種儲存系統,其使用上述資料存取方法來存取快閃記憶體,以減少資料搬移與實體區塊抹除的次數,由此提升在混亂寫入模式中資料存取的速度。
本發明提出一種資料存取方法,適用於存取快閃記憶體,其中快閃記憶體具有多個實體區塊,此資料存取方法包括將實體區塊分組為資料區、備用區與混亂區。此外,此資料存取方法更包括當從主機中接收到寫入指令與欲寫入的新資料時判斷新資料是否為連續資料,其中當新資料為連續資料時則提取備用區的實體區塊的其中之一作為對應欲寫入新資料的實體區塊的替換實體區塊且將新資料寫入至替換實體區塊中,並且當新資料不為連續資料時將新資料暫時地寫入至混亂區的實體區塊中。
在本發明之一實施例中,上述之判斷新資料是否為連續資料的步驟包括當新資料的資料量小於預先定義值時則判斷新資料不為連續資料。
在本發明之一實施例中,上述之資料存取方法更包括在判斷新資料是否為連續資料之前先判斷是否存有對應欲寫入新資料的實體區塊的替換實體區塊,其中當存有對應欲寫入新資料的實體區塊的替換實體區塊時則直接寫入新資料至對應欲寫入新資料的實體區塊的替換實體區塊中。
在本發明之一實施例中,上述之資料存取方法更包括建立與更新混亂區索引表以記錄關於在混亂區的每一實體區塊中所儲存的資料的資訊。
在本發明之一實施例中,上述之資料存取方法更包括當暫時地寫入新資料至混亂區的實體區塊時在邏輯區塊與實體區塊對映表中對應欲寫入新資料的實體區塊的記錄上產生標記以表示新資料被暫時地寫入混亂區的實體區塊中。
在本發明之一實施例中,上述之資料存取方法更包括當混亂區的實體區塊皆已寫入資料時則從備用區中提取至少一個實體區塊並且將混亂區的至少一個實體區塊中的資料和其對應資料區的實體區塊中的有效資料寫入至至少一個實體區塊中。
在本發明之一實施例中,上述之將實體區塊分組為資料區、備用區與混亂區的步驟包括將實體區塊劃分為多個區域以及將每一區域的實體區塊獨立地分組為資料區、備用區與混亂區。
在本發明之一實施例中,上述之區域的混亂區分別地具有不同數目的實體區塊。
在本發明之一實施例中,上述之資料存取方法更包括僅從備用區中提取一預定數目的實體區塊作為替換實體區塊。
在本發明之一實施例中,上述之當新資料不為連續資料時將新資料暫時地寫入至混亂區的實體區塊中的步驟包
括當判斷新資料不為該連續資料時判斷替換實體區塊的數目是否為預定數目,其中當替換實體區塊的數目為預定數目時將新資料暫時地寫入混亂區的實體區塊中以及當替換實體區塊的數目是否不為預定數目時則提取備用區的實體區塊的其中之一作為對應欲寫入新資料的實體區塊的替換實體區塊並且將新資料寫入至此替換實體區塊中。
本發明提出一種控制器,其適用於具有快閃記憶體的快閃儲存系統,其中快閃記憶體具有多個實體區塊,此控制器包括微處理器單元、快閃記憶體介面、緩衝記憶體與記憶體管理模組。快閃記憶體介面、緩衝記憶體與記憶體管理模組是電性連接至微處理器單元,其中記憶體管理模組具有可由微處理器單元執行的多個機器指令以對快閃記憶體進行多個資料存取步驟,此些資料存取步驟包括將實體區塊分組為資料區、備用區與混亂區。此外,此些資料存取步驟更包括當從主機中接收到寫入指令與欲寫入的新資料時判斷新資料是否為連續資料,其中當新資料為連續資料時則提取備用區的實體區塊的其中之一作為對應欲寫入新資料的實體區塊的替換實體區塊且將新資料寫入至替換實體區塊中,並且當新資料不為連續資料時將新資料暫時地寫入至混亂區的實體區塊中。
在本發明之一實施例中,上述之判斷新資料是否為連續資料的步驟包括當新資料的資料量小於預先定義值時則判斷新資料不為連續資料。
在本發明之一實施例中,上述之資料存取步驟更包括
在判斷新資料是否為連續資料之前先判斷是否存有對應欲寫入新資料的實體區塊的替換實體區塊,其中當存有對應欲寫入新資料的實體區塊的替換實體區塊時則直接寫入新資料至對應欲寫入新資料的實體區塊的替換實體區塊中。
在本發明之一實施例中,上述之資料存取步驟更包括建立與更新混亂區索引表以記錄關於在混亂區的每一實體區塊中所儲存的資料的資訊。
在本發明之一實施例中,上述之資料存取步驟更包括當暫時地寫入新資料至混亂區的實體區塊時在邏輯區塊與實體區塊對映表中對應欲寫入新資料的實體區塊的記錄上產生標記以表示新資料被暫時地寫入混亂區的實體區塊中。
在本發明之一實施例中,上述之資料存取步驟更包括當混亂區的實體區塊皆已寫入資料時則從備用區中提取至少一個實體區塊並且將混亂區的至少一個實體區塊中的資料和其對應資料區的實體區塊中的有效資料寫入至至少一個實體區塊中。
在本發明之一實施例中,上述之將實體區塊分組為資料區、備用區與混亂區的步驟包括將實體區塊劃分為多個區域以及將每一區域的實體區塊獨立地分組為資料區、備用區與混亂區。
在本發明之一實施例中,上述之區域的混亂區分別地具有不同數目的實體區塊。
在本發明之一實施例中,上述之快閃儲存系統為USB
隨身碟、快閃記憶卡或固態硬碟。
在本發明之一實施例中,上述之資料存取步驟更包括僅從備用區中提取一預定數目的實體區塊作為替換實體區塊。
在本發明之一實施例中,上述之當新資料不為連續資料時將新資料暫時地寫入至混亂區的實體區塊中的步驟包括當判斷新資料不為該連續資料時判斷替換實體區塊的數目是否為預定數目,其中當替換實體區塊的數目為預定數目時將新資料暫時地寫入混亂區的實體區塊中以及當替換實體區塊的數目是否不為預定數目時則提取備用區的實體區塊的其中之一作為對應欲寫入新資料的實體區塊的替換實體區塊並且將新資料寫入至此替換實體區塊中。
本發明提出一種儲存系統,其包括具有多個實體區塊的快閃記憶體、傳輸連接介面與控制器。控制器是電性連接至快閃記憶體與傳輸連接介面,此控制器會執行記憶體管理模組的多個機器指令以執行多個資料存取步驟,此些資料存取步驟包括將實體區塊分組為資料區、備用區與混亂區。此外,此些資料存取步驟更包括當從主機中接收到寫入指令與欲寫入的新資料時判斷新資料是否為連續資料,其中當新資料為連續資料時則提取備用區的實體區塊的其中之一作為對應欲寫入新資料的實體區塊的替換實體區塊且將新資料寫入至替換實體區塊中,並且當新資料不為連續資料時將新資料暫時地寫入至混亂區的實體區塊中。
在本發明之一實施例中,上述之判斷新資料是否為連續資料的步驟包括當新資料的資料量小於預先定義值時則判斷新資料不為連續資料。
在本發明之一實施例中,上述之資料存取步驟更包括在判斷新資料是否為連續資料之前先判斷是否存有對應欲寫入新資料的實體區塊的替換實體區塊,其中當存有對應欲寫入新資料的實體區塊的替換實體區塊時則直接寫入新資料至對應欲寫入新資料的實體區塊的替換實體區塊中。
在本發明之一實施例中,上述之資料存取步驟更包括建立與更新混亂區索引表以記錄關於在混亂區的每一實體區塊中所儲存的資料的資訊。
在本發明之一實施例中,上述之資料存取步驟更包括當暫時地寫入新資料至混亂區的實體區塊時在邏輯區塊與實體區塊對映表中對應欲寫入新資料的實體區塊的記錄上產生標記以表示新資料被暫時地寫入混亂區的實體區塊中。
在本發明之一實施例中,上述之資料存取步驟更包括當混亂區的實體區塊皆已寫入資料時則從備用區中提取至少一個實體區塊並且將混亂區的至少一個實體區塊中的資料和其對應資料區的實體區塊中的有效資料寫入至至少一個實體區塊中。
在本發明之一實施例中,上述之將實體區塊分組為資料區、備用區與混亂區的步驟包括將實體區塊劃分為多個區域以及將每一區域的實體區塊獨立地分組為資料區、備
用區與混亂區。
在本發明之一實施例中,上述之區域的混亂區分別地具有不同數目的實體區塊。
在本發明之一實施例中,上述之記憶體管理模組是以一硬體型式配置在控制器中。
在本發明之一實施例中,上述之記憶體管理模組是以一韌體型式儲存在該快閃記憶體中。
在本發明之一實施例中,上述之記憶體管理模組是以一韌體型式儲存在控制器的程式記憶體中。
在本發明之一實施例中,上述之資料存取步驟更包括僅從備用區中提取一預定數目的實體區塊作為替換實體區塊。
在本發明之一實施例中,上述之當新資料不為連續資料時將新資料暫時地寫入至混亂區的實體區塊中的步驟包括當判斷新資料不為該連續資料時判斷替換實體區塊的數目是否為預定數目,其中當替換實體區塊的數目為預定數目時將新資料暫時地寫入混亂區的實體區塊中以及當替換實體區塊的數目是否不為預定數目時則提取備用區的實體區塊的其中之一作為對應欲寫入新資料的實體區塊的替換實體區塊並且將新資料寫入至此替換實體區塊中。
本發明因在快閃記憶體的實體區塊中額外劃分混亂區,並且將非連續的新資料暫時地寫入至混亂區中,因此減少資料搬移與實體區塊抹除的次數,由此提升在混亂寫入模式中資料存取的速度。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉較佳實施例,並配合所附圖式,作詳細說明如下。
圖1是根據本發明實施例繪示快閃記憶體儲存系統的概要方塊圖。請參照圖1,快閃記憶體儲存系統100包括控制器110、傳輸連接介面120以及快閃記憶體130。
通常快閃記憶體儲存系統100會與主機200一起使用,以使主機200可將資料寫入至快閃記憶體儲存系統100或從快閃記憶體儲存系統100中讀取資料。在本實施例中,快閃記憶體儲存系統120為固態硬碟(Solid State Drive, SSD)。但必須瞭解的是,在本發明另一實施例中快閃記憶體儲存系統100亦可以是記憶卡或隨身碟。
控制器110會執行以硬體型式或韌體型式實作的多個指令以配合傳輸連接介面120與快閃記憶體130以進行資料的儲存、讀取與抹除等運作。控制器110包括微處理器單元110a、記憶體管理模組110b、快閃記憶體介面110c與緩衝記憶體110d。
微處理器單元110a用以與記憶體管理模組110b、快閃記憶體介面110c與緩衝記憶體110d等協同合作以進行快閃記憶體儲存系統100的各種運作。
記憶體管理模組110b是電性連接至微處理器單元110a。記憶體管理模組110b具有可由微處理器單元110a執行的多個機器指令以管理快閃記憶體130,例如執行平
均磨損(wear leveling)功能、壞區塊管理功能、維護邏輯區塊與實體區塊對映表(mapping table)功能等的機器指令。特別是,在本發明實施例中,記憶體管理模組110b包含可完成根據本實施例的資料存取步驟(如圖4所示)的機器指令。
在本實施例中,記憶體管理模組110b是以一韌體型式來實作在控制器110中,例如以程式語言撰寫程式相關機械指令並且儲存於程式記憶體(例如,唯讀記憶體(Read Only Memory, ROM))來實作記憶體管理模組110b,其中當快閃記憶體儲存系統100運作時,記憶體管理模組110b的多個機械指令會被載入至緩衝記憶體110d中並且由微處理器單元110a來執行以完成上述平均磨損功能、壞區塊管理功能、維護邏輯區塊與實體區塊對映表功能等。特別是,可由此完成根據本發明實施例的資料存取(如圖4所示)功能。
在本發明另一實施例中,亦可將記憶體管理模組110b的機械指令以韌體型式儲存於快閃記憶體130的特定區域(例如,下述的系統區202)中,同樣的當快閃記憶體儲存系統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),以區域來管理記憶體某種程度上是彼此獨立地操作以增加操作執行的平行程度且簡化管理的複雜度。
圖2A與2B是根據本發明實施例繪示快閃記憶體的實體區塊進行輪替的示意圖。
必須瞭解的是,在此描述快閃記憶體的運作時以“提取”、“搬移”、“交換”、“分割”、“劃分”等詞來操作快閃記
憶體130的實體區塊130-0至130-N是邏輯上的概念。也就是說,快閃記憶體之實體區塊的實際位置並未更動,而是邏輯上對快閃記憶體的實體區塊進行操作。值得一提的是,下述實體區塊的運作藉由控制器110執行記憶體管理模組110b的機械指令所完成。
請參照圖2A,在本發明實施例中,為了有效率地程式化(即寫入與抹除)快閃記憶體130,控制器110會將快閃記憶體130的實體區塊130-1至130-N在邏輯上分組為一系統區202、一資料區204與一備用區206。一般來說,快閃記憶體130中屬於資料區204的實體區塊會佔90%以上。如前所述,快閃記憶體130的實體區塊130-1至130-N會以輪替方式提供主機來儲存資料,因此控制器110會提供邏輯區塊210給主機以進行資料存取,並且透過維護邏輯區塊與實體區塊對映表來記錄邏輯區塊所對映的實體區塊。
系統區202中的實體區塊用以記錄系統資料,系統資料例如是關於快閃記憶體130的區域數、每一區域的實體區塊數、每一實體區塊的頁面位址數、記錄邏輯區塊與實體區塊對映關係的對映表(mapping table)等。
資料區204中的實體區塊用以儲存使用者的資料,一般來說就是主機200所存取之邏輯區塊210所對映的區塊。
備用區206中的實體區塊是用以替換資料區204中的實體區塊,因此在備用區206中的實體區塊為空或可使用的區塊,即無記錄資料或標記為已沒用的無效資料。
具體來說,由於在快閃記憶體中每個位址僅能程式化一次,因此若要對已寫過資料位置再次寫入資料時,必須先執行抹除的動作。然而,如前所述快閃記憶體寫入單位為頁面,其小於以實體區塊為單位的抹除單位。因此,若要執行實體區塊的抹除動作時,必須先將欲抹除實體區塊中的有效頁面位址的資料複製至其它實體區塊後才可進行實體區塊的抹除動作。
例如,當主機欲寫入資料至邏輯區塊210之中的邏輯區塊L時,控制器110會透過邏輯區塊與實體區塊對映表得知邏輯區塊L目前是對映資料區204中的實體區塊M。因此,快閃記憶體儲存系統100將對實體區塊M中的資料進行更新,期間,控制器110會從備用區206中提取實體區塊C來取代資料區204的實體區塊M。然而,當將新資料入至實體區塊C的同時,不會立刻將實體區塊M中的所有有效資料搬移至實體區塊C而抹除實體區塊M。具體來說,控制器110會將實體區塊M中欲寫入頁面位址之前的有效資料(即頁P0與P1)複製至實體區塊C(如圖2B的(a)),並且將新資料(即實體區塊C的頁P2與P3)寫入至C區塊(如圖2B的(b))。此時,將含有部分的有效舊資料與所寫入新資料的實體區塊C暫時地關聯為替換實體區塊208。此是因為實體區塊M中的有效資料有可能在下個操作(例如,寫入指令)中變成無效,因此立刻將實體區塊M中的所有有效資料搬移至實體區塊C可能會造成無謂的搬移。在此案例中,實體區塊M與實體區塊C的
內容整合起來才是所對映邏輯區塊L的完整內容。此等母子區塊(即,實體區塊M與實體區塊C)的暫態關係可依據控制器110中緩衝記憶體110d的大小而定,例如一般會使用五組來實作。暫時地維持此種暫態關係的動作一般可稱為開啟(open)母子區塊。
之後,當需要將實體區塊M與實體區塊C的內容真正合併時,控制器110才會將實體區塊M與實體區塊C整併為一區塊,由此提升區塊的使用效率,此合併的動作又可稱為關閉(close)母子區塊。例如,如圖2B的(c)所示,當進行關閉母子區塊時,控制器110會將實體區塊M中剩餘的有效資料(即頁P4~PN)複製至實體區塊C,然後將實體區塊M抹除並關聯為備用區206,同時,將實體區塊C關聯為資料區204,並且在邏輯區塊與實體區塊對映表中將邏輯區塊L的對映更改為實體區塊C,由此完成關閉母子區塊的動作。
由於快閃記憶體130的程式化規格要求必須從每一實體區塊的第一頁開始寫入至最後一頁並且在每個位元僅能程式一次(即由僅能"1"變為"0")的條件下,一旦記憶體實體區塊的頁面位址寫入資料後,若欲更新已寫入的資料就必須如圖2A所示從備用區206中提取一實體區塊重新進行圖2B所示的步驟。因此,當實體區塊在未進行圖2B的(c)關閉動作之前(即處於圖2B的(b)所示的暫態),而發生必須更新剛搬移的資料(例如圖1B的P0~P1)時,則所搬移的舊資料就必須再搬移一次,此稱為混亂
(Random)寫入模式時。
例如,一般在儲存裝置中會使用檔案配置表(File Allocation Table, FAT)來管理儲存媒體,其中FAT資料的存取是非常頻繁。因此,當存取FAT表時可能會因為不斷更新剛搬移的資料而進入混亂寫入模式。在進入上述混亂寫入模式時,控制器110會將欲寫入的資料依序地寫入至實體區塊C的頁面中而不進行如圖2B的(a)所示的有效資料搬移,並且於混亂寫入模式結束時才進行有效資料的整合,以避免在混亂寫入模式下不斷重複執行圖2A與圖2B的動作。
在本發明實施例中,除了上述系統區202、資料區204與備用區206之外,控制器110更包括執行記憶體管理模組110b的機器指令以將快閃記憶體130的實體區塊130-1至130-N之中的至少一個實體區塊分組為混亂區212。
混亂區212是用以暫時地儲存主機200所寫入的資料。具體來說,在本實施例中當欲寫入的邏輯區塊進入混亂寫入模式且邏輯區塊所對映的實體區塊已處於母子區塊的暫態關係時,會於所對應的子區塊(例如,實體區塊C)中直接依序地寫入資料而避免重複開啟與關閉母子區塊。然而,當混亂寫入模式是發生在多個邏輯區塊時,也就是主機200不斷地寫入不連續資料(即,資料屬於小資料量的資料)至不同的邏輯區塊時,在本實施例中控制器110會將此資料暫時地寫入至混亂區212的實體區塊中,以避免為了寫入資料至不同的邏輯區塊而不斷的開啟與關閉母子區
塊(如圖2A與2B所述的動作)而嚴重地影響快閃記憶體除儲存系統100的效能。
值得一提的是,由於主機200會依據傳輸連接介面120的最大傳輸量來考量將欲寫入的新資料是以一個寫入指令或多個寫入指令來傳送至快閃記憶體儲存系統100。因此,在本實施例中控制器110是根據在此次寫入指令中欲寫入之新資料的資料量是否小於一預先定義值來判斷此新資料為連續資料或不連續資料。例如,假設主機200與傳輸連接介面120之間的最大傳輸量(每個寫入指令,最多可寫入的資料長度)為100扇區(sector)時,當欲寫入之資料的資料量小於100扇區時,則控制器110會認定此新資料為不連續資料,反之,則判斷新資料為連續資料。
雖然本發明是以資料量來判斷新資料是否為不連續資料,然而本發明不限於此,任何其他適當的方法亦可應用於本發明。例如,在本發明另一實施例中,主機200亦可能將連續性資料以多個小於最大傳輸量的小資料來分次傳送至快閃記憶體儲存系統,因此在此例子中控制器亦可在第一次收到此資料時先判斷為不連續資料而儲存至混亂區,然後在第二次接收到後續資料而確認為連續資料後再開啟母子區塊來進行寫入。
在本發明實施例中,由於新資料可能會暫時地儲存在混亂區212的實體區塊中,因此控制器110會在邏輯區塊與實體區塊對映表中產生一標記,以註記新資料被暫時寫入至混亂區212的邏輯區塊,以使得當主機200欲讀取此
邏輯區塊的資料時,控制器110可經由確認此標記而至混亂區212中找尋資料。
此外,由於混亂區212是用以為所有邏輯區塊暫時地儲存資料,因此在本實施例中會建立混亂區索引表來記錄在混亂區212的實體區塊中所儲存的資料是屬於那個邏輯區塊的那個頁面位址。
圖3是根據本發明實施例繪示混亂區索引表的範例。請參照圖3,此混亂區索引表300的大小是依據混亂區212之實體區塊的數目來建立,其中包括混亂區塊索引欄位302、頁面位址索引欄位304、資料有效性欄位306、對映邏輯區塊欄位308與對映頁面位址欄位310。例如,假設邏輯區塊L1的頁面位址2的新資料被暫時地寫入至混亂區212的實體區塊P3的頁面位址0時,在混亂區索引表中的其中之一筆記錄R1會儲存混亂區塊索引欄位302為P3、頁面位址索引欄位304為0、資料有效性欄位306為1、對映邏輯區塊欄位308為L1且與對映頁面位址欄位310為2,其中資料有效性欄位306為1表示混亂區212的實體區塊P3的頁面位址0為有效,並且當資料有效性欄位306為0時表示此頁面位址的資料為無效。
此外,如上所述為了管理上的方便亦可將實體區塊130-0至130-N劃分為數個獨立的區域(zone),其中針對每一區域建立獨立的管理機制,例如獨立的邏輯區塊與實體區塊對映表、獨立的資料區與備用區等。特別是,在以數個區域管理快閃記憶體的例子中,控制器會在每一區
域中分別地配置上述混亂區,以簡化管理的複雜度。此外,當以多個區域來分別配置混亂區時,每一區域中的混亂區可以不同數目的實體區塊來組成。
圖4是根據本發明實施例繪示的資料存取步驟的流程圖。以下將配合流程圖詳細描述本發明實施例的資料存取(寫入與讀取)步驟。
請參照圖4,在步驟S401中控制器110會將快閃記憶體130的實體區塊130-0至130-N分組為系統區202、資料區204、備用區206與混亂區212。
在步驟S403中會待命以從主機200中接收指令,並且在步驟S405中當接收到指令時會判斷所接收的指令為寫入指令或讀取指令。
倘若在步驟S405中判斷所接收的指令為寫入指令時,則在步驟S407中會判斷新資料是否為連續資料。例如,當判斷新資料的資料量小於一預先定義值(例如,最大傳輸資料量)時,則判斷新資料不為連續資料。
倘若在步驟S407中判斷新資料為連續資料時,則在步驟S409中會從備用區206中提取一個實體區塊作為對應欲寫入新資料的實體區塊(例如,實體區塊M)的替換實體區塊(例如,實體區塊C),並且將新資料寫入至替換實體區塊中。在完成資料寫入後,資料存取步驟會返回至步驟S403待命以接收下一個指令。
倘若在步驟S407中判斷新資料不為連續資料時,則在步驟S411中將新資料暫時地寫入至混亂區212的實體
區塊中。特別是,在步驟S411中也可包括判斷混亂區212中的實體區塊是否皆已寫入資料,倘若皆已寫入資料時則從備用區206中提取實體區塊並且將混亂區212的實體區塊中的資料和其對應資料區204的實體區塊中的有效資料寫入至所提取的實體區塊中。也就是,在混亂區212中的實體區塊是否皆已寫入資料時控制器110會進行實體區塊的整併以空出混亂區212的儲存空間以寫入新的資料。
此外,由於上述開啟母子區塊的組數是有所限制的,也就是在同一時間中僅能開啟一預定數目的替換實體區塊,例如僅使用五個實體區塊作為替換實體區塊。因此,在本發明另一實施例中,在步驟S407中判斷新資料不為連續資料時更包括判斷控制器110是否已使用預定數目的替換實體區塊,倘若已使用預定數目的替換實體區塊時才執行步驟S411,倘若仍還有未使用的替換實體區塊時則執行步驟S409。
必須瞭解的是,上述對混亂區212所進行的儲存空間釋放動作亦可於其他適當的時機進行,例如在快閃記憶體儲存系統100開機時執行此儲存空間釋放動作。此外,在本發明另一實施例中,亦可在執行平均抹損(wear-levling)程序時釋放混亂區212的儲存空間,例如可將混亂區212內所儲存資料對應位於資料區204內的實體區塊的抹除次數乘上一個權重值,以使得在進行平均抹損程序時,此資料區204內的對應實體區塊可優先被選取作為進行交換的實體區塊,由此混亂區212內的資料即會進行整併由此釋
放儲存空間。平均抹損(wear-levling)程序中交換實體區塊的細節並非本發明的重點,在此不詳細描述。
之後,在步驟S413中會建立或者更新混亂區索引表300。在完成建立或更新混亂區索引表300後,資料存取步驟會返回至步驟S403待命以接收下一個指令。
倘若在步驟S405中判斷所接收的指令為讀取指令時,則在步驟S415中會依據邏輯區塊與實體區塊對映表和混亂區索引表中的資訊讀取資料。在完成讀取資料後,資料存取步驟會返回至步驟S403待命以接收下一個指令。
雖未繪示於圖式中,但此領域熟知技藝者上述資料存取步驟會在快閃記憶體儲存系統100從主機200中移除或關機時結束。
值得一提的是,在本實施例中是於快閃記憶體儲存系統100啟動時藉由讀取每一實體區塊的冗餘區中的資訊來重新建立邏輯區塊與實體區塊對映表和混亂區索引表於緩衝記憶體110d中。然而,在本發明另一實施例中邏輯區塊與實體區塊對映表和混亂區索引表亦可在快閃記憶體儲存系統100進行關機程序時儲存至快閃記憶體130的系統區202以便於在快閃記憶體儲存系統100下次開機時載入邏輯區塊與實體區塊對映表和混亂區索引表至緩衝記憶體110d中以快速地恢復關機前的狀態。
如上所述,在本發明實施例中在接受到新資料控制器110會直接判斷新資料是否為連續資料而進行不同的儲存動作。然而,在欲寫入的實體區塊已具有對應的替換實體
區塊(即,已開啟母子區塊)的例子中,由於先前已提取對應的替換實體區塊,因此亦可直接將資料寫入至替換實體區塊中而不需考量新資料是否為連續資料。因此,在本發明另一實施例中,資料存取步驟更包括在判斷新資料是否為連續資料之前先判斷目前快閃記憶體系統100中是否存有對應欲寫入新資料的實體區塊的替換實體區塊,即先判斷欲寫入新資料的實體區塊是否具有對應的子區塊(如圖5的步驟417)。倘若欲寫入新資料的實體區塊具有對應的子區塊時,則寫入新資料至對應欲寫入資料的實體區塊的替換實體區塊中(如圖5的步驟419)。
綜上所述,本發明的資料存取方法在將快閃記憶體的實體區塊更劃分一混亂區,並且將不連續的資料先暫時地寫入至此混亂區中。基此,除了已開啟替換實體區塊的實體區塊(即,母子區塊的暫態關係)可進入混亂寫入模式外,非屬於母子區塊關係的實體區塊亦可藉由先將混亂寫入的資料暫存於混亂區中,以減少資料的搬移與區塊抹除的動作,由此提升在混亂寫入模式中快閃記憶體儲存系統的效能。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
S、M、L‧‧‧區塊
100‧‧‧快閃記憶體儲存系統
110‧‧‧控制器
110a‧‧‧微處理器單元
110b‧‧‧記憶體管理模組
110c‧‧‧快閃記憶體介面
110d‧‧‧緩衝記憶體
120‧‧‧傳輸連接介面
130‧‧‧快閃記憶體
130-0~130-N‧‧‧實體區塊
200‧‧‧主機
202‧‧‧系統區
204‧‧‧資料區
206‧‧‧備用區
208‧‧‧替換區塊
210‧‧‧邏輯區塊
212‧‧‧混亂區
S401、S403、S405、S407、S409、S411、S413、S415、S417、S419‧‧‧資料存取步驟
圖1是根據本發明實施例繪示快閃記憶體儲存系統的概要方塊圖。
圖2A與2B是根據本發明實施例繪示快閃記憶體的實體區塊進行輪替的示意圖。
圖3是根據本發明實施例繪示混亂區索引表的範例。
圖4是根據本發明實施例繪示的資料存取步驟的流程圖。
圖5是根據本發明另一實施例繪示的資料存取步驟的流程圖。
S401、S403、S405、S407、S409、S411、S413、S415‧‧‧資料存取步驟
Claims (28)
- 一種資料存取方法,適用於存取一快閃記憶體,其中該快閃記憶體具有多個實體區塊,該資料存取方法包括:將該些實體區塊分組為一資料區、一備用區與一混亂區;當從一主機中接收到一寫入指令與欲寫入的新資料時,判斷該新資料是否為一連續資料,其中該新資料屬於該些邏輯區塊之中的一第一邏輯區塊並且該資料區的該些實體區塊之中的一第一實體區塊映射該第一邏輯區塊;當該新資料為該連續資料時,則提取該備用區的實體區塊的其中之一作為對應該第一實體區塊的一替換實體區塊,並且將該新資料寫入至該替換實體區塊中;當判斷該新資料不為該連續資料時,判斷該替換實體區塊的數目是否為一預定數目;當該替換實體區塊的數目為該預定數目時,將該新資料暫時地寫入至該混亂區的實體區塊中;以及當該替換實體區塊的數目不為該預定數目時,則提取該備用區的實體區塊的其中之一作為對應該第一實體區塊的該替換實體區塊,並且將該新資料寫入至該替換實體區塊中。
- 如申請專利範圍第1項所述之資料存取方法,其中判斷該新資料是否為該連續資料的步驟包括當該新資料的資料量小於一預先定義值時則判斷該新資料不為該連續資料。
- 如申請專利範圍第1項所述之資料存取方法,更包括在判斷該新資料是否為該連續資料之前先判斷是否存有對應該第一實體區塊的替換實體區塊,其中當存有對應該第一實體區塊的替換實體區塊時則寫入該新資料至對應該第一實體區塊的替換實體區塊中。
- 如申請專利範圍第1項所述之資料存取方法,更包括建立與更新一混亂區索引表以記錄關於在該混亂區的每一實體區塊中所儲存的資料的資訊。
- 如申請專利範圍第1項所述之資料存取方法,更包括當暫時地寫入該新資料至該混亂區的實體區塊時在一邏輯區塊與實體區塊對映表中對應該第一實體區塊的記錄上產生一標記以表示該新資料被暫時地寫入該混亂區的實體區塊中。
- 如申請專利範圍第1項所述之資料存取方法,更包括當該混亂區的實體區塊皆已寫入資料時則從該備用區中提取至少一個實體區塊並且將該混亂區的至少一個實體區塊中的資料和其對應該資料區的實體區塊中的有效資料寫入至該至少一個實體區塊中。
- 如申請專利範圍第1項所述之資料存取方法,其中將該些實體區塊分組為該資料區、該備用區與該混亂區的步驟包括:將該些實體區塊劃分為多個區域;以及將每一區域的該些實體區塊獨立地分組為該資料 區、該備用區與該混亂區。
- 如申請專利範圍第7項所述之資料存取方法,其中該些區域的混亂區分別地具有不同數目的實體區塊。
- 一種控制器,適用於具有一快閃記憶體的一快閃儲存系統,其中該快閃記憶體具有多個實體區塊,該控制器包括:一微處理器單元;一快閃記憶體介面,電性連接至該微處理器單元;一緩衝記憶體,電性連接至該微處理器單元;以及一記憶體管理模組,電性連接至該微處理器單元且具有可由該微處理器單元執行的多個機器指令以對該快閃記憶體進行多個資料存取步驟,該些資料存取步驟包括:將該些實體區塊分組為一資料區、一備用區與一混亂區;當從一主機中接收到一寫入指令與欲寫入的新資料時,判斷該新資料是否為一連續資料,其中該新資料屬於該些邏輯區塊之中的一第一邏輯區塊並且該資料區的該些實體區塊之中的一第一實體區塊映射該第一邏輯區塊;當該新資料為該連續資料時,則提取該備用區的實體區塊的其中之一作為對應該第一實體區塊的一替換實體區塊,並且將該新資料寫入至該替換實體區塊中;當判斷該新資料不為該連續資料時,判斷該替換實體區塊的數目是否為一預定數目; 當該替換實體區塊的數目為該預定數目時,將該新資料暫時地寫入至該混亂區的實體區塊中;以及當該替換實體區塊的數目不為該預定數目時,則提取該備用區的實體區塊的其中之一作為對應該第一實體區塊的該替換實體區塊,並且將該新資料寫入至該替換實體區塊中。
- 如申請專利範圍第9項所述之控制器,其中判斷該新資料是否為該連續資料的步驟包括當該新資料的資料量小於一預先定義值時則判斷該新資料不為該連續資料。
- 如申請專利範圍第9項所述之控制器,其中該資料存取步驟更包括在判斷該新資料是否為該連續資料之前先判斷是否存有對應該第一實體區塊的替換實體區塊,其中當存有對應該第一實體區塊的替換實體區塊時則寫入該新資料至對應該第一實體區塊的替換實體區塊中。
- 如申請專利範圍第9項所述之控制器,其中該資料存取步驟更包括建立與更新一混亂區索引表以記錄關於在該混亂區的每一實體區塊中所儲存的資料的資訊。
- 如申請專利範圍第9項所述之控制器,其中該資料存取步驟更包括當暫時地寫入該新資料至該混亂區的實體區塊時在一邏輯區塊與實體區塊對映表中對應該第一實體區塊的記錄上產生一標記以表示該新資料被暫時地寫入該混亂區的實體區塊中。
- 如申請專利範圍第9項所述之控制器,其中該資料 存取步驟更包括當該混亂區的實體區塊皆已寫入資料時則從該備用區中提取至少一個實體區塊並且將該混亂區的至少一個實體區塊中的資料和其對應該資料區的實體區塊中的有效資料寫入至該至少一個實體區塊中。
- 如申請專利範圍第9項所述之控制器,其中將該些實體區塊分組為該資料區、該備用區與該混亂區的步驟包括:將該些實體區塊劃分為多個區域;以及將每一區域的該些實體區塊獨立地分組為該資料區、該備用區與該混亂區。
- 如申請專利範圍第15項所述之控制器,其中該些區域的混亂區分別地具有不同數目的實體區塊。
- 如申請專利範圍第11項所述之控制器,其中該快閃儲存系統為一USB隨身碟、一快閃記憶卡或一固態硬碟。
- 一種儲存系統,包括:一快閃記憶體,其中該快閃記憶體包括多個實體區塊;一傳輸連接介面;以及一控制器,電性連接至該快閃記憶體與該傳輸連接介面,該控制器會執行一記憶體管理模組的多個機器指令以執行多個資料存取步驟,該些資料存取步驟包括:將該些實體區塊分組為一資料區、一備用區與一混亂區; 當從一主機中接收到一寫入指令與欲寫入的新資料時,判斷該新資料是否為一連續資料,其中該新資料屬於該些邏輯區塊之中的一第一邏輯區塊並且該資料區的該些實體區塊之中的一第一實體區塊映射該第一邏輯區塊;當該新資料為該連續資料時,則提取該備用區的實體區塊的其中之一作為對應該第一實體區塊的一替換實體區塊,並且將該新資料寫入至該替換實體區塊中;當判斷該新資料不為該連續資料時,判斷該替換實體區塊的數目是否為一預定數目;當該替換實體區塊的數目為該預定數目時,將該新資料暫時地寫入至該混亂區的實體區塊中;以及當該替換實體區塊的數目不為該預定數目時,則提取該備用區的實體區塊的其中之一作為對應該第一實體區塊的該替換實體區塊,並且將該新資料寫入至該替換實體區塊中。
- 如申請專利範圍第18項所述之儲存系統,其中判斷該新資料是否為該連續資料的步驟包括當該新資料的資料量小於一預先定義值時則判斷該新資料不為該連續資料。
- 如申請專利範圍第18項所述之儲存系統,其中該資料存取步驟更包括在判斷該新資料是否為該連續資料之前先判斷是否存有對應該第一實體區塊的替換實體區塊,其中當存有對應欲寫入該新資料的實體區塊的替換 實體區塊時則寫入該新資料至對應該第一實體區塊的替換實體區塊中。
- 如申請專利範圍第18項所述之儲存系統,其中該資料存取步驟更包括建立與更新一混亂區索引表以記錄關於在該混亂區的每一實體區塊中所儲存的資料的資訊。
- 如申請專利範圍第18項所述之儲存系統,其中該資料存取步驟更包括當暫時地寫入該新資料至該混亂區的實體區塊時在一邏輯區塊與實體區塊對映表中對應該第一實體區塊的記錄上產生一標記以表示該新資料被暫時地寫入該混亂區的實體區塊中。
- 如申請專利範圍第18項所述之儲存系統,其中該資料存取步驟更包括當該混亂區的實體區塊皆已寫入資料時則從該備用區中提取至少一個實體區塊並且將該混亂區的至少一個實體區塊中的資料和其對應該資料區的實體區塊中的有效資料寫入至該至少一個實體區塊中。
- 如申請專利範圍第18項所述之儲存系統,其中將該些實體區塊分組為該資料區、該備用區與該混亂區的步驟包括:將該些實體區塊劃分為多個區域;以及將每一區域的該些實體區塊獨立地分組為該資料區、該備用區與該混亂區。
- 如申請專利範圍第24項所述之儲存系統,其中該些區域的混亂區分別地具有不同數目的實體區塊。
- 如申請專利範圍第18項所述之儲存系統,其中該記憶體管理模組以一硬體型式配置在該控制器中。
- 如申請專利範圍第18項所述之儲存系統,其中該記憶體管理模組以一韌體型式儲存在該快閃記憶體中。
- 如申請專利範圍第18項所述之儲存系統,其中該記憶體管理模組以一韌體型式儲存在該控制器的一程式記憶體中。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW097125741A TWI398770B (zh) | 2008-07-08 | 2008-07-08 | 用於快閃記憶體的資料存取方法、儲存系統與控制器 |
US12/277,566 US8386698B2 (en) | 2008-07-08 | 2008-11-25 | Data accessing method for flash memory and storage system and controller using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW097125741A TWI398770B (zh) | 2008-07-08 | 2008-07-08 | 用於快閃記憶體的資料存取方法、儲存系統與控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201003392A TW201003392A (en) | 2010-01-16 |
TWI398770B true TWI398770B (zh) | 2013-06-11 |
Family
ID=41506151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW097125741A TWI398770B (zh) | 2008-07-08 | 2008-07-08 | 用於快閃記憶體的資料存取方法、儲存系統與控制器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8386698B2 (zh) |
TW (1) | TWI398770B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI676105B (zh) * | 2018-02-02 | 2019-11-01 | 大陸商光寶電子(廣州)有限公司 | 運用dram的儲存裝置及其相關資料處理方法 |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2262303B1 (en) * | 2008-03-31 | 2018-06-13 | NEC Corporation | Concealment processing device, concealment processing method, and concealment processing program |
US8838850B2 (en) * | 2008-11-17 | 2014-09-16 | Violin Memory, Inc. | Cluster control protocol |
US8442059B1 (en) | 2008-09-30 | 2013-05-14 | Gridiron Systems, Inc. | Storage proxy with virtual ports configuration |
US8417895B1 (en) | 2008-09-30 | 2013-04-09 | Violin Memory Inc. | System for maintaining coherency during offline changes to storage media |
US8443150B1 (en) | 2008-11-04 | 2013-05-14 | Violin Memory Inc. | Efficient reloading of data into cache resource |
US8788758B1 (en) | 2008-11-04 | 2014-07-22 | Violin Memory Inc | Least profitability used caching scheme |
US8775741B1 (en) | 2009-01-13 | 2014-07-08 | Violin Memory Inc. | Using temporal access patterns for determining prefetch suitability |
US8285961B2 (en) * | 2008-11-13 | 2012-10-09 | Grid Iron Systems, Inc. | Dynamic performance virtualization for disk access |
US8417871B1 (en) | 2009-04-17 | 2013-04-09 | Violin Memory Inc. | System for increasing storage media performance |
US8667366B1 (en) | 2009-04-17 | 2014-03-04 | Violin Memory, Inc. | Efficient use of physical address space for data overflow and validation |
US8713252B1 (en) | 2009-05-06 | 2014-04-29 | Violin Memory, Inc. | Transactional consistency scheme |
TWI405214B (zh) * | 2009-05-06 | 2013-08-11 | A Data Technology Co Ltd | 快閃記憶體儲存系統之資料燒錄方法 |
US8402198B1 (en) | 2009-06-03 | 2013-03-19 | Violin Memory, Inc. | Mapping engine for a storage device |
US9069676B2 (en) | 2009-06-03 | 2015-06-30 | Violin Memory, Inc. | Mapping engine for a storage device |
US8402246B1 (en) | 2009-08-28 | 2013-03-19 | Violin Memory, Inc. | Alignment adjustment in a tiered storage system |
US8495281B2 (en) * | 2009-12-04 | 2013-07-23 | International Business Machines Corporation | Intra-block memory wear leveling |
US8838878B2 (en) * | 2010-06-01 | 2014-09-16 | Greenliant Llc | Method of writing to a NAND memory block based file system with log based buffering |
US8959288B1 (en) | 2010-07-29 | 2015-02-17 | Violin Memory, Inc. | Identifying invalid cache data |
US8832384B1 (en) | 2010-07-29 | 2014-09-09 | Violin Memory, Inc. | Reassembling abstracted memory accesses for prefetching |
US8972689B1 (en) | 2011-02-02 | 2015-03-03 | Violin Memory, Inc. | Apparatus, method and system for using real-time performance feedback for modeling and improving access to solid state media |
US8635416B1 (en) | 2011-03-02 | 2014-01-21 | Violin Memory Inc. | Apparatus, method and system for using shadow drives for alternative drive commands |
US8935466B2 (en) * | 2011-03-28 | 2015-01-13 | SMART Storage Systems, Inc. | Data storage system with non-volatile memory and method of operation thereof |
CN103034586B (zh) * | 2012-11-30 | 2016-03-23 | 记忆科技(深圳)有限公司 | 通过闪存转换层识别上层应用的方法及其系统 |
US9395924B2 (en) * | 2013-01-22 | 2016-07-19 | Seagate Technology Llc | Management of and region selection for writes to non-volatile memory |
CN103885889A (zh) * | 2014-03-19 | 2014-06-25 | 广州市泰斗软核信息科技有限公司 | 一种基于nor flash的数据存储方法及系统 |
KR102447471B1 (ko) | 2015-06-24 | 2022-09-27 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 스토리지 장치 |
TWI563507B (en) * | 2015-07-01 | 2016-12-21 | Phison Electronics Corp | Memory management method, memory control circuit unit and memry storage apparatus |
TWI639112B (zh) * | 2016-03-14 | 2018-10-21 | 慧榮科技股份有限公司 | 儲存裝置及其控制單元、可用於儲存裝置的資料儲存方法 |
JP2018049381A (ja) * | 2016-09-20 | 2018-03-29 | 東芝メモリ株式会社 | メモリ制御回路、メモリシステムおよびプロセッサシステム |
US10831374B2 (en) * | 2016-12-06 | 2020-11-10 | International Business Machines Corporation | Minimizing seek times in a hierarchical storage management (HSM) system |
JP7435470B2 (ja) * | 2018-12-19 | 2024-02-21 | ソニーグループ株式会社 | 情報処理装置、情報処理方法および情報処理プログラム |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050030791A1 (en) * | 2003-08-04 | 2005-02-10 | Phison Electronics Corp. | Method writing data to a large block of a flash memory cell |
WO2007081598A2 (en) * | 2005-10-27 | 2007-07-19 | Sandisk Corporation | Adaptive handling data writes in non-volatile memories |
US20080091901A1 (en) * | 2006-10-12 | 2008-04-17 | Alan David Bennett | Method for non-volatile memory with worst-case control data management |
US20080126796A1 (en) * | 2001-12-28 | 2008-05-29 | Kabushiki Kaisha Toshiba | Node device and communication control method for improving security of packet communications |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7877569B2 (en) * | 2004-04-28 | 2011-01-25 | Panasonic Corporation | Reduction of fragmentation in nonvolatile memory using alternate address mapping |
WO2007066720A1 (ja) * | 2005-12-09 | 2007-06-14 | Matsushita Electric Industrial Co., Ltd. | 不揮発性記憶装置並びにデータ書込み方法及びデータ読み出し方法 |
JP2008152464A (ja) * | 2006-12-15 | 2008-07-03 | Toshiba Corp | 記憶装置 |
KR100885181B1 (ko) * | 2007-02-06 | 2009-02-23 | 삼성전자주식회사 | 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법 |
TWI338856B (en) * | 2007-03-09 | 2011-03-11 | Ite Tech Inc | A flash memory storing device and a data storing method thereof |
KR101447188B1 (ko) * | 2007-07-31 | 2014-10-08 | 삼성전자주식회사 | 플래시 메모리에 최적화된 입출력 제어 방법 및 장치 |
-
2008
- 2008-07-08 TW TW097125741A patent/TWI398770B/zh active
- 2008-11-25 US US12/277,566 patent/US8386698B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080126796A1 (en) * | 2001-12-28 | 2008-05-29 | Kabushiki Kaisha Toshiba | Node device and communication control method for improving security of packet communications |
US20050030791A1 (en) * | 2003-08-04 | 2005-02-10 | Phison Electronics Corp. | Method writing data to a large block of a flash memory cell |
WO2007081598A2 (en) * | 2005-10-27 | 2007-07-19 | Sandisk Corporation | Adaptive handling data writes in non-volatile memories |
US20080091901A1 (en) * | 2006-10-12 | 2008-04-17 | Alan David Bennett | Method for non-volatile memory with worst-case control data management |
Non-Patent Citations (1)
Title |
---|
Jesung Kim, Jong Min Kim, Sam H. Noh, Sang Lyul Min and Yookun Cho, "A SPACE-EFFICIENT FLASH TRANSLATION LAYER FOR COMPACTFLASH SYSTEMS," IEEE Transactions on Consumer Electronics, Vol. 48, No.2, MAY 2002 pp.366-375. * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI676105B (zh) * | 2018-02-02 | 2019-11-01 | 大陸商光寶電子(廣州)有限公司 | 運用dram的儲存裝置及其相關資料處理方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201003392A (en) | 2010-01-16 |
US8386698B2 (en) | 2013-02-26 |
US20100011154A1 (en) | 2010-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI398770B (zh) | 用於快閃記憶體的資料存取方法、儲存系統與控制器 | |
TWI385669B (zh) | 用於快閃記憶體的平均磨損方法、儲存系統與控制器 | |
TWI381274B (zh) | 用於快閃記憶體的區塊管理方法、儲存系統與控制器 | |
TWI385519B (zh) | 資料寫入方法及使用此方法的快閃儲存系統與其控制器 | |
TWI385667B (zh) | 用於快閃記憶體的資料管理方法、儲存系統與控制器 | |
US8291155B2 (en) | Data access method, memory controller and memory storage system | |
US8214578B2 (en) | Method of storing data into flash memory according to usage patterns of addresses and data storage system using the same | |
TWI386802B (zh) | 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統 | |
US8312554B2 (en) | Method of hiding file at data protecting mode for non-volatile memory module, memory controller and portable memory storage apparatus | |
US9582416B2 (en) | Data erasing method, memory control circuit unit and memory storage apparatus | |
TWI405209B (zh) | 資料管理方法及使用此方法的快閃儲存系統與控制器 | |
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
TWI537728B (zh) | 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
US20090307413A1 (en) | Data writing 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 | |
TW201007449A (en) | Flash memory storage system and data writing method thereof | |
CN101634967B (zh) | 用于闪存的区块管理方法、储存系统与控制器 | |
US20100042775A1 (en) | Block management method for flash memory, and storage system and controller using the same | |
TWI381393B (zh) | 區塊管理與更換方法、快閃記憶體儲存系統及其控制器 | |
US8037236B2 (en) | Flash memory writing method and storage system and controller using the same | |
TWI459198B (zh) | 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 | |
TWI417884B (zh) | 用於快閃記憶體的資料存取方法、儲存系統與控制器 | |
US20100318726A1 (en) | Memory system and memory system managing method | |
US20180232154A1 (en) | Append Only Streams For Storing Data On A Solid State Device |