一种基于页块面三维的闪存地址映射方法

文档序号:6373098阅读:367来源:国知局
专利名称:一种基于页块面三维的闪存地址映射方法
技术领域
本发明涉及一种闪存地址映射方法,属于存储管理技术领域。
背景技术
闪存存储器主要分为NAND (与非)和XOR (或非)两种类型,其中NAND型是专为数据存储设计,其应用领域不断扩大,XOR型的市场份额则在逐渐缩小。本发明的闪存地址映射方法主要是针对NAND类型的闪存芯片。通常一个NAND类型的闪存芯片的存储空间是由一定数量的块(Block)组成的,每个块又划分为固定大小的页(Page)。NAND闪存操作中,块是擦写操作的最小单元,页是读 写操作的最小单元。由于闪存存储器的硬件特性,闪存的更新操作有自己的特点,在对数据进行更新前需要先进行擦写操作,然后才能将新数据写入,并且擦写操作是以块为单位,读写操作是以页为单位。由于擦写操作涉及的最小单元远大于读写操作的最小单元,需要对一个擦写块内不需要更新的数据提供有效的保护。闪存芯片的存储空间和读写速度不断的提高,大部分采用多channel (通道)、多LUN (逻辑单元,表示物理管芯)、多plane (存储平面,有时也被称为存储层,也可以称作存储矩阵,即Memory Array);这类存储管理方法使原有的地址映射方法不能很灵活的建立从逻辑块到物理块的映射关系;在数据的读出写入、减少数据复制次数、块擦写次数和对坏块的处理能力上有些欠缺。闪存是基于存储块为单位进行擦除动作的,不过除了存储块这个单位外,闪存还有存储页这个单位,闪存的每次读写操作都是对整个存储页进行的。每枚闪存芯片中包含有两个物理管芯,也就是两个逻辑单元。每个物理管芯内有两个存储平面,可以实现Two-Plane操作,即同时对奇、偶存储平面的存储页(相当于两个)执行读操作、或者两个存储块执行擦除动作或者两个存储页执行写入动作。在一种与非闪存中每个物理存储平面有2048个存储块。每个存储块内有256个存储页(page),每个存储页内有4320个字节(4KB+224bytes),这里额外的224字节被称作备用空间,用于执行ECC (Error Correcting Code,错误检查和纠正)、系统指针等作用。不同制造工艺、不同容量的NAND闪存芯片的存储页、存储块大小可能会有不同,通常更精密制程的存储页会更大,更高密度的芯片存储页会更大。例如同样是MFT 25nm的闪存芯片,256Gb或者更大容量的存储页就是8KB而非128GB (以及64Gb、32Gb)的4KB。为了使闪存让操作系统看起来是一个标准的存储设备,就需要配置闪存逻辑转换层以使得操作系统的逻辑地址重新映射成闪存的物理地址。经过逻辑转换后,闪存里各个前后物理页面对应的逻辑地址不一定是连续的,所以闪存需要地址映射。对闪存来说逻辑转换层的首要功能是把数据存放在闪存中空闲或者已被擦除的位置并标记出真实的数据位置,所以地址映射是所有闪存控制芯片中逻辑转换层必备的特性。
按照存储单元的组织方式,或者说映射粒度,目前地址映射方法主要有三种页映射(Page Mapping)、块映射(Blocking Mapping)和混合映射(Hybrid Mapping)。页映射是以页为单位进行地址映射的组织方法,在内存中保存基于页的映射表,每一逻辑页都有一项与之对应的物理页,页映射方法具有灵活性高的优点,但由于需要为每个逻辑页面建立地址映射表项,需要占用大量内存空间。块映射是以块为单位进行地址映射的组织方法,逻辑块内地址偏移与物理块内偏移保持一致。该方法仅需要在内存中保留块映射表,建立从逻辑块到物理块的映射关系,块映射优点较之页映射显见的优点是内存占用量少,受闪存容量增大的影响非常小;缺点则也是相对的,在处理小数据更新上性能较差,一小块数据的更新会引起对整个块内容的复制。混合映射方法结合了块映射和页映射的优点,首先以块映射方法建立逻辑块和物理块的映射关系,同时对块内数据采用页映射方法组织。混合映射算法较之页映象算法内 存空间占用量少,同时较之块映射算法又对小数据更新更加灵活、代价少;但对闪存物理存储单元的多通道、多面的处理效率明显不高,也增加了内存空间占用量,同时对大数据更新会影响闪存的读写速度,并缺少写和读的过程遇见坏块的处理方法。

发明内容
因此,本发明在混合映射的基础上,进一步提出了基于页块面三维的闪存地址映射方法,降低地址映射表的内存占有率,并提高存取速度。为了实现本发明的发明目的,所采用的技术方案为
一种基于页块面三维的闪存地址映射方法,与非闪存的存储空间除冗余的块外,被分配为若干有效块,所有的所述有效块被分成含有复数个有效块的逻辑单元,通过与非闪存控制单元的逻辑转换层两两关联每个逻辑单元内的所述有效块,在逻辑单元内以关联和被关联的方式被分成两类的所述有效块相应地分配给两个面,以一个面为基础建立块映射表;
响应于输入数据的写操作,依据建立的所述块映射表,分配一个有效块,建立该有效块及关联于该有效块的有效块的页映射表,交替地在该有效块及关联于该有效块的有效块上写入所述输入数据,并更新页映射表、块映射表和面映射表;
响应于读操作,依据所述面映射表和所述块映射表检索读操作的逻辑地址对应物理地址的所述有效块,然后依据检索到的有效块载入页映射表检索数据进行读取。依据本发明的上述基于页块面三维的闪存地址映射方法,采用页、块、面的闪存地址映射方法,由于采用了类同于对半数有效块建立快地址映射表的方法,减少了一半的块地址映射表的大小,而面的数量较之块的数量要少得多,面地址映射表相对非常小,这样使地址映射表占有的内存的总空间变得更小。而在操作时,依据面所展开的块地址映射表可以实现多通道读写,提高了读写的速度。上述基于页块面三维的闪存地址映射方法,所述逻辑单元有两个。上述基于页块面三维的闪存地址映射方法,在写操作的过程中,如果遇到坏块,则分配一个冗余的块来替换该坏块,并相应更新面、块、页地址映射表。上述基于页块面三维的闪存地址映射方法,所述面映射表,依据所操作的有效块的映射粒度选择访问模式,该访问模式如下
当所操作的有效块的映射粒度为页地址映射时,所述面映射表相应存放页地址映射的入口地址,通过该页地址映射的入口地址访问所操作的有效块;
当所操作的有效块的映射粒度为块地址映射时,所述面映射表相应存放该所操作的有效块的物理地址以及当前写入的页号;通过所操作的有效块的物理地址及块内的页号访问所操作的有效块。上述基于页块面三维的闪存地址映射方法,同一所述有效块上的页被作相同的页标识,在逻辑页转换为物理页时,通过页标识的判断来判断连续的逻辑页的对应的当前物理页是否还在上一个物理块上,如果不在,则在相应的页地址映射表中添加当前物理页所在的新添加的物理块的块号。


图I为闪存存储单元逻辑结构。图2为闪存设备的结构框图。图3为闪存逻辑转换层结构图。图4为基于基于页块面三维的闪存地址映射组织结构图。
具体实施例方式闪存地址映射的作用是将文件系统的逻辑地址转换为闪存的物理地址,因此需要在内存中建立逻辑地址和物理地址的映射关系,同时管理物理地址的状态变换。闪存通过地址映射结构进行地址映射管理,将文件系统提供的逻辑地址分为逻辑通道号、逻辑单元号、逻辑面号、面内块号、块内页号和页内段地址。我们从主机端接过来逻辑地址,经过对逻辑地址的解析后我们得到相应的值,然后根据闪存物理单元的存储状况将逻辑地址的各个值转换成相对应的闪存的逻辑地址,也就是对应的通道号、单元号、面号、块号、页号和页内段地址。根据逻辑地址来对闪存进行写操作和对闪存内的数据读、擦、删和复制;在处理上述过程中,需要建立页地址映射表、块地址映射表和面地址映射表。闪存物理单元的基本结构如图I所示,它包含两个LUN、每个LUN中包含两个面。每个面中包含多个块,每个块中包含多个页,这里的多个都是复数。在对闪存物理单元进行读、写、擦和复制操作时,需要知道它们的每个对应的通道号、单元号、面号、块号、页号和页内段地址。基于闪存的总体框架如图2所示。从图中可以看到,在主机和闪存物理存储单元之间需要闪存控制单元来实现主机对闪存物理存储单元的读、写、擦和复制等操作。闪存控制单元包括逻辑转换层和闪存控制器。闪存控制器中的读、写、擦和复制命令需要逻辑转换层来解析和调用。逻辑转换层的核心是地址映射,逻辑转换层主要包括地址映射、读写机制、磨损均衡、坏块处理和物理驱动,结构如图3所示。为了实现快速的读写和减少闪存物理存储单元块的擦写次数需要比较合理和比较好的地址映射方案;经过多方面研究提出了一种基于页、面和块三维的闪存地址映射方法。关于面的数目,也是复数个,在图I所示的结构中,有4个面,分属于两个逻辑单元,对面进行面地址映射所消耗的内存非常小。为了满足存储管理对资源消耗比较小的要求,两个逻辑单元在现有的闪存存储容量条件下相对比较合适。基于页、块和面三维的闪存地址映射方案如图4所示。从图中可以看到,在闪存存储管理中,采用了三维的地址映射方案;把闪存存储数据的管理方式转化成三个地址映射表,它们分别为页地址映射表、块地址映射表和面地址映射表。页地址映射是闪存转换层中很重要的一部分,其比较灵活,可以针对每一页作地址映射,当对闪存进行写操作的时候,我们就需要页地址映射,以每个块含有多个页为例,我们采用的页地址映射表结构如图4中的页地址映射表所示。从相应的映射地址的入口地址开始,前I到N个条目用来存放N个逻辑页所对应的物理地址页的信息,其中包括物理地址页号、页标识、块地址号、通道号、面地址号,页标识用来表示逻辑页的物理页是否还在上一个物理块上,块地址号表示此页所在的新添加的物理块的号码;第N+1条目存放的是下一个将要存放的物理地址页的信息,用于存放下一 个页号和块的索引,第N+2条目存放逻辑块地址;第N+3条目存放上一个物理块地址;第N+4 N+7条目用来存放将要存放新添加的4个物理块地址。 块地址映射存放的信息如图4中的块地址映射表所示。假定一块闪存芯片含有M个块,由图4中的块地址映射表看出,每个条目根据存储类型来存放信息。当存储类型是块地址映射块时,存放块的物理地址、通道号、面号、写入的页号。当存储类型是面地址映射块时,存放面映射的入口地址。当存储类型是页地址映射块时,存放页映射的入口地址。面地址映射是在闪存芯片在使用过程中出现坏块时才被映射。如果出现坏块,需要从预留的块中找出一个新的空块,或者说冗余的块进行替换,然后在块地址映射表中,将对每个块进行新的映射,形成新的在逻辑上连续的存储空间,如图4中的面地址映射表所
/Jn ο第O和I条目是用来存储第一个面映射的信息,第2和3条目是用来存储第二个面映射的信息。块的类型不同存储的信息也就不同。当块的类型是页地址映射时,第O或2条目存放页地址映射的入口地址。当块的类型是块地址映射时,第O或2条目存放物理块地址,第I或3条目中存放当前写入的页号。一个写处理过程表现为
地址映射机制将文件系统的逻辑地址转换为物理地址,在系统进行写请求时根据页块面地址映射表在闪存设备上查找空闲位置存储数据,并更新地址映射表,记录数据的新存储位置,同时将旧数据标记为无效,依据该更新的地址映射表以备后续操作时使用。其中旧的数据已经被复制到新的存储位置,所以此数据为无效数据,并随时都可以被擦除。在主机进行写请求时,首先计算出数据所属的逻辑块和块内页地址,判断数据所在块的访问模式,如果是顺序写,利用块地址映射表,将数据写到顺序条目块中。如果所在块为随机写,将更新数据写到数据组的随机条目块中。访问模式主要是根据过去的数据存储访问进行判断的,如果对某一逻辑地址在短时间内进行了多次更新,认为系统该地址进行的是随机写,对其所属块将采用页、块和面地址映射方法进行存储管理,以优化小数据频繁更新导致的性能问题。如果在写的过程中遇见坏的块,将找一个新的空块来代替坏块,并相应的更新块、面和页地址映射表。一个读处理过程表现为
地址映射将文件系统的逻辑地址转换为物理地址,在系统进行读的请求时,利用块、页和面地址映射表查找存储在内存设备中的数据。如背景技术部分所描述的那样,传统的地址映射方法有三种页映射、块映射和混合映射。页映射是以页为单位进行地址映射,在内存中保存基手页的映射表,每一逻辑页都有一项与之对应的物理页,页映射方法具有灵活性高的优点,但由于需要为每个逻辑页面建立地址映射表项,需要占用大量内存空间。块映射算法是以块为单位进行地址映射,逻辑块内地址偏移与物理块内偏移保持一致。该方法仅需要在内存中保留块映射表,建立从逻辑块到物理块的映射关系,块映射算法优点是内存占用量少,不受闪存容量增大的影响,缺点是在处理小数据更新上性能较差,一小块数据的更新会引起对整个块内容的复制,这样 会减少闪存的使用寿命。混合映射方法结合了块映射和页映射的优点,首先以块映射方法建立逻辑块和物理块的映射关系,同时对块内数据采用页映射方法组织。混合映射算法内存空间占用量少,同时对小数据更新比块映射算法更加灵活、代价少;但对闪存多通道、多面的处理效率明显不高,也增加了内存空间占用量,同时对大数据更新会影响闪存的读写速度。在混合映射的基础上增加了面映射,可以对坏块进行映射处理,对坏块进行映射处理时所消耗的资源比较少。在混合映射的基础上,所增加的面映射把有效块进行分类管理,通过与非闪存控制单元的逻辑转换层两两关联每个逻辑单元内的所述有效块,在逻辑单元内以关联和被关联的方式被分成两类的所述有效块相应地分配给两个面,以一个面为基础建立块映射表,这样,可以同时多通道读写,而且还减少了一半的块地址映射表大小,从而,使映射表占有的内存的总空间更少了。依据前述的内容,映射方法具备混合映射的所有优点,对小数据处理更加灵活、代价少,而且适合现有闪存技术的要求,高速读写、而且还减少了数据复制和块擦写次数,也提闻了闪存存储系统的性能。
权利要求
1.一种基于页块面三维的闪存地址映射方法,与非闪存的存储空间除冗余的块外,被分配为若干有效块,其特征在于,所有的所述有效块被分成含有复数个有效块的逻辑单元,通过与非闪存控制单元的逻辑转换层两两关联每个逻辑单元内的所述有效块,在逻辑单元内以关联和被关联的方式被分成两类的所述有效块相应地分配给两个面,以一个面为基础建立块映射表; 响应于输入数据的写操作,依据建立的所述块映射表,分配一个有效块,建立该有效块及关联于该有效块的有效块的页映射表,交替地在该有效块及关联于该有效块的有效块上写入所述输入数据,并更新页映射表、块映射表和面映射表; 响应于读操作,依据所述面映射表和所述块映射表检索读操作的逻辑地址对应物理地址的所述有效块,然后依据检索到的有效块载入页映射表检索数据进行读取。
2.根据权利要求I所述的基于页块面三维的闪存地址映射方法,其特征在于,所述逻辑单元有两个。
3.根据权利要求I所述的基于页块面三维的闪存地址映射方法,其特征在于,在写操作的过程中,如果遇到坏块,则分配一个冗余的块来替换该坏块,并相应更新面、块、页地址映射表。
4.根据权利要求I至3任一所述的基于页块面三维的闪存地址映射方法,其特征在于,所述面映射表,依据所操作的有效块的映射粒度选择访问模式,该访问模式如下 当所操作的有效块的映射粒度为页地址映射时,所述面映射表相应存放页地址映射的入口地址,通过该页地址映射的入口地址访问所操作的有效块; 当所操作的有效块的映射粒度为块地址映射时,所述面映射表相应存放该所操作的有效块的物理地址以及当前写入的页号;通过所操作的有效块的物理地址及块内的页号访问所操作的有效块。
5.根据权利要求I所述的基于页块面三维的闪存地址映射方法,其特征在于,同一所述有效块上的页被作相同的页标识,在逻辑页转换为物理页时,通过页标识的判断来判断连续的逻辑页的对应的当前物理页是否还在上一个物理块上,如果不在,则在相应的页地址映射表中添加当前物理页所在的新添加的物理块的块号。
全文摘要
本发明公开了一种基于页块面三维的闪存地址映射方法,采用页、块、面的闪存地址映射方法,由于采用了类同于对半数有效块建立快地址映射表的方法,减少了一半的块地址映射表的大小,而面的数量较之块的数量要少得多,面地址映射表相对非常小,这样使地址映射表占有的内存的总空间变得更小。而在操作时,依据面所展开的块地址映射表可以实现多通道读写,提高了读写的速度。
文档编号G06F12/06GK102779096SQ20121023799
公开日2012年11月14日 申请日期2012年7月11日 优先权日2012年7月11日
发明者张洪柳, 李峰, 高美洲 申请人:山东华芯半导体有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1