CN112860179A - 控制器和具有控制器的存储器系统 - Google Patents
控制器和具有控制器的存储器系统 Download PDFInfo
- Publication number
- CN112860179A CN112860179A CN202010704302.2A CN202010704302A CN112860179A CN 112860179 A CN112860179 A CN 112860179A CN 202010704302 A CN202010704302 A CN 202010704302A CN 112860179 A CN112860179 A CN 112860179A
- Authority
- CN
- China
- Prior art keywords
- logical
- logical unit
- controller
- memory
- area
- 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/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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/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/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/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- 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)
- Software Systems (AREA)
- Memory System (AREA)
Abstract
提供了控制器和具有该控制器的存储器系统。所述控制器包括:第一存储区,被配置为存储耦合到控制器的存储装置的逻辑区域的逻辑地址与存储装置的存储器块的物理地址之间的映射信息,逻辑区域被划分为包括第一逻辑单位的逻辑单位;以及第二存储区,被配置为存储关于分配到第一逻辑单位的逻辑区域的逻辑地址的分配信息,分配到第一逻辑单位的逻辑区域中的每个逻辑区域具有对应的索引,其中第二存储区还被配置为存储位置表,位置表包括关于与分配到第一逻辑单位的逻辑区域相对应的索引之中的最小索引的索引信息和关于分配到第一逻辑单位的逻辑区域的总数目的数目信息。
Description
相关申请的交叉引用
本专利文件要求于2019年11月28日提交的韩国专利申请号10-2019-0155958的优先权,其出于所有目的通过引用以其整体并入本文。
技术领域
本公开一般地涉及控制器和具有该控制器的存储器系统。在一些实施方式中,控制器被配置为管理存储器系统的分配表。
背景技术
存储器系统可以包括被配置为存储数据的存储装置和被配置为在主机与存储装置之间通信的控制器。
存储器装置可以包括易失性或非易失性存储器装置。易失性存储器装置是仅在通电时才能保留其数据的装置。因此,易失性存储器装置在没有电源的情况下丢失其数据。非易失性存储器装置是即使没有电源也可以保留其数据的装置。近来,随着便携式电子装置已经在各种领域中使用,对非易失性半导体存储器装置的需求已经增加。
控制器可以控制主机与存储器装置之间的数据通信。例如,控制器可以响应于来自主机的请求来控制存储器装置。而且,控制器可以在没有来自主机的任何请求的情况下执行后台操作,以便提高存储器系统的性能。
主机可以通过使用诸如外围部件互连快速(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA),或串行附接SCSI(SAS)之类的接口协议通过控制器来与存储器装置进行通信。主机与存储器系统之间的接口协议不限于上述示例,并且可以包括诸如通用串行总线(USB)、多媒体卡(MMC)、增强型小磁盘接口(ESDI)和集成驱动电子装置(IDE)之类的各种接口。
发明内容
所公开技术的各种实施例涉及能够简化分配表的管理的控制器以及具有该控制器的存储器系统。
根据本公开的一个方面,第一存储区被配置为存储耦合到控制器的存储装置的逻辑区域的逻辑地址与存储装置的存储器块的物理地址之间的映射信息,逻辑区域被划分为包括第一逻辑单位的逻辑单位;以及第二存储区被配置为存储关于分配到第一逻辑单位的逻辑区域的逻辑地址的分配信息,分配到第一逻辑单位的逻辑区域中的每个逻辑区域具有对应的索引,并且其中第二存储区还被配置为存储位置表,位置表包括关于与分配到第一逻辑单位的逻辑区域相对应的索引之中的最小索引的索引信息和关于分配到第一逻辑单位的逻辑区域的总数目的数目信息。
根据本公开的另一方面,提供了一种存储器系统,包括:存储器装置,其包括存储数据的存储器块;以及控制器,其耦合到存储器装置,并且被配置为使用通过将存储器装置的总容量划分为逻辑单位而获得的逻辑区域来控制存储器装置,其中控制器包括:存储区域,其被配置为存储逻辑区域的逻辑地址与存储器块的物理地址之间的映射信息;接口区域,其被配置为存储关于分配到每个逻辑单位的逻辑区域的逻辑地址的分配信息,并且还存储关于与对应的逻辑单位开始的逻辑区域相对应的索引的索引信息以及关于分配到每个逻辑单位的逻辑区域的总数目的总数目信息;以及处理区域,其被配置为响应于来自耦合到控制器的主机的请求,控制逻辑单位中的至少一个逻辑单位的分配或释放。
附图说明
现在将在下文中参考附图描述示例实施例;然而,它们可以以不同的形式体现,并且不应被解释为限于本文阐述的实施例。
图1是图示根据所公开的技术的实施例的存储器系统的示例图。
图2A至图2C是图示被分配到存储装置的命名空间的示例图。
图3是图示根据所公开的技术的实施例的控制器的示例图。
图4是图示逻辑块地址表的示例图。
图5A和图5B是图示根据所公开的技术的实施例的分配表的管理方法的示例图。
图6是图示根据所公开的技术的另一实施例的主机接口的示例图。
图7是图示图6所示的分配表的管理方法的示例图。
图8A和图8B是图示基于所公开的技术的实施方式来释放命名空间的方法的示例图。
图9A和图9B是图示基于所公开的技术的实施方式来分配命名空间的方法的示例图。
图10是图示包括图1所示的控制器的存储器系统的另一实施例的示例图。
图11是图示包括图1所示的控制器的存储器系统的另一实施例的示例图。
具体实施方式
在本公开中,在阅读以下结合附图的示例性实施例之后,优点、特征和用于实现它们的方法将变得更加明显。然而,本公开可以以不同的形式体现,并且不应被解释为限于本文阐述的实施例。
图1是图示根据所公开的技术的实施例的存储器系统的图。
参照图1,电子装置10000可以包括存储器系统1000和主机2000。
存储器系统1000可以包括被配置为存储数据的存储装置1100和被配置为在存储装置1100与主机2000之间通信的控制器1200。
存储装置1100可以包括多个存储器装置M11至Mki(k和i是正整数)。例如,存储器装置M11至Mki可以利用当供电中断时所存储的数据消失的易失性存储器装置实现,或者利用即使当供电中断时也保留所存储的数据的非易失性存储器装置实现。在以下实施例中,将以利用非易失性存储器装置实现的存储器装置M11至Mki作为示例进行描述。例如,非易失性存储器装置可以是NAND闪存装置。
存储器装置M11至Mki可以通过多个通道CH1至CHk(k是正整数)耦合到控制器1200。例如,第11存储器装置M11至第1i存储器装置M1i可以耦合到第一通道CH1,第21存储器装置M21至第2i存储器装置M2i可以耦合到第二通道CH2,并且第k1存储器装置Mk1至第ki存储器装置Mki可以耦合到第k通道CHk。耦合到不同通道CH1至CHk的第一存储器装置M11至第i存储器装置Mki是物理上不同的装置,因此存储器装置M11至Mki的物理地址彼此不同。
控制器1200可以在主机2000和存储装置1100之间通信。例如,控制器1200可以响应于来自主机2000的请求来访问存储装置1100,或者可以访问存储装置1100以执行后台操作。
根据本实施例的控制器1200可以针对作为逻辑单位的每个命名空间单位来管理多个存储器装置M11至Mki。例如,存储器装置M11至Mki是物理上彼此区分的装置,并且不同的物理地址被分配到每个装置。控制器1200可以基于恒定的存储容量将物理上彼此区分的存储器装置M11至Mki划分为多个逻辑区域,并且通过使用命名空间单位来管理逻辑区域。例如,多个逻辑区域可以被包括在一个命名空间中。可以响应于来自主机2000的请求而新分配或释放命名空间,并且控制器1200可以包括用于管理命名空间的逻辑区域表LR_T和分配表AL_T。命名空间的释放可以使与命名空间相对应的存储器空闲和可用。
逻辑区域和物理地址的映射信息可以存储在逻辑区域表LR_T中。命名空间和逻辑区域的映射信息可以存储在分配表AL_T中。稍后将描述管理命名空间的详细方法。
主机2000可以生成用于各种操作的请求,并将所生成的请求输出到存储器系统1000。例如,请求可以包括能够控制编程操作的编程请求、能够控制读取操作的读取请求、能够控制擦除操作的擦除请求等。主机2000可以通过各种接口与存储器系统1000进行通信,各种接口诸如外围部件互连快速(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、串行附接SCSI(SAS)、或非易失性存储器快速(NVMe)、通用串行总线(USB)、多媒体卡(MMC)、增强型小磁盘接口(ESDI)或集成驱动电子装置(IDE)。
图2A至图2C是图示被分配到存储装置的命名空间的示例图。
图2A是图示存储装置1100的物理结构的图,图2B是图示被划分为多个逻辑区域的存储装置1100的图,并且图2C是图示被分配到存储装置的命名空间的图。
参照图2A,存储装置1100中包括的多个存储器装置M11至Mki中的每个存储器装置可以包括多个存储器块,该多个存储器块包括存储器块MB1、MB2、MB3、MB4。尽管在图2A中仅图示了包括存储器块MB1、MB2、MB3、MB4的存储器块,但是存储器装置M11至Mki还可以包括被配置为对包括存储器块MB1、MB2、MB3、MB4的存储器块执行编程操作、读取操作和擦除操作的电路。
存储器块可以被配置为具有彼此相同的结构。可以将不同的物理地址分配到相应的存储器块。
参照图2B,可以将存储装置1100的总容量划分到逻辑区域。例如,当假设存储装置1100的总容量为100千兆字节(GB)时,可以将存储装置1100划分为多个逻辑区域1R至100R,每个逻辑区域具有1GB的存储容量。可以将存储装置1100中包括的多个存储器装置M11至Mki或存储器块划分为各自具有1GB的存储容量的多个逻辑区域1R至100R。在本实施例中,描述了一个逻辑区域的存储容量为1GB的情况。然而,其他实施方式也是可能的,并且可以取决于存储器装置来不同地设置逻辑区域的存储容量。
参照图2C,可以将多个命名空间NS1至NS4分配到存储装置1100。命名空间可以与具有通过划分存储装置1100而获得的预定存储容量的扇区相对应。例如,当第一命名空间NS1至第四命名空间NS4被分配给存储装置1100时,第一命名空间NS1至第四命名空间NS4中的每个命名空间可以包括与所分配的存储容量相对应的多个逻辑区域。例如,当分配具有10GB的第一命名空间NS1时,可以将第一逻辑区域至第十逻辑区域(图2B所示的1R至10R)分配到第一命名空间NS1。当分配具有20GB的第二命名空间NS2时,可以将第十一逻辑区域至第三十逻辑区域(图2B所示的11R至30R)分配到第二命名空间NS2。
第一命名空间NS1至第四命名空间NS4可以被分配为具有相同的存储容量,或者可以被分配为具有不同的存储容量。在一些实施方式中,可以仅将存储装置1100的部分存储容量而不是全部存储容量分配到第一命名空间NS1至第四命名空间NS4。
控制器(图1所示的1200)可以管理地址到第一命名空间NS1至第四命名空间NS4的映射。
图3是图示根据所公开的技术的实施例的控制器的图。
参照图3,控制器1200可以包括中央处理单元(CPU)1210、内部存储器1220、主机接口1230’和闪存接口1240。CPU 1210、内部存储器1220、主机接口1230’和闪存接口1240可以通过控制器1200的内部总线彼此交换信息。
CPU 1210可以控制控制器1200的整体操作。CPU 1210可以将从主机2000接收到的请求转换为可以在存储装置1100中使用的命令,并输出该命令。在一些实施方式中,CPU1210可以包括用于管理地址的映射的闪存转换层(FTL)。在该实施例中,FTL可以管理命名空间与逻辑区域之间的映射,并且管理逻辑区域与物理地址之间的映射。
内部存储器1220可以被配置作为易失性存储器或非易失性存储器,并且存储映射表,在该映射表中存储了在控制器1200中使用的逻辑地址与物理地址的映射信息。例如,内部存储器1200可以被实现为DRAM、闪存、SRAM等,并且存储逻辑区域表LR_T。逻辑区域与物理地址的映射信息可以存储在逻辑区域表LR_T中。
主机接口1230’可以在主机2000和CPU 1210之间传输信息。主机接口1230’可以包括缓冲存储器,并且其中存储了命名空间与逻辑区域的映射信息的分配表AL_T’可以存储在缓冲存储器中。当从主机2000请求对命名空间的访问时,主机接口1230’可以基于存储在分配表AL_T’中的信息来选择命名空间。
闪存接口1240可以在存储装置1100与CPU 1210之间传输信息。在一些实施方式中,闪存接口1240可以基于从CPU 1210传输的物理地址来访问存储在存储装置1100中的存储器装置。
当从主机2000接收到对命名空间的分配请求、改变请求或释放请求时,CPU 1210中包括的FLT可以改变存储在逻辑区域表LR_T和分配表AL_T’中的信息。在该实施例中,当命名空间被改变或释放时,FTL可以改变分配表AL_T’而无需改变逻辑区域表LR_T。由于在改变或释放命名空间时省略了改变逻辑区域表LR_T的操作,因此可以减少执行管理命名空间的操作所需的时间。
图4是图示逻辑块地址表的图。
参照图4,逻辑区域表LR_T1或LR_T2可以存储逻辑区域与物理地址之间的映射信息,并且映射信息可以基于逻辑区域的存储容量以各种方式改变。
当一个逻辑区域的存储容量与多个存储器块的存储容量相对应时,可以将多个存储器装置的物理地址映射到逻辑区域表LR_T1的每个逻辑区域。例如,第十一存储器装置M11和第十二存储器装置M12的物理地址可以被映射到第一逻辑区域1R,第十三存储器装置M13和第十四存储器装置M14的物理地址可以被映射到第二逻辑区域2R,并且第十五存储器装置M15和第十六存储器装置M16的物理地址可以被映射到第三逻辑区域3R。
当一个逻辑区域的存储容量与多个存储器块的存储容量(其小于多个存储器装置之一的存储容量)相对应时,存储器装置和多个存储器块的物理地址可以被映射到逻辑区域表LR_T2的每个逻辑区域。例如,第十一存储器装置M11的物理地址和第一存储器块MB1至第三存储器块MB3的物理地址可以被映射到第一逻辑区域1R,第十一存储器装置M11的物理地址和第四存储器块MB4至第六存储器块MB6的物理地址可以被映射到第二逻辑区域2R,并且第十二存储器装置M12的物理地址和第一存储器块MB1至第三存储器块MB3的物理地址可以被映射到第三逻辑区域3R。
逻辑区域表LR_T1和LR_T2在图4中仅作为示例示出,并且可以以各种方式映射逻辑区域和物理地址而不限于图4所示的那些。
图5A和图5B示出了图示基于所公开的技术的实施例的分配表的管理方法的示例图。
图5A示出了多个命名空间是固定的并且每个命名空间具有固定的存储容量的情况。图5中的分配表AL_T’示出了第一命名空间NS1至第四命名空间NS4,每个命名空间具有对应的存储区域。分配表AL_T’可以被存储在主机接口1230’中包括的缓冲存储器中(见图3)。分配到每个命名空间的逻辑区域的信息被存储在分配表中。例如,当第一命名空间NS1至第四命名空间NS4可分配用于存储器装置时,其中可以存储分配到第一命名空间NS1至第四命名空间NS4的逻辑区域的信息的存储器可以被包括在缓冲存储器中,分配表AL_T’被存储在该缓冲存储器中。例如,可以将AA字节的存储器指定给第一命名空间NS1至第四命名空间NS4中的每个命名空间,并且所指定的存储器可以是固定的,而不管命名空间是否被生成和释放。因此,在这种情况下,AA字节的存储器可以总是被分配到第一命名空间NS1至第四命名空间NS4中的每个命名空间。每个命名空间可以具有已使用区域(UR)或空闲区域(FR)中的至少一个。已使用区域UR存储已经用于执行操作的逻辑区域的地址。在分配命名空间时,很难指定逻辑区域以使得命名空间的存储容量被完全填充。因此,命名空间中的至少一个具有与尚未被使用并且因此保留可供使用的存储容量相对应的空闲区域FR。例如,对于第一命名空间NS1的情况,当已使用区域用于逻辑区域5R、7R、6R、1R、16R、17R和9R时,与5R、7R、6R、1R、16R、17R和9R相对应的逻辑区域的地址被存储在AA字节的存储器中。在这种情况下,空闲区域FR可以被保留为未使用,并且存储装置的对应存储区域(例如,存储器块或存储器装置)被保留而没有被使用。因此,直到固定分配到第一命名空间NS1至第四命名空间NS4的所有存储容量被使用之前,与未使用的空闲区域FR相对应的存储区域可以始终保留在存储分配表AL_T’的缓冲存储器中。
图5B示出了当释放正在使用的命名空间NS4时,分配到所释放的命名空间的存储器保留在其中存储器为空的状态的情况。因此,可以进一步增加未使用的空闲区域FR’的容量。
图6示出了图示根据所公开技术的另一实施例的主机接口的示例图。在如图6所示的实施方式中,分配到分配表AL_T’的存储器减少,并且分配给命名空间的逻辑区域的地址被存储的存储器可以被灵活地改变。
参照图6,根据所公开技术的另一实施例的主机接口1230可以包括分配表AL_T。分配表AL_T可以包括位置表LO_T和命名空间表NS_T。在一些实施方式中,位置表LO_T和命名空间表NS_T可以被存储在主机接口1230中包括的缓冲存储器中。在一些实施方式中,位置表LO_T和命名空间表NS_T可以被存储在位于主机接口1230的外部的缓冲存储器中。
位置表LO_T存储指示命名空间表NS_T中存储的每个命名空间的开始位置的索引和逻辑区域的数目信息。可以在命名空间表NS_T中针对每个命名空间存储所分配的逻辑区域的地址。
图7是图示图6所示的分配表的管理方法的图。
参照图7,被分配到命名空间的逻辑区域的逻辑地址可以顺序地存储在分配表AL_T中包括的命名空间表NS_T中。例如,其中存储了命名空间表NS_T的缓冲存储器BF可以包括多个存储区域,并且被分配到命名空间的逻辑区域的逻辑地址可以存储在缓冲存储器BF的存储区域中。可以将索引IN#顺序地指定给缓冲存储器BF中包括的多个存储区域,并且可以在命名空间表NS_T中设置固定数目的索引IN#。
例如,六个逻辑区域可以被分配到第一命名空间NS1,五个逻辑区域可以被分配到第二命名空间NS2,并且三个逻辑区域可以被分配到第三命名空间NS3和第四命名空间NS4中的每个命名空间。在分配到命名空间表NS_T的缓冲存储器BF中,可以使用其数目与分配到每个命名空间的逻辑区域的数目N#相对应的存储区域。
例如,分配到第一命名空间NS1的六个逻辑区域2R、3R、13R、14R、18R和19R的逻辑地址可以分别存储在与索引IN#1至6相对应的存储区域中。分配到第二命名空间NS2的逻辑区域21R、22R、23R、1R和17R的逻辑地址可以分别存储在与索引IN#7至11相对应的存储区域中,分配到第三命名空间NS3的三个逻辑区域5R、6R和7R的逻辑地址可以分别存储在与索引IN#12至14相对应的存储区域中,并且分配到第四命名空间NS4的三个逻辑区域8R、9R和10R的逻辑地址可以分别存储在与索引IN#15至17相对应的存储区域中。
存储在命名空间表NS_T中的第一命名空间NS1至第四命名空间NS4中的每个命名空间的第一索引IN#和逻辑区域的数目N#信息可以存储在分配表AL_T中包括的位置表LO_T中。第一索引IN#指示每个命名空间开始的逻辑区域的索引号,并且数字N#信息指示每个命名空间中包括的逻辑区域的总数目。
例如,由于分配到第一命名空间NS1的逻辑区域的逻辑地址存储在与命名空间表NS_T的索引1至6相对应的存储区域中,1可以在位置表LO_T中被存储为关于第一命名空间NS1的索引IN#信息,并且6可以在位置表LO_T中被存储为逻辑区域的数目N#信息。以这种方式,7可以在位置表LO_T中被存储为关于第二命名空间NS2的索引IN#信息,并且5可以在位置表LO_T中被存储为逻辑区域的数目N#信息。以相同的方式,12可以在位置表LO_T中被存储为关于第三命名空间NS3的索引IN#信息,并且3可以在位置表LO_T中被存储为逻辑区域的数目N#信息。15可以在位置表LO_T中被存储为关于第四命名空间NS4的索引IN#信息,并且3可以在位置表LO_T中被存储为逻辑区域的数目N#信息。
如上所述,对应命名空间开始的逻辑区域的逻辑地址的索引IN#信息和对应命名空间中包括的逻辑区域的总数目N#信息仅被存储在位置表LO_T中,并且因此由位置表LO_T占据的存储容量小。
此外,可以通过考虑分配到多个命名空间的逻辑区域的数目来设置命名空间表NS_T,并且因此可以减少未使用的空闲区域FR的容量。
由图7所示的实施方式中的分配表AL_T占据的容量小于由图5所示的实施例中的分配表AL_T’占据的容量,并且未使用的空闲区域FR的容量也可以被减少。因此,可以减少用于管理命名空间的缓冲存储器的容量。
图8A和图8B示出了图示基于所公开的技术的实施方式来释放命名空间的方法的示例图。
参照图7和图8A,当在第一命名空间NS1至第四命名空间NS4被如图7所示地分配的状态下释放第二命名空间NS2时,可以在命名空间表NS_T中删除分配到第二命名空间NS2的逻辑区域的逻辑地址。由于分配到第二命名空间NS2的逻辑区域的逻辑地址已经存储在与索引7至11相对应的存储区域中,因此可以重置对应的存储区域。
当在命名空间表NS_T中重置分配到第二命名空间NS2的存储区域时,其索引IN#数字比重置存储区域的索引IN#数字更大的存储区域中存储的逻辑地址被移动到重置存储区域,如图8B所示。例如,分配到第三命名空间NS3的第五逻辑区域5R至第七逻辑区域7R从与索引12至14相对应的存储区域移动到与索引7至9相对应的存储区域,并且分配到第四命名空间NS4的第八逻辑区域8R至第十逻辑区域10R从与索引15至17相对应的存储区域移动到与索引10至12相对应的存储区域。因此,与索引13至20相对应的存储区域成为空闲区域FR。在位置表LO_T中擦除与第二命名空间NS2相对应的逻辑区域的索引IN#信息和数目N#信息。
如上所述,当释放命名空间时,仅改变位置表LO_T和命名空间表NS_T。因此,逻辑区域表(图3所示的LR_T)不需要立即改变并且可以在后台操作中被更新。
图9A和图9B示出了图示分配命名空间的方法的示例图。
参照图8A至图9B,当第一、第四、第十一、第十二、第十五和第十六逻辑区域1R、4R、11R、12R、15R和16R被分配到的第二命名空间NS2被新分配时,六个逻辑区域被分配到第二命名空间NS2,并且因此第一、第四、第十一、第十二、第十五和第十六逻辑区域1R、4R、11R、12R、15R和16R的逻辑地址可以被存储在空闲区域FR中的与索引13至18相对应的存储区域中。因此,13可以在位置表LO_T中被存储为第二命名空间NS2的索引IN#信息,并且6可以在位置表LO_T中被存储为逻辑区域的数目N#信息。
图10是图示包括图1所示的控制器的存储器系统的另一实施例的图。
参照图10,存储器系统50000可以被实现为图像处理装置,例如,数字照相机、附有数字照相机的智能电话或附有数字照相机的平板PC。
存储器系统50000可以包括存储装置1100和控制器1200,该控制器1200可以控制存储装置1100的数据处理操作,例如编程操作、擦除操作或读取操作。
存储器系统50000的图像传感器5200可以将光学图像转换成数字信号,并且转换后的数字信号可以被发送到处理器5100或控制器1200。在处理器5100的控制下,转换后的数字信号可以通过显示器5300被输出,或者可以通过控制器1200被存储在存储装置1100中。此外,在处理器5100或控制器1200的控制下,存储在存储装置1100中的数据可以通过显示器5300被输出。
在一些实施例中,能够控制存储装置1100的操作的控制器1200可以被实现为处理器5100的一部分,或者被实现为与处理器5100分离的芯片。
图11是图示包括图1所示的控制器的存储器系统的另一实施例的图。
参照图11,存储器系统70000可以被实现为存储器卡或智能卡。存储器系统70000可以包括存储装置1100、控制器1200和卡接口7100。
控制器1200可以控制存储装置1100与卡接口7100之间的数据交换。在一些实施例中,卡接口7100可以是安全数字(SD)卡接口或多媒体卡(MMC)接口,但是本公开不限于此。
卡接口7100可以根据主机60000的协议在主机60000与控制器1200之间对接数据交换。在一些实施例中,卡接口7100可以支持通用串行总线(USB)协议和芯片间(IC)-USB协议。卡接口7100可以意味着能够支持由主机60000使用的协议的硬件、嵌入在硬件中的软件或信号传输方案。
当存储器系统70000耦合到诸如PC、平板PC、数字相机、数字音频播放器、蜂窝电话、控制台视频游戏硬件或数字装置机顶盒之类的主机60000的主机接口6200时,主机接口6200可以在微处理器(μP)6100的控制下通过卡接口7100和控制器1200与存储装置1100执行数据通信。
另外,微处理器6100可以存储和更新从控制器1200接收的地址映射信息,并且在读取操作中将地址映射信息与读取请求一起输出。
根据本公开,可以减少用于分配表的存储器容量,并且简化分配表映射,从而可以减少执行地址映射操作所需的时间。
本文已经公开了示例实施例,并且本领域技术人员将理解,在不脱离本公开的精神和范围的情况下,可以进行形式和细节上的各种改变。
Claims (19)
1.一种控制器,包括:
第一存储区,被配置为存储耦合到所述控制器的存储装置的逻辑区域的逻辑地址与所述存储装置的存储器块的物理地址之间的映射信息,所述逻辑区域被划分为包括第一逻辑单位的逻辑单位;以及
第二存储区,被配置为存储关于被分配到所述第一逻辑单位的逻辑区域的逻辑地址的分配信息,被分配到所述第一逻辑单位的所述逻辑区域中的每个逻辑区域具有对应的索引;
其中所述第二存储区进一步被配置为存储位置表,所述位置表包括关于与被分配到所述第一逻辑单位的所述逻辑区域相对应的索引之中的最小索引的索引信息和关于被分配到所述第一逻辑单位的所述逻辑区域的总数目的数目信息。
2.根据权利要求1所述的控制器,其中所述存储装置包括多个存储器装置,
其中所述多个存储器装置中的每个存储器装置包括多个存储器块,
其中所述物理地址是所述多个存储器块的地址。
3.根据权利要求1所述的控制器,其中所述第一逻辑单位具有对应的存储区,在所述存储区中存储了被分配到所述第一逻辑单位的所述逻辑区域的逻辑地址,并且所述存储区具有其中未存储任何数据的空闲区域。
4.根据权利要求3所述的控制器,其中所述逻辑单位包括第二逻辑单位,并且被分配到所述第二逻辑单位的逻辑区域的逻辑地址被存储在所述空闲区域中。
5.根据权利要求1所述的控制器,其中所述控制器被配置为通过位于所述控制器中的接口区域与主机进行通信。
6.根据权利要求5所述的控制器,其中响应于来自所述主机的用以释放所述第一逻辑单位的请求,与所述第一逻辑单位相对应的所述索引信息从所述位置表中被擦除。
7.根据权利要求6所述的控制器,其中所述逻辑单位包括第二逻辑单位,在所述第一逻辑单位的释放之前,逻辑区域被分配到所述第二逻辑单位,并且由于所述第一逻辑单位的释放,与所述第二逻辑单位相对应的索引信息被改变。
8.根据权利要求7所述的控制器,其中在所述第一逻辑单位的释放之后,所述第二逻辑单位具有与所述第一逻辑单位在所述释放之前具有的索引信息相同的索引信息。
9.根据权利要求1所述的控制器,其中所述分配信息和所述位置表被存储在主机接口区域中,所述主机接口区域被配置为与耦合到所述控制器的主机进行通信。
10.根据权利要求1所述的控制器,其中所述分配信息和所述位置表被存储在主机接口区域外部,所述主机接口区域被配置为与耦合到所述控制器的主机进行通信。
11.根据权利要求1所述的控制器,进一步包括:
处理单元,被配置为控制所述第一存储区和所述第二存储区。
12.根据权利要求1所述的控制器,其中所述第一存储区中存储的所述映射信息被维持,不管所述第二存储区中存储的所述分配信息的改变。
13.一种存储器系统,包括:
存储器装置,包括存储数据的存储器块;以及
控制器,耦合到所述存储器装置,并且被配置为使用逻辑区域来控制所述存储器装置,所述逻辑区域通过将所述存储器装置的总容量划分为逻辑单位而获得,
其中所述控制器包括:
存储区域,被配置为存储所述逻辑区域的逻辑地址与所述存储器块的物理地址之间的映射信息;
接口区域,被配置为存储关于被分配到每个逻辑单位的逻辑区域的逻辑地址的分配信息,并且进一步存储关于与对应的逻辑单位开始的逻辑区域相对应的索引的索引信息以及关于被分配到每个逻辑单位的所述逻辑区域的总数目的总数目信息;以及
处理区域,被配置为响应于来自耦合到所述控制器的主机的请求而控制所述逻辑单位中的至少一个逻辑单位的分配或释放。
14.根据权利要求13所述的存储器系统,其中响应于来自所述主机的所述请求,所述处理区域被配置为维持所述映射信息并且改变所述索引信息和所述总数目信息。
15.根据权利要求13所述的存储器系统,其中所述接口区域包括被配置为存储所述索引信息和所述总数目信息的缓冲存储器。
16.根据权利要求13所述的存储器系统,其中所述逻辑单位包括第一逻辑单位和第二逻辑单位,并且被分配到所述第一逻辑单位和所述第二逻辑单位的逻辑区域被连续地存储。
17.根据权利要求16所述的存储器系统,其中响应于来自所述主机的用以释放所述第一逻辑单位的所述请求,与所述第一逻辑单位相对应的所述索引信息从所述存储区域中被擦除。
18.根据权利要求16所述的存储器系统,其中由于所述第一逻辑单位的所述释放,与所述第二逻辑单位相对应的索引信息被改变。
19.根据权利要求16所述的存储器系统,其中在所述第一逻辑单位的所述释放之后,所述第二逻辑单位具有与所述第一逻辑单位在所述释放之前具有的索引信息相同的索引信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190155958A KR20210066559A (ko) | 2019-11-28 | 2019-11-28 | 컨트롤러 및 이를 포함하는 메모리 시스템 |
KR10-2019-0155958 | 2019-11-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112860179A true CN112860179A (zh) | 2021-05-28 |
Family
ID=75996163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010704302.2A Withdrawn CN112860179A (zh) | 2019-11-28 | 2020-07-21 | 控制器和具有控制器的存储器系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11327885B2 (zh) |
KR (1) | KR20210066559A (zh) |
CN (1) | CN112860179A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11586368B1 (en) * | 2021-08-23 | 2023-02-21 | EMC IP Holding Company LLC | Configuring unused SCM memory space to support namespaces based on IO patterns |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180047402A (ko) | 2016-10-31 | 2018-05-10 | 삼성전자주식회사 | 멀티 네임스페이스를 관리하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
KR20180092715A (ko) * | 2017-02-10 | 2018-08-20 | 삼성전자주식회사 | 동작들의 횟수에 기초하여 복제된 데이터를 관리하는 스토리지 장치 |
US10275361B2 (en) | 2017-05-31 | 2019-04-30 | Seagate Technology Llc | Managing multiple namespaces in a non-volatile memory (NVM) |
US10452536B2 (en) * | 2017-06-12 | 2019-10-22 | Western Digital Technologies, Inc. | Dynamic management of garbage collection and overprovisioning for host stream storage |
US10915440B2 (en) * | 2017-11-16 | 2021-02-09 | Micron Technology, Inc. | Namespace mapping optimization in non-volatile memory devices |
KR102684047B1 (ko) * | 2018-07-13 | 2024-07-12 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR20200110859A (ko) * | 2019-03-18 | 2020-09-28 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 이를 포함하는 컴퓨팅 장치와 그 동작 방법 |
-
2019
- 2019-11-28 KR KR1020190155958A patent/KR20210066559A/ko active Search and Examination
-
2020
- 2020-05-20 US US16/879,293 patent/US11327885B2/en active Active
- 2020-07-21 CN CN202010704302.2A patent/CN112860179A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
KR20210066559A (ko) | 2021-06-07 |
US20210165736A1 (en) | 2021-06-03 |
US11327885B2 (en) | 2022-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6709180B2 (ja) | メモリシステムおよび制御方法 | |
JP6765321B2 (ja) | メモリシステムおよび制御方法 | |
US9529709B2 (en) | Apparatuses for managing and accessing flash memory module | |
JP6765322B2 (ja) | メモリシステムおよび制御方法 | |
US20190026223A1 (en) | Memory system and non-transitory computer readable recording medium | |
US20150120988A1 (en) | Method of Accessing Data in Multi-Layer Cell Memory and Multi-Layer Cell Storage Device Using the Same | |
US10635356B2 (en) | Data management method and storage controller using the same | |
KR20170083963A (ko) | 어레이 컨트롤러, 솔리드 스테이트 디스크, 및 데이터를 기록하기 위해 솔리드 스테이트 디스크를 제어하는 방법 | |
KR101041837B1 (ko) | 파일저장 제어장치 및 방법 | |
US10895991B2 (en) | Solid state device with improved sustained data writing speed | |
US12072797B2 (en) | Memory system and non-transitory computer readable recording medium | |
KR20110003728A (ko) | 데이터 조작 방법 및 그 방법을 이용하는 시스템 장치 | |
WO2017195928A1 (ko) | 플래시 기반 저장 장치 및 이를 포함하는 컴퓨팅 디바이스 | |
CN107291634B (zh) | 存储设备中委托的介质转换层 | |
CN112860179A (zh) | 控制器和具有控制器的存储器系统 | |
KR20190091035A (ko) | 메모리 시스템 및 그것의 동작 방법 | |
JP2022051902A (ja) | メモリシステム | |
CN111045961B (zh) | 数据处理方法及使用所述方法的存储控制器 | |
US20220197548A1 (en) | Memory controller and storage device including the same | |
US20240264946A1 (en) | Memory controller, method of driving memory controller, and memory system | |
US20240184712A1 (en) | Memory system with improved map table update efficiency, memory controller therefor, and operating method thereof | |
JP2007293564A (ja) | メモリデバイスおよび情報記憶システム | |
JP2022091981A (ja) | コントローラ | |
CN116149540A (zh) | 更新主机与闪存地址对照表的方法和计算机可读取存储介质和装置 | |
CN118585141A (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: 20210528 |