CN115048045A - 控制数据存储装置运作的方法及数据存储装置及其控制器 - Google Patents

控制数据存储装置运作的方法及数据存储装置及其控制器 Download PDF

Info

Publication number
CN115048045A
CN115048045A CN202210568168.7A CN202210568168A CN115048045A CN 115048045 A CN115048045 A CN 115048045A CN 202210568168 A CN202210568168 A CN 202210568168A CN 115048045 A CN115048045 A CN 115048045A
Authority
CN
China
Prior art keywords
block
data
word lines
word line
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.)
Pending
Application number
CN202210568168.7A
Other languages
English (en)
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 CN115048045A publication Critical patent/CN115048045A/zh
Pending legal-status Critical Current

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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/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/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
    • 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
    • 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

Landscapes

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

Abstract

本发明公开了一种用来控制数据存储装置的运作的方法以及数据存储装置及其控制器。该方法可包括:选取复数个非挥发性内存组件中的非挥发性内存组件的多个区块中的一区块;从主机接收数据写入指令;产生对应于该数据写入指令的复数个操作指令,且于该区块的复数个非保留字行进行资料写入,其中该区块包括该复数个非保留字行以及复数个保留字行,以及该复数个非保留字行中的每一非保留字行包括多页;以及通过单阶细胞写入模式来写入用户数据至该复数个保留字行中的一保留字行,使该保留字行包括单一的页。

Description

控制数据存储装置运作的方法及数据存储装置及其控制器
本申请是申请日为2018年01月15日、申请号为201810034108.0、发明创造名称为“控制数据存储装置运作的方法及数据存储装置及其控制器”的中国发明申请的分案申请。
技术领域
本发明有关于闪存(Flash memory)的存取(access),尤指一种用来控制数据存储装置的运作的方法以及相关的数据存储装置及其控制器。
背景技术
近年来由于内存的技术不断地发展,各种可携式或非可携式数据存储装置(例如:符合SD/MMC、CF、MS、XD或UFS标准的记忆卡;又例如:固态硬盘;又例如:符合UFS或EMMC规格的嵌入式(embedded)存储装置)被广泛地实施于诸多应用中。因此,这些数据存储装置中的内存的存取控制遂成为相当热门的议题。
以常用的NAND型闪存而言,其主要可区分为单阶细胞(single level cell,SLC)与多阶细胞(multiple level cell,MLC)两大类的闪存。单阶细胞闪存中的每个被当作记忆细胞(memory cell)的晶体管只有两种电荷值,分别用来表示逻辑值0与逻辑值1。另外,多阶细胞闪存中的每个被当作记忆单元的晶体管的存储能力则被充分利用,采用较高的电压来驱动,以通过不同级别的电压在一个晶体管中记录至少两组位信息(诸如00、01、11、10);理论上,多阶细胞闪存的记录密度可以达到单阶细胞闪存的记录密度的至少两倍,这对于曾经在发展过程中遇到瓶颈的NAND型闪存的相关产业而言,是非常好的消息。
相较于单阶细胞闪存,由于多阶细胞闪存的价格较便宜,并且在有限的空间里可提供较大的容量,故多阶细胞闪存很快地成为市面上的数据存储装置竞相采用的主流。然而,多阶细胞闪存的不稳定性所导致的问题也一一浮现。为了确保数据存储装置对闪存的存取控制能符合相关规范,闪存的控制器通常备有某些管理机制以妥善地管理数据的存取。
依据相关技术,有了这些管理机制的数据存储装置还是有不足之处。举例来说,当采用较新的技术制造闪存时,其内的区块(block)的第一个与最后一个字行(word-line;亦可称为「字线」)的位错误率(Bit Error Rate,BER)可以显著地大于同区块中的其它字行的位错误率,这可造成这个区块很容易地被判定为坏区块。如果许多区块都有类似的问题,则数据存储装置的寿命可能变得很短。因此,需要一种新颖的方法及相关架构,以在没有副作用或较不可能带来副作用的状况下提升数据存储装置的效能。
发明内容
本发明的目的在于提供一种用来控制数据存储装置的运作的方法以及相关的数据存储装置及其控制器,以解决上述问题。
本发明的另一目的在于提供一种用来控制数据存储装置的运作的方法以及相关的数据存储装置及其控制器,以在没有副作用或较不可能带来副作用的状况下达到数据存储装置的优化(optimal)效能。
本发明的至少一实施例提供一种用来控制数据存储装置的运作的方法,其中该数据存储装置包括非挥发性内存(non-volatile memory,NV memory),且该非挥发性内存包括复数个非挥发性内存组件(NV memory element)。该方法可包括:选取该复数个非挥发性内存组件中的非挥发性内存组件的多个区块中的一区块;从主机(host device)接收数据写入指令,其中该数据写入指令是来自该主机的复数个主机指令(host command)的其中之一;产生对应于该数据写入指令的复数个操作指令,且传送该复数个操作指令至该非挥发性内存,以于该区块的复数个非保留字行(non-reserved word-line)进行数据写入,其中该区块包括该复数个非保留字行以及复数个保留字行(reserved word-line),以及该复数个非保留字行中的每一非保留字行包括多页;以及通过单页写入模式,来写入用户数据或非用户数据至该复数个保留字行中的一保留字行中的任意一个页。
本发明的至少一实施例提供一种数据存储装置,其可包括:非挥发性内存,用来存储信息,其中该非挥发性内存包括复数个非挥发性内存组件;以及控制器,耦接至该非挥发性内存,用来控制该数据存储装置的运作。该控制器可包括处理电路,而该处理电路可依据来自主机的复数个主机指令控制该控制器,以容许该主机通过该控制器存取(access)该非挥发性内存。例如:该控制器选取该复数个非挥发性内存组件中的非挥发性内存组件的多个区块中的一区块;该控制器从该主机接收数据写入指令,其中该数据写入指令是来自该主机的该复数个主机指令的其中之一;该控制器产生对应于该数据写入指令的复数个操作指令,且传送该复数个操作指令至该非挥发性内存,以于该区块的复数个非保留字行进行资料写入,其中该区块包括该复数个非保留字行以及复数个保留字行,以及该复数个非保留字行中的每一非保留字行包括多页;以及该控制器通过单页写入模式,来写入用户数据或非用户数据至该复数个保留字行中的一保留字行中的任意一个页。
本发明的至少一实施例提供一种数据存储装置的控制器,其中该数据存储装置包括该控制器与非挥发性内存,且该非挥发性内存包括复数个非挥发性内存组件。该控制器可包括处理电路,而该处理电路可依据来自主机的复数个主机指令控制该控制器,以容许该主机通过该控制器存取该非挥发性内存。例如:该控制器选取该复数个非挥发性内存组件中的非挥发性内存组件的多个区块中的一区块;该控制器从该主机接收数据写入指令,其中该数据写入指令是来自该主机的该复数个主机指令的其中之一;该控制器产生对应于该数据写入指令的复数个操作指令,且传送该复数个操作指令至该非挥发性内存,以于该区块的复数个非保留字行进行资料写入,其中该区块包括该复数个非保留字行以及复数个保留字行,以及该复数个非保留字行中的每一非保留字行包括多页;以及该控制器通过单页写入模式,来写入用户数据或非用户数据至该复数个保留字行中的一保留字行中的任意一个页。
本发明的多个好处的其中之一是,通过保留字行(reserved word-line)管理,本发明能针对该控制器的运作进行妥善的控制,以避免数据存储装置的寿命变短。另外,依据本发明的实施例来实施并不会增加许多额外的成本。因此,相关技术的问题可被解决,且整体成本不会增加太多。相较于相关技术,本发明能在没有副作用或较不可能带来副作用的状况下达到数据存储装置的优化效能。
附图说明
图1为依据本发明实施例的一种数据存储装置与主机(host device)的示意图。图2为依据本发明实施例的一种用来控制数据存储装置的运作的方法的示意图。
图3绘示图2所示方法所带来的关于位错误率(Bit Error Rate,BER)的改善。
图4绘示图2所示方法于实施例中的数据写入顺序。
图5绘示图2所示方法于实施例中的工作流程。
图6绘示图2所示方法于另一实施例中的数据写入顺序。
图7绘示图2所示方法于另一实施例中的工作流程。
其中,附图标记说明如下:
50 主机
100 数据存储装置
110 内存控制器
112 微处理器
112C 程序代码
112M 只读存储器
114 控制逻辑电路
116 缓冲存储器
118 传输接口电路
120 非挥发性内存
122-1,122-2,…,122-N 非挥发性内存组件
210,220,P(0),P(1),P(2),P(3),P(4),
P(5),P(6),…,P(511),P(512),…,
P(762),P(763),P(764),
P(765),P(766),P(767) 页
300,500 工作流程
DATA(0),DATA(1),DATA(2),
DATA(3),…用户数据
S20,S22,S24,S26,S28,S30,S32,
S50,S52,S54,S56,S58,S60,S62,
S64,S66,S68 步骤
vBLK(0),vBLK(1) 虚拟区块
WL(0),WL(1),WL(2),…,
WL(M-3),WL(M-2),WL(M-1) 字行
具体实施方式
I.内存系统
请参考图1,图1为依据本发明第一实施例的一种数据存储装置100与主机(hostdevice)50的示意图。例如:数据存储装置100可为可携式数据存储装置(例如:符合SD/MMC、CF、MS、或XD标准的记忆卡)或固态硬盘(solid state drive,SSD)。另外,主机50的例子可包括(但不限于):多功能移动电话(multifunctional mobile phone)、平板计算机(tablet)、可穿戴装置(wearable device)、以及个人计算机(personal computer)诸如桌面计算机与膝上型计算机。依据本实施例,数据存储装置100可包括控制器诸如内存控制器110,且可另包括非挥发性内存(non-volatile memory,NV memory)120,其中该控制器用来存取(access)非挥发性内存120,且非挥发性内存120用来存储信息。非挥发性内存120可包括复数个非挥发性内存组件(NV memory element)122-1、122-2、…与122-N,其中符号「N」可代表大于的正整数。例如:非挥发性内存120可为闪存(Flash memory),而非挥发性内存组件122-1、122-2、…与122-N可分别为复数个闪存芯片(Flash memory chip)或复数个闪存裸晶(Flash memory die),但本发明并不限于此。
如图1所示,内存控制器110可包括处理电路诸如微处理器112、存储器诸如只读存储器(read only memory,ROM)112M、控制逻辑电路114、缓冲存储器116、与传输接口电路118,其中这些组件可通过总线彼此耦接。缓冲存储器116以随机存取内存(random accessmemory,RAM)来实施。另外,本实施例的只读存储器112M用来存储程序代码112C,而微处理器112则用来执行程序代码112C以控制对非挥发性内存120的存取。请注意,程序代码112C亦得存储在缓冲存储器116或任何形式的内存内。此外,控制逻辑电路114可包括错误更正码电路(未显示),以保护数据、及/或进行错误更正,而传输接口电路118可符合特定通讯标准(诸如串行高级技术附件(Serial Advanced Technology Attachment,SATA)标准、通用串行总线(Universal Serial Bus,USB)标准、快捷外设互联(Peripheral ComponentInterconnect Express,PCIE)标准或非挥发性内存快捷(Non-Volatile Memory Express,NVME)标准)且可依据该特定通讯标准进行通讯。
于本实施例中,主机50可通过传送复数个主机指令(Host Command)与对应的逻辑地址予内存控制器110来间接地存取数据存储装置100中的非挥发性内存120。内存控制器110接收该复数个主机指令与逻辑地址,并将该复数个主机指令分别转译成记忆体操作指令(简称操作指令),再以操作指令控制非挥发性内存120读取、写入(Write)/编程(Program)非挥发性内存120当中特定物理地址的记忆单位(Memory Unit)或数据页(Page),其中物理地址对应于逻辑地址。
II.采用复数个保留字行(reserved word-line)的新颖方法
关于制造非挥发性内存120,有多种技术可供采用,例如:将记忆细胞排列成单层的平面NAND型快闪(2D/Planar NAND Flash)技术;以及将记忆细胞排列成多层垂直堆栈(stack)的立体NAND型快闪(3D NAND Flash)技术。依据某些实施例,非挥发性内存120可被实施成具有单层排列的记忆细胞的平面NAND型快闪架构。依据某些实施例,非挥发性内存120可被实施成具有以多层垂直堆栈的记忆细胞的立体NAND型快闪架构。
图2为依据本发明实施例的一种用来控制数据存储装置的运作的方法的示意图。该方法可应用于数据存储装置100,且可应用于该控制器诸如内存控制器110。例如:非挥发性内存组件122-1、122-2、…与122-N可为三阶细胞(triple level cell;简称为「TLC」)非挥发性内存组件,且非挥发性内存组件122-1、122-2、…与122-N中的任一非挥发性内存组件122-n(符号「n」可代表区间[1,N]中的任一整数)可包括多个区块,其中N为正整数。包括M个字行{WL(0),WL(1),WL(2),…,WL(M-3),WL(M-2),WL(M-1)}的区块可作为该多个区块中的任一者的例子,其中,M为正整数,例如:256。内存控制器110可采用TLC写入模式(作为默认写入模式)来写入用户数据至区块的其中一字行的其中一页,换句话说,一个字行可存储三页的用户数据。
如图2左半部所示,假设该区块中的每一字行的写入运作都采用该TLC写入模式来进行。在以上述平面NAND型快闪架构来实施闪存的状况下,这么做(采用该TLC写入模式来进行该区块中的每一字行的写入运作)可能没问题。然而,在以上述立体NAND型快闪架构来实施闪存的状况下,由于该立体NAND型快闪架构的特性,这么做(采用该TLC写入模式来进行该区块中的每一字行的写入运作)可能造成这个区块很容易地被判定为坏区块。该方法可避免这样的问题。如图2右半部所示,在非挥发性内存120是以上述立体NAND型快闪架构来实施的状况下,基于该方法来运作的内存控制器110可利用该区块中的第一字行(诸如字行WL(0))与最后字行(诸如字行WL(M-1))作为保留字行,尤其可通过单阶细胞(singlelevel cell;简称为「SLC」)写入模式来写入用户数据至第一字行(诸如字行WL(0))与最后字行(诸如字行WL(M-1)),或只写入用户数据至第一字行与最后字行的其中一页(或称单页写入),使字行WL(0)包括单一的页210、且字行WL(M-1)包括单一的页220,以有效降低第一字行与最后字行所存储的用户数据的错误位数,使区块不再轻易地被判定为坏区块。另外,第一字行与最后字行仍可用以存储及写入用户数据,但是较佳用以存储区块关闭信息。
图3绘示图2所示方法所带来的关于位错误率(Bit Error Rate,BER)的改善。如图3左半部所示,假设该区块中的每一字行的写入运作都采用该TLC写入模式来进行,其中闪存是以上述平面NAND型快闪架构来实施。此状况下,第一字行(诸如字行WL(0))与最后字行(诸如字行WL(M-1))的位错误率显著地大于其他字行的位错误率。为了克服这样的物理特性,相关技术中通常需更改某些算法,尤其增加启动数据读取重试(read-retry)程序的执行次数、以及需更改闪存操作参数。相较于此,本发明的上述方法可避免相关技术的问题。由于内存控制器110可将第一字行(诸如字行WL(0))与最后字行(诸如字行WL(M-1))视为保留字行、并以该SLC写入模式来操作,或仅进行单页写入,故该方法能压抑第一字行(诸如字行WL(0))与最后字行(诸如字行WL(M-1))的位错误率,如图3右半部所示。可想而知地,用户可以利用SLC写入模式或以单页写入来写入用户数据至多个字行,例如:第一及第二字行(WL(0)以及WL(1))与最后二字行(诸如字行WL(M-2)以及WL(M-1)),达到类似的目的。
图4绘示图2所示方法于实施例中的数据写入顺序。以数据页的观点来看,字行WL(0)可包括三页诸如页{P(0),P(1),P(2)},字行WL(1)可包括三页诸如页{P(3),P(4),P(5)},依此类推。例如,该区块可包括页{P(0),P(1),P(2),P(3),P(4),P(5),P(6),…,P(762),P(763),P(764),P(765),P(766),P(767)}。如图4左半部所示,假设该区块中的每一字行的写入运作都采用该TLC写入模式来进行,其中闪存是以上述平面NAND型快闪架构来实施。此状况下,写入一系列数据诸如用户数据{DATA(0),DATA(1),DATA(2),DATA(3),…}通常从页P(0)起开始,并且用户数据可被存储于该区块中的大部分的页,直到页P(766),最后,将区块关闭(End of Block;简称为「EOB」)信息写入P(767)。相较于此,本发明的上述方法可包括将用户数据写入复数个非保留字行(non-reserved word-line),诸如字行{WL(1),…,WL(M-2)},其在本实施例中可分别对应于页{{P(3),P(4),P(5)},…,{P(762),P(763),P(764)}}。如图4右半部所示,当欲写入用户数据{DATA(0),DATA(1),DATA(2),DATA(3),…}至该区块时,内存控制器110可从页P(3)起开始进行写入。针对该复数个保留字行(例如:该区块的第一字行与最后字行),内存控制器110可改以SLC写入模式或仅进行单页写入。
在实作上,本发明可通过设定区块的编程顺序即可实现上述目的。编程顺序可为一个数组或一张表,列出为用户数据所应存储的物理地址,其中,物理地址可为连续的页编号,即{P(3),P(4),P(5),…,P(764),P(0),P(765)}。在另一实施例中,编程顺序较佳采用Z形顺序,即非连续的页编号,例如:{P(3),P(6),P(4),P(9),…,P(764),P(0),P(765)},以符合非挥发性内存120的操作特性。在另一实施例中,使用者分别设定非保留字行的编程顺序以及保留字行的编程顺序。当写入用户数据时,内存控制器110采用默认写入模式以及非保留字行的编程顺序;当写入非用户数据(例如:EOB信息)时,内存控制器110依据保留字行的编程顺序,采用SLC写入模式或仅进行单页写入以写入非用户数据至非挥发性内存120。通过SLC写入模式或单页写入,内存控制器110可将非用户数据写入该复数个保留字行中的任一者。另外,内存控制器110可将非用户数据写入该复数个保留字行中的任一者,并将非用户数据的备份写入该复数个保留字行中的另一者。
图5绘示图2所示方法于实施例中的工作流程300。例如:在该处理电路诸如微处理器112的控制下,该控制器诸如内存控制器110可进行工作流程300的运作。
于步骤S20中,内存控制器110选取一个区块作为主动区块(Active Block;亦可称为「活跃区块」)以存储用户数据,主动区块诸如上述的包括该M个字行{WL(0),WL(1),WL(2),…,WL(M-3),WL(M-2),WL(M-1)}的该区块。当数据存储装置100完成初始化后,内存控制器110会从非挥发性内存120中选取其中一个区块作为主动区块。主动区块可用以存储来自于主机50的用户数据,或于垃圾收集(Garbage Collection)程序作为目的区块以存储来自于来源区块的有效用户数据,或于抺写平衡(Wear-Leveling)程序作为目的区块以存储来自于来源区块的用户数据。
于步骤S22中,内存控制器110可从主机50接收数据写入指令,其中,数据写入指令包括至少一用户数据以及至少一逻辑地址,且用户数据与逻辑地址较佳为一对一对应。在另一实施例中,数据写入指令包括至少一用户数据以及至少一指定物理地址,用户数据与指定物理地址较佳为一对一对应,且内存控制器110较佳将用户数据编程至指定物理地址中,另外,至少一用户数据可先存储于主机50的内存中,内存控制器110依据数据写入指令的指示再至主机50的内存下载至少一用户数据。
于步骤S24中,内存控制器110可产生对应于该数据写入指令的默认写入模式的复数个操作指令。内存控制器110依据数据写入指令、编程顺序以及其他参数,将数据写入指令转译成默认写入模式的复数个操作指令,以将至少一用户数据正确地编程至非挥发性内存120,其中,至少一用户数据的存储地址(物理地址)可由内存控制器110所决定,或是由数据写入指令所决定。
于步骤S26中,内存控制器110执行默认写入模式的复数个操作指令以将至少一用户数据编程至主动区块的非保留字行。例如,内存控制器110执行TLC写入模式的复数个操作指令将至少一用户数据(诸如用户数据{DATA(0),DATA(1),DATA(2),DATA(3),…})编程至非保留字行(诸如字行{WL(1),WL(2),…,WL(M-3),WL(M-2)})的至少一页(诸如页{P(3),P(4),P(5),…,P(762),P(763),P(764)}),但本发明不限于此。
于步骤S28中,内存控制器110可检查非保留字行是否皆已写入用户数据。例如,在步骤S22至步骤S28所形成的循环中,内存控制器110可将该系列用户数据(诸如用户数据{DATA(0),DATA(1),DATA(2),DATA(3),…})依序写入该区块的非保留字行(诸如字行{WL(1),WL(2),…,WL(M-3),WL(M-2)}),但本发明不限于此。当非保留字行皆已写入用户数据,进入步骤S30;否则,进入步骤S22。
于步骤S30中,内存控制器110执行另一模式的复数个操作指令以将区块关闭信息编程至主动区块的至少保留字行,诸如字行WL(0)与WL(M-1)中的至少一者(例如:字行WL(0);又例如:字行WL(M-1);又例如:字行WL(0)与WL(M-1)),但本发明不限于此。
于步骤S32中,内存控制器110可将该主动区块指定为数据区块。当主动区块中被写入区块关闭信息后,该数据区块可代表完全编程(fully programmed)区块,主动区块即变更为数据区块,不再用以写入任何用户数据。
图6绘示图2所示方法于另一实施例中的数据写入顺序。以数据页的观点来看,字行WL(0)可包括三页诸如页{P(0),P(1),P(2)},字行WL(1)可包括三页诸如页{P(3),P(4),P(5)},依此类推。例如,该区块可包括页{P(0),P(1),P(2),P(3),P(4),P(5),…,P(511),P(512),…,P(765),P(766),P(767)}。如图6左半部所示,假设该区块中的每一字行的写入运作都采用该TLC写入模式来进行数据写入,其中闪存是以上述平面NAND型快闪架构来实施。此状况下,写入一系列数据诸如用户数据{DATA(0),DATA(1),DATA(2),…}通常从页P(0)起开始。相较于此,本发明的上述方法可包括将用户数据写入非保留字行,诸如字行{WL(1),…,WL(M-2)},其在本实施例中亦可分别对应于页{{P(3),P(4),P(5)},…,{P(762),P(763),P(764)}}。如图6右半部所示,当欲写入该系列数据诸如用户数据{DATA(0),DATA(1),DATA(2),…}至该区块时,内存控制器110可从页P(3)起开始进行写入。针对上述保留字行诸如字行WL(0)与WL(M-1),内存控制器110可改以SLC写入模式或仅进行单页写入。
相较于图4所示实施例,本实施例的该区块可包括复数个虚拟(virtual)区块。例如内存控制器110可将该区块分割成二个虚拟区块,诸如图6右半部所示的虚拟区块vBLK(0)及vBLK(1)。内存控制器110可将用户数据的第一部分先写入虚拟区块vBLK(0)的非保留字行;然后,通过该SLC写入模式或通过单页写入,内存控制器110可将非用户数据(例如:虚拟区块vBLK(0)的EOB信息)写入这些保留字行中的第一保留字行,诸如字行WL(0)。接下来,内存控制器110可将用户数据的第二部分写入虚拟区块vBLK(1)的非保留字行;然后,通过该单阶细胞写入模式或通过单页写入,内存控制器110可将非用户数据(例如:虚拟区块vBLK(1)的EOB信息)写入这些保留字行中的第二保留字行,诸如字行WL(M-1)。本实施例与前述实施例相仿的内容在此不重复赘述。
依据某些实施例,该区块中的虚拟区块的分割方式(例如:虚拟区块vBLK(0)的大小、虚拟区块vBLK(1)的大小、及/或虚拟区块vBLK(0)与vBLK(1)之间的边界的位置)可予以变化。依据某些实施例,该区块中的虚拟区块的数量及其大小可予以变化。
图7绘示图2所示方法于另一实施例中的工作流程500。例如:在该处理电路诸如微处理器112的控制下,该控制器诸如内存控制器110可进行工作流程500的运作。
于步骤S50中,内存控制器110可选取一个区块作为主动区块以存储用户数据,主动区块诸如上述的包括该M个字行{WL(0),WL(1),WL(2),…,WL(M-3),WL(M-2),WL(M-1)}的该区块。
于步骤S52中,内存控制器110可将该主动区块分割成复数个虚拟区块,诸如上述的虚拟区块vBLK(0)及vBLK(1),但本发明不限于此。
于步骤S54中,内存控制器110可选取该复数个虚拟区块的其中之一,尤其可选取该复数个虚拟区块当中尚未被选取的一个虚拟区块。
于步骤S56中,内存控制器110可从主机50接收数据写入指令。例如:数据写入指令包括至少一用户数据以及至少一逻辑地址,且用户数据与逻辑地址较佳为一对一对应。又例如:数据写入指令包括至少一用户数据以及至少一指定物理地址,用户数据与指定物理地址较佳为一对一对应,且内存控制器110较佳将用户数据编程至指定物理地址中。
于步骤S58中,内存控制器110可产生对应于该数据写入指令的默认写入模式的复数个操作指令。
于步骤S60中,内存控制器110可执行默认写入模式的复数个操作指令以将至少一用户数据编程至该虚拟区块的非保留字行。举例来说,内存控制器110可执行TLC写入模式的复数个操作指令将至少一用户数据(诸如用户数据{DATA(0),DATA(1),DATA(2),…}的一部分)编程至该虚拟区块的非保留字行的至少一页(例如:当步骤S54中所选取的虚拟区块是虚拟区块vBLK(0)时,上述至少一页可包括页{P(3),P(4),P(5),…,P(511)};又例如:当步骤S54中所选取的虚拟区块是虚拟区块vBLK(1)时,上述至少一页可包括页{P(512),…,P(764)}),但本发明不限于此。
于步骤S62中,针对该虚拟区块,内存控制器110可检查非保留字行是否皆已写入用户数据。例如,在步骤S56至步骤S62所形成的循环中,内存控制器110可将该系列数据(诸如用户数据{DATA(0),DATA(1),DATA(2),…})的一部分依序写入该虚拟区块的非保留字行,但本发明不限于此。当这些非保留字行皆已写入数据,进入步骤S64;否则,进入步骤S56。
于步骤S64中,内存控制器110可执行另一模式的复数个操作指令以将区块关闭信息编程至该虚拟区块的保留字行,诸如字行WL(0)与WL(M-1)的其中之一,但本发明不限于此。例如:当该虚拟区块代表虚拟区块vBLK(0)时,内存控制器110可将虚拟区块vBLK(0)的区块关闭信息编程至虚拟区块vBLK(0)的保留字行,诸如字行WL(0)。又例如:当该虚拟区块代表虚拟区块vBLK(1)时,内存控制器110可将虚拟区块vBLK(1)的区块关闭信息编程至虚拟区块vBLK(1)的保留字行,诸如字行WL(M-1)。
于步骤S66中,内存控制器110可判断是否(该复数个虚拟区块中的)全部虚拟区块已都被选取。如果是,进入步骤S68;否则,进入步骤S54。
于步骤S68中,内存控制器110可将该主动区块指定为数据区块。例如,该资料区块可代表完全编程区块。本实施例与前述实施例相仿的内容在此不重复赘述。
依据某些实施例,用来写入用户数据至该区块中的任一非保留字行(例如每一非保留字行)所采用的写入模式可为X阶细胞写入模式(其阶数等于X),且该非保留字行中的页数可等于X,其中X可为正整数,尤其是大于的正整数。例如:当X≥3时,该非保留字行可包括至少三页。
本发明的方法(例如其工作流程300与500)与对应的设备(例如微处理器112、内存控制器110与数据存储装置100)能进行妥善的控制,以避免非挥发性内存120的寿命变短,其中相关技术的问题可被解决,且整体成本不会增加太多相较于相关技术,本发明能在没有副作用或较不可能带来副作用的状况下达到数据存储装置的优化效能。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种用来控制数据存储装置的运作的方法,该数据存储装置包括非挥发性内存,该非挥发性内存包括复数个非挥发性内存组件,该方法包括:
选取该复数个非挥发性内存组件中的非挥发性内存组件的多个区块中的一区块;
利用该区块的多个字行中的第一字行或者最后字行,作为该区块的复数个保留字行,以及该区块中的剩余字行作为该区块的复数个非保留字行,其中该复数个非保留字行中的每一非保留字行包括多页;从主机接收数据写入指令,其中该数据写入指令是来自该主机的复数个主机指令的其中之一;
产生对应于该数据写入指令的复数个操作指令,以于该区块的该复数个非保留字行进行数据写入;以及
通过单页写入模式,来写入用户数据或非用户数据至该复数个保留字行中的一保留字行中的任意一个页。
2.如权利要求1所述的方法,其另包括:
写入该区块的区块关闭信息至该保留字行。
3.如权利要求2所述的方法,其特征在于,该区块包括复数个虚拟区块;以及该区块关闭信息是该复数个虚拟区块中的一虚拟区块的区块关闭信息。
4.如权利要求2所述的方法,其另包括:
通过该单阶细胞写入模式来写入该区块关闭信息的备份至该复数个保留字行中的另一保留字行,使该另一保留字行包括单一的页。
5.如权利要求1所述的方法,其另包括:
通过该单阶细胞写入模式来写入用户数据至该复数个保留字行中的另一保留字行,使该另一保留字行包括单一的页。
6.如权利要求1所述的方法,其另包括:
修改分别指向该区块的至少一部分字行的实体地址,以将一系列数据写入该复数个非保留字行,且避免将该系列数据写入该区块的第一字行,其中该复数个保留字行包括该第一字行。
7.一种数据存储装置,包括:
非挥发性内存,用来存储信息,其中该非挥发性内存包括复数个非挥发性内存组件;以及
控制器,耦接至该非挥发性内存,用来控制该数据存储装置的运作,其中该控制器包括:
处理电路,用来依据来自主机的复数个主机指令控制该控制器,
以容许该主机通过该控制器存取该非挥发性内存,其中:
该控制器选取该复数个非挥发性内存组件中的非挥发性内存组件的多个区块中的一区块;
利用该区块的多个字行中的第一字行或者最后字行,作为该区块的复数个保留字行,以及该区块中的剩余字行作为该区块的复数个非保留字行,其中该复数个非保留字行中的每一非保留字行包括多页;
该控制器从该主机接收数据写入指令,其中该数据写入指令是来自该主机的该复数个主机指令的其中之一;
该控制器产生对应于该数据写入指令的复数个操作指令,以于该区块的该复数个非保留字行进行数据写入;以及
该控制器通过单页写入模式,来写入用户数据或非用户数据至该复数个保留字行中的一保留字行中的任意一个页。
8.如权利要求7所述的数据存储装置,其中该控制器写入该区块的区块关闭信息至该保留字行。
9.一种数据存储装置的控制器,该数据存储装置包括该控制器与非挥发性内存,该非挥发性内存包括复数个非挥发性内存组件,该控制器包括:
处理电路,用来依据来自主机的复数个主机指令控制该控制器,以容许该主机通过该控制器存取该非挥发性内存,其中:
该控制器选取该复数个非挥发性内存组件中的非挥发性内存组件的多个区块中的一区块;
利用该区块的多个字行中的第一字行或者最后字行,作为该区块的复数个保留字行,以及该区块中的剩余字行作为该区块的复数个非保留字行,其中该复数个非保留字行中的每一非保留字行包括多页;
该控制器从该主机接收数据写入指令,其中该数据写入指令是来自该主机的该复数个主机指令的其中之一;
该控制器产生对应于该数据写入指令的复数个操作指令,以于该区块的该复数个非保留字行进行数据写入;以及
该控制器通过单页写入模式,来写入用户数据或非用户数据至该复数个保留字行中的一保留字行中的任意一个页。
10.如权利要求9所述的控制器,其中该控制器写入该区块的区块关闭信息至该保留字行。
CN202210568168.7A 2017-11-02 2018-01-15 控制数据存储装置运作的方法及数据存储装置及其控制器 Pending CN115048045A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
TW106137873A TWI644215B (zh) 2017-11-02 2017-11-02 用來控制一資料儲存裝置的運作之方法以及資料儲存裝置及其控制器
TW106137873 2017-11-02
CN201810034108.0A CN109753230B (zh) 2017-11-02 2018-01-15 控制数据存储装置运作的方法及数据存储装置及其控制器

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201810034108.0A Division CN109753230B (zh) 2017-11-02 2018-01-15 控制数据存储装置运作的方法及数据存储装置及其控制器

Publications (1)

Publication Number Publication Date
CN115048045A true CN115048045A (zh) 2022-09-13

Family

ID=65431763

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210568168.7A Pending CN115048045A (zh) 2017-11-02 2018-01-15 控制数据存储装置运作的方法及数据存储装置及其控制器
CN201810034108.0A Active CN109753230B (zh) 2017-11-02 2018-01-15 控制数据存储装置运作的方法及数据存储装置及其控制器

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201810034108.0A Active CN109753230B (zh) 2017-11-02 2018-01-15 控制数据存储装置运作的方法及数据存储装置及其控制器

Country Status (3)

Country Link
US (1) US10642509B2 (zh)
CN (2) CN115048045A (zh)
TW (1) TWI644215B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109979508A (zh) * 2019-03-15 2019-07-05 合肥沛睿微电子股份有限公司 固态硬盘装置与相关的固态硬盘控制电路
TWI725416B (zh) * 2019-04-23 2021-04-21 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100382546B1 (ko) * 2000-12-04 2003-05-09 주식회사 하이닉스반도체 불휘발성 강유전체 메모리 장치 및 그를 이용한 불량셀검출방법
US7130229B2 (en) * 2002-11-08 2006-10-31 Intel Corporation Interleaved mirrored memory systems
JP4700562B2 (ja) * 2006-05-18 2011-06-15 株式会社バッファロー データ記憶装置およびデータ記憶方法
US7743303B2 (en) * 2007-01-22 2010-06-22 Micron Technology, Inc. Defective memory block remapping method and system, and memory device and processor-based system using same
US7975109B2 (en) * 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US8161357B2 (en) * 2008-03-17 2012-04-17 Agere Systems Inc. Systems and methods for using intrinsic data for regenerating data from a defective medium
US9123422B2 (en) * 2012-07-02 2015-09-01 Super Talent Technology, Corp. Endurance and retention flash controller with programmable binary-levels-per-cell bits identifying pages or blocks as having triple, multi, or single-level flash-memory cells
CN101814318B (zh) * 2009-02-25 2013-05-01 群联电子股份有限公司 多层存储单元与非型闪存储存系统及其控制器与存取方法
US8700970B2 (en) * 2010-02-28 2014-04-15 Densbits Technologies Ltd. System and method for multi-dimensional decoding
US8886990B2 (en) * 2011-01-27 2014-11-11 Apple Inc. Block management schemes in hybrid SLC/MLC memory
US9349479B1 (en) * 2014-11-18 2016-05-24 Sandisk Technologies Inc. Boundary word line operation in nonvolatile memory
US9934858B2 (en) * 2015-04-30 2018-04-03 Sandisk Technologies Llc Use of dummy word lines for metadata storage
US10229751B2 (en) * 2017-05-01 2019-03-12 Western Digital Technologies, Inc. Storage system and method for bad block recycling

Also Published As

Publication number Publication date
CN109753230B (zh) 2022-06-10
US20190129629A1 (en) 2019-05-02
TW201918891A (zh) 2019-05-16
US10642509B2 (en) 2020-05-05
TWI644215B (zh) 2018-12-11
CN109753230A (zh) 2019-05-14

Similar Documents

Publication Publication Date Title
US10754585B2 (en) Method for performing writing management in a memory device, and associated memory device and controller thereof
US20170160942A1 (en) Data storage device and flash memory control method
US11030093B2 (en) High efficiency garbage collection method, associated data storage device and controller thereof
CN106598479B (zh) 闪速存储器的故障安全擦除的方法和装置
KR100816761B1 (ko) 낸드 플래시 메모리 및 에스램/노어 플래시 메모리를포함하는 메모리 카드 및 그것의 데이터 저장 방법
US9141530B2 (en) Data writing method, memory controller and memory storage device
CN113795820A (zh) 主机系统与存储器子系统之间的输入/输出大小控制
US11194712B2 (en) Memory controller and operating method for performing garbage collection operation in memory devices
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
TWI840703B (zh) 用於控制資料儲存裝置之方法及相關快閃記憶體控制器
US11688472B2 (en) Memory device for passing verify operation and operating method of the same
CN109753230B (zh) 控制数据存储装置运作的方法及数据存储装置及其控制器
CN109285574B (zh) 于记忆装置中进行编程管理的方法、记忆装置及控制器
US11347433B2 (en) Method for performing sudden power off recovery management, associated memory device and controller thereof, and associated electronic device
TWI709855B (zh) 用來於一記憶裝置中進行寫入管理之方法以及記憶裝置及其控制器
US20190087106A1 (en) Memory system and memory control method
WO2015084820A1 (en) Memory system controller including a multi-resolution internal cache
CN110308936B (zh) 进行初始化的方法、记忆装置及其控制器以及电子装置
US8713242B2 (en) Control method and allocation structure for flash memory device
CN111984185A (zh) 进行动态节流控制的方法、主机、数据存储装置及控制器
JP4254930B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
CN116027964A (zh) 存储装置及其操作方法
JP2006099594A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

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