CN112306906A - 存储设备、包括该存储设备的存储***及其操作方法 - Google Patents
存储设备、包括该存储设备的存储***及其操作方法 Download PDFInfo
- Publication number
- CN112306906A CN112306906A CN202010652447.2A CN202010652447A CN112306906A CN 112306906 A CN112306906 A CN 112306906A CN 202010652447 A CN202010652447 A CN 202010652447A CN 112306906 A CN112306906 A CN 112306906A
- Authority
- CN
- China
- Prior art keywords
- write buffer
- read data
- host
- storage device
- read
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了一种存储设备、包括该存储设备的存储***及其操作方法。所述存储***包括:存储设备,所述存储设备包括用非易失性存储器实现的加速写入缓冲区和用户存储区域;以及主机,所述主机被配置为向所述存储设备传送读取请求。响应于所述读取请求,所述存储设备向所述主机传送读取数据和包括所述读取数据的属性的读取数据信息。
Description
相关申请的交叉引用
本申请要求于2019年8月1日在韩国知识产权局提交的韩国专利申请No.10-2019-0094002的优先权,通过引用将其公开内容整体地并入本文中。
技术领域
本文描述的发明构思的示例性实施例涉及一种半导体存储器件,并且更具体地,涉及一种响应于读取请求而输出数据信息的存储设备以及该存储设备的响应传送方法。
背景技术
半导体存储器件被分类为所存储的数据在断电时丢失的易失性存储器件(例如,静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)),或者即使断电时也能保持所存储的数据的非易失性存储器件(例如,闪存器件、相变RAM(PRAM)、磁RAM(MRAM)、电阻RAM(RRAM)或铁电RAM(FRAM))。
闪存器件已被广泛地用作计算设备中的高容量存储介质。现今,正在开发用于支持闪存器件的高速操作的各种技术。例如,与传统的基于闪存的存储设备相比,通过JEDEC标准定义的通用闪存存储(UFS)接口可以支持更高的操作速度。
发明内容
根据发明构思的示例性实施例,一种存储***包括:存储设备,所述存储设备包括用非易失性存储器实现的加速写入缓冲区和用户存储区域;以及主机,所述主机被配置为向所述存储设备传送读取请求。响应于所述读取请求,所述存储设备向所述主机传送读取数据和包括所述读取数据的属性的读取数据信息。
根据发明构思的示例性实施例,一种包括用非易失性存储器实现的加速写入缓冲区和用户存储区域的存储***的操作方法包括:从主机接收读取请求;响应于所述读取请求从所述加速写入缓冲区或所述用户存储区域读取读取数据;通过使用数据传送包将所述读取数据传送到所述主机;以及向所述主机传送包括所述读取数据的位置信息的读取数据信息。
根据发明构思的示例性实施例,一种被配置为通过使用通用闪存存储(UFS)接口来与主机进行通信的存储设备包括:非易失性存储器件,所述非易失性存储器件包括加速写入缓冲区域和用户存储区域;以及存储器控制器,所述存储器控制器被配置为响应于来自所述主机的读取请求从所述非易失性存储器件读取读取数据,将关于所述读取数据的属性信息加载到响应数据包上,并且将所述响应数据包传送到所述主机。
根据发明构思的示例性实施例,对于包括主机和存储设备的存储***的操作方法,所述存储设备包括用非易失性存储器实现的加速写入缓冲区和用户存储区域,并且所述加速写入缓冲区包括固定加速写入缓冲区和非固定加速写入缓冲区。所述操作方法包括:所述存储设备从所述主机接收读取请求;所述存储设备响应于所述读取请求从所述固定加速写入缓冲区、所述非固定加速写入缓冲区和所述用户存储区域中的至少一个读取读取数据;所述存储设备通过使用数据传送包向所述主机传送所述读取数据;以及所述存储设备向所述主机传送读取数据信息。所述读取数据信息指示所述读取数据的位置信息和反馈信息。所述固定加速写入缓冲区是存储在其中的数据禁止移动到所述用户存储区域的区域。所述非固定加速写入缓冲区是存储在其中的数据允许移动到所述用户存储区域的区域。
附图说明
通过参考附图详细地描述发明构思的示例性实施例,发明构思的以上及其他目的和特征将变得显而易见。
图1是例示了根据发明构思的示例性实施例的存储***的框图。
图2是例示了根据发明构思的示例性实施例的图1的存储设备的物理存储空间的示图。
图3A和图3B的示图用于描述根据发明构思的示例性实施例的图2的加速写入(turbo write)缓冲区类型。
图4A和图4B的示图用于描述根据发明构思的示例性实施例的配置图1的存储设备的加速写入缓冲区的模式。
图5是例示了根据发明构思的示例性实施例的图1的存储***的操作的流程图。
图6是例示了根据发明构思的示例性实施例的图1的存储***的操作的流程图。
图7是例示了根据发明构思的示例性实施例的图1的存储设备的操作的流程图。
图8是例示了根据发明构思的示例性实施例的图1的存储设备的物理存储空间的框图。
图9的示图例示了根据发明构思的示例性实施例的用于参考图8描述的存储设备的物理存储空间的逻辑存储空间。
图10A和图10B的示图例示了根据发明构思的示例性实施例的参考图8描述的存储设备的物理存储空间中的操作。
图11是例示了根据发明构思的示例性实施例的存储***的操作方法的示图。
图12是例示了根据发明构思的示例性实施例的读取数据信息的表。
图13的示图例示了根据发明构思的示例性实施例的主机请求读取数据信息的高四位的查询请求过程。
图14例示了根据发明构思的示例性实施例的通过响应来传送额外信息的方法。
图15是例示了根据发明构思的示例性实施例的当在存储***中发生部分命中时获得详细信息的方法的示图。
图16是例示了根据发明构思的示例性实施例的参考图15描述的扩展后的读取数据信息的表。
图17例示了根据发明构思的示例性实施例的请求读取的数据的命中状态的示例。
图18例示了根据发明构思的示例性实施例的请求读取的数据的命中状态的示例。
图19例示了根据发明构思的示例性实施例的请求读取的数据的未命中状态的示例。
图20例示了根据发明构思的示例性实施例的请求读取的数据的移动状态的示例。
图21例示了根据发明构思的示例性实施例的请求读取的数据的部分命中状态的示例。
图22是例示了根据发明构思的示例性实施例的图1的存储***的层次结构的示图。
图23的框图详细地例示了根据发明构思的示例性实施例的图1的存储***。
图24例示了发明构思的示例性实施例被应用于图1的存储***的概念图。
图25是例示了应用了根据发明构思的示例性实施例的存储***的存储卡的框图。
图26是例示了包括根据发明构思的示例性实施例的存储设备的便携式终端的框图。
具体实施方式
发明构思的示例性实施例提供了一种存储***及其操作方法,所述存储器***提供关于在其中使用了加速写入缓冲区的存储设备的读取操作中读取的数据的区域信息或命中/未命中信息。
下面将参考附图详细地描述发明构思的示例性实施例。贯穿本申请,相似的附图标记可以指代相似的元件。
图1是例示了根据发明构思的示例性实施例的存储***的框图。参考图1,存储***1000可以包括主机1100和存储设备1200。在发明构思的示例性实施例中,存储***1000可以包括诸如个人计算机、笔记本、平板、智能电话和可穿戴设备的各种计算***中的一种。
主机1100可以将数据存储在存储设备1200中或者可以读取存储在存储设备1200中的数据。例如,主机1100可以向存储设备1200传送写入命令和写入数据,以将数据存储在存储设备1200中。或者,为了从存储设备1200读取数据,主机1100可以向存储设备1200传送读取命令并且可以从存储设备1200接收数据。
主机1100可以包括诸如中央处理单元(CPU)或应用处理器(AP)的主处理器。另外,主机1100可以包括协助主处理器的辅助处理器,诸如图形处理单元(GPU)或神经处理单元(NPU)。
存储设备1200可以在主机1100的控制下进行操作。例如,存储设备1200可以包括控制器1210和非易失性存储器件1220。控制器1210,也可以称为存储器控制器,可以响应于从主机1100接收到的命令进行操作。例如,控制器1210可以从主机1100接收写入命令和写入数据,并且可以响应于接收到的写入命令将接收到的写入数据存储在非易失性存储器件1220中。
或者,控制器1210可以从主机1100接收读取命令,并且可以响应于接收到的读取命令读取存储在非易失性存储器件1220中的数据。此后,控制器1210可以将读取数据传送到主机1100。在发明构思的示例性实施例中,非易失性存储器件1220可以是NAND闪存器件,但是发明构思不限于此。
在发明构思的示例性实施例中,主机1100可以基于通过JEDEC标准所定义的通用闪存存储(UFS)接口或协议与存储设备(例如,UFS设备)1200进行通信。例如,主机1100和存储设备1200可以以UFS协议信息单元(UPIU)的形式交换数据包(packet)。UPIU可以包括由主机1100与存储设备1200之间的接口(例如,UFS接口)定义的各种信息。然而,发明构思不限于此。下面,为了便于描述,术语“命令”、“UPIU”和“数据”可以是可互换的,并且根据本文公开的实施例,术语可以具有相同的含义或不同的含义。
在发明构思的示例性实施例中,存储设备1200可以支持加速写入(turbo write)功能或加速写入特征。可以在主机1100的控制下启用或停用加速写入功能。当在主机1100的控制下启用加速写入功能时,存储设备1200可以执行加速写入操作。可以基于单电平单元(SLC)缓冲方案,但不限于此,来执行加速写入操作,并且加速写入操作可以提供存储设备1200的改善的性能(特别是改善的写入性能)。下面将参考附图更充分地描述加速写入操作。
图2是例示了图1的存储设备1200的物理存储空间的示图。存储设备1200的物理存储空间PS可以指非易失性存储器件1220的实际存储用户数据的物理区域。换句话说,物理存储空间PS可以是被主机1100识别为存储设备1200的容量的空间。主机1100和存储设备1200可以遵照由JEDEC提出的用于彼此通信的UFS协议来实现,但是本发明构思不限于此。
在发明构思的示例性实施例中,存储设备1200除了包括图2中例示的物理存储空间PS之外还可以包括任何其他存储空间(例如,未被主机1100识别为存储设备1200的容量的空间,诸如保留区域、用于存储元数据的元区域或用于改善性能的预留空间(overprovisioning)区域)。然而,为了便于描述,将省略(或最小化)与其他存储空间相关联的附加描述,并且描述将集中于存储用户数据的物理存储空间PS。
参考图1和图2,存储设备1200的物理存储空间PS可以包括加速写入缓冲区域(TWB)(在下文中称为“加速写入缓冲区”)和用户存储区域(user storage area,UST)(在下文中称为“用户存储区”)。用户存储区和加速写入缓冲区可以被称为第一区域、第二区域、第三区域等。
加速写入缓冲区TWB可以对应于非易失性存储器件1220的物理存储空间PS的一部分(例如,“a”)。用户存储区UST可以对应于非易失性存储器件1220的物理存储空间PS的其余部分(例如,“b”)。或者,用户存储区UST可以对应于非易失性存储器件1220的整个物理存储空间PS(例如,a+b)。
在发明构思的示例性实施例中,与加速写入缓冲区TWB相对应的每个存储单元可以是SLC,而与用户存储区UST相对应的每个存储单元可以是三电平单元(TLC)。或者,与加速写入缓冲区TWB相对应的存储单元均可以存储n位的数据(n是正整数),而与用户存储区UST相对应的存储单元均可以存储m位的数据(m是大于n的正整数)。换句话说,与用户存储区UST相比,加速写入缓冲区TWB可以是支持更高的写入速度的区域。
本发明构思不限于以上对于加速写入缓冲区TWB和用户存储区UST的描述。例如,与加速写入缓冲区TWB相对应的每个存储单元中存储的位数(例如,k)可以大于或等于与用户存储区UST相对应的每个存储单元中存储的位数(例如,i)(例如,k≥i)。在本发明构思的示例性实施例中,在加速写入缓冲区TWB和用户存储区UST中,可以根据存储设备1200的诸如可靠性和寿命的各种因素来确定每个存储单元要存储的位数。或者,可以根据诸如存储设备1200的可靠性和寿命的各种因素以及每个存储单元要存储的位数来划分加速写缓冲区TWB和用户存储区UST。
在发明构思的示例性实施例中,参考符号“a”和“b”均可以指代对应的存储空间中的存储块的数量。可以依据加速写入缓冲区TWB和用户存储区UST的大小以及用于实现加速写入缓冲区TWB和用户存储区UST的方案(例如,SLC、多电平单元(MLC)、TLC和四电平单元(QLC))而不同地改变“a”和“b”的值。
如参考图1所描述的,存储设备1200可以支持正常写入功能和加速写入功能。当主机1100启用加速写入功能时,存储设备1200可以执行加速写入操作。当主机1100停用加速写入功能时,存储设备1200可以执行正常写入操作。
例如,在加速写入功能被启用的情况下,存储设备1200可以将从主机1100接收到的写入数据优先地写入加速写入缓冲区TWB中。在这种情况下,因为从主机1100接收到的写入数据被写入加速写入缓冲区TWB中(例如,SLC程序),所以与对用户存储区UST执行正常写入操作(例如,TLC程序)的情况相比较,可以保证快速的操作速度。在加速写入功能被停用的情况下,存储设备1200可以不首先将写入数据写入加速写入缓冲区TWB中。依据内部分配的策略(例如,正常写入策略),存储设备1200可以直接将写入数据写入用户存储区UST中或者可以将写入数据写入加速写入缓冲区TWB中。依据正常写入策略,可以基于诸如加速写入缓冲区TWB的数据份额和物理存储空间PS的状态的各种因素来确定如何写入写入数据。
作为另一示例,正常写入策略可以先将写入数据写入用户存储区UST中。为了更清楚地说明本发明构思,在以下详细描述中,正常写入策略是将写入数据优先地写入用户存储区UST中的策略。然而,发明构思不限于此。
在发明构思的示例性实施例中,可以依据来自主机1100的显式命令或内部分配的策略而将写入加速写入缓冲区TWB中的数据转储(flush)或迁移到用户存储区UST。
图3A和图3B是用于描述图2的加速写入缓冲区的示图。参考图1、图2、图3A和图3B,存储设备1200可以包括第一逻辑单元LU1、第二逻辑单元LU2、第三逻辑单元LU3和第四逻辑单元LU4。第一逻辑单元LU1至第四逻辑单元LU4均可以是处理来自主机1100的命令的、外部可寻址的、独立的处理实体。主机1100可以通过第一逻辑单元LU1至第四逻辑单元LU4来管理存储设备1200的存储空间。第一逻辑单元LU1至第四逻辑单元LU4均可以用于将数据存储在存储设备1200处。
第一逻辑单元LU1至第四逻辑单元LU4中的每一个逻辑单元可以与非易失性存储器件1220的至少一个存储块相关联。可以存在被用于各种目的的各种各样的逻辑单元。然而,第一逻辑单元LU1至第四逻辑单元LU4可以对应于物理存储空间PS并且可以用于存储主机1100的数据。
在图3A和图3B中例示了第一逻辑单元LU1至第四逻辑单元LU4,但是发明构思不限于此。例如,存储设备1200除了包括第一逻辑单元LU1至第四逻辑单元LU4之外还可以包括用于存储并管理用户数据的其他逻辑单元。或者,存储设备1200除了包括第一逻辑单元LU1至第四逻辑单元LU4之外还可以包括用于支持各种功能的其他逻辑单元。
存储设备1200的加速写入缓冲区TWB可以被配置为各种类型。加速写入缓冲区TWB可以被配置为逻辑单元(LU)专用缓冲区类型和共享缓冲区类型中的一种。
在LU专用缓冲区类型的情况下,可以针对每个逻辑单元LU独立地或单独地配置加速写入缓冲区TWB。例如,如图3A中所例示的,在LU专用缓冲区类型中,可以针对第一逻辑单元LU1至第四逻辑单元LU4中的第一逻辑单元LU1配置第一加速写入缓冲区TWB1,并且可以针对第一逻辑单元LU1至第四逻辑单元LU4中的第三逻辑单元LU3配置第三加速写入缓冲区TWB3。
在图3A的LU专用缓冲区类型中,在加速写入被启用之后接收到针对第一逻辑单元LUl的写入命令的情况下,可以将写入数据优先地写入与第一逻辑单元LU1相对应的第一加速写入缓冲区TWB1中。在加速写入功能被启用之后接收到针对第三逻辑单元LU3的写入命令的情况下,可以将写入数据优先地写入与第三逻辑单元LU3相对应的第三加速写入缓冲区TWB3中。
在接收到针对未分配有加速写入缓冲区TWB的第二逻辑单元LU2和第四逻辑单元LU4的写入命令的情况下,写入数据可以被写入与第二逻辑单元LU2和第四逻辑单元LU4相对应的用户存储区UST中。另外,在加速写入被停用之后接收到针对第一逻辑单元LU1或第三逻辑单元LU3的写入命令的情况下,依据正常写入策略,写入数据可以被写入第一逻辑单元LU1的用户存储区UST中或第一加速写入缓冲区TWB1中,或者可以被写入第三逻辑单元LU3的用户存储区UST中或第三加速写入缓冲区TWB3中。
在发明构思的示例性实施例中,第一加速写入缓冲区TWB1和第三加速写入缓冲区TWB3的容量可以彼此独立地设置。然而,发明构思不限于此。例如,可以不同地改变或修改分别分配有加速写入缓冲区的逻辑单元的数量、每个加速写入缓冲区的容量等。
在发明构思的示例性实施例中,可以将每个逻辑单元的加速写入缓冲区TWB的大小设置为单元描述符中的每个单元的加速写入缓冲区大小字段(例如,“dLUNumTurboWriteBufferAllocUnits”)。在发明构思的示例性实施例中,每个单元的加速写入缓冲区大小字段(例如,“dLUNumTurboWriteBufferAllocUnits”)可以是可配置的参数。
在共享缓冲区类型的情况下,可以针对所有逻辑单元配置一个加速写入缓冲区。例如,如图3B中所例示的,在共享缓冲区类型中,可以配置由所有第一逻辑单元LU1至第四逻辑单元LU4共享的一个加速写入缓冲区TWB0。
在这种情况下,当在加速写入功能被启用之后接收到针对第一逻辑单元LU1至第四逻辑单元LU4中的每一个逻辑单元的写入命令时,可以首先将写入数据写入共享加速写入缓冲区TWB0中。在加速写入被停用之后接收到针对第一逻辑单元LU1至第四逻辑单元LU4中的每一个逻辑单元的写入命令的情况下,可以根据正常写入策略将写入数据写入在与第一逻辑单元LU1至第四逻辑单元LU4中的每一者相对应的用户存储区UST中,或写入在共享加速写入缓冲区TWB0中。
如上所述,存储设备1200可以包括支持加速写入功能的加速写入缓冲区TWB。依据缓冲区类型(例如,LU专用缓冲区类型或共享缓冲区类型),可以针对多个逻辑单元中的每一个逻辑单元配置加速写入缓冲区TWB或者一个加速写入缓冲区TWB可以被配置为由所有逻辑单元共享。
图4A和图4B的示图用于描述配置图1的存储设备的加速写入缓冲区的模式。下面,为了便于描述,假定存储设备1200的物理存储空间PS是基于TLC的32GB。换句话说,在存储设备1200中包括的每个存储单元存储3位的数据的情况下,存储设备1200可以存储32GB的用户数据。
然而,发明构思不限于此。例如,依据实现存储设备1200或非易失性存储器件1220的方案,例如,依据存储单元类型(例如,SLC、MLC、TLC(或QLC)、存储单元的数量、存储单元结构、预留空间比等,可以不同地改变存储设备1200的物理存储空间PS。
参考图1、图4A和图4B,存储设备1200可以依据各种模式配置加速写入缓冲区TWB的物理存储空间。例如,存储设备1200可以基于用户容量减少模式和无用户容量减少模式中的一种来配置加速写入缓冲区的物理存储空间。
用户容量减少模式可以是为了配置加速写入缓冲区TWBa而减少用户存储区USTa的用户容量的模式。例如,如图4A中所例示的,存储设备1200的物理存储空间PS可以是基于TLC的32GB。
在配置加速写入缓冲区TWB之前,32GB的容量(例如,物理存储空间PS的整个容量)可以被分配给用户存储区UST或者可以被用于用户存储区UST。在这种情况下,从主机1100的角度看用户存储区UST可以被辨识为32GB。
可以依据用户容量减少模式配置加速写入缓冲区TWB。在这种情况下,作为物理存储空间PS的一部分的第二物理存储空间PS2a可以被分配给加速写入缓冲区TWBa或者可以被用于加速写入缓冲区TWBa。
另外,作为物理存储空间PS的一部分的第一物理存储空间PS1a可以被分配给用户存储区USTa或者可以被用于用户存储区USTa。在这种情况下,与未配置加速写入缓冲区TWBa的情况相比较,从主机1100的角度看用户存储区的容量可以减小(例如,从32GB减小到26GB)。
在发明构思的示例性实施例中,可以用TLC实现与用户存储区USTa相对应的第一物理存储空间PS1a,并且可以用SLC实现与加速写入缓冲区TWBa相对应的第二物理存储空间PS2a。同一存储空间被用作TLC与SLC的容量比可以为“3:1”。
换句话说,当加速写入缓冲区TWBa的大小增加多达1GB时,用户存储区USTa的逻辑存储空间的大小可以减小多达3GB。如上所述,在以用户容量减少模式配置加速写入缓冲区TWBa的情况下,可以为加速写入缓冲区TWBa分配存储设备1200的物理存储空间PS的一部分,并且因此,可以减小主机1100识别出的用户存储区USTa的容量。
在发明构思的示例性实施例中,与用户存储区USTa相对应的第一物理存储空间PS1a和与加速写入缓冲区TWBa相对应的第二物理存储空间PS2a可以在物理上彼此相邻或者可以在物理上彼此间隔开。
无用户容量减少模式可以是即使配置了加速写入缓冲区TWBb也不会减少主机1100辨识出的用户存储区USTb的逻辑存储容量的模式。例如,如图4B中所例示的,在配置加速写入缓冲区TWB之前,用户存储区UST可以具有32GB的容量。换句话说,存储设备1200的物理存储空间PS可以被分配给用户存储区UST或者可以被用于用户存储区UST。
在基于无用户容量减少模式来配置加速写入缓冲区TWB的情况下,可以配置具有特定容量(例如,2GB)的加速写入缓冲区TWBb。作为物理存储空间PS的一部分的第二物理存储空间PS2b可以被分配给加速写入缓冲区TWBb或者可以被用于加速写入缓冲区TWBb。
与用户容量减少模式不同,在无用户容量减少模式下的用户存储区USTb可以维持32GB的容量。换句话说,在无用户容量减少模式下,即使配置了加速写入缓冲区TWBb,从主机1100的角度看识别出的用户存储区UST的容量可以与配置加速写入缓冲区TWBb之前的容量相同。
在发明构思的示例性实施例中,在无用户容量减少模式下,可以通过存储设备1200的内部策略或来自主机1100的显式请求来改变加速写入缓冲区TWBb的大小或配置。例如,因为作为物理存储空间PS的一部分的第二物理存储空间PS2b用于配置加速写入缓冲区TWBb,所以要用于用户存储区USTb的第一物理存储空间PS1b可以小于用户存储区USTb的容量。
换句话说,在整个第一物理存储空间PS1b用于存储用户数据或者第一物理存储空间PS1b的可用空闲容量等于或小于参考值的情况下,用于加速写入缓冲区TWBb的第二物理存储空间PS2b的全部或一部分可以返还给用户存储区USTb。
换句话说,在物理存储空间PS中,在由于缺少用于用户存储区USTb的可用空间而无法维持加速写入缓冲区TWBb的情况下,可以将为加速写入缓冲区TWBb分配的第二物理存储空间PS2b返还给用户存储区USTb。例如,可以通过用户数据转储操作和设置加速写入缓冲区大小的操作来执行上述返还操作。
在发明构思的示例性实施例中,主机1100可以检查存储设备1200的加速写入缓冲区TWB的当前可用大小。例如,存储设备1200可以在属性的当前加速写入缓冲区大小字段(例如,“CurrentTurboWriteBufferSzie”)处设置关于加速写入缓冲区TWB的当前大小的信息。另外,存储设备1200可以在其可用加速写入缓冲区大小字段(例如,“dAvailableTurboWriteBufferSize”)处设置关于加速写入缓冲区TWB的当前可用容量的比率的信息。
主机1100可以通过检查属性的当前加速写入缓冲区大小字段和可用加速写入缓冲区大小字段来检查加速写入缓冲区TWB的当前可用大小。基于检查到的信息,主机1100可以改变使用加速写入的策略或者可以将用于加速写入缓冲区TWB的物理存储空间返还给用户存储区UST。
作为另一示例,存储设备1200可以将用于加速写入缓冲区TWB的物理存储空间自主地返还给用户存储区UST。例如,存储设备1200可以周期性地将用户存储区UST的可用空间与参考值进行比较,以确定是否需要将用于加速写入缓冲区TWB的物理存储空间返还给用户存储区UST。当存储设备1200已经将用于加速写入缓冲区TWB的物理存储空间返还给用户存储区UST时,存储设备1200可以将状态标志设置成指示加速写入缓冲区TWB不再可用。状态标志可以存储在存储设备1200中的寄存器中。主机1100可以通过当前加速写入缓冲区大小字段来检查加速写入缓冲区TWB的改变后的状态。在将用于加速写入缓冲区TWB的物理存储空间返还给用户存储区UST时,存储设备1200可以将当前加速写入缓冲区大小字段设置为0。
在发明构思的示例性实施例中,存储设备1200可以基于被分配给或用于加速写入缓冲区TWB的物理存储空间(或存储块)的编程/擦除(P/E)周期的数量来提供关于加速写入缓冲区TWB的寿命的信息。例如,存储设备1200可以在属性的加速写入缓冲区寿命估计字段(例如,“dTurboWriteBufferLifeTimeEst”)处设置关于加速写入缓冲区TWB的寿命的信息。
主机1100可以通过经由查询请求检查存储设备1200的属性的加速写入缓冲区寿命估计字段来估计加速写入缓冲区TWB的寿命。在发明构思的示例性实施例中,在无用户容量减少模式下,因为用户存储区UST和加速写入缓冲区TWB共享物理存储空间PS,所以在对用户存储区UST执行写入操作的情况下,可能降低加速写入缓冲区TWB的寿命。
图5是例示了图1的存储***的操作的流程图。参考图5描述存储***1000的初始化操作。参考图1、图2和图5,在操作S11中,主机1100和存储设备1200可以执行诸如上电复位操作、硬件复位操作或端点复位操作的操作。
在操作S12中,主机1100和存储设备1200可以执行硬件初始化和启动。例如,主机1100和存储设备1200中的每一个的硬件层可以被初始化并被启动。
在操作S13中,主机1100和存储设备1200可以对特定层(例如,UFS传输(UTP)层)执行初始化。例如,主机1100可以向存储设备1200传送空输出(NOP OUT)UPIU。存储设备1200可以响应于空输出UPIU而向主机1100传送空输入(NOP IN)UPIU。
在操作S14中,主机1100可以检查来自存储设备1200的设备描述符。例如,主机1100可以向存储设备1200传送用于读取描述符的查询请求。存储设备1200可以响应于查询请求而向主机1100传送包括设备描述符的查询响应。查询请求可以包括读取描述符。例如,读取描述符可以向存储设备1200指示外部设备需要设备描述符。
在发明构思的示例性实施例中,主机1100可以通过设备描述符来检查存储设备1200的配置和功能。例如,设备描述符可以包括包含有关于是否支持加速写入功能的信息的扩展UFS功能支持字段(例如,“dExtendedUFSFeaturesSupport”)。在发明构思的示例性实施例中,可以将关于是否支持加速写入功能的信息设置为扩展UFS功能支持字段的特定位(例如,位[8])。
设备描述符还可以包括包含有关于加速写入缓冲区模式的信息的加速写入缓冲区无用户空间减少启用字段(例如,“bTurboWriteBufferNoUserSpaceReductionEn”)。在加速写入缓冲区无用户空间减少启用字段的值为“00h”的情况下,可以依据参考图4A描述的用户容量减少模式来配置加速写入缓冲区TWB。在加速写入缓冲区无用户空间减少启用字段的值为“01h”的情况下,可以依据参考图4B描述的无用户容量减少模式来配置加速写入缓冲区TWB。
设备描述符还可以包括包含有关于加速写入缓冲区类型的信息的加速写入缓冲区类型字段(例如,“bTurbowriteBufferType”)。在加速写入缓冲区类型字段的值为“00h”的情况下,可以依据参考图3A描述的LU专用缓冲区类型来配置加速写入缓冲区TWB。在加速写入缓冲区类型字段的值为“01h”的情况下,可以依据参考图3B描述的共享缓冲区类型而配置加速写入缓冲区TWB。
设备描述符还可以包括包含有关于加速写入缓冲区的大小的信息的共享加速写入缓冲区分配数字段(例如,“dNumSharedTurboWriteBufferAllocUnits”)。在分配给共享加速写入缓冲区的单元数被设置为“0”的情况下,可以不配置共享缓冲区类型的加速写入缓冲区。
上述字段仅是示例性的,并且发明构思不限于此。例如,设备描述符除了包括上述字段之外还可以包括包含有关于存储设备1200的配置、结构、功能等的信息的其他字段。设备描述符的各种字段可以指示在初始化操作之前设置的值。主机1100可以通过读取设备描述符的各种字段来识别存储设备1200的当前状态。
在发明构思的示例性实施例中,可以通过写入配置描述符的对应字段的值来改变设备描述符的诸如“bTurboWriteBufferNoUserSpaceReductionEn”、“bTurboWriteBufferType”和“dNumSharedTurboWriteBufferAllocUnits”的上述字段。换句话说,主机1100可以通过写入配置描述符的各种字段的值来改变诸如加速写入缓冲区类型、加速写入缓冲区无用户空间减少启用和分配给加速写入缓冲区的单元的数量的信息。在发明构思的示例性实施例中,存储设备1200的几何描述符可以包括诸如加速写入缓冲区最大大小字段、加速写入缓冲区最大数量字段、加速写入缓冲区容量调整因子字段、受支持的加速写入缓冲区无用户容量减少类型字段、受支持的加速写入缓冲区类型字段等的信息。
例如,加速写入缓冲区最大大小字段(例如,“dTurboWriteBufferMaxNAllocUnits”)可以包括关于存储设备1200支持的加速写入缓冲区TWB的最大大小的信息。加速写入缓冲区最大数量字段(例如,“bDeviceMaxTurboWriteLUs”)可以包括关于存储设备1200支持的加速写入缓冲区的最大数量的信息。
加速写入缓冲区容量调整因子字段(例如,“bTurboWriteBufferCapAdjFac”)可以包括关于根据加速写入缓冲区存储器的种类的容量减少因子的信息。例如,在用SLC实现加速写入缓冲区TWB并且用TLC实现用户存储区UST的情况下,加速写入缓冲区容量调整因子字段的值可以为“3”。在用SLC实现加速写入缓冲区TWB并且用MLC实现用户存储区UST的情况下,加速写入缓冲区容量调整因子字段的值可以为“2”。
受支持的加速写入缓冲区无用户容量减少类型字段(例如,“bSupportedTurboWriteBufferNoUserSpaceReductionTypes”)可以包括关于存储设备1200是否支持任何加速写入缓冲区模式(例如,用户容量减少模式、无用户容量减少模式或两者)的信息。
受支持的加速写入缓冲区类型字段(例如,“bSupportedTurboWriteBufferTypes”)可以包括关于存储设备1200是否支持任何加速写入缓冲区类型(例如,LU专用缓冲区类型、共享缓冲区类型或两者)的信息。
上述字段仅是示例性的,并且发明构思不限于此。
在操作S15中,主机1100可以从存储设备1200下载启动代码。例如,主机1100可以向存储设备1200传送测试单元就绪(TEST UNIT READY)UPIU。存储设备1200可以响应于接收到的测试单元就绪UPIU而传送状态信息。主机1100可以基于接收到的状态信息确定存储设备1200的启动逻辑单元(或启动公知LU)是否可访问。
在启动逻辑单元可访问的情况下,主机1100可以向存储设备1200传送SCSI READ命令。在发明构思的示例性实施例中,SCSI READ命令可以对应于启动逻辑单元。存储设备1200可以响应于接收到的命令而向主机1100传送数据“DATA”和状态信息。
在操作S16中,主机1100可以通过设置存储设备1200的标志来完成初始化操作。例如,主机1100可以向存储设备1200传送查询请求。查询请求可以是用于设置包括在存储设备1200的标志中的设备初始化字段(例如,“fDeviceInit”)的请求。响应于查询请求,可以将包括在存储设备1200的标志中的设备初始化字段设置为特定值(例如,“01h”)。此后,存储设备1200可以传送查询响应。
在操作S17中,主机1100可以轮询存储设备1200的标志的设备初始化字段(例如,“fDeviceInit”)。例如,主机1100可以向存储设备1200传送用于读取标志的设备初始化字段的查询请求,并且存储设备1200可以向主机1100传送包括设备初始化字段的查询响应。
在发明构思的示例性实施例中,在操作S16之后,为了完成存储设备1200的初始化操作,可以将设备初始化字段复位为不同的值(例如,“00h”)。换句话说,主机1100可以重复地执行操作S17以检查设备初始化字段是否被复位。在设备初始化字段被复位的情况下,可以完成存储设备1200的初始化操作。
图6是例示了图1的存储***的操作的流程图。将参考图6描述存储***1000的写入操作。参考图1和图6,在操作S21中,主机1100可以向存储设备1200传送包括写入命令WRCMD的CMD UPIU。
在操作S22中,主机1100和存储设备1200可以执行数据事务。例如,存储设备1200可以向主机1100传送准备好传送UPIU(RTT UPIU)。RTT UPIU可以包括关于存储设备1200能够接收数据的数据范围的信息。主机1100可以响应于RTT UPIU而向存储设备1200传送包括写入数据的DATA OUT UPIU。随着上述操作被重复地执行,可以将写入数据从主机1100传送到存储设备1200。
在接收到全部写入数据之后,在操作S23中,存储设备1200可以向主机1100传送响应UPIU(RESPONSE UPIU)。RESPONSE UPIU可以包括指示完成了与在操作S21中接收到的写入命令相对应的操作的信息。
在发明构思的示例性实施例中,存储设备1200可以对在操作S22中接收到的写入数据执行正常写入操作。例如,在操作S21中,存储设备1200可以确定加速写入功能是否被启用。更具体地,存储设备1200可以基于标志的加速写入启用字段(例如,“fTurboWriteEn”)的值来确定加速写入功能是否被启用。
在加速写入启用字段的值为“0b”的情况下,加速写入功能可以处于停用状态。在加速写入启用字段的值为“1b”的情况下,加速写入功能可以处于启用状态。在发明构思的示例性实施例中,可以通过对主机1100的设置标志的查询请求来设置标志的加速写入启用字段的值。
主机1100可以不设置加速写入启用字段的值。在这种情况下,可以按照正常写入政策将在操作S22中接收到的写入数据写入加速写入缓冲区TWB或用户存储区UST中。
在操作S30中,主机1100可以将加速写入启用字段的值设置为特定值(例如,“1b”)。例如,主机1100可以向存储设备1200传送用于将加速写入启用字段的值设置为特定值(例如,“1b”)的查询请求。可以响应于来自主机1100的查询请求而将加速写入启用字段的值设置为特定值(例如,“1b”),并且存储设备1200可以向主机1100传送查询响应。
此后,主机1100可以执行操作S31至操作S33。除了依据加速写入启用字段执行加速写入之外,操作S31至操作S33可以分别与操作S21至操作S23类似,因此,将省略附加描述以避免冗余。
在发明构思的示例性实施例中,可以将在操作S32中接收到的写入数据写入加速写入缓冲区TWB中。例如,在操作S30中,当加速写入启用字段的值被设置为特定值(例如,“1b”)时,可以启用加速写入功能。在这种情况下,可以将从主机1100接收到的写入数据写入加速写入缓冲区TWB中。例如,在操作S31中,可以根据命令UPIU的特定因子值,将从主机1100接收到的数据存储在固定加速写入缓冲区TWB-p或非固定加速写入缓冲区TWB-np中。将参考图8更全面地描述如何配置被划分成固定加速写入缓冲区TWB-p和非固定加速写入缓冲区TWB-np的加速写入缓冲区。
在发明构思的示例性实施例中,即使启用了加速写入功能,在加速写入缓冲区TWB的空间不足的情况下,存储设备1200也可以将接收到的写入数据写入用户存储区UST中。
图7是例示了图1的存储设备的操作的流程图。将参考图7描述存储设备1200的转储操作。参考图1、图2和图7,在操作S41中,存储设备1200可以确定当前状态是空闲状态、休眠状态还是运行时状态。当存储设备1200处于运行时状态时,可以不执行单独的转储操作。
例如,当存储设备1200正在处理从主机1100接收到的命令时,存储设备1200可以处于运行时状态。当从主机1100接收到并且正被处理或将被处理的命令(例如,待处理的(pending)命令)不存在时,存储设备1200可以处于空闲状态。当存储设备1200通过存储设备1200或主机1100的启动进入被称作“休眠”的低功率模式时,存储设备1200可以处于休眠状态。
当存储设备1200处于空闲状态时,在操作S42中,可以确定是否启用了第一转储操作。主机1100可以通过设置标志的加速写入缓冲区转储启用字段(例如,“fTurboWriteBufferFlushEn”)的值来允许或禁止存储设备1200处的第一转储操作。存储设备1200可以通过检查标志的加速写入缓冲区转储启用字段的值来确定是否启用第一转储操作。
在发明构思的示例性实施例中,当标志的加速写入缓冲区转储启用字段的值为“0b”时,第一转储操作可以被停用或被禁用。当标志的加速写入缓冲区转储启用字段的值为“1b”时,第一转储操作可以被启用。在第一转储操作被停用的情况下,存储设备1200可以不执行单独的转储操作。
在第一转储操作被启用的情况下,在操作S43中,存储设备1200可以在空闲状态期间执行第一转储操作。第一转储操作可以是存储设备1200在空闲状态下执行的转储操作。转储操作可以是依据内部策略或来自主机1100的显式命令将写入加速写入缓冲区TWB中的用户数据转储或迁移到用户存储区UST的操作。
在发明构思的示例性实施例中,当写入加速写入缓冲区TWB中的用户数据被转储到用户存储区UST时,可以维持转储后的用户数据的逻辑地址,并且可以改变物理地址。在这种情况下,存储设备1200可以更新转储后的用户数据的逻辑地址与物理地址的映射信息。例如,可以将物理地址从加速写入缓冲区TWB的地址改变为用户存储区UST的地址。
当操作S41的确定结果指示存储设备1200处于休眠状态时,在操作S44中,存储设备1200可以确定是否启用了第二转储操作。如在以上描述中一样,例如,主机1100可以通过设置标志的休眠期间加速写入缓冲区转储启用字段(例如,“fTurboWriteBufferFlushDuringHibernat”)的值来允许或禁止存储设备1200处的第二转储操作。
存储设备1200可以通过检查标志的休眠期间加速写入缓冲区转储启用字段的值来确定是否启用了第二转储操作。在发明构思的示例性实施例中,当标志的休眠期间加速写入缓冲区转储启用字段的值为“0b”时,第二转储操作可以被停用或被禁用。当标志的休眠期间加速写入缓冲区转储启用字段的值为“1b”时,第二转储操作可以被启用。在第二转储操作被停用的情况下,存储设备1200可以不执行单独的转储操作。
在第二转储操作被启用的情况下,在操作S45中,存储设备1200可以在休眠状态期间执行第二转储操作。第二转储操作可以指示存储设备1200在休眠状态下执行的转储操作。
根据以上转储操作,可以将写入加速写入缓冲区TWB中的用户数据转储或迁移到用户存储区UST中。因此,可以保证加速写入缓冲区TWB的可用缓冲区大小。
在发明构思的示例性实施例中,可以在特定条件下暂停以上转储操作。例如,可以仅在存储设备1200的命令队列为空的状态下执行在空闲状态下执行的第一转储操作。在执行第一转储操作时,在命令是从主机1100发出的情况下,存储设备1200可以暂停正在执行的第一转储操作并且可以先处理从主机1100发出的命令。在发明构思的示例性实施例中,在休眠模式终止的情况下,可以停止在休眠状态下执行的第二转储操作。
如上所述,可以依据特定条件暂停正在执行的转储操作。在这种情况下,存储设备1200可以在属性的加速写入缓冲区转储状态字段(例如,“bTurboWriteBufferFlushStatus”)处设置暂停信息(或进展程度的信息)或转储操作的当前状态。
在发明构思的示例性实施例中,存储设备1200可以将指示需要针对加速写入缓冲区TWB的转储操作的信息设置为属性的异常事件状态(例如,“dExceptionEventStatus”)的特定值(例如,位[5])。主机1100可以检查属性的异常事件状态的特定值(例如,位[5]),可以确定在存储设备1200处需要转储操作,并且可以按照策略设置存储设备1200的标志的特定字段(例如,“fTurboWriteBufferFlushEn”和“fTurboWriteBufferFlushDuringHibernate”)。
参考图7给出的描述是存储设备1200基于转储启用字段的值(即,加速写入缓冲区转储启用字段的值或休眠期间加速写入缓冲区转储启用字段的值)来执行转储操作,但是发明构思不限于此。在示例性实施例中,存储设备1200依据内部策略执行转储或迁移操作,而不考虑转储启用字段的值(即,加速写入缓冲区转储启用字段的值或休眠期间加速写入缓冲区转储启用字段的值)。在这种情况下,存储设备1200可以根据由存储设备1200自动做出的确定结果(无需外部干预,或者根据其自身的确定结果),来执行转储或迁移操作。
图8是例示了图1的存储设备1200的物理存储空间的框图。参考图1和图8,存储设备1200的物理存储空间PS可以包括加速写入缓冲区TWB和用户存储区UST。在上面描述了存储设备1200的物理存储空间PS、加速写入缓冲区TWB和用户存储区UST,因此可以省略附加描述以避免冗余。
可以将加速写入缓冲区TWB划分成固定加速写入缓冲区TWB-p和非固定加速写入缓冲区TWB-np。如在以上描述中一样,在存储设备1200的加速写入功能被启用的情况下,可以将写入数据存储在固定加速写入缓冲区TWB-p和非固定加速写入缓冲区TWB-np之一中。
在实施例中,存储在固定加速写入缓冲区TWB-p中的数据不是移动(例如,迁移或转储)到用户存储区UST的目标,并且存储在非固定加速写入缓冲区TWB-np中的数据可以是移动到用户存储区UST的目标。即,存储在固定加速写入缓冲区TWB-p中的数据的优先级可以高于存储在非固定加速写入缓冲区TWB-np中的数据的优先级。然而,本发明构思不限于此,因为根据***资源或策略,存储在固定加速写入缓冲区TWB-p中的数据可以是移动到非固定加速写入缓冲区TWB-np或用户存储区UST的目标。在示例性实施例中,周期性地执行迁移或转储操作以将数据从加速写入缓冲区TWB移动到用户存储区UST。在该实施例中,在固定加速写入缓冲区TWB-p中的任何数据迁移或转储到用户存储区UST之前,首先将存在于非固定加速写入缓冲区TWB-np中的所有数据迁移或转储到用户存储区UST。在另一实施例中,在给定的迁移期间,非固定加速写入缓冲区TWB-np中的第一数据在迁移的第一时段期间迁移到用户存储区UST,并且固定加速写入缓冲区TWB-p中的第二数据在第一时段之后的第二时段期间迁移到用户存储区UST。
可以通过各种方案(例如,内部策略、根据主机的请求对内部策略的改变和主机的显式请求)来从固定加速写入缓冲区TWB-p和非固定加速写入缓冲区TWB-np当中确定要存储写入数据的加速写入缓冲区。
在发明构思的示例性实施例中,如上所述,可以在主机1100的控制下或依据存储设备1200的内部策略,确定加速写入缓冲区TWB的大小。在这种情况下,可以通过各种方案(例如,内部策略、根据主机的请求对内部策略的改变和主机的显式请求)来确定或改变加速写入缓冲区TWB中的固定加速写入缓冲区TWB-p与非固定加速写入缓冲区TWB-np之比。
在发明构思的示例性实施例中,可以在固定加速写入缓冲区TWB-p、非固定加速写入缓冲区TWB-np和用户存储区UST之间转储、迁移或移动用户数据。例如,用户数据可以依据主机1100的显式请求、存储设备1200的内部策略或根据主机1100的请求对内部策略的改变而在固定加速写入缓冲区TWB-p与非固定加速写入缓冲区TWB-np之间迁移或移动。
或者,用户数据可以依据主机1100的显式请求、存储设备1200的内部策略或根据主机1100的请求对内部策略的改变而在非固定加速写入缓冲区TWB-np与用户存储区UST之间迁移或移动。例如,用户数据可以从非固定加速写入缓冲区TWB-np转储到用户存储区UST。或者,用户数据可以依据主机1100的显式请求、存储设备1200的内部策略或根据主机1100的请求对内部策略的改变而在固定加速写入缓冲区TWB-p与用户存储区UST之间迁移或移动。
在发明构思的示例性实施例中,如参考图7所描述的,存储设备1200可以在空闲状态或休眠状态期间执行转储操作。在这种情况下,存储设备1200可以对加速写入缓冲区TWB的非固定加速写入缓冲区TWB-np执行转储操作。换句话说,存储设备1200可以将存储在加速写入缓冲区TWB的非固定加速写入缓冲区TWB-np中的用户数据转储到用户存储区UST。
在这种情况下,可以不将写入固定加速写入缓冲区TWB-p中的用户数据转储到用户存储区UST。换句话说,即使存储设备1200执行转储操作,也可以维持写入固定加速写入缓冲区TWB-p中的用户数据。
作为另一示例,依据存储设备1200的内部策略,将要存储在非固定加速写入缓冲区TWB-np中的数据可能写入固定加速写入缓冲区TWB-p中。可以将此数据从固定加速写入缓冲区TWB-p转储到用户存储区UST。换句话说,存储在固定加速写入缓冲区TWB-p中的数据可以不通过来自主机1100的显式转储请求被转储,而是可以根据存储设备1200的内部转储策略被选择性地转储到用户存储区UST。
在本发明构思的示例性实施例中,在固定加速写入缓冲区TWB-p、非固定加速写入缓冲区TWB-np和用户存储区UST之间转储、迁移或移动数据的情况下,控制器1210可以被配置为更新所移动的数据的映射关系。例如,在与第一逻辑块地址相对应的数据从固定加速写入缓冲区TWB-p转储或迁移到用户存储区UST的情况下,控制器1210可以释放第一逻辑块地址与固定加速写入缓冲区TWB-p的物理地址的映射关系,并且可以更新第一逻辑块地址与用户存储区UST的物理地址的映射关系。可以以与上述用于在其他区域之间移动的方案相似的方案来进行映射关系的释放或更新,因此,将省略附加描述以避免重复。
下面,为了更清楚地说明本发明构思,将在要存储在固定加速写入缓冲区TWB-p中的数据需要被存储在固定加速写入缓冲区TWB-p中的假设下给出描述。然而,本发明构思不限于此。
因此,在主机1100发出针对写入固定加速写入缓冲区TWB-p中的第一用户数据的读取命令的情况下,可以从固定加速写入缓冲区TWB-p读取第一用户数据。在这种情况下,可以高速读取第一用户数据。
例如,如上所述,固定加速写入缓冲区TWB-p可以基于SLC方案存储用户数据,并且用户存储区UST可以以TLC方案存储用户数据。读取基于SLC方案存储的用户数据所花费的时间比读取基于TLC方案存储的用户数据所花费的时间短。
换句话说,由于特定用户数据被保持在固定加速写入缓冲区TWB-p中,所以可以提高读取特定用户数据的速度。存储设备1200的此功能可以被称作“加速读取(turboread)”。
在本发明构思的示例性实施例中,存储设备1200的物理存储空间PS可以指示非易失性存储器件1220的存储空间。换句话说,非易失性存储器件1220可以包括固定加速写入缓冲区TWB-p、非固定加速写入缓冲区TWB-np或用户存储区UST。
图9的示图例示了用于参考图8描述的存储设备1200的物理存储空间PS的逻辑存储空间。为了便于描述,将参考一个逻辑单元来描述图9的实施例。然而,发明构思可以被相同地应用于加速写入缓冲区TWB所对应的两个或更多个逻辑单元,或者可以被相同地应用于逻辑单元与共享加速写入缓冲区(例如,TWB0)之间的关系。
参考图1和图9,存储设备1200的被主机1100识别出的逻辑存储空间LS可以包括用户存储区UST和加速写入缓冲区TWB。加速写入缓冲区TWB可以包括固定加速写入缓冲区TWB-p和非固定加速写入缓冲区TWB-np。
第一逻辑块地址范围(例如,LBA0至LBAa、LBAb+1至LBAc以及LBAe+1至LBAn)可以对应于用户存储区UST的逻辑存储空间。在这种情况下,可以将存储在第一逻辑块地址范围(例如,LBA0至LBAa、LBAb+1至LBAc以及LBAe+1至LBAn)中的用户数据存储在用户存储区UST的物理存储空间中。
第二逻辑块地址范围(例如,LBAa+1至LBAb和LBAd+1至LBAe)可以对应于非固定加速写入缓冲区TWB-np的逻辑存储空间。在这种情况下,可以将存储在第二逻辑块地址范围(例如,LBAa+1至LBAb和LBAd+1至LBAe)中的用户数据存储在非固定加速写入缓冲区TWB-np的物理存储空间中。
第三逻辑块地址范围(例如,LBAc+1至LBAd)可以对应于固定加速写入缓冲区TWB-p的逻辑存储空间。在这种情况下,可以将存储在第三逻辑块地址范围(例如,LBAc+1至LBAd)中的用户数据存储在固定加速写入缓冲区TWB-p的物理存储空间中。
如上所述,用户存储区UST、非固定加速写入缓冲区TWB-np和固定加速写入缓冲区TWB-p可以以各种形式分布在由主机1100辨识出的逻辑存储空间LS上。然而,本发明构思不限于此,并且第三逻辑块地址范围可以对应于非固定加速写入缓冲区TWB-np的逻辑存储空间,并且第二逻辑块地址范围可以对应于固定加速写入缓冲区TWB-p的逻辑存储空间。在发明构思的示例性实施例中,用户数据可以依据主机1100的显式请求或存储设备1200的内部策略而在用户存储区UST、非固定加速写入缓冲区TWB-np和固定加速写入缓冲区TWB-p之间移动/转储/迁移。
例如,主机1100可以在加速写入中指定固定加速写入缓冲区TWB-p和非固定加速写入缓冲区TWB-np之一。作为另一示例,主机1100可以在加速写入之前将固定加速写入缓冲区TWB-p和非固定加速写入缓冲区TWB-np之一指定为加速写入目标。作为又一示例,主机1100在加速写入中可以不指定固定加速写入缓冲区TWB-p或非固定加速写入缓冲区TWB-np。
主机1100可以通过周期性地或在必要时从存储设备1200请求(例如,使用查询UPIU)固定加速写入缓冲区TWB-p和非固定加速写入缓冲区TWB-np的信息来检查由存储设备1200改变的数据的分布状态。
图10A和图10B的示图例示了参考图8描述的存储设备的物理存储空间中的操作。为了例示的简洁和描述的方便,假定固定加速写入缓冲区TWB-p包括第一存储块BLK1,非固定加速写入缓冲区TWB-np包括第二存储块BLK2,并且用户存储区UST可以包括第三存储块BLK3。然而,发明构思不限于此。
参考图1、图8和图10A,存储设备1200可以从主机1100接收与第一逻辑块地址LBA1相对应的第一数据DT1。在发明构思的示例性实施例中,存储设备1200的加速写入功能可以处于启用状态。在这种情况下,存储设备1200可以将接收到的第一数据DT1写入加速写入缓冲区TWB(例如,非固定加速写入缓冲区TWB-np)中。
换句话说,存储设备1200可以对第一数据DT1执行加速写入。在发明构思的示例性实施例中,在加速写入功能被启用的情况下,可以通过各种方案来确定是否将数据存储在固定加速写入缓冲区TWB-p和非固定加速写入缓冲区TWB-np中的任何一者中。
在发明构思的示例性实施例中,如图10A中所例示的,固定加速写入缓冲区TWB-p和非固定加速写入缓冲区TWB-np可以写满用户数据DTa、DTb、DT0和DT1。在这种情况下,存储设备1200可以通过设置属性的异常事件状态字段(例如,“wExceptionEventStatus”)的特定位(例如,位[5])来通知主机1100需要转储操作。
主机1100可以通过查询请求来检查属性的异常事件状态字段并且可以检查在存储设备1200处需要转储操作。主机1100可以通过像参考图7所描述的那样设置存储设备1200的标志的加速写入缓冲区转储启用字段或休眠期间加速写入缓冲区转储启用字段来允许存储设备1200的转储操作。
当在主机1100的控制下允许(或启用)转储功能时,存储设备1200可以执行转储操作。例如,在空闲状态或休眠状态下,存储设备1200可以将存储在非固定加速写入缓冲区TWB-np中的用户数据DT0和DT1转储到用户存储区UST的第三存储块BLK3中。在发明构思的示例性实施例中,即使在主机1100的控制下允许转储操作,也可以不将存储在固定加速写入缓冲区TWB-p中的用户数据DTa和DTb转储到用户存储区UST中。换句话说,存储在固定加速写入缓冲区TWB-p中的用户数据DTa和DTb被保留,而存储在非固定加速写入缓冲区TWB-np中的用户数据DT0和DT1被转储。
此后,存储设备1200可以从主机1100接收针对第一逻辑块地址LBA1的读取命令。在这种情况下,存储设备1200可以读取存储在用户存储区UST的第三存储块BLK3中的第一数据DT1并且可以将读取到的第一数据DT1输出到主机1100。
在发明构思的示例性实施例中,因为第一数据DT1被写入(例如,SLC编程)到非固定加速写入缓冲区TWB-np中但是第一数据DT1由于转储操作而被转储到用户存储区UST,所以可以通过正常读取操作(例如,TLC读取操作)来读取第一数据DT1。换句话说,第一数据DT1可以被SLC编程但是被TLC读取。
参考图1、图8和图10B,可以将第零数据DT0和第一数据DT1存储在非固定加速写入缓冲区TWB-np的第二存储块BLK2中,并且可以将第a数据DTa存储在用户存储区UST的第三存储块BLK3中。
此后,依据主机1100的显式请求或存储设备1200的内部策略,用户存储区UST的第a数据DTa可以移动到固定加速写入缓冲区TWB-p的第一存储块BLKl。例如,存储设备1200可以从用户存储区UST的第三存储块BLK3读取第a数据DTa,并且可以将所读取的第a数据DTa存储在固定加速写入缓冲区TWB-p的第一存储块BLK1中。之后,可以无效、删除或取消映射存储在用户存储区UST的第三存储块BLK3中的第a数据DTa。在本发明构思的示例性实施例中,即使第a数据DTa被无效、被删除或被取消映射,与第a数据DTa相对应的第a逻辑块地址LBAa也可以维持与固定加速写入缓冲区TWB-p的第一存储块BLK1的映射。
此后,存储设备1200可以从主机1100接收针对与第a数据DTa相对应的第a逻辑块地址LBAa的读取命令。在这种情况下,存储设备1200可以读取存储在固定加速写入缓冲区TWB-p的第一存储块BLK1中的第a数据DTa并且可以将读取到的第a数据DTa传送到主机1100。
在发明构思的示例性实施例中,读取存储在固定加速写入缓冲区TWB-p的第一存储块BLKl中的第a数据DTa的操作可以比读取存储在用户存储区UST的第三存储块BLK3中的数据的操作快。换句话说,根据发明构思的示例性实施例的存储设备1200可以通过将特定数据存储并保持在加速写入缓冲区TWB(或固定加速写入缓冲区TWB-p)中来支持对特定数据的快速读取操作(例如,加速读取操作)。
在发明构思的示例性实施例中,存储设备1200可以响应于主机1100的请求而向主机1100通知加速写入缓冲区TWB的剩余(或空闲)容量。存储设备1200可以将关于加速写入缓冲区TWB的剩余空闲容量的信息写入到属性的可用加速写入缓冲区大小字段(例如,“dAvailableTurboWriteBufferSize”)。主机1100可以通过读取可用加速写入缓冲区大小字段(例如,通过使用查询UPIU)来获得加速写入缓冲区TWB的容量信息。
例如,存储设备1200可以在可用加速写入缓冲区大小字段处分开记录固定加速写入缓冲区TWB-p的剩余容量和非固定加速写入缓冲区TWB-np的剩余容量。作为另一示例,存储设备1200可以在可用加速写入缓冲区大小字段处记录加速写入缓冲区TWB的总剩余容量。可以通过主机1100的标志设置来指定存储设备1200整体地还是单独地记录加速写入缓冲区TWB的剩余容量。
例如,存储设备1200可以在可用加速写入缓冲区大小字段处记录比加速写入缓冲区TWB的实际空闲容量小的容量。在诸如闪存的非易失性存储器件1220中,在连续擦除操作之间的时间小于阈值时间的情况下,数据的可靠性可能降低。
因为加速写入缓冲区TWB的容量小于用户存储区UST的容量并且以SLC方案使用加速写入缓冲区TWB,所以与用户存储区UST相比,加速写入缓冲区TWB可以更快地被写满数据。另外,在主机1100更喜欢高速的加速写入的情况下,加速写入缓冲区TWB可以更快地被写满数据。
在数据被密集地写入加速写入缓冲区TWB的情况下,在短时间窗口期间,执行以下系列操作:对加速写入缓冲区TWB执行第一次擦除操作,将数据写入加速写入缓冲区TWB中,转储加速写入缓冲区TWB中的数据,对加速写入缓冲区TWB执行第二次擦除操作,并将数据写入加速写入缓冲区TWB中。
在这种情况下,当第一次擦除操作与第二次擦除操作之间的时间小于阈值时间时,在第二次擦除操作之后写入加速写入缓冲区TWB中的数据的可靠性可能降低。为了提高可靠性,即使加速写入缓冲区TWB的特定存储块未存储有效数据并且在擦除操作之后可重复使用,当在特定存储块的上一次擦除操作之后经过的时间小于阈值时间时,存储设备1200也可以在可用加速写入缓冲区大小字段处记录不包括特定存储块的容量的容量。
图11是例示了根据发明构思的示例性实施例的存储***的操作方法的示图。将参考图1和图11描述存储***1000的读取操作。存储设备1200可以包括固定加速写入缓冲区(TWB-p)1222、非固定加速写入缓冲区(TWB-np)1224和用户存储区(UST)1226。如上面所讨论的,固定加速写入缓冲区(TWB-p)1222可以是禁止存储在其中的数据移动到用户存储区(UST)1226的区域。非固定加速写入缓冲区(TWB-np)1224可以是允许存储在其中的数据移动到用户存储区(UST)1226的区域。
在操作S110中,主机1100可以将包括读取命令的命令UPIU传送到存储设备1200。主机1100在读取命令中提供读取地址,所述读取地址是要读取的数据的地址。在这种情况下,所提供的读取地址包括逻辑块地址LBA和计数CNT。在这里,逻辑块地址LBA可以对应于读取数据的起始地址,并且计数CNT指示地址范围。例如,主机1100可以提供逻辑块地址LBA“100”和计数CNT“1”作为读取地址。
存储设备1200从主机1100接收读取命令,例如,读取请求。响应于读取命令,存储设备1200读取存储在逻辑块地址LBA“100”中的数据DT“100”。例如,数据DT“100”可以是存储在加速写入缓冲区TWB的非固定加速写入缓冲区(TWB-np)1224中的数据。存储设备1200读取存储在非固定加速写入缓冲区(TWB-np)1224中的数据DT“100”。根据发明构思的示例性实施例,存储设备1200可以从固定加速写入缓冲区(TWB-p)1222、非固定加速写入缓冲区(TWB-np)1224和用户存储区(UST)1226中的至少一个读取数据DT。将在下面(例如,在图17至图21中)详细地讨论不同的场景。
在操作S120中,存储设备1200将存储在非固定加速写入缓冲区(TWB-np)1224中的数据DT“100”传送到主机1100。例如,存储设备1200可以向主机1100传送包括读取数据DT“100”的DATA IN UPIU数据包(数据传送包)。可以传送多个DATA IN UPIU数据包以将所有请求读取的数据传送到主机1100。
在操作S130中,存储设备1200可以向主机1100传送响应,从而提供读取数据DT“100”被完全传送的通知。在UFS接口中,存储设备1200为了将响应传送到主机1100可以向主机1100传送响应UPIU。特别地,根据发明构思的示例性实施例,包括读取数据DT的属性的读取数据信息可以被包括在响应UPIU中。读取数据信息可以包括关于存储设备1200的存储有读取数据DT“100”的位置的信息(位置信息)以及命中/未命中信息(反馈信息)。在所例示的示例中,读取数据信息还可以包括指示读取数据DT“100”是从非固定加速写入缓冲区(TWB-np)1224读取的信息。另外,读取数据信息还可以包括与指示读取数据DT“100”存在于加速写入缓冲区TWB中的命中相对应的信息。在其他场景中,命中/未命中信息可以包括读取数据DT在存储设备1200中的移动信息(例如,参考图20和图24所描述的)或指示读取数据DT存在于加速写入缓冲区TWB和用户存储区(UST)1226中的部分命中的部分命中信息(例如,参考图21进行描述)。
图12是例示了根据发明构思的示例性实施例的读取数据信息的表。参考图12,可以用包括在响应UPIU中的读取数据信息(RDI)字段实现读取数据信息RDI。
在存储设备1200通过使用UFS接口来向主机1100传送响应的情况下,可以定义表中例示的响应UPIU。根据发明构思的示例性实施例的响应UPIU可以包括指示主机1100请求的任务完成的信息以及存储设备1200打算向主机1100提供的任务的状态。响应UPIU包括基本UPIU报头和额外信息。在UFS接口中定义12字节的基本UPIU报头。
可以将根据发明构思的示例性实施例的读取数据信息RDI分配给基本UPIU报头的第六字节5。读取数据信息RDI可以具有8位的长度。例如,读取数据信息RDI的低四位可以指示从中读取读取数据的区域的位置信息。读取数据信息RDI的高四位可以被配置为指示反馈信息,例如,命中/未命中或移动。
假定包括在响应UPIU中的8位读取数据信息RDI为“0000 0000”。高四位中不包括信息,并且低四位指示读取数据是从用户存储区(UST)区域读取的。高四位为“0000”的情况意味着不包括信息。读取数据信息RDI的低四位为“0001”的情况意味着读取数据是从固定加速写入缓冲区(TWB-p)区域读取的。读取数据信息RDI的低四位为“0010”的情况意味着读取数据是从非固定加速写入缓冲区(TWB-np)区域读取的。读取数据信息RDI的低四位为“0100”和“1000”的字段可以是保留字段。
包括在响应UPIU中的8位读取数据信息RDI的高四位可以被配置为指示命中/未命中或移动。读取数据信息RDI的高四位中的第四位或最低有效位为“1”的情况(例如,高四位为“0001”的情况)指示部分命中,部分命中是指请求读取的数据的一部分存在于加速写入缓冲区TWB中。读取数据信息RDI的高四位中的第三位为“1”的情况(例如,高四位为“0010”的情况)指示请求读取的数据在存储设备1200的各区域之间移动。读取数据信息RDI的高四位中的第二位为“1”的情况(例如,高四位为“0100”的情况)指示未命中状态,未命中状态是指请求读取的数据不存在于加速写入缓冲区TWB中。读取数据信息RDI的高四位中的第一位或最高有效位为“1”的情况(例如,高位四位为“1000”的情况)指示命中,命中是指请求读取的数据存在于加速写入缓冲区TWB中。
这里,可以组合并使用高四位的位值。例如,高四位为“0110”的情况意味着“未命中”状态和“移动”状态。另外,低四位可以是在读取数据被传送之后当存储设备1200传送响应UPIU时默认提供的读取数据信息RDI。相比之下,可以仅通过主机1100的查询请求来传送读取数据信息RDI的高四位。换句话说,在主机1100打算监测存储设备1200中的数据移动或命中/未命中的情况下,主机1100可以在传送读取命令之前通过查询请求来请求反馈信息。将参考图13详细地描述此过程。
图13的示图例示了根据发明构思的示例性实施例的主机请求读取数据信息的高四位的查询请求过程。参考图13,主机1100可以通过主机1100对设置属性的查询请求来配置存储设备1200以将指示读取数据的命中/未命中的值包括在读取数据信息RDI中。
在操作S210中,主机1100在传送读取命令之前执行设置属性,使得指示读取数据的命中/未命中的反馈信息被包括在读取数据信息RDI中。例如,主机1100可以将查询请求传送到存储设备1200以设置属性。在设置属性被设置为“1”之后,每当传送读取命令时可以将指示读取数据的命中/未命中的反馈信息包括在响应UPIU中。
在操作S220中,主机1100可以将包括读取命令的命令UPIU传送到存储设备1200。主机1100可以提供逻辑块地址LBA“200”和计数CNT“2”作为读取地址。
在操作S230中,存储设备1200可以读取与读取地址相对应的存储区域的数据,可以生成DATA IN UPIU数据包,并且可以将该DATA IN UPIU数据包传送给主机1100。
在操作S240中,存储设备1200向主机1100传送包括读取数据信息RDI的响应UPIU,读取数据信息RDI中包括指示读取数据的命中/未命中的反馈信息。在接收到用于改变设置属性的附加查询请求之前,每当接收到读取命令时存储设备1200可以将包括反馈信息的读取数据信息RDI传送给主机1100。
图14例示了根据发明构思的示例性实施例的通过响应传送额外信息的方法。参考图14,在读取数据对应于部分命中的情况下,存储设备1200可以通过使用响应UPIU的特定字段来向主机1100传送地址信息。
在由主机1100请求的读取数据对应于部分命中的情况下,存储设备1200可以通过使用读取数据信息RDI的反馈信息来向主机1100通知部分命中。例如,反馈信息的逻辑值(例如,读取数据信息RDI的高四位)为“0001”的情况指示读取数据对应于部分命中。存储设备1200可以在响应UPIU的感测数据字段中附加地写入关于部分命中的LBA长度信息。
例如,在请求读取的数据属于从LBA 100到LBA 150的逻辑块地址范围的情况下,从LBA 100到LBA 120的数据可以对应于命中,而从LBA 121到LBA 150的数据可以对应于未命中。在这种情况下,存储设备1200可以将与命中或未命中相对应的LBA长度信息写入感测数据字段的第(k+2)字节到第(k+17)字节,并且可以向主机1100发送包括LBA长度信息的响应UPIU。这里给出了将LBA长度信息写入感测数据字段中的描述,但是发明构思不限于此。在部分命中的情况下,可以很好地理解的是,响应UPIU的保留字段可以用于加载LBA长度信息。
图15的示图例示了根据发明构思的示例性实施例的当存储***中发生部分命中时获得详细信息的方法。在下面,将参考图1和图15描述发明构思的存储***1000的读取操作。在这里,假定已经通过查询请求完成了存储设备1200的设置属性(=1)。
在操作S310中,主机1100可以将包括读取命令的命令UPIU传送到存储设备1200。主机1100将要读取的数据的信息(LBA:200,CNT:2)包括在读取命令中。响应于读取命令,存储设备1200读取存储在逻辑块地址LBA“200”处的数据DT“200”和“201”。存储设备1200可以响应于读取命令读取存储在加速写入缓冲区TWB的固定加速写入缓冲区(TWB-p)1222中的数据DT“200”。存储设备1200响应于读取命令读取存储在用户存储区(UST)区域1226中的数据DT“201”。
在操作S320中,存储设备1200将读取数据DT“200”和“201”传送到主机1100。例如,存储设备1200可以向主机1100传送包括读取数据DT“200”和“201”的至少一个DATA INUPIU数据包。
在操作S330中,存储设备1200可以向主机1100传送响应。存储设备1200可以传送包括读取数据信息RDI的响应UPIU。依据设置属性,关于存储设备1200的存储有读取数据DT“200”和“201”的位置的信息以及命中/未命中信息可以被包括在读取数据信息RDI中。在所例示的示例中,假定读取数据信息RDI具有逻辑值“0001 0001”。根据图12的定义,读取数据信息RDI的低四位即“0001”指示固定加速写入缓冲区(TWB-p)1222,而读取数据信息RDI的高四位即“0001”指示部分命中。
在操作S340中,主机1100可以检查读取数据信息RDI的部分命中状态并且可以确定是否需要额外信息。当确定需要额外信息(是)时,过程进行到操作S350。当确定不需要额外信息(否)时,过程被终止。
在操作S350中,主机1100将用于请求与部分命中相对应的读取数据的额外信息的查询请求传送到存储设备1200。例如,主机1100可以传送用于请求关于与部分命中相对应的读取数据的扩展读取数据信息RDIe的查询请求。
在操作S360中,存储设备1200可以为读取操作(从操作S310执行到操作S330)准备扩展读取数据信息RDIe,并且可以将扩展读取数据信息RDIe返回给主机1100。例如,存储设备1200可以将包括扩展读取数据信息RDIe的响应UPIU提供给主机1100。扩展读取数据信息RDIe可以是例如读取数据属性信息,该读取数据属性信息是关于主机1100在操作S320中响应于查询请求接收到的读取数据DT“200”和“201”的并且与读取数据信息RDI分开。
图16是例示了根据发明构思的示例性实施例的参考图15描述的扩展读取数据信息的表。参考图15和图16,检查读取数据的部分命中状态的主机1100可以通过查询请求来请求扩展读取数据信息RDIe。在这种情况下,存储设备1200可以在响应UPIU上加载作为读取数据属性信息的扩展读取数据信息RDIe,并且可以将响应UPIU传送到主机1100。
扩展读取数据信息RDIe可以包括读取读取数据的地址(LBA和计数)、命中率等。例如,可以将读取读取数据的存储器的LBA值分配给扩展读取数据信息RDIe的四个字节Byte0至Byte 3。可以将读取数据的LBA计数分配给一个字节(例如,Byte 4)。特别地,可以将固定加速写入缓冲区(TWB-p)1222的命中率分配给Byte 5,并且可以将非固定加速写入缓冲区(TWB-np)1224的命中率分配给Byte 6。换句话说,用于命中率的两个字节中的Byte 5可以用于分配固定加速写入缓冲区(TWB-p)1222的命中率。用于命中率的两个字节中的Byte6可以用于分配非固定加速写入缓冲区(TWB-np)1224的命中率。剩余字节Byte 7可以被用作保留字段,并且必要时可以在该保留字段中写入附加读取数据属性信息。
上面描述了关于先前通过主机1100的查询请求传送的读取数据的扩展读取数据信息RDIe的示例。可以很好地理解的是,可以不同地添加或修改要包括在扩展读取数据信息RDIe中的每条信息的种类或大小。
图17至图21是例示了根据发明构思的示例性实施例的用于针对每个场景接收读取数据信息的方法的示图。将参考图17至图21描述存储设备1200将具有各种属性的读取数据信息RDI包括在响应UPIU中然后传送响应UPIU的示例。换句话说,将在主机1100已经通过查询请求完成存储设备1200的设置属性(=1)的假设下描述图17和图21。
图17和图18例示了从非固定加速写入缓冲区(TWB-np)1224或固定加速写入缓冲区(TWB-p)1222读取读取数据(例如,数据DT)的情况。读取数据信息RDI中的位置信息指示从中读取读取数据的非固定加速写入缓冲区(TWB-np)1224或固定加速写入缓冲区(TWB-p)1222。换句话说,读取数据信息RDI的低四位可以为“0010”或“0001”。反馈信息指示在加速写入缓冲区TWB中发生命中。换句话说,读取数据信息RDI的高四位可以为“1000”。
在发明构思的示例性实施例中,可以从非固定加速写入缓冲区(TWB-np)1224和固定加速写入缓冲区(TWB-p)1222两者读取读取数据,在此情况下读取数据信息RDI的低四位可以为“0011”。
图17例示了根据发明构思的示例性实施例的请求读取的数据的命中状态的示例。参考图17,与从非固定加速写入缓冲区(TWB-np)1224读取请求读取的数据的情况相对应的读取数据信息RDI被提供给主机1100。
在操作S410中,主机1100可以将包括读取命令的命令UPIU传送到存储设备1200。假定与读取命令一起提供的读取地址包括逻辑块地址LBA“100”和计数CNT“1”。存储设备1200可以响应于读取命令读取存储在非固定加速写入缓冲区(TWB-np)1224中的数据。
在操作S420中,存储设备1200将存储在非固定加速写入缓冲区(TWB-np)1224中的数据DT“100”传送到主机1100。例如,存储设备1200可以将包括读取数据DT“100”的DATA INUPIU数据包传送到主机1100。
在操作S430中,存储设备1200可以向主机1100传送响应。在这种情况下,根据发明构思的示例性实施例的存储设备1200可以传送响应UPIU。特别地,根据发明构思的示例性实施例的响应UPIU中可以包括读取数据信息RDI(=“1000 0010”)。根据图12的定义,因为读取数据信息RDI的高四位是“1000”,所以读取数据信息RDI指示在加速写入缓冲区TWB中发生命中。因为低四位是“0010”,所以读取数据信息RDI指示读取数据DT“100”是从非固定加速写入缓冲区(TWB-np)1224读取的。
主机1100可以接收读取数据信息RDI(=“1000 0010”)并且可以对加速写入缓冲区TWB或用户存储区UST执行各种存储管理操作。
图18例示了根据发明构思的示例性实施例的请求读取的数据的命中状态的示例。图18例示了从固定加速写入缓冲区(TWB-p)1222读取请求读取的数据的情况。
在操作S510中,主机1100可以将包括读取命令的命令UPIU传送到存储设备1200。假定与读取命令一起提供的读取地址包括逻辑块地址LBA“200”和计数CNT“1”。存储设备1200可以响应于读取命令读取存储在固定加速写入缓冲区(TWB-p)1222中的数据DT“200”。
在操作S520中,存储设备1200将存储在固定加速写入缓冲区(TWB-p)1222中的数据DT“200”传送到主机1100。例如,存储设备1200可以将包括读取数据DT“200”的DATA INUPIU数据包传送主机1100。
在操作S530中,存储设备1200可以向主机1100传送响应。在这种情况下,发明构思的存储设备1200可以传送响应UPIU。特别地,发明构思的响应UPIU中可以包括读取数据信息RDI(=“1000 0001”)。根据图12的定义,因为读取数据信息RDI的高四位是“1000”,所以读取数据信息RDI指示在加速写入缓冲区TWB中发生命中。因为低四位是“0001”,所以读取数据信息RDI指示读取数据DT“200”是从固定加速写入缓冲区(TWB-p)1222读取的。
主机1100可以接收读取数据信息RDI(=“1000 0001”)并且可以对加速写入缓冲区TWB或用户存储区UST执行各种存储管理操作。
图19例示了根据发明构思的示例性实施例的请求读取的数据的未命中状态的示例。图19例示了从用户存储区(UST)1226而不是加速写入缓冲区TWB读取请求读取的数据的情况。
在操作S610中,主机1100可以将包括读取命令的命令UPIU传送到存储设备1200。假定与读取命令一起提供的读取地址包括逻辑块地址LBA“300”和计数CNT“1”。存储设备1200可以响应于读取命令读取存储在用户存储区(UST)1226中的数据DT“300”。
在操作S620中,存储设备1200将从用户存储区(UST)1226读取的数据DT“300”传送到主机1100。例如,存储设备1200可以将包括读取数据DT“300”的DATA IN UPIU数据包传送到主机1100。
在操作S630中,存储设备1200可以向主机1100传送响应。在这种情况下,根据发明构思的示例性实施例的存储设备1200可以传送响应UPIU。特别地,可以在根据发明构思的示例性实施例的响应UPIU中包括读取数据信息RDI(=“0100 0000”)。根据图12的定义,因为读取数据信息RDI的高四位是“0100”,所以读取数据信息RDI(例如,其反馈信息)指示在加速写入缓冲区TWB中发生未命中。因为低四位是“0000”,所以读取数据信息RDI指示读取数据DT“300”是从用户存储区(UST)1226读取的。换句话说,读取数据信息RDI的位置信息指示从中读取读取数据DT的用户存储区(UST)1226。
主机1100可以接收读取数据信息RDI(=“0100 0000”)并且可以对加速写入缓冲区TWB或用户存储区UST执行各种存储器管理操作。
图20例示了根据发明构思的示例性实施例的请求读取的数据的移动状态的示例。图20例示了在读取操作之前通过移动操作将请求读取的数据从用户存储区(UST)1226移动到加速写入缓冲区TWB的情况。
在操作S710中,主机1100可以将包括读取命令的命令UPIU传送到存储设备1200。假定与读取命令一起提供的读取地址包括逻辑块地址LBA“300”和计数CNT“1”。可以通过移动操作将请求读取的数据“300”从用户存储区(UST)1226移动到固定加速写入缓冲区(TWB-p)1222。存储设备1200可以响应于读取命令读取存储在固定加速写入缓冲区(TWB-p)1222中的请求读取的数据DT“300”。
在操作S720中,存储设备1200将从固定加速写入缓冲区(TWB-p)1222读取的数据DT“300”传送到主机1100。例如,存储设备1200可以将包括读取数据DT“300”的DATA INUPIU数据包传送到主机1100。
在操作S730中,存储设备1200可以向主机1100传送响应。在这种情况下,根据发明构思的示例性实施例的存储设备1200可以传送响应UPIU。特别地,根据发明构思的示例性实施例的响应UPIU中可以包括读取数据信息RDI(=“1010 0001”)。根据图12的定义,因为读取数据信息RDI的高四位是“1010”,所以读取数据信息RDI(例如,其反馈信息)指示命中状态(例如,在固定加速写入缓冲区(TWB-p)1222中发生命中)和移动状态。因为低四位是“0001”,所以读取数据信息RDI(例如,其位置信息)指示读取数据DT“300”是从固定加速写入缓冲区(TWB-p)1222读取的。
主机1100可以接收读取数据信息RDI(=“1010 0001”)并且可以对加速写入缓冲区TWB或用户存储区UST执行各种存储管理操作。
图21例示了根据发明构思的示例性实施例的请求读取的数据的部分命中状态的示例。参考图21,主机1100可以***分命中并且可以请求作为关于读取数据的额外信息的扩展读取数据信息RDIe。
在操作S810中,主机1100可以将包括读取命令的命令UPIU传送到存储设备1200。主机1100在读取命令中包括读取地址(LBA:200,CNT:2)。响应于读取命令,存储设备1200读取存储在逻辑块地址LBA“200”处的数据DT“200”和“201”。存储设备1200可以响应于读取命令读取存储在加速写入缓冲区TWB的固定加速写入缓冲区(TWB-p)1222中的数据DT“200”。存储设备1200可以响应于读取命令读取存储在用户存储区(UST)1226中的数据DT“201”。换句话说,读取数据DT可以在固定加速写入缓冲区(TWB-p)1222和用户存储区(UST)1226两者中处于分布状态,并且读取数据DT是从固定加速写入缓冲区(TWB-p)1222和用户存储区(UST)1226两者中读取的。
在操作S820中,存储设备1200将读取数据DT“200”和“201”传送到主机1100。例如,存储设备1200可以向主机1100传送包括读取数据DT“200”和“201”的至少一个DATA INUPIU数据包。
在操作S830中,存储设备1200可以向主机1100传送响应。存储设备1200可以传送包括读取数据信息RDI的响应UPIU。依据设置属性,可以在读取数据信息RDI中包括关于存储设备1200的存储有读取数据DT“200”和“201”的位置的信息以及命中/未命中信息。在所例示的示例中,假定读取数据信息RDI具有逻辑值“0001 0001”。根据图12的位值定义,读取数据信息RDI的低四位(例如,位置信息)即“0001”指示固定加速写入缓冲区(TWB-p)1222,而读取数据信息RDI的高四位(例如,反馈信息)即“0001”指示部分命中。
在操作S840中,主机1100可以基于读取数据信息RDI的反馈信息来检查读取数据信息RDI的部分命中状态,并且可以确定是否需要额外信息(例如,扩展读取信息RDIe)。当确定需要额外信息(是)时,过程进行到操作S850。当确定不需要额外信息(否)时,过程被终止。
在操作S850中,主机1100将用于请求与部分命中相对应的读取数据的额外信息的查询请求传送到存储设备1200。例如,主机1100可以传送用于请求关于与部分命中相对应的读取数据的扩展读取数据信息RDIe的查询请求。
在操作S860中,存储设备1200可以将用于读取操作(从操作S810执行到操作S830)的扩展读取数据信息RDIe返回给主机1100。例如,存储设备1200可以将包括扩展读取数据信息RDIe的响应UPIU提供给主机1100。扩展读取数据信息RDIe可以是例如关于主机1100先前接收到的读取数据DT“200”和“201”的读取数据属性信息。
根据例示的扩展读取数据信息RDIe,可以在扩展读取数据信息RDIe的与Byte 0至Byte 3相对应的字段处记录逻辑块地址LBA“200”。可以将LBA计数“2”分配给扩展读取数据信息RDI的与Byte 4相对应的字段。可以在与Byte 5相对应的字段处记录固定加速写入缓冲区(TWB-p)1222的命中率(例如,50%)。因为从非固定加速写入缓冲区(TWB-np)1224读取的数据不存在,所以可以在与Byte 6相对应的字段处记录0%的命中率。
图22是例示了根据发明构思的示例性实施例的图1的存储***的层次结构的示图。参考图22,存储***1000可以包括主机1100和存储设备1200。主机1100可以包括应用AP-h、文件***FS-h、设备管理器DM-h、UFS应用层UAP-h、UFS传输协议层UTP-h和UFS互连层UIC-h。
应用AP-h可以包括在主机1100处驱动的各种应用程序、进程等。文件***FS-h可以被配置为组织并管理由应用AP-h产生的各种数据。在本发明构思的示例性实施例中,应用AP-h或文件***FS-h可以被配置为确定逻辑块地址范围,以指定用于特定区域的逻辑块地址范围,如参考图15至图19所描述的。可以将关于所确定的逻辑块地址范围的信息提供给下层(例如,设备管理器DM-h或UFS应用层UAP-h)。
UFS应用层UAP-h被配置为支持主机1100与存储设备1200之间的各种命令。例如,UFS应用层UAP-h可以包括输入/输出(I/O)流管理器IOSM-h和UFS命令集UCS-h。I/O流管理器IOSM-h被配置为管理来自应用AP-h或文件***FS-h的请求。
在发明构思的示例性实施例中,I/O流管理器IOSM-h可以被配置为识别来自应用AP-h或文件***FS-h的输入/输出的特定值。I/O流管理器IOSM-h可以被配置为管理来自应用AP-h或文件***FS-h的请求的优先级,或者根据来自应用AP-h或文件***FS-h的请求来支持各种功能。在发明构思的示例性实施例中,I/O流管理器IOSM-h可以被配置为支持加速写入功能或加速读取功能。
在发明构思的示例性实施例中,由主机1100或主机1100的用户指定的特定应用或进程可以使用加速写入或加速读取。I/O流管理器IOSM-h可以响应于由特定应用或进程对存储设备1200所做出的写入或读取请求,确定是执行加速写入还是加速读取。
附加地,由文件***FS-h管理的特定数据可以使用加速写入或加速读取。I/O流管理器IOSM-h可以响应于存储设备1200对于特定数据(例如,元数据)的写入或读取请求,确定是执行加速写入还是加速读取。
另外,I/O流管理器IOSM-h可以引导在存储设备1200中写入的数据的移动。I/O流管理器IOSM-h可以通过将数据移至固定加速写入缓冲区TWB-p、非固定加速写入缓冲区TWB-np或用户存储区UST来调整在存储设备1200中写入的数据的读取速度。
在本发明构思的示例性实施例中,如参考图11至图14所描述的,I/O流管理器IOSM-h可以依据特定数据的属性来确定将在其中存储特定数据的区域(例如,固定加速写入缓冲区TWB-p、非固定加速写入缓冲区TWB-np或用户存储区UST),并且可以将关于确定结果的信息(例如,区域信息ARI)提供给UFS命令集UCS-h。
在本发明构思的示例性实施例中,如参考图11至图21所描述的,I/O流管理器IOSM-h可以基于特定数据的属性和预先确定的逻辑块地址范围来确定将在其处存储特定数据的逻辑块地址,并且可以将关于所确定的逻辑块地址范围提供给UFS命令集UCS-h。
UFS命令集UCS-h可以支持在主机1100与存储设备1200之间支持的各种命令集。在发明构思的示例性实施例中,UFS命令集UCS-h可以包括UFS本机命令集和UFS SCSI命令集。UFS命令集UCS-h可以依据来自应用AP-h或文件***FS-h的请求,配置要传送到存储设备1200的命令。
在本发明构思的示例性实施例中,UFS命令集UCS-h可以被配置为从I/O流管理器IOSM-h接收各种信息(例如,逻辑块地址、区域信息、逻辑块地址范围或范围区域信息),并根据参考图11至图21描述的方法来生成各种命令。
UFS应用层UAP-h还可以包括任务管理器,所述任务管理器处理用于控制命令队列的命令。
设备管理器DM-h可以管理设备级的操作和设备级的配置。在发明构思的示例性实施例中,设备管理器DM-h可以管理用于设置或检查存储设备1200的各种信息的查询请求。
UFS传输协议层UTP-h可以为上层提供服务。UFS传输协议层UTP-h可以以UPIU(UFS协议信息单元)数据包的形式生成从UFS应用层UAP-h提供的命令或信息或者从设备管理器DM-h提供的查询请求。
在发明构思的示例性实施例中,UFS传输协议层UTP-h和设备管理器DM-h可以通过UDM-SAP(UDM-服务接入点)彼此通信。UFS传输协议层UTP-h和UFS应用层UAP-h可以通过UTP_CMD_SAP或UTP_TM_SAP彼此通信。
UFS互连层UIC-h可以管理与存储设备1200的连接。在发明构思的示例性实施例中,UFS互连层UIC-h可以包括诸如与存储设备1200的UFS互连层UIC-d物理地连接的MIPIUnipro或MIPI M-PHY的硬件配置。这样,主机1100和存储设备1200可以彼此建立通信通道。在发明构思的示例性实施例中,UFS互连层UIC-h和UFS传输协议层UTP-h可以通过UIC-SAP进行通信,并且UFS互连层UIC-h和设备管理器DM-h可以通过UIO-SAP进行通信。
存储设备1200可以包括存储区域管理器MAM-d、存储区域性质管理器MAPM-d、设备管理器DM-d、UFS应用层UAP-d、UFS传输协议层UTP-d和UFS互连层UIC-d。在发明构思的示例性实施例中,UFS应用层UAP-d、UFS传输协议层UTP-d和UFS互连层UIC-d的配置可以与主机1100的UFS应用层UAP-h、UFS传输协议层UTP-h和UFS互连层UIC-h的配置类似并且允许对应的层在逻辑上彼此通信的配置,并且因此将省略附加描述以避免冗余。
存储设备1200的存储区域性质管理器MAPM-d可以指定并管理将存储从主机1100接收到的写入数据的区域。例如,如上所述,依据主机1100的显式请求或内部策略,可以在固定加速写入缓冲区TWB-p、非固定加速写入缓冲区TWB-np和用户存储区UST中的至少一个的空间中写入从主机1100接收到的写入数据。存储区域性质管理器MAPM-d可以基于上述各种方案选择将存储从主机1100接收到的写入数据的空间并且可以将写入数据存储在所选空间中。
如上所述,依据主机1100的显式请求或内部策略,存储设备1200的存储区域管理器MAM-d可以控制固定加速写入缓冲区TWB-p、非固定加速写入缓冲区TWB-np和用户存储区UST之间的数据移动/转储/迁移。
主机1100和存储设备1200中的每一者的以上层次结构和功能仅是示例性的,并且发明构思不限于此。
图23是详细地例示了根据发明构思的示例性实施例的存储***1000的框图。参考图22和图23,存储***1000可以包括主机1100和存储设备1200。主机1100和存储设备1200可以像参考图1至图22所描述的那样操作。
主机1100可以包括应用处理器1110、随机存取存储器(RAM)1120、调制解调器1130、设备驱动器1140、扬声器1150、显示器1160、触摸面板1170、麦克风1180和图像传感器1190。
应用处理器1110可以执行应用AP-h和文件***FS-h。应用处理器1110可以将RAM1120用作***存储器。应用处理器1110可以通过调制解调器1130与外部设备以有线的方式或无线地进行通信。例如,调制解调器1130可以包含在应用处理器1110中。
应用处理器1110可以通过设备驱动器1140与***设备进行通信。例如,应用处理器1110可以通过设备驱动器1140与扬声器1150、显示器1160、触摸面板1170、麦克风1180、图像传感器1190和存储设备1200进行通信。
设备驱动器1140可以包括设备管理器DM-h、UFS应用层UAP-h、UFS传输协议层UTP-h和UFS互连层UIC-h。例如,设备驱动器1140可以包含在应用处理器1110中。
扬声器1150和显示器1160可以是向用户传送信息的用户输出接口。触摸面板1170、麦克风1180和图像传感器1190可以是从用户接收信息的用户输入接口。
在本发明构思的示例性实施例中,存储设备1200可以用作主机1100的高容量存储介质。存储设备1200可以是嵌入式类型的UFS设备或存储卡类型的UFS设备。存储卡类型的UFS设备可以***到主机1100中所包括的UFS插槽中或者可以从UFS插槽拆卸。
图24例示了发明构思的示例性实施例应用于存储***1000的示图。参考图23和图24,存储***1000可以通过显示器1160提供设置画面。设置画面中的一个可以向用户提供加速模式的信息。
存储***1000可以通过显示器1160显示可应用加速模式的第一应用APP1至第n应用APPn的列表。另外,存储***1000可以通过显示器1160显示允许用户调整第一应用APP1至第n应用APPn的加速模式的开关。
在操作S910中,用户可以触摸第三应用APP3的加速模式的启用位置。存储***1000可以感测用户的触摸,换句话说,通过触摸面板1170来激活第三应用APP3的指示。在操作S920中,可以将第三应用APP3的信息或第三应用APP3的进程传送到I/O流管理器IOSM-h。
当接收到第三应用APP3的信息或第三应用APP3的进程时,在操作S930中,I/O流管理器IOSM-h可以保留对第三应用APP3或因此选择的进程的后续读取的移动操作。例如,I/O流管理器IOSM-h可以通过查询请求UPIU针对与第三应用APP3相关联的数据设置移动属性MA,并且可以在需要与第三应用APP3相关联的读取操作时将移动标志作为移动信息MV包括在CMD UPIU中。
作为另一示例,当需要与第三应用APP3相关联的读取操作时,I/O流管理器IOSM-h可以将移动标志和移动属性MA作为移动信息MV包括在CMD UPIU中。例如,I/O流管理器IOSM-h可以将固定加速写入缓冲区TWB-p或非固定加速写入缓冲区TWB-np指定为移动属性MA的目的地信息DST。
当与第三应用APP3相关联的数据被移动到固定加速写入缓冲区TWB-p或非固定加速写入缓冲区TWB-np时,读取与第三应用APP3相关联的数据的操作被加速。因此,可以提高第三应用APP3的性能。
图25是例示了应用了根据发明构思的示例性实施例的存储***的存储卡的框图。参考图25,与主机2100连接的存储卡2200包括存储器控制器2210和非易失性存储器2220。存储器控制器2210与非易失性存储器2220连接。存储器控制器2210被配置为访问非易失性存储器2220。例如,存储器控制器2210被配置为控制非易失性存储器2220的读取操作、写入操作、擦除操作和后台操作。后台操作包括诸如损耗平衡操作和垃圾收集操作的操作。
例如,存储器控制器2210可以包括SRAM 2212、CPU 2213、主机接口2215、纠错引擎(ECC)2217和存储器接口2219。像参考图1和图24描述的存储器控制器1210一样,存储器控制器2210将读取数据信息RDI提供给主机2100。
存储器控制器2210可以通过主机接口2215与外部设备(例如,主机2100)进行通信。存储器控制器2210可以按照特定通信协议与外部设备(例如,主机2100)进行通信。例如,存储器控制器2210可以被配置为按照诸如以下各项的各种通信协议中的至少一种与外部设备进行通信:通用串行总线(USB)、多媒体卡(MMC)、eMMC(嵌入式MMC)、***组件互连(PCI)、PCI-express(PCI-E)、高级技术附连(ATA)、串行ATA、并行ATA、小型计算机小型接口(SCSI)、增强小型磁盘接口(ESDI)、集成驱动电子装置(IDE)、FireWire、通用闪存存储(UFS)或快速非易失性存储(NVMe)。
非易失性存储器2220可以用诸如电可擦除可编程ROM(EEPROM)、NAND闪存、NOR闪存、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)或自旋扭矩磁RAM(STT-MRAM)的各种非易失性存储器件实现。
例如,可以将存储器控制器2210和非易失性存储器2220集成在单个半导体器件中。可以将存储器控制器2210和非易失性存储器2220集成在单个半导体器件中以构成存储卡。例如,可以将存储器控制器2210和非易失性存储器2220集成在单个半导体设备中以构成诸如PC卡(或个人计算机存储卡国际协会(PCMCIA)卡)、紧凑闪存卡(CF)、智能媒体卡(SM、SMC)、记忆棒、多媒体卡(MMC、RS-MMC、MMCmicro或eMMC)、SD卡(SD、miniSD、microSD或SDHC)或通用闪存存储(UFS)的存储卡。
图26是例示了包括根据发明构思的示例性实施例的存储设备的便携式终端的框图。参考图26,根据发明构思的示例性实施例的便携式终端3000包括透镜3110、图像处理单元3100、无线收发器单元3200、音频处理单元3300、图像文件生成单元3400、嵌入式存储器3500、用户接口3600和控制器3700。
图像处理单元3100可以包括感测通过透镜3110入射的光的图像传感器3120、图像处理器3130和显示单元3140。无线收发器单元3200包括天线3210、收发器3220和调制器/解调器(调制解调器)3230。音频处理单元3300包括音频处理器3310、麦克风3320和扬声器3330。图像文件生成单元3400可以是用于在便携式终端3000内生成图像文件的组件。这里,嵌入式存储器3500可以被用作用于便携式终端3000的存储器。另外,嵌入式存储器3500可以包括与参考图1至图24描述的存储设备1200基本上相同的功能和配置。
如上所述,根据发明构思的示例性实施例,主机可以通过使用从使用加速写入缓冲区的存储设备读取的数据的区域信息或命中/未命中信息来高效地管理存储设备。
虽然已参考发明构思的示例性实施例描述了发明构思,但是对于本领域的普通技术人员而言将显而易见的是,在不脱离如所附权利要求中所阐述的发明构思的精神和范围的情况下,可以对其做出形式和细节上的各种变化和修改。
Claims (27)
1.一种存储***,所述存储***包括:
存储设备,所述存储设备包括用非易失性存储器实现的加速写入缓冲区和用户存储区域;以及
主机,所述主机被配置为向所述存储设备传送读取请求,
其中,响应于所述读取请求,所述存储设备向所述主机传送读取数据和包括所述读取数据的属性的读取数据信息。
2.根据权利要求1所述的存储***,其中,所述加速写入缓冲区包括:
第一缓冲区域,其中存储的数据禁止移动到所述用户存储区域;以及
第二缓冲区域,其中存储的数据允许移动到所述用户存储区域。
3.根据权利要求2所述的存储***,其中,所述读取数据信息包括指示所述用户存储区域、所述第一缓冲区域和所述第二缓冲区域当中的从中读取所述读取数据的区域的位置信息。
4.根据权利要求1所述的存储***,其中,所述读取数据信息包括指示所述读取数据是否存在于所述加速写入缓冲区中的命中/未命中信息。
5.根据权利要求4所述的存储***,其中,所述命中/未命中信息包括:所述读取数据在所述存储设备中的移动信息、或者指示部分命中的部分命中信息,在所述部分命中的情况下所述读取数据存在于所述加速写入缓冲区和所述用户存储区域中。
6.根据权利要求5所述的存储***,其中,所述存储设备在响应数据包的感测数据字段中写入所述部分命中信息和与所述部分命中信息相对应的地址,并且将所述响应数据包传送到所述主机。
7.根据权利要求5所述的存储***,其中,与所述读取数据信息分开地,所述存储设备将与所述部分命中相对应的读取数据属性信息作为对所述主机的查询请求的响应传送给所述主机。
8.根据权利要求7所述的存储***,其中,所述读取数据属性信息包括与所述部分命中相对应的地址或命中率。
9.根据权利要求4所述的存储***,其中,所述命中/未命中信息的传送是通过所述主机对设置属性的查询请求启动的。
10.一种包括用非易失性存储器实现的加速写入缓冲区和用户存储区域的存储***的操作方法,所述操作方法包括:
从主机接收读取请求;
响应于所述读取请求从所述加速写入缓冲区或所述用户存储区域读取读取数据;
通过使用数据传送包将所述读取数据传送到所述主机;以及
向所述主机传送包括所述读取数据的位置信息的读取数据信息。
11.根据权利要求10所述的操作方法,其中,所述读取数据信息包括关于所述读取数据的存储地址的信息。
12.根据权利要求11所述的操作方法,其中,所述读取数据信息包括指示所述读取数据是否存在于所述加速写入缓冲区中的命中/未命中信息。
13.根据权利要求12所述的操作方法,其中,所述命中/未命中信息包括:所述读取数据在所述存储***中的移动信息、或者指示部分命中的部分命中信息,在所述部分命中的情况下所述读取数据以分布状态存在于所述加速写入缓冲区和所述用户存储区域中。
14.根据权利要求13所述的操作方法,还包括:
接收用于设置是否将所述命中/未命中信息包括在所述读取数据信息中的查询请求。
15.根据权利要求13所述的操作方法,还包括:
从所述主机接收对与所述部分命中信息相对应的读取数据属性信息的查询请求;以及
响应于所述查询请求而向所述主机传送所述读取数据属性信息。
16.根据权利要求15所述的操作方法,其中,所述读取数据属性信息包括所述读取数据在所述加速写入缓冲区中的命中率。
17.一种被配置为通过使用通用闪存存储接口与主机进行通信的存储设备,所述存储设备包括:
非易失性存储器件,所述非易失性存储器件包括加速写入缓冲区域和用户存储区域;以及
存储器控制器,所述存储器控制器被配置为响应于来自所述主机的读取请求从所述非易失性存储器件读取读取数据,将关于所述读取数据的属性信息加载到响应数据包上,并且将所述响应数据包传送到所述主机。
18.根据权利要求17所述的存储设备,其中,所述属性信息包括指示所述用户存储区域和所述加速写入缓冲区域当中的从中读取所述读取数据的区域的位置信息。
19.根据权利要求18所述的存储设备,其中,所述属性信息还包括指示所述读取数据是否存在于所述加速写入缓冲区中的命中/未命中信息。
20.根据权利要求19所述的存储设备,其中,所述命中/未命中信息包括:所述读取数据在所述存储设备中的移动信息、或者指示部分命中的部分命中信息,在所述部分命中的情况下所述读取数据存在于所述加速写入缓冲区域和所述用户存储区域中。
21.根据权利要求17所述的存储设备,其中,所述加速写入缓冲区域包括:第一缓冲区域,其中的数据禁止移动到所述用户存储区域;以及第二缓冲区域,其中的数据允许移动到所述用户存储区域。
22.一种包括主机和存储设备的存储***的操作方法,其中,所述存储设备包括用非易失性存储器实现的加速写入缓冲区和用户存储区域,并且所述加速写入缓冲区包括固定加速写入缓冲区和非固定加速写入缓冲区,所述操作方法包括:
所述存储设备从所述主机接收读取请求;
所述存储设备响应于所述读取请求从所述固定加速写入缓冲区、所述非固定加速写入缓冲区和所述用户存储区域中的至少一个读取读取数据;
所述存储设备通过使用数据传送包向所述主机传送所述读取数据;以及
所述存储设备向所述主机传送读取数据信息;
其中,所述读取数据信息指示所述读取数据的位置信息和反馈信息,
所述固定加速写入缓冲区是存储在其中的数据禁止移动到所述用户存储区域的区域,并且
所述非固定加速写入缓冲区是存储在其中的数据允许移动到所述用户存储区域的区域。
23.根据权利要求22所述的操作方法,其中,所述读取数据是从所述非固定加速写入缓冲区或所述固定加速写入缓冲区读取的,
所述位置信息指示从中读取所述读取数据的所述非固定加速写入缓冲区或所述固定加速写入缓冲区,并且
所述反馈信息指示在所述加速写入缓冲区中发生命中。
24.根据权利要求22所述的操作方法,其中,所述读取数据是从所述用户存储区域读取的,
所述位置信息指示从中读取所述读取数据的所述用户存储区域,并且
所述反馈信息指示在所述加速写入缓冲区中发生未命中。
25.根据权利要求22所述的操作方法,还包括:
将所述读取数据从所述用户存储区域移动到所述固定加速写入缓冲区;以及
从所述固定加速写入缓冲区读取所述读取数据,
其中,所述位置信息指示从中读取所述读取数据的所述固定加速写入缓冲区,并且
所述反馈信息指示移动状态以及在所述加速写入缓冲区中发生命中。
26.根据权利要求22所述的操作方法,还包括:
从所述固定加速写入缓冲区和所述用户存储区域读取所述读取数据;
所述主机确定出所述反馈信息指示部分命中并且需要所述读取数据的扩展读取数据信息;
所述主机向所述存储设备传送查询请求,以请求与所述部分命中相对应的所述扩展读取数据信息;以及
所述存储设备向所述主机传送所述扩展读取数据信息。
27.根据权利要求26所述的操作方法,其中,所述扩展读取数据信息指示所述固定加速写入缓冲区的命中率。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190094002A KR20210016186A (ko) | 2019-08-01 | 2019-08-01 | 스토리지 장치, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법 |
KR10-2019-0094002 | 2019-08-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112306906A true CN112306906A (zh) | 2021-02-02 |
Family
ID=74259133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010652447.2A Pending CN112306906A (zh) | 2019-08-01 | 2020-07-08 | 存储设备、包括该存储设备的存储***及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11573732B2 (zh) |
KR (1) | KR20210016186A (zh) |
CN (1) | CN112306906A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102650809B1 (ko) * | 2019-08-02 | 2024-03-26 | 삼성전자주식회사 | 스토리지 장치 및 그것의 동작 방법 |
US20240094948A1 (en) * | 2022-06-29 | 2024-03-21 | Western Digital Technologies, Inc. | Transfer of internal device data over command response |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3736641B2 (ja) * | 2004-01-22 | 2006-01-18 | セイコーエプソン株式会社 | データ転送制御装置及び電子機器 |
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 |
KR101682666B1 (ko) | 2010-08-11 | 2016-12-07 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템 |
US9563382B2 (en) | 2014-06-05 | 2017-02-07 | Sandisk Technologies Llc | Methods, systems, and computer readable media for providing flexible host memory buffer |
US9507722B2 (en) | 2014-06-05 | 2016-11-29 | Sandisk Technologies Llc | Methods, systems, and computer readable media for solid state drive caching across a host bus |
US20160011790A1 (en) | 2014-07-14 | 2016-01-14 | Sandisk Technologies Inc. | Systems and methods to enable access to a host memory associated with a unified memory architecture (uma) |
CN105426112A (zh) | 2014-08-28 | 2016-03-23 | 广明光电股份有限公司 | 固态硬盘动态调整高速缓冲区的方法 |
US9858008B2 (en) | 2014-10-30 | 2018-01-02 | ScaleFlux | Method to reduce flash memory IOs with host maintained address mapping table |
US10133764B2 (en) * | 2015-09-30 | 2018-11-20 | Sandisk Technologies Llc | Reduction of write amplification in object store |
US20170123979A1 (en) | 2015-10-28 | 2017-05-04 | Intel Corporation | Systems, devices, and methods for handling partial cache misses |
US9836243B1 (en) | 2016-03-31 | 2017-12-05 | EMC IP Holding Company LLC | Cache management techniques |
US20170351452A1 (en) | 2016-06-01 | 2017-12-07 | Intel Corporation | Dynamic host memory buffer allocation |
KR102667430B1 (ko) | 2016-08-04 | 2024-05-23 | 삼성전자주식회사 | 호스트 메모리를 이용하는 데이터 저장 장치 및 그것의 동작 방법 |
US10503635B2 (en) * | 2016-09-22 | 2019-12-10 | Dell Products, Lp | System and method for adaptive optimization for performance in solid state drives based on segment access frequency |
KR102384773B1 (ko) | 2017-10-12 | 2022-04-11 | 삼성전자주식회사 | 스토리지 장치, 컴퓨팅 시스템, 그리고 그것의 디버깅 방법 |
US10908821B2 (en) * | 2019-02-28 | 2021-02-02 | Micron Technology, Inc. | Use of outstanding command queues for separate read-only cache and write-read cache in a memory sub-system |
KR20210006129A (ko) * | 2019-07-08 | 2021-01-18 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
-
2019
- 2019-08-01 KR KR1020190094002A patent/KR20210016186A/ko not_active Application Discontinuation
-
2020
- 2020-06-15 US US16/901,332 patent/US11573732B2/en active Active
- 2020-07-08 CN CN202010652447.2A patent/CN112306906A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US11573732B2 (en) | 2023-02-07 |
US20210034285A1 (en) | 2021-02-04 |
KR20210016186A (ko) | 2021-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11249911B2 (en) | Storage device, memory system, and operating method for managing host-resident L2P map cache | |
US11194711B2 (en) | Storage device | |
US11507311B2 (en) | Storage device for accelerating write speed and read speed | |
US11899980B2 (en) | Storage device including a turbo write buffer divided into a non-pinned buffer area and a pinned buffer area, an operation method of a storage system including the storage device in which data of the non-pinned and pinned buffer areas are flushed differently, and a host device controlling the storage device | |
US11507312B2 (en) | Storage device and method for accelerating storage device write and read speed | |
US20230072721A1 (en) | Storage device and operating method of storage device | |
KR20210046377A (ko) | 마이그레이션 동작을 위한 메모리 시스템 및 메모리 시스템의 동작방법 | |
US11645007B2 (en) | Memory device including plurality of buffer areas for supporting fast write and fast read and storage device including the same | |
US11573732B2 (en) | Storage device, memory system comprising the same, and operation method thereof | |
US20210034513A1 (en) | Storage device and operating method thereof | |
EP3771984A1 (en) | Storage device and operating method thereof | |
EP3771986B1 (en) | Storage device, memory system comprising the same, and operation method thereof | |
EP3779704B1 (en) | Storage device, memory system comprising the same, and operating method thereof | |
EP3771982B1 (en) | Storage device | |
KR102687354B1 (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 |