CN116737059A - 快闪存储器控制器的控制方法、快闪存储器控制器以及电子装置 - Google Patents

快闪存储器控制器的控制方法、快闪存储器控制器以及电子装置 Download PDF

Info

Publication number
CN116737059A
CN116737059A CN202310172792.XA CN202310172792A CN116737059A CN 116737059 A CN116737059 A CN 116737059A CN 202310172792 A CN202310172792 A CN 202310172792A CN 116737059 A CN116737059 A CN 116737059A
Authority
CN
China
Prior art keywords
program code
read
flash memory
block
code set
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
CN202310172792.XA
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 CN116737059A publication Critical patent/CN116737059A/zh
Pending legal-status Critical Current

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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • 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
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/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/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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/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
    • 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/7206Reconfiguration of flash memory system
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

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

Abstract

本发明涉及一快闪存储器控制器的控制方法、快闪存储器控制器以及电子装置。该控制器用以存取一快闪存储器模块,快闪存储器模块包含多个平面,每一个平面包含有多个区块,该快闪存储器控制器的控制方法包含:在启动快闪存储器控制器之后,自多个区块的一特定区块读取一第一程序码组;将第一程序码组储存至一缓冲存储器;执行第一程序码组以管理快闪存储器模块;因应快闪存储器控制器开始一程序码组交换操作,尝试自一超级区块读取一第二程序码组;倘若成功地读取第二程序码组的话,则将第二程序码组储存至缓冲存储器中以替换第一程序码组;以及执行第二程序码组以管理快闪存储器模块。

Description

快闪存储器控制器的控制方法、快闪存储器控制器以及电子 装置
技术领域
本发明有关于快闪存储器控制器,且尤指一种用以管理多个程序码组(codebank)的方法,其能够增加该多个程序码组的强健性(robustness)并且增加交换(swap)该多个程序码组的速度。
背景技术
在现有的一快闪存储器系统中,包含有一系统内程序码(in-system programmingcode,ISP code)的一程序码组通常被储存在一快闪存储器模块的一特定区块中,当启动一快闪存储器控制器时,该快闪存储器控制器会自该特定区块读取该系统内程序码并且将该系统内程序码写入至该快闪存储器控制器的一缓冲器中,以供后续使用,然而,由于该缓冲器的容量的限制,并且当该快闪存储器控制器的固件被更新时,该系统内程序码的大小会越来越大,因此该系统内程序码可能会被划分成多个程序码组,并且该快闪存储器控制器内的该缓冲器仅会储存单一程序码组,当该系统内程序码被划分成多个程序码组时,每一个程序码组仅包含有部分功能,并且该快闪存储器控制器可能需要自该快闪存储器模块加载所需的程序码组以替换储存在该缓冲器中的现有程序码组,因此,由于该快闪存储器控制器会基于将要被使用的所需功能来交换该多个程序码组,因此储存着该多个程序码组的该特定区块会被读取多次,其导致读取干扰(read disturbance)并且影响数据品质。
发明内容
因此,本发明的目的之一在于提供一种用以管理多个程序码组的方法,其能够增加该多个程序码组的强健性并且增加交换该多个程序码组的速度,以解决上述问题。
根据本发明一实施例,提供了一种快闪存储器控制器的控制方法,其中该快闪存储器控制器用以存取一快闪存储器模块,快闪存储器模块包含有多个平面,每一个平面包含有多个区块,并且每一个区块包含有多个页面;以及该控制方法包含有:在启动快闪存储器控制器之后,自多个区块的一特定区块读取一第一程序码组;将第一程序码组储存至一缓冲存储器;执行第一程序码组以管理快闪存储器模块;因应快闪存储器控制器开始一程序码组交换操作,尝试自一超级区块读取一第二程序码组,其中超级区块包含有分别位于至少两个平面中的多个区块;倘若成功地读取第二程序码组的话,则将第二程序码组储存至缓冲存储器中以替换第一程序码组;以及执行第二程序码组以管理快闪存储器模块。
根据本发明另一实施例,提供了一种快闪存储器控制器,其中该快闪存储器控制器用以存取一快闪存储器模块,快闪存储器模块包含有多个平面,每一个平面包含有多个区块,并且每一个区块包含有多个页面。该快闪存储器控制器包含有一只读存储器以及一微处理器,其中只读存储器用以储存一程序码,以及微处理器用以执行程序码以控制快闪存储器模块的存取。微处理器另用以:在启动快闪存储器控制器之后,自多个区块的一特定区块读取一第一程序码组;将第一程序码组储存至一缓冲存储器;执行第一程序码组以管理快闪存储器模块;因应快闪存储器控制器开始一程序码组交换操作,尝试自一超级区块读取一第二程序码组,其中超级区块包含有分别位于至少两个平面中的多个区块;倘若成功地读取第二程序码组的话,则将第二程序码组储存至缓冲存储器中以替换第一程序码组;以及执行第二程序码组以管理快闪存储器模块。
根据本发明另一实施例,提供了一种电子装置,其中该电子装置包含有一快闪存储器模块以及一快闪存储器控制器。快闪存储器模块包含有多个平面,每一个平面包含有多个区块,并且每一个区块包含有多个页面。快闪存储器控制器用以:在启动快闪存储器控制器之后,自多个区块的一特定区块读取一第一程序码组;将第一程序码组储存至一缓冲存储器;执行第一程序码组以管理快闪存储器模块;因应快闪存储器控制器开始一程序码组交换操作,尝试自一超级区块读取一第二程序码组,其中超级区块包含有分别位于至少两个平面中的多个区块;倘若成功地读取第二程序码组的话,则将第二程序码组储存至缓冲存储器中以替换第一程序码组;以及执行第二程序码组以管理快闪存储器模块。
本发明的好处之一在于,在本发明的实施例中,藉由安排在特定区块以及超级区块中的多个程序码组,并且利用储存于超级区块中的程序码组以供程序码组交换操作使用,如此一来可以大量减少特定区块的读取计数并且可以改善特定区块的读取干扰,此外,由于程序码组被依序地储存于特定区块中,而程序码组被平行地储存于超级区块中,因此自超级区块读取程序码组的速度快于自特定区块读取程序码组的速度,亦即,增加了交换程序码组的速度。
附图说明
图1为依据本发明一实施例的电子装置的示意图。
图2为依据本发明一实施例的快闪存储器模块的一区块的示意图。
图3为依据本发明一实施例的储存在快闪存储器模块中的多个程序码组的示意图。
图4为依据本发明一实施例的储存在特定区块中的系统内程序码的示意图。
图5为依据本发明一实施例的自特定区块复制至超级区块的系统内程序码的示意图。
图6为依据本发明一实施例的快闪存储器模块以及快闪存储器控制器的控制方法的流程图。
图7为依据本发明一实施例的错误处理机制的示意图。
【符号说明】
100:电子装置
110:快闪存储器控制器
112:微处理器
112C:程序码
112M:只读存储器
114:控制逻辑
116:缓冲存储器
118:接口逻辑
120:快闪存储器模块
130:主机装置
132:编码器
134:解码器
200,B0,B1,B2:区块
202:浮闸晶体管
BL1~BL3:位元线
WL0,WL1,WL2,WL4,WL5,WL6:字元线
310_1~310_N:快闪存储器芯片
312_1~312_N,314_1~314_N:平面
350,360:超级区块
P0~P7:页面
CB11~CB14:第一程序码组
CB21~CB24第二程序码组
510,520:超级页面
600~620,700~716:步骤
具体实施方式
图1为依据本发明一实施例的电子装置100的示意图。电子装置100可包含有快闪存储器控制器110以及快闪存储器模块120,快闪存储器控制器110可用以存取快闪存储器模块120,根据本实施例,快闪存储器控制器110可包含有微处理器112、只读存储器(read-only memory,ROM)112M、控制逻辑(control logic)114、缓冲器电路116以及接口逻辑(interface logic)118,只读存储器112M可用以储存程序码112C,并且微处理器112可用以执行程序码112C以控制快闪存储器模块120的存取,控制逻辑114可包含有编码器132以及解码器134,其中编码器132可用以编码写入至快闪存储器模块120的数据,以产生相对应的检查码(check code;亦即错误校正码(error correction code,ECC)),并且解码器134可用以解码自快闪存储器模块120读取的数据。
在一般情况中,快闪存储器模块120可包含有多个快闪存储器芯片,并且每一个快闪存储器芯片可包含有多个区块,快闪存储器控制器110可对快闪存储器模块120进行一基于区块的抹除(erase)操作,此外,一区块可记录特定数量的页面(page),其中快闪存储器控制器110可对快闪存储器模块120进行一基于页面的写入操作。在此实施例中,快闪存储器模块120可以是一3D反及闸型(3D-NAND type)快闪存储器模块,但是本发明不以此为限。
具体上来说,透过微处理器112执行程序码112C,快闪存储器控制器110可利用其本身内部的元件来进行许多控制操作,举例来说,快闪存储器控制器110可利用控制逻辑114来控制快闪存储器模块120的存取(尤其是,至少一区块或至少一页面的存取),利用缓冲存储器116来进行所需的缓冲操作,以及利用接口逻辑118来与主机装置130进行通讯。缓冲存储器116可藉由随机存取存储器(random access memory,RAM)来实现,举例来说,缓冲存储器116可以是一静态随机存取存储器(static random access memory,SRAM),但是本发明不以此为限。
在一实施例中,电子装置100可以是可携式存储器装置(例如符合SD/MMC、CF、MS以及XD规范之其一的一记忆卡),并且主机装置130可以是能够连接至电子装置100的另一电子装置(例如手机、膝上型电脑以及桌上型电脑)。在另一实施例中,电子装置100可以是一固态硬碟(solid state drive,SSD)或符合通用快闪储存(universal flash storage,UFS)或嵌入式多媒体卡(embedded multi media card,eMMC)规范的一嵌入式存储器装置,并且可被安装至手机、膝上型电脑或桌上型电脑中,此时,主机装置130可以是手机的处理器、膝上型电脑的处理器或桌上型电脑的处理器。
图2为依据本发明一实施例的快闪存储器模块120的一区块200的示意图,其中快闪存储器模块120可以是一3D反及闸型快闪存储器模块。如图2所示,区块200可包含有多个存储器单元(memory cell),诸如图2所示的浮闸晶体管(floating gate transistor)202或其它电荷捕捉元件(charge trapping component),一3D反及闸型快闪存储器架构可透过多个位元线(bit line;在图2中仅绘示位元线BL1~位元线BL3)以及多个字元线(wordline;在图2中仅绘示字元线WL0~字元线WL2以及字元线WL4~字元线WL6)来形成,以图2中最上方平面为例,在字元线WL0上的所有浮闸晶体管形成至少一页面、在字元线WL1上的所有浮闸晶体管形成至少另一页面以及在字元线WL2上的所有浮闸晶体管形成至少再另一页面,以此类推。此外,字元线WL0与页面(例如逻辑页面(logic page))之间的定义可以根据快闪存储器的写入方法而有所变化,详细地来说,当利用单层单元(single-level cell,SLC)的方式来储存数据时,在字元线WL0上的所有浮闸晶体管仅对应到单一逻辑页面;当利用多层单元(multi-level cell,MLC)的方式来储存数据时,在字元线WL0上的所有浮闸晶体管对应到两个逻辑页面;当利用三层单元(triple-level cell,TLC)的方式来储存数据时,在字元线WL0上的所有浮闸晶体管对应到三个逻辑页面;以及当利用四层单元(quad-level cell,QLC)的方式来储存数据时,在字元线WL0上的所有浮闸晶体管对应到四个逻辑页面。3D反及闸型快闪存储器架构以及字元线与页面之间的关系已为本领域具有通常知识者所熟知,为了简洁起见,在此不再重复描述相关细节。
此外,快闪存储器模块120可储存一系统内程序码(in-system programmingcode,ISP code),并且该系统内程序码可作为一固件码以供快闪存储器控制器110来加载与执行。具体上来说,当启动电子装置100时,快闪存储器控制器110内的微处理器112会读取只读存储器112M内的程序码112C,以初始化电子装置100以及进行某些基本操作。在执行程序码112C之后,快闪存储器控制器110可自快闪存储器模块120内的一特定区块读取部分的系统内程序码,接着执行该部分的系统内程序码来控制与管理快闪存储器模块120,如先前技术中所述,系统内程序码可能被划分成多个程序码组(code bank),并且由于缓冲存储器116的大小限制(例如缓冲存储器116为128KB,其中2个64KB的程序码组或4个32KB的程序码组可以被储存在缓冲存储器116中),快闪存储器控制器110仅可加载该多个程序码组中一部分的程序码组,因此快闪存储器控制器110需要根据将要使用的所需功能来交换(swap)该多个程序码组,在此情况下,储存该多个程序码组的该特定区块会被频繁地读取,其导致读取干扰(read disturbance)以及影响数据品质,为了解决此问题,本发明提供了该多个程序码组的一种排列(arrangement)以及加载该多个程序码组的方法,以增加该多个程序码组的强健(robustness)以及增加交换该多个程序码组的速度。
具体上来说,图3为依据本发明一实施例的储存在快闪存储器模块120中的多个程序码组的示意图。如图3所示,快闪存储器模块120可包含有多个快闪存储器芯片310_1~310_N,并且快闪存储器芯片310_1~310_N的每一个快闪存储器芯片可以被划分成多个平面,诸如2个平面或4个平面。在本实施例中,每一个快闪存储器芯片具有2个平面,亦即,快闪存储器芯片310_1具有2个平面312_1与314_1,以及快闪存储器芯片310_N具有2个平面312_N与314_N,此外,每一个平面具有多个区块,平面312_1的区块B0作为该特定区块来储存该系统内程序码(例如该多个程序码组),并且快闪存储器控制器110将在快闪存储器模块120中属于不同平面的部分其它区块配置于一超级区块(super block)中,以便于数据存取的管理。具体上来说,作为该特定区块的平面312_1的区块B0不属于任一个超级区块,亦即,快闪存储器控制器110可藉由利用单平面读取操作(one-plane-read operation)来读取区块B0,快闪存储器控制器110可将所有平面312_1、314_1、…、312_N以及314_N的区块B1配置成一超级区块350,并且将所有平面312_1、314_1、…、312_N以及314_N的区块B2配置成一超级区块360,以此类推。超级区块350/360可包含有多个实体区块,并且当存取超级区块350/360时,快闪存储器控制器110将超级区块350/360视为一正常区块,举例来说,超级区块350/360本身是一抹除单元,亦即,虽然超级区块350/360的多个区块B1/B2可以被分别地被抹除,但是快闪存储器控制器110必须一起抹除所有的区块B1/B2,此外,超级区块是由快闪存储器控制器110所设置的一逻辑区块,以便于储存空间的管理,并且不是一实体区块,此外,快闪存储器控制器110可以藉由多平面读取操作(multi-plane-read operation)来读取超级区块350/360。
在一实施例中,超级区块350/360支援垃圾回收(garbage collection)机制,亦即,快闪存储器控制器110可根据某些资讯(例如超级区块350/360的数据品质或超级区块350/360的读取计数)来判断是否对超级区块350/360进行垃圾回收操作;然而,区块B0不支援垃圾回收机制,亦即,快闪存储器控制器110不会将区块B0添加至一垃圾回收伫列(queue)中。在一实施例中,超级区块350/360可具有容错式磁碟阵列(redundant array ofindependent disks,RAID)机制,亦即,倘若快闪存储器控制器110没有成功地读取超级区块350的一区块的话,则快闪存储器控制器110可读取超级区块350的其它区块以恢复(recovery)该区块的数据;然而,由于区块B0不属于任一个超级区块,因此倘若区块B0没办法读取的话,则快闪存储器控制器110无法利用容错式磁碟阵列机制来恢复区块B0的数据。
此外,可利用一个或多个超级区块来储存管理资讯,诸如逻辑至实体地址映射表、实体至逻辑地址映射表以及其它表,并且用以储存该些表的超级区块可以被命名为超区块(meta block)。在本实施例中,快闪存储器控制器110可将区块B0中的该系统内程序码复制至超级区块350,亦即,快闪存储器控制器110可利用单平面读取操作来自区块B0读取该系统内程序码,并且亦可利用多平面读取操作来自超级区块350读取该系统内程序码。
图4为依据本发明一实施例的储存在区块B0中的系统内程序码的示意图。如图4所示,假设系统内程序码被划分成2个程序码组,一第一程序码组被储存于多个页面P0~P3中(亦即CB11~CB14),以及一第二程序码组被储存于多个页面P4~P7中(亦即CB21~CB24)。图5为依据本发明一实施例的自区块B0复制至超级区块350的系统内程序码的示意图。如图5所示,CB11~CB14分别被写入至平面312_1的区块B1的页面P0、平面314_1的区块B1的页面P0、平面312_2的区块B1的页面P0以及平面314_2的区块B1的页面P0中,其中该些平面的页面P0形成一超级页面510;以及CB21~CB24分别被写入至平面312_1的区块B1的页面P1、平面314_1的区块B1的页面P1、平面312_2的区块B1的页面P1以及平面314_2的区块B1的页面P1中,其中该些平面的页面P1形成一超级页面520。超级页面510/520可包含有多个实体页面,并且当存取超级页面510/520时,快闪存储器控制器110将超级页面510/520视为一正常页面,举例来说,超级页面510/520本身是一写入单元,此外,超级页面510/520是由快闪存储器控制器110所设置的一逻辑页面以便于储存空间的管理,并不是一个实体页面。
在一实施例中,倘若解码器134支援容错式磁碟阵列机制的话,则超级页面510/520可另具有一校验页面(parity page),举例来说,超级页面510可具有5个页面,其中该5个页面包含有CB11~CB14以及一校验页面。
图6为依据本发明一实施例的快闪存储器模块120以及快闪存储器控制器110的控制方法的流程图。
在步骤600中,流程开始,启动电子装置100,并且微处理器112自只读存储器112M加载程序码112C。
在步骤602中,微处理器112执行程序码112C以自区块B0读取多个程序码组的其中一个程序码组,并且将该程序码组储存至缓冲存储器116中,举例来说,微处理器112可读取区块B0的多个页面P0~P3以取得第一程序码组CB11~CB14,并且将第一程序码组CB11~CB14储存至缓冲存储器116中,此时,由于缓冲存储器116的大小限制,因此其它程序码组(例如第二程序码组CB21~CB24)不会被加载。
在步骤604中,已经完成初始化过程,并且微处理器112可执行第一程序码组CB11~CB14(例如固件)以管理快闪存储器模块120。
在步骤606中,微处理器112判断是否需要交换程序码组,如果是,流程进入步骤608;如果否,流程待在步骤606。具体上来说,由于第一程序码组CB11~CB14的功能不同于第二程序码组CB21~CB24的功能,因此倘若微处理器112需要进行对应于第二程序码组CB21~CB24的操作的话,则微处理器112需要自快闪存储器模块120加载第二程序码组CB21~CB24,以替换暂时地储存在缓冲存储器116中的第一程序码组CB11~CB14。
在步骤608中,微处理器112参考一超指标(meta pointer)以判断超级区块350(亦即超区块)是否具有待交换的第二程序码组CB21~CB24,如果是,流程进入步骤616;如果否,流程进入步骤610。
在步骤610中,微处理器112读取区块B0的多个页面P4~P7以取得第二程序码组CB21~CB24,并且将第二程序码组CB21~CB24储存至缓冲存储器116中,此时,第一程序码组CB11~CB14自缓冲存储器116被移除。
在步骤612中,微处理器112自缓冲存储器116读取第二程序码组CB21~CB24,并且将第二程序码组CB21~CB24写入至超级区块350中。
在步骤614中,完成程序码组交换操作,并且流程回到步骤606以判断是否需要交换程序码组。
在步骤616中,微处理器112尝试自超级区块350的超级页面520读取第二程序码组CB21~CB24。
在步骤618中,微处理器112判断是否成功地自超级区块350读取第二程序码组CB21~CB24,如果是,流程进入步骤620;如果否,流程进入步骤610。
在步骤620中,微处理器112判断储存于超级页面520中的数据是否不稳定,如果是,流程进入步骤612;如果否,流程进入步骤614。具体上来说,微处理器112可根据一解码步骤或一位元错误计数来判断储存于超级页面520中的数据是否不稳定,举例来说,倘若解码器134无法利用一硬解码(hard decode)来解码自超级页面520读取的数据以取得第二程序码组CB21~CB24的话,则微处理器112可判断储存于超级页面520中的数据是不稳定的。又例如,倘若自超级页面520读取的数据的位元错误计数大于一门槛(threshold)的话,则微处理器112可判断储存于超级页面520中的数据是不稳定的。
在图6所示的实施例中,由于区块B0仅于初始化过程期间以及当无法自超级区块350读取程序码组时才会被读取,因此可以大量减少区块B0的读取计数,并且可以改善区块B0的读取干扰,此外,由于快闪存储器控制器110可藉由利用垃圾回收机制、读取重试(readretry)机制及/或容错式磁碟阵列解码机制来管理超级区块350,因此区块B0无法读取的情况很少见,此外,由于第一程序码组/第二程序码组被依序地储存于区块B0中,而第一程序码组/第二程序码组被平行地储存于超级页面510中,因此自超级页面510/520读取第一程序码组/第二程序码组的速度比自区块B0读取第一程序码组/第二程序码组的速度快大约4倍,亦即,本实施例可以增加交换程序码组的速度。
在一实施例中,针对步骤618,倘若解码器134无法成功地利用一预设读取机制来自超级区块350读取第二程序码组CB21~CB24的话,则微处理器112以及解码器134进入一错误处理机制以判断是否可以成功地自超级区块350读取第二程序码组CB21~CB24,并且解码器134参考一设置来判断是否利用硬解码(hard decoding)方法、软解码方法(softdecoding)及/或容错式磁碟阵列解码方法来重试解码步骤。在本实施例中,硬解码方法可以是一BCH(Bose-Chaudhuri-Hocquenghem)解码方法或一低密度奇偶检查(low-density-parity-check,LDPC)解码方法,而软解码方法可以是低密度奇偶检查解码方法,用以解码藉由利用预定读取电压以及调整后读取电压而取得的读出资讯(readout information)。具体上来说,参考图7,图7为依据本发明一实施例的错误处理机制的示意图。
在步骤700中,流程开始并且进入错误处理机制。
在步骤702中,微处理器112判断该设置是否指示略过硬解码方法,如果是,流程进入步骤706;如果否,流程进入步骤704。
在步骤704中,解码器134利用硬解码方法来解码自超级区块350读取的数据,并且解码器134判断该数据是否可以成功地被解码,如果是,流程进入步骤716;如果否,流程进入步骤706。
在步骤706中,微处理器112判断该设置是否指示略过软解码方法,如果是,流程进入步骤710;如果否,流程进入步骤708。
在步骤708中,解码器134利用软解码方法来解码自超级区块350读取的数据,并且解码器134判断该数据是否可以成功地被解码,如果是,流程进入步骤716;如果否,流程进入步骤710。
在步骤710中,微处理器112判断该设置是否指示略过容错式磁碟阵列解码方法,如果是,流程进入步骤714;如果否,流程进入步骤712。
在步骤712中,解码器134利用容错式磁碟阵列解码方法来解码自超级区块350读取的数据,并且解码器134判断该数据是否可以成功地被解码,如果是,流程进入步骤716;如果否,流程进入步骤714。
在步骤714中,微处理器112判断无法成功地自超级区块350读取该程序码组,并且为微处理器112设置一程序码组失败旗标(fail flag)以自区块B0读取该程序码组,并且将该程序码组写入至超级区块350中。
在步骤716中,微处理器112判断可以成功地自超级区块350读取该程序码组,并且为微处理器112设置一程序码组风险旗标(risky flag)以判断储存于超级区块350中的该程序码组是否不稳定。
在一实施例中,由于软解码方法需要利用额外的电压来读取存储器单元,并且容错式磁碟阵列解码方法需要读取在其它平面中的校验页面,因此该设置可略过这两个解码方法以增加交换程序码组的速度。在一实施例中,硬解码方法亦可以被略过以进一步地改善速度。
总结来说,在本发明的实施例中,藉由安排在特定区块以及超级区块中的多个程序码组,并且利用储存于超级区块中的程序码组以供程序码组交换操作使用,如此一来可以大量减少特定区块的读取计数并且可以改善特定区块的读取干扰,此外,由于程序码组被依序地储存于特定区块中,而程序码组被平行地储存于超级区块中,因此自超级区块读取程序码组的速度快于自特定区块读取程序码组的速度,亦即,增加了交换程序码组的速度。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

Claims (18)

1.一种快闪存储器控制器的控制方法,其中该快闪存储器控制器系用以存取一快闪存储器模块,该快闪存储器模块包含有多个平面,每一个平面包含有多个区块,并且每一个区块包含有多个页面;以及该控制方法包含有:
在启动该快闪存储器控制器之后,自该多个区块的一特定区块读取一第一程序码组;
将该第一程序码组储存至一缓冲存储器;
执行该第一程序码组以管理该快闪存储器模块;
因应该快闪存储器控制器开始一程序码组交换操作,尝试自一超级区块读取一第二程序码组,其中该超级区块包含有分别位于至少两个平面中的多个区块;
倘若成功地读取该第二程序码组的话,则将该第二程序码组储存至该缓冲存储器中以替换该第一程序码组;以及
执行该第二程序码组以管理该快闪存储器模块。
2.如权利要求1所述的控制方法,其特征在于,自该多个区块的该特定区块读取该第一程序码组的步骤包含有:
利用一单平面读取操作来自该特定区块读取该第一程序码组;以及
自该超级区块读取该第二程序码组的步骤包含有:
利用一多平面读取操作来自该超级区块读取该第二程序码组。
3.如权利要求1所述的控制方法,其特征在于,另包含有:
倘若没有成功地自该超级区块读取该第二程序码组的话,则自该特定区块读取该第二程序码组。
4.如权利要求3所述的控制方法,其特征在于,另包含有:
在自该特定区块读取该第二程序码组之后,将自该特定区块读取的该第二程序码组写入至该超级区块中。
5.如权利要求1所述的控制方法,其特征在于,另包含有:
倘若成功地自该超级区块读取该第二程序码组的话,则判断储存在该超级区块中的数据是否不稳定;以及
倘若储存在该超级区块中的该数据不稳定的话,则自该特定区块读取该第一程序码组以及该第二程序码组,并且将自该特定区块读取的该第一程序码组以及该第二程序码组写入至该超级区块中。
6.如权利要求1所述的控制方法,其特征在于,尝试自该超级区块读取该第二程序码组的步骤包含有:
利用一预设读取机制来自该超级区块读取该第二程序码组;以及
倘若没有成功地利用该预设读取机制来自该超级区块读取该第二程序码组的话,则参考一设置以另利用一硬解码方法、一第二解码方法及一容错式磁碟阵列解码方法中的至少其一来解码自该超级区块读取的该第二程序码组。
7.一种快闪存储器控制器,其中该快闪存储器控制器用以存取一快闪存储器模块,该快闪存储器模块包含有多个平面,每一个平面包含有多个区块,并且每一个区块包含有多个页面;以及该快闪存储器控制器包含有:
一只读存储器,用以储存一程序码;
一微处理器,用以执行该程序码以控制该快闪存储器模块的存取;
其中该微处理器用以:
在启动该快闪存储器控制器之后,自该多个区块的一特定区块读取一第一程序码组;
将该第一程序码组储存至一缓冲存储器;
执行该第一程序码组以管理该快闪存储器模块;
因应该快闪存储器控制器开始一程序码组交换操作,尝试自一超级区块读取一第二程序码组,其中该超级区块包含有分别位于至少两个平面中的多个区块;
倘若成功地读取该第二程序码组的话,则将该第二程序码组储存至该缓冲存储器中以替换该第一程序码组;以及
执行该第二程序码组以管理该快闪存储器模块。
8.如权利要求7所述的快闪存储器控制器,其中自该多个区块的该特定区块读取该第一程序码组的步骤包含有:
利用一单平面读取操作来自该特定区块读取该第一程序码组;以及
自该超级区块读取该第二程序码组的步骤包含有:
利用一多平面读取操作来自该超级区块读取该第二程序码组。
9.如权利要求7所述的快闪存储器控制器,其特征在于,该微处理器另用以:
倘若没有成功地自该超级区块读取该第二程序码组的话,则自该特定区块读取该第二程序码组。
10.如权利要求9所述的快闪存储器控制器,其特征在于,该微处理器另用以:
在自该特定区块读取该第二程序码组之后,将自该特定区块读取的该第二程序码组写入至该超级区块中。
11.如权利要求7所述的快闪存储器控制器,其特征在于,该微处理器另用以:
倘若成功地自该超级区块读取该第二程序码组的话,则判断储存在该超级区块中的数据是否不稳定;以及
倘若储存在该超级区块中的该数据不稳定的话,则自该特定区块读取该第一程序码组以及该第二程序码组,并且将自该特定区块读取的该第一程序码组以及该第二程序码组写入至该超级区块中。
12.如权利要求7所述的快闪存储器控制器,其特征在于,尝试自该超级区块读取该第二程序码组的步骤包含有:
利用一预设读取机制来自该超级区块读取该第二程序码组;以及
倘若没有成功地利用该预设读取机制来自该超级区块读取该第二程序码组的话,则参考一设置以另利用一硬解码方法、一第二解码方法及一容错式磁碟阵列解码方法中的至少其一来解码自该超级区块读取的该第二程序码组。
13.一种电子装置,包含有:
一快闪存储器模块,其中该快闪存储器模块包含有多个平面,每一个平面包含有多个区块,并且每一个区块包含有多个页面;以及
一快闪存储器控制器,用以:
在启动该快闪存储器控制器之后,自该多个区块的一特定区块读取一第一程序码组;
将该第一程序码组储存至一缓冲存储器;
执行该第一程序码组以管理该快闪存储器模块;
因应该快闪存储器控制器开始一程序码组交换操作,尝试自一超级区块读取一第二程序码组,其中该超级区块包含有分别位于至少两个平面中的多个区块;
倘若成功地读取该第二程序码组的话,则将该第二程序码组储存至该缓冲存储器中以替换该第一程序码组;以及
执行该第二程序码组以管理该快闪存储器模块。
14.如权利要求13所述的电子装置,其特征在于,中自该多个区块的该特定区块读取该第一程序码组的步骤包含有:
利用一单平面读取操作来自该特定区块读取该第一程序码组;以及
自该超级区块读取该第二程序码组的步骤包含有:
利用一多平面读取操作来自该超级区块读取该第二程序码组。
15.如权利要求13所述的电子装置,其特征在于,该快闪存储器控制器另用以:
倘若没有成功地自该超级区块读取该第二程序码组的话,则自该特定区块读取该第二程序码组。
16.如权利要求15所述的电子装置,其特征在于,该快闪存储器控制器另用以:
在自该特定区块读取该第二程序码组之后,将自该特定区块读取的该第二程序码组写入至该超级区块中。
17.如权利要求13所述的电子装置,其特征在于,中该快闪存储器控制器另用以:
倘若成功地自该超级区块读取该第二程序码组的话,则判断储存在该超级区块中的数据是否不稳定;以及
倘若储存在该超级区块中的该数据不稳定的话,则自该特定区块读取该第一程序码组以及该第二程序码组,并且将自该特定区块读取的该第一程序码组以及该第二程序码组写入至该超级区块中。
18.如权利要求13所述的电子装置,其特征在于,尝试自该超级区块读取该第二程序码组的步骤包含有:
利用一预设读取机制来自该超级区块读取该第二程序码组;以及
倘若没有成功地利用该预设读取机制来自该超级区块读取该第二程序码组的话,则参考一设置以另利用一硬解码方法、一第二解码方法及一容错式磁碟阵列解码方法中的至少其一来解码自该超级区块读取的该第二程序码组。
CN202310172792.XA 2022-03-10 2023-02-27 快闪存储器控制器的控制方法、快闪存储器控制器以及电子装置 Pending CN116737059A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/692,121 2022-03-10
US17/692,121 US11809748B2 (en) 2022-03-10 2022-03-10 Control method of flash memory controller and associated flash memory controller and electronic device

Publications (1)

Publication Number Publication Date
CN116737059A true CN116737059A (zh) 2023-09-12

Family

ID=87905029

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310172792.XA Pending CN116737059A (zh) 2022-03-10 2023-02-27 快闪存储器控制器的控制方法、快闪存储器控制器以及电子装置

Country Status (3)

Country Link
US (1) US11809748B2 (zh)
CN (1) CN116737059A (zh)
TW (1) TWI823649B (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI410793B (zh) 2007-12-28 2013-10-01 Asustek Comp Inc 電腦系統及其基本輸入輸出系統的偵錯方法與開機方法
US10180805B2 (en) 2015-03-25 2019-01-15 SK Hynix Inc. Memory system and operating method thereof
TWI771151B (zh) 2016-04-27 2022-07-11 慧榮科技股份有限公司 快閃記憶體裝置及快閃記憶體儲存管理方法
US10387243B2 (en) 2017-12-08 2019-08-20 Macronix International Co., Ltd. Managing data arrangement in a super block
TWI693518B (zh) * 2019-01-16 2020-05-11 慧榮科技股份有限公司 資料儲存裝置及避免韌體失效之方法
KR20200132171A (ko) 2019-05-15 2020-11-25 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 장치

Also Published As

Publication number Publication date
US11809748B2 (en) 2023-11-07
TW202336596A (zh) 2023-09-16
TWI823649B (zh) 2023-11-21
US20230289098A1 (en) 2023-09-14

Similar Documents

Publication Publication Date Title
CN109783009B (zh) 存储器系统及其操作方法
US9047972B2 (en) Methods, devices, and systems for data sensing
JP5585919B2 (ja) 電源遮断管理
CN109390027B (zh) 解码方法及相关的闪存控制器与电子装置
CN110389906B (zh) 存储器元件中重新编排数据的方法、及其控制器与系统
CN111399751B (zh) 闪存控制器、管理闪存模块的方法及相关的电子装置
US11169871B2 (en) Data storage device and operating method thereof
CN114253465A (zh) 存储器系统及其操作方法
CN113936721A (zh) 存储器系统、存储器装置和操作存储器装置的方法
CN113903383A (zh) 存储装置、快闪存储器控制器及其存取方法
CN111488118B (zh) 管理闪存模块的方法及相关的闪存控制器与电子装置
CN111159069B (zh) 闪存控制器、管理闪存模块的方法及相关的电子装置
CN113495801A (zh) 存取闪存模块的方法及相关的闪存控制器与电子装置
US11487655B2 (en) Method for managing flash memory module and associated flash memory controller and electronic device based on timing of dummy read operations
US11467903B2 (en) Memory system and operating method thereof
KR20190068197A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
TWI823649B (zh) 快閃記憶體控制器的控制方法、快閃記憶體控制器以及電子裝置
CN114530173A (zh) 存储器系统及其操作方法
US11687290B1 (en) Method for improve read disturbance phenomenon of flash memory module and associated flash memory controller and electronic device
TWI811130B (zh) 用以存取一快閃記憶體模組的方法、快閃記憶體控制器以及電子裝置
US11249676B2 (en) Electronic device, flash memory controller and associated control method
US20240004566A1 (en) Memory system for managing namespace using write pointer and write count, memory controller, and method for operating memory system
CN117762819A (zh) 存取快闪存储器模块的方法与相关的快闪存储器控制器及记忆装置
CN117762820A (zh) 存取快闪存储器模块的方法与相关的快闪存储器控制器及记忆装置
CN114764394A (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