TWI405082B - 記憶體系統及其映射方法 - Google Patents
記憶體系統及其映射方法 Download PDFInfo
- Publication number
- TWI405082B TWI405082B TW099117731A TW99117731A TWI405082B TW I405082 B TWI405082 B TW I405082B TW 099117731 A TW099117731 A TW 099117731A TW 99117731 A TW99117731 A TW 99117731A TW I405082 B TWI405082 B TW I405082B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- data
- blocks
- flash memory
- mapping table
- 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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/7207—Details relating to flash memory management management of metadata or control data
Description
本發明係有關於記憶體系統,且特別有關於包含快閃記憶體之記憶體系統及其映射方法(mapping method)。
一種非揮發性記憶體(nonvolatile memory),即便當記憶體斷電時仍能保持先前寫入其組成記憶體單元(memory cell)之資料。快閃記憶體係為非揮發性記憶體之一特定類型(specific type),且被廣泛應用於計算機、記憶卡(memory card)等等。因快閃記憶體之記憶體單元可被大量(in bulk)電性抹除資料,故而於許多應用中,快閃記憶體均為優選記憶體。近來,快閃記憶體被越來越多的應用於可攜式裝置(portable device),例如行動電話、個人數位助理(personal digital assistant,以下簡稱PDA)及數位攝影機。更普遍而言,快閃記憶體已經漸進地取代硬碟及其他類型之資料儲存裝置。
依據各記憶體單元及位元線(bit line)之連接狀態,快閃記憶體被歸類為反或閘(NOR)類型及反及閘(NAND)類型快閃記憶體。反或閘快閃記憶體具有高讀取速率及低寫入速率,因而主要用於編碼記憶體應用。與之相反,反及閘快閃記憶體具有高寫入速率及每單位面積低價格之特性,因而主要用於大容量儲存應用。與此同時,與其他類型之記憶體相比較,快閃記憶體於相對較低之單位耗費情形下,提供相對高速之讀取。快閃記憶體之操作表徵為寫入操作前,執行抹除操作(erase operation)。所述特徵使得快閃記憶體難以被用作主記憶體(main memory)。同樣也使得即便在將快閃記憶體用作輔助記憶源之應用中,仍難以將快閃記憶體用作常規硬碟檔案系統。相應地,快閃記憶體轉換層(flash translation layer,以下簡稱FTL)常用於檔案系統及快閃記憶體之間,以便快閃記憶體中固有之可程式化特徵可被主機裝置識別。
於快閃記憶體寫入操作過程中,FTL將檔案系統產生之邏輯位址(logical address)映射至快閃記憶體之實體位址(physical address)。FTL典型地使用位址映射表(address mapping table)執行快速位址映射操作。藉由使用FTL位址映射函數(mapping function),主機裝置可於操作上將快閃記憶體辨識為硬碟或靜態隨機存取記憶體(statistic random access memory,以下簡稱SRAM),以及可因而以存取硬碟或SRAM相同的方式存取快閃記憶體。
有鑑於此,為增強傳統之映射方法,特提供以下技術情況:本發明實施例提供一種記憶體系統,包含快閃記憶體及介面裝置。介面裝置耦接於快閃記憶體及主機之間,儲存快閃記憶體轉換層,藉由頁面映射情況,利用區塊映射表及頁面映射表管理快閃記憶體之多個資料區塊及多個日誌區塊,以及利用獨立於區塊映射表及頁面映射表之隨機寫入頁面映射表,藉由隨機寫入映射情況管理快閃記憶體之多個隨機寫入區塊。
本發明實施例另提供一種記憶體系統,包含快閃記憶體及介面裝置。介面裝置耦接於快閃記憶體及主機之間,儲存快閃記憶體轉換層,以及藉由頁面映射情況,利用資料區塊映射表、日誌區塊映射表及頁面映射表管理快閃記憶體之第一資料區塊,其中當對於該快閃記憶體之第一邏輯區塊其中之一的後續存取係為隨機單一寫入操作時,快閃記憶體轉換層將第一資料區塊轉換為第一隨機寫入區塊以及利用獨立於資料區塊映射表、日誌區塊映射表及頁面映射表之隨機寫入頁面映射表管理第一隨機寫入區塊。
本發明實施例另提供一種記憶體系統之映射方法,用於記憶體系統。記憶體系統包含快閃記憶體及介面裝置,介面裝置耦接於快閃記憶體及主機之間,其中介面裝置儲存快閃記憶體轉換層,記憶體系統之映射方法包含:藉由頁面映射情況,利用區塊映射表及頁面映射表管理快閃記憶體之多個資料區塊及多個日誌區塊,其中頁面映射表對應於區塊映射表;以及藉由隨機寫入映射情況,利用隨機頁面映射表管理快閃記憶體之多個隨機寫入區塊,其中隨機頁面映射表獨立於區塊映射表及頁面映射表。
本發明實施例另提供一種記憶體系統之映射方法,用於記憶體系統。記憶體系統包含快閃記憶體及介面裝置,介面裝置耦接於快閃記憶體及主機之間,其中介面裝置儲存快閃記憶體轉換層,記憶體系統之映射方法包含:藉由頁面映射情況,利用資料區塊映射表、日誌區塊映射表及頁面映射表管理該快閃記憶體之第一資料區塊;以及當對於快閃記憶體之第一邏輯區塊之後續存取係為隨機單一寫入操作時,將第一資料區塊轉換為第一隨機寫入區塊以及利用獨立於資料區塊映射表、日誌區塊映射表及頁面映射表之隨機寫入頁面映射表管理第一隨機寫入區塊。
利用本發明之記憶體系統及其映射方法,可改良區塊之利用率。
在說明書及後續的申請專利範圍當中使用了某些詞彙來指稱特定的元件。所屬領域中具有通常知識者應可理解,製造商可能會用不同的名詞來稱呼同樣的元件。本說明書及後續的申請專利範圍並不以名稱的差異來作為區分元件的方式,而是以元件在功能上的差異來作為區分的基準。在通篇說明書及後續的請求項當中所提及的「包含」係為一開放式的用語,故應解釋成「包含但不限定於」。另外,「耦接」一詞在此係包含任何直接及間接的電氣連接手段。因此,若文中描述一第一裝置耦接於一第二裝置,則代表第一裝置可直接電氣連接於第二裝置,或透過其他裝置或連接手段間接地電氣連接至第二裝置。
第1圖係為依據本發明之某些實施例展示記憶體系統之示意方框圖。如第1圖中所示,記憶體系統100包含主機210及儲存裝置220。記憶體系統100可被用於可攜式電子裝置中,例如膝上型電腦(laptop computer)、數位攝影機、數位音樂播放器、行動電話、個人數位助理等等。儲存裝置220包含介面裝置230及快閃記憶體240。儲存裝置220,舉例而言,亦可被用作外部記憶卡。儲存裝置220可係為固態硬碟(solid-state disk,亦下簡稱為SSD)、安全數位卡(Secure Digital Card)、多媒體卡(Multi-Media Card)、記憶條(Memory Stick)、嵌入卡(embedded card),例如moviNAND、GBNAND、iNAND等等。當主機210要求對快閃記憶體240進行存取時,介面裝置230控制快閃記憶體240。舉例而言,介面裝置230控制快閃記憶體240之讀/寫入/抹除操作。介面裝置230管理快閃記憶體240之映射資訊,以便主機210可使用快閃記憶體240執行讀/寫入/抹除操作,且上述操作類似於藉由靜態隨機存取記憶體/磁碟時所執行之讀/寫入/抹除操作。
介面裝置230包含主機介面250、中央處理單元(central processing unit,以下簡稱CPU)260、工作記憶體270、緩衝記憶體(buffer memory)280以及快閃控制器290。主機介面250在儲存裝置220及主機210之間提供介面,而CPU 260控制儲存裝置220之操作。工作記憶體270被用於儲存執行FTL功能所需要之軟體/韌體(firmware)。工作記憶體270亦用於儲存快閃記憶體240之映射資訊。快閃記憶體240之映射資訊被儲存於快閃記憶體240之一區域(舉例而言,間位區域(meta field))中,並且在開啟電源時被自動裝載到工作記憶體270上。同樣地,FTL功能需要之軟體及/或應用程式被儲存於快閃記憶體240之一區域(舉例而言,啟動碼區域(boot code region))中,並且在開啟電源時被自動裝載到工作記憶體270上。
於本發明之某些實施例中,合併狀態資訊亦被儲存於工作記憶體270中。無論主機210何時發射指令(例如讀指令、寫入指令或抹除指令),CPU 260參考工作記憶體270中之合併狀態資訊並控制用於合併之情況,所述用於合併之情況將於下文中詳述。緩衝記憶體280用於儲存快閃記憶體240中之資料或自快閃記憶體240中讀取資料。緩衝記憶體280,舉例而言,可具有對應於快閃記憶體240之頁面尺寸(page size)之儲存容量(storage capacity)。工作記憶體270及緩衝記憶體280之每一者可以是揮發性記憶體(volatile memory),例如SRAM。快閃控制器290被配置為於CPU 260之控制下對快閃記憶體240執行存取操作,例如讀、寫入以及抹除操作。
雖然此處所描述的各個記憶體係為分離的,但工作記憶體270及緩衝記憶體280可被實施於同一個記憶體中(例如SRAM),以便執行與此處所述之兩記憶體相同之功能。快閃記憶體240包含記憶體單元陣列,所述記憶體單元陣列包含多個記憶體區塊(未繪示)。每一記憶體區塊包含多個頁面(未繪示)。一個頁面對應於一個扇區或多個扇區。於本發明之某些實施例中,如前文所述,記憶體單元陣列之記憶體區塊被分為資料區域(data region)、日誌區域(log region)、隨機寫入區域(random write(以下簡稱RW)region)、空白區域(space region)、間位區域等等。並且,記憶體單元陣列更包含儲存啟動碼及/或FTL之記憶體區塊。然而,快閃記憶體240之陣列架構並不限於此處描述之架構。換言之,記憶體單元陣列之架構可依據FTL之映射技術而被調整。
第2圖係為概念性說明第1圖中之記憶體系統100中軟體之實施之方框圖。請參考第2圖,記憶體系統可實施包含操作系統310、檔案系統320及FTL 330之軟體。如第2圖中所繪示的,操作系統310與檔案系統320聯通,檔案系統320與FTL 330聯通,FTL 330與記憶體系統100之快閃記憶體240聯通。
FTL 330自檔案系統320接收邏輯位址LA並將所接收之邏輯位址LA轉換(translate)為實體位址PA。實體位址PA可被提供至快閃記憶體240,而快閃記憶體240可存取對應於所接收到之實體位址PA之記憶體單元。此外,FTL 330可包含至少一位址映射表,用於位址轉換(address conversion)。位址映射表可自快閃記憶體240裝載到工作記憶體270上,並且位址映射表可用於工作記憶體270中。
第3圖係為概念性說明相應於第1圖及第2圖中之記憶體系統100之改良之映射方法實施之方框圖。第3圖闡明記憶體系統100之檔案系統320、FTL 330以及快閃記憶體240。於第3圖中繪示之實施例中,FTL 330自檔案系統320接收邏輯位址LA,並利用映射表(例如331、332及333)將所接收之邏輯位址LA轉換為實體位址PA。
如第3圖中所繪示的,FTL 330包含區塊映射表(block mapping table)331、頁面映射表(page mapping table)332以及隨機寫入頁面映射表(RW page mapping table,圖中標示為RW頁面映射表)333,其中頁面映射表332與區塊映射表331有關,而RW頁面映射表333獨立於區塊映射表331及頁面映射表332。區塊映射表331被用於將至少一邏輯區塊之邏輯區塊號碼(logical block number,以下簡稱LBN)映射至實體記憶區塊(亦即,資料區塊、日誌區塊或空白區塊(space block))之實體區塊號碼(physical block number,以下簡稱PBN)。應當注意,於某些實例中,日誌區塊亦可被參考為現用區塊(active block)。一般狀況下,LBN及/或邏輯頁面號碼(logical page number,以下簡稱為LPN)可被主機裝置辨識/利用,而PBN及/或實體頁面號碼(physical page number,以下簡稱為PPN)可被快閃記憶體辨識/利用,但並不限於此。頁面映射表332用於資料區塊與一個或多個日誌區塊之頁面映射。舉例而言,頁面映射表332用於將至少一個邏輯區塊之LPN映射至資料區塊或日誌區塊之PPN。RW頁面映射表333用於RW區塊之頁面映射。類似地,RW頁面映射表333用於將至少一個邏輯區塊之LPN映射至RW區塊之一之PPN。於某些實施例中,區塊映射表331可包含資料區塊映射表及日誌區塊映射表,但不限於此。
請再參考第3圖,快閃記憶體240包含多個記憶體區塊,記憶體區塊體現PBN為PB100、PB101、PB102、PB103、...、PB470及PB490之多個資料區塊;PBN為PB301、PB302及PB304的多個日誌區塊;PBN為PB601、PB602、PB603及PB604的多個空白區塊以及PBN為PB900、PB903及PB905的多個RW區塊。此外,快閃記憶體240可概念上地包含資料區域341、日誌區域342、RW區域343、空白區域344及間位區域345。於某些實施例中,快閃記憶體240可不具有實體的資料、日誌、RW或空白區域。而是於快閃記憶體240中實施之資料區塊、日誌區塊、RW區塊及空白區塊分別概念上地形成資料區域341、日誌區域342、RW區域343及空白區域344。
請注意於快閃記憶體240中,以上所述之區域可係為概念上地,而非實體上可辨識的區域,其中所述概念上的區域將在此處做出說明。資料區域341包含多個資料區塊並儲存用戶資料,其中多個資料區塊之PBN分別為PB100、PB101、PB102、PB103、...、PB470及PB490。舉例而言,資料區塊用於儲存連續寫入資料及/或冷資料,其中冷資料很少被主機210存取。日誌區域342包含PBN為PB301、PB302及PB304之多個日誌區塊,多個日誌區塊之每一者被分配至快閃記憶體240之一個或多個資料區塊。舉例而言,日誌區塊被用於儲存重寫資料(overwrite data)及/或非連續資料(non-sequential data/discontinuous data)。RW區域343包含多個RW區塊並儲存用戶資料,其中多個RW區塊之PBN為PB900、PB903及PB905,並且用戶資料屬於隨機單一寫入資料及/或熱資料。
空白區域344包含PBN分別為PB601、PB602、PB603及PB604之多個空白區塊,多個空白區塊之每一者可被轉換為日誌區塊、資料區塊或RW區塊。舉例而言,若被分配至資料區塊之所有日誌區塊均被使用,則空白區塊可被轉換為日誌區塊,且隨後可被分配至所述資料區塊。此外,合併操作之後,被抹除之資料區塊、日誌區塊及/或RW區塊可被轉換為空白區塊,並且可隨後依據分配操作被轉換為資料、日誌及/或RW區塊。於本發明之某些實施例中,當滿足某些預設條件時,資料區塊(以及對應之日誌區塊(若存在))亦可被轉換為RW區塊,或RW區塊可被轉換為資料區塊,上述轉換之具體操作將於下文中詳述。依據合併操作所改變之映射資訊可被儲存於間位區域345中。
第4圖係為用於管理記憶體系統中之快閃記憶體之映射資料之步驟之流程圖。首先,於步驟S400中,主機210請求存取快閃記憶體240(亦即自檔案系統320或操作系統310發出,並且在主機210上執行之指令被接收)。於步驟S410中,於介面裝置230之CPU 260上執行之FTL 320決定當前所請求之存取之模式(pattern)。舉例而言,當主機210請求一存取時,FTL 330自輸入資料擷取邏輯位址資訊,以及決定所請求之存取是否係為對於RW區塊之存取。若決定所請求之存取係為對於RW區塊之存取,則執行步驟S430。若決定所請求之存取並非係為對於RW區塊之存取,則執行步驟S420。於步驟S420中,所請求之存取藉由第一映射情況處理,而於步驟S430中,所請求之存取藉由第二映射情況處理,其中第二映射情況不同於第一映射情況,並且獨立於第一映射情況。舉例而言,於本實施例中,於步驟S420中,所請求之存取藉由具有區塊映射表331(以及頁面映射表332(若需要))之混合映射情況(亦即,頁面映射情況)處理,但並不限於此。相反地,於步驟S430中,所請求之存取藉由具有RW頁面映射表333之RW映射情況(亦即,RW頁面映射情況)處理,其中RW頁面映射表333獨立於區塊映射表331及頁面映射表332,但並不限於此。步驟S420及430之具體操作將於下文詳細描述。應當注意,RW頁面映射表333可被部分或全部儲存於快閃記憶體240中,並且在必要時自快閃記憶體240(第1圖)裝載至工作記憶體270上。
為描述之便利,假定快閃記憶體240之每一記憶區塊具有四個頁面,但並不限於此。換言之,熟悉本領域之技藝者可理解快閃記憶體240之每一記憶區塊亦可具有多於或少於四個頁面。
在此,將參考第5A-1~5A-4圖以及第5B~5G圖來闡明不存取RW區塊之步驟S420之範例。於步驟S420中,所請求之存取並非係為對於RW區塊之存取,但其可係為對於記憶區塊之寫入操作或讀取操作,例如對應於邏輯區塊之資料區塊或日誌區塊。以下將參考第3圖及第5A-1~5A-4圖來描述步驟S420之第一範例。
舉例而言,若第一存取被請求寫入之資料,是LBN為LB108之邏輯區塊中對應於LPN為LP2之資料,則FTL 330決定對應於邏輯區塊之資料區塊之LBN是否為LB108。若對應於邏輯區塊之資料區塊之LBN不為LB108,則FTL 330分配PBN為PB601之空白區塊(亦即,記憶區塊)作為用於邏輯區塊之資料區塊,其中邏輯區塊之LBN為LB108,而隨後FTL 330將對應於LPN為LP2之資料寫入實體頁面,其中實體頁面位於PBN為PB601之資料區塊中,且實體頁面之PPN為PPA0。於本實施例中,LPN為LP2之邏輯頁面係為LBN為LB108之邏輯區塊中之第三頁面,而非第一頁面,並且對應於邏輯頁面LP2之資料並不限於被寫入PBN為PB601之資料區塊之第三頁面。
於某些實施例中,FTL 330依據來自於主機210之輸入資料中之邏輯扇區號碼(logic sector number)順序獲得LPN、LBN及邏輯偏移頁面號碼(logical offset page number,以下簡稱LOPN),但並不限於此。此外,FTL 330將LBN為LB108之邏輯區塊及PBN為PB601之資料區塊之間之映射關係記錄入區塊映射表331之資料區塊映射表331A中。如資料區塊映射表331A中所示,PBN為PB100之資料區塊對應於LBN為LB0之邏輯區塊,PBN為PB101之資料區塊對應於LBN為LB1之邏輯區塊,PBN為PB102之資料區塊對應於LBN為LB2之邏輯區塊,......,PBN為PB490之資料區塊對應於LBN為LB107之邏輯區塊,以及PBN為PB601之資料區塊對應於LBN為LB108之邏輯區塊。舉例而言,FTL 330依據來自於主機210之存取資訊(亦即,指令中之寫入位址)決定所請求之存取及/或隨後之存取係為隨機單一寫入操作(random single write operation),但並不限於此。如第5A-1圖所示,FTL 330更將資料區塊之實體頁面記錄入頁面映射表332中,其中資料區塊之PBN為PB601,實體頁面之PPN為PPA0。如頁面映射表332所示,PPN為PPA0之實體頁面對應於LP2。
若第二存取隨後被請求將對應於LPN為LP3之資料寫入LBN為LB108之邏輯區塊中,則FTL 330決定待寫入之資料是否為連續資料,而此待寫入之資料與對應於LPN為LP2之資料相關(其中該資料儲存於PBN為PB601之資料區塊中)。隨後,若關於對應於LPN為LP2之資料,待寫入之資料係為連續資料,則FTL 330將對應於LPN為LP3之資料寫入PBN為PB601之資料區塊之實體頁面,其中所述實體頁面之PPN為PPA1。如第5A-1圖中所示,FTL 330更將實體頁面記錄入一頁面映射表332中(該實體頁面之PPN為PB601之資料區塊的PPN,即PPA1)。如頁面映射表332所示,PPN為PPA1之實體頁面對應於LP3。
若第三存取隨後被請求將對應於LPN為LP1之資料寫入LBN為LB108之邏輯區塊中,則FTL 330決定待寫入之資料是否為連續資料,而此待寫入之資料與對應於LPN為LP3之資料相關(其中該資料儲存於PBN為PB601之資料區塊中)。因為關於對應於LPN為LP3之資料,待寫入之資料並非為連續資料,FTL 330分配PBN為PB602之記憶體區塊作為日誌區塊,用於PBN為PB601之資料區塊。此外,FTL 330將PBN為PNB602之日誌區塊及PBN為PB601之資料區塊之間之映射關係記錄入區塊映射表331之日誌區塊映射表331B中。如頁面映射表332所示,PPN為PPA0之實體頁面對應於LP2,而PPN為PPA1之實體頁面對應於LP3。隨後,FTL 330將對應於LP1之資料寫入實體頁面中(該實體頁面之PPN為PB602之日誌區塊之PPN,即PPB0),以及將PPN為PPB0之實體頁面及LPN LP1之間之映射關係(亦即,PPN為PPB0之實體頁面對應於LP1)記錄入區塊映射表332之中。如第5A-2圖之頁面映射表332中所示,PPN為PPB0之實體頁面對應於LP1。
若第四存取隨後被請求將對應於LPN為LP0之資料寫入LBN為LB108之邏輯區塊中,並且FTL 330決定LBN為LB108之邏輯區塊對應於PBN為PB601之資料區塊及PBN為PB602之日誌區塊,則FTL 330將對應於LPN為LP0之資料寫入實體頁面中(該實體頁面之PPN為PB602之日誌區塊之PPN,即PPB1)。FTL 330隨後將實體頁面PPB1與LPN LP0之間之映射關係(亦即,PPN為PPB1之實體頁面對應於LP0)記錄入頁面映射表332中。如第5A-2圖之頁面映射表332中所示,PPN為PPB1之實體頁面對應於LP0。
類似地,依據第五及第六存取,分別對應於位於LBN為LB108之邏輯區塊中LPN為LP3及LP0之資料被分別寫入PPN為PPB2及PPB3之實體頁面,並且FTL 330隨後將實體頁面PPB2與LP3以及PPB3與LP0間之映射關係記錄入頁面映射表332中。因此,LPN LP3及LP0被記錄(更新)入頁面映射表332中。如第5A-3圖之頁面映射表332所示,PPN為PPB2及PPB3之實體頁面分別對應於LP3及LP0。此時,儲存於PBN為PB601之資料區塊的PPN為PPA1之實體頁面之資料,以及PBN為PB602之日誌區塊的PPN為PPB1之實體頁面成為無效的。於本實施例中,FTL 330分配日誌區塊用於資料區塊(當待寫入之資料關於先前寫入之資料並非為連續資料時),或者重寫先前寫入之資料,但並不限於此。
步驟S420之另一範例將參考第5A-4圖作出說明。若第七存取被隨後請求將對應於LP1之資料寫入LBN為LB108之邏輯區塊中,則FTL 330將對應於LP1之資料寫入實體頁面(該實體頁面之PPN為PB601之日誌區域之PPN,即PPA2)。FTL 330隨後將PPN為PPA2之實體頁面與LPN LP1之間之映射關係(亦即,PPN為PPA2之實體頁面對應於LP1)記錄(亦即,更新)入頁面映射表332中。如第5A-4圖之頁面映射表332所示,PPN為PPA2之實體頁面對應於LP1。此時,儲存於PBN為PB602之日誌區塊的PPN為PPB0之實體頁面中之資料成為無效的。於本實施例中,一旦PBN為PB602之日誌區塊被分配用於PBN為PB601之資料區塊,FTL 330將以頁面映射(page map)之方式利用PBN為PB601之資料區塊之空白頁面(space page)。
此外,若FTL 330更決定對於LBN為LB108之邏輯區塊之後續存取係為隨機單一寫入操作,則FTL 330隨後將PBN為PB601之資料區塊及PBN為PB602之日誌區塊轉換為RW區塊,用於後續存取(亦即,隨機單一寫入操作)。因此,FTL 330利用RW頁面映射表333記錄邏輯區塊(該邏輯區塊之LBN為LB108)之LPN及PBN為PB601與PB602之RW區塊之實體頁面之間之映射關係。舉例而言,FTL 330將PBN為PB601及PB602之RW區塊之有效頁面(亦即,PPN為PPA0、PPA2、PPB2、PPB3之實體頁面)記錄入RW頁面映射表333中。如第5B圖之RW頁面映射表333所示,PPN為PPB3、PPA2、PPA0、PPB2之實體頁面分別對應於LP0~LP3。與此同時,FTL 330刪除資料區塊映射表331A中LBN為LB108之邏輯區塊與PBN為PB601之資料區塊之間之映射關係,刪除日誌區塊映射表331B中PBN為PB601之資料區塊及PBN為PB602之日誌區塊之間之映射關係,以及刪除頁面映射表332中LBN為LB108之邏輯區塊之LPN與PBN為PB601之資料區塊之實體頁面及PBN為PB602之日誌區塊之間之映射關係,使得RW頁面映射表333獨立於資料區塊映射表331A、日誌區塊映射表331B及頁面映射表332。RW操作之細節將稍後描述。
步驟S420之另一範例將參考第5C圖及第5D圖作出說明。若第5A-3圖所示之第四存取之後,第八存取被隨後請求將對應於LP1之資料寫入LBN為LB108之邏輯區塊中,則FTL 330決定PBN為PB602之日誌區塊係為滿的,並且FTL 330將對應於LP1之資料寫入實體頁面中(該實體頁面之PPN為PB601之資料區塊的PPN,即PPA2)。FTL 330隨後將PPN為PPA2之實體頁面與LPN LP1之間之映射關係(亦即,PPN為PPA2之實體頁面對應於LP1)記錄入頁面映射表332中。類似地,依據第九存取請求,對應於LBN為LB108之邏輯區塊中的LPN LP0之資料亦可被寫入PPN為PPA3之實體頁面中,並且PPN為PPA3之實體頁面及LPN LP0之間之映射關係將被記錄在頁面映射表332中。如第5C圖中之頁面映射表332所示,PPN為PPA2及PPA3之實體頁面分別對應於LP1及LP0。此時,PBN為PB602之資料區塊中的PPN為PPB0之實體頁面及PBN為PB602之日誌區塊中的PPN為PPB3之實體頁面中所儲存之資料成為無效的。為描述之便利,假定每一資料區塊僅能被分配一個日誌區塊。然而,熟悉本領域之技藝者應當理解多個日誌區塊可被分配給一個資料區塊。
於本發明之所述實施例中,當FTL 330決定PBN為PB601之資料區塊及PBN為PB602之日誌區塊係為滿時,決定LBN為LB108之邏輯區塊之資料(亦即,儲存於PBN為PB601之資料區塊及PBN為PB602之日誌區塊之資料)係為熱資料。因此,如第5D圖中所示,FTL 330將PBN為PB601之資料區塊及PBN為PB602之日誌區塊轉換為RW區塊,分配PBN為PB603之空白區塊作為用於LBN為LB108之邏輯區塊之另一RW區塊,以及利用RW頁面映射表333記錄LBN為LB108之邏輯區塊之LPN與PBN為PB601-PB603之RW區塊之實體頁面之間之映射關係,以便後續之資料寫入操作。舉例而言,FTL 330將PBN為PB601及PB602之RW區塊之有效頁面(亦即,PPN為PPA0、PPA2、PPA3及PPB2之實體頁面)記錄入RW頁面映射表333中。如第5D圖之RW頁面映射表333所示,PPN為PPA3、PPA2、PPA0及PPB2之實體頁面分別對應於LP0~LP3。與此同時,FTL 330刪除/更新資料區塊映射表331A中之LBN為LB108之邏輯區塊及PBN為PB601之資料區塊之間之映射關係,日誌區塊映射表331B中PBN為PB601之資料區塊及PBN為PB602之日誌區塊之間之映射關係,以及頁面映射表332中LBN為LB108之邏輯區塊之LPN與PBN為PB601之資料區塊之實體頁面及PBN為PB602之日誌區塊之間之映射關係,使得RW頁面映射表333獨立於資料區塊映射表331A、日誌區塊映射表331B及頁面映射表332。存取RW區塊之操作之細節將稍後描述。
步驟S420之另一範例將參考第5E圖作出說明。於對應於LPN為LP0之資料被寫入實體頁面之後(繪示於第5A-1圖中,該實體頁面之PPN為PB602之日誌區塊的PPN,即PPB3),若第九存取被隨後請求將對應於LPN為LP128之資料寫入LBN為LB109之邏輯區塊中,則FTL 330決定對應於所述邏輯區塊之資料區塊之LBN是否為LB109。若對應於邏輯區塊之資料區塊之LBN不為LB109,則FTL 330分配PBN為PB603之空白區塊作為LBN為LB109之邏輯區塊之資料區塊,以及隨後FTL 330將對應於LPN為LP128之資料寫入PPN為PPC0之實體頁面中,其中PPN為PPC0之實體頁面位於PBN為PB603之資料區塊中。於本實施例中,邏輯頁面LP128係為LBN為LB109之邏輯區塊之第一頁面。此外,FTL 330將LBN為LB109之邏輯區塊及PBN為PB603之資料區塊之間之映射關係記錄入資料區塊映射表331A中(亦即,PBN為PB603之資料區塊對應於LBN為LB109之邏輯區塊)。當第十一存取被隨後請求將對應於LPN為LP129之資料寫入LBN為LB109之邏輯區塊中時,若關於對應於LPN為LP128之資料,當前資料係為連續資料,則FTL 330將對應於LPN為LP129之資料寫入實體頁面中(該實體頁面之PPN為PB603之資料區塊的PPN,即PPC1)。此外,FTL 330更將PPN為PPC0、PPC1之實體頁面分別與LPN LP128、LP129之間之映射關係記錄入頁面映射表332”中。如第5E圖之頁面映射表332”所示,PPN為PPC0與PPC1之實體頁面分別對應於LP128與LP129。
步驟S420之又一範例將參考第5F圖作出說明。若第十二存取被隨後請求將對應於LPN為LP130之資料寫入LBN為LB109之邏輯區塊中,則FTL 330將對應於LPN為LP130之資料寫入實體頁面中(該實體頁面之PPN為PB603之資料區塊的PPN,即PPC2)。FTL 330隨後將PPN為PPC2之實體頁面與LPN LP130之間之映射關係記錄入頁面映射表332”中。如第5F圖之頁面映射表332”所示,PPN為PPC2之實體頁面對應於LP130。此外,若FTL 330決定對於LBN為LB109之邏輯區塊之後續存取係為隨機單一寫入操作,則FTL 330將PBN為PB603之資料區塊轉換為RW區塊。因此,FTL 330利用RW頁面映射表333”記錄LBN為LB109之邏輯區塊的LPN及PBN為PB603之RW區塊的實體頁面之間之映射關係。舉例而言,FTL 330將PBN為PB603之RW區塊的有效頁面(亦即,PPN為PPC0~PPC2之實體頁面)記錄入RW頁面映射表333”中。與此同時,FTL 330刪除/更新資料區塊映射表331A中LBN為LB109之邏輯區塊及PBN為PB603之資料區塊之間之映射關係,以便RW頁面映射表333”獨立於資料區塊映射表331A及日誌區塊映射表331B。
步驟S420之又一範例將參考第5G圖作出說明。於對應於邏輯區塊LB108中之LPN LP0之資料被寫入實體頁面PPB3之後(繪示於第5A-3圖中,實體頁面PPB3位於PBN為PB602之日誌區塊內),若第十三存取被隨後請求將對應於LPN LP128之資料寫入LBN為LB109之邏輯區塊中,則FTL 330決定對應於邏輯區塊之資料區塊之LBN是否為LB109。當對應於邏輯區塊之資料區塊之LBN不為LB109時,FTL 330分配空白區塊作為LBN為LB109之邏輯區塊之資料區塊。此時,若快閃記憶體中之空白區塊之數量係為不足的,則合併操作可被執行,以產生額外之空白區塊。換言之,資料區塊及被分配至所述資料區塊之日誌區塊可經由合併操作(亦被稱為垃圾收集(garbage collection))被轉換為空白區塊。合併操作將於下文詳述。舉例而言,FTL 330分配PBN為PB603之空白區塊作為PBN為PB108之邏輯區塊之新資料區塊,將PBN為PB601之舊資料區塊及PBN為PB602之日誌區塊中之有效資料拷貝入PBN為PB603之新資料區塊中,抹除PBN為PB601及PB602之區塊,以及將PBN為PB601及PB602之區塊作為空白區塊回收至空白區域。此外,FTL 330亦可將LBN為LB108之邏輯區塊及PBN為PB603之資料區塊之間之新映射關係更新入資料區塊映射表331A中,以及刪除日誌區塊映射表311B中PBN為PB601之資料區塊及PBN為PB602之日誌區塊之間之映射關係。因此,FTL 330分配PBN為PB604之空白區塊作為LBN為LB109之邏輯區塊之資料區塊,以及將對應於LP128之資料寫入實體頁面中(該實體頁面之PPN為PB604之資料區塊的PPN,即PPD0)。此外,FTL 330亦可將LBN為LB109之邏輯區塊及PBN為PB604之資料區塊之間之映射關係記錄入資料區塊映射表331A中。
存取RW區塊之步驟S430之範例將參考第6A~6D圖於下文中作出描述。步驟S430之第一範例將參考第6A~6C圖作出說明。PBN為PB603之資料區塊被轉換為RW區塊之後(繪示於第5F圖),若第十四存取被隨後請求將對應於LPN為LP128之資料寫入LBN為LB109之邏輯區塊中,則FTL 330決定所請求之存取係為對於RW區塊之存取(亦即,其可係為對於RW區塊之寫入操作或讀操作)。因此,依據RW映射情況,FTL 330利用RW頁面映射表333”處理被請求之存取,其中頁面映射表333”獨立於資料區塊映射表331及頁面映射表332。舉例而言,如第6A圖所示,當FTL 330決定PBN為PB603之RW區塊對應於LBN為LB109之邏輯區塊時,FTL 330將對應於LPN為LP128之資料寫入實體頁面中(該實體頁面之PPN為PB603之RW區塊的PPN,即PPC3)。FTL 330隨後將PPN為PPC3之實體頁面及LPN LP128之間之映射關係(亦即,PPN為PPC3之實體頁面對應於LP128)記錄入RW頁面映射表333”中。
若第十五存取被隨後請求將對應於LPN為LP130之資料寫入LBN為LB109之邏輯區塊中,並且FTL 330決定RW區塊係為滿的,則FTL 330分配PBN為PB604之空白區塊作為用於LBN為LB109之邏輯區塊之另一RW區塊。因此,如第6B圖所示,FTL 330將LBN為LB109之邏輯區塊中對應於LPN為LP130之資料寫入實體頁面中(該實體頁面之PPN為PB604之RW區塊的PPN,即PPD1)。此外,FTL 330隨後將PPN為PPD1之實體頁面及LPN LP130之間之映射關係(亦即,PPN為PPD1之實體頁面對應於LP130)記錄入RW頁面映射表333”中。此時,儲存於PBN為PB603之RW區塊中PPN為PPC2之實體頁面中之資料成為無效的。若第十六存取被隨後請求將對應於LPN為LP129之資料寫入LBN為LB109之邏輯區塊中,則FTL 330將對應於LPN為LP129之資料寫入實體頁面中(該實體頁面之PPN為PB604之RW區塊中的PPN,即PPD0),以及將PPN為PPD1之實體頁面及LPN LP129之間之映射關係記錄入RW頁面映射表333”中。此時,儲存於PBN為PB603之RW區塊中PPN為PPC1之實體頁面中之資料成為無效的。類似地,若第十七存取被隨後請求將對應於LPN為LP128之資料寫入LBN為LB109之邏輯區塊中,則FTL 330將對應於LPN為LP128之資料寫入實體頁面中(該實體頁面之PPN為PB604之資料區塊的PPN,即PPD2),以及將PPN為PPD2之實體頁面及LPN LP128之間之映射關係記錄入RW頁面映射表333”中。此時,儲存於PBN為PB603之RW區塊的PPN為PPC3之實體頁面中的資料成為無效的。舉例而言,FTL 330可分配N個RW區塊用於一個邏輯區塊,以及當被分配之RW區塊之數量達到預定數時對被分配之RW區塊執行垃圾收集操作。於本實施例中,FTL 330最多分配3個RW區塊用於一個邏輯區塊,但並不限於此,並且當被分配之RW區塊係為滿時,FTL 330對被分配之RW區塊執行垃圾收集操作。
當FTL 330決定快閃記憶體中空白區塊之數量係為不足時,可對PBN為PB603及PB604之RW區塊執行合併操作,用於產生額外的空白區塊。舉例而言,如第6C圖中所示,FTL 330分配PBN為PB605之空白區塊作為PBN為PB109之邏輯區塊之新RW區塊,將PBN為PB603及PB604之舊RW區塊中之有效資料拷貝至PBN為PB605之新RW區塊中,抹除PBN為PB603及PB604之區塊,以及將PBN為PB603及PB604之區塊作為空白區塊回收至空白區域。於本實施例中,LPN為LP128、LP129及LP130之邏輯頁面之有效資料被分別儲存於PPN為PPE0、PPE1及PPE2之實體頁面中。此外,FTL 330亦可將LBN為LB109之邏輯區塊及PBN為PB605之RW區塊之間之新映射關係更新入RW頁面映射表333”中。即,當快閃記憶體中之空白區塊之數量係為不足時(亦即,空白區塊之數量低於預定數),FTL 330亦對RW區塊執行垃圾收集操作(亦即,合併操作)以獲得空白區塊。
應注意,用於邏輯區塊之RW區塊之數量、對應於一個資料區塊之日誌區塊之數量以及剩餘空白區塊之數量可作為前述合併狀態信息之一部分。此外,前述被編號碼之存取,例如第一存取、第二存取等等,並非限制存取之順序及/或位置,而係為用以援助說明本發明之實施例之用。
步驟S430之又一範例將參考第6D圖作出說明。當FTL 330決定對於LBN為LB 109之邏輯區塊之後續存取係為連續資料寫入操作時,FTL 330將PBN為PB605之RW區塊轉換為資料區塊。舉例而言,FTL 330分配PBN為PB606之空白區塊作為PBN為PB109之邏輯區塊之資料區塊,將PBN為PB603及PB604之舊RW區塊中之有效資料拷貝至新RW區塊PB605中,抹除PBN為PB603及PB604之區塊,以及將PBN為PB603及PB604之區塊作為空白區塊回收至空白區域。此外,FTL 330亦可將LBN為LB109之邏輯區塊及PBN為PB606之資料區塊之間之新映射關係更新入資料區塊映射表331A中。於本實施例中,用於LPN為LP128、LP129及LP130之邏輯頁面之有效資料被分別儲存於PPN為PPF0、PPF1及PPF2之實體頁面中(未繪示於圖中)。因此,藉由具有資料區塊映射表331A(以及日誌區塊映射表331B及(若需要)頁面映射表332(未繪示於圖中))之混合映射情況(亦即,頁面映射情況),FTL 330處理LBN為LB109之邏輯區塊之後續存取請求。
第7圖係為依據本發明之某些實施例說明資料區塊、日誌區塊及RW區塊之間關係之示意圖。如圖所示,記憶體系統可包含三種區塊,亦即,資料區塊、日誌區塊及RW區塊。關於對應於邏輯區塊之資料區塊,若FTL決定關於先前儲存之資料,待寫入之後續資料係為不連續資料(亦即,非連續資料)或先前儲存之資料被重寫,則FTL為對應於邏輯區塊之資料區塊創建或分配日誌區塊,用於後續資料寫入操作。可選地,若FTL決定待寫入之後續資料係為隨機單一寫入資料或熱資料,則FTL將資料區塊轉換為RW區塊,以便後續資料寫入操作。舉例而言,FTL依據來自於主機之存取資訊(亦即,指令中之寫入位址)決定被請求之存取及/或後續之存取係為隨機單一寫入操作或連續資料寫入操作,但並不限於此。
關於日誌區塊,若FTL決定待寫入之後續資料係為非連續資料,則FTL將資料寫入日誌區塊,並且當日誌區塊及對應之資料區塊係為滿時,FTL對日誌區塊執行垃圾收集操作。可選地,若FTL決定待寫入之後續資料係為熱資料,則FTL將日誌區塊及對應資料區塊轉換為RW區塊,用於後續資料寫入操作。舉例而言,當FTL決定資料區塊及日誌區塊係為滿時,邏輯區塊之資料(亦即,儲存於資料區塊及日誌區塊之資料)被決定為係為熱資料。可選地,若FTL決定關於先前儲存於日誌區塊之資料,後續資料係為連續的,則FTL用對應之資料區塊取代(亦即,交換)日誌區塊。
關於RW區塊,若FTL決定待寫入之後續資料係為非連續資料,則FTL將資料寫入RW區塊,並且當當前RW區塊係為滿時,分配另一RW區塊用於邏輯區塊。當RW區塊之數量達到預定數時,FTL對RW區塊執行垃圾收集操作。可選地,若FTL決定待寫入之後續資料係為連續寫入資料或冷資料,則FTL將RW區塊轉換為資料區塊。
於所述實施例中,因為於對應之日誌區塊無空白頁面之後,資料區塊之空白頁面可被用於以頁面映射方式儲存資料,資料區塊中之頁面之利用率(utility rate)可被改良。此外,若熱資料及邏輯區塊之隨機單一寫入資料可被寫入多重RW區塊,則對於對應於邏輯區塊之資料區塊及日誌區塊之大量垃圾收集操作可被減少。
以上所述僅為本發明之較佳實施例,舉凡熟悉本案之人士援依本發明之精神所做之等效變化與修飾,皆應涵蓋於後附之申請專利範圍內。
100...記憶體系統
210...主機
220...儲存裝置
230...介面裝置
240...快閃記憶體
250...主機介面
260...CPU
270...工作記憶體
280...緩衝記憶體
290...快閃控制器
310...操作系統
320...檔案系統
330...FTL
331...區塊映射表
331A...資料區塊映射表
331B...日誌區塊映射表
332、332”...頁面映射表
333、333”...RW頁面映射表
341...資料區域
342...日誌區域
343...RW區域
344...空白區域
345...間位區域
S400~S430...步驟
第1圖係為依據本發明之某些實施例展示記憶體系統之示意方框圖。
第2圖係為概念性說明第1圖中之記憶體系統中軟體之實施之方框圖。
第3圖係為概念性說明相應於第1圖及第2圖中之記憶體系統之改良之映射方法實施之方框圖。
第4圖係為用於管理記憶體系統中之快閃記憶體之映射資料之步驟之流程圖。
第5A-1~5A-4、5B~5G圖係為用於基於頁面映射情況管理記憶體區塊之範例。
第6A~6D圖係為用於基於隨機寫入映射情況管理記憶體區塊之範例。
第7圖係為依據本發明之實施例說明資料區塊、日誌區塊及RW區塊之間關係之示意圖。
240...快閃記憶體
320...檔案系統
330...FTL
331...區塊映射表
332...頁面映射表
333...RW頁面映射表
341...資料區域
342...日誌區域
343...RW區域
344...空白區域
345...間位區域
Claims (29)
- 一種記憶體系統,包含:一快閃記憶體;以及一介面裝置,耦接於該快閃記憶體及一主機之間,儲存一快閃記憶體轉換層,藉由一頁面映射情況,利用一區塊映射表及一頁面映射表管理該快閃記憶體之多個資料區塊及多個日誌區塊,以及利用獨立於該區塊映射表及該頁面映射表之一隨機寫入頁面映射表,藉由一隨機寫入映射情況管理該快閃記憶體之多個隨機寫入區塊。
- 如申請專利範圍第1項所述之記憶體系統,其中該區塊映射表包含一資料區塊映射表及對應於該資料區塊映射表之一日誌區塊映射表。
- 如申請專利範圍第1項所述之記憶體系統,其中當對於一邏輯區塊之一後續存取係為一隨機單一寫入操作時,該快閃記憶體轉換層將對應於該邏輯區塊之該多個資料區塊其中之一轉換為一隨機寫入區塊。
- 如申請專利範圍第3項所述之記憶體系統,其中依據自該主機提供之存取資訊,該快閃記憶體轉換層決定對於該邏輯區塊之該後續存取是否係為一隨機單一寫入操作或一連續資料寫入操作。
- 如申請專利範圍第1項所述之記憶體系統,其中當儲存於一隨機寫入區塊之資料成為冷資料或對該邏輯區塊之一後續存取係為一連續資料寫入操作時,該快閃記憶體轉換層將對應於一邏輯區塊之該多個隨機寫入區塊其中之一轉換為一資料區塊。
- 如申請專利範圍第1項所述之記憶體系統,其中當對應於一邏輯區塊之該多個隨機寫入區塊之數量達到一預定數,並且該多個隨機寫入區塊係為滿時,該快閃記憶體轉換層對該多個隨機寫入區塊執行一合併操作,其中該預定數大於二。
- 一種記憶體系統,包含:一快閃記憶體;以及一介面裝置,耦接於該快閃記憶體及一主機之間,儲存一快閃記憶體轉換層,以及藉由一頁面映射情況,利用一資料區塊映射表、一日誌區塊映射表及一頁面映射表管理該快閃記憶體之一第一資料區塊,其中當對該快閃記憶體之一第一邏輯區塊其中之一的後續存取係為一隨機單一寫入操作時,該快閃記憶體轉換層將該第一資料區塊轉換為一第一隨機寫入區塊,以及利用獨立於該資料區塊映射表、該日誌區塊映射表及該頁面映射表之一隨機寫入頁面映射表管理該第一隨機寫入區塊。
- 如申請專利範圍第7項所述之記憶體系統,其中該快閃記憶體更包含對應於該第一資料區塊之一第一日誌區塊,以及當對該第一邏輯區塊之該後續存取係為一隨機單一寫入操作時,該快閃記憶體轉換層分別將該第一資料區塊及該第一日誌區塊轉換成該第一隨機寫入區塊及一第二隨機寫入區塊,以及利用該隨機寫入頁面映射表管理該第一及該第二隨機寫入區塊。
- 如申請專利範圍第8項所述之記憶體系統,其中依據自該主機提供之多個存取位址,該快閃記憶體轉換層決定對該第一邏輯區塊之該後續存取是否係為一連續資料寫入操作。
- 如申請專利範圍第7項所述之記憶體系統,其中該快閃記憶體更包含對應於一第二邏輯區塊之一第二資料區塊及對應於該第二資料區塊之一日誌區塊,以及當儲存於該第二資料區塊及該日誌區塊之資料係為熱資料時,該快閃記憶體轉換層將該第二資料區塊及該日誌區塊分別轉換為該第二隨機寫入區塊及一第三隨機寫入區塊,以及利用該隨機寫入頁面映射表管理該第二及第三隨機寫入區塊。
- 如申請專利範圍第10項所述之記憶體系統,其中當儲存於該第二及該第三隨機寫入區塊之資料成為冷資料時,該快閃記憶體轉換層分配一第三資料區塊用於該第二邏輯區塊,將儲存於該第二及該第三隨機寫入區塊之有效資料拷貝至該第三資料區塊,以及藉由該頁面映射情況管理該第三資料區塊。
- 如申請專利範圍第10項所述之記憶體系統,其中當該第二資料區塊及該日誌區塊係為滿時,該快閃記憶體轉換層決定儲存於該第二資料區塊及該日誌區塊之資料係為熱資料。
- 如申請專利範圍第8項所述之記憶體系統,其中當對於該第一邏輯區塊之一第一存取被請求並且該第一及該第二隨機寫入區塊係為滿時,該快閃記憶體轉換層分配該快閃記憶體之一空白區塊作為該第一邏輯區塊之一第三隨機寫入區塊。
- 如申請專利範圍第8項所述之記憶體系統,其中當對於該第一邏輯區塊之存取被請求,該第一及該第二隨機寫入區塊係為滿並且該快閃記憶體中之空白區塊之一數量低於一預定數時,該快閃記憶體轉換層分配該快閃記憶體之一空白區塊作為一第三隨機寫入區塊,以及將該第一及該第二隨機區塊中之有效資料拷貝至該第三隨機寫入區塊並且抹除該第一及該第二隨機寫入區塊。
- 如申請專利範圍第7項所述之記憶體系統,其中該快閃記憶體及該介面裝置組成一記憶卡。
- 一種記憶體系統之映射方法,該記憶體系統包含一快閃記憶體及一介面裝置,該介面裝置耦接於該快閃記憶體及一主機之間,其中該介面裝置儲存一快閃記憶體轉換層,該記憶體系統之映射方法包含:藉由一頁面映射情況,利用一區塊映射表及一頁面映射表管理該快閃記憶體之多個資料區塊及多個日誌區塊,其中該頁面映射表對應於該區塊映射表;以及藉由一隨機寫入映射情況,利用一隨機頁面映射表管理該快閃記憶體之多個隨機寫入區塊,其中該隨機頁面映射表獨立於該區塊映射表及該頁面映射表。
- 如申請專利範圍第16項所述之記憶體系統之映射方法,更包含,當對於一邏輯區塊之一後續存取係為一隨機單一寫入操作時,將對應於該邏輯區塊之該多個資料區塊其中之一轉換為一隨機寫入區塊。
- 如申請專利範圍第17項所述之記憶體系統之映射方法,其中對應於該邏輯區塊之該後續存取是否係為該隨機單一寫入操作或一連續資料寫入操作,係依據自該主機提供之存取資訊決定。
- 如申請專利範圍第16項所述之記憶體系統之映射方法,更包含,當儲存於該被轉換之隨機寫入區塊之資料係為冷資料,或對於該邏輯區塊之該後續存取係為一連續資料寫入操作時,將對應於該邏輯區塊之該多個隨機寫入區塊之一轉換為一資料區塊。
- 如申請專利範圍第16項所述之記憶體系統之映射方法,更包含,當該多個資料區塊其中之一及該多個日誌區塊其中之一所儲存之資料係為熱資料,或對於一邏輯區塊之存取係為一隨機單一寫入操作時,將該資料區塊及該日誌區塊轉換為兩個隨機寫入區塊,其中該資料區塊對應於該邏輯區塊,並且該日誌區塊對應於該資料區塊。
- 如申請專利範圍第16項所述之記憶體系統之映射方法,更包含,當對應於一邏輯區塊之一組隨機寫入區塊之數量達到一預定數,並且該組隨機寫入區塊係為滿時,對於該組隨機寫入區塊執行一合併操作,其中該預定數大於二。
- 一種記憶體系統之映射方法,該記憶體系統包含一快閃記憶體及一介面裝置,該介面裝置耦接於該快閃記憶體及一主機之間,其中該介面裝置儲存一快閃記憶體轉換層,該記憶體系統之映射方法包含:藉由一頁面映射情況,利用一資料區塊映射表、一日誌區塊映射表,及一頁面映射表管理該快閃記憶體之一第一資料區塊;以及當對於該快閃記憶體之一第一邏輯區塊之一後續存取係為一隨機單一寫入操作時,將該第一資料區塊轉換為一第一隨機寫入區塊,以及利用獨立於該資料區塊映射表、該日誌區塊映射表及該頁面映射表之一隨機寫入頁面映射表管理該第一隨機寫入區塊。
- 如申請專利範圍第22項所述之記憶體系統之映射方法,其中該快閃記憶體更包含對應於該第一資料區塊之一第一日誌區塊,以及當對於該第一邏輯區塊之該後續存取係為一隨機單一寫入操作時,該映射方法更包含分別將該第一資料區塊及該第一日誌區塊分別轉換成該第一隨機寫入區塊及一第二隨機寫入區塊,以及使用該隨機寫入頁面映射表管理該第一及該第二隨機寫入區塊。
- 如申請專利範圍第23項所述之記憶體系統之映射方法,其中對於該第一邏輯區塊之該後續存取是否係為該隨機單一寫入操作或一連續資料寫入操作係依據自該主機提供之存取資訊決定。
- 如申請專利範圍第22項所述之記憶體系統之映射方法,其中該快閃記憶體更包含對應於一第二邏輯區塊之一第二資料區塊及對應於該第二資料區塊之一日誌區塊,以及該映射方法更包含,當儲存於該第二資料區塊及該日誌區塊之資料係為熱資料時,將該第二資料區塊及該日誌區塊分別轉換為一第二隨機寫入區塊及一第三隨機寫入區塊,以及利用該隨機寫入頁面映射表管理該第二及第三隨機寫入區塊。
- 如申請專利範圍第25項所述之記憶體系統之映射方法,更包含,當儲存於該第二及該第三隨機寫入區塊之資料成為冷資料時,分配用於該第二邏輯區塊之一第三資料區塊,將儲存於該第二及該第三隨機寫入區塊之有效資料拷貝至該第三資料區塊,以及藉由該頁面映射情況管理該第三資料區塊。
- 如申請專利範圍第22項所述之記憶體系統之映射方法,更包含,當對於該第一邏輯區塊之一第一存取被請求,並且該第一及該第二隨機寫入區塊係為滿時,分配該快閃記憶體之一空白區塊作為該第一邏輯區塊之一第三隨機寫入區塊。
- 如申請專利範圍第27項所述之記憶體系統之映射方法,更包含,當對於該第一邏輯區塊之一第二存取被請求,並且該第一、該第二及該第三隨機寫入區塊係為滿時,對該第一、該第二及該第三隨機寫入區塊執行一合併操作。
- 如申請專利範圍第22項所述之記憶體系統之映射方法,更包含,當對於該第一邏輯區塊之存取被請求,該第一及該第二隨機寫入區塊係為滿並且該快閃記憶體中之多個空白區塊之一數量低於一預定數時,對該第一及該第二隨機寫入區塊執行一合併操作,分配該快閃記憶體之一空白區塊作為一第三隨機寫入區塊,以及將該第一及該第二隨機寫入區塊中之有效資料拷貝至該第三隨機寫入區塊。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US22111409P | 2009-06-29 | 2009-06-29 | |
US12/694,463 US8364931B2 (en) | 2009-06-29 | 2010-01-27 | Memory system and mapping methods using a random write page mapping table |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201101030A TW201101030A (en) | 2011-01-01 |
TWI405082B true TWI405082B (zh) | 2013-08-11 |
Family
ID=43382000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099117731A TWI405082B (zh) | 2009-06-29 | 2010-06-02 | 記憶體系統及其映射方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8364931B2 (zh) |
CN (1) | CN101937319B (zh) |
TW (1) | TWI405082B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI601141B (zh) * | 2015-08-21 | 2017-10-01 | 晨星半導體股份有限公司 | 快閃記憶體的存取方法及相關的記憶體控制器與電子裝置 |
TWI625729B (zh) * | 2015-11-25 | 2018-06-01 | 旺宏電子股份有限公司 | 資料配置方法及應用其之電子系統 |
TWI750116B (zh) * | 2015-06-12 | 2021-12-21 | 南韓商三星電子股份有限公司 | 用於邏輯頁面的基元交換與修整(swat)之swat命令及應用程式介面(api) |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101739556B1 (ko) * | 2010-11-15 | 2017-05-24 | 삼성전자주식회사 | 데이터 저장 장치, 사용자 장치 및 그것의 주소 맵핑 방법 |
TWI417721B (zh) * | 2010-11-26 | 2013-12-01 | Etron Technology Inc | 衰減熱資料之方法 |
KR20120084906A (ko) * | 2011-01-21 | 2012-07-31 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 시스템 및 그 관리 방법 |
CN102163175B (zh) * | 2011-04-26 | 2013-02-27 | 西安交通大学 | 一种基于局部性分析的混合地址映射方法 |
US8793429B1 (en) * | 2011-06-03 | 2014-07-29 | Western Digital Technologies, Inc. | Solid-state drive with reduced power up time |
US20120317377A1 (en) * | 2011-06-09 | 2012-12-13 | Alexander Palay | Dual flash translation layer |
CN102364450A (zh) * | 2011-06-27 | 2012-02-29 | 浪潮电子信息产业股份有限公司 | 一种NandFlash物理地址和逻辑地址映射的方法 |
CN103270499B (zh) * | 2011-12-21 | 2016-10-05 | 华为技术有限公司 | 日志存储方法及系统 |
TWI605458B (zh) | 2012-04-25 | 2017-11-11 | Sony Corp | Non-volatile memory devices, non-volatile memory control devices, and non-volatile memory control methods |
CN103514095B (zh) * | 2012-06-18 | 2016-08-03 | 记忆科技(深圳)有限公司 | 一种数据库写入ssd 的方法和系统 |
JP5586718B2 (ja) * | 2012-06-19 | 2014-09-10 | 株式会社東芝 | 制御プログラム、ホスト装置の制御方法、情報処理装置およびホスト装置 |
CN103678141B (zh) * | 2012-09-05 | 2017-11-28 | 努比亚技术有限公司 | 闪存的管理方法和管理系统 |
US8880786B2 (en) * | 2012-09-28 | 2014-11-04 | Apple Inc. | Flash translation layer (FTL) database journaling schemes |
CN103873250B (zh) * | 2012-12-18 | 2017-06-20 | 中国移动通信集团河南有限公司 | 一种密文生成方法、密文解密方法及加密解密装置 |
KR101453313B1 (ko) | 2013-03-25 | 2014-10-22 | 아주대학교산학협력단 | 플래시 메모리 기반의 페이지 주소 사상 방법 및 시스템 |
CN104102585B (zh) * | 2013-04-03 | 2017-09-12 | 群联电子股份有限公司 | 映射信息记录方法、存储器控制器与存储器储存装置 |
JP2014206884A (ja) * | 2013-04-15 | 2014-10-30 | 株式会社フィックスターズ | 情報処理装置、情報処理方法、およびプログラム |
TWI503841B (zh) * | 2013-04-26 | 2015-10-11 | Phison Electronics Corp | 寫入方法、記憶體控制器與記憶體儲存裝置 |
CN104142895B (zh) * | 2013-05-08 | 2017-05-17 | 群联电子股份有限公司 | 写入方法、存储器控制器与存储器储存装置 |
US9612773B2 (en) * | 2013-11-21 | 2017-04-04 | Samsung Electronics Co., Ltd. | User device having a host flash translation layer (FTL), a method for transferring an erase count thereof, a method for transferring reprogram information thereof, and a method for transferring a page offset of an open block thereof |
CN104731794B (zh) * | 2013-12-19 | 2018-07-06 | 北京华易互动科技有限公司 | 一种冷热数据分片挖掘存储方法 |
KR20150139718A (ko) * | 2014-06-03 | 2015-12-14 | 에스케이하이닉스 주식회사 | 불휘발성 메모리를 제어하는 컨트롤러 및 그것을 포함하는 반도체 장치 |
KR102430198B1 (ko) | 2014-06-12 | 2022-08-05 | 삼성전자주식회사 | 플래시 저장 장치의 어드레스 매핑 테이블 정리 방법 |
WO2016195702A1 (en) * | 2015-06-05 | 2016-12-08 | Hewlett Packard Enterprise Development Lp | Compressed data block mapping |
KR20160143259A (ko) * | 2015-06-05 | 2016-12-14 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
TWI559139B (zh) * | 2015-09-15 | 2016-11-21 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
CN105205008B (zh) * | 2015-09-18 | 2018-07-20 | 成都三零嘉微电子有限公司 | 降低混合映射算法中日志块映射表内存资源占用的方法 |
CN105302736B (zh) * | 2015-09-21 | 2019-01-04 | 成都三零嘉微电子有限公司 | 一种提高混合映射中日志块数据整理性能的方法 |
TWI570559B (zh) * | 2015-12-28 | 2017-02-11 | 點序科技股份有限公司 | 快閃記憶體及其存取方法 |
US20170220252A1 (en) * | 2016-01-29 | 2017-08-03 | Faraday&Future Inc. | Flash emulated eeprom wrapper |
CN105843695A (zh) * | 2016-03-15 | 2016-08-10 | 深圳市凯立德科技股份有限公司 | 一种数据存储异常的处理方法、装置及设备 |
CN105956090B (zh) * | 2016-04-27 | 2019-06-11 | 中国科学技术大学 | 一种基于i/o自适应的日志文件系统数据存储方法 |
CN107544912B (zh) * | 2016-06-29 | 2021-09-03 | 北京忆恒创源科技股份有限公司 | 一种日志记录方法、加载方法及其装置 |
CN106874220A (zh) * | 2017-02-15 | 2017-06-20 | 济南浪潮高新科技投资发展有限公司 | 一种nand flash阵列二级地址映射表的实现方法 |
US10643707B2 (en) * | 2017-07-25 | 2020-05-05 | Western Digital Technologies, Inc. | Group write operations for a data storage device |
JP6785204B2 (ja) * | 2017-09-21 | 2020-11-18 | キオクシア株式会社 | メモリシステムおよび制御方法 |
WO2019127135A1 (zh) * | 2017-12-27 | 2019-07-04 | 华为技术有限公司 | 文件页表管理技术 |
US11003587B2 (en) * | 2018-05-03 | 2021-05-11 | SK Hynix Inc. | Memory system with configurable NAND to DRAM ratio and method of configuring and using such memory system |
CN109446109B (zh) * | 2018-10-25 | 2021-06-29 | 江苏华存电子科技有限公司 | 一种混合型记录实体映像表的方法 |
TWI749279B (zh) * | 2018-12-18 | 2021-12-11 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
US11347860B2 (en) * | 2019-06-28 | 2022-05-31 | Seagate Technology Llc | Randomizing firmware loaded to a processor memory |
CN110543435B (zh) * | 2019-09-05 | 2022-02-08 | 北京兆易创新科技股份有限公司 | 存储单元的混合映射操作方法、装置、设备及存储介质 |
CN113010091B (zh) * | 2019-12-20 | 2023-06-16 | 华为技术有限公司 | 数据写入固态硬盘的方法、垃圾回收的方法、装置 |
CN113448487A (zh) * | 2020-03-25 | 2021-09-28 | 慧荣科技股份有限公司 | 写入闪存管理表的计算机可读取存储介质、方法及装置 |
CN115668153A (zh) * | 2020-07-31 | 2023-01-31 | 华为技术有限公司 | 闪存控制方法和装置 |
US11494097B2 (en) * | 2020-12-07 | 2022-11-08 | Western Digital Technologies, Inc. | Fast initialization of secure HMB |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0882264B1 (en) * | 1996-11-25 | 2006-03-22 | Macronix International Co., Ltd. | Flash memory mass storage system and associated method |
TW200745930A (en) * | 2005-08-03 | 2007-12-16 | Sandisk Corp | Data consolidation and garbage collection in direct data file storage memories |
US20080307192A1 (en) * | 2007-06-08 | 2008-12-11 | Sinclair Alan W | Method And System For Storage Address Re-Mapping For A Memory Device |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8027194B2 (en) * | 1988-06-13 | 2011-09-27 | Samsung Electronics Co., Ltd. | Memory system and method of accessing a semiconductor memory device |
CN100504812C (zh) * | 2003-11-21 | 2009-06-24 | 群联电子股份有限公司 | 随机存取闪存的控制方法 |
US20090193184A1 (en) * | 2003-12-02 | 2009-07-30 | Super Talent Electronics Inc. | Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System |
KR100568115B1 (ko) * | 2004-06-30 | 2006-04-05 | 삼성전자주식회사 | 점진적 머지 방법 및 그것을 이용한 메모리 시스템 |
KR100684942B1 (ko) * | 2005-02-07 | 2007-02-20 | 삼성전자주식회사 | 복수의 사상 기법들을 채용한 적응형 플래시 메모리 제어장치 및 그것을 포함한 플래시 메모리 시스템 |
KR100806343B1 (ko) * | 2006-10-19 | 2008-02-27 | 삼성전자주식회사 | 플래시 메모리를 포함한 메모리 시스템 및 그것의 맵핑테이블 관리 방법 |
KR100771521B1 (ko) * | 2006-10-30 | 2007-10-30 | 삼성전자주식회사 | 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법 |
KR100885181B1 (ko) * | 2007-02-06 | 2009-02-23 | 삼성전자주식회사 | 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법 |
KR101028929B1 (ko) * | 2008-12-31 | 2011-04-12 | 성균관대학교산학협력단 | 실시간 시스템을 위한 로그 블록 연관성 분산 방법 및 이를수행하는 플래시 메모리 장치 |
-
2010
- 2010-01-27 US US12/694,463 patent/US8364931B2/en active Active
- 2010-06-01 CN CN201010188270.1A patent/CN101937319B/zh active Active
- 2010-06-02 TW TW099117731A patent/TWI405082B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0882264B1 (en) * | 1996-11-25 | 2006-03-22 | Macronix International Co., Ltd. | Flash memory mass storage system and associated method |
TW200745930A (en) * | 2005-08-03 | 2007-12-16 | Sandisk Corp | Data consolidation and garbage collection in direct data file storage memories |
US20080307192A1 (en) * | 2007-06-08 | 2008-12-11 | Sinclair Alan W | Method And System For Storage Address Re-Mapping For A Memory Device |
TW200905680A (en) * | 2007-06-08 | 2009-02-01 | Sandisk Corp | Method and system for storage address re-mapping for a memory device |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI750116B (zh) * | 2015-06-12 | 2021-12-21 | 南韓商三星電子股份有限公司 | 用於邏輯頁面的基元交換與修整(swat)之swat命令及應用程式介面(api) |
TWI601141B (zh) * | 2015-08-21 | 2017-10-01 | 晨星半導體股份有限公司 | 快閃記憶體的存取方法及相關的記憶體控制器與電子裝置 |
TWI625729B (zh) * | 2015-11-25 | 2018-06-01 | 旺宏電子股份有限公司 | 資料配置方法及應用其之電子系統 |
Also Published As
Publication number | Publication date |
---|---|
TW201101030A (en) | 2011-01-01 |
US8364931B2 (en) | 2013-01-29 |
CN101937319B (zh) | 2013-02-20 |
US20100332732A1 (en) | 2010-12-30 |
CN101937319A (zh) | 2011-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI405082B (zh) | 記憶體系統及其映射方法 | |
US7487303B2 (en) | Flash memory device and associated data merge method | |
US8055837B2 (en) | Data writing method for non-volatile memory and controller using the same | |
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 | |
US8407397B2 (en) | Block management method for flash memory and controller and storage system using the same | |
US8117374B2 (en) | Flash memory control devices that support multiple memory mapping schemes and methods of operating 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 | |
US7395384B2 (en) | Method and apparatus for maintaining data on non-volatile memory systems | |
JP4991320B2 (ja) | ホスト装置およびメモリシステム | |
US8386698B2 (en) | Data accessing method for flash memory and storage system and controller using the same | |
TWI453585B (zh) | 用於位址轉譯之記憶體裝置及記憶體位址轉譯之方法 | |
US20080098159A1 (en) | Memory system including flash memory and merge method thereof | |
US20100169588A1 (en) | Optimized memory management for random and sequential data writing | |
CN105718530A (zh) | 文件存储系统及其文件存储控制方法 | |
KR20100094241A (ko) | 예비 블록을 포함하지 않는 불휘발성 메모리 장치 | |
JPWO2009096180A1 (ja) | メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム | |
US20100318726A1 (en) | Memory system and memory system managing method | |
US20090172269A1 (en) | Nonvolatile memory device and associated data merge method | |
TW201229756A (en) | Nonvolatile memory apparatus performing FTL function and method for controlling the same | |
KR100845552B1 (ko) | Ftl의 어드레스 매핑 방법 | |
TW201222249A (en) | Storage device | |
KR20090116505A (ko) | 불휘발성 메모리 장치를 위한 파일 시스템 및 그것을포함하는 컴퓨팅 시스템 | |
US8850160B2 (en) | Adaptive write behavior for a system having non-volatile memory | |
KR100780963B1 (ko) | 메모리 카드 및 메모리 카드의 구동 방법 |