CN113360083A - 用于在存储器系统中控制映射数据的装置和方法 - Google Patents
用于在存储器系统中控制映射数据的装置和方法 Download PDFInfo
- Publication number
- CN113360083A CN113360083A CN202010965139.5A CN202010965139A CN113360083A CN 113360083 A CN113360083 A CN 113360083A CN 202010965139 A CN202010965139 A CN 202010965139A CN 113360083 A CN113360083 A CN 113360083A
- Authority
- CN
- China
- Prior art keywords
- data
- mapping
- memory
- mapping information
- controller
- 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
- 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/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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
-
- 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
- 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- 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/1041—Resource optimization
- G06F2212/1044—Space efficiency 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/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- 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
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- 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)
- Memory System (AREA)
Abstract
本文描述了用于在存储器系统中控制映射数据的装置和方法。一种存储器系统包括:存储器设备,包括多个非易失性存储器单元的;以及控制器,被配置为确定关于多个数据输入/输出请求的模式,控制映射数据以具有基于模式的数据结构,并且将映射数据中包括的映射信息编程到存储器设备中。对映射信息进行编程的定时可以基于映射数据的数据结构。
Description
相关申请的交叉引用
本专利申请要求于2020年3月5日提交的韩国专利申请号10-2020-0027666的权益,其全部公开内容通过引用并入本文。
技术领域
本文描述的一个或多个实施例涉及用于控制存储器系统中的信息的装置和方法。
背景技术
近来,用于计算环境的范例已转移到普适计算,这使得几乎可以随时随地访问计算机系统。结果,便携式电子设备(例如,移动电话、数码相机、笔记本计算机)的使用正在迅速增加。这样的便携式电子设备可以使用或包括具有至少一个存储器设备(例如,数据存储设备)的存储器系统。数据存储设备可以用作便携式电子设备的主存储设备或辅助存储设备。
与硬盘不同,使用非易失性半导体存储器的数据存储设备表现出改进的稳定性和耐久性、不具有机械驱动部件(例如,机械臂)并且以高数据访问速度和相对低的功耗来执行。这些类型的数据存储设备的示例包括但不限于通用串行总线(USB)存储器设备、具有各种接口的存储卡以及固态驱动器(SSD)。
发明内容
本公开的一个实施例可以提供数据处理系统和用于操作数据处理系统的方法,数据处理系统包括诸如存储器系统和主机的部件和资源,并且能够基于部件和资源的使用情况来动态地分配用于在部件之间进行数据通信的多个数据路径。
本文所述的各种实施例提供了用于以例如可以基于数据输入/输出操作的类型来改进存储器系统的数据输入/输出性能的方式来改变针对映射信息的数据结构的方法和装置。这可以产生用于执行数据输入/输出操作的资源的相应减少,并且可以改进操作效率。在一个实施例中,可以提供存储器系统,其响应于从外部设备输入的数据类型或请求来选择针对映射信息的数据结构,并且可以改变将映射信息编程到存储器设备(包括多个非易失性存储器单元)中的定时。
根据一个实施例,存储器系统可以减少诸如高速缓存存储器的资源的消耗,高速缓存存储器被分配并用于诸如地址转换和映射信息管理的内部进程。附加地或备选地,存储器系统可以针对与从外部设备输入的请求相对应的数据输入/输出操作,使用或重新分配更多的可用资源,以便改进存储器系统的数据输入/输出性能。
在一个实施例中,一种存储器系统可以包括:存储器设备,包括多个非易失性存储器单元;以及控制器,被配置为确定关于多个数据输入/输出请求的模式,控制映射数据以具有基于模式的数据结构,并且将映射数据中包括的映射信息编程到存储器设备中。对映射信息进行编程的定时可以基于映射数据的数据结构。
模式可以指示多个数据输入/输出请求对应于顺序数据或随机数据。
映射数据可包括第二映射信息,第二映射信息将物理地址与逻辑地址链接,其中第二映射信息与存储器设备中存储的用于将逻辑地址链接到物理地址的第一映射信息区分开。
数据结构可以包括以下之一:包括多个映射信息的第一结构,每个映射信息将单个物理地址与单个逻辑地址相关联;包括多个映射信息的第二结构,每个映射信息将单个物理地址与多个逻辑地址的起始地址和连续计数相关联,或者将单个逻辑地址与多个物理地址的起始地址和连续计数相关联;以及包括第一结构和第二结构的组合的第三结构。
存储器设备可以被配置为存储第一映射数据,第一映射数据包括逻辑到物理(L2P)表,L2P表包括多个第一映射信息。控制器可以被配置为将第一映射数据加载到存储器中,并且执行关于与多个数据输入/输出请求中的一个或多个数据输入/输出请求一起输入的逻辑地址的地址转换。控制器可以被配置为基于包括物理到逻辑(P2L)表的第二映射数据来更新存储器设备中存储的第一映射数据,P2L表包括多个第二映射信息。
控制器可以被配置为:在存储器中分配具有设定大小的区域以存储映射数据,并且在该区域被映射信息完全填充之后将映射信息编程到存储器设备中。
控制器可以被配置为:基于模式来改变数据结构,并且在改变数据结构之后,将改变数据结构之前的映射数据中包括的映射信息编程到存储器设备中。
控制器可以被配置为在将映射信息编程在存储器设备中之后,确定与多个数据输入/输出请求相对应的模式。
在另一实施例中,一种用于操作存储器系统的方法可以包括:确定关于多个数据输入/输出请求的模式;控制映射数据以具有基于模式的数据结构;以及将映射数据中包括的映射信息编程到包括多个非易失性存储器单元的存储器设备中,其中对映射信息进行编程的定时基于映射数据的数据结构。
模式可以指示多个数据输入/输出请求对应于顺序数据或随机数据。
映射数据可包括第二映射信息,第二映射信息将物理地址与逻辑地址链接,其中第二映射信息与存储器设备中存储的用于将逻辑地址链接到物理地址的第一映射信息区分开。
数据结构可以包括以下之一:包括多个映射信息的第一结构,每个映射信息将单个物理地址与单个逻辑地址相关联;包括多个映射信息的第二结构,每个映射信息将单个物理地址与多个逻辑地址的起始地址和连续计数相关联,或者将单个逻辑地址与多个物理地址的起始地址和连续计数相关联;以及包括第一结构和第二结构的组合的第三结构。
该方法可以进一步包括:存储第一映射数据,第一映射数据包括逻辑到物理(L2P)表,L2P表包括多个第一映射信息;将第一映射数据加载到存储器中,并且执行关于与多个数据输入/输出请求中的一个或多个数据输入/输出请求一起输入的逻辑地址的地址转换;以及基于包括物理到逻辑(P2L)表的第二映射数据来更新存储器设备中存储的第一映射数据,P2L表包括多个第二映射信息。
该方法可以进一步包括:在存储器中分配具有设定大小的区域以用于存储映射数据;以及在该区域被映射信息完全填充之后,将映射信息编程到存储器设备中。
该方法可以进一步包括基于模式来改变数据结构;以及在改变数据结构之后,将改变数据结构之前的映射数据中包括的映射信息编程到存储器设备中。
该方法可以进一步包括在将映射信息编程在存储器设备中之后,确定关于多个数据输入/输出请求的模式。
在另一实施例中,一种控制器可以控制用于将不同地址彼此关联的第一映射信息和第二映射信息,以将使用不同地址系统的多个设备接合。控制器可以被配置为:确定关于多个数据输入/输出请求的模式;基于模式来选择映射数据的数据结构,数据结构用于存储与后续写入操作相对应的第二映射信息;基于第二映射信息来更新第一映射信息,其中第二映射信息对应于已执行的另一写入操作;以及将第二映射信息存储在具有选择的数据结构的第二映射数据中。
第一映射信息将逻辑地址与物理地址相关联,并且第二映射信息将物理地址与逻辑地址相关联。
数据结构可以包括以下之一:包括多个映射信息的第一结构,每个映射信息将单个物理地址与单个逻辑地址相关联;包括多个映射信息的第二结构,每个映射信息将单个物理地址与多个逻辑地址的起始地址和连续计数相关联,或者将单个逻辑地址与多个物理地址的起始地址和连续计数相关联。
当不再将第二映射信息添加到第二映射数据中时,可以更新第一映射信息。
在另一实施例中,一种用于管理信息存储的装置可以包括:存储区域,被配置为存储映射信息;以及处理器,被配置为执行指令以便:确定与数据输入/输出请求相对应的模式;基于模式将映射信息的第一数据结构改变为第二数据结构;以及基于第二数据结构的变化,更新存储区域中的映射信息,其中模式是随机数据或顺序数据中的一个。
附图说明
本文中的描述参考了附图,其中贯穿附图,相同的附图标记指代相同的部分。
图1图示了根据一个实施例的存储器系统。
图2图示了根据一个实施例的数据处理系统。
图3图示了根据一个实施例的存储器系统。
图4A至图4C图示了根据一个或多个实施例的映射数据的数据结构。
图5图示了根据一个实施例的针对易失性存储器中的映射数据分配的空间改变。
图6图示了根据一个实施例的由存储器系统执行的数据输入/输出操作。
图7图示了根据一个实施例的用于操作存储器系统的方法的第一示例。
图8图示了根据另一实施例的用于操作存储器系统的方法。
图9图示了根据另一实施例的用于操作存储器系统的方法。
图10图示了根据另一实施例的用于操作存储器系统的方法。
在本公开中,对“一个实施例”、“示例实施例”、“实施例”、“另一实施例”、“一些实施例”、“各种实施例”、“其他实施例”、“备选实施例”等中包括的各种特征(例如,元件、结构、模块、部件、步骤、操作、特性等)的参考旨在表示任何这样的特征被包括在本公开的一个或多个实施例中,但是可以或可以不一定组合在相同的实施例中。
具体实施方式
下面参考附图来描述本公开的各种实施例。然而,本公开的元件和特征可以被不同地配置或布置以形成可以是任何所公开的实施例的变型的其他实施例。
在本公开中,术语“包括”、“包括……的”、“包含”和“包含……的”是开放式的。如在所附权利要求书中所使用的,这些术语指定存在所陈述的元件,并且不排除存在或添加一个或多个其他元件。权利要求中的术语并不排除装置包括附加部件(例如,接口单元、电路等)。
在本公开中,各种单元、电路或其他部件可以被描述或要求为“被配置为”执行一个或多个任务。在这样的上下文中,“被配置为”用于通过指示块/单元/电路/部件包括在操作期间执行一个或多个任务的结构(例如,电路)来表示结构。这样,块/单元/电路/部件可以被称为即使指定的块/单元/电路/部件当前不操作(例如,既未导通也未被激活)也被配置为执行任务。与“被配置为”语言一起使用的块/单元/电路/部件包括硬件(例如,电路、存储可执行以实现操作的程序指令的存储器等)。记载了块/单元/电路/部件“被配置为”执行一个或多个任务明确地旨在解释模块/单元/电路/部件。另外,“被配置为”可以包括由软件和/或固件(例如,执行软件的FPGA或通用处理器)操纵而以能够执行所述(多个)任务的方式进行操作的通用结构(例如,通用电路)。“被配置为”还可包括使得制造过程(例如,半导体制造设施)适配用于制造适于实现或执行一个或多个任务的设备(例如,集成电路)。
如本公开中所使用的,术语“电路”指代以下所有:(a)纯硬件电路实现方式(诸如仅在模拟和/或数字电路中的实现方式);和(b)电路与软件(和/或固件)的组合,诸如(根据需要):(i)(多个)处理器的组合或(ii)(多个)处理器/软件的各部分(包括(多个)数字信号处理器、软件和共同工作以使得诸如移动电话或服务器的装置来执行各种功能的(多个)存储器);以及(c)即使软件或固件实际上不存在,也需要软件或固件才能操作的电路(诸如(多个)微处理器或(多个)微处理器的一部分)。“电路”的定义适用于本申请(包括任何权利要求)中该术语的所有使用。作为另一示例,如在本申请中使用的,术语“电路”还涵盖仅处理器(或多个处理器)或处理器的一部分及其(或它们)随附软件和/或固件的实现。术语“电路”还涵盖例如根据需要适用于特定权利要求要素的存储设备的集成电路。
如本文中所使用的,这些术语“第一”、“第二”、“第三”等被用作它们之前的名词的标签,并不暗示任何类型(例如,空间、时间、逻辑等)的排序。术语“第一”和“第二”并不一定意味着必须在第二值之前写入第一值。此外,尽管本文中可以使用这些术语来标识各种元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与具有相同或相似名称的另一元件区分开。例如,可以将第一电路与第二电路区分开。
此外,术语“基于”用于描述影响确定的一个或多个因素。该术语不排除可能影响确定的其他因素。即,确定可以仅基于那些因素或者至少部分地基于那些因素。考虑短语“基于B确定A”。虽然在这种情况下,B是影响确定A的因素,但这样的短语不会排除A的确定也基于C。在其他情况下,可以仅基于B来确定A。
现在将参考附图来描述本公开的实施例,其中相同的附图标记表示相同的元件。
图1图示了存储器系统110的一个实施例,存储器系统110可以包括存储器设备150和控制器130。存储器系统110中的存储器设备150和控制器130可以被认为是在物理上彼此分离的部件或元件。存储器设备150和控制器130可以经由至少一个数据路径进行连接。例如,数据路径可以包括通道和/或通路。根据一个实施例,存储器设备150和控制器130可以是功能上划分的部件或元件。此外,根据一个实施例,存储器设备150和控制器130可以利用单个芯片或多个芯片来实现。
存储器设备150可以包括多个存储器块60。存储器块60可以理解为其中通过单个擦除操作将数据一起去除的非易失性存储器单元组。存储器块60可以包括多个页。根据一个实施例,每个页可以被理解为在单个编程操作期间将数据一起存储或在单个读取操作期间一起输出数据的非易失性存储器单元组。
存储器设备150可以包括多个存储器平面或多个存储器管芯。根据一个实施例,存储器平面可以被视为逻辑或物理分区,包括至少一个存储器块60、能够控制包括多个非易失性存储器单元的阵列的驱动电路、以及可以临时存储输入到非易失性存储器单元或从非易失性存储器单元输出的数据的缓冲器。
另外,根据一个实施例,存储器管芯可以包括至少一个存储器平面。存储器管芯可以理解为在物理上可区分的衬底上实现的部件集合。每个存储器管芯可以通过数据路径连接到控制器130。每个存储器管芯可以包括用于与控制器130交换数据和信号的接口。
根据一个实施例,存储器设备150可以包括至少一个存储器块60、至少一个存储器平面或至少一个存储器管芯。图1中所示的存储器设备150的内部配置可以根据存储器系统110的性能而不同。本公开的实施例不限于图1所示的内部配置。
参考图1,存储器设备150可以包括能够将至少一个类型的电压供应到存储器块60中的电压供应电路70。在一个实施例中,电压供应电路70可以将读取电压Vrd、编程电压Vprog、通过电压Vpass和/或擦除电压Vers供应到存储器块60中包括的非易失性存储器单元中。例如,在用于读取存储器块60中包括的非易失性存储器单元中存储的数据的读取操作期间,电压供应电路70可以将读取电压Vrd供应到选择的非易失性存储器单元中。在用于将数据存储在存储器块60中包括的非易失性存储器单元中的编程操作期间,电压供应电路70可以将编程电压Vprog供应到选择的非易失性存储器单元中。另外,在对选择的非易失性存储器单元执行的读取操作或编程操作期间,电压供应电路70可以将通过电压Vpass供应到未选择的非易失性存储器单元中。在用于擦除存储器块60中包括的非易失性存储器单元中存储的数据的擦除操作期间,电压供应电路70可以将擦除电压Vers供应到存储器块60中。
为了将由外部设备(例如,参见图2至图3中的主机102)请求的数据存储在存储器设备150(例如,包括非易失性存储器单元的存储空间)中,存储器系统110可以在主机102所使用的文件系统与包括非易失性存储器单元的存储空间的物理位置之间执行地址转换。例如,根据主机102所使用的文件系统确定的数据地址可以被称为逻辑地址或逻辑块地址,而存储空间中存储数据的物理位置的地址可以被称为物理地址或物理块地址。当主机102将逻辑地址与读取请求一起传送到存储器系统110时,存储器系统110搜索与逻辑地址相关联的物理地址、读取由物理地址识别的位置中存储的数据并且将所读取的数据输出到主机102。在该过程期间,地址转换可以在存储器系统110中执行,以搜索与从主机102输入的逻辑地址相关联的物理地址。
控制器130可以响应于从外部设备输入的请求来执行数据输入/输出操作。例如,当控制器130响应于从外部设备输入的读取请求而执行读取操作时,存储器设备150中包括的多个非易失性存储器单元中存储的数据被传送到控制器130。针对读取操作,输入/输出控制器192可以执行对从外部设备输入的逻辑地址的地址转换来获得物理地址,然后通过收发器198将与物理地址相对应的读取命令传输到存储器设备150。收发器198可以将读取命令传输到存储器设备150,并且接收从存储器设备150输出的与物理地址相对应的数据。收发器198可以将从存储器设备150传送的数据存储在存储器144中。输入/输出控制器192可以响应于读取请求而将存储器144中存储的数据输出到外部设备。
另外,输入/输出控制器192可以通过收发器198将连同写入请求从外部设备输入的用户数据传输到存储器设备150。在将数据存储在存储器设备150中之后,输入/输出控制器192可以将与写入请求相对应的响应传输到外部设备。I/O控制器192可以对将指示存储器设备150中用户数据所存储的位置的物理地址与连同写入请求输入的逻辑地址相关联的映射数据进行更新。
当输入/输出控制器192执行数据输入/输出操作时,模式检查器194可以确定关于从外部设备输入的读/写入请求和多个输入/输出数据的操作模式。例如,模式检查器194可以确定由外部设备传输的多个读取请求是与顺序数据还是随机数据相关联。当模式检查器194确定关于存储器系统110中执行的操作的模式时,输入/输出控制器192可以基于该模式来调度与外部设备所请求的多个请求相对应的操作。例如,当输入针对顺序数据和随机数据的混合请求时,输入/输出控制器192可以基于由模式检查器194确定的模式来对每个混合请求进行分类或布置,以调整或改变与混合请求相对应地执行的操作序列。在一个实施例中,当针对顺序数据和随机数据的多个请求被混合时,与关于随机数据的多个请求中的其他请求相对应的操作相比,输入/输出控制器192可以更早地执行与关于顺序数据的多个请求中的一些请求相对应的操作,以改进存储器系统110的数据输入/输出性能。
映射数据控制器196可以基于与由模式检查器194确定的多个请求相关的模式来确定控制器130使用的映射数据的数据结构。映射数据可以包括多个映射信息,每个映射信息可以将逻辑地址与物理地址相关联,反之亦然,多个映射信息用作针对由控制器130执行的数据输入/输出操作的操作信息。例如,I/O控制器192可以将映射信息用于地址转换,并且与写入请求相对应的数据被编程在存储器设备150中之后,可以更新或生成映射信息。根据一个实施例,映射数据可以被分类为用于将逻辑地址与物理地址相关联的第一映射数据(例如,逻辑到物理(L2P)表)以及用于将物理地址与逻辑地址相关联的第二映射数据(例如,物理到逻辑(P2L)表)。映射数据控制器196可以确定或改变在存储器144中加载或生成的第一映射数据或第二映射数据的数据结构。
根据一个实施例,在存储器设备150中存储的第一映射数据或第二映射数据中包括的映射信息可以被存储,以将单个逻辑地址与单个物理地址相关联。多个映射信息可以构成单个映射段。映射段可以被视为构成存储器设备150中存储的映射数据的单位。在控制器130从存储器设备150加载第一映射数据或第二映射数据的至少某些部分并将其存储在存储器144中之后,控制器130可以将所加载的信息用于数据输入/输出操作。当在存储器144中存在针对第一映射数据和第二映射数据临时分配的足够空间时,改变第一映射数据或第二映射数据的数据结构或形状的进程可能导致不必要的开销。然而,存储器系统110中的存储器144的存储容量可能是受限的。当被分配用于临时存储包括多个映射信息的第一映射数据和第二映射数据的空间减小时,存储器144中的更多空间可以被分配并用于其他目的(诸如数据I/O操作)。
根据一个实施例,包括用于将逻辑地址与物理地址相关联的多个第一映射信息(例如,逻辑到物理(L2P)信息)的第一映射数据(例如,L2P表)可以存储在存储器设备150中。但是,控制器130可以生成包括通过多个数据输入/输出操作生成的用于将物理地址与逻辑地址相关联的多个第二映射信息(例如,物理到逻辑(P2L)信息)的第二映射数据(P2L表)。
例如,在控制器130将新的用户数据编程到存储器设备150之后,控制器130可以生成用于将物理地址(指示新的用户数据被编程的位置)链接到从主机102输入的并且与新的用户数据相对应的逻辑地址。存储器144中的第二映射信息P2L可以提供关于存储器设备150中存储的数据的最近位置的指示。在一种情况下,可以假设第一映射信息L2P指示特定逻辑地址(例如,'0A0')和第一物理地址(例如,'123')在存储器144中加载的第一映射数据(L2P表)中彼此相关联。
在控制器130执行关于与相同逻辑地址(例如,“0A0”)相对应的新数据的编程操作之后,控制器130可以在存储器144中生成第二映射信息(P2L)。第二映射信息(P2L)可以将逻辑地址(例如,“0A0”)与第二物理地址(例如,“876”)相关联,第二物理地址指示通过编程操作存储新数据的位置。在这种情况下,控制器130可以识别出第一映射数据(L2P表)中存储的第一映射信息L2P是旧映射信息,并且第二映射信息P2L是最新(即,最近)映射信息。控制器130可以基于第二映射信息P2L来更新存储器设备150中存储的第一映射数据(L2P表)。
如上所述,控制器130可以周期性地、间歇地或根据需要来执行映射刷新(例如,用于更新存储器设备150中存储的第一映射数据(L2P表)的操作)。在执行映射刷新之后,可以删除或销毁存储器144中包括第二映射信息P2L的第二映射数据P2L表。当在执行映射刷新之后执行用于将数据编程在存储器设备150中的操作时,控制器130可以生成新的第二映射数据(P2L表)。
根据实施例,可以以不同方式来确定用于执行映射刷新的定时。例如,当控制器130执行10个编程操作时,控制器130可以确定应当执行映射刷新。例如,当分配给第二映射数据(P2L表)的空间已满并且不能在该空间中添加新的第二映射信息P2L时,控制器130可以确定应执行映射刷新。例如,根据实施例,控制器130可以确定每预定时段(例如,1小时、10分钟、1分钟等)执行映射刷新。
例如当存储器系统110具有由外部设备(诸如主机102)不会采用的独立地址系统(例如,可与逻辑地址区分开的物理地址)时,映射刷新是可以在存储器系统110中执行的操作。外部设备不必在存储器系统110处请求映射刷新。存储器系统110独立执行映射刷新,使得在映射刷新期间可以延迟数据输入/输出操作。从外部设备的角度来看,可以将存储器系统110中的映射刷新识别为开销。因此,当映射刷新太频繁地发生时,数据输入/输出性能可能劣化。
另一方面,如果长时间未执行映射刷新,则在存储器设备150中存储的第一映射数据(L2P表)中,无效映射信息的量(不再用于地址转换)可能增加。在这种情况下,存储器系统110的操作安全性可能劣化,并且控制器130应当检查用于执行与读取请求相关联的地址转换的映射数据的映射信息的量或频率可能增加。当第一映射数据(L2P表)不包括最近映射信息时,控制器130可以参考存储器144中存储的第二映射数据(P2L表)来进行地址转换。另外,如果长时间未执行映射刷新,则存储器144中存储的第二映射数据(P2L表)的量可能增加,并且存储器144的使用效率可能劣化。
参考图1,映射数据控制器196可以基于关于从外部设备输入的多个请求的模式来确定存储器144中存储的第二映射数据(P2L表)的数据结构。控制器130可以针对第二映射数据(P2L表)分配存储器144的设定大小的空间。当映射数据控制器196改变第二映射数据(P2L表)的数据结构时,针对第二映射数据(P2L表)分配的空间被多个映射信息填充的时间点可能不同。当确定在针对第二映射数据(P2L表)的空间已满时执行映射刷新时,可以基于第二映射数据(P2L表)的数据结构来更改执行映射刷新的时间。
例如,与当多个请求与随机数据有关时相比,当从外部设备输入的多个请求与顺序数据有关时,映射数据控制器196可以改变第二映射数据(P2L表)的数据结构,使得可以压缩第二映射数据。在多个请求与顺序数据相关的情况下,与当多个请求与随机数据相关时相比,刷新映射(例如,执行映射刷新)的定时可以被延迟。此外,控制器130可以在执行与顺序数据有关的多个请求相对应的数据输入/输出操作上花费更多的可用资源。通过该过程,可以改进存储器系统110的数据输入/输出性能。
根据实施例,图1中所示的输入/输出控制器192、映射数据控制器196和模式检查器194可以包括被设计为执行其自身功能的单独电路,或者可以在单个芯片或组合电路中实现。
图2和图3图示了根据一个或多个实施例的可以由存储器系统110执行的一些操作。
参考图2,数据处理系统100可以包括与诸如存储器系统110之类的存储器系统接合或互锁的主机102。主机102可以包括便携式电子设备(例如,移动电话、MP3播放器、膝上型计算机等)或非便携式电子设备(例如,台式计算机、游戏机、电视、投影仪等)。
主机102还可以包括可以控制在主机102中执行的功能和操作的至少一个操作系统(OS)。OS可以提供与存储器系统110可操作地接合的主机102与意图将数据存储在存储器系统110中的用户之间的互操作性。OS可以支持与用户请求相对应的功能和操作。作为示例而非限制,可以根据主机102的移动性而将OS分类为通用操作系统和移动操作系统。通用操作系统可以根据系统要求或用户环境而划分为个人操作系统和企业操作系统。与个人操作系统相比,企业操作系统可以专用于保护和支持高性能计算。
移动操作系统可以服从用于移动性的支持服务或功能(例如,省电功能)。主机102可以包括多个操作系统。主机102可以执行与用户请求相对应的、与存储器系统110互锁的多个操作系统。主机102可以将与用户的请求相对应的多个命令传输到存储器系统110中,从而执行与存储器系统110内的命令相对应的操作。
存储器系统110中的控制器130可以响应于从主机102输入的请求或命令来控制存储器设备150。例如,控制器130可以执行读取操作来针对主机102提供从存储器设备150读取的数据,并且可以执行写入操作(或编程操作)来将从主机102输入的数据存储在存储器设备150中。为了执行数据输入/输出(I/O)操作,控制器130可以控制和管理用于数据读取、数据编程、数据擦除等的内部操作。
根据实施例,控制器130可以包括主机接口132、处理器134、纠错电路138、电源管理单元(PMU)140、存储器接口142和存储器144。如图2中所示的控制器130中包括的部件可以根据各实施例中关于存储器系统110的结构、功能、操作性能等而变化。例如,根据主机接口的协议,可以使用可以与主机102电耦合的各种类型的存储设备中的任一个来实现存储器系统110。合适的存储设备的非限制性示例包括固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、小尺寸MMC(RS-MMC)、微型MMC、安全数字(SD)卡、小型SD卡、微型SD卡、通用串行总线(USB)存储设备、通用闪存(UFS)设备、紧凑型闪存(CF)卡、智能媒体(SM)卡、记忆棒等。可以基于存储器系统110的实现来添加或省略控制器130中的部件。
主机102和存储器系统110可以包括用于根据一个或多个预定协议来传输和接收信号、数据等的控制器或接口。例如,存储器系统110中的主机接口132可以包括能够将信号、数据等传输到主机102或者接收从主机102输入的信号、数据等的装置。
控制器130中包括的主机接口132可以接收从主机102输入的信号、命令(或请求)和/或数据。例如,主机102和存储器系统110可以使用预定协议以在彼此之间传输和接收数据。主机102和存储器系统110支持用于传输和接收数据的协议或接口的示例包括通用串行总线(USB)、多媒体卡(MMC)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强型小磁盘接口(ESDI)、集成驱动电子设备(IDE)、外围部件互连快速(PCIE)、串行连接的SCSI(SAS)、串行高级技术附件(SATA)、移动工业处理器接口(MIPI)等。根据一个实施例,主机接口132是用于与主机102交换数据的一类型的层,并且由被称为主机接口层(HIL)的固件来实现或驱动。
集成驱动电子设备(IDE)或高级技术附件(ATA)可以用作传输和接收数据的接口之一,并且例如可以使用包括并行连接的40个电线的电缆来支持主机102和存储器系统110之间的数据传输和接收。当多个存储器系统110连接到单个主机102时,可以通过使用多个存储器系统110所连接的位置或DIP开关而将多个存储器系统110划分为主控和从属。被设置为主控的存储器系统110可以用作主存储器设备。IDE(ATA)可以包括例如快速ATA、ATAPI和增强型IDE(EIDE)。
串行高级技术附件(SATA)是与由集成驱动电子(IDE)设备使用的并行数据通信接口的各种ATA标准兼容的一类型的串行数据通信接口。IDE接口中的40个电线可以减少为SATA接口中的6个电线。例如,针对IDE的40个并行信号可以转换为针对SATA的6个串行信号,以在彼此之间传输。SATA由于其更快的数据传输和接收速率以及其在用于数据传输和接收的主机102中较少的资源消耗而被广泛使用。SATA可以支持将多达30个外部设备连接到主机102中包括的单个收发器。另外,SATA可以支持热插拔,即使主机102与另一设备之间的数据通信正在被执行时,热插拔也允许将外部设备与主机102附接或分离。因此,即使主机102通电,也可以将存储器系统110作为附加设备(例如,由通用串行总线(USB)支持的设备)来连接或断开连接。例如,在具有eSATA端口的主机102中,可以像外部硬盘一样自由地拆卸存储器系统110。
小型计算机系统接口(SCSI)是一种串行数据通信接口,用于在计算机、服务器和/或其他外围设备之间进行连接。与诸如IDE和SATA的其他接口相比,SCSI可以提供较高的传输速度。在SCSI中,主机102和至少一个外围设备(例如,存储器系统110)串联连接,但是可以通过并行数据通信来执行主机102和每个外围设备之间的数据传输和接收。在SCSI中,很容易将诸如存储器系统110的设备与主机102连接或断开连接。SCSI可以支持将15个其他设备连接到主机102中包括的单个收发器。
串行连接的SCSI(SAS)可以理解为SCSI的串行数据通信版本。在SAS中,不仅主机102和多个外围设备被串联连接,而且主机102和每个外围设备之间的数据传输和接收可以以串行数据通信方案来执行。SAS可以支持通过串行电缆而不是并行电缆在主机102和外围设备之间的连接,以使用SAS容易地管理设备并增强或改进操作可靠性和通信性能。SAS可以支持将八个外部设备连接到主机102中包括的单个收发器。
非易失性存储器快速(NVMe)是至少基于外围部件互连快速(PCIe)的一种接口,该接口被设计为增加配备有非易失性存储器系统110的主机102、服务器、计算设备等的性能和设计灵活性。PCIe可以使用插槽或特定电缆来将主机102(例如,计算设备)和存储器系统110(例如,外围设备)连接。例如,PCIe可以使用多个引脚(例如,18个引脚、32个引脚、49个引脚、82个引脚等)和至少一个电线(例如,x1、x4、x8、x16等)来实现每秒数百MB(例如,250MB/s、500MB/s、984.6250MB/s、1969MB/s等)的高速数据通信。根据一个实施例,PCIe方案可以实现每秒数十到数百G比特的带宽。使用NVMe的系统可以充分利用以高于硬盘的速度进行操作的非易失性存储器系统110(诸如SSD)的操作速度。
根据一个实施例,主机102和存储器系统110可以通过通用串行总线(USB)来连接。通用串行总线(USB)是一种可扩展的、可热插拔的串行接口,可以在主机102和外围设备(诸如键盘、鼠标、操纵杆、打印机、扫描仪、存储设备、调制解调器、摄像机等)之间提供具有成本效益的标准连接。诸如存储器系统110的多个外围设备可以耦合到主机102中包括的单个收发器。
参考图2,纠错电路138可以纠正待在存储器设备150中处理(例如,从其输出)的数据的错误位,纠错电路138可以包括纠错码(ECC)编码器和ECC解码器。ECC编码器可以对待在存储器设备150中编程的数据执行纠错编码,以生成被添加了奇偶校验位的编码数据并且将编码数据存储在存储器设备150中。当控制器130读取存储器设备150中存储的数据时,ECC解码器可以检测并纠正从存储器设备150读取的数据中包含的错误。例如,在对从存储器设备150读取的数据执行纠错解码之后,纠错电路138可以确定纠错解码是否已成功并输出指示信号(例如,纠正成功信号或纠正失败信号)。纠错电路138可以使用在ECC编码期间生成的奇偶校验比特来纠正读取数据的错误位。当错误位的数目大于或等于可纠正错误位的阈值数目时,纠错电路138可以不纠正错误位,而是可以输出指示纠正错误位失败的纠错失败信号。
根据一个实施例,纠错电路138可以基于诸如低密度奇偶校验(LDPC)码、Bose-Chaudhuri-Hocquenghem(BCH)码、turbo码、Reed-Solomon(RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、块编码调制(BCM)等的编码调制来执行纠错操作。纠错电路138可以包括用于基于上述代码中的至少一个来执行纠错操作的所有电路、模块、系统和/或设备。
例如,ECC解码器可以对从存储器设备150传输的数据执行硬判定解码或软判定解码。硬判定解码可以被理解为广义上被分类用于纠错的两种方法之一。硬判定解码可以包括通过从存储器设备150中的非易失性存储器单元读取数字数据“0”或“1”来纠正错误的操作。由于硬判定解码处理二进制逻辑信号,电路/算法设计或配置与软判定解码相比,可能更简单并且处理速度可能更快。
软判定解码可以通过两个或更多个量化值(例如,多位数据、近似值、模拟值等)来量化存储器设备150中的非易失性存储器单元的阈值电压,以便基于两个或更多个量化值来纠正错误。控制器130可以从存储器设备150中的多个非易失性存储器单元接收两个或更多个字母或量化值,然后基于通过将量化值表征为诸如条件概率与似然值的信息的组合而生成的信息来执行解码。
根据一个实施例,ECC解码器可以在针对软判定解码而设计的方法中使用低密度奇偶校验和生成器矩阵(LDPC-GM)码。低密度奇偶校验(LDPC)码使用一种算法,该算法可以根据可靠性而从存储器设备150读取若干位的数据值而不是像硬判定解码那样简单地读取数据1或0,并且通过消息交换来迭代地重复,以改进值的可靠性。然后,这些值被最终确定为数据1或0。例如,使用LDPC码的解码算法可以理解为概率解码。从非易失性存储器单元输出的值被编码为0或1的硬判定解码。与硬判定解码相比,软判定解码可以基于随机信息来确定非易失性存储器单元中存储的值。关于位翻转(可以认为是可能在存储器设备150中发生的错误),软判定解码可以提供纠正错误和恢复数据的改进的可能性,以及提供经纠正的数据的可靠性和稳定性。LDPC-GM码可以具有其中内部LDGM码可以与高速LDPC码级联的方案。
根据一个实施例,ECC解码器可以使用例如低密度奇偶校验卷积码(LDPC-CC)来进行软判定解码。LDPC-CC码可以具有基于可变块长度和移位寄存器使用线性时间编码和流水线解码的方案。
根据一个实施例,ECC解码器可以使用例如对数似然比Turbo码(LLR-TC)来进行软判定解码。对数似然比(LLR)可以被计算为采样值与理想值之间的距离的非线性函数。另外,Turbo码(TC)可以包括二维或三维的简单码(例如,汉明码),并且在行方向和列方向上重复解码来改进值的可靠性。
功率管理单元(PMU)140可以控制在控制器130中提供的电功率。PMU 140可以监测提供给存储器系统110的电功率(例如,提供给控制器130的电压)并且将电功率提供给控制器130中包括的部件。PMU 140不仅可以检测通电或断电,还可以生成触发信号,以使得存储器系统110能够在向存储器系统110提供的电功率不稳定时紧急备份当前状态。根据一个实施例,PMU 140可以包括能够累积可以在紧急情况下使用的电功率的设备或部件。
存储器接口142可以用作用于处理在控制器130和存储器设备150之间传送的命令和数据的接口,以允许控制器130响应于从主机102输入的命令或请求来控制存储器设备150。在存储器设备150是闪存的情况下,存储器接口142可以生成用于存储器设备150的控制信号,并且可以在处理器134的控制下处理输入到存储器设备150或从存储器设备150输出的数据。例如,当存储器设备150包括NAND闪存时,存储器接口142包括NAND闪存控制器(NFC)。存储器接口142可以提供用于处理控制器130与存储器设备150之间的命令和数据的接口。根据一个实施例,存储器接口142可以通过被称为闪存接口层(FIL)的固件来实现或驱动,以与存储器设备150交换数据。
根据一个实施例,存储器接口142可以支持开放式NAND闪存接口(ONFi)、切换模式等,以用于利用存储器设备150进行数据输入/输出。例如,ONFi可以使用包括能够以8位或16位数据为单位支持双向传输和接收的至少一个信号线的数据路径(例如,通道、通路等)。控制器130与存储器设备150之间的数据通信可以通过关于异步单数据速率(SDR)、同步双倍数据速率(DDR)和切换双倍数据速率(DDR)的至少一个接口来实现。
存储器144可以是存储器系统110或控制器130中的工作存储器类型,同时存储针对存储器系统110和控制器130中的操作而发生或传递的临时或事务数据。例如,存储器144可以在将读取数据输出到主机102之前,响应于来自主机102的请求而临时存储从存储器设备150输出的读取数据。另外,控制器130可以在将写入数据编程在存储器设备150中之前,将从主机102输入的写入数据临时存储在存储器144中。当控制器130控制存储器设备150的诸如数据读取、数据写入、数据编程、数据擦除等操作时,在存储器系统110的控制器130和存储器设备150之间传输或生成的数据可以存储在存储器144中。
除了读取数据或写入数据,存储器144还可以存储用于在主机102和存储器设备150之间输入或输出数据的信息(例如,映射数据、读取请求、编程请求等)。根据一个实施例,存储器144可以包括命令队列、程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。控制器130可以在存储器144中针对建立为执行数据输入/输出操作的部件分配一些存储空间。例如,在存储器144中建立的写入缓冲器可以用于临时存储经受编程操作的目标数据。
在一个实施例中,存储器144可以使用易失性存储器来实现。例如,存储器144可以使用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或两者来实现。尽管图2图示了例如设置在控制器130内的存储器144,但是实施例不限于此。存储器144可以位于控制器130内部或外部。例如,存储器144可以由具有在存储器144和控制器130之间传送数据和/或信号的存储器接口的外部易失性存储器来体现。
处理器134可以控制存储器系统110的整体操作。例如,处理器134可以响应于从主机102输入的写入请求或读取请求来控制存储器设备150的编程操作或读取操作。根据一个实施例,处理器134可以执行固件来控制存储器系统110中的编程操作或读取操作。在本文中,固件可以被称为闪存转换层(FTL)。稍后参考图3来详细描述FTL的示例。根据一个实施例,处理器134可以使用微处理器或中央处理单元(CPU)来实现。
根据一个实施例,存储器系统110可以使用至少一个多核处理器来实现。多核处理器是其中集成了被视为不同处理区域的两个或更多核的一种电路或芯片。例如,当多核处理器中的多个核独立地驱动或执行多个闪存转换层(FTL)时,可以改进存储器系统110的数据输入/输出速度(或性能)。根据一个实施例,可以通过多核处理器中的不同核来独立地执行存储器系统110中的数据输入/输出(I/O)操作。
控制器130中的处理器134可以执行与从主机102输入的请求或命令相对应的操作。此外,存储器系统110可以独立于从外部设备(诸如主机102)输入的命令或请求。在一种情况下,由控制器130响应于从主机102输入的请求或命令而执行的操作可以被认为是前台操作,而由控制器130独立地执行的操作(例如,不论从主机102输入的请求或命令如何)可以被认为是后台操作。控制器130可以执行前台或后台操作来关于存储器设备150中的数据进行读取、写入或编程、擦除等。另外,与从主机102传输的设定命令(设定参数命令或设定特征命令)相对应的参数设置操作可以被认为是前台操作。同时,作为在没有从主机102传输的命令的情况下的后台操作,控制器130可以相对于存储器设备150中包括的多个存储器块152、154、156执行垃圾收集(GC)、损耗均衡(WL)、用于标识和处理坏块的坏块管理等。
根据一个实施例,可以执行与前台操作和后台操作两者基本相似的操作。例如,当存储器系统110响应于从主机102输入的请求或命令而执行垃圾收集时(例如,手动GC),垃圾收集可以被认为是前台操作。当存储器系统110独立于主机102执行垃圾收集时(例如,自动GC),垃圾收集可以被认为是后台操作。
当存储器设备150包括具有非易失性存储器单元的多个管芯(或多个芯片)时,控制器130可以被配置为执行关于从主机102输入的多个请求或命令的并行处理,以改进存储器系统110的性能。例如,所传输的请求或命令可以被同时划分和处理到存储器设备150中的多个管芯或多个芯片中。控制器130中的存储器接口142可以通过至少一个通道和至少一个通路而连接到存储器设备150中的多个管芯或芯片。当控制器130响应于与包括非易失性存储器单元的多个页相关联的请求或命令而通过每个通道或每个通路在多个管芯中分发和存储数据时,可以同时执行或并行执行与请求或命令相对应的多个操作。这样的处理方法或方案可以被认为是交错方法。由于存储器系统110利用交错方法进行操作的数据输入/输出速度可以比存储器系统110未利用交错方法的数据输入/输出速度快,可以改进存储器系统110的数据I/O性能。
作为示例而非限制,控制器130可以识别与存储器设备150中包括的多个存储器管芯相关联的多个通道(或通路)有关的状态。控制器130可以将每个通道或每个通路的状态确定为例如繁忙状态、就绪状态、活动状态、空闲状态、正常状态和/或异常状态之一。控制器通过哪个通道或通路来传递指令(和/或数据)的确定可以与物理块地址(例如,指令(和/或数据)被传递到哪个(哪些)管芯)相关联。控制器130可以参考从存储器设备150传递的描述符。描述符可以包括描述关于存储器设备150的某些内容(是具有设定格式或结构的数据)的参数的块或页。例如,描述符可以包括设备描述符、配置描述符、单位描述符等。控制器130可以参考或使用描述符来确定经由哪个或哪些通道或通路来交换指令或数据。
参考图2,存储器系统110中的存储器设备150可以包括多个存储器块152、154、156。多个存储器块152、154、156中的每一个包括多个非易失性存储器单元。根据一个实施例,存储器块152、154、156可以是一起被擦除的非易失性存储器单元组。存储器块152、154、156可以包括多个页,多个页是被一起读取或编程的非易失性存储器单元组。在一个实施例中,每个存储器块152、154、156可以具有用于高集成度的三维堆叠结构。此外,存储器设备150可以包括多个管芯,每个管芯包括多个平面,每个平面包括多个存储器块152、154、156。存储器设备150的配置可以针对存储器系统110的性能而不同。
在图2所示的存储器设备150中,包括多个存储器块152、154、156。根据可以在一个存储器单元中存储或表示的位数,多个存储器块152、154、156可以是单级单元(SLC)存储器块、多级单元(MLC)存储器块等中的任一个。SLC存储器块包括由各自存储一位数据的存储器单元实现的多个页。SLC存储器块可以具有较高的数据I/O操作性能和较高的耐久性。MLC存储器块包括由各自存储多位数据(例如,两位或更多位)的存储器单元实现的多个页。与SLC存储器块相比,MLC存储器块在相同的空间中可以具有更大的存储容量。从存储容量的角度来看,MLC存储器块可以高度集成。
在一个实施例中,可以使用诸如双级单元(DLC)存储器块、三级单元(TLC)存储器块、四级单元(QLC)存储器块的MLC存储器块及其组合来实现存储器设备150。双级单元(DLC)存储器块可以包括由各自能够存储2位数据的存储器单元实现的多个页。三级单元(TLC)存储器块可以包括由各自能够存储3位数据的存储器单元实现的多个页。四级单元(QLC)存储器块可以包括由各自都能够存储4位数据的存储器单元实现的多个页。在另一实施例中,存储器设备150可以使用包括由各自能够存储五位或更多位数据的存储器单元实现的多个页的块来实现。
根据一个实施例,控制器130可以将存储器系统150中包括的多级单元(MLC)存储器块用作在一个存储器单元中存储一位数据的SLC存储器块。多级单元(MLC)存储器块的数据输入/输出速度可能比SLC存储器块的数据输入/输出速度慢。即,当MLC存储器块被用作SLC存储器块时,可以减少用于读取或编程操作的余量。当使用多级单元(MLC)存储器块作为SLC存储器块时,控制器130可以利用多级单元(MLC)存储器块的更快的数据输入/输出速度。例如,由于缓冲器可能需要高的数据输入/输出速度来改进存储器系统110的性能,控制器130可以将MLC存储器块用作临时存储数据的缓冲器。
此外,根据一个实施例,控制器130可以在无需对存储器系统150中包括的特定MLC存储器块执行擦除操作的情况下,将数据多次编程在多级单元(MLC)中。易失性存储器单元具有不支持数据覆写的特征。然而,控制器130可以使用其中多级单元(MLC)可以存储多位数据的特征,以将多个1位数据多次编程在MLC中。对于MLC覆写入操作,当单个1位数据被编程在非易失性存储器单元中时,控制器130可以将编程次数存储为单独的操作信息。根据一个实施例,可以在另一数据被覆写在相同的非易失性存储器单元中之前,执行用于均匀地均衡非易失性存储器单元的阈值电压的操作。
在一个实施例中,存储器设备150被实现为诸如闪存(例如,NAND闪存、NOR闪存等)的非易失性存储器。在一个实施例中,存储器设备150可以由相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)、自旋注入磁存储器(STT-RAM)和自旋转移矩磁性随机存取存储器(STT-MRAM)等中的至少一个来实现。
参考图3,存储器系统中的控制器130与主机102和存储器设备150一起操作。如图所示,控制器130包括主机接口132、闪存转换层(FTL)240和存储器接口142以及先前结合图2标识的存储器144。
根据一个实施例,图2所示的纠错电路138可以被包括在闪存转换层(FTL)240中。在另一实施例中,纠错电路138可以被实现为控制器130中包括的或与控制器130相关联的单独的模块、电路、固件等。
主机接口132可以能够处理从主机102传输的命令、数据等。作为示例而非限制,主机接口132可以包括命令队列56、缓冲管理器52和事件队列54。命令队列56可以顺序地存储从主机102接收的命令、数据等,并且以例如它们被存储的顺序将它们输出到缓冲管理器52。缓冲管理器52可以对从命令队列56接收的命令、数据等进行分类、管理或调整。事件队列54可以顺序地传输事件,以对从缓冲管理器52接收的命令、数据等进行处理。
可以从主机102传输具有相同特性的多个命令或数据(例如,读取或写入命令),或者可以在由主机102混合或混杂后,将具有不同特性的多个命令和数据传输到存储器系统110。例如,用于读取数据的多个命令(读取命令)可以被传递到存储器系统110,或者用于读取数据的命令(读取命令)和对数据进行编程/写入的命令(写入命令)可以被交替地传输到存储器系统110。主机接口132可以将从主机102传输的命令、数据等顺序地存储到命令队列56。此后,主机接口132可以根据已从主机102输入的命令、数据等的特性来估计或预测控制器130将执行哪种内部操作。主机接口132可以至少基于其特性来确定命令、数据等的处理顺序和优先级。
根据从主机102传输的命令、数据等的特性,主机接口132中的缓冲管理器52被配置为确定缓冲管理器是否应将命令、数据等存储在存储器144中,或缓冲管理器是否应将命令、数据等传递到闪存转换层(FTL)240中。事件队列54接收从缓冲管理器52输入的事件,这些事件将由存储器系统110或控制器130响应于从主机102传输的命令、数据等而在内部执行和处理,以通过所接收的顺序将事件传递到闪存转换层(FTL)240中。
根据一个实施例,图3中所示的闪存转换层(FTL)240可以实现多线程方案来执行数据输入/输出(I/O)操作。多线程FTL可以通过多核处理器,使用控制器130中包括的多线程来实现。
根据一个实施例,闪存转换层(FTL)240可以包括主机请求管理器(HRM)46、映射管理器(MM)44、状态管理器42和块管理器48。主机请求管理器(HRM)46可以管理从事件队列54输入的事件。映射管理器(MM)44可以处理或控制映射数据。状态管理器42可以执行垃圾收集(GC)或损耗均衡(WL)。块管理器48可以将命令或指令执行到存储器设备150中的块上。
作为示例而非限制,主机请求管理器(HRM)46可以根据从主机接口132传递的读取和编程命令以及事件,使用映射管理器(MM)44和块管理器48来处理请求。主机请求管理器(HRM)46可以向映射数据管理器(MM)44发送查询请求,以确定与利用事件输入的逻辑地址相对应的物理地址。主机请求管理器(HRM)46可以将具有物理地址的读取请求发送到存储器接口142,以处理读取请求(处理事件)。在一个实施例中,主机请求管理器(HRM)46可以向块管理器48发送编程请求(写入请求),以将数据编程到存储器设备150中的特定空页(无数据),然后可以将与编程请求相对应的映射更新请求传输到映射管理器(MM)44,以便在将逻辑地址和物理地址彼此映射的信息中更新与编程数据有关的项。
块管理器48可以将从主机请求管理器(HRM)46、映射数据管理器(MM)44和/或状态管理器42传递的编程请求转换为用于存储器设备150的闪存编程请求,以便管理存储器设备150中的闪存块。为了将存储器系统110(例如,参见图2)的编程或写入性能最大化或增强,块管理器48可以收集编程请求并将用于多平面和单次编程操作的闪存编程请求发送到存储器接口142。在一个实施例中,块管理器48向存储器接口142发送若干闪存编程请求,以将对多通道和多方向闪存控制器的并行处理增强或最大化。
在一个实施例中,块管理器48可以被配置为根据有效页的数目来管理存储器设备150中的块,当需要空闲块时选择并擦除不具有有效页的块,并且在确定执行垃圾收集时选择包括最少数目的有效页的块。状态管理器42可以执行垃圾收集,以将有效数据移动到空块并擦除包含所移动的有效数据的块,使得块管理器48可以具有足够的空闲块(没有数据的空块)。当块管理器48向状态管理器42提供关于待擦除的块的信息时,状态管理器42可以检查待擦除的块的所有闪存页来确定每个页是否有效。
例如,为了确定每个页的有效性,状态管理器42可以标识每个页的带外(OOB)区域中记录的逻辑地址。为了确定每个页是否有效,状态管理器42可以将页的物理地址与映射到从查询请求获得的逻辑地址的物理地址进行比较。状态管理器42针对每个有效页向块管理器48发送编程请求。当编程操作完成时,可以通过映射管理器44的更新来更新映射表。
映射管理器44可以管理逻辑-物理映射表。映射管理器44可以处理由主机请求管理器(HRM)46或状态管理器42生成的各种请求(例如,查询、更新等)。映射管理器44可以将整个映射表存储在存储器设备150(例如,闪存/非易失性存储器)中,并且根据存储器144的存储容量来缓存映射条目。当在处理查询或更新请求时发生映射缓存错失时,映射管理器44可以将读取请求发送到存储器接口142,以加载存储器设备150中存储的相关映射表。当映射管理器44中的脏缓存块的数目超过某个阈值时,可以将编程请求发送到块管理器48,使得产生清洁缓存块,并且脏映射表可以存储在存储器设备150中。
当执行垃圾收集时,状态管理器42将(多个)有效页复制到空闲块中,并且主机请求管理器(HRM)46可以针对页的相同逻辑地址对数据的最新版本进行编程,并且当前发出更新请求。当状态管理器42在未正常完成(多个)有效页的复制的状态下请求映射更新时,映射管理器44可能不执行映射表更新。这是因为当状态管理器42请求映射更新并且稍后完成有效页复制时,利用旧物理信息发出映射请求。当或仅在最新映射表仍指向旧物理地址时,映射管理器44可以执行映射更新操作以确保准确性。
图4A至图4C图示了根据各个实施例的映射数据的数据结构的示例。具体地,图4A至图4C示出了第二映射数据(P2L表)可以根据与多个请求相对应的操作有关的模式而具有的数据结构。
参考图4A,多个存储器块可以被包括在存储器系统110(例如,参见图1至图3)中所包括的存储器设备150(例如,参见图1至图3)中。图4A中所示的存储器块可以包括例如8个页,并且8个页可以通过页索引(0-7)来被标识。根据一个实施例,当将用于将多个存储器块彼此区分的块地址和页索引进行组合时,存储器设备150可以将所组合的内容用作指示数据存储在存储器设备150中的位置的物理地址。
通过存储器系统110中的写入操作,可以将与逻辑地址LBA100至LBA107相对应的多个数据顺序地存储在存储器块的八个页(分别为页索引0至7)中。在将与逻辑地址LBA100至LBA107相对应的多个数据编程到存储器块中之后,控制器130(例如,参见图1至图3)可将多个映射信息添加到存储器144(例如,参见图1至图3)中的第二映射数据(P2L表)中。
具有图4A所示的第一数据结构的第二映射数据(第一类型P2L表)可以包括与存储器块中存储的多个数据相对应的逻辑地址LBA100至LBA107。具有第一数据结构的第一条第二映射数据(第一类型P2L表)可以示出与第一逻辑地址LBA100相对应的数据被存储在存储器设备150中由对应存储器块的第一页(页索引0)指示的位置中。与存储器块的第一页(页索引0)中存储的数据相关联的逻辑地址LBA100可以被存储为第一条第二映射数据(第一类型P2L表)。由于与8个逻辑地址(LBA100至LBA107)相对应的多个数据被顺序地存储在存储器块的8个页(分别为页索引0至7)中,所以具有第一数据结构的第二映射数据(第一类型P2L表)可以包括8个逻辑地址(LBA100至LBA107)。即,八个逻辑地址(LBA100至LBA107)可以被顺序地存储在各条第二映射数据(第一类型P2L表)中。
具有图4A所示的第一数据结构(第一类型)的第二映射数据(P2L表)可以采用在单个映射信息中添加单个逻辑地址的方式。例如,当第二映射数据具有第一数据结构(第一类型P2L表)并且控制器130在存储器设备150中存储50个数据时,50个逻辑地址被添加到存储器144中的第二映射数据(第一类型P2L表)中。第二映射数据(第一类型P2L表)可以具有至少50个(例如,50个映射信息)。当在存储器144中针对第二映射数据(第一类型P2L表)分配的空间不足以包括50个(例如,存储50个逻辑地址)时,控制器130在将50个数据存储在存储器设备150中之前,移除第二映射数据(第一类型P2L表)中的一个或多个映射信息。当与第二映射数据(第一类型P2L表)相对应的空间在50个数据被编程之前填充有第二映射信息时,控制器130可以基于该第二映射信息来执行用于更新存储器设备150中的第一映射数据的操作。该操作可以称为映射刷新。当执行映射刷新时,用于对存储器设备150中的50个数据中的一些进行编程的操作可以被延迟。
由于具有图4A所示的第一数据结构的第二映射数据(第一类型P2L表)在单个映射信息中包括单个逻辑地址,所以控制器130可以将第一数据结构用于关于随机数据而非顺序数据的数据输入和输出操作。例如,在执行与关于随机数据的多个请求相对应的编程操作的过程中,控制器130可以确定第二映射数据具有第一数据结构(第一类型P2L表)。例如,当由图1中描述的模式检查器194确定数据输入/输出操作与随机数据有关时,映射数据控制器196可以在存储器144中生成具有第一数据结构的第二映射数据(第一类型P2L表)。
参考图4B,具有第二数据结构(第二类型)的第二映射数据(P2L表)可以在单个映射信息中存储关于多个逻辑地址的开始地址和连续计数(长度)。控制器130可以生成并使用具有第二数据结构的第二映射数据(第二类型P2L表),以执行关于顺序数据的数据输入/输出操作。多个逻辑地址的起始地址可以对应于顺序数据中的起始数据,并且多个逻辑地址的连续计数可以对应于顺序数据中包括多少数据。类似于图4A,在图4B中,与八个逻辑地址LBA100至LBA107相对应的八个数据被顺序地存储在存储器块的八个页(页索引0至7)中。当将八个数据顺序地存储在存储器块中时,八个逻辑地址(LBA100至LBA107)中的第一逻辑地址(LBA100)被添加在具有第二数据结构的第二映射数据(第二类型P2L表)的第一项中,作为多个逻辑地址的起始地址,并且在第一项中添加8(长度:8)作为关于八个逻辑地址(LBA100至LBA107)的连续计数。
参考图4A和图4B所示的两种情况,当与八个逻辑地址LBA100至LBA107相对应的数据被存储在存储器块的八个页(页索引0至7)中时,具有第一数据结构的第二映射数据(第一类型P2L表)可以被八个映射信息完全填充,但是当第二映射数据具有第二数据结构(第二类型P2L表)时,第二映射数据可能未被八个映射信息完全填充。当具有第二数据结构的第二映射数据(第二类型P2L表)未被完全填充时,控制器130可以在执行映射刷新之前执行另一编程操作以将另一数据编程在存储器设备150中。当控制器130减慢将多个映射信息刷新到存储器设备150的定时并执行关于其他数据的附加编程操作时,可以改进存储器系统110的数据输入/输出性能。
根据一个实施例,分配给第二映射数据(P2L表)的空间可以是固定的。根据由控制器130生成的第二映射数据(P2L表)的数据结构,在利用映射信息填充第二映射数据(P2L表)时可能发生差异,而每个映射信息由数据输入/输出操作(例如,编程操作)生成。如果第二映射数据(P2L表)被映射信息填充的定时不同,则可以改变执行映射刷新的定时。
根据一个实施例,分配给第二映射数据(P2L表)的空间可以不固定。根据由控制器130生成的第二映射数据(P2L表)的数据结构,可以改变用于第二映射数据(P2L表)的空间的容量。存储器144的存储容量是有限的。因此,当第二映射数据(P2L表)所需的空间减少时,控制器130可以针对另一操作和目的分配和分发可用空间。通过该过程,当更多可用资源被分配或分发用于数据输入/输出操作时,控制器130可以改进存储器系统110的数据输入/输出性能。
参考图4C,第二映射数据(P2L表)可以具有第三数据结构(第三类型P2L表),第三数据结构包括第一数据结构和第二数据结构的组合。控制器130可以在执行关于随机数据和顺序数据的混合数据的数据输入/输出操作的过程中生成并使用具有第三数据结构的第二映射数据(第三类型P2L表)。例如,当从诸如主机102的外部设备输入到存储器系统110的多个请求与经混合的随机数据和顺序数据有关时,控制器130可以生成具有第三数据结构的第二映射数据(第三类型P2L表)。
根据一个实施例,当从主机102输入到存储器系统110的多个请求与经混合的随机数据和顺序数据有关时,控制器130可以选择数据结构之一,然后基于模式而改变第二映射数据(P2L表)的数据结构。当控制器130改变存储器144中的第二映射数据(P2L表)的数据结构时,在第二映射数据(P2L表)的数据结构被改变之前,第二映射数据(P2L表)中包括的映射信息可以在存储器设备150中被刷新。在这种情况下,即使当第二映射数据(P2L表)没有被映射信息完全填充时,控制器130也可以在第二映射数据(P2L表)的数据结构被改变之前执行映射刷新。
图5图示了根据一个实施例的易失性存储器中的针对映射数据分配的空间变化的示例。参考图5,控制器130(例如,参见图1至图3)可以将用于第二映射数据(P2L表)的空间分配给存储器系统110(例如,参见图1至图3)中的存储器144。对应于参考图4A至图4C描述的第二映射数据(P2L表)的各种数据结构,分配给存储器144中第二映射数据(P2L表)的空间的大小可以不同。
例如,当存储器系统110执行针对顺序数据的数据输入/输出操作时,如图5所示,分配给具有第二数据结构的第二映射数据(第二类型P2L表)的空间的大小可以小于具有第一数据结构的第二映射数据(第一类型P2L表)的空间的大小。
当存储器系统110执行关于随机数据的数据输入/输出操作时,具有第一数据结构(第一类型)的第二映射数据(P2L表)所占据的空间大小可以小于具有第二数据结构(第二类型)的第二映射数据所占据的空间大小。
因此,当控制器130响应于关于数据输入/输出操作的模式而生成具有不同类型数据结构的第二映射数据(P2L表)时,可以更有效地利用存储器144中的空间。另外,当在存储器144中用于第二映射数据(P2L表)的空间减小时控制器130针对另一操作分配可用空间时,可以改进存储器系统110的操作性能。
图6图示了根据一个实施例的由存储器系统执行的数据输入/输出操作。参考图6,存储器系统110(例如,参见图1至图3)接收从外部设备输入的多个写入请求WR。例如,多个写入请求WR可以包括八个写入请求WR1至WR8。存储器系统110可以接收八个写入请求WR1至WR8以及与八个逻辑地址相对应的八个数据。在一个实施例中,八个写入请求WR1至WR8可以与顺序数据有关。存储器系统110可以执行与八个写入请求WR1至WR8相对应的八个写入操作WO1至WO8。
根据一个实施例,在确定关于在输入第一写入请求WR1之前已输入的写入请求WR的模式之后,存储器系统110可以确定第二映射数据(P2L表)的数据结构。在图6中,当控制器130生成具有第一数据结构的第二映射数据(第一类型P2L表)时,控制器130可以执行八个写入操作WO1至WO8(图6中所示的WOs w/第一类型P2L表)。当控制器130生成具有第二数据结构的第二映射数据(第二类型P2L表)时,控制器130可以执行八个写入操作WO1至WO8(图6中所示的WOs w/第二类型P2L表)。在图6所示的实施例中,第二映射数据(P2L表)可以能够存储少于八个的第二映射信息。
在利用第一类型P2L表的写入操作的情况下,当控制器130生成具有第一数据结构的第二映射数据(第一类型P2L表)时,由于第二映射数据(P2L表)可以存储少于八个的映射信息,在完全执行与八个写入请求(WR1至WR8)相对应的所有八个写入操作(WO1至WO8)之前,可以执行映射刷新MF操作。由于映射刷新MF,第七写入操作WO7和第八写入操作WO8可能被延迟。此外,由映射刷新MF之后执行的第七写入操作WO7和第八写入操作WO8生成映射信息可以被延迟,直到执行下一映射刷新MF。
在利用第二类型P2L表的写入操作的情况下,当控制器130生成具有第二数据结构的第二映射数据(第二类型P2L表)时,即使第二映射数据(P2L表)能够存储少于八个的第二映射信息,也可以在与八个写入请求(WR1至WR8)相对应的所有八个写入操作(WO1至WO8)之后执行映射刷新(MF)。参考图4B,当执行对顺序数据的写入操作时,第二映射数据(P2L表)中的多个映射信息可以被压缩,使得第二映射数据(P2L表)可以存储更多的映射信息。因此,在执行了全部八个写入操作WO1至WO8之后,可以发生映射刷新(MF)。即,存储器系统110完成与从外部设备输入的八个写入请求WR1至WR8相对应的八个写入操作WO1至WO8,而没有在写入操作WO1至WO8之间执行映射刷新。因此,发送与八个写入请求WR1至WR8相对应的通知可以更快。另外,由于可以通过映射刷新(MF)而将与八个写入操作WO1至WO8相对应的多个映射信息存储在存储器设备150中,与利用其中控制器130生成具有第一数据结构的第二映射数据(第一类型P2L表)的第一类型P2L表来执行写入操作的情况相比,在利用其中控制器130生成具有第二数据结构的第二映射数据(第二类型P2L表)的第二类型P2L表来执行写入操作的情况下,可以改进存储器系统110的操作稳定性。
图6图示了可以如何根据第二映射数据(P2L表)的数据结构来改进存储器系统110的操作性能或操作稳定性的示例。
参考图6,当存储器系统110接收用于存储从外部设备输入的大量数据的请求时,大量数据可以是顺序数据。在这种情况下,由于在存储大量数据的过程中映射刷新(MF)在更大程度上被延迟,因此外部设备可以认识到可以在更大程度上改进存储器系统110的操作性能。
根据一个实施例,从外部设备输入的请求可以包括指示请求与随机数据还是顺序数据有关的标识符或参数。当控制器130接收针对与从外部设备输入的请求有关的模式的标识符或参数时,控制器130可以响应于标识符或参数来确定第二映射数据(P2L表)的数据结构。当根据标识符或参数改变第二映射数据(P2L表)的数据结构时,控制器130可以将先前第二映射数据(P2L表)中包括的第二映射信息(P2L)存储在存储器设备150中,或者基于该第二映射信息(P2L)来更新第一映射数据(L2P表)。在将该第二映射信息存储在存储器设备150中或更新第一映射数据(L2P表)之后,可以改变第二映射数据(P2L表)的数据结构。
图7图示了根据一个实施例的用于操作存储器系统的方法的示例。参考图7,用于操作存储器系统的方法包括确定关于从外部设备输入的多个数据输入/输出请求的模式(操作342),控制映射数据以具有基于模式而确定的数据结构(操作344),以及将映射数据中包括的映射信息编程到包括多个非易失性存储器单元的存储器设备中(操作346)。在一个实施例中,外部设备可以在物理上与存储器系统分离。例如,参考图1至图3,通过诸如总线的数据路径耦合到存储器系统110的主机102可以被认为是一种外部设备。
根据一个实施例,为了确定关于多个数据输入/输出请求的模式,存储器系统可以检查数据输入/输出请求中包括的参数或标识符。例如,数据输入/输出请求可以包括读取请求、写入请求、擦除请求或主机102传输到存储器系统110的另一类型的请求。从主机102输入的写入请求可以包括指示与顺序数据还是随机数据有关的参数或标识符。存储器系统110可以通过写入请求中包括的参数或标识符来确定关于随后待执行的数据输入/输出操作的模式。
在另一实施例中,可以通过在预定时段内跟踪或监视已由存储器系统执行的数据输入/输出操作来确定模式。例如,存储器系统可以确定在映射刷新之前执行的多个数据输入/输出操作是否与顺序数据或随机数据有关。在存储器系统执行写入操作之后,当写入操作与顺序数据相关时,可以增加第一计数,而当写入操作与随机数据相关时,可以增加第二计数。当执行映射刷新时,存储器系统可以将第一计数与第二计数进行比较。存储器系统可以识别出在两个映射刷新之间更大程度地执行了关于顺序数据或随机数据的哪些写入操作。例如,参考图1,每当执行与多个数据输入/输出请求相对应的操作时,模式检查器194可以如上所述增加第一计数或第二计数。基于第一计数和第二计数,存储器系统可以预期、估计或确定待执行的数据输入/输出操作是否与顺序数据或随机数据有关。
根据一个实施例,存储器系统可以检查利用多个数据输入/输出请求中的每一个传递的逻辑地址。基于利用多个数据输入/输出请求中的每一个传递的逻辑地址,存储器系统可以确定对应的多个数据输入/输出请求是否与顺序数据或随机数据有关。例如,参考图3,控制器130中的主机接口132将从主机102输入的多个数据输入/输出请求临时存储在命令队列56中。控制器130中的缓冲管理器52可以确定命令队列56中所存储的多个数据输入/输出请求是否与顺序数据或随机数据有关并对其进行分类。
在存储器系统确定关于多个数据输入/输出请求的模式之后,可以响应于模式来确定映射数据的数据结构(操作344)。例如,参考图4A至图4C,映射数据可以包括第二映射数据(P2L表),并且第二映射数据(P2L表)的数据结构可被确定(或选择)为第一数据结构、第二数据结构或第三数据结构。参考图4A至图4C描述的第二映射数据(P2L表)的数据结构仅是示例。在其他实施例中可以使用不同的数据结构。
参考图1至图3,在确定映射数据的数据结构之后,存储器系统可以在存储器144中生成具有所确定的数据结构的映射数据(操作344)。在存储器系统中的存储器144中生成的映射数据中,存储器系统可以记录根据数据输入/输出操作生成或改变的映射信息。
映射数据中包括的映射信息可以被存储在包括非易失性存储器单元的存储器设备中(操作346)。参考图1至图3,基于存储器144中的映射信息来更新存储器设备150中存储的映射数据,使得存储器系统110可以输出与连同来自主机102的数据输入/输出请求输入的逻辑地址相对应的最新数据。将映射信息存储在存储器设备150中的操作可以被认为是基于第二映射数据(P2L表)的映射信息(P2L)来更新第一映射数据(L2P表)的映射刷新。
根据实施例,执行映射刷新的定时可以不同。例如,当在存储器144中生成的映射数据被映射信息完全填充时,存储器系统可以执行映射刷新。根据映射数据的数据结构,可以在映射数据中存储或记录的映射信息的数目或范围可以不同。因此,参考图1至图5,可以基于映射数据的数据结构来确定执行映射刷新的定时。可以根据关于多个数据输入/输出请求的模式来确定(或选择)数据结构。
当执行映射刷新时,现有映射数据可以被擦除或销毁,并且存储器系统可以生成新的映射数据。为了生成新的映射数据,存储器系统可以确定关于从外部设备输入的多个数据输入/输出请求的模式(操作342)。
作为另一实施例,当映射数据的数据结构改变时,即使存储器144中的映射数据没有被完全填充,也可以执行映射刷新。根据一个实施例,存储器系统可以动态地确定何时生成映射数据或改变映射数据的数据结构。例如,即使存储器144中的映射数据未被映射信息完全填充,存储器系统也可以检测到关于从外部设备输入的多个数据输入/输出请求的模式被改变。例如,在执行了与随机数据有关的多个数据输入/输出操作之后,可以输入与大量顺序数据有关的多个数据输入/输出请求。在这种情况下,存储器系统可以生成具有与经改变的模式相对应的数据结构的新映射数据,并且先前映射数据中包括的映射信息可以用于更新存储器设备中存储的映射数据。
图8图示了根据一个实施例的用于操作存储器系统的方法的另一示例。在该示例中,存储器系统执行与从外部设备输入的写入请求相对应的内部操作。
参考图8,用于操作存储器系统的方法包括:接收从外部设备输入的写入请求和数据(操作360);确定用于存储与写入请求相对应的数据的位置,以将数据编程在包括多个非易失性存储器单元的存储器设备中(操作362);在易失性存储器中添加或更新与已编程数据相对应的映射信息(操作364);检查是否剩余待编程的另一数据(操作366);以及终止与写入请求相对应的过程(操作368)。
参考图1至图3和图8,存储器系统110中的控制器130可以接收从主机102输入的写入请求和数据,主机102例如位于存储器系统110外部(操作360)。根据一个实施例,可以与逻辑地址和数据一起从主机102输入写入请求。根据一个实施例,写入请求可以包括指示其与顺序数据还是随机数据有关的参数或标识符。
控制器130可以将与写入请求相对应的数据存储在存储器设备150中(操作362)。例如,控制器130可以将与写入请求相对应的数据编程到存储器设备150中的开放存储器块。当存储器设备150中存在多个开放块时,控制器130可以将数据存储在多个开放块的全部或部分中。控制器130可以基于存储器设备150的操作状态或控制器130与存储器设备150之间的数据路径(例如,通道/通路)的状态来确定在哪里存储与写入请求相对应的数据。在确定存储数据的位置之后,控制器130将数据传输到与诸如存储器设备150中的管芯、平面或块的对应位置有关的数据缓冲器或页缓冲器。在接收数据之后,存储器设备150可以将数据存储(编程)在存储器块中,并通知控制器130数据已被完全编程。
控制器130可以响应于存储器设备150中的数据已被编程的通知,在存储器144中的第二映射数据(P2L表)中添加或更新将逻辑地址与关于数据的物理地址相关联的映射信息(操作364)。根据一个实施例,当第二映射数据(P2L表)不在存储器144中时,控制器130可以在存储器144中生成新的第二映射数据(P2L表)。当由于存储器144中的第二映射数据P2L表中没有可用空间而无法添加或更新映射信息时,控制器130可以执行映射刷新。可以在图7中示出用于生成第二映射数据(P2L表)或执行映射刷新的操作。
在将与存储器设备150中存储的数据有关的映射信息添加或更新到第二映射数据(P2L表)之后,控制器130可以检查是否剩余待编程的另一数据(操作366)。当存在待被编程的数据时(例如,在操作366中为“是”),控制器130可以确定存储数据的位置并且将数据编程在存储器设备150中(操作362)。如果不存在待被编程的数据(例如,在操作366中为“否”),则控制器130可以终止与写入请求相对应的内部操作(操作368)。在控制器130终止与写入请求相对应的内部操作之后,控制器130可以通知主机102与写入请求相对应的数据被成功存储在存储器系统110中。
图9图示了根据一个实施例的用于操作存储器系统的方法的另一示例。具体而言,图9示出了用于控制和管理存储器系统中的易失性存储器中包括的第二映射数据(P2L表)的方法。易失性存储器可以对应于参考图1至图3描述的存储器144。存储器144可以被实现为具有高数据输入/输出速率的非易失性存储器,以便改进存储器系统110的操作性能。然而,根据一个实施例,存储器144可以包括易失性存储器和非易失性存储器。控制器130可以基于在存储器系统110中执行的内部操作的优先级或操作余量来选择性地使用易失性存储器或非易失性存储器。
参考图9,用于操作存储器系统的方法包括:检查用于在易失性存储器中包括的第二映射数据(P2L表)中添加新映射信息的可用空间(操作380);基于第二映射数据(P2L表),更新包括多个非易失性存储器单元的存储器设备150中存储的第一映射数据(L2P表)(操作382);删除或销毁易失性存储器中的第二映射数据(P2L表)(操作384);响应于模式而确定(或选择)第二映射数据(P2L表)的数据结构,以在易失性存储器中生成新的第二映射数据(操作386);以及将与编程操作相对应的映射信息添加或存储在第二映射数据(P2L表)的可用空间中(操作388)。
参考图1至图3和图8至图9,当用户数据被编程在存储器设备150中时,生成与数据相关联的映射信息,并且映射信息可以被记录或存储在第二映射数据(P2L表)中。控制器130可以检查是否可以在存储器144中存储的第二映射数据(P2L表)中存储或添加新的映射信息(操作380)。当可以将新的映射信息添加到第二映射数据(P2L表)时(例如,在操作380中为“是”),控制器130可以将响应于编程操作而生成的新的映射信息记录或存储在第二映射数据(P2L表)中(操作388)。
在将映射信息存储在第二映射数据(P2L表)中之后,控制器130可以执行另一数据输入/输出操作。当控制器130执行另一编程操作时,可以生成与对应编程操作相对应的另一映射信息。当出现映射信息时,控制器130可以检查第二映射数据(P2L表)中是否存在可用空间来存储对应映射信息(操作380)。
当在第二映射数据(P2L表)中没有可用空间来存储映射信息时(例如,在操作380中为“否”),控制器130可以将第二映射数据P2L编程到存储器设备150(操作382)。该操作可以被称为映射刷新。当第二映射数据(P2L表)不能存储新的映射信息时,控制器130可以确定第二映射数据(P2L表)被多个映射信息完全填充。控制器130可以基于第二映射数据(P2L表)中包括的多个映射信息来更新存储器设备150中存储的第一映射数据(L2P表)。
每当数据被编程在存储器设备150中时,可以执行用于更新存储器设备150中存储的第一映射数据(L2P表)的方法。但是,该操作导致不必要的处理开销。因为存储器设备150包括非易失性存储器单元,所以存储器设备150可能不支持覆写。此外,读取/编程操作被逐页执行,但是擦除操作可以逐块执行。因此,为了改进存储器系统110的操作性能,可以延迟第一映射数据(L2P表)的更新,直到通过第二映射数据(P2L表)对多个数据进行编程。然而,当第二映射数据(P2L表)被映射信息完全填充时,控制器130应通过映射刷新来更新第一映射数据(L2P表)。
当通过映射刷新来更新第一映射数据(L2P表)时,控制器130可以删除或销毁存储器144中的第二映射数据(P2L表)(操作384)。当通过映射刷新利用最新信息来更新第一映射数据(L2P表)时,可能不再需要存储器144中的第二映射数据(P2L表)。控制器130可以删除或销毁不必要的第二映射数据(P2L表)。
控制器130可以响应于模式来确定第二映射数据(P2L表)的数据结构,并在存储器144中生成具有所确定的数据结构的第二映射数据(P2L表)。模式可以指示多个数据输入/输出操作是否与顺序数据或随机数据有关。第二映射数据(P2L表)的数据结构可以被确定(或选择)为图4A至图4C中所示的数据结构示例之一。在存储器144中生成第二映射数据(P2L表)之后,控制器130可以在第二映射数据(P2L表)中添加、写入或存储与编程操作相对应的映射信息(操作388)。
当供应给存储器系统110的电压不稳定或当所供应的电压突然停止或中断时,控制器130被配置为将存储器144中存储的第二映射数据(P2L表)编程到存储器设备150。由于可能无法确保控制器130基于第二映射数据(P2L表)更新第一映射数据(L2P表)的操作余量,因此可以将第二映射数据(P2L表)编程到存储器设备150中。当恢复供电(例如,再次向存储器系统110供电)时,控制器130将存储器设备150中存储的第二映射数据(P2L表)加载到存储器144中,然后基于存储器144中加载的第二映射数据(P2L表)来更新第一映射数据(L2P表)。
图10图示了根据另一实施例的用于操作存储器系统的方法。图10具体地描述了其中存储器系统将数据编程到非易失性存储器设备的操作。
参考图10,用于操作存储器系统的方法可以开始与从外部设备输入的写入请求相对应的写入操作(操作420)。存储器系统可以将与写入请求一起输入的数据存储在例如NAND设备的存储器设备中(操作422)。在将数据存储在存储器设备中之后,存储器系统可以更新第二映射数据(P2L表)(操作424)。存储器系统可以检查与写入请求一起输入的所有数据是否均被存储在存储器设备中(操作426)。当剩余待存储在存储器设备中的数据时,存储器系统可以将剩余的数据存储在存储器设备中(操作422)。当不存在待存储在存储器设备中的数据时,存储器系统可以终止写入操作(操作428)。
在一个实施例中,用于更新第二映射数据(P2L表)的操作424可以包括:开始用于将与存储器设备中存储的数据有关的映射信息更新到第二映射数据(P2L表)的操作(操作430)。存储器系统可以检查存储器144中存储的第二映射数据(P2L表)的数据结构(操作432)。例如,第二映射数据(P2L表)可以具有参考图4A至图4C描述的第一数据结构或第二数据结构。存储器系统可以将关于存储器设备中存储的数据的映射信息转换为与存储器144中存储的第二映射数据(P2L表)的数据结构相对应的格式(操作434)。如果映射信息不适合于第二映射数据(P2L表)的数据结构,则映射信息可以在不转换的情况下添加到第二映射数据(P2L表)。
存储器系统可以检查映射信息是否可以被添加到第二映射数据(P2L表)(操作436)。如果映射信息可以被添加到第二映射数据(P2L表),则可以终止用于将映射信息更新到第二映射数据(P2L表)的操作(操作442)。如果不能将映射信息添加到第二映射数据(P2L表),即P2L表已满,则存储器系统可以选择第二映射数据(P2L表)的数据结构来存储与稍后执行的写入操作相对应的映射信息(操作438)。
在确定新的第二映射数据(P2L表)的数据结构之后,存储器系统可以基于先前使用并填充有映射信息的第二映射数据(P2L表)来更新第一映射数据(L2P表)或将第二映射数据(P2L表)存储在存储器设备中(操作440)。基于第二映射数据(P2L表)更新第一映射数据(L2P表)或将第二映射数据(P2L表)存储在存储器设备中的过程可以被理解为映射刷新。在映射刷新之后,可以终止用于更新第二映射数据(P2L表)的过程(操作442)。
用于确定新的第二映射数据(P2L表)的数据结构的操作438可以包括存储器系统检查第二映射数据(P2L表)中包括多少与第一数据结构相对应的映射信息(操作444)。通过该操作,存储器系统可以确定第二映射数据(P2L表)中存储的映射信息是否对应于多于或少于第二数据结构的第一数据结构。
当第二映射数据(P2L表)中存储的与第一数据结构相对应的映射信息的数目大于或等于与第二数据结构相对应的映射信息的数目时,第二映射数据(P2L表)可以继续维持第一数据结构(操作446)。当第二映射数据(P2L表)中存储的与第一数据结构相对应的映射信息的数目小于与第二数据结构相对应的映射信息的数目时,第二映射数据(P2L表)可以具有第二数据结构(操作448),例如,更改第二映射数据(P2L表)的数据结构或选择其他数据结构。
通过该过程,存储器系统可以确定第二映射数据(P2L表)的哪种数据结构更适合于存储与随后将要执行的写入操作相对应的映射信息(例如,第一数据结构或第二数据结构)。可以基于确定结果来选择用于存储映射信息的第二映射数据(P2L表)的数据结构。
根据前述实施例中的一个或多个,存储器系统可以改变高速缓存存储器或易失性存储器中临时存储的映射信息的数据结构,从而减少针对高速缓存存储器或易失性存储器中的映射信息分配的空间。在一个实施例中,存储器系统可以减少在高速缓存存储器或易失性存储器中分配给映射信息的空间,从而减少在存储器系统中消耗的功率。在一个实施例中,存储器系统可以减少在高速缓存存储器或易失性存储器中分配给映射信息的空间并且将可用空间用于在存储器系统中执行的另一操作,从而改进存储器系统的操作性能。
尽管已关于特定实施例图示和描述了本教导,但是根据本公开,对于本领域技术人员而言显而易见的是,在不脱离如所附权利要求所限定的本公开的精神和范围的情况下,可以进行各种改变和修改。
Claims (20)
1.一种存储器系统,包括:
存储器设备,包括多个非易失性存储器单元;以及
控制器,被配置为确定关于多个数据输入/输出请求的模式,控制映射数据以具有基于所述模式的数据结构,以及将所述映射数据中包括的映射信息编程到所述存储器设备中,其中将所述映射信息编程的定时基于所述映射数据的所述数据结构。
2.根据权利要求1所述的存储器系统,其中所述模式指示所述多个数据输入/输出请求对应于顺序数据或随机数据。
3.根据权利要求1所述的存储器系统,其中所述映射数据包括将物理地址与逻辑地址链接的第二映射信息,其中所述第二映射信息与所述存储器设备中存储的用于将逻辑地址链接到物理地址的第一映射信息区分开。
4.根据权利要求1所述的存储器系统,其中所述数据结构是以下之一:
第一结构,包括多个映射信息,每个映射信息将单个物理地址与单个逻辑地址相关联;
第二结构,包括多个映射信息,每个映射信息将单个物理地址与多个逻辑地址的起始地址和连续计数相关联,或者将单个逻辑地址与多个物理地址的起始地址和连续计数相关联;以及
第三结构,包括所述第一结构和所述第二结构的组合。
5.根据权利要求3所述的存储器系统,其中:
所述存储器设备被配置为存储第一映射数据,所述第一映射数据包括逻辑到物理L2P表,所述L2P表包括多个第一映射信息,
所述控制器被配置为将所述第一映射数据加载到存储器中,并且执行关于与所述多个数据输入/输出请求中的一个或多个数据输入/输出请求一起输入的逻辑地址的地址转换,并且
所述控制器被配置为基于包括物理到逻辑P2L表的第二映射数据来更新所述存储器设备中存储的所述第一映射数据,所述P2L表包括多个第二映射信息。
6.根据权利要求1所述的存储器系统,其中所述控制器被配置为:
在存储器中分配具有设定大小的区域以存储所述映射数据,以及
在所述区域被映射信息完全填充之后,将所述映射信息编程到所述存储器设备中。
7.根据权利要求1所述的存储器系统,其中所述控制器被配置为:
基于所述模式来更改所述数据结构,以及
在更改所述数据结构之后,将所述数据结构被更改之前的所述映射数据中包括的所述映射信息编程在所述存储器设备中。
8.根据权利要求1所述的存储器系统,其中所述控制器被配置为在将所述映射信息编程在所述存储器设备中之后,确定与所述多个数据输入/输出请求相对应的所述模式。
9.一种用于操作存储器系统的方法,包括:
确定关于多个数据输入/输出请求的模式;
控制映射数据以具有基于所述模式的数据结构;以及
将所述映射数据中包括的映射信息编程到包括多个非易失性存储器单元的存储器设备中,其中将所述映射信息编程的定时基于所述映射数据的所述数据结构。
10.根据权利要求9所述的方法,其中所述模式指示所述多个数据输入/输出请求对应于顺序数据或随机数据。
11.根据权利要求9所述的方法,其中所述映射数据包括将物理地址与逻辑地址链接的第二映射信息,其中所述第二映射信息与所述存储器设备中存储的用于将逻辑地址链接到物理地址的第一映射信息区分开。
12.根据权利要求9所述的方法,其中所述数据结构包括以下之一:
第一结构,包括多个映射信息,每个映射信息将单个物理地址与单个逻辑地址相关联;
第二结构,包括多个映射信息,每个映射信息将单个物理地址与多个逻辑地址的起始地址和连续计数相关联,或者将单个逻辑地址与多个物理地址的起始地址和连续计数相关联;以及
第三结构,包括所述第一结构和所述第二结构的组合。
13.根据权利要求12所述的方法,还包括:
存储第一映射数据,所述第一映射数据包括逻辑到物理L2P表,所述L2P表包括多个第一映射信息;
将所述第一映射数据加载到存储器中,并且执行关于与所述多个数据输入/输出请求中的一个或多个数据输入/输出请求一起输入的逻辑地址的地址转换;以及
基于包括物理到逻辑P2L表的第二映射数据来更新所述存储器设备中存储的所述第一映射数据,所述P2L表包括多个第二映射信息。
14.根据权利要求9所述的方法,还包括:
在存储器中分配具有设定大小的区域以存储所述映射数据;以及
在所述区域被映射信息完全填充之后,将所述映射信息编程到所述存储器设备中。
15.根据权利要求9所述的方法,还包括:
基于所述模式来更改所述数据结构;以及
在更改所述数据结构之后,将所述数据结构被更改之前的所述映射数据中包括的所述映射信息编程在所述存储器设备中。
16.根据权利要求11所述的方法,还包括:
在将所述映射信息编程在所述存储器设备中之后,确定关于所述多个数据输入/输出请求的所述模式。
17.一种控制器,控制用于将不同地址彼此相关联的第一映射信息和第二映射信息以将使用不同地址系统的多个设备接合,所述控制器被配置为:
确定关于多个数据输入/输出请求的模式;
基于所述模式来选择映射数据的数据结构,所述数据结构用于存储与后续写入操作相对应的第二映射信息;
基于所述第二映射信息来更新第一映射信息,其中所述第二映射信息对应于已执行的另一写入操作;以及
将所述第二映射信息存储在具有选择的数据结构的第二映射数据中。
18.根据权利要求17所述的控制器,其中:
所述第一映射信息将逻辑地址与物理地址相关联,并且
所述第二映射信息将所述物理地址与所述逻辑地址相关联。
19.根据权利要求17所述的控制器,其中所述数据结构包括以下之一:
第一结构,包括多个映射信息,每个映射信息将单个物理地址与单个逻辑地址相关联;以及
第二结构,包括多个映射信息,每个映射信息将单个物理地址与多个逻辑地址的起始地址和连续计数相关联,或者将单个逻辑地址与多个物理地址的起始地址和连续计数相关联。
20.根据权利要求17所述的控制器,其中当不再将第二映射信息添加到所述第二映射数据中时,更新所述第一映射信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2020-0027666 | 2020-03-05 | ||
KR1020200027666A KR20210112548A (ko) | 2020-03-05 | 2020-03-05 | 메모리 시스템 내 맵 정보를 제어하는 장치 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113360083A true CN113360083A (zh) | 2021-09-07 |
Family
ID=77524509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010965139.5A Withdrawn CN113360083A (zh) | 2020-03-05 | 2020-09-15 | 用于在存储器系统中控制映射数据的装置和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210279180A1 (zh) |
KR (1) | KR20210112548A (zh) |
CN (1) | CN113360083A (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11256605B2 (en) * | 2017-10-19 | 2022-02-22 | Samsung Electronics Co., Ltd. | Nonvolatile memory device |
US11561729B2 (en) * | 2020-08-19 | 2023-01-24 | Micron Technology, Inc. | Write determination counter |
TWI804236B (zh) * | 2022-03-16 | 2023-06-01 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
EP4273703A1 (en) * | 2022-05-06 | 2023-11-08 | Samsung Electronics Co., Ltd. | Computing system generating map data, and method of operating the same |
US11960722B2 (en) * | 2022-07-25 | 2024-04-16 | Micron Technology, Inc. | Memory device programming technique for increased bits per cell |
-
2020
- 2020-03-05 KR KR1020200027666A patent/KR20210112548A/ko unknown
- 2020-08-11 US US16/990,562 patent/US20210279180A1/en not_active Abandoned
- 2020-09-15 CN CN202010965139.5A patent/CN113360083A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US20210279180A1 (en) | 2021-09-09 |
KR20210112548A (ko) | 2021-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113342705A (zh) | 在存储器系统中执行垃圾收集的设备和方法 | |
US20210279180A1 (en) | Apparatus and method for controlling map data in a memory system | |
US11526298B2 (en) | Apparatus and method for controlling a read voltage in a memory system | |
US11756643B2 (en) | Apparatus and method for correcting an error in data transmission of a data processing system | |
US11620213B2 (en) | Apparatus and method for handling data stored in a memory system | |
CN114356207A (zh) | 用于存储器系统中的数据通信的校准设备和方法 | |
CN113495852A (zh) | 控制存储器系统中的映射数据的设备和方法 | |
US11507501B2 (en) | Apparatus and method for transmitting, based on assignment of block to HPB region, metadata generated by a non-volatile memory system | |
US11704068B2 (en) | Apparatus and method for scheduling operations performed in plural memory devices included in a memory system | |
US20220171564A1 (en) | Apparatus and method for maintaining data stored in a memory system | |
US11360697B2 (en) | Apparatus and method for encoding and decoding operations to protect data stored in a memory system | |
CN112599170A (zh) | 用于在存储器系统中提供多流操作的设备和方法 | |
US20230153032A1 (en) | Apparatus and method for improving data input/output performance of storage | |
US11941289B2 (en) | Apparatus and method for checking an error of a non-volatile memory device in a memory system | |
US11645002B2 (en) | Apparatus and method for controlling and storing map data in a memory system | |
US11704281B2 (en) | Journaling apparatus and method in a non-volatile memory system | |
US12032843B2 (en) | Apparatus and method for increasing operation efficiency in data processing system | |
US20220075542A1 (en) | Calibration apparatus and method for data communication in a memory system | |
US11854657B2 (en) | Memory device and memory system supporting interleaving operation and operation method thereof | |
US11775426B2 (en) | Apparatus and method for securing a free memory block in a memory system | |
US12125549B2 (en) | Apparatus and method for correcting an error in data transmission of a data processing system | |
US12050795B2 (en) | Apparatus and method for managing map data between host and memory system | |
CN112230841A (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: 20210907 |
|
WW01 | Invention patent application withdrawn after publication |