CN112988044A - 存储器系统及包括该存储器系统的数据处理系统 - Google Patents
存储器系统及包括该存储器系统的数据处理系统 Download PDFInfo
- Publication number
- CN112988044A CN112988044A CN202010618521.9A CN202010618521A CN112988044A CN 112988044 A CN112988044 A CN 112988044A CN 202010618521 A CN202010618521 A CN 202010618521A CN 112988044 A CN112988044 A CN 112988044A
- Authority
- CN
- China
- Prior art keywords
- memory
- controller
- data
- open
- hierarchy
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file 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/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/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- 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/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
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- 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
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
-
- 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/7209—Validity control, e.g. using flags, time stamps or sequence numbers
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)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种存储器系统。该存储器系统包括具有多个存储器区域的存储介质。控制器被配置为:将存储器区域中的多个开放存储器区域中的每一个分配给一个或多个层级,并且响应于从包括数据和数据的层级的主机装置接收的写入请求,将数据存储到分配给层级的开放存储器区域中。层级可以是预定单位的文件的层级,在预定单位的文件中,数据被包括在例如日志结构合并(LSM)树结构中。
Description
相关申请的交叉引用
本申请要求于2019年12月17日向韩国知识产权局提交的申请号为10-2019-0169138的韩国申请的优先权,该韩国申请通过引用整体并入本文。
技术领域
各个实施例总体涉及一种存储器系统,并且更特别地,涉及一种包括非易失性存储器装置的存储器系统。
背景技术
数据处理系统是能够处理数据的电子或信息系统,并且可以包括以下或与以下相关联:个人计算机、膝上型计算机、智能电话、平板计算机、移动装置、数码相机、游戏机、导航系统、虚拟现实装置、可穿戴装置等。
数据处理系统可以包括存储器系统。存储器系统可以被配置为存储在数据处理系统中处理的数据。存储器系统可以是数据处理系统的一部分,或者可以是联接到数据处理系统的单独的系统。存储器系统可以由以下配置或实施:个人计算机存储卡国际协会(PCMCIA)卡、紧凑型闪存(CF)卡、智能媒体卡、记忆棒、以MMC(多媒体卡)、eMMC(嵌入式MMC)、RS-MMC(尺寸缩小的MMC)和微型MMC形式的多媒体卡、以SD(安全数字)卡、迷你SD和微型SD形式的安全数字卡、通用闪存(UFS)、和/或固态驱动器(SSD)。
发明内容
本公开的各个实施例涉及一种存储器系统以及包括该存储器系统的数据处理系统,其可以减少写入放大,从而提高操作性能并延长存储器系统的寿命。
在实施例中,存储器系统可以包括:存储介质,包括多个存储器区域;控制器,被配置为:将多个存储器区域之中的多个开放存储器区域的每个开放存储器区域分配给一个或多个层级(level);从包括数据和用于该数据的层级的主机装置接收写入请求;其中,层级为预定单位的文件的层级,在预定单位的文件中,数据被包括在日志结构合并(LSM)树结构中;以及响应于接收的写入请求,将数据存储到分配给层级的开放存储器区域中。
在实施例中,存储器系统可以包括:存储介质,包括与多个物理地址相对应的多个存储单元(memory unit);以及控制器,被配置为管理物理地址与逻辑地址之间的映射关系;其中,控制器响应于从主机装置接收的映射改变请求,将先前映射到第一逻辑地址的第一物理地址映射到第二逻辑地址。
在实施例中,数据处理系统可以包括:存储介质,包括多个存储器区域;控制器,被配置为控制存储介质;以及主机装置,被配置为将包括键值对和键值对的层级的写入请求传送到控制器;其中,层级为预定单位的文件的层级,在该预定单位的文件中,键值对被包括在日志结构合并(LSM)树结构中;其中,控制器将多个存储器区域中的多个开放存储器区域的每个开放存储器区域分配给一个或多个层级;并且响应于写入请求,将键值对存储到分配给键值对的层级的开放存储器区域中。
附图说明
图1示出了根据本公开实施例的包括存储器系统的数据处理系统的示例。
图2示出了根据本公开实施例的由主机装置执行的数据管理的示例。
图3示出了根据本公开实施例的存储器系统的层级之间的压缩操作的示例。
图4为示出了根据本公开实施例的存储器系统中的、响应于压缩操作的映射改变的示例的示图。
图5示出了根据本公开实施例的将开放存储器区域分配给层级的方法的示例。
图6示出了根据本公开实施例的开放存储器区域的存储容量的示例。
图7示出了根据本公开实施例的由控制器执行的垃圾收集操作的示例。
图8示出了根据本公开实施例的在无需存储器系统的写入操作的情况下执行的示例性映射改变。
图9示出了根据本公开实施例的包括固态驱动器(SSD)的数据处理系统。
图10示出了根据本公开实施例的包括存储器系统的数据处理系统。
图11示出了根据本公开实施例的包括存储器系统的数据处理系统。
图12示出了根据本公开实施例的包括存储器系统的网络系统。
图13示出了根据本公开实施例的包括在存储器系统中的非易失性存储器装置。
具体实施方式
在本公开中,在阅读以下结合附图的示例性实施例之后,优点、特征和用于实现优点和特征的方法将变得更加明显。然而,本公开可以以不同的形式实施,并且不应被解释为限于本文阐述的实施例。相反,提供这些实施例以将本公开详细地描述到本公开所属领域的技术人员可以容易地实现本公开的技术构思的程度。
在本文中应当理解,本公开的实施例不限于附图中所示的细节,并且附图不一定按比例绘制,并且在一些情况下,比例可能会被放大,以便更清楚地描绘本公开的某些特征。尽管本文中使用了特定术语,但是应当理解,本文中使用的术语仅是出于描述特定实施例的目的,并不旨在限制本公开的范围。
如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任意以及所有组合。将理解的是,当元件被称为“在”另一元件“上”、“连接至”或“联接至”另一元件时,其可以直接在另一元件上、连接或联接至另一元件,或者可以存在中间元件。如本文所使用的,除非上下文另外明确指出,否则单数形式旨在包括复数形式。还将理解的是,当术语“包括”和/或“包括有”在本说明书中使用时,其指定了至少一个所述特征、步骤、操作和/或元件的存在,但并不排除一个或多个其它特征、步骤、操作和/或其元件的存在或添加。
本文通过各种示例和/或实施例并参照附图描述了一种存储器系统和一种包括存储器系统的数据处理系统。
图1示出了根据本公开实施例的包括存储器系统10的数据处理系统1。
数据处理系统1是能够处理数据的电子系统,并且可以包括或实施为个人计算机、膝上型计算机、智能电话、平板计算机、数码相机、游戏机、导航系统、虚拟现实装置、可穿戴装置等的一部分。
数据处理系统1可以包括主机装置20和存储器系统10。
主机装置20可以控制数据处理系统1的一般操作。在一些实施例中,主机装置20基于与主机装置20相关联的数据库向待被存储到存储器系统10中的数据分配层级(LV)。例如,当向存储器系统10传送针对数据的写入请求(WRQ)时,主机装置20可以一起传送数据和用于数据的层级(LV)。本文参照图2描述关于将数据分配给数据的层级(LV)的另外的细节。
存储器系统10可以被配置为响应于主机装置20的写入请求(WRQ)来存储数据。并且,存储器系统10可以被配置为响应于主机装置20的读取请求来向主机装置20提供数据。存储器系统10可以是数据处理系统1的一部分,或者可以独立于并联接到数据处理系统1。
存储器系统10可以由个人计算机存储卡国际协会(PCMCIA)卡、紧凑型闪存(CF)卡、智能媒体卡、记忆棒、以MMC、eMMC、RS-MMC和微型MMC形式的多媒体卡、以SD、迷你SD和微型SD形式的安全数字卡、通用闪存(UFS)、和/或固态驱动器(SSD)配置。
存储器系统10可以包括控制器100和存储介质200。在实施例中,控制器100是管理进入和来自存储介质200的数据流的数字电路。控制器可以独立地形成在芯片上,或者与一个或多个其它电路集成在一起。
控制器100可以控制存储器系统10的一般操作。控制器100可以根据从主机装置20接收的指令来控制存储介质200执行前台操作。前台操作可以包括基于由主机装置20提供的指令将数据写入存储介质200以及从存储介质200读取数据的操作。
此外,控制器100可以控制存储介质200执行对存储介质有用的后台操作,而无需从主机装置20接收任何指令。例如,后台操作可以包括针对存储介质200执行的耗损均衡操作、垃圾收集操作、擦除操作、读取回收操作和/或刷新操作。类似于前台操作,后台操作可以包括将数据写入存储介质200和/或从存储介质200读取数据的操作。
控制器100可以基于写入请求(WRQ)中包括的、与数据相关联的层级(LV),将数据存储到存储介质200的一个或多个开放存储器区域(OPMR)中。例如,控制器100可以将开放存储器区域(OPMR)中的每一个分配给一个或多个层级,并且可以将写入请求的数据存储到分配给数据的层级(LV)的开放存储器区域(OPMR)。因此,除其它益处之外,开放存储器区域(OPMR)中的每一个可以存储具有相似属性的数据,从而提高了存储器系统10的性能。
根据一些实施例,控制器100基于分配有开放存储器区域(OPMR)的一个或多个层级来确定每个开放存储器区域(OPMR)的存储容量。例如,当分配有第一开放存储器区域的一个或多个层级低于分配有第二开放存储器区域的一个或多个层级时,控制器100将第一开放存储器区域的存储容量设置为大于或多于第二开放存储器区域的存储容量。
存储介质200可以响应于从控制器100接收的指令,存储从控制器100传送的数据,并且读取所存储的数据并且将读取的数据传送到控制器100。
存储介质200可以包括一个或多个非易失性存储器装置。非易失性存储器装置可以包括诸如NAND闪存或NOR闪存的闪速存储器装置、FeRAM(铁电随机存取存储器)、PCRAM(相变随机存取存储器)、MRAM(磁性随机存取存储器)、ReRAM(电阻式随机存取存储器)和其它装置。
非易失性存储器装置可以包括一个或多个平面、一个或多个存储器芯片、一个或多个存储器管芯、和/或一个或多个存储器封装。
存储介质200可以包括开放存储器区域(OPMR)。每个开放存储器区域(OPMR)可以存储与该OPMR相对应的一个或多个层级的数据。每个开放存储器区域(OPMR)可以不存储不与该OPMR相对应的层级的数据。本文参照图5描述关于开放存储器区域(OPMR)的另外的细节。
图2示出了根据本公开实施例的由图1的主机装置20执行的数据管理的示例。
主机装置20可以经由诸如RocksDB的嵌入式数据库或其它数据库管理系统(DBMS)来管理数据。例如,主机装置20可以利用各种NoSQL数据库、键值存储结构、日志结构合并(LSM)树结构、和/或其它数据库管理系统、数据库或数据结构操作。
如图2所示,在步骤S21中,当生成数据时,主机装置20可以将键和值(例如,键值对)输入到主机装置20内部的存储器(未示出)的存储器表(memtable)中。存储器表可以是由键值对配置的表结构。存储器表可以包括多个键值对。
在步骤S22中,当存储器表已满(例如,存储器表达到预定容量)时,主机装置20可以将存储器表改变或转换为不能改变数据的不可变存储器表。主机装置20可以生成新存储器表以输入键值对。
在步骤S23中,主机装置20可以基于键对不可变存储器表进行排序,并且可以将存储器系统10中的不可变存储器表作为预定单位的文件(例如,排序静态表(SST)文件)存储到存储器系统10的层级0中。因此,存储器系统10中存储的SST文件可以是存储器系统10的层级0中的数据。
当重复步骤S21至S23时,主机装置20将附加的SST文件存储到存储器系统10的层级0。当层级0(LV0)中的SST文件的数量达到预定值时,在步骤S24中,主机装置20可以对存储器系统10的层级0(LV0)中的SST文件执行压缩操作。例如,主机装置20可以通过压缩操作将层级0(LV0)的SST文件与层级1(LV1)的SST文件合并,以将层级0(LV0)的SST文件转换为层级1(LV1)的SST文件。另外,如步骤S24中所述,主机装置20可以针对存储器系统10的每个和各个层级(例如,LV1至LVN)中的SST文件执行压缩操作。
在一些实施例中,一些或所有层级具有不同的存储容量(例如,存储SST文件的容量),其中存储器系统10中的相对较高层级的存储容量大于或多于相对较低层级的存储容量。例如,层级0(LV0)、最高层级具有比任何较低层级(例如LV1、LV2至LVN)更大或更多的存储容量。
存储器系统10可以包括各种层级或配置。例如,当设计主机装置20的数据库时,可以确定层级的数量(LV0至LVN)、SST文件的大小等。
图3示出了根据本公开实施例的从层级i(LVi)至层级i+1(LVi+1)执行的压缩操作。
参照图3,SST文件的“<>”表示键,并且“{}”表示值。在压缩之前,当层级i(LVi)中存储的SST文件和层级i+1(LVi+1)中存储的SST文件中的每个都包括具有相同键的键值对时,作为较高层级的层级i(LVi)的值可以是新数据,而作为较低层级的层级i+1(LVi+1)的值可以是旧数据。例如,对于键K1,层级i(LVi)的值NEW1可以是新数据,而层级i+1(LVi+1)的值OLD1可以是旧数据。同样地,对于键K2,层级i(LVi)的值NEW2可以是新数据,而层级i+1(LVi+1)的值OLD2可以是旧数据。
在压缩之前,层级i(LVi)中存储的键值对KV1可以对应于逻辑地址LA100至LA200。换言之,键值对KV1分配有逻辑地址LA100至LA200,并存储在存储器系统10中。
层级i+1(LVi+1)的键值对KV2可以对应于逻辑地址LA1200至LA1300。换言之,键值对KV2分配有逻辑地址LA1200至LA1300,并存储在存储器系统10中。
当层级i(LVi)的SST文件的数量达到预定值或阈值时,层级i(LVi)的SST文件可以通过压缩操作与层级i+1(LVi+1)的SST文件合并。例如,在层级i+1(LVi+1)具有相同键的键值对可以由层级i(LVi)的键值对替换。例如,层级i+1(LVi+1)的键值对KV2可以由层级i(LVi)的键值对KV1替换。因此,在压缩操作之后,层级i+1(LVi+1)的键值对KV1可以对应于逻辑地址LA1200至LA1300。
图4示出了根据本公开实施例的在存储器系统10中的、执行压缩操作(例如,参照图3描述的压缩操作)之后的映射变化的示例。
参照图4,控制器100可以将物理地址(PA)映射到逻辑地址(LA),并且管理地址之间和/或存储器系统10与存储介质200之间的映射关系。
如本文所述,每个逻辑地址(LA)可以是由主机装置20分配给数据的地址。当将数据存储到存储器系统10中时,主机装置20可以传送数据和分配给存储器系统10中的数据的逻辑地址(LA)。
每个物理地址(PA)可以是数据存储在存储介质200中的存储单元的地址。因此,当将数据存储在存储介质200中或存储到存储介质200时,控制器100可以将用于数据的逻辑地址(LA)与物理地址(PA)进行映射。随后,当主机装置20使用逻辑地址(LA)请求数据时,控制器100可以基于物理地址(PA)和逻辑地址(LA)之间的映射从存储介质200读取数据,并且可以将从存储介质200读取的数据传送到主机装置20。
在由主机装置20压缩之前,逻辑地址LA100至LA200被映射到物理地址PA500至PA600。例如,与逻辑地址LA100至LA200相对应的键值对KV1可以存储在与存储介质200中的物理地址PA500至PA600相对应的存储单元中。
此外,逻辑地址LA1200至LA1300被映射到物理地址PA850至PA950。例如,与逻辑地址LA1200至LA1300相对应的键值对KV2可以存储在与存储介质200中的物理地址PA850至PA950相对应的存储单元中。
当主机装置20执行将与逻辑地址LA1200至LA1300相对应的数据改变为键值对KV1的压缩操作时,主机装置20可以将写入请求(WRQ)传送到存储器系统10。响应于从主机装置20接收的写入请求(WRQ),控制器100可以执行写入操作以将键值对KV1存储到与存储介质200中的物理地址PA300至PA400相对应的新存储单元中,并且可以将逻辑地址LA1200至LA1300映射到新存储单元的物理地址PA300至PA400。
此外,在主机装置20的控制下,控制器100可以使与物理地址PA500至PA600相对应的存储单元中存储的数据(例如,层级i(LVi)的键值对(KV1))无效。同样地,虽然未示出,但是在主机装置20的控制下,控制器100可以使与物理地址PA850至PA950相对应的存储单元中存储的数据(例如,层级i+1(LVi+1)的键值对(KV2))无效。
在主机装置20执行压缩操作的同时,存储器系统10可能经历增大的且不期望的写入放大。写入放大可能发生在固态驱动器和闪速存储器中,其中写入到存储介质(例如,存储介质200)的信息量是待被写入的信息的逻辑量的倍数。
例如,存储器系统10存储具有物理地址PA500至PA600的存储单元中存储的数据,以及具有物理地址PA300至PA400的存储单元中存储的数据。然而,存储器系统10也可以再次存储尚未实际改变的数据。
另外,存储器系统10的写入放大通常可以随着单个SST文件的大小增大而增大。如果还执行了诸如垃圾收集操作(例如,读取和重新写入数据的操作)的存储器系统10的后台操作,则存储器系统10的写入放大可以进一步增大。除其它缺点外,当写入放大增大时,存储器系统10的性能可能下降,并且存储介质200的损耗可能加速,从而缩短存储器系统10的寿命。
图5示出了根据本公开实施例的将开放存储器区域(OPMR)分配给层级的方法的示例。
控制器100可以对存储介质200中的多个存储器区域进行管理。存储器区域可以是逻辑存储单元。每个存储器区域可以跨越存储介质200中包括的多个非易失性存储器装置形成。每个存储器区域可以形成为包括存储块,该存储块包括在非易失性存储器装置的每一个中并且具有相同的块地址。存储块可以是非易失性存储器装置的擦除单位。每个存储块可以包括可以由物理地址标识的多个存储单元。
每个存储器区域可以包括多个存储器单元(memory cell)。具有从1位到4位的存储容量的存储器单元分别称为单层单元(SLC)、多层单元(MLC)、三层单元(TLC)和四层单元(QLC)。控制器100可以确定存储器区域的存储器单元的存储容量,并且可以将数据存储到存储器区域中直到达到确定的存储容量。
参照图5,存储器区域MR51至MR52充满数据(例如,存储达到确定的存储容量的数据),并且每个存储器区域都没有空闲空间或可用容量。存储器区域MR53至MR54为空闲的并且可用于存储数据。存储器区域MR55和MR56是开放存储器区域(OPMR),并且可以用于存储数据。
控制器100可以同时使用多个开放存储器区域(OPMR),例如图5的MR55和MR56。控制器100可以在开始使用开放存储器区域(OPMR)之前将开放存储器区域(OPMR)中的每一个分配给一个或多个层级。例如,可以将开放存储器区域MR55分配给层级LV0、LV1和LV2,并且可以将开放存储器区域MR56分配给层级LV3和LV4。
控制器100可以将对应层级的数据(例如,键值对)存储到开放存储器区域(OPMR)中的每一个。例如,当从主机装置20接收图1所示的写入请求(WRQ)时,控制器100可以检查写入请求(WRQ)中包括或识别的数据的层级(LV),并且可以从开放存储器区域(OPMR)中确定存储数据的开放存储器区域。
因此,在实施例中,从主机装置20传送到存储器系统10的数据存储在分配给在写入请求(WRQ)中关联和/或识别的层级(LV)的开放存储器区域(OPMR)中。例如,与层级LV0、LV1和LV2相关联的数据可以存储到分配给层级LV0、LV1和LV2的开放存储器区域MR55,并且与层级LV3和LV4相关联的数据可以存储到分配给层级LV3和LV4的开放存储器区域MR56。
根据实施例,取决于单个SST文件的大小,控制器100可以确定要同时使用的开放存储器区域(OPMR)的数量。因此,由于单个SST文件的大小更大,所以控制器100可以使用更多或更大数量的开放存储器区域。
例如,当单个SST文件是64kb时,控制器100可以使用两个开放存储器区域MR55和MR56,如图5所示。作为另一示例,当单个SST文件为256kb时,控制器100可以使用三个开放存储器区域(第一、第二和第三存储器区域)。例如,第一开放存储器区域可以对应于层级0和层级1,第二开放存储器区域可以对应于层级2和层级3,并且第三开放存储器区域可以对应于层级4。
根据实施例,在存储介质200中同时使用的开放存储器区域(OPMR)的总数量可以等于或小于由主机装置20管理的层级的总数量。
根据实施例,主机装置20可以将数据库信息传送到存储器系统10。数据库信息可以包括单个SST文件的大小以及LSM树结构中包括的层级的总数量。控制器100可以基于从主机装置20传送的数据库信息来确定同时使用的开放存储器区域(OPMR)的数量,并且可以确定分配给开放存储器区域(OPMR)中的每一个的层级。
因此,开放存储器区域(OPMR)的每一个中存储的数据可以具有相似的属性。如本文所述,因为在较高层级存储的数据是新数据,而在较低层级存储的数据是旧数据,所以开放存储器区域MR55中存储的数据可以比开放存储器区域MR56中存储的数据更新。
图6示出了根据本公开实施例的开放存储器区域MR55和MR56的存储容量的示例。
参照图6,控制器100可以基于分配有开放存储器区域MR55和MR56中的每一个的层级来确定开放存储器区域MR55和MR56中的每一个的存储容量。例如,因为分配有开放存储器区域MR56的层级LV3和LV4低于分配有开放存储器区域MR55的层级LV0、LV1和LV2,所以控制器100可以将开放存储器区域MR56设置为具有比开放存储器区域MR55更大的存储容量。
例如,控制器100可以将开放存储器区域MR55的存储器单元用作TLC(三层单元),并且可以将开放存储器区域MR56的存储器单元用作QLC(四层单元)。
如本文所述,因为开放存储器区域MR55被分配给更高的层级,所以相对新的数据和较少数量的SST文件将存储在开放存储器区域MR55中。另一方面,因为开放存储器区域MR56被分配给较低的层级,所以相对旧的数据和大量的SST文件将存储在开放存储器区域MR56中。因此,除其它益处之外,为每个层级分配不同的存储容量增加了存储器系统10内的数据供应,使得能够有效利用存储器系统10的容量。
图7示出了根据本公开实施例的由控制器100执行垃圾收集操作(GC)的示例。
参照图7,控制器100可以执行将一个或多个源存储器区域中存储的有效数据存储到目的地存储器区域中,并且擦除源存储器区域中存储的数据的垃圾收集操作(GC)。首先,控制器100可以通过基于各个存储容量将源存储器区域进行划分来执行垃圾收集操作(GC)。在一些情况下,控制器100可以仅选择具有相同的存储容量的存储器区域作为源存储器区域以合并到相同的目的地存储器区域中。
例如,控制器100可以选择具有相同存储容量的存储器区域MR71至MR72作为源存储器区域以合并到公共目的地存储器区域MR73中。而且,控制器100可以选择具有相同存储容量的存储器区域MR74至MR75作为源存储器区域以合并到公共目的地存储器区域MR76中。因此,即使在执行垃圾收集操作(GC)之后,每个目的地存储器区域中存储的所有数据也将具有相似的属性。
在实施例中,基于各个存储容量将源存储器区域进行划分可以包括基于存储的数据的层级对源存储器区域进行划分。控制器100可以选择存储相同层级的数据的存储器区域作为源存储器区域以合并到相同的目的地存储器区域中。例如,参照图6和7,存储器区域MR71至MR72存储具有相同层级LV0、LV1和LV2的数据,并且因此可以被选择为源存储器区域以合并到相同的目的地存储器区域MR73中。而且,存储器区域MR74至MR75存储具有相同层级LV3和LV4的数据,并且因此可以被选择为源存储器区域以合并到相同的目的地存储器区域MR76中。
在一些情况下,例如通过将具有相似属性的数据存储到相同的目的地存储器区域中来对具有相似属性的数据进行管理,可以有助于提高存储器系统10的性能。例如,由于具有相似属性的数据以相似速度失效,因此可以减少垃圾收集操作(GC)的成本。
虽然图7示出了源存储器区域MR71至MR72和MR74至MR75分为两组,并合并到两个目的地存储器区域MR73和MR76中的垃圾收集操作(GC),但是也可以考虑任意或全部数量的源存储器区域或目的地存储器区域。例如,在同时使用k个数量的开放存储器区域的操作中,可以将源存储器区域划分为k个数量的组,并且可以合并到k个数量的目的地存储器区域中。
图8示出了根据本公开实施例的,当执行图3的压缩操作时,在无需存储器系统10的写入操作的情况下执行的映射改变的代表示例。
参照图8,主机装置20可以向存储器系统10传送映射改变请求,以将与逻辑地址LA100至LA200相对应的键值对KV1与逻辑地址LA1200至LA1300进行匹配。由主机装置20传送的映射改变请求可以包括逻辑地址LA100至LA200以及逻辑地址LA1200至LA1300。
响应于从主机装置20接收映射改变请求,控制器100可以将最初映射到逻辑地址LA100至LA200的物理地址PA500至PA600映射到逻辑地址LA1200至LA1300。当映射到逻辑地址LA1200至LA1300时,与物理地址PA500至PA600相对应的存储单元中存储的数据(例如,键值对KV1)可以被有效地维持(例如,维持在有效状态)。
此外,控制器100可以取消映射或取消逻辑地址LA100至LA200与物理地址PA500至PA600之间的映射关系。
另外,虽然未示出,但是响应于接收映射改变请求,控制器100可以使与物理地址PA850至PA950相对应的存储单元中存储的数据(例如,层级i+1(LVi+1)的键值对KV2)无效。在一些实施例中,在由主机装置20执行的与映射改变请求和/或相关联的映射改变操作无关的控制操作期间,控制器100可以使层级i+1(LVi+1)的键值对KV2无效。
因此,可以省略通常在映射改变操作期间执行的一些写入操作。例如,可以省略如图4所示的对用于物理地址PA300至PA400的键值对KV1的写入操作。因此,存储器系统10可以通过主机装置20在存储介质200上实现成功的压缩结果,而无需对存储介质200执行写入操作。
因此,存储器系统10可以省略不必要的写入操作。除其它益处之外,通过省略写入操作,存储器系统10减少了由于写入操作引起的写入放大,从而提高了存储器系统10的性能并延长了存储器系统10的寿命。
图9示出了根据实施例的包括固态驱动器(SSD)1200的数据处理系统1000。参照图9,数据处理系统1000可以包括主机装置1100和SSD 1200。
主机装置1100可以以与图1所示的主机装置20相同的方式配置。
SSD 1200可以包括控制器1210、缓冲存储器装置1220、非易失性存储器装置1231至123n、电源1240、信号连接器1250以及电源连接器1260。
控制器1210可以控制SSD 1200的一般操作。控制器1210可以以与图1所示的控制器100相同的方式配置。
控制器1210可以包括主机接口单元1211、控制单元1212、随机存取存储器1213、错误校正码(ECC)单元1214以及存储器接口单元1215。
主机接口单元1211可以通过信号连接器1250与主机装置1100交换信号(SGL)。信号(SGL)可以包括命令、地址、数据等。主机接口单元1211可以根据主机装置1100的协议接口连接主机装置1100与SSD 1200。例如,主机接口单元1211可以通过诸如安全数字、通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、个人计算机存储卡国际协会(PCMCIA)、并行高级技术附件(PATA)、串行高级技术附件(SATA)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、外围组件互连(PCI)、高速PCI(PCI-E)和/或通用闪存(UFS)的标准接口协议中的任意一种与主机装置1100通信。
控制单元1212可以分析和处理从主机装置1100接收的信号(SGL)。控制单元1212可以根据用于驱动SSD 1200的固件或软件来控制内部功能块的操作。随机存取存储器1213可以用作用于驱动固件或软件的工作存储器。
ECC单元1214可以生成待传送到非易失性存储器装置1231至123n中的至少一个的数据的奇偶校验数据。生成的奇偶校验数据可以与数据一起存储到非易失性存储器装置1231至123n中。ECC单元1214可以基于奇偶校验数据来检测从非易失性存储器装置1231至123n中的至少一个读取的数据的错误。如果检测的错误在可校正范围内,则ECC单元1214可以校正检测的错误。
存储器接口单元1215可以根据控制单元1212的控制将诸如命令和地址的控制信号提供给非易失性存储器装置1231至123n中的至少一个。此外,根据来自控制单元1212的控制指令,存储器接口单元1215可以与非易失性存储器装置1231至123n中的至少一个交换数据。例如,存储器接口单元1215可以将缓冲存储器装置1220中存储的数据提供给非易失性存储器装置1231至123n中的至少一个,或者将从非易失性存储器装置1231至123n中的至少一个读取的数据提供给缓冲存储器装置1220。
缓冲存储器装置1220可以临时存储待存储在非易失性存储器装置1231至123n中的至少一个中的数据。此外,缓冲存储器装置1220可以临时存储从非易失性存储器装置1231至123n中的至少一个读取的数据。可以根据来自控制器1210的控制指令,将缓冲存储器装置1220中临时存储的数据传送到主机装置1100或非易失性存储器装置1231至123n中的至少一个。
非易失性存储器装置1231至123n可以用作SSD 1200的存储介质。非易失性存储器装置1231至123n可以通过多个通道CH1至CHn分别与控制器1210联接。一个或多个非易失性存储器装置可以联接到一个通道。联接到每个通道的非易失性存储器装置可以联接到相同的信号总线和数据总线。
电源1240可以将通过电源连接器1260输入的电力(PWR)提供到SSD 1200的内部。电源1240可以包括辅助电源1241。辅助电源1241可以提供电力,以在发生突然断电时允许SSD 1200正常终止。辅助电源1241可以包括大容量电容器。
根据主机装置1100和SSD 1200之间的接口方案,信号连接器1250可以由各种类型的连接器配置。
根据主机装置1100的电源方案,电源连接器1260可以由各种类型的连接器配置。
图10示出了根据实施例的包括存储器系统2200的数据处理系统2000。参照图10,数据处理系统2000可以包括主机装置2100以及存储器系统2200。
主机装置2100可以以诸如印刷电路板的板的形式配置。尽管未示出,但是主机装置2100可以包括用于执行主机装置的功能的内部功能块。
主机装置2100可以包括诸如插座、插槽或连接器的连接端子2110。存储器系统2200可以安装到连接端子2110。
存储器系统2200可以以诸如印刷电路板的板的形式配置。存储器系统2200可以是存储器模块或存储卡。存储器系统2200可以包括控制器2210、缓冲存储器装置2220、非易失性存储器装置2231和2232、电源管理集成电路(PMIC)2240以及连接端子2250。
控制器2210可以控制存储器系统2200的一般操作。控制器2210可以以与图9所示的控制器1210相同的方式配置。
缓冲存储器装置2220可以临时存储待存储到非易失性存储器装置2231和2232中的数据。此外,缓冲存储器装置2220可以临时存储从非易失性存储器装置2231和2232读取的数据。根据控制器2210的控制,缓冲存储器装置2220中临时存储的数据可以被传送到主机装置2100或非易失性存储器装置2231和2232。
非易失性存储器装置2231和2232可以用作存储器系统2200的存储介质。
PMIC 2240可以将通过连接端子2250输入的电力向存储器系统2200内提供。PMIC2240可以根据控制器2210的控制来管理存储器系统2200的电力。
连接端子2250可以联接到主机装置2100的连接端子2110。通过连接端子2250,诸如命令、地址、数据等的信号以及电力可以在主机装置2100和存储器系统2200之间传输。根据主机装置2100与存储器系统2200之间的接口方案,连接端子2250可以被配置成各种类型。连接端子2250可以设置在存储器系统2200的任意一侧。
图11示出了根据实施例的包括存储器系统3200的数据处理系统3000。参照图11,数据处理系统3000可以包括主机装置3100以及存储器系统3200。
主机装置3100可以以板的形式配置,例如印刷电路板。尽管未示出,但是主机装置3100可以包括用于执行主机装置的功能的内部功能块。
存储器系统3200可以以表面安装型封装的形式配置。存储器系统3200可以通过焊球3250安装到主机装置3100。存储器系统3200可以包括控制器3210、缓冲存储器装置3220和非易失性存储器装置3230。
控制器3210可以控制存储器系统3200的一般操作。控制器3210可以以与图9所示的控制器1210相同的方式配置。
缓冲存储器装置3220可以临时存储待存储到非易失性存储器装置3230中的数据。此外,缓冲存储器装置3220可以临时存储从非易失性存储器装置3230读取的数据。根据来自控制器3210的控制指令,缓冲存储器装置3220中临时存储的数据可以被传送到主机装置3100或非易失性存储器装置3230。
非易失性存储器装置3230可以用作存储器系统3200的存储介质。
图12为示出了根据实施例的包括存储器系统4200的网络系统4000的示图。参照图12,网络系统4000可以包括通过网络4500联接的服务器系统4300和多个客户端系统4410至4430。
服务器系统4300可以响应于来自多个客户端系统4410至4430的请求来进行数据服务。例如,服务器系统4300可以存储从多个客户端系统4410至4430提供的数据。再例如,服务器系统4300可以向多个客户端系统4410至4430提供数据。
服务器系统4300可以包括主机装置4100和存储器系统4200。存储器系统4200可以类似于图1所示的存储器系统100、图9所示的存储器系统1200、图10所示的存储器系统2200、和/或图11所示的存储器系统3200。
图13示出了根据实施例的存储器系统中包括的非易失性存储器装置300。参照图13,非易失性存储器装置300可以包括存储器单元阵列310、行解码器320、数据读取/写入块330、列解码器340、电压生成器350以及控制逻辑360。
存储器单元阵列310可以包括设置在字线WL1至WLm与位线BL1至BLn彼此相交的区域处的存储器单元MC。
行解码器320可以通过字线WL1至WLm与存储器单元阵列310联接。行解码器320可以根据来自控制逻辑360的控制指令进行操作。行解码器320可以解码从外部装置(未示出)提供的地址。行解码器320可以基于解码结果选择并驱动字线WL1至WLm。例如,行解码器320可以将从电压生成器350提供的字线电压提供给字线WL1至WLm。
数据读取/写入块330可以通过位线BL1至BLn与存储器单元阵列310联接。数据读取/写入块330可以包括分别与位线BL1至BLn相对应的读取/写入电路RW1至RWn。数据读取/写入块330可以根据来自控制逻辑360的控制指令进行操作。数据读取/写入块330可以根据各种操作模式作为写入驱动器或读出放大器而操作。例如,在写入操作中,数据读取/写入块330可以作为将从外部装置提供的数据存储到存储器单元阵列310中的写入驱动器而操作。再例如,在读取操作中,数据读取/写入块330可以作为从存储器单元阵列310读取数据的读出放大器而操作。
列解码器340可以根据来自控制逻辑360的控制指令进行操作。列解码器340可以解码从外部装置提供的地址。列解码器340可以基于解码结果,将分别与位线BL1至BLn相对应的数据读取/写入块330的读取/写入电路RW1至RWn与数据输入/输出线或数据输入/输出缓冲器联接。
电压生成器350可以生成待在非易失性存储器装置300的内部操作中使用的电压。由电压生成器350生成的电压可以施加到存储器单元阵列310的存储器单元。例如,通过编程操作生成的编程电压可以施加到待执行编程操作的存储器单元的字线。再例如,通过擦除操作生成的擦除电压可以施加到待执行擦除操作的存储器单元的阱区。作为另一示例,通过读取操作生成的读取电压可以施加到待执行读取操作的存储器单元的字线。
控制逻辑360可以基于从外部装置提供的控制信号来控制非易失性存储器装置300的一般操作。例如,控制逻辑360可以控制非易失性存储器装置300的操作,诸如非易失性存储器装置300的读取操作、写入操作和擦除操作。
尽管上文已经描述了各个实施例,但是本领域技术人员将理解,所描述的实施例仅是示例。因此,不应基于所描述的实施例来限制本文描述的存储器系统以及包括该存储器系统的数据处理系统。
Claims (20)
1.一种存储器系统,包括:
存储介质,包括多个存储器区域;以及
控制器:
将所述多个存储器区域之中的多个开放存储器区域的每一个分配给一个或多个层级;
从包括数据和用于所述数据的层级的主机装置接收写入请求;所述层级为预定单位的文件的层级,在所述预定单位的文件中,数据被包括在日志结构合并树结构,即LSM树结构中;以及
响应于接收的所述写入请求,将所述数据存储到分配给所述层级的开放存储器区域中。
2.根据权利要求1所述的存储器系统,其中,所述控制器基于分配有所述开放存储器区域中的每一个的一个或多个层级来确定所述开放存储器区域中的每一个的存储容量。
3.根据权利要求2所述的存储器系统,其中,当分配有第一开放存储器区域的一个或多个层级低于分配有第二开放存储器区域的一个或多个层级时,所述控制器将所述第一开放存储器区域的存储容量设置为大于所述第二开放存储器区域的存储容量。
4.根据权利要求2所述的存储器系统,其中,所述控制器选择具有相似存储容量的存储器区域作为源存储器区域以合并到相同的目的地存储器区域中。
5.根据权利要求1所述的存储器系统,其中,所述控制器选择存储相同层级的数据的存储器区域作为源存储器区域以合并到相同的目的地存储器区域中。
6.根据权利要求1所述的存储器系统,其中,所述控制器根据所述文件的大小确定所述开放存储器区域的数量。
7.一种存储器系统,包括:
存储介质,包括与多个物理地址相对应的多个存储单元;以及
控制器,管理所述物理地址与逻辑地址之间的映射关系;
其中,所述控制器响应于从主机装置接收的映射改变请求,将先前映射到第一逻辑地址的第一物理地址映射到第二逻辑地址。
8.根据权利要求7所述的存储器系统,其中,所述控制器响应于所述映射改变请求,将所述第一逻辑地址与所述第一物理地址之间的映射关系取消映射。
9.根据权利要求7所述的存储器系统,其中,所述控制器响应于所述映射改变请求,将与所述第一物理地址相对应的存储单元中存储的数据保持在有效状态。
10.根据权利要求7所述的存储器系统,其中,所述控制器响应于所述映射改变请求,使与映射到所述第二逻辑地址的第二物理地址相对应的存储单元中存储的数据无效。
11.根据权利要求7所述的存储器系统,
其中,所述映射改变请求包括所述第一逻辑地址和所述第二逻辑地址;
其中,所述第一逻辑地址对应于日志结构合并树结构,即LSM树结构中的、具有高层级的键值对;
其中,所述第二逻辑地址对应于所述LSM树结构中的、具有低层级的键值对。
12.一种数据处理系统,包括:
存储介质,包括多个存储器区域;
控制器,控制所述存储介质;以及
主机装置,将包括键值对和所述键值对的层级的写入请求传送到所述控制器;所述层级为预定单位的文件的层级,在所述预定单位的文件中,所述键值对被包括在日志结构合并树结构,即LSM树结构中;
其中,所述控制器:
将所述多个存储器区域中的多个开放存储器区域的每一个分配给一个或多个层级;并且
响应于所述写入请求,将所述键值对存储到分配给所述键值对的层级的开放存储器区域中。
13.根据权利要求12所述的数据处理系统,其中,所述控制器基于分配有所述开放存储器区域的一个或多个层级,来确定所述开放存储器区域中的每一个的存储容量。
14.根据权利要求13所述的数据处理系统,其中,当分配有第一开放存储器区域的一个或多个层级低于分配有第二开放存储器区域的一个或多个层级时,所述控制器将所述第一开放存储器区域的存储容量设置为大于所述第二开放存储器区域的存储容量。
15.根据权利要求13所述的数据处理系统,其中,所述控制器选择具有相似存储容量的存储器区域作为源存储器区域以合并到相同的目的地存储器区域中。
16.根据权利要求12所述的数据处理系统,其中,所述控制器选择存储相同层级的数据的存储器区域作为源存储器区域以合并到相同的目的地存储器区域中。
17.根据权利要求12所述的数据处理系统,
其中,所述主机装置向所述控制器传送数据库信息,并且
其中,所述控制器基于所述数据库信息确定所述开放存储器区域的数量,并且确定分配有所述开放存储器区域的一个或多个层级。
18.根据权利要求17所述的数据处理系统,其中,所述数据库信息包括所述文件的大小以及所述LSM树结构中包含的层级的总数量。
19.根据权利要求12所述的数据处理系统,其中,所述存储介质为NAND闪存装置或NOR闪存装置。
20.根据权利要求12所述的数据处理系统,其中,所述存储介质包括一个或多个非易失性存储器装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0169138 | 2019-12-17 | ||
KR1020190169138A KR20210077467A (ko) | 2019-12-17 | 2019-12-17 | 메모리 시스템 및 그것을 포함하는 데이터 처리 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112988044A true CN112988044A (zh) | 2021-06-18 |
Family
ID=76317972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010618521.9A Withdrawn CN112988044A (zh) | 2019-12-17 | 2020-06-30 | 存储器系统及包括该存储器系统的数据处理系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11487669B2 (zh) |
KR (1) | KR20210077467A (zh) |
CN (1) | CN112988044A (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11126378B1 (en) * | 2020-05-27 | 2021-09-21 | Western Digital Technologies, Inc. | Rate limit on the transitions of zones to open |
US11194521B1 (en) | 2020-05-27 | 2021-12-07 | Western Digital Technologies, Inc. | Rate limit on the transitions of streams to open |
KR102389609B1 (ko) * | 2020-09-25 | 2022-04-21 | 연세대학교 산학협력단 | 쓰기 최적화 데이터베이스에서의 디스크 스캔 연산 gpu 오프로딩 방법 |
KR102545480B1 (ko) * | 2021-07-29 | 2023-06-20 | 단국대학교 산학협력단 | 존 스토리지에서의 키-값 스토어 파일 저장 장치 및 방법 |
KR20230096359A (ko) * | 2021-12-23 | 2023-06-30 | 재단법인대구경북과학기술원 | LSM-tree 및 근사 인덱싱에 기반한 FTL을 이용하는 SSD 장치 및 그 동작 방법 |
CN115168317B (zh) * | 2022-07-29 | 2023-04-07 | 北京志凌海纳科技有限公司 | 一种lsm树存储引擎构建方法和系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10289722B2 (en) | 2015-11-17 | 2019-05-14 | Samsung Electronics Co., Ltd. | System and methods for multi-level key-value store |
US10691693B2 (en) * | 2018-01-30 | 2020-06-23 | Salesforce.Com, Inc. | Cache for efficient record lookups in an LSM data structure |
US10445022B1 (en) * | 2018-04-26 | 2019-10-15 | Alibaba Group Holding Limited | Optimization of log-structured merge (LSM) tree-based databases using object solid state drive (SSD) devices |
US10909102B2 (en) * | 2018-12-06 | 2021-02-02 | Vmware, Inc. | Systems and methods for performing scalable Log-Structured Merge (LSM) tree compaction using sharding |
US11093472B2 (en) * | 2018-12-07 | 2021-08-17 | Vmware, Inc. | Using an LSM tree file structure for the on-disk format of an object storage platform |
US11436139B2 (en) * | 2019-05-10 | 2022-09-06 | Microsoft Technology Licensing, Llc | Object storage change-events |
US11392555B2 (en) * | 2019-05-15 | 2022-07-19 | Pure Storage, Inc. | Cloud-based file services |
-
2019
- 2019-12-17 KR KR1020190169138A patent/KR20210077467A/ko active Search and Examination
-
2020
- 2020-05-28 US US16/886,485 patent/US11487669B2/en active Active
- 2020-06-30 CN CN202010618521.9A patent/CN112988044A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US11487669B2 (en) | 2022-11-01 |
US20210182202A1 (en) | 2021-06-17 |
KR20210077467A (ko) | 2021-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111506516B (zh) | 数据存储装置及数据存储装置的操作方法 | |
US11487669B2 (en) | Memory system for storing data of log-structured merge tree structure and data processing system including the same | |
CN110908594B (zh) | 存储器系统的操作方法和存储器系统 | |
CN109783008B (zh) | 数据存储装置及其操作方法 | |
US20200117559A1 (en) | Data storage device and operating method thereof | |
KR102592803B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN110837342A (zh) | 数据存储装置及其操作方法 | |
US20220138096A1 (en) | Memory system | |
US11681462B2 (en) | Memory system, operating method thereof and computing system | |
CN111752852A (zh) | 数据存储装置及数据存储装置的操作方法 | |
CN110389907B (zh) | 电子装置 | |
CN115701577A (zh) | 存储器系统和存储器系统的控制器 | |
CN114764396A (zh) | 数据存储装置及其操作方法 | |
CN113885782A (zh) | 存储装置及其操作方法 | |
KR20190091035A (ko) | 메모리 시스템 및 그것의 동작 방법 | |
CN113704138A (zh) | 存储装置及其操作方法 | |
KR20210156010A (ko) | 저장 장치 및 그 동작 방법 | |
CN113220216A (zh) | 数据存储设备及其操作方法 | |
CN112286443A (zh) | 控制器、存储器系统及其操作方法 | |
CN108804338B (zh) | 数据存储装置及其操作方法 | |
US11720276B2 (en) | Memory system and controller for managing write status | |
CN114385070B (zh) | 主机、数据存储装置、数据处理系统以及数据处理方法 | |
CN109840214B (zh) | 数据存储装置及其操作方法 | |
CN112328516A (zh) | 控制器、控制器的操作方法以及包括控制器的存储装置 | |
CN113805793A (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210618 |