CN110471612B - 存储器管理方法以及存储控制器 - Google Patents

存储器管理方法以及存储控制器 Download PDF

Info

Publication number
CN110471612B
CN110471612B CN201810437502.9A CN201810437502A CN110471612B CN 110471612 B CN110471612 B CN 110471612B CN 201810437502 A CN201810437502 A CN 201810437502A CN 110471612 B CN110471612 B CN 110471612B
Authority
CN
China
Prior art keywords
physical
block
type
string
virtual 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.)
Active
Application number
CN201810437502.9A
Other languages
English (en)
Other versions
CN110471612A (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.)
Shenzhen Daxin Electronic Technology Co ltd
Original Assignee
Shenzhen Daxin Electronic Technology Co ltd
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 Shenzhen Daxin Electronic Technology Co ltd filed Critical Shenzhen Daxin Electronic Technology Co ltd
Priority to CN201810437502.9A priority Critical patent/CN110471612B/zh
Publication of CN110471612A publication Critical patent/CN110471612A/zh
Application granted granted Critical
Publication of CN110471612B publication Critical patent/CN110471612B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

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

Abstract

本发明提供一种存储器管理方法以及存储控制器,其适用于配置有一可复写式非易失性存储器模块的一存储装置。所述可复写式非易失性存储器模块具有多个物理区块。所述方法包括:扫描所述多个物理区块,以识别所述多个物理区块中的一或多个坏物理区块;对所述一或多个坏物理区块执行坏物理区块重新映射操作,以更新一虚拟区块串管理表;以及根据所述虚拟区块串管理表以一多平面写入模式来执行写入操作。

Description

存储器管理方法以及存储控制器
技术领域
本发明涉及一种存储器管理方法,尤其涉及一种适用于配置有可复写式非易失性存储器模块的存储装置的存储器管理方法与存储控制器。
背景技术
一般来说,若可复写式非易失性存储器模块具有一个坏物理区块,该坏物理区块所属的区块串不能被应用多平面写入模式来写入数据或是该坏物理区块所属的区块串会被设定为不可使用。
因此,假设可复写式非易失性存储器模块具有分散的多个坏物理区块,则会导致可复写式非易失性存储器模块整体的区块串的写入效率降低(因为不能被应用多平面写入模式来写入数据),或是导致可复写式非易失性存储器模块整体的可用空间降低(因为坏物理区块所属的区块串会被设定为不可使用)。
基此,要如何管理散布在可复写式非易失性存储器模块中的多个坏物理区块,并且降低多个坏物理区块对可复写式非易失性存储器模块整体的数据存取效率或/与使用空间的负面影响,是本领域人员研究的课题之一。
发明内容
本发明提供适用于配置有可复写式非易失性存储器模块的存储装置的一种存储器管理方法与存储控制器,可对所识别的坏物理区块执行重新映射,以获得较多的可被应用多平面写入模式的虚拟区块串,进而增加了存储装置的数据存取效率。
本发明的一实施例提供一种存储器管理方法,适用于配置有一可复写式非易失性存储器模块的一存储装置,其中所述可复写式非易失性存储器模块具有多个物理区块,其中所述多个物理区块被划分至N个平面,并且所述N个平面的每一个平面具有依据一第一顺序排列的对应M个区块串(Block Stripe)的M个物理区块,其中N与M为正整数。所述方法包括:扫描所述多个物理区块,以识别所述多个物理区块中的一或多个坏物理区块;对所述一或多个坏物理区块执行坏物理区块重新映射操作,以更新一虚拟区块串管理表;以及根据所述虚拟区块串管理表以一多平面写入模式来执行写入操作。所述坏物理区块重新映射操作包括:若在所述N个平面中的第i个平面中的第j个物理区块被识别为坏物理区块,判断在所述第i个平面中是否存在排序在所述第j个物理区块后的一或多个闲置物理区块,其中i为小于或等于N的正整数,并且j为小于或等于M的正整数;其中若判定在所述第i个平面中存在排序在所述第j个物理区块后的所述一或多个闲置物理区块,依据所述第一顺序选择在所述一或多个闲置物理区块中的最后一个闲置物理区块作为用以修复所述第j个物理区块的牺牲物理区块,并且根据所述牺牲物理区块的物理地址来更新所述虚拟区块串管理表所记录的对应所述第j个物理区块的映射信息,以完成对应所述第j个物理区块的所述坏物理区块重新映射操作,其中对应所述第j个物理区块的所述映射信息用以表示所述第j个物理区块的物理地址被所述牺牲物理区块的物理地址所取代。
本发明的一实施例提供用于控制配置有可复写式非易失性存储器模块的存储装置的一种存储控制器。所述存储控制器包括:连接接口电路、存储器接口控制电路、区块串管理电路单元以及处理器。连接接口电路用以电性连接至主机系统。存储器接口控制电路用以电性连接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个物理区块,其中所述多个物理区块被划分至N个平面,并且所述N个平面的每一个平面具有依据一第一顺序排列的对应M个区块串(Block Stripe)的M个物理区块,其中N与M为正整数。所述区块串管理电路单元用以扫描所述多个物理区块,以识别所述多个物理区块中的一或多个坏物理区块,其中所述区块串管理电路单元还用以对所述一或多个坏物理区块执行坏物理区块重新映射操作,以更新一虚拟区块串管理表,其中所述处理器用以根据所述虚拟区块串管理表以指示所述存储器接口控制电路以一多平面写入模式来执行写入操作。所述坏物理区块重新映射操作包括:若在所述N个平面中的第i个平面中的第j个物理区块被识别为坏物理区块,所述区块串管理电路单元判断在所述第i个平面中是否存在排序在所述第j个物理区块后的一或多个闲置物理区块,其中i为小于或等于N的正整数,并且j为小于或等于M的正整数;其中若判定在所述第i个平面中存在排序在所述第j个物理区块后的所述一或多个闲置物理区块,所述区块串管理电路单元依据所述第一顺序选择在所述一或多个闲置物理区块中的最后一个闲置物理区块作为用以修复所述第j个物理区块的牺牲物理区块,并且根据所述牺牲物理区块的物理地址来更新所述虚拟区块串管理表所记录的对应所述第j个物理区块的映射信息,以完成对应所述第j个物理区块的所述坏物理区块重新映射操作,其中对应所述第j个物理区块的所述映射信息用以表示所述第j个物理区块的物理地址被所述牺牲物理区块的物理地址所取代。
基于上述,本发明实施例所提供的存储器管理方法与存储控制器,可扫描且识别坏物理区块,对所识别的坏物理区块执行坏物理区块重新映射操作以更新虚拟区块串管理表,并且根据所述虚拟区块串管理表来经由多平面写入模式执行写入操作,以产生较多的可被应用多平面写入模式的多个虚拟区块串,进而增加了存储装置的数据存取效率与空间。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据本发明的一实施例所示出的主机系统及存储装置的方块示意图。
图2是根据本发明的一实施例所示出的存储器管理方法的流程图。
图3为根据本发明的一实施例所示出可复写式非易失性存储器模块的多个区块串的示意图。
图4A为根据本发明的一实施例所示出的坏物理区块的示意图。
图4B为根据本发明的一实施例所示出的具有坏物理区块的区块串的示意图。
图5为根据本发明的一实施例所示出的坏物理区块重新映射操作的示意图。
图6A为根据本发明的一实施例所示出的虚拟区块串管理表(第一虚拟区块串位图与第一虚拟区块串重新映射表)的示意图。
图6B为根据本发明的另一实施例所示出的虚拟区块串管理表(第二虚拟区块串位图与第二虚拟区块串重新映射表)的示意图。
附图标记说明
10:主机系统
20:存储装置
110、211:处理器
120:主机存储器
130:数据传输接口电路
210:存储控制器
212:数据管理电路
213:存储器接口控制电路
214:错误检查与校正电路
215:区块串管理电路单元
2151:坏区块扫描电路
2152:映射表管理电路
216:缓冲存储器
217:电源管理电路
220:可复写式非易失性存储器模块
230:连接接口电路
S21、S23、S231、S233、S235、S25:存储器管理方法的流程步骤
D1:封装
LUN1:逻辑数
P1(1)~P1(6)、P1(M-1)、P1(M-1)、P2(1)~P2(6)、P2(M-1)、P2(M)、P3(1)~P3(6)、P3(M-1)、P3(M)、P4(1)~P4(6)、P4(M-1)、P4(M):物理区块
P1~P4:平面
BS(1)~BS(6)、BS(M-1)、BS(M):区块串
VBS(1)~VBS(6)、VBS(M-1)、VBS(M):虚拟区块串
SF:状态栏
IF:索引栏
PF1~PF4:平面栏位
601、602:范围
BMP1、BMP2:虚拟区块串位图
RMPT1、RMPT2:虚拟区块串重新映射表
具体实施方式
在本实施例中,存储装置包括可复写式非易失性存储器模块(rewritable non-volatile memory module)与存储装置控制器(也称,存储控制器或存储控制电路)。此外,存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储装置或从存储装置中读取数据。
图1是根据本发明的一实施例所示出的主机系统及存储装置的方块示意图。
请参照图1,主机系统(Host System)10包括处理器(Processor)110、主机存储器(Host Memory)120及数据传输接口电路(Data Transfer Interface Circuit)130。在本实施例中,数据传输接口电路130电性连接(也称,电性连接)至处理器110与主机存储器120。在另一实施例中,处理器110、主机存储器120与数据传输接口电路130之间利用系统总线(System Bus)彼此电性连接。
存储装置20包括存储控制器(Storage Controller)210、可复写式非易失性存储器模块(Rewritable Non-Volatile Memory Module)220及连接接口电路(ConnectionInterface Circuit)230。其中,存储控制器210包括处理器211、数据管理电路(DataManagement Circuit)212与存储器接口控制电路(Memory Interface Control Circuit)213。
在本实施例中,主机系统10是通过数据传输接口电路130与存储装置20的连接接口电路230电性连接至存储装置20来进行数据的存取操作。例如,主机系统10可经由数据传输接口电路130将数据存储至存储装置20或从存储装置20中读取数据。
在本实施例中,处理器110、主机存储器120及数据传输接口电路130可设置在主机系统10的主机板上。数据传输接口电路130的数目可以是一或多个。通过数据传输接口电路130,主机板可以经由有线或无线方式电性连接至存储装置20。存储装置20可例如是U盘、存储卡、固态硬盘(Solid State Drive,SSD)或无线存储器存储装置。无线存储器存储装置可例如是近距离无线通讯(Near Field Communication,NFC)存储器存储装置、无线传真(WiFi)存储器存储装置、蓝牙(Bluetooth)存储器存储装置或低功耗蓝牙存储器存储装置(例如,iBeacon)等以各式无线通讯技术为基础的存储器存储装置。此外,主机板也可以通过系统总线电性连接至全球定位系统(Global Positioning System,GPS)模块、网络接口卡、无线传输装置、键盘、屏幕、喇叭等各式I/O装置。
在本实施例中,数据传输接口电路130与连接接口电路230是相容于高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)标准的接口电路。并且,数据传输接口电路130与连接接口电路230之间是利用快速非易失性存储器接口标准(Non-Volatile Memory express,NVMe)通讯协定来进行数据的传输。
然而,必须了解的是,本发明不限于此,数据传输接口电路130与连接接口电路230也可以是符合并行高级技术附件(Parallel Advanced Technology Attachment,PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394标准、串行高级技术附件(Serial Advanced Technology Attachment,SATA)标准、通用串行总线(Universal Serial Bus,USB)标准、SD接口标准、超高速一代(UltraHigh Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、存储棒(Memory Stick,MS)接口标准、多芯片封装(Multi-Chip Package)接口标准、多媒体存储卡(Multi Media Card,MMC)接口标准、eMMC接口标准、通用快闪存储器(UniversalFlash Storage,UFS)接口标准、eMCP接口标准、CF接口标准、整合式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。此外,在另一实施例中,连接接口电路230可与存储控制器210封装在一个芯片中,或者连接接口电路230是布设于一包含存储控制器210的芯片外。
在本实施例中,主机存储器120用以暂存处理器110所执行的指令或数据。例如,在本范例实施例中,主机存储器120可以是动态随机存取存储器(Dynamic Random AccessMemory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)等。然而,必须了解的是,本发明不限于此,主机存储器120也可以是其他适合的存储器。
存储控制器210用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令并且根据主机系统10的指令在可复写式非易失性存储器模块220中进行数据的写入、读取与抹除等运作。
更详细来说,存储控制器210中的处理器211为具备运算能力的硬件,其用以控制存储控制器210的整体运作。具体来说,处理器211具有多个控制指令,并且在存储装置20运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。
值得一提的是,在本实施例中,处理器110与处理器211例如是中央处理单元(Central Processing Unit,CPU)、微处理器(micro-processor)、或是其他可程序化的处理单元(Microprocessor)、数字信号处理器(Digital Signal Processor,DSP)、可程序化控制器、特殊应用集成电路(Application Specific Integrated Circuits,ASIC)、可程序化逻辑装置(Programmable Logic Device,PLD)或其他类似电路元件,本发明并不限于此。
在一实施例中,存储控制器210还具有只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(boot code),并且当存储控制器210被致能时,处理器211会先执行此开机码来将存储于可复写式非易失性存储器模块220中的控制指令载入至存储控制器210的随机存取存储器中。之后,处理器211会运转此些控制指令以进行数据的写入、读取与抹除等运作。在另一实施例中,处理器211的控制指令也可以程序码型式存储于可复写式非易失性存储器模块220的特定区域,例如,可复写式非易失性存储器模块220中专用于存放系统数据的物理存储单元中。
在本实施例中,如上所述,存储控制器210还包括数据管理电路212与存储器接口控制电路213。应注意的是,存储控制器210各部件所执行的操作也可视为存储控制器210所执行的操作。
其中,数据管理电路212电性连接至处理器211、存储器接口控制电路213与连接接口电路230。数据管理电路212用以接受处理器211的指示来进行数据的传输。例如,经由连接接口电路230从主机系统10(如,主机存储器120)读取数据,并且将所读取的数据经由存储器接口控制电路213写入至可复写式非易失性存储器模块220中(如,根据来自主机系统10的写入指令来进行写入操作)。又例如,经由存储器接口控制电路213从可复写式非易失性存储器模块220的一或多个物理单元中读取数据(数据可读取自一或多个物理单元中的一或多个存储单元),并且将所读取的数据经由连接接口电路230写入至主机系统10(如,主机存储器120)中(如,根据来自主机系统10的读取指令来进行读取操作)。在另一实施例中,数据管理电路212也可整合至处理器211中。
存储器接口控制电路213用以接受处理器211的指示,配合数据管理电路212来进行对于可复写式非易失性存储器模块220的写入(也称,程序化,Programming)操作、读取操作或抹除操作。
举例来说,处理器211可执行写入指令序列,以指示存储器接口控制电路213将数据写入至可复写式非易失性存储器模块220中;处理器211可执行读取指令序列,以指示存储器接口控制电路213从可复写式非易失性存储器模块220的对应读取指令的一或多个物理单元中读取数据;处理器211可执行抹除指令序列,以指示存储器接口控制电路213对可复写式非易失性存储器模块220进行抹除操作。写入指令序列、读取指令序列及抹除指令序列可各别包括一或多个程序码或指令码并且用以指示对可复写式非易失性存储器模块220执行相对应的写入、读取及抹除等操作。在一实施例中,存储器接口控制电路213还可根据所接收的其他指令序列,以对可复写式非易失性存储器模块220执行相对应的操作(例如,坏区块扫描操作、损耗平衡操作或垃圾回收操作等等)。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的识别码、存储器地址等信息;在写入指令序列中,会包括欲写入的逻辑地址、写入数据、欲使用的写入模式(如,单平面写入模式或多平面写入模式)等信息。
此外,欲写入至可复写式非易失性存储器模块220的数据会经由存储器接口控制电路213转换为可复写式非易失性存储器模块220所能接受的格式。
可复写式非易失性存储器模块220是电性连接至存储控制器210(存储器接口控制电路213)并且用以存储主机系统10所写入的数据。可复写式非易失性存储器模块220可以是单阶存储单元(Single Level Cell,SLC)NAND型快闪存储器模块(即,一个存储单元中可存储1个比特的快闪存储器模块)、多阶存储单元(Multi Level Cell,MLC)NAND型快闪存储器模块(即,一个存储单元中可存储2个比特的快闪存储器模块)、三阶存储单元(TripleLevel Cell,TLC)NAND型快闪存储器模块(即,一个存储单元中可存储3个比特的快闪存储器模块)、四阶存储单元(Quadruple Level Cell,QLC)NAND型快闪存储器模块(即,一个存储单元中可存储4个比特的快闪存储器模块)、三维NAND型快闪存储器模块(3D NAND flashmemory module)或垂直NAND型快闪存储器模块(Vertical NAND flash memory module)等其他快闪存储器模块或其他具有相同特性的存储器模块。可复写式非易失性存储器模块220中的存储单元是以阵列的方式设置。
在本实施例中,可复写式非易失性存储器模块220具有多个字线,其中所述多个字线的每一个字线包括多个存储单元。同一条字线上的多个存储单元会组成一或多个物理程序化单元(物理页面)。此外,多个物理程序化单元可组成一个物理单元(物理区块或物理抹除单元)。在本实施例中,以三阶存储单元(Triple Level Cell,TLC)NAND型快闪存储器模块做例子来说明,即,在下述的实施例中,会将一个可存储3个比特值的存储单元作为一个物理程序化单元(即,在每次程序化操作中,会对一个物理程序化单元接着一个物理程序化单元来施加程序化电压以程序化数据),其中每一个存储单元可区分为各自可存储一个比特值的下物理页面(Lower Physical Page)、中物理页面(Middle Physical Page)与上物理页面(Upper Physical Page)。
在本实施例中,是以存储单元作为写入(程序化)数据的最小单位。物理单元为抹除的最小单位,即,每一物理单元含有最小数目之一并被抹除的存储单元。每一物理单元会具有多个存储单元。
在以下实施例中,是以一个物理区块作为一个物理单元的范例。然而,在另一实施例中,一个物理单元也可以是指任意数目的存储单元组成,视实务上的需求而定。此外,必须了解的是,当处理器211对可复写式非易失性存储器模块220中的存储单元(或物理单元/物理区块)进行分组以执行对应的管理操作时,此些存储单元(或物理单元)是被逻辑地分组,而其实际位置并未更动。
图3为根据本发明的一实施例所示出可复写式非易失性存储器模块的多个区块串的示意图。
请参照图3,更详细来说,可复写式非易失性存储器模块220可具有多个封装(Pakage),每个封装可具有多个物理区块,所述多个物理区块可被划分至N个平面,并且部分或全部的平面可逻辑地划分为一个逻辑数(Logical unit number,LUN)。为了简便说明,假设可复写式非易失性存储器模块220具有一个封装D1,并且封装D1具有多个物理区块。所述多个物理区块被划分(被分组)为4个平面(Plane)P1~P4中(N等于4),其中所述4个平面被划分为一个逻辑数LUN 1。此外,每个平面具有依据第一顺序排序的M个物理单元,如,平面P1具有M个物理区块P1(1)~P1(M);平面P2具有M个物理区块P2(1)~P2(M);平面P2具有M个物理区块P3(1)~P3(M);平面P4具有M个物理区块P4(1)~P4(M)。在本实施例中,每个平面中排序相同的物理区块会被组成一个区块串(Block Stripe)。例如,区块串BS(1)包括物理区块P1(1)、物理区块P2(1)、物理区块P3(1)与物理区块P4(1)。也就是说,上述4个平面中的所有物理区块可组成依据第一顺序排列的M个区块串BS(1)~BS(M)。
在本实施例中,存储控制器210是依据区块串的顺序来循序写入数据。例如(第一例),假设所有区块串皆为空白,为了写入一笔可填满4个物理区块的写入数据,存储控制器210会依据第一顺序从第一个空白的区块串(在此例子为区块串BS(1)),来将所述写入数据存储至所述第一个空白的区块串的所有物理区块中(如,物理区块P1(1)、物理区块P2(1)、物理区块P3(1)与物理区块P4(1)中)。又例如(第二例),假设区块串BS(1)的物理区块P1(1)不可用来存储所述数据,并且其他物理区块皆可用来存储所述写入数据,则存储控制器210会将所述写入数据存储至区块串BS(1)的物理区块P2(1)、物理区块P3(1)与物理区块P4(1)以及区块串BS(2)的物理区块P1(2)中。
在本实施例中,若欲被写入的区块串中分别对应所有平面的所有物理区块皆可被用来存储数据(如,空白的),则存储控制器210会使用多平面写入(Multiple Plane Write)模式来存储所述写入数据至所述区块串(也称,对所述区块串执行多平面写入操作)。所述多平面写入模式也可称为全平面写入(Full Plane Write)模式。如上述第一例,存储控制器210会使用多平面写入模式来存储所述写入数据。
反之,若欲被写入的区块串中分别对应所有平面的所有物理区块中的一或多个物理区块不可被用来存储数据(如,已损坏的物理区块、坏物理区块、或已存储数据的物理区块),则存储控制器210会使用单平面写入(Single Plane Write)模式来存储所述写入数据至所述区块串(也称,对所述区块串执行单平面写入操作)。如上述第二例,存储控制器210会使用单平面写入模式来存储所述写入数据。
更详细来说,假设存储控制器210使用多平面写入模式来存储写入数据至区块串BS(1)的分别对应平面P1~P4的4个物理区块P1(1)、P2(1)、P3(1)、P4(1)中(如,第一例),则存储控制器210会将所述写入数据分为4个子写入数据,并且分别将所述4个子写入数据先存储至对应平面P1~P4的写入暂存器(Write register),接着存储控制器可仅下达一笔程序化指令来一次性地将所述4个子写入数据一同写入至4个物理区块P1(1)、P2(1)、P3(1)、P4(1)。
另外,假设存储控制器210使用单平面写入模式来存储写入数据至区块串BS(1)的分别对应平面P2~P4的3个物理区块P2(1)、P3(1)、P4(1)中以及区块串BS(2)的对应平面P1的1个物理区块P1(2)中(如,第二例),则存储控制器210会将所述写入数据分为4个子写入数据,并且分别将所述4个子写入数据先存储至对应平面P1~P4的写入暂存器(Writeregister),接着存储控制器210需依序下达4笔程序化指令,以分批地将4笔子写入数据存储至物理区块P2(1)、P3(1)、P4(1)、P1(2)中,上述操作依序包括:存储控制器210下达1笔程序化指令来将存储在平面P2的写入暂存器的子写入数据写入至物理区块P2(1);存储控制器210下达1笔程序化指令来将存储在平面P3的写入暂存器的子写入数据写入至物理区块P3(1);存储控制器210下达1笔程序化指令来将存储在平面P4的写入暂存器的子写入数据写入至物理区块P4(1);以及存储控制器210下达1笔程序化指令来将存储在平面P1的写入暂存器的子写入数据写入至物理区块P1(2)。
换句话说,即使写入数据的大小相同,但经由单平面写入模式来存储所述写入数据的程序化操作所耗费的时间会大于经由多平面写入模式来存储所述写入数据的程序化操作所耗费的时间。应注意的是,如上述,除了合理的已写入数据的物理区块之外,损坏的物理区块(也称,坏物理区块)会迫使存储控制器210需使用单平面写入来存储写入数据,进而造成写入操作的时间增加(即,造成写入操作的效率降低)。本实施例所提供的存储器管理方法可降低上述坏物理区块的负面影响。
其他关于多平面写入模式、单平面写入模式的使用条件与区块串的关联与细节为本领域人员所熟知且不为本发明的技术重点,不再赘述于此。
存储控制器210会配置多个逻辑单元给可复写式非易失性存储器模块220。主机系统10是通过所配置的逻辑单元来存取存储在多个物理单元中的使用者数据。在此,每一个逻辑单元可以是由一或多个逻辑地址组成。例如,逻辑单元可以是逻辑区块(LogicalBlock)、逻辑页面(Logical Page)或是逻辑扇区(Logical Sector)。一个逻辑单元可以是映射至一或多个物理单元,其中物理单元可以是一或多个物理地址、一或多个物理扇、一或多个物理程序化单元或者一或多个物理抹除单元。在本实施例中,逻辑单元为逻辑区块,并且逻辑子单元为逻辑页面。每一逻辑单元具有多个逻辑子单元。
此外,存储控制器210会建立逻辑转物理地址映射表(Logical To Physicaladdress mapping table)与物理转逻辑地址映射表(Physical To Logical addressmapping table),以记录配置给可复写式非易失性存储器模块220的逻辑单元(如,逻辑区块、逻辑页面或逻辑扇区)与物理单元(如,物理抹除单元、物理程序化单元、物理扇区)之间的映射关系。换言之,存储控制器210可通过逻辑转物理地址映射表来查找一逻辑单元所映射的物理单元,并且存储控制器210可通过物理转逻辑地址映射表来查找一物理单元所映射的逻辑单元。然而,上述有关逻辑单元与物理单元映射的技术概念为本领域技术人员的惯用技术手段,不再赘述于此。
在本实施例中,错误检查与校正电路214是电性连接至处理器211并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当处理器211从主机系统10中接收到写入指令时,错误检查与校正电路508会为对应此写入指令的数据产生对应的错误更正码(error correcting code,ECC)和/或错误检查码(error detecting code,EDC),并且处理器211会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性存储器模块220中。之后,当处理器211从可复写式非易失性存储器模块220中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路214会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正程序。此外,在错误检查与校正程序后,若成功解码所读取的数据,错误检查与校正电路214可回传错误比特值给处理器211。
在一实施例中,存储控制器210还包括缓冲存储器216与电源管理电路217。缓冲存储器是电性连接至处理器211并且用以暂存来自于主机系统10的数据与指令、来自于可复写式非易失性存储器模块220的数据或其他用以管理存储装置20的系统数据,以让处理器211可快速地从缓冲存储器216中存取所述数据、指令或系统数据。电源管理电路217是电性连接至处理器211并且用以控制存储装置20的电源。
在本实施例中,区块串管理电路单元215包括坏区块扫描电路2151与映射表管理电路2152。所述区块串管理电路单元215用以根据所识别到的坏物理区块来建立/更新多个虚拟区块串及对应的虚拟区块串管理表(如,以下所描述的坏物理区块重新映射操作),以让所识别到的坏物理区块可经由对此坏物理区块所执行的坏物理区块重新映射操作而被修复,并且可被用来执行数据存取操作,进而降低坏物理区块的负面影响。
在本实施例中,处理器211可在下列时机点的其中之一:(1)存储装置20闲暇(即,存储装置20闲置超过一预定时间门槛值)时;(2)存储装置开电时;或(3)从一物理区块所读取的数据的错误比特数超过一错误比特数门槛值时,来指示区块串管理电路单元215中的坏区块扫描电路2151执行坏物理区块扫描操作,此操作会扫描全部或是特定的(如,对应上述条件(3)的物理区块)物理区块,以判断被扫描的物理区块是否为坏物理区块。此外,坏区块扫描电路2151可识别出被判定为坏物理区块的物理区块的物理地址(或识别码)。在另一实施例中,处理器211可根据所有物理区块的统计值与错误比特数的其中之一或其组合,来挑选物理状态较差的物理区块(例如,抹除次数较多或错误比特数较多的物理区块)来作为被扫描的物理区块。在一实施例中,处理器211也可随机挑选目标物理区块来进行坏物理区块扫描操作。坏物理区块扫描操作的细节为本领域人员惯用的技术手段,不赘述于此。
以下会配合多个附图来详细说明本实施例所提供的存储器管理方法、区块串管理电路单元215如何进行坏物理区块重新映射操作的细节以及映射表管理电路2152的功能。
图2是根据本发明的一实施例所示出的解码方法的流程图。应注意的是,图2所示出的的存储器管理方法也可称为坏物理区块重新映射方法。请同时参照图1与图2,在步骤S21中,区块串管理电路单元215扫描多个物理区块,以识别所述多个物理区块中的一或多个坏物理区块,其中所述多个物理区块被划分至N个平面。具体来说,处理器211会在上述时机点来指示区块串管理电路单元215中的坏区块扫描电路2151执行坏物理区块扫描操作,以识别存在于可复写式非易失性存储器模块220的所述多个物理区块中的坏物理区块。
图4A为根据本发明的一实施例所示出的坏物理区块的示意图。图4B为根据本发明的一实施例所示出的具有坏物理区块的区块串的示意图。
为了方便说明,假设M为6,即,每个平面具有6个依据第一顺序排列的物理区块,并且共有6个区块串BS(1)~BS(6)。此外,假设经由所执行的坏物理区块扫描操作,坏区块扫描电路2151识别到坏物理区块P1(1)、P1(3)、P2(3)、P3(3)、P3(4)、P4(3)、P4(5)(如,灰底区块)。请参照图4B,如上所述,区块串BS(1)、BS(3)、BS(4)、BS(5)会因为坏物理区块的存在而不能被应用“多平面写入模式”来写入数据(区块串BS(1)、BS(3)、BS(4)、BS(5)可被应用“单平面写入模式”来写入数据)。反之,皆为正常物理区块的区块串BS(2)、BS(6)可被应用“多平面写入模式”来写入数据。经由上述的例子,可知道,虽然所识别到的坏物理区块的数量比起正常物理区块的数量还少,但因为坏物理区块的存在而使得可被应用“多平面写入模式”来写入数据的区块串的数量大幅降低,使得不能被应用“多平面写入模式”的区块串的数量(如,4个)还多于可被应用“多平面写入模式”的区块串的数量(如,2个),进而降低了整体数据存取操作的效率。
基此,处理器211会指示区块串管理电路单元215对所识别的坏物理区块执行坏物理区块重新映射操作(Bad Physical Block)。即,在步骤S23中,区块串管理电路单元215对所述一或多个坏物理区块执行坏物理区块重新映射操作,以更新虚拟区块串管理表。具体来说,对于每个被识别的坏物理区块,区块串管理电路单元215都会判断是否要对此坏物理区块执行重新映射,以达到虚拟地修复此坏物理区块的效用,进而使具有此坏物理区块的虚拟区块串可被应用多平面写入模式来写入数据。
更详细来说,步骤S23包括步骤S231、S233、S235。在步骤S231中,若在所述N个平面中的第i个平面中的第j个物理区块被识别为坏物理区块,区块串管理电路单元215(如,映射表管理电路)判断在所述第i个平面中是否存在排序在所述第j个物理区块后的一或多个闲置物理区块。所述i小于或等于N,并且j小于或等于M。
若判定在所述第i个平面中存在有排序在所述第j个物理区块后的一或多个闲置物理区块,接续至步骤S233,区块串管理电路单元215(如,映射表管理电路2152)依据第一顺序选择在所述一或多个闲置物理区块中的最后一个闲置物理区块作为用以修复所述第j个物理区块的牺牲物理区块,并且根据所述多个牺牲物理区块的物理地址来更新所述多个虚拟区块串管理表所记录的对应所述第j个物理区块的映射信息,以完成对应所述第j个物理区块的所述坏物理区块重新映射操作,其中对应所述第j个物理区块的所述多个映射信息用以表示所述第j个物理区块的物理地址被所述多个牺牲物理区块的物理地址所取代。
反之,若判定在所述第i个平面中不存在有排序在所述第j个物理区块后的一或多个闲置物理区块,接续至步骤S235,区块串管理电路单元215(如,映射表管理电路2152)不修复所述第j个物理区块,在所述多个虚拟区块串管理表中记录对应所述第j个物理区块的映射信息,并且结束对应所述第j个物理区块的所述坏物理区块重新映射操作,其中对应所述第j个物理区块的所述映射信息用以表示所述第j个物理区块为没有被修复的坏物理区块。以下通过图5来详细说明坏物理区块重新映射操作。
图5为根据本发明的一实施例所示出的坏物理区块重新映射操作的示意图。请参照图5,举例来说,假设所有物理区块皆为空白。此外,假设管理电路单元215对已被识别为坏物理区块的物理区块P1(1)(j等于1)执行坏物理区块重新映射操作。首先,如同步骤S231所述,区块串管理电路单元215(如,映射表管理电路2152)会去判断在平面P1内且排序在物理区块P1(1)后是否存在有任何一个闲置物理区块(即,空白且可用的物理区块)。在此例子中,区块串管理电路单元215可判定在平面P1中且依据第一顺序排序在物理区块P1(1)后面的闲置物理区块有物理区块P1(2)、P1(4)、P1(5)、P1(6)(虽然物理区块P1(3)也是空白的,但由于物理区块P1(3)为坏物理区块,因此物理区块P1(3)不为可用的物理区块,即,不为闲置物理区块)。
接着,区块串管理电路单元215执行步骤S233,即,区块串管理电路单元215从闲置物理区块P1(2)、P1(4)、P1(5)、P1(6)中依据第一顺序选择最后一个物理区块作为用以修复所述物理区块P1(1)的物理区块(也称,牺牲物理区块)。接着,区块串管理电路单元215(如,映射表管理电路2152)会利用所选择的牺牲物理区块的物理地址取代虚拟区块串中的物理区块P1(1)的物理地址(如,图5所示的P1(1)→P1(6))。在坏物理区块P1(1)的物理地址于虚拟区块串中被牺牲物理区块P1(6)的物理地址取代后,上述操作也可称为坏物理区块P1(1)被修复为已修复物理区块。区块串管理电路单元215(如,映射表管理电路2152)会记录对应已修复物理区块P1(1)的映射信息至虚拟区块串管理表中,并且完成对应坏物理区块P1(1)的坏物理区块重新映射操作。
值得一提的是,上述的“修复”仅为虚拟地或是逻辑地,并且是利用正常可用的物理区块的物理地址来重新映射坏物理区块的物理地址(映射表管理电路2152会利用虚拟区块串管理表来记录此信息)。即,对于物理区块P1(1)的数据存取操作,都会被转换为对于物理区块P1(6)的数据存取操作。实质上,物理区块P1(1)在物理上依然是损坏的。应注意的是,由于物理区块P1(6)已经成为牺牲物理区块,因此物理区块P1(6)便不能再被判定为“可用的”(映射表管理电路2152会利用虚拟区块串管理表来记录此信息)。牺牲物理区块不会被判定为闲置物理区块。虚拟区块串管理表中的牺牲物理区块会被视为不可用的。也就是说,当使用牺牲物理区块P1(6)来修复坏物理区块P1(1)后,平面P1中的闲置物理区块会减少为物理区块P1(2)、P1(4)、P1(5)。
相似地,对于坏物理区块P1(3)所执行的坏物理区块重新映射操作,区块串管理电路单元215(如,映射表管理电路2152)会选择闲置物理区块P1(5)来作为用以修复坏物理区块P1(3)的牺牲物理区块(如,图5所示的P1(3)→P1(5))。
依此类推,坏物理区块P2(3)、P3(3)、P3(4)、P4(3)的物理地址皆会分别被对应的闲置物理区块P2(6)、P3(6)、P3(5)、P4(6)的物理地址所重新映射。
应注意的是,对于坏物理区块P4(5)所执行的坏物理区块重新映射操作中,由于排序在坏物理区块P4(5)后的物理区块P4(6)为牺牲物理区块(不是闲置物理区块),因此区块串管理电路单元215(如,映射表管理电路2152)会判定在平面P4中不存在有排序在坏物理区块P4(5)后的闲置物理区块,并且执行步骤S235。即,区块串管理电路单元215(如,映射表管理电路2152)不修复所述坏物理区块P4(5),并且在虚拟区块串管理表中记录对应所述坏物理区块P4(5)的映射信息,并且结束对应坏物理区块P4(5)的所述坏物理区块重新映射操作。换言之,虚拟区块串VBS(5)中的物理区块P4(5)会被标记为不可用的(被标记为损坏的)。
在完成对于所有已识别的坏物理区块的坏物理区块重新映射操作后,对于虚拟区块串管理表的更新/建立也完成。应注意的是,完成对于所有已识别的坏物理区块的坏物理区块重新映射操作后,所述虚拟区块串VBS(1)~VBS(6)与原有的区块串BS(1)~BS(6)的差异在于,虚拟区块串VBS(1)~VBS(6)中的虚拟区块串VBS(1)~VBS(4)不具有任何不可用的物理区块。原本存在于虚拟区块串VBS(1)~VBS(4)的坏物理区块也被修复为已修复物理区块。更具体来说,原本不能被应用“多平面写入模式”来写入数据的区块串BS(1)已被转换为虚拟区块串VBS(1),并且虚拟区块串VBS(1)可被应用“多平面写入模式”来写入数据;原本不能被应用“多平面写入模式”来写入数据的区块串BS(3)已被转换为虚拟区块串VBS(3),并且虚拟区块串VBS(3)可被应用“多平面写入模式”来写入数据;原本不能被应用“多平面写入模式”来写入数据的区块串BS(4)已被转换为虚拟区块串VBS(4),并且虚拟区块串VBS(4)可被应用“多平面写入模式”来写入数据。此外,在虚拟区块串VBS(1)~VBS(6)中,仅剩下虚拟区块串VBS(5)~VBS(6)不可被应用“多平面写入模式”来写入数据。换句话说,经由完成所有坏物理区块重新映射操作,可使得不能被应用“多平面写入模式”的区块串的数量从4个被降低为2个,且可被应用“多平面写入模式”的虚拟区块串也被集中排序较为前面的多个虚拟区块串,进而增进了整体虚拟数据串VBS(1)~VBS(6)的数据存取效率(因为可被应用多平面写入模式的区块串越多,可让整体数据存取的速度越快)。
在本实施例中,虚拟区块串管理表可被区分为第一类型与第二类型。
具体来说,若所述虚拟区块串管理表属于第一类型,所述虚拟区块串管理表包括第一虚拟区块串位图(bitmap)与一第一虚拟区块串重新映射表(remapping table)。所述第一虚拟区块串位图的状态栏记录依据所述第一顺序排列的分别对应所述M个虚拟区块串的M个状态值。每一所述状态值包括:第一类状态值,用以表示对应所述第一类状态值的虚拟区块串中的所有物理区块皆为正常的,其中所述第一类状态值还用以表示对应所述第一类状态值的所述虚拟区块串不具有任何坏物理区块;第二类状态值,用以表示对应所述第二类状态值的所述虚拟区块串具有经由执行坏区块重新映射操作而修复的一或多个坏物理区块;一第三类状态值,用以表示对应所述第三类状态值的虚拟区块串中的一或多个物理区块为不可用的;或一第四类状态值,用以表示对应所述第四类状态值的虚拟区块串中的所有物理区块皆为不可用的。
此外,所述第一虚拟区块串重新映射表包括对应所述N个平面的N个平面栏位,其中所述N个平面栏位的每一个平面栏位依据所述第一顺序记录对应的平面的M个物理区块的映射信息。每一所述映射信息包括:第一类映射值,用以表示对应所述第一类映射值的物理区块不为所述坏物理区块,并且对应所述第一类映射值的所述物理区块的物理地址为原有的物理地址;第二类映射值,用以表示对应所述第二类映射值的物理区块为已被执行所述坏物理区块重新映射操作的坏物理区块,其中所述第二类映射值还用以表示用以修复对应所述第二类映射值的所述物理区块的牺牲物理区块的物理地址;第三类映射值,用以表示对应所述第三类状态值的物理区块为牺牲物理区块并且为不可用的;或第四类映射值,用以表示对应所述第四类状态值的物理区块为没有执行所述坏物理区块重新映射操作的坏物理区块。
另一方面,若所述虚拟区块串管理表属于第二类型,所述虚拟区块串管理表包括第二虚拟区块串位图(bitmap)与第二虚拟区块串重新映射表(remapping table)。所述第二虚拟区块串位图包括状态栏与索引栏,其中所述状态栏记录依据所述第一顺序排列的分别对应所述M个虚拟区块串的M个状态值,其中所述索引栏记录依据所述第一顺序排列的分别对应所述M个虚拟区块串的M个索引值。每一所述状态值的种类相似于上述第一类型的虚拟区块串管理表的状态值的种类,不赘述于此。在所述M个索引值中,对应所述第一类状态值的索引值为第一类索引值,并且对应所述第二类状态值、所述第三类状态值与所述第四类状态值的索引值为第二类索引值,其中所述第二类索引值包括不大于M的正整数。此外,所述第二虚拟区块串重新映射表包括索引栏与对应所述N个平面的N个平面栏位,其中所述索引栏记录所述第二虚拟区块串位图的所述M个索引值中属于所述第二类索引值的P个索引值,其中P小于或等于M。其中,所述N个平面栏位的每一个平面栏位依据所述P个索引值记录对应所述P个索引值的P个虚拟区块串的P个物理区块的映射信息。每一所述映射信息相似于上述第一类型的虚拟区块串管理表的映射信息的种类,不赘述于此。所述第二虚拟区块串重新映射表的所述N个平面栏位共记录N乘以P个映射信息。
以下通过图6A来举例说明为第一类型的虚拟区块串管理表,并且通过图6B来举例说明为第二类型的虚拟区块串管理表。
图6A为根据本发明的一实施例所示出的虚拟区块串管理表(第一虚拟区块串位图与第一虚拟区块串重新映射表)的示意图。请参照图6A,接续了图5的例子,为第一类型的虚拟区块串管理表包括第一虚拟区块串位图(First virtual block stripe bitmap)BMP1与第一虚拟区块串重新映射表(First virtual block stripe remapping table)RMPT1。第一虚拟区块串位图BMP1具有状态栏SF,其依据第一顺序,记录了分别对应虚拟区块串VBS(1)~VBS(6)的6个状态值(M等于6)“1”、“0”、“1”、“1”、“2”、“3”。如上所述,映射表管理电路2152会使用第一类状态值(如,比特值“0”)来表示所对应的虚拟区块串中的所有物理区块皆为正常的(不具有任何坏物理区块),如,对应虚拟区块串VBS(2)的状态值会被记录为“0”。映射表管理电路2152会使用第二类状态值(如,比特值“1”)来表示所对应的虚拟区块串具有至少一个已修复物理区块,如,对应虚拟区块串VBS(1)、VBS(3)、VBS(4)的状态值会被记录为“1”。映射表管理电路2152会使用第三类状态值(如,比特值“2”)来表示所对应的虚拟区块串具有至少一个不可用的物理区块(如,牺牲物理区块或坏物理区块),如,对应虚拟区块串VBS(5)的状态值会被记录为“2”(换言之,对应第三类状态值的虚拟区块串至少会具有一个非不可用的物理区块,如,物理区块P2(5))。映射表管理电路2152会使用第四类状态值(如,比特值“3”)来表示所对应的虚拟区块串中所有的物理区块皆为不可用的物理区块,如,对应虚拟区块串VBS(6)的状态值会被记录为“3”(因为,虚拟区块串VBS(6)的所有物理区块皆为不可用的牺牲物理区块)。
在本实施例中,处理器211可快速地利用第一虚拟区块串位图来判断每个虚拟区块串是否可被应用多平面写入模式来写入数据。具体来说,对应第一类状态值与第二类状态值的虚拟区块串(如,范围601所示)会被判定为可被应用多平面写入模式来写入数据;对应第三类状态值与第四类状态值的虚拟区块串(如,范围602所示)会被判定为不可被应用多平面写入模式来写入数据。应注意的是,对应第三类状态值的虚拟区块串会被应用单平面写入操作来写入数据至所述对应第三类状态值的虚拟区块串中的可用的物理区块。
特别是,在一实施例中,对应第四类状态值的虚拟区块串会被忽略于任何数据存取操作(因为,对应第四类状态值的虚拟区块串的所有物理区块皆为不可用的)。如此一来,由于第四类状态值的信息会被记录,可节省一些特定的存储器管理操作的耗费时间(因为可执行特定的存储器管理操作的过程中无视对应第四类状态值的虚拟区块串)。
应注意的是,上述第一虚拟区块串位图BMP1的状态栏SF所记录的状态值的排列顺序是依据所对应的虚拟区块串的排列顺序。换言之,依据一个状态值于状态栏的排列顺序就可以知道此状态值所对应的虚拟区块串。例如,排列在第N个的状态值会对应虚拟区块串VBS(N)。此外,上述第一虚拟区块串位图BMP1也可整合至第一虚拟区块串重新映射表RMPT1。
所述第一虚拟区块串重新映射表RMPT1包括对应所述4个平面的4个平面栏位PF1~PF4(N等于4)。每个平面栏位依据第一顺序记录所对应虚拟区块串的物理区块的映射信息。例如,分别被记录至平面栏位PF1~PF4中排列在第1个的映射信息为排列在第1个的虚拟区块串VBS(1)的属于平面P1~P4的物理区块的映射信息。
在本实施例中,映射表管理电路2152会将被识别为正常的物理区块(非不可用的物理区块、非坏物理区块)的映射信息设定为第一类映射值(如,“0”)(例如,在执行完坏物理区块扫描操作后,映射表管理电路2152会先将非坏物理区块的物理区块的映射信息设定为“0”)。
此外,在执行完坏物理区块重新映射操作后,映射表管理电路2152会将该坏物理区块重新映射操作中的已牺牲物理区块的映射信息设定为第三类映射值(如,“-1”),将经由该已牺牲物理区块所修复正常的物理区块,即,对应的已修复区块的映射信息设定为第二类映射值,并且该第二类映射值是记录为该已牺牲物理区块于同一个平面中的排列顺序(或真实的物理地址)。
举例来说,请同时参照图5与图6A,平面P1中的对应物理区块串BS(1)的坏物理区块P1(1)被物理区块P1(6)(平面P1中排列在第6个的物理区块)所修复,基此,在第一虚拟区块串重新映射表RMPT1的平面栏位PF1中对应虚拟区块串VBS(1)的物理区块的映射信息会被设定为“6”,此“6”用以表示物理区块P1(1)被物理区块P1(6)所修复。此外,在第一虚拟区块串重新映射表RMPT1的平面栏位PF1中对应牺牲物理区块P1(6)的映射信息会被记录为“-1”。换言之,经由上述的映射信息,处理器211或映射表管理电路2152可知道:当数据存取指令欲对物理区块P1(1)执行数据存取时,不能直接至物理区块P1(1)的物理地址去执行数据存取,而要去物理区块P1(6)的物理地址去执行数据存取;当数据写入操作欲找寻可用的物理区块时,物理区块P1(6)会被视为不可用的。
在本实施例中,映射表管理电路2152会将坏物理区块(例如,没有执行坏物理区块重新映射操作的坏物理区块)的映射信息设定为第四类映射值(如,“-2”或其他预定的负值)。也就是说,经由第二类映射值与第四类映射值,处理器211或映射表管理电路2152可根据第二类映射值与第四类映射值所记录的数值或位置来识别到所有坏物理区块的真实的物理地址(不论有被修复或没有被修复的坏物理区块)。
图6B为根据本发明的另一实施例所示出的虚拟区块串管理表(第二虚拟区块串位图与第二虚拟区块串重新映射表)的示意图。图6B示出了第二类型的虚拟区块串管理表,其与第一类型的虚拟区块串管理表不同的地方在于索引栏的存在以及第二类型的第二虚拟区块串重新映射表的大小会因为而小于第一类型的第一虚拟区块串重新映射表的大小。请参照图6B,接续了图5的例子,为第二类型的虚拟区块串管理表包括第二虚拟区块串位图BMP2与第二虚拟区块串重新映射表RMPT2。第二虚拟区块串位图BMP2包括状态栏SF与索引栏IF。相似于图6A的例子,状态栏SF依据第一顺序,记录了分别对应虚拟区块串VBS(1)~VBS(6)的6个状态值(M等于6)。
索引栏IF依据第一顺序记录了6个索引值(M等于6),并且,如上述,每个索引值类型会依据状态值的类型而被决定。例如,虚拟区块串VBS(2)的索引值对应为“0”的状态值(即,第一类状态值),因此,虚拟区块串VBS(1)的索引值会被决定为第一类索引值(对应第一类状态值的索引值会被决定为第一类索引值)。在本实施例中,第一类索引值的数值是一个预定的固定比特值,如,“0”或其他适当的比特值。即,只要一个索引值被决定为第一类索引值,不论此索引值的排序,此索引值的数值会被设定为所述预定的固定比特值。在本实施例中,当处理器211或区块串管理电路单元215识别到为第一类索引值(或第一类状态值)的虚拟区块串时,处理器211或区块串管理电路单元215可知道该虚拟区块串的所有物理区块皆为正常的物理区块(即,不为坏物理区块、已修复物理区块或牺牲物理区块)。
应注意的是,在本实施例中,所有第二类索引值的数值会依据第一顺序,从前面开始索引。例如,由于虚拟区块串VBS(1)、VBS(3)、VBS(4)、VBS(5)、VBS(6)的索引值所对应的状态值属于第二类状态值、第三类状态值或第四类状态值,因此,虚拟区块串VBS(1)、VBS(3)、VBS(4)、VBS(5)、VBS(6)的索引值被决定为第二类索引值。接着,依据第一顺序,排序在第1个的第二类索引值会被决定为“1”,排列在第P个的第二类索引值会被决定为“P”。如,图6B的例子,P为5,即,虚拟区块串VBS(5)的索引值为所有第二类索引值中依据第一顺序排序在第5个的索引值,并且被设定为“5”。
所述第二虚拟区块串重新映射表RMPT2包括索引栏IF与对应所述4个平面的4个平面栏位PF1~PF4,其中所述索引栏IF依据第一顺序记录所述第二虚拟区块串位图BMP2的所有第二类索引值。也就是说,处理器211或区块串管理电路单元215可经由第二虚拟区块串位图BMP2的索引栏IF的一特定的第二类索引值来至第二虚拟区块串重新映射表RMPT2的索引栏IF来识别相同的索引值,以通过此相同的索引值来查找于第二虚拟区块串重新映射表RMPT2中对应的虚拟区块串的多个映射信息。举例来说,假设处理器211或区块串管理电路单元215欲查找虚拟区块串VBS(5)的所有物理区块的映射信息。处理器211或区块串管理电路单元215会经由第二虚拟区块串位图BMP2识别到虚拟区块串VBS(5)的索引值的数值为“4”,处理器211或区块串管理电路单元215会至第二虚拟区块串重新映射表RMPT2的索引栏IF来识别相同的索引值“4”,并且识别到于平面栏位PF1~PF4各自所记录的4个映射信息“-1”、“0”、“-1”、“-2”。
所述第二虚拟区块串重新映射表RMPT2的所有映射信息的种类包括已说明于上的第一虚拟区块串重新映射表RMPT1的第一类映射值、第二类映射值、第三类映射值、第四类映射值,不再赘述于此。
应注意的是,对应第一类索引值的虚拟区块串的物理区块的映射信息并不会被记录至第二虚拟区块串重新映射表RMPT2。由于对应第一类索引值的虚拟区块串的所有物理区块皆为正常的物理区块,因此,这些物理区块的物理地址皆为原本所指派的真实的物理地址(未被重新映射)。为了节省空间,不会再记录这些物理区块的映射信息,即,第二类型的虚拟区块串管理表的处理器211或区块串管理电路单元215可经由对应第一类索引值的虚拟区块串的排列顺序来识别出对应第一类索引值的该虚拟区块串的物理区块在一个平面中的排列顺序(即,物理地址)。
在本实施例中,处理器211可快速地利用第一虚拟区块串位图来判断每个虚拟区块串是否可被应用多平面写入模式来写入数据。具体来说,对应第一类状态值与第二类状态值的虚拟区块串会被判定为可被应用多平面写入模式来写入数据(如,范围601所示);对应第三类状态值与第四类状态值的虚拟区块串会被判定为不可被应用多平面写入模式来写入数据(如,范围602所示)。应注意的是,对应第三类状态值的虚拟区块串会被应用单平面写入操作来写入数据至所述对应第三类状态值的虚拟区块串中的可用的物理区块。
值得一提的是,经由上述的坏物理区块重新映射操作后所获得的多个虚拟区块串中,可被应用多平面写入模式的虚拟区块串会集中在前方,即,不可被应用多平面写入模式的虚拟区块串会被排序在所有虚拟区块串的后方。如此一来,对于循序数据写入,或大数据的写入,相较于传统上因为坏物理区块而导致可被应用多平面写入的虚拟区块串的数量较少且分布较不均匀,经由本实施例,可被应用多平面写入的虚拟区块串的数量会较多,并且会被集中在前方,进而导致了较佳的数据写入效率与较好的数据完整性。
应注意的是,上述虚拟区块串管理表会在存储装置20开电后,被维护于缓冲存储器216中。并且在特定时机被备份至可复写式非易失性存储器模块220。被维护于缓冲存储器216中的虚拟区块串管理表可因为新识别的坏物理区块而即时地在执行完对应的坏物理区块重新映射操作后而被更新。
值得一提的是,处理器211或区块串管理电路单元215还会记录每个虚拟区块串的有效计数值(Valid Count)。例如,每当新的写入数据会更新一个虚拟区块串的物理区块所存储数据时,处理器211或区块串管理电路单元215会将此一个虚拟区块串的有效计数值减一,以反映此虚拟区块串所存储的有效数据的数量降低的事实。举例来说,假设处理器211欲写入一笔写入数据至一逻辑区块,此逻辑区块原本已存储旧数据并且被映射至物理区块P1(6)(即,平面P1的第6个物理区块)。处理器211会将写入数据写入至另一个闲置的物理区块,并且将物理区块P1(6)的数据视为无效数据(即,物理区块P1(6)的数据被更新了),并且根据虚拟区块串管理表查找到物理区块P1(6)对应虚拟区块串VBS(1)(因为在平面栏位PF1中记录有“6”的为排列在第1个的映射信息,其对应虚拟区块串VBS(1))。据此,处理器211将虚拟区块串VBS(1)的有效计数值减一。
当一个虚拟区块串的有效计数值低于一门槛值,处理器211可根据虚拟区块串管理表中的映射信息来对此虚拟区块串的物理单元执行垃圾回收操作(如,对于标记为第二类映射值的物理区块所执行的垃圾回收操作实际上会到对应的牺牲物理单元的物理地址上来执行)。
应注意的是,上述的状态值、索引值与映射值皆为示例性的,本领域人员当可经由上述启示来进行修改,以采用其他数值来记录不同种类的状态值、索引值与映射值。
在一实施例中,属于第三类映射值的映射信息可被记录为对应的已修复物理区块的排列顺序的负值。例如,假设对应坏物理区块P1(2)被物理区块P1(5)所修复,物理区块P1(5)为牺牲物理区块,并且其映射信息会被记录为“-2”,以表示牺牲物理区块P1(5)所对应的为排列在平面P1中第2个的物理区块,并且对应虚拟区块串VBS(2)。应注意的是,在此实施例中,属于第四类映射值的映射信息可被记录为另一特定值。
综上所述,本发明实施例所提供的存储器管理方法与存储控制器,可扫描且识别坏物理区块,对所识别的坏物理区块执行坏物理区块重新映射操作以更新虚拟区块串管理表,并且根据所述虚拟区块串管理表来经由多平面写入模式执行写入操作,以产生较多的可被应用多平面写入模式的多个虚拟区块串,进而增加了存储装置的数据存取效率与空间。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视权利要求所界定者为准。

Claims (16)

1.一种存储器管理方法,其特征在于,适用于配置有一可复写式非易失性存储器模块的存储装置,其中所述可复写式非易失性存储器模块具有多个物理区块,其中所述多个物理区块被划分至N个平面,并且所述N个平面的每一个平面具有依据第一顺序排列的对应M个区块串的M个物理区块,其中N与M为正整数,所述方法包括:
扫描所述多个物理区块,以识别所述多个物理区块中的一或多个坏物理区块;
对所述一或多个坏物理区块执行坏物理区块重新映射操作,以更新虚拟区块串管理表;以及
根据所述虚拟区块串管理表以多平面写入模式来执行写入操作,
其中所述坏物理区块重新映射操作包括:
若在所述N个平面中的第i个平面中的第j个物理区块被识别为坏物理区块,判断在所述第i个平面中是否存在排序在所述第j个物理区块后的一或多个闲置物理区块,其中i为小于或等于N的正整数,并且j为小于或等于M的正整数;
其中若判定在所述第i个平面中存在排序在所述第j个物理区块后的所述一或多个闲置物理区块,依据所述第一顺序选择在所述一或多个闲置物理区块中的最后一个闲置物理区块作为用以修复所述第j个物理区块的牺牲物理区块,并且根据所述牺牲物理区块的物理地址来更新所述虚拟区块串管理表所记录的对应所述第j个物理区块的映射信息,以完成对应所述第j个物理区块的所述坏物理区块重新映射操作,其中对应所述第j个物理区块的所述映射信息用以表示所述第j个物理区块的物理地址被所述牺牲物理区块的物理地址所取代。
2.根据权利要求1所述的存储器管理方法,
其中若所述虚拟区块串管理表属于第一类型,所述虚拟区块串管理表包括第一虚拟区块串位图与第一虚拟区块串重新映射表,
其中所述第一虚拟区块串位图的状态栏记录依据所述第一顺序排列的分别对应所述M个虚拟区块串的M个状态值,
其中每一所述状态值包括:
第一类状态值,用以表示对应所述第一类状态值的虚拟区块串中的所有物理区块皆为正常的,其中所述第一类状态值还用以表示对应所述第一类状态值的所述虚拟区块串不具有任何坏物理区块;
第二类状态值,用以表示对应所述第二类状态值的所述虚拟区块串具有经由执行坏区块重新映射操作而修复的一或多个坏物理区块;
第三类状态值,用以表示对应所述第三类状态值的虚拟区块串中的一或多个物理区块为不可用的;或
第四类状态值,用以表示对应所述第四类状态值的虚拟区块串中的所有物理区块皆为不可用的,
其中所述第一虚拟区块串重新映射表包括对应所述N个平面的N个平面栏位,其中所述N个平面栏位的每一个平面栏位依据所述第一顺序记录对应的平面的M个物理区块的映射信息,
其中每一所述映射信息包括:
第一类映射值,用以表示对应所述第一类映射值的物理区块不为所述坏物理区块,并且对应所述第一类映射值的所述物理区块的物理地址为原有的物理地址;
第二类映射值,用以表示对应所述第二类映射值的物理区块为已被执行所述坏物理区块重新映射操作的坏物理区块,其中所述第二类映射值还用以表示用以修复对应所述第二类映射值的所述物理区块的牺牲物理区块的物理地址;
第三类映射值,用以表示对应所述第三类映射值 的物理区块为牺牲物理区块并且为不可用的;或
第四类映射值,用以表示对应所述第四类映射值 的物理区块为没有执行所述坏物理区块重新映射操作的坏物理区块。
3.根据权利要求1所述的存储器管理方法,
其中若所述虚拟区块串管理表属于第二类型,所述虚拟区块串管理表包括第二虚拟区块串位图与第二虚拟区块串重新映射表,
其中所述第二虚拟区块串位图包括状态栏与索引栏,其中所述状态栏记录依据所述第一顺序排列的分别对应所述M个虚拟区块串的M个状态值,其中所述索引栏记录依据所述第一顺序排列的分别对应所述M个虚拟区块串的M个索引值,
其中每一所述状态值包括:
第一类状态值,用以表示对应所述第一类状态值的虚拟区块串中的所有物理区块皆为正常的,其中所述第一类状态值还用以表示对应所述第一类状态值的所述虚拟区块串不具有任何坏物理区块;
第二类状态值,用以表示对应所述第二类状态值的所述虚拟区块串具有经由执行坏区块重新映射操作而修复的一或多个坏物理区块;
第三类状态值,用以表示对应所述第三类状态值的虚拟区块串中的一或多个物理区块为不可用的;或
第四类状态值,用以表示对应所述第四类状态值的虚拟区块串中的所有物理区块皆为不可用的,
其中在所述M个索引值中,对应所述第一类状态值的索引值为第一类索引值,并且对应所述第二类状态值、所述第三类状态值与所述第四类状态值的索引值为第二类索引值,其中所述第二类索引值包括不大于M的正整数,
其中所述第二虚拟区块串重新映射表包括索引栏与对应所述N个平面的N个平面栏位,其中所述索引栏记录所述第二虚拟区块串位图的所述M个索引值中属于所述第二类索引值的P个索引值,其中P小于或等于M,
其中所述N个平面栏位的每一个平面栏位依据所述P个索引值记录对应所述P个索引值的P个虚拟区块串的P个物理区块的映射信息,
其中每一所述映射信息包括:
第一类映射值,用以表示对应所述第一类映射值的物理区块不为所述坏物理区块,并且对应所述第一类映射值的所述物理区块的物理地址为原有的物理地址;
第二类映射值,用以表示对应所述第二类映射值的物理区块为已被执行所述坏物理区块重新映射操作的坏物理区块,其中所述第二类映射值还用以表示用以修复对应所述第二类映射值的所述物理区块的牺牲物理区块的物理地址;
第三类映射值,用以表示对应所述第三类映射值 的物理区块为牺牲物理区块并且为不可用的;以及
第四类映射值,用以表示对应所述第四类映射值 的物理区块为没有执行所述坏物理区块重新映射操作的坏物理区块,其中所述第二虚拟区块串重新映射表的所述N个平面栏位共记录N乘以P个映射信息。
4.根据权利要求1所述的存储器管理方法,还包括:
若判定在所述第i个平面中不存在排序在所述第j个物理区块后的可用的一或多个物理区块,不修复所述第j个物理区块,在所述虚拟区块串管理表中记录对应所述第j个物理区块的映射信息,并且结束对应所述第j个物理区块的所述坏物理区块重新映射操作,其中对应所述第j个物理区块的所述映射信息用以表示所述第j个物理区块为没有被修复的坏物理区块。
5.根据权利要求1所述的存储器管理方法,还包括:
在识别到所述一或多个坏物理区块后,不建立坏物理区块表,其中所述一或多个坏物理区块的物理地址经由所述虚拟区块串管理表来被识别。
6.根据权利要求1所述的存储器管理方法,其中上述根据所述虚拟区块串管理表以所述多平面写入模式来执行所述写入操作的步骤包括:
识别对应所述写入操作的写入数据;
根据所述虚拟区块串管理表来识别一或多个第一虚拟区块串,其中所述一或多个第一虚拟区块串皆不具有任何不可用的物理区块;以及
从所述一或多个第一虚拟区块串中选择空白的目标虚拟区块串,并且将所述写入数据中的目标写入数据同时写入至所述目标虚拟区块串的分别对应所述N个平面的N个目标物理区块中,其中所述目标写入数据的大小是小于或等于N个物理区块的总容量。
7.根据权利要求6所述的存储器管理方法,其中上述将所述写入数据中的所述目标写入数据同时写入至所述目标虚拟区块串的分别对应所述N个平面的所述N个目标物理区块中的步骤包括:
根据所述目标虚拟区块串,从所述虚拟区块串管理表中识别对应所述N个物理区块的N个映射信息;以及
根据所述N个映射信息识别分别属于所述N个平面的N个物理地址,以同时写入所述目标写入数据于所述N个物理地址中。
8.根据权利要求1所述的存储器管理方法,其中所述写入还包括:
若对应所述写入操作的逻辑地址已存储有旧数据,在执行完所述写入操作后,根据所述虚拟区块串管理表来识别对应所述旧数据的旧虚拟区块串;以及
更新所述旧虚拟区块串的有效数据数。
9.一种存储控制器,其特征在于,用于控制配置有可复写式非易失性存储器模块的存储装置,所述存储控制器包括:
连接接口电路,用以电性连接至主机系统;
存储器接口控制电路,用以电性连接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个物理区块,其中所述多个物理区块被划分至N个平面,并且所述N个平面的每一个平面具有依据第一顺序排列的对应M个区块串的M个物理区块,其中N与M为正整数;
区块串管理电路单元;以及
处理器,电性连接至所述连接接口电路、所述存储器接口控制电路及所述区块串管理电路单元,
其中所述区块串管理电路单元用以扫描所述多个物理区块,以识别所述多个物理区块中的一或多个坏物理区块,
其中所述区块串管理电路单元还用以对所述一或多个坏物理区块执行坏物理区块重新映射操作,以更新虚拟区块串管理表,
其中所述处理器用以根据所述虚拟区块串管理表以指示所述存储器接口控制电路以多平面写入模式来执行写入操作,
其中所述坏物理区块重新映射操作包括:
若在所述N个平面中的第i个平面中的第j个物理区块被识别为坏物理区块,所述区块串管理电路单元判断在所述第i个平面中是否存在排序在所述第j个物理区块后的一或多个闲置物理区块,其中i为小于或等于N的正整数,并且j为小于或等于M的正整数;
其中若判定在所述第i个平面中存在排序在所述第j个物理区块后的所述一或多个闲置物理区块,所述区块串管理电路单元依据所述第一顺序选择在所述一或多个闲置物理区块中的最后一个闲置物理区块作为用以修复所述第j个物理区块的牺牲物理区块,并且根据所述牺牲物理区块的物理地址来更新所述虚拟区块串管理表所记录的对应所述第j个物理区块的映射信息,以完成对应所述第j个物理区块的所述坏物理区块重新映射操作,其中对应所述第j个物理区块的所述映射信息用以表示所述第j个物理区块的物理地址被所述牺牲物理区块的物理地址所取代。
10.根据权利要求9所述的存储控制器,
其中若所述虚拟区块串管理表属于第一类型,所述虚拟区块串管理表包括第一虚拟区块串位图与第一虚拟区块串重新映射表,
其中所述第一虚拟区块串位图的状态栏记录依据所述第一顺序排列的分别对应所述M个虚拟区块串的M个状态值,
其中每一所述状态值包括:
第一类状态值,用以表示对应所述第一类状态值的虚拟区块串中的所有物理区块皆为正常的,其中所述第一类状态值还用以表示对应所述第一类状态值的所述虚拟区块串不具有任何坏物理区块;
第二类状态值,用以表示对应所述第二类状态值的所述虚拟区块串具有经由执行坏区块重新映射操作而修复的一或多个坏物理区块;
第三类状态值,用以表示对应所述第三类状态值的虚拟区块串中的一或多个物理区块为不可用的;或
第四类状态值,用以表示对应所述第四类状态值的虚拟区块串中的所有物理区块皆为不可用的,
其中所述第一虚拟区块串重新映射表包括对应所述N个平面的N个平面栏位,其中所述N个平面栏位的每一个平面栏位依据所述第一顺序记录对应的平面的M个物理区块的映射信息,
其中每一所述映射信息包括:
第一类映射值,用以表示对应所述第一类映射值的物理区块不为所述坏物理区块,并且对应所述第一类映射值的所述物理区块的物理地址为原有的物理地址;
第二类映射值,用以表示对应所述第二类映射值的物理区块为已被执行所述坏物理区块重新映射操作的坏物理区块,其中所述第二类映射值还用以表示用以修复对应所述第二类映射值的所述物理区块的牺牲物理区块的物理地址;
第三类映射值,用以表示对应所述第三类映射值 的物理区块为牺牲物理区块并且为不可用的;或
第四类映射值,用以表示对应所述第四类映射值 的物理区块为没有执行所述坏物理区块重新映射操作的坏物理区块。
11.根据权利要求9所述的存储控制器,
其中若所述虚拟区块串管理表属于第二类型,所述虚拟区块串管理表包括第二虚拟区块串位图与第二虚拟区块串重新映射表,
其中所述第二虚拟区块串位图包括状态栏与索引栏,其中所述状态栏记录依据所述第一顺序排列的分别对应所述M个虚拟区块串的M个状态值,其中所述索引栏记录依据所述第一顺序排列的分别对应所述M个虚拟区块串的M个索引值,
其中每一所述状态值包括:
第一类状态值,用以表示对应所述第一类状态值的虚拟区块串中的所有物理区块皆为正常的,其中所述第一类状态值还用以表示对应所述第一类状态值的所述虚拟区块串不具有任何坏物理区块;
第二类状态值,用以表示对应所述第二类状态值的所述虚拟区块串具有经由执行坏区块重新映射操作而修复的一或多个坏物理区块;
第三类状态值,用以表示对应所述第三类状态值的虚拟区块串中的一或多个物理区块为不可用的;或
第四类状态值,用以表示对应所述第四类状态值的虚拟区块串中的所有物理区块皆为不可用的,
其中在所述M个索引值中,对应所述第一类状态值的索引值为第一类索引值,并且对应所述第二类状态值、所述第三类状态值与所述第四类状态值的索引值为第二类索引值,其中所述第二类索引值包括不大于M的正整数,
其中所述第二虚拟区块串重新映射表包括索引栏与对应所述N个平面的N个平面栏位,其中所述索引栏记录所述第二虚拟区块串位图的所述M个索引值中属于所述第二类索引值的P个索引值,其中P小于或等于M,
其中所述N个平面栏位的每一个平面栏位依据所述P个索引值记录对应所述P个索引值的P个虚拟区块串的P个物理区块的映射信息,
其中每一所述映射信息包括:
第一类映射值,用以表示对应所述第一类映射值的物理区块不为所述坏物理区块,并且对应所述第一类映射值的所述物理区块的物理地址为原有的物理地址;
第二类映射值,用以表示对应所述第二类映射值的物理区块为已被执行所述坏物理区块重新映射操作的坏物理区块,其中所述第二类映射值还用以表示用以修复对应所述第二类映射值的所述物理区块的牺牲物理区块的物理地址;
第三类映射值,用以表示对应所述第三类映射值 的物理区块为牺牲物理区块并且为不可用的;以及
第四类映射值,用以表示对应所述第四类映射值 的物理区块为没有执行所述坏物理区块重新映射操作的坏物理区块,其中所述第二虚拟区块串重新映射表的所述N个平面栏位共记录N乘以P个映射信息。
12.根据权利要求9所述的存储控制器,
其中若判定在所述第i个平面中不存在排序在所述第j个物理区块后的可用的一或多个物理区块,所述区块串管理电路单元不修复所述第j个物理区块,在所述虚拟区块串管理表中记录对应所述第j个物理区块的映射信息,并且结束对应所述第j个物理区块的所述坏物理区块重新映射操作,其中对应所述第j个物理区块的所述映射信息用以表示所述第j个物理区块为没有被修复的坏物理区块。
13.根据权利要求9所述的存储控制器,
其中在识别所述一或多个坏物理区块后,所述处理器不建立坏物理区块表,其中所述处理器根据所述虚拟区块串管理表来识别所述一或多个坏物理区块的物理地址。
14.根据权利要求9所述的存储控制器,其中在上述所述处理器用以根据所述虚拟区块串管理表以指示所述存储器接口控制电路以所述多平面写入模式来执行所述写入操作的运作中,
所述处理器识别对应所述写入操作的写入数据,
其中所述处理器根据所述虚拟区块串管理表来识别一或多个第一虚拟区块串,其中所述一或多个第一虚拟区块串皆不具有任何不可用的物理区块,
其中所述处理器从所述一或多个第一虚拟区块串中选择空白的目标虚拟区块串,并且指示所述存储器接口控制电路将所述写入数据中的目标写入数据同时写入至所述目标虚拟区块串的分别对应所述N个平面的N个目标物理区块中,其中所述目标写入数据的大小是小于或等于N个物理区块的总容量。
15.根据权利要求14所述的存储控制器,其中在上述指示所述存储器接口控制电路将所述写入数据中的所述目标写入数据同时写入至所述目标虚拟区块串的分别对应所述N个平面的所述N个目标物理区块中的运作中,
所述处理器根据所述目标虚拟区块串,从所述虚拟区块串管理表中识别对应所述N个物理区块的N个映射信息,
其中所述处理器根据所述N个映射信息识别分别属于所述N个平面的N个物理地址,以指示所述存储器接口控制电路同时写入所述目标写入数据于所述N个物理地址中。
16.根据权利要求9所述的存储控制器,
若对应所述写入操作的逻辑地址已存储有旧数据,在执行完所述写入操作后,所述处理器根据所述虚拟区块串管理表来识别对应所述旧数据的旧虚拟区块串,
其中所述处理器更新所述旧虚拟区块串的有效数据数。
CN201810437502.9A 2018-05-09 2018-05-09 存储器管理方法以及存储控制器 Active CN110471612B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810437502.9A CN110471612B (zh) 2018-05-09 2018-05-09 存储器管理方法以及存储控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810437502.9A CN110471612B (zh) 2018-05-09 2018-05-09 存储器管理方法以及存储控制器

Publications (2)

Publication Number Publication Date
CN110471612A CN110471612A (zh) 2019-11-19
CN110471612B true CN110471612B (zh) 2022-09-16

Family

ID=68503665

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810437502.9A Active CN110471612B (zh) 2018-05-09 2018-05-09 存储器管理方法以及存储控制器

Country Status (1)

Country Link
CN (1) CN110471612B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210121458A (ko) * 2020-03-30 2021-10-08 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이의 동작 방법
US11137938B1 (en) * 2020-04-30 2021-10-05 Micron Technology, Inc. Converting a multi-plane write operation into multiple single plane write operations performed in parallel on a multi-plane memory device
CN113096713B (zh) * 2021-04-12 2024-05-07 合肥兆芯电子有限公司 存储器管理方法、存储器控制电路单元与存储器存储装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102902626A (zh) * 2011-07-27 2013-01-30 群联电子股份有限公司 区块管理方法、存储器控制器与存储器储存装置
CN103377143A (zh) * 2012-04-27 2013-10-30 群联电子股份有限公司 存储器管理方法、存储器控制器与存储器存储装置
CN103377129A (zh) * 2012-04-11 2013-10-30 群联电子股份有限公司 数据写入方法、存储器控制器与存储器储存装置
CN107943710A (zh) * 2016-10-13 2018-04-20 大心电子股份有限公司 存储器管理方法及使用所述方法的存储控制器

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8095765B2 (en) * 2009-03-04 2012-01-10 Micron Technology, Inc. Memory block management
TWI463313B (zh) * 2012-04-17 2014-12-01 Phison Electronics Corp 記憶體管理方法、記憶體控制器與記憶體儲存裝置
TWI486767B (zh) * 2012-06-22 2015-06-01 Phison Electronics Corp 資料儲存方法、記憶體控制器與記憶體儲存裝置
TWI584122B (zh) * 2015-11-17 2017-05-21 群聯電子股份有限公司 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102902626A (zh) * 2011-07-27 2013-01-30 群联电子股份有限公司 区块管理方法、存储器控制器与存储器储存装置
CN103377129A (zh) * 2012-04-11 2013-10-30 群联电子股份有限公司 数据写入方法、存储器控制器与存储器储存装置
CN103377143A (zh) * 2012-04-27 2013-10-30 群联电子股份有限公司 存储器管理方法、存储器控制器与存储器存储装置
CN107943710A (zh) * 2016-10-13 2018-04-20 大心电子股份有限公司 存储器管理方法及使用所述方法的存储控制器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于环形擦除算法的固态硬盘控制器设计;时丙才;《电子质量》;20180228(第02期);全文 *

Also Published As

Publication number Publication date
CN110471612A (zh) 2019-11-19

Similar Documents

Publication Publication Date Title
US9043536B2 (en) Method of recording mapping information, and memory controller and memory storage apparatus using the same
US8892814B2 (en) Data storing method, and memory controller and memory storage apparatus using the same
US20180260317A1 (en) Method for managing the copying and storing of data in garbage collection, memory storage device and memory control circuit unit using the same
TWI661299B (zh) 記憶體管理方法以及儲存控制器
US9268687B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US9639475B2 (en) Buffer memory management method, memory control circuit unit and memory storage device
US9141530B2 (en) Data writing method, memory controller and memory storage device
US8694748B2 (en) Data merging method for non-volatile memory module, and memory controller and memory storage device using the same
CN107590080B (zh) 映射表更新方法、存储器控制电路单元及存储器存储装置
US20150161042A1 (en) Memory management method, memory controlling circuit unit, and memory storage device
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
US20130332653A1 (en) Memory management method, and memory controller and memory storage device using the same
CN110471612B (zh) 存储器管理方法以及存储控制器
US8943264B2 (en) Data storing method, and memory controller and memory storage apparatus using the same
US20140089566A1 (en) Data storing method, and memory controller and memory storage apparatus using the same
US9001585B1 (en) Data writing method, memory control circuit unit and memory storage apparatus
US10509583B1 (en) Memory management method and storage controller
US9312011B1 (en) Data writing method, memory storage device and memory control circuit unit
CN111258505A (zh) 快闪存储器的数据合并方法、控制电路单元与存储装置
CN112230849B (zh) 存储器控制方法、存储器存储装置及存储器控制器
CN109273033B (zh) 存储器管理方法、存储器控制电路单元与存储器存储装置
CN110515858B (zh) 存储器管理方法以及存储控制器
US9665480B2 (en) Memory management method, memory storage device and memory control circuit unit
CN110364197B (zh) 解码方法以及存储控制器
CN112802512B (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