CN109753441B - 数据存储设备 - Google Patents
数据存储设备 Download PDFInfo
- Publication number
- CN109753441B CN109753441B CN201811199834.4A CN201811199834A CN109753441B CN 109753441 B CN109753441 B CN 109753441B CN 201811199834 A CN201811199834 A CN 201811199834A CN 109753441 B CN109753441 B CN 109753441B
- Authority
- CN
- China
- Prior art keywords
- data
- lba
- read
- storage device
- 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.)
- Active
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 76
- 238000013507 mapping Methods 0.000 claims abstract description 84
- 239000000872 buffer Substances 0.000 claims abstract description 70
- 230000004044 response Effects 0.000 claims description 38
- 238000012937 correction Methods 0.000 claims description 7
- 238000012005 ligant binding assay Methods 0.000 claims 45
- 229920001485 poly(butyl acrylate) polymer Polymers 0.000 claims 16
- 238000013519 translation Methods 0.000 description 20
- 238000000034 method Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 4
- 101001122827 Paramecium tetraurelia Serine/threonine-protein phosphatase PP2A catalytic subunit 3 Proteins 0.000 description 3
- 101001122833 Paramecium tetraurelia Serine/threonine-protein phosphatase PP2A catalytic subunit 2 Proteins 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 101000934888 Homo sapiens Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Proteins 0.000 description 1
- 102100025393 Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Human genes 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/22—Employing cache memory using specific memory technology
- G06F2212/222—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration 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;
非易失性存储器,包括多个页面,所述多个页面中的每一个包括用户数据区和备用区,所述备用区被配置为存储纠错码ECC信息和LBA;
控制器,被配置为控制所述缓冲器和所述非易失性存储器;以及
高速缓存,被配置为存储构造为所述数据存储设备执行的操作历史的记录的表,所述操作历史包括LBA和与所述LBA相对应的相应PBA的有序列表,所述有序列表以指示所述操作历史的方式进行排序,
其中,所述控制器被配置为:
响应于接收到读取与从所述数据存储设备外部接收到的第一LBA相对应的数据的命令,通过参考所述映射表来读取存储在所述非易失性存储器中与所述第一LBA相对应的第一PBA处的数据,所述命令包括所述第一LBA,
使用所述ECC信息对读取的数据执行ECC操作,
将从所述数据存储设备外部接收到的所述第一LBA与从所述非易失性存储器读取的数据中包括的第二LBA直接比较,响应于成功读取数据而进行所述直接比较,以及
响应于所述第一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,其中,所述非易失性存储器包括多个页面,所述多个页面中的每一个包括用户数据区和备用区,所述用户数据区被配置为存储用户数据,所述备用区被配置为存储纠错码ECC信息和LBA;
高速缓存,被配置为存储构造为所述数据存储设备执行的操作历史的记录的表,所述操作历史包括LBA和与所述LBA相对应的相应PBA的有序列表,所述有序列表以指示所述操作历史的方式进行排序;以及
控制器,被配置为控制所述缓冲器和所述非易失性存储器,
其中,所述控制器被配置为:
响应于从外部供电,将所述映射表存储在所述缓冲器中,
响应于接收到读取从所述数据存储设备外部接收到的数据的命令,通过参考存储在所述缓冲器中的所述映射表来读取存储在所述非易失性存储器中与第一LBA相对应的第一PBA处的数据,所述命令包括所述第一LBA,
使用所述ECC信息对读取的数据执行ECC操作,
响应于成功读取数据,将从所述数据存储设备外部接收到的所述第一LBA与从所述非易失性存储器读取的数据中包括的第二LBA直接比较,
响应于所述第一LBA不同于所述第二LBA,重试从所述非易失性存储器读取与所述第一LBA相对应的数据,以及
响应于未供电,将所述映射表存储在所述非易失性存储器中。
9.根据权利要求8所述的数据存储设备,其中,响应于所述第二LBA与所述第一LBA不同,所述控制器被配置为更新存储在所述缓冲器中的所述映射表,然后重试从所述非易失性存储器读取数据。
10.根据权利要求9所述的数据存储设备,其中,所述控制器被配置为通过将记录在所述高速缓存中的操作历史传送到所述缓冲器来更新所述映射表。
11.根据权利要求8所述的数据存储设备,其中,所述控制器被配置为,
响应于接收到读取数据的命令而访问所述高速缓存,
响应于所述高速缓存包括所述第一LBA,通过参考所述高速缓存来从所述非易失性存储器读取存储在所述第一PBA处的数据,以及
响应于所述高速缓存不包括所述第一LBA,通过参考所述映射表从所述非易失性存储器读取存储在所述第一PBA处的数据。
12.根据权利要求8所述的数据存储设备,其中,所述控制器被配置为:
以特定次数重试读取所述数据,以及
响应于超过读取重试的特定次数而发送读取的数据。
13.根据权利要求8所述的数据存储设备,其中,响应于读取的数据是不可校正的数据,所述控制器被配置为发送所述不可校正的数据。
14.根据权利要求8所述的数据存储设备,其中,响应于读取的数据不存在,所述控制器被配置为以特定次数重试读取所述数据。
15.一种数据存储设备,包括:
缓冲器,被配置为存储映射表,所述映射表包括与逻辑块地址LBA相对应的物理块地址PBA;
非易失性存储器,被配置为包括多个页面,所述多个页面中的每一个包括用户数据区和备用区,所述备用区被配置为存储纠错码ECC信息和LBA;
高速缓存,被配置为存储构造为所述数据存储设备执行的操作历史的记录的表,所述操作历史包括LBA和与所述LBA相对应的相应PBA的有序列表,所述有序列表以指示所述操作历史的方式进行排序;以及
控制器,被配置为控制所述缓冲器和所述非易失性存储器,
其中,所述控制器被配置为:
从所述数据存储设备外部接收包括第一LBA和第一用户数据的第一数据,
将从所述数据存储设备外部接收到的所述第一LBA和从所述数据存储设备外部接收到的所述第一用户数据存储在所述非易失性存储器中与所述第一LBA相对应的PBA处,所述PBA是通过参考所述映射表确定的,
使用所述ECC信息对所述第一用户数据执行ECC操作,以及
响应于所述第一数据被成功读取,重复读取操作直到从所述非易失性存储器读取出包括第二LBA的第二数据,所述第二LBA与从所述数据存储设备外部接收到的所述第一LBA直接匹配,响应于从所述数据存储设备外部接收到读取所述第二数据的命令而进行所述重复。
16.根据权利要求15所述的数据存储设备,其中,所述控制器被配置为,
响应于接收到读取所述第二数据的命令而访问所述高速缓存,
响应于所述高速缓存包括所述第一LBA,从所述非易失性存储器读取存储在第一PBA处的数据,以及
响应于所述高速缓存不包括所述第一LBA,通过参考所述映射表从所述非易失性存储器读取存储在所述第一PBA处的数据。
17.根据权利要求15所述的数据存储设备,其中,响应于接收到读取所述第二数据的命令,所述控制器被配置为,
更新存储在所述缓冲器中的所述映射表,以及
以重复所述读取操作的方式读取所述第二数据,直到从所述非易失性存储器读取出包括所述第二LBA的所述第二数据。
18.根据权利要求17所述的数据存储设备,其中,所述控制器被配置为通过将记录在所述高速缓存中的操作历史传送到所述缓冲器来更新所述映射表。
19.根据权利要求15所述的数据存储设备,其中,所述控制器以特定次数重复所述读取操作。
20.根据权利要求15所述的数据存储设备,其中,响应于读取的数据不存在,所述控制器以特定次数重复所述读取操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2017-0145397 | 2017-11-02 | ||
KR1020170145397A KR102418856B1 (ko) | 2017-11-02 | 2017-11-02 | 데이터 저장 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109753441A CN109753441A (zh) | 2019-05-14 |
CN109753441B true CN109753441B (zh) | 2024-06-04 |
Family
ID=66242983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811199834.4A Active CN109753441B (zh) | 2017-11-02 | 2018-10-15 | 数据存储设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11074171B2 (zh) |
KR (1) | KR102418856B1 (zh) |
CN (1) | CN109753441B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200019513A (ko) * | 2018-08-14 | 2020-02-24 | 에스케이하이닉스 주식회사 | 컨트롤러, 메모리 시스템 및 그 동작 방법 |
US11169744B2 (en) * | 2020-03-31 | 2021-11-09 | Western Digital Technologies, Inc. | Boosting reads of chunks of data |
US11886741B2 (en) * | 2021-04-16 | 2024-01-30 | Samsung Electronics Co., Ltd. | Method and storage device for improving NAND flash memory performance for intensive read workloads |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1383556A (zh) * | 2000-06-08 | 2002-12-04 | 松下电器产业株式会社 | 缓冲存储器地址变换装置、扇区地址信息可靠性判断装置、缺陷扇区判断装置、ecc块同步检测装置、光盘重放装置、媒体及程序 |
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 | 忆正科技(武汉)有限公司 | 固态存储设备、主机的工作方法及固态存储设备、主机 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080071973A1 (en) * | 2000-01-06 | 2008-03-20 | Chow David Q | Electronic data flash card with various flash memory cells |
US8161353B2 (en) * | 2007-12-06 | 2012-04-17 | Fusion-Io, Inc. | Apparatus, system, and method for validating that a correct data segment is read from a data storage device |
US7599220B2 (en) | 2007-05-25 | 2009-10-06 | Macronix International Co., Ltd. | Charge trapping memory and accessing method thereof |
JP2012203957A (ja) | 2011-03-25 | 2012-10-22 | Toshiba Corp | メモリシステム |
JP5870901B2 (ja) | 2012-11-02 | 2016-03-01 | ソニー株式会社 | 誤り検出訂正装置、不一致検出装置、メモリシステム、および、誤り検出訂正方法 |
US9209835B2 (en) | 2013-11-27 | 2015-12-08 | Seagate Technology Llc | Read retry for non-volatile memories |
KR102188061B1 (ko) | 2014-07-29 | 2020-12-07 | 삼성전자 주식회사 | 메모리 장치, 메모리 시스템 및 메모리 장치의 동작방법 |
US9785383B2 (en) * | 2015-03-09 | 2017-10-10 | Toshiba Memory Corporation | Memory system and method of controlling nonvolatile memory |
US9524790B1 (en) | 2015-08-02 | 2016-12-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Flash memory cells wear reduction |
KR102378541B1 (ko) | 2015-11-27 | 2022-03-25 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR102420588B1 (ko) | 2015-12-04 | 2022-07-13 | 삼성전자주식회사 | 비휘발성 메모리 장치, 메모리 시스템, 비휘발성 메모리 장치의 동작 방법 및 메모리 시스템의 동작 방법 |
US10133627B2 (en) | 2015-12-11 | 2018-11-20 | SK Hynix Inc. | Memory device controller with mirrored command and operating method thereof |
TWI607309B (zh) * | 2016-03-16 | 2017-12-01 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
US20180349287A1 (en) * | 2017-06-02 | 2018-12-06 | Dell Products L.P. | Persistent Storage Device Information Cache |
-
2017
- 2017-11-02 KR KR1020170145397A patent/KR102418856B1/ko active IP Right Grant
-
2018
- 2018-05-31 US US15/994,247 patent/US11074171B2/en active Active
- 2018-10-15 CN CN201811199834.4A patent/CN109753441B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1383556A (zh) * | 2000-06-08 | 2002-12-04 | 松下电器产业株式会社 | 缓冲存储器地址变换装置、扇区地址信息可靠性判断装置、缺陷扇区判断装置、ecc块同步检测装置、光盘重放装置、媒体及程序 |
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 | 中国科学院上海微系统与信息技术研究所 | 存储设备及其数据读写方法 |
CN105005536A (zh) * | 2015-07-01 | 2015-10-28 | 忆正科技(武汉)有限公司 | 固态存储设备、主机的工作方法及固态存储设备、主机 |
Also Published As
Publication number | Publication date |
---|---|
KR20190050154A (ko) | 2019-05-10 |
CN109753441A (zh) | 2019-05-14 |
KR102418856B1 (ko) | 2022-07-07 |
US11074171B2 (en) | 2021-07-27 |
US20190129839A1 (en) | 2019-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11113149B2 (en) | Storage device for processing corrupted metadata and method of operating the same | |
US10013307B1 (en) | Systems and methods for data storage devices to use external resources | |
US10031850B2 (en) | System and method to buffer data | |
JP2019133252A (ja) | メモリシステム | |
US20150161036A1 (en) | Programming non-volatile memory using a relaxed dwell time | |
WO2014150516A2 (en) | System and method to reduce read latency of a data storage device | |
WO2015087184A1 (en) | Recording dwell time in a non-volatile memory system | |
CN109753441B (zh) | 数据存储设备 | |
US9390003B2 (en) | Retirement of physical memory based on dwell time | |
US11029867B2 (en) | Apparatus and method for transmitting map information and read count in memory system | |
CN112612634A (zh) | 存储器系统和主机的操作方法以及计算系统 | |
CN113590503B (zh) | 一种非挥发性记忆体存储器的垃圾回收方法与垃圾回收系统 | |
CN112286836A (zh) | 用于在存储器系统中执行访问操作的方法和设备 | |
CN113220216A (zh) | 数据存储设备及其操作方法 | |
CN113590502B (zh) | 一种非挥发性记忆体存储设备的垃圾回收方法与垃圾回收系统 | |
US20240143511A1 (en) | Dynamically sized redundant write buffer with sector-based tracking | |
US11314653B2 (en) | Memory controller | |
TW201935232A (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
JP2012068765A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
US11416410B2 (en) | Memory system, method of operating the same and data processing system for supporting address translation using host resource | |
US11662940B2 (en) | Data storage device and data processing method for restoring MLC/TLC memory to avoid degradation of access performance of a memory device caused by word line short | |
CN111857818A (zh) | 存储器系统和通过该存储器系统执行命令操作的方法 | |
US9003261B2 (en) | Memory system | |
CN113064548A (zh) | 存储器子系统中的逻辑到物理页转译中的相干性问题解决方案 | |
CN110633224A (zh) | 逻辑转实体表更新方法及存储控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |