CN111580744B - 存储器控制器及其操作方法 - Google Patents
存储器控制器及其操作方法 Download PDFInfo
- Publication number
- CN111580744B CN111580744B CN201911012119.XA CN201911012119A CN111580744B CN 111580744 B CN111580744 B CN 111580744B CN 201911012119 A CN201911012119 A CN 201911012119A CN 111580744 B CN111580744 B CN 111580744B
- Authority
- CN
- China
- Prior art keywords
- mapping
- extended
- mapping data
- data
- 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
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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/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
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric 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/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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- 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/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- 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/7204—Capacity control, e.g. partitioning, end-of-life degradation
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)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
本文描述了存储器控制器及其操作方法。一种被配置为控制存储器装置的存储器控制器可以包括:映射数据确定单元,被配置为从存储器装置接收位图信息,位图信息指示与位图信息中包括的位相对应的并且包括多个扩展映射数据的映射段是否已被存储在存储器装置中;以及映射数据管理单元,被配置为基于位图信息输出关于多个扩展映射数据的生成的信息。多个扩展映射数据中的每一个可以包括逻辑块地址和物理块地址之间的映射信息。
Description
相关申请的交叉引用
本申请要求于2019年2月15日提交的韩国专利申请号10-2019-0018075的优先权,其全部内容通过引用并入本文。
技术领域
本公开的各个实施例一般地涉及电子装置,并且更具体地涉及存储器控制器以及操作存储器控制器的方法。
背景技术
通常,存储装置在诸如计算机、智能电话或智能平板的主机装置的控制下存储数据。根据被提供为存储数据的装置的类型,存储装置的示例可以被分类为将数据存储在磁盘中的诸如硬盘驱动器(HDD)的装置以及将数据存储在半导体存储器(特别是非易失性存储器)中的诸如固态驱动器(SSD)或存储器卡的装置。
存储装置可以包括其中存储数据的存储器装置和被配置为将数据存储在存储器装置中的存储器控制器。存储器装置可以被分类为易失性存储器和非易失性存储器。非易失性存储器的代表性示例可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、相变随机存取存储器(PRAM)、磁性RAM(MRAM)、电阻型RAM(RRAM)和铁电型RAM(FRAM)。
发明内容
本公开的各种实施例涉及能够有效地生成映射数据的存储器控制器以及操作存储器控制器的方法。
本公开的实施例可以提供一种被配置为控制存储器装置的存储器控制器,该存储器控制器包括:映射数据确定单元,被配置为从存储器装置接收位图信息,该位图信息指示包括多个扩展映射数据的映射段是否已被存储在存储器装置中;以及映射数据管理单元,被配置为基于位图信息来输出关于多个扩展映射数据的生成的信息,其中多个扩展映射数据中的每一个可以包括逻辑块地址和物理块地址之间的映射信息以及附加字段信息。
本公开的实施例可以提供一种用于操作被配置为控制存储器装置的存储器控制器的方法,该方法包括:从主机接收用于生成扩展映射数据的请求;响应于请求而从存储器装置接收与多个扩展映射数据相对应的映射段的位图信息;基于位图信息来确定是否生成位图;以及生成多个扩展映射数据,其中多个扩展映射数据中的每一个包括逻辑块地址和物理块地址之间的映射信息。
本公开的实施例可以提供一种操作被配置为控制存储器装置的存储器控制器的方法,该方法包括:从主机接收用于向主机输出扩展映射数据的请求;响应于请求而从存储器装置接收与多个扩展映射数据相对应的映射段的位图信息;以及基于位图信息来确定是否输出多个扩展映射数据,其中多个扩展映射数据中的每一个包括逻辑块地址和物理块地址之间的映射信息。
本公开的实施例可以提供一种存储装置,包括:存储器装置,包括用于存储数据的多个区域;以及控制器,适于控制存储器装置,其中控制器从存储器装置接收位图信息,位图信息包括多个位,每个位对应于映射段中的多个映射数据,并且控制器基于位图信息来确定是否生成了多个映射数据中的每一个。
本公开的实施例可以提供一种存储装置,包括:存储器装置,包括用于存储数据的多个区域;以及控制器,适于控制存储器装置,其中控制器从存储器装置接收位图信息,位图信息包括多个位,每个位对应于映射段中的多个映射数据,并且控制器基于位图信息来确定是否生成了多个映射数据中的每一个,其中当确定未生成多个映射数据时,控制器生成多个映射数据。
附图说明
图1是图示根据本公开的实施例的存储装置的框图。
图2是图示图1的存储器控制器的图。
图3A和图3B是图示根据本公开的实施例的正常映射数据和扩展映射数据的图。
图4A和图4B是图示根据本公开的实施例的待存储在存储器装置中的位图的图。
图5是图示根据本公开的实施例的在与映射段相对应的映射数据的生成已完成之后存储器控制器的操作的图。
图6A和图6B是图示根据本公开的实施例的位图上的更新的图。
图7是图示根据本公开的实施例的存储器控制器的操作的图。
图8是图示根据本公开的实施例的输出与主机的请求相对应的映射数据的方法的图。
图9是图示根据本公开的实施例的存储器控制器的操作的图。
图10是图示图1的存储器装置的框图。
图11是图示图10的存储器单元阵列的示例的图。
图12是图示根据本公开的实施例的多个存储器块中的存储器块的电路图。
图13是图示根据本公开的实施例的多个存储器块中的存储器块的电路图。
图14是图示根据本公开的实施例的存储器控制器的操作的图。
图15是图示根据本公开的实施例的存储器控制器的操作的图。
图16是图示根据本公开的实施例的存储器控制器的操作的图。
图17是图示根据本公开的实施例的存储器控制器的图。
图18是图示根据本公开的实施例的包括存储装置的存储器卡系统的框图。
图19是图示根据本公开的实施例的包括存储装置的固态驱动器(SSD)系统的框图。
图20是图示根据本公开的实施例的包括存储装置的用户系统的框图。
具体实施方式
在本说明书或申请中引入的本公开实施例中的特定结构或功能描述仅用于描述本公开的实施例。该描述不应被解释为限于说明书或申请中描述的实施例。
基于实施例来详细描述本公开。然而,本公开可以以许多不同的形式来体现,并且不应被解释为仅限于本文阐述的实施例,而应当被解释为覆盖落入本公开的思想和技术范围内的修改、等同物或备选方案。然而,应当理解,本说明书并不旨在将本公开限制于那些示例性实施例,并且本公开不仅旨在覆盖示例性实施例,而且还覆盖落入本公开的精神和范围内的各种备选方案、修改、等同物和其他实施例。
将理解,尽管在本文中可以使用术语“第一”、“第二”等来描述各种要素,但是这些要素不应受这些术语的限制。这些术语仅用于区分一个要素和另一要素。例如,在不脱离本公开的教导的情况下,下面讨论的第一要素可以被称为第二要素。类似地,第二要素也可以被称为第一要素。
将理解,当一个元件被称为“耦合”或“连接”到另一元件时,它可以直接耦合或连接到另一元件或者在它们之间可以存在中间元件。相反,应理解,当一个元件被称为“直接耦合”或“直接连接”至另一元件时,不存在中间元件。描述元件之间关系的其他表述(例如,“之间”、“直接在......之间”、“与......相邻”或“与......直接相邻”)应以相同的方式进行解释。
本文所使用的术语仅出于描述特定实施例的目的,而不旨在限制。在本公开中,除非上下文另外明确指出,否则单数形式也旨在包括复数形式。还将理解,当在本说明书中使用时,术语“包括”、“包含”、“具有”等指定存在所陈述的特征、整数、步骤、操作、元件、部件和/或其组合,但不排除存在或附加一个或多个其他特征、整数、步骤、操作、元件、部件和/或其组合。
除非另有定义,否则本文所使用的包括技术和科学术语的所有术语具有与本公开所属领域的普通技术人员通常所理解的相同含义。将进一步理解,本文所使用的术语应被解释为具有与其在本说明书和相关技术的上下文中的含义一致的含义,并且除非本文明确定义,否则将不会以理想化或过度正式的意义来进行解释。
将省略对本领域技术人员众所周知的功能和结构的详细描述,以避免模糊本公开的主题。这旨在省略不必要的描述,以便使本公开的主题清楚。
现在将在下文中参考附图更充分地描述本公开的各种实施例,在附图中示出了本公开的优选实施例,使得本领域的普通技术人员可以容易地实现本公开的技术思想。
图1是图示根据本公开的实施例的存储装置50的框图。
参考图1,存储装置50可以包括存储器装置100和存储器控制器200。
存储装置50可以是被配置为在主机300(诸如蜂窝电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视(TV)、平板个人计算机(PC)或车载信息娱乐系统)的控制下存储数据的装置。
根据作为与主机300通信的通信系统的主机接口,存储装置50可以被制造为各种类型的存储装置中的任一个。例如,数据存储装置50可以被配置为各种类型的存储装置(诸如SSD、MMC、eMMC、RS-MMC或micro-MMC类型的多媒体卡、SD、mini-SD、micro-SD类型的安全数字卡、通用串行总线(USB)存储装置、通用闪存(UFS)装置、个人计算机存储器卡国际协会(PCMCIA)卡类型的存储装置、外围部件互连(PCI)卡类型的存储装置、PCI-快速(PCI-E)类型的存储装置、紧凑型闪存(CF)卡、智能媒体卡和记忆棒)中的任一个。
存储装置50可以以各种封装类型中的任一个的形式来被制造。例如,可以以各种封装类型(诸如层叠封装(POP)类型、系统级封装(SIP)类型、片上系统(SOC)类型、多芯片封装(MCP)类型、板上芯片(COB)类型、晶圆级制造封装(WFP)类型和晶圆级堆叠封装(WSP)类型)中的任一个的形式来制造存储装置50。
存储器控制器200可以控制存储装置50的整体操作。
当对存储装置50供电时,存储器控制器200可以执行固件。在存储器装置100是闪存装置的情况下,存储器控制器200可以执行诸如闪存转换层(FTL)的固件,以用于控制主机300与存储器装置100之间的通信。
存储器控制器200可以包括映射数据确定单元210。映射数据确定单元210可以从主机300接收映射数据生成请求MG_REQ。映射数据生成请求MG_REQ可以是扩展映射数据请求。扩展映射数据请求可以是用于生成或读取扩展映射数据的请求。扩展映射数据可以包括指示逻辑块地址LBA和物理块地址PBA之间的映射关系的映射信息以及附加字段信息。附加字段信息可以包括关于逻辑块地址LBA和物理块地址PBA之间的映射关系已被更新的次数的信息和/或用于扩展映射数据的纠错的信息。扩展映射数据可以是包括热数据区域的逻辑块地址LBA的数据。可以基于主机300对逻辑块地址LBA的访问频率来确定热数据区域。例如,当针对某个逻辑块地址的访问频率相对较高(或大于阈值)时,与该某个逻辑块地址相对应的区域可以是热数据区域。相反,当针对某个逻辑块地址的访问频率相对较低时,与该某个逻辑块地址相对应的区域可以是冷数据区域。
映射数据确定单元210可以基于存储器控制器200的内部操作或从主机300接收的数据生成请求MG_REQ,接收与多个扩展映射数据相对应的映射段的位图信息BM_INF。在各个实施例中,映射数据确定单元210可以接收与存储器控制器200的内部操作或从主机300接收的数据生成请求MG_REQ相对应的扩展映射数据所属的映射段的位图信息BM_INF。每个映射段可以包括多个扩展映射数据。位图信息BM_INF可以包括关于映射段的信息。即,位图信息BM_INF可以包括关于与映射段相对应的多个扩展映射数据的信息。在各个实施例中,位图信息BM_INF可以包括关于多个扩展映射数据的生成是否已完成以及扩展映射数据被存储的位置的信息。映射数据确定单元210可以将位图信息BM_INF输出到映射数据管理单元220。
映射数据管理单元220可以基于位图信息BM_INF来确定是否生成或输出多个扩展映射数据。此外,映射数据管理单元220可以基于位图信息BM_INF来输出与映射数据生成请求MG_REQ相对应的响应。
在各个实施例中,如果从主机300接收的请求是用于生成多个扩展映射数据的请求,则映射数据管理单元220可以生成并且输出多个扩展映射数据。备选地,如果从主机300接收的请求是用于读取多个扩展映射数据的请求,则映射数据管理单元220可以从存储器装置100读取多个扩展映射数据并且将它们输出到主机300。
存储器装置100可以在其中存储数据。存储器装置100可以在存储器控制器200的控制下操作。存储器装置100可以包括存储器单元阵列,存储器单元阵列包括被配置为在其中存储数据的多个存储器单元。存储器单元阵列可以包括多个存储器块。每个存储器块可以包括多个存储器单元。每个存储器块可以包括多个页。在一个实施例中,每个页可以是在存储器装置100中存储数据或从存储器装置100读取所存储的数据的单位。每个存储器块可以是擦除数据的单位。
在一个实施例中,存储器装置100可以是双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪存、垂直NAND闪存、NOR闪存装置、电阻式随机存取存储器(RRAM)、相变存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)或自旋转移力矩随机存取存储器(STT-RAM)。在本说明书中,存储器装置100是NAND闪存。
在一个实施例中,存储器装置100可以体现为三维阵列结构。本公开不仅可以应用于其中电荷存储层由导电浮栅(FG)形成的闪存,而且可以应用于其中电荷存储层由绝缘层形成的电荷陷阱闪存(CTF)。
在一个实施例中,存储器装置100中的每个存储器单元可以由能够存储一位数据的单级单元(SLC)形成。备选地,存储器装置100中包括的每个存储器单元可以由能够存储两位数据的多级单元(MLC)形成、由能够存储三位数据的三级单元(TLC)形成或由能够存储四位数据的四级单元(QLC)形成。
存储器装置100可以从存储器控制器200接收命令和地址,并且访问存储器单元阵列中由地址选择的区域。换言之,存储器装置100可以在由地址选择的区域上执行与命令相对应的操作。例如,存储器装置100可以执行写入(或编程)操作、读取操作和擦除操作。在编程操作期间,存储器装置100可以将数据编程到由地址选择的区域。在读取操作期间,存储器装置100可以从由地址选择的区域读取数据。在擦除操作期间,存储器装置100可以从由地址选择的区域擦除数据。
存储器装置100可以在存储器控制器200的控制下使用设定的操作电压来执行编程操作或擦除操作。
存储器装置100可以包括映射数据存储单元130。映射数据存储单元130可以接收由映射数据管理单元220生成的扩展映射数据。扩展映射数据可以是响应于存储器控制器200的内部操作或主机300的映射数据生成请求而生成的映射数据。映射数据存储单元130可以从映射数据管理单元220接收与映射段相对应的扩展映射数据。与映射段相对应的扩展映射数据的数目可以变化。换言之,如果映射数据管理单元220生成映射段中的多个扩展映射数据的全部,则映射段中的扩展映射数据可以被存储在映射数据存储单元130中。
在各个实施例中,如果映射数据管理单元220生成与映射段相对应的多个扩展映射数据的全部,则映射数据存储单元130可以从映射数据管理单元220接收与映射段相对应的多个扩展映射数据。映射数据存储单元130可以存储所接收的扩展映射数据。
映射数据存储单元130可以响应于存储器控制器200的请求,输出映射数据存储单元130中的多个扩展映射数据。多个扩展映射数据可以是与映射段相对应的数据。在一个实施例中,如果一个映射段中的多个扩展映射数据的全部被输出,则后续映射段中的多个扩展映射数据可以被输出。
存储器装置100可以包括位图存储单元150。位图存储单元150可以存储位图。位图可以针对每个映射段而被设置。即,位图可以针对包括多个扩展映射数据的每个映射段而存在。位图存储单元150可以包括与多个相应映射段相对应的判定位。在存储器装置100的初始操作期间,判定位可以被存储在位图存储单元150中。判定位可以被设置为默认值。此后,如果映射段中的映射数据被分配,则对应的判定位可以在与相关联的映射段相对应的映射数据已生成之后被更新。
位图可以包括关于判定位和存储位置的信息。判定位可以是指示与映射段相对应的多个扩展映射数据的全部是否已生成的位。存储位置可以指示与映射段相对应的多个扩展映射数据已被存储的位置。
如果与映射段相对应的位图尚未存储在位图存储单元150中,则位图存储单元150可以响应于存储器控制器200的请求来生成位图。在初始阶段生成的位图可以针对每个映射段而被设置为默认值。默认值可以被设置为逻辑低电平“0”或逻辑高电平“1”。因此,在存储器控制器200已生成与主机300的请求相对应的映射段中的多个扩展映射数据的全部的情况下,位图可以被更新。在各种实施例中,判定位可以从默认值改变为特定值。附加地,存储位置可以改变为指示针对其中多个扩展映射数据已被存储的存储器块和存储器块中的对应页的地址。
在一个实施例中,存储器控制器200可以从主机300接收数据和逻辑块地址LBA,并且将逻辑块地址LBA转换为物理块地址PBA,物理块地址PBA指示待在其中存储数据的存储器单元的地址,存储器单元被包括在存储器装置100中。附加地,存储器控制器200可以将指示逻辑块地址LBA和物理块地址PBA之间的映射关系的映射信息存储在缓冲器存储器(未示出)中。在一个实施例中,缓冲器存储器可以在存储器控制器200内实现。
存储器控制器200可以响应于来自主机300的请求来控制存储器装置100执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可以向存储器装置100提供编程命令、物理块地址PBA和数据。在读取操作期间,存储器控制器200可以向存储器装置100提供读取命令和物理块地址PBA。在擦除操作期间,存储器控制器200可以向存储器装置100提供擦除命令和物理块地址PBA。
在一个实施例中,存储器控制器200可以在没有来自主机300的请求的情况下,自主地生成编程命令、地址和数据,并且将它们发送到存储器装置100。例如,存储器控制器200可以向存储器装置100提供命令、地址和数据以执行后台操作,诸如用于耗损均衡的编程操作和用于垃圾收集的编程操作。
在一个实施例中,存储器控制器200可以控制至少两个或更多个存储器装置100。在这种情况下,存储器控制器200可以以交错的方式来控制存储器装置100,以增强操作性能。
主机300可以使用各种通信方法(诸如通用串行总线(USB)、串行AT附件(SATA)、串行附件SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围部件互连(PCI)、PCI快速(PCIe)、非易失性存储器快速(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、注册DIMM(RDIMM)和降低负载的DIMM(LRDIMM)通信方法)中的至少一个来与存储装置50通信。
主机300可以包括主机存储器310。主机存储器310可以存储从映射数据管理单元220接收的多个扩展映射数据。多个扩展映射数据可以是响应于主机300的请求而通过存储器控制器200已被存储在存储器装置100中或从存储器装置100读取的数据。在各个实施例中,在基于存储器控制器200的内部操作或主机300的映射数据生成请求MG_REQ来将多个扩展映射数据存储在存储器装置100中之后,可以基于主机300的映射数据读取请求MR_REQ来将存储器装置100中的多个扩展映射数据存储在主机存储器310中。
待存储在主机存储器310中的多个扩展映射数据可以基于映射段来被存储。映射段可以对应于多个扩展映射数据。即,每个映射段可以包括多个扩展映射数据。在一个实施例中,如果与一个映射段相对应的多个扩展映射数据被存储在主机存储器310中,则与后续的映射段相对应的多个扩展映射数据可以存储在主机存储器310中。
图2是图示根据本公开的实施例的存储器控制器(例如,图1的存储器控制器200)的图。
参考图2,存储器控制器200可以包括映射数据确定单元210和映射数据管理单元220。
映射数据确定单元210可以从主机300接收映射数据生成请求MG_REQ(①)。映射数据生成请求MG_REQ可以是扩展映射数据请求。扩展映射数据请求可以是用于生成或读取扩展映射数据的请求。映射数据生成请求MG_REQ可以是用于生成单个或多个扩展映射数据的请求。扩展映射数据可以包括指示逻辑块地址LBA和物理块地址PBA之间的映射关系的映射信息以及附加字段信息。附加字段信息可以包括关于扩展映射数据已被更新的次数的信息和/或用于扩展映射数据的纠错的信息。用于纠错的信息可以包括纠错位。纠错位可以是奇偶校验位。奇偶校验位可以是被添加以检查在信息传输过程期间是否已发生错误的位。
映射数据确定单元210可以基于从主机300接收的映射数据生成请求MG_REQ来将位图请求BM_REQ输出到存储器装置100(②)。映射数据确定单元210可以接收与位图请求BM_REQ相对应的位图信息BM_INF(③),并且基于位图信息BM_INF来确定是否生成扩展映射数据。
在各个实施例中,为了接收用于确定是否基于存储器控制器200的内部操作或映射数据生成请求MG_REQ来生成扩展映射数据的位图信息BM_INF,映射数据确定单元210可以向存储器装置100输出位图请求BM_REQ。位图信息BM_INF可以包括判定位和存储位置。判定位可以指示与映射段相对应的多个扩展映射数据是否已生成。存储位置可以指示与主机300的请求相对应的多个扩展映射数据存储在存储器装置100中的地址。位图信息BM_INF可以基于映射段被存储在存储器装置100中。映射段可以是与多个扩展映射数据相对应的单位。每个映射段可以包括多个扩展映射数据。每个映射段中的扩展映射数据的数目可以变化。
存储器装置100可以输出与映射段对应的位图信息BM_INF(③)。映射段可以包括多个扩展映射数据。在一个实施例中,映射段可以包括与从主机300接收的请求相对应的扩展映射数据。在一个实施例中,映射段可以包括与存储器控制器200的内部操作相对应的扩展映射数据。
位图信息BM_INF可以包括关于存储在位图存储单元150中的位图的信息。位图可以包括与多个映射段中的每一个相对应的判定位。判定位可以指示对应的映射段中的多个扩展映射数据的全部是否已生成。在一个实施例中,判定位可以是逻辑低电平“0”或逻辑高电平“1”。
在各个实施例中,在映射段中的多个扩展映射数据的全部尚未存储在存储器装置100中的情况下,判定位可以为“0”。备选地,在映射段中的多个扩展映射数据的全部已被存储在存储器装置100中的情况下,判定位可以是“1”。
在判定位是“0”的情况下,判定位可以从“0”被更新为“1”。在一个实施例中,如果判定位的默认值是“1”,则在映射段中包括的多个扩展映射数据的全部已生成之后,判定位可以从“1”被更新为“0”。
在该图中,从存储器装置100接收的位图信息BM_INF指示映射段中的多个扩展映射数据的全部尚未被存储。扩展映射数据可以是与从主机300接收的请求相对应的映射数据。备选地,扩展映射数据可以是在没有主机300的请求的情况下生成的映射数据。
映射数据确定单元210可以基于从存储器装置100接收的位图信息BM_INF来输出生成信息GE_INF(④)。生成信息GE_INF可以包括用于生成位图信息BM_INF和扩展映射数据的信息。
在各个实施例中,在位图信息BM_INF指示与映射段相对应的多个扩展映射数据的全部尚未生成的情况下,映射数据确定单元210可以输出用于生成位图的生成信息GE_INF。另外,在位图信息BM_INF指示与映射段相对应的多个扩展映射数据的全部尚未生成的情况下,生成信息GE_INF可以包括用于生成多个扩展映射数据的信息。相反,在位图信息BM_INF指示与映射段相对应的多个扩展映射数据的全部已生成的情况下,生成信息GE_INF可以包括指示多个扩展映射数据已生成的信息。
映射数据管理单元220可以从映射数据确定单元210接收生成信息GE_INF(④)。映射数据管理单元220可以基于生成信息GE_INF来生成位图和/或扩展映射数据。
在一个实施例中,在尚未从存储器装置100接收位图信息BM_INF的情况下,映射数据管理单元220可以将用于生成位图的位图生成命令BG_CMD输出到存储器装置100(⑤)。存储器装置100可以生成与位图生成命令BG_CMD相对应的位图。在各种实施例中,存储器装置100可以生成包括判定位和存储位置的位图。当生成位图时,判定位和存储位置各自可以具有默认值。默认值可以是“0”或“1”。
映射数据管理单元220可以在位图已生成之后生成扩展映射数据。在各种实施例中,映射数据管理单元220可以基于映射段来生成扩展映射数据。映射段可以包括多个扩展映射数据。如果生成了映射段中的多个扩展映射数据,则映射数据管理单元220可以将所生成的扩展映射数据输出到存储器装置100。
图3A和图3B是图示根据本公开的实施例的响应于主机(例如,图1和图2的主机300)的请求而生成的正常映射数据和扩展映射数据的图。
参考图3A和图3B,可以由存储器控制器200响应于主机300的请求来生成映射数据。映射数据的类型可以是正常映射数据和扩展映射数据中的任一个。图3A图示了正常映射数据的示例。图3B图示了扩展映射数据的示例。
参考图3A,可以响应于主机300的映射数据生成请求MG_REQ来生成正常映射数据。正常映射数据可以包括指示逻辑块地址LBA和物理块地址PBA之间的映射关系的映射信息。正常映射数据可以不包括附加字段信息。
第一映射数据Mapping_DATA1和第二映射数据Mapping_DATA2可以是正常映射数据。换言之,图2的映射数据管理单元220可以基于从主机300接收的映射数据生成请求MG_REQ来生成第一映射数据Mapping_DATA1和第二映射数据Mapping_DATA2。在一个实施例中,可以增加由映射数据管理单元220生成的正常映射数据的数目。
第一映射数据Mapping_DATA1和第二映射数据Mapping_DATA2中的每一个可以包括指示逻辑块地址LBA和物理块地址PBA之间的映射关系的映射信息。在一个实施例中,第一映射数据Mapping_DATA1可以包括指示第一逻辑块地址LBA1和第一物理块地址PBA1之间的映射关系的映射信息。第二映射数据Mapping_DATA2可以包括指示第二逻辑块地址LBA2和第二物理块地址PBA2之间的映射关系的映射信息。
参考图3B,可以响应于存储器控制器200的内部操作或主机300的映射数据生成请求MG_REQ而生成扩展映射数据。映射数据生成请求MG_REQ可以基于关于热数据区域的热数据信息来从主机300被接收。可以基于主机300对逻辑块地址LBA的访问频率来确定热数据区域。例如,当针对某个逻辑块地址的访问频率相对较高(或大于阈值)时,与该某个逻辑块地址相对应的区域可以是热数据区域。相反,当针对某个逻辑块地址的访问频率相对较低时,与该某个逻辑块地址相对应的区域可以是冷数据区域。映射数据生成请求MG_REQ可以是用于生成扩展映射数据的请求。
映射数据管理单元220可以基于映射数据生成请求MG_REQ来生成扩展映射数据。扩展映射数据可以包括指示逻辑块地址LBA和物理块地址PBA之间的映射关系的映射信息以及附加字段信息。正常映射数据可以包括指示逻辑块地址LBA和物理块地址PBA之间的映射关系的映射信息。换言之,扩展映射数据可以是包括正常映射数据和附加字段信息的数据。
扩展映射数据可以被输出到主机300。主机300可以将扩展映射数据存储在主机存储器310中。此后,主机300可以将操作请求和与操作请求相对应的扩展映射数据输出到存储器控制器200。存储器控制器200可以基于操作请求和与操作请求相对应的扩展映射数据来控制待在存储器装置100中执行的操作。
在一个实施例中,第三映射数据Mapping_DATA3和第四映射数据Mapping_DATA4可以是扩展映射数据。即,映射数据管理单元220可以基于从主机300接收的映射数据生成请求MG_REQ来生成第三映射数据Mapping_DATA3和第四映射数据Mapping_DATA4。在一个实施例中,由映射数据管理单元220生成的扩展映射数据的数目可以增加。
第三映射数据Mapping_DATA3和第四映射数据Mapping_DATA4中的每一个可以包括指示逻辑块地址LBA和物理块地址PBA之间的映射关系的映射信息以及附加字段信息k3、k4。在一个实施例中,第三映射数据Mapping_DATA3和第四映射数据Mapping_DATA4中的每一个可以包括正常映射数据和附加字段信息。
第三映射数据Mapping_DATA3可以包括指示第三逻辑块地址LBA3和第三物理块地址PBA3之间的映射关系的映射信息以及附加字段信息k3。第四映射数据Mapping_DATA4可以包括指示第四逻辑块地址LBA4和第四物理块地址PBA4之间的映射关系的映射信息以及附加字段信息k4。第三映射数据Mapping_DATA3和第四映射数据Mapping_DATA4中的附加字段信息k3和k4可以各自存储逻辑块地址和物理块地址之间的映射信息的更新次数或用于纠错的数据(例如,Bose-Chaudhuri-Hocquenghem码(BCH码)、低密度奇偶校验码(LDPC码等))。用于纠错的数据可以包括纠错位。纠错位可以是奇偶校验位。奇偶校验位可以是被添加以检查在信息传输过程期间是否已发生错误的位。
在一个实施例中,在扩展映射数据已被更新的次数被存储在附加字段信息中的情况下,映射数据管理单元220可以基于附加字段信息中的数据来确定待输出到存储器装置100的映射数据。在一个实施例中,在用于校正扩展映射数据中的错误的数据被包括在附加字段信息中的情况下,存储器控制器200可以基于附加字段信息中的数据来执行对扩展映射数据中已发生的错误进行校正的操作。
图4A和图4B是图示根据本公开的实施例的待存储在图2的存储器装置100中的位图的图。
图4A图示了最初存储在存储器装置100中的位图。图4B图示了存储在存储器装置100中的位图的初始存储位置。位图和存储位置均可以对应于映射段。映射段可以包括多个扩展映射数据。此外,主机性能增强器(HPB)映射数据可以包括多个映射段。
在一个实施例中,判定位的默认值可以被包括在最初存储在存储器装置100中的位图中。判定位的默认值可以是“0”或“1”。在该图中,判定位的默认值为“0”。
图4B图示了映射段中的多个扩展映射数据被存储的初始位置。在映射段中的多个扩展映射数据生成之前,与映射段相对应的存储位置的值可以是默认值。在图4B中,存储位置的默认值为“0”。
在一个实施例中,在尚未从存储器装置100接收位图信息BM_INF的情况下,映射数据管理单元220可以将用于生成位图的位图生成命令BG_CMD输出到存储器装置100。图4A图示了由存储器装置100响应于位图生成命令BG_CMD而生成的初始位图。
在各个实施例中,可以基于映射段来生成位图。图4A和图4B图示了与第一映射段Map_Segment1和第二映射段Map_Segment2相对应的位图的初始生成。在一个实施例中,存储器装置100可以接收位图生成命令BG_CMD,并且基于位图生成命令BG_CMD来生成与更大数目的映射段相对应的位图。
映射段可以是包括多个扩展映射数据的单位。在各个实施例中,每个映射段可包括至少两个或更多个扩展映射数据。在一个实施例中,基于与从主机300接收的映射数据生成请求相对应的扩展映射数据的数目,可以设置包括扩展映射数据的映射段。换言之,可以基于待由存储器控制器200生成的扩展映射数据的数目来设置映射段。
在一个实施例中,可以生成分别对应于第一映射段Map_Segment1和第二映射段Map_Segment2的位图。判定位可以指示与存储器控制器200的内部操作或从主机300接收的映射数据生成请求MG_REQ相对应的扩展映射数据是否已生成。
基于位图生成命令BG_CMD生成的位图中的判定位可以在初始阶段被设置为默认值。默认值可以是“0”或“1”。在图4A中,默认值为“0”。
如果与映射段相对应的多个扩展映射数据的全部均已生成,则可以更新判定位。在各种实施例中,如果映射段中的多个扩展映射数据的全部已生成,则可以将判定位从“0”更新为“1”。在一个实施例中,如果判定位的默认值为“1”,则在映射段中的多个扩展映射数据的全部已生成之后,可以将判定位从“1”更新为“0”。
在一个实施例中,对应于映射段的存储位置可以存储在存储器装置100中。例如,存储位置可以存储在作为存储器装置100的非易失性存储器中。存储位置可以指示其中与存储器控制器200的内部操作或从主机300接收的映射数据生成请求MG_REQ相对应的扩展映射数据被存储的地址。扩展映射数据被存储的地址可以是存储器块的地址和存储器块中的页。
存储位置可以指示映射段中的多个扩展映射数据已被存储的位置。如果映射段中的多个扩展映射数据的全部已生成,则可以更新存储位置。
在一个实施例中,基于位图生成命令BG_CMD生成的存储位置可以被设置为默认值。默认值可以是“0”或“1”。在图4B中,默认值为“0”。此后,如果与映射段相对应的多个扩展映射数据的全部已生成,则可以更新存储位置。
在各个实施例中,如果映射段中的多个扩展映射数据的全部已生成,则可以将存储位置更新为其中已存储扩展映射数据的存储器块的地址和存储器块中对应页的地址。存储位置可以包括关于在存储器单元阵列中的多个存储器块之中的已存储扩展映射数据的存储器块的位置和存储器块中对应页的位置的信息。
图5是图示根据本公开的实施例的在与映射段相对应的映射数据的生成已完成之后的存储器控制器200的操作的图。
参考图5,存储器控制器200可以包括映射数据管理单元220。在该图中,省略了存储器控制器200中的映射数据确定单元210。
例如,图5图示了在与从主机300接收的映射数据生成请求MG_REQ或存储器控制器200的内部操作相对应的多个扩展映射数据已生成之后的操作。在一个实施例中,映射数据管理单元220可以基于映射段来生成扩展映射数据。如果生成了映射段中的多个扩展映射数据,则映射数据管理单元220可以执行将多个扩展映射数据存储在存储器装置100中的操作。
在一个实施例中,映射数据管理单元220可以将映射段编程命令MSP_CMD输出到存储器装置100。映射段编程命令MSP_CMD可以是用于将由映射数据管理单元220生成的多个扩展映射数据存储在存储器装置100中的命令。
在各个实施例中,如果多个扩展映射数据的生成已完成,则映射数据管理单元220可以将映射段编程命令MSP_CMD输出到存储器装置100。每当映射段中的扩展映射数据的生成完成时,可以输出用于存储与映射段相对应的扩展映射数据的命令。在一个实施例中,如果完成了一个映射段中的扩展映射数据的生成,则与映射段相对应的扩展映射数据存储在存储器装置100中。随后,映射数据管理单元220可以生成与后续映射段相对应的扩展映射数据。
在一个实施例中,映射数据管理单元220可以将位图编程命令BMP_CMD输出到存储器装置100。可以在与映射段编程命令BMP_CMD相对应的多个扩展映射数据的全部已存储在存储器装置100中之后,输出位图编程命令MSP_CMD。可以在输出映射段编程命令MSP_CMD之后,输出位图编程命令BMP_CMD。存储器装置100可以接收位图编程命令BMP_CMD并且更新位图。
在各个实施例中,可以更新位图以指示与映射段相对应的多个扩展映射数据的全部均已存储。如果存储器装置100接收位图编程命令BMP_CMD,则可以更新与存储在存储器装置100中的映射段相对应的位图。在一个实施例中,位图中的判定位可以从默认值更新为特定值。此外,关于与映射段相对应的多个扩展映射数据被存储的位置的信息可以被更新。
如果存储在存储器装置100中的位图被更新,则映射数据管理单元220可以向主机300输出响应,该响应指示与存储器控制器200的内部操作或从主机300接收的映射数据生成请求MG_REQ相对应的多个扩展映射数据的生成已完成。每当生成与一个映射段相对应的多个扩展映射数据的全部时,可以将对应的响应输出到主机300。从映射数据管理单元220输出的响应可以是生成完成响应GC_RES。在生成完成响应GC_RES已被接收之后,主机300可以将用于读取存储在存储器装置100中的多个扩展映射数据的请求输出到存储器控制器200。
图6A和图6B是图示根据本公开的实施例的位图上的更新的图。
图6A图示了包括与映射段相对应的判定位的位图。图6B图示了与存储在存储器装置100中的映射段相对应的存储位置。映射段可以包括多个扩展映射数据。此外,主机性能增强器(HPB)映射数据可以包括多个映射段。
在一个实施例中,基于存储器控制器200的内部操作或从主机300接收的映射数据生成请求MG_REQ,可以生成映射段中的多个扩展映射数据。
在一个实施例中,在与存储器控制器200的内部操作或从主机300接收的请求相对应的扩展映射数据尚未存储在存储器装置100中的情况下,可以设置用于生成扩展映射数据的映射段。可以根据每个映射段中可以包括的扩展映射数据的最大数目来确定映射段的数目。可以根据响应于从主机300接收的请求而生成的扩展映射数据的数目来确定映射段的数目。
与映射段相对应的扩展映射数据的数目可以变化。例如,一个映射段包括四个扩展映射数据。此外,位图信息中包括的位对应于一个映射段。即,四个扩展映射数据对应于位图信息中包括的一个位。
在图6A和图6B中,与每个映射段相对应的扩展映射数据的数目为四个。因此,如果响应于从主机300接收的映射数据生成请求MG_REQ而待生成的扩展映射数据的数目为八个,则可以将映射段的数目设置为两个。
映射数据管理单元220可以从映射数据确定单元210接收生成信息GE_INF并且生成扩展映射数据。生成信息GE_INF可以包括指示与存储器控制器200的内部操作或从主机300接收的映射数据生成请求MG_REQ相对应的扩展映射数据尚未存储在存储器装置100中的信息。基于生成信息GE_INF,映射数据管理单元220可以生成与存储器控制器200的内部操作或映射数据生成请求MG_REQ相对应的扩展映射数据。
在一个实施例中,存储器控制器200的内部操作或从主机300接收的映射数据生成请求MG_REQ可以是用于顺序地生成多个映射数据的请求。在各种实施例中,从主机300接收的映射数据生成请求MG_REQ可以是用于生成随机映射数据的请求。在从主机300接收的请求是用于生成随机映射数据的请求的情况下,可以按照所请求的顺序来设置用于生成扩展映射数据的映射段。
映射数据管理单元220可以生成与第一映射段Map_Segment1相对应的扩展映射数据。在与第一映射段Map_Segment1相对应的多个扩展映射数据已生成之后,可以生成与第二映射段Map_Segment2相对应的多个扩展映射数据。
如果映射数据管理单元220生成与第一映射段Map_Segment1相对应的多个扩展映射数据的全部,则位图可以被更新。在各个实施例中,如果生成了与第一映射段Map_Segment1相对应的多个扩展映射数据的全部,则映射数据管理单元220可以将用于在存储器装置100中存储与第一映射段Map_Segment1相对应的扩展映射数据的映射段编程命令MSP_CMD输出到存储器装置100。
在与第一映射段Map_Segment1相对应的多个扩展映射数据的全部存储在存储器装置100中之后,映射数据管理单元220可以将位图编程命令BMP_CMD输出到存储器装置100,以更新对应于第一映射段Map_Segment1的位图。存储器装置100可以接收位图编程命令BMP_CMD并且更新位图。在一个实施例中,可以更新位图中包括的判定位和存储位置。
判定位可以是指示与映射段相对应的多个扩展映射数据的全部是否已生成的位。此外,存储位置可以指示与映射段相对应的多个扩展映射数据已被存储的位置。
参考6A,为了指示与第一映射段Map_Segment1相对应的多个扩展映射数据的全部已生成,可以将判定位从默认值改变为特定值。
例如,由于判定位的默认值为“0”,在与第一映射段Map_Segment1相对应的多个映射数据的全部已生成之后,与第一映射段Map_Segment1相对应的判定位可以被更新为“1”。
参考图6B,与第一映射段Map_Segment1相对应的扩展映射数据的存储位置可以被更新。可以将存储位置从默认值“0”更新为其中已存储与第一映射段Map_Segment1相对应的扩展映射数据的地址。在图6A和图6B中,与第一映射段Map_Segment1相对应的扩展映射数据的地址是第零存储器块Block0的第一页Page1。
在已生成与第一映射段Map_Segment1相对应的多个扩展映射数据的全部并将其存储在存储器装置100中并且已更新位图之后,映射数据管理单元220可以生成与第二映射段Map_Segment2对应的扩展映射数据。
在图6A和图6B中,与第二映射段Map_Segment2相对应的多个扩展映射数据的全部尚未生成。关于位图中的判定位和存储位置的信息可以被设置为默认值“0”。如果与第二映射段Map_Segment2相对应的多个扩展映射数据的全部已生成,则可以更新与第二映射段Map_Segment2相对应的位图。
在一个实施例中,在映射数据管理单元220响应于存储器控制器200的内部操作或主机300的请求而生成扩展映射数据时,存储装置50可能以功率休眠模式操作。功率休眠模式可以意味着存储器装置50以低功率状态操作。如果存储装置50以功率休眠模式操作,则由映射数据管理单元220正在生成的扩展映射数据可能被删除。然而,每当生成对应于映射段的扩展映射数据时,扩展映射数据被存储在存储器装置100中。因此,映射数据管理单元220可以生成除了存储在存储器装置100中的扩展映射数据以外的扩展映射数据。
在一个实施例中,当存储装置50以功率休眠模式操作时,由映射数据管理单元220正在生成的并且被包括在第二映射段Map_Segment2中的映射数据可能被删除。然而,由于与第一映射段Map_Segment1相对应的多个扩展映射数据的全部已生成并且存储在存储器装置100中,映射数据管理单元220可以仅生成与第二段相对应的扩展映射数据。即,映射数据管理单元220可以省略与第一映射段Map_Segment1相对应的扩展映射数据的生成。
因此,如果存储装置50的功率休眠模式结束,则映射数据管理单元220可以接收关于存储在存储器装置100中的位图的位图信息BM_INF,并且基于位图中的判定位来确定是否生成扩展映射数据。
由于位图的判定位指示与映射段相对应的多个扩展映射数据的全部是否已生成,映射数据管理单元220可以基于判定位来确定是否生成扩展映射数据。因此,在映射段中的扩展映射数据的生成尚未完成的情况下,可以再次生成对应的映射段中的扩展映射数据。
因此,在映射数据管理单元220已再次生成第二映射段Map_Segment2中的多个扩展映射数据之后,与第二映射段Map_Segment2相对应的位图可以被更新。
图7是图示根据本公开的实施例的在与映射段相对应的映射数据已生成的情况下存储器控制器200的操作的图。
参考图7,存储器控制器200可以包括映射数据确定单元210和映射数据管理单元220。图7图示了在与存储器控制器200的内部操作或主机300的映射数据生成请求MG_REQ相对应的扩展映射数据已被存储在存储器装置100中的情况下存储器控制器200的操作。
映射数据确定单元210可以从主机300接收映射数据生成请求MG_REQ(①)。映射数据生成请求MG_REQ可以是用于生成扩展映射数据的请求。映射数据生成请求MG_REQ可以是用于生成多个扩展映射数据的请求。扩展映射数据可以包括指示逻辑块地址LBA和物理块地址PBA之间的映射关系的映射信息以及附加字段信息。附加字段信息可以包括关于逻辑块地址LBA和物理块地址PBA之间的映射关系已被更新的次数的信息和/或用于扩展映射数据的纠错的信息。用于纠错的信息可以包括纠错位。纠错位可以是奇偶校验位。奇偶校验位可以是被添加来检查在信息传输过程期间是否已发生错误的位。
映射数据确定单元210可以基于存储器控制器200的内部操作或从主机300接收的映射数据生成请求MG_REQ,将位图请求BM_REQ输出到存储器装置100(②)。映射数据确定单元210可以接收与位图请求BM_REQ相对应的位图信息BM_INF(③)。映射数据管理单元210可以接收位图信息BM_INF,并且基于位图信息BM_INF确定是否生成扩展映射数据。
在一个实施例中,位图信息BM_INF可以包括关于与映射段相对应的位图的信息。映射段可以对应于多个扩展映射数据。换言之,映射段可以包括多个扩展映射数据。因此,位图信息BM_INF可以包括与至少一个映射段相对应的信息,至少一个映射段包括与存储器控制器200的内部操作或从主机300接收的映射数据生成请求MG_REQ相对应的扩展映射数据。
位图信息BM_INF可以包括关于对应于映射段的判定位以及存储位置的信息。判定位可以是指示与映射段相对应的多个扩展映射数据的全部是否已生成的位。存储位置可以指示与映射段相对应的多个扩展映射数据已被存储的地址。
在关于与映射段相对应的位图的信息未存储在存储器装置100中的情况下,位图信息BM_INF可以指示与映射段相对应的多个扩展映射数据的全部尚未生成。在关于与映射段相对应的位图的信息已存储在存储器装置100中的情况下,映射数据确定单元210可以接收包括判定位和存储位置的位图信息BM_INF。
在图7中,与存储器控制器200的内部操作或主机300的映射数据生成请求MG_REQ相对应的扩展映射数据已被存储在存储器装置100中。因此,在输出到存储器装置100的位图信息BM_INF中,与扩展映射数据相对应的至少一个映射段的位图可以包括指示扩展映射数据已存储在存储器装置100中的信息。在各个实施例中,判定位可以具有特定值,并且关于存储位置的信息可以包括关于扩展映射数据被存储的地址的信息。
映射数据确定单元210可以基于从存储器装置100接收的位图信息BM_INF来输出生成信息GE_INF(④)。在一个实施例中,生成信息GE_INF可以包括指示与存储器控制器200的内部操作或从主机300接收的映射数据生成请求MG_REQ相对应的扩展映射数据已生成的信息。生成信息GE_INF可以包括指示映射数据管理单元220不生成与主机300的请求相对应的扩展映射数据的信息。
如果映射数据管理单元220从映射数据确定单元210接收生成信息GE_INF,则映射数据管理单元220可以将生成完成响应GC_RES输出到主机300(⑤)。在一个实施例中,生成信息GE_INF可以包括指示与存储器控制器200的内部操作或从主机300接收的映射数据生成请求MG_REQ相对应的多个扩展映射数据的全部已生成的信息。映射数据管理单元220可以向主机300输出生成完成响应GC_RES,生成完成响应GC_RES指示与从主机300接收的请求相对应的多个扩展映射数据的全部已生成。
在已从映射数据管理单元220接收生成完成响应GC_RES之后,主机300可以向存储器控制器200输出用于读取响应于映射数据生成请求MG_REQ而生成的扩展映射数据的请求。
图8是图示根据本公开的实施例的将与主机300的请求相对应的映射数据输出到主机300的方法的图。
参考图8,存储器控制器200可以包括映射数据确定单元210和映射数据管理单元220。映射数据确定单元210可以确定与从主机300接收的映射数据读取请求MR_REQ相对应的扩展映射数据是否已被存储在存储器装置100中。映射数据管理单元220可以从存储器装置100接收与主机300的映射数据读取请求MR_REQ相对应的扩展映射数据,并且将扩展映射数据输出到主机300。
在一个实施例中,映射数据确定单元210可以从主机300接收映射数据读取请求MG_REQ(①)。映射数据读取请求MR_REQ可以是用于读取存储在存储器装置100中的扩展映射数据的请求。扩展映射数据可以包括指示逻辑块地址LBA和物理块地址PBA之间的映射关系的映射信息以及附加字段信息。附加字段信息可以包括关于扩展映射数据已被更新的次数的信息和/或用于扩展映射数据的纠错的信息。
映射数据确定单元210可以基于从主机300接收的映射数据读取请求MR_REQ将位图请求BM_REQ输出到存储器装置100(②)。映射数据确定单元210可以接收与位图请求BM_REQ相对应的位图信息BM_INF(③)。映射数据管理单元210可以基于位图信息BM_INF来确定是否输出扩展映射数据。
在一个实施例中,位图信息BM_INF可以包括关于与映射段相对应的位图的信息。映射段可以对应于多个扩展映射数据。映射段可以包括多个扩展映射数据。位图信息BM_INF可以包括关于与映射段相对应的判定位和存储位置的信息。判定位可以是指示与映射段相对应的多个扩展映射数据的全部是否已生成的位。存储位置可以指示与映射段相对应的多个扩展映射数据已被存储的位置。
在与映射段相对应的位图信息BM_INF没有存储在存储器装置100中的情况下,位图信息BM_INF中的判定位可以为“0”。在与映射段相对应的位图信息BM_INF已被存储在存储器装置100中的情况下,映射数据确定单元210可以接收包括经更新的判定位以及映射段中包括的多个扩展映射数据被存储的存储位置的位图信息BM_INF。
在一个实施例中,存储器装置100中的位图信息BM_INF可以包括在生成与映射段相对应的多个扩展映射数据的全部之前或在它们已生成之后的信息。
在各个实施例中,在没有生成与映射段相对应的多个扩展映射数据的全部的情况下,位图信息BM_INF可以包括具有默认值的判定位和存储位置信息。在已生成与映射段相对应的多个扩展映射数据的全部之后,位图信息BM_INF可以包括具有特定位的判定位以及包括关于扩展映射数据被存储的地址的信息的存储位置信息。
在图8中,与主机300的映射数据读取请求MR_REQ相对应的多个扩展映射数据已被存储在存储器装置100中。因此,映射数据确定单元210可以接收关于与包括扩展映射数据的至少一个映射段相对应的位图的信息。在此,与至少一个映射段相对应的位图可以包括具有特定值的判定位和关于扩展映射数据被存储的地址的信息。
映射数据确定单元210可以基于从存储器装置100接收的位图信息BM_INF来输出生成信息GE_INF(④)。生成信息GE_INF可以包括指示与从主机300接收的请求相对应的扩展映射数据是否已存储的信息。
映射数据管理单元220可以从映射数据确定单元210接收生成信息GE_INF。映射数据管理单元220可以接收生成信息GE_INF,并且输出与主机300的请求相对应的扩展映射数据。在与主机300的映射数据读取请求MR_REQ相对应的多个扩展映射数据的全部已存储在存储器装置100中的情况下,生成信息GE_INF可以包括关于判定位的信息,该判定位指示多个扩展映射数据的全部已生成。生成信息GE_INF可以包括关于存储位置的信息,该存储位置指示对应的扩展映射数据被存储的地址。
在一个实施例中,映射数据管理单元220可以向存储器装置100输出映射数据读取命令MDR_CMD,以用于输出与主机300的映射数据读取请求MR_REQ相对应的扩展映射数据(⑤)。可以基于生成信息GE_INF来确定映射数据读取命令MDR_CMD。
如果生成信息GE_INF包括指示与主机300的请求相对应的多个扩展映射数据的全部已存储的信息,则映射数据管理单元220可以将映射数据读取命令MDR_CMD输出到存储器装置100。映射数据管理单元220可以将扩展映射数据被存储的地址连同映射数据读取命令MDR_CMD输出到存储器装置100。
在一个实施例中,映射数据管理单元220可以从存储器装置100接收扩展映射数据(⑥)。在一个实施例中,映射数据管理单元220可以从存储器装置100接收多个扩展映射数据。
在各个实施例中,映射数据管理单元220可以从存储器装置100接收与映射数据读取命令MDR_CMD相对应的扩展映射数据。映射数据管理单元220可以基于映射段来接收扩展映射数据。当映射数据管理单元220从存储器装置100接收扩展映射数据时,映射数据管理单元220可以接收一个映射段中包括的多个扩展映射数据的全部,并且然后接收后续映射段中包括的多个扩展映射数据。
映射数据管理单元220可以将从存储器装置100接收的扩展映射数据输出到主机300(⑦)。映射数据管理单元220可以将与从主机300接收的映射数据读取请求MR_REQ相对应的扩展映射数据输出到主机300。映射数据管理单元220可以基于映射段将扩展映射数据输出到主机300。以与在从存储器装置100接收扩展映射数据时相同的方法,映射数据管理单元220可以输出一个映射段中的多个扩展映射数据的全部,并且然后向主机300输出后续映射段中的多个扩展映射数据。
在一个实施例中,主机300可以将从映射数据管理单元220接收的扩展映射数据存储在主机存储器310中。可以基于映射段将扩展映射数据存储在主机存储器310中。主机300可以从映射数据管理单元220接收与映射段相对应的扩展映射数据,并且将与映射段相对应的扩展映射数据存储在主机存储器310中。主机300可以存储与一个映射段相对应的扩展映射数据,并且然后存储与后续映射段相对应的扩展映射数据。
图9是图示根据本公开的实施例的在与主机300的请求相对应的映射数据不存在的情况下存储器控制器200的操作的图。
参考图9,存储器控制器200可以包括映射数据确定单元210和映射数据管理单元220。映射数据确定单元210可以确定与从主机300接收的映射数据读取请求MR_REQ相对应的扩展映射数据是否已被存储在存储器装置100中。映射数据管理单元220可以将与主机300的映射数据读取请求MR_REQ相对应的响应输出到主机300。
在一个实施例中,映射数据确定单元210可以从主机300接收映射数据读取请求MG_REQ(①)。映射数据读取请求MR_REQ可以是用于读取存储在存储器装置100中的扩展映射数据的请求。扩展映射数据可以包括指示逻辑块地址LBA和物理块地址PBA之间的映射关系的映射信息以及附加字段信息。附加字段信息可以包括关于逻辑块地址LBA和物理块地址PBA之间的映射关系已被更新的次数的信息和/或用于扩展映射数据的纠错的信息。用于纠错的信息可以包括纠错位。纠错位可以是奇偶校验位。奇偶校验位可以是被添加来检查在信息传输过程期间是否已发生错误的位。
映射数据确定单元210可以基于从主机300接收的映射数据读取请求MR_REQ将位图请求BM_REQ输出到存储器装置100(②)。映射数据确定单元210可以接收与位图请求BM_REQ相对应的位图信息BM_INF(③)。映射数据管理单元210可以基于位图信息BM_INF来确定是否输出扩展映射数据。
在一个实施例中,位图信息BM_INF可以包括关于与映射段相对应的位图的信息。映射段可以对应于多个扩展映射数据。映射段可以包括多个扩展映射数据。位图信息BM_INF可以包括关于与映射段相对应的判定位和存储位置的信息。判定位可以是指示与映射段相对应的多个扩展映射数据的全部是否已生成的位。存储位置可以指示与映射段相对应的多个扩展映射数据已被存储的位置。
在与映射段相对应的位图信息BM_INF没有存储在存储器装置100中的情况下,位图信息BM_INF可以包括具有默认值的判定位和存储位置。在与映射段相对应的位图信息BM_INF已存储在存储器装置100中的情况下,映射数据确定单元210可以接收包括经更新的判定位和存储位置的位图信息BM_INF。
在图9中,与主机300的映射数据读取请求MR_REQ相对应的多个扩展映射数据中的一些或全部尚未存储在存储器装置100中。因此,映射数据确定单元210可以接收包括默认值的判定位和存储位置的位图信息BM_INF或者关于与包括扩展映射数据中的一些的映射段相对应的位图的信息。与包括扩展映射数据中的一些的映射段相对应的位图可以包括具有特定值的判定位以及关于扩展映射数据被存储的地址的信息。
映射数据确定单元210可以基于从存储器装置100接收的位图信息BM_INF来输出生成信息GE_INF(④)。生成信息GE_INF可以包括指示与从主机300接收的请求相对应的扩展映射数据是否已被存储的信息。
映射数据管理单元220可以从映射数据确定单元210接收生成信息GE_INF。映射数据管理单元220可以接收生成信息GE_INF,并且输出与主机300的请求相对应的扩展映射数据。然而,在图9中,由于与映射数据读取请求MR_REQ相对应的扩展映射数据的全部或一些尚未存储在存储器装置100中,映射数据确定单元210可以输出生成信息GE_INF,该生成信息GE_INF包括指示与主机300的请求相对应的扩展映射数据的生成尚未完成的信息。
如果映射数据管理单元220从映射数据确定单元210接收该生成信息GE_INF,则映射数据管理单元220可以将生成未完成响应GNC_RES输出到主机300。在一个实施例中,生成信息GE_INF可以包括指示与存储器控制器200的内部操作或从主机300接收的映射数据生成请求MG_REQ相对应的多个扩展映射数据的全部尚未生成的信息。映射数据管理单元220可以向主机300输出生成未完成响应GNC_RES(⑤),该生成未完成响应GNC_RES指示与从主机300接收的请求相对应的多个扩展映射数据的全部尚未生成。
在已从映射数据管理单元220接收生成未完成响应GNC_RES之后,主机300可以输出用于生成尚未生成的扩展映射数据的映射数据生成请求MG_REQ。映射数据管理单元220可以基于从主机300接收的映射数据生成请求MG_REQ来生成扩展映射数据。
图10是图示根据本公开的实施例的存储器装置(例如,图1的存储器装置100)的框图。
参考图10,存储器装置100可以包括存储器单元阵列110和外围电路120。外围电路120可以包括地址解码器121、电压发生器122、读取和写入(读取/写入)电路123、数据输入和输出(输入/输出)电路124以及控制逻辑125。
存储器单元阵列110可以包括多个存储器块BLK1至BLKz。存储器块BLK1至BLKz通过行线RL连接到地址解码器121并且通过位线BL1至BLm连接到读取/写入电路123。存储器块BLK1至BLKz中的每一个可以包括多个存储器单元。在一个实施例中,多个存储器单元可以是非易失性存储器单元。
根据使用目的,存储器单元阵列110中的多个存储器单元可以被划分为多个块。诸如控制存储器装置100所需的各种设置信息的系统信息可以存储在多个块中。
第一存储器块BLK1至第z存储器块BLKz中的每一个包括多个存储器单元串。第一单元串至第m单元串分别耦合至第一位线BL1至第m位线BLm。第一单元串至第m单元串中的每一个包括漏极选择晶体管、彼此串联耦合的多个存储器单元以及源极选择晶体管。漏极选择晶体管DST耦合至漏极选择线DSL。第一存储器单元至第n存储器单元分别耦合至第一字线至第n字线。源极选择晶体管SST耦合至源极选择线SSL。漏极选择晶体管DST的漏极耦合到对应的位线。第一单元串至第m单元串的漏极选择晶体管DST分别耦合至第一位线BL1至第m位线BLm。源极选择晶体管SST的源极耦合到公共源极线CSL。在一个实施例中,公共源极线CSL可以公共地耦合到第一存储器块BLK1至第z存储器块BLKz。漏极选择线DSL、第一字线WL1至第n字线WLn以及源极选择线SSL被包括在行线RL中。漏极选择线DSL、第一字线WL1至第n字线WLn和源极选择线SSL由地址解码器121控制。公共源极线CSL由控制逻辑125控制。第一位线BL1至第m位线BLm由读取/写入电路123控制。
地址解码器121通过行线RL耦合到存储器单元阵列110。地址解码器121可以在控制逻辑125的控制下操作。地址解码器121通过控制逻辑125接收地址ADDR。
在一个实施例中,可以基于页来执行存储器装置100的编程操作和读取操作。
在编程操作或读取操作期间,由控制逻辑125接收的地址ADDR可以包括块地址和行地址。地址解码器121可以对所接收的地址ADDR之中的块地址进行解码。地址解码器121可以响应于经解码的块地址来选择存储器块BLK1至BLKz中的对应一个。
地址解码器121可以对所接收的地址ADDR之中的行地址进行解码。响应于经解码的行地址,地址解码器121可以将从电压发生器122提供的电压施加到行线RL,并且选择所选择的存储器块的一个字线。
在擦除操作期间,地址ADDR可以包括块地址。地址解码器121可以对块地址进行解码并且根据经解码的块地址来选择一个存储器块。可以对一个存储器块的全部或一部分执行擦除操作。
在部分擦除操作期间,地址ADDR可以包括块地址和行地址。地址解码器121可以响应于经解码的块地址来选择存储器块BLK1至BLKz中的对应一个。
地址解码器121可以对所接收的地址ADDR之中的行地址进行解码。响应于经解码的行地址,地址解码器121可以将从电压发生器122提供的电压施加到行线RL,并且选择所选择的存储器块的至少一个字线。
在一个实施例中,地址解码器121可以包括块解码器、字线解码器和地址缓冲器。
电压发生器122可以使用提供给存储器装置100的外部电源电压来生成多个电压。电压发生器122可以在控制逻辑125的控制下进行操作。
在一个实施例中,电压发生器122可以通过调节外部电源电压来生成内部电源电压。从电压发生器122生成的内部电源电压可以用作存储器装置100的操作电压。
在一个实施例中,电压发生器122可使用外部电源电压或内部电源电压来生成多个电压。例如,电压发生器122可以包括用于接收内部电源电压的多个泵浦电容器,并且在控制逻辑125的控制下通过选择性地激活多个泵浦电容器来生成多个电压。所生成的电压被施加到由地址解码器121所选择的字线。
在编程操作期间,电压发生器122可以生成具有高电压的编程脉冲以及电压水平低于编程脉冲的通过脉冲。在读取操作期间,电压发生器122可生成读取电压以及高于读取电压的通过电压。在擦除操作期间,电压发生器122可以生成擦除电压。
读取/写入电路123可以包括第一页缓冲器PB1至第m页缓冲器PBm。第一页缓冲器PB1至第m页缓冲器PBm通过第一位线BL1至第m位线BLm分别耦合到存储器单元阵列110。第一页缓冲器PB1至第m页缓冲器PBm可以在控制逻辑125的控制下操作。
第一页缓冲器PB1至第m页缓冲器PBm可以与数据输入/输出电路124进行数据通信。在编程操作期间,第一页缓冲器PB1至第m页缓冲器PBm可以通过数据输入/输出电路124和数据线DL接收待存储的数据DATA。
在编程操作期间,当编程脉冲被施加到所选择的字线时,第一页缓冲器PB1至第m页缓冲器PBm可以通过位线BL1至BLm,将通过数据输入/输出电路124接收的数据发送到所选择的存储器单元。基于所发送的数据,对所选择的页中的存储器单元进行编程。耦合到施加有编程使能电压(例如,接地电压)的位线的存储器单元可以具有增加的阈值电压。耦合到施加有编程禁止电压(例如,电源电压)的位线的存储器单元的阈值电压可以被保持。在编程验证操作期间,第一页缓冲器PB1至第m页缓冲器PBm可以通过位线BL1至BLm从所选择的存储器单元读取页数据。
在读取操作期间,读取/写入电路123可以通过位线BL从所选择的页中的存储器单元读取数据DATA,并且将所读取的数据DATA输出到数据输入/输出电路124。在擦除操作期间,读取/写入电路123可以将位线BL浮置。
在一个实施例中,读取/写入电路123可以包括列选择电路。
数据输入/输出电路124通过数据线DL耦合到第一页缓冲器PB1至第m页缓冲器PBm。数据输入/输出电路124可以在控制逻辑125的控制下操作。在编程操作期间,数据输入/输出电路124可以从外部控制器(未示出)接收待存储的数据。
控制逻辑125连接到地址解码器121、电压发生器122、读取/写入电路123和数据输入/输出电路124。控制逻辑125可以控制存储器装置100的整体操作。控制逻辑125可以从外部控制器接收命令CMD和地址ADDR。控制逻辑125可以响应于命令CMD来控制地址解码器121、电压生成器122、读取/写入电路123和数据输入/输出电路124。
图11是图示根据本公开的实施例的存储器单元阵列(例如,图10的存储器单元阵列110)的示例的图。
参考图11,存储器单元阵列110可以包括多个存储器块BLK1至BLKz。每个存储器块可以具有三维结构。每个存储器块可以包括堆叠在衬底上的多个存储器单元。存储器单元在+X方向、+Y方向和+Z方向上布置。每个存储器块的结构将参考图12和图13更详细地描述。
图12是图示根据本公开的实施例的存储器块(例如,图11的多个存储器块BLK1至BLKz中的存储器块BLKa)的电路图。
参考图12,存储器块BLKa可以包括多个单元串CS11至CS1m和CS21至CS2m。在一个实施例中,单元串CS11至CS1m和CS21至CS2m中的每一个可以形成为“U”形。在存储器块BLKa中,可以在行方向(即,+X方向)上布置m个单元串。在图12中,两个单元串被示出为在列方向(即,+Y方向)上布置。然而,该图示仅是为了方便而做出的,并且将理解可以在列方向上布置三个或更多个单元串。
多个单元串CS11至CS1m和CS21至CS2m中的每一个可以包括至少一个源极选择晶体管SST、第一存储器单元MC1至第n存储器单元MCn、管道晶体管PT和至少一个漏极选择晶体管DST。
选择晶体管SST和DST以及存储器单元MC1至MCn可以分别具有相似的结构。在一个实施例中,选择晶体管SST和DST以及存储器单元MC1至MCn中的每一个可以包括沟道层、隧道绝缘层、电荷存储层和阻挡绝缘层。在一个实施例中,可以在每个单元串中提供用于提供沟道层的导柱。在一个实施例中,可以在每个单元串中提供用于提供沟道层、隧道绝缘层、电荷存储层和阻挡绝缘层中的至少一个的导柱。
每个单元串的源极选择晶体管SST耦合在公共源极线CSL与存储器单元MC1至MCp之间。
在一个实施例中,布置在同一行中的单元串的源极选择晶体管耦合到在行方向上延伸的源极选择线,并且布置在不同行中的单元串的源极选择晶体管耦合到不同的源极选择线。在图12,第一行中的单元串CS11至CS1m的源极选择晶体管耦合至第一源极选择线SSL1。第二行中的单元串CS21至CS2m的源极选择晶体管耦合到第二源极选择线SSL2。
在一个实施例中,单元串CS11至CS1m和CS21至CS2m的源极选择晶体管可以公共地耦合到单个源极选择线。
每个单元串中的第一存储器单元MC1至第n存储器单元MCn耦合在源极选择晶体管SST和漏极选择晶体管DST之间。
第一存储器单元MC1至第n存储器单元MCn可以被划分为第一存储器单元MC1至第p存储器单元MCp和第(p+1)存储器单元MCp+1至第n存储器单元MCn。第一存储器单元MC1至第p存储器单元MCp在与+Z方向相反的方向上连续地布置,并且串联耦合在源极选择晶体管SST和管道晶体管PT之间。第(p+1)存储器单元MCp+1至第n存储器单元MCn在+Z方向上相继布置,并且串联耦合在管道晶体管PT和漏极选择晶体管DST之间。第一存储器单元MC1至第p存储器单元MCp和第(p+1)存储器单元MCp+1至第n存储器单元MCn通过管道晶体管PT彼此耦合。每个单元串的第一存储器单元MC1至第n存储器单元MCn的栅极分别耦合至第一字线WL1至第n字线WLn。
单元串的管道晶体管PT的相应栅极耦合到管线PL。
每个单元串的漏极选择晶体管DST耦合在对应的位线与存储器单元MCp+1至MCn之间。在行方向上布置的单元串耦合到在行方向上延伸的漏极选择线。第一行中的单元串CS11至CS1m的漏极选择晶体管耦合到第一漏极选择线DSL1。第二行中的单元串CS21至CS2m的漏极选择晶体管耦合到第二漏极选择线DSL2。
在列方向上布置的单元串可以耦合至在列方向上延伸的位线。在图12,第一列中的单元串CS11和CS21耦合到第一位线BL1。第m列中的单元串CS1m和CS2m耦合至第m位线BLm。
耦合到在行方向上布置的单元串中的相同字线的存储器单元形成单个页。例如,在第一行中的单元串CS11至CS1m之中,耦合到第一字线WL1的存储器单元形成单个页。在第二行中的单元串CS21至CS2m之中,耦合到第一字线WL1的存储器单元形成另一单个页。当选择漏极选择线DSL1和DSL2中的任一个时,可以选择在单个行的方向上布置的对应单元串。当选择字线WL1至WLn中的任一个时,可以从所选择的单元串之中选择对应的单个页。
在一个实施例中,可以提供偶数位线和奇数位线来代替第一位线BL1至第m位线BLm。在行方向上布置的单元串CS11至CS1m或CS21至CS2m的第偶数个单元串可以耦合至相应偶数位线。在行方向上布置的单元串CS11至CS1m或CS21至CS2m的第奇数个单元串可以耦合至相应奇数位线。
在一个实施例中,第一存储器单元MC1至第n存储器单元MCn中的至少一个可以用作虚设存储器单元。例如,可以提供至少一个或多个虚设存储器单元来减小源极选择晶体管SST与存储器单元MC1至MCp之间的电场。备选地,可以提供至少一个或多个虚设存储器单元来减小漏极选择晶体管DST与存储器单元MCp+1至MCn之间的电场。随着虚设存储器单元的数目的增加,存储器块BLKa的操作的可靠性可以增加,而存储器块BLKa的大小可能增加。随着虚设存储器单元的数目的减少,存储器块BLKa的大小可以减小,但是存储器块BLKa的操作可靠性可能减小。
为了有效地控制至少一个虚设存储器单元,虚设存储器单元中的每一个可以具有期望的阈值电压。在对存储器块BLKa执行擦除操作之前或之后,可以对虚设存储器单元中的全部或一些执行编程操作。在已执行编程操作之后执行擦除操作的情况下,通过控制待施加到耦合到相应虚设存储器单元的虚设字线的电压,虚设存储器单元可以具有期望的阈值电压。
图13是图示根据本公开的实施例的存储器块(例如,图11的多个存储器块BLK1至BLKz中的存储器块BLKb)的电路图。
参考图13,存储器块BLKb可以包括多个单元串CS11’至CS1m’和CS21’至CS2m’。单元串CS11’至CS1m’和CS21’至CS2m’中的每一个在+Z方向上延伸。单元串CS11’至CS1m’和CS21’至CS2m’中的每一个可以包括堆叠在存储器块BLK1’的下部中提供的衬底(未示出)上的至少一个源极选择晶体管SST、第一存储器单元MC1至第n存储器单元MCn以及至少一个漏极选择晶体管DST。
每个单元串的源极选择晶体管SST耦合在公共源极线CSL与存储器单元MC1至MCn之间。布置在同一行中的单元串的源极选择晶体管耦合到相同的源极选择线。布置在第一行中的单元串CS11’至CS1m’的源极选择晶体管可以耦合至第一源极选择线SSL1。布置在第二行中的单元串CS21’至CS2m’的源极选择晶体管可以耦合至第二源极选择线SSL2。在一个实施例中,单元串CS11’至CS1m’和CS21’至CS2m’的源极选择晶体管可以共同耦合到单个源极选择线。
每个单元串中的第一存储器单元MC1至第n存储器单元MCn串联耦合在源极选择晶体管SST和漏极选择晶体管DST之间。第一存储器单元MC1至第n存储器单元MCn的栅极分别耦合至第一字线WL1至第n字线WLn。
每个单元串的漏极选择晶体管DST耦合在对应的位线与存储器单元MC1至MCn之间。在行方向上布置的单元串的漏极选择晶体管可以耦合至在行方向上延伸的漏极选择线。第一行中的单元串CS11’至CS1m’的漏极选择晶体管耦合到第一漏极选择线DSL1。第二行中的单元串CS21’至CS2m’的漏极选择晶体管可以耦合到第二漏极选择线DSL2。
因此,图13的存储器块BLKb可以具有与图12的存储器块BLKa的等效电路类似的等效电路,不同之处在于从每个单元串中排除了管道晶体管PT。
在一个实施例中,可以提供偶数位线和奇数位线来代替第一位线BL1至第m位线BLm。可以将在行方向上布置的单元串CS11’至CS1m’或CS21’至CS2m’之中的第偶数单元串耦合到相应偶数位线,并且将在行方向上布置的单元串CS11’至CS1m’或CS21’至CS2m’之中的第奇数单元串耦合到相应奇数位线。
在一个实施例中,第一存储器单元MC1至第n存储器单元MCn中的至少一个可以用作虚设存储器单元。例如,可以提供至少一个或多个虚设存储器单元来减小源极选择晶体管SST与存储器单元MC1至MCn之间的电场。备选地,可以提供至少一个或多个虚设存储器单元来减小漏极选择晶体管DST与存储器单元MC1至MCn之间的电场。随着虚设存储器单元的数目增加,存储器块BLKb的操作的可靠性可以增加,而存储器块BLKb的大小可能增加。随着虚设存储器单元的数目减少,存储器块BLKb的大小可以减小,但是存储器块BLKb的操作可靠性可能降低。
为了有效地控制至少一个虚设存储器单元,虚设存储器单元中的每一个可以具有期望的阈值电压。在对存储器块BLKb执行擦除操作之前或之后,可以对虚设存储器单元的全部或一些执行编程操作。在已执行编程操作之后执行擦除操作的情况下,通过控制待施加到耦合到相应虚设存储器单元的虚设字线的电压,虚设存储器单元可以具有期望的阈值电压。
图14是图示根据本公开的实施例的存储器控制器(例如,图1至图7的存储器控制器200)的操作的图。
参考图14,在步骤S1401处,映射数据管理单元220可以开始映射数据的生成。映射数据管理单元220可以响应于从主机300接收到的映射数据生成请求MG_REQ或存储器控制器200的内部操作来开始映射数据的生成。
在一个实施例中,映射数据确定单元210可以从主机300接收映射数据生成请求MG_REQ。映射数据生成请求MG_REQ可以是扩展映射数据请求。扩展映射数据请求可以是用于生成或读取扩展映射数据的请求。扩展映射数据可以包括指示逻辑块地址LBA和物理块地址PBA之间的映射关系的映射信息以及附加字段信息。
在步骤S1403处,映射数据确定单元210可以确定来自存储器装置100的位图信息BM_INF。在各个实施例中,映射数据确定单元210可以基于从主机300接收的映射数据生成请求MG_REQ或存储器控制器200的内部操作,将位图请求BM_REQ输出到存储器装置100。映射数据确定单元210可以接收与位图请求BM_REQ相对应的位图信息BM_INF,并且基于位图信息BM_INF确定是否生成扩展映射数据。
在步骤S1405处,映射数据确定单元210可以确定判定位是否具有逻辑低电平“0”。映射数据确定单元210可以确定判决位是否包括默认值“0”。判定位可以是位图中包括的位。判定位可以是指示与映射段相对应的多个扩展映射数据的全部是否已生成的位。
映射数据确定单元210可以从存储器装置100接收位图信息BM_INF。此外,映射数据确定单元210可以基于位图信息BM_INF来确定扩展映射数据是否已存储在存储器装置100中。当确定判定位不是逻辑低电平“0”时,即,如果判定位具有逻辑高电平“1”(S1405,否),则过程进入步骤S1407。当确定判定位为“0”时(S1405,是),过程进入步骤S1409。
在步骤S1407处,映射数据管理单元220可以将生成完成响应GC_RES输出到主机300。在各个实施例中,当确定位图信息BM_INF中的判定位不是逻辑低电平“0”时,即,当确定判定位不是默认值时,位图信息BM_INF可以指示多个扩展映射数据的全部已生成并且被存储在存储器装置100中。当确定多个扩展映射数据的全部已生成时,映射数据管理单元220可以将生成完成响应GC_RES输出到主机300,因为不需要生成映射数据。
因此,当映射数据管理单元220从映射数据确定单元210接收生成信息GE_INF时,映射数据管理单元220可以将生成完成响应GC_RES输出到主机300。生成信息GE_INF可以包括指示与从主机300接收的映射数据生成请求MG_REQ或存储器控制器200的内部操作相对应的多个扩展映射数据的全部已生成的信息。
在步骤S1409处,映射数据管理单元220可以生成映射数据。映射数据可以是扩展映射数据。在一个实施例中,映射数据管理单元220可以基于映射段来生成扩展映射数据。映射段可以包括多个扩展映射数据。当映射段中包括的多个扩展映射数据被生成时,映射数据管理单元220可以将所生成的扩展映射数据输出到存储器装置100。
在步骤S1411处,映射数据管理单元220可以将映射段编程命令MSP_CMD输出到存储器装置100。映射段编程命令MSP_CMD可以是用于将由映射数据管理单元220生成的多个扩展映射数据存储在存储器装置100中的命令。
在各个实施例中,当多个扩展映射数据的生成完成时,映射数据管理单元220可以将映射段编程命令MSP_CMD输出到存储器装置100。每当映射段中的扩展映射数据的生成完成时,可以输出用于存储与映射段相对应的扩展映射数据的命令。在一个实施例中,当一个映射段中的扩展映射数据的生成完成时,与映射段相对应的扩展映射数据被存储在存储器装置100中。随后,映射数据管理单元220可以生成与后续映射段相对应的扩展映射数据。
在步骤S1413处,映射数据管理单元220可以将位图编程命令BMP_CMD输出到存储器装置100。在与映射段编程命令MSP_CMD相对应的多个扩展映射数据的全部已被存储在存储器装置100中之后,可以输出位图编程命令BMP_CMD。在映射段编程命令MSP_CMD已输出之后,可以输出位图编程命令BMP_CMD。存储器装置100可以接收位图编程命令BMP_CMD并且更新位图。
在各个实施例中,可以更新位图来指示与映射段相对应的多个扩展映射数据的全部已被存储。当存储器装置100接收位图编程命令BMP_CMD时,可以更新与存储器装置100中的映射段相对应的位图。在一个实施例中,位图中的判定位可以从默认值更新为特定值。此外,可以更新关于与映射段相对应的多个扩展映射数据被存储的位置的信息。
图15是图示根据本公开的实施例的存储器控制器(例如,图1和图2的存储器控制器200)的操作的图。
参考图15,在步骤S1501处,映射数据管理单元220可以开始映射段中包括的映射数据的生成。在各种实施例中,映射段可以包括多个映射数据。多个映射数据可以是将响应于存储器控制器200的内部操作或主机300的映射数据生成请求MG_REQ而生成的多个扩展映射数据。
在一个实施例中,扩展映射数据可以包括指示逻辑块地址LBA和物理块地址PBA之间的映射关系的映射信息以及附加字段信息。附加字段信息可以包括关于逻辑块地址LBA和物理块地址PBA之间的映射关系已被更新的次数的信息和/或用于扩展映射数据的纠错的信息。用于纠错的信息可以包括纠错位。纠错位可以是奇偶校验位。奇偶校验位可以是被添加来检查在信息传输过程期间是否已发生错误的位。
在步骤S1503处,确定存储装置50的当前操作状态是否为功率休眠模式。功率休眠模式可以意味着存储装置50在低功率状态中操作。当确定存储装置50在功率休眠模式中操作时,由映射数据管理单元220生成的扩展映射数据可能被删除。在存储装置50的当前操作状态是功率休眠模式的情况下,过程进入步骤S1505。
在步骤S1505处,映射数据管理单元220可以中断映射数据的生成。换言之,当确定存储装置50在低功率状态中操作时,映射数据管理单元220可以中断映射数据的生成。在存储装置50处于功率休眠模式的情况下,存储装置50可以仅执行最少的操作。
在步骤S1507处,存储装置50的状态可以是功率唤醒状态。功率唤醒状态可以意味着存储装置50可以在正常功率状态中操作。当确定存储装置50可以在正常功率状态中操作时,映射数据管理单元220可以再次生成扩展映射数据。
在步骤S1509处,当存储装置50在正常功率状态中操作时,映射数据确定单元210可以从存储器装置100接收位图信息BM_INF。映射数据确定单元210可以基于位图信息BM_INF,将生成信息GE_INF输出到映射数据管理单元220。
映射数据确定单元210可以通过位图信息BM_INF中的判定位来检查与生成完成的扩展映射数据相对应的映射段。基于与每个映射段相对应的位图的判定位,可以检查生成完成的扩展映射数据。此外,映射数据管理单元220可以检查与生成中断的扩展映射数据相对应的映射段。基于与每个映射段相对应的位图的判定位,可以检查生成中断的扩展映射数据。
在步骤S1511处,映射数据管理单元220可以重新生成对应映射段中包括的所有映射数据。映射数据管理单元220可以基于从映射数据确定单元210接收的生成信息GE_INF,重新生成已被生成中断并且被包括在映射段中的扩展映射数据。生成信息GE_INF可以包括指示与从主机300接收的请求相对应的扩展映射数据是否已存储的信息。
在一个实施例中,存储器控制器200可以包括缓冲器存储器,作为用于存储映射数据的易失性随机存取存储器(RAM)。由于存储器控制器200包括易失性RAM,当存储装置50在功率休眠模式中操作时,正在生成的映射数据可能被删除。然而,每当生成对应于映射段的扩展映射数据时,扩展映射数据被存储在存储器装置100中。因此,映射数据管理单元220可以生成除了存储在存储器装置100中的扩展映射数据以外的扩展映射数据。因此,可以生成除了存储在存储器装置100中的扩展映射数据以外的映射数据。
图16是图示根据本公开的实施例的存储器控制器(例如,图1、图8和图9的存储器控制器200)的操作的图。
参考图16,在步骤S1601处,映射数据确定单元210可以从主机300接收映射数据读取请求MR_REQ。映射数据读取请求MR_REQ可以是用于读取存储在存储器装置100中的扩展映射数据的请求。扩展映射数据可以包括指示逻辑块地址LBA和物理块地址PBA之间的映射关系的映射信息以及附加字段信息。附加字段信息可以包括关于扩展映射数据已被更新的次数的信息和/或用于扩展映射数据的纠错的信息。
在步骤S1603处,映射数据确定单元210可以检查从存储器装置100接收的位图信息BM_INF。在各个实施例中,映射数据确定单元210可以基于从主机300接收的映射数据读取请求MR_REQ,向存储器装置100输出位图请求BM_REQ。映射数据确定单元210可以接收与位图请求BM_REQ相对应的位图信息BM_INF。映射数据管理单元210可以基于位图信息BM_INF来确定是否生成扩展映射数据。
在步骤S1605处,映射数据确定单元210可以确定判定位是否为逻辑低电平“0”。映射数据确定单元210可以确定判决位是否包括默认值。判定位可以是位图中包括的位。判定位可以是指示与映射段相对应的多个扩展映射数据的全部是否已生成的位。
映射数据确定单元210可以从存储器装置100接收位图信息BM_INF。此外,映射数据确定单元210可以使用判定位来确定与主机300的映射数据读取请求MR_REQ相对应的扩展映射数据是否已存储在存储器装置100中。当确定判定位不是“0”时,即,当判定位是“1”时(S1605,否),过程进入步骤S1609。当确定判定位为“0”时(S1605,是),过程进入步骤S1607。
在步骤S1607处,映射数据管理单元220可以将生成未完成响应GNC_RES输出到主机300。在各个实施例中,在位图信息BM_INF包括指示映射数据尚未生成的信息的情况下,与映射数据读取请求MR_REQ相对应的多个扩展映射数据的全部或一些可能没有存储在存储器装置100中。在与映射数据读取请求MR_REQ相对应的多个扩展映射数据的全部或一些尚未存储在存储器装置100中的情况下,映射数据确定单元210可以输出包括指示扩展映射数据的生成尚未完成的信息的生成信息GE_INF。
当从映射数据确定单元210接收生成信息GE_INF时,映射数据管理单元220可以将生成未完成响应GNC_RES输出到主机300。在一个实施例中,生成信息GE_INF可以包括指示与从主机300接收的映射数据读取请求MR_REQ或存储器控制器200的内部操作相对应的多个扩展映射数据的全部尚未生成的信息。映射数据管理单元220可以向主机300输出生成未完成响应GNC_RES,生成未完成响应GNC_RES指示与从主机300接收的请求或存储器控制器200的内部操作相对应的多个扩展映射数据的全部尚未生成。
在步骤S1609处,映射数据管理单元220可以将映射数据读取命令MDR_CMD输出到存储器装置100。在各个实施例中,映射数据管理单元220可以输出映射数据读取命令MDR_CMD,以用于输出与主机300的映射数据读取请求MR_REQ相对应的扩展映射数据。可以基于生成信息GE_INF来确定映射数据读取命令MDR_CMD。
当生成信息GE_INF包括指示与主机300的请求相对应的多个扩展映射数据的全部已被存储的信息时,映射数据管理单元220可以将映射数据读取命令MDR_CMD输出至存储器装置100。映射数据管理单元220可以将扩展映射数据被存储的地址连同映射数据读取命令MDR_CMD输出到存储器装置100。
在步骤S1611处,映射数据管理单元220可以接收映射数据。在各种实施例中,映射数据管理单元220可以从存储器装置100接收扩展映射数据。在一个实施例中,映射数据管理单元220可以从存储器装置100接收多个扩展映射数据。
在一个实施例中,映射数据管理单元220可以从存储器装置100接收与映射数据读取命令MDR_CMD相对应的扩展映射数据。映射数据管理单元220可以基于映射段来接收扩展映射数据。当从存储器装置100接收扩展映射数据时,映射数据管理单元220可以接收一个映射段中包括的多个扩展映射数据的全部,并且然后接收后续映射段中包括的多个扩展映射数据。
在步骤S1613处,映射数据管理单元220可以将从存储器装置100接收的扩展映射数据输出到主机300。映射数据管理单元220可以接收与从主机300接收的映射数据读取请求MR_REQ相对应的扩展映射数据。映射数据管理单元220可以基于映射段将扩展映射数据输出到主机300。换言之,以与当从存储器装置100接收扩展映射数据时相同的方式,映射数据管理单元220可以输出一个映射段中包括的多个扩展映射数据的全部,并且然后向主机300输出后续映射段中包括的多个扩展映射数据。
在一个实施例中,主机300可以将从映射数据管理单元220接收到的扩展映射数据存储在主机存储器310中。可以基于映射段将扩展映射数据存储在主机存储器310中。主机300可以从映射数据管理单元220接收与映射段相对应的扩展映射数据,并且将与映射段相对应的扩展映射数据存储在主机存储器310中。主机300可以存储与一个映射段相对应的扩展映射数据,并且然后存储与后续映射段相对应的扩展映射数据。
图17是图示根据本公开的实施例的存储器控制器1000(例如,图1的存储器控制器)的图。
存储器控制器1000耦合到主机(例如,图1的主机300)和存储器装置(例如,图1的存储器装置100)。响应于来自主机300的请求,存储器控制器1000可以访问存储器装置100。例如,存储器控制器1000可以控制存储器装置100的写入操作、读取操作、擦除操作和后台操作。存储器控制器1000可以在存储器装置100和主机300之间提供接口。存储器控制器1000可以驱动用于控制存储器装置100的固件。
参考图17,存储器控制器1000可以包括处理器1010、存储器缓冲器1020、错误校正码(ECC)电路1030、主机接口1040、缓冲器控制电路1050、存储器接口1060和总线1070。
总线1070可以在存储器控制器1000的部件之间提供信道。
处理器1010可以控制存储器控制器1000的整体操作并且执行逻辑操作。处理器1010可以通过主机接口1040与主机300通信并且可以通过存储器接口1060与存储器装置100通信。附加地,处理器1010可以通过缓冲器控制电路1050与存储器缓冲器1020通信。处理器1010可以通过使用存储器缓冲器1020作为操作存储器、高速缓存存储器或缓冲器存储器来控制存储装置的操作。
处理器1010可以执行闪存转换层(FTL)的功能。处理器1010可以通过FTL将由主机300提供的逻辑块地址(LBA)转换为物理块地址(PBA)。FTL可以接收LBA并且使用映射表将LBA转换为PBA。可以根据映射的单位,以各种方式来修改使用FTL的地址映射方法。代表性的地址映射方法可以包括页映射方法、块映射方法和混合映射方法。
处理器1010可以将从主机300接收的数据随机化。例如,处理器1010可以使用随机种子来将从主机300接收的数据随机化。经随机化的数据可以作为待存储的被数据提供给存储器装置100,并且可以被编程到存储器单元阵列。
在读取操作期间,处理器1010可以将从存储器装置100接收的数据随机化。例如,处理器1010可以使用去随机化种子来将从存储器装置100接收的数据去随机化。经去随机化的数据可以输出到主机300。
在一个实施例中,处理器1010可以驱动软件或固件来执行随机化操作或去随机化操作。
存储器缓冲器1020可以用作处理器1010的操作存储器、高速缓存存储器或缓冲器存储器。存储器缓冲器1020可以存储待由处理器1010执行的代码和命令。存储器缓冲器1020可以存储待由处理器1010处理的数据。存储器缓冲器1020可以包括静态RAM(SRAM)或动态RAM(DRAM)。
ECC电路1030可以执行错误校正。ECC电路1030可以基于待通过存储器接口1060写入存储器装置100的数据来执行ECC编码操作。经ECC编码的数据可以通过存储器接口1060发送到存储器装置100。ECC电路1030可以对通过存储器接口1060从存储器装置100接收的数据执行ECC解码操作。例如,ECC电路1030可以作为存储器接口1060的部件被包括在存储器接口1060中。
主机接口1040可以在处理器1010的控制下与主机300通信。主机接口1040可以使用各种通信方法(诸如通用串行总线(USB)、串行AT附件(SATA)、串行附接的SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围部件互连(PCI)、PCI快速(PCIe)、非易失性存储器快速(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、注册DIMM(RDIMM)和降低负载的DIMM(LRDIMM)通信方法)中的至少一个来执行通信。
缓冲器控制电路1050可以在处理器1010的控制下控制存储器缓冲器1020。
存储器接口1060可以在处理器1010的控制下与存储器装置100通信。存储器接口1060可以通过信道与存储器装置100通信命令、地址和数据。
例如,存储器控制器1000可以既不包括存储器缓冲器1020也不包括缓冲器控制电路1050。
例如,处理器1010可以使用代码来控制存储器控制器1000的操作。处理器1010可以从存储器控制器1000中提供的非易失性存储器装置(例如,只读存储器)加载代码。备选地,处理器1010可以通过存储器接口1060从存储器装置100加载代码。
例如,存储器控制器1000的总线1070可以被划分为控制总线和数据总线。数据总线可以在存储器控制器1000中传输数据。控制总线可以在存储器控制器1000中传输诸如命令和地址的控制信息。数据总线和控制总线可以彼此分离并且可以不彼此干扰也不互相影响。数据总线可以耦合到ECC电路1030、主机接口1040、缓冲器控制电路1050和存储器接口1060。控制总线可以耦合到处理器1010、存储器缓冲器1020、主机接口1040、缓冲器控制电路1050和存储器接口1060。
图18是图示根据本公开的实施例的包括存储装置的存储器卡系统2000的框图。
参考图18,存储器卡系统2000可以包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100耦合到存储器装置2200。存储器控制器2100可以访问存储器装置2200。例如,存储器控制器2100可以控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100可以在存储器装置2100和主机(例如,图1的主机300)之间提供接口。存储器控制器2100可以驱动用于控制存储器装置2200的固件。存储器装置2200可以以与参考图10描述的存储器装置100相同的方式来体现。
在一个实施例中,存储器控制器2100可以包括诸如随机存取存储器(RAM)、处理单元、主机接口以及存储器接口和ECC电路的部件。
存储器控制器2100可以通过连接器2300与外部装置通信。存储器控制器2100可以基于特定的通信协议与外部装置(例如,主机)通信。在一个实施例中,存储器控制器2100可以通过各种通信协议(诸如通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围部件互连(PCI)、PCI快速(PCI-e或PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机小型接口(SCSI)、增强型小型磁盘接口(ESDI)、集成驱动器电子装置(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和非易失性存储器快速(NVMe)协议)中的至少一个与外部装置通信。在一个实施例中,连接器2300可以由上述各种通信协议中的至少一个来限定。
在一个实施例中,存储器装置2200可以被实现为各种非易失性存储器装置中的任一个,诸如电可擦除可编程ROM(EEPROM)、NAND闪存、NOR闪存、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电型RAM(FRAM)和自旋转移力矩磁RAM(STT-MRAM)。
在一个实施例中,存储器控制器2100和存储器装置2200可以被集成到单个半导体装置中来形成存储器卡。例如,存储器控制器2100和存储器装置2200可以集成到单个半导体装置中来形成存储器卡,诸如个人计算机存储器卡国际协会(PCMCIA)、紧凑型闪存卡(CF)、智能媒体卡(例如,SM或SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC或MMCmicro)、安全数字(SD)卡(例如,SD、miniSD、microSD或SDHC)或通用闪存(UFS)。
图19是图示根据本公开的实施例的包括存储装置的固态驱动器(SSD)系统3000的框图。
参考图19,SSD系统3000可以包括主机3100和SSD 3200。SSD 3200可以通过信号连接器3001与主机3100交换信号SIG,并且可以通过功率连接器3002接收功率PWR。SSD 3200可以包括SSD控制器3210、多个闪存3221至322n、辅助电源3230和缓冲器存储器3240。
在一个实施例中,SSD控制器3210可以执行上面参考图1描述的存储器控制器200的功能。
SSD控制器3210可以响应于从主机3100接收的信号SIG而控制多个闪存3221至322n。在一个实施例中,信号SIG可以是基于主机3100和SSD 3200之间的接口的信号。例如,信号SIG可以是由各种接口(诸如通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围部件互连(PCI)、PCI-快速(PCI-e或PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机小型接口(SCSI)、增强型小型磁盘接口(ESDI)、集成驱动电子装置(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙和非易失性存储器快速(NVMe)接口)中的至少一个定义的信号。
辅助电源3230可以通过功率连接器3002耦合到主机3100。辅助电源3230可以从主机3100被提供有功率PWR,并且可以由功率PWR充电。当来自主机3100的功率供应不能平稳地执行时,辅助电源3230可以供应SSD 3200的功率。在一个实施例中,辅助电源3230可以位于SSD 3200内部或位于SSD 3200外部。例如,辅助电源3230可以设置在主板中并且可以向SSD 3200提供辅助功率。
缓冲器存储器3240用作SSD 3200的缓冲器存储器。例如,缓冲器存储器3240可以临时存储从主机3100接收的数据或从多个闪存3221至322n接收的数据,或者可以临时存储闪存3221至322n的元数据(例如,映射表)。缓冲器存储器3240可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的易失性存储器或者诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器。
图20是图示根据本公开的实施例的包括存储装置的用户系统4000的框图。
参考图20,用户系统4000可以包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以运行用户系统4000中包括的部件、操作系统(OS)或用户编程。在一个实施例中,应用处理器4100可以包括用于控制用户系统4000中包括的部件的控制器、接口、图形引擎等。可以将应用处理器4100提供为片上系统(SoC)。
存储器模块4200可以用作用户系统4000的主存储器、工作存储器、缓冲器存储器或高速缓存存储器。存储器模块4200可以包括易失性RAM(诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、LPDDR SDARM和LPDDR3 SDRAM)或非易失性RAM(诸如PRAM、ReRAM、MRAM和FRAM)。在一个实施例中,应用处理器4100和存储器模块4200可以基于层叠封装(POP)被封装,并且然后可以被提供为单个半导体封装。
网络模块4300可以与外部装置通信。例如,网络模块4300可以支持无线通信,诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、WiMAX、WLAN、UWB、蓝牙或Wi-Fi通信。在一个实施例中,网络模块4300可以被包括在应用处理器4100中。
存储模块4400可以在其中存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。备选地,存储模块4400可以将存储在存储模块4400中的数据发送到应用处理器4100。在一个实施例中,可以将存储模块4400实现为非易失性半导体存储器装置,诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪存、NOR闪存或具有三维(3D)结构的NAND闪存。在一个实施例中,存储模块4400可以被提供为诸如用户系统4000的存储器卡或外部驱动器的可移除存储介质(即,可移除驱动器)。
在一个实施例中,存储模块4400可以包括多个非易失性存储器装置,并且多个非易失性存储器装置中的每一个可以以与以上参考图10至图13描述的存储器装置100相同的方式操作。存储模块4400可以以与以上参考图1描述的存储装置50相同的方式操作。
用户接口4500可以包括用于向应用处理器4100输入数据或指令、或者向外部装置输出数据的接口。在一个实施例中,用户接口4500可以包括用户输入接口,诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和压电装置。用户接口4500可以进一步包括用户输出接口,诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和电机。
本公开的各种实施例可以提供能够有效地生成映射数据的存储器控制器、以及操作存储器控制器的方法。
尽管已公开了本公开的实施例,但是本领域技术人员将理解,在不脱离本公开的范围和精神的情况下,可以进行各种修改、添加和替换。
因此,本公开的范围必须由所附权利要求书以及权利要求书的等同物限定,而不是由它们之前的描述限定。
在以上讨论的实施例中,所有步骤可以被选择性地执行或跳过。附加地,每个实施例中的步骤可以不总是以规则顺序执行。此外,本说明书和附图中公开的实施例旨在帮助本领域普通技术人员更清楚地理解本公开,而不是旨在限制本公开的范围。本公开所属领域的普通技术人员将能够容易地理解,基于本公开的技术范围,各种修改是可能的。
已参考附图描述了本公开的实施例,并且在不限制本公开的主题的情况下,在描述中使用的特定术语或词语应根据本公开的精神来被解释。应当理解,本文描述的基本发明构思的许多变化和修改仍将落入如所附权利要求及其等同物所限定的本公开的精神和范围内。
Claims (18)
1.一种存储器控制器,包括:
映射数据确定单元,被配置为从存储器装置接收位图信息,所述位图信息指示映射段是否已被存储在所述存储器装置中,所述映射段与所述位图信息中包括的位相对应并且包括多个扩展映射数据;以及
映射数据管理单元,被配置为基于所述位图信息来输出关于所述多个扩展映射数据的生成的信息,
其中所述多个扩展映射数据中的每一个包括逻辑块地址与物理块地址之间的映射信息,并且
其中基于所述位图信息,如果所述多个扩展映射数据已被全部生成,则所述映射数据管理单元确定输出所生成的所述多个扩展映射数据,以及如果所述多个扩展映射数据尚未被全部生成,则所述映射数据管理单元确定生成所述多个扩展映射数据。
2.根据权利要求1所述的存储器控制器,其中所述多个扩展映射数据中的每一个包括热数据区域的逻辑块地址,所述热数据区域的逻辑块地址根据主机对所述逻辑块地址的访问频率来确定。
3.根据权利要求1所述的存储器控制器,其中所述多个扩展映射数据中的每一个进一步包括附加字段信息,所述附加字段信息包括关于所述逻辑块地址与所述物理块地址之间的所述映射信息已被更新的次数的信息。
4.根据权利要求1所述的存储器控制器,其中所述多个扩展映射数据中的每一个进一步包括附加字段信息,所述附加字段信息包括用于纠错的信息。
5.根据权利要求1所述的存储器控制器,其中所述映射数据管理单元向所述存储器装置输出用于生成与所述多个扩展映射数据相对应的映射段的位图的命令。
6.根据权利要求1所述的存储器控制器,其中当在所述多个扩展映射数据的生成期间所述存储器装置处于功率休眠模式时,所述映射数据管理单元在所述功率休眠模式结束之后基于所述位图信息来生成所述多个扩展映射数据。
7.根据权利要求1所述的存储器控制器,其中当与所述映射段相对应的所述多个扩展映射数据的全部被生成时,所述映射数据管理单元向所述存储器装置输出用于存储与所述映射段相对应的所述多个扩展映射数据的命令。
8.根据权利要求7所述的存储器控制器,其中当与所述映射段相对应的所述多个扩展映射数据的全部被生成时,所述映射数据管理单元向所述存储器装置输出指示与所述映射段相对应的所述多个扩展映射数据已被生成的响应。
9.根据权利要求1所述的存储器控制器,其中当与所述映射段相对应的所述多个扩展映射数据的全部被生成时,所述映射数据管理单元向所述存储器装置输出用于更新与所述映射段相对应的位图的命令。
10.根据权利要求1所述的存储器控制器,其中所述映射数据管理单元基于所述位图信息来向所述存储器装置输出用于将所述多个扩展映射数据输出至主机的命令。
11.根据权利要求1所述的存储器控制器,其中当所述多个扩展映射数据未被存储在所述存储器装置中时,所述映射数据管理单元输出生成未完成响应,所述生成未完成响应指示所述多个扩展映射数据未被存储在所述存储器装置中。
12.一种操作存储器控制器的方法,所述方法包括:
从主机接收用于生成扩展映射数据的请求;
响应于所述请求而从存储器装置接收与多个扩展映射数据相对应的映射段的位图信息;
基于所述位图信息来确定是否生成位图;以及
生成所述多个扩展映射数据,
其中所述多个扩展映射数据中的每一个包括逻辑块地址与物理块地址之间的映射信息。
13.根据权利要求12所述的方法,进一步包括:当所述多个扩展映射数据已被生成时,向所述主机输出生成完成响应。
14.根据权利要求12所述的方法,进一步包括:当所述多个扩展映射数据的全部已被生成时,向所述存储器装置输出用于将所述多个扩展映射数据存储在所述存储器装置中的命令。
15.根据权利要求14所述的方法,其中生成所述多个扩展映射数据包括:重新生成与相关联的映射段相对应的多个映射数据,直到与所述映射段相对应的所述多个映射数据的全部被生成。
16.根据权利要求12所述的方法,进一步包括:当所述多个扩展映射数据的全部已被生成时,向所述存储器装置输出用于更新所述位图的命令。
17.一种操作存储器控制器的方法,所述方法包括:
从主机接收用于向所述主机输出扩展映射数据的请求;
响应于所述请求而从存储器装置接收与多个扩展映射数据相对应的映射段的位图信息;
基于所述位图信息来确定是否输出所述多个扩展映射数据;以及
当所述多个扩展映射数据不存在时,向所述主机输出生成未完成响应,
其中所述多个扩展映射数据中的每一个包括逻辑块地址与物理块地址之间的映射信息。
18.根据权利要求17所述的方法,其中确定是否输出所述多个扩展映射数据包括:确定是否输出与所述映射段相对应的多个扩展映射数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190018075A KR20200099882A (ko) | 2019-02-15 | 2019-02-15 | 메모리 컨트롤러 및 그 동작 방법 |
KR10-2019-0018075 | 2019-02-15 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111580744A CN111580744A (zh) | 2020-08-25 |
CN111580744B true CN111580744B (zh) | 2023-07-11 |
Family
ID=72042108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911012119.XA Active CN111580744B (zh) | 2019-02-15 | 2019-10-23 | 存储器控制器及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11288202B2 (zh) |
KR (1) | KR20200099882A (zh) |
CN (1) | CN111580744B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11449244B2 (en) | 2020-08-11 | 2022-09-20 | Silicon Motion, Inc. | Method and apparatus for performing access management of memory device in host performance booster architecture with aid of device side table information |
CN112905111A (zh) * | 2021-02-05 | 2021-06-04 | 三星(中国)半导体有限公司 | 数据缓存的方法和数据缓存的装置 |
KR20220122064A (ko) | 2021-02-26 | 2022-09-02 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1373874A (zh) * | 1999-09-13 | 2002-10-09 | 国际商业机器公司 | 在多主机计算环境中用于共享存储卷的主机卷映射系统和方法 |
CN1700237A (zh) * | 1999-05-25 | 2005-11-23 | 西尔弗布鲁克研究股份有限公司 | 具有参考点的身份编码表面 |
CN1945537A (zh) * | 2006-07-27 | 2007-04-11 | 清华大学 | 基于存储区域网络的高速固态存储设备的实现方法 |
CN101241476A (zh) * | 2008-01-30 | 2008-08-13 | 中国科学院计算技术研究所 | 一种虚拟存储系统和方法 |
CN101458613A (zh) * | 2008-12-31 | 2009-06-17 | 成都市华为赛门铁克科技有限公司 | 一种混合分级阵列的实现方法、混合分级阵列和存储系统 |
CN103164342A (zh) * | 2011-12-12 | 2013-06-19 | 苹果公司 | 数据可用性的挂载时协调 |
WO2013158953A1 (en) * | 2012-04-20 | 2013-10-24 | Memory Technologies Llc | Managing operational state data in memory module |
KR20140072639A (ko) * | 2012-12-05 | 2014-06-13 | 삼성전자주식회사 | 버퍼 운영 방법 및 그에 따른 반도체 저장 장치 |
CN105320611A (zh) * | 2014-06-30 | 2016-02-10 | 英特尔公司 | 用于细粒存储器保护的方法和设备 |
JP2018014129A (ja) * | 2017-09-14 | 2018-01-25 | 株式会社日立製作所 | ストレージ装置及びストレージ装置の制御方法 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100963140B1 (ko) | 2008-11-27 | 2010-06-16 | 한국과학기술원 | 직접 메모리 접근 장치 및 직접 메모리 접근 방법 |
US8874824B2 (en) * | 2009-06-04 | 2014-10-28 | Memory Technologies, LLC | Apparatus and method to share host system RAM with mass storage memory RAM |
US8621134B2 (en) * | 2010-11-08 | 2013-12-31 | Lsi Corporation | Storage tiering with minimal use of DRAM memory for header overhead |
KR101438716B1 (ko) | 2011-08-09 | 2014-09-11 | 엘에스아이 코포레이션 | I/o 디바이스 및 컴퓨팅 호스팅 상호동작 |
US10019353B2 (en) * | 2012-03-02 | 2018-07-10 | Longitude Enterprise Flash S.A.R.L. | Systems and methods for referencing data on a storage medium |
US9237481B2 (en) * | 2012-07-09 | 2016-01-12 | Intel Corporation | Methods and arrangements for traffic indication map segmentation in wireless networks |
KR20140057454A (ko) | 2012-11-02 | 2014-05-13 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 이와 통신하는 호스트 장치 |
US20160019161A1 (en) | 2013-03-12 | 2016-01-21 | Hewlett-Packard Development Company, L.P. | Programmable address mapping and memory access operations |
US20140281689A1 (en) * | 2013-03-15 | 2014-09-18 | Teradata Corporation | Method and system for rebuilding data following a disk failure within a raid storage system |
US9336129B2 (en) * | 2013-10-02 | 2016-05-10 | Sandisk Technologies Inc. | System and method for bank logical data remapping |
US10162748B2 (en) * | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
KR102148889B1 (ko) * | 2014-08-18 | 2020-08-31 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템 |
KR20170031389A (ko) | 2015-09-11 | 2017-03-21 | 삼성전자주식회사 | 수신 장치 및 그 신호 처리 방법 |
US10229051B2 (en) * | 2015-12-30 | 2019-03-12 | Samsung Electronics Co., Ltd. | Storage device including nonvolatile memory device and controller, operating method of storage device, and method for accessing storage device |
KR20170081118A (ko) | 2015-12-30 | 2017-07-11 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 액세스하는 액세스 방법 |
KR20180016679A (ko) | 2016-08-04 | 2018-02-19 | 삼성전자주식회사 | 호스트 메모리를 이용하는 데이터 저장 장치 및 그것의 동작 방법 |
KR20180065075A (ko) * | 2016-12-06 | 2018-06-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이를 이용한 웨어-레벨링 방법 |
US10089219B1 (en) * | 2017-01-20 | 2018-10-02 | Intuit Inc. | Mock server for testing |
KR102411290B1 (ko) * | 2017-10-24 | 2022-06-22 | 삼성전자주식회사 | 선택적으로 퍼지 동작을 수행하도록 구성되는 호스트 장치 및 스토리지 장치를 포함하는 스토리지 시스템 |
US11099980B2 (en) * | 2018-05-09 | 2021-08-24 | International Business Machines Corporation | Host aware update write |
US10713158B2 (en) * | 2018-06-28 | 2020-07-14 | Western Digital Technologies, Inc. | Non-volatile storage system with dynamic allocation of applications to memory based on usage monitoring |
KR20200076531A (ko) * | 2018-12-19 | 2020-06-29 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR20200088713A (ko) * | 2019-01-15 | 2020-07-23 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
-
2019
- 2019-02-15 KR KR1020190018075A patent/KR20200099882A/ko unknown
- 2019-10-01 US US16/589,953 patent/US11288202B2/en active Active
- 2019-10-23 CN CN201911012119.XA patent/CN111580744B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1700237A (zh) * | 1999-05-25 | 2005-11-23 | 西尔弗布鲁克研究股份有限公司 | 具有参考点的身份编码表面 |
CN1373874A (zh) * | 1999-09-13 | 2002-10-09 | 国际商业机器公司 | 在多主机计算环境中用于共享存储卷的主机卷映射系统和方法 |
CN1945537A (zh) * | 2006-07-27 | 2007-04-11 | 清华大学 | 基于存储区域网络的高速固态存储设备的实现方法 |
CN101241476A (zh) * | 2008-01-30 | 2008-08-13 | 中国科学院计算技术研究所 | 一种虚拟存储系统和方法 |
CN101458613A (zh) * | 2008-12-31 | 2009-06-17 | 成都市华为赛门铁克科技有限公司 | 一种混合分级阵列的实现方法、混合分级阵列和存储系统 |
CN103164342A (zh) * | 2011-12-12 | 2013-06-19 | 苹果公司 | 数据可用性的挂载时协调 |
WO2013158953A1 (en) * | 2012-04-20 | 2013-10-24 | Memory Technologies Llc | Managing operational state data in memory module |
CN106445834A (zh) * | 2012-04-20 | 2017-02-22 | 内存技术有限责任公司 | 管理存储器模块中的操作状态数据 |
KR20140072639A (ko) * | 2012-12-05 | 2014-06-13 | 삼성전자주식회사 | 버퍼 운영 방법 및 그에 따른 반도체 저장 장치 |
CN105320611A (zh) * | 2014-06-30 | 2016-02-10 | 英特尔公司 | 用于细粒存储器保护的方法和设备 |
JP2018014129A (ja) * | 2017-09-14 | 2018-01-25 | 株式会社日立製作所 | ストレージ装置及びストレージ装置の制御方法 |
Non-Patent Citations (1)
Title |
---|
Using bitmaps for medium sized information retrieval systems;A.Bookstein;《Information Processing & Management》;19900430;第525-533页 * |
Also Published As
Publication number | Publication date |
---|---|
KR20200099882A (ko) | 2020-08-25 |
US20200264982A1 (en) | 2020-08-20 |
CN111580744A (zh) | 2020-08-25 |
US11288202B2 (en) | 2022-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11137912B2 (en) | Memory controller and method of operating the same | |
US11256614B2 (en) | Memory controller for allocating logical address and method of operating the same | |
US10776027B2 (en) | Storage device and method of operating the same | |
US10910045B2 (en) | Storage device having improved cache performance and method of operating the same | |
US20190354476A1 (en) | Storage device and method of operating the same | |
CN111444115B (zh) | 存储装置及其操作方法 | |
US11119950B2 (en) | Storage device and method of operating the same | |
CN111105836B (zh) | 存储装置及其操作方法 | |
CN110175133B (zh) | 存储装置及其操作方法 | |
CN111580744B (zh) | 存储器控制器及其操作方法 | |
CN111752856A (zh) | 存储器控制器及其操作方法 | |
CN112988049A (zh) | 存储装置及其操作方法 | |
CN111338979B (zh) | 存储器控制器及其操作方法 | |
CN111435333B (zh) | 存储装置及其操作方法 | |
US11422739B2 (en) | Memory controller and method of operating the same | |
CN110827873B (zh) | 存储器控制器 | |
CN111506515B (zh) | 存储器控制器及其操作方法 | |
CN111338978B (zh) | 存储装置以及操作存储装置的方法 | |
US20200319961A1 (en) | Storage device and operating method thereof | |
KR102626058B1 (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
CN112289361A (zh) | 存储器装置及其操作方法 | |
CN111580743B (zh) | 存储器控制器及其操作方法 | |
KR102601152B1 (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
CN113764011A (zh) | 存储装置及其操作方法 | |
CN111190535A (zh) | 存储装置及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |