CN114077391A - 存储系统、存储系统的控制器及存储系统的操作方法 - Google Patents

存储系统、存储系统的控制器及存储系统的操作方法 Download PDF

Info

Publication number
CN114077391A
CN114077391A CN202110614630.8A CN202110614630A CN114077391A CN 114077391 A CN114077391 A CN 114077391A CN 202110614630 A CN202110614630 A CN 202110614630A CN 114077391 A CN114077391 A CN 114077391A
Authority
CN
China
Prior art keywords
metadata
data
overwrite
controller
memory
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
CN202110614630.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 CN114077391A publication Critical patent/CN114077391A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7206Reconfiguration of flash memory system

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

提供了执行盖写的存储系统、所述存储系统的控制器及所述存储系统的操作方法。所述存储系统包括存储器件;和控制器,所述控制器被配置为:从所述主机系统接收新数据和盖写请求,其中,所述盖写请求包括用于旧数据的第一逻辑地址和用于所述新数据的与所述第一逻辑地址不同的第二逻辑地址;以及响应于所述盖写请求,通过将对应于所述第二逻辑地址的所述新数据写入所述存储器件并使对应于所述第一逻辑地址的所述旧数据无效来执行盖写操作。

Description

存储系统、存储系统的控制器及存储系统的操作方法
相关申请的交叉引用
本申请要求于2020年8月11日在韩国知识产权局提交的韩国专利申请No.10-2020-0100739的优先权,其主题通过引用合并于此。
技术领域
本发明构思总体上涉及存储系统,并且更具体地,涉及执行盖写(overwrite)操作的存储系统。本发明构思还涉及控制这种存储系统的主机系统以及存储系统的操作方法。
背景技术
在更新数据时,诸如Ext4(即,Linux的日志文件系统和第4代扩展文件系统)的文件系统会在旧数据的原始位置盖写数据。这种方法被称为原位(in-place)更新。相比之下,日志结构文件系统(LFS)使用非原位(out-of-place)更新方法,其中旧数据被无效,并且新数据写入的位置与旧数据的原始位置不同。
因为在数据更新期间在LFS中旧数据的逻辑地址与新数据的逻辑地址不同,所以相对于包括新数据的地址的写入请求,旧数据不会被无效。结果,需要额外的操作来使旧数据无效。执行这种额外的无效操作会浪费存储系统资源,并且占用宝贵的主机系统周期。
发明内容
本发明构思的实施例提供了基于包括在写入命令中的信息来高效地执行旧数据的无效和新数据的写入的存储系统。本发明构思的实施例还提供了能够控制这种存储系统的主机系统以及用于这种存储系统的操作方法。
根据本发明构思的一方面,提供了一种被配置为与主机系统通信的存储系统。所述存储系统包括:存储器件;和控制器,所述控制器被配置为:从所述主机系统接收新数据和盖写请求,其中,所述盖写请求包括用于旧数据的第一逻辑地址和用于所述新数据的与所述第一逻辑地址不同的第二逻辑地址;以及响应于所述盖写请求,通过将对应于所述第二逻辑地址的所述新数据写入所述存储器件并使对应于所述第一逻辑地址的所述旧数据无效来执行盖写操作。
根据本发明构思的一方面,提供了一种用于被配置为与主机系统通信存储系统的控制器,所述控制器被配置为:从所述主机系统接收新数据和盖写请求,其中,所述盖写请求包括用于旧数据的第一逻辑地址和用于所述新数据的与所述第一逻辑地址不同的第二逻辑地址;以及响应于所述盖写请求,通过将对应于所述第二逻辑地址的所述新数据写入存储器件并使对应于所述第一逻辑地址的所述旧数据无效来执行盖写操作。
根据本发明构思的一方面,提供了一种被配置为与主机系统通信的存储系统的操作方法。所述操作方法包括:从所述主机系统接收新数据和与文件更新请求相对应的盖写请求,其中,所述盖写请求包括用于旧数据的第一逻辑地址和用于所述新数据的与所述第一逻辑地址不同的第二逻辑地址;响应于所述盖写请求,将与所述第二逻辑地址相对应的所述新数据写入所述存储系统的存储器件;以及作为对响应于所述盖写请求而执行的盖写操作的响应,根据用于所述旧数据和所述新数据的元数据来更新所述元数据。
附图说明
通过考虑以下结合附图的详细描述,可以更清楚地理解本发明构思的实施例,其中:
图1是根据本发明构思的实施例的数据处理系统的框图;
图2是在一个示例中进一步示出图1的存储器控制器210的框图;
图3是示出根据本发明构思的实施例的数据字段的示例的概念图;
图4是概述根据本发明构思的实施例的可以在数据处理系统中使用的数据写入操作的流程图;
图5和图8是示出根据本发明构思的实施例的数据处理系统的操作示例的各个概念图;
图6和图7是概述根据本发明构思的实施例的可以在数据处理系统中使用的盖写入操作的流程图;
图9是示出根据本发明构思的实施例的数据处理系统的框图;
图10是示出根据本发明构思的实施例的使用存储设备的系统的框图;
图11是示出根据本发明构思的实施例的通用闪存(UFS)系统的框图;
图12是示出根据本发明构思的实施例的存储系统的框图;
图13是示出根据本发明构思的实施例的存储系统的框图;和
图14是示出根据本发明构思的实施例的可应用于UFS设备的接合垂直NAND(B-VNAND)结构的截面图。
具体实施方式
在下文中,将参照附图更详细地描述本发明构思的某些实施例。在整个说明书和附图中,相同的附图标记和标签用于表示相同或相似的元件和/或特征。
图1是示出根据本发明构思的实施例的数据处理系统10的框图,并且图2是在一个示例中进一步示出图1的存储器控制器210的框图。
参照图1,数据处理系统10总体上可以包括主机系统100和存储系统200。存储系统200可以包括存储器控制器210和存储器件220。主机系统100可以向存储系统200提供数据写入请求、数据读取请求和/或数据擦除请求。在从主机系统100接收到数据擦除请求时,存储系统200可以对主机系统100指定的区域中的数据执行擦除操作。
主机系统100可以包括文件系统,其中,文件系统处理输入数据,使得输入数据存储在存储系统200中的特定逻辑或物理位置。即,当主机系统100通过用户应用(未示出)接收到数据时,主机系统100可以使用文件系统处理数据,然后将数据存储在存储系统200中。
在一些实施例中,文件系统可以包括日志结构文件系统(LFS)110,例如,基于闪存特性为Linux内核设计的闪存友好文件系统(F2FS),或作为与NOR闪存器件有关的LinuxLFS的日记闪存文件系统(JFFS)。然而,本发明构思的范围不限于LFS,而是可以应用于在更新文件时能够将新数据写入到与旧数据的地址不同的地址(例如,不同的逻辑地址)的任何文件系统。
参照图1和图2,存储器控制器210可以包括管理元数据218的元数据管理器214。这里,元数据218可以包括用于将逻辑地址转换成对应的物理地址以访问存储在存储器件220中的信息的映射信息。
存储系统200可以包括用于在主机系统100的请求下存储数据的存储介质。例如,存储系统200可以包括至少一个固态硬盘(SSD)。当存储系统200包括SSD时,存储器件220可以包括以非易失性方式存储数据的闪存芯片(例如,NAND存储芯片)。存储器件220可以对应于单个闪存器件,或者可以包括具有至少一个闪存芯片的存储卡。
当存储系统200包括闪存时,闪存可以包括二维(2D)NAND存储阵列或三维(3D)NAND或垂直NAND(VNAND)存储阵列。3D存储阵列可以由存储单元的阵列的至少一个物理层级和电路单片地形成,存储单元在硅衬底上具有有源区,电路与存储单元的操作有关且形成在衬底上或衬底中。术语“单片”是指阵列的每一层级的层直接堆叠在阵列的下一层级的层上。
在一些实施例中,3D存储阵列可以包括在垂直方向上布置的VNAND串,使得至少一个存储单元被放置在另一存储单元上。存储单元可以包括电荷捕获层。
例如,在美国专利7,679,133、8,553,466、8,654,587和8,559,235以及公开号为2011/0233648的美国专利申请中公开了3D存储阵列的示例性结构,在这些示例性结构中,3D存储阵列包括多个层级以及跨多个层级而共享的字线和/或位线,这些专利或专利申请的共同主题通过引用合并于此。
在一些实施例中,存储系统200可以包括其他各种存储器。例如,存储系统200可以包括各种类型的非易失性存储器,诸如磁随机存取存储器(MRAM)、自旋转移矩MRAM、导电桥RAM(CBRAM)、铁电RAM(FeRAM)、相变RAM(PRAM)、电阻RAM、纳米管RAM、聚合物RAM(PoRAM)、纳米浮栅存储器(NFGM)、全息存储器、分子电子学存储器和绝缘体电阻变化存储器。
存储器件220可以包括嵌入式多媒体卡(eMMC)或嵌入式通用闪存(UFS)存储器件。例如,存储器件220可以包括可从存储系统200拆卸的外部存储器。更具体地,存储器件220可以包括UFS存储卡、紧凑型闪存(CF)卡、安全数字(SD)卡、微型SD卡、超微型SD卡、极限数字(xD)卡或记忆棒,但不限于此。
主机系统100可以通过各种接口与存储系统200通信。例如,主机系统100可以通过诸如通用串行总线(USB)接口、MMC接口、外围组件互连快速(PCIExpress)接口、高级技术附件(ATA)接口、串行ATA(SATA)接口、并行ATA(PATA)接口、小型计算机系统接口(SCSI)、串行连接的SCSI(SAS)、增强型小型磁盘接口(ESDI)、集成驱动电子设备(IDE)接口和非易失性存储器快速(NVMe)接口的各种接口与存储系统200通信。
当主机系统100用新数据更新文件的数据时,主机系统100可以向存储系统200发送写入新数据的请求(或写入命令)。
当通过在相同位置用新数据盖写旧数据来执行更新时,新数据的写入可以与旧数据的擦除同时执行。然而,LFS不允许盖写,并且闪存不支持数据盖写。
在通常的NVMe接口的情况下,支持允许像执行单个命令一样执行两个命令的融合操作(fused operation),从而可以执行旧数据的无效(或擦除)操作。例如,当主机系统100向存储系统200发送写入命令和擦除命令两者时,存储器控制器210可以通过使用融合操作顺序地执行写入操作和擦除操作来使旧数据无效(或擦除旧数据)。然而,在这种情况下,在两次操作期间必须访问两次图2的缓冲存储器217中的元数据218,从而导致操作效率低。
在LFS的情况下,存储旧数据的逻辑地址(或位置)可能不同于写入新数据的逻辑地址。因此,当发送包括仅关于新数据的信息的写入命令时,主机系统100必须单独发送修整(trim)命令,以使旧数据无效。例如,主机系统100的文件系统必须通过向存储系统200发送包括旧数据的逻辑地址的修整命令来使旧数据无效(或擦除旧数据)。
然而,在向存储系统200提供修整命令之前,与旧数据相关联的信息对于存储系统200而言是未知的,并且旧数据和新数据在技术上都是有效的。并且该结果限制了在存储系统200中对有效数据和无效数据的管理。例如,可能在内部垃圾收集操作期间执行不必要的复制操作,从而增加了存储系统开销。即,当顺序地执行两个操作(即,写入操作和擦除操作)时,访问两次元数据可能会不必要地增加存储系统管理开销,并且由于写入命令与修整命令之间的定时(timing)差异也可能导致存储系统管理开销的增加。
在图1和图2的数据处理系统10中,LFS 110将关于旧数据的信息与关于被请求写入的新数据的信息一起提供给存储系统200,使得可以同时执行写入和无效。因此,在一些实施例中,旧数据可以被描述为被擦除或被无效,然而在随后的描述中,旧数据将被描述为被无效。
因此,主机系统100可以生成包括关于新数据的信息和关于旧数据的信息的写入命令,并将该写入命令提供给存储系统200。在下文中,假设写入命令可以包括仅关于新数据的信息,或关于新数据和旧数据两者的信息。在这种情况下,包括关于旧数据的信息的写入命令可以被称为盖写请求。即,包括关于新数据的信息和关于旧数据的信息的写入命令可以被称为盖写请求,并且根据写入命令(即,盖写请求)来更新文件的结果操作可以被称为盖写操作。
为了将与本发明构思的实施例一致的包括关于旧数据的信息的写入命令与常规写入命令区别开,可以向该写入命令添加新字段。在下文中将参照图3更详细地描述该方法的一个示例。在下文中,除非特别说明写入命令的字段值,否则假设写入命令包括关于旧数据的信息。
参照图1和图2,存储器控制器210可以接收关于旧数据的信息以及用于新数据的写入命令,通过基于关于旧数据的信息处理元数据218中包括的信息来使旧数据无效,并且将新数据写入到存储器件220。例如,旧数据的无效可以由存储器控制器210的元数据管理器214执行。
主机系统100可以向存储系统200发送命令、数据和关于该数据的信息。例如,在写入命令的情况下,主机系统100可以向存储系统200发送要被写入的数据和关于数据的信息以及写入命令。关于数据的信息可以包括用于存储和管理数据的诸如数据的逻辑地址、数据的大小或数据的属性的信息。
在下文中,假设由主机系统100的文件系统生成的命令包括诸如数据地址或数据大小的信息。例如,主机系统100可以生成并向存储系统200发送包括图3中的字段的命令。
主机系统100的文件系统可以识别包括在写入命令中的信息的大小,并且当信息的大小超过特定参考值时,将写入命令分成多个写入命令。例如,当均包括在写入命令中的旧数据的地址或关于旧数据的信息的大小是12KB时,可以基于4KB将写入命令分成三个写入命令。另外,当根据写入命令要被写入的新数据的大小超过特定参考值时,可以将写入命令分成多个写入命令。
当文件系统向存储系统200发送所分成的多个写入命令时,指示每个写入命令的特性的字段可以被添加到每个写入命令。例如,可以添加指示存储系统200是否支持原子操作的字段或指示当前写入命令是否通过原子操作执行的字段。原子操作可以指不可拆分的单个操作。因此,在该说明书中,原子操作可以指原子写入。
由主机系统100生成的命令可以在主机系统100中包括的特定存储器的提交队列中。该提交队列可以对应于循环缓冲器,命令在被生成之后并且在被执行之前被存储在该循环缓冲器中。
在命令执行之后,存储系统200可以向主机系统100发送指示命令的执行已经完成的完成信息。
参照图1和图2,存储器控制器210可以包括主机接口211、RAM 212、只读存储器(ROM)215、处理器216、缓冲存储器217和闪存接口219。
在一些实施例中,主机接口211可以与主机系统100通信以发送各种请求并接收各种信息。例如,主机接口211可以从主机系统100接收写入命令和关于新数据的信息。或者,主机接口211可以接收写入命令、关于新数据的信息以及关于与新数据相对应的旧数据的信息。主机接口211接收到的信息可以随着接收到的写入命令的字段值而变化。
例如,在主机系统100和存储系统200之间的初始互连期间,每个写入命令字段的定义(或含义)可以不同地存储在存储器控制器210的RAM 212和/或ROM 215中。
例如,当存储系统200支持原子写入时,主机接口211可以接收指示是否通过原子写入执行写入命令的字段值。这表明由于要被写入的数据的大小较大所以已将写入命令分为多个写入命令(分别与因数据拆分产生的部分数据(partial data)相关联),并且在确保原子操作的同时执行与每个写入命令相对应的写入操作。
主机接口211可以使用一个或更多个接口与主机系统100通信。例如,主机接口211可以根据诸如NVMe接口和UFS接口的各种接口与主机系统100通信。
RAM 212可以包括闪存转换层(FTL)213。FTL 213是指中间件,该中间件在主机系统100的文件系统与存储器件220之间映射主机系统100的文件系统的逻辑地址(例如,逻辑块地址(LBA))和存储器件220的物理地址(例如,物理块地址(PBA))。
除了地址映射之外,FTL 213还可以执行(或有助于执行)管理存储器件220中的组成存储单元的损耗均衡的损耗均衡操作和/或管理存储系统内空闲块的生成的垃圾收集操作。这里,FTL 213可以包括元数据管理器214。
元数据管理器214可以根据来自主机系统100的写入命令来管理元区域中的元数据218。
元数据管理器214可以将包括在写入命令中的关于新数据和/或旧数据的信息存储在缓冲存储器217中,并且可以选择性地更新元区域中的元数据218。
例如,元数据管理器214可以将在与多个命令中的每个命令相对应的盖写期间改变的元数据存储在缓冲存储器217中。例如,元数据管理器214可以在盖写期间将在与多个命令中的每个命令相对应的盖写期间改变的元数据缓冲在缓冲存储器217中,并且在与最后一个命令相对应的盖写完成之后,可以利用被缓冲的元数据来更新缓冲存储器217中的元数据218。
元数据218的更新可以指向元数据218添加新数据的逻辑地址与新数据的物理地址之间的映射信息或改变元数据218中的新数据的逻辑地址与新数据的物理地址之间的映射信息,并使旧数据的逻辑地址与旧数据的物理地址之间的映射信息无效的操作。
ROM 215可以存储由处理器216执行的程序。可以将用于实现存储器控制器210的操作的程序或其中记录有该程序的固件存储在ROM 215中。
处理器216通常可以通过执行存储在ROM 215中的各种程序来控制存储系统200的操作。处理器216可以执行形成元数据管理器214的程序。
缓冲存储器217可以临时存储通过主机接口211从主机系统100接收的数据或从存储器件220接收的数据,并且可以存储元数据218。
元数据218是存储系统200管理和存储数据所需的各种信息。例如,元数据218可以包括用于写入或读取数据的逻辑地址与物理地址之间的映射信息或指示数据是否有效的信息。
元区域是指存储有元数据218的区域,并且可以被包括在缓冲存储器217中。元数据218的存储位置不限于缓冲存储器217。元数据218可以存储在存储器控制器210的内部高速缓存(未示出)的存储电路中或以非易失性方式存储在存储器件220中。在下文中,假设元数据218存储在缓冲存储器217中,如图2所示。
缓冲存储器217可以包括易失性存储器(例如,动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率(DDR)SDRAM、低功耗DDR(LPDDR)SDRAM或图形RAM(GRAM))或非易失性存储器(例如,FeRAM、电阻RAM(RRAM)、自旋转移矩MRAM(STT-MRAM)或PRAM)。闪存接口219可以被配置为在处理器216的控制下控制驱动存储器件220的信号以及访问存储器件220。闪存接口219可以被配置为通过至少一个信道选择性地执行软件和硬件交叉操作。
闪存接口219还可以提供与包括在存储设备中的多个存储介质的接口。例如,闪存接口219可以通过多个信道独立地与存储介质通信。
尽管在图2中示出了用软件执行写入操作的示例,但是本发明构思的范围不限于此。例如,在图2的实施例中通过执行加载到RAM 212和ROM 215的软件来执行的操作中的至少一些操作可以由以硬件实现的电路来执行。
在一些实施例中,当在主机系统100中生成了文件更新请求时,主机接口211可以从主机系统100接收写入命令和新数据的逻辑地址。在一些实施例中,写入命令可以包括与新数据相对应的旧数据的逻辑地址。写入命令中关于新数据或旧数据的信息可以被临时存储在缓冲存储器217中。
FTL 213可以基于元数据218中包括的映射信息来获取与新数据的逻辑地址相对应的物理地址。处理器216可以通过闪存接口219将新数据写入存储器件220中的物理地址。
这里,元数据管理器214可以在元数据218中反映存储在缓冲存储器217中的关于新数据的信息和关于旧数据的信息。例如,可以使用旧数据的逻辑地址来使旧数据无效。
此后,FTL 213可以基于已更新的元数据218执行垃圾收集。
即,存储器控制器210通过单个命令接收关于新数据的信息和关于旧数据的信息,使得即使在不允许盖写的LFS中也可以有效地执行新数据的写入和旧数据的无效。
图3是在一个示例中示出了可以与本发明构思的某些实施例相关地使用的写入命令的数据结构的概念图。这里,假设主机系统100的文件系统可以生成包括多个字段的写入命令。
可以响应于盖写请求来生成写入命令。如以上参照图1所描述的,在本实施例中,盖写操作可以指同时执行关于旧数据的信息的无效和新数据的写入。因此,主机系统100可以向存储系统200发送写入命令——即,主机系统100可以向存储系统200发送盖写请求。
在一些实施例中,盖写可以指将新数据写入与已经被写入了旧数据的地址不同的地址(或位置)并使旧数据无效的操作。相比之下,常规的写入命令可以包括仅关于新数据的信息。例如,该信息可以包括新数据的逻辑地址,并且还可以包括新数据的大小。
在一些实施例中,主机系统100的文件系统可以生成写入命令,该写入命令包括关于新数据的信息和关于旧数据的信息。因此,主机系统100可以通过单个命令向存储系统200发送关于要被写入的新数据的信息和关于要被无效的旧数据的信息两者。
除了关于新数据的信息或关于旧数据的信息之外,写入命令还可以包括与写入操作有关的各种信息。为了指示写入命令可以包括的信息的种类,可以使用图3的数据字段。
即,由主机系统100的文件系统生成的写入命令的某些数据字段可以包括指示旧数据的逻辑地址的起点的旧数据起始地址字段、旧数据大小字段、指示新数据的逻辑地址的起点的新数据起始地址字段和新数据大小字段。为了便于描述,这些字段可以分别被称为第一字段、第二字段、第三字段和第四字段(统称为“第一至第四字段”)。
写入命令不需要包括所有的第一至第四字段,而是可以仅包括用于执行写入命令的最小信息。例如,写入命令可以仅包括新数据的逻辑地址和旧数据的逻辑地址。或者,主机系统100的文件系统可以在写入命令中包括仅关于新数据的信息。例如,写入命令可以仅包括仅新数据的逻辑地址。
为了指示写入命令中包括的信息的种类,主机系统100的文件系统可以使用写入命令中的特定字段。例如,主机系统100还可以在写入命令中包括用于盖写的写入命令类型字段,该写入命令类型字段指示写入命令是包括仅关于新数据的信息(如常规的那样),还是还包括关于旧数据的信息。写入命令类型字段可以方便地被称为第五字段。例如,当第五字段(即,写入命令类型字段)的值是0时,写入命令可以不包括分别对应于旧数据起始地址和旧数据大小的字段。因此,可以不执行旧数据的无效。然而,当第五字段(即,写入命令类型字段)的值是1时,主机系统100可以生成包括第一至第四字段的写入命令。在这种情况下,写入命令包括旧数据的逻辑地址,因此可以执行旧数据的无效。
在一些实施例中,主机系统100还可以在写入命令中包括指示存储系统200是否支持原子写入操作的字段。因此,主机系统100可以在初始连接到存储系统200并初始化存储系统200的过程中指示存储系统200是否支持原子写入操作。例如,存储系统200可以向主机系统100发送包括是否支持原子操作的信息。
此后,当在主机系统100中生成了文件更新请求时,主机系统100的文件系统可以允许通过原子操作来执行文件更新。例如,文件系统可以标记原子操作字段,使得用于文件更新的写入命令通过原子写入操作执行。原子操作字段可以方便地被称为第六字段。
例如,当存储系统200接收到第六字段(即,原子操作字段)的值为0的写入命令时,存储系统200可以执行常规的写入操作而不涉及原子写入。然而,当接收到第六字段(即,原子操作字段)的值为1的写入命令时,存储系统200可以根据预设协议缓冲包括在写入命令中的关于旧数据的信息,并且可以稍后更新元数据218。因此,要被更新的文件的元数据218可以反映在存储系统200中。
当由于数据大小较大而需要将命令分成多个命令(即,必须将大量数据分成部分数据)时,文件系统可以指定要通过原子写入操作执行的命令。因此,在单个文件的更新期间,向存储系统200发送多个命令。即,为了更新文件的元数据218,存储系统200必须识别顺序接收到的命令中的最后一个命令。这是因为存储系统200在识别出最后一个命令之后,将包括在接收到的命令中并且存储在缓冲存储器217中的信息反映在元数据218中。因此,文件系统必须添加指示由命令拆分产生的命令中的最后一个命令的原子操作结束命令字段。原子操作结束命令字段可以被称为第七字段。这里,仅当第六字段(即,原子操作字段)的值为1时,第七字段(即,原子操作结束命令字段)才可以具有值。当第六字段(即,原子操作字段)的值为0时,第七字段(即,原子操作结束命令字段)可以为空字段。
主机系统100的文件系统可以将多个盖写请求中的最后一个盖写请求的第七字段(即,原子操作结束命令字段)设置为第一值,并且可以将其他盖写请求中的每个盖写请求的第七字段(即,原子操作结束命令字段)设置为与第一值不同的第二值。
例如,当接收到第七字段(即,原子操作结束命令字段)的值为0的写入命令时,存储系统200可以将包括在写入命令中的信息缓冲在缓冲存储器217中。当接收到第七字段(即,原子操作结束命令字段)的值为1的写入命令时,存储系统200可以基于缓冲存储器217中被缓冲的信息来更新元数据218。
由文件系统执行的向写入命令添加字段的方法以及由存储系统200执行的识别写入命令的字段值和执行特定操作的方法可以由主机系统100与存储系统200之间的通信协议来定义。通信协议可以由主机系统100设置或更改。
尽管在图3中未示出,但是写入命令还可以包括包含与写入操作有关的其他各种信息的字段。
图4是在一个示例中概括了可以由根据本发明构思的实施例的数据处理系统执行的数据写入操作的流程图。
参照图1、图2、图3和图4,可以根据与所定义的写入命令相关联的特定字段的值来确定存储系统200的操作。这里,例如,主机系统100可以将关于新数据的信息和关于与新数据相对应的旧数据的信息与写入命令一起发送到存储系统200。在一些实施例中,可以生成写入命令以请求存储系统200写入新数据,或者请求存储系统200写入新数据并使旧数据无效。为了将这两种类型的写入命令彼此区分开,可以使用图3中的第五字段(即,写入命令类型字段)。
在图1、图2和图3的示例性配置的上下文中参照图4的流程图,存储系统200可以从主机系统100接收写入命令(S110),并且存储系统200的存储器控制器210可以判定第五字段(即,写入命令类型字段)的值是否为0(S120)。
这里,如以上参照图3所描述的,当第五字段(即,写入命令类型字段)的值为0时,写入命令可以是用于新数据的常规写入命令,但是当第五字段(即,写入命令类型字段)的值为1时,写入命令可以是写入新数据并使旧数据无效的命令。
因此,当第五字段(即,写入命令类型字段)的值是0(S120=是)时,存储器控制器210可以将与写入命令相对应的新数据写入到存储器件220(S130)。此后,存储器控制器210可以通过将关于新数据的信息反映在元数据218中来更新元数据218(S140),其中关于新数据的信息被包括在写入命令中。
或者,当第五字段(即,写入命令类型字段)的值为1(S120=否)时,存储器控制器210可以执行以下相对于图6描述的操作S202,或者以下相对于图7描述的操作S302。
图5是在一个示例中示出了根据本发明构思的实施例的数据处理系统的操作的概念图。
在图1、图2和图3的上下文中,主机系统100可以在文件更新请求时生成第五字段(即,写入命令类型字段)的值为1的写入命令,并通过写入命令向存储系统200发送盖写请求。
参照图1、图2、图3和图5,当在主机系统100中生成了对文件的盖写请求时,文件系统可以生成命令以写入新数据并使之前已写入的旧数据无效。当文件系统是LFS时,新数据不被写入旧数据的逻辑地址,而是写入新逻辑地址。例如,假设旧数据的逻辑地址是LBA 2到LBA4,新数据的逻辑地址是LBA7到LBA9。
在接收到写入命令之前,存储系统200中的元数据218可以包括映射表,该映射表示出了逻辑地址LBA1至LBA 6与物理地址PBA 100至PBA 600之间的映射关系。主机系统100可以将包括新数据的逻辑地址LBA 7至LBA9的信息以及包括旧数据的逻辑地址LBA 2至LBA4的信息与写入命令一起发送到存储系统200。存储系统200可以确定存储器件220中的可写入区域的地址以写入新数据。例如,物理地址PBA 700至PBA 900可以对应于擦除已经完成的可写入区域。
此后,存储系统200可以将新数据写入到物理地址PBA 700至PBA900,并且将已经被写入了新数据的物理地址PBA 700至PBA 900写入映射表以将新数据的逻辑地址映射到新数据的物理地址。
存储系统200可以基于映射表来识别映射到旧数据的逻辑地址LBA 2至LBA 4的物理地址PBA200至PBA 400。此后,存储系统200可以擦除物理地址PBA 200至PBA 400和逻辑地址LBA 2至LBA 4之间的映射关系,以使旧数据无效。可以以各种方式使旧数据无效。例如,可以从映射表中删除物理地址PBA200至PBA 400。或者,可以在映射表中包括指示每个逻辑地址是否有效的信息,并且可以通过改变指示有效性的信息来使旧数据无效。在执行上述过程之后,映射表可以包括有效地将逻辑地址LBA 7至LBA 9映射到关于新数据的物理地址PBA 700至PBA 900的信息。
图6和图7是根据本发明构思的实施例的概述可以由数据处理系统执行的盖写操作的各个流程图。
图6是概述用于包括不支持原子写入的存储系统200的数据处理系统的盖写方法的流程图。参照图1、图2、图3和图6,元数据管理器214可以在每次响应于盖写请求而处理盖写时更新元数据218。
当在主机系统100中生成了文件更新请求时,主机系统100可以生成写入命令(S201)。主机系统100可以使用文件系统中包括的元信息来获取关于与要被写入的新数据相对应的旧数据的信息。主机系统100可以生成包括关于旧数据的信息的写入命令。例如,写入命令可以包括图3中的字段。
当关于要被写入的新数据的信息的大小或关于旧数据的信息的大小超过参考值时,文件系统可以将要被发送到存储系统200的写入命令分为“n”个写入命令(S202)。
主机系统100可以向存储器控制器210发送“n”个写入命令之一(S203)。例如,写入命令可以包括新数据的地址和旧数据的地址,并且还可以包括关于新数据的大小的信息和关于旧数据的大小的信息。此时,新数据的地址和旧数据的地址可以是由文件系统管理的逻辑地址。
例如,写入命令还可以包括指示存储系统200是否支持原子写入或者该写入命令是否对应于原子写入的字段。
主机系统100可以将写入命令存储在提交队列中(S204)。
例如,可以将写入命令存储在提交队列中,直到由存储系统200执行写入命令为止。另外,可以将“n”个写入命令存储在提交队列中。
主机系统100可以向存储系统200发送新数据(S205)。例如,主机系统100可以使用特定的数据发送器。数据发送器可以执行直接存储器访问(DMA)。
存储系统200可以更新主机系统100的完成队列(S206)。例如,当存储系统200向主机系统100发送指示写入命令的执行已完成的命令执行完成信息时,命令执行完成信息可以存储在主机系统100的完成队列中。当命令执行完成信息存储在完成队列中时,可以从提交队列中删除与命令执行完成信息相对应的命令。
存储器控制器210可以从元数据218获取关于旧数据的信息(S207)。例如,可以基于从主机系统100接收到的旧数据的逻辑地址,使用映射表来获取旧数据的物理地址。接收到的信息可以存储在缓冲存储器217中。
存储器控制器210可以将新数据写入到存储器件220(S208)。
存储器件220可以向存储器控制器210发送写入完成信息(S209)。
存储器控制器210可以使用关于新数据的信息、关于旧数据的信息以及所获取的旧数据的物理地址来更新元数据218(S210)。例如,存储器控制器210可以将新数据的逻辑地址和新数据的物理地址映射并写入映射表,并使旧数据无效。
数据处理系统10可以针对“n”个写入命令中的每个写入命令执行操作S203至S210。即,存储器控制器210可以从主机系统100接收关于新数据的信息和关于旧数据的信息,将新数据写入存储器件220,并且通过将已经写入了新数据的物理地址映射到新数据的逻辑地址来更新映射表。存储器控制器210可以基于映射表识别旧数据的逻辑地址,并通过擦除映射到旧数据的逻辑地址的物理地址来使旧数据无效。
存储系统200可以针对所有的“n”个写入命令判定是否完成了新数据的写入(S211)。当针对所有的“n”个写入命令完成了写入操作(S211=是),存储系统200可以终止写入操作(S212)。当尚未针对所有的“n”个写入命令执行写入操作时,盖写方法进行到操作S203。
图7是概述包括支持原子写入的存储系统200的数据处理系统10的盖写方法的流程图。参照图1、图2、图3和图7,元数据管理器214可以通过盖写来缓冲关于新数据的信息或关于旧数据的信息,并且可以利用所缓冲的信息来更新元数据218。
当生成了文件更新请求时,主机系统100可以生成写入命令(S301)。
这里,文件系统可以将写入命令分成“n”个写入命令,并且为了允许由原子操作执行每个写入命令,可以设置与原子操作有关的字段(S302)。当存储系统200支持原子操作时,文件系统可以向每个写入命令添加指示该写入命令通过原子写入执行的字段。可以添加多个字段,并且该多个字段可以包括图3中的第六字段(即,原子操作字段)和第七字段(即,原子操作结束命令字段)。
操作S303至S307可以分别与图6的操作S203至S207基本相同。
存储器控制器210可以将包括旧数据的物理地址的信息和关于新数据的信息缓冲在缓存器217中(S308)。与图6的方法相比而言,存储器控制器210可以将已经接收到(S303)的新数据的逻辑地址和旧数据的逻辑地址临时存储在缓冲存储器217中,而不是立即用逻辑地址更新元数据218。被缓冲的信息可以反映在元数据218中(S312)。
操作S309和S310可以分别与图6的操作S208和S209基本相同。存储器控制器210可以将新数据写入存储器件220,并从存储器件220接收写入完成信息。
在执行了存储系统200的写入操作之后,存储器控制器210可以确定写入命令中与原子操作有关的字段当中的第七字段(即,原子操作结束命令字段)的值(S311)。在示例实施例中,当第七字段的值为0时,存储器控制器210可以顺序地接收“n”个写入命令中的另一个写入命令。当第七字段的值为1时,存储器控制器210可以基于缓冲的数据来更新元数据218。
在图7的实施例中,在操作S310之后可能发生突然断电(SPO)。例如,在写入命令被分为四个写入命令的状态下,SPO可能发生在第一、第二和第三部分数据的写入完成之后并且在接收到第四个写入命令之前。
在这种情况下,第一、第二和第三部分数据已经被写入到存储器件220,第四部分数据尚未被写入到存储器件220,并且关于第一到第四部分数据的信息未被反映到元数据218。即,如果由于SPO而中断了向存储系统200供电,则可以擦除已经缓冲在缓冲存储器217中的关于第一至第三部分数据的信息,并且元数据218可以保留在接收到第一个写入命令之前的状态。
即,作为原子操作的结果,确保了数据完整性,使得可以更新文件,并且新数据和旧数据的状态可以全部反映在元数据218中,或者文件更新可以停止并且元数据218可以保持在文件更新之前的状态。
如果不是通过原子操作执行数据处理系统10的写入操作,则可以在元数据218中包括与第一至第三部分数据相对应的新数据和与第四部分数据相对应的旧数据。在这种情况下,元数据218与主机系统100的文件系统的元数据不一致,这可能导致操作错误。另外,需要用于恢复损坏的文件的过程,这可能会降低效率。
已经参照图6和图7描述了写入命令具有的数据大小较大的情况。当写入命令的数据大小小于某个参考值时,可以仅发送一个写入命令来执行文件更新。当用单个命令执行文件更新时,图6或图7的操作可以确保原子性。
图8是在一个示例中示出了根据本发明构思的实施例的用于数据处理系统的盖写操作的概念图。
参照图1、图2、图3和图8,当写入命令中包括的数据较大时,文件系统可以将写入命令分为多个写入命令。例如,当包括在盖写请求中的数据的大小是12KB时,写入命令可以被分为三个4KB的写入命令。
在下文中,在下面的描述中假设图7的方法的情况,其中存储系统200支持原子写入操作,并且主机系统100进行设置以使得盖写被执行为原子操作。为了便于描述,可以省略写入命令的数据字段当中的指示旧数据的大小的字段的值和指示新数据的大小的字段的值。
文件系统可以顺序地向存储系统200发送三个写入命令。当接收到第一个写入命令时,存储器控制器210可以确定第一个写入命令的第六字段(即,原子操作字段)的值和第七字段(即,原子操作结束命令字段)的值。因为第一个写入命令的第六字段(即,原子操作字段)的值为1,并且第一个写入命令的第七字段(即,原子操作结束命令字段)的值为0,所以存储器控制器210将具有包括在第一个写入命令中的逻辑地址LBA 7的新数据写入存储器件220,并且将关于具有逻辑地址LBA 2的旧数据的信息和关于新数据的信息缓冲在缓冲存储器217中。
因为第二个写入命令的第六字段(即,原子操作字段)的值是1,并且第二个写入命令的第七字段(即,原子操作结束命令字段)的值是0,所以存储器控制器210将具有逻辑地址LBA 8的新数据写入存储器件220,然后将关于新数据的信息和关于具有逻辑地址LBA 3的旧数据的信息缓冲在缓冲存储器217中。
在确定出第三个写入命令的第六字段(即,原子操作字段)的值是1并且第三个写入命令的第七字段(即,原子操作结束命令字段)的值是1之后,存储器控制器210将具有逻辑地址LBA 9的新数据写入存储器件220,将关于新数据的信息和关于具有逻辑地址LBA 4的旧数据的信息缓冲在缓冲存储器217中,并基于与LBA 2、LBA 3、LBA 4、LBA 7、LBA 8和LBA 9相对应的被缓冲的信息来更新元数据218。
在一些实施例中,因为在文件更新时同时执行旧数据的无效和写入操作,所以文件系统不需要单独发送修整命令以使旧数据无效。另外,因为不必要的数据在更新之前的写入操作期间被无效,所以存储系统200可以更有效地执行垃圾收集操作。此外,因为可以通过原子操作执行存储系统200中的元数据218的更新,所以即使在诸如SPO的意外事件中也可以防止数据损坏。
图9是示出根据本发明构思的实施例的数据处理系统的框图。
参照图9,主机系统300和存储系统400可以形成数据处理系统20。这里,数据处理系统20可以形成计算机、超移动个人计算机(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板电脑、平板计算机、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、手持游戏机、导航设备、黑匣子、数码相机、数字多媒体广播(DMB)播放器、3D电视、智能电视、数字录音机、数字音频播放器、数字图片记录仪、数字图片播放器、数字录像机、数字视频播放器、形成数据中心的存储装置、在无线环境中发送和接收信息的设备、形成家庭网络的各种电子设备之一、形成计算机网络的各种电子设备之一、形成远程信息处理网络的各种电子设备之一、射频识别(RFID)设备或形成计算系统的各种组件之一。
主机系统300可以包括至少一个操作系统310,其中,操作系统310通常管理和控制主机系统300的操作以及主机系统300与存储系统20的用户之间的交互。
在这方面,例如,操作系统310将支持由用户对主机系统的操作所指示的功能和/或操作。这里,根据主机系统300的移动性方面,操作系统310可以被分类为普通操作系统和移动操作系统。普通操作系统可以根据用户的使用环境被分类为个人操作系统和商务操作系统。例如,个人操作系统可以被表征为支持为普通用户提供服务的功能,并且可以包括Windows和Chrome。商务操作系统可以被表征为确保和支持高性能,并且可以包括WindowsServer、Linux和Unix。
移动操作系统可以被表征为支持移动服务提供功能和系统省电功能,并且可以包括Android、iOS和Windows Mobile。在一些实施例中,主机系统300可以包括多个操作系统310,并且可以响应于用户请求而执行操作系统310以执行与存储系统400相关联的操作。这里,主机系统300可以向存储系统400发生与用户请求相对应的命令,并且存储系统400可以响应于命令而执行操作——即,与用户请求相对应的操作。
主机系统300可以包括文件系统320。文件系统320是指用于在与主机系统300连接的存储系统400中存储文件的数据结构。
主机系统300的读取或写入请求可以以文件为单位执行。换句话说,通过文件读取请求READ_F或文件写入请求WRITE_F,来自主机系统300的数据可以被写入存储系统400,或者存储在存储系统400中的数据可以被读取到主机系统300。
例如,存储系统400可以被实现为个人计算机(PC)、数据服务器、网络附加存储装置(NAS)、物联网(IoT)设备或便携式电子设备。便携式电子设备可以包括膝上型计算机、移动电话、智能电话、平板电脑、PDA、企业数字助理(EDA)、数字照相机、数字摄像机、音频设备、PMP、个人导航设备(PND)、MP3播放器、手持游戏机、电子书或可穿戴设备。
存储系统400可以包括主机接口层410、FTL 420、闪存接口层430和非易失性存储器440。
主机接口层410可以是在主机系统300与存储系统400之间发生对接的逻辑区域。
FTL 420可以具有与图2的FTL 213不同的形式。例如,输入/输出(I/O)单元421可以响应于文件写入请求WRITE_F而接收要被写入的数据和该数据的逻辑地址(例如,LBA),并且可以基于存储在图2中的RAM 212或ROM215中的映射表向非易失性存储器440提供与LBA相对应的物理地址(例如,PBA)。
在一些实施例中,I/O单元421可以接收新数据的逻辑地址和旧数据的逻辑地址,并且将新数据的物理地址提供给非易失性存储器440,其中,新数据的物理地址来自基于映射表的转换。
元数据管理器422可以在高速缓冲存储器中缓冲从I/O单元421接收的关于新数据的信息和关于旧数据的信息,并且当文件写入请求WRITE_F中包括的信息满足特定参考时,可以利用被缓冲的信息来更新元数据218。元数据管理器422可以被认为是图2的元数据管理器214。
主机接口层410和FTL 420可以逐个扇区地写入或读取数据。即,响应于主机系统300的读取或写入请求,主机接口层410可以针对每个扇区向FTL420发送扇区读取请求READ_S或扇区写入请求WRITE_S。
闪存接口层430可以在FTL 420和非易失性存储器440之间提供接口。在一些实施例中,可以响应于页面读取请求READ_P或页面写入请求WRITE_P来逐页地读取或写入数据,并且可以响应于区块(block)擦除请求ERASE_B而逐块地进行擦除,这可以是闪存器件的特性。
非易失性存储器440可以被认为是图1中的存储器件220,因此省略了对它们的重复说明。
在一些实施例中,可以使用各种类型的封装件来安装数据处理系统20。例如,数据处理系统20可以以如下形式安装:层叠封装(PoP)、球栅阵列(BGA)、芯片级封装(CSP)、塑料引线芯片载体(PLCC)、塑料双列直插式封装(PDIP)、华夫饼封装裸片、晶片形式的裸片、板上芯片(COB)、陶瓷双列直插式封装(CERDIP)、塑料公制四方扁平封装(MQFP)、薄型四方扁平封装(TQFP)、小尺寸集成电路(SOIC)、收缩小尺寸封装(SSOP)、薄小尺寸封装(TSOP),系统级封装(SIP)或多芯片封装。
图10是示出根据本发明构思的实施例的使用存储设备的系统1000的框图。
系统1000可以包括诸如移动电话、智能电话、平板电脑、可穿戴设备、医疗保健设备或IoT设备的移动系统。然而,系统1000不限于移动系统,并且可以包括PC、膝上型计算机、服务器、媒体播放器或诸如导航设备的汽车设备。
参照图10,系统1000可以包括主处理器1100、存储器1200a和1200b以及存储设备1300a和1300b,并且还可以包括从光学输入设备1410、用户输入设备1420、传感器1430、通信设备1440、显示器1450、扬声器1460、电源设备1470和连接接口1480中选择的至少一者。
主处理器1100通常可以控制系统1000的操作,并且更具体地,控制系统1000的其他元件的操作。主处理器1100可以被实现为通用处理器、专用处理器或应用处理器。
主处理器1100可以包括至少一个中央处理单元(CPU)核1110,并且还可以包括控制存储器1200a和1200b和/或存储设备1300a和1300b的控制器1120。根据实施例,主处理器1100还可以包括加速器(accelerator)1130,其是用于诸如人工智能(AI)数据操作的高速数据操作的专用电路。加速器1130可以包括图形处理单元(GPU)、神经处理单元(NPU)和/或数据处理单元(DPU),并且可以在物理上独立于主处理器1100的其他元件的单独芯片中实现。
主处理器1100可以执行参照图1至图9描述的主机系统100和300的操作。
存储器1200a和1200b可以用作系统1000的主存储器件,并且可以包括诸如静态RAM(SRAM)和/或DRAM的易失性存储器或诸如闪存、PRAM和/或RRAM的非易失性存储器。存储器1200a和1200b可以在与主处理器1100相同的封装件中实现。
存储设备1300a和1300b可以包括不管电源如何都保持数据并且可以具有比存储器1200a和1200b大的容量的非易失性存储设备。存储设备1300a和1300b可以分别包括存储控制器1310a和1310b以及非易失性存储器(NVM)存储装置1320a和1320b。NVM存储装置1320a在存储控制器1310a的控制下存储数据,NVM存储装置1320b在存储控制器1310b的控制下存储数据。NVM存储装置1320a和1320b可以包括2D或3D VNAND闪存或诸如PRAM和/或RRAM的其他类型的NVM。
存储设备1300a和1300b可以与系统1000中的主处理器1100物理上分隔开,或者可以与主处理器1100在同一封装件中实现。存储设备1300a和1300b可以具有存储卡的形式并因此可以通过诸如连接接口1480的接口可移除地耦接到系统1000的其他元件,这将在下面描述。存储设备1300a和1300b可以包括应用了诸如UFS标准的协议的设备,但是不限于此。
存储设备1300a和1300b可以执行以上参照图1至图9所述的存储系统200和400的操作。
光学输入设备1410可以捕获静止图像或运动图像,并且可以包括照相机、便携式摄像机和/或网络摄像头。
用户输入设备1420可以接收系统1000的用户输入的各种类型的数据,并且可以包括触摸板、键区、键盘、鼠标和/或麦克风。
传感器1430可以感测可以从系统1000的外部获取的各种类型的物理量,并且可以将感测到的物理量转换为电信号。传感器1430可以包括温度传感器、压力传感器、照度传感器、位置传感器、加速度传感器、生物传感器和/或陀螺仪。
通信设备1440可以根据各种通信协议向系统1000外部的其他设备发送信号或从系统1000外部的其他设备接收信号。通信设备1440可以包括天线、收发器和/或调制解调器。
显示器1450和扬声器1460可以用作分别向系统1000的用户输出视觉信息和听觉信息的输出设备。
电源设备1470可以适当地对来自嵌入在系统1000中的电池(未示出)和/或外部电源的电力进行变换,并且可以将变换后的电力提供给系统1000的每个元件。
连接接口1480可以提供系统1000与连接到系统1000并且可以与系统1000交换数据的外部设备之间的连接。连接接口1480可以包括诸如ATA接口、SATA接口、外部SATA(e-SATA)接口、SCSI、SAS、PCI接口、PCI快速(PCIe)接口、NVM快速(NVMe)接口、电气和电子工程师协会(IEEE)1394、USB接口、SD卡接口、MMC接口、eMMC接口、UFS接口、嵌入式UFS(eUFS)接口和CF卡接口的各种接口。
图11是示出根据本发明构思的实施例的UFS系统2000的框图。
这里,假设UFS系统2000符合联合电子设备工程委员会(JEDEC)发布的一个或更多个技术标准,并且可以包括UFS主机2100、UFS设备2200和UFS接口2300。上面给出的关于图10的系统1000的描述也可以应用于图11的UFS系统2000,除非该描述与下面参照图11给出的描述相矛盾。
参照图11,UFS主机2100和UFS设备2200可以通过UFS接口2300彼此连接。当图10中的主处理器是应用处理器时,UFS主机2100可以被实现为应用处理器的一部分。UFS主机控制器2110可以对应于图10中的主处理器1100的控制器1120,主机存储器2140可以对应于图10中的存储器1200a和1200b。UFS设备2200可以对应于图10中的存储设备1300a和1300b。UFS设备控制器2210可以对应于图10中的存储控制器1310a和1310b。NVM存储装置2220可以对应于图10中的NVM存储装置1320a和1320b。
UFS主机2100可以执行参照图1至图9描述的主机系统100和300的操作,并且UFS设备2200可以执行存储系统200和400的操作。
UFS主机2100可以包括UFS主机控制器2110、应用2120、UFS驱动器2130、主机存储器2140和UFS互连(UIC)层2150。UFS设备2200可以包括UFS设备控制器2210、NVM存储装置2220、存储接口2230、设备存储器2240、UIC层2250和调节器2260。NVM存储装置2220可以包括多个单元存储器2221。单元存储器2221可以包括2D或3D结构的VNAND闪存或诸如PRAM和/或RRAM的其他种类的NVM。UFS设备控制器2210和NVM存储装置2220可以通过存储接口2230彼此连接。存储接口2230可以被实现为符合诸如Toggle或ONFI的标准协议。
应用2120可以指用于与UFS设备2200通信以使用UFS设备2200的功能的程序。应用2120可以向UFS驱动器2130发送用于UFS设备2200的输入/输出的输入输出请求(IOR)。IOR可以包括数据读取请求、数据写入请求和/或数据丢弃请求,但不限于此。
UFS驱动器2130可以通过UFS-主机控制器接口(HCI)来管理UFS主机控制器2110。UFS驱动器2130可以将由应用2120生成的IOR转换为由UFS标准定义的UFS命令,并且可以向UFS主机控制器2110发送UFS命令。单个IOR可以被转换为多个UFS命令。UFS命令可以是SCSI标准定义的命令,也可以是UFS标准的专用命令。
UFS主机控制器2110可以通过UIC层2150和UFS接口2300向UFS设备2200的UIC层2250发送来自UFS驱动器2130的UFS命令。UFS主机控制器2110可以用作命令队列。
UFS主机2100的UIC层2150可以包括MIPI M-PHY 2151和MIPI UniPro2152,并且UFS设备2200的UIC层2250也可以包括MIPI M-PHY 2252和MIPI UniPro 2251。
UFS接口2300可以包括:发送参考时钟信号REF_CLK的线、发送用于UFS设备2200的硬件复位信号RESET_n的线、发送成对的差分输入信号DIN_t和DIN_c的成对的线以及发送成对的差分输出信号DOUT_t和DOUT_c的成对的线。
从UFS主机2100提供给UFS设备2200的参考时钟信号REF_CLK的频率值可以是19.2MHz、26MHz、38.4MHz和52MHz之一,但是不限于此。UFS主机2100即使在操作时或者在与UFS设备2200交换数据时,也可以改变参考时钟信号REF_CLK的频率值。UFS设备2200可以使用锁相环(PLL)等生成具有与从UFS主机2100接收到的参考时钟信号REF_CLK不同频率的时钟信号。UFS主机2100可以使用参考时钟信号REF_CLK的频率值来设置UFS主机2100与UFS设备2200之间的数据速率的值。换句话说,可以根据参考时钟信号REF_CLK的频率值来确定数据速率的值。
UFS接口2300可以支持多个信道,并且每个信道可以被实现为差分对。例如,UFS接口2300可以包括至少一个接收信道和至少一个发送信道。在图11中,发送成对的差分输入信号DIN_t和DIN_c的成对的线可以形成接收信道,而发送成对的差分输出信号DOUT_t和DOUT_c的成对的线可以形成发送信道。尽管在图11中示出了一个发送信道和一个接收信道,但是可以改变发送信道的数目和接收信道的数目。
接收信道和发送信道可以以串行通信模式发送数据。因为接收信道与发送信道分隔开,所以UFS主机2100可以以全双工模式与UFS设备2200通信。换句话说,即使在通过接收信道从UFS主机2100接收数据的同时,UFS设备2200也可以通过发送信道向UFS主机2100发送数据。可以通过与UFS主机2100写入UFS设备2200的NVM存储装置2220或从中读取的用户数据相同的信道,来从UFS主机2100向UFS设备2200发送诸如命令的控制数据。因此,在UFS主机2100与UFS设备2200之间,除了成对的接收信道和发送信道之外,不需要用于数据传输的其他信道。
UFS设备2200的UFS设备控制器2210通常可以控制UFS设备2200的操作。UFS设备控制器2210可以使用与逻辑数据存储单元相对应的逻辑单元2211来管理NVM存储装置2220。逻辑单元2211的数目可以是八个,但不限于此。UFS设备控制器2210可以包括FTL,并且可以使用FTL的地址映射信息将从UFS主机2100接收的逻辑地址数据(例如,LBA)转换为物理数据地址(例如,PBA)。用于在UFS系统2000中存储用户数据的逻辑块可以具有一定范围内的大小。例如,逻辑块的最小大小可以被设置为4KB。
UFS设备控制器2210可以对应于图1中的存储系统200的存储器控制器210。
当通过UIC层2250将来自UFS主机2100的命令输入到UFS设备2200时,UFS设备控制器2210可以执行与该命令相对应的操作,并且在该操作完成之后向UFS主机2100发送完成响应。
例如,当UFS主机2100在UFS设备2200中写入用户数据时,UFS主机2100可以向UFS设备2200发送数据写入命令。当UFS主机2100从UFS设备2200接收到与准备好传输(ready-to-transfer)相对应的响应时,UFS主机2100可以向UFS设备2200发送用户数据。UFS设备控制器2210可以将用户数据临时存储在设备存储器2240中,并将临时存储在设备存储器2240中的用户数据写入到NVM存储装置2220的选定位置。
例如,当UFS主机2100从UFS设备2200读取用户数据时,UFS主机2100可以向UFS设备2200发送数据读取命令。UFS设备控制器2210可以接收数据读取命令,基于数据读取命令从NVM存储装置2220读取数据,并将已读取的用户数据临时存储在设备存储器2240中。在该读取操作中,UFS设备控制器2210可以使用嵌入式纠错码(ECC)电路(未显示)检测并纠正已读取的用户数据中的错误。UFS设备控制器2210可以向UFS主机2100发送已经临时存储在设备存储器2240中的用户数据。UFS设备控制器2210还可以包括高级加密标准(AES)电路(未示出)。AES电路可以使用对称密钥算法对输入到UFS设备控制器2210的数据进行加密或解密。
UFS主机2100可以按顺序将要发送到UFS设备2200的命令存储在可以用作命令队列的UFS主机寄存器2111中,并且按照该顺序向UFS设备2200发送命令。此时,即使在发送到UFS设备2200的命令正在由UFS设备2200处理时,即,即使在通知UFS主机2100发送到UFS设备2200的命令已经被UFS设备完全处理了之前,UFS主机2100也可以向UFS设备2200发送命令队列中的后续命令,并且即使在处理之前接收到的命令的同时,UFS设备2200也可以从UFS主机2100接收后续命令。队列深度(即,可以存储在命令队列中的最大命令数)可以是32。命令队列可以是循环队列,其中头指针和尾指针分别指示存储在其中的命令序列的开始和结束。
每个单元存储器2221可以包括存储单元阵列(未示出)和控制存储单元阵列的操作的控制电路(未示出)。存储单元阵列可以包括2D存储单元阵列或3D存储单元阵列。存储单元阵列包括多个存储单元。每个存储单元可以是存储一位信息的单级单元(SLC)或诸如至少存储两位信息的多级单元(MLC)、三级单元(TLC)或四级单元(QLC)的单元。3D存储单元阵列可以包括垂直取向的NAND串,其中至少一个存储单元布置在另一存储单元上方。
可以将电源电压VCC、VCCQ1和VCCQ2输入到UFS设备2200。电源电压VCC可以是UFS设备2200的主电源电压,并且可以具有大约2.4V至大约3.6V的值。电源电压VCCQ1可以用于提供低范围的电压,并且主要用于UFS设备控制器2210。电源电压VCCQ1可以具有大约1.14V至大约1.26V的值。电源电压VCCQ2可以用于供应低于电源电压VCC且高于电源电压VCCQ1的电压,并且主要用于诸如MIPI M-PHY 1251的输入/输出接口。电源电压VCCQ2可以具有大约1.7V至大约1.95V的值。电源电压VCC、VCCQ1和VCCQ2均可以通过调节器2260被供应给UFS设备2200的相应元件。调节器2260可以被实现为分别连接到电源电压VCC、VCCQ1和VCCQ2的一组调节器单元。
图12是示出根据本发明构思的实施例的存储系统30的框图。
参照图12,存储系统30可以包括存储器件500和存储器控制器600。存储系统30可以支持多个信道,例如,第一至第m信道CH1至CHm。存储器件500可以通过第一至第m信道CH1至CHm连接到存储器控制器600。例如,存储系统30可以由诸如SSD的存储设备来实现。
存储器件500可以包括多个NVM器件NVM11至NVMmn。NVM器件NVM11至NVMmn中的每个NVM器件可以经由相应的方式连接到第一至第m信道CH1至CHm中的一个信道。例如,NVM器件NVM11至NVM1n可以分别经由路径W11至W1n连接到第一信道CH1。NVM器件NVM21至NVM2n可以分别经由路径W21至W2n连接到第二信道CH2。在示例实施例中,NVM器件NVM11至NVMmn均可以由可以根据来自存储器控制器600的单独命令进行操作的单元存储器来实现。例如,NVM器件NVM11至NVMmn均可以在芯片或裸片中实现,但是实施例不限于此。
存储器控制器600可以通过第一至第m信道CH1至CHm与存储器件500交换信号。例如,存储器控制器600可以通过第一至第m信道CH1至CHm向存储器件500发送命令CMDa至CMDm、地址ADDRa至ADDRm以及数据DATAa至DATAm,或者可以通过第一至第m信道CH1至CHm从存储器件500接收数据DATAa至DATAm。
存储器控制器600可以通过信道选择连接到该信道的NVM器件之一,并且可以与所选择的NVM器件交换信号。例如,存储器控制器600可以选择连接到第一信道CH1的NVM器件NVM11至NVM1n当中的NVM器件NVM11。存储器控制器600可以通过第一信道CH1向已选择的NVM器件NVM11发送命令CMDa、地址ADDRa和数据DATAa,或者通过第一信道CH1从已选择的NVM器件NVM11接收数据DATAa。
存储器控制器600可以通过不同的信道并行地与存储器件500交换信号。例如,当通过第一信道CH1向存储器件500发送命令CMDa时,存储器控制器600可以通过第二信道CH2向存储器件500发送命令CMDb。例如,在通过第一信道CH1从存储器件500接收数据DATAa的同时,存储器控制器600可以通过第二信道CH2从存储器件500接收数据DATAb。
存储器控制器600通常可以控制存储器件500的操作。存储器控制器600可以向第一至第m信道CH1至CHm发送信号,以控制连接到第一至第m信道CH1至CHm的NVM器件NVM11至NVMmn中的每一者。例如,存储器控制器600可以向第一信道CH1发送命令CMDa和地址ADDRa,以控制NVM器件NVM11至NVM1n中的选定NVM器件。
NVM器件NVM11至NVMmn均可以在存储器控制器600的控制下操作。例如,NVM设备NVM11可以根据提供给第一信道CH1的命令CMDa、地址ADDRa和数据DATAa来编程数据DATAa。例如,NVM器件NVM21可以根据提供给第二信道CH1的命令CMDb和地址ADDRb读取数据DATAb,并且向存储器控制器600发送已读取的数据DATAb。
尽管存储器件500通过“m”个信道与存储器控制器600通信,并且包括对应于图12中的“m”个信道中的每个信道的“n”个NVM器件,信道的数目和连接到每个信道的NVM器件的数目可以不同地改变。
图13是示出根据本发明构思的实施例的存储系统40的框图。
参照图13,存储系统40通常可以包括存储器件700和存储器控制器800。存储器件700可以与基于图12中的第一至第m信道CH1至CHm之一与存储器控制器800通信的NVM器件NVM11至NVMmn之一相对应。存储器控制器800可以对应于图12中的存储器控制器600。
存储器件700可以包括第一至第八引脚P11至P18、存储器接口电路710、控制逻辑电路720和存储单元阵列730。
存储器接口电路710可以通过第一引脚P11从存储器控制器800接收芯片使能信号nCE。存储器接口电路710可以根据芯片使能信号nCE通过第二至第八引脚P12至P18与存储器控制器800交换信号。例如,当芯片使能信号nCE被使能(例如,处于低电平)时,存储器接口电路710可以根据芯片使能信号nCE通过第二至第八引脚P12至P18与存储器控制器800交换信号。
存储器接口电路710可以分别通过第二至第四引脚P12至P14从存储器控制器800接收命令锁存使能信号CLE、地址锁存使能信号ALE和写入使能信号nWE。存储器接口电路710可以通过第七引脚P17从存储器控制器800接收数据信号DQ或向存储器控制器800发送数据信号DQ。可以通过数据信号DQ发送命令CMD、地址ADDR和数据。例如,可以通过多条数据信号线传输数据信号DQ。在这种情况下,第七引脚P17可以包括分别与数据信号相对应的多个引脚。
存储器接口电路710可以基于写入使能信号nWE的触发定时,从在命令锁存使能信号CLE的使能时段(例如,高电平状态)接收到的数据信号DQ获取命令CMD。存储器接口电路710可以基于写入使能信号nWE的触发定时,从在地址锁存使能信号ALE的使能时段(例如,高电平状态)接收到的数据信号DQ获取地址ADDR。
在示例实施例中,写入使能信号nWE可以保持在静态(例如,高电平或低电平)并且在高电平和低电平之间触发。例如,写入使能信号nWE可以在发送命令CMD或地址ADDR的时段触发。因此,存储器接口电路710可以基于写入使能信号nWE的触发定时来获取命令CMD或地址ADDR。
存储器接口电路710可以通过第五引脚P15从存储器控制器800接收读取使能信号nRE。存储器接口电路710可以通过第六引脚P16从存储器控制器800接收数据选通信号DQS或向存储器控制器800发送数据选通信号DQS。
在存储器件700的数据输出操作中,存储器接口电路710可以在输出数据之前通过第五引脚P15接收触发的读取使能信号nRE。存储器接口电路710可以基于读取使能信号nRE的触发来生成触发的数据选通信号DQS。例如,存储器接口电路710可以生成如下数据选通信号DQS:其在从读取使能信号nRE的触发开始时间起一定的延迟(例如,tDQSRE)之后开始触发。存储器接口电路710可以基于数据选通信号DQS的触发定时来发送包括数据的数据信号DQ。因此,可以与数据选通信号DQS的触发定时一致地向存储器控制器800发送数据。
在存储器件700的数据输入操作中,当从存储器控制器800接收到包括数据的数据信号DQ时,存储器接口电路710可以从存储控制器800接收触发的数据选通信号DQS以及数据。存储器接口电路710可以基于数据选通信号DQS的触发定时从数据信号DQ获取数据。例如,存储器接口电路710可以通过在数据选通信号DQS的上升沿和下降沿对数据信号DQ进行采样来获取数据。
存储器接口电路710可以通过第八引脚P18将就绪/忙碌输出信号nR/B传输到存储器控制器800。存储器接口电路710可以通过就绪/忙碌输出信号nR/B向存储器控制器800发送存储器件700的状态信息。当存储器件700处于忙碌状态时(即,当正在执行存储器件700的内部操作时),存储器接口电路710可以向存储器控制器800发送指示忙碌状态的就绪/忙碌输出信号nR/B。当存储器设备700处于就绪状态时(即,当未执行或已完成存储器设备700的内部操作),存储器接口电路710可以向存储器控制器800发送指示就绪状态的就绪/忙碌输出信号nR/B。例如,当存储器件700响应于读取命令从存储单元阵列730读取数据时,存储器接口电路710可以向存储器控制器800发送指示忙碌状态(例如,低电平)的就绪/忙碌输出信号nR/B。例如,当存储器件700响应于编程命令而将数据编程到存储单元阵列730时,存储器接口电路710可以向存储器控制器800发送指示就绪状态的就绪/忙碌输出信号nR/B。
控制逻辑电路720通常可以控制存储器件700的各种操作。控制逻辑电路720可以从存储器接口电路710接收命令CMD和/或地址ADDR。控制逻辑电路720可以根据命令CMD和/或地址ADDR生成用于控制存储器件700的其他元件的控制信号。例如,控制逻辑电路720可以生成用于将数据编程到存储单元阵列730或从存储单元阵列730读取数据的各种控制信号。
存储单元阵列730可以在控制逻辑电路720的控制下存储来自存储器接口电路710的数据。存储单元阵列730可以在控制逻辑电路720的控制下将已经存储在其中的数据输出到存储器接口电路710。
存储单元阵列730可以包括多个存储单元。例如,存储单元可以包括闪存单元。然而,实施例不限于此。存储单元可以包括RRAM单元、FeRAM单元、PRAM单元、晶闸管RAM(TRAM)单元或MRAM单元。在下文中,将针对存储单元包括NAND闪存单元的情况来描述实施例。
存储器控制器800可以包括第一至第八引脚P21至P28和控制器接口电路810。第一至第八引脚P21至P28可以分别对应于存储器件700的第一至第八引脚P11至P18。
控制器接口电路810可以通过第一引脚P21向存储器件700发送芯片使能信号nCE。控制器接口电路810可以根据芯片使能信号nCE通过第二至第八引脚P22至P28与存储器件700交换信号。
控制器接口电路810可以分别通过第二至第四引脚P22至P24向存储器件700发送命令锁存使能信号CLE、地址锁存使能信号ALE和写入使能信号nWE。控制器接口电路810可以通过第七引脚P27向存储器件700发送数据信号DQ或从存储器件700接收数据信号DQ。
控制器接口电路810可以将包括命令CMD或地址ADDR的数据信号DQ与触发的写入使能信号nWE一起发送到存储器件700。控制器接口电路810可以通过发送处于使能状态的命令锁存使能信号CLE来向存储器件700发送包括命令CMD的数据信号DQ,并且通过发送处于使能状态的地址锁存使能信号ALE来向存储器件700发送包括地址ADDR的数据信号DQ。
控制器接口电路810可以通过第五引脚P25向存储器件700发送读取使能信号nRE。控制器接口电路810可以通过第六引脚P26从存储器件700接收数据选通信号DQS或向存储器件700发送数据选通信号DQS。
在存储器件700的数据输出操作中,控制器接口电路810可以生成并向存储器件700发送触发的读取使能信号nRE。例如,在输出数据之前,控制器接口电路810可以生成从静态(例如,高电平或低电平)转变为触发状态的读取使能信号nRE。因此,存储器件700可以基于读取使能信号nRE生成触发的数据选通信号DQS。控制器接口电路810可以从存储器件700接收包括数据和触发的数据选通信号DQS的数据信号DQ。控制器接口电路810可以基于数据选通信号DQS的触发定时从数据信号DQ获取数据。
在存储器件700的数据输入操作中,控制器接口电路810可以生成触发的数据选通信号DQS。例如,在发送数据之前,控制器接口电路810可以生成从静态(例如,高电平或低电平)转变为触发状态的数据选通信号DQS。控制器接口电路810可以基于数据选通信号DQS的触发定时向存储器件700发送包括数据的数据信号DQ。
控制器接口电路810可以通过第八引脚P28从存储器件700接收就绪/忙碌输出信号nR/B。控制器接口电路810可以基于就绪/忙碌输出信号nR/B来确定存储器件700的状态信息。
图14是示出根据本发明构思的实施例的可应用于UFS设备的接合VNAND(B-VNAND)结构的截面图。
参照图14,存储器件3000可以具有芯片对芯片(C2C)结构。在C2C结构中,包括单元区域CELL的上芯片可以形成在第一晶片上,包括外围电路区域PERI的下芯片可以形成在与第一晶片不同的第二晶片上,并且上芯片可以使用接合方法连接到下芯片。例如,接合方法可以包括将在上芯片的最顶部金属层中形成的接合金属电连接到下芯片的最顶部金属层中形成的接合金属的方法。例如,当接合金属包括铜(Cu)时,接合方法可以包括Cu-Cu接合方法。接合金属可以包括铝或钨。
存储器件3000的外围电路区域PERI和单元区域CELL均可以包括外部焊盘接合区域PA、字线接合区域WLBA和位线接合区域BLBA。
外围电路区域PERI可以包括:第一衬底3210,层间绝缘层3215,形成在第一衬底3210中的多个电路器件3220a、3220b和3220c,分别连接到电路器件3220a、3220b和3220c的第一金属层3230a、3230b和3230c,以及分别形成在第一金属层3230a、3230b和3230c上的第二金属层3240a、3240b和3240c。在实施例中,第一金属层3230a、3230b和3230c可以包括具有相对较高的电阻的钨,并且第二金属层3240a、3240b和3240c可以包括具有相对较低的电阻的铜。
在本说明书中,仅示出和描述了第一金属层3230a、3230b和3230c以及第二金属层3240a、3240b和3240c,但是实施例不限于此。至少一个金属层可以进一步形成在第二金属层3240a、3240b和3240c上。第二金属层3240a、3240b和3240c上的至少一个金属层的至少一部分可以包括电阻比第二金属层3240a、3240b和3240c中包括的铜的电阻低的铝。
层间绝缘层3215可以布置在第一衬底3210上以覆盖电路器件3220a、3220b和3220c、第一金属层3230a、3230b和3230c以及第二金属层3240a、3240b和3240c,并且可以包括诸如氧化硅或氮化硅的绝缘材料。
下接合金属3271b和3272b可以在字线接合区域WLBA中形成在第二金属层3240b上。在字线接合区域WLBA中,可以使用接合方法将外围电路区域PERI的下接合金属3271b和3272b电连接到单元区域CELL的上接合金属3371b和3372b。下接合金属3271b和3272b以及上接合金属3371b和3372b可以包括铝、铜或钨。
单元区域CELL可以提供至少一个存储块。单元区域CELL可以包括第二衬底3310和公共源极线3320。多条字线3331至3338(统称为3330)可以沿垂直于第二衬底3310的顶表面的方向(例如,Z轴方向)堆叠在第二衬底3310上。串选择线可以布置在字线3330上方,而接地选择线可以布置在字线3330下方。字线3330可以布置在串选择线与接地选择线之间。
在位线接合区域BLBA中,沟道结构CHS可以在垂直于第二衬底3310的顶表面的方向上延伸,并且穿过字线3330、串选择线和接地选择线。沟道结构CHS可以包括数据存储层、沟道层和掩埋绝缘层。沟道层可以电连接到第一金属层3350c和第二金属层3360c。例如,第一金属层3350c可以对应于位线接触,并且第二金属层3360c可以对应于位线并且在下面可以被称为位线3360c。在实施例中,位线3360c可以在平行于第二衬底3310的顶表面的第一方向(例如,Y轴方向)上延伸。
在图14的实施例中,布置有沟道结构CHS和位线3360c的区域可以被定义为位线接合区域BLBA。位线3360c可以在位线接合区域BLBA中电连接到电路器件3220c,该电路器件3220c在外围电路区域PERI中提供页面缓冲器3393。例如,位线3360c可以在位线接合区域BLBA中连接到上接合金属3371c和3372c,并且上接合金属3371c和3372c可以连接到与页面缓冲器3393的电路器件3220c连接的下接合金属3271c和3272c。
在字线接合区域WLBA中,字线3330可以在与第二衬底3310的顶表面平行的第二方向(例如,X轴方向)上延伸,并且可以连接到多个单元接触插塞3341至3347(统称为3340)。字线3330可以通过焊盘连接到单元接触插塞3340,焊盘由在第二方向上以不同长度延伸的至少一些字线3330提供。第一金属层3350b和第二金属层3360b可以顺序地堆叠在连接到字线3330的每个单元接触插塞3340上。字线接合区域WLBA中的单元接触插塞3340可以通过单元区域CELL的上接合金属3371b和3372b以及外围电路区域PERI的下接合金属3271b和3272b连接到外围电路区域PERI。
单元接触插塞3340可以电连接到在外围电路区域PERI中提供行译码器3394的电路器件3220b。在实施例中,提供行译码器3394的电路器件3220b的工作电压可以不同于提供页面缓冲器3393的电路器件3220c的工作电压。例如,提供页面缓冲器3393的电路器件3220c的工作电压可以大于提供行译码器3394的电路器件3220b的工作电压。
公共源极线接触插塞3380可以布置在外部焊盘接合区域PA中。公共源极线接触插塞3380可以包括诸如金属、金属化合物或多晶硅的导电材料,并且可以电连接到公共源极线3320。第一金属层3350a和第二金属层3360a可以顺序地堆叠在公共源极线接触插塞3380上。例如,布置有公共源极线接触插塞3380、第一金属层3350a和第二金属层3360a的区域可以被定义为外部焊盘接合区域PA。
第一输入/输出焊盘3205和第二输入/输出焊盘3305可以布置在外部焊盘接合区域PA中。参照图14,覆盖第一衬底3210的底表面的下绝缘膜3201可以形成在第一衬底3210的下方,并且第一输入/输出焊盘3205可以形成在下绝缘膜3201上。第一输入/输出焊盘3205可以通过第一输入/输出接触插塞3203连接到外围电路区域PERI的电路器件3220a、3220b和3220c中的至少一者,并且可以通过下绝缘膜3201与第一衬底3210隔离。侧绝缘膜可以布置在第一输入/输出接触插塞3203与第一衬底3210之间,以将第一输入/输出接触插塞3203与第一衬底3210电隔离。
参照图14,覆盖第二衬底3310的顶表面的上绝缘膜3301可以形成在第二衬底3310上方,并且第二输入/输出焊盘3305可以布置在上绝缘膜3301上。第二输入/输出焊盘3305可以通过第二输入/输出接触插塞3303连接到外围电路区域PERI的电路器件3220a、3220b和3220c中的至少一者。
根据实施例,第二衬底3310和公共源极线3320可以不布置在布置有第二输入/输出接触插塞3303的区域中。第二输入/输出焊盘3305在第三方向(例如,Z轴方向)上可以不与字线3330交叠。参照图14,第二输入/输出接触插塞3303可以在与第二衬底3310的顶表面平行的方向上与第二衬底3310分隔开,并且可以穿过单元区域CELL的层间绝缘层3315以连接到第二输入/输出焊盘3305。
根据实施例,可以选择性地形成第一输入/输出焊盘3205和第二输入/输出焊盘3305。例如,存储器件3000可以仅包括第一衬底3210上的第一输入/输出焊盘3205,或者仅包括第二衬底3310上的第二输入/输出焊盘3305。或者,存储器件3000可以包括第一输入/输出焊盘3205和第二输入/输出焊盘3305两者。
在单元区域CELL和外围电路区域PERI中的每一者的外部焊盘接合区域PA中,最顶部金属层的金属图案可以被设置为虚设图案,或者最顶部金属层可以为空。
对应于单元区域CELL的最顶部金属层中的上金属图案3372a,具有与单元区域CELL的上金属图案3372a相同形状的下金属图案3273a可以在外部焊盘接合区域PA中形成在外围电路区域PERI的最顶部金属层中。外围电路区域PERI的最顶部金属层中的下金属图案3273a可以不连接到外围电路区域PERI中的接触。类似地,对应于外部焊盘结合区域PA中外围电路区域PERI的最顶部金属层中的下金属图案,具有与外围电路区域PERI的下金属图案相同形状的上金属图案可以形成在单元区域CELL的最顶部金属层中。
下接合金属3271b和3272b可以在字线接合区域WLBA中形成在第二金属层3240b上。在字线接合区域WLBA中,可以使用接合方法将外围电路区域PERI的下接合金属3271b和3272b电连接到单元区域CELL的上接合金属3371b和3372b。
对应于形成在外围电路区域PERI的最上部金属层中的下金属图案3252,在位线接合区域BLBA中,具有与外围电路区域PERI的下金属图案3252相同形状的上金属图案3392可以形成在单元区域CELL的最顶部金属层上。在单元区域CELL的最上部金属层中的上金属图案3392上可以不形成接触。
尽管已经参考本发明的实施例具体示出和描述了本发明构思,但是应当理解,在不脱离所附权利要求的精神和范围的情况下,可以对本文进行形式和细节上的各种改变。

Claims (20)

1.一种被配置为与主机系统通信的存储系统,所述存储系统包括:
存储器件;和
控制器,所述控制器被配置为:从所述主机系统接收新数据和盖写请求,其中,所述盖写请求包括用于旧数据的第一逻辑地址和用于所述新数据的与所述第一逻辑地址不同的第二逻辑地址;以及响应于所述盖写请求,通过将对应于所述第二逻辑地址的所述新数据写入所述存储器件并使对应于所述第一逻辑地址的所述旧数据无效来执行盖写操作。
2.根据权利要求1所述的存储系统,其中,所述控制器包括用于存储元数据的存储器,所述元数据包括逻辑地址与物理地址之间的映射信息,并且所述控制器还被配置为:在所述新数据被写入所述存储器件并且所述旧数据被无效时,更新所述元数据。
3.根据权利要求2所述的存储系统,其中,所述元数据的更新包括:使所述第一逻辑地址与第一物理地址之间的映射信息无效,以及将所述第二逻辑地址与第二物理地址之间的映射信息添加到所述元数据。
4.根据权利要求1所述的存储系统,其中,所述盖写请求包括指示写入命令类型的字段;
当指示写入命令类型的所述字段具有第一值时,所述旧数据的无效被执行;当指示写入命令类型的所述字段具有不同于所述第一值的第二值时,所述旧数据的无效不被执行。
5.根据权利要求1所述的存储系统,其中,所述控制器包括存储器和元数据管理器,所述存储器存储用于所述旧数据和所述新数据的元数据,所述元数据管理器被配置为管理所述元数据;并且
所述控制器进一步被配置为从所述主机系统顺序地接收分别与因数据拆分产生的部分数据相关联的多个盖写请求,
其中,所述元数据管理器进一步被配置为根据因执行与所述多个盖写请求相对应的盖写而导致的所述元数据的改变来更新所述元数据。
6.根据权利要求5所述的存储系统,其中,所述多个盖写请求均包括指示盖写是否作为原子写入来执行的字段,并且
根据所述多个盖写请求中的每个盖写请求的指示盖写是否作为原子写入来执行的所述字段,所述元数据的更新被选择性地执行。
7.根据权利要求6所述的存储系统,其中,所述元数据管理器进一步被配置为:每当响应于所述多个盖写请求中的一个盖写请求执行盖写时,根据所述元数据的改变来更新所述元数据。
8.根据权利要求6所述的存储系统,其中,改变后的所述元数据被顺序地缓冲在缓冲器中,直到因执行与所述多个盖写请求相对应的盖写而导致的改变结束为止,然后,
所述元数据管理器根据被缓冲的元数据来更新所述元数据。
9.一种用于被配置为与主机系统通信的存储系统的控制器,所述控制器被配置为:从所述主机系统接收新数据和盖写请求,其中,所述盖写请求选择性地包括用于旧数据的第一逻辑地址并且包括用于所述新数据的与所述第一逻辑地址不同的第二逻辑地址;以及响应于所述盖写请求,通过将对应于所述第二逻辑地址的所述新数据写入存储器件并使对应于所述第一逻辑地址的所述旧数据无效来执行盖写操作。
10.根据权利要求9所述的控制器,其中,所述控制器还被配置为:在所述新数据被写入所述存储器件并且所述旧数据被无效时,更新包括逻辑地址与物理地址之间的映射信息的元数据。
11.根据权利要求10所述的控制器,其中,所述控制器进一步被配置为使所述元数据中的所述第一逻辑地址与第一物理地址之间的映射信息无效,并且将所述第二逻辑地址与第二物理地址之间的映射信息添加到所述元数据。
12.根据权利要求9所述的控制器,其中,所述盖写请求包括指示写入命令类型的字段,
所述控制器还被配置为:当所述盖写请求包括所述第一逻辑地址,且指示写入命令类型的所述字段具有第一值时,使所述旧数据无效;
当所述盖写请求不包括所述第一逻辑地址,且指示写入命令类型的所述字段具有不同于所述第一值的第二值时,不使所述旧数据无效。
13.根据权利要求9所述的控制器,其中,所述控制器包括存储器和元数据管理器,所述存储器存储用于所述旧数据和所述新数据的元数据,所述元数据管理器被配置为管理所述元数据,
所述控制器进一步被配置为从所述主机系统顺序地接收分别与因数据拆分而产生的部分数据相关联的多个盖写请求,并且
所述元数据管理器进一步被配置为根据与执行与所述多个盖写请求相对应的盖写操作相关联的所述元数据的改变来更新所述元数据。
14.根据权利要求13所述的控制器,其中,所述多个盖写请求均包括指示是否通过原子写入执行盖写的字段,并且
所述控制器还被配置为:响应于所述多个盖写请求中的每个盖写请求的指示是否通过原子写入执行盖写的所述字段,分别执行所述盖写操作。
15.根据权利要求14所述的控制器,其中,所述元数据管理器进一步被配置为针对所述盖写操作中的每个盖写操作,根据所述元数据的改变来更新所述元数据。
16.根据权利要求14所述的控制器,其中,针对与所述多个盖写请求相对应的所述盖写操作中的每个盖写操作,所述元数据的改变被存储在缓冲器中;并且
所述元数据管理器进一步被配置为一旦所述盖写操作中的最后一个盖写操作完成,就根据存储在所述缓冲器中的所述元数据来更新所述元数据。
17.一种被配置为与主机系统通信的存储系统的操作方法,所述操作方法包括:
从所述主机系统接收新数据和与文件更新请求相对应的盖写请求,其中,所述盖写请求包括用于旧数据的第一逻辑地址和用于所述新数据的与所述第一逻辑地址不同的第二逻辑地址;
响应于所述盖写请求,将与所述第二逻辑地址相对应的所述新数据写入所述存储系统的存储器件;以及
作为对响应于所述盖写请求而执行的盖写操作的响应,根据用于所述旧数据和所述新数据的元数据来更新所述元数据。
18.根据权利要求17所述的操作方法,其中,所述元数据包括逻辑地址与物理地址之间的映射信息,并且
所述元数据的更新包括:使所述元数据中的所述第一逻辑地址与第一物理地址之间的映射信息无效,以及将所述第二逻辑地址与第二物理地址之间的映射信息添加到所述元数据。
19.根据权利要求17所述的操作方法,其中,所述盖写请求包括指示写入命令类型的字段,并且
所述元数据的更新包括:当所述盖写请求包括所述第一逻辑地址并且指示写入命令类型的所述字段具有第一值时,使所述旧数据无效。
20.根据权利要求17所述的操作方法,其中,接收所述盖写请求包括:当所述盖写请求中包括的数据的大小超过参考值时,顺序地接收分别与因数据拆分而产生的多个部分数据相关联的多个盖写请求,并且
所述多个盖写请求均包括指示是否通过原子写入执行盖写的字段。
CN202110614630.8A 2020-08-11 2021-06-02 存储系统、存储系统的控制器及存储系统的操作方法 Pending CN114077391A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2020-0100739 2020-08-11
KR1020200100739A KR20220020143A (ko) 2020-08-11 2020-08-11 오버라이트 처리를 수행하는 스토리지 시스템, 스토리지 시스템을 제어하는 호스트 시스템 및 스토리지 시스템의 동작 방법

Publications (1)

Publication Number Publication Date
CN114077391A true CN114077391A (zh) 2022-02-22

Family

ID=76553539

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110614630.8A Pending CN114077391A (zh) 2020-08-11 2021-06-02 存储系统、存储系统的控制器及存储系统的操作方法

Country Status (4)

Country Link
US (2) US11561723B2 (zh)
EP (1) EP3955102B1 (zh)
KR (1) KR20220020143A (zh)
CN (1) CN114077391A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11977479B2 (en) * 2022-01-11 2024-05-07 Western Digital Technologies, Inc. Log file system (LFS) invalidation command and operational mode

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3692313B2 (ja) * 2001-06-28 2005-09-07 松下電器産業株式会社 不揮発性メモリの制御方法
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
KR101654774B1 (ko) 2010-02-08 2016-09-06 시게이트 테크놀로지 엘엘씨 데이터 저장 장치와 저장 매체 액세스 방법 및 그에 대한 저장 매체
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
US10013354B2 (en) * 2010-07-28 2018-07-03 Sandisk Technologies Llc Apparatus, system, and method for atomic storage operations
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
US10133662B2 (en) * 2012-06-29 2018-11-20 Sandisk Technologies Llc Systems, methods, and interfaces for managing persistent data of atomic storage operations
CN102799392B (zh) * 2012-06-16 2015-12-16 北京忆恒创源科技有限公司 存储设备及其中断控制方法
KR20150002297A (ko) 2013-06-28 2015-01-07 삼성전자주식회사 스토리지 시스템 및 그의 동작 방법
US10223208B2 (en) * 2013-08-13 2019-03-05 Sandisk Technologies Llc Annotated atomic write
US9111598B2 (en) 2013-09-16 2015-08-18 Netapp, Inc. Increased I/O rate for solid state storage
US9304937B2 (en) 2013-10-23 2016-04-05 Netapp Inc. Atomic write operations for storage devices
US9678966B2 (en) * 2013-11-08 2017-06-13 Samsung Electronics Co., Ltd. Swat command and API for atomic swap and trim of LBAs
US9684658B2 (en) * 2013-11-08 2017-06-20 Samsung Electronics Co., Ltd. SWAT command and API for atomic swap and trim of logical pages
US20160218739A1 (en) * 2014-02-17 2016-07-28 Mediatek Inc. Data access methods and data access devices utilizing the same
US9747298B2 (en) 2014-05-02 2017-08-29 Vmware, Inc. Inline garbage collection for log-structured file systems
GB2527529B (en) * 2014-06-24 2021-07-14 Advanced Risc Mach Ltd A device controller and method for performing a plurality of write transactions atomically within a non-volatile data storage device
KR102249810B1 (ko) 2014-07-23 2021-05-11 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US9858289B2 (en) * 2015-11-05 2018-01-02 International Business Machines Corporation Storage controller and method for managing a solid-state memory
US9898202B2 (en) * 2015-11-30 2018-02-20 Samsung Electronics Co., Ltd. Enhanced multi-streaming though statistical analysis
KR101834082B1 (ko) 2016-08-31 2018-03-02 울산과학기술원 다중 ssd 시스템 관리 장치 및 방법
CN107797755B (zh) * 2016-09-05 2021-01-08 上海宝存信息科技有限公司 固态硬盘系统的原子写入方法以及使用该方法的装置
KR102304130B1 (ko) * 2019-06-07 2021-09-23 성균관대학교산학협력단 비휘발성 랜덤 액세스 메모리를 이용한 세그먼트 클리닝 방법 및 이를 구현하기 위한 메모리 관리 장치

Also Published As

Publication number Publication date
KR20220020143A (ko) 2022-02-18
US11561723B2 (en) 2023-01-24
EP3955102A1 (en) 2022-02-16
US12061816B2 (en) 2024-08-13
US20220050620A1 (en) 2022-02-17
EP3955102B1 (en) 2024-04-17
US20230132327A1 (en) 2023-04-27

Similar Documents

Publication Publication Date Title
KR20190057887A (ko) 데이터 저장 장치 및 그것의 동작 방법
US11698855B2 (en) Method, memory controller and storage device to perform garbage collection based on fragmentation ratio of blocks
KR20200114212A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20220197510A1 (en) Storage device for executing processing code and operating method of the storage device
CN110119326B (zh) 数据存储装置及其操作方法
CN111752858A (zh) 控制器、存储器系统及其操作方法
US12061816B2 (en) Storage system performing overwrite, host system controlling storage system, and operating method for storage system
KR102434840B1 (ko) 데이터 저장 장치
US11281590B2 (en) Controller, operating method thereof and storage device including the same
KR102695482B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20240124738A (ko) 스토리지 장치 및 이의 동작 방법
US11036629B2 (en) Controller, memory system and operating method thereof
KR20210156061A (ko) 저장 장치 및 그 동작 방법
KR102583244B1 (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
US20240201898A1 (en) Storage device performing atomic write, host controlling storage device, and operating method of storage device
EP4220374A1 (en) Storage device and operating method of storage device
US20230195333A1 (en) Storage device and operation method of electronic system
US20240143237A1 (en) Storage device and electronic device including the same
US11216384B2 (en) Controller, memory system and operating method of the controller
US20240012564A1 (en) Memory controller and storage device including the same
KR20230161236A (ko) 임베디드 저장 장치, 그것을 갖는 호스트 시스템 및 그것의 동작 방법
KR20240058680A (ko) 저장 장치 및 이를 포함하는 전자 장치
KR20240087394A (ko) 저장 장치 및 이를 포함하는 전자 장치
KR20200125216A (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