CN107957961A - 存储设备、存储系统和计算设备 - Google Patents

存储设备、存储系统和计算设备 Download PDF

Info

Publication number
CN107957961A
CN107957961A CN201710126342.1A CN201710126342A CN107957961A CN 107957961 A CN107957961 A CN 107957961A CN 201710126342 A CN201710126342 A CN 201710126342A CN 107957961 A CN107957961 A CN 107957961A
Authority
CN
China
Prior art keywords
metadata
user data
data
host
block
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
CN201710126342.1A
Other languages
English (en)
Other versions
CN107957961B (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.)
Kioxia Corp
Original Assignee
Toshiba Memory Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Memory Corp filed Critical Toshiba Memory Corp
Publication of CN107957961A publication Critical patent/CN107957961A/zh
Application granted granted Critical
Publication of CN107957961B publication Critical patent/CN107957961B/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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/063Address space extension for I/O modules, e.g. memory mapped I/O
    • 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
    • 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/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种存储设备,包括:非易失性存储器,该非易失性存储器包括多个物理块;可连接到主机的通信接口;以及控制器。控制器被配置为生成主机数据的元数据,所述主机数据包括用户数据和用户数据的元数据,并且当与写入命令相关联地通过通信接口接收到主机数据时,在非易失性存储器的物理块中以主机数据的元数据、用户数据的元数据以及用户数据的顺序连续地写入主机数据的元数据、用户数据的元数据以及用户数据。

Description

存储设备、存储系统和计算设备
相关申请的交叉引用
本申请基于并要求于2016年10月18日提交的美国非临时专利申请15/296,841的优先权;其全部内容通过引用并入在此。
技术领域
本公开总体上涉及存储设备、存储系统以及计算设备。
背景技术
存储系统通常包括主机和一个或多个存储设备,存储设备中的每个可以包括一个或多个非易失性存储器芯片,诸如NAND闪存芯片。为了使用数据的标识符或数据的逻辑地址来确定存储数据的物理位置,将映射数据存储在存储设备中的每一个存储设备中或主机中,并且数据的物理位置通过参考映射数据来确定。具体地,在一种类型的存储系统中,这种映射数据存储在存储设备中的每个存储设备中,并且通过逻辑地址指定在主机和存储设备之间通信的数据的位置。在另一类型的存储系统中,映射数据存储在主机中,并且在主机和存储设备之间通信的数据的位置是例如由非易失性存储器芯片的物理地址指定的数据的物理位置。
在后一种类型的存储系统,即其中主机存储映射数据的系统中,通常不在存储设备中存储映射数据(更具体地是,与存储在主机中的映射数据相同的映射表)。其原因是主机主动确定要访问的存储设备的位置,并且期望存储设备以更被动的方式操作。此外,主机通常至少将最新的映射数据存储在易失性存储器中,以使得主机可以快速访问映射数据(尽管可以将未更新(non-updated)的映射数据存储在主机的非易失性存储器中)。然而,在这种系统中,当存储在主机的易失性存储器中的映射数据由于一些原因(例如,主机的突然断电)而变得不可用或丢失时,主机可能部分地失去对存储在存储设备中的数据的访问。期望以确保更可靠的对其访问的方式在存储设备中存储数据。
发明内容
根据实施例,一种存储设备包括:非易失性存储器,其包括多个物理块;可连接到主机的通信接口;以及控制器。控制器被配置为生成主机数据的元数据,所述主机数据包括用户数据和用户数据的元数据,并且当与写入命令相关联地通过通信接口接收到主机数据时,在非易失性存储器的物理块中以主机数据的元数据、用户数据的元数据以及用户数据的顺序连续地写入主机数据的元数据、用户数据的元数据以及用户数据。
根据另一实施例,一种存储系统包括:存储设备以及主机。该存储设备包括非易失性存储器、通信接口以及控制器。该非易失性存储器包括多个物理块。该主机连接到存储设备的通信接口并且包括处理器和易失性存储器,在该易失性存储器中存储用户数据的逻辑地址或标识符与非易失性存储器的物理位置之间的映射。控制器被配置为生成主机数据的元数据,所述主机数据包括用户数据和用户数据的元数据,并且当与写入命令相关联地通过通信接口从主机接收到主机数据时,在非易失性存储器的物理块中以主机数据的元数据、用户数据的元数据以及用户数据的顺序连续地写入主机数据的元数据、用户数据的元数据以及用户数据。
根据另一实施例,一种可连接到非易失性存储设备的计算设备包括易失性存储器和处理器。处理器被配置为与由其发出的写入命令相关联地发送包括用户数据和用户数据的元数据的主机数据,在易失性存储器中存储用户数据的逻辑地址或标识符与写入用户数据的非易失性存储设备的物理位置之间的映射,当映射从易失性存储器丢失时或当易失性存储器中的映射不可访问时向非易失性存储设备发出扫描命令,以及响应于扫描命令基于从非易失性存储设备返回的主机数据的元数据和用户数据的元数据来重构映射。
根据实施例,可以提供更可靠的数据存储系统。
附图说明
图1示出根据实施例的包括主机和至少一个存储设备的存储系统的配置。
图2示出根据实施例的存储系统的物理配置。
图3示出根据实施例的主机的软件层结构和在主机与存储设备之间的通信架构。
图4示出存储设备中的闪存芯片的配置。
图5示出闪存芯片中的存储器单元阵列的详细电路结构。
图6示出存储在四电平NAND单元类型的存储器单元中的2位四电平数据(数据“11”、“01”、“10”以及“00”)与每个电平的阈值电压分布之间的关系。
图7示出根据实施例的物理地址的地址结构的示例。
图8示出根据实施例的指示地址对应关系的查找表(LUT)的示例。
图9示出实施例中基于块池的物理块的映射的概况。
图10示出根据实施例的块映射表(BMT)的示例。
图11A和11B示意性地示出根据本实施例的在写入操作期间写入闪存16的物理块中的数据内容。
图12示出根据实施例的根据在存储设备中执行的写入操作的数据流和块映射转换的架构概述。
图13示出根据实施例执行的写入操作的流程。
图14示出根据实施例执行的扫描操作的流程。
具体实施方式
下面参考附图描述本公开的细节。
[存储系统]
图1示出根据实施例的存储系统1的配置。存储系统1包括主机3、一个或多个存储设备2,以及被配置为连接主机3和存储设备2中每个存储设备的接口10。在本实施例中,存储系统1是如图2所示的2U存储装置。也就是说,主机3和一个或多个存储设备2被容纳在具有2U存储装置的大小的壳体中。存储设备2中的每个存储设备是非易失性存储设备,诸如2.5英寸形状因子(facotr)、3.5英寸形状因子,M.2形状因子或附加卡(AIC)形状因子。此外,在本实施例中,接口10采用PCI Express(外围组件互连高速,PCIe)接口。可替代地,接口10可以采用任何其它技术上可行的协议,诸如SAS(串行连接SCSI)协议、USB(通用串行总线)、SATA(串行高级技术附件)、雷电以太网光纤通道等。
存储设备2包括控制器14、随机存取存储器(RAM)15、诸如NAND闪存16(以下称为闪存16)的非易失性半导体存储器以及接口控制器(IFC)18。IFC 18被配置为经由接口10执行向主机3发送信号和从主机3接收信号。控制器14被配置为管理并控制闪存16、RAM 15和IFC18。
RAM 15例如是诸如DRAM(动态随机存取存储器)和SRAM(静态随机存取存储器)的易失性RAM,或诸如FeRAM(铁电随机存取存储器)、MRAM(磁阻随机存取存储器)、PRAM(相变随机存取存储器)和ReRAM(电阻随机存取存储器)的非易失性RAM。RAM 15可以嵌入在控制器14中。闪存16包括一个或多个闪存芯片17,并且将由主机3指定的用户数据60(参见图11)存储在一个或多个闪存芯片17中。控制器14和闪存16经由诸如Toggle和ONFI的闪存接口21(参见图4)连接。
主机3包括CPU(中央处理器)4、存储器5、控制器6和网络接口控制器(NIC)7。CPU 4是主机3中的中央处理器,并且执行主机3的各种计算和控制操作。CPU 4和控制器6通过使用诸如PCI Express的协议的接口连接。CPU 4经由控制器6执行对存储设备2的控制。在本实施例中,控制器6是PCIe交换机(switch)和PCIe扩展器,但是SAS扩展器、RAID控制器、JBOD控制器、JBOF控制器等可以被用作控制器6。
CPU 4同样执行对存储器5的控制。在本实施例中的存储器5是诸如DRAM(动态随机存取存储器)、MRAM(磁阻随机存取存储器)、ReRAM(电阻随机存取存储器)以及FeRAM(铁电随机存取存储器)的易失性存储器。
CPU 4是被配置为控制主机3的操作的处理器。CPU 4执行例如从存储设备2中的一个存储设备加载到存储器5的操作系统(OS)11。CPU 4连接到NIC 7,NIC 7经由网络接口连接到外部网络。网络接口利用例如以太网、无限带宽(InfiniBand)、光纤通道、PCI ExpressFabric、WiFi等的协议。
存储器5临时存储程序和数据,并且用作CPU 4的工作存储器。存储器5包括用于存储OS 11、应用软件13、查找表(LUT)8、提交队列50,以及完成队列51的存储器区域,并且同样包括写入缓冲器(WB)54和读取缓冲器(RB)55。众所周知,OS 11表示用于管理主机3的系统软件,并且可以是诸如或可从VMware公司获得的虚拟化软件的商品OS。OS 11被执行以管理对主机3、存储设备2和存储器5的输入和从主机3、存储设备2和存储器5的输出。也就是说,OS 11使软件能够使用在包括存储设备2的存储系统1中的元件。此外,OS 11用于控制向存储设备2写入数据和从存储设备2读取数据的方式。
写入缓冲器54临时存储要写入存储设备2中的数据,即用户数据。读取缓冲器(RB)55临时存储从存储设备2读取的数据,即读取数据。LUT8用于管理在数据的文件ID(对象ID或逻辑地址)与闪存16和写入缓冲存储器54的物理地址之间的映射,其中数据被存储用于写入或将要被存储用于读取。提交队列50包含例如关于存储设备2的命令和请求。完成队列51包含指示命令和请求的完成的信息以及与完成相关的信息,在完成存储设备2的命令和请求时向主机3发送该信息。
主机3经由相应的接口10向存储设备2发送用于访问存储设备2的多个命令。如下面详细描述的,命令包括读取命令90、写入命令91、扫描命令92、无效命令(invalidatecommand)、复制命令等。
此外,应用软件13的一个或多个单元分别被加载到存储器5中。图3示出根据本实施例的主机3的软件层结构和主机3与存储设备2之间的通信架构。通常,加载在存储器5中的应用软件13不直接与存储设备2通信,而是经由文件接口和对象接口通过加载在存储器5中的OS 11与存储设备2通信。
OS 11操作以经由接口10向存储设备2发送包括读取命令90、写入命令91、扫描命令92、无效命令和复制命令的命令以及物理地址56。物理地址56用于指定要被访问以用于数据读取或数据写入的闪存16的物理位置。根据这些命令和物理地址(如果有的话),闪存16(更具体地闪存芯片17)执行数据访问处理。
应用软件13包括例如客户端软件、数据库软件(例如,Cassandra DB、Mongo DB、HBASE等)、分布式存储系统(Ceph等)、虚拟机(VM)、客户OS(guest OS)和分析软件(例如,Hadoop、R等)。
[闪存芯片]
图4示出闪存芯片17的配置。闪存芯片17包括存储器单元阵列22和NAND控制器(NANDC)23。如下面详细描述的,存储器单元阵列22包括以矩阵配置来布置的多个存储器单元,存储器单元中的每个存储器单元存储数据。NANDC 23是被配置为控制对存储器单元阵列22的访问的控制器。具体地,NANDC 23包括控制信号输入引脚24、数据输入/输出引脚25、字线控制电路26、控制电路27、数据输入/输出缓冲器28、位线控制电路29和列解码器30。控制电路27连接到控制信号输入引脚24、字线控制电路26、数据输入/输出缓冲器28、位线控制电路29以及列解码器30,并且控制NANDC 23的电路元件的整体操作。此外,存储器单元阵列22连接到字线控制电路26和控制电路27。此外,控制信号输入引脚24和数据输入/输出引脚25通过闪存接口21连接到存储设备2的控制器14。
当从闪存芯片17读取数据时,存储器单元阵列22中的数据被输出到位线控制电路29,并且然后被临时存储在数据输入/输出缓冲器28中。然后,将读取的数据通过闪存接口21从数据输入/输出引脚25发送到存储设备2的控制器14。当将数据写入闪存芯片17时,将要写入的数据(写入数据)通过数据输入/输出引脚25输入到数据输入/输出缓冲器28。然后,将写入数据通过控制电路27发送到列解码器30,并由列解码器30输入到位线控制电路29。将写入数据以由字线控制电路26和位线控制电路29控制的时序写入到存储器单元阵列22的存储器单元。当通过闪存接口21从存储设备2的控制器14向闪存芯片17输入控制信号时,控制信号通过控制信号输入引脚24被输入到控制电路27中。然后,控制电路27根据来自控制器14的控制信号生成控制信号,并控制用于控制存储器单元阵列22、位线控制电路29、列解码器30、数据输入/输出缓冲器28和字线控制电路26的电压。在此,在闪存芯片17中包括除了存储器单元阵列22以外的电路的电路部分被称为NANDC 23。
图5示出存储器单元阵列22的详细电路结构。存储器单元阵列22包括一个或多个面(plane)37(在图5中仅示出其中一个)。每个面37包括多个物理块36,并且每个物理块36包括多个存储器串34。此外,存储器串(MS)34中的每一个存储器串包括多个存储器单元33。
存储器单元阵列22进一步包括多个位线31、多个字线32和公共源极线。可电气地数据重写的存储器单元33以矩阵配置布置在位线31和字线的交叉处。位线控制电路29连接到位线31,并且字线控制电路26连接到字线32,以便控制关于存储器单元33的数据写入和读取。也就是说,位线控制电路29经由位线31读取存储器单元33中存储的数据,并且经由位线31将写入控制电压施加到存储器单元33,以及将数据写入由字线32选择的存储器单元33中。
在每个存储器串(MS)34中,存储器单元33串联连接,并且选择门(gate)S1和S2连接到MS 34的两端。选择门S1连接到位线BL 31,并且选择门S2连接到源极线SRC。布置在同一行中的存储器单元33的控制栅极共同连接到字线32WL0到WLm-1中的一个。第一选择门S1共同连接到选择线SGD,并且第二选择门S2共同连接到选择线SGS。
连接到一个字线32的多个存储器单元33配置一个物理扇区35。针对每个物理扇区35写入和读取数据。在一个物理扇区35中,当采用2位/单元写入系统(MLC,四电平)时存储相当于两个物理页(两页)的数据,并且当采用1位/单元写入系统(SLC,两电平)时存储相当于一个物理页(一页)的数据。此外,当采用3位/单元写入系统(TLC,八电平)时,在一个物理扇区35中存储相当于三个物理页(三页)的数据。此外,以物理块36为单元擦除数据。
在写入操作(同样称为编程操作)、读取操作和编程验证操作期间,根据从控制器14接收的诸如行地址的物理地址来选择一个字线WL,并且因此,选择一个物理扇区35。根据物理地址中的物理页地址来执行所选物理扇区35中的页的切换。物理地址包括物理块地址58和物理页地址59(参见图7)。将物理页地址分配给物理页中的每个物理页,并且将物理块地址分配给物理块36中的每个物理块。
2位/单元的四电平NAND存储器被配置为使得一个存储器单元中的阈值电压可具有四种分布。图6示出存储在四电平NAND单元类型的存储器单元33中的2位四电平数据(数据“11”、“01”、“10”和“00”)与每个电平的阈值电压分布之间的关系。一个存储器单元33的2位数据包括低页(lower page)数据和高页(upper page)数据。根据单独的写入操作,即两个写入操作,将低页数据和高页数据写入存储器单元33。在此,当数据表示为“XY”时,“X”表示高页数据,并且“Y”表示低页数据。
存储器单元33中的每个存储器单元包括存储器单元晶体管,例如,具有形成在半导体衬底上的叠栅结构的MOSFET(金属氧化物半导体场效应晶体管)。叠栅结构包括经由栅极绝缘膜形成在半导体衬底上的电荷存储层(浮置栅电极)和经由栅极间绝缘膜(inter-gate insulating film)形成在浮置栅电极上的控制栅电极。存储器单元晶体管的阈值电压根据在浮置栅电极中积累的电子数而变化。存储器单元晶体管通过改变其阈值电压来存储数据。
例如,存储器单元33中的每个存储器单元可采用使用高页和低页的用于2位/单元(MLC)的四电平存储方法的写入系统。可替代地,存储器单元33可以采用使用单页的1位/单元(SLC)的两电平存储方法的写入系统,使用高页、中间页和低页的用于3位/单元(TLC)的八电平存储方法,或者用于4位/单元(QLC)或更多位/单元的多电平存储方法,或它们的混合。存储器单元晶体管不限于包括浮置栅电极的结构,并且可以是诸如MONOS(金属氧化物-氮化物-氧化物-硅)类型的结构,其可以通过在作为电荷存储层的氮化物界面上捕获电子来调节阈值电压。类似地,MONOS类型的存储器单元晶体管可以被配置为存储一位的数据,或者可以被配置为存储多位的数据。存储器单元晶体管可以是作为非易失性存储介质的半导体存储介质,其中存储器单元被三维排列,如美国专利8,189,391、公开号为No.2010/0207195的美国专利申请以及公开号为No.2010/0254191的美国专利申请中所述,这两个申请的全部内容通过引用并入在此。
[地址结构]
图7示出根据本实施例的物理地址56的地址结构的示例。当OS 11根据物理访问的过程操作时,以图7中所示的地址结构的形式经由在主机3与存储设备2之间的接口10发送物理地址56。物理地址56的地址结构包括芯片地址57、块地址58和页地址59。在本实施例中,如图7中所示,芯片地址57位于地址结构的MSB(最高有效位)侧,并且页地址59位于地址结构的LSB(最低有效位)侧。然而,可以任意确定物理地址56中的芯片地址57、块地址58和页地址59的位置。
[地址映射]
图8示出本实施例中的物理地址的映射的概况。如上所述,使用存储在主机3的存储器5中的LUT 8来管理地址映射。在LUT 8中,每一个条目指示在由主机3使用的数据的文件ID(对象ID或逻辑地址)与存储数据的闪存16的物理地址之间的对应关系。例如,当主机3从闪存16读取某些文件ID的数据时,主机3的CPU 4通过参考LUT 8获得与文件ID相对应的物理地址,并将获得的物理地址包括在读取命令90中以便读取数据。
由于LUT 8存储在作为易失性存储器的存储器5中,所以在不对LUT8的数据执行任何数据备份过程的情况下,LUT 8的电源被切断时,LUT 8的数据可能丢失。在没有LUT 8的情况下,主机3不能定位存储在闪存16中的数据,并且因此不能访问数据。根据本实施例,在写入操作期间写入闪存的写入数据包含用户数据的元数据,以使得可以在如下所述的扫描操作期间使用元数据重建LUT 8。
[块映射]
图9示出基于本实施例中块池的物理块的映射的概况。如上所述,使用存储在RAM15中的BMT 46来管理块映射。块池包括输入块池420、活动块池430、空闲块池440和坏块池450。物理块的映射由存储设备2的控制器14来管理,并且当将物理块重新映射到不同的块池中时,控制器14更新BMT 46中的映射。控制器14在BMT 46中将闪存16的物理块中的每个物理块映射到块池中的一个块池。
输入块池420包括至少一个输入块42。输入块42是其中写入数据的块。输入块42可以不存储数据,或者包括已写入区域和可以写入数据的未写入区域两者。
活动块池430可以包括一个或多个活动块43。活动块43是不再具有可写入区域(即,变得写满数据)的物理块。此外,活动块43中的已写入的数据中的至少一些是有效数据。
空闲块440包括一个或多个空闲块44。空闲块44包括先前未存储任何数据的物理块和没有存储有效数据的物理块。也就是说,存储在空闲块44中的所有数据(如果有的话)已经被无效。
坏块池450包括一个或多个坏块45。坏块45是例如由于缺陷而不能用于数据写入的块。
图10示出根据本实施例的存储设备2中使用的块映射表(BMT)46的示例。BMT 46包括空闲块表461、活动块表462、坏块表463以及输入块表464。在BMT 46的表461-464中的每个表中,每个条目指示块地址与擦除计数之间的对应,该擦除计数指示块地址中的数据已被擦除的次数。同样可以在BMT 46中管理不同类型的块池的其它配置。
输入块表464同样指示将写入下一个写入数据的物理页地址(PPA)。当控制器14重新映射空闲块池440中的空闲块44作为输入块42时,控制器14从空闲块表461中移除该空闲块44的块地址,并且添加包括该块地址和PPA=0的新条目到输入块表464。
因为在本实施例中,由控制器14使用BMT 46的坏块表463来管理闪存16的坏块45,所以主机3的CPU 4不必管理坏块45,并且不必监视闪存16的不可靠的物理块和缺陷。如果存储设备2的控制器14确定物理块不可靠,则控制器14通过从输入块表464、活动块表462和空闲块表461中的包括对应块地址的条目的一个块表删除该条目并且通过添加该条目到坏块表463来防止数据被写入物理块中。例如,当在访问物理块期间发生编程错误、擦除错误或者不可校正ECC错误时,控制器14确定将物理块重新映射为坏块45。在本实施例中,要写入数据的物理地址可以由主机2确定或由控制器14确定。当物理地址由控制器14确定时,主机3不需要执行这种坏块管理。
此外,因为每个物理块的擦除计数由存储设备2的控制器14使用BMT46来管理,所以当将数据写入闪存16时,控制器14可以执行动态平均抹写(dynamic wear leveling)。例如,在本实施例中,当控制器14重新映射空闲块池440中的空闲块44作为输入块42时,控制器14选择具有最小擦除计数的空闲块44。如果空闲块44位于处于忙碌状态的通道或存储体(bank)中,则控制器14可以从空闲块池440中选择具有第二最小擦除计数并且处于空闲状态的另一空闲块44。
当控制器14处理关于输入块42的写入操作时,控制器14通过参考输入块表464指定物理页地址(PPA),将数据写入输入块42的物理页地址,以及递增输入块表464中的PPA((新)PPA=(旧)PPA+写入数据大小)。当(新)PPA超过输入块42的最大页地址时,控制器14将输入块42重新映射为活动块池430中的活动块43。
[写入操作]
图11A和11B示意性地示出根据本实施例的在写入操作期间写入闪存16的物理块中的数据内容。在本实施例中,如图11A中所示,主机3将主机元数据61附加到用于写入存储设备2的闪存16中的用户数据60。用户数据60是例如在将用户数据60发送到存储设备2之前,由在主机3中执行的应用软件13请求写入并存储在写入缓冲器54中的数据。主机元数据61用于当LUT 8由于一些原因(诸如主机3的意外电源关闭)丢失时在存储器5中重建LUT 8。具体地,主机元数据61包含主机元数据61的数据大小、主机元数据61所附加的用户数据60的数据大小,用户数据60的文件ID(对象ID或逻辑地址),用于用户数据60的CRC(循环冗余校验)码,标识触发该写入操作的写入命令91的唯一命令标识符(UCID),以及发出写入命令91时的时间戳。与写入命令91一起或者在通过接口10将写入命令91从主机3发送到存储设备2之后,将存储在写入缓冲器54中的用户数据60和主机元数据61发送到存储设备2。
在存储设备2中,存储设备2的控制器14进一步将设备元数据62附加到用于写入闪存16的用户数据60,该设备元数据62是一对的用户数据60和主机元数据61的元数据。设备元数据62用于定位与其对应的主机元数据61以及在随后的写入操作期间写入相同块或不同块的其它设备元数据的位置。具体地,设备元数据62包含设备元数据62的数据大小,与其对应的主机元数据61的数据大小,以及与其对应的用户数据60的数据大小。
当用户数据60的大小太大而不能容纳在一个物理块中,或者物理块(输入块)的剩余空间小于用户数据60的大小时,用户数据60被分割为多份(piece),并且将主机元数据61和设备元数据62附加到用户数据60中的每一份。在该情况下,每一个设备元数据包含用户数据的相应份的大小,以及同样包括对于每一份的标识符的偏移值。例如,当设备元数据62附加到用户数据60的第一部分时,偏移值为0,当设备元数据62附加到用户数据60的第二部分时,偏移值为1,并且对于以下部分中的每一个部分递增1。
图11B示出存储在闪存16的多个物理块(物理块1和2)中的数据。如图11B所示,每一组的设备元数据、主机元数据以及用户数据以该顺序被写入物理块,以使得每一个物理块的开始部分(第一页)存储设备元数据。更具体地,第一组(#1)的设备元数据#1、主机元数据#1以及用户数据#1被写入物理块1的头部,并且第二组(#2)的设备元数据#2、主机元数据#2以及用户数据#2被存储在物理块2的后续空间中。由于没有足够的空间用于第三组(#3),所以用户数据#3被分割为用户数据#3-0和用户数据#3-1,并被分别写入物理块1和2。此外,将包含偏移值0的设备元数据#3-0和主机元数据#3-0写在用户数据#3-0的前面,并且将包含偏移值1的设备元数据#3-1和主机元数据#3-1(可以与主机元数据#3-0相同)写入用户数据#3-1的前面。以类似的方式,将用户数据#4、#5,...#n、主机元数据#4、#5,...#n和设备元数据#4、#5,...#n写入闪存16的物理块。
图12示意性地示出根据基于块映射表46的块管理而在根据本实施例的存储设备2中执行的写入操作的示例。在写入操作期间,控制器14将存储在写入缓冲器54中的用户数据以及用于用户数据的主机元数据和设备元数据写入闪存16中。图12中的输入块池420、活动块池430、空闲块池440和坏块池450中的每一个块池包括一个或多个物理块。
控制器14经由接口10从写入缓冲器54接收用户数据,并且使用控制器14的ECC编码器48从用户数据生成ECC码。此外,控制器14在下面描述的读取操作期间使用控制器14中的ECC解码器49解码包括用户数据和ECC码的读取数据。
当控制器14将来自写入缓冲器54的用户数据以及该用户数据的主机元数据和设备元数据(统称写入数据)写入闪存16时,控制器14通过参考BMT 46来确定写入数据将要被写入的输入块池420的输入块42中的页的物理地址。如果在闪存16中没有可用的输入块42,则控制器14通过重新映射空闲块池440中的空闲块44来分配新的输入块42。
此外,如果输入块42中没有物理页可用于数据写入而不擦除其中的数据,即,变得写满写入的数据,则控制器14将该块重新映射为活动块池430中的活动块43。控制器14同样可以将活动块池430中的活动块43重新映射(解除分配)为空闲块池440中的空闲块44。
在多个输入块池420中准备多个输入块42,该输入块42中的每个输入块专用于关于相应流ID的数据写入,并且与流ID相关联的用户数据被写入与流ID相关联的输入块42。在该示例中,来自主机3的写入命令91包括流ID。当主机3操作以将指定流ID的写入命令发布到提交队列50时,控制器14从写入缓冲器54接收用户数据,并将写入数据(包括主机和设备元数据)写入与该流ID相关联的输入块42。如果主机3操作以将没有指定流ID的写入命令发布到提交队列50,则控制器14从写入缓冲器54接收用户数据,并将写入数据(包括主机和设备元数据)写入没有与流ID相关联的输入块42。通过根据流ID将用户数据存储到不同的输入块42中,可以使存储在每个输入块42中的用户数据的类型(或数据寿命)更加均匀,并且因此,在执行垃圾收集操作时物理块中的整个数据可被删除而不必将数据部分地转移到另一物理块,即,垃圾收集操作变得更有效。
图13示出写入操作的流程图。在该示例的写入操作中,存储设备2确定用户数据将要被写入的存储器单元阵列22的物理地址,并且主机3不指定物理地址或逻辑地址。当写入操作开始时,在步骤1301中,主机3将用户数据写入主机3的写入缓冲器(WB)54。此外,主机3更新存储在主机3的存储器5中的LUT 8,以使得在其中存储用户数据的文件ID(对象ID或逻辑地址)和WB 54的地址之间的映射。然后,在步骤1302中,主机3向主机3的提交队列50发布包括用户数据和主机元数据的大小信息但不包括地址信息的写入命令。写入命令同样包括唯一命令标识符(UCID)和流ID。
在步骤1303中,存储设备2的控制器14从提交队列50获取写入命令。然后,在步骤1304中,控制器14参考BMT 46确定用户数据将要被写入的闪存16的物理位置(物理地址56)。具体地,控制器14确定与流ID对应的输入块42的第一未写入页作为物理位置。
在存储设备2获取写入命令时,在步骤1305中,主机3通过接口10将存储在WB 54中的用户数据连同附加到其的主机元数据一起发送到存储设备2。在此,步骤1304和1305的顺序不限于该顺序,并且这两个步骤可以以相反的顺序执行或同时执行。在步骤1306中,存储设备2的控制器14将设备元数据附加到从主机3接收的用户数据(和主机元数据)。
在步骤1307中,控制器14的ECC编码器48(参见图10)从用户数据生成ECC码。在步骤1308中,控制器14在闪存16的确定的物理位置(输入块42)中写入该组用户数据、主机元数据和设备元数据(即,写入数据)以及ECC码。
在写入数据被写入输入块42中时,在步骤1309中,控制器14将写入完成通知发送到主机3,该写入完成通知包括写入数据被写入的物理地址56和在写入命令中包括的UCID。然后,将写入完成通知发布在主机3的完成队列51上。在步骤1310中,主机3从完成队列51获取写入完成通知。在步骤1311中,主机3更新在主机3的存储器5中存储的LUT 8,以使得在其中存储用户数据的文件ID(对象ID或逻辑地址)与输入块42的物理地址56之间的映射。通过这些处理,写入操作结束。
在另一实施例中,写入操作以主机3而不是存储设备2的控制器14确定用户数据将要被写入的存储器单元阵列22的物理地址的方式执行。在该情况下,在步骤1302中,主机3将所确定的物理地址连同写入命令、大小信息、UCID和流ID一起发布到提交队列50。此外,由于控制器14不确定物理地址,所以可以省略步骤1304。此外,由于主机3已经识别出用户数据被写入的物理地址,所以从存储设备2发送的写入完成通知不需要包含物理地址。
[扫描操作]
图14示出了扫描操作的流程图,在扫描操作期间,扫描所有活动块和所有输入块,并且从扫描的块中读取所有设备元数据和主机元数据,并且从包括在读取的主机元数据中的映射数据重建LUT 8。通常,当存储在存储器5中的LUT 8由于诸如主机3的突然断电的一些原因丢失时,由主机3启动扫描操作。当扫描操作开始时,在步骤1401中,主机3向提交队列50发布扫描命令(扫描元数据命令)92。
在步骤1402中,存储设备2的控制器14从提交队列50获取扫描命令,并开始在存储设备2侧的扫描操作。在步骤1403中,控制器14确定是否已经对存储与有效用户数据绑定的设备元数据和主机元数据的所有块(即,所有活动块和所有输入块)执行扫描操作。如果确定是肯定的(在步骤1403中为是),则处理进行到步骤1411。如果确定是否定的(在步骤1403中为否),则处理进入步骤1404。
在步骤1404中,控制器14从活动块池430或输入块池420中选择扫描目标块。在步骤1405中,控制器14读取从扫描目标块的第一页开始的第一元数据(设备元数据和主机元数据)并将读取的元数据临时存储在RAM 15的存储器区域中。在此,控制器14可以通过读取第一设备元数据的大小来确定第一设备元数据扩展多少长度(即,设备元数据的最后一页),并且定位随后的主机元数据的起始页。此外,控制器14可以通过读取第一主机元数据的大小来确定第一主机元数据扩展多少长度(即,主机元数据的最后一页)。然后,在步骤1406中,控制器14通过读取包含在第一设备元数据和第一主机元数据中的第一用户数据的大小来搜索下一元数据(设备元数据)(的起始页)。在步骤1407中,控制器14确定扫描目标块中是否存在下一元数据。在此,控制器14通过从读取的设备元数据(或读取的主机元数据)读取用户数据的大小来定位下一元数据(的起始页)。也就是说,控制器14跳过而不读取跟随主机元数据的用户数据。
如果确定是肯定的(在步骤1407中为是),则控制器14读取下一元数据(设备元数据和主机元数据),并以与步骤1406类似的方式将读取的元数据存储在RAM 15中。然后,处理返回到步骤1406以在扫描目标块中寻找另一元数据。如果确定是否定的(在步骤1407中为否),则在步骤1409中,控制器14通过接口10将扫描目标块的存储在RAM 15中的所有元数据和物理地址发送到主机3。然后,处理返回到步骤1403。在步骤1410中,主机3接收扫描目标块的所有元数据和物理地址,并将接收到的数据临时存储在存储器5的存储器区域(例如,读取缓冲器55)中。
在步骤1411中,即当在步骤1403中确定要扫描所有活动块和输入块时,存储设备2的控制器14向主机3发送扫描完成通知,以使得扫描完成通知被发布在完成队列50上。在步骤1412中,主机3从完成队列51获取扫描完成通知。在步骤1413中,主机3使用映射相关数据(逻辑地址,和用户数据的大小、主机元数据和设备元数据)和物理地址来执行LUT 8的修复。通过这些处理,扫描操作结束。
如上所述,根据上述实施例,在写入操作期间,主机3除了向存储设备2发送用户数据之外,还发送主机元数据,该主机元数据包括主机元数据的大小、用户数据的大小、文件ID等。然后,存储设备2的控制器14将设备元数据附加到用户数据,并且将设备元数据、主机元数据和用户数据以该顺序写入闪存16的物理块(输入块)中。在闪存16的每个物理块(活动块和输入块)中,在其第一页中写入设备元数据。在扫描操作期间,从所有活动块和所有输入块读取所有设备元数据和所有主机元数据,并且基于读取元数据重建LUT 8。因此,根据上述实施例,即使由于一些原因(例如,主机3的突然断电)LUT 8变得不可用或丢失,也可以重建LUT8,并且主机3可以使用LUT 8映射存储在闪存16中的数据。因此,可以提供更可靠的数据存储系统。
虽然已经描述了某些实施例,但是这些实施例仅通过示例的方式给出,并且不旨在限制本发明的范围。实际上,在此描述的新颖实施例可以以各种其它形式实施;此外,在不脱离本发明的精神的情况下,可以对在此描述的实施例的形式进行各种省略、替换和改变。所附权利要求及其等同物旨在覆盖落入本发明的范围和精神内的这些形式或修改。

Claims (20)

1.一种存储设备,包括:
非易失性存储器,其包括多个物理块;
可连接到主机的通信接口;以及
控制器,其被配置为生成主机数据的元数据,所述主机数据包括用户数据和所述用户数据的元数据,并且当与写入命令相关联地通过所述通信接口接收到所述主机数据时在所述非易失性存储器的物理块中以所述主机数据的元数据、所述用户数据的元数据以及所述用户数据的顺序连续地写入所述主机数据的元数据、所述用户数据的元数据以及所述用户数据。
2.根据权利要求1所述的存储设备,其中,
所述用户数据的元数据至少包括所述用户数据的元数据的大小、所述用户数据的大小以及所述用户数据的逻辑位置或标识符,以及
所述主机数据的元数据至少包括所述主机数据的元数据的大小、所述用户数据的元数据的大小以及所述用户数据的大小。
3.根据权利要求2所述的存储设备,其中
当来自单个写入命令的所述用户数据被分割为多个部分并写入多个物理块中时,所述控制器在所述多个物理块中的每一个物理块中以所述主机数据的元数据,所述用户数据的元数据以及所述用户数据的一部分的顺序连续地写入所述主机数据的元数据,所述用户数据的元数据以及所述用户数据的一部分。
4.根据权利要求3所述的存储设备,其中
在所述多个物理块中的每一个物理块中写入的所述主机数据的元数据进一步包括指示所述用户数据的分割部分的排列顺序的不同偏移值。
5.根据权利要求1所述的存储设备,其中
所述控制器被进一步配置为
当通过所述通信接口接收到所述写入命令时,确定要写入所述主机数据的元数据、所述用户数据的元数据以及所述用户数据的所述非易失性存储器的物理位置,以及
在所述主机数据、所述用户数据的元数据以及所述用户数据的写入完成时控制所述通信接口返回连同所述确定的物理位置一起的通知。
6.根据权利要求1所述的存储设备,其中
所述控制器被进一步配置为当通过所述通信接口接收到扫描命令时,选择性地读取存储在存储有效用户数据的所有物理块中的主机数据的元数据和用户数据的元数据,而不读取用户数据,并控制所述通信接口发送读取的元数据。
7.根据权利要求6所述的存储设备,其中
在每次物理块的读取完成时所述控制器控制所述通信接口发送所述读取的元数据。
8.根据权利要求6所述的存储设备,其中
所述控制器被进一步配置为在从所述存储有效用户数据的所有物理块读取元数据完成时控制所述通信接口返回通知。
9.一种存储系统,包括:
存储设备,其包括包含多个物理块的非易失性存储器、通信接口以及控制器;以及
主机,其连接到所述存储设备的所述通信接口,并且包括处理器和易失性存储器,在所述易失性存储器中存储用户数据的逻辑地址或标识符与所述非易失性存储器的物理位置之间的映射,其中
所述控制器被配置为生成主机数据的元数据,所述主机数据包括用户数据和所述用户数据的元数据,并且当与写入命令相关联地通过所述通信接口从所述主机接收到所述主机数据时在所述非易失性存储器的物理块中以所述主机数据的元数据、所述用户数据的元数据以及所述用户数据的顺序连续地写入所述主机数据的元数据、所述用户数据的元数据以及所述用户数据。
10.根据权利要求9所述的存储系统,其中
所述用户数据的元数据至少包括所述用户数据的元数据的大小、所述用户数据的大小以及所述用户数据的逻辑地址或标识符,以及
所述主机数据的元数据至少包括所述主机数据的元数据的大小、所述用户数据的元数据的大小以及所述用户数据的大小。
11.根据权利要求10所述的存储系统,其中
当来自单个写入命令的所述用户数据被分割为多个部分并写入多个物理块中时,所述控制器在所述多个物理块中的每一个物理块中以所述主机数据的元数据,所述用户数据的元数据以及所述用户数据的一部分的顺序连续地写入所述主机数据的元数据,所述用户数据的元数据以及所述用户数据的一部分。
12.根据权利要求11所述的存储系统,其中
在所述多个物理块中的每一个物理块中写入的所述主机数据的元数据进一步包括指示所述用户数据的分割部分的排列顺序的不同偏移值。
13.根据权利要求9所述的存储系统,其中
所述处理器被配置为确定将要写入所述主机数据的元数据、所述用户数据的元数据以及所述用户数据的所述非易失性存储器的物理位置,并且连同所述写入命令一起发送所述物理位置。
14.根据权利要求9所述的存储系统,其中
所述控制器被进一步配置为当通过所述通信接口从所述主机接收到扫描命令时,选择性地读取存储在存储有效用户数据的所有物理块中的主机数据的元数据和用户数据的元数据,而不读取用户数据,并控制所述通信接口发送读取的元数据。
15.根据权利要求14所述的存储系统,其中
在每次物理块的读取完成时所述控制器控制所述通信接口发送所述读取的元数据。
16.根据权利要求14所述的存储系统,其中
所述处理器被配置为当所述映射从所述易失性存储器丢失时或者当所述易失性存储器中的所述映射不可访问时发出所述扫描命令。
17.根据权利要求16所述的存储系统,其中
所述处理器被配置为基于通过所述通信接口接收的所述元数据重建所述映射。
18.一种可连接到非易失性存储设备的计算设备,包括:
易失性存储器;以及
处理器,其被配置为
与由其发出的写入命令相关联地发送包括用户数据和用户数据的元数据的主机数据,
在所述易失性存储器中存储所述用户数据的逻辑地址或标识符与写入所述用户数据的所述非易失性存储设备的物理位置之间的映射,
当所述映射从所述易失性存储器丢失时或当所述易失性存储器中的所述映射不可访问时向所述非易失性存储设备发出扫描命令,以及
响应于所述扫描命令基于从所述非易失性存储设备返回的所述主机数据的元数据和所述用户数据的元数据来重构所述映射。
19.根据权利要求18所述的计算设备,其中
所述用户数据的元数据至少包括所述用户数据的元数据的大小、所述用户数据的大小以及所述用户数据的逻辑位置或标识符,以及
所述主机数据的元数据至少包括所述主机数据的元数据的大小、所述用户数据的元数据的大小以及所述用户数据的大小。
20.根据权利要求18所述的计算设备,其中
所述处理器被进一步配置为确定将要写入所述主机数据的元数据、所述用户数据的元数据以及所述用户数据的所述非易失性存储设备的物理位置,并连同所述写入命令一起发送所述物理位置。
CN201710126342.1A 2016-10-18 2017-03-03 存储设备、存储系统和计算设备 Active CN107957961B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/296,841 US10853233B2 (en) 2016-10-18 2016-10-18 Reconstruction of address mapping in a host of a storage system
US15/296841 2016-10-18

Publications (2)

Publication Number Publication Date
CN107957961A true CN107957961A (zh) 2018-04-24
CN107957961B CN107957961B (zh) 2021-09-14

Family

ID=61902727

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710126342.1A Active CN107957961B (zh) 2016-10-18 2017-03-03 存储设备、存储系统和计算设备

Country Status (2)

Country Link
US (2) US10853233B2 (zh)
CN (1) CN107957961B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109471596A (zh) * 2018-10-31 2019-03-15 北京小米移动软件有限公司 数据写入方法、装置、设备及存储介质
CN111752479A (zh) * 2019-03-27 2020-10-09 阿里巴巴集团控股有限公司 有效存储数据的方法和系统
CN112639768A (zh) * 2018-07-31 2021-04-09 马维尔国际贸易有限公司 具有元数据计算控制的存储聚合器控制器
CN113220615A (zh) * 2021-05-08 2021-08-06 山东英信计算机技术有限公司 一种异步通信方法及系统

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10592115B1 (en) * 2016-11-30 2020-03-17 EMC IP Holding Company LLC Cache management system and method
US10956245B1 (en) * 2017-07-28 2021-03-23 EMC IP Holding Company LLC Storage system with host-directed error scanning of solid-state storage devices
CN109582599B (zh) * 2017-09-29 2023-12-22 上海宝存信息科技有限公司 数据储存装置以及非挥发式存储器操作方法
KR20190067540A (ko) * 2017-12-07 2019-06-17 에스케이하이닉스 주식회사 스토리지 시스템 및 그것의 동작 방법
US10740000B2 (en) * 2018-03-08 2020-08-11 Western Digital Technologies, Inc. Adaptive transaction layer packet for latency balancing
CN108845764A (zh) * 2018-05-30 2018-11-20 郑州云海信息技术有限公司 一种io数据的处理方法及装置
US11262942B2 (en) * 2018-07-16 2022-03-01 ScaleFlux, Inc. Integrating host-side storage device management with host-side non-volatile memory
US20200026427A1 (en) * 2018-07-23 2020-01-23 Reduxio Systems Ltd. System and method for handling data storage on storage devices
US11157207B2 (en) * 2018-07-31 2021-10-26 SK Hynix Inc. Apparatus and method for engaging plural memory system with each other to store data
US10963385B2 (en) * 2019-01-18 2021-03-30 Silicon Motion Technology (Hong Kong) Limited Method and apparatus for performing pipeline-based accessing management in a storage server with aid of caching metadata with cache module which is hardware pipeline module during processing object write command
US11320987B2 (en) * 2019-08-29 2022-05-03 Micron Technology, Inc. Scanning techniques for a media-management operation of a memory sub-system
CN110888667A (zh) * 2019-10-30 2020-03-17 北京军懋国兴科技股份有限公司 一种arm芯片程序在线重构的方法
CN111813334B (zh) * 2020-06-04 2024-04-05 中国科学院上海微系统与信息技术研究所 一种Ceph的写性能优化和双控节点组合方法
US11720413B2 (en) * 2020-06-08 2023-08-08 Samsung Electronics Co., Ltd. Systems and methods for virtualizing fabric-attached storage devices
JP2022050016A (ja) * 2020-09-17 2022-03-30 キオクシア株式会社 メモリシステム
KR20220037638A (ko) * 2020-09-18 2022-03-25 에스케이하이닉스 주식회사 맵 캐시를 포함하는 컨트롤러 및 이를 포함하는 메모리 시스템
US11636041B2 (en) * 2020-10-12 2023-04-25 Seagate Technology Llc Object storage data storage systems and methods
US11567697B2 (en) * 2020-11-12 2023-01-31 International Business Machines Corporation Prioritization of stored data during a delete process in a virtualized storage system

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101042676A (zh) * 2006-03-23 2007-09-26 株式会社日立制作所 存储系统以及存储区域释放方法以及存储装置
US20100131697A1 (en) * 2008-11-23 2010-05-27 Sandisk Il Ltd. Methods for tag-grouping of blocks in storage devices
US20110296123A1 (en) * 2010-05-25 2011-12-01 Jason Adler Memory access table saving and restoring system and methods
CN102467455A (zh) * 2010-10-29 2012-05-23 三星电子株式会社 存储系统、数据存储设备、用户设备及其数据管理方法
CN103631670A (zh) * 2012-08-22 2014-03-12 群联电子股份有限公司 存储器储存装置、存储器控制器与数据处理方法
US8677037B1 (en) * 2007-08-30 2014-03-18 Virident Systems, Inc. Memory apparatus for early write termination and power failure
US20150033097A1 (en) * 2012-02-28 2015-01-29 Samsung Electronics Co., Ltd. Storage device
US20160086967A1 (en) * 2014-09-19 2016-03-24 Jae-Eun Lee Nonvolatile memory device
CN105632535A (zh) * 2014-11-24 2016-06-01 三星电子株式会社 存储设备和存储设备的操作方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7849253B2 (en) * 2005-04-04 2010-12-07 Standard Microsystems Corporation Method for fast access to flash-memory media
US8332574B2 (en) * 2007-04-30 2012-12-11 Sandisk Il Ltd. Method for efficient storage of metadata in flash memory
JP5142692B2 (ja) 2007-12-11 2013-02-13 株式会社東芝 不揮発性半導体記憶装置
US8732388B2 (en) * 2008-09-16 2014-05-20 Micron Technology, Inc. Embedded mapping information for memory devices
JP5275052B2 (ja) 2009-01-08 2013-08-28 株式会社東芝 不揮発性半導体記憶装置
US8284601B2 (en) 2009-04-01 2012-10-09 Samsung Electronics Co., Ltd. Semiconductor memory device comprising three-dimensional memory cell array
US8443263B2 (en) * 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
KR20120137354A (ko) * 2010-01-28 2012-12-20 샌디스크 아이엘 엘티디 슬라이딩-윈도우 에러 정정
US9235502B2 (en) * 2011-09-16 2016-01-12 Apple Inc. Systems and methods for configuring non-volatile memory
JP2014115807A (ja) * 2012-12-10 2014-06-26 International Business Maschines Corporation ファイルを複数のメディアに書込む方法、及びストレージ・システム
US9552288B2 (en) * 2013-02-08 2017-01-24 Seagate Technology Llc Multi-tiered memory with different metadata levels
US9575884B2 (en) * 2013-05-13 2017-02-21 Qualcomm Incorporated System and method for high performance and low cost flash translation layer

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101042676A (zh) * 2006-03-23 2007-09-26 株式会社日立制作所 存储系统以及存储区域释放方法以及存储装置
US8677037B1 (en) * 2007-08-30 2014-03-18 Virident Systems, Inc. Memory apparatus for early write termination and power failure
US20100131697A1 (en) * 2008-11-23 2010-05-27 Sandisk Il Ltd. Methods for tag-grouping of blocks in storage devices
US20110296123A1 (en) * 2010-05-25 2011-12-01 Jason Adler Memory access table saving and restoring system and methods
CN102467455A (zh) * 2010-10-29 2012-05-23 三星电子株式会社 存储系统、数据存储设备、用户设备及其数据管理方法
US20150033097A1 (en) * 2012-02-28 2015-01-29 Samsung Electronics Co., Ltd. Storage device
CN103631670A (zh) * 2012-08-22 2014-03-12 群联电子股份有限公司 存储器储存装置、存储器控制器与数据处理方法
US20160086967A1 (en) * 2014-09-19 2016-03-24 Jae-Eun Lee Nonvolatile memory device
CN105632535A (zh) * 2014-11-24 2016-06-01 三星电子株式会社 存储设备和存储设备的操作方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王维聘: "硬盘安全访问控制的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112639768A (zh) * 2018-07-31 2021-04-09 马维尔国际贸易有限公司 具有元数据计算控制的存储聚合器控制器
CN109471596A (zh) * 2018-10-31 2019-03-15 北京小米移动软件有限公司 数据写入方法、装置、设备及存储介质
CN109471596B (zh) * 2018-10-31 2022-03-18 北京小米移动软件有限公司 数据写入方法、装置、设备及存储介质
CN111752479A (zh) * 2019-03-27 2020-10-09 阿里巴巴集团控股有限公司 有效存储数据的方法和系统
CN113220615A (zh) * 2021-05-08 2021-08-06 山东英信计算机技术有限公司 一种异步通信方法及系统

Also Published As

Publication number Publication date
US20210081315A1 (en) 2021-03-18
US20180107592A1 (en) 2018-04-19
US10853233B2 (en) 2020-12-01
CN107957961B (zh) 2021-09-14
US11301373B2 (en) 2022-04-12

Similar Documents

Publication Publication Date Title
US11301373B2 (en) Reconstruction of address mapping in a host of a storage system
US11507500B2 (en) Storage system having a host directly manage physical data locations of storage device
US11768610B2 (en) Storage system having a host that manages physical data locations of a storage device
CN105739915B (zh) 存储系统中执行的条带重建方法和存储系统
US10235079B2 (en) Cooperative physical defragmentation by a file system and a storage device
US10924552B2 (en) Hyper-converged flash array system
US11361840B2 (en) Storage system having a host that manages physical data locations of storage device
US10965751B2 (en) Just a bunch of flash (JBOF) appliance with physical access application program interface (API)
US20200218451A1 (en) Storage device having dual access procedures
CN108027764A (zh) 可转换的叶的存储器映射
CN114741330A (zh) 储存装置、快闪存储器控制器及其控制方法
US9858003B2 (en) Storage system that reliably stores lower page data
KR100932801B1 (ko) 메모리 관리 방법, 메모리 장치 및 컴퓨터 판독 가능 저장매체
US12013779B2 (en) Storage system having a host directly manage physical data locations of storage device
US20230236964A1 (en) Storage controller deallocating memory block, method of operating the same, and method of operating storage device including the same
CN117636968A (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
CP01 Change in the name or title of a patent holder

Address after: Tokyo, Japan

Patentee after: TOSHIBA MEMORY Corp.

Address before: Tokyo, Japan

Patentee before: Japanese businessman Panjaya Co.,Ltd.

Address after: Tokyo, Japan

Patentee after: Kaixia Co.,Ltd.

Address before: Tokyo, Japan

Patentee before: TOSHIBA MEMORY Corp.

CP01 Change in the name or title of a patent holder
TR01 Transfer of patent right

Effective date of registration: 20220111

Address after: Tokyo, Japan

Patentee after: Japanese businessman Panjaya Co.,Ltd.

Address before: Tokyo, Japan

Patentee before: TOSHIBA MEMORY Corp.

TR01 Transfer of patent right