CN111338978B - 存储装置以及操作存储装置的方法 - Google Patents
存储装置以及操作存储装置的方法 Download PDFInfo
- Publication number
- CN111338978B CN111338978B CN201910892565.8A CN201910892565A CN111338978B CN 111338978 B CN111338978 B CN 111338978B CN 201910892565 A CN201910892565 A CN 201910892565A CN 111338978 B CN111338978 B CN 111338978B
- Authority
- CN
- China
- Prior art keywords
- memory
- address
- buffer
- data
- block
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/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/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Abstract
本发明可以提供一种存储装置以及一种操作存储装置的方法。存储装置可以包括:存储器装置,包括缓冲块和主块;以及存储器控制器,被配置成控制存储器装置。存储器控制器可以包括:缓冲块控制器,被配置成控制存储器装置将存储在缓冲块的至少一个中的数据存储在主块的至少一个中;映射表管理器,被配置成生成包括缓冲地址和主地址之间的映射信息的P2P映射表,缓冲地址是至少一个缓冲块的物理地址,主地址是至少一个主块的物理地址;以及读取操作控制器,被配置成当接收到读取请求时,控制存储器装置基于主地址或缓冲地址来读取数据。
Description
相关申请的交叉引用
本申请要求于2018年12月19日提交的申请号为10-2018-0165679的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
本公开的各个实施例总体涉及一种电子装置,并且更特别地,涉及一种存储装置以及操作存储装置的方法。
背景技术
通常,存储装置在诸如计算机或智能电话的主机装置的控制下存储数据。存储装置可以包括被配置为存储数据的存储器装置,以及被配置为控制存储器装置的存储器控制器。存储器装置主要被分类为易失性存储器装置和非易失性存储器装置。
易失性存储器装置仅在向易失性存储器装置供应电力时存储数据;当电源关闭时,存储在其中的数据丢失。易失性存储器装置的示例包括静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。
在非易失性存储器装置中,即使在电源关闭时,存储在其中的数据也被保持。非易失性存储器装置的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)和闪速存储器。
发明内容
本公开的各个实施例涉及一种具有提高的读取性能的存储装置以及操作存储装置的方法。
本公开的实施例可以提供一种存储器控制器,存储器控制器被配置成控制存储器装置,该存储器装置包括多个缓冲块和多个主块,该存储器控制器包括:缓冲块控制器,被配置成控制存储器装置将存储在多个缓冲块的至少一个缓冲块中的数据存储在多个主块的至少一个主块中;映射表管理器,被配置成生成包括缓冲地址和主地址之间的映射信息的物理到物理(P2P)映射表,缓冲地址是已经存储数据的至少一个缓冲块的物理地址,主地址是已经存储数据的至少一个主块的物理地址;以及读取操作控制器,被配置成当从主机接收到对数据的读取请求时,控制存储器装置基于P2P映射表中包括的主地址或缓冲地址来读取数据。
本公开的实施例可以提供一种存储装置,该存储装置包括:存储器装置,包括多个缓冲块和多个主块;以及存储器控制器,被配置成控制存储器装置以:将存储在多个缓冲块的至少一个缓冲块中的数据存储在多个主块的至少一个主块中;当数据存储在至少一个主块中时,生成包括缓冲地址和主地址之间的映射信息的物理到物理(P2P)映射表,缓冲地址是至少一个缓冲块的物理地址,主地址是至少一个主块的物理地址;并且当从主机接收到对数据的读取请求时,基于P2P映射表中包括的主地址或缓冲地址来读取数据。
本公开的实施例可以提供一种操作存储装置的方法,该存储装置包括:存储器装置,包括多个缓冲块和多个主块;以及存储器控制器,被配置成控制存储器装置,该方法包括:读取存储在多个缓冲块的至少一个缓冲块中的数据;将通过读取所存储的数据而获得的数据存储在多个主块的至少一个主块中;生成包括缓冲地址和主地址之间的映射信息的物理到物理(P2P)映射表,缓冲地址是至少一个缓冲块的物理地址,主地址是至少一个主块的物理地址;以及当从主机接收到对数据的读取请求时,基于P2P映射表中包括的主地址或缓冲地址来读取数据。
本公开的实施例可以提供一种存储器系统,该存储器系统包括:存储器装置,包括低密度存储的第一存储器区域和高密度存储的第二存储器区域;以及控制器,控制存储器装置将数据从第一存储器区域复制到第二存储器区域中,更新第一映射信息以用第二物理地址替换第一物理地址,该第一映射信息指示逻辑地址映射到第一物理地址,第一物理地址表示在第一存储器区域中在何处存储数据,第二物理地址表示在第二存储器区域中从何处复制数据,生成指示第一物理地址映射到第二物理地址的第二映射信息,并且当第一映射信息指示第二物理地址映射到被请求访问的逻辑地址并且第二映射信息指示第一物理地址映射到第二物理地址时,访问第一存储器区域。
附图说明
图1是示出根据本公开的实施例的存储装置的示图。
图2是示出诸如图1的存储器装置的配置的示图。
图3是示出诸如图2的存储器单元阵列的实施例的示图。
图4是示出根据本公开的实施例的图3的存储块BLK1至BLKz的代表性存储块BLKa的电路图。
图5是示出根据本公开的实施例的图3的存储块BLK1至BLKz的代表性存储块BLKb的电路图。
图6是示出根据本公开的实施例的配置成存储至少一个数据位的存储器单元的阈值电压分布的示图。
图7是示出根据本公开的实施例的存储器装置和存储器控制器的配置和操作的示图。
图8是示出根据本公开的实施例的数据迁移操作的示图。
图9是示出由诸如图7的映射表管理器生成的L2P映射表、P2P映射表和查找表的示图。
图10是示出根据本公开的实施例的存储器控制器的操作的流程图。
图11是示出根据本公开的实施例的存储器控制器的操作的流程图。
图12是示出根据本公开的实施例的存储器控制器的操作的流程图。
图13是示出图1的存储器控制器的实施例的示图。
图14是示出根据本公开的实施例的应用存储装置的存储卡系统的框图。
图15是示出根据本公开的实施例的应用存储装置的固态驱动器(SSD)系统的框图。
图16是示出根据本公开的实施例的应用存储装置的用户系统的框图。
具体实施方式
本文提供的特定结构和功能描述涉及本公开的各个实施例。然而,描述不应被解释为限于本文描述的各个实施例。
本发明可以许多不同的形式实现并且不应被解释为仅限于本文阐述的实施例。相反,本发明不仅旨在涵盖所公开的实施例,而且旨在涵盖落入本公开的精神和范围内的各种替换、修改、等同方案和其它实施例。
将理解的是,虽然术语“第一”、“第二”等可在本文中用于识别各个元件,但是这些元件不应受这些术语限制。这些术语仅用于将一个元件与另一元件区分开,否则它们具有相同或相似的名称。例如,在不脱离本公开的教导的情况下,一个示例中的第一元件可在另一示例中被称为第二元件。
将理解的是,当元件被称为“联接”或“连接”到另一元件时,该元件可直接联接或连接到其它元件,或者在该元件和其它元件之间可存在一个或多个中间元件。相反,应理解的是,当元件被称为“直接联接”或“直接连接”到另一元件时,不存在中间元件。解释元件之间的关系的其它表达,诸如“之间”、“直接在......之间”、“与……相邻”或“与……直接相邻”应以相同的方式解释。
本文使用的术语仅用于描述特定实施例的目的,而不旨在限制。在本公开中,除非上下文另有明确说明,否则单数形式也旨在包括复数形式,反之亦然。除非另有说明或从上下文清楚地指出单数形式,否则本申请和所附权利要求书中使用的冠词“一”和“一个”通常应被解释为表示“一个或多个”。将进一步理解的是,当在本说明书中使用时,术语“包括”、“包含”、“具有”等指明所陈述特征、整数、步骤、操作、元件、组件和/或其组合的存在,但并不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或其组合的存在或添加。
除非另有定义,否则本文使用的包括技术和科学术语的所有术语具有与本公开所属领域的普通技术人员通常理解的相同的含义。将进一步理解的是,本文使用的术语应被解释为具有与它们在本说明书的背景和相关领域中的含义一致的含义并且将不以理想化或过于形式化的意义来解释,除非本文如此明确地限定。
将省略对本领域技术人员公知的功能和结构的详细描述,以避免模糊本公开的主题。这旨在使本公开的主题清楚。
下面参照附图在各个实施例的背景下详细解释本公开。在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任意这种短语的不同参考不一定针对相同的实施例。
图1是示出根据本公开的实施例的存储装置50的示图。
参照图1,存储装置50可以包括存储器装置100和配置成控制存储器装置100的操作的存储器控制器200。存储装置50可以被配置成在诸如以下的主机300的控制下存储数据:蜂窝电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、TV、平板PC或车载信息娱乐系统。
根据作为与主机300的通信系统的主机接口,存储装置50可以被配置为各种存储装置中的任意一种。例如,存储装置50可以被配置为以下的任意一种:SSD、MMC、eMMC、RS-MMC或微型MMC型的多媒体卡,SD、迷你SD、微型SD型安全数字卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围组件互连(PCI)卡型存储装置,高速PCI(PCI-E)卡型存储装置,紧凑型闪存(CF)卡,智能媒体卡和记忆棒。
存储装置50可以各个封装类型中的任意一种的形式而制造。例如,存储装置50可以被制造为以下的任意一种:堆叠式封装(POP)类型、系统级封装(SIP)类型、片上系统(SOC)类型、多芯片封装(MCP)类型、板上芯片(COB)类型、晶圆级制造封装(WFP)类型和晶圆级堆叠封装(WSP)类型。
存储器装置100可以将数据存储在其中。存储器装置100可以在存储器控制器200的控制下操作。存储器装置100可以包括存储器单元阵列,该存储器单元阵列包括配置为将数据存储在其中的多个存储器单元。
存储器单元可以包括能够存储单个数据位的单层单元(SLC)、能够存储两个数据位的多层单元(MLC)、能够存储三个数据位的三层单元(TLC)、或者能够存储四个数据位的四层单元(QLC)。
存储器单元阵列可以包括多个存储块。每个存储块可以包括多个存储器单元。每个存储块可以包括多个页面。在实施例中,每个页面可以是将数据存储在存储器装置100中或从存储器装置100读取所存储的数据的单位。每个存储块可以是擦除数据的单位。
在实施例中,存储器装置100的存储器单元阵列可以包括主区域和缓冲区域。主区域中包括的存储块可以是主块。缓冲区域中包括的存储块可以是缓冲块。缓冲块中存储的数据可以存储在主块中。在实施例中,当存储器装置100处于空闲状态时,缓冲块中存储的数据可以存储在主块中。此后,可以删除存储在缓冲块中的数据。
缓冲块的存储器单元中的每一个可以存储n个数据位(n是1或更大的自然数)。主块的存储器单元中的每一个可以存储m个数据位(m是大于n的自然数)。随着存储器单元中存储的数据位的数量减少,从存储器单元读取数据的速度可以增大。因此,从缓冲块读取数据的速度可以比从主块读取相同数据的速度快。
在实施例中,存储器装置100可以是双倍数据速率同步动态随机存取存储器(DDRSDRAM)、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器装置、电阻随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)或自旋转移力矩随机存取存储器(STT-RAM)。在本说明书中,通过示例的方式,在存储器装置100是NAND闪速存储器的背景下描述本发明的各方面。
存储器装置100可以从存储器控制器200接收命令和地址,并且访问由地址选择的存储器单元阵列的区域。换言之,存储器装置100可以对由地址选择的区域执行与命令对应的操作。例如,存储器装置100可以执行写入(编程)操作、读取操作以及擦除操作。在编程操作期间,存储器装置100可以将数据编程到由地址选择的区域。在读取操作期间,存储器装置100可以从由地址选择的区域读取数据。在擦除操作期间,存储器装置100可以从由地址选择的区域擦除数据。
存储器控制器200可以控制存储装置50的全部操作。
当电力被供应至存储装置50时,存储器控制器200可以运行固件。在存储器装置100是闪速存储器装置的情况下,存储器控制器200可以运行诸如闪存转换层(FTL)的固件以用于控制主机300和存储器装置100之间的通信。
在实施例中,存储器控制器200可以从主机300接收数据和逻辑块地址(LBA),并且将LBA转换为物理块地址(PBA),该PBA表示待存储数据的存储器单元的地址,存储器单元包括在存储器装置100中。
存储器控制器200可以响应于来自主机300的请求控制存储器装置100执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可以将编程命令、PBA和数据提供至存储器装置100。在读取操作期间,存储器控制器200可以将读取命令和PBA提供至存储器装置100。在擦除操作期间,存储器控制器200可以将擦除命令和PBA提供至存储器装置100。
在实施例中,存储器控制器200可以在没有来自主机300的请求的情况下自主地生成编程命令、地址和数据,并且将编程命令、地址和数据传送至存储器装置100。例如,存储器控制器200可以将命令、地址和数据提供至存储器装置100,以执行诸如用于损耗均衡的编程操作和用于垃圾收集的编程操作的后台操作。
在实施例中,存储器控制器200可以控制两个或更多个存储器装置100。在这种情况下,存储器控制器200可以以交织方式控制存储器装置100,以便提高操作性能。交织方案可以使两个或更多个存储器装置100的操作时段能够重叠。
在实施例中,存储器控制器200可以包括缓冲块控制器210、映射表管理器220和读取操作控制器230。
缓冲块控制器210可以将存储在缓冲块的至少一个中的数据存储在主块的至少一个中。详细地,缓冲块控制器210可以读取存储在至少一个缓冲块中的数据,并将读取数据存储在至少一个主块中。当存储器装置100处于空闲状态时,缓冲块控制器210可以将存储在至少一个缓冲块中的数据存储在至少一个主块中。
当从主机300接收将数据存储在缓冲块中的写入请求时,缓冲块控制器210可以控制存储器装置100擦除缓冲块。缓冲块控制器210可以控制存储器装置100将与写入请求对应的数据存储在经擦除的缓冲块中。
当数据存储在缓冲块中时,映射表管理器220可以生成逻辑到物理(L2P)映射表。L2P映射表可以包括从主机提供的数据的逻辑地址与缓冲地址之间的映射信息,该缓冲地址是存储了数据的缓冲块的物理地址。
如果存储在缓冲块中的数据存储在主块中,则映射表管理器220可以更新L2P映射表。详细地,映射表管理器220可以将与L2P映射表中包括的数据的逻辑地址映射的物理地址从缓冲地址更新成作为主块的物理地址的主地址。
如果存储在缓冲块中的数据存储在主块中,则映射表管理器220可以更新P2P映射表。P2P映射表可以包括主地址和缓冲地址之间的映射信息。映射表管理器220可以基于P2P映射表生成查找表。查找表可以存储由主地址指示的主块的索引。
读取操作控制器230可以控制存储器装置100,使得当从主机300接收到对存储在缓冲块或主块中的数据的读取请求时,存储器装置100读取数据。读取操作控制器230可以控制存储器装置100基于L2P映射表读取数据。
在实施例中,读取操作控制器230可以参考L2P映射表来搜索与由主机提供的数据的逻辑地址映射的物理地址。如果搜索到的物理地址是缓冲地址,则读取操作控制器230可以控制存储器装置100,使得存储器装置100参考缓冲地址读取数据。
如果搜索到的物理地址是主地址,则读取操作控制器230可以确定主地址是否包括在P2P映射表中。读取操作控制器230可以基于查找表确定主地址是否包括在P2P映射表中。如果查找表中包括由主地址指示的存储块的索引,则读取操作控制器230可以确定主地址包括在P2P映射表中。
如果主地址包括在P2P映射表中,则读取操作控制器230可以控制存储器装置100,使得存储器装置100基于与主地址映射的缓冲地址来读取数据。如果主地址未包括在P2P映射表中,则读取操作控制器230可以控制存储器装置100,使得存储器装置100基于L2P映射表中包括的主地址来读取数据。
主机300可以使用诸如以下的各种通信方法中的至少一种与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和低负载DIMM(LRDIMM)通信方法。
图2是示出图1的存储器装置100的配置的示图。
参照图2,存储器装置100可以包括存储器单元阵列110、外围电路120和控制逻辑130。
存储器单元阵列100可以包括多个存储块BLK1至BLKz,该多个存储块BLK1至BLKz通过行线RL联接到地址解码器121。存储块BLK1至BLKz可以通过位线BL1至BLm联接到读取/写入电路123。存储块BLK1至BLKz中的每一个可以包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。多个存储器单元之中联接到相同字线的存储器单元被定义为一个页面。换言之,存储器单元阵列110可以由多个页面形成。在实施例中,存储器单元阵列110中包括的存储块BLK1至BLKz中的每一个可以包括多个虚设单元。此处,一个或更多个虚设单元可以串联地联接在漏级选择晶体管和存储器单元之间以及源极选择晶体管和存储器单元之间。
存储器装置100的存储器单元中的每一个可以由能够存储单个数据位的单层单元(SLC)、能够存储两个数据位的多层单元(MLC)、能够存储三个数据位的三层单元(TLC)、或者能够存储四个数据位的四层单元(QLC)形成。
在实施例中,存储器单元阵列110可以包括主区域和缓冲区域。主区域中包括的存储块可以是主块。缓冲区域中包括的存储块可以是缓冲块。缓冲块中存储的数据可以存储在主块中。在实施例中,当存储器装置100处于空闲状态时,缓冲块中存储的数据可以存储在主块中。此后,可以删除缓冲块中存储的数据。缓冲块的存储器单元中的每一个可以存储n个数据位(n是1或更大的自然数)。主块的存储器单元中的每一个可以存储m个数据位(m是大于n的自然数)。
外围电路120可以包括地址解码器121、电压发生器122、读取/写入电路123、数据输入/输出电路124以及感测电路125。
外围电路120可以驱动存储器单元阵列110。例如,外围电路120可以驱动存储器单元阵列110以执行编程操作、读取操作或擦除操作。
地址解码器121通过行线RL联接到存储器单元阵列110。行线RL可以包括漏极选择线、字线、源极选择线和共源线。在实施例中,字线可以包括普通字线和虚设字线。根据实施例,行线RL可以进一步包括管道选择线。
地址解码器121可以在控制逻辑130的控制下操作。地址解码器121可以从控制逻辑130接收地址ADDR。
地址解码器121可以解码接收到的地址ADDR之中的块地址。地址解码器121可以根据经解码的块地址,选择存储块BLK1至BLKz中的至少一个存储块。地址解码器121可以解码接收到的地址ADDR之中的行地址RADD。地址解码器121可以通过根据经解码的行地址RADD将由从电压发生器122供应的电压施加到至少一个字线WL来选择所选择的存储块的至少一个字线WL。
在编程操作期间,地址解码器121可以将编程电压施加到选择的字线,并且将电平小于编程电压电平的编程通过电压施加到未选择字线。在编程验证操作期间,地址解码器121可以将验证电压施加到选择的字线,并且将电平大于验证电压电平的验证通过电压施加到未选择字线。
在读取操作期间,地址解码器121可以将读取电压施加到选择的字线,并且将电平大于读取电压电平的读取通过电压施加到未选择字线。
在实施例中,可以以存储块为基础来执行存储器装置100的擦除操作。在擦除操作期间,待输入到存储器装置100的地址ADDR包括块地址。地址解码器121可以解码块地址,并且根据经解码的块地址选择相应存储块。在擦除操作期间,地址解码器121可以将接地电压施加到与选择的存储块联接的字线。
在本公开的实施例中,地址解码器121可以解码传送的地址ADDR之中的列地址。经解码的列地址可以被传送至读取/写入电路123。例如,地址解码器121可以包括诸如行解码器、列解码器和地址缓冲器的组件。
电压发生器122可以使用供应至存储器装置100的外部电源电压来生成多个操作电压Vop。电压发生器122可以在控制逻辑130的控制下操作。
在实施例中,电压发生器122可以通过调节外部电源电压来生成内部电源电压。从电压发生器122生成的内部电源电压可用作存储器装置100的操作电压。
在实施例中,电压发生器122可以使用外部电源电压或内部电源电压来生成多个操作电压Vop。电压发生器122可以生成存储器装置100所需的各个电压。例如,电压发生器122可以生成多个擦除电压、多个编程电压、多个通过电压、多个选择读取电压以及多个未选择读取电压。
为了生成具有各种电压电平的多个操作电压Vop,电压发生器122可以包括配置为接收内部电源电压的多个泵浦电容器,并且可以通过在控制逻辑130的控制下选择性地启用多个泵浦电容器来生成多个操作电压Vop。
生成的操作电压Vop可以通过地址解码器121被供应至存储器单元阵列110。
读取/写入电路123可以包括第一至第m页面缓冲器PB1至PBm,该第一至第m页面缓冲器PB1至PBm可以分别通过第一至第m位线BL1至BLm联接到存储器单元阵列110。第一至第m页面缓冲器PB1至PBm可以在控制逻辑130的控制下进行操作。
第一至第m页面缓冲器PB1至PBm可以与数据输入/输出电路124通信数据DATA。在编程操作期间,第一至第m页面缓冲器PB1至PBm可以通过数据输入/输出电路124和数据线DL接收待存储的数据DATA。
在编程操作期间,当编程脉冲被施加到选择的字线时,第一至第m页面缓冲器PB1至PBm可以通过位线BL1至BLm将通过数据输入/输出电路124接收的数据DATA传送到选择的存储器单元。可以基于传送的数据DATA来对选择的页面中的存储器单元进行编程。与被施加编程使能电压(例如,接地电压)的位线联接的存储器单元可以具有增加的阈值电压。与被施加编程禁止电压(例如,电源电压)的位线联接的存储器单元的阈值电压可被保持。在编程验证操作期间,第一至第m页面缓冲器PB1至PBm可以通过位线BL1至BLm从选择的存储器单元读取数据DATA。
在读取操作期间,读取/写入电路123可以通过位线BL从选择的页面的存储器单元读取数据DATA,并将读取的数据DATA存储到第一至第m页面缓冲器PB1至PBm。
在擦除操作期间,读取/写入电路123可以使位线BL浮置。在实施例中,读取/写入电路123可以包括列选择电路。
在实施例中,当存储在读取/写入电路123中包括的多个页面缓冲器的一些页面缓冲器中的数据被编程到存储器单元阵列110时,其它页面缓冲器可以从存储器控制器200接收新数据并且存储新数据。
数据输入/输出电路124通过数据线DL联接到第一至第m页面缓冲器PB1至PBm。数据输入/输出电路124可以在控制逻辑130的控制下操作。
数据输入/输出电路124可以包括用于接收输入的数据DATA的多个输入/输出缓冲器(未示出)。在编程操作期间,数据输入/输出电路124可以从外部控制器(未示出)接收待存储的数据DATA。在读取操作期间,数据输入/输出电路124可以将从读取/写入电路123中包括的第一至第m页面缓冲器PB1至PBm接收的数据DATA输出至外部控制器。
在读取操作或验证操作中,感测电路125可以响应于由控制逻辑130生成的使能位信号VRYBIT而生成参考电流,将从读取/写入电路123接收的感测电压VPB与由参考电流生成的参考电压进行比较,并且将通过信号或失败信号输出至控制逻辑130。
控制逻辑130可以联接到地址解码器121、电压发生器122、读取/写入电路123、数据输入/输出电路124以及感测电路125。控制逻辑130可以控制存储器装置100的全部操作。控制逻辑130可以响应于从外部装置传送的命令CMD而进行操作。
控制逻辑130可以响应于命令CMD和地址ADD而生成各种信号,并且控制外围电路120。例如,控制逻辑130可以响应于命令CMD和地址ADD生成操作信号OPSIG、行地址RADD、读取/写入电路控制信号PBSIGNALS和使能位VRYBIT。控制逻辑130可以将操作信号OPSIG输出至电压发生器122、将行地址RADD输出至地址解码器121、将读取/写入控制信号PBSIGNALS输出至读取/写入电路123,并且将使能位VRYBIT输出至感测电路125。此外,控制逻辑130可以响应于从感测电路125输出的通过信号PASS或失败信号FAIL来确定目标存储器单元在验证操作期间是已经通过验证还是验证已经失败。
图3是示出图2的存储器单元阵列110的实施例的示图。
参照图3,存储器单元阵列110可以包括多个存储块BLK1至BLKz。每个存储块具有三维结构。每个存储块可以包括堆叠在衬底上的多个存储器单元。存储器单元沿+X方向、+Y方向和+Z方向布置。参照图4和图5更详细地描述每个存储块的结构。
图4是示出根据本公开的实施例的图3的存储块BLK1至BLKz的代表性存储块BLKa的电路图。
参照图4,存储块BLKa可以包括多个单元串CS11至CS1m和CS21至CS2m。在实施例中,单元串CS11至CS1m和CS21至CS2m中的每一个可以形成为“U”型。在存储块BLKa中,m个单元串可以布置在行方向(即+X方向)上。在图4中,示出了在列方向(即+Y方向)上布置两个单元串。然而,这个图示仅是为了清楚;将理解的是,可以在列方向上布置三个或更多个单元串。
多个单元串CS11至CS1m和CS21至CS2m中的每一个可以包括至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn、管道晶体管PT和至少一个漏极选择晶体管DST。
选择晶体管SST和DST以及存储器单元MC1至MCn可以分别具有类似的结构。在实施例中,选择晶体管SST和DST以及存储器单元MC1至MCn中的每一个可以包括沟道层、隧道绝缘层、电荷存储层和阻挡绝缘层。在实施例中,可以在每个单元串中设置用于提供沟道层的柱。在实施例中,可以在每个单元串中设置用于提供沟道层、隧道绝缘层、电荷存储层和阻挡绝缘层中的至少一个的柱。
每个单元串的源极选择晶体管SST联接在共源线CSL和存储器单元MC1至MCp之间。
在实施例中,布置在同一行中的单元串的源极选择晶体管联接到在行方向上延伸的源极选择线,并且布置在不同行中的单元串的源极选择晶体管联接到不同的源极选择线。在图4中,第一行中的单元串CS11至CS1m的源极选择晶体管联接到第一源极选择线SSL1。第二行中的单元串CS21至CS2m的源极选择晶体管联接到第二源极选择线SSL2。
在实施例中,单元串CS11至CS1m和CS21至CS2m的源极选择晶体管可以共同联接到单个源极选择线。
每个单元串中的第一至第n存储器单元MC1至MCn联接在源极选择晶体管SST和漏极选择晶体管DST之间。
第一至第n存储器单元MC1至MCn可以被划分成第一至第p存储器单元MC1至MCp以及第p+1至第n存储器单元MCp+1至MCn。第一至第p存储器单元MC1至MCp沿-Z方向连续布置,并且串联地联接在源极选择晶体管SST和管道晶体管PT之间。第p+1至第n存储器单元MCp+1至MCn沿+Z方向连续布置,并且串联地联接在管道晶体管PT和漏极选择晶体管DST之间。第一至第p存储器单元MC1至MCp和第p+1至第n存储器单元MCp+1至MCn通过管道晶体管PT彼此联接。每个单元串的第一至第n存储器单元MC1至MCn的栅极分别联接到第一至第n字线WL1至WLn。
单元串的管道晶体管PT的各个栅极联接到管线PL。
每个单元串的漏极选择晶体管DST联接在相应位线与存储器单元MCp+1至MCn之间。在行方向上布置的单元串联接到在行方向上延伸的漏极选择线。第一行中的单元串CS11至CS1m的漏极选择晶体管联接到第一漏极选择线DSL1。第二行中的单元串CS21至CS2m的漏极选择晶体管联接到第二漏极选择线DSL2。
布置在列方向上的单元串可以联接到在列方向上延伸的位线。在图4中,第一列中的单元串CS11和CS21联接到第一位线BL1。第m列中的单元串CS1m和CS2m联接到第m位线BLm。
联接到在行方向上布置的单元串中的相同字线的存储器单元形成单个页面。例如,在第一行中的单元串CS11至CS1m之中的、联接到第一字线WL1的存储器单元形成单个页面。在第二行中的单元串CS21至CS2m之中的、联接到第一字线WL1的存储器单元形成另一单个页面。当选择漏级选择线DSL1和DSL2中的任意一个时,可以选择在单个行的方向上布置的相应单元串。当选择字线WL1和WLn中的任意一个时,可以从选择的单元串之中选择相应单个页面。
在实施例中,可以设置偶数位线和奇数位线来代替第一至第m位线BL1至BLm。布置在行方向上的单元串CS11至CS1m或CS21至CS2m的偶数编号的单元串可以联接到各个偶数位线。布置在行方向上的单元串CS11至CS1m或CS21至CS2m的奇数编号的单元串可以联接到各个奇数位线。
在实施例中,第一至第n存储器单元MC1至MCn中的至少一个可以用作虚设存储器单元。例如,可以设置虚设存储器单元以减小源极选择晶体管SST和存储器单元MC1至MCp之间的电场。可选地,可以设置虚设存储器单元以减小漏极选择晶体管DST和存储器单元MCp+1至MCn之间的电场。随着虚设存储器单元的数量增加,存储块BLKa的操作可靠性可增加,同时存储块BLKa的大小可增大。随着虚设存储器单元的数量减少,存储块BLKa的大小可减小,而存储块BLKa的操作可靠性可能降低。
为了高效地控制虚设存储器单元,虚设存储器单元中的每一个可以具有所需的阈值电压。在对存储块BLKa执行擦除操作之前或之后,可以对全部或一些虚设存储器单元执行编程操作。在已执行编程操作之后执行擦除操作的情况下,通过控制待施加到与各个虚设存储器单元联接的虚设字线的电压,虚设存储器单元可具有所需的阈值电压。
图5是示出根据本公开的实施例的图3的存储块BLK1至BLKz的代表性存储块BLKb的电路图。
参照图5,存储块BLKb可以包括多个单元串CS11'至CS1m'和CS21'至CS2m'。单元串CS11'至CS1m'和CS21'至CS2m'中的每一个沿+Z方向延伸。单元串CS11'至CS1m'和CS21'至CS2m'中的每一个可以包括堆叠在存储块BLKb的下部中设置的衬底(未示出)上的至少一个源极选择晶体管SST、第一至第n存储器单元MC1至MCn以及至少一个漏极选择晶体管DST。
每个单元串的源极选择晶体管SST联接在共源线CSL和存储器单元MC1至MCn之间。布置在同一行中的单元串的源极选择晶体管联接到相同的源极选择线。布置在第一行中的单元串CS11'至CS1m'的源极选择晶体管可以联接到第一源极选择线SSL1。布置在第二行中的单元串CS21'至CS2m'的源极选择晶体管可以联接到第二源极选择线SSL2。在实施例中,单元串CS11'至CS1m'和CS21'至CS2m'的源极选择晶体管可以共同联接到单个源极选择线。
每个单元串中的第一至第n存储器单元MC1至MCn串联地联接在源极选择晶体管SST和漏极选择晶体管DST之间。第一至第n存储器单元MC1至MCn的栅极分别联接到第一至第n字线WL1至WLn。
每个单元串的漏极选择晶体管DST联接在相应位线和存储器单元MC1至MCn之间。布置在行方向上的单元串的漏极选择晶体管可以联接到在行方向上延伸的漏极选择线。第一行中的单元串CS11'至CS1m'的漏极选择晶体管联接到第一漏极选择线DSL1。第二行中的单元串CS21'至CS2m'的漏极选择晶体管可以联接到第二漏极选择线DSL2。
因此,除了管道晶体管PT不包括在每个单元串中之外,图5的存储块BLKb可以具有与图4的存储块BLKa的电路类似的等效电路。
在实施例中,可以设置偶数位线和奇数位线来代替第一至第m位线BL1至BLm。布置在行方向上的单元串CS11'至CS1m'或CS21'至CS2m'之中的偶数编号的单元串可以联接到各个偶数位线,并且布置在行方向上的单元串CS11'至CS1m'或CS21'至CS2m'之中的奇数编号的单元串可以联接到各个奇数位线。
在实施例中,第一至第n存储器单元MC1至MCn中的至少一个可以用作虚设存储器单元。例如,可以设置虚设存储器单元以减小源极选择晶体管SST和存储器单元MC1至MCn之间的电场。可选地,可以设置虚设存储器单元以减小漏极选择晶体管DST和存储器单元MC1至MCn之间的电场。随着虚设存储器单元的数量增加,存储块BLKb的操作可靠性可增加,同时存储块BLKb的大小可增大。随着虚设存储器单元的数量减少,存储块BLKb的大小可减小,而存储块BLKb的操作可靠性可能降低。
为了高效地控制虚设存储器单元,虚设存储器单元中的每一个可以具有所需的阈值电压。在对存储块BLKb执行擦除操作之前或之后,可以对全部或一些虚设存储器单元执行编程操作。在已执行编程操作之后执行擦除操作的情况下,通过控制待施加到与各个虚设存储器单元联接的虚设字线的电压,虚设存储器单元可具有所需的阈值电压。
图6是示出根据本公开的实施例的配置成存储至少一个数据位的存储器单元的阈值电压分布的示图。
参照图6,每个图的横轴指示阈值电压的电平,每个图的纵轴指示存储器单元的数量。
在图(a)至(d)中,假设可以存储在每个存储器单元中的数据位的数量的范围是1至4。然而,在另一实施例中,可以在每个存储器单元中存储多于4个数据位。
图(a)示出每个能够存储单个数据位的单层单元(SLC)的阈值电压分布。单层单元可以具有擦除状态E或编程状态P1。
读取电压Va1可以将擦除状态E与编程状态P1区分开。当使用读取电压Va1读取具有擦除状态E的单层单元时,单层单元可以被读取为ON单元。当使用读取电压Va1读取具有编程状态P1的单层单元时,单层单元可以被读取为OFF单元。
图(b)示出每个能够存储两个数据位的多层单元(MLC)的阈值电压分布。多层单元可以具有擦除状态E和第一至第三编程状态P1至P3中的任意一种状态。
第一至第三读取电压Vb1至Vb3可以将擦除状态E和第一至第三编程状态P1至P3彼此区分开。第一读取电压Vb1可以将擦除状态E与第一编程状态P1区分开。第二读取电压Vb2可以将第一编程状态P1与第二编程状态P2区分开。第三读取电压Vb3可以将第二编程状态P2与第三编程状态P3区分开。
根据使用第一至第三读取电压Vb1至Vb3读取多层单元的结果,可以确定多层单元具有擦除状态E和第一至第三编程状态P1至P3中的任意一种状态。
图(c)示出每个能够存储三个数据位的三层单元(TLC)的阈值电压分布。三层单元可以具有擦除状态E和第一至第七编程状态P1至P7中的任意一种状态。
第一至第七读取电压Vc1至Vc7可以将擦除状态E和第一至第七编程状态P1至P7彼此区分开。第一读取电压Vc1可以将擦除状态E与第一编程状态P1区分开。第二读取电压Vc2可以将第一编程状态P1与第二编程状态P2区分开。同样地,第七读取电压Vc7可以将第六编程状态P6与第七编程状态P7区分开。
根据使用第一至第七读取电压Vc1至Vc7读取三层单元的结果,可以确定三层单元具有擦除状态E和第一至第七编程状态P1至P7中的任意一种状态。
图(d)示出每个能够存储四个数据位的四层单元(QLC)的阈值电压分布。四层单元可以具有擦除状态E和第一至第十五编程状态P1至P15中的任意一种状态。
第一至第十五读取电压Vd1至Vd15可以将擦除状态E与第一至第十五编程状态P1至P15彼此区分开。第一读取电压Vd1可以将擦除状态E与第一编程状态P1区分开。第二读取电压Vd2可以将第一编程状态P1与第二编程状态P2区分开。同样地,第十五读取电压Vd15可以将第十四编程状态P14与第十五编程状态P15区分开。
根据使用第一至第十五读取电压Vd1至Vd15读取四层单元的结果,可以确定四层单元具有擦除状态E和第一至第十五编程状态P1至P15中的任意一种状态。
将图(a)至图(d)相互比较,随着可以存储在每个存储器单元中的数据位的数量增加,可以由每个存储器单元表示的编程状态的数量和用于将各个编程状态彼此区分开的读取电压的数量可增加。一方面,随着可以由每个存储器单元表示的编程状态的数量增加,设置有与各个编程状态对应的阈值电压分布的整个宽度可增加。另一方面,随着可以由每个存储器单元表示的编程状态的数量增加,与每个编程状态对应的阈值电压分布的宽度可减小。
图7是示出根据本公开的实施例的存储器装置100和存储器控制器200的配置和操作的示图。
参照图7,存储器装置100可以包括存储器单元阵列110。存储器单元阵列110可以包括缓冲区域和主区域。
主区域中包括的存储块可以被称为主块。缓冲区域中包括的存储块可以被称为缓冲块。缓冲块中存储的数据可以存储在主块中。在实施例中,当存储器装置100处于空闲状态时,缓冲块中存储的数据可以存储在主块中。此后,可以删除缓冲块中存储的数据。缓冲块的存储器单元中的每一个可以存储n个数据位(n是1或更大的自然数)。主块的存储器单元中的每一个可以存储m个数据位(m是大于n的自然数)。也就是说,主块中的存储器单元比缓冲块中的存储器单元的存储密度高,这进而使主块比缓冲块的存储容量高。
在实施例中,存储器控制器200可以包括缓冲块控制器210、映射表管理器220和读取操作控制器230。
缓冲块控制器210可以将存储在缓冲块的至少一个中的数据存储在主块的至少一个中。
详细地,缓冲块控制器210可以将用于读取存储在至少一个缓冲块中的数据的读取命令提供至存储器装置100。缓冲块控制器210可以将用于将根据读取命令而获得的读取数据存储在至少一个主块中的编程命令提供至存储器装置100。
当已经存储在至少一个缓冲块中的数据存储在至少一个主块中时,缓冲块控制器210可以生成迁移完成信号(Complete Signal)。缓冲块控制器210可以将所生成的迁移完成信号提供至映射表管理器220。
当从主机接收将数据存储在缓冲块中的写入请求时,缓冲块控制器210可以控制存储器装置100擦除缓冲块。缓冲块控制器210可以将用于指示存储器装置100对缓冲块执行擦除操作的擦除命令提供至存储器装置100。
缓冲块控制器210可以控制存储器装置100将与写入请求对应的数据存储在经擦除的缓冲块中。缓冲块控制器210可以将用于存储与写入请求对应的数据的编程命令提供至存储器装置100。
当数据存储在缓冲块中时,映射表管理器220可以生成L2P映射表221。L2P映射表221可以包括从主机提供的数据的逻辑地址与缓冲地址之间的映射信息,该缓冲地址是存储数据的缓冲块的物理地址。此处,映射信息可以是指示逻辑地址和物理地址之间的映射关系的L2P映射信息(L2P Mapping Info)。
当从缓冲块控制器210接收到迁移完成信号时,映射表管理器220可以更新L2P映射表221。详细地,映射表管理器220可以将与L2P映射表221中包括的数据的逻辑地址映射的物理地址从缓冲地址更新成作为主块的物理地址的主地址。
当从缓冲块控制器210接收到迁移完成信号时,映射表管理器220可以生成P2P映射表222。P2P映射表222可以包括主地址和缓冲地址之间的映射信息。此处,映射信息可以是指示物理地址之间的映射关系的P2P映射信息(P2P Mapping Info)。
映射表管理器220可以基于P2P映射表222生成查找表223。查找表223可以包括主块的索引。也就是说,索引可以指示P2P映射表中的主地址。
映射表管理器220可以将L2P映射表221中包括的L2P映射信息提供至读取操作控制器230。详细地,当读取操作控制器230从参照图1描述的主机接收读取请求(Request)时,映射表管理器220可以将与需要读取的数据对应的L2P映射信息提供至读取操作控制器230。
映射表管理器220可以将P2P映射表222中存储的P2P映射信息提供至读取操作控制器230。当将L2P映射信息提供至读取操作控制器230时,映射表管理器220可以将P2P映射信息与L2P映射信息一起提供至读取操作控制器230。
映射表管理器220可以将块索引信息(BLK Index Info)提供至读取操作控制器230。块索引信息可以是关于包括在查找表223中的主块的索引的信息。当将P2P映射信息提供至读取操作控制器230时,映射表管理器220可以将块索引信息与P2P映射信息一起提供至读取操作控制器230。
当从主机接收对读取存储在缓冲块或主块中的数据的读取请求(Request)时,读取操作控制器230可以控制存储器装置100读取数据。读取操作控制器230还可以从主机一起接收数据的逻辑地址与读取请求。
读取操作控制器230可以响应于读取请求生成读取命令,并且将读取命令提供给存储器装置100。此处,读取操作控制器230可以参考从映射表管理器220提供的L2P映射信息,将与数据的逻辑地址映射的物理地址提供至存储器装置100。存储器装置100可以参考接收的物理地址执行读取数据的操作。
在实施例中,如果与数据的逻辑地址映射的物理地址是缓冲地址,则读取操作控制器230可以将缓冲地址提供给存储器装置100。缓冲地址可以是存储数据的缓冲块的物理地址。
如果与逻辑地址映射的物理地址是主地址,则读取操作控制器230可以确定主地址是否包括在P2P映射表中。主地址可以是存储数据的主块的物理地址。
详细地,读取操作控制器230可以基于从映射表管理器220提供的块索引信息来确定主地址是否包括在P2P映射表222中。如果与主地址对应的索引包括在块索引信息中,则读取操作控制器230可以确定主地址包括在P2P映射表222中。
如果主地址包括在P2P映射表222中,则读取操作控制器230可以参照从映射表管理器220提供的P2P映射信息将与主地址映射的缓冲地址提供至存储器装置100。存储器装置100可以基于接收的缓冲地址执行读取数据的操作。
如果主地址未包括在P2P映射表222中,则读取操作控制器230可以将主地址提供至存储器装置100。存储器装置100可以基于接收到的主地址执行读取数据的操作。
图8是示出根据本公开的实施例的数据迁移操作的示图。
参照图8,如(a)所示,缓冲区域可以包括第一至第六缓冲块SLC1至SLC6。缓冲块的存储器单元中的每一个可以是可以存储一个数据位的单层单元(SLC)。如(b)所示,主区域可以包括第一至第六主块TLC1至TLC6。主块的存储器单元中的每一个可以是可以存储三个数据位的三层单元(TLC)。
缓冲区域中包括的缓冲块的数量、主区域中包括的主块的数量、以及可以在主块的每个存储器单元或缓冲块的每个存储器单元中存储的数据位的数量不限于本实施例中的数量。
在缓冲块的至少一个中存储的数据可以存储在主块的至少一个中。可以在主块的一个存储器单元中存储的数据位的数量可以大于可以在缓冲块的一个存储器单元中存储的数据位的数量。因此,两个或更多个缓冲块中存储的数据可以存储在一个主块中。
在实施例中,可以执行将已经存储在至少一个缓冲块中的数据存储在至少一个主块中的数据迁移操作。当参照图1描述的存储器装置处于空闲状态时,可以执行数据迁移操作。
在实施例中,可以删除针对迁移操作选择的存储在一个或多个缓冲块中的数据。例如,当新数据存储在选择的缓冲块中时,可以删除已存储在选择的块中的现有数据。因此,为了将新数据存储在选择的缓冲块中,可以擦除选择的缓冲块。可以将新数据编程到经擦除的缓冲块中。
在图8中,非阴影的存储块可以是能够存储新数据的空闲块。阴影的存储块可以是已经存储有数据的存储块。
因此,在图8的(a)中,第一至第四缓冲块SLC1至SCL4中的每一个可以是已经存储数据的存储块。第五和第六缓冲块SLC5和SLC6可以是空闲块。在图8的(b)中,第一主块TLC1可以是已经存储数据的存储块。第二至第六主块TLC2至TLC6中的每一个可以是空闲块。
可以执行将已经存储在第一至第三缓冲块SLC1至SLC3中的数据存储在第一主块TLC1中的数据迁移操作。第一主块TLC1的每个存储器单元可以是三层单元,而第一至第三缓冲块SLC1至SLC3的每个存储器单元可以是单层单元。因此,已经存储在三个缓冲块SLC1至SLC3中的数据可以存储在一个主块TCL1中。
当执行数据迁移操作时,可以更新参照图7描述的L2P映射表。当执行数据迁移操作时,可以生成P2P映射表和查找表。
图9是示出由图7的映射表管理器220生成的L2P映射表、P2P映射表和查找表的示图。
参照图8和图9,图9的(a)示出包括数据的逻辑地址LBA和存储数据的存储块的物理地址之间的映射信息的L2P映射表。可以从参照图1描述的主机提供数据的逻辑地址LBA。每个主块的物理地址可以是主地址。每个缓冲块的物理地址可以是缓冲地址。L2P映射表中与一个存储块对应的物理地址的数量不限于本实施例中的数量。
在L2P映射表中,第一至第七逻辑地址LBA 1至LBA 7可以分别与第一至第七缓冲地址PBA_S 1至PBA_S 7映射。第一和第二缓冲地址PBA_S 1和PBA_S 2可以是第一缓冲块SLC1的物理地址。第三和第四缓冲地址PBA_S 3和PBA_S 4可以是第二缓冲块SLC2的物理地址。第五和第六缓冲地址PBA_S 5和PBA_S 6可以是第三缓冲块SLC3的物理地址。第七缓冲地址PBA_S 7可以是第四缓冲块SLC4的物理地址。
如果执行了数据迁移操作,则L2P映射表可以更新。可以将已与第一至第六逻辑地址LBA 1至LBA 6映射的第一至第六缓冲地址PBA_S 1至PBA_S 6分别更新成第一至第六主地址PBA_T 1至PBA_T 6。第一至第六主地址PBA_T 1至PBA_T 6可以是第一主块TLC1的物理地址。
可以保持第七逻辑地址LBA 7和第七缓冲地址PBA_S 7之间的映射关系。第七缓冲地址PBA_S 7可以是尚未执行数据迁移操作的第四缓冲块SLC4的物理地址。
在图9的(b)中,当已经存储在缓冲块中的数据存储在主块中时,可以生成P2P映射表。P2P映射表可以包括缓冲块的物理地址与主块的物理地址之间的映射信息。例如,在P2P映射表中,第一至第六缓冲地址PBA_S 1至PBA_S 6可以分别与第一至第六主地址PBA_T 1至PBA_T 6映射。
在图9的(c)中,可以基于P2P映射表生成查找表。查找表可以包括存储块的索引。此处,存储块可以是由P2P映射表中包括的主地址指示的主块。例如,由P2P映射表中包括的第一至第六主地址PBA_T 1至PBA_T 6指示的主块可以是第一主块TLC1。因此,查找表可以存储第一主块TLC1的索引。
在实施例中,响应于从参照图1描述的主机接收的读取请求,可以参考L2P映射表来执行读取数据的操作。详细地,基于L2P映射表,可以参考与从主机提供的数据的逻辑地址映射的物理地址来执行读取数据的操作。然而,如果由主地址指示的存储块的索引包括在查找表中,则可以参考P2P映射表执行读取数据的操作。换言之,可以参考与P2P映射表中的主地址映射的缓冲地址来执行读取数据的操作。
例如,在已经执行了数据迁移操作之后,可以执行读取存储在第一主块TLC1中的数据之中的、与第四逻辑地址LBA 4对应的数据的操作。此处,可以参考与L2P映射表中的第四逻辑地址LBA4映射的第四主地址PBA_T 4来执行读取数据的操作。
然而,由于作为由映射的第四主地址PBA_T 4指示的存储块的第一主块TLC1的索引包括在查找表中,所以可以参考P2P映射表执行读取数据的操作。详细地,可以参考与P2P映射表中的第四主地址PBA_T 4映射的第四缓冲地址PBA_S 4来执行读取数据的操作。第四缓冲地址PBA_S 4可以是第二缓冲块SLC2的物理地址。
读取由单层单元形成的缓冲块中存储的数据的速度可以高于读取由三层单元形成的主块中存储的数据的速度。因此,当参考第四缓冲地址PBA_S 4而不是第四主地址PBA_T 4读取与第四逻辑地址LBA 4对应的数据时,可以增大读取数据的速度。
在实施例中,在已经执行数据迁移操作之后,可以执行读取与第七逻辑地址LBA 7对应的数据的操作。可以参考与L2P映射表中的第七逻辑地址LBA 7映射的第七缓冲地址PBA_S 7来执行读取数据的操作。作为由第七缓冲地址PBA_S 7指示的存储块的第四缓冲块SLC 4的索引不包括在查找表中。因此,可以不执行参考P2P映射表读取与第七逻辑地址LBA7对应的数据的操作。
图10是示出根据本公开的实施例的存储器控制器的操作的流程图。
参照图10,在步骤S1001,存储器控制器可以确定存储器装置是否处于空闲状态。如果确定存储器装置处于空闲状态(即在步骤S1001为“是”),则进程进行至步骤S1003。如果不是(即在步骤S1001为“否”),则终止进程。
在步骤S1003,存储器控制器可以将存储在一个或多个缓冲块中的数据存储在主块中。详细地,缓冲块中存储的数据被读取,然后存储在主块中。
在步骤S1005,存储器控制器可以更新L2P映射表。L2P映射表可以包括从主机提供的数据的逻辑地址与缓冲地址之间的映射信息,该缓冲地址是存储数据的缓冲块的物理地址。存储器控制器可以将与L2P映射表中包括的逻辑地址映射的物理地址从缓冲地址更新成主地址。主地址可以是存储数据的主块的物理地址。
在步骤S1007,存储器控制器可以生成P2P映射表。P2P映射表可以包括缓冲地址和主地址之间的映射信息。
在步骤S1009,存储器控制器可以参考P2P映射表生成查找表。查找表可以包括指示P2P映射表中包括的主地址的存储块的索引。
图11是示出根据本公开的实施例的存储器控制器的操作的流程图。
参照图11,在步骤1101,存储器控制器可以从主机接收读取请求。
在步骤S1103,存储器控制器可以在L2P映射表中搜索与响应于读取请求待读取的数据的逻辑地址映射的物理地址。可以从主机提供逻辑地址。
在步骤S1105,存储器控制器可以确定在搜索中找到的物理地址是主地址还是缓冲地址。如果作为确定结果,找到的物理地址是主地址(即在步骤S1105为“是”),则进程进行至步骤S1109。如果找到的物理地址是缓冲地址(即在步骤S1105为“否”),则进程进行至步骤S1107。主地址可以是存储数据的主块的物理地址。
在步骤S1107,存储器控制器可以参考缓冲地址从缓冲块读取数据。
在步骤S1109,存储器控制器可以确定由主地址指示的存储块的索引是否包括在查找表中。如果作为确定结果,存储块的索引包括在查找表中(即在步骤S1109为“是”),则进程进行至步骤S1113。如果不是(即在步骤S1109为“否”),则进程进行至步骤S1111。
在步骤S1111,存储器控制器可以参考主地址读取数据。
在步骤S1113,存储器控制器可以搜索与P2P映射表中的主地址映射的缓冲地址。缓冲地址可以是存储数据的缓冲块的物理地址。
在步骤S1115,存储器控制器可以参考缓冲地址读取数据。
图12是示出根据本公开的实施例的存储器控制器的操作的流程图。
参照图12,在步骤1201,存储器控制器可以从主机接收写入请求。
在步骤S1203,存储器控制器可以控制存储器装置,使得存储器装置擦除选择的缓冲块,然后将写入数据存储在经擦除的选择的缓冲块中。详细地,存储器控制器可以将用于将写入数据存储在选择的缓冲块中的编程命令提供至存储器装置。
在步骤S1205,存储器控制器可以更新P2P映射表。详细地,可以从P2P映射表中删除与从缓冲块擦除的存储的数据对应的映射信息。
在步骤S1207,可以基于更新后的P2P映射表来更新查找表。存储器控制器可以从查找表中删除与从P2P映射表中删除的映射信息对应的主块的索引。
图13是示出图1的存储器控制器的实施例的示图。
参照图13,存储器控制器1000联接到主机和存储器装置。响应于来自主机的请求,存储器控制器1000可以访问存储器装置。例如,存储器控制器1000可以控制存储器装置的写入操作、读取操作、擦除操作和后台操作。存储器控制器1000可以提供存储器装置和主机之间的接口连接。存储器控制器1000可以驱动固件用于控制存储器装置。
存储器控制器1000可以包括处理器1010、存储器缓冲器1020、错误校正码(ECC)电路1030、主机接口1040、缓冲器控制电路1050、存储器接口1060和总线1070。
总线1070可以在存储器控制器1000的组件之间提供通道。
处理器1010可以控制存储器控制器1000的全部操作,并且执行逻辑操作。处理器1010可以通过主机接口1040与外部主机通信,并且通过存储器接口1060与存储器装置通信。另外,处理器1010可通过缓冲器控制电路1050与存储器缓冲器1020通信。处理器1010可以使用作为工作存储器、高速缓存存储器或缓冲存储器的存储器缓冲器1020来控制存储装置的操作。
处理器1010可以执行闪存转换层(FTL)的功能。处理器1010可以通过FTL将由主机提供的逻辑块地址(LBA)转换为物理块地址(PBA)。FTL可以接收LBA并使用映射表将LBA转换为PBA。可以根据映射的单位使用FTL来应用各种地址映射方法。代表性地址映射方法可以包括页面映射方法、块映射方法以及混合映射方法。
处理器1010可以将从主机接收的数据随机化。例如,处理器1010可以使用随机化种子将从主机接收的数据随机化。经随机化的数据可以被提供至存储器装置作为待被存储的数据并且可以被编程到存储器单元阵列。
在读取操作期间,处理器1010可以将从存储器装置100接收的数据去随机化。例如,处理器1010可以使用去随机化种子将从存储器装置接收的数据去随机化。可以将经去随机化的数据输出至主机。
在实施例中,处理器1010可以驱动软件或固件来执行随机化操作或去随机化操作。
存储器缓冲器1020可以用作处理器1010的工作存储器、高速缓存存储器或缓冲存储器。存储器缓冲器1020可以存储待由处理器1010运行的代码和命令。存储器缓冲器1020可以存储待由处理器1010处理的数据。存储器缓冲器1020可以包括静态RAM(SRAM)或动态RAM(DRAM)。
ECC电路1030可以执行错误校正。ECC电路1030可以基于待通过存储器接口1060被写入到存储器装置的数据执行ECC编码操作。经ECC编码的数据可以通过存储器接口1060被传送至存储器装置。ECC电路1030可以对通过存储器接口1060从存储器装置接收的数据执行ECC解码操作。例如,ECC电路1030可以作为存储器接口1060的组件而包括在存储器接口1060中。
主机接口1040可以在处理器1010的控制下与外部主机通信。主机接口1040可以使用诸如以下的各种通信方法中的至少一种执行通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCI-E)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和低负载DIMM(LRDIMM)通信方法。
缓冲器控制电路1050可以在处理器1010的控制下控制存储器缓冲器1020。
存储器接口1060可以在处理器1010的控制下与存储器装置100通信。存储器接口1060可以通过通道与存储器装置通信命令、地址和数据。
在另一实施例中,存储器控制器1000可以既不包括存储器缓冲器1020也不包括缓冲器控制电路1050。可以单独提供这两个组件中的任一个,或者其一个或两个功能可以分布在存储器控制器100内。
例如,处理器1010可以使用代码来控制存储器控制器1000的操作。处理器1010可以从存储器控制器1000中设置的非易失性存储器装置(例如,只读存储器)加载代码。可选地,处理器1010可以通过存储器接口1060从存储器装置加载代码。
例如,存储器控制器1000的总线1070可以被划分成控制总线和数据总线。数据总线可以在存储器控制器1000中传送数据。控制总线可以在存储器控制器1000中传送诸如命令和地址的控制信息。数据总线和控制总线可以彼此分离,并且可以不相互干扰也不相互影响。数据总线可以联接到主机接口1040、缓冲器控制电路1050、ECC电路1030和存储器接口1060。控制总线可以联接到主机接口1040、处理器1010、缓冲器控制电路1050、存储器缓冲器1020和存储器接口1060。
图14是示出根据本公开的实施例的应用存储装置的存储卡系统2000的框图。
参照图14,存储卡系统2000可以包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100联接到存储器装置2200。存储器控制器2100可以访问存储器装置2200。例如,存储器控制器2100可以控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100可以提供存储器装置2200和主机之间的接口连接。存储器控制器2100可以驱动固件用于控制存储器装置2200。存储器控制器2100可以与参照图1描述的存储器控制器200的方式相同的方式实现。
在实施例中,存储器控制器2100可以包括诸如随机存取存储器(RAM)、处理器、主机接口、存储器接口和ECC电路的组件。
存储器控制器2100可以通过连接器2300与外部装置通信。存储器控制器2100可以基于特定通信协议与外部装置(例如,主机)通信。在实施例中,存储器控制器2100可以通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、Wi-Fi、蓝牙以及高速非易失性存储器(NVMe)协议。在实施例中,连接器2300可以由上述各种通信协议中的至少一种来定义。
在实施例中,存储器装置2200可以被实施为诸如以下的各种非易失性存储器装置中的一种:电可擦除可编程ROM(EPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)和自旋转移力矩磁性RAM(STT-MRAM)。
在实施例中,存储器控制器2100和存储器装置2200可以被集成到单个半导体装置中以形成诸如以下的存储卡:个人计算机存储卡国际协会(PCMCIA),紧凑型闪存(CF)卡,智能媒体卡(SM或SMC),记忆棒,多媒体卡(MMC、RS-MMC或微型MMC),SD卡(SD、迷你SD、微型SD或SDHC)、或通用闪存(UFS)。
图15是示出根据本公开的实施例的应用存储装置的固态驱动器(SSD)系统3000的框图。
参照图15,SSD系统3000可以包括主机3100和SSD 3200。SSD3200可以通过信号连接器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)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WiFi、蓝牙以及高速非易失性存储器(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的非易失性存储器。
图16是示出根据本公开的实施例的应用存储装置的用户系统4000的框图。
参照图16,用户系统4000可以包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以运行用户系统4000中包括的组件、操作系统(OS)或用户程序。在实施例中,应用处理器4100可以包括用于控制用户系统4000中包括的组件的控制器、接口、图形引擎等。应用处理器4100可以被设置为片上系统(SoC)。
存储器模块4200可以用作用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3SDRAM、LPDDR SDRAM和LPDDR3 SDRAM的易失性RAM,或诸如PRAM、ReRAM、MRAM和FRAM的非易失性RAM。在实施例中,应用处理器4100和存储器模块4200可以基于堆叠式封装(POP)来封装并且可以继而被作为单个半导体封装来提供。
网络模块4300可以与外部装置通信。例如,网络模块4300可以支持诸如以下的无线通信:码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、WiMAX、WLAN、UWB、蓝牙或WiFi通信。在实施例中,网络模块4300可以包括在应用处理器4100中。
存储模块4400可以将数据存储在其中。例如,存储模块4400可以存储从应用处理器4100接收的数据。可选地,存储模块4400可将存储在存储模块4400中的数据传送至应用处理器4100。在实施例中,存储模块4400可以被实施为诸如以下的非易失性半导体存储器装置:相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪速存储器、NOR闪速存储器或具有三维(3D)结构的NAND闪速存储器。在实施例中,存储模块4400可以被设置为可移动存储介质(即,可移动驱动器),诸如用户系统4000的存储卡或外部驱动器。
在实施例中,存储模块4400可以包括多个非易失性存储器装置,并且多个非易失性存储器装置中的每一个可以与以上参照图1描述的存储器装置100的方式相同的方式操作。存储模块4400可以与以上参照图1描述的存储装置50的方式相同的方式操作。
用户接口4500可以包括用于将数据或指令输入至应用处理器4100或将数据输出到外部装置的接口。在实施例中,用户接口4500可以包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电装置的用户输入接口。用户接口4500可以进一步包括诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器的用户输出接口。
如上所述,本公开的各个实施例可以提供一种具有提高的读取性能的存储装置以及操作存储装置的方法。
虽然已经公开了本公开的实施例,但是根据本公开,本领域技术人员将理解的是在不脱离本公开的范围和精神的情况下,可以进行各种修改、添加和替换。
因此,本发明的范围必须由所附权利要求及其等同方案来限定,而不是由前面的描述来限定。
在以上讨论的实施例中,可以选择性地执行或跳过一个或多个步骤。另外,每个实施例中的步骤可以不总是以常规顺序执行。此外,本文公开的实施例旨在帮助本领域技术人员更清楚地理解本公开,而不是旨在限制本发明的范围。换言之,本公开所属领域的普通技术人员将能够容易地理解,基于本公开的技术范围可以进行各种修改。
已经参照附图描述了本公开的实施例,并且在说明书中使用的特定术语或词语应当根据本公开的精神来解释,而不限制本发明的主题。应理解的是,本文描述的基本发明构思的许多变化和修改仍将落入所附权利要求及其等同方案所限定的本发明的精神和范围内。
Claims (19)
1.一种存储器控制器,所述存储器控制器控制存储器装置,所述存储器装置包括多个缓冲块和多个主块,所述存储器控制器包括:
缓冲块控制器,控制所述存储器装置将存储在所述多个缓冲块的至少一个缓冲块中的数据存储在所述多个主块的至少一个主块中;
映射表管理器,当存储在所述至少一个缓冲块中的所述数据存储在所述至少一个主块中时,生成包括缓冲地址和主地址之间的映射信息的物理到物理映射表即P2P映射表,所述缓冲地址是所述至少一个缓冲块的物理地址,所述主地址是所述至少一个主块的物理地址;以及
读取操作控制器,当从主机接收到对所述数据的读取请求时,控制所述存储器装置基于所述P2P映射表中包括的所述主地址或所述缓冲地址来读取所述数据,
当擦除所述至少一个缓冲块的选择的缓冲块时,所述映射表管理器从所述P2P映射表中删除与经擦除的缓冲块对应的映射信息。
2.根据权利要求1所述的存储器控制器,其中当所述数据存储在所述至少一个缓冲块中时,所述映射表管理器生成逻辑到物理映射表即L2P映射表,所述L2P映射表包括从所述主机提供的数据的逻辑地址和所述缓冲地址之间的映射信息。
3.根据权利要求2所述的存储器控制器,其中当存储在所述至少一个缓冲块中的数据存储在所述至少一个主块中时,所述映射表管理器将与所述L2P映射表中包括的所述逻辑地址映射的所述物理地址从所述缓冲地址改变成所述主地址。
4.根据权利要求3所述的存储器控制器,其中根据映射到被请求读取的逻辑地址的所述主地址是否包括在所述P2P映射表中,所述读取操作控制器控制所述存储器装置以基于通过所述L2P映射表映射到所述被请求读取的逻辑地址的所述主地址或所述缓冲地址读取所述数据。
5.根据权利要求4所述的存储器控制器,其中当映射到所述被请求读取的逻辑地址的所述主地址包括在所述P2P映射表中时,所述读取操作控制器控制所述存储器装置基于映射到所述P2P映射表中的主地址的所述缓冲地址读取所述数据。
6.根据权利要求4所述的存储器控制器,其中当映射到所述被请求读取的逻辑地址的所述主地址不包括在所述P2P映射表中时,所述读取操作控制器控制所述存储器装置基于所述主地址读取所述数据。
7.根据权利要求3所述的存储器控制器,其中所述映射表管理器生成查找表,所述查找表指示所述P2P映射表中的所述主地址的索引。
8.根据权利要求7所述的存储器控制器,其中根据与映射到被请求读取的逻辑地址的所述主地址对应的所述索引是否包括在所述查找表中,所述读取操作控制器控制所述存储器装置以基于通过所述L2P映射表映射到所述被请求读取的逻辑地址的所述主地址或所述缓冲地址读取所述数据。
9.根据权利要求8所述的存储器控制器,其中当与映射到所述被请求读取的逻辑地址的所述主地址对应的所述索引包括在所述查找表中时,所述读取操作控制器控制所述存储器装置基于映射到所述P2P映射表中的主地址的所述缓冲地址读取所述数据。
10.根据权利要求1所述的存储器控制器,
其中所述多个缓冲块的存储器单元中的每一个存储n个位,其中n是1或更大的自然数,并且
其中所述多个主块的存储器单元中的每一个存储m个位,其中m是大于n的自然数。
11.根据权利要求1所述的存储器控制器,其中当所述存储器装置处于空闲状态时,所述缓冲块控制器将存储在所述至少一个缓冲块中的数据存储在所述至少一个主块中。
12.一种存储装置,包括:
存储器装置,包括多个缓冲块和多个主块;以及
存储器控制器,控制所述存储器装置以:
将存储在所述多个缓冲块的至少一个缓冲块中的数据存储在所述多个主块的至少一个主块中;
当所述数据存储在所述至少一个主块中时,生成包括缓冲地址和主地址之间的映射信息的物理到物理映射表即P2P映射表,所述缓冲地址是所述至少一个缓冲块的物理地址,所述主地址是所述至少一个主块的物理地址;并且
当从主机接收到对所述数据的读取请求时,基于所述P2P映射表中包括的所述主地址或所述缓冲地址来读取所述数据,
其中当擦除所述至少一个缓冲块的选择的缓冲块时,所述存储器控制器从所述P2P映射表中删除与经擦除的缓冲块对应的映射信息。
13.根据权利要求12所述的存储装置,
其中当所述数据存储在所述至少一个缓冲块中时,所述存储器控制器生成逻辑到物理映射表即L2P映射表,所述L2P映射表包括从所述主机提供的所述数据的逻辑地址与所述缓冲地址之间的映射信息,并且
其中当存储在所述至少一个缓冲块中的数据存储在所述至少一个主块中时,所述存储器控制器将与所述L2P映射表中包括的所述逻辑地址映射的所述物理地址从所述缓冲地址改变成所述主地址。
14.根据权利要求13所述的存储装置,其中当从所述主机接收到对所述数据的读取请求时,根据映射到被请求读取的逻辑地址的所述主地址是否包括在所述P2P映射表中,所述存储器控制器控制所述存储器装置以基于通过所述L2P映射表映射到所述被请求读取的逻辑地址的所述主地址或所述缓冲地址读取所述数据。
15.根据权利要求14所述的存储装置,其中当映射到所述被请求读取的逻辑地址的所述主地址包括在所述P2P映射表中时,所述存储器控制器控制所述存储器装置基于映射到所述P2P映射表中的主地址的所述缓冲地址读取所述数据。
16.根据权利要求14所述的存储装置,其中当映射到所述被请求读取的逻辑地址的所述主地址不包括在所述P2P映射表中时,所述存储器控制器控制所述存储器装置基于所述主地址读取所述数据。
17.一种操作存储装置的方法,所述存储装置包括:存储器装置,包括多个缓冲块和多个主块;以及存储器控制器,控制所述存储器装置,所述方法包括:
读取存储在所述多个缓冲块的至少一个缓冲块中的数据;
将通过读取存储的数据而获得的数据存储在所述多个主块的至少一个主块中;
生成包括缓冲地址和主地址之间的映射信息的物理到物理映射表即P2P映射表,所述缓冲地址是所述至少一个缓冲块的物理地址,所述主地址是所述至少一个主块的物理地址;以及
当从主机接收到对所述数据的读取请求时,基于所述P2P映射表中包括的所述主地址或所述缓冲地址来读取所述数据,
进一步包括:
擦除所述至少一个缓冲块的选择的缓冲块;以及
从所述P2P映射表中删除与经擦除的缓冲块对应的映射信息。
18.根据权利要求17所述的方法,进一步包括:
当所述数据存储在所述至少一个缓冲块中时,生成逻辑到物理映射表即L2P映射表,所述L2P映射表包括从所述主机提供的所述数据的逻辑地址与所述缓冲地址之间的映射信息;以及
当存储在所述至少一个缓冲块中的所述数据存储在所述至少一个主块中时,将与所述L2P映射表中包括的所述逻辑地址映射的所述物理地址从所述缓冲地址改变成所述主地址。
19.一种存储器系统,包括:
存储器装置,包括低密度存储的第一存储器区域和高密度存储的第二存储器区域;以及
控制器:
控制所述存储器装置将数据从所述第一存储器区域复制到所述第二存储器区域;
更新第一映射信息以用第二物理地址替换第一物理地址,所述第一映射信息指示逻辑地址映射到所述第一物理地址,所述第一物理地址表示在所述第一存储器区域中在何处存储所述数据,所述第二物理地址表示在所述第二存储器区域中从何处复制所述数据;
生成第二映射信息,所述第二映射信息指示所述第一物理地址映射到所述第二物理地址;
当所述第一映射信息指示所述第二物理地址映射到被请求访问的逻辑地址并且所述第二映射信息指示所述第一物理地址映射到所述第二物理地址时,访问所述第一存储器区域,并且
当擦除所述第一存储器区域时,所述控制器从所述第二映射信息中删除与经擦除的第一存储器区域对应的映射信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180165679A KR20200076528A (ko) | 2018-12-19 | 2018-12-19 | 저장 장치 및 그 동작 방법 |
KR10-2018-0165679 | 2018-12-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111338978A CN111338978A (zh) | 2020-06-26 |
CN111338978B true CN111338978B (zh) | 2023-04-18 |
Family
ID=71097561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910892565.8A Active CN111338978B (zh) | 2018-12-19 | 2019-09-20 | 存储装置以及操作存储装置的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10996881B2 (zh) |
KR (1) | KR20200076528A (zh) |
CN (1) | CN111338978B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2582638B (en) * | 2019-03-29 | 2021-10-06 | Kigen Uk Ltd | An apparatus, method and computer program for managing memory page updates within non-volatile memory |
CN113885779B (zh) * | 2020-07-02 | 2024-03-12 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102789427A (zh) * | 2012-07-17 | 2012-11-21 | 威盛电子股份有限公司 | 数据储存装置与其操作方法 |
CN105740162A (zh) * | 2015-12-31 | 2016-07-06 | 上海盈方微电子有限公司 | 应用于nand存储器的nftl数据存储系统及方法 |
CN108280033A (zh) * | 2017-01-04 | 2018-07-13 | 爱思开海力士有限公司 | 数据存储设备及其操作方法 |
CN108717395A (zh) * | 2018-05-18 | 2018-10-30 | 记忆科技(深圳)有限公司 | 一种降低动态块映射信息占用内存的方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4871260B2 (ja) * | 2005-03-03 | 2012-02-08 | パナソニック株式会社 | メモリモジュール、メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びメモリの読み書き方法 |
CN101930404B (zh) * | 2010-08-27 | 2012-11-21 | 威盛电子股份有限公司 | 存储装置及其操作方法 |
KR101861170B1 (ko) | 2011-08-17 | 2018-05-25 | 삼성전자주식회사 | 마이그레이션 관리자를 포함하는 메모리 시스템 |
US20140025921A1 (en) * | 2012-07-19 | 2014-01-23 | Jmicron Technology Corp. | Memory control method utilizing main memory for address mapping and related memory control circuit |
KR102180595B1 (ko) | 2014-02-06 | 2020-11-19 | 삼성전자주식회사 | 불휘발성 메모리 장치의 동작 방법 및 불휘발성 메모리 시스템 |
KR102190670B1 (ko) * | 2014-03-03 | 2020-12-14 | 삼성전자주식회사 | 마이그레이션 관리자를 포함하는 메모리 시스템 |
US10001924B2 (en) * | 2016-03-07 | 2018-06-19 | HGST Netherlands B.V. | Efficient and dynamically sized reverse map to handle variable size data |
US20190344686A1 (en) * | 2018-05-14 | 2019-11-14 | GM Global Technology Operations LLC | Removable rotating seating system |
-
2018
- 2018-12-19 KR KR1020180165679A patent/KR20200076528A/ko not_active Application Discontinuation
-
2019
- 2019-08-07 US US16/534,708 patent/US10996881B2/en active Active
- 2019-09-20 CN CN201910892565.8A patent/CN111338978B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102789427A (zh) * | 2012-07-17 | 2012-11-21 | 威盛电子股份有限公司 | 数据储存装置与其操作方法 |
CN105740162A (zh) * | 2015-12-31 | 2016-07-06 | 上海盈方微电子有限公司 | 应用于nand存储器的nftl数据存储系统及方法 |
CN108280033A (zh) * | 2017-01-04 | 2018-07-13 | 爱思开海力士有限公司 | 数据存储设备及其操作方法 |
CN108717395A (zh) * | 2018-05-18 | 2018-10-30 | 记忆科技(深圳)有限公司 | 一种降低动态块映射信息占用内存的方法及装置 |
Non-Patent Citations (2)
Title |
---|
Durable Address Translation in PCM-Based Flash Storage Systems;Duo Liu等;《IEEE》;475-490 * |
一种变粒度的闪存地址映射方案;樊进 等;《中国科学技术大学学报》;869-877 * |
Also Published As
Publication number | Publication date |
---|---|
KR20200076528A (ko) | 2020-06-29 |
US10996881B2 (en) | 2021-05-04 |
US20200201547A1 (en) | 2020-06-25 |
CN111338978A (zh) | 2020-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102596407B1 (ko) | 저장 장치 및 그 동작 방법 | |
CN111435289B (zh) | 映射数据访问性能提高的存储器控制器及其操作方法 | |
CN111258793B (zh) | 存储器控制器及其操作方法 | |
CN110502449B (zh) | 存储装置及其操作方法 | |
CN111105832B (zh) | 存储装置和操作存储装置的方法 | |
CN110399092B (zh) | 存储装置以及操作存储装置的方法 | |
CN111444115B (zh) | 存储装置及其操作方法 | |
CN111177020B (zh) | 存储装置及其操作方法 | |
CN110175133B (zh) | 存储装置及其操作方法 | |
CN111752856A (zh) | 存储器控制器及其操作方法 | |
CN112463664A (zh) | 存储装置及其操作方法 | |
CN112988049A (zh) | 存储装置及其操作方法 | |
CN111352855A (zh) | 具有提高的映射更新速度的存储装置及其操作方法 | |
CN111105836A (zh) | 存储装置及其操作方法 | |
CN111445939B (zh) | 存储装置及其操作方法 | |
CN113223573A (zh) | 存储器控制器及其操作方法 | |
CN111580744A (zh) | 存储器控制器及其操作方法 | |
CN111338978B (zh) | 存储装置以及操作存储装置的方法 | |
CN110619912A (zh) | 存储装置以及该存储装置的操作方法 | |
CN113448892A (zh) | 存储器控制器及其操作方法 | |
KR102640951B1 (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
KR20210128780A (ko) | 메모리 컨트롤러 및 이를 포함하는 저장 장치 | |
CN111312305A (zh) | 存储装置及其操作方法 | |
CN111341372B (zh) | 存储装置以及操作存储装置的方法 | |
KR102626058B1 (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 |