CN113495852A - 控制存储器系统中的映射数据的设备和方法 - Google Patents
控制存储器系统中的映射数据的设备和方法 Download PDFInfo
- Publication number
- CN113495852A CN113495852A CN202010987059.XA CN202010987059A CN113495852A CN 113495852 A CN113495852 A CN 113495852A CN 202010987059 A CN202010987059 A CN 202010987059A CN 113495852 A CN113495852 A CN 113495852A
- Authority
- CN
- China
- Prior art keywords
- mapping
- data
- memory
- information
- storage mode
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/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
- 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/0646—Configuration or reconfiguration
-
- 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
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/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/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/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/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)
Abstract
本申请公开了一种存储器系统,该存储器系统包括存储器装置和控制器。该存储器装置包括至少一个开放存储块。该控制器被配置成将连同写入请求一起从外部装置输入的数据编程到至少一个开放块中,基于写入请求的类型确定关于映射数据的存储模式,并且基于映射数据执行映射更新。控制器进一步被配置成基于存储模式和写入请求的类型,确定执行映射更新的定时。
Description
相关申请的交叉引用
本申请要求于2020年4月7日提交的申请号为10-2020-0042078的韩国专利申请的优先权,该韩国专利申请的全部公开内容通过引用并入本文。
技术领域
本公开的实施例涉及一种存储器系统,且更特别地,涉及一种用于控制存储器系统中的映射数据的设备和方法。
背景技术
近来,用于计算机环境的范例已经转变为使计算机系统几乎能够随时随地被访问的普适计算。因此,诸如移动电话、数码相机、笔记本电脑等的便携式电子装置的使用迅速增加。这种便携式电子装置通常使用或包括使用或嵌入至少一个存储器装置的存储器系统,即数据存储装置。数据存储装置可以被用作便携式电子装置的主存储装置或辅助存储装置。
与硬盘不同,使用非易失性半导体存储器装置的数据存储装置的优点在于,因为没有机械驱动部件(例如,机械臂)而具有优异的稳定性和耐久性,并且具有高数据访问速度和低功耗。在具有这种优点的存储器系统的背景下,示例性数据存储装置包括USB(通用串行总线)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
发明内容
本公开的实施例可以提供一种数据处理系统和用于操作该数据处理系统的方法,该数据处理系统包括诸如存储器系统和主机的组件和资源,并且能够基于组件和资源的使用而动态地分配用于组件之间的数据通信的多个数据路径。
根据本公开的实施例,可以响应于数据输入/输出请求来改变或调整用于提高存储器系统的数据输入/输出性能的关于映射数据的存储模式。通过改变关于映射数据的存储模式,可以减少存储器系统中的数据输入/输出操作所消耗的资源,从而可以提高操作效率。
根据本公开的实施例,根据输入到存储器系统的写入请求的类型,可以不同地设定或确定用于对连同写入请求一起从外部装置输入的数据进行编程的开放存储块的数量。根据实施例,可以将连同随机写入请求一起输入的多条数据分布并且存储到多个开放存储块中,但是可以将与顺序写入请求一起输入的多条数据存储到相同的开放存储块中。存储器系统可以根据执行了编程操作的开放存储块的数量来不同地设定关于映射数据的存储模式。通过这些方式,可以根据关于映射数据的存储模式在存储器系统中改变或调整执行映射更新或映射清除的定时。
根据本公开的实施例,存储器系统可以减少诸如高速缓存存储器的资源消耗,以及减少用于并分配到诸如地址转换和映射数据控制或管理的内部操作的操作裕量,并且存储器系统可以重新分布所节省的资源,以处理或处置从外部装置输入的请求和/或数据,从而提高数据输入/输出操作的性能。
在实施例中,存储器系统可以包括:存储器装置,包括至少一个开放存储块;以及控制器,被配置成将连同写入请求一起从外部装置输入的数据编程到至少一个开放存储块中,基于写入请求的类型确定关于映射数据的存储模式,并且基于映射数据执行映射更新。控制器可以进一步被配置成可以基于存储模式和写入请求的类型来确定执行映射更新的定时。
作为示例而非限制,连同写入请求一起输入的数据能够被编程的至少一个开放存储块的数量取决于写入请求的类型。
写入请求可以包括随机写入请求和顺序写入请求,并且与顺序写入请求相对应的数据被编程到至少一个开放存储块中的单个开放存储块中。
存储器装置可以包括多个平面,每个平面包括能够存储具有页面大小的数据的至少一个缓冲器。平面可以分别包括至少一个开放存储块。
映射数据可以包括多条第二映射信息,每条第二映射信息将物理地址链接到逻辑地址。
控制器可以被配置成将存储模式确定为以下中的一种:第一存储模式,其中将与每条第二映射信息相对应的逻辑地址和物理地址存储到映射数据中;第二存储模式,其中仅将与每条第二映射信息相对应的逻辑地址存储在映射数据中,并且通过映射数据内的所存储的逻辑地址的索引来识别与所存储的逻辑地址相关联的物理地址。
控制器可以进一步被配置成:当关于映射数据的存储模式是第一存储模式时,即使写入请求的类型改变,也保持该存储模式。
控制器可以进一步被配置成:当关于映射数据的存储模式是第二存储模式时,根据写入请求的类型和映射数据内的可用空间,将一条新的第二映射信息添加到映射数据中或者执行映射更新。控制器可以进一步被配置成:通过将与该条新的第二映射信息相对应的逻辑地址和物理地址添加到映射数据或者通过利用与该条新的第二映射信息相对应的逻辑地址重写映射数据中存储的物理地址来将该条新的第二映射信息添加到映射数据中。
存储器装置可以存储第一映射数据。映射更新可以包括在映射数据对于存储一条新的第二映射信息不可用时基于第二映射信息来更新第一映射数据的操作。
在另一实施例中,一种用于操作存储器系统的方法可以包括:根据从外部装置输入的写入请求的类型,将数据编程到包括至少一个开放存储块的存储器装置中;基于写入请求的类型,确定关于映射数据的存储模式;并且基于映射数据来执行映射更新,其中执行映射更新包括:基于存储模式和写入请求的类型来确定执行映射更新的定时。
作为示例而非限制,连同写入请求一起输入的数据被编程到的至少一个开放存储块的数量取决于写入请求的类型。
写入请求可以包括随机写入请求和顺序写入请求,并且与顺序写入请求相对应的数据被编程到至少一个开放存储块中的单个开放存储块中。
存储器装置可以包括多个平面,每个平面包括能够存储具有页面大小的数据的至少一个缓冲器。平面可以分别包括至少一个开放存储块。
映射数据可以包括多条第二映射信息,每条第二映射信息将物理地址链接到逻辑地址。
存储模式可以被确定为以下中的一种:第一存储模式,其中将与每条第二映射信息的相对应的逻辑地址和物理地址存储在映射数据中;第二存储模式,其中仅将与每条第二映射信息相对应的逻辑地址存储在映射数据中,并且通过映射数据内所存储的逻辑地址的索引来识别与所存储的逻辑地址相关联的物理地址。
方法可以进一步包括:当关于映射数据的存储模式是第一存储模式时,即使写入请求的类型改变,也保持该存储模式。
方法可以进一步包括:当关于映射数据的存储模式是第二存储模式时,根据写入请求的类型和映射数据内的可用空间,将一条新的第二映射信息添加到映射数据中,或者执行映射更新。将该条新的第二映射信息添加到映射数据中包括:将与该条新的第二映射信息相对应的逻辑地址和物理地址添加到映射数据,或者利用与该条新的第二映射信息相对应的逻辑地址重写映射数据中存储的物理地址。
存储器装置可以存储第一映射数据。映射更新可以包括当映射数据对于存储一条新的第二映射信息不可用时基于第二映射信息来更新第一映射数据的操作。
在另一实施例中,一种生成用于使不同地址方案相关联以使多个装置相互接合的第一映射信息和第二映射信息的控制器,每个装置具有不同的地址方案,该控制器使一个或多个处理器执行操作,包括:根据从外部装置输入的写入请求的类型来将数据编程到包括至少一个开放存储块的存储器装置中;基于写入请求的类型,确定关于映射数据的存储模式;并且基于映射数据,执行映射更新,其中执行映射更新包括:基于存储模式和写入请求的类型来确定执行映射更新的定时。
当写入请求是顺序写入请求时,可以将连同写入请求一起输入的数据编程到单个开放存储块中。确定存储模式包括:以存储模式控制关于将物理地址与逻辑地址相关联的第二映射信息的映射数据,在该存储模式中,仅将逻辑地址记录在映射数据中,并且通过映射数据内所记录的逻辑地址的索引来识别与所记录的逻辑地址相关联的物理地址。
在另一实施例中,一种控制器的操作方法可以包括:执行第一高速缓存操作,包括将M条第一物理至逻辑(P2L)信息顺序地高速缓存到映射高速缓存中作为将顺序数据编程到开放存储块中的结果,该映射高速缓存具有至少M对物理地址和逻辑地址的存储容量;执行第二高速缓存操作,包括在第一高速缓存操作完成之后,将M条第二P2L信息顺序地高速缓存到映射高速缓存中,作为将顺序数据附加地编程到存储块中的结果;并且在第二高速缓存操作完成之后,基于经高速缓存的P2L信息,更新逻辑至物理(L2P)信息,其中通过分别利用第二P2L信息内的M个逻辑地址顺序地替换经高速缓存的第一P2L信息内的M个物理地址来执行第二高速缓存操作,并且其中经高速缓存的逻辑地址的偏移识别存储块内的物理地址。
附图说明
参照附图描述本文,其中在整个附图中,相同的附图标记指代相同的部件。
图1示出根据本公开的实施例的存储器系统。
图2示出根据本公开的实施例的数据处理系统。
图3示出根据本公开的实施例的存储器系统。
图4示出根据本公开的实施例的关于映射数据的存储模式。
图5示出具有多种存储模式的第二映射数据(例如,P2L表)。
图6示出根据本公开的实施例的在存储器装置中执行的写入操作。
图7示出根据本公开的实施例的操作存储器系统的方法的第一示例。
图8示出根据本公开的实施例的选择关于映射数据的存储模式的方法。
图9示出根据本公开的实施例的操作存储器系统的方法的第二示例。
图10示出根据本公开的实施例的包括与存储器系统中的不同类型的写入请求相对应的映射信息的映射数据。
图11示出根据本公开的实施例的操作存储器系统的方法的第三示例。
在本公开中,对“一个实施例”、“示例性实施例”、“实施例”、“另一实施例”、“一些实施例”、“各个实施例”、“其它实施例”、“可选实施例”等中包括的各个特征(例如,元件、结构、模块、组件、步骤、操作、特性等)的引用旨在意为在本公开的一个或多个实施例中包括任意的这种特征,但是在相同的实施例中按需要可以组合也可以不组合。
具体实施方式
下面参照附图描述本公开的各个实施例。然而,本公开的元件和特征可以被不同地配置或布置以形成可以作为任意所公开的实施例的变型的其它实施例。
在本公开中,术语“包括”、“包括有”、“包含”和“包含有”是开放式的。如在所附权利要求书中所使用的,这些术语指定所陈述的元件的存在,并且不排除一个或多个其它元件的存在或添加。权利要求中的术语不排除该设备包括附加的组件(例如,接口、电路等)。
在本公开中,各种单元、电路或其它组件可以被描述或声明为“被配置成”执行一个或多个任务。在这种语境中,“被配置成”用于通过指示块/单元/电路/组件包括在操作期间执行一个或多个任务的结构(例如,电路)来表示结构。这样,即使当特定的块/单元/电路/组件当前不操作(例如,未导通)时,也可以说该单元/电路/组件被配置成执行该任务。与“被配置成”的语言一起使用的块/单元/电路/组件包括硬件,例如电路、存储可运行以实施操作的编程指令的存储器等。因此,“被配置成”可以包括由软件和/或固件(例如,运行软件的FPGA或通用处理器)来操纵以能够执行讨论的(多个)任务的方式进行操作的通用结构(例如,通用电路)。“被配置成”还可以包括使制造工艺(例如,半导体制备设施)适应于制造适应于实施或执行一个或多个任务的装置(例如,集成电路)。
如在本公开中使用的,术语“电路系统(circuitry)”是指以下任意和所有内容:(a)仅硬件电路实施方案(诸如仅以模拟和/或数字电路的实施方案),以及(b)电路和软件(和/或固件)的组合,例如(如适用于):(i)(多个)处理器的组合,或(ii)(多个)处理器/软件(包括一起工作以使诸如移动电话或服务器的设备执行各种功能的数字信号处理器、软件和存储器)的部分,以及(c)需要软件或固件来操作的电路,诸如(多个)微处理器或(多个)微处理器的一部分的电路,即使物理上并不存在该软件或固件。“电路系统”的定义适用于本申请中该术语的所有使用,包括在任何权利要求中的使用。如进一步的示例,如本申请中所使用的,术语“电路系统”还涵盖仅一处理器(或多个处理器)或处理器的一部分及其(或它们的)附带软件和/或固件的实施方案。例如,并且如果适用于特定的权利要求要素,术语“电路系统”还涵盖存储装置的集成电路。
如本文所使用的,这些术语“第一”、“第二”、“第三”等被用作它们所引导的名词的标签,并且并不意指任何类型的顺序(例如,空间顺序、时间顺序、逻辑顺序等)。术语“第一”和“第二”并不一定意指必须在第二值之前写入第一值。进一步地,尽管本文可以使用术语来识别各个元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与另外具有相同或相似名称的另一个元件区分开。例如,第一电路系统可以与第二电路系统区分开。
进一步地,术语“基于”用于描述影响确定的一个或多个因素。该术语不排除可能影响确定的其它因素。也就是说,确定可以仅基于那些因素,或者至少部分地基于那些因素。考虑短语“基于B确定A”,虽然在这种情况下,B是影响确定A的因素,但这种短语并不能排除也基于C确定A。在其他实例中,可以仅基于B来确定A。
下面参照附图描述本公开的实施例,其中相同的附图标记指代相同的元件。
图1示出根据本公开的实施例的存储器系统。
参照图1,存储器系统110可以包括存储器装置150和控制器130。可以认为存储器系统110中的存储器装置150和控制器130是物理上单独的组件或元件。存储器装置150和控制器130可以经由至少一条数据路径来连接。例如,数据路径可以包括通道和/或通路。
根据实施例,存储器装置150和控制器130可以包括功能上划分的至少一个或多个组件或元件。进一步地,根据实施例,存储器装置150和控制器130可以利用单个芯片或多个芯片来实施。
存储器装置150可以包括多个存储块60。存储块60可以表示通过单个擦除操作将数据一起移除的一组非易失性存储器单元。尽管未示出,但是存储块60可以包括作为在单个编程操作期间一起存储数据或在单个读取操作期间一起输出数据的一组非易失性存储器单元的页面。例如,一个存储块60可以包括多个页面。
尽管图1中未示出,存储器装置150可以包括多个存储器平面或多个存储器管芯。根据实施例,存储器平面可以被认为是逻辑分区或物理分区,包括至少一个存储块60、能够控制包括多个非易失性存储器单元的阵列的驱动电路、以及可以临时存储输入到非易失性存储器单元或从非易失性存储器单元输出的数据的缓冲器。
另外,根据实施例,存储器管芯可以包括至少一个存储器平面。存储器管芯可以被理解为在物理上可区分的衬底上实施的一组组件。每个存储器管芯可以通过数据路径连接到控制器130。每个存储器管芯可以包括与控制器130交换一条数据和信号的接口。
根据实施例,存储器装置150可以包括至少一个存储块60、至少一个存储器平面或至少一个存储器管芯。根据存储器系统110的性能,图1中所示的存储器装置150的内部配置可以不同。本发明不限于图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)请求的数据存储在包括非易失性存储器单元的存储空间中,存储器系统110可以执行将主机102使用的文件系统与包括非易失性存储器单元的存储空间相关联的地址转换。例如,根据由主机102使用的文件系统来指示数据的地址可以被称为逻辑地址或逻辑块地址,同时指示包括非易失性存储器单元的存储空间中存储的数据的地址可以被称为物理地址或物理块地址。当主机102将逻辑地址与读取请求一起传输到存储器系统110时,存储器系统110搜索与该逻辑地址相对应的物理地址,然后将由该物理地址指示的位置中存储的数据传输到主机102。在这些处理期间,地址转换可以由存储器系统110执行以搜索与从主机102输入的逻辑地址相对应的物理地址。
响应于从外部装置输入的请求,控制器130可以执行数据输入/输出操作。例如,当控制器130响应于从外部装置输入的读取请求而执行读取操作时,将存储器装置150中的多个非易失性存储器单元中存储的数据输出到控制器130。对于读取操作,输入/输出(I/O)控制器192可以执行关于从外部装置输入的逻辑地址的地址转换,并且然后经由收发器198将读取请求传输到与通过地址转换获得的物理地址相对应的存储器装置150。收发器198可以将读取请求传输到存储器装置150,并且接收从存储器装置150输出的数据。收发器198可以将从存储器装置150输出的数据存储在存储器144中。I/O控制器192可以将存储器144中存储的数据作为与读取请求相对应的结果输出到外部装置。
另外,I/O控制器192可以通过收发器198将连同写入请求一起从外部装置输入的数据传输到存储器装置150。在将数据存储到存储器装置150中之后,I/O控制器192可以将与写入请求相对应的响应或答应传输到外部装置。I/O控制器192可以更新将示出数据存储在存储器装置150中的位置的物理地址与连同写入请求一起输入的逻辑地址相关联的映射数据。
当I/O控制器192执行数据输入/输出操作时,映射模式控制器196可以响应于从外部装置输入的写入请求来确定关于存储器144中存储的映射数据的存储模式。例如,映射模式控制器196可以将从外部装置输入的写入请求识别为与顺序数据或随机数据有关。根据从外部装置输入的写入请求是随机写入请求还是顺序写入请求,映射模式控制器196可以改变或调整关于映射数据的存储模式。
根据本公开的实施例,可以将与随机写入请求一起输入的数据存储到存储器装置150中的多个开放存储块中。另一方面,可以将与顺序写入请求一起输入的数据存储到存储器装置150中的单个开放存储块中。在实施例中,开放存储块是将非易失性存储器单元一起擦除的单个存储块。在另一实施例中,当存储器系统110使用超级块映射时,开放存储块是由多个存储块构成的单个超级块。例如,超级块映射将一定数量的相邻逻辑块组合在一起成为超级块。超级块映射针对每个超级块,将页面全局目录(PGD)保持在RAM中。将页面中间目录(PMD)和页面表(PT)保持在闪存中。每个LBA可以划分为逻辑块编号和逻辑页面编号,该逻辑块编号包括超级块编号和PGD索引偏移。该逻辑页面编号包括PMD索引偏移和PT索引偏移。PGD的每个条目都指向相应的PMD。PMD的每个条目都指向相应的PT。PT包含数据的物理块编号和物理页面编号。因此,超级块映射包括四个层级的逻辑至物理转换,并且提供页面映射。
存储器系统110中的存储器装置150可以支持交错操作。例如,可以针对能够独立地执行与读取请求或写入请求相对应的读取操作或写入操作的一组非易失性存储器单元来执行交错操作。因为每组非易失性存储器单元可以独立地执行数据输入/输出,所以多个组可以并行地执行多个数据输入/输出操作。例如,当控制器130可操作地联接到基于包括与页面大小相对应的缓冲器的平面支持交错操作的存储器装置150时,可以对不同的平面并行地执行与多个写入请求相对应的多个编程操作。如果存储器装置150基于管芯、通道或通路来支持交错操作,则控制器130可以并行地执行对应于与不同管芯、不同通道或不同通路相关联的多个写入请求的操作。根据本公开的实施例,可以将与随机写入请求一起输入的数据存储到多个开放存储块中,每个开放存储块被包括在存储器装置150中的可以支持交错操作的每组非易失性存储器单元中。而且,即使每组非易失性存储器单元可以支持交错操作,也可以将与顺序写入请求一起输入的数据存储到单组非易失性存储器单元的单个开放存储块中。
此处,映射数据可以包括多条映射信息,并且每条映射信息可以将逻辑地址与物理地址相关联。映射信息用于由控制器130执行的数据输入/输出操作。例如,I/O控制器192可以将映射信息用于地址转换,并且可以在将与写入请求相对应的数据编程到存储器装置150中之后生成或更新映射信息。根据实施例,映射数据包括用于将逻辑地址链接到物理地址的第一映射数据(逻辑至物理表,L2P表),以及用于将物理地址链接到逻辑地址的第二映射数据(物理至逻辑表,P2L表)。映射模式控制器196可以确定或改变关于存储器144中加载或存储的第一映射数据和/或第二映射数据的存储模式。
根据实施例,存储器装置150中存储的第一映射数据或第二映射数据中包括的每条映射信息的可以将单个逻辑地址与单个物理地址相关联。在控制器130将从存储器装置150获得的第一映射数据或第二映射数据中的至少一些加载并存储在存储器144中之后,控制器130可以将所加载的映射数据用于数据输入/输出操作。当在存储器144中为第一映射数据或第二映射数据分配足够的空间时,用于改变或调整关于第一映射数据或第二映射数据的存储模式的处理会导致开销。然而,存储器系统110中的存储器144的存储容量可能受到限制。当可能将更多条映射信息加载到存储器144中并用于数据输入/输出操作时,可以减少用于管理或控制映射数据的处理或操作(例如,加载、释放、更新、映射清除等)。当用于管理并控制第一映射数据或第二映射数据的操作减少时,可能减少关于数据输入/输出操作的开销,这极大地影响了存储器系统110的性能。
根据实施例,存储器装置150可以存储包括多条第一映射信息(逻辑至物理信息,L2P信息)的第一映射数据(L2P表),每条第一映射信息(L2P信息)用于将逻辑地址与物理地址相关联。控制器130可以生成第二映射数据(P2L表)以存储或更新在数据输入/输出操作期间所生成的用于将物理地址与逻辑地址相关联的多条第二映射信息(物理至逻辑信息,P2L信息)。例如,在控制器130将一条新数据编程到存储器装置150之后,控制器130可以将指示该条新数据被编程的位置的物理地址与对应于经编程的数据的逻辑地址相关联,以生成一条新的第二映射信息(P2L信息)。最后一条第二映射信息(P2L信息)可以指示新近存储在存储器装置150中的数据的位置。可以假设指示特定的逻辑地址(例如“0A0”)与第一物理地址(例如“123”)彼此相关联的一条第一映射信息(L2P信息)被加载并被包括在存储器144中分配的第一映射数据(L2P表)中。在控制器130执行与相同的逻辑地址(例如,“0A0”)相对应的编程操作之后,控制器130可以在存储器144中生成一条第二映射信息(P2L信息)。该条第二映射信息(P2L信息)可以将相同的逻辑地址(例如,“0A0”)与第二物理地址(例如,“876”)相关联。在这种情况下,可以确定第一映射数据(L2P表)中存储的该条第一映射信息(L2P信息)是旧信息,并且该条第二映射信息(P2L信息)是最新信息。控制器130可以基于该条第二映射信息(P2L信息)来更新存储器装置150中存储的第一映射数据(L2P表)。如上所述,控制器130可以周期性地、间歇性地或以另外确定的方式执行用于更新存储器装置150中存储的第一映射数据(L2P表)的处理(被称为映射更新或映射清除)。当执行映射更新或映射清除时,可以删除或破坏存储器144中包括多条第二映射信息(P2L信息)的第二映射数据(P2L表)。当在映射清除之后执行用于将数据编程到存储器装置150中的操作时,控制器130可以在存储器144中生成新的第二映射数据(P2L表)。
根据实施例,可以不同地确定执行映射更新或映射清除的定时。例如,在控制器130每执行10次编程操作之后,控制器130可以确定是否执行映射清除。另外,当存储器144中用于由控制器130分配的第二映射数据(P2L表)的空间被充满,从而不能将一条新的第二映射信息(P2L信息)添加到第二映射数据中时,控制器130可以执行映射清除。根据实施例,控制器130可以确定是否以设定频率(例如,每小时、每10分钟、每1分钟等)执行映射清除。
因为存储器系统110具有与外部装置的地址系统不同的其自身的地址系统(例如,可与主机102所使用的逻辑地址区分开的物理地址),映射更新或映射清除是一种在存储器系统110中独立地发生的内部操作。外部装置不传输与映射更新或映射清除有关的任何请求或命令。在存储器系统110独立地执行映射更新或映射清除的同时,数据输入/输出操作可能被延迟。因此,从外部装置的角度来看,可能将存储器系统110中的映射更新或映射清除识别为开销。另外,如果过于频繁地发生映射更新或映射清除,则数据输入/输出操作的性能可能会劣化。
另一方面,如果长时间未执行、未再执行或错误地执行映射更新或映射清除,则存储器装置150中存储的第一映射数据(L2P表)中多条无效的第一映射信息(L2P信息)可能增加。在这种情况下,存储器系统110的操作稳定性可能劣化。或者,控制器130执行用于与读取请求相对应的读取操作的地址转换所检查或参考的第二映射信息(P2L信息)的量可能增加。如果第一映射数据(L2P表)不包括新近的第一映射信息(L2P信息),则控制器130应当参考存储器144中存储第二映射数据(P2L表)来进行地址转换。另外,如果长时间不执行映射更新或映射清除,则存储器144中存储的第二映射数据(P2L表)的大小可能增加,并且存储器144的存储效率可能劣化。根据本公开的实施例的存储器系统110可以在存储器144中固定针对第二映射数据(P2L表)分配的空间的大小,以避免连续无上限地积累多条第二映射信息(P2L信息)。
参照图1,响应于从外部装置输入的写入请求,映射模式控制器196可以确定关于存储器144中存储的第二映射数据(P2L表)的存储模式。控制器130可以分配预设大小的空间以存储第二映射数据(P2L表)。响应于由映射模式控制器196选择的第二映射数据(P2L表)的存储模式,可以改变针对第二映射数据(P2L表)分配的空间充满多条第二映射信息(P2L信息)的定时。如果将映射更新或映射清除设定成在针对第二映射数据(P2L表)的空间充满时执行,则可以根据第二映射数据(P2L表)的存储模式来改变执行映射更新或映射清除的定时。
例如,当从外部装置传输的多个请求与顺序数据有关时,映射模式控制器196可以改变关于映射数据(P2L表)的存储模式,使得与多个请求与随机数据有关时的另一情况相比,可以在映射数据中添加更多条第二映射信息(P2L信息)。因此,与多个请求与随机数据有关时的另一情况相比,可以延迟多个请求与顺序数据有关时的映射清除的定时。控制器130可以减少执行针对顺序数据的多个请求相对应的操作的时间或操作裕量。通过这样,可以提高存储器系统110的数据输入/输出性能。
下文中,参照图2和图3,详细地描述由存储器系统110执行的一些操作。
参照图2,描述根据本公开的实施例的数据处理系统100。参照图2,数据处理系统100可以包括与存储器系统110可操作地接合的主机102。
例如,主机102可以包括诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置,或者诸如台式计算机、游戏机、电视(TV)、投影仪等的非便携式电子装置。
主机102还包括通常可以管理并控制在主机102中执行的功能和操作的至少一个操作系统(OS)。OS可以提供与存储器系统110接合的主机102与需要和使用存储器系统110的用户之间的互操作性。OS可以支持与用户的请求相对应的功能和操作。作为示例而非限制,根据主机102的移动性,OS可以被划分为通用操作系统和移动操作系统。根据系统需求或用户的环境,通用操作系统可以被分为个人操作系统和企业操作系统。但是,企业操作系统可以专用于确保和支持高性能计算。移动操作系统可以用于支持针对移动性的服务或功能(例如,省电功能)。主机102可以包括多个操作系统。对应于用户的请求,主机102可以运行与存储器系统110可操作地接合的多个操作系统。主机102可以将与用户的请求相对应的多个命令传输到存储器系统110中,从而在存储器系统110内执行与命令相对应的操作。
存储器系统110中的控制器130可以响应于从主机102输入的请求或命令来控制存储器装置150。例如,控制器130可以执行读取操作以将从存储器装置150读取的数据提供到主机102,并且执行写入操作(或编程操作)以将从主机102输入的数据存储在存储器装置150中。为了执行数据输入/输出(I/O)操作,控制器130可以控制和管理用于数据读取、数据编程、数据擦除等的内部操作。
根据实施例,控制器130包括主机接口132、处理器134、错误校正码(ECC)电路138、电源管理单元(PMU)140、存储器接口142和存储器144。图2中所示的控制器130中包括的组件可以根据关于存储器系统110的实施方案、操作性能等而变化。例如,存储器系统110可以利用各种类型的存储装置中的任意一种来实施,该存储器系统可以根据主机接口的协议与主机102电联接。合适的存储装置的非限制性示例包括固态驱动器(SSD),嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)、微型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连接到的位置或拨码开关(dipswitch)将多个存储器系统110划分为主设备和从设备。被设定为主设备的存储器系统110可以用作主存储器装置。IDE(ATA)已发展到Fast-ATA、ATAPI和增强型IDE(EIDE)。
串行高级技术附件(SATA)是一种与电子集成驱动器(IDE)装置所使用的各种ATA标准的并行数据通信接口兼容的串行数据通信接口。IDE接口中的40条电线可以被减少到SATA接口中的六条电线。例如,针对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或从主机102断开。SCSI可以支持15个其它装置到主机102中包括的单个收发器的连接。
串列SCSI(SAS)可以被理解为SCSI的串行数据通信版本。在SAS中,不仅主机102与多个外围装置串联连接,而且主机102与每个外围装置之间的数据传输和接收可以以串行数据通信方案来执行。SAS可以通过串行电缆而非通过并行电缆支持在主机102与外围装置之间的连接,从而可以较容易地使用SAS来管理装备并增强或提高操作可靠性和通信性能。SAS可以支持八个外部装置到主机102中包括的单个收发器的连接。
高速非易失性存储器(NVMe)是一种至少基于被设计用来提高配备有非易失性存储器系统110的主机102、服务器、计算装置等的性能和设计灵活度的高速外围组件互连(PCIe)的接口。此处,PCIe可以使用插槽或特定电缆来连接诸如计算装置的主机102和诸如外围装置的存储器系统110。例如,PCIe可以使用多个引脚(例如,18引脚、32引脚、49引脚、82引脚等)和至少一根电线(例如,x1、x4、x8、x16等),以实现每秒超过数百MB(例如,250MB/s、500MB/s、984.6250MB/s、1969MB/s等)的高速数据通信。根据实施例,PCIe方案可以实现每秒数十到数百千兆位的带宽。使用NVMe的系统可以充分利用诸如运行速度高于硬盘的SSD的非易失性存储器系统110的运行速度。
根据实施例,主机102和存储器系统110可以通过通用串行总线(USB)连接。通用串行总线(USB)是一种可扩展的、可热插拔的即插即用式串行接口,该通用串行总线可以在主机102与诸如键盘、鼠标、操纵杆、打印机、扫描仪、存储装置、调制解调器、视频摄像机等的外围装置之间提供具有成本效益的标准连接。诸如存储器系统110的多个外围装置可以联接到主机102中包括的单个收发器。
参照图2,ECC电路138可以校正待在存储器装置150中处理(例如,从存储器装置150输出)的数据的错误位,该ECC电路138可以包括错误校正码(ECC)编码器和ECC解码器。此处,ECC编码器可以对待在存储器装置150中编程的数据执行错误校正编码,以生成添加了奇偶校验位的经编码数据,并且将经编码数据存储在存储器装置150中。当控制器130读取存储器装置150中存储的数据时,ECC解码器可以检测和校正从存储器装置150读取的数据中包含的错误。换句话说,在对从存储器装置150读取的数据执行错误校正解码之后,ECC电路138可以确定错误校正解码是否已经成功并输出指示该确定的指令信号(例如,校正成功信号或校正失败信号)。ECC电路138可以使用在ECC编码过程期间生成的奇偶校验位来校正该读取数据的错误位。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC电路138可以不校正错误位,而是可以输出指示校正错误位失败的错误校正失败信号。
根据实施例,ECC电路138可以基于诸如低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、turbo码、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、分组编码调制(BCM)等编码调制来执行错误校正操作。ECC电路138可以包括用于基于上述代码中的至少一种来执行合适的错误校正操作的(多个)电路、(多个)模块、(多个)系统和/或(多个)装置的任意组合。
PMU 140可以控制在控制器130中提供的电力。PMU 140可以监测供应到存储器系统110的电力(例如,供应到控制器130的电压),并且将电力提供到控制器130中包括的组件。PMU 140不仅可以检测通电或断电,而且还可以在供应到存储器系统110的电力不稳定时生成触发信号以使存储器系统110能够紧急地备份当前状态。根据实施例,PMU140可以包括能够存储电力的装置或组件,该电力可以被放电以在紧急情况下使用。
存储器接口142可以用作用于处置在控制器130与存储器装置150之间传输的命令和数据的接口,以允许控制器130响应于从主机102输入的命令或请求来控制存储器装置150。存储器接口142可以生成用于存储器装置150的控制信号,并且在存储器装置150是闪速存储器的情况下,可以在处理器134的控制下处理输入到存储器装置150中或从存储器装置150输出的数据。例如,当存储器装置150包括NAND闪速存储器时,存储器接口142包括NAND闪存控制器(NFC)。存储器接口142可以提供用于处置控制器130与存储器装置150之间的命令和数据的接口。根据实施例,可以通过被称为闪存接口层(FIL)的固件来实施或由该固件驱动存储器接口142,作为与存储器装置150交换数据的组件。
根据实施例,存储器接口142可以支持开放的NAND闪存接口(ONFi)、切换模式等,用于与存储器装置150之间的数据输入/输出。例如,ONFi可以使用包括能够以8位数据或16位数据为单位支持双向传输和接收的至少一条信号线的数据路径(例如,通道、通路等)。控制器130与存储器装置150之间的数据通信可以通过关于异步单倍数据速率(SDR)、同步双倍数据速率(DDR)和切换双倍数据速率(DDR)的至少一个接口来实现。
存储器144可以是存储器系统110或控制器130中的一种工作存储器,同时存储在存储器系统110和控制器130中的操作中发生的或传递的临时数据或事务数据。例如,在将一条读取数据输出到主机102之前,存储器144可以响应于来自主机102的请求而临时存储从存储器装置150输出的该条读取数据。另外,在将一条写入数据编程到存储器装置150中之前,控制器130可以将从主机102输入的该条写入数据临时存储在存储器144中。当控制器130控制存储器装置150的诸如数据读取、数据写入、数据编程、数据擦除等操作时,可以将在存储器系统110的控制器130和存储器装置150之间传输或生成的一条数据存储在存储器144中。除了该条读取数据或写入数据之外,存储器144还可以存储用于执行在主机102与存储器装置150之间输入或输出一条数据的操作的信息(例如,映射数据、读取请求、编程请求等)。根据实施例,存储器144可以包括命令队列、程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。
在实施例中,存储器144可以利用易失性存储器来实施。例如,存储器144可以利用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或两者来实施。尽管图2示出例如存储器144设置在控制器130内,但是本发明不限于该布置。存储器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的数据I/O性能。
作为示例而非限制,控制器130可以识别关于与存储器装置150中包括的多个存储器管芯相关联的多个通道(或通路)中的每一个的状态。控制器130可以将每个通道或每个通路的状态确定为忙碌状态、就绪状态、活动状态、空闲状态、正常状态和/或异常状态中的至少一种。控制器确定通过哪一个通道或通路来传递指令(和/或数据)可以与例如指令(和/或数据)被传递到的哪个(哪些)管芯的物理块地址相关联。控制器130可以参考从存储器装置150传递的描述符。描述符可以包括描述关于存储器装置150的信息的块参数或页面参数,该块参数或页面参数是具有固定格式或结构的数据。例如,描述符可以包括装置描述符、配置描述符、单元描述符等。控制器130可以参考或使用描述符以确定经由哪个(哪些)通道或通路来交换指令或数据。
参照图2,存储器系统110中的存储器装置150可以包括多个存储块152、154、156。多个存储块152、154、156中的每一个包括多个非易失性存储器单元。根据实施例,存储块152、154、156可以是被一起擦除的一组非易失性存储器单元。存储块152、154、156可以包括多个页面,页面是一起被读取或被编程的一组非易失性存储器单元。尽管图2中未示出,但每个存储块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存储块可以高度集成。在实施例中,存储器装置150可以利用诸如双层单元(DLC)存储块、三层单元(TLC)存储块、四层单元(QLC)存储块及其组合的MLC存储块来实施。双层单元(DLC)存储块可以包括由每个能够存储2位数据的存储器单元实施的多个页面。三层单元(TLC)存储块可以包括由每个能够存储3位数据的存储器单元实施的多个页面。四层单元(QLC)存储块可以包括由每个能够存储4位数据的存储器单元实施的多个页面。在另一实施例中,存储器装置150可以利用包括由每个能够存储5位或更多位数据的存储器单元实施的多个页面的存储块来实施。
根据实施例,控制器130可以将存储器装置150中包括的多层单元(MLC)存储块用作将一位数据存储在一个存储器单元中的SLC存储块。多层单元(MLC)存储块的数据输入/输出速度可能比SLC存储块的数据输入/输出速度慢。也就是说,当将MLC存储块用作SLC存储块时,可以减少读取操作或编程操作的裕量。当使用多层单元(MLC)存储块作为SLC存储块时,控制器130可以利用多层单元(MLC)存储块的较快的数据输入/输出速度。例如,控制器130可以将MLC存储块用作缓冲器来临时存储一条数据,因为该缓冲器可能需要较高的数据输入/输出速度以提高该存储器系统110的性能。
进一步地,根据实施例,控制器130可以将多条数据多次编程到多层单元(MLC)中,而无需对存储器装置150中包括的特定MLC存储块执行擦除操作。通常,非易失性存储器单元具有不支持数据重写的特征。然而,控制器130可以使用多层单元(MLC)可以存储多位数据的特征,以便将多条1位数据多次编程到MLC中。对于MLC重写操作,当将一条1位数据编程到非易失性存储器单元中时,控制器130可以将编程次数存储为单独的操作信息。根据实施例,可以在相同非易失性存储器单元中重写另一条数据之前,执行使非易失性存储器单元的阈值电压均匀地均衡的操作。
在本公开的实施例中,存储器装置150被实现为诸如闪速存储器的非易失性存储器,例如NAND闪速存储器、NOR闪速存储器等。可选地,存储器装置150可以由相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)、自旋注入磁性存储器(STT-RAM)和自旋转移扭矩磁性随机存取存储器(STT-MRAM)等中的至少一种来实施。
参照图3,描述根据本公开的另一实施例的存储器系统中的控制器130。控制器130与主机102和存储器装置150协作。如图所示,控制器130包括主机接口132、闪存转换层(FTL)240以及先前结合图2识别的主机接口132、存储器接口142和存储器144。
尽管在图3中未示出,但根据实施例,图2中示出的ECC电路138可以被包括在闪存转换层(FTL)240中。在另一实施例中,ECC电路138可以被实施为控制器130中包括的或与控制器130相关联的单独的模块、电路、固件等。
主机接口132用于处置从主机102传输的命令、数据等。作为示例而非限制,主机接口132可以包括命令队列56、缓冲器管理器52和事件队列54。命令队列56可以顺序地存储从主机102接收的命令、数据等,并且按照它们被存储的顺序将它们输出到缓冲器管理器52。缓冲器管理器52可以分类、管理或调整从命令队列56接收的命令、数据等。事件队列54可以顺序地传输用于处理从缓冲器管理器52接收的命令、数据等的事件。
可以从主机102传输特性相同的多个命令或数据,例如读取命令或写入命令,或者可以将特性不同的命令和数据由主机102混合或混杂之后传输到存储器系统110。例如,可以传递用于读取数据的多个命令(读取命令),或者可以将用于读取数据的命令(读取命令)和用于编程/写入数据的命令(写入命令)交替地传输到存储器系统110。主机接口132可以将从主机102传输的命令、数据等顺序地存储到命令队列56。此后,主机接口132可以根据已经从主机102输入的命令、数据等的特性,估计或预测控制器130将执行什么类型的内部操作。主机接口132可以至少基于命令、数据等的特性来确定命令、数据等的处理顺序和优先级。根据从主机102传输的命令、数据等的特性,主机接口132中的缓冲器管理器52被配置成确定缓冲器管理器52是否应当将命令、数据等存储在存储器144中,或者缓冲器管理器52是否应当将命令、数据等传递到闪存转换层(FTL)240中。事件队列54接收从缓冲器管理器52进入的事件,从而按照所接收的顺序将事件传递到闪存转换层(FTL)240中,这些事件将由存储器系统110或控制器130响应于从主机102传输的命令、数据等而内部运行和处理。
根据实施例,图3所示的闪存转换层(FTL)240可以用作执行数据输入/输出(I/O)操作的多线程方案。多线程FTL可以使用控制器130中包括的多线程通过多核处理器来实施。
根据实施例,闪存转换层(FTL)电路240可以包括主机请求管理器(HRM)46、映射管理器(MM)44、状态管理器(GC/WL)42、和(坏)块管理器BM/BBM 48。HRM 46可以管理从事件队列54进入的事件。MM 44可以处置或控制映射数据。GC/WL 42可以执行垃圾收集(GC)或损耗均衡(WL)。BM/BBM 48可以对存储器装置150中的块运行命令或指令。
作为示例而非限制,HRM 46可以使用MM 44和BM/BBM 48处置或处理根据从主机接口132传递的读取命令和编程命令以及事件的请求。HRM 46可以向MM 44发送查询请求,以确定对应于与事件一起输入的逻辑地址的物理地址。HRM 46可以将读取请求与物理地址一起发送到存储器接口142,以处理读取请求(处置事件)。另一方面,HRM 46可以向BM/BBM 48发送编程请求(写入请求),以将数据编程到存储器装置150中特定的空页面(没有数据的页面),然后,可以向MM 44传输与该编程请求相对应的映射更新请求,以在将逻辑-物理地址彼此映射的信息中更新与被编程数据有关的项目。
此处,BM/BBM 48可以将从HRM 46、MM 44、和/或GC/WL 42传递的编程请求转换为用于存储器装置150的闪存编程请求,以管理存储器装置150中的闪存块。为了最大化或增强存储器系统110(参见图2)的编程性能或写入性能,BM/BBM 48可以收集编程请求,并且将针对多平面和单触发编程操作的闪存编程请求发送到存储器接口142。在实施例中,BM/BBM48可以将若干闪存编程请求发送到存储器接口142,以增强或最大化多通道和多方向闪存控制器的并行处理。
另一方面,BM/BBM 48可以被配置成根据有效页面的数量管理存储器装置150中的块,当需要空闲块时,选择并擦除没有有效页面的块,并且当确定应当执行垃圾收集时,选择包括最少数量的有效页面的块。GC/WL 42可以执行垃圾收集,以将有效数据移动到空块,并擦除包含经移动的有效数据的块,从而使BM/BBM 48可以有足够的空闲块(没有数据的空块)。如果BM/BBM 48将关于待擦除的块的信息提供到GC/WL 42,则GC/WL 42可以检查待擦除的块的所有闪存页面,以确定每个页面是否有效。例如,为了确定每个页面的有效性,GC/WL 42可以识别每个页面的带外(OOB)区域中记录的逻辑地址。为了确定每个页面是否有效,GC/WL 42可以将页面的物理地址与被映射到从查询请求获得的逻辑地址的物理地址进行比较。针对每个有效页面,GC/WL 42将编程请求发送到BM/BBM 48。当编程操作完成时,可以通过MM 44的更新来更新映射表。
MM 44可以管理逻辑-物理映射表。MM 44可以处理由HRM 46或GC/WL 42生成的诸如查询、更新等的请求。映射管理器44可以将整个映射表存储在存储器装置150(例如,闪存/非易失性存储器)中,并且根据存储器144的存储容量来高速缓存映射条目。当在处理查询或更新请求的同时发生映射高速缓存未命中时,MM 44可以将读取请求发送到存储器接口142,以加载存储器装置150中存储的相关映射表。当MM 44中的脏高速缓存块的数量超过一定阈值时,可以向BM/BBM 48发送编程请求,从而产生干净的高速缓存块,并且脏映射表可以被存储在存储器装置150中。
另一方面,当执行垃圾收集时,GC/WL 42将有效页面复制到空闲块中,并且HRM 46可以针对页面的相同逻辑地址来编程数据的最新版本,并且在当前发出更新请求。当GC/WL42在没有正常完成有效页面的复制的状态下请求映射更新时,MM 44可以不执行映射表更新。这是因为,如果GC/WL 42请求映射更新并且随后才完成有效页面复制,则发出了具有旧物理信息的映射请求。仅在最新映射表仍指向旧物理地址时,MM 44可以执行映射更新操作以确保准确性。
图4示出根据本公开的实施例的关于映射数据的存储模式。具体地,图4示出关于图1至3中所示的存储器144中存储的第二映射数据(P2L表)的存储模式。
参照图4,可以以两种不同的存储模式(第一类型P2L表、第二类型P2L表)来建立第二映射数据(P2L表)。当存储器144中针对第二映射数据(P2L表)分配的空间大小不改变时,可以基于存储模式来改变可以被添加到第二映射数据(P2L表)的第二映射信息(P2L信息)的量。根据实施例,存储器系统110可以响应于写入请求的类型,将关于第二映射数据(P2L表)的存储模式确定为两种不同的存储模式(第一类型P2L表、第二类型P2L表)中的一种。根据实施例,控制器130可以通过指示关于第二映射数据(P2L表)的存储模式的标识符来检查和控制关于第二映射数据(P2L表)的存储模式。
尽管未示出,根据实施例,一条第二映射信息(P2L信息)可以包括逻辑地址和物理地址,以及用于控制第二映射数据(P2L表)的参数、变量等。因为可能不会根据关于第二映射数据(P2L表)的存储模式而不同地存储这种参数、变量等,所以在图4中省略了关于参数、变量等的详细描述。
当将与写入请求相对应的数据存储在多个开放存储块中时,以第一存储模式控制的第二映射数据(第一类型P2L表)可能是合适的。例如,可以将与随机写入请求相对应的多条数据分布和存储在多个开放存储块中。可以基于对存储器装置150中的每个管芯或平面执行的任务的工作负载来确定待存储与随机写入请求相对应的该条数据的开放存储块。假设一个或多个特定平面中存在三个开放存储块。当将随机写入请求和相应的数据传递到三个开放存储块中的一个中时,控制器130可以检查三个开放存储块之中哪一个具有最小的工作负载(例如,未执行任何操作或者执行或调度最少的数据输入/输出操作的开放存储块)。可以将与多个随机写入请求相对应的多条数据存储在多个开放存储块中。在这种情况下,具有第一存储模式的第二映射数据(第一类型P2L表)可以包括一条第二映射信息(P2L信息),每条第二映射信息与每条数据相关联,包括与多个开放存储块中存储的一条数据相关联的逻辑地址(例如,LogAddr1、LogAddr2)以及指示多个开放存储块之中存储该条数据的位置的物理地址(例如,PhyAddr1、PhyAddr2)。具有第一存储模式的第二映射数据(第一类型P2L表)可以包括沿着索引0至M-1顺序地记录的M条第二映射信息(P2L信息)。此处,M可以是2或更大的整数。
当将与写入请求相对应的数据存储在单个开放存储块中时,以第二存储模式控制的第二映射数据(第二类型P2L表)可能是合适的。例如,可以将与顺序写入请求相对应的多条数据顺序地存储在单个开放存储块中。不基于对存储器装置150中的每个管芯或每个平面执行的任务的工作负载来确定待存储与顺序写入请求相对应的数据的开放存储块。基于连续的顺序写入请求,可以将当前的一条数据顺序地存储在与先前的一条数据所编程到的相同的开放存储块中。假设一个或多个特定平面中存在三个开放存储块。在将顺序写入请求和该条数据传递到相应的平面之前,控制器130可以确定待存储该条数据的开放存储块。该开放存储块可以是三个开放存储块之中与先前顺序写入请求相对应的一条数据所存储到的相同的开放存储块(例如,三个开放存储块之中的第二开放存储块)。因此,可以将与多个顺序写入请求相对应的多条数据存储在相同的开放存储块中。在这种情况下,具有第二存储模式的第二映射数据(第二类型P2L表)可以包括一条第二映射信息(P2L信息),该条第二映射信息(P2L信息)包括与相同开放存储块中存储的数据相关联的逻辑地址(例如,LogAddr1、LogAddr2、LogAddr3)。因为将多条数据顺序地编程在相同开放存储块中,所以具有第二存储模式的第二映射数据(第二类型P2L表)不包括指示存储该条数据的位置的物理地址(例如,PhyAddr1、PhyAddr2)。但是,具有第二存储模式的第二映射数据(第二类型P2L表)中的项目的索引(即,第二映射信息(P2L信息)内的逻辑地址的偏移)可以与物理地址(例如,PhyAddr1、PhyAddr2)的顺序相对应。因为控制器130不将物理地址添加到具有第二存储模式的第二映射数据(第二类型P2L表),所以可以沿着具有第二存储模式的第二映射数据(第二类型P2L表)的索引0至M-1顺序地记录2M条第二映射信息(P2L信息)。此处,M可以是2或更大的整数。
根据实施例,在将M条(0至M-1)第二映射信息(P2L信息)添加到以第二存储模式控制的第二映射数据(第二类型P2L表)的同时,可以将该M条第二映射信息(P2L信息)以与第一存储模式相同的格式存储。例如,首先将与该M条第二映射信息(P2L信息)相对应的逻辑地址LogAddr1、LogAddr2、LogAddr3、……、LogAddrM以及物理地址PhyAddr1、PhyAddr2、PhyAddr3、……、PhyAddrM添加到具有第二存储模式的第二映射数据(第二类型P2L表)。此后,控制器130可以将与第(M+1)条第二映射信息(P2L信息)相对应的逻辑地址LogAddr(M+1)添加到存储与第一条第二映射信息(P2L信息)相对应的物理地址PhyAddr1的位置。也就是说,与第一条第二映射信息(P2L信息)相对应的物理地址PhyAddr1可以被与第(M+1)条第二映射信息(P2L信息)相对应的逻辑地址LogAddr(M+1)重写。关于第(M+1)条至第2M条第二映射信息(P2L信息),先前添加的物理地址可以被新的逻辑地址顺序地重写。
第(M+1)条第二映射信息(P2L信息)可能不适用于以第二存储模式控制的第二映射数据(第二类型P2L表)。在这种情况下,控制器130可以基于已经存储在具有第二存储模式的第二映射数据(第二类型P2L表)中的M条第二映射信息(P2L信息)来执行映射更新。在执行映射更新之后,控制器130可以终止关于第二映射数据(P2L表)的第二存储模式,并且以第一存储模式控制第二映射数据(P2L表)。即使无法将第(M+1)条第二映射信息(P2L信息)添加到以第二存储模式操作的第二映射数据(第二类型P2L表),基于以第二存储模式控制的第二映射数据(第二类型P2L表)的映射更新可以不早于基于以第一存储模式控制的第二映射数据(第一类型P2L表)的映射更新。例如,因为将第一M条第二映射信息(P2L信息)添加到以第一和第二存储模式控制的第二映射数据(P2L表)的处理在两种不同的存储模式中没有实质上的区别,所以可以避免以第一或第二存储模式操作的存储器系统110的性能的劣化。另一方面,根据本公开的实施例,当存储器系统110以第二存储模式控制第二映射数据(第二类型P2L表)时,执行映射更新的定时可以与当以第一操作模式控制第二映射数据(第一类型P2L表)时的另一情况相同,或被延迟,使得能够提高存储器系统110的输入/输出性能。
当存储与顺序写入请求相对应的数据时,以第二存储模式控制的第二映射数据(第二类型P2L表)可以存储作为以第一存储模式控制的第二映射数据(第一类型P2L表)所存储的两倍的多条第二映射信息(P2L信息)。假定存储器144中针对第二映射数据分配的空间的大小不根据存储模式而变化。当以第二存储模式控制的第二映射数据(第二类型P2L表)存储作为以第一存储模式控制的第二映射数据(第一类型P2L表)所存储的两倍的多条第二映射信息(P2L信息)时,可能会延迟或推迟执行映射更新或映射清除的定时。当存储与多个顺序写入请求相对应的数据时,如果以第一存储模式控制第二映射数据(第一类型P2L表),则将在已经对M条数据编程之后执行映射更新或映射清除。另一方面,如果在存储与多个顺序写入请求相对应的数据时以第二存储模式控制第二映射数据(第二类型P2L表),则在将2M条第二映射信息(P2L信息)添加到以第二存储模式控制的第二映射数据(第二类型P2L表)之后,可以执行映射更新或映射清除。降低或减小更新或清除映射数据的频率,可以提高或增强存储器系统110的数据输入/输出性能。
图5示出以多种存储模式中的一种控制的第二映射数据(例如,P2L表)。
参照图5,可以以多种存储模式控制第二映射数据(P2L表)。可以通过标识符来识别多种存储模式。例如,假设以两种存储模式中的一种控制第二映射数据(P2L表),并且该存储模式由1位标识符识别。当标识符为“0”时,第二映射数据(P2L表)可以将一条或多条第二映射信息(P2L信息)存储到具有第一存储模式的第二映射数据(第一类型P2L表)中。另一方面,标识符“1”可以指示,第二映射数据(P2L表)可以将一条或多条第二映射信息(P2L信息)存储到具有第二存储模式的第二映射数据(第二类型P2L表)中。
在执行映射更新之后,可以在存储器144中准备或建立新的第二映射数据(P2L表)。最初可以提供具有标识符“0”的第二映射数据(P2L表)。例如,当通过随机写入操作彼此关联的逻辑地址和物理地址两者都待被添加到第一存储模式中的第二映射数据(第一类型P2L表)时,控制器130可以提供具有标识符“0”的第二映射数据(P2L表)。在不再可以将一条第二映射信息(P2L信息)添加到第一存储模式中的第二映射数据(第一类型P2L表)之前,第二映射数据(P2L表)的标识符可能不会从“0”改变为“1”。也就是说,具有标识符“0”的第二映射数据(P2L表)或第一存储模式中的第二映射数据(第一类型P2L表)总是可以存储一条包括逻辑地址和物理地址两者的第二映射信息(P2L信息)。
参照图4和图5,当在将M条第二映射信息(P2L信息)添加到具有标识符“0”的第二映射数据(P2L表)或第一存储模式中的第二映射数据(第一类型P2L表)之后生成第(M+1)条第二映射信息(P2L信息)时,控制器130可以执行映射更新。例如,在将与随机写入请求相对应的(M-1)条第二映射信息(P2L信息)添加到具有第一存储模式的第二映射数据(第一类型P2L表)之后,控制器130随后执行与顺序写入请求相对应的编程操作,以生成第M条第二映射信息(P2L信息)。即使生成了与顺序写入请求相对应的第M条第二映射信息(P2L信息),当以具有标识符“0”的第一存储模式控制当前第二映射数据(第一类型P2L表)时,控制器130可以将包括逻辑地址和物理地址的第M条第二映射信息(P2L信息)添加到第二映射数据(P2L表)。然而,当第(M+1)条第二映射信息(P2L信息)与顺序写入请求相对应时,控制器130可以在映射更新之后准备具有标识符“1”的第二映射数据(P2L表)。
当控制器130提供具有标识符“1”的第二映射数据(P2L表)时,控制器130可以响应于写入请求或写入操作的类型来改变关于第二映射数据(P2L表)的存储模式。可以假设,将与顺序写入请求相对应的M条第二映射信息(P2L信息)添加到具有第二存储模式的第二映射数据(第二类型P2L表),并且然后顺序地生成与顺序写入请求相对应的第(M+1)条第二映射信息(P2L信息)。控制器130不需要改变具有第二存储模式的第二映射数据(第二类型P2L表)的标识符,并且控制器130可以将执行映射更新的定时延迟到将第M+1至第2M条第二映射信息(P2L信息)添加到具有第二存储模式的第二映射数据(第二类型P2L表)之后。尽管未示出,将与顺序写入请求相对应的M条第二映射信息(P2L信息)添加到具有第二存储模式的第二映射数据(第二类型P2L表)之后,可以假设已经出现与随机写入请求相对应的第(M+1)条第二映射信息(P2L信息)。在这种情况下,控制器130基于具有第二存储模式的第二映射数据(第二类型P2L表)中存储的M条第二映射信息(P2L信息)来执行映射更新,并且然后将新的第二映射数据(P2L表)的标识符设定为“0”。
在将与顺序写入请求相对应的M/2条第二映射信息(P2L信息)添加到具有标识符“1”的第二映射数据(P2L表)或具有第二存储模式的第二映射数据(第二类型P2L表)之后,控制器130可能生成与随机写入请求相对应的第(M/2+1)条第二映射信息(P2L信息)。参照图4和图5,因为还未将M条第二映射信息(P2L信息)添加到具有第二存储模式的第二映射数据(第二类型P2L表),因此具有第二存储模式的第二映射数据(第二类型P2L表)具有可用空间,所以控制器130可以将与随机写入请求相对应的第(M/2+1)条第二映射信息(P2L信息)添加到具有第二存储模式的第二映射数据(第二类型P2L表)。在将与随机写入请求相对应的第(M/2+1)条第二映射信息(P2L信息)添加到具有第二存储模式的第二映射数据(第二类型P2L表)之后,控制器130可以将标识符从“1”改变为“0”。在将与随机写入请求相对应的第(M/2+1)条第二映射信息(P2L信息)添加到具有第一存储模式的第二映射数据(第二类型P2L表)(标识符从“1”改变为“0”)之前,先前添加到以第二存储模式控制的第二映射数据(第二类型P2L表)中的M/2条第二映射信息(P2L信息)可能与顺序写入请求相对应。但是,如图4所示,可以将与顺序写入请求相对应的M/2条第二映射信息(P2L信息)中的每条对应的逻辑地址和物理地址都添加到具有第二存储模式的第二映射数据(第二类型P2L表)中。因此,即使控制器130将标识符从“1”改变为“0”,用于映射更新的、先前添加到第二映射数据(P2L表)的M/2条第二映射信息(P2L信息)中可能不会发生错误或故障,该第二映射数据(P2L表)先前在第二存储模式下控制并且当前在第一存储模式下控制。
参照图4和图5,与仅在第一存储模式下控制第二映射数据(第一类型P2L表)的存储器系统相比,存储器系统110以第一存储模式(第一类型P2L表)或第二存储模式(第二类型P2L表)选择性地控制第二映射数据(P2L表),因此执行映射更新的定时可以相同或被延迟。另外,与仅在第一存储模式下控制第二映射数据(第一类型P2L表)的存储器系统相比,即使存储器系统110以第一存储模式(第一类型P2L表)或第二存储模式(第二类型P2L表)选择性地控制第二映射数据(P2L表),也可以不提前执行映射更新的定时。通过这些操作,可以提高存储器系统110的I/O性能,并且可以减小存储器系统110的I/O性能劣化的可能性。
图6示出根据本公开的实施例的在存储器装置中执行的写入操作。
参照图6,存储器装置150可以包括存储器管芯Die_1。存储器管芯Die_1可以包括多个平面Plane_1、……、Plane_k。此处,k是2或更大的整数。多个平面Plane_1、……、Plane_k中的每一个可以包括至少一个开放存储块OB#1、……、OB#k。根据实施例,平面Plane_1、……、Plane_k中的每一个可以包括至少一个开放存储块。
存储器管芯Die_1可以通过单个通道CH_0连接到控制器130。存储器装置150可以包括通过多个通道连接到控制器130的多个存储器管芯。
存储器管芯Die_1连接到通道CH_0,并且通道CH_0经由多个通路W_1、……、W_k连接到相应的存储器管芯Die_1中包括的多个平面Plane_1、……、Plane_k中的每一个。
根据实施例,连接到存储器管芯Die_1的控制器130可以基于写入请求的类型来选择至少一个平面(例如,Plane_1)中包括的多个开放存储块OB#1、……、OB#k中的至少一些,并且将与写入请求相关联的数据编程在一个或多个所选择的开放存储块中。控制器130可以将5条数据编程到特定平面中的3个开放存储块中或5个开放存储块中,每条数据与5个随机写入请求的每一个相关联,每个开放存储块被包括在5个平面的每一个中。例如,控制器130可以分布5条数据,并且将经分布的多条数据存储在多个平面Plane_1、……、Plane_k中的三个开放存储块OB#1、OB#2、OB#3中。在第一开放存储块OB#1中存储一条数据,在第二开放存储块OB#2中存储两条数据,并且在第三开放存储块OB#3中存储两条数据。在另一示例中,在第一开放存储块OB#1中存储两条数据,并且在第三开放存储块OB#3中存储三条数据。
假设控制器130在第一平面Plane_1中存储与五个顺序写入请求相对应的五条数据。如果控制器130将五条数据之中的第一条数据存储在第一平面Plane_1中的第一开放存储块OB#1中,则剩余所有四条数据也都存储在相同的第一开放存储块OB#1中。控制器130可以将与顺序写入请求相对应的所有数据存储在相同开放存储块中。然而,当不可以将更多数据编程到该开放存储块中时,控制器130可以将未经编程的数据顺序地存储在新的开放存储块中。例如,在与五个顺序写入请求相对应的五条数据之中的第二条数据存储在第一开放存储块OB#1中之后,如果存在空的(空白的)空间(或页面),则控制器130将第三条数据存储在第一开放存储块OB#1中。但是,如果不存在可用页面,则控制器130封闭第一开放存储块OB#1并且确定新的开放存储块。可以将五条数据之中的第三至第五条数据顺序地存储在新的开放存储块中。
例如,当将与顺序写入请求相对应的多条数据存储在存储器装置150的特定存储块中时,控制器130可能不记录指示数据所存储的位置的物理地址(例如,块编号和页面编号)。如果控制器130识别出第一条数据所存储的位置,则因为多条数据被顺序地编程在相同存储块中,所以控制器130可以估计余下多条数据的存储位置。当控制器130基于第一数据所存储的位置来生成第二映射数据(P2L表)时,如图4所述的以第二存储模式控制的第二映射数据(第二类型P2L表)可以包括多条第二映射信息(P2L信息),每条第二映射信息(P2L信息)与每条数据相对应。
图7示出根据本公开的实施例的操作存储器系统的方法的第一示例。
参照图7,一种用于操作存储器系统的方法可以包括:响应于从外部装置输入的写入请求的类型将数据编程在存储器装置中(步骤342),基于执行编程操作的开放存储块的数量来确定关于映射表的数据结构(步骤344),并且检查是否可以将与写入请求相对应的一条映射数据添加在具有经确定的数据结构的映射表中(步骤346)。本文中,映射表可以与第二映射数据(P2L表)相对应,并且可以通过存储模式来确定关于映射表的数据结构。进一步地,一条映射数据可以与一条第二映射信息(P2L信息)相对应。
参照图1至图7,在接收到从主机102输入的写入请求之后,存储器系统110可以响应于写入请求的类型将数据存储在存储器装置150中(步骤342)。从主机102输入到存储器系统110的写入请求可以被分类为随机写入请求和顺序写入请求。存储器系统110可以响应于写入请求的类型来确定如何将与写入请求一起输入的数据存储在存储器装置150中。根据实施例,存储器系统110可以将与多个随机写入请求相对应的多条数据分布并存储在多个开放存储块中,或者可以将与多个顺序写入请求相对应的多条数据存储在单个开放存储块中。
存储器系统110可以响应于执行编程操作的开放存储块的数量来确定关于映射表的存储模式(步骤344)。此处,存储器144中存储的映射表可以包括由多条第二映射信息(P2L信息)构成的第二映射数据(P2L表),每条信息都能够将物理地址与逻辑地址相关联。参照图1至图7,存储器系统110可以确定关于第二映射数据(P2L表)的存储模式。例如,当在单个开放存储块中执行编程操作时,存储器系统110可以确定以第二存储模式来控制第二映射数据(P2L表),使得第二映射数据(P2L表)不包括物理地址。当在多个开放存储块中执行编程操作时,存储器系统110可以确定以第一存储模式来控制包括逻辑地址以及物理地址的第二映射数据(P2L表)。
而且,存储器系统110可以确定是否可以将第二映射信息(P2L信息)添加到具有第二存储模式的第二映射数据(第二类型P2L表)(步骤346)。如果不可以将一条新的第二映射信息(P2L信息)存储在具有第二存储模式的第二映射数据(第二类型P2L表)中(步骤346中为否),则存储器系统110可以执行映射更新或映射清除(步骤348)。另一方面,如果可以将一条新的第二映射信息(P2L信息)添加到具有第二存储模式的第二映射数据(第二类型P2L表)(步骤346中为是),则存储器系统可以响应于写入请求的类型将另一条数据存储在存储器装置中(步骤342)。
例如,是否将由编程操作生成的一条第二映射信息(P2L信息)添加到第二映射数据(P2L表)可以取决于存储器144中建立的关于第二映射数据(P2L表)的存储模式以及写入请求的类型。例如,如果存储器144中的第二映射数据(P2L表)是具有第二存储模式的第二映射数据(第二类型P2L表),则可以将与当前随机写入请求相关联的一条数据编程在不同于通过先前的写入操作对一条数据编程的开放存储块的开放存储块中。根据实施例,如果以第二存储模式控制的第二映射数据(第二类型P2L表)可以存储通过与当前随机写入请求相对应的写入操作生成的一条第二映射信息(P2L信息),则存储器系统110可以将包括逻辑地址和物理地址的该条第二映射信息(P2L信息)存储在以第二存储模式控制的第二映射数据(第二类型P2L表)中。
在存储器系统110接收到多个写入请求之后,可以将与多个写入请求相对应的多条数据存储在存储器装置150中。当多个写入请求是相同类型时,存储器系统110不需要调整或改变关于第二映射数据(P2L表)的存储模式。然而,当多个写入请求包括随机写入请求和顺序写入请求两者时,存储器系统110可以改变或调整关于第二映射数据(P2L表)的存储模式。
例如,可以假设存储器系统110接收与3个随机写入请求相关联的多条数据,并且然后接收与20个顺序写入请求相关联的多条数据。另外,可以假设以第一存储模式控制存储器144中的第二映射数据(第一类型P2L表),并且第二映射数据(P2L表)可以具有10条第二映射信息(P2L信息)的存储容量。将与3个随机写入请求相关联的多个数据编程在存储器装置150中的存储器系统110可以将3条第二映射信息(P2L信息)添加到以第一存储模式控制的第二映射数据(第一类型P2L表)。根据实施例,存储器系统110可以将在执行与20个顺序写入请求相对应的操作的同时生成的多条第二映射信息(P2L信息)顺序地添加到在第一存储模式下控制的第二映射数据(第一类型P2L表)。然而,即使在执行与顺序写入请求相对应的操作之后生成一条第二映射信息(P2L信息),逻辑地址和物理地址都可以被添加到以第一存储模式控制的第二映射数据(第一类型P2L表)。当将与七个顺序写入请求相对应的七条第二映射信息(P2L信息)添加到具有第一存储模式的第二映射数据(第一类型P2L表)时,不能将第8条(新的)第二映射信息(P2L信息)添加到以第一存储模式控制的第二映射数据(第一类型P2L表)中。此时,存储器系统110可以执行映射清除或映射更新(步骤348)。
存储器系统110可以识别出用于执行映射清除或映射更新的第二映射数据(P2L表)包括与随机写入请求相对应的3条第二映射信息(P2L信息)和与顺序写入请求相对应的7条第二映射信息(P2L信息)。根据实施例,存储器系统110可以基于写入请求的历史来在映射清除或映射更新之后确定关于第二映射数据(P2L表)的存储模式。在上述情况中,即使在映射更新之前以第一存储模式操作第二映射数据(第一类型P2L表),存储器系统110也可以设定具有第二存储模式的第二映射数据(第二类型P2L表)。例如,图1中描述的映射模式控制器194可以改变关于第二映射数据(P2L表)的存储模式。
虽然以第一存储模式控制的第二映射数据(第一类型P2L表)具有10条第二映射信息(P2L信息)的存储容量,但是具有第二存储模式的第二映射数据(第二类型P2L表)可以存储20条第二映射信息(P2L信息)。在生成具有第二存储模式的第二映射数据(第二类型P2L表)之后,存储器系统110可以执行与20个顺序写入请求之中的剩余13个顺序写入请求相对应的编程操作。可以将在编程操作之后所生成的所有13条第二映射信息(P2L信息)添加到以第二存储模式控制的第二映射数据(第二类型P2L表)。通过该过程,可以延迟映射清除或映射更新,使得存储器系统110可以更快地完成用于将与20个顺序写入请求相关联的多条数据编程到存储器装置150的操作。
图8示出根据本公开的实施例的选择关于映射数据的存储模式的方法。具体地,图8描述存储器系统110确定存储器144中存储的第二映射数据(P2L表)的存储模式的方法。存储器装置150可以包括五个开放存储块Open#1、Open#2、Open#3、Open#4、Open#5。根据实施例,五个开放存储块Open#1、Open#2、Open#3、Open#4、Open#5可以被包括在至少一个平面或至少一个管芯中。
参照图8,存储器系统110可以分析或监测已经执行或调度的任务的工作负载。根据实施例,已经执行的任务的工作负载可以包括在设定的裕量内执行的写入操作。例如,在过去的10分钟内在存储器系统110中完成执行的写入操作可以被视为已经执行的任务的工作负载。根据用户的使用模式,在10分钟内完成执行的写入操作的数量可以不同。如果在10分钟内将100个写入请求和与每个写入请求相对应的数据(例如,100条数据)存储在存储器装置150中,则已经执行的任务的工作负载可以被理解为与100个写入请求相对应的100个写入操作。此处,假设写入操作以页面为单位执行,100条数据可以分别被存储在100个页面中。如果与100个写入请求相关联的100条数据全部存储在相同的第三开放存储块Open#3中,则存储器系统110可以确定利用第二存储模式(第二类型)建立存储器144中存储的第二映射数据(P2L表)。
可以将与100条写入请求相关联的100条数据分布并存储在多个开放存储块中。参照图8,在第2开放存储块Open#2中存储35条数据,在第3开放存储块Open#3中存储25条数据,并且在第4开放存储块Open#4中可以存储40条数据。在这种情况下,存储器系统110可以确定第二映射数据(第一类型P2L表)以第一存储模式操作。
根据另一实施例,已经执行的任务的工作负载可以包括设定数量的经调度写入操作,而不考虑针对每个写入操作所确定的操作时间/裕量。例如,已经执行的任务的工作负载可以包括与200个写入请求相对应的写入操作。存储器系统110可以通过与200个写入请求相对应的写入操作来检查将多条数据存储在单个开放存储块还是存储在多个开放存储块中。如上所述,存储器系统110响应于已经执行与200个写入请求相对应的写入操作的开放存储块的数量而确定存储器144中存储的第二映射数据(P2L表)的存储模式。
根据另一实施例,可以基于用于执行映射清除或映射更新的第二映射数据(P2L表)来确定已经执行的任务的工作负载。在映射清除或映射更新时与第二映射数据(P2L表)中包括的多条第二映射信息(P2L信息)相对应的写入操作可以被视为已经执行的任务的工作负载。如果添加到第二映射数据(P2L表)的多条第二映射信息(P2L信息)为100条,则已经执行的任务的工作负载可以与已经执行对应于100个写入请求的写入操作的开放存储块的数量相对应。可以基于任务的工作负载来确定存储器144中存储的第二映射数据(P2L表)的存储模式。
图9示出根据本公开的实施例的操作存储器系统的方法的第二示例。图8描述存储器系统110确定存储器144中存储的第二映射数据(P2L表)的存储模式的方法,而图9示出用于添加、控制或管理存储器系统110的存储器144内以第二存储模式控制的具有第二存储模式的第二映射数据(第二类型P2L表)中的一条第二映射信息(P2L信息)的方法。
参照图9,一种用于操作存储器系统的方法开始以下操作:在响应于写入请求将数据编程到存储器装置150之后,将一条第二映射信息(P2L信息)添加到具有第二存储模式的第二映射数据(第二类型P2L表)(步骤360)。在这种情况下,可以以第二存储模式控制第二映射数据(第二类型P2L表)。此处,从主机102输入的写入请求可以是随机写入请求或顺序写入请求。在存储器系统110将与写入请求一起传送的数据编程到存储器装置150之后,存储器系统110可以生成用于将物理地址与逻辑地址相关联的一条第二映射信息(P2L信息),该物理地址指示存储器装置150中存储的数据的位置,该逻辑地址与经编程的数据相关联并且从主机102输入。存储器系统110可以执行将该条第二映射信息(P2L信息)添加到具有第二存储模式的第二映射数据(第二类型P2L表)的操作。
为了将该条第二映射信息(P2L信息)添加到具有第二存储模式的第二映射数据(第二类型P2L表),存储器系统110可以检查将该条第二映射信息(P2L信息)添加到具有第二存储模式的第二映射数据(第二类型P2L表)是否合适(步骤362)。例如,存储器系统110可以检查待添加到具有第二存储模式的第二映射数据(第二类型P2L表)的该条第二映射信息(P2L信息)是通过对应于顺序写入请求的写入操作生成的,还是通过对应于随机写入请求的写入操作生成的。根据实施例,存储器系统110可以检查当前经编程的数据和先前经编程的数据是否存储在相同开放存储块中。
如果该条第二映射信息(P2L信息)适用于具有第二存储模式的第二映射数据(第二类型P2L表)(步骤362中为是),存储器系统110确定如何将该条第二映射信息(P2L信息)添加到以第二存储模式控制的第二映射数据(第二类型P2L表)中。存储器系统110可以检查已添加到以第二存储模式控制的第二映射数据(第二类型P2L表)的多条第二映射信息(P2L信息)的数量是否小于可以被添加到以第二存储模式控制的第二映射数据(第二类型P2L表)的多条第二映射信息(P2L信息)的最大数量的1/2(步骤364)。例如,可以假设可以将20条(例如,图4中的2*M条)第二映射信息(P2L信息)存储在以第二存储模式控制的第二映射数据(第二类型P2L表)中。如果在以第二存储模式控制的第二映射数据(第二类型P2L表)中已经添加了8条第二映射信息(P2L信息)(步骤364中为是),则可以将一条新添加的(第9条)第二映射信息(P2L信息)添加到在第二存储模式下控制的第二映射数据(第二类型P2L表)(步骤366)。但是,如果以第二存储模式控制的第二映射数据(第二类型P2L表)中存储了10条第二映射信息(P2L信息)(步骤364为否),则存储器系统110可以利用新添加的一条(第11条)第二映射信息(P2L信息)来重写第二存储模式中的第二映射数据(第二类型P2L表)中存储的一些数据(步骤368)。参照图4和图5,第一条经存储的第二映射信息(P2L信息)的物理地址可以被第11条第二映射信息(P2L信息)的逻辑地址重写。尽管未示出,但在将第11条第二映射信息(P2L信息)添加到以第二存储模式控制的第二映射数据(第二类型P2L表)之后,存储器系统110可以返回到添加与另一写入请求相对应的另一条第二映射信息(P2L信息)的操作(步骤360)。
如果该条第二映射信息(P2L信息)不适用于具有第二存储模式的第二映射数据(第二类型P2L表)(步骤362中为否),则存储器系统110可以检查是否可以将该条第二映射信息(P2L信息)添加到当前状态的第二映射数据(P2L表)中。例如,当第二映射数据(P2L表)是具有第二存储模式的第二映射数据(第二类型P2L表)时,可能基于与随机写入请求相对应的写入操作来生成一条第二映射信息(P2L信息)。尽管第二映射数据(P2L表)是具有第二存储模式的第二映射数据(第二类型P2L表),但是存储器系统110可以检查是否可以将包括逻辑地址和物理地址的该条第二映射信息(P2L信息)添加在以第二存储模式控制的第二映射数据(第二类型P2L表)中。
根据实施例,参照图4和图5,存储器系统110确定是否可以将一条第二映射信息(P2L信息)添加到具有第二存储模式的第二映射数据(第二类型P2L表)中(步骤370)。该进程(步骤370)基本上与以下进程相同:确定具有第二存储模式的第二映射数据(第二类型P2L表)中存储的多条第二映射信息(P2L信息)的数量是否小于能够添加到具有第二存储模式的第二映射数据(第二类型P2L表)的多条第二映射信息(P2L信息)的最大数量的1/2(步骤364)。例如,假设可以将20条(例如,图4中的2*M条)第二映射信息(P2L信息)存储在以第二存储模式操作的第二映射数据(第二类型P2L表)中。如果尚未存储10条第二映射信息(P2L信息),则该条第二映射信息(P2L信息)的逻辑地址和物理地址都可以添加到具有第二存储模式的第二映射数据(第二类型P2L表)中,而不考虑该第二映射信息(P2L信息)是否适用于以第二存储模式控制的第二映射数据(第二类型P2L表)。另一方面,从第11条第二映射信息(P2L信息)起或之后,可以根据该条第二映射信息(P2L信息)是否适用于以第二存储模式控制的第二映射数据(第二类型P2L表)来确定是否执行映射更新。例如,可以将不适用于以第二存储模式操作的第二映射数据(第二类型P2L表)的第九条第二映射信息(P2L信息)(步骤370中为是)添加到具有第二存储模式的第二映射数据(第二类型P2L表)中(步骤376)。在不适用于以第二存储模式操作的第二映射数据(第二类型P2L表)的第十一条第二映射信息(P2L信息)(步骤370中为否)的情况下,存储器系统110可以执行映射更新(步骤372)。
如果在以第二存储模式操作的第二映射数据(第二类型P2L表)中存在可用空间来存储包括逻辑地址和物理地址两者的一条第二映射信息(P2L信息)(步骤370中为是),则存储器系统110可以将包括逻辑地址和物理地址两者的该条第二映射信息(P2L信息)添加到以第二存储模式控制的第二映射数据(第二类型P2L表)中(步骤376)。这样,存储器系统110可以减少改变或调整第二映射数据(P2L表)的存储模式的频率,并且可以避免提前映射更新或映射清除。因此,存储器系统110可以减少数据输入/输出操作中导致的开销。
另一方面,如果在以第二存储模式操作的第二映射数据(第二类型P2L表)中不存在可用空间来存储包括逻辑地址和物理地址两者的该条第二映射信息(P2L信息)(步骤370中为否),则存储器系统110可以基于该第二映射数据来执行映射清除或映射更新(步骤372)。在基于第二映射数据执行映射清除或映射更新之后,存储器系统110不需要保持该第二映射数据。存储器系统110可以删除、破坏或释放用于执行映射清除或映射更新的第二映射数据的项目。
在存储器系统110添加不适用于以第二存储模式操作的第二映射数据(第二类型P2L表)的一条第二映射信息(P2L信息)之后(步骤376),或在执行映射清除或映射更新之后(步骤372),将第二映射数据的存储模式从第二存储模式(第二类型)改变为第一存储模式(第一类型)(步骤374)。尽管未示出,参照图5,在存储器系统110将第二映射数据(P2L表)的存储模式从第二存储模式(第二类型)改变为第一存储模式(第一类型)之后,第二映射数据(P2L表)的存储模式在执行映射更新或映射清除之前可以不再改变。
如上所述,当第二映射数据(第二类型P2L表)以第二存储模式操作时,存储器系统110可以将一条第二映射信息(P2L信息)添加到具有第二存储模式的第二映射数据(第二类型P2L表)或执行映射更新。根据实施例,可以根据第二映射数据(P2L表)的存储模式和每个生成一条第二映射信息(P2L信息)的写入请求的类型来确定映射更新。根据写入请求的类型,可以确定所生成的一条第二映射信息(P2L信息)是否适用于被添加到具有第二存储模式的第二映射数据(第二类型P2L表)中。可以在第二映射数据(P2L表)中存储的多条第二映射信息(P2L信息)的数量可以根据第二映射数据(P2L表)的存储模式而变化。另外,是否将该条第二映射信息(P2L信息)添加到该第二映射数据(P2L表)可以根据生成该第二映射信息(P2L信息)的写入请求的类型而变化。
如果当第二映射数据(P2L表)可以以多种存储模式中的一种操作时该第二映射数据(P2L表)的存储模式频繁改变,则可能不会减少在由存储器系统110执行的数据输入/输出操作期间的开销。通过根据本公开的实施例,参照图8描述的存储器系统的操作方法,可以减少改变第二映射数据(P2L表)的存储模式的计数,并且可以保持或延迟基于第二映射数据(P2L表)的映射清除或映射更新。
图10示出根据本公开的实施例的包括与存储器系统中的不同类型的写入请求相对应的第二映射信息(P2L信息)的映射数据。参照图4至图9,存储器144中的第二映射数据(P2L表)包括通过与不同类型的写入请求相对应的操作而生成的多条第二映射信息(P2L信息)。
参照图4,可以通过改变关于第二映射数据(P2L表)的存储模式,将与不同类型的写入请求相对应的多条第二映射信息(P2L信息)存储在第二映射数据(P2L表)中。根据实施例,可以将与在执行与随机写入请求相对应的操作之后生成的一条第二映射信息(P2L信息)相对应的逻辑地址LogAddr1和物理地址PhyAddr1都添加到具有第一存储模式的第二映射数据(第一类型P2L表)中。另一方面,可以仅将在与顺序写入请求相对应的操作之后生成的一条第二映射信息(P2L信息)内的逻辑地址LogAddr1添加到具有第二存储模式的第二映射数据(第二类型P2L表)种,而不添加与对应于该条第二映射信息(P2L信息)的逻辑地址LogAddr1相关联的物理地址PhyAddr1。
参照图9,当存储器144中的第二映射数据(P2L表)以第二存储模式(第二类型)操作时,在执行与随机写入请求相对应的写入操作之后,可以生成一条第二映射信息(P2L信息)(步骤362中为否)。在这种情况下,当确定可以将该条第二映射信息(P2L信息)添加到具有第二存储模式的第二映射数据(第二类型P2L表)(步骤370中为是)时,可以将包括逻辑地址LogAddr1和物理地址PhyAddr1的该第二映射信息(P2L信息)添加到以第二存储模式操作的第二映射数据(第二类型P2L表)中。
图10示出在顺序地添加通过与多个顺序写入请求相对应的写入操作生成的多条第二映射信息(P2L信息)之后,将通过与两个随机写入请求相对应的操作生成的两条第二映射信息(P2L信息)进一步添加到以第二存储模式操作的第二映射数据(第二类型P2L表)时的情况。参照图10,在将与多个顺序写入请求相对应的写入操作之后生成的多条第二映射信息(P2L信息)顺序地添加到以第二存储模式控制的第二映射数据(第二类型P2L表)之后,可以执行与随机写入请求相对应的写入操作。当存在超过1/2的可用空间可以将另一条第二映射信息(P2L信息)存储在以第二存储模式操作的第二映射数据(第二类型P2L表)中(也就是说,第二映射数据存储少于M条的第二映射信息(P2L信息))时,可以添加与随机写入请求相对应的包括逻辑地址和物理地址两者的该条第二映射信息(P2L信息)。在这种情况下,不执行重写。在将与两个随机写入请求之中的第一随机写入请求相关联的一条数据编程在存储器装置150中之后,存储器系统110生成包括逻辑地址LogAddr_p和物理地址PhyAddr_x的单条第二映射信息(P2L信息)。如果在以第二存储模式操作的第二映射数据(第二类型P2L表)中存在存储空间(空的空间),则即使包括逻辑地址LogAddr_p和物理地址PhyAddr_x的该条第二映射信息(P2L信息)是通过在与多个顺序写入请求相对应的写入操作之后在没有映射更新的情况下所执行的编程操作生成的,存储器系统110也可以添加该条第二映射信息(P2L信息)来作为第(M-1)条第二映射信息(P2L信息)。
参照图9,在将包括逻辑地址LogAddr_p和物理地址PhyAddr_x的该条第二映射信息(P2L信息)添加到具有第二存储模式的第二映射数据(第二类型P2L表)中之后,存储器系统110可以将该第二映射数据(P2L表)的存储模式设定为第一存储模式。与两个随机写入请求之中的第二随机写入请求相对应的一条第二映射信息(P2L信息)包括逻辑地址LogAddr_s和物理地址PhyAddr_b。包括逻辑地址LogAddr_s和物理地址PhyAddr_b的该条第二映射信息(P2L信息)可以作为第M条第二映射信息(P2L信息)而被添加到被改变为第一存储模式的第二映射数据(第一类型P2L表)。
图11示出根据本公开的实施例的操作存储器系统的方法的第三示例。图11示出一种用于基于存储器144中的第二映射数据(P2L表)执行读取操作或使用第二映射数据(P2L表)进行映射更新的方法。
参照图4和图11,存储器144中的第二映射数据(P2L表)可以以不同的存储模式操作。根据实施例,以第一存储模式操作的第二映射数据(第一类型P2L表)中包括的一条第二映射信息(P2L信息)可以包括逻辑地址LogAddr和物理地址PhyAddr。例如,在执行映射清除或映射更新之前,当接收到对与第二映射数据中包括的一条第二映射信息(P2L信息)相关联的数据的读取请求时,存储器系统110可以基于比第一映射数据(L2P表)具有更新近的信息的第二映射数据来执行与读取请求相对应的读取操作。存储器系统110可以检查与读取请求一起传输的逻辑地址是否被包括在该第二映射数据中,并且可以从与匹配的逻辑地址相关联的该条第二映射信息(P2L信息)中获得物理地址(获得PhyAddr)。
另外,因为在以第一存储模式操作的第二映射数据(第一类型P2L表)中包括的该条第二映射信息(P2L信息)包括逻辑地址(LogAddr)和物理地址(PhyAddr),所以执行映射更新或映射清除的存储器系统110可以基于逻辑地址来区分应当更新存储器装置150中的第一映射数据(L2P表)的哪一部分。
以第二存储模式操作的第二映射数据(第二类型P2L表)中包括的第二映射信息(P2L信息)可以仅包括逻辑地址LogAddr,而不包括物理地址PhyAddr。尽管物理地址PhyAddr未被包括在以第二存储模式操作的第二映射数据(第二类型P2L表)中,但是因为将第二映射信息(P2L信息)顺序地添加到具有第二存储模式的第二映射数据(第二类型P2L表),所以可以通过具有第二存储模式的第二映射数据(第二类型P2L表)中的索引、顺序或次序来区分多条第二映射信息(P2L信息)。另外,第二映射信息(P2L信息)可能不具有关于存储器装置150中的数据被存储在的存储块的信息(例如,块编号),但是存储器系统110具有关于执行与顺序写入请求相对应的写入操作的特定开放存储块(WB开放块的经更新的NOP)的信息。因此,当关于特定开放存储块的信息与指示以第二存储模式操作的第二映射数据(第二类型P2L表)中包括的逻辑地址(LogAddr)的次序或顺序的偏移进行组合时,存储器系统110可以找到每条数据实际所存储的位置。通过这种方式,存储器系统110可以基于第二映射数据(P2L表)执行用于更新第一映射数据(L2P表)的映射更新,或者基于作为与逻辑地址相对应的最新的第二映射信息(P2L信息)的第二映射数据(P2L表),响应于读取请求来执行地址转换。
根据本公开的实施例的存储器系统可以改变关于在高速缓存存储器或易失性存储器中临时存储的映射数据的存储模式,从而有效地控制高速缓存存储器或易失性存储器。
进一步地,根据本公开的另一实施例的存储器系统可以将更多的第二映射信息(P2L信息)添加到高速缓存存储器或易失性存储器中存储的映射数据中,从而可以延迟存储器系统中的映射更新的定时,并且可以提高或增强数据输入/输出性能。
另外,根据本公开的另一实施例的存储器系统可以基于写入请求的类型来改变关于高速缓存存储器或易失性存储器中存储的映射数据的存储模式,以提高存储器系统的数据输入/输出速度,从而提高或增强存储器系统的性能。
尽管已经针对特定实施例说明和描述了本教导,但根据本公开,对于本领域技术人员将显而易见的是,在不脱离如所附权利要求所限定的本公开的精神和范围的情况下,可以进行各种改变和修改。
Claims (20)
1.一种存储器系统,包括:
存储器装置,包括至少一个开放存储块;以及
控制器:
将连同写入请求一起从外部装置输入的数据编程到所述至少一个开放存储块中,
基于所述写入请求的类型,确定关于映射数据的存储模式,以及
基于所述映射数据,执行映射更新,
其中所述控制器进一步:基于所述存储模式和所述写入请求的类型,确定执行所述映射更新的定时。
2.根据权利要求1所述的存储器系统,其中连同所述写入请求一起输入的所述数据被编程到的所述至少一个开放存储块的数量取决于所述写入请求的类型。
3.根据权利要求1所述的存储器系统,其中所述写入请求包括随机写入请求和顺序写入请求,并且与所述顺序写入请求相对应的数据被编程到所述至少一个开放存储块中的单个开放存储块中。
4.根据权利要求3所述的存储器系统,
其中所述存储器装置包括多个平面,每个平面包括能够存储具有页面大小的数据的至少一个缓冲器,并且
其中所述平面分别包括所述至少一个开放存储块。
5.根据权利要求1所述的存储器系统,其中所述映射数据包括多条第二映射信息,每条第二映射信息将物理地址链接到逻辑地址。
6.根据权利要求5所述的存储器系统,其中所述控制器将所述存储模式确定为以下中的一种:
第一存储模式,其中将与每条第二映射信息相对应的所述逻辑地址和所述物理地址存储在所述映射数据中;以及
第二存储模式,其中仅将与每条第二映射信息相对应的所述逻辑地址存储在所述映射数据中,并且通过所述映射数据内所存储的逻辑地址的索引来识别与所存储的逻辑地址相关联的物理地址。
7.根据权利要求6所述的存储器系统,其中所述控制器进一步:在关于所述映射数据的所述存储模式是所述第一存储模式时,即使所述写入请求的类型改变,也保持所述存储模式。
8.根据权利要求6所述的存储器系统,
其中所述控制器进一步:在关于所述映射数据的所述存储模式是所述第二存储模式时,根据所述写入请求的类型和所述映射数据内的可用空间,将一条新的第二映射信息添加到所述映射数据中或者执行所述映射更新;并且
其中所述控制器进一步:通过将与所述一条新的第二映射信息相对应的逻辑地址和物理地址添加到所述映射数据或者通过利用与所述一条新的第二映射信息相对应的所述逻辑地址来重写所述映射数据中存储的物理地址,来将所述一条新的第二映射信息添加到所述映射数据中。
9.根据权利要求5所述的存储器系统,
其中所述存储器装置存储第一映射数据,并且
其中所述映射更新包括以下操作:在所述映射数据对于存储一条新的第二映射信息不可用时,基于所述第二映射信息来更新所述第一映射数据。
10.一种操作存储器系统的方法,包括:
根据从外部装置输入的写入请求的类型,将数据编程到包括至少一个开放存储块的存储器装置中;
基于所述写入请求的类型,确定关于映射数据的存储模式;并且
基于所述映射数据,执行映射更新,
其中执行所述映射更新包括:基于所述存储模式和所述写入请求的类型,确定执行所述映射更新的定时。
11.根据权利要求10所述的方法,其中连同所述写入请求一起输入的所述数据被编程到的所述至少一个开放存储块的数量取决于所述写入请求的类型。
12.根据权利要求10所述的方法,其中所述写入请求包括随机写入请求和顺序写入请求,并且与所述顺序写入请求相对应的数据被编程到所述至少一个开放存储块中的单个开放存储块中。
13.根据权利要求10所述的方法,
其中所述存储器装置包括多个平面,每个平面包括能够存储具有页面大小的数据的至少一个缓冲器,并且
其中所述平面分别包括所述至少一个开放存储块。
14.根据权利要求10所述的方法,其中所述映射数据包括多条第二映射信息,每条第二映射信息将物理地址链接到逻辑地址。
15.根据权利要求14所述的方法,其中将所述存储模式确定为以下中的一种:
第一存储模式,其中将与每条第二映射信息相对应的所述逻辑地址和所述物理地址存储在所述映射数据中;以及
第二存储模式,其中仅将与每条第二映射信息相对应的所述逻辑地址存储在所述映射数据中,并且通过所述映射数据内所存储的逻辑地址的索引来识别与所存储的逻辑地址相关联的物理地址。
16.根据权利要求15所述的方法,进一步包括:在关于所述映射数据的所述存储模式是所述第一存储模式时,即使所述写入请求的类型改变,也保持所述存储模式。
17.根据权利要求15所述的方法,进一步包括:
在关于所述映射数据的所述存储模式是所述第二存储模式时,根据所述写入请求的类型和所述映射数据内的可用空间,将一条新的第二映射信息添加到所述映射数据中或者执行所述映射更新;并且
其中将所述一条新的第二映射信息添加到所述映射数据中包括:将与所述一条新的第二映射信息相对应的逻辑地址和物理地址添加到所述映射数据,或者利用与所述一条新的第二映射信息相对应的所述逻辑地址来重写所述映射数据中存储的物理地址。
18.根据权利要求14所述的方法,
其中所述存储器装置存储第一映射数据,并且
其中所述映射更新包括以下操作:在所述映射数据对于存储一条新的第二映射信息不可用时,基于所述第二映射信息来更新所述第一映射数据。
19.一种控制器,所述控制器生成将不同的地址方案彼此关联以使多个装置相互接合的第一映射信息和第二映射信息,每个装置具有不同的地址方案,所述控制器使一个或多个处理器执行操作,包括:
根据从外部装置输入的写入请求的类型,将数据编程到包括至少一个开放存储块的存储器装置中;
基于所述写入请求的类型,确定关于映射数据的存储模式;并且
基于所述映射数据,执行映射更新,
其中执行所述映射更新包括:基于所述存储模式和所述写入请求的类型,确定执行所述映射更新的定时。
20.根据权利要求19所述的控制器,
其中,在所述写入请求是顺序写入请求时,将连同所述写入请求一起输入的数据编程到单个开放存储块中,并且
其中确定所述存储模式包括:以存储模式控制关于将物理地址与逻辑地址相关联的第二映射信息的所述映射数据,在所述存储模式中,仅将所述逻辑地址记录在所述映射数据中,并且通过所述映射数据内所记录的逻辑地址的索引来识别与所记录的逻辑地址相关联的物理地址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200042078A KR20210124705A (ko) | 2020-04-07 | 2020-04-07 | 메모리 시스템 내 맵 정보를 제어하는 장치 및 방법 |
KR10-2020-0042078 | 2020-04-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113495852A true CN113495852A (zh) | 2021-10-12 |
Family
ID=77922214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010987059.XA Withdrawn CN113495852A (zh) | 2020-04-07 | 2020-09-18 | 控制存储器系统中的映射数据的设备和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210311879A1 (zh) |
KR (1) | KR20210124705A (zh) |
CN (1) | CN113495852A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116010299A (zh) * | 2023-03-29 | 2023-04-25 | 摩尔线程智能科技(北京)有限责任公司 | 一种数据处理方法、装置、设备及可读存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11675509B2 (en) * | 2020-10-29 | 2023-06-13 | Micron Technology, Inc. | Multiple open block families supporting multiple cursors of a memory device |
EP4361822A1 (en) * | 2022-10-26 | 2024-05-01 | Samsung Electronics Co., Ltd. | Storage device and electronic device including the same |
-
2020
- 2020-04-07 KR KR1020200042078A patent/KR20210124705A/ko unknown
- 2020-08-18 US US16/996,243 patent/US20210311879A1/en not_active Abandoned
- 2020-09-18 CN CN202010987059.XA patent/CN113495852A/zh not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116010299A (zh) * | 2023-03-29 | 2023-04-25 | 摩尔线程智能科技(北京)有限责任公司 | 一种数据处理方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
KR20210124705A (ko) | 2021-10-15 |
US20210311879A1 (en) | 2021-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11429307B2 (en) | Apparatus and method for performing garbage collection in a memory system | |
US20210064293A1 (en) | Apparatus and method for transmitting map information in a memory system | |
US20210279180A1 (en) | Apparatus and method for controlling map data in a memory system | |
CN112148632A (zh) | 用于改善存储器系统的输入/输出吞吐量的设备和方法 | |
CN113867995A (zh) | 处理坏块的存储器系统及其操作方法 | |
US20210311879A1 (en) | Apparatus and method for controlling map data in a memory system | |
CN114356207A (zh) | 用于存储器系统中的数据通信的校准设备和方法 | |
US11620213B2 (en) | Apparatus and method for handling data stored in a memory system | |
US11507501B2 (en) | Apparatus and method for transmitting, based on assignment of block to HPB region, metadata generated by a non-volatile memory system | |
US11550502B2 (en) | Apparatus and method for controlling multi-stream program operations performed in a memory block included in a memory system | |
US20210334034A1 (en) | Apparatus and method for protecting data 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 | |
US11941289B2 (en) | Apparatus and method for checking an error of a non-volatile memory device in a memory system | |
CN116136739A (zh) | 用于改善存储装置的数据输入/输出性能的设备和方法 | |
CN113687769A (zh) | 用于提高数据处理系统中的操作效率的设备和方法 | |
CN113050881A (zh) | 提高存储器系统输入/输出吞吐量的设备和方法 | |
CN113050882A (zh) | 用于提高存储器系统的输入/输出吞吐量的设备和方法 | |
US12032843B2 (en) | Apparatus and method for increasing operation efficiency in data processing system | |
US11775426B2 (en) | Apparatus and method for securing a free memory block in a memory system | |
US11893269B2 (en) | Apparatus and method for improving read performance in a 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: 20211012 |
|
WW01 | Invention patent application withdrawn after publication |