CN110858180B - 数据处理系统及其操作方法 - Google Patents
数据处理系统及其操作方法 Download PDFInfo
- Publication number
- CN110858180B CN110858180B CN201811639560.6A CN201811639560A CN110858180B CN 110858180 B CN110858180 B CN 110858180B CN 201811639560 A CN201811639560 A CN 201811639560A CN 110858180 B CN110858180 B CN 110858180B
- Authority
- CN
- China
- Prior art keywords
- memory
- mapping table
- controller
- mapping
- host
- 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/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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/063—Address space extension for I/O modules, e.g. memory mapped I/O
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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]
-
- 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- 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
-
- 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
- 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
- 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/7211—Wear leveling
-
- 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)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明提供了一种数据处理系统。该数据处理系统包括主机以及存储器系统,主机包括第一存储器;存储器系统包括控制器和存储器装置,控制器包括第二存储器,其中控制器:检查第一列表中是否存在映射信息被更改的第一映射表,检查第二列表中是否存在与第一映射表中包括的一条映射数据对应的存储块,并且当第二列表中存在与第一映射表中包括的映射数据对应的存储块时,判定第一映射表待在不久后由于内部操作而被更新,并且不将第一映射表传送至主机。
Description
相关申请的交叉引用
本申请要求于2018年8月22日提交的申请号为10-2018-0098006的韩国专利申请的优先权,其通过引用整体并入本文。
技术领域
本发明的示例性实施例涉及一种数据处理系统,更特别地,涉及一种处理主机和存储器系统之间的映射表的数据处理系统以及操作该数据处理系统的方法。
背景技术
近年来,计算机环境范例已经转变成可被随时随地使用的普适计算系统。因此,诸如移动电话、数码相机以及笔记本计算机的便携式电子装置的使用已经迅速增加。通常,这些便携式电子装置使用采用存储器装置的存储器系统,即数据存储装置。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。
由于不具有机械驱动部件,因此使用存储器装置的数据存储装置提供优良的稳定性和耐用性、高信息访问速度以及低功耗的优点。具有这些优点的存储器装置包括通用串行总线(USB)存储器装置、具有各种接口的存储卡和固态硬盘(SSD)。
发明内容
本发明的实施例涉及一种复杂性和性能劣化降低并且数据处理系统的存储器装置的利用效率增加的数据处理系统和操作该数据处理系统的方法。数据处理系统和操作该数据处理系统的方法可快速且稳定地将数据处理至存储器装置中。
根据本发明的实施例,提供了一种操作数据处理系统的方法,该数据处理系统设有包括第一存储器的主机、存储器装置以及包括第二存储器的控制器,该方法包括:通过控制器,检查第一列表中是否存在映射信息被更改的第一映射表,并且通过控制器,检查在第二存储器中是否存在第一映射表;当第二存储器中存在第一映射表时,通过控制器,检查第二列表中是否存在与第一映射表中包括的一条映射数据对应的存储块;当第二列表中存在与映射数据对应的存储块时,通过控制器判定第一映射表待在不久后由于内部操作而被更新,并且返回检查步骤;当第二列表中不存在与任意一条映射数据对应的任意存储块时,通过控制器将第一映射表传送至主机;并且通过主机,接收来自控制器的第一映射表,并且通过主机,更新包括在第一存储器中并且与第一映射表对应的第二映射表。
根据本发明的另一实施例,一种数据处理系统包括:主机,包括第一存储器;以及存储器系统,包括具有第二存储器的控制器以及存储器装置,其中控制器:检查第一列表中是否存在映射信息被更改的第一映射表,检查第二列表中是否存在与第一映射表中包括的一条映射数据对应的存储块,并且当第二列表中存在与第一映射表中包括的映射数据对应的存储块时,判定第一映射表待在不久后由于内部操作被更新,并且不将第一映射表传送至主机。
根据本发明的再一实施例,一种存储器系统包括:至少一个处理器;以及至少一个存储器装置,包括编程命令,其中编程命令被配置成使存储器系统:检查第一列表中是否存在映射信息被更改的第一映射表;当第一列表中存在映射信息被更改的第一映射表时,检查第二存储器中是否存在第一映射表;当第二存储器中存在第一映射表时,检查第二列表中是否存在与在第一映射表中包括的一条映射数据对应的存储块;当第二列表中存在与在第一映射表中包括的至少一条映射数据对应的存储块时,判定第一映射表待在不久后由于内部操作而被更新,并且不将第一映射表传送至主机;并且当第二列表中不存在与在第一映射表中包括的至少一个映射数据对应的存储块时,与对主机的响应一起提供第一映射表的条目信息,并且响应于来自主机的、请求第一映射表的读取缓冲器命令来将第一映射表传送至主机。
根据本发明的另一实施例,一种操作控制器的方法,该方法包括:由于通过控制器控制的存储器装置的操作,更新包括多条映射信息的第一映射表;并且向保持第二映射表的外部装置提供所更新的第一映射表以用于使第一映射表和第二映射表之间同步,除非所更新的第一映射表在不久后待被再次更新,其中映射信息表示外部装置已知的虚设存储器地址与存储器装置的实际(substantial)存储器地址之间的映射关系。
附图说明
从结合附图的下述详细描述,本发明的这些和其它特征和优点对于本发明领域的技术人员来说将变得显而易见。
图1是示意性地示出根据本发明的实施例的包括存储器系统的数据处理系统的框图。
图2是示出在图1所示的存储器系统中采用的存储器装置的示例性配置的示意图。
图3是示出图2中所示的存储器装置中的存储块的存储器单元阵列的示例性配置的电路图。
图4是示出图2中所示的存储器装置的示例性三维结构的示意图。
图5至图6是示出根据本发明的实施例的存储器系统中的数据处理操作的示例性示图。
图7是示出根据本发明的实施例的数据处理系统的同步方案的框图。
图8是示例性地描述执行根据本发明实施例的数据处理系统的同步操作的方法的流程图。
图9是示出根据本发明的实施例NAND映射信息更改列表的示图。
图10是示例性地示出根据本发明的实施例的多个存储器映射表的示图。
图11是示例性地示出根据本发明的实施例的候选块列表(CBL)的示图。
图12至图14是示例性地描述根据本发明的实施例的形成候选块列表(CBL)的方法的流程图。
图15至图23是示意性地示出根据本发明的各个实施例的图1中所示的数据处理系统的应用示例的示图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。然而,本发明可以不同的形式实施,并且不应该被解释为限于本文阐述的实施例。相反,提供这些实施例使得本公开将彻底且完整,并且向本领域技术人员充分传达本发明的范围。在整个公开中,相同附图标记在本发明的各个附图和实施例中表示相同部件。
注意的是,对“实施例”的参考不一定仅是一个实施例,并且对“实施例”的不同参考不一定是相同的实施例。
将理解的是,虽然本文可使用术语“第一”和/或“第二”来描述各种元件,但是这些元件不应受这些术语的限制。这些术语仅用于将一个元件和另一元件区分。例如,在不脱离本公开的教导的情况下,下面讨论的第一元件可被称为第二元件。类似地,第二元件也可称为第一元件。
将理解的是,当一个元件被称为“联接”或“连接”至另一元件时,它可直接联接或连接至另一元件,或者可在它们之间存在中间元件。相反,应该理解的是,当一个元件被称为“直接联接”或“直接连接”至另一元件时,不存在中间元件。应以相同的方式解释诸如“在......之间”、“直接在......之间”、“与......相邻”或“与...直接相邻”的说明元件之间的关系的其它表述。
本文使用的术语仅用于描述特定实施例的目的,而不旨在是限制性的。在本公开中,除非上下文另有明确说明,否则单数形式也旨在包括复数形式。将进一步理解,当在本说明书中使用时,术语“包括”,“包含”,“具有”等指所述特征、数量、步骤、操作、元件、组件和/或其组合的存在,但不排除一个或多个其它特征、数量、步骤、操作、元件、组件和/或其组合的存在或添加。
上述示例性实施例仅用于理解本公开的技术精神的目的,并且本公开的范围不应限于上述示例性实施例。对于本公开所属领域的技术人员将显而易见的是,除了上述示例性实施例之外,还可基于本公开的技术精神进行其它修改。
除非另外定义,否则本文使用的包括技术术语和科学术语的所有术语具有与本公开所属领域的普通技术人员通常理解的含义相同的含义。除非在本公开中另外定义,否则这些术语不应被解释为理想的或过于正式的。
在下文中,将参照附图详细描述本发明的各个实施例。
图1是示例性地示出根据本发明的实施例的包括存储器系统的数据处理系统的框图。
参照图1,数据处理系统100可包括可操作地联接至存储器系统110的主机102。主机102可以包括诸如移动电话、MP3播放器和膝上型计算机的各种便携式电子装置或诸如台式计算机、游戏机、TV和投影仪的各种非便携式电子装置中的任意一种。
主机102可包括至少一个操作系统(OS),该操作系统可管理并控制主机102的全部功能和操作,并且提供主机102和使用数据处理系统100或存储器系统110的用户之间的操作。OS可支持与用户的使用目的和用途对应的功能和操作。例如,根据主机102的移动性,OS可被划分为一般OS或移动OS。根据用户的环境,一般OS可被划分为个人OS或企业OS。例如,配置成支持向一般用户提供服务的功能的个人OS可包括Windows和Chrome,配置成确保并支持高性能的企业OS可包括Windows server、Linux和Unix。此外,配置成支持向用户提供移动服务的功能和系统节电功能的移动OS可包括Android、iOS、Windows Mobile。主机102可包括多个OS,并且运行OS以对存储器系统110执行与用户请求对应的操作。
存储器系统110可响应于主机102的请求进行操作以存储用于主机102的数据。存储器系统110的非限制示例可包括固态硬盘(SSD)、多媒体卡(MMC)、安全数字(SD)卡、通用串行总线(USB)装置、通用闪存(UFS)装置、紧凑型闪存(CF)卡、智能媒体卡(SMC)、个人计算机存储卡国际协会(PCMCIA)卡和记忆棒。MMC可包括嵌入式MMC(eMMC)、尺寸减小的MMC(RS-MMC)、和微型MMC等。SD卡可包括迷你-SD卡和微型-SD卡。
存储器系统110可以各种类型的存储装置来实施。这种存储装置的示例可包括但不限于诸如DRAM动态随机存取存储器(DRAM)和静态RAM(SRAM)的易失性存储器装置以及诸如以下的非易失性存储器装置:只读存储器(ROM)、掩膜ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM)以及闪速存储器。闪速存储器可具有三维(3D)堆叠结构。
存储器系统110可包括存储器装置150和控制器130。存储器装置150可存储用于主机102的数据,并且控制器130控制将数据存储在存储器装置150中。
控制器130和存储器装置150可被集成至单个半导体装置中,该单个半导体装置可包括在如上所例示的各种类型的存储器系统中。例如,控制器130和存储器装置150可集成为一个半导体装置以构成SSD。当存储器系统110用作SSD时,连接至存储器系统110的主机102的操作速度可得到提高。另外,控制器130和存储器装置150可被集成为一个半导体装置以构成存储卡。例如,控制器130和存储器装置150可构成诸如以下的存储卡:PCMCIA(个人计算机存储卡国际协议)卡、CF卡、SMC(智能媒体卡)、记忆棒、包括RS-MMC和微型MMC的MMC、包括迷你SD、微型SD和SDHC的SD卡、或UFS装置。
存储器系统110的非限制性应用示例可包括计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航装置、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、构成数据中心的存储装置、能够在无线环境下传送/接收信息的装置、构成家庭网络的各种电子装置中的一种、构成计算机网络的各种电子装置中的一种、构成远程信息处理网络的各种电子装置中的一种、无线射频识别(RFID)装置、或者构成计算系统的各种组件中的一种。
存储器装置150可以是非易失性存储器装置,并且即使当不供应电力或中断电力时,也可保留所存储的数据。存储器装置150可通过写入操作存储从主机102提供的数据,并且通过读取操作将所存储的数据提供至主机102。存储器装置150可包括多个存储块152、154和156,每个存储块可包括多个页面,每个页面可包括联接至字线的多个存储器单元。而且,存储器装置150可包括多个平面,每个平面包括多个存储块152、154和156,并且特别地,存储器装置150可包括多个存储器管芯,每个存储器管芯包括多个平面。在实施例中,存储器装置150可以是闪速存储器。闪速存储器可具有三维(3D)堆叠结构。
在下文将参照图2至图4详细描述存储器装置150的结构以及存储器装置150的3D堆叠结构。
控制器130可响应于来自主机102的请求来控制存储器装置150。例如,控制器130可将从存储器装置150读取的数据提供至主机102,并且将从主机102提供的数据存储在存储器装置150中。对于此操作,控制器130可控制存储器装置150的操作,诸如读取操作、写入操作、编程操作和擦除操作。
具体地,控制器130可包括主机接口(I/F)132、处理器134、错误校正码(ECC)单元138、电源管理单元(PMU)140、存储器I/F 142以及存储器144。
主机接口132可被配置成处理主机102的命令和数据,并且可通过诸如以下的各种接口协议中的一种或多种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)以及移动工业处理器接口(MIPI)。此处,主机接口132可以是将数据传送至主机102以及从主机102接收数据的区域,并且主机接口132可基于被称为主机接口层(HIL)的固件而操作。
而且,ECC单元138可检测并校正存储器装置150中处理的数据的错误位,并且ECC单元138可包括ECC编码器和ECC解码器。此处,ECC编码器可对待编程至存储器装置150中的数据执行错误校正编码,以生成添加有奇偶校验位的数据。可将包括添加的奇偶校验位的数据存储在存储器装置150中。当读出存储在存储器装置150中的数据时,ECC解码器可检测并校正从存储器装置150读取的数据中包括的错误。换言之,ECC单元138可对从存储器装置150读取的数据执行错误校正解码处理,然后判定错误校正解码处理是否成功,基于判定结果输出指示信号,例如,错误校正成功信号或错误校正失败信号,并且通过使用在ECC编码过程期间生成的奇偶校验位来校正读取数据的错误位。此处,当错误位的数量大于可校正错误位的阈值时,ECC单元138可能不能校正错误位,并且可输出与校正错误位失败对应的错误校正失败信号。
ECC单元138可通过诸如下列的编码调制来执行错误校正:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、turbo码、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)或分组编码调制(BCM)。然而,ECC单元138不限于任何具体结构。ECC单元138可包括用于错误校正的全部电路、模块、系统或装置。
PMU 140可提供并管理用于控制器130的电力,即,控制器130中包括的组成元件的电力。
存储器I/F 142用作接口连接控制器130和存储器装置150的存储器/存储接口,使得控制器130响应于来自主机102的请求来控制存储器装置150。当存储器装置150是闪速存储器时,特别是当存储器装置150是NAND闪速存储器时,存储器I/F 142可在处理器134的控制下生成用于存储器装置150的控制信号并处理数据。存储器I/F142可用作处理控制器130和存储器装置150之间的命令和数据的接口(例如NAND闪存接口)。特别地,存储器I/F 142可支持控制器130和存储器装置150之间的数据传送,并且存储器I/F 142可以是将数据传送至存储器装置150以及从存储器装置150接收数据的区域,并且可由可被称为闪存接口层(FIL)的固件驱动。
存储器144可用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。特别地,控制器130的存储器144可响应于来自主机102的请求控制存储器装置150。例如,控制器130可将从存储器装置150读取的数据提供至主机102,并且将从主机102提供的数据存储在存储器装置150中。当控制器130控制存储器装置150的操作以执行读取操作、写入操作、编程操作和擦除操作时,控制器130可将在控制器130和存储器装置150之间执行这些操作所需的数据存储在存储器系统110中。
存储器144可被实施为易失性存储器。例如,存储器144可由静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来实施。而且,存储器144可被设置在如图1所示的控制器130内部,或者存储器144可设置在控制器130之外。根据本发明的另一实施例,存储器144可实现为通过存储器接口将数据传送至控制器130以及从控制器130接收数据的外部易失性存储器。
而且,存储器144可存储在主机102和存储器装置150之间执行诸如数据读取操作和数据写入操作的操作所需的数据以及当执行数据读取操作和数据写入操作时产生的数据。为了存储数据,存储器144包括编程存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。
处理器134可控制存储器系统110的全部操作。特别地,处理器134可响应于从主机102传送的写入请求或读取请求来控制对存储器装置150执行的编程操作或读取操作。此处,处理器134可驱动可被称为闪存转换层(FTL)的固件,以控制存储器系统110的全部操作。而且,处理器134可被实现为微处理器或中央处理单元(CPU)。
例如,控制器130可通过被实现为微处理器或CPU的处理器134,来在存储器装置150中执行由主机102请求的操作。换言之,控制器130可执行与从主机102或除主机102之外的源接收的命令对应的命令操作。控制器130可执行前台操作,该前台操作为与从主机102接收的命令对应的命令操作。例如,控制器130可执行与写入命令对应的编程操作、与读取命令对应的读取操作、与擦除命令对应的擦除操作或与设置参数命令或设置特征命令对应的参数设置操作。
而且,控制器130可通过被实现为微处理器或CPU的处理器134执行对存储器装置150的后台操作。对存储器装置150执行的后台操作可包括将存储在存储器装置150的存储块152、154和156之中的一些存储块中的数据复制到另一存储块中并处理该数据的操作,例如垃圾收集(GC)操作;存储块152、154和156之间或存储块152、154和156的数据之间的交换操作,例如损耗均衡(WL)操作;将存储在控制器130中的映射数据存储在存储块152、154和156中的操作,例如映射清除操作;或者管理存储器装置150的坏块的操作,例如检测并处理包括在存储器装置150中的存储块152、154和156之中的坏块的坏块管理操作。
另外,控制器130的处理器134可包括用于执行存储器装置150的坏块管理的管理单元(未示出),并且管理单元可在包括在存储器装置150中的存储块152、154和156之中检测坏块,并且执行将检测到的坏块作为坏块处理的坏块管理。此处,根据坏块管理,当存储器装置150是例如NAND闪速存储器的闪速存储器时,在数据编程操作期间,即数据写入操作期间由于NAND的特性可能发生编程失败,并且可将发生编程失败的存储块作为坏存储块来处理,并且可以将已经编程失败的数据写入、或编程至新的存储块中。而且,如所示出的,当存储器装置150具有3D堆叠结构,并且存储块由于编程操作中发生失败而被处理为坏存储块时,存储器装置150的使用效率和存储器系统110的可靠性突然下降。因此,需要更可靠地执行坏块管理。
同时,根据本发明的实施例,提供了一种包括至少一个存储装置的存储器系统,该至少一个存储装置与主机互锁并且包括至少一个处理器和编程命令。例如,包括至少一个处理器和编程命令的至少一个存储装置可利用包括在控制器130中的存储器144和处理器134来实现。下面参照图2至图6详细描述根据本公开的实施例的存储器系统中的存储器装置。
图2是示出存储器系统中的存储器装置的示图,图3是示出存储器装置中的存储块的存储器单元阵列电路的示图,并且图4是示出三维非易失性存储器装置的结构的示图。
参照图2,存储器装置150可包括多个存储块,例如第零块(BLOCK0)210、第一块(BLOCK1)220、第二块(BLOCK2)230和第(N-1)块(BLOCKN-1)240。块210、220、230和240中的每一个包括多个页面,例如2M个页面或M个页面。每个页面包括连接至多个字线(WL)的多个存储器单元。
根据一个存储器单元中存储或表达的位的数量,存储器装置150可包括单层单元(SLC)存储块和/或多层单元(MLC)存储块。SLC存储块包括由每一个存储1位数据的存储器单元实现的多个页面。MLC存储块可包括由每一个存储多位(例如,两位或更多位)数据的存储器单元实现的多个页面,并且具有比SLC存储块大的数据存储空间,即,能够被高度集成。特别地,存储器装置150可包括:包括由每一个能够存储两位数据的存储器单元实现的多个页面的MLC存储块,包括由每一个能够存储三位数据的存储器单元实现的多个页面的三层单元(TLC)存储块,包括由每一个能够存储四位数据的存储器单元实现的多个页面的四层单元(QLC)存储块,或者包括由每一个能够存储五位或更多位数据的存储器单元实现的多个页面的多层单元存储块,作为MLC存储块。
尽管作为示例描述了存储器装置150由诸如闪存存储器,例如NAND闪存存储器的非易失性存储器实现,但应注意的是,存储器装置150可作为诸如以下的多种类型的存储器中的任一种实施:相变存储器(即,相变随机存取存储器(PCRAM))、电阻式存储器(即,电阻式随机存取存储器(RRAM或ReRAM))、铁电存储器(即,铁电随机存取存储器(FRAM))和自旋转移力矩磁性存储器(即,自旋转移力矩磁性随机存取存储器(STT-RAM或STT-MRAM))。
存储块210、220、230和240中的每一个通过写入操作存储从图1的主机102提供的数据,并且通过读取操作将存储的数据提供至主机102。
参照图3,在存储器系统110的存储器装置150中的多个存储块152、154和156中,每个存储块330可包括实现为存储器单元阵列并且分别连接到位线BL0至BLm-1的多个单元串340。每个列的单元串340可包括至少一个漏极选择晶体管DST和至少一个源极选择晶体管SST。多个存储器单元或存储器单元晶体管MC0至MCn-1可串联地连接在选择晶体管SST和DST之间。各存储器单元MC0至MCn-1可由每一个存储多位数据或信息的多层单元(MLC)构成。单元串340可分别电连接到相应的位线BL0至BLm-1。
虽然图3作为示例示出每个存储块330由NAND闪存存储器单元构成,但应注意的是,多个存储块152、154和156中的每一个不限于NAND闪存存储器,并且可由NOR闪存存储器、组合至少两种存储器单元的混合闪存存储器或控制器内置在存储器芯片中的1-NAND闪存存储器实现。存储器装置150不仅可实现为电荷存储层由导电浮栅构成的闪存存储器装置,而且可实现为电荷存储层由介电层构成的电荷撷取闪存(CTF)存储器装置。
存储器装置150的电压供给电路310可根据操作模式提供待供给到各字线的字线电压(例如,编程电压、读取电压和通过电压),以及待供给至由存储器单元形成的体材料(bulk)(例如,阱区)的电压。电压供给电路310的电压生成操作可通过控制电路(未示出)的控制执行。电压供给单元310可生成多个可变读取电压以生成多个读取数据,响应于控制电路的控制选择存储器单元阵列的存储块(或扇区)中的一个,选择所选择的存储块的字线中的一个,并且将字线电压提供至所选择的字线和未选择的字线。
存储器装置150的读取/写入电路320由控制电路(未示出)控制,并且可根据操作模式用作读出放大器或写入驱动器。在验证/正常读取操作期间,读取/写入电路320可用作用于从存储器单元阵列读取数据的读出放大器。在编程操作期间,读取/写入电路320可用作根据待被存储在存储器单元阵列中的数据驱动位线的写入驱动器。在编程操作期间,读取/写入电路320可从缓冲器(未示出)接收待写入到存储器单元阵列中的数据并且可根据输入的数据来驱动位线。为此,读取/写入电路320可包括分别对应于列(或位线)或列对(或位线对)的多个页面缓冲器(PB)322、324和326,并且页面缓冲器322、324和326中的每一个可包括多个锁存器(未示出)。
存储器装置150可被实现为2D或3D存储器装置。特别地,如图4所示,存储器装置150可被实现为具有3D堆叠结构的非易失性存储器装置。在存储器装置150被实现为三维结构的情况下,存储器装置150可包括多个存储块BLK0至BLKN-1。
图4示出了图1所示的存储器装置150的存储块152、154和156。存储块152、154和156中的每一个可被实现为三维结构(或垂直结构)。例如,各存储块152、154和156可被实现为在第一方向至第三方向,例如,x轴方向、y轴方向和z轴方向上延伸的三维结构。
每个存储块330可包括在第二方向上延伸的多个NAND串NS。多个NAND串NS可在第一方向和第三方向上提供。每个NAND串NS可连接至位线BL、至少一个串选择线SSL、至少一个接地选择线GSL、多个字线WL、至少一个虚设字线DWL和共源线CSL,并且可包括多个晶体管结构TS。
即,在存储器装置150的多个存储块152、154和156中,每个存储块330可连接至多个位线BL、多个串选择线SSL、多个接地选择线GSL、多个字线WL、多个虚设字线DWL和多个共源线CSL,因此每个存储块330可包括多个NAND串NS。并且,在每个存储块330中,多个NAND串NS可连接至一个位线BL,多个晶体管可实现在一个NAND串NS中。每个NAND串NS的串选择晶体管SST可连接至对应的位线BL,并且每个NAND串NS的接地选择晶体管GST可连接至共源线CSL。存储器单元MC可设置在每个NAND串NS的串选择晶体管SST和接地选择晶体管GST之间。即,在存储器装置150的多个存储块152、154和156中,多个存储器单元可实现在每个存储块330中。
图5是示出关于根据实施例的存储器系统中的存储器装置的数据处理操作的示图。
参照图5,控制器130执行与从主机102接收的命令对应的命令操作,例如,与编程命令对应的编程操作。控制器130将与编程命令对应的用户数据编程并存储在存储器装置150的存储块152、154、156、158、160、162、164和166中的多个页面中。
控制器130生成并更新用户数据的元数据,并且将元数据编程并存储在存储器装置150的存储块152、154、156、158、160、162、164和166中。元数据包括存储在存储块152、154、156、158、160、162、164和166中的用户数据的逻辑到物理(逻辑/物理或L2P)信息和物理到逻辑(物理/逻辑或P2L)信息。并且,元数据可包括:关于与从主机102接收的命令对应的命令数据的信息、关于与命令对应的命令操作的信息、关于将执行命令操作的存储器装置150的存储块的信息、以及关于与命令操作对应的映射数据的信息。换言之,元数据可包括与从主机102接收的命令对应的全部信息和除用户数据外的数据。
例如,控制器130将与从主机102接收的编程命令对应的用户数据高速缓存并缓冲在控制器130的第一缓冲器510中。即,控制器130将用户数据的数据段512存储在作为数据缓冲器/高速缓存的第一缓冲器510中。第一缓冲器510可包括在控制器130的存储器144中。此后,控制器130将存储在第一缓冲器510中的数据段512编程并存储在存储器装置150的存储块152、154、156、158、160、162、164和166中包括的页面中。
当用户数据的数据段512被编程并存储在存储块152、154、156、158、160、162、164和166中的页面中时,控制器130生成L2P段522和P2L段524作为元数据。然后,控制器130将L2P段522和P2L段524存储在控制器130的第二缓冲器520中。第二缓冲器520可包括在控制器130的存储器144中。L2P段522和P2L段524可列表的形式存储在第二缓冲器520中。然后,控制器130通过映射清除操作,将L2P段522和P2L段524编程并存储在存储块152、154、156、158、160、162、164和166中的页面中。
控制器130执行与从主机102接收的命令对应的命令操作。例如,控制器130执行与读取命令对应的读取操作。控制器130通过将与读取命令对应的用户数据的L2P段522和P2L段524加载在第二缓冲器520中来检查与读取命令对应的用户数据的L2P段522和P2L段524。然后,控制器130从通过检查已知的存储位置读取用户数据的数据段512。即,控制器130从存储块152、154、156、158、160、162、164和166中的特定存储块的特定页面读取数据段512。然后,控制器130将数据段512存储在第一缓冲器510中,并且将数据段512提供至主机102。
参照图6,存储器装置150可包括多个存储器管芯,例如存储器管芯0(表示为“管芯0”)、存储器管芯1(表示为“管芯1”)、存储器管芯2(表示为“管芯2”)以及存储器管芯3(表示为“管芯3”)。存储器管芯中的每个可包括多个平面,例如,平面0(表示为“平面0”)、平面1(表示为“平面1”)、平面2(表示为“平面2”)以及平面3(表示为“平面3”)。包括在存储器装置150中的存储器管芯中的各个平面可包括多个存储块,例如,N个块Block0、Block1、......、BlockN-1,每个块包括多个页面,例如,如上参照图2所述的2M个页面。此外,存储器装置150可包括与各个存储器管芯对应的多个缓冲器,例如,与存储器管芯0对应的缓冲器0(表示为“缓冲器0”)、与存储器管芯1对应的缓冲器1(表示为“缓冲器1”)、与存储器管芯2对应的缓冲器2(表示为“缓冲器2”)以及与存储器管芯3对应的缓冲器3(表示为“缓冲器3”)。
当执行与从主机102接收的多个命令对应的命令操作时,与命令操作对应的数据可被存储在存储器装置150中包括的缓冲器中。例如,当执行编程操作时,与编程操作对应的数据可被存储在缓冲器中,然后可被存储在存储器管芯的存储块中包括的页面中。当执行读取操作时,与读取操作对应的数据可被从在存储器管芯的存储块中包括的页面读取,可被存储在缓冲器中,然后可通过控制器130被提供至主机102。
虽然作为示例并且出于说明的目的,图6示出包括在存储器装置150中的缓冲器存在于各个相应存储器管芯外部,但是本发明不限于此。也就是说,缓冲器可存在于各个相应存储器管芯内部。将注意的是,缓冲器可对应于各个存储器管芯中的各个平面或各个存储块。此外,在本公开的实施例中,虽然在整个说明书中为了便于说明作为示例描述了包括在存储器装置150中的缓冲器可对应于如上参照图3所述的包括在存储器装置150中的多个页面缓冲器322、324和326,但是将注意的是,缓冲器可以是包括在存储器装置150中的多个高速缓存或多个寄存器。
而且,包括在存储器装置150中的多个存储块可被分组为多个超级存储块(未示出),并且可以以多个超级存储块来执行命令操作。超级存储块中的每一个可包括多个存储块,例如,包括在第一存储块组和第二存储块组中的存储块。就这方面而言,在第一存储块组被包括在某个第一存储器管芯的第一平面中的情况下,第二存储块组可被包括在第一存储器管芯的第一平面中、被包括在第一存储器管芯的第二平面中或者被包括在第二存储器管芯的平面中。在下文中,将通过参照图7至图9的示例来详细描述在根据本公开的实施例的存储器系统中,在存储器装置150中包括的多个存储器管芯中执行与从主机102接收的多个写入命令对应的编程操作和与从主机102接收的多个读取命令对应的读取操作,以及如上所述执行与编程操作和读取操作的执行对应的映射更新操作和映射清除操作。
图7是示出根据本发明的实施例的数据处理系统100的同步方案的框图。
由于闪速存储器的物理结构,存储器系统110可基于页面执行写入操作和读取操作时,基于存储块执行擦除操作。存储器系统110可包括控制器130中的闪存转换层(FTL)以支持文件系统,并且可通过FTL执行命令操作或内部操作。也就是说,控制器130可根据从主机102接收的命令来控制包括在存储器装置150中的多个NAND闪速存储器150_1至150_N,并且还可执行诸如垃圾收集操作、读取回收操作和损耗均衡操作的内部操作。换言之,控制器130可以通过运行被实现为软件的FTL来执行上述操作。
此处,当FTL执行将由主机102提供的逻辑地址(LA)转换为存储器系统110的物理地址(PA)的地址映射操作时,可以执行命令操作和内部操作。然而,当存储器系统110通过使用FTL执行地址映射操作时,存储主机102提供的逻辑地址LA与存储器系统110的物理地址PA之间的映射信息,即映射数据的映射表被使用,在下文中将该映射表称为存储器映射表NMT。
随着存储器系统110的容量变大,存储器映射表NMT的大小可能不可避免地增加。因此,由于存储器系统110搜索存储器映射表NMT的时间增加,所以可能降低存储器系统110的操作速度。
为了解决该问题,存储器系统110可包括多个存储器映射表NMT,同时主机可包括多个主机映射表HMT。数据处理系统100可通过使存储器映射表NMT和主机映射表HMT彼此同步来优先地在主机102中执行地址映射操作。这种同步操作可以称为主机性能提升(HPB)操作。
图7示出了用于执行包括在主机102中的主机映射表HMT与包括在存储器系统110中的存储器映射表NMT之间的同步操作的数据处理系统100。
根据本发明的实施例的数据处理系统100可包括主机102和存储器系统110。
主机102可包括文件系统103和主机控制器104,该主机控制器104从文件系统103接收命令并将命令提供至存储器系统110。
主机控制器104可包括主机存储器105,主机存储器105具有存储在其中的主机映射表组HMT。
主机映射表组HMT可包括第一主机映射表HMT_1至第N主机映射表HMT_N。
主机102可将一个或多个请求传送至控制器130(在图7中表示为“(A)”)。
存储器系统110可包括存储器装置150以及用于控制存储器装置150的控制器130,存储器装置150包括多个NAND闪速存储器150_1至150_N。
控制器130可包括存储器,该存储器具有存储在其中的存储器映射表组NMT,候选块列表CBL和NAND映射信息更改列表。
存储器映射表组NMT可包括第一存储器映射表NMT_1至第N存储器映射表NMT_N。
此处,被示出为包括在图1的控制器130中的主机接口132、处理器134、ECC单元138、电源管理单元140和存储器接口140在图7被示为没有被包括在控制器130中。然而,这仅为了方便说明,从附图中省略了它们,并且它们可实际上被包括在控制器130中。
对于同步操作,控制器130可向主机102一起提供与对从主机102接收的请求(“(A)”)的响应(图7中表示为“(B)”)以及更新的存储器映射表NMT的条目信息。换言之,控制器130可向主机102一起提供与对主机102的请求(“(A)”)的响应(“(B)”)以及存储器映射表更新信息,该存储器映射表更新信息指示存储器映射表NMT由于命令操作或内部操作而被更新并且因此需要执行同步操作。
存储器映射表更新信息可包括存储器映射表索引、映射数据的类型信息和大小信息等。在本发明实施例中,存储器映射表的条目信息可包括存储器映射表索引。
主机102可检查从控制器130接收的包括更新的存储器映射表的索引的响应消息,并且将用于读取更新的存储器映射表的读取缓冲器命令(在图7中表示为“(C)”)传送至控制器130。
控制器130可响应于从主机102接收的读取缓冲器命令,传送包括一个或多个映射数据(即,L2P信息)的存储器映射表(在图7中表示为“(D)”)。
主机102可基于从控制器130传送的更新的存储器映射表NMT,通过同步操作来更新主机映射表HMT。
数据处理系统100可通过将存储器系统110的存储器映射表NMT与主机102的主机映射表HMT同步来减少在存储器系统110内搜索存储器映射表NMT的负担,这可使得存储器系统110的操作性能和主机102的操作性能提高。
此处,在控制器130将更新的存储器映射表NMT传送至主机102之前,根据源于内部操作的更新的存储器映射表NMT是否将在不久后被再次更新来判定是否执行同步操作。换言之,控制器130可选择由于不久后即将到来的内部操作而待被改变映射数据的候选存储块,检查在更新的存储器映射表NMT中包括的L2P信息之中是否存在与候选存储块相对应的L2P信息,并且判定是否将存储器映射表NMT提供至主机102以用于同步操作。这将参照图8到图14基于HPB操作来在本发明的以下实施例中具体描述。
图8是示例性地描述根据本发明的实施例的操作数据处理系统以使主机102的主机映射表HMT与存储器系统110的存储器映射表NMT同步的方法的流程图。
图9示例性地示出根据本发明的实施例的存储器映射表更改列表。
图10示例性地示出根据本发明的实施例的多个存储器映射表NMT。
图11示例性地示出根据本发明的实施例的候选块列表(CBL)。
参照图8,在步骤S801中,控制器130可在存储器映射表更改列表中检查与第i索引对应的第N存储器映射表NMT_N。参照图9,存储器映射表更改列表可以是存储器映射表组NMT内的、存储L2P信息被更新的存储器映射表NMT的条目信息的表。存储器映射表更改列表中的第一字段可指索引,第二字段可指LP2信息被更新的存储器映射表的条目信息。
每当执行与从主机102接收的写入命令、读取命令或擦除命令对应的命令操作或执行诸如垃圾收集操作、读取回收操作或损耗均衡操作的内部操作时,控制器130可更新包括在存储器映射表NMT中的L2P信息。如上所述,当L2P信息被更新时,控制器130可将包括更新的L2P信息的存储器映射表的条目信息存储在存储器映射表更改列表中。
例如,参照图10,存储器144可包括第一存储器映射表NMT_1和第二存储器映射表NMT_2。第一存储器映射表NMT_1和第二存储器映射表NMT_2可包括用于管理存储在存储器装置150中的数据的一个或多个L2P信息。在第一存储器映射表NMT_1和第二存储器映射表NMT_2中,第一字段可指逻辑地址,并且第二字段可指物理地址或数据块地址。可针对逻辑地址LA 0、1、2、3和4以及相应物理地址PA 305、101、102、103和196分配第一存储器映射表NMT_1。可针对逻辑地址LA 5、6、7、8和9以及相应物理地址PA 10、14、203、204和205分配第二存储器映射表NMT_2。
在第一存储器映射表NMT_1内,例示了由于命令操作或内部操作,将映射至逻辑地址1的物理地址101更改成物理地址900并且将映射至逻辑地址4的物理地址196更改成物理地址905。在第二存储器映射表NMT_2内,例示了由于命令操作或内部操作,将映射至逻辑地址6的物理地址14更改成物理地址50。以这种方式,控制器130可将更新的第一存储器映射表NMT_1和更新的第二存储器映射表NMT_2顺序地存储在存储器映射表更改列表中。
返回参照图8,在步骤S803中,判定第N存储器映射表NMT_N是否被存储在存储器144中。
当步骤S803中的结果是第N存储器映射表NMT_N未被存储在存储器中(“否”)时,控制器130可传送从存储器装置150读取第N存储器映射表NMT_N的请求,将来自NAND闪速存储器的第N存储器映射表NMT_N加载到存储器144中,并且执行将在下面描述的步骤S809的操作。
另一方面,当步骤S803中的结果是第N存储器映射表NMT_N存在于存储器中(“是”)时,在步骤S809中,控制器130可判定第N存储器映射表NMT_N内的L2P信息之中的任意一条L2P信息是否对应于候选块列表CBL中列出的任意存储块。
参照图11,候选块列表CBL可以是在不久后待被执行内部操作的存储块的列表。内部操作可以是垃圾收集操作、读取回收操作和耗损均衡操作中的任意一个。例如,候选块列表CBL可包括第一存储块、第七存储块和第八存储块的列表。
在本文中,稍后将参照图12至图14详细描述用于选择候选块列表CBL的存储块的方法。
返回参照图8,例如,控制器130可判定在候选块列表CBL的列出存储块之中,是否存在与包括在第一存储器映射表NMT_1中的任意一个L2P信息对应的存储块。
可从包括在第一存储器映射表NMT_1中的物理地址获知通道、通路、块、平面和页面信息。
例如,在第一存储器映射表NMT_1内,映射至逻辑地址0的物理地址305可表示存储块5的L2P信息,并且映射至逻辑地址1的物理地址900可表示存储块1的L2P信息。映射至逻辑地址2的物理地址102可表示存储块10的L2P信息,并且映射至逻辑地址3的物理地址103可表示存储块11的L2P信息。映射至逻辑地址4的物理地址905可表示存储块4的L2P信息。
例如,在第二存储器映射表NMT_2内,映射至逻辑地址5的物理地址10可表示存储块100的L2P信息。映射至逻辑地址6的物理地址50可表示存储块30的L2P信息。映射至逻辑地址7的物理地址203可表示存储块33的L2P信息。映射至逻辑地址8的物理地址204可表示存储块60的L2P信息。映射至逻辑地址9的物理地址205可表示存储块24的L2P信息。
如上所述,控制器130可通过包括在第一存储器映射表NMT_1和第二存储器映射表NMT_2中的L2P信息来检测块信息,并且检查在候选块列表CBL中是否存在该块信息。
在步骤S811中,判定第N存储器映射表NMT_N内的L2P信息之中的任意一条L2P信息是否对应于候选块列表CBL中列出的任意存储块。
因此,当结果是第N存储器映射表NMT_N内的L2P信息之中的任意一条L2P信息对应于候选块列表CBL中列出的任意存储块(“是”)时,在步骤S813中,控制器130可判定第N存储器映射表NMT_N不久后将由于内部操作而被更新,并且可不将第N存储器映射表NMT_N传送至主机102。
例如,控制器130可顺序地检查第一存储器映射表NMT_1内的L2P信息之中的任意一条L2P信息是否对应于候选块列表CBL中列出的任意存储块。例如,第一存储器映射表NMT_1的逻辑地址1和物理地址900可指存储块1,并且控制器130可检查表示存储块1的逻辑地址1和物理地址900的该条L2P信息是否对应于候选块列表CBL中列出的存储块之中的一个。由于存储块1被列在候选块列表CBL中,因此因为存储块1将不久后由于内部操作而被更新,所以控制器130可判定第一存储器映射表NMT_1的L2P信息(即,表示存储块1的逻辑地址1和物理地址900)可以在不久后被更新,因此控制器130可不将第一存储器映射表NMT_1传送至主机102。
在步骤S815中,可以增加指示第N存储器映射表的条目信息的索引(“i=i+1”),然后可从步骤S801再次执行该进程。
另一方面,作为对第N存储器映射表NMT_N内的L2P信息之中的任意一条L2P信息是否对应于候选块列表CBL中列出的任意存储块的判定结果,当在步骤S811中判定第N存储器映射表NMT_N内的L2P信息之中没有一条L2P信息对应于候选块列表CBL中列出的任意存储块(“否”)时,数据处理系统可如参照图7所述的执行将包括在控制器130中的第N存储器映射表NMT_N和包括在主机102中的第N主机映射表HMT_N同步的操作。
例如,控制器130可检查第二存储器映射表NMT_2内的L2P信息之中的任意一条L2P信息是否对应于候选块列表CBL中列出的任意存储块。可以看出,在第二存储器映射表NMT_2内的L2P信息之中,没有一条L2P信息对应于候选块列表CBL中列出的任意存储块。因此,控制器130可将第二存储器映射表NMT_2传送至主机102以执行同步操作。
可如下执行包括在控制器130中的第N存储器映射表NMT_N和包括在主机102中的第N主机映射表HMT_N的同步操作。
在步骤S817中,控制器130可从主机102接收用于执行写入操作、读取操作或擦除操作的请求。
在步骤S819中,控制器130可向主机102一起提供与对主机102的请求的响应以及第N存储器映射表NMT_N的条目信息,以便通知主机102第N主机映射表HMT_N需要根据更新的第N存储器映射表NMT_N而进行更新。
在步骤S821中,主机102可从检查与从控制器130传送的响应一起提供的第N存储器映射表NMT_N的条目信息,并且将请求第N存储器映射表NMT_N的读取缓冲器命令传送至控制器130。
在步骤S823中,控制器130可响应于从主机102接收的读取缓冲器命令,将第N存储器映射表NMT_N传送至主机102。
在步骤S825中,主机102可基于从控制器130接收的第N存储器映射表来更新第N主机映射表HMT_N。
图12至图14是示例性地描述用于在多个存储块之中选择在不久后待被执行内部操作的存储块,并将所选择的存储块存储在候选块列表CBL中的方法的流程图。
图12是描述在多个存储块之中选择待被执行垃圾收集操作的候选存储块的方法的流程图。在步骤S1001中,控制器130可判定包括在第N存储块中的有效页面的数量(简称为有效页面计数VPC)是否等于或小于阈值TH,以便选择待被执行垃圾收集操作的候选存储块。例如,可判定包括在第一存储块中的有效页面计数VPC是否等于或小于阈值。
在步骤S1001中,当包括在第一存储块中的有效页面计数VPC大于阈值(“否”)时,在步骤S1003中控制器130可以增加第N存储块的索引(“N=N+1“),然后可以从步骤S1001再次执行该进程。
同时,当步骤S1001中的结果是包括在第一存储块中的有效页面计数VPC小于或等于阈值(“是”)时,在步骤S1005中,控制器130可判定第一存储块是在不久后待被执行垃圾收集操作的存储块,并且将第一存储块列在候选块列表CBL中。
图13是描述在多个存储块之中选择待被执行读取回收(RRC)操作的候选存储块的方法的流程图。在步骤S1101中,控制器130可判定对第N存储块执行读取操作的次数(被简称为读取计数RC)是否大于阈值TH,以在全部存储块之中选择待被执行读取回收操作的候选存储块。例如,判定第一存储块的读取计数RC是否等于或大于阈值。
在步骤S1101中,当第一存储块的读取计数RC不大于阈值(“否”)时,在步骤S1103中控制器130可以增加第N存储块的索引(“N=N+1”),然后可以从步骤S1101再次执行该进程。
同时,当步骤S1101中的结果是第一存储块的读取计数RC大于阈值(“是”)时,在步骤S1105中控制器130可判定第一存储块是在不久后待被执行读取回收操作的存储块,并且将第一存储块列在候选块列表CBL中。
图14是描述在多个存储块之中选择待被执行损耗均衡操作的候选存储块的方法的流程图。
在步骤S1201中,控制器130可判定第N存储块的E/W循环EWC的数量是否大于阈值TH,以在全部存储块之中选择待被执行损耗均衡操作的候选存储块。例如,可判定第一存储块的E/W循环EWC的数量是否等于或大于阈值。
当步骤S1201中的结果是第一存储块的E/W循环EWC的数量不大于阈值(“否”)时,在步骤S1203中控制器130可以增加第N存储块的索引(“N=N+1”),然后可以从步骤S1201再次执行该进程。
同时,当步骤S1201中的结果是第一存储块的E/W循环EWC的数量大于阈值(“是”)时,在步骤S1205中,控制器130可判定第一存储块是在不久后待被执行损耗均衡操作的存储块,并且将第一存储块列在候选块列表CBL中。
参照图15至图23,描述根据实施例的可应用上面描述的包括存储器装置150和控制器130的存储器系统110的数据处理系统和电子设备。
图15是示出包括根据实施例的存储器系统的数据处理系统的示图。图15示出应用存储器系统的存储卡系统6100。
参照图15,存储卡系统6100包括连接器6110、存储器控制器6120和存储器装置6130。
存储器控制器6120与实施为非易失性存储器(NVM)的存储器装置6130连接,以访问存储器装置6130。例如,存储器控制器6120控制存储器装置6130的读取操作、写入操作、擦除操作和后台操作。存储器控制器6120提供存储器装置6130和主机(未示出)之间的接口并驱动用于控制存储器装置6130的固件。也就是说,存储器控制器6120可对应于上面参照图1描述的存储器系统110中的控制器130,并且存储器装置6130可对应于上面参照图1描述的存储器系统110中的存储器装置150。
因此,存储器控制器6120可包括诸如随机存取存储器(RAM)、处理器、主机接口、存储器接口和错误校正组件的组件。
存储器控制器6120可通过连接器6110与例如上面参照图1描述的主机102的外部装置通信。例如,如上面参照图1所述的,存储器控制器6120可被配置为通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(EDSI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WiFi或Wi-Fi以及蓝牙。因此,根据实施例的存储器系统和数据处理系统可应用于有线和/或无线电子设备,特别是移动电子设备。
存储器装置6130可通过诸如以下的非易失性存储器来实施:电可擦除可编程ROM(EPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)和/或自旋转移力矩磁性RAM(STT-MRAM)。
存储器控制器6120和存储器装置6130可集成到一个半导体装置中,以形成固态硬盘(SSD)、或诸如以下的存储卡:PC卡(个人计算机存储卡国际协会(PCMCIA))、标准闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、微型MMC和eMMC)、安全数字(SD)卡(例如,SD、迷你SD、微型SD和SDHC)或通用闪存(UFS)。
图16是示意性示出包括根据实施例的存储器系统的数据处理系统6200的示图。
参照图16,数据处理系统6200包括通过至少一个非易失性存储器(NVM)实施的存储器装置6230和控制存储器装置6230的存储器控制器6220。数据处理系统6200可是诸如存储卡(例如,CF、SD和微型SD)的存储介质。存储器装置6230可对应于上面参照图1描述的存储器系统110中的存储器装置150,并且存储器控制器6220可对应于上面参照图1描述的存储器系统110中的控制器130。
存储器控制器6220可响应于来自主机6210的请求来控制对存储器装置6230的读取操作、写入操作和擦除操作。存储器控制器6220包括至少一个CPU 6221、诸如RAM 6222的缓冲存储器、ECC电路6223、主机接口6224以及诸如NVM接口6225的存储器接口。
CPU 6221可控制对存储器装置6230的一般操作,例如读取、写入、文件系统管理和坏页面管理等。RAM 6222可根据CPU 6221的控制来操作且可用作工作存储器、缓冲存储器或高速缓存存储器等。在RAM 6222用作工作存储器的情况下,通过CPU 6221处理的数据可被临时存储在RAM 6222中。在RAM 6222用作缓冲存储器的情况下,RAM 6222用于缓冲从主机6210传送至存储器装置6230的数据或从存储器装置6230传送至主机6210的数据。在RAM6222用作高速缓存存储器的情况下,RAM 6222可用来使低速存储器装置6230能够以高速操作。
ECC电路6223对应于上面参照图1描述的控制器130的ECC单元138。如上面参照图1所述,ECC电路6223生成用于校正从存储器装置6230接收的数据中的失效位或错误位的错误校正码(ECC)。并且,ECC电路6223可对将提供至存储器装置6230的数据执行错误校正编码,并生成添加有奇偶校验位的数据。奇偶校验位可被存储在存储器装置6230中。ECC电路6223可对从存储器装置6230输出的数据执行错误校正解码。ECC电路6223可通过使用奇偶校验位来校正错误。例如,如上面参照图1所述,ECC电路6223可通过使用诸如LDPC码、BCH码、turbo码、里德-所罗门)码、卷积码、RSC、TCM和BCM的各种编码调制来校正错误。
存储器控制器6220可通过主机接口6224向主机6210传送数据以及从主机6210接收数据,并通过NVM接口6225向存储器装置6230传送数据以及从存储器装置6230接收数据。主机接口6224可通过PATA总线、SATA总线、SCSI、USB、PCIe或NAND接口与主机6210连接。此外,由于实施了诸如WiFi或长期演进(LTE)的无线通信功能或移动通信协议,存储器控制器6220可通过与外部装置,例如主机6210或除主机6210之外的另一外部装置连接来传送和接收数据。特别地,由于存储器控制器6220被配置为通过各种通信协议中的至少一种与外部装置进行通信,因此根据实施例的存储器系统和数据处理系统可应用于有线和/或无线电子设备,特别是移动电子设备。
图17是示出包括根据实施例的存储器系统的数据处理系统的示图。图17示出应用存储器系统的固态硬盘(SSD)6300。
参照图17,SSD 6300包括控制器6320和包括多个非易失性存储器(NVM)的存储器装置6340。控制器6320可对应于上面参照图1描述的存储器系统110中的控制器130,并且存储器装置6340可对应于上面参照图1描述的存储器系统110中的存储器装置150。
控制器6320通过多个通道CH1、CH2、CH3、……和CHi与存储器装置6340连接。控制器6320包括至少一个处理器6321、ECC电路6322、主机接口6324、缓冲存储器6325以及例如非易失性存储器接口6326的存储器接口。
缓冲存储器6325临时存储从主机6310接收的数据或从存储器装置6340中包括的多个闪速存储器NVM接收的数据,或者临时存储多个闪速存储器NVM的元数据,例如,包括映射表的映射数据。缓冲存储器6325可通过诸如但不限于DRAM、SDRAM、DDR SDRAM、LPDDRSDRAM和GRAM的易失性存储器或诸如但不限于FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器来实现。尽管图13示出了缓冲存储器6325设置在控制器6320内部,然而缓冲存储器6325可设置在控制器6320外部。
ECC电路6322可在编程操作期间计算待被编程到存储器装置6340中的数据的错误校正编码值。在读取操作期间,ECC电路6322基于错误校正编码值对从存储器装置6340读取的数据执行错误校正操作。在失效数据的恢复操作期间,ECC电路6322对从存储器装置6340恢复的数据执行错误校正操作。
主机接口6324提供与诸如主机6310的外部装置的接口功能,并且非易失性存储器接口6326提供与通过多个通道CH1、CH2、CH3、……和CHi连接的存储器装置6340的接口功能。
由于使用了每一个均应用了上面参照图1描述的存储器系统110的多个SSD 6300,因此可实现数据处理系统,例如,独立磁盘冗余阵列(RAID)系统。在RAID系统中,可包括多个SSD 6300和用于控制多个SSD 6300的RAID控制器。在通过从主机6310接收写入命令而执行编程操作的情况下,RAID控制器可对应于接收的写入命令的RAID级别信息在多个RAID级别,即多个SSD 6300中选择至少一个存储器系统,即,至少一个SSD 6300,并可将与写入命令对应的数据输出到所选择的SSD 6300。并且,在通过从主机6310接收读取命令而执行读取操作的情况下,RAID控制器可对应于接收的读取命令的RAID级别信息在多个RAID级别,即多个SSD 6300中选择至少一个存储器系统,即,至少一个SSD 6300,并可将从所选择的SSD 6300输出的数据提供至主机6310。
图18是示出包括根据实施例的存储器系统的数据处理系统的示图。图18示出应用存储器系统的嵌入式多媒体卡(eMMC)6400。
参照图18,eMMC 6400包括控制器6430和通过至少一个NAND闪速存储器实施的存储器装置6440。控制器6430可对应于上面参照图1描述的存储器系统110中的控制器130,并且存储器装置6440可对应于上面参照图1描述的存储器系统110中的存储器装置150。
控制器6430通过多个通道与存储器装置6440连接。控制器6430包括至少一个内核6432、主机接口(I/F)6431和存储器接口,即NAND接口(I/F)6433。
内核6432控制eMMC 6400的一般操作。主机接口6431提供控制器6430和主机6410之间的接口功能。NAND接口6433提供存储器装置6440和控制器6430之间的接口功能。例如,主机接口6431可是并行接口,例如上面参照图1所描述的MMC接口,并且主机接口6431可是串行接口,例如超高速(UHS)-I/UHS-II接口和UFS接口。
图19至图22是示出包括根据实施例的存储器系统的数据处理系统的示例的示图。图19至图22中的每一个示出应用存储器系统的通用闪存(UFS)。
参照图19至图22,各UFS系统6500、6600、6700和6800可分别包括主机6510、6610、6710和6810,UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830。各主机6510、6610、6710和6810可是有线和/或无线电子设备,特别是移动电子设备等的应用处理器,各UFS装置6520、6620、6720和6820可是嵌入式UFS装置。各个UFS卡6530、6630、6730和6830可是外部嵌入式UFS装置或可移除UFS卡。
在各UFS系统6500、6600、6700和6800中,主机6510、6610、6710和6810,UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可通过UFS协议与例如有线和/或无线电子设备,特别是移动电子设备等的外部装置通信。UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可被实施为上面参照图1描述的存储器系统110。例如,在各UFS系统6500、6600、6700和6800中,UFS装置6520、6620、6720和6820可参照图16至图18描述的数据处理系统6200、SSD 6300或eMMC 6400的形式来实施,并且UFS卡6530、6630、6730和6830可参照图15描述的存储卡系统6100的形式来实施。
在各UFS系统6500、6600、6700和6800中,主机6510、6610、6710和6810,UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可通过通用闪存(UFS)接口,例如,移动工业处理器接口(MIPI)中的MIPI M-PHY和MIPI统一协议(UniPro)来执行通信。UFS装置6520、6620、6720和6820与UFS卡6530、6630、6730和6830可通过除UFS协议之外的另一协议,例如,诸如通用存储总线(USB)、闪存驱动器(UFD)、多媒体卡(MMC)、安全数字(SD)、迷你SD和微型SD的各种卡协议来执行通信。
在图19所示的UFS系统6500中,主机6510、UFS装置6520以及UFS卡6530中的每一个可包括UniPro。主机6510执行交换操作,以便与UFS装置6520和UFS卡6530中的每一个通信。特别地,主机6510通过例如L3交换的UniPro中的链路层交换与UFS装置6520或UFS卡6530来执行通信。UFS装置6520和UFS卡6530可通过主机6510的UniPro中的链路层交换来执行通信。尽管作为示例描述了一个UFS装置6520和一个UFS卡6530连接到主机6510,然而要注意的是,多个UFS装置和多个UFS卡可并联布置或星型布置连接到主机6510。并且,多个UFS卡可并联式布置、星型式布置、串联式布置或链型式布置连接到UFS装置6520。
在图20所示的UFS系统6600中,主机6610、UFS装置6620和UFS卡6630中的每一个可包括UniPro。主机6610通过执行交换操作的交换模块6640,例如,执行例如L3交换操作的UniPro中的链路层交换的交换模块6640,来与UFS装置6620或UFS卡6630通信。UFS装置6620和UFS卡6630可通过在交换模块6640的UniPro中的链路层交换来执行通信。尽管作为示例描述了一个UFS装置6620和一个UFS卡6630连接到交换模块6640,然而要注意的是,多个UFS装置和多个UFS卡可并联式布置或星型式布置连接到交换模块6640。并且,多个UFS卡可并联式布置、星型式布置、串联式布置或链型式布置连接到UFS装置6620。
在图21所示的UFS系统6700中,主机6710、UFS装置6720和UFS卡6730中的每一个中可包括UniPro。主机6710通过执行交换操作的交换模块6740,特别地,执行例如L3交换操作的UniPro中的链路层交换的交换模块6740,来与UFS装置6720或UFS卡6730通信。UFS装置6720和UFS卡6730可通过交换模块6740的UniPro中的链路层交换来执行通信。交换模块6740可在UFS装置6720内部或外部与UFS装置6720实施为一个模块。尽管作为示例描述了一个UFS装置6720和一个UFS卡6730连接到交换模块6740,然而要注意的是,交换模块6740和UFS装置6720分别被实施在其中的多个模块可并联式布置或星型式布置连接到主机6710。并且,各模块可串联式布置或以链型式布置连接,或者多个UFS卡可并联式布置或星型式布置连接到交换模块6740。
在图22所示的UFS系统6800中,主机6810、UFS装置6820和UFS卡6830中的每一个中存在M-PHY和UniPro。UFS装置6820执行交换操作以便与主机6810和UFS卡6830通信。特别地,UFS装置6820通过用于与主机6810通信的M-PHY和UniPro模块之间的交换和用于与UFS卡6830通信的M-PHY和UniPro模块之间的交换,例如目标标识符(ID)交换,来与主机6810或UFS卡6830通信。主机6810和UFS卡6830可通过UFS装置6820的M-PHY和UniPro模块之间的目标ID交换来执行通信。尽管作为示例描述了一个UFS装置6820连接到主机6810并且一个UFS卡6830连接到UFS装置6820,然而要注意的是,多个UFS装置可并联式布置或星型式布置连接到主机6810。并且,多个UFS卡可并联式布置、星型式布置、串联式布置或链型式布置中的任一种连接到一个UFS装置6820。
图23是示出包括根据实施例的存储器系统的数据处理系统的示图。图23示出应用存储器系统的用户系统6900。
参照图23,用户系统6900包括用户接口6910、存储器模块6920、应用处理器6930、网络模块6940和存储模块6950。
应用处理器6930驱动用户系统6900中包括的组件和操作系统(OS)。例如,应用处理器6930可包括控制用户系统6900中包括的组件的控制器、接口和图形引擎等。应用处理器6930可通过片上系统(SoC)被提供。
存储器模块6920可用作用户系统6900的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块6920可包括诸如DRAM、SDRAM、DDR SDRAM、DDR2SDRAM、DDR3SDRAM、LPDDRSDARM、LPDDR2SDRAM和LPDDR3SDRAM的易失性随机存取存储器,或诸如PRAM、ReRAM、MRAM和FRAM的非易失性随机存取存储器。例如,可基于堆叠封装(PoP)的封装来安装应用处理器6930和存储器模块6920。
网络模块6940可与外部装置通信。例如,网络模块6940不仅可支持有线通信,而且可支持各种无线通信,诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、全球微波接入互操作性(WiMAX)、无线局域网(WLAN)、超宽带(UWB)、蓝牙、无线显示(WI-DI)等,因此可与有线和/或无线电子设备,特别是移动电子设备通信。根据该事实,存储器系统和数据处理系统可应用于有线和/或无线电子设备。网络模块6940可包括在应用处理器6930中。
存储模块6950可存储数据,例如从应用处理器6930接收的数据,并且可将存储在其中的数据传送至应用处理器6930。存储模块6950可通过诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(ReRAM)、NAND闪速存储器、NOR闪速存储器和三维NAND闪速存储器的非易失性存储器来实施。并且,存储模块6950可被提供为诸如用户系统6900的存储卡和外部驱动器的可移除存储介质。也就是说,存储模块6950可对应于上面参照图1描述的存储器系统110,并且可被实施为上面参照图17至图19描述的SSD、eMMC和UFS。
用户接口6910可包括用于向应用处理器6930输入数据或命令或者用于将数据输出到外部装置的接口。例如,用户接口6910可包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口,以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和电动机的用户输出接口。
在上面参照图1描述的存储器系统110被应用于根据实施例的用户系统6900的移动电子设备的情况下,如上所述,应用处理器6930控制移动电子设备的一般操作,并且作为通信模块的网络模块6940控制与外部装置的有线和/或无线通信。作为移动电子设备的显示和触摸模块的用户接口6910显示应用处理器6930处理的数据,或支持来自触摸面板的数据输入。
根据本发明的实施例,通过高效地使包括在存储器装置中的存储器映射表与包括在主机中的主机映射表同步,数据处理系统和操作该数据处理系统的方法可以具有最小化的复杂性和性能劣化。
虽然已经针对特定实施例描述了本发明,但是对于本领域技术人员将显而易见的是,在不脱离如所附权利要求中限定的本发明的技术方案和范围的情况下,可以进行各种改变和修改。
Claims (20)
1.一种操作数据处理系统的方法,所述数据处理系统设置有包括第一存储器的主机、存储器装置以及包括第二存储器的控制器,所述方法包括:
由所述控制器检查存储器映射表更改列表中是否存在映射信息被更改的第一映射表,并且由所述控制器检查所述第二存储器中是否存在所述第一映射表;
当所述第二存储器中存在所述第一映射表时,由所述控制器检查候选块列表中是否存在与所述第一映射表中包括的一条映射数据对应的存储块;
当所述候选块列表中存在与所述映射数据对应的存储块时,由所述控制器判定所述第一映射表待由于内部操作而被更新,并且返回所述检查;
当所述候选块列表中不存在与任意一条映射数据对应的任意存储块时,由所述控制器将所述第一映射表传送至所述主机;并且
由所述主机接收来自所述控制器的所述第一映射表,并且由所述主机更新包括在所述第一存储器中并且与所述第一映射表对应的第二映射表,
其中所述存储器映射表更改列表包括映射表的条目信息,所述映射表包括由于命令操作或内部操作而被更改的映射数据,
其中所述候选块列表包括多个块之中的待被执行内部操作的存储器块的信息,并且
其中所述内部操作是垃圾收集操作、读取回收操作和损耗均衡操作中的任一种。
2.根据权利要求1所述的方法,其中接收和更新步骤包括:
由所述控制器向所述主机一起提供所述第一映射表的条目信息以及响应;
由所述主机传送向所述控制器请求所述第一映射表的读取缓冲器命令;
由所述控制器将所述第一映射表传送至所述主机;并且
由所述主机基于所述第一映射表来更新所述第二映射表。
3.根据权利要求1所述的方法,进一步包括:当所述第二存储器中不存在所述第一映射表时,由所述存储器装置将所述第一映射表加载至所述第二存储器。
4.根据权利要求1所述的方法,其中所述映射表的条目信息包括映射表编号、所述映射数据的类型信息、所述映射数据的大小信息等中的一个。
5.根据权利要求1所述的方法,进一步包括:由所述控制器在多个存储块之中选择待被执行内部操作的存储块,并且由所述控制器将所选择的存储块包括在所述候选块列表中,所述内部操作包括垃圾收集操作、读取回收操作或损耗均衡操作。
6.根据权利要求5所述的方法,其中选择和包括步骤包括:判定存储块的有效页面计数是否等于或小于阈值,并且将所述有效页面计数等于或小于所述阈值的存储块包括在所述候选块列表中。
7.根据权利要求5所述的方法,其中选择和包括步骤包括:判定存储块的读取计数是否等于或大于阈值,并且将所述读取计数等于或大于所述阈值的存储块包括在所述候选块列表中。
8.根据权利要求5所述的方法,其中选择和包括步骤包括:判定存储块的擦除/写入周期计数是否等于或大于阈值,并且将所述擦除/写入周期计数等于或大于所述阈值的存储块包括在所述候选块列表中。
9.一种数据处理系统,包括:
主机,包括第一存储器;以及
存储器系统,包括控制器和存储器装置,所述控制器包括第二存储器,
其中所述控制器:
检查存储器映射表更改列表中是否存在映射信息被更改的第一映射表,
检查候选块列表中是否存在与所述第一映射表中包括的一条映射数据对应的存储块,并且
当所述候选块列表中存在与所述第一映射表中包括的映射数据对应的存储块时,判定所述第一映射表待由于内部操作而被更新,并且不将所述第一映射表传送至所述主机,
其中所述存储器映射表更改列表包括映射表的条目信息,所述映射表包括由于命令操作或内部操作而被更改的映射数据,
其中所述候选块列表包括多个块之中的待被执行内部操作的存储器块的信息,并且
其中所述内部操作是垃圾收集操作、读取回收操作和损耗均衡操作中的任一种。
10.根据权利要求9所述的数据处理系统,其中当所述候选块列表中不存在与所述映射数据对应的存储块时,所述控制器进一步将所述第一映射表传送至所述主机。
11.根据权利要求10所述的数据处理系统,其中所述主机基于从所述控制器传送的所述第一映射表,更新包括在所述第一存储器中并且与所述第一映射表对应的第二映射表。
12. 根据权利要求9所述的数据处理系统,
其中所述控制器在检查所述候选块列表中是否存在与所述第一映射表中包括的所述映射数据对应的存储块之前,检查所述第二存储器中是否存在所述第一映射表,并且
其中当所述第二存储器中不存在所述第一映射表时,所述存储器装置将所述第一映射表加载至所述第二存储器。
13.根据权利要求10所述的数据处理系统,
其中所述映射表的条目信息包括映射表编号、所述映射数据的类型信息、所述映射数据的大小信息等中的一个。
14.根据权利要求9所述的数据处理系统,其中所述控制器进一步在多个存储块之中选择待被执行内部操作的存储块,并且通过将所选择的存储块包括在所述候选块列表中,所述内部操作包括垃圾收集操作、读取回收操作或损耗均衡操作。
15.根据权利要求14所述的数据处理系统,其中所述控制器通过判定存储块的有效页面计数是否等于或小于阈值,并且将所述有效页面计数等于或小于所述阈值的存储块包括在所述候选块列表中来执行选择和包括步骤。
16.根据权利要求14所述的数据处理系统,其中所述控制器通过判定存储块的读取计数是否等于或大于阈值,并且将所述读取计数等于或大于所述阈值的存储块包括在所述候选块列表中来执行选择和包括步骤。
17.根据权利要求14所述的数据处理系统,其中所述控制器通过判定存储块的擦除/写入周期计数是否等于或大于阈值,并且将所述擦除/写入周期计数等于或大于所述阈值的存储块包括在所述候选块列表中来执行选择和包括步骤。
18. 一种存储器系统,包括:
至少一个处理器;以及
至少一个存储器装置,包括编程命令,
其中所述编程命令使所述存储器系统:
检查存储器映射表更改列表中是否存在映射信息被更改的第一映射表;
当所述存储器映射表更改列表中存在所述映射信息被更改的第一映射表时,检查第二存储器中是否存在所述第一映射表;
当所述第二存储器中存在所述第一映射表时,检查候选块列表中是否存在与所述第一映射表中包括的一条映射数据对应的存储块;
当所述候选块列表中存在与所述第一映射表中包括的至少一个映射数据对应的存储块时,判定所述第一映射表待由于内部操作而被更新,并且不将所述第一映射表传送至主机;并且
当所述候选块列表中不存在与所述第一映射表中包括的至少一个映射数据对应的存储块时,与对所述主机的响应一起提供所述第一映射表的条目信息,并且响应于来自所述主机的、请求所述第一映射表的读取缓冲器命令来将所述第一映射表传送至所述主机,
其中所述存储器映射表更改列表包括映射表的条目信息,所述映射表包括由于命令操作或内部操作而被更改的映射数据,
其中所述候选块列表包括多个块之中的待被执行内部操作的存储器块的信息,并且
其中所述内部操作是垃圾收集操作、读取回收操作和损耗均衡操作中的任一种。
19.根据权利要求18所述的存储器系统,其中当所述第二存储器中不存在所述第一映射表时,所述编程命令进一步使所述存储器系统将所述第一映射表加载至所述第二存储器。
20. 一种操作控制器的方法,所述方法包括:
通过所述控制器控制的存储器装置的操作,更新包括多条映射信息的第一映射表;并且
向保持第二映射表的外部装置提供所更新的第一映射表以用于使所述第一映射表和所述第二映射表之间同步,除非所更新的第一映射表待被再次更新,
其中所述映射信息表示所述外部装置已知的虚设存储器地址与所述存储器装置的实际存储器地址之间的映射关系。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0098006 | 2018-08-22 | ||
KR1020180098006A KR20200022179A (ko) | 2018-08-22 | 2018-08-22 | 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110858180A CN110858180A (zh) | 2020-03-03 |
CN110858180B true CN110858180B (zh) | 2023-04-14 |
Family
ID=69586096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811639560.6A Active CN110858180B (zh) | 2018-08-22 | 2018-12-29 | 数据处理系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10896134B2 (zh) |
KR (1) | KR20200022179A (zh) |
CN (1) | CN110858180B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200139913A (ko) * | 2019-06-05 | 2020-12-15 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 메타 정보 저장 장치 |
KR20200122086A (ko) | 2019-04-17 | 2020-10-27 | 에스케이하이닉스 주식회사 | 메모리 시스템에서 맵 세그먼트를 전송하는 방법 및 장치 |
US11294825B2 (en) | 2019-04-17 | 2022-04-05 | SK Hynix Inc. | Memory system for utilizing a memory included in an external device |
KR20210001546A (ko) | 2019-06-28 | 2021-01-06 | 에스케이하이닉스 주식회사 | 슬립모드에서 메모리 시스템의 내부데이터를 전송하는 장치 및 방법 |
JP7258697B2 (ja) * | 2019-09-02 | 2023-04-17 | キオクシア株式会社 | 半導体記憶装置 |
KR20210106757A (ko) | 2020-02-21 | 2021-08-31 | 에스케이하이닉스 주식회사 | 호스트, 저장 장치 및 이들을 포함하는 컴퓨팅 시스템 |
WO2021253196A1 (zh) * | 2020-06-15 | 2021-12-23 | 华为技术有限公司 | 逻辑地址到物理地址映射表同步方法、装置及系统 |
CN113835617A (zh) | 2020-06-23 | 2021-12-24 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
TWI758944B (zh) * | 2020-06-23 | 2022-03-21 | 慧榮科技股份有限公司 | 資料處理方法及對應之資料儲存裝置 |
WO2022140916A1 (en) * | 2020-12-28 | 2022-07-07 | Alibaba Group Holding Limited | Recycle optimization in storage engine |
WO2022193126A1 (en) * | 2021-03-16 | 2022-09-22 | Micron Technology, Inc. | Performance benchmark for host performance booster |
JP2023085874A (ja) * | 2021-12-09 | 2023-06-21 | 株式会社日立製作所 | ストレージシステムおよびデータ管理方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176752A (zh) * | 2012-07-02 | 2013-06-26 | 晶天电子(深圳)有限公司 | 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器 |
CN105190526A (zh) * | 2013-02-08 | 2015-12-23 | 微软技术许可有限责任公司 | 对用于非易失性存储设备的存储器重新编址 |
CN107346213A (zh) * | 2016-05-04 | 2017-11-14 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107632777A (zh) * | 2016-07-18 | 2018-01-26 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN108255739A (zh) * | 2016-12-28 | 2018-07-06 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7467278B2 (en) * | 2006-05-08 | 2008-12-16 | International Business Machines Corporation | Memory tuning for garbage collection and central processing (CPU) utilization optimization |
CN104298465B (zh) * | 2013-07-17 | 2017-06-20 | 光宝电子(广州)有限公司 | 固态储存装置中的区块分组方法 |
US9880939B2 (en) | 2015-09-04 | 2018-01-30 | Toshiba Memory Corporation | Memory system and information processing system |
KR20170045406A (ko) * | 2015-10-16 | 2017-04-27 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10459644B2 (en) * | 2016-10-28 | 2019-10-29 | Western Digital Techologies, Inc. | Non-volatile storage system with integrated compute engine and optimized use of local fast memory |
US10970226B2 (en) * | 2017-10-06 | 2021-04-06 | Silicon Motion, Inc. | Method for performing access management in a memory device, associated memory device and controller thereof, and associated electronic device |
-
2018
- 2018-08-22 KR KR1020180098006A patent/KR20200022179A/ko not_active Application Discontinuation
- 2018-12-27 US US16/233,731 patent/US10896134B2/en active Active
- 2018-12-29 CN CN201811639560.6A patent/CN110858180B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103176752A (zh) * | 2012-07-02 | 2013-06-26 | 晶天电子(深圳)有限公司 | 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器 |
CN105190526A (zh) * | 2013-02-08 | 2015-12-23 | 微软技术许可有限责任公司 | 对用于非易失性存储设备的存储器重新编址 |
CN107346213A (zh) * | 2016-05-04 | 2017-11-14 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN107632777A (zh) * | 2016-07-18 | 2018-01-26 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN108255739A (zh) * | 2016-12-28 | 2018-07-06 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200065259A1 (en) | 2020-02-27 |
KR20200022179A (ko) | 2020-03-03 |
US10896134B2 (en) | 2021-01-19 |
CN110858180A (zh) | 2020-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110399311B (zh) | 存储器系统及该存储器系统的操作方法 | |
CN110858180B (zh) | 数据处理系统及其操作方法 | |
CN107562649B (zh) | 存储器系统及其操作方法 | |
CN109947358B (zh) | 存储器系统及其操作方法 | |
CN110765035B (zh) | 存储器系统及其操作方法 | |
US10388387B2 (en) | Memory system and operating method of memory system | |
CN110825318B (zh) | 控制器及其操作方法 | |
CN107450845B (zh) | 存储器系统及其操作方法 | |
CN109656837B (zh) | 存储器系统及其操作方法 | |
US10956320B2 (en) | Memory system and operating method thereof | |
CN108694138B (zh) | 控制器及其操作方法 | |
CN110321069B (zh) | 存储器系统及其操作方法 | |
CN110570894B (zh) | 存储器系统及该存储器系统的操作方法 | |
CN109032501B (zh) | 存储器系统及其操作方法 | |
CN108932203B (zh) | 数据处理系统和数据处理方法 | |
US20200042242A1 (en) | Controller and operation method thereof | |
US10747469B2 (en) | Memory system and operating method of the same | |
CN108733616B (zh) | 包括多处理器的控制器及其操作方法 | |
CN110765029B (zh) | 控制器及用于操作该控制器的方法 | |
CN109656470B (zh) | 存储器系统及其操作方法 | |
CN110825316A (zh) | 控制器及该控制器的操作方法 | |
CN110618786A (zh) | 存储器系统及存储器系统的操作方法 | |
CN110045914B (zh) | 存储器系统及其操作方法 | |
CN110795359B (zh) | 存储器系统及该存储器系统的操作方法 | |
CN109426448B (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 |