CN114840443A - 存储器控制器及包括存储器控制器的存储装置 - Google Patents
存储器控制器及包括存储器控制器的存储装置 Download PDFInfo
- Publication number
- CN114840443A CN114840443A CN202111077740.1A CN202111077740A CN114840443A CN 114840443 A CN114840443 A CN 114840443A CN 202111077740 A CN202111077740 A CN 202111077740A CN 114840443 A CN114840443 A CN 114840443A
- Authority
- CN
- China
- Prior art keywords
- mapping
- slot
- tree
- physical
- segment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
-
- 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/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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
-
- 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/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
本发明涉及一种存储器控制器,该存储器控制器包括:映射高速缓存控制器,生成时隙分配请求以分配多个物理时隙之中的待存储第一映射段的物理时隙;映射缓冲器管理器,响应于时隙分配请求而输出第一映射段、第一物理时隙信息和树时隙信息;以及映射管理器,接收第一映射段、第一物理时隙信息和树时隙信息,删除映射树的多个树时隙之中的树时隙中存储的第二映射段和第二物理时隙信息,并且将第一映射段和第一物理时隙信息存储在该树时隙中。该树时隙中存储的第二映射段和第二物理时隙信息中的至少一个是无效的。
Description
相关申请的交叉引用
本申请要求于2021年2月2日向韩国知识产权局提交的、申请号为10-2021-0014970的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
本文描述的一个或多个实施例涉及一种存储器控制器以及包括存储器控制器的存储装置。
背景技术
存储器控制器控制数据在存储器装置中的存储。易失性存储器装置仅在供应电力时存储数据。当电力中断时,数据丢失。易失性存储器装置的示例包括静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。非易失性存储器装置即使在电力中断时也可以存储数据。非易失性存储器装置的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)和闪速存储器。
发明内容
本文描述的一个或多个实施例提供一种可以实现改进的读取性能的存储器控制器。一个或多个其它实施例提供一种可以包括这种存储器控制器的存储装置。
根据本公开实施例的存储器控制器可以是一种存储器控制器,包括:映射高速缓存控制器,被配置为生成时隙(slot)分配请求以分配多个物理时隙之中的物理时隙,所分配的物理时隙被配置为存储包括第一逻辑地址和存储器装置的第一物理地址之间的映射信息的第一映射段;映射缓冲器管理器,被配置为响应于时隙分配请求,输出第一映射段、指示物理时隙的第一物理时隙信息以及指示与第一映射段相对应的树时隙(tree slot)的树时隙信息;以及映射管理器,包括映射树,该映射树包括多个树时隙,该映射管理器被配置为基于树时隙信息将第一映射段和第一物理时隙信息存储在多个树时隙之中的树时隙中。当第二映射段和第二物理时隙信息被存储在树时隙中时,映射管理器被配置为删除第二映射段和第二物理时隙信息,并且将第一映射段和第一物理时隙信息存储在该树时隙中,该第二物理时隙信息指示存储第二映射段的物理时隙,并且树时隙中存储的第二映射段和第二物理时隙信息中的至少一个是无效的。
根据本公开另一实施例的存储器控制器可以是一种存储器控制器,包括:映射管理器,包括映射树和散列表,该映射树包括多个树时隙,该多个树时隙被配置为存储非易失性存储器装置中存储的多个映射段中的一些映射段以及物理时隙信息,所述物理时隙信息指示易失性存储器装置中的、存储了该一些映射段的多个物理时隙,并且该散列表被配置为存储一些映射段之中的最近被存储在映射树中的至少一个映射段以及指示存储该至少一个映射段的物理时隙的物理时隙信息;以及映射高速缓存控制器,被配置为响应于读取请求,搜索与逻辑地址相对应的物理地址,并且将搜索到的物理地址以及指示对搜索到的物理地址执行读取操作的读取命令提供到非易失性存储器装置。多个映射段包括逻辑地址和物理地址之间的映射信息。
根据本公开的另一实施例的存储装置可以包括:非易失性存储器装置,被配置为存储包括逻辑地址和物理地址之间的映射信息的多个映射段;易失性存储器装置,被配置为将多个映射段之中的一些映射段存储在多个物理时隙中;以及存储器控制器,被配置为响应于读取请求,控制非易失性存储器装置以对与第一逻辑地址相对应的第一物理地址执行读取操作。存储器控制器可以包括:映射树,包括多个树时隙,该多个树时隙被配置为存储指示多个物理时隙的物理时隙信息和一些映射段;以及散列表,被配置为存储一些映射段之中的最近被存储在映射树中的至少一个映射段以及指示存储该至少一个映射段的物理时隙的物理时隙信息。存储器控制器被配置为在散列表中搜索第一物理地址,并且当在散列表中没有搜索到第一物理地址时,在映射树中搜索第一物理地址。
根据本技术,提供了一种具有改进的读取性能的存储器控制器以及包括存储器控制器的存储装置。
附图说明
图1示出存储系统的实施例。
图2示出非易失性存储器装置的实施例。
图3示出存储块的实施例。
图4示出映射段的实施例。
图5示出加载映射的方法的实施例。
图6示出存储器控制器的实施例。
图7示出获得空闲树时隙的实施例。
图8示出树时隙中存储的映射段与物理时隙信息之间的映射关系被无效的实施例。
图9示出向空闲树时隙提供映射段、物理时隙信息和树时隙信息的实施例。
图10示出存储映射段和物理时隙信息的实施例。
图11示出在映射管理器中搜索与从主机提供的逻辑地址相对应的物理地址的实施例。
图12示出释放树时隙中存储的物理时隙信息和映射段的实施例。
图13示出操作存储器控制器的方法的实施例。
图14示出存储器控制器的实施例。
图15示出存储卡系统的实施例。
图16示出固态驱动器(SSD)系统的实施例。
图17示出用户系统的实施例。
具体实施方式
示出根据本说明书或申请中公开的构思的实施例的结构或功能描述仅仅是为了描述根据本公开的构思的实施例。根据本公开的构思的实施例可以以各种形式来执行,并且不应被解释为限于本说明书或本申请中描述的实施例。
图1示出存储系统的实施例,该存储系统可以被实施为个人计算机(PC)、数据中心、企业数据存储系统、包括直接附接存储(DAS)的数据处理系统、包括存储区域网络(SAN)的数据处理系统以及包括网络附接存储(NAS)的数据处理系统等。
存储系统可以包括存储装置1000和主机400。存储装置1000可以根据诸如以下的主机400的请求来存储数据:移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、TV、平板电脑或车载信息娱乐系统。
根据作为与主机400的通信方法的主机接口,存储装置1000可以是各种类型的存储装置中的一种。存储装置1000的示例可以包括SSD,MMC、eMMC、RS-MMC和微型MMC形式的多媒体卡,SD、迷你SD和微型SD形式的安全数字卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围组件互连(PCI)卡型存储装置,高速PCI(PCI-E)卡型存储装置,紧凑型闪存(CF)卡,智能媒体卡和记忆棒。
存储装置1000可以是各种类型的封装中的一种。示例包括:堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)和晶圆级堆叠封装(WSP)。在实施例中,存储装置1000的数量可以是一个或多个。多个存储装置1000可以例如以在逻辑上在一个存储装置中操作的独立磁盘冗余阵列或廉价磁盘冗余阵列(RAID)来操作。
存储装置1000可以包括非易失性存储器装置100、存储器控制器200和易失性存储器装置300。非易失性存储器装置100可以响应于存储器控制器200的控制而操作。例如,非易失性存储器装置100可以从存储器控制器200接收命令和地址,并且访问由地址所选择的存储器单元。非易失性存储器装置100可以对由地址所选择的存储器单元执行由命令所指示的操作。
命令可以是,例如编程命令、读取命令或擦除命令,并且由命令指示的操作可以是,例如编程操作(或写入操作)、读取操作或擦除操作。
编程操作可以响应于存储器控制器200的控制而存储来自主机400的数据。例如,非易失性存储器装置100可以接收编程命令、地址和数据,并且将数据编程到由地址所选择的存储器单元。此处,待编程到所选择的存储器单元的数据可以是写入数据。写入数据可以包括来自主机400的数据(或用户数据)以及该数据的元数据。
读取操作可以响应于存储器控制器200的控制而读取非易失性存储器装置100中存储的数据。例如,非易失性存储器装置100可以接收读取命令和地址,并且在存储器单元阵列中从由地址所选择的区域读取数据。待从所选择的区域读取的数据可以是读取数据。
擦除操作可以响应于存储器控制器200的控制而擦除存储器装置中存储的数据。例如,非易失性存储器装置100可以接收擦除命令和地址,并且擦除由地址所选择的区域中存储的数据。
非易失性存储器装置100的示例包括电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器、自旋转移扭矩随机存取存储器、闪速存储器等。例如,闪速存储器可以包括NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器等。为了描述的方便和讨论的目的,假设非易失性存储器装置100是NAND闪速存储器。
在存储器控制器200的控制下,非易失性存储器装置100可以存储写入数据,或者可以读取所存储的读取数据并将读取数据提供到存储器控制器200。非易失性存储器装置100可以包括至少一个平面。一个平面可以包括存储器单元阵列,存储器单元阵列包括存储写入数据的存储器单元。
在一个实施例中,存储器单元阵列可以包括多个存储块。存储块可以是用于执行擦除数据的擦除操作的单位。多个存储块可以包括系统块101,系统块101可以是存储元数据的存储块。在一个实施例中,可以设置多个系统块101。存储块中的一些可以被实施为系统块101。
元数据可以包括或指示关于存储块中存储的数据的信息。例如,元数据可以包括指示逻辑地址和物理地址之间的映射关系的映射数据。在一个实施例中,映射数据可以包括逻辑地址与物理地址之间的映射信息。映射数据可以包括多个映射段,其中每个映射段包括一个或多个映射条目。一个映射条目可以包括关于一个逻辑地址的映射信息。一个逻辑地址可以是与4KB数据相对应的地址,这例如可以被称为4KB映射。在另一实施例中,元数据可以包括其它或附加类型的信息。
在实施例中,存储块可以包括用户块,用户块可以是存储数据的存储块。存储块中的一些可以被实施为用户块。存储块可以包括多个页面,其中每个页面是用于执行存储写入数据的编程操作或读取所存储的读取数据的读取操作的单位。
存储器单元可以是存储一位数据的单层单元(SLC)、存储两位数据的多层单元(MLC)、存储三位数据的三层单元(TLC)以及存储四位数据的四层单元(QLC)。然而,本公开不限于此,并且存储器单元可以存储五位或更多位的数据。
在实施例中,非易失性存储器装置100可以通过,例如平面交错方法来执行由命令所指示的操作。平面交错方法可以是对两个或更多个平面中的每一个的操作至少部分重叠的方法。
存储器控制器200可以控制存储装置1000的全部操作。当向存储装置1000施加电力时,存储器控制器200可以运行固件或其它类型的指令。当非易失性存储器装置100是闪速存储器装置时,固件可以包括主机接口层、闪存转换层和闪存接口层。电力可以是,例如从外部电源供应的电力。
主机接口层可以控制主机400与存储器控制器200之间的操作。闪存转换层可以将来自主机400的逻辑地址转换为物理地址。闪存接口层可以控制存储器控制器200与非易失性存储器装置100之间的通信。
存储器控制器200可以控制非易失性存储器装置100以执行与来自主机400的请求相对应的操作。例如,存储器控制器200可以分别响应于主机400的写入请求、读取请求和擦除请求而控制非易失性存储器装置100以对与来自主机400的逻辑地址相对应的物理地址执行编程操作、读取操作和擦除操作中的每一个。
在编程操作期间,存储器控制器200可以向非易失性存储器装置100提供编程命令、物理地址和写入数据。在实施例中,在编程操作期间,存储器控制器200可以向非易失性存储器装置100提供编程命令和物理地址。另外,存储器控制器200可以向易失性存储器装置300提供清除命令,以将临时存储在易失性存储器装置300中的数据提供(或清除)到非易失性存储器装置100。当临时存储在易失性存储器装置300中的数据被提供到非易失性存储器装置100时,临时存储在易失性存储器装置300中的数据可以被擦除。
在读取操作期间,存储器控制器200可以向非易失性存储器装置100提供读取命令和物理地址。
在擦除操作期间,存储器控制器200可以向非易失性存储器装置100提供擦除命令和物理地址。物理地址可以对应于来自主机400的逻辑地址。可以使用非易失性存储器装置100中存储的映射数据来检查待提供到非易失性存储器装置100的物理地址是否对应于来自主机400的逻辑地址。例如,存储器控制器200可以使用映射数据获得与来自主机400的逻辑地址相对应的物理地址。在一个实施例中,存储器控制器200可以控制非易失性存储器装置100以在执行编程操作或读取操作之前,读取非易失性存储器装置100中存储的所有映射数据之中的与来自主机400的逻辑地址相关的映射数据。当读取映射数据时,存储器控制器200可以使用映射数据来获得物理地址。
在一个实施例中,存储器控制器200可以自主地生成命令、地址和数据而不考虑来自主机400的请求。存储器控制器200可以将自主生成的命令、地址和数据传输到非易失性存储器装置100。例如,存储器控制器200可以生成用于执行后台操作的命令、一个或多个地址以及数据。另外,存储器控制器200可以向非易失性存储器装置100提供命令、一个或多个地址以及数据。用于执行后台操作的命令可以是,例如编程命令或读取命令。
后台操作可以是损耗均衡操作、读取回收操作或垃圾收集操作中的至少一种。损耗均衡操作可以是,例如静态损耗均衡操作、动态损耗均衡操作等。静态损耗均衡操作可以涉及存储存储块被擦除的次数以及将冷数据(在冷数据中,几乎不发生擦除操作或写入操作)移动到存储块被擦除次数最多的存储块。动态损耗均衡操作可以涉及存储存储块被擦除的次数以及将数据编程到擦除次数最少的存储块。
读取回收操作可以涉及在存储块中存储的数据中发生不可校正的错误之前,将存储块中存储的数据移动到另一存储块。
垃圾收集操作可以涉及将存储块之中的坏块中的有效数据复制到空闲块并且擦除坏块中的无效数据。此处,将坏块中的有效数据复制到空闲块可以涉及将坏块中的有效数据移动到空闲块。
存储器控制器200可以控制两个或更多个存储器装置100。在这种情况下,存储器控制器200可以根据,例如交错方法来控制存储器装置100以提高操作性能。交错方法可以是控制两个或更多个存储器装置100的操作以重叠的方法。
易失性存储器装置300可以仅在从电源接收电力时存储数据。易失性存储器装置300可以临时存储来自主机400的数据。易失性存储器装置300可以临时存储待存储在非易失性存储器装置100中的数据。易失性存储器装置300可以临时存储从非易失性存储器装置100提供的数据。
易失性存储器装置300可以在存储器控制器200中,或者可以在存储器控制器200外部并联接到存储器控制器200。易失性存储器装置300的示例包括DRAM、SRAM、双倍数据速率同步动态随机存取存储器(DDR SDRAM)、第四代低功率双倍数据速率(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)等。
由于易失性存储器装置300的操作速度可以相对快于非易失性存储器装置100的操作速度,因此存储器控制器200可以更快地获得与逻辑地址相对应的物理地址。例如,当映射数据先前被存储在易失性存储器装置300中时,可以是这种情况。因此,存储装置1000可以使用易失性存储器装置300的一些区域作为用于映射数据的一种类型的高速缓存存储器。
易失性存储器装置300可以包括读取/写入缓冲器310和映射缓冲器320。读取/写入缓冲器310可以临时存储来自主机400的数据。在一个实施例中,读取/写入缓冲器310可以临时存储来自非易失性存储器装置100的数据。读取/写入缓冲器310中存储的数据可以是,例如写入数据或读取数据。
映射缓冲器320可以临时存储映射数据。例如,映射缓冲器320可以临时存储非易失性存储器装置100中的多个映射段之中的一些映射段。映射缓冲器320可以被划分为多个物理时隙。每个物理时隙可以是存储数据的物理空间或物理存储器区域。可以针对每个物理时隙存储映射段。为了划分物理时隙,可以为每个物理时隙分配物理时隙编号。
在实施例中,存储器控制器200可以将非易失性存储器装置100中存储的映射段之中的一些映射段临时存储在易失性存储器装置300中。例如,存储器控制器200可以将一些映射段临时存储在映射缓冲器320的物理时隙中。存储器控制器200可以使用临时存储在物理时隙中的一些映射段来获得与来自主机400的逻辑地址相对应的物理地址。
为了从易失性存储器装置300获得与逻辑地址(从主机400提供的逻辑地址)相对应的物理地址,可以搜索临时存储在多个物理时隙中的映射段。为了快速地搜索映射段,可以存储指示每个映射段以及存储每个映射段的物理时隙的物理时隙编号的信息。这些信息可以存储在例如散列表、映射树中,或以其它形式存储。
可以基于关键码(key)、散列函数(hash function)、散列(hash)、值和散列时隙而形成散列表。散列时隙可以被称为存储体或储存桶。由于散列函数可以总是返回常量散列,因此散列函数具有以下特性:可以在仅知道相应散列而不搜索所有数据的情况下快速地搜索数据。另外,散列函数具有以下特性:将数据插入(或存储)到散列表中或从散列表中删除数据的复杂度趋于0(1)。然而,散列表中可能会发生散列冲突。散列冲突是散列表中可能出现的特性,例如,可以对应于其中散列表的散列函数针对两个不同的关键码计算相同散列的情况。
在实施例中,散列表可以存储最近加载的映射段以及指示存储最近加载的映射段的物理时隙的物理时隙信息。例如,散列表的每个散列时隙可以存储最近存储在映射树中的相应映射段。另外,指示存储最近被存储在映射树中的映射段的物理时隙的信息可以被存储在散列表的每个散列时隙中。指示物理时隙的信息可以是物理时隙信息。物理时隙信息可以指示,例如物理时隙的编号,例如物理时隙编号。
映射树可以具有树形结构。在一个实施例中,树形结构可以包括多个树时隙,并且可以指示每个树时隙之间的连接关系。该连接关系可以包括上下关系。在一个实施例中,上树时隙可以具有一个或多个下树时隙,但是下树时隙可以仅具有一个上树时隙。例如,树形结构可以是上树时隙和下树时隙像树枝一样连接的结构。映射树可以包括树时隙,其中每个树时隙具有多个下树时隙。树时隙可以被称为“节点”,而下树时隙可以被称为“子节点”。
由于映射树具有树形结构,因此映射树中不会发生散列冲突。然而,例如,当插入数据或删除数据的复杂度为0(logn)时,在映射树中搜索、插入和删除数据可能相对慢于散列表。例如,在存储数据时,可以对树时隙逐个处理。在删除数据时,可以一次处理多个树时隙。由于执行了一次删除树时隙中存储的数据的操作,因此处理该操作的时间可能会延迟。在实施例中,物理时隙信息和映射段可以存储在映射树的每个树时隙中。在实施例中,映射树可以具有二叉树形结构。
在实施例中,存储器控制器200可以包括散列表和映射树。另外,存储器控制器200可以从散列表中搜索与从主机400提供的逻辑地址相对应的物理地址。当在散列表中没有搜索到物理地址时,存储器控制器200可以在映射树中搜索物理地址。
在实施例中,当在散列表和映射树中都没有搜索到与从主机400提供的逻辑地址相对应的物理地址时,存储器控制器200可以控制非易失性存储器装置100来获得映射段,该映射段包括关于从主机400提供的逻辑地址以及物理地址的映射信息。
根据实施例,可以使用散列表和树形结构的所有优点来执行改进的读取操作。例如,根据一个或多个实施例,可以使用树形结构的映射树来防止散列冲突(散列表的缺点)。另外,可以通过使用散列表存储最近更新的映射段来减少搜索成本或延迟。
存储器控制器200可以包括映射高速缓存控制器210、映射缓冲器管理器220和映射管理器230。映射高速缓存控制器210可以在散列表和映射树中搜索与从主机400提供的逻辑地址相对应的物理地址。当在散列表和映射树中没有搜索到与从主机400提供的逻辑地址相对应的物理地址时,映射高速缓存控制器210可以控制非易失性存储器装置100以读取非易失性存储器装置100中存储的多个映射段中的任意一个。
映射高速缓存控制器210可以生成时隙分配请求,该时隙分配请求请求分配映射缓冲器320的物理时隙之中的待存储从非易失性存储器装置100提供的映射段的物理时隙。映射高速缓存控制器210可以向映射缓冲器管理器220提供时隙分配请求。映射高速缓存控制器210可以生成请求释放每个物理时隙中存储的映射段的释放请求,并且将释放请求提供到映射缓冲器管理器220。
映射缓冲器管理器220可以响应于时隙分配请求而分配映射缓冲器320的物理时隙之中的空物理时隙。映射缓冲器管理器220可以生成映射段、指示待存储映射段的物理时隙的物理时隙信息以及树时隙信息。树时隙信息可以指示待存储映射段和物理时隙信息的树时隙。树时隙信息可以指示,例如树时隙编号(树时隙的编号)。映射缓冲器管理器220可以向映射管理器230提供映射段、物理时隙信息和树时隙信息。
映射缓冲器管理器220可以响应于释放请求而生成树时隙信息,该树时隙信息指示映射树的树时隙之中与的待释放的物理时隙相对应的树时隙。
映射管理器230可以包括散列表和映射树。映射管理器230可以接收映射段、物理时隙信息和树时隙信息。映射管理器230可以使用树时隙信息来检查树时隙编号。映射管理器230可以将映射段和物理时隙信息存储在映射树的树时隙之中的具有经检查的树时隙编号的树时隙中。
主机400可以通过接口与存储装置1000通信。接口可以利用以下接口来实施:串行高级技术附件(SATA)接口、高速SATA(SATAe)接口、串列小型计算机系统接口(SAS)接口、高速外围组件互连(PCIe)接口、高速非易失性存储器(NVMe)接口、高级主机控制器接口(AHCI)或多媒体卡接口。然而,接口不限于此。
主机400可以与存储装置1000通信以将数据存储在存储装置1000中或获得存储装置1000中存储的数据。在实施例中,主机400可以将写入请求提供到存储装置1000用于请求将数据存储在存储装置1000中。另外,主机400可以将写入请求、数据以及用于识别数据的逻辑地址提供到存储装置1000。
存储装置1000可以响应于从主机400提供的写入请求而将包括元数据以及由主机400所提供的数据的写入数据存储在非易失性存储器装置100中,并且可以将存储完成的响应提供到主机400。在实施例中,主机400可以将读取请求提供到存储装置1000用于请求将存储装置1000中存储的数据提供到主机400。另外,主机400可以将读取请求和读取地址提供到存储装置1000。
存储装置1000可以响应于从主机400提供的读取请求而从非易失性存储器装置100读取与由主机400所提供的读取地址相对应的读取数据,并且将读取数据提供到主机400作为对读取请求的响应。
图2是示出非易失性存储器装置100的实施例的示图,非易失性存储器装置100可以包括存储器单元阵列110、外围电路120和控制逻辑130。
存储器单元阵列110可以包括多个存储块MB1至MBk(k是正整数)。存储块MB1至MBk的数量仅仅是用于描述本公开的实施例的示例,而不是限于此。
存储块MB1至MBk中的每一个可以连接到局部线LL和位线BL1至BLn(n是正整数)。局部线LL可以连接到行解码器122。局部线LL可以连接到存储块MB1至MBk中的每一个。局部线LL可以包括第一选择线、第二选择线以及布置在第一选择线和第二选择线之间的多个字线。局部线LL可以进一步包括布置在第一选择线和字线之间的虚设线、布置在第二选择线和字线之间的虚设线以及管线。
位线BL1至BLn可以共同地连接到存储块MB1至MBk。
存储块MB1至MBk可以被实施为二维结构或三维结构。例如,在二维结构的存储块MB1至MBk中,存储器单元可以沿平行于衬底的方向布置。在三维结构的存储块MB1至MBk中,存储器单元可以,例如沿垂直方向堆叠在衬底上。
外围电路120可以包括电压生成器121、行解码器122、页面缓冲器组123、列解码器124、输入/输出电路125和感测电路126。电压生成器121可以响应于操作命令OP_CMD而生成用于编程操作、读取操作和擦除操作的各种操作电压Vop。另外,电压生成器121可以响应于操作命令OP_CMD而选择性地使局部线LL放电。例如,电压生成器121可以在控制逻辑130的控制下生成编程电压、验证电压、通过电压、导通电压、读取电压、擦除电压、源极线电压等。
作为实施例,电压生成器121可以调节外部电源电压以生成内部电源电压。内部电源电压可以用作非易失性存储器装置100的操作电压。在实施例中,电压生成器121可以使用外部电源电压或内部电源电压来生成多个电压。例如,电压生成器121可以包括接收内部电源电压的多个泵浦电容器,并且可以响应于控制逻辑130的控制,通过选择性地激活泵浦电容器来生成多个电压。所生成的电压可以通过行解码器122供应到存储器单元阵列110。
行解码器122可以响应于行地址RADD而将操作电压Vop传送到局部线LL。可以通过局部线LL将操作电压Vop传送到所选择的存储块MB1至MBk。例如,在编程操作期间,行解码器122可以将编程电压施加到所选择的字线,并且将电平小于编程电压的编程通过电压施加到未选择的字线。在编程验证操作期间,行解码器122可以将验证电压施加到所选择的字线,并且将大于验证电压的验证通过电压施加到未选择的字线。
在读取操作期间,行解码器122可以将读取电压施加到所选择的字线,并且可以将大于读取电压的读取通过电压施加到未选择的字线。
在擦除操作期间,行解码器122可以根据经解码的地址选择一个存储块。在擦除操作期间,行解码器122可以将参考(例如,接地)电压施加到连接到所选择的存储块的字线。
页面缓冲器组123可以包括分别通过第一至第n位线BL1至BLn连接到存储器单元阵列110的第一至第n页面缓冲器PB1至PBn。第一至第n页面缓冲器PB1至PBn可以响应于控制逻辑130的控制而操作。例如,第一至第n页面缓冲器PB1至PBn可以响应于页面缓冲器控制信号PBSIGNALS而操作。在一个实施例中,在读取操作或验证操作期间,第一至第n页面缓冲器PB1至PBn可以临时存储通过第一至第n位线BL1至BLn接收的数据,或者可以感测位线BL1至BLn的电压或电流。
在编程操作期间,当将编程电压施加到所选择的字线时,第一至第n页面缓冲器PB1至PBn可以通过第一至第n位线BL1至BLn,将通过列解码器124和输入/输出电路125接收的数据DATA传送到所选择的存储器单元。根据所传送的数据DATA对所选择的页面的存储器单元进行编程。连接到施加了编程允许电压(例如,接地电压)的位线的存储器单元可以具有增加的阈值电压。连接到施加了编程禁止电压(例如,电源电压)的位线的存储器单元的阈值电压可以保持不变。
在验证操作期间,第一至第n页面缓冲器PB1至PBn可以感测通过第一至第n位线BL1至BLn从所选择的存储器单元选择的存储器单元中存储的数据。
在读取操作期间,第一至第n页面缓冲器PB1至PBn可以通过第一至第n位线BL1至BLn从所选择页面的存储器单元感测数据,并且可以在列解码器124的控制下将读取数据DATA输出到输入/输出电路125。
在擦除操作期间,第一至第n页面缓冲器PB1至PBn可以使第一至第n位线BL1至BLn浮置。
列解码器124可以响应于列地址CADD而在输入/输出电路125和页面缓冲器组123之间传送数据。例如,列解码器124可以通过数据线DL与页面缓冲器PB1至PBn交换数据,或者可以通过列线CL与输入/输出电路125交换数据。
输入/输出电路125可以将从存储器控制器200接收的命令CMD和地址ADD传送到控制逻辑130,或者可以与列解码器124交换数据DATA。
在读取操作或验证操作期间,感测电路126可以响应于允许位信号VRY_BIT<#>而生成参考电流,并且将从页面缓冲器组123接收的感测电压VPB与由参考电流所生成的参考电压进行比较以输出通过信号PASS或失败信号FAIL。
控制逻辑130可以响应于命令CMD和地址ADD而输出操作命令OP_CMD、行地址RADD、页面缓冲器控制信号PBSIGNALS和允许位VRY_BIT<#>,以控制外围电路120。
图3是示出存储块MBi的实施例的示图,存储块MBi可以代表图2所示的存储块MB1至MBk。
参照图3,存储块MBi可以包括第一选择线、第二选择线、多个字线WL1至WL16、源极线SL、多个位线BL1至BLn和多个串ST。第一选择线可以是,例如源极选择线SSL。第二选择线可以是,例如漏极选择线DSL。字线WL1至WL16可以在源极选择线SSL和漏极选择线DSL之间平行地布置。图3所示的字线WL1至WL16的数量是示例,并且不限于附图所示的数量。
源极线SL可以共同地连接到多个串ST。多个位线BL1至BLn可以分别连接到串ST。多个串ST可以连接到位线BL1至BLn以及源极线SL。串ST可以被配置为彼此相同,因此将连接到第一位线BL1的串ST作为示例进行描述。
串ST可以包括多个存储器单元MC1至MC16、至少一个第一选择晶体管和至少一个第二选择晶体管。存储器单元MC1至MC16可以在源极选择晶体管SST和漏极选择晶体管DST之间串联连接。存储器单元MC1至MC16的栅电极可以分别连接到字线WL1至WL16。因此,一个串ST中的存储器单元MC1至MC16的数量可以与字线WL1至WL16的数量相同。存储器单元MC1至MC16中的任意一个可以被配置为存储一位数据的SLC、存储两位数据的MLC、存储三位数据的TLC以及存储四位数据的QLC中的任意一种。然而,本公开不限于此,并且存储器单元可以存储五位或更多位的数据。
不同串ST中的存储器单元之中的连接到相同字线的一组存储器单元可以是物理页面PG。因此,存储块MBi可以包括与字线WL1至WL16的数量相对应的物理页面PG。在下文中,假设物理页面PG中的存储器单元(例如,MC3)是所选择的存储器单元。
第一选择晶体管可以是,例如源极选择晶体管SST。源极选择晶体管SST的第一电极可以连接到源极线SL。源极选择晶体管SST的第二电极可以连接到存储器单元MC1至MC16之中的第一存储器单元MC1。源极选择晶体管SST的栅电极可以连接到源极选择线SSL。
第二选择晶体管可以是,例如漏极选择晶体管DST。漏极选择晶体管DST的第一电极可以连接到多个存储器单元MC1至MC16之中的第十六存储器单元MC16。漏极选择晶体管DST的第二电极可以连接到第一位线BL1。漏极选择晶体管DST的栅电极可以连接到漏极选择线DSL。
图4是示出可以被存储在非易失性存储器装置100中的多个映射段SEG#1至SEG#1024之中的映射段的实施例的示图。参照图1和图4,例如,映射段SEG#1至SEG#1024可以存储在非易失性存储器装置100中的系统块101中。
映射段的数量可以是,例如如图4所示的1024个,但不限于此。在下文中,假设非易失性存储器装置100中存储的映射段SEG#1至SEG#1024的数量是1024。
多个映射段SEG#1至SEG#1024中的每一个可以包括多个映射条目。一个映射条目可以包括一个逻辑地址和一个物理地址。例如,映射条目1可以包括逻辑地址1LA1和物理地址1PA1。在实施例中,逻辑地址可以是逻辑块编号,并且物理地址可以是物理块编号。在一个实施例中,逻辑地址可以是逻辑页面编号,并且物理地址可以是物理页面编号。
由于一个映射条目包括一个逻辑地址和一个物理地址,因此一个映射段可以包括多个映射条目。例如,映射段1SEG#1可以包括10个映射条目。在图4中,一个映射段中包括10个映射条目,但本公开不限于此。
映射段SEG#1至SEG#1024中的一些可以临时存储在易失性存储器装置300中。参照图1和图4,例如,映射段1SEG#1和映射段2SEG#2可以临时存储在映射缓冲器320中。然而,本公开不限于此。
图5是示出加载映射的方法的实施例的示图。参照图1、图4和图5,在启动时,存储器控制器200可以将非易失性存储器装置100中的映射段SEG#1至SEG#1024中的一些临时存储在易失性存储器装置300中。
例如,在启动时,映射高速缓存控制器210可以将物理地址和读取命令提供到非易失性存储器装置100,该读取命令指示读取(系统块101中存储的多个映射段1SEG#1至映射段24SEG#24之中)的映射段1SEG#1至映射段7SEG#7。映射高速缓存控制器210可以将从非易失性存储器装置100提供的映射段1SEG#1至映射段7SEG#7临时存储到映射缓冲器320的多个物理时隙PS#1至PS#7。
物理时隙1PS#1可以是具有物理时隙编号1的物理时隙。物理时隙2PS#2可以是具有物理时隙编号2的物理时隙。物理时隙3PS#3可以是具有物理时隙号编3的物理时隙。物理时隙7PS#7可以是具有物理时隙编号7的物理时隙。物理时隙编号也可以表示为“01h”、“02h”、“03h”等。
映射段1SEG#1可以存储在物理时隙1PS#1中。映射段2SEG#2可以存储在物理时隙2PS#2中。映射段3SEG#3可以存储在物理时隙3PS#3中。映射段7SEG#7可以存储在物理时隙7PS#7中。这仅仅是用于描述本公开的实施例,并且不限于图4所示。
主机400可以向存储器控制器200提供读取请求READ_REQ和逻辑地址LA。存储器控制器200可以基于临时存储在映射缓冲器320中的映射段SEG#1至SEG#7获得与逻辑地址LA相对应的物理地址。
例如,当包括逻辑地址LA的映射段是临时存储在映射缓冲器320中的映射段SEG#1至SEG#7中的一个时,映射高速缓存控制器210可以获得与逻辑地址LA相对应的物理地址。
当包括逻辑地址LA的映射段没有临时存储在映射缓冲器320中时,存储器控制器200可以将存储在非易失性存储器装置100中的映射段SEG#1至SEG#1024之中的新映射段临时存储在易失性存储器装置300中。
例如,当逻辑地址LA不在临时存储在映射缓冲器320中的映射段SEG#1、SEG#2和SEG#3中时,映射高速缓存控制器210可以向非易失性存储器装置100提供物理地址和读取命令,该读取命令指示读取系统块101中的映射段SEG#1至SEG#1024之中的映射段x SEG#x。映射高速缓存控制器210可以将从非易失性存储器装置100提供的映射段xSEG#x临时存储在物理时隙3PS#3中,物理时隙3PS#3是映射缓冲器320的物理时隙PS#1、PS#2和PS#3中的任意一个。由于将映射段xSEG#x临时存储在物理时隙3PS#3中,因此可以删除先前存储的映射段3SEG#3,其中x可以是自然数。在下文中,假设新映射段是映射段x SEG#x。
在将新映射段临时存储在易失性存储器装置300中之后,存储器控制器200可以基于临时存储在映射缓冲器320中的新映射段SEG#1、SEG#2和SEG#x获得与逻辑地址LA相对应的物理地址。将新映射段临时存储在易失性存储器装置300中可以被认为是映射加载。
图6是示出根据本公开的实施例的存储器控制器200的示图。
参照图5和图6,存储器控制器200可以包括映射高速缓存控制器210、映射缓冲器管理器220和映射管理器230。在实施例中,映射高速缓存控制器210可以生成时隙分配请求,并且可以向映射缓冲器管理器220提供时隙分配请求。时隙分配请求可以是请求分配映射缓冲器320的物理时隙PS#1、PS#2和PS#3之中的待存储第一映射段的物理时隙。
第一映射段可以包括从主机400提供的第一逻辑地址与第一物理地址之间的映射信息。参照图5,例如,第一逻辑地址可以是图5中的逻辑地址LA,并且第一映射段可以是映射段x SEG#x。
在一个实施例中,映射高速缓存控制器210可以生成释放请求。另外,映射高速缓存控制器210可以向映射缓冲器管理器220提供释放请求。
在实施例中,映射缓冲器管理器220可以响应于时隙分配请求而输出第一映射段、第一物理时隙信息和树时隙信息。第一物理时隙信息可以是指示待存储第一映射段(例如,映射段x SEG#x)的物理时隙(例如,物理时隙3PS#3)的物理时隙编号(例如,物理时隙编号3)的信息。
树时隙信息可以是指示映射树231的多个树时隙之中存储第一映射段和第一物理时隙信息的树时隙的树时隙编号的信息。
在一个实施例中,映射缓冲器管理器220可以响应于释放请求而向映射管理器230提供目标树时隙信息。目标树时隙信息可以是指示目标树时隙的树时隙编号的信息。目标树时隙可以是用于使映射段与物理时隙信息之间的映射关系无效的树时隙。
使映射段与物理时隙信息之间的映射关系无效可以包括将物理时隙信息处理为无意义的无效信息,例如无法识别的信息或虚设信息。在一个实施例中,使映射段与物理时隙信息之间的映射关系无效可以包括,例如使映射段无效。然而,本公开不限于此。使映射段与物理时隙信息之间的映射关系无效可以包括将树时隙断开链接。
映射缓冲器管理器220可以包括空闲树时隙管理器221和时隙分配控制器222。空闲树时隙管理器221可以管理空闲树时隙信息。空闲树时隙信息可以是指示空闲树时隙的树时隙编号的信息。空闲树时隙可以是映射树231的树时隙之中的存储与映射段的映射关系无效的物理时隙信息以及该映射段的树时隙。在一个实施例中,空闲树时隙可以是映射树231的树时隙之中的空树时隙,即未存储数据的树时隙。
当生成空闲树时隙时,空闲树时隙管理器221可以存储空闲树时隙信息。例如,空闲树时隙管理器221可以将空闲树时隙信息顺序地存储在空闲时隙队列中。
空闲树时隙管理器221可以将从映射高速缓存控制器210提供的第一映射段存储在空闲时隙队列中。空闲树时隙管理器221可以将从时隙分配控制器222提供的第一物理时隙信息存储在空闲时隙队列中。
空闲树时隙管理器221可以,例如根据空闲树时隙信息是否被存储,将空闲树时隙信息作为树时隙信息提供到映射管理器230。空闲树时隙管理器221可以将第一映射段和第一物理时隙信息以及空闲树时隙信息一起提供到映射管理器230。参照图7和图9描述实施例。
空闲树时隙管理器221可以将来自时隙分配控制器222的目标树时隙信息存储在空闲时隙队列中。另外,空闲树时隙管理器221可以将空闲时隙队列中存储的目标树时隙信息提供到映射管理器230。
时隙分配控制器222可以分配映射缓冲器320的物理时隙PS#1、PS#2和PS#3之中的待删除映射段的物理时隙。
时隙分配控制器222可以向空闲树时隙管理器221提供目标树时隙信息。参照图7描述实施例。
时隙分配控制器222可以分配映射缓冲器320的物理时隙PS#1、PS#2和PS#3之中的空物理时隙或待存储新映射段的物理时隙。
时隙分配控制器222可以向空闲树时隙管理器221提供第一物理时隙信息。参照图9描述实施例。
时隙分配控制器222可以包括树时隙和物理时隙之间的映射信息。时隙分配控制器222可以被实施为,例如物理存储器输入/输出芯片。
时隙分配控制器222可以根据最近最少使用(LRU)或先进先出(FIFO)策略来分配或释放物理时隙。
映射管理器230可以包括映射树231和散列表232。映射树231可以将映射段和物理时隙信息存储在每个树时隙中。散列表232可以存储最近被存储在映射树231中的映射段和物理时隙信息。参照图8和图10描述了映射树231和散列表232的实施例。
映射管理器230可以接收第一映射段、第一物理时隙信息和树时隙信息。在这种情况下,第二映射段和第二物理时隙信息可能被存储在具有由树时隙信息所指示的树时隙编号的树时隙中。
第二映射段可以是在由非易失性存储器装置100读取第一映射段之前临时存储在易失性存储器装置300中的映射段。参照图5,例如,当第一映射段是映射段x SEG#x时,第二映射段可以是映射段3SEG#3。
第二物理时隙信息可以是指示存储第二映射段的物理时隙的物理时隙编号的信息。参照图5,例如,第二物理时隙信息可以指示物理时隙3PS#3的物理时隙编号3。
在由映射管理器230接收到第一映射段、第一物理时隙信息和树时隙信息之前,可以使第二映射段和第二物理时隙信息之间的映射关系无效。例如,在由映射管理器230接收到第一映射段、第一物理时隙信息和树时隙信息之前,可以将具有由树时隙信息指示的树时隙编号的树时隙断开链接。
当第二映射段和第二物理时隙信息之间的映射关系被无效时(例如,当映射树231的树时隙之中不存在空闲树时隙时),在某些情况下,可以响应于来自映射高速缓存控制器210的释放请求而释放物理时隙。参照图7和图8描述实施例。
当第二映射段和第二物理时隙信息之间的映射关系无效时,映射管理器230可以删除第二映射段和第二物理时隙信息,然后可以将第一映射段和第一物理时隙信息存储在树时隙中。
当由映射管理器230接收到第一映射段、第一物理时隙信息和树时隙信息时,具有由树时隙信息指示的树时隙编号的树时隙可以是空的。在这种情况下,映射管理器230可以立即将第一映射段和第一物理时隙信息存储在该树时隙中。
映射管理器230可以接收目标树时隙信息。映射管理器230可以基于目标树时隙信息,使目标树时隙中存储的目标物理时隙与目标映射段之间的映射关系无效。参照图8描述实施例。
当第一映射段和第一物理时隙信息被存储在映射树231和散列表232中时,映射管理器230可以向映射高速缓存控制器210提供完成响应。
图7是示出获得空闲树时隙的实施例的示图。参照图7,空闲树时隙管理器221可以从映射高速缓存控制器210接收时隙分配请求NS_REQ和作为新映射段的映射段x SEG#x。映射段x SEG#x可以是,例如参照图6描述的第一映射段。
空闲树时隙管理器221可以确定是否先前存储了空闲树时隙信息。例如,空闲树时隙管理器221可以检查空闲树时隙信息是否存储在空闲时隙队列中。当空闲树时隙信息没有存储在空闲时隙队列中时,空闲树时隙管理器221可以向时隙分配控制器222提供目标树时隙请求TS_REQ。目标树时隙请求TS_REQ可以是请求提供目标树时隙信息的信号,该目标树时隙信息指示用于使映射关系无效的目标树时隙。
时隙分配控制器222可以响应于目标树时隙请求TS_REQ而向空闲树时隙管理器221提供目标树时隙信息TTS。例如,时隙分配控制器222可以参考包括物理时隙和树时隙之间的映射信息的映射表,将与待删除映射地址的物理时隙相对应的树时隙确定为目标树时隙,并且可以将目标树时隙的目标树时隙信息TTS提供到空闲树时隙管理器221。可以通过FIFO策略等来确定待删除映射地址的物理时隙。空闲树时隙管理器221可以向映射管理器230提供目标树时隙信息TTS。
图8是示出树时隙中存储的映射段与物理时隙信息之间的映射关系被无效的实施例的示图。在该实施例中,假设目标树时隙为树时隙7TS#7,目标树时隙中存储的目标映射段为第二映射段,第二映射段为上面参照图5描述的映射段3SEG#3,并且存储了第二映射段的物理时隙为存储了上面参照图5描述的映射段3SEG#3的物理时隙3PS#3。
参照图7和图8,映射管理器230可以包括映射树231和散列表232。映射树231可以包括多个树时隙TS#1至TS#7,并且映射树231的树时隙数量可以是如图8所示的七个,但不限于此。
映射树231的树时隙TS#1至TS#7之中的处于最高级别的树时隙可以被定义为“根”。例如,映射树231的树时隙TS#1至TS#7之中的树时隙1TS#1可以是根。
映射树231的树时隙TS#1至TS#7之中的处于最低级别的树时隙可以被定义为“叶”。例如,映射树231的树时隙TS#1至TS#7之中的树时隙4TS#4、树时隙5TS#5、树时隙6TS#6和树时隙7TS#7可以是叶。
在映射树231的树时隙TS#1至TS#7之中,除了叶之外的其余树时隙TS#1、TS#2和TS#3具有一个或多个分支。例如,树时隙3TS#3可以包括第一分支(或左分支)和第二分支(或右分支)。树时隙6TS#6可以连接到树时隙3TS#3的第一分支。树时隙6TS#6和树时隙7TS#7可以是树时隙3TS#3的子节点。
树时隙3TS#3可以包括第一分支(或左分支)和第二分支(或右分支)。树时隙6TS#6可以连接到树时隙3TS#3的第一分支。树时隙7TS#7可以连接到树时隙3TS#3的第二分支。
散列表232可以包括多个散列时隙HS#1至HS#3,并且可以针对多个散列时隙HS#1至HS#3中的每一个存储通过将关键码输入到散列函数而生成的值。在实施例中,散列表232中存储的值可以是最近被存储在映射树231中的映射地址和物理时隙信息。
在实施例中,映射管理器230可以基于目标树时隙信息TTS,使目标树时隙中存储的目标映射段与目标物理时隙之间的映射关系无效。例如,映射管理器230可以接收目标树时隙信息TTS,并且根据目标树时隙信息TTS检查出目标树时隙为树时隙7TS#7。树时隙7TS#7可以包括作为第二映射段的映射段3SEG#3以及物理时隙信息。树时隙7TS#7中存储的物理时隙信息可以包括指示物理时隙3PS#3的物理时隙编号的信息。映射管理器230可以将树时隙7TS#7中存储的物理时隙3PS#3的物理时隙编号处理为无效信息ff。
包括映射段3SEG#3和无效信息ff的树时隙7TS#7可以对应于空闲树时隙。在这种情况下,空闲树时隙管理器221可以存储指示树时隙7TS#7的空闲树时隙信息。
如上所述,不是删除目标树时隙中存储的映射段和物理时隙信息,而是使目标树时隙中存储的映射段和物理时隙信息之间的映射关系无效。因此,可以减少或消除由于删除操作而导致的执行读取操作的时间延迟。
图9是示出向空闲树时隙提供映射段、物理时隙信息和树时隙信息的实施例的示图。
参照图9,空闲树时隙管理器221可以从映射高速缓存控制器210接收时隙分配请求NS_REQ和作为新映射段的映射段x SEG#x。映射段x SEG#x可以是,例如参照图6描述的第一映射段。
空闲树时隙管理器221可以检查空闲树时隙信息是否被存储在空闲时隙队列中。例如,参照图7和图8所描述的,可以生成空闲树时隙信息。在一个实施例中,可以预先存储空闲树时隙信息。在一个实施例中,例如参照图12所描述的,可以在执行根据释放请求的释放操作之后生成空闲树时隙信息。
当空闲树时隙信息被存储在空闲时隙队列中时,空闲树时隙管理器221可以将所存储的空闲树时隙信息FTS提供到时隙分配控制器222。
时隙分配控制器222可以接收空闲树时隙信息FTS。时隙分配控制器222可以根据空闲树时隙信息FTS检查空闲树时隙。时隙分配控制器222可以分配与空闲树时隙相对应的物理时隙。时隙分配控制器222可以向空闲树时隙管理器221提供指示所分配的物理时隙的物理时隙编号的物理时隙信息PS。物理时隙信息PS可以是,例如参照图6描述的第一物理时隙信息。
空闲树时隙管理器221可以接收物理时隙信息PS。空闲树时隙管理器221可以将空闲树时隙信息FTS作为树时隙信息提供到映射管理器230。另外,空闲树时隙管理器221可以将映射段x SEG#x和物理时隙信息PS以及空闲树时隙信息FTS一起提供到映射管理器230。
在实施例中,空闲树时隙信息FTS可以是指示,例如参照图8的树时隙7TS#7的信息。例如,空闲树时隙信息FTS可以是,例如参照图7和图8所描述的目标树时隙信息TTS。在这种情况下,空闲树时隙管理器221可以在目标树时隙中存储的目标物理时隙与目标映射段之间的映射关系被无效之后,将目标树时隙信息TTS提供到时隙分配控制器222。
时隙分配控制器222可以响应于目标树时隙信息TTS而向空闲树时隙管理器221提供第一物理时隙信息。空闲树时隙管理器221可以将从时隙分配控制器222提供的第一物理时隙信息提供到映射管理器230,并且将目标树时隙信息TTS(或空闲树时隙信息FTS)和第一映射段提供到映射管理器230。
图10是示出存储映射段和物理时隙信息的实施例的示图。在该实施例中,假设空闲树时隙为树时隙7TS#7,新映射段(例如,第一映射段)为映射段10SEG#10,物理时隙信息PS是作为第一物理时隙信息的指示物理时隙3PS#3的信息,空闲树时隙中存储的映射段为第二映射段,第二映射段为映射段3SEG#3,并且无效信息ff存储在空闲树时隙中。
参照图9和图10,在实施例中,映射管理器230可以接收空闲树时隙信息FTS、物理时隙信息PS和映射段10SEG#10。映射管理器230可以根据空闲树时隙信息FTS来检查空闲树时隙是否为树时隙7TS#7。
映射管理器230可以删除映射树231的树时隙7TS#7中存储的无效信息ff和映射段3SEG#3。在映射树231的树时隙7TS#7中存储的无效信息ff和映射段3SEG#3被删除之后,映射管理器230可以将映射段10SEG#10和物理时隙信息PS存储在映射树231的树时隙7TS#7中。
映射段10SEG#10和物理时隙信息PS可以是最近被存储在映射树231中的映射段和物理时隙信息。在这种情况下,映射管理器230可以将映射段10SEG#10和物理时隙信息PS存储在散列表232中。例如,映射段10SEG#10和物理时隙信息PS可以被存储在散列表232的散列时隙1HS#1中。然而,本公开不限于此。
当映射段10SEG#10和物理时隙信息PS存储在散列表232中时,映射管理器230可以向映射高速缓存控制器210提供完成响应。映射高速缓存控制器210可以通过搜索映射管理器230中存储的映射树231和散列表232来获得与从主机400提供的逻辑地址相对应的物理地址。
图11是示出在映射管理器中搜索与从主机提供的逻辑地址相对应的物理地址的实施例的示图。
参照图11,响应于主机400的读取请求,映射高速缓存控制器210可以在映射管理器230中搜索与从主机400提供的逻辑地址相对应的物理地址。另外,映射高速缓存控制器210可以向非易失性存储器装置100提供搜索到的物理地址以及指示对搜索到的物理地址执行读取操作的读取命令。
在实施例中,映射高速缓存控制器210可以首先(第一次)针对与从主机400提供的逻辑地址相对应的物理地址在散列表232中进行搜索。散列表232可以存储最近加载的映射段和物理时隙信息。例如,映射高速缓存控制器210可以将从主机400提供的逻辑地址作为关键码输入到散列表232的散列函数。映射高速缓存控制器210可以获得与从主机400提供的逻辑地址相对应的散列。映射高速缓存控制器210可以检查包括从主机400提供的逻辑地址的映射段是否存储在与该散列相对应的散列时隙中。
在实施例中,当在散列表232中没有搜索到与来自主机400的逻辑地址相对应的物理地址时,映射高速缓存控制器210可以再次(第二次)针对与来自主机400的逻辑地址相对应的物理地址在映射树231中进行搜索。
连接到映射树231的父节点的第一分支的子节点中存储的映射段的数量可以小于父节点中存储的映射段的数量。连接到映射树231的父节点的第二分支的子节点中存储的映射段的数量可以大于父节点中存储的映射段的数量。例如,树时隙1TS#1中存储的映射段的数量可以大于树时隙2TS#2中存储的映射段的数量,并且可以小于树时隙3TS#3中存储的映射段的数量。在一个实施例中,树时隙3TS#3中存储的映射段的数量可以大于树时隙6TS#6中存储的映射段的数量,并且可以小于树时隙7TS#7中存储的映射段10SEG#10的数量(例如,10)。
在一个实施例中,映射高速缓存控制器210可以检查与从主机400提供的逻辑地址相对应的物理地址是否在树时隙1TS#1中存储的映射段中。当与从主机400提供的逻辑地址相对应的物理地址不在树时隙1TS#1中存储的映射段中时,映射高速缓存控制器210可以检查与从主机400提供的逻辑地址相对应的物理地址是否在树时隙2TS#2中存储的映射段或树时隙3TS#3中存储的映射段中。
当包括从主机400提供的逻辑地址与物理地址之间的映射信息的映射段的数量小于树时隙1TS#1中存储的映射段的数量时,映射高速缓存控制器210可以搜索树时隙2TS#2,并且省略对树时隙3TS#3、树时隙6TS#6和树时隙7TS#7的搜索操作。
当包括从主机400提供的逻辑地址与物理地址之间的映射信息的映射段的数量大于树时隙1TS#1中存储的映射段的数量时,映射高速缓存控制器210可以搜索树时隙3TS#3,并且省略对树时隙2TS#2、树时隙4TS#4和树时隙5TS#5的搜索操作。
当在散列表232和映射树231中没有搜索到与从主机400提供的逻辑地址相对应的物理地址时,映射高速缓存控制器210可以控制非易失性存储器装置100以获得新映射段,该新映射段包括逻辑地址与物理地址之间的映射信息。
如上所述,通过使用具有相对较快搜索速度的散列表以及不会发生散列冲突的映射树来获得与从主机400提供的逻辑地址相对应的物理地址,可以提高读取操作的性能。
图12是示出释放树时隙中存储的物理时隙信息和映射段的实施例的示图。
参照图12,映射高速缓存控制器210可以生成释放请求REL_REQ。释放请求REL_REQ可以是请求释放物理时隙中存储的映射段的信号。映射高速缓存控制器210可以向映射缓冲器管理器220提供释放请求REL_REQ。
映射缓冲器管理器220可以响应于释放请求REL_REQ而向映射管理器230提供指示用于使映射关系无效的目标树时隙的目标树时隙信息。例如,空闲树时隙管理器221可以从映射高速缓存控制器210接收释放请求REL_REQ。空闲树时隙管理器221可以向时隙分配控制器222提供数量信息NUM,该数量信息NUM是指示用于使映射关系无效的目标时隙的数量的信息。
时隙分配控制器222可以响应于数量信息NUM而向空闲树时隙管理器221提供目标树时隙信息TTS。在这种情况下,目标树时隙信息TTS可以指示目标树时隙的树时隙编号。当存在多个目标树时隙时,目标树时隙信息TTS可以指示每个目标树时隙的所有树时隙编号。
空闲树时隙管理器221可以向映射管理器230提供目标树时隙信息TTS。映射管理器230可以基于目标树时隙信息TTS,使目标树时隙中存储的目标物理时隙与目标映射段之间的映射关系无效。参照图7和图8描述实施例。
图13是示出操作存储器控制器的方法的实施例的示图。
参照图13,该方法包括,在S110,映射高速缓存控制器210向映射缓冲器管理器220提供时隙分配请求NS_REQ和新映射段(例如,映射段x SEG#x)。参照图7或图9描述了实施例。
在S120,映射缓冲器管理器220检查映射管理器230中的映射树231的多个树时隙之中是否存在空闲树时隙。参照图7描述了实施例。
在S130,当不存在空闲树时隙(S120,否)时,映射缓冲器管理器220向映射管理器230提供指示待断开链接的树时隙的树时隙信息。指示待断开链接的树时隙的树时隙信息可以是,例如参照图7或图12描述的目标树时隙信息TTS。
在S140,映射管理器230使用指示待断开链接的树时隙的树时隙信息来将相应树时隙断开链接。将树时隙断开链接可以使树时隙中存储的映射段与上述物理时隙信息PS之间的映射关系无效。例如,将树时隙断开链接可以是将物理时隙信息PS更改为无效信息ff。操作S150可以在操作S140之后执行。
在S150,当存在空闲树时隙(S120,是)时,映射缓冲器管理器220向映射管理器230提供新映射段、空闲树时隙信息FTS和物理时隙信息PS,参照图9描述了实施例。
在S160,映射管理器230从映射树231中删除断开链接的树时隙中存储的物理时隙信息PS和旧映射段。例如,映射管理器230可以删除根据空闲树时隙信息FTS而获得的空闲树时隙中存储的无效信息ff和映射段。参照图10描述了实施例。
在S170,映射管理器230将新映射段和物理时隙信息PS存储在映射树231中。
在S180,映射管理器230将新映射段和物理时隙信息PS存储在散列表232中。参照图10描述了实施例。
在S190,映射管理器230向映射高速缓存控制器210提供完成响应。
图14是示出存储器控制器200的实施例的示图,存储器控制器200可以包括处理器201、RAM 202、错误校正电路203、主机接口204、ROM 205和闪存接口206。处理器201可以控制存储器控制器200的全部操作。RAM 202可以用作存储器控制器200的缓冲存储器、高速缓存存储器、操作存储器等。例如,RAM 202可以是缓冲存储器。
错误校正电路203可以生成用于校正从非易失性存储器装置100接收的数据的失败位或错误位的错误校正码(ECC)。错误校正电路203可以对提供到非易失性存储器装置100的数据执行错误校正编码,以生成添加了奇偶校验位的数据。奇偶校验位可以存储在非易失性存储器装置100中。
错误校正电路203可以对从非易失性存储器装置100输出的数据执行错误校正解码。此时,错误校正电路203可以使用奇偶校验来校正错误。例如,错误校正电路203可以使用诸如LDPC码、BCH码、turbo码、里德-所罗门(Reed-Solomon)码、卷积码、RSC、TCM和BCM的各种编码调制来校正错误。
错误校正电路203可以计算在编程操作中待编程到非易失性存储器装置100的数据的错误校正码值。错误校正电路203可以基于错误校正码值,对在读取操作中从非易失性存储器装置100读取的数据执行错误校正操作。错误校正电路203可以对在失败数据的恢复操作中从非易失性存储器装置100恢复的数据执行错误校正操作。
存储器控制器200可以通过主机接口204与外部装置(例如,主机400、应用处理器等)通信。
ROM 205可以以固件形式存储操作存储器控制器200所需的各种信息。
存储器控制器200可以通过闪存接口206与非易失性存储器装置100通信。存储器控制器200可以通过闪存接口206将命令CMD、地址ADDR、控制信号CTRL等传输到非易失性存储器装置100并接收数据。例如,闪存接口206可以包括NAND接口。
图15是示出存储卡系统2000的实施例的框图,存储卡系统2000可以包括存储器装置2100、存储器控制器2200和连接器2300。
存储器装置2100可以由各种非易失性存储器配置。示例包括电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)和自旋转移扭矩磁阻RAM(STT-MRAM)。
存储器控制器2200被配置为访问存储器装置2100。例如,存储器控制器2200可以被配置为控制存储器装置2100的读取操作、写入操作、擦除操作和后台操作。存储器控制器2200被配置为用作存储器装置2100与主机400之间的接口。存储器控制器2200被配置为驱动固件或其它指令,以控制存储器装置2100。存储器控制器2200可以对应于,例如图1的存储器控制器200。
例如,存储器控制器2200可以包括诸如随机存取存储器(RAM)、处理器、主机接口、存储器接口和错误校正电路的组件。存储器控制器2200可以通过连接器2300与外部装置通信。存储器控制器2200可以根据通信标准与外部装置(例如,主机400)通信。例如,存储器控制器2200被配置为通过诸如以下的各种通信标准中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和NVMe。例如,连接器2300可以由上述各种通信标准中的至少一种定义。
存储器装置2100和存储器控制器2200可以被集成到一个半导体装置中以配置存储卡。例如,存储器控制器2200和存储器装置2100可以被集成到一个半导体装置中以配置诸如以下的存储卡:PC卡(个人计算机存储卡国际协会(PCMCIA))、紧凑型闪存卡、智能媒体卡(SM或SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC或eMMC)、SD卡(SD、迷你SD、微型SD或SDHC)和通用闪存(UFS)。
图16是示出包括主机400和SSD 3000的固态驱动器(SSD)系统的实施例的框图。SSD 3000通过信号连接器3001与主机400交换信号SIG,并且通过电源连接器3002接收电力PWR。SSD 3000包括SSD控制器3200、多个闪速存储器3100_1、3100_2至3100_n、辅助电源装置3300和缓冲存储器3400。
根据实施例,SSD控制器3200可以执行参照图1描述的存储器控制器200的功能。SSD控制器3200可以响应于从主机400接收的信号SIG而控制闪速存储器3100_1、3100_2和3100_n。例如,信号SIG可以是基于主机400和SSD 3000之间的接口的信号。例如,信号SIG可以是由诸如以下的接口中的至少一种定义的信号:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和NVMe。
辅助电源装置3300通过电源连接器3002连接到主机400,可以从主机400接收电力PWR,并且可以使用电力PWR来执行充电操作。例如,当来自主机400的电力供应不平稳时,辅助电源装置3300可以提供SSD 3000的电力。例如,辅助电源装置3300可以在SSD 3000中,或者可以位于SSD 3000外部并联接到SSD 3000。例如,辅助电源装置3300可以位于主板上并且可以向SSD 3000提供辅助电力。
缓冲存储器3400可以临时存储,例如从主机400和/或闪速存储器3100_1、3100_2和3100_n接收的数据。缓冲存储器3400可以临时存储闪速存储器3100_1、3100_2和3100_n的元数据(例如,映射表)。缓冲存储器3400可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDRSDRAM和GRAM的易失性存储器,或者诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器。
图17是示出可以应用根据本文描述的实施例的存储装置的用户系统4000的实施例的框图。
参照图17,用户系统4000包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以驱动用户系统4000中的组件、操作系统(OS)、用户程序等。例如,应用处理器4100可以包括控制用户系统4000中的组件的控制器、接口、图形引擎等。应用处理器4100可以被设置为片上系统(SoC)。
存储器模块4200可以作为用户系统4000的主存储器、操作存储器、缓冲存储器或高速缓存存储器而操作。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2SDRAM、DDR3SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和LPDDR3 SDRAM的易失性随机存取存储器,或者诸如PRAM、ReRAM、MRAM和FRAM的非易失性随机存取存储器。例如,应用处理器4100和存储器模块4200可以基于堆叠封装(POP)进行封装并被设置为一个半导体封装。
网络模块4300可以与外部装置通信。例如,网络模块4300可以支持诸如以下的无线通信:码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进、Wimax、WLAN、UWB、蓝牙和Wi-Fi。例如,网络模块4300可以被包括在应用处理器4100中。
存储模块4400可以存储,例如从应用处理器4100接收的数据。在一个实施例中,存储模块4400可以将存储模块4400中存储的数据传输到应用处理器4100。例如,存储模块4400可以利用诸如以下的非易失性半导体存储器元件来实施:相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪存、NOR闪存和三维NAND闪存。例如,存储模块4400可以被设置为可移动存储装置(可移动驱动器),诸如用户系统4000的存储卡和外部驱动器。
存储模块4400可以,例如以与参照图1描述的存储装置1000相同的方式操作。存储模块4400可以包括多个非易失性存储器装置,这些非易失性存储器装置,例如以与参照图1描述的非易失性存储器装置100相同的方式操作。
用户接口4500可以包括用于向应用处理器4100输入数据或指令或者用于向外部装置输出数据的接口。例如,用户接口4500可以包括用户输入接口,诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和压电元件。用户接口4500可以包括用户输出接口,诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监控器。
Claims (20)
1.一种存储器控制器,包括:
映射高速缓存控制器,生成时隙分配请求以分配多个物理时隙之中的物理时隙,所分配的物理时隙存储包括第一逻辑地址和存储器装置的第一物理地址之间的映射信息的第一映射段;
映射缓冲器管理器,响应于所述时隙分配请求,输出所述第一映射段、指示所述物理时隙的第一物理时隙信息以及指示与所述第一映射段相对应的树时隙的树时隙信息;以及
映射管理器,包括映射树,所述映射树包括多个树时隙,所述映射管理器基于所述树时隙信息将所述第一映射段和所述第一物理时隙信息存储在所述多个树时隙之中的树时隙中,其中:
当第二映射段和第二物理时隙信息存储在所述树时隙中时,所述映射管理器删除所述第二映射段和所述第二物理时隙信息,并且将所述第一映射段和所述第一物理时隙信息存储在所述树时隙中,
所述第二物理时隙信息指示存储所述第二映射段的物理时隙,并且
所述树时隙中存储的所述第二映射段和所述第二物理时隙信息中的至少一个是无效的。
2.根据权利要求1所述的存储器控制器,其中所述映射缓冲器管理器包括:
空闲树时隙管理器,根据是否存储了空闲树时隙信息而将所述空闲树时隙信息作为所述树时隙信息提供到所述映射管理器,所述空闲树时隙信息指示所述多个树时隙之中的空闲树时隙;以及
时隙分配控制器,将所述第一物理时隙信息提供到所述空闲树时隙管理器,并且
所述空闲树时隙是空树时隙,或者是存储映射段以及与所述映射段的映射关系无效的物理时隙信息的树时隙。
3.根据权利要求2所述的存储器控制器,其中:
所述空闲树时隙管理器在所述空闲树时隙信息被存储时将所述空闲树时隙信息提供到所述时隙分配控制器,将从所述时隙分配控制器提供的所述第一物理时隙信息提供到所述映射管理器,并且将所述第一映射段提供到所述映射管理器,并且
所述空闲树时隙存储所述第二映射段和所述第二物理时隙信息。
4.根据权利要求2所述的存储器控制器,其中所述空闲树时隙管理器:
在所述空闲树时隙信息没有被存储时,提供目标树时隙请求,所述目标树时隙请求请求将指示使所述映射关系无效的目标树时隙的目标树时隙信息提供到所述时隙分配控制器,
将来自所述时隙分配控制器的目标树时隙信息存储为所述空闲树时隙信息,并且
将所存储的目标树时隙信息提供到所述映射管理器。
5.根据权利要求4所述的存储器控制器,其中所述映射管理器基于所述目标树时隙信息,使所述目标树时隙中存储的目标映射段和目标物理时隙之间的映射关系无效。
6.根据权利要求5所述的存储器控制器,其中所述空闲树时隙管理器:
在所述目标树时隙中存储的所述目标映射段和所述目标物理时隙之间的映射关系被无效之后,将所存储的目标树时隙信息作为所述空闲树时隙信息提供到所述时隙分配控制器,
将来自所述时隙分配控制器的所述第一物理时隙信息提供到所述映射管理器,
将所存储的目标树时隙信息作为所述树时隙信息提供到所述映射管理器,并且
将所述第一映射段提供到所述映射管理器,其中所述目标映射段是所述第二映射段。
7.根据权利要求1所述的存储器控制器,其中所述映射管理器进一步包括散列表,所述映射管理器将所述树时隙中存储的所述第一映射段和所述第一物理时隙信息存储在所述散列表中。
8.根据权利要求7所述的存储器控制器,其中所述散列表存储最近加载的映射段以及指示存储所述最近加载的映射段的物理时隙的物理时隙信息。
9.根据权利要求7所述的存储器控制器,其中所述映射管理器在所述第一映射段和所述第一物理时隙信息被存储在所述散列表中时,将完成响应提供到所述映射高速缓存控制器。
10.根据权利要求1所述的存储器控制器,其中:
所述映射高速缓存控制器生成请求释放所述物理时隙中存储的映射段的释放请求,
所述映射缓冲器管理器将指示使映射关系无效的目标树时隙的目标树时隙信息提供到所述映射管理器,并且
所述映射管理器基于所述目标树时隙信息,使所述目标树时隙中存储的目标映射段与目标物理时隙之间的映射关系无效,其中所述目标映射段是所述第二映射段。
11.一种存储器控制器,包括:
映射管理器,包括映射树和散列表,所述映射树包括多个树时隙,所述多个树时隙存储非易失性存储器装置中存储的多个映射段中的一些映射段以及物理时隙信息,所述物理时隙信息指示易失性存储器装置中的、存储了所述一些映射段的多个物理时隙,并且所述散列表存储所述一些映射段之中的最近存储在所述映射树中的至少一个映射段以及指示存储所述至少一个映射段的物理时隙的物理时隙信息;以及
映射高速缓存控制器,响应于读取请求,搜索与逻辑地址相对应的物理地址,并且将搜索到的物理地址以及指示对所述搜索到的物理地址执行读取操作的读取命令提供到所述非易失性存储器装置,其中所述多个映射段包括逻辑地址和物理地址之间的映射信息。
12.根据权利要求11所述的存储器控制器,其中所述映射树包括:
第一树时隙,存储第一映射段以及指示存储了所述第一映射段的物理时隙的第一物理时隙信息;
第二树时隙,连接到所述第一树时隙的第一分支,并且存储第二映射段以及指示存储了所述第二映射段的物理时隙的第二物理时隙信息,所述第二映射段的数量小于所述第一映射段的数量;以及
第三树时隙,连接到所述第一树时隙的第二分支,并且存储第三映射段以及指示存储了所述第三映射段的物理时隙的第三物理时隙信息,所述第三映射段的数量大于所述第一映射段的数量。
13.根据权利要求12所述的存储器控制器,其中所述映射高速缓存控制器:
检查与所述逻辑地址相对应的物理地址是否在所述第一映射段中,并且
在与所述逻辑地址相对应的物理地址不在所述第一映射段中时,检查与所述逻辑地址相对应的物理地址是否在所述第二映射段中或者所述第三映射段中。
14.根据权利要求11所述的存储器控制器,其中所述映射高速缓存控制器:
在所述散列表中搜索与所述逻辑地址相对应的物理地址,并且
当在所述散列表中没有搜索到与所述逻辑地址相对应的物理地址时,在所述映射树中搜索与所述逻辑地址相对应的物理地址。
15.根据权利要求14所述的存储器控制器,其中所述映射高速缓存控制器在所述散列表和所述映射树中没有搜索到与所述逻辑地址相对应的物理地址时,控制所述非易失性存储器装置以获得包括与所述逻辑地址相对应的映射信息的新映射段。
16.一种存储装置,包括:
非易失性存储器装置,存储包括逻辑地址和物理地址之间的映射信息的多个映射段;
易失性存储器装置,将所述多个映射段之中的一些映射段存储在多个物理时隙中;以及
存储器控制器,响应于读取请求,控制所述非易失性存储器装置对与第一逻辑地址相对应的第一物理地址执行读取操作,其中所述存储器控制器包括:
映射树,包括多个树时隙,所述多个树时隙存储指示所述多个物理时隙的物理时隙信息和所述一些映射段,以及
散列表,存储所述一些映射段之中的最近被存储在所述映射树中的至少一个映射段以及指示存储所述至少一个映射段的物理时隙的物理时隙信息,并且
其中所述存储器控制器在所述散列表中搜索所述第一物理地址,并且当在所述散列表中没有搜索到所述第一物理地址时,在所述映射树中搜索所述第一物理地址。
17.根据权利要求16所述的存储装置,其中所述存储器控制器包括:
映射高速缓存控制器:
当在所述映射树中没有搜索到所述第一物理地址时,控制所述非易失性存储器装置以获得第一映射段,所述第一映射段包括所述第一逻辑地址和所述第一物理地址之间的映射信息,并且
生成时隙分配请求,以分配所述多个物理时隙之中的待存储所述第一映射段的物理时隙;
映射缓冲器管理器,响应于所述时隙分配请求,输出所述第一映射段、指示所述物理时隙的第一物理时隙信息以及指示待存储所述第一映射段和所述第一物理时隙信息的树时隙的树时隙信息;以及
映射管理器,接收所述第一映射段、所述第一物理时隙信息和所述树时隙信息,并且将所述第一映射段和所述第一物理时隙信息存储在所述多个树时隙之中的所述树时隙中。
18.根据权利要求17所述的存储装置,其中:
当所述树时隙中存储的第二映射段和第二物理时隙信息之间的映射关系无效时,所述映射管理器删除所述第二映射段和所述第二物理时隙信息,并且将所述第一映射段和所述第一物理时隙信息存储在所述树时隙中,并且
所述第二物理时隙信息指示存储了所述第二映射段的物理时隙。
19.根据权利要求18所述的存储装置,其中:
当所述第一映射段和所述第一物理时隙信息被存储在所述树时隙中时,所述映射管理器将所述树时隙中存储的所述第一映射段和所述第一物理时隙信息存储在所述散列表中。
20.根据权利要求17所述的存储装置,其中:
所述映射高速缓存控制器生成请求释放所述物理时隙中存储的映射段的释放请求,
所述映射缓冲器管理器将指示使映射关系无效的目标树时隙的目标树时隙信息提供到所述映射管理器,并且
所述映射管理器基于所述目标树时隙信息,使所述目标树时隙中存储的目标映射段和目标物理时隙之间的映射关系无效。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2021-0014970 | 2021-02-02 | ||
KR1020210014970A KR20220111566A (ko) | 2021-02-02 | 2021-02-02 | 메모리 컨트롤러 및 이를 포함하는 저장 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114840443A true CN114840443A (zh) | 2022-08-02 |
Family
ID=82561699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111077740.1A Withdrawn CN114840443A (zh) | 2021-02-02 | 2021-09-15 | 存储器控制器及包括存储器控制器的存储装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11487662B2 (zh) |
KR (1) | KR20220111566A (zh) |
CN (1) | CN114840443A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI814625B (zh) * | 2022-10-27 | 2023-09-01 | 慧榮科技股份有限公司 | 資料儲存裝置與寫入緩存器管理方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7036043B2 (en) * | 2001-12-28 | 2006-04-25 | Storage Technology Corporation | Data management with virtual recovery mapping and backward moves |
KR101533744B1 (ko) | 2008-10-16 | 2015-07-10 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그것의 플래시 변환 계층 설계 방법 |
US8812816B2 (en) * | 2010-03-23 | 2014-08-19 | Apple Inc. | Garbage collection schemes for index block |
US9483413B2 (en) | 2014-10-24 | 2016-11-01 | Samsung Electronics Co., Ltd. | Nonvolatile memory devices and methods of controlling the same |
-
2021
- 2021-02-02 KR KR1020210014970A patent/KR20220111566A/ko unknown
- 2021-07-14 US US17/375,472 patent/US11487662B2/en active Active
- 2021-09-15 CN CN202111077740.1A patent/CN114840443A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
KR20220111566A (ko) | 2022-08-09 |
US11487662B2 (en) | 2022-11-01 |
US20220245064A1 (en) | 2022-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11853202B2 (en) | Memory system performing garbage collection operation by exchanging information related to garbage collection with host and method of operating the memory system | |
CN112905502A (zh) | 存储装置及其操作方法 | |
CN114003166A (zh) | 数据存储装置及其操作方法 | |
CN114078543A (zh) | 存储器控制器及其操作方法 | |
CN114860622A (zh) | 存储装置及操作存储装置的方法 | |
US10936484B2 (en) | Memory system and operating method thereof | |
US11726683B2 (en) | Storage system and operating method for moving data between storage devices thereof | |
CN115793959A (zh) | 主机装置、存储器控制器及包括它们的计算系统 | |
US11734167B2 (en) | Storage device and method for updating meta slice including map chunks stored in nonvolatile memory device according to journal entries | |
US20220113900A1 (en) | Storage device and method of operating the same | |
US11487662B2 (en) | Memory controller and storage device including the same | |
CN113299332A (zh) | 存储器控制器及其操作方法 | |
US11755492B2 (en) | Storage device and operating method thereof | |
US11474723B2 (en) | Storage device and operating method thereof | |
US11561712B2 (en) | Storage device and method of operating the same | |
US11544184B2 (en) | Storage device and method of operating the same for processing a trim request of host | |
US11625324B2 (en) | Storage device for moving valid data to an open memory block based on a valid page list and operating method thereof | |
US20230418513A1 (en) | Storage device and method of operating the storage device | |
US11537515B2 (en) | Reordering a descriptor queue while searching the queue of descriptors corresponding to map segments | |
US11841795B2 (en) | Storage device for setting a flag in a mapping table according to a sequence number and operating method thereof | |
CN114512168A (zh) | 存储装置及操作存储装置的方法 | |
CN115132252A (zh) | 存储装置及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20220802 |