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

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

Info

Publication number
CN110764691A
CN110764691A CN201811128457.5A CN201811128457A CN110764691A CN 110764691 A CN110764691 A CN 110764691A CN 201811128457 A CN201811128457 A CN 201811128457A CN 110764691 A CN110764691 A CN 110764691A
Authority
CN
China
Prior art keywords
volatile memory
space
block
cross
channel access
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.)
Granted
Application number
CN201811128457.5A
Other languages
English (en)
Other versions
CN110764691B (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
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN110764691A publication Critical patent/CN110764691A/zh
Application granted granted Critical
Publication of CN110764691B publication Critical patent/CN110764691B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0658Controller construction 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • 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/061Improving I/O performance
    • 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/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明涉及数据存储装置以及非挥发式存储器控制方法,尤其涉及非挥发式存储器的多通道存取。一控制器是以三种表格管理跨通道存取空间于该非挥发式存储器的配置,据以实施该非挥发式存储器的多通道存取。上述跨通道存取空间各自包括M个单位空间,M为2个或2个以上。第一表格条列上述跨通道存取空间各自是否有单位空间顶替需求,并指向顶替资讯。上述顶替资讯是以第二表格以及第三表格储存。关于有单位空间顶替需求的各跨通道存取空间,上述第二表格以M个位元标示顶替需求所在,且顶替用的单位空间载于上述第三表格。

Description

数据储存装置以及非挥发式存储器控制方法
技术领域
本发明有关于数据储存装置以及其中非挥发式存储器的控制方法。
背景技术
非挥发式存储器有多种形式─例如,快闪存储器(flash memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式随机存取存储器(Resistive RAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,用于长时间数据保存。
非挥发式存储器可采多通道存取(multi-channel accessing),并行存取数据以提升操作效率。然而,为了避开各通道损毁空间之使用,各通道乃不规则提供空间组成跨通道存取空间,映射表管理需求相应而生。随着非挥发式存储器尺寸越来越大,此映射表尺寸可能变成一种负担。
发明内容
本发明提出非挥发式存储器的跨通道存取空间的管理技术,以期精简之。
根据本发明一种实施方式实现的一数据储存装置包括一非挥发式存储器以及一控制器。该控制器以多通道方式存取该非挥发式存储器。该控制器以一第一表格、一第二表格以及一第三表格管理各跨通道存取空间于该非挥发式存储器之配置,据以实施该非挥发式存储器的多通道存取。上述跨通道存取空间各自包括M个单位空间,M为2个或2个以上。上述第一表格条列上述跨通道存取空间各自是否有单位空间顶替需求,并指向顶替资讯。上述顶替资讯是以上述第二表格以及第三表格储存。关于有单位空间顶替需求的各跨通道存取空间,上述第二表格以M个位元标示顶替需求所在,且顶替用的单位空间载于上述第三表格。
一种实施方式中,上述第三表格略去为无顶替需求的单位空间记录资讯。
一种实施方式中,上述第三表格各栏位占据一预设空间量。关于有单位空间顶替需求的各跨通道存取空间,上述第二表格的上述M个位元也是规画该预设空间量记载,且顶替用的单位空间是接续记载。基于以上架构,上述第一表格是以该预设空间量为单位的计数,指向上述第二表格中对应内容。
一种实施方式是在开卡时,令该控制器根据该非挥发式存储器上的一损毁空间记录建立上述第一表格、第二表格以及第三表格,以避免配置该非挥发式存储器的损毁空间做上述跨通道存取空间。该损毁空间记录可以是在该非挥发式存储器量产时,由工厂机台扫描该非挥发式存储器而建立。
本发明还揭示了非挥发式存储器控制方法。
一种实施方式中,非挥发式存储器控制方法包括:建立一第一表格、一第二表格以及一第三表格管理各跨通道存取空间于一非挥发式存储器的配置;以及根据上述第一表格、第二表格以及第三表格以多通道方式存取该非挥发式存储器。上述跨通道存取空间各自包括M个单位空间,M为2个或2个以上。上述第一表格条列上述跨通道存取空间各自是否有单位空间顶替需求,并指向顶替资讯。上述顶替资讯是以上述第二表格以及第三表格储存。关于有单位空间顶替需求的各跨通道存取空间,上述第二表格以M个位元标示顶替需求所在,且顶替用的单位空间载于上述第三表格。
下文特举实施例,并配合附图,详细说明本发明内容。
附图简单说明
图1举例示意快闪存储器储存空间;
图2图解重新对应表200,显示超级区块FBlock#1的实际配置;
图3为流程图,说明本发明建立超级区块FBlock的方法实施例;
图4A、4B、4C图解本发明差异补偿表DiffOffset、区块位元表DiffBlkBitMap以及区块地址表BlkAddr,更图解包括区块位元表DiffBlkBitMap与区块地址表BlkAddr的差异地址表DiffAddr;
图5为流程图,图解快闪存储器控制器使用本发明超级区块FBlock数据编程的方法;且
图6为方块图,图解根据本发明一种实施方式所实现的一数据储存装置600。
符号说明
200~重新对应表;
600~数据储存装置;
602~快闪存储器;
604~控制器;
606~主机;
608~微处理器;
610~静态随机存取存储器;
612~表格,包括DiffOffset与DiffAddr;
BadBlks~损毁区块纪录;
Blk#0、Blk#1、Blk#2…Blk#(N-2)、Blk#(N-1)~区块;
BlkAddr~区块地址表;
C0W0P0…C1W1P1~通道、路径以及平面编号;
Ch#0…Ch#3~通道;
DiffAddr~差异地址表;
DiffBlkBitMap~区块位元表;
DiffOffset~差异补偿表;
InfoBlk~系统资讯区块;
Page~页面;
Plane#0、Plane#1~平面;
S302…S314、S502…S512~步骤;
Way#0、Way#1~路径。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照权利要求书来界定。
非挥发式存储器可以是快闪存储器(Flash Memory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式存储器(Resistive RAM,RRAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,提供长时间数据保存的储存媒体,可用于实现数据储存装置、或应用于数据中心。以下特别以快闪存储器为例进行讨论。
现今数据储存装置常以快闪存储器为储存媒体,用来实现记忆卡(Memory Card)、通用串行总线存装置(USB Flash Device)、固态硬碟(SSD)…等产品。有一种应用是采多芯片封装(Multi-Chip Packaging)、将快闪存储器与其控制器包装在一起─称为嵌入式快闪存储器模组(如eMMC)。
以快闪存储器为储存媒体的数据储存装置可应用于多种电子装置上。所述电子装置包括智慧型手机、穿戴装置、平板电脑、虚拟实境设备、行车电脑…等。电子装置的运算模块可视为一主机(Host),操作电子装置所使用的数据储存装置,透过数据储存装置中的控制器存取数据储存装置中的快闪存储器。
快闪存储器实现的数据储存装置也可用于建构数据中心(Data Center)。例如,伺服器可操作固态硬碟(SSD)阵列形成数据中心。伺服器即可视为一主机(Host),操作所连结的固态硬碟,以存取其中快闪存储器。
快闪存储器的储存空间可采以下结构。快闪存储器包括多个平面(Planes),例如:2个平面。每一平面包括多个区块(Blocks),例如:2048个区块。各区块包括多个页面(Pages),例如:1024个页面。考量操作效率,快闪存储器控制器可以采用多通道方式存取(Multi-Channel Accessing)快闪存储器。另外,各通道可提供多路径(Ways),各路径可涉及单一或多个平面的之存取,快闪存储器控制器较佳采用交错式(Interleaving)存取方式来存取多个平面。各个平面可以区块为单位提供空间,组成跨通道存取空间,以发挥多通道效应,达到数据并行存取。
图1举例示意快闪存储器储存空间,其中采用四通道Ch#0…Ch#3。各通道提供两条路径Way#0以及Way#1。各路径涉及两个平面Plane#0以及Plane#1的存取。一平面布有N(如,N=1024)个区块Blk#0、Blk#1、Blk#2…以及Blk#(N-1)。如图中标号Blk#0区块所示,页面Page为数据编程的最小单位。图示实施方式的16个平面(通道数4、各通道路径数2、以及各路径平面数2的乘积)中的区块(Block)可以组成一个超级区块FBlock,并以超级区块FBlock作为跨通道存取空间。
超级区块FBlock包含不同平面提供的16个区块,此16个区块为超级区块FBlock的成员区块,其中,成员区块较佳具有相同区块编号。为了依序编程超级区块FBlock的页面,因此,超级区块FBlock中每一成员区块的一个页面可组成超级页面(Super Page)即超级页面可由16个成员页面(参考图中斜线标示)所组成,其中,成员页面较佳具有相同页面编号。快闪存储器控制器较佳是依序(依页面编号)对超级页面进行编程。
特别注意是,由于快闪存储器有可能存在损毁区块(Bad Block),因此,在组成超级区块FBlock时会避开使用损毁区块。例如,倘若通道Ch#0路径Way#0平面Plane#0的区块Blk#1损毁,一种实施方式是将同平面提供的其他区块─如,区块Blk#191─拿来顶替之,与其他15个平面的区块Blk#1组成一超级区块FBlock#1,如此一来,快闪存储器控制器即可正常地操作超级区块FBlock#1。
图2图解重新对应(Re-mapping)表200的部份内容,显示超级区块FBlock#1的实际配置,也显示超级区块FBlock#1中成员区块的替代关系。如图所示,超级区块FBlock#1由16个位于不同平面的区块所组成,并由位于通道Ch#0、路径Way#0、平面Plane#0的区块Blk#191顶替同平面上的损毁区块Blk#1(也可由其他平面的区块替代),与其余15个位于不同平面的区块Blk#1组成超级区块FBlock#1。以如此四通道x双路径x双平面架构为例,重新对应表200记录一个超级区块FBlock的实际配置需要32位元组数据储存空间。甚至,四通道x八路径x四平面的快闪存储器架构一重新对应表200记录一个超级区块FBlock的实际配置则需要高达256位元组的数据储存空间。当需记录多个超级区块FBlock的实际配置时,重新对应表200需要的数据储存空间将倍增至多倍,不只占用过多的数据储存空间,当快闪存储器控制器上传重新对应表200至随机存储器空间(如DRAM或SRAM)时,重新对应表200也占用过多的随机存储器空间,这问题在仅配置少量随机存储器空间的数据储存装置中更显严重,因此,重新对应表200存在改善的空间。
图3为流程图,说明本发明建立超级区块FBlock的方法实施例。经过系统初始化之后,在步骤S302,快闪存储器控制器取得一系统架构参数,其中,系统架构参数包括用以建立超级区块FBlock的通道数量、路径数量以及平面数量,例如:通道数量为2,路径数量为2,平面数量为2。
在步骤S304,快闪存储器控制器依据系统架构参数建立一超级区块FBlock。快闪存储器控制器将位于不同通道、路径以及平面的区块,例如:总共8个区块,作为成员区块以组成超级区块FBlock#1,成员区块较佳具有相同区块编号,例如:区块Blk#1,参考图2。
在步骤S306,快闪存储器控制器判断超级区块FBlock的多个成员区块中是否有一损毁区块。在执行本发明建立超级区块FBlock的方法之前,快闪存储器控制器较佳对快闪存储器进行损毁区块的扫描,并将损毁区块的区块编号记录至损毁区块表(后面讨论以BadBlks标号)中。此时,快闪存储器控制器仅需读取损毁区块表BadBlks的内容即可判断超级区块FBlock#1的多成员区块中是否有损毁区块,即判断成员区块的通道编号、路径编号、平面编号以及区块编号是否记录于损毁区块表BadBlks中,如果是则执行步骤S308。
在步骤S308,快闪存储器控制器以一正常区块替代损毁区块。正常区块与损毁区块较佳置于相同的通道编号、路径编号以及平面编号,但是不同的区块编号。如图2所示,快闪存储器控制器选取置于通道编号为0、路径编号为0以及平面编号为0的区块Blk#191替代同样置于通道编号为0、路径编号为0以及平面编号为0的区块Blk#1(损毁区块),如此一来,快闪存储器控制器以最佳化的方式对超级区块FBlock#1进行存取。当然地,快闪存储器控制器亦可选取置于通道编号为0、路径编号为0以及平面编号为1的区块Blk#191替代置于通道编号为0、路径编号为0以及平面编号为0的区块Blk#1(损毁区块),然而,当正常区块与损毁区块并非置于相同的通道编号、路径编号以及平面编号,导致快闪存储器控制器无法同时或平行的存取区块Blk#191与通道编号为0、路径编号为0以及平面编号为1的区块Blk#1,只能依序存取,例如:先存取区块Blk#1,再存取区块Blk#191;或者,先存取区块Blk#191,再存取区块Blk#1。依序存取将降低快闪存储器控制器对超级区块FBlock#1的存取效能。
在步骤S310,快闪存储器控制器将超级区块记录至差异补偿表。本发明使用了三种表格,包括:DiffOffset(差异补偿表)、DiffBlkBitMap(区块位元表)以及BlkAddr(区块地址表)替代重新对应表200,其中,区块位元表DiffBlkBitMap与区块地址表BlkAddr可合并成为DiffAddr(差异地址表),以简化表格的管理。
差异补偿表DiffOffset的大小较佳与超级区块FBlock的总数成正比,例如:差异补偿表DiffOffset的大小为128位元,每个位元的值皆对应至一个超级区块FBlock,值为"1"表示超级区块FBlock有损毁区块,值为"0"表示超级区块FBlock没有损毁区块。
或者,差异补偿表DiffOffset的大小亦可为128位元组,每个位元组的值皆对应至一个超级区块FBlock的损毁区块的资讯。如图4A所示,超级区块FBlock#0、#2~#127没有损毁区块,因此,快闪存储器控制器将超级区块FBlock#0、#2~#127在差异补偿表DiffOffset中所对应的值设为0xFFFF。超级区块FBlock#1含有损毁区块,因此,快闪存储器控制器将超级区块FBlock#1在差异补偿表DiffOffset中所对应的值设为非0xFFFF,例如,为0x0000,此值表示损毁区块的资讯乃记录在差异地址表DiffAddr的第0x0000个预设长度的地址,其中,预设长度较佳为字组(Word)。
在步骤S312,快闪存储器控制器将损毁区块记录至区块位元表DiffBlkBitMap。通道编号为0、路径编号为0以及平面编号为0的区块Blk#1为损毁区块,因此,快闪存储器控制器将区块位元表DiffBlkBitMap中对应至通道编号为0、路径编号为0以及平面编号为0的位元设定为1,其他元位设定为0,因此,区块位元表DiffBlkBitMap的值为"10000000",如图4A所示。
在步骤S314,快闪存储器控制器将正常区块记录至区块地址表BlkAddr。快闪存储器控制器选取任何一个区块,例如区块Blk#191,由于区块Blk#191并未记录于损毁区块表BadBlks中,因此,快闪存储器控制器以区块Blk#191替代区块Blk#1,并将区块Blk#191记录至区块地址表BlkAddr中,如图4A所示,此时,差异地址表DiffAddr具有2个预设长度的大小。
假如,超级区块FBlock#1中,不只通道编号为0、路径编号为0以及平面编号为0的区块Blk#1为损毁区块,通道编号为1、路径编号为1以及平面编号为1的区块Blk#1也是损毁区块。则在步骤S312时,快闪存储器控制器将此两个损毁区块皆记录至区块位元表DiffBlkBitMap,此时,区块位元表DiffBlkBitMap的值将由"10000000"变更为"10000001"。在步骤S314时,快闪存储器控制器分别选取区块Blk#191以及区块Blk#234以替代两个损毁区块,并将区块Blk#191以及区块Blk#234记录至区块地址表BlkAddr,如图4B所示,此时,差异地址表DiffAddr具有3个预设长度的大小。
当本发明建立超级区块FBlock的方法再度执行时,除了超级区块FBlock#1,快闪存储器控制器于步骤S306判断超级区块FBlock#2中通道编号为0、路径编号为1以及平面编号为1的区块Blk#2为损毁区块。于步骤S308,快闪存储器控制器选取区块Blk#128替代损毁区块,并于步骤S310,快闪存储器控制器将超级区块FBlock#2在差异补偿表DiffOffset中所对应的值设为0x03,此值表示损毁区块的资讯乃记录在差异地址表DiffAddr的第4个预设长度的地址。则在步骤S312时,快闪存储器控制器将损毁区块皆记录至超级区块FBlock#2的区块位元表DiffBlkBitMap,此时,区块位元表DiffBlkBitMap的值设定为"00010000"。在步骤S314时,快闪存储器控制器将区块Blk#128记录至区块地址表BlkAddr,如第4C图所示。
藉由重复执行本发明建立超级区块FBlock的方法后,所有超级区块FBlock,例如:超级区块FBlock#0~#127,已完成建立,且差异补偿表DiffOffset、区块位元表DiffBlkBitMap以及区块地址表BlkAddr(或DiffBlkBitMap以及BlkAddr统整的差异地址表DiffAddr)亦完成建立。之后,快闪存储器控制器使用本发明超级区块FBlock数据编程的方法,如第5图所示,依据外部指令(如,写入指令)或内部程序(例如:垃圾回收程序或耗损平均程序),将使用者数据编程至超级区块FBlock中。
在步骤S502,快闪存储器控制器选取一超级区块,例如,超级区块FBlock#0已完成使用者数据的编程,此时,快闪存储器控制器选取超级区块FBlock#1以进行使用者数据的编程。
在步骤S504,快闪存储器控制器依一预设政策取得超级区块的多成员区块。快闪存储器控制器选取所有位于不同通道、路径以及平面而具有相同区块编号的区块,例如:区块Blk#1,作为超级区块FBlock#1的成员区块。
在步骤S506,快闪存储器控制器判断此超级区块是否记录于差异补偿表DiffOffset。快闪存储器控制器依读取差异补偿表DiffOffset,由于超级区块FBlock#1在步骤S310时已记录于差异补偿表DiffOffset,因此,判断的结果为正,故执行步骤S508。
在步骤S508,快闪存储器控制器依据差异补偿表DiffOffset、区块位元表DiffBlkBitMap以及区块地址表BlkAddr取得一正常区块。快闪存储器控制器依据差异补偿表DiffOffset的值为0x00,因此,读取差异地址表DiffAddr中的地址0x00以取得区块位元表DiffBlkBitMap。由区块位元表DiffBlkBitMap的值("10000000")得知超级区块FBlock#1有一个损毁区块,因此,从区块地址表BlkAddr中读取一笔数据,数据为区块Blk#191,如图4A所示。
在步骤S510,快闪存储器控制器以正常区块替代超级区块中损毁的成员区块。快闪存储器控制器在同平面中以区块Blk#191替换损毁区块Blk#1。完成替代之后,除了该平面提供区块Blk#191,超级区块FBlock#1的其他平面提供的成员区块皆是区块Blk#1。
在步骤S512,快闪存储器控制器将使用者数据编程至超级区块。由于损毁区块已被正常区块所替代,快闪存储器控制器可以将使用者数据编程至超级区块FBlock#1。快闪存储器控制器可重新执行本发明超级区块FBlock数据编程的方法,将后续的使用者数据编程至后续的超级区块中。
另一种状况下,在步骤S508中,快闪存储器控制器可由区块位元表DiffBlkBitMap的值("10000001")得知超级区块FBlock#1有二个损毁区块,因此,从区块地址表BlkAddr中读取二笔数据,第一笔数据为区块Blk#191,第一笔数据为区块Blk#234,如图4B所示。
在原本通道数量为2,路径数量为2,平面数量为2的架构下,仅有一个损毁区块时,以重新对应表200记录一个超级区块FBlock需要16位元组数据储存空间。相反地,使用差异补偿表DiffOffset、区块位元表DiffBlkBitMap以及区块地址表BlkAddr记录一个超级区块FBlock仅需要4位元组数据储存空间。当有二个损毁区块时,使用差异补偿表DiffOffset、区块位元表DiffBlkBitMap以及区块地址表BlkAddr记录一个超级区块FBlock也仅需要6位元组数据储存空间,远小于重新对应表200所需的16位元组数据储存空间,因此,本发明建立超级区块FBlock的方法以及本发明超级区块FBlock数据编程的方法具有显着的进步性。
图6为方块图,图解根据本发明一种实施方式所实现的一数据储存装置600,其中包括一快闪存储器602以及一控制器604。一主机606透过该控制器604操作该快闪存储器602。控制器604可包括一微处理器608以及一静态随机存取存储器610。快闪存储器602上则规划有一系统资讯区块InfoBlk,其中载有一损毁区块表BadBlks以及本发明表格(包括DiffOffset与DiffAddr,标号612)。损毁区块表BadBlks可以是快闪存储器602量产时,由工厂机台执行工具建立。管理跨通道存取空间用的表格612(包括DiffOffset与DiffAddr)可以是开卡时由微处理器608基于损毁区块表BadBlks而建立。开卡后,控制器604得以根据主机606要求操作快闪存储器602(操作模式)。随着数据储存装置600上电,微处理器608会将表格612包含的表格DiffOffset与DiffAddr自快闪存储器602的系统资讯区块InfoBlk载出至静态随机存取存储器610,据以得知各个跨通道存取空间的配置,实现快闪存储器之多通道存取。本发明成功以精简的表格架构管理跨通道存取空间,实施快闪存储器602的多通道存取。如图所示,数据储存装置600受益于表格612的精简,无设置动态随机存取存储器(DRAM)的需求,成本极低。
举凡采用本发明所提出的表格612管理非挥发式存储器的跨通道空间者,即有可能涉及本发明所欲保护的范围。基于以上技术内容,本发明更涉及非挥发式存储器操作方法,包括建立表格612以及表格612的应用。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围应以权利要求书界定为准。

Claims (20)

1.一种数据储存装置,包括:
一非挥发式存储器;以及
一控制器,以多通道方式存取该非挥发式存储器,
其中:
该控制器以一第一表格、一第二表格以及一第三表格管理各跨通道存取空间于该非挥发式存储器的配置,据以实施该非挥发式存储器的多通道存取;
上述跨通道存取空间各自包括M个单位空间,M为2个或2个以上;
上述第一表格条列上述跨通道存取空间各自是否有单位空间顶替需求,并指向顶替资讯;
上述顶替资讯是以上述第二表格以及第三表格储存;且
关于有单位空间顶替需求的各跨通道存取空间,上述第二表格以M个位元标示顶替需求所在,且顶替用的单位空间载于上述第三表格。
2.如权利要求1所述的数据储存装置,其特征在于:
上述第三表格略去为无顶替需求的单位空间记录资讯。
3.如权利要求1所述的数据储存装置,其特征在于:
上述第三表格各栏位占据一预设空间量;
关于有单位空间顶替需求的各跨通道存取空间,上述第二表格的上述M个位元也是规画该预设空间量记载,且顶替用的单位空间接续记载;且
上述第一表格是以该预设空间量为单位的计数指向上述第二表格中对应内容。
4.如权利要求1所述的数据储存装置,其特征在于:
开卡时,该控制器根据该非挥发式存储器上的一损毁空间记录建立上述第一表格、第二表格以及第三表格,以避免配置该非挥发式存储器的损毁空间做上述跨通道存取空间。
5.如权利要求4所述的数据储存装置,其特征在于:
该损毁空间记录是在该非挥发式存储器量产时,由工厂机台扫描该非挥发式存储器而建立。
6.如权利要求1所述的数据储存装置,其特征在于,还包括一挥发式存储器,其中:
该控制器是将非挥发式储存于该非挥发式存储器的上述第一表格、第二表格以及第三表格载至该挥发式存储器,据以实施该非挥发式存储器的多通道存取。
7.如权利要求1所述的数据储存装置,其特征在于:
该非挥发式存储器为快闪存储器,具有多个区块,各区块包括多个页面,上述区块即用作上述单位空间;且
M个上述区块组成一超级区块,用作上述跨通道存取空间。
8.如权利要求7所述的数据储存装置,其特征在于:
该控制器逐超级页面将数据写入上述超级区块;且
一个超级页面包括一个超级区块之M个区块所各自提供的一页面。
9.如权利要求7所述的数据储存装置,其特征在于:
组成一超级区块的M个区块分属M个平面;且
该快闪存储器是以上述M个平面提供上述区块。
10.如权利要求9所述的数据储存装置,其特征在于:
M为通道数、各通道路径数、以及各路径平面数的乘积。
11.一种非挥发式存储器控制方法,包括:
建立一第一表格、一第二表格以及一第三表格管理各跨通道存取空间于一非挥发式存储器的配置;以及
根据上述第一表格、第二表格以及第三表格以多通道方式存取该非挥发式存储器,
其中:
上述跨通道存取空间各自包括M个单位空间,M为2个或2个以上;
上述第一表格条列上述跨通道存取空间各自是否有单位空间顶替需求,并指向顶替资讯;
上述顶替资讯是以上述第二表格以及第三表格储存;且
关于有单位空间顶替需求的各跨通道存取空间,上述第二表格以M个位元标示顶替需求所在,且顶替用的单位空间载于上述第三表格。
12.如权利要求11所述的非挥发式存储器控制方法,其特征在于:
上述第三表格略去为无顶替需求的单位空间记录资讯。
13.如权利要求11所述的非挥发式存储器控制方法,其特征在于:
上述第三表格各栏位占据一预设空间量;
关于有单位空间顶替需求的各跨通道存取空间,上述第二表格的上述M个位元也是规画该预设空间量记载,且顶替用的单位空间接续记载;且
上述第一表格是以该预设空间量为单位的计数指向上述第二表格中对应内容。
14.如权利要求11所述的之非挥发式存储器控制方法,其特征在于,还包括:
根据该非挥发式存储器上的一损毁空间记录,于开卡时建立上述第一表格、第二表格以及第三表格,以避免配置该非挥发式存储器的损毁空间做上述跨通道存取空间。
15.如权利要求14所述的非挥发式存储器控制方法,其特征在于:
该损毁空间记录是在该非挥发式存储器量产时,由工厂机台扫描该非挥发式存储器而建立。
16.如权利要求11所述的非挥发式存储器控制方法,其特征在于,还包括:
提供一挥发式存储器;且
将非挥发式储存于该非挥发式存储器的上述第一表格、第二表格以及第三表格载至该挥发式存储器,据以实施该非挥发式存储器的多通道存取。
17.如权利要求11所述的非挥发式存储器控制方法,其特征在于:
该非挥发式存储器为快闪存储器,具有多个区块,各区块包括多个页面,上述区块即用作上述单位空间;且
M个上述区块组成一超级区块,用作上述跨通道存取空间。
18.如权利要求17所述的非挥发式存储器控制方法,其特征在于,还包括:
逐超级页面将数据写入上述超级区块,
其中,一个超级页面包括一个超级区块的M个区块所各自提供的一页面。
19.如权利要求17的所述的非挥发式存储器控制方法,其特征在于:
组成一超级区块的M个区块分属M个平面;且
该快闪存储器是以上述M个平面提供上述区块。
20.如权利要求19所述的非挥发式存储器控制方法,其特征在于:
M为通道数、各通道路径数、以及各路径平面数的乘积。
CN201811128457.5A 2018-07-26 2018-09-27 数据储存装置以及非挥发式存储器控制方法 Active CN110764691B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW107125923 2018-07-26
TW107125923A TWI668575B (zh) 2018-07-26 2018-07-26 資料儲存裝置以及非揮發式記憶體控制方法

Publications (2)

Publication Number Publication Date
CN110764691A true CN110764691A (zh) 2020-02-07
CN110764691B CN110764691B (zh) 2023-03-03

Family

ID=68316194

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811128457.5A Active CN110764691B (zh) 2018-07-26 2018-09-27 数据储存装置以及非挥发式存储器控制方法

Country Status (3)

Country Link
US (1) US10719272B2 (zh)
CN (1) CN110764691B (zh)
TW (1) TWI668575B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11561870B2 (en) * 2020-03-30 2023-01-24 Kioxia Corporation SSD with compressed superblock mapping table
CN112527201B (zh) * 2020-12-11 2022-08-09 成都佰维存储科技有限公司 Ssd坏块替换方法、装置、可读存储介质及电子设备
TWI753761B (zh) * 2021-01-27 2022-01-21 慧榮科技股份有限公司 記憶體裝置啟動資訊還原方法及其系統
CN113220508B (zh) * 2021-05-08 2022-09-23 联芸科技(杭州)股份有限公司 存储器块的管理方法、存储器的写操作方法以及存储器
US11733892B2 (en) * 2021-06-29 2023-08-22 Micron Technology, Inc. Partial superblock memory management
JP2023037883A (ja) * 2021-09-06 2023-03-16 キオクシア株式会社 情報処理装置
TWI831704B (zh) * 2023-06-12 2024-02-01 慧榮科技股份有限公司 藉助於動態區塊配置來進行記憶體裝置的儲存空間管理之方法、記憶體控制器、記憶體裝置以及電子裝置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070156587A1 (en) * 2000-01-06 2007-07-05 Super Talent Electronics Inc. Content Protection Using Encryption Key Embedded with Content File
US20070288683A1 (en) * 2006-06-07 2007-12-13 Microsoft Corporation Hybrid memory device with single interface
CN102779096A (zh) * 2012-07-11 2012-11-14 山东华芯半导体有限公司 一种基于页块面三维的闪存地址映射方法
CN104809075A (zh) * 2015-04-20 2015-07-29 电子科技大学 一种存取实时并行处理的固态记录装置及方法
US20150286528A1 (en) * 2014-04-04 2015-10-08 Lsi Corporation Error correction code (ecc) selection in nand flash controllers with multiple error correction codes
CN105630705A (zh) * 2015-06-10 2016-06-01 上海磁宇信息科技有限公司 数据存储装置及使用块替换表的读写方法
TW201719673A (zh) * 2015-11-27 2017-06-01 群聯電子股份有限公司 資料程式化方法與記憶體儲存裝置
CN108121672A (zh) * 2017-08-08 2018-06-05 鸿秦(北京)科技有限公司 一种基于NandFlash存储器多通道的存储阵列控制方法与装置
CN108121669A (zh) * 2016-11-29 2018-06-05 爱思开海力士有限公司 存储器系统及其操作方法
CN108121503A (zh) * 2017-08-08 2018-06-05 鸿秦(北京)科技有限公司 一种NandFlash地址映射及块管理算法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008042605A1 (en) * 2006-09-29 2008-04-10 Sandisk Corporation Reverse reading in non-volatile memory with compensation for coupling
US7965554B2 (en) 2008-07-02 2011-06-21 Sandisk Corporation Selective erase operation for non-volatile storage
US9081677B2 (en) * 2011-02-22 2015-07-14 Mitsubishi Electric Corporation Method and device for estimating input bit error ratio
EP2713616A1 (en) * 2012-09-27 2014-04-02 British Telecommunications public limited company Perceptually driven error correction for video transmission
TWI588833B (zh) 2015-11-27 2017-06-21 群聯電子股份有限公司 資料程式化方法與記憶體儲存裝置
US10719394B2 (en) * 2017-10-25 2020-07-21 Innogrit Technologies Co., Ltd. Systems and methods for fast access of non-volatile storage devices

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070156587A1 (en) * 2000-01-06 2007-07-05 Super Talent Electronics Inc. Content Protection Using Encryption Key Embedded with Content File
US20070288683A1 (en) * 2006-06-07 2007-12-13 Microsoft Corporation Hybrid memory device with single interface
CN102779096A (zh) * 2012-07-11 2012-11-14 山东华芯半导体有限公司 一种基于页块面三维的闪存地址映射方法
US20150286528A1 (en) * 2014-04-04 2015-10-08 Lsi Corporation Error correction code (ecc) selection in nand flash controllers with multiple error correction codes
CN104809075A (zh) * 2015-04-20 2015-07-29 电子科技大学 一种存取实时并行处理的固态记录装置及方法
CN105630705A (zh) * 2015-06-10 2016-06-01 上海磁宇信息科技有限公司 数据存储装置及使用块替换表的读写方法
TW201719673A (zh) * 2015-11-27 2017-06-01 群聯電子股份有限公司 資料程式化方法與記憶體儲存裝置
CN108121669A (zh) * 2016-11-29 2018-06-05 爱思开海力士有限公司 存储器系统及其操作方法
CN108121672A (zh) * 2017-08-08 2018-06-05 鸿秦(北京)科技有限公司 一种基于NandFlash存储器多通道的存储阵列控制方法与装置
CN108121503A (zh) * 2017-08-08 2018-06-05 鸿秦(北京)科技有限公司 一种NandFlash地址映射及块管理算法

Also Published As

Publication number Publication date
US10719272B2 (en) 2020-07-21
US20200034080A1 (en) 2020-01-30
TW202008176A (zh) 2020-02-16
TWI668575B (zh) 2019-08-11
CN110764691B (zh) 2023-03-03

Similar Documents

Publication Publication Date Title
CN110764691B (zh) 数据储存装置以及非挥发式存储器控制方法
US11294827B2 (en) Non-sequential zoned namespaces
US7039788B1 (en) Method and apparatus for splitting a logical block
US8606987B2 (en) Data writing method for flash memory and controller using the same
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
WO2009096180A1 (ja) メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム
TW201942751A (zh) 資料儲存系統之控制單元以及邏輯至物理映射表更新方法
CN109521944B (zh) 数据储存装置以及数据储存方法
US9213631B2 (en) Data processing method, and memory controller and memory storage device using the same
CN111158579B (zh) 固态硬盘及其数据存取的方法
KR102656959B1 (ko) 존 구획 네임스페이스를 갖는 호스트 관리 하드웨어 압축
TWI523030B (zh) 緩衝記憶體管理方法、記憶體控制器與記憶體儲存裝置
US20240220155A1 (en) Solution for Super Device Imbalance in ZNS SSD
US11347420B2 (en) Attribute mapping in multiprotocol devices
KR20230142795A (ko) Zns 디바이스들에서의 상이한 기입 우선순위화
US11966618B2 (en) Purposeful super device imbalance for ZNS SSD efficiency
US10892031B2 (en) Data storage device and control method for non-volatile memory
US11853565B2 (en) Support higher number of active zones in ZNS SSD
US9047959B1 (en) Data storage device, memory control method, and electronic device with data storage device
US20230075329A1 (en) Super Block Allocation Across Super Device In ZNS SSD
US11656984B2 (en) Keeping zones open with intermediate padding

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