CN112306393A - 存储装置 - Google Patents
存储装置 Download PDFInfo
- Publication number
- CN112306393A CN112306393A CN202010697176.2A CN202010697176A CN112306393A CN 112306393 A CN112306393 A CN 112306393A CN 202010697176 A CN202010697176 A CN 202010697176A CN 112306393 A CN112306393 A CN 112306393A
- Authority
- CN
- China
- Prior art keywords
- data
- turbo write
- write buffer
- host
- area
- 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
- 230000015654 memory Effects 0.000 claims abstract description 165
- 239000000872 buffer Substances 0.000 claims description 422
- 230000004044 response Effects 0.000 claims description 54
- 230000006870 function Effects 0.000 claims description 36
- 238000012546 transfer Methods 0.000 claims description 23
- 239000010410 layer Substances 0.000 claims 2
- 239000002356 single layer Substances 0.000 claims 1
- 230000009467 reduction Effects 0.000 description 23
- 230000007958 sleep Effects 0.000 description 15
- 238000000034 method Methods 0.000 description 13
- 102100038359 Xaa-Pro aminopeptidase 3 Human genes 0.000 description 12
- 101710081949 Xaa-Pro aminopeptidase 3 Proteins 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 9
- 238000011010 flushing procedure Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 238000013508 migration Methods 0.000 description 8
- 230000005012 migration Effects 0.000 description 8
- 241001199012 Usta Species 0.000 description 7
- 230000002829 reductive effect Effects 0.000 description 7
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 6
- 101100481703 Arabidopsis thaliana TMK2 gene Proteins 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 230000001133 acceleration Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 101150053844 APP1 gene Proteins 0.000 description 2
- 101100481704 Arabidopsis thaliana TMK3 gene Proteins 0.000 description 2
- 101100189105 Homo sapiens PABPC4 gene Proteins 0.000 description 2
- 102100039424 Polyadenylate-binding protein 4 Human genes 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006266 hibernation Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 101000648827 Homo sapiens TPR and ankyrin repeat-containing protein 1 Proteins 0.000 description 1
- 102100028173 TPR and ankyrin repeat-containing protein 1 Human genes 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000005549 size reduction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on 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/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
- 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/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/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/0647—Migration mechanisms
-
- 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
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
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)
Abstract
公开一种存储装置。所述存储装置包括:非易失性存储器装置,包括第一区域和第二区域,第一区域包括被配置为存储n比特数据的存储器单元,第二区域包括被配置为存储m比特数据的存储器单元;以及存储器控制器,其中,n和m是自然数,并且n小于m。第一区域包括第一区和第二区,第二区域包括第三区。存储器控制器被配置为执行对第一区或第二区的turbo写入操作和对第三区的正常写入操作中的一个,并且被配置为执行对第一区或第二区的turbo读取操作和对第三区的正常读取操作中的一个。
Description
本申请要求于2019年8月2日在韩国知识产权局提交的第10-2019-0094435号韩国专利申请的优先权,所述韩国申请的公开通过引用完整地包含于此。
技术领域
在此公开的发明构思的实施例涉及一种存储装置,更具体地讲,涉及一种能够通过使用多个缓冲区来更快地执行写入操作和读取操作的存储装置。
背景技术
半导体存储器可被分类为易失性存储器装置和非易失性存储器。易失性存储器在断电时丢失存储在其中的数据,并且易失性存储器包括静态随机存取存储器(SRAM)、动态RAM(DRAM)和同步DRAM(SDRAM)。非易失性存储器装置即使在断电时也保持存储在其中的数据,并且非易失性存储器装置包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除和可编程ROM(EEPROM)、闪存装置、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)和铁电RAM(FRAM)。
闪存装置在计算装置中被广泛使用,以存储大量的数据。由JEDEC标准定义的通用闪存(UFS)接口可比传统的基于闪存的存储装置支持更高的操作速度。
发明内容
发明构思的至少一个实施例提供一种支持更快的写入和读取的存储器装置以及操作存储装置以执行这些更快的写入和读取的方法。
根据发明构思的示例性实施例,一种存储装置包括:非易失性存储器装置,包括第一区、第二区、和第三区;存储器控制器,控制用于将第一数据记录在第一区或第二区的turbo写入操作或用于从第一区或第二区读取第二数据的turbo读取操作。
根据发明构思的示例性实施例,一种存储装置包括非易失性存储器装置和存储器控制器。非易失性存储器装置包括:第一区域,包括被配置为存储n比特数据的存储器单元;以及第二区域,包括被配置为存储m比特数据的存储器单元,其中,第一区域包括第一区和第二区,第二区域包括第三区,n和m是自然数并且n小于m。存储器控制器被配置为执行对第一区或第二区的turbo写入操作和对第三区的正常写入操作中的一个,并且被配置为执行对第一区或第二区的turbo读取操作和对第三区的正常读取操作中的一个。
根据发明构思的示例性实施例,一种存储装置包括:非易失性存储器装置,包括第一区、第二区和第三区;以及存储器控制器,包括:存储器区属性管理器,用于管理第一区至第三区之中的将存储从主机接收的写入数据的区;以及存储器区管理器,用于控制数据在第一区至第三区之间的移动,并且响应于来自主机的写入命令而控制存储器区属性管理器优先将第一数据记录在第一区或第二区而不是第三区。
根据发明构思的示例性实施例,一种存储装置包括非易失性存储器装置和存储器控制器。非易失性存储器装置包括用作单层单元(SLC)空间的第一区域和用作多层单元(MLC)空间或三层单元(TLC)空间的第二区域。存储器控制器被配置为响应于来自主机的写入命令,将从主机接收的数据写入到第一区域和第二区域中的一个。存储器控制器在从主机接收到启用turbo写入操作的请求时优先将数据写入到第一区域。
根据发明构思的示例实施例,一种存储装置包括:非易失性存储器装置,包括turbo写入缓冲器和用户存储部,其中,写入缓冲器包括均存储第一比特的多个存储器单元,用户存储部缓冲器包括均存储大于第一比特的第二比特的多个存储器单元;以及存储器控制器,响应于从主机接收的写入命令通用闪存协议信息单元(UPIU),将数据写入到turbo写入缓冲器的固定turbo写入缓冲器或非固定turbo写入缓冲器。
附图说明
通过参照附图详细描述发明构思的示例性实施例,发明构思将变得清楚。
图1示出根据发明构思的示例性实施例的存储***。
图2示出适用于图1的存储***的符合示例性接口协议的分层结构。
图3示出根据发明构思的示例性实施例的图2的存储装置的物理存储空间。
图4A和图4B示出图3的turbo写入缓冲器类型。
图5A和图5B示出配置图1的存储装置的turbo写入缓冲器的示例性模式。
图6是示出根据发明构思的示例性实施例的图1的存储***的操作的流程图。
图7是示出根据发明构思的示例性实施例的图1的存储***的操作的流程图。
图8是示出根据发明构思的示例性实施例的图1的存储装置的操作的流程图。
图9示出根据发明构思的示例性实施例的图1的存储装置的物理存储空间。
图10示出根据发明构思的示例性实施例的参照图9描述的存储装置的物理存储空间的逻辑存储空间。
图11A和图11B示出根据发明构思的示例性实施例的参照图9描述的存储装置的物理存储空间中的操作。
图12是示出根据发明构思的示例性实施例的图1的存储***的操作的流程图。
图13是示出根据发明构思的示例性实施例的图1的存储***的操作的流程图。
图14A至图14C示出可由存储器区属性管理器设置的用于管理turbo写入缓冲器的策略。
图15示出可通过存储器区属性管理器设置的用于管理turbo写入缓冲器的策略。
图16是示出根据发明构思的示例性实施例的图1的存储***的操作的流程图。
图17是示出根据发明构思的示例性实施例的图1的存储***的操作的流程图。
图18示出根据发明构思的示例性实施例的电子装置的示例性配置。
图19示出将发明构思的实施例应用于存储***的概念图。
图20示出应用了根据发明构思的实施例的存储***的存储卡的示例性配置。
具体实施方式
下面,详细且清楚地描述发明构思的示例性实施例,以达到本领域普通技术人员能够实现发明构思的程度。
在具体实施方式中参照术语“单元”、“模块”或“块”和附图中示出的功能块描述的组件可利用软件、硬件或它们的组合来实现。在一个实施例中,软件可以是机器代码、固件、嵌入式代码和应用软件。例如,硬件可包括集成电路(IC)、专用IC(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)、微机电***(MEMS)、处理器、无源元件或它们的组合。
图1是示出根据本发明构思的示例性实施例的存储***的框图。参照图1,存储***1000可包括主机1100和存储装置1200。在发明构思的一个示例性实施例中,存储***100可包括各种计算***(诸如,个人计算机、笔记本、平板、智能电话和可穿戴装置)中的一种。
主机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)接口与存储装置1200进行通信。例如,主机1100和存储装置1200可以以UFS协议信息单元(UPIU)的形式交换包。UPIU可包括由主机1100与存储装置1200之间的接口(例如,UFS接口)定义的各种信息。然而,发明构思不限于此。下面,为了便于描述,术语“命令”、“UPIU”和“数据”可互换,并且术语可根据在此公开的实施例而具有相同的含义或不同的含义。
在发明构思的一个示例性实施例中,存储装置1200可支持turbo(增强)写入功能或turbo写入特征。turbo写入功能可在主机1100的控制下被启用或禁用。当turbo写入功能在主机1100的控制下被启用时,存储装置1200可执行turbo写入操作。Turbo写入操作可基于单层单元(SLC)缓冲方案来执行,但不限于此,并且turbo写入操作可提供存储装置1200的改善的性能(具体的讲,改善的写入性能)。下面将参照附图更充分地描述turbo写入操作。
图2是示出图1的存储***1000的分层结构的框图。例如,存储***1000可包括主机1100和存储装置1200。
主机1100可包括应用AP-h、文件***FS-h、装置管理器DM-h、UFS应用层UAP-h、UFS传输协议层UTP-h和UFS互连层UIC-h。
应用AP-h可包括在主机1100处驱动的各种应用程序、进程等。作为上层的应用AP-h可处理来自存储***1000的用户的请求。应用AP-h可处理用于读取操作和写入操作的正常命令。应用AP-h可使用查询请求来提供装置级的控制。
文件***FS-h可组织和管理由应用AP-h生成的各种数据(文件)。文件***FS-h可生成与对存储装置1200的访问请求(例如,写入请求等)对应的逻辑地址。在一个实施例中,文件***FS-h可包括FAT(文件分配表)、FAT32、NTFS(NT文件***)、HFS(分层文件***)、JSF2(日志文件***2)、XFS、ODS-5(盘上结构-5)、UDF、ZFS、UFS(Unix文件***)、ext2、ext3、ext4、ReiserFS、Reiser4、ISO 9660、Gnome VFS、BFS、WinFS等。
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可被配置为支持turbo写入功能或turbo读取功能。
在发明构思的一个示例性实施例中,由主机1100或主机1100的用户指定的特定应用或进程可使用turbo写入或turbo读取。I/O流管理器IOSM-h可响应于由关于存储装置1200的特定应用或进程做出的写入请求或读取请求来确定是否执行turbo写入或turbo读取。
此外,由文件***FS-h管理的特定数据可使用turbo写入或turbo读取。I/O流管理器IOSM-h可响应于针对存储装置1200的关于特定数据(例如,元数据)的写入请求或读取请求来确定是否执行turbo写入或turbo读取。
此外,I/O流管理器IOSM-h可指导写入存储装置1200中的数据的移动。I/O流管理器IOSM-h可通过将数据移动到固定turbo写入缓冲器(pinned turbo write buffer)TWB-p、非固定turbo写入缓冲器(non-pinned turbo write buffer)TWB-np或用户存储部UST,来调整被写入存储装置1200中的数据的读取速度。
UFS命令集UCS-h可支持在主机1100与存储装置1200之间支持的各种命令集。在发明构思的一个示例性实施例中,UFS命令集UCS-h可包括UFS本地命令集和UFS SCSI命令集。UFS命令集UCS-h可根据来自应用AP-h或文件***FS-h的请求来配置将被传送到存储装置1200的命令。
尽管没有在附图中示出,但是UFS应用层UAP-h还可包括处理命令以控制命令队列的任务管理器。
装置管理器DM-h可管理装置级的操作和装置级的配置。在发明构思的一个示例性实施例中,装置管理器DM-h可管理用于设置或检查存储装置1200的各种信息的查询请求。
UFS传输协议层UTP-h可向上层提供服务。UFS传输协议层UTP-h可生成从UFS应用层UAP-h提供的命令或信息,或者以UPIU(UFS协议信息单元)包的形式从装置管理器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物理连接的硬件配置(诸如,MIPI UniPro或MIPI M-PHY)。这样,主机1100和存储装置1200能够彼此建立通信通道。在发明构思的一个示例性实施例中,UFS互连层UIC-h和UFS传输协议层UTP-h可通过UIC-SAP进行通信,并且UFS互连层UIC-h和装置管理器DM-h可通过UIO-SAP进行通信。
虽然没有在附图中示出,但是主机1100还可包括装置驱动器。装置驱动器可控制包括在主机1100中的装置和/或层。装置驱动器可将由文件***FS-h生成的针对存储装置1200的请求(例如,写入请求、读取请求等)转换为能够被存储装置1200识别的命令。例如,文件***FS-h和装置驱动器可被包括在操作***(OS)中,并且应用层AP-h可被安装在OS中。装置驱动器可在管理硬件资源的同时控制与存储装置1200的通信。
存储装置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的明确请求或内部策略,从主机1100接收的写入数据可被写入到固定turbo写入缓冲器TWB-p、非固定turbo写入缓冲器TWB-np和用户存储部UST中的至少一个的空间中。存储器区属性管理器MAPM-d可基于以上描述的各种方案来选择将存储从主机1100接收的写入数据的空间,并且可将写入数据存储在选择的空间中。
如上所述,根据主机1100的明确请求或内部策略,存储装置1200的存储器区管理器MAM-d可控制固定turbo写入缓冲器TWB-p、非固定turbo写入缓冲器TWB-np和用户存储部UST之间的数据移动/冲刷/迁移(move/flush/migration)。例如,如稍后将描述的,存储装置1200可响应于来自主机1100的其中设置了移动属性信息MA的CMD UPIU,执行各个区之间的数据移动。在一个实施例中,在特定值被设置在CMD UPIU的特定字段或CMD UPIU的命令描述符块CDB中的情况下,存储装置1200可省略将数据(例如,DATA IN UPIU)传送到主机1100的操作。
主机1100和存储装置1200中的每个的以上分层结构和功能仅是示例性的,并且发明构思不限于此。
图3是示出图2的存储装置的物理存储空间的示图。下面,为了便于描述,使用术语存储装置1200(图1)的“物理存储空间PS”。存储装置1200的物理存储空间PS可指示非易失性存储器装置1220的实际存储用户数据的物理区。换句话说,物理存储空间PS可以是被主机1100识别为存储装置1200的容量的空间。为了彼此通信的目的,主机1100和存储装置1200可按照由JEDEC提出的UFS协议来实现,但是发明构思不限于此。
在发明构思的一个示例性实施例中,存储装置1200还可包括任何其他存储空间(例如,不被主机1100识别为存储装置1200的容量的空间(诸如,保留区、用于存储元数据的元区、或用于改善性能的超额配置(overprovisioning)区)以及图2中示出的物理存储空间PS。然而,为了便于描述,将省略(或最小化)与其他存储空间相关联的附加描述,并且描述将着重于存储用户数据的物理存储空间PS。
参照图1、图2和图3,存储装置1200的物理存储空间PS可包括turbo写入缓冲器区(TWB)(在下文中被称为“turbo写入缓冲器”)和用户存储区(UST)(在下文中被称为“用户存储部”)。用户存储部和turbo写入缓冲器可被称为第一区域、第二区域、第三区域等。
turbo写入缓冲器TWB可对应于非易失性存储器装置1220的物理存储空间PS的一部分(例如,“a”)。用户存储部UST可对应于非易失性存储器装置1220的物理存储空间PS的剩余部分(例如,“b”)。可选择地,用户存储部UST可对应于非易失性存储器装置1220的物理存储空间PS的全部(例如,a+b)。
在发明构思的一个示例性实施例中,与turbo写入缓冲器TWB对应的每个存储器单元可以是SLC,并且与用户存储部UST对应的每个存储器单元可以是TLC。可选择地,与turbo写入缓冲器TWB对应的每个存储器单元可存储n比特(或者,位)(bit)数据(n是正整数),并且与用户存储部UST对应的每个存储器单元可存储m比特数据(m是大于n的正整数)。换句话说,turbo写入缓冲器TWB可以是比用户存储部UST支持更高的写入速度的区。
发明构思不限于与turbo写入缓冲器TWB和用户存储部UST有关的以上描述。例如,存储在与turbo写入缓冲器TWB对应的每个存储器单元中的比特的数量(例如,k)可大于或等于存储在与用户存储部UST对应的每个存储器单元中的比特的数量(例如,i)(即,k≥i)。在发明构思一个示例性实施例中,在turbo写入缓冲器TWB和用户存储部UST中,每个存储器单元将存储的比特的数量可由存储装置1200的各种因素(诸如,可靠性和寿命)确定。可选择地,除了每个存储器单元将存储的比特的数量之外,turbo写入缓冲器TWB和用户存储部UST可通过各种因素(诸如,存储装置1200的可靠性和寿命)来划分。
在发明构思的一个示例性实施例中,参考标号“a”和“b”中的每个可以是对应的存储空间中的存储器块的数量。例如,“a”和“b”的值可根据turbo写入缓冲器TWB和用户存储部UST的大小以及实现turbo写入缓冲器TWB和用户存储部UST的方案(例如,SLC、多层单元(MLC)、TLC和四层单元(QLC)不同地改变。
如参照图1所描述的,存储装置1200可支持正常写入功能和turbo写入功能。当通过主机1100启用turbo写入功能时,存储装置1200可执行turbo写入操作。当通过主机1100禁用turbo写入功能时,存储装置1200可执行正常写入操作。
例如,在turbo写入功能被启用的情况下,存储装置1200可优先将从主机1100接收的写入数据写入turbo写入缓冲器TWB中。在这种情况下,因为从主机1100接收的写入数据被写入turbo写入缓冲器TWB(例如,SLC编程)中,所以与对用户存储部UST执行正常写入操作(例如,TLC编程)的情况相比,可确保快的操作速度。在turbo写入功能被禁用的情况下,存储装置1200可不首先将写入数据写入turbo写入缓冲器TWB中。根据内部分配的策略(例如,正常写入策略),存储装置1200可将写入数据直接写入用户存储部UST中或者可将写入数据写入turbo写入缓冲器TWB中。根据正常写入策略,可基于各种因素(诸如,turbo写入缓冲器TWB的数据份额和物理存储空间PS的状态)来确定如何写入写入数据。
作为另一示例,正常写入策略可首先将写入数据写入用户存储部UST中。为了更清楚地解释发明构思,在下面的详细描述中,正常写入策略是将写入数据优先写入用户存储部UST中的策略。然而,发明构思不限于此。
在发明构思的一个示例性实施例中,根据来自主机1100的明确命令内部分配的策略,写入turbo写入缓冲器TWB中的数据可被冲刷或迁移到用户存储部UST。
图4A和图4B示出图3的示例性turbo写入缓冲器类型。
参照图1至图4B,存储装置1200可包括第一逻辑单元LU1、第二逻辑单元LU2、第三逻辑单元LU3和第四逻辑单元LU4。第一逻辑单元LU1至第四逻辑单元LU4中的每个可以是处理来自主机1100的命令的外部可寻址的独立的处理实体。主机1100可通过第一逻辑单元LU1至第四逻辑单元LU4来管理存储装置1200的存储空间。第一逻辑单元LU1至第四逻辑单元LU4中的每个可用于将数据存储在存储装置1200。
第一逻辑单元LU1至第四逻辑单元LU4中的每个可与非易失性存储器装置1220的至少一个存储器块相关联。可存在用于各种目的的各种类型的逻辑单元。然而,第一逻辑单元LU1至第四逻辑单元LU4可对应于物理存储空间PS,并且可用于存储主机1100的数据。
在图4A和图4B中示出第一逻辑单元LU1至第四逻辑单元LU4,但是发明构思不限于此。例如,存储装置1200还可包括用于存储和管理用户数据的其他逻辑单元以及第一逻辑单元LU1至第四逻辑单元LU4。可选择地,存储装置1200还可包括用于支持各种功能的其他逻辑单元以及第一逻辑单元LU1至第四逻辑单元LU4。
存储装置1200的turbo写入缓冲器TWB可以以各种类型来配置。turbo写入缓冲器TWB可以以逻辑单元(LU)专用缓冲器类型和共享缓冲器类型中的一个来配置。
在LU专用缓冲器类型的情况下,可针对每个逻辑单元LU独立地或单独地配置turbo写入缓冲器TWB。例如,如图4A中所示,在LU专用缓冲器类型中,可针对第一逻辑单元LU1至第四逻辑单元LU4中的第一逻辑单元LU1配置第一turbo写入缓冲器TWB1,并且可针对第一逻辑单元LU1至第四逻辑单元LU4中的第三逻辑单元LU3配置第三turbo写入缓冲器TWB3。
在图4A的LU专用缓冲器类型中,在turbo写入被启用之后接收到针对第一逻辑单元LU1的写入命令的情况下,可优先将写入数据写入与第一逻辑单元LU1对应的第一turbo写入缓冲器TWB1中。在turbo写入功能被启用之后接收到针对第三逻辑单元LU3的写入命令的情况下,可优先将写入数据写入与第三逻辑单元LU3对应的第三turbo写入缓冲器TWB3中。
在接收到针对未分配turbo写入缓冲器TWB的第二逻辑单元LU2和第四逻辑单元LU4的写入命令的情况下,可将写入数据写入与第二逻辑单元LU2和第四逻辑单元LU4对应的用户存储部UST中。此外,在turbo写入被禁用之后接收到针对第一逻辑单元LU1或第三逻辑单元LU3的写入命令的情况下,根据正常写入策略,可将写入数据写入第一逻辑单元LU1的用户存储部UST或第一turbo写入缓冲器TWB1中,或者可将写入数据写入第三逻辑单元LU3的用户存储部UST或第三turbo写入缓冲器TWB3中。
在发明构思的一个示例性实施例中,可彼此独立地设置第一turbo写入缓冲器TWB1的容量和第三turbo写入缓冲器TWB3的容量。然而,发明构思不限于此。例如,可不同地改变或修改turbo写入缓冲器被分别分配到的逻辑单元的数量或每个turbo写入缓冲器的容量等。
在发明构思的一个示例性实施例中,用于每个逻辑单元的turbo写入缓冲器TWB的大小可被设置到单元描述符的每单元turbo写入缓冲器大小字段(例如,“dLUNumTurboWriteBufferAllocUnits”)。在发明构思的一个示例性实施例中,每单元turbo写入缓冲器大小字段(例如,“dLUNumTurboWriteBufferAllocUnits”)可以是可配置的参数。
在共享缓冲器类型的情况下,可针对所有逻辑单元配置一个turbo写入缓冲器。例如,如图4B中所示,在共享缓冲器类型中,可配置有由所有第一逻辑单元LU1至第四逻辑单元LU4共享的一个turbo写入缓冲器TWB0。在这种情况下,当在turbo写入功能被启用之后接收到针对第一逻辑单元LU1至第四逻辑单元LU4中的每个的写入命令时,可首先将写入数据写入共享turbo写入缓冲器TWB0中。在turbo写入被禁用之后接收到针对第一逻辑单元LU1至第四逻辑单元LU4中的每个的写入命令的情况下,根据正常写入策略,可将写入数据写入第一逻辑单元LU1至第四逻辑单元LU4中的每个中或共享turbo写入缓冲器TWB0中。
如上所述,存储装置1200可包括用于支持turbo写入功能的turbo写入缓冲器TWB。根据缓冲器类型(例如,LU专用缓冲器类型或共享缓冲器类型),可针对多个逻辑单元中的每个配置turbo写入缓冲器TWB,或者一个turbo写入缓冲器TWB可被配置为被所有逻辑单元共享。
图5A和图5B是用于描述用于配置图1的存储装置的turbo写入缓冲器的示例性模式的示图。
下面,为了便于描述,假设存储装置1200的物理存储空间PS基于TLC为32GB。换句话说,在包括在存储装置1200中的每个存储器单元存储3比特数据的情况下,存储装置1200可存储32GB的用户数据。然而,发明构思不限于此。例如,存储装置1200的物理存储空间PS可根据实现存储装置1200或非易失性存储器装置1220的方案(例如,根据存储器单元类型(例如,SLC、MLC、TLC或QLC)、存储器单元的数量、存储器单元结构、超额配置比率等)被不同地改变。
参照图1、图5A和图5B,存储装置1200可根据各种模式来配置turbo写入缓冲器TWB的物理存储空间。例如,存储装置1200可基于用户容量减少模式和无用户容量减少模式中的一个来配置turbo写入缓冲器的物理存储空间。
用户容量减少模式可以是为了配置turbo写入缓冲器TWBa而减小用户存储部USTa的用户容量的模式。例如,如图5A中所示,存储装置1200的物理存储空间PS基于TLC可以是32GB。在turbo写入缓冲器TWB被配置之前,32GB的容量(例如,物理存储空间PS的全部容量)可被分配给用户存储部UST或者可用于用户存储部UST。在这种情况下,从主机1100的视角,用户存储部UST可被识别为32GB。
可根据用户容量减少模式来配置turbo写入缓冲器TWB。在这种情况下,作为物理存储空间PS的一部分的第二物理存储空间PS2a可被分配给turbo写入缓冲器TWBa或者可被用于turbo写入缓冲器TWBa。此外,作为物理存储空间PS的一部分的第一物理存储空间PS1a可被分配给用户存储部USTa或可被用于用户存储部USTa。在这种情况下,与未配置turbo写入缓冲器TWBa的情况相比,从主机1100的视角,用户存储部USTa的容量可减少(例如,从32GB减小到26GB)。
在发明构思的一个示例性实施例中,与用户存储部USTa对应的第一物理存储空间PS1a可利用TLC来实现,并且与turbo写入缓冲器TWBa对应的第二物理存储空间PS2a可利用SLC来实现。当相同的存储空间用于TLC和SLC时的容量的比例可以是“3:1”。换句话说,当turbo写入缓冲器TWBa的大小增加1GB时,用户存储部USTa的逻辑存储空间的大小可减小3GB。如上所述,在以用户容量减少模式配置turbo写入缓冲器TWBa的情况下,存储装置1200的物理存储空间PS的一部分可被分配用于turbo写入缓冲器TWBa,因此,由主机1100识别的用户存储部USTa的容量可减小。
在发明构思的一个示例性实施例中,与用户存储部USTa对应的第一物理存储空间PS1a和与turbo写入缓冲器TWBa对应的第二物理存储空间PS2a可在物理上彼此邻近或者可在物理上彼此间隔开。
无用户容量减少模式可以是这样的模式:即使配置了turbo写入缓冲器TWBb,由主机1100识别的用户存储部USTb的逻辑存储容量也不减小。例如,如图5B中所示,在turbo写入缓冲器TWB的配置之前,用户存储部UST可具有32GB的容量。换句话说,存储装置1200的物理存储空间PS可被分配给用户存储部UST或者可被用于用户存储部UST。
在基于无用户容量减少模式配置turbo写入缓冲器TWB的情况下,可配置具有特定容量(例如,2GB)的turbo写入缓冲器TWBb。作为物理存储空间PS的一部分的第二物理存储空间PS2b可被分配给turbo写入缓冲器TWBb或者可被用于turbo写入缓冲器TWBb。
与用户容量减少模式不同,无用户容量减少模式下的用户存储部USTb可保持32GB的容量。换句话说,在无用户容量减少模式下,即使配置了turbo写入缓冲器TWBb,从主机1100的角度识别的用户存储部UST的容量可与配置turbo写入缓冲器TWBb之前的容量相同。
在发明构思的一个示例性实施例中,在无用户容量减少模式下,turbo写入缓冲器TWBb的大小或配置可通过存储装置1200的内部策略或来自主机1100的明确请求来改变。例如,因为作为物理存储空间PS的一部分的第二物理存储空间PS2b用于配置turbo写入缓冲器TWBb,所以将被用于用户存储部USTb的第一物理存储空间PS1b可小于用户存储部USTb的容量。
换句话说,在全部的第一物理存储空间PS1b用于存储用户数据或者第一物理存储空间PS1b的可用空闲容量等于或小于参考值的情况下,用于turbo写入缓冲器TWBb的第二物理存储空间PS2b的全部或一部分可被返回给用户存储部USTb。
换句话说,在物理存储空间PS中,在由于缺少用于用户存储部USTb的可用空间导致turbo写入缓冲器TWBb不能被维持的情况下,可将为turbo写入缓冲器TWBb分配的第二物理存储空间PS2b返还给用户存储部USTb。可例如通过用户数据冲刷操作和设置turbo写入缓冲器大小的操作来执行上述返还操作。
在发明构思的一个示例性实施例中,主机1100可检查存储装置1200的turbo写入缓冲器TWB的当前可用大小。例如,存储装置1200可在属性的当前turbo写入缓冲器大小字段(例如,“dCurrentTurboWriteBufferSize”)设置关于turbo写入缓冲器TWB的当前大小的信息。此外,存储装置1200可在属性的可用turbo写入缓冲器大小字段(例如,“dAvailableTurboWriteBufferSize”)设置关于turbo写入缓冲器TWB的当前可用容量的比率的信息。
主机1100可通过检查属性的当前turbo写入缓冲器大小字段和可用turbo写入缓冲器大小字段来检查turbo写入缓冲器TWB的当前可用大小。基于检查的信息,主机1100可改变使用turbo写入的策略或者可将用于turbo写入缓冲器TWB的物理存储空间返还给用户存储部UST。
作为另一示例,存储装置1200可自主地将用于turbo写入缓冲器TWB的物理存储空间返还给返还给用户存储部UST。例如,存储装置1200可周期性地将用户存储部UST的可用空间与参考值进行比较,以确定是否需要将用于turbo写入缓冲器TWB的物理存储空间返还给用户存储部UST。当存储装置1200已经将用于turbo写入缓冲器TWB的物理存储空间返还给用户存储部UST时,存储装置1200可设置状态标志以指示turbo写入缓冲器TWB不再可用。状态标志可存储在存储装置1200中的寄存器中。主机1100可通过当前turbo写入缓冲器大小字段来检查turbo写入缓冲器TWB的改变的状态。当将用于turbo写入缓冲器TWB的物理存储空间返还给用户存储部UST时,存储装置1200可将当前turbo写入缓冲器大小字段设置为0。
在发明构思一个示例性实施例中,存储装置1200可基于为turbo写入缓冲器TWB分配的或用于turbo写入缓冲器TWB的物理存储空间(或存储器块)的编程/擦除(P/E)循环的数量,来提供关于turbo写入缓冲器TWB的寿命的信息。例如,存储装置1200可在属性的turbo写入缓冲器寿命估计字段(例如,“dTurboWriteBufferLifeTimeEst”)设置关于turbo写入缓冲器TWB的寿命的信息。
主机1100可通过经由查询请求检查存储装置1200的属性的turbo写入缓冲器寿命估计字段来估计turbo写入缓冲器TWB的寿命。在发明构思的一个示例性实施例中,在无用户容量减少模式下,因为用户存储部UST和turbo写入缓冲器TWB共享物理存储空间PS,所以在对用户存储部UST执行写入操作的情况下,turbo写入缓冲器TWB的寿命会减小。
图6是示出图1的存储***的操作的流程图。参照图6描述存储***1000的初始化操作。在操作S11中,主机1100和存储装置1200可执行诸如上电复位操作、硬件复位操作或端点复位操作的操作。
在操作S12中,主机1100和存储装置1200可执行硬件重置和引导(booting)。例如,主机1100和存储装置1200中的每个的硬件层可被初始化和引导。
在操作S13中,主机1100和存储装置1200可对特定层(例如,UFS传输(UTP层)执行初始化。例如,主机1100可将NOP OUT UPIU传送到存储装置1200。存储装置1200可响应于NOP OUT UPIU而将NOP IN UPIU传送到主机1100。
在操作S14中,主机1100可检查来自存储装置1200的装置描述符。例如,主机1100可将用于读取描述符的查询请求传送到存储装置1200。存储装置1200可响应于查询请求将包括装置描述符的查询响应传送到主机1100。查询请求可包括读取描述符。例如,读取描述符可向存储装置1200指示外部装置期望装置描述符。
在发明构思的一个示例性实施例中,主机1100可通过装置描述符检查存储装置1200的配置和功能。例如,装置描述符可包括包含关于是否支持turbo写入功能的信息的扩展UFS功能支持字段(例如,“dExtendedUFSFeaturesSupport”)。在发明构思的一个示例性实施例中,关于是否支持turbo写入功能的信息可被设置到扩展UFS功能支持字段的特定位(例如,位[8])。
装置描述符还可包括包含关于turbo写入缓冲器模式的信息的turbo写入缓冲器无用户空间减少启用字段(例如,“bTurboWriteBufferNoUserSpaceReductionEn”)。在turbo写入缓冲器无用户空间减少启用字段的值是“00h”的情况下,可根据参照图4A描述的用户容量减少模式来配置turbo写入缓冲器TWB。在turbo写入缓冲器无用户空间减少启用字段的值是“01h”的情况下,可根据参照图4B描述的无用户容量减少模式来配置turbo写入缓冲器TWB。
装置描述符还可包括包含关于turbo写入缓冲器类型的信息的turbo写入缓冲器类型字段(例如,“bTurbowriteBufferType”)。在turbo写入缓冲器类型字段的值是“00h”的情况下,可根据参照图4A描述的LU专用缓冲器类型来配置turbo写入缓冲器TWB。在turbo写入缓冲器类型字段的值是“01h”的情况下,可根据参照图4B描述的共享缓冲器类型来配置turbo写入缓冲器TWB。
装置描述符还可包括包含关于turbo写入缓冲器TWB的大小的信息的共享turbo写入缓冲器分配数量字段(例如,“dNumSharedTurboWriteBufferAllocUnits”)。在分配给共享turbo写入缓冲器的单元的数量被设置为“0”的情况下,可不配置共享缓冲器类型的turbo写入缓冲器。
上述字段仅是示例性的,并且发明构思不限于此。例如,装置描述符还可包括包含关于存储装置1200的配置、结构、功能等的信息的其他字段以及上述字段。装置描述符的各个字段可指示在初始化操作之前设置的值。主机1100可通过读取装置描述符的各个字段来识别存储装置1200的当前状态。
在发明构思的一个示例性实施例中,装置描述符的上述字段(诸如,“bTurboWriteBufferNoUserSpaceReductionEn”、“bTurboWriteBufferType”和“dNumSharedTurboWriteBufferAllocUnits”)可通过写入配置描述符的相应字段的值来改变。换句话说,主机1100可通过写入配置描述符的各个字段的值来改变信息(诸如,turbo写入缓冲器类型、turbo写入缓冲器无用户空间减少启用以及分配给turbo写入缓冲器的单元的数量)。
在发明构思的一个示例性实施例中,存储装置1200的几何描述符可包括信息(诸如,turbo写入缓冲器最大大小字段、turbo写入缓冲器最大数量字段、turbo写入缓冲器容量调整因子字段、支持的turbo写入缓冲器无用户容量减少类型字段、支持的turbo写入缓冲器类型字段等)。例如,turbo写入缓冲器最大大小字段(例如,“dTurboWriteBufferMaxNAllocUnits”)可包括关于在存储装置1200支持的turbo写入缓冲器TWB的最大大小的信息。turbo写入缓冲器最大数量字段(例如,“bDeviceMaxTurboWriteLUs”)可包括关于在存储装置1200支持的turbo写入缓冲器的最大数量的信息。
turbo写入缓冲器容量调整因子字段(例如,“bTurboWriteBufferCapAdjFac”)可包括关于根据turbo写入缓冲器存储器的种类的容量减少因子的信息。例如,在turbo写入缓冲器TWB使用SLC实现并且用户存储部UST使用TLC实现的情况下,turbo写入缓冲器容量调整因子字段的值可以是“3”。在turbo写入缓冲器TWB使用SLC实现并且用户存储部UST使用MLC实现的情况下,turbo写入缓冲器容量调整因子字段的值可以是“2”。
支持的turbo写入缓冲器无用户容量减少类型字段(例如,“bSupportedTurboWriteBufferNoUserSpaceReductionTypes”)可包括关于存储装置1200是否支持任何turbo写入缓冲器模式(例如,用户容量减少模式、无用户容量减少模式或两者)的信息。
支持的turbo写入缓冲器类型字段(例如,“bSupportedTurboWriteBufferTypes”)可包括关于存储装置1200是否支持任何turbo写入缓冲器类型(例如,LU专用缓冲器类型、共享缓冲器类型或两者)的信息。
上述字段仅是示例性的,并且发明构思不限于此。
在操作S15中,主机1100可从存储装置1200下载引导代码。例如,主机1100可将测试单元就绪(TEST UNIT READY)UPIU传送到存储装置1200。存储装置1200可响应于接收的测试单元就绪UPIU来传送状态信息。主机1100可基于接收的状态信息来确定存储装置1200的引导逻辑单元(或引导公知LU)是否可访问。
在引导逻辑单元可访问的情况下,主机1100可将SCSI读取(READ)命令传送到存储装置1200。在发明构思的一个示例性实施例中,SCSI读取命令可对应于引导逻辑单元。存储装置1200可响应于接收的命令将数据“DATA”和状态信息传送到主机1100。
在操作S16中,主机1100可通过设置存储装置1200的标志来完成初始化操作。例如,主机1100可将查询请求传送到存储装置1200。查询请求可以是用于设置包括在存储装置1200的标志中的装置初始化字段(例如,“fDeviceInit”)的请求。响应于查询请求,包括在存储装置1200的标志中的装置初始化字段可被设置为特定值(例如,“01h”)。然后,存储装置1200可传送查询响应。
在操作S17中,主机1100可轮询存储装置1200的标志的装置初始化字段(例如,“fDeviceInit”)。例如,主机1100可将用于读取标志的装置初始化字段的查询请求传送到存储装置1200,并且存储装置1200可将其中包括装置初始化字段的查询响应传送到主机1100。
在发明构思的一个示例性实施例中,在操作S16之后,在存储装置1200的初始化操作完成的情况下,装置初始化字段可被重置为不同的值(例如,“00h”)。换句话说,主机1100可重复执行操作S17以检查装置初始化字段是否被重置。在装置初始化字段被重置的情况下,主机1100和存储装置1200的初始化操作可完成。
图7是示出图1的存储***的操作的流程图。将参照图1和图7描述存储***1000的写入操作。
在操作S21中,主机1100可将包括写入命令WR CMD的CMD UPIU传送到存储装置1200。
在操作S22中,主机1100和存储装置1200可执行数据事务。例如,存储装置1200可将准备好传送UPIU(RTT UPIU)传送到主机1100。RTT UPIU可包括关于存储装置1200能够接收数据的数据范围的信息。主机1100可响应于RTT UPIU将包括写入数据的DATA OUT(数据输出)UPIU传送到存储装置1200。随着上述操作重复执行,写入数据可从主机1100传送到存储装置1200。
在全部写入数据被接收之后,在操作S23中,存储装置1200可将RESPONSE(响应)UPIU传送到主机1100。RESPONSE UPIU可包括指示与在操作S21中接收的写入命令对应的操作完成的信息。
在发明构思的一个示例性实施例中,存储装置1200可对在操作S22中接收的写入数据执行正常写入操作。例如,在操作S21中,存储装置1200可确定turbo写入功能是否被启用。更具体地,存储装置1200可基于标志的turbo写入启用字段(例如,“fTurboWriteEn”)的值来确定turbo写入功能是否被启用。
在turbo写入启用字段的值是“0b”的情况下,turbo写入功能可处于禁用状态。在turbo写入启用字段的值是“1b”的情况下,turbo写入功能可处于启用状态。在发明构思的一个示例性实施例中,标志的turbo写入启用字段的值可通过主机1100的设置标志的查询请求来设置。
turbo写入启用字段的值可不由主机1100设置。在这种情况下,在操作S22中接收的写入数据可按照正常写入策略被写入turbo写入缓冲器TWB或用户存储部UST中。
在操作S30中,主机1100可将turbo写入启用字段的值设置为特定值(例如,“1b”)。例如,主机1100可将用于将turbo写入启用字段的值设置为特定值(例如,“1b”)的查询请求传送到存储装置1200。turbo写入启用字段的值可响应于来自主机1100的查询请求而被设置为特定值(例如,“1b”),并且存储装置1200可将查询响应传送到主机1100。
然后,主机1100可执行操作S31至操作S33。除了turbo写入根据turbo写入启用字段被执行以外,操作S31至操作S33可类似于操作S21至操作S23,因此,将省略附加描述以避免冗余。
在发明构思的一个示例性实施例中,在操作S32中接收的写入数据可被写入turbo写入缓冲器TWB中。例如,在操作S30中,由于turbo写入启用字段的值被设置为特定值(例如,“1b”),turbo写入功能可被启用。在这种情况下,从主机1100接收的写入数据可被写入turbo写入缓冲器TWB中。例如,在操作S31中,根据命令UPIU的特定因子值,从主机1100接收的数据可被存储在固定turbo写入缓冲器TWB-p或非固定turbo写入缓冲器TWB-np中。将参照图9更充分地描述如何配置被划分为固定turbo写入缓冲器TWB-p和非固定turbo写入缓冲器TWB-np的turbo写入缓冲器。
在发明构思的一个示例性实施例中,即使turbo写入功能被启用,在turbo写入缓冲器TWB的空间不足的情况下,存储装置1200也可将接收的写入数据写入用户存储部UST中。
图8是示出图1的存储装置的操作的流程图。将参照图1、图2和图8描述存储装置1200的冲刷操作。在操作S41中,存储装置1200可确定当前状态是空闲状态、休眠状态还是运行时状态。当存储装置1200处于运行时状态时,可不执行单独的冲刷操作。
例如,当存储装置1200正在处理从主机1100接收的命令时,存储装置1200可处于运行时状态。当从主机1100接收的并且正被处理或将被处理的命令(例如,未决命令)不存在时,存储装置1200可处于空闲状态。当存储装置1200通过存储装置1200或主机1100的初始化而进入被称为“休眠”的低功率模式时,存储装置1200可处于休眠状态。
当存储装置1200处于空闲状态时,在操作S42中,确定是否启用第一冲刷操作。主机1100可通过设置标志的turbo写入缓冲器冲刷启用字段(例如,“fTurboWriteBufferFlushEn”)的值来允许或禁止存储装置1200的第一冲刷操作。存储装置1200可通过检查标志的turbo写入缓冲器冲刷启用字段的值来确定第一冲刷操作是否被启用。
在发明构思的一个示例性实施例中,当标志的turbo写入缓冲器冲刷启用字段的值是“0b”时,第一冲刷操作可被禁用或禁止。当标志的turbo写入缓冲器冲刷启用字段的值是“1b”时,第一冲刷操作可被启用。在第一冲刷操作被禁用的情况下,存储装置1200可不执行单独的冲刷操作。
在第一冲刷操作被启用的情况下,在操作S43中,存储装置1200可在空闲状态期间执行第一冲刷操作。第一冲刷操作可以是存储装置1200在空闲状态下执行的冲刷操作。冲刷操作可以是根据内部策略或来自主机1100的明确命令将写入turbo写入缓冲器TWB中的用户数据冲刷或迁移到用户存储部UST的操作。
在发明构思的一个示例性实施例中,当写入turbo写入缓冲器TWB中的用户数据被冲刷到用户存储部UST时,被冲刷的用户数据的逻辑地址也可被保持,并且物理地址可被改变。在这种情况下,存储装置1200可更新被冲刷的用户数据的逻辑地址和物理地址的映射信息。例如,物理地址可从turbo写入缓冲器TWB的地址改变为用户存储部UST的地址。
当操作S41的确定结果指示存储装置1200处于休眠状态时,在操作S44中,存储装置1200可确定第二冲刷操作是否被启用。
如在以上描述中那样,例如,主机1100可通过设置标志的休眠期间的turbo写入缓冲器冲刷启用字段(例如,“fTurboWriteBufferFlushDuringHibernat”)的值来允许或禁止存储装置1200的第二冲刷操作。存储装置1200可通过检查标志的休眠期间的turbo写入缓冲器冲刷启用字段的值来确定第二冲刷操作是否被启用。在发明构思的一个示例性实施例中,当标志的休眠期间的turbo写入缓冲器冲刷启用字段的值是“0b”时,第二冲刷操作可被禁用或禁止。当标志的休眠期间的turbo写入缓冲器冲刷启用字段的值是“1b”时,第二冲刷操作可被启用。在第二冲刷操作被禁用的情况下,存储装置1200可不执行单独的冲刷操作。
在第二冲刷操作被启用的情况下,在操作S45中,存储装置1200可在休眠状态期间执行第二冲刷操作。第二冲刷操作可指示存储装置1200在休眠状态下执行的冲刷操作。
根据以上冲刷操作,写入turbo写入缓冲器TWB中的用户数据可被冲刷或迁移到用户存储部UST。这样,可确保turbo写入缓冲器TWB的可用缓冲器大小。
在发明构思的一个示例性实施例中,可在特定条件下暂停以上冲刷操作。例如,可仅在存储装置1200的命令队列为空的状态下执行在空闲状态下执行的第一冲刷操作。在第一冲刷操作被执行的同时,在命令从主机1100被发出的情况下,存储装置1200可暂停执行第一冲刷操作并且可首先处理从主机1100发出的命令。在发明构思的一个示例性实施例中,在休眠模式终止的情况下,可停止在休眠状态下执行的第二冲刷操作。
如上所述,可根据特定条件暂停正在执行的冲刷操作。在这种情况下,存储装置1200可在属性的turbo写入缓冲器冲刷状态字段(例如,“bTurboWriteBufferFlushStatus”)设置冲刷操作的暂停信息(或进程程度的信息)或冲刷操作的当前状态。
在发明构思的一个示例性实施例中,存储装置1200可将指示需要用于turbo写入缓冲器TWB的冲刷操作的信息设置到属性的异常事件状态(例如,“dExceptionEventStatus”)的特定值(例如,位[5])。主机1100可检查属性的异常事件状态的特定值(例如,位[5]),可确定存储装置1200需要冲刷操作,并且可按照策略设置存储装置1200的标志的特定字段(例如,“fTurboWriteBufferFlushEn”和“fTurboWriteBufferFlushDuringHibernate”)。
参照图8给出这样的描述:存储装置1200基于冲刷启用字段的值(例如,turbo写入缓冲器冲刷启用字段的值或休眠期间的turbo写入缓冲器冲刷启用字段的值)来执行冲刷操作,但发明构思不限于此。在一个示例性实施例中,存储装置1200基于内部策略来执行冲刷操作或迁移操作,而不管冲刷启用字段的值(例如,turbo写入缓冲器冲刷启用字段的值或休眠期间的turbo写入缓冲器冲刷启用字段的值)如何。在这种情况下,存储装置1200可根据由存储装置1200自动作出的确定的结果(不需要外部的干预,或者根据它自己的确定)来执行冲刷操作或迁移操作。
图9是示出图1的存储装置1200的物理存储空间的框图。参照图1和图9,存储装置1200的物理存储空间可PS包括turbo写入缓冲器TWB和用户存储部UST。上面描述了存储装置1200的物理存储空间PS、turbo写入缓冲器TWB和用户存储部UST,因此,可省略附加描述以避免冗余。
turbo写入缓冲器TWB可被划分为固定turbo写入缓冲器TWB-p和非固定turbo写入缓冲器TWB-np。如在上面的描述中一样,在存储装置1200的turbo写入功能被启用的情况下,可将写入数据存储在固定turbo写入缓冲器TWB-p和非固定turbo写入缓冲器TWB-np中的一个中。
在一个实施例中,存储在固定turbo写入缓冲器TWB-p中的数据不作为移动(例如,迁移或冲刷)到用户存储部UST的目标,并且存储在非固定turbo写入缓冲器TWB-np中的数据可作为移动到用户存储部UST的目标。也就是说,存储在固定turbo写入缓冲器TWB-p中的数据的优先级可高于存储在非固定turbo写入缓冲器TWB-np中的数据的优先级。然而,发明构思不限于此,因为根据***的资源或策略,存储在固定turbo写入缓冲器TWB-p中的数据可作为移动到非固定turbo写入缓冲器TWB-np或用户存储部UST的目标。在一个示例性实施例中,周期性地执行迁移操作或冲刷操作以将数据从turbo写入缓冲器TWB移动到用户存储部UST。在这个实施例中,在将固定turbo写入缓冲器TWB-p的任何数据迁移或冲刷到用户存储部UST之前,首先将存在于非固定turbo写入缓冲器TWB-np中的所有数据迁移或冲刷到用户存储部UST。在另一实施例中,在给定迁移期间,在迁移的第一时段期间将非固定turbo写入缓冲器TWB-np中的第一数据迁移到用户存储部UST,并且在第一时段之后的第二时段期间将固定turbo写入缓冲器TWB-p中的第二数据迁移到用户存储部UST。
可通过各种方案(例如,内部策略、根据主机的请求的内部策略的改变和主机的明确请求)来确定固定turbo写入缓冲器TWB-p和非固定turbo写入缓冲器TWB-np中的将存储写入数据的一个。
在发明构思的一个示例性实施例中,如上所述,可在主机1100的控制下或根据存储装置1200的内部策略来确定turbo写入缓冲器TWB的大小。在这种情况下,可通过各种方案(例如,内部策略、根据主机的请求的内部策略的改变和主机的明确请求)来确定或改变turbo写入缓冲器TWB中的固定turbo写入缓冲器TWB-p与非固定turbo写入缓冲器TWB-np的比率。
在发明构思的一个示例性实施例中,用户数据可在固定turbo写入缓冲器TWB-p、非固定turbo写入缓冲器TWB-np和用户存储部UST之间冲刷、迁移或移动。例如,根据主机1100的明确请求、存储装置1200的内部策略或根据主机1100的请求的内部策略的改变,用户数据可在固定turbo写入缓冲器TWB-p与非固定turbo写入缓冲器TWB-np之间迁移或移动。
可选择地,根据主机1100的明确请求、存储装置1200的内部策略或根据主机1100的请求的内部策略的改变,用户数据可在非固定turbo写入缓冲器TWB-np与用户存储部UST之间迁移或移动。例如,用户数据可从非固定turbo写入缓冲器TWB-np冲刷到用户存储部UST。可选择地,根据主机1100的明确请求、存储装置1200的内部策略或根据主机1100的请求的内部策略的改变,用户数据可在固定turbo写入缓冲器TWB-p与用户存储部UST之间迁移或移动。
在发明构思的一个示例性实施例中,如参照图8所描述的,存储装置1200可在空闲状态或休眠状态期间执行冲刷操作。在这种情况下,存储装置1200可对turbo写入缓冲器TWB的非固定turbo写入缓冲器TWB-np执行冲刷操作。换句话说,存储装置1200可将存储在turbo写入缓冲器TWB的非固定turbo写入缓冲器TWB-np中的用户数据冲刷到用户存储部UST。在这种情况下,写入固定turbo写入缓冲器TWB-p中的用户数据不会被冲刷到用户存储部UST。换句话说,即使存储装置1200执行冲刷操作,写入固定turbo写入缓冲器TWB-p中的用户数据也可被保持。
作为另一示例,根据存储装置1200的内部策略,将被存储在非固定turbo写入缓冲器TWB-np中的数据可被写入固定turbo写入缓冲器TWB-p中。这种数据可从固定turbo写入缓冲器TWB-p冲刷到用户存储部UST。换句话说,存储在固定turbo写入缓冲器TWB-p中的数据可不被来自主机1100的明确冲刷请求冲刷,而是可根据存储装置1200的内部冲刷策略被选择性地冲刷到用户存储部UST。
在发明构思的一个示例性实施例中,在数据在固定turbo写入缓冲器TWB-p、非固定turbo写入缓冲器TWB-np和用户存储部UST之间冲刷、迁移或移动的情况下,控制器1210可被配置为更新移动的数据的映射关系。例如,在与第一逻辑块地址对应的数据从固定turbo写入缓冲器TWB-p冲刷或迁移到用户存储部UST的情况下,控制器1210可释放第一逻辑块地址与固定turbo写入缓冲器TWB-p的物理地址的映射关系,并且可更新第一逻辑块地址与用户存储部UST的物理地址的映射关系。可以以上面描述的用于在其他区之间移动的方案类似的方案来进行映射关系的释放或更新,因此,将省略附加描述以避免冗余。
下面,为了更清楚地描述发明构思,将在将被存储在固定turbo写入缓冲器TWB-p中的数据需要被存储在固定turbo写入缓冲器TWB-p中的假设下来给出描述。然而,发明构思不限于此。
因此,在主机1100发出针对写入固定turbo写入缓冲器TWB-p中的第一用户数据的读取命令的情况下,第一用户数据可从固定turbo写入缓冲器TWB-p读取。在这种情况下,可以以高速读取第一用户数据。例如,如上所述,固定turbo写入缓冲器TWB-p可基于SLC方案存储用户数据,并且用户存储部UST可以以TLC方案存储用户数据。读取基于SLC方案存储的用户数据所花费的时间短于读取基于TLC方案存储的用户数据所花费的时间。换句话说,由于特定用户数据被保留在固定turbo写入缓冲器TWB-p中,所以可提高读取特定用户数据的速度。存储装置1200的这种功能可被称为“turbo读取”。
在发明构思的一个示例性实施例中,存储装置1200的物理存储空间PS可指示非易失性存储器装置1220的存储空间。换句话说,非易失性存储器装置1220可包括固定turbo写入缓冲器TWB-p、非固定turbo写入缓冲器TWB-np或用户存储部UST。
图10是示出根据发明构思的示例性实施例的用于参照图9描述的存储装置1200的物理存储空间PS的逻辑存储空间。
为了便于描述,将参照一个逻辑单元来描述图10的实施例。然而,发明构思可同样地应用于与turbo写入缓冲器TWB对应的两个或更多个逻辑单元,或者逻辑单元与共享turbo写入缓冲器(例如,TWB0)的关系。参照图1和图10,存储装置1200的由主机1100识别的逻辑存储空间LS可包括用户存储部UST和turbo写入缓冲器TWB。turbo写入缓冲器TWB可包括固定turbo写入缓冲器TWB-p和非固定turbo写入缓冲器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)可对应于非固定turbo写入缓冲器TWB-np的逻辑存储空间。在这种情况下,存储在第二逻辑块地址范围(例如,LBAa+1至LBAb和LBAd+1至LBAe)中的用户数据可被存储在非固定turbo写入缓冲器TWB-np的物理存储空间中。
第三逻辑块地址范围(例如,LBAc+1至LBAd)可对应于固定turbo写入缓冲器TWB-p的逻辑存储空间。在这种情况下,存储在第三逻辑地址范围(例如,LBAc+1至LBAd)中的用户数据可被存储在固定turbo写入缓冲器TWB-p的物理存储空间中。
如上所述,用户存储部UST、非固定turbo写入缓冲器TWB-np和固定turbo写入缓冲器TWB-p可以以各种形式分布在由主机1100识别的逻辑存储空间LS上。然而,发明构思不限于此,第三逻辑块地址范围可对应于非固定turbo写入缓冲器TWB-np的逻辑存储空间,第二逻辑块地址范围可对应于固定turbo写入缓冲器TWB-p的逻辑存储空间。在发明构思的一个实施例中,根据主机1100的明确请求或存储装置1200的内部策略,用户数据可在用户存储部UST、非固定turbo写入缓冲器TWB-np和固定turbo写入缓冲器TWB-p之间移动/冲刷/迁移。
例如,主机1100可以在turbo写入中指定固定turbo写入缓冲器TWB-p和非固定turbo写入缓冲器TWB-np之一。作为另一示例,主机1100可在turbo写入之前将固定turbo写入缓冲器TWB-p和非固定turbo写入缓冲器TWB-np之一指定为turbo写入目标。作为另一示例,主机1100可以在turbo写入中不指定固定turbo写入缓冲器TWB-p或非固定turbo写入缓冲器TWB-np。
主机1100可周期性地或在需要的时候通过(例如,使用查询UPIU)向存储装置1200请求固定turbo写缓冲器TWB-p和非固定的turbo写缓冲器TWB-np的信息,来检查由存储装置1200改变的数据的分发状态。
图11A和图11B是示出根据发明构思的示例性实施例的参照图9描述的存储装置的物理存储空间中的操作的示图。
为了说明的简洁和描述的方便,假设固定turbo写入缓冲器TWB-p包括第一存储器块BLK1,非固定turbo写入缓冲器TWB-np包括第二存储器块BLK2,并且用户存储部UST可包括第三存储器块BLK3。然而,发明构思不限于此。
参照图1、图9和图11A,存储装置1200可从主机1100接收与第一逻辑块地址LBA1对应的第一数据DT1。在发明构思的一个示例性实施例中,存储装置1200的turbo写入功能可处于启用状态。在这种情况下,存储装置1200可将接收的第一数据DT1写入turbo写入缓冲器TWB(例如,非固定turbo写入缓冲器TWB-np)中。换句话说,存储装置1200可对第一数据DT1执行turbo写入。在发明构思的一个示例性实施例中,在turbo写入功能被启用的情况下,可通过各种方案来确定是否将数据存储在固定turbo写入缓冲器TWB-p和非固定turbo写入缓冲器TWB-np中的任何一个中。
在发明构思的一个示例性实施例中,如图11A中所示,固定turbo写入缓冲器TWB-p和非固定turbo写入缓冲器TWB-np可充满用户数据DTa、DTb、DT0和DT1。在这种情况下,存储装置1200可通过设置属性的异常事件状态字段(例如,“wExceptionEventStatus”)的特定位(例如,位[5])来通知主机1100需要冲刷操作。
主机1100可通过查询请求检查属性的异常事件状态字段,并且可检查存储装置1200需要冲刷操作。主机1100可通过设置如参照图8描述的存储装置1200的标志的turbo写入缓冲器冲刷启用字段或休眠期间的turbo写入缓冲器冲刷启用字段来允许存储装置1200的冲刷操作。
当在主机1100的控制下冲刷功能被允许(或被启用)时,存储装置1200可执行冲刷操作。例如,在空闲状态或休眠状态下,存储装置1200可将存储在非固定turbo写入缓冲器TWB-np中的用户数据DT0和DT1冲刷到用户存储部UST的第三存储器块BLK3。在发明构思的一个示例性实施例中,即使在主机1100的控制下冲刷操作被允许,存储在固定turbo写入缓冲器TWB-p中的用户数据DTa和DTb也不会被冲刷到用户存储部UST。换句话说,存储在固定turbo写入缓冲器TWB-p中的用户数据DTa和DTb保持,而存储在非固定turbo写入缓冲器TWB-np中的用户数据DT0和DT1被冲刷。
然后,存储装置1200可从主机1100接收针对第一逻辑地址LBA1的读取命令。在这种情况下,存储装置1200可读取存储在用户存储部UST的第三存储器块BLK3中的第一数据DT1并且可将读取的第一数据DT1输出到主机1100。
在发构思的一个示例性实施例中,因为第一数据DT1被写入(例如,被SLC编程在)非固定turbo写入缓冲器TWB-np中,但是第一数据DT1由于冲刷操作而被冲刷到用户存储部UST,所以第一数据DT1可通过正常读取操作(例如,TLC读取操作)被读取。换句话说,第一数据DT1可被SLC编程却被TLC读取。
参照图1、图9和图11B,第0数据DT0和第一数据DT1可存储在非固定turbo写入缓冲器TWB-np的第二存储器块BLK2中,第a数据DTa可存储在用户存储部UST的第三存储器块BLK3中。
然后,根据主机1100的明确请求或存储装置1200的内部策略,用户存储部空间UST的第a数据DTa可移动到固定turbo写入缓冲器TWB-p的第一存储器块BLK1。例如,存储装置1200可从用户存储部UST的第三存储器块BLK3读取第a数据DTa,并且可将读取的第a数据DTa存储在固定turbo写入缓冲器TWB-p的第一存储器块BLK1中。然后,存储在用户存储部UST的第三存储器块BLK3中的第a数据DTa可被无效、删除或取消映射。在发明构思的一个示例性实施例中,即使第a数据DTa被无效、删除或取消映射,与第a数据DTa对应的第a逻辑块地址LBAa也可维持与固定Turbo写入缓冲器TWB-p的第一存储块BLK1的映射。
然后,存储装置1200可从主机1100接收针对与第a数据DTa对应的第a逻辑块地址LBAa的读取命令。在这种情况下,存储装置1200可读取存储在固定turbo写入缓冲器TWB-p的第一存储器块BLK1中的第a数据DTa,并可将读取的第a数据DTa传送到主机1100。
在发明构思的一个示例性实施例中,读取存储在固定turbo写入缓冲器TWB-p的第一存储器块BLK1中的第a数据DTa的操作可比读取存储在用户存储部UST的第三存储器块BLK3中的数据的操作快。换句话说,根据发明构思的示例性实施例的存储装置1200可通过将特定数据存储和保持在turbo写入缓冲器TWB(或固定turbo写入缓冲器TWB-p)中来支持关于特定数据的快速读取操作(例如,turbo读取操作)。
在发明构思的一个示例性实施例中,存储装置1200可响应于主机1100的请求,将turbo写入缓冲器TWB的剩余(或空闲)容量通知给主机1100。存储装置1200可将关于turbo写入缓冲器TWB的剩余空闲容量的信息写入属性的可用turbo写入缓冲器大小字段(例如,“dAvailableTurboWriteBufferSize”)。主机1100可通过(例如,通过使用查询UPIU)读取可用turbo写入缓冲器大小字段来获得turbo写入缓冲器TWB的容量信息。
例如,存储装置1200可在可用turbo写入缓冲器大小字段分别记录固定turbo写入缓冲器TWB-p的剩余容量和非固定turbo写入缓冲器TWB-np的剩余容量。作为另一示例,存储装置1200可在可用turbo写入缓冲器大小字段记录turbo写入缓冲器TWB的剩余容量的总和。可通过主机1100的标志设置来指定存储装置1200是整体地还是单独地记录turbo写入缓冲器TWB的剩余容量。
例如,存储装置和1200可在可用turbo写入缓冲器大小字段记录比turbo写入缓冲器TWB的实际空闲容量小的容量。在诸如闪存的非易失性存储装置1220中,在连续擦除操作之间的时间小于阈值时间的情况下,数据的可靠性会降低。
因为turbo写入缓冲器TWB的容量小于用户存储部UST的容量,并且turbo写入缓冲器TWB在SLC方案中被使用,所以turbo写入缓冲器TWB可比用户存储部UST更快地被数据填充。此外,在主机1100倾向高速的turbo写入的情况下,turbo写入缓冲器TWB可更快地充满数据。
在将数据密集地写入turbo写入缓冲器TWB的情况下,在短时间窗口期间,执行以下一系列操作:在turbo写入缓冲器TWB上执行第一擦除操作,将数据写入turbo写入缓冲器TWB中,冲刷turbo写入缓冲器TWB的数据,对turbo写入缓冲器TWB上执行第二擦除操作,并将数据写入turbo写入缓冲器TWB中。
在这种情况下,当第一擦除操作和第二擦除操作之间的时间小于阈值时间时,在第二擦除操作之后写入turbo写入缓冲器TWB中的数据的可靠性会降低。为了提高可靠性,即使turbo写入缓冲器TWB的特定存储器块未存储有效数据,并且在擦除操作之后可重复使用,但在特定存储器块的上一次擦除操作之后过去的时间小于阈值时间时,存储装置1200可在可用turbo写入缓冲器大小字段记录不包括该特定存储块的容量的容量。
图12是示出根据发明构思的示例性实施例的图1的存储***的操作的流程图。将参照图1和图12描述存储***1000的读取操作。
在操作S51中,主机1100将包括读取命令RD CMD和读取数据的逻辑地址的命令UPIU传送到存储装置1200。例如,在操作S51中传送的命令UPIU不包括与从用户存储部UST到turbo写入缓冲器TWB-p或TWB-np的移动相关联的移动因子MV。
在操作S52中,存储装置1200将包括读取数据的DATA IN(数据输入)UPIU传送到主机1100。读取数据是从用户存储部UST读取的数据,而不是从turbo写入缓冲器TWB-p或TWB-np读取的数据。
在读取的数据被完全传送之后,在操作S53中,存储装置1200将RESPONSE UPIU传送到主机1100。RESPONSE UPIU可包括指示与在操作S52中传送的读取命令对应的操作已经完成的信息。此外,RESPONSE UPIU可包括指示根据读取命令RD CMD获得的读取数据未从turbo写入缓冲器TWB-p或TWB-np读取的信息。例如,RESPONSE UPIU可包括指示因为不能从turbo写入缓冲器TWB-p或TWB-np读取读取数据而发生未命中(miss)的未命中信息。
同时,在本实施例中,因为命令UPIU不包括移动因子MV,所以仅提供关于从用户存储部UST读取的数据的未命中信息,并且不执行附加操作(例如,将存储在用户存储部UST中的数据移动到turbo写入缓冲器TWB-p或TWB-np)。因此,读取数据的逻辑地址和物理地址“X”可被保持而无需修改。
与操作S51至操作S53的实施例不同,操作S61至操作S63的实施例涉及正常读取操作伴随数据移动的情况。
在操作S61中,主机1100可将包括读取命令RD CMD和读取数据的逻辑地址的命令UPIU传送到存储装置1200。在操作S61中传送的命令UPIU包括与从用户存储部UST到turbo写入缓冲器TWB-p或TWB-np的移动相关联的移动因子MV。例如,移动因子MV可包括指示需要数据的移动的信息、指示数据将被移动到的目的地(例如,固定turbo写入缓冲器TWB-p或非固定turbo写入缓冲器TWB-np)的信息等。
在操作S62中,存储装置1200可将包括从用户存储部UST读取的读取数据的DATAIN UPIU传送到主机1100。同时,存储装置1200可根据移动因子MV将从用户存储部UST读取的读取数据移动到固定turbo写入缓冲器TWB-p或非固定turbo写入缓冲器TWB-np。可选择地,可在DATA IN UPIU被传送到主机1100之后执行将数据移动到turbo写入缓冲器TWB-p或TWB-np。由于数据被移动到turbo写入缓冲器TWB-p或TWB-np,所以读取数据的逻辑地址被保持,并且读取数据的物理地址“Y”可被改变为物理地址Y1或Y2。
在读取数据已经完全传送之后,在操作S63中,存储装置1200可将RESPONSE UPIU传送到主机1100。RESPONSE UPIU可包括指示根据读取命令RD CMD获得的读取数据未从turbo写入缓冲器TWB-p或TWB-np读取的信息(例如,MISS)。另外,RESPONSE UPIU可包括指示读取数据从用户存储部UST被移动到固定turbo写入缓冲器TWB-p或非固定turbo写入缓冲器TWB-np的信息。
与在操作S51至操作S63中描述的实施例不同,操作S71至操作S73的实施例涉及从turbo写入缓冲器TWB-p或TWB-np读取数据的实施例。
主机1100可将包括读取命令RD CMD和读取数据的逻辑地址的命令UPIU传送到存储装置1200(S71)。然后,存储装置1200将包括从turbo写入缓冲器TWB-p或TWB-np读取的读取数据的DATA IN UPIU传送到主机1100(S72)。在读取数据已经完全传送之后,存储装置1200将RESPONSE UPIU传送到主机1100(S73)。在这种情况下,RESPONSE UPIU可包括指示根据读取命令RD CMD获得的读取数据是从turbo写入缓冲器TWB-p或TWB-np读取的信息(例如,HIT)。
图13是示出根据发明构思的示例性实施例的图1的存储***的操作的流程图。参照图12描述伴随读取操作的数据的移动。本实施例涉及与读取操作不相关联的数据的移动。将参照图1、图2和图13描述存储***1000的移动操作。
在操作S81中,主机1100将用于管理turbo写入缓冲器TWB-p和TWB-np的查询请求传送到存储装置1200。存储器区属性管理器MAPM-d可根据查询请求设置用于管理turbo写入缓冲器TWB-p和TWB-np的策略。将参照图14A至图14C和图15更充分地描述由存储器区属性管理器MAPM-d设置的各种策略。
在操作S82中,存储装置1200将查询响应传送到主机1100,查询响应包括指示用于管理turbo写入缓冲器TWB-p和TWB-np的策略被设置的信息。
在操作S91中,主机1100向存储装置1200传送包括移动命令MV CMD和其中存储将被移动的数据的区的逻辑地址的命令UPIU。命令UPIU可包括记录关于数据将被移动到的目的地(即,TWB-p)的信息的字段。
在操作S92中,存储在用户存储部UST中的数据根据在字段中设置的值被移动到固定turbo写入缓冲器TWB-p。在一个实施例中,在图13中示出存储在用户存储部UST的物理地址“X”处的数据被移动到固定turbo写入缓冲器TWB-p的物理地址Z的示例。存储在用户存储部UST中的现有数据可被物理地或逻辑地擦除。然而,根据由存储器区属性管理器MAPM-d设置的策略,存储在用户存储部UST中的现有数据可不被物理地擦除。
在操作S93中,存储装置1200将包括指示数据的移动已经完成的信息MOVE的RESPONSE UPIU传送到主机1100。
在操作S101中,主机1100向存储装置1200传送包括移动命令MV CMD和其中存储将被移动的数据的区的逻辑地址的命令UPIU。命令UPIU可包括记录关于数据将被移动到的目的地(即,TWB-np)的信息的字段,并且存储在固定turbo写入缓冲器TWB-p的物理地址Y1处的数据可根据在字段中设置的值被移动到非固定turbo写入缓冲器TWB-np的物理地址Y2(S102)。
在操作S103中,存储装置1200将包括指示数据的移动已经完成的信息MOVE的RESPONSE UPIU传送到主机1100。
图14A至14C示出可由存储器区属性管理器MAPM-d设置的用于管理turbo写入缓冲器TWB-p和TWB-np的示例性策略。
参照图14A,存储装置1200从主机1100接收包括移动命令MV CMD的命令UPIU(S111)。根据移动请求数据的大小和固定turbo写入缓冲器TWB-p的空闲容量,可能发生一些情况。
当与接收的逻辑地址对应的数据的大小大于固定turbo写入缓冲器TWB-p的大小时,存储装置1200可仅将数据的一部分移动到固定turbo写入缓冲器TWB-p(S112)。例如,存储装置1200可将存储在用户存储部UST中的数据中的与物理地址“X”对应的部分数据移动到固定turbo写入缓冲器TWB-p的物理地址X1。相比之下,存储装置1200可能无法将存储在用户存储部UST中的数据中的与物理地址“Y”对应的部分数据移动到固定turbo写入缓冲器TWB-p,因此,可能发生故障。
然后,存储装置1200可将包括指示数据的部分移动已经被执行的信息MOVE_P的RESPONSE UPIU传送到主机1100(S113)。
参照图14B,存储装置1200从主机1100接收包括移动命令MV CMD的命令UPIU(S121)。当与接收的逻辑地址对应的数据的大小大于固定turbo写入缓冲器TWB-p的大小时,存储装置1200可将数据到固定turbo写入缓冲器TWB-p的移动处理为故障(S121)。然后,存储装置1200可将包括指示数据的移动失败的信息MOVE_F的RESPONSE UPIU传送到主机1100(S123)。
参照图14C,存储装置1200从主机1100接收包括移动命令MV CMD的命令UPIU(S131)。
当与接收的逻辑地址对应的数据的大小大于固定turbo写入缓冲器TWB-p的大小时,存储装置1200可将数据移动到turbo写入缓冲器TWB的不同区。例如,存储装置1200可将存储在用户存储部UST的物理地址“X”处的数据移动到固定turbo写入缓冲器TWB-p的物理地址X1,并且可将存储在用户存储部UST的物理地址“Y”处的数据移动到非固定turbo写入缓冲器TWB-np的物理地址Y2。当然,在非固定turbo写入缓冲器TWB-np的空闲空间被确保与存储在用户存储部UST的物理地址“Y”处的数据的大小一样多的条件下,可允许根据这个策略的数据移动。例如,如果存储在物理地址“X”和物理地址“Y”处的组合数据的大小太大而不能完全容纳在固定turbo写入缓冲器TWB-p中,并且在非固定turbo写入缓冲器TWB-np中存在足够的剩余空间,则可将数据中的一些存储在固定turbo写入缓冲器TWB-p中,并且可将其余数据存储在非固定turbo写入缓冲器TWB-np中。
然后,存储装置1200将包括指示数据的移动已经被执行的信息MOVE的RESPONSEUPIU传送到主机1100(S133)。另外,RESPONSE UPIU还可包括指示数据已经被移动到固定turbo写入缓冲器TWB-p和非固定turbo写入缓冲器TWB-np的信息。
图15示出可由存储器区属性管理器MAPM-d设置的用于管理turbo写入缓冲器TWB-p和TWB-np的示例性策略。参照图14A至图14C描述的实施例可涉及与根据主机1100的明确请求执行的数据的移动相关联的策略,图15的实施例可涉及由存储装置1200自身确定的存储装置1200的策略,而无需反馈或主机1100的干预。
在数据的移动被实际执行之前,存储装置1200可依赖由存储器区属性管理器MAPM-d设置的策略而根据从主机1100接收的读取请求对命中的数量进行计数。这里,命中的数量可表示DATA IN UPIU的数量,DATA IN UPIU基于从用户存储部UST读取的数据并且被正常地传送到主机1100。计数结果可存储在用户存储部UST、turbo写入缓冲器(TWB-p、TWB-np)或另一存储装置(未示出)中。例如,另一存储装置可位于存储器控制器1210中或存储装置1200内,但是另一存储装置可在非易失性存储器装置1220外部和存储器控制器1210外部。
存储装置1200基于在参考时段或给定时间期间计数的命中的数量来确定是否发生移动事件(S141)。例如,当在参考时段期间计数的命中的数量超过参考值时,存储装置1200可确定由于事件的发生,需要将读取请求的数据移动到固定turbo写入缓冲器TWB-p。根据确定的结果,存储装置1200将存储在用户存储部UST中的数据移动到固定turbo写入缓冲器TWB-p(S142)。
在一个示例性实施例中,当从主机1100读取请求的数据的大小大于固定turbo写入缓冲器TWB-p的大小时,存储装置1200可将存储在用户存储部UST中的读取请求的数据移动到非固定turbo写入缓冲器TWB-np。
可选择地,当从主机1100读取请求的数据的大小大于固定turbo写入缓冲器TWB-p的大小时,存储装置1200可将存储在用户存储部UST中的读取请求的数据移动到固定turbo写入缓冲器TWB-p和非固定turbo写入缓冲器TWB-np。在这种情况下,针对被确定为移动到turbo写入缓冲器TWB-p和TWB-np的目标的数据,其中命中的数量相对小的部分可被移动到非固定turbo写入缓冲器TWB-np,其中命中的数量相对大的部分可被移动到固定turbo写入缓冲器TWB-p。
然后,存储装置1200将包括信息MOVE的RESPONSE UPIU传送到主机1100,信息MOVE指示由于存储装置1200中发生移动事件而已经进行了数据到turbo写入缓冲器TWB-p和/或TWB-np的移动(S143)。
图16是示出根据发明构思的示例性实施例的图1的存储***的操作的流程图。与参照图12和图13描述的实施例不同,图16的实施例涉及不伴随数据到主机1100的移动的读取操作。将参照图1、图2和图16描述存储***1000的移动操作。
通常,通过主机1100的请求将写入数据存储在用户存储部UST中。然后,当需要管理turbo写入缓冲器TWB-p或TWB-np中的数据时,主机1100可将包括读取命令RD CMD的命令UPIU传送到存储装置1200(S151)。命令UPIU可包括参照图12描述的移动因子MV。移动因子MV可包括指示需要数据的移动的信息、或者指示数据将被移动到的目的地(例如,固定turbo写入缓冲器TWB-p或非固定turbo写入缓冲器TWB-np)的信息。
在一个实施例中,命令UPIU可包括与将从存储装置1200传送到主机1100的数据的大小相关联的字段(例如,“Expected Data Transfer Length”)。当预期数据传送长度的值不是“0”时,读取数据可从存储装置1200传送到主机1100。当预期数据传送长度的值是“0”时,读取数据不被传送到主机1100。
因为命令UPIU的预期数据传送长度的值是“0”,并且数据将被移动到的目的地通过移动因子MV被设置,所以存储在用户存储部UST中的数据不被传输到主机1100。代替地,存储在与同命令UPIU一起接收的逻辑地址对应的物理地址“X”处的数据被移动到固定turbo写入缓冲器TWB-p的物理地址X1(S152)。然而,发明构思不限于此。例如,可根据移动因子MV的值将存储在用户存储部UST中的数据移动到非固定turbo写入缓冲器TWB-np。
参照图14A至图14C描述的策略可应用于图16的实施例。除了从主机1100接收的命令的种类之外,图16的实施例与图13的实施例类似,因此,关于图14A至图14C的策略的应用,将省略附加描述以避免冗余。
然后,存储装置1200向主机1100传送RESPONSE UPIU,RESPONSE UPIU包括指示用户存储部UST的数据已经被移动到固定turbo写入缓冲器TWB-p的信息(S153)。
图17是示出根据发明构思的示例性实施例的图1的存储***的操作的流程图。与参照图12、图13和图16描述的实施例不同,图17的实施例涉及数据从非固定turbo写入缓冲器TWB-np到用户存储部UST的移动。将参照图1、图2和图17描述存储***1000的移动操作。
操作S161至操作S163的实施例与通过移动命令MV CMD将数据移动到用户存储部UST相关联。
在操作S161中,主机1100将包括移动命令MV CMD的命令UPIU传送到存储装置1200。命令UPIU可包括记录关于数据将被移动到的目的地(即,UST)的信息的字段,并且存储在非固定turbo写入缓冲器TWB-np的物理地址“X”处的数据可根据在字段中设置的值被移动到用户存储部UST的物理地址X1(S162)。
在操作S163中,存储装置1200将包括指示数据的移动已经完成的信息MOVE的RESPONSE UPIU传送到主机1100。
操作S171至操作S173的实施例与通过turbo读取命令将数据移动到用户存储部UST相关联。
在操作S171中,主机1100将包括读取命令RD CMD、将被移动的数据的逻辑地址和移动因子MV的命令UPIU传送到存储装置1200。移动因子MV可包括指示需要将数据移动到用户存储部UST的信息和指示数据将被移动到的目的地(即,用户存储部UST)的信息。
如在参照图16描述的以上实施例中那样,命令UPIU可包括与将从存储装置1200传送到主机1100的数据的大小相关联的字段(例如,“Expected Data Transfer Length”),并且该字段的值可以是“0”。因此,在操作S172中,存储在非固定turbo写入缓冲器TWB-np的物理地址“X”处的数据不被传送到主机1100,并且可被移动到用户存储部UST的物理地址X1。
在操作S173中,存储装置1200将包括指示非固定turbo写入缓冲器TWB-np的数据已经移动到用户存储部UST的信息的RESPONSE UPIU传送到主机1100。
操作S181至操作S183的实施例与在没有主机1100的干预的情况下通过存储装置1200的策略将数据移动到用户存储部UST相关联。特别地,在没有主机1100的干预的情况下,通过存储装置1200自身的策略将数据移动到用户存储部UST可被称为“冲刷”。
在操作S181中,存储装置1200可检测将非固定turbo写入缓冲器TWB-np的数据移动到用户存储部UST的事件是否已经发生。
在一个实施例中,当非固定turbo写入缓冲器TWB-np的容量不足时,存储装置1200可检测到指示需要将非固定turbo写入缓冲器TWB-np的数据移动到用户存储部UST的事件已经发生。例如,在存在将被新存储在非固定turbo写入缓冲器TWB-np中的数据但非固定turbo写入缓冲器TWB-np的容量不足的情况下,存储装置1200可根据数据的优先级来确定是否需要移动到用户存储部UST。数据的优先级可由存储器区属性管理器MAPM-d的策略来确定。
存储装置1200可将相对低优先级的数据从非固定turbo写入缓冲器TWB-np移动到用户存储部UST,并且存储在非固定turbo写入缓冲器TWB-np中的现有数据可被物理地擦除。例如,可从非固定turbo写入缓冲器TWB-np擦除移动的数据。可选择地,存储装置1200可将相对低优先级的数据保持在非固定turbo写入缓冲器TWB-np中。替代地,为了解决非固定turbo写入缓冲器TWB-np的容量不足,存储装置1200可将相对高优先级的数据移动到固定turbo写入缓冲器TWB-p。例如,存储装置1200可将相对高优先级的数据从非固定turbo写入缓冲器TWB-np移动到固定turbo写入缓冲器TWB-p。
在另一实施例中,当存储在非固定turbo写入缓冲器TWB-np中的数据的命中的数量小于参考值时,存储装置1200可确定指示需要将数据移动到用户存储部UST的事件是否已经发生。
当在参考时段或给定时间期间计数的命中的数量小于参考值时,存储装置1200可将相应的数据视为不被频繁访问的数据,并且可确定指示需要将数据移动到用户存储部UST的事件已经发生。根据确定的结果,存储装置1200可将相应的数据冲刷到用户存储部UST,并且存储在非固定turbo写入缓冲器TWB-np中的现有数据可被物理地擦除。
图18是详细示出根据发明构思的示例性实施例的存储***1000的示例性配置。参照图2和图18,存储***1000可包括主机1100和存储装置1200。主机1100和存储装置1200可如参照图1至图17所描述的那样操作。
主机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槽中或者可附接到包括在主机1100中的UFS槽。
图19示出发明构思的示例性实施例应用于存储***1000的示图。参照图18和图19,存储***1000可通过显示器1160提供设置屏幕。设置屏幕中的一个可向用户提供加速模式的信息。
存储***1000可通过显示器1160显示加速模式适用于的第一应用APP1至第n应用APPn的列表。此外,存储***1000可通过显示器1160显示允许用户调整第一应用APP1至第n应用APPn的加速模式的开关。
在操作S210中,用户可触摸第三应用APP3的加速模式的启用位置。存储***1000可通过触摸面板1170来感测用户的触摸,换句话说,激活第三应用APP3的方向。在操作S220中,第三应用APP3的信息或第三应用APP3的进程可被传送到I/O流管理器IOSM-h。
当接收到第三应用APP3的信息或第三应用APP3的进程时,在操作S230中,I/O流管理器IOSM-h可保留第三应用APP3或如此选择的进程的后续读取的移动操作。例如,当需要与第三应用APP3相关联的读取操作时,I/O流管理器IOSM-h可通过查询请求UPIU为针对第三应用APP3相关联的数据设置移动属性MA,并且可将移动标志作为移动信息MV包括在CMDUPIU中。
作为另一示例,当需要与第三应用APP3相关联的读取操作时,I/O流管理器IOSM-h可将移动标志和移动属性MA作为移动信息MV包括在CMD UPIU中。例如,I/O流管理器IOSM-h可将固定turbo写入缓冲器TWB-p或非固定turbo写入缓冲器TWB-np指定为移动属性MA的目的地信息DST。
当与第三应用APP3相关联的数据被移动到固定turbo写入缓冲器TWB-p或非固定turbo写入缓冲器TWB-np时,读取与第三应用APP3相关联的数据的操作被加速。因此,第三应用APP3的性能可被加速。
图20示出可应用根据发明构思的实施例的存储***的存储卡的示例性配置。参照图20,与主机2100连接的存储卡2200包括存储器控制器2210和非易失性存储器2220。存储器控制器2210与非易失性存储器2220连接。存储器控制器2210被配置为访问非易失性存储器2220。例如,存储器控制器2210被配置为控制非易失性存储器2220的读取操作、写入操作、擦除操作和后台操作。后台操作包括诸如磨损均衡操作和垃圾收集操作的操作。
存储器控制器2210包括SRAM 2212、CPU 2213、主机接口2215、纠错引擎(ECC)2217和存储器接口2219。存储器控制器2210可执行参照图1至图17描述的基于UFS的turbo写入、turbo读取和数据移动。非易失性存储器2220可利用非易失性存储器装置(诸如,NAND闪存或NOR闪存)来实现。例如,存储器控制器2210和非易失性存储器2220可集成到一个半导体装置中以构成UFS卡。存储器控制器2210可由存储器控制器1210实现,非易失性存储器2220可由非易失性存储器1220实现。
根据发明构思的至少一个实施例,非易失性存储装置可在非易失性存储器装置中包括与用户存储区不同的区(例如,turbo写入缓冲器)。可使用与用户存储部的编程方案不同的方案对所包括的区进行编程,因此,可提高存储装置的写入速度和读取速度。另外,与利用易失性存储器实现的缓冲器不同,因为该区被包括在非易失性存储器装置内,所以存储在其中的数据的可靠性可提高。
虽然已经参照发明构思的示例性实施例描述了发明构思,但是对于本领域普通技术人员将清楚的是,在不脱离发明构思的精神和范围的情况下,可对发明构思进行各种改变和修改。
Claims (20)
1.一种存储装置,包括:
非易失性存储器装置,包括第一区域和第二区域,第一区域包括被配置为存储n比特数据的存储器单元,第二区域包括被配置为存储m比特数据的存储器单元,第一区域包括第一区和第二区,第二区域包括第三区;以及
存储器控制器,被配置为执行对第一区或第二区的turbo写入操作和对第三区的正常写入操作中的一个,并且被配置为执行对第一区或第二区的turbo读取操作和对第三区的正常读取操作中的一个,
其中,n和m是正整数,并且n小于m。
2.根据权利要求1所述的存储装置,其中,当turbo写入功能被主机启用时,存储器控制器响应于来自主机的写入命令,执行turbo写入操作以将数据写入到第一区或第二区。
3.根据权利要求2所述的存储装置,其中,写入命令包括指示第一区和第二区中的一个的目的地信息,并且
其中,存储器控制器基于目的地信息将数据写入到第一区或第二区。
4.根据权利要求1所述的存储装置,其中,当turbo写入功能被主机禁用时,存储器控制器响应于来自主机的写入命令,执行正常写入操作以将数据写入到第三区。
5.根据权利要求4所述的存储装置,其中,存储器控制器响应于来自主机的移动命令或读取命令,将写入到第三区中的数据移动到第一区或第二区。
6.根据权利要求5所述的存储装置,其中,当数据的大小大于第一区的可用容量时,存储器控制器将数据到第一区域的移动处理为故障。
7.根据权利要求5所述的存储装置,其中,当数据的大小大于第一区的可用容量时,存储器控制器将数据的一部分移动到第一区,并且将数据的剩余部分移动到第二区。
8.根据权利要求5所述的存储装置,其中,当通过读取命令将数据移动到第一区或第二区时,读取命令的引起数据的移动的预期数据传送长度的值是“0”。
9.根据权利要求4所述的存储装置,其中,存储器控制器根据主机关于写入到第三区中的数据的读取请求对命中的数量进行计数,并且基于计数结果将数据移动到第一区或第二区。
10.根据权利要求1所述的存储装置,其中,存储器控制器响应于来自主机的命令将存储在第一区或第二区中的数据移动到第三区。
11.一种存储装置,包括:
非易失性存储器装置,包括用作单层单元空间的第一区域和用作多层单元空间或三层单元空间的第二区域;以及
存储器控制器,被配置为:响应于来自主机的写入命令,将从主机接收的数据写入到第一区域和第二区域中的一个,
其中,存储器控制器在从主机接收到启用turbo写入操作的请求时,优先将数据写入到第一区域。
12.根据权利要求11所述的存储装置,其中,写入命令包括指示第一区域的第一区和第二区中的一个的目的地信息,
其中,存储器控制器基于目的地信息的设置值将数据写入到第一区或第二区,并且
其中,当目的地信息的设置值不存在时,存储器控制器将数据写入到第二区域。
13.根据权利要求12所述的存储装置,其中,当数据被存储到第二区域时,存储器控制器响应于来自主机的请求或针对数据的移动事件的发生,将数据移动到第一区或第二区。
14.根据权利要求13所述的存储装置,其中,当数据的大小大于第一区的可用容量时,存储器控制器将数据的至少一部分移动到第一区或者将数据到第一区域的移动处理为故障。
15.根据权利要求13所述的存储装置,其中,存储器控制器根据主机关于数据的读取请求对命中的数量进行计数,并且基于计数结果将数据移动到第一区或第二区。
16.一种存储装置,包括:
非易失性存储器装置,包括turbo写入缓冲器和用户存储部,其中,turbo写入缓冲器包括均存储第一比特的多个存储器单元,并且用户存储部包括均存储大于第一比特的第二比特的多个存储器单元;以及
存储器控制器,被配置为:响应于从主机接收的写入命令通用闪存协议信息单元UPIU,将数据写入到turbo写入缓冲器的固定turbo写入缓冲器或非固定turbo写入缓冲器。
17.根据权利要求16所述的存储装置,其中,存储器控制器基于写入命令UPIU的目的地信息,将数据写入到固定turbo写入缓冲器和非固定turbo写入缓冲器中的一个。
18.根据权利要求16所述的存储装置,其中,当数据被写入到非固定turbo写入缓冲器时,存储器控制器响应于来自主机的请求或针对数据的移动事件的发生,将写入到非固定turbo写入缓冲器的数据移动到用户存储部。
19.根据权利要求16所述的存储装置,其中,存储器控制器响应于不存在目的地信息的写入命令UPIU,将数据写入到用户存储部。
20.根据权利要求19所述的存储装置,其中,存储器控制器响应于来自主机的移动命令UPIU或读取命令UPIU,将写入到用户储存器的数据移动到固定turbo写入缓冲器或非固定turbo写入缓冲器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0094435 | 2019-08-02 | ||
KR1020190094435A KR20210016227A (ko) | 2019-08-02 | 2019-08-02 | 빠른 쓰기 및 빠른 읽기를 지원하기 위한 복수의 버퍼 영역들을 포함하는 메모리 장치 및 이를 포함하는 스토리지 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112306393A true CN112306393A (zh) | 2021-02-02 |
Family
ID=74260355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010697176.2A Pending CN112306393A (zh) | 2019-08-02 | 2020-07-20 | 存储装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11645007B2 (zh) |
KR (1) | KR20210016227A (zh) |
CN (1) | CN112306393A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210055339A (ko) * | 2019-11-07 | 2021-05-17 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
US11960766B2 (en) * | 2021-12-06 | 2024-04-16 | Western Digital Technologies, Inc. | Data storage device and method for accidental delete protection |
US20230342060A1 (en) * | 2022-04-26 | 2023-10-26 | Micron Technology, Inc. | Techniques for data transfer operations |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6112265A (en) * | 1997-04-07 | 2000-08-29 | Intel Corportion | System for issuing a command to a memory having a reorder module for priority commands and an arbiter tracking address of recently issued command |
KR100809320B1 (ko) * | 2006-09-27 | 2008-03-05 | 삼성전자주식회사 | 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑정보 관리 장치 및 방법 |
US20080126680A1 (en) * | 2006-11-03 | 2008-05-29 | Yang-Sup Lee | Non-volatile memory system storing data in single-level cell or multi-level cell according to data characteristics |
CN101266835A (zh) * | 2007-01-17 | 2008-09-17 | 三星电子株式会社 | 包含多用户可选编程模式的非易失存储设备及相关的方法 |
US20100153631A1 (en) * | 2007-08-08 | 2010-06-17 | Kui-Yon Moon | Method and data storage device for processing commands |
US8131931B1 (en) * | 2008-10-22 | 2012-03-06 | Nvidia Corporation | Configurable cache occupancy policy |
US20130173844A1 (en) * | 2011-12-29 | 2013-07-04 | Jian Chen | SLC-MLC Wear Balancing |
US20130275652A1 (en) * | 2012-04-13 | 2013-10-17 | Lsi Corporation | Methods and structure for transferring additional parameters through a communication interface with limited parameter passing features |
US20140372678A1 (en) * | 2013-06-12 | 2014-12-18 | Samsung Electronics Co., Ltd. | User device including a nonvolatile memory device and a data write method thereof |
US20170092366A1 (en) * | 2015-09-24 | 2017-03-30 | Samsung Electronics Co., Ltd. | Operating method of nonvolatile memory system |
US20170249255A1 (en) * | 2016-02-29 | 2017-08-31 | International Business Machines Corporation | Dynamic tier remapping of data stored in a hybrid storage system |
US20190034330A1 (en) * | 2017-12-01 | 2019-01-31 | Intel Corporation | Mass storage device with dynamic single level cell (slc) buffer specific program and/or erase settings |
US20190095116A1 (en) * | 2017-09-22 | 2019-03-28 | Toshiba Memory Corporation | Memory system |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06314241A (ja) | 1993-03-04 | 1994-11-08 | Sharp Corp | 高速半導体記憶装置及び高速連想記憶装置 |
JPH09223068A (ja) | 1996-02-15 | 1997-08-26 | Toshiba Microelectron Corp | キャッシュメモリ |
JP3735579B2 (ja) | 2002-02-26 | 2006-01-18 | 株式会社東芝 | ディスク記憶装置及びデータ記録再生方法 |
KR100532325B1 (ko) | 2002-11-23 | 2005-11-29 | 삼성전자주식회사 | 터보 복호기의 입력 제어 방법 및 장치 |
US20050251617A1 (en) | 2004-05-07 | 2005-11-10 | Sinclair Alan W | Hybrid non-volatile memory system |
US8417928B2 (en) | 2008-09-24 | 2013-04-09 | Marvell International Ltd. | Turbo boot systems and methods for subsequent booting from a captured data stored in a non-volatile semiconductor memory |
US8259498B2 (en) | 2008-12-08 | 2012-09-04 | Infinite Memory Ltd. | Continuous address space in non-volatile-memories (NVM) using efficient management methods for array deficiencies |
US8719486B2 (en) | 2009-06-24 | 2014-05-06 | Micron Technology, Inc. | Pinning content in nonvolatile memory |
US10895991B2 (en) * | 2018-11-14 | 2021-01-19 | Western Digital Technologies, Inc. | Solid state device with improved sustained data writing speed |
EP3771983B1 (en) | 2019-08-01 | 2024-05-01 | Samsung Electronics Co., Ltd. | Storage device and operating method of storage device |
-
2019
- 2019-08-02 KR KR1020190094435A patent/KR20210016227A/ko active Search and Examination
-
2020
- 2020-06-17 US US16/903,700 patent/US11645007B2/en active Active
- 2020-07-20 CN CN202010697176.2A patent/CN112306393A/zh active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6112265A (en) * | 1997-04-07 | 2000-08-29 | Intel Corportion | System for issuing a command to a memory having a reorder module for priority commands and an arbiter tracking address of recently issued command |
KR100809320B1 (ko) * | 2006-09-27 | 2008-03-05 | 삼성전자주식회사 | 이종 셀 타입을 지원하는 비휘발성 메모리를 위한 맵핑정보 관리 장치 및 방법 |
US20080126680A1 (en) * | 2006-11-03 | 2008-05-29 | Yang-Sup Lee | Non-volatile memory system storing data in single-level cell or multi-level cell according to data characteristics |
CN101266835A (zh) * | 2007-01-17 | 2008-09-17 | 三星电子株式会社 | 包含多用户可选编程模式的非易失存储设备及相关的方法 |
US20100153631A1 (en) * | 2007-08-08 | 2010-06-17 | Kui-Yon Moon | Method and data storage device for processing commands |
US8131931B1 (en) * | 2008-10-22 | 2012-03-06 | Nvidia Corporation | Configurable cache occupancy policy |
US20130173844A1 (en) * | 2011-12-29 | 2013-07-04 | Jian Chen | SLC-MLC Wear Balancing |
US20130275652A1 (en) * | 2012-04-13 | 2013-10-17 | Lsi Corporation | Methods and structure for transferring additional parameters through a communication interface with limited parameter passing features |
US20140372678A1 (en) * | 2013-06-12 | 2014-12-18 | Samsung Electronics Co., Ltd. | User device including a nonvolatile memory device and a data write method thereof |
US20170092366A1 (en) * | 2015-09-24 | 2017-03-30 | Samsung Electronics Co., Ltd. | Operating method of nonvolatile memory system |
US20170249255A1 (en) * | 2016-02-29 | 2017-08-31 | International Business Machines Corporation | Dynamic tier remapping of data stored in a hybrid storage system |
US20190095116A1 (en) * | 2017-09-22 | 2019-03-28 | Toshiba Memory Corporation | Memory system |
US20190034330A1 (en) * | 2017-12-01 | 2019-01-31 | Intel Corporation | Mass storage device with dynamic single level cell (slc) buffer specific program and/or erase settings |
Also Published As
Publication number | Publication date |
---|---|
KR20210016227A (ko) | 2021-02-15 |
US20210034298A1 (en) | 2021-02-04 |
US11645007B2 (en) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11249911B2 (en) | Storage device, memory system, and operating method for managing host-resident L2P map cache | |
EP3771976B1 (en) | Storage device | |
US11507311B2 (en) | Storage device for accelerating write speed and read speed | |
US11645007B2 (en) | Memory device including plurality of buffer areas for supporting fast write and fast read and storage device including the same | |
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 | |
US11556464B2 (en) | Storage device and operating method thereof | |
US11573732B2 (en) | Storage device, memory system comprising the same, and operation method thereof | |
EP3772063A1 (en) | Memory device including plurality of buffer areas for supporting fast write and fast read and storage device including the same | |
EP3771984A1 (en) | Storage device and operating method thereof | |
KR102687354B1 (ko) | 스토리지 장치 | |
EP3771982B1 (en) | Storage device | |
EP3779704B1 (en) | Storage device, memory system comprising the same, and operating method thereof | |
US20230147477A1 (en) | Storage device, memory system comprising the same, and operation method thereof |
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 |