CN111338564A - 包括数据存储设备的系统和控制丢弃操作的方法 - Google Patents
包括数据存储设备的系统和控制丢弃操作的方法 Download PDFInfo
- Publication number
- CN111338564A CN111338564A CN201911305404.0A CN201911305404A CN111338564A CN 111338564 A CN111338564 A CN 111338564A CN 201911305404 A CN201911305404 A CN 201911305404A CN 111338564 A CN111338564 A CN 111338564A
- Authority
- CN
- China
- Prior art keywords
- discard
- bitmap
- shared
- storage device
- bit
- 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
- 238000013500 data storage Methods 0.000 title claims abstract description 113
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000001360 synchronised effect Effects 0.000 claims description 18
- 238000013507 mapping Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 101100449814 Arabidopsis thaliana GTL1 gene Proteins 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 101100058970 Arabidopsis thaliana CALS11 gene Proteins 0.000 description 2
- 101100049574 Human herpesvirus 6A (strain Uganda-1102) U5 gene Proteins 0.000 description 2
- 101100341076 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) IPK1 gene Proteins 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 229920000642 polymer Polymers 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- OOPXYEYPPHJHSE-UHFFFAOYSA-M sodium;2,2-dimethylbutanoate Chemical compound [Na+].CCC(C)(C)C([O-])=O OOPXYEYPPHJHSE-UHFFFAOYSA-M 0.000 description 2
- 101150064834 ssl1 gene Proteins 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 101100058961 Arabidopsis thaliana CALS2 gene Proteins 0.000 description 1
- 101000655384 Mus musculus Testis-expressed protein 9 Proteins 0.000 description 1
- 101100482995 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) gsl-3 gene Proteins 0.000 description 1
- 101100287040 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ARG82 gene Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 101150062870 ssl3 gene Proteins 0.000 description 1
- 238000013519 translation Methods 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/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/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
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- 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/064—Management of blocks
-
- 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
-
- 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/26—Sensing or reading circuits; Data output circuits
-
- 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
Abstract
在包括主机设备和数据存储设备的系统中执行控制丢弃操作的方法。所述方法包括:提供由所述主机设备和所述数据存储设备共同访问的共享丢弃位图。所述共享丢弃位图包括与所述数据存储设备中的非易失性存储器设备的目标扇区一一对应的丢弃比特。所述方法还包括:设置存储在所述共享丢弃位图中的所述丢弃比特的比特值,所述比特值指示存储在所述目标扇区中的每一个目标扇区中的数据是否是可丢弃的。然后,可以基于存储在所述共享丢弃位图中的所述丢弃比特的所述比特值,针对所述目标扇区执行异步丢弃操作。
Description
相关申请的交叉引用
本申请要求于2018年12月19日向韩国知识产权局递交的韩国专利申请No.10-2018-0165161的优先权,其公开内容通过引用整体并入本文。
技术领域
示例实施例总体上涉及半导体集成电路,更具体地,涉及包括数据存储设备的系统以及在该系统中控制丢弃操作的方法。
背景技术
可以使用不同类型的写入操作来将数据存储在存储器设备中。示例包括随机写入操作和顺序写入操作。在非易失性存储器设备中,在特定情况下可以将随机写入操作的执行提升到顺序写入操作的执行。此外,可以执行特定的管理功能以确保正确的操作。
管理功能可以针对不同的系统发生变化。在日志结构文件系统(已被用作许多操作系统(OS)环境的基本文件系统)中,可以在随机写入操作之间执行丢弃操作。丢弃操作会降低系统性能,尤其是对于包括非易失性存储器的存储设备。
为了视图防止性能下降,主机设备可以保留丢弃操作并指示在进入空闲状态之前执行收集的丢弃操作。然而,在一些情况下,要丢弃的数据可能包括有效数据。此外,可能执行低效的无用数据(garbage)收集操作,这进一步降低了数据存储设备的性能和寿命。可以执行同步丢弃操作以防止低效的垃圾收集操作。然而,为了实现这种方法,不得不长时间保持空闲状态(例如,多达300秒)以完成同步丢弃操作。保持空闲状态会降低效率。
发明内容
根据示例实施例,在包括主机设备和数据存储设备的系统中执行控制丢弃操作的方法。所述方法包括:提供由主机设备和数据存储设备共同访问的共享丢弃位图。共享丢弃位图包括与数据存储设备中的非易失性存储器设备的多个扇区中的目标扇区一一对应的丢弃比特。所述方法还包括:由主机设备设置存储在共享丢弃位图中的丢弃比特的比特值,其中比特值被设置为指示存储在目标扇区中的每一个目标扇区中的数据是否是可丢弃的。该方法还包括:由所述数据存储设备基于存储在共享丢弃位图中的丢弃比特的比特值,针对目标扇区执行异步丢弃操作。
根据示例实施例,在包括主机设备和数据存储设备的系统中执行控制丢弃操作的方法。所述方法包括:设置数据存储设备中包括的非易失性存储器设备的多个扇区中的目标扇区的地址范围,以及设置由主机设备和数据存储设备共同访问的共享丢弃位图的地址范围。共享丢弃位图包括与目标扇区一一对应的丢弃比特。所述方法还包括:由主机设备没置存储在共享丢弃位图中的丢弃比特的比特值,其中比特值指示存储在目标扇区中的相应扇区中的数据是否是可丢弃的。另外,所述方法包括:由数据存储设备基于存储在共享丢弃位图中的丢弃比特的比特值,针对目标扇区执行异步丢弃操作。
根据示例实施例,系统包括:共享丢弃位图,所述共享丢弃位图包括与非易失性存储器设备的多个扇区中的目标扇区一一对应的丢弃比特;主机设备,所述主机设备被配置为设置存储在共享丢弃位图中的丢弃比特的比特值,其中比特值被设置为指示存储在目标扇区中的每一个目标扇区中的数据是否是可丢弃的;以及数据存储设备,所述数据存储设备被配置为针对目标扇区执行异步丢弃操作。基于存储在共享丢弃位图中的丢弃比特的比特值来执行异步丢弃操作。此外,数据存储设备包括非易失性存储器设备。
附图说明
根据结合附图的以下详细描述,将更清楚地理解本公开的示例实施例。
图1示出了控制丢弃操作的方法的实施例。
图2示出了系统的实施例。
图3示出了共享丢弃位图的实施例。
图4示出了系统的另一实施例。
图5示出了图4的系统的地址映射的示例。
图6示出了控制丢弃操作的方法的实施例。
图7示出了控制丢弃操作的方法的丢弃请求的实施例。
图8示出了图7的丢弃请求的示例过程。
图9示出了异步丢弃操作的实施例。
图10示出了异步丢弃操作的示例过程。
图11示出了同步丢弃操作的实施例。
图12示出了同步丢弃操作的示例过程。
图13示出了设置操作的实施例。
图14和图15示出了设置目标扇区的地址范围的实施例。
图16、图17和图18示出了没置共享丢弃位图的地址范围的实施例。
图19示出了设置模式的实施例。
图20和图21示出了系统的实施例。
图22示出了图20和图21的系统的地址映射的示例。
图23示出了包括数据存储设备的系统的实施例。
图24示出了非易失性存储器设备的实施例。
图25示出了移动设备的实施例。
具体实施方式
下面将参考附图更全面地描述各种示例实施例,在附图中示出了一些示例实施例。在附图中,相似的附图标记始终表示相似的元件。可以省略重复的描述。
图1示出了在包括数据存储设备的系统中控制丢弃操作的方法的实施例。参考图1,所述方法包括提供共享丢弃位图(S100)。共享丢弃位图可以由主机设备和数据存储设备共同访问。共享丢弃位图可以包括与数据存储设备中的非易失性存储器设备的多个扇区中的目标扇区一一对应的丢弃比特。在一个实施例中,“扇区”可以指示存储器单元集或与存储器单元集相对应的地址范围。扇区的大小可以与充当擦除操作的单元的存储器块的大小无关。扇区的大小可以与存储器块的大小相等或不同。以下将参考图3描述共享丢弃位图的丢弃比特的示例实施例。
存储在共享丢弃位图中的丢弃比特的比特值可以由主机设备来设置(S200)。丢弃比特的比特值可以指示存储在目标扇区中的相应扇区中的数据是否是可丢弃的。每一个丢弃比特可以具有第一值或第二值。当丢弃比特具有第一值时,这可以指示相应的目标扇区是不可丢弃的。当丢弃比特具有第二值时,这可以指示相应的目标扇区是可丢弃的。例如,第一值可以是“0”,第二值可以是“1”。下面将参考图7和图8描述由主机设备设置丢弃比特的比特值的示例实施例。
可以由数据存储设备基于存储在共享丢弃位图中的丢弃比特的比特值,针对目标扇区执行异步丢弃操作(S300)。在一个实施例中,“异步丢弃操作”可以指示由数据存储设备基于共享丢弃位图执行的丢弃操作,而不管来自主机设备的信息(例如,命令)如何。如以下将描述的,可以在主机设备的空闲状态期间执行异步丢弃操作。下面将参考图9和图10描述异步丢弃操作的示例实施例。
可以针对目标扇区执行同步丢弃操作(S400)。例如,可以基于传送到数据存储设备的丢弃命令来执行同步丢弃操作。可以由主机设备基于共享丢弃位图生成丢弃命令。下面将参考图11和图12描述同步丢弃操作的示例实施例。
图2示出了系统1000的实施例,系统1000可以包括主机设备100、数据存储设备200和共享丢弃位图300。在主机设备100与数据存储设备200之间示出了共享丢弃位图。根据示例实施例,可以将共享丢弃位图300包括在数据存储设备200或主机设备100中。
共享丢弃位图300包括丢弃比特,丢弃比特与数据存储设备200中的非易失性存储器设备NVM的多个扇区中的目标扇区一一对应。共享丢弃位图300由主机设备100和数据存储设备200共享。例如,共享丢弃位图300可以由主机设备100和数据存储设备200共同且独立地访问。主机设备100可以通过读取作为读取数据RDH的比特值并提供作为写入数据WDH的比特值,来设置或改变存储在共享丢弃位图300中的丢弃比特的比特值。另外,数据存储设备200可以通过读取作为读取数据RDS的比特值并提供作为写入数据WDS的比特值,来设置或改变存储在共享丢弃位图300中的丢弃比特的比特值。
主机设备100可以设置存储在共享丢弃位图300中的丢弃比特的比特值,以指示存储在目标扇区中的每一个目标扇区中的数据是否是可丢弃的,例如主机设备100可以执行图1中的操作S200。
数据存储设备200可以基于丢弃命令DSC针对目标扇区执行异步丢弃操作,其中丢弃命令DSC是由主机设备100基于共享丢弃位图300生成的并被传送到数据存储设备200。因此,主机设备100和数据存储设备200可以执行图1中的操作S400。
因此,根据示例实施例的系统1000和控制丢弃操作的方法可以通过使用由主机设备100和数据存储设备200共享的共享丢弃位图300执行异步丢弃操作和/或同步丢弃操作,来提高系统1000的操作速度、延长系统1000的寿命并增强系统1000的性能。
图3示出了共享丢弃位图的实施例,所述共享位图例如可以被包括在图2的系统中。参考图3,共享丢弃位图SDBM可以包括多个丢弃比特B0~Bn-1,并且异步丢弃区域ADR可以包括多个目标扇区TSECO~TSECn-1。异步丢弃区域ADR可以对应于非易失性存储器设备的存储器区域中的多个扇区的一部分或全部。丢弃比特B0~Bn-1中的每一个可以是一个二进制数字,并且目标扇区TSECO~TSECn-1中的每一个可以具有单位大小SZU。
如图3中所示,丢弃比特B0~Bn-1的数量N可以等于目标扇区TSECO~TSECn-1的数量N。丢弃比特B0~Bn-1可以对应于目标扇区TSECO~TSECn-1中的相应扇区。例如,第一丢弃比特B0可以对应于第一目标扇区TSECO,第二丢弃比特B1可以对应于第二目标扇区TSEC1,依此类推,第N个丢弃比特Bn-1对应于第N目标扇区TSECn-1。
丢弃比特B0~Bn-1的值可以指示相应的目标扇区是否是可丢弃的。例如,当丢弃比特具有第一值(例如,“0”)时,这可以指示相应的目标扇区是不可丢弃的。当丢弃比特具有第二值(例如,“1”)时,这可以指示相应的目标扇区是可丢弃的。
在一些示例实施例中,异步丢弃范围ADR的地址范围可以通过目标扇区TSECO~TSECn-1的起始地址SADDA和异步丢弃范围ADR的大小SZA来设置。大小SZA可以对应于乘积SZU*N,其中SZU指示每一个目标扇区的单位大小,N指示目标扇区TSECO~TSECn-1的数量。因此,异步丢弃范围ADR的地址范围可以通过异步丢弃区域ADR中的目标扇区TSECO~TSECn-1的起始地址SADDA和数量N来设置。
类似地,共享丢弃位图SDBM的地址范围可以通过共享丢弃位图SDBM的起始地址SADDM和共享丢弃位图SDBM的大小SZM来设置。每一个丢弃比特可以是一比特,并且共享丢弃位图SDBM的地址范围可以通过共享丢弃位图SDBM中的丢弃比特B0~Bn-1的起始地址SADDM和数量N来设置。
图4示出了系统1001的实施例,系统1001包括主机设备101和存储设备201。主机设备101可以包括主机控制器HCON 111,主机控制器HCON 111例如可以是中央处理单元(CPU)。存储设备201可以包括非易失性存储器设备NVM 221和存储控制器SCON 241。
在一些示例实施例中,如图4中所示,上述共享丢弃位图SDBM可以被存储在非易失性存储器设备221中。在这种情况下,主机设备101可以通过主机设备101与数据存储设备201之间的块可访问接口410来访问共享丢弃位图SDBM。
主机控制器111可以控制对非易失性存储器设备221的访问和主机设备101的整体操作。在一个实施例中,主机控制器111可以使用例如可以参考图5描述的虚拟地址空间来访问非易失性存储器设备221和共享丢弃位图SDMB。主机控制器111可以生成以块为单位访问非易失性存储器设备221的块访问命令。
存储控制器241可以通过块可访问接口410从主机设备101接收块访问命令。存储控制器241可以基于块访问命令,以块为单位执行对非易失性存储器设备221的访问。可以用硬件(例如,总线系统)、软件(例如,驱动程序)或硬件和软件的组合中来实现块可访问接口410。
在一些示例实施例中,可以通过块可访问接口410将数据存储设备201的非易失性存储器设备221连接到主机设备101的主机控制器111。块可访问接口410可以是例如串行高级技术附件(SATA)总线、非易失性存储器快速(NVMe)总线或串行附接SCSI(SAS)总线。
非易失性存储器设备221可以是可以由主机设备101通过块可访问接口410访问的任意存储器设备。例如,非易失性存储器设备221可以被实现为例如电可擦除可编程只读存储器(EEPROM)、闪存、相变随机存取存储器(PRAM)、电阻随机存取存储器(RRAM)、纳米浮栅存储器(NFGM)、聚合物随机存取存储器(PoRAM)、磁随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)等。
图5示出了图4的系统的地址映射的示例。参考图5,主机设备101的虚拟地址空间VAS可以包括共享丢弃位图SDBM和异步丢弃区域ADR。
将虚拟地址空间VAS的共享丢弃位图SDBM和异步丢弃区域ADR映射到非易失性存储器设备NVM的共享丢弃位图SDBM和异步丢弃区域ADR。异步丢弃区域ADR可以是非易失性存储器设备NVM的一部分或整个非易失性存储器设备NVM。例如,异步丢弃区域ADR的大小SZA可以小于或等于非易失性存储器设备NVM的大小SZN。共享丢弃位图可以包括在非易失性存储器设备NVM中,共享丢弃位图具有与异步丢弃区域ADR的大小SZA成比例的大小SZM。主机设备101可以基于虚拟地址空间VAS与非易失性存储器设备NVM之间的映射关系来访问非易失性存储器设备NVM的相应区域。
图6示出了控制丢弃操作的方法的实施例,可以将所述方法应用于由主机设备生成主机请求且由数据存储设备根据主机请求执行处理序列的情况。例如,主机设备可以在主机设备的活动状态期间顺序地生成第一异步丢弃请求ADREQ1和第二异步丢弃请求ADREQ2。为了便于说明,在图6中省略了对正常操作(例如,读取操作、写入操作、擦除操作等)的请求。
第一异步丢弃请求ADREQ1和第二异步丢弃请求ADREQ2中的每一个可以包括针对共享丢弃位图SDBM的读取命令RD和写入命令WR。读取命令RD和写入命令WR可以分别包括起始地址AX1和AX2以及访问大小SX1和SX2,其指示共享丢弃位图SDBM的地址范围。可以通过上述块可访问接口连接主机设备和数据存储设备。访问大小SX1和SX2可以是与页大小无关的任意访问单位。页大小可以与非易失性存储器设备中的读取操作和写入操作的单位大小相关。数据存储设备可以针对共享丢弃位图SDBM的相应地址范围,基于读取命令RD和写入命令WR来执行读取操作RO和写入操作WO。
当主机设备进入空闲状态时,数据存储设备可以执行异步丢弃操作ADO。可以基于共享丢弃位图SDBM来执行异步丢弃操作ADO,而不管在主机设备的空闲状态期间来自主机设备的信息(例如,命令)如何。异步丢弃操作ADO可以包括数据存储设备的读取操作RO、以及基于共享丢弃位图SDBM中的丢弃比特的比特值的丢弃操作DE。每一个丢弃操作可以包括擦除操作以删除目标扇区中的数据。
主机设备和数据存储设备还可以执行同步丢弃操作SDO。同步丢弃操作SDO可以包括生成针对共享丢弃位图SDBM的读取命令RD和基于读取的丢弃比特的比特值的丢弃命令DSC。丢弃命令DSC可以包括起始地址AS1和访问大小SS1,其指示针对其执行丢弃操作的目标扇区的地址范围。
将参照图7至图12描述异步丢弃请求ADREQ1、异步丢弃操作ADO和同步丢弃操作SDO的示例实施例。
图7示出了根据示例实施例的控制丢弃操作的方法的丢弃请求的示例实施例。图8示出了图7的丢弃请求的示例过程。
参考图7和图8,为了设置共享丢弃位图SDBM中的丢弃比特的比特值,(由主机设备)从共享丢弃位图SDBM读取第一读取数据(S410)。通过改变与目标扇区中的可丢弃扇区相对应的丢弃比特,(由主机设备)根据第一读取数据生成第一写入数据(S420)。丢弃比特可以例如从第一值(例如,“0”)改变到第二值(例如,“1”)。(由主机设备)在共享丢弃位图中存储第一写入数据(S430)。
图8示出了在执行第一异步丢弃请求ADREQ1之前的时间点T0以及在第一异步丢弃请求ADREQ1完成之后的时间点T1,可以被存储在共享丢弃位图SDBM中的示例比特值。还示出了第一读取数据RDH和第一写入数据WDH。在生成异步请求之前或在针对可丢弃的目标扇区完成丢弃操作之后,所有丢弃比特可以被设置或改变为第一值,即“0”。
用于访问共享丢弃位图SDBM的地址范围可以通过访问起始地址SADDM+K和访问大小L表示。如上所述,访问大小L可以对应于例如页大小,但是在另一实施例中可以对应于不同的大小。
因此,如图8中所示,根据第一异步请求ADREQ1,可以将与五个可丢弃的目标扇区相对应的五个丢弃比特的比特值从第一值“0”改变为第二值(例如,“1”)。
图9示出了控制丢弃操作的方法的异步丢弃操作的示例实施例。图10示出了图9的异步丢弃操作的示例过程。
参考图9和图10,为了针对目标扇区执行异步丢弃操作ADO,(由数据存储设备)从共享丢弃位图读取第二读取数据(S510)。由数据存储设备搜索第二读取数据中的具有第二值(例如,“1”)的丢弃比特(S520)。在一些示例实施例中,可以从共享丢弃位图SDBM的起始地址SADDM开始扫描丢弃比特以搜索第二值。可以(由数据存储设备)针对与具有第二值的丢弃比特相对应的目标扇区执行丢弃操作(S530)。通过改变与针对其完成了丢弃操作的目标扇区相对应的丢弃比特,(由数据存储设备)根据第二读取数据生成第二写入数据(S540)。可以将丢弃比特例如从第二值(例如,“1”)改变为第一值(例如,“0”)。(由数据存储设备)在共享丢弃位图SDBM中存储第二写入数据(S550)。
图10示出了在执行异步丢弃操作ADO之前的时间点T2以及在异步丢弃操作ADO完成之后的时间点T3存储在共享丢弃位图SDBM中的比特值的示例。还示出了第二读取数据RDS和第二写入数据WDS。例如,在执行异步丢弃操作ADO之前的时间点T2,共享丢弃位图SDBM可以存储具有通过图6的第一异步丢弃请求ADREQ1和第二异步丢弃请求ADREQ2改变的比特值的丢弃比特。如上所述,用于访问共享丢弃位图SDBM的地址范围可以通过访问起始地址SADDM+K和访问大小L表示。
可以在主机设备处于空闲状态的同时执行异步丢弃操作ADO。如果主机设备在针对具有第二值“1”的所有丢弃比特完成丢弃操作之前改变到活动状态,则数据存储设备可以停止异步丢弃操作APO。图10示出了已针对具有第二值的七个丢弃比特中的三个丢弃比特执行异步丢弃操作ADO的示例。
图11示出了控制丢弃操作的方法的同步丢弃操作的示例实施例。图12示出了图11的同步丢弃操作的示例过程。
参考图11和图12,为了执行同步丢弃操作SDO,(由主机设备)从共享丢弃位图读取第三读取数据(S610)。主机设备搜索第三读取数据中的具有第二值的丢弃比特(S620)。(由主机设备)将具有第二值的丢弃比特的地址转换为与具有第二值的丢弃比特相对应的目标扇区的地址(S630)。(由主机设备)基于与具有第二值的丢弃比特相对应的目标扇区的地址生成丢弃命令。将丢弃命令传送到数据存储设备(S640)。
(由数据存储设备)基于丢弃命令针对与具有第二值的丢弃比特相对应的目标扇区执行丢弃操作(S650)。通过改变与针对其完成了丢弃操作的目标扇区相对应的丢弃比特,(由主机设备或数据存储设备)根据第三读取数据生成第三写入数据(S660)。可以将丢弃比特从第二值(例如,“1”)改变为第一值(例如,“0”)。由主机设备或数据存储设备将第三写入数据存储在共享丢弃位图中(S670)。
通过使用共享丢弃位图SDBM的起始地址SADDM、目标扇区或异步丢弃区域ADR的起始地址SADDA、和目标扇区的单位大小SZU的计算,可以将具有第二值的丢弃比特的地址转换为相应的目标扇区的地址。例如,当丢弃比特的地址是SADDM+i时,相应的目标扇区的地址可以被计算为SADDA+i*SZU。
图12示出了在执行同步丢弃操作SDO之前的时间点T4以及在同步丢弃操作SDO完成之后的时间点T5存储在共享丢弃位图SDBM中的比特值的示例。还示出了第三读取数据RDH和第三写入数据WDH。例如,主机设备可以传送丢弃命令DSC,丢弃命令DSC指示与具有第二值“1”的两个丢弃比特相对应的目标扇区的地址范围。图12示出了已针对具有第二值的四个丢弃比特中的两个丢弃比特执行了同步丢弃操作SDO的示例。
图13示出了控制丢弃操作的方法的设置操作的示例实施例。参考图13,设置目标扇区的地址范围(S710),并且设置共享丢弃位图SDBM的地址范围(S720)。当确定需要异步丢弃操作ADO时,启用异步丢弃模式(S730)。
可以基于从主机设备到数据存储设备的异步丢弃区域设置命令来设置目标扇区或异步丢弃区域ADR的地址范围。异步丢弃区域设置命令可以包括目标扇区的起始地址和目标扇区的数量或计数。
可以基于从主机设备到数据存储设备的位图设置命令来设置共享丢弃位图SDBM的地址范围。位图设置命令可以包括共享丢弃位图SDBM的起始地址和与每一个丢弃比特相对应的每一个目标扇区的单位大小。
可以基于从主机设备到数据存储设备的模式设置命令来启用或禁用执行异步丢弃操作的异步丢弃模式。
在一些示例实施例中,可以根据由非易失性存储器快速(NVMe)标准规定的命令格式来生成异步丢弃区域设置命令、位图设置命令和模式设置命令。在这种情况下,可以使用NVMe标准的命令格式中的预留值来定义异步丢弃区域设置命令、位图设置命令和模式设置命令。可以将通过命令提供的信息存储在存储器(例如,寄存器)中。可以使用存储的值来控制基于共享丢弃位图SDBM的异步丢弃操作和同步丢弃操作。
图14和图15示出了在控制丢弃操作的方法中设置目标扇区的地址范围的示例实施例。图14示出了目标扇区的起始地址ASYNC_DISCARD_SECTOR_ADDR[A1_3:A1_0]。图15示出了目标扇区的数量ASYNC_DISCARD_SECTOR_CNT[A2_3:A2_0]。目标扇区的起始地址ASYNC_DISCARD_SECTOR_ADDR[A1_3:A1_0]的大小可以是存储在四个字段EXT_CSD[A1_0]~EXT_CSD[A1_3]中的四个字节。目标扇区的数量ASYNC_DISCARD_SECTOR_CNT[A2_3:A2_0]的大小可以是存储在四个字段EXT_CSD[A2_0]~EXT_CSD[A2_3]中的四个字节。A1_0、A1_1、A1_2、A1_3、A2_0、A2_1、A2_2、A2_3全部都指示字段的位置。R/W/E指示主机设备可以读取、写入和擦除相应的信息。
图16、图17和图18示出了在控制丢弃操作的方法中设置共享丢弃位图的地址范围的示例实施例。图16示出了共享丢弃位图SDBM的起始地址SHARED_BITMAP_SECTOR_ADDR[S1_3:S1_0]。图17示出了目标扇区的单位大小SHARED_BITMAP_UNIT_SIZE[S3]。图18示出了共享丢弃位图SDBM的比特数量SHARED_BITMAP_SECTOR_CNT[S2_3:S2_0]。共享丢弃位图SDBM的起始地址SHARED_BITMAP_SECTOR_ADDR[S1_3:S1_0]可以是存储在四个字段SHARED_BITMAP_SECTOR_ADDR[S1_0]~SHARED_BITMAP_SECTOR_ADDR[S1_3]中的四个字节。目标扇区的单位大小SHARED_BITMAP_UNIT_SIZE[S3]的大小可以是一个字节。共享丢弃位图SDBM的比特数量SHARED_BITMAP_SECTOR_CNT[S2_3:S2_0]的大小可以是存储在四个字段SHARED_BITMAP_SECTOR_CNT[S2_0]~SHARED_BITMAP_SECTOR_CNT[S2_3]中的四个字节。S1_0、S1_1、S1_2、S1_3、S2_0、S2_1、S2_2、S2_3、S3全部指示字段的位置。R/W/E指示主机设备可以读取、写入和擦除相应的信息。在一个实施例中,RONLY指示主机设备可以读取相应的信息但是禁止写入和擦除操作。
只可以将与2的幂相对应的值存储在目标扇区的单位大小SHARED_BITMAP_UNIT_SIZE[S3]中。例如,可以将“9”存储在字段中,并且可以将真实的单位大小计算为4KB*29=2MB,其中4KB是文件系统的文件生成的最小大小,其可以根据文件系统而变化。如上所述,可以基于目标扇区的数量和每一个目标扇区的单位大小来计算共享丢弃位图SDBM的丢弃比特的比特数量。
图19示出了在控制丢弃操作的方法中设置模式的示例实施例。参考图19,示出了指示异步丢弃模式的启用或禁用的控制值ASYNC_DISCARD_CTRL[C1]。控制值ASYNC_DISCARD_CTRL[C1]可以是包括8个比特BTO~BT7的一个字节。例如,当最低有效位BTO的值ASYNC_DISCARD_ENABLE被设置为第一值(例如,“0”)时,可以启用异步丢弃模式。相反,当值ASYNC_DISCARD_ENABLE被设置为第二值(例如,“1”)时,可以禁用异步丢弃模式。可以预留其他比特BT1~BT7以用于其他操作模式和/或操作条件。R/W/E指示主机设备可以读取、写入和擦除相应的信息。
图20示出了系统1002的实施例,系统1002包括主机设备102和存储设备202。主机设备102可以包括主机控制器HCON 112,例如中央处理单元(CPU)。存储设备202可以包括随机存取存储器设备RAM212、非易失性存储器设备NVM 222、随机存储器控制器RMCON 232和存储控制器SCON 242。
在一些示例实施例中,如图20中所示,可以将上述共享丢弃位图SDBM存储在随机存取存储器设备212中。在这种情况下,主机设备101可以通过主机设备与数据存储设备之间的存储器映射输入-输出(MMIO)接口320访问共享丢弃位图SDBM。
主机控制器112可以控制对非易失性存储器设备222的访问和主机设备102的整体操作。主机控制器112可以使用虚拟地址空间来防问随机存取存储器设备212、非易失性存储器设备221和共享丢弃位图SDMB,以下参考图22来描述其示例。主机控制器112可以生成以块为单位访问非易失性存储器设备222的块访问命令和以字节为单位访问随机存取存储器设备212的字节存取命令。
随机存储器控制器232可以通过MMIO接口320从主机设备102接收字节访问命令。主机设备102可以基于字节访问命令以字节为单位执行对随机存取存储器设备212的访问。
存储控制器241可以通过接口420从主机设备102接收块访问命令。存储控制器241可以基于块访问命令以块为单位访问非易失性存储器设备222。
可以用硬件(例如,总线系统)、软件(例如,驱动程序)或硬件和软件的组合来实现MMIO接口320和块可访问接口420中的每一个。
在一些示例实施例中,可以通过字节可访问接口320将数据存储设备202的随机存取存储器设备212连接到主机设备102的主机控制器112,字节可访问接口320可以包括例如外围组件互连快速(PCIe)总线。
在一些示例实施例中,可以通过块可访问接口420将数据存储设备202的非易失性存储器设备222连接到主机设备102的主机控制器112,块可访问接口420可以包括例如串行高级技术附件(SATA)总线、非易失性存储器快速(NVMe)总线或串行附接SCSI(SAS)总线。
随机存取存储器设备212可以是由主机设备102通过MMIO接口320访问的任意易失性存储器设备。例如,随机存取存储器设备212可以实现为例如具有相对高操作速度的动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)。
非易失性存储器设备222可以是由主机设备102通过块可访问接口420访问的任意存储器设备。例如,可以例如通过以下各项来实现非易失性存储器设备222:电可擦除可编程只读存储器(EEPROM)、闪存、相变随机存取存储器(PRAM)、电阻随机存取存储器(RRAM)、纳米浮栅存储器(NFGM)、聚合物随机存取存储器(PoRAM)、磁随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)等。
图21示出了系统1003的实施例,系统1003包括主机设备103和存储设备203。主机设备103可以包括主机控制器HCON 113和主机存储器HMEM 123。主机控制器113可以控制主机设备203的整体操作。主机控制器113可以是例如基于硬件的数据处理设备,其包括被物理地配置为执行由包括在代码或程序中的命令表示的操作的电路。例如,主机控制器113可以是片上系统(SoC)、通用处理器、专用处理器、应用处理器等。
可以将主机存储器123实现为例如随机存取存储器,随机存取存储器被配置为与主机控制器113通信并用作主机设备103的主存储器、缓冲存储器或缓存存储器。主机控制器113可以将代码或数据临时存储在主机存储器123处。主机控制器113可以通过使用主机存储器123来执行各种软件(例如,通过操作系统和应用)。主机存储器123可以包括易失性存储器(例如,静态RAM(SRAM)、动态RAM(DRAM)或同步DRAM(SDRAM))或非易失性存储器(例如,相变RAM(PRAM)、磁RAM(MRAM)、电阻RAM(RRAM)或铁电RAM(FRAM))。
当主机设备103和数据存储设备203被配置为使得数据存储设备203的数据被加载到主机存储器123时,主机控制器113可以指派主机存储器123的存储器空间的一部分以由存储设备203使用。在这种情况下,主机存储器123的主机区域可以由主机设备103使用,并且可以指派主机存储器缓冲器HMB以由数据存储设备203使用。
主机控制器113可以包括被配置为控制主机存储器123的存储器控制器。主机控制器113可以通过存储器控制器使用主机存储器123的主机区域。当针对数据存储设备203提供主机存储器缓冲器HMB时,数据存储设备203可以使用主机存储器缓冲器HMB而无需主机控制器113的干预。
在一些示例实施例中,如图21中所示,可以将上述共享丢弃位图SDBM存储在主机存储器缓冲器HMB中,其中主机存储器缓冲器HMB没置在主机设备103中的主机存储器123中。在这种情况下,主机设备103可以直接防问共享丢弃位图SDBM,而不管主机设备103与数据存储设备203之间的接口如何。
数据存储设备203可以包括存储控制器SCON 243和非易失性存储器设备NVM 223。存储控制器243可以控制数据存储设备203的整体操作。存储控制器243可以执行与主机设备103的数据通信。可以将存储控制器243与主机设备103之间的接口430配置为实现一个或多个数据通信协议或规范。例如,接口430可以支持使用以下至少一项的通信:通用串行总线(USB)、高级技术附件(ATA)、串行ATA(SATA)、小型计算机小型接口(SCSI)、串行附接SCSI(SAS)、并行ATA(PATA)、高速芯片间(HSIC)、防火墙、外围组件互连(PCI)、快速PCI(PCIe)、快速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)或其他标准。
图22示出了图20和图21的系统的地址映射的示例。参考图22,主机设备的虚拟地址空间VAS可以包括共享丢弃位图SDBM和异步丢弃区域ADR。
虚拟地址空间VAS的共享丢弃位图SDBM被映射到随机存取存储器RAM的共享丢弃位图SDBM,并且虚拟地址空间VAS的异步丢弃区域ADR被映射到非易失性存储器设备NVM的异步丢弃区域ADR。异步丢弃区域ADR可以是非易失性存储器设备NVM的一部分或整个非易失性存储器设备NVM。例如,异步丢弃区域ADR的大小SZA可以小于或等于非易失性存储器设备NVM的大小SZN。共享丢弃位图可以包括在随机存取存储器RAM中,共享丢弃位图具有与异步丢弃区域ADR的大小SZA成比例的大小SZM。随机存取存储器RAM可以是图20中的随机存取存储器212或图21中的主机存储器缓冲器HMB。主机设备可以基于虚拟地址空间VAS与随机存取存储器RAM和非易失性存储器设备NVM的映射关系来访问随机存取存储器RAM和非易失性存储器设备NVM的相应区域。
图23示出了系统1000a的实施例,系统1000a包括主机设备2000和存储设备3000。例如,存储设备3000可以是嵌入式多媒体卡(eMMC)、通用闪存(UFS)或固态驱动器(SSD)。主机设备2000可以被配置为控制数据处理操作,比如数据读取操作和数据写入操作。图23的系统1000a可以是任意电子系统。
主机设备2000包括通过总线20连接的处理器(CPU)2100、主机存储器(HMEM)2200和主机控制器接口(HCI)2300。主机存储器2200包括存储共享丢弃位图SDBM的主机存储器缓冲器HMB 2210。可以由处理器2100执行操作系统(OS)和/或主机固件(FW)2110。处理器2100可以包括用于控制以下项的硬件和/或软件:命令CMD的生成、对响应RES的分析、将数据存储在寄存器中(例如,存储设备3000的扩展(EXT)_CSD寄存器)和/或数据处理。处理器2100可以执行操作系统和主机固件2110以执行这些操作。
主机控制器接口2300可以充当与存储设备3000的接口。例如,主机控制器接口2300可以被配置为向存储设备3000发出命令CMD、从存储设备3000接收对命令CMD的响应RES、向存储设备3000发送写入数据并从存储设备3000接收读取数据。
存储设备3000可以包括例如多个非易失性存储器设备(NVM)3100和存储控制器3200。
可以可选地向非易失性存储器设备3100提供外部高压VPP。可以通过多个通道CH1至CHi将存储控制器3200连接到非易失性存储器设备3100。存储控制器3200可以包括通过总线30连接的一个或多个处理器CPU 3210、主机接口3230、储存存储器SMEM 3240、非易失性存储器接口3250和安全引擎SCR 3260。
储存存储器3240可以存储用于操作存储控制器3200的数据。储存存储器3240可以是易失性存储器设备,例如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)。图23示出了储存存储器3240位于存储控制器3200中的实施例。在另一实施例中,储存存储器3240可以位于存储控制器3200外部。
处理器3210可以被配置为控制存储控制器3200的整体操作。例如,处理器3210可以操作包括闪存转换层(FTL)的固件3212,并且可以包括其他固件。FTL可以执行各种功能,例如,尤其是地址映射、读取校准、误差校正。
尽管图23示出了安全引擎3260位于主机接口3230外部,但是在另一实施例中,安全引擎3260可以位于主机接口3230中。主机接口3230可以充当与诸如主机设备2000的外部设备的接口。非易失性存储器接口3250可以充当与非易失性存储器设备3100的接口。主机设备2000和存储设备3000可以经由总线10相连。
图24示出了图23的系统中的非易失性存储器设备的等效电路的实施例。可以以三维结构(或竖直结构)将图24的存储器块BLKi形成在衬底上。例如,可以在与衬底的上表面垂直的第一方向D1上形成存储器块BLKi中的多个NAND串或单元串。
参考图24,存储器块BLKi可以包括耦接在位线BL1、BL2和BL3与公共源极线CSL之间的NAND串NS11至NS33。NAND串NS11至NS33中的每一个可以包括串选择晶体管SST、多个存储器单元MC1至MC8和地选择晶体管GST。在图24中,NAND串NS11至NS33中的每一个被示为包括八个存储器单元MC1至MC8。然而,在一些示例实施例中,NAND串NS11至NS33中的每一个可以包括任何数量的存储器单元。
每一个串选择晶体管SST可以连接到相应的串选择线(SSL1至SSL3之一)。多个存储器单元MC1至MC8可以分别连接到相应的栅极线GTL1至GTL8。栅极线GTL1至GTL8可以是字线,且栅极线GTL1至GTL8中的一些可以是虚设字线。每一个地选择晶体管GST可以连接到相应的地选择线(GSL1至GSL3之一)。每一个串选择晶体管SST可以连接到相应的位线(例如,BL1、BL2和BL3之一),并且每一个地选择晶体管GST可以连接到公共源极线CSL。
具有相同高度的字线(例如,WL1)可以共同连接,并且地选择线GSL1至GSL3和串选择线SSL1至SSL3可以分离。与中间开关线相对应的栅极线可以分离。在图24中,存储器块BLK被示为耦接到八个栅极线GTL1至GTL8和三个位线BL1至BL3。在一个实施例中,存储器单元阵列中的每一个存储器块可以耦接到不同数量的字线和不同数量的位线。
图25示出了移动设备4000的实施例,其中移动设备4000包括应用处理器4100(包括一个或多个应用处理器)、通信模块4200、显示/触摸模块4300、数据存储设备4400和缓冲器RAM 4500。应用处理器4100控制移动设备4000的操作。通信模块4200被实现为执行与外部设备的无线或有线通信。显示/触摸模块4300被实现为显示由应用处理器4100处理的数据和/或通过触摸面板接收数据。数据存储设备4400被实现为存储用户数据。
数据存储设备4400可以例如是嵌入式多媒体卡(eMMC)、固态驱动器(SSD)、通用闪存(UFS)设备等。如上所述,数据存储设备4400可以包括用于异步丢弃操作的共享丢弃位图SDBM。
缓冲器RAM 4500临时存储用于处理移动设备4000的操作的数据。例如,缓冲器RAM4500可以是双倍数据速率(DDR)同步DRAM(SDRAM)、低功率DDR(LPDDR)SDRAM、图形DDR(GDDR)SDRAM、Rambus DRAM等。
根据前述实施例中的一个或多个实施例,包括数据存储设备的系统和控制丢弃操作的方法可以通过对使用由主机设备和数据存储设备共享的丢弃位图的异步丢弃操作和/或同步丢弃操作的使用来防止低效的无用数据收集并提高系统的操作速度、延长系统的寿命和增强系统的性能。
可以将本文所述实施例应用于数据存储设备和包括数据存储设备的各种电子系统中的任何一种。示例包括存储卡、固态驱动器(SSD)、嵌入式多媒体卡(eMMC)、移动电话、智能电话、个人数字助理(PDA)、便携式多媒体播放器(PMP)、数码相机、摄像机、个人计算机(PC)、服务器计算机、工作站、膝上型计算机、数字电视、机顶盒、便携式游戏机、导航系统、可穿戴设备、物联网(IoT)设备、万物网(IoE)设备、电子书、虚拟现实(VR)设备、增强现实(AR)设备等。
前述内容是对示例实施例的说明,而不应被解释为对其的限制。尽管已经描述了一些示例实施例,但是本领域技术人员将容易地理解,可以在示例实施例中进行各种修改,而本质上不脱离本发明构思。
Claims (20)
1.一种在包括主机设备和数据存储设备的系统中控制丢弃操作的方法,所述方法包括:
提供由所述主机设备和所述数据存储设备共同访问的共享丢弃位图,所述共享丢弃位图包括与所述数据存储设备中的非易失性存储器设备的多个扇区中的目标扇区一一对应的丢弃比特;
由所述主机设备设置存储在所述共享丢弃位图中的所述丢弃比特的比特值,所述比特值被设置为指示存储在所述目标扇区中的每一个目标扇区的数据是否是可丢弃的;以及
由所述数据存储设备基于存储在所述共享丢弃位图中的所述丢弃比特的所述比特值,针对所述目标扇区执行异步丢弃操作。
2.根据权利要求1所述的方法,其中设置所述丢弃比特的所述比特值包括:
由所述主机设备从所述共享丢弃位图读取第一读取数据;
由所述主机设备通过改变与所述目标扇区中的可丢弃扇区相对应的所述丢弃比特,根据所述第一读取数据生成第一写入数据,所述丢弃比特从第一值改变为第二值;以及
由所述主机设备将所述第一写入数据存储在所述共享丢弃位图中。
3.根据权利要求2所述的方法,其中执行所述异步丢弃操作包括:
由所述数据存储设备从所述共享丢弃位图读取第二读取数据;
由所述数据存储设备搜索所述第二读取数据中具有所述第二值的所述丢弃比特;
由所述数据存储设备针对与具有所述第二值的所述丢弃比特相对应的目标扇区执行丢弃操作;
由所述数据存储设备通过改变与针对其完成了所述丢弃操作的所述目标扇区相对应的所述丢弃比特,根据所述第二读取数据生成第二写入数据,所述丢弃比特从所述第二值改变为所述第一值;以及
由所述数据存储设备将所述第二写入数据存储在所述共享丢弃位图中。
4.根据权利要求1所述的方法,其中所述异步丢弃操作是基于所述共享丢弃位图执行的,而不管来自所述主机设备的命令如何。
5.根据权利要求4所述的方法,其中所述异步丢弃操作是在所述主机设备的空闲状态期间执行的。
6.根据权利要求2所述的方法,还包括:
基于由所述主机设备基于所述共享丢弃位图生成的丢弃命令,针对所述目标扇区执行同步丢弃操作,并且将所述丢弃命令传送到所述数据存储设备。
7.根据权利要求6所述的方法,其中执行所述同步丢弃操作包括:
由所述主机设备从所述共享丢弃位图读取第三读取数据;
由所述主机设备搜索所述第三读取数据中具有所述第二值的所述丢弃比特;
由所述主机设备将具有所述第二值的所述丢弃比特的地址转换为与具有所述第二值的所述丢弃比特相对应的所述目标扇区的地址;
由所述主机设备基于与具有所述第二值的所述丢弃比特相对应的所述目标扇区的所述地址生成所述丢弃命令,并且将所述丢弃命令传送到所述数据存储设备;
由所述数据存储设备基于所述丢弃命令针对与具有所述第二值的所述丢弃比特相对应的目标扇区执行丢弃操作;
由所述主机设备或所述数据存储设备,通过改变与完成所述丢弃操作的所述目标扇区相对应的所述丢弃比特,根据所述第三读取数据生成第三写入数据,所述丢弃比特从所述第二值改变为所述第一值;以及
由所述主机设备或所述数据存储设备将所述第三写入数据存储在所述共享丢弃位图中。
8.根据权利要求1所述的方法,还包括:
基于从所述主机设备提供给所述数据存储设备的异步丢弃区域设置命令来设置所述目标扇区的地址范围。
9.根据权利要求8所述的方法,其中所述异步丢弃区域设置命令包括所述目标扇区的起始地址和所述目标扇区的数量。
10.根据权利要求1所述的方法,还包括:
基于从所述主机设备提供给所述数据存储设备的位图设置命令,设置所述共享丢弃位图的地址范围。
11.根据权利要求10所述的方法,其中所述位图设置命令包括所述共享丢弃位图的起始地址和与每一个丢弃相对应的每一个目标扇区的单位大小。
12.根据权利要求1所述的方法,还包括:
基于从所述主机设备提供给所述数据存储设备的模式设置命令,启用异步丢弃模式以执行所述异步丢弃操作。
13.根据权利要求1所述的方法,其中:
所述共享丢弃位图存储在所述数据存储设备中包括的所述非易失性存储器设备中,并且
所述主机设备通过所述主机设备与所述数据存储设备之间的块可防问接口防问所述共享丢弃位图。
14.根据权利要求1所述的方法,其中:
所述共享丢弃位图存储在所述数据存储设备中包括的随机存取存储器设备中,并且
所述主机设备通过所述主机设备与所述数据存储设备之间的存储器映射输入-输出接口访问所述共享丢弃位图。
15.根据权利要求1所述的方法,其中:
所述共享丢弃位图存储在主机存储器缓冲器中,所述主机存储器缓冲器设置在所述主机设备中包括的主机存储器中,并且
所述主机设备直接访问所述共享丢弃位图,而不管所述主机设备与所述数据存储设备之间的接口如何。
16.一种在包括主机设备和数据存储设备的系统中控制丢弃操作的方法,所述方法包括:
设置包括在所述数据存储设备中的非易失性存储器设备的多个扇区中的目标扇区的地址范围;
设置由所述主机设备和所述数据存储设备共同访问的共享丢弃位图的地址范围,所述共享丢弃位图包括与所述目标扇区一一对应的丢弃比特;
由所述主机设备设置存储在所述共享丢弃位图中的所述丢弃比特的比特值,所述比特值指示存储在所述目标扇区中的相应扇区中的数据是否是可丢弃的;以及
由所述数据存储设备基于存储在所述共享丢弃位图中的所述丢弃比特的所述比特值,针对所述目标扇区执行异步丢弃操作。
17.根据权利要求16所述的方法,其中设置所述丢弃比特的所述比特值包括:
由所述主机设备从所述共享丢弃位图读取第一读取数据;
由所述主机设备根据所述第一读取数据生成第一写入数据,所述第一写入数据是通过改变与所述目标扇区中的可丢弃扇区相对应的所述丢弃比特生成的,所述丢弃比特从第一值改变为第二值;并且
由所述主机设备将所述第一写入数据存储在所述共享丢弃位图中。
18.根据权利要求17所述的方法,其中执行所述异步丢弃操作包括:
由所述数据存储设备从所述共享丢弃位图读取第二读取数据;
由所述数据存储设备搜索所述第二读取数据中具有所述第二值的所述丢弃比特;
由所述数据存储设备针对与具有所述第二值的所述丢弃比特相对应的目标扇区执行丢弃操作;
由所述数据存储设备根据所述第二读取数据生成第二写入数据,通过改变与完成所述丢弃操作的目标扇区相对应的所述丢弃比特生成所述第二写入数据,所述丢弃比特从所述第二值改变为所述第一值;以及
由所述数据存储设备将所述第二写入数据存储在所述共享丢弃位图中。
19.根据权利要求17所述的方法,还包括:
由所述主机设备从所述共享丢弃位图读取第三读取数据;
由所述主机设备搜索所述第三读取数据中具有所述第二值的所述丢弃比特;
由所述数据存储设备针对与具有所述第二值的所述丢弃比特相对应的目标扇区执行丢弃操作;
由所述主机设备将具有所述第二值的所述丢弃比特的地址转换为与具有所述第二值的所述丢弃比特相对应的所述目标扇区的地址;
由所述主机设备基于与具有所述第二值的所述丢弃比特相对应的所述目标扇区的所述地址生成丢弃命令,并且将所述丢弃命令传送到所述数据存储设备;
由所述数据存储设备基于所述丢弃命令针对与具有所述第二值的所述丢弃比特相对应的所述目标扇区执行丢弃操作;
由所述主机设备或所述数据存储设备根据所述第三读取数据生成第三写入数据,所述第三写入数据是通过改变与针对其完成了所述丢弃操作的所述目标扇区相对应的所述丢弃比特来生成的,所述丢弃比特从所述第二值改变到所述第一值;以及
由所述主机设备或所述数据存储设备将所述第三写入数据存储在所述共享丢弃位图中。
20.一种系统,包括:
共享丢弃位图,所述共享丢弃位图包括与非易失性存储器设备的多个扇区中的目标扇区一一对应的丢弃比特;
主机设备,被配置为设置存储在所述共享丢弃位图中的所述丢弃比特的比特值,所述比特值指示存储在所述目标扇区中的每一个目标扇区中的数据是否是可丢弃的;以及
数据存储设备,被配置为针对所述目标扇区执行异步丢弃操作,其中所述异步丢弃操作被配置为基于存储在所述共享丢弃位图中的所述丢弃比特的所述比特值来执行,并且其中所述数据存储设备包括所述非易失性存储器设备。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180165161A KR20200076244A (ko) | 2018-12-19 | 2018-12-19 | 데이터 스토리지 장치를 포함하는 시스템 및 데이터 스토리지 장치의 디스카드 동작 제어 방법 |
KR10-2018-0165161 | 2018-12-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111338564A true CN111338564A (zh) | 2020-06-26 |
Family
ID=71097606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911305404.0A Pending CN111338564A (zh) | 2018-12-19 | 2019-12-16 | 包括数据存储设备的系统和控制丢弃操作的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11237753B2 (zh) |
KR (1) | KR20200076244A (zh) |
CN (1) | CN111338564A (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210406359A1 (en) * | 2020-06-26 | 2021-12-30 | Nxp Usa, Inc. | System and Method to Support Multiple Security Schemes in an Embedded System |
US11687449B2 (en) * | 2020-09-10 | 2023-06-27 | International Business Machines Corporation | Concurrent marking garbage collection |
US11966343B2 (en) * | 2021-07-19 | 2024-04-23 | Samsung Electronics Co., Ltd. | Universal mechanism to access and control a computational device |
US20230055285A1 (en) * | 2021-08-19 | 2023-02-23 | Lenovo (Singapore) Pte. Ltd. | Secure erase of user data using storage regions |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001037115A2 (en) * | 1999-11-16 | 2001-05-25 | Broadcom Corporation | High speed flow control methodology |
CN1438802A (zh) * | 2001-12-28 | 2003-08-27 | 索尼公司 | 显示设备、显示方法、程序、存储介质和显示系统 |
CN1826776A (zh) * | 2003-07-24 | 2006-08-30 | 思科技术公司 | 用于处理复制分组的方法和装置 |
CN101034381A (zh) * | 2006-03-08 | 2007-09-12 | 松下电器产业株式会社 | 多主机系统和数据传送系统 |
US20130332646A1 (en) * | 2012-06-08 | 2013-12-12 | International Business Machines Corporation | Performing asynchronous discard scans with staging and destaging operations |
US8832395B1 (en) * | 2013-04-12 | 2014-09-09 | Hitachi, Ltd. | Storage system, and method of storage control for storage system |
US20160026548A1 (en) * | 2014-07-22 | 2016-01-28 | Fujitsu Limited | Storage control device and storage system |
US20160099880A1 (en) * | 2014-10-06 | 2016-04-07 | Netronome Systems, Inc. | Global random early detection packet dropping based on available memory |
US20160099878A1 (en) * | 2014-10-06 | 2016-04-07 | Netronome Systems, Inc. | Instantaneous random early detection packet dropping with drop precedence |
US20160099882A1 (en) * | 2014-10-06 | 2016-04-07 | Netronome Systems, Inc. | Simultaneous queue random early detection dropping and global random early detection dropping system |
CN105630638A (zh) * | 2014-10-31 | 2016-06-01 | 国际商业机器公司 | 用于为磁盘阵列分配缓存的设备和方法 |
US9524794B1 (en) * | 2015-08-10 | 2016-12-20 | Sandisk Technologies Llc | Constrained data shaping |
KR101779174B1 (ko) * | 2016-05-26 | 2017-09-18 | 성균관대학교산학협력단 | 저널링 파일시스템의 데이터 폐기 방법 및 이를 구현하기 위한 메모리 관리 장치 |
CN107787486A (zh) * | 2015-09-14 | 2018-03-09 | 桑迪士克科技有限责任公司 | 命令授权的系统和方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100771519B1 (ko) | 2006-10-23 | 2007-10-30 | 삼성전자주식회사 | 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법 |
US9104686B2 (en) | 2008-12-16 | 2015-08-11 | Sandisk Technologies Inc. | System and method for host management of discardable objects |
US9069657B2 (en) | 2011-12-12 | 2015-06-30 | Apple Inc. | LBA bitmap usage |
JP6069962B2 (ja) | 2012-08-30 | 2017-02-01 | 富士通株式会社 | 情報処理装置、領域解放制御プログラム、および領域解放制御方法 |
US9128746B2 (en) | 2013-03-29 | 2015-09-08 | Vmware, Inc. | Asynchronous unmap of thinly provisioned storage for virtual machines |
US9734098B2 (en) | 2015-03-31 | 2017-08-15 | Sandisk Technologies Llc | Memory bus management |
-
2018
- 2018-12-19 KR KR1020180165161A patent/KR20200076244A/ko not_active Application Discontinuation
-
2019
- 2019-08-06 US US16/533,256 patent/US11237753B2/en active Active
- 2019-12-16 CN CN201911305404.0A patent/CN111338564A/zh active Pending
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001037115A2 (en) * | 1999-11-16 | 2001-05-25 | Broadcom Corporation | High speed flow control methodology |
CN1438802A (zh) * | 2001-12-28 | 2003-08-27 | 索尼公司 | 显示设备、显示方法、程序、存储介质和显示系统 |
CN1826776A (zh) * | 2003-07-24 | 2006-08-30 | 思科技术公司 | 用于处理复制分组的方法和装置 |
CN101034381A (zh) * | 2006-03-08 | 2007-09-12 | 松下电器产业株式会社 | 多主机系统和数据传送系统 |
US20130332646A1 (en) * | 2012-06-08 | 2013-12-12 | International Business Machines Corporation | Performing asynchronous discard scans with staging and destaging operations |
US8832395B1 (en) * | 2013-04-12 | 2014-09-09 | Hitachi, Ltd. | Storage system, and method of storage control for storage system |
US20160026548A1 (en) * | 2014-07-22 | 2016-01-28 | Fujitsu Limited | Storage control device and storage system |
US20160099880A1 (en) * | 2014-10-06 | 2016-04-07 | Netronome Systems, Inc. | Global random early detection packet dropping based on available memory |
US20160099878A1 (en) * | 2014-10-06 | 2016-04-07 | Netronome Systems, Inc. | Instantaneous random early detection packet dropping with drop precedence |
US20160099882A1 (en) * | 2014-10-06 | 2016-04-07 | Netronome Systems, Inc. | Simultaneous queue random early detection dropping and global random early detection dropping system |
CN105630638A (zh) * | 2014-10-31 | 2016-06-01 | 国际商业机器公司 | 用于为磁盘阵列分配缓存的设备和方法 |
US9524794B1 (en) * | 2015-08-10 | 2016-12-20 | Sandisk Technologies Llc | Constrained data shaping |
CN107787486A (zh) * | 2015-09-14 | 2018-03-09 | 桑迪士克科技有限责任公司 | 命令授权的系统和方法 |
KR101779174B1 (ko) * | 2016-05-26 | 2017-09-18 | 성균관대학교산학협력단 | 저널링 파일시스템의 데이터 폐기 방법 및 이를 구현하기 위한 메모리 관리 장치 |
Non-Patent Citations (1)
Title |
---|
YINGWEI LUO等: "Live and Incremental Whole-System Migration of Virtual Machines Using Block-Bitmap", 《2008 IEEE INTERNATIONAL CONFERENCE ON CLUSTER COMPUTING》, 29 September 2008 (2008-09-29), pages 99 - 106, XP031355612, DOI: 10.1109/CLUSTR.2008.4663760 * |
Also Published As
Publication number | Publication date |
---|---|
KR20200076244A (ko) | 2020-06-29 |
US11237753B2 (en) | 2022-02-01 |
US20200201558A1 (en) | 2020-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10579279B2 (en) | Data storage device and data processing system having the same | |
CN110083545B (zh) | 数据存储装置及其操作方法 | |
US11714578B2 (en) | Method of operating storage device, storage device performing the same and method of operating storage system using the same | |
US11237753B2 (en) | System including data storage device and method of controlling discard operation in the same | |
US11249897B2 (en) | Data storage device and operating method thereof | |
US11513728B2 (en) | Storage devices, data storage systems and methods of operating storage devices | |
KR102567224B1 (ko) | 데이터 저장 장치 및 이를 포함하는 컴퓨팅 시스템 | |
US20200218653A1 (en) | Controller, data storage device, and operating method thereof | |
KR20200059936A (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
US11263148B2 (en) | Mapping host logical address to target address that is selected from combination of first memory's physical addresses and second memory's virtual addresses | |
CN109947670B (zh) | 存储器系统及其操作方法 | |
KR20200044461A (ko) | 메모리 시스템 및 그것의 동작방법 | |
US10466938B2 (en) | Non-volatile memory system using a plurality of mapping units and operating method thereof | |
US11782638B2 (en) | Storage device with improved read latency and operating method thereof | |
CN114115708A (zh) | 存储装置及其操作方法 | |
CN110309075B (zh) | 存储器控制器以及具有存储器控制器的存储器系统 | |
US20230152993A1 (en) | Storage device | |
US20230036616A1 (en) | Storage devices and operating methods of storage controllers | |
US11119938B2 (en) | Apparatus and method to synchronize memory map between a storage device and host | |
US11281590B2 (en) | Controller, operating method thereof and storage device including the same | |
US20210026782A1 (en) | Data storage apparatus, operating method thereof, and controller therefor | |
US20240045806A1 (en) | Storage device, electronic device including the same, and operating method thereof | |
CN115132252A (zh) | 存储装置及其操作方法 |
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 |