CN105849706A - 用于管理逻辑到物理地址映射的储存模块和方法 - Google Patents
用于管理逻辑到物理地址映射的储存模块和方法 Download PDFInfo
- Publication number
- CN105849706A CN105849706A CN201480066219.XA CN201480066219A CN105849706A CN 105849706 A CN105849706 A CN 105849706A CN 201480066219 A CN201480066219 A CN 201480066219A CN 105849706 A CN105849706 A CN 105849706A
- Authority
- CN
- China
- Prior art keywords
- wordline
- data
- logical address
- described single
- methods
- 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.)
- Granted
Links
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
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/401—Compressed 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了用于管理逻辑到物理地址映射的储存模块和方法。在一个实施例中,提供了储存模块,包括存储器和控制器,该存储器具有多个字线。控制器被配置为使用逻辑到物理地址映射以将逻辑地址转换为字线的物理地址。所述映射中的多个逻辑地址指向单个字线,并且所述单个字线包含与所述多个逻辑地址相关联的数据以及关于在所述单个字线中在哪里寻找所述多个逻辑地址的每一个的信息两者。在字线自身中储存关于在哪里寻找所述多个逻辑地址的每一个的信息避免了使用更大的逻辑到物理地址映射或多个映射的延迟和复杂性。
Description
技术领域
为了管理储存在快闪存储器中的数据,被称为逻辑到物理地址映射的表被用于将逻辑块地址(LBA)映射到存储器中的物理地址。随着存储器容量增加并且随着读取分辨率变得更精细,逻辑到物理地址映射可能增长更大。在一些情况中,即使在存储器容量增加时,地址的分辨率仍然保持相同(例如,4KB)。在一些情况中,可能能够以更精细的分辨率(例如,1KB)读取存储器。在一些情况中,实现了存储器容量增加和更精细的分辨率两者。在所有这些情况中,逻辑到物理地址映射的尺寸变得越来越大。
随着所述逻辑到物理地址映射的尺寸变大,在RAM中储存逻辑到物理地址映射可能变得不切实际。因此,逻辑到物理地址映射的大的部分储存在快闪存储器中,并且在快闪控制器请求时将映射的相关部分从快闪转移到RAM中,作为快闪管理的部分。从快闪存储器读取是耗时的。因此,所期望的是,定义逻辑到物理地址映射以用于最小化在定位与给定逻辑地址相关联的物理地址中的延时。
一些储存模块使用压缩引擎以在将数据储存到存储器中之前压缩数据。如果压缩在逻辑空间和物理空间之间实现(即,LBA未被压缩,但是储存在快闪中的数据被压缩),则几个LBA储存在存储器区域中。更大的或额外的逻辑到物理地址映射可以被用于应对该情形。但是,使用更大的或额外的逻辑到物理地址映射可能增加***的复杂性和延迟。
发明内容
本发明的实施例由权利要求定义,并且在该章节中的任何内容都不应该被认为是对这些权利要求的限制。
以介绍的方式,以下实施例涉及用于管理逻辑到物理地址映射的储存模块和方法。在一个实施例中,提供包括存储器和控制器的储存模块,该存储器具有多个字线。控制器被配置为使用逻辑到物理地址映射以将逻辑地址转换为字线的物理地址。映射中的多个逻辑地址指向单个字线,并且该单个字线包含与所述多个逻辑地址相关联的数据以及关于在所述单个字线中的哪里寻找所述多个逻辑地址的每一个的信息两者。在字线自身中储存关于在哪里寻找所述多个逻辑地址的每一个的信息避免了使用更大的逻辑到物理地址映射或多个映射的延迟和复杂性。
其它实施例是可能的,并且每个实施例可以被单独地或者组合在一起使用。相应地,现在将参考附图描述各种实施例。
附图说明
图1是实施例的示例性储存模块的框图。
图2A是实施例的电子装置的框图,其中图1的示例性储存模块嵌入在电子装置中。
图2B是可拆卸地连接到主机的图1的示例性储存模块的框图,其中储存模块和主机是可分开的、可拆卸的装置。
图3是逻辑到物理地址映射的说明,其中在映射中的每个逻辑块地址指向存储器中的唯一的物理块。
图4是逻辑到物理地址映射的说明,其中指定了偏移和长度字段。
图5是实施例的逻辑到物理地址映射的说明,其中在映射中的多个逻辑块地址指向存储器中的相同的物理块。
图6是实施例的字线的说明。
图7是逻辑到物理地址映射的说明,其中在映射中的每个逻辑块地址指向存储器中的唯一的物理页以及在该页内的额外的偏移。
图8是示出实施例的性能益处的流程图。
具体实施方式
优选实施例
如上所述,使用大的或者多个逻辑到物理地址映射可能对储存模块增加复杂性和延迟。情况是这样,例如,当压缩引擎被用于在将数据储存在存储器中之前压缩数据,并且压缩实现在逻辑空间和物理空间之间。在该情况中,几个逻辑块地址(LBA)储存在给定字线中。以下实施例可以被用于在该类型的情况中映射逻辑到物理地址而不使用更大的或额外的逻辑到物理地址映射。在转向这些和其它实施例之前,以下段落提供对可以与这些实施例一起使用的示例性储存模块的讨论。当然,这些仅是示例,并且可以使用其它合适类型的储存模块。
如图1中所示,一个实施例的储存模块100包括控制器110和非易失性存储器120。控制器110包括用于与非易失性存储器120接口的存储器接口111,以及用于将储存模块100置于可操作性地与主机控制器通信的主机接口112。如这里所使用的,短语“可操作性地与…通信”可以意味着与其直接通信或者通过一个或多个组件间接与其通信,该一个或多个组件可能或者可能没有在这里示出或描述。
如图2A中所示,储存模块100可以嵌入在具有主机控制器220的主机210中。就是说,主机210包含主机控制器220和储存模块100,使得主机控制器220与嵌入式储存模块100接口以管理其操作。例如,储存模块100可以采用由SanDisk公司的iNANDTMeSD/eMMC嵌入式快闪驱动的形式。主机控制器220可以例如使用eMMC主机接口或UFS接口与嵌入式储存模块100接口。主机210可以采用任何形式,诸如但不限于固态驱动(SSD)、混合式储存装置(具有硬盘驱动和固态驱动两者)、存储器缓存***、移动电话、平板计算机,数字媒体播放器、游戏装置、个人数字助理(PDA)、移动(例如,笔记本型、膝上型)个人计算机(PC)或书阅读器。如在图2A中所示,主机210可以包括可选的其它功能模块230。例如,如果主机210是移动电话,其他的功能模块230可以包括接打电话的硬件和/或软件组件。作为另一示例,如果主机210具有网络连接性能力,其他功能模块230可以包括网络接口。当然,这些仅是一些示例,并且可以使用其它实现方式。此外,主机210可以包括为了简化附图而未在图2A中示出的其它组件(例如,音频输出、输入-输出端口等)。
如图2B中所示,代替作为主机中的嵌入式装置,储存模块100可以具有允许储存模块100经由匹配的连接器可拆卸地连接到主机240(具有主机控制器245)的物理和电连接器。如此,储存模块100是与主机240分开的(并且不是嵌入在主机240中的)装置。在该示例中,例如,储存模块100可以是手持的、可拆卸的存储器装置,比如安全数字(SD)存储卡、微SD存储卡、紧凑快闪(CF)存储卡或者通用串行总线(USB)装置(具有到主机的USB接口),并且主机240是独立的装置,比如移动电话、平板计算机、数字媒体播放器、游戏装置、个人数字助理(PDA)、移动(例如,笔记本型、膝上型)个人计算机(PC)或书阅读器。
在图2A和2B中,储存模块100经由图1中示出的主机接口112与主机控制器220或主机240通信。主机接口112可以采用任何合适的形式,诸如但不限于eMMC主机接口、UFS接口和USB接口。储存模块110中的主机接口110将存储器管理命令从主机控制器220(图2A)或主机240(图2B)传达到控制器110,并且还将存储器响应从控制器110传达到主机控制器220(图2A)或主机240(图2B)。此外,应注意的是,当储存模块110嵌入在主机210中时,由储存模块100中的控制器110进行的这里所述的一些或全部功能可以替代地由主机控制器220进行。
返回到图1,当使用时,控制器110包括中央处理单元(CPU)113、可操作以提供加密和/或解密操作的可选的硬件密码-引擎114、读取存取存储器(RAM)215、可以储存用于储存模块100的基本操作的固件的只读存储器(ROM)116以及可以储存用于加密/解密操作的装置特定密钥的非易失性存储器(NVM)117。控制器110可以以任何合适的方式实现。例如,控制器110可以采用以下形式,例如,微处理器或处理器以及储存可由(微)处理器执行的计算机-可读程序代码(例如,软件或固件)的计算机-可读介质、逻辑门、开关、专用集成电路(ASIC)、可编程逻辑控制器以及嵌入式微控制器。合适的控制器可以从SanDisk或其它供应商获得。此外,被示出为在控制器110内部的组件的一些还可以储存到控制器110的外部,并且可以使用其它组件。例如,RAM 115(或额外的RAM单元)可以位于控制器裸芯的外部并且被用作用于从存储器120读取的数据和/或要向存储器120写入的数据的页缓冲器。
非易失性存储器120也可以采用任何合适的形式。例如,在一个实施例中,非易失性存储器120采用固态(例如,快闪)存储器的形式并且可以是一次可编程的、几次可编程的或多次可编程的。非易失性存储器120还可以使用单级单元(SLC)、多级单元(MLC)、三级单元(TLC)或现在已知或者之后开发的其它存储器技术。
图1的储存模块100可以被用在用于管理逻辑到物理地址映射的实施例中,其中字线储存各种逻辑地址在字线中的内部地址(即,关于在字线中在哪里寻找多个逻辑地址的每一个的信息)。如上所述,为了管理储存在快闪存储器中的数据,维持被称为逻辑到物理地址映射的表(或表集)(术语“映射”和“表”将在这里被互换地使用)。一个(或多个)表在快闪存储器120中保持逻辑地址到物理地址的映射。(映射可以储存在存储器120、ROM、116或非易失性存储器117中,并且然后按需要读取到RAM 115中。可替换地,映射可以在运行中产生)。在逻辑地址世界中,基本单元是逻辑块地址(LBA),而在物理世界中,基本单元通常是字线(WL)。为了简洁性而不限制本发明的任何方面,在下面的实施例中,LBA的尺寸等于物理字线的尺寸。在描述了该简化的实施例之后,将讨论更加一般化的实施例。但是,储存关于在字线中在哪里寻找多个逻辑地址的每一个的信息以避免使用更大的逻辑到物理地址映射或多个映射的延迟和复杂性的一般概念适用于这两种实施例。
图3示出了逻辑到物理地址表映射。通常,对于每个LBA,将在逻辑到物理地址映射中存在指向快闪存储器120中的物理地址的条目。但是,许多存储器***实现压缩引擎,其检测数据是否可压缩并且在将数据储存到物理存储器中之前压缩数据。如果压缩在逻辑空间和物理空间之间实现(即,LBA未被压缩,但是储存在快闪存储器中的数据被压缩),则在逻辑数据和物理数据之间创造了失配。在这样的情况中,相同的物理储存空间可以储存大得多的量的LBA,并且在LBA和字线之间的对齐打破。单个字线可以包含多个LBA,其每一个仅占据字线的一部分。该情形需要用于在物理存储器中储存与LBA相关联的逻辑数据的新方案以及用于逻辑到物理地址表的新结构。
当数据以压缩的形式储存在存储器中时,可能发生的是,单个字线将储存多个LBA数据,即使每个LBA表示一个字线大小的未压缩数据。解决该问题的一个方法是通过使用两个逻辑到物理地址表。主要表将包含其中储存LBA的字线的物理地址,而次级表将包含字线中的相对地址(即,从字线头部的偏移(offset))以及由LBA占据的长度(即,物理存储器的量)。
可替换地,可以使用一个逻辑到物理地址表,但是每个LBA将与三个值相关联:字线地址、偏移地址和长度。这在图4中示出,其中LBA1与条目400,45,512相关联。这意味着LBA1被映射到字线号400,并且其相关联的数据在45字节的偏移处开始并且为512字节长。LBA2未被压缩;因此,偏移被设置为0,并且长度被设置为4K,其在该示例中为字线的完整长度。LBA3被映射到字线1000的开头,尽管其被压缩并且它的物理储存长度仅为256字节。如果不使用压缩并且所有的单元是相同的尺寸,则不需要尺寸信息,并且偏移变为页内的逻辑单元索引的索引。
以上两种方法在一些程度上解决了该问题,但是它们具有它们的缺点。例如,用于映射表的存储器的量显著地大。这对主要和次级表方法以及延伸的一个表的方法两者来说都是如此。因此,仅较小的量的LBA可以储存在RAM中,并且表的更大的部分将储存在快闪存储器中。这将增加从快闪存储器的读取量,这明显比从RAM读取要慢。因此,***性能将劣化。
在一个实施例中,替代于使用更大的逻辑到物理地址映射或多个映射来解决该问题,使用通常将被用于未压缩的数据的单个逻辑到物理地址映射,并且关于在字线中的哪里储存数据的信息被储存在字线自身中。这允许对压缩的数据项目的快速访问而不增加一般的映射表(用于未压缩的数据)并且不会付出大的性能代价。
在该实施例中,该映射中的多个逻辑地址指向单个字线(不同于一般用于未压缩的数据的映射,其中每个逻辑地址指向唯一的字线)。就是说,因为两个或多个不同的LBA在它们相关联的数据被压缩时可以储存在相同的物理字线中,所以字线的地址将多次出现在逻辑到物理地址映射中(对于储存在相同的字线中的每个LBA一次)。这在图5中示出,其中LBA 1和LBA4储存在相同的字线中。
在该实施例中,字线内的内部地址将储存在字线内。就是说,字线自身储存关于在字线中在哪里寻找多个逻辑地址的每一个的信息。如果两个不同的LBA被映射到相同的字线,(例如,LBA 1和LBA 4都被映射到相同的字线),则在映射表中,两者将指向相同的物理存储器地址,这是字线的开头的地址。但是,除了与不同的LBA有关的数据以外,字线还将储存关于在字线中在哪里寻找多个LBA的每一个的额外的信息。因此,在图3中,LBA1和LBA 4指向相同的字线,该字线储存与每个LBA相关联的数据。与LBA1有关的数据被储存在字线的第一半中,并且与LBA 4有关的数据被储存在字线的第二半中。为了解决内部位置的不明确,标头(header)H可以被添加到字线使得标头保持关于LBA 1和LBA 4两者的内部位置的信息(见图6)。在一些实施例中,储存在存储器中的数据是以压缩的形式。如图6中所示,关于在哪里寻找多个逻辑地址的每一个的信息可以包含偏移和长度。偏移可以相对于数据的开头或者是测量从字线的开头的偏移的绝对偏移。其它类型的信息可以被用于寻找多个逻辑地址的每一个、诸如但不限于字线中的特定地址以及可以仅是偏移信息(如果使用标准长度)。在一些实现方式中,数据可以被写入使得在连续的数据之间没有空闲空间。在这样的情况中,数据单元的结尾可以从连续数据的偏移确定,并且“长度”字段可以省略。可替换地,偏移可以从长度得到,因此,长度可以储存并且偏移可以省略。在替换实施例中,信息被储存在字线中的位置中而不是标头中。
该实现方式仅向从存储器120读取的过程添加少量的延迟。当请求读取对于特定LBA的数据时,控制器110中的快闪管理将以与传统的、非压缩的情况相同的方式使用逻辑到物理地址映射表。在与LBA相关联的特定字线中的所有数据将从快闪存储器120读取,类似于非压缩的情况。例如,为了读取数据,完整的ECC码字将从快闪存储器120感测并且被解码以便于解码任何特定LBA信息。优选的是,标头和其指向的LBA的数据存在于相同的ECC块中以避免双重ECC解码,这是非常耗时的操作。因此,有效的解决方案意味着标头和由该标头指向的少数LBA都被封装在相同的ECC块中(其可能具有例如4KB的尺寸)。(在非压缩的情形中,每个LBA可以在码字中被独立地编码,并且每个码字的尺寸可以与字线的尺寸相同。在压缩的情况中,每个码字将包括完整的字线内容,包含多个LBA以及关于在字线中在哪里寻找每个LBA的额外的信息)。因此,即使在压缩的情况中,控制器110将感测并且解码完整字线以便于读取压缩的LBA。这意味着感测和解码操作对于压缩的***或者非压缩的***是相同的。因此,由于数据以与非压缩的情况相同的分辨率被读取,所以感测和解码不对快闪管理产生任何负担。一旦数据被读取和解码,将容易确定所请求的LBA的在从快闪存储器120读取的数据内的位置,并且在该位置中的数据将被解压缩以解码LBA。
在该实施例中,逻辑到物理地址映射的存储器要求与在非压缩的情况中是相同的。此外,如上所述,存储器的总量(包含字线中的标头)少于实现基于主要和次级映射或者具有每LBA三个条目的延伸的表的解决方案所需要的存储器的量。这是由于以下事实,根据该实施例,标头长度可以被动态地设置为压缩的函数。例如,如果某个字线储存未压缩的数据,则根据该实施例,用于该字线的标头可以简单地是指示没有实现压缩的一位旗标。对于包含两个LBA的字线,标头可以存储用于这两个LBA的偏移以及这两个LBA被映射到字线的指示(如果压缩的LBA正被相继连续地写入,则仅需要偏移信息,并且长度由两个相邻的偏移之间的差计算或者对于最后的组块由4KB区域的结尾和上一个偏移之间的差计算)。一般来说,标头在映射到字线的LBA的数量上可以是线性的。相反,上述其它方法需要对于最差情况分配存储器,并且对于字线号、偏移和长度为每个LBA分配存储器。该实施例相对于基于主要和次级映射的解决方案还具有其它性能益处。这在图8的流程图800中示出,其示出了在基于本公开的***解决方案中的数据的随机读取的过程,其中本公开具有在基于主要和次级映射的解决方案的***中的数据的随机读取。在该示例中,两个解决方案以类似的方式进行前四个步骤810、820、830、840。即,它们都读取包含目标数据的字线的主要映射(动作810)、都感测包含目标数据的字线(动作820)、将字线转移到控制器(动作823)并且ECC-解码字线(动作840)。(该读取和解压缩数据的最后的动作(动作880)以及将数据转移到主机(动作890)在两个方法中也是类似的。)两个方法之间的区别在于确定目标数据在字线中的内部地址。根据一个实施例,内部地址从标头确定,该标头作为字线的部分被解码(动作850)。因此,该信息可以容易地在控制器中获得而不需要进一步感测非易失性存储器。根据基于主要和次级映射的解决方案,内部地址通过从次级映射读取而确定。通常,次级映射将不存在于控制器中,因此将需要感测非易失性存储器(动作860)、将字线转移到控制器(动作885)、并且ECC-解码次级映射(动作870)。因此,在基于本实施例的解决方案中随机读取的过程显著地更快。
图5示出了仅一个字线包含压缩的数据的情况。实践中,许多字线可以包含压缩的数据,并且压缩率从一个数据到另一个可以显著地变化。例如,一些数据可能经历90%或者更多的压缩,使得10个LBA可以指向相同的物理存储器单元,而其它LBA将压缩到大约50%,使得不多于两个这种类型的LBA可以指向相同的物理存储器。
该实施例的另一方面涉及将各种压缩率的数据储存在物理存储器中。在一个实施例中,压缩的数据以这样的方式储存在物理存储器中:储存在相同的物理存储器单元(例如,相同的字线)中的数据将具有类似的压缩率。例如,如果具有90%的压缩率的数据储存在特定物理存储器单元中,则其它数据仅当它们的压缩率为至少70%时将被储存在相同的存储器单元中。因此,具有50%的压缩比的数据将不会与具有90%压缩的数据储存在相同的存储器单元中。在一些情况中,这可能劣化***的压缩率,但是一般来说,该实施例将有助于存储器管理。
在一个替换实施例中,代替维持每个压缩的逻辑单元的明确的尺寸的计数器(例如,为了维持每个块中的有效/无效的数据的量),对每个物理块中的有效的逻辑单元的量计数是足够的。每物理块的有效的逻辑单元的数量的计数器可能已经存在于实现方式中而没有压缩。因此,不需要在该部分添加任何额外的逻辑(较少的复杂性)。例如,在快闪存储器***中,垃圾收集的过程发生,其中旧的数据被指定为无效的并且新的数据被写入到快闪存储器的不同的位置中。根据本实施例操作的储存模块将能够通过保持对LBA的更新的跟踪而预测在任何给定时间时的无效的物理存储器地址的量。如果某个LBA被无效,则由于该操作而变为废弃的存储器的量将被估计为与其储存在的物理存储器单元相关联的LBA的数量的函数。如果物理存储器单元仅储存两个LBA,则来自LBA的一个的无效的废弃的存储器的量将被估计为存储器单元的一半。如果存储器单元储存10个LBA(与10个LBA相关联的数据),则由于一个LBA的无效导致的废弃的存储器的量将被估计为存储器单元的1/10。该储存压缩的数据的平衡方法将使能更好的快闪管理。
此外,由于使用了较少的填充,逻辑单元到物理单元的储存的效率改善。例如,考虑物理单元用小的可压缩的逻辑单元填充了2/3、并且然后接收了仅可半压缩的逻辑单元的情形。如果逻辑单元根据从主机到达的时间被一起映射,则当前的物理单元将需要由1/3的零填充并且封闭。可半压缩的数据将被映射到新的物理单元。根据一个实施例,可半压缩的数据不是与多个可压缩的逻辑数据单元一起储存的候选,因此包含2/3可压缩的逻辑单元的物理单元将不会封闭并且将保持打开以用于下一个可压缩的逻辑数据单元。
存在可以与这些实施例一起使用的许多其它替换。例如,如上所述,在前述示例中,在压缩之前的逻辑空间的基本单元与在物理空间中的基本单元是相同的尺寸。但是,在理论上和实践中,分辨率在未压缩的情况中可能从逻辑到物理而不同,使得字线和LBA的尺寸在压缩之前不一致。(在压缩之前,几个LBA储存在给定字线中,因为一个字线包含几个页。压缩仅增加了将储存在相同的字线中(或页)中的LBA的量。使用遗留映射格式将增加映射表,因为需要更大的索引以在相同的页中映射更多的LBA。)例如,在一些情形中,每个LBA是单个扇区,其尺寸是0.5KB,而每个字线的尺寸是16KB。每个字线可以被分区为更小的单元,诸如4KB的单元。如图7中所示的,在该情况中,LBA将以8的集合被分组,并且映射表将指向包含各个LBA的给定的4KB单元。映射中的每个逻辑块地址指向存储器中的唯一的物理页以及页内的额外的偏移。随着快闪存储器在容量上变得更大并且随着读取分辨率变得更精细,逻辑到物理地址映射可能变得更大。在一些情况中,地址的分辨率保持相同(例如,4KB),但是快闪存储器120的容量增加。在其它情况中,期望能够以更精细的分辨率读取快闪存储器120,所以基本单元可以降低(例如,到1KB)。在其它情况中,实现了容量增加和更精细的分辨率两者。此外,如在以上示例中,压缩还可以被用于增加分辨率。在所有这些情况中,逻辑到物理地址映射变得越来越大。通过使用这些实施例,对于给定LBA的关于在字线中的位置的信息储存在字线自身中,避免了对更加复杂的或额外的映射表的需求。
其它变化也是可能的。例如,在一些情况中,压缩的数据可以是被压缩为独立的数据的数据。在其它情况中,数据可能不被压缩为独立的数据,而是其内容是由存储器重复地使用的样式。在后一情况中,该样式可以储存在***中的某处,(RAM 115、ROM 116或主储存120),并且压缩的LBA将是到该样式的地址的指针。在其它情况中,压缩的数据可以是可压缩为独立的数据的数据以及表示不可被压缩为独立的数据(或者当被认为是样式时实现更好的压缩比的数据)的频繁地使用的样式的组合。因此,物理储存可以保持从逻辑单元到模式或者压缩的数据的指针。优选地,当压缩的数据是可压缩为独立的数据的数据以及表示频繁地使用的样式的数据的组合时,额外的旗标可以被用于确定哪个数据表示样式并且哪个是独立的压缩的数据。在一些实施例中,可能优选的是在单独的块中储存频繁地使用的样式,因为它们的压缩比通常非常大,因此它们可以被非常有效地压缩。在一个实施例中,期望根据数据的压缩比将数据储存在一起。
所意欲的是,前述详细的描述被理解为本发明可以采取的选择的形式的说明并且不作为本发明的限定。仅下面的权利要求、包含所有的等价物意欲定义所要求的发明的范围。最后,应注意的是,这里所述的任何优选的实施例的任何方面可以被单独地或相互组合使用。
Claims (36)
1.一种储存模块,包括:
存储器,包括多个字线;以及
控制器,被配置为使用逻辑到物理地址映射以将逻辑地址转换为字线的物理地址,其中所述映射中的多个逻辑地址指向单个字线,并且其中所述单个字线包含与所述多个逻辑地址相关联的数据以及关于在所述单个字线中在哪里寻找所述多个逻辑地址的每一个的信息两者。
2.如权利要求1所述的储存模块,其中储存在所述单个字线中的数据是压缩的。
3.如权利要求2所述的储存模块,其中在所述存储器中的额外的字线包含压缩的数据,并且其中压缩率在字线之间变化。
4.如权利要求3所述的储存模块,其中储存在给定字线中的所有数据具有相同的压缩率。
5.如权利要求1所述的储存模块,其中关于在哪里寻找所述多个逻辑地址的每一个的信息储存在所述单个字线的标头中。
6.如权利要求1所述的储存模块,其中所述标头的尺寸被动态地设置为在所述单个字线中使用的压缩的量的函数。
7.如权利要求1所述的储存模块,其中所述控制器还被配置为产生码字的错误校正码,该错误校正码包括与所述多个逻辑地址相关联的数据以及关于在哪里寻找所述多个逻辑地址的每一个的信息。
8.如权利要求1所述的储存模块,其中所述控制器还被配置为进行以下:
响应于读取所述多个逻辑地址的一个的命令,在使用关于在哪里寻找所述多个逻辑地址的每一个的信息来寻找所述多个逻辑地址的所述一个之前读取所述单个字线的整体。
9.如权利要求1所述的储存模块,其中所述控制器还被配置为通过跟踪对所述多个逻辑块地址的更新来预测在所述单个字线中的无效的存储器地址的量。
10.如权利要求1所述的储存模块,其中所述数据是到另一地址的指针,该另一地址保持在所述存储器中重复使用的数据的样式。
11.如权利要求1所述的储存模块,其中所述储存模块嵌入在主机中。
12.如权利要求1所述的储存模块,其中所述储存模块可拆卸地连接到主机。
13.如权利要求1所述的储存模块,其中所述存储器是NAND存储器。
14.如权利要求1所述的储存模块,其中所述储存模块是固态驱动。
15.如权利要求1所述的储存模块,其中在字线和逻辑地址之间存在1:1关系,并且其中压缩使得所述多个逻辑地址指向所述单个字线。
16.如权利要求1所述的储存模块,其中在压缩之前在字线和逻辑地址之间存在N:l关系,其中N>1,并且其中所述多个逻辑地址指向所述单个字线中的相同的偏移区域。
17.如权利要求1所述的储存模块,其中所述逻辑到物理地址映射储存在存储器中,并且其中所述逻辑到物理地址映射的至少部分暂时地缓存在所述控制器中的随机存取存储器中。
18.如权利要求1所述的储存模块,其中关于在所述单个字线中在哪里寻找所述多个逻辑地址的每一个的信息包括偏移和长度。
19.一种用于管理逻辑到物理地址映射的方法,所述方法包括:
在具有存储器的储存装置中进行以下,该存储器包括多个字线和逻辑到物理地址映射:
使用所述逻辑到物理地址映射将逻辑地址转换为字线的物理地址,其中所述映射中的多个逻辑地址指向单个字线,其中所述单个字线包含与所述多个逻辑地址相关联的数据以及关于在所述单个字线中在哪里寻找所述多个逻辑地址的每一个的信息两者;以及
读取所述单个字线中的所述信息以确定与所述多个逻辑地址的一个相关联的数据位于所述单个字线中的哪里。
20.如权利要求19所述的方法,其中储存在所述单个字线中的数据是压缩的。
21.如权利要求20所述的方法,其中在所述存储器中的额外的字线包含压缩的数据,并且其中压缩率在字线之间变化。
22.如权利要求21所述的方法,其中储存在给定字线中的所有数据具有相同的压缩率。
23.如权利要求19所述的方法,其中关于在哪里寻找所述多个逻辑地址的每一个的所述信息储存在所述单个字线的标头中。
24.如权利要求19所述的方法,其中所述标头的尺寸被动态地设置为在所述单个字线中使用的压缩的量的函数。
25.如权利要求19所述的方法,还包括产生码字的错误校正码,该错误校正码包括与所述多个逻辑地址相关联的数据以及关于在哪里寻找所述多个逻辑地址的每一个的信息。
26.如权利要求19所述的方法,还包括:
响应于读取所述多个逻辑地址的一个的命令,在使用关于在哪里寻找所述多个逻辑地址的每一个的信息来寻找所述多个逻辑地址的所述一个之前读取所述单个字线的整体。
27.如权利要求19所述的方法,还包括通过跟踪对所述多个逻辑块地址的更新来预测在所述单个字线中的无效的存储器地址的量。
28.如权利要求19所述的方法,其中所述数据是到另一地址的指针,所述另一地址保持在所述存储器中重复使用的数据的样式。
29.如权利要求19所述的方法,其中所述储存模块嵌入在主机中。
30.如权利要求19所述的方法,其中所述储存模块可拆卸地连接到主机。
31.如权利要求19所述的方法,其中所述存储器是NAND存储器。
32.如权利要求19所述的方法,其中所述储存模块是固态驱动。
33.如权利要求19所述的方法,其中在字线和逻辑地址之间存在1:1关系,并且其中压缩使得所述多个逻辑地址指向所述单个字线。
34.如权利要求19所述的方法,其中在压缩之前在字线和逻辑地址之间存在N:l关系,其中N>1,并且其中所述多个逻辑地址指向所述单个字线中的相同的偏移区域。
35.如权利要求19所述的方法,其中所述逻辑到物理地址映射储存在存储器中,并且其中所述逻辑到物理地址映射的至少部分暂时地缓存在所述控制器中的随机存取存储器中。
36.如权利要求19所述的方法,其中关于在所述单个字线中在哪里寻找所述多个逻辑地址的每一个的信息包括偏移和长度。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/096,965 US9514057B2 (en) | 2013-12-04 | 2013-12-04 | Storage module and method for managing logical-to-physical address mapping |
US14/096,965 | 2013-12-04 | ||
PCT/US2014/058292 WO2015084478A1 (en) | 2013-12-04 | 2014-09-30 | Storage module and method for managing logical-to-physical address mapping |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105849706A true CN105849706A (zh) | 2016-08-10 |
CN105849706B CN105849706B (zh) | 2019-10-25 |
Family
ID=51799300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480066219.XA Active CN105849706B (zh) | 2013-12-04 | 2014-09-30 | 用于管理逻辑到物理地址映射的储存模块和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9514057B2 (zh) |
CN (1) | CN105849706B (zh) |
DE (1) | DE112014005521B4 (zh) |
WO (1) | WO2015084478A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110532194A (zh) * | 2018-05-23 | 2019-12-03 | 爱思开海力士有限公司 | 存储器***及其操作方法 |
CN110858129A (zh) * | 2018-08-22 | 2020-03-03 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN111417933A (zh) * | 2017-12-01 | 2020-07-14 | 美光科技公司 | 基于偏移的逻辑块映射 |
CN112166420A (zh) * | 2018-04-23 | 2021-01-01 | 美光科技公司 | 主机逻辑到物理信息刷新 |
CN113015975A (zh) * | 2018-06-29 | 2021-06-22 | 美光科技公司 | 安全逻辑到物理高速缓存 |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9495288B2 (en) * | 2013-01-22 | 2016-11-15 | Seagate Technology Llc | Variable-size flash translation layer |
US9229876B2 (en) * | 2013-12-17 | 2016-01-05 | Sandisk Technologies Inc. | Method and system for dynamic compression of address tables in a memory |
US9927998B2 (en) * | 2014-02-05 | 2018-03-27 | Tidal Systems, Inc. | Flash memory compression |
JP5745136B1 (ja) * | 2014-05-09 | 2015-07-08 | 力晶科技股▲ふん▼有限公司 | 不揮発性半導体記憶装置とその書き込み方法 |
US9710199B2 (en) | 2014-11-07 | 2017-07-18 | International Business Machines Corporation | Non-volatile memory data storage with low read amplification |
KR20160075174A (ko) * | 2014-12-19 | 2016-06-29 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그 동작방법 |
US10162700B2 (en) * | 2014-12-23 | 2018-12-25 | International Business Machines Corporation | Workload-adaptive data packing algorithm |
US10108633B2 (en) | 2014-12-27 | 2018-10-23 | Ascava, Inc. | Using a distributed prime data sieve for efficient lossless reduction, search, and retrieval of data |
US10222990B2 (en) * | 2015-07-24 | 2019-03-05 | Sandisk Technologies Llc | Optimistic read operation |
US9946594B2 (en) | 2015-08-19 | 2018-04-17 | International Business Machines Corporation | Validation bits and offsets to represent logical pages split between data containers |
US10613756B2 (en) | 2015-09-03 | 2020-04-07 | Qualcomm Incorporated | Hardware-accelerated storage compression |
US20170068458A1 (en) * | 2015-09-03 | 2017-03-09 | Qualcomm Incorporated | Hardware-accelerated storage compression |
US9712190B2 (en) | 2015-09-24 | 2017-07-18 | International Business Machines Corporation | Data packing for compression-enabled storage systems |
US10255004B2 (en) * | 2015-11-16 | 2019-04-09 | Marvell World Trade Ltd. | Systems and methods for managing address-mapping data in memory devices |
US9870285B2 (en) | 2015-11-18 | 2018-01-16 | International Business Machines Corporation | Selectively de-straddling data pages in non-volatile memory |
TWI720086B (zh) * | 2015-12-10 | 2021-03-01 | 美商艾斯卡瓦公司 | 儲存在區塊處理儲存系統上的音頻資料和資料的縮減 |
US9946462B1 (en) | 2016-02-15 | 2018-04-17 | Seagate Technology Llc | Address mapping table compression |
US10191854B1 (en) | 2016-12-06 | 2019-01-29 | Levyx, Inc. | Embedded resilient distributed dataset systems and methods |
US10140027B1 (en) * | 2017-05-26 | 2018-11-27 | Seagate Technology Llc | Data transfers with adaptively adjusted polling times |
US10606760B2 (en) | 2017-08-23 | 2020-03-31 | Samsung Electronics Co., Ltd. | Nonvolatile memory devices and methods of controlling the same |
US10289557B2 (en) | 2017-08-28 | 2019-05-14 | Western Digital Technologies, Inc. | Storage system and method for fast lookup in a table-caching database |
KR20190087217A (ko) * | 2018-01-16 | 2019-07-24 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US11281578B2 (en) | 2019-08-20 | 2022-03-22 | Micron Technology, Inc. | Garbage collection in a memory sub-system during a low battery state |
US11282567B2 (en) * | 2019-08-20 | 2022-03-22 | Micron Technology, Inc. | Sequential SLC read optimization |
US11726869B2 (en) | 2019-08-20 | 2023-08-15 | Micron Technology, Inc. | Performing error control operation on memory component for garbage collection |
US11281392B2 (en) | 2019-08-28 | 2022-03-22 | Micron Technology, Inc. | Garbage collection in a memory component using an adjusted parameter |
US11372754B2 (en) | 2020-06-12 | 2022-06-28 | Western Digital Technologies, Inc. | Storage system and method for enabling a software-defined dynamic storage response |
US11861208B2 (en) * | 2020-12-22 | 2024-01-02 | Micron Technology, Inc. | Performing data operations on grouped memory cells |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673243A (zh) * | 2009-09-29 | 2010-03-17 | 威盛电子股份有限公司 | 数据储存装置与方法 |
CN102473092A (zh) * | 2009-07-24 | 2012-05-23 | 苹果公司 | 索引缓存树 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8291194B2 (en) | 2009-11-16 | 2012-10-16 | Mediatek Inc. | Methods of utilizing address mapping table to manage data access of storage medium without physically accessing storage medium and related storage controllers thereof |
US8949513B2 (en) | 2011-05-10 | 2015-02-03 | Marvell World Trade Ltd. | Data compression and compacting for memory devices |
-
2013
- 2013-12-04 US US14/096,965 patent/US9514057B2/en active Active
-
2014
- 2014-09-30 WO PCT/US2014/058292 patent/WO2015084478A1/en active Application Filing
- 2014-09-30 DE DE112014005521.2T patent/DE112014005521B4/de active Active
- 2014-09-30 CN CN201480066219.XA patent/CN105849706B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102473092A (zh) * | 2009-07-24 | 2012-05-23 | 苹果公司 | 索引缓存树 |
CN101673243A (zh) * | 2009-09-29 | 2010-03-17 | 威盛电子股份有限公司 | 数据储存装置与方法 |
Non-Patent Citations (1)
Title |
---|
YOUNGJO PARK等: "zFTL:Power-Efficient Data Compression Support for NAND Flash-based Consumer Electronics Devices", 《IEEE TRANSACTIONS ON CONSUMER ELECTRONICS》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111417933A (zh) * | 2017-12-01 | 2020-07-14 | 美光科技公司 | 基于偏移的逻辑块映射 |
CN111417933B (zh) * | 2017-12-01 | 2024-05-10 | 美光科技公司 | 基于偏移的逻辑块映射 |
CN112166420A (zh) * | 2018-04-23 | 2021-01-01 | 美光科技公司 | 主机逻辑到物理信息刷新 |
CN112166420B (zh) * | 2018-04-23 | 2024-04-05 | 美光科技公司 | 用于刷新逻辑到物理信息的***和方法 |
CN110532194A (zh) * | 2018-05-23 | 2019-12-03 | 爱思开海力士有限公司 | 存储器***及其操作方法 |
CN110532194B (zh) * | 2018-05-23 | 2023-11-24 | 爱思开海力士有限公司 | 存储器***及其操作方法 |
CN113015975A (zh) * | 2018-06-29 | 2021-06-22 | 美光科技公司 | 安全逻辑到物理高速缓存 |
CN113015975B (zh) * | 2018-06-29 | 2024-03-15 | 美光科技公司 | 安全逻辑到物理高速缓存 |
CN110858129A (zh) * | 2018-08-22 | 2020-03-03 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN110858129B (zh) * | 2018-08-22 | 2023-07-07 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US9514057B2 (en) | 2016-12-06 |
CN105849706B (zh) | 2019-10-25 |
DE112014005521T5 (de) | 2016-11-17 |
WO2015084478A1 (en) | 2015-06-11 |
DE112014005521B4 (de) | 2022-01-13 |
US20150154118A1 (en) | 2015-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105849706A (zh) | 用于管理逻辑到物理地址映射的储存模块和方法 | |
US11449252B2 (en) | Method of writing and reading data in an NVM using Lpage identification headers | |
KR102155191B1 (ko) | 비휘발성 메모리에 대한 기록들의 관리 및 그 기록들의 영역 선택 | |
CN105468294B (zh) | 用于固态存储设备的脱机去重 | |
US10055345B2 (en) | Methods, devices and systems for solid state drive control | |
US9851910B2 (en) | Scalable data structures for control and management of non-volatile storage | |
CN105103137B (zh) | 数据存储***的数据的压缩和格式化 | |
US8910017B2 (en) | Flash memory with random partition | |
US9329991B2 (en) | Translation layer partitioned between host and controller | |
CN103392207B (zh) | 非易失性存储的自身日志记录和层级一致性 | |
CN105074676B (zh) | 数据存储***的数据的多个流压缩和格式化 | |
US20140325117A1 (en) | Flash translation layer with lower write amplification | |
US9477406B2 (en) | Locating data in non-volatile memory | |
US9507523B1 (en) | Methods, devices and systems for variable size logical page management in a solid state drive | |
CN109976664A (zh) | 固态存储设备的日志数据组织 | |
CN107807788A (zh) | 多平面闪存的数据组织方法与装置 | |
KR20210028729A (ko) | 논리적 대 물리적 테이블 프래그먼트들 | |
CN108334276A (zh) | 快闪记忆体的动态对齐数据方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |