CN111324557A - 数据存储装置、其操作方法以及包括其的存储系统 - Google Patents

数据存储装置、其操作方法以及包括其的存储系统 Download PDF

Info

Publication number
CN111324557A
CN111324557A CN201910996002.3A CN201910996002A CN111324557A CN 111324557 A CN111324557 A CN 111324557A CN 201910996002 A CN201910996002 A CN 201910996002A CN 111324557 A CN111324557 A CN 111324557A
Authority
CN
China
Prior art keywords
metadata
cache
mapping
data
region
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
Application number
CN201910996002.3A
Other languages
English (en)
Other versions
CN111324557B (zh
Inventor
李钟容
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mimi Ip Co ltd
Original Assignee
SK Hynix Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN111324557A publication Critical patent/CN111324557A/zh
Application granted granted Critical
Publication of CN111324557B publication Critical patent/CN111324557B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种数据存储装置,该数据存储装置可以包括储存器以及控制器,其中控制器包括:地址转换器,被配置成分别生成多个映射数据和多个映射数据的多个元数据,每个映射数据包括与逻辑地址对应的储存器的物理地址;描述符高速缓存管理器,被配置成将新元数据添加到描述符高速缓存的存储区域,并且分配头指针和尾指针以选择描述符高速缓存中的位置,用于新元数据的存储区域与存储多个元数据中的最后元数据的存储区域物理连续;映射高速缓存管理器,被配置成将多个映射数据存储在映射高速缓存中;以及映射搜索组件,被配置成根据由头指针和尾指针确定的搜索范围来搜索描述符高速缓存。

Description

数据存储装置、其操作方法以及包括其的存储系统
相关申请的交叉引用
本申请要求于2018年12月17日提交的申请号为10-2018-0162875的韩国申请的优先权,该韩国申请通过引用整体并入本文。
技术领域
各个实施例总体涉及一种半导体集成设备,并且更特别地,涉及一种数据存储装置、数据存储装置的操作方法以及包括数据存储装置的存储系统。
背景技术
数据存储装置电连接至主机装置,并且在主机装置的请求下执行数据输入和输出(输入/输出)操作。数据存储装置可以使用各种存储介质来存储数据。
数据存储装置可以将数据存储在诸如硬盘驱动器(HDD)的磁盘中或者诸如固态驱动器(SSD)或存储卡特别是非易失性存储器的半导体存储器装置中。
使用闪速存储器的存储介质的优点在于该存储介质具有大容量、非易失性、低单位成本、低功耗和高数据处理速度。
在不能重写或原地更新的诸如闪速存储器的数据存储装置的情况下,与主机装置的请求(例如,读取请求或写入请求)一起提供的逻辑地址需要映射到物理地址以处理主机装置的请求。
因此,在主机装置的请求下添加新的地址映射信息和检索地址映射信息可以是确定数据存储装置的性能的重要因素之一。
发明内容
在实施例中,一种数据存储装置可以包括:储存器;以及控制器,被配置成响应于从主机装置接收的请求来控制储存器,其中控制器包括:地址转换器,被配置成分别生成多个映射数据和多个映射数据的多个元数据,每个映射数据包括与逻辑地址对应的储存器的物理地址;描述符高速缓存管理器,被配置成将新元数据添加到描述符高速缓存的存储区域,并且分配头指针和尾指针以选择描述符高速缓存中的位置,用于新元数据的存储区域与存储多个元数据中的最后元数据的存储区域物理连续;映射高速缓存管理器,被配置成将多个映射数据存储在映射高速缓存中;以及映射搜索组件,被配置成根据由头指针和尾指针确定的搜索范围来搜索描述符高速缓存。
在实施例中,提供一种数据存储装置的操作方法,该数据存储装置包括储存器和控制器,该控制器在从主机装置传送的请求下控制将数据输入到储存器/从储存器输出数据并且包括映射搜索组件,该操作方法可以包括:由控制器响应于主机装置的请求来生成多个映射数据和多个映射数据的多个元数据,每个映射数据包括与逻辑地址对应的储存器的物理地址;由控制器将新元数据添加到描述符高速缓存的存储区域,用于新元数据的存储区域与存储多个元数据中的最后元数据的存储区域物理连续;由控制器分配头指针和尾指针以选择描述符高速缓存中的位置;由控制器将多个映射数据存储在映射高速缓存中;以及由控制器根据由头指针和尾指针确定的搜索范围来搜索描述符高速缓存。
在实施例中,一种存储系统可以包括:主机装置;储存器;以及控制器,被配置成在从主机装置传送的请求下控制将数据输入到储存器/从储存器输出数据,其中控制器被配置成在主机装置的写入请求下生成映射数据和映射数据的元数据,该映射数据包括与逻辑地址对应的物理地址信息,将元数据添加到描述符高速缓存中物理连续的地址区域中,并且根据由头指针和尾指针确定的搜索范围来搜索描述符高速缓存。
在实施例中,一种存储装置可以包括:储存器;以及控制器,适于响应于来自主机装置的请求控制存存器,其中控制器包括:数据生成器,适于分别生成多个映射数据和多个映射数据的多个元数据,每个映射数据包括对应于与请求相关联的逻辑地址的储存器的物理地址;映射高速缓存,适于存储多个映射数据;元数据高速缓存,适于存储多个元数据,每个元数据包括指示映射高速缓存的、用于相应映射数据的区域的指示信息;数据管理器,适于将多个映射数据存储在映射高速缓存中,将多个元数据存储在元数据高速缓存中,生成头指针和尾指针,并且在元数据高速缓存的、头指针和尾指针之间的搜索区域中搜索元数据,其中头指针指示元数据高速缓存的、存储多个元数据之中的第一元数据的头区域,尾指针指示元数据高速缓存的、待存储紧接在多个元数据之中的最后元数据之后的下一元数据的尾区域。
在实施例中,一种数据存储装置的操作方法可以包括:分别生成多个映射数据和多个映射数据的多个元数据,每个映射数据包括对应于与请求相关联的逻辑地址的储存器的物理地址,每个元数据包括指示映射高速缓存的、用于相应映射数据的区域的指示信息;将多个映射数据存储在映射高速缓存中并且将多个元数据存储在元数据高速缓存中;生成头指针和尾指针,该头指针指示元数据高速缓存的、存储多个元数据之中的第一元数据的头区域,该尾指针指示元数据高速缓存的、待存储紧接在多个元数据之中的最后元数据之后的下一元数据的尾区域;以及在元数据高速缓存的、头指针和尾指针之间的搜索区域中搜索元数据。
附图说明
图1是示出根据实施例的数据存储装置的示图。
图2是示出根据实施例的控制器的示图。
图2A是示出根据实施例的控制器的示图。
图3是示出根据实施例的描述符高速缓存管理器的示图。
图4是示出根据实施例的映射数据的元数据的示图。
图5是示出根据实施例的数据存储装置的操作方法的流程图。
图6至图10是示出当添加新映射数据时元数据管理方法的示例的示图。
图10A是示出根据实施例的数据存储装置的操作方法的流程图。
图11是示出根据实施例的数据存储系统的示图。
图12和图13是示出根据实施例的数据处理系统的示图。
图14是示出包括根据实施例的数据存储装置的网络系统的示图。
图15是示出根据实施例的数据存储装置中包括的非易失性存储器装置的框图。
具体实施方式
下面参照附图通过各个实施例描述数据存储装置、数据存储装置的操作方法以及包括数据存储装置的存储系统。在整个说明书中,对“实施例”等的参考不一定仅针对一个实施例,并且对任意这种短语的不同参考不一定针对相同的实施例。
图1是示出根据实施例的数据存储装置10的示图。
参照图1,数据存储装置10可以包括控制器110和储存器120。
控制器110可以响应于从主机装置(未示出)接收的请求来控制储存器120。例如,控制器110可以响应于主机装置的编程(或写入)请求来引导数据编程在储存器120中。此外,控制器110可以响应于主机装置的读取请求将写入在储存器120中的数据提供至主机装置。
储存器120可以在控制器110的控制下将数据写入储存器120中或输出写入的数据。储存器120可以包括易失性存储器装置或非易失性存储器装置。在实施例中,储存器120可以使用诸如下列的各种非易失性存储器装置中的任意一种来实施:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)和/或自旋转移矩磁性RAM(STT-MRAM)。储存器120可以包括多个存储器装置。存储器装置中的每一个可以包括多个管芯、多个芯片或多个封装。多个存储器装置可以通过多个通道电连接至控制器110。每个存储器装置可以通过其自己的通道电连接至控制器110,或者多个存储器装置可以共用相同的通道。电连接至一个通道的存储器装置可以电连接至相同的信号总线和数据总线。
储存器120可以包括存储器单元阵列。阵列中的每个单元可以是存储一位数据的单层单元或存储多位数据的多层单元。
在各个实施例中,储存器120可以利用NAND闪速存储器来实施。NAND闪速存储器是在写入数据之前需要执行擦除操作的不可重写存储器装置。此外,可以以页面为单位执行NAND闪速存储器的编程操作,并且可以以块为单位执行擦除操作。因此,在主机装置请求更新时,存储有原始数据的页面实质上保持原样,并且更新数据被编程在新的位置。因此,当储存器120被配置为NAND闪速存储器时,需要管理从主机装置接收的逻辑地址与储存器120的物理地址之间的映射信息(即,映射数据)。根据待映射的地址区域的单位,可以使用作为地址映射技术的页面映射技术、块映射技术或混合映射技术。
在实施例中,控制器110可以包括缓冲存储器130、地址转换器20和数据管理器30。
当数据存储装置10与主机装置协作执行诸如编程操作和读取操作的一系列操作时,缓冲存储器130可以作为能够临时存储数据的空间。虽然图1示出缓冲存储器130嵌入在控制器110中的布置,但是注意的是,缓冲存储器130可以设置在控制器110外部。
地址转换器20可以接收与主机装置的写入请求对应的逻辑地址,并且将逻辑地址转换成与该逻辑地址对应的、储存器120的物理地址。地址转换器20可以基于物理地址生成映射数据和元数据。
数据管理器30可以将地址转换器20生成的映射数据和元数据存储在特定区域中。
此外,响应于主机装置的读取请求,数据管理器20可以通过参考数据管理器30搜索与逻辑地址对应的物理地址。
当主机装置向数据存储装置10提供写入数据和包括至少一个逻辑地址的写入命令时,控制器110的地址转换器20可以将从主机装置接收的逻辑地址转换成物理地址。此外,地址转换器20可以生成映射数据和与该映射数据对应的元数据。数据管理器30可以将作为地址转换结果而生成的映射数据和元数据存储在特定位置。然后,控制器110可以将物理地址和写入数据传送到储存器120,并且请求执行编程操作。在各个实施例中,映射数据和元数据可以存储在诸如缓冲存储器130或存储器(例如,图2的随机存取存储器(RAM)1153)的、控制器110内的特定存储空间或区域中。RAM 1153可以利用动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)来实施。在各个实施例中,用于存储映射数据的存储区域可以被称为映射高速缓存,并且用于存储元数据的存储区域可以被称为描述符高速缓存(或元数据高速缓存)。
在实施例中,当地址转换器20将逻辑地址转换成物理地址时,可以生成元数据。如图4所示,每个元数据可以包括相应映射数据的描述符和偏移。描述符可以包括描述符标识符(ID)、索引(Index)、相应映射数据的压缩率(Rate)以及处于压缩状态的相应映射数据的大小信息(Size),其中索引(Index)是相应映射数据的逻辑地址的头值。偏移可以是指示存储相应映射数据的区域的信息,例如映射高速缓存的起始地址(Start ADD)。
响应于主机装置的写入请求而生成的新映射数据可以存储在特定空间,例如映射高速缓存中。与新映射数据对应的元数据可以存储在特定空间,例如描述符高速缓存中。在实施例中,描述符高速缓存可以包括环形缓冲器。
当主机装置将包括至少一个逻辑地址的读取命令传送至数据存储装置10时,控制器110的数据管理器30可以检索以该逻辑地址的头值为索引的元数据。此外,数据管理器30可以提取关于相应映射数据的存储位置(即,偏移和大小)的信息,访问该存储位置,并搜索与逻辑地址对应的物理地址。储存器120可以接收在搜索中找到的物理地址,从与该物理地址对应的存储器单元读取数据,并且将读取的数据传送至控制器110。控制器110可以接收读取的数据并将读取的数据传送至主机装置。
当地址转换器20最初生成映射数据和对应的元数据时,映射数据可以存储在映射高速缓存中。映射高速缓存的存储区域可以包括从与初始映射数据的偏移对应的区域到与初始映射数据的大小对应的区域的区域。
初始映射数据的元数据可以存储在描述符高速缓存中。此外,头指针可以被分配到描述符高速缓存中的初始元数据的存储区域,并且尾指针可以被分配到描述符高速缓存中的下一区域,该下一区域与初始元数据的存储区域物理连续。
在实施例中,存储有初始映射数据的映射高速缓存区域的偏移(或起始地址)可以被称为头偏移。通过将映射数据的大小与映射数据的起始地址相加而获得的位置可以被称为结束偏移。最后存储的映射数据的结束偏移可以被称为尾偏移。这被总结如下。
表1
Figure BDA0002239738160000071
Figure BDA0002239738160000081
随着新映射数据的生成而添加到描述符高速缓存的元数据可以存储在描述符高速缓存中的物理连续空间中。在另一方面,与新映射数据对应的元数据可以存储在具有与以下连续的地址的空间中:存储与前一次生成的映射数据对应的元数据的描述符高速缓存空间。
也就是说,由于将元数据存储在描述符高速缓存中的方式,在描述符高速缓存中的任意两个填充元数据的存储空间之间没有空存储空间。
具体地,当生成新映射数据和相应元数据时,新元数据被存储在描述符高速缓存的尾指针的位置处,使得尾指针的位置可以改变为指示描述符高速缓存中的下一区域的位置。此外,基于新映射数据的偏移和大小,可以保持或改变描述符高速缓存的头指针的位置。
由于映射高速缓存的容量有限,因此可以通过环绕映射高速缓存来更新新映射数据的存储位置。
在实施例中,当尾偏移大于头偏移时,可以确定还没有发生环绕。当尾偏移小于头偏移时,可以确定已发生环绕。
在环绕映射高速缓存之前,当在尾偏移之后的区域中可存储新映射数据的大小时,新映射数据可以被添加到映射高速缓存,并且头指针的位置可以保持原样。另一方面,当在尾偏移之后的区域中不可存储新映射数据的大小时,需要通过环绕映射高速缓存来存储映射数据。
当环绕映射高速缓存时,可以将先前存储的映射数据更新为新映射数据,并且可以根据新映射数据的偏移和大小来保持或改变头指针的位置。
简而言之,可以根据新映射数据的偏移和大小将新映射数据存储在映射高速缓存的相应区域上。
与新映射数据对应的元数据可以被添加到描述符高速缓存的尾指针的位置,然后可以增加尾指针的位置。
可以根据通过将新映射数据的结束偏移和头偏移彼此进行比较而获得的结果来保持或改变头指针的位置。
例如,在结束偏移小于映射高速缓存的最大值并且尾偏移大于头偏移的环绕前情况下可以保持头指针的位置。
当结束偏移大于映射高速缓存的最大值时,可以校正结束偏移。在实施例中,可以以从结束偏移中减去映射高速缓存的最大值的方式对结束偏移执行校正;但是,本发明不限于此。
在尾偏移小于头偏移的环绕后情况下,可以根据通过将结束偏移或经校正的结束偏移和与头指针对应的头偏移彼此进行比较而获得的结果来改变或保持头指针的位置。
如上所述,每个相应映射数据的元数据可以连续地存储在描述符高速缓存中,并且描述符高速缓存的搜索位置或区域可以由头指针和尾指针确定。可以在环绕映射高速缓存的同时存储映射数据,并且可以基于映射数据的偏移和大小来保持或改变描述符高速缓存的头指针的位置。
因此,可以管理描述符高速缓存,使得元数据存储区域物理连续。此外,当搜索映射数据时,可以在描述符高速缓存的头指针和尾指针之间搜索时,以高速搜索包括从主机装置提供的逻辑地址的头值、偏移、大小和压缩率的元数据。
图2是示出根据实施例的控制器,例如图1的控制器110的示图。
参照图2,控制器110可以包括中央处理单元(CPU)111、主机接口(IF)113、只读存储器(ROM)1151、随机存取存储器(RAM)1153、映射搜索组件117、存储器接口(IF)119、地址转换器20和数据管理器30。
CPU 111可以被配置成将用于对储存器120的数据读取或写入操作的各种类型的控制信息传送到主机IF 113、RAM 1153和存储器IF 119。在实施例中,CPU 111可以根据为数据存储装置10的各种操作设置的固件而操作。固件可以存储在ROM 1151或储存器120中,并且可以在启动数据存储装置10时加载到RAM 1153中。
在实施例中,CPU 111可以执行:闪存转换层(FTL)的功能,执行用于管理储存器120的垃圾收集和损耗均衡;以及错误检查和校正(ECC)功能,检测并校正从储存器120读取的数据的错误。
主机IF 113可以提供通信通道,用于从主机装置接收命令和时钟信号并且在CPU111的控制下控制数据输入/输出。特别地,主机IF 113可以提供主机装置和数据存储装置10之间的物理连接。主机IF 113可以根据主机装置的总线格式提供与数据存储装置10的接口连接。主机装置的总线格式可以包括诸如下列的各种标准接口协议中的至少一种:安全数字(SD)、通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、个人计算机存储卡国际协会(PCMCIA)、并行高级技术附件(PATA)、串行高级技术附件(SATA)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、外围组件互连(PCI)、高速PCI(PCI-e或PCIe)和通用闪存(UFS)。
ROM 1151可以存储控制器110的操作所需的程序代码,例如固件或软件,并且存储程序代码使用的代码数据。
RAM 1153可以存储用于控制器110的操作的数据或者由控制器110或地址转换器20生成的数据。
在启动操作中,CPU 111可以将存储在储存器120或ROM 1151中的启动代码加载到RAM 1153,从而控制数据存储装置10的启动操作。
存储器IF 119可以提供通信通道,用于控制器110和储存器120之间的信号传送/接收。存储器IF 119可以在CPU 111的控制下将已经临时存储在缓冲存储器130中的数据写入储存器120中。此外,存储器IF119可以将从储存器120读取的数据传送到用于临时存储的缓冲存储器130。
地址转换器20可以响应于主机装置的写入请求而分配与逻辑地址对应的物理地址,并且基于该物理地址来生成映射数据和元数据。
数据管理器30可以将地址转换器20生成的映射数据和元数据存储在特定区域中。
数据管理器30可以包括描述符高速缓存管理器301和映射高速缓存管理器303。
描述符高速缓存管理器301可以添加元数据,使得在描述符高速缓存中的元数据存储空间之间没有空存储空间。描述符高速缓存管理器301可以将头指针分配到描述符高速缓存中的初始元数据存储区域,并且将尾指针分配到与头指针物理连续的区域,即具有物理连续地址的区域。当生成新映射数据和与新映射数据对应的元数据时,描述符高速缓存管理器301可以将新元数据存储在描述符高速缓存的尾指针的位置处,并且将尾指针的位置改变为指示描述符高速缓存中的下一区域的位置。此外,描述符高速缓存管理器301可以基于新映射数据的偏移和大小来实质上保持或改变描述符高速缓存的头指针的位置。
映射高速缓存管理器303可以将地址转换器20生成的映射数据存储在映射高速缓存的区域中。这些区域可以从与映射数据的偏移对应的映射高速缓存区域到与映射数据的大小对应的区域来确定。
响应于主机装置的读取请求,映射搜索组件117可以通过参考数据管理器30搜索与主机装置提供的逻辑地址对应的物理地址。在实施例中,当执行地址搜索时,映射搜索组件117可以搜索从描述符高速缓存的头指针到尾指针的范围,并且搜索包括与从主机装置提供的逻辑地址的头值对应的索引的元数据。此外,映射搜索组件117可以基于在搜索中识别的元数据中包括的偏移和大小,从映射高速缓存中提取映射数据。
图2A是示出根据实施例的控制器,例如图1的控制器110的示图。
参照图2A所示,控制器110可以包括处理器210、主机接口(IF)220、存储器接口(IF)230、数据生成器240、存储器250和数据管理器260。处理器210、主机接口220和存储器接口230可以分别对应于图2的CPU 111、主机IF 113和存储器IF 119。
数据生成器240可以响应于通过主机接口220从主机装置接收的一个或多个请求来生成多个映射数据片段。此外,数据生成器240可以生成与多个映射数据片段对应的多个元数据片段。每个映射数据片段可以包括指示与请求相关联的逻辑地址和与逻辑地址对应的、图1中的储存器120的物理地址之间的映射关系的信息。映射数据(多个映射数据)片段或映射数据(多个映射数据)段可以是较长连续的映射数据段的一部分。元数据(多个元数据)片段或元数据(多个元数据)段可以是较长连续的元数据段的一部分。
存储器250可以包括映射高速缓存252和元数据高速缓存(或描述符高速缓存)254。映射高速缓存252可以存储多个映射数据。元数据高速缓存254可以存储多个元数据。每个元数据可以包括作为用于描述相应映射数据的信息的指示信息,该指示信息指示用于相应映射数据的映射高速缓存252的区域。在各个实施例中,存储器250可以利用随机存取存储器(RAM)来实施。在各个实施例中,如图6至图10所示,元数据高速缓存254可以利用无缝地存储多个元数据的环形缓冲器来实施。
在各个实施例中,如图4所示,每个元数据可以包括:描述符,包括相应映射数据的标识符(ID)和大小信息(Size);以及指示信息(Start ADD),指示用于相应映射数据的映射高速缓存的相应区域的起始地址。描述符可以进一步包括相应映射数据的压缩率(Rate)和指示相应映射数据的逻辑地址的索引(Index)。
数据管理器260可以管理将多个映射数据存储在映射高速缓存252中的操作以及将多个元数据存储在元数据高速缓存254中的操作。此外,如图6至图10所示,数据管理器260可以生成头指针(Head)和尾指针(Tail),并且在元数据高速缓存254的头指针和尾指针之间的搜索区域中搜索元数据。
在各个实施例中,头指针可以指示元数据高速缓存254的存储多个元数据之中的第一元数据的头区域。例如,在图6中,头指针可以指示元数据高速缓存254的存储多个元数据之中的第一元数据(ID=0)的头区域(即,与Start ADD 0对应的区域)。尾指针可以指示元数据高速缓存254的待存储多个元数据之中的(紧接在最后元数据之后的)下一元数据的尾区域。例如,在图6中,尾指针可以指示元数据高速缓存254的待存储多个元数据之中的最后元数据(ID=3)之后的下一元数据的尾区域(即,在与Start ADD 14对应的区域之后的下一区域)。
在各个实施例中,数据管理器260可以在基于搜索到的元数据的指示信息确定的区域中搜索映射数据。例如,在图6中,可以根据从头指针到尾指针的搜索范围来搜索元数据高速缓存254,并且可以在与元数据高速缓存254的搜索范围对应的从头偏移(或地址)0到尾偏移16的区域中搜索映射高速缓存252。
在各个实施例中,当生成了与下一元数据对应的下一映射数据并且映射高速缓存未满时,数据管理器260可以将下一映射数据存储在映射高速缓存252的下一区域中,将下一元数据存储在元数据高速缓存254的尾区域中,保持头指针并且增加尾指针以指示元数据高速缓存254的在尾区域之后的下一区域。例如,在图7中,当生成了与下一元数据(ID=4)对应的下一映射数据Desc.4并且映射高速缓存252未满时,数据管理器260可以将下一映射数据Desc.4存储在映射高速缓存252的下一区域(即,16到17之间的区域)中,将下一元数据存储在元数据高速缓存254的尾区域(即,与Start ADD 16对应的区域)中。此外,数据管理器260可以保持头指针并且增加尾指针以指示元数据高速缓存254的尾区域之后的下一区域(即,在与Start ADD 16对应的区域之后的下一区域)。
在各个实施例中,当生成了与下一元数据对应的下一映射数据并且映射高速缓存252已满时,数据管理器260可以删除映射高速缓存252的第一区域中的第一映射数据,将下一映射数据存储在映射高速缓存252的第一区域中,删除元数据高速缓存254的头区域中的第一元数据,并且将下一元数据存储在元数据高速缓存254的头区域中。例如,在图8中,当生成了与下一元数据(ID=5)对应的下一映射数据Desc.5并且映射高速缓存252已满时,数据管理器260可以删除映射高速缓存252的第一区域(即,0到8之间的区域)中的第一映射数据Desc.0,并且将下一映射数据Desc.5存储在映射高速缓存252的第一区域中。此外,数据管理器260可以删除元数据高速缓存254的头区域中的第一元数据(ID=0)并且将下一元数据(ID=5)存储在元数据高速缓存254的尾区域(即,与Start ADD 17对应的区域)中。此外,数据管理器260可以增加头指针的位置以指示元数据高速缓存254的第二区域,并且增加尾指针的位置以指示元数据高速缓存254的下一区域。例如,在图8中,数据管理器260可以增加头指针以指示元数据高速缓存254的在头区域之后的第二区域(即,与Start ADD 8对应的区域),并且增加尾指针的位置以指示元数据高速缓存254的在尾区域(即,与Start ADD17对应的区域)之后的下一区域。
图3是示出根据实施例的描述符高速缓存管理器,例如图2的描述符高速缓存管理器301的示图。
参照图3,描述符高速缓存管理器301可以包括指针管理器3011、偏移计算组件3013、偏移比较组件3015、偏移校正组件3017和储存器3019。储存器3019可以包括描述符高速缓存(或元数据高速缓存),并且将与初始生成的映射数据对应的元数据存储在描述符高速缓存中。可选地,描述符高速缓存可以包括在图1中的控制器110的缓冲存储器130或RAM1153中或者包括在图1中的储存器120中。
当储存器3019将与初始生成的映射数据对应的元数据存储在描述符高速缓存中时,指针管理器3011可以生成并分配头指针和尾指针。头指针可以被分配到描述符高速缓存中的初始元数据存储区域。尾指针可以被分配到与头指针相关联的区域物理连续的区域。
当生成与新映射数据对应的元数据时,储存器3019可以将新元数据存储在描述符高速缓存中的尾指针的位置处。可以与尾指针所指示的最后元数据物理连续地存储新元数据,并且指针管理器3011可以根据新元数据来改变尾指针的位置。此外,指针管理器3011可以基于新映射数据的偏移和大小来基本上保持或改变描述符高速缓存的头指针的位置。
在环绕映射高速缓存之前(即,映射高速缓存未满),当在尾偏移之后的区域中可存储新映射数据的大小时,指针管理器3011可以将头指针的位置基本上保持原样。另一方面,当在尾偏移之后的区域中不可存储新映射数据的大小时,指针管理器3011可以根据新映射数据的偏移和大小来基本上保持或改变头指针的位置。
偏移计算组件3013可以计算新映射数据的结束偏移。在实施例中,结束偏移可以是通过将映射数据的大小与映射数据的偏移相加而获得的值;然而,本发明不限于此。
偏移比较组件3015可以将结束偏移与映射高速缓存的最大值进行比较,将尾偏移与头偏移进行比较,或者将结束偏移与头偏移进行比较。
根据偏移比较组件3015将结束偏移与映射高速缓存的最大值进行比较而获得的结果,可以校正结束偏移,或者可以将尾偏移与头偏移彼此进行比较。根据偏移比较组件3015将尾偏移与头偏移进行比较而获得的结果,指针管理器3011可以基本上保持头指针的位置,或者偏移比较组件3015可以将结束偏移与头偏移进行比较。根据通过将结束偏移与头偏移进行比较而获得的结果,指针管理器3011可以基本上保持或改变头指针的位置。
当结束偏移大于映射高速缓存的最大值时,偏移校正组件3017可以校正结束偏移。在实施例中,可以以从结束偏移中减去映射高速缓存的最大值的方式对结束偏移执行校正;然而,本发明不限于此。
图4是示出根据实施例的元数据的示图。
当图1和图2的地址转换器20将逻辑地址转换成物理地址时,元数据可以与映射数据一起生成。元数据可以包括相应映射数据的描述符和偏移。描述符可以包括描述符标识符(ID)、索引(Index)、映射数据的压缩率(Rate)以及压缩的映射数据的大小信息(Size),其中索引(Index)是每个映射数据的逻辑地址的头值。偏移可以是指示存储映射数据的区域的信息,例如映射高速缓存的起始地址Start ADD。
在实施例中,地址转换器20可以以运行长度方案压缩映射数据;然而,本发明不限于此。映射数据可以通过各种方法来压缩,并且可以通过将根据应用的压缩方法的压缩率存储为描述符来对映射数据进行解码。
图5是示出根据实施例的数据存储装置,例如图1的数据存储装置10的操作方法的流程图。图6至图10是示出当添加新映射数据时元数据管理方法的示例的示图。图6至图10的示例方法可以通过图1和图2的控制器来执行。
在以下描述的元数据管理方法的情况下,假定初始映射数据存储在映射高速缓存中,与映射数据对应的元数据存储在描述符高速缓存中,并且分配了头指针和尾指针。
参照图5,当新映射数据被添加并且新元数据被传送至数据管理器30时,数据管理器30可以接收新元数据(S101),并且数据管理器30可以基于新元数据中包括的偏移和大小来计算结束偏移(S103)。
数据管理器30可以确定计算的结束偏移是否小于映射高速缓存的最大值(MAX)(S105)。当确定结束偏移小于映射高速缓存的最大值(S105,是)时,也就是说,当新映射数据可以存储在映射高速缓存的由尾指针指示的区域之后的区域中时,数据管理器30确定在映射高速缓存中是否已经发生环绕(S107)。
为了确定是否已经发生这种环绕,数据管理器30可以确认尾偏移是否大于头偏移(S107)。
当与最终映射数据对应的元数据的结束偏移(或尾偏移)大于头偏移(S107,是)时,数据管理器30可以将头指针的位置基本上保持原样(S109),其中与最终映射数据对应的元数据的结束偏移(或尾偏移)大于头偏移表示尚未发生环绕。然后,数据管理器30可以将新元数据存储在由尾指针指示的描述符高速缓存区域中(S111)并且改变尾指针的位置(S113)。
参照图6,四个映射数据片段可以存储在映射高速缓存(b)中,并且与该映射数据对应的四个元数据片段可以存储在描述符高速缓存(a)中。在这种状态下,如图7所示,当生成新映射数据时,与新映射数据对应的元数据的描述符Desc.4可以具有偏移16和大小1。
结合图5参照图7,当映射高速缓存的最大值(MAX)为20时,新元数据(ID=4)的结束偏移为小于映射高速缓存的最大值MAX的17(S105:是),并且尾偏移(即,元数据3(ID=3)的结束偏移=16)大于头偏移(即,头指针指示的元数据(ID=0)的偏移=0)(S107:是),因此头指针的位置可以基本上保持原样(S109)。
此外,数据管理器30可以将新元数据(ID=4)存储在尾指针的位置处(S111)并且增加尾指针(S113)。
返回参照图5,当确定结束偏移大于映射高速缓存的最大值(MAX)(S105:否)时,数据管理器30可以校正结束偏移(S115)。可以以从结束偏移中减去映射高速缓存的最大值的方式对结束偏移执行校正。
然后,数据管理器30可以将计算的结束偏移或经校正的结束偏移与头偏移进行比较(S117)。
当计算的结束偏移或经校正的结束偏移大于头偏移时,数据管理器30改变(或增加)头指针的位置(S119)。可以重复该过程,直到计算的结束偏移或经校正的结束偏移小于头偏移为止。
当计算的结束偏移或经校正的结束偏移小于头偏移时,数据管理器30可以将头指针的位置基本上保持原样(S109),并且将新元数据存储在尾指针的位置处并改变尾指针的位置(S111和S113)。
图8示出将与Desc.5对应的新映射数据的元数据(ID=5)添加到描述符高速缓存(a)的情况。(b1)示出在添加与Desc.5对应的新映射数据之前的映射高速缓存,并且(b2)示出在添加新元数据之后的映射高速缓存。
参照图8,结束偏移为22(=17+5),22(=17+5)对应于先前结束偏移17与新数据的大小5之和。由于结束偏移22大于作为映射高速缓存的最大值的20,因此结束偏移被校正为2(=22-20)。由于经校正的结束偏移2大于头偏移0,因此可以将头指针的位置从初始映射区域0增加到下一映射区域8(S119)。
图9示出将与Desc.6对应的新映射数据的元数据(ID=6)添加到描述符高速缓存(a)的情况。在图9中,(b1)示出在添加与Desc.6对应的新映射数据之前的映射高速缓存,并且(b2)示出在添加新元数据之后的映射高速缓存。
参照图9,新元数据(ID=6)的结束偏移为4(=2+2),4(=2+2)是先前结束偏移2与新数据的大小2之和。新元数据(ID=6)的结束偏移小于映射高速缓存的最大值,但是映射高速缓存的状态在尾偏移2小于头偏移8的环绕之后。此外,由于结束偏移4小于头偏移8,因此头指针的位置可以基本上保持原样。
图10示出将与Desc.7对应的新映射数据的新元数据(ID=7)添加到描述符高速缓存(a)的情况。在图10中,(b1)示出在添加与Desc.7对应的新映射数据之前的映射高速缓存,并且(b2)和(b3)示出在添加新元数据之后的映射高速缓存。
参照图10,新元数据(ID=7)的结束偏移为12,12对应于先前结束偏移4与数据大小8之和。由于新元数据(ID=7)的结束偏移12大于头偏移8,因此头指针的位置增加并改变为指示元数据(ID=2),如(b2)所示。但是,由于结束偏移12仍大于头偏移的新位置10,因此头指针的位置可以再次增加并改变为指示元数据(ID=3),如(b3)所示。
图10A是示出根据实施例的数据存储装置,例如图1的数据存储装置10的操作方法10000的流程图。
参照图10A,步骤10010可以包括生成多个映射数据以及多个元数据,每个映射数据包括储存器的对应于与请求相关联的逻辑地址的物理地址,每个元数据描述相应映射数据并且包括指示映射高速缓存的用于相应映射数据的区域的信息。
步骤10020可以包括将多个映射数据存储在映射高速缓存中以及将多个元数据存储在元数据高速缓存中。在各个实施例中,元数据高速缓存可以包括无缝地存储多个元数据的环形缓冲器。
步骤10030可以包括生成头指针和尾指针,该头指针指示元数据高速缓存的存储多个元数据之中的第一元数据的头区域,该尾指针指示待存储紧接在最后元数据之后的下一元数据的区域。
步骤10040可以包括在元数据高速缓存的头指针和尾指针之间的搜索区域中搜索元数据。
操作方法10000可以进一步包括在基于在搜索中找到的元数据的指示信息确定的区域中搜索映射数据。
在各个实施例中,每个元数据包括:描述符,包括相应映射数据的标识符(ID)和大小信息;以及指示用于相应映射数据的映射高速缓存的相应区域的起始地址的信息。描述符进一步包括相应映射数据的压缩率和相应映射数据的逻辑地址。
方法10000可以进一步包括:当生成了与下一元数据对应的下一映射数据并且映射高速缓存未满时,将下一映射数据存储在映射高速缓存的下一区域中;将下一元数据存储在元数据高速缓存的尾区域中;保持头指针;以及增加尾指针的位置以指示元数据高速缓存的下一区域,即紧接在尾区域之后的区域。
方法10000可以进一步包括:当生成了与下一元数据对应的下一映射数据并且映射高速缓存已满时,删除映射高速缓存的第一区域中的第一映射数据;将下一映射数据存储在映射高速缓存的第一区域中;删除元数据高速缓存的头区域中的第一元数据;以及将下一元数据存储在元数据高速缓存的尾区域中。方法10000可以进一步包括:增加头指针的位置以指示元数据高速缓存的在头区域之后的第二区域;以及增加尾指针的位置以指示元数据高速缓存的下一区域,即紧接在尾区域之后的区域。
如上所述,在本实施例中,与映射数据对应的元数据物理连续地存储在描述符高速缓存中,元数据的初始存储位置由头指针管理,并且待添加的新元数据的位置由尾指针管理。
当需要搜索映射数据时,可以通过从描述符高速缓存的头指针到尾指针进行搜索来找到具有与逻辑地址的头值对应的索引的元数据,并且可以通过根据与元数据对应的偏移和大小访问映射高速缓存来提取映射数据。另外,可以基于存储在元数据中的压缩率来解码提取的映射数据。
图11是示出根据实施例的数据存储系统1000的示图。
参照图11,数据存储系统1000可以包括主机装置1100和数据存储装置1200。在实施例中,数据存储装置1200可以被配置成固态驱动器(SSD)。
数据存储装置1200可以包括控制器1210、多个非易失性存储器装置1220-0至1120-n、缓冲存储器装置1230、电源1240、信号连接器1101以及电源连接器1103。
控制器1210可以控制数据存储装置1200的一般操作。控制器1210可以包括主机接口、控制组件、用作工作存储器的随机存取存储器、错误校正码(ECC)电路和存储器接口。在实施例中,控制器1210可以被配置为图1至图2A所示的控制器110。
主机装置1100可以通过信号连接器1101与数据存储装置1200交换信号。信号可以包括命令、地址、数据和其它相关信息。
控制器1210可以分析并处理从主机装置1100接收的信号。控制器1210可以根据用于驱动数据存储装置1200的固件或软件来控制内部功能块的操作。
缓冲存储器装置1230可以临时存储待存储在非易失性存储器装置1220-0至1220-n中的至少一个中的数据。此外,缓冲存储器装置1230可以临时存储从非易失性存储器装置1220-0至1220-n中的至少一个读取的数据。临时存储在缓冲存储器装置1230中的数据可以根据控制器1210的控制被传送至主机装置1100或非易失性存储器装置1220-0至1220-n中的至少一个。
非易失性存储器装置1220-0至1220-n可以用作数据存储装置1200的存储介质。非易失性存储器装置1220-0至1220-n可以分别通过多个通道CH1至CHn与控制器1210联接。一个或多个非易失性存储器装置可以联接至一个通道。联接至相同通道的非易失性存储器装置可以联接至相同的信号总线和数据总线。
电源1240可以将通过电源连接器1103输入的电力提供至数据存储装置1200的内部。电源1240可以包括辅助电源。当发生突然断电时,辅助电源可以供应电力以使数据存储装置1200正常终止。辅助电源可以包括大容量电容器。
根据主机装置1100和数据存储装置1200之间的接口方案,信号连接器1101可以通过各种类型的连接器中的任意一种来配置。
根据主机装置1100的电力供应方案,电源连接器1103可以由各种类型的连接器中任意一种来配置。
图12是示出根据实施例的数据处理系统3000的示图。参照图12,数据处理系统3000可以包括主机装置3100和存储器系统3200。
主机装置3100可以以诸如印刷电路板的板的形式配置。虽然未示出,但是主机装置3100可以包括用于执行其各种功能的内部功能块。
主机装置3100可以包括诸如插座、插槽或连接器的连接端子3110。存储器系统3200可以安装到连接端子3110。
存储器系统3200可以以诸如印刷电路板的板的形式配置。存储器系统3200可以被配置为存储器模块或存储卡。存储器系统3200可以包括控制器3210、缓冲存储器装置3220、非易失性存储器装置3231和3232、电源管理集成电路(PMIC)3240以及连接端子3250。
控制器3210可以控制存储器系统3200的一般操作。控制器3210可以与图1至图2A中所示的控制器110相同的方式配置。
缓冲存储器装置3220可以临时存储待被存储在非易失性存储器装置3231和3232中的数据。此外,缓冲存储器装置3220可以临时存储从非易失性存储器装置3231和3232读取的数据。临时存储在缓冲存储器装置3220中的数据可以根据控制器3210的控制被传送至主机装置3100或非易失性存储器装置3231和3232。
非易失性存储器装置3231和3232可以用作存储器系统3200的存储介质。
PMIC 3240可以将通过连接端子3250输入的电力提供至存储器系统3200的内部。PMIC 3240可以根据控制器3210的控制来管理存储器系统3200的电力。
连接端子3250可以联接至主机装置3100的连接端子3110。通过连接端子3250,可以在主机装置3100和存储器系统3200之间传送诸如命令、地址、数据等的信号和电力。根据主机装置3100和存储器系统3200之间的接口方案,连接端子3250可以被配置成各种类型中的任意一种。连接端子3250可以被设置在存储器系统3200的任意一侧上。
图13是示出根据实施例的数据处理系统4000的示图。参照图13,数据处理系统4000可以包括主机装置4100和存储器系统4200。
主机装置4100可以以诸如印刷电路板的板的形式配置。虽然未示出,但是主机装置4100可以包括用于执行其各种功能的内部功能块。
存储器系统4200可以以表面安装型封装的形式配置。存储器系统4200可以通过焊球4250安装到主机装置4100。存储器系统4200可以包括控制器4210、缓冲存储器装置4220和非易失性存储器装置4230。
控制器4210可以控制存储器系统4200的一般操作。控制器4210可以与图1至图2A中所示的控制器110相同的方式配置。
缓冲存储器装置4220可以临时存储待被存储在非易失性存储器装置4230中的数据。此外,缓冲存储器装置4220可以临时存储从非易失性存储器装置4230读取的数据。临时存储在缓冲存储器装置4220中的数据可以根据控制器4210的控制被传送至主机装置4100或非易失性存储器装置4230。
非易失性存储器装置4230可以用作存储器系统4200的存储介质。
图14是示出包括根据实施例的数据存储装置的网络系统5000的示图。参照图14,网络系统5000可以包括通过网络5500联接的服务器系统5300和多个客户端系统5410至5430。
服务器系统5300可以服务来自多个客户端系统5410至5430的请求。例如,服务器系统5300可以存储从多个客户端系统5410至5430提供的数据。再例如,服务器系统5300可以将数据提供至多个客户端系统5410至5430。
服务器系统5300可以包括主机装置5100和存储器系统5200。存储器系统5200可以通过图1所示的数据存储装置10、图11所示的数据存储装置1200、图12所示的存储器系统3200或图13所示的存储器系统4200来配置。
图15是示出根据实施例的数据存储装置中包括的非易失性存储器装置300的框图。参照图15,非易失性存储器装置300可以包括存储器单元阵列310、行解码器320、数据读取和写入(读取/写入)块330、列解码器340、电压生成器350和控制逻辑360。
存储器单元阵列310可以包括布置在字线WL1至WLm和位线BL1至BLn彼此相交的区域处的存储器单元MC。
存储器单元阵列310可以包括三维存储器阵列,在这种情况下,存储器单元阵列310在垂直于半导体衬底的平坦表面的方向上延伸。此外,三维存储器阵列表示包括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 (36)

1.一种数据存储装置,包括:
储存器;以及
控制器,响应于从主机装置接收的请求来控制所述储存器,
其中所述控制器包括:
地址转换器,分别生成多个映射数据和所述多个映射数据的多个元数据,每个映射数据包括与逻辑地址对应的所述储存器的物理地址;
描述符高速缓存管理器,将新元数据添加到描述符高速缓存的存储区域,并且分配头指针和尾指针以选择所述描述符高速缓存中的位置,用于所述新元数据的存储区域与存储所述多个元数据中的最后元数据的存储区域物理连续;
映射高速缓存管理器,将所述多个映射数据存储在映射高速缓存中;以及
映射搜索组件,根据由所述头指针和所述尾指针确定的搜索范围来搜索所述描述符高速缓存。
2.根据权利要求1所述的数据存储装置,其中每个元数据包括指示相应映射数据的逻辑地址的头值的索引、所述相应映射数据的压缩率、所述相应映射数据的大小以及指示存储所述相应映射数据的所述映射高速缓存的起始地址的偏移信息。
3.根据权利要求1所述的数据存储装置,其中所述描述符高速缓存包括环形缓冲器。
4.根据权利要求1所述的数据存储装置,其中每个元数据包括相应映射数据的大小以及指示存储所述相应映射数据的所述映射高速缓存的起始地址的偏移信息,并且
所述描述符高速缓存管理器分配所述头指针以指示存储初始元数据的第一区域,在添加新元数据时保持或改变所述头指针的位置,将所述尾指针分配到待添加新元数据的区域,并且在添加新元数据时改变所述尾指针的位置,待添加所述新元数据的区域与所述第一区域物理连续。
5.根据权利要求4所述的数据存储装置,其中当生成与新映射数据对应的新元数据时,所述描述符高速缓存管理器将所述新元数据存储在所述尾指针的位置处,将所述尾指针的位置改变为指示所述描述符高速缓存中的下一区域的位置,并且基于所述新映射数据的偏移和大小来保持或改变所述头指针的位置。
6.根据权利要求4所述的数据存储装置,其中所述描述符高速缓存管理器根据通过将基于新映射数据的偏移和大小而计算的结束偏移和与由所述头指针指示的元数据对应的映射数据的偏移进行比较而获得的结果来保持或改变所述头指针的位置。
7.根据权利要求4所述的数据存储装置,其中在所述映射高速缓存中发生环绕之前,当基于新映射数据的偏移和大小而计算的结束偏移小于所述映射高速缓存的最大值时,所述描述符高速缓存管理器保持所述头指针的位置。
8.根据权利要求7所述的数据存储装置,其中在所述映射高速缓存中发生环绕之后,所述描述符高速缓存管理器根据通过将所述结束偏移与头偏移进行比较而获得的结果来保持或改变所述头指针的位置,所述头偏移指示与由所述头指针指示的元数据对应的映射数据的偏移。
9.根据权利要求7所述的数据存储装置,其中所述描述符高速缓存管理器根据通过将尾偏移与头偏移进行比较而获得的结果来确定在所述映射高速缓存中是否已经发生环绕,所述尾偏移是最后存储的元数据的结束偏移,所述头偏移是与由所述头指针指示的元数据对应的映射数据的偏移。
10.根据权利要求4所述的数据存储装置,其中当结束偏移大于所述映射高速缓存的最大值时,所述描述符高速缓存管理器校正所述结束偏移,并且根据通过将所述结束偏移或经校正的结束偏移和与由所述头指针指示的元数据对应的映射数据的偏移进行比较而获得的结果来保持或改变所述头指针的位置。
11.一种数据存储装置的操作方法,所述数据存储装置包括储存器和控制器,所述操作方法包括:
由所述控制器响应于主机装置的请求来生成多个映射数据和所述多个映射数据的多个元数据,每个映射数据包括与逻辑地址对应的所述储存器的物理地址;
由所述控制器将新元数据添加到描述符高速缓存的存储区域,用于所述新元数据的存储区域与存储所述多个元数据中的最后元数据的存储区域物理连续;
由所述控制器分配头指针和尾指针以选择所述描述符高速缓存中的位置;
由所述控制器将所述多个映射数据存储在映射高速缓存中;以及
由所述控制器根据由所述头指针和所述尾指针确定的搜索范围来搜索所述描述符高速缓存。
12.根据权利要求11所述的操作方法,其中所述元数据包括指示相应映射数据的逻辑地址的头值的索引、所述相应映射数据的压缩率、所述相应映射数据的大小以及指示存储所述相应映射数据的所述映射高速缓存的起始地址的偏移信息。
13.根据权利要求11所述的操作方法,其中每个元数据包括相应映射数据的大小以及指示存储所述相应映射数据的所述映射高速缓存的起始地址的偏移信息,并且
其中分配所述头指针和所述尾指针包括:分配所述头指针以指示存储初始元数据的第一区域,在添加新元数据时保持或改变所述头指针的位置,将所述尾指针分配到待添加新元数据的区域,并且在添加新元数据时改变所述尾指针的位置,待添加所述新元数据的区域与所述第一区域物理连续。
14.根据权利要求13所述的操作方法,其中当生成与新映射数据对应的新元数据时,所述新元数据存储在所述尾指针的位置处,所述尾指针的位置被改变为指示所述描述符高速缓存中的下一区域的位置,并且基于所述新映射数据的偏移和大小来保持或改变所述头指针的位置。
15.根据权利要求13所述的操作方法,其中在所述映射高速缓存中发生环绕之前,当基于新映射数据的偏移和大小而计算的结束偏移小于所述映射高速缓存的最大值时,保持所述头指针的位置。
16.根据权利要求15所述的操作方法,其中在所述映射高速缓存中发生环绕之后,根据通过将所述结束偏移与头偏移进行比较而获得的结果来保持或改变所述头指针的位置,所述头偏移指示与由所述头指针指示的元数据对应的映射数据的偏移。
17.根据权利要求15所述的操作方法,进一步包括:通过将尾偏移与头偏移进行比较来确定在所述映射高速缓存中是否已经发生环绕,所述尾偏移是最后存储的元数据的结束偏移,所述头偏移是与由所述头指针指示的元数据对应的映射数据的偏移。
18.根据权利要求13所述的操作方法,其中分配所述头指针和所述尾指针包括:当结束偏移大于所述映射高速缓存的最大值时,校正所述结束偏移,并且根据通过将所述结束偏移或经校正的结束偏移和与由所述头指针指示的元数据对应的映射数据的偏移进行比较而获得的结果来保持或改变所述头指针的位置。
19.一种数据存储装置,包括:
储存器;以及
控制器,响应于来自主机装置的请求来控制所述储存器,
其中所述控制器包括:
数据生成器,分别生成多个映射数据和所述多个映射数据的多个元数据,每个映射数据包括对应于与所述请求相关联的逻辑地址的所述储存器的物理地址;
映射高速缓存,存储所述多个映射数据;
元数据高速缓存,存储所述多个元数据,每个元数据包括指示所述映射高速缓存的、用于相应映射数据的区域的指示信息;
数据管理器,将所述多个映射数据存储在所述映射高速缓存中,将所述多个元数据存储在所述元数据高速缓存中,生成头指针和尾指针,并且在所述元数据高速缓存的、所述头指针和所述尾指针之间的搜索区域中搜索元数据,所述头指针指示所述元数据高速缓存的、存储所述多个元数据之中的第一元数据的头区域,所述尾指针指示所述元数据高速缓存的、待存储紧接在所述多个元数据之中的最后元数据之后的下一元数据的尾区域。
20.根据权利要求19所述的数据存储装置,其中所述数据管理器在基于在搜索操作中找到的元数据的指示信息而确定的区域中搜索映射数据。
21.根据权利要求19所述的数据存储装置,其中每个元数据包括:描述符,包括相应映射数据的标识符即ID和大小信息;以及所述指示信息,指示所述映射高速缓存的、用于所述相应映射数据的区域的起始地址。
22.根据权利要求21所述的数据存储装置,其中所述描述符进一步包括所述相应映射数据的压缩率和所述相应映射数据的逻辑地址。
23.根据权利要求19所述的数据存储装置,其中所述元数据高速缓存包括环形缓冲器。
24.根据权利要求23所述的数据存储装置,其中所述元数据高速缓存无缝地存储所述多个元数据。
25.根据权利要求24所述的数据存储装置,其中当生成与所述下一元数据对应的下一映射数据并且所述映射高速缓存未满时,
所述数据管理器将所述下一映射数据存储在所述映射高速缓存的下一区域中,将所述下一元数据存储在所述元数据高速缓存的尾区域中,保持所述头指针并且增加所述尾指针以指示所述元数据高速缓存的、紧接在所述尾区域之后的下一区域。
26.根据权利要求24所述的数据存储装置,其中当生成与所述下一元数据对应的下一映射数据并且所述映射高速缓存已满时,
所述数据管理器删除所述映射高速缓存的第一区域中的第一映射数据,将所述下一映射数据存储在所述映射高速缓存的第一区域中,删除所述元数据高速缓存的头区域中的第一元数据,并且将所述下一元数据存储在所述元数据高速缓存的尾区域中。
27.根据权利要求26所述的数据存储装置,其中所述数据管理器增加所述头指针以指示所述元数据高速缓存的第二区域,所述第二区域在所述头区域之后;并且增加所述尾指针以指示所述元数据高速缓存的、紧接在所述尾区域之后的下一区域。
28.一种操作数据存储装置的方法,所述方法包括:
分别生成多个映射数据和所述多个映射数据的多个元数据,每个映射数据包括对应于与请求相关联的逻辑地址的储存器的物理地址,每个元数据包括指示所述映射高速缓存的用于相应映射数据的区域的指示信息;
将所述多个映射数据存储在映射高速缓存中并且将所述多个元数据存储在元数据高速缓存中;
生成头指针和尾指针,所述头指针指示所述元数据高速缓存的、存储所述多个元数据之中的第一元数据的头区域,所述尾指针指示所述元数据高速缓存的、待存储紧接在所述多个元数据之中的最后元数据之后的下一元数据的尾区域;以及
在所述元数据高速缓存的、所述头指针和所述尾指针之间的搜索区域中搜索元数据。
29.根据权利要求28所述的方法,进一步包括:在基于在搜索操作中找到的元数据的指示信息而确定的区域中搜索映射数据。
30.根据权利要求28所述的方法,其中每个元数据包括:描述符,包括所述相应映射数据的标识符即ID和大小信息;以及所述指示信息,指示所述映射高速缓存的、用于所述相应映射数据的相应区域的起始地址。
31.根据权利要求30所述的方法,其中所述描述符进一步包括所述相应映射数据的压缩率和所述相应映射数据的逻辑地址。
32.根据权利要求28所述的方法,其中所述元数据高速缓存包括环形缓冲器。
33.根据权利要求32所述的方法,其中所述元数据高速缓存无缝地存储所述多个元数据。
34.根据权利要求33所述的方法,进一步包括:
当生成与所述下一元数据对应的下一映射数据并且所述映射高速缓存未满时,
将所述下一映射数据存储在所述映射高速缓存的下一区域中;
将所述下一元数据存储在所述元数据高速缓存的尾区域中;
保持所述头指针;并且
增加所述尾指针的位置以指示所述元数据高速缓存的、紧接在所述尾区域之后的下一区域。
35.根据权利要求33所述的方法,进一步包括:
当生成与所述下一元数据对应的下一映射数据并且所述映射高速缓存已满时,
删除所述映射高速缓存的第一区域中的第一映射数据;
将所述下一映射数据存储在所述映射高速缓存的第一区域中;
删除所述元数据高速缓存的头区域中的第一元数据;并且
将所述下一元数据存储在所述元数据高速缓存的尾区域中。
36.根据权利要求35所述的方法,进一步包括:
增加所述头指针的位置以指示所述元数据高速缓存的第二区域,所述第二区域在所述头区域之后;以及
增加所述尾指针的位置以指示所述元数据高速缓存的、紧接在所述尾区域之后的下一区域。
CN201910996002.3A 2018-12-17 2019-10-18 数据存储装置、其操作方法以及包括其的存储系统 Active CN111324557B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180162875A KR20200074464A (ko) 2018-12-17 2018-12-17 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
KR10-2018-0162875 2018-12-17

Publications (2)

Publication Number Publication Date
CN111324557A true CN111324557A (zh) 2020-06-23
CN111324557B CN111324557B (zh) 2023-03-21

Family

ID=71072595

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910996002.3A Active CN111324557B (zh) 2018-12-17 2019-10-18 数据存储装置、其操作方法以及包括其的存储系统

Country Status (3)

Country Link
US (1) US11301393B2 (zh)
KR (1) KR20200074464A (zh)
CN (1) CN111324557B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114201108A (zh) * 2020-09-18 2022-03-18 爱思开海力士有限公司 包括映射高速缓存的控制器以及包括控制器的存储器系统

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020144534A (ja) * 2019-03-05 2020-09-10 キオクシア株式会社 メモリ装置およびキャッシュ制御方法
US11442852B2 (en) * 2020-06-25 2022-09-13 Western Digital Technologies, Inc. Adaptive context metadata message for optimized two-chip performance
US11409661B2 (en) * 2020-08-18 2022-08-09 Micron Technology, Inc. Logical-to-physical mapping
KR20220094601A (ko) * 2020-12-29 2022-07-06 삼성전자주식회사 스토리지 장치 및 그 구동 방법
WO2023141987A1 (zh) * 2022-01-28 2023-08-03 华为技术有限公司 文件读取方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103488578A (zh) * 2012-12-28 2014-01-01 晶天电子(深圳)有限公司 虚拟存储设备(vmd)应用/驱动器
US20140013046A1 (en) * 2007-03-29 2014-01-09 Netapp, Inc. Maintaining snapshot and active file system metadata in an on-disk structure of a fle system
CN104303162A (zh) * 2012-01-12 2015-01-21 才智知识产权控股公司(2) 用于管理缓存接纳的系统和方法
US20170068621A1 (en) * 2015-09-04 2017-03-09 Kabushiki Kaisha Toshiba Memory system and information processing system
US20180025760A1 (en) * 2016-07-20 2018-01-25 Micron Technology, Inc. Apparatuses and methods including nested mode registers
CN108280033A (zh) * 2017-01-04 2018-07-13 爱思开海力士有限公司 数据存储设备及其操作方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141731A (en) * 1998-08-19 2000-10-31 International Business Machines Corporation Method and system for managing data in cache using multiple data structures
US8615635B2 (en) * 2007-01-05 2013-12-24 Sony Corporation Database management methodology
US9261946B2 (en) * 2012-10-11 2016-02-16 Wisconsin Alumni Research Foundation Energy optimized cache memory architecture exploiting spatial locality
US20140195730A1 (en) * 2013-01-07 2014-07-10 Dannie Gerrit Feekes Robust and secure memory subsystem
WO2015199574A1 (en) * 2014-06-27 2015-12-30 Emc Corporation Techniques for automatically freeing space in a log-structured storage system
US9612975B2 (en) * 2014-11-20 2017-04-04 Samsung Electronics Co., Ltd. Page cache device and method for efficient mapping
KR101626218B1 (ko) 2014-11-21 2016-06-13 한양대학교 산학협력단 블록 기반의 페이지 매핑 방법
KR20160144577A (ko) 2015-06-08 2016-12-19 삼성전자주식회사 불휘발성 메모리 모듈 및 그것의 포함하는 사용자 장치
US10242050B2 (en) * 2015-12-23 2019-03-26 Sybase, Inc. Database caching in a database system
US10353822B2 (en) * 2016-03-25 2019-07-16 Home Box Office, Inc. Cache map with sequential tracking for invalidation
US10282889B2 (en) * 2016-11-29 2019-05-07 Samsung Electronics Co., Ltd. Vertex attribute compression and decompression in hardware
US11175853B2 (en) * 2017-05-09 2021-11-16 Samsung Electronics Co., Ltd. Systems and methods for write and flush support in hybrid memory
JP7010740B2 (ja) * 2018-03-16 2022-01-26 キオクシア株式会社 メモリシステムおよび制御方法
US11604738B2 (en) * 2018-09-28 2023-03-14 Advanced Micro Devices, Inc. Device and method for data compression using a metadata cache
US11036636B2 (en) * 2019-06-28 2021-06-15 Intel Corporation Providing improved efficiency for metadata usages

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140013046A1 (en) * 2007-03-29 2014-01-09 Netapp, Inc. Maintaining snapshot and active file system metadata in an on-disk structure of a fle system
CN104303162A (zh) * 2012-01-12 2015-01-21 才智知识产权控股公司(2) 用于管理缓存接纳的系统和方法
CN103488578A (zh) * 2012-12-28 2014-01-01 晶天电子(深圳)有限公司 虚拟存储设备(vmd)应用/驱动器
US20170068621A1 (en) * 2015-09-04 2017-03-09 Kabushiki Kaisha Toshiba Memory system and information processing system
US20180025760A1 (en) * 2016-07-20 2018-01-25 Micron Technology, Inc. Apparatuses and methods including nested mode registers
CN108280033A (zh) * 2017-01-04 2018-07-13 爱思开海力士有限公司 数据存储设备及其操作方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SHIN J Y: "Gecko: Contention-oblivious disk arrays for cloud storage" *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114201108A (zh) * 2020-09-18 2022-03-18 爱思开海力士有限公司 包括映射高速缓存的控制器以及包括控制器的存储器系统
US11954041B2 (en) 2020-09-18 2024-04-09 SK Hynix Inc. Controller including map cache and memory system including controller
CN114201108B (zh) * 2020-09-18 2024-04-09 爱思开海力士有限公司 包括映射高速缓存的控制器以及包括控制器的存储器系统

Also Published As

Publication number Publication date
KR20200074464A (ko) 2020-06-25
US11301393B2 (en) 2022-04-12
US20200192815A1 (en) 2020-06-18
CN111324557B (zh) 2023-03-21

Similar Documents

Publication Publication Date Title
CN111324557B (zh) 数据存储装置、其操作方法以及包括其的存储系统
US11249897B2 (en) Data storage device and operating method thereof
US11487669B2 (en) Memory system for storing data of log-structured merge tree structure and data processing system including the same
US20190266096A1 (en) Data storage device, method of operating the same, and storage system having the same
US10671321B2 (en) Data storage device, operation method for preventing read disturbance thereof, and storage system using the same
US20200310986A1 (en) Data storage device and operating method thereof, and storage system including the same
KR20200122685A (ko) 메모리 시스템 내에서 서로 다른 종류의 데이터를 처리하기 위한 장치 및 방법
CN111414311B (zh) 数据存储装置、其操作方法及其控制器
US11635896B2 (en) Method and data storage apparatus for replacement of invalid data blocks due to data migration
US20200081649A1 (en) Data storage device, operation method thereof and storage system including the same
US11782638B2 (en) Storage device with improved read latency and operating method thereof
US11243888B2 (en) Data storage apparatus and operating method thereof
US20200089421A1 (en) Data storage device, operation method thereof, and storage system including the same
US20190278703A1 (en) Memory system, operating method thereof and electronic device
US20190361608A1 (en) Data storage device and operation method for recovery, and storage system having the same
US10606509B2 (en) Data storage device managing write tag, writing operation method thereof, and storage system including the same
US11243718B2 (en) Data storage apparatus and operation method i'hereof
CN113805793A (zh) 存储装置及其操作方法
US11593006B2 (en) Data storage apparatus and method for managing valid data based on bitmap table
US11422892B2 (en) Data storage apparatus and operating method thereof
US20220188008A1 (en) Data storage apparatus and operation method thereof
US20220188026A1 (en) Data storage apparatus and operation method thereof
US20200349071A1 (en) Data storage device, a controller therefor, and an operation method thereof

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240613

Address after: American Texas

Patentee after: Mimi IP Co.,Ltd.

Country or region after: U.S.A.

Address before: Gyeonggi Do, South Korea

Patentee before: Sk Hynix Inc.

Country or region before: Republic of Korea