CN108399134A - 存储装置及存储装置的操作方法 - Google Patents

存储装置及存储装置的操作方法 Download PDF

Info

Publication number
CN108399134A
CN108399134A CN201711021975.2A CN201711021975A CN108399134A CN 108399134 A CN108399134 A CN 108399134A CN 201711021975 A CN201711021975 A CN 201711021975A CN 108399134 A CN108399134 A CN 108399134A
Authority
CN
China
Prior art keywords
data
metadata
storage device
nonvolatile memory
catalogue
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
CN201711021975.2A
Other languages
English (en)
Other versions
CN108399134B (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN108399134A publication Critical patent/CN108399134A/zh
Application granted granted Critical
Publication of CN108399134B publication Critical patent/CN108399134B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/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
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/068Hybrid storage device
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0769Readable error formats, e.g. cross-platform generic formats, human understandable formats
    • 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/7201Logical to physical mapping or translation of blocks or pages

Landscapes

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

Abstract

一种存储装置的方法操作包括:从主机接收第一逻辑地址;判断存储在所述存储装置的易失性存储器中且与所述第一逻辑地址相关联的第一元数据是否已损坏;当确定所述第一元数据已损坏时,将所述第一元数据作为不可修正的错误进行处理;在将所述第一元数据作为所述不可修正的错误进行处理时,向所述主机提供错误消息,所述错误消息表示无法对与所述第一逻辑地址相关联的数据执行操作;在提供所述错误消息之后,从所述主机接收第二逻辑地址;判断存储在所述易失性存储器中且与所述第二逻辑地址相关联的第二元数据是否损坏;以及当确定所述第二元数据未损坏时,基于所述第二元数据来执行对所述非易失性存储器进行存取的操作。

Description

存储装置及存储装置的操作方法
技术领域
本发明概念涉及一种存储装置,更具体来说,涉及一种用于处理已损坏元数据的存储装置及所述存储装置的操作方法。
背景技术
非易失性存储器是一种即使在不再供应电力时也可检索所存储的信息的存储器。闪速存储器是非易失性存储器的实例。包括闪速存储器(例如,固态驱动器(solid statedrive,SSD)及存储器卡)的存储装置已得到广泛应用。存储装置用于存储或移动大量数据。存储装置的存储容量已大大增加。存储装置可使用元数据来存储数据。然而,即使是少量的元数据被损坏时,存储装置也无法正常运行。
发明内容
根据本发明概念的示例性实施例,提供一种非易失性存储器和易失性存储器的存储装置的操作方法。所述方法包括:从主机接收第一逻辑地址;判断存储在所述易失性存储器中且与所述第一逻辑地址相关联的第一元数据是否已损坏;当确定所述第一元数据已损坏时,将所述第一元数据作为不可修正的错误进行处理;在将所述第一元数据作为所述不可修正的错误进行处理时,向所述主机提供错误消息,所述错误消息表示无法对与所述第一逻辑地址相关联的数据执行操作;在提供所述错误消息之后,从所述主机接收第二逻辑地址;判断存储在所述易失性存储器中且与所述第二逻辑地址相关联的第二元数据是否损坏;以及,当确定所述第二元数据未损坏时,基于所述第二元数据来执行对所述非易失性存储器进行存取的操作。
根据本发明概念的示例性实施例,提供一种包括非易失性存储器和易失性存储器的存储装置的操作方法。所述方法包括:当所述存储装置被供电时,将存储在所述非易失性存储器中的目录加载到所述易失性存储器,其中所述目录包括多个目录数据,所述多个目录数据表示分别与多个元数据对应的物理地址;判断在被加载到所述易失性存储器的所述目录中的所述多个目录数据是否已损坏;判断被确定为已损坏的所述多个目录数据中的第一目录数据是否是可恢复的;当所述第一目录数据已损坏且不可恢复时,将与第一目录数据对应的第一元数据作为不可修正的错误进行处理;以及将与第二目录数据对应的第二元数据从所述非易失性存储器加载到所述易失性存储器。所述第二目录数据在所述多个目录数据中未损坏。
根据本发明概念的示例性实施例,提供一种存储装置,所述存储装置包括非易失性存储器以及控制器,所述控制器包括包括易失性存储器。所述易失性存储器被配置成存储与第一逻辑地址相关联的第一元数据以及与第二逻辑地址相关联的第二元数据。当所述控制器从主机接收所述第一逻辑地址时,所述控制器被配置成判断所述第一元数据是否已损坏,如果所述元数据已损坏,则将所述第一元数据作为不可修正的错误进行处理。然后,当所述控制器从所述主机接收所述第二逻辑地址时,所述控制器被配置成判断所述第二元数据是否已损坏,如果所述第二元数据未损坏,则基于所述第二元数据来控制对所述非易失性存储器进行存取的操作。
根据本发明概念的示例性实施例,提供一种存储装置,所述存储装置包括非易失性存储器以及控制器,所述控制器包括被配置成存储与逻辑地址相关联的原始元数据的易失性存储器。所述控制器被配置成从主机接收所述逻辑地址,判断当所述原始元数据已损坏时是否存在备份元数据,当存在所述备份元数据时基于所述备份元数据来存取所述非易失性存储器,且当不存在所述备份元数据时将所述原始元数据作为不可修正的错误进行处理,其中所述备份元数据是在所述原始元数据损坏之前所述原始元数据的副本。
附图说明
通过结合附图阅读以下详细说明,将会更清楚地理解本发明概念的实施例,在附图中:
图1是根据本发明概念示例性实施例的存储系统的方块图。
图2是图1所示控制器的实例的方块图。
图3A是根据本发明概念示例性实施例的逻辑到物理(logical-to-physical,L2P)映射表。
图3B是根据本发明概念示例性实施例的物理区块信息的图示。
图4是根据本发明概念示例性实施例的存储装置的操作方法的流程图。
图5是根据本发明概念示例性实施例的对不可恢复的元数据进行处理的操作的图示。
图6是根据本发明概念示例性实施例的存储装置的操作方法的流程图。
图7A及图7B是根据本发明概念示例性实施例的对映射数据执行不可修正的错误修正码(uncorrectable error correction code,UECC)处理的操作的图示。
图8是根据本发明概念示例性实施例在图7A及图7B所示不可修正的错误修正码处理操作中,在主机与控制器之间执行的操作的流程图。
图9A及图9B是根据本发明概念示例性实施例的对映射数据执行的不可修正的错误修正码处理操作的图示。
图10是根据本发明概念示例性实施例在图9A及图9B所示的不可修正的错误修正码(UECC)处理操作中,在主机、控制器、及非易失性存储器之间执行的操作的流程图。
图11是根据本发明概念示例性实施例对剪裁数据(trim data)执行的不可修正的错误修正码(UECC)处理操作的图示。
图12是根据本发明概念示例性实施例的存储装置的方块图。
图13是图12所示控制器的实例的方块图。
图14是根据本发明概念示例性实施例的操作存储装置的方法的流程图。
图15是根据本发明概念示例性实施例的基于元数据中的错误位的数目执行的错误检查及修正(error checking and correction,ECC)操作的图示。
图16是根据本发明概念示例性实施例的对不可恢复的元数据进行处理的操作的图示。
图17A至图19是根据本发明概念示例性实施例的对映射数据执行的不可修正的错误修正码(UECC)处理操作的图示。
图20是根据本发明概念示例性实施例的操作存储装置的方法的流程图。
图21是根据本发明概念示例性实施例的对不可恢复的剪裁数据执行的不可修正的错误修正码(UECC)处理操作的图示。
图22是根据本发明概念示例性实施例的控制器的方块图。
图23是根据本发明概念示例性实施例的操作存储装置的方法的流程图。
图24A是根据本发明概念示例性实施例的图1所示非易失性存储器中所包括的存储器单元阵列的图示。
图24B是根据本发明概念示例性实施例的图24A所示存储区域中所包括的存储器区块的图示。
图25是根据本发明概念示例性实施例的目录的图示。
图26是根据本发明概念示例性实施例的对目录执行的不可修正的错误修正码处理操作的图示。
图27是根据本发明概念示例性实施例在图26所示不可修正的错误修正码处理操作中在控制器与非易失性存储器之间执行的操作的流程图。
图28是根据本发明概念示例性实施例的控制器的方块图。
图29是根据本发明概念实施例的操作存储装置的方法的流程图。
图30是根据本发明概念示例性实施例的对目录执行的不可修正的错误修正码处理操作的图示。
图31是根据本发明概念示例性实施例的电子装置的方块图。
[符号的说明]
10:存储系统
11、13、15:第一映射信息
12、14、16:第二映射信息
17、36、38:页面
21、41:第一元页面
22、42:第二元页面
31、33、53:第一错误检查及修正数据块
32、34、35、37、54:第二错误检查及修正数据块
51:目录
100、100′:存储装置
110、110′、110a、110b、110c、110d:控制器
111:闪速转译层
111a:不可修正的错误修正码处理模块
112、112':元数据区域
112a:逻辑到物理映射表区域/映射表区域
112b:物理区块信息区域
112c:目录区域
113:错误检查及修正模块
114:处理器
115:主机接口
116:非易失性存储器接口
117:只读存储器
118:总线
120:非易失性存储器
121:元区域
122:存储区域
200:主机
1000:电子装置
1100:处理器
1200:存储器装置
1300:存储装置
1400:调制解调器
1500:输入/输出装置
1600:电源
BI:物理区块信息
BLK:区块
BLK1:第一区块/区块
BLK2:第二区块/区块
DA:数据区域
DRT:目录
EC1、EC2、EC5:映射错误检查及修正数据块
EC3:第三映射错误检查及修正数据块/映射错误检查及修正数据块
EC4:第四映射错误检查及修正数据块/映射错误检查及修正数据块
ECa、ECa′:第一剪裁错误检查及修正数据块
ECb:第二剪裁错误检查及修正数据块
L2P、L2P_T、L2P_T1a:逻辑到物理映射表
L2P_T1:逻辑到物理映射表/映射表/第一逻辑到物理映射表
L2P_T1b:映射表
L2P_T2:第二逻辑到物理映射表/映射表
L2P_T3:第三逻辑到物理映射表/映射表
L2P_T4:第四逻辑到物理映射表/映射表
L2P_T5:第五逻辑到物理映射表/映射表
L2P_T6~L2P_T11、L2P_T12、L2P_T13:映射表
L2P_T1a':逻辑到物理映射表/映射表
LA:逻辑地址
LPN1、LPN3、LPN4、LPN5:逻辑地址
LPN2:逻辑地址/第一逻辑地址
MCA:存储器单元阵列
MDP:元数据处理模块
MDS:元数据存储元件
MEMa、MEMb:存储器
MEMc、MEMd:存储器/易失性存储器
MetaPPN1:第一元物理地址/目录数据
MetaPPN2:第二元物理地址/目录数据
MetaPPN3:第三元物理地址/目录数据
MetaPPN4:第四元物理地址/目录数据
MetaPPN5:第五元物理地址/目录数据
MetaPPN6:第六元物理地址/目录数据
MetaPPN7:第七元物理地址/目录数据
PA、PPN1′、PPN2′、PPN3′、PPN4′、PPN5′、PPN6′、PPN7′:新物理地址
PAGE1:第一页面/页面
PAGE2:第二页面/页面
PAGE3:第三页面/页面
PAGE4:第四页面/页面
PAGE5~PAGEm:页面
PL1、PL2:平面
PPN1、PPN3、PPN4、PPN5、PPN6、PPN7:映射数据/物理地址
PPN2:物理地址/映射数据/第二物理地址
PPNa:物理地址/正常物理地址
PPNa′:第一个已损坏的物理地址
PPNa″:第二个已损坏的物理地址
PPNf:固定的物理地址
PPNu:物理地址
SIG UECC:不可修正的错误修正码签名
S110、S120、S130、S140、S150、S210、S220、S230、S240、S250、S260、S310、S320、S330、S340、S350、S350a、S360、S360a、S370、S380、S390、S410、S420、S430、S440、S450、S510、S520、S530、S540、S550、S610、S620、S630、S640、S650、S660、S670、S680、S690、S710、S720、S730、S740、S750、S760、S770、S780:操作
SA:备用区域
WCMD:写入命令
具体实施方式
图1是根据本发明概念示例性实施例的存储系统10的方块图。
参照图1,存储系统10包括存储装置100及主机200。存储装置100包括控制器110及非易失性存储器(non-volatile memory,NVM)120。控制器110可响应于来自主机200的写入请求/读取请求来对非易失性存储器120进行控制,以从非易失性存储器120读取数据或将数据写入非易失性存储器120。主机200可通过各种类型的接口与存储装置100进行通信,且可向存储装置100传送写入请求/读取请求。主机200可通过应用处理器(applicationprocessor,AP)或系统芯片(system-on-chip,SoC)来执行。
非易失性存储器120可包括存储器单元阵列MCA。存储器单元阵列MCA包括用于存储元数据的元区域121及用于存储用户数据的存储区域122。存储器单元阵列MCA可包括闪速存储器单元,所述闪速存储器单元可为NAND闪速存储器单元。然而,本发明概念并非仅限于此。举例来说,存储器单元可为电阻性存储器单元(例如电阻性随机存取存储器(resistive random access memory,ReRAM)单元)、相变随机存取存储器(phase-changeRAM,PRAM)单元、或磁性随机存取存储器(magnetic RAM,MRAM)单元。
在示例性实施例中,元数据包括选自以下数据中的至少一个要素:表示主机200的逻辑地址与非易失性存储器120的物理地址之间的映射信息的映射数据;表示与非易失性存储器120的每一物理区块中所包括的页面有关的信息的物理区块信息;表示从主机200擦除的数据的剪裁数据;以及表示非易失性存储器120的元区域121中存储有例如映射数据或物理区块信息等元数据的物理地址的目录。当存储装置100被供电时(例如,当存储系统10被启动时),存储在非易失性存储器120的元区域121中的元数据可被加载到控制器110。
控制器110包括元数据处理模块MDP及元数据存储元件MDS。存储在元区域121中的元数据被加载到元数据存储元件MDS。在示例性实施例中,元数据存储元件MDS被实施为易失性存储器(例如,动态随机存取存储器(dynamic RAM,DRAM)或静态随机存取存储器(static RAM,SRAM))。尽管在图1所示的实施例中元数据存储元件MDS包括在控制器110中,然而本发明概念并非仅限于此。举例来说,元数据存储元件MDS也可作为位于控制器110外部的易失性存储器被实施。
在实施例中,元数据处理模块MDP根据加载到元数据存储元件MDS的元数据是否已损坏来对所加载的元数据进行处理。在实施例中,元数据处理模块MDP判断元数据是否已损坏且将已损坏的元数据作为不可修正的错误进行处理。举例来说,元数据处理模块MDP判断已损坏的元数据是否可被恢复并将无法恢复的元数据作为不可修正的错误进行处理。不可修正的错误可对应于不可修正的错误修正码(UECC)错误。
当存储装置100从主机200接收到逻辑地址及读取请求,并且与逻辑地址相关的元数据被损坏时,存储装置100可向主机200提供错误消息,所述错误消息表示无法针对读取请求进行读取。举例来说,存储装置100可向主机200提供错误消息,所述错误消息表示无法执行与逻辑地址相关联的操作(例如,针对读取请求进行的读取)。之后,当存储装置100接收到针对另一逻辑地址的读取请求时,存储装置100根据读取请求正常地执行读取操作以存取读取数据并将所读取数据提供到主机200。当存储装置100接收到对另一逻辑地址的写入请求时,存储装置100根据写入请求正常地执行写入操作。因此,当少量的元数据损坏时,存储装置100继续执行正常操作,但对已损坏的元数据除外。
存储系统10可被应用在个人计算机(personal computer,PC)、数据服务器、网络附接存储元件(network-attached storage,NAS)、物联网(internet-of-things,IoT)装置、或便携式电子装置。所述便携式电子装置可为笔记本电脑、手机(cellular phone)、智能手机、平板电脑、个人数字助理(personal digital assistant,PDA)、企业数字助理(enterprise digital assistant,EDA)、数字照相机、数字摄像机、音频装置、便携式多媒体播放器(portable multimedia player,PMP)、个人导航装置(personal navigationdevice,PND)、MP3播放器、手持式游戏机、电子书、或可穿戴式装置。
存储装置100可为被嵌入到电子装置的内部存储器。举例来说,存储装置100可为固态驱动器(SSD)、嵌入式通用闪速存储(universal flash storage,UFS)装置、或嵌入式多媒体卡(embedded multimedia card,eMMC)。作为另外一种选择,存储装置100可为可从电子装置拆卸的外部存储器。举例来说,存储装置100可为通用闪速存储卡、紧凑式闪速(compact flash,CF)卡、安全数字(secure digital,SD)卡、微型安全数字(micro-securedigital,micro-SD)卡、迷你型安全数字(mini-secure digital,mini-SD)卡、极限数字(extreme digital,xD)卡、或记忆棒(memory stick)。
图2是图1所示控制器110的实例110a的方块图。
参照图2,控制器110a包括可经由总线118彼此通信的存储器MEMa、处理器114、主机接口(interface,IF)115、非易失性存储器接口116、及只读存储器(read-only memory,ROM)117。处理器114可包括中央处理器(central processing unit,CPU)或微处理器,且可对控制器110a的所有操作进行控制。存储器MEMa可根据处理器114的控制来运行,且可用作工作存储器、缓冲存储器或高速缓存存储器。存储器MEMa可被实施为易失性存储器(例如,动态随机存取存储器或静态随机存取存储器)或非易失性存储器(例如,相变随机存取存储器或闪速存储器)。存储器MEMa在以下阐述的实施例中被实施为易失性存储器(例如,动态随机存取存储器)。因此,动态随机存取存储器可指代元数据所加载到的存储器。
图1所示元数据处理模块MDP可通过软件或固件来实施且可被加载到存储器MEMa。元数据处理模块MDP可被实施为闪速转译层(flash translation layer,FTL)111且可被加载到存储器MEMa。然而,本发明概念并非仅限于此。举例来说,元数据处理模块MDP可由硬件来实施。在实施例中,图1所示元数据存储元件MDS对应于作为存储器MEMa的一部分的元数据区域112。在实施例中,闪速转译层111与元数据区域112形成在一个芯片上。然而,本发明概念并非仅限于此。举例来说,闪速转译层111与元数据区域112可形成在不同的芯片上。
闪速转译层111可包括不可修正的错误修正码处理模块111a。当加载到元数据区域112的元数据已损坏且不可恢复时,不可修正的错误修正码处理模块111a可将元数据作为不可修正的错误修正码错误(即,不可修正的错误)进行处理。在实施例中,在不可修正的错误修正码处理期间,不可修正的错误修正码处理模块111a通过将元数据的物理地址改变成新物理地址来更新映射表。闪速转译层111也可根据由固件实施的功能而包括地址映射模块、耗损均衡模块(wear-leveling module)、不良区块管理模块(bad block managementmodule)、无用单元收集模块(garbage collection module)、或加密/解密模块(encryption/decryption module)。
在实施例中,元数据区域112包括逻辑到物理(L2P)映射表区域112a及物理区块信息区域112b。在实施例中,逻辑到物理映射表区域112a存储包含用于将逻辑地址转译成物理地址的多个映射数据的映射表。在实施例中,物理区块信息区域112b存储物理区块信息,所述物理区块信息表示与物理区块中所包括的页面有关的信息。稍后将参照图3A及图3B来阐述映射数据及物理区块信息。
主机接口115在主机200与控制器110a之间提供接口。主机接口115可提供根据以下协议的接口:通用串行总线(universal serial bus,USB)、多媒体卡(multimedia card,MMC)、快速外围组件互连(peripheral component interconnect express,PCI-E)、高级技术附接(advanced technology attachment,ATA)、串行高级技术附接(serial ATA,SATA)、并行高级技术附接(parallel ATA,PATA)、小型计算机系统接口(small computer systeminterface,SCSI)、串行附接小型计算机系统接口(serial attached SCSI,SAS)、增强型小型磁盘接口(enhanced small disk interface,ESDI)、或集成式驱动电子装置(integrated drive electronics,IDE)。非易失性存储器接口116在控制器110a与非易失性存储器120之间提供接口。举例来说,可通过非易失性存储器接口116在控制器110a与非易失性存储器120之间传送逻辑到物理映射表、区块信息、写入数据、及读取数据。只读存储器117可存储在存储装置100进行初始启动时所需的码数据(例如,可执行指令)。
图3A是根据本发明概念示例性实施例的逻辑到物理映射表L2P_T的图示。逻辑到物理映射表L2P可被加载到图2所示逻辑到物理映射表区域112a。参照图1至图3A,逻辑到物理映射表L2P_T包括多个映射数据。每一个映射数据表示与逻辑页面号码(logical pagenumber,LPN)对应的物理页面号码(physical page number,PPN)。举例来说,与第二逻辑地址LPN2对应的第二物理地址是PPN2,PPN2可为非易失性存储器120的存储区域122中所包括的第二区块BLK2的第一页面PAGE1。逻辑到物理映射表L2P_T可包括多个行,其中每一行将逻辑地址(例如,逻辑页面地址)映射到物理地址(例如,物理页面地址),且物理地址识别存储区域122内的所选择的区块的位置及所选择的区块内的页面的位置。在实施例中,从逻辑到物理映射表L2P_T省略掉逻辑地址且使用每一行的位置来推断其逻辑地址。
图3B是根据本发明概念示例性实施例的物理区块信息BI的图示。物理区块信息BI可被加载到图2所示的物理区块信息区域112b。参照图1至图3B,物理区块信息BI将第一区块BLK1及第二区块BLK2中的每一个中所包括的多个页面PAGE1至PAGEm中的每一个的状态表示为有效的或无效的。举例来说,第二区块BLK2中所包括的第一页面PAGE1及第四页面PAGE4被示出无效的且第二页面PAGE2及第三页面PAGE3被示出为有效的。物理区块信息BI也可存储有效页面计数,所述有效页面计数表示第一区块BLK1及第二区块BLK2中的每一个中所包括的有效页面的数目。
图4是根据本发明概念示例性实施例的操作存储装置的方法的流程图。
参照图4,所述操作存储装置的方法涉及当从主机接收到读取请求时处理不可恢复的元数据的方法且可包括例如在图1所示存储装置100中按时间顺序执行的操作。以下将参照图1至图4来阐述操作存储装置的方法。
在操作S110中,存储装置100从主机200接收读取请求及逻辑地址。在操作S120中,存储装置100判断元数据是否已损坏。在实施例中,存储装置100判断被加载到易失性存储器的元数据中的映射数据是否已损坏,所述映射数据表示与逻辑地址对应的物理地址。举例来说,控制器110a中所包括的不可修正的错误修正码处理模块111a可基于被加载到物理区块信息区域112b的物理区块信息BI来判断被加载到逻辑到物理映射表区域112a的映射表数据是否已损坏。
在操作S130中判断所述元数据是否是可恢复的。在实施例中,不可修正的错误修正码处理模块111a判断是否存在元数据的备份数据,且当存在备份数据时确定所述元数据是可恢复的。当确定所述元数据不可恢复时,执行操作S140。当确定所述元数据可恢复时,执行操作S150。在操作S140中,将元数据作为不可修正的错误修正码错误进行处理。举例来说,不可修正的错误修正码处理模块111a可将元数据作为不可修正的错误修正码错误进行处理并向主机200提供错误消息,所述错误消息表示无法针对读取请求进行读取。所述错误消息可表示无法执行与逻辑地址相关联的读取操作。在操作S150中对元数据进行恢复且对读取请求进行处理。读取请求的处理可包括使用备份数据来判断与逻辑地址对应的物理地址。可利用备份数据来取代在逻辑到物理映射表L2P_T内发现的已损坏的元数据。
尽管图中未示出,然而存储装置100可随后从主机200接收读取请求或写入请求以及另一个逻辑地址。此时,存储装置100可判断表示与当前逻辑地址对应的物理地址的映射数据是否已损坏。当判断映射数据未损坏或者可恢复时,存储装置100根据读取请求正常地执行读取操作或者根据写入请求执行写入操作。
图5是根据本发明概念示例性实施例的对不可恢复的元数据进行处理的操作的图示。
参照图2及图5,控制器110a从主机接收读取请求或写入请求及逻辑地址。在实施例中,图5中所示的第一映射信息11对应于图3中所示的逻辑到物理映射表L2P_T,且图5中所示的物理区块信息BI对应于图3B中所示的物理区块信息BI。当逻辑地址是LPN2时,被映射到LPN2的物理地址是PPN2。
在实施例中,不可修正的错误修正码(UECC)处理模块111a通过检查物理区块信息BI来检查PPN2是有效的还是无效的,并判断与PPN2对应的映射数据是否已损坏。举例来说,如图3B所示,当与PPN2对应的第二区块BLK2的第一页面PAGE1无效时,不可修正的错误修正码处理模块111a确定与逻辑地址相关联的映射数据已损坏。
然而,本发明概念并非仅限于此。在实施例中,当PPN2不表示真实的物理地址时,不可修正的错误修正码处理模块111a确定与PPN2对应的映射数据已损坏,而无需检查物理区块信息BI。举例来说,当非易失性存储器包括第一区块至第一百区块且PPN2表示第一百零一个区块中所包括的页面时,可确定与PPN2对应的映射数据已损坏。举例来说,控制器110a可存储可用区块的数目的计数,且当与映射数据相关联的物理地址表示超过所述计数的区块数目时,可得出映射数据已损坏的结论。
另外,在示例性实施例中,不可修正的错误修正码处理模块111a通过检查存储在非易失性存储器120中且由PPN2表示的逻辑地址来判断PPN2是有效的还是无效的。在实施例中,存储区域122中的由PPN2表示的页面中的备用区域(spare area)存储与PPN2对应的逻辑地址(例如,LPN)。当第一映射信息11表明与PPN2对应的逻辑地址是LPN2、而存储在由PPN2表示的物理地址的备用区域中的逻辑地址不是LPN2时,不可修正的错误修正码处理模块111a确定与PPN2对应的映射数据已损坏。
之后,不可修正的错误修正码处理模块111a判断已损坏的元数据是否是可恢复的,当已损坏的元数据可恢复时恢复已损坏的元数据,且使用已恢复的元数据根据读取请求来执行读取操作或者根据写入请求来执行写入操作。在实施例中,当已损坏的数据不可恢复时,不可修正的错误修正码处理模块111a将不可恢复的元数据作为不可修正的错误修正码错误进行处理且通过修正PPN2以第二映射信息12更新第一映射信息11。控制器110a可向主机提供错误消息,所述错误消息表示无法针对读取请求进行读取。针对写入请求,控制器110a可使用第二映射信息12来执行写入操作。
图6是根据本发明概念示例性实施例的操作存储装置的方法的流程图。
参照图6,操作存储装置的方法涉及当从主机接收到写入请求时处理不可恢复的元数据的方法且可包括例如在图1所示存储装置100中按时间顺序执行的操作。以下将参照图1至图3B及图6来阐述操作存储装置的方法。
在操作S210中,存储装置100从主机200接收写入请求及逻辑地址。在操作S220中,存储装置100判断元数据是否已损坏。元数据与逻辑地址相关联。在示例性实施例中,存储装置100判断被加载到易失性存储器的元数据中的映射数据是否已损坏,所述映射数据表示与逻辑地址对应的物理地址。举例来说,控制器110a中所包括的不可修正的错误修正码处理模块111a可基于被加载到物理区块信息区域112b的物理区块信息BI来判断所述映射数据是否已损坏。
在操作S230中判断所述元数据是否是可恢复的。举例来说,不可修正的错误修正码处理模块111a判断是否存在元数据的备份数据,且当存在备份数据时确定所述元数据是可恢复的。当确定所述元数据不可恢复时,执行操作S240。当确定所述元数据可恢复时,执行操作S260。在操作S240中,存储装置100产生用于写入数据的新物理地址并修正所述元数据。在操作S250中,存储装置100将数据写入新物理地址。在操作S260中,存储装置100对所述元数据进行恢复并对写入请求进行处理。如果所述元数据是不可恢复的,则可能无法确定哪一个物理地址对应于所接收的逻辑地址。新物理地址的产生可包括确定哪一物理地址未使用,并将未使用的物理地址分配给所接收到的逻辑地址。当所述元数据得到恢复时,写入请求的处理可包括从所恢复的元数据确定物理地址,以及向所确定的物理地址写入数据。可与写入请求及逻辑地址一起接收要写入的数据。
图7A及图7B是根据本发明概念示例性实施例的对映射数据执行的不可修正的错误修正码处理操作的图示。参照图7A及图7B,第一映射信息13对应于逻辑到物理映射表L2P_T1且第二映射信息14对应于逻辑到物理映射表L2P_T1a。第一映射信息13及第二映射信息14可被加载到存储装置中所包括的易失性存储器(例如,动态随机存取存储器)。
第一映射信息13可包括分别与LPN1至LPN5对应的PPN1至PPN5。PPN1至PPN5可被称为映射数据。当与第一映射信息13中的PPN2对应的映射数据不可恢复时,将所述不可恢复的映射数据修正成不可修正的错误修正码签名SIG UECC以使得以第二映射信息14来更新第一映射信息13。在实施例中,不可修正的错误修正码签名SIG UECC对应于不存在于非易失性存储器120中的物理地址PPNu。举例来说,当非易失性存储器120包括PPN1至PPN1000时,不可修正的错误修正码签名SIG UECC可为PPN1001。然而,本发明概念并非仅限于此且不可修正的错误修正码签名SIG UECC可为随机标记,所述随机标记表示无法根据当前映射数据执行读取操作。举例来说,当试图从与不可修正的错误修正码签名相关联的逻辑地址进行读取时,如果不可修正的错误修正码签名是高于非易失性存储器120的物理地址的上限的物理地址,则控制器(例如,110)可得出无法从所述逻辑地址进行读取的结论。举例来说,控制器可存储所述上限以便控制器可判断映射数据中的物理地址是否是不可修正的错误修正码签名。
图8是根据本发明概念示例性实施例在图7A及图7B所示不可修正的错误修正码处理操作中在主机200与控制器110之间执行的操作的流程图。在实施例中,主机200及控制器110分别对应于图1所示主机200及控制器110。以下将参照图1及图8来阐述所述操作。
在操作S310中,主机200向控制器110传送逻辑地址LA及读取请求。在操作S320中,控制器110检查与逻辑地址LA相关联的元数据。举例来说,控制器110可通过参照将逻辑地址LA链接到元数据的表来检查与逻辑地址LA相关联的元数据。在操作S330中,控制器110判断与元数据对应的物理地址是否与物理区块信息一致。在实施例中,当与元数据对应的物理地址与物理区块信息不一致时,则确定所述元数据已损坏。
在操作S340中,当确定元数据已损坏时,控制器110判断已损坏的元数据是否是可恢复的。当确定已损坏的数据不可修复时,在操作S350中,控制器110更新逻辑到物理映射表。在实施例中,控制器110以逻辑到物理映射表中的不可修正的错误修正码签名来改写已修复的元数据。在操作S360中,控制器110向主机传送错误消息,所述错误消息表示无法针对读取请求进行读取。
根据本发明概念的示例性实施例,存储装置100的控制器110更新逻辑到物理映射表并根据不可修正的错误修正码签名来向主机200传送错误消息。因此,响应于在被处理时将需要使用已损坏的元数据的读取请求,不在存储装置100中执行控制器110与非易失性存储器120之间的通信(例如,数据输入/输出操作),但主机200与控制器110之间的通信正常地继续进行。结果,存储装置100对在被处理时将需要使用已损坏的元数据的读取请求的处理时间可减少且功耗可降低。
图9A及图9B是根据本发明概念示例性实施例的对映射数据执行的不可修正的错误修正码处理操作的图示。详细来说,图9A示出被加载到存储装置中所包括的易失性存储器(例如,动态随机存取存储器)的第一映射信息15及第二映射信息16以及在存储装置中所包括的非易失性存储器(例如,与非存储器)的页面17。图9B示出与第一映射信息15对应的映射表L2P_T1、与第二映射信息16对应的映射表L2P_T1b、及非易失性存储器的存储区域(例如,图1中的存储区域122)。
第一映射信息15可包括分别与LPN1至LPN5对应的PPN1至PPN5。PPN1至PPN5可被称为映射数据。当与第一映射信息15中的PPN2对应的映射数据不可恢复时,将所述不可恢复的映射数据中所包括的物理地址(即,PPN2)修正成新物理地址(即,PPN2′),以使得将第一映射信息15更新成第二映射信息16。
新物理地址(即,PPN2′)是用于存储表示不可修正的错误修正码的数据的物理地址。新物理地址(即,PPN2′)可被分配到有效地地址。举例来说,新物理地址(即,PPN2′)可对应于存储区域122中所包括的第二区块BLK2的第二页面PAGE2且旧的物理地址(即,PPN2)在物理区块信息中可改变成无效状态。新物理地址(即,PPN2′)对于每一个逻辑地址来说可均为不同的。然而,本发明概念并非仅限于此。举例来说,新物理地址(即,PPN2′)可不论逻辑地址如何均为相同的。
图10是根据本发明概念示例性实施例在图9A及图9B所示不可修正的错误修正码处理操作中在主机200、与控制器110、及非易失性存储器120之间执行的操作的流程图。在实施例中,主机200、控制器110、及非易失性存储器120分别对应于图1所示主机200、控制器110、及非易失性存储器120。
图10所说明的操作是图8所说明的操作的修改形式。操作S310至S340与图8所示操作实质上相同。因此将不再对其重复说明予以赘述。在操作S350a中,控制器110更新逻辑到地址映射表。在实施例中,控制器110通过将已损坏的元数据中所包括的物理地址修正成逻辑到物理映射表中的新物理地址PA来更新逻辑到物理映射表。
在操作S370中,控制器110向非易失性存储器120传送新物理地址PA及写入命令WCMD。在操作S380中,非易失性存储器120将表示不可修正的错误修正码的数据写入新物理地址PA。新物理地址PA可对应于存储区域122中所包括的备用区域。在操作S390中,非易失性存储器120向控制器发送响应消息,所述响应消息表示写入操作已完成。在操作S360a中,控制器110向主机200传送错误消息,所述错误消息表示无法针对读取请求进行读取。
图11是根据本发明概念示例性实施例的对剪裁数据执行的不可修正的错误修正码处理操作的图示。
参照图11,被加载到存储装置中所包括的易失性存储器(例如,动态随机存取存储器)的第一元页面21包括逻辑到物理区域及剪裁位图(trim bitmap),逻辑到物理区域存储表示与逻辑地址对应的物理地址的映射数据,剪裁位图存储表示从主机擦除的数据的剪裁数据。当存储装置支持剪裁功能时,第一元页面21包括剪裁位图。在示例性实施例中,当主机擦除已写入到存储装置的数据时,对应的区块的数据不会从非易失性存储器被实际删除,而是仅在剪裁位图中包括的剪裁数据中标记数据的擦除。在实施例中,剪裁数据包括多个位且每一个位表示与映射数据对应的用户数据被擦除或不被擦除。举例来说,剪裁数据的第一位可表示与PPN1相关联的数据是否被擦除,剪裁数据的第二位可表示与PPN2相关联的数据是否被擦除,等等。
当在第一元页面21中剪裁数据已损坏时,对与已损坏的剪裁数据有关的映射数据进行检查。可根据各个位的放置顺序来检查相关的映射数据。与已损坏的剪裁数据相关的映射数据可为PPN2。通过对PPN2执行不可修正的错误修正码处理,可将第一元页面21修正成第二元页面。PPN2在第二元页面22中可被表达为不可修正的错误修正码签名。在实施例中,PPN2在第二元页面22中被修正成新物理地址(即,PPN2′)。
图12是根据本发明概念示例性实施例的存储装置100′的方块图。
参照图12,存储装置100′包括控制器110′及非易失性存储器120。存储装置100′是图1所示存储装置100的修改形式。因此将不再对其重复说明予以赘述。不同于图1所示控制器110,控制器110′进一步包括错误检查及修正(error checking and correction,ECC)模块113。在实施例中,错误检查及修正模块113通过对元数据执行错误修正及检查操作来检测存储在元数据存储元件MDS中的元数据中的错误位并修正所述错误位。错误检查及修正模块113可对每一个错误修正及检查数据块执行错误修正及检查操作。
图13是图12所示控制器110′的实例110b的方块图。参照图13,控制器110b是图2所示控制器110a的修改形式。因此将不再对其重复说明予以赘述。不同于图2中所示的存储器MEMa,存储器MEMb进一步包括错误检查及修正模块113。错误检查及修正模块113可由软件或固件来实施且可被加载到存储器MEMb。作为另外一种选择,错误检查及修正模块113可由存储器MEMb中的硬件(例如,电路)来实施。尽管闪速转译层111与错误检查及修正模块113在图13中彼此分开,然而本发明概念并非仅限于此。在示例性实施例中,错误检查及修正模块113被实施为闪速转译层111的一部分。尽管错误检查及修正模块113在图13中位于存储器MEMb内部,然而本发明概念并非仅限于此。在示例性实施例中,错误检查及修正模块113位于存储器MEMb外部。
图14是根据本发明概念示例性实施例的操作存储装置的方法的流程图。
参照图14,所述操作存储装置的方法涉及当从主机接收到读取请求时处理不可恢复的元数据的方法且可包括例如在图12所示的存储装置100′中按时间顺序执行的操作。以下将参照图12至图14来阐述操作存储装置的方法。
在操作S410中,存储装置100′从主机接收读取请求及逻辑地址。在操作S420中,存储装置100′判断元数据是否已损坏。举例来说,元数据与所接收的逻辑地址相关联。在实施例中,存储装置100′通过对元数据的每一个错误检查及修正模块数据块执行错误检查及修正操作来检查是否存在错误位,从而判断元数据是否已损坏。举例来说,控制器110b中所包括的不可修正的错误修正码处理模块111a可基于错误检查及修正模块113的输出来判断元数据是否已损坏,而无需参照被加载到物理区块信息区域112b的物理区块信息BI。
在操作S430中判断错误位的数目是否超过错误检查及修正允许限值(tolerancelimit)。错误检查及修正允许限值是可由错误检查及修正模块113修正的错误位的数目。举例来说,错误检查及修正模块113的错误检查及修正允许限值可对应于1。当确定错误位的数目超过错误检查及修正允许限值时,执行操作S440。当确定错误位的数目不超过错误检查及修正允许限值时,执行操作S450。之后将参照图15来详细阐述操作S430。
在操作S440中,将错误检查及修正数据块中的所有元数据作为不可修正的错误修正码错误进行处理。举例来说,当错误位的数目超过错误检查及修正允许限值时,不可修正的错误修正码处理模块111a可将错误检查及修正数据块中所包含的所有元数据作为不可修正的错误修正码错误进行处理。在操作S450中对错误位进行恢复且对读取请求进行处理。举例来说,错误检查及修正模块113可恢复错误位且存储装置100′可根据读取请求执行读取操作。在实施例中,错误位在错误检查及修正模块113能够修正元数据时得到恢复,且存储装置100使用经修正的元数据执行读取操作。当错误检查及修正模块113不能修正元数据时,存储装置100不能执行读取操作。
图15是根据本发明概念示例性实施例的基于元数据中的错误位的数目执行的错误检查及修正操作的图示。
参照图13及图15,错误检查及修正模块113的错误检查及修正允许限值是一个错误位。当物理地址PPNa中存在一位错误时,物理地址PPNa被改变成第一个已损坏的物理地址PPNa′。由于错误位的数目是1,因此错误检查及修正模块113可修正1位错误,且因此,第一个已损坏的物理地址PPNa′被修正成正常物理地址PPNa。
然而,当物理地址PPNa中存在两位错误时,物理地址PPNa被改变成第二个已损坏的物理地址PPNa″。由于错误位的数目是二,因此错误检查及修正模块113可检测到两位错误但无法修正所述两位错误。因此,第二个已损坏的物理地址PPNa″可对应于不可恢复的元数据。
图16是根据本发明概念示例性实施例的对不可恢复的元数据进行处理的操作的图示。
参照图12及图16,第一错误检查及修正数据块31存储在图13所示的存储器MEMb的元数据区域112中,且存储器MEMb可为动态随机存取存储器。第一错误检查及修正数据块31可包括多个映射数据PPN1至PPN7及奇偶性(parity)。每一个映射数据的大小可为4字节,且第一错误检查及修正数据块31的大小可为32字节,但本发明并非仅限于此。举例来说,映射数据PPN5可具有超过错误检查及修正允许限值的错误位。
在实施例中,错误检查及修正模块113通过检查奇偶性来检测第一错误检查及修正数据块31中的错误位并在错误检查及修正允许限值内修正错误位。然而,当所检测的错误位的数目超过错误检查及修正允许限值时,错误检查及修正模块113无法修正错误位。当错误数目超过错误检查及修正允许限值时,元数据处理模块MDP确定第一错误检查及修正数据块31中所包含的所有映射数据PPN1至PPN7是不可恢复的元数据。
在实施例中,元数据处理模块MDP根据第一错误检查及修正数据块31中所包含的映射数据PPN1至PPN7的当前状态来将奇偶性复位,并将所有映射数据PPN1至PPN7作为不可修正的错误修正码错误进行处理,从而将第一错误检查及修正数据块31修正成第二错误检查及修正数据块32。在修正之后,可执行不可修正的错误修正码写入操作进行不可修正的错误修正码处理。可对存储装置100′的非易失性存储器120执行不可修正的错误修正码写入操作。作为另外一种选择,可对存储装置100′的易失性存储器(例如,动态随机存取存储器)执行不可修正的错误修正码写入操作,且易失性存储器可包含在控制器110′中。
当存储装置100′接收到与第二错误检查及修正数据块32中所包含的多个映射数据相关的读取请求时,存储装置100′可向主机提供错误消息,所述错误消息表示无法针对读取请求进行读取。以下将参照图17A至图19来阐述将映射数据作为不可修正的错误修正码错误进行处理的操作。
图17A及图17B是根据本发明概念示例性实施例的对映射数据执行的不可修正的错误修正码处理操作的图示。参照图17A及图17B,第一错误检查及修正数据块33可对应于逻辑到物理映射表L2P_T1且第二错误检查及修正数据块34可对应于逻辑到物理映射表L2P_T1a′。第一错误检查及修正数据块33及第二错误检查及修正数据块34可被存储在存储装置中所包括的易失性存储器(例如,动态随机存取存储器)中。
第一错误检查及修正数据块33可包括分别与LPN1至LPN7对应的PPN1至PPN7。PPN1至PPN7可被称为映射数据。当接收到针对LPN1至LPN7中的一个的读取请求时,可通过检查第一错误检查及修正数据块33中所包含的奇偶性数据来检测第一错误检查及修正数据块33中的错误位,且可在错误检查及修正允许限值内对错误位进行修正。然而,当所检测到的错误位的数目超过错误检查及修正允许限值时,可确定第一错误检查及修正数据块33中所包含的所有映射数据PPN1至PPN7是不可恢复的元数据。
此时,可通过将第一错误检查及修正数据块33中所包含的所有映射数据PPN1至PPN7修正成不可修正的错误修正码签名SIG UECC来以第二错误检查及修正数据块34更新第一错误检查及修正数据块33。不可修正的错误修正码签名SIG UECC可对应于不存在于非易失性存储器120中的物理地址PPNu。因此,与第二错误检查及修正数据块34对应的每一个物理地址可对应于映射表L2P_T1a′中的PPNu。尽管与LPN1至LPN3对应的所有PPN均是映射表L2P_T1a′中的PPNu,然而本发明概念并非仅限于此。在示例性实施例中,与不同的逻辑地址对应的不可修正的错误修正码签名可彼此不同。
图18是根据本发明概念示例性实施例的对映射数据执行的不可修正的错误修正码处理操作的图示。图18示出存储在存储装置中所包括的易失性存储器(例如,动态随机存取存储器)中的第一错误检查及修正数据块33及第二错误检查及修正数据块35以及在存储装置中所包括的非易失性存储器(例如,与非存储器)的页面36。以下说明将参照图12及图18。
当存储在动态随机存取存储器中的第一错误检查及修正数据块33中所包含的映射数据已损坏且不可恢复时,通过将第一错误检查及修正数据块33中所包含的所有映射数据作为不可修正的错误修正码错误进行处理来以第二错误检查及修正数据块35更新第一错误检查及修正数据块33。PPN1至PPN7可被修正成不同的新物理地址PPN1′至PPN7′,且奇偶性可根据第二错误检查及修正数据块35中的新物理地址PPN1′至PPN7′而被修正成奇偶性′。新物理地址PPN1′至PPN7′中的每一个可为用于存储表示不可修正的错误修正码错误的数据的物理地址且可被分配到有效地址。
之后,可将表示不可修正的错误修正码错误的数据存储在非易失性存储器120的页面36中。页面36可为非易失性存储器120的存储区域122中所包括的多个页面中的一个页面。表示不可修正的错误修正码错误的数据可被存储在页面36中所包括的备用区域或预留区域中。尽管新物理地址PPN1′至PPN7′对应于图18中的一个区块中的一个页面36,然而本发明概念并非仅限于此。新物理地址PPN1′至PPN7′中的每一个可对应于元区域121的不同区块或不同页面。
当存储装置100′接收到针对与第二错误检查及修正数据块35中所包含的多个映射数据中的一个对应的逻辑地址的读取请求时,存储装置100′读取由与所述逻辑地址对应的物理地址表示的非易失性存储器120的页面36且将读取结果提供到主机。举例来说,当存储装置100′接收到针对LPN2的读取请求时,存储装置100′读取由PPN2′表示的非易失性存储器120的页面36且可向主机提供错误消息,所述错误消息表示无法针对读取请求进行读取。
图19是根据本发明概念示例性实施例的对映射数据执行的不可修正的错误修正码处理操作的图示。图19示出存储在存储装置中所包括的易失性存储器(例如,动态随机存取存储器)的第一错误检查及修正数据块33及第二错误检查及修正数据块37以及在存储装置中所包括的非易失性存储器(例如,与非存储器)的页面38。以下说明将参照图12及图19。
当存储在动态随机存取存储器中的第一错误检查及修正数据块33中所包含的映射数据已损坏且不可恢复时,通过将第一错误检查及修正数据块33中所包含的所有映射数据作为不可修正的错误修正码错误进行处理来以第二错误检查及修正数据块37更新第一错误检查及修正数据块33。PPN1至PPN7可被修正成一个固定的物理地址PPNf,且奇偶性可根据第二错误检查及修正数据块37中的固定的物理地址PPNf而被修正成奇偶性″。所述固定的物理地址PPNf可为被预定义成存储表示不可修正的错误修正码错误的数据的物理地址且可被分配到有效地址。
之后,可将表示不可修正的错误修正码错误的数据存储在非易失性存储器120的页面38中。页面38可为非易失性存储器120的存储区域122中所包括的多个页面中的一个页面。表示不可修正的错误修正码错误的数据可被存储在页面38中所包括的备用区域或预留区域中。
当存储装置100′接收到针对与第二错误检查及修正数据块37中所包含的多个映射数据中的一个对应的逻辑地址的读取请求时,存储装置100′读取由固定的物理地址PPNf表示的非易失性存储器120的页面38且将读取结果提供到主机。举例来说,当存储装置100′接收到针对LPN2的读取请求时,存储装置100′读取由PPNf表示的非易失性存储器120的页面38且可向主机提供错误消息,所述错误消息表示无法针对读取请求进行读取。
图20是根据本发明概念示例性实施例的操作存储装置的方法的流程图。
参照图20,所述操作存储装置的方法涉及当从主机接收到读取请求时处理不可恢复的元数据的方法且可包括例如在图12所示存储装置100′中按时间顺序执行的操作。以下将参照图12及图20来阐述操作存储装置的方法。
在操作S510中,存储装置100′接收读取请求及逻辑地址。在操作S520中,存储装置100′判断剪裁数据是否已损坏。在实施例中,存储装置100′通过对剪裁数据的每一个错误检查及修正数据块执行错误检查及修正操作来检查是否存在错误位,从而判断剪裁数据是否已损坏。举例来说,控制器110b中所包括的不可修正的错误修正码处理模块111a可基于错误检查及修正模块113的输出来判断剪裁数据是否已损坏,而无需参照被加载到物理区块信息区域112b的物理区块信息BI。
在操作S530中,判断错误位的数目是否超过错误检查及修正允许限值(tolerancelimit)。操作S530可实质上相同于图14所示的操作S430。在操作S540中,将与剪裁数据对应的映射错误检查及修正数据块作为不可修正的错误修正码错误进行处理。举例来说,不可修正的错误修正码处理模块111a可将每一个映射错误检查及修正数据块中所包含的所有元数据作为不可修正的错误修正码错误进行处理。在操作S550中对错误位进行恢复且对读取请求进行处理。
图21是根据本发明概念示例性实施例的对不可恢复的剪裁数据执行的不可修正的错误修正码处理操作的图示。
参照图12及图21,第一元页面41可存储在例如图13所示存储器MEMb的元数据区域112中。存储器MEMb可为动态随机存取存储器。第一元页面41包括逻辑到物理区域及剪裁位图,逻辑到物理区域包括表示与逻辑地址对应的物理地址的映射数据,剪裁位图包括表示从主机擦除的数据的剪裁数据。
逻辑到物理区域可包括多个映射错误检查及修正数据块EC1至EC5且剪裁位图可包括第一剪裁错误检查及修正数据块ECa及第二剪裁错误检查及修正数据块ECb。举例来说,第一剪裁错误检查及修正数据块ECa可已损坏且可与第三映射错误检查及修正数据块EC3及第四映射错误检查及修正数据块EC4相关。换句话说,第一剪裁错误检查及修正数据块ECa可表示与第三映射错误检查及修正数据块EC3及第四映射错误检查及修正数据块EC4中所包含的映射数据对应的用户数据被擦除或不被擦除。
可通过对与已损坏的第一剪裁错误检查及修正数据块ECa相关的第三映射错误检查及修正数据块EC3及第四映射错误检查及修正数据块EC4执行不可修正的错误修正码处理而将第一元页面41修正成第二元页面42。因此,第三映射错误检查及修正数据块EC3中所包含的多个映射数据及第四映射错误检查及修正数据块EC4中所包含的多个映射数据均可接受不可修正的错误修正码处理。第三映射错误检查及修正数据块EC3可对应于图16所示的第一错误检查及修正数据块31。已损坏的第一剪裁错误检查及修正数据块ECa可被复位成ECa′。
图22是根据本发明概念示例性实施例的控制器110c的方块图。参照图22,控制器110c是图2所示控制器110a的修改形式。因此将不再对其重复说明予以赘述。不同于图2所示元数据区域112,元数据区域112′进一步包括存储目录的目录区域112c。以下说明将参照图1及图22。
目录区域112c存储目录,当存储装置被供电时,可将目录从非易失性存储器120的元区域121加载到存储器MEMc。所述目录可包括多个目录数据。每一个目录数据可表示存储有元数据的物理地址。举例来说,目录可表示非易失性存储器120的元区域121中存储有例如映射表或物理区块信息等元数据的物理地址。
图23是根据本发明概念示例性实施例的操作存储装置的方法的流程图。
参照图23,操作存储装置的方法涉及处理已损坏的目录数据的方法且可包括例如在图1所示存储装置100及图22所示控制器110c中按时间顺序执行的操作。以下将参照图1、图22及图23来阐述所述操作存储装置100的方法。
在操作S610中,向存储装置100供电。在操作S620中,将存储在非易失性存储器120中的目录加载到易失性存储器MEMc。可将存储在非易失性存储器120的元区域121中的目录加载到易失性存储器MEMc的目录区域112c。在操作S630中,判断多个目录数据是否已损坏。举例来说,控制器110c中所包括的不可修正的错误修正码处理模块111a可基于被加载到物理区块信息区域112b的物理区块信息BI来判断被加载到目录区域112c的目录数据是否已损坏。
在操作S640中,判断已损坏的目录数据是否是可恢复的。举例来说,不可修正的错误修正码处理模块111a可判断是否存在目录数据的备份数据,且当存在备份数据时确定已损坏的目录数据是可恢复的。当确定所述已损坏的目录数据不可恢复时,执行操作S650。当确定所述已损坏的目录数据可恢复时,执行操作S660。在操作S650中,将与已损坏的第一目录数据对应的第一元数据作为不可修正的错误修正码错误进行处理。在操作S660中,对已损坏的第一目录数据进行恢复且将元数据加载到易失性存储器MEMc。如果所述多个目录数据均未被损坏,则不会将与目录数据相关联的元数据中的任一个作为不可修正的错误修正码错误进行处理。
图24A是根据本发明概念示例性实施例的图1所示非易失性存储器120中所包括的存储器单元阵列MCA的图示。图24B是根据本发明概念示例性实施例的图24A所示存储区域122中所包括的存储器区块的图示。以下说明将参照图1、图24A及图24B。
参照图24A,元区域121包括多个映射表L2P_T1至L2P_T13,所述多个映射表L2P_T1至L2P_T13存储与存储在存储区域122中的用户数据相关的映射信息。存储区域122可在物理上或在逻辑上被划分成各种单元。举例来说,存储区域122可包括多个平面PL1及PL2,所述多个平面PL1及PL2中的每一个可包括多个区块BLK1及BLK2。每一个区块BLK1或BLK2可为非易失性存储器120的擦除单元。即使在要删除擦除单元(例如,区块)的仅单个页面时,这种删除也可能需要删除整个擦除单元。
参照图24B,区块BLK可对应于图24A所示区块BLK1及BLK2中的一个。区块BLK可包括多个页面PAGE1及PAGE2。页面PAGE1及PAGE2中的每一个中包括的多个存储器单元可连接到一条字线。非易失性存储器120的写入/读取单元可对应于每一个页面的大小。举例来说,当写入单元是页面的大小时,即使要将大小比页面小的数据写入非易失性存储器120,这种写入也可能需要对整个页面进行写入。第一页面PAGE1包括数据区域DA及备用区域SA。控制器110所请求写入的用户数据可被写入到数据区域DA。
备用区域SA可为第一页面PAGE1中的除数据区域DA之外的空闲空间。备用区域SA可存储备用数据,例如是,恢复信息。用于在存储装置100异常停止时恢复存储在控制器110的元数据存储元件MDS(例如,动态随机存取存储器)中的元数据的恢复信息可被写入备用区域SA。恢复信息可包括与第一页面PAGE1对应的逻辑地址(例如,LPN)。因此,可将存储在元数据存储元件MDS中的元数据与存储在备用区域SA中的恢复信息中所包括的逻辑地址进行比较,以判断存储在元数据存储元件MDS中的元数据是有效的还是无效的。用于检测及/或修正在要写入数据区域DA的数据中出现的错误的错误检查及修正奇偶性也可被写入备用区域SA。
图25是根据本发明概念示例性实施例的目录DRT的图示。
参照图25,目录DRT可包括第一元物理地址MetaPPN1至第五元物理地址MetaPPN5,第一逻辑到物理映射表L2P_T1至第五逻辑到物理映射表L2P_T5分别在非易失性存储器120的元区域121中存储在第一元物理地址MetaPPN1至第五元物理地址MetaPPN5处。第一元物理地址MetaPPN1至第五元物理地址MetaPPN5可被称为第一目录数据至第五目录数据。举例来说,第二逻辑到物理映射表L2P_T2可被存储在元区域121的第二元物理地址MetaPPN2处,且第二元物理地址MetaPPN2可对应于元区域121的第二区块BLK2的第一页面PAGE1。
图26是根据本发明概念示例性实施例的对目录执行的不可修正的错误修正码处理操作的图示。
参照图22、图25、及图26,被加载到存储装置的易失性存储器(例如,动态随机存取存储器)的目录51可包括第一目录数据至第五目录数据,第一目录数据至第五目录数据可分别对应于第一元物理地址MetaPPN1至第五元物理地址MetaPPN5。
不可修正的错误修正码处理模块111a可基于存储在物理区块信息区域112b中的物理区块信息BI来判断第一目录数据至第五目录数据是否已损坏。举例来说,不可修正的错误修正码处理模块111a可判断第二目录数据是否与物理区块信息BI一致。当第二目录数据与物理区块信息BI不一致时,不可修正的错误修正码处理模块111a可判断第二目录数据是否是可恢复的。
当确定第二目录数据可恢复时,不可修正的错误修正码处理模块111a可恢复第二目录数据且可根据第二目录数据将第二逻辑到物理映射表L2P_T2从元区域121加载到动态随机存取存储器。在实施例中,当存在第二目录数据的备份副本时,第二目录数据是可恢复的。当从元区域121读取第二逻辑到物理映射表L2P_T2的操作失败且第二逻辑到物理映射表L2P_T2未被加载到动态随机存取存储器时,将第二逻辑到物理映射表L2P_T2中所包含的所有映射数据作为不可修正的错误修正码错误进行处理。
举例来说,可将第二逻辑到物理映射表L2P_T2存储在与第二目录数据对应的第二元物理地址MetaPPN2处。此时,由于第二目录数据是作为不可修正的错误修正码错误进行处理,因此可将与一个页面大小对应的第二逻辑到物理映射表L2P_T2作为不可修正的错误修正码错误进行处理。因此,当从主机接收到针对第二逻辑到物理映射表L2P_T2中所包括的逻辑地址的读取请求时,存储装置可向主机提供错误消息,所述错误消息表示无法针对读取请求进行读取。
图27是根据本发明概念示例性实施例在图26所示不可修正的错误修正码处理操作中在控制器110c与非易失性存储器120之间执行的操作的流程图。控制器110c可对应于图22所示控制器110c且非易失性存储器120可对应于图1所示非易失性存储器120。以下说明参照图22及图27。
在操作S710中,向存储装置100供电。在操作S720中,非易失性存储器120向控制器110c传送目录,且因此目录被加载到控制器110c中的存储器MEMc。在操作S730中,控制器110c对加载到存储器MEMc中的目录进行检查。在操作S740中,控制器110c判断目录中所包含的多个目录数据是否已损坏。在操作S750中,控制器110c判断已损坏的目录数据是否是可恢复的。当确定所述已损坏的目录数据可恢复时,执行操作S760。当确定所述已损坏的目录数据不可恢复时,执行操作S780。在操作S760中,非易失性存储器120向控制器110c传送元数据。在操作S770中,控制器110c判断读取是否失败。所述读取可基于所传送的元数据。当确定读取失败时,执行操作S780。在操作S780中,控制器110c更新存储在存储器MEMc的映射表区域112a中的映射表。
图28是根据本发明概念示例性实施例的控制器110d的方块图。
参照图28,控制器110d是图13所示控制器110b的修改形式。因此将不再对其重复说明予以赘述。不同于图2所示元数据区域112,元数据区域112′进一步包括存储目录的目录区域112c。目录区域112c可实质上相同于图22所示目录区域112c。因此将不再对其重复说明予以赘述。
存储器MEMd包括错误检查及修正模块113。错误检查及修正模块113可对存储在元数据区域112′中的数据执行错误检查及修正操作。在实施例中,错误检查及修正模块113对被加载到目录区域112c的目录数据执行错误检查及修正操作。错误检查及修正模块113也可对被加载到逻辑到物理映射表区域112a的映射数据及被加载到物理区块信息区域112b的物理区块信息执行错误检查及修正操作。
图29是根据本发明概念示例性实施例的操作存储装置的方法的流程图。
参照图29,所述操作存储装置的方法涉及处理已损坏的目录数据的方法且可包括例如在图12所示存储装置100′及图28所示控制器110d中按时间顺序执行的操作。以下将参照图12、图28及图29来阐述所述操作存储装置100′的方法。
在操作S610中,向存储装置100′供电。在操作S620中,将存储在非易失性存储器120中的目录加载到易失性存储器MEMd。在实施例中,将存储在非易失性存储器120的元区域121中的目录加载到易失性存储器MEMd的目录区域112c。在操作S630中,判断多个目录数据是否已损坏。在操作S670中,判断错误位的数目是否超过错误检查及修正允许限值。当确定错误位的数目超过错误检查及修正允许限值时,执行操作S680。当确定错误位的数目不超过错误检查及修正允许限值时,执行操作S690。在操作S680中,将错误检查及修正数据块中的所包含的所有目录数据作为不可修正的错误修正码错误进行处理。在操作S690中,对错误位进行恢复且将元数据加载到易失性存储器MEMd。
图30是根据本发明概念示例性实施例的对目录执行的不可修正的错误修正码处理操作的图示。
参照图28及图30,第一错误检查及修正数据块53可被存储在存储装置的易失性存储器MEMd中。易失性存储器MEMd可为动态随机存取存储器。第一错误检查及修正数据块53可包括多个目录数据MetaPPN1至MetaPPN7及奇偶性。每一个目录数据的大小可为4字节,且第一错误检查及修正数据块53的大小可为32字节,但本发明概念并非仅限于此。举例来说,目录数据MetaPPN2可具有超过错误检查及修正允许限值的错误位。
错误检查及修正模块113可通过检查奇偶性来检测第一错误检查及修正数据块53中的错误位并在错误检查及修正允许限值内修正错误位。然而,当所检测的错误位的数目超过错误检查及修正允许限值时,错误检查及修正模块113无法修正错误位。因此,元数据处理模块MDP可确定第一错误检查及修正数据块53中所包含的所有目录数据MetaPPN1至MetaPPN7均为不可恢复的目录数据。
元数据处理模块MDP可根据第一错误检查及修正数据块53中所包含的目录数据MetaPPN1至MetaPPN7的当前状态来将奇偶性复位,并将所有目录数据MetaPPN1至MetaPPN7作为不可修正的错误修正码错误进行处理,从而将第一错误检查及修正数据块53修正成第二错误检查及修正数据块54。在修正之后,可执行不可修正的错误修正码写入操作以进行不可修正的错误修正码处理。可对存储装置的非易失性存储器执行不可修正的错误修正码写入操作。作为另外一种选择,可对存储装置的易失性存储器MEMd执行不可修正的错误修正码写入操作。
当与读取请求一起从主机接收到的逻辑地址对应于与第二错误检查及修正数据块54中所包含的多个目录数据中的一个目录数据对应的映射表中所包含的映射数据时,存储装置可向主机提供错误消息,所述错误消息表示无法针对读取请求进行读取。
根据本发明概念的实施例,由于所有的第一目录数据至第七目录数据均作为不可修正的错误修正码错误进行处理,因此分别存储在第一元物理地址MetaPPN1至第七元物理地址MetaPPN7处的第一逻辑到物理映射表至第七逻辑到物理映射表均被作为不可修正的错误修正码错误进行处理。举例来说,与七个页面的大小对应的所有的第一逻辑到物理映射表至第七逻辑到物理映射表可作为不可修正的错误修正码错误进行处理。因此,第一逻辑到物理映射表至第七逻辑到物理映射表中的每一个中所包含的所有映射数据均作为不可修正的错误修正码错误进行处理。举例来说,当从主机接收到针对分别存储在第一元物理地址MetaPPN1至第七元物理地址MetaPPN7处的第一逻辑到物理映射表至第七逻辑到物理映射表中的一个中所包括的逻辑地址的读取请求时,存储装置可向主机提供错误消息,所述错误消息表示无法针对读取请求进行读取。
图31是根据本发明概念示例性实施例的电子装置1000的方块图。
参照图31,电子装置1000包括处理器1100、存储器装置1200、存储装置1300、调制解调器1400、输入/输出(input/output,I/O)装置1500、及电源1600。当存储装置1300接收到与不可恢复的元数据相关的读取请求时,存储装置1300可将元数据作为不可恢复的错误进行处理。之后,当存储装置1300接收到与未损坏或者是可恢复的元数据相关的读取或写入请求时,存储装置1300根据读取请求执行读取操作或者根据写入请求执行写入操作。因此,存储装置1300可连续地提供正常服务。
尽管已参照本发明概念的实施例具体展示并阐述了本发明概念,然而应理解,在不背离本发明概念的精神及范围的条件下,可在本文中作出形式及细节方面的各种改变。

Claims (25)

1.一种包括非易失性存储器及易失性存储器的存储装置的操作方法,其特征在于,所述操作方法包括:
从主机接收第一逻辑地址;
判断存储在所述易失性存储器中且与所述第一逻辑地址相关联的第一元数据是否已损坏;
当确定所述第一元数据已损坏时,将所述第一元数据作为不可修正的错误进行处理;
在将所述第一元数据作为所述不可修正的错误进行处理时,向所述主机提供错误消息,所述错误消息表示无法对与所述第一逻辑地址相关联的数据执行操作;
在提供所述错误消息之后,从所述主机接收第二逻辑地址;
判断存储在所述易失性存储器中且与所述第二逻辑地址相关联的第二元数据是否损坏;以及
当确定所述第二元数据未损坏时,基于所述第二元数据来执行对所述非易失性存储器进行存取的操作。
2.根据权利要求1所述的包括非易失性存储器及易失性存储器的存储装置的操作方法,其特征在于,所述第一元数据包括映射数据,所述映射数据表示与所述第一逻辑地址对应的第一物理地址;以及
所述第一元数据的所述处理包括:当所述映射数据不可恢复时将所述映射数据作为所述不可修正的错误进行处理。
3.根据权利要求2所述的包括非易失性存储器及易失性存储器的存储装置的操作方法,其特征在于,所述判断所述第一元数据是否已损坏包括:基于所述易失性存储器中存储的物理区块信息来判断所述映射数据是否已损坏。
4.根据权利要求2所述的包括非易失性存储器及易失性存储器的存储装置的操作方法,其特征在于,所述第一元数据的所述处理进一步包括:将所述第一物理地址修正成第二物理地址。
5.根据权利要求4所述的包括非易失性存储器及易失性存储器的存储装置的操作方法,其特征在于,所述第二物理地址对应于签名,所述签名表示所述非易失性存储器中不存在的物理地址,且
所述提供所述错误消息包括:根据所述签名将所述错误消息提供到所述主机而不存取所述非易失性存储器。
6.根据权利要求4所述的包括非易失性存储器及易失性存储器的存储装置的操作方法,其特征在于,所述第二物理地址对应于用于将表示所述不可修正的错误的数据存储在所述非易失性存储器中的新物理地址,且所述第一元数据的所述处理进一步包括:将所述数据写入所述第二物理地址。
7.根据权利要求1所述的包括非易失性存储器及易失性存储器的存储装置的操作方法,其特征在于,所述第一元数据包括表示从所述主机擦除的数据的剪裁数据;且
所述第一元数据的所述处理包括:当所述剪裁数据不可恢复时,将与所述剪裁数据对应的映射数据作为所述不可修正的错误进行处理。
8.根据权利要求1所述的包括非易失性存储器及易失性存储器的存储装置的操作方法,其特征在于,所述易失性存储器包括错误检查及修正模块;且
所述第一元数据的所述处理包括:当所述第一元数据无法通过所述错误检查及修正模块进行修正时,将所述第一元数据作为所述不可修正的错误进行处理。
9.根据权利要求8所述的包括非易失性存储器及易失性存储器的存储装置的操作方法,其特征在于,所述第一元数据包括映射数据,所述映射数据表示与所述第一逻辑地址对应的第一物理地址,且
所述第一元数据的所述处理包括:将具有所述映射数据的错误检查及修正数据块中所包含的所有映射数据作为所述不可修正的错误进行处理。
10.根据权利要求9所述的包括非易失性存储器及易失性存储器的存储装置的操作方法,其特征在于,所述处理所有所述映射数据包括:
根据所述错误检查及修正数据块中所包含的所有所述映射数据来将所述错误检查及修正数据块的奇偶性复位;以及
将所述错误检查及修正数据块中所包含的所有所述映射数据的物理地址改变成经修正的物理地址。
11.根据权利要求10所述的包括非易失性存储器及易失性存储器的存储装置的操作方法,其特征在于,所述经修正的物理地址对应于签名,所述签名表示所述非易失性存储器中不存在的物理地址。
12.根据权利要求10所述的包括非易失性存储器及易失性存储器的存储装置的操作方法,其特征在于,所述改变所述物理地址包括:将所述错误检查及修正数据块中所包含的所有所述映射数据的所述物理地址改变成不同的新物理地址,且
所述处理所有映射数据进一步包括:将表示所述不可修正的错误的写入数据写入到每一个所述不同的新物理地址中。
13.根据权利要求10所述的包括非易失性存储器及易失性存储器的存储装置的操作方法,其特征在于,所述改变所述物理地址包括:将所述错误检查及修正数据块中所包含的所有所述映射数据的所述物理地址改变成一个预定义物理地址,且
所述处理所有所述映射数据进一步包括:将表示所述不可修正的错误的数据写入所述一个预定义物理地址。
14.根据权利要求8所述的包括非易失性存储器及易失性存储器的存储装置的操作方法,其特征在于,所述第一元数据包括表示与所述第一逻辑地址对应的第一物理地址的映射数据及表示从所述主机擦除的数据的剪裁数据,且
所述处理所述第一元数据包括将与所述剪裁数据对应的多个映射错误检查及修正数据块作为所述不可修正的错误进行处理。
15.根据权利要求14所述的包括非易失性存储器及易失性存储器的存储装置的操作方法,其特征在于,所述对所述多个映射错误检查及修正数据块的处理包括:
将具有所述剪裁数据的剪裁错误检查及修正数据块复位;
将所述映射错误检查及修正数据块中的每一个中所包含的所有映射数据作为所述不可修正的错误进行处理;以及
将所述映射错误检查及修正数据块中的每一个中所包含的所有所述映射数据的物理地址改变成经修正的物理地址。
16.一种包括非易失性存储器及易失性存储器的存储装置的操作方法,其特征在于,所述操作方法包括:
当所述存储装置被供电时,将存储在所述非易失性存储器中的目录加载到所述易失性存储器,其中所述目录包括多个目录数据,所述多个目录数据表示分别与多个元数据对应的物理地址;
判断在被加载到所述易失性存储器的所述目录中的所述多个目录数据是否已损坏;
判断被确定为已损坏的所述多个目录数据中的第一目录数据是否是可恢复的;
当所述第一目录数据已损坏且不可恢复时,将与所述第一目录数据对应的第一元数据作为不可修正的错误进行处理;以及
将与第二目录数据对应的第二元数据从所述非易失性存储器加载到所述易失性存储器,其中所述第二目录数据在所述多个目录数据中未损坏。
17.根据权利要求16所述的包括非易失性存储器及易失性存储器的存储装置的操作方法,其特征在于,进一步包括:
从主机接收逻辑地址;
当所述逻辑地址对应于所述第一元数据时,向所述主机提供错误消息,所述错误消息表示无法对与所述逻辑地址相关联的数据执行操作;以及
当所述逻辑地址对应于所述第二元数据时,执行所述操作。
18.根据权利要求16所述的包括非易失性存储器及易失性存储器的存储装置的操作方法,其特征在于,所述易失性存储器包括错误检查及修正模块,且所述处理所述第一元数据包括:当所述第一目录数据无法通过所述错误检查及修正模块进行修正时,将所述第一目录数据作为所述不可修正的错误进行处理。
19.根据权利要求18所述的包括非易失性存储器及易失性存储器的存储装置的操作方法,其特征在于,所述处理所述第一目录数据包括:
将具有所述第一目录数据的错误检查及修正数据块中所包含的所有目录数据作为所述不可修正的错误进行处理;以及
将与所有所述目录数据对应的多个元数据作为所述不可修正的错误进行处理。
20.根据权利要求16所述的包括非易失性存储器及易失性存储器的存储装置的操作方法,其特征在于,进一步包括:将存储在所述非易失性存储器中的所述多个元数据加载到所述易失性存储器,
其中所述多个元数据包括以下中的至少一个:表示与逻辑地址对应的物理地址的映射数据,表示与所述非易失性存储器中所包含的每一物理区块的页面有关的信息的物理区块信息,或者表示从主机擦除的数据的剪裁数据。
21.根据权利要求20所述的包括非易失性存储器及易失性存储器的存储装置的操作方法,其特征在于,进一步包括:
从所述主机接收逻辑地址;
判断被加载到所述易失性存储器的所述多个元数据中与所述逻辑地址相关的元数据是否已损坏;
当所述元数据已损坏时,将所述元数据作为所述不可修正的错误进行处理;以及
向所述主机提供错误消息,所述错误消息表示无法对与所述逻辑地址相关联的数据执行操作。
22.一种存储装置,其特征在于,包括:
非易失性存储器;以及
控制器,包括易失性存储器,所述易失性存储器被配置成存储与第一逻辑地址相关联的第一元数据以及与第二逻辑地址相关联的第二元数据,
其中,当所述控制器从主机接收所述第一逻辑地址时,所述控制器被配置成判断所述第一元数据是否已损坏,如果所述元数据已损坏,则将所述第一元数据作为不可修正的错误进行处理,且
当所述控制器从所述主机接收所述第二逻辑地址时,所述控制器被配置成判断所述第二元数据是否已损坏,如果所述第二元数据未损坏,则基于所述第二元数据来控制对所述非易失性存储器进行存取的操作。
23.根据权利要求22所述的存储装置,其特征在于,所述第一元数据以及所述第二元数据包括以下中的至少一个:表示与逻辑地址对应的物理地址的映射数据,表示与所述非易失性存储器中所包含的每一物理区块的页面有关的信息的物理区块信息,或表示从主机擦除的数据的剪裁数据。
24.根据权利要求22所述的存储装置,其特征在于,所述易失性存储器包括错误检查及修正模块,且
当所述第一元数据已损坏且无法通过所述错误检查及修正模块进行修正时,所述控制器进一步被配置成将具有所述第一元数据的错误检查及修正数据块中所包含的所有元数据作为所述不可修正的错误进行处理。
25.根据权利要求22所述的存储装置,其特征在于,所述易失性存储器进一步被配置成存储目录,所述目录表示分别与所述第一元数据以及所述第二元数据对应的物理地址,且
所述控制器进一步被配置成判断所述目录中所包含的多个目录数据是否已损坏,且将与所述多个目录数据中已损坏的第一目录数据对应的元数据作为所述不可修正的错误进行处理。
CN201711021975.2A 2017-02-06 2017-10-26 存储装置及存储装置的操作方法 Active CN108399134B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2017-0016266 2017-02-06
KR1020170016266A KR20180091296A (ko) 2017-02-06 2017-02-06 손상된 메타 데이터를 처리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법

Publications (2)

Publication Number Publication Date
CN108399134A true CN108399134A (zh) 2018-08-14
CN108399134B CN108399134B (zh) 2021-12-17

Family

ID=62909802

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711021975.2A Active CN108399134B (zh) 2017-02-06 2017-10-26 存储装置及存储装置的操作方法

Country Status (5)

Country Link
US (2) US10545830B2 (zh)
KR (1) KR20180091296A (zh)
CN (1) CN108399134B (zh)
DE (1) DE102017124079B4 (zh)
TW (1) TWI741054B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112130750A (zh) * 2019-06-25 2020-12-25 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN113791930A (zh) * 2021-09-14 2021-12-14 浙江大华存储科技有限公司 读命令的处理方法和装置、存储介质及电子装置

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180091296A (ko) 2017-02-06 2018-08-16 삼성전자주식회사 손상된 메타 데이터를 처리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
KR102557993B1 (ko) * 2018-10-02 2023-07-20 삼성전자주식회사 메모리 이용 효율을 향상한 보안 처리기를 포함하는 시스템 온 칩, 메모리 시스템 및 시스템 온 칩의 동작방법
KR20200139433A (ko) 2019-06-04 2020-12-14 에스케이하이닉스 주식회사 컨트롤러의 동작 방법 및 메모리 시스템
KR20200123684A (ko) 2019-04-22 2020-10-30 에스케이하이닉스 주식회사 메모리 시스템에서 맵 정보를 전송하는 장치
KR102666123B1 (ko) 2019-07-05 2024-05-16 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR20200137181A (ko) 2019-05-29 2020-12-09 에스케이하이닉스 주식회사 메모리 시스템에서 맵정보를 전송하는 장치
US11422942B2 (en) * 2019-04-02 2022-08-23 SK Hynix Inc. Memory system for utilizing a memory included in an external device
CN112882650B (zh) * 2019-11-29 2024-04-30 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
US11579970B2 (en) 2020-07-30 2023-02-14 Micron Technology, Inc. Maintenance command interfaces for a memory system
KR20220023476A (ko) * 2020-08-21 2022-03-02 에스케이하이닉스 주식회사 레이드 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템
CN112634975A (zh) * 2020-12-24 2021-04-09 杭州华澜微电子股份有限公司 一种数据存储纠错方法、装置及电子设备
US11990200B2 (en) * 2021-01-28 2024-05-21 Micron Technology, Inc. Bit retiring to mitigate bit errors
TWI766582B (zh) * 2021-02-17 2022-06-01 群聯電子股份有限公司 有效資料合併方法、記憶體儲存裝置及記憶體控制電路單元
CN112925481B (zh) * 2021-03-09 2024-04-05 合肥兆芯电子有限公司 存储器管理方法、存储器存储装置及存储器控制电路单元
US11507296B2 (en) * 2021-03-10 2022-11-22 Micron Technology, Inc. Repair operation techniques
EP4092539A1 (en) * 2021-05-17 2022-11-23 Elektrobit Automotive GmbH Re-partitioning of a flash memory device
US11960757B2 (en) 2021-10-04 2024-04-16 Samsung Electronics Co., Ltd. Flash translation layer with rewind

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8281227B2 (en) * 2009-05-18 2012-10-02 Fusion-10, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
CN103064641A (zh) * 2013-02-05 2013-04-24 威盛电子股份有限公司 非易失性存储装置及其操作方法
US8924832B1 (en) * 2012-06-26 2014-12-30 Western Digital Technologies, Inc. Efficient error handling mechanisms in data storage systems
KR20150094292A (ko) * 2014-02-11 2015-08-19 한양대학교 산학협력단 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7139864B2 (en) 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US9286198B2 (en) 2005-04-21 2016-03-15 Violin Memory Method and system for storage of data in non-volatile media
US9495241B2 (en) * 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US9116823B2 (en) * 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
US8307258B2 (en) * 2009-05-18 2012-11-06 Fusion-10, Inc Apparatus, system, and method for reconfiguring an array to operate with less storage elements
US8478796B2 (en) * 2010-03-23 2013-07-02 Apple Inc. Uncorrectable error handling schemes for non-volatile memories
KR101678919B1 (ko) 2011-05-02 2016-11-24 삼성전자주식회사 메모리 시스템 및 에러 정정 방법
KR101301828B1 (ko) 2011-09-29 2013-08-29 한양대학교 산학협력단 플래시 메모리에 기반한 ssd에서의 전원-손실 복구 방법 및 장치
US9037949B1 (en) 2012-06-21 2015-05-19 Rambus Inc. Error correction in a memory device
US8990670B2 (en) * 2012-09-28 2015-03-24 Intel Corporation Endurance aware error-correcting code (ECC) protection for non-volatile memories
US20150032982A1 (en) 2013-07-26 2015-01-29 Fusion-Io, Inc. Systems and methods for storage consistency
US9292434B2 (en) 2013-08-22 2016-03-22 CNEXLABS, Inc. Method and apparatus for restoring flash translation layer (FTL) in non-volatile storage device
US9317357B2 (en) 2014-03-20 2016-04-19 International Business Machines Corporation Management of microcode errors in a storage operation
KR102147970B1 (ko) * 2014-08-05 2020-08-25 삼성전자주식회사 비휘발성 메모리 기반의 스토리지 디바이스의 복구 방법 및 상기 스토리지 디바이스를 포함하는 전자 시스템의 동작 방법
US9959059B2 (en) * 2014-10-20 2018-05-01 Sandisk Technologies Llc Storage error management
KR20180091296A (ko) 2017-02-06 2018-08-16 삼성전자주식회사 손상된 메타 데이터를 처리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US10489244B2 (en) * 2017-10-03 2019-11-26 Microsoft Technology Licensing, Llc Systems and methods for detecting and correcting memory corruptions in software

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8281227B2 (en) * 2009-05-18 2012-10-02 Fusion-10, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
US8924832B1 (en) * 2012-06-26 2014-12-30 Western Digital Technologies, Inc. Efficient error handling mechanisms in data storage systems
CN103064641A (zh) * 2013-02-05 2013-04-24 威盛电子股份有限公司 非易失性存储装置及其操作方法
KR20150094292A (ko) * 2014-02-11 2015-08-19 한양대학교 산학협력단 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112130750A (zh) * 2019-06-25 2020-12-25 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112130750B (zh) * 2019-06-25 2023-11-07 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN113791930A (zh) * 2021-09-14 2021-12-14 浙江大华存储科技有限公司 读命令的处理方法和装置、存储介质及电子装置

Also Published As

Publication number Publication date
CN108399134B (zh) 2021-12-17
KR20180091296A (ko) 2018-08-16
TW201830253A (zh) 2018-08-16
DE102017124079B4 (de) 2022-05-05
US20180225176A1 (en) 2018-08-09
US10545830B2 (en) 2020-01-28
US20200167231A1 (en) 2020-05-28
DE102017124079A1 (de) 2018-08-09
TWI741054B (zh) 2021-10-01
US11113149B2 (en) 2021-09-07

Similar Documents

Publication Publication Date Title
CN108399134A (zh) 存储装置及存储装置的操作方法
EP3800554A1 (en) Storage system managing metadata, host system controlling storage system, and storage system operating method
US10013307B1 (en) Systems and methods for data storage devices to use external resources
CN108804023B (zh) 数据存储装置及其操作方法
US11474899B2 (en) Operation method of open-channel storage device
US20150331624A1 (en) Host-controlled flash translation layer snapshot
US20190324859A1 (en) Method and Apparatus for Restoring Data after Power Failure for An Open-Channel Solid State Drive
US10198318B2 (en) Storage apparatus having nonvolatile memory device, and nonvolatile memory device
US9558108B2 (en) Half block management for flash storage devices
CN108932107B (zh) 数据存储装置及其操作方法
US20190087348A1 (en) Data backup method, data recovery method and storage controller
US11157402B2 (en) Apparatus and method for managing valid data in memory system
US9798673B2 (en) Paging enablement of storage translation metadata
US10459803B2 (en) Method for management tables recovery
US20170010810A1 (en) Method and Apparatus for Providing Wear Leveling to Non-Volatile Memory with Limited Program Cycles Using Flash Translation Layer
KR20160074025A (ko) 데이터 저장 장치의 동작 방법
CN115458013A (zh) 存储装置及其操作方法
CN104102456A (zh) 存储器装置机器操作方法
KR20200058867A (ko) 메모리 시스템의 복구 동작 중 비휘발성 메모리 블록의 반복 접근을 줄이는 방법 및 장치
US20190361608A1 (en) Data storage device and operation method for recovery, and storage system having the same
CN110968473A (zh) 存储器控制器和包括存储器控制器的存储装置
US11755223B2 (en) Systems for modular hybrid storage devices
US11550506B2 (en) Systems and methods for accessing hybrid storage devices
US10613973B1 (en) Garbage collection in solid state drives

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