CN110955384B - 数据储存装置以及非挥发式存储器控制方法 - Google Patents
数据储存装置以及非挥发式存储器控制方法 Download PDFInfo
- Publication number
- CN110955384B CN110955384B CN201910375972.1A CN201910375972A CN110955384B CN 110955384 B CN110955384 B CN 110955384B CN 201910375972 A CN201910375972 A CN 201910375972A CN 110955384 B CN110955384 B CN 110955384B
- Authority
- CN
- China
- Prior art keywords
- data
- host
- write
- temporary storage
- controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/41—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming static cells with positive feedback, i.e. cells not needing refreshing or charge regeneration, e.g. bistable multivibrator or Schmitt trigger
- G11C11/413—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction
- G11C11/417—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing, timing or power reduction for memory cells of the field-effect type
- G11C11/419—Read-write [R-W] circuits
-
- 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
- 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
-
- 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/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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/22—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
- G11C11/225—Auxiliary circuits
- G11C11/2253—Address circuits or decoders
- G11C11/2257—Word-line or row circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output circuits
-
- 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/1016—Performance improvement
-
- 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/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明涉及非挥发式存储器的高效控制技术,具体而言,涉及数据储存装置以及非挥发式存储器控制方法。非挥发式存储器包括单阶储存单元以及多阶储存单元且配有一控制器。该控制器令一主机在该主机的一系统存储器上规划一主机端暂存空间。该控制器令该主机要求的写入数据暂存至该主机端暂存空间。该控制器不使用上述单阶储存单元,即把暂存于该主机端暂存空间的该写入数据汇至上述多阶储存单元。
Description
技术领域
本发明有关于非挥发式存储器的控制。
背景技术
非挥发式存储器有多种形式─例如,快闪存储器(flash memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式随机存取存储器(Resistive RAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,用于长时间数据保存,可做为储存媒体实现一数据储存装置。
非挥发式存储器通常有其特殊的储存特性。本技术领域需要相应非挥发式存储器的储存特性发展相应的控制技术。
发明内容
根据本发明一种实施方式所实现的一数据储存装置包括一非挥发式存储器以及一控制器。该非挥发式存储器包括单阶储存单元以及多阶储存单元且。该控制器令一主机在该主机的一系统存储器上规划一主机端暂存空间。该控制器令该主机要求的写入数据暂存至该主机端暂存空间。该控制器不使用上述单阶储存单元,即把暂存于该主机端暂存空间的该写入数据汇至上述多阶储存单元。
一种实施方式中,该控制器管理一映射表,条列该主机端暂存空间各储存单元所储存内容的逻辑地址。根据该写入数据的逻辑地址,该控制器查询该映射表。该映射表载有该逻辑地址时,该控制器将该写入数据覆写至该主机端暂存空间储存旧版本内容的位置。该映射表未载有该逻辑地址时,该控制器以该主机端暂存空间的闲置空间暂存该写入数据,并据以更新该映射表。
一种实施方式中,该主机端暂存空间上凑齐一定数据量的数据时,该控制器将该定数据量的数据自该主机端暂存空间汇至上述多阶储存单元,其间不使用上述单阶储存单元。该定数据量可为上述多阶储存单元中由同一字线所控制的数据量。
一种实施方式中,该控制器具有一读/写数据暂存器。该控制器自该主机端暂存空间取得该写入数据后,将该写入数据暂存于该读/写数据暂存器,再自该读/写数据暂存器汇入上述多阶储存单元。
接收到该主机指示该写入数据的一写入指令时,该控制器可将该写入数据暂存至该读/写数据暂存器,再自该读/写数据暂存器汇至该主机端暂存器。
一种实施方式中,根据该主机要求的一读取指令所指示的逻辑地址,该控制器查询该主机端暂存空间的映射表。该映射表载有该逻辑地址时,该控制器自该主机端暂存空间取得读取数据,回应该主机。
一种实施方式中,该控制器将取自该主机端暂存空间的该读取数据暂存至该控制器的读/写数据暂存器,以回应该主机。
本发明还提出非挥发式存储器控制方法,包括以下步骤:根据一主机的要求操作一非挥发式存储器,其中,该非挥发式存储器包括单阶储存单元以及多阶储存单元;令该主机在该主机的一系统存储器上规划一主机端暂存空间;令该主机要求的写入数据暂存至该主机端暂存空间;且不使用上述单阶储存单元,即把暂存于该主机端暂存空间的该写入数据汇至上述多阶储存单元。
下文特举实施例,并配合附图,详细说明本发明内容。
符号说明
200~数据储存系统;
202~数据储存装置;
204~主机;
206~快闪存储器;
208~控制器;
210~(读/写)数据暂存器;
212~单阶储存单元区块池;
214~三阶储存单元区块池;
216~系统存储器;
218~主机端暂存空间;
HMB_Tab~主机端暂存空间映射表;
S402…S412、S502…S512~步骤。
附图说明
图1A与1B分别对应单阶储存单元SLC与三阶储存单元TLC,其中以闸极浮动电子进行划分,图解不同逻辑意义下,存储单元分布概率;
图2为根据本发明一种实施方式实现的一数据储存系统200,包括一数据储存装置202以及一主机204;
图3图解一主机端暂存空间映射表HMB_Tab,条列主机端暂存空间218的各储存单元所储存的数据的逻辑地址;
图4为流程图,根据本发明一种实施方式图解数据写入方法的流程;且
图5为流程图,根据本发明一种实施方式图解数据读取法的流程。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照权利要求书界定。
非挥发式存储器可以是快闪存储器(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)配置使用。各区块(Block)包括多页(Pages)。各页包括N个区段(Sectors),N为大于一的整数,如:4。容量16KB的页可分为四个区段,各区段为4KB,可容储存一个LBA或GHP的数据。一种实施方式中,一区块(block)根据页编号配置各页储存数据,如,由低编号至高编号循序使用该区块的各页。
特别是,快闪存储器的储存空间需抹除后方能再次使用。一种实施例中,数据抹除(Erase)的最小单位为区块。使用过的区块须抹除后方能再次使用。同样逻辑地址的数据更新并非覆写至旧数据的储存空间,新版本的数据须写入闲置空间(空白的区段)。旧空间的内容则标示为无效。一区块可能仅零星留存有效数据。闲置区块数量不足时,垃圾回收(Garbage Collection)需求产生。一区块留存的零星有效数据经垃圾回收集中到其他空间。徒留无效数据的区块因而得以被抹除再利用,拉升闲置区块数量。
除了响应闲置区块数过低而引发的垃圾回收,尚有其他多种操作涉及有效数据搬移。
快闪存储器的储存单元不限定为单阶储存单元(Single-Level Cells,SLCs),更有部分空间是提供多阶储存单元(multiple level cells),包括三阶储存单元(Triple-Level Cells,TLCs)、或四阶储存单元(Quad-level cells,QLCs)。一个单阶储存单元SLC储存一个位元的数据,一个三阶储存单元TLC储存三个位元的数据,以此类推。为了简化说明,下述中将以三阶储存单元TLC为例,但是不以此为限。
图1A与1B分别对应单阶储存单元SLC与三阶储存单元TLC,其中以闸极浮动电子进行划分,图解不同逻辑意义下,存储单元分布概率。如图所示,一存储单元的逻辑定义与其闸极浮动电子量相关。单阶储存单元SLC的逻辑分界较三阶储存单元TLC明确;不仅可靠度较高、写入速度也较快。三阶储存单元TLC则是在储存容量上有其优势。若追求准确与速度,单阶储存单元SLC是理想的储存目标。考量到储存密度,单阶储存单元SLC收集的内容须伺机搬移到三阶储存单元TLC。单阶储存单元SLC频繁地被写入又抹除,相应产生写入放大问题。SLC区块的抹除次数会在短时间暴增,快闪存储器容易损坏。
在考量快闪存储器生命周期的前提下,如何最佳化使用单阶储存单元SLC与三阶储存单元TLC为以下讨论重点。
图2为根据本发明一种实施方式实现的一数据储存系统200,包括一数据储存装置202以及一主机204。数据储存装置202具有一快闪存储器206以及一控制器208,数据储存装置202不具有动态随机存取存储器(DRAM)或是仅具有一小容量DRAM(或称为PartialDRAM)。为了简化说明,以下将以不具有DRAM的数据储存装置202为例,但是不以此为限。
主机204下达读、写要求至控制器208,再由控制器208对快闪存储器206进行读、写的操作。控制器208具有一(读/写)数据暂存器210,可为一静态随机存取存储器(SRAM)或其他储存装置。快闪存储器206具有单阶储存单元SLC区块池212以及三阶储存单元TLC区块池214,分别提供多个单阶储存单元SLCs以及多阶储存单元的区块。另外,单阶储存单元SLC区块可由三阶储存单元TLC区块模拟来产生,在此设定下,三阶储存单元TLC区块以预设模式进行数据编程,单阶储存单元SLC区块则以SLC模式进行数据编程。另外,单阶储存单元SLC区块与三阶储存单元TLC亦可分别独立存在并运作,并依据各自的预设模式进行数据编程。
主机204具有一系统存储器216,可为一DRAM或其他储存装置。于数据储存系统200开机完成后,数据储存系统200的控制器208向主机204提出主机端暂存空间(host memorybuffer,HMB)的请求,主机204依据请求而在主机204的系统存储器216中规划一块数据暂存空间,如主机端暂存空间(host memory buffer,HMB)218所示。
一般而言,控制器208会将主机204要求写入的数据先暂存在数据暂存器210,之后,再写入至单阶储存单元SLC区块,之后,再搬移至三阶储存单元TLC区块。然而,在本发明中,控制器208会将主机204要求写入的数据暂存在主机端暂存空间218,之后,再写入至数据暂存器210,之后,再写入至三阶储存单元TLC区块。如上所述,本发明略去使用单阶储存单元SLC区块,因此,单阶储存单元SLC区块至三阶储存单元TLC区块的数据搬移机率因而降低,有效解决写入放大问题。
利用主机端暂存空间218来暂存数据有诸多优点。快闪存储器206不可将数据覆写在相同物理地址,本发明可在主机端暂存空间218进行数据的覆写。数据暂存在主机端暂存空间218而非单阶储存单元SLC区块或三阶储存单元TLC区块,因此,也可降低单阶储存单元SLC区块或三阶储存单元TLC区块的抹写次数,增加单阶储存单元SLC区块或三阶储存单元TLC区块的使用寿命。主机端暂存空间218亦可提供快取(cache)功能。主机204下达读取指令以读取数据时,如果目标数据暂存在主机端暂存空间218,则控制器208可以依据主机端暂存空间218的目标数据回应主机204的读取指令。
如图3所示,控制器208较佳建立主机端暂存空间映射表HMB_Tab以记录主机端暂存空间218所储存的数据的物理地址(或称HMB地址)以及逻辑地址(如,逻辑区块地址LBA)的映射关系,其中,记录主机端暂存空间218的HMB地址由主机204所指定,控制器208再利用指定的HMB地址来暂存数据,例如,利用指定的HMB地址来暂存48笔区段大小的数据。主机端暂存空间映射表HMB_Tab可建立在主机端暂存空间218上。当有数据暂存或更新时,控制器208自主机端暂存空间218下载主机端暂存空间映射表HMB_Tab的全部或一部份至数据暂存器210,并予以更新,之后,再将更新后的主机端暂存空间映射表HMB_Tab上传至主机端暂存空间218。另外,主机端暂存空间映射表HMB_Tab可建立在数据暂存器210,当有数据暂存或更新时,控制器208可直接在系统存储器216上更新主机端暂存空间映射表HMB_Tab的内容。
图4为流程图,根据本发明一种实施方式图解数据写入方法的流程,本发明数据写入方法较佳由数据储存装置202的控制器208所执行,可有效地延长数据储存装置使用寿命。
步骤S402,控制器208接收来自主机204的写入指令,其中,写入指令指示数据以及数据的逻辑地址。
步骤S404,控制器208依据主机端暂存空间映射表HMB_Tab而判断数据是否已暂存在主机端暂存空间218,如果是,则执行步骤S412,如果否,则执行步骤S406。控制器208依据数据的逻辑地址来查询主机端暂存空间映射表HMB_Tab,若数据的逻辑地址尚未载于主机端暂存空间映射表HMB_Tab,这表示数据并未暂存在主机端暂存空间218,接着,应该将数据暂存至主机端暂存空间218;如果已载于主机端暂存空间映射表HMB_Tab,这表示数据已暂存在主机端暂存空间218,可直接以此数据(新数据)更新之前的数据(旧数据)。
步骤S406,控制器208将数据暂存至主机端暂存空间218并更新主机端暂存空间映射表HMB_Tab,例如,将LBA#1046的数据写入主机端暂存空间218的物理地址0x4002E000,并将LBA#1046记录(更新)至主机端暂存空间映射表HMB_Tab。
步骤S408,控制器208判断主机端暂存空间218的数据量是否满足汇出(flush)条件,其中,汇出(flush)条件较佳为区段或页面的正整数倍,例如,48笔区段或12个页面。一种实施方式是以同一字线的储存单元为管理单位。若未满足汇出(flush)条件,则控制器208可结束程序,将数据暂存在主机端暂存空间218。
汇出(flush)条件满足时,流程进入步骤S410。控制器208将主机端暂存空间218暂存的数据编程至三阶储存单元(TLC)区块(可经该(读/写)数据暂存器210),其中,控制器208以预设模式将主机端暂存空间218暂存的数据编程至三阶储存单元(TLC)区块,而不是以SLC模式将主机端暂存空间218暂存的数据编程至单阶储存单元(SLC)区块,如此一来,可减少(避免)单阶储存单元SLC的使用。另外,控制器208可将主机端暂存空间218暂存的全部数据编程至三阶储存单元(TLC)区块,或者,仅编程预设数量的数据至三阶储存单元(TLC)区块,例如,仅编程48笔区段中的16笔区段的数据至三阶储存单元(TLC)区块。一种实施方式是以同一字线的储存单元为管理单位。另外,此三阶储存单元(TLC)区块又称为主动区块。
另外,当主机端暂存空间218暂存的数据编程至三阶储存单元(TLC)区块之后,控制器208立即或之后再更新逻辑-物理地址映射表(Logical-Physical Mapping Table,L2PTable),其中,L2P映射表记录数据储存装置中的数据的逻辑地址与物理地址的对应关系。
倘若步骤S404在主机端暂存空间映射表HMB_Tab查询到主机204指示的写入逻辑地址,流程进行步骤S412。控制器208依据主机端暂存空间映射表HMB_Tab而将入数据覆写至主机端暂存空间218。数据记录在主机端暂存空间映射表HMB_Tab表示数据乃暂存在主机端暂存空间218,因此,控制器208查询主机端暂存空间映射表HMB_Tab可以得知(旧)数据暂存在主机端暂存空间218的地址,例如,逻辑地址LBA#1001所对应的主机端暂存空间218的物理地址0x40001000,因此,控制器208可将(新)数据写入(覆写)此物理地址,完成数据的更新。由于是进行同物理地址的覆写,控制器208无须调整主机端暂存空间映射表HMB_Tab的内容并结束程序。
图5为流程图,根据本发明一种实施方式图解数据读取方法的流程,本发明数据读取方法较佳由数据储存装置的控制器所执行,可有效地延长数据储存装置使用寿命。
步骤S502,控制器208接收来自主机204的读取指令,其中,读取指令包含欲读取数据的逻辑地址。
步骤S504,控制器208判断逻辑地址是否记录在主机端暂存空间映射表HMB_Tab中,如果否则进行步骤S506,如果是则进行步骤S510。
步骤S506,控制器208依据逻辑地址以及L2P映射表以取得快闪存储器206的一个物理地址。
步骤S508,控制器208读取快闪存储器206的物理地址以取得欲读取数据,并回传欲读取数据至主机204。控制器208读取快闪存储器206的物理地址以取得欲读取数据,并先将欲读取数据储存至数据暂存器210,再将欲读取数据从数据暂存器210上传至主机204。
倘若步骤S504在主机端暂存空间映射表HMB_Tab查询到主机204指示读取的逻辑地址,流程进行步骤S510,控制器208依据逻辑地址以及主机端暂存空间映射表HMB_Tab以取得主机端暂存空间218的一个物理地址。
步骤S512,控制器208读取主机端暂存空间218的物理地址以取得欲读取数据,并回传欲读取数据至主机204。控制器208读取主机端暂存空间218的物理地址以取得欲读取数据,并先将欲读取数据储存至数据暂存器210,再将欲读取数据从数据暂存器210上传至主机204。
以上应用主机端暂存空间218以替代部份快闪存储器206的操作,或是应用主机端暂存空间218来汇整主机204发出的写入数据,再将数据编程至三阶储存单元TLCs区块等,都属于本发明欲保护范围。本发明还可以前述概念实现非挥发式存储器的控制方法。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当由权利要求书界定为准。
Claims (16)
1.一种数据储存装置,包括:
一非挥发式存储器,包括单阶储存单元以及多阶储存单元;以及
一控制器,根据一主机的要求操作该非挥发式存储器,
其中:
该控制器令该主机在该主机的一系统存储器上规划一主机端暂存空间;
该控制器令该主机要求的写入数据暂存至该主机端暂存空间;
该控制器不使用上述单阶储存单元,即把暂存于该主机端暂存空间的该写入数据汇至上述多阶储存单元;
该控制器管理一映射表,条列该主机端暂存空间各储存单元所储存内容的逻辑地址;
根据该写入数据的逻辑地址,该控制器查询该映射表;且
该映射表载有该逻辑地址时,该控制器将该写入数据覆写至该主机端暂存空间储存旧版本内容的位置。
2.如权利要求1所述的数据储存装置,其特征在于:
该映射表未载有该逻辑地址时,该控制器以该主机端暂存空间的闲置空间暂存该写入数据,并据以更新该映射表。
3.如权利要求2所述的数据储存装置,其特征在于:
该主机端暂存空间上凑齐一定数据量的数据时,该控制器将该一定数据量的数据自该主机端暂存空间汇至上述多阶储存单元,其间不使用上述单阶储存单元。
4.如权利要求3所述的数据储存装置,其特征在于:
该一定数据量为上述多阶储存单元中由同一字线所控制的数据量。
5.如权利要求1所述的数据储存装置,其特征在于:
该控制器具有一读/写数据暂存器;且
该控制器自该主机端暂存空间取得该写入数据后,将该写入数据暂存于该读/写数据暂存器,再自该读/写数据暂存器汇入上述多阶储存单元。
6.如权利要求5所述的数据储存装置,其特征在于:
接收到该主机指示该写入数据的一写入指令时,该控制器是将该写入数据暂存至该读/写数据暂存器,再自该读/写数据暂存器汇至该主机端暂存器。
7.如权利要求1所述的数据储存装置,其特征在于:
该控制器管理一映射表,条列该主机端暂存空间各储存单元所储存内容的逻辑地址;
根据该主机要求的一读取指令所指示的逻辑地址,该控制器查询该映射表;且
该映射表载有该逻辑地址时,该控制器自该主机端暂存空间取得读取数据,回应该主机。
8.如权利要求7所述的数据储存装置,其特征在于:
该控制器具有一读/写数据暂存器;且
该控制器将取自该主机端暂存空间的该读取数据暂存至该读/写数据暂存器,以回应该主机。
9.一种非挥发式存储器控制方法,包括:
根据一主机的要求操作一非挥发式存储器,其中,该非挥发式存储器包括单阶储存单元以及多阶储存单元;
令该主机在该主机的一系统存储器上规划一主机端暂存空间;
令该主机要求的写入数据暂存至该主机端暂存空间;
不使用上述单阶储存单元,即把暂存于该主机端暂存空间的该写入数据汇至上述多阶储存单元;
管理一映射表,条列该主机端暂存空间各储存单元所储存内容的逻辑地址;
根据该写入数据的逻辑地址,查询该映射表;且
该映射表载有该逻辑地址时,将该写入数据覆写至该主机端暂存空间储存旧版本内容的位置。
10.如权利要求9所述的非挥发式存储器控制方法,其特征在于,还包括:
该映射表未载有该逻辑地址时,以该主机端暂存空间的闲置空间暂存该写入数据,并据以更新该映射表。
11.如权利要求10所述的非挥发式存储器控制方法,其特征在于,还包括:
该主机端暂存空间上凑齐一定数据量的数据时,将该一定数据量的数据自该主机端暂存空间汇至上述多阶储存单元,其间不使用上述单阶储存单元。
12.如权利要求11所述的非挥发式存储器控制方法,其特征在于:
该一定数据量为上述多阶储存单元中由同一字线所控制的数据量。
13.如权利要求9所述的非挥发式存储器控制方法,其特征在于,还包括:
提供一读/写数据暂存器;且
自该主机端暂存空间取得该写入数据后,将该写入数据暂存于该读/写数据暂存器,再自该读/写数据暂存器汇入上述多阶储存单元。
14.如权利要求13所述的非挥发式存储器控制方法,其特征在于:
根据该主机指示该写入数据的一写入指令,该写入数据先暂存至该读/写数据暂存器,再自该读/写数据暂存器汇至该主机端暂存器。
15.如权利要求9所述的非挥发式存储器控制方法,其特征在于,还包括:
管理一映射表,条列该主机端暂存空间各储存单元所储存内容的逻辑地址;
根据该主机要求的一读取指令所指示的逻辑地址,查询该映射表;且
该映射表载有该逻辑地址时,自该主机端暂存空间取得读取数据,回应该主机。
16.如权利要求15所述的非挥发式存储器控制方法,其特征在于,还包括:
提供一读/写数据暂存器;且
将取自该主机端暂存空间的该读取数据暂存至该读/写数据暂存器,以回应该主机。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862736517P | 2018-09-26 | 2018-09-26 | |
US62/736,517 | 2018-09-26 | ||
TW108112760 | 2019-04-11 | ||
TW108112760A TWI705328B (zh) | 2018-09-26 | 2019-04-11 | 資料儲存裝置以及非揮發式記憶體控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110955384A CN110955384A (zh) | 2020-04-03 |
CN110955384B true CN110955384B (zh) | 2023-04-18 |
Family
ID=69883497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910375972.1A Active CN110955384B (zh) | 2018-09-26 | 2019-05-07 | 数据储存装置以及非挥发式存储器控制方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10991422B2 (zh) |
CN (1) | CN110955384B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021149549A (ja) * | 2020-03-19 | 2021-09-27 | キオクシア株式会社 | ストレージ装置およびアドレス変換テーブルのキャッシュ制御方法 |
US11507309B2 (en) * | 2020-05-04 | 2022-11-22 | Western Digital Technologies, Inc. | Storage system and method for using memory allocated in a host for read data as a host memory buffer |
US12019786B2 (en) * | 2020-10-02 | 2024-06-25 | Western Digital Technologies, Inc. | Data storage devices and related methods to secure host memory buffers with low latency |
US12045516B2 (en) * | 2020-10-02 | 2024-07-23 | SanDisk Technologies, Inc. | DRAM-less SSD with secure HMB for low latency |
CN112416819A (zh) * | 2020-11-05 | 2021-02-26 | 深圳电器公司 | 基于主机内存缓冲器的固态驱动器的实现方法及装置 |
KR20230051335A (ko) * | 2021-10-08 | 2023-04-18 | 삼성전자주식회사 | 스토리지 장치 및 전자 시스템 |
US11733914B2 (en) * | 2021-10-29 | 2023-08-22 | Western Digital Technologies, Inc. | Direct write operation for quad-level cell based data storage devices |
CN113986773A (zh) * | 2021-11-16 | 2022-01-28 | 深圳忆联信息系统有限公司 | 基于固态硬盘的写放大优化方法、装置及计算机设备 |
US11704236B2 (en) | 2021-11-17 | 2023-07-18 | Western Digital Technologies, Inc. | Method and storage system with a layered caching policy |
US11847323B1 (en) * | 2022-06-07 | 2023-12-19 | Westem Digital Technologies, Inc. | Data storage device and method for host buffer management |
US20240094911A1 (en) * | 2022-09-20 | 2024-03-21 | Western Digital Technologies, Inc. | Dynamic And Shared CMB And HMB Allocation |
US20240345762A1 (en) * | 2023-04-11 | 2024-10-17 | Qualcomm Incorporated | Universal Flash Storage Read Throughput Enhancements |
CN116540950B (zh) * | 2023-07-05 | 2023-09-29 | 合肥康芯威存储技术有限公司 | 一种存储器件及其写入数据的控制方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201030521A (en) * | 2009-02-10 | 2010-08-16 | Phison Electronics Corp | Multi level cell NAND flash memory storage system, and controller and accessing method thereof |
CN103688246A (zh) * | 2011-05-17 | 2014-03-26 | 桑迪士克科技股份有限公司 | 具有在活跃slc和mlc存储器分区之间分布的小逻辑组的非易失性存储器和方法 |
CN104750615A (zh) * | 2013-12-26 | 2015-07-01 | 慧荣科技股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
CN108121664A (zh) * | 2016-11-28 | 2018-06-05 | 慧荣科技股份有限公司 | 数据储存装置以及其操作方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7633800B2 (en) | 2007-08-08 | 2009-12-15 | Atmel Corporation | Redundancy scheme in memory |
CN101464834B (zh) | 2007-12-19 | 2011-01-26 | 群联电子股份有限公司 | 闪存数据写入方法及使用此方法的控制器 |
CN101483067B (zh) | 2008-01-11 | 2012-04-18 | 群联电子股份有限公司 | 快闪存储器数据写入方法及其快闪存储器控制器 |
US8923045B2 (en) | 2012-05-31 | 2014-12-30 | Seagate Technology Llc | Multi-level cell (MLC) update with protected mode capability |
TWI506430B (zh) * | 2013-03-20 | 2015-11-01 | Phison Electronics Corp | 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置 |
US9870836B2 (en) * | 2015-03-10 | 2018-01-16 | Toshiba Memory Corporation | Memory system and method of controlling nonvolatile memory |
TWI534618B (zh) | 2015-07-13 | 2016-05-21 | 群聯電子股份有限公司 | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 |
TWI584291B (zh) | 2015-12-28 | 2017-05-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
US10275165B2 (en) | 2016-09-12 | 2019-04-30 | Toshiba Memory Corporation | Memory controller |
US10048887B2 (en) * | 2016-10-27 | 2018-08-14 | Micron Technology, Inc. | Apparatuses and methods for single level cell caching |
TWI615711B (zh) | 2017-03-28 | 2018-02-21 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
-
2019
- 2019-05-07 CN CN201910375972.1A patent/CN110955384B/zh active Active
- 2019-07-28 US US16/524,113 patent/US10991422B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201030521A (en) * | 2009-02-10 | 2010-08-16 | Phison Electronics Corp | Multi level cell NAND flash memory storage system, and controller and accessing method thereof |
CN103688246A (zh) * | 2011-05-17 | 2014-03-26 | 桑迪士克科技股份有限公司 | 具有在活跃slc和mlc存储器分区之间分布的小逻辑组的非易失性存储器和方法 |
CN104750615A (zh) * | 2013-12-26 | 2015-07-01 | 慧荣科技股份有限公司 | 数据储存装置以及快闪存储器控制方法 |
CN108121664A (zh) * | 2016-11-28 | 2018-06-05 | 慧荣科技股份有限公司 | 数据储存装置以及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US10991422B2 (en) | 2021-04-27 |
CN110955384A (zh) | 2020-04-03 |
US20200098423A1 (en) | 2020-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110955384B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
US10496334B2 (en) | Solid state drive using two-level indirection architecture | |
CN110998550B (zh) | 存储器寻址 | |
JP5728672B2 (ja) | ハイブリッドメモリ管理 | |
KR102704776B1 (ko) | 컨트롤러 및 컨트롤러의 동작방법 | |
US11455244B2 (en) | Zoned namespace limitation mitigation using sub block mode | |
US20090198875A1 (en) | Data writing method for flash memory, and controller and system using the same | |
CN112130749B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
US10283196B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
TWI718710B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
US8892816B1 (en) | System and method for writing data to a memory | |
KR20220005111A (ko) | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 | |
CN109521944B (zh) | 数据储存装置以及数据储存方法 | |
CN112015329A (zh) | 存储系统及其操作方法 | |
CN111610931B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
KR20210157544A (ko) | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 | |
US11556249B2 (en) | Delaying random data relocation for reducing write amplification in storage devices | |
US11080203B2 (en) | Data storage device and control method for non-volatile memory | |
CN111610929B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
TWI705328B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
TWI724550B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
CN111309642B (zh) | 一种存储器及其控制方法与存储系统 | |
US11657000B2 (en) | Controller and memory system including the same | |
US20240241642A1 (en) | Storage device including non-volatile memory device and operating method of storage device | |
KR20230115196A (ko) | 메모리 블록을 할당 해제하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |