CN111159069A - 闪存控制器、管理闪存模块的方法及相关的电子装置 - Google Patents

闪存控制器、管理闪存模块的方法及相关的电子装置 Download PDF

Info

Publication number
CN111159069A
CN111159069A CN201910003603.XA CN201910003603A CN111159069A CN 111159069 A CN111159069 A CN 111159069A CN 201910003603 A CN201910003603 A CN 201910003603A CN 111159069 A CN111159069 A CN 111159069A
Authority
CN
China
Prior art keywords
data
flash memory
specific block
memory module
block
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
CN201910003603.XA
Other languages
English (en)
Other versions
CN111159069B (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 CN111159069A publication Critical patent/CN111159069A/zh
Application granted granted Critical
Publication of CN111159069B publication Critical patent/CN111159069B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • G11C11/4085Word line control circuits, e.g. word line drivers, - boosters, - pull-up, - pull-down, - precharge
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

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)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本发明公开了一种闪存控制器,包括有只读存储器、微处理器以及译码器,其中所述只读存储器用来存储程序代码,且所述微处理器用来执行所述程序代码以控制对一闪存模块的存取。在所述闪存控制器的操作中,当所述闪存控制器上电时,所述闪存控制器自所述闪存模块中特定区块读取多个数据页中的数据,且所述译码器对所述多个数据页中的数据进行译码;以及当所述多个数据页中有任一数据页有发生无法成功译码的情形时,所述微处理器关闭所述特定区块,并提升所述特定区块进行质量检测或是垃圾收集操作的优先顺序。本发明有益之处在于,闪存控制器上电之后仅将上电前最后写入的区块内的一部分数据搬移至另一暂存区块中,故可加速电子装置的开机时间。

Description

闪存控制器、管理闪存模块的方法及相关的电子装置
技术领域
本发明是关于闪存控制器的技术领域。
背景技术
当闪存控制器以及闪存模块在发生不正常断电(例如,断电后回复(power offrecovery,POR)或是突发断电后回复(sudden power off recovery,SPOR)的状况后,考虑到不正常断电可能会对先前正在写入的区块造成质量上的影响,在闪存控制器上电之后会立刻针对上电前最后写入的区块进行数据回存(data restore)操作,也就是将所述数据读取出来后再重新写回至闪存模块中。然而,随着立体闪存模块的发展,每一个区块所包括的数据页也越来越多,因此若是要将上电前最后写入的区块内的所有数据页都进行数据回存的话,有可能会造成上述数据回存的时间过长,进而影响到电子装置的开机时间,造成用户在使用电子装置时的不适。
发明内容
因此,本发明的目的之一在于提供一种种闪存控制器,其可以在闪存控制器上电之后仅将上电前最后写入的区块内的一部分数据搬移至另一暂存区块中,以加速电子装置的开机时间;此外,闪存控制器同时也会提升上电前最后写入的区块进行垃圾收集操作的优先顺序,以在闪存控制器空闲时优先对上电前最后写入的区块进行垃圾收集操作以确保数据的正确性。通过本发明可以在不延长电子装置开机时间的情形下,同时对不正常断电时正在写入的区块的内容进行保护,以解决现有技术中所述的问题。
在本发明的一个实施例中,公开了一种闪存控制器,其包括有一只读存储器、一微处理器以及一译码器,其中所述只读存储器用来存储一程序代码,且所述微处理器用来执行所述程序代码以控制对一闪存模块的存取。在所述闪存控制器的操作中,当所述闪存控制器上电时,所述闪存控制器自所述闪存模块中一特定区块读取多个数据页中的数据,且所述译码器对所述多个数据页中的数据进行译码;以及当所述多个数据页中有任一数据页有发生无法成功译码的情形时,所述微处理器关闭所述特定区块,并提升所述特定区块进行垃圾收集操作的优先顺序。
在本发明的另一个实施例中,公开了一种管理一闪存模块的方法,其中所述闪存模块包括了多个区块,以及所述方法包括有以下步骤:当所述闪存模块上电时,自所述闪存模块中一特定区块读取多个数据页中的数据;对所述多个数据页中的数据进行译码;以及当所述多个数据页中有任一数据页有发生无法成功译码的情形时,关闭所述特定区块,并提升所述特定区块进行垃圾收集操作的优先顺序。
在本发明的另一个实施例中,公开了一种电子装置,其包括有一闪存模块以及一闪存控制器。在所述电子装置的操作中,当所述闪存控制器以及所述闪存模块上电时,所述闪存控制器自所述闪存模块中一特定区块读取多个数据页中的数据,并对所述多个数据页中的数据进行译码;以及当所述多个数据页中有任一数据页有发生无法成功译码的情形时,所述闪存控制器关闭所述特定区块,并提升所述特定区块进行垃圾收集操作的优先顺序。
附图说明
图1为依据本发明一实施例的一种记忆装置的示意图。
图2为依据本发明一实施例的闪存中一区块的示意图。
图3为数据页中多个写入电压位准以及多个临界电压的示意图。
图4为根据本发明一实施例的管理闪存模块的流程图。
图5为决定特定区块中无法成功译码的数据页以及不安全数据页的示意图。
图6为将特定区块中的不安全数据页搬移至暂存区块的示意图。
其中,附图标记说明如下:
100 记忆装置
110 闪存控制器
112 微处理器
112C 程序代码
112M 只读存储器
114 控制逻辑
116 缓冲存储器
118 接口逻辑
120 闪存模块
130 主装置
132 编码器
134 译码器
200 区块
202 浮闸晶体管
BL1、BL2、BL3 位线
WL0~WL2、WL4~WL6 字线
P0、P1、P2、P3、P36、P41、P42、P44 数据页
Vt1~Vt7 临界电压
400~412 步骤
500 特定区块
600 暂存区块
具体实施方式
图1为依据本发明一实施例的一种记忆装置100的示意图。记忆装置100包括有一闪存(Flash Memory)模块120以及一闪存控制器110,且闪存控制器110用来存取闪存模块120。依据本实施例,闪存控制器110包括一微处理器112、一只读存储器(Read OnlyMemory,ROM)112M、一控制逻辑114、一缓冲存储器116、与一接口逻辑118。只读存储器112M是用来存储一程序代码112C,而微处理器112则用来执行程序代码112C以控制对闪存模块120的存取(Access)。控制逻辑114包括了一编码器132以及一译码器134,其中编码器132用来对写入到闪存模块120中的数据进行编码以产生对应的校验码(或称,错误更正码(ErrorCorrection Code),ECC),而译码器134用来将从闪存模块120所读出的数据进行译码。
于典型状况下,闪存模块120包括了多个闪存芯片,而每一个闪存芯片包括多个区块(block),而闪存控制器110对闪存模块120进行抹除数据运作是以区块为单位来进行。另外,一区块可记录特定数量的数据页(page),其中闪存控制器110对闪存模块120进行写入数据的运作是以数据页为单位来进行写入。在本实施例中,闪存模块120为一立体NAND型闪存(3D NAND-type flash)模块。
实作上,通过微处理器112执行程序代码112C的闪存控制器110可利用其本身内部的组件来进行诸多控制运作,例如:利用控制逻辑114来控制闪存模块120的存取运作(尤其是对至少一区块或至少一数据页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用接口逻辑118来与一主装置(Host Device)130沟通。缓冲存储器116是以随机存取存储器(Random Access Memory,RAM)来实施。例如,缓冲存储器116可以是静态随机存取存储器(Static RAM,SRAM),但本发明不限于此。
在一实施例中,记忆装置100可以是可携式记忆装置(例如:符合SD/MMC、CF、MS、XD标准的记忆卡),且主装置130为一可与记忆装置连接的电子装置,例如手机、笔记本电脑、桌面计算机…等等。而在另一实施例中,记忆装置100可以是固态硬盘或符合通用闪存存储(Universal Flash Storage,UFS)或嵌入式多媒体记忆卡(Embedded Multi Media Card,EMMC)规格的嵌入式存储装置,以设置在一电子装置中,例如设置在手机、笔记本电脑、桌面计算机之中,而此时主装置130可以是所述电子装置的一处理器。
图2为依据本发明一实施例的闪存模块120中一区块200的示意图,其中闪存模块120为立体NAND型闪存。如图2所示,区块200包括了多个记忆单元(例如图标的浮闸晶体管202或是其他的电荷捕捉(charge trap)组件),其通过多条位线(图标仅绘示了BL1~BL3)及多条字线(例如图标WL0~WL2、WL4~WL6)来构成立体NAND型闪存架构。在图2中,以最上面的一个平面为例,字线WL0上的所有浮闸晶体管构成了至少一数据页,字线WL1上的所有浮闸晶体管构成了另至少一数据页,而字线WL2的所有浮闸晶体管构成了再另至少一数据页…以此类堆。此外,根据闪存写入方式的不同,字线WL0与数据页(逻辑数据页)之间的定义也会有所不同,详细来说,当使用单层式存储(Single-Level Cell,SLC)的方式写入时,字线WL0上的所有浮闸晶体管仅对应到单一逻辑数据页;当使用双层式存储(Multi-LevelCell,MLC)的方式写入时,字线WL0上的所有浮闸晶体管对应到两个逻辑数据页;当使用三层式存储(Triple-Level Cell,TLC)的方式写入时,字线WL0上的所有浮闸晶体管对应到三个逻辑数据页;以及当使用四层式存储(Quad-Level Cell,QLC)的方式写入时,字线WL0上的所有浮闸晶体管对应到四个逻辑数据页。由于本技术领域中具有通常知识者应能了解立体NAND型闪存的结构以及字线及数据页之间的关系,故相关的细节在此不予赘述。
在图2所示的架构中,会将多条字线定义为一字线组,而所述字线组会共同具有部分的控制电路,进而导致当数据写入到所述字线组的一条字符在线的浮闸晶体管发生失败时(写入失败),可能会连带导致所述字线组的其他字符在线的浮闸晶体管的数据发生错误。在一实施例中,位于同一个平面上的字线会被设定为一字线组,参考图2,假设同一个平面上有四个位线,则字线WL0~WL3会被归于第一字线组,而字线WL4~WL7会被归于第二字线组…以此类推。假设闪存控制器110将数据写入到第一字线组的数据页中时是循序将数据写入到字线WL0、WL1、WL2、WL3中的浮闸晶体管202,而假设字线WL0、WL1、WL2上的数据都成功写入,但是当数据写入字线WL3时发生写入错误,则可能会连带使得字线WL0、WL1、WL2上原本写入成功的数据也发生错误。此外,假设闪存控制器110将数据写入到第二字线组的数据页中时是循序将数据写入到字线WL4、WL5、WL6、WL7中的浮闸晶体管202,而假设字线WL4上在写入数据的时候发生错误,则也会连带使得字线WL5、WL6、WL7不稳定而不适合再继续写入数据。
图3为使用三层式存储区块来作为区块200时多个写入电压位准L1~L8以及多个临界电压Vt1~Vt7的示意图。如图3所示,每个浮闸晶体管202可以被程序化(programmed(为具有电压位准L1(也就是(MSB,CSB,LSB)=(1,1,1))、电压位准L2(也就是(MSB,CSB,LSB)=(1,1,0)、电压位准L3(也就是(MSB,CSB,LSB)=(1,0,0))、电压位准L4(也就是(MSB,CSB,LSB)=(0,0,0))、电压位准L5(也就是(MSB,CSB,LSB)=(0,1,0))、电压位准L6(也就是(MSB,CSB,LSB)=(0,1,1))、电压位准L7(也就是(MSB,CSB,LSB)=(0,0,1))或是电压位准L8(也就是(MSB,CSB,LSB)=(1,0,1))。当闪存控制器110需要读取浮闸晶体管202中的最低有效位(LSB)时,闪存控制器110会使用临界电压Vt1、Vt5去读取浮闸晶体管202,并根据浮闸晶体管202的导通状态(是否有电流产生)来产生“1”或是“0”,类似地,当闪存控制器110需要读取浮闸晶体管202中的中间有效位(CSB)时,闪存控制器110会使用临界电压Vt2、Vt4与Vt6去读取浮闸晶体管202,并根据浮闸晶体管202的导通状态(是否有电流产生)来产生“1”或是“0”,以供译码器134进行译码。类似地,当闪存控制器110需要读取浮闸晶体管202中的最高有效位(MSB)时,闪存控制器110会使用临界电压Vt3与Vt7去读取浮闸晶体管202,并根据浮闸晶体管202的导通状态(是否有电流产生)来判断最高有效位是“1”或是“0”,以供译码器134进行译码。在本实施例中,当浮闸晶体管202具有电压位准L1时可以被称为具有抹除状态(erase state),而当浮闸晶体管202具有电压位准L2~L8的任一时可以被称为具有写入状态(program state)。
需注意的是,图3所示的范例仅是用来说明闪存控制器读取浮闸晶体管202的过程,而其实施方式并非是本发明的限制,具体来说,上述最低有效位、中间有效位以及最高有效位可以具有不同的编码方式,且闪存控制器可以另外使用额外的辅助电压来读取浮闸晶体管202以提供更多的信息给译码器134进行译码。此外,由于本领域具有通常知识者应可在阅读过上述图3的相关内容之后了解到如何将上述实施例应用在单层式存储区块、双层式存储区块以及四层式存储区块,相关细节在此不再赘述。
一般而言,在闪存控制器110以及闪存模块120在上电时,会先对在上电前最后一个写入的区块进行扫描以判断数据质量,并据以判断先前是否有发生不正常断电。若是判断有发生不正常断电状况时,会针对上电前最后写入的区块的数据进行数据回存的操作,然而,因为不正常断电的影响,上电前最后写入区块可能会有许多数据页的质量会受到影响,造成上述数据回存的时间过长,进而影响到电子装置的开机时间。因此,为了解决此一问题,本实施例中的闪存控制器110以及闪存模块120在上电后仅先针对上电前最后写入区块的一部分数据页进行数据回存,并将上电前最后写入区块关闭且提升其进行质量检测或是垃圾收集操作的优先顺序,以在后续闪存控制器110空闲时优先对上电前最后写入区块进行质量检测或是垃圾收集操作以确保数据的正确性。
具体来说,图4为根据本发明一实施例的管理闪存模块120的流程图。在步骤400中,流程开始。在步骤402中,闪存控制器110以及闪存模块120上电并进行初始化操作,此时,闪存控制器110可以判断在上电前是否发生不正常断电的情形。举例来说,当记忆装置100在正常关机/断电的情形下,闪存控制器110会将存储在缓冲存储器116中的多个暂存表格及数据存储到闪存模块120中,且其中包括了一个用来标示记忆装置100是否正常关机的标签(flag),因此,闪存控制器110在上电后可以通过读取存储在闪存模块120中的上述卷标来判断记忆装置100之前是否有遭遇到不正常断电的情形,例如,当上述标签并未被正确设定时便判断先前有遭遇到不正常断电。在另一实施例中,闪存控制器110可以依序读取记忆装置100上电前最后写入的区块(以下称,特定区块)内的所有数据页,以判断是否有数据页的数据无法正确的读取(也就是说,无法使用错误更正码来更正),而当有数据页的数据无法正确的读取时便判断记忆装置100先前有遭遇到不正常断电。在另一实施例中,闪存控制器110可以依序读取记忆装置100上电前所述特定区块内最后一个写入的字线组的多个数据页、或是最后两个写入的字线组的多个数据页,以判断是否有数据页的数据无法正确的读取(也就是说,无法使用错误更正码来更正),而当有数据页的数据无法正确的读取时便判断记忆装置100先前有遭遇到不正常断电。在本实施例及以下的说明中,是假设记忆装置100遭遇到不正常断电。
在步骤404中,通过对所述特定区块的至少一部分数据页的译码操作,闪存控制器110决定出至少一个无法成功译码的数据页以及多个不安全的数据页,其中无法成功译码的数据页指的是译码器无法完全地对其中的数据进行译码,而不安全的数据页指的是与无法成功译码的数据页归属于同一个字线组、或是相邻字线组的数据页。以图5来做为说明,其为特定区块500的示意图,假设闪存控制器110在读取特定区块500内的数据页的过程中仅有数据页P45无法被成功译码,则闪存控制器110便会将数据页P45判断为无法成功译码的数据页,且与数据页P45属于同一个字线组的其他数据页P36~P44以及P46~P47判断为不安全数据页。在另一实施例中,与数据页P45相邻的字线组内所包括的数据页P24~P35也可被判断为不安全数据页。
在步骤406中,微处理器112在闪存模块120中开启一个新的暂存区块,例如图6所示的暂存区块600,并将特定区块500内的不安全数据页P36~P44以及P46~P47搬移至暂存区块600的数据页P0~P10中。具体来说,微处理器112可以读取特定区块500中的数据页的不安全数据页P36~P44以及P46~P47,并通过译码器134进行译码后,将译码后的数据写入到暂存区块600的数据页P0~P10(在假设都可以成功译码的情形下)。需注意的是,本实施例中是假设特定区块500内属于同一个字线组的数据页P36~P47都有存储数据,若是数据页P45是记忆装置100上电前最后一个写入的数据页,则数据页P46~P47便可判断是空白数据页而不需要搬移至暂存区块600中。
在闪存模块120的操作中,若是在有数据写入的区块中存在着包括大部分具有抹除位准(也就是说,图3所示的电压位准L1)的浮闸晶体管的数据页,则很有可能会造成相邻数据页的不稳定。在本实施例中,由于数据页P45是无法成功译码的数据页,因此其内部所存储的数据以及每一个浮闸晶体管的电压位准是属于无法确定的状态,因此,为了避免数据页P45内的大部分浮闸晶体管具有抹除位准,在步骤408中,微处理器112会刻意将随机数据或是其他数据重新写入到数据页P45中,以确保数据页P45内的大部分浮闸晶体管是具有写入位准(也就是说,图3所示的电压位准L2~L8)而非抹除位准。
由于在不正常断电的情形下与数据页P45归属于同一个字线组的数据页都有是不安全数据页,因此,若是数据页P45之后有属于同一个字线组、或甚至是下一个字线组内的空白数据页,因此在步骤410中微处理器112会将这些空白数据页都写入无效数据(dummydata),以使得整个特定区块500的数据质量能够更稳定。举例来说,假设数据页P45是最后一个写入的数据页,则微处理器112可以将数据页P46、P47写入无效数据,或甚至将下一个字线组所包括的数据页P48~P59也写入无效数据。
在步骤412中,考虑到特定区块500本身可能会因为不正常断电而处于不稳定状态,因此,微处理器112会将特定区块500关闭,并提升特定区块进行质量检测或是垃圾收集操作的优先顺序。具体来说,微处理器112可以将特定区块500在缓冲存储器116中所对应的一实体地址至逻辑地址映像表(physical address to logical address mapping table)内的数据整理后存储至闪存模块中,并将所述实体地址至逻辑地址映像表自缓冲存储器116中移除,来关闭特定区块500比避免微处理器112继续将来自主装置130的数据写入到特定区块500中。此外,微处理器112可以通过修改缓冲存储器116中的一表格或是一序列以提升特定区块500进行垃圾收集操作的优先顺序。举例来说,微处理器112可以在缓冲存储器116建立一个垃圾收集优先序列,并直接将特定区块500设定在其中;在另一例子中,缓冲存储器116内会存储一读取次数记录表,其中所述读取次数记录表记录了每一个区块被读取的次数,而微处理器112可以直接修改所述读取次数记录表以使得特定区块500具有很高的读取次数(例如,1万次);而由于闪存控制器110在空闲的时候会读取所述读取次数记录表以优先对具有高读取次数的区块进行质量侦测(因为高读取次数代表着区块可能有读取干扰而数据不稳定),因此,可以让特定区块500优先地被判断是否需要进行质量检测或是垃圾收集操作。
在一实施例中,在闪存控制器110后续空闲的时候,微处理器根据所述读取次数记录表以优先判断特定区块500是否需要进行垃圾收集操作,则此时若是微处理器112判断特定区块500内的有效数据页的数量很低时,则微处理器112便可以直接将特定区块500设为优先进行垃圾收集操作。另一方面,若是微处理器112判断特定区块500内的有效数据页的数量很高时,则微处理器112可以依序读取特定区块500内的每一个有效数据页,并判断其中的错误位数量、无法译码成功的数据页数量、临界电压漂移量、…等等区块质量因素以决定是否将特定区块500设为优先进行垃圾收集操作。举例来说,当区块500的数据质量很差时,微处理器112可以将特定区块500设为优先进行垃圾收集操作;而当区块500的数据质量符合标准时,则微处理器112则再次修改所述读取次数记录表以使得特定区块500具有较低的读取次数(例如,0次)。
简要归纳本发明,在本发明的闪存控制器及相关的管理方法中,闪存控制器上电之后仅将上电前最后写入的区块内的一部分数据搬移至另一暂存区块中,以加速电子装置的开机时间;此外,闪存控制器同时也会提升上电前最后写入的区块进行垃圾收集操作的优先顺序,以在闪存控制器空闲时优先对上电前最后写入的区块进行质量检测操作或是垃圾收集操作以确保数据的正确性。通过本发明可以在不延长电子装置开机时间的情形下,同时对不正常断电时正在写入的区块的内容进行保护。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (19)

1.一种闪存控制器,其中所述闪存控制器用来存取一闪存模块,所述闪存模块包括了多个区块,其特征在于,包括有:
一只读存储器,用来存储一程序代码;
一微处理器,用来执行所述程序代码以控制对所述闪存模块的存取;以及
一译码器;
其中当所述闪存控制器上电时,所述微处理器自所述闪存模块中一特定区块读取多个数据页中的数据,且所述译码器对所述多个数据页中的数据进行译码;以及当所述多个数据页中有任一数据页有发生无法成功译码的情形时,所述微处理器关闭所述特定区块,并提升所述特定区块进行质量检测或是垃圾收集操作的优先顺序。
2.如权利要求1所述的闪存控制器,其特征在于,所述特定区块是所述闪存模块上电前最后写入的区块,且所述多个数据页至少包括了所述特定区块中最后多个数据页。
3.如权利要求1所述的闪存控制器,其特征在于,当所述多个数据页中有任一数据页有发生无法成功译码的情形时,所述微处理器先在所述闪存模块开启一暂存区块,并将所述特定区块的所述多个数据页中可以成功译码的至少一部份数据页的数据搬移至所述暂存区块中。
4.如权利要求3所述的闪存控制器,其特征在于,所述闪存模块是一立体闪存模块,且所述微处理器仅将与无法成功译码的数据页属于同一字线组或是相邻字线组的可以成功译码的数据页的数据搬移至所述暂存区块中。
5.如权利要求1所述的闪存控制器,其特征在于,所述存储器控制器还包括了一缓冲存储器,所述微处理器修改所述缓冲存储器中的一表格或是一序列以提升所述特定区块进行质量检测或是垃圾收集操作的优先顺序。
6.如权利要求5所述的闪存控制器,其特征在于,所述表格记录了所述特定区块的一读取次数,以及所述微处理器修改所述读取次数以提升所述特定区块进行质量检测或是垃圾收集操作的优先顺序。
7.如权利要求1所述的闪存控制器,其特征在于,当所述多个数据页中有任一数据页有发生无法成功译码的情形时,所述微处理器对无法成功译码的数据页进行再次数据写入。
8.如权利要求7所述的闪存控制器,其特征在于,当所述多个数据页中有任一数据页有发生无法成功译码的情形时,所述微处理器对无法成功译码的数据页进行随机数据写入。
9.如权利要求1所述的闪存控制器,其特征在于,当所述多个数据页中有任一数据页有发生无法成功译码的情形时,所述微处理器将与无法成功译码的数据页属于同一字线组或是相邻字线组的空白数据页写入无效数据。
10.一种管理一闪存模块的方法,其中所述闪存模块包括了多个区块,以及所述方法的特征在于,包括有:
当所述闪存模块上电时,自所述闪存模块中一特定区块读取多个数据页中的数据;
对所述多个数据页中的数据进行译码;以及
当所述多个数据页中有任一数据页有发生无法成功译码的情形时,关闭所述特定区块,并提升所述特定区块进行质量检测或是垃圾收集操作的优先顺序。
11.如权利要求10所述的方法,其特征在于,所述特定区块是所述闪存模块上电前最后写入的区块,且所述多个数据页至少包括了所述特定区块中最后多个数据页。
12.如权利要求10所述的方法,其特征在于,还包括有:
当所述多个数据页中有任一数据页有发生无法成功译码的情形时,在所述闪存模块开启一暂存区块;以及
将所述特定区块的所述多个数据页中可以成功译码的至少一部份数据页的数据搬移至所述暂存区块中。
13.如权利要求12所述的方法,其特征在于,所述闪存模块是一立体闪存模块,且所述方法还包括有:
仅将与无法成功译码的数据页属于同一字线组或是相邻字线组的可以成功译码的数据页的数据搬移至所述暂存区块中。
14.如权利要求10所述的方法,其特征在于,提升所述特定区块进行垃圾收集操作的优先顺序的步骤包括有:
修改一缓冲存储器中的一表格或是一序列以提升所述特定区块进行质量检测或是垃圾收集操作的优先顺序。
15.如权利要求14所述的方法,其特征在于,所述表格记录了所述特定区块的一读取次数,且提升所述特定区块进行垃圾收集操作的优先顺序的步骤包括有:
修改所述读取次数以提升所述特定区块进行质量检测或是垃圾收集操作的优先顺序。
16.如权利要求10所述的方法,其特征在于,还包括有:
当所述多个数据页中有任一数据页有发生无法成功译码的情形时,对无法成功译码的数据页进行再次数据写入。
17.如权利要求16所述的方法,其特征在于,对无法成功译码的数据页进行再次数据写入的步骤包括有:
对无法成功译码的数据页进行随机数据写入。
18.如权利要求10所述的方法,其特征在于,还包括有:
当所述多个数据页中有任一数据页有发生无法成功译码的情形时,将与无法成功译码的数据页属于同一字线组或是相邻字线组的空白数据页写入无效数据。
19.一种电子装置,其特征在于,包括有:
一闪存模块,包括多个区块;以及
一闪存控制器,用来存取所述闪存模块;
其中当所述闪存控制器以及所述闪存模块上电时,所述闪存控制器自所述闪存模块中一特定区块读取多个数据页中的数据,并对所述多个数据页中的数据进行译码;以及当所述多个数据页中有任一数据页有发生无法成功译码的情形时,所述闪存控制器关闭所述特定区块,
并提升所述特定区块进行质量检测或是垃圾收集操作的优先顺序。
CN201910003603.XA 2018-11-07 2019-01-03 闪存控制器、管理闪存模块的方法及相关的电子装置 Active CN111159069B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW107139505 2018-11-07
TW107139505A TWI687930B (zh) 2018-11-07 2018-11-07 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置

Publications (2)

Publication Number Publication Date
CN111159069A true CN111159069A (zh) 2020-05-15
CN111159069B CN111159069B (zh) 2021-11-30

Family

ID=70459587

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910003603.XA Active CN111159069B (zh) 2018-11-07 2019-01-03 闪存控制器、管理闪存模块的方法及相关的电子装置

Country Status (3)

Country Link
US (1) US11113201B2 (zh)
CN (1) CN111159069B (zh)
TW (1) TWI687930B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114115706A (zh) * 2020-08-27 2022-03-01 慧荣科技股份有限公司 记忆装置、快闪存储器控制器及其存取方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200388242A1 (en) * 2019-06-05 2020-12-10 Novatek Microelectronics Corp. Timing controller device and data reading-writing method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101241471A (zh) * 2006-11-03 2008-08-13 三星电子株式会社 快闪存储器***及其垃圾收集方法
CN103577342A (zh) * 2012-07-25 2014-02-12 慧荣科技股份有限公司 管理闪存中所储存的数据的方法及相关记忆装置与控制器
US9946483B2 (en) * 2015-12-03 2018-04-17 Sandisk Technologies Llc Efficiently managing unmapped blocks to extend life of solid state drive with low over-provisioning
CN108255739A (zh) * 2016-12-28 2018-07-06 爱思开海力士有限公司 存储器***及其操作方法
CN108733578A (zh) * 2017-04-21 2018-11-02 慧荣科技股份有限公司 快闪存储器的垃圾回收断电回复方法及使用该方法的装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100377119C (zh) * 2003-06-20 2008-03-26 深圳市朗科科技有限公司 闪存介质中数据保护方法
US9170941B2 (en) * 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US9927999B1 (en) * 2016-09-09 2018-03-27 Western Digital Technologies, Inc. Trim management in solid state drives

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101241471A (zh) * 2006-11-03 2008-08-13 三星电子株式会社 快闪存储器***及其垃圾收集方法
CN103577342A (zh) * 2012-07-25 2014-02-12 慧荣科技股份有限公司 管理闪存中所储存的数据的方法及相关记忆装置与控制器
US9946483B2 (en) * 2015-12-03 2018-04-17 Sandisk Technologies Llc Efficiently managing unmapped blocks to extend life of solid state drive with low over-provisioning
CN108255739A (zh) * 2016-12-28 2018-07-06 爱思开海力士有限公司 存储器***及其操作方法
CN108733578A (zh) * 2017-04-21 2018-11-02 慧荣科技股份有限公司 快闪存储器的垃圾回收断电回复方法及使用该方法的装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114115706A (zh) * 2020-08-27 2022-03-01 慧荣科技股份有限公司 记忆装置、快闪存储器控制器及其存取方法

Also Published As

Publication number Publication date
US20200142835A1 (en) 2020-05-07
CN111159069B (zh) 2021-11-30
TWI687930B (zh) 2020-03-11
TW202018718A (zh) 2020-05-16
US11113201B2 (en) 2021-09-07

Similar Documents

Publication Publication Date Title
US10997065B2 (en) Memory system and operating method thereof
CN110147295B (zh) 存取闪存模块的方法、闪存控制器以及记忆装置
CN110837340B (zh) 闪存控制器、管理闪存模块的方法及相关的电子装置
CN109390027B (zh) 解码方法及相关的闪存控制器与电子装置
CN115658556A (zh) 管理闪存模块的方法及相关的闪存控制器与电子装置
CN111399751B (zh) 闪存控制器、管理闪存模块的方法及相关的电子装置
CN111159069B (zh) 闪存控制器、管理闪存模块的方法及相关的电子装置
US10809943B2 (en) Data processing method for improving utilization rate and program time after sudden power off event and associated data storage device
TWI720852B (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
CN111488118B (zh) 管理闪存模块的方法及相关的闪存控制器与电子装置
CN111951855A (zh) 存取闪存模块的方法及相关的闪存控制器与记忆装置
CN111475426B (zh) 管理闪存模块的方法及相关的闪存控制器与电子装置
TWI769100B (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
US11687290B1 (en) Method for improve read disturbance phenomenon of flash memory module and associated flash memory controller and electronic device
TWI837829B (zh) 存取快閃記憶體模組的方法與相關的快閃記憶體控制器及記憶裝置
TWI823649B (zh) 快閃記憶體控制器的控制方法、快閃記憶體控制器以及電子裝置
TWI781886B (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
TWI691967B (zh) 解碼方法及相關的快閃記憶體控制器與電子裝置
TW202343241A (zh) 用以存取一快閃記憶體模組的方法、快閃記憶體控制器以及電子裝置
CN112214348A (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