CN113448892A - 存储器控制器及其操作方法 - Google Patents
存储器控制器及其操作方法 Download PDFInfo
- Publication number
- CN113448892A CN113448892A CN202011085962.3A CN202011085962A CN113448892A CN 113448892 A CN113448892 A CN 113448892A CN 202011085962 A CN202011085962 A CN 202011085962A CN 113448892 A CN113448892 A CN 113448892A
- Authority
- CN
- China
- Prior art keywords
- metadata
- mapping
- memory
- buffer
- stored
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
- G06F13/1631—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/30—Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开涉及一种存储器控制器,该存储器控制器包括映射缓冲器和映射更新控制器。映射缓冲器包括分别对应于一个或多个索引的存储区域。映射更新控制器将元数据存储在与一个或多个索引之中的目标索引相对应的存储区域中,并且基于针对第一逻辑地址的映射数据的更新来更新元数据。元数据包括映射到该第一逻辑地址的物理地址的历史信息。
Description
相关申请的交叉引用
本申请要求于2020年3月26日提交的申请号为10-2020-0036676的韩国专利申请的优先权,其通过引用整体并入本文。
技术领域
本文描述的各个实施例涉及一种存储器控制器和操作该存储器控制器的方法。
背景技术
已经开发了各种类型的存储装置。通常,这些装置在计算机、智能手机或其他主机装置的控制下存储数据,并且通常配备有用于执行针对存储器的数据存储操作的控制器。
该存储器可以是易失性存储器或非易失性存储器。易失性存储器仅在供电时才可以存储数据。当电力断开或中断时,所存储的数据丢失。易失性存储器的示例包括静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。非易失性存储器即使在电力断开或中断的情况下也可以保持对数据的存储。非易失性存储器装置的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)以及闪速存储器。
发明内容
本公开的各个实施例涉及一种具有提高的映射更新性能的存储器控制器以及操作该存储器控制器的方法。
本公开的实施例可以提供一种用于控制存储器装置的存储器控制器。该存储器控制器可以包括映射缓冲器和映射更新控制器。映射缓冲器可以包括分别对应于一个或多个索引的存储区域。映射更新控制器可以被配置为将元数据存储在与一个或多个索引之中的目标索引相对应的存储区域中,并且基于针对第一逻辑地址的映射数据的更新来更新元数据,其中该元数据包括映射到第一逻辑地址的物理地址的历史信息。
本公开的实施例可以提供一种操作存储器控制器的方法,该存储器控制器控制存储器装置并且包括映射缓冲器。该方法可以包括:将元数据存储在映射缓冲器中,该元数据包括被映射到第一逻辑地址的物理地址的历史信息;并且根据是否已经更新针对第一逻辑地址的映射数据,基于针对第一逻辑地址的映射数据来更新映射缓冲器中存储的元数据。
附图说明
图1示出存储装置的实施例。
图2示出存储器装置的实施例。
图3示出存储器单元阵列的实施例。
图4示出存储器控制器的实施例。
图5示出映射缓冲器的实施例。
图6示出映射缓冲器的实施例。
图7A和图7B示出映射更新操作的实施例。
图8示出映射更新操作的实施例。
图9示出映射更新操作的实施例。
图10示出索引生效操作的实施例。
图11示出索引失效操作的实施例。
图12示出映射清除操作的实施例。
图13示出映射清除操作的实施例。
图14示出映射清除操作的实施例。
图15示出存储器控制器的实施例。
图16示出存储卡系统的实施例。
图17示出固态驱动器的实施例。
图18示出用户系统的实施例。
具体实施方式
在本说明书或申请中引入的本公开的实施例中的特定结构或功能描述仅是描述本公开的实施例的示例。本公开的各个实施例可以以各种形式来实践,并且不应被解释为限于说明书或申请中描述的实施例。
图1是示出根据实施例的存储装置50的示图。参照图1,存储装置50可以包括一个或多个存储器装置100以及存储器控制器200。存储装置50可在主机300的控制下存储数据,该主机300例如可以是移动电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视(TV)、平板电脑(PC)或车载信息娱乐系统。
存储装置50可以被制造为各种类型的存储装置中的任意一种,该任意一种存储装置例如兼容于与主机300通信的主机接口的通信协议或标准。存储装置50的示例包括:固态驱动器(SSD),诸如MMC、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)或微型MMC的多媒体卡,诸如SD、迷你-SD或微型-SD的安全数字卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围组件互连(PCI)卡型存储装置,高速PCI(PCI-E)卡型存储装置,紧凑型闪存(CF)卡,智能媒体卡和记忆棒。
存储装置50可以被制造为各种类型的封装形式中的任意一种。示例包括:堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)和晶圆级堆叠封装(WSP)。
每个存储器装置100可以在存储器控制器200的控制下存储数据。存储器装置100可以包括存储器单元阵列,该存储器单元阵列包括存储数据的多个存储器单元。存储器单元可以是例如能够存储一个数据位的单层单元(SLC)、能够存储两个数据位的多层单元(MLC)、能够存储三个数据位的三层单元(TLC)或能够存储四个数据位的四层单元(QLC)。
存储器单元阵列可以包括多个存储块,每个存储块可以包括多个存储器单元。一个存储块可包括多个页面。在实施例中,每个页面可以是用于将数据存储在(或写入)存储器装置100中或读取存储器装置100中存储的数据的单位。
存储块可以是擦除数据的单位。在实施例中,存储器装置100可以采用许多可选形式。示例包括:双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率第四代(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)SDRAM、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器装置、电阻式RAM(RRAM)、相变存储器(PRAM)、磁阻RAM(MRAM)、铁电RAM(FRAM)或自旋转移扭矩RAM(STT-RAM)。出于说明的目的,本文描述的一个或多个实施例将假定存储器装置100是NAND闪速存储器
存储器装置100可以从存储器控制器200接收命令和地址,并且可以访问存储器单元阵列中由地址选择的区域。例如,存储器装置100可以对由地址选择的区域执行由命令指示的操作。在一个实施例中,存储器装置100可以执行写入操作(例如,编程操作)、读取操作和擦除操作。在编程操作期间,存储器装置100可以将数据编程到由地址选择的区域。在读取操作期间,存储器装置100可以从由地址选择的区域读取数据。在擦除操作期间,存储器装置100可以擦除由地址选择的区域中存储的数据。
存储器控制器200控制存储装置50的全部操作。当向存储装置50供应电力时,存储器控制器200可以运行固件(FW)或其他指令。当存储器装置100是闪速存储器装置时,存储器控制器200可以运行固件(诸如闪存转换层(FTL)),用于控制主机300和存储器装置100之间的通信。
在实施例中,存储器控制器200可以从主机300接收数据和逻辑块地址(LBA),并且可以将该逻辑块地址转换为物理块地址(PBA),该物理块地址(PBA)指示存储器装置100中包括的并且将存储该数据的存储器单元的地址。
存储器控制器200可以响应于从主机300接收的请求来控制存储器装置100,从而执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可以向存储器装置100提供写入命令、物理块地址和数据。在读取操作期间,存储器控制器200可以向存储器装置100提供读取命令和物理块地址。在擦除操作期间,存储器控制器200可以向存储器装置100提供擦除命令和物理块地址。
在实施例中,存储器控制器200可以与来自主机300的请求无关地自主地生成命令、地址和数据,并且可以将它们传输到存储器装置100。例如,存储器控制器200可以向存储器装置100提供命令、地址和数据以执行后台操作,诸如用于耗损均衡的编程操作以及用于垃圾收集的编程操作。
在实施例中,存储器控制器200可以控制至少两个存储器装置100。在这种情况下,存储器控制器200可以根据交错方案来控制存储器装置100以提高操作性能。该交错方案可以是使至少两个存储器装置100的操作时段彼此重叠的操作方式。
在实施例中,存储器控制器200可以包括映射缓冲器210和映射更新控制器220。映射缓冲器210可以存储包括历史信息的元数据,该历史信息指示映射数据的改变历史。该历史信息可以指示例如映射到逻辑地址的物理地址的改变历史。
在实施例中,映射缓冲器210可以包括分别与一个或多个索引相对应的存储区域。可以将与一个逻辑地址相对应的元数据存储在与一个索引相对应的存储区域中。
当针对从主机300接收的逻辑地址的映射数据被更新时,映射更新控制器220可以基于映射数据生成元数据,并且可以将所生成的元数据存储在映射缓冲器210中。在一个实施例中,映射更新控制器220可以基于映射数据来更新映射缓冲器210中存储的与逻辑地址相对应的元数据。映射更新控制器220可以将映射缓冲器210中存储的元数据清除到存储器装置100中。
可以将被清除到存储器装置100中的元数据存储在该存储器装置100的存储块中。存储块中存储的元数据可以用于恢复映射数据。
在实施例中,映射更新控制器220可以响应于从主机300接收的清除请求将映射缓冲器210中存储的元数据清除到存储器装置100中。在实施例中,映射更新控制器220可以基于映射缓冲器210中存储的元数据的量将映射缓冲器210中存储的元数据清除到存储器装置100中。在实施例中,当在存储器装置100中发生突然断电时,映射更新控制器220可以将映射缓冲器210中存储的元数据清除到存储器装置100中。
主机300可以使用各种通信方法中的至少一种与存储装置50通信。示例包括:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和低负载DIMM(LRDIMM)通信方法。
图2示出存储器装置100的实施例,该存储器装置100可以包括存储器单元阵列110、外围电路120和控制逻辑130。
存储器单元阵列110包括通过行线RL联接到地址解码器121的多个存储块BLK1至BLKz。存储块BLK1至BLKz通过位线BL1至BLm联接到读取和写入电路123。存储块BLK1至BLKz中的每一个可以包括多个存储器单元。在实施例中,多个存储器单元可以是非易失性存储器单元。可以将多个存储器单元之中联接到相同字线的存储器单元定义为一个物理页面。例如,存储器单元阵列110可以包括多个物理页面。在实施例中,存储器单元阵列110中的存储块BLK1至BLKz中的每一个可以包括多个虚设单元。对于虚设单元,可以在漏极选择晶体管与一个或多个存储器单元之间以及在源极选择晶体管与一个或多个存储器单元之间串联联接一个或多个虚设单元。存储器装置100的存储器单元中的每一个可以被实施为能够存储一个数据位的单层单元(SLC)、能够存储两个数据位的多层单元(MLC)、能够存储三个数据位的三层单元(TLC)或者能够存储四个数据位的四层单元(QLC)。在实施例中,存储器装置100的存储器单元中的每一个也可以被实施为一种能够存储五个或更多个数据位的单元。
外围电路120可以包括地址解码器121、电压生成器122、读取和写入电路123、数据输入/输出电路124和感测电路125。外围电路120可以驱动存储器单元阵列110。例如,外围电路120可以驱动存储器单元阵列110,以执行编程操作、读取操作和擦除操作。
地址解码器121通过行线RL联接到存储器单元阵列110。行线RL可以包括漏极选择线、字线、源极选择线和公共源极线。根据实施例,字线可以包括正常字线和虚设字线。根据实施例,行线RL可以进一步包括管道选择线。
地址解码器121可以在控制逻辑130的控制下操作,并且可以从控制逻辑130接收地址ADDR。地址解码器121可以对所接收的地址ADDR之中的块地址进行解码。地址解码器121可以根据经解码的块地址选择存储块BLK1至BLKz中的至少一个。地址解码器121可以对所接收的地址ADDR之中的行地址进行解码。地址解码器121可以根据经解码的行地址选择所选择的存储块的字线中的至少一个。地址解码器121可以将从电压生成器122供应的操作电压Vop施加到所选择的字线。
在编程操作期间,地址解码器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可以生成多个擦除电压、多个编程电压、多个通过电压、多个选择读取电压和多个非选择读取电压。
电压生成器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的数据通信。
在编程操作期间,第一至第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可以包括列选择电路。
数据输入/输出电路124通过数据线DL联接到第一至第m页面缓冲器PB1至PBm。数据输入/输出电路124响应于控制逻辑130的控制而操作。
数据输入/输出电路124可以包括接收输入数据DATA的多个输入/输出缓冲器。在编程操作期间,数据输入/输出电路124从外部控制器接收待存储的数据DATA。在读取操作期间,数据输入/输出电路124将(从读取和写入电路123中包括的第一至第m页面缓冲器PB1至PBm接收的)数据DATA输出到外部控制器。
在读取操作或验证操作期间,感测电路125可以响应于由控制逻辑130生成的使能位信号VRYBIT而生成参考电流。感测电路125还可以例如通过将从读取和写入电路123接收的感测电压VPB与基于参考电流而生成的参考电压进行比较来将通过信号或失败信号输出到控制逻辑130。
控制逻辑130可以联接到地址解码器121、电压生成器122、读取和写入电路123、数据输入/输出电路124和感测电路125。控制逻辑130可以控制存储器装置100的全部操作。控制逻辑130可以响应于从外部装置传输的一个或多个命令CMD来操作。
控制逻辑130可以响应于命令CMD和地址ADDR,通过生成各种类型的信号来控制外围电路120。例如,控制逻辑130可以响应于一个或多个命令CMD和地址ADDR而生成操作信号OPSIG、地址ADDR、读取和写入电路控制信号PBSIGNALS以及使能位信号VRYBIT。控制逻辑130可以将操作信号OPSIG输出到电压生成器122,将地址ADDR输出到地址解码器121,将页面缓冲器控制信号PBSIGNALS输出到读取和写入电路123,并且将使能位信号VRYBIT输出到感测电路125。另外,控制逻辑130可以响应于从感测电路125输出的通过或失败信号PASS或FAIL来确定验证操作是已通过还是已失败。
图3示出图2的存储器单元阵列的实施例。参照图3,第一至第z存储块BLK1至BLKz共同联接到第一至第m位线BL1至BLm。为了便于描述,示出了多个存储块BLK1至BLKz中的第一存储块BLK1中包括的元件,并且应当理解的是,可以类似地配置剩余存储块BLK2至BLKz的每一个中的元件。
存储块BLK1可以包括多个单元串CS1_1至CS1_m(其中m是正整数)。第一至第m单元串CS1_1至CS1_m分别联接到第一至第m位线BL1至BLm。第一至第m单元串CS1_1至CS1_m中的每一个可以包括漏极选择晶体管DST、彼此串联联接的多个存储器单元MC1至MCn(其中n是正整数)以及源极选择晶体管SST。
第一至第m单元串CS1_1至CS1_m的每一个中包括的漏极选择晶体管DST的栅极端子联接到漏极选择线DSL1。第一至第m单元串CS1_1至CS1_m中的每一个中包括的第一至第n存储器单元MC1至MCn的栅极端子分别联接到第一至第n字线WL1至WLn。第一至第m单元串CS1_1至CS1_m中的每一个中包括的源极选择晶体管SST的栅极端子联接到源极选择线SSL1。
为了便于描述,将基于多个单元串CS1_1至CS1_m之中的第一单元串CS1_1来描述每个单元串的结构。然而,将理解的是,剩余单元串CS1_2至CS1_m中的每一个可以以与该第一单元串CS1_1相同的方式配置。
第一单元串CS1_1中的漏极选择晶体管DST的漏极端子联接到第一位线BL1。第一单元串CS1_1中的漏极选择晶体管DST的源极端子联接到第一单元串CS1_1中的第一存储器单元MC1的漏极端子。第一至第n存储器单元MC1至MCn可以彼此串联联接。第一单元串CS1_1中的源极选择晶体管SST的漏极端子联接到第一单元串CS1_1中的第n存储器单元MCn的源极端子。第一单元串CS1_1中的源极选择晶体管SST的源极端子联接到公共源极线CSL。在实施例中,公共源极线CSL可以共同联接到第一至第z存储块BLK1至BLKz。
漏极选择线DSL1、第一至第n字线WL1至WLn以及源极选择线SSL1被包括在图2的行线RL中。漏极选择线DSL1、第一至第n字线WL1至WLn以及源极选择线SSL1由地址解码器121控制。公共源极线CSL由控制逻辑130控制。第一至第m位线BL1至BLm由读取和写入电路123控制。
图4示出存储器控制器200的实施例,该存储器控制器200可以包括映射缓冲器210和映射更新控制器220。存储器控制器200可以进一步包括突然断电传感器230。
映射缓冲器210可以存储元数据,该元数据包括指示映射数据的改变的历史的历史信息。该历史信息可以是映射到逻辑地址的物理地址的改变历史。在实施例中,映射缓冲器210可以包括分别与一个或多个索引相对应的存储区域。可以将与一个逻辑地址相对应的元数据存储在与一个索引相对应的存储区域中。当从主机300接收的针对逻辑地址(LBA)的映射数据被更新时,映射更新控制器220可以确定与该逻辑地址(LBA)相对应的元数据是否存储在映射缓冲器210中。
当确定与该逻辑地址(LBA)相对应的元数据未存储在映射缓冲器210中时,映射更新控制器220可以基于所更新的映射数据来生成元数据,并且可以将所生成的元数据存储在映射缓冲器210中。例如,映射更新控制器220可以将所生成的元数据存储在映射缓冲器210的存储区域之中与目标索引相对应的存储区域中。映射更新控制器220可以在将元数据存储在与目标索引相对应的存储区域中的同时使该目标索引生效。当对应于逻辑地址(LBA)的元数据被存储在映射缓冲器210中时,映射更新控制器220可以基于所更新的映射数据来更新映射缓冲器210中存储的元数据。
映射更新控制器220可以将映射缓冲器210中存储的元数据清除到存储器装置100中。映射更新控制器220可以使映射缓冲器210的存储区域之中清除了元数据的存储区域的索引失效(作废)。在实施例中,映射更新控制器220可以响应于从主机300接收的清除请求REQ将映射缓冲器210中存储的元数据清除到存储器装置100中。
在实施例中,映射更新控制器220可以基于映射缓冲器210中存储的元数据的量将该映射缓冲器210中存储的元数据清除到存储器装置100中。例如,映射更新控制器220可以基于分别与映射缓冲器210的存储区域相对应的索引之中的有效索引的数量,将该映射缓冲器210中存储的元数据清除到存储器装置100中。当有效索引的数量达到有效索引的设定数量时,映射更新控制器220可以将映射缓冲器210中存储的元数据清除到存储器装置100中。可以将有效索引的设定数量设置为默认值。在实施例中,该默认值可以是与映射缓冲器210的存储区域相对应的索引的总数量。可以响应于从主机300接收的请求或者在存储器控制器200的控制下改变该设定数量。
在实施例中,当接收感测信号SPO_SIG时,映射更新控制器220可以将映射缓冲器210中存储的元数据清除到存储器装置100中。
突然断电传感器230可以感测在存储器装置100中发生的突然断电。当感测到突然断电时,该突然断电传感器230可以将感测信号SPO_SIG提供到映射更新控制器220。突然断电可以是供应到存储器装置100的电力被异常中断的状态。
图5示出图4的映射缓冲器的配置和操作的实施例。参照图5,每当更新针对逻辑地址的映射数据时,就可以生成元数据并将其存储在映射缓冲器210中。元数据可以包括映射到逻辑地址的物理地址的历史信息。例如,元数据可以包括逻辑地址、先前映射到该逻辑地址的旧物理地址以及当前映射到该逻辑地址的新物理地址。
在第一写入操作Write1期间,映射到逻辑地址LBA1的物理地址可以从“PBA5”改变为“PBA7”。例如,当更新针对逻辑地址LBA1的映射数据时,可以将包括映射到该逻辑地址LBA1的物理地址的历史信息的第一元数据MD1存储在映射缓冲器210中。该第一元数据MD1可以包括逻辑地址LBA1、旧物理地址PBA5和新物理地址PBA7。
在第二写入操作Write2期间,映射到逻辑地址LBA1的物理地址可以从“PBA7”改变为“PBA9”。可以将包括映射到该逻辑地址LBA1的物理地址的历史信息的第二元数据MD2存储在映射缓冲器210中。该第二元数据MD2可以包括逻辑地址LBA1、旧物理地址PBA7和新物理地址PBA9。
在第三写入操作Write3期间,映射到逻辑地址LBA1的物理地址可以从“PBA9”改变为“PBA3”。可以将包括映射到该逻辑地址LBA1的物理地址的历史信息的第三元数据MD3存储在映射缓冲器210中。该第三元数据MD3可以包括逻辑地址LBA1,旧物理地址PBA9和新物理地址PBA3。当映射缓冲器210充满(即,完全填充)元数据时,可以将映射缓冲器210中存储的元数据清除到存储器装置中。
图6示出图4的映射缓冲器的配置和操作的另一实施例。参照图6,映射缓冲器210可以包括与各个索引相对应的存储区域。
可以根据索引来管理映射缓冲器210中存储的元数据。例如,初始索引可以是无效的(-)。当元数据被存储在与目标索引相对应的存储区域中时,可以使该目标索引生效。每当将元数据存储在映射缓冲器210中时,就可以增加索引值。当清除映射缓冲器210中存储的元数据时,可以使所清除的存储区域的索引失效。
在实施例中,当更新针对逻辑地址的映射数据时,可以基于所更新的映射数据来生成元数据。所生成的映射数据可以被存储在映射缓冲器210的存储区域之中与目标索引相对应的存储区域中。在实施例中,当更新针对逻辑地址的映射数据时,在与该逻辑地址相对应的元数据被存储在与目标索引相对应的存储区域中的状态下,可以更新与该目标索引相对应的存储区域中存储的元数据。
在图6中,映射缓冲器210可以包括与第一至第三索引IDX1至IDX3相对应的存储区域。最初,第一至第三索引IDX1至IDX3可以是无效的(-)。在另一实施例中,可以使用与映射缓冲器210的存储区域相对应的不同数量的索引。
在第一写入操作Write1期间,映射到逻辑地址LBA1的物理地址可以从“PBA5”改变为“PBA7”。当更新针对该逻辑地址LBA1的映射数据时,可以将包括映射到该逻辑地址LBA1的物理地址的历史信息的第一元数据MD1存储在映射缓冲器210中。可以将该第一元数据MD1存储在映射缓冲器210的存储区域之中与第一索引IDX1相对应的存储区域中,并且可以使该第一索引IDX1生效。该第一元数据MD1可以包括逻辑地址LBA1、旧物理地址PBA5和新物理地址PBA7。
在第二写入操作Write2期间,映射到该逻辑地址LBA1的物理地址可以从“PBA7”改变为“PBA9”。当更新针对该逻辑地址LBA1的映射数据时,可以基于所更新的映射数据来更新(与第一索引IDX1相对应的存储区域中存储的)第一元数据MD1。所更新的第一元数据MD1可以包括逻辑地址LBA1、旧物理地址PBA7和新物理地址PBA9。
在第三写入操作Write3期间,映射到该逻辑地址LBA1的物理地址可以从“PBA9”改变为“PBA3”。当更新针对该逻辑地址LBA1的映射数据时,可以基于所更新的映射数据来更新(与第一索引IDX1相对应的存储区域中存储的)第一元数据MD1。所更新的第一元数据MD1可以包括逻辑地址LBA1、旧物理地址PBA9和新物理地址PBA3。
根据图6的实施例,即使当更新若干次针对相同逻辑地址的映射数据时,也仅将与该逻辑地址相对应的最新元数据存储在映射缓冲器210中。因此,可以有效地利用映射缓冲器210的容量。而且,因为减少了将元数据清除到存储器装置中的频率,所以可以提高映射更新性能。
图7A和图7B示出映射更新操作的实施例。
图7A对应于基于第一至第三写入操作Write1至Write3执行映射更新操作的实施例。映射缓冲器210可以包括与第一至第四索引IDX1至IDX4相对应的存储区域。最初,第一至第四索引IDX1至IDX4可以是无效的(-)。与映射缓冲器210的存储区域相对应的索引的数量不限于本实施例。在实施例中,每当元数据被存储在映射缓冲器210中时,就可以循序地增加存储该元数据的存储区域的目标索引。
在第一写入操作Write1期间,映射到第一逻辑地址LBA1的物理地址可以从“PBA2”改变为“PBA4”。当更新针对该第一逻辑地址LBA1的映射数据时,可以将包括映射到该第一逻辑地址LBA1的物理地址的历史信息的第一元数据MD1存储在映射缓冲器210中。可以将该第一元数据MD1存储在映射缓冲器210的存储区域之中与第一索引IDX1相对应的存储区域中,并且可以使该第一索引IDX1生效。该第一元数据MD1可以包括第一逻辑地址LBA1、旧物理地址PBA2和新物理地址PBA4。
在第二写入操作Write2期间,映射到第二逻辑地址LBA2的物理地址可以从“PBA9”改变为“PBA8”。当更新针对该第二逻辑地址LBA2的映射数据时,可以将包括映射到该第二逻辑地址LBA2的物理地址的历史信息的第二元数据MD2存储在映射缓冲器210中。可以将该第二元数据MD2存储在映射缓冲器210的存储区域之中与第二索引IDX2相对应的存储区域中,并且可以使该第二索引IDX2生效。该第二元数据MD2可以包括第二逻辑地址LBA2、旧物理地址PBA9和新物理地址PBA8。
在第三写入操作Write3期间,映射到第一逻辑地址LBA1的物理地址可以从“PBA4”改变为“PBA11”。当更新针对该第一逻辑地址LBA1的映射数据时,可以更新与第一索引IDX1相对应的存储区域中存储的第一元数据MD1。所更新的第一元数据MD1可以包括第一逻辑地址LBA1、旧物理地址PBA4和新物理地址PBA11。
图7B对应于基于第四和第五写入操作Write4和Write5执行映射更新操作以及执行清除操作的实施例。
在第四写入操作Write4期间,映射到第四逻辑地址LBA4的物理地址可以从“PBA7”改变为“PBA15”。当更新针对该第四逻辑地址LBA4的映射数据时,可以将包括映射到该第四逻辑地址LBA4的物理地址的历史信息的第三元数据MD3存储在映射缓冲器210中。可以将该第三元数据MD3存储在映射缓冲器210的存储区域之中与第三索引IDX3相对应的存储区域中,并且可以使该第三索引IDX3生效。该第三元数据MD3可以包括第四逻辑地址LBA4、旧物理地址PBA7和新物理地址PBA15。
在第五写入操作Write5期间,映射到第三逻辑地址LBA3的物理地址可以从“PBA6”改变为“PBA17”。当更新针对第三逻辑地址LBA3的映射数据时,可以将包括映射到该第三逻辑地址LBA3的物理地址的历史信息的第四元数据MD4存储在映射缓冲器210中。可以将该第四元数据MD4存储在映射缓冲器210的存储区域之中与第四索引IDX4相对应的存储区域中,并且可以使该第四索引IDX4生效。该第四元数据MD4可以包括第三逻辑地址LBA3、旧物理地址PBA6和新物理地址PBA17。
可以存在各种条件来将映射缓冲器210中存储的元数据清除到存储器装置中。在实施例中,可以根据映射缓冲器210中存储的元数据的量来执行清除操作。例如,可以在映射缓冲器210充满(即,完全填充)元数据时执行清除操作。在实施例中,可以在映射缓冲器210中存储的元数据的量达到设定值时执行清除操作。在实施例中,可以在对应于映射缓冲器210的索引之中的有效索引的数量达到有效索引的设定数量时执行清除操作。在实施例中,可以响应于从主机接收到的清除请求来执行清除操作。在实施例中,可以在感测到存储器装置中发生突然断电时执行清除操作。在图7A和图7B中,被设置为清除条件中的一种的有效索引的数量可以是4。然而,在另一实施例中,可以存在有效索引的不同数量作为清除条件中的一种。
在第五写入操作Write5之后,第一至第四索引IDX1至IDX4可以是有效的。例如,因为有效索引的数量已经达到有效索引的设定数量,所以可以执行清除操作。可以将与第一至第四索引IDX1至IDX4相对应的各个存储区域中存储的第一至第四元数据MD1至MD4清除到存储器装置中。可以使存储被清除的元数据的存储区域的索引失效(-)。因此,可以使第一至第四索引IDX1至IDX4失效(-)。
图8是示出根据实施例的映射更新操作的流程图。参照图8,在操作S801中,可以更新针对从主机接收的逻辑地址的映射数据。在操作S803中,可以生成与该逻辑地址相对应的元数据。该元数据可以包括映射到该逻辑地址的物理地址的历史信息。例如,该元数据可以包括映射到该逻辑地址的物理地址的改变历史。
在操作S805中,可以确定映射缓冲器中是否存储了对应于逻辑地址的先前的元数据。当确定映射缓冲器中存储了先前的元数据时(例如,在“是”的情况下),该进程可以进行到操作S809。当确定映射缓冲器中未存储先前的元数据时(例如,在“否”的情况下),该进程可以进行到操作S807。在操作S807中,可以将所生成的元数据存储在映射缓冲器中。在操作S809中,可以基于所更新的映射数据来更新映射缓冲器中存储的先前的元数据。在一个实施例中,可以基于所生成的元数据来更新映射缓冲器中存储的先前的元数据。
图9是示出根据实施例的映射更新操作的流程图。在操作S901中,可以将与逻辑地址相对应的元数据存储在映射缓冲器中。例如,可以将与逻辑地址相对应的元数据存储在映射缓冲器的存储区域之中与目标索引相对应的存储区域中。
在操作S903中,可以确定是否已经更新针对该逻辑地址的映射数据。当确定已经更新映射数据时(例如,在“是”的情况下),该进程可以进行到操作S905。当确定尚未更新映射数据时(例如,在“否”的情况下),该进程可以终止。在操作S905中,可以基于所更新的映射数据来更新映射缓冲器中存储的元数据。
图10是示出根据实施例的索引生效操作的流程图。参照图10,在操作S1001中,可以将与逻辑地址相对应的元数据存储在映射缓冲器的存储区域之中与目标索引相对应的存储区域中。在操作S1003中,可以使该目标索引生效。
图11是示出根据实施例的索引失效操作的流程图。参照图11,在操作S1101中,可以将映射缓冲器中存储的元数据清除到存储器装置中。在操作S1103中,可以使与(在映射缓冲器的存储区域之中)清除了元数据的存储区域相对应的索引失效。
图12是示出根据实施例的映射清除操作的流程图。参照图12,在操作S1201中,存储器控制器可以确定是否已经从主机接收到清除请求。当确定已经接收到清除请求时(例如,在“是”的情况下),该进程可以进行到操作S1203。当确定尚未接收到清除请求时(例如,在“否”的情况下),该进程可以终止。在操作S1203中,可以将映射缓冲器中存储的元数据清除到存储器装置中。
图13是示出根据实施例的映射清除操作的流程图。参照图13,在操作S1301中,可以确定有效索引的数量是否等于或大于有效索引的设定数量。当确定有效索引的数量等于或大于有效索引的设定数量时(例如,在“是”的情况下),该进程可以进行到操作S1303。当确定有效索引的数量小于有效索引的设定数量时(例如,在“否”的情况下),该进程可以终止。可以例如根据存储器控制器的操作环境来将该设定数量设置为各种值。在实施例中,设定数量可以是与映射缓冲器的存储区域相对应的索引的总数量。在实施例中,设定数量可以是与对应于映射缓冲器的存储区域的索引总数量的预定比例相对应的数量。在操作S1303中,可以将映射缓冲器中存储的元数据清除到存储器装置中。
图14是示出根据实施例的映射清除操作的流程图。参照图14,在操作S1401中,可以确定是否已经感测到突然断电。当确定已经感测到突然断电时(例如,在“是”的情况下),该进程可以进行到操作S1403。当确定尚未感测到突然断电时(例如,在“否”的情况下),该进程可以终止。在操作S1403中,可以将映射缓冲器中存储的元数据清除到存储器装置中。
图15是示出图1的存储器控制器的实施例的示图。参照图15,存储器控制器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可以在读取操作期间对从存储器装置接收的数据去随机化。例如,处理器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(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和低负载DIMM(LRDIMM)通信方法。
缓冲器控制电路1050可以在处理器1010的控制下控制存储器缓冲器1020。
存储器接口1060可以在处理器1010的控制下与存储器装置通信。存储器接口1060可以通过通道向存储器装置传输/从存储器装置接收命令、地址和数据。
在实施例中,存储器控制器1000可以不包括存储器缓冲器1020和缓冲器控制电路1050。
在实施例中,处理器1010可以使用代码来控制存储器控制器1000的操作。处理器1010可以从存储器控制器1000中设置的非易失性存储器装置(例如,ROM)加载代码。在实施例中,处理器1010可以通过存储器接口1060从存储器装置加载代码。
在实施例中,存储器控制器1000的总线1070可以分为控制总线和数据总线。数据总线可以被配置为在存储器控制器1000中传输数据,并且控制总线可以被配置为在存储器控制器1000中传输控制信息(诸如命令或地址)。数据总线和控制总线可以彼此分离,并且彼此既不会相互干扰也不会相互影响。数据总线可以联接到主机接口1040、缓冲器控制电路1050、ECC电路1030和存储器接口1060。控制总线可以联接到主机接口1040、处理器1010、缓冲器控制电路1050、存储器缓冲器1020和存储器接口1060。
在实施例中,处理器1010可以包括图1所示的映射更新控制器220。存储器缓冲器1020可以包括图1所示的映射缓冲器210。
图16是示出可以应用如本文所述的存储装置的存储卡系统的实施例的框图。参照图16,存储卡系统2000可以包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100联接到并且可以访问存储器装置2200,并且可以控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100可以提供存储器装置2200和主机之间的接口。存储器控制器2100可以运行用于控制存储器装置2200的固件或其他指令。存储器控制器2100可以例如以与上面参照图1描述的存储器控制器200相同的方式来实施。在实施例中,存储器控制器2100可以包括一个或多个附加组件,包括但不限于RAM、处理器、主机接口、存储器接口和/或ECC电路。
存储器控制器2100可以基于特定的通信协议来通过连接器2300与外部装置(例如,主机)进行通信。通信协议的示例包括:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(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可以集成到单个半导体装置中以配置存储卡。示例包括:PC卡(个人计算机存储卡国际协会:PCMCIA)、紧凑型闪存卡(CF)、智能媒体卡(SM或SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC或eMMC)、SD卡(SD、迷你SD、微型SD或SDHC)或通用闪存(UFS)。
图17是示出可以应用如本文所述的存储装置的固态驱动器(SSD)系统3000的实施例的框图。
参照图17,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)、Wi-Fi、蓝牙和高速非易失性存储器(NVMe)接口。
辅助电源3230可以通过电源连接器3002联接到主机3100。辅助电源3230可以由主机3100供应电力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的非易失性存储器。
图18是示出可以应用如本文所述的存储装置的用户系统4000的实施例的框图。参照图18,用户系统4000可以包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以基于运行操作系统(OS)的各种指令和/或运行对应于一个或多个用户程序的各种指令来控制用户系统4000中的组件。在实施例中,应用处理器4100可以包括用于控制用户系统4000中的组件的控制器、接口、图形引擎等。在一个实施例中,应用处理器4100可被设置为片上系统(SoC)。
存储器模块4200可以用作用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块4200的示例可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2SDRAM、DDR3SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和LPDDR3 SDRAM的易失性RAM,或者诸如PRAM、ReRAM、MRAM和FRAM的非易失性RAM。在实施例中,应用处理器4100和存储器模块4200可以基于堆叠封装(POP)来封装,然后可以被设置为单个半导体封装。
网络模块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可以包括多个非易失性存储器装置,非易失性存储器装置中的每一个可以以与上面参照图1描述的存储器装置100相同的方式操作。存储模块4400可以以与上面参照图1描述的存储装置50相同的方式操作。
用户接口4500可以包括例如可以向应用处理器4100输入数据或指令或者向外部装置输出数据的接口。在实施例中,用户接口4500可以包括一个或多个用户输入接口。示例包括:键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和压电装置。用户接口4500可以进一步包括用户输出接口。示例包括:液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和显示器。
根据本公开,提供了一种具有提高的映射更新性能的存储器控制器以及操作该存储器控制器的方法。
尽管本公开示出并描述了特定的实施例,但是根据本公开,对于本领域技术人员而言将显而易见的是,在不脱离如所附权利要求所限定的本发明的精神和范围的情况下,可以进行各种改变和修改。
Claims (20)
1.一种控制存储器装置的存储器控制器,包括:
映射缓冲器,包括分别与一个或多个索引相对应的存储区域;以及
映射更新控制器,将元数据存储在与所述一个或多个索引之中的目标索引相对应的存储区域中,并且基于针对第一逻辑地址的映射数据的更新来更新所述元数据,其中所述元数据包括映射到所述第一逻辑地址的物理地址的历史信息。
2.根据权利要求1所述的存储器控制器,其中所述映射更新控制器在所述元数据被存储在与所述目标索引相对应的所述存储区域中时,使所述目标索引生效。
3.根据权利要求2所述的存储器控制器,其中所述映射更新控制器在所述一个或多个索引之中的有效索引的数量达到有效索引的设定数量时,将所述映射缓冲器中存储的所述元数据清除到所述存储器装置中。
4.根据权利要求1所述的存储器控制器,其中所述映射更新控制器响应于从主机接收的清除请求,将所述映射缓冲器中存储的所述元数据清除到所述存储器装置中。
5.根据权利要求1所述的存储器控制器,进一步包括:
突然断电传感器,基于感测在所述存储器装置中发生的突然断电来生成感测信号。
6.根据权利要求5所述的存储器控制器,其中所述映射更新控制器响应于所述感测信号,将所述映射缓冲器中存储的所述元数据清除到所述存储器装置中。
7.根据权利要求1所述的存储器控制器,其中所述映射更新控制器根据所述映射缓冲器中是否存储了与第二逻辑地址相对应的元数据,来基于针对所述第二逻辑地址的映射数据将与所述第二逻辑地址相对应的所述元数据存储在所述映射缓冲器中,或者更新所述映射缓冲器中存储的与所述第二逻辑地址相对应的所述元数据,所述第二逻辑地址不同于所述第一逻辑地址。
8.根据权利要求7所述的存储器控制器,其中所述映射更新控制器将与所述第二逻辑地址相对应的所述元数据存储在与所述一个或多个索引之中不同于所述目标索引的索引相对应的存储区域中。
9.根据权利要求1所述的存储器控制器,其中所述映射更新控制器在所述映射缓冲器中存储的所述元数据被清除到所述存储器装置中时,使所述一个或多个索引失效。
10.根据权利要求1所述的存储器控制器,其中所述映射更新控制器或处理器在新元数据被存储在所述映射缓冲器中时,循序地增加所述目标索引。
11.一种操作存储器控制器的方法,所述存储器控制器控制存储器装置并且包括映射缓冲器,所述方法包括:
将元数据存储在所述映射缓冲器中,所述元数据包括被映射到第一逻辑地址的物理地址的历史信息;并且
根据是否已经更新针对所述第一逻辑地址的映射数据,基于针对所述第一逻辑地址的所述映射数据来更新所述映射缓冲器中存储的所述元数据。
12.根据权利要求11所述的方法,其中:
所述映射缓冲器包括分别对应于一个或多个索引的存储区域,并且
将所述元数据存储在所述映射缓冲器中包括将所述元数据存储在与所述一个或多个索引之中的目标索引相对应的存储区域中。
13.根据权利要求12所述的方法,进一步包括:当所述元数据被存储在与所述目标索引相对应的所述存储区域中时,使所述目标索引生效。
14.根据权利要求12所述的方法,进一步包括:将所述映射缓冲器中存储的所述元数据清除到所述存储器装置中。
15.根据权利要求14所述的方法,其中清除所述元数据包括:当所述一个或多个索引之中的有效索引的数量达到有效索引的设定数量时,将所述映射缓冲器中存储的所述元数据清除到所述存储器装置中。
16.根据权利要求14所述的方法,其中清除所述元数据包括:响应于从主机接收的清除请求,将所述映射缓冲器中存储的所述元数据清除到所述存储器装置中。
17.根据权利要求14所述的方法,其中清除所述元数据包括:当感测到所述存储器装置中发生突然断电时,将所述映射缓冲器中存储的所述元数据清除到所述存储器装置中。
18.根据权利要求15所述的方法,进一步包括:当所述映射缓冲器中存储的所述元数据被清除到所述存储器装置中时,使所述一个或多个索引失效。
19.根据权利要求11所述的方法,进一步包括:
当更新针对第二逻辑地址的映射数据时,确定所述映射缓冲器中是否存储了与所述第二逻辑地址相对应的元数据,所述第二逻辑地址不同于所述第一逻辑地址;并且
基于确定结果,将与所述第二逻辑地址相对应的所述元数据存储在所述映射缓冲器中,或者更新所述映射缓冲器中存储的与所述第二逻辑地址相对应的所述元数据。
20.根据权利要求12所述的方法,进一步包括:当新元数据被存储在所述映射缓冲器中时,循序地增加所述目标索引。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0036676 | 2020-03-26 | ||
KR1020200036676A KR20210120240A (ko) | 2020-03-26 | 2020-03-26 | 메모리 컨트롤러 및 그 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113448892A true CN113448892A (zh) | 2021-09-28 |
Family
ID=77808644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011085962.3A Withdrawn CN113448892A (zh) | 2020-03-26 | 2020-10-12 | 存储器控制器及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11748265B2 (zh) |
KR (1) | KR20210120240A (zh) |
CN (1) | CN113448892A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11599468B1 (en) * | 2021-11-30 | 2023-03-07 | Qualcomm Incorporated | Marshalled data coherency |
CN115954026B (zh) * | 2023-03-10 | 2023-07-28 | 长鑫存储技术有限公司 | 刷新次数确定方法及设备 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5860124A (en) * | 1996-09-30 | 1999-01-12 | Intel Corporation | Method for performing a continuous over-write of a file in nonvolatile memory |
US7509474B2 (en) * | 2005-06-08 | 2009-03-24 | Micron Technology, Inc. | Robust index storage for non-volatile memory |
JP2008225616A (ja) * | 2007-03-09 | 2008-09-25 | Hitachi Ltd | ストレージシステム、リモートコピーシステム、及びデータ復元方法 |
US20090271562A1 (en) * | 2008-04-25 | 2009-10-29 | Sinclair Alan W | Method and system for storage address re-mapping for a multi-bank memory device |
CN102651009B (zh) * | 2011-02-28 | 2014-09-24 | 国际商业机器公司 | 一种存储系统中检索数据的方法和设备 |
CN102364474B (zh) * | 2011-11-17 | 2014-08-20 | 中国科学院计算技术研究所 | 用于机群文件系统的元数据存储系统和管理方法 |
US8924832B1 (en) * | 2012-06-26 | 2014-12-30 | Western Digital Technologies, Inc. | Efficient error handling mechanisms in data storage systems |
US9489297B2 (en) * | 2013-01-21 | 2016-11-08 | Sandisk Technologies Llc | Pregroomer for storage array |
US9292213B2 (en) * | 2013-11-14 | 2016-03-22 | Intel Corporation | Maintaining at least one journal and/or at least one data structure by circuitry |
US9880760B2 (en) * | 2014-10-30 | 2018-01-30 | Sandisk Technologies Llc | Managing data stored in a nonvolatile storage device |
KR20160064364A (ko) * | 2014-11-27 | 2016-06-08 | 삼성전자주식회사 | 패스트 오픈을 위한 어드레스 맵 운영방법 및 그에 따른 메모리 시스템 |
US10108503B2 (en) * | 2015-08-24 | 2018-10-23 | Western Digital Technologies, Inc. | Methods and systems for updating a recovery sequence map |
US10102119B2 (en) * | 2015-10-30 | 2018-10-16 | Sandisk Technologies Llc | Garbage collection based on queued and/or selected write commands |
US9904607B2 (en) * | 2015-11-13 | 2018-02-27 | International Business Machines Corporation | Logical to physical table restoration from stored journal entries |
KR102545166B1 (ko) * | 2016-07-26 | 2023-06-19 | 삼성전자주식회사 | 파일을 안전하게 삭제하는 호스트, 스토리지 시스템 및 호스트의 동작방법 |
US10997065B2 (en) | 2017-11-13 | 2021-05-04 | SK Hynix Inc. | Memory system and operating method thereof |
KR20190082513A (ko) | 2018-01-02 | 2019-07-10 | 에스케이하이닉스 주식회사 | 컨트롤러 및 그것의 동작방법 |
US10838629B2 (en) * | 2018-09-24 | 2020-11-17 | Western Digital Technologies, Inc. | Solid state device with fast boot after ungraceful shutdown |
CN112100087B (zh) * | 2019-06-17 | 2024-04-02 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
US11379447B2 (en) * | 2020-02-06 | 2022-07-05 | Alibaba Group Holding Limited | Method and system for enhancing IOPS of a hard disk drive system based on storing metadata in host volatile memory and data in non-volatile memory using a shared controller |
-
2020
- 2020-03-26 KR KR1020200036676A patent/KR20210120240A/ko unknown
- 2020-08-26 US US17/003,351 patent/US11748265B2/en active Active
- 2020-10-12 CN CN202011085962.3A patent/CN113448892A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
KR20210120240A (ko) | 2021-10-07 |
US20210303476A1 (en) | 2021-09-30 |
US11748265B2 (en) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111435289B (zh) | 映射数据访问性能提高的存储器控制器及其操作方法 | |
CN112905502A (zh) | 存储装置及其操作方法 | |
US11543986B2 (en) | Electronic system including host, memory controller and memory device and method of operating the same | |
CN111352855B (zh) | 具有提高的映射更新速度的存储装置及其操作方法 | |
US11481272B2 (en) | Memory controller and method of operating the same | |
CN111444115B (zh) | 存储装置及其操作方法 | |
CN111105832A (zh) | 存储装置和操作存储装置的方法 | |
CN112463664A (zh) | 存储装置及其操作方法 | |
KR20200114009A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
KR20220113159A (ko) | 저장 장치 및 그 동작 방법 | |
KR20210090439A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
KR20200091199A (ko) | 저장 장치, 저장 장치를 포함하는 컴퓨팅 시스템 및 그 동작 방법 | |
CN114201414A (zh) | 存储装置及其操作方法 | |
KR20210128780A (ko) | 메모리 컨트롤러 및 이를 포함하는 저장 장치 | |
CN112582011A (zh) | 存储器设备及其操作方法 | |
KR20210099930A (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
US11748265B2 (en) | Memory controller and method of operating the same | |
CN114546252A (zh) | 存储设备及其操作方法 | |
CN114356209A (zh) | 存储装置及其操作方法 | |
KR20210079104A (ko) | 저장 장치 및 그 동작 방법 | |
CN112445420B (zh) | 存储控制器、存储装置以及操作该存储装置的方法 | |
CN111338978B (zh) | 存储装置以及操作存储装置的方法 | |
KR20220170664A (ko) | 호스트 장치, 저장 장치 및 그 동작 방법 | |
CN112783435A (zh) | 存储设备和操作存储设备的方法 | |
CN113126895A (zh) | 存储装置及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210928 |
|
WW01 | Invention patent application withdrawn after publication |