TWI724483B - Data storage device and control method for non-volatile memory - Google Patents
Data storage device and control method for non-volatile memory Download PDFInfo
- Publication number
- TWI724483B TWI724483B TW108127457A TW108127457A TWI724483B TW I724483 B TWI724483 B TW I724483B TW 108127457 A TW108127457 A TW 108127457A TW 108127457 A TW108127457 A TW 108127457A TW I724483 B TWI724483 B TW I724483B
- Authority
- TW
- Taiwan
- Prior art keywords
- physical space
- volatile memory
- space information
- value
- memory
- Prior art date
Links
Images
Landscapes
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
本發明係有關於資料儲存裝置,特別有關於映射資訊之維護。The present invention relates to data storage devices, and particularly relates to the maintenance of mapping information.
非揮發式記憶體有多種形式─例如,快閃記憶體(flash memory)、磁阻式隨機存取記憶體(magnetoresistive RAM)、鐵電隨機存取記憶體(ferroelectric RAM)、電阻式隨機存取記憶體(resistive RAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM, STT-RAM)…等,用於長時間資料保存。Non-volatile memory has many forms-for example, flash memory, magnetoresistive RAM, ferroelectric RAM, resistive random access Memory (resistive RAM), spin transfer torque random access memory (Spin Transfer Torque-RAM, STT-RAM)... etc. are used for long-term data storage.
非揮發式記憶體有其特殊之儲存特性,其操作以及管理需特殊設計。Non-volatile memory has its special storage characteristics, and its operation and management require special design.
本案提出一種實體空間資訊格式,用於管理一資料儲存裝置的映射資訊。This case proposes a physical space information format for managing the mapping information of a data storage device.
根據本案一種實施方式實現的一資料儲存裝置包括一非揮發式記憶體、一記憶體控制器以及一暫存記憶體。該記憶體控制器根據一主機之要求存取該非揮發式記憶體。該記憶體控制器在該暫存記憶體上規劃一資料快取空間。該記憶體控制器在該暫存記憶體上動態維護映射資訊,顯示該主機辨識之邏輯位址映射的實體空間資訊。該記憶體控制器以該實體空間資訊的第一位元至第N位元(N為大於1的數值)標示該非揮發式記憶體的實體空間、或標示該資料快取空間內的位址。該記憶體控制器不在該實體空間資訊中規劃特定位元區別該實體空間資訊是指向該非揮發式記憶體、或該資料快取空間。該記憶體控制器是以該第一至該第N位元組成的數值中,相對該非揮發式記憶體的實體空間無意義的數值,區別該實體空間資訊是指向該非揮發式記憶體、或該資料快取空間。A data storage device implemented according to an embodiment of the present case includes a non-volatile memory, a memory controller, and a temporary memory. The memory controller accesses the non-volatile memory according to a request of a host. The memory controller plans a data cache space on the temporary memory. The memory controller dynamically maintains mapping information on the temporary memory, and displays the physical space information of the logical address mapping identified by the host. The memory controller uses the first bit to the Nth bit (N is a value greater than 1) of the physical space information to indicate the physical space of the non-volatile memory, or indicate the address in the data cache space. The memory controller does not plan a specific bit in the physical space information to distinguish whether the physical space information points to the non-volatile memory or the data cache space. The memory controller is a value that is meaningless relative to the physical space of the non-volatile memory among the values composed of the first to the Nth bits, and distinguishes whether the physical space information points to the non-volatile memory or the non-volatile memory. Data cache space.
根據本案技術,實體空間資訊的位元被最佳化利用,足以應付大尺寸的非揮發式記憶體。According to the technology in this case, the bits of physical space information are optimally utilized, which is sufficient to cope with large-size non-volatile memory.
一種實施方式中,該記憶體控制器以一遮罩(Mask)處理該實體空間資訊所獲得的數值,辨識該實體空間資訊是指向該非揮發式記憶體、或該資料快取空間。In one embodiment, the memory controller uses a mask to process the value obtained by processing the physical space information to identify whether the physical space information is directed to the non-volatile memory or the data cache space.
該記憶體控制器更可以該遮罩處理該實體空間資訊所獲得的數值,辨識該實體空間資訊是否為虛置數據。The memory controller can also identify the value obtained by processing the physical space information by the mask to identify whether the physical space information is dummy data.
一種實施方式中,該記憶體控制器以一遮罩處理該實體空間資訊,並在獲得一第一數值時判定該實體空間資訊為虛置數據,獲得一第二數值時判定該實體空間資訊是指向該資料快取空間,獲得非該第一數值、也非該第二數值時判定該實體空間資訊指向該非揮發式記憶體。In one embodiment, the memory controller processes the physical space information with a mask, and determines that the physical space information is dummy data when a first value is obtained, and determines that the physical space information is when a second value is obtained Point to the data cache space, and determine that the physical space information points to the non-volatile memory when the first value or the second value is obtained.
該記憶體控制器可以該遮罩對該實體空間資訊進行邏輯及運算。The memory controller can perform logic and calculation on the physical space information with the mask.
一種實施方式中,該非揮發式記憶體為一快閃記憶體。該快閃記憶體的複數個區塊是以一區塊位元數BlkBits區別。各區塊中的複數個單位是以一單位位元數UnitBits區別。該記憶體控制器進行運算: Mask=(((1>> BlkBits)-1)*(1>> UnitBits)), 其中Mask為該遮罩。In one embodiment, the non-volatile memory is a flash memory. The plural blocks of the flash memory are distinguished by a block bit number BlkBits. The plural units in each block are distinguished by one unit bit number UnitBits. The memory controller performs calculations: Mask=(((1>> BlkBits)-1)*(1>> UnitBits)), Where Mask is the mask.
該記憶體控制器更可進行運算: DummySrc = Mask;以及 DRAMSrc = (((1>> BlkBits)-2)*(1>> UnitBits)), 其中,DummySrc為該第一數值,且DRAMSrc為該第二數值。The memory controller can also perform calculations: DummySrc = Mask; and DRAMSrc = (((1>> BlkBits)-2)*(1>> UnitBits)), Wherein, DummySrc is the first value, and DRAMSrc is the second value.
以上記憶體控制器對非揮發式記憶體之操作也可以由其他結構實現。本案更可以前述概念實現非揮發式記憶體的控制方法,包括:根據一主機之要求存取一非揮發式記憶體;在一暫存記憶體上規劃一資料快取空間;在該暫存記憶體上動態維護映射資訊,顯示該主機辨識之邏輯位址映射的實體空間資訊;以該實體空間資訊的第一位元至第N位元標示該非揮發式記憶體的實體空間、或標示該資料快取空間內的位址,且不在該實體空間資訊中規劃特定位元區別該實體空間資訊是指向該非揮發式記憶體、或該資料快取空間;且以該第一至該第N位元組成的數值中,相對該非揮發式記憶體的實體空間無意義的數值,區別該實體空間資訊是指向該非揮發式記憶體、或該資料快取空間。The operation of the above memory controller on the non-volatile memory can also be implemented by other structures. In this case, the aforementioned concept can be used to realize the control method of non-volatile memory, including: accessing a non-volatile memory according to the request of a host; planning a data cache space on a temporary memory; in the temporary memory The mapping information is dynamically maintained on the body, showing the physical space information mapped by the logical address identified by the host; the first bit to the Nth bit of the physical space information is used to indicate the physical space of the non-volatile memory or the data The address in the cache space, and no specific bits are planned in the physical space information to distinguish whether the physical space information points to the non-volatile memory or the data cache space; and use the first to the Nth bits Among the constituent values, a value that is meaningless relative to the physical space of the non-volatile memory, distinguishes that the physical space information points to the non-volatile memory or the data cache space.
下文特舉實施例,並配合所附圖示,詳細說明本發明內容。Hereinafter, embodiments are specially cited, in conjunction with accompanying drawings, to illustrate the content of the present invention in detail.
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。The following description lists various embodiments of the present invention. The following description introduces the basic concept of the present invention, and is not intended to limit the content of the present invention. The actual scope of the invention should be defined in accordance with the scope of the patent application.
非揮發式記憶體可以是快閃記憶體(Flash Memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式記憶體(Resistive RAM,RRAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM,STT-RAM)…等,提供長時間資料保存之儲存媒體。以下特別以快閃記憶體為例進行討論。Non-volatile memory can be Flash Memory, Magnetoresistive RAM, Ferroelectric RAM, Resistive RAM, RRAM ), Spin Transfer Torque-RAM (STT-RAM), etc., provide storage media for long-term data storage. The following discussion takes the flash memory as an example.
現今資料儲存裝置常以快閃記憶體為儲存媒體,用以儲存來自於主機的使用者資料。資料儲存裝置的種類眾多,包括記憶卡(Memory Card)、通用序列匯流排閃存裝置(USB Flash Device)、固態硬碟(SSD) …等產品。有一種應用是採多晶片封裝、將快閃記憶體與其控制器包裝在一起─稱為嵌入式快閃記憶體模組(如eMMC)。Nowadays, data storage devices often use flash memory as storage media to store user data from the host. There are many types of data storage devices, including memory cards (Memory Card), universal serial bus flash devices (USB Flash Device), solid state drives (SSD)... and other products. One application is to use multi-chip packaging to package flash memory and its controller together-called embedded flash memory modules (such as eMMC).
以快閃記憶體為儲存媒體的資料儲存裝置可應用於多種電子裝置中。所述電子裝置包括智慧型手機、穿戴裝置、平板電腦、虛擬實境設備…等。電子裝置的運算模塊可視為主機(Host),操作所使用的資料儲存裝置,以存取其中快閃記憶體。The data storage device using flash memory as the storage medium can be applied to a variety of electronic devices. The electronic devices include smart phones, wearable devices, tablet computers, virtual reality devices, etc. The computing module of the electronic device can be regarded as a host, which operates the data storage device used to access the flash memory therein.
以快閃記憶體為儲存媒體的資料儲存裝置也可用於建構數據中心。例如,伺服器可操作固態硬碟(SSD)陣列形成數據中心。伺服器即可視為主機(Host),操作所連結之固態硬碟,以存取其中快閃記憶體。Data storage devices using flash memory as storage media can also be used to construct data centers. For example, the server can operate a solid state drive (SSD) array to form a data center. The server can be regarded as a host, which operates the connected solid-state drive to access the flash memory.
第2圖為方塊圖,圖解根據本案一種實施方式所實施的資料儲存裝置200,其中包括快閃記憶體202、記憶體控制器204以及暫存記憶體206。主機208係透過記憶體控制器204操作快閃記憶體202。資料儲存裝置200內部也可發動快閃記憶體202之最佳化操作;例如,記憶體控制器204可對快閃記憶體202進行垃圾回收(Garbage Collection)、空間修整(Trimming)、區塊資料搬移(Block Data Transfer)…等。記憶體控制器204進行運算時是以暫存記憶體206暫存資料。暫存記憶體206可為動態隨機存取記憶體(DRAM)或SRAM。FIG. 2 is a block diagram illustrating a
快閃記憶體202除了具有系統資訊區塊池210儲存邏輯-實體位址映射表(Logical-to-Physical Addresses Mapping Table,L2P映射表)外,更有許多區塊在多種狀態間變化。取自閒置區塊池212的主動區塊214用於接收主機208要求的寫入資料。主動區塊214關閉後(例如,寫入區塊結尾(End Of Block,簡稱EOB)資訊後),將視為資料區塊,屬於資料區塊池216。閒置區塊池212將重新提供主動區塊214。資料區塊經抺除後,可被推入閒置區塊池212。主動區塊214也可以是配置做快閃記憶體202內部資料搬移的目的地。The
快閃記憶體202之物理空間是劃分為複數個區塊(Blocks)配置使用。第1圖圖解一區塊BLK之結構,其中包括複數頁面(Pages),例如,頁面0…頁面255。各頁面包括複數個區段(Sectors),例如:16KB空間的頁面可包括32個區段來儲存使用者資料,每一區段大小為512B。另外,在4KB資料管理模式下,可將8個區段作為最小的資料管理單位,此時,資料管理單位的大小為4KB,可儲存8個區段大小的使用者資料。為了簡化說明,下述中將以4KB資料管理模式為例進行說明,但不以此為限。The physical space of the
隨著主動區塊214之填寫,記憶體控制器204可在暫存記憶體206上維護實體-邏輯位址映射表(Physical-Logical Addresses Mapping Table,P2L映射表)218,顯示主動區塊214之實體位址究竟儲存那些邏輯位址的使用者資料,或實體位址至邏輯位址的映射資訊。如P2L映射表218所載,主動區塊214用於多個邏輯位址之使用者資料儲存,其反向的映射資訊可以用以更新邏輯-實體位址映射表(Logical-to-Physical Addresses Mapping Table,L2P映射表)的內容。另外,記憶體控制器204可將L2P映射表(局部或完全)上載至暫存記憶體206的空間220,以加速L2P映射表的存取。With the filling of the active block 214, the
一種實施方式中,記憶體控制器204根據頁面編號,由低至高編號(例如,頁面0至頁面255),而將使用者資料儲存至區塊。一種實施方式中,資料儲存裝置200採用多通道技術,係將不同通道之間的區塊視為一個超級區塊(Super Block),將不同通道之間的頁面視為超級頁面(Super Page),再以超級區塊或超級頁面的作為資料抺除(Erase)或資料寫入的單位,採用此架構下可提升資料儲存裝置200的數據吞吐量。In one embodiment, the
快閃記憶體202有其特殊的儲存特性。舊資料更新並非同空間複寫。新版的資料需被寫入閒置空間,而舊空間內容將被標為無效。區塊可能零星留存有效資料,可以執行垃圾回收程序將有效資料搬移到閒置空間。徒留無效資料的區塊得以被抹除再利用。The
快閃記憶體202的實體空間是動態地被配置使用。相較於主機(Host)端是以邏輯位址(例如,邏輯區塊位址LBA或全域主機頁編號GHP…等)區別使用者資料,各邏輯位址究竟對應至快閃記憶體哪一個實體位置(位址)則記錄在L2P映射表,其中,實體位址主要可由區塊編號、頁面編號以及資料管理單位編號來表示,資料管理單位編號又可由偏移量(Offset)來表示。在多通道存取(Multi-Channel Accessing)架構下,實體位址更可包括:通道編號、邏輯單位編號(LUN)、平面編號等資訊。The physical space of the
記憶體控制器204在操作快閃記憶體202時都需參考或更新L2P映射表的映射資訊,例如:從快閃記憶體202中讀取使用者資料時需要參考映射資訊,對快閃記憶體202寫入使用者資料則需更新映射資訊。除了因應主機(Host)的讀、寫要求,記憶體控制器204還會主動或被動地對快閃記憶體202執行其他操作,例如:垃圾回收、空間修整、區塊資料搬移…等,以上操作也都涉及L2P映射表的映射資訊之參考或更新。The
暫存記憶體206除了用以暫存L2P映射表,也可能有部分空間被規劃作為資料快取(Cache)空間222。當使用者資料被快取在暫存記憶體206的資料快取空間222時,L2P映射表中的實體位址為暫存記憶體206的實體位址,而非快閃記憶體202的實體位址。為了避免暫存記憶體206的實體位址以及快閃記憶體202的實體位址的混淆,記憶體控制器204可以在L2P映射表的實體位址中利用其中一個位元作為旗標,例如,32位元(四位元組)的實體位址規劃如下:
l 位元[31]:UNC位元,供非揮發式記憶體高速通訊介面(NVMe)的UNC指令使用。
l 位元[30:29]:資訊模式(Pattern Mode)位元,00/01代表後續位元[28:0]標示快閃記憶體202的實體位址,10代表後續位元[28:0]標示暫存記憶體206的實體位址,11代表後續位元[28:0]為無意義的虛置(Dummy)數據。
l 位元[28:0]:實體位址的數值,其中,位元[28:20]記錄區塊編號,位元[19:00]記錄頁面編號以及額外資訊,例如:偏移量(offset)、通道編號CH#、邏輯單元編號(LUN)、晶片致能信號編號CE#、平面編號等。In addition to temporarily storing the L2P mapping table, the
然而,隨著快閃記憶體202製造技術之演進,每個區塊具有更多頁面數量,快閃記憶體202具有更多的資料儲存空間,因此,L2P映射表中的實體位址需要使用更多位元數才能正確地標示使用者資料的儲存位置,原本的實體位址格式已不再適用。However, with the evolution of the manufacturing technology of the
因此,本案提出一種實體位址格式,可應用在L2P映射表,本案中32位元的實體位址規劃如下: l 位元[31]:UNC位元,供非揮發式記憶體高速通訊介面(NVMe)的UNC指令使用; l 位元[30:0]:實體位址的數值,其中,位元[30:22]記錄區塊編號,位元[21:00]記錄頁面編號以及額外資訊。另外,本發明利用不存在的實體位址的數值來作為資訊模式位元。本發明中實體位址由31個位元所表示,而非29個位元,理論上可記錄4倍的實體位址,即4倍的資料儲存空間。Therefore, this case proposes a physical address format that can be applied to the L2P mapping table. The 32-bit physical address plan in this case is as follows: l Bit [31]: UNC bit, used by the UNC command of the non-volatile memory high-speed communication interface (NVMe); l Bit [30:0]: The value of the physical address, where the bit [30:22] records the block number, and the bit [21:00] records the page number and additional information. In addition, the present invention uses the value of the non-existent physical address as the information mode bit. In the present invention, the physical address is represented by 31 bits instead of 29 bits. In theory, 4 times the physical address can be recorded, that is, 4 times the data storage space.
在本案實體位址格式中,資訊模式位元不再獨占任何專屬位元,而是與實體位址共用位元,並利用不存在的數值來表示資訊模式,例如,記錄區塊編號的位元[31:0]中,位元[30:22]記錄區塊編號,因此,其最大值為511。但是,快閃記憶體202的區塊編號的最大值為504,所以,數值505~511為不存在或未使用的數值,因此,資訊模式位元可由不存在或未使用的數值來替代。例如,如果數值為508,則將實體位址判斷成暫存記憶體206的實體位址;如果數值為511,則將實體位址判斷成無意義的虛置數據,其中邏輯運算可利用及、或、位移或遮罩等運算來作為位元[30:22]的數值的判斷。In the physical address format in this case, the information mode bit no longer monopolizes any exclusive bits, but shares bits with the physical address, and uses non-existent values to represent the information mode, for example, the bit that records the block number In [31:0], bit [30:22] records the block number, so the maximum value is 511. However, the maximum value of the block number of the
第3圖為本案判斷實體位址類別方法的流程圖。步驟S302,記憶體控制器204接收來自主機208的主機命令,其中,主機命令包括命令類別以及邏輯位址,命令類別可為資料讀取、資料寫入、空間修整等等。Figure 3 is a flowchart of the method for judging the entity address category in this case. In step S302, the
步驟S304,記憶體控制器204依據主機命令查詢L2P映射表以獲得實體位址。記憶體控制器204依據主機命令的邏輯位址L2P映射表以獲得實體位址,例如,獲得的實體位址Phy[31:0]是0x1F054321。In step S304, the
步驟S306,記憶體控制器204對實體位址(甚至,實體位址的特定位元)進行邏輯運算以取得結果值。一種實施方式是對位元[31:0] 進行邏輯運算。一種實施方式中,記憶體控制器204是對實體位址的局部位元[30:24] 進行邏輯運算,結果值為”7D”。In step S306, the
步驟S308,記憶體控制器204依據結果值來判斷實體位址的類別。若為第一數值,記憶體控制器204進行步驟S310,判定實體位址為無意義的虛置數據。若為第二數值,記憶體控制器204進行步驟S312,判定實體位址為暫存記憶體206的實體位址。若非第一、也非第二數值,記憶體控制器204進行步驟S314,判定實體位址為快閃記憶體202的實體位址。In step S308, the
第4圖為例舉(如表格400所示)本案判斷實體位址類別方法中第一數值與第二數值的設定,其中,第一數值(標號:DummySrc)以及第二數值(標號:DRAMSrc)可由下列方程式計算取得: ValidBlk = (TotalFBlk >> ShiftCnt) (方程式1) Mask=(((1>> BlkBits)-1)*(1>> ShiftCnt)) (方程式2) DummySrc = Mask (方程式3) DRAMSrc = (((1>> BlkBits)-2)*(1>> ShiftCnt))(方程式4)Figure 4 is an example (as shown in Table 400) of the first value and the second value in the method of judging the entity address category in this case, where the first value (label: DummySrc) and the second value (label: DRAMSrc) It can be calculated by the following equation: ValidBlk = (TotalFBlk >> ShiftCnt) (Equation 1) Mask=(((1>> BlkBits)-1)*(1>> ShiftCnt)) (Equation 2) DummySrc = Mask (Equation 3) DRAMSrc = (((1>> BlkBits)-2)*(1>> ShiftCnt)) (Equation 4)
以第4圖第一行為例,一個平面的總區塊數等於504,或16進位總區塊數(標號:TotalFBlk)等於0x1F8,位移量(標號:ShiftCnt,或各區塊中複數個(寫入/儲存)單位區別用的一單位位元數UnitBits)等於21位元,依據方程式1,將TotalFBlk向左位移ShiftCnt之後即可算出最大有效值(標號:ValidBlk)等於0x3F000000,而任一大於ValidBlk的數值可作為DummySrc或DRAMSrc。Taking the first line in Figure 4 as an example, the total number of blocks in a plane is equal to 504, or the total number of hexadecimal blocks (label: TotalFBlk) is equal to 0x1F8, and the amount of displacement (label: ShiftCnt, or a plurality of blocks in each block (write Input/storage) UnitBits) is equal to 21 bits. According to Equation 1, after shifting TotalFBlk to the left by ShiftCnt, the maximum valid value (label: ValidBlk) is equal to 0x3F000000, and any one is greater than ValidBlk The value of can be used as DummySrc or DRAMSrc.
選一個超過ValidBlk的數值作為遮罩(標號:Mask),如方程式2所示,令區塊位元數(標號:BlkBits)等於9以及ShiftCnt等於21,計算可得Mask等於0x3FE00000,Mask可用於本案判斷實體位址類別方法中步驟S306之運算。Choose a value that exceeds ValidBlk as the mask (label: Mask), as shown in Equation 2, set the number of block bits (label: BlkBits) equal to 9 and ShiftCnt equal to 21, and the calculation can get Mask equal to 0x3FE00000, and Mask can be used in this case The operation of step S306 in the method of judging the entity address type.
如方程式3所示,採用Mask作為DummySrc,即Mask等於DummySrc也等於0x3FE00000。之後,再依方程式4的運算可得知DRAMSrc等於0x3FC00000,DummySrc以及DRAMSrc則可用於本案判斷實體位址類別方法中步驟S308之數值辨識。As shown in Equation 3, Mask is used as DummySrc, that is, Mask is equal to DummySrc and also equal to 0x3FE00000. After that, according to the calculation of Equation 4, it can be known that DRAMSrc is equal to 0x3FC00000, and DummySrc and DRAMSrc can be used for the numerical identification of step S308 in the method of judging the physical address type in this case.
以第4圖第二行為例,一個平面的總區塊數等於236,或TotalFBlk等於0xEC,ShiftCnt等於21位元,依據方程式1,將TotalFBlk向左位移ShiftCnt之後即可算出ValidBlk等於0x3B000000,此時,令DummySrc等於0x3FC00000或DRAMSrc等於0x3F800000。Taking the second line in Figure 4 as an example, the total number of blocks in a plane is equal to 236, or TotalFBlk is equal to 0xEC, and ShiftCnt is equal to 21 bits. According to Equation 1, after shifting TotalFBlk to the left by ShiftCnt, ValidBlk is equal to 0x3B000000. , Let DummySrc be equal to 0x3FC00000 or DRAMSrc be equal to 0x3F800000.
以第4圖第三行為例,一個平面的總區塊數等於1008,或TotalFBlk等於0x3D0,ShiftCnt等於21位元,依據方程式1,將TotalFBlk向左位移ShiftCnt之後即可算出ValidBlk等於0x7E000000,此時,令DummySrc等於7FE00000或DRAMSrc等於0x7FC00000。Taking the third line in Figure 4 as an example, the total number of blocks in a plane is equal to 1008, or TotalFBlk is equal to 0x3D0, and ShiftCnt is equal to 21 bits. According to Equation 1, after shifting TotalFBlk to the left by ShiftCnt, it can be calculated that ValidBlk is equal to 0x7E000000. , Let DummySrc be equal to 7FE00000 or DRAMSrc be equal to 0x7FC00000.
以上記憶體控制器204對快閃記憶體202之操作設計也可以由其他結構實現。凡是利用(方程式1)實體空間標示最大有效值ValidBlk以上閒置數值來區別資訊模式(Pattern Mode),都屬於本案欲保護範圍。本案更可以前述概念實現非揮發式記憶體的控制方法。The above operation design of the
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。Although the present invention has been disclosed in preferred embodiments as above, it is not intended to limit the present invention. Anyone familiar with the art can make some changes and modifications without departing from the spirit and scope of the present invention. Therefore, the present invention The scope of protection shall be subject to the scope of the attached patent application.
200:資料儲存裝置 202:快閃記憶體 204:記憶體控制器 206:暫存記憶體 208:主機 210:系統資訊區塊池 212:閒置區塊池 214:主動區塊 216:資料區塊池 218:實體-邏輯位址映射表 220:空間,用於載入邏輯-實體位址映射表 222:資料快取空間 400:表格 BLK:區塊 S302…S314:步驟200: Data storage device 202: flash memory 204: Memory Controller 206: Temporary memory 208: Host 210: System Information Block Pool 212: Idle Block Pool 214: active block 216: data block pool 218: Physical-Logical Address Mapping Table 220: Space, used to load the logical-physical address mapping table 222: data cache space 400: form BLK: block S302...S314: Step
第1圖圖解一區塊BLK之結構;
第2圖為方塊圖,圖解根據本案一種實施方式所實施的資料儲存裝置200;
第3圖為本案判斷實體位址類別方法的流程圖;
第4圖為例舉本案判斷實體位址類別方法中第一數值與第二數值的設定。Figure 1 illustrates the structure of a block BLK;
Figure 2 is a block diagram illustrating the
200:資料儲存裝置 200: Data storage device
202:快閃記憶體 202: flash memory
204:記憶體控制器 204: Memory Controller
206:暫存記憶體 206: Temporary memory
208:主機 208: Host
210:系統資訊區塊池 210: System Information Block Pool
212:閒置區塊池 212: Idle Block Pool
214:主動區塊 214: active block
216:資料區塊池 216: data block pool
218:實體-邏輯位址映射表 218: Physical-Logical Address Mapping Table
220:空間,用於載入邏輯-實體位址映射表 220: Space, used to load the logical-physical address mapping table
222:資料快取空間 222: data cache space
Claims (12)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910769264.6A CN111611178B (en) | 2019-02-26 | 2019-08-20 | Data storage device and non-volatile memory control method |
US16/573,409 US11080203B2 (en) | 2019-02-26 | 2019-09-17 | Data storage device and control method for non-volatile memory |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962810422P | 2019-02-26 | 2019-02-26 | |
US62/810,422 | 2019-02-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202032375A TW202032375A (en) | 2020-09-01 |
TWI724483B true TWI724483B (en) | 2021-04-11 |
Family
ID=73643478
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108125218A TWI706250B (en) | 2019-02-26 | 2019-07-17 | Data storage device and control method for non-volatile memory |
TW108127457A TWI724483B (en) | 2019-02-26 | 2019-08-02 | Data storage device and control method for non-volatile memory |
TW108128179A TWI726381B (en) | 2019-02-26 | 2019-08-08 | Data storage device and control method for non-volatile memory |
TW108128515A TWI713032B (en) | 2019-02-26 | 2019-08-12 | Data storage device and control method for non-volatile memory |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108125218A TWI706250B (en) | 2019-02-26 | 2019-07-17 | Data storage device and control method for non-volatile memory |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108128179A TWI726381B (en) | 2019-02-26 | 2019-08-08 | Data storage device and control method for non-volatile memory |
TW108128515A TWI713032B (en) | 2019-02-26 | 2019-08-12 | Data storage device and control method for non-volatile memory |
Country Status (1)
Country | Link |
---|---|
TW (4) | TWI706250B (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220222008A1 (en) * | 2021-01-14 | 2022-07-14 | Silicon Motion, Inc. | Method for managing flash memory module and associated flash memory controller and memory device |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201104427A (en) * | 2009-06-11 | 2011-02-01 | Freescale Semiconductor Inc | Processor and method for dynamic and selective alteration of address translation |
TW201106158A (en) * | 2009-03-03 | 2011-02-16 | Qualcomm Inc | Configurable cache and method to configure same |
US20170091115A1 (en) * | 2015-09-25 | 2017-03-30 | Beijing Lenovo Software Ltd. | Method and electronic device for a mapping table in a solid-state memory |
US20180081802A1 (en) * | 2016-09-16 | 2018-03-22 | Aspiring Sky Co., Limited | Hybrid non-volatile memory structures and methods thereof |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8112574B2 (en) * | 2004-02-26 | 2012-02-07 | Super Talent Electronics, Inc. | Swappable sets of partial-mapping tables in a flash-memory system with a command queue for combining flash writes |
JP4420351B2 (en) * | 2005-09-30 | 2010-02-24 | 富士通株式会社 | Hierarchical storage system, control method and program |
TWI521343B (en) * | 2011-08-01 | 2016-02-11 | Toshiba Kk | An information processing device, a semiconductor memory device, and a semiconductor memory device |
US9690695B2 (en) * | 2012-09-20 | 2017-06-27 | Silicon Motion, Inc. | Data storage device and flash memory control method thereof |
US9256384B2 (en) * | 2013-02-04 | 2016-02-09 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for reducing write latency in a data storage system by using a command-push model |
US9383927B2 (en) * | 2014-05-28 | 2016-07-05 | SandDisk Technologies LLC | Method and system for creating a mapping table cache from an interleaved subset of contiguous mapping data for a storage device |
KR20160118836A (en) * | 2015-04-03 | 2016-10-12 | 에스케이하이닉스 주식회사 | Memory controller including host command queue and method of operating thereof |
TWI537728B (en) * | 2015-09-23 | 2016-06-11 | 群聯電子股份有限公司 | Buffer memory management method, memory control circuit unit and memory storage device |
TWI587214B (en) * | 2016-04-21 | 2017-06-11 | 慧榮科技股份有限公司 | Data storage device, control unit and task ordering method thereof |
KR102615593B1 (en) * | 2016-05-04 | 2023-12-21 | 에스케이하이닉스 주식회사 | Memory system and operating method of memory system |
TWI659307B (en) * | 2017-01-06 | 2019-05-11 | 慧榮科技股份有限公司 | Data storage device and flash memory control method |
TWI653533B (en) * | 2017-03-07 | 2019-03-11 | 慧榮科技股份有限公司 | Data storage device and method of operation thereof |
KR20180135188A (en) * | 2017-06-12 | 2018-12-20 | 에스케이하이닉스 주식회사 | Memory system and operating method of memory system |
TWI660346B (en) * | 2018-09-07 | 2019-05-21 | 大陸商深圳大心電子科技有限公司 | Memory management method and storage controller |
-
2019
- 2019-07-17 TW TW108125218A patent/TWI706250B/en active
- 2019-08-02 TW TW108127457A patent/TWI724483B/en active
- 2019-08-08 TW TW108128179A patent/TWI726381B/en active
- 2019-08-12 TW TW108128515A patent/TWI713032B/en active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201106158A (en) * | 2009-03-03 | 2011-02-16 | Qualcomm Inc | Configurable cache and method to configure same |
TW201104427A (en) * | 2009-06-11 | 2011-02-01 | Freescale Semiconductor Inc | Processor and method for dynamic and selective alteration of address translation |
US20170091115A1 (en) * | 2015-09-25 | 2017-03-30 | Beijing Lenovo Software Ltd. | Method and electronic device for a mapping table in a solid-state memory |
US20180081802A1 (en) * | 2016-09-16 | 2018-03-22 | Aspiring Sky Co., Limited | Hybrid non-volatile memory structures and methods thereof |
Also Published As
Publication number | Publication date |
---|---|
TWI706250B (en) | 2020-10-01 |
TW202032377A (en) | 2020-09-01 |
TW202032375A (en) | 2020-09-01 |
TW202032374A (en) | 2020-09-01 |
TWI713032B (en) | 2020-12-11 |
TW202032563A (en) | 2020-09-01 |
TWI726381B (en) | 2021-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10657047B2 (en) | Data storage device and method of performing partial garbage collection | |
CN108804023B (en) | Data storage device and operation method thereof | |
US10296224B2 (en) | Apparatus, system and method for increasing the capacity of a storage device available to store user data | |
JP5694895B2 (en) | Method for correlating with improved flash memory compatible electronic devices | |
US11232041B2 (en) | Memory addressing | |
TWI691839B (en) | Method for data management | |
CN109726138B (en) | Data storage device and non-volatile memory operation method | |
CN110955384B (en) | Data storage device and non-volatile memory control method | |
KR102652694B1 (en) | Zoned namespace limitation mitigation using sub block mode | |
US20090198875A1 (en) | Data writing method for flash memory, and controller and system using the same | |
CN107797934B (en) | Method for processing de-allocation command and storage device | |
JP2008009527A (en) | Memory system | |
WO2017213908A1 (en) | Method and apparatus for improving performance of sequential logging in a storage device | |
TWI718709B (en) | Data storage device and non-volatile memory control method | |
CN112100087B (en) | Data storage device and non-volatile memory control method | |
TWI724483B (en) | Data storage device and control method for non-volatile memory | |
CN110968527B (en) | FTL provided caching | |
CN112130750A (en) | Data storage device and non-volatile memory control method | |
WO2018041258A1 (en) | Method for processing de-allocation command, and storage device | |
TWI766194B (en) | Data storage device and non-volatile memory control method | |
CN111611178B (en) | Data storage device and non-volatile memory control method | |
TW202127258A (en) | Data storage device with hierarchical mapping information management and non-volatile memory control method | |
TWI705328B (en) | Data storage device and control method for non-volatile memory | |
JP2005092678A (en) | Semiconductor memory card and method for deleting data in nonvolatile memory | |
TWI724550B (en) | Data storage device and non-volatile memory control method |