CN111128287A - 操作存储设备的方法、存储设备以及操作存储系统的方法 - Google Patents

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

Info

Publication number
CN111128287A
CN111128287A CN201910879584.7A CN201910879584A CN111128287A CN 111128287 A CN111128287 A CN 111128287A CN 201910879584 A CN201910879584 A CN 201910879584A CN 111128287 A CN111128287 A CN 111128287A
Authority
CN
China
Prior art keywords
data read
data
storage device
meta
metadata
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
CN201910879584.7A
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 CN111128287A publication Critical patent/CN111128287A/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/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种操作存储设备的方法包括:在存储设备处基于数据读取请求接收元信息传送命令。从主机设备接收元信息传送命令。所述方法还包括:在存储设备处接收与数据读取请求和元信息传送命令相对应的数据读取命令。从主机设备接收数据读取命令。所述方法还包括:在存储设备处接收与数据读取请求和元信息传送命令相对应的多个元数据。从主机设备接收多个元数据。所述方法还包括:在存储设备处基于数据读取命令和多个元数据执行数据读取操作。

Description

操作存储设备的方法、存储设备以及操作存储系统的方法
相关申请的交叉引用
本申请要求2018年10月31日在韩国知识产权局(KIPO)提交的第10-2018-0131859号韩国专利申请的优先权,其全部公开内容通过引用合并于此。
技术领域
示例性实施例大体上涉及半导体集成电路,更具体地,涉及操作存储设备的方法、执行所述方法的存储设备、以及使用所述方法操作存储系统的方法。
背景技术
存储系统包括主机设备和存储设备。存储设备可以是包括存储器控制器和存储器设备或者仅包括存储器设备的存储器系统。在存储系统中,主机设备和存储设备通过各种接口标准相互连接,接口标准例如是通用闪存(UFS)、串行高级技术附件(SATA)、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、嵌入式多媒体卡(eMMC)等。主机设备包括与存储设备分离的主机存储器。
发明内容
本发明构思的示例性实施例提供了一种操作存储设备的方法,其能够有效地读取大量数据。
本发明构思的示例性实施例提供了一种执行所述方法的存储设备,其能够有效地读取大量数据。
本发明构思的示例性实施例提供了一种使用操作存储设备的方法来操作存储系统的方法。
根据示例性实施例,一种操作存储设备的方法包括:在存储设备处基于数据读取请求接收元信息传送命令。元信息传送命令是从主机设备接收的。所述方法还包括:在存储设备处接收与数据读取请求和元信息传送命令相对应的数据读取命令。数据读取命令是从主机设备接收的。所述方法还包括:在存储设备处接收与数据读取请求和元信息传送命令相对应的多个元数据。多个元数据是从主机设备接收的。所述方法还包括:在存储设备处基于数据读取命令和多个元数据执行数据读取操作。
根据示例性实施例,一种存储设备包括多个非易失性存储器和存储控制器。多个非易失性存储器存储多个数据。存储控制器控制多个非易失性存储器的操作。存储控制器基于数据读取请求接收元信息传送命令,接收与数据读取请求和元信息传送命令相对应的数据读取命令,接收与数据读取请求和元信息传送命令相对应的多个元数据,并基于数据读取命令和多个元数据执行数据读取操作。
根据示例性实施例,一种操作包括主机设备和存储设备的存储系统的方法包括:将存储设备中存储的多个元数据发送到主机设备,将多个元数据存储在主机设备中包括的主机存储器中,基于数据读取请求将元信息传送命令从主机设备发送到存储设备,将与数据读取请求和元信息传送命令相对应的数据读取命令从主机设备发送到存储设备,并且将与数据读取请求和元信息传送命令相对应的第一元数据从主机设备发送到存储设备。第一元数据是多个元数据的一部分。所述方法还包括:在存储设备上基于数据读取命令和第一元数据执行数据读取操作。
根据示例性实施例,一种存储系统包括主机设备和存储设备。存储设备被配置为将存储设备中存储的多个元数据发送到主机设备。主机设备被配置为将由存储设备发送的多个元数据存储在主机设备中包括的主机存储器中,基于数据读取请求将元信息传送命令发送到存储设备,将与数据读取请求和元信息传送命令相对应的数据读取命令发送到存储设备,并将与数据读取请求和元信息传送命令相对应的第一元数据发送到存储设备。第一元数据是多个元数据的一部分。存储设备还被配置为基于数据读取命令和第一元数据执行数据读取操作。
在根据示例性实施例的操作存储设备的方法、操作存储系统的方法和存储设备中,可以在主机存储器中存储或累积大量元数据,可以基于单个数据读取请求接收两个命令(例如,元信息传送命令和数据读取命令)和大量元数据(例如,相关联的元数据),并且可以基于接收的数据读取命令和接收的元数据来执行数据读取操作(例如,大规模读取操作)。因此,可以有效地读取大量数据和/或各种大小的数据。
附图说明
通过参考附图详细描述本发明构思的示例性实施例,本发明构思的上述和其他特征将变得更加清楚,在附图中:
图1是示出了根据示例性实施例的操作存储设备的方法的流程图。
图2是示出了根据示例性实施例的存储设备和包括存储设备的存储系统的框图。
图3A和图3B是用于描述根据示例性实施例的操作存储设备的方法的示意图。
图4是示出了根据示例性实施例的在操作存储设备的方法中使用的元信息传送命令的示例的示意图。
图5是示出了根据示例性实施例的在操作存储设备的方法中使用的数据读取命令的示例的示意图。
图6是示出了根据示例性实施例的在操作存储设备的方法中使用的多个元数据的示例的示意图。
图7是示出了执行图1中的数据读取操作的示例的流程图。
图8是示出了图1的操作存储设备的方法的示例的流程图。
图9是用于描述图8的操作存储设备的方法的示意图。
图10是示出了图1的操作存储设备的方法的示例的流程图。
图11是用于描述图10的操作存储设备的方法的示意图。
图12是示出了根据示例性实施例的存储设备中包括的非易失性存储器设备的框图。
图13和图14是示出了根据示例性实施例的操作存储系统的方法的流程图。
图15是示出了根据示例性实施例的电子系统的框图。
具体实施方式
以下将参考附图更全面地描述本发明构思的示例性实施例。贯穿整个附图,相似的附图标记可以指代相似的元件。
图1是示出了根据示例性实施例的操作存储设备的方法的流程图。
参考图1,根据示例性实施例的存储设备基于从外部主机设备接收的命令执行数据读取操作。将参考图2描述存储设备和包括存储设备的存储系统的配置。
在根据示例性实施例的操作存储设备的方法中,存储设备基于数据读取请求接收元信息传送命令(操作S100),接收与数据读取请求和元信息传送命令相对应的数据读取命令(操作S200),并接收与数据读取请求和元信息传送命令相对应的多个元数据(操作S300)。如将参考图8至图11描述的,可以首先执行操作S100,稍后可以执行操作S200和S300,并且可以改变操作S200和S300的顺序。例如,根据示例性实施例,可以在操作S300之前执行操作S200,或者可以在操作S200之前执行操作S300。
可以从外部主机设备提供所有元信息传送命令、数据读取命令和多个元数据。另外,多个元数据可以包括与用于执行数据读取操作的多个物理地址相关联的信息。将分别参考图4、图5和图6描述元信息传送命令、数据读取命令和多个元数据的配置。
存储设备基于数据读取命令和多个元数据执行数据读取操作(操作S400)。
在示例性实施例中,数据读取请求可以是一次或顺序读取大于预定大小的大量数据的大规模读取请求,因此数据读取操作可以是大规模读取操作。例如,预定大小可以是通过一个正常数据读取请求和一个正常数据读取命令读出的数据的大小。
在示例性实施例中,数据读取请求可以是单个读取请求。例如,可以基于单个数据读取请求同时和/或顺序地接收两个命令(例如,元信息传送命令和数据读取命令)和大量元数据,并且可以基于两个命令和大量元数据来执行数据读取操作(例如,大规模读取操作)。
根据示例性实施例的存储设备可以基于主机性能增强器(HPB)方案或主机存储器缓冲器(HMB)方案来操作。HPB方案表示通过将与存储设备的操作相关联的元数据存储在主机存储器中,将包括在主机设备中的主机存储器用作存储设备的高速缓存存储器。通常,包括在存储设备中的缓冲存储器可能具有相对小的容量,因此可能无法一次存储用于存储设备的所有元数据。另外,通常包括在存储设备中并用作数据存储空间的非易失性存储器可以具有比缓冲存储器和主机存储器的操作速度更慢的操作速度。主机存储器的容量可以大于缓冲存储器的容量,并且主机存储器的操作速度比非易失性存储器的操作速度更快,因此通过使用主机存储器作为存储设备的高速缓存存储器,可以提高对存储设备的访问性能。因此,示例性实施例使用主机存储器作为存储设备的高速缓存存储器,如下面进一步详细描述的。
在根据示例性实施例的操作存储设备的方法中,可以基于HPB方案在主机存储器中存储或累积大量元数据,可以基于单个数据读取请求接收两个命令(例如,元信息传送命令和数据读取命令)和大量元数据(例如,相关联的元数据),并且可以基于接收的数据读取命令和接收的元数据执行数据读取操作(例如,大规模读取操作)。因此,可以有效地读取大量数据和/或各种大小的数据。
图2是示出了根据示例性实施例的存储设备和包括存储设备的存储系统的框图。
参考图2,存储系统100包括主机设备200和存储设备300。
主机设备200控制存储系统100的整体操作。主机设备200可以包括处理器210和主机存储器220。
处理器210可以控制主机设备200的操作。例如,处理器210可以执行操作系统(OS)。如将参考图3A和图3B描述的,操作系统可以包括用于文件管理的文件系统和用于在操作系统级别控制包括存储设备300的外围设备的设备驱动器。处理器210可以包括各种处理单元中的至少一个,例如中央处理单元(CPU)。
主机存储器220可以存储由处理器210执行和/或处理的指令和/或数据。主机存储器220可以是具有相对高或快的操作速度的存储器设备。例如,主机存储器220可以是与非易失性存储器320a、320b和320c和/或存储设备300的缓冲存储器330相比具有相对高或快的操作速度的存储器设备。主机存储器220可以至少包括各种易失性存储器之一,例如动态随机存取存储器(DRAM)。
另外,主机存储器220可以从存储设备300接收与存储设备300的操作相关联的所有元数据MDAT,以存储元数据MDAT。所有元数据MDAT在本文中也可以称为多个元数据MDAT。例如,元数据MDAT可以在内部存储在存储设备300中,并且可以在存储系统100被引导(例如,通电)或重置时从存储设备300提供到主机存储器220。存储系统100可以基于HPB方案进行操作,其中使用存储在主机存储器220中的元数据MDAT来访问存储设备300,因此可以提高对存储设备300的访问性能。
存储设备300由主机设备200访问。存储设备300可以包括存储控制器310、多个非易失性存储器320a、320b和320c、以及缓冲存储器330。
存储控制器310可以基于从主机设备200接收的命令和数据来控制存储设备300的操作,例如,数据读取操作。例如,存储控制器310可以从主机设备200接收元信息传送命令HPB_PREF_CMD、数据读取命令HPB_RD_CMD和多个元数据MDAT1~MDATN,可以基于元信息传送命令HPB_PREF_CMD、数据读取命令HPB_RD_CMD和多个元数据MDAT1~MDATN执行数据读取操作以读取目标数据RDAT(例如,要检索的数据),并且可以将目标数据RDAT输出到主机设备200。
多个非易失性存储器320a、320b和320c可以存储多个数据。例如,多个非易失性存储器320a、320b和320c可以存储元数据MDAT、目标数据RDAT、各种用户数据等。
在示例性实施例中,多个非易失性存储器320a、320b和320c中的每一个可以包括各种非易失性存储器中的至少一种,例如,电可擦除可编程只读存储器(EEPROM)、闪存、相变随机存取存储器(PRAM)、电阻随机存取存储器(RRAM)、纳米浮栅存储器(NFGM)、聚合物随机存取存储器(PoRAM)、磁随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)等。
缓冲存储器330可以存储由存储控制器310执行和/或处理的指令和/或数据,并且可以临时存储多个非易失性存储器320a、320b和320c中存储或要存储的数据。缓冲存储器330可以包括各种易失性存储器中的至少一种,例如静态随机存取存储器(SRAM)。
在示例性实施例中,主机存储器220的容量可以大于缓冲存储器330的容量。
在示例性实施例中,存储设备300可以是通用闪存(UFS)。在示例性实施例中,存储设备300可以是以下各项之一:固态驱动器(SSD)、多媒体卡(MMC)、嵌入式多媒体卡(eMMC)、安全数字(SD)卡、微型SD卡、记忆棒、芯片卡、通用串行总线(USB)卡、智能卡、紧凑型闪存(CF)卡等。
在示例性实施例中,存储设备300可以通过块可访问接口连接到主机设备200,该接口可以包括例如UFS、eMMC、串行高级技术附件(SATA)总线、非易失性存储器表达(NVMe)总线、串行附接SCSI(SAS)总线等。存储设备300可以使用与多个非易失性存储器320a、320b和320c的访问大小相对应的块可访问地址空间,以向主机设备200提供块可访问接口,以允许以存储器块为单位对存储在多个非易失性存储器320a、320b和320c中的数据进行访问。
在示例性实施例中,存储系统100可以是任何移动系统,例如移动电话、智能电话、平板电脑、膝上型计算机、个人数字助理(PDA)、便携式多媒体播放器(PMP)、数码相机、便携式游戏机、音乐播放器、摄像机、视频播放器、导航设备、可穿戴设备、物联网(IoT)设备、万物互联(IoE)设备、电子书阅读器、虚拟现实(VR)设备、增强现实(AR)设备、机器人设备等。在示例性实施例中,存储系统100可以是任何计算系统、例如个人计算机(PC)、服务器计算机、工作站、数字电视、机顶盒、导航系统等。
图3A和图3B是用于描述根据示例性实施例的操作存储设备的方法的示意图。图3A和图3B概念性地示出了图2中的主机设备200和存储设备300的软件层次结构和存储空间结构。
参考图3A和图3B,主机设备200可以包括应用232、文件系统234、块层236、设备驱动器238和主机存储器220。存储设备300可以包括闪存转换层(FTL)342、至少一个非易失性存储器320和缓冲存储器330。主机设备200的应用232、文件系统234、块层236和设备驱动器238可以被称为高级别。存储设备300的闪存转换层342和非易失性存储器320可以被称为低级别。
应用232可以是在操作系统上执行的应用软件程序。例如,应用232可以被编程为帮助生成、复制和删除文件。应用232可以提供各种服务,例如视频应用、游戏应用、网络浏览器应用等。
文件系统234可以管理由主机设备200使用的文件。文件系统234可以管理例如通过来自主机设备200的请求或由主机设备200执行的应用访问的文件的文件名、扩展名、文件属性、文件大小、集群信息等。文件系统234可以基于文件生成、删除和管理数据。例如,文件系统234可以基于日志结构方案管理文件,其中数据和元数据被顺序写入称为日志的循环缓冲器。
块层236可以被称为块输入/输出层,并且可以以存储器块为单位执行数据读/写操作。例如,可以基于块层236来实现块可访问接口。
设备驱动器238可以在操作系统级别控制存储设备300。设备驱动器238可以是例如用于控制存储设备300的内核的软件模块。主机设备200或由主机设备200执行的应用可以经由设备驱动器238向存储设备300请求数据读/写操作。
图3A和图3B中的主机存储器220可以与图2中的主机存储器220基本相同。例如,当存储系统100被引导或重置时,主机设备200可以接收存储设备300的所有元数据MDAT,可以将元数据MDAT存储在主机存储器220中,并且可以使用存储在主机存储器220中的元数据MDAT来访问存储设备300,如参考图2所描述的。
闪存转换层342可以将从主机设备200提供的逻辑地址转换为非易失性存储器320中的物理地址,并且可以管理存储在非易失性存储器320中的数据。
图3A和图3B中的非易失性存储器320和缓冲存储器330可以分别与图2中的非易失性存储器320a、320b和320c以及缓冲存储器330基本相同。例如,非易失性存储器320可以存储元数据MDAT、目标数据RDAT和用户数据,并且可以执行数据读/写/擦除操作,如参考图2所描述的。缓冲存储器330可以临时存储非易失性存储器320中存储或要存储的数据。
将参考图3A和图3B描述操作图1的存储设备的方法。
首先,如图3A所示,应用232可以为存储在存储设备300中的特定文件生成文件请求F_REG。文件系统234可以生成与文件请求F_REG相对应的读取请求R_REQ,并且块层236可以生成与读取请求R_REQ相对应的输入/输出请求IO_REQ。文件请求F_REG、读取请求R_REQ和输入/输出请求IO_REQ中的至少一个可以指示参考图1描述的数据读取请求,并且数据读取请求可以是单个读取请求。例如,如本文所使用的,数据读取请求可以指文件请求F_REG、读取请求R_REQ和输入/输出请求IO_REQ中的至少一个。
设备驱动器238可以基于数据读取请求生成元信息传送命令HPB_PREF_CMD和数据读取命令HPB_RD_CMD,以将元信息传送命令HPB_PREF_CMD和数据读取命令HPB_RD_CMD发送到存储设备300。由于元数据MDAT基于HPB方案存储在主机存储器220中,所以设备驱动器238可以将与数据读取请求相对应的多个元数据MDAT1~MDATN发送到存储设备300。多个元数据MDAT1~MDATN可以是存储在主机存储器220中的元数据MDAT的一部分。
在示例性实施例中,可以首先发送元信息传送命令HPB_PREF_CMD,然后可以稍后发送数据读取命令HPB_RD_CMD和多个元数据MDAT1~MDATN。可以改变数据读取命令HPB_RD_CMD和多个元数据MDAT1~MDATN的发送顺序。将参考图8至图11描述根据数据读取命令HPB_RD_CMD和多个元数据MDAT1~MDATN的发送顺序的数据读取操作的示例。
在示例性实施例中,可以通过直接存储器访问(DMA)接口发送多个元数据MDAT1~MDATN。通过使用DMA接口可以更快速地发送多个元数据MDAT1~MDATN。
在示例性实施例中,可以通过相同的传输线发送所有元信息传送命令HPB_PREF_CMD、数据读取命令HPB_RD_CMD和多个元数据MDAT1~MDATN。在示例性实施例中,可以通过命令传输线发送元信息传送命令HPB_PREF_CMD和数据读取命令HPB_RD_CMD,并且可以通过与命令传输线不同的数据传输线发送多个元数据MDAT1~MDATN。
接下来,如图3B所示,存储设备300可以基于数据读取命令HPB_RD_CMD和多个元数据MDAT1~MDATN执行数据读取操作,以读取存储在非易失性存储器320中的目标数据RDAT,并且可以将目标数据RDAT发送到主机设备200。目标数据RDAT可以临时存储在缓冲存储器330中,然后可以发送到主机设备200。
尽管图3A和图3B示出了元信息传送命令HPB_PREF_CMD、数据读取命令HPB_RD_CMD和多个元数据MDAT1-MDATN直接从设备驱动器238输出并且目标数据RDAT直接从非易失性存储器320输出的示例,但本发明构思的示例性实施例不限于此。例如,在示例性实施例中,主机设备200可以包括为存储设备300提供接口的主机接口,和/或存储设备300可以包括为非易失性存储器320提供接口的存储器接口和/或为主机设备200提供接口的主机接口。主机设备200中的主机接口可以输出元信息传送命令HPB_PREF_CMD、数据读取命令HPB_RD_CMD和多个元数据MDAT1~MDATN。存储设备300中的存储器接口可以从非易失性存储器320接收目标数据RDAT。存储设备300中的主机接口可以从主机设备200接收元信息传送命令HPB_PREF_CMD、数据读取命令HPB_RD_CMD和多个元数据MDAT1~MDATN,并且可以输出目标数据RDAT。
图4是示出了根据示例性实施例的在操作存储设备的方法中使用的元信息传送命令的示例的示意图。
参考图4,元信息传送命令HPB_PREF_CMD的字段可以包括操作代码HPB_PREF_OPCD、预留比特RESERVED、即时比特IMMED、过时比特OBSOL、逻辑块地址信息HPB_PREF_LBA、元信息传送标识(ID)HPB_PREF_ID、长度代码HPB_PREF_LENG和控制代码HPB_PREF_CON。元信息传送命令HPB_PREF_CMD可以被称为用于传送大量元数据的命令或HPB预取命令。
操作代码HPB_PREF_OPCD可以用于指示元信息传送命令HPB_PREF_CMD并且可以被设置为例如“FAh”。控制代码HPB_PREF_CON可以被设置为例如“00h”。长度代码HPB_PREF_LENG可以指示元信息传送命令HPB_PREF_CMD的长度。
逻辑块地址信息HPB_PREF_LBA可以指示针对基于元信息传送命令HPB_PREF_CMD的数据读取操作的至少一个逻辑块地址。
元信息传送ID HPB_PREF_ID可以用于标识元信息传送命令HPB_PREF_CMD和对应的数据读取命令HPB_RD_CMD。例如,如上所述,可以基于一个数据读取请求成对地生成一个元信息传送命令HPB_PREF_CMD和一个数据读取命令HPB_RD_CMD。如果存在多个数据读取请求,则可以生成与多个数据读取请求相对应的多个元信息传送命令和多个数据读取命令,因此可以使用元信息传送ID HPB_PREF_ID识别出每个元信息传送命令对应于哪个数据读取请求和哪个数据读取命令。如将参考图5描述的,数据读取命令HPB_RD_CMD可以包括与元信息传送ID HPB_PREF_ID相对应的读取ID HPB_RD_ID。
图5是示出了根据示例性实施例的在操作存储设备的方法中使用的数据读取命令的示例的示意图。
参考图2和图5,数据读取命令HPB_RD_CMD的字段可以包括操作代码HPB_RD_OPCD、强制单元访问(FUA)比特FUA、读取ID HPB_RD_ID、逻辑块地址信息HPB_RD_LBA、条目信息HPB_RD_ENTRY、预留比特RESERVED、组号代码HPB_RD_GRN和传送长度代码HPB_RD_TLENG。数据读取命令HPB_RD_CMD可以被称为HPB读取命令。
操作代码HPB_RD_OPCD可以用于指示数据读取命令HPB_RD_CMD并且可以被设置为例如“88h”。组号代码HPB_RD_GRN可以被设置为例如“11h”。传送长度代码HPB_RD_TLENG可以指示数据读取命令HPB_RD_CMD的长度。
读取ID HPB_RD_ID可以用于标识数据读取命令HPB_RD_CMD和对应的元信息传送命令HPB_PREF_CMD。图5中的读取ID HPB_RD_ID可以对应于图4中的元信息传送ID HPB_PREF_ID。例如,可以使用读取ID HPB_RD_ID来识别出每个数据读取命令对应于哪个数据读取请求和哪个元信息传送命令。
在示例性实施例中,当基于相同的数据读取请求生成图4的元信息传送命令HPB_PREF_CMD和图5的数据读取命令HPB_RD_CMD时,图4中的元信息传送ID HPB_PREF_ID和图5中的读取ID HPB_RD_ID可以具有相同的值。例如,当元信息传送ID HPB_PREF_ID和读取IDHPB_RD_ID具有相同的值时,可以确认包括元信息传送ID HPB_PREF_ID的元信息传送命令HPB_PREF_CMD和包括读取ID HPB_RD_ID的数据读取命令HPB_RD_CMD是一对彼此对应的命令。
逻辑块地址信息HPB_RD_LBA可以指示针对基于数据读取命令HPB_RD_CMD的数据读取操作的至少一个逻辑块地址。例如,当元信息传送ID HPB_PREF_ID和读取ID HPB_RD_ID具有相同的值时,图4中的逻辑块地址信息HPB_PREF_LBA和图5中的逻辑块地址信息HPB_RD_LBA也可以具有相同的值。
条目信息HPB_RD_ENTRY可以对应于一条元数据,并且可以包括与用于基于数据读取命令HPB_RD_CMD执行数据读取操作的多个物理地址相关联的信息。然而,由于基于在元信息传送命令HPB_PREF_CMD之后发送的多个元数据MDAT1~MDATN来执行数据读取操作,因此包括在数据读取命令HPB_RD_CMD中的条目信息HPB_RD_ENTRY可以仅包括上述信息中与多个物理地址的一部分(例如,第一物理地址)相关联的部分。
图6是示出了根据示例性实施例的在操作存储设备的方法中使用的多个元数据的示例的示意图。
参考图2和图6,多个元数据MDAT1~MDATN可以包括多个条目信息HPB_PREF_ENTRY1、HPB_PREF_ENTRY2、…、HPB_PREF_ENTRYN。
与图5中的条目信息HPB_RD_ENTRY一样,多个条目信息HPB_PREF_ENTRY1、HPB_PREF_ENTRY2、…、HPB_PREF_ENTRYN中的每一个可以对应于一条元数据。例如,第一条目信息HPB_PREF_ENTRY1可以对应于第一元数据MDAT1,并且第N条目信息HPB_PREF_ENTRYN可以对应于第N元数据MDATN,其中N是大于或等于2的整数。
多个条目信息HPB_PREF_ENTRY1、HPB_PREF_ENTRY2、…、HPB_PREF_ENTRYN可以包括与用于基于元信息传送命令HPB_PREF_CMD和数据读取命令HPB_RD_CMD执行数据读取操作的多个物理地址相关联的信息。例如,多个条目信息HPB_PREF_ENTRY1、HPB_PREF_ENTRY2、…、HPB_PREF_ENTRYN可以包括指示多个逻辑地址(例如,逻辑块地址)和多个物理地址(例如,物理页号)之间的对应关系的逻辑到物理映射信息(例如,逻辑到物理映射条目)。
参考图4描述的元信息传送ID HPB_PREF_ID可以一起添加在多个条目信息HPB_PREF_ENTRY1、HPB_PREF_ENTRY2、…、HPB_PREF_ENTRYN的前端或后端(例如,在多个元数据MDAT1~MDATN的前端或后端)。
在示例性实施例中,当图4中的元信息传送ID HPB_PREF_ID和图5中的读取IDHPB_RD_ID具有相同的值并且当基于图4的元信息传送命令HPB_PREF_CMD生成并发送图6的多个元数据MDAT1~MDATN时,包括在图5的数据读取命令HPB_RD_CMD中的条目信息HPB_RD_ENTRY可以与图6的多个元数据MDAT1~MDATN中包括的多个条目信息HPB_PREF_ENTRY1、HPB_PREF_ENTRY2、…、HPB_PREF_ENTRYN中的一个(例如,第一条目信息HPB_PREF_ENTRY1)基本相同。
尽管图4、图5和图6示出了元信息传送ID HPB_PREF_ID具有1个字节,读取ID HPB_RD_ID具有7个比特,逻辑块地址信息HPB_PREF_LBA和HPB_RD_LBA中的每一个具有4个字节,并且条目信息HPB_RD_ENTRY,HPB_PREF_ENTRY1、HPB_PREF_ENTRY2、…、HPB_PREF_ENTRYN中的每一个具有8个字节的示例,但是本发明构思的示例性实施例不限于此。
图7是示出了执行图1中的数据读取操作的示例的流程图。
参考图1、图2、图3A和图7,当基于数据读取命令和多个元数据执行数据读取操作(操作S400)时,可以基于多个元数据MDAT1~MDATN获得多个物理地址(操作S410)。例如,闪存转换层342可以基于包括在数据读取命令HPB_RD_CMD中的逻辑块地址信息(例如,图5中的逻辑块地址信息HPB_RD_LBA)和包括在多个元数据MDAT1~MDATN中的多个条目信息(例如,图6中的多个条目信息HPB_PREF_ENTRY1、HPB_PREF_ENTRY2、…、HPB_PREF_ENTRYN)来执行逻辑到物理地址转换,以获得多个物理地址。
可以基于多个物理地址读取目标数据RDAT(操作S420),并且可以输出目标数据RDAT(操作S430)。例如,可以通过包括在存储设备300中的存储器接口访问非易失性存储器320以从非易失性存储器320读取目标数据RDAT,并且可以通过包括在存储设备300中的主机接口输出读取的目标数据RDAT。
图8是示出了图1的操作存储设备的方法的示例的流程图。图9是用于描述图8的操作存储设备的方法的示意图。
在根据示例性实施例的操作存储设备300的方法中,可以以相同的优先级顺序一起调度并且可以异步处理元信息传送命令和数据读取命令。另外,元信息传送命令可以伴随有多个元数据的发送,并且可以在发送元信息传送命令之后改变数据读取命令和多个元数据的发送顺序和间隔。图8和图9示出了首先接收数据读取命令并且稍后接收多个元数据的示例。
参考图1、图2、图8和图9,当接收元信息传送命令(操作S100)时,可以在第一时间点接收元信息传送命令HPB_PREF_CMD0(操作S110)。例如,主机设备200可以将元信息传送ID HPB_PREF_ID为0(例如,ID=0)的元信息传送命令HPB_PREF_CMD0发送到存储设备300(操作S112),并且存储设备300可以在第一时间点完成对元信息传送命令HPB_PREF_CMD0的接收(操作S114)。
当接收数据读取命令(操作S200)时,可以在第一时间点之后的第二时间点接收数据读取命令HPB_RD_CMD0(操作S210)。例如,主机设备200可以将读取ID HPB_RD_ID为0(例如,ID=0)的数据读取命令HPB_RD_CMD0发送到存储设备300(操作S212),并且存储设备300可以在第二时间点完成对数据读取命令HPB_RD_CMD0的接收(操作S214)。
在完成对元信息传送命令HPB_PREF_CMD0的接收和对数据读取命令HPB_RD_CMD0的接收之后,可以检查在接收到元信息传送命令HPB_PREF_CMD0的第一时间点与接收到数据读取命令HPB_RD_CMD0的第二时间点之间的时间差TD1是否短于第一参考时间(操作S220)。另外,当接收多个元数据(操作S300)时,可以检查是否完成对与元信息传送命令HPB_PREF_CMD0相对应的多个元数据MDATA的接收(操作S310)。
当第一时间点和第二时间点之间的时问差TD1短于第一参考时间(操作S220:是)并且未完成对多个元数据MDATA的接收(例如,尚未完全接收到多个元数据)(操作S310:否)时,可以实施等待时间,其中所述方法可以等待直到完成对多个元数据MDATA的接收为止(例如,直到已经接收到所有多个元数据MDATA为止),而不立即执行数据读取操作(操作S320)。例如,主机设备200可以将与元信息传送ID HPB_PREF_ID为0(例如,ID=0)的元信息传送命令HPB_PREF_CMD0相对应的多个元数据MDATA发送到存储设备300(操作S312),并且存储设备300可以在第一时间点和第二时间点之后的第三时间点完成对多个元数据MDATA的接收(操作S314)。
尽管图9示出了主机设备200开始发送多个元数据MDATA的时间晚于主机设备200开始发送数据读取命令HPB_RD_CMD0的时间,但是本发明构思的示例性实施例是不限于此。例如,在示例性实施例中,主机设备200开始发送多个元数据MDATA的时间可以早于主机设备200开始发送数据读取命令HPB_RD_CMD0的时间,并且存储设备300完成对多个元数据MDATA的接收的时间可以晚于存储设备300完成对数据读取命令HPB_RD_CMD0的接收的时间。
当第一时间点和第二时间点之间的时间差TD1长于或等于第一参考时间(操作S220:否)时,可以确定已经过了足够的时间来完成对多个元数据MDATA的发送,因此可以基于数据读取命令HPB_RD_CMD0和多个元数据MDATA来执行数据读取操作(操作S400)。
另外,即使第一时间点和第二时间点之间的时间差TD1短于第一参考时间(操作S220:是),当完成对多个元数据MDATA的接收(操作S310:是)时,可以基于数据读取命令HPB_RD_CMD0和多个元数据MDATA来执行数据读取操作(操作S400)。
因此,在根据图8和图9的示例中,当元信息传送命令HPB_PREF_CMD0与数据读取命令HPB_RD_CMD0之间的时间间隔相对较短并且未完成对多个元数据MDATA的发送时,不立即执行数据读取操作,并且可以在等待完成对多个元数据MDATA的发送之后执行基于多个元数据MDATA的数据读取操作。
图10是示出了图1的操作存储设备的方法的示例的流程图。图11是用于描述图10的操作存储设备的方法的示意图。
图10和图11示出了首先接收多个元数据并且稍后接收数据读取命令的示例。
参考图1、图2、图10和图11,当接收元信息传送命令(操作S100)时,可以在第一时间点接收元信息传送命令HPB_PREF_CMD1(操作S110)。例如,主机设备200可以将元信息传送ID HPB_PREF_ID为1(例如,ID=1)的元信息传送命令HPB_PREF_CMD1发送到存储设备300(操作S116),并且存储设备300可以在第一时间点完成对元信息传送命令HPB_PREF_CMD1的接收(操作S118)。
当接收多个元数据(操作S300)时,可以检查是否完成对与元信息传送ID HPB_PREF_ID为1(例如,ID=1)的元信息传送命令HPB_PREF_CMD1相对应的多个元数据MDATB的接收(操作S310)。
当未完成对多个元数据MDATB的接收(操作S310:否)时,实施等待时段,其中所述方法等待直到完成对多个元数据MDATB的接收为止(操作S320)。例如,主机设备200可以将与元信息传送命令HPB_PREF_CMD1相对应的多个元数据MDATB发送到存储设备300(操作S316),并且存储设备300可以在第一时间点之后的第四时间点完成对多个元数据MDATB的接收(操作S318)。
在完成对元信息传送命令HPB_PREF_CMD1的接收和对多个元数据MDATB的接收之后,当接收数据读取命令(操作S200)时,可以检查在从第一时间点开始经过第二参考时间之前是否接收到读取ID HPB_RD_ID为1(例如,ID=1)的数据读取命令HPB_RD_CMD1(操作S230)。
当在从第一时间点开始经过第二参考时间之前接收到数据读取命令HPB_RD_CMD1(操作S230:是)时,可以基于数据读取命令HPB_RD_CMD1和多个元数据MDATB来执行数据读取操作(操作S400)。
当从第一时间点开始经过第二参考时间并且未接收到数据读取命令HPB_RD_CMD1(操作S230:否)时,由于尚未接收到数据读取命令HPB_RD_CMD1,因此不立即执行数据读取操作。然而,元信息传送命令HPB_PREF_CMD1和数据读取命令HPB_RD_CMD1可以是对应于单个数据读取请求的一对命令,因此如果首先接收到元信息传送命令HPB_PREF_CMD1,则将始终接收到数据读取命令HPB_RD_CMD1。因此,为了节省在接收到数据读取命令HPB_RD_CMD1之后数据读取操作所需的时间,即使尚未接收到数据读取命令HPB_RD_CMD1,也可以基于多个元数据MDATB预读取目标数据RDAT(操作S450)。
在示例性实施例中,在操作S450预读取的目标数据RDAT可以临时存储在位于存储设备300内部的缓冲存储器330中。
在接收到元信息传送命令HPB_PREF_CMD1并且完成对多个元数据MDATB的接收之后,可以在从第一时间点开始经过第二参考时间之后的第二时间点接收数据读取命令HPB_RD_CMD0(操作S240)。例如,主机设备200可以将数据读取命令HPB_RD_CMD1发送到存储设备300(操作S246),并且存储设备300可以在第二时间点完成对数据读取命令HPB_RD_CMD1的接收(操作S248)。例如,接收到元信息传送命令HPB_PREF_CMD1的第一时间点与接收到数据读取命令HPB_RD_CMD0的第二时间点之间的时间差TD2长于第二参考时间。
当第一时间点与第二时间点之间的时间差TD2长于第二参考时间时,可以在操作S450预读取目标数据RDAT,因此在接收到数据读取命令HPB_RD_CMD0的第二时间点之后可以立即输出目标数据RDAT(操作S460)。
因此,在根据图10和图11的示例中,当元信息传送命令HPB_PREF_CMD1和数据读取命令HPB_RD_CMD1之间的时间间隔相对较长并且即使在完成对多个元数据MDATB的发送之后也未接收到数据读取命令HPB_RD_CMD1时,可以首先加载目标数据RDAT,并且当接收到数据读取命令HPB_RD_CMD1时,可以立即输出目标数据RDAT。
在示例性实施例中,当第一时间点和第二时间点之间的时间差TD2长于第二参考时间时,可以在第一时间点和第二时间点之间(例如,在预读取目标数据RDAT之后并且在接收到数据读取命令HPB_RD_CMD1之前)另外和/或选择性地执行除了基于元信息传送命令HPB_PREF_CMD1、数据读取命令HPB_RD_CMD1和多个元数据MDATB的数据读取操作之外的至少一个操作(操作S500)。所述至少一个其他操作可以包括例如基于其他命令的数据读/写/擦除操作以及在没有任何命令的情况下在存储设备300内部执行的操作(例如,垃圾收集操作)。
尽管基于操作存储设备300的方法描述了根据示例性实施例的存储设备300的操作,其中基于单个数据读取请求接收两个命令(例如,元信息传送命令和数据读取命令)和相关联的元数据并且基于所接收的元数据执行数据读取操作,但是本发明构思的示例性实施例不限于此。例如,在示例性实施例中,存储设备300还可以基于包括单条元数据的单个数据读取命令来执行正常数据读取操作。
图12是示出了根据示例性实施例的存储设备中包括的非易失性存储设备的框图。
参考图12,非易失性存储器设备500包括存储器单元阵列510、行解码器520、页缓冲器电路530、数据输入/输出(I/O)电路540、电压发生器550和控制电路560。
存储器单元阵列510经由多个串选择线SSL、多个字线WL和多个地选择线GSL连接到行解码器520。存储器单元阵列510还通过多个位线BL连接到页缓冲器电路530。
存储器单元阵列510可以包括连接到多个字线WL和多个位线BL的多个存储器单元(例如,多个非易失性存储器单元)。存储器单元阵列510可以被划分为多个存储器块,每个存储器块包括多个存储器单元。在示例性实施例中,多个存储器单元可以布置成二维(2D)阵列结构或三维(3D)竖直阵列结构。
在本发明构思的示例性实施例中,提供了一种三维(3D)存储器阵列。3D存储器阵列在存储器单元阵列的一个或多个物理级别中单片地形成,所述存储器单元阵列具有设置在硅衬底上方的有源区域和与这些存储器单元的操作相关联的电路,无论这种相关联的电路是在这种衬底之上还是在这种衬底内。术语“单片”意味着阵列的每个级别的层直接沉积在阵列的每个下层级别的层上。
在本发明构思的示例性实施例中,3D存储器阵列包括竖直取向的竖直NAND串,使得至少一个存储器单元位于另一个存储器单元上。至少一个存储器单元可以包括电荷陷阱层。
全部内容通过引用并入本文的专利文献(即,第7,679,133号;第8,553,466号;第8,654,587号;第8,559,235号美国专利;以及第2011/0233648号美国专利公开)描述了包括3D竖直阵列结构的存储器单元阵列的合适配置,其中三维存储器阵列被配置为多个级别,在各级别之间共享字线和/或位线。
控制电路560从存储器控制器(例如,图2中的主机设备200和/或存储控制器310)接收命令CMD和地址ADDR,并基于命令CMD和地址ADDR控制非易失性存储器设备500的擦除操作、编程操作和读取操作。擦除操作可以包括执行一系列擦除循环,并且编程操作可以包括执行一系列编程循环。每个编程循环可以包括编程操作和编程验证操作。每个擦除循环可以包括擦除操作和擦除验证操作。读取操作可以包括正常读取操作和数据恢复读取操作。
例如,控制电路560可以生成用于控制电压发生器550的控制信号CON,可以基于命令CMD生成用于控制页缓冲器电路530的控制信号PBC,并且可以基于地址ADDR生成行地址R_ADDR和列地址C_ADDR。控制电路560可以将行地址R_ADDR提供给行解码器520,并且可以将列地址C_ADDR提供给数据I/O电路540。
行解码器520可以经由多个串选择线SSL、多个字线WL和多个地选择线GSL连接到存储器单元阵列510。
例如,在数据擦除/写/读操作中,基于行地址R_ADDR,行解码器520可以将多个字线WL中的至少一个确定为选择的字线,并且可以将多个字线WL中除了所选择的字线之外的剩余字线确定为未选择的字线。
另外,在数据擦除/写/读操作中,基于行地址R_ADDR,行解码器520可以将多个串选择线SSL中的至少一个确定为选择的串选择线,并且可以将多个串选择线SSL中除了所选择的串选择线之外的剩余串选择线确定为未选择的串选择线。
此外,在数据擦除/写/读操作中,基于行地址R_ADDR,行解码器520可以将多个地选择线GSL中的至少一个确定为选择的地选择线,并且可以将多个地选择线GSL中除了所选择的地选择线之外的剩余地选择线确定为未选择的地选择线。
电压发生器550可以基于所提供的功率PWR和控制信号CON产生用于非易失性存储器设备500的操作的电压VS。电压VS可以经由行解码器520施加到多个串选择线SSL、多个字线WL和多个地选择线GSL。此外,电压发生器550可以基于功率PWR和控制信号CON产生用于数据擦除操作的擦除电压VERS。擦除电压VERS可以直接或经由位线BL之一施加到存储器单元阵列510。
例如,在擦除操作期间,经由行解码器520,电压发生器550可以将擦除电压VERS施加到存储器块(例如,所选择的存储器块)的公共源极线触点和/或位线BL,并且可以将擦除允许电压(例如,地电压)施加到存储器块的所有字线或字线的一部分。此外,在擦除验证操作期间,电压发生器550可以将擦除验证电压同时施加到存储器块的所有字线或者逐个顺序地施加到字线。
例如,在编程操作期间,经由行解码器520,电压发生器550可以将编程电压施加到所选择的字线,并且可以将编程通过电压施加到未选择的字线。此外,在编程验证操作期间,经由行解码器520,电压发生器550可以将编程验证电压施加到所选择的字线,并且可以将验证通过电压施加到未选择的字线。
另外,在正常读取操作期间,经由行解码器520,电压发生器550可以将读取电压施加到所选择的字线,并且可以将读取通过电压施加到未选择的字线。在数据恢复读取操作期间,经由行解码器520,电压发生器550可以将读取电压施加到与所选择的字线相邻的字线,并且可以将恢复读取电压施加到所选择的字线。
页缓冲器电路530可以经由多个位线BL连接到存储器单元阵列510。页缓冲器电路530可以包括多个页缓冲器。在示例性实施例中,每个页缓冲器可以连接到一个位线BL。在示例性实施例中,每个页缓冲器可以连接到两个或更多个位线BL。
页缓冲器电路530可以存储要编程到存储器单元阵列510中的数据DAT,或者可以读取从存储器单元阵列510感测的数据DAT。例如,页缓冲器电路530可以根据非易失性存储器设备500的操作模式而作为写入驱动器或者读出放大器操作。
数据I/O电路540可以经由数据线DL连接到页缓冲器电路530。基于列地址C_ADDR,数据I/O电路540可以经由页缓冲器电路530将来自非易失性存储器设备500外部的数据DAT提供给存储器单元阵列510,或者可以将来自存储器单元阵列510的数据DAT提供到非易失性存储器设备500的外部。
图13和图14是示出了根据示例性实施例的操作存储系统的方法的流程图。
参考图13,根据示例性实施例的存储系统包括主机设备和存储设备。存储系统的配置可以与上面参考图2描述的配置基本相同。例如,参考图13和图14提及的主机设备和存储设备可以分别是主机设备200和存储设备300。
在根据示例性实施例的操作存储系统的方法中,存储设备将存储在存储设备中的多个元数据发送到主机设备,以将多个元数据存储到包括在主机设备中的主机存储器中(操作S1100)。例如,可以在存储系统被引导或重置时执行操作S1100,并且存储系统可以基于HPB方案来操作,其中使用存储在主机存储器中的多个元数据来访问存储设备。
主机设备基于来自主机设备的数据读取请求将元信息传送命令发送到存储设备(操作S1200),将与数据读取请求和元信息传送命令相对应的数据读取命令发送到存储设备(操作S1300),并将与数据读取请求和元信息传送命令相对应的第一元数据发送到存储设备(操作S1400)。第一元数据是多个元数据的一部分。在存储设备上基于数据读取命令和第一元数据执行数据读取操作(操作S1500)。
图13中的操作S1200、S1300、S1400和S1500可以分别类似于图1中的操作S100、S200、S300和S400,并且可以基于参考图1至图11描述的示例来执行图13中的操作S1200、S1300、S1400和S1500。
参考图14,在根据示例性实施例的操作存储系统的方法中,除了将操作S1600添加到图14的方法之外,图14的方法可以与图13的方法基本相同。
当改变多个元数据中的至少一个元数据时,可以将改变后的元数据从存储设备发送到主机设备以更新存储在主机存储器中的多个元数据(操作S1600)。
在示例性实施例中,可以在执行操作S1100之后的任何时间执行操作S1600。
如本领域技术人员将了解的,本公开可以体现为系统、方法、计算机程序产品和/或体现在其上包含计算机可读程序代码的一个或多个计算机可读介质中的计算机程序产品。计算机可读程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是任何有形介质,其可以包含或存储程序以供指令执行系统、装置或设备使用或与其结合使用。例如,计算机可读介质可以是非暂时性计算机可读介质。
图15是示出了根据示例性实施例的电子系统的框图。
参考图15,电子系统4000包括至少一个处理器4100、通信模块4200、显示/触摸模块4300、存储设备4400和存储器设备4500。电子系统4000可以是例如任何移动系统或任何计算系统。
处理器4100控制电子系统4000的操作。处理器4100可以执行操作系统和至少一个应用以提供例如因特网浏览器、游戏、视频等。通信模块4200被实现为与外部设备进行无线或有线通信。显示/触摸模块4300被实现为显示由处理器4100处理的数据和/或通过触摸板接收数据。存储设备4400被实现为存储用户数据,并且基于根据本文描述的示例性实施例的操作存储设备的方法来驱动存储设备4400。存储器设备4500临时存储用于处理电子系统4000的操作的数据。图15中的处理器4100和存储器设备4500可以分别对应于图2的主机设备200中包括的处理器210和主机存储器220。
本发明构思的示例性实施例可以应用于各种电子设备和包括存储设备和存储系统的电子系统。例如,本发明构思的示例性实施例可以应用于诸如以下各项的系统:移动电话、智能电话、平板电脑、膝上型计算机、个人数字助理(PDA)、便携式多媒体播放器(PMP)、数码相机、便携式游戏机、音乐播放器、摄像机、视频播放器、导航设备、可穿戴设备、物联网(IoT)设备、万物互联(IoE)设备、电子书阅读器、虚拟现实(VR)设备、增强现实(AR)设备、机器人设备等。
尽管已经参考本发明构思的示例性实施例具体示出和描述了本发明构思,但是本领域普通技术人员将理解,在不脱离由所附权利要求限定的本发明构思的精神和范围的情况下,可以在其中进行形式和细节上的各种改变。

Claims (20)

1.一种操作存储设备的方法,所述方法包括:
在所述存储设备处,基于数据读取请求接收元信息传送命令,其中所述元信息传送命令是从主机设备接收的;
在所述存储设备处,接收与所述数据读取请求和所述元信息传送命令相对应的数据读取命令,其中所述数据读取命令是从所述主机设备接收的;
在所述存储设备处,接收与所述数据读取请求和所述元信息传送命令相对应的多个元数据,其中所述多个元数据是从所述主机设备接收的;以及
在所述存储设备处,基于所述数据读取命令和所述多个元数据执行数据读取操作。
2.根据权利要求1所述的方法,其中:
所述元信息传送命令包括元信息传送标识ID,并且
所述数据读取命令包括与所述元信息传送ID相对应的读取ID。
3.根据权利要求2所述的方法,其中所述元信息传送ID和所述读取ID具有相同的值。
4.根据权利要求1所述的方法,其中所述多个元数据包括与用于执行所述数据读取操作的多个物理地址相关联的信息。
5.根据权利要求4所述的方法,其中所述多个元数据包括对多个逻辑地址与所述多个物理地址之间的对应关系加以指示的逻辑到物理映射信息。
6.根据权利要求1所述的方法,其中执行数据读取操作包括:
基于所述多个元数据获得多个物理地址;
基于所述多个物理地址读取目标数据;以及
输出所述目标数据。
7.根据权利要求6所述的方法,其中当接收到所述元信息传送命令的第一时间点与接收到所述数据读取命令的第二时间点之间的时间差短于第一参考时间并且没有完成所述多个元数据的接收时,实施等待时间直到完成所述多个元数据的接收为止,在完成所述多个元数据的接收之后基于所述多个元数据读取所述目标数据。
8.根据权利要求6所述的方法,其中当接收到所述元信息传送命令的第一时间点与接收到所述数据读取命令的第二时间点之间的时间差长于第二参考时间并且完成所述多个元数据的接收时,在接收到所述数据读取命令之前基于所述多个元数据预读取所述目标数据,并且在接收到所述数据读取命令的第二时间点之后立即输出所述目标数据。
9.根据权利要求8所述的方法,其中在所述第一时间点与所述第二时间点之间执行除所述数据读取操作之外的至少一个操作。
10.根据权利要求1所述的方法,其中所述数据读取请求是一次读取大于预定大小的大量数据的大规模读取请求。
11.根据权利要求10所述的方法,其中所述数据读取请求是单个读取请求。
12.根据权利要求1所述的方法,其中所述多个元数据是通过直接存储器访问DMA接口发送的。
13.一种存储设备,包括:
多个非易失性存储器,被配置为存储多个数据;以及
存储控制器,被配置为控制所述多个非易失性存储器的操作,
其中所述存储控制器被配置为基于数据读取请求接收元信息传送命令,接收与所述数据读取请求和所述元信息传送命令相对应的数据读取命令,接收与所述数据读取请求和所述元信息传送命令相对应的多个元数据,并且基于所述数据读取命令和所述多个元数据执行数据读取操作,
其中所述元信息传送命令、所述数据读取命令和所述多个元数据是从主机设备接收的。
14.根据权利要求13所述的存储设备,还包括:
缓冲存储器,被配置为当接收到所述元信息传送命令的第一时间点与接收到所述数据读取命令的第二时间点之间的时间差长于参考时间并且完成所述多个元数据的接收时,在接收到所述数据读取命令之前,临时存储基于所述多个元数据预读取的目标数据。
15.根据权利要求14所述的存储设备,其中所述缓冲存储器包括易失性存储器。
16.根据权利要求13所述的存储设备,其中所述存储设备是通用闪存UFS。
17.一种操作包括主机设备和存储设备的存储系统的方法,所述方法包括:
将所述存储设备中存储的多个元数据发送到所述主机设备;
将所述多个元数据存储在所述主机设备中包括的主机存储器中;
基于数据读取请求将元信息传送命令从所述主机设备发送到所述存储设备;
将与所述数据读取请求和所述元信息传送命令相对应的数据读取命令从所述主机设备发送到所述存储设备;
将与所述数据读取请求和所述元信息传送命令相对应的第一元数据从所述主机设备发送到所述存储设备,其中所述第一元数据是所述多个元数据的一部分;以及
在存储没备上基于所述数据读取命令和所述第一元数据执行数据读取操作。
18.根据权利要求17所述的方法,其中当所述多个元数据中的至少一个元数据改变时,改变后的元数据被发送到所述主机设备,并且基于所述改变后的元数据更新所述主机存储器中存储的所述多个元数据。
19.根据权利要求17所述的方法,其中:
所述主机存储器包括易失性存储器,并且
所述主机存储器的容量大于所述存储设备中包括的缓冲存储器的容量。
20.根据权利要求17所述的方法,其中所述存储系统是以下至少一项:移动电话、智能手机、平板电脑、膝上型计算机、个人数字助理PDA、便携式多媒体播放器PMP、数码相机、便携式游戏机、音乐播放器、摄像机、视频播放器、导航设备、可穿戴设备、物联网Iot设备、电子书阅读器、虚拟现实VR设备、增强现实AR设备和机器人设备。
CN201910879584.7A 2018-10-31 2019-09-17 操作存储设备的方法、存储设备以及操作存储系统的方法 Pending CN111128287A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2018-0131859 2018-10-31
KR1020180131859A KR20200049051A (ko) 2018-10-31 2018-10-31 스토리지 장치의 구동 방법, 이를 수행하는 스토리지 장치 및 이를 이용한 스토리지 시스템의 구동 방법

Publications (1)

Publication Number Publication Date
CN111128287A true CN111128287A (zh) 2020-05-08

Family

ID=67614418

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910879584.7A Pending CN111128287A (zh) 2018-10-31 2019-09-17 操作存储设备的方法、存储设备以及操作存储系统的方法

Country Status (5)

Country Link
US (3) US11314450B2 (zh)
EP (1) EP3647930A1 (zh)
KR (1) KR20200049051A (zh)
CN (1) CN111128287A (zh)
SG (1) SG10201907275UA (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111597159A (zh) * 2020-07-27 2020-08-28 成都智明达电子股份有限公司 一种提高ext4文件系统读写速率的方法
WO2022193126A1 (en) * 2021-03-16 2022-09-22 Micron Technology, Inc. Performance benchmark for host performance booster

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200049051A (ko) 2018-10-31 2020-05-08 삼성전자주식회사 스토리지 장치의 구동 방법, 이를 수행하는 스토리지 장치 및 이를 이용한 스토리지 시스템의 구동 방법
CN115461726A (zh) * 2020-06-15 2022-12-09 华为技术有限公司 逻辑地址到物理地址映射表同步方法、装置及系统
KR20210157537A (ko) * 2020-06-22 2021-12-29 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법
KR20220049215A (ko) 2020-10-14 2022-04-21 삼성전자주식회사 메모리 장치, 호스트 장치 및 이들을 포함하는 메모리 시스템
WO2022133397A1 (en) * 2020-12-14 2022-06-23 Micron Technology, Inc. Exclusion regions for host-side memory address translation
US11734193B2 (en) 2020-12-14 2023-08-22 Micron Technology, Inc. Exclusion regions for host-side memory address translation
CN112905111A (zh) 2021-02-05 2021-06-04 三星(中国)半导体有限公司 数据缓存的方法和数据缓存的装置
CN115514793B (zh) * 2022-11-23 2023-03-28 北京时代凌宇信息技术有限公司 物联网数据汇聚共享方法、装置、电子设备及存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6401167B1 (en) * 1997-10-10 2002-06-04 Rambus Incorporated High performance cost optimized memory
KR20040086037A (ko) * 2003-03-27 2004-10-08 삼성전자주식회사 디지털 촬상장치 및 그의 데이터 전송모드 선택방법
CN102473126A (zh) * 2009-08-11 2012-05-23 桑迪士克科技股份有限公司 提供闪存系统中的读状态和空闲块管理信息的控制器和方法
US20130297894A1 (en) * 2011-08-09 2013-11-07 Lsi Corporation I/o device and computing host interoperation
US20140082268A1 (en) * 2012-09-14 2014-03-20 Kyeong Min KIM Host for controlling non-volatile memory card, system including the same, and methods operating the host and the system
US9286990B1 (en) * 2014-12-22 2016-03-15 Samsung Electronics Co., Ltd. Storage device, nonvolatile memory and method operating same
US20160203091A1 (en) * 2015-01-13 2016-07-14 Samsung Electronics Co., Ltd. Memory controller and memory system including the same
US20160291884A1 (en) * 2015-03-31 2016-10-06 Kabushiki Kaisha Toshiba Command balancing and interleaving for write and reads between front end and back end of solid state drive
US20170083234A1 (en) * 2015-09-17 2017-03-23 Silicon Motion, Inc. Data storage device and data reading method thereof
US20170269858A1 (en) * 2016-03-18 2017-09-21 Samsung Electronics Co., Ltd. METHOD AND SYSTEM FOR DATA PROTECTION IN NVMe INTERFACE
CN107643985A (zh) * 2016-07-21 2018-01-30 爱思开海力士有限公司 存储器系统及其操作方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100449807B1 (ko) 2002-12-20 2004-09-22 한국전자통신연구원 호스트 버스 인터페이스를 갖는 데이터 전송 프로토콜제어 시스템
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
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
WO2011148223A1 (en) 2010-05-27 2011-12-01 Sandisk Il Ltd Memory management storage to a host device
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
JP5611889B2 (ja) 2011-05-17 2014-10-22 株式会社東芝 データ転送装置、データ送信システムおよびデータ送信方法
KR101420754B1 (ko) 2012-11-22 2014-07-17 주식회사 이에프텍 비휘발성 메모리 시스템 및 이를 위한 맵핑 테이블 관리 방법
TWI526838B (zh) 2013-02-27 2016-03-21 東芝股份有限公司 記憶體裝置
KR102450555B1 (ko) 2015-11-09 2022-10-05 삼성전자주식회사 스토리지 장치 및 그것의 동작 방법
US10303372B2 (en) * 2015-12-01 2019-05-28 Samsung Electronics Co., Ltd. Nonvolatile memory device and operation method thereof
US10229051B2 (en) 2015-12-30 2019-03-12 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and controller, operating method of storage device, and method for accessing storage device
KR20170081118A (ko) 2015-12-30 2017-07-11 삼성전자주식회사 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 액세스하는 액세스 방법
JP6274589B1 (ja) 2016-09-28 2018-02-07 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置および連続読出し方法
KR20200049051A (ko) 2018-10-31 2020-05-08 삼성전자주식회사 스토리지 장치의 구동 방법, 이를 수행하는 스토리지 장치 및 이를 이용한 스토리지 시스템의 구동 방법

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6401167B1 (en) * 1997-10-10 2002-06-04 Rambus Incorporated High performance cost optimized memory
KR20040086037A (ko) * 2003-03-27 2004-10-08 삼성전자주식회사 디지털 촬상장치 및 그의 데이터 전송모드 선택방법
CN102473126A (zh) * 2009-08-11 2012-05-23 桑迪士克科技股份有限公司 提供闪存系统中的读状态和空闲块管理信息的控制器和方法
US20130297894A1 (en) * 2011-08-09 2013-11-07 Lsi Corporation I/o device and computing host interoperation
US20140082268A1 (en) * 2012-09-14 2014-03-20 Kyeong Min KIM Host for controlling non-volatile memory card, system including the same, and methods operating the host and the system
US9286990B1 (en) * 2014-12-22 2016-03-15 Samsung Electronics Co., Ltd. Storage device, nonvolatile memory and method operating same
US20160203091A1 (en) * 2015-01-13 2016-07-14 Samsung Electronics Co., Ltd. Memory controller and memory system including the same
US20160291884A1 (en) * 2015-03-31 2016-10-06 Kabushiki Kaisha Toshiba Command balancing and interleaving for write and reads between front end and back end of solid state drive
US20170083234A1 (en) * 2015-09-17 2017-03-23 Silicon Motion, Inc. Data storage device and data reading method thereof
US20170269858A1 (en) * 2016-03-18 2017-09-21 Samsung Electronics Co., Ltd. METHOD AND SYSTEM FOR DATA PROTECTION IN NVMe INTERFACE
CN107643985A (zh) * 2016-07-21 2018-01-30 爱思开海力士有限公司 存储器系统及其操作方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111597159A (zh) * 2020-07-27 2020-08-28 成都智明达电子股份有限公司 一种提高ext4文件系统读写速率的方法
WO2022193126A1 (en) * 2021-03-16 2022-09-22 Micron Technology, Inc. Performance benchmark for host performance booster

Also Published As

Publication number Publication date
US20230325123A1 (en) 2023-10-12
US11714578B2 (en) 2023-08-01
US20220236918A1 (en) 2022-07-28
SG10201907275UA (en) 2020-05-28
US11314450B2 (en) 2022-04-26
US20200133571A1 (en) 2020-04-30
EP3647930A1 (en) 2020-05-06
KR20200049051A (ko) 2020-05-08

Similar Documents

Publication Publication Date Title
US11714578B2 (en) Method of operating storage device, storage device performing the same and method of operating storage system using the same
US11150837B2 (en) Method, device and system for processing sequential groups of buffered write data
CN108804023B (zh) 数据存储装置及其操作方法
KR20200022118A (ko) 데이터 저장 장치 및 그 동작 방법
CN105549898A (zh) 操作数据存储装置和主机及移动计算装置的方法
CN110083545A (zh) 数据存储装置及其操作方法
KR20200054000A (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
CN111338564B (zh) 包括数据存储设备的系统和控制丢弃操作的方法
US10296233B2 (en) Method of managing message transmission flow and storage device using the method
KR20150112075A (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
US11762572B2 (en) Method of operating storage device and method of operating storage system using the same
KR20200076431A (ko) 메모리 컨트롤러 및 메모리 시스템의 동작 방법, 및 메모리 시스템
US20160132251A1 (en) Operating method of storage device and data writing method for writing data into storage device
KR20200017664A (ko) 저장 장치의 데이터 액세스 방법, 데이터 관리 방법 및 이를 수행하는 저장 장치
US20230315646A1 (en) Method of managing data in storage device based on variable size mapping, method of operating storage device using the same and storage device performing the same
US20230126685A1 (en) Storage device and electronic system
KR102583592B1 (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US12001709B2 (en) Storage devices and operating methods of storage controllers
US11669470B2 (en) Storage system with capacity scalability and method of operating the same
CN113836047A (zh) 存储装置及其操作方法
EP4220374A1 (en) Storage device and operating method of storage device
US11822800B2 (en) Storage system including host and storage device and operation method thereof
US20230147773A1 (en) Storage device and operating method
US20230142479A1 (en) Storage device and operating method thereof
KR20240065774A (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