CN112988627A - 存储设备、存储系统和操作存储设备的方法 - Google Patents

存储设备、存储系统和操作存储设备的方法 Download PDF

Info

Publication number
CN112988627A
CN112988627A CN202011362480.8A CN202011362480A CN112988627A CN 112988627 A CN112988627 A CN 112988627A CN 202011362480 A CN202011362480 A CN 202011362480A CN 112988627 A CN112988627 A CN 112988627A
Authority
CN
China
Prior art keywords
storage
metadata
memory
data
host device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011362480.8A
Other languages
English (en)
Inventor
金鼎勋
金圣训
金弘国
朴绍正
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 CN112988627A publication Critical patent/CN112988627A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/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/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/0877Cache access modes
    • G06F12/0882Page mode
    • 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/1684Details of memory controller using multiple buses
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • 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
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/18Bit line organisation; Bit line lay-out
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/14Word line organisation; Word line lay-out
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/652Page size control
    • 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)
  • Microelectronics & Electronic Packaging (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种存储设备,包括:非易失性存储,其包括第一区域和第二区域;存储控制器,其控制非易失性存储的操作;以及缓冲存储器,其连接到存储控制器。存储控制器将从主机设备接收的用户数据存储在第二区域中,将与用户数据的管理相关联且由主机设备的文件系统生成的元数据存储在第一区域中,响应于与元数据相关联的索引节点(inode)的地址信息将元数据从第一区域加载到缓冲器,并使用加载到缓冲存储器的元数据访问第二区域中的目标数据。

Description

存储设备、存储系统和操作存储设备的方法
相关申请的交叉引用
本申请要求于2019年12月2日在韩国知识产权局提交的韩国专利申请第10-2019-0158001号的优先权,其主题通过引用合并于此。
背景技术
示例实施例通常涉及数据处理,并且更具体地涉及存储设备、包括该存储设备的存储系统和/或操作该存储设备的方法。
计算设备可以采取许多形式,包括台式计算机、笔记本计算机、智能电话、智能平板电脑等。硬盘驱动器(hard disk driver,HDD)传统上被用作许多计算设备的存储设备。然而,诸如智能电话的移动设备使用非易失性存储器设备代替HDD作为存储设备。非易失性存储器设备包括(例如)NAND闪存存储器、相变RAM(phase-change RAM,PRAM)、磁性RAM(magnetic RAM,MRAM)、电阻性RAM(resistive RAM,RRAM)和铁电RAM(ferroelectric RAM,FRAM)。
当代计算设备访问存储设备的频率正在增加。这种增加的使用频率给存储设备带来了压力。
与HDD相比,非易失性存储器设备的使用历史相对较短。因此,当前用于管理存储设备的大多数文件系统都被设计为适合HDD的操作特性。由于与HDD相比,非易失性存储器设备的操作特性有所不同,现有的文件系统无法充分有效地利用非易失性存储器设备提供的性能。因此,应当仔细考虑用于文件系统、数据传输和存储以及包括非易失性存储器设备的存储设备的新方法,以便充分实现非易失性存储器设备提供的性能优势。
发明内容
一些示例实施例提供了一种存储设备,其能够减少存储设备与主机设备之间的输入/输出(I/O)开销。
一些示例实施例提供了一种存储系统,其能够减少存储设备与主机设备之间的I/O开销。
一些示例实施例提供一种操作存储设备的方法,其能够减少存储设备和主机设备之间的I/O开销。
根据一些示例实施例,一种存储设备,包括:包括第一区域和第二区域的非易失性存储,被配置为控制非易失性存储的存储控制器以及连接到存储控制器的缓冲存储器,其中,存储控制器被配置为将包括从主机设备接收的目标数据的用户数据存储在第二区域中,将与用户数据的管理相关联的且由主机设备的文件系统生成的元数据存储在第一区域中,并且存储控制器还被配置为响应于与元数据关联的索引节点(inode)的地址信息将元数据加载到缓冲存储器,并使用加载到缓冲存储器的元数据访问第二区域中的目标数据。
根据一些示例实施例,一种存储系统包括:主机设备,其包括文件系统,并提供包括目标数据的用户数据以及与用户数据的管理相关联且由文件系统生成的元数据;以及存储设备,其包括:包括第一区域和第二区域的非易失性存储,被配置为控制非易失性存储的操作的存储控制器以及连接到存储控制器的缓冲存储器,其中,存储控制器被配置为将用户数据存储在第二区域中,并将元数据存储在第一区域中,并且存储控制器还被配置为响应于与元数据相关联的索引节点(inode)的地址信息将元数据加载到缓冲存储器,并使用加载到缓冲存储器的元数据访问第二区域中的目标数据。
根据一些示例实施例,一种操作存储设备的方法,其中,存储设备包括:包括第一区域和第二区域的非易失性存储;控制非易失性存储的操作的存储控制器;以及连接到存储控制器的缓冲存储器,所述方法包括将从主机设备接收的用户数据存储在第二区域中,将与用户数据的管理相关联且由主机设备的文件系统生成的元数据存储在第一区域中,响应于与元数据相关联的索引节点(inode)的地址信息将元数据从第一区域加载到缓冲存储器,并使用加载到缓冲存储器的元数据访问第二区域中的目标数据。
附图说明
根据下面结合附图的详细描述,将更清楚地理解说明性的、非限制性的示例实施例。
图1是示出根据一些示例实施例的存储系统(或数据存储系统)的框图。
图2是示出根据一些示例实施例的图1中的主机设备的框图。
图3示出了根据示例实施例的图2中的主机存储器的示例。
图4是示出根据一些示例实施例的图1中的存储控制器的框图。
图5示出了根据一些示例实施例的图1中的非易失性存储的多个信道和路径的示例。
图6是用于说明根据示例实施例的图1中的存储设备中的非易失性存储的示例的框图。
图7是用于说明存储在图1的存储设备中的文件的结构的图。
图8是用于说明根据示例实施例的图1中的存储设备中的非易失性存储的示例的框图。
图9是用于说明根据示例实施例的图8中的节点地址表的图。
图10是由图3中的文件系统生成的元数据集的示例。
图11A至图11C示出根据一些示例实施例的图1的存储系统的操作。
图12是示出图1的存储设备中的存储控制器与一个非易失性存储器设备之间的连接关系的框图。
图13是示出根据一些示例实施例的图12中的非易失性存储器设备的框图。
图14是示出图13的非易失性存储器设备中的存储器单元阵列的框图。
图15是示出图14的存储器块中的一个的电路图。
图16示出了图15的存储器块中的单元串CS的结构的示例。
图17示出了根据一些示例实施例的响应于图1的存储系统中的一个请求执行的连续读取操作。
图18示出了图1的存储设备中的存储控制器更新元数据集的示例。
图19示出了图4的存储控制器通过参照图10的元数据集来确定数据的属性。
图20示出了元数据集中包括的位图的示例。
图21是示出根据一些示例实施例的操作存储设备的方法的流程图。
图22是示出根据一些示例实施例的包括存储设备的系统的框图。
图23是示出根据一些示例实施例的移动设备的框图。
具体实施方式
在下文中将参考附图更全面地描述各种示例实施例,在附图中示出了一些示例实施例。
如下所示,组件块中的每一个可以用硬件实现,例如,用被配置为运行非瞬态指令的硬件实现。例如,除非另有说明,否则诸如控制器(例如,存储控制器等)的组件可以实现为电路、FPGA和/或被配置为运行机器可读指令的处理器,机器可读指令在由处理器运行时使处理器执行特定功能。
图1是示出根据一些示例实施例的数据存储系统(以下称为存储系统)的框图。
参照图1,存储系统10包括主机设备100和存储设备(storage device,SD)200。存储设备200可以包括固态驱动器(磁盘)(solid state drive,SSD)。
主机设备100可以控制存储设备200的整体操作。主机设备100可以与存储设备200交换各种命令、控制、地址和/或数据信号。
存储设备200可以包括存储控制器300和非易失性存储400,并且非易失性存储400可以包括多个非易失性存储
Figure BDA0002804393350000041
其中,'k'是大于2的自然数。非易失性存储
Figure BDA0002804393350000042
中的每一个可以包括NAND闪存存储器。
存储控制器300可以控制与主机设备100的命令、地址和/或数据信号的交换。存储控制器300可以响应于从主机设备100接收的一个或多个命令(例如,请求),在非易失性存储中写入(或编程)数据,和/或可以从非易失性存储中读取数据。
存储控制器200可以包括闪存转换层(flash translation layer,FTL)305。
FTL 305可以是由存储控制器300驱动的固件或软件。FTL 305可以将由主机设备100管理的存储空间的逻辑地址转换为非易失性存储400的存储空间的物理地址。存储控制器300可以使用FTL 305将从主机设备100接收的基于逻辑地址的请求的逻辑地址转换为物理地址。FTL305可以管理非易失性存储400并执行各种后台操作以改善非易失性存储400的操作性能。
图1的存储系统10相对于通常被称为用户数据和元数据的至少两种类型的数据进行操作。用户数据是由主机设备100提供给存储设备200并写入非易失性存储400的内容相关或有效载荷数据。用户数据可以包括各种数据,诸如与安装在存储系统10中的操作系统和/或应用相关联的数据(例如,文字处理文件、电子表格文件、音频文件、视频文件、多媒体文件和压缩数据文件等)。相反,元数据(或元数据集)是由主机设备100生成并用于管理存储设备200的操作的数据。元数据可以包括由存储设备100定义的文件系统数据。元数据还可以由主机设备100提供给存储设备200,并且可以在没有用户干预的情况下写入到非易失性存储400或文件系统中,从而可以在没有施加电力的情况下保留在存储器中。
存储设备200还可包括连接到存储控制器300的缓冲存储器220。
缓冲存储器220可以用作缓冲区域,以临时存储从主机设备100接收的写入数据和/或从非易失性存储器设备
Figure BDA0002804393350000051
检索的读取数据。
缓冲存储器220还可以用于存储和/或驱动用于管理非易失性存储器设备
Figure BDA0002804393350000052
的操作的软件。缓冲存储器220可以用于存储从主机设备100接收的元数据和/或可以用于存储高速缓存数据。在一些实施例中,缓冲存储器220可以包括易失性存储器,诸如动态随机存取存储器(dynamic random access memory,DRAM)或静态随机存取存储器(static random access memory,SRAM)设备。
多个非易失性存储器设备
Figure BDA0002804393350000053
可以用作存储设备200的主存储介质。非易失性存储器设备
Figure BDA0002804393350000054
可以经由多个信道组
Figure BDA0002804393350000055
连接到存储控制器300。信道组
Figure BDA0002804393350000056
中的每一个可以包括至少一个信道。一个或多个非易失性存储器设备可以连接到每个信道组。连接到一个信道组的非易失性存储器设备可以经由公共数据总线连接。
尽管未示出,但是存储设备200可以进一步包括焊盘(pad)以连接到主机设备100。存储设备200可以使用焊盘附接到主机设备100和/或从主机设备100拆卸。焊盘可以与存储设备200形成为一体,或者形成为附接到存储设备200的外部连接器。在一些示例实施例中,存储设备200可以不包括焊盘,而是可以经由电子路由处理连接到主机设备100。
图2是进一步示出根据一些示例实施例的图1的主机设备100的框图。
参照图2,主机设备100可以包括处理器110、只读存储器(read-only memory,ROM)120、主机存储器130、用户接口140、存储接口150和/或总线170。主机设备100可以进一步包括存储器控制器160。
总线170可以指经由其在主机设备100的处理器110、ROM 120、主机存储器130、用户接口140、存储接口150和/或存储器控制器160之间传输数据的传输信道。
处理器110可以控制主机设备100的整体操作。处理器110可以运行加载到主机存储器120上的软件。例如,处理器110可以运行应用程序、文件系统、块I/O调度器和设备驱动器。处理器110可以包括同构多核处理器或异构多核处理器。例如,处理器110可以包括中央处理单元(central processing unit,CPU)、图像信号处理单元(image signalprocessing unit,ISP)、数字信号处理单元(digital signal processing unit,DSP)、图形处理单元(graphics processing unit,GPU)、视觉处理单元(vision processing unit,VPU)和神经处理单元(neural processing unit,NPU)中的至少一个。
ROM 120可以存储各种应用程序,例如,支持诸如高级技术附件(AdvancedTechnology Attachment,ATA)、小型计算机系统接口(Small Computer SystemInterface,SCSI)、嵌入式多媒体卡(embedded Multi Media Card,eMMC)和通用闪存存储(Universal Flash storage,UFS)协议和NVMe的应用程序。
主机存储器130可以临时存储数据或程序。管理存储系统10中的所有硬件和软件的操作系统(operating system,OS)可以加载到主机存储器130上。
存储接口150可以包括支持诸如SATA、SAS、eMMC、UFS和/或NVMe的存储协议的接口。
用户接口140可以是或包括用于在用户与主机设备100之间交换信息的物理或虚拟介质、计算机程序等,并且可以包括物理硬件和逻辑软件。例如,用户接口140可以包括允许用户与主机设备100接口的输入设备,和/或向用户提供数据处理结果的输出设备。
存储器控制器160可以控制主机存储器130。
图3是示出根据示例实施例的图2的主机存储器130的各种组件的概念图。
参照图3,主机存储器可以加载(例如)用户空间中的应用程序131、内核空间中包括的文件系统132、I/O调度器133和设备驱动器325。
加载到主机存储器130的软件层(例如)131、132、133和135可以包括在用于访问存储设备200的软件栈中。主机存储器130可以包括诸如例如DRAM设备或SRAM设备的存储介质。
应用程序131可以作为基本(或默认)服务或响应于用户请求运行。可以分别指定存储应用程序131的用户空间和存储包括文件系统132的内核、I/O调度器133、设备驱动器135等的内核空间。应用程序131不能直接访问诸如存储设备200的资源。相反,应用程序131可以调用在包括系统调用函数的库(未示出)中定义的一个或多个函数,并且可以从内核请求任务。在使用系统调用函数的情况下,可以进行从用户模式到内核模式的切换。
文件系统132可以管理存储到存储设备200的文件或数据。例如,文件系统132可以包括文件分配表(file allocation table,FAT)、新技术文件系统(new technology filesystem,NTFS)、分层文件系统(hierarchical file system,HFS)、高性能文件系统(highperformance file system,HPFS)、unix文件系统(unix file system,UFS)、辅助扩展文件系统(secondary extended file system,ext2)、ext3、ext4、日志文件系统(journalingfile system,JFS)、ISO 9660、Files-11、Veritas文件系统(veritas file system,VxFS)、ZFS、ReiserFS、通用磁盘格式(universal disk format,UDF)等。具体地,文件系统132可以执行日志,该日志在突然断电(sudden power off,SPO)事件或系统崩溃期间保持主机存储器130上的数据的一致性(例如,文件和/或数据一致性)。
文件系统132可以用于生成元数据(metadata,MDS)327,MDS 327管理非易失性存储400中的用户数据的存储和/或检索。文件系统132可将MDS 327存储在主机存储器130中。
I/O调度器133可以存在于块层中。I/O调度器133可以从文件系统132接收各种I/O请求,并且可以将接收到的I/O请求存储到调度器队列134。I/O调度器133可以管理调度器队列134。块调度器133可以合并I/O请求,或者可以调整I/O请求的顺序(重新排序)。
设备驱动器135是作为内核的一部分操作的程序,用于控制诸如存储设备200的硬件设备。设备驱动器135可以从调度器队列134移除I/O请求,并且可以生成用于控制存储设备200的命令。设备驱动器135可以处理调度器队列134的I/O请求。例如,设备驱动器135可以是以块为基础执行与存储设备200有关的数据输入和/或输出功能的块设备。在其他实施例中,除了图3所示的程序和/或软件层之外,其他程序和/或软件层可以加载到主机存储器130。
图4是进一步示出根据一些示例实施例的图1的存储控制器300的框图。
参照图4,存储控制器300可以包括处理器310(例如,CPU)、SRAM 320、纠错码(error correction code,ECC)引擎330、主机接口340、ROM 360、非易失性存储器接口350和/或总线315。
总线315可以指与处理器310、SRAM 320、ECC引擎330、主机接口340、迁移管理器360和存储控制器300的非易失性存储器接口350交换数据的传输信道。控制器310可以执行用于主机设备100和非易失性存储器设备
Figure BDA0002804393350000081
Figure BDA0002804393350000082
之间的数据交换的操作。
主机接口340连接到主机设备100,并且非易失性存储器接口350连接到非易失性存储器设备
Figure BDA0002804393350000083
处理器310可以经由主机接口340与主机设备100通信。主机接口340可以使用但不限于SATA接口、并行高级技术附件(Parallel Advanced TechnologyAttachment,PATA)接口、USB或SAS接口、eMMC接口、UFS接口和/或eMMC接口来实现。
处理器310可以通过非易失性存储器接口350与非易失性存储器设备
Figure BDA0002804393350000084
通信。非易失性存储器接口350可以连接到非易失性存储器设备
Figure BDA0002804393350000085
中的每一个。
ECC引擎330可以在写入操作期间使用各种引擎生成用于从主机设备100接收的写入数据的纠错码(ECC)。在读取操作期间,ECC引擎330可以对从非易失性存储器设备400a至400k检索的读取数据执行错误检测和错误纠正,以将数据提供(或返回)给主机设备100。
SRAM 320可存储元数据327、映射表325和固件329。映射表325可存储将从主机设备100接收的逻辑地址与用于在非易失性存储器设备
Figure BDA0002804393350000086
Figure BDA0002804393350000087
中指定存储器位置的物理地址相关联的映射信息。
处理器310可以通过组合元数据集327和固件329来控制对非易失性存储器设备
Figure BDA0002804393350000088
的访问。ROM 360可以将用于操作存储控制器300的信息存储为固件。
图5是示出根据一些示例实施例的可以用于访问图1的非易失性存储400的信道和路径的一种可能的布置的概念图。
参照图1和图5,非易失性存储器设备
Figure BDA0002804393350000089
可以不同地连接到信道组
Figure BDA00028043933500000810
中的一个。例如,非易失性存储器设备
Figure BDA00028043933500000811
Figure BDA00028043933500000812
可以不同地连接到信道组
Figure BDA00028043933500000813
中的一个以形成路径;即,
Figure BDA00028043933500000814
其中,“m”是大于2的自然数。也就是说,相应的“m”个非易失性存储器设备
Figure BDA00028043933500000815
可以包括在信道组
Figure BDA00028043933500000816
中的每一个的“m”个路径中。
这里,路径表示划分共享相同信道的非易失性存储器设备的单元。因此,可以根据信道号和路径号来具体地标识每个非易失性存储器设备。
图6、图7和图8分别是进一步示出根据示例实施例的图1的存储设备200的非易失性存储400在一个示例中的框图。图7是示出了存储在图1的存储设备200中的文件的示例性结构的示图,以及图9是示出了根据示例实施例的图8的节点地址表在一个示例中的又一个示图。
参照图1、图6、图7和图8,可以如图6所示配置存储设备200中的非易失性存储400。也就是说,分段(SEGMENT)53可以包括多个块(BLK)51,节(SECTION)55包括多个分段53,并且区(ZONE)57包括多个节55。
例如,由于分段53包括512个块51,因此块51的大小可以是4K字节,并且分段53的大小可以是2M字节。这种配置可以在对存储设备200进行格式化期间确定,但不限于此。
存储在存储设备200中的文件可以具有如图7所示的索引结构。一个文件可以包括多个数据单元和多个对应的节点。数据块70是存储数据的区域,并且节点块80、81至88和91至95是存储节点的区域。
节点块80、81至88和91至95可以包括直接节点块81至88、间接节点块91至95和索引节点(inode)块80。在图8中,直接节点块81至88用阴影表示,间接节点块91至95用阴影线表示。
直接节点块81至88可以包括直接指向数据块70的数据指针。间接节点块91至95可以包括指向不是数据块70的其他节点块(即,下层节点块)83至88的指针。间接节点块91至95可以包括例如第一间接节点块91至94和第二间接节点块95。第一间接节点块91至94包括指向直接节点块83至88的第一节点指针,并且第二间接节点块95包括指向第一间接节点块93和94的第二节点指针。
索引节点块80可以包括指向直接节点块81和82的第一节点指针、指向第一间接节点块91和92的第二节点指针以及指向第二间接节点块95的第三节点指针中的至少一个数据指针。一个文件的最大大小为(例如)3太字节,这个大容量文件可以具有以下索引结构。例如,在索引节点块80中提供994个数据指针,并且这994个数据指针可以指向994个数据块70。提供两个第一节点指针,并且这两个第一节点指针中的每一个可以指示两个直接节点块81和82。提供两个第二节点指针,并且这两个第二节点指针可以指示两个第一间接节点块91和92。提供一个第三节点指针,并且这个第三节点指针可以指示第二间接节点块95。
索引节点页还可以按文件包括索引节点元数据。
如图8所示,存储设备200可以划分为第一区域RG1和第二区域RG2。文件系统132通常在格式化期间将存储设备200划分为第一区域RG1和第二区域RG2,但是不限于此。第一区域RG1是旨在存储各种系统级别信息的区域,并且可以包括(例如)关于当前分配的多个文件、多个有效页以及相关联的位置的信息。第二区域RG2是旨在存储用户数据的各种目录信息和相关文件信息的区域。
第一区域RGl可以包括超级块61和62、检查点区域(CP)63、分段信息表(SIT)64、节点地址表(NAT)65和分段概要区域(SSA)66。超级块61和62可以存储文件系统132的默认信息,例如块51的大小、块51的数量、状态标志(干净、稳定、活动、记录(logging)和未知)。如图所示,可以提供两个超级块61和62,并且相同的内容可以存储在各个超级块中。因此,在两个超级块中的一个发生缺陷的情况下,另一个可以用作备份。
检查点存储在检查点区域63中。检查点对应于存储系统10的逻辑断点,并且它存储系统直到断点为止的状态。因此,如果在存储系统10的操作期间发生系统故障或突然断电,则文件系统132可以使用检查点来恢复数据。可以响应于用户命令和/或在系统关闭时,(例如)周期性地生成这种检查点,但是不限于此。
如图9所示,节点地址表65包括与各个节点相对应的多个节点标识符(NODE ID)和与多个节点标识符相对应的多个物理地址。
例如,与节点标识符N0相对应的节点块可以对应于物理地址“a”,与节点标识符N1相对应的节点块可以对应于物理地址“b”,并且与节点标识符N2相对应的节点块可以对应于物理地址“c”。所有节点(包括索引节点、直接节点和间接节点)都可以具有固有的节点标识符。换句话说,可以从节点地址表65为所有节点分配固有节点标识符。因此,节点地址表65存储索引节点的节点标识符、直接节点的节点标识符以及间接节点的节点标识符。可以容易地更新与各个节点标识符相对应的各个物理地址。
分段信息表64包括用于每个分段的多个有效页和用于多个页的位图。位图例如使用“0”或“1”指示每个页是否有效。分段信息表64可以在各种内务任务(例如,垃圾收集)期间使用。位图的使用可以在执行内务任务时减少不必要的读取请求,还可以在自适应数据记录期间用于分配块。
分段概要区域66是存储第二区域RG2的每个分段的概要信息的区域。具体地,分段概要区域66存储第二区域RG2的每个节点的信息。分段概要区域66可以在内务任务期间使用。
节点块80、81至88和91至95具有节点标识符列表或地址,以确认数据块70或下层节点块(例如,直接节点块)的位置。相反,分段概要区域66提供索引,由此数据块70或下层节点块80、81至88和91至95可以确认上层节点块80、81至88和91至95的地点(或位置)。分段概要区域66包括多个分段概要块,其中,每个分段概要块具有关于位于第二区域RG2中的一个分段的信息。此外,分段概要块包括多个概要信息单元,并且一个概要信息单元对应于一个数据块或一个节点块。
第二区域RG2还包括彼此分离的数据分段DS0和DS1以及节点分段NS0和NS1。数据可以存储在数据分段DS0和DS1中,并且多个节点可以存储在节点分段NS0和NS1中。在数据和节点分离在不同区域中的情况下,可以有效地管理分段,并且可以在较短的时间间隔内更有效地检索数据。
第二区域RG2可以是通过顺序访问方法写入的区域,并且第一区域RG1可以是通过随机访问方法写入的区域。
另外,第二区域RG2可以包括数据块,并且第一区域RG1可以包括索引节点列表。
图10是示出可由图3的文件系统生成的元数据结构的一个可能示例的概念图。
参照图10,元数据集327可以包括各种数据字段,例如,文件名371、创建日期372、最后修改日期373、最后访问日期374、文件类型375(例如,可运行、文档、文本文件或其他)、文件大小376、存储文件的容器377、文件的所有者378和删除日期379。这里,术语“日期”用于表示日历日期和/或时间。
图11A、图11B和图11C是示出根据一些示例实施例的图1的存储系统的操作的一种可能方法的框图。
图11A示出响应于从主机设备100接收的写入请求执行写入操作的示例。因此,主机设备100可以向存储设备200提供写入请求REQ、用户数据DATA以及由文件系统132生成的元数据327。然后,存储设备200将用户数据存储在第二区域中,并将元数据327存储在非易失性存储器设备200a的第一区域中(511)。
图11B示出了响应于从主机设备100接收的对用户数据的读取请求执行读取操作的示例。因此,主机设备100向存储设备200提供读取请求REQ和索引节点的地址信息INDINF,以存储与用户数据关联的相关元数据。
存储控制器300响应于读取请求REQ和索引节点的地址信息INDINF将元数据327从非易失性存储器设备200a的第一区域加载到缓冲存储器220(513),如加载到缓冲存储器220的元数据集327所指示地搜索存储有与用户数据(或用户数据的一部分)相对应的目标数据的物理页的物理地址,访问物理地址,并向主机设备100提供与用户数据相对应的目标数据。
以这种方式,主机设备100可以通过向存储设备200提供存储与所请求的用户数据相关联的元数据的索引节点的地址信息INDINF而不是通过向存储设备200提供与目标数据相关联的逻辑地址,来减少主机设备100与存储设备200之间的I/O开销。
图11C示出了图1的存储设备200更新元数据的示例。因此,当存储控制器300希望更新加载到缓冲存储器220的元数据327时,存储控制器300可以首先更新缓冲存储器220中的元数据,然后定期或以其他方式将更新的元数据MDS’刷新(flush)到非易失性存储设备200a(515)。
另外,存储控制器300可以将更新的元数据集MDS’发送到主机设备100,以便维持元数据的一致性(517)。例如,存储控制器300可以在主机设备100和存储设备200的空闲时间期间将更新的元数据MDS’发送到主机设备100。
图12是示出在图1的存储设备10中的存储控制器300和非易失性存储器设备4000a之间的一种可能的连接关系的框图。
参照图12,非易失性存储器设备400a可以在存储控制器300的控制下执行擦除操作、编程操作和/或写入操作。非易失性存储器设备400a可以通过各种I/O线从存储控制器300接收命令CMD、地址ADDR和用户数据DATA,以执行这种操作。
另外,非易失性存储器设备400a可以从存储控制器300通过控制线接收控制信号CTRL,并通过电力线来接收电力信号PWR。另外,非易失性存储器设备400a可以通过控制线向存储控制器300提供状态信号RnB。
图13是进一步示出根据一些示例实施例的图12的非易失性存储器设备400a的框图。
参照图13,非易失性存储器设备400a包括存储器单元阵列420、地址解码器450、页缓冲电路430、数据I/O电路440、控制电路460和电压生成器470。
存储器单元阵列420可以通过串选择线SSL、多个字线WL和接地选择线GSL耦合到地址解码器450。另外,存储器单元阵列420可以通过多个位线BL耦合到页缓冲电路430。
存储器单元阵列420可以包括耦合到多个字线WL和多个位线BL的多个存储器单元。
在一些示例实施例中,存储器单元阵列420可以是或包括三维存储器单元阵列,其以三维结构(例如,垂直结构)形成在衬底上。在这种情况下,存储器单元阵列420可以包括垂直定向的垂直单元串,使得至少一个存储器单元位于另一存储器单元上方。
在一些示例实施例中,存储器单元阵列420可以是或包括二维存储器单元阵列,其以二维结构(或水平结构)形成在衬底上。
图14是进一步示出图13的非易失性存储器设备400a的存储器单元阵列420的框图。
参照图14,存储器单元阵列420可以包括多个存储器块BLK1至BLKz。存储器块BLK1至BLKz沿第一至第三方向D1、D2和D3延伸。在一些示例实施例中,由图6的地址解码器450选择存储器块BLK1至BLKz。例如,地址解码器450可以在存储器块BLK1至BLKz中选择与块地址相对应的存储器块BLK。
图15是进一步示出图14的存储器块BLKi中的一个的电路图。
图15的存储器块BLKi可以以三维结构(或垂直结构)形成在衬底SUB上。例如,存储器块BLKi中包括的多个存储器单元串可以在垂直于衬底SUB的方向PD上形成。
参照图15,存储器块BLKi可以包括耦合在位线BL1、BL2和BL3与公共源极线CSL之间的存储器单元串NS11至NS33。存储器单元串NS11至NS33中的每一个可以包括串选择晶体管SST、多个存储器单元MC1至MC8以及接地选择晶体管GST。在图15中,存储器单元串NS11至NS33中的每一个被示出为包括八个存储器单元MC1至MC8。然而,本发明构思不限于此。在一些示例实施例中,存储器单元串NS11至NS33中的每一个可以包括任意数量的存储器单元。
串选择晶体管SST可以连接到对应的串选择线SSL1至SSL3。多个存储器单元MC1至MC8可以分别连接到对应的字线WL1至WL8。接地选择晶体管GST可以连接到对应的接地选择线GSL1至GSL3。串选择晶体管SST可以连接到对应的位线BL1、BL2和BL3,并且接地选择晶体管GST可以连接到公共源极线CSL。
具有相同高度的字线(例如,WL1)可以被共同地连接,并且接地选择线GSL1至GSL3和串选择线SSL1至SSL3可以被分离。在图15中,存储器块BLKi被示出为耦合到八个字线WL1至WL8和三个位线BL1至BL3。然而,本发明构思不限于此。在一些示例实施例中,存储器单元阵列420可以耦合到任何数量的字线和位线。
图16在一个示例中进一步示出了图15的存储器块中的单元串CS的结构。
参照图15和图16,在衬底SUB上设置柱(pillar)PL,使得柱PL在与衬底SUB垂直的方向上延伸以与衬底SUB接触。图16所示的接地选择线GSL、字线WL1至WL8和串选择线SSL中的每一个可以由导电材料(例如,金属材料)与衬底SUB平行地形成。柱PL可以通过形成串选择线SSL、字线WL1至WL8和接地选择线GSL的导电材料与衬底SUB接触。
在图16中还示出了沿线A-A'截取的截面图。在一些示例实施例中,示出了与第一字线WL1相对应的第一存储器单元MC1的截面图。柱PL可以包括圆柱形主体BD。可以在主体BD的内部限定气隙AG。
主体BD可以包括P型硅,并且可以是将形成沟道(channel)的区域。柱PL可以进一步包括围绕主体BD的圆柱形隧道绝缘层TI和围绕隧道绝缘层TI的圆柱形电荷阱层CT。可以在第一字线WL和柱PL之间设置阻挡绝缘层BI。主体BD、隧道绝缘层TI、电荷阱层CT、阻挡绝缘层BI和第一字线WL可以构成或包括在电荷阱型晶体管中,该电荷阱型晶体管沿垂直于衬底SUB或垂直于衬底SUB的上表面的方向形成。串选择晶体管SST、接地选择晶体管GST和其他存储器单元可以具有与第一存储器单元MC1相同的结构。
返回参照图13,控制电路460可以从存储控制器300接收命令信号CMD和地址ADDR,并且可以响应于命令信号CMD和地址信号ADDR来控制非易失性存储器设备411的擦除循环、编程循环和/或读取操作。编程循环可以包括编程操作和编程验证操作。擦除循环可以包括擦除操作和擦除验证操作。
例如,控制电路460可以响应于命令信号CMD生成用于控制电压生成器470的控制信号CTL,并且响应于地址信号ADDR生成行地址R_ADDR和列地址C_ADDR。控制电路460可以将行地址R_ADDR提供给地址解码器450,并且将列地址C_ADDR提供给数据I/O电路440。
地址解码器450可以通过串选择线SSL、多条字线WL和接地选择线GSL耦合到存储器单元阵列420。在编程操作或读取操作期间,地址解码器450可以基于行地址R_ADDR将多个字线WL中的一个确定为第一字线(例如,所选字线),并且将除第一字线之外的多个字线WL中的其余字线确定为未选字线。
电压生成器470可以响应于控制信号CTL生成非易失性存储器设备411的操作所需的字线电压VWL。电压生成器470可以从存储控制器300接收电力PWR。字线电压VWL可以通过地址解码器450施加到多个字线WL。
例如,在擦除操作期间,电压生成器470可以将擦除电压施加到存储器块的阱,并且可以将接地电压施加到存储器块的整个字线。在擦除验证操作期间,电压生成器470可以将擦除验证电压施加到存储器块的整个字线,或者以字线为基础顺序地将擦除验证电压施加到字线。
例如,在编程操作期间,电压生成器470可以将编程电压施加到第一字线,并且可以将编程通过电压(program pass voltage)施加到未选字线。另外,在编程验证操作期间,电压生成器470可以将编程验证电压施加到第一字线,并且可以将验证通过电压施加到未选字线。
此外,在读取操作期间,电压生成器470可以将读取电压施加到第一字线,并且可以将读取通过电压施加到未选字线。
页缓冲器电路430可以通过多条位线BL耦合到存储器单元阵列420。页缓冲器电路430可以包括多个页缓冲器。在一些示例实施例中,一个页缓冲器可以连接到一个位线。在一些示例实施例中,一个页缓冲器可以连接到两个或更多个位线。
页缓冲器电路430可以临时存储要在所选页中编程的数据或从所选页读出的数据。
数据I/O电路440可以通过数据线DL耦合到页缓冲电路430。在编程操作期间,数据I/O电路440可以基于从控制电路460接收的列地址C_ADDR,从存储控制器300接收数据DATA,并且将数据DATA提供给页缓冲电路430。
在读取操作期间,数据I/O电路440可以基于从控制电路460接收的列地址C_ADDR,将存储在页缓冲电路430中的数据DATA提供给存储控制器300。
另外,页缓冲电路430和数据I/O电路440从存储器单元阵列420的第一区域读取数据,并将读取的数据写入存储器单元阵列420的第二区域。页缓冲电路430和数据I/O电路440可以执行回写(copy-back)操作。控制电路460可以控制页缓冲电路430和数据I/O电路440。
控制电路460可以包括状态信号生成器465,并且状态信号生成器465可以生成状态信号RnB,该状态信号RnB指示编程操作、擦除操作和读取操作中的每一个是否完成和/或正在进行。
图17概念性地示出了根据一些示例实施例的响应于请求在图1的存储系统10中执行的一系列连续读取操作。
参照图17,当标识目标数据的逻辑地址是非连续的时,主机设备100可以将读取请求和索引节点(INODE)的地址信息逻辑块地址(logical block address,LBA)发送到存储设备200(611)。存储设备200响应于读取请求和INODE的LBA,加载元数据327(MAP LOAD,621),然后通过参考元数据327从连续地存储目标数据的一系列非连续物理页中读取目标数据(622、623、624和625)。
图18示出了图1的存储设备10的存储控制器300更新存储的元数据的示例。
参照图18,第一映射表MTa存储在连续的逻辑页LPN0、LPN1、LPN2和LPN3与具有非连续物理地址的第一物理页PPN0、PPN2、PPN4和PPN6之间的当前映射信息。这里,当前假定目标数据存储在非连续物理页PPN0、PPN2、PPN4和PPN6中。在这种情况下,存储控制器300可以更新第一映射表MTa以创建第二映射表MTb,该第二映射表MTb存储在连续的逻辑页LPN0、LPN1、LPN2和LPN3与具有连续物理地址的第二物理页PPN40、PPN41、PPN42和PPN43之间的更新的映射信息。这里,第一映射表MTa和第二映射表MTb可以是映射表的不同版本(例如,当前或旧版本以及更新或新版本),该映射表可以是更大的元数据集的一部分,其映射非易失性存储400中的物理地址和与物理地址相对应的逻辑地址。
因此,存储控制器300可以更新与目标数据相关联的元数据,使得目标数据将存储在具有连续物理地址的第二物理页PPN40、PPN41、PPN42和PPN43中,并且第二物理页PPN40、PPN41、PPN42和PPN43与连续的逻辑页LPN0、LPN1、LPN2和LPN3相对应。
图19概念性地示出了图4的存储控制器300可以通过参考图10的元数据结构来确定数据属性的方法。
例如,存储控制器300可以通过参考对应的元数据327的访问日期374来确定所请求的用户数据(即,目标数据)是热数据(hot data)还是冷数据(cold data)。也就是说,存储控制器300可以通过(例如)将访问日期374与参考日期进行比较来确定目标数据是热还是冷。
图20概念性地示出了存储控制器300的软件层(710)和非易失性存储400的物理层(720)的、关于元数据327的位图的使用。
参照图20,用户数据可以包括多个子数据SDT0、SDT1、SDT2和SDT3,第一块BLK包括物理页
Figure BDA0002804393350000171
第二块BLK2包括物理页
Figure BDA0002804393350000172
Figure BDA0002804393350000173
并且根据存储在映射表MTa中的信息,逻辑页
Figure BDA0002804393350000174
与各个物理页PPN0、PPN2、PPN4和PPN6相对应。子数据SDT0、SDT1和SDT2存储在第一块BLK1中的各个物理页PPN0、PPN2和PPN4中,子数据SDT3存储在第二块BLK2中的物理页PPN6中。
位图BTM可以被包括为元数据327的一部分,并且可以指示与存储各个子数据SDT0、SDT1、SDT2和SDT3的各个物理页PPN0、PPN2、PPN4和PPN6相对应的逻辑页
Figure BDA0002804393350000175
中的每一个是否作为逻辑电平有效。例如,位图BTM可以使用逻辑“高”指示对应的页有效,并使用逻辑“低”指示对应的页无效。存储控制器300可以通过参考位图BTM来删除子数据SDT3,而不管来自主机设备100的请求。存储控制器300可以通过参考位图BTM来删除用户数据的至少一部分,而不管主机设备100的请求。
另外,存储控制器300可以将与存储用户数据相关联的信道从多个信道中的第一信道改变为第二信道,而不管来自主机设备100的请求。
存储控制器300可以通过使用FTL 305,基于存储元数据集的存储器块的编程/擦除周期,将元数据327从多个非易失性存储器设备中的第一非易失性存储器设备移动到第二非易失性存储器设备。
图21是总结根据一些示例实施例的操作存储设备的方法的流程图。
参照图1至图21,提供了一种操作存储设备200的方法,该存储设备200包括用于存储用户数据(DATA)和与用户数据的管理相关联的元数据327的非易失性存储400(或非易失性存储器NVM)以及控制NVM的存储控制器300。
根据该方法,存储控制器300将由主机设备100提供的元数据327存储在NVM的第一区域中(S110),并且将由主机设备100提供的用户数据存储在NVM的第二区域中(S120)。
存储控制器300从主机设备100接收存储与所标识的目标数据相关联的元数据的索引节点的地址信息(INDINF)(S130)。
存储控制器300响应于索引节点的地址信息INDINF,将相关元数据从NVM加载到缓冲存储器220(S140)。
存储控制器300通过参考元数据访问存储在第二区域中的目标数据(S150),并将目标数据发送到主机设备100。
根据示例实施例,主机设备100可以将与用户数据的管理相关联的元数据(例如,元数据集)存储在存储设备200中的非易失性存储400中,并且存储控制器300可以使用存储在非易失性存储400中的元数据(例如,位置信息)来访问非易失性存储400。因此,存储设备200可以通过减少主机设备100和存储设备200之间的I/O开销来增强性能。
图22是示出根据一些示例实施例的包括存储设备的系统的框图。
参照图22,系统1000包括主机设备2000和存储设备3000。例如,主机设备2000可以是嵌入式多媒体卡(embedded multimedia card,eMMC)、固态驱动器(SSD)或存储设备3000等。
主机设备2000可以被配置为控制数据处理操作,诸如数据读取操作和数据写入操作。
主机设备2000可以包括通过总线20连接的处理器(CPU)2100、主机存储器(HMEM)2200和主机控制器接口(HCI)2300。主机存储器2200可以存储由文件系统生成的元数据集。操作系统(OS)和/或主机固件(FW)2110可以由处理器2100运行。处理器2100可以运行操作系统和主机固件2110以执行这些操作。
主机控制器接口2300可以与存储设备3000相连接。例如,主机控制器接口2300被配置为向存储设备3000发出命令CMD,从存储设备3000接收对命令CMD的响应RES,向存储设备3000发送写入数据,并从存储设备3000接收读取数据。
存储设备3000可以包括多个非易失性存储器设备(NVM)3100和存储控制器3200。
非易失性存储器设备3100可以可选地被提供有外部高压VPP。存储控制器3200可以通过多个信道CH1至CHi连接到非易失性存储器设备3100。存储控制器3200可以包括通过总线30连接的一个或多个处理器CPU 3210、ECC引擎3220、主机接口3230、缓冲存储器3240和非易失性存储器接口3250。
处理器3210被配置为控制存储控制器3200的整体操作。例如,处理器3210可以操作包括FTL的固件3212,并且可以包括其他固件。FTL可以执行各种功能,例如,地址映射、读取校准、错误纠正以及其他功能。
ECC引擎3220可以对写入数据执行ECC编码,并且可以对读取数据执行ECC解码。
主机接口3230可以提供与诸如主机设备2000的外部设备的接口。非易失性存储器接口3250可以提供与非易失性存储器设备3100的接口。主机设备2000和存储设备3000可以通过总线15连接。
缓冲存储器3240可以存储元数据(MDS)。
如上所述,主机设备2000可以在将用户数据存储在非易失性存储器设备3100中时生成元数据集MDS,并且可以将元数据集MDS存储在非易失性存储器设备3100中。当主机设备2000要读取用户数据的至少一部分时,主机设备2000向存储控制器3200提供索引节点的地址信息以存储与用户数据的部分相关联的相关元数据。存储控制器3200基于索引节点的地址信息将元数据集MDS加载到缓冲存储器3240中,并通过参考缓冲存储器3240中的元数据集MDS来访问用户数据的部分。
存储控制器3200可以使用缓冲存储器3240中的元数据集MDS的逻辑信息来访问非易失性存储,从而减少主机设备2000和存储设备3000之间的I/O开销。
图23是示出根据一些示例实施例的移动设备的框图。
参照图23,移动设备4000可以包括应用处理器4100(包括一个或多个应用处理器)、通信模块4200、显示/触摸模块4300、数据存储设备4400和移动RAM 4500。
应用处理器4100控制移动设备4000的操作。通信模块4200被实现为与外部设备执行无线或有线通信。显示/触摸模块4300被实现为显示由应用处理器4100处理的数据和/或通过触摸面板(未示出)接收数据。数据存储设备4400被实现为存储用户数据。
数据存储设备4400可以是嵌入式多媒体卡(eMMC)、固态驱动器(SSD)、通用闪存存储(UFS)设备等。数据存储设备4400可以存储与管理用户数据集相关联的元数据集MDS,并且可以使用元数据集MDS的逻辑信息来访问用户数据。
移动RAM 4500临时存储用于处理移动设备4000的操作的数据。例如,移动RAM4500可以是双倍数据速率(double data rate,DDR)同步DRAM(synchronous DRAM,SDRAM)、低功率DDR(low power DDR,LPDDR)SDRAM、图形DDR(graphics DDR,GDDR)SDRAM、RambusDRAM
Figure BDA0002804393350000201
等。
如上所述,主机设备可以将与用户数据的管理相关联的元数据集存储在非易失性存储中,并且存储控制器300可以使用元数据的位置信息来访问非易失性存储。因此,存储设备可以通过减少主机设备和存储设备之间的I/O开销来增强性能。
本公开可以应用于包括存储设备的各种电子设备。例如,本公开可以应用于诸如移动电话、智能电话、个人数字助理(personal digital assistant,PDA)、便携式多媒体播放器(portable multimedia player,PMP)、数码相机、便携式摄像机、个人计算机(personal computer,PC)、服务器计算机、工作站、膝上型计算机、数字电视、机顶盒、便携式游戏机、导航系统等的系统。前述内容是示例实施例的说明,并且不应解释为对示例实施例的限制。尽管已经描述了一些示例实施例,但是本领域普通技术人员将容易理解,在实质上不脱离本公开的新颖教导和优点的情况下,示例实施例中的许多修改是可能的。因此,所有这样的修改旨在被包括在如权利要求所限定的本公开的范围内。

Claims (20)

1.一种存储设备,包括:
非易失性存储,包括第一区域和第二区域;
存储控制器,被配置为控制所述非易失性存储;和
缓冲存储器,连接到所述存储控制器,
其中,所述存储控制器被配置为将从主机设备接收的包括目标数据的用户数据存储在所述第二区域中,并且将与所述用户数据的管理相关联且由所述主机设备的文件系统生成的元数据存储在所述第一区域中,并且
所述存储控制器还被配置为响应于与所述元数据相关联的索引节点(inode)的地址信息将所述元数据加载到所述缓冲存储器,并使用加载到所述缓冲存储器的所述元数据访问所述第二区域中的所述目标数据。
2.根据权利要求1所述的存储设备,其中,所述元数据包括映射表,所述映射表存储所述非易失性存储中的物理地址与由所述主机设备提供的所述用户数据的逻辑地址之间的映射信息。
3.根据权利要求2所述的存储设备,其中,所述存储控制器被配置为:
使用与所述目标数据相关联的至少一个逻辑地址来引用存储在所述映射表中的物理地址中的至少一个物理地址,
使用所述至少一个物理地址访问所述第二区域中的所述目标数据。
4.根据权利要求1所述的存储设备,其中,所述第二区域包括数据块,并且所述第一区域包括索引节点列表。
5.根据权利要求1所述的存储设备,其中,所述目标数据由所述主机设备使用多个非连续逻辑地址来标识,并且
所述存储控制器还被配置为响应于所述主机设备的单个请求从所述非易失性存储读取所述目标数据。
6.根据权利要求1所述的存储设备,其中,所述存储控制器还被配置为独立于所述主机设备来更新所述缓冲存储器中的所述元数据,并将更新的元数据刷新到所述非易失性存储。
7.根据权利要求1所述的存储设备,其中,所述存储控制器还被配置为通过引用存储在所述缓冲存储器中的元数据来确定存储在所述第二区域中的所述用户数据的属性。
8.根据权利要求7所述的存储设备,其中,当所述目标数据存储在所述非易失性存储中的具有非连续物理地址的第一物理页中时,并且
所述存储控制器还被配置为更新所述元数据,使得所述目标数据存储在所述非易失性存储中的具有连续物理地址的第二物理页中。
9.根据权利要求1所述的存储设备,其中,所述用户数据包括多个子数据,所述元数据包括指示所述多个子数据中的每一个是否有效的位图,并且所述存储控制器还被配置为通过引用所述位图删除所述多个子数据的至少一部分,而不管来自所述主机设备的请求。
10.根据权利要求1所述的存储设备,其中,所述非易失性存储包括经由多个信道连接到所述存储控制器的多个非易失性存储器设备,所述多个非易失性存储器设备中的每一个包括多个存储器块,所述多个存储器块中的至少一个包括NAND串,并且每个NAND串包括顺序地堆叠在衬底上的多个存储器单元。
11.一种存储系统,包括:
主机设备,包括文件系统,并提供包括目标数据的用户数据以及与所述用户数据的管理相关联且由所述文件系统生成的元数据;和
存储设备,包括:
非易失性存储,包括第一区域和第二区域;
存储控制器,被配置为控制所述非易失性存储的操作;和
缓冲存储器,连接到所述存储控制器,
其中,所述存储控制器被配置为将所述用户数据存储在所述第二区域中,并将所述元数据存储在所述第一区域中,并且
所述存储控制器还被配置为响应于与所述元数据相关联的索引节点(inode)的地址信息将所述元数据加载到所述缓冲存储器,并使用加载到所述缓冲存储器的所述元数据访问所述第二区域中的所述目标数据。
12.根据权利要求11所述的存储系统,其中,所述元数据包括映射表,所述映射表存储所述非易失性存储中的物理地址与由所述主机设备提供的所述用户数据的逻辑地址之间的映射信息。
13.根据权利要求12所述的存储系统,其中,所述存储控制器被配置为:
使用与所述目标数据相关联的至少一个逻辑地址来引用存储在所述映射表中的物理地址中的至少一个物理地址,以及
使用所述至少一个物理地址访问所述第二区域中的所述目标数据。
14.根据权利要求11所述的存储系统,其中,所述目标数据由所述主机设备使用多个非连续逻辑地址标识,并且
所述存储控制器还被配置为响应于所述主机设备的单个请求从所述非易失性存储读取目标数据。
15.根据权利要求11所述的存储系统,其中,所述存储控制器还被配置为独立于所述主机设备来更新所述缓冲存储器中的所述元数据,并且将更新的元数据刷新到所述非易失性存储。
16.根据权利要求11所述的存储系统,其中,所述存储控制器还被配置为通过引用存储在所述缓冲存储器中的所述元数据来确定存储在所述第二区域中的所述用户数据的属性。
17.根据权利要求16所述的存储系统,其中,当所述目标数据存储在所述非易失性存储中的具有非连续物理地址的第一物理页中时,并且
所述存储控制器还被配置为更新所述元数据,使得所述目标数据存储在所述非易失性存储中的具有连续物理地址的第二物理页中。
18.根据权利要求17所述的存储系统,其中,所述存储控制器还被配置为在所述存储控制器和所述主机设备的空闲时间期间向所述主机设备发送更新的元数据。
19.根据权利要求11所述的存储系统,其中,所述存储控制器被配置为将与存储所述用户数据相关联的信道从多个信道中的第一信道改变为第二信道,而不管来自所述主机设备的请求。
20.一种操作存储设备的方法,所述存储设备包括:包括第一区域和第二区域的非易失性存储,控制所述非易失性存储的操作的存储控制器以及连接到所述存储控制器的缓冲存储器,所述方法包括:
将从主机设备接收的包括目标数据的用户数据存储在所述第二区域中;
将与所述用户数据的管理相关联且由所述主机设备的文件系统生成的元数据存储在所述第一区域中;
响应于与所述元数据相关联的索引节点(inode)的地址信息,将所述元数据从所述第一区域加载到所述缓冲存储器;以及
使用加载到所述缓冲存储器的所述元数据访问所述第二区域中的所述目标数据。
CN202011362480.8A 2019-12-02 2020-11-27 存储设备、存储系统和操作存储设备的方法 Pending CN112988627A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190158001A KR20210068699A (ko) 2019-12-02 2019-12-02 스토리지 장치, 스토리지 시스템 및 스토리지 장치의 동작 방법
KR10-2019-0158001 2019-12-02

Publications (1)

Publication Number Publication Date
CN112988627A true CN112988627A (zh) 2021-06-18

Family

ID=75896555

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011362480.8A Pending CN112988627A (zh) 2019-12-02 2020-11-27 存储设备、存储系统和操作存储设备的方法

Country Status (4)

Country Link
US (2) US11461041B2 (zh)
KR (1) KR20210068699A (zh)
CN (1) CN112988627A (zh)
DE (1) DE102020115969A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114168075A (zh) * 2021-11-29 2022-03-11 华中科技大学 基于数据关联性提升负载访问性能的方法、设备及系统
CN116955219A (zh) * 2023-09-13 2023-10-27 新华三信息技术有限公司 一种数据镜像方法、装置、主机及存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102365312B1 (ko) 2021-06-17 2022-02-23 삼성전자주식회사 스토리지 컨트롤러, 연산 스토리지 장치, 및 연산 스토리지 장치의 동작 방법
KR102673715B1 (ko) * 2021-07-05 2024-06-10 계명대학교 산학협력단 호스트 커널에 부착되는 솔리드 스테이트 드라이브의 데이터 제어 시스템 및 방법
US20230024420A1 (en) * 2021-07-16 2023-01-26 Samsung Electronics Co., Ltd. Methods and devices for file read latency reduction

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100211750A1 (en) * 2009-02-19 2010-08-19 Satoshi Yamauchi Data Storage Control Apparatus and Data Storage Control Method
US20110022819A1 (en) * 2009-07-24 2011-01-27 Daniel Jeffrey Post Index cache tree
CN109840049A (zh) * 2017-11-24 2019-06-04 三星电子株式会社 数据管理方法和执行其的操作的储存设备
CN109992537A (zh) * 2018-01-02 2019-07-09 爱思开海力士有限公司 存储系统及其操作方法
US20190235779A1 (en) * 2019-04-09 2019-08-01 Intel Corporation Concept for storing file system metadata within solid-stage storage devices

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044205A (en) 1996-02-29 2000-03-28 Intermind Corporation Communications system for transferring information between memories according to processes transferred with the information
US7596639B2 (en) * 2004-09-01 2009-09-29 Lsi Corporation Skip mask table automated context generation
KR101447188B1 (ko) 2007-07-31 2014-10-08 삼성전자주식회사 플래시 메모리에 최적화된 입출력 제어 방법 및 장치
KR101430762B1 (ko) 2008-02-29 2014-08-18 한양대학교 산학협력단 비휘발성 랜덤 액세스 메모리를 이용한 스토리지 시스템,파일 시스템 및 데이터 관리 방법 그리고 기억장치
US8290996B2 (en) 2010-07-30 2012-10-16 International Business Machines Corporation Data sharing for file clones using reverse ditto references
KR101795629B1 (ko) * 2011-02-15 2017-11-13 삼성전자주식회사 호스트에서 파일 시스템 관리 방법 및 상기 방법을 수행할 수 있는 장치들
US10019451B2 (en) 2011-09-29 2018-07-10 Quantum Corporation Path lookup in a hierarchical file system
KR101962786B1 (ko) * 2012-03-23 2019-03-27 삼성전자주식회사 불휘발성 메모리 장치, 메모리 시스템 및 그것의 프로그램 방법
KR101977575B1 (ko) 2012-09-28 2019-05-13 삼성전자 주식회사 디렉토리 엔트리 조회 장치, 그 방법 및 디렉토리 엔트리 조회 프로그램이 기록된 기록 매체
US9652376B2 (en) * 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US9575884B2 (en) * 2013-05-13 2017-02-21 Qualcomm Incorporated System and method for high performance and low cost flash translation layer
CN103500076A (zh) * 2013-10-13 2014-01-08 张维加 一种基于多通道slc nand与dram缓存的新usb协议计算机加速设备
KR102254392B1 (ko) * 2014-05-12 2021-05-25 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템
KR101674176B1 (ko) 2014-07-24 2016-11-08 성균관대학교산학협력단 파일 단위 순서 모드 저널링 기법을 이용한 fsync 시스템 호출 처리 장치 및 방법
US10372684B2 (en) 2015-01-09 2019-08-06 Quantum Corporation Metadata peering with improved inodes
KR102506135B1 (ko) * 2015-03-16 2023-03-07 삼성전자주식회사 데이터 저장 장치와 이를 포함하는 데이터 처리 시스템
US10552058B1 (en) * 2015-07-17 2020-02-04 Radian Memory Systems, Inc. Techniques for delegating data processing to a cooperative memory controller
JP6604115B2 (ja) 2015-09-25 2019-11-13 富士通株式会社 ストレージ装置およびストレージ制御プログラム
US10261705B2 (en) * 2016-12-15 2019-04-16 Alibaba Group Holding Limited Efficient data consistency verification for flash storage
US11461287B2 (en) * 2017-10-26 2022-10-04 EMC IP Holding Company LLC Managing a file system within multiple LUNS while different LUN level policies are applied to the LUNS
CN107844431B (zh) * 2017-11-03 2022-01-25 合肥兆芯电子有限公司 映射表更新方法、存储器控制电路单元与存储器存储装置
US20190034427A1 (en) 2017-12-28 2019-01-31 Intel Corporation Data management system employing a hash-based and tree-based key-value data structure
KR20200144582A (ko) * 2018-05-18 2020-12-29 마이크론 테크놀로지, 인크. 관리형 nand 디바이스에서의 호스트 가속 작동
US10783120B1 (en) * 2018-06-28 2020-09-22 Amazon Technologies, Inc. Service-based storage synchronization
TWI693516B (zh) * 2018-11-13 2020-05-11 群聯電子股份有限公司 映射表更新方法、記憶體控制電路單元與記憶體儲存裝置
US11226907B2 (en) * 2018-12-19 2022-01-18 Micron Technology, Inc. Host-resident translation layer validity check techniques
US11301369B2 (en) * 2019-01-24 2022-04-12 Western Digital Technologies, Inc. Logical to physical mapping management using low-latency non-volatile memory
JP2020154603A (ja) * 2019-03-19 2020-09-24 キオクシア株式会社 メモリシステム
US11175856B2 (en) * 2019-11-08 2021-11-16 Micron Technology, Inc. Background operation selection based on host idle time

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100211750A1 (en) * 2009-02-19 2010-08-19 Satoshi Yamauchi Data Storage Control Apparatus and Data Storage Control Method
US20110022819A1 (en) * 2009-07-24 2011-01-27 Daniel Jeffrey Post Index cache tree
CN109840049A (zh) * 2017-11-24 2019-06-04 三星电子株式会社 数据管理方法和执行其的操作的储存设备
CN109992537A (zh) * 2018-01-02 2019-07-09 爱思开海力士有限公司 存储系统及其操作方法
US20190235779A1 (en) * 2019-04-09 2019-08-01 Intel Corporation Concept for storing file system metadata within solid-stage storage devices

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114168075A (zh) * 2021-11-29 2022-03-11 华中科技大学 基于数据关联性提升负载访问性能的方法、设备及系统
CN114168075B (zh) * 2021-11-29 2024-05-14 华中科技大学 基于数据关联性提升负载访问性能的方法、设备及系统
CN116955219A (zh) * 2023-09-13 2023-10-27 新华三信息技术有限公司 一种数据镜像方法、装置、主机及存储介质
CN116955219B (zh) * 2023-09-13 2024-01-19 新华三信息技术有限公司 一种数据镜像方法、装置、主机及存储介质

Also Published As

Publication number Publication date
US20220413754A1 (en) 2022-12-29
US11461041B2 (en) 2022-10-04
KR20210068699A (ko) 2021-06-10
US11875055B2 (en) 2024-01-16
DE102020115969A1 (de) 2021-06-02
US20210165604A1 (en) 2021-06-03

Similar Documents

Publication Publication Date Title
CN111352581B (zh) 在存储设备中写入数据的方法、存储设备、和存储系统
US11875055B2 (en) Storage device that receives inode address information to reduce external communication overhead
US10216578B2 (en) Data storage device for increasing lifetime and RAID system including the same
US11487630B2 (en) Storage device and data processing method thereof
US10289340B2 (en) Coalescing metadata and data writes via write serialization with device-level address remapping
CN114730300B (zh) 对区命名空间存储器的增强型文件系统支持
KR102585883B1 (ko) 메모리 시스템의 동작 방법 및 메모리 시스템
US10120606B2 (en) Data storage devices including storage controller circuits to select data streams based on application tags and computing systems including the same
KR20190056211A (ko) 가비지 컬렉션 방법, 이를 수행하는 저장 장치 및 이를 포함하는 컴퓨팅 시스템
CN110968522B (zh) 存储器系统及其操作方法、包括存储器系统的数据库系统
JP2019125366A (ja) バリアーコマンドに基づいてデータを順に格納するストレージ装置
CN113900584A (zh) 存储器系统、存储器控制器以及操作存储器系统的方法
KR20200019421A (ko) 메모리 시스템 내 대용량 데이터 저장이 가능한 블록에서의 유효 데이터 체크 방법 및 장치
KR20200011832A (ko) 메모리 시스템에서의 데이터 처리 방법 및 장치
US11762572B2 (en) Method of operating storage device and method of operating storage system using the same
US20220398045A1 (en) Addressing zone namespace and non-zoned memory based on data characteristics
KR101008032B1 (ko) 메타 데이터 관리 시스템 및 방법
KR20200087487A (ko) 메모리 시스템에서의 유효 데이터 체크 방법 및 장치
US11256418B2 (en) Logical address history management in memory device
KR20200113990A (ko) 메모리 시스템 내 메모리 장치의 동작 상태를 확인하는 방법 및 장치
US20230205427A1 (en) Storage device including memory controller and operating method of the same
KR102497213B1 (ko) 안전 삭제를 수행하는 컨트롤러, 이를 포함하는 키-밸류 스토리지 장치 및 키-밸류 스토리지 장치의 동작방법
EP4180935A1 (en) Operation methods of storage devices, and operation methods of storage systems including hosts and storage devices
US11237738B2 (en) Managing operation of a data storage system with reservation of metadata space
KR20220159270A (ko) 스토리지 장치 및 그 동작 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination