CN110377599A - 键值存储装置及其操作方法 - Google Patents
键值存储装置及其操作方法 Download PDFInfo
- Publication number
- CN110377599A CN110377599A CN201910293772.1A CN201910293772A CN110377599A CN 110377599 A CN110377599 A CN 110377599A CN 201910293772 A CN201910293772 A CN 201910293772A CN 110377599 A CN110377599 A CN 110377599A
- Authority
- CN
- China
- Prior art keywords
- value
- piece
- key
- block
- storage device
- 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.)
- Granted
Links
- 238000003860 storage Methods 0.000 title claims abstract description 208
- 238000011017 operating method Methods 0.000 title description 3
- 230000004044 response Effects 0.000 claims abstract description 57
- 238000000034 method Methods 0.000 claims abstract description 23
- 238000013507 mapping Methods 0.000 claims description 21
- 230000008859 change Effects 0.000 claims description 12
- 238000007726 management method Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 13
- 238000006243 chemical reaction Methods 0.000 description 8
- 239000000758 substrate Substances 0.000 description 7
- 238000012217 deletion Methods 0.000 description 6
- 230000037430 deletion Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000013519 translation Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 4
- 230000006399 behavior Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 4
- 238000013523 data management Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 239000010813 municipal solid waste Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000012535 impurity Substances 0.000 description 2
- 239000011810 insulating material Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000000465 moulding Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000003362 replicative effect Effects 0.000 description 2
- 239000000377 silicon dioxide Substances 0.000 description 2
- 239000002210 silicon-based material Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 1
- 101100481704 Arabidopsis thaliana TMK3 gene Proteins 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005530 etching Methods 0.000 description 1
- 238000009413 insulation Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
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)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
提供了一种键值存储装置和一种操作该键值存储装置的方法。键值存储装置包括具有多个块的非易失性存储器和控制器,控制器被配置为:控制对非易失性存储器的存储器操作;从主机接收包括第一键和与第一键对应的第一值的写入命令;响应于写入命令,将与第一值对应的文件的数据写入到非易失性存储器的所述多个块中的至少一个块;从主机接收针对第一值的安全删除命令;并且响应于安全删除命令擦除被写入第一值的所述至少一个块。
Description
本申请要求在韩国知识产权局于2018年4月12日提交的第10-2018-0042923号韩国专利申请和于2019年2月26日提交的第10-2019-0022579号韩国专利申请的权益,这些韩国专利申请的全部内容通过引用包含于此。
技术领域
本发明构思涉及存储装置,更具体地,涉及被配置为执行安全删除的控制器、包括该控制器的键值存储装置及其操作方法。
背景技术
存储装置可以根据数据管理单元分为基于对象的存储器和基于块的存储器。基于对象的存储器可以是被配置为以对象格式存储和管理数据的存储结构。对象可以是可以具有任意大小的数据。例如,对象可以意味着多媒体数据或文件,诸如移动和/或静止图像。对象存储器可以用于管理对象。基于对象的存储器的示例可以是键值存储装置。
在键值存储装置中,当需要删除数据时,可以利用逻辑擦除操作(诸如去除映射信息的操作)来执行数据删除操作。去除映射信息不会立即导致数据的物理去除。在一些情况下,键值存储装置可以在某一时刻执行垃圾收集(GC)操作,并物理地擦除数据。然而,在这种情况下,数据会长时间保留在存储器中,这会导致与键值存储装置相关的安全漏洞。例如,在通过GC操作被物理擦除之前,数据仍然会被容易地访问。
发明内容
本发明构思提供了可以增强数据安全性并提高数据使用效率的控制器、包括该控制器的键值存储装置以及操作键值存储装置的方法。
根据本发明构思的一方面,提供了一种键值存储装置,该键值存储装置包括具有多个块的非易失性存储器和控制器,控制器被配置为:控制对非易失性存储器的存储器操作;从主机接收包括第一键和与第一键对应的第一值的写入命令;响应于写入命令,将与第一值对应的文件的数据写入到非易失性存储器的所述多个块中的至少一个块;从主机接收针对第一值的安全删除命令;并且响应于安全删除命令擦除被写入第一值的所述至少一个块。
根据本发明构思的另一方面,提供了一种控制器,该控制器包括:至少一个处理器;以及工作存储器,被配置为存储由所述至少一个处理器执行的程序,工作存储器被配置为存储来自主机的键与非易失性存储器的物理地址之间的映射信息。所述至少一个处理器被配置为从主机接收针对第一值的安全删除命令,响应于安全删除命令运行包括存储在工作存储器中的至少一个程序的安全删除控制模块,并且控制对非易失性存储器的存储有第一值的至少一个块的擦除操作。
根据本发明构思的另一方面,提供了一种操作键值存储装置的方法。该方法包括:从主机接收包括第一键和与第一键对应的第一值的写入命令,并且响应于写入命令将与第一值对应的文件的数据写入到非易失性存储器的所述多个块中的至少一个块;从主机接收针对第一值的安全删除命令,并且响应于安全删除命令确定被写入第一值的所述至少一个块;以及对所述至少一个块进行擦除。
根据本发明构思的另一方面,提供了一种包括具有多个块的非易失性存储器和控制器的操作键值存储装置。该控制器被配置为执行下述操作,所述操作包括:从主机接收包括第一数据的安全删除命令,其中,第一数据包括具有可变大小的第一键;确定非易失性存储器的所述多个块中的包括与第一键对应的第一值的至少一个块;响应于安全删除命令对包括第一值的所述至少一个块进行擦除;以及在擦除所述至少一个块之后,向主机提供对安全删除命令的响应。
附图说明
通过以下结合附图的详细描述,将更清楚地理解本发明构思的实施例,其中:
图1是根据本发明构思的实施例的存储系统的框图;
图2是图1的控制器的具体示例的框图;
图3A和图3B是示出块存储系统的数据存储功能和键值存储系统的数据存储功能之间的比较的示例的概念图;
图4A和图4B是示出根据本发明构思的示例实施例的地址转换操作和存储在非易失性存储器中的信息的图;
图5示出了键和物理地址之间映射信息的示例的表;
图6是根据本发明构思的示例实施例的操作存储装置的方法的流程图;
图7是基于图6的流程图的安全擦除操作的示意性概念图;
图8A、图8B和图9是示出了当一个块选择性地存储一个文件时安全删除操作的图;
图10是根据本发明构思的实施例的在安全删除操作中复制有效数据的操作的概念图;
图11是根据本发明构思的实施例的存储系统的框图;
图12和图13是根据本发明构思的示例实施例的数据管理操作的示例的框图;
图14是根据本发明构思的示例实施例的操作存储装置的方法的流程图;
图15是根据本发明构思的实施例的管理索引信息的操作的示例的示意性概念图;
图16是图1和/或图11的存储装置的非易失性存储器的具体示例的透视图;
图17是示出了根据本发明构思的实施例的其中利用软件方法控制安全删除操作和索引管理操作的示例的框图;以及
图18是根据本发明构思的实施例的电子装置的框图。
具体实施方式
在下文中,将参照附图详细地描述实施例。
图1是根据本发明构思的实施例的存储系统10的框图。
参照图1,存储系统10可以包括存储装置100和主机200,存储装置100可以包括控制器110和非易失性存储器(NVM)120。主机200可以通过各种接口与存储装置100通信。例如,主机200可以包括应用处理器(AP)或片上系统(SOC)。
在实施例中,存储装置100可以是键值存储装置或键值存储器。例如,存储装置100可以是键值固态驱动器(SSD)。键值存储装置可以配置成利用键值对快速且简单地处理数据。这里,“键值对”可以意味着一对键KEY和值VALUE,并且可以被称为“元组”或“键值元组”,键KEY具有唯一性,值VALUE为与键KEY对应的数据。在键值对中,键KEY可以由任意字符串表示,诸如文件名、统一资源标识符(URI)或哈希(hash,也被称为散列),值VALUE可以是任意类型的文件数据,诸如图像、用户首选项文件或文档。在一些实施例中,键KEY和值VALUE的大小可以是可变的。例如,值VALUE的大小可以根据值VALUE中包括的数据而改变。
在下文中,将主要描述存储装置100是键值存储装置的实施例。如这里所使用的,存储装置100可以基本上与键值存储装置或键值存储器同义。然而,存储装置100不限于键值存储装置,并且可以应用于被配置为以对象为单位管理数据的任意对象缓存系统或对象存储系统。因此,存储装置100可以利用任意方法而不是键值对来以对象为单位管理数据。
主机200可以将包括键值(KEY,VALUE)的命令CMD(例如,写入请求或放置命令)发送到存储装置100,存储装置100可以响应命令CMD将值VALUE写入到非易失性存储器120。在实施例中,主机200可以将包括键KEY的命令CMD(例如,读取请求或获取命令)发送到存储装置100,存储装置100可以响应命令CMD从非易失性存储器120读取与键KEY对应的值VALUE。主机200可以不将键KEY转换为具有固定大小的逻辑块地址(LBA)和/或物理地址,而是可以产生包括具有可变大小的键KEY的命令CMD并将产生的命令CMD发送到存储装置100。
控制器110可以控制非易失性存储器120以响应来自主机200的写入请求而将值VALUE写入到非易失性存储器120或响应来自主机200的读取请求而读取存储在非易失性存储器120中的值VALUE。在实施例中,控制器110可以包括映射表(未示出),该映射表可以存储键KEY和非易失性存储器120的物理地址之间的映射信息。
在一些实施例中,控制器110可以从命令CMD中包括的键KEY产生映射表的映射索引,映射表可以存储所产生的映射索引与非易失性存储器120的物理地址之间的映射信息。在实施例中,映射索引可以是由于对键KEY进行哈希操作而产生的哈希键(hashed key),物理地址可以包括非易失性存储器120的块地址和页地址,块地址和页地址可以用于访问与键KEY对应的值VALUE。
非易失性存储器120可以包括存储器单元阵列MCA,MCA可以包括存储器块BLK 1到BLK z。另外,每个存储器块(例如,第一存储器块BLK1或第一块BLK 1)可以包括多个页PG1到PGn。这里,z和n中的每个可以是正整数,并且根据实施例而各种改变。例如,存储器块可以是擦除操作的单位,页可以是写入和读取操作的单位。当存储装置100接收针对值VALUE的写入或读取命令时,控制器110可以基于页级映射信息将值VALUE写入到多个页PG1至PGn或从多个页PG1至PGn读取值VALUE。另外,由于内部管理操作(例如,用于产生空闲块的垃圾收集(GC,也被称为垃圾回收)操作),存储装置100可以按块级擦除数据。在一些实施例中,当存储装置100根据实施例接收安全删除命令SecureDel(KEY,VALUE)时,控制器110可以基于键KEY的映射信息确定至少一个块,并且可以按块级擦除数据。
在一些实施例中,存储器单元阵列MCA可以包括多个面、多个裸片和/或更多个芯片。在实施例中,非易失性存储器120可包括闪存装置,例如,NAND闪存装置。然而,本发明构思不限于此,非易失性存储器120可以包括电阻式存储器装置,诸如电阻式RAM(RERAM)、相变RAM(PRAM)和磁性RAM(MRAM)。
存储系统10可以实现为例如个人计算机(PC)、数据服务器、网络耦合存储器、物联网(IoT)装置和/或便携式电子装置。便携式电子装置可以是例如膝上型计算机、移动手机、智能手机、平板PC、个人数字助理(PDA)、企业数字助理(EDA)、数字静态照相机、数字摄像机、音频装置、便携式多媒体播放器(PMP)、个人导航装置(PND)、MPEG-1音频层3(MP3)播放器、手持游戏机、电子书(e-book)和/或可穿戴装置。
在一些实施例中,存储装置100可以是嵌入在电子装置中的内部存储器。例如,存储装置100可以是固态驱动器(SSD)、嵌入式通用闪存(UFS)存储装置或嵌入式多媒体卡(eMMC)。在一些实施例中,存储装置100可以是可拆卸地附着到电子装置的外部存储器。例如,存储装置100可以是UFS存储卡、CompactFlash(CF)、安全数字(SD)、微型安全数字(微型SD,micro-SD)、迷你SD、极限数字(xD)或记忆棒。
根据示例实施例,具有键值接口的存储装置100可以提供安全删除功能,并且主机200可以向存储装置100提供请求安全删除的命令(例如,安全删除命令SecureDel(KEY,VALUE))。主机200可以随请求安全删除的命令提供诸如键KEY和/或值VALUE的数据。存储装置100可以响应安全删除命令SecureDel(KEY,VALUE)来物理地擦除存储在非易失性存储器120中的数据。结果,数据不会保留在非易失性存储器120中,从而增强数据安全性,与现有技术的块接口存储器相比,可以改善存储系统10的性能和寿命。
根据实施例用作基于对象的存储器的存储装置100(例如,键值存储装置)可以基于给定的属性执行数据管理操作(诸如数据产生操作、数据读取操作、数据写入操作和数据删除操作),并且可以根据非易失性存储器120的物理特性使最优化是可能的。在示例中,由于对个人数据的保护变得重要,因此维持存储在非易失性存储器120中的数据的快速删除和对存储数据的访问的记录会变得重要。根据实施例,可以利用安全删除命令SecureDel(KEY,VALUE)永久地删除存储在非易失性存储器120中的数据。结果,可以增强安全功能,使得要求安全性的重要信息不会保留在非易失性内存120中。
在上述操作的实施例中,控制器110可以包括安全删除控制模块111。安全删除控制模块111可以实现为硬件和/或软件。在一些实施例中,安全删除控制模块111可以实现为硬件和软件的组合。作为示例,当安全删除控制模块111实现为软件时,控制器110可以包括配置为执行软件的至少一个处理器(未示出)和配置为存储软件的存储器(未示出),安全删除控制模块111可以作为软件模块加载到存储器中。根据实施例,控制器110可以包括闪存转换层(FTL),安全删除控制模块111的至少一些功能可以包括在FTL中。
根据上述实施例,安全删除控制模块111可以执行用于控制与安全删除命令SecureDel(KEY,VALUE)对应的擦除操作的一系列操作。例如,非易失性存储器120中的数据可以通过安全删除控制模块111的控制被物理地或永久地删除。
根据示例实施例,与任何一个键KEY对应的值VALUE可以包括一个文件(例如,图像或文档),主机200可以按文件级提供安全删除请求。在一些实施例中,主机200可以将一个文件分为至少两个值,与任一个键KEY对应的值VALUE可以包括与文件的一部分对应的数据。在一些实施例中,为了简洁起见,值和文件将被描述为相同的概念。然而,实施例不限于此,值可以被定义为各种类型的数据。另外,针对本发明构思的实施例,术语“值”和“文件”可以在这里可交换地使用。
安全删除控制模块111可以响应于来自主机200的安全删除命令SecureDel(KEY,VALUE)控制用于从非易失性存储器120中永久地删除文件的一系列操作。根据实施例,安全删除控制模块111可以响应安全删除命令SecureDel(KEY,VALUE)来按非易失性存储器120的块级执行擦除操作。当待删除的文件的数据被写入到至少两个块时,安全删除控制模块111可以控制用于对所述至少两个块进行擦除的一系列操作。
作为操作的示例,安全删除控制模块111可以参照映射表并确定与键KEY对应的至少两个块。当对所述至少两个块执行擦除操作时,安全删除控制模块111可以连续地输出指示待擦除的块的位置信息(例如,块地址)。换言之,安全删除控制模块111可以响应于来自主机200的一个安全删除命令SecureDel(KEY,VALUE)来输出指示待擦除的至少两个块的块地址。控制器110可以连续地(sequentially)或同时地对多个块执行擦除操作,这些块通过安全删除控制模块111的控制来确定。
虽然图1示出了其中命令CMD包括键KEY和值VALUE两者的示例,但命令CMD可以根据存储器操作(memory operation)的特征和/或类型而不包括值VALUE。作为示例,主机200可以向存储装置100提供其中包括指示期望安全删除的文件的键KEY的安全删除命令SecureDel(KEY)。在一些实施例中,键KEY可以是可变大小的数据。在一些实施例中,键KEY可以不指定期望安全删除的文件的逻辑地址和/或物理地址。
图2是图1的控制器110的具体示例的框图。
参照图1和图2,控制器110可以包括安全删除控制模块111和键物理地址(PA)转换模块112。安全删除控制模块111可以包括块确定模块111_1、块选择模块111_2和擦除控制模块111_3。键PA转换模块112可以利用键KEY执行地址转换操作,并产生键KEY与物理地址PA之间的映射信息。键PA转换模块112可以将映射信息存储在映射表中,并将物理地址PA作为对由主机200提供的键KEY的映射信息输出。在一些实施例中,控制器110可以对键KEY执行哈希操作并产生哈希键(hashedkey),键PA转换模块112可以存储哈希键与物理地址PA之间的映射信息。
图2中所示的安全删除控制模块111的组件可以根据功能对与安全删除操作相关的各种操作进行分类,根据示例实施例的安全删除控制模块111的构造不限于图2中所示的构造。作为示例,可以连续地执行确定待擦除的块的操作、确定块中是否存在有效数据的操作、确定块中有效数据的种类的操作、将有效数据复制到其它块的操作和/或对确定的块进行擦除的操作。安全删除控制模块111中可以包括上述功能中的至少一些,其余功能可以利用控制器110的其它模块来执行。
块确定模块111_1可以确定其中存储有请求安全删除的值VALUE的至少一个块。作为示例,块确定模块111_1可以从键PA转换模块112接收与键KEY对应的物理地址PA,并基于物理地址PA确定将以块级进行擦除的至少一个块的位置。
当连续执行块级擦除操作时,块选择模块111_2可以输出用于选择待擦除的块的块地址ADD_BLK[1:k]。作为示例,请求安全删除的值VALUE可以存储在k个块中,块选择模块111_2可以基于来自块确定模块111_1的确定结果输出块地址ADD_BLK[1:k]。
同时,响应于通过解码安全删除命令SecureDel(KEY,VALUE)获得的内部命令Dec_CMD,擦除控制模块111_3可以控制与内部命令Dec_CMD对应的擦除操作。作为示例,擦除控制模块111_3可以输出内部控制信号Ctrl_I,使得控制器110可以输出用于请求对非易失性存储器120进行块级擦除操作的内部命令。当向非易失性存储器120提供用于请求擦除操作的内部命令时,块选择模块111_2可以通过擦除控制模块111_3的控制输出指示待擦除的块的块地址ADD_BLK[1:k]。
根据上述实施例,主机200可以提供一个安全删除命令SecureDel(KEY,VALUE),使得可以从非易失性存储器120中永久地删除文件级信息。另外,即使当文件分散并存储在多个块中时,也可以响应于单个安全删除命令SecureDel(KEY,VALUE)对多个块同时或连续地执行擦除操作。因此,与重复由主机200提供块级擦除请求的操作和由存储装置100提供指示对一个块完成擦除操作的响应的操作来删除一个文件的情况相比,可以改善数据删除速度。
图3A和图3B是示出了块存储系统的数据存储功能和键值存储系统的数据存储功能之间的比较的示例的概念图。
参照图3A,在基于文件系统的块存储器中,主机可以管理逻辑地址,多个文件File1到File 4中的每个可以通过多个逻辑地址管理。在这种情况下,文件File 1到File 4中的每个的数据可以以随机的方式写入多个块(例如,第0块Block 0至第N块Block N),因此,配置为存储一个文件的数据的块的数量会增加。
另外,存储装置可以将来自主机的逻辑地址映射为物理地址,并管理数据的存储。在这种情况下,当现有技术的块存储装置中需要删除数据时,因为数据由于逻辑擦除操作(例如,删除映射信息)而被逻辑擦除,所以数据会物理地保留在存储装置中。为了物理擦除存储装置的数据,会确定多个块中每个块的数据是有效还是无效,并且会频繁地执行GC操作(例如,将有效数据复制到其它块的操作)以启用擦除操作。结果,存储装置的性能和寿命会降低。
图3B示出了根据本发明构思的实施例的数据存储在基于对象的存储系统中的示例。
根据实施例的键值存储装置可以提供安全删除功能,并基于键值协议存储数据。作为示例,为了存储数据,由于键值存储装置将与同一键对应的数据(例如,值)确定为相同属性,因此键值存储装置可以相对地或最大限度地连续管理在至少一个相同或相邻的块中的数据。换言之,键值存储装置可以具有立即读取与键相关的数据(或值)和将与键相关的数据存储在一个块或数量减少的块中的优点。
因此,根据示例实施例,基于具有拥有可变大小的键值的键值接口的存储装置可以对预定的级(例如,键级或值级)提供安全删除功能,与键(例如,KEY 1至KEY 4)对应的值(例如,VALUE 1至VALUE 4)可以存储在相对少量的块中。因此,可以在对与键对应的数据执行安全删除操作期间,使执行GC操作的次数最小化和/或减少。因此,在安全删除操作期间,与基于块的存储装置的性能和寿命相比,基于键值接口的存储装置的性能和寿命可以被更容易管理。在一些情况下,即使值存储在至少两个块中,存储有该值的块的数目也可以比现有技术的基于块的存储装置中的数目小。因为在安全删除操作期间仅擦除同一块中的数据或仅擦除数量减少的块中的数据,所以可以使合并操作的开销O/H最小化和/或减少。
图4A和图4B是示出根据本发明构思的示例实施例的地址转换操作和存储在非易失性存储器中的信息的图。
参照图1和图4A,主机200可以向存储装置100提供键KEY以对文件执行写入和/或读取操作,存储装置100可以对键KEY执行哈希操作并产生哈希键。
此外,通过将哈希键转换为物理地址PA而获得的映射信息可以存储在映射表中。作为示例,由于哈希操作而产生的哈希键可以用作映射索引(即,哈希索引),可以根据每个映射索引存储物理地址PA。如上所述,物理地址PA可以包括用于在非易失性存储器120中存储值VALUE的块地址和页地址。
参照图4B,键值头(KV Header)信息可以与键值一起存储在非易失性存储器120中。作为示例,非易失性存储器120可以包括存储有键值头信息的第一区域HR、存储有键KEY的第二区域KR和存储有值VALUE的第三区域VR。因为由主机200提供的键KEY具有大的可变大小,所以来自主机200的键KEY可以不存储在控制器110中包括的存储器(例如,动态随机存取存储器(DRAM))中,而是可以与值VALUE一起存储在非易失性存储器120中。同时,键值头信息可以包括同与键值头信息对应的键值相关的元数据。例如,键值头信息可以包括与键KEY和值VALUE的大小相关的信息。存储装置100可以利用键值头信息将键KEY和值VALUE分开。
图5示出了键和物理地址之间映射信息的示例的表。如以上所述,尽管键KEY通过图5中的示例被示出为映射信息,但是如上所述,可以对键KEY执行哈希操作,并且可以将哈希键与哈希键对应的物理地址之间的映射信息存储在映射表中。
此外,图5示出了其中任何一个键KEY被映射为多个页的物理地址的示例。然而,图5中所示的表概念地示出了其中存储有与键KEY对应的值的多个位置,而且实际的映射信息不限于图5中所示的构造。作为示例,可以利用键KEY产生多个页级映射索引,并且可以将一个页级映射索引和一个物理地址之间的映射信息存储在映射表中。
参照图5,与第一键KEY 1对应的第一值可以存储在非易失性存储器中。作为示例,与第一键KEY 1对应的第一值可以存储在第一块BLK 1和第二块BLK 2中。图5示出了其中第一值存储在第一块BLK 1的A个页(即,PAGE 1至PAGE A)和第二块BLK 2的B个页(即,PAGE 1至PAGE B)中的示例。同时,与第二键KEY 2对应的第二值可以存储在非易失性存储器中。作为示例,第二值可以存储在一个块(即,第三块BLK 3)的C个页(即,PAGE 1至PAGE C)中。
存储装置可以响应于来自主机的请求按文件级删除数据。当接收到包括第一键KEY 1的安全删除命令时,存储装置可以对第一块BLK 1和第二块BLK 2执行擦除操作。当与不同文件相关的有效数据(未示出)分别存储在第一块BLK 1和第二块BLK 2中时,存储装置可以将第一块BLK 1和第二块BLK 2的有效数据复制到其它块。在复制操作完成后,存储装置可以对第一块BLK 1和第二块BLK 2执行擦除操作。
作为操作的示例,存储装置可以响应于来自主机的一个安全删除命令对有效数据连续地执行复制操作并对第一块BLK 1和第二块BLK 2连续地执行擦除操作。例如,通过使用第一键KEY 1参照映射表,可以将第一块BLK 1和第二块BLK 2确定为至少一个待擦除的块,并且可以确定存储在第一块BLK 1和第二块BLK 2中的有效数据的位置。作为操作的示例,在将第一块BLK 1的有效数据复制到其它块并擦除第一块BLK 1后,可以将第二块BLK2的有效数据复制到其它块并擦除第二块BLK 2。在一些实施例中,在将第一块BLK 1和第二块BLK 2的有效数据复制到其它块后,可以连续地或同时地对第一块BLK 1和第二块BLK 2进行擦除。
同时,响应来自主机的包括第二键KEY 2的第二安全删除命令,可以擦除第二文件。因为第二文件存储在一个块(即,第三块BLK 3)中,所以可以响应于第二安全删除命令对所述一个块进行擦除以完成操作。例如,当其它文件的有效数据存储在第三块BLK 3中时,可以将第三块BLK 3的有效数据复制到其它块中,然后可以对第三块BLK 3进行擦除。
图6是根据本发明构思的示例实施例的操作存储装置的方法的流程图。
参照图6,根据基于键值协议写入数据的方法,任何一个文件的数据(例如,对应于第一键的第一值)可以存储在存储装置的至少一个块中。作为示例,第一值的数据可以不随机写入多个块。第一值的数据可以写入一个块的多个页,然后写入其它块。由于上述写入操作,第一键和物理地址之间的映射信息可以存储在映射表中。此后,存储装置可以从主机接收针对与第一键对应的第一值的安全删除请求(操作S11)。
存储装置可以利用来自主机的第一键参照映射表,并确定待擦除的块的数量和位置(操作S12)。另外,通过参照映射表,存储装置可以确定与其它文件相关的有效数据是否存储在待擦除的块中。
基于确定结果,存储装置可以执行从确定的块(例如,待擦除的块)将有效数据复制到其它块的操作(操作S13)。在一些实施例中,将要从确定的块复制的有效数据可以包括确定的块中的不对应于第一键的数据。在复制操作完成后,存储装置可以对确定的块执行物理擦除操作(操作S14)。作为示例,当至少两个块被确定为待擦除的块时,存储装置可以连续地或同时地对所述至少两个确定的块执行擦除操作以及按文件级执行删除操作。在发明构思的另一示例实施例中,存储装置可以在对所述至少两个确定的块中的第一块执行对有效数据的复制操作以及擦除操作之后或同时,对所述至少两个确定的块中的第二块执行对有效数据复制操作以及擦除操作。在对所述至少两个块的擦除操作完成后,存储装置可以响应来自主机的命令向主机提供删除完成响应(操作S15)。
图7是基于图6的流程图的安全擦除操作的示意性概念图。
参照图7,为了擦除与第一键KEY 1对应的值,主机HOST(例如,图2的主机200)可以向存储装置提供包括第一键KEY 1的安全删除命令SecureDel(操作S21),并且存储装置的控制器CONTROLLER(例如,图2的控制器110)可以响应安全删除命令SecureDel连续地执行与安全擦除操作相关的各种操作。根据上述实施例,控制器CONTROLLER可以通过利用第一键KEY 1参照映射表来确定待擦除的块(操作S22),并向非易失性存储器NVM(例如,图2的非易失性存储器120)提供内部命令CMD_I(Copy)以对确定的块的有效数据执行复制操作(操作S23)。非易失性存储器NVM可以将确定的块的有效数据复制到其它块(操作S24)。作为示例,当确定待擦除的多个块是第一块BLK 1至第K块BLK K时,控制器CONTROLLER可以提供指示有效数据的位置的物理地址和指示待复制到非易失性存储器NVM的位置的物理地址,并且非易失性存储器NVM可以从第一块BLK 1至第K块BLK K将有效数据复制到其它块。
在完成对有效数据的复制操作后,控制器CONTROLLER可以将内部命令CMD_I(Erase)和块地址ADD_BLK提供到非易失性存储器NVM,以对与块地址ADD_BLK有关的块执行擦除操作(操作S25)。例如,内部命令CMD_I(Erase)可以导致对第一块BLK 1至第K块BLK K进行擦除操作。非易失性存储器NVM可以响应于内部命令CMD_I(Erase)对第一块BLK 1至第K块BLK K执行擦除操作(操作S26和S27)。在擦除操作完成后,控制器CONTROLLER可以向主机提供删除完成响应RESPONSE(操作S28)。
在下文中,将描述适用于本发明构思的根据各种实施例的存储装置。
图8A、图8B和图9是示出了当一个块选择性地存储一个文件时安全删除操作的图。
参照图8A,存储装置中包括的控制器300可以包括安全删除控制模块310、值写入控制模块320和映射表330。如在上述实施例中,安全删除控制模块310和值写入控制模块320中的每个可以实现为硬件构造,和/或可以包括由处理器执行的程序且被实现为软件。在一些实施例中,如上文所述,安全删除控制模块310和值写入控制模块320中的每个可以实现为硬件和软件的组合。
根据上述实施例,安全删除控制模块310可以响应于来自主机的安全删除命令来控制擦除至少一个块的一系列操作。当从主机接收值的写入请求时,由于利用从主机发送的键的地址转换操作,值写入控制模块320可以将键映射为指示所述至少一个块的页的物理地址,并将该值写入到由映射的物理地址指示的区域。在一些实施例中,可以控制利用键的地址转换操作,使得一个块选择性地存储一个文件。
作为示例,参照图8B,当请求针对与第一文件File 1对应的值的写入操作时,该值的大小可能超过一个块的大小。第一文件File 1的部分数据可以写入一个块,而第一文件File 1的其余数据然后可以写入其它块。图8B示出了其中第一文件File 1的部分数据写入第一块BLK 1而第一文件File 1的其余数据写入第二块BLK 2的示例。另外,图8B示出了如下示例,其中,因为对应于第二文件File 2的值的大小小于一个块的大小,所以第二文件File 2的数据存储在第P块BLK P的部分区域中。
当第一文件File 1的数据通过值写入控制模块320的控制写入第二块BLK 2的部分区域时,其它文件的数据可以不写入第二块BLK 2的剩余区域,使得第二块BLK 2的剩余区域可以保持处于无效状态。另外,第二文件File 2的数据可以写入第P块BLK P的部分区域,而其它文件的数据可以不写入第P块BLK P的剩余区域,使得第P块BLK P的剩余区域可以保持处于无效状态。由于上述写入操作的引起的键和物理地址之间的映射信息可以存储在映射表330中。
此后,可以响应于来自主机的命令来请求第一文件File 1和第二文件File 2的安全删除,存储装置可以响应于请求来执行安全删除操作。例如,当请求第一文件File 1的安全删除时,根据上述实施例,存储装置可以连续地对存储有第一文件File 1的数据的第一块BLK 1和第二块BLK 2执行擦除操作。另外,因为其它文件的有效数据不存储在第一块BLK1和第二块BLK 2中,所以删除操作可以在不对有效数据执行复制操作的情况下完成。
图9是根据本发明构思的实施例的图8A和图8B中所示的操作存储装置的方法的流程图。
参照图9,当从主机接收针对第一键和与第一键对应的第一值的写入请求(操作S31)时,存储装置可以利用第一键执行地址转换操作以产生物理地址并基于产生的物理地址选择至少一个块(操作S32)。另外,存储装置可以将与请求写入的第一值对应的文件的数据写入到选择的块,选择的块的未写入数据的页可以保持处于无效状态并且无需将其它文件的数据写入其中(操作S33)。
此后,存储装置可以从主机接收针对第一值的安全删除请求(操作S34)。根据上述实施例,存储装置可以对存储有第一值的至少一个块执行擦除操作,并且可以在不对有效数据执行复制操作的情况下完成删除操作(操作S35)。
图10是根据本发明构思的实施例的在安全删除操作中复制有效数据的操作的概念图。图10示出了如下示例,其中,因为至少两个文件的数据被写入一个块,所以在安全删除操作中发生复制有效数据的操作。
参照图10,第一文件File 1的数据可以写入到第一块BLK 1的全部区域和第二块BLK 2的部分区域,第二文件File 2和第三文件File 3的数据可以写入到第二块BLK 2的剩余区域中的一部分。在这种情况下,可以请求安全删除第一文件File 1,因此可以对第一块BLK 1和第二块BLK 2执行擦除操作。在这种情况下,必要的是,将存储在第二块BLK 2中的第二文件File 2和第三文件File 3的有效数据复制到其它块。
存储装置可以(例如,响应安全删除命令)利用存储在映射表中的映射信息确定待擦除的第一块BLK 1和第二块BLK 2,并且可以确定存储在第二块BLK 2中的有效数据。另外,存储装置可以利用映射信息确定其中存储有第二文件File 2的其它数据的块(例如,第P块BLK P)和存储有第三文件File 3的其它数据的块(例如,第Q块BLK Q)。
为了在安全删除操作期间复制有效数据,存储装置可以确定存储有与有效数据同一文件的数据的块,并将有效数据复制到确定的块。作为示例,存储在第二块BLK 2中的第二文件File 2的有效数据可以复制到存储第二文件File 2的其它数据的第P块BLK P。另外,存储在第二块BLK 2中的第三文件File 3的有效数据可以复制到存储有第三文件File3的其它数据的第Q块BLK Q。由于上述对有效数据的复制操作,当随后接收对第二文件File2和第三文件File 3的安全删除请求时,可以使对有效数据的复制操作减少和/或最小化,并且可以减少执行擦除操作的块的数量。
图11是根据本发明构思的实施例的存储系统400的框图。
参照图11,存储系统400可以包括存储装置410和主机420,存储装置410可以包括控制器411和非易失性存储器(NVM)412。存储装置410可以是键值存储装置和/或键值存储器,主机420可以向存储装置410提供包括键值(KEY,VALUE)的命令CMD(KEY,VALUE)。在图11中所示的存储装置410的组件和操作示例的描述中,将省略对与上述实施例中的存储装置(例如,图1中的存储装置100)的相同的组件的详细描述。例如,控制器411的部分可以与图1的控制器110和/或图8A的控制器300基本上相似地操作。
控制器411可以包括安全删除控制模块411_1和索引管理模块411_2。根据上述实施例,安全删除控制模块411_1可以响应于来自主机420的安全删除请求来控制删除值级(或文件级)数据的一系列操作。作为示例,安全删除控制模块411_1可以响应单个安全删除命令SecureDel(KEY,VALUE)对至少两个块执行擦除操作。另外,根据上述实施例,当仅一个文件选择性地存储在一个块中时,可以在不执行有效数据的复制操作的情况下完成删除操作。
同时,存储装置410可以存储和管理与存储在非易失性存储器412中的数据和状态信息(例如,索引信息)相关的各种信息,诸如更改历史。因此,可以保留对存储在非易失性存储器412中的数据的访问记录。此外,还可以定义用于确认期望的数据(例如,用户个人信息)的使用历史的状态请求命令StatQuery(KEY,VALUE),以优化存储装置410的数据安全性和有效管理。在一些实施例中,键KEY可以是可变大小的数据。在一些实施例中,键KEY可以不表示所需状态信息的数据的逻辑地址和/或物理地址。
在上述操作的实施例中,控制器411可以包括可以实现为硬件和/或软件的索引管理模块411_2。在一些实施例中,索引管理模块411_2可以实现为硬件和软件的组合。作为示例,当索引管理模块411_2实现为软件时,控制器411可以包括配置为执行软件的至少一个处理器(未示出)和配置为存储软件的存储器(未示出),索引管理模块411_2可以作为软件模块加载到存储器中。根据实施例,控制器411可以包括FTL,索引管理模块411_2可以包括在FTL中。
索引管理模块411_2可以管理与非易失性存储器412中存储的数据相关的各种类型的多个状态信息作为索引信息。例如,当数据新写入非易失性存储器412时,索引管理模块411_2可以管理数据写入时间作为索引信息。在一些实施例中,索引信息可以包括各种信息(例如,存储在非易失性存储器412中的数据的访问计数以及数据的更改历史和更改计数)。索引管理模块411_2可以将索引信息存储在非易失性存储器412中。另外,索引管理模块411_2可以响应于来自主机420的状态请求命令StatQuery(KEY,VALUE)向主机420提供索引信息。
现在将描述与索引管理操作相关的具体示例。图12和图13是根据本发明构思的示例实施例的数据管理操作的示例的框图。
参照图11和图12,存储装置410可以接收来自主机420的状态请求命令StatQuery(KEY,VALUE),并且响应于状态请求命令StatQuery(KEY,VALUE)向主机420提供存储在其中的索引信息Index。根据上述实施例,存储装置410可以包括控制器411(如图12中的控制器CTRL所示),并且通过控制器411的控制将键和与键对应的值存储在非易失性存储器412中。图12示出了第一键KEY 1和与第一键KEY 1对应的第一值VALUE 1的示例。图12的索引信息Index可以包括与对应于第一键KEY 1的第一值VALUE 1相关的各种类型的多个状态信息。
控制器411可以控制将与第一值VALUE 1相关的各种类型的多个状态信息作为索引信息Index存储在非易失性存储器412中并更新索引信息Index的操作。另外,当由主机420提供第一键KEY 1的状态请求命令StatQuery(KEY,VALUE)时,控制器411可以读取与第一值VALUE 1相关的索引信息Index,并向主机420提供索引信息Index。
根据实施例,控制器411可以存储和管理各种状态信息作为索引信息Index。例如,当提供针对第一值VALUE 1的写入命令时,索引信息Index可以包括与第一值VALUE 1的写入时间相关的信息(例如,数据的时间(age))。可以利用各种方法来确定写入时间。作为示例,主机420可以向存储装置410提供时间信息,存储装置410可以利用内部时钟计数器基于第一值VALUE 1的写入时间点中的时间戳计算写入时间。另外,索引信息Index可以包括与第一值VALUE 1的访问计数相关的信息。作为示例,第一值VALUE 1可以响应于各种命令(例如,Get(KEY,VALUE)和Iterate(KEY,VALUE))而被引用,并且第一值VALUE 1被引用的次数可以被更新。访问计数(或读取计数)可以在写入第一值VALUE 1的时间点中设为0。可以响应于上述命令(例如,Get(KEY,VALUE)和Iterate(KEY,VALUE))来增加读取计数。
上述索引信息Index可以根据每个键KEY进行存储和管理。当从主机420提供状态请求命令StatQuery(KEY,VALUE)时,可以向主机420提供与键KEY对应的索引信息Index。
此外,当与第一键KEY 1对应的第一值VALUE 1部分更改时,第一值VALUE 1的更改历史可以作为索引信息Index进行管理。例如,第一值VALUE 1可以多次更改,并且第一值VALUE 1的多次更改的历史可以作为索引信息Index进行管理。索引信息Index可以包括第一值VALUE 1的更改内容,并且包括诸如第一值VALUE 1的更改计数的信息。
参照图13,当由主机420提供写入命令Write(Put)时,控制器411可以将与第一键KEY 1对应的第一值VALUE 1写入到非易失性存储器412的多页(例如,NAND Page),生成与第一值VALUE 1相关的索引信息Index,并且将索引信息Index与第一键KEY 1和第一值VALUE 1一起存储在非易失性存储器412中。此后,当由主机420提供状态请求命令StatQuery(KEY,VALUE)时,控制器411可以确认存储有与第一键KEY 1对应的第一值VALUE1的位置,读取与第一值VALUE 1对应的索引信息Index,并且向主机420提供索引信息Index。尽管为了便于说明图13示出了控制器411的两种表达,但将理解的是,两种表达表示在不同时间处操作的同一控制器411。
图14是根据本发明构思的实施例的操作存储装置的方法的流程图。
参照图14,存储装置可以与主机通信并接收各种存储器操作的请求(操作S41)。因此,存储装置可以接收表示来自主机的请求的各种命令。作为示例,各种命令中的一些命令可以对应于需要管理上述索引信息的命令,而一些其它命令可以对应于不管理索引信息的命令。存储装置可以确定来自主机的命令的类型,并确定接收到的命令是否对应于管理索引信息的命令(操作S42)。
作为示例,当来自主机的命令对应于需要管理索引信息的命令(例如,数据写入命令或数据更改命令)时,存储装置可以响应于来自主机的命令产生或更新索引信息(操作S43)。另外,存储装置可以将与来自主机的命令对应的存储器操作和管理索引信息的操作一起执行(操作S44)。
此后,主机可以向存储装置提供状态请求命令以确定文件的状态,存储装置可以接收状态请求命令(操作S45)。存储装置可以从主机读取与键对应的值的索引信息,并向主机提供索引信息(操作S46)。
同时,虽然上述实施例涉及存储装置生成索引信息和由于更新操作而更改索引信息的情况,但本发明构思的实施例不限于此。作为示例,主机可以产生各种类型的多个索引信息(例如,读取计数信息和/或时间戳信息)并将产生的索引信息提供到存储装置。另外,主机可以从存储装置接收索引信息,产生更新的索引信息,并向存储装置提供更新的索引信息。
图15是根据本发明构思的实施例的管理索引信息的操作的示例的示意性概念图。
参照图15,主机HOST(例如,图11的主机420)可以向存储装置提供写入/读取命令PUT/GET(KEY 1,VALUE 1),以写入/读取与第一键KEY 1对应的第一值VALUE 1(操作S51),并且控制器CONTROLLER(例如,图11的控制器411)可以向非易失性存储器NVM(例如,图11的非易失性存储器412)提供内部命令CMD_I(WR/RD)以写入/读取第一值VALUE 1(操作S52)。第一值VALUE 1可以写入到可以是非易失性存储器NVM的至少一个块的第一块BLK 1至第a块BLK a,或者从第一块BLK 1至第a块BLK a读取。非易失性存储器NVM可以将索引信息INDEX存储在第一块BLK 1至第a块BLK a中和/或更新索引信息INDEX(INDEX UPDATE)(操作S53和S54)。另外,当针对第一值VALUE 1的写入/读取操作完成时,控制器可以向主机HOST提供完成响应RESPONSE(操作S55)。虽然图15示出了其中索引信息INDEX存储在多个块中的示例,但索引信息INDEX可以如以上所述存储在一个块中。
随后,主机可以向存储装置提供用于请求关于第一值VALUE 1的索引信息INDEX的状态请求命令StatQuery(KEY 1)(操作S56)。控制器CONTROLLER可以响应于状态请求命令StatQuery(KEY 1)向非易失性存储器NVM提供用于读取在第一块BLK 1至第a块BLK a中存储的索引信息的内部命令CMD_I((RD_index)(操作S57)。非易失性存储器NVM可以响应于内部命令CMD_I((RD_index)读取索引信息INDEX(INDEX READ)(操作S58和S59)。控制器可以向主机HOST提供表示索引信息INDEX的输出已完成的响应(RESPONSE)(操作S60)。
图16是图1的存储装置100和/或图11的存储装置410的非易失性存储器的具体示例的透视图。当存储装置100/410包括闪存芯片时,图16示出了其中闪存芯片的每个块被实现为三维(3D)类型器件的示例。
参照图16,非易失性存储器的存储器块BLK可以在相对于基底SUB的竖直方向上形成。虽然图16示出了其中存储器块BLK包括两条选择线GSL和SSL、八条字线WL1至WL8和三条位线BL1至BL3的示例,但存储器块BLK实际上可以包括多于或少于上述选择线、字线和位线的选择线、字线和位线。
基底SUB可以具有第一导电类型(例如,P型)。共源极线CSL可以设置在基底SUB上并沿第一方向(例如,Y方向)延伸。共源极线CSL可以掺杂有第二导电类型(例如,n类型)的杂质。多个绝缘膜IL可以设置在基底SUB的位于两个相邻共源极线CSL之间的区域上并沿第一方向延伸。多个绝缘膜IL可以连续地设置,并在第三方向(例如,Z方向)上彼此间隔预定距离。例如,多个绝缘膜IL可以包括绝缘材料,例如氧化硅。
多个柱P可以设置在基底SUB的位于两个相邻的共源极线CSL之间的区域上,并连续地布置在第一方向上。多个柱P可以沿第三方向穿过多个绝缘膜IL。例如,多个柱P可以穿过多个绝缘膜IL并接触基底SUB。具体地,每个柱P的表面层S可以包括第一类型硅材料并用作沟道区域。每个柱P的内层I可以包括绝缘材料(例如,氧化硅)和/或气隙。
电荷储存层CS可以沿绝缘膜IL、柱P和两个相邻的共源极线CSL之间的基底SUB的暴露表面设置。电荷储存层CS可以包括栅极绝缘层(也称为“隧道绝缘层”)、电荷捕获层和/或阻挡绝缘层。例如,电荷储存层CS可以具有氧化物-氮化物-氧化物(ONO)结构。另外,栅电极GE(诸如选择线GSL和SSL以及字线WL1至WL8)可以在两个相邻的共源极线CSL之间的区域中设置在电荷存储层CS的暴露表面上。
漏极或漏极接触件DR可以分别设置在多个柱P上。例如,漏极或漏极接触件DR可以包括掺杂有第二导电类型的杂质的硅材料。位线BL1至BL3可以设置在漏极DR上。位线BL1到BL3可以沿第二方向(例如,X方向)延伸,并且在第一方向上彼此间隔预定的距离。
图17是示出了根据本发明构思的实施例的其中利用软件方法控制安全删除操作和索引管理操作的示例的框图。
参照图17,控制器500可以包括处理单元510和工作存储器520。当控制器500控制包括闪存的非易失性存储器时,可以在工作存储器520中加载FTL。在这种情况下,FTL可以包括配置为控制存储器操作的各种模块。作为示例,FTL可以包括与上述实施例的安全删除操作和索引管理操作相关的安全删除模块521、索引管理模块522和地址转换模块523。另外,地址转换模块523可以包括映射表。图17中所示的控制器500可以是这里所述的控制器110、300、411的实施例。
根据实施例的安全删除操作和索引管理操作可以通过执行加载在工作存储器520中的软件来执行。软件可以存储在控制器500中包括的存储单元(例如,非易失性存储介质)中或者包括控制器500的存储装置(未示出)中,并加载到工作存储器520中。根据实施例,工作存储器520可以实现为易失性存储器或非易失性存储器,其可以作为非暂时性计算机可读记录介质。
当从主机提供与安全删除操作相关的安全删除命令时,处理单元510可以执行安全删除模块521,并根据上述实施例控制一系列操作。作为示例,处理单元510可以执行控制操作,使得通过参考映射表来确定待擦除的至少一个块,并且响应一个安全删除命令可以擦除至少一个块或更多个块。
另外,当从主机提供与索引管理操作相关的请求更新索引信息的命令时,处理单元510可以执行索引管理模块522,并控制存储和更新索引信息的操作。当从主机提供状态请求命令时,处理单元510可以控制读取和输出索引信息的操作。
图18是根据本发明构思的实施例的电子装置600的框图。
参照图18,电子装置600可以包括处理器610、存储器装置620、存储装置630、网络640、输入/输出(I/O)装置650和电源660。在实施例中,存储装置630可以利用以上参照图1至图17描述的实施例来实现。
根据上述示例实施例的存储装置,可以定义提供与数据的使用和利用相关的信息的命令(例如,状态请求命令),并且可以响应该命令向主机提供索引信息。另外,与现有技术的基于块接口的存储装置相比,上述示例实施例的存储装置可以以非常高的速度提供安全删除功能,并且在安全删除操作期间可以使合并操作的开销最小化,从而使存储装置的寿命最大化。
根据实施例,可以利用前台和/或后台操作执行安全删除操作。例如,当从主机提供安全删除命令SecureDel(KEY,VALUE)时,可以优先执行(例如,作为前台操作执行)安全删除操作。在一些实施例中,当从主机提供安全删除命令SecureDel(KEY,VALUE)时,安全删除操作可以作为用于其它存储器操作的后台操作执行。
根据示例实施例,可以定义多个键的安全删除命令SecureDel({KEY 1,KEY 2,KEY3,…}),并且存储装置可以对键的集合连续地执行上述安全删除操作。换言之,可以对与多个键对应的多个文件执行批安全删除操作。
将理解的是,虽然这里使用术语“第一”、“第二”等来描述本发明构思的示例实施例中的构件、区域、层、部分、部、组件和/或元件,但构件、区域、层、部分、部、组件和/或元件不应受这些术语限制。这些术语仅用于将一个构件、区域、部分、部、组件或元件与另一构件、区域、部分、部、组件或元件区分开。因此,在不脱离本发明构思的范围的情况下,下面所述的第一构件、第一区域、第一部分、第一部、第一组件或第一元件也可以称为第二构件、第二区域、第二部分、第二部、第二组件或第二元件。例如,在不脱离本发明构思的范围的情况下,第一元件也可以称为第二元件,类似地,第二元件也可以称为第一元件。
这里使用的术语仅出于描述具体实施例的目的,而不意图对示例实施例进行限制。如在这里使用的,除非上下文另外清楚地指出,否则单数形式“一个(种/者)”和“所述(该)”也意图包括复数形式。将进一步理解的是,术语“包括”及其变形(如果在这里使用)表示存在所陈述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或更多个其它特征、整体、步骤、操作、元件、组件和/或它们的组。
除非另外定义,否则这里使用的所有术语(包括技术术语和科学术语)具有与本发明构思所属领域的普通技术人员所通常理解的含义相同的含义。还将理解的是,除非这里明确如此定义,否则术语(诸如通用字典中定义的术语)应该被解释为具有与在该说明书的上下文和现有技术中它们的含义一致的含义,并且将不以理想化或过于形式化的意思来解释。
如在这里使用的,术语“和/或”包括一个或更多个相关所列项的任何组合或所有组合。当诸如“……中的至少一种(个/者)”的表述位于一列元件后面时,它修饰整列的元件,而不是修饰该列中的单个元件。
在附图中,预计将会出现例如由制造技术和/或公差引起的图示的形状的变化。因此,本发明构思的示例实施例不应该被解释为局限于在这里示出的区域的具体形状,而是可以被解释为包括由例如制造工艺导致的形状上的偏差。例如,示出为矩形形状的蚀刻区域可以是倒圆形状或一定弯曲形状。因此,图中示出的区域实际上是示意性的,图中示出的区域的形状并不意图示出装置的区域的特定形状,并且不意图限制本发明构思的范围。
将理解的是,当元件被称为“连接到”或“结合到”另一元件时,该元件可以直接连接到或直接结合到所述另一元件,或者可以存在中间元件。相反,当元件被称为“直接连接到”或“直接结合到”另一元件时,不存在中间元件。应当以同样的方式来解释用于描述元件或层之间关系的其它词语(例如,“在……之间”和“直接在……之间”,“与……相邻”和“直接与……相邻”,“在……上”和“直接在……上”)。
当可以不同地实施某示例实施例时,可以与所描述的顺序不同地执行具体的工艺顺序。例如,可以基本上同时执行或者以与所描述的顺序相反的顺序来执行两个连续描述的工艺。
同样的附图标记始终表示同样的元件。因此,即使附图标记在相应的附图中没有提及或描述,也可以参照其它附图来描述相同或类似的附图标记。另外,未用附图标记表示的元件可以参照其它附图来描述。
在以上说明书和附图中公开了本发明构思的典型的示例实施例。虽然采用了具体的术语,但它们仅以一般性和描述性的含义来使用,而不是出于限制的目的。本领域普通技术人员将理解的是,在不脱离如由所附权利要求限定的本发明构思的精神和范围的情况下,可以对公开的实施例进行形式和细节上的各种改变。
Claims (22)
1.一种键值存储装置,所述键值存储装置包括:
非易失性存储器,包括多个块;以及
控制器,被配置为:控制对非易失性存储器的存储器操作;从主机接收包括第一键和与第一键对应的第一值的写入命令;响应于写入命令,将与第一值对应的文件的数据写入到非易失性存储器的所述多个块中的至少一个块;从主机接收针对第一值的安全删除命令;并且响应于安全删除命令擦除被写入第一值的所述至少一个块。
2.根据权利要求1所述的键值存储装置,其中,所述至少一个块包括第一块和第二块,
控制器被配置为响应于针对第一值的安全删除命令通过对第一块和第二块执行擦除操作来擦除所述至少一个块。
3.根据权利要求2所述的键值存储装置,其中,在完成对第一块和第二块的擦除操作后,控制器被进一步配置为向主机提供表示完成对第一值的安全删除操作的响应。
4.根据权利要求1所述的键值存储装置,其中,所述多个块中的所述至少一个块包括第一块,第一块还存储了第二值的有效数据,
其中,响应于接收针对第一值的安全删除命令,控制器被进一步配置为确定所述多个块中的存储有第二值的第二块并且在对第一块执行擦除操作前将存储在第一块中的第二值的有效数据复制到第二块。
5.根据权利要求1所述的键值存储装置,其中,所述多个块中的所述至少一个块包括第一块,
其中,控制器被进一步配置为将第一值写入到第一块的第一页,并且在不将除了第一值之外的值写入到第一块的第二页的情况下保持第一块的第二页处于无效状态。
6.根据权利要求1所述的键值存储装置,其中,所述至少一个块包括第一块和第二块,
其中,响应于接收针对第一值的安全删除命令,控制器被进一步配置为在对第一块完成对有效数据的复制操作以及擦除操作之后,对第二块执行对有效数据复制操作以及擦除操作。
7.根据权利要求1所述的键值存储装置,其中,控制器包括:
安全删除控制模块,被配置为响应于针对第一值的安全删除命令来确定待擦除的所述至少一个块,并且控制对所述至少一个块的连续的擦除操作;以及
映射表,被配置为存储第一键和被写入第一值的所述至少一个块的物理地址之间的映射信息。
8.根据权利要求1所述的键值存储装置,其中,控制器被进一步配置为接收针对第一值的写入命令并将索引信息存储在非易失性存储器中,
其中,索引信息包括与第一值相关的状态信息,
其中,控制器被进一步配置为从主机接收针对第一值的状态请求命令,响应于状态请求命令读取索引信息,并且将索引信息提供到主机。
9.根据权利要求8所述的键值存储装置,其中,索引信息包括第一值的数据写入时间、数据访问计数、数据更改历史和数据更改计数中的至少一种。
10.根据权利要求9所述的键值存储装置,其中,所述至少一个块包括第一块和第二块,与第一值相关的索引信息存储在第一块和第二块中的每个块中,
其中,所述键值存储装置被进一步配置为响应于针对第一值的状态请求命令来连续地读取存储在第一块和第二块中的索引信息。
11.根据权利要求10所述的键值存储装置,其中,在连续地读取存储在第一块和第二块中的每个块中的索引信息后,控制器被进一步配置为向主机提供表示完成状态请求操作的响应。
12.一种操作键值存储装置的方法,所述键值存储装置包括具有多个块的非易失性存储器和被配置为控制存储器操作的控制器,所述方法包括以下步骤:
从主机接收包括第一键和与第一键对应的第一值的写入命令,并且响应于写入命令将与第一值对应的文件的数据写入到非易失性存储器的所述多个块中的至少一个块;
从主机接收针对第一值的安全删除命令,并且响应于安全删除命令确定被写入第一值的所述至少一个块;以及
对所述至少一个块进行擦除。
13.根据权利要求12所述的方法,其中,所述至少一个块包括第一块和第二块,
其中,对所述至少一个块进行擦除的步骤包括响应于安全删除命令连续地擦除第一块和第二块。
14.根据权利要求13所述的方法,所述方法还包括:在完成对第一块和第二块的擦除后向主机提供表示完成安全删除操作的响应。
15.根据权利要求12所述的方法,其中,所述将第一值写入到所述至少一个块的步骤包括将第一值写入到第一块的第一页,
其中,第一块的第二页保持处于无效状态并且不将除了第一值之外的数据写入到第一块的第二页。
16.根据权利要求12所述的方法,所述方法还包括:
响应于所述接收写入命令的步骤,将包括第一值的状态信息的索引信息写入到非易失性存储器的所述至少一个块;以及
从主机接收针对第一值的状态请求命令,并且响应于状态请求命令读取索引信息。
17.根据权利要求16所述的方法,其中,包括第一值的状态信息的索引信息被写入到非易失性存储器的所述多个块,
其中,写入到所述多个块的索引信息响应于针对第一值的状态请求命令而被读取。
18.一种键值存储装置,所述键值存储装置包括:
非易失性存储器,包括多个块;以及
控制器,被配置为执行下述操作,所述操作包括:从主机接收包括第一数据的安全删除命令,其中,第一数据包括具有可变大小的第一键;确定非易失性存储器的所述多个块中的包括与第一键对应的第一值的至少一个块;响应于安全删除命令对包括第一值的所述至少一个块进行擦除;以及在擦除所述至少一个块之后,向主机提供对安全删除命令的响应。
19.根据权利要求18所述的键值存储装置,其中,控制器被进一步配置为:
在接收安全删除命令之前,从主机接收包括第一键和与第一键对应的第一值的写入命令;以及
将第一值写入到非易失性存储器的所述至少一个块。
20.根据权利要求19所述的键值存储装置,其中,控制器被进一步配置为将所述至少一个块的不包括与第一键对应的第一值的部分保持处于无效状态。
21.根据权利要求19所述的键值存储装置,其中,控制器被进一步配置为响应于写入命令将索引信息存储在所述至少一个块中,
其中,索引信息包括与第一值相关的状态信息。
22.根据权利要求18所述的键值存储装置,其中,第一数据不包括所述至少一个块的物理地址或虚拟地址,
其中,控制器被进一步配置为基于从第一键产生的哈希键来确定所述至少一个块的物理地址。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20180042923 | 2018-04-12 | ||
KR10-2018-0042923 | 2018-04-12 | ||
KR10-2019-0022579 | 2019-02-26 | ||
KR1020190022579A KR102497213B1 (ko) | 2018-04-12 | 2019-02-26 | 안전 삭제를 수행하는 컨트롤러, 이를 포함하는 키-밸류 스토리지 장치 및 키-밸류 스토리지 장치의 동작방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110377599A true CN110377599A (zh) | 2019-10-25 |
CN110377599B CN110377599B (zh) | 2024-01-23 |
Family
ID=68161738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910293772.1A Active CN110377599B (zh) | 2018-04-12 | 2019-04-12 | 键值存储装置及其操作方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10922011B2 (zh) |
CN (1) | CN110377599B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112363833A (zh) * | 2020-11-10 | 2021-02-12 | 海光信息技术股份有限公司 | 一种网络数据包的内存分配方法、装置及相关设备 |
CN113126909A (zh) * | 2019-12-31 | 2021-07-16 | 美光科技公司 | 使用已删除记录跨度的光标查找操作 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102530583B1 (ko) * | 2017-10-31 | 2023-05-09 | 삼성전자주식회사 | 저장 장치 및 메모리 시스템 |
KR20210012329A (ko) * | 2019-07-24 | 2021-02-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US11899958B2 (en) * | 2019-12-09 | 2024-02-13 | Korea University Research And Business Foundation | Method for discarding personal information in NAND flash memory |
US11573706B2 (en) | 2021-06-07 | 2023-02-07 | Western Digital Technologies, Inc. | Data storage device and method for efficient image searching |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130275656A1 (en) * | 2012-04-17 | 2013-10-17 | Fusion-Io, Inc. | Apparatus, system, and method for key-value pool identifier encoding |
US20170168951A1 (en) * | 2015-12-14 | 2017-06-15 | Kabushiki Kaisha Toshiba | Memory system and method for controlling nonvolatile memory |
US20170212841A1 (en) * | 2016-01-22 | 2017-07-27 | Samsung Electronics Co., Ltd. | Computing system with cache management mechanism and method of operation thereof |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020095663A1 (en) * | 2000-08-31 | 2002-07-18 | Rafael Joory | Enabling an application access to setup information therefor |
US8130554B1 (en) | 2008-09-29 | 2012-03-06 | Emc Corporation | Securely erasing flash-based memory |
US8250380B2 (en) | 2009-12-17 | 2012-08-21 | Hitachi Global Storage Technologies Netherlands B.V. | Implementing secure erase for solid state drives |
US8886904B2 (en) * | 2011-04-14 | 2014-11-11 | Kaminario Technologies Ltd. | Managing a solid-state storage device |
JP5762878B2 (ja) | 2011-08-08 | 2015-08-12 | 株式会社東芝 | key−valueストアを有するメモリシステム |
US9317422B1 (en) | 2011-10-03 | 2016-04-19 | Foremay, Inc. | Secure erase of data in electronic device |
KR102044023B1 (ko) | 2013-03-14 | 2019-12-02 | 삼성전자주식회사 | 키 값 기반 데이터 스토리지 시스템 및 이의 운용 방법 |
US20150074084A1 (en) | 2013-09-12 | 2015-03-12 | Neustar, Inc. | Method and system for performing query processing in a key-value store |
WO2015121938A1 (ja) * | 2014-02-13 | 2015-08-20 | 株式会社日立製作所 | データ管理装置及び方法 |
US9438426B2 (en) | 2014-10-03 | 2016-09-06 | Seagate Technology Llc | Key-value data storage device with hybrid architecture |
KR102545166B1 (ko) * | 2016-07-26 | 2023-06-19 | 삼성전자주식회사 | 파일을 안전하게 삭제하는 호스트, 스토리지 시스템 및 호스트의 동작방법 |
KR102641521B1 (ko) * | 2018-02-22 | 2024-02-28 | 삼성전자주식회사 | 키-밸류 스토리지 장치 및 이의 동작 방법 |
-
2019
- 2019-04-11 US US16/381,671 patent/US10922011B2/en active Active
- 2019-04-12 CN CN201910293772.1A patent/CN110377599B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130275656A1 (en) * | 2012-04-17 | 2013-10-17 | Fusion-Io, Inc. | Apparatus, system, and method for key-value pool identifier encoding |
US20170168951A1 (en) * | 2015-12-14 | 2017-06-15 | Kabushiki Kaisha Toshiba | Memory system and method for controlling nonvolatile memory |
US20170212841A1 (en) * | 2016-01-22 | 2017-07-27 | Samsung Electronics Co., Ltd. | Computing system with cache management mechanism and method of operation thereof |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113126909A (zh) * | 2019-12-31 | 2021-07-16 | 美光科技公司 | 使用已删除记录跨度的光标查找操作 |
CN112363833A (zh) * | 2020-11-10 | 2021-02-12 | 海光信息技术股份有限公司 | 一种网络数据包的内存分配方法、装置及相关设备 |
CN112363833B (zh) * | 2020-11-10 | 2023-01-31 | 海光信息技术股份有限公司 | 一种网络数据包的内存分配方法、装置及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
US20190317688A1 (en) | 2019-10-17 |
CN110377599B (zh) | 2024-01-23 |
US10922011B2 (en) | 2021-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110377599A (zh) | 键值存储装置及其操作方法 | |
CN107180092B (zh) | 一种文件系统的控制方法、装置及终端 | |
KR100885181B1 (ko) | 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법 | |
CN107025178A (zh) | 存储器控制器、非易失性存储器系统及其操作方法 | |
US8140746B2 (en) | Intelligent memory data management | |
CN107957961A (zh) | 存储设备、存储系统和计算设备 | |
US20190042571A1 (en) | Update-Insert for Key-Value Storage Interface | |
US10445022B1 (en) | Optimization of log-structured merge (LSM) tree-based databases using object solid state drive (SSD) devices | |
KR101465789B1 (ko) | 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법 | |
CN109697026A (zh) | 包括主机设备和用于执行清除操作的存储设备的存储系统 | |
WO2018063585A1 (en) | Techniques to manage key-value storage at a memory or storage device | |
US9355027B2 (en) | Zone-based defragmentation methods and user devices using the same | |
JP5813589B2 (ja) | メモリシステムおよびその制御方法 | |
CN108021510A (zh) | 操作对多重名称空间进行管理的存储装置的方法 | |
US10296250B2 (en) | Method and apparatus for improving performance of sequential logging in a storage device | |
CN110618945A (zh) | 存储系统 | |
CN108027764B (zh) | 可转换的叶的存储器映射 | |
CN106662985A (zh) | 主机管理的非易失性存储器 | |
US11875055B2 (en) | Storage device that receives inode address information to reduce external communication overhead | |
US20100318726A1 (en) | Memory system and memory system managing method | |
JP4551328B2 (ja) | 情報記録媒体におけるデータ領域管理方法、及びデータ領域管理方法を用いた情報処理装置 | |
US11269771B2 (en) | Storage device for improving journal replay, operating method thereof, and electronic device including the storage device | |
JP6179355B2 (ja) | 情報処理装置、データ転送制御方法及びデータ転送制御プログラム | |
Xiang et al. | A reliable B-tree implementation over flash memory | |
JP5452735B2 (ja) | メモリコントローラ及びメモリアクセス方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |