CN112100087B - 数据储存装置以及非挥发式存储器控制方法 - Google Patents

数据储存装置以及非挥发式存储器控制方法 Download PDF

Info

Publication number
CN112100087B
CN112100087B CN201911233647.8A CN201911233647A CN112100087B CN 112100087 B CN112100087 B CN 112100087B CN 201911233647 A CN201911233647 A CN 201911233647A CN 112100087 B CN112100087 B CN 112100087B
Authority
CN
China
Prior art keywords
data
mapping information
mapping
volatile memory
memory
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
Application number
CN201911233647.8A
Other languages
English (en)
Other versions
CN112100087A (zh
Inventor
林婷涵
许哲玮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from TW108136997A external-priority patent/TWI766194B/zh
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN112100087A publication Critical patent/CN112100087A/zh
Application granted granted Critical
Publication of CN112100087B publication Critical patent/CN112100087B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0261Garbage collection, i.e. reclamation of unreferenced memory using reference counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Abstract

本发明涉及数据储存的映射资讯管理,具体地说,涉及数据储存装置以及非挥发式存储器的控制方法。一控制器将一主机下达的写入数据快取于一暂存存储器,再自该暂存存储器程序化至该非挥发式存储器。该控制器以一映射资讯格式维护该主机辨识的逻辑地址的映射资讯。该映射资讯格式下,不高于一第一阈值而对应该非挥发式存储器的组态资讯储存空间的数值,至少局部用于指向该暂存存储器。指向该非挥发式存储器的数值则高于该第一阈值。

Description

数据储存装置以及非挥发式存储器控制方法
技术领域
本发明是有关于非挥发式存储器的控制。
背景技术
非挥发式存储器有多种形式─例如,快闪存储器(flash memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式随机存取存储器(Resistive RAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,用于长时间数据保存,可做为储存媒体实现一数据储存装置。
随着科技进步,数据储存装置的储存能力越发强大。本技术领域需要足以应付大尺寸储存的映射资讯管理技术。
发明内容
本发明揭露数据储存的映射资讯管理。
根据本发明一种实施方式实现的一种数据储存装置,包括:一非挥发式存储器;以及一控制器,控制该非挥发式存储器。该控制器将一主机下达的写入数据快取于一暂存存储器,再自该暂存存储器程序化至该非挥发式存储器。该控制器以一映射资讯格式维护该主机辨识的逻辑地址的映射资讯。该映射资讯格式下,不高于一第一阈值而对应该非挥发式存储器的组态资讯储存空间的数值,至少局部用于指向该暂存存储器。该映射资讯格式下,指向该非挥发式存储器的数值高于该第一阈值。
一种实施方式中,该映射资讯格式不具有映射资讯模式位元。
一种实施方式中,一第二阈值低于该第一阈值,且相依于该暂存存储器提供的数据快取空间的尺寸。该映射资讯格式下,低于该第二阈值的数值指向该暂存存储器的上述数据快取空间。
一种实施方式中,一预设数值不高于该第一阈值,且不低于该第二阈值。该映射资讯格式所呈现的该预设数值,示意虚置的映射资讯。
一种实施方式中,该映射资讯格式的一数值高于该第一阈值时,该控制器还以一数量对该数值进行除法运算以及余数运算,计算一商值以及一余数。该非挥发式存储器划分为多个大单元,各大单元包括该数量的小单元。该商值为大单元编号。该余数为小单元编号。
一种实施方式中,该控制器在该暂存存储器上维护一映射历程表,相应上述数据快取空间的多个快取栏位,以该映射资讯格式条列各快取数据前一版本的实体地址。
一种实施方式中,相应上述数据快取空间所快取的一逻辑地址的数据,该控制器在该暂存存储器上以该映射资讯格式维护一最新映射资讯。
一种实施方式中,该逻辑地址在上述数据快取空间的一第一栏位以及一第二栏位都有快取数据,且该最新映射资讯指向上述数据快取空间的该第二栏位。相应上述数据快取空间的该第一栏位,该映射历程表的一第一栏位指向该非挥发式存储器。相应上述数据快取空间的该第二栏位,该映射历程表的一第二栏位指向上述数据快取空间的该第一栏位。该控制器根据该最新映射资讯,查询该映射历程表的该第二栏位,据以回溯该映射历程表的该第一栏位。基于该映射历程表的该第一栏位指向该非挥发式存储器,该控制器视上述数据快取空间的该第一栏位为该逻辑地址的最旧版本快取数据。该控制器将该逻辑地址的最旧版本快取数据程序化至该非挥发式存储器,并更新该映射历程表的该第二栏位指向该非挥发式存储器。
一种实施方式中,该控制器根据该最新映射资讯,查询该映射历程表的该第二栏位,辨识出是指向该非挥发式存储器时,视上述数据快取空间的该第二栏位为该逻辑地址的最旧版本快取数据。确定上述数据快取空间的该第二栏位为该逻辑地址的最旧版本快取数据后,该控制器将上述数据快取空间的该第二栏位的快取数据程序化至该非挥发式存储器,并更新该最新映射资讯指向该非挥发式存储器。
以上存储器控制器对非挥发式存储器的操作也可以由其他结构实现。本发明还可以前述概念实现非挥发式存储器的控制方法。
下文特举实施例,并配合附图,详细说明本发明内容。
附图说明
图1图解快闪存储器一区块Blk的结构;
图2A图解传统技术所使用的一种映射资讯格式200;
图2B图解本发明一种实施方式所使用的一种映射资讯格式210;
图3为方块图,根据本发明一种实施方式图解一数据储存装置300;
图4以表格400条列映射资讯格式210各种数值的意义;
图5为流程图,根据本发明一种实施方式图解控制器304的运作;以及
图6A~图6D举例说明暂存存储器306所动态维护的内容,其中以逻辑地址LBA10的数据更新为例。
符号说明
200、210~映射资讯格式;
300~数据储存装置;
302~快闪存储器;
304~控制器;
306~暂存存储器;
308~主机;
310~备用区块池;
312~主动区块;
314~数据区块池;
316~数据快取空间;
318~空间,动态维护映射资讯;
400~表格;
602~映射历程表;
604~最新映射资讯;
Blk~区块;
Blk0~组态区块;
(Blk10,Page2)、(Blk11,Page3)…(Blk11,Page5)~实体地址,指向快闪存储器302;
Cache2…Chace4~实体地址,指向数据快取空间316的索引2…4;
LBA10~逻辑地址;
S502…S512~步骤;
T0…T3~时间点;
UNC~UNC指令的专属位元。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围由权利要求书来界定。
非挥发式存储器可以是快闪存储器(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长度的使用者数据。一次写入可能涉及多个区段。例如,在4KB数据管理模式下,可将8个区段视为一个数据单元(Unit),进行管理。一次写入可能涵盖8个区段(4KB)长度。16KB长度的页面可由四个数据单元(32个区段)所组成;四个数据单元的逻辑关系可能不连续。
特别是,同样逻辑地址的数据更新并非覆写至旧数据的储存空间,新版本的数据须写入空白的区段。旧空间的内容无效。区块可能仅零星留存有效数据。由于快闪存储器的储存空间需抹除(Erase)后方能再次使用,备用区块逐渐消耗。备用区块数量不足时(如,低于阈值),垃圾回收(Garbage Collection)需求产生。区块留存的零星有效数据经垃圾回收集中到其他空间。徒留无效数据的区块则抹除释出,拉升备用区块数量,确保快闪存储器的正常使用。垃圾回收也可能使得同区块内容的逻辑关系更零散。
由前述内容可知,快闪存储器的空间配置相当复杂。一种实施方式是建立逻辑-实体地址映射表(Logical-to-Physical Addresses Mapping Table,L2P映射表),显示主机以逻辑地址辨识的数据储存在快闪存储器哪些实体地址。
一种实施方式中,主机要求写入快闪存储器的数据是先快取在暂存存储器。待程序化条件满足(如,快取达一定量、或定时封存),数据才从暂存存储器移至快闪存储器。因此,逻辑地址也有可能是映射到暂存存储器。映射资讯模式(pattern mode)显示映射资讯是指向暂存存储器、或是快闪存储器。传统的映射资讯格式会为映射资讯模式设立专属位元。本发明映射资讯格式则省去映射资讯模式位元。
图2A图解传统技术所使用的一种映射资讯格式200,包括32位元(四位元组)。各位元规划如下:
位元[31]:UNC位元,供非挥发式存储器高速通讯介面(NVMe)的UNC指令使用。
位元[30:29]:映射资讯模式(Pattern Mode)位元,00/01代表后续位元[28:0]标示快闪存储器的实体地址,10代表后续位元[28:0]标示暂存存储器的实体地址,11代表后续位元[28:0]为无意义的虚置(Dummy)数据。
位元[28:0]:快闪存储器或暂存存储器的实体地址,或虚置数据。
映射资讯格式200设有映射资讯模式位元[30:29],再扣掉位元UNC,仅有29位元可用于标示实体地址。所幸传统数据储存装置尺寸有限,29位元相当足够。甚至,区块资讯的标示位元[28:16]与页面以及数据单元资讯的标示位元[15:0]不重迭。
采映射资讯格式200的数值u32H2F,可进行以下运算以及判断:
u32H2F&0x60000000=0x60000000,则u32H2F为虚置数据;
u32H2F&0x60000000=0x40000000,则u32H2F指向暂存存储器;
u32H2F&0x60000000=0,则u32H2F指向快闪存储器。
指向快闪存储器时,还可以做以下判断:
((u32H2F&0x1FFFFFFF)>>18),经过逻辑及("AND")运算以及位移("Shift")运算,得区块资讯Blk#。
(u32H2F&0x3FFF),经过逻辑及("AND")运算,得页面资讯Page#以及数据单元资讯Unit#,可为某编号页面的某编号数据单元,或采偏移量(offset)方式呈现。
图2B图解本发明一种实施方式所使用的一种映射资讯格式210,包括32位元(四位元组),不含专属的位元UNC以及映射资讯模式位元。以下详细描述其运作方式。
图3为方块图,根据本发明一种实施方式图解数据储存装置300,包括快闪存储器302、控制器304以及暂存存储器306。主机308透过控制器304操作快闪存储器302。数据储存装置300内部也可经控制器304发动快闪存储器302的最佳化操作;例如,整理快闪存储器302空间,使其发挥最大储存效能。控制器304进行运算时是以暂存存储器306暂存数据。暂存存储器306可为动态随机存取存储器(DRAM)或SRAM。
快闪存储器302包括多个区块。取自备用区块池310的主动区块312用于程序化主机308要求的写入数据。主动区块312程序化完成后即推入数据区块池314。后续若经垃圾回收释出,则重新归类至备用区块池310。
特别是,快闪存储器302有至少一组态区块Blk0储存快闪存储器302的组态资讯,不会被动态配置储存使用者数据。系统上电后,主机308即要求逻辑区块LBA0的数据,使控制器304读取该组态区块Blk0。控制器304将根据该组态区块Blk0读取状况,得知操作该快闪存储器302所需的组态资讯。控制器304是根据获得的组态资讯操作该快闪存储器302。
由于组态区块Blk0无须维护映射关系,本发明特别将该组态区块Blk0的实体地址用于标示暂存存储器306空间。
如图所示,控制器304是先将数据快取于该暂存存储器306的数据快取空间316,再自数据快取空间316程序化至该主动区块312。暂存存储器306也负责映射资讯的动态维护(空间318),其中采用省去映射资讯模式位元的映射资讯格式210。
图4以表格400条列映射资讯格式210各种数值的意义。
所述实施方式中,数据储存装置300采用多通道技术,将不同通道之间的区块视为一个超级区块(Super Block),将不同通道之间的页面视为超级页面(Super Page),再以超级区块或超级页面作为数据抺除(Erase)或数据写入的单位。此架构可提升数据储存装置300的数据吞吐量。各超级区块含括的数据单元数量UnitPerSuperBlk为0x300000。超级区块SuperBlk0包括所有通道上的区块Blk0,都为组态区块,其32位元实体地址0x00000000~0x0002FFFF被挪用来指向数据快取空间316或用作虚置(Dummy)。一种实施方式中,数据快取空间316的尺寸为64M(=4K*214)。以4K管理时,需要14位元标示空间。如,以0x0000~0x3FFF标示。因此,小于0x4000的数值所指为数据快取空间316,例如,暂存存储器306的实体地址。数值0x5000(或其他未利用的值)标示虚置数据。
0x00030000起的数值即快闪存储器302实体地址。例如,0x00030000~0x0005FFFF指向超级区块SuperBlk1。例如,0x00060000~0x0008FFFF指向超级区块SuperBlk2。以此类推。
一种实施方式中,快闪存储器302的容量为16TB(4KB*232),且是采4KB为数据单元进行管理。快闪存储器302所有的数据单元需要32位元区别。映射资讯格式210完全能应付如此需求。以上数值都可视装置实际的储存能力、以及储存空间架构有所调整。
图5为流程图,根据本发明一种实施方式图解控制器304的运作。
步骤S502,控制器304接收主机308指示的逻辑地址。
步骤S504,控制器304查询对应该逻辑地址的映射资讯,例如,获得32位元长的数值u32H2F。
步骤S506,控制器304判读映射资讯。映射资讯若高于0x8000(第一阈值),控制器304视该映射资讯为快闪存储器302的实体地址,流程进入步骤S508。映射资讯若低于0x4000(第二阈值),控制器304视该映射资讯为暂存存储器306的实体地址,流程进入步骤S510。若映射资讯等于0x5000(预设数值),控制器304视该映射资讯为虚置数据,流程进入步骤S512。其中,第一阈值与组态数据尺寸相关,第二阈值与数据快取空间316的尺寸相关,第一阈值大于第二阈值,预设数值(0x5000)可替代为介于第一阈值与第二阈值之间的任何数值。
步骤S508,控制器304依据映射资讯以存取快闪存储器302。控制器304可对映射资讯(u32H2F)进行除法或取余数运算以取得超级区块编号SuperBlk#、通道编号CH#、页面编号Page#以及数据单元编号Unit#等资讯,例如:
u32H2F/UnitPerSuperBlk,经过除法运算,商值为超级区块编号SuperBlk#;
u32H2F%UnitPerSuperBlk,经过取余值,得为通道编号CH#、页面编号Page#以及数据单元编号Unit#。有了上述资讯,控制器304可正确地存取快闪存储器302。
步骤S510,控制器304依据映射资讯以存取暂存存储器306。例如,控制器304解读数值u32H2F为暂存存储器306地址,指向数据快取空间316。
步骤S512,控制器304回传预设讯息。由于映射资讯(u32H2F)为虚置数据,因此,控制器304向主机308回报其所要求的逻辑地址尚未记录,或此逻辑地址已被清除等预设讯息。
基于映射资讯格式210,控制器304还设计特殊流程在暂存存储器306的空间318上维护映射资讯。图6A~图6D举例说明暂存存储器306所动态维护的内容,其中以逻辑地址LBA10的数据更新为例。尚未程序化至快闪存储器302的数据快取于该数据快取空间316。空间318上动态维护的映射资讯则包括映射历程表602以及最新映射资讯604。
映射历程表602对应数据快取空间316多个快取栏位,以该映射资讯格式210条列各快取数据前一版本的实体地址。相应逻辑地址LBA10,该控制器在空间318还以该映射资讯格式210维护该最新映射资讯604
参阅图6A,时间点T0的最新映射资讯604显示逻辑地址LBA10的数据该时刻乃非挥发式储存在快闪存储器302的实体地址(区块Blk10,页面Page2)。时间点T1、T2、T3,逻辑地址LBA10管理的数据多次更新,依序快取于数据快取空间316索引2、3、4。相应时间点T1、T2、T3,最新映射资讯604三次更新,且映射历程填入该映射历程表602索引2、3、4。
对应时间点T1的LBA10快取(316上,索引2),其前一版本(T0)数据的实体位置(区块Blk10,页面Page2)由最新映射资讯604复制到映射历程表602索引2。最新映射资讯604改为Cache2,指向数据快取空间316于时间点T1的LBA10快取版本(316上,索引2)。
对应时间点T2的LBA10快取(316,索引3),其前一版本(T1)数据的实体位置Cache2由最新映射资讯604复制到映射历程表602索引3。最新映射资讯604改为Cache3,指向数据快取空间316于时间点T2的LBA10快取版本(316上,索引3)。
对应时间点T3的LBA10快取(316,索引4),其前一版本(T2)数据的实体位置Cache3由最新映射资讯604复制到映射历程表602索引4。最新映射资讯604改为Cache4,指向数据快取空间316于时间点T3的LBA10快取版本(316上,索引4)。
图6B~图6D,控制器304将快取数据程序化至快闪存储器302。
参阅图6B,控制器304将数据快取空间316索引2的LBA10数据程序化至快闪存储器302时,会做几个步骤。控制器304由最新映射资讯604(Cache4)得知LBA10最新版本数据在数据快取空间316的索引4。相应之,控制器304在映射历程表602的索引4取得实体地址Cache3。根据索引对应的特性,控制器304回溯到映射历程表602的索引3取得实体地址Cache2。根据索引对应的特性,控制器304回溯到映射历程表602的索引2取得实体地址(Blk10,Page2)。控制器304因而得知数据快取空间316索引2前一版本数据早已程序化至快闪存储器302,故确定数据快取空间316索引2的内容就是LBA10最旧的快取版本,并将的程序化至快闪存储器302的实体地址(Blk11,Page3)。控制器304将区块Blk10的有效页数减一,并将区块Blk11的有效页数增1。控制器304还将指向索引2的映射历程表602的索引3内容,自Cache2更新为(Blk11,Page3)。
参阅图6C,控制器304将数据快取空间316索引3的LBA10数据程序化至快闪存储器302时,会做几个步骤。控制器304由最新映射资讯604(Cache4)得知LBA10最新版本数据在数据快取空间316的索引4。相应之,控制器304在映射历程表602的索引4取得实体地址Cache3。根据索引对应的特性,控制器304回溯到映射历程表602的索引3取得实体地址(Blk11,Page3)。控制器304因而得知数据快取空间316索引3前一版本数据早已程序化至快闪存储器302,故确定数据快取空间316索引3的内容就是LBA10最旧的快取版本,并将之程序化至快闪存储器302的实体地址(Blk11,Page4)。控制器304将区块Blk11的有效页数减1后又增1。控制器304还将指向索引3的映射历程表602的索引4内容,自Cache3更新为(Blk11,Page4)。
参阅图6D,控制器304将数据快取空间316索引4的LBA10数据程序化至快闪存储器302时,会做几个步骤。控制器304由最新映射资讯604(Cache4)得知LBA10最新版本数据在数据快取空间316的索引4。相应之,控制器304在映射历程表602的索引4取得实体地址(Blk11,Page4)。控制器304因而得知数据快取空间316索引4前一版本数据早已程序化至快闪存储器302,故确定数据快取空间316索引4的内容就是LBA10最旧的快取版本,并将之程序化至快闪存储器302的实体地址(Blk11,Page5)。控制器304将区块Blk11的有效页数减1后又增1。控制器304将最新映射资讯604自实体地址Cache4更新为(Blk11,Page5)。
以上例子显示,无论是数据快取空间316的实体地址、或是快闪存储器302的实体地址,都可以映射数据格式210清楚载明。特别是,关于数据快取空间316的快取数据,传统技术不只需要纪录最新版本位置,还要记录最旧版本位置。本发明最新映射资讯604只需要纪录最新版本位置,再以逻辑运算即可判断出最旧版本位置。
以上存储器控制器304对快闪存储器302的操作设计也可以由其他结构实现。凡是根据前述概念维护映射资讯、使省略映射数据模式专属位元的技术,都属于本发明欲保护范围。本发明还可以前述概念实现非挥发式存储器的控制方法。
一种实施方式中,所述非挥发式存储器的控制方法,包括:将一主机308下达的写入数据快取于一暂存存储器306,再自该暂存存储器306程序化至一非挥发式存储器(302);且以一映射资讯格式210维护该主机308辨识的逻辑地址的映射资讯。该映射资讯格式210下,不高于一第一阈值0x8000而对应该非挥发式存储器(302)的组态资讯储存空间(SuperBlk0)的数值,至少局部用于指向该暂存存储器306。该映射资讯格式210下,指向该非挥发式存储器302的数值高于该第一阈值0x8000。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当以权利要求书界定为准。

Claims (15)

1.一种数据储存装置,包括:
一非挥发式存储器;以及
一控制器,控制该非挥发式存储器,
其中:
该控制器将一主机下达的写入数据快取于一暂存存储器,再自该暂存存储器程序化至该非挥发式存储器;
该控制器以一映射资讯格式维护该主机辨识的逻辑地址的映射资讯;
该映射资讯格式下,不高于一第一阈值而对应该非挥发式存储器的组态资讯储存空间的数值,至少局部用于指向该暂存存储器;且
该映射资讯格式下,指向该非挥发式存储器的数值高于该第一阈值;
该映射资讯格式不具有映射资讯模式位元;
一第二阈值低于该第一阈值,且相依于该暂存存储器提供的数据快取空间的尺寸;
该映射资讯格式下,低于该第二阈值的数值指向该暂存存储器的上述数据快取空间。
2.如权利要求1所述的数据储存装置,其特征在于:
一预设数值不高于该第一阈值,且不低于该第二阈值;且
该映射资讯格式所呈现的该预设数值,示意虚置的映射资讯。
3.如权利要求2所述的数据储存装置,其特征在于:
该映射资讯格式的一数值高于该第一阈值时,该控制器还以一数量对该数值进行除法运算以及余数运算,计算一商值以及一余数;
该非挥发式存储器划分为多个大单元,各大单元包括该数量的小单元;
该商值为大单元编号;且
该余数为小单元编号。
4.如权利要求2所述的数据储存装置,其特征在于:
该控制器在该暂存存储器上维护一映射历程表,相应上述数据快取空间的多个快取栏位,以该映射资讯格式条列各快取数据前一版本的实体地址。
5.如权利要求4所述的数据储存装置,其特征在于:
相应上述数据快取空间所快取的一逻辑地址的数据,该控制器在该暂存存储器上以该映射资讯格式维护一最新映射资讯。
6.如权利要求5所述的数据储存装置,其特征在于:
该逻辑地址在上述数据快取空间的一第一栏位以及一第二栏位都有快取数据,且该最新映射资讯指向上述数据快取空间的该第二栏位;
相应上述数据快取空间的该第一栏位,该映射历程表的一第一栏位指向该非挥发式存储器;
相应上述数据快取空间的该第二栏位,该映射历程表的一第二栏位指向上述数据快取空间的该第一栏位;
该控制器根据该最新映射资讯,查询该映射历程表的该第二栏位,据以回溯该映射历程表的该第一栏位;
基于该映射历程表的该第一栏位指向该非挥发式存储器,该控制器视上述数据快取空间的该第一栏位为该逻辑地址的最旧版本快取数据;且
该控制器将该逻辑地址的最旧版本快取数据程序化至该非挥发式存储器,并更新该映射历程表的该第二栏位指向该非挥发式存储器。
7.如权利要求6所述的数据储存装置,其特征在于:
该控制器根据该最新映射资讯,查询该映射历程表的该第二栏位,辨识出是指向该非挥发式存储器时,视上述数据快取空间的该第二栏位为该逻辑地址的最旧版本快取数据;且
确定上述数据快取空间的该第二栏位为该逻辑地址的最旧版本快取数据后,该控制器将上述数据快取空间的该第二栏位的快取数据程序化至该非挥发式存储器,并更新该最新映射资讯指向该非挥发式存储器。
8.一种非挥发式存储器控制方法,包括:
将一主机下达的写入数据快取于一暂存存储器,再自该暂存存储器程序化至一非挥发式存储器;且
以一映射资讯格式维护该主机辨识的逻辑地址的映射资讯,
其中:
该映射资讯格式下,不高于一第一阈值而对应该非挥发式存储器的组态资讯储存空间的数值,至少局部用于指向该暂存存储器;且
该映射资讯格式下,指向该非挥发式存储器的数值高于该第一阈值;
该映射资讯格式不具有映射资讯模式位元;
一第二阈值低于该第一阈值,且相依于该暂存存储器提供的数据快取空间的尺寸;且
该映射资讯格式下,低于该第二阈值的数值指向该暂存存储器的上述数据快取空间。
9.如权利要求8所述的非挥发式存储器控制方法,其特征在于:
一预设数值不高于该第一阈值,且不低于该第二阈值;且
该映射资讯格式所呈现的该预设数值,示意虚置的映射资讯。
10.如权利要求9的所述的非挥发式存储器控制方法,其特征在于,还包括:
该映射资讯格式的一数值高于该第一阈值时,以一数量对该数值进行除法运算以及余数运算,计算一商值以及一余数,
其中:
该非挥发式存储器划分为多个大单元,各大单元包括该数量的小单元;
该商值为大单元编号;且
该余数为小单元编号。
11.如权利要求9所述的非挥发式存储器控制方法,其特征在于还包括:
在该暂存存储器上维护一映射历程表,相应上述数据快取空间的多个快取栏位,以该映射资讯格式条列各快取数据前一版本的实体地址。
12.如权利要求11所述的非挥发式存储器控制方法,其特征在于还包括:
相应上述数据快取空间所快取的一逻辑地址的数据,在该暂存存储器上以该映射资讯格式维护一最新映射资讯。
13.如权利要求12所述的非挥发式存储器控制方法,其特征在于:
该逻辑地址在上述数据快取空间的一第一栏位以及一第二栏位都有快取数据,且该最新映射资讯指向上述数据快取空间的该第二栏位;
相应上述数据快取空间的该第一栏位,该映射历程表的一第一栏位指向该非挥发式存储器;且
相应上述数据快取空间的该第二栏位,该映射历程表的一第二栏位指向上述数据快取空间的该第一栏位。
14.如权利要求13所述的非挥发式存储器控制方法,其特征在于,还包括:
根据该最新映射资讯,查询该映射历程表的该第二栏位,据以回溯该映射历程表的该第一栏位;
基于该映射历程表的该第一栏位指向该非挥发式存储器,视上述数据快取空间的该第一栏位为该逻辑地址的最旧版本快取数据;且
将该逻辑地址的最旧版本快取数据程序化至该非挥发式存储器,并更新该映射历程表的该第二栏位指向该非挥发式存储器。
15.如权利要求14所述的非挥发式存储器控制方法,其特征在于还包括:
根据该最新映射资讯,查询该映射历程表的该第二栏位,辨识出是指向该非挥发式存储器时,视上述数据快取空间的该第二栏位为该逻辑地址的最旧版本快取数据;且
确定上述数据快取空间的该第二栏位为该逻辑地址的最旧版本快取数据后,将上述数据快取空间的该第二栏位的快取数据程序化至该非挥发式存储器,并更新该最新映射资讯指向该非挥发式存储器。
CN201911233647.8A 2019-06-17 2019-12-05 数据储存装置以及非挥发式存储器控制方法 Active CN112100087B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962862196P 2019-06-17 2019-06-17
US62/862,196 2019-06-17
TW108136997 2019-10-15
TW108136997A TWI766194B (zh) 2019-06-17 2019-10-15 資料儲存裝置以及非揮發式記憶體控制方法

Publications (2)

Publication Number Publication Date
CN112100087A CN112100087A (zh) 2020-12-18
CN112100087B true CN112100087B (zh) 2024-04-02

Family

ID=73746470

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911233647.8A Active CN112100087B (zh) 2019-06-17 2019-12-05 数据储存装置以及非挥发式存储器控制方法

Country Status (2)

Country Link
US (1) US11392489B2 (zh)
CN (1) CN112100087B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210106757A (ko) * 2020-02-21 2021-08-31 에스케이하이닉스 주식회사 호스트, 저장 장치 및 이들을 포함하는 컴퓨팅 시스템
KR20210120240A (ko) * 2020-03-26 2021-10-07 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102737716A (zh) * 2011-04-11 2012-10-17 群联电子股份有限公司 存储器储存装置、存储器控制器与数据写入方法
CN103678144A (zh) * 2012-09-05 2014-03-26 慧荣科技股份有限公司 数据储存装置与快闪存储器控制方法
CN104750625A (zh) * 2013-12-26 2015-07-01 慧荣科技股份有限公司 数据储存装置以及快闪存储器控制方法
CN109697017A (zh) * 2017-10-20 2019-04-30 上海宝存信息科技有限公司 数据储存装置以及非挥发式存储器操作方法

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2286267A (en) * 1994-02-03 1995-08-09 Ibm Energy-saving cache control system
US5696929A (en) * 1995-10-03 1997-12-09 Intel Corporation Flash EEPROM main memory in a computer system
US6092231A (en) 1998-06-12 2000-07-18 Qlogic Corporation Circuit and method for rapid checking of error correction codes using cyclic redundancy check
US6606682B1 (en) * 2000-04-19 2003-08-12 Western Digital Technologies, Inc. Cluster-based cache memory allocation
US7058763B2 (en) * 2001-05-04 2006-06-06 Lucent Technologies Inc. File system for caching web proxies
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
US7322002B2 (en) 2004-05-26 2008-01-22 Micron Technology, Inc. Erasure pointer error correction
US20070079103A1 (en) * 2005-10-05 2007-04-05 Yasuyuki Mimatsu Method for resource management in a logically partitioned storage system
US8006030B2 (en) 2006-03-13 2011-08-23 Panasonic Corporation Memory controller for identifying the last valid page/segment in a physical block of a flash memory
JP2009075759A (ja) * 2007-09-19 2009-04-09 Hitachi Ltd ストレージ装置及びストレージ装置におけるデータの管理方法
US8775717B2 (en) 2007-12-27 2014-07-08 Sandisk Enterprise Ip Llc Storage controller for flash memory including a crossbar switch connecting a plurality of processors with a plurality of internal memories
US8245105B2 (en) 2008-07-01 2012-08-14 International Business Machines Corporation Cascade interconnect memory system with enhanced reliability
JP5347657B2 (ja) * 2009-03-31 2013-11-20 富士通株式会社 データ記憶プログラム、方法、及び情報処理装置
US8219776B2 (en) * 2009-09-23 2012-07-10 Lsi Corporation Logical-to-physical address translation for solid state disks
US8078798B2 (en) * 2009-05-13 2011-12-13 International Business Machines Corporation Managing first level storage in a multi-host environment
US8443263B2 (en) 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
US8478796B2 (en) 2010-03-23 2013-07-02 Apple Inc. Uncorrectable error handling schemes for non-volatile memories
US8484529B2 (en) 2010-06-24 2013-07-09 International Business Machines Corporation Error correction and detection in a redundant memory system
US8631271B2 (en) 2010-06-24 2014-01-14 International Business Machines Corporation Heterogeneous recovery in a redundant memory system
US8572325B2 (en) * 2010-12-07 2013-10-29 International Business Machines Corporation Dynamic adjustment of read/write ratio of a disk cache
CN102203740B (zh) 2011-05-27 2013-06-05 华为技术有限公司 数据处理方法、装置及系统
US8843806B2 (en) 2012-01-19 2014-09-23 International Business Machines Corporation Dynamic graduated memory device protection in redundant array of independent memory (RAIM) systems
US20140025921A1 (en) * 2012-07-19 2014-01-23 Jmicron Technology Corp. Memory control method utilizing main memory for address mapping and related memory control circuit
US9329948B2 (en) 2012-09-15 2016-05-03 Seagate Technology Llc Measuring cell damage for wear leveling in a non-volatile memory
US8904244B2 (en) 2012-10-17 2014-12-02 Lsi Corporation Heuristic approach for faster consistency check in a redundant storage system
US9325736B2 (en) * 2013-01-10 2016-04-26 Tencent Technology (Shenzhen) Company Limited Method and device for anti-virus scanning
US9715519B2 (en) * 2013-03-15 2017-07-25 Sandisk Technologies Llc Managing updates to multiple sets of metadata pertaining to a memory
US9229876B2 (en) * 2013-12-17 2016-01-05 Sandisk Technologies Inc. Method and system for dynamic compression of address tables in a memory
US9239679B2 (en) * 2013-12-19 2016-01-19 Avago Technologies General Ip (Singapore) Pte. Ltd. System for efficient caching of swap I/O and/or similar I/O pattern(s)
US9436615B2 (en) * 2014-10-03 2016-09-06 Sandisk Technologies Llc Optimistic data read
US9626286B2 (en) * 2014-10-03 2017-04-18 Sandisk Technologies Llc Hardware and firmware paths for performing memory read processes
US9558125B2 (en) * 2014-10-27 2017-01-31 Sandisk Technologies Llc Processing of un-map commands to enhance performance and endurance of a storage device
US9870836B2 (en) 2015-03-10 2018-01-16 Toshiba Memory Corporation Memory system and method of controlling nonvolatile memory
JP6414852B2 (ja) 2015-12-14 2018-10-31 東芝メモリ株式会社 メモリシステムおよび制御方法
US9886388B2 (en) * 2016-04-22 2018-02-06 Citrix Systems, Inc. Dynamic block-level indexing for cache with overflow
US9934151B2 (en) 2016-06-28 2018-04-03 Dell Products, Lp System and method for dynamic optimization for burst and sustained performance in solid state drives
US10558519B2 (en) 2017-01-17 2020-02-11 International Business Machines Corporation Power-reduced redundant array of independent memory (RAIM) system
TWI613652B (zh) 2017-03-27 2018-02-01 慧榮科技股份有限公司 資料儲存裝置以及其操作方法
US10380018B2 (en) 2017-04-04 2019-08-13 Micron Technology, Inc. Garbage collection
US10642743B2 (en) 2017-06-28 2020-05-05 Arm Limited Apparatus and method of handling caching of persistent data
KR102430791B1 (ko) 2017-07-19 2022-08-10 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
KR102378384B1 (ko) 2017-09-11 2022-03-24 삼성전자주식회사 불휘발성 메모리 장치의 동작 방법 및 메모리 컨트롤러의 동작 방법
US11442813B2 (en) 2017-10-11 2022-09-13 Hewlett-Packard Development Company, L.P. Memory devices including execution trace buffers
TWI646543B (zh) 2017-11-03 2019-01-01 大陸商深圳大心電子科技有限公司 資料編碼方法、資料解碼方法以及儲存控制器
KR102410021B1 (ko) 2017-11-20 2022-06-21 에스케이하이닉스 주식회사 메모리 컨트롤러 및 메모리 모듈을 갖는 메모리 시스템 및 그 메모리 시스템에서의 데이터 처리 방법
US10789130B1 (en) 2018-03-09 2020-09-29 Toshiba Memory Corporation Capacitor energy management for unexpected power loss in datacenter SSD devices
CN110489052B (zh) 2018-05-14 2022-11-25 慧荣科技股份有限公司 数据储存装置
CN112099985B (zh) 2019-06-17 2023-09-12 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
US10922235B2 (en) * 2019-06-26 2021-02-16 Western Digital Technologies, Inc. Method and system for address table eviction management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102737716A (zh) * 2011-04-11 2012-10-17 群联电子股份有限公司 存储器储存装置、存储器控制器与数据写入方法
CN103678144A (zh) * 2012-09-05 2014-03-26 慧荣科技股份有限公司 数据储存装置与快闪存储器控制方法
CN104750625A (zh) * 2013-12-26 2015-07-01 慧荣科技股份有限公司 数据储存装置以及快闪存储器控制方法
CN109697017A (zh) * 2017-10-20 2019-04-30 上海宝存信息科技有限公司 数据储存装置以及非挥发式存储器操作方法

Also Published As

Publication number Publication date
CN112100087A (zh) 2020-12-18
US11392489B2 (en) 2022-07-19
US20200394131A1 (en) 2020-12-17

Similar Documents

Publication Publication Date Title
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
US10496334B2 (en) Solid state drive using two-level indirection architecture
US9652386B2 (en) Management of memory array with magnetic random access memory (MRAM)
US8321652B2 (en) Process and method for logical-to-physical address mapping using a volatile memory device in solid state disks
US20190220396A1 (en) Data Storage Device
CN110955384B (zh) 数据储存装置以及非挥发式存储器控制方法
WO2012012505A1 (en) Multi-tier address mapping in flash memory
CN112099985B (zh) 数据储存装置以及非挥发式存储器控制方法
US20100318726A1 (en) Memory system and memory system managing method
US11307979B2 (en) Data storage device and non-volatile memory control method
US11334480B2 (en) Data storage device and non-volatile memory control method
CN112100087B (zh) 数据储存装置以及非挥发式存储器控制方法
TW202101222A (zh) 資料儲存裝置以及非揮發式記憶體控制方法
CN112130750B (zh) 数据储存装置以及非挥发式存储器控制方法
TWI766194B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
US11416151B2 (en) Data storage device with hierarchical mapping information management, and non-volatile memory control method
TWI724483B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
CN111610929B (zh) 数据储存装置以及非挥发式存储器控制方法
CN111611178B (zh) 数据储存装置以及非挥发式存储器控制方法
TW202121425A (zh) 資料儲存裝置以及非揮發式記憶體控制方法
US11269534B2 (en) Data storage device and non-volatile memory control method
CN112882650B (zh) 数据储存装置以及非挥发式存储器控制方法

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