CN111666223B - 控制器、包括控制器的存储器系统和操作该系统的方法 - Google Patents
控制器、包括控制器的存储器系统和操作该系统的方法 Download PDFInfo
- Publication number
- CN111666223B CN111666223B CN201911073158.0A CN201911073158A CN111666223B CN 111666223 B CN111666223 B CN 111666223B CN 201911073158 A CN201911073158 A CN 201911073158A CN 111666223 B CN111666223 B CN 111666223B
- Authority
- CN
- China
- Prior art keywords
- host
- address
- allocation
- controller
- 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
- 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
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the 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
- 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
- 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/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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/063—Address space extension for I/O modules, e.g. memory mapped I/O
-
- 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/7202—Allocation control and policies
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Read Only Memory (AREA)
Abstract
本公开的实施例涉及控制器、包括控制器的存储器系统和操作该系统的方法。本技术包括一种控制器、包括控制器的存储器系统以及该存储器系统的操作方法。该控制器包括分配管理器,其被配置为确定从主机输出的主机标识(ID)是否为可分配ID;地址管理器,其被配置为使用该主机ID执行分配操作,以当主机ID从分配管理器被接收时,选择与该主机ID相对应的逻辑块,并且输出逻辑块的地址作为分配地址;以及映射表组件,其被配置为存储其中逻辑块地址和物理块地址分别被映射的映射表,选择与分配地址相对应的逻辑块地址,并且输出映射到所选择的逻辑块地址的物理块地址。
Description
相关申请的交叉引用
本申请要求于2019年3月5日递交韩国知识产权局的韩国专利申请号10-2019-0025327的依据35U.S.C.§119(a)的优先权,其全部内容通过引用被并入本文。
技术领域
本公开一般涉及一种控制器、包括该控制器的存储器系统以及操作该存储器系统的方法,更具体地涉及一种控制器、包括该控制器的存储器系统以及操作该存储器系统的方法,其与根据主机的请求分配被包括在存储器系统中的存储器块有关。
背景技术
电气系统可以包括其中存储数据的存储器系统、以及将数据存储在该存储器系统中或读取所存储的数据的主机。
该存储器系统可以包括其中数据被实质存储的存储设备以及控制该存储设备的控制器。该存储设备可以包括至少一个存储器设备。
存储器设备可以被分为易失性存储器设备和非易失性存储器设备。易失性存储器是其中在电源中断时所存储的数据被丢失的存储器设备,而非易失性存储器设备是即使电源中断所存储的数据也被保留的存储器设备。
其中,由于在没有电源的情况下保留数据的特点以及易于小型化和大容量的特点,因此非易失性存储器设备被广泛用于便携式电子系统中。例如,非易失性存储器设备被用于诸如蜂窝电话、笔记本电脑、便携式摄像机和数码相机之类的电子系统中,并且被用作作为能够代替硬盘的存储系统的固态驱动器(SSD)的主存储设备。
主机可以使用诸如以下各项之类的各种通信方法中的至少一种与存储器系统通信:通用串行总线(USB)、串行AT附件(SATA)、串行附加式SCSI(SAS)、高速片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、PCI Express(PCIe)、非易失性存储器Express(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储模块(DIMM)、已寄存的DIMM(RDIMM)、以及负载减少的DIMM(LRDIMM)。
近来,随着电子系统的使用范围的扩大,主机可能请求向存储器系统分配大容量的存储空间。
一般而言,主机可以使用存储器系统的逻辑块地址来请求分配。例如,主机可以将逻辑块地址(LBA)的开始地址和结束地址发送到存储器系统,以便接收所需存储容量的分配,并且存储器系统可以分配与从主机接收到的逻辑块地址相对应的存储器块。
然而,由于存储器系统的大容量,所以指示逻辑块地址的位数增加,这可能增加在存储器系统中映射逻辑块地址和物理块地址的操作时间。
发明内容
一种根据本公开的实施例的控制器,可以包括分配管理器,其被配置为确定从主机输出的主机标识(ID)是否为可分配ID;地址管理器,其被配置为使用主机ID执行分配操作,以当从分配管理器接收到主机ID时,选择与主机ID相对应的逻辑块,并且输出逻辑块的地址作为分配地址;以及映射表组件,其被配置为存储其中逻辑块地址和物理块地址分别被映射的映射表,选择与分配地址相对应的逻辑块地址,并且输出被映射到所选择的逻辑块地址的物理块地址。
一种根据本公开的实施例的控制器可以包括处理器,其被配置为将与空闲存储器块相对应的物理块地址映射到逻辑块地址,使得彼此可同时操作的空闲存储器块被包括在同一树中;地址分配器,其被配置为基于树的配置来执行分配操作,以选择与主机ID相对应的逻辑块,并且输出被映射到逻辑块的地址的空闲存储器块的地址;以及存储器接口,其访问与空闲存储器块的地址相对应的物理块。
一种根据本公开的实施例的存储器系统可以包括多个存储器块;以及控制器,其被配置为根据其中存储器块被划分为逻辑块单元的主机ID策略接收主机ID,基于所接收到的主机ID来计算分配地址,并且根据被映射到分配地址的物理块地址访问存储器块中的被分配的存储器块。
一种根据本公开的实施例的操作存储器系统的方法,可以包括:当被划分为逻辑块单元的主机ID被接收时,通过使用主机ID执行分配操作来计算逻辑块的起始节点和数目;生成根据起始节点和数目分配的逻辑块的地址作为分配地址;检测被映射到分配地址的物理块地址;以及根据该物理块地址分配存储器块。
附图说明
图1是用于描述根据本公开的存储器系统的图。
图2是用于描述图1的控制器的图。
图3是用于描述图2的管芯的图。
图4是用于描述图3的存储器单元阵列的图。
图5和图6是用于描述根据第一实施例的三维结构的存储器块的图。
图7和图8是用于描述根据第二实施例的三维结构的存储器块的图。
图9是用于描述图2的地址分配器的图。
图10是用于描述根据本公开的实施例的存储器分配操作的流程图。
图11是用于描述根据本公开的实施例的解除分配操作的流程图。
图12是用于描述图9的分配管理器的图。
图13是用于描述主机ID和分配空间的图。
图14是用于描述分配与逻辑块匹配的物理块的方法的图。
图15是用于描述根据本公开的实施例的存储器分配方法的图。
图16是用于描述被用于图15的存储器分配操作的操作的示例的流程图。
图17是其中应用图16的操作的存储器分配操作的第一实施例。
图18是其中应用图16的操作的存储器分配操作的第二实施例。
图19和图20是用于描述根据本公开的另一实施例的存储器分配方法的图。
图21是用于描述被用于图20的存储器分配方法的操作的示例的流程图。
图22是用于描述其中应用图21的操作的存储器分配操作的第一实施例的图。
图23是用于描述其中应用图21的操作的存储器分配操作的第二实施例的图。
图24是用于描述用于请求从主机到存储器系统的存储器分配的主机ID策略的图。
图25是用于描述图24的主机ID策略的实施例的图。
图26是用于描述参考图25所描述的实施例中的第二主机ID策略的实施例的图。
图27是用于描述图9的映射表组件的操作的图。
图28是用于描述使用起始节点计算主机ID的操作的示例的流程图。
图29是用于描述其中应用图28的操作的计算主机ID的方法的实施例的图。
图30至图33是用于描述包括图2中所示的控制器的存储器系统的另一实施例的图。
具体实施方式
通过下文参考附图详细描述的实施例来对本公开的优点和特征以及用于实现优点和特征的方法进行描述。然而,本公开不限于本文中所描述的实施例,而是可以以其他形式体现。本实施例被提供以向本公开所属领域的技术人员详细描述本公开的技术精神,使得本领域技术人员可以容易实现本公开的技术精神。
在整个说明书中,在其中一部分“被连接”到另一部分的情况下,该情况不仅包括该部分“被直接连接”到另一部分的情况,而且还包括该部分使用其间插置的另一元件“被间接连接”到另一部分的情况。在整个说明书中,在其中一部分包括一元件的情况下,除非另有说明,否则该情况意味着该部分可以包括其他元件而不排除其他元件。
本公开的实施例可以提供一种控制器、包括该控制器的存储器系统以及操作该存储器系统的方法,其中该存储器系统本身可以管理分配空间。
由于存储器系统本身而不是主机管理分配空间,所以本技术可以有效地管理存储器系统的存储器区域。另外,本技术可以通过减少被用于分配空间操作的位数来根据主机的请求来减少存储器分配操作时间。
图1是用于描述根据本公开的存储器系统的图。
参考图1,存储器系统1000可以包括其中存储有数据的存储设备1100和控制该存储设备1100的控制器1200。
存储设备1100可以包括多个管芯D1至Dk(k是正整数)。管芯D1至Dk可以被实现为易失性存储器设备或非易失性存储器设备,在易失性存储器设备中,当电源被中断时,所存储的数据被丢失,在非易失性存储器设备中,即使电源被中断,所存储的数据也仍然被保留。在下面的实施例中,将以包括被实现为非易失性存储器设备的管芯D1至Dk的存储器系统为例进行描述。非易失性存储器设备可以是NAND闪存设备。
存储设备1100可以通过多个信道CH1至CHi(i是正整数)与控制器1200通信。例如,被包括在存储设备1100中的管芯D1至Dk可以从控制器1200接收命令、地址、数据等,并且通过通道CH1至CHi将数据输出到控制器1200。
控制器1200可以根据从主机2000接收到的请求来控制存储设备1100,并且可以将从存储设备1100读取的数据输出到主机2000。例如,当控制器1200从主机2000接收到程序请求和数据时,控制器1200可以将接收到的数据存储在存储设备1100中。当控制器1200从主机2000接收到读取请求和逻辑块地址时,控制器1200可以根据被映射到逻辑块地址的物理块地址执行读取操作,并且可以将读取的数据输出到主机2000。
另外,即使没有来自主机2000的请求,控制器1200仍可以执行能够管理存储设备1100的后台操作。例如,控制器1200可以执行诸如垃圾收集和损耗均衡之类的功能,并且可以执行各种功能以有效管理存储设备1100。
另外,控制器1200可以根据来自主机2000的分配请求或解除分配请求,鉴于存储设备1100的状态来分配或释放存储器。为此,主机2000可以请求形式为主机标识(ID)的分配容量,并且控制器1200可以根据被嵌入在控制器1200中的操作过程来分配被包括在存储设备1100中的存储器块。
主机2000可以使用诸如外围组件互连Express(PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、串行附接式SCSI(SAS)或非易失性存储express(NVMe)之类的结构协议来与存储器系统1000通信。存储接口2200不限于以上示例,并且可以包括各种接口,诸如通用串行总线(USB)、多媒体卡(MMS)、增强型小盘接口(ESDI)。
图2是用于描述图1的控制器的图。
参考图2,控制器1200可以包括处理器210、地址分配器220和存储器接口230。
处理器210可以从主机2000接收分配请求AC_RQ和主机ID H#,并且可以根据分配请求AC_RQ执行分配过程。例如,处理器210可以根据分配请求AC_RQ将主机ID H#传送到地址分配器220,并且可以响应于分配不可能的信号IMP将分配完成信号COMP或失败信号FA输出到主机2000。
地址分配器220可以根据从处理器210接收到的主机ID H#确定其是否可分配,并且输出分配完成信号FIN或分配不可能的信号IMP;并且当可以进行存储器分配时,地址分配器220可以输出所分配的物理块地址P_ADD。地址分配器220可以确定主机ID H#是否是可分配ID,并且当主机ID H#是不可分配的时,地址分配器220可以输出分配不可能的信号IMP。例如,不可分配情况可以包括主机ID H#超过存储设备1100的容量或者可分配空闲存储器块的数目小于所请求的数目的情况。可分配情况可以包括主机ID H#不超过存储设备1100的容量并且存在先前分配的日志信息或者可分配的空闲存储器块的数目等于或大于所请求的数目的情况。
存储器接口230可以根据从地址分配器220接收的物理块地址P_ADD来选择通道CH#和管芯D#,并且访问所选择的管芯。
上文参考图1和图2所描述的配置中的每个配置描述如下。
图3是用于描述图1的管芯的图。
由于第一管芯D1至第k管芯Dk可以被配置为彼此相同,所以在图3中将以第k管芯Dk为例进行描述。
参考图3,第k管芯Dk可以包括存储器单元阵列110,其中存储有数据;外围电路120、130、140、150和160,其执行编程、读取或擦除操作;以及控制逻辑170,其控制外围电路120-160。
存储器单元阵列110可以包括存储有数据的多个存储器块。存储器块中的每个存储器块包括多个存储器单元,并且存储器单元可以被实现为平行于基板布置的二维结构或在垂直方向上堆叠在基板上的三维结构。
外围电路120至160可以包括电压发生器120、行解码器130、页面缓冲器组140、列解码器150、以及输入/输出电路160。
电压发生器120可以响应于操作信号OP_SIG而生成并且输出各种操作所需的操作电压Vop。例如,电压发生器120可以生成并且输出编程电压、验证电压、读取电压、通过电压、以及擦除电压。
行解码器130可以根据行地址RADD在被包括在存储器单元阵列110中的存储器块中选择一个存储器块,并且通过所选择的存储器块的本地线LL传送操作电压Vop。
页面缓冲器组140可以包括连接到位线BL的多个页面缓冲器,并且可以响应于页面缓冲器控制信号PBSIG而在编程或读取操作时临时存储数据。页面缓冲器中的每个页面缓冲器可以包括多个锁存器,其用于在编程、读取和验证操作时临时存储数据。
列解码器150可以通过列线CL而被连接到页面缓冲器组140,并且可以通过数据线DL而被连接到输入/输出电路160。例如,列解码器150可以在编程操作时将通过数据线DL接收到的数据传输到页面缓冲器组140,或者通过数据线DL将在读取操作时将通过列线CL接收到的数据传输到输入/输出电路160。
输入/输出电路160可以通过输入/输出线而被连接到控制器1200,并且可以通过输入/输出线输入/输出命令CMD、地址ADD和数据DATA。例如,在编程操作时,输入/输出电路160可以将从控制器1200接收到的命令CMD和地址ADD传送到控制逻辑170,并且将数据DATA传输到列解码器150。列解码器150可以根据列地址CADD将数据DATA依序传送到页面缓冲器组140。在读取操作时,输入/输出电路160可以将从列解码器150接收到的数据DATA输出到控制器1200。
图4是用于描述图3的存储器单元阵列的图。
参考图4,存储器单元阵列110可以包括多个存储器块MB1至MBk。存储器块MB1至MBk可以包括多个存储器单元,并且可以彼此共享位线(图2的BL)。
存储器块描述如下。
图5和图6是用于描述根据第一实施例的三维结构的存储器块的图。图5是存储器块的透视图,而图6是存储器块的电路图。
参考图5,以三维结构实现的第k存储器块MBk可以以垂直(Z方向)I形状而被形成在基板上,并且可以包括被布置在位线BL和源线SL之间的多个单元串ST。可替代地,单元串ST可以代替源线SL而被连接到阱。这种结构也被称为位成本可扩展(BiCS)。例如,当源线SL被水平形成在基板上时,具有BiCS结构的单元串ST可以被形成在与源线SL的上部部分垂直的方向(Z方向)上。
例如,单元串ST可以分别沿第一方向(X方向)和第二方向(Y方向)布置。单元串ST可以包括彼此堆叠和间隔开的源极选择线SSL、字线WL、以及漏极选择线DSL。源极选择线SSL、字线WL和漏极选择线DSL的数目不限于图中所示的数目。单元串ST可以包括垂直穿过源极选择线SSL、字线WL和漏极选择线DSL的垂直通道膜CH,以及与突出到漏极选择线DSL的上部部分的垂直通道膜CH的上部部分接触并且在第二方向(Y方向)上延伸的位线BL。存储器单元可以被形成在字线WL和垂直通道膜CH之间。接触插塞CT可以被进一步形成在位线BL和垂直通道膜CH之间。
参考图6,第一存储器块MB1可以包括多个单元串ST11'至ST1m'和ST21'至ST2m'。多个单元串ST11'至ST1m'和ST21'至ST2m'中的每个单元串可以沿着垂直方向(Z方向)延伸,并且m个单元串可以在行方向(X方向)上被布置在第一存储器块MB1中。在图6中,两个单元串被布置在列方向(Y方向)上。然而,这是为了便于描述,并且三个或更多个单元串可以被布置在列方向(Y方向)上。
多个单元串ST11'至ST1m'和ST21'至ST2m'中的每个单元串可以包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn、以及至少一个漏极选择晶体管DST。
单元串中的每个单元串的源极选择晶体管SST可以被连接在源线SL与存储器单元MC1至MCn之间。被布置在同一行中的单元串的源极选择晶体管SST可以被连接到相同的源极选择线SSL1或SSL2。被布置在第一行中的单元串ST11'至ST1m'的源极选择晶体管SST可以被连接到第一源极选择线SSL1。被布置在第二行中的串ST21'至ST2m'的源极选择晶体管可以被连接到第二源极选择线SSL2。作为另一实施例,串ST11'至ST1m'和ST21'至ST2m'的源极选择晶体管可以被共同连接至一个源极选择线。
单元串中的每个单元串的第一至第n存储器单元MC1至MCn可以被串联连接在源极选择晶体管SST和漏极选择晶体管DST之间。第一至第n存储器单元MC1至MCn的栅极可以被分别连接到第一至第n字线WL1至WLn。另外,第一至第n存储器单元MC1至MCn中的至少一个存储器单元可以被用作伪存储器单元。
单元串的漏极选择晶体管DST可以被连接在位线与存储器单元MC1至MCn之间。在行方向上布置的单元串的漏极选择晶体管DST可以被连接到在行方向上延伸的漏极选择线。第一行的单元串CS11'至CS1m'的漏极选择晶体管DST可以被连接到第一漏极选择线DSL1。第二行的单元串CS21'至CS2m'的漏极选择晶体管DST可以被连接到第二漏极选择线DSL2。
图7和图8是用于描述根据第二实施例的三维结构的存储器块的图。图7是存储器块的透视图,而图8是存储器块的电路图。
参考图7,以三维结构实现的第k存储器块MBk可以在垂直方向(Z方向)上以U形状被形成在基板上,并且可以包括被连接在位线BL和源线SL之间的一对源极串ST_S和漏极串ST_D。源极串ST_S和漏极串ST_D可以通过管道栅PG而被彼此连接以形成U形结构。管道栅PG可以被形成在管线PL中。例如,源极串ST_S可以被垂直形成在源线SL和管线PL之间,而漏极串ST_D可以被垂直形成在位线BL和管线PL之间。这种结构也被称为管状位成本可扩展(P-BiCS)。
例如,漏极串ST_D和源极串ST_S可以被分别布置在第一方向(X方向)和第二方向(Y方向)上,并且漏极串ST_D和源极串ST_S可以沿着第二方向Y被交替地布置。漏极串ST_D可以包括彼此堆叠并且间隔开的字线WL和漏极选择线DSL,以及垂直穿过字线WL和漏极选择线DSL的漏极垂直通道膜D_CH。源极串ST_S可以包括彼此堆叠并且间隔开的字线WL和源极选择线SSL,以及垂直穿过字线WL和源极选择线SSL的源极垂直通道膜S_CH。漏极垂直通道膜D_CH和源极垂直通道膜S_CH可以通过管线PL中的管道栅PG而被连接到彼此。位线BL可以与突出到漏极选择线DSL的上部部分的漏极垂直通道膜D_CH的上部部分接触并且可以在第二方向(Y方向)上延伸。
参考图8,第一存储器块MB1可以包括多个单元串ST11至ST1m和ST21至ST2m。多个单元串ST11至ST1m和ST21至ST2m中的每个单元串可以被形成为U形状。在第一存储器块MB1中,m个串可以被布置在行方向(X方向)上。在图8中,两个单元串被布置在列方向(Y方向)上,但这是为了便于描述,并且三个或更多个单元串可以被布置在列方向(Y方向)上。
多个单元串ST11至ST1m和ST21至ST2m中的每个单元串可以包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn、管道晶体管PT、以及至少一个漏极选择晶体管DST。
源极选择晶体管SST和漏极选择晶体管DST以及存储器单元MC1至MCn可以具有相似的结构。例如,源极选择晶体管SST和漏极选择晶体管DST以及存储器单元MC1至MCn中的每个可以包括通道膜、隧道绝缘膜、电荷陷阱膜、以及阻挡绝缘膜。例如,用于提供通道膜的柱状物可以被设置在每个串中。例如,用于提供通道膜、隧道绝缘膜、电荷陷阱膜和阻挡绝缘膜中的至少一个的柱状物可以被设置在每串中。
单元串中的每个单元串的源极选择晶体管SST可以被连接在源线SL与存储器单元MC1至MCp之间。
作为实施例,被布置在同一行中的串的源极选择晶体管可以被连接到在行方向上延伸的源极选择线,并且被布置在不同行中的单元串的源极选择晶体管可以被连接到不同的源极选择线。在图8中,第一行的串ST11至ST1m的源极选择晶体管可以被连接到第一源极选择线SSL1。第二行的单元串ST21至ST2m的源极选择晶体管可以被连接到第二源极选择线SSL2。
作为另一实施例,单元串ST11至ST1m和ST21至ST2m的源极选择晶体管可以被共同连接到一个源极选择线。
单元串的第一至第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。
作为实施例,第一至第n存储器单元MC1至MCn中的至少一个存储器单元可以被用作伪存储器单元。当伪存储器单元被提供时,对应串的电压或电流可以被稳定控制。每个串的管道晶体管PT的栅极可以被连接到管线PL。
每个串的漏极选择晶体管DST可以被连接在位线和存储器单元MCp+1至MCn之间。在行方向上布置的串可以被连接到在行方向上延伸的漏极选择线。第一行的串ST11至ST1m的漏极选择晶体管可以被连接到第一漏极选择线DSL1。第二行的串ST21至ST2m的漏极选择晶体管可以被连接到第二漏极选择线DSL2。
被布置在列方向上的单元串可以被连接到在列方向上延伸的位线。在图8中,第一列的串ST11和ST21可以被连接到第一位线BL1。第m列的串ST1m和ST2m可以被连接到第m位线BLm。
在被布置在行方向上的单元串中,被连接到同一字线的存储器单元可以构成一个页面。例如,第一行的串ST11至ST1m中的被连接到第一字线WL1的存储器单元可以构成一个页面。第二行的串ST21至ST2m中的被连接到第一字线WL1的存储器单元可以构成另一页面。通过选择漏极选择线DSL1和DSL2中的任一漏极选择线,来选择在一个行方向上布置的单元串。所选择的单元串的一个页面通过选择字线WL1至WLn中的任一字线而被选择。
图9是用于描述图2的地址分配器的图。
参考图9,地址分配器220可以包括分配管理器310、地址管理器320和映射表组件330。
分配管理器310可以确定主机ID H#是否为可分配ID。例如,当根据主机ID H#不可能进行存储器分配时,分配管理器310可以输出分配不可能的信号IMP。当根据主机ID H#可以进行存储器分配,并且因此存储器分配通过分配操作而被完成时,分配管理器310可以输出分配完成信号FIN。可以根据从主机2000接收到的主机IDH#是否符合在主机2000和存储器系统1000之间规定的主机ID策略、分配被请求的存储器的容量是否是可分配容量等来确定是否可以进行分配。
当可以进行存储器分配时,分配管理器310可以将主机ID H#传送到地址管理器320,并且地址管理器320可以使用主机ID H#执行分配操作以分配存储器区域。所分配的存储器区域的地址可以作为分配地址A_LB而被输出。当分配地址A_LB被接收时,分配管理器310可以临时存储被映射到主机ID H#的分配地址A_LB,并且输出分配完成信号FIN。本文中,被映射到主机ID H#的分配地址A_LB被临时存储的原因如下:在所分配的存储器区域分配被释放之后,由于在容量相同的情况下,再次请求分配,所以通过省略存储器分配操作并且使用所存储的日志信息来减少存储器系统1000的操作时间。另外,当存储器区域的分配完成时,分配管理器310可以将分配地址A_LB输出到映射表组件330。
当地址管理器320从分配管理器310接收到主机ID H#时,地址管理器320可以执行存储器分配操作以输出分配地址A_LB。例如,当主机ID H#被接收时,地址管理器320可以使用主机ID H#执行操作,并且基于在操作中生成的值来输出分配地址A_LB。稍后对地址管理器320所执行的存储器分配操作的具体操作进行描述。
映射表组件330可以包括寄存器,在该寄存器中,存储有映射表,在该映射表中,映射了逻辑块地址和物理块地址。当分配地址A_LB被接收时,映射表组件330可以参考存储在寄存器中的映射表来选择与分配逻辑块相对应的物理块地址P_ADD,并且输出所选择的物理块地址P_ADD。
图10是用于描述根据本公开的实施例的存储器分配操作的流程图。
参考图10,主机2000可以将分配请求与对应于所需容量的主机ID H#一起输出到存储器系统1000(S101)。存在主机2000请求存储器分配的多种情况。例如,当确保编程操作所需的容量时,主机2000可以在输出编程请求之前请求存储器分配。可替代地,即使当根据用户需求将存储器区域划分为要使用的多个区域时,主机2000也可以请求存储器分配。另外,主机2000可以在诸如存储器区域的使用目的或使用方法之类的各种情况下请求存储器分配。
主机2000可以请求将存储器分配作为ID类型而非逻辑块地址类型。下文参考图13对主机ID H#进行描述。
当主机2000向存储器系统1000输出主机请求和主机ID H#时,被包括存储器系统1000中的控制器1200可以确定所接收到的主机ID H#是否合适(H#是否可用)(S102)。当主机ID H#不适用于存储器系统1000时(否),控制器1200可以将故障信号FA输出到主机2000,并且主机2000可以改变主机ID H#并且再次输出主机ID H#(S101)。当所接收到的主机IDH#适合于存储器系统1000时(是),控制器1200可以确定主机ID H#是否是要被重用的ID(S103)。例如,控制器1200可以检查日志信息并且检查与所接收到的主机ID H#相同的索引是否存在。当相同索引存在时(是),控制器1200可以输出被映射到对应索引的分配地址A_LB(S104)。当在步骤S103中确定相同的索引不存在时(否),控制器1200可以执行存储器分配操作,以将主机ID H#转换为分配地址A_LB(S105)。
控制器1200可以使用分配地址A_LB搜索物理块地址P_ADD(S106)。
当物理块地址P_ADD被选择时,控制器1200可以根据物理块地址P_ADD访问存储设备1100。
图11是用于描述根据本公开的实施例的解除分配操作的流程图。
参考图11,当解除分配请求从主机2000被接收时(S111),控制器1200可以确定分配地址A_LB是否是可以被重用的地址(S112)。可以根据在分配请求时接收到的主机ID H#是否已经被接收到参考编号或更多来确定是否重用。例如,当主机ID H#是在分配请求时被频繁使用的ID(是)时,控制器1200可以将与被频繁使用的主机ID H#相对应的分配地址A_LB添加到日志信息中,以便以减少操作时间(S113)。当在随后的分配请求时对应的主机IDH#被再次接收时,被添加到日志信息的分配地址A_LB可以在没有存储器分配操作的情况下被直接输出。
在步骤‘S112’中,当确定分配地址A_LB是没有被重用的地址时(否),控制器1200可以释放分配地址A_LB(S114)。
接下来,对用于配置地址分配器220的配置中的一些配置进行描述。
图12是用于描述图9的分配管理器的图。
参考图12,分配管理器310可以包括快速分配管理器311和日志信息寄存器312。
当主机ID H#被接收时,快速分配管理器311可以确定主机ID H#对于存储器系统1000是否是合适的ID。例如,当与所接收到的主机ID H#相对应的容量大于存储器系统1000的空闲存储器块的容量的情况下,快速分配管理器311可以输出分配不可能的信号IMP。当与主机ID H#相对应的容量小于存储器系统1000的空闲存储器块的容量时,快速分配管理器311可以首先传送所接收到的主机ID H#(1)。当日志信息寄存器312中不存在与主机IDH#相对应的索引IND时,快速分配管理器311可以将主机ID H#传送到地址管理器320(2)。也就是说,当日志信息寄存器312(1)中存在与所接收到的主机ID H#相对应的信息时,分配地址A_LB可以从日志表中被直接输出。当日志信息寄存器312(2)中不存在与所接收到的主机ID H#相对应的信息时,分配地址A_LB可以从地址管理器320中被输出。
日志信息寄存器312可以存储其中主机ID H#和分配地址A_LB被映射的日志表。例如,在日志信息寄存器312中,在先前分配操作时使用的主机ID H#可以被存储为索引IND,并且与主机ID H#相对应的分配地址A_LB可以被存储为日志信息LOG。当主机ID H#被从快速分配管理器311接收时,日志信息寄存器312可以检查与所接收到的主机ID H#相对应的索引IND。
当日志信息寄存器312的索引IND中存在与所接收到的主机ID H#相对应的索引IND(①)时,日志信息寄存器312可以将映射到对应索引的分配地址A_LB传送到快速分配管理器311和映射表组件330。例如,在主机ID 2H2被包括的情况下,索引IND和被映射到主机ID 2H2的分配地址2 2A_LB被包括在日志信息LOG中,当所接收到的主机ID H#是‘2’,则被映射到主机ID 2H2的分配地址2 2A_LB可以被传送到快速分配管理器311和映射表组件330中的每个作为分配地址A_LB。
当日志信息寄存器312(2)的索引IND中不存在与所接收导的主机ID H#相对应的索引IND时,日志信息寄存器312不会输出分配地址A_LB。当在主机ID H#被传送到日志信息寄存器312,并且然后经过了预先确定的时间(预设时间)之后没有从日志信息寄存器312输出分配地址A_LB时,快速分配管理器311可以将主机ID H#传送到地址管理器320。接收到主机ID H#的地址管理器320可以执行存储器分配操作以生成分配地址A_LB,并且可以将所生成的分配地址A_LB传送到快速分配管理器311和映射表组件330中的每个。如本文中所使用的相对于诸如预设时间和预先确定的时间之类的参数的单词“预设”和“预先确定”意指该参数在过程或算法中被使用之前,该参数的值被确定。对于一些实施例,参数的值在过程或算法开始之前被确定。在其他实施例中,参数的值在过程或算法期间但在参数在过程或算法中被使用之前被确定。
图13是用于描述主机ID和分配空间的图。
参考图13,主机ID H#根据分配容量可以具有各种值。例如,当逻辑块被分为4GB单元时,主机ID 1H1可以意指逻辑块(n+1)*4GB,而主机ID 2H2可以意指具有与主机ID 1H1的1/2相对应的容量的逻辑块。本文中,‘*’符号意指相乘(×)。例如,当假设主机ID 1H1与32GB的容量相对应时,主机ID 2H2可以意指具有与16GB相对应的容量(其是32GB的1/2)的逻辑块。在同一示例中,主机ID 3和4H3和H4中的每个主机可以意指与主机ID 2H2的1/2相对应的8GB,并且主机ID 5至8H5至H8中的每个主机可以意指与8GB的1/2相对应的4GB。
因此,当主机2000希望接收8GB的容量的分配时,主机2000可以将主机ID 3H3或主机ID 4H4输出到存储器系统1000。
如上文所描述的,由于主机ID H#不需要太多信息,诸如逻辑块地址并且主机IDH#本身意指容量,所以主机ID H#可以由非常少的位形成。作为实施例,当存储器系统1000的存储容量被分为八个逻辑块单元时,2n=8中的‘n’可以是主机ID H#的位数。在这种情况下,主机ID H#可以从000、001、010、011、100、101、110和111中选择。作为另一实施例,当存储器系统1000的存储容量被分为八个逻辑块单元时,存储器容量可以被分为四个逻辑块单元,也就是说,两个组,并且可以为每个组设置主机ID H#。在这种情况下,可以用第一主机ID设置用于四个逻辑块的分配量,并且可以用第二主机ID设置用于其余四个逻辑块的分配量。本文中,第一主机ID可以被用作主ID,而第二主机ID可以被用作子ID。
如上文所描述的,当存储器分配量被实现为主机ID H#时,主机2000与存储器系统1000之间的分配请求可以被简化。
主机2000可以将与所需分配量相对应的主机ID H#传送到存储器系统1000,并且存储器系统1000可以使用所接收到的主机ID H#来执行运算,以根据存储器系统1000的内部状态来提取逻辑块地址。
图13是用于理解本公开的概念的图。通过应用图13的主机ID H#的概念,主机IDH#可以以各种方法被设置。因此,本领域技术人员将理解,以下实施例中描述的主机ID H#的数目可以与图13中所示的主机ID H#的数目不同,并且被分别分配给各种主机ID H#的容量可以以各种方式被设置。
下文对根据存储器系统1000的内部状态将物理块地址映射到逻辑块地址的方法进行描述。
图14是用于描述分配与逻辑块匹配的物理块的方法的图。
参考图14,逻辑块LB1至LBi(i是正整数)可以被分组为多个逻辑块组LBG。被包括逻辑块组LBG中的每个逻辑块组LBG中的逻辑块可以被设置为分别被映射到能够彼此同时操作的物理块MB。例如,控制器1200可以将被包括相同逻辑块组LBG中的逻辑块LB分别映射到能够彼此同时操作的物理块MB。也就是说,能够彼此同时操作的物理块MB可以是被包括在被连接到不同通道CH或相同通道CH的管芯中的物理块MB。例如,被映射到逻辑块组LBG的管芯组DG可以包括被连接到不同通道的管芯。例如,当第0至第三逻辑块LB0至LB3被包括逻辑块组LBG中时,第0逻辑块LB0可以被映射到被包括在被连接到第一通道CH1的管芯中的第一管芯D1中的物理块MB,第一逻辑块LB1可以被映射到被包括在被连接到第二通道CH2的管芯中的第一管芯D1中的物理块MB,第二逻辑块LB2可以被映射到被包括在被连接到第三通道CH3的管芯中的第一管芯D1中的物理块MB,并且第三逻辑块LB3可以被映射到被包括在分别被连接到通道CH3的管芯中的第一管芯D1中的物理块MB。如上文所描述的,当被连接到不同通道CH1至CH4的第一管芯D1的存储器块MB被选择时,由于所选择的存储器块MB可以被同时操作,因此存储器系统1000的操作时间可以被减少。图14示出了在第0至第三通道CH0至CH3的所有通道中,第一管芯D1被选择,但是被包括在相同通道中的不同管芯可以被选择。例如,第0通道CH0的第一至第k管芯D1至Dk可以被映射到相同逻辑块组LBG。也就是说,所分配的存储器块可以被分组为超级块,并且可以在逻辑上被操作作为一个块。
接下来,对从所接收到的主机ID H#中提取分配容量和逻辑块地址的方法进行描述。
图15是用于描述根据本公开的实施例的存储器分配方法的图。
参考图15,地址管理器320可以执行树TR的方法的分配操作,以从主机ID H#提取关于逻辑块地址LB#和分配容量的信息。例如,在图15所示的实施例中,主机ID 1H1可以与最高ID相对应。根据实施例,由于ID是树TR中的较高ID,所以可以被分配较大的容量,并且由于ID是较低ID,所以主机ID H#的数目可以被增加。分配给较低ID的逻辑块的数目比相邻上部ID的逻辑块的数目少1/2。
例如,主机ID 1H1可以是可以接收八个逻辑块LB0至LB7的分配的ID,并且主机ID2H2和主机ID 3H3中的每个可以是可以接收与主机ID 1H1的1/2相对应的逻辑块的分配的ID。例如,当假设主机ID 1H1与第0至第七逻辑块LB0至LB7相对应时,主机ID 2H2可以与第0至第三逻辑块LB0至LB3相对应,并且主机ID 3H3可以与第四至第七逻辑块LB4至LB7相对应。
主机ID 2H2可以包括主机ID 4H4和主机ID 5H5作为较低ID,主机ID 4H4可以与第0逻辑块LB0和第一逻辑块LB1相对应,并且主机ID 5H5可以与第二逻辑块LB2和第三逻辑块LB3相对应。
主机ID 4H4可以包括主机ID 8H8和主机ID 9H9作为较低ID,主机ID 8H8可以与第0逻辑块LB0相对应,并且主机ID 9H9可以与第一逻辑块LB1相对应。
也就是说,主机ID 8至15H8至H15可以与图15的树TR中的最低ID相对应,并且可以分别与最小单位的逻辑块LB0至LB7相对应。
当存储器分配操作在如图15的实施例的树TR的方法中被执行时,主机2000可以输出与所需容量相对应的主机ID H#,并且存储器系统1000可以使用所接收到的主机ID H#来提取节点号ND#。本文中,节点可以分别与逻辑块相对应,并且起始节点和要分配的节点数可以通过存储器分配操作而被提取。例如,当主机ID 2 H2被接收时,为了提取与主机ID2H2相对应的第0至第三逻辑块LB0至LB3,地址管理器320可以执行存储器分配操作以提取与作为起始节点的第0逻辑块LB0相对应的节点号,并且从第0至第三逻辑块LB0至LB3提取节点数。例如,当节点数被提取为四个时,由于节点数提取为四个意指从作为起始节点的第0逻辑块LB0中选择四个节点,所以可以分配从第0至第3逻辑块LB0至LB3。也就是说,节点数可以是被分配的逻辑块的数目,并且分配容量可以根据节点数而被计算。
如上文所描述的,使用主机ID H#的存储器分配操作被执行以提取起始节点和节点数,并且从中分配逻辑块LB。因此,不需要用于存储与主机ID H#中的每个主机ID H#相对应的分配容量和逻辑块的映射信息的单独存储空间。因此,控制器1200的尺寸可以被减小。另外,由于以比现有地址方法的位少的位来实现主机ID H#,所以控制器1200的分配操作还可以被简化。
图16是用于描述被用于图15的存储器分配操作的操作的示例的流程图。
参考图16,当主机ID H#被接收时,地址管理器320可以通过执行以下操作来计算起始节点S_ND#和节点数N_ND#。
步骤S161
当分配操作开始时,1被设置为节点数N_ND#的初始值。也就是说,由于开始操作时所需节点数N_ND#未知,所以1被设置为节点数N_ND#的初始值。节点数N_ND#可以在执行稍后描述的步骤的同时被计算。
步骤S162
计算主机ID H#和最大节点数NDmax,并且计算变量VA。本文中,最大节点数NDmax可以是可以在一个树中被分配的最大节点数,并且变量VA可以被用于计算节点数N_ND#。例如,变量VA是通过将主机ID H#除以将最大节点数NDmax乘以2而获得的值而获得的余数。因此,变量VA可以是0或正整数。例如,当主机ID H#为3且最大节点数NDmax为4时,因为在3/(4×2)公式中,商为0并且余数为3,所以变量VA为3。
步骤S163
在步骤S162中计算出的变量VA被与最大节点数NDmax比较,从而确定变量VA是否等于或大于最大节点数NDmax。作为比较的结果,当变量VA小于最大节点数NDmax时(否),步骤S164被执行。当变量VA等于或大于最大数NDmax时,步骤S166被执行。
步骤S164
通过将节点数N_ND#乘以2所获得的值被设置为新节点数N_ND#。
步骤S165
通过将变量VA乘以2获得的值被设置为新变量VA。
当新变量VA被设置时,在步骤S163中新变量VA再次与最大节点数NDmax比较。以这种方式,步骤S163至S165被重复,直到变量VA等于或大于最大节点数NDmax。
步骤S166
起始节点S_ND#被计算为最大节点数NDmax的负值与变量VA之和。
当完成步骤S166时,分配操作结束,并且可以根据在分配操作中计算出的值中的最终计算出的节点数N_ND#和起始节点S_ND#选择逻辑块,所选择的逻辑块的地址可以被用作分配地址。
用于使用图16中描述的操作从所接收到的主机ID H#计算起始节点S_ND#和节点数N_ND#的各种实施例描述如下。
图17是其中应用图16的操作的存储器分配操作的第一实施例。
参考图16和图17,当从主机2000接收到的主机ID H#是2时,可以计算起始节点S_ND#和与主机ID 2H2相对应的节点数N_ND#。
在步骤S161中,节点数ND#被设置为1作为初始值。
在步骤S162中,通过使用主机ID H#和最大节点数NDmax执行运算来计算变量VA。在图17所示的实施例中,由于可以在一个树TR中分配的最大节点数NDmax为八个(LB0至LB7),所以根据2/(8×2)运算,余数为2。因此,变量VA为2。
在步骤S163中,将变量VA与最大节点数NDmax进行比较。由于在步骤S162中计算出的变量VA为2,并且最大节点数NDmax为8,所以变量VA不等于或大于最大节点数NDmax(否),因此步骤S164被执行。
在步骤S164中,由于通过将节点数N_ND#乘以2而获得的值是新节点数N_ND#,所以根据1×2公式,新节点数N_ND#是2。
在步骤S165中,通过将变量VA乘以2而获得的值是新变量VA。由于在步骤S162中变量VA被计算为2,所以在步骤S165中根据2×2公式,新变量VA为4。
在步骤S163中,将在步骤S165中计算出的变量VA与最大节点数NDmax进行比较。由于变量VA为4并且最大节点数NDmax为8,所以步骤S164被再次执行。
在步骤S164中,根据2×2公式,节点数N_ND#为4。
在步骤S164中,根据4×2公式,变量VA为8。
在步骤S163中,由于变量VA为8并且最大节点数NDmax为8,因此满足条件8=8(是)。因此,步骤S166被执行。
在步骤S166中,由于起始节点S_ND#是通过将最大节点数NDmax乘以-1而获得的值与变量VA相加而获得的值,所以通过将((-1)×8)与作为最终变量VA的8相加而获得的值为0。因此,起始节点S_ND#为0,并且最终节点数N_ND#为4。
在图17中,由于与作为起始节点S_ND的0相对应的逻辑块LB是逻辑块0LB0,所以根据作为节点数N_ND4的4从逻辑块0 LB0开始选择四个逻辑块LB0至LB3。也就是说,当主机ID2H2被接收时,四个逻辑块LB0至LB3的逻辑块地址可以通过图16的操作而被选择,并且地址管理器320可以输出所选择的逻辑块地址作为分配地址A_LB。
将以接收到不同于图17的主机ID H#的主机ID H#的情况为例进行描述。
图18是其中图16的操作被应用的存储器分配操作的第二实施例。
参考图16和图18,当从主机2000接收的主机ID H#是13时,可以计算起始节点S_ND#和与主机ID 13H13相对应的节点数N_ND#。
在步骤S161中,节点数ND#被设置为1作为初始值。
在步骤S162中,通过使用主机ID H#和最大节点数NDmax执行运算来计算变量VA。在图18所示的实施例中,由于可以在一个树TR中分配的最大节点数NDmax是八个(LB0至LB7),所以根据13/(8×2)运算,余数为13。因此,变量VA为13。
在步骤S163中,将变量VA与最大节点数NDmax进行比较。在步骤S162中计算出的变量VA为13,并且最大节点数NDmax为8。因此,由于变量VA大于最大节点数NDmax(是),所以步骤S164和S165被省略,并且步骤S166被执行。
在步骤S166中,由于起始节点S_ND#是通过将最大节点数NDmax乘以-1而获得的值与变量VA相加而获得的值,因此通过将((-1)×8)与作为变量VA的13相加而获得的值为5。因此,起始节点S_ND#为5,并且最终节点数N_ND#为1。
在图18中,由于与作为起始节点S_ND的5相对应的逻辑块LB是逻辑块5LB0,所以根据作为节点数N_ND1的1从逻辑块5 LB5中选择一个逻辑块LB5。也就是说,当主机ID 13H13被接收时,一个逻辑块LB5的逻辑块地址可以通过图16的操作而被选择,并且地址管理器320可以输出所选择的逻辑块地址作为分配地址A_LB。
图16至图18图示了其中逻辑块由一个树操作的实施例。然而,根据存储设备1100,逻辑块可以被分为多个树。其中逻辑块由多个树操作的其他实施例描述如下。
图19和图20是用于描述根据本公开的另一实施例的存储器分配方法的图。
参考图19和图20,地址管理器320可以将逻辑块分组为第0至第n树Tree 0至Treen或T0至Tn以执行操作。
例如,当假设可以在一个树中分配的最大逻辑块数是4时,第0至第三逻辑块LB0至LB3可以被包括在第0树T0中,第四至第七逻辑块LB4至LB7可以被包括在第一树T1中。
在如上所述多个树T0至Tn被使用的方法中,基本节点可以被添加到每个树。例如,在第0树T0中,基本节点可以是与主机ID 0 H0相对应的节点,而在第一树T1中,基本节点可以是与主机ID 8 H8相对应的节点。基本节点不是实质上被使用的主机ID,并且可以在解除分配操作时被使用。稍后参考图28对使用基本节点的解除分配操作进行描述。基本节点可以被设置为从前一树的最后一个节点开始的连续编号。例如,当主机ID 7 H7是第0树T0中的最后一个节点时,基本节点可以是与第一树T1中的主机ID 8 H8相对应的节点。
图21是用于描述被用于图20的存储器分配方法的操作的示例的流程图。
在图21中,由于包括多个树,因此与上文参考图16所描述的操作相比,添加了用于计算树编号的操作。
参考图21,当主机ID H#被接收时,地址管理器320可以执行以下操作以计算树编号T#、起始节点S_ND#和节点数N_ND#。
步骤S211
当开始分配操作时,1被设置为节点数N_ND#的初始值。也就是说,由于开始操作时所需节点数N_ND#未知,所以1被设置为节点数N_ND#的初始值。节点数N_ND#可以在执行稍后所描述的步骤的同时被计算。
步骤S212
计算主机ID H#和最大节点数NDmax,并且计算变量VA。本文中,最大节点数NDmax可以是可以在一个树中被分配的最大节点数,并且变量VA可以被用于计算节点数N_ND#。例如,变量VA是通过将主机ID H#除以将最大节点数NDmax乘以2而获得的值而获得的余数。因此,变量VA可以是0或正整数。例如,当主机ID H#为11并且最大节点数NDmax为4时,由于在11/(4×2)公式中商为2并且变量VA为3,所以变量VA为3
步骤S213
在步骤S213中,通过将通过将主机ID H#除以最大节点数NDmax而获得的商除以2而获得的值是树编号T#。因此,树编号T#可以是0或正整数。
步骤S214
在步骤S212中计算出的变量VA被与最大节点数NDmax比较,使得确定变量VA是否等于或大于最大节点数NDmax。作为比较的结果,当变量VA小于最大节点数NDmax时(否),步骤S215被执行。当变量VA等于或大于最大数量NDmax时,步骤S217被执行。
步骤S215
通过将节点数N_ND#乘以2而获得的值被设置为新节点数N_ND#。
步骤S216
通过将变量VA乘以2而获得的值被设置为新变量VA。
当新变量VA被设置时,步骤S214被再次执行。在步骤S214中,新变量VA再次与最大节点数NDmax比较。以这种方式,步骤S214至S216被重复,直到变量VA等于或大于最大节点数NDmax为止。
步骤S217
起始节点S_ND#被计算为通过将通过将从树编号T#减去1而获得的值(T#-1)乘以最大节点数NDmax而获得的值与变量VA相加而获得的值。也就是说,在步骤S217中,通过计算VA+(T#-1)×NDmax而获得的值可以计算为起始节点S_ND#。
当完成S217步骤时,分配操作结束,并且可以根据分配操作中计算出的值中的最终计算出的树编号T#、节点数N_ND#以及起始节点(S_ND#)来选择逻辑块。所选择的逻辑块的地址可以被用作分配地址。
用于使用图21中描述的操作从接收到的主机ID H#中计算树编号T#、起始节点S_ND#以及节点数N_ND#的各种实施例描述如下。
图22是用于描述其中应用图21的操作的存储器分配操作的第一实施例的图。
参考图21和图22,当从主机2000接收的主机ID H#为1时,可以计算与主机ID 1H1相对应的树编号T#、起始节点S_ND#和节点数N_ND#。
在步骤S211中,节点数ND#被设置为1作为初始值。
在步骤S212中,通过使用主机ID H#和最大节点数NDmax执行运算来计算变量VA。在图22所示的实施例中,由于可以在每个树T0或T1中分配的最大节点数NDmax是四个,所以根据1/(4×2)运算,余数为1。因此,变量VA为1。
在步骤S213中,将通过主机ID H#除以最大节点数NDmax而获得的商再次除以2。在步骤S213的公式中最终计算出的商是树编号T#。在图22的实施例中,由于主机ID H#为1并且最大节点数NDmax为4,所以0被计算为1/4的商,并且通过将0除以2而获得的商为0。因此,树编号T#是0。因此,第0树T0被选择。
在步骤S214中,将变量VA与最大节点数NDmax进行比较。由于在步骤S212中计算出的变量VA为1并且最大节点数NDmax为4,因此变量VA不等于或大于最大节点数NDmax(否),并且因此步骤S215被执行。
在步骤S215中,由于将节点数N_ND#乘以2而获得的值是新节点数N_ND#,所以根据1×2公式,新节点数N_ND#为2。
在步骤S216中,通过将变量VA乘以2而获得的值是新变量VA。由于在步骤S216中变量VA被计算为1,所以根据步骤S216中的1×2公式,新变量VA为2。
在步骤S214中,将在步骤S216中计算出的变量VA与最大节点数NDmax进行比较。由于变量VA为2并且最大节点数NDmax为4,因此步骤S215被再次执行。
在步骤S215中,根据2×2公式,节点数N_ND#为4。
在步骤S216中,根据2×2公式,变量VA为4。
在步骤S214中,由于变量VA为4并且最大节点数NDmax为4,因此满足条件4=4(是)。因此,步骤S217被执行
在步骤S217中,起始节点S_ND#是通过将通过从树编号T#中减去1而获得的值(T#-1)乘以最大节点数NDmax而获得的值与变量VA相加而获得的值。因此,通过将(-1)×4与作为变量VA的4相加而获得的值为0。因此,起始节点S_ND#为0,并且最终节点数N_ND#为4。
根据上文所描述的操作计算的树编号T#、起始节点S_ND#和节点数ND#分别为0、0和4。因此,可以通过主机ID 1H1从被包括在第0树T0中的第0逻辑块LB0中选择被包括在第四逻辑块中的逻辑块L0至L3。
也就是说,当主机ID 1 H1被接收时,四个逻辑块LB0至LB3的逻辑块地址可以通过图21的操作而被选择,并且地址管理器320可以输出所选择的逻辑块地址作为分配地址A_LB。
以其中接收到与图22的主机ID H#不同的主机ID H#情况为例进行描述。
图23是用于描述其中应用图21的操作的存储器分配操作的第二实施例的图。
参考图21和图23,当从主机2000接收到的主机ID H#是10时,可以计算与主机ID10H10相对应的树编号T#、起始节点S_ND#和节点数N_ND#。
在步骤S211中,节点数ND#被设置为1作为初始值。
在步骤S212中,通过使用主机ID H#和最大节点数NDmax执行运算来计算变量VA。在图23所示的实施例中,由于可以在每个树TR0或TR1中分配的最大节点数NDmax是四个,所以根据10/(4×2)运算,余数为2。因此,变量VA为2。
在步骤S213中,通过运算主机ID H#和最大节点数NDmax来计算树编号T3。由于根据(10/4)/2公式商为1,所以树编号T#为1。
在步骤S214中,将变量VA与最大节点数NDmax进行比较。由于在步骤S212中计算出的变量VA为2并且最大节点数NDmax为4,所以变量VA小于最大节点数NDmax(否)。因此,步骤S215被执行。
在步骤S215中,由于将节点数N_ND#乘以2而获得的值是新节点数N_ND#,所以根据1×2公式,新节点数N_ND#为2。
在步骤S216中,通过将变量VA乘以2而获得的值是新变量VA。由于在步骤S212中变量VA被计算为2,所以根据步骤S216中的2×2公式,新变量VA计算为4。
在步骤S214中,将在步骤S216中计算出的变量VA与最大节点数NDmax进行比较。由于变量VA为4并且最大节点数NDmax为4,因此满足4=4的条件(是)。因此,步骤S217被执行。
在步骤S217中,起始节点S_ND#是通过将通过将从树编号T#中减去1而获得的值乘以最大节点数NDmax而获得的值与变量VA相加而获得的值。因此,通过将(1-1)×4与作为变量VA的4相加而获得的值为4。因此,起始节点S_ND#为4,并且最终节点数N_ND#为2。
根据上述操作计算的树编号T#起始节点S_ND#和节点数ND#分别为1、4和2。因此,可以通过主机ID 10H10从被包括在第一树T1中的第四逻辑块LB4中选择被包括在第二逻辑块中的逻辑块L4和L5。
也就是说,当主机ID 10H10被接收时,两个逻辑块LB4和LB5的逻辑块地址可以通过图21的操作而被选择,并且地址管理器320可以输出所选择的逻辑块地址作为分配地址A_LB。
在上述实施例中,当主机2000输出一个主机ID H#时,存储器系统1000的控制器1200使用所接收到的主机ID H#执行分配操作,以选择逻辑块。
在以下实施例中,描述了一种方法,其中主机2000输出多个主机ID,并且相应地,控制器1200选择逻辑块。
图24是用于描述用于请求从主机到存储器系统的存储器分配的主机ID策略的图。
参考图24,当主机2000向存储器系统1000请求存储器分配时,主机2000可以根据主机ID策略输出两个或更多个主机ID 1H#和2H#以请求存储器分配。主机ID策略可以包括关于逻辑块的容量、树编号、主机ID的数目等的信息,并且这样的信息可以与主机2000和存储器系统1000共享。主机2000可以根据与存储器系统1000共享的主机ID策略向存储器系统1000请求分配或请求解除分配。图24示出了其中主机2000将两个主机ID 1H#和2H#输出到存储器系统1000的实施例,并且主机ID的数目能够根据实施例而改变。
主机2000输出第一主机ID 1H#和第二主机ID 2H#作为不同的ID,使得逻辑块不会被重复分配。存储器系统1000可以分别使用第一主机ID 1H#和第二主机ID 2H#执行分配操作,以选择被分配给各个主机ID的逻辑块。例如,存储器系统1000可以使用第一主机ID 1H#选择根据操作结果分配的逻辑块,并且可以使用第二主机ID 2H#选择根据操作结果分配的逻辑块。
图25是用于描述图24的主机ID策略的实施例的图。
参考图25,主机2000和存储器系统1000可以根据预设主机ID策略将存储器系统1000的存储容量划分为一个或多个逻辑块,并且可以根据主机ID策略执行存储器分配操作。可替代地,相反,存储器系统1000的存储容量可以被划分为一个或多个逻辑块,并且主机ID策略可以被相应地设置。如本文中针对诸如预设主机ID策略之类的参数所使用的单词“预设”意指在该参数在过程或算法中被使用之前该参数的值被确定。对于一些实施例,参数的值在过程或算法开始之前被确定。在其他实施例中,参数的值在过程或算法期间但在参数过程或算法中被使用之前被确定。
例如,在第一主机ID策略1下,主机2000可以使用一个主机ID向存储器系统1000请求分配,在第二主机ID策略2下,主机2000可以使用两个不同的主机ID向存储器系统1000请求分配,并且在第三主机ID策略3下,主机2000可以使用三个不同的主机ID向存储器系统1000请求分配。在使用诸如第二或第三主机ID策略2或3之类的多个主机ID的策略中,可以为各个主机ID不同地设置可分配容量。例如,在第二主机ID策略2中,可以分配给第一主机ID 1H#的容量和可以分配给第二主机ID 2H#的容量可以与16GB相同。作为另一示例,在第三主机ID策略3中,可以分配给第一主机ID 1H#的容量可以被设置为16GB,并且可以分配给第二主机ID 2H#和第三主机3H#的容量可以被平均设置为8GB。
为此,主机2000和存储器系统1000彼此共享主机ID策略。例如,由于不同的存储器系统1000可以具有不同的可分配总容量,因此主机ID策略可以在存储器系统1000中被优先设置。例如,当存储器系统1000和主机2000被连接到彼此时,主机2000可以向存储器系统1000请求各种策略信息,并且存储器系统1000可以根据主机2000的请求将应用于各种操作的策略信息传送主机2000。此时,在存储器系统1000中设置的主机ID策略可以被传送到主机2000。主机2000可以根据从存储器系统1000传送的主机ID策略生成与所需分配容量相对应的主机ID,并且将所生成的主机ID输出到存储器系统1000。
图26是用于描述参考图25描述的实施例中的第二主机ID策略的实施例的图。
参考图26,当假设一个逻辑块LB的容量为4GB时,根据第一主机ID 1H#和第二主机ID 2H#选择的所有逻辑块可以被分配。例如,当第一主机ID 1H1和第二主机ID 10 H10被接收时,控制器1200的地址管理器320可以执行分配操作,以选择与第一主机ID 1 H1相对应的四个逻辑块LB0至LB3以及与第二主机ID 10 H10相对应的两个逻辑块LB4和LB5。由于四个逻辑块LB0至LB3的容量是16GB并且两个逻辑块LB4和LB5的容量是8GB,所以主机2000请求24GB的存储器分配。另外,即使相同的容量分配被请求,主机2000也可以使用不同的主机ID。例如,与上述实施例不同,主机2000可以输出用于24GB的存储器分配的第一主机ID 2H2和第二主机ID 9 H9。在这种情况下,地址管理器320可以执行分配操作以选择与第一主机ID H2相对应的两个逻辑块LB0和LB1以及与第二主机ID 9 H9相对应的四个逻辑块LB4至LB7。
图27是用于描述图9的映射表组件的操作的图。
参考图27,当地址管理器320输出如上所述的分配地址A_LB时,映射表组件330可以输出被映射到分配地址A_LB的物理块地址P_ADD。为此,映射表组件330可以包括用于存储映射表的寄存器,在该映射表中,逻辑块地址L_ADD和物理块地址P_ADD被映射。
映射表的逻辑块地址L_ADD可以包括根据主机ID策略的逻辑块地址,而物理块地址P_ADD可以包括存储设备1100中包括的存储器块之中的可分配存储器块的地址。具体地,鉴于树结构,物理块地址P_ADD可以被映射到被包括在相同树中的逻辑块可以同时操作的地址。
将映射表的物理块地址P_ADD映射到逻辑块地址L_ADD的操作可以由处理器(图2的210)执行。然而,在实施例中,物理块地址P_ADD可以被映射到逻辑块地址L_ADD,使得根据主机2000的请求分配的不同物理块可以同时操作。这种地址映射操作可以由被包括在控制器1200中的处理器(图2的210)执行。处理器210可以根据存储设备1100的空闲存储器块的状态通过将物理块地址P_ADD映射到逻辑块地址L_ADD来频繁地更新映射表。例如,处理器210可以在包括处理器210的存储器系统1000的后台操作时更新映射表,或可以在从主机2000接收到分配请求时更新映射表。
当地址管理器320执行分配操作以输出第0逻辑块LB0和第一逻辑块LB1的地址作为分配地址A_LB时,映射表组件330可以从存储的映射表输出被映射到第0逻辑块LB0的第一管芯D1的第一存储器块MB1和被映射到第一逻辑块LB1的第二管芯D2的第二存储器块MB2作为物理块地址P_ADD。
在上文描述中,已经对基于主机ID H#来计算起始节点S_ND#、节点数ND#和树编号T#的方法进行了描述。接下来,与上述实施例相比,将对基于起始节点S_ND#来计算主机IDH#的方法进行描述。当通过在诸如取消分配之类的操作时使用的关于分配的区域的信息来计算主机ID时,该方法可以被使用。
图28是用于描述使用起始节点计算主机ID的操作的示例的流程图。
参考图28,地址管理器320可以基于通过上述分配操作计算的起始节点S_ND#来计算主机ID H#。
步骤S281
当开始解除分配操作时,1被设置为变量VA的初始值。变量VA意指可以被同时处理的连续逻辑块的数目。
步骤S282
起始节点S_ND#和最大节点数NDmax被计算,从而树编号T#被计算。例如,通过将起始节点S_ND#除以最大节点数NDmax而获得的商是树编号T#。
步骤S283
基本节点B#通过将通过在步骤S282中计算的树编号T#乘以2而获得的值乘以最大节点数NDmax来计算。基本节点B#是每个树的第一主机ID,并且在存储器分配操作时,被指定为现有节点的主机ID不被使用。也就是说,基本节点B#仅被用在解除分配操作中,而不被用在存储器分配操作中。
步骤S284
节点匝数N#通过将通过将起始节点S_ND#除以最大节点数NDmax而获得的余数与最大节点数NDmax相加来计算。在解除分配操作时,节点匝数N#被用于从计算出的树编号T#的基本节点B#中搜索主机ID H#所对应的节点的编号。
步骤S285
确定所计算的节点匝数N#的主机ID H#是否为分配的主机ID。
当计算出的节点匝数N#的主机ID H#不是分配的主机ID(否)时,步骤S286被执行。当主机ID H#是分配的主机ID时(是),步骤S288被执行。
步骤S286
通过将变量VA乘以2而获得的值被设置为新变量VA。
步骤S287
通过将节点匝数N#除以2而获得的商被设置为新节点匝数N#。
当节点匝数N#被新设置时,使用新设置的节点匝数N#,步骤S285被再次执行。
步骤S288
当在步骤S285中确定与节点匝数N#相对应的主机ID被分配时(是),通过将基本节点B#和节点匝数N#相加而计算出的节点是主机ID H#。
用于使用参考图28描述的操作从起始节点S_ND#计算主机ID H#的实施例描述如下。
图29是用于描述其中图28的操作被应用的计算主机ID的方法的实施例的图。
参考图28和29,当起始节点S_ND#是0LB0时,主机ID H#可以通过应用参考图28描述的操作而被计算。
在步骤S281中,1设置为变量VA的初始值。
在步骤S282中,使用起始节点S_ND#和最大节点数NDmax的操作被执行,从而树编号T#被计算。在图29的实施例中,由于起始节点S_ND#为0(1)并且最大节点数NDmax为4,所以根据0/4运算,商为0。因此,树编号T#为0(2)。
在步骤S283中,通过将通过将树编号T#乘以2而获得的值和最大节点数NDmax相乘而获得的值是基本节点B#。在实施例中,由于树编号T#为0,所以基本节点B#为0(3)。也就是说,主机ID 0H0是基本节点B#。
在步骤S284中,由于起始节点S_ND#为0并且最大节点数NDmax为4,所以通过将起始节点S_ND#除以最大节点数NDmax而获得的余数为0。由于通过将最大节点数NDmax与余数相加而获得的值是节点匝数N#,所以根据0+4运算,节点匝数N#为4。
在步骤S285中,确定与所计算的节点匝数N#相对应的主机ID H#是否为分配的ID。例如,由于计算出的基本节点B#为0并且节点匝数N#为4,所以确定与来自主机ID 0H0的第四节点相对应的主机ID 4H4是否是分配的ID。尽管第0逻辑块LB0被分配给主机ID 4H4,但是由于根据当前分配的逻辑块的数目确定除了第0逻辑块LB0之外还分配了其他逻辑块(否),所以步骤S286被执行。
在步骤S286中,变量VA乘以2,并且新变量VA为2。
在步骤S287中,当节点匝数N#除以2时,4/2运算的商为2。因此,新节点匝数N#为2(4)。
在步骤S285中,由于新计算的节点匝数N#为2,所以检查与来自与基本节点B#0相对应的主机ID 0 H0的第二节点相对应的主机ID 2 H2是否被分配。由于两个逻辑块LB0和LB1被分配给主机ID 2 H2,所以逻辑块的数目与当前分配给所计算的树编号T#的逻辑块的数目相同。当分配的逻辑块的数目与上述相同时(是),步骤S288被执行。
在步骤S288中,当基本节点B#和节点匝数N#被相加时,根据0+2运算来计算主机ID2 H2。
如上文所描述的,可以使用分配的逻辑块的起始节点S_ND#和在所选择的树中分配的逻辑块的数目来计算主机ID H#和变量VA。这种操作可以被用于输出与所分配的逻辑块相对应的主机ID H#,或者搜索与在存储器系统中执行的操作(例如,后台操作)时所分配的逻辑块相对应的主机ID H#。例如,当诸如垃圾收集、读取回收、不良块管理或损耗均衡之类的操作在存储器系统中被执行时,发生误差的块被检测时,上述操作可以被用于搜索与所检测到的块相对应的节点编号或主机ID H#。另外,由于可以从计算出的变量VA掌握可以被同时处理的连续逻辑块的数目,所以还可以基于连续逻辑块的数目来执行诸如地址映射之类的操作。
执行上述存储器分配操作和解除分配操作的控制器1200可以如下被应用于各种存储器系统。
图30至图33是用于描述包括图2所示的控制器的存储器系统的另一实施例的图。
参考图30,存储器系统30000可以被实现为蜂窝电话、智能电话、平板PC、个人数字助理(PDA)或无线通信设备。
存储器系统30000可以包括存储设备1100和能够控制存储设备1100的操作的控制器1200。控制器1200可以在主机2000的控制下控制存储设备1100的数据访问操作,例如,编程、擦除或读取操作。
在控制器1200的控制下,可以通过显示器3200输出在存储设备1100中被编程的数据。
无线电收发器3300可以通过天线ANT传送和接收无线电信号。例如,无线电收发器3300可以将通过天线ANT接收的无线电信号转换成可以由主机处理的信号。因此,主机可以处理从无线电收发器3300输出的信号,并且将处理后的信号传送到控制器1200或显示器3200。控制器1200可以将由主机2000处理的信号传送到存储设备1100。另外,无线电收发器3300可以将从主机输出的信号转换成无线电信号,并且通过天线ANT将转换后的无线电信号输出到外部设备。输入设备3400可以是能够输入用于控制处理器3100的操作的控制信号或要由主机处理的数据的设备。输入设备3400可以被实现为指示设备,诸如触摸垫或计算机鼠标、小键盘或键盘。主机可以控制显示器3200的操作,使得通过显示器3200输出从控制器1200输出的数据、从无线电收发器3300输出的数据、或者从输入设备3400输出的数据。
参考图31,存储器系统40000可以被实现为个人计算机(PC)、平板电脑、上网本、电子阅读器、个人数字助理(PDA)、便携式多媒体播放器(PMP)、MP3播放器、或MP4播放器。
存储器系统40000可以包括存储设备1100和能够控制存储设备1100的数据处理操作的控制器1200。
主机可以根据通过输入设备4200输入的数据通过显示器4300输出存储在存储设备1100中的数据。例如,输入设备4200可以实现为指示设备,诸如触摸垫或计算机鼠标、小键盘或键盘。
主机可以控制存储器系统40000的整体操作,并且控制控制器1200的操作。
参考图32,存储器系统50000可以被实现为图像处理设备,例如,数码相机、配备有数码相机的便携式电话、配备有数码相机的智能手机、或配备有数码相机的平板PC。
存储器系统50000可以包括存储设备1100和控制器1200,该控制器1200能够控制存储器设备1100的数据处理操作,例如,编程、擦除或读取操作。
存储器系统50000的图像传感器5200可以将光学图像转换为数字信号。转换后的数字信号可以被传送到主机。在主机的控制下,转换后的数字信号可以通过显示器5300被输出,或者可以通过控制器1200被存储在存储设备1100中。在主机的控制下,存储在存储设备1100中的数据可以通过显示器5300而被输出。
参考图33,存储器系统可以包括主机2000和存储器卡70000。
存储器卡70000可以被实现为智能卡。存储器卡70000可以包括存储设备1100、控制器1200、以及卡接口7100。
控制器1200可以控制存储设备1100和卡接口7100之间的数据交换。根据实施例,卡接口7100可以是安全数字(SD)卡接口或多媒体卡(MMC)接口,但不限于此。另外,卡接口7100可以根据主机2000的协议来接合主机2000与控制器1200之间的数据交换。根据实施例,卡接口7100可以支持通用串行总线(USB)协议、以及芯片间(IC)-USB协议。本文中,卡接口7100可以是指能够支持由主机2000使用的协议的硬件、被安装在硬件中的软件、或信号传送方法。
尽管本公开描述了许多实施例,但是可以在不脱离本公开的范围和技术精神的情况下进行各种改变和修改。因此,本公开的范围不应当限于上述实施例,而应当由所附权利要求和本公开的权利要求的等同物来确定。
Claims (28)
1.一种控制器,包括:
分配管理器,被配置为确定从主机输出的主机标识ID是否为可分配ID;
地址管理器,被配置为当所述主机ID被从所述分配管理器接收时,使用所述主机ID执行分配操作,以选择与所述主机ID相对应的逻辑块,并且输出所述逻辑块的地址作为分配地址,其中所述地址管理器基于多个节点按照树进行连接的结构来执行所述分配操作;以及
映射表组件,被配置为存储其中逻辑块地址和物理块地址分别被映射的映射表,选择与所述分配地址相对应的逻辑块地址,并且输出被映射到选择的逻辑块地址的所述物理块地址。
2.根据权利要求1所述的控制器,其中为根据主机ID策略而被划分的逻辑块的每个容量设置所述主机ID。
3.根据权利要求2所述的控制器,其中一个或多个主机ID根据所述主机ID策略被从所述主机输出。
4.根据权利要求1所述的控制器,其中所述分配管理器根据所述主机ID是否符合规定的主机ID策略或者被请求分配的存储器的容量是否为可分配容量来确定所述主机ID是否为所述可分配ID。
5.根据权利要求4所述的控制器,其中所述主机ID策略包括关于所述逻辑块的容量、树的数目以及主机ID的数目的信息,并且所述信息与所述主机和存储器系统共享。
6.根据权利要求4所述的控制器,其中当所述主机ID被确定为不可分配ID时,所述分配管理器向所述主机输出分配不可能的信号;当所述主机被ID被确定为所述可分配ID时,所述分配管理器将所述主机ID输出给所述地址管理器,使得所述分配操作被执行;并且当所述分配地址在所述分配操作完成之后被接收时,所述分配管理器将分配完成信号输出到所述主机。
7.根据权利要求1所述的控制器,其中所述多个ID在所述树中彼此关联的方法包括:其中在所述ID之中多个较低ID对应于较高ID的配置。
8.根据权利要求7所述的控制器,其中与所述ID之中的最高ID相对应的所述主机ID与被包括在所述树中的所有逻辑块相对应,并且
与所述ID之中的最低ID相对应的所述主机ID分别与被包括在所述树中的所述逻辑块相对应。
9.根据权利要求1所述的控制器,其中所述映射表组件包括寄存器,所述寄存器被配置为存储所述映射表。
10.根据权利要求9所述的控制器,其中被映射到所述逻辑块地址的所述物理块地址根据所述映射表中由控制器控制的存储设备的状态而被更新。
11.根据权利要求1所述的控制器,其中所述地址管理器在解除分配操作时使用所述分配地址来计算所述主机ID。
12.一种控制器,包括:
处理器,被配置为将与空闲存储器块相对应的物理块地址映射到逻辑块地址,使得彼此可同时操作的所述空闲存储器块被包括在同一树中;
地址分配器,被配置为基于所述树的配置来执行分配操作,以选择与主机ID相对应的逻辑块,并且输出被映射到所述逻辑块的地址的所述空闲存储器块的地址,多个ID按照所述树进行连接;以及
存储器接口,访问与所述空闲存储器块的地址相对应的物理块。
13.根据权利要求12所述的控制器,其中与所述空闲存储器块的所述地址相对应的所述物理块形成逻辑上作为一个块操作的超级块。
14.根据权利要求12所述的控制器,其中当所述空闲存储器块之中由所述主机ID选择的块被生成时,所述处理器将除了选择的块之外的所述物理块的所述地址映射到所述逻辑块地址。
15.根据权利要求12所述的控制器,其中所述地址分配器包括:
分配管理器,被配置为确定所述主机ID是否可用,并且存储关于所述主机ID之中与参考数目相比被频繁使用的ID的日志信息;
地址管理器,被配置为当所述主机ID被从所述分配管理器接收时,使用所述主机ID执行分配操作,以选择与所述主机ID相对应的逻辑块,并且输出所述逻辑块的地址作为分配地址;以及
映射表组件,被配置为存储其中所述逻辑块地址和所述物理块地址分别被映射的映射表,选择与所述分配地址相对应的逻辑块地址,并且输出被映射到选择的逻辑块地址的所述物理块地址。
16.根据权利要求15所述的控制器,其中所述日志信息包括被映射到所述主机ID之中的被频繁使用的ID的逻辑块地址。
17.根据权利要求15所述的控制器,其中所述分配管理器包括:
日志信息寄存器,被配置为存储所述日志信息;以及
快速分配管理器,被配置为当所述主机ID被接收时,检查存储在所述日志信息寄存器中的ID中是否存在与接收到的主机ID相对应的ID;当所述相对应的ID存在时,直接输出被映射到相对应的ID的日志信息;并且当所述相对应的ID不存在时,将所述主机ID传送到所述地址管理器。
18.根据权利要求15所述的控制器,其中所述地址管理器通过使用所述主机ID执行所述分配操作来计算所述逻辑块的所述地址,或通过使用所述逻辑块的所述地址执行解除分配操作来计算所述主机ID。
19.根据权利要求15所述的控制器,其中所述映射表组件包括其中存储了映射表的寄存器,在所述映射表中,所述逻辑块地址和所述物理块地址被映射。
20.根据权利要求19所述的控制器,其中存储在所述映射表中的所述地址通过所述处理器的控制而被更新。
21.根据权利要求20所述的控制器,其中所述处理器在包括所述处理器的存储器系统的后台操作时更新所述映射表,或当分配请求被从主机接收时更新所述映射表。
22.一种存储器系统,包括:
多个存储器块;以及
控制器,被配置为根据其中所述存储器块被划分为逻辑块单元的主机ID策略接收主机ID,基于所接收的主机ID来获得分配地址,并且根据被映射到所述分配地址的物理块地址访问存储器块中的分配的存储器块。
23.根据权利要求22所述的存储器系统,其中所述主机ID根据所需逻辑块的数目而被不同地实现。
24.根据权利要求22所述的存储器系统,其中当主机ID被接收参考数目或更多时,所述控制器存储与接收所述参考数目或更多的所述主机ID相对应的日志信息;并且当被接收所述参考数目或更多的所述主机ID被接收时,根据所述日志信息分配存储器块,而无需进行分配操作。
25.根据权利要求22所述的存储器系统,其中当错误在所述分配的存储器块中发生时,所述控制器使用所述分配地址执行解除分配操作以提取所述主机ID。
26.一种操作存储器系统的方法,所述方法包括:
当被划分为逻辑块单元的主机ID被接收时,通过使用所述主机ID执行分配操作来计算逻辑块的起始节点和数目,其中所述分配操作基于其中ID通过节点而被连接的树来被执行;
生成根据所述起始节点和所述数目分配的所述逻辑块的地址作为分配地址;
检测被映射到所述分配地址的物理块地址;以及
根据所述物理块地址分配存储器块。
27.根据权利要求26所述的方法,其中所述树具有所述ID之中的多个较低ID被连接到较高ID的结构。
28.根据权利要求27所述的方法,其中当由于所述分配操作所述ID中的一个ID被选择时,被包括在所选择的ID中的所有逻辑块被分配。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0025327 | 2019-03-05 | ||
KR1020190025327A KR20200106739A (ko) | 2019-03-05 | 2019-03-05 | 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111666223A CN111666223A (zh) | 2020-09-15 |
CN111666223B true CN111666223B (zh) | 2023-08-29 |
Family
ID=72336360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911073158.0A Active CN111666223B (zh) | 2019-03-05 | 2019-11-05 | 控制器、包括控制器的存储器系统和操作该系统的方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11030008B2 (zh) |
KR (1) | KR20200106739A (zh) |
CN (1) | CN111666223B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200106739A (ko) * | 2019-03-05 | 2020-09-15 | 에스케이하이닉스 주식회사 | 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법 |
KR102316532B1 (ko) * | 2021-05-24 | 2021-10-22 | 한양대학교 산학협력단 | 플래시 메모리에서의 런타임 배드 블록 관리 방법 |
CN113867621B (zh) * | 2021-08-20 | 2024-04-26 | 帝杰曼科技股份有限公司 | 一种区块链本地化云计算大数据应用分析方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102576333A (zh) * | 2009-10-05 | 2012-07-11 | 马维尔国际贸易有限公司 | 非易失性存储器中的数据高速缓存 |
CN105847456A (zh) * | 2015-01-13 | 2016-08-10 | 浙江大华技术股份有限公司 | 一种rs485自动分配地址方法、装置和系统 |
CN106776353A (zh) * | 2015-11-19 | 2017-05-31 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080307156A1 (en) * | 2007-06-08 | 2008-12-11 | Sinclair Alan W | System For Interfacing A Host Operating Through A Logical Address Space With A Direct File Storage Medium |
KR101824949B1 (ko) | 2011-11-23 | 2018-02-05 | 삼성전자주식회사 | 플래시 메모리를 기반으로 하는 저장 장치 및 그것을 포함한 사용자 장치 |
TWI480733B (zh) * | 2012-03-29 | 2015-04-11 | Phison Electronics Corp | 資料寫入方法、記憶體控制器與記憶體儲存裝置 |
JP2014002639A (ja) * | 2012-06-20 | 2014-01-09 | Fujitsu Ltd | ストレージシステム及びストレージシステムの消費電力制御方法 |
US9128811B2 (en) * | 2012-06-26 | 2015-09-08 | Intel Corporation | Assigning addresses to devices on an interconnect |
US9164888B2 (en) * | 2012-12-10 | 2015-10-20 | Google Inc. | Using a logical to physical map for direct user space communication with a data storage device |
JP2015184856A (ja) * | 2014-03-24 | 2015-10-22 | ソニー株式会社 | メモリコントローラ、記憶装置、情報処理システム、および、それらにおける制御方法。 |
CN105446890B (zh) * | 2014-09-18 | 2020-08-25 | 三星电子株式会社 | 智能数据部署 |
KR101861851B1 (ko) | 2016-04-26 | 2018-05-29 | 한양대학교 산학협력단 | 저장 장치의 메모리 컨트롤러가 수행하는 청크 할당 방법 및 메모리 컨트롤러 |
KR101950759B1 (ko) | 2016-04-26 | 2019-02-21 | 한양대학교 산학협력단 | 저장 장치의 메모리 컨트롤러가 수행하는 가비지 컬렉션 방법 및 메모리 컨트롤러 |
US10176116B2 (en) * | 2016-09-28 | 2019-01-08 | Intel Corporation | Computer product, method, and system to provide discovery services to discover target storage resources and register a configuration of virtual target storage resources mapping to the target storage resources and an access control list of host nodes allowed to access the virtual target storage resources |
US10459644B2 (en) | 2016-10-28 | 2019-10-29 | Western Digital Techologies, Inc. | Non-volatile storage system with integrated compute engine and optimized use of local fast memory |
JP2018160189A (ja) * | 2017-03-23 | 2018-10-11 | 東芝メモリ株式会社 | メモリシステム |
US10437476B2 (en) * | 2017-10-23 | 2019-10-08 | Micron Technology, Inc. | Namespaces allocation in non-volatile memory devices |
US10223254B1 (en) * | 2017-11-16 | 2019-03-05 | Micron Technology, Inc. | Namespace change propagation in non-volatile memory devices |
KR20200106739A (ko) * | 2019-03-05 | 2020-09-15 | 에스케이하이닉스 주식회사 | 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법 |
US11599304B2 (en) * | 2020-11-16 | 2023-03-07 | Western Digital Technologies, Inc. | Data aggregation in ZNS drive |
-
2019
- 2019-03-05 KR KR1020190025327A patent/KR20200106739A/ko unknown
- 2019-10-10 US US16/598,560 patent/US11030008B2/en active Active
- 2019-11-05 CN CN201911073158.0A patent/CN111666223B/zh active Active
-
2021
- 2021-05-24 US US17/328,838 patent/US12001885B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102576333A (zh) * | 2009-10-05 | 2012-07-11 | 马维尔国际贸易有限公司 | 非易失性存储器中的数据高速缓存 |
CN105847456A (zh) * | 2015-01-13 | 2016-08-10 | 浙江大华技术股份有限公司 | 一种rs485自动分配地址方法、装置和系统 |
CN106776353A (zh) * | 2015-11-19 | 2017-05-31 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Non-Patent Citations (1)
Title |
---|
A file-system-aware FTL design for flash-memory storage systems;Po-Liang Wu;《2009 Design, Automation&Test in Europe Conference & Exhibition》;1-6 * |
Also Published As
Publication number | Publication date |
---|---|
US20210279106A1 (en) | 2021-09-09 |
US12001885B2 (en) | 2024-06-04 |
US11030008B2 (en) | 2021-06-08 |
US20200285519A1 (en) | 2020-09-10 |
KR20200106739A (ko) | 2020-09-15 |
CN111666223A (zh) | 2020-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109213705B (zh) | 存储装置及其操作方法 | |
US12001413B2 (en) | Key-value storage device and operating method thereof | |
CN109783397B (zh) | 存储器系统及其操作方法 | |
CN111666223B (zh) | 控制器、包括控制器的存储器系统和操作该系统的方法 | |
CN110489360B (zh) | 存储器控制器及该存储器控制器的操作方法 | |
US20200110545A1 (en) | Memory system and operating method thereof | |
KR102456490B1 (ko) | 메모리 시스템 및 그 동작 방법 | |
CN112201292A (zh) | 控制器及其操作方法 | |
KR20190043863A (ko) | 메모리 시스템 및 그것의 동작 방법 | |
KR20210003625A (ko) | 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법 | |
CN113253912B (zh) | 存储器系统及其操作方法 | |
KR20200117256A (ko) | 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN114115708A (zh) | 存储装置及其操作方法 | |
CN111258934B (zh) | 存储器控制器、包括其的存储器系统及操作其的方法 | |
CN110908596A (zh) | 数据存储装置、其操作方法和包括存储装置的存储系统 | |
KR20190098393A (ko) | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 | |
CN110309075B (zh) | 存储器控制器以及具有存储器控制器的存储器系统 | |
CN111209224A (zh) | 存储器系统及其操作方法 | |
CN111240585A (zh) | 控制器、包括控制器的存储器系统及其操作方法 | |
US11656793B2 (en) | Controller for managing cache data, memory system including the same, and method performed by the same | |
CN111090594A (zh) | 存储器系统及其操作方法 | |
CN115543860A (zh) | 数据处理系统及其操作方法 | |
CN115938422A (zh) | 刷新数据的数据存储装置及其操作方法 | |
KR102653017B1 (ko) | 비휘발성 메모리 장치들 및 이를 제어하는 방법들 | |
KR20220133003A (ko) | 메모리 시스템 및 그것의 동작 방법 |
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 |