CN107102814A - 内存管理方法、内存控制电路单元与内存储存装置 - Google Patents

内存管理方法、内存控制电路单元与内存储存装置 Download PDF

Info

Publication number
CN107102814A
CN107102814A CN201610093817.7A CN201610093817A CN107102814A CN 107102814 A CN107102814 A CN 107102814A CN 201610093817 A CN201610093817 A CN 201610093817A CN 107102814 A CN107102814 A CN 107102814A
Authority
CN
China
Prior art keywords
erased cell
instance
memory
cell
sequencing
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
CN201610093817.7A
Other languages
English (en)
Other versions
CN107102814B (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.)
Phison Electronics Corp
Original Assignee
Phison Electronics Corp
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 Phison Electronics Corp filed Critical Phison Electronics Corp
Priority to CN201610093817.7A priority Critical patent/CN107102814B/zh
Publication of CN107102814A publication Critical patent/CN107102814A/zh
Application granted granted Critical
Publication of CN107102814B publication Critical patent/CN107102814B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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]

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)
  • Read Only Memory (AREA)

Abstract

本发明提供一种内存管理方法、内存控制电路单元与内存储存装置。本方法包括:判断初始地设定为基于第一程序化模式来程序化的第一实体抹除单元的第一磨耗数值是否与初始地设定为基于第二程序化模式来程序化的第二实体抹除单元的第二磨耗数值满足一相对关系。倘若第一磨耗数值与第二磨耗数值不满足所述相对关系时,从所述第二实体抹除单元之中选择至少一第三实体抹除单元。本方法还包括:基于第一程序化模式程序化至少一第三实体抹除单元,以储存从主机系统接收的第一数据至至少一第三实体抹除单元。本发明可改善因单阶储存单元区域与多阶储存单元区域的磨损情况不同所导致的内存储存装置的整体寿命的下降。

Description

内存管理方法、内存控制电路单元与内存储存装置
技术领域
本发明涉及一种内存管理方法、内存控制电路单元与内存储存装置,尤其涉及用于可复写式非易失性内存模块的内存管理方法及使用此方法的内存控制电路单元与内存储存装置。
背景技术
数码相机、手机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可复写式非易失性内存(rewritable non-volatile memory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,特别适于可携式电子产品,例如笔记本电脑。固态硬盘就是一种以闪存作为储存媒体的内存储存装置。因此,近年闪存产业成为电子产业中相当热门的一环。
一般来说,依据每个记忆胞可储存的位数,反及(NAND)型闪存可区分为单阶储存单元(Single Level Cell,SLC)NAND型闪存、多阶储存单元(Multi Level Cell,MLC)NAND型闪存与三阶储存单元(Trinary Level Cell,TLC)NAND型闪存。其中SLC NAND型闪存的每个记忆胞可储存1个位的数据(即,“1”与“0”),MLC NAND型闪存的每个记忆胞可储存2个位的数据(即,“11”、“10”、“01”与“00”)并且TLC NAND型闪存的每个记忆胞可储存3个位的数据(即,“111”、“110”、“101”、“100”、“011”、“010”、“001”与“000”)。以SLC NAND型闪存与MLC NAND型闪存为例,SLC NAND型闪存使用一组高低电压以区分出两种电荷值(即,“1”与“0”),而MLC NAND型闪存采用较高的电压驱动,并通过不同级别的电压记录2个位的数据,因此,MLC NAND型闪存的数据记录的密度会比SLC NAND型闪存多一倍。
此外,由于SLC NAND型闪存结构简单,其在写入数据时电压变化较小,所以寿命较长;而MLC NAND型闪存则为了增加记录空间,其电压区间较小且在写入数据时电压变化较频繁,需要更多的循环冗余校验(Cyclic Redundancy Check,CRC)空间,因此MLC NAND型闪存在寿命方面仅约可承受1万次的读写,远低于SLC NAND型闪存的10万次。综合而言,SLC NAND型闪存在寿命和性能方面拥有独特的优势,不过容量较低且价格昂贵,而MLCNAND型闪存虽然在容量方面有优势,但在速度和寿命方面却存在先天的不足。为了能够在不影响闪存效能的情况下有效降低成本,目前的做法倾向在可复写式非易失性内存中同时配置SLC与MLC(或TLC)两种不同形态的区域,并利用较快速的SLC区域来记录较重要、需要频繁读取的信息与管理用的表格,利用较低成本的MLC区域来记录一般的档案数据,由此可兼顾闪存低成本高效能的需求。
由于对SLC区域与MLC区域之不同的使用行为会造成此两个区域的磨损情况不同,因此,在经常发生断电的内存储存装置中,由于常常需要更新数据与重建表格,因此会造成SLC区域的磨损程度升高;反之,在经常写入大量随机数据的内存储存装置中,则容易造成MLC区域的磨损程度升高,据此,当其中一个区域的寿命提前结束,则相当于内存储存装置的整体寿命的结束,且当其中一个区域的磨损特别严重时,更大幅缩短内存储存装置的整体寿命。以往在可复写式非易失性内存的管理中,仅会使用SLC区域来记录上述较重要且需要频繁读取的信息与表格,因此为了确保存放此些特定信息与表格的SLC区域有足够的空间可以运用,会预先配置出足够大的空间给SLC区域,因而造成存放数据的MLC区域(或TLC区域)被压缩。
发明内容
本发明提供一种内存管理方法、内存控制电路单元与内存储存装置,可改善因SLC区域与MLC区域的磨损情况不同所导致的内存储存装置的整体寿命的下降。
本发明的一范例实施例提供一种内存管理方法,其用于可复写式非易失性内存模块,其中所述可复写式非易失性内存模块包括多个实体抹除单元,其中所述实体抹除单元包括多个第一实体抹除单元与多个第二实体抹除单元,其中所述第一实体抹除单元被配置为基于第一程序化模式来程序化,其中所述第二实体抹除单元被初始地配置为基于第二程序化模式来程序化,其中所述数据程序化方法包括:从主机系统接收第一数据,且此第一数据欲被储存至至少一第一逻辑单元;判断所述第一实体抹除单元的第一磨耗数值是否与所述第二实体抹除单元的第二磨耗数值满足一相对关系;倘若第一磨耗数值与第二磨耗数值不满足所述相对关系时,从所述第二实体抹除单元之中选择至少一第三实体抹除单元;以及基于第一程序化模式程序化至少一第三实体抹除单元,以储存第一数据至至少一第三实体抹除单元,并且将至少一第一逻辑单元映像至至少一第三实体抹除单元。
在本发明的一范例实施例中,上述内存管理方法,还包括:倘若第一磨耗数值与第二磨耗数值满足所述相对关系时,从所述第一实体抹除单元之中选择至少一第四实体抹除单元;以及基于第一程序化模式程序化至少一第四实体抹除单元,以储存第一数据至至少一第四实体抹除单元,并且将至少一第一逻辑单元映像至至少一第四实体抹除单元。
在本发明的一范例实施例中,上述内存管理方法,还包括:判断至少一第一逻辑单元是否为使用频繁的逻辑单元;以及在至少一第一逻辑单元为使用频繁的逻辑单元时,执行判断所述第一磨耗数值与所述第二磨耗数值是否满足所述相对关系的步骤。
在本发明的一范例实施例中,上述判断至少一第一逻辑单元是否为使用频繁的逻辑单元的步骤包括:判断至少一第一逻辑单元的使用次数值是否大于使用次数门槛值;以及当至少一第一逻辑单元的使用次数值大于使用次数门槛值时,将至少一第一逻辑单元设为使用频繁的逻辑单元。
在本发明的一范例实施例中,上述内存管理方法,还包括:在所述至少一第三实体抹除单元被抹除后,配置所述至少一第三实体抹除单元基于第二程序化模式来程序化。
在本发明的一范例实施例中,上述相对关系为第一磨耗数值不大于第二磨耗数值。所述第一磨耗数值为所述第一实体抹除单元的抹除次数、读取次数、程序化次数、错误更正码的错误位数与低密度奇偶校正码总和的其中之一或其组合,且所述第二磨耗数值为所述第二实体抹除单元的抹除次数、读取次数、程序化次数、错误更正码的错误位数与低密度奇偶校正码总和的其中之一或其组合。
在本发明的一范例实施例中,上述第一磨耗数值为所述第一实体抹除单元的抹除次数,且所述第二磨耗数值为所述第二实体抹除单元的抹除次数。每一个第一实体抹除单元的第一最大抹除次数大于每一个第二实体抹除单元的第二最大抹除次数,且所述第一实体抹除单元的总数量小于所述第二实体抹除单元的总数量。所述内存管理方法还包括:为所述第一实体抹除单元记录第一总抹除次数,以及为所述第二实体抹除单元的记录第二总抹除次数;以及每当抹除所述第一实体抹除单元的至少其中之一时计数第一总抹除次数,且每当抹除第二实体抹除单元的至少其中之一时计数第二总抹除次数。
在本发明的一范例实施例中,上述判断所述第一实体抹除单元的第一磨耗数值是否与所述第二实体抹除单元的第二磨耗数值满足所述相对关系的步骤之前,还包括:根据所述第一最大抹除次数与所述第一实体抹除单元的总数量获得所述第一实体抹除单元的第一最大总抹除次数;根据所述第二最大抹除次数与所述第二实体抹除单元的总数量获得所述第二实体抹除单元的第二最大总抹除次数;根据所述第一最大总抹除次数与所述第二最大总抹除次数的比值获得权重值;以及根据所述权重值将第一磨耗数值设为第一总抹除次数,以及将第二磨耗数值设为第二总抹除次数。
在本发明的一范例实施例中,上述判断所述第一实体抹除单元的第一磨耗数值是否与所述第二实体抹除单元的第二磨耗数值满足所述相对关系的步骤之前,还包括:根据所述第一总抹除次数与所述第一实体抹除单元的总数量获得对应每一个第一实体抹除单元的第一平均抹除次数,且将第一磨耗数值设为第一平均抹除次数;以及根据所述第二总抹除次数与所述第二实体抹除单元的总数量获得对应每一个第二实体抹除单元的第二平均抹除次数,且将第二磨耗数值设为第二平均抹除次数。
在本发明的一范例实施例中,若所述实体抹除单元中的一个记忆胞被基于所述第一程序化模式来程序化,则第一数目的位数据被储存至所述记忆胞,若所述记忆胞被基于所述第二程序化模式来程序化,则第二数目的位数据被储存至所述记忆胞,其中所述第一数目小于所述第二数目。
本发明的另一范例实施例提供一种内存控制电路单元,其用于控制可复写式非易失性内存模块,其中所述可复写式非易失性内存模块包括多个实体抹除单元,其中所述实体抹除单元包括多个第一实体抹除单元与多个第二实体抹除单元,其中所述第一实体抹除单元被配置为基于第一程序化模式来程序化,其中所述第二实体抹除单元被初始地配置为基于第二程序化模式来程序化,其中所述内存控制电路单元包括主机接口、内存接口及内存管理电路。所述主机接口用以耦接至主机系统。所述内存接口用以耦接至所述可复写式非易失性内存模块。所述内存管理电路耦接至所述主机接口与所述内存接口,其中所述内存管理电路用以从所述主机系统接收第一数据,所述第一数据欲被储存至至少一第一逻辑单元,其中所述内存管理电路更用以判断所述第一实体抹除单元的第一磨耗数值是否与所述第二实体抹除单元的第二磨耗数值满足一相对关系,其中倘若判定第一磨耗数值与第二磨耗数值不满足所述相对关系时,内存管理电路更用以从所述第二实体抹除单元之中选择至少一第三实体抹除单元,所述内存管理电路更用以发送第一写入指令序列以指示基于第一程序化模式程序化至少一第三实体抹除单元,以储存第一数据至至少一第三实体抹除单元,并且将至少一第一逻辑单元映像至至少一第三实体抹除单元。
在本发明的一范例实施例中,倘若判定第一磨耗数值与第二磨耗数值满足所述相对关系时,所述内存管理电路更用以从所述第一实体抹除单元之中选择至少一第四实体抹除单元,所述内存管理电路更用以发送第二写入指令序列以指示基于第一程序化模式程序化至少一第四实体抹除单元,以储存第一数据至至少一第四实体抹除单元,并且将至少一第一逻辑单元映像至至少一第四实体抹除单元。
在本发明的一范例实施例中,上述内存管理电路更用以判断所述至少一第一逻辑单元是否为使用频繁的逻辑单元,在判定所述至少一第一逻辑单元为使用频繁的逻辑单元时,内存管理电路更用以执行判断第一磨耗数值与第二磨耗数值是否满足所述相对关系的操作。
在本发明的一范例实施例中,上述判断至少一第一逻辑单元是否为使用频繁的逻辑单元的操作中,所述内存管理电路更用以判断至少一第一逻辑单元的使用次数值是否大于使用次数门槛值,其中当判定所述至少一第一逻辑单元的使用次数值大于使用次数门槛值时,所述内存管理电路更用以将至少一第一逻辑单元设为使用频繁的逻辑单元。
在本发明的一范例实施例中,在所述至少一第三实体抹除单元被抹除后,所述内存管理电路更用以配置所述至少一第三实体抹除单元基于第二程序化模式来程序化。
在本发明的一范例实施例中,上述相对关系为第一磨耗数值不大于第二磨耗数值。所述第一磨耗数值为所述第一实体抹除单元的抹除次数、读取次数、程序化次数、错误更正码的错误位数与低密度奇偶校正码总和的其中之一或其组合,且所述第二磨耗数值为所述第二实体抹除单元的抹除次数、读取次数、程序化次数、错误更正码的错误位数与低密度奇偶校正码总和的其中之一或其组合。
在本发明的一范例实施例中,上述第一磨耗数值为所述第一实体抹除单元的抹除次数,且所述第二磨耗数值为所述第二实体抹除单元的抹除次数。每一个第一实体抹除单元的第一最大抹除次数大于每一个第二实体抹除单元的第二最大抹除次数,且所述第一实体抹除单元的总数量小于所述第二实体抹除单元的总数量。所述内存管理电路更用以为所述第一实体抹除单元记录第一总抹除次数,以及为所述第二实体抹除单元的记录一第二总抹除次数。所述内存管理电路更用以在抹除所述第一实体抹除单元的至少其中之一时计数所述第一总抹除次数,且在抹除所述第二实体抹除单元的至少其中之一时计数所述第二总抹除次数。
在本发明的一范例实施例中,上述在判断所述第一实体抹除单元的第一磨耗数值是否与所述第二实体抹除单元的第二磨耗数值满足所述相对关系的操作之前,所述内存管理电路更用以根据所述第一最大抹除次数与所述第一实体抹除单元的总数量获得所述第一实体抹除单元的第一最大总抹除次数。所述内存管理电路更用以根据所述第二最大抹除次数与所述第二实体抹除单元的总数量获得所述第二实体抹除单元的第二最大总抹除次数。其中所述内存管理电路更用以根据所述第一最大总抹除次数与所述第二最大总抹除次数的比值获得一权重值,以及根据此权重值将第一磨耗数值设为第一总抹除次数,以及将第二磨耗数值设为第二总抹除次数。
在本发明的一范例实施例中,上述在判断所述第一实体抹除单元的第一磨耗数值是否与所述第二实体抹除单元的第二磨耗数值满足所述相对关系的操作之前,所述内存管理电路更用以根据所述第一总抹除次数与所述第一实体抹除单元的总数量获得对应每一个第一实体抹除单元的第一平均抹除次数,且将第一磨耗数值设为第一平均抹除次数。所述内存管理电路更用以根据所述第二总抹除次数与所述第二实体抹除单元的总数量获得对应每一个第二实体抹除单元的第二平均抹除次数,且将第二磨耗数值设为第二平均抹除次数。
在本发明的一范例实施例中,若所述实体抹除单元中的一个记忆胞被基于所述第一程序化模式来程序化,则第一数目的位数据被储存至所述记忆胞,若所述记忆胞被基于所述第二程序化模式来程序化,则第二数目的位数据被储存至所述记忆胞,其中所述第一数目小于所述第二数目。
本发明的另一范例实施例提供一种内存储存装置,其包括连接接口单元、可复写式非易失性内存模块及内存控制电路单元。所述连接接口单元用以耦接至主机系统。所述可复写式非易失性内存模块包括多个实体抹除单元,其中所述实体抹除单元包括多个第一实体抹除单元与多个第二实体抹除单元,其中所述第一实体抹除单元被配置为基于第一程序化模式来程序化,其中所述第二实体抹除单元被初始地配置为基于第二程序化模式来程序化。所述内存控制电路单元耦接至所述连接接口单元与所述可复写式非易失性内存模块,其中所述内存控制电路单元用以从所述主机系统接收第一数据,其中第一数据欲被储存至至少一第一逻辑单元,其中所述内存控制电路单元更用以判断所述第一实体抹除单元的第一磨耗数值是否与所述第二实体抹除单元的第二磨耗数值满足一相对关系。倘若判定第一磨耗数值与第二磨耗数值不满足所述相对关系时,所述内存控制电路单元更用以从所述第二实体抹除单元之中选择至少一第三实体抹除单元,以及发送第一写入指令序列以指示基于所述第一程序化模式程序化至少一第三实体抹除单元,以储存第一数据至所述至少一第三实体抹除单元,并且将所述至少一第一逻辑单元映像至所述至少一第三实体抹除单元。
在本发明的一范例实施例中,倘若判定所述第一磨耗数值与所述第二磨耗数值满足所述相对关系时,所述内存控制电路单元更用以从所述第一实体抹除单元之中选择至少一第四实体抹除单元。所述内存控制电路单元更用以发送第二写入指令序列以指示基于所述第一程序化模式程序化至少一第四实体抹除单元,以储存第一数据至所述至少一第四实体抹除单元,并且将所述至少一第一逻辑单元映像至所述至少一第四实体抹除单元。
在本发明的一范例实施例中,上述内存控制电路单元更用以判断所述至少一第一逻辑单元是否为使用频繁的逻辑单元,且在判定所述至少一第一逻辑单元为使用频繁的逻辑单元时,所述内存控制电路单元更用以执行判断所述第一磨耗数值与所述第二磨耗数值是否满足所述相对关系的操作。
在本发明的一范例实施例中,上述在判断所述至少一第一逻辑单元是否为使用频繁的逻辑单元的操作中,所述内存控制电路单元更用以判断所述至少一第一逻辑单元的使用次数值是否大于使用次数门槛值,以及当判定所述至少一第一逻辑单元的使用次数值大于使用次数门槛值时,所述内存控制电路单元更用以将所述至少一第一逻辑单元设为使用频繁的逻辑单元。
在本发明的一范例实施例中,在所述至少一第三实体抹除单元被抹除后,所述内存控制电路单元更用以配置所述至少一第三实体抹除单元基于第二程序化模式来程序化。
在本发明的一范例实施例中,上述相对关系为第一磨耗数值不大于第二磨耗数值。所述第一磨耗数值为所述第一实体抹除单元的抹除次数、读取次数、程序化次数、错误更正码的错误位数与低密度奇偶校正码总和的其中之一或其组合,且所述第二磨耗数值为所述第二实体抹除单元的抹除次数、读取次数、程序化次数、错误更正码的错误位数与低密度奇偶校正码总和的其中之一或其组合。
在本发明的一范例实施例中,上述第一磨耗数值为所述第一实体抹除单元的抹除次数,且所述第二磨耗数值为所述第二实体抹除单元的抹除次数。每一个第一实体抹除单元的第一最大抹除次数大于每一个第二实体抹除单元的第二最大抹除次数,且所述第一实体抹除单元的总数量小于所述第二实体抹除单元的总数量。所述内存控制电路单元更用以为所述第一实体抹除单元记录第一总抹除次数,以及为所述第二实体抹除单元的记录第二总抹除次数。所述内存控制电路单元更用以在抹除所述第一实体抹除单元的至少其中之一时计数第一总抹除次数,且在抹除所述第二实体抹除单元的至少其中之一时计数第二总抹除次数。
在本发明的一范例实施例中,上述在判断所述第一实体抹除单元的第一磨耗数值是否与所述第二实体抹除单元的第二磨耗数值满足所述相对关系的操作之前,所述内存控制电路单元更用以根据所述第一最大抹除次数与所述第一实体抹除单元的总数量获得所述第一实体抹除单元的第一最大总抹除次数,以及根据所述第二最大抹除次数与所述第二实体抹除单元的总数量获得所述第二实体抹除单元的第二最大总抹除次数。所述内存控制电路单元更用以根据所述第一最大总抹除次数与所述第二最大总抹除次数的比值获得一权重值,以及根据所述权重值将第一磨耗数值设为第一总抹除次数,以及将第二磨耗数值设为第二总抹除次数。
在本发明的一范例实施例中,在判断所述第一实体抹除单元的第一磨耗数值是否与所述第二实体抹除单元的第二磨耗数值满足所述相对关系的操作之前,所述内存控制电路单元更用以根据所述第一总抹除次数与所述第一实体抹除单元的总数量获得对应每一个第一实体抹除单元的第一平均抹除次数,且将所述第一磨耗数值设为所述第一平均抹除次数。以及,所述内存控制电路单元更用以根据所述第二总抹除次数与所述第二实体抹除单元的总数量获得对应每一个第二实体抹除单元的第二平均抹除次数,且将第二磨耗数值设为第二平均抹除次数。
在本发明的一范例实施例中,若所述实体抹除单元中的一个记忆胞被基于所述第一程序化模式来程序化,则第一数目的位数据被储存至所述记忆胞,若所述记忆胞被基于所述第二程序化模式来程序化,则第二数目的位数据被储存至所述记忆胞,其中所述第一数目小于所述第二数目。
基于上述,本发明范例实施例是根据被配置为基于第一程序化模式来程序化的第一实体抹除单元的抹除次数与初始地配置为基于第二程序化模式来程序化的第二实体抹除单元的抹除次数来判断第一实体抹除单元与第二实体抹除单元的磨损程度,以动态地决定要从第一实体抹除单元中或者第二实体抹除单元中选择实体抹除单元来更新需要频繁存取的信息与管理用的表格,并且皆以第一程序化模式程序化来程序化从第一实体抹除单元中或者第二实体抹除单元中所选择的实体抹除单元,以储存需要频繁存取的信息与管理用的表格。如此一来,可使得第一实体抹除单元的磨损与第二实体抹除单元的磨损达到平衡状态,进而有效地改善因SLC区域与MLC区域(或TLC区域)的磨损情况不同所导致的内存储存装置的整体寿命的下降。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是根据本发明的一范例实施例所显示的主机系统、内存储存装置及输入/输出(I/O)装置的示意图;
图2是根据本发明的另一范例实施例所显示的主机系统、内存储存装置及I/O装置的示意图;
图3是根据本发明的另一范例实施例所显示的主机系统与内存储存装置的示意图;
图4是根据本发明的一范例实施例所显示的内存储存装置的概要方框图;
图5是根据本发明的一范例实施例所显示的内存控制电路单元的概要方框图;
图6是根据本发明的一范例实施例所显示的管理可复写式非易失性内存模块的示意图;
图7是根据本发明的一范例实施例所显示的记忆胞的临界电压分布的示意图;
图8是根据本发明的一范例实施例所显示的内存控制电路单元(或内存管理电路)执行内存管理方法的范例流程图;
图9是根据本发明的另一范例实施例所显示的内存控制电路单元(或内存管理电路)执行内存管理方法的范例流程图;
图10A~图10C是根据本发明范例实施例所显示的内存控制电路单元(或内存管理电路)执行内存管理方法的范例示意图;
图11是根据本发明的范例实施例所显示的内存管理方法的流程图。
附图标记:
10、30:内存储存装置
11、31:主机系统
110:系统总线
111:处理器
112:随机存取内存
113:只读存储器
114:数据传输接口
12:输入/输出(I/O)装置
20:主板
201:随身碟
202:记忆卡
203:固态硬盘
204:无线内存储存装置
205:全球定位系统模块
206:网络适配器
207:无线传输装置
208:键盘
209:屏幕
210:喇叭
32:SD卡
33:CF卡
34:嵌入式储存装置
341:嵌入式多媒体卡
342:嵌入式多芯片封装储存装置
402:连接接口单元
404:内存控制电路单元
406:可复写式非易失性内存模块
502:内存管理电路
504:主机接口
506:内存接口
508:错误检查与校正电路
510:缓冲存储器
512:电源管理电路
601:SLC区域
602:MLC区域
610(0)~610(B):实体抹除单元
612(0)~612(C):逻辑单元
701、702、711~714、721~728:分布
1000:第一数据
1002:下实体程序化单元
1004:上实体程序化单元
S801:步骤(初始地配置所述第一实体抹除单元基于第一程序化模式来程序化,以及所述第二实体抹除单元基于第二程序化模式来程序化)
S803:步骤(从主机系统接收第一数据,且所述第一数据欲被储存至至少一第一逻辑单元)
S805:步骤(判断所述第一实体抹除单元的第一磨耗数值是否与所述第二实体抹除单元的第二磨耗数值满足一相对关系)
S807:步骤(从所述第二实体抹除单元之中选择至少一第三实体抹除单元)
S809:步骤(基于第一程序化模式程序化至少一第三实体抹除单元,以储存第一数据至至少一第三实体抹除单元,并且将至少一第一逻辑单元映像至至少一第三实体抹除单元)
S811:步骤(在至少一第三实体抹除单元被抹除后,配置至少一第三实体抹除单元基于第二程序化模式来程序化)
S813:步骤(从所述第一实体抹除单元之中选择至少一第四实体抹除单元)
S815:步骤(基于第一程序化模式程序化至少一第四实体抹除单元,以储存第一数据至至少一第四实体抹除单元,并且将至少一第一逻辑单元映像至至少一第四实体抹除单元)
S817:步骤(在至少一第四实体抹除单元被抹除后,配置至少一第四实体抹除单元基于第一程序化模式来程序化)
S901:步骤(初始地配置所述第一实体抹除单元基于第一程序化模式来程序化,以及所述第二实体抹除单元基于第二程序化模式来程序化)
S903:步骤(从主机系统接收第一数据,且所述第一数据欲被储存至至少一第一逻辑单元)
S904:步骤(判断至少一第一逻辑单元是否为使用频繁的逻辑单元)
S905:步骤(判断所述第一实体抹除单元的第一磨耗数值是否与所述第二实体抹除单元的第二磨耗数值满足一相对关系)
S907:步骤(从所述第二实体抹除单元之中选择至少一第三实体抹除单元)
S909:步骤(基于第一程序化模式程序化至少一第三实体抹除单元,以储存第一数据至至少一第三实体抹除单元,并且将至少一第一逻辑单元映像至至少一第三实体抹除单元)
S911:步骤(在至少一第三实体抹除单元被抹除后,配置至少一第三实体抹除单元基于第二程序化模式来程序化)
S913:步骤(从所述第一实体抹除单元之中选择至少一第四实体抹除单元)
S915:步骤(基于第一程序化模式程序化至少一第四实体抹除单元,以储存第一数据至至少一第四实体抹除单元,并且将至少一第一逻辑单元映像至至少一第四实体抹除单元)
S917:步骤(在至少一第四实体抹除单元被抹除后,配置至少一第四实体抹除单元基于第一程序化模式来程序化)
S919:步骤(从所述第二实体抹除单元之中选择至少一第五实体抹除单元)
S921:步骤(基于第二程序化模式程序化至少一第五实体抹除单元,以储存第一数据至至少一第五实体抹除单元,并且将至少一第一逻辑单元映像至至少一第五实体抹除单元)
S923:步骤(在至少一第五实体抹除单元被抹除后,配置至少一第五实体抹除单元基于第二程序化模式来程序化)
S1101:步骤(初始地配置所述第一实体抹除单元基于第一程序化模式来程序化,以及所述第二实体抹除单元基于第二程序化模式来程序化)
S1103:步骤(从主机系统接收第一数据,且所述第一数据欲被储存至至少一第一逻辑单元)
S1105:步骤(判断所述第一实体抹除单元的第一磨耗数值是否与所述第二实体抹除单元的第二磨耗数值满足一相对关系)
S1107:步骤(倘若所述第一磨耗数值与所述第二磨耗数值不满足所述相对关系时,从所述第二实体抹除单元之中选择至少一第三实体抹除单元)
S1109:步骤(基于第一程序化模式程序化至少一第三实体抹除单元,以储存第一数据至至少一第三实体抹除单元,并且将至少一第一逻辑单元映像至至少一第三实体抹除单元)
具体实施方式
一般而言,内存储存装置(亦称,内存储存系统)包括可复写式非易失性内存模块(rewritablenon-volatile memory module)与控制器(亦称,控制电路)。通常内存储存装置是与主机系统一起使用,以使主机系统可将数据写入至内存储存装置或从内存储存装置中读取数据。
图1是根据本发明的一范例实施例所显示的主机系统、内存储存装置及输入/输出(I/O)装置的示意图。图2是根据本发明的另一范例实施例所显示的主机系统、内存储存装置及I/O装置的示意图。
请参照图1与图2,主机系统11一般包括处理器111、随机存取内存(random access memory,RAM)112、只读存储器(read only memory,ROM)113及数据传输接口114。处理器111、随机存取内存112、只读存储器113及数据传输接口114皆耦接至系统总线(system bus)110。
在本范例实施例中,主机系统11是通过数据传输接口114与内存储存装置10耦接。例如,主机系统11可经由数据传输接口114将数据储存至内存储存装置10或从内存储存装置10中读取数据。此外,主机系统11是通过系统总线110与I/O装置12耦接。例如,主机系统11可经由系统总线110将输出信号传送至I/O装置12或从I/O装置12接收输入信号。
在本范例实施例中,处理器111、随机存取内存112、只读存储器113及数据传输接口114可设置在主机系统11的主板20上。数据传输接口114的数目可以是一或多个。通过数据传输接口114,主板20可以经由有线或无线方式耦接至内存储存装置10。内存储存装置10可例如是随身碟201、记忆卡202、固态硬盘(Solid State Drive,SSD)203或无线内存储存装置204。无线内存储存装置204可例如是近距离无线通信(Near Field Communication,NFC)内存储存装置、无线传真(WiFi)内存储存装置、蓝牙(Bluetooth)内存储存装置或低功耗蓝牙内存储存装置(例如,iBeacon)等以各式无线通信技术为基础的内存储存装置。此外,主板20也可以通过系统总线110耦接至全球定位系统(Global Positioning System,GPS)模块205、网络适配器206、无线传输装置207、键盘208、屏幕209、喇叭210等各式I/O装置。例如,在一范例实施例中,主板20可通过无线传输装置207存取无线内存储存装置204。
在一范例实施例中,所提及的主机系统为可实质地与内存储存装置配合以储存数据的任意系统。虽然在上述范例实施例中,主机系统是以计算机系统来作说明,然而,图3是根据本发明的另一范例实施例所显示的主机系统与内存储存装置的示意图。请参照图3,在另一范例实施例中,主机系统31也可以是数码相机、摄影机、通信装置、音频播放器、视频播放器或平板计算机等系统,而内存储存装置30可为其所使用的SD卡32、CF卡33或嵌入式储存装置34等各式非易失性内存储存装置。嵌入式储存装置34包括嵌入式多媒体卡(embeddedMMC,eMMC)341和/或嵌入式多芯片封装储存装置(embedded Multi Chip Package,eMCP)342等各类型将内存模块直接耦接于主机系统的基板上的嵌入式储存装置。
图4是根据本发明的一范例实施例所显示的内存储存装置的概要方框图。
请参照图4,内存储存装置10包括连接接口单元402、内存控制电路单元404与可复写式非易失性内存模块406。
在本范例实施例中,连接接口单元402是兼容于序列先进附件(Serial Advanced TechnologyAttachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元402亦可以是符合并列先进附件(Parallel Advanced Technology Attachment,PATA)标准、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394标准、高速周边零件连接接口(Peripheral Component Interconnect Express,PCI Express)标准、通用串行总线(Universal SerialBus,USB)标准、安全数字(Secure Digital,SD)接口标准、超高速一代(Ultra High Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、记忆棒(Memory Stick,MS)接口标准、多芯片封装(Multi-Chip Package)接口标准、多媒体储存卡(Multi Media Card,MMC)接口标准、嵌入式多媒体储存卡(Embedded Multimedia Card,eMMC)接口标准、通用闪存(UniversalFlash Storage,UFS)接口标准、嵌入式多芯片封装(embedded Multi Chip Package,eMCP)接口标准、小型快闪(Compact Flash,CF)接口标准、整合式驱动电子接口(Integrated DeviceElectronics,IDE)标准或其他适合的标准。连接接口单元402可与内存控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于一包含内存控制电路单元404的芯片外。
内存控制电路单元404用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令并且根据主机系统11的指令在可复写式非易失性内存模块406中进行数据的写入、读取与抹除等运作。
可复写式非易失性内存模块406是耦接至内存控制电路单元404并且用以储存主机系统11所写入的数据。可复写式非易失性内存模块406可以是单阶记忆胞(Single Level Cell,SLC)NAND型闪存模块(即,一个记忆胞中可储存1个位的闪存模块)、多阶记忆胞(Multi LevelCell,MLC)NAND型闪存模块(即,一个记忆胞中可储存2个位的闪存模块)、三阶记忆胞(TripleLevel Cell,TLC)NAND型闪存模块(即,一个记忆胞中可储存3个位的闪存模块)、其他闪存模块或其他具有相同特性的内存模块。
可复写式非易失性内存模块406中的每一个记忆胞是以电压(以下亦称为临界电压)的改变来储存一或多个位。具体来说,每一个记忆胞的控制栅极(control gate)与信道之间有一个电荷捕捉层。通过施予一写入电压至控制栅极,可以改变电荷补捉层的电子量,进而改变记忆胞的临界电压。此改变临界电压的程序亦称为“把数据写入至记忆胞”或“程序化记忆胞”。随着临界电压的改变,可复写式非易失性内存模块406中的每一个记忆胞具有多个储存状态。通过施予读取电压可以判断一个记忆胞是属于哪一个储存状态,藉此取得此记忆胞所储存的一或多个位。
图5是根据本发明的一范例实施例所显示的内存控制电路单元的概要方框图。
请参照图5,内存控制电路单元404包括内存管理电路502、主机接口504及内存接口506。
内存管理电路502用以控制内存控制电路单元404的整体运作。具体来说,内存管理电路502具有多个控制指令,并且在内存储存装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。以下说明内存管理电路502的操作时,等同于说明内存控制电路单元404的操作。
在本范例实施例中,内存管理电路502的控制指令是以固件型式来实作。例如,内存管理电路502具有微处理器单元(未显示)与只读存储器(未显示),并且此些控制指令是被刻录至此只读存储器中。当内存储存装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
在另一范例实施例中,内存管理电路502的控制指令亦可以程序代码型式储存于可复写式非易失性内存模块406的特定区域(例如,内存模块中专用于存放系统数据的系统区)中。此外,内存管理电路502具有微处理器单元(未显示)、只读存储器(未显示)及随机存取内存(未显示)。特别是,此只读存储器具有开机码(boot code),并且当内存控制电路单元404被致能时,微处理器单元会先执行此开机码来将储存于可复写式非易失性内存模块406中的控制指令加载至内存管理电路502的随机存取内存中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。
此外,在另一范例实施例中,内存管理电路502的控制指令亦可以一硬件型式来实作。例如,内存管理电路502包括微控制器、记忆胞管理电路、内存写入电路、内存读取电路、内存抹除电路与数据处理电路。记忆胞管理电路、内存写入电路、内存读取电路、内存抹除电路与数据处理电路是耦接至微控制器。记忆胞管理电路用以管理可复写式非易失性内存模块406的记忆胞或其群组。内存写入电路用以对可复写式非易失性内存模块406下达写入指令序列以将数据写入至可复写式非易失性内存模块406中。内存读取电路用以对可复写式非易失性内存模块406下达读取指令序列以从可复写式非易失性内存模块406中读取数据。内存抹除电路用以对可复写式非易失性内存模块406下达抹除指令序列以将数据从可复写式非易失性内存模块406中抹除。数据处理电路用以处理欲写入至可复写式非易失性内存模块406的数据以及从可复写式非易失性内存模块406中读取的数据。写入指令序列、读取指令序列及抹除指令序列可各别包括一或多个程序代码或脚本并且用以指示可复写式非易失性内存模块406执行相对应的写入、读取及抹除等操作。在一范例实施例中,内存管理电路502还可以下达其他类型的指令序列给可复写式非易失性内存模块406以指示执行相对应的操作。
主机接口504是耦接至内存管理电路502并且用以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口504来传送至内存管理电路502。在本范例实施例中,主机接口504是兼容于SATA标准。然而,必须了解的是本发明不限于此,主机接口504亦可以是兼容于PATA标准、IEEE 1394标准、PCI Express标准、USB标准、SD标准、UHS-I标准、UHS-II标准、MS标准、MMC标准、eMMC标准、UFS标准、CF标准、IDE标准或其他适合的数据传输标准。
内存接口506是耦接至内存管理电路502并且用以存取可复写式非易失性内存模块406。也就是说,欲写入至可复写式非易失性内存模块406的数据会经由内存接口506转换为可复写式非易失性内存模块406所能接受的格式。具体来说,若内存管理电路502要存取可复写式非易失性内存模块406,内存接口506会传送对应的指令序列。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种记忆体操作(例如,改变读取电压准位或执行垃圾回收程序等等)的相对应的指令序列。这些指令序列例如是由内存管理电路502产生并且通过内存接口506传送至可复写式非易失性内存模块406。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括脚本或程序代码。例如,在读取指令序列中,会包括读取的辨识码、内存地址等信息。
在一范例实施例中,内存控制电路单元404还包括错误检查与校正电路508、缓冲存储器510与电源管理电路512。
错误检查与校正电路508是耦接至内存管理电路502并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当内存管理电路502从主机系统11中接收到写入指令时,错误检查与校正电路508会为对应此写入指令的数据产生对应的错误更正码(error correctingcode,ECC)和/或错误检查码(error detecting code,EDC),并且内存管理电路502会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性内存模块406中。之后,当内存管理电路502从可复写式非易失性内存模块406中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路508会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正程序。
缓冲存储器510是耦接至内存管理电路502并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性内存模块406的数据。电源管理电路512是耦接至内存管理电路502并且用以控制内存储存装置10的电源。
图6是根据本发明的一范例实施例所显示的管理可复写式非易失性内存模块的示意图。
必须了解的是,必须了解的是,在此描述可复写式非易失性内存模块406的实体抹除单元的运作时,以“选择”与“分组”等词来操作实体抹除单元是逻辑上的概念。也就是说,可复写式非易失性内存模块406的实体抹除单元的实际位置并未更动,而是逻辑上对可复写式非易失性内存模块406的实体抹除单元进行操作。
在本范例实施例中,可复写式非易失性内存模块406的记忆胞会构成多个实体程序化单元,并且此些实体程序化单元会构成多个实体抹除单元。具体来说,同一条字符在线的记忆胞会组成一个或多个实体程序化单元。若每一个记忆胞可储存2个以上的位,则同一条字符在线的实体程序化单元至少可被分类为下实体程序化单元与上实体程序化单元。例如,一个记忆胞的最低有效位(Least Significant Bit,LSB)是属于下实体程序化单元,并且一个记忆胞的最高有效位(Most Significant Bit,MSB)是属于上实体程序化单元。一般来说,在MLC NAND型闪存中,下实体程序化单元的写入速度会大于上实体程序化单元的写入速度,和/或下实体程序化单元的可靠度是高于上实体程序化单元的可靠度。
在本范例实施例中,实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。例如,实体程序化单元为实体页面(page)或是实体扇(sector)。若实体程序化单元为实体页面,则此些实体程序化单元通常包括数据位区与冗余(redundancy)位区。数据位区包含多个实体扇,用以储存用户数据,而冗余位区用以储存系统数据(例如,错误更正码)。在本范例实施例中,数据位区包含32个实体扇,且一个实体扇的大小为512字节(byte,B)。然而,在其他范例实施例中,数据位区中也可包含8个、16个或数目更多或更少的实体扇,并且每一个实体扇的大小也可以是更大或更小。另一方面,实体抹除单元为抹除的最小单位。亦即,每一实体抹除单元含有最小数目之一并被抹除的记忆胞。例如,实体抹除单元为实体区块(block)。
请参照图6,内存管理电路502会将可复写式非易失性内存模块406的实体抹除单元610(0)~610(B)逻辑地分组为SLC区域601与MLC区域602。
内存管理电路502会配置逻辑单元612(0)~612(C)以映像SLC区域601的实体抹除单元610(0)~610(A)中的部分实体抹除单元,以及MLC区域602的实体抹除单元610(A+1)~610(B)中的部分实体抹除单元。例如,在本范例实施例中,主机系统11是通过逻辑地址(logical address,LA)来存取SLC区域601与MLC区域602中的数据,因此,逻辑单元612(0)~612(C)中的每一个逻辑单元是指一个逻辑地址。此外,逻辑单元612(0)~612(C)中的每一个逻辑单元也可以是指一个逻辑程序化单元、一个逻辑抹除单元或者由多个连续或不连续的逻辑地址组成。并且,逻辑单元612(0)~612(C)中的每一个逻辑单元可被映像至一或多个实体抹除单元。值得注意的是,在本发明范例实施例中,是以内存管理电路502将可复写式非易失性内存模块406的实体抹除单元610(0)~610(B)逻辑地分组为SLC区域601与MLC区域602的例子进行说明,然而,本发明并不限于此。例如,在另一范例实施例中,内存管理电路502亦可以是将可复写式非易失性内存模块406的实体抹除单元610(0)~610(B)逻辑地分组为SLC区域与TLC区域。
内存管理电路502会将逻辑单元与实体抹除单元之间的映像关系(亦称为逻辑-实体映像关系)记录于至少一逻辑-实体映像表。当主机系统11欲从内存储存装置10读取数据或写入数据至内存储存装置10时,内存管理电路502可根据此逻辑-实体映像表来执行对于内存储存装置10的数据存取。
在本范例实施例中,内存管理电路502会将属于SLC区域601的实体抹除单元610(0)~610(A)(以下亦称为第一实体抹除单元)配置为初始地(或者,仅能)基于某一程序化模式(以下亦称为第一程序化模式)来程序化并且将属于MLC区域602的实体抹除单元610(A+1)~610(B)(以下亦称为第二实体抹除单元)初始地配置为基于另一程序化模式(以下亦称为第二程序化模式)来程序化。一般来说,基于第一程序化模式来程序化记忆胞的程序化速度会高于基于第二程序化模式来程序化记忆胞的程序化速度。此外,基于第一程序化模式而被储存的数据的可靠度也往往高于基于第二程序化模式而被储存的数据的可靠度。
在本范例实施例中,第一程序化模式是指单层记忆胞(single layer memory cell,SLC)模式、下实体程序化(lower physical programming)模式、混合程序化(mixture programming)模式及少层记忆胞(less layer memory cell)模式的其中之一。在单层记忆胞模式中,一个记忆胞只储存一个位的数据。在下实体程序化模式中,只有下实体程序化单元会被程序化,而此下实体程序化单元所对应的上实体程序化单元可不被程序化。在混合程序化模式中,有效数据(或,真实数据)会被程序化于下实体程序化单元中,而同时虚拟数据(dummy data)会被程序化至储存有效数据的下实体程序化单元所对应的上实体程序化单元中。在少层记忆胞模式中,一个记忆胞储存一第一数目的位的数据。例如,此第一数目可设为“1”。
在本范例实施例中,第二程序化模式是指多阶记忆胞(MLC)程序化模式、三阶(TLC)记忆胞程序化模式或类似模式。在第二程序化模式中,一个记忆胞储存有一第二数目的位的数据,其中此第二数目等于或大于“2”。例如,此第二数目可设为2或3。在另一范例实施例中,上述第一程序化模式中的第一数目与第二程序化模式中的第二数目皆可以是其他数目,只要满足第二数目大于第一数目即可。
图7是根据本发明的一范例实施例所显示的记忆胞的临界电压分布的示意图。
请参照图7,在本范例实施例中,若基于第一程序化模式来程序化多个记忆胞,则程序化后的记忆胞的临界电压分布可能会包括分布701与分布702。例如,若某一个记忆胞被程序化以储存位“0”,则此记忆胞的临界电压会属于分布701;若某一个记忆胞被程序化以储存位“1”,则此记忆胞的临界电压会属于分布702。然而,在另一范例实施例中,临界电压属于分布701的记忆胞也可以是被用以储存位“1”,并且临界电压属于分布702的记忆胞也可以是被用以储存位“0”。此外,若基于第二程序化模式来程序化多个记忆胞,则程序化后的记忆胞的临界电压分布可能会包括分布711~714或者分布721~728。
在第二数目是“2”的范例实施例中,若某一个记忆胞被程序化以储存位“00”,则此记忆胞的临界电压会属于分布711;若某一个记忆胞被程序化以储存位“01”,则此记忆胞的临界电压会属于分布712;若某一个记忆胞被程序化以储存位“10”,则此记忆胞的临界电压会属于分布713;若某一个记忆胞被程序化以储存位“11”,则此记忆胞的临界电压会属于分布714。然而,在另一范例实施例中,临界电压属于分布711~714的记忆胞也可以分别用以储存位“11”、“10”、“01”及“00”或者其他位总数为“2”的位值。
在第二数目是“3”的范例实施例中,属于分布721~728的记忆胞分别用以储存位“000”、“001”、“010”、“011”、“100”、“101”、“110”及“111”。然而,在另一范例实施例中,属于分布721~728的记忆胞也可以分别用以储存位“111”、“110”、“101”、“100”、“011”、“010”、“001”及“000”或者其他位总数为“3”的位值。
为了说明方便,在以下范例实施例中,是以每一个记忆胞储存“1”个位的数据的少层记忆胞模式来作为第一程序化模式的范例,并且以每一个记忆胞储存有“2”或“3”个位的数据的程序化模式来作为第二程序化模式的范例。但是,在其他范例实施例中,只要满足上述条件的第一程序化模式与第二程序化模式皆可以被采用。此外,为了更清楚地描述本发明的内存管理电路502执行内存管理方法的运作,以下将参照图8、图9与图10A~图10C以数个范例来进行说明。图8~图9是根据不同的范例实施例所显示的内存控制电路单元(或内存管理电路)执行内存管理方法的范例流程图。图10A~图10C是根据本发明范例实施例所显示的内存控制电路单元(或内存管理电路)执行内存管理方法的范例示意图。
请先参照图8与图10A,首先,如上所述,在步骤S801中,内存管理电路502会初始地配置第一实体抹除单元基于第一程序化模式来程序化,以及第二实体抹除单元基于第二程序化模式来程序化,例如,将属于SLC区域601的第一实体抹除单元610(0)~610(A)配置为初始地基于第一程序化模式来程序化并且将属于MLC区域602的第二实体抹除单元610(A+1)~610(B)初始地配置为基于第二程序化模式来程序化。
接着,在步骤S803中,当主机系统11欲储存数据时,主机系统11会发送写入指令至内存储存装置10。此写入指令会指示将数据储存至某一个逻辑单元(亦称为至少一第一逻辑单元),而储存至此至少一第一逻辑单元的数据(亦称为第一数据1000)会被视为是属于此至少一第一逻辑单元的数据。换言之,内存管理电路502会从主机系统11接收此第一数据1000。
在步骤S805中,内存管理电路502会判断第一实体抹除单元610(0)~610(A)的磨耗数值(亦称为第一磨耗数值)是否与第二实体抹除单元610(A+1)~610(B)的磨耗数值(亦称为第二磨耗数值)满足一相对关系。在此,相对关系指的是第一磨耗数值不大于第二磨耗数值的情况,或者第一磨耗数值小于或等于第二磨耗数值的情况。换言之,内存管理电路502是判断第一实体抹除单元610(0)~610(A)的第一磨耗数值是否非大于第二实体抹除单元610(A+1)~610(B)的第二磨耗数值。然而,本发明并不加以限制相对关系的定义,例如,在另一范例实施例中,相对关系亦可以是第一磨耗数值大于第二磨耗数值的情况。
第一实体抹除单元与第二实体抹除单元各自的磨耗数值用以作为两者之间的磨耗程度的比较,以下将以第一磨耗数值为第一实体抹除单元的抹除次数,且第二磨耗数值为第二实体抹除单元的抹除次数的范例进行说明。值得注意的是,本发明并不欲限制磨耗数值的类型,例如,上述第一实体抹除单元的第一磨耗数值可以是第一实体抹除单元的抹除次数、读取次数、程序化次数、错误更正码的错误位数与低密度奇偶校正码总和的其中之一或其组合,而第二磨耗数值为第二实体抹除单元的抹除次数、读取次数、程序化次数、错误更正码的错误位数与低密度奇偶校正码总和的其中之一或其组合。也就是说,磨耗数值可以是任何可用以判断磨损程度的依据。
在本范例实施例中,内存管理电路502会为第一实体抹除单元记录对应的总抹除次数(亦称为第一总抹除次数),以及为第二实体抹除单元的记录对应的总抹除次数(亦称为第二总抹除次数)。具体而言,每一实体抹除单元610(0)~610(B)的抹除次数是有限的,在此以配置为基于第一程序化模式来程序化的SLC区域601与初始地配置为基于第二程序化模式来程序化的MLC区域602为例来说明记录抹除次数的方法。由于MLC区域602的数据记录的密度比SLC区域601多一倍,因此,MLC区域602的每一个第二实体抹除单元610(A+1)~610(B)平均会在抹除1万次(亦称为第一最大抹除次数)之后就会损坏,而SLC区域601的每一个第一实体抹除单元610(0)~610(A)则平均是在抹除10万次(亦称为第二最大抹除次数)之后才会损坏,并且当实体抹除单元磨损导致储存容量的部分容量损失或性能明显退化时,会造成用户所储存的数据遗失或无法储存数据等不利影响。特别是,实体抹除单元的磨损取决于每一实体抹除单元中被程序化或抹除的次数。也就是说,若一实体抹除单元仅被程序化(或者写入)一次,然后未被再次程序化时,此实体抹除单元的磨损程度将相对地低。反之,若一个实体抹除单元被重复地程序化与抹除时,则此实体抹除单元的磨损程度就会相对地高。例如,当可复写式非易失性内存模块406的第一实体抹除单元610(0)~610(A)中的一个实体抹除单元被抹除时,内存管理电路502会将对应第一实体抹除单元610(0)~610(A)的第一总抹除次数加1,而当可复写式非易失性内存模块406的第二实体抹除单元610(A+1)~610(B)中的一个实体抹除单元被抹除时,内存管理电路502会将对应第二实体抹除单元610(A+1)~610(B)的第二总抹除次数加1。例如,第一总抹除次数与第二总抹除次数可被记录于一抹除次数表中或者其所对应的实体抹除单元中。一般而言,根据SLC区域601的寿命长、速度快、容量低与价格贵的特性,以及MLC区域602的容量大与价格低的特性,通常会将可复写式非易失性内存模块406的容量的8%~9%划分为SLC区域601,而其余的91%~92%划分为MLC区域602。据此,每一个第一实体抹除单元的第一最大抹除次数(例如,1万次)会大于每一个第二实体抹除单元的第二最大抹除次数(例如,10万次),且第一实体抹除单元的总数量会小于第二实体抹除单元的总数量。
由于每一个第一实体抹除单的第一最大抹除次数与每一个第二实体抹除单元的第二最大抹除次数的不同,会造成内存管理电路502判断对应第一实体抹除单元的抹除次数是否大于对应第二实体抹除单元的抹除次数的判断基准的不同。因此,在本范例实施例中,内存管理电路502会根据一个权重值对第一实体抹除单元的抹除次数(即,第一磨耗数值)或第二实体抹除单元的抹除次数(即,第二磨耗数值)进行加权运算,再根据加权后的结果比较(即,第一磨耗数值)与第二磨耗数值两者之间的大小。所述权重值用以使得对应第一实体抹除单元的抹除次数与对应第二实体抹除单元的抹除次数在对等的基础上进行比较。例如,所述权重值可以是根据内存储存装置10出厂时的技术规格来设定,亦可以是根据内存储存装置10的可复写式非易失性内存模块406的配置结构而被设定。
具体而言,在判断第一实体抹除单元的第一磨耗数值是否与第二实体抹除单元的第二磨耗数值满足相对关系的步骤之前,内存管理电路502会先根据第一最大抹除次数与第一实体抹除单元的总数量计算对应第一实体抹除单元的最大总抹除次数(亦称为第一最大总抹除次数),以及根据第二最大抹除次数与第二实体抹除单元的总数量计算对应第二实体抹除单元的最大总抹除次数(亦称为第二最大总抹除次数),以获得所述权重值。在第一最大抹除次数与第二最大抹除次数分别为1万次与10万次,且第一实体抹除单元的总数量与第二实体抹除单元的总数量分别为60个与100个的例子中,第一最大总抹除次数即为60万次(即,1万次*60个),而第二最大总抹除次数即为1000万次,据此,内存管理电路502会根据第一最大总抹除次数(即,60万次)与第二最大总抹除次数(即,1000万次)的比值获得所述权重值大约为“16.7”(即,1000万次/60万次)。在此假设,上述内存管理电路502所记录的第一总抹除次数与所记录的第二总抹除次数分别为50万次与60万次,则内存管理电路502接着会将第一磨耗数值设为第一总抹除次数(即,50万次)乘上权重值(即,16.7)所获得的次数(即,833万次),以及直接将第二磨耗数值设为第二总抹除次数(即,60万)。之后,内存管理电路502即可根据第一磨耗数值(即,833万次)与第二磨耗数值(即,60万),在对等的基础上进行判断第一实体抹除单元的抹损程度是否大于第二实体抹除单元的抹损程度的操作。
值得注意的是,本发明并不加以限制记录抹除次数以判断第一实体抹除单元的抹损程度是否大于第二实体抹除单元的抹损程度的方法。例如,在另一范例实施例中,内存管理电路502是计算对应每一个第一实体抹除单元的平均抹除次数(亦称为第一平均抹除次数),以及对应每一个第二实体抹除单元的平均抹除次数(亦称为第二平均抹除次数)以使得对应第一实体抹除单元的抹除次数与对应第二实体抹除单元的抹除次数在对等的基础上进行比较。例如,在所记录的第一总抹除次数与所记录的第二总抹除次数分别为50万次与60万次,且第一实体抹除单元的总数量与第二实体抹除单元的总数量分别为60个与100个的例子中,第一平均抹除次数即为8333次(即,50万次/60个),而第二平均抹除次数即为600次(即,60万次/1000个)。因此,内存管理电路502会将第一磨耗数值设为第一平均抹除次数,以及将第二磨耗数值设为第二平均抹除次数,并进行判断第一实体抹除单元的抹损程度是否大于第二实体抹除单元的抹损程度的操作。
在上述范例实施例中,所获得的第一磨耗数值(即,833万次或8333次)大于所获得的第二磨耗数值(即,60万次或600次),亦即,内存管理电路502判定第一磨耗数值与第二磨耗数值不满足所述相对关系,换言之,内存管理电路502是判定MLC区域602的磨损程度较SLC区域601的磨损程度低,因此,内存管理电路502会在步骤S807中,从磨损程度较低的MLC区域602的第二实体抹除单元602之中选择至少一实体抹除单元(亦称为第三实体抹除单元)来写入所接收的第一数据1000。如图10A所示,主机系统11所发送的写入指令指示将第一数据1000储存至第一逻辑单元612(0)~612(1),而内存管理电路502选择第二实体抹除单元602中的第三实体抹除单元610(A+1)~610(A+2)来写入所接收的第一数据1000。
接着,在步骤S809中,内存管理电路502会基于第一程序化模式程序化原先初始地配置为基于第二程序化模式来程序化的第二实体抹除单元中的第三实体抹除单元610(A+1)~610(A+2)。在本范例实施例中,由于在第一程序化模式的下实体程序化模式中,只有下实体程序化单元1002会被程序化,而此下实体程序化单元1002所对应的上实体程序化单元1004可不被程序化,因此,内存管理电路502是将第一数据1000依序写入第三实体抹除单元610(A+1)~610(A+2)的下实体程序化单元1002,并且将第一逻辑单元612(0)~612(1)映像至第三实体抹除单元610(A+1)~610(A+2)的下实体程序化单元1002。
之后,在步骤S811中,倘若对应第一逻辑单元612(0)~612(1)的第一数据被更新,且第三实体抹除单元610(A+1)~610(A+2)被抹除后,内存管理电路502会将已被配置为基于第一程序化模式来程序化的第三实体抹除单元610(A+1)~610(A+2)归类为属于MLC区域602的第二实体抹除单元,并且将实体抹除单元610(A+1)~610(A+2)重新配置为原先所配置的基于第二程序化模式来程序化的实体抹除单元。
请参照图8与图10B,假设在另一范例实施例中,于步骤S805中判断所获得的第一磨耗数值非大于所获得的第二磨耗数值,亦即,内存管理电路502判定第一磨耗数值与第二磨耗数值满足所述相对关系,换言之,SLC区域601的磨损程度较MLC区域602的磨损程度低,因此,内存管理电路502会在步骤S813中,从磨损程度较低的SLC区域601的第一实体抹除单元之中选择至少一实体抹除单元(亦称为第四实体抹除单元)来写入所接收的第一数据1000。如图10B所示,主机系统11所发送的写入指令指示将第一数据1000储存至第一逻辑单元612(0)~612(1),而内存管理电路502选择第一实体抹除单元601中的第四实体抹除单元610(0)~610(1)来写入所接收的第一数据1000。
接着,在步骤S815中,内存管理电路502会基于第一程序化模式程序化原先配置为基于第一程序化模式来程序化的第一实体抹除单元中的第四实体抹除单元610(0)~610(1),并且将第一逻辑单元612(0)~612(1)映像至第四实体抹除单元610(0)~610(1)。
之后,在步骤S817中,倘若对应第一逻辑单元612(0)~612(1)的第一数据1000被更新,且第四实体抹除单元610(0)~610(1)被抹除后,内存管理电路502仍是将被配置为基于第一程序化模式来程序化的第四实体抹除单元610(0)~610(1)归类为属于SLC区域601的第一实体抹除单元,亦即,实体抹除单元610(0)~610(1)并未改变其原先的配置,仍是被配置为基于第一程序化模式来程序化的实体抹除单元。
图9所示的范例实施例是类似于图8所示的范例实施例,不同之处在于,图9的范例实施例是在主机系统11所写入的第一数据所欲储存的第一逻辑单元为使用频繁的逻辑单元时,内存管理电路502才会执行判断第一磨耗数值与第二磨耗数值是否大满足所述相对关系的步骤。在此,判断所述第一逻辑单元是否为使用频繁的逻辑单元的目的在于,确认主机系统11所写入的第一数据是否为需要频繁存取的信息或特定的管理用的表格。也就是说,图9的范例实施例仅有在主机系统11所写入的数据为需要频繁存取的信息或特定的管理用的表格时,才会进行比较两区块的磨损程度的操作以从SLC区域601与MLC区域602中选择的磨损程度较低的区域来写入上述数据。
请参照图9与图10C,其中步骤S901与步骤S903是相同于图8的步骤S801与步骤S803,在此不再重述。在内存管理电路502接收欲被储存至至少一第一逻辑单元的第一数据之后,内存管理电路502会进一步的在步骤S904中,判断所述至少一第一逻辑单元是否为使用频繁的逻辑单元。具体而言,内存管理电路502会记录每一逻辑单元的使用次数值以判断此使用次数值是否大于使用次数门槛值,例如,在内存储存装置10运作期间记录主机系统11于每一逻辑单元中下达写入指令的次数作为使用次数值。类似地,使用次数值可被记录于一使用计数表中,并且在内存储存装置10运作时,内存管理电路502会将使用计数表加载至缓冲存储器510以进行读取与更新。在此,使用次数门槛值是由内存储存装置设计人员于出厂时即完成设定,也就是说,使用次数门槛值是内存储存装置设计上的选择,不同的需求可做相对应的调整及优化。此外,本发明并不加以限制确定所写入的数据是否为频繁存取的特定数据的方法或者判断所述至少一第一逻辑单元是否为使用频繁的逻辑单元的方法,例如,在另一范例实施例中,内存管理电路502可根据所接收的数据的类型、大小或格式直接判断其是否为需要频繁存取的信息或特定的管理用的表格。在本发明又一范例实施例中,内存管理电路502是藉由计数每一逻辑单元的连续使用次数,并判断一逻辑单元的连续使用次数是否达到连续使用次数门槛值,由此来决定此逻辑单元是否为使用频繁的逻辑单元;或者内存管理电路502是在一预定时间内判断一逻辑单元的使用次数是否达到一预定门槛值,来决定此逻辑单元是否为使用频繁的逻辑单元。
在上述至少一第一逻辑单元的使用次数值大于使用次数门槛值时,内存管理电路502会判断此至少一第一逻辑单元为使用频繁的逻辑单元,并进行步骤S905~S917的平衡SLC区域601的抹损程度与MLC区域602的抹损程度的操作,以使得磨损特别严重的区域能够趋缓,进而让SLC区域601的实体抹除单元的磨损与MLC区域602的实体抹除单元的磨损达到平衡状态。类似地,由于图9的步骤S905~S917相同于图8的步骤S805~S817,因此不再重述。
特别是,在步骤S904中,倘若内存管理电路502判断至少一第一逻辑单元非为使用频繁的逻辑单元时,内存管理电路502会进行一般的写入操作,并使用容量较大的MLC区域602的实体抹除单元来记录所接收的一般的档案数据。例如,在步骤S919中,内存管理电路502会从MLC区域602的第二实体抹除单元602之中选择至少一实体抹除单元(亦称为第五实体抹除单元)来写入所接收的第一数据1000。如图10C所示,主机系统11所发送的写入指令指示将第一数据1000储存至第一逻辑单元612(0)~612(1),而内存管理电路502选择第二实体抹除单元602中的第五实体抹除单元610(A+1)来写入所接收的第一数据1000。
接着,在步骤S921中,内存管理电路502会基于第二程序化模式程序化原先即初始地配置为基于第二程序化模式来程序化的第二实体抹除单元中的第五实体抹除单元610(A+1),并且将第一逻辑单元612(0)~612(1)映像至第五实体抹除单元610(A+1)。值得注意的是,在本范例实施例中,由于在第二程序化模式的多阶记忆胞(MLC)程序化模式中,下实体程序化单元1002与上实体程序化单元1004皆会被用来储存数据,并且当使用第二程序化模式来写入数据时,内存管理电路502会对一个实体抹除单元的下实体程序化单元1002与上实体程序化单元1004执行程序化操作,因此,内存管理电路502是将第一数据1000依序写入第五实体抹除单元610(A+1)的下实体程序化单元1002与上实体程序化单元1004,并且将第一逻辑单元612(0)~612(1)映像至第五实体抹除单元610(A+1)的下实体程序化单元1002与上实体程序化单元1004。
之后,在步骤S923中,倘若对应第一逻辑单元612(0)~612(1)的第一数据被更新,且第五实体抹除单元610(A+1)被抹除后,内存管理电路502会将第五实体抹除单元610(A+1)归类为属于MLC区域602的第二实体抹除单元,且不更动实体抹除单元610(A+1)的配置,亦即,其仍为基于第二程序化模式来程序化的实体抹除单元。如此一来,藉由频繁存取的特定数据来平衡SLC区域601中的第一实体抹除单元与MLC区域602中的第二实体抹除单元的抹损程度,不仅达到更快的读写速度,更有效地使得第一实体抹除单元的磨损与第二实体抹除单元的磨损达到平衡状态,进而有效地改善因SLC区域与MLC区域(或TLC区域)的磨损情况不同所导致的内存储存装置的整体寿命的下降。
图11是根据本发明的范例实施例所显示的内存管理方法的流程图。
请参照图11,在步骤S1101中,内存管理电路502会初始地配置第一实体抹除单元基于第一程序化模式来程序化,以及第二实体抹除单元基于第二程序化模式来程序化。
在步骤S1103中,内存管理电路502从主机系统11接收第一数据,且此第一数据欲被储存至至少一第一逻辑单元。
在步骤S1105中,内存管理电路502会判断第一实体抹除单元的第一磨耗数值是否与第二实体抹除单元的第二磨耗数值满足一相对关系。
倘若第一磨耗数值与第二磨耗数值不满足所述相对关系时,在步骤S1107中,内存管理电路502会从所述第二实体抹除单元之中选择至少一第三实体抹除单元。
接着,在步骤S1107中,内存管理电路502会基于第一程序化模式程序化至少一第三实体抹除单元,并且将至少一第一逻辑单元映像至至少一第三实体抹除单元。
然而,图11中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图11中各步骤可以实作为多个程序代码或是电路,本发明不加以限制。此外,图11的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。
综上所述,本发明范例实施例的内存管理方法、内存控制电路单元与内存储存装置藉由判断被配置为基于第一程序化模式来程序化的第一实体抹除单元与初始地配置为基于第二程序化模式来程序化的第二实体抹除单元的磨损程度,以动态地从第一实体抹除单元中或者第二实体抹除单元中选择磨损程度较低的实体抹除单元来更新或写入数据,并且皆以第一程序化模式程序化来程序化从第一实体抹除单元中或者第二实体抹除单元中所选择的实体抹除单元,由此使得第一实体抹除单元的磨损与第二实体抹除单元的磨损达到平衡状态,且有效地改善因SLC区域与MLC区域(或TLC区域)的磨损情况不同所导致的内存储存装置的整体寿命的下降。此外,藉由本范例实施例的利用频繁存取的特定数据来平衡SLC区域与MLC区域(或TLC区域)的抹损程度的方法,不仅提升内存储存装置整体的读写速度,更在兼顾存放数据的MLC区域(或TLC区域)不被压缩的情况下,确保存放特定信息与表格的SLC区域也有足够的空间可以运用。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中普通技术人员,在不脱离本发明的精神和范围内,当可作些许的改动与润饰,故本发明的保护范围当视所附权利要求界定范围为准。

Claims (30)

1.一种内存管理方法,用于可复写式非易失性内存模块,其特征在于,所述可复写式非易失性内存模块具有多个实体抹除单元,其中所述多个实体抹除单元包括多个第一实体抹除单元与多个第二实体抹除单元,所述内存管理方法包括:
初始地配置所述多个第一实体抹除单元基于第一程序化模式来程序化,以及所述多个第二实体抹除单元基于第二程序化模式来程序化;
从主机系统接收第一数据,其中所述第一数据欲被储存至至少一第一逻辑单元;
判断所述多个第一实体抹除单元的第一磨耗数值是否与所述多个第二实体抹除单元的第二磨耗数值满足相对关系;
倘若所述第一磨耗数值与所述第二磨耗数值不满足所述相对关系时,从所述多个第二实体抹除单元之中选择至少一第三实体抹除单元;以及
基于所述第一程序化模式程序化所述至少一第三实体抹除单元,以储存所述第一数据至所述至少一第三实体抹除单元,并且将所述至少一第一逻辑单元映像至所述至少一第三实体抹除单元。
2.根据权利要求1所述的内存管理方法,其特征在于,还包括:
倘若第一磨耗数值与所述第二磨耗数值满足所述相对关系时,从所述多个第一实体抹除单元之中选择至少一第四实体抹除单元;以及
基于所述第一程序化模式程序化所述至少一第四实体抹除单元,以储存所述第一数据至所述至少一第四实体抹除单元,并且将所述至少一第一逻辑单元映像至所述至少一第四实体抹除单元。
3.根据权利要求1所述的内存管理方法,其特征在于,还包括:
判断所述至少一第一逻辑单元是否为使用频繁的逻辑单元;以及
在所述至少一第一逻辑单元为使用频繁的逻辑单元时,执行判断所述第一磨耗数值与所述第二磨耗数值是否满足所述相对关系的步骤。
4.根据权利要求3所述的内存管理方法,其特征在于,判断所述至少一第一逻辑单元是否为使用频繁的逻辑单元的步骤包括:
判断所述至少一第一逻辑单元的使用次数值是否大于使用次数门槛值;以及
当所述至少一第一逻辑单元的使用次数值大于所述使用次数门槛值时,将所述至少一第一逻辑单元设为使用频繁的逻辑单元。
5.根据权利要求1所述的内存管理方法,其特征在于,还包括:
在所述至少一第三实体抹除单元被抹除后,配置所述至少一第三实体抹除单元基于所述第二程序化模式来程序化。
6.根据权利要求1所述的内存管理方法,其特征在于,所述相对关系为所述第一磨耗数值不大于所述第二磨耗数值,
其中所述第一磨耗数值为所述多个第一实体抹除单元的抹除次数、读取次数、程序化次数、错误更正码的错误位数与低密度奇偶校正码总和的其中之一或其组合,且所述第二磨耗数值为所述多个第二实体抹除单元的抹除次数、读取次数、程序化次数、错误更正码的错误位数与低密度奇偶校正码总和的其中之一或其组合。
7.根据权利要求1所述的内存管理方法,其特征在于,所述第一磨耗数值为所述多个第一实体抹除单元的抹除次数,且所述第二磨耗数值为所述多个第二实体抹除单元的抹除次数,其中每一个第一实体抹除单元的一第一最大抹除次数大于每一个第二实体抹除单元的一第二最大抹除次数,且所述多个第一实体抹除单元的总数量小于所述多个第二实体抹除单元的总数量,其中所述内存管理方法还包括:
为所述多个第一实体抹除单元记录第一总抹除次数,以及为所述多个第二实体抹除单元的记录第二总抹除次数;以及
每当抹除所述多个第一实体抹除单元的至少其中之一时计数所述第一总抹除次数,且每当抹除所述多个第二实体抹除单元的至少其中之一时计数所述第二总抹除次数。
8.根据权利要求6所述的内存管理方法,其特征在于,判断所述多个第一实体抹除单元的所述第一磨耗数值是否与所述多个第二实体抹除单元的所述第二磨耗数值满足所述相对关系的步骤之前,还包括:
根据所述第一最大抹除次数与所述多个第一实体抹除单元的总数量获得所述多个第一实体抹除单元的第一最大总抹除次数;
根据所述第二最大抹除次数与所述多个第二实体抹除单元的总数量获得所述多个第二实体抹除单元的第二最大总抹除次数;
根据所述第一最大总抹除次数与所述第二最大总抹除次数的比值获得权重值;以及
根据所述权重值将所述第一磨耗数值设为所述第一总抹除次数,以及将所述第二磨耗数值设为所述第二总抹除次数。
9.根据权利要求6所述的内存管理方法,其特征在于,判断所述多个第一实体抹除单元的所述第一磨耗数值是否与所述多个第二实体抹除单元的所述第二磨耗数值满足所述相对关系的步骤之前,还包括:
根据所述第一总抹除次数与所述多个第一实体抹除单元的总数量获得对应每一个第一实体抹除单元的第一平均抹除次数,且将所述第一磨耗数值设为所述第一平均抹除次数;以及
根据所述第二总抹除次数与所述多个第二实体抹除单元的总数量获得对应每一个第二实体抹除单元的第二平均抹除次数,且将所述第二磨耗数值设为所述第二平均抹除次数。
10.根据权利要求1所述的内存管理方法,其特征在于,若所述多个实体抹除单元中的一个记忆胞被基于所述第一程序化模式来程序化,则第一数目的位数据被储存至所述记忆胞,
其中若所述记忆胞被基于所述第二程序化模式来程序化,则第二数目的位数据被储存至所述记忆胞,
其中所述第一数目小于所述第二数目。
11.一种内存控制电路单元,用于控制可复写式非易失性内存模块,其特征在于,所述可复写式非易失性内存模块包括多个实体抹除单元,其中所述多个实体抹除单元包括多个第一实体抹除单元与多个第二实体抹除单元,其中所述内存控制电路单元包括:
主机接口,用以耦接至主机系统;
内存接口,用以耦接至所述可复写式非易失性内存模块;以及
内存管理电路,耦接至所述主机接口与所述内存接口,
其中所述内存管理电路用以初始地配置所述多个第一实体抹除单元基于第一程序化模式来程序化,以及所述多个第二实体抹除单元基于第二程序化模式来程序化,
其中所述内存管理电路更用以从所述主机系统接收第一数据,其中所述第一数据欲被储存至至少一第一逻辑单元,
其中所述内存管理电路更用以判断所述多个第一实体抹除单元的第一磨耗数值是否与所述多个第二实体抹除单元的第二磨耗数值满足相对关系,
其中倘若判定所述第一磨耗数值与所述第二磨耗数值不满足所述相对关系时,所述内存管理电路更用以从所述多个第二实体抹除单元之中选择至少一第三实体抹除单元,
其中所述内存管理电路更用以发送第一写入指令序列以指示基于所述第一程序化模式程序化所述至少一第三实体抹除单元,以储存所述第一数据至所述至少一第三实体抹除单元,并且将所述至少一第一逻辑单元映像至所述至少一第三实体抹除单元。
12.根据权利要求11所述的内存控制电路单元,其特征在于,倘若判定所述第一磨耗数值与所述第二磨耗数值满足所述相对关系时,所述内存管理电路更用以从所述多个第一实体抹除单元之中选择至少一第四实体抹除单元,
其中所述内存管理电路更用以发送第二写入指令序列以指示基于所述第一程序化模式程序化所述至少一第四实体抹除单元,以储存所述第一数据至所述至少一第四实体抹除单元,并且将所述至少一第一逻辑单元映像至所述至少一第四实体抹除单元。
13.根据权利要求11所述的内存控制电路单元,其特征在于,所述内存管理电路更用以判断所述至少一第一逻辑单元是否为使用频繁的逻辑单元,
其中在判定所述至少一第一逻辑单元为使用频繁的逻辑单元时,所述内存管理电路更用以执行判断所述第一磨耗数值与所述第二磨耗数值是否满足所述相对关系的操作。
14.根据权利要求13所述的内存控制电路单元,其特征在于,在断所述至少一第一逻辑单元是否为使用频繁的逻辑单元的操作中,所述内存管理电路更用以判断所述至少一第一逻辑单元的使用次数值是否大于使用次数门槛值,
其中当判定所述至少一第一逻辑单元的使用次数值大于所述使用次数门槛值时,所述内存管理电路更用以将所述至少一第一逻辑单元设为使用频繁的逻辑单元。
15.根据权利要求11所述的内存控制电路单元,其特征在于,在所述至少一第三实体抹除单元被抹除后,所述内存管理电路更用以配置所述至少一第三实体抹除单元基于所述第二程序化模式来程序化。
16.根据权利要求11所述的内存控制电路单元,其特征在于,所述相对关系为所述第一磨耗数值不大于所述第二磨耗数值,
其中所述第一磨耗数值为所述多个第一实体抹除单元的抹除次数、读取次数、程序化次数、错误更正码的错误位数与低密度奇偶校正码总和的其中之一或其组合,且所述第二磨耗数值为所述多个第二实体抹除单元的抹除次数、读取次数、程序化次数、错误更正码的错误位数与低密度奇偶校正码总和的其中之一或其组合。
17.根据权利要求11所述的内存控制电路单元,其特征在于,所述第一磨耗数值为所述多个第一实体抹除单元的抹除次数,且所述第二磨耗数值为所述多个第二实体抹除单元的抹除次数,其中每一个第一实体抹除单元的第一最大抹除次数大于每一个第二实体抹除单元的第二最大抹除次数,且所述多个第一实体抹除单元的总数量小于所述多个第二实体抹除单元的总数量,
其中所述内存管理电路更用以为所述多个第一实体抹除单元记录第一总抹除次数,以及为所述多个第二实体抹除单元的记录第二总抹除次数,
其中所述内存管理电路更用以在抹除所述多个第一实体抹除单元的至少其中之一时计数所述第一总抹除次数,且在抹除所述多个第二实体抹除单元的至少其中之一时计数所述第二总抹除次数。
18.根据权利要求16所述的内存控制电路单元,其特征在于,在判断所述多个第一实体抹除单元的所述第一磨耗数值是否与所述多个第二实体抹除单元的所述第二磨耗数值满足所述相对关系的操作之前,所述内存管理电路更用以根据所述第一最大抹除次数与所述多个第一实体抹除单元的总数量获得所述多个第一实体抹除单元的第一最大总抹除次数,
其中所述内存管理电路更用以根据所述第二最大抹除次数与所述多个第二实体抹除单元的总数量获得所述多个第二实体抹除单元的第二最大总抹除次数,
其中所述内存管理电路更用以根据所述第一最大总抹除次数与所述第二最大总抹除次数的比值获得权重值,
其中所述内存管理电路更用以根据所述权重值将所述第一磨耗数值设为所述第一总抹除次数,以及将所述第二磨耗数值设为所述第二总抹除次数。
19.根据权利要求16所述的内存控制电路单元,其特征在于,在判断所述多个第一实体抹除单元的所述第一磨耗数值是否与所述多个第二实体抹除单元的所述第二磨耗数值满足所述相对关系的操作之前,所述内存管理电路更用以根据所述第一总抹除次数与所述多个第一实体抹除单元的总数量获得对应每一个第一实体抹除单元的第一平均抹除次数,且将所述第一磨耗数值设为所述第一平均抹除次数,
其中所述内存管理电路更用以根据所述第二总抹除次数与所述多个第二实体抹除单元的总数量获得对应每一个第二实体抹除单元的第二平均抹除次数,且将所述第二磨耗数值设为所述第二平均抹除次数。
20.根据权利要求11所述的内存控制电路单元,其特征在于,若所述多个实体抹除单元中的一个记忆胞被基于所述第一程序化模式来程序化,则第一数目的位数据被储存至所述记忆胞,
其中若所述记忆胞被基于所述第二程序化模式来程序化,则第二数目的位数据被储存至所述记忆胞,
其中所述第一数目小于所述第二数目。
21.一种内存储存装置,其特征在于,包括:
连接接口单元,用以耦接至主机系统;
可复写式非易失性内存模块,其中所述可复写式非易失性内存模块包括多个实体抹除单元,其中所述多个实体抹除单元包括多个第一实体抹除单元与多个第二实体抹除单元;以及
内存控制电路单元,耦接至所述连接接口单元与所述可复写式非易失性内存模块,
其中所述内存控制电路单元用以初始地配置所述多个第一实体抹除单元基于第一程序化模式来程序化,以及所述多个第二实体抹除单元基于第二程序化模式来程序化,
其中所述内存控制电路单元更用以从所述主机系统接收第一数据,其中所述第一数据欲被储存至至少一第一逻辑单元,
其中所述内存控制电路单元更用以判断所述多个第一实体抹除单元的第一磨耗数值是否与所述多个第二实体抹除单元的第二磨耗数值满足相对关系,
其中倘若判定所述第一磨耗数值与所述第二磨耗数值不满足所述相对关系时,所述内存控制电路单元更用以从所述多个第二实体抹除单元之中选择至少一第三实体抹除单元,
其中所述内存控制电路单元更用以发送第一写入指令序列以指示基于所述第一程序化模式程序化所述至少一第三实体抹除单元,以储存所述第一数据至所述至少一第三实体抹除单元,并且将所述至少一第一逻辑单元映像至所述至少一第三实体抹除单元。
22.根据权利要求21所述的内存储存装置,其特征在于,倘若判定所述第一磨耗数值与所述第二磨耗数值满足所述相对关系时,所述内存控制电路单元更用以从所述多个第一实体抹除单元之中选择至少一第四实体抹除单元,
其中所述内存控制电路单元更用以发送第二写入指令序列以指示基于所述第一程序化模式程序化所述至少一第四实体抹除单元,以储存所述第一数据至所述至少一第四实体抹除单元,并且将所述至少一第一逻辑单元映像至所述至少一第四实体抹除单元。
23.根据权利要求21所述的内存储存装置,其特征在于,所述内存控制电路单元更用以判断所述至少一第一逻辑单元是否为使用频繁的逻辑单元,
其中在判定所述至少一第一逻辑单元为使用频繁的逻辑单元时,所述内存控制电路单元更用以执行判断所述第一磨耗数值与所述第二磨耗数值是否满足所述相对关系的操作。
24.根据权利要求23所述的内存储存装置,其特征在于,在判断所述至少一第一逻辑单元是否为使用频繁的逻辑单元的操作中,所述内存控制电路单元更用以判断所述至少一第一逻辑单元的使用次数值是否大于使用次数门槛值,
其中当判定所述至少一第一逻辑单元的使用次数值大于所述使用次数门槛值时,所述内存控制电路单元更用以将所述至少一第一逻辑单元设为使用频繁的逻辑单元。
25.根据权利要求21所述的内存储存装置,其特征在于,在所述至少一第三实体抹除单元被抹除后,所述内存控制电路单元更用以配置所述至少一第三实体抹除单元基于所述第二程序化模式来程序化。
26.根据权利要求21所述的内存储存装置,其特征在于,所述相对关系为所述第一磨耗数值不大于所述第二磨耗数值,
其中所述第一磨耗数值为所述多个第一实体抹除单元的抹除次数、读取次数、程序化次数、错误更正码的错误位数与低密度奇偶校正码总和的其中之一或其组合,且所述第二磨耗数值为所述多个第二实体抹除单元的抹除次数、读取次数、程序化次数、错误更正码的错误位数与低密度奇偶校正码总和的其中之一或其组合。
27.根据权利要求21所述的内存储存装置,其特征在于,所述第一磨耗数值为所述多个第一实体抹除单元的抹除次数,且所述第二磨耗数值为所述多个第二实体抹除单元的抹除次数,其中每一个第一实体抹除单元的第一最大抹除次数大于每一个第二实体抹除单元的第二最大抹除次数,且所述多个第一实体抹除单元的总数量小于所述多个第二实体抹除单元的总数量,
其中所述内存控制电路单元更用以为所述多个第一实体抹除单元记录第一总抹除次数,以及为所述多个第二实体抹除单元的记录第二总抹除次数,
其中所述内存控制电路单元更用以在抹除所述多个第一实体抹除单元的至少其中之一时计数所述第一总抹除次数,且在抹除所述多个第二实体抹除单元的至少其中之一时计数所述第二总抹除次数。
28.根据权利要求26所述的内存储存装置,其特征在于,在判断所述多个第一实体抹除单元的所述第一磨耗数值是否与所述多个第二实体抹除单元的所述第二磨耗数值满足所述相对关系的操作之前,所述内存控制电路单元更用以根据所述第一最大抹除次数与所述多个第一实体抹除单元的总数量获得所述多个第一实体抹除单元的第一最大总抹除次数,
其中所述内存控制电路单元更用以根据所述第二最大抹除次数与所述多个第二实体抹除单元的总数量获得所述多个第二实体抹除单元的第二最大总抹除次数,
其中所述内存控制电路单元更用以根据所述第一最大总抹除次数与所述第二最大总抹除次数的比值获得权重值,
其中所述内存控制电路单元更用以根据所述权重值将所述第一磨耗数值设为所述第一总抹除次数,以及将所述第二磨耗数值设为所述第二总抹除次数。
29.根据权利要求26所述的内存储存装置,其特征在于,在判断所述多个第一实体抹除单元的所述第一磨耗数值是否与所述多个第二实体抹除单元的所述第二磨耗数值满足所述相对关系的操作之前,所述内存控制电路单元更用以根据所述第一总抹除次数与所述多个第一实体抹除单元的总数量获得对应每一个第一实体抹除单元的第一平均抹除次数,且将所述第一磨耗数值设为所述第一平均抹除次数,
其中所述内存控制电路单元更用以根据所述第二总抹除次数与所述多个第二实体抹除单元的总数量获得对应每一个第二实体抹除单元的第二平均抹除次数,且将所述第二磨耗数值设为所述第二平均抹除次数。
30.根据权利要求21所述的内存储存装置,其特征在于,若所述多个实体抹除单元中的一个记忆胞被基于所述第一程序化模式来程序化,则第一数目的位数据被储存至所述记忆胞,
其中若所述记忆胞被基于所述第二程序化模式来程序化,则第二数目的位数据被储存至所述记忆胞,
其中所述第一数目小于所述第二数目。
CN201610093817.7A 2016-02-19 2016-02-19 存储器管理方法、存储器控制电路单元与存储器存储装置 Active CN107102814B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610093817.7A CN107102814B (zh) 2016-02-19 2016-02-19 存储器管理方法、存储器控制电路单元与存储器存储装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610093817.7A CN107102814B (zh) 2016-02-19 2016-02-19 存储器管理方法、存储器控制电路单元与存储器存储装置

Publications (2)

Publication Number Publication Date
CN107102814A true CN107102814A (zh) 2017-08-29
CN107102814B CN107102814B (zh) 2020-03-17

Family

ID=59658291

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610093817.7A Active CN107102814B (zh) 2016-02-19 2016-02-19 存储器管理方法、存储器控制电路单元与存储器存储装置

Country Status (1)

Country Link
CN (1) CN107102814B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111506262A (zh) * 2020-03-25 2020-08-07 华为技术有限公司 一种存储系统、文件存储和读取方法及终端设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090168525A1 (en) * 2007-12-27 2009-07-02 Pliant Technology, Inc. Flash memory controller having reduced pinout
CN104765569A (zh) * 2014-01-06 2015-07-08 群联电子股份有限公司 数据写入方法、存储器控制电路单元与存储器储存装置
CN104765568A (zh) * 2014-01-08 2015-07-08 群联电子股份有限公司 数据存储方法、存储器控制电路单元与存储器存储装置
CN105022695A (zh) * 2014-04-21 2015-11-04 群联电子股份有限公司 数据存储方法、存储器控制电路单元与存储器存储装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090168525A1 (en) * 2007-12-27 2009-07-02 Pliant Technology, Inc. Flash memory controller having reduced pinout
CN104765569A (zh) * 2014-01-06 2015-07-08 群联电子股份有限公司 数据写入方法、存储器控制电路单元与存储器储存装置
CN104765568A (zh) * 2014-01-08 2015-07-08 群联电子股份有限公司 数据存储方法、存储器控制电路单元与存储器存储装置
CN105022695A (zh) * 2014-04-21 2015-11-04 群联电子股份有限公司 数据存储方法、存储器控制电路单元与存储器存储装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111506262A (zh) * 2020-03-25 2020-08-07 华为技术有限公司 一种存储系统、文件存储和读取方法及终端设备

Also Published As

Publication number Publication date
CN107102814B (zh) 2020-03-17

Similar Documents

Publication Publication Date Title
TWI693516B (zh) 映射表更新方法、記憶體控制電路單元與記憶體儲存裝置
TWI591635B (zh) 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
CN106681654A (zh) 映射表载入方法与存储器存储装置
CN104765569B (zh) 数据写入方法、存储器控制电路单元与存储器储存装置
CN107766006A (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
TWI571882B (zh) 平均磨損方法、記憶體控制電路單元及記憶體儲存裝置
CN106681932A (zh) 存储器管理方法、存储器控制电路单元及存储器存储装置
CN107590080A (zh) 映射表更新方法、存储器控制电路单元及存储器存储装置
CN107402716A (zh) 数据写入方法、内存控制电路单元与内存储存装置
CN104866429A (zh) 存储器管理方法、存储器控制电路单元与存储器存储装置
CN109491588A (zh) 存储器管理方法、存储器控制电路单元与存储器存储装置
CN103514096A (zh) 数据储存方法、存储器控制器与存储器储存装置
CN107179877A (zh) 数据传输方法、存储器控制电路单元与存储器存储装置
CN107818808A (zh) 数据写入方法、存储器控制电路单元与存储器存储装置
CN106951186A (zh) 数据程序化方法、存储器存储装置及存储器控制电路单元
CN107544922A (zh) 数据写入方法、存储器控制电路单元及存储器存储装置
CN106484307A (zh) 存储器管理方法、存储器控制电路单元及存储器存储装置
CN107346211A (zh) 映射表加载方法、内存控制电路单元与内存储存装置
CN106775479A (zh) 存储器管理方法、存储器储存装置及存储器控制电路单元
CN103914391B (zh) 数据读取方法、存储器控制器与存储器存储装置
CN106959818A (zh) 数据写入方法、内存控制电路单元与内存储存装置
CN105988950A (zh) 存储器管理方法、存储器控制电路单元与存储器存储装置
CN104657083B (zh) 数据写入方法、存储器储存装置、存储器控制电路单元
CN107122308A (zh) 平均磨损方法、内存控制电路单元及内存储存装置
CN107102951B (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