CN110083546A - 记忆装置中进行写入管理的方法、记忆装置和其控制器 - Google Patents

记忆装置中进行写入管理的方法、记忆装置和其控制器 Download PDF

Info

Publication number
CN110083546A
CN110083546A CN201810453571.9A CN201810453571A CN110083546A CN 110083546 A CN110083546 A CN 110083546A CN 201810453571 A CN201810453571 A CN 201810453571A CN 110083546 A CN110083546 A CN 110083546A
Authority
CN
China
Prior art keywords
data
instruction
volatility memorizer
block
written
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
CN201810453571.9A
Other languages
English (en)
Other versions
CN110083546B (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 CN110083546A publication Critical patent/CN110083546A/zh
Application granted granted Critical
Publication of CN110083546B publication Critical patent/CN110083546B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • 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
    • 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
    • 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/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital 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/5621Digital 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/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital 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/5671Digital 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 trapping in an insulator
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel 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)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

本发明公开了一种用来于一记忆装置中进行写入管理的方法以及相关的记忆装置及其控制器。所述方法可包括:将偶页数据中的第一局部数据写入至非挥发性存储器;传送不带有确认指令的第一组指令至非挥发性存储器,以将所述第一局部数据以及所述偶页数据中的第二局部数据写入它的内部缓冲器;传送第二组指令与确认指令至非挥发性存储器,以将第一局部数据与第二局部数据写入至它的一区块;将奇页数据中的第三局部数据写入至非挥发性存储器;以及将第一与第二局部数据写入至非挥发性存储器的另一区块的偶页,且将第三与第四局部数据写入至此区块的奇页。本发明能针对控制器的运作进行妥善的控制,以突破采用较新技术制造闪存时的瓶颈。

Description

记忆装置中进行写入管理的方法、记忆装置和其控制器
技术领域
本发明涉及闪存(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型闪存的相关产业而言,是非常好的消息。
相较于单阶细胞闪存,由于多阶细胞闪存的价格较便宜,并且在有限的空间里可提供较大的容量,故多阶细胞闪存很快地成为市面上的记忆装置竞相采用的主流。然而,多阶细胞闪存的不稳定性所导致的问题也一一浮现。为了确保记忆装置对闪存的存取控制能符合相关规范,闪存的控制器通常备有某些管理机制以妥善地管理数据的存取。
依据现有技术,有了这些管理机制的记忆装置还是有不足之处。举例来说,在采用较新的技术制造闪存的状况下,某些设计理念可导致记忆装置的缓冲器大小的需求变为原来的两倍,就有预算控制以及产品效能之间的权衡(trade-off),其可视为于采用较新的技术制造闪存时的瓶颈。因此,需要一种新颖的方法及相关架构,以在没有副作用或较不可能带来副作用的状况下提升记忆装置的效能。
发明内容
本发明的一目的在于公开一种用来于一记忆装置中进行写入管理的方法以及相关的记忆装置及其控制器,以解决上述问题。
本发明的另一目的在于公开一种用来于一记忆装置中进行写入管理的方法以及相关的记忆装置及其控制器,以在没有副作用或较不可能带来副作用的状况下达到记忆装置的优化(optimal)效能。
本发明的至少一实施例公开一种用来于一记忆装置中进行写入管理的方法,其中所述记忆装置包括一非挥发性存储器(non-volatile memory,NV memory),所述非挥发性存储器包括一或多个非挥发性存储器组件(NV memory element),所述一或多个非挥发性存储器组件中的任一者包括多个区块(block),且所述多个区块中的任一者包括多页。所述方法包括有:从一主装置(host device)接收一系列数据,以从所述系列数据取出偶页数据与奇页数据;将所述偶页数据中的第一局部(partial)数据写入至所述非挥发性存储器;传送不带有一确认指令的一第一组指令至所述非挥发性存储器,以将所述第一局部数据以及所述偶页数据中的第二局部数据写入所述非挥发性存储器中的一内部缓冲器(internalbuffer),其中所述确认指令是用来触发所述非挥发性存储器执行至少一指令以对所述非挥发性存储器中的至少一非挥发性存储器组件进行编程(programming)运作;传送一第二组指令与所述确认指令至所述非挥发性存储器,以将所述第一局部数据与所述第二局部数据写入至所述非挥发性存储器中的一区块,其中所述至少一指令包括所述第二组指令,且所述确认指令触发所述非挥发性存储器执行所述第二组指令;将所述奇页数据中的第三局部数据写入至所述非挥发性存储器;以及将所述第一局部数据与所述第二局部数据写入至所述非挥发性存储器中的另一区块的一偶页,且将所述第三局部数据与所述奇页数据中的第四局部数据写入至所述另一区块的一奇页。
本发明的至少一实施例公开一种记忆装置,其可包括:一非挥发性存储器,用来存储信息,其中所述非挥发性存储器包括一或多个非挥发性存储器组件,所述一或多个非挥发性存储器组件中的任一者包括多个区块,且所述多个区块中的任一者包括多页;以及一控制器,耦接至所述非挥发性存储器,用来控制所述记忆装置的运作。所述控制器可包括一处理电路,而所述处理电路可依据来自一主装置的多个主装置指令控制所述控制器,以容许所述主装置通过所述控制器存取(access)所述非挥发性存储器。例如:所述控制器从所述主装置接收一系列数据,以从所述系列数据取出偶页数据与奇页数据;所述控制器将所述偶页数据中的第一局部数据写入至所述非挥发性存储器;所述控制器传送不带有一确认指令的一第一组指令至所述非挥发性存储器,以将所述第一局部数据以及所述偶页数据中的第二局部数据写入所述非挥发性存储器中的一内部缓冲器,其中所述确认指令是用来触发所述非挥发性存储器执行至少一指令以对所述非挥发性存储器中的至少一非挥发性存储器组件进行编程运作;所述控制器传送一第二组指令与所述确认指令至所述非挥发性存储器,以将所述第一局部数据与所述第二局部数据写入至所述非挥发性存储器中的一区块,其中所述至少一指令包括所述第二组指令,且所述确认指令触发所述非挥发性存储器执行所述第二组指令;所述控制器将所述奇页数据中的第三局部数据写入至所述非挥发性存储器;以及所述控制器将所述第一局部数据与所述第二局部数据写入至所述非挥发性存储器中的另一区块的一偶页,且将所述第三局部数据与所述奇页数据中的第四局部数据写入至所述第二区块的一奇页。
本发明的至少一实施例公开一种记忆装置的控制器,其中所述记忆装置包括所述控制器与一非挥发性存储器,所述非挥发性存储器包括一或多个非挥发性存储器组件,所述一或多个非挥发性存储器组件中的任一者包括多个区块,且所述多个区块中的任一者包括多页。所述控制器可包括一处理电路,而所述处理电路可依据来自一主装置的多个主装置指令控制所述控制器,以容许所述主装置通过所述控制器存取所述非挥发性存储器。例如:所述控制器从所述主装置接收一系列数据,以从所述系列数据取出偶页数据与奇页数据;所述控制器将所述偶页数据中的第一局部数据写入至所述非挥发性存储器;所述控制器传送不带有一确认指令的一第一组指令至所述非挥发性存储器,以将所述第一局部数据以及所述偶页数据中的第二局部数据写入所述非挥发性存储器中的一内部缓冲器,其中所述确认指令是用来触发所述非挥发性存储器执行至少一指令以对所述非挥发性存储器中的至少一非挥发性存储器组件进行编程运作;所述控制器传送一第二组指令与所述确认指令至所述非挥发性存储器,以将所述第一局部数据与所述第二局部数据写入至所述非挥发性存储器中的一区块,其中所述至少一指令包括所述第二组指令,且所述确认指令触发所述非挥发性存储器执行所述第二组指令;所述控制器将所述奇页数据中的第三局部数据写入至所述非挥发性存储器;以及所述控制器将所述第一局部数据与所述第二局部数据写入至所述非挥发性存储器中的另一区块的一偶页,且将所述第三局部数据与所述奇页数据中的第四局部数据写入至所述第二区块的一奇页。
本发明的好处之一是,通过写入管理,本发明能针对所述控制器的运作进行妥善的控制,以突破于采用较新的技术制造闪存时的瓶颈。另外,依据本发明的实施例来实施并不会增加许多额外的成本。因此,现有技术的问题可被解决,且整体成本不会增加太多。相较于现有技术,本发明能在没有副作用或较不可能带来副作用的状况下达到记忆装置的优化效能。
附图说明
图1为依据本发明一实施例的一种记忆装置与一主装置(host device)的示意图。图2绘示图1所示记忆装置于一实施例中的区块管理方案。
图3为依据本发明一实施例的一种用来于一记忆装置中进行写入管理的方法的示意图。
图4为依据本发明另一实施例的一种用来于一记忆装置中进行写入管理的方法的示意图。
图5绘示图4所示方法于一实施例中的工作流程。
其中,附图标记说明如下:
50 主装置
100 记忆装置
110 存储器控制器
112 微处理器
112C 程序代码
112M 只读存储器
114 控制逻辑电路
116 缓冲存储器
116A 缓冲区
116B 数据交换区
118 传输接口电路
120 非挥发性存储器
121 内部缓冲器
122-1,122-2,…,122-N 非挥发性存储器组件
210 母区块
220 子区块
230 快取区块
211,212,…,
221,222,223,…,
231,232,… 区块
211A,211B,211C,
212A,212B,212C,
221A,221B,221C,
222A,222B,222C,
223A,223B,223C,… 子集合
300 工作流程
1st-8K,1st-8K(1),1st-8K(2),
2nd-8K,2nd-8K(1),2nd-8K(2),
3rd-8K,3rd-8K(1),3rd-8K(2),
4th-8K,4th-8K(1),4th-8K(2) 数据
S01,S02,S03,S04,
S30,S32,S34,S36,
S38,S40,S42,S44 步骤
具体实施方式
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是以随机存取存储器(randomaccess memory,RAM)来实施。另外,本实施例的只读存储器112M是用来存储一程序代码112C,而微处理器112则用来执行程序代码112C以控制对非挥发性存储器120的存取。请注意,程序代码112C也可存储在缓冲存储器116或任何形式的存储器内。此外,控制逻辑电路114可包括一错误更正码电路(未显示),以保护数据、及/或进行错误更正,而传输接口电路118可符合一特定通信标准(诸如串行高级技术附件(Serial Advanced TechnologyAttachment,SATA)标准、通用串行总线(Universal Serial Bus,USB)标准、或快捷外设互联(Peripheral Component Interconnect Express,PCIE)标准)且可依据所述特定通信标准进行通信。
于本实施例中,主装置50可通过传送多个主装置指令(host command)与对应的逻辑地址予存储器控制器110来间接地存取记忆装置100中的非挥发性存储器120。存储器控制器110接收所述多个主装置指令与逻辑地址,并将所述多个主装置指令分别转译成存储器操作指令(简称操作指令),再以操作指令控制非挥发性存储器120读取、写入(write)/编程(Program)非挥发性存储器120当中特定实体地址的记忆单位(memory unit)或数据页(page),其中实体地址对应于逻辑地址。例如存储器控制器110可产生或更新至少一逻辑对实体地址映像表(logical-to-physical address mapping table)来管理实体地址与逻辑地址之间的关系。
II.对应于区块类型的存取控制
于非挥发性存储器120中,非挥发性存储器组件122-1、122-2、…与122-N中的任一非挥发性存储器组件122-n(符号“n”可代表区间[1,N]中的任一整数)可包括多个区块(block),且所述多个区块中的一区块可包括且可记录特定数量的页,其中存储器控制器110对非挥发性存储器120进行抹除数据的运作的最小单位可为区块,而存储器控制器110对非挥发性存储器120进行写入数据的运作的最小单位可为页,但本发明不限于此。关于非挥发性存储器120的存取架构,所述区块可包括M个字线(word-line){WL(0),WL(1),…,WL(M-1)}。例如:存储器控制器110可通过单阶细胞(SLC)写入模式来写入信息至所述区块中的任一字线。此状况下,所述字线可包括单一的页。又例如:存储器控制器110可通过多阶细胞(MLC)写入模式来写入信息至所述区块中的任一字线。此状况下,所述字线可包括至少两页。依据某些实施例,当存储器控制器110通过三阶细胞(triple level cell,TLC)写入模式来写入信息至所述区块中的一字线时,所述字线可包括三页。
图2绘示图1所示记忆装置100于一实施例中的区块管理方案。存储器控制器110可将非挥发性存储器120中的多个区块(其可包括非挥发性存储器组件122-1、122-2、…与122-N的各自的区块)区分为多个类型的区块,诸如母区块210、子区块220与快取(cache)区块230,且可分别对所述多个类型的区块进行对应的控制,以增进存储器控制器110存取(例如读取或写入)非挥发性存储器120时的效能,其中于需要时,一个区块所属的类型可以改变。存储器控制器110可选择某些区块诸如区块231与232作为快取区块230以供暂时地存储信息,且可采用所述单阶细胞写入模式来进行这些区块的任一者的写入运作,以节省时间。另外,存储器控制器110可采用所述多阶细胞写入模式来进行某些区块的写入运作,以充分利用这些区块的存储能力,其中母区块210与子区块220的写入运作都可以采用所述多阶细胞写入模式来进行。例如:区块211与212可为完全编程(fully programmed)区块、且可以属于母区块210,其中区块211与212可存储用户数据,但本发明不限于此。
依据本实施例,主装置50可传送一请求至存储器控制器110以通过存储器控制器110对一母区块(诸如区块211或区块212)进行数据更新或写入,其中所述请求可包括一主装置指令与对应的逻辑地址。存储器控制器110可检查非挥发性存储器120中是否存储有映射到所述母区块的任一子区块(诸如区块221或区块222)。如果非挥发性存储器120中存在映射到所述母区块的所述子区块,则存储器控制器110可将主装置写入数据(host writedata)更新至所述子区块;否则,存储器控制器110可选择一空白(blank)区块作为映射到所述母区块的子区块。举例来说,所述母区块可代表区块211,且映射到所述母区块的所述子区块可代表区块221。所述请求可指出主装置50欲更新或写入区块211的子集合211B(例如第10至20页)的数据。存储器控制器110可将区块211的子集合211A(例如第0至9页)的数据复制到区块221的相对应的子集合221A(例如第0至9页)使它存储所复制的数据,且可将所述主装置写入数据写入至区块221的子集合221B(例如第10至20页)使它存储所更新的数据,以更新或写入至与母区块中相同或相对应地址的位置,但本发明不限于此。当需要时,存储器控制器110可将区块211的子集合211C(例如第21页起的后续页)的数据复制到区块221的子集合221C(例如第21页起的后续页)、抹除区块211使它变成空白区块、解除区块221与区块211之间的映射关系、且更新区块221所属的类型使它属于母区块210,其中区块211的结尾(例如最后一页)与区块221的结尾(例如最后一页)可分别存储相关的管理信息,诸如它们的区块关闭信息(end-of-block information,EOB information),但本发明不限于此。
另外,所述请求可被取代为一系列请求,其可指出主装置50欲多次更新所述母区块,其中所述主装置写入数据可被取代为分别对应于所述系列请求的多组主装置写入数据。举例来说,所述母区块可代表区块212,且映射到所述母区块的所述子区块可代表区块222。所述系列请求中的一第一请求可指出主装置50欲更新或写入区块212的子集合212B(例如第10至20页)的数据。存储器控制器110可将区块212的子集合212A(例如第0至9页)的数据复制到区块222的相对应的子集合222A(例如第0至9页)使它存储所复制的数据,且可将对应于所述第一请求的主装置写入数据写入至区块222的子集合222B(例如第10至20页)使它存储所更新的数据,以更新或写入至与母区块中相同或相对应地址的位置。所述系列请求中的一第二请求可指出主装置50欲更新或写入区块212的子集合212B(例如第10至20页)的数据。存储器控制器110可将对应于所述第二请求的主装置写入数据写入至区块222的子集合222C中的一后续部分,诸如与子集合222B相同大小的部分(例如第21至31页),作为子集合222B中的先前更新数据的替代,其中子集合222B中的先前更新数据可视为无效数据。当需要时,存储器控制器110可进行垃圾收集(garbage collection),尤其可选择一空白区块、将区块212的子集合212A(例如第0至9页)的数据复制到这个空白区块的相对应位置(例如第0至9页)、将子集合222C中的所述后续部分(例如第21至31页)的数据复制到这个空白区块当中对应于子集合212B的位置(例如第10至20页)、将区块212的子集合212C(例如第21页起的后续页)的数据复制到这个空白区块的相对应位置(例如第21页起的后续页)、抹除区块212与222使它们变成空白区块、解除区块222与区块212之间的映射关系、且更新这个空白区块所属的类型使它属于母区块210。
此外,区块223可以属于子区块220,但区块223不必映射到任何母区块。举例来说,在主装置50的硬件资源(诸如缓冲器)不足的状况下,主装置50可将连续的数据(诸如录像数据)切割数量庞大的多个小片段的数据,且可分别传送这些小片段的数据。这样,从主装置50传送至记忆装置100的这些小片段的数据对应于上述连续的数据。存储器控制器110可分别将这些小片段的数据的至少一部分写入至区块223的子集合223A、223B、223C…以使其内存储所写入的数据,其中子集合223A、223B、223C…中的每一者可包括至少一页(例如一或多页),且当区块223被写满时,存储器控制器110可更新区块223所属的类型使它属于母区块210,但本发明不限于此。例如:这些小片段的数据的每一小片段的大小可等于32KB(kilobyte;千位组),且区块223中的每一页的大小可等于16KB。又例如:这些小片段的数据的每一小片段的大小可等于16KB,且区块223中的每一页的大小可等于16KB。又例如:这些小片段的数据的每一小片段的大小可等于8KB,且区块223中的每一页的大小可等于16KB。依据某些实施例,存储器控制器110可对所收到的小片段进行缓冲处理,使子集合223A、223B、223C…中的每一者可包括一页,但本发明不限于此。
依据某些实施例,缓冲存储器116中的缓冲区116A的大小可以大于或等于一次写入非挥发性存储器120的数据量。当主装置50将上述连续的数据(诸如所述录像数据,其数据长度可以很长)写入记忆装置100时,存储器控制器110可利用没有映射到任何母区块的一系列子区块(诸如子区块223)来存储及接收所述多个小片段的数据,以避免额外工作,诸如垃圾收集操作。当需要时(例如所述主装置写入数据不满一页而需要补开头或结尾),存储器控制器110可采用一快取区块(诸如快取区块230中的任一者)来进行数据写入。
III.数据写入管理
关于制造非挥发性存储器120,有多种技术可供采用,例如:将记忆细胞排列成单层的平面NAND型快闪(2D/Planar NAND Flash)技术;以及将记忆细胞排列成多层垂直堆栈的立体NAND型快闪(3D NAND Flash)技术。依据某些实施例,非挥发性存储器120可被实施成具有单层排列的记忆细胞的平面NAND型快闪架构。依据某些实施例,非挥发性存储器120可被实施成具有以多层垂直堆栈的记忆细胞的立体NAND型快闪架构。例如:基于某些设计理念,非挥发性存储器120可被设计成:在采用所述多阶细胞写入模式来写入信息时必须一次写入两页的数据,诸如偶页加奇页(even page plus odd page)的组合数据;这表示,缓冲区116A的大小的需求变为原来的两倍。假设硬件资源充足(例如缓冲存储器116的总存储容量够大),容许缓冲区116A的大小为两页以上。此状况下,当主装置50将上述连续的数据(诸如所述录像数据,其数据长度可以很长)写入记忆装置100时,微处理器112可动态地监控(monitor)缓冲区116A中的数据,诸如所述多个小片段的数据中的一或多个小片段的数据,以准确地判断所述一或多个小片段的数据是否应该写入至一快取区块或一子区块。例如:当所述一或多个小片段的数据是前一个小片段的数据的后续数据,微处理器112可准确地判断所述一或多个小片段的数据应该写入至所述子区块。于是,存储器控制器110可利用所述系列子区块(诸如子区块223)来存储及接收所述多个小片段的数据,其中记忆装置100可具备极佳的写入效能。
假设硬件资源不足(例如缓冲存储器116的总存储容量有限)使得缓冲区116A的大小等于一页的大小。此状况下,当主装置50将上述连续的数据(诸如所述录像数据)写入记忆装置100时,微处理器112可能没有足够的信息可供用来准确地判断所述一或多个小片段的数据是否应该写入至一快取区块或一子区块,这可能使上述利用所述系列子区块来存储及接收所述多个小片段的数据的机制失效(例如存储器控制器110可能无法避免额外工作,诸如垃圾收集操作),其中写入效能可能降低。图3为依据本发明一实施例的一种用来于一记忆装置中进行写入管理的方法的示意图,其中所述方法可应用于记忆装置100,且可应用于所述控制器诸如存储器控制器110。主装置50可实施成录像机、行车纪录器等中的任一者,但本发明不限于此。由于录像机、行车纪录器等的缓冲空间有限,故上述连续的数据(诸如所述录像数据)可以被切割,尤其切割成上述许多小片段的数据。例如:所述录像数据的大小达1MB(megabyte;百万位组)或更多,这些小片段的数据的每一小片段的大小可等于8KB,且所述系列子区块中的任一个子区块(诸如区块223)中的每一页的大小可等于16KB。
依据本实施例,当偶页的数据收满时,通过一结尾程序(tail process),存储器控制器110可使数据进入一子区块的一偶页、且以假数据(dummy data)或其它数据补上或填入所述子区块的一奇页,诸如这个偶页的下一页,以完成所述子区块的双页写入,但本发明不限于此。来自主装置50的下一个小片段的数据原本需要进入所述子区块的所述奇页,但现在只能被写入一快取区块,这是因为所述子区块的所述奇页刚刚已通过所述结尾程序而被使用了。于是,上述利用所述系列子区块来存储及接收所述多个小片段的数据的机制失效。在长时间录像的状况下,存储器控制器110可能无法避免额外工作,诸如垃圾收集操作,其中写入效能可能降低。
为了便于理解,数据{1st-8K,2nd-8K,3rd-8K,4th-8K}可作为上述许多小片段的数据中的连续四个小片段的数据的例子,数据{1st-8K(1),2nd-8K(1),3rd-8K(1),4th-8K(1)}分别代表数据{1st-8K,2nd-8K,3rd-8K,4th-8K}的位于存储器控制器110(尤其是缓冲区116A)中的缓冲版本,且数据{1st-8K(2),2nd-8K(2),3rd-8K(2),4th-8K(2)}分别代表数据{1st-8K,2nd-8K,3rd-8K,4th-8K}的位于非挥发性存储器120中的写入版本,其中符号“X”可代表“不予理会”(Don't Care)。主装置50依序执行步骤{S01,S02,S03,S04},以分别写入数据{1st-8K,2nd-8K,3rd-8K,4th-8K}至记忆装置100。举例来说,存储器控制器110可从主装置50接收一系列数据诸如数据{1st-8K,2nd-8K,3rd-8K,4th-8K},以从数据{1st-8K,2nd-8K,3rd-8K,4th-8K}取出一部分作为偶页数据、以及从数据{1st-8K,2nd-8K,3rd-8K,4th-8K}取出另一部分作为奇页数据,但本发明不以此为限。假设数据{1st-8K,2nd-8K}与数据{3rd-8K,4th-8K}是预计分别被写入非挥发性存储器120中的某区块的一偶页与一奇页的数据(例如第0页的数据以及第1页的数据);这表示数据{1st-8K,2nd-8K}与数据{3rd-8K,4th-8K}可分别视为偶页数据与奇页数据,数据{1st-8K(1),2nd-8K(1)}与数据{3rd-8K(1),4th-8K(1)}可分别视为偶页数据与奇页数据,并且数据{1st-8K(2),2nd-8K(2)}与数据{3rd-8K(2),4th-8K(2)}可分别视为偶页数据与奇页数据(分别标示为“偶页”与“奇页”,以求简明)。
因应主装置50的步骤S01,数据1st-8K可被存储至缓冲区116A的第一部分作为数据1st-8K(1),且可被写入至属于快取区块230的区块231的一页作为数据1st-8K(2),其中所述第一部分的大小等于8KB。例如:通过所述结尾程序,存储器控制器110可组合数据1st-8K(1)与8KB大小的假数据(或其它数据)、且将所组合的数据写入至区块231的所述页。因应主装置50的步骤S02,数据2nd-8K可被存储至缓冲区116A的第二部分作为数据2nd-8K(1),以供被写入至非挥发性存储器120作为数据2nd-8K(2),其中所述第二部分的大小等于8KB。此状况下,存储器控制器110已于缓冲区116A中收到偶页的数据,诸如数据{1st-8K(1),2nd-8K(1)}。存储器控制器110可能已侦测到主装置50暂停或停止数据传送(例如:于从主装置50接收到数据2nd-8K(1)之后,存储器控制器110可能收到来自主装置50的停止指令),且于此时刻,无法确定是否下一笔数据和数据{1st-8K(1),2nd-8K(1)}属于同一系列数据,其中数据{1st-8K(1),2nd-8K(1)}已占满了缓冲区116A。存储器控制器110可组合(从区块231的所述页取得的)数据1st-8K(2)以及(从自缓冲区116A取得的)数据2nd-8K(1),以利用所组合的数据作为预计写入属于子区块220的区块223的一偶页(例如第0页)的数据{1st-8K(2),2nd-8K(2)}。例如:通过所述结尾程序,存储器控制器110可组合数据{1st-8K(2),2nd-8K(2)}以及16KB大小的假数据(或其它数据),以将数据{1st-8K(2),2nd-8K(2)}以及上述16KB大小的假数据分别写入区块223的所述偶页(例如第0页)以及其下一页诸如区块223的一奇页(例如第1页),以完成对这个子区块的一个双页写入运作。因应主装置50的步骤S03,数据3rd-8K可被存储至缓冲区116A的所述第一部分作为数据3rd-8K(1),且可被写入至区块231的另一页作为数据3rd-8K(2)。例如:通过所述结尾程序,存储器控制器110可组合数据3rd-8K(1)与8KB大小的假数据(或其它数据)、且将所组合的数据写入至区块231的所述另一页。因应主装置50的步骤S04,数据4th-8K可被存储至缓冲区116A的所述第二部分作为数据4th-8K(1),以供被写入至非挥发性存储器120作为数据4th-8K(2)。此状况下,存储器控制器110已于缓冲区116A中收到奇页的数据,诸如数据{3rd-8K(1),4th-8K(1)}。由于区块223的所述奇页(例如第1页)已经被用来存储上述16KB大小的假数据(或其它数据),故数据{3rd-8K(2),4th-8K(2)}是被存储于区块231,而非区块223。例如:存储器控制器110可组合(从区块231的所述另一页取得的)数据3rd-8K(2)以及(从自缓冲区116A取得的)数据4th-8K(1),以将所组合的数据写入区块231的又一页作为数据{3rd-8K(2),4th-8K(2)}。在上列运作之后,由于有效的偶页数据(诸如数据{1st-8K(2),2nd-8K(2)})位于属于子区块220的区块223、且有效的奇页数据(诸如数据{3rd-8K(2),4th-8K(2)})位于属于快取区块230的区块231,故存储器控制器110可能无法避免额外工作,诸如垃圾收集操作,但本发明不限于此。
依据某些实施例,在缓冲存储器116的总存储容量有限(例如缓冲区116A的大小等于一页的大小)的状况下,存储器控制器110可调整(例如暂缓、取消、及/或修改)对非挥发性存储器120的一部分操作指令,以避免有效的偶页数据(诸如数据{1st-8K(2),2nd-8K(2)})与有效的奇页数据(诸如数据{3rd-8K(2),4th-8K(2)})分布于不同类型的区块;并且,存储器控制器110能取得足够的信息以供用来准确地判断所述一或多个小片段的数据是否应该写入至一快取区块或一子区块,以确保上述利用所述系列子区块来存储及接收所述多个小片段的数据的机制有效。例如:在非挥发性存储器120的制造商没有提供用来控制非挥发性存储器120中的一内部缓冲器(internal buffer)121的一操作指令的状况下,存储器控制器110可通过指令调整来妥善地利用非挥发性存储器120中的内部缓冲器121,尤其可先将数据传入非挥发性存储器120中,以将所述数据暂存于内部缓冲器121。只要存储器控制器110不传送一确认指令至非挥发性存储器120,非挥发性存储器120不会执行编程,所以在传送所述确认指令至非挥发性存储器120之前,存储器控制器110可改变所述数据的一目标写入位置,例如可动态地决定是否将所述目标写入位置从属于子区块220的区块223改变为属于快取区块230的区块231。另外,为了避免于改变所述目标写入位置时所造成的数据不可读取问题(诸如所述数据的随机化版本无法被正确地去随机化的问题),存储器控制器110可暂时改变于缓冲存储器116中的很小的剩余存储空间中的至少一部分空间(例如剩余存储空间的一部分或全部)的用途,以于所述很小的剩余存储空间中安排一数据交换区116B(其可能仅具有2KB大小、或更小),且可通过数据交换区116B与内部缓冲器121之间的数据交换来修正随机种子(random seed),尤其针对所述数据进行多个随机数据输出(random data out)运作与多个随机数据输入(random data in)运作来修正随机种子。假设所述目标写入位置原本是一第一区块(例如区块223)中的一第一位置,且在所述数据被传送至非挥发性存储器120之前,存储器控制器110已依据一第一随机种子随机化所述数据以将它转换为一第一组随机化数据,作为所述数据的一随机化版本,其中所述第一随机种子对应于所述第一区块(例如区块223)中的所述第一位置。当决定将所述目标写入位置改变为一第二区块(例如区块231)中的一第二位置,通过轮流进行所述多个随机数据输出运作与所述多个随机数据输入运作,存储器控制器110可依据所述第一随机种子去随机化所述第一组随机化数据以重获所述数据,且可依据一第二随机种子随机化所述数据以将它转换为一第二组随机化数据,作为所述数据的另一随机化版本,其中所述第二随机种子对应于所述第二区块(例如区块231)中的所述第二位置。于是,于内部缓冲器121中,所述第一组随机化数据变成所述第二组随机化数据。此状况下,存储器控制器110可传送所述确认指令至非挥发性存储器120,以触发非挥发性存储器120将所述第二组随机化数据编程至区块231中的所述第二位置。相仿地,当有需要时,所述第一区块与所述第二区块可予以改变,例如所述第一区块与所述第二区块可分别代表区块231与区块223。因此,存储器控制器110能在不发生上述数据不可读取问题的状况下,在传送所述确认指令至非挥发性存储器120之前任意改变所述目标写入位置。
由于存储器控制器110能在不发生上述数据不可读取问题的状况下任意改变所述目标写入位置,故存储器控制器110可通过改变所述目标写入位置来避免图3所示实施例中的问题。图4为依据本发明另一实施例的一种用来于一记忆装置中进行写入管理的方法的示意图,其中所述方法可应用于记忆装置100,且可应用于所述控制器诸如存储器控制器110。因应主装置50的步骤S01,数据1st-8K可被存储至缓冲区116A的所述第一部分作为数据1st-8K(1),且可被写入至属于快取区块230的区块231的一页作为数据1st-8K(2)。例如:通过所述结尾程序,存储器控制器110可组合数据1st-8K(1)与8KB大小的假数据(或其它数据)、且将所组合的数据写入至区块231的所述页。因应主装置50的步骤S02,数据2nd-8K可被存储至缓冲区116A的所述第二部分作为数据2nd-8K(1),以供被写入至非挥发性存储器120作为数据2nd-8K(2)。例如:通过一开头程序(header process),存储器控制器110可组合(从区块231的所述页取得的)数据1st-8K(2)以及(从自缓冲区116A取得的)数据2nd-8K(1),且发出至少一数据写入指令以指出存储器控制器110欲将所组合的数据写入至非挥发性存储器120当中属于子区块220的区块223的一偶页作为数据{1st-8K(2),2nd-8K(2)},但避免立即发出所述确认指令至非挥发性存储器120,其中所述确认指令可触发非挥发性存储器120执行上述至少一数据写入指令。存储器控制器110可能已侦测到主装置50暂停或停止数据传送(例如:于从主装置50接收到数据2nd-8K(1)之后,存储器控制器110可能收到来自主装置50的停止指令),且于此时刻,无法确定是否下一笔数据和数据{1st-8K(1),2nd-8K(1)}属于同一系列数据,其中数据{1st-8K(1),2nd-8K(1)}已占满了缓冲区116A。存储器控制器110可先将数据{1st-8K(2),2nd-8K(2)}(尤其是,数据{1st-8K(2),2nd-8K(2)}的于对应的多个随机数据输出运作与对应的多个随机数据输入运作之前的随机化版本;此随机化版本可作为所述第一组随机化数据的一例)传入非挥发性存储器120中且将它暂存于内部缓冲器121,且可轮流进行所述对应的多个随机数据输出运作与所述对应的多个随机数据输入运作,以于改变所述目标写入位置时避免上述数据不可读取问题。例如:在改变所述目标写入位置之后,存储器控制器110可传送所述确认指令至非挥发性存储器120,以触发非挥发性存储器120将数据{1st-8K(2),2nd-8K(2)}(尤其是,数据{1st-8K(2),2nd-8K(2)}的于所述对应的多个随机数据输出运作与所述对应的多个随机数据输入运作之后的随机化版本;此随机化版本可作为所述第二组随机化数据的一例)编程至区块231中。这样,当下一页的数据(诸如数据{3rd-8K(1),4th-8K(1)})已完整地接收于缓冲区116A中时,存储器控制器110可将属于同一系列的数据存储于区块223,而不会遇到无关的数据(诸如上述16KB大小的假数据或其它数据)占据区块223的问题。
另外,因应主装置50的步骤S03,数据3rd-8K可被存储至缓冲区116A的所述第一部分作为数据3rd-8K(1),且可被写入至区块231的另一页作为数据3rd-8K(2)。例如:通过所述结尾程序,存储器控制器110可组合数据3rd-8K(1)与8KB大小的假数据(或其它数据)、且将所组合的数据写入至区块231的所述另一页。因应主装置50的步骤S04,数据4th-8K可被存储至缓冲区116A的所述第二部分作为数据4th-8K(1),以供被写入至非挥发性存储器120作为数据4th-8K(2)。例如:通过所述开头程序,存储器控制器110可尝试组合(从区块231的所述页取得的)数据3rd-8K(2)以及(从自缓冲区116A取得的)数据4th-8K(1),且侦测到数据{1st-8K(2),2nd-8K(2),3rd-8K(2),4th-8K(2)}属于同一系列数据,其中所述确认指令尚未发出至非挥发性存储器120,且数据{3rd-8K(1),4th-8K(1)}已占满了缓冲区116A。例如:针对偶页数据,诸如区块231中的数据{1st-8K(2),2nd-8K(2)},存储器控制器110可进行多个随机数据输出运作与多个随机数据输入运作,以将数据{1st-8K(2),2nd-8K(2)}的随机化版本的随机种子调整成对应于区块223的一偶页(例如第0页),使它停留在内部缓冲器121中。于是,存储器控制器110可进行数据{1st-8K(2),2nd-8K(2),3rd-8K(2),4th-8K(2)}于区块223的双页写入,其中数据{1st-8K(2),2nd-8K(2)}被写入区块223的所述偶页(例如第0页),且数据{3rd-8K(2),4th-8K(2)}被写入所述偶页的下一页(例如第1页),但本发明不限于此。
在上列运作之后,由于属于同一系列数据的小片段的数据被连续地存储于子区块220中的区块223(例如:有效的偶页数据(诸如数据{1st-8K(2),2nd-8K(2)})以及有效的奇页数据(诸如数据{3rd-8K(2),4th-8K(2)})位于子区块220的区块223中的连续两页),故存储器控制器110可避免额外工作,诸如垃圾收集操作,其中记忆装置100可具备极佳的写入效能。
依据某些实施例,小片段的数据的大小、一页的大小、缓冲区116A的大小、及/或数据交换区116B的大小可予以变化。为了便于理解,上述至少一数据写入指令可包括一第一组指令诸如指令{0x80,Child_Addr(0),DATA(0),0x11,0x80,Child_Addr(1),DATA(1)},且所述确认指令可包括指令{0x10},其可视为一确认写入指令,其中0x80可代表在所述多阶细胞写入模式中的写入指令、且可视为用来预告(pre-announce)数据写入的一预告写入指令,Child_Addr(0)可代表区块223的所述偶页于平面0的实体地址,DATA(0)可代表欲写入的数据(诸如数据1st-8K(2)),0x11可代表切换平面指令,Child_Addr(1)可代表区块223的所述偶页于平面1的实体地址,DATA(1)可代表欲写入的数据(诸如数据2nd-8K(1)),但本发明不限于此。在所述确认指令(诸如指令{0x10})还没发出之前,数据{DATA(0),DATA(1)}(尤其是其随机化版本)可停留在所述内部缓冲区,且存储器控制器110可通过改变地址来改变所述目标写入位置,使数据{DATA(0),DATA(1)}被写入至区块231(而非区块223),以避免无关的数据(诸如上述16KB大小的假数据或其它数据)占据区块223的问题。例如:对应于一单阶细胞写入运作的一第二组指令诸如指令{0xDA,0x85,Cache_Addr(0),0x11,0x85,Cache_Addr(1)}可被纳入上述至少一数据写入指令,其中0xDA可代表切换至所述单阶细胞写入模式,0x85可代表在所述单阶细胞写入模式中的写入指令、且可视为用来预告数据写入的一预告写入指令,Cache_Addr(0)可代表区块231中的某一页于平面0的实体地址,Cache_Addr(1)可代表区块231中的这一页于平面1的实体地址。存储器控制器110可发出所述第一组指令诸如指令{0x80,Child_Addr(0),DATA(0),0x11,0x80,Child_Addr(1),DATA(1)}、所述第二组指令诸如指令{0xDA,0x85,Cache_Addr(0),0x11,0x85,Cache_Addr(1)}、以及所述确认指令(诸如指令{0x10}),以于所述单阶细胞写入模式中通过改变/更新地址(将地址{Child_Addr(0),Child_Addr(1)}改变/更新为地址{Cache_Addr(0),Cache_Addr(1)})来写入数据{DATA(0),DATA(1)}至区块231,但本发明不限于此。依据某些实施例,存储器控制器110可在所述第一组指令诸如指令{0x80,Child_Addr(0),DATA(0),0x11,0x80,Child_Addr(1),DATA(1)}与所述第二组指令诸如指令{0xDA,0x85,Cache_Addr(0),0x11,0x85,Cache_Addr(1)}之间插入至少一组额外指令,诸如指令{0x00,0x05,0xE0}与{0x85},以通过上述至少一组额外指令调整随机种子,以确保非挥发性存储器120中的写入数据的正确性及/或可读性,尤其避免随机化(randomizing)/去随机化(de-randomizing)运作的机制受到改变/更新地址的影响,但本发明不限于此。例如:存储器控制器110可针对偶页执行指令{0x00,0x05,0xE0}与{0x85}一或多次,以进行回拷(copy-back)读取及随机化数据写入,来改变内部缓冲器121中的随机化数据应该使用的随机种子。在上述至少一组额外指令中,指令{0x00,0x05,0xE0}与{0x85}可分别视为随机数据输出指令与随机数据输入指令,以供进行一随机数据输出运作与一随机数据输入运作。于是,存储器控制器110可执行指令{0x00,0x05,0xE0}与{0x85}多次,以轮流进行多个随机数据输出运作与多个随机数据输入运作来修正随机种子。例如:当数据交换区具有2KB大小,存储器控制器110可对于8KB大小的随机化数据执行指令{0x00,0x05,0xE0}与{0x85}四次,以来修正它的随机种子。
图5绘示图4所示方法于一实施例中的工作流程300。依据本实施例,存储器控制器110可从主装置50接收所述系列数据诸如数据{1st-8K,2nd-8K,3rd-8K,4th-8K},以从所述系列数据取出一部分作为偶页数据、以及从所述系列数据取出另一部分作为奇页数据,但本发明不以此为限。
于步骤S30中,存储器控制器110可将所述偶页数据中的第一局部(partial)数据(诸如数据1st-8K)写入至非挥发性存储器120(例如:属于快取区块230的区块231)。
于步骤S32中,存储器控制器110可传送不带有所述确认指令(诸如指令{0x10})的一第一组指令(例如:上述的所述第一组指令,诸如指令{0x80,Child_Addr(0),DATA(0),0x11,0x80,Child_Addr(1),DATA(1)})至非挥发性存储器120,以将所述第一局部数据(诸如数据1st-8K)以及所述偶页数据中的第二局部数据(诸如数据2nd-8K)写入非挥发性存储器120中的内部缓冲器121,其中所述确认指令可用来触发非挥发性存储器120执行至少一指令,诸如上述至少一数据写入指令的至少一部分(例如一部分或全部),以对非挥发性存储器120中的至少一非挥发性存储器组件(例如非挥发性存储器组件122-1、122-2、…与122-N中的至少一者)进行编程运作。例如:所述第一组指令可指出非挥发性存储器120应当通过所述多阶细胞写入模式来写入所述第一局部数据与所述第二局部数据至非挥发性存储器120中的一子区块,诸如属于子区块220的区块223。
于步骤S34中,针对所述偶页数据(诸如所述第一局部数据与所述第二局部数据),存储器控制器110可传送至少一组额外指令(例如:上述的至少一组额外指令,诸如指令{0x00,0x05,0xE0}与{0x85})至非挥发性存储器120,以通过所述至少一组额外指令调整随机种子,以确保非挥发性存储器120中的写入数据的正确性及/或可读性。依据本实施例,通过数据交换区116B与内部缓冲器121之间的数据交换,存储器控制器110可修正内部缓冲器121中的至少一部分数据的随机种子。
于步骤S36中,存储器控制器110可传送一第二组指令(例如:上述的所述第二组指令,诸如指令{0xDA,0x85,Cache_Addr(0),0x11,0x85,Cache_Addr(1)})与所述确认指令(诸如指令{0x10})至非挥发性存储器120,以将所述第一局部数据与所述第二局部数据写入至非挥发性存储器120中的一快取区块,诸如属于快取区块230的区块231。例如:所述第二组指令可指出非挥发性存储器120应当通过所述单阶细胞写入模式来写入所述第一局部数据与所述第二局部数据至所述快取区块。依据本实施例,所述至少一指令可包括所述第二组指令,且所述确认指令触发非挥发性存储器120执行所述第二组指令,其中所述第二组指令可取代所述第一组指令的至少一部分(例如一部分或全部),且可视为所述第一组指令的更新指令。例如:存储器控制器110不必重新传送某些数据(诸如DATA(0)与DATA(1))至非挥发性存储器120,但本发明不限于此。另外,所述第一组指令与所述第二组指令分别对应于不同的目标写入位置。例如:通过传送所述第二组指令,存储器控制器110可将所述第一组指令所指定的一第一目标写入位置(诸如所述第一位置)取代为所述第二组指令所指定的一第二目标写入位置(诸如所述第二位置)。存储器控制器110可修正内部缓冲器121中的所述至少一部分数据的随机种子,以符合所述第二目标写入位置。
于步骤S38中,存储器控制器110可将所述奇页数据中的第三局部数据(诸如数据3rd-8K)写入至非挥发性存储器120(例如:属于快取区块230的区块231)。
于步骤S40中,存储器控制器110可检查所述奇页数据是否已被完整地收到,尤其可检查所述第三局部数据(诸如数据3rd-8K)与所述奇页数据中的第四局部数据(诸如数据4th-8K)是否都已被收到,其中所述奇页数据是否已被完整地收到可对应于所述第三局部数据(诸如数据3rd-8K)与所述第四局部数据(诸如数据4th-8K)是否都已被收到。例如:存储器控制器110可检查所述第四局部数据(诸如数据4th-8K)是否已被收到,以判断所述奇页数据是否已被完整地收到。当所述奇页数据已被完整地收到时(例如:所述第四局部数据(诸如数据4th-8K)已被收到),进入步骤S42;否则,工作流程300结束,但本发明不限于此。
于步骤S42中,针对所述偶页数据(诸如所述第一局部数据与所述第二局部数据),存储器控制器110可传送所述至少一组额外指令(诸如指令{0x00,0x05,0xE0}与{0x85})至非挥发性存储器120,以通过所述至少一组额外指令调整随机种子,以确保非挥发性存储器120中的写入数据的正确性及/或可读性。
于步骤S44中,存储器控制器110可将所述第一局部数据(诸如数据1st-8K)与所述第二局部数据(诸如数据2nd-8K)写入至所述子区块(诸如区块223)的一偶页,且将所述第三局部数据(诸如数据3rd-8K)与所述第四局部数据(诸如数据4th-8K)写入至所述子区块(诸如区块223)的一奇页,其中所述奇页是所述偶页的下一页。
由于有效的偶页数据(诸如数据{1st-8K(2),2nd-8K(2)})以及有效的奇页数据(诸如数据{3rd-8K(2),4th-8K(2)})位于区块223中的连续两页,故存储器控制器110可具备极佳的写入效能,且可避免额外工作(诸如垃圾收集操作)。为了简明起见,本实施例与前述实施例相仿的内容在此不重复赘述。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (20)

1.一种用来于一记忆装置中进行写入管理的方法,所述记忆装置包括一非挥发性存储器,所述非挥发性存储器包括一或多个非挥发性存储器组件,所述一或多个非挥发性存储器组件中的任一者包括多个区块,所述多个区块中的任一者包括多页,所述方法的特征在于,包括有:
从一主装置接收一系列数据,以从所述系列数据取出偶页数据与奇页数据;
将所述偶页数据中的第一局部数据写入至所述非挥发性存储器;
传送不带有一确认指令的一第一组指令至所述非挥发性存储器,以将所述第一局部数据以及所述偶页数据中的第二局部数据写入所述非挥发性存储器中的一内部缓冲器,其中所述确认指令是用来触发所述非挥发性存储器执行至少一指令以对所述非挥发性存储器中的至少一非挥发性存储器组件进行编程运作;
传送一第二组指令与所述确认指令至所述非挥发性存储器,以将所述第一局部数据与所述第二局部数据写入至所述非挥发性存储器中的一区块,其中所述至少一指令包括所述第二组指令,且所述确认指令触发所述非挥发性存储器执行所述第二组指令;
将所述奇页数据中的第三局部数据写入至所述非挥发性存储器;以及
将所述第一局部数据与所述第二局部数据写入至所述非挥发性存储器中的另一区块的一偶页,且将所述第三局部数据与所述奇页数据中的第四局部数据写入至所述另一区块的一奇页。
2.如权利要求1所述的方法,其特征在于,所述区块与所述另一区块分别属于不同类型的区块。
3.如权利要求2所述的方法,其特征在于,所述区块代表一快取区块,且所述另一区块代表一子区块。
4.如权利要求2所述的方法,其特征在于,所述不同类型的区块是分别通过不同的写入模式来写入。
5.如权利要求1所述的方法,其特征在于,所述第一组指令所指定的一目标写入位置位于所述另一区块。
6.如权利要求1所述的方法,其特征在于,所述第二组指令所指定的一目标写入位置位于所述区块。
7.如权利要求1所述的方法,其还包括:
检查所述奇页数据是否已被完整地收到,其中所述奇页数据是否已被完整地收到对应于所述第三局部数据与所述第四局部数据是否都已被收到;以及
当所述奇页数据已被完整地收到时,执行将所述第一局部数据与所述第二局部数据写入至所述另一区块的所述偶页且将所述第三局部数据与所述第四局部数据写入至所述另一区块的所述奇页的运作。
8.如权利要求1所述的方法,其特征在于,所述另一区块的所述奇页是所述另一区块的所述偶页的下一页。
9.如权利要求1所述的方法,其特征在于,所述非挥发性存储器是以立体NAND型快闪架构来实施。
10.如权利要求1所述的方法,其特征在于,所述记忆装置包括一控制器与所述非挥发性存储器,且所述控制器包括一缓冲存储器,其中所述缓冲存储器中的一缓冲区的大小等于一页的大小。
11.如权利要求1所述的方法,其特征在于,所述第一组指令与所述第二组指令分别指出所述非挥发性存储器应当通过不同的写入模式来对所述非挥发性存储器进行写入。
12.如权利要求1所述的方法,其特征在于,所述第一组指令指出所述非挥发性存储器应当通过一多阶细胞写入模式来对所述非挥发性存储器进行写入,且所述第二组指令指出所述非挥发性存储器应当通过一单阶细胞写入模式来对所述非挥发性存储器进行写入。
13.如权利要求1所述的方法,其特征在于,所述第二组指令取代所述第一组指令的至少一部分。
14.如权利要求1所述的方法,其特征在于,所述第二组指令是所述第一组指令的更新指令。
15.如权利要求1所述的方法,其特征在于,所述第一组指令与所述第二组指令分别对应于不同的目标写入位置。
16.如权利要求1所述的方法,其还包括:
通过传送所述第二组指令,将所述第一组指令所指定的一第一目标写入位置取代为所述第二组指令所指定的一第二目标写入位置。
17.如权利要求16所述的方法,其特征在于,所述记忆装置包括一控制器与所述非挥发性存储器,且所述控制器包括一缓冲存储器;以及所述方法还包括:
改变于所述缓冲存储器中的剩余存储空间中的至少一部分空间的用途,以于所述剩余存储空间中安排一数据交换区;以及
通过所述数据交换区与所述内部缓冲器之间的数据交换,修正所述内部缓冲器中的至少一部分数据的随机种子,以符合所述第二目标写入位置。
18.如权利要求1所述的方法,其特征在于,所述记忆装置包括一控制器与所述非挥发性存储器,且所述控制器包括一缓冲存储器;以及所述方法还包括:
改变于所述缓冲存储器中的剩余存储空间中的至少一部分空间的用途,以于所述剩余存储空间中安排一数据交换区;以及
通过所述数据交换区与所述内部缓冲器之间的数据交换,修正所述内部缓冲器中的至少一部分数据的随机种子。
19.一种记忆装置,其特征在于,包括有:
一非挥发性存储器,用来存储信息,其中所述非挥发性存储器包括一或多个非挥发性存储器组件,所述一或多个非挥发性存储器组件中的任一者包括多个区块,且所述多个区块中的任一者包括多页;
以及
一控制器,耦接至所述非挥发性存储器,用来控制所述记忆装置的运作,
其中所述控制器包括:
一处理电路,用来依据来自一主装置的多个主装置指令控制所述控制器,以容许所述主装置通过所述控制器存取所述非挥发性存储器,其中:
所述控制器从所述主装置接收一系列数据,以从所述系列数据取出偶页数据与奇页数据;
所述控制器将所述偶页数据中的第一局部数据写入至所述非挥发性存储器;
所述控制器传送不带有一确认指令的一第一组指令至所述非挥发性存储器,以将所述第一局部数据以及所述偶页数据中的第二局部数据写入所述非挥发性存储器中的一内部缓冲器,其中所述确认指令是用来触发所述非挥发性存储器执行至少一指令以对所述非挥发性存储器中的至少一非挥发性存储器组件进行编程运作;
所述控制器传送一第二组指令与所述确认指令至所述非挥发性存储器,以将所述第一局部数据与所述第二局部数据写入至所述非挥发性存储器中的一区块,其中所述至少一指令包括所述第二组指令,且所述确认指令触发所述非挥发性存储器执行所述第二组指令;
所述控制器将所述奇页数据中的第三局部数据写入至所述非挥发性存储器;以及
所述控制器将所述第一局部数据与所述第二局部数据写入至所述非挥发性存储器中的另一区块的一偶页,且将所述第三局部数据与所述奇页数据中的第四局部数据写入至所述第二区块的一奇页。
20.一种记忆装置的控制器,所述记忆装置包括所述控制器与一非挥发性存储器,所述非挥发性存储器包括一或多个非挥发性存储器组件,所述一或多个非挥发性存储器组件中的任一者包括多个区块,所述多个区块中的任一者包括多页,所述控制器的其特征在于,包括有:
一处理电路,用来依据来自一主装置的多个主装置指令控制所述控制器,以容许所述主装置通过所述控制器存取所述非挥发性存储器,
其中:
所述控制器从所述主装置接收一系列数据,以从所述系列数据取出偶页数据与奇页数据;
所述控制器将所述偶页数据中的第一局部数据写入至所述非挥发性存储器;
所述控制器传送不带有一确认指令的一第一组指令至所述非挥发性存储器,以将所述第一局部数据以及所述偶页数据中的第二局部数据写入所述非挥发性存储器中的一内部缓冲器,其中所述确认指令是用来触发所述非挥发性存储器执行至少一指令以对所述非挥发性存储器中的至少一非挥发性存储器组件进行编程运作;
所述控制器传送一第二组指令与所述确认指令至所述非挥发性存储器,以将所述第一局部数据与所述第二局部数据写入至所述非挥发性存储器中的一区块,其中所述至少一指令包括所述第二组指令,且所述确认指令触发所述非挥发性存储器执行所述第二组指令;
所述控制器将所述奇页数据中的第三局部数据写入至所述非挥发性存储器;以及
所述控制器将所述第一局部数据与所述第二局部数据写入至所述非挥发性存储器中的另一区块的一偶页,且将所述第三局部数据与所述奇页数据中的第四局部数据写入至所述第二区块的一奇页。
CN201810453571.9A 2018-01-26 2018-05-14 记忆装置中进行写入管理的方法、记忆装置和其控制器 Active CN110083546B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW107102826A TWI660269B (zh) 2018-01-26 2018-01-26 用來於一記憶裝置中進行寫入管理之方法以及記憶裝置及其控制器
TW107102826 2018-01-26

Publications (2)

Publication Number Publication Date
CN110083546A true CN110083546A (zh) 2019-08-02
CN110083546B CN110083546B (zh) 2022-10-21

Family

ID=67347999

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810453571.9A Active CN110083546B (zh) 2018-01-26 2018-05-14 记忆装置中进行写入管理的方法、记忆装置和其控制器

Country Status (3)

Country Link
US (2) US10437520B2 (zh)
CN (1) CN110083546B (zh)
TW (1) TWI660269B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10706927B1 (en) * 2018-05-08 2020-07-07 SK Hynix Inc. Electronic device and operating method thereof
CN114365097A (zh) * 2019-08-27 2022-04-15 美光科技公司 受管理存储器系统中的写入缓冲器控制
US11681631B2 (en) * 2021-06-25 2023-06-20 Microsoft Technology Licensing, Llc Write-behind optimization of covering cache
US11977776B2 (en) 2022-02-24 2024-05-07 Silicon Motion, Inc. Flash memory controller and method capable of sending read command or data toggle command to ask for flash memory device return more plane data of different planes
US11861212B2 (en) 2022-02-24 2024-01-02 Silicon Motion, Inc. Flash memory device, controller, and method capable of performing access operation upon data unit(s) of multiple planes of flash memory device in response one simplified command sequence
US11935595B2 (en) 2022-02-24 2024-03-19 Silicon Motion, Inc. Flash memory device, controller, and method capable of performing access operation upon data unit(s) of multiple planes of flash memory device in response one simplified command sequence
US11977752B2 (en) 2022-02-24 2024-05-07 Silicon Motion, Inc. Flash memory controller and method capable of sending data toggle set-feature signal to enable, disable, or configure data toggle operation of flash memory device
US11972146B2 (en) 2022-02-24 2024-04-30 Silicon Motion, Inc. Flash memory controller and method capable of sending read command or data toggle command to ask for flash memory device return more plane data of different planes

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101494086A (zh) * 2008-01-24 2009-07-29 群联电子股份有限公司 快闪存储器储存装置、快闪存储器控制器及其切换方法
US20130103889A1 (en) * 2011-10-25 2013-04-25 Ocz Technology Group Inc. Page-buffer management of non-volatile memory-based mass storage devices
CN103165182A (zh) * 2011-12-09 2013-06-19 爱思开海力士有限公司 非易失性存储器件
CN106354653A (zh) * 2015-07-17 2017-01-25 慧荣科技股份有限公司 数据储存装置及其数据维护方法
TW201704996A (zh) * 2015-07-23 2017-02-01 愛思開海力士有限公司 包括半導體記憶體裝置的記憶體系統及其操作方法
CN106484316A (zh) * 2015-09-02 2017-03-08 慧荣科技股份有限公司 用来管理一记忆装置的方法以及记忆装置与控制器

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7885112B2 (en) * 2007-09-07 2011-02-08 Sandisk Corporation Nonvolatile memory and method for on-chip pseudo-randomization of data within a page and between pages
US20100318720A1 (en) * 2009-06-16 2010-12-16 Saranyan Rajagopalan Multi-Bank Non-Volatile Memory System with Satellite File System
CN103377686B (zh) * 2012-04-24 2016-03-30 北京兆易创新科技股份有限公司 Nand Flash 存储器及实现 Nand Flash 存储器连续读操作的方法
US9329992B2 (en) * 2013-12-04 2016-05-03 Silicon Motion, Inc. Data storage device and flash memory control method
US10176039B2 (en) * 2014-09-19 2019-01-08 Micron Technology, Inc. Self-accumulating exclusive OR program
JP6429124B2 (ja) * 2015-03-27 2018-11-28 パナソニックIpマネジメント株式会社 光ディスク装置、方法およびコンピュータプログラム
US10025662B2 (en) * 2016-04-27 2018-07-17 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
TWI590051B (zh) * 2016-06-21 2017-07-01 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法
TWI607448B (zh) * 2016-09-07 2017-12-01 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
TWI645295B (zh) * 2017-06-20 2018-12-21 慧榮科技股份有限公司 資料儲存裝置與資料儲存方法
US20190042153A1 (en) * 2017-12-28 2019-02-07 Intel Corporation Mass storage device capable of fine grained read and/or write operations

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101494086A (zh) * 2008-01-24 2009-07-29 群联电子股份有限公司 快闪存储器储存装置、快闪存储器控制器及其切换方法
US20130103889A1 (en) * 2011-10-25 2013-04-25 Ocz Technology Group Inc. Page-buffer management of non-volatile memory-based mass storage devices
CN103165182A (zh) * 2011-12-09 2013-06-19 爱思开海力士有限公司 非易失性存储器件
CN106354653A (zh) * 2015-07-17 2017-01-25 慧荣科技股份有限公司 数据储存装置及其数据维护方法
TW201704996A (zh) * 2015-07-23 2017-02-01 愛思開海力士有限公司 包括半導體記憶體裝置的記憶體系統及其操作方法
CN106484316A (zh) * 2015-09-02 2017-03-08 慧荣科技股份有限公司 用来管理一记忆装置的方法以及记忆装置与控制器

Also Published As

Publication number Publication date
US10437520B2 (en) 2019-10-08
TWI660269B (zh) 2019-05-21
CN110083546B (zh) 2022-10-21
US10754585B2 (en) 2020-08-25
TW201933104A (zh) 2019-08-16
US20190377517A1 (en) 2019-12-12
US20190235789A1 (en) 2019-08-01

Similar Documents

Publication Publication Date Title
CN110083546A (zh) 记忆装置中进行写入管理的方法、记忆装置和其控制器
TWI643066B (zh) 用來於一記憶裝置中重新使用關於垃圾收集的一目的地區塊之方法、記憶裝置及其控制器以及電子裝置
US11030093B2 (en) High efficiency garbage collection method, associated data storage device and controller thereof
US9009399B2 (en) Flash memory storage system and controller and data writing method thereof
US9268687B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
CN102298555B (zh) 基于nand技术的模块化闪存管理系统
US9280460B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
CN111045593B (zh) 用来进行读取加速的方法以及数据存储装置及其控制器
TWI495998B (zh) 資料管理方法、記憶體控制器與記憶體儲存裝置
US9619380B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
TWI656442B (zh) 用來於一記憶裝置中進行存取控制之方法以及記憶裝置及其控制器
TWI692688B (zh) 快閃記憶體控制器及相關電子裝置
CN114746834A (zh) 基于分区状态的分区附加命令调度
TWI693520B (zh) 用來於一記憶裝置中進行系統備份的方法、相關記憶裝置及其控制器、以及相關電子裝置
TWI709855B (zh) 用來於一記憶裝置中進行寫入管理之方法以及記憶裝置及其控制器
TWI745695B (zh) 用來進行無預警斷電復原管理之方法、記憶裝置及其控制器以及電子裝置
TWI644215B (zh) 用來控制一資料儲存裝置的運作之方法以及資料儲存裝置及其控制器
TWI457941B (zh) 區塊為基礎快閃記憶體之位元組存取的方法與裝置
TWI721365B (zh) 高效能垃圾收集方法以及資料儲存裝置及其控制器
US9652378B2 (en) Writing method, memory controller and memory storage device
CN106326142A (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