TWI771926B - 資料儲存裝置以及非揮發式記憶體控制方法 - Google Patents
資料儲存裝置以及非揮發式記憶體控制方法 Download PDFInfo
- Publication number
- TWI771926B TWI771926B TW110106679A TW110106679A TWI771926B TW I771926 B TWI771926 B TW I771926B TW 110106679 A TW110106679 A TW 110106679A TW 110106679 A TW110106679 A TW 110106679A TW I771926 B TWI771926 B TW I771926B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- mapping table
- controller
- code name
- logical address
- Prior art date
Links
Images
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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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
- 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
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/651—Multi-level translation tables
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Read Only Memory (AREA)
- Credit Cards Or The Like (AREA)
Abstract
非揮發式記憶體映射資料管理技術。一控制器建立一第一映射表、以及一第二映射表。根據該第一映射表,該控制器將該主機要求讀取的一第一邏輯位址映射至一第一區塊代名。根據該第二映射表,該控制器將該第一區塊代名映射到該非揮發式記憶體上的一第一區塊。該第一映射表更為該第一邏輯位址記錄一第一位移量,使該第一邏輯位址係映射到該第一區塊代名所代表的該第一區塊的一第一資料管理單元,其中,該第一資料管理單元於該第一區塊上符合該第一位移量。
Description
本案係有關於資料儲存裝置之映射資料管理。
非揮發式記憶體有多種形式─例如,快閃記憶體(flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式隨機存取記憶體(Resistive RAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM, STT-RAM)…等,用於長時間資料保存,可做為儲存媒體實現一資料儲存裝置。
非揮發式記憶體通常有其特殊的儲存特性。本技術領域需要相應非揮發式記憶體的儲存特性發展相應的控制技術。例如,非揮發式記憶體映射資訊管理就需要顧及其儲存特性。
本案為非揮發式記憶體提出一種映射資訊管理技術。
根據本案一種實施方式實現的一資料儲存裝置包括一非揮發式記憶體、以及一控制器。該控制器耦接該非揮發式記憶體,係設置來根據一主機之要求操作該非揮發式記憶體。該控制器建立一第一映射表、以及一第二映射表。根據該第一映射表,該控制器將該主機要求讀取的一第一邏輯位址映射至一第一區塊代名。根據該第二映射表,該控制器將該第一區塊代名映射到該非揮發式記憶體上的一第一區塊。該第一映射表更為該第一邏輯位址記錄一第一位移量,使該第一邏輯位址係映射到該第一區塊代名所代表的該第一區塊的一第一資料管理單元,其中,該第一資料管理單元於該第一區塊上符合該第一位移量。
一種實施方式中,該第一映射表係以邏輯位址為索引,條列不同邏輯位址所映射的區塊代名、以及位移量。該第二映射表係記錄區塊代名以及區塊之間的映射資訊。
一種實施方式中,將該第一區塊完整搬移到一第二區塊時,該控制器修正該第二映射表,使該第一區塊代名改成代表該第二區塊,且該控制器可更修正該第二映射表,使先前代表該第二區塊的一第二區塊代名改成代表該第一區塊。
一種實施方式中,該第一區塊完整搬移到該第二區塊後,若該主機再次要求讀取該第一邏輯位址,該控制器係根據該第一映射表,映射該第一邏輯位址至該第一區塊代名、並取得該第一位移量,再經該第二映射表,將該第一區塊代名映射到該第二區塊,以該第二區塊上符合該第一位移量的一第二資料管理單元回應該主機。
一種實施方式中,該控制器係在一復電程序進行該第一區塊至該第二區塊的完整搬移。
一種實施方式中,該復電程序後,若續寫該第二區塊儲存一第二邏輯位址之資料,該控制器查詢該第二映射表取得該第二區塊映射該第一區塊代名,並修正該第一映射表為該第二邏輯位址記錄該第一區塊代名、以及一第二位移量,使該第二邏輯位址映射到該第一區塊代名所代表的該第二區塊的一第三資料管理單元進行資料儲存,而該第三資料管理單元於該第二區塊上符合該第二位移量。
一種實施方式中,該第二映射表包括一區塊代名-區塊映射小表、以及一區塊-區塊代名映射小表。該區塊代名-區塊映射小表係以區塊代名為索引,條列不同區塊代名所映射的區塊。該區塊-區塊代名映射小表係以區塊為索引,條列不同區塊所使用的區塊代名。
一種實施方式中,該第二映射表係以區塊代名為索引,條列不同區塊代名所映射的區塊。該控制器藉循序掃描該第二映射表的欄位,取得一目標區塊所使用的區塊代名。
一種實施方式中,該第二映射表係以區塊為索引,條列不同區塊所使用的區塊代名。該控制器藉循序掃描該第二映射表的欄位,取得一目標區塊代名所代表的區塊。
以上控制該非揮發式記憶體的控制器也可以由其他架構實現。本案更可以前述概念實現非揮發式記憶體的控制方法。
下文特舉實施例,並配合所附圖示,詳細說明本發明內容。
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。
非揮發式記憶體可以是快閃記憶體(Flash Memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式記憶體(Resistive RAM,RRAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM, STT-RAM)…等,提供長時間資料保存之儲存媒體。以下特別以快閃記憶體為例進行討論,但所述技術也可使用在其他種類非揮發式記憶體上。
現今資料儲存裝置常以快閃記憶體為儲存媒體,實現記憶卡(Memory Card)、通用序列匯流排閃存裝置(USB Flash Device)、固態硬碟(SSD) …等產品。有一種應用是採多晶片封裝、將快閃記憶體與其控制器包裝在一起─稱為嵌入式快閃記憶體模組(如eMMC)。
以快閃記憶體為儲存媒體的資料儲存裝置可應用於多種電子裝置中。所述電子裝置包括智慧型手機、穿戴裝置、平板電腦、虛擬實境設備…等。電子裝置的運算模塊可視為主機(Host),操作所使用的資料儲存裝置,以存取其中快閃記憶體。
以快閃記憶體為儲存媒體的資料儲存裝置也可用於建構資料中心。例如,伺服器可操作固態硬碟(SSD)陣列形成資料中心。伺服器即可視為主機,操作所連結之固態硬碟,以存取其中快閃記憶體。
快閃記憶體有其特殊的儲存特性,以下敘述之。
主機(Host)端是以邏輯位址(例如,邏輯區塊位址LBA或全域主機頁編號GHP…等)來區別資料。至於資料實際儲存在快閃記憶體何處,則是以映射資訊管理。
快閃記憶體之物理空間是劃分為複數個區塊(Blocks)配置使用。
第1圖圖解快閃記憶體中區塊Blk之結構。當然以下尺寸數據也可以有其他實施方式。
區塊Blk包括複數頁(Pages),例如,頁0…頁255。各頁包括複數個區段(Sectors),例如32個區段。每一區段可儲存512B長度的使用者資料。一頁可供應16KB儲存空間。一種實施方式係根據頁編號─由低編號至高編號─循序使用一區塊(Blk)的儲存空間。各頁可更劃分為複數個資料管理單元(data management units)。以4KB資料管理模式為例,各資料管理單元尺寸為4KB,包括八個區段。一頁有四個資料管理單元(4x4KB)。
一種實施方式中,一區段(512B) 可對應一個邏輯區塊位址LBA之資料儲存。一個4KB資料管理單元(包括八個區段)是對應八個連續邏輯區塊位址LBAs進行資料儲存,即對應一個全域主機頁編號GHP。邏輯位址(無論是主機頁編號GHP、邏輯區塊位址LBA、甚至其他)至快閃記憶體物理空間的映射關係一般是以一邏輯位址-快閃記憶體映射表(通常標號為L2P)記錄。例如,一邏輯位址-快閃記憶體映射表(L2P)可條列各邏輯位址(LBA、GHP、甚至其他)之資料係儲存在哪個區塊(通常標號FBlk)的哪個資料管理單元(通常以位移量標示)。
邏輯位址-快閃記憶體映射表(L2P)需動態更新。邏輯位址-快閃記憶體映射表(L2P)之更新涉及以下步驟:將映射資訊自快閃記憶體載至控制器記憶體(如,一隨機存取記憶體,SRAM或DRAM或其他);在控制器記憶體進行更新;以及,將映射資訊回存快閃記憶體。如此映射表更新程序相當耗費系統資源。若能減少映射表更新次數,系統效能可以顯著提升。
以斷電事件為例,復電程序就涉及邏輯位址-快閃記憶體映射表(L2P)更新。被斷電事件中斷寫入的區塊,其電性會受影響,其中內容需在復電程序完整搬移到另一區塊。如此區塊搬移會引發邏輯位址-快閃記憶體映射表(L2P)更新程序,影響系統效能。
本案一種映射資訊管理方案,特別有利於區塊搬移,使區塊搬移僅涉及少量映射資訊更新。本案提出一種區塊代名技術。快閃記憶體實際物理空間的區塊標號為FBlk。本案為各區塊FBlk提供一區塊代名MBlk。各區塊FBlk所對應的區塊代名MBlk是以一區塊-區塊代名(FBlk-MBlk)映射表記錄。本案更反向維護一區塊代名-區塊(MBlk-FBlk)映射表。有別於一邏輯位址-快閃記憶體映射表(L2P),本案是以一邏輯位址-區塊代名映射表(L2M)佐以該區塊-區塊代名(FBlk-MBlk)映射表、以及該區塊代名-區塊(MBlk-FBlk)映射表,管理映射資料。
第2圖圖解根據本案一種實施方式所實現的一映射資訊架構200,包括一邏輯位址-區塊代名映射表(L2M)202、一區塊-區塊代名(FBlk-MBlk)映射表204、以及一區塊代名-區塊(MBlk-FBlk)映射表206。邏輯位址-區塊代名映射表(L2M)202條列各邏輯位址映射到哪一個區塊代名MBlk,並註明映射到的資料管理單元編號Unit;所述資料管理單元編號Unit又可視為區塊內的一位移量。邏輯位址-區塊代名映射表(L2M)202顯示邏輯位址0x3005映射到(MBlk 0x0A,Unit 0x00),邏輯位址0x3006映射到(MBlk 0x0A,Unit 0x01),邏輯位址0x3007映射到(MBlk 0x0A,Unit 0x02)。區塊代名-區塊(MBlk-FBlk)映射表206顯示區塊代名(MBlk)0x0A映射到區塊(FBlk)0x0A。故邏輯位址-區塊代名映射表(L2M)202、以及區塊代名-區塊(MBlk-FBlk)映射表206聯合提供的資訊是:邏輯位址0x3005映射到區塊FBlk 0x0A的資料管理單元0x00,邏輯位址0x3006映射到區塊FBlk 0x0A的資料管理單元0x01,邏輯位址0x3007映射到區塊FBlk 0x0A的資料管理單元0x02。區塊-區塊代名(FBlk-MBlk)映射表204則是區塊代名-區塊(MBlk-FBlk)映射表206的反向表格。其中的確也記錄區塊FBlk 0x0A對應區塊代名MBlk 0x0A。
倘若發生區塊搬移事件,區塊-區塊代名(FBlk-MBlk)映射表204以及區塊代名-區塊(MBlk-FBlk)映射表206都會更新。以區塊FBlk 0x0A至區塊FBlk 0x0B的完整區塊搬移為例,說明如下。區塊-區塊代名(FBlk-MBlk)映射表204修正乃:根據區塊FBlk 0x0A原本的區塊代名MBlk 0x0A,修正區塊FBlk 0x0B改由區塊代名MBlk 0x0A代表。至於區塊FBlk 0x0B原本的區塊代名MBlk 0x01,則可改成代表區塊FBlk 0x0A(區塊置換)。如圖所示,區塊FBlk 0x0A的區塊代名MBlk由0x0A改成0x01,而區塊FBlk 0x0B的區塊代名MBlk由0x01改成0x0A。
相應之,區塊代名-區塊(MBlk-FBlk)映射表206的修正包括:令區塊代名MBlk 0x01不再代表區塊FBlk 0x0B,而是代表區塊FBlk 0x0A;且令區塊代名MBlk 0x0A不再代表區塊FBlk 0x0A,而是代表區塊FBlk 0x0B。
整理之,區塊搬移事件不會對邏輯位址-區塊代名映射表(L2M)202進行修正,大大節省系統資源。
邏輯位址-區塊代名映射表(L2M)202、區塊-區塊代名(FBlk-MBlk)映射表204、以及區塊代名-區塊(MBlk-FBlk)映射表206需儲存在快閃記憶體中作非揮發式儲存,有需求時才載出參考、甚至修正。
第3圖圖解根據本案一種實施方式所實現的一資料儲存裝置300,包括一快閃記憶體302、一控制器304以及一隨機存取記憶體306。隨機存取記憶體306可以是靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、或其他控制器204得以高速存取的儲存空間。更有實施方式是以主機308端的系統記憶體替代該隨機存取記憶體306。主機308透過控制器304操作快閃記憶體302。控制器304進行運算時是以隨機存取記憶體306暫存資料。第3圖特別討論區塊置換的例子。
邏輯位址-區塊代名映射表L2M、區塊-區塊代名(FBlk-MBlk)映射表F2M、以及區塊代名-區塊(MBlk-FBlk)映射表M2F非揮發式儲存在快閃記憶體302中。控制器304作區塊置換時,會將區塊-區塊代名(FBlk-MBlk)映射表F2M、以及區塊代名-區塊(MBlk-FBlk)映射表M2F自快閃記憶體302載入隨機存取記憶體306更新。圖例即前述區塊FBlk 0x0A至區塊FBlk 0x0B的完整區塊搬移,完全不涉及龐大的邏輯位址-區塊代名映射表L2M之載入以及修正。
另外更討論該邏輯位址-區塊代名映射表L2M之設計。
隨著製程進步,快閃記憶體尺寸越來越大。4TB的快閃記憶體,其邏輯位址-區塊代名映射表L2M會達4GB。8TB的快閃記憶體,其邏輯位址-區塊代名映射表L2M會達8GB。過分龐大的邏輯位址-區塊代名映射表L2M之載出、更新極為耗費系統資源。
一種解決方案是將邏輯位址-區塊代名映射表L2M切分為較小尺寸的映射子表,例如,對應不同邏輯位址群組G#(#為編號)的映射子表L2M_G#。被呼叫到的映射子表L2M_G#才載出參考甚至更新。相較於完整的邏輯位址-區塊代名映射表L2M,映射子表L2M_G#的載出、更新只耗費少量系統資源。
第4圖圖解復電後,續寫資料的例子。此例子斷電時,寫入程序是進行到邏輯位址0x3007;中斷點為區塊代名MBlk 0x0A的資料管理單元Unit 0x02。邏輯位址0x3007是對應到映射子表L2M_Gi。復電後,除了依照第3圖完成區塊-區塊代名(FBlk-MBlk)映射表F2M、以及區塊代名-區塊(MBlk-FBlk)映射表M2F之更新(隨著將斷電不穩定的區塊FBlk 0x0A內容搬移到區塊FBlk 0x0B,將區塊代名MBlk 0x0A改成代表區塊FBlk 0x0B),更會如第4圖,將映射子表L2M_Gi載入隨機存取記憶體306,動態記錄續寫之映射資訊。
由於復電後續寫是做在區塊FBlk 0x0B(復電時的區塊搬移目的地)上,控制器304查詢區塊-區塊代名(FBlk-MBlk)映射表F2M,取得目前代表區塊FBlk 0x0B的係區塊代名MBlk 0x0A。以邏輯位址0x3008之資料開始續寫時,係承中斷點(MBlk 0x0A,Unit 0x02)往後使用快閃記憶體302空間。邏輯位址0x3008映射到(MBlk 0x0A,Unit 0x03),也就是寫入區塊FBlk 0x0B的資料管理單元0x03。邏輯位址0x3009映射到(MBlk 0x0A,Unit 0x04),也就是寫入區塊FBlk 0x0B的資料管理單元0x04。邏輯位址0x3010映射到(MBlk 0x0A,Unit 0x05) ,也就是寫入區塊FBlk 0x0B的資料管理單元0x05。邏輯位址0x3011映射到(MBlk 0x0A,Unit 0x06),也就是寫入區塊FBlk 0x0B的資料管理單元0x06。資料正確續寫至區塊FBlk 0x0B。
第5圖為流程圖,根據本案一種實施方式,圖解一復電程序。步驟S502進行中斷點區塊之完整搬移(如,FBlk 0x0Aà0x0B)。步驟S504將區塊-區塊代名(FBlk-MBlk)映射表F2M、以及區塊代名-區塊(MBlk-FBlk)映射表M2F載入隨機存取記憶體306,相應步驟S502之區塊搬移進行修正;例如,令區塊FBlk 0x0B對應區塊代名MBlk 0x0A,甚至可更以原區塊FBlk 0x0B釋出的區塊代名MBlk 0x01代表區塊FBlk 0x0A。步驟S506載出續寫相應的映射子表L2P_Gi,使隨著復電後的續寫進行更新。
第6圖為流程圖,根據本案一種實施方式,圖解一讀取操作。步驟S602接收主機要求讀取的邏輯位址。步驟S604查詢邏輯位址-區塊代名映射表L2M,取得邏輯位址映射的區塊代名MBlk以及位移量。步驟S606查詢區塊代名-區塊(MBlk-FBlk)映射表M2F,找到區塊代名MBlk所代表的區塊FBlk。步驟S608以區塊FBlk之位移量,自區塊FBlk找到對應該邏輯位址的資料管理單元,據以回應主機。
以第4圖為例,在區塊FBlk 0x0A已搬移到區塊FBlk 0x0B,甚至已開始續寫後,若該主機308要求讀取邏輯位址0x3007,控制器304係根據邏輯位址0x3007對應到的映射子表L2M_Gi,尋出映射之區塊代名MBlk 0x0A以及位移量Unit 0x02,再根據區塊代名-區塊(MBlk-FBlk)映射表M2F,找到區塊代名MBlk 0x0A所代表的區塊FBlk 0x0B,以其上符合該位移量的資料管理單元Unit 0x02回應該主機308。
前述實施方式是以兩個小表─區塊代名-區塊(MBlk-FBlk)映射表M2F、以及區塊-區塊代名(FBlk-MBlk)映射表F2M─雙向顯示區塊以及區塊代名之間的映射資訊。但是,若只單方向維護映射表也是可行的。
一種實施方式並沒有提供區塊-區塊代名(FBlk-MBlk)映射表F2M,而只有提供區塊代名-區塊(MBlk-FBlk)映射表M2F。區塊代名-區塊(MBlk-FBlk)映射表M2F係以區塊代名為索引,條列不同區塊代名所映射的區塊。控制器可藉循序掃描該區塊代名-區塊(MBlk-FBlk)映射表M2F的欄位,取得一目標區塊所使用的區塊代名。
一種實施方式並沒有提供區塊代名-區塊(MBlk-FBlk)映射表M2F,而只有提供區塊-區塊代名(FBlk-MBlk)映射表F2M。該第二映射表係以區塊為索引,條列不同區塊所使用的區塊代名。控制器可藉循序掃描該區塊-區塊代名(FBlk-MBlk)映射表F2M的欄位,找到一目標區塊代名所代表的區塊。
以上控制器對非揮發式記憶體之操作設計也可以由其他結構實現。凡是根據前述概念進行映射資訊管理,都屬於本案欲保護範圍。本案更可以前述概念實現非揮發式記憶體的控制方法。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
Blk:區塊
200:映射資訊架構
202:邏輯位址-區塊代名映射表(L2M)
204:區塊-區塊代名映射表(F2M)
206:區塊代名-區塊映射表(M2F)
300:資料儲存裝置
302:快閃記憶體
304:控制器
306:隨機存取記憶體
308:主機
F2M:區塊-區塊代名映射表
L2M:邏輯位址-區塊代名映射表;
M2F:區塊代名-區塊映射表
L2M_G0,L2M_G1, L2M_Gi:映射子表
S502~S506,S602~S608:步驟。
第1圖圖解快閃記憶體中區塊Blk之結構;
第2圖圖解根據本案一種實施方式所實現的一映射資訊架構200,包括一邏輯位址-區塊代名映射表(L2M)202、一區塊-區塊代名(FBlk-MBlk)映射表204、以及一區塊代名-區塊(MBlk-FBlk)映射表206;
第3圖圖解根據本案一種實施方式所實現的一資料儲存裝置300;
第4圖圖解復電後,續寫資料的例子;
第5圖為流程圖,根據本案一種實施方式,圖解一復電程序;
第6圖為流程圖,根據本案一種實施方式,圖解一讀取操作。
300:資料儲存裝置
302:快閃記憶體
304:控制器
306:隨機存取記憶體
308:主機
F2M:區塊-區塊代名映射表
L2M:邏輯位址-區塊代名映射表
M2F:區塊代名-區塊映射表
Claims (16)
- 一種資料儲存裝置,包括:一非揮發式記憶體;以及一控制器,耦接該非揮發式記憶體,係設置來根據一主機之要求操作該非揮發式記憶體,其中:該控制器建立一第一映射表、以及一第二映射表;根據該第一映射表,該控制器將該主機要求讀取的一第一邏輯位址映射至一第一區塊代名;根據該第二映射表,該控制器將該第一區塊代名映射到該非揮發式記憶體上的一第一區塊;該第一映射表更為該第一邏輯位址記錄一第一位移量,使該第一邏輯位址係映射到該第一區塊代名所代表的該第一區塊的一第一資料管理單元,其中,該第一資料管理單元於該第一區塊上符合該第一位移量;該第一映射表係以邏輯位址為索引,條列不同邏輯位址所映射的區塊代名、以及位移量;該第二映射表係記錄區塊代名以及區塊之間的映射資訊;且該控制器在將該第一區塊完整搬移到一第二區塊時,更修正該第二映射表,使該第一區塊代名改成代表該第二區塊。
- 如請求項1之資料儲存裝置,其中: 該控制器在將該第一區塊完整搬移到該第二區塊時,更修正該第二映射表,使先前代表該第二區塊的一第二區塊代名改成代表該第一區塊。
- 如請求項1之資料儲存裝置,其中:該控制器將該第一區塊完整搬移到該第二區塊後,若該主機再次要求讀取該第一邏輯位址,該控制器係根據該第一映射表,映射該第一邏輯位址至該第一區塊代名、並取得該第一位移量,再經該第二映射表,將該第一區塊代名映射到該第二區塊,以該第二區塊上符合該第一位移量的一第二資料管理單元回應該主機。
- 如請求項3之資料儲存裝置,其中:該控制器係在一復電程序進行該第一區塊至該第二區塊的完整搬移。
- 如請求項4之資料儲存裝置,其中:該復電程序後,若該控制器續寫該第二區塊儲存一第二邏輯位址之資料,該控制器查詢該第二映射表取得該第二區塊映射該第一區塊代名,並修正該第一映射表為該第二邏輯位址記錄該第一區塊代名、以及一第二位移量,使該第二邏輯位址映射到該第一區塊代名所代表的該第二區塊的一第三資料管理單元進行資料儲存,而該第三資料管理單元於該第二區塊上符合該第二位移量。
- 如請求項5之資料儲存裝置,其中:該第二映射表包括一區塊代名-區塊映射小表、以及一區塊-區塊代名映射小表;該區塊代名-區塊映射小表係以區塊代名為索引,條列不同區塊代名所映射的區塊;且該區塊-區塊代名映射小表係以區塊為索引,條列不同區塊所使用的區塊代名。
- 如請求項5之資料儲存裝置,其中:該第二映射表係以區塊代名為索引,條列不同區塊代名所映射的區塊;且該控制器藉循序掃描該第二映射表的欄位,取得一目標區塊所使用的區塊代名。
- 如請求項5之資料儲存裝置,其中:該第二映射表係以區塊為索引,條列不同區塊所使用的區塊代名;且該控制器藉循序掃描該第二映射表的欄位,取得一目標區塊代名所代表的區塊。
- 一種非揮發式記憶體控制方法,包括:根據一主機之要求,以一控制器操作一非揮發式記憶體;以該控制器建立一第一映射表、以及一第二映射表; 令該控制器根據該第一映射表將該主機要求讀取的一第一邏輯位址映射至一第一區塊代名;且令該控制器根據該第二映射表將該第一區塊代名映射到該非揮發式記憶體上的一第一區塊,其中:該第一映射表更為該第一邏輯位址記錄一第一位移量,使該第一邏輯位址係映射到該第一區塊代名所代表的該第一區塊的一第一資料管理單元,且該第一資料管理單元於該第一區塊上符合該第一位移量;該第一映射表係以邏輯位址為索引,條列不同邏輯位址所映射的區塊代名、以及位移量;該第二映射表係記錄區塊代名以及區塊之間的映射資訊;且令該控制器在將該第一區塊完整搬移到一第二區塊時,更修正該第二映射表,使該第一區塊代名改成代表該第二區塊。
- 如請求項9之非揮發式記憶體控制方法,更包括:令該控制器在將該第一區塊完整搬移到該第二區塊時,更修正該第二映射表,使先前代表該第二區塊的一第二區塊代名改成代表該第一區塊。
- 如請求項9之非揮發式記憶體控制方法,更包括:在該控制器將該第一區塊完整搬移到該第二區塊後,若該主機再次要求讀取該第一邏輯位址,令該控制器係根據該第一映射 表,映射該第一邏輯位址至該第一區塊代名、並取得該第一位移量,再經該第二映射表,將該第一區塊代名映射到該第二區塊,以該第二區塊上符合該第一位移量的一第二資料管理單元回應該主機。
- 如請求項11之非揮發式記憶體控制方法,其中係在一復電程序,令該控制器進行該第一區塊至該第二區塊的完整搬移。
- 如請求項12之非揮發式記憶體控制方法,更包括:該復電程序後,若該控制器續寫該第二區塊儲存一第二邏輯位址之資料,令該控制器查詢該第二映射表取得該第二區塊映射該第一區塊代名,並令該控制器修正該第一映射表為該第二邏輯位址記錄該第一區塊代名、以及一第二位移量,使該第二邏輯位址映射到該第一區塊代名所代表的該第二區塊的一第三資料管理單元進行資料儲存,其中,該第三資料管理單元於該第二區塊上符合該第二位移量。
- 如請求項13之非揮發式記憶體控制方法,其中:該第二映射表包括一區塊代名-區塊映射小表、以及一區塊-區塊代名映射小表;該區塊代名-區塊映射小表係以區塊代名為索引,條列不同區塊代名所映射的區塊;且 該區塊-區塊代名映射小表係以區塊為索引,條列不同區塊所使用的區塊代名。
- 如請求項13之非揮發式記憶體控制方法,其中;該第二映射表係以區塊代名為索引,條列不同區塊代名所映射的區塊;且一目標區塊所使用的區塊代名係藉循序掃描該第二映射表的欄位而取得。
- 如請求項13之非揮發式記憶體控制方法,其中:該第二映射表係以區塊為索引,條列不同區塊所使用的區塊代名;且一目標區塊代名所代表的區塊係藉循序掃描該第二映射表的欄位而取得。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110106679A TWI771926B (zh) | 2021-02-25 | 2021-02-25 | 資料儲存裝置以及非揮發式記憶體控制方法 |
CN202110479646.2A CN114968075A (zh) | 2021-02-25 | 2021-04-30 | 数据储存装置以及非挥发式存储器控制方法 |
US17/584,753 US11657001B2 (en) | 2021-02-25 | 2022-01-26 | Data storage device and control method of address management using mapping tables |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110106679A TWI771926B (zh) | 2021-02-25 | 2021-02-25 | 資料儲存裝置以及非揮發式記憶體控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI771926B true TWI771926B (zh) | 2022-07-21 |
TW202234250A TW202234250A (zh) | 2022-09-01 |
Family
ID=82899655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110106679A TWI771926B (zh) | 2021-02-25 | 2021-02-25 | 資料儲存裝置以及非揮發式記憶體控制方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11657001B2 (zh) |
CN (1) | CN114968075A (zh) |
TW (1) | TWI771926B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201346553A (zh) * | 2011-12-12 | 2013-11-16 | Apple Inc | 邏輯區塊位址位元映射之使用 |
US20200250099A1 (en) * | 2019-02-05 | 2020-08-06 | International Business Machines Corporation | Virtual Cache Synonym Detection Using Alias Tags |
US20200310801A1 (en) * | 2019-03-27 | 2020-10-01 | Intel Corporation | Method and apparatus for a multi-level reservation station with instruction recirculation |
TW202046333A (zh) * | 2016-03-03 | 2020-12-16 | 南韓商三星電子股份有限公司 | 控制記憶體陣列的方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0504326D0 (en) * | 2005-03-02 | 2005-04-06 | Symbian Software Ltd | Dual mode operating system for a computing device |
US9195590B2 (en) * | 2013-08-29 | 2015-11-24 | Micron Technology, Inc. | Sub-sector wear leveling in memories |
JP2019057172A (ja) * | 2017-09-21 | 2019-04-11 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
TWI658462B (zh) * | 2018-01-19 | 2019-05-01 | 慧榮科技股份有限公司 | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 |
-
2021
- 2021-02-25 TW TW110106679A patent/TWI771926B/zh active
- 2021-04-30 CN CN202110479646.2A patent/CN114968075A/zh active Pending
-
2022
- 2022-01-26 US US17/584,753 patent/US11657001B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201346553A (zh) * | 2011-12-12 | 2013-11-16 | Apple Inc | 邏輯區塊位址位元映射之使用 |
TW202046333A (zh) * | 2016-03-03 | 2020-12-16 | 南韓商三星電子股份有限公司 | 控制記憶體陣列的方法 |
US20200250099A1 (en) * | 2019-02-05 | 2020-08-06 | International Business Machines Corporation | Virtual Cache Synonym Detection Using Alias Tags |
US20200310801A1 (en) * | 2019-03-27 | 2020-10-01 | Intel Corporation | Method and apparatus for a multi-level reservation station with instruction recirculation |
Also Published As
Publication number | Publication date |
---|---|
US11657001B2 (en) | 2023-05-23 |
US20220269618A1 (en) | 2022-08-25 |
TW202234250A (zh) | 2022-09-01 |
CN114968075A (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6018696B2 (ja) | 半導体ストレージ | |
US10545876B2 (en) | Control unit for data storage system and method for updating logical-to-physical mapping table | |
CN110955384B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
JP6732684B2 (ja) | 情報処理装置、ストレージデバイスおよび情報処理システム | |
US20090327837A1 (en) | NAND error management | |
TW201839613A (zh) | 數據儲存裝置及其操作方法 | |
WO2009096180A1 (ja) | メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム | |
TWI668575B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
US8332575B2 (en) | Data management systems, methods and computer program products using a phase-change random access memory for selective data maintenance | |
US11314586B2 (en) | Data storage device and non-volatile memory control method | |
TW201828066A (zh) | 資料管理方法 | |
TWI718709B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
JP2018101411A (ja) | データストレージデバイスおよびその操作方法 | |
US11126624B2 (en) | Trie search engine | |
US11218164B2 (en) | Data storage device and non-volatile memory control method | |
TWI771926B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
TW201935247A (zh) | 目錄資料的管理方法與記憶體裝置 | |
TWI761748B (zh) | 多階層映射資訊管理之資料儲存裝置以及非揮發式記憶體控制方法 | |
TWI766194B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
TWI724483B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
CN111610929B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
TWI705328B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
US11269534B2 (en) | Data storage device and non-volatile memory control method | |
JP2023139828A (ja) | ストレージシステム及びストレージシステムの処理方法 | |
TW202001576A (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 |