TWI385519B - 資料寫入方法及使用此方法的快閃儲存系統與其控制器 - Google Patents
資料寫入方法及使用此方法的快閃儲存系統與其控制器 Download PDFInfo
- Publication number
- TWI385519B TWI385519B TW097114252A TW97114252A TWI385519B TW I385519 B TWI385519 B TW I385519B TW 097114252 A TW097114252 A TW 097114252A TW 97114252 A TW97114252 A TW 97114252A TW I385519 B TWI385519 B TW I385519B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- block
- flash memory
- logical block
- physical
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
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)
- Read Only Memory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本發明是有關於一種資料寫入方法,且特別是有關於一種用於快閃記憶體的資料寫入方法及使用此方法的快閃儲存系統與其控制器。
數位相機、手機相機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於快閃記憶體(Flash Memory)具有資料非揮發性、省電、體積小與無機械結構等的特性,適合可攜式應用,最適合使用於這類可攜式由電池供電的產品上。記憶卡就是一種以反及(NAND)快閃記憶體作為儲存媒體的儲存裝置。由於記憶卡體積小容量大且攜帶方便,所以已廣泛用於個人重要資料的儲存。因此,近年快閃記憶體產業成為電子產業中相當熱門的一環。
一般來說,快閃記憶體程式化(program)的單位(例如頁)會小於抹除(erase)的單位(例如區塊),因此當寫入更新資料至快閃記憶體時需要進行有效資料的搬移。由於快閃記憶體製程上的進步且為了滿足儲存媒體大容量的趨勢,每個程式化單位與抹除單位的設計容量會越來越大,而此將造成需要更多的時間來搬移抹除單位內的有效資料。然而,此類大容量抹除單位的快閃記憶體往往因為過長的區塊搬移時間而使得資料寫入指令的回應時間會超
過一些目前最新快閃儲存系統(例如固態硬碟(Solid State Drive, SSD))的規格,因此造成無法使用此類具大容量抹除單位的快閃記憶體。基此,有需要縮短快閃儲存系統在每個資料寫入指令下的回覆時間。
本發明提供一種資料寫入方法,其能夠縮短在寫入資料至快閃記憶體時的回覆時間以防止逾時的問題。
本發明提供一種快閃儲存系統,其所使用的資料寫入步驟能夠縮短在寫入資料至快閃記憶體時的回覆時間以防止逾時的問題。
本發明提供一種控制器,其對快閃記憶體所執行的資料寫入步驟能夠縮短在寫入資料至快閃記憶體時的回覆時間以防止逾時的問題。
本發明提出一種資料寫入方法,其適用於主機(Host)寫入資料至快閃儲存系統的快閃記憶體,其中此快閃記憶體會被劃分為多個實體區塊以輪替地對映此快閃儲存系統提供主機存取的多個邏輯區塊,此資料寫入方法包括將快閃記憶體的實體區塊邏輯地分組為資料區、備用區與特殊區,並且依據從主機中接收的資料寫入指令來判斷主機欲寫入至邏輯區塊的更新資料是否為單一存取單位,其中倘若此更新資料為單一存取單位時則將此更新資料寫入至特殊區的對應實體區塊中。
在本發明之一實施例中,上述之資料寫入方法更包括
從備用區中提取實體區塊以作為此更新資料所對映的邏輯區塊的新對映實體區塊並且將資料區中對映此邏輯區塊的有效舊資料和特殊區中對映此邏輯區塊的更新資料搬移至所提取的實體區塊中,其中在主機每次執行資料寫入指令時僅搬移對映該邏輯區塊的有效舊資料與更新資料的一部分,並且上述之資料寫入方法也包括當完成對映此邏輯區塊的有效舊資料與更新資料的搬移時,將對映此邏輯區塊的更新資料從特殊區的實體區塊中抹除。
在本發明之一實施例中,上述之資料寫入方法更包括判斷特殊區的實體區塊中是否存有對映相同邏輯區塊的多筆更新資料。上述之資料寫入方法也包括倘若特殊區的實體區塊中存有對映相同邏輯區塊的多筆更新資料時,則從備用區中提取實體區塊以作為此相同邏輯區塊的新對映實體區塊並且將資料區中對映此相同邏輯區塊的有效舊資料和特殊區中對映此相同邏輯區塊的多筆更新資料搬移至所提取的實體區塊中,其中在主機每次執行資料寫入指令時僅搬移對映此相同邏輯區塊的有效舊資料與更新資料的一部分,並且上述之資料寫入方法還包括當完成對映此相同邏輯區塊的有效舊資料與更新資料的搬移時,將對映此相同邏輯區塊的多筆更新資料從特殊區的實體區塊中抹除。
在本發明之一實施例中,其中寫入上述之更新資料至特殊區域的實體區塊中的步驟更包括在快閃記憶體為多層記憶胞(Multi Level Cell, MLC)NAND快閃記憶體時僅使用特殊區域的實體區塊的下頁來寫入此更新資料。
在本發明之一實施例中,上述之單一存取單位為一扇區。
在本發明之一實施例中,上述之資料寫入方法更包括在一有效資料對映表中記錄邏輯區塊與特殊區的對應實體區塊之間的對映關係,其中此對映關係為多個邏輯區塊對映一個實體區塊。
在本發明之一實施例中,上述之資料寫入方法更包括從該邏輯區塊的起始位址開始搬移或從該邏輯區塊的一特定位址開始搬移。
本發明提出一種控制器,其適用於具有快閃記憶體的快閃儲存系統,其中此快閃記憶體會被劃分為多個實體區塊以輪替地對映快閃儲存系統提供主機存取的多個邏輯區塊,此控制器包括微處理器、緩衝記憶體、快閃記憶體介面與記憶體管理模組。微處理器用以接收主機的資料寫入指令。緩衝記憶體耦接至微處理器用以暫時地儲存資料。快閃記憶體介面耦接至微處理器且用以存取快閃記憶體。記憶體管理模組耦接至微處理器且用以執行多個資料寫入步驟,此資料寫入步驟包括將快閃記憶體的實體區塊邏輯地分組為資料區、備用區與特殊區,並且依據資料寫入指令來判斷主機欲寫入至邏輯區塊的更新資料是否為單一存取單位,其中倘若此更新資料為單一存取單位時則將此更新資料透過快閃記憶體介面寫入至特殊區的對應實體區塊中。
在本發明之一實施例中,上述之資料寫入步驟更包括
從備用區中提取實體區塊以作為此更新資料所對映的邏輯區塊的新對映實體區塊並且將資料區中對映此邏輯區塊的有效舊資料和特殊區中對映此邏輯區塊的更新資料搬移至所提取的實體區塊中,其中在主機每次執行資料寫入指令時僅搬移對映該邏輯區塊的有效舊資料與更新資料的一部分,並且上述之資料寫入步驟也包括當完成對映此邏輯區塊的有效舊資料與更新資料的搬移時,將對映此邏輯區塊的更新資料從特殊區的實體區塊中抹除。
在本發明之一實施例中,上述之資料寫入步驟更包括判斷特殊區的實體區塊中是否存有對映相同邏輯區塊的多筆更新資料。上述之資料寫入步驟也包括倘若特殊區的實體區塊中存有對映相同邏輯區塊的多筆更新資料時,則從備用區中提取實體區塊以作為此相同邏輯區塊的新對映實體區塊並且將資料區中對映此相同邏輯區塊的有效舊資料和特殊區中對映此相同邏輯區塊的多筆更新資料搬移至所提取的實體區塊中,其中在主機每次執行資料寫入指令時僅搬移對映此相同邏輯區塊的有效舊資料與更新資料的一部分,並且上述之資料寫入步驟還包括當完成對映此相同邏輯區塊的有效舊資料與更新資料的搬移時,將對映此相同邏輯區塊的多筆更新資料從特殊區的實體區塊中抹除。
在本發明之一實施例中,上述之快閃記憶體為單層記憶胞(Single Level Cell, SLC)NAND快閃記憶體或多層記憶胞(Multi Level Cell, MLC)NAND快閃記憶體。
在本發明之一實施例中,上述之資料寫入步驟更包括
在快閃記憶體為MLC NAND快閃記憶體時僅使用特殊區的實體區塊的下頁來寫入上述之更新資料。
在本發明之一實施例中,上述之快閃記憶體快閃儲存系統為隨身碟、記憶卡或固態硬碟。
在本發明之一實施例中,上述之資料寫入步驟更包括在一有效資料對映表中記錄邏輯區塊與特殊區的對應實體區塊之間的對映關係,其中此對映關係為多個邏輯區塊對映一個實體區塊。
在本發明之一實施例中,上述之資料寫入步驟更包括從該邏輯區塊的起始位址開始搬移或從該邏輯區塊的一特定位址開始搬移。
本發明提出一種快閃儲存系統,其包括匯流排連接介面、快閃記憶體與控制器。匯流排連接介面用以連接主機。快閃記憶體具有多個實體區塊以輪替地對映提供主機存取的多個邏輯區塊。控制器耦接至匯流排連接介面與快閃記憶體並且用以執行多個資料寫入步驟,此資料寫入步驟包括將快閃記憶體的實體區塊邏輯地分組為資料區、備用區與特殊區,並且依據從主機中接收的資料寫入指令來判斷主機欲寫入至邏輯區塊的更新資料是否為單一存取單位,其中倘若此更新資料為單一存取單位時則將此更新資料寫入至特殊區的對應實體區塊中。
在本發明之一實施例中,上述之資料寫入步驟更包括從備用區中提取實體區塊以作為此更新資料所對映的邏輯區塊的新對映實體區塊並且將資料區中對映此邏輯區塊的
有效舊資料和特殊區中對映此邏輯區塊的更新資料搬移至所提取的實體區塊中,其中在主機每次執行資料寫入指令時僅搬移對映該邏輯區塊的有效舊資料與更新資料的一部分,並且上述之資料寫入步驟也包括當完成對映此邏輯區塊的有效舊資料與更新資料的搬移時,將對映此邏輯區塊的更新資料從特殊區的實體區塊中抹除。
在本發明之一實施例中,上述之資料寫入步驟更包括判斷特殊區的實體區塊中是否存有對映相同邏輯區塊的多筆更新資料。上述之資料寫入步驟也包括倘若特殊區的實體區塊中存有對映相同邏輯區塊的多筆更新資料時,則從備用區中提取實體區塊以作為此相同邏輯區塊的新對映實體區塊並且將資料區中對映此相同邏輯區塊的有效舊資料和特殊區中對映此相同邏輯區塊的多筆更新資料搬移至所提取的實體區塊中,其中在主機每次執行資料寫入指令時僅搬移對映此相同邏輯區塊的有效舊資料與更新資料的一部分,並且上述之資料寫入步驟還包括當完成對映此相同邏輯區塊的有效舊資料與更新資料的搬移時,將對映此相同邏輯區塊的多筆更新資料從特殊區的實體區塊中抹除。
在本發明之一實施例中,上述之快閃記憶體為SLC NAND快閃記憶體或MLC NAND快閃記憶體。
在本發明之一實施例中,上述之資料寫入步驟更包括在快閃記憶體為MLC NAND快閃記憶體時僅使用特殊區的實體區塊的下頁來寫入上述之更新資料。
在本發明之一實施例中,上述之匯流排連接介面為
PCI Express介面、USB介面、IEEE 1394介面、SATA介面、MS介面、MMC介面、SD介面、CF介面或IDE介面。
在本發明之一實施例中,上述之資料寫入步驟更包括在一有效資料對映表中記錄邏輯區塊與特殊區的對應實體區塊之間的對映關係,其中此對映關係為多個邏輯區塊對映一個實體區塊。
在本發明之一實施例中,上述之資料寫入步驟更包括從該邏輯區塊的起始位址開始搬移或從該邏輯區塊的一特定位址開始搬移。
本發明因採用特殊區來暫時地寫入屬於單一存取單位的更新資料,並且以分次方式來搬移實體區塊內有效資料,因此可縮短每一寫入資料指令下回覆快閃儲存系統的時間,由此防止在使用大容量抹除單位的快閃記憶體的儲存系統中可能發生的逾時問題。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉較佳實施例,並配合所附圖式,作詳細說明如下。
本發明所提出用於快閃記憶體的資料寫入方法是在當主機下達寫入資料指令時,將資料長度為單一存取單位的更新資料先寫入至於快閃記憶體所設計的特殊實體區塊中,並且在每個資料寫入指令期間針對欲寫入更新資料的邏輯區塊所對映的實體區塊僅進行一部分有效資料的搬移。也就是說,在欲被更新資料的邏輯區塊所對映的實體
區塊中有效資料的搬移動作會被分散在多次資料寫入指令中進行,由此縮短快閃儲存系統於每次資料寫入指令的回覆時間。以下將以範例實施例並配合圖式詳細說明本發明。
圖1是根據本發明第一實施例繪示快閃儲存系統的概要方塊圖。請參照圖1,快閃儲存系統100包括控制器110、匯流排連接介面120以及快閃記憶體130。通常快閃儲存系統100會與主機200一起使用,以使主機200可將資料寫入至快閃儲存系統100或從快閃儲存系統100中讀取資料。在本實施例中,快閃儲存系統100為固態硬碟(Solid State Drive, SSD)。但必須瞭解的是,在本發明另一實施例中快閃儲存系統100亦可以是記憶卡或隨身碟。
控制器110會協調匯流排連接介面120以及快閃記憶體130的整體運作,例如資料的寫入、讀取與抹除等。控制器110包括微處理器110a、快閃記憶體介面110b、緩衝記憶體110c與記憶體管理模組110d。
微處理器110a會協調控制快閃記憶體介面110b、緩衝記憶體110c與記憶體管理模組110d,以進行對快閃記憶體130的寫入、讀取與抹除等運作。具體來說,微處理器會下達資料寫入指令、資料讀取指令等來協調快閃記憶體介面110b、緩衝記憶體110c與記憶體管理模組110d來執行寫入、讀取與抹除等運作。
快閃記憶體介面110b是電性連接至微處理器110a並
且用以存取快閃記憶體130。也就是,主機200欲寫入至快閃記憶體130的資料會經由快閃記憶體介面110b轉換為快閃記憶體130所能接受的格式。
緩衝記憶體110c是電性連接至微處理器110a,並且用以暫時地快閃儲存系統性資料(例如邏輯區塊與實體區塊的對映表)或者主機200所讀取或寫入的資料。在本實施例中,緩衝記憶體110c為靜態隨機存取記憶體(static random access memory, SRAM)。然而,必須瞭解的是,本發明不限於此,動態隨機存取記憶體(Dynamic Random Access memory, DRAM)、磁阻式記憶體(Magnetoresistive Random Access Memory, MRAM)、相變化記憶體(Phase Change Random Access Memory, PRAM)或其他適合的記憶體亦可應用於本發明。
記憶體管理模組110d是電性連接至微處理器110a。記憶體管理模組110d會依據微處理器110a下達的指令來管理快閃記憶體130,例如執行平均磨損(wear leveling)方法、壞區塊管理、維護對映表(mapping table)等。特別是,在本發明實施例中,記憶體管理模組110d會執行根據本發明實施例的資料寫入步驟(如圖3所示)。值得一提的是,本實施例中是以一硬體方式來實現記憶體管理模組110d,然而其亦可以一韌體方式來實現。
此外,雖未繪示於本實施例,但控制器110可更包括一般快閃記憶體控制器常見的功能模組,例如錯誤校正模組、電源管理模組等。
匯流排連接介面120用以透過匯流排300連接主機200。在本實施例中,匯流排連接介面120為PCI Express介面。然而,必須瞭解的是本發明不限於此,匯流排連接介面120亦可以是USB介面、IEEE 1394介面、SATA介面、MS介面、MMC介面、SD介面、CF介面、IDE介面或其他適合的資料傳輸介面。
快閃記憶體130是耦接控制器110並且用以儲存資料。在本實施中快閃記憶體130為多層記憶胞(Multi Level Cell, MLC)反及(NAND)快閃記憶體。然而,必須瞭解的是,本發明不限於此。在本發明另一實施例中,單層記憶胞(Single Level Cell, SLC)NAND快閃記憶體亦可應用於本發明。
快閃記憶體130通常會被分割為多個實體區塊(physical block)130-0至130-N。一般而言,在快閃記憶體中實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。每一實體區塊通常會分割為數個頁(page)。在本實施例中,快閃記憶體130的頁為8千位元組。然而,本發明不限於此,本發明亦可應用於以4千位元組為一個頁或以其他單位為一個頁的快閃記憶體。
一般而言,實體區塊可由任意數目的頁所組成,例如64頁、128頁、256頁等。實體區塊130-0至130-N通常也可被分組為數個區域(zone),以區域來管理記憶體某種程度上是彼此獨立地操作以增加操作執行的平行程度且
簡化管理的複雜度。
為對應於磁碟驅動器的扇區(sector)大小,一般而言,一頁為一個扇區。然而,亦可以多個扇區形成一頁,例如一頁包括4個扇區。在本實施例中,快閃記憶體130的一個頁中會包含多個扇區(例如4個扇區)。在本實施例中,快閃記憶體130是以一個扇區為程式化的最小單位。然而,本發明不限於此,本發明亦可應用於以頁作為程式化的最小單元的快閃儲存系統。
以下將根據本發明並配合圖式詳細說明快閃記憶體的運作。必須瞭解的是,在以下描述中使用“提取”、“搬移”、“交換”等詞來操作快閃記憶體區塊是邏輯上的概念。也就是說,快閃記憶體區塊的實際位置並未更動,而是邏輯上對快閃記憶體區塊進行操作。
圖2是根據本發明第一實施例繪示快閃記憶體130及其運作的概要圖。
請參照圖2,在本發明實施例中,為了有效率地寫入與抹除快閃記憶體130,快閃記憶體130的實體區塊130-1至130-N會在邏輯上分組為一資料區204、一備用區206與一特殊區202。一般來說,快閃記憶體130中屬於資料區204的實體區塊會佔90%以上。
資料區204中的實體區塊用以儲存資料,一般來說就是主機200所操作之邏輯區塊所對應的區塊。具體來說,快閃儲存系統100會提供邏輯區塊給主機200作為存取的位址,而輪替至資料區204的實體區塊會對映特定的邏輯
區塊,以提供資料的實際存取。
備用區206中的實體區塊是用以替換資料區204中的區塊,因此在備用區206中的區塊為空或可使用的區塊,即無記錄資料或標記為已沒用的無效資料。具體來說,由於若要對已寫過資料位置再次寫入資料時,必須先執行抹除的動作。然而,如前所述快閃記憶體寫入單位為頁,而抹除單位為區塊。一個抹除的單位大於寫入的單位,這表示若要執行區塊抹除動作,必須先將欲抹除區塊中的有效頁複製至其它區塊後才可進行。因此,當欲在資料區204中已寫過資料位置的實體區塊M中寫入新資料時,一般會在備用區206中提取一實體區塊S,然後將實體區塊M中的有效舊資料複製至實體區塊S且將新資料寫入實體區塊S後,將實體區塊M抹除後搬移至備用區206同時將實體區塊S搬移至資料區204。必須瞭解的是,將實體區塊M抹除後搬移至備用區206同時將實體區塊S搬移至資料區204是邏輯上將實體區塊M搬移至備用區206而將實體區塊S搬移至資料區204。其中此領域具一般技藝者皆能瞭解資料區204中實體區塊的邏輯關係可由邏輯實體區塊對映表來維護。
特殊區202中的實體區塊是用以暫時地儲存主機200欲寫入至快閃記憶體130的資料,特別是僅暫時地寫入資料長度為單一存取單位的資料,在本實施例中存取單位為上述的扇區。具體來說,如上所述由於根據本發明實施例的快閃記憶體130的實體區塊的頁可儲存空間較大(如上
所述8千位元組),因此進行上述搬移實體區塊M內有效的資料至實體區塊S時,需要花費較長的時間而可能造成無法於快閃儲存系統100規格所訂定的預定時間內回覆完成資料寫入指令,亦即發生逾時(timeout)的情形。因此,在本實施例中會先將資料長度為單一存取單位的更新資料先寫入至特殊區202的實體區塊中,以縮短回覆時間而避免逾時。特殊區202中的實體區塊的運作方式將配合圖3所示的資料寫入步驟來詳細說明。
圖3是根據本發明第一實施例繪示資料寫入步驟的流程圖。圖4是根據圖3繪示的資料寫入範例,其中圖4的(a)、(b)與(c)分別代表一個資料寫入指令期間的動作。在圖4所示的範例中在此假設特殊區202中包含3個實體區塊S0、S1與S2,此外快閃儲存系統100提供給主機200存取的邏輯區塊為邏輯區塊LB0~LB59。
值得一提的是,當更新資料長度不是單一存取單位(即多存取單位)時,一般來說更新資料的寫入會依據存取單位分為多段(即控制器110會依據存取單位分次將資料寫入至快閃記憶體130),因此搬移原先實體區塊內有效資料的動作(如圖2所述)可分散在多次寫入資料中進行,所以對於資料長度為多存取單位的更新資料的寫入來說不會有系統逾時的問題。基此,在下述描述中僅說明更新資料的長度為單一存取單位的處理方式。
請參照圖3與4,在步驟301中微處理器110a會從主機200中接收到資料寫入指令,其中微處理器110a會將此
資料寫入指令內的資訊提供給記憶體管理模組110d。在步驟303中,記憶體管理模組110d會根據資料寫入指令內的資訊判斷主機200欲寫入至邏輯區塊的更新資料的長度是否為單一存取單位。倘若在步驟S303中判斷欲寫入的更新資料的長度為單一存取單位時,則在步驟S305中會將此更新資料寫入至特殊區202中的對應實體區塊中。例如,當更新資料為屬於邏輯區塊LB0~LB19的資料時,則此更新資料會寫入至特殊區202的實體區塊S0中,當更新資料為屬於邏輯區塊LB20~LB39的資料時,則此更新資料會寫入至特殊區202的實體區塊S1中並且當更新資料為屬於邏輯區塊LB40~LB59的資料時,則此更新資料會寫入至特殊區202的實體區塊S2中。基此,如圖4(a)所示的範例屬於邏輯區塊LB0的資料會暫時地寫入至特殊區202的實體區塊S0中。
之後,在步驟S307中記憶體管理模組110d會判斷快閃儲存系統100中是否存有僅完成搬移部分有效資料的邏輯區塊。也就是說,在步驟S307中會判斷是否有等待完成剩餘有效資料搬移的邏輯區塊。
倘若在步驟S307中判斷無存有僅完成搬移部分有效資料的邏輯區塊時,則在步驟S309中會判斷特殊區202是否儲存有更新資料。
倘若在步驟S309中判斷特殊區202中儲存有更新資料時,則在步驟S311中會進行此更新資料所屬邏輯區塊的有效資料搬移動作,其中僅搬移此邏輯區塊中部分的有
效資料(例如一半的有效資料)。
例如,假設之前並無存有未完成有效資料搬移的邏輯區塊且特殊區202中目前僅有屬於邏輯區塊LB0的更新資料,因此記憶體管理模組110d會對邏輯區塊LB0進行有效資料的搬移動作,其中僅搬移一半的有效資料(如圖4的(a)所示)。
倘若在步驟S307中判斷存有僅完成搬移部分有效資料的邏輯區塊時,則在步驟S313中會對此僅完成搬移部分有效資料的邏輯區塊進行剩餘有效資料的搬移動作,由此完成此邏輯區塊的所有有效資料的搬移動作。接著,在步驟S315中會將特殊區202中已完成搬移的更新資料抹除。
例如,以圖4之(b)的範例所示,當在後續的資料寫入指令中屬於邏輯區塊LB20的更新資料寫入至特殊區202的實體區塊S1中時,由於邏輯區塊LB0的有效資料搬移未完成,因此會對邏輯區塊LB0進行剩餘有效資料的搬移動作。之後,當再進行資料寫入指令且寫入屬於單一存取單位的更新資料(例如屬於邏輯區塊LB45的資料)時(如圖4的(c)所示),則會再對邏輯區塊LB20進行有效資料的搬移動作。換言之,邏輯區塊的有效資料搬移在每一次資料寫入指令中僅會對一個邏輯區塊中的部分有效資料作搬移。
在本發明實施例中,是以循序方式挑選特殊區202內的更新資料來進行其所屬邏輯區塊的有效資料搬移。然
而,在本發明另一實施例中亦可選擇特殊區202中已儲存最多筆更新資料的實體區塊內的更新資料來進行其所屬邏輯區塊的有效資料搬移。亦或對特殊區202中,具有最多筆更新資料所屬的邏輯區塊中的有效資料搬移。此外,該資料可由該邏輯區塊的起始位址開始,或該邏輯區塊的某一特定位址開始搬移,例如從邏輯區塊的中間頁開啟搬移。
值得一提的是,上述更新資料所屬邏輯區塊的有效資料搬移是搬移其所屬邏輯區塊所對映的實體區塊中的有效資料。例如,是從備用區206中提取一實體區塊以作為此更新資料所對映的邏輯區塊的新對映實體區塊(如圖2所示),並且將原先在資料區204中對映此邏輯區塊的有效舊資料和特殊區202中對映此邏輯區塊的更新資料搬移至從備用區206中所提取的實體區塊內,其中在每次執行資料寫入指令時僅搬移對映該邏輯區塊的有效舊資料與更新資料的其中一部分。其中,該資料可由該邏輯區塊的起始位址開始搬移,或該邏輯區塊的某一特定位址開始搬移,例如從邏輯區塊的中間頁開啟搬移。類似地,特殊區202的實體區塊的抹除作業亦會進行如圖2所示的搬移,在此不再重複描述。
此外,本發明實施例中快閃記憶體130為MLC NAND快閃記憶體,而MLC NAND快閃記憶體之區塊的程式化可分為多階段。例如,以4層記憶胞為例,區塊的程式化可分為2階段,第一階段是下頁(lower page)的寫入部分,其物理特性類似於SLC NAND快閃記憶體,在完成第一階
段之後才程式化上頁(upper page),其中程式化的過程中下頁的寫入速度會快於上頁。因此,每一區塊的頁可區分為上頁與下頁。特別是,上頁與下頁具有耦合關係。也就是說,在程式上頁時,若發生異常,可能造成所對應下頁的不穩定(即資料可能遺失)。這也是MLC NAND快閃記憶體的可靠度低於SLC NAND快閃記憶體的原因。類似地,在8層記憶胞或16層記憶胞的案例中,記憶胞會包括更多個頁並且會以更多階段來寫入。在此,將寫入速度最快的頁面稱為下頁,其他寫入速度較慢的頁面統稱為上頁。例如,上頁包括具有不同寫入速度的多個頁。基此,在本發明另一實施例中,上述的資料寫入步驟更包括僅使用特殊區的實體區塊的下頁來寫入上述資料長度為單一存取單位的更新資料。
另外,由於在本實施例中以特殊區202的實體區塊來記錄多個邏輯區塊的有效資料,因此在本發明另一實施例中,資料寫入步驟更包括在一有效資料對映表中記錄多個邏輯區塊與特殊區內的特定實體區塊之間的對映關係,其中此對映關係為多個邏輯區塊對映一個實體區塊。
在本實施例中,是分兩階段的搬移動作將邏輯區塊的有效資料進行搬移。然而,本發明不限於此,當每一邏輯區塊(或實體區塊)可儲存的資料量愈大時可區分更多次來進行搬移,以避免上述逾時的問題。
本發明第一實施例是在特殊區的實體區塊中存有更新資料時立刻開始進行此更新資料所屬邏輯區塊的有效資料搬移動作。然而,本發明亦可應用於在特殊區的實體區塊中存有多筆屬於相同邏輯區塊的更新資料時,才開始進行此相同邏輯區塊的有效資料搬移動作。在本實施例中將以特殊區的實體區塊中存有2筆屬於相同邏輯區塊的更新資料為例進行說明。
本發明第二實施例的硬體架構是相同於第一實施例(如圖1與圖2所示),在此不再重複說明。第二實施例與第一實施例所不同的之處在於第二實施例所執行的資料寫入步驟會在判斷特殊區202的實體區塊中存有2筆屬於相同邏輯區塊的更新資料時進行此更新資料所屬邏輯區塊的有效資料搬移。
圖5是根據本發明第二實施例繪示資料寫入步驟的流程圖。圖6是根據圖5繪示的資料寫入範例,其中圖6的(a)表示目前特殊區202所儲存的資料狀態,圖6的(b)與(c)分別代表一個資料寫入指令期間的動作。在圖6所示的範例中類似圖4所示的範例,假設特殊區202中包含3個實體區塊S0、S1與S2,此外快閃儲存系統100提供給主機200存取的邏輯區塊為邏輯區塊LB0~LB59。
類似地前述,本實施例僅說明更新資料的長度為單一存取單位的處理方式。
請參照圖5與6,在步驟501中微處理器110a會從主機200中接收到資料寫入指令,其中微處理器110a會將此
資料寫入指令內的資訊提供給記憶體管理模組110d。在步驟503中,記憶體管理模組110d會根據資料寫入指令內的資訊判斷主機200欲寫入邏輯區塊的更新資料的長度是否為單一存取單位。倘若在步驟S503中判斷欲寫入的更新資料的長度為單一存取單位時,則在步驟S505中會將此更新資料寫入至特殊區202中的對應實體區塊中。例如,當更新資料為屬於邏輯區塊LB0~LB19的資料時,則此更新資料會記錄在特殊區202的實體區塊S0中,當更新資料為屬於邏輯區塊LB20~LB39的資料時,則此更新資料會記錄在特殊區202的實體區塊S1中並且當更新資料為屬於邏輯區塊LB40~LB59的資料時,則此更新資料會記錄在特殊區202的實體區塊S2中。
請參照圖6所示的範例,假設屬於邏輯區塊LB0、LB1、LB20、LB22與LB45的更新資料已分別地寫入至特殊區202的實體區塊S0、S1與S2中(如圖6的(a)所示)。之後,如圖6的(b)所示,屬於邏輯區塊LB1的資料會暫時地寫入至特殊區202的實體區塊S0中。
之後,在步驟S507中記憶體管理模組110d會判斷快閃儲存系統100中是否存有僅完成搬移部分有效資料的邏輯區塊。
倘若在步驟S507中判斷無存有僅完成搬移部分有效資料的邏輯區塊時,則在步驟S509中會判斷特殊區202是否儲存有2筆屬於同一邏輯區塊的更新資料。
倘若在步驟S509中判斷特殊區202中儲存有2筆屬
於同一邏輯區塊的更新資料時,則在步驟S511中會進行此更新資料所屬邏輯區塊的有效資料搬移動作,其中僅搬移此邏輯區塊中部分的有效資料(例如一半的有效資料)。
例如,以圖6的(b)所示,特殊區202中存有屬於邏輯區塊LB1的2筆更新資料。因此,記憶體管理模組110d會對邏輯區塊LB1進行有效資料的搬移動作,其中僅搬移一半的有效資料。
倘若在步驟S507中判斷存有僅完成搬移部分有效資料的邏輯區塊時,則在步驟S513中會對此僅完成搬移部分有效資料的邏輯區塊進行剩餘有效資料的搬移動作,由此完成此邏輯區塊的所有有效資料的搬移動作。接著,在步驟S515中會將特殊區202中所儲存的此更新資料抹除。
例如以圖6的(c)所示,當在後續的資料寫入指令中屬於邏輯區塊LB22的更新資料寫入至特殊區202的實體區塊S1中時,由於邏輯區塊LB1的有效資料搬移未完成,因此會對邏輯區塊LB0進行剩餘有效資料的搬移動作。之後,當再進行資料寫入且寫入屬於單一存取單位的更新資料時,則會再對邏輯區塊LB22進行有效資料的搬移動作。換言之,邏輯區塊的有效資料搬移在每一次資料寫入指令中僅會對一個邏輯區塊中的部分資料作搬移。其中,該資料可由該邏輯區塊的起始位址開始搬移,或該邏輯區塊的某一特定位址開始搬移,例如從邏輯區塊的中間頁開啟搬移。
類似前述,更新資料所屬邏輯區塊的有效資料搬移以
及特殊區202中實體區塊的抹除的運作方式是相同於第一實施例在此不再重複說明。
在本發明實施例中,是以循序方式挑選特殊區202內的已儲存屬於同一邏輯區塊的2筆更新資料來進行其所屬邏輯區塊的有效資料搬移。然而,在本發明另一實施例中亦可選擇特殊區202內已儲存最多筆更新資料的實體區塊內所儲存屬於同一邏輯區塊的2筆更新資料來進行其所屬邏輯區塊的有效資料搬移。此外,本實施例雖然是對已寫入2筆更新資料的邏輯區塊來進行有效資料搬移,然而本發明不限於此,使用者可依照本發明的精神以已寫入屬於同一邏輯區塊的3筆或3筆以上的更新資料作為搬移有效資料的依據。
綜上所述,本發明實施例的資料寫入步驟在當更新資料的資料長度為單一存取單位時會將此更新資料直接寫入至特殊區202中的實體區塊,並且本發明實施例的資料寫入步驟僅會對邏輯區塊的部分有效資料進行搬移動作,因此快閃儲存系統100可快速完成資料寫入動作並於預定時間內回覆而不會造成逾時的問題。基此,透過本發明實施例所提出的資料寫入步驟可在不會發生上述逾時的問題之下將以大容量頁設計的快閃記憶體應用於快閃儲存系統中以滿足大儲存容量的需求。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,
因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100‧‧‧快閃儲存系統
110‧‧‧控制器
110a‧‧‧微處理器
110b‧‧‧快閃記憶體介面
110c‧‧‧緩衝記憶體
110d‧‧‧記憶體管理模組
120‧‧‧匯流排連接介面
130‧‧‧快閃記憶體
130-0、130-1、130-2、130-N‧‧‧實體區塊
200‧‧‧主機
202‧‧‧特殊區
204‧‧‧資料區
206‧‧‧備用區
300‧‧‧匯流排
S301、S303、S305、S307、S309、S311、S313、S315‧‧‧資料寫入步驟
S601、S603、S605、S607、S609、S611、S613、S615‧‧‧資料寫入步驟
S0、S1、S2‧‧‧實體區塊
LB0、LB1、LB20、LB22、LB45‧‧‧邏輯區塊
圖1是根據本發明第一實施例繪示快閃儲存系統的概要方塊圖。
圖2是根據本發明第一實施例繪示快閃記憶體及其運作的概要圖。
圖3是根據本發明第一實施例繪示資料寫入步驟的流程圖。
圖4是根據圖3繪示的資料寫入範例。
圖5是根據本發明第二實施例繪示資料寫入步驟的流程圖。
圖6是根據圖5繪示的資料寫入範例。
S301、S303、S305、S307、S309、S311、S313、S315‧‧‧資料寫入步驟
Claims (20)
- 一種資料寫入方法,其適用於一主機寫入資料至一快閃儲存系統的快閃記憶體,其中該快閃記憶體會被劃分為多個實體區塊以輪替地對映該快閃儲存系統提供該主機存取的多個邏輯區塊,該資料寫入方法包括:將該快閃記憶體的該些實體區塊邏輯地分組為一資料區、一備用區與一特殊區;依據從該主機中接收的一資料寫入指令來判斷該主機欲寫入至該些邏輯區塊的更新資料是否為一單一存取單位;倘若該更新資料為該單一存取單位時則將該更新資料寫入至該特殊區的對應實體區塊中;從該備用區中提取一實體區塊以作為該更新資料所對映的邏輯區塊的新對映實體區塊並且將該資料區中對映該邏輯區塊的有效舊資料和該特殊區中對映該邏輯區塊的更新資料搬移至所提取的實體區塊中,其中在該主機每次執行該資料寫入指令時僅搬移對映該邏輯區塊的有效舊資料與更新資料的一部分;以及當完成對映該邏輯區塊的有效舊資料與更新資料的搬移時,將對映該邏輯區塊的更新資料從該特殊區的實體區塊中抹除。
- 一種資料寫入方法,其適用於一主機寫入資料至一快閃儲存系統的快閃記憶體,其中該快閃記憶體會被劃分為多個實體區塊以輪替地對映該快閃儲存系統提供該主機 存取的多個邏輯區塊,該資料寫入方法包括:將該快閃記憶體的該些實體區塊邏輯地分組為一資料區、一備用區與一特殊區;依據從該主機中接收的一資料寫入指令來判斷該主機欲寫入至該些邏輯區塊的更新資料是否為一單一存取單位;倘若該更新資料為該單一存取單位時則將該更新資料寫入至該特殊區的對應實體區塊中;判斷該特殊區的實體區塊中是否存有對映相同邏輯區塊的多筆更新資料;倘若該特殊區的實體區塊中存有對映相同邏輯區塊的多筆更新資料時,則從該備用區中提取一實體區塊以作為該相同邏輯區塊的新對映實體區塊並且將該資料區中對映該相同邏輯區塊的有效舊資料和該特殊區中對映該相同邏輯區塊的多筆更新資料搬移至所提取的實體區塊中,其中在該主機每次執行該資料寫入指令時僅搬移對映該相同邏輯區塊的有效舊資料與更新資料的一部分;以及當完成對映該相同邏輯區塊的有效舊資料與更新資料的搬移時,將對映該相同邏輯區塊的多筆更新資料從該特殊區的實體區塊中抹除。
- 如申請專利範圍第1或2項所述之資料寫入方法,其中寫入該更新資料至該特殊區域的實體區塊中的步驟更包括:在該快閃記憶體為多層記憶胞(Multi Level Cell, MLC)NAND快閃記憶體時僅使用該特殊區域的實體區塊的下頁來寫入該更新資料。
- 如申請專利範圍第1或2項所述之資料寫入方法,其中該單一存取單位為一扇區。
- 如申請專利範圍第1或2項所述之資料寫入方法,更包括在一有效資料對映表中記錄該些邏輯區塊與該特殊區的對應實體區塊之間的對映關係,其中該對映關係為多個邏輯區塊對映一個實體區塊。
- 如申請專利範圍第1或2項所述之資料寫入方法,更包括從該邏輯區塊的起始位址開始搬移或從該邏輯區塊的一特定位址開始搬移。
- 一種控制器,其適用於具有快閃記憶體的快閃儲存系統,其中該快閃記憶體會被劃分為多個實體區塊以輪替地對映該快閃儲存系統提供一主機存取的多個邏輯區塊,該控制器包括:微處理器,用以接收一主機的一資料寫入指令;緩衝記憶體,耦接至該微處理器用以暫時地儲存資料;快閃記憶體介面,耦接至該微處理器,用以存取該快閃記憶體;以及記憶體管理模組,耦接至該微處理器,用以執行多個資料寫入步驟,該些資料寫入步驟包括:將該快閃記憶體的該些實體區塊邏輯地分組為一資料區、一備用區與一特殊區;依據該資料寫入指令來判斷該主機欲寫入至該些 邏輯區塊的更新資料是否為一單一存取單位;倘若該更新資料為該單一存取單位時則將該更新資料透過該快閃記憶體介面寫入至該特殊區的對應實體區塊中;從該備用區中提取一實體區塊以作為該更新資料所對映的邏輯區塊的新對映實體區塊並且將該資料區中對映該邏輯區塊的有效舊資料和該特殊區中對映該邏輯區塊的更新資料搬移至所提取的實體區塊中,其中在該主機每次執行該資料寫入指令時僅搬移對映該邏輯區塊的有效舊資料與更新資料的一部分;以及當完成對映該邏輯區塊的有效舊資料與更新資料的搬移時,將對映該邏輯區塊的更新資料從該特殊區的實體區塊中抹除。
- 一種控制器,其適用於具有快閃記憶體的快閃儲存系統,其中該快閃記憶體會被劃分為多個實體區塊以輪替地對映該快閃儲存系統提供一主機存取的多個邏輯區塊,該控制器包括:微處理器,用以接收一主機的一資料寫入指令;緩衝記憶體,耦接至該微處理器用以暫時地儲存資料;快閃記憶體介面,耦接至該微處理器,用以存取該快閃記憶體;以及記憶體管理模組,耦接至該微處理器,用以執行多個資料寫入步驟,該些資料寫入步驟包括:將該快閃記憶體的該些實體區塊邏輯地分組為一 資料區、一備用區與一特殊區;依據該資料寫入指令來判斷該主機欲寫入至該些邏輯區塊的更新資料是否為一單一存取單位;倘若該更新資料為該單一存取單位時則將該更新資料透過該快閃記憶體介面寫入至該特殊區的對應實體區塊中;判斷該特殊區的實體區塊中是否存有對映相同邏輯區塊的多筆更新資料;倘若該特殊區的實體區塊中存有對映相同邏輯區塊的多筆更新資料時,則從該備用區中提取一實體區塊以作為該相同邏輯區塊的新對映實體區塊並且將該資料區中對映該相同邏輯區塊的有效舊資料和該特殊區中對映該相同邏輯區塊的多筆更新資料搬移至所提取的實體區塊中,其中在該主機每次執行該資料寫入指令時僅搬移對映該相同邏輯區塊的有效舊資料與更新資料的一部分;以及當完成對映該相同邏輯區塊的有效舊資料與更新資料的搬移時,將對映該相同邏輯區塊的多筆更新資料從該特殊區的實體區塊中抹除。
- 如申請專利範圍第7或8項所述之控制器,其中該快閃記憶體為單層記憶胞(Single Level Cell,SLC)NAND快閃記憶體或多層記憶胞(Multi Level Cell,MLC)NAND快閃記憶體。
- 如申請專利範圍第7或8項所述之控制器,其中該些資料寫入步驟更包括: 在該快閃記憶體為該MLC NAND快閃記憶體時僅使用該特殊區的實體區塊的下頁來寫入該更新資料。
- 如申請專利範圍第7或8項所述之控制器,其中該快閃記憶體快閃儲存系統為隨身碟、記憶卡或固態硬碟。
- 如申請專利範圍第7或8項所述之控制器,其中該些資料寫入步驟更包括在一有效資料對映表中記錄該些邏輯區塊與該特殊區的對應實體區塊之間的對映關係,其中該對映關係為多個邏輯區塊對映一個實體區塊。
- 如申請專利範圍第7或8項所述之控制器,其中該些資料寫入步驟更包括從該邏輯區塊的起始位址開始搬移或從該邏輯區塊的一特定位址開始搬移。
- 一種快閃儲存系統,包括:匯流排連接介面,用以連接一主機;快閃記憶體,具有多個實體區塊以輪替地對映提供該主機存取的多個邏輯區塊;以及控制器,耦接至該匯流排連接介面與該快閃記憶體並且用以執行多個資料寫入步驟,該些資料寫入步驟包括:將該快閃記憶體的該些實體區塊邏輯地分組為一資料區、一備用區與一特殊區;依據從該主機中接收的一資料寫入指令來判斷該主機欲寫入至該些邏輯區塊的更新資料是否為一單一存取單位;倘若該更新資料為該單一存取單位時則將該更新資料寫入至該特殊區的對應實體區塊中; 從該備用區中提取一實體區塊以作為該更新資料所對映的邏輯區塊的新對映實體區塊並且將該資料區中對映該邏輯區塊的有效舊資料和該特殊區中對映該邏輯區塊的更新資料搬移至所提取的實體區塊中,其中在該主機每次執行該資料寫入指令時僅搬移對映該邏輯區塊的有效舊資料與更新資料的一部分;以及當完成對映該邏輯區塊的有效舊資料與更新資料的搬移時,將對映該邏輯區塊的更新資料從該特殊區的實體區塊中抹除。
- 一種快閃儲存系統,包括:匯流排連接介面,用以連接一主機;快閃記憶體,具有多個實體區塊以輪替地對映提供該主機存取的多個邏輯區塊;以及控制器,耦接至該匯流排連接介面與該快閃記憶體並且用以執行多個資料寫入步驟,該些資料寫入步驟包括:將該快閃記憶體的該些實體區塊邏輯地分組為一資料區、一備用區與一特殊區;依據從該主機中接收的一資料寫入指令來判斷該主機欲寫入至該些邏輯區塊的更新資料是否為一單一存取單位;倘若該更新資料為該單一存取單位時則將該更新資料寫入至該特殊區的對應實體區塊中;判斷該特殊區的實體區塊中是否存有對映相同邏輯區塊的多筆更新資料; 倘若該特殊區的實體區塊中存有對映相同邏輯區塊的多筆更新資料時,則從該備用區中提取一實體區塊以作為該相同邏輯區塊的新對映實體區塊並且將該資料區中對映該相同邏輯區塊的有效舊資料和該特殊區中對映該相同邏輯區塊的多筆更新資料搬移至所提取的實體區塊中,其中在該主機每次執行該資料寫入指令時僅搬移對映該相同邏輯區塊的有效舊資料與更新資料的一部分;以及當完成對映該相同邏輯區塊的有效舊資料與更新資料的搬移時,將對映該相同邏輯區塊的多筆更新資料從該特殊區的實體區塊中抹除。
- 如申請專利範圍第14或15項所述之快閃儲存系統,其中該快閃記憶體為單層記憶胞(Single Level Cell,SLC)反及(NAND)快閃記憶體或多層記憶胞(Multi Level Cell,MLC)反及(NAND)快閃記憶體。
- 如申請專利範圍第14或15項所述之快閃儲存系統,其中該些資料寫入步驟更包括:在該快閃記憶體為該MLC NAND快閃記憶體時僅使用該特殊區的實體區塊的下頁來寫入該更新資料。
- 如申請專利範圍第14或15項所述之快閃儲存系統,其中該匯流排連接介面為PCI Express介面、USB介面、IEEE 1394介面、SATA介面、MS介面、MMC介面、SD介面、CF介面或IDE介面。
- 如申請專利範圍第14或15項所述之快閃儲存系統,其中該些資料寫入步驟更包括在一有效資料對映表中 記錄該些邏輯區塊與該特殊區的對應實體區塊之間的對映關係,其中該對映關係為多個邏輯區塊對映一個實體區塊。
- 如申請專利範圍第14或15項所述之快閃儲存系統,其中該些資料寫入步驟更包括從該邏輯區塊的起始位址開始搬移或從該邏輯區塊的一特定位址開始搬移。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW097114252A TWI385519B (zh) | 2008-04-18 | 2008-04-18 | 資料寫入方法及使用此方法的快閃儲存系統與其控制器 |
| US12/147,969 US8131911B2 (en) | 2008-04-18 | 2008-06-27 | Data writing method, and flash storage system and controller using the same |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW097114252A TWI385519B (zh) | 2008-04-18 | 2008-04-18 | 資料寫入方法及使用此方法的快閃儲存系統與其控制器 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW200945037A TW200945037A (en) | 2009-11-01 |
| TWI385519B true TWI385519B (zh) | 2013-02-11 |
Family
ID=41202078
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW097114252A TWI385519B (zh) | 2008-04-18 | 2008-04-18 | 資料寫入方法及使用此方法的快閃儲存系統與其控制器 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US8131911B2 (zh) |
| TW (1) | TWI385519B (zh) |
Families Citing this family (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8843691B2 (en) | 2008-06-25 | 2014-09-23 | Stec, Inc. | Prioritized erasure of data blocks in a flash storage device |
| TWI397071B (zh) * | 2008-12-31 | 2013-05-21 | A Data Technology Co Ltd | 記憶體儲存裝置及其控制方法 |
| US9495629B2 (en) * | 2009-12-21 | 2016-11-15 | Stmicroelectronics International N.V. | Memory card and communication method between a memory card and a host unit |
| TWI414940B (zh) * | 2009-12-30 | 2013-11-11 | Phison Electronics Corp | 區塊管理與資料寫入方法、快閃記憶體儲存系統與控制器 |
| TWI421686B (zh) | 2010-04-12 | 2014-01-01 | Phison Electronics Corp | 資料存取方法與系統、儲存媒體控制器與儲存系統 |
| TWI455131B (zh) * | 2010-04-16 | 2014-10-01 | Silicon Motion Inc | 記憶體之資料寫入方法及資料儲存裝置 |
| TWI475564B (zh) | 2010-04-21 | 2015-03-01 | Silicon Motion Inc | 記憶體之資料寫入方法及資料儲存裝置 |
| US8856389B1 (en) * | 2010-09-01 | 2014-10-07 | Smsc Holdings S.A.R.L. | Efficient data transfers over serial data streams |
| TWI451247B (zh) * | 2010-09-23 | 2014-09-01 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
| CN103955434B (zh) * | 2010-10-08 | 2017-04-19 | 群联电子股份有限公司 | 数据写入方法、存储器控制器与存储器储存装置 |
| CN102543183B (zh) * | 2010-12-21 | 2015-05-20 | 群联电子股份有限公司 | 数据写入方法、存储器控制器与储存装置 |
| CN102779551B (zh) * | 2011-05-10 | 2015-01-07 | 群联电子股份有限公司 | 数据写入方法、存储器控制器与存储器储存装置 |
| CN102855162B (zh) * | 2011-06-27 | 2016-06-01 | 国民技术股份有限公司 | 一种数据更新方法、数据更新系统及存储器 |
| CN103678162B (zh) * | 2012-09-12 | 2020-02-28 | 群联电子股份有限公司 | 系统数据储存方法、存储器控制器与存储器储存装置 |
| TWI501243B (zh) * | 2013-11-12 | 2015-09-21 | Phison Electronics Corp | 資料寫入方法、記憶體儲存裝置、記憶體控制電路單元 |
| TWI575374B (zh) * | 2015-08-04 | 2017-03-21 | 群聯電子股份有限公司 | 映射表格更新方法、記憶體儲存裝置及記憶體控制電路單元 |
| CN106557432B (zh) * | 2015-09-29 | 2019-08-06 | 群联电子股份有限公司 | 缓冲存储器管理方法、存储器控制电路单元及存储装置 |
| CN107665091B (zh) * | 2016-07-28 | 2021-03-02 | 深圳大心电子科技有限公司 | 数据读取方法、数据写入方法及其存储控制器 |
| CN111813326B (zh) * | 2019-04-12 | 2024-04-19 | 建兴储存科技(广州)有限公司 | 具多数据流写入的固态存储装置及其相关写入方法 |
| CN111008159B (zh) * | 2019-11-28 | 2022-01-28 | 北京握奇智能科技有限公司 | 存储设备数据保护方法、装置、设备及存储介质 |
| US11922025B2 (en) | 2021-11-24 | 2024-03-05 | Micron Technology, Inc. | Memory device defect scanning |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5671388A (en) * | 1995-05-03 | 1997-09-23 | Intel Corporation | Method and apparatus for performing write operations in multi-level cell storage device |
| TWI226538B (en) * | 2003-05-28 | 2005-01-11 | Phison Electronics Corp | High-speed large block data writing method of flash memory |
| TWI277001B (en) * | 2004-01-19 | 2007-03-21 | Trek 2000 Int Ltd | Portable data storage device using a memory address mapping table |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6876579B2 (en) * | 2003-08-04 | 2005-04-05 | Phison Electronics Corp. | Method writing data to a large block of a flash memory cell |
| KR100568115B1 (ko) * | 2004-06-30 | 2006-04-05 | 삼성전자주식회사 | 점진적 머지 방법 및 그것을 이용한 메모리 시스템 |
| US7769944B2 (en) * | 2004-10-01 | 2010-08-03 | Supertalent Electronics, Inc. | Partial-write-collector algorithm for multi level cell (MLC) flash |
| US8307149B2 (en) * | 2005-12-09 | 2012-11-06 | Panasonic Corporation | Nonvolatile memory device including a logical-to-physical logig-to-physical address conversion table, a temporary block and a temporary table |
| JP5002201B2 (ja) * | 2006-06-30 | 2012-08-15 | 株式会社東芝 | メモリシステム |
| KR100771521B1 (ko) * | 2006-10-30 | 2007-10-30 | 삼성전자주식회사 | 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법 |
| KR100885181B1 (ko) * | 2007-02-06 | 2009-02-23 | 삼성전자주식회사 | 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법 |
| KR100866959B1 (ko) * | 2007-02-13 | 2008-11-05 | 삼성전자주식회사 | 불휘발성 메모리 장치의 부분 페이지 데이터 기입 방법 |
| TWI338856B (en) * | 2007-03-09 | 2011-03-11 | Ite Tech Inc | A flash memory storing device and a data storing method thereof |
| US8200904B2 (en) * | 2007-12-12 | 2012-06-12 | Sandisk Il Ltd. | System and method for clearing data from a cache |
-
2008
- 2008-04-18 TW TW097114252A patent/TWI385519B/zh active
- 2008-06-27 US US12/147,969 patent/US8131911B2/en active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5671388A (en) * | 1995-05-03 | 1997-09-23 | Intel Corporation | Method and apparatus for performing write operations in multi-level cell storage device |
| TWI226538B (en) * | 2003-05-28 | 2005-01-11 | Phison Electronics Corp | High-speed large block data writing method of flash memory |
| TWI277001B (en) * | 2004-01-19 | 2007-03-21 | Trek 2000 Int Ltd | Portable data storage device using a memory address mapping table |
Also Published As
| Publication number | Publication date |
|---|---|
| US20090265505A1 (en) | 2009-10-22 |
| TW200945037A (en) | 2009-11-01 |
| US8131911B2 (en) | 2012-03-06 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI385519B (zh) | 資料寫入方法及使用此方法的快閃儲存系統與其控制器 | |
| TWI398770B (zh) | 用於快閃記憶體的資料存取方法、儲存系統與控制器 | |
| TWI381274B (zh) | 用於快閃記憶體的區塊管理方法、儲存系統與控制器 | |
| US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
| 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 | |
| TWI385516B (zh) | 快閃記憶體儲存系統及其資料寫入方法 | |
| CN101571832B (zh) | 数据写入方法及使用该方法的快闪存储系统与其控制器 | |
| TWI385669B (zh) | 用於快閃記憶體的平均磨損方法、儲存系統與控制器 | |
| TWI385667B (zh) | 用於快閃記憶體的資料管理方法、儲存系統與控制器 | |
| TWI386802B (zh) | 用於快閃記憶體的資料寫入方法及其控制電路與儲存系統 | |
| TWI405209B (zh) | 資料管理方法及使用此方法的快閃儲存系統與控制器 | |
| 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 | |
| US9037814B2 (en) | Flash memory management method and flash memory controller and storage system using the same | |
| US8037236B2 (en) | Flash memory writing method and storage system and controller using the same | |
| US20100042775A1 (en) | Block management method for flash memory, and storage system and controller using the same | |
| CN101556555B (zh) | 用于闪存的区块管理方法、其控制器与储存系统 | |
| CN101625897B (zh) | 用于快闪存储器的数据写入方法、储存系统与控制器 | |
| CN101630233B (zh) | 用于闪存的数据存取方法、储存系统与控制器 | |
| CN101667157A (zh) | 闪存数据传输方法、闪存储存系统及控制器 | |
| US8423707B2 (en) | Data access method for flash memory and storage system and controller using the same | |
| CN101625661B (zh) | 用于闪存的数据管理方法、储存系统与控制器 | |
| CN101882111A (zh) | 用于闪存的数据存取方法、储存系统与控制器 | |
| CN107229413B (zh) | 存储器管理方法、存储器控制电路单元与存储器储存装置 |