TWI749279B - 資料儲存裝置與資料處理方法 - Google Patents
資料儲存裝置與資料處理方法 Download PDFInfo
- Publication number
- TWI749279B TWI749279B TW107145763A TW107145763A TWI749279B TW I749279 B TWI749279 B TW I749279B TW 107145763 A TW107145763 A TW 107145763A TW 107145763 A TW107145763 A TW 107145763A TW I749279 B TWI749279 B TW I749279B
- Authority
- TW
- Taiwan
- Prior art keywords
- mapping table
- memory
- memory block
- data
- index value
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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
- 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/68—Details of translation look-aside buffer [TLB]
- G06F2212/683—Invalidation
-
- 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/7209—Validity control, e.g. using flags, time stamps or sequence numbers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
Abstract
一種資料儲存裝置,包括一記憶體裝置以及一記憶體控制器。記憶體裝置包括複數記憶體區塊,各記憶體區塊包括複數物理資料頁。記憶體控制器耦接記憶體裝置,用以存取記憶體裝置。記憶體控制器選擇一既定記憶體區塊用以接收資料,並且對應地於一第一映射表格中紀錄複數邏輯位址。記憶體控制器包括一緩衝記憶體,第一映射表係儲存於緩衝記憶體,用以紀錄寫入既定記憶體區塊之各物理資料頁之資料係指向哪個邏輯資料頁。於既定記憶體區塊被寫滿時,記憶體控制器根據第一映射表格編輯一第二映射表格與一第三映射表格,並且將第二映射表格與第三映射表格儲存於記憶體裝置。第二映射表格對應於複數邏輯資料頁,用以紀錄各邏輯資料頁之資料被儲存於哪個記憶體區塊的哪個物理資料頁,並且第三映射表格對應於既定記憶體區塊之該等物理資料頁,用以指示各物理資料頁為有效資料頁或無效資料頁。
Description
本發明係有關於適用於一資料儲存裝置之一種資料處理方法,可快速並且準確地搜尋出記憶體區塊的有效資料頁。
隨著資料儲存裝置的科技在近幾年快速地成長,許多資料儲存裝置,如符合SD/MMC規格、CF規格、MS規格與XD規格的記憶卡、固態硬碟、嵌入式多媒體記憶卡(embedded Multi Media Card,縮寫為eMMC)以及通用快閃記憶體儲存(Universal Flash Storage,縮寫為UFS)已經廣泛地被應用在多種用途上。因此,在這些資料儲存裝置上,有效率的存取控制也變成一個重要的議題。
為了提高資料儲存裝置的存取效能,本發明提出一種新的資料處理方法,可有效率地處理記憶體裝置所儲存之資料,以提升記憶體裝置之效能。
本發明揭露一種資料儲存裝置,包括一記憶體裝置以及一記憶體控制器。記憶體裝置包括複數記憶體區塊,各記憶體區塊包括複數物理資料頁。記憶體控制器耦接記憶體裝置,用以存取記憶體裝置。記憶體控制器選擇一既定記憶體區塊用以接收資料,並且對應地於一第一映射表格中紀錄複數邏輯位址。記憶體控制器
包括一緩衝記憶體,第一映射表係儲存於緩衝記憶體,用以紀錄寫入既定記憶體區塊之各物理資料頁之資料係指向哪個邏輯資料頁。於既定記憶體區塊被寫滿時,記憶體控制器根據第一映射表格編輯一第二映射表格與一第三映射表格,並且將第二映射表格與第三映射表格儲存於記憶體裝置。第二映射表格對應於複數邏輯資料頁,用以紀錄各邏輯資料頁之資料被儲存於哪個記憶體區塊的哪個物理資料頁,並且第三映射表格對應於既定記憶體區塊之該等物理資料頁,用以指示各物理資料頁為有效資料頁或無效資料頁。
本發明揭露一種資料處理方法,適用於一資料儲存裝置,資料儲存裝置包括一記憶體裝置以及一記憶體控制器,記憶體裝置包括複數記憶體區塊,記憶體區塊包括複數物理資料頁,記憶體控制器耦接記憶體裝置,用以存取記憶體裝置,該方法包括:由記憶體控制器選擇一既定記憶體區塊用以接收資料,並且對應地於一第一映射表格中紀錄複數邏輯位址,其中第一映射表係儲存於記憶體控制器之一緩衝記憶體,用以紀錄寫入既定記憶體區塊之各物理資料頁之資料係指向哪個邏輯資料頁;於既定記憶體區塊被寫滿時,由記憶體控制器根據第一映射表格編輯一第二映射表格與一第三映射表格,其中第二映射表格對應於複數邏輯資料頁,用以紀錄各邏輯資料頁之資料被儲存於哪個記憶體區塊的哪個物理資料頁,並且第三映射表格對應於既定記憶體區塊之物理資料頁,用以指示各物理資料頁為有效資料頁或無效資料頁;以及由記憶體控制器將第二映射表格與第三映射表格儲存於記憶體裝置。
100:資料儲存裝置
110:記憶體控制器
112:微處理器
112M:唯讀記憶體
112C:程式碼
114:控制邏輯
116:緩衝記憶體
118:介面邏輯
120:記憶體裝置
130:主機裝置
132:編碼器
134:解碼器
Table_1、Table_2、Table_3:映射表格
第1圖係顯示根據本發明之一實施例所述之資料儲存裝置的示意圖。
第2A~2F圖係顯示根據本發明之一實施例所述之映射表格範例。
第3圖係顯示根據本發明之一實施例所述之資料處理方法之範例流程圖。
為讓本發明之目的、特徵和優點能更明顯易懂,下文特舉出本發明之具體實施例,並配合所附圖式,作詳細說明如下。目的在於說明本發明之精神而非用以限定本發明之保護範圍,應理解下列實施例可經由軟體、硬體、韌體、或上述任意組合來實現。
第1圖係顯示根據本發明之一實施例所述之資料儲存裝置100的示意圖。資料儲存裝置100包括一記憶體裝置120,例如,一快閃記憶體(Flash Memory)模組,以及一記憶體控制器110,且記憶體控制器110用來存取(Access)記憶體裝置120。根據本發明一實施例,記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory,ROM)112M、一控制邏輯114、一緩衝記憶體116、與一介面邏輯118。唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對記憶體裝置120之存取。控制邏輯114包含了一編碼器132以及一解碼器134,其中編碼器132用來對寫入到記憶體裝置120中的資料進行編碼以產生對應的校驗碼(或稱,錯誤更正碼(Error Correction Code),ECC),而解碼器134用來將從記憶體裝置120所讀出的資料進行解碼。
於典型狀況下,記憶體裝置120包含了多個快閃記憶體晶片,而每一個快閃記憶體晶片包含複數個記憶體區塊(Block),而該控制器(例如,透過微處理器112執行程式碼112C之記憶體控制器110)對記憶體裝置120進行抹除資料運作係以區塊為單位來進行。另外,一記憶體區塊可記錄(包含)特定數量的資料頁(Page),即,物理資料頁,其中該控制器(例如,透過微處理器112執行程式碼112C之記憶體控制器110)對記憶體裝置120進行寫入資料之運作係以資料頁為單位來進行寫入。
實作上,透過微處理器112執行程式碼112C之記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制記憶體裝置120之存取運作(尤其是對至少一區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主機裝置(Host Device)130溝通。緩衝記憶體116係以隨機存取記憶體(Random Access Memory,RAM)來實施。例如,緩衝記憶體116可以是靜態隨機存取記憶體(Static RAM,SRAM),但本發明不限於此。
在一實施例中,資料儲存裝置100可以是可攜式記憶體裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡),且主機裝置130為一可與資料儲存裝置連接的電子裝置,例如手機、筆記型電腦、桌上型電腦...等等。而在另一實施例中,資料儲存裝置100可以是固態硬碟或符合通用快閃記憶體儲存(Universal Flash Storage,UFS)或嵌入式多媒體記憶卡(Embedded Multi Media Card,EMMC)規格之嵌入式儲存裝置,以設置在一電子裝
置中,例如設置在手機、筆記型電腦、桌上型電腦之中,而此時主機裝置130可以是該電子裝置的一處理器。
主機裝置130可對資料儲存裝置100發出指令,例如,讀取指令或寫入指令,用以存取記憶體裝置120所儲存之資料,或者進一步控制、管理資料儲存裝置100。
根據本發明之一實施例,記憶體裝置120所包含之複數個記憶體區塊中可單層式儲存(Single-Level Cell,SLC)記憶體區塊、多層式儲存(Multiple-Level Cell,MLC)記憶體區塊以及/或是三層式儲存(Triple-Level Cell,TLC)記憶體區塊。SLC記憶體區塊的每個記憶體單元中儲存一個位元資料,MLC記憶體區塊的每個記憶體單元中儲存兩個位元資料,TLC記憶體區塊的每個記憶體單元中儲存三個位元資料。
一般而言,記憶體裝置120可大體被區分為三個區域,包含系統區域、資料區域以及備用區域。記憶體控制器110可自備用區域選擇一既定記憶體區塊作為快取記憶體,或稱緩存器(buffer),用以接收並暫存資料。待緩存器被寫滿時,記憶體控制器110再將作為緩存器之既定記憶體區塊更新成資料區域的資料區塊。舉例而言,若用以接收並暫存資料的緩存器為MLC或TLC記憶體區塊,待緩存器被寫滿時,可直接被更新為資料區域的資料區塊。若用以接收並暫存資料的緩存器為SLC記憶體區塊,待一定數量之緩存器被寫滿時,可透過垃圾回收程序,將多個緩存器記憶體區塊所儲存之資料搬移至MLC或TLC記憶體區塊(目標記憶體區塊),藉此操作將目標記憶體區塊更新為資料區域的資料區塊。
根據本發明之一實施例,記憶體控制器110會於緩
衝記憶體116維護一第一映射表格。於利用既定記憶體區塊接收資料時,記憶體控制器110會對應地於第一映射表格中紀錄複數邏輯位址。根據本發明之一實施例,第一映射表格為一快閃記憶體對主機映射(Flash to Host mapping table,縮寫為F2H)表格。第一映射表格紀錄寫入既定記憶體區塊之各物理資料頁之資料係指向哪個邏輯資料頁,例如,第一映射表格中可紀錄對應之邏輯頁面之邏輯區塊位址(Logical Block Address,縮寫為LBA),或是以其他形式記錄邏輯資料頁之邏輯位址。
根據本發明之一實施例,第一映射表格可以一陣列形式記錄邏輯位址,其中第一映射表格之各陣列索引值對應於既定記憶體區塊之一物理資料頁。即,第一映射表格之陣列索引值與既定記憶體區塊之物理資料頁有著一對一的對應關係。舉例而言,假設第一映射表格Table_1所使用的起始陣列索引值為0,則Table_1[0](第一映射表格Table_1之第1筆記錄)所紀錄的邏輯位址為既定記憶體區塊的第1個物理資料頁之資料所指向的邏輯資料頁,Table_1[1](第一映射表格Table_1之第2筆記錄)所紀錄的邏輯位址為既定記憶體區塊的第2個物理資料頁之資料所指向的邏輯資料頁,並依此類推。
根據本發明之一實施例,記憶體控制器110會依物理資料頁編號少至多的順序將資料寫入既定記憶體區塊,因此也會依陣列索引值少至多的順序將各物理資料頁所對應之邏輯資料頁之邏輯位址紀錄於第一映射表格Table_1中。
根據本發明之一實施例,於既定記憶體區塊被寫滿時,記憶體控制器110會根據第一映射表格Table_1編輯一第二映
射表格Table_2與一第三映射表格Table_3。根據本發明之一實施例,第二映射表格Table_2與第三映射表格Table_3被儲存於記憶體裝置120之系統區域。第二映射表格Table_2為一主機對快閃記憶體映射(Host to Flash mapping table,縮寫為H2F)表格,第二映射表格Table_2所記錄的複數筆資料係對應於複數邏輯資料頁。第二映射表格Table_2可以一陣列形式記錄各邏輯資料頁所對應之一記憶體區塊編號以及一資料頁編號,用以紀錄各邏輯資料頁之資料係指向(被儲存於)哪個記憶體區塊的哪個物理資料頁,其中第二映射表格Table_2之各陣列索引值係對應於複數邏輯資料頁之一者。即,第二映射表格之陣列索引值與邏輯資料頁有著一對一的對應關係。舉例而言,假設第二映射表格Table_2所使用的起始陣列索引值為0,則Table_2[0](第二映射表格Table_2之第1筆記錄)所紀錄的記憶體區塊編號以及資料頁編號指示出主機系統中第1個邏輯資料頁之資料被存放的實體記憶體區塊及資料頁位置,Table_2[1](第二映射表格Table_2之第2筆記錄)所紀錄的記憶體區塊編號以及資料頁編號指示出主機系統中第2個邏輯資料頁之資料被存放的實體記憶體區塊及資料頁位置,並依此類推。
根據本發明之一實施例,於既定記憶體區塊被寫滿時,記憶體控制器110會根據第一映射表格Table_1及第二映射表格Table_2的內容編輯一第三映射表格Table_3。第三映射表格Table_3所記錄的複數筆資料對應於既定記憶體區塊之複數物理資料頁。第三映射表格Table_3以一陣列形式記錄既定記憶體區塊之各物理資料頁為有效資料頁或無效資料頁,其中第三映射表格之各陣列索引值對應於既定記憶體區塊之一物理資料頁。即,第三映射
表格之陣列索引值與既定記憶體區塊之物理資料頁有著一對一的對應關係。舉例而言,假設第三映射表格Table_3所使用的起始陣列索引值為0,則Table_3[0](第三映射表格Table_3之第1筆記錄)所紀錄的內容指示出既定記憶體區塊的第1個物理資料頁為有效資料頁或無效資料頁,Table_3[1](第三映射表格Table_3之第2筆記錄)所紀錄的內容指示出既定記憶體區塊的第2個物理資料頁為有效資料頁或無效資料頁,並依此類推。
根據本發明之一實施例,於編輯第二映射表格Table_2時,記憶體控制器110自第一映射表格Table_1之起始陣列索引值開始依序根據第一映射表格Table_1所記錄之邏輯位址查找第二映射表格Table_2,並且根據既定記憶體區塊之一記憶體區塊編號以及第一映射表格Table_1所對應之陣列索引值更新第二映射表格Table_2所記錄的內容。
第2A~2B圖係顯示根據本發明之一實施例所述之映射表格範例,用以說明記憶體控制器110根據第一映射表格Table_1編輯第二映射表格Table_2的操作。於此範例中,如第2A圖所示,第一映射表格Table_1之第1筆紀錄Table_1[0]的內容為10,用以表示既定記憶體區塊的第1個物理資料頁之資料係指向的邏輯位址為10的邏輯資料頁。記憶體控制器110根據此邏輯位址查找第二映射表格Table_2,將包含此邏輯位址的一或多筆紀錄載入緩衝記憶體116中,用以進行內容的編輯或更新。舉例而言,記憶體控制器110可存取第二映射表格Table_2之第1~100筆紀錄並將之載入緩衝記憶體116中。接著,記憶體控制器110可將此既定記憶體區塊之記憶體區塊編號以及目前正在處理的第一映射表
格Table_1所對應之物理資料頁之資料頁編號(或,第一映射表格Table_1所對應之陣列索引值)寫入第二映射表格Table_2中對應的位置。舉例而言,假設既定記憶體區塊之記憶體區塊編號為101,既定記憶體區塊之物理資料頁從編號0開始配置,則記憶體控制器110可如第2B圖所示將(101,0)的內容寫入第二映射表格Table_2的第11筆紀錄中,其中的數字0即為第1個物理資料頁的資料頁編號。
第2C~2D圖係顯示根據本發明之一實施例所述之映射表格範例,用以說明記憶體控制器110根據第一映射表格Table_1編輯第三映射表格Table_3的操作。根據本發明之一實施例,於編輯第三映射表格時,記憶體控制器110將第三映射表格Table_3對應於第一映射表格Table_1相同位置的內容設定為有效。舉例而言,於根據既定記憶體區塊之記憶體區塊編號(例如,上述之101)以及第一映射表格所對應之陣列索引值(例如,上述之0)更新第二映射表格所記錄的內容後,將第三映射表格中相同陣列索引值(例如,上述之0)所對應的內容設定為有效,如第2C圖所示,第三映射表格Table_3的第1筆資料Table_3[0]填入灰色網底,用以表示其所對應的內容被設定為有效。
待第一映射表格Table_1之第1筆紀錄被更新至第二映射表格Table_2與第三映射表格Table_3後,記憶體控制器110接著根據第一映射表格Table_1之第2筆紀錄編輯/更新第二映射表格Table_2與第三映射表格Table_3,並依此類推。舉例而言,如第2D圖所示,由於第一映射表格Table_1之第2筆紀錄Table_1[1]為5,記憶體控制器110將(101,1)的內容寫入第二映
射表格Table_2的第6筆紀錄中,並且將該第三映射表格中Table_3相同陣列索引值(例如,上述之1)所對應的內容設定為有效。
然而,記憶體區塊所儲存的資料亦有可能已經無效。舉例而言,當記憶體區塊中之一特定資料頁所儲存之資料與其他資料頁指到相同的邏輯位址,且特定資料頁的資料為較早被儲存之資料,則該特定資料頁被判斷為無效資料頁。因此,根據本發明之一實施例,於編輯第三映射表格的過程中,實際上不僅參考第一映射表格Table_1所紀錄的內容,記憶體控制器110亦會根據第二映射表格Table_2所紀錄的內容做調整,用以於發現無效資料頁時,可將第三映射表格中Table_3中先前已被設定為有效的內容更改為無效,以準確地記錄既定記憶體區塊中的有效資料頁與無效資料頁。
根據本發明之一實施例,當記憶體控制器110於查找第二映射表格Table_2時,若發現第二映射表格Table_2之某一特定位置已記錄了此既定記憶體區塊之記憶體區塊編號以及一第一陣列索引值,且於第一映射表格Table_1之一第二陣列索引值所對應的內容中被記錄之邏輯位址亦指到第二映射表格Table_2之該相同特定位置時,記憶體控制器110將不只是根據既定記憶體區塊之記憶體區塊編號以及第二陣列索引值更新第二映射表格Table_2之特定位置所對應的內容,以及將第三映射表格Table_3之第二陣列索引值所對應的內容設定為有效,更會進一步將第三映射表格Table_3之第一陣列索引值所對應的內容設定為無效。
第2E~2F圖係顯示根據本發明之一實施例所述之映射表格範例,用以說明記憶體控制器110根據第一映射表格
Table_1與第二映射表格Table_2編輯第三映射表格Table_3的操作。如第2E圖所示,當記憶體控制器110進行到根據第一映射表格Table_1的第9筆紀錄編輯/更新第二映射表格Table_2及第三映射表格Table_3時,由於第一映射表格Table_1之第9筆紀錄Table_1[8]為5,記憶體控制器110必須將(101,8)的內容寫入第二映射表格Table_2的第6筆紀錄中,並且將該第三映射表格中Table_3相同陣列索引值(例如,上述之8)所對應的內容設定為有效。然而,由於記憶體控制器110於查找第二映射表格Table_2時,會發現第二映射表格Table_2的第6筆紀錄Table_2[5]已記錄了相同的記憶區塊編號,因此,記憶體控制器110可直接判斷這筆先前被寫入的紀錄中所對應的物理資料頁已為無效資料頁。由於此物理資料頁已為無效資料頁,因此,如第2F圖所示,記憶體控制器110可進一步將第三映射表格Table_3之陣列索引值1所對應的內容設定為無效。換言之,於本發明之實施例中,記憶體控制器110可根據第二映射表格Table_2所紀錄的內容(例如,上述之Table_2[5]所記錄的資料頁編號或陣列索引值1),將第三映射表格Table_3之相同陣列索引值所對應的內容設定為無效。
根據本發明之一實施例,第三映射表格Table_3的內容可包含位元0與位元1兩種資訊,以表示對應之資料頁為有效或無效。舉例而言,記憶體控制器110可於將第三映射表格Table_3之各陣列索引值所對應的內容設定為有效時,寫入位元1,並且於將第三映射表格Table_3之各陣列索引值所對應的內容設定為無效時,寫入位元0。值得注意的是,本發明並不限於使用位元0與1來表示資料頁是否有效。舉例而言,記憶體控制器110亦可
藉由寫入兩個不同的其他數值,來表示資料頁是否有效。
於記憶體控制器110需要讀取第二映射表格Table_2及/或第三映射表格Table_3之其他筆紀錄(例如,第101~200筆紀錄)前,或者待記憶體控制器110根據第一映射表格Table_1的最後一筆紀錄編輯/更新第二映射表格Table_2及第三映射表格Table_3後,可將第二映射表格Table_2及第三映射表格Table_3的內容更新/寫回至記憶體裝置120之系統區域。上述的操作可被應用於任一個被選擇作為接收資料的記憶體區塊,用以於該記憶體區塊被寫滿後,根據該記憶體區塊被寫入的資料更新第二映射表格Table_2的內容及編輯該記憶體區塊所對應之第三映射表格Table_3的內容。
根據本發明之一實施例,於將第二映射表格Table_2及第三映射表格Table_3的內容更新/寫回至記憶體裝置120後,第一映射表格Table_1所儲存之資料便可被捨棄。即,於本發明之一實施例中,資料儲存裝置100可不再為記憶體區塊保留其所對應之快閃記憶體對主機映射(F2H)表格。
儲存於系統區域的第二映射表格Table_2及第三映射表格Table_3可供記憶體控制器110於爾後須執行一些特定的程序時使用。舉例而言,根據本發明之一實施例,當記憶體控制器110須執行一垃圾回收程序,用以將一或多個記憶體區塊中的有效資料頁所儲存之資料搬移至一目標記憶體區塊時,可直接根據各記憶體區塊所對應之第三映射表格Table_3的內容快速地判斷出哪些物理資料頁仍為有效資料頁,如此一來,便可以直接挑選出有效資料頁,並將其所儲存之資料搬移至目標記憶體區塊。
第3圖係顯示根據本發明之一實施例所述之資料處理方法之範例流程圖。首先,於記憶體控制器利用一既定記憶體區塊用以接收資料時,對應地於一第一映射表格中紀錄複數邏輯位址,用以紀錄寫入該既定記憶體區塊之各物理資料頁之資料係指向哪個邏輯資料頁(步驟S302)。接著,於既定記憶體區塊被寫滿時,記憶體控制器根據第一映射表格編輯一第二映射表格與一第三映射表格(步驟S304),其中第二映射表格對應於複數邏輯資料頁,用以紀錄各邏輯資料頁之資料被儲存於哪個記憶體區塊的哪個物理資料頁,並且第三映射表格對應於既定記憶體區塊之複數物理資料頁,用以指示各物理資料頁為有效資料頁或無效資料頁。最後,記憶體控制器將編輯過的第二映射表格與第三映射表格儲存於記憶體裝置(步驟S306)。
如上述,由於儲存於記憶體裝置120內之(一或多個)第三映射表格Table_3直接紀錄了對應之記憶體區塊內的物理資料頁為有效或無效,因此記憶體控制器110可根據第三映射表格Table_3的內容快速地判斷出哪些物理資料頁仍為有效資料頁,如此一來,便可以直接挑選出有效資料頁,大幅提升存取記憶體裝置之效能。
申請專利範圍中用以修飾元件之“第一”、“第二”、“第三”等序數詞之使用本身未暗示任何優先權、優先次序、各元件之間之先後次序、或方法所執行之步驟之次序,而僅用作標識來區分具有相同名稱(具有不同序數詞)之不同元件。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範
圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100:資料儲存裝置
110:記憶體控制器
112:微處理器
112M:唯讀記憶體
112C:程式碼
114:控制邏輯
116:緩衝記憶體
118:介面邏輯
120:記憶體裝置
130:主機裝置
132:編碼器
134:解碼器
Claims (12)
- 一種資料儲存裝置,包括:一記憶體裝置,包括複數記憶體區塊,各記憶體區塊包括複數物理資料頁;以及一記憶體控制器,耦接該記憶體裝置,用以存取該記憶體裝置,其中該記憶體控制器選擇一既定記憶體區塊用以接收資料,並且對應地於一第一映射表格中紀錄複數邏輯位址,其中該記憶體控制器包括一緩衝記憶體,該第一映射表係儲存於該緩衝記憶體,用以紀錄寫入該既定記憶體區塊之各物理資料頁之資料係指向哪個邏輯資料頁,於該既定記憶體區塊被寫滿時,該記憶體控制器根據該第一映射表格編輯一第二映射表格以及根據該第一映射表格與該第二映射表格編輯一第三映射表格,並且將該第二映射表格與該第三映射表格儲存於該記憶體裝置,其中該第二映射表格對應於複數邏輯資料頁,用以紀錄各邏輯資料頁之資料被儲存於哪個記憶體區塊的哪個物理資料頁,並且該第三映射表格對應於該既定記憶體區塊之該等物理資料頁,用以指示各物理資料頁為有效資料頁或無效資料頁,以及於將該第二映射表格與該第三映射表格儲存於該記憶體裝置後,該記憶體控制器更捨棄該第一映射表格所儲存之資料。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該第一映射表格以一陣列形式記錄該等邏輯位址,該第一映射表格之各陣列索引值對應於該既定記憶體區塊之一物理資料頁,該第二映射表格以一陣列形式記錄各邏輯資料頁所對應之一記憶體 區塊編號以及一資料頁編號,該第二映射表格之各陣列索引值對應於該等邏輯資料頁之一者,並且該第三映射表格以一陣列形式記錄該既定記憶體區塊之各物理資料頁為有效資料頁或無效資料頁,該第三映射表格之各陣列索引值對應於該既定記憶體區塊之一物理資料頁。
- 如申請專利範圍第2項所述之資料儲存裝置,其中於編輯該第二映射表格時,該記憶體控制器自該第一映射表格之一起始陣列索引值開始依序根據該第一映射表格所記錄之該等邏輯位址查找該第二映射表格,並且根據該既定記憶體區塊之一記憶體區塊編號以及該第一映射表格所對應之該陣列索引值更新該第二映射表格所記錄的內容。
- 如申請專利範圍第3項所述之資料儲存裝置,其中於編輯該第三映射表格時,該記憶體控制器於根據該既定記憶體區塊之該記憶體區塊編號以及該第一映射表格所對應之該陣列索引值更新該第二映射表格所記錄的內容後,將該第三映射表格中相同陣列索引值所對應的內容設定為有效。
- 如申請專利範圍第4項所述之資料儲存裝置,其中於編輯該第二映射表格與該第三映射表格時,當該記憶體控制器於查找該第二映射表格時發現該第二映射表格之一特定位置已記錄了該既定記憶體區塊之該記憶體區塊編號以及一第一陣列索引值,且於該第一映射表格之一第二陣列索引值所對應的內容中被記錄之該邏輯位址亦指到該第二映射表格之該特定位置時,該記憶體控制器根據該既定記憶體區塊之該記憶體區塊編號以及該第二陣列索引值更新該第二映射表格之該特定位置所對應 的內容,將該第三映射表格之該第二陣列索引值所對應的內容設定為有效,並且將該第三映射表格之該第一陣列索引值所對應的內容設定為無效。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該記憶體控制器更根據該第三映射表格執行一垃圾回收程序,用以將該既定記憶體區塊中的一或多個有效資料頁所儲存之資料搬移至一目標記憶體區塊。
- 一種資料處理方法,適用於一資料儲存裝置,該資料儲存裝置包括一記憶體裝置以及一記憶體控制器,該記憶體裝置包括複數記憶體區塊,記憶體區塊包括複數物理資料頁,該記憶體控制器耦接該記憶體裝置,用以存取該記憶體裝置,該方法包括:由該記憶體控制器選擇一既定記憶體區塊用以接收資料,並且對應地於一第一映射表格中紀錄複數邏輯位址,其中該第一映射表係儲存於該記憶體控制器之一緩衝記憶體,用以紀錄寫入該既定記憶體區塊之各物理資料頁之資料係指向哪個邏輯資料頁;於該既定記憶體區塊被寫滿時,由該記憶體控制器根據該第一映射表格編輯一第二映射表格以及根據該第一映射表格與該第二映射表格編輯一第三映射表格,其中該第二映射表格對應於複數邏輯資料頁,用以紀錄各邏輯資料頁之資料被儲存於哪個記憶體區塊的哪個物理資料頁,並且該第三映射表格對應於該既定記憶體區塊之該等物理資料頁,用以指示各物理資料頁為有效資料頁或無效資料頁;以及由該記憶體控制器將該第二映射表格與該第三映射表格儲存於 該記憶體裝置,並且於將該第二映射表格與該第三映射表格儲存於該記憶體裝置後,捨棄該第一映射表格所儲存之資料。
- 如申請專利範圍第7項所述之資料處理方法,其中該第一映射表格以一陣列形式記錄該等邏輯位址,該第一映射表格之各陣列索引值對應於該既定記憶體區塊之一物理資料頁,該第二映射表格以一陣列形式記錄各邏輯資料頁所對應之一記憶體區塊編號以及一資料頁編號,該第二映射表格之各陣列索引值對應於該等邏輯資料頁之一者,並且該第三映射表格以一陣列形式記錄該既定記憶體區塊之各物理資料頁為有效資料頁或無效資料頁,該第三映射表格之一陣列索引值對應於該既定記憶體區塊之一物理資料頁。
- 如申請專利範圍第8項所述之資料處理方法,其中於該既定記憶體區塊被寫滿時,由該記憶體控制器根據該第一映射表格編輯該第二映射表格與該第三映射表格之步驟更包括:於編輯該第二映射表格時,自該第一映射表格之一起始陣列索引值開始依序根據該第一映射表格所記錄之該等邏輯位址查找該第二映射表格;以及根據該既定記憶體區塊之一記憶體區塊編號以及該第一映射表格所對應之該陣列索引值更新該第二映射表格所記錄的內容。
- 如申請專利範圍第9項所述之資料處理方法,其中於該既定記憶體區塊被寫滿時,由該記憶體控制器根據該第一映射表格編輯該第二映射表格與該第三映射表格之步驟更包括:其中於編輯該第三映射表格時,於根據該既定記憶體區塊之該記憶體區塊編號以及該第一映射表格所對應之該陣列索引值更新 該第二映射表格所記錄的內容後,將該第三映射表格中相同陣列索引值所對應的內容設定為有效。
- 如申請專利範圍第10項所述之資料處理方法,其中於該既定記憶體區塊被寫滿時,由該記憶體控制器根據該第一映射表格編輯該第二映射表格與該第三映射表格之步驟更包括:當該第二映射表格之一特定位置已記錄了該既定記憶體區塊之該記憶體區塊編號以及一第一陣列索引值,且於該第一映射表格之一第二陣列索引值所對應的內容中被記錄之該邏輯位址亦指到該第二映射表格之該特定位置時,由該記憶體控制器根據該既定記憶體區塊之該記憶體區塊編號以及該第二陣列索引值更新該第二映射表格之該特定位置所對應的內容,將該第三映射表格之該第二陣列索引值所對應的內容設定為有效,並且將該第三映射表格之該第一陣列索引值所對應的內容設定為無效。
- 如申請專利範圍第7項所述之資料處理方法,更包括:由該記憶體控制器根據該第三映射表格執行一垃圾回收程序,用以將該既定記憶體區塊中的一或多個有效資料頁所儲存之資料搬移至一目標記憶體區塊。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107145763A TWI749279B (zh) | 2018-12-18 | 2018-12-18 | 資料儲存裝置與資料處理方法 |
CN201910609861.2A CN111338562B (zh) | 2018-12-18 | 2019-07-08 | 数据存储装置与数据处理方法 |
US16/704,629 US11216381B2 (en) | 2018-12-18 | 2019-12-05 | Data storage devices and data processing methods |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107145763A TWI749279B (zh) | 2018-12-18 | 2018-12-18 | 資料儲存裝置與資料處理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202024924A TW202024924A (zh) | 2020-07-01 |
TWI749279B true TWI749279B (zh) | 2021-12-11 |
Family
ID=71072592
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107145763A TWI749279B (zh) | 2018-12-18 | 2018-12-18 | 資料儲存裝置與資料處理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11216381B2 (zh) |
CN (1) | CN111338562B (zh) |
TW (1) | TWI749279B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI738451B (zh) * | 2020-08-05 | 2021-09-01 | 宇瞻科技股份有限公司 | 資料備份方法及儲存裝置 |
CN114442906B (zh) * | 2020-11-02 | 2024-09-17 | 深圳Tcl新技术有限公司 | 一种数据存储方法、终端及计算机可读存储介质 |
US11726671B2 (en) * | 2021-06-24 | 2023-08-15 | Micron Technology, Inc. | Memory access mode selection |
TWI828391B (zh) * | 2022-10-27 | 2024-01-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料儲存裝置之緩存器大小估計方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201101030A (en) * | 2009-06-29 | 2011-01-01 | Mediatek Inc | Memory system and mapping methods thereof |
TW201835922A (zh) * | 2017-03-27 | 2018-10-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101510120B1 (ko) * | 2008-11-21 | 2015-04-10 | 삼성전자주식회사 | 메모리 장치 및 메모리 장치의 관리 방법 |
TWI544334B (zh) * | 2012-05-30 | 2016-08-01 | 慧榮科技股份有限公司 | 資料儲存裝置與資料儲存裝置操作方法 |
CN102866955A (zh) * | 2012-09-14 | 2013-01-09 | 记忆科技(深圳)有限公司 | 一种闪存数据管理方法及系统 |
US9684568B2 (en) * | 2013-12-26 | 2017-06-20 | Silicon Motion, Inc. | Data storage device and flash memory control method |
TWI609323B (zh) * | 2016-01-29 | 2017-12-21 | 捷鼎國際股份有限公司 | 資料儲存方法及其系統 |
TWI707234B (zh) * | 2019-05-20 | 2020-10-11 | 慧榮科技股份有限公司 | 資料儲存裝置與資料處理方法 |
-
2018
- 2018-12-18 TW TW107145763A patent/TWI749279B/zh active
-
2019
- 2019-07-08 CN CN201910609861.2A patent/CN111338562B/zh active Active
- 2019-12-05 US US16/704,629 patent/US11216381B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201101030A (en) * | 2009-06-29 | 2011-01-01 | Mediatek Inc | Memory system and mapping methods thereof |
TW201835922A (zh) * | 2017-03-27 | 2018-10-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
TW202024924A (zh) | 2020-07-01 |
CN111338562A (zh) | 2020-06-26 |
CN111338562B (zh) | 2023-06-09 |
US20200192810A1 (en) | 2020-06-18 |
US11216381B2 (en) | 2022-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI692690B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI575374B (zh) | 映射表格更新方法、記憶體儲存裝置及記憶體控制電路單元 | |
CN110908925B (zh) | 高效能垃圾收集方法以及数据存储装置及其控制器 | |
TWI749279B (zh) | 資料儲存裝置與資料處理方法 | |
TWI659304B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI726314B (zh) | 資料儲存裝置與資料處理方法 | |
CN106445401B (zh) | 表格更新方法、存储器储存装置及存储器控制电路单元 | |
TWI785876B (zh) | 映射資訊記錄方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI523030B (zh) | 緩衝記憶體管理方法、記憶體控制器與記憶體儲存裝置 | |
TWI707234B (zh) | 資料儲存裝置與資料處理方法 | |
US8832358B2 (en) | Data writing method, memory controller and memory storage apparatus | |
TWI697778B (zh) | 資料儲存裝置與資料處理方法 | |
US20210278994A1 (en) | Data storage device and data processing method | |
TWI697779B (zh) | 資料儲存裝置與資料處理方法 | |
TWI852599B (zh) | 記憶裝置、快閃記憶體控制器及其控制方法 | |
TWI695264B (zh) | 資料儲存裝置與資料處理方法 | |
TWI847838B (zh) | 借助非平衡表搜尋來進行預定通訊架構中記憶體裝置的資料存取管理的方法、記憶體裝置的記憶體控制器、記憶體裝置以及電子裝置 | |
TWI855819B (zh) | 借助非平衡表更新來進行預定通訊架構中記憶體裝置的資料存取管理的方法、記憶體裝置的記憶體控制器、記憶體裝置以及電子裝置 | |
TWI823792B (zh) | 映射表更新方法、記憶體儲存裝置及記憶體控制電路單元 | |
TW202429281A (zh) | 借助非平衡表更新來進行預定通訊架構中記憶體裝置的資料存取管理的方法、記憶體裝置的記憶體控制器、記憶體裝置以及電子裝置 | |
TW202429282A (zh) | 借助非平衡表區域來進行預定通訊架構中記憶體裝置的資料存取管理的方法、記憶體裝置的記憶體控制器、記憶體裝置以及電子裝置 |