CN113220216A - 数据存储设备及其操作方法 - Google Patents

数据存储设备及其操作方法 Download PDF

Info

Publication number
CN113220216A
CN113220216A CN202010799414.0A CN202010799414A CN113220216A CN 113220216 A CN113220216 A CN 113220216A CN 202010799414 A CN202010799414 A CN 202010799414A CN 113220216 A CN113220216 A CN 113220216A
Authority
CN
China
Prior art keywords
mapping data
data
address
mapping
storage device
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.)
Withdrawn
Application number
CN202010799414.0A
Other languages
English (en)
Inventor
秦龙
金基宣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN113220216A publication Critical patent/CN113220216A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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
    • 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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • 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/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • 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
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • 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/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • 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
    • 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/7207Details relating to flash memory management management of metadata or control data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

本公开涉及一种数据存储设备。该数据存储设备包括:存储装置,被划分为单位物理区域并且数据存储在存储装置中;缓冲存储器,具有加载有映射表的缓冲存储器区域,该映射表包括分别指示主机的逻辑地址与单位物理区域的起始物理地址之间的连接信息的映射数据;以及控制器,被配置成:根据主机的请求来控制将数据输入到存储装置和从存储装置输出数据,以基于与请求中包括的逻辑地址相对应映射表地址来从缓冲存储器读取该逻辑地址的映射数据,并且通过将错误次数等于或大于阈值的缓冲存储器区域中的源映射数据与错误次数小于阈值的缓冲存储器区域中的牺牲映射数据合并来重新映射映射数据。

Description

数据存储设备及其操作方法
相关申请的交叉引用
本申请要求于2020年2月5日向韩国知识产权局提交的申请号为10-2020-0013569的韩国申请的优先权,其全部内容通过引用并入本文。
技术领域
各个实施例可总体涉及一种半导体集成装置,且更特别地,涉及一种数据存储设备及其操作方法。
背景技术
数据存储设备可联接到主机,以根据主机的请求来执行数据输入和输出操作。
主机可使用逻辑地址来访问数据存储设备中的数据,该逻辑地址可不同于用于实际访问数据存储设备中的数据的物理地址。因此,为了处理从主机到数据存储设备的请求,管理***可将主机使用的逻辑地址映射到数据存储设备使用的物理地址。
映射表可用于逻辑地址和物理地址之间的映射,并且映射表的稳定操作可作为确定存储器装置的可靠性的关键因素。
发明内容
在本公开的实施例中,一种数据存储设备可包括:存储装置,被划分为第一大小的单位物理区域,并且数据存储在该存储装置中;缓冲存储器,加载有映射表,该映射表是指示主机的逻辑地址和单位物理区域的起始物理地址之间的连接信息的一组映射数据;以及控制器,被配置成根据主机的请求来控制将数据输入到存储装置和从存储装置输出数据,基于存储了主机请求访问的逻辑地址的映射数据的映射表地址,来从缓冲存储器中读取该映射数据,并且通过将错误发生次数等于或大于第一阈值的缓冲存储器区域中的源映射数据与错误发生次数小于第一阈值的至少一个缓冲存储器区域中的牺牲映射数据合并,来重新映射该映射数据。
在本公开的实施例中,一种数据存储设备的操作方法,该数据存储设备包括:存储装置,被划分为第一大小的单位物理区域,并且数据存储在该存储装置中;缓冲存储器,加载有映射表,该映射表是指示主机的逻辑地址和单位物理区域的起始物理地址之间的连接信息的一组映射数据;以及控制器,被配置成根据主机的请求来控制将数据输入到存储装置和从存储装置输出数据;该方法可包括:当从主机传输包括逻辑地址的请求时,控制器基于存储了该逻辑地址的映射数据的映射表地址,来从缓冲存储器中读取映射数据;并且当存储了该映射数据的缓冲存储器区域的错误发生次数等于或大于第一阈值时,控制器通过将错误发生次数等于或大于第一阈值的缓冲存储器区域中的源映射数据与错误发生的数量小于第一阈值的至少一个缓冲存储器区域中的牺牲映射数据合并来重新映射该映射数据。
下面更详细地描述这些和其它特征、方面和实施例。
附图说明
从以下结合附图的详细描述中将更清楚地理解本公开的主题的上述和其它方面、特征和优点,其中:
图1示出根据本公开的实施例的数据存储设备的配置;
图2示出根据本公开的实施例的控制器的配置;
图3示出根据本公开的实施例的映射信息管理器的配置;
图4示出根据本公开的实施例的映射信息管理概念;
图5示出根据本公开的实施例的第一重新映射器的配置;
图6示出根据本公开的实施例的第二重新映射器和缓冲存储器控制器的配置;
图7示出根据本公开的实施例的数据存储设备的操作进程;
图8示出根据本公开的实施例的软重新映射进程;
图9示出根据本公开的实施例的软重新映射进程所使用的组件;
图10示出根据本公开的实施例的硬重新映射进程;
图11示出根据实施例的数据存储***;
图12和图13示出根据实施例的各个数据处理***;
图14示出根据实施例的包括数据存储装置的网络***;并且
图15示出根据实施例的数据存储装置中包括的非易失性存储器装置。
具体实施方式
参照附图详细描述本教导的各个实施例。附图是各个实施例(和中间结构)的示意图。这样,将预期到由于例如制造技术和/或容差而导致的图示配置和形状的变化。因此,所描述的实施例不应被解释为受限于本文所示的特定配置和形状,而是可包括不脱离如所附权利要求所限定的本教导的实质和范围的配置和形状的偏差。
本文参考本教导的理想化实施例的截面图和/或平面图来描述本教导。然而,本教导的实施例不应被解释为限制本教导。尽管示出和描述了本教导的一些实施例,但本领域普通技术人员将理解的是,在不脱离本教导的原理和精神的情况下,可在这些实施例中进行改变。
图1是示出根据实施例的数据存储设备10的配置的示图。
根据实施例的数据存储设备10可包括控制器110、存储装置120和缓冲存储器130。
控制器110可响应于主机的请求来控制存储装置120。例如,控制器110可根据主机的编程(写入)请求来控制将数据编程在存储装置120中。控制器110可响应于主机的读取请求而将存储装置120中存储的数据提供到主机。在实施例中,控制器110可包括映射信息管理器210和缓冲存储器(BMEM)控制器220。
存储装置120可根据控制器110的控制来存储数据或输出所存储的数据。存储装置120可由易失性存储器或非易失性存储器来配置。在实施例中,存储装置120可使用从诸如以下的各种非易失性存储器装置之中选择的存储器装置来实施:电可擦除可编程只读存储器(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变随机存取存储器(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)和自旋转移力矩磁性RAM(STT-MRAM)。
存储装置120可包括多个非易失性存储器装置(NVM)121至12n,并且非易失性存储器装置(NVM)121至12n中的每一个可包括多个管芯、多个芯片或多个封装。进一步地,存储装置120可由一个存储器单元中存储一位(1位)数据的单层单元(SLC)或一个存储器单元中存储多位数据(即,两位或更多位数据)的多层单元(MLC)来配置。
如闪速存储器装置的不能就地更新(重写)的存储器装置可首先对编程目标存储器单元执行擦除操作,然后对该编程目标存储器单元执行编程操作。闪速存储器装置中的写入/读取单位(页面单位)和擦除单位(块单位)可彼此不同。因此,为了更新特定块中存储的数据的一部分,闪速存储器装置可通过读取相应特定块中存储的全部数据并且(如果需要,在更新之后)将该全部数据编程到另一块中来更新该部分数据。
由于存储数据的物理位置可能在主机不知晓的情况下被改变,所以可使用管理主机使用的逻辑地址与存储装置120的物理地址的关联的映射表。
控制器110的映射信息管理器210可执行管理操作,诸如生成和更新将主机的逻辑地址与存储装置120的物理地址相关联的映射表MT的操作。该映射表MT可存储在存储装置120中,并且可在向数据存储设备10供应电力时被加载到缓冲存储器130中。该映射表MT可以是一组条目(或段),该条目(或段)为用于存储逻辑地址与物理地址的映射信息的单位映射数据,并且该映射表MT的大小可与存储装置120的容量成比例。
在实施例中,逻辑地址可指示构成存储装置120的存储器装置中的第一大小(例如,4千字节(KB))的单位物理区域的起始物理地址,并且映射数据可包括以第二大小(例如,4字节)来表示对应于逻辑地址的物理区域的地址的数据。
缓冲存储器130可用作当数据存储设备10结合主机执行一系列写入数据和读取数据的操作时所需的数据的空间。例如,作为一组映射数据的映射表、待读取的数据、待写入的数据、元数据等可临时存储在缓冲存储器130中。
在实施例中,缓冲存储器130可由动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM)来配置,并且可通过BMEM控制器220来控制。
BMEM控制器220可将缓冲存储器130划分为多个区域(槽)并且分配或释放区域以临时存储数据。短语“分配区域”可意为将相应区域配置成具有将数据存储在该相应区域中的状态或者在该相应区域中存储的数据为有效的状态。短语“释放区域”可意为将相应区域配置成具有不将数据存储在该相应区域中的状态或者在该相应区域中存储的数据为无效的状态。
由于与闪速存储器相比,DRAM由于具有更快的运算速度和更高的集成度而被广泛用作计算装置的工作存储器。然而,因为DRAM具有有限的数据保留特性,所以DRAM需要周期性地执行刷新。为了确保存储诸如映射表的关键数据的DRAM的可靠性,当读取或刷新缓冲存储器130的数据时,BMEM控制器220可执行错误校正操作。在实施例中,BMEM控制器220可校正缓冲存储器130的1位错误并且检测缓冲存储器130的2位错误。
当在缓冲存储器130的特定区域中重复发生1位错误时,将来在相应特定区域中发生不可校正错误的概率可能较高,因此可能需要执行错误管理。
为便于描述,将如下定义待在下文描述的关键术语。
[表1]
Figure BDA0002626843320000061
映射信息管理器210可生成“映射表地址”,该映射表地址是存储器130内的、存储从主机提供的逻辑地址的映射数据的“映射数据区域”的地址,并且可通过访问缓冲存储器130内的、由映射表地址指示的区域来获取包括存储装置120的物理地址的映射数据。
在实施例中,当从缓冲存储器130中读取映射数据时,映射信息管理器210可接收映射数据区域的错误相关信息。错误相关信息可包括错误发生/不发生、错误发生次数以及错误发生位置(诸如,列地址)。
映射信息管理器210可针对每个映射数据区域的错误发生次数进行计数,并且通过将源映射数据与牺牲映射数据进行合并来生成合并映射数据,其中源映射数据是错误发生次数等于或大于设定阈值(第一阈值)的映射数据区域中的映射数据,牺牲映射数据是至少一条另一映射数据。在实施例中,映射信息管理器210可通过选择与错误发生映射数据区域的逻辑地址连续的至少一个逻辑地址的映射数据作为牺牲映射数据,来将源映射数据和牺牲映射数据进行合并,并且将所选择的映射数据的逻辑地址作为“合并逻辑地址”进行管理。在实施例中,合并逻辑地址可以是牺牲映射数据的逻辑地址,但是实施例不限于此。进一步地,可将错误发生映射数据区域标记为坏状态,并且从此时起防止对错误发生映射数据区域进行访问,因此可防止发生不可校正错误。
合并映射数据可以是大小为第一大小K的X倍的物理区域的映射数据(其中X等于合并映射数据的数量)。例如,当一个逻辑地址被映射到4KB单位物理区域的起始物理地址,并且一条源映射数据与一条牺牲映射数据合并时,合并映射数据可以是8KB单位物理区域的起始物理地址与合并逻辑地址的映射数据。
稍后将描述的合并映射数据的操作可以是将由源映射数据指示的物理区域中的数据和由牺牲映射数据指示的物理区域中的数据移动到存储装置120的、在物理上连续的目标区域并且将合并逻辑地址和目标区域的起始物理地址进行映射的过程。
相对于映射数据区域中的每一个,可以将映射数据的合并状态作为映射表地址的元信息来管理。在实施例中,元信息可以是表示以下的信息:映射数据是否被合并、源映射数据是否和与该源映射数据的逻辑地址连续的在前逻辑地址的映射数据合并、或者源映射数据是否和与该源映射数据的逻辑地址连续的在后逻辑地址的映射数据合并。可将元信息作为位图来存储。
当从主机提供逻辑地址时,映射信息管理器210可确定存储该逻辑地址的映射数据的映射表地址,并且基于对应于该映射表地址的元信息来确定映射数据的合并状态。当所提取的映射表地址的映射数据与在前逻辑地址或在后逻辑地址的映射数据合并时,映射信息管理器210可从合并映射数据获取待访问的物理地址。
如上所述的合并映射数据的实施例可能改变发生错误的缓冲存储器130区域中的映射数据的映射信息,因此可被称为软重新映射。
在实施例中,当基于错误发生位置,缓冲存储器130中的特定列的错误发生次数的计数高于设定阈值(第二阈值)时,映射信息管理器210可控制BMEM控制器220以将相应列中的数据移动到缓冲存储器130的备用区域(冗余列)。当将错误发生列中的数据移动到冗余列时,BMEM控制器230可根据错误发生列地址和错误发生列中的数据被移动到的冗余列地址,来对映射表地址中的列地址进行重新映射。当映射信息管理器210访问缓冲存储器130的映射表时,BMEM控制器220可控制映射信息管理器210以基于列地址重新映射信息来访问缓冲存储器130。
如上所述的基于列来改变映射数据存储位置的实施例可通过将缓冲存储器130的错误发生区域中的数据移动到非错误发生区域来校正错误,因此可被称为硬重新映射。
在实施例中,在执行软重新映射时,当在特定列中检测到失败时,控制器110可执行硬重新映射,但是实施例不限于此。在实施例中,控制器110可在执行软重新映射之后确定是否执行硬重新映射,或者可在执行硬重新映射之后确定是否执行软重新映射。在其它实施例中,控制器110可在执行软重新映射和执行硬重新映射之间交替。
不需要规定软重新映射和硬重新映射的执行顺序,并且在各个实施例中可不同地改变该执行顺序。例如,可并行执行或可交替执行软重新映射和硬重新映射。
尽管图1示出缓冲存储器130位于控制器110外部的示例,但是在实施例中,缓冲存储器130可设置在控制器110内部。在实施例中,BMEM控制器220可如图1所示的设置在控制器110中,或者可与缓冲存储器130进行封装以构成缓冲存储器装置1300。
图2是示出根据实施例的控制器110的配置的示图。
根据实施例的控制器110可包括处理器111、主机接口113、只读存储器(ROM)1151、随机存取存储器(RAM)1153、存储器接口119、映射信息管理器210和BMEM控制器220。
处理器111可被配置成向主机接口113、RAM 1153、存储器接口119、映射信息管理器210和BMEM控制器220传输针对图1的存储装置120的数据读取操作或数据写入操作所需的各种控制信息。在实施例中,处理器111可根据针对数据存储设备10的各种操作所提供的固件进行操作。在实施例中,处理器111可执行用于执行垃圾收集、地址映射、损耗均衡等以管理存储装置120的闪存转换层(FTL)的功能、检测从存储装置120读取的数据的错误并对检测到的错误执行错误检查和校正(ECC)的功能,等等。
当从主机接收到写入命令和逻辑地址时,处理器111可控制写入操作,该写入操作分配对应于逻辑地址的物理地址,并且将数据写入存储装置120的、对应于该物理地址的存储区域中。
当从主机接收到读取命令和逻辑地址时,处理器111可控制读取操作,该读取操作确定对应于逻辑地址的物理地址,并且从存储装置120的、对应于该物理地址的存储区域中读取数据。
主机接口113可根据处理器111的控制而从主机接收命令和时钟信号,并且可提供用于控制数据输入和输出的通信通道。特别地,主机接口113可提供主机与数据存储设备10之间的物理连接。主机接口113可根据主机的总线格式来提供数据存储设备10与主机之间的接口连接。主机的总线格式可包括诸如以下的标准接口协议之中的至少一种:安全数字协议、通用串行总线(USB)协议、多媒体卡(MMC)协议、嵌入式MMC(eMMC)协议、个人计算机存储卡国际协会(PCMCIA)协议、并行高级技术附件(PATA)协议、串行高级技术附件(SATA)协议、小型计算机***接口(SCSI)协议、串列SCSI(SAS)协议、***组件互连(PCI)协议、高速PCI(PCI-E)协议和通用闪存(UFS)协议。
例如控制器110的操作所需的固件或软件的程序代码可存储在ROM 1151中,并且程序代码所使用的代码数据等可存储在ROM 1151中。
控制器110的操作所需的数据可存储在RAM 1153中,并且通过控制器110的操作而生成的数据可存储在RAM 1153中。
存储器接口119可提供用于控制器110与存储装置120之间的信号传输和接收的通信通道。存储器接口119可根据处理器111的控制来将临时存储在缓冲存储器130中的数据写入到存储装置120中。存储器接口119可将从存储装置120读出的数据临时存储在缓冲存储器130中。
映射信息管理器210可被配置成通过收集映射数据区域的错误相关信息来控制软重新映射操作、硬重新映射操作或这两者,其中当基于与主机的命令一起提供的逻辑地址而从缓冲存储器130中获取物理地址时与映射数据一起加载该错误相关信息。例如,错误相关信息可包括错误发生/不发生、错误发生次数或错误发生位置(诸如列地址)。
BMEM控制器220可被配置成管理缓冲存储器130的使用状态。在实施例中,BMEM控制器220可将缓冲存储器130划分为多个区域(槽)并且分配或释放区域以临时存储数据。
BMEM控制器220可包括ECC电路221,该ECC电路221被配置成校正从缓冲存储器130读取的数据中的1位错误并且检测从缓冲存储器130读取的数据中的2位错误。
对于软重新映射(第一重新映射),当为了基于主机的请求中包括的逻辑地址来获取物理地址而访问的映射数据区域的错误发生次数等于或大于第一阈值时,映射信息管理器210可将相应映射数据区域中的映射数据指定为源映射数据。映射信息管理器210可将与源映射数据的逻辑地址连续的至少一个逻辑地址的牺牲映射数据与该源映射数据合并,并且将该至少一个逻辑地址作为合并逻辑地址进行管理。合并逻辑地址可以是牺牲映射数据之中的任意一条牺牲映射数据的逻辑地址,例如,牺牲映射数据的一个或多个逻辑地址之中的任意一个逻辑地址。映射信息管理器210可基于映射数据合并状态来改变错误发生映射表地址的元信息。当对应于源物理地址的数据和对应于牺牲物理地址的数据未被连续地存储在存储装置120中时,映射信息管理器210可将对应于源物理地址的数据和对应于牺牲物理地址的数据移动到存储装置120的目标区域,这些目标区域在物理上彼此连续,然后将该目标区域的物理地址与合并逻辑地址进行映射。
对于硬重新映射(第二重新映射),当针对映射数据区域的特定列的错误发生次数等于或大于第二阈值时,映射信息管理器210可控制BMEM控制器220以将发生错误的特定列中的数据移动到冗余列。对于第二重新映射操作,BMEM控制器220可将错误发生列中的数据移动到冗余列,并且管理相应列地址的重新映射信息。
图3是示出根据实施例的映射信息管理器210的配置的示图,并且图4是说明根据实施例的映射信息管理概念的示图。
映射信息管理器210可包括逻辑地址提取器2101、映射表(MT)地址生成器2103、物理地址提取器2105、错误计数计数器2107和重新映射器2109。重新映射器2109可包括第一重新映射器2111和第二重新映射器2113。
参照图3和图4,逻辑地址提取器2101可被配置成从主机的请求REQ中提取逻辑地址LA。主机的请求REQ可包括命令(读取、写入等)和逻辑地址LA,并且逻辑地址提取器2101可从主机的请求REQ中提取逻辑地址。在实施例中,逻辑地址LA可包括逻辑块地址LBA和偏移d。
映射表(MT)地址生成器2103可确定针对由逻辑地址提取器2101提取的逻辑块地址LBA而分配的映射表地址MTA。例如,可通过将映射表MT的基地址添加到使用逻辑块地址LBA确定的偏移来确定映射表地址MTA,但是实施例不限于此。该映射表地址MTA可以是对缓冲存储器130的访问地址,如图1所示,映射表MT存储在缓冲存储器130。
物理地址提取器2105可从由映射表地址MTA指示的缓冲存储器130区域中获取物理地址PA,其中通过映射表(MT)地址生成器2103来提取映射表地址MTA。在实施例中,物理地址提取器2105可接收当从缓冲存储器130获取物理地址PA时与相应映射数据一起加载的映射数据区域的错误相关信息,例如错误发生/不发生、错误发生次数和错误发生位置(例如,列地址)。
错误计数计数器2107可通过从物理地址提取器2105接收错误相关信息来对映射数据区域的错误发生次数进行计数,并且通过对映射数据区域的每个错误发生位置的错误发生次数进行计数来确定是否执行映射数据重新映射。
当获取物理地址PA时,控制器110可基于通过物理地址提取器2105提取的物理地址PA和通过逻辑地址提取器2101提取的偏移d来访问存储装置120以处理主机的命令。
当错误计数计数器2107的计数结果指示需要重新映射时,重新映射器2109可通过第一重新映射器2111执行软重新映射、可通过第二重新映射器2113执行硬重新映射,或者执行这两者。
图5是示出根据实施例的第一重新映射器2111的配置的示图。
第一重新映射器2111可包括物理地址确认器301、数据合并器303、位图管理器205和映射表更新器307,并且可执行软重新映射。
物理地址确认器301可选择与错误发生映射数据区域中存储的源映射数据的逻辑地址连续的至少一个逻辑地址的映射数据作为牺牲映射数据。物理地址确认器301可确定存储装置120的、与源映射数据所指示的源物理地址相对应的区域和存储装置120的、与待与源物理地址合并的牺牲物理地址相对应的区域是否连续。
当存储装置120的、对应于源物理地址和牺牲物理地址的区域不连续时,数据合并器303可将由源物理地址指示的区域中的数据和由牺牲物理地址指示的区域中的数据移动到存储装置120的、在物理上连续的目标区域。
在实施例中,当存储装置120的、对应于源物理地址和牺牲物理地址的区域连续时,可省略存储装置120内的数据合并进程。
位图管理器305可根据映射表地址来管理指示每个映射数据的合并状态的元信息。在实施例中,位图管理器305可将以下指示作为对应于映射表地址的位图信息来管理:映射数据是否被合并、源映射数据是否和与该源映射数据的逻辑地址连续的在前逻辑地址的牺牲映射数据合并、和/或源映射数据是否和与该源映射数据的逻辑地址连续的在后逻辑地址的牺牲映射数据合并。映射表地址的元信息可存储在从控制器110的工作存储器、缓冲存储器130的元信息存储空间和其它存储空间之中选择的区域中。
当源映射数据与牺牲映射数据合并时,映射表更新器307可针对合并映射数据而分配合并逻辑地址。在实施例中,合并逻辑地址可以是牺牲映射数据之中的任意一条牺牲映射数据的逻辑地址。具体地,合并逻辑地址可以是作为牺牲映射数据的最前逻辑地址(例如,具有最低值的逻辑地址)的牺牲映射数据的逻辑地址,例如,对应于牺牲映射数据的多个逻辑地址之中的最前逻辑地址,但是实施例不限于此。当源映射数据的物理地址与牺牲映射数据的物理地址不连续,因此在存储装置120内执行数据合并时,映射表更新器307可将合并映射数据的合并逻辑地址映射到目标区域的起始物理地址。
因此,在基于与根据主机提供的逻辑地址而获取的映射表地址相对应的元信息来确定映射表地址的映射数据的合并状态之后,可从原始映射数据或合并映射数据中获取存储装置120中的、待访问的物理地址。
图6是示出根据实施例的第二重新映射器2113和BMEM控制器的配置的示图。
第二重新映射器2113可包括数据移动请求器309。BMEM控制器220可包括数据移动器221和缓冲存储器(BMEM)地址重新映射器223。
当基于使用错误计数计数器2107来对映射数据区域的每个错误发生位置(列)的错误发生次数进行计数而确定需要映射数据重新映射时,数据移动请求器309可控制BMEM控制器220以将对应于错误发生位置的列中的数据移动到缓冲存储器130的备用区域(冗余列)。
数据移动器221可根据数据移动请求器309的控制来将错误发生列中的数据移动到冗余列。
BMEM地址重新映射器223可基于错误发生列地址和错误发生列中的数据被移动到的冗余列地址来重新映射映射表地址,实质上是重新映射该映射表地址内的列地址。
因此,当映射信息管理器210基于映射表地址来访问缓冲存储器130的映射表时,BMEM控制器220可基于列地址重新映射信息来控制对缓冲存储器130的访问位置。在实施例中,列可对应于存储器阵列的位线,并且冗余列可对应于设置在存储器阵列中的、用于替换缺陷位线的冗余位线。
图7是说明根据实施例的诸如图1的数据存储设备10的数据存储设备的操作进程700的流程图。
数据存储设备10可在待机期间(如图7所示)或在操作期间接收主机的访问请求REQ(S101)。
控制器110可从主机的请求REQ中提取逻辑地址LA(S103)。
在实施例中,主机的请求REQ可包括命令和逻辑地址LA,并且控制器110可从主机的请求REQ中提取包括逻辑块地址LBA和偏移d的逻辑地址LA。
控制器110可确定针对所提取的逻辑地址,具体地,针对逻辑块地址LBA而分配的映射表地址MTA(S105),并且从由所确定的映射表地址MTA指示的缓冲存储器130区域获取物理地址PA(S107)。当从缓冲存储器130获取物理地址PA时,控制器110可接收与相应映射数据一起加载的映射数据区域的错误相关信息,例如错误发生/不发生、错误发生次数和错误发生位置(例如,列地址)。在执行操作S107之后,进程700可执行操作S109和S111两者。
当获取到物理地址PA时,控制器110可访问存储装置120的、对应于所获取的物理地址PA的区域,以处理主机的命令(S109)。
控制器110可通过对映射数据区域的错误发生次数进行计数和/或通过对映射数据区域的每个错误发生位置(即,每列)的错误发生次数进行计数,来确定是否执行映射数据重新映射。
在实施例中,控制器110可确定错误发生次数是否等于或大于设定的第一阈值TH1(S111)。
响应于作为操作S111的确定结果,确定错误发生次数(错误计数)等于或大于第一阈值TH1(S111:是),控制器110可执行第一重新映射,例如软重新映射,软重新映射通过将源映射数据与牺牲映射数据合并来生成合并映射数据,其中源映射数据为与错误计数相对应的映射数据区域中的映射数据,牺牲映射数据为错误发生次数小于第一阈值的至少一条另一映射数据(S113)。
控制器110可确定映射数据区域的每个错误发生位置(列)的错误发生次数(错误计数)是否等于或大于第二阈值TH2(S115)。
响应于作为操作S115的确定结果,确定特定列的错误发生次数等于或大于第二阈值TH2(S115:是),控制器110可将相应列的数据移动到冗余列,并且执行第二重新映射,例如重新映射列地址的硬重新映射(S117)。
在处理主机的请求的操作S109之后,当作为操作S111的确定结果,确定错误发生次数小于第一阈值TH1(S111:否)时,或者当作为操作S115的确定结果,确定列的错误发生次数小于第二阈值TH2(S115:否)时,控制器110可进行到待机状态。
在实施例中,不需要规定基于第一阈值TH1执行的第一重新映射进程和基于第二阈值TH2执行的第二重新映射进程的执行顺序。可在各个实施例中改***重新映射和硬重新映射的执行顺序。例如,可并行执行或可交替执行软重新映射和硬重新映射。
图8是说明根据实施例的软重新映射进程800的流程图,并且图9示出根据实施例的与软重新映射进程相关的实际和概念性数据结构。图9包括示出逻辑块地址(LBA)到映射表地址(MTA)映射的表902、在软重新映射进程操作之前的初始映射表904A(该映射表可存储在缓冲存储器130中并且还包括元信息)、在软重新映射进程操作之后的结果映射表904B、示出元信息位图(BM)的解释的表906、以及示出存储装置120内的由物理地址指示的区域的相关位置的存储器映射908。
参照图8和图9,将示意性地说明如表902所示的针对逻辑地址而分配映射表地址MTA并且如初始映射表904A所示的初始地存储映射表地址MTA区域中的元信息BM和物理地址PA的示例。
在实施例中,当针对主机的逻辑地址LBAa+1而分配的映射表地址(MTAa+1)区域的错误发生次数等于或大于第一阈值TH1时,控制器110可选择与发生(多个)错误的映射数据区域MTAa+1中存储的源映射数据的逻辑地址LBAa+1连续的至少一个逻辑地址LBAa的映射数据作为牺牲映射数据,并且可(从映射数据区域MTAa+1中)读出源物理地址PAc和(从映射数据区域MTAa中)读出待与该源物理地址PAc合并的牺牲物理地址PAa(S201),并且可确定待合并的源物理地址PAc和牺牲物理地址PAa是否分别对应于存储装置120内的连续区域(S203)。
响应于如存储器映射908所示的,确定了存储装置120的、对应于源物理地址PAc的区域和存储装置120的、对应于牺牲物理地址PAa的区域不连续(S203:否),控制器110可读出由源物理地址PAc指示的区域中的数据DATAc,并且读出由牺牲物理地址PAa指示的区域中的数据DATAa(S205),并且将数据DATAa和DATAc移动到存储装置120的、从物理地址PAx开始的目标区域,这些目标区域在物理上彼此连续(S207)。
在实施例中,当确定存储装置120内的、分别对应于源物理地址和牺牲物理地址的区域连续(S203:是)时,可省略存储装置120内的数据合并进程S205和S207。
因为映射数据被合并,所以如结果映射表904B所示,控制器110可改变指示相应映射数据的合并状态的元信息(S209),并且改变映射信息(S211)。
在如表906所示的元信息(BM)表中,元信息“00”可指示未发生错误的状态,并且元信息“11”可指示执行了硬重新映射的状态。元信息“01”可指示源映射数据与在前逻辑地址的映射数据合并的状态,并且元信息“10”可指示源映射数据与在后逻辑地址的映射数据合并的状态。
控制器110可通过对合并映射数据分配合并逻辑地址来改变映射信息(S211)。例如,当存储装置120的、分别对应于源映射数据的物理地址和牺牲映射数据的物理地址的区域不连续,因此在存储装置120内执行数据合并时,如结果映射表904B所示,控制器110可将合并映射数据的合并逻辑地址与目标区域的物理地址进行映射,其中映射表地址MTAa现在被映射到物理地址PAx。当存储装置120的、分别对应于源映射数据的物理地址和牺牲映射数据的物理地址的区域连续,因此无需数据合并时,合并映射数据可与牺牲映射数据相同;即,如果存储装置120的对应于源物理地址PAc的区域和存储装置120的对应于牺牲物理地址PAa的区域连续,则在结果映射表904B中,映射表地址MTAa将仍然被映射到物理地址PAa而非物理地址PAx。
在实施例中,因为在结果映射表904B中,逻辑地址LBAa+1的源映射数据与该逻辑地址LBAa+1之前的在前逻辑地址LBAa的映射数据合并,所以可将已经发生了高于第一阈值的错误的映射表地址MTAa+1的元信息设置为例如“01”。
随着映射数据被合并,可将逻辑地址LBAa和LBAa+1的合并逻辑地址设置为牺牲逻辑地址LBAa。然后,当接收到对逻辑地址LBAa+1的访问请求时,控制器110可基于映射表地址MTAa+1的元信息“01”而从结果映射表904B的、由针对合并逻辑地址LBAa而分配的映射表地址MTAa指示的区域中获取物理地址PAx,并且通过将主机的逻辑地址中包括的偏移d1转换成d1’来访问存储装置120的相应区域。例如,在实施例中,控制器110可从逻辑地址LBAa+1确定映射表地址MTAa+1,从对应于映射表地址MTAa+1的元信息确定到结果映射表904B的、对应于映射表地址MTAa+1的区域已被合并到结果映射表904B的、由映射表地址MTAa指示的区域中(即,在前区域),从结果映射表904B的、由映射表地址MTAa指示的区域中获取合并物理地址PAx,并且通过将从与逻辑地址LBAa+1相关联的偏移d1导出的偏移d1’添加到合并物理地址PAx来确定对应于逻辑地址LBAa+1的物理地址。
当将源映射数据与在前逻辑地址的映射数据合并,并且主机请求访问源映射数据的逻辑地址时,可将主机的逻辑地址中包括的偏移d1转换成d1’(d1’=d1+4KB),例如,通过将第一大小4KB添加到主机的偏移d1,并且当主机请求访问牺牲映射数据的逻辑地址时,可按原样应用主机的逻辑地址中包括的偏移d1(d1’=d1),而无需转换过程,但是这不限于此。
在另一实施例中,当在初始映射表904A的映射表地址MTAb-1区域中发生高于第一阈值TH1的错误时,控制器110可将映射表地址MTAb-1区域的映射数据与在对应于映射表地址MTAb-1的逻辑地址LBAb-1之后的在后逻辑地址LBAb的映射数据合并。因此,因为源映射数据与在后逻辑地址LBAb合并,所以如结果映射表904B所示,控制器110可将发生错误的映射表地址MTAb的元信息设置为“10”。控制器110可读出由源物理地址PAd指示的区域中的数据DATAd和由牺牲物理地址PAb指示的区域中的数据DATAb(S205),并且将数据DATAd和DATAb移动到存储装置120的、从物理地址PAy开始的目标区域,这些目标区域在物理上彼此连续(S207)。
因为映射数据被合并,所以可将逻辑地址LBAb-1和LBAb的合并逻辑地址设置为牺牲逻辑地址LBAb。然后,当接收到对逻辑地址LBAb-1的访问请求时,控制器110可基于映射表地址MTAb-1的元信息“10”而从结果映射表904B的、由针对合并逻辑地址LBAb而分配的映射表地址MTAb指示的区域获取物理地址PAy,并且通过将主机的逻辑地址中包括的偏移d2转换成d2’来访问存储装置120的相应区域。例如,在实施例中,控制器110可从逻辑地址LBAb-1确定映射表地址MTAb-1,从对应于映射表地址MTAb-1的元信息确定到结果映射表904B的、对应于映射表地址MTAb-1的区域已被合并到结果映射表904B的、由映射表地址MTAb指示的区域(即,在后区域),从结果映射表904B的、由映射表地址MTAb指示的区域获取合并物理地址PAy,并且通过将从与逻辑地址LBAb-1相关联的偏移d2导出的偏移d2’添加到合并物理地址PAy来确定对应于逻辑地址LBAb-1的物理地址。
当将源映射数据与在后逻辑地址的映射数据合并,并且主机请求访问源映射数据的逻辑地址时,可将主机的逻辑地址中包括的偏移d2转换成d2’(d2’=d2+4KB),例如,通过将第一大小4KB添加到主机的偏移d2,并且当主机请求访问牺牲映射数据的逻辑地址时,可按原样应用主机的逻辑地址中包括的偏移d2(d2’=d2),而无需转换过程,但是实施例不限于此。
因此,控制器110可基于与从主机提供的逻辑地址获取的映射表地址相对应的元信息来确定相应映射表地址中存储的映射数据的合并状态,然后从原始映射数据或合并映射数据获取待访问存储装置120的物理地址。
图10是说明根据实施例的硬重新映射进程的流程图。
当读出映射数据时,控制器110可对发生错误的映射数据区域的每一列的错误发生次数进行计数,并且对错误发生次数等于或大于第二阈值TH2的列执行硬重新映射。
为了执行硬重新映射,BMEM控制器220可接收发生高于第二阈值的错误的列地址(S301),并且将相应列的数据移动到冗余列(S303)。
BMRM控制器220可重新映射该映射表地址内的、对应于错误发生列地址的列地址,以替代地参考错误发生列中的数据所移动到的冗余列地址(S305)。
然后,当映射信息管理器210访问缓冲存储器130的映射表时,BMEM控制器220可控制映射信息管理器210以基于列地址重新映射信息来访问缓冲存储器130。
图11是示出根据实施例的数据存储***1000的示图。
参照图11,数据存储***1000可包括主机装置1100和数据存储装置1200。在实施例中,数据存储装置1200可被配置成固态驱动器(SSD)。
数据存储装置1200可包括控制器1210、多个非易失性存储器装置1220-0至1220-n、缓冲存储器装置1230、电源1240、信号连接器1101和电源连接器1103。
控制器1210可控制数据存储装置1200的一般操作。控制器1210可包括主机接口、控制器、用作工作存储器的随机存取存储器、错误检查和校正(ECC)组件和存储器接口。在实施例中,控制器1210可被配置成图1和图2中示出的控制器110。
主机装置1100可通过信号连接器1101与数据存储装置1200交换信号。该信号可包括命令、地址、数据等。
控制器1210可分析和处理从主机装置1100接收的信号。控制器1210可根据用于驱动数据存储装置1200的固件或软件来控制内部功能块的操作。
缓冲存储器装置1230可临时存储待存储在非易失性存储器装置1220-0至1220-n中的至少一个中的数据。进一步地,缓冲存储器装置1230可临时存储从非易失性存储器装置1220-0至1220-n中的至少一个读取的数据。根据控制器1210的控制,临时存储在缓冲存储器装置1230中的数据可被传输到主机装置1100或非易失性存储器装置1220-0至1220-n中的至少一个。
非易失性存储器装置1220-0和1220-n可用作数据存储装置1200的存储介质。非易失性存储器装置1220-0至1220-n可分别通过多个通道CH0至CHn与控制器1210联接。一个或多个非易失性存储器装置可联接到一个通道。联接到每个通道的非易失性存储器装置可联接到相同的信号总线和数据总线。
电源1240可将通过电源连接器1103输入的电力提供到数据存储装置1200的控制器1210、非易失性存储器装置1220-0至1220-n和缓冲存储器装置1230。电源1240可包括辅助电源。辅助电源可供应电力以在发生电力突然中断时允许数据存储装置1200正常地终止。辅助电源可包括足以存储所需电荷的大容量电容器。
信号连接器1101可根据主机装置1100与数据存储装置1200之间的接口方案而被配置成各种类型的连接器中的一种或多种。
电源连接器1103可根据主机装置1100的供电方案而被配置成各种类型的连接器中的一种或多种。
图12是示出根据实施例的数据处理***3000的示图。参照图12,数据处理***3000可包括主机装置3100和存储器***3200。
主机装置3100可以以诸如印制电路板的板形式来配置。尽管未示出,但主机装置3100可包括用于执行主机装置的功能的内部功能块。
主机装置3100可包括诸如插座、插槽或连接器的连接端子3110。存储器***3200可与连接端子3110匹配。
存储器***3200可以以诸如印制电路板的板形式来配置。存储器***3200可被称为存储器模块或存储卡。存储器***3200可包括控制器3210、缓冲存储器装置3220、非易失性存储器装置3231和3232、电源管理集成电路(PMIC)3240和连接端子3250。
控制器3210可控制存储器***3200的一般操作。控制器3210可以与图1和图2所示的控制器110相同的方式来配置。
缓冲存储器装置3220可临时存储待被存储在非易失性存储器装置3231和3232中的数据。进一步地,缓冲存储器装置3220可临时存储从非易失性存储器装置3231和3232读取的数据。被临时存储在缓冲存储器装置3220中的数据可根据控制器3210的控制被传输到主机装置3100或非易失性存储器装置3231和3232。
非易失性存储器装置3231和3232可用作存储器***3200的存储介质。
PMIC 3240可将通过连接端子3250输入的电力提供到存储器***3200的内部。PMIC 3240可根据控制器3210的控制来管理存储器***3200的电力。
连接端子3250可联接到主机装置3100的连接端子3110。通过连接端子3250,诸如命令、地址、数据等的信号和电力可在主机装置3100与存储器***3200之间传送。连接端子3250可根据主机装置3100与存储器***3200之间的接口连接方案而被配置成各种类型中的一种或多种。如图所示,连接端子3250可被设置在存储器***3200的一侧。
图13是示出根据实施例的数据处理***4000的示图。参照图13,数据处理***4000可包括主机装置4100和存储器***4200。
主机装置4100可以以诸如印制电路板的板形式来配置。尽管未示出,但主机装置4100可包括用于执行主机装置的功能的内部功能块。
存储器***4200可以以表面安装型封装的形式来配置。存储器***4200可通过焊球4250安装到主机装置4100。存储器***4200可包括控制器4210、缓冲存储器装置4220和非易失性存储器装置4230。
控制器4210可控制存储器***4200的一般操作。控制器4210可以与图1和图2所示的控制器110相同的方式来配置。
缓冲存储器装置4220可临时存储待被存储在非易失性存储器装置4230中的数据。进一步地,缓冲存储器装置4220可临时存储从非易失性存储器装置4230读取的数据。被临时存储在缓冲存储器装置4220中的数据可根据控制器4210的控制被传输到主机装置4100或非易失性存储器装置4230。
非易失性存储器装置4230可用作存储器***4200的存储介质。
图14是示出根据实施例的包括数据存储装置的网络***5000的示图。参照图14,网络***5000可包括通过网络5500联接的服务器***5300和多个客户端***5410、5420和5430。
服务器***5300可响应于来自多个客户端***5410至5430的请求来服务数据。例如,服务器***5300可存储由多个客户端***5410至5430提供的数据。再例如,服务器***5300可将数据提供到多个客户端***5410至5430。
服务器***5300可包括主机装置5100和存储器***5200。存储器***5200可被配置成图1所示的存储器***10、图11所示的数据存储装置1200、图12所示的存储器***3200或图13所示的存储器***4200。
图15是示出根据实施例的诸如数据存储装置10的数据存储装置中包括的非易失性存储器装置300的框图。参照图15,非易失性存储器装置300可包括存储器单元阵列310、行解码器320、数据读取/写入块330、列解码器340、电压生成器350和控制逻辑360。
存储器单元阵列310可包括布置在字线WL1至WLm和位线BL1至BLn彼此相交的区域处的存储器单元MC。
存储器单元阵列310可包括三维存储器阵列。例如,三维存储器阵列在对半导体衬底的平坦表面的垂直方向上具有堆叠结构。此外,三维存储器阵列意为包括NAND串的结构,其中被包括在NAND串中的存储器单元垂直于半导体衬底的平坦表面堆叠。
三维存储器阵列的结构不限于上述实施例。可以具有水平方向性和垂直方向性的高度集成的方式形成存储器阵列结构。在实施例中,在三维存储器阵列的NAND串中,存储器单元相对于半导体衬底的表面被布置在水平和垂直方向上。存储器单元可被不同地间隔开,以提供不同的集成度。
行解码器320可通过字线WL1至WLm与存储器单元阵列310联接。行解码器320可根据控制逻辑360的控制来操作。行解码器320可对由外部装置(未示出)提供的地址进行解码。行解码器320可基于解码结果来选择并驱动字线WL1至WLm。例如,行解码器320可将由电压生成器350提供的字线电压提供到字线WL1至WLm。
数据读取/写入块330可通过位线BL1至BLn与存储器单元阵列310联接。数据读取/写入块330可包括分别对应于位线BL1至BLn的读取/写入电路RW1至RWn。数据读取/写入块330可根据控制逻辑360的控制来操作。数据读取/写入块330可根据操作模式而作为写入驱动器或读出放大器来操作。例如,数据读取/写入块330可作为写入驱动器来操作,该写入驱动器在写入操作中将由外部装置提供的数据存储在存储器单元阵列310中。再例如,数据读取/写入块330可作为读出放大器来操作,该读出放大器在读取操作中从存储器单元阵列310读出数据。
列解码器340可根据控制逻辑360的控制来操作。列解码器340可对由外部装置提供的地址进行解码。列解码器340可基于解码结果将数据读取/写入块330的、分别对应于位线BL1至BLn的读取/写入电路RW1至RWn与数据输入/输出线或数据输入/输出缓冲器联接。
电压生成器350可生成待用于非易失性存储器装置300的内部操作的电压。通过电压生成器350生成的电压可被施加到存储器单元阵列310的存储器单元。例如,在编程操作中生成的编程电压可被施加到待执行编程操作的存储器单元的字线。再例如,在擦除操作中生成的擦除电压可被施加到待执行擦除操作的存储器单元的阱区域。又例如,在读取操作中生成的读取电压可被施加到待执行读取操作的存储器单元的字线。
控制逻辑360可基于由外部装置提供的控制信号来控制非易失性存储器装置300的一般操作。例如,控制逻辑360可控制非易失性存储器装置300的操作,诸如非易失性存储器装置300的读取操作、写入操作和擦除操作。
本发明的上述实施例旨在说明而非限制本发明。各种替代方案和等同方案是可能的。本发明不受本文所描述的实施例的限制。本发明也不限于任何特定类型的半导体装置。鉴于本公开,其它添加、删减或修改是显而易见的,并且旨在落入所附权利要求的范围内。

Claims (18)

1.一种数据存储设备,包括:
存储装置,被划分成第一大小的单位物理区域,并且数据存储在所述存储装置中;
缓冲存储器,包括多个缓冲存储器区域并且具有加载在所述多个缓冲存储器区域中的映射表,所述映射表包括一组映射数据,每个映射数据指示主机的逻辑地址与各自的单位物理区域的起始物理地址之间的连接信息;以及
控制器:
根据所述主机的请求来控制将数据输入到所述存储装置和从所述存储装置输出数据,
基于存储了所述主机请求访问的所述逻辑地址的映射数据的映射表地址来从所述缓冲存储器读取所述映射数据,并且
通过将错误发生次数等于或大于第一阈值的缓冲存储器区域中的源映射数据与所述错误发生次数小于所述第一阈值的至少一个缓冲存储器区域中的牺牲映射数据合并,来重新映射所述映射数据。
2.根据权利要求1所述的数据存储设备,其中所述控制器选择所述错误发生次数等于或大于所述第一阈值的缓冲存储器区域中存储的映射数据作为所述源映射数据,选择逻辑地址与所述源映射数据的逻辑地址连续的N个映射数据作为所述牺牲映射数据,并且生成合并映射数据,所述合并映射数据是合并逻辑地址与所述第一大小的(N+1)倍的物理区域的起始物理地址之间的连接信息,所述合并逻辑地址为所述牺牲映射数据的逻辑地址中的任意一个逻辑地址,其中N是自然数。
3.根据权利要求2所述的数据存储设备,其中所述控制器进一步选择所述牺牲映射数据的逻辑地址中的最前逻辑地址作为所述合并逻辑地址。
4.根据权利要求1所述的数据存储设备,其中所述控制器进一步将所述源映射数据的合并状态作为元信息来管理。
5.根据权利要求4所述的数据存储设备,其中所述控制器进一步:
选择与所述源映射数据的逻辑地址连续的在前逻辑地址的映射数据作为所述牺牲映射数据,并且将所述源映射数据和所述牺牲映射数据合并,并且
设置所述元信息以指示所述源映射数据与所述在前逻辑地址的映射数据合并。
6.根据权利要求4所述的数据存储设备,其中所述控制器进一步:
选择与所述源映射数据的逻辑地址连续的在后逻辑地址的映射数据作为所述牺牲映射数据,并且将所述源映射数据和所述牺牲映射数据合并,并且
设置所述元信息以指示所述源映射数据与所述在后逻辑地址的映射数据合并。
7.根据权利要求1所述的数据存储设备,其中所述控制器进一步:
通过将所述源映射数据与至少一条牺牲映射数据合并来生成合并映射数据,并且
当所述存储装置的、与由所述源映射数据指示的物理地址相对应的区域和所述存储装置的、与由所述牺牲映射数据指示的物理地址相对应的区域连续时,生成所述牺牲映射数据的逻辑地址中的最前逻辑地址的牺牲映射数据作为合并映射数据。
8.根据权利要求1所述的数据存储设备,其中所述控制器进一步:
通过将所述源映射数据与至少一条牺牲映射数据合并来生成合并映射数据,并且
当所述存储装置的、与由所述源映射数据指示的物理地址相对应的区域和所述存储装置的、与由所述牺牲映射数据指示的物理地址相对应的区域不连续时,将所述存储装置的、与由所述源映射数据指示的物理地址相对应的区域中存储的数据和所述存储装置的、与由所述牺牲映射数据指示的物理地址相对应的区域中存储的数据移动到所述存储装置中的连续的目标区域,并且通过将合并逻辑地址与所述目标区域的起始物理地址进行映射来生成合并映射数据,所述合并逻辑地址为所述牺牲映射数据的逻辑地址之中的最前逻辑地址。
9.根据权利要求1所述的数据存储设备,进一步包括缓冲存储器控制器,所述缓冲存储器控制器控制所述缓冲存储器,
其中所述控制器控制所述缓冲存储器控制器,以基于存储所述映射数据的所述缓冲存储器的每列的所述错误发生次数,来将发生所述错误发生次数高于第二阈值的列中的数据移动到所述缓冲存储器中的冗余列,并且基于错误发生列地址和冗余列地址来重新映射所述映射表地址。
10.一种数据存储设备的操作方法,所述数据存储设备包括存储装置,所述存储装置被划分为第一大小的单位物理区域,并且数据存储在所述存储装置中;缓冲存储器,包括多个缓冲存储器区域并且具有加载在所述多个缓冲存储器区域中的映射表,所述映射表包括一组映射数据,每个映射数据指示主机的逻辑地址与各自的单位物理区域的起始物理地址之间的连接信息;以及控制器,根据所述主机的请求来控制将数据输入到所述存储装置和从所述存储装置输出数据,所述方法包括:
从所述主机接收包括所述逻辑地址的请求,
由所述控制器基于与所述逻辑地址相对应的映射表地址来从所述缓冲存储器读取所述逻辑地址的映射数据;并且
当存储所述映射数据的缓冲存储器区域的错误发生次数等于或大于第一阈值时,由所述控制器通过将所述错误发生次数等于或大于所述第一阈值的缓冲存储器区域中的源映射数据与所述错误发生次数小于所述第一阈值的至少一个缓冲存储器区域中的牺牲映射数据合并来重新映射所述映射数据。
11.根据权利要求10所述的方法,其中所述重新映射包括:
选择所述错误发生次数等于或大于所述第一阈值的缓冲存储器区域中存储的映射数据作为所述源映射数据;
选择逻辑地址与所述源映射数据的逻辑地址连续的N个映射数据作为所述牺牲映射数据,其中N是自然数;并且
生成合并映射数据,所述合并映射数据是合并逻辑地址与所述第一大小的(N+1)倍的物理区域的起始物理地址之间的连接信息,所述合并逻辑地址为所述牺牲映射数据的逻辑地址中的任意一个逻辑地址。
12.根据权利要求11所述的方法,其中生成所述合并映射数据包括选择所述牺牲映射数据的逻辑地址中的最前逻辑地址作为所述合并逻辑地址。
13.根据权利要求10所述的方法,其中所述重新映射包括将所述源映射数据的合并状态设置为元信息。
14.根据权利要求13所述的方法,其中所述重新映射包括:
选择与所述源映射数据的逻辑地址连续的至少一个在前逻辑地址的映射数据作为所述牺牲映射数据;并且
将所述源映射数据和所述牺牲映射数据合并,并且
其中设置所述元信息包括:设置所述元信息以指示所述源映射数据与所述在前逻辑地址的映射数据合并。
15.根据权利要求13所述的方法,其中所述重新映射包括:
选择与所述源映射数据的逻辑地址连续的至少一个在后逻辑地址的映射数据作为所述牺牲映射数据;并且
将所述源映射数据和所述牺牲映射数据合并,并且
其中设置所述元信息包括:设置所述元信息以指示所述源映射数据与所述在后逻辑地址的映射数据合并。
16.根据权利要求10所述的方法,其中所述重新映射进一步包括:
当所述存储装置的、与由所述源映射数据指示的物理地址相对应的区域和所述存储装置的、与由所述牺牲映射数据指示的物理地址相对应的区域连续时,生成所述牺牲映射数据的逻辑地址之中的最前逻辑地址的牺牲映射数据作为合并映射数据。
17.根据权利要求10所述的方法,其中所述重新映射包括:
当所述存储装置的、与由所述源映射数据指示的物理地址相对应的区域和所述存储装置的、与由所述牺牲映射数据指示的物理地址相对应的区域不连续时:
将所述存储装置的、与所述源映射数据指示的物理地址相对应的区域中存储的数据和所述存储装置的、与所述牺牲映射数据指示的物理地址相对应的区域中存储的数据移动到所述存储装置中的连续的目标区域,并且
通过将合并逻辑地址与所述目标区域的起始物理地址进行映射来生成合并映射数据,所述合并逻辑地址为所述牺牲映射数据的逻辑地址中的最前逻辑地址。
18.根据权利要求10所述的方法,其中所述数据存储设备进一步包括缓冲存储器控制器,所述缓冲存储器控制器控制所述缓冲存储器,其中所述重新映射包括:
由所述控制器对用于存储所述映射数据的所述缓冲存储器的每列的所述错误发生次数进行计数;
由所述缓冲存储器控制器根据所述控制器的控制,将发生所述错误发生次数高于第二阈值的列中的数据移动到所述缓冲存储器中的冗余列;并且
由所述缓冲存储器控制器基于错误发生列地址和冗余列地址来重新映射所述映射表地址。
CN202010799414.0A 2020-02-05 2020-08-11 数据存储设备及其操作方法 Withdrawn CN113220216A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200013569A KR20210099784A (ko) 2020-02-05 2020-02-05 데이터 저장 장치 및 그 동작 방법
KR10-2020-0013569 2020-02-05

Publications (1)

Publication Number Publication Date
CN113220216A true CN113220216A (zh) 2021-08-06

Family

ID=77061402

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010799414.0A Withdrawn CN113220216A (zh) 2020-02-05 2020-08-11 数据存储设备及其操作方法

Country Status (3)

Country Link
US (1) US11243888B2 (zh)
KR (1) KR20210099784A (zh)
CN (1) CN113220216A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113778335A (zh) * 2021-09-08 2021-12-10 山东华芯半导体有限公司 一种ssd主控中多端口低延迟访问的sram群组的控制方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230350598A1 (en) * 2022-04-28 2023-11-02 Micron Technology, Inc. Performance monitoring for a memory system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9811457B2 (en) * 2014-01-16 2017-11-07 Pure Storage, Inc. Data placement based on data retention in a tiered storage device system
KR102329924B1 (ko) 2015-10-27 2021-11-23 삼성전자 주식회사 전자 장치 및 이의 메모리 관리 방법
KR102457564B1 (ko) 2017-09-20 2022-10-21 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113778335A (zh) * 2021-09-08 2021-12-10 山东华芯半导体有限公司 一种ssd主控中多端口低延迟访问的sram群组的控制方法
CN113778335B (zh) * 2021-09-08 2024-03-08 山东华芯半导体有限公司 一种ssd主控中多端口低延迟访问的sram群组的控制方法

Also Published As

Publication number Publication date
KR20210099784A (ko) 2021-08-13
US11243888B2 (en) 2022-02-08
US20210240627A1 (en) 2021-08-05

Similar Documents

Publication Publication Date Title
KR102533207B1 (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
CN111506516B (zh) 数据存储装置及数据存储装置的操作方法
KR20210039871A (ko) 메타 데이터를 관리하는 스토리지 시스템, 스토리지 시스템을 제어하는 호스트 시스템 및 스토리지 시스템의 동작방법
US20210182202A1 (en) Memory system and data processing system including the same
CN110837342A (zh) 数据存储装置及其操作方法
CN110928805B (zh) 存储器***及其操作方法
KR20200113480A (ko) 데이터 저장 장치 및 동작 방법
CN114661224A (zh) 数据存储设备及其操作方法
CN111414311B (zh) 数据存储装置、其操作方法及其控制器
KR20200054537A (ko) 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
CN113641299A (zh) 数据存储设备及其操作方法
US11243888B2 (en) Data storage apparatus and operating method thereof
US20200089421A1 (en) Data storage device, operation method thereof, and storage system including the same
CN111708480B (zh) 数据存储装置及其操作方法和控制器
CN113885782A (zh) 存储装置及其操作方法
CN112328516A (zh) 控制器、控制器的操作方法以及包括控制器的存储装置
CN111723023A (zh) 存储器***、计算设备及其操作方法
KR20200121068A (ko) 데이터 저장 장치 및 이의 동작 방법, 이를 위한 컨트롤러
US11243718B2 (en) Data storage apparatus and operation method i'hereof
CN115114178A (zh) 存储器***及其操作方法
CN113805793A (zh) 存储装置及其操作方法
US11593006B2 (en) Data storage apparatus and method for managing valid data based on bitmap table
US11847332B2 (en) Data storage apparatus and operating method thereof
US11263127B2 (en) Data storage device, method of operating the same, and controller for the same
KR20220018757A (ko) 데이터 저장 장치 및 동작 방법

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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20210806