CN110618945B - 存储系统 - Google Patents
存储系统 Download PDFInfo
- Publication number
- CN110618945B CN110618945B CN201810876652.XA CN201810876652A CN110618945B CN 110618945 B CN110618945 B CN 110618945B CN 201810876652 A CN201810876652 A CN 201810876652A CN 110618945 B CN110618945 B CN 110618945B
- Authority
- CN
- China
- Prior art keywords
- mapping
- memory
- page
- data
- range
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0886—Variable-length word access
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- 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/46—Caching storage objects of specific type in disk cache
- G06F2212/461—Sector or disk block
-
- 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/46—Caching storage objects of specific type in disk cache
- G06F2212/466—Metadata, 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/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提出的系统、方法和设备包括计算机可读取介质,用以通过重叠非易失性存储系统页面的范围来管理存储器。一种范例存储系统包括:存储器控制器,耦接到存储器且被配置以:决定与指令关联的逻辑地址范围;搜寻多个特定映射表格,这些特定映射表格包括存储器映射页面内的逻辑地址范围;决定逻辑地址范围的起始地址是否处于第一和顺序的第二映射页面的重叠范围内,重叠范围包括在第一和第二映射页面中所重复的一个或多个映射表格的逻辑地址;基于起始地址是否在重叠范围内的决定结果,决定将从第一和第二映射页面中的哪一个来加载特定映射表格;及从所决定的映射页面加载特定映射表格。
Description
技术领域
本发明涉及一种存储系统,且特别涉及一种用于重叠存储系统中的页面范围的系统。
背景技术
一些存储系统,例如快闪存储系统,具有先擦除后写(erase-before-write)的结构。为了更新快闪存储系统中的某个位置,在新数据可被写入此位置前,必须先擦除此位置。用于擦除的最小存储器部分(例如,块区(block))的尺寸大于读取或写入的最小存储器部分(例如,扇区(sector)),这导致整个快闪存储系统的主要性能下降。在某些情况下,快闪存储转换层(Flash Translation Layer,FTL)被引入快闪存储系统来管理读取、写入和擦除操作。FTL的核心是使用逻辑到实体(logical-to-physical)的地址映射表格。如果映射到逻辑地址的实体地址位置包含先前写入的数据,输入数据会被写入先前未写入数据的空闲实体位置。接着,映射表格由于新改变的逻辑/实体地址映射而被更新。
发明内容
本揭露描述用于重叠存储系统中的页面范围的系统、方法和技术,例如非易失性存储系统,例如NAND闪存。
本揭露的一个方面的特征在于一种存储系统,通过重叠映射页面的范围来管理存储器。存储系统包括存储器控制器,存储器控制器耦接到存储器并且配置为:写入输入数据至存储器内,所写入的输入数据具有对应的实体地址;添加实体地址及逻辑地址之间的映射至一个或多个映射表格于存储器控制器的表格快取;决定表格快取内的映射表格达到一临界数量;编程表格快取内的映射表格至存储器内的第一映射页面;及将在第一映射页面的终点处所编程的一个或多个特定映射表格,拷贝(copy)到顺序的第二映射页面中的表格快取的起点,以于第一及第二映射页面之间形成映射表格的重叠范围。存储系统可包含存储器。
在一些实施方式中,存储器控制器配置为将第一映射页面的终点处的一个或多个特定映射表格编程到第二映射页面中的起点。一个或多个特定映射表格被重复(duplicate)到第一及第二映射页面中,且一个或多个特定映射表格的逻辑地址范围形成第一及第二映射页面的重叠范围。
存储器控制器可以配置为基于实体地址及表格快取内的映射表格信息,以决定与实体地址映射的逻辑地址。
存储器中的各映射页面能够储存最大表格数量的映射表格,而临界数量相同于最大表格数量。
在一些实施方式中,存储器控制器配置为从主机装置接收主机读取指令。读取指令被允许以读取与存储器内的最大读取数量的映射表格所包含的逻辑地址范围关联的用户数据,且一个或多个特定映射表格的数量相同于最大读取数量减1。主机读取指令的映射表格的最大读取数量,可基于存储器控制器及主机装置之间的通信协议而被决定。逻辑地址范围内的逻辑地址的数量可不大于一个或多个特定映射表格内所包含的逻辑地址的数量。
本揭露的另一方面的特征在于一种存储系统,通过重叠映射页面的范围来管理存储器。存储系统包括存储器控制器,存储器控制器耦接到存储器并配置为:决定与读取指令关联的逻辑地址范围;搜寻多个特定映射表格,这些映射表格包括存储器内多个映射页面的逻辑地址范围,存储器的一个映射页面包含多个顺序的映射表格,存储器的一个相邻的映射页面包含一个或多个具有重叠范围的重复映射表格;决定逻辑地址范围的起始地址是否处于存储器内的第一及第二映射页面所对应的重叠范围内,第二映射页面顺序于第一映射页面,第一及第二映射页面包含一个或多个对应的重复映射表格,对应的重复映射表格的逻辑地址范围形成第一及第二映射页面所对应的重叠范围;基于起始地址是否在第一及第二映射页面所对应的重叠范围内的决定结果,决定将从第一和第二映射页面中的哪一个来加载特定映射表格;及从所决定的映射页面加载特定映射表格。存储系统可包含存储器。
存储器控制器可以配置为:响应于决定起始位置是否在第一及第二映射页面的重叠范围内,从第二映射页面加载特定映射表格。
在一些实施方式中,存储器控制器被配置以:响应于决定逻辑地址范围的起始位置小于重叠范围的最小逻辑地址且位于第一映射页面内,从第一映射页面加载特定映射表格;及响应于决定逻辑地址范围的起始位置大于重叠范围的最大逻辑地址且位于第二映射页面内,从第二映射页面加载特定映射表格。
在一些实施方式中,存储器控制器配置为:基于所加载的特定映射表格,取得被映射至逻辑地址范围的实体地址;及读取具有从存储器所取得的实体地址的用户数据。
第一映射页面包括于第一映射页面的终点所对应重复的映射表格,且第二映射页面包括于第二映射页面的起点所对应重复的映射表格。
读取指令可以允许读取用户数据,用户数据与存储器内的最大读取数量的映射表格所包含的逻辑地址关联;及对应重复的映射表格的数量相同于最大读取数量减1。用于主机读取指令的映射表格的最大读取数量,可基于存储器控制器及传送读取指令的主机装置之间的通信协议而被决定。
在一些实施方式中,存储器控制器配置为:接收第二读取指令;决定与第二读取指令关联的逻辑地址的第二范围,第二范围被包括在存储器控制器的表格快取中的第二特定映射表格中;基于表格快取中的第二特定映射表格,取得映射到逻辑地址的第二范围的第二实体地址;及从存储器读取具有所取得的第二实体地址的用户数据。
存储器控制器可以配置为:响应于决定逻辑地址范围不包含在存储器控制器的表格快取内的第二特定映射表格,搜寻包含存储器的映射表格内的逻辑地址范围的特定映射表格。
本揭露的另一方面的特征在于一种存储系统,通过重叠映射页面的范围来管理存储器。存储系统包括存储器控制器,存储器控制器耦接到存储器且被配置以:从主机装置接收主机写入指令;将与主机写入指令关联的主机数据写入至存储器内,所写入的主机数据具有存储器内对应的实体地址;添加实体地址及逻辑地址之间的映射,以将数据映射至存储器控制器的快取内;将快取内的映射数据编程至第一及第二相邻映射页面内,其中第一及第二相邻映射页面具有包含特定映射数据的逻辑地址的重叠范围;从主机装置接收主机读取指令;决定与主机读取指令关联的逻辑地址范围;从存储器内的特定映射页面,将包含逻辑地址范围对应的映射数据加载至快取;基于所加载的对应的映射表格,取得映射至逻辑地址范围的实体地址;以及从存储器读取具有所取得的实体地址的用户数据。
存储系统可以包括存储器。在一些示例中,存储器包括非易失性存储器(non-volatile memory,NVM),且快取被包括在存储器控制器中的静态随机存取存储器(staticrandom access memory,SRAM)中。
映射数据可以是映射表格的形式。在一些实施方式中,存储器控制器被配置以将快取内的映射数据编程至第一及相邻的第二映射页面内的作法,通过:决定快取内的映射表格的数量达到能被储存至存储器的存储页面内的映射表格的表格数量;将快取内的映射表格编程至存储器内的第一映射页面内;将编程在第一映射页面的终点处的一个或多个映射表格,拷贝至表格快取的起点;及将包含第一映射页面的一个或多个映射表格编程在第二映射页面的起始处。一个或多个特定映射表格为第一及第二映射页面重复的特定映射数据,且特定映射表格的范围可形成第一及第二映射页面的重叠范围。
在一些实施方式中,存储器控制器配置为:搜寻对应于存储器的映射页面内的逻辑地址范围的映射数据;决定逻辑地址范围的起始地址是否位于存储器内的第一及第二映射页面的重叠范围内;基于起始地址是否在第一及第二映射页面的重叠范围内的决定结果,决定将从第一和第二映射页面中的哪一个来加载特定映射表格;及从存储器中的特定映射页面,将包含逻辑地址范围的对应的映射数据加载至快取。
存储器控制器可以配置为:响应于决定起始地址在第一及第二映射页面的重叠范围内,从第二映射页面加载对应的映射数据;响应于决定逻辑地址范围的起始地址小于重叠范围的最小逻辑地址且位于第一映射范围内,从第一映射页面加载对应的映射数据;及响应于决定逻辑地址范围的起始地址大于重叠范围的最大逻辑地址且位于第二映射范围内,从第二映射页面加载对应的映射数据。
在一些实施方式中,映射数据为映射表格的形式。主机读取指令可以允许读取与包含在存储器中最大读取数量的映射表格中的逻辑地址关联的数据,并且重复的映射表格的数量可以等于最大读取数量减1。
本揭露的第四方面的特征在于一种存储系统,通过重叠页面的范围来管理存储器。存储系统包括存储器控制器,存储器控制器耦接到存储器且配置为:将输入数据写入存储器中,所写入的输入数据具有存储器内的对应的实体地址;将所写入的输入数据所对应的参考数据添加到存储器控制器的快取;将快取中的参考数据的列表编程到存储器的第一页;且将编程在第一页面终点的参考数据的列表的一部分,拷贝到第二页面的起点,以形成第一和第二页面的重叠范围。参考数据列表的部分重复于在第一页和第二页中以形成第一页和第二页的重叠范围。
存储器控制器可以还配置为:从存储器中的特定页面加载对应于读取指令的特定参考数据;取得与所加载的特定参考数据相对应的实体地址;及从存储器读取具有所取得的实体地址的储存数据。
在一些实施方式中,存储器控制器配置为:搜寻存储器的页面中的特定参考数据;决定特定参考数据的起点是否处于存储器中的第一和第二页面的重叠范围内;基于决定特定参考数据的起点是否处于第一和第二页面的重叠范围内的结果,决定将从第一和第二映射页面中的哪一个来加载特定映射表格;及从存储器的特定页面加载的特定参考数据到快取。
在一些情况下,响应于决定起点处于第一和第二页面的重叠范围内,存储器控制器配置为从第二页面加载特定参考数据。在一些情况下,响应于决定特定参考数据的起点小于重叠范围的最小值并且在第一页面中,存储器控制器配置为从第一页面加载特定参考数据。在一些情况下,响应于决定特定参考数据的起点大于重叠范围的最大值并且在第二页面中,存储器控制器配置为从第二页面加载特定参考数据。
在特定示例中,参考数据是以映射表格的形式,包括实体地址与逻辑地址之间的映射。页面可以是包括多个映射表格的映射页面。
本揭露的第五方面的特征在于一种存储系统,通过重叠页面的范围来管理存储器。存储系统包括存储器控制器,存储器控制器耦接到存储器且配置为:将数据编程到存储器的第一页面中,且将在第一页面的终点处所编程的数据的一部分,拷贝到第二页面的起点处,以形成第一页和第二页的重叠范围。数据可以是例如来自写入指令的输入数据。数据可以是被写入页面的映射表格或数据。数据可以是任何形式的数据,例如任何页面的制造信息、测试信息。页面可以是逻辑页面、映射页面、或实体页面。
上述技术的实施方式包括方法、系统、计算机程序产品、和计算机可读取介质。在一个示例中,可以通过耦接到非易失性存储器的存储器控制器来执行方法,且方法可以包括由存储器控制器执行的上述动作,例如,用于在非易失性存储器中映射页面的重叠范围的动作。在另一个示例中,这样的一种计算机程序产品适当地实施在储存可由一个或多个处理器执行的指令的非瞬时机器可读取介质中。指令配置为使一个或多个处理器执行上述动作。这样的一种计算机可读取介质储存指令在由一个或多个处理器执行时,配置为使一个或多个处理器执行上述动作。
这些技术可以实施为任何类型的控制器,以从遭受超过一个存储器页边界问题的存储器读取数据。这些技术可以提供一种快速方法,以从一个映射页面中的映射数据取得逻辑地址、识别对应于逻辑地址的实体地址、及利用存储器中的实体地址来提取相应的数据。这些技术可以通过重复在相邻页面中的数据而被实现,以取得相邻页面的重叠范围。数据可以是映射表格的形式或者以任何其他合适的形式,例如制造信息或测试信息。页面可以是映射页面、实体页面、或逻辑页面。
这些技术可以应用于各种类型的NVM系统,例如NAND闪存、或其它存储器。另外地或替代地,可以将这些技术应用于各种类型的装置和系统,例如安全数字(securedigital,SD)卡、嵌入式多媒体卡(embedded multimedia card,eMMC)、或固态驱动器(solid-state driver,SSD)、嵌入式系统、或其它装置和系统。
为了对本发明上述及其他方面有更佳的了解,下文特列举实施例,并配合所附附图详细说明如下:
附图说明
图1绘示依照一个或多个实施方式使用用于数据储存和提取的映射页面的系统的示例。
图2A绘示没有重复映射表格的映射页面的示例。
图2B绘示从相同映射页面读取映射表格的示例时间成本。
图2C绘示从两个不同映射页面读取映射表格的示例时间成本。
图3A绘示根据一个或多个实施方式包括具有重叠范围的重复映射表格的映射页面的示例。
图3B绘示根据一个或多个实施方式具有来自重叠范围的重复映射表格的前端页面的映射表格的示例表格快取。
图3C绘示根据一个或多个实施方式具有来自重叠范围的重复映射表格的后端页面的映射表格的示例表格快取。
图4A绘示根据一个或多个实施方式写入具有存储器页面的映射表格的重叠范围的主机数据的方法的示例。
图4B绘示根据一个或多个实施方式读取具有存储器页面的重叠范围的用户数据的方法的示例。
【符号说明】
100:系统
110:装置
112:装置控制器
113:处理器
114:内部存储器
115:数据缓冲器
116:表格快取
118:主机界面
120:主机装置
130:存储器
132:用户数据区域
134:映射表格区域
200、300:映射页面
330、350:表格快取
400、450:方法
402~414、452~466:流程步骤
具体实施方式
映射表格是用于管理非易失性存储器(nonvolatile memory,NVM)系统上的逻辑到实体地址映射的最小表格单元。映射表格与用户数据一起储存在NVM储存器的映射页面中。当主机装置发出读取指令时,NVM系统从NVM储存器读取用户数据到高速缓存,且NVM系统还可以存取/读取映射页面以将映射表格从NVM储存器加载到高速缓存。在某些情况下,系统无法接受很长的等待时间。例如,系统只能接受读取一个映射页面的等待时间。然而,实际读取可能会花费两次映射页面读取时间,这会导致超过一个使用映射页面读取时间的NVM页面边界问题。
本揭露的实施方式提供用于部分重叠映射页面中的映射表格范围的系统和方法,可以有效地防止NVM页面边界问题。例如,可以假定主机读取指令的最大计数不超过3个映射表格,且映射页面包含X+2个映射表格。决定2个映射表格可以重复在两个相邻映射页面中以取得重叠范围。也就是说,第一映射页面中的最后2个映射表格(X+1、X+2)被再次写入顺序的第二映射页面中的头2个映射表格,第二映射表格可储存来自X+1、X+2至2X+1、2X+2的映射表格。如果主机读取指令需要读取映射表格X、X+1、X+2中的逻辑地址,NVM系统能仅从第一映射页面读取。如果主机读取指令需要读取映射表格X+1、X+2、X+3中的逻辑地址,NVM系统能仅从第二映射页面读取。以此方式,可以防止NVM页面边界问题,并且可以提升NVM系统的读取速度(也因此提升操作性能)。
图1绘示根据一个或多个实施方式用于数据储存和提取的映射表格页面所使用的系统100的示例。系统100包括装置110和主机装置120。装置110包括装置控制器112和存储器130。装置控制器112包括处理器113、内部存储器114和主机界面(I/F)118。主机界面118是用于使装置控制器112与主机装置120通信的界面。例如,通过主机界面118,装置控制器112可以从主机装置120接收写入或读取指令和主机数据,或者发送从存储器130所提取的用户数据到主机装置120。
在一些实施方式中,装置110是储存设备。例如,装置110可以是嵌入式多媒体卡(embedded multimedia card,eMMC)、安全数字(secure digital,SD)卡、固态驱动器(solid-state drive,SSD)、或一些其他合适的储存器。在一些实施方式中,装置110是智能手表、数字相机、或媒体播放器。在一些实施方式中,装置110是耦接到主机装置120的客户装置。例如,装置110是数字相机中的SD卡或者是主机装置120的媒体播放器。
装置控制器112是通用微处理器或专用微控制器。在一些实施方式中,装置控制器112是用于装置110的存储器控制器。以下部分描述的各种技术基于装置控制器112是存储器控制器的实施方式。然而,在以下部分中描述的技术也适用于装置控制器112是不同于存储器控制器的另一类型的控制器的实施方式。
处理器113配置为执行指令并处理数据。这些指令包括固件指令和/或其它程序指令,在辅助存储器分别储存为固件代码和/或其他程序代码。数据报括与固件和/或由处理器执行的其他程序相对应的程序数据、或其他合适的数据。在一些实施方式中,处理器113是通用微处理器或专用微控制器。处理器113也被称为中央处理单元(central processingunit,CPU)。
处理器113存取来自内部存储器114的指令和数据。在一些实施方式中,内部存储器114是静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)。例如,在一些实施方式中,当装置110是eMMC、SD卡或智能手表时,内部存储器114是SRAM。在一些实施方式中,当装置110是数字相机或媒体播放器时,内部存储器114是DRAM。
在一些实施方式中,内部存储器114是包括在装置控制器112中的高速缓存内,如第3图所示。内部存储器114储存处理器113执行指令所对应的指令代码、以及处理器113在运行时期间所请求的数据和/或映射表格。
装置控制器112将来自存储器130的指令代码和/或数据传送到内部存储器114。在一些实施方式中,存储器130是被配置用于长期储存指令和/或数据的NVM,例如NAND快闪存储装置、或一些其他合适的非易失性存储装置,且装置110是NVM系统。在存储器130是NAND闪存的实施方式中,装置110是快闪存储装置,例如快闪存储卡,且装置控制器112是NAND闪存控制器。例如,在一些实施方式中,当装置110是eMMC或SD卡时,存储器130是NAND快闪;在一些实施方式中,当装置110是数字相机时,存储器130是SD卡;且在一些实施方式中,当装置110是媒体播放器时,存储器130是硬盘。仅出于说明目的,以下描述使用NVM作为存储器130的示例,使用SRAM作为内部存储器114的示例,以及使用存储器控制器作为装置控制器112的示例。
如下面进一步详细讨论,装置控制器112配置为响应于来自主机装置120的写入指令而将数据和对应的映射页面写入存储器130中,并响应于读取指令从存储器130读取一个或多个映射表格和相应的数据。
存储器130包括用于储存用户数据的用户数据区域132和用于储存多个映射页面的映射表格区域134。每个映射页面可以包含(或储存)特定的最大数量的映射表格(例如,最大表格数量)。每个映射表格包含特定数量的顺序逻辑地址。映射页面中相邻映射表格的逻辑地址也是顺序的。映射表格中的逻辑地址对应于用户数据区域132中相对的实体地址。用户数据储存在与实体地址对应的存储器位置处的用户数据区域132中。
内部存储器114包括数据缓冲器115和表格快取116。数据缓冲器115可例如响应来自主机装置120的写入请求,快取/储存来自主机装置120的主机数据,此数据将被储存在存储器130中的用户数据区域132中。数据缓冲器115还可以例如响应于来自主机装置120的读取请求,将从用户数据区域132所提取的用户数据,快取/储存在存储器130中以被发送到主机装置120。
当主机装置120传送写入请求以储存主机数据时,表格快取116可储存基于待储存或已储存在用户数据区域132中的主机数据所产生的映射表格。当映射表格的数量达到可包含在映射页面中的映射表格的最大数量时,映射表格的数量被编程为映射表格区域134中的新映射页面。
当主机装置120传送读取请求以从用户数据区域132读取用户数据时,如果表格快取116尚未包含用于用户数据的对应映射表格,装置控制器112可决定对应于用户数据的映射表格,且将来自映射表格区域134的对应映射页面加载到表格快取116中。接着,装置控制器112可以基于映射表格来识别与用户数据对应的实体地址,且基于所识别的实体地址从用户数据区域132提取用户数据。
图2A绘示没有重复映射表格的映射页面的示例200。如上所述,每个映射页面包含特定最大数量N的映射表格,其中N是大于1的整数。每个映射表格包括特定的最大数量M的逻辑地址,其中M是大于1的整数。相邻映射表格包括顺序逻辑地址。例如,映射页面1中的映射表格1包括从1到M的逻辑地址,而映射页面1中的映射表格2包括从M+1到2M的逻辑地址。因此,映射页面1中的映射表格N包括从M*(N-1)+1到M*N的逻辑地址。
映射页面2相邻于映射页面1,且包括顺序的映射表格直到映射页面1中的映射表格。如图2A所示,映射页面2包含从N+1到2N的映射表格,其包括从M*N+1到M*2N的逻辑地址。也就是说,映射页面2中的第一映射表格N+1顺序于(或接续于)映射页面1中的最后映射表格N,且映射表格N+1中的第一逻辑地址M*N+1是顺序于(或接续于)映射表格N中的最后一个逻辑地址M*N。在映射页面1和2中不存在重复的映射表格,且在映射页面1和2中没有重叠范围,如图2A所示。
如果主机读取指令包括例如从映射表格N+1到映射表格N+4的一个映射页面内的逻辑地址,存储器控制器(例如图1的装置控制器112),只需读取映射页面2以从映射页面2将映射表格N+1、N+2、N+3和N+4加载到表格快取,例如图1的表格快取116。
图2B绘示从相同的映射页面读取四个映射表格的示例时间成本。时间成本包括用于读取主机读取指令的指令(CMD)读取时间、用于存取/读取映射页面的读取延迟(latency)时间、以及用于将映射表格传送到表格快取的数据传送时间。读取延迟是用于读取(或存取)存储器(例如图1的存储器130)中的映射页面的特定值。读取延迟可以是存储器的一个属性,独立于从映射页面被传输的数据。例如,读取存储器中的映射页面的读取延迟时间可以是大约50微秒(μs)。在特定的例子中,四个映射表格具有2仟字节(KB或kB)数据。CMD读取时间小于1μs,传输2KB数据的数据传输时间约为20μs。因此,从相同的映射页面2读取四个映射表格的总时间成本大约为70μs。
请再参照图2A,如果主机读取指令包括来自映射页面1和映射页面2对应的映射表格(例如,从映射表格N-1到映射表格N+2)的逻辑地址范围,存储器控制器可能需要读取映射页面1和映射页面2,以从映射页面1加载两个映射表格N-1和N以及从映射页面2加载两个映射表格N+1和N+2到表格快取。如上所述,从两个不同的映射页面读取会导致超过NVM页面边界问题,从而导致更长的读取时间。
图2C绘示从两个不同映射页面读取四个映射表格的示例时间成本。对于读取映射页面1,时间成本包括CMD读取时间(<1μs)、读取延迟(~50μs)以及用于传送映射表格N-1和N(~10μs)。为读取映射页面2,时间成本包括CMD读取时间(<1μs)、读取延迟(~50μs)、以及传输映射表格N+1和N+2中1KB数据的数据传输时间(~10μs)。因此,从两个不同映射页面读取四个映射表格的总读取成本大约为120μs,这比读取来自同一映射页面(70μs)的四个映射表格的总读取成本要长。特别是,当从相同的映射页面读取相同数量的数据时,与从两个不同的映射页面相比,可节省一个读取等待时间(~50μs)。
图3A绘示根据一个或多个实施方式包括具有重叠范围的重复映射表格的映射页面的示例300。映射页面可以储存在存储装置的存储器,例如图1的装置110的图1的存储器130。存储器耦接到存储器控制器,例如图1的装置控制器112。存储器控制器与主机装置(例如图1的主机装置120)通信。
存储器控制器可以决定要从主机装置读取主机读取指令的映射表格的最大数量Q,其中Q是大于1的整数。最大数量Q可以被称为最大读取数量。例如,主机读取指令有关于读取具有一定范围的顺序逻辑地址的数据。逻辑地址的最大数量不超过映射表格的特定数量的逻辑地址数量,其中P是不小于1的整数。如果主机读取指令的逻辑地址起始于映射表格的起点,逻辑地址包含在P映射表格中;如果主机读取指令中的逻辑地址起始于映射表格的一位置,亦即不在映射表格的起点处,逻辑地址可以被包括在P+1映射表格中。因此,主机读指令被读取的映射表格的最大数目Q可以被决定为P+1,即,Q=P+1。
在一些情况下,存储器控制器可以从存储器装置(例如存储器控制器)与主机装置之间的通信协议,来决定映射表格的最大数量Q、逻辑地址的最大数量、或映射表格的特定数量P。例如,当主机装置开始与存储器装置的通信时,主机装置和存储器设备可以约定在主机读取指令中待读取的逻辑地址的最大数量不大于特定数量P的映射表格中的逻辑地址的数量。
在一些情况下,存储器控制器可基于存储器装置与主机装置的通信之间的历史或实验数据,来决定映射表格的最大数量Q、逻辑地址的最大数量、或映射表格的特定数量P。
为了防止超过一个NVM页面的边界问题,可以在存储器的相邻映射页面中重复Q-1(或P)映射表格,使得储存在相邻映射页面中的映射表格的范围被重叠。以此方式,存储器控制器可以只读取一个映射页面以取得主机读取指令所需的映射表格。
如图3A所示,每个映射页面包含最大数量X+2的映射表格,其中X是不小于0的整数。存储器控制器决定被主机读取指令读取的映射表格的最大数量Q是3。因此,2个映射表格被决定为在相邻映射页面中被重复以取得重叠范围。例如,映射页面1包含从1到X+2的映射表格,映射页面2包含从X+1到2X+2的映射表格。二个映射表格X+1和X+2被重复在映射页面1和映射页面2中。也就是说,映射页面1中的最后二个映射表格被再次写入映射页面2中的头二个映射表格。
图3B绘示从重叠范围的重复映射表格的前端存储器页面所加载的映射表格的表格快取330的示例。例如,如果主机读取指令需要读取与映射表格X、X+1和X+2中的逻辑地址所关联的数据,存储器控制器能仅读取存储器页面1并加载映射表格X、X+1、和X+2至表格快取,例如图1的表格快取116。
图3C绘示从重叠范围的重复映射表格的后端映射页面所加载的映射表格的表格快取350的示例。例如,如果主机读取指令需要读取与映射表格X+1、X+2和X+3中的逻辑地址所关联的数据,存储器控制器能仅读取存储器页面2并加载映射表格X+1、X+2和X+3至表格快取。
图4A绘示根据一个或多个实施方式写入具有存储器页面的映射表格的重叠范围的主机数据的方法400的示例。方法400可以由存储器控制器(例如,图1的装置控制器112)所执行。映射表格被储存在存储器控制器所耦接的存储器(例如,图1的存储器130)的映射页面中。主机数据从主机装置(例如,图1的主机装置120)被发送。
主机数据被写入存储器(402)。在例如从界面(例如,图1的主机界面118)接收到主机数据之后,存储器控制器可首先将主机数据缓冲在存储器控制器的内部存储器的数据缓冲器(例如,图1的数据缓冲器115),接着将主机数据从数据缓冲器写入存储器的用户数据区域(例如,图1的用户数据区域132)。存储器控制器可以决定储存在存储器中的主机数据的实体地址。
逻辑地址和实体地址之间的映射被添加到存储器控制器的内部存储器的表格快取(例如,图1的表格快取116)中的一个或多个映射表格(404)。存储器控制器可以基于与主机数据关联的实体地址来决定逻辑地址。存储器控制器可以将逻辑地址和实体地址之间的映射添加到表格快取中的最新映射表格和/或新的空白映射表格。
存储器控制器决定是否已收集一个映射页面的数据(406)。在存储器中,一个映射页面可以包含特定的最大数量的映射表格。存储器控制器通过决定表格快取是否包含特定的最大数量的映射表格来决定是否已收集一个映射页面的数据。如果表格快取中的映射表格的数量小于特定的最大数量,存储器控制器决定收集在表格快取中的映射数据小于一个映射页面。如果表格快取中的映射表格的数量与特定的最大数量相同,则存储器控制器决定已收集一个映射页面的数据。
响应于决定已经在表格快取中收集少于一个映射页面的数据,方法400返回到步骤402。响应于决定已收集一个映射页面的数据,方法400前进到步骤408。
将一个映射页面的数据编程到存储器的映射页面中(408)。存储器控制器可以将表格快取中映射表格的数量编程到存储器的映射表格区域的映射页面中,例如图1的映射表格区域134。
从表格快取中映射表格的顺序的终点将预定数量的映射表格拷贝到表格快取的起点处,以用于下一个映射页面(410)。如上所述,存储器控制器可以例如基于被主机读取指令中读取的映射表格的最大数量Q,来决定要重复的映射表格的数量P。在映射页面中所编程的最后P个映射表格被重复到表格快取的起点处。如果有更多被写入的主机数据,可以将映射页面中所编程的其他映射表格从表格快取中清除,或者,如果没有更多被写入的主机数据,可以将映射页面中所编程的其他映射表格保存在表格快取中。
存储器控制器决定是否有额外的主机数据(412)。例如,存储器控制器可以基于主机写入请求决定是否有额外的主机数据被写入。响应于决定有额外的主机数据,方法400返回到步骤402。响应于决定没有额外的主机数据,方法继续到步骤414,其中主机写入流程结束。存储器控制器可以将流程中存储器所写入的主机数据所关联的逻辑地址(和/或映射表格)的信息传输到主机装置。主机装置可以使用逻辑地址来提取储存在存储器中的主机数据。
图4B绘示根据一个或多个实施方式读取具有映射表格的重叠范围的用户数据的方法450的示例。方法450可以由存储器控制器(例如,图1的装置控制器112或图4A的存储器控制器)所执行。映射表格被储存在存储器控制器所耦接的存储器(例如,图1的存储器130)的映射页面中。主机数据从主机装置(例如图1的主机装置120)被发送的。
主机读取指令被接收(452)。主机读取指令包含的信息指示将要从存储器读取的数据。数据信息可以包括与数据关联的逻辑地址范围。数据信息还可以包括包含地址范围的映射表格的信息。包括地址范围的映射表格的数量不大于主机读取指令的预定最大数量Q,如上所述。
存储器控制器决定与主机读取指令关联的逻辑地址范围是否属于(hit)表格快取中的一个或多个映射表格(454)。表格快取可以是图1的表格快取116或图4A的表格快取。如上所述,表格快取可以储存一个或多个编程到映射页面中的映射表格。编程之后,如果没有新的数据写入,映射表格的数量可以保存在表格快取中。存储器控制器决定与主机读指令关联的逻辑地址范围,是否在表格快取中所保存的映射表格的数量之内,例如通过决定逻辑地址范围是在表格快取中所保存的映射表格的数量的最小逻辑地址与最大逻辑地址之间。
响应于决定与主机读取指令关联的逻辑地址范围属于表格快取中的映射表格,方法450前进到步骤464,其中与逻辑地址范围关联的用户数据的实体地址被取得。存储器控制器可以决定包括表格快取中的逻辑地址范围的映射表格,并基于所决定的映射表格中的映射来决定与逻辑地址范围关联的用户数据的实体地址。接着,基于所取得的实体地址从存储器读取用户数据(466)。
响应于决定与主机读取指令关联的逻辑地址范围不在表格快取中、或者不完全在表格快取中,方法450前进到步骤456,其中存储器控制器搜寻存储器所储存的映射页面。存储器控制器可以基于映射表格的信息和/或与主机读取指令关联的逻辑地址的信息来搜寻映射页面中的映射表格。
存储器控制器决定与主机读取指令关联的逻辑地址范围的起始逻辑地址,是否在两个相邻映射页面的重叠范围内(458)。如上所述,相邻的映射页面可以包括重叠的范围。例如,特定数量P的映射表格被重复且相邻映射页面中的映射表格的范围被重叠,并且相邻映射页面的重叠范围是重复的P个映射表格的逻辑地址的范围。
响应于决定逻辑地址范围的起始逻辑地址不在重叠范围内,而是在两个相邻映射页面中,存储器控制器从包含逻辑地址范围的此映射页面加载包括起始逻辑地址的存储器表格(460)。这个映射页面可以是两个相邻映射页面的前端或后端的映射页面。在一些情况下,如果起始逻辑地址小于重叠范围中的最小逻辑地址并且在前端映射页面中,存储器控制器从前端映射页面加载包括逻辑地址范围的存储器表格。在一些情况下,如果起始逻辑地址大于重叠范围中的最大逻辑地址并且在后端映射页面中,存储器控制器从后端映射页面加载包括逻辑地址范围的存储器表格。否则,响应于决定逻辑地址范围的起始逻辑地址处于重叠范围内,存储器控制器从后端映射页面加载包括逻辑地址范围的存储器表格(462)。
例如,如上述图3A所示,映射页面1和2具有重复的映射表格X+1和X+2,且具有的重叠范围包括映射表格X+1和X+2的逻辑地址范围。如果起始逻辑地址在映射表格X中,亦即不在重叠范围内,存储器控制器决定读取存储器页面1以从存储器页面1将存储器表格X、X+1、X+2加载到快取表格中,如上述图3B所示。如果起始逻辑地址位于映射表格X+1中,亦即处于重叠范围,存储器控制器决定读取存储器页面2以将存储器表X+1、X+2和X+3加载到快取表格中,如图3C所示。在任何一种情况下,只读取一个映射页面以将包括逻辑地址范围的映射页面加载到表格快取中。
在从前端/后端映射页面加载存储器表格(步骤460)、或从后端映射页面加载存储器表格(步骤462)之后,方法450继续进行步骤464和步骤466,如上所述。
所揭露的和其他示例可以被实现为一个或多个计算机程序产品,例如编码在计算机可读取介质上的计算机程序指令的一个或多个模块,以由数据处理装置执行或控制数据处理装置的操作。计算机可读取介质可以是机器可读取储存装置、机器可读取储存基板、存储装置、或上述中的一个或多个的组合。术语“数据处理装置”涵盖用于处理数据的所有设备、装置和机器,例如包括可编程处理器、计算机、或多个处理器或计算机。除了硬件之外,此设备还可包括为所讨论的计算机程序创建执行环境的代码,例如构成处理器固件、协议堆(stack)、数据库管理系统、操作系统、或者一个或多个处理器的组合的代码。
系统可以涵盖用于处理数据的所有设备、装置、和机器,例如包括可编程处理器、计算机、或多个处理器或计算机。除了硬件之外,系统还可包括为所讨论的计算机程序创建执行环境的代码,例如构成处理器固件、协议堆、数据库管理系统、操作系统、或者一个或多个处理器的组合的代码。
计算机程序(也称为程序、软件、软件应用程序、脚本(script)、或代码)可以任何形式的编程语言而被编写,包括编译(compile)或解译的语言,并且可以以任何形式部署,包括独立程序或适合用于计算机环境的模块、组件、子程序或其他单元。计算机程序不一定对应于文件系统中的文件。程序可以储存在保存其他程序或数据的文件(例如,标记语言文件(markup language document)所储存的一个或多个脚本)的一部分中、专用于所讨论的程序的单一文件中、或者储存在多个协同文件中(例如,储存一个或多个模块、子程序、或部分代码的文件)。计算机程序可以部署以执行在一台计算机上、或执行在位于一个站点或分散在多个站点而通过通信网络互连的多台计算机上。
本文文件中描述的方法和逻辑流程可以由进行一个或多个计算机程序的一个或多个可编程处理器所执行,以执行在此描述的功能。处理和逻辑流程也可以由专用逻辑电路所执行且设备也可以实现为专用逻辑电路,例如,现场可编程门阵列(fieldprogrammable gate array,FPGA)、或特定用途集成电路(application specificintegratedcircuit,ASIC)。
举例来说,适用于执行计算机程序的处理器包括通用和专用微处理器、以及任何类型的数字计算机的任何一个或多个处理器。一般而言,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件可以包括用于执行指令的处理器和用于储存指令和数据的一个或多个存储装置。一般而言,计算机还可以包括一个或多个用于储存数据的大容量储存装置,例如磁盘、磁光盘(magneto optical disks)、或光盘,或者可操作地耦接以从大容量储存装置接收数据、或将数据传输到大容量储存装置、或两者。然而,计算机不需要这种装置。适用于储存计算机程序指令和数据的计算机可读取介质可以包括所有形式的非易失性存储器、媒体、和存储装置,例如包括半导体存储装置,例如EPROM、EEPROM、快闪存储装置;磁盘。处理器和存储器可以由专用逻辑电路补充或并入其中。
尽管本文件可以描述许多细节,但是这些不应该被解释为对所请求保护的发明或可以请求保护的发明的范围有所限制,而是作为特定实施例的特殊特征的描述。在单独实施例的上下文的本文档中所描述的某些特征,也可以在单个实施例中组合实现。相反地,在单个实施例的上下文中所描述的各种特征,也可以在多个实施例中单独地或以任何合适的子组合来实现。再者,虽然上文可以将特征描述为在某些组合中作用并且甚至最初的权利要求范围所述,但是在一些情况下可以从所要求的组合中删除一个或多个特征,并且所请求保护的组合可以针对子组合或子组合的变异。类似地,虽然在附图中以特定次序来描述操作,但这不应被理解为该被要求按所示的特定次序或按顺序的次序来执行这样的操作,或者不应被理解该被要求执行所有示出的操作以实现期望的结果。
综上所述,虽然本发明已通过实施例进行如上揭露,然其并非用以限定本发明。本发明所属技术领域人员,在不脱离本发明精神和范围内,可作各种更动与润饰。因此,本发明的保护范围当权利要求书所界定的为准。
Claims (21)
1.一种存储系统,通过重叠多个映射页面的范围来管理一存储器,该存储系统包括:
一存储器控制器,耦接到该存储器且配置以:
写入输入数据至该存储器内,所写入的该输入数据具有对应的实体地址;
添加所述实体地址及逻辑地址之间的映射至该存储器控制器的一表格快取内的一个或多个映射表格;
决定该表格快取内的多个映射表格达到一临界数量;
编程该表格快取内的所述映射表格至该存储器内的一第一映射页面;及
将在该第一映射页面的一终点处所编程的一个或多个特定映射表格,拷贝(copy)到顺序的一第二映射页面中的该表格快取的一起点,以于该第一及该第二映射页面之间形成映射表格的一重叠范围。
2.如权利要求1所述的存储系统,其中该存储控制器被配置以将该第一映射页面的该终点处的一个或多个特定映射表格,编程到该第二映射页面中的一起点;
其中该一个或多个特定映射表格被重复到该第一及该第二映射页面中,且该一个或多个特定映射表格的一逻辑地址范围形成该第一及该第二映射页面的该重叠范围。
3.如权利要求1所述的存储系统,其中该存储器内的各映射页面能储存一最大表格数量的映射表格;及
其中该临界数量相同于该最大表格数量。
4.如权利要求1所述的存储系统,其中该存储器控制器配置以从一主机装置接收一主机读取指令;
其中该读取指令允许以读取与该存储器内的一最大读取数量的映射表格所包含的一逻辑地址范围关联的用户数据;及
其中该一个或多个特定映射表格的一数量相同于该最大读取数量减1。
5.如权利要求4所述的存储系统,其中用于该主机读取指令的该最大读取数量的映射表格,基于该存储器控制器及该主机装置之间的通信协议而决定。
6.如权利要求4所述的存储系统,其中该逻辑地址范围内的逻辑地址的一数量不大于该一个或多个特定映射表格内所包含的逻辑地址的一数量。
7.如权利要求1所述的存储系统,其中该存储器控制器配置以基于所述实体地址及该表格快取内映射表格信息,以决定与所述实体地址映射的所述逻辑地址。
8.一种存储系统,通过重叠多个映射页面的范围来管理一存储器,该存储系统包括:
一存储器控制器,耦接至该存储器,且配置以:
决定与一指令关联的一逻辑地址范围;
搜寻多个特定映射表格,所述特定映射表格包括该存储器内多个映射页面中的该逻辑地址范围,其中该存储器的一个映射页面包含顺序的多个映射表格,而该存储器的多个相邻映射页面包含一个或多个具有重叠范围的重复映射表格;
决定该逻辑地址范围的一起始地址是否处于该存储器内的一第一及一第二映射页面的一对应的重叠范围内,该第二映射页面顺序于该第一映射页面,该第一及该第二映射页面包含一个或多个对应的重复映射表格,该对应的重复映射表格的一逻辑地址范围形成该第一及该第二映射页面的该对应的重叠范围;
基于该起始地址是否在该第一及该第二映射页面的该对应的重叠范围内的决定结果,决定将从该第一及该第二映射页面中的哪一个来加载所述特定映射表格;以及
从所决定的该映射页面加载所述特定映射表格。
9.如权利要求8所述的存储系统,其中该存储器控制器配置以:
响应于决定该起始地址 是否在该第一及该第二映射页面的该重叠范围内的决定结果,从该第二映射页面加载所述特定映射表格。
10.如权利要求8所述的存储系统,其中该存储器控制器配置以:
响应于决定该逻辑地址范围的该起始地址 小于该重叠范围的一最小逻辑地址且位于该第一映射页面内,从该第一映射页面加载所述特定映射表格;以及
响应于决定该逻辑地址范围的该起始位置大于该重叠范围的一最大逻辑地址且位于该第二映射页面内,从该第二映射页面加载所述特定映射表格。
11.如权利要求8所述的存储系统,其中该存储器控制器配置以:
基于所加载的所述特定映射表格,取得被映射至所述逻辑地址范围的多个实体地址;及
读取从该存储器所取得的所述实体地址具有的用户数据。
12.如权利要求8所述的存储系统,其中该第一映射页面包括于该第一映射页面的终点的所对应重复的所述映射表格,且该第二映射页面包括于该第二映射页面的起点的所对应重复的所述映射表格。
13.如权利要求8所述的存储系统,其中该指令允许以读取与该存储器内的一最大读取数量的映射表格所包含的多个逻辑地址关联的用户数据;以及
其中,对应重复的所述映射表格的数量相同于该最大读取数量减1。
14.如权利要求13所述的存储系统,其中用于该指令的该最大读取数量的映射表格,基于该存储器控制器及传送该指令的一主机装置之间的通信协议而决定。
15.如权利要求8所述的存储系统,其中该存储器控制器配置以:
决定与一第二指令关联的一逻辑地址的一第二范围,该第二范围包含于该存储器控制器的一表格快取内的多个第二特定映射表格;
基于该表格快取内的所述第二特定映射表格,取得映射至该逻辑地址的该第二范围的多个第二实体地址;及
读取从该存储器所取得的所述第二实体地址具有的用户数据。
16.如权利要求8所述的存储系统,其中该存储器控制器配置以:
响应于决定该逻辑地址范围不包含在该存储器控制器的一表格快取内的多个第二特定映射表格,搜寻包括该存储器内多个映射页面中的该逻辑地址范围的所述特定映射表格。
17.一种存储系统,通过重叠多个映射页面的范围来管理一存储器,该存储系统包括:
一存储器控制器,耦接到该存储器,且配置以:
从一主机装置接收一主机写入指令;
将与该主机写入指令关联的主机数据写入至该存储器内,所写入的该主机数据具有该存储器内对应的多个实体地址;
添加所述实体地址及逻辑地址之间的映射,以将该主机数据映射至该存储器控制器的一快取内;
将该快取内的该映射数据编程至第一及相邻第二映射页面内,其中该第一及相邻该第二映射页面具有包含特定映射数据的逻辑地址的一重叠范围;
从该主机装置接收一主机读取指令;
决定与该主机读取指令关联的一逻辑地址范围;
从该存储器内的一特定映射表格,将包含该逻辑地址范围对应的映射数据加载至该快取;
基于所加载的对应的该映射数据,取得映射至该逻辑地址范围的多个实体地址;以及
读取从该存储器所取得的所述实体地址具有的用户数据。
18.如权利要求17所述的存储系统,其中该存储器控制器配置以将该快取内的该映射数据编程至该第一映射页面及相邻的该第二映射页面内,通过:
决定该快取内的映射表格的一数量达到能被储存至该存储器的一存储器页面内的映射表格的一表格数量;
将该快取内的该映射数据编程至该存储器内的该第一映射页面内;
将编程在该第一映射页面的一终点处的一个或多个特定映射表格,拷贝至该快取的一起点;以及
将包含该第一映射页面的一个或多个特定映射表格的该第二映射页面的特定映射数据,编程在该第二映射页面的一起始处;
其中该一个或多个特定映射表格为该第一及该第二映射页面的重复的特定映射数据,其中该一个或多个特定映射表格的一范围形成该第一及该第二映射页面的该重叠范围。
19.如权利要求17所述的存储系统,其中该存储器控制器配置以:
搜寻对应于该存储器的映射页面内的该逻辑地址范围的该映射数据;
决定该逻辑地址范围的一起始地址是否位于该存储器内的该第一及该第二映射页面的该重叠范围内;
基于该起始地址是否在该第一及该第二映射页面的该重叠范围内的决定结果,决定将从该第一和第二映射页面中的哪一个来加载所述特定映射表格;以及
从该存储器中的该特定映射表格,将包含该逻辑地址范围的对应的该映射数据加载至该快取。
20.如权利要求19所述的存储系统,其中该存储器控制器配置以:
响应于决定该起始地址在该第一及该第二映射页面的该重叠范围内,从该第二映射页面加载对应的该映射数据;
响应于决定该逻辑地址范围的该起始地址小于该重叠范围的一最小逻辑地址且位于一第一映射范围内,从该第一映射页面加载对应的该映射数据;及
响应于决定该逻辑地址范围的该起始地址大于该重叠范围的一最大逻辑地址且位于一第二映射范围内,从该第二映射页面加载对应的该映射数据。
21.一种存储系统,通过重叠多个页面的范围来管理一存储器,该存储系统包括:
一存储器控制器,耦接至该存储器,且配置以:
将数据编程至该存储器的一第一页面内;以及
将编程在该第一页面的一终点处的该数据的一部分,拷贝至一第二页面的一起点,以形成该第一及该第二页面的一重叠范围;
其中,该数据是来自写入指令的输入数据,或者是被写入页面的映射表格或数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/012,321 | 2018-06-19 | ||
US16/012,321 US10956318B2 (en) | 2018-06-19 | 2018-06-19 | Overlapping ranges of pages in memory systems |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110618945A CN110618945A (zh) | 2019-12-27 |
CN110618945B true CN110618945B (zh) | 2021-11-16 |
Family
ID=68839621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810876652.XA Active CN110618945B (zh) | 2018-06-19 | 2018-08-03 | 存储系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10956318B2 (zh) |
CN (1) | CN110618945B (zh) |
TW (1) | TWI676103B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102018128980A1 (de) * | 2018-11-19 | 2020-05-20 | Technische Universität München | Verfahren und vorrichtung zum betreiben einer speicheranordnung |
KR20200095103A (ko) | 2019-01-31 | 2020-08-10 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
KR20200117256A (ko) * | 2019-04-03 | 2020-10-14 | 에스케이하이닉스 주식회사 | 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법 |
US11327907B2 (en) * | 2020-07-08 | 2022-05-10 | Macronix International Co., Ltd. | Methods and apparatus for improving SPI continuous read |
US11663185B2 (en) * | 2020-07-31 | 2023-05-30 | EMC IP Holding Company LLC | Techniques for cross-validating metadata pages |
US20220374360A1 (en) * | 2021-05-18 | 2022-11-24 | Macronix International Co., Ltd. | Memory device and method for accessing memory device |
US11977783B2 (en) | 2021-10-28 | 2024-05-07 | Silicon Motion, Inc. | Method and apparatus for performing data access control of memory device with aid of predetermined command |
US12061800B2 (en) | 2021-10-28 | 2024-08-13 | Silicon Motion, Inc. | Method and apparatus for performing data access control of memory device with aid of predetermined command |
CN114238158A (zh) * | 2021-12-17 | 2022-03-25 | 合肥沛睿微电子股份有限公司 | 数据存储管理方法和存储装置 |
US20240095024A1 (en) * | 2022-06-09 | 2024-03-21 | Nvidia Corporation | Program code versions |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1902599A (zh) * | 2003-12-30 | 2007-01-24 | 桑迪士克股份有限公司 | 具有大型擦除区块的非易失性存储器系统的管理 |
CN101425041A (zh) * | 2007-10-30 | 2009-05-06 | 安凯(广州)软件技术有限公司 | 在nand flash存储器上建立fat文件系统的优化方法 |
CN103339679A (zh) * | 2011-01-31 | 2013-10-02 | 马维尔国际贸易有限公司 | 向非易失性存储器映射数据 |
CN106874216A (zh) * | 2015-12-11 | 2017-06-20 | 捷鼎国际股份有限公司 | 加快在不连续页面写入数据的计算机系统及其方法 |
CN107346213A (zh) * | 2016-05-04 | 2017-11-14 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3610574B2 (ja) * | 2001-08-15 | 2005-01-12 | 日本電気株式会社 | ディスクアレイ装置 |
US7287133B2 (en) * | 2004-08-24 | 2007-10-23 | Symantec Operating Corporation | Systems and methods for providing a modification history for a location within a data store |
KR20110086690A (ko) * | 2008-10-30 | 2011-07-29 | 인터내셔널 비지네스 머신즈 코포레이션 | 저장 장치에 데이터 쓰기를 실행하는 방법 및 시스템 |
WO2015093026A1 (ja) * | 2013-12-17 | 2015-06-25 | 日本電気株式会社 | 書き込み情報記憶装置、方法、及び、記録媒体 |
TWI587302B (zh) * | 2014-12-09 | 2017-06-11 | 華邦電子股份有限公司 | 記憶體編程方法以及記憶體裝置 |
CN105825890B (zh) * | 2015-01-09 | 2019-10-01 | 华邦电子股份有限公司 | 存储器编程方法以及存储器装置 |
CN114528022A (zh) * | 2015-04-24 | 2022-05-24 | 优创半导体科技有限公司 | 实现虚拟地址的预转换的计算机处理器 |
TWI615771B (zh) * | 2015-09-17 | 2018-02-21 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料讀取方法 |
-
2018
- 2018-06-19 US US16/012,321 patent/US10956318B2/en active Active
- 2018-07-30 TW TW107126385A patent/TWI676103B/zh active
- 2018-08-03 CN CN201810876652.XA patent/CN110618945B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1902599A (zh) * | 2003-12-30 | 2007-01-24 | 桑迪士克股份有限公司 | 具有大型擦除区块的非易失性存储器系统的管理 |
CN101425041A (zh) * | 2007-10-30 | 2009-05-06 | 安凯(广州)软件技术有限公司 | 在nand flash存储器上建立fat文件系统的优化方法 |
CN103339679A (zh) * | 2011-01-31 | 2013-10-02 | 马维尔国际贸易有限公司 | 向非易失性存储器映射数据 |
CN106874216A (zh) * | 2015-12-11 | 2017-06-20 | 捷鼎国际股份有限公司 | 加快在不连续页面写入数据的计算机系统及其方法 |
CN107346213A (zh) * | 2016-05-04 | 2017-11-14 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US20190384706A1 (en) | 2019-12-19 |
US10956318B2 (en) | 2021-03-23 |
TWI676103B (zh) | 2019-11-01 |
CN110618945A (zh) | 2019-12-27 |
TW202001573A (zh) | 2020-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110618945B (zh) | 存储系统 | |
CN110806984B (zh) | 在存储器系统中搜索有效数据的设备和方法 | |
EP2530612B1 (en) | Mount-time unmapping of unused logical addresses in non-volatile memory systems | |
US20150127889A1 (en) | Nonvolatile memory system | |
US20130151759A1 (en) | Storage device and operating method eliminating duplicate data storage | |
US10936203B2 (en) | Memory storage device and system employing nonvolatile read/write buffers | |
CN108228471B (zh) | 管理存储器装置中存储器单元的实体信息的方法及系统 | |
US10360155B1 (en) | Multi-tier memory management | |
CN110825659B (zh) | 用于检查存储器系统中的块中的有效数据的设备和方法 | |
KR20200068941A (ko) | 메모리 시스템 내 저장된 데이터를 제어하는 방법 및 장치 | |
CN111581121B (zh) | 用于管理存储器系统中的映射数据的方法和设备 | |
CN108027764B (zh) | 可转换的叶的存储器映射 | |
US20210026777A1 (en) | Apparatus and method for managing meta data in memory system | |
US10083181B2 (en) | Method and system for storing metadata of log-structured file system | |
CN113851172B (zh) | 存储器子系统映射中的错误处置优化 | |
US11281574B2 (en) | Apparatus and method for processing different types of data in memory system | |
KR102281750B1 (ko) | 비-휘발성 메모리에서 데이터 유효성 추적 | |
CN113900584A (zh) | 存储器系统、存储器控制器以及操作存储器系统的方法 | |
US20170160940A1 (en) | Data processing method and apparatus of solid state disk | |
US11494306B2 (en) | Managing data dependencies in a transfer pipeline of a hybrid dimm | |
KR20200087487A (ko) | 메모리 시스템에서의 유효 데이터 체크 방법 및 장치 | |
US11416410B2 (en) | Memory system, method of operating the same and data processing system for supporting address translation using host resource | |
KR20210039185A (ko) | 메모리 시스템에서 멀티 스트림 동작을 제공하는 방법 및 장치 | |
KR20200014175A (ko) | 소요시간을 예측하여 가비지 컬렉션을 수행하는 방법 및 장치 | |
US20220012180A1 (en) | Memory system for meta data management and operating method of memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |