CN112306903A - 数据存储设备、其操作方法及其控制器 - Google Patents
数据存储设备、其操作方法及其控制器 Download PDFInfo
- Publication number
- CN112306903A CN112306903A CN202010231045.5A CN202010231045A CN112306903A CN 112306903 A CN112306903 A CN 112306903A CN 202010231045 A CN202010231045 A CN 202010231045A CN 112306903 A CN112306903 A CN 112306903A
- Authority
- CN
- China
- Prior art keywords
- mapping
- data
- segments
- controller
- 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.)
- 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/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- 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
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- 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/31—Providing disk cache in a specific location of a storage system
- G06F2212/312—In storage controller
-
- 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/46—Caching storage objects of specific type in disk cache
- G06F2212/466—Metadata, control data
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种数据存储设备。该数据存储设备可以包括:存储装置;以及控制器,被配置成响应于主机的请求控制存储装置,其中控制器包括映射数据管理组件,该映射数据管理组件被配置成:生成一个或多个映射段,映射段中的每个包括多条映射数据,映射数据表示主机的逻辑地址和存储装置的物理地址之间的映射信息;将映射段存储在存储装置中;将映射段中的每个中的映射数据分组为一个或多个子段;并且以子段为单位加载映射段中的每个中的映射数据。
Description
相关申请的交叉引用
本申请要求于2019年7月24日向韩国知识产权局提交的申请号为10-2019-0089374的韩国申请的优先权,其通过引用整体并入本文。
技术领域
各个实施例总体涉及一种半导体集成设备,并且更特别地,涉及一种数据存储设备、其操作方法及其控制器。
背景技术
存储装置电连接到主机,并且在主机的请求下执行数据输入/输出操作。存储装置可以使用各种存储介质来存储数据,例如,可以采用诸如闪速存储器设备的非易失性存储器设备作为存储介质。
在闪速存储器设备中,不可以重写或原地(in-place)更新,并且读取/写入单位和擦除单位不同。因此,需要将与主机的读取/写入请求一起提供的逻辑地址映射到物理地址,并且处理主机的请求。
逻辑地址和物理地址之间的映射信息存储在非易失性存储器设备中,并且如果需要,可以被加载到缓冲存储器以供使用。
发明内容
在实施例中,一种数据存储设备可以包括:存储装置;以及控制器,被配置成响应于主机的请求控制存储装置,其中控制器包括映射数据管理组件,该映射数据管理组件被配置成:生成一个或多个映射段,映射段中的每个包括多条映射数据,该映射数据表示主机的逻辑地址和存储装置的物理地址之间的映射信息;将映射段存储在存储装置中;将映射段中的每个中的映射数据分组为一个或多个子段;并且以子段为单位加载映射段中的每个中的映射数据。
在实施例中,一种数据存储设备的操作方法,该数据存储设备包括存储装置和响应于主机的请求控制存储装置的控制器,该数据存储设备的操作方法包括:通过控制器生成一个或多个映射段并且将映射段存储在存储装置中,映射段中的每个中包括多条映射数据,该映射数据是主机的逻辑地址和存储装置的物理地址之间的映射信息;通过控制器将一个或多个映射段中的每个分组为一个或多个子段;并且以一个或多个子段为单位加载映射段中的每个中的映射数据。
在实施例中,一种数据存储设备的控制器,该控制器响应于主机的请求控制存储装置,可以包括:映射表管理组件,被配置成生成一个或多个映射段并且将映射段存储在存储装置中,其中映射段中的每个包括多条映射数据,该映射数据表示主机的逻辑地址和存储装置的物理地址之间的映射信息;以及子段管理组件,被配置成:将映射段中的每个中的映射数据分组为一个或多个子段;并且以子段为单位加载一个或多个映射段中的每个中的映射数据。
在实施例中,一种存储器系统可以包括:存储器装置,包括多个存储区域,并且被配置成存储具有映射段的信息和相应元数据的映射表;以及控制器,被配置成:以子段为单位将映射段的信息高速缓存在控制器中;基于高速缓存的信息控制存储器装置执行操作;并且作为操作的结果,以子段为单位更新映射段,其中映射段包括多个子段,每个子段包括分别对应于存储区域的一条或多条映射数据,并且其中元数据包括映射段和各个子段的有效性信息。
附图说明
图1是示出根据实施例的数据存储设备的配置的示图。
图2是示出根据实施例的控制器的配置的示图。
图3是示出根据实施例的映射数据管理组件的配置的示图。
图4是用于说明根据实施例的映射数据管理技术的示图。
图5是用于说明根据实施例的映射数据管理方法的示图。
图6是用于说明根据实施例的数据存储设备的操作方法的示图。
图7是示出根据实施例的计算设备的配置的示图。
图8是用于说明根据实施例的计算设备的操作方法的示图。
图9是示出根据实施例的数据存储系统的示图。
图10和图11是示出根据实施例的数据处理系统的示图。
图12是示出根据实施例的包括数据存储装置的网络系统的示图。
图13是示出根据实施例的数据存储装置中包括的非易失性存储器装置的框图。
具体实施方式
下文中,下面参照附图更详细地描述数据存储设备、其操作方法及其控制器。在整个说明书中,对“实施例”等的参考不一定针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。类似地,术语“一”和“一个”表示一个或多个,除非上下文另有说明,或者从上下文中可以清楚地表示仅指一个。
图1是根据实施例的数据存储设备的配置图。
参照图1,数据存储设备10可以包括控制器110和存储装置120。
控制器110可以响应于主机的请求来控制存储装置120。例如,控制器110可以响应于主机的编程(写入)请求来控制待编程到存储装置120中的数据。此外,控制器110可以响应于主机的读取请求向主机提供写入在存储装置120中的数据。
存储装置120可以在控制器110的控制下写入数据或输出写入的数据。存储装置120可以包括易失性存储器设备或非易失性存储器设备。在实施例中,存储装置120可以使用诸如以下的各种非易失性存储器装置中的任意一种来实施:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)和/或自旋转移力矩磁性RAM(STT-MRAM)。存储装置120可以包括多个管芯、多个芯片或多个封装。此外,存储装置120可以包括存储器单元阵列,存储器单元阵列中的每一个单元可以是存储一位数据的单层单元或存储多位数据的多层单元。
在实施例中,存储装置120可以包括多个非易失性存储器(NVM)设备,例如NVM设备121至124。
根据实施例的控制器110可以包括映射数据管理组件20。映射数据管理组件20可以管理构成存储装置120的物理存储空间的物理地址和由主机分配给存储装置120的逻辑地址之间的映射信息。
在实施例中,映射数据管理组件20可以以单位对多个映射数据分组来配置映射段,其中映射数据是逻辑地址和物理地址之间的映射信息。可以将一组映射段管理为映射表。映射表中的每一个映射段的位置可以由索引表管理。
索引表和映射表可以存储在存储装置120中。当数据存储设备10启动时,索引表和映射表可以被加载到控制器110的工作存储器并且由控制器110的工作存储器引用。在实施例中,可以将整个索引表加载到工作存储器,并且将根据预定条件选择的一些映射段加载到工作存储器。
当映射段的大小较小时,索引表的大小可增加。由于控制器110的工作存储器的限制,索引表的大小也可能受到限制。随着存储装置120的容量增加,映射段的大小也逐渐增加。映射段的加载时间和映射段的大小成比例,并且当更新映射数据时,用于更新包括改变的映射数据的映射段的成本增加。
映射数据管理组件20可以通过划分映射段来配置子段,并且以子段为单位将映射段加载到工作存储器以进行更新。此外,由于映射数据管理组件20可以管理特定段或子段被引用的次数、针对每一个映射段中的每一个子段的有效性等,因此可以针对每一个子段进行独立处理,从而可以确保映射数据管理的灵活性。特别地,当通过位图管理子段的有效性时,可以最小化映射数据管理所需的数据。
图2是根据实施例的控制器的配置图。
参照图2,控制器110可以包括处理器111、主机接口(IF)113、ROM 1151、RAM 1153、存储器接口(IF)117以及映射数据管理组件20。
处理器111可以被配置成将用于存储装置120的数据读取或写入操作的各种类型的控制信息传输到主机IF113、RAM 1153、存储器IF117以及映射数据管理组件20。在实施例中,处理器111可以根据针对数据存储设备10的各种操作所提供的固件进行操作。在实施例中,处理器111可以以硬件和由硬件执行的软件的组合的形式配置,以执行包括用于管理存储装置120的各种功能的闪存转换层(FTL)的功能。
FTL可以提供诸如垃圾收集、地址映射和损耗均衡的功能,以及用于管理构成存储装置120的多个存储块中的每一个的属性的功能、用于检测和校正从存储装置120读取的数据的错误的错误检测和校正(ECC)功能等。
主机IF113可以提供用于在处理器111的控制下从主机接收命令和时钟信号并且控制数据输入/输出的通信通道。主机IF113可以提供主机和数据存储设备10之间的物理连接。主机IF113可以对应于主机的总线格式来提供与数据存储设备10的接口连接。主机的总线格式可以包括诸如以下的标准接口协议中的至少一种:安全数字、通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、个人计算机存储卡国际协会(PCMCIA)、并行高级技术附件(PATA)、串行高级技术附件(SATA)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、外围组件互连(PCI)、高速PCI(PCI-E)和/或通用闪存(UFS)。
ROM 1151可以存储用于控制器110的操作的程序代码,例如固件或软件,并且可以存储程序代码使用的代码数据等。
RAM 1153可以存储用于控制器110的操作的数据或由控制器110生成的数据。
处理器111可以在启动操作时将存储在存储装置120或ROM 1151中的启动代码加载到RAM 1153,从而控制数据存储设备10的启动操作。
存储器IF117可以提供用于控制器110和存储装置120之间的信号传输/接收的通信通道。
映射数据管理组件20可以管理映射数据,该映射数据包括构成存储装置120的存储空间的物理地址和由主机分配给数据存储设备10的逻辑地址之间的映射信息。映射数据存储在存储装置120中,并且如果需要,控制器110可以从存储装置120读取和使用映射数据。
映射数据管理组件20可以将映射数据之中的满足确定条件的映射数据,例如,主机的请求中包括的映射数据、被引用超过设置次数的映射数据或用于执行数据存储设备10的后台操作的映射数据,从存储装置120加载到RAM 1153。
映射数据管理组件20可以以单位对映射数据MD分组来配置至少一个映射段SEG,并且控制器110可以将具有与映射段SEG的大小对应的大小的多个映射高速缓存行分配给RAM 1153。该单位可以具有固定大小或预定大小。
如果当执行根据主机的请求的操作或后台操作时更新了映射数据,则映射数据管理组件20可以将更新的映射数据反映在存储装置120中。
图3是根据实施例的映射数据管理组件的示图,并且图4是用于说明根据实施例的映射数据管理技术的示图。
参照图3,映射数据管理组件20可以包括映射表管理组件210、索引表管理组件220和子段管理组件230。
如图4所示,映射表管理组件210可以以单位对映射数据MD分组来配置一个或多个映射段SEG0至SEGn,其中映射数据MD是主机的逻辑地址和存储装置120的物理地址之间的映射信息。一组映射段SEG0至SEGn可以被管理为映射表L2。在实施例中,可以通过顺序地对连续的逻辑地址进行分组来配置映射段SEG0至SEGn。
索引表管理组件220可以将构成映射表L2的映射段SEG0至SEGn中的每一个的存储位置配置为索引表L1,以当存储装置120不支持原地更新时,管理有效映射段的存储位置。
子段管理组件230可以通过根据设置标准对映射段SEG0至SEGn中的每一个进行划分来配置子段。因此,映射段SEG0至SEGn中的每一个可以包括多个子段。
映射表管理组件210可以将与确定数量的逻辑地址对应的一组映射数据管理为映射段。子段管理组件230可以以划分单位来划分每一个映射段中包括的映射数据来配置子段。在实施例中,控制器110可以从存储装置120读取数据的最小单位可以是页面,并且用于配置子段的划分单位可以是最小读取单位(页面,P)的倍数;然而,本发明不限于此。
当映射段SEG0至SEGn中的每一个包括与L个连续逻辑地址对应的映射数据MD,并且通过以最小读取单位P(例如,4KB大小)的M倍划分映射段SEG0至SEGn来配置子段时,每一个子段可以包括与L/(P*M)个逻辑地址对应的映射数据MD。单个逻辑地址可以表示存储一条映射数据MD的存储区域。其中L是大于或等于P的自然数,并且M是自然数。
当配置子段时,子段管理组件230可以生成和管理每一个映射段的元数据。
在实施例中,控制器110可以在RAM 1153内分配具有映射段SEG的大小的高速缓存行。可以以子段为单位将根据确定条件选择的映射数据高速缓存在所分配的高速缓存行中。
当数据存储设备10启动时,可以以子段为单位将索引表L1以及映射表L2的至少一部分加载到控制器110的RAM 1153并且由控制器110的RAM 1153引用。当映射数据在数据存储设备10的操作期间改变时,可以以子段为单位来更新映射数据。
图5是用于说明根据实施例的映射数据管理方法的示图。图5示例了映射表L2。
参照图5,可以看出,映射段SEG0至SEGn分别被划分为子段SS00至SS0m、SS10至SS1m、SS20至SS2m、SS30至SS3m、...、SSn0至SSnm,并且元数据MCMB0至MCMBn分别分配给映射段SEG0至SEGn。
元数据MCMB0至MCMBn中的每一个可以包括图5中表示为Valid的映射段有效性字段、图5中表示为SEG#的映射段识别字段以及图5中表示为Bitmap的子段有效性字段。
映射段有效性字段可以指示相应的映射段是否有效。映射段识别字段可以指示分配给相应映射段的识别信息。子段有效性字段可以指示相应映射段中包括的每一个子段是否有效。
子段可以包括多条映射数据MD0至MDl,并且可以根据子段有效性字段中的位图来表示每一个子段是否有效。例如,当一个映射段SEG被划分为(m+1)个子段时,子段有效性字段可以包括(m+1)个位的信息。例如,当特定子段处于有效状态时,子段有效性字段可以通过“1”表示,并且例如,当特定子段无效时,子段有效性字段可以通过“0”表示;然而,由于可以使用相反规定,因此本发明不限于此。
根据本发明的实施例,子段管理组件230可以将映射段划分为子段,并且针对每一个映射段SEG独立地管理每一个子段的有效性。因此,可以以子段为单位来将映射数据加载在工作存储器中并且在工作存储器中进行更新,以确保映射数据管理的灵活性。特别地,当通过位图管理子段的有效性时,可以使映射数据管理所需的数据最小化。
图6是用于说明根据实施例的数据存储设备的操作方法的示图。
当操作数据存储设备10时,存储在存储装置120中的映射表L2的至少部分映射数据可以被加载到控制器110的RAM 1153,其中RAM 1153用作映射高速缓存。
在实施例中,索引表L1的全部或一些条目可以被加载到索引表高速缓存L1′。映射表L2包括多个子段,并且可以将根据确定条件选择的至少一个子段加载到映射表高速缓存L2′。具有映射段SEG的大小的至少一个高速缓存行可以被分配给映射表高速缓存L2′。
在实施例中,可以将包括以下的映射段的子段加载到在映射表高速缓存L2′内分配的高速缓存行:主机的请求中包括的映射数据、被引用超过设置次数的映射数据或执行数据存储设备10本身的后台操作所需的映射数据。
当映射数据被加载到RAM 1153时,对映射数据的访问速度提高,因此数据存储设备10可以高速操作。
当存储装置120的容量增加时,映射段的大小也增加。根据本发明的实施例,通过划分映射段来配置子段,并且以子段为单位将映射数据加载在工作存储器中并且在工作存储器中进行更新,从而可以使加载和更新映射数据的成本最小化。
参照图6,即使当映射段SEG0、SEG1、SEG3和SEGn中的部分映射数据需要加载到映射表高速缓存L2′时,也不需要将映射段SEG0、SEG1、SEG3和SEGn中的所有映射数据加载到映射表高速缓存L2′。相反,可以仅仅将映射段SEG0、SEG1、SEG3和SEGn的子段之中的、满足确定条件的子段SS00至SS0m、SS10、SS13、SS31、SS32和SSn4加载到映射表高速缓存L2′。
此外,通过将元数据MCMB0至MCMBn分别与映射段SEG0至SEGn相关联,可以通过位图来管理每一个子段的有效性。因此,当重复数据读取/写入操作并且改变映射信息或取消映射时,可以通过改变位图信息,以子段为单位而非以映射段为单位来使映射数据无效。
因此,由于优化了用于处理映射数据的处理单位,因此可以高效地加载和更新映射数据。
最近,为了提高数据存储设备10的响应速度,已经研究了将映射数据加载到设置在主机中的存储器以供使用的技术。
图7是根据实施例的计算设备的配置图。
参照图7,计算设备100可以包括主机130和数据存储设备10。
主机130可以包括处理器11、主存储器(HMEM)13、装置接口(IF)15、用户接口(IF)17以及附加(应用)装置19。
处理器11可以控制计算设备100的全部操作并执行逻辑运算。处理器11可以是基于硬件的数据处理装置,包括物理上被配置成执行代码或程序中包括的命令的电路。
HMEM 13可以包括主机130的主存储器或与处理器11通信的计算设备100。待由处理器11执行和引用的代码和数据可以临时存储在HMEM 13中。处理器11可以通过使用HMEM13来执行操作系统、应用等的代码并处理数据。HMEM 13可以是包括诸如静态RAM(SRAM)、动态RAM(DRAM)和同步DRAM(SDRAM)的易失性存储器,或者诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻RAM(RRAM)和/或铁电RAM(FeRAM)的非易失性存储器的各种随机存取存储器中的任意一种。
装置IF15可以提供主机130和数据存储设备10之间的物理连接。
用户IF17可以在处理器11的控制下与用户通信。例如,用户IF17可以包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、照相机、麦克风、陀螺仪传感器和振动传感器的用户输入接口。用户IF17可以包括例如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器的用户输出接口。
附加(应用)装置19可以包括使计算设备100能够通过各种有线或无线通信协议与外部装置通信的通信模块、图像捕获装置等。
数据存储设备10可以包括控制器110和存储装置120,并且可以被配置为图1至图3所示的数据存储设备10。因此,数据存储设备10可以通过以设置单位对映射数据分组来配置映射段并且通过划分每一个映射段来配置子段,其中映射数据是逻辑地址和物理地址之间的映射信息。
主机130可以将需要长期存储的数据存储在数据存储设备10中。数据存储设备10可以存储诸如启动映像、操作系统以及用于驱动计算设备100的应用的各种类型的软件的源代码以及由源代码处理的数据。
数据存储设备10的控制器110可以管理各种元数据以用于管理存储装置120。元数据被存储在存储装置120中,并且如果需要,控制器110可以控制将元数据从存储装置120加载并驻留在装置存储器中以供使用。
在实施例中,元数据可以包括映射数据MD。控制器110可以将映射段的子段作为主机映射高速缓存数据而加载到HMEM 13中,其中该映射段的子段包括整个映射数据MD或整个映射数据MD之中的、满足确定条件的映射数据,例如主机的请求中包括的映射数据、被引用超过设置次数的映射数据或者用于执行数据存储设备10本身的后台操作所需的映射数据。因此,主机130可以通过参考加载到HMEM 13的主机映射高速缓存数据来将包括物理地址的命令传送到数据存储设备10。当主机130的命令与物理地址一起被请求时,数据存储设备10的控制器110可以执行地址转换或省略从存储装置120读取映射数据MD的操作。因此,减少了数据存储设备10处理主机130的请求所花费的时间,从而可以提高计算设备100的操作速度。
图8是用于说明根据实施例的计算设备的操作方法的示图。
如图8所示,主机130的处理器11可以将主机映射高速缓存数据存储空间131分配到HMEM 13。主机映射高速缓存数据存储空间131可以包括多个主机单元区域HU。
为了存储新的主机映射高速缓存数据HLMAP,处理器11可以分配主机单元区域HU。当不存在待分配主机单元区域HU的剩余区域时,处理器11可以在多个主机单元区域HU之中选择满足设置标准的主机单元区域HU。然后,处理器11可以将所选择的主机单元区域HU中的主机映射高速缓存数据HLMAP更新为新的主机映射高速缓存数据HLMAP。
数据存储设备10的控制器110可以将映射高速缓存区域1150分配给RAM 1153。映射高速缓存区域1150可以被划分为装置单元区域DU,装置单元区域DU是具有与映射段SEG的大小相对应的大小的多个高速缓存行。可以将存储装置120中存储的整个映射数据MD或通过设置标准而选择的子段高速缓存在分配给RAM 1153的装置单元区域DU中。
当映射段SEG被划分为多个子段时,构成映射段SEG的所有或一些子段可以存储在分配给每一个映射段SEG的装置单元区域DU中。
分配给RAM 1153的装置单元区域DU的大小可以与分配给HMEM13的主机单元区域HU的大小不同。因此,考虑到主机单元区域HU的大小,可以选择在装置单元区域DU中高速缓存的至少一个子段,并且将该至少一个子段高速缓存在主机单元区域HU中。
也就是说,为了最大程度地利用分配给HMEM 13的主机单元区域HU,可以选择具有与主机单元区域HU的大小相对应的大小的子段,并且将该子段高速缓存在主机130的HMEM13中。
图9是示出根据实施例的数据存储系统1000的示图。
参照图9,数据存储系统1000可以包括主机装置1100和数据存储装置1200。在实施例中,数据存储装置1200可以被配置为固态驱动器(SSD)。
数据存储装置1200可以包括控制器1210、多个非易失性存储器装置1220-0至1220-n、缓冲存储器装置1230、电源1240、信号连接器1101和电源连接器1103。
控制器1210可以控制数据存储装置1200的一般操作。控制器1210可以包括主机接口、控制组件、用作工作存储器的随机存取存储器、错误校正码(ECC)组件和存储器接口。在实施例中,控制器1210可以被配置为图1和图2所示的控制器110。
主机装置1100可以通过信号连接器1101与数据存储装置1200交换信号。信号可以包括命令、地址、数据等。
控制器1210可以分析和处理从主机装置1100接收的信号。控制器1210可以根据用于驱动数据存储装置1200的固件或软件来控制内部功能块的操作。
缓冲存储器装置1230可以临时存储待存储在非易失性存储器装置1220-0至1220-n中的至少一个中的数据。进一步地,缓冲存储器装置1230可以临时存储从非易失性存储器装置1220-0至1220-n中的至少一个读取的数据。根据控制器1210的控制,临时存储在缓冲存储器装置1230中的数据可以被传送到主机装置1100或非易失性存储器装置1220-0至1220-n中的至少一个。
非易失性存储器装置1220-0至1220-n可以用作数据存储装置1200的存储介质。非易失性存储器装置1220-0至1220-n可以分别通过多个通道CH0至CHn与控制器1210联接。一个或多个非易失性存储器装置可以联接到一个通道。联接到每一个通道的非易失性存储器装置可以联接到相同的信号总线和数据总线。
电源1240可以将通过电源连接器1103输入的电力提供到数据存储装置1200的控制器1210、非易失性存储器装置1220-0至1220-n和缓冲存储器装置1230。电源1240可以包括辅助电源。辅助电源可以供应电力,以允许数据存储装置1200在发生突然断电时合适地终止。辅助电源可以包括足以存储所需电荷的大容量电容器。
信号连接器1101可根据主机装置1100和数据存储装置1200之间的接口方案而被配置成各种类型的连接器中的任意一种。
电源连接器1103可以根据主机装置1100的电力供应方案而被配置成各种类型的连接器中的任意一种。
图10是示出根据实施例的数据处理系统3000的示图。参照图10,数据处理系统3000可以包括主机装置3100和存储器系统3200。
主机装置3100可以以诸如印刷电路板的板的形式配置。尽管未示出,但是主机装置3100可以包括用于执行主机装置的功能的内部功能块。
主机装置3100可以包括诸如插座、插槽或连接器的连接端子3110。存储器系统3200可以与连接端子3110配合。
存储器系统3200可以以诸如印刷电路板的板的形式配置。存储器系统3200可以被称为存储器模块或存储卡。存储器系统3200可以包括控制器3210、缓冲存储器装置3220、非易失性存储器装置3231和3232、电源管理集成电路(PMIC)3240以及连接端子3250。
控制器3210可以控制存储器系统3200的一般操作。控制器3210可以以与图1至图3所示的控制器110相同的方式配置。
缓冲存储器装置3220可以临时存储待存储在非易失性存储器装置3231和3232中的数据。进一步地,缓冲存储器装置3220可以临时存储从非易失性存储器装置3231和3232读取的数据。根据控制器3210的控制,临时存储在缓冲存储器装置3220中的数据可以被传送到主机装置3100或非易失性存储器装置3231和3232。
非易失性存储器装置3231和3232可以用作存储器系统3200的存储介质。
PMIC 3240可以将通过连接端子3250输入的电力提供到存储器系统3200的内部。PMIC 3240可以根据控制器3210的控制来管理存储器系统3200的电力。
连接端子3250可以联接到主机装置3100的连接端子3110。通过连接端子3250,诸如命令、地址、数据等的信号以及电力可以在主机装置3100和存储器系统3200之间传输。连接端子3250可以根据主机装置3100和存储器系统3200之间的接口方案而被配置为各种类型中的任意一种。如图所示,连接端子3250可以设置在或位于存储器系统3200的一侧。
图11是示出根据实施例的数据处理系统4000的示图。参照图11,数据处理系统4000可以包括主机装置4100和存储器系统4200。
主机装置4100可以以诸如印刷电路板的板的形式配置。尽管未示出,但是主机装置4100可以包括用于执行主机装置的功能的内部功能块。
存储器系统4200可以以表面安装型封装的形式配置。存储器系统4200可以通过焊球4250安装到主机装置4100。存储器系统4200可以包括控制器4210、缓冲存储器装置4220和非易失性存储器装置4230。
控制器4210可以控制存储器系统4200的一般操作。控制器4210可以以与图1至图3所示的控制器110相同的方式配置。
缓冲存储器装置4220可以临时存储待存储在非易失性存储器装置4230中的数据。进一步地,缓冲存储器装置4220可以临时存储从非易失性存储器装置4230读取的数据。根据控制器4210的控制,临时存储在缓冲存储器装置4220中的数据可以传输到主机装置4100或非易失性存储器装置4230。
非易失性存储器装置4230可以用作存储器系统4200的存储介质。
图12是示出根据实施例的包括数据存储装置的网络系统5000的示图。参照图12,网络系统5000可以包括通过网络5500联接的服务器系统5300和多个客户端系统5410、5420和5430。
服务器系统5300可以响应于来自多个客户端系统5410至5430的请求来服务数据。例如,服务器系统5300可以存储由多个客户端系统5410至5430提供的数据。再例如,服务器系统5300可以将数据提供到多个客户端系统5410至5430。
服务器系统5300可以包括主机装置5100和存储器系统5200。存储器系统5200可以被配置为图1所示的存储器系统10、图9所示的数据存储装置1200、图10所示的存储器系统3200或图11所示的存储器系统4200。
图13是示出根据实施例的诸如数据存储装置10的数据存储装置中包括的非易失性存储器装置300的框图。参照图13,非易失性存储器装置300可以包括存储器单元阵列310、行解码器320、数据读取/写入块330、列解码器340、电压生成器350和控制逻辑360。
存储器单元阵列310可以包括布置在字线WL1至WLm和位线BL1至BLn彼此相交的区域处的存储器单元MC。
存储器单元阵列310可以包括具有在相对于半导体衬底的平坦表面的垂直方向上延伸的堆叠结构的三维存储器阵列。此外,三维存储器阵列还覆盖包括NAND串的结构,NAND串中的存储器单元垂直于半导体衬底的平坦表面堆叠。
三维存储器阵列的结构不限于上述示例。可以以具有水平方向性和垂直方向性的高度集成方式来形成存储器阵列结构。在实施例中,在三维存储器阵列的NAND串中,在相对于半导体衬底的表面的平行方向和垂直方向上布置存储器单元。存储器单元可以被不同地间隔开,以提供不同的集成度。
行解码器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可以基于解码结果,将数据读取/写入块330的、分别对应于位线BL1至BLn的读取/写入电路RW1至RWn与数据输入/输出线或数据输入/输出缓冲器联接。
电压生成器350可以生成将用于非易失性存储器装置300的内部操作的电压。通过电压生成器350生成的电压可以被施加到存储器单元阵列310的存储器单元。例如,在编程操作中生成的编程电压可被施加到待执行编程操作的存储器单元的字线。再例如,在擦除操作中生成的擦除电压可被施加到待执行擦除操作的存储器单元的阱区域。又例如,在读取操作中生成的读取电压可被施加到待执行读取操作的存储器单元的字线。
控制逻辑360可以基于由外部装置提供的控制信号来控制非易失性存储器装置300的一般操作。例如,控制逻辑360可以控制非易失性存储器装置300的操作,诸如非易失性存储器装置300的读取操作、写入操作和擦除操作。
尽管已经示出和描述了各种实施例,但是本领域技术人员将理解的是,所描述的实施例仅是示例。因此,本发明不由任意公开的实施例限制或受限于任意公开的实施例。相反,本发明涵盖落入权利要求范围内的任意公开的实施例的所有修改和变化。
Claims (22)
1.一种数据存储设备,包括:
存储装置;以及
控制器,响应于主机的请求控制所述存储装置,
其中所述控制器包括映射数据管理组件,所述映射数据管理组件:
生成一个或多个映射段,所述映射段中的每个包括多条映射数据,所述映射数据表示所述主机的逻辑地址和所述存储装置的物理地址之间的映射信息;
将所述映射段存储在所述存储装置中;
将所述映射段中的每个中的映射数据分组为一个或多个子段;并且
以所述子段为单位加载所述映射段中的每个中的映射数据。
2.根据权利要求1所述的数据存储设备,其中所述映射数据管理组件将映射段识别信息、映射段有效性信息和所述映射段中的所述一个或多个子段中的每个的有效性信息作为所述映射段中的每个的元数据来管理。
3.根据权利要求2所述的数据存储设备,其中所述子段的有效性信息通过位图数据表示。
4.根据权利要求1所述的数据存储设备,其中所述映射数据管理组件通过以从所述存储装置读取数据的单位的倍数划分所述映射段中的每个,来将所述映射段中的每个中的映射数据分组为一个或多个子段。
5.根据权利要求1所述的数据存储设备,进一步包括工作存储器,所述工作存储器临时存储所述存储装置和所述控制器响应于所述主机的请求进行操作的数据。
6.根据权利要求5所述的数据存储设备,其中所述工作存储器位于所述控制器的内部或外部。
7.根据权利要求1所述的数据存储设备,
其中所述主机提供工作存储器,所述工作存储器临时存储所述存储装置和所述控制器进行操作的数据,以及
其中所述控制器以所述子段为单位将所述映射段加载到所述工作存储器。
8.一种控制器,所述控制器响应于主机的请求控制存储装置,所述控制器包括:
映射表管理组件,所述映射表管理组件:
生成一个或多个映射段,所述映射段中的每个包括多条映射数据,所述映射数据表示所述主机的逻辑地址和所述存储装置的物理地址之间的映射信息;并且
将所述映射段存储在所述存储装置中;以及
子段管理组件,所述子段管理组件:
将所述映射段中的每个中的映射数据分组为一个或多个子段;并且
以所述子段为单位加载所述一个或多个映射段中的每个中的映射数据。
9.根据权利要求8所述的控制器,其中所述映射表管理组件通过顺序地对连续的逻辑地址分组来生成所述映射段。
10.根据权利要求8所述的控制器,进一步包括索引表管理组件,所述索引表管理组件管理所述映射段的存储位置。
11.根据权利要求8所述的控制器,其中所述子段管理组件将映射段识别信息、映射段有效性信息和所述映射段中的所述一个或多个子段中的每个的有效性信息作为所述映射段中的每个的元数据来管理。
12.根据权利要求11所述的控制器,其中所述子段的有效性信息通过位图数据表示。
13.根据权利要求8所述的控制器,其中所述子段管理组件通过以从所述存储装置读取数据的单位的倍数划分所述一个或多个映射段中的每个,来将所述映射段中的每个中的映射数据分组为一个或多个子段。
14.根据权利要求8所述的控制器,进一步包括工作存储器,所述工作存储器临时存储所述存储装置和所述控制器响应于所述主机的请求进行操作的数据。
15.根据权利要求8所述的控制器,
其中所述主机提供工作存储器,所述工作存储器临时存储所述存储装置和所述控制器进行操作的数据,以及
其中所述控制器以所述子段为单位将所述映射段加载到所述工作存储器。
16.一种数据存储设备的操作方法,所述数据存储设备包括存储装置和响应于主机的请求控制所述存储装置的控制器,所述操作方法包括:
通过所述控制器生成一个或多个映射段并且将所述映射段存储在所述存储装置中,所述映射段中的每个包括多条映射数据,所述映射数据是所述主机的逻辑地址和所述存储装置的物理地址之间的映射信息;
通过所述控制器将所述一个或多个映射段中的每个中的映射数据分组为一个或多个子段;并且
以所述一个或多个子段为单位加载所述映射段中的每个中的映射数据。
17.根据权利要求16所述的操作方法,进一步包括:通过所述控制器将映射段识别信息、映射段有效性信息和所述映射段中包括的所述一个或多个子段中的每个的有效性信息作为所述映射段中的每个的元数据来管理。
18.根据权利要求17所述的操作方法,其中所述子段的有效性信息通过位图数据表示。
19.根据权利要求16所述的操作方法,其中将所述一个或多个映射段中的每个中的映射数据分组为一个或多个子段包括:以从所述存储装置读取数据的单位的倍数来划分所述映射段中的每个。
20.根据权利要求16所述的操作方法,
其中所述数据存储设备进一步包括工作存储器,所述工作存储器临时存储所述存储装置和所述控制器响应于所述主机的请求进行操作的数据,以及
其中所述工作存储器是所述控制器的内部存储器或外部存储器。
21.根据权利要求16所述的操作方法,
其中所述主机提供工作存储器,所述工作存储器临时存储所述存储装置和所述控制器进行操作的数据,以及
其中所述映射数据的加载包括:以所述子段为单位将所述映射段加载到所述工作存储器。
22.一种存储器系统,包括:
存储器装置,包括多个存储区域,并且存储具有映射段的信息和相应元数据的映射表;以及
控制器,所述控制器:
以子段为单位将所述映射段的信息高速缓存在所述控制器中;
基于所高速缓存的信息控制所述存储器装置执行操作;并且
作为所述操作的结果,以所述子段为单位更新所述映射段,
其中所述映射段包括多个子段,所述子段中的每个包括分别对应于所述存储区域的一条或多条映射数据,以及
其中所述元数据包括所述映射段和各个所述子段的有效性信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0089374 | 2019-07-24 | ||
KR1020190089374A KR20210012157A (ko) | 2019-07-24 | 2019-07-24 | 데이터 저장 장치 및 동작 방법과, 이를 위한 컨트롤러 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112306903A true CN112306903A (zh) | 2021-02-02 |
Family
ID=74187750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010231045.5A Withdrawn CN112306903A (zh) | 2019-07-24 | 2020-03-27 | 数据存储设备、其操作方法及其控制器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210026782A1 (zh) |
KR (1) | KR20210012157A (zh) |
CN (1) | CN112306903A (zh) |
-
2019
- 2019-07-24 KR KR1020190089374A patent/KR20210012157A/ko not_active Application Discontinuation
-
2020
- 2020-02-19 US US16/794,917 patent/US20210026782A1/en not_active Abandoned
- 2020-03-27 CN CN202010231045.5A patent/CN112306903A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
KR20210012157A (ko) | 2021-02-03 |
US20210026782A1 (en) | 2021-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11543987B2 (en) | Storage system and method for retention-based zone determination | |
US11543990B2 (en) | Data storage apparatus with extended lifespan and operation method thereof | |
KR20190008643A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN111414133A (zh) | 操作存储器控制器和存储器系统的方法以及存储器系统 | |
US20220236903A1 (en) | Data storage apparatus and operation method thereof | |
US10963399B2 (en) | Memory system, computing apparatus and operation method thereof | |
US11086786B2 (en) | Storage system and method for caching a single mapping entry for a random read command | |
KR20190082513A (ko) | 컨트롤러 및 그것의 동작방법 | |
US11847343B2 (en) | Storage system and method for non-blocking coherent re-writes | |
US11119938B2 (en) | Apparatus and method to synchronize memory map between a storage device and host | |
US11487450B1 (en) | Storage system and method for dynamic allocation of control blocks for improving host write and read | |
CN113568565B (zh) | 存储器控制器及其操作方法 | |
US11507309B2 (en) | Storage system and method for using memory allocated in a host for read data as a host memory buffer | |
US11030106B2 (en) | Storage system and method for enabling host-driven regional performance in memory | |
US20210026782A1 (en) | Data storage apparatus, operating method thereof, and controller therefor | |
US11847332B2 (en) | Data storage apparatus and operating method thereof | |
CN111666232B (zh) | 数据处理系统及其操作方法 | |
US11429663B2 (en) | Storage system and method for host-assisted memory block color coding for faster media search | |
US11513963B2 (en) | Data storage device and method for application identifier handler heads-up for faster storage response | |
US11263127B2 (en) | Data storage device, method of operating the same, and controller for the same | |
US20220155998A1 (en) | Storage System and Method for Token Provisioning for Faster Data Access | |
US20230409234A1 (en) | Data Storage Device and Method for Host Multi-Command Queue Grouping Based on Write-Size Alignment in a Multi-Queue-Depth Environment | |
KR20220080273A (ko) | 데이터 저장 장치 및 그 동작 방법 | |
CN114077388A (zh) | 存储器控制器及其操作方法 | |
CN117519577A (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 |
Application publication date: 20210202 |
|
WW01 | Invention patent application withdrawn after publication |