CN109753441A - 数据存储设备 - Google Patents

数据存储设备 Download PDF

Info

Publication number
CN109753441A
CN109753441A CN201811199834.4A CN201811199834A CN109753441A CN 109753441 A CN109753441 A CN 109753441A CN 201811199834 A CN201811199834 A CN 201811199834A CN 109753441 A CN109753441 A CN 109753441A
Authority
CN
China
Prior art keywords
data
lba
storage device
controller
data storage
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
CN201811199834.4A
Other languages
English (en)
Other versions
CN109753441B (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 CN109753441A publication Critical patent/CN109753441A/zh
Application granted granted Critical
Publication of CN109753441B publication Critical patent/CN109753441B/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
    • 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
    • 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/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/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/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host 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/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • 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/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems

Landscapes

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

Abstract

提供了一种数据存储设备。该数据存储设备包括:缓冲器,被配置为存储映射表,该映射表包括与逻辑块地址(LBA)相对应的物理块地址(PBA);非易失性存储器,被配置为存储数据;以及控制器,被配置为控制缓冲器和非易失性存储器。控制器被配置为:当从数据存储设备外部接收到读取与第一LBA相对应的数据的命令时,通过参考映射表来读取存储在非易失性存储器的与第一LBA相对应的第一PBA处的数据,以及,当从非易失性存储器读取的数据中包括的第二LBA与第一LBA不同时,重试从非易失性存储器读取与第一LBA相对应的数据。

Description

数据存储设备
相关申请的交叉引用
本申请要求于2017年11月2日在韩国知识产权局提交的韩国专利申请No.10-2017-0145397的优先权,该申请的公开内容通过引用全部并入本文中。
技术领域
本发明构思涉及一种数据存储设备。
背景技术
数据存储设备(例如,使用闪存的存储设备)可以使用映射表将主机的逻辑块地址(LBA)转换为闪存的物理页面号(PPN)。
当主机发送针对LBA的读取命令时,数据存储设备通过使用映射表将LBA转换为闪存的PPN,并在PPN处执行读取操作。
然而,当数据存储设备通过使用映射表将LBA转换为闪存的PPN时,可能会发生外部撞击或暂时硬件错误。在这种情况下,数据存储设备可能会在错误的位置而不是主机请求的LBA处读取数据。
如果出现这样的问题,则不能确保数据读取的可靠性。
发明内容
本发明构思的示例实施例提供了一种数据存储设备,其通过在响应于来自外部的数据读取命令而读取的数据不是期望数据时再次执行读取操作来确保可靠性。
本发明构思的示例实施例还提供了一种数据存储设备,所述数据存储设备通过响应于来自外部的数据读取命令而参考被记录在高速缓存中的操作历史并且在读取的数据不是期望数据时再次执行读取操作来确保可靠性和速度。
然而,本发明构思的示例实施例不限于本文所阐述的那些。通过参考以下给出的发明构思的详细描述,本发明构思的上述和其它方面对于本发明构思所属领域的普通技术人员将变得更加清楚。
根据本发明构思的示例实施例,提供了一种数据存储设备,包括:缓冲器,被配置为存储映射表,所述映射表包括与逻辑块地址(LBA)相对应的物理块地址(PBA);非易失性存储器,被配置为存储数据;以及控制器,被配置为控制所述缓冲器和所述非易失性存储器。
控制器被配置为:当从数据存储设备外部接收到读取与第一LBA相对应的数据的命令时,通过参考映射表来读取存储在非易失性存储器的与第一LBA相对应的第一PBA处的数据,以及,当从非易失性存储器读取的数据中包括的第二LBA与第一LBA不同时,重试从非易失性存储器读取与第一LBA相对应的数据。
根据发明构思的示例实施例,提供了一种数据存储设备,包括:缓冲器;非易失性存储器,被配置为存储映射表,所述映射表包括与逻辑块地址(LBA)相对应的物理块地址(PBA);以及控制器,被配置为控制所述缓冲器和所述非易失性存储器。
所述控制器被配置为:当从外部供电时,将所述映射表存储在所述缓冲器中,当从所述数据存储设备外部接收到读取数据的命令时,通过参考存储在所述缓冲器中的所述映射表来读取存储在所述非易失性存储器的与第一LBA相对应的第一PBA处的数据,当从所述非易失性存储器读取的数据中包括的第二LBA与所述第一LBA不同时,重试从所述非易失性存储器读取与所述第一LBA相对应的数据,以及当未供电时,将所述映射表存储在所述非易失性存储器中。
根据本发明构思的示例实施例,提供了一种数据存储设备,包括:缓冲器,被配置为存储映射表,所述映射表包括与逻辑块地址(LBA)相对应的物理块地址(PBA);非易失性存储器;以及控制器,被配置为控制所述缓冲器和所述非易失性存储器。所述控制器被配置为:从所述数据存储设备外部接收包括第一LBA和第一用户数据的第一数据,通过参考所述映射表将所述第一LBA和所述第一用户数据存储在所述非易失性存储器的与所述第一LBA相对应的PBA处,以及当从所述数据存储设备外部接收到读取包括第二LBA的第二数据的命令时,重复读取操作直到从所述非易失性存储器读取出包括第二LBA的所述第二数据。
附图说明
通过以下结合附图对实施例的描述,这些和/或其他方面将变得明确并且更容易理解,在附图中:
图1是根据一些示例实施例的数据存储设备的框图。
图2是根据一些示例实施例的存储设备的控制器的框图。
图3是示出了根据一些示例实施例的控制器响应于来自主机的数据读取命令而进行的操作的流程图。
图4A至图4D示出了根据一些示例实施例的包括LBA和PBA的映射表。
图5是示出了根据一些示例实施例的确定数据存储设备的读取数据是否是闪存转换层期望的数据的方法的流程图。
图6是示出了根据一些示例实施例的映射表的存储路径和更新的流程图。
图7示出了根据一些示例实施例的在数据存储设备的写入操作期间缓冲器、高速缓存和非易失性存储器的操作。
图8示出了根据一些示例实施例的更新存储在缓冲器中的映射表的过程。
图9示出了根据一些示例实施例的数据存储设备再次执行读取操作的过程。
图10是示出了根据一些示例实施例的控制器响应于来自主机的数据读取命令而进行的操作的流程图。
图11示出了根据一些示例实施例的数据存储设备的读取操作。
具体实施方式
图1是根据一些示例实施例的数据存储设备100的框图。
参考图1,数据存储设备100可以包括控制器110、缓冲器120、高速缓存130和非易失性存储器140。
控制器110可以控制缓冲器120、高速缓存130和非易失性存储器140。控制器110可以在主机、缓冲器120、高速缓存130和非易失性存储器140之间交换命令和数据。尽管未在附图中示出,但是控制器110还可以响应于来自主机的请求而控制数据存储设备100的整体操作(例如,读取和/或写入操作)。现在将参考图2详细描述控制器110。
图2是根据一些示例实施例的存储设备的控制器110的框图。
参考图2,控制器110可以包括高速缓存111、处理器112、闪存转换层113、缓冲器接口115和非易失性存储器接口116。
高速缓存111可以与图1的高速缓存130相同。例如,高速缓存111或130可以包括在控制器110中,或者可以被配置为独立于控制器110的硬件模块。稍后将详细描述高速缓存111或130。
处理器112可以是执行数据处理或计算的设备或程序。例如,处理器112可以包括微处理器。处理器112还可以是将程序语言翻译成机器语言的程序处理器。
闪存转换层113可以包括地址转换层114。地址转换层114可以将主机请求的块地址转换为非易失性存储器140的实际块地址。闪存转换层113可以实现为固件、软件或者固件和软件的组合。稍后将描述将主机请求的块地址转换为非易失性存储器140的实际块地址的过程。
除了转换块地址之外,闪存转换层113还可以执行耗损均衡和垃圾收集。
缓冲器接口115和非易失性存储器接口116可以包括例如分别在控制器110和缓冲器120之间以及在控制器110和非易失性存储器140之间的数据交换中使用的(例如,进行数据交换所需的)协议。例如,缓冲器接口115和非易失性存储器接口116中的每个都可以被配置为通过各种接口协议与控制器110进行通信,该接口协议例如是,但不限于:通用串行总线(USB)协议、多媒体卡(MMC)协议、外围组件互连(PCI)协议、PCI快速(PCI-E)协议、高级技术附件(ATA)协议、串行ATA协议、并行ATA协议、小型计算机小型接口(SCSI)协议、增强型小磁盘接口(ESDI)协议、集成驱动电子设备(IDE)协议、非易失性存储器快速(NVMe)协议和/或查询请求协议。
再参考图1,缓冲器120可以暂时存储从主机接收的数据。另外,缓冲器120可以暂时存储地址转换层114将主机请求的块地址转换为非易失性存储器140的实际块地址所使用的(例如,进行转换所需的)映射表。
缓冲器120可以包括高速易失性或非易失性存储器。例如,缓冲器120可以是闪存的动态随机存取存储器(DRAM)或单级单元(SLC)区。
如上所述,高速缓存130可以与图2的高速缓存111相同。例如,高速缓存111可以包括在控制器110中。高速缓存130还可以被配置为独立于控制器110的硬件模块。为了便于描述,将作为示例在下文中描述高速缓存130被配置为独立于控制器110的硬件模块的情况。
高速缓存130可以是或可以包括可以暂时存储数据以便为未来的请求做准备,使得能够快速地访问数据的存储器。存储在高速缓存130中的数据可以是先前执行的操作的结果。例如,当响应于来自主机的写入命令将数据写入非易失性存储器140时,高速缓存130可以暂时存储写入命令中包括的逻辑块地址(LBA)、要写入的数据、和/或非易失性存储器140的实际物理块地址(PBA)。
另外,存储在高速缓存130中的数据可以是存储在缓冲器120或非易失性存储器140中的数据的副本。例如,高速缓存130可以暂时存储在缓冲器120或非易失性存储器140中存储的映射表的一部分。
使用存储在高速缓存130中的数据,控制器110可以节省访问数据的时间并重新计算相同的值。当在高速缓存130中找到主机请求的数据时,该数据请求可以被称为“高速缓存命中”。然而,当在高速缓存130中未找到主机请求的数据时,该数据请求可以被称为“高速缓存未命中”。
高速缓存130可以是但不限于静态随机存取存储器(SRAM)。
非易失性存储器140可以存储从主机接收的数据。另外,非易失性存储器140可以非暂时地存储地址转换层114将主机请求的块地址转换为非易失性存储器140的实际块地址所需的映射表。
例如,非易失性存储器140可以是或可以包括包含NAND闪存的闪存。闪存可以包括但不限于SLC和多级单元(MLC)区。非易失性存储器140的示例可以包括个人计算机存储卡国际协会(PCMCIA)卡(PC卡)、紧凑型闪存(CF)卡、智能媒体卡(SM、SMC)、记忆棒、多媒体卡(MMC、RS-MMC、MMCmicro)、安全数字(SD)卡(SD、miniSD、microSD、SDHC)、通用闪存(UFS)、嵌入式多媒体卡(eMMC)、NAND闪存、NOR闪存和/或V-NAND闪存。
数据存储设备100还可以包括数据总线150,控制器110、缓冲器120、高速缓存130和非易失性存储器140可以使用该数据总线150执行与彼此的数据通信。数据总线150可以是数据移动通过的路径,并且可以包括用于数据交换的协议。
现在将描述在响应于来自主机的数据读取命令而读取的数据不是闪存转换层113所期望的数据的情况下数据存储设备100的操作。
图3是示出了根据一些示例实施例的控制器110响应于来自主机的数据读取命令而进行的操作的流程图。
参考图3,可以从主机接收数据读取命令。在这种情况下,控制器110可以通过使用存储在缓冲器120中的映射表将LBA转换为非易失性存储器140的PBA(操作S300)。现在将参考图4A至图4D详细描述根据一些示例实施例的包括LBA和PBA的映射表。
图4A至图4D示出了根据一些示例实施例的包括LBA和PBA的映射表。
参考图4A,映射表400_1可以包括LBA以及非易失性存储器140的与LBA相对应的PBA。例如,LBA可以是主机的逻辑页面号(LPN)。另外,PBA可以是非易失性存储器140的物理页面号(PPN)。
例如,当闪存转换层113逐页地执行映射时,即当从主机请求的读取和写入操作的单元(例如,最小单元)是页面时,LBA和PBA可以分别是LPN和PPN。
例如,当从主机接收到读取与LBA 0相对应的数据的命令时,数据存储设备100可以通过参考映射表400_1向主机发送存储在非易失性存储器140的PPN 2处的数据。
参考图4B,映射表400_2可以包括LBA以及非易失性存储器140的与LBA相对应的PBA。例如,LBA可以是主机的逻辑块号(LBN)。另外,PBA可以是非易失性存储器140的物理块号(PBN)。
例如,当闪存转换层113逐块地(每个块是一组页面)执行映射时,即当从主机请求的读取和写入操作的最小单元是块时,LBA和PBA可以分别是LBN和PBN。
例如,当从主机接收到读取与LBA 0相对应的数据的命令时,数据存储设备100可以向主机发送存储在非易失性存储器140的PBN 7处的数据。
参考图4C,映射表400_3可以包括LBA以及非易失性存储器140的与LBA相对应的PBA。例如,主机的LBA可以是非易失性存储器140的小于页面的单元。
现在将参考图4D来描述当使用图4C的映射表400_3时,数据存储在非易失性存储器140中的方式。
在图4C和图4D中,非易失性存储器140的一个PBA对应于主机的两个LBA。然而,实施例并不限于这种情况。
参考图4D,包括在非易失性存储器140中的页面可以包括用户数据区141和备用区143。用户数据区141可以包括要存储的数据,并且备用区143可以包括与要存储的数据相对应的LBA。一个用户数据区141和一个备用区143的每一对可以是用于纠错的纠错码(ECC)区块。尽管在附图中仅LBA存储在备用区143中,但是实施例不限于这种情况。例如,备用区143可以包括用于纠错的ECC奇偶校验。
当使用图4C的映射表400_3时,非易失性存储器140的页面可以存储(例如,顺序地存储)LBA以及与LBA相对应的数据。例如,当数据#1和数据#2分别存储在LBA0和LBA 1处时,数据#1、LBA0、数据#2和LBA 1可以参考映射表400_3按照这个次序被顺序地存储在非易失性存储器140的PPN 3中。
例如,假设非易失性存储器140的页面、用户数据区141和备用区143分别是8位、3位和1位的,当数据被写入PPN 3时,数据#1可以存储在第一到第三位中、LBA 0存储在第四位中、数据#2存储在第五到第七位中、并且LBA 1存储在第八位中。
例如,假设非易失性存储器140的页面、用户数据区141和备用区143分别是8位、3位和1位的,当要读取与LBA 0相对应的数据时,控制器110可以访问PPN 3并读取数据,并且可以向主机输出存储在第一到第四位中的数据。
本发明构思不限于图4A至图4D中公开的示例实施例。为了便于描述,作为示例将在下文中描述LBA是LPN并且PBA是PPN的情况。
再参考图3,可以读取在非易失性存储器140的PBA中存储的数据,并且可以校正读取数据中的错误(如果有的话)(操作S310)。纠错过程只是示例,可以被省略。
然后,控制器110可以确定是否已经成功读取数据(操作S320)。例如,如果还未读取数据(空白或浮置)或者读取的数据是不可校正的数据,则可以确定未成功读取数据。然而,如果存在作为并非不可校正的数据的读取的数据,则可以确定已经成功读取数据。
接下来,可以确定读取的数据是否是闪存转换层113期望的数据,即读取的数据是否是主机请求的数据(操作S330)。现在将参考图5详细描述该操作。
图5是示出了根据一些示例实施例的确定数据存储设备100的读取数据是否是闪存转换层113期望的数据的方法的流程图。
参考图5,如果数据被成功读取,则可以将主机请求读取的LBA与读取的数据中包括的LBA进行比较(操作S332)。
在一些实施例中,从主机接收的数据写入命令可以包括要写入的数据和要写入的数据的LBA。因此,当从主机接收到数据写入命令时,控制器110可以将LBA和接收到的数据都存储在非易失性存储器140中。因此,如果数据被成功读取,则读取的数据可以包括LBA。
如果主机请求读取的LBA与读取的数据中包括的LBA相同(操作S334),则读取的数据可以是闪存转换层113期望的数据,即主机请求读取的数据(操作S336)。
如果主机请求读取的LBA与读取的数据中包括的LBA不同(操作S334),则读取的数据可能不是闪存转换层113期望的数据,即主机请求读取的数据(操作S338)。
再参考图3,如果数据已被成功读取并且读取的数据是闪存转换层113期望的数据,则控制器110可以向主机发送读取的数据(操作S380)。
然而,如果数据已被成功读取但读取的数据不是闪存转换层113期望的数据,则可以确定是否已经超过了希望的(或者,备选地,预定的)读取重试次数(操作S340)。
如果已经超过了希望的(或者,备选地,预定的)读取重试次数,则控制器110可以向主机发送读取的数据(操作S380)。
然而,如果尚未超过希望的(或者,备选地,预定的)读取重试次数,则控制器110可以更新存储在缓冲器120中的映射表(操作S350)并再次执行读取操作(S300之后的操作)。然而,即使当再次执行读取操作时,如果更新存储在缓冲器120中的映射表未被执行(例如,不必执行),则可以省略更新映射表的过程(操作S350)。例如,当高速缓存130中未记录操作的细节时,对映射表的更新可能是不必要的。
现在将参考图6至图8描述存储在缓冲器120中的映射表、存储在非易失性存储器140中的映射表和记录在高速缓存130中的信息之间的关系以及更新映射表的过程。
图6是示出了根据一些示例实施例的映射表的存储路径和更新的流程图。
参考图6,数据存储设备100可以被提供有外部电源,例如来自外部的电源。如果该电源中断,则暂时存储在缓冲器120中的映射表可能会丢失。因此,当向数据存储设备100供电时,可以首先将非暂时存储在非易失性存储器140中的映射表传送到缓冲器120(操作S610)。
如果要更新存储在缓冲器120中的映射表,则可以基于记录在高速缓存130中的先前操作的细节来更新映射表(操作S620)。
如上所述,高速缓存130可以存储先前操作的结果或先前操作的细节。因此,高速缓存130可以包括LBA和PPN之间的最新映射信息。如果存储在缓冲器120中的映射表不包括最新信息,则可以基于存储在高速缓存130中的操作历史来更新映射表。
然后,可以在数据存储设备100断电之前,将暂时存储在缓冲器120中的映射表传送到非易失性存储器140,并暂时存储在非易失性存储器140中(操作S630)。
尽管上面已经描述了在数据存储设备100断电之前将存储在缓冲器120中的映射表存储在非易失性存储器140中的情况,但是实施例不限于这种情况。例如,数据存储设备100可以包括应急电源(例如,电池或UPS),并且当数据存储设备100的电源突然中断时,应急电源可以向数据存储设备100提供应急电源。例如,即使在数据存储设备100突然断电之后,存储在缓冲器120中的映射表也可以存储在非易失性存储器140中。
在其他一些实施例中,可以不仅仅在重试数据读取时更新存储在缓冲器120中的映射表。例如,如果高速缓存130中没有足够的空间来记录操作历史,则还可以使用记录在高速缓存130中的操作历史来更新存储在缓冲器120中的映射表。在其他一些实施例中,可以周期性地更新存储在缓冲器120中的映射表。
将参考图7和图8,以帮助理解更新映射表的过程。
图7示出了根据一些示例实施例的在数据存储设备100的写入操作期间缓冲器120、高速缓存130和非易失性存储器140的操作。
参考图7,可以从主机接收将数据写入LBA 3的命令(将数据#2写入LBA 3中,①)。
控制器110可以通过使用映射表来访问缓冲器120并将LBA 3转换为非易失性存储器140的与LBA 3相对应的PPN。在这种情况下,LBA 3被转换成PPN 9。然后,控制器110访问非易失性存储器140的PPN 9。此时,访问与LBA 3相对应的PPN 9的记录可以存储在高速缓存130中(②)。
如果访问非易失性存储器140的PPN 9的控制器110发现已经存在被写入PPN 9的数据(数据#1),则控制器110可以使存储在PPN9中的数据(数据#1)无效(无效,③)。
然后,控制器110可以分配新的PPN(例如,与LBA 3相对应的PPN 10),并且将数据(数据#2)分别存储在PPN 10的用户数据区142中和备用区144中的LBA 3中。
此时,将数据(数据#2)存储在与LBA 3相对应的PPN 10中的记录可以存储在高速缓存130中(④)。
尽管在附图中示出了仅LBA和PPN记录在高速缓存130中的情况,但是存储在非易失性存储器140中的数据也可以记录在高速缓存130中。
图8示出了根据一些示例实施例的更新存储在缓冲器120中的映射表的过程。
参考图8,缓冲器120可以存储映射表,该映射表示出了主机请求的LBA与非易失性存储器140的实际PPN之间的对应关系。
数据存储设备100近期执行的操作历史可以记录在高速缓存130中。在图8中,可以假设存储在高速缓存130的相对较高部分中的操作历史比存储在高速缓存130的相对较低部分中的操作历史更旧。例如,可以看出,最近已通过操作(例如,写入操作)将非易失性存储器140的与记录在高速缓存130中的LBA 3相对应的PPN从PPN 9改变为PPN 10。
尽管为了方便起见已经描述了在一些实施例中仅LBA和PPN存储在高速缓存130中的情况,但是实施例不限于这种情况。
在一些实施例中,存储在缓冲器120中的映射表可以不反映最新信息。因此,可以参考记录在高速缓存130中的近期操作历史,以便用最新信息更新存储在缓冲器120中的映射表。
例如,在存储在图8的缓冲器120中的映射表中,LBA 3、LBA 4和LBA 5不反映最新信息。因此,可以使用记录在高速缓存130中的LBA 3、LBA 4和LBA 5的信息来更新存储在缓冲器120中的映射表。在此,存储在缓冲器120中的映射表的LBA 3、LBA 4和LBA 5可以分别被更新为PPN 10、PPN 15和PPN 17。
再参考图3的操作S320,如果数据未被成功读取,则控制器110确定读取的数据是否是不可校正的数据(操作S360)。如上所述,如果读取的数据是不可校正的数据或者如果没有读取的数据(空白、浮置),则可以确定数据未被成功读取。
如果读取的数据不是不可校正的数据,即如果没有读取的数据,则可以确定是否已经超过了希望的(或者,备选地,预定的)读取重试次数(操作S370)。
如果尚未超过希望的(或者,备选地,预定的)读取重试次数,则控制器110可以再次执行读取操作(S300之后的操作)。
然而,如果已经超过了希望的(或者,备选地,预定的)读取重试次数,则控制器110可以向主机发送读取的数据。亦即,控制器110可以向主机发送指示没有读取的数据的信息(操作S380)。
如果读取的数据是不可校正的数据,则控制器110可以向主机发送该不可校正的数据(操作S380)。
图9示出了根据一些示例实施例的数据存储设备100再次执行读取操作的过程。
参考图9,非易失性存储器140可以包括用户数据区142和备用区144。数据可以存储在用户数据区142中,并且LBA可以存储在备用区144中。
可以从主机接收读取LBA 3的命令(读取LBA 3)。在这种情况下,控制器110可以访问缓冲器120并通过使用存储在缓冲器120中的映射表将LBA3转换为非易失性存储器140的PPN。在此,与LBA3相对应的PPN可以是PPN 9。
然而,由于外部撞击或物理错误,控制器110可能在将主机的LBA转换为非易失性存储器140的PPN时产生错误。在这种情况下,控制器110可以读取非易失性存储器140的PPN2处的数据而不是PPN 9处的数据(①)。在此,读取的数据可以包括数据#1和LBA 0。
控制器110可以将主机请求读取的LBA与包括在读取的数据中的LBA进行比较。由于主机请求读取的LBA 3与包括在读取的数据中的LBA 0不同,因此控制器110可以重试读取包括在非易失性存储器140的PPN 9中的数据(②)。
同样,控制器110可以将主机请求读取的LBA与包括在读取的数据中的LBA进行比较。由于主机请求读取的LBA 3与包括在读取的数据中的LBA 3相同,因此控制器110可以向主机发送读取的数据(数据#2)(③)。
图10是示出了根据一些示例实施例的控制器110响应于来自主机的数据读取命令而进行的操作的流程图。为简单起见,将省略或简要地给出任何多余的描述。
在图10中,假设根据实施例的高速缓存130是包括近期操作历史中的LBA和非易失性存储器140的与LBA相对应的PPN的映射高速缓存。
在一些实施例中,通过使用记录在高速缓存130中的LBA和非易失性存储器140的与LBA相对应的PPN,控制器110可以在不经由闪存转换层113的情况下仅访问高速缓存130,并直接将LBA转换为与LBA相对应的PPN。亦即,如果从主机接收到读取请求并且发生高速缓存命中,则可以在不经由缓冲器120的情况下将LBA转换为与LBA相对应的PPN(操作S1000和S1010)。然而,如果从主机接收到读取请求并且发生高速缓存未命中,则可以通过使用存储在缓冲器120中的映射表将LBA转换为与LBA相对应的PPN(操作S1000和S1020)。
操作S1030至S1080可以与上面参考图3描述的操作相同。然而,由于控制器110首先访问高速缓存130并且参考近期操作历史,所以可以省略当再次执行读取操作时更新存储在缓冲器120中的映射表的操作。
在高速缓存命中的情况下,通过使用被记录在高速缓存130中的映射信息将LBA转换为与LBA相对应的PPN,然后执行操作S1030至S1080。然而,实施例并不限于这种情况。例如,如果高速缓存130不仅包括LBA和与LBA相对应的PPN,还包括与LBA和PPN相关的数据,则可以读取记录在高速缓存130中的与LBA和PPN相关的数据,然后可以执行操作S1030到S1080,以便在高速缓存命中的情况下进行快速读取操作。另外,如果高速缓存130不仅包括LBA和与LBA相对应的PPN,还包括与LBA和PPN相关的数据,则可以读取记录在高速缓存130中的与LBA和PPN相关的数据,然后立即向主机发送这些数据,以便在高速缓存命中的情况下进行快速读取操作。亦即,可以不执行操作S1030至S1080。
图11示出了根据一些示例实施例的数据存储设备100的读取操作。为了便于描述,将省略或简要地给出任何多余的描述。
参考图11,可以从主机接收读取LBA 1的命令(读取LBA 1)。在此,由于高速缓存130中存在与LBA 1和PPN 4有关的信息,因此控制器110可以在不经由缓冲器120的情况下完成对LBA 1的转换。在其他一些实施例中,由于高速缓存130中记录了与LBA 1有关的数据(数据#2),因此可以使用高速缓存130来读取该数据(①,高速缓存命中)。
然而,可以从主机接收读取LBA 3的命令(读取LBA 3)。在这种情况下,控制器110可以访问缓冲器120并使用映射表(③,使用映射表),这是因为高速缓存130不具有与LBA 3有关的数据(②,高速缓存未命中)。
尽管已经参考本发明构思的示例性实施例具体示出和描述了本发明构思,但是本领域普通技术人员将理解的是,在不脱离所附权利要求所限定的本发明的精神和范围的情况下,可以进行形式和细节上的多种改变。应当仅在描述的意义下而为了限制的目的来考虑示例性实施例。

Claims (20)

1.一种数据存储设备,包括:
缓冲器,被配置为存储映射表,所述映射表包括与逻辑块地址(LBA)相对应的物理块地址(PBA);
非易失性存储器,被配置为存储数据;以及
控制器,被配置为控制所述缓冲器和所述非易失性存储器,
其中,所述控制器被配置为:
当从所述数据存储设备外部接收到读取与第一LBA相对应的数据的命令时,通过参考所述映射表来读取存储在所述非易失性存储器中与所述第一LBA相对应的第一PBA处的数据,以及
当从所述非易失性存储器读取的数据中包括的第二LBA与所述第一LBA不同时,重试从所述非易失性存储器读取与所述第一LBA相对应的数据。
2.根据权利要求1所述的数据存储设备,其中,当所述第二LBA与所述第一LBA不同时,所述控制器被配置为更新存储在所述缓冲器中的所述映射表,然后重试从所述非易失性存储器读取数据。
3.根据权利要求2所述的数据存储设备,还包括:
高速缓存,被配置为记录所述数据存储设备执行的操作历史,
其中,所述控制器被配置为通过将记录在所述高速缓存中的操作历史传送到所述缓冲器来更新所述映射表。
4.根据权利要求1所述的数据存储设备,还包括:
高速缓存,被配置为记录所述数据存储设备执行的操作历史,其中,所述控制器被配置为,
当接收到读取与所述第一LBA相对应的数据的命令时访问所述高速缓存,
当所述高速缓存包括所述第一LBA时,通过参考所述高速缓存来读取存储在所述第一PBA处的数据,以及
当所述高速缓存不包括所述第一LBA时,通过参考所述映射表读取存储在所述第一PBA处的数据。
5.根据权利要求1所述的数据存储设备,其中,所述控制器被配置为:
以特定次数重试读取与所述第一LBA相对应的数据,以及
当超过所述次数时发送读取的数据。
6.根据权利要求1所述的数据存储设备,其中,当读取的数据是不可校正的数据时,所述控制器被配置为发送所述不可校正的数据。
7.根据权利要求1所述的数据存储设备,其中,当读取的数据不存在时,所述控制器被配置为以特定次数重试读取所述数据。
8.一种数据存储设备,包括:
缓冲器;
非易失性存储器,被配置为存储映射表,所述映射表包括与逻辑块地址(LBA)相对应的物理块地址(PBA);以及
控制器,被配置为控制所述缓冲器和所述非易失性存储器,
其中,所述控制器被配置为:
当从外部供电时,将所述映射表存储在所述缓冲器中,
当从所述数据存储设备外部接收到读取数据的命令时,通过参考存储在所述缓冲器中的所述映射表来读取存储在所述非易失性存储器中与第一LBA相对应的第一PBA处的数据,
当从所述非易失性存储器读取的数据中包括的第二LBA与所述第一LBA不同时,重试从所述非易失性存储器读取与所述第一LBA相对应的数据,以及
当未供电时,将所述映射表存储在所述非易失性存储器中。
9.根据权利要求8所述的数据存储设备,其中,当所述第二LBA与所述第一LBA不同时,所述控制器被配置为更新存储在所述缓冲器中的所述映射表,然后重试从所述非易失性存储器读取数据。
10.根据权利要求9所述的数据存储设备,还包括:
高速缓存,被配置为记录所述数据存储设备执行的操作历史,其中,所述控制器被配置为通过将记录在所述高速缓存中的操作历史传送到所述缓冲器来更新所述映射表。
11.根据权利要求8所述的数据存储设备,还包括:
高速缓存,被配置为记录所述数据存储设备执行的操作历史,其中,所述控制器被配置为,
在接收到读取数据的命令时访问所述高速缓存,
当所述高速缓存包括所述第一LBA时,通过参考所述高速缓存来读取存储在所述第一PBA处的数据,以及
当所述高速缓存不包括所述第一LBA时,通过参考所述映射表读取存储在所述第一PBA处的数据。
12.根据权利要求8所述的数据存储设备,其中,所述控制器被配置为:
以特定次数重试读取所述数据,以及
当超过读取重试次数时发送读取的数据。
13.根据权利要求8所述的数据存储设备,其中,当读取的数据是不可校正的数据时,所述控制器被配置为发送所述不可校正的数据。
14.根据权利要求8所述的数据存储设备,其中,当读取的数据不存在时,所述控制器被配置为以特定次数重试读取所述数据。
15.一种数据存储设备,包括:
缓冲器,被配置为存储映射表,所述映射表包括与逻辑块地址(LBA)相对应的物理块地址(PBA);
非易失性存储器;以及
控制器,被配置为控制所述缓冲器和所述非易失性存储器,
其中,所述控制器被配置为:
从所述数据存储设备外部接收包括第一LBA和第一用户数据的第一数据,
通过参考所述映射表将所述第一LBA和所述第一用户数据存储在所述非易失性存储器中与所述第一LBA相对应的PBA处,以及
当从所述数据存储设备外部接收到读取包括第二LBA的第二数据的命令时,重复读取操作直到从所述非易失性存储器读取出所述第二数据。
16.根据权利要求15所述的数据存储设备,还包括:
高速缓存,被配置为记录所述数据存储设备执行的操作历史,其中,所述控制器被配置为,
在接收到读取所述第二数据的命令时访问所述高速缓存,
当所述高速缓存包括所述第一LBA时,读取存储在所述第一PBA处的数据,以及
当所述高速缓存不包括所述第一LBA时,通过参考所述映射表读取存储在所述第一PBA处的数据。
17.根据权利要求15所述的数据存储设备,其中,当接收到读取所述第二数据的命令时,所述控制器被配置为,
更新存储在所述缓冲器中的所述映射表,以及
以重复所述读取操作的方式读取所述第二数据,直到从所述非易失性存储器读取出包括所述第二LBA的所述第二数据。
18.根据权利要求17所述的数据存储设备,还包括:
高速缓存,被配置为记录所述数据存储设备执行的操作历史,
其中,所述控制器被配置为通过将记录在所述高速缓存中的操作历史传送到所述缓冲器来更新所述映射表。
19.根据权利要求15所述的数据存储设备,其中,所述控制器以特定次数重复所述读取操作。
20.根据权利要求15所述的数据存储设备,其中,当读取的数据不存在时,所述控制器以特定次数重复所述读取操作。
CN201811199834.4A 2017-11-02 2018-10-15 数据存储设备 Active CN109753441B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170145397A KR102418856B1 (ko) 2017-11-02 2017-11-02 데이터 저장 장치
KR10-2017-0145397 2017-11-02

Publications (2)

Publication Number Publication Date
CN109753441A true CN109753441A (zh) 2019-05-14
CN109753441B CN109753441B (zh) 2024-06-04

Family

ID=

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1383556A (zh) * 2000-06-08 2002-12-04 松下电器产业株式会社 缓冲存储器地址变换装置、扇区地址信息可靠性判断装置、缺陷扇区判断装置、ecc块同步检测装置、光盘重放装置、媒体及程序
US20080052452A1 (en) * 2000-01-06 2008-02-28 Chow David Q Electronic data flash card with various flash memory cells
US20100031000A1 (en) * 2007-12-06 2010-02-04 David Flynn Apparatus, system, and method for validating that a correct data segment is read from a data storage device
CN101782875A (zh) * 2010-01-29 2010-07-21 成都市华为赛门铁克科技有限公司 存储设备和数据存储方法
CN102576333A (zh) * 2009-10-05 2012-07-11 马维尔国际贸易有限公司 非易失性存储器中的数据高速缓存
CN103699491A (zh) * 2012-09-28 2014-04-02 群联电子股份有限公司 数据储存方法、存储器控制器与存储器储存装置
CN104077174A (zh) * 2009-03-27 2014-10-01 Lsi公司 用于提供存储系统逻辑块地址的数据固化的方法及系统
CN104317753A (zh) * 2014-10-21 2015-01-28 中国科学院上海微系统与信息技术研究所 存储设备及其数据读写方法
CN105009094A (zh) * 2013-03-05 2015-10-28 西部数据技术公司 在固态驱动器中利用空闲空间计数来重建两阶加电映射的方法、设备和系统
CN105005536A (zh) * 2015-07-01 2015-10-28 忆正科技(武汉)有限公司 固态存储设备、主机的工作方法及固态存储设备、主机
US20160266970A1 (en) * 2015-03-09 2016-09-15 Kabushiki Kaisha Toshiba Memory system and method of controlling nonvolatile memory
US20170269873A1 (en) * 2016-03-16 2017-09-21 Phison Electronics Corp. Memory management method, memory control circuit unit and memory storage device

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080052452A1 (en) * 2000-01-06 2008-02-28 Chow David Q Electronic data flash card with various flash memory cells
CN1383556A (zh) * 2000-06-08 2002-12-04 松下电器产业株式会社 缓冲存储器地址变换装置、扇区地址信息可靠性判断装置、缺陷扇区判断装置、ecc块同步检测装置、光盘重放装置、媒体及程序
US20100031000A1 (en) * 2007-12-06 2010-02-04 David Flynn Apparatus, system, and method for validating that a correct data segment is read from a data storage device
CN104077174A (zh) * 2009-03-27 2014-10-01 Lsi公司 用于提供存储系统逻辑块地址的数据固化的方法及系统
CN102576333A (zh) * 2009-10-05 2012-07-11 马维尔国际贸易有限公司 非易失性存储器中的数据高速缓存
CN101782875A (zh) * 2010-01-29 2010-07-21 成都市华为赛门铁克科技有限公司 存储设备和数据存储方法
CN103699491A (zh) * 2012-09-28 2014-04-02 群联电子股份有限公司 数据储存方法、存储器控制器与存储器储存装置
CN105009094A (zh) * 2013-03-05 2015-10-28 西部数据技术公司 在固态驱动器中利用空闲空间计数来重建两阶加电映射的方法、设备和系统
CN104317753A (zh) * 2014-10-21 2015-01-28 中国科学院上海微系统与信息技术研究所 存储设备及其数据读写方法
US20160266970A1 (en) * 2015-03-09 2016-09-15 Kabushiki Kaisha Toshiba Memory system and method of controlling nonvolatile memory
CN105005536A (zh) * 2015-07-01 2015-10-28 忆正科技(武汉)有限公司 固态存储设备、主机的工作方法及固态存储设备、主机
US20170269873A1 (en) * 2016-03-16 2017-09-21 Phison Electronics Corp. Memory management method, memory control circuit unit and memory storage device

Also Published As

Publication number Publication date
KR20190050154A (ko) 2019-05-10
KR102418856B1 (ko) 2022-07-07
US11074171B2 (en) 2021-07-27
US20190129839A1 (en) 2019-05-02

Similar Documents

Publication Publication Date Title
US8386699B2 (en) Method for giving program commands to flash memory for writing data according to a sequence, and controller and storage system using the same
US9697116B2 (en) Storage system and writing method thereof
US10013307B1 (en) Systems and methods for data storage devices to use external resources
US8230161B2 (en) Data backup method for a flash memory and controller and storage system using the same
KR101555022B1 (ko) 메모리 장치, 그것을 포함한 메모리 시스템 및 그것의 맵핑정보 복원 방법
US9274866B2 (en) Programming non-volatile memory using a relaxed dwell time
US8174912B2 (en) Systems and methods for circular buffering control in a memory device
US20090307413A1 (en) Data writing method for flash memory and storage system and controller using the same
US20150161034A1 (en) Recording dwell time in a non-volatile memory system
US20120089767A1 (en) Storage device and related lock mode management method
JP2015201204A (ja) データ記憶装置におけるデータ保全性管理
JP2013097789A (ja) 不揮発性メモリの正常性情報を取得して使用するためのシステム及び方法
US11269722B2 (en) Apparatus for diagnosing memory system and operating method thereof
US20140143476A1 (en) Usage of cache and write transaction information in a storage device
US9390003B2 (en) Retirement of physical memory based on dwell time
CN112612634A (zh) 存储器系统和主机的操作方法以及计算系统
CN106557432B (zh) 缓冲存储器管理方法、存储器控制电路单元及存储装置
KR20140078893A (ko) 데이터 저장 장치의 동작 방법
CN112612639A (zh) 操作存储器系统的方法、操作主机的方法和计算系统
US10684953B2 (en) Data storage apparatus capable of varying map cache buffer size
WO2022225590A1 (en) Cache based flow for a simple copy command
JP5820078B2 (ja) 記憶装置システム
US11074171B2 (en) Data storage device for recovering read errors
CN112286836A (zh) 用于在存储器系统中执行访问操作的方法和设备
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法

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