CN111435289B - 映射数据访问性能提高的存储器控制器及其操作方法 - Google Patents
映射数据访问性能提高的存储器控制器及其操作方法 Download PDFInfo
- Publication number
- CN111435289B CN111435289B CN201910995028.6A CN201910995028A CN111435289B CN 111435289 B CN111435289 B CN 111435289B CN 201910995028 A CN201910995028 A CN 201910995028A CN 111435289 B CN111435289 B CN 111435289B
- Authority
- CN
- China
- Prior art keywords
- host
- data
- mapping
- segment
- memory
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
-
- 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/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/10—Address translation
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/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
- 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
- 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
- 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
- G06F2212/1024—Latency reduction
-
- 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/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
-
- 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
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及一种存储器控制器。该存储器控制器可包括:映射高速缓存,被配置成存储分别与多个区域中的每一个中包括的多个子区域相对应的多个映射数据子段中的一个或多个;以及映射数据管理器,被配置成生成关于待提供到主机的映射数据子段的信息,该信息是基于存储器装置的读取计数来确定的,以及生成关于待从主机删除的映射数据段的信息,该信息是基于存储器装置的读取计数和主机的存储器来确定的。
Description
相关申请的交叉引用
本申请要求于2019年1月15日提交的申请号为10-2019-0005361的韩国专利申请的优先权,其全部公开内容通过引用整体并入本文。
技术领域
本公开的各个实施例总体涉及一种电子装置,且更特别地,涉及一种存储器控制器和操作该存储器控制器的方法。
背景技术
存储装置在诸如计算机或智能手机的主机装置的控制下存储数据。存储装置可包括存储数据的存储器装置和控制该存储器装置的存储器控制器。这种存储器装置分为易失性存储器装置和非易失性存储器装置。
易失性存储器装置是仅在供应电力时存储数据的存储器装置,并且当电力供应中断时其中存储的数据丢失。易失性存储器装置的示例包括静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。
非易失性存储器装置是即使在电力供应中断时仍保留其中存储的数据的存储器装置。非易失性存储器装置的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)以及闪速存储器。
发明内容
本公开的各个实施涉及一种能够提供映射数据访问性能提高的存储器控制器和操作该存储器控制器的方法。
本公开的实施例可提供一种控制存储器装置的存储器控制器,其中将与存储器装置的物理地址相对应的逻辑地址划分为多个区域。存储器控制器可包括:映射高速缓存,被配置成存储分别与多个区域中的每一个中包括的多个子区域相对应的多个映射数据子段中的一个或多个;以及映射数据管理器,被配置成生成关于待提供到主机的映射数据子段的信息,该信息是基于多个子区域中的每一个的读取计数来确定的,以及生成关于主机中存储的一个或多个映射数据段之中、待从主机删除的映射数据段的信息,该信息是基于读取计数和主机的存储器确定的,其中一个或多个映射数据段包括与多个区域中的一个或多个相对应的映射数据段。
本公开的实施例可提供一种操作存储器控制器的方法,该存储器控制器控制存储器装置并且包括用于存储多个映射数据子段中的一个或多个的映射高速缓存,该方法包括:基于存储器装置的读取计数,生成关于多个映射数据子段之中、待提供到主机的映射数据子段的信息,以及基于存储器装置的读取计数和主机的存储器的容量,生成关于主机中存储的一个或多个映射数据段之中、待从主机删除的映射数据段的信息,其中将与存储器装置的物理地址相对应的逻辑地址划分为多个区域,每个区域包括多个子区域,其中一个或多个映射数据段包括与多个区域中的一个或多个相对应的映射数据段,并且其中多个映射数据子段包括分别与多个子区域相对应的映射数据子段。
本公开的实施例可提供一种计算系统,包括:存储器装置,包括多个区域;主机,包括主机存储器;以及控制器,该控制器包括:映射高速缓存,被配置成存储对应于多个区域的多个映射数据;以及映射数据管理器,被配置成基于多个区域中的每一个的读取计数和主机存储器的容量,确定多个映射数据之中的至少一个第一映射数据作为待存储在主机存储器中的映射数据,并且确定主机存储器中存储的多个映射数据之中的至少一个第二映射数据作为待删除的映射数据,其中第一映射数据的大小不同于第二映射数据的大小。
附图说明
图1是示出根据本公开的实施例的存储装置的示图。
图2是示出图1的存储器装置的示图。
图3是示出图2的存储器单元阵列的示例的示图。
图4是示出图3的多个存储块中的存储块的电路图。
图5是示出图3的多个存储块中的存储块的电路图。
图6是示出根据实施例的存储器控制器的示图。
图7是示出根据实施例的主机和存储装置之间的进程的示图。
图8是示出根据实施例的映射数据的示图。
图9是示出根据实施例的映射数据管理操作的示图。
图10是示出根据实施例的提供映射数据子段的操作的示图。
图11是示出根据实施例的删除映射数据段的操作的示图。
图12是示出根据实施例的存储器控制器的操作的流程图。
图13是示出根据实施例的确定待提供的映射数据子段的操作的流程图。
图14是示出根据实施例的确定待提供的映射数据子段的操作的流程图。
图15是示出根据实施例的生成关于待删除的映射数据段的信息的操作的流程图。
图16是示出根据实施例的生成关于待删除的映射数据段的信息的操作的流程图。
图17是示出图1的存储器控制器的示图。
图18是示出应用了根据本公开的实施例的存储装置的存储卡系统的框图。
图19是示出应用了根据本公开的实施例的存储装置的固态驱动器(SSD)系统的示例的框图。
图20是示出应用了根据本公开的实施例的存储装置的用户系统的框图。
具体实施方式
在本说明书或申请中引入的本公开的实施例中的具体结构或功能描述仅用于描述本公开的实施例。该描述不应被解释为受限于本说明书或申请中描述的实施例。
现将基于实施例详细描述本公开。然而,本公开可以许多不同的形式来实现,并且不应被解释为仅限于本文中阐述的实施例,而是应被解释为涵盖落入本公开的构思和技术范围内的修改、等同方案或替代方案。然而,这不旨在将本公开限制为特定的实践模式,并且应理解的是,不背离本公开的精神和技术范围的所有改变、等同方案和替代方案都被涵盖在本公开中。
将理解的是,虽然可在本文中使用术语“第一”和/或“第二”来描述各个元件,但是这些元件不应受这些术语的限制。这些术语仅用于将一个元件与另一元件区分开。例如,在不脱离本公开的教导的情况下,以下讨论的第一元件可被称为第二元件。类似地,第二元件也可被称为第一元件。
将理解的是,当元件被称为“联接”或“连接”到另一元件时,其可以直接联接或连接到另一元件,或者在其间可存在中间元件。相反,应理解的是,当元件被称为“直接联接”或“直接连接”到另一元件时,则不存在中间元件。应以相同的方式来解释描述元件之间的关系的其它表述,诸如“在……之间”、“直接在……之间”、“相邻于”或“直接相邻于”。
本文使用的术语仅是为了描述特定实施例的目的,并不旨在限制。在本公开中,除非上下文另有明确说明,否则单数形式也旨在包括复数形式。将进一步理解的是,当在本说明书中使用时,术语“包括”、“包含”、“具有”等明确所陈述的特征、整数、步骤、操作、元件、组件和/或其组合的存在,但并不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或其组合的存在或添加。
除非另有定义,否则本文使用的包括技术和科学术语的所有术语具有与本公开所属领域的普通技术人员通常理解的相同的含义。将进一步理解的是,本文使用的术语应当被解释为具有与其在本说明书和相关技术的语境中的含义一致的含义,并且将不以理想化或过于形式化的意义来解释,除非本文中明确地这样定义。
将省略对本领域技术人员熟知的功能和结构的详细描述,以避免模糊本公开的主题。这旨在省略不必要的描述,以便使本公开的主题清晰。
现将在下文中参照附图更充分地描述本公开的各个实施例,其中示出了本公开的优选实施例,使得本领域普通技术人员能够容易地实施本公开的技术构思。
图1是示出根据本公开的实施例的存储装置50的示图。
参照图1,存储装置50可包括存储器装置100和存储器控制器200。存储装置50可以是在诸如以下的主机300的控制下存储数据的装置:移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视(TV)、平板个人计算机(PC)或车载信息娱乐系统。
根据作为与主机300通信的方案的主机接口,存储装置50可被制造为各种类型的存储装置中的任意一种。存储装置50可被实施为各种类型的存储装置中的任意一种,例如,固态驱动器(SSD),诸如MMC、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)或微型MMC的多媒体卡,诸如SD、迷你SD或微型SD的安全数字卡,通用存储总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围组件互连(PCI)卡型存储装置,高速PCI(PCI-e或PCIe)卡型存储装置,紧凑式闪存(CF)卡,智能媒体卡和记忆棒。
存储装置50可以各种类型的封装形式中的任意一种来制造。例如,存储装置50可以诸如以下的各种类型的封装形式中的任意一种来制造:堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)以及晶圆级堆叠封装(WSP)。
存储器装置100可存储数据。存储器装置100响应于存储器控制器200的控制来进行操作。存储器装置100可包括存储器单元阵列,存储器单元阵列包括存储数据的多个存储器单元。
存储器单元中的每一个可被实施为能够存储单位数据的单层单元(SLC)、能够存储两位数据的多层单元(MLC)、能够存储三位数据的三层单元(TLC)或能够存储四位数据的四层单元(QLC)。
存储器单元阵列可包括多个存储块。每个存储块可包括多个存储器单元。单个存储块可包括多个页面。在实施例中,每个页面可以是将数据存储在存储器装置100中的单位,或者是读取存储器装置100中存储的数据的单位。存储块可以是擦除数据的单位。
在实施例中,存储器装置100可采取诸如以下的许多可选形式:双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率第四代(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)SDRAM、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器装置、电阻式RAM(RRAM)、相变存储器(PRAM)、磁阻RAM(MRAM)、铁电RAM(FRAM)或自旋转移力矩RAM(STT-RAM)。在本说明书中,将对作为NAND闪速存储器的存储器装置100进行描述。
存储器装置100可从存储器控制器200接收命令和地址,并且可访问存储器单元阵列中的由地址选择的区域。也就是说,存储器装置100可对由地址选择的区域执行对应于命令的操作。例如,存储器装置100可执行写入操作(即,编程操作)、读取操作和擦除操作。在编程操作期间,存储器装置100可将数据编程到由地址选择的区域。在读取操作期间,存储器装置100可从由地址选择的区域读取数据。在擦除操作期间,存储器装置100可擦除由地址选择的区域中存储的数据。
在实施例中,存储器装置100可存储逻辑到物理(L2P)映射信息。逻辑到物理映射信息可以是指示由主机300提供的数据的逻辑地址与存储数据的存储器装置100的物理地址之间的映射关系的信息。
在实施例中,逻辑到物理映射信息可存储在存储器单元阵列中的多个存储块的各个备用区域中。在实施例中,逻辑到物理映射信息可存储在存储器单元阵列中的多个存储块之中的存储系统信息的至少一个系统块中。
在实施例中,可将与存储器装置100的物理地址相对应的逻辑地址划分为多个区域。多个区域中的每一个可包括多个子区域。对应于每个区域的映射数据段可包括多个映射数据子段,该多个映射数据子段分别对应于相应区域中的多个子区域。映射数据子段中的每一个可包括与被分配到相应子区域的逻辑地址相对应的逻辑到物理映射信息。
存储器控制器200控制存储装置50的全部操作。
当向存储装置50供应电力时,存储器控制器200可运行固件(FW)。当存储器装置100为闪速存储器装置时,存储器控制器200可运行诸如闪存转换层(FTL)的固件,以控制主机300和存储器装置100之间的通信。
在实施例中,存储器控制器200可从主机300接收数据和逻辑块地址(LBA)。进一步地,存储器控制器200可将逻辑块地址(LBA)转换为物理块地址(PBA),物理块地址(PBA)指示存储器装置100中包括的、待存储数据的存储器单元的地址。
存储器控制器200可控制存储器装置100,使得响应于从主机300接收的请求执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可向存储器装置100提供编程命令、物理块地址和数据。在读取操作期间,存储器控制器200可向存储器装置100提供读取命令和物理块地址。在擦除操作期间,存储器控制器200可向存储器装置100提供擦除命令和物理块地址。
在实施例中,存储器控制器200可不考虑来自主机300的请求而自主地生成编程命令、地址和数据,并且可将所生成的信息传送到存储器装置100。例如,存储器控制器200可向执行诸如损耗均衡操作和垃圾收集操作的后台操作的存储器装置100提供命令、地址和数据。
在实施例中,存储器控制器200可控制至少两个存储器装置100。在这种情况下,存储器控制器200可根据交错方案来控制存储器装置100,以提高操作性能。交错方案可以是使至少两个存储器装置100的操作时段彼此重叠的操作方式。
在实施例中,存储器控制器200可包括映射高速缓存210和映射数据管理器220。
映射高速缓存210可存储相应存储器装置100中存储的映射数据的一部分。详细地,映射高速缓存210可存储存储器装置100中存储的多个映射数据子段中的一个或多个。
当访问存储器装置100中的数据时,可利用映射高速缓存210中的映射数据。当映射高速缓存210被配置为高速操作的易失性存储器时,与访问被配置为低速非易失性存储器的存储器装置100中的映射数据相比,可提高映射数据访问性能。
然而,因为映射高速缓存210的容量有限,所以如果映射数据存储在主机存储器310中,并且当访问存储器装置100中存储的数据时利用主机存储器310中存储的映射数据,则可提高映射数据访问性能。以这种方式,将利用在主机300一侧的主机存储器310的方案称为“主机知悉式效能提升器(Host-aware Performance Booster,HPB)”。
映射数据管理器220可向主机300提供映射数据。将映射数据存储在主机300的主机存储器310中的操作可以是启用操作。删除主机存储器310中的映射数据的操作可以是停用操作。基于HPB的映射数据管理策略,启用操作的映射数据的单位的大小可不同于停用操作的映射数据的单位的大小。
详细地,映射数据管理器220可选择待提供到主机300的映射数据子段和待从主机300删除的映射数据段。映射数据管理器220可生成关于待提供到主机300的映射数据子段的信息和关于待从主机300删除的映射数据段的信息。进一步地,映射数据管理器220可向主机300提供所生成的信息。
在实施例中,映射数据管理器220可决定待从映射高速缓存210中移除的映射数据子段作为待提供到主机300的映射数据子段。可根据映射高速缓存管理策略来确定待移除的映射数据子段。
例如,映射数据管理器220可基于存储器装置100的读取计数来选择待提供到主机300的映射数据子段。也就是说,映射数据管理器220可基于各个映射数据子段的读取计数来设置映射高速缓存210中映射数据子段的级别。进一步地,映射数据管理器220可确定具有最低级别的映射数据子段作为待移除的映射数据子段。在各个实施例中,映射数据管理器220可基于映射高速缓存210中各个映射数据子段的最近访问频率来设置映射数据子段的级别。进一步地,映射数据管理器220可确定具有最低级别的映射数据子段作为待移除的映射数据子段。
在各个实施例中,映射数据管理器220可在与存储器装置100的物理地址相对应的所有逻辑地址的多条映射数据之中,基于存储器装置100的读取计数,选择待提供到主机300的映射数据子段。读取计数可以是对具有预设大小的数据执行的读取操作进行计数的次数。映射数据管理器220可确定读取计数大于或等于预设次数的映射数据子段是待提供到主机300的映射数据子段。可选地,映射数据管理器220可确定多条映射数据之中具有最高读取计数的映射数据子段作为待提供到主机300的映射数据子段。
映射数据管理器220可基于存储器装置100的读取计数和主机存储器310的存储空间来生成关于待从主机300删除的映射数据段的信息。映射数据管理器220可根据主机存储器310的存储空间是否充足来确定是否从主机300删除映射数据段。
当主机存储器310的存储空间充足时,映射数据管理器220可确定不从主机300删除映射数据段。当主机存储器310的存储空间不足时,映射数据管理器220可确定从主机300删除映射数据段。
当待提供到主机300的映射数据子段存储在主机存储器310中时,映射数据管理器220可确定主机存储器310中存储的映射数据段的数量是否大于阈值。阈值可以是可存储在主机存储器310中的映射数据段的最大数量。
当主机存储器310中的映射数据段的数量大于阈值时,映射数据管理器220可确定主机存储器310的存储空间不足。当主机存储器310中的映射数据段的数量小于或等于阈值时,映射数据管理器220可确定主机存储器310的存储空间充足。
当主机存储器310的存储空间不足时,映射数据管理器220可向主机300提供主机映射更新信息,从而执行映射数据替换操作。映射数据替换操作可以是用于将待提供到主机300的映射数据子段存储在主机存储器310中并且从主机300删除在主机存储器310中存储的映射数据段的操作。
在各个实施例中,即使主机存储器310的存储空间不足,映射数据管理器220也可不向主机300提供主机映射更新信息,从而不执行映射数据替换操作。
也就是说,当待从主机300删除的映射数据段的读取计数大于待提供到主机300的映射数据子段的读取计数时,映射数据管理器220可不向主机300提供主机映射更新信息,从而不执行映射数据替换操作。其原因在于,当待从主机300删除的映射数据段的读取计数大于待提供到主机300的映射数据子段的读取计数时,从映射数据访问性能的角度来看,优选的是不执行替换操作。
也就是说,即使待从主机300删除的映射数据段的读取计数小于待提供到主机300的映射数据子段的读取计数,映射数据管理器220也可不向主机300提供主机映射更新信息,从而不执行映射数据替换操作。详细地,当待从主机300删除的映射数据段中的正常映射数据子段的数量大于或等于预设数量时,映射数据管理器220可不向主机300提供主机映射更新信息。其原因在于,当考虑到为了执行将映射数据段中的正常映射数据子段提供到主机300并在其中存储正常映射数据子段的操作所需的成本和时间时,从映射数据访问性能的角度来看,优选的是不应删除映射数据段。
映射数据管理器220可向主机300提供主机映射更新信息,主机映射更新信息包括关于待提供到主机300的映射数据子段的信息和关于待从主机300删除的映射数据段的信息两者。基于主机映射更新信息,可执行映射数据替换操作,即将待提供到主机300的映射数据子段存储在主机存储器310中,并且从主机300删除主机存储器310中存储的映射数据段。
当从主机300接收到读取请求或写入请求时,映射数据管理器220可向主机300提供包括主机映射更新信息的响应。
映射数据管理器220可响应于从主机300接收的映射数据请求,向主机300提供待提供到主机300的映射数据子段。
主机300可使用诸如以下的各种通信方法中的至少一种与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)以及低负载DIMM(LRDIMM)通信方法。
在实施例中,主机300可包括主机存储器310。主机存储器310可包括映射数据存储空间,用于存储从存储器控制器200提供的映射数据。因为映射高速缓存210的容量有限,所以使用主机存储器310中存储的映射数据来访问数据的方案可以是HPB方案。
详细地,存储器控制器200可向主机300提供映射数据。主机300可将所提供的映射数据存储在主机存储器310中。当读取存储器装置100中的数据时,主机300可利用主机存储器310中存储的映射数据。主机300可将映射数据与读取请求一起提供到存储器控制器200,该映射数据包括存储待读取的数据的存储器装置100的物理地址。
存储器控制器200无需访问单独的存储器装置100中存储的映射数据或映射高速缓存210中存储的映射数据。进一步地,存储器控制器200可参考从主机300提供的映射数据来读取待读取的数据。因此,基于除映射高速缓存210之外的主机存储器310中存储的映射数据来执行数据访问操作,并因此可解决对具有有限容量的映射高速缓存210的限制。也就是说,主机存储器310可用作存储映射数据的扩展区域,以便克服对映射高速缓存210的有限容量的限制。
主机存储器310可存储从存储器控制器200提供的数据。可删除主机存储器310中存储的映射数据。根据HPB的映射数据管理策略,提供到主机300的映射数据的单位的大小可不同于从主机存储器310删除的映射数据的单位的大小。例如,可将与存储器装置100的物理地址相对应的逻辑地址划分为多个区域。多个区域中的每一个可包括多个子区域。对应于每个区域的映射数据可以是映射数据段。对应于每个子区域的映射数据可以是映射数据子段。每个映射数据段可包括多个映射数据子段。
在实施例中,主机存储器310可存储对应于至少一个区域的映射数据段。提供到主机300的映射数据的单位可以是映射数据子段。主机存储器310可存储预设数量的映射数据段。预设数量的映射数据段可以是可存储在主机存储器310中的映射数据段的最大数量。
对存储在主机存储器310中的、待提供到主机300的映射数据子段的操作可以是启用操作。可基于存储器装置100的读取计数来确定待执行启用操作的映射数据。详细地,可基于映射数据的读取计数来确定待执行启用操作的映射数据。
从主机存储器310删除的映射数据的单位可以是映射数据段。删除主机存储器310中的映射数据段的操作可以是停用操作。可根据主机存储器310的映射数据存储空间是否充足来确定是否要执行停用操作。当主机存储器310的映射数据存储空间充足时,可不执行停用操作。当主机存储器310的映射数据存储空间不足时,可执行停用操作。
也就是说,当与待执行启用操作的映射数据子段相对应的映射数据段被存储在主机存储器310中时,如果主机存储器310中的映射数据段的数量大于阈值,则可确定主机存储器310的映射数据存储空间不足。阈值可以是可存储在主机存储器310中的映射数据段的最大数量。在这种情况下,可执行删除主机存储器310中存储的现有映射数据段的停用操作。
在实施例中,待执行启用操作的映射数据可以是根据映射高速缓存管理策略待从映射高速缓存210中移除的映射数据。可基于映射数据的读取计数,根据映射高速缓存管理策略来确定待从映射高速缓存210中移除的映射数据。例如,待从映射高速缓存210中移除的映射数据可以是映射高速缓存210中存储的多条映射数据之中具有最低读取计数的映射数据。可选地,待从映射高速缓存210中移除的映射数据可以是映射高速缓存210中存储的多条映射数据之中具有最近最少访问频率的映射数据,也就是最近最少访问的映射数据。
在其它实施例中,待执行启用操作的映射数据可以是与存储器装置100的物理地址相对应的所有逻辑地址的多条映射数据之中、读取计数大于或等于预设次数的映射数据。待执行启用操作的映射数据可以是读取计数大于或等于预设次数的多条映射数据之中具有最高读取计数的映射数据。此处,这种读取计数可以是对具有预设大小的数据执行的读取操作进行计数的次数。
在实施例中,待执行停用操作的映射数据可以是主机存储器310中存储的多条映射数据之中最近最少访问的映射数据。可基于映射数据中包括的物理地址处存储的数据的读取计数来确定访问映射数据的频率。
在各个实施例中,即使对主机存储器310中存储的多条映射数据之中最近最少访问的映射数据也可不执行停用操作。详细地,根据与计划执行停用操作的映射数据段中包括的正常映射数据子段的单位相对应的映射数据的条数,可确定是否将执行停用操作。当映射数据段中正常映射数据子段的数量大于或等于预设数量时,可不对映射数据段执行停用操作。
根据本公开的实施例,可考虑启用操作的映射数据的单位不同于停用操作的映射数据的单位的事实来执行启用操作和停用操作。可独立地执行启用操作和停用操作。在实施例中,可一起执行启用操作和停用操作。根据本公开的实施例,可有效地执行待执行启用操作的映射数据与待执行停用操作的映射数据之间的替换操作。
图2是示出图1的存储器装置的示图。
参照图2,存储器装置100可包括存储器单元阵列110、外围电路120和控制逻辑130。外围电路120可包括地址解码器121、电压生成器122、读取和写入电路123、数据输入和输出(输入/输出)电路124以及感测电路125。
存储器单元阵列110包括多个存储块BLK1至BLKz。多个存储块BLK1至BLKz通过行线RL联接到地址解码器121。存储块BLK1至BLKz通过位线BL1至BLm联接到读取和写入电路123。存储块BLK1至BLKz中的每一个包括多个存储器单元。在实施例中,多个存储器单元为非易失性存储器单元。在多个存储器单元之中,联接到相同字线的存储器单元被定义为单个物理页面。也就是说,存储器单元阵列110包括多个物理页面。根据本公开的实施例,存储器单元阵列110中的多个存储块BLK1至BLKz中的每一个可包括多个虚设单元。一个或多个虚设单元可串联联接在漏极选择晶体管与存储器单元之间以及源极选择晶体管与存储器单元之间。
存储器装置100的存储器单元中的每一个可被实施为能够存储单位数据的单层单元(SLC)、能够存储两位数据的多层单元(MLC)、能够存储三位数据的三层单元(TLC)或能够存储四位数据的四层单元(QLC)。
外围电路120可驱动存储器单元阵列110。例如,外围电路120可驱动存储器单元阵列110,从而执行编程操作、读取操作和擦除操作。
地址解码器121通过行线RL联接到存储器单元阵列110。行线RL可包括漏极选择线、字线、源极选择线和共源线。根据本公开的实施例,字线可包括正常字线和虚设字线。根据本公开的实施例,行线RL可进一步包括管道选择线。
地址解码器121可在控制逻辑130的控制下操作。地址解码器121从控制逻辑130接收地址ADDR。
地址解码器121可对所接收的地址ADDR之中的块地址进行解码。地址解码器121响应于经解码的块地址从存储块BLK1至BLKz之中选择至少一个存储块。地址解码器121被配置成对所接收的地址ADDR之中的行地址RADD进行解码。地址解码器121可响应于经解码的行地址RADD,通过将从电压生成器122供应的电压施加到至少一个字线WL来选择所选择的存储块的至少一个字线。
在编程操作期间,地址解码器121可将编程电压施加到所选择的字线并将具有小于编程电压的电平的通过电压施加到未选择的字线。在编程验证操作期间,地址解码器121可将验证电压施加到选择的字线并将具有大于验证电压的电平的验证通过电压施加到未选择的字线。
在读取操作期间,地址解码器121可将读取电压施加到选择的字线并将具有大于读取电压的电平的读取通过电压施加到未选择的字线。
根据本公开的实施例,可基于存储块来执行存储器装置100的擦除操作。在擦除操作期间,输入到存储器装置100的地址ADDR包括块地址。地址解码器121可对块地址进行解码,并响应于经解码的块地址选择单个存储块。在擦除操作期间,地址解码器121可将接地电压施加到与所选择的存储块联接的字线。
根据本公开的实施例,地址解码器121可对所接收的地址ADDR之中的列地址进行解码。经解码的列地址可被传输到读取和写入电路123。在实施例中,地址解码器121可包括诸如行解码器、列解码器和地址缓冲器的组件。
电压生成器122可使用供应到存储器装置100的外部电源电压来生成多个操作电压Vop。电压生成器122可在控制逻辑130的控制下操作。
在实施例中,电压生成器122可通过调节外部电源电压来生成内部电源电压。由电压生成器122生成的内部电源电压被用作存储器装置100的操作电压。
在实施例中,电压生成器122可使用外部电源电压或内部电源电压来生成多个操作电压Vop。电压生成器122可生成存储器装置100所需的各种电压。例如,电压生成器122可生成多个擦除电压、多个编程电压、多个通过电压、多个选择读取电压以及多个未选择读取电压。
电压生成器122可包括多个泵浦电容器,用于接收内部电源电压以生成具有各种电压电平的多个操作电压Vop。电压生成器122可在控制逻辑130的控制下通过选择性地启用多个泵浦电容器来生成多个操作电压Vop。
可通过地址解码器121将所生成的操作电压Vop供应到存储器单元阵列110。
读取和写入电路123包括第一至第m页面缓冲器PB1至PBm。第一至第m页面缓冲器PB1至PBm分别通过第一至第m位线BL1至BLm联接到存储器单元阵列110。第一至第m页面缓冲器PB1至PBm可在控制逻辑130的控制下操作。
第一至第m页面缓冲器PB1至PBm可向数据输入/输出电路124传送数据DATA和从数据输入/输出电路124接收数据DATA。在编程操作期间,第一至第m页面缓冲器PB1至PBm通过数据输入/输出电路124和数据线DL接收待存储的数据DATA。
在编程操作期间,当编程脉冲被施加到选择的字线时,第一至第m页面缓冲器PB1至PBm可通过位线BL1到BLm将通过数据输入/输出电路124接收的待存储数据DATA传输到所选择的存储器单元。基于所接收的数据DATA对所选择的页面中的存储器单元进行编程。联接到施加了编程许可电压(例如,接地电压)的位线的存储器单元可具有增加的阈值电压。联接到施加了编程禁止电压(例如,电源电压)的位线的存储器单元的阈值电压可被保持。在编程验证操作期间,第一至第m页面缓冲器PB1至PBm可通过位线BL1至BLm从所选择的存储器单元读取所选择的存储器单元中存储的数据。
在读取操作期间,读取和写入电路123可通过位线BL从所选择的页面中的存储器单元读取数据DATA,并且可将读取的数据DATA存储在第一至第m页面缓冲器PB1至PBm中。
在擦除操作期间,读取和写入电路123可使位线BL浮置。在实施例中,读取和写入电路123可包括列选择电路。
数据输入/输出电路124通过数据线DL联接到第一至第m页面缓冲器PB1至PBm。数据输入/输出电路124响应于控制逻辑130的控制来操作。
数据输入/输出电路124可包括接收输入数据DATA的多个输入/输出缓冲器(未示出)。在编程操作期间,数据输入/输出电路124从外部控制器(例如,图1的存储器控制器200)接收待存储的数据DATA。在读取操作期间,数据输入/输出电路124将从读取和写入电路123中的第一至第m页面缓冲器PB1至PBm接收的数据DATA输出到外部控制器。
在读取操作或验证操作期间,感测电路125可响应于由控制逻辑130生成的使能位VRYBIT信号来生成参考电流。进一步地,感测电路125可通过将从读取和写入电路123接收的感测电压VPB与由参考电流生成的参考电压进行比较来向控制逻辑130输出通过信号或失败信号。
控制逻辑130可联接到地址解码器121、电压生成器122、读取和写入电路123、数据输入/输出电路124以及感测电路125。控制逻辑130可控制存储器装置100的全部操作。控制逻辑130可响应于从外部装置所接收的命令CMD进行操作。
控制电路130可通过响应于命令CMD和地址ADDR生成各种类型的信号来控制外围电路120。例如,控制逻辑130可响应于命令CMD和地址ADDR,生成操作信号OPSIG、行地址RADD、读取和写入电路控制信号PBSIGNALS以及使能位VRYBIT。控制逻辑130可向电压生成器122输出操作信号OPSIG,向地址解码器121输出行地址RADD,向读取和写入电路123输出读取和写入电路控制信号PBSIGNALS,并且向感测电路125输出使能位VRYBIT。另外,控制逻辑130可响应于从感测电路125输出的通过信号PASS或失败信号FAIL来确定验证操作是已通过还是已失败。
图3是示出图2的存储器单元阵列110的示例的示图。
参照图3,存储器单元阵列110包括多个存储块BLK1至BLKz。每个存储块可具有三维(3D)结构。每个存储块包括堆叠在衬底上的多个存储器单元。这种存储器单元布置在正X(+X)方向、正Y(+Y)方向和正Z(+Z)方向上。以下将参照图4和图5详细地描述每个存储块的结构。
图4是示出根据本公开的实施例的存储块,例如图3的存储块BLK1至BLKz中的存储块BLKa的电路图。
参照图4,存储块BLKa包括多个单元串CS11至CS1m和CS21至CS2m。在实施例中,单元串CS11至CS1m和CS21至CS2m中的每一个可形成为“U”形。在存储块BLKa中,m个单元串布置在行方向(即,正(+)X方向)上。虽然图4示出了在列方向(即,正(+)Y方向)上布置的两个单元串,但应当理解的是,可在列方向上布置三个或更多个单元串。
多个单元串CS11至CS1m和CS21至CS2m中的每一个包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn、管道晶体管PT以及至少一个漏极选择晶体管DST。
选择晶体管SST和DST以及存储器单元MC1至MCn可分别具有相似的结构。在实施例中,选择晶体管SST和DST以及存储器单元MC1至MCn中的每一个可包括沟道层、隧穿绝缘层、电荷存储层和阻挡绝缘层。在实施例中,可对每个单元串设置用于提供沟道层的柱。在实施例中,可对每个单元串设置用于提供沟道层、隧穿绝缘层、电荷存储层和阻挡绝缘层中的至少一个的柱。
每个单元串的源极选择晶体管SST连接在共源线CSL与存储器单元MC1至MCp之间。
在实施例中,布置在相同行中的单元串的源极选择晶体管联接到在行方向上延伸的源极选择线,并且布置在不同行中的单元串的源极选择晶体管联接到不同的源极选择线。在图4中,第一行中的单元串CS11至CS1m的源极选择晶体管联接到第一源极选择线SSL1。第二行中的单元串CS21至CS2m的源极选择晶体管联接到第二源极选择线SSL2。
在实施例中,单元串CS11至CS1m和CS21至CS2m的源极选择晶体管可共同联接到单个源极选择线。
每个单元串中的第一至第n存储器单元MC1至MCn联接在源极选择晶体管SST和漏极选择晶体管DST之间。
第一至第n存储器单元MC1至MCn可被划分成第一至第p存储器单元MC1至MCp和第(p+1)至第n存储器单元MCp+1至MCn。第一至第p存储器单元MC1至MCp顺序地布置在与正(+)Z方向相反的方向上,并且串联连接在源极选择晶体管SST和管道晶体管PT之间。第(p+1)至第n存储器单元MCp+1至MCn顺序地布置在+Z方向上,并且串联连接在管道晶体管PT和漏极选择晶体管DST之间。第一至第p存储器单元MC1至MCp和第(p+1)至第n存储器单元MCp+1至MCn通过管道晶体管PT彼此联接。每个单元串的第一至第n存储器单元MC1至MCn的栅极分别联接到第一至第n字线WL1至WLn。
每个单元串的管道晶体管PT的栅极联接到管线PL。
每个单元串的漏极选择晶体管DST联接在相应的位线和存储器单元MCp+1至MCn之间。行方向上的单元串联接到在行方向上延伸的漏极选择线。第一行中的单元串CS11至CS1m的漏极选择晶体管联接到第一漏极选择线DSL1。第二行中的单元串CS21至CS2m的漏极选择晶体管联接到第二漏极选择线DSL2。
布置在列方向上的单元串联接到在列方向上延伸的位线。在图4中,第一列中的单元串CS11和CS21联接到第一位线BL1。第m列中的单元串CS1m和CS2m联接到第m位线BLm。
布置在行方向上的单元串中的、联接到相同字线的存储器单元构成单个页面。例如,第一行中的单元串CS11至CS1m之中的、联接到第一字线WL1的存储器单元构成单个页面。第二行中的单元串CS21至CS2m之中的、联接到第一字线WL1的存储器单元构成另外的单个页面。可通过选择漏极选择线DSL1和DSL2中的任意一个来选择布置在单个行的方向上的单元串。可通过选择字线WL1至WLn中的任意一个来从所选择的单元串中选择单个页面。
在实施例中,可设置偶数位线和奇数位线来代替第一至第m位线BL1至BLm。此外,在行方向上布置的单元串CS11至CS1m或CS21至CS2m之中的偶数编号的单元串可分别联接到偶数位线,并且在行方向上布置的单元串CS11至CS1m或CS21至CS2m之中的奇数编号的单元串可分别联接到奇数位线。
在实施例中,第一至第n存储器单元MC1至MCn中的一个或多个可用作虚设存储器单元。例如,设置一个或多个虚设存储器单元以减小源极选择晶体管SST与存储器单元MC1至MCp之间的电场。可选地,设置一个或多个虚设存储器单元以减小漏极选择晶体管DST与存储器单元MCp+1至MCn之间的电场。随着设置更多的虚设存储器单元,存储块BLKa的操作可靠性提高,但存储块BLKa的大小增加。随着设置更少的虚设存储器单元,存储块BLKa的大小减小,但存储块BLKa的操作可靠性可能劣化。
为了有效地控制一个或多个虚设存储器单元,虚设存储器单元中的每一个可具有所需的阈值电压。在执行存储块BLKa的擦除操作之前或之后,可对全部或部分虚设存储器单元执行编程操作。当在已经执行编程操作之后执行擦除操作时,虚设存储器单元的阈值电压控制施加到与各个虚设存储器单元联接的虚设字线的电压,因此虚设存储器单元可具有所需的阈值电压。
图5是示出根据本公开的实施例的存储块,例如图3的存储块BLK1至BLKz中的存储块BLKb的电路图。
参照图5,存储块BLKb包括多个单元串CS11'至CS1m'和CS21'至CS2m'。多个单元串CS11'至CS1m'和CS21'至CS2m'中的每一个在正Z(+Z)方向上延伸。单元串CS11'至CS1m'和CS21'至CS2m'中的每一个包括堆叠在存储块BLKb下方的衬底(未示出)上的至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn以及至少一个漏极选择晶体管DST。
每个单元串的源极选择晶体管SST连接在共源线CSL和存储器单元MC1至MCn之间。布置在相同行中的单元串的源极选择晶体管联接到相同的源极选择线。布置在第一行中的单元串CS11'至CS1m'的源极选择晶体管联接到第一源极选择线SSL1。布置在第二行中的单元串CS21'至CS2m'的源极选择晶体管联接到第二源极选择线SSL2。在实施例中,单元串CS11'至CS1m'和CS21'至CS2m'的源极选择晶体管可共同联接到单个源极选择线。
每个单元串中的第一至第n存储器单元MC1至MCn串联连接在源极选择晶体管SST和漏极选择晶体管DST之间。第一至第n存储器单元MC1至MCn的栅极分别联接到第一至第n字线WL1至WLn。
每个单元串的漏极选择晶体管DST连接在相应位线和存储器单元MC1至MCn之间。布置在行方向上的单元串的漏极选择晶体管联接到在行方向上延伸的漏极选择线。第一行中的单元串CS11'至CS1m'的漏极选择晶体管联接到第一漏极选择线DSL1。第二行中的单元串CS21'至CS2m'的漏极选择晶体管联接到第二漏极选择线DSL2。
因此,除了从每个单元串排除管道晶体管PT之外,图5的存储块BLKb具有与图4的存储块BLKa的等效电路相似的等效电路。
在实施例中,可设置偶数位线和奇数位线来代替第一至第m位线BL1至BLm。此外,在行方向上布置的单元串CS11'至CS1m'或CS21'至CS2m'之中的偶数编号的单元串可分别联接到偶数位线,并且在行方向上布置的单元串CS11'至CS1m'或CS21'至CS2m'之中的奇数编号的单元串可分别联接到奇数位线。
在实施例中,第一至第n存储器单元MC1至MCn中的一个或多个可用作虚设存储器单元。例如,设置一个或多个虚设存储器单元以减小源极选择晶体管SST与存储器单元MC1至MCn之间的电场。可选地,设置一个或多个虚设存储器单元以减小漏极选择晶体管DST与存储器单元MC1至MCn之间的电场。随着设置更多的虚设存储器单元,存储块BLKb的操作可靠性提高,但存储块BLKb的大小增加。随着设置更少的虚设存储器单元,存储块BLKb的大小减小,但存储块BLKb的操作的可靠性可能劣化。
为了有效地控制一个或多个虚设存储器单元,虚设存储器单元中的每一个可具有所需的阈值电压。在执行存储块BLKb的擦除操作之前或之后,可对全部或部分虚设存储器单元执行编程操作。当在已经执行编程操作之后执行擦除操作时,虚设存储器单元的阈值电压控制施加到与各个虚设存储器单元联接的虚设字线的电压,因此虚设存储器单元可具有所需的阈值电压。
图6是示出根据实施例的存储器控制器,例如图1的存储器控制器200的示图。
参照图6,逻辑到物理(L2P)映射信息可存储在存储器装置100中。L2P映射信息可以是指示由主机300提供的数据的逻辑地址与存储数据的存储器装置100的物理地址之间的映射关系的信息。
在实施例中,可将与存储器装置100的物理地址相对应的逻辑地址划分为多个区域。多个区域中的每一个可包括多个子区域。对应于每个区域的映射数据段可包括多个映射数据子段,该多个映射数据子段分别对应于相应区域中包括的多个子区域。映射数据子段中的每一个可包括与被分配到相应子区域的逻辑地址相对应的逻辑到物理映射信息。
存储器控制器200可包括映射高速缓存210和映射数据管理器220。
映射高速缓存210可存储存储器装置100中存储的映射数据的一部分。详细地,映射高速缓存210可存储指示存储器装置100中的逻辑到物理映射信息的多个映射数据子段中的一个或多个。
当访问存储器装置100中的数据时,可利用映射高速缓存210中的映射数据。当映射高速缓存210被配置为高速操作的易失性存储器时,与访问被配置为低速非易失性存储器的存储器装置100中存储的映射数据的情况相比,可提高映射数据访问性能。
然而,因为映射高速缓存210的容量有限,所以如果映射数据存储在主机存储器310中,并且当访问存储器装置100中存储的数据时利用主机存储器310中存储的映射数据,则可提高映射数据访问性能。以这种方式,将利用在主机300一侧的主机存储器310的方案称为“主机知悉式效能提升器(HPB)”。
映射数据管理器220可包括映射管理信息处理器221、映射管理信息存储装置222和映射数据处理器223。
映射管理信息处理器221可基于存储器装置100的读取计数来生成映射管理信息。映射管理信息可包括映射高速缓存管理信息、主机映射管理信息和存储器装置映射管理信息。映射高速缓存管理信息可以是包括映射高速缓存210中存储的映射数据子段的读取计数的信息。主机映射管理信息可以是包括主机存储器310中存储的映射数据段的读取计数的信息。存储器装置映射管理信息可以是包括与存储器装置100的物理地址相对应的所有逻辑地址处的多个映射数据段的读取计数的信息。存储器装置映射管理信息中的读取计数中的每一个可以是对具有预设大小的数据执行的读取操作进行计数的次数。
映射管理信息处理器221可更新映射管理信息存储装置222中的映射管理信息。当从主机300接收到读取请求时,映射管理信息处理器221可更新存储在映射管理信息存储装置222中的映射管理信息中的相应读取计数。
当主机存储器310、映射高速缓存210或存储器装置100中的映射数据被添加、删除或改变时,映射管理信息处理器221可更新包括相应映射数据的映射管理信息。
映射管理信息处理器221可生成指示主机存储器310中的映射数据子段是否是正常映射数据子段的主机映射状态信息。可将主机映射状态信息实施为位图。
例如,映射管理信息处理器221可生成主机映射状态信息。当存储的映射数据子段是正常映射数据子段时,主机映射状态信息指示逻辑值“1”。当存储的映射数据子段是脏映射数据子段或空映射数据子段时,主机映射状态信息指示逻辑值“0”。脏映射数据子段可以是具有无效映射数据信息的映射数据子段。在实施例中,映射管理信息处理器221可生成主机映射状态信息。当存储的映射数据子段是正常映射数据子段时,主机映射状态信息指示逻辑值“0”。当存储的映射数据子段是脏映射数据子段或空映射数据子段时,主机映射状态信息指示逻辑值“1”。
映射管理信息处理器221可更新主机映射状态信息。例如,当执行重写操作时,映射管理信息处理器221可将正常映射数据子段改变为脏映射数据子段,该重写操作是针对与正常映射数据子段中包括的物理地址相对应的逻辑地址存储新数据的操作。
映射管理信息存储装置222可存储映射高速缓存管理信息、主机映射管理信息、存储器装置映射管理信息和/或主机映射状态信息。
映射数据处理器223可向主机300提供映射数据。将映射数据存储在主机300中的主机存储器310中的操作可以是启用操作。删除主机存储器310中的映射数据的操作可以是停用操作。基于HPB的映射数据管理策略,启用操作的映射数据的单位的大小可不同于停用操作的映射数据的单位的大小。
详细地,映射数据处理器223可选择待提供到主机300的映射数据子段和待从主机300删除的映射数据段。映射数据处理器223可生成关于待提供到主机300的映射数据子段的信息和关于待从主机300删除的映射数据段的信息。进一步地,映射数据处理器223可向主机300提供所生成的信息。
在实施例中,映射数据处理器223可确定待从映射高速缓存210中移除的映射数据子段作为待提供到主机300的映射数据子段。可根据映射高速缓存管理策略来确定待从映射高速缓存210中移除的映射数据子段。
也就是说,映射数据处理器223可参考映射高速缓存管理信息,基于映射高速缓存210中各个映射数据子段的读取计数来设置映射数据子段的级别。进一步地,映射数据处理器223可确定具有最低级别的映射数据子段作为待移除的映射数据子段。在各个实施例中,映射数据处理器223可基于各个映射数据子段的最近访问频率来设置映射高速缓存210中映射数据子段的级别。进一步地,映射数据处理器223可确定具有最低级别的映射数据子段作为待移除的映射数据子段。
在实施例中,映射数据处理器223可参考存储器装置映射管理信息,选择与存储器装置100的物理地址相对应的所有逻辑地址的多条映射数据之中待提供到主机300的映射数据子段。每个读取计数可以是对具有预设大小的数据执行的读取操作进行计数的次数。映射数据处理器223可确定读取计数大于或等于预设次数的映射数据子段是待提供到主机300的映射数据子段。可选地,映射数据处理器223可确定多条映射数据之中具有最高读取计数的映射数据子段是待提供到主机300的映射数据子段。
映射数据处理器223可基于存储器装置100的读取计数和主机存储器310的存储空间来生成关于待从主机300删除的映射数据段的信息。映射数据处理器223可基于主机映射管理信息来生成关于待从主机300删除的映射数据段的信息。
映射数据处理器223可根据主机存储器310的存储空间是否充足来确定是否从主机300删除映射数据段。
当主机存储器310的存储空间充足时,映射数据处理器223可确定不从主机300删除映射数据段。当主机存储器310的存储空间不足时,映射数据处理器223可确定从主机300删除映射数据段。
当待提供到主机300的映射数据子段存储在主机存储器310中时,映射数据处理器223可确定主机存储器310中的映射数据段的数量是否大于阈值。阈值可以是可存储在主机存储器310中的映射数据段的最大数量。
当主机存储器310中的映射数据段的数量大于阈值时,映射数据处理器223可确定主机存储器310的存储空间不足。当主机存储器310中的映射数据段的数量小于或等于阈值时,映射数据处理器223可确定主机存储器310的存储空间充足。
当主机存储器310的存储空间不足时,映射数据处理器223可向主机300提供主机映射更新信息,从而执行映射数据替换操作。映射数据替换操作可以是将待提供到主机300的映射数据子段存储在主机存储器310中以及从主机300删除主机存储器310中存储的映射数据段的操作。
在实施例中,映射数据处理器223可基于主机映射管理信息、主机映射状态信息和映射高速缓存管理信息来确定是否执行映射数据替换操作。在实施例中,映射数据处理器223可基于主机映射管理信息、主机映射状态信息和存储器装置映射管理信息来确定是否执行映射数据替换操作。
在各个实施例中,即使主机存储器310的存储空间不足,映射数据处理器223也可不向主机300提供主机映射更新信息,从而不执行映射数据替换操作。
也就是说,当待从主机300删除的映射数据段的读取计数大于待提供到主机300的映射数据子段的读取计数时,映射数据处理器223可不向主机300提供主机映射更新信息,从而不执行映射数据替换操作。
在各个实施例中,即使待从主机300删除的映射数据段的读取计数小于待提供到主机300的映射数据子段的读取计数,映射数据处理器223也可不向主机300提供主机映射更新信息,从而不执行映射数据替换操作。详细地,映射数据处理器223可基于主机映射状态信息来确定待从主机300删除的映射数据段中的正常映射数据子段的数量。当待从主机300删除的映射数据段中的正常映射数据子段的数量大于或等于预设数量时,映射数据处理器223可不向主机300提供主机映射更新信息。
映射数据处理器223可向主机300提供主机映射更新信息,该主机映射更新信息包括关于待提供到主机300的映射数据子段的信息和关于待从主机300删除的映射数据段的信息两者。基于主机映射更新信息,可执行映射数据替换操作。通过映射数据替换操作,待提供到主机300的映射数据子段被存储在主机存储器310中,并且从主机300删除主机存储器310中存储的映射数据段。
当从主机300接收到读取请求或写入请求时,映射数据处理器223可向主机300提供包括主机映射更新信息的响应。
映射数据处理器223可响应于从主机300接收的映射数据请求,向主机300提供待提供到主机300的映射数据子段。
在实施例中,主机300可包括主机存储器310。主机存储器310可包括映射数据存储空间,用于存储从存储器控制器200提供的映射数据。因为映射高速缓存210的容量有限,所以使用主机存储器310中的映射数据来访问数据的方案可以是HPB方案。主机存储器310可与上面参照图1描述的主机存储器相同。
图7是示出根据实施例的主机与存储装置之间的进程,例如图1和图6的主机300与存储装置50之间的进程的示图。
参照图7,主机可向存储装置提供指示存储装置的操作的命令,包括读取请求或写入请求。
当从主机接收到命令时,存储装置可向主机提供包括主机映射更新信息的响应。详细地,构成由存储装置向主机提供的响应的一些字段区域可以是与主机映射更新信息相关的区域。
主机可基于主机映射更新信息来向存储装置提供映射数据请求。响应于从主机接收的映射数据请求,存储装置可向主机提供对应于该映射数据请求的映射数据。
图8是示出根据实施例的映射数据的示图。
参照图1和图8,由主机提供的逻辑地址可对应于存储器装置的物理地址。可将逻辑地址划分为多个区域。多个区域中的每一个可包括多个子区域。对应于每个区域的映射数据可以是映射数据段。对应于每个子区域的映射数据可以是映射数据子段。
在图8中,可将与存储器装置的物理地址相对应的逻辑地址划分为第一至第三区域。第一至第三区域中的每一个可包括第一和第二子区域。与存储器装置的物理地址相对应的逻辑地址被划分的区域的数量和每个区域中的子区域的数量不限于本实施例。
图9是示出根据实施例的映射高速缓存与主机存储器之间的映射数据管理操作的示图。例如,可以在图1和图6中的主机300的主机存储器300与存储器控制器200的映射高速缓存210之间执行映射数据管理操作。
参照图9,映射高速缓存可存储与第一至第六区域中的至少一个子区域相对应的映射数据子段。第一至第六区域中的每一个可包括第一和第二子区域。在图9中,未示出对应于第六区域的第二子区域的映射数据子段。
可基于映射数据段来管理主机存储器中存储的映射数据。
例如,主机存储器可存储分别对应于第一至第三区域的第一至第三映射数据段。与主机存储器的第一区域相对应的第一映射数据段可包括与第一区域中的第一子区域相对应的第一映射数据子段MSS1和与第一区域中的第二子区域相对应的第二映射数据子段MSS2。
与主机存储器的第二区域相对应的第二映射数据段可包括与第二区域中的第一子区域相对应的第三映射数据子段MSS3和与第二区域中的第二子区域相对应的第四映射数据子段MSS4。
与主机存储器的第三区域相对应的第三映射数据段可包括与第三区域中的第一子区域相对应的第五映射数据子段MSS5和与第三区域中的第二子区域相对应的第六映射数据子段MSS6。
可基于映射数据子段来管理映射高速缓存中存储的映射数据。例如,映射高速缓存可存储与第四区域中的第一子区域相对应的第七映射数据子段MSS7和与第四区域中的第二子区域相对应的第八映射数据子段MSS8。
映射高速缓存可存储与第五区域中的第一子区域相对应的第九映射数据子段MSS9和与第五区域中的第二子区域相对应的第十映射数据子段MSS10。
映射高速缓存可存储与第六区域中的第一子区域相对应的第十一映射数据子段MSS11和与第一区域中的第二子区域相对应的第十二映射数据子段MSS12。
可从映射高速缓存中的映射数据子段之中选择映射数据子段。可将所选择的映射数据子段MSS提供到主机。将映射数据子段存储在主机存储器中的操作可以是启用操作。可删除从主机存储器中存储的映射数据段之中选择的映射数据段MS。删除主机存储器中的映射数据段的操作可以是停用操作。
在实施例中,与主机存储器的第一区域的第二子区域相对应的映射数据子段MSS2可以是旧的。与映射高速缓存的第一区域的第二子区域相对应的映射数据子段MSS12可以是新的。映射高速缓存中的第十二映射数据子段MSS12可以是正常映射数据子段,这将在稍后参照图11进行描述。主机存储器中的第二映射数据子段MSS2可以是脏映射数据子段。
当向主机提供映射高速缓存中的正常映射数据子段时,可利用相应的正常映射数据子段来替换主机存储器中的脏映射数据子段。因此,可利用作为正常映射数据子段的第十二映射数据子段MSS12来替换作为脏映射数据子段的第二映射数据子段MSS2。
映射高速缓存信息可以是包括映射高速缓存中的各个映射数据子段的读取计数的信息。例如,第七映射数据子段MSS7至第十二映射数据子段MSS12的读取计数可分别是40、50、60、35、120和40。
主机映射管理信息可以是包括主机存储器中的各个映射数据段的读取计数的信息。第一至第三映射数据段的各个读取计数可以是100、50和30。
在实施例中,根据映射高速缓存管理策略,可确定待从映射高速缓存中移除的映射数据子段作为待提供到主机的映射数据子段。详细地,待从映射高速缓存中移除的映射数据子段可以是映射高速缓存中存储的映射数据子段之中具有最低读取计数的映射数据子段。因此,可确定具有最低计数为35的第十映射数据子段作为待提供到主机的映射数据子段。
在各个实施例中,映射高速缓存管理策略可包括最不经常使用(LFU)策略或最近最少使用(LRU)策略。根据LFU策略,可确定最不经常使用的映射数据子段作为待从映射高速缓存中移除的映射数据子段。也就是说,可确定最早使用的映射数据子段为待从映射高速缓存中移除的映射数据子段。
根据LRU策略,可确定最近最少使用的映射数据子段为待从映射高速缓存中移除的映射数据子段。也就是说,可确定最近最少使用的映射数据子段为待移除的映射数据子段。
当向主机提供映射数据子段时,可确定主机存储器的映射数据存储空间是否充足。
当主机存储器的映射数据存储空间充足时,可不执行删除主机存储器中的映射数据段的操作。当主机存储器的映射数据存储空间不足时,可执行删除主机存储器中的映射数据段的操作。
在实施例中,当与待提供到主机的映射数据子段相对应的映射数据段已被存储在主机存储器中时,可确定映射数据存储空间充足。
在实施例中,当与待提供到主机的映射数据子段相对应的映射数据段未被存储在主机存储器中时,可根据新的映射数据段是否可存储在主机存储器中来确定映射数据存储空间充足。
可存储在主机存储器的映射数据存储空间中的映射数据段的最大数量可能是有限的。映射数据段的最大数量可以是预设阈值。也就是说,当映射数据存储空间中的映射数据段的数量小于阈值时,可确定映射数据存储空间充足。当映射数据存储空间中的映射数据段的数量等于阈值时,可确定映射数据存储空间不足。
在图9中,与待提供到主机的第十映射数据子段MSS10相对应的映射数据段可以是对应于第五区域的第五映射数据段。第五映射数据段尚未存储在主机存储器中。
因此,可根据对应于第十映射数据子段MSS10的第五映射数据段是否可存储在主机存储器中来确定映射数据存储空间充足。
在图9中,可存储在主机存储器的映射数据存储空间中的映射数据段的最大数量可以是3。也就是说,预设阈值可以是3。
因为第一至第三映射数据段已存储在主机存储器的映射数据存储空间中,所以映射数据存储空间中的映射数据段的数量可以是3,这等于阈值。因此,可确定映射数据存储空间不足。
因此,可执行用于确定映射数据存储空间中的第一至第三元数据段之中具有最低读取计数的映射数据段作为待删除的映射数据段的操作。所确定的映射数据段可以是具有最低读取计数,即具有30的第三映射数据段。
在实施例中,可执行将被确定为待从主机中删除的映射数据段的读取计数与被确定为待提供到主机的映射数据子段的读取计数进行比较的操作。当被决定为待删除的映射数据段的读取计数大于或等于被确定为待提供到主机的映射数据子段的读取计数时,可不执行删除被确定为待删除的映射数据段的操作。当被确定为待删除的映射数据段的读取计数小于被确定为待提供到主机的映射数据子段的读取计数时,可执行删除被确定为待删除的映射数据段的操作。
例如,作为被确定为待删除的映射数据段的第三映射数据段的读取计数可以是30。例如,作为被确定为待提供的映射数据子段的第十映射数据子段MSS10的读取计数可以是35。因此,因为第十映射数据子段MSS10的读取计数大于第三映射数据段的读取计数,所以可执行从主机存储器删除第三映射数据段的操作。
当从主机存储器删除第三映射数据段时,可将第十映射数据子段MSS10提供到主机。当向主机提供第十映射数据子段MSS10时,对应于第五区域的第五映射数据段可被存储在主机存储器中。
此处,主机存储器中的第五映射数据段可包括与第五区域中的第二子区域相对应的第十映射数据子段MSS10。第五映射数据段可包括与第五区域中的第一子区域相对应的空映射数据子段。稍后将参照图11描述该空映射数据子段。
图10是示出根据实施例的提供映射数据子段的操作的示图。
参照图10,可将存储器装置划分为第一至第三区域。第一至第三区域中的每一个可包括第一和第二子区域。因此,可将与存储器装置的物理地址相对应的逻辑地址划分为第一至第三区域。
与第一区域中的第一子区域相对应的第一映射数据子段的读取计数可以是10。与第一区域中的第二子区域相对应的第二映射数据子段的读取计数可以是20。与第二区域中的第一子区域相对应的第三映射数据子段的读取计数可以是30。与第二区域中的第二子区域相对应的第四映射数据子段的读取计数可以是60。与第三区域中的第一子区域相对应的第五映射数据子段的读取计数可以是50。与第三区域中的第二子区域相对应的第六映射数据子段的读取计数可以是40。
存储器装置映射管理信息可以是包括整个存储器装置中的多个映射数据子段的各个读取计数的信息。在实施例中,每个读取计数可以是对在相应映射数据子段中的物理地址处存储的多条数据之中具有预设大小的数据执行的读取操作进行计数的次数。
可基于存储器装置映射管理信息来确定待提供到主机的映射数据子段。
在实施例中,待提供到主机的映射数据子段可以是多个映射数据子段之中具有大于预设次数的读取计数的映射数据子段。在各个实施例中,待提供到主机的映射数据子段可以是多个映射数据子段之中具有最高读取计数的映射数据子段。
例如,可确定具有最高读取计数,即具有值60的第四映射数据子段为待提供到主机的映射数据子段。第四映射数据子段可以是与第二区域中的第二子区域相对应的映射数据子段。
图11是示出根据实施例的删除映射数据段的操作的示图。
参照图11,第一至第三区域中的每一个可包括第一至第四子区域。
分别与第一区域中的第一至第四子区域相对应的映射数据子段可以是第一至第四映射数据子段Sub_seg 1至Sub_seg 4。
分别与第二区域中的第一至第四子区域相对应的映射数据子段可以是第五至第八映射数据子段Sub_seg 5至Sub_seg 8。
分别与第三区域中的第一和第二子区域相对应的映射数据子段可以是第九和第十映射数据子段Sub_seg 9和Sub_seg 10。分别与第三区域中的第三和第四子区域相对应的映射数据子段可以是空映射数据子段。该空映射数据子段可处于未存储对应于相应子区域的映射数据子段的状态。
主机存储器可存储第一至第三映射数据段Seg 1至Seg 3。第一映射数据段Seg 1可包括第一至第四映射数据子段Sub_seg 1至Sub_seg 4。第二映射数据段Seg 2可包括第五至第八映射数据子段Sub_seg 5至Sub_seg 8。第三映射数据段Seg 3可包括第九和第十映射数据子段Sub_seg 9和Sub_seg 10以及空映射数据子段。
主机映射状态信息可以是指示对应于映射数据段中的每一个的映射数据子段是否是正常映射数据子段的信息。
也就是说,除正常映射数据子段之外的映射数据子段可能是脏映射数据子段或空映射数据子段。正常映射数据子段可以是具有有效映射数据信息的映射数据子段。脏映射数据子段可以是具有无效映射数据信息的映射数据子段。当执行重写操作时,正常映射数据子段可被改变为脏映射数据子段,该重写操作是针对与正常映射数据子段中的物理地址相对应的逻辑地址存储新数据的操作。空映射数据子段可以是与未存储映射数据的空子区域相对应的映射数据子段。
在实施例中,可将主机映射状态信息实施为位图。逻辑值“1”可指示正常映射数据子段。逻辑值“0”可指示脏映射数据子段或空映射数据子段。在实施例中,逻辑值“0”可指示正常映射数据子段。逻辑值“1”可指示脏映射数据子段或空映射数据子段。
例如,基于主机映射状态信息,与第一区域中的第一至第三子区域相对应的映射数据子段可以是正常映射数据子段。与第二区域中的第一和第二子区域相对应的映射数据子段可以是正常映射数据子段。与第三区域中的第一子区域相对应的映射数据子段可以是正常映射数据子段。
与第一区域中的第四子区域相对应的映射数据子段可以是脏映射数据子段或空映射数据子段。与第二区域中的第三和第四子区域相对应的映射数据子段可以是脏映射数据子段或空映射数据子段。与第三区域中的第二至第四子区域相对应的映射数据子段可以是脏映射数据子段或空映射数据子段。
在图11中,待在主机中启用的映射数据子段可以是待提供到主机的映射数据子段。待提供到主机的映射数据子段Sub_seg X的读取计数可以是40。待提供到主机的映射数据子段Sub_seg X可以是不对应于第一至第三段Seg 1至Seg 3的映射数据子段。
待在主机中停用的映射数据段可以是待从主机删除的映射数据段。
可确定具有最低读取计数的第二映射数据段Seg 2作为待从主机删除的映射数据段。可基于主机映射管理信息来确定具有最低读取计数的第二映射数据段Seg 2。
当存储在主机存储器中的映射数据段中的正常映射数据子段的数量小于作为阈值的预设数量时,可执行从主机存储器删除相应映射数据段的操作。相反,当存储在主机存储器中的映射数据段中的正常映射数据子段的数量大于或等于作为阈值的预设数量时,可不执行从主机存储器删除相应映射数据段的操作。
例如,因为待从主机删除的第二映射数据段Seg 2的读取计数小于待提供到主机的映射数据子段Sub_seg X的读取计数,所以原则上可执行删除第二映射数据段Seg 2的操作。
在图11中,第二映射数据段Seg 2中的正常映射数据子段的数量大于或等于预设数量(也就是2),可不执行删除操作。
图12是示出根据实施例的存储器控制器的操作的流程图。例如,可由图1和图6的存储器控制器200执行图12的操作。
参照图12,在步骤S1201中,存储器控制器可决定待提供到主机的映射数据子段。
在步骤S1203中,存储器控制器可确定主机存储器的映射数据存储空间是否充足。当确定映射数据存储空间充足(S1203,是)时,存储器控制器可进行到步骤S1209。当确定映射数据存储空间不足(S1203,否)时,存储器控制器可进行到步骤S1205。
详细地,存储器控制器可基于主机存储器的映射数据存储空间中的映射数据段的数量是否等于阈值来确定映射数据存储空间是否充足。当映射数据存储空间中的映射数据段的数量小于阈值时,存储器控制器可确定映射数据存储空间充足。当映射数据存储空间中的映射数据段的数量等于阈值时,存储器控制器可确定映射数据存储空间不足。阈值可以是可存储在映射数据存储空间中的映射数据段的最大数量。
在步骤S1205中,存储器控制器可确定是否删除从主机中存储的映射数据段之中选择的映射数据段。当确定删除所选择的映射数据段(S1205,是)时,存储器控制器进行到步骤S1207。否则,存储器控制器终止该进程。
详细地,存储器控制器可基于所选择的映射数据段的读取计数与所决定的映射数据子段的读取计数之间的比较结果来确定是否删除所选择的映射数据段。当所选择的映射数据段的读取计数大于或等于所决定的映射数据子段的读取计数时,存储器控制器可确定不删除所选择的映射数据段。当所选择的映射数据段的读取计数小于所决定的映射数据子段的读取计数时,存储器控制器可确定删除所选择的映射数据段。
在步骤S1207中,存储器控制器可生成关于主机中的映射数据段之中待删除的映射数据段的信息。
在步骤S1209中,存储器控制器可生成关于待提供到主机的映射数据子段的信息。
在步骤S1211中,存储器控制器可向主机提供主机映射更新信息。详细地,当从主机接收到读取请求或写入请求时,存储器控制器可向主机提供包括主机映射更新信息的响应。主机映射更新信息可包括关于待提供到主机的映射数据子段的信息和关于待从主机删除的映射数据段的信息。
在步骤S1213中,存储器控制器可响应于从主机接收的映射数据请求,向主机提供所决定的映射数据子段。
图13是示出根据实施例的决定待提供的映射数据子段的操作的流程图。例如,可由图1和图6的存储器控制器200执行图13的操作。
参照图13,在步骤S1301中,存储器控制器可计算映射高速缓存中存储的各个映射数据子段的读取计数。
在步骤S1303中,存储器控制器可基于读取计数来决定待从映射高速缓存中逐出、即移除的映射数据子段作为待提供到主机的映射数据子段。在各个实施例中,存储器控制器可根据最近最少使用(LRU)级别策略,决定待从映射高速缓存中逐出的映射数据子段作为待提供到主机的映射数据子段。
图14是根据实施例的决定待提供的映射数据子段的操作的流程图。例如,可由图1和图6的存储器控制器200执行图14的操作。
参照图14,在步骤S1401中,存储器控制器可计算存储器装置中存储的映射数据子段中的每一个的读取计数。读取计数是执行读取具有预设大小的数据的操作的次数。详细地,读取计数可以是对相应的映射数据子段中的物理地址处存储的多条数据之中具有预设大小的数据执行读取操作的次数。
在步骤S1403中,存储器控制器可基于读取计数来决定存储器装置中的映射数据子段之中待提供到主机的映射数据子段。
图15是示出根据实施例的生成关于待删除的映射数据段的信息的操作的流程图。例如,可由图1和图6的存储器控制器200执行图15的操作。
参照图15,在步骤S1501中,存储器控制器可计算映射高速缓存中的映射数据子段和主机中的映射数据段的各个读取计数。
在步骤S1503中,存储器控制器可基于读取计数来决定主机中存储的映射数据段之中待删除的映射数据段。
在步骤S1505中,存储器控制器可确定待提供到主机的映射数据子段的读取计数是否大于待删除的映射数据段的读取计数。当确定映射数据子段的读取计数大于待删除的映射数据段的读取计数时,存储器控制器进行到步骤S1507。当确定映射数据子段的读取计数小于或等于待删除的映射数据段的读取计数时,存储器控制器终止该进程。
在步骤S1507中,存储器控制器可生成关于待删除的映射数据段的信息。
图16是示出根据实施例的生成关于待删除的映射数据段的信息的操作的流程图。例如,可由图1和图6的存储器控制器200执行图16的操作。
参照图16,在步骤S1601中,存储器控制器可针对主机中存储的映射数据生成位图。详细地,存储器控制器可生成主机映射状态信息。主机映射状态信息包括位图信息,该位图信息指示主机中存储的映射数据段的每一个中的映射数据子段是否是正常映射数据子段。
在步骤S1603中,存储器控制器可基于主机中存储的映射数据段的各个读取计数,决定主机中存储的映射数据段之中待删除的映射数据段。
在步骤S1605中,存储器控制器可基于主机映射状态信息来确定待删除的映射数据段中的正常映射数据子段的数量是否小于阈值。阈值可以是预设数量。当确定正常映射数据子段的数量小于阈值时,存储器控制器进行到步骤S1607。否则,存储器控制器终止该进程。
在步骤S1607中,存储器控制器可生成关于待删除的映射数据段的信息。
图17是示出作为图1的存储器控制器200的示例的存储器控制器1000的示图。
参照图17,存储器控制器1000联接到主机(例如,图1的主机300)和存储器装置(例如,图1的存储器装置100)。响应于从主机接收的请求,存储器控制器1000可访问存储器装置。例如,存储器控制器1000可被配置成控制存储器装置的写入操作、读取操作、擦除操作和后台操作。存储器控制器1000可提供存储器装置与主机之间的接口。存储器控制器1000可运行固件以用于控制存储器装置。
存储器控制器1000可包括处理器1010、存储器缓冲器1020、错误校正码(ECC)电路1030、主机接口1040、缓冲器控制电路1050、存储器接口1060和总线1070。
总线1070可提供存储器控制器1000的组件之间的通道。
处理器1010可控制存储器控制器1000的全部操作,并且可执行逻辑操作。处理器1010可通过主机接口1040与主机通信,并且还通过存储器接口1060与存储器装置通信。进一步地,处理器1010可通过缓冲器控制电路1050与存储器缓冲器1020通信。处理器1010可通过使用作为工作存储器、高速缓存存储器或缓冲存储器的存储器缓冲器1020来控制存储装置的操作。
处理器1010可执行闪存转换层(FTL)的功能。处理器1010可通过FTL将由主机提供的逻辑块地址(LBA)转换成物理块地址(PBA)。FTL可接收LBA并且使用映射表将LBA转换成PBA。根据映射单元,通过FTL执行的地址映射方法的示例可包括各种方法。代表性的地址映射方法包括页面映射方法、块映射方法和混合映射方法。
处理器1010可将从主机接收的数据随机化。例如,处理器1010可使用随机化种子来随机化从主机接收的数据。经随机化的数据可作为待存储的数据被提供到存储器装置,并且可被编程在存储器单元阵列(例如,图2的存储器单元阵列110)中。
在读取操作期间,处理器1010可将从存储器装置接收的数据去随机化(derandomize)。例如,处理器1010可使用去随机化种子将从存储器装置接收的数据去随机化。经去随机化的数据可被输出到主机。
在实施例中,处理器1010可运行软件或固件以执行随机化和去随机化操作。
存储器缓冲器1020可用作处理器1010的工作存储器、高速缓存存储器或缓冲存储器。存储器缓冲器1020可存储由处理器1010运行的代码和命令。存储器缓冲器1020可存储由处理器1010处理的数据。存储器缓冲器1020可包括静态RAM(SRAM)或动态RAM(DRAM)。
ECC电路1030可执行错误校正。ECC电路1030可基于待通过存储器接口1060写入到存储器装置的数据来执行错误校正码(ECC)编码。经ECC编码的数据可通过存储器接口1060被传输到存储器装置。ECC电路1030可基于通过存储器接口1060从存储器装置接收的数据来执行ECC解码。在示例中,ECC电路1030可作为存储器接口1060的组件被包括在存储器接口1060中。
主机接口1040可在处理器1010的控制下与主机通信。主机接口1040可使用诸如以下的各种通信方法中的至少一种来执行通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)以及低负载DIMM(LRDIMM)通信方法。
缓冲器控制电路1050可在处理器1010的控制下控制存储器缓冲器1020。
存储器接口1060可在处理器1010的控制下与存储器装置通信。存储器接口1060可通过通道向存储器装置传送命令、地址和数据,并且从存储器装置接收命令、地址和数据。
在实施例中,存储器控制器1000可不包括存储器缓冲器1020和缓冲器控制电路1050。
在实施例中,处理器1010可使用代码来控制存储器控制器1000的操作。处理器1010可从设置在存储器控制器1000中的非易失性存储器装置(例如,ROM)加载代码。在实施例中,处理器1010可通过存储器接口1060从存储器装置加载代码。
在实施例中,存储器控制器1000的总线1070可被划分成控制总线和数据总线。数据总线可被配置成在存储器控制器1000中传送数据,控制总线可被配置成在存储器控制器1000中传送诸如命令或地址的主机映射更新信息。数据总线和控制总线可彼此隔离,并且可既不互相干扰也不互相影响。数据总线可联接到主机接口1040、缓冲器控制电路1050、ECC电路1030和存储器接口1060。控制总线可联接到主机接口1040、处理器1010、缓冲器控制电路1050、存储器缓冲器1020和存储器接口1060。
图18是示出应用了根据本公开的实施例的存储装置的存储卡系统2000的框图。
参照图18,存储卡系统2000可包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100联接到存储器装置2200。存储器控制器2100可访问存储器装置2200。例如,存储器控制器2100可控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100可提供存储器装置2200与外部装置(例如,图1的主机300)之间的接口连接。存储器控制器2100可运行固件以用于控制存储器装置2200。存储器控制器2100可以与上面参照图1描述的存储器控制器200相同的方式来实施。
在实施例中,存储器控制器2100可包括诸如随机存取存储器(RAM)、处理器、主机接口、存储器接口和错误校正码(ECC)电路的组件。
存储器控制器2100可通过连接器2300与外部装置通信。存储器控制器2100可基于特定通信协议与外部装置通信。在实施例中,存储器控制器2100可通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-e或PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机小型接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙以及高速非易失性存储器(NVMe)协议。在实施例中,连接器2300可由上述各种通信协议中的至少一种来限定。
在实施例中,存储器装置2200可被实施为诸如以下的各种非易失性存储器装置中的任意一种:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)、自旋力矩磁性RAM(STT-MRAM)。
存储器控制器2100和存储器装置2200可被集成到单个半导体装置中以配置存储卡。例如,存储器控制器2100和存储器装置2200可被集成到单个半导体装置中以配置诸如以下的存储卡:PC卡(例如,个人计算机存储卡国际协会(PCMCIA)卡)、紧凑式闪存卡(CF)、智能媒体卡(例如,SM或SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、微型MMC或eMMC)、安全数字(SD)卡(例如,SD、迷你SD、微型SD或SDHC)或通用闪存(UFS)。
图19是示出应用了根据本公开的实施例的存储装置的固态驱动器(SSD)系统3000的框图。
参照图19,SSD系统3000可包括主机3100和SSD 3200。SSD 3200可通过信号连接器3001与主机3100交换信号SIG,并且可通过电源连接器3002接收电力PWR。SSD 3200可包括SSD控制器3210、多个闪速存储器3221至322n、辅助电源3230和缓冲存储器3240。
根据本公开的实施例,SSD控制器3210可执行上面参照图1描述的存储器控制器200的功能。
SSD控制器3210可响应于从主机3100接收的信号SIG来控制多个闪速存储器3221至322n。在实施例中,信号SIG可以是基于主机3100和SSD 3200的接口的信号。例如,信号SIG可以是由诸如以下的各种接口中的至少一种限定的信号:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-e或PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机小型接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、无线保真(Wi-Fi)、蓝牙以及高速非易失性存储器(NVMe)接口。
辅助电源3230可通过电源连接器3002联接到主机3100。辅助电源3230可被供应来自主机3100的电力PWR并且可被充电。当来自主机3100的电力供应未平稳执行时,辅助电源3230可供应SSD 3200的电力。在实施例中,辅助电源3230可位于SSD 3200的内部或位于SSD3200的外部。例如,辅助电源3230可被设置在主板中,并且可向SSD 3200供应辅助电力。
缓冲存储器3240用作SSD 3200的缓冲存储器。例如,缓冲存储器3240可临时存储从主机3100接收的数据或从多个闪速存储器3221至322n接收的数据,或者可临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可包括诸如DRAM、SDRAM、DDRSDRAM、LPDDR SDRAM和GRAM的易失性存储器,或者诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器。
图20是示出应用了根据本公开的实施例的存储装置的用户系统4000的框图。
参照图20,用户系统4000可包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可运行包括在用户系统4000中的组件、操作系统(OS)或用户程序。在实施例中,应用处理器4100可包括用于控制包括在用户系统4000中的组件的控制器、接口和图形引擎。应用处理器4100可被设置为片上系统(SoC)。
存储器模块4200可用作用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块4200可包括诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和LPDDR3 SDRAM的易失性RAM,或者诸如PRAM、ReRAM、MRAM和FRAM的非易失性RAM。在实施例中,应用处理器4100和存储器模块4200可基于堆叠封装(PoP)来封装,然后可被设置为单个半导体封装。
网络模块4300可与外部装置通信。例如,网络模块4300可支持诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、WiMAX、WLAN、UWB、蓝牙或Wi-Fi通信的无线通信。在实施例中,网络模块4300可包括在应用处理器4100中。
存储模块4400可存储数据。例如,存储模块4400可存储从应用处理器4100接收的数据。可选地,存储模块4400可将存储模块4400中存储的数据传送到应用处理器4100。在实施例中,存储模块4400可被实施为诸如以下的非易失性半导体存储器装置:相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪速存储器、NOR闪速存储器或具有三维(3D)结构的NAND闪速存储器。在实施例中,存储模块4400可被设置为可移动存储介质(即,可移动驱动器),诸如用户系统4000的存储卡或外部驱动器。
在实施例中,存储模块4400可包括多个非易失性存储器装置,每个非易失性存储器装置可以与上面参照图1描述的存储器装置100相同的方式操作。存储模块4400可以与上面参照图1描述的存储装置50相同的方式操作。
用户接口4500可包括将数据或指令输入到应用处理器4100或将数据输出到外部装置的接口。在实施例中,用户接口4500可包括诸如以下的用户输入接口:键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电装置。用户接口4500可进一步包括诸如以下的用户输出接口:液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器。
根据本公开,提供了一种映射数据访问性能提高的存储器控制器和操作该存储器控制器的方法。
虽然为了说明的目的已经公开了本公开的示例性实施例,但本领域技术人员将理解的是,可进行各种修改、添加和替换。因此,本公开的范围必须由所附权利要求和权利要求的等同方案来限定,而不是由之前的描述来限定。
虽然已经公开了本公开的实施例,但本领域的技术人员将理解的是,在不脱离本公开的范围和精神的情况下,可进行各种修改、添加和替换。
在以上讨论的实施例中,可选择性地执行或跳过全部步骤。另外,每个实施例中的步骤可不总是按照给定的顺序来顺序地执行,并且可随机执行。此外,本说明书和附图中公开的实施例旨在帮助本领域普通技术人员更清楚地理解本公开,而不是旨在限制本公开的范围。换言之,本公开所属领域的普通技术人员将能够容易地理解,基于本公开的技术范围,可以进行各种修改。
已经参照附图描述了本公开的实施例,并且在说明书中使用的特定术语或词语应当根据本公开的精神来解释,而不限制本公开的主题。应当理解的是,本文描述的基本发明构思的许多变化和修改仍将落入所附权利要求及其等同方案所限定的本公开的精神和范围内。
Claims (29)
1.一种存储器控制器,所述存储器控制器控制存储器装置,其中将与所述存储器装置的物理地址相对应的逻辑地址划分为多个区域,所述存储器控制器包括:
映射高速缓存,存储分别与所述多个区域中的每一个中包括的多个子区域相对应的多个映射数据子段中的一个或多个;以及
映射数据管理器,生成关于待提供到主机的映射数据子段的信息,所述信息是基于所述多个子区域中的每一个的读取计数来确定的,以及生成关于所述主机中存储的一个或多个映射数据段之中、待从所述主机删除的映射数据段的信息,所述信息是基于所述读取计数和所述主机的存储器来确定的,
其中所述一个或多个映射数据段包括与所述多个区域中的一个或多个相对应的映射数据段,并且
存储在所述主机的映射数据子段的单位不同于从所述主机删除的映射数据段的单位。
2.根据权利要求1所述的存储器控制器,其中所述映射数据管理器包括:
映射管理信息处理器,生成包括一个或多个映射数据子段的读取计数的映射高速缓存管理信息和包括所述一个或多个映射数据段的读取计数的主机映射管理信息,并且当从所述主机接收到读取请求时更新所述映射高速缓存管理信息和所述主机映射管理信息;
映射管理信息存储装置,存储所述映射高速缓存管理信息和所述主机映射管理信息;以及
映射数据处理器,基于所述映射高速缓存管理信息,确定待从所述映射高速缓存中移除并被选择作为待提供到所述主机的所述映射数据子段的映射数据子段,并且生成关于待提供的映射数据子段的信息。
3.根据权利要求2所述的存储器控制器,其中当所述主机的所述存储器中存储的映射数据段的数量等于阈值时,所述映射数据处理器生成关于待删除的映射数据段的信息。
4.根据权利要求3所述的存储器控制器,其中当待提供的映射数据子段的读取计数大于待删除的映射数据段的读取计数时,所述映射数据处理器生成关于待删除的映射数据段的信息。
5.根据权利要求4所述的存储器控制器,其中所述待删除的映射数据段是所述一个或多个映射数据段之中具有最低读取计数的映射数据段。
6.根据权利要求3所述的存储器控制器,其中:
所述映射管理信息处理器生成主机映射状态信息,并且当待提供的映射数据子段被存储在所述主机中时,或当待删除的映射数据段被从所述主机删除时,或当所述主机中存储的正常映射数据子段被改变为脏映射数据子段时,更新所述主机映射状态信息,其中所述主机映射状态信息指示与所述一个或多个映射数据段中的每一个相对应的映射数据子段是否是正常映射数据子段,并且
所述映射管理信息存储装置存储所述主机映射状态信息。
7.根据权利要求6所述的存储器控制器,其中所述主机映射状态信息包括位图信息,在所述位图信息中,指示所述正常映射数据子段的逻辑值与指示所述脏映射数据子段或空映射数据子段的逻辑值相反。
8.根据权利要求6所述的存储器控制器,其中当所述待提供的映射数据子段的读取计数大于所述待删除的映射数据段的读取计数时,并且当所述待删除的映射数据段中包括的所述正常映射数据子段的数量小于预设数量时,所述映射数据处理器生成关于所述待删除的映射数据段的信息。
9.根据权利要求1所述的存储器控制器,其中所述映射数据管理器包括:
映射管理信息处理器,生成存储器装置映射管理信息和主机映射管理信息,并且当从所述主机接收到读取请求时更新所述存储器装置映射管理信息,其中所述存储器装置映射管理信息包括所述多个映射数据子段的各个读取计数,所述主机映射管理信息包括所述一个或多个映射数据段的读取计数;
映射管理信息存储装置,存储所述存储器装置映射管理信息;以及
映射数据处理器,基于所述存储器装置映射管理信息来确定待提供的映射数据子段,以及生成关于所述待提供的映射数据子段的信息。
10.根据权利要求9所述的存储器控制器,其中所述读取计数中的每一个包括对相应的映射数据子段中包括的物理地址处存储的多条数据之中具有预设大小的数据执行读取操作进行计数的次数。
11.根据权利要求10所述的存储器控制器,其中所述映射数据处理器选择具有大于预设次数的读取计数的映射数据子段作为所述待提供的映射数据子段。
12.根据权利要求11所述的存储器控制器,其中所述映射数据处理器选择所述多个映射数据子段之中具有最高读取计数的映射数据子段作为所述待提供的映射数据子段。
13.根据权利要求10所述的存储器控制器,其中当所述主机的所述存储器中存储的映射数据段的数量等于阈值时,所述映射数据处理器生成关于待删除的映射数据段的信息。
14.根据权利要求13所述的存储器控制器,其中当所述待提供的映射数据子段的读取计数大于所述待删除的映射数据段的读取计数时,所述映射数据处理器生成关于所述待删除的映射数据段的信息。
15.根据权利要求14所述的存储器控制器,其中所述待删除的映射数据段包括所述一个或多个映射数据段之中具有最低读取计数的映射数据段。
16.根据权利要求13所述的存储器控制器,其中:
所述映射管理信息处理器生成主机映射状态信息,并且当所述待提供的映射数据子段被存储在所述主机中时,或当所述待删除的映射数据段被从所述主机删除时,或当所述主机中存储的正常映射数据子段被改变为脏映射数据子段时,更新所述主机映射状态信息,其中所述主机映射状态信息指示与所述一个或多个映射数据段中的每一个相对应的映射数据子段是否是正常映射数据子段,并且
所述映射管理信息存储装置存储所述主机映射状态信息。
17.根据权利要求16所述的存储器控制器,其中所述主机映射状态信息包括位图信息,在所述位图信息中,指示所述正常映射数据子段的逻辑值与指示所述脏映射数据子段或空映射数据子段的逻辑值相反。
18.根据权利要求16所述的存储器控制器,其中当所述待提供的映射数据子段的读取计数大于所述待删除的映射数据段的读取计数时,并且当所述待删除的映射数据段中包括的所述正常映射数据子段的数量小于预设数量时,所述映射数据处理器生成关于所述待删除的映射数据段的信息。
19.根据权利要求1所述的存储器控制器,其中:
当从所述主机接收到读取请求或写入请求时,所述映射数据管理器向所述主机提供包括主机映射更新信息的响应,并且
所述主机映射更新信息包括关于待提供的映射数据子段的信息和关于待删除的映射数据段的信息中的至少一种。
20.根据权利要求1所述的存储器控制器,其中所述映射数据管理器响应于从所述主机接收的映射数据请求提供确定的映射数据子段。
21.一种操作存储器控制器的方法,所述存储器控制器控制存储器装置并包括用于存储多个映射数据子段中的一个或多个的映射高速缓存,所述方法包括:
基于所述存储器装置的读取计数,生成关于所述多个映射数据子段之中、待提供到主机的映射数据子段的信息;并且
基于所述存储器装置的所述读取计数和所述主机的存储器的容量,生成关于所述主机中存储的一个或多个映射数据段之中、待从所述主机删除的映射数据段的信息,
其中将与所述存储器装置的物理地址相对应的逻辑地址划分为多个区域,每个区域包括多个子区域,
其中所述一个或多个映射数据段包括与所述多个区域中的一个或多个相对应的映射数据段,
其中所述多个映射数据子段包括分别与所述多个子区域相对应的映射数据子段,并且
其中存储在所述主机的映射数据子段的单位不同于从所述主机删除的映射数据段的单位。
22.根据权利要求21所述的方法,进一步包括:
向所述主机提供主机映射更新信息,所述主机映射更新信息包括关于待提供的映射数据子段的信息和关于待删除的映射数据段的信息中的至少一种。
23.根据权利要求22所述的方法,其中生成关于所述待提供的映射数据子段的信息包括:
基于所述一个或多个映射数据子段的读取计数来确定所述待提供的映射数据子段。
24.根据权利要求23所述的方法,其中生成关于所述待删除的映射数据段的信息包括:
确定所述主机的存储器中存储的映射数据段的数量是否等于阈值;并且
当所存储的映射数据段的数量等于所述阈值时,将所述待提供的映射数据子段的读取计数与所述待删除的映射数据段的读取计数进行比较,
其中,当所述待提供的映射数据子段的读取计数大于所述待删除的映射数据段的读取计数时,生成关于所述待删除的映射数据段的信息。
25.根据权利要求22所述的方法,其中:
生成关于所述待提供的映射数据子段的信息包括基于所述多个映射数据段的各个读取计数来选择所述待提供的映射数据子段,并且
所述读取计数中的每一个包括对相应的映射数据子段中包括的物理地址处存储的多条数据之中具有预设大小的数据执行读取操作进行计数的次数。
26.根据权利要求25所述的方法,其中生成关于所述待删除的映射数据段的信息包括:
确定所述主机的存储器中存储的映射数据段的数量是否等于阈值;并且
当存储的映射数据段的数量等于所述阈值时,将所述待提供的映射数据子段的读取计数与所述待删除的映射数据段的读取计数进行比较,
其中,当所述待提供的映射数据子段的读取计数大于所述待删除的映射数据段的读取计数时,生成所述关于所述待删除的映射数据段的信息。
27.根据权利要求22所述的方法,其中向所述主机提供所述主机映射更新信息包括当从所述主机接收到写入请求或读取请求时,向所述主机提供包括所述主机映射更新信息的响应。
28.根据权利要求27所述的方法,进一步包括:
响应于从所述主机接收的映射数据请求,向所述主机提供所述待提供的映射数据子段。
29.一种计算系统,包括:
存储器装置,包括多个区域;
主机,包括主机存储器;以及
控制器,包括:
映射高速缓存,存储对应于所述多个区域的多个映射数据;以及
映射数据管理器,基于所述多个区域中的每一个的读取计数和所述主机存储器的容量,确定存储在所述映射高速缓存中的多个映射数据之中的至少一个第一映射数据作为待存储在所述主机存储器中的映射数据,并且确定所述主机存储器中存储的多个映射数据之中的至少一个第二映射数据作为待删除的映射数据,
其中所述第一映射数据的单位不同于所述第二映射数据的单位。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0005361 | 2019-01-15 | ||
KR1020190005361A KR20200088713A (ko) | 2019-01-15 | 2019-01-15 | 메모리 컨트롤러 및 그 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111435289A CN111435289A (zh) | 2020-07-21 |
CN111435289B true CN111435289B (zh) | 2023-07-21 |
Family
ID=71516369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910995028.6A Active CN111435289B (zh) | 2019-01-15 | 2019-10-18 | 映射数据访问性能提高的存储器控制器及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11194736B2 (zh) |
KR (1) | KR20200088713A (zh) |
CN (1) | CN111435289B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102624620B1 (ko) * | 2018-11-02 | 2024-01-15 | 에스케이하이닉스 주식회사 | 메모리 장치 및 이를 포함하는 메모리 시스템 |
KR20200099882A (ko) * | 2019-02-15 | 2020-08-25 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR20210018570A (ko) * | 2019-08-05 | 2021-02-18 | 에스케이하이닉스 주식회사 | 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치 |
US11449244B2 (en) * | 2020-08-11 | 2022-09-20 | Silicon Motion, Inc. | Method and apparatus for performing access management of memory device in host performance booster architecture with aid of device side table information |
CN112181765A (zh) * | 2020-09-25 | 2021-01-05 | 武汉光庭信息技术股份有限公司 | 一种导航地图容量监控方法及系统 |
CN112905111A (zh) * | 2021-02-05 | 2021-06-04 | 三星(中国)半导体有限公司 | 数据缓存的方法和数据缓存的装置 |
KR102588751B1 (ko) * | 2021-11-15 | 2023-10-16 | 삼성전자주식회사 | 스토리지 장치 및 이의 동작 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101499036A (zh) * | 2008-01-30 | 2009-08-05 | 株式会社东芝 | 信息存储设备及其控制方法 |
CN102467455A (zh) * | 2010-10-29 | 2012-05-23 | 三星电子株式会社 | 存储系统、数据存储设备、用户设备及其数据管理方法 |
CN103019970A (zh) * | 2011-09-21 | 2013-04-03 | 株式会社东芝 | 存储装置及其控制方法 |
WO2015065312A1 (en) * | 2013-10-28 | 2015-05-07 | Hitachi, Ltd. | Method and apparatus of data de-duplication for solid state memory |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5630088A (en) * | 1995-03-09 | 1997-05-13 | Hewlett-Packard Company | Virtual to physical address translation |
JP2000048496A (ja) * | 1998-07-31 | 2000-02-18 | Nec Corp | 光ディスク記録再生方法及び装置並びに光ディスク記録再生プログラムを記録した媒体 |
TWI375953B (en) * | 2008-02-21 | 2012-11-01 | Phison Electronics Corp | Data reading method for flash memory, controller and system therof |
US8190810B2 (en) * | 2008-04-18 | 2012-05-29 | Silicon Motion, Inc. | Non-volatile memory apparatus and method for accessing a non-volatile memory apparatus |
KR101033465B1 (ko) * | 2008-12-30 | 2011-05-09 | 주식회사 하이닉스반도체 | 플래쉬 메모리 장치 및 및 이를 위한 리드동작 제어 방법 |
US9122579B2 (en) * | 2010-01-06 | 2015-09-01 | Intelligent Intellectual Property Holdings 2 Llc | Apparatus, system, and method for a storage layer |
US9582431B2 (en) * | 2010-03-22 | 2017-02-28 | Seagate Technology Llc | Storage address space to NVM address, span, and length mapping/converting |
WO2011143628A2 (en) * | 2010-05-13 | 2011-11-17 | Fusion-Io, Inc. | Apparatus, system, and method for conditional and atomic storage operations |
US8543757B2 (en) * | 2010-06-23 | 2013-09-24 | Sandisk Technologies Inc. | Techniques of maintaining logical to physical mapping information in non-volatile memory systems |
WO2012014140A2 (en) * | 2010-07-27 | 2012-02-02 | International Business Machines Corporation | Logical to physical address mapping in storage systems comprising solid state memory devices |
JP2012203443A (ja) * | 2011-03-23 | 2012-10-22 | Toshiba Corp | メモリシステムおよびメモリシステムの制御方法 |
US9460110B2 (en) * | 2011-09-21 | 2016-10-04 | Kevin Mark Klughart | File system extension system and method |
US9652343B2 (en) * | 2011-09-21 | 2017-05-16 | Kevin Mark Klughart | Raid hot spare system and method |
US9251086B2 (en) * | 2012-01-24 | 2016-02-02 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing a cache |
US9075710B2 (en) * | 2012-04-17 | 2015-07-07 | SanDisk Technologies, Inc. | Non-volatile key-value store |
TWI486767B (zh) * | 2012-06-22 | 2015-06-01 | Phison Electronics Corp | 資料儲存方法、記憶體控制器與記憶體儲存裝置 |
CN103827804B (zh) * | 2012-09-21 | 2016-08-03 | 株式会社东芝 | 在物理区块间拷贝数据的磁盘阵列装置、磁盘阵列控制器以及方法 |
US9317423B2 (en) * | 2013-01-07 | 2016-04-19 | Hitachi, Ltd. | Storage system which realizes asynchronous remote copy using cache memory composed of flash memory, and control method thereof |
US9720717B2 (en) * | 2013-03-14 | 2017-08-01 | Sandisk Technologies Llc | Virtualization support for storage devices |
US9195396B2 (en) * | 2013-03-14 | 2015-11-24 | SanDisk Technologies, Inc. | Estimating access frequency statistics for storage device |
US9519575B2 (en) * | 2013-04-25 | 2016-12-13 | Sandisk Technologies Llc | Conditional iteration for a non-volatile device |
US9213633B2 (en) * | 2013-04-30 | 2015-12-15 | Seagate Technology Llc | Flash translation layer with lower write amplification |
KR20150006614A (ko) | 2013-07-09 | 2015-01-19 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR102088403B1 (ko) * | 2013-08-08 | 2020-03-13 | 삼성전자 주식회사 | 저장장치, 이를 포함하는 컴퓨터 시스템 및 이의 동작 방법 |
JP6102632B2 (ja) * | 2013-08-14 | 2017-03-29 | ソニー株式会社 | 記憶制御装置、ホストコンピュータ、情報処理システムおよび記憶制御装置の制御方法 |
US9104325B2 (en) * | 2013-11-13 | 2015-08-11 | Infinidat Ltd. | Managing read operations, write operations and extent change operations |
KR102156222B1 (ko) * | 2013-12-24 | 2020-09-15 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것을 포함하는 데이터 처리 시스템 |
WO2016174729A1 (ja) * | 2015-04-28 | 2016-11-03 | 株式会社日立製作所 | ストレージ装置 |
US10108503B2 (en) * | 2015-08-24 | 2018-10-23 | Western Digital Technologies, Inc. | Methods and systems for updating a recovery sequence map |
US20170131948A1 (en) * | 2015-11-06 | 2017-05-11 | Virtium Llc | Visualization of usage impacts on solid state drive life acceleration |
US20170131947A1 (en) * | 2015-11-06 | 2017-05-11 | Pho Hoang | Data and collection methods to analyze life acceleration of SSD with real usages |
KR102580820B1 (ko) * | 2016-03-10 | 2023-09-20 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
TWI585676B (zh) * | 2016-03-18 | 2017-06-01 | 慧榮科技股份有限公司 | 資料儲存裝置、記憶體控制器及其操作方法 |
KR102667430B1 (ko) | 2016-08-04 | 2024-05-23 | 삼성전자주식회사 | 호스트 메모리를 이용하는 데이터 저장 장치 및 그것의 동작 방법 |
TWI634424B (zh) * | 2017-05-08 | 2018-09-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
KR20180128588A (ko) * | 2017-05-24 | 2018-12-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
KR102310117B1 (ko) * | 2017-07-07 | 2021-10-08 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US10929285B2 (en) * | 2018-02-27 | 2021-02-23 | Western Digital Technologies, Inc. | Storage system and method for generating a reverse map during a background operation and storing it in a host memory buffer |
KR20200073794A (ko) * | 2018-12-14 | 2020-06-24 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US11237973B2 (en) * | 2019-04-09 | 2022-02-01 | SK Hynix Inc. | Memory system for utilizing a memory included in an external device |
KR20200132047A (ko) * | 2019-05-15 | 2020-11-25 | 에스케이하이닉스 주식회사 | 메모리 시스템에서 맵 데이터를 전송하는 방법 및 장치 |
-
2019
- 2019-01-15 KR KR1020190005361A patent/KR20200088713A/ko unknown
- 2019-09-25 US US16/582,822 patent/US11194736B2/en active Active
- 2019-10-18 CN CN201910995028.6A patent/CN111435289B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101499036A (zh) * | 2008-01-30 | 2009-08-05 | 株式会社东芝 | 信息存储设备及其控制方法 |
CN102467455A (zh) * | 2010-10-29 | 2012-05-23 | 三星电子株式会社 | 存储系统、数据存储设备、用户设备及其数据管理方法 |
CN103019970A (zh) * | 2011-09-21 | 2013-04-03 | 株式会社东芝 | 存储装置及其控制方法 |
WO2015065312A1 (en) * | 2013-10-28 | 2015-05-07 | Hitachi, Ltd. | Method and apparatus of data de-duplication for solid state memory |
Also Published As
Publication number | Publication date |
---|---|
US20200226072A1 (en) | 2020-07-16 |
US11194736B2 (en) | 2021-12-07 |
KR20200088713A (ko) | 2020-07-23 |
CN111435289A (zh) | 2020-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111435289B (zh) | 映射数据访问性能提高的存储器控制器及其操作方法 | |
CN110502449B (zh) | 存储装置及其操作方法 | |
CN111105832B (zh) | 存储装置和操作存储装置的方法 | |
CN111177020B (zh) | 存储装置及其操作方法 | |
CN111352855B (zh) | 具有提高的映射更新速度的存储装置及其操作方法 | |
CN111459845B (zh) | 存储装置、包括存储装置的计算系统及其操作方法 | |
US11481272B2 (en) | Memory controller and method of operating the same | |
CN112306902A (zh) | 存储器控制器及操作其的方法 | |
CN111444115B (zh) | 存储装置及其操作方法 | |
US20200401328A1 (en) | Storage device and method of operating the same | |
CN110175133B (zh) | 存储装置及其操作方法 | |
CN114860622A (zh) | 存储装置及操作存储装置的方法 | |
CN111445939B (zh) | 存储装置及其操作方法 | |
CN111435333B (zh) | 存储装置及其操作方法 | |
CN113223573A (zh) | 存储器控制器及其操作方法 | |
CN111105836A (zh) | 存储装置及其操作方法 | |
CN110619912A (zh) | 存储装置以及该存储装置的操作方法 | |
CN111338978B (zh) | 存储装置以及操作存储装置的方法 | |
CN114078530A (zh) | 存储器装置及其操作方法 | |
CN113448892A (zh) | 存储器控制器及其操作方法 | |
CN113010096A (zh) | 存储装置及其操作方法 | |
KR20210128780A (ko) | 메모리 컨트롤러 및 이를 포함하는 저장 장치 | |
CN111796962A (zh) | 存储装置以及存储装置的操作方法 | |
CN112445420B (zh) | 存储控制器、存储装置以及操作该存储装置的方法 | |
CN112783435A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |