发明内容
本发明要解决的技术问题在于,针对现有技术的上述内存转换层中映射表占用静态随机存取内存空间过大、随机读取的效能低、以及映射表置换频率高的缺陷,提供一种固态硬盘的内存转换层对映架构及方法。
本发明解决其技术问题所采用的技术方案是:构造一种固态硬盘的内存转换层对映架构,包括:第一层映射表和第二层映射表,其中,
所述第一层映射表用于记录随机存取数据;
所述第二层映射表包括连续存取映射表和随机存取映射表,所述连续存取映射表用于记录写入单元的对映关系,所述随机存取映射表用于记录随机存取所述写入单元所对映的物理地址。
优选地,本发明所述的固态硬盘的内存转换层对映架构,对于所述第一层映射表:所述写入单元为基本映射单位,一个所述写入单元包含多个逻辑块号码;
对于所述第二层映射表:所述连续存取映射表记录全部所述写入单元所对映的物理地址;所述随机存取映射表用于在所述第一层映射表内的一个所述写入单元写满后,将所述写入单元写入闪存内存中,并更新所述随机存取映射表内所述写入单元所对映的物理地址。
优选地,本发明所述的固态硬盘的内存转换层对映架构,所述第一层映射表和第二层映射表存放在静态随机存储内存中。
优选地,本发明所述的固态硬盘的内存转换层对映架构,固态硬盘的控制器包含多个信道,每个所述信道支持多颗闪存内存。
优选地,本发明所述的固态硬盘的内存转换层对映架构,所述写入单元为所述控制器一次同时对闪存内存写入的单位。
优选地,本发明所述的固态硬盘的内存转换层对映架构,所述固态硬盘为Non-DRAM固态硬盘。
另,本发明还提供一种固态硬盘的内存转换层对映方法,所述方法应用于上述的固态硬盘的内存转换层对映架构,包括数据写入过程:
S11:在固态硬盘写入数据过程中,第一层映射表记录写入的逻辑块号码;
S12:在所述逻辑块号码写满一个写入单元后,判断所述写入单元为连续写入还是随机写入;
S13:若为连续写入,则更新第二层映射表的连续存取映射表内所述写入单元所对映的物理地址,并将所述写入单元的数据写入闪存内存中;
S14:若为随机写入,则将所述写入单元的数据写入所述闪存内存中,并更新所述第二层映射表的随机存取映射表中所述写入单元所对映的物理地址。
优选地,本发明所述的固态硬盘的内存转换层对映方法,还包括数据更新过程:
S21:在所述固态硬盘更新数据过程中,所述第一层映射表记录随机写入的所述逻辑块号码;
S22:在所述逻辑块号码写满一个所述写入单元后,更新所述第二层映射表的所述随机存取映射表内所述写入单元对映的物理地址,并将所述写入单元的数据写入所述闪存内存中。
优选地,本发明所述的固态硬盘的内存转换层对映方法,所述数据更新过程还包括:
S23:所述第一层映射表写满所述逻辑块号码后,选择包含所述逻辑块号码最多的所述写入单元;
S24:按照所述写入单元的所述连续存取映射表对映的物理地址读取数据,并更新随机写入所述写入单元内所述逻辑块号码的数据;
S25:将更新后的数据写入所述闪存内存中,并将所述写入单元的物理地址更新至所述第二层映射表的所述连续存取映射表;
S26:释放所述第一层映射表内所述写入单元的所述逻辑块号码。
优选地,本发明所述的固态硬盘的内存转换层对映方法,还包括数据读取过程:
S31:在所述第一层映射表查找所述逻辑块号码是否存在;
S32:若存在,则从所述第二层映射表的所述随机存取映射表得到所述逻辑块号码的物理地址;
S33:若不存在,则在所述第二层映射表的所述连续存取映射表中得到所述逻辑块号码的物理地址。
实施本发明的一种固态硬盘的内存转换层对映架构及方法,具有以下有益效果:该内存转换层对映架构包括:第一层映射表和第二层映射表,其中,第一层映射表用于记录随机存取数据;第二层映射表包括连续存取映射表和随机存取映射表,连续存取映射表用于记录写入单元的对映关系,随机存取映射表用于记录随机存取写入单元所对映的物理地址。通过实施本发明,缩小内存转换层中映射表的大小,节省SRAM的使用;在随机存取的情况下增加了映射表的命中率,进而提升了随机读取的效能以及减少映射表频繁的置换。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
图1是本发明一种固态硬盘的内存转换层对映架构的结构示意图。
具体的,本发明中的固态硬盘包括Non-DRAM固态硬盘,固态硬盘的控制器包含多个信道,每个信道支持多颗闪存内存(NAND),其中,闪存内存包含多条用户数据,每条用户数据有对应的逻辑分配地址(Logical allocation address,LAA)。本发明以写入单元(Program Unit,PU)作为映射最小单位,写入单元为控制器一次同时对闪存内存写入的单位。例如,控制器有N(N为正整数)个信道,每一信道可支持M(M为正整数)颗闪存内存,闪存内存一次写入的最小单位为Page,则一次写入的写入单元的大小就是Page*M*N。
该固态硬盘的内存转换层对映架构包括:第一层映射表和第二层映射表,其中,第二层映射表包括连续存取映射表和随机存取映射表。第一层映射表和第二层映射表存放在静态随机存储内存中。
1.第一层映射表用于记录随机存取数据。
具体的,写入单元为基本映射单位,一个写入单元包含多个逻辑块号码。第一层映射表记录随机写入的逻辑块号码。当逻辑块号码的数量写满一个写入单元后,将该写入单元写入闪存内存(NAND)中,并更新第二层映射表的随机存取映射表中写入单元所对映到的物理地址。因为静态随机存取内存(SRAM)存储空间有限,一般无法在SRAM上记录太多逻辑块号码,而必须更新逻辑对物理映射表(从闪存内存置换上需要被更新的逻辑对物理映射表)。然后因为写入单元映射的关系,缩小了逻辑对物理映射表的大小,这样就可节省空间来存放更多的逻辑块号码,并只需记录开始写入的实***置即可。
2.第二层映射表包括连续存取映射表和随机存取映射表。
对于第二层映射表:连续存取映射表记录全部写入单元所对映的物理地址;随机存取映射表用于在第一层映射表内的一个写入单元写满后,将写入单元写入闪存内存中,并更新随机存取映射表内写入单元所对映的物理地址。
a、连续存取映射表存放在静态随机存取内存(SRAM)上,用于记录写入单元的对映关系。例如,一个写入单元PU有16个逻辑块号码LBN,则会在第二层映射表的连续存取映射表的写入单元的第一个位置记录0到15的逻辑块号码所对映的物理地址。根据该连续存取映射表,可推出PU0记录LBN0-LBN15、PU1记录LBN16-LBN31·······,依次类推,该连续存取映射表可记录全部的写入单元所对映到的物理地址,而不用另外记录LBN X、LBNY····的实***置,从而使以往的逻辑对物理映射表变为原来的(1/PU)倍,从而大大节省SRAM空间。
b、随机存取映射表用于记录随机存取写入单元所对映的物理地址。第一层映射表记录随机写入的逻辑块号码,当逻辑块号码写满一个写入单元后,就将该写入单元写入NAND中,并更新第二层映射表中随机存取映射表的写入单元所对映的物理地址。
在写入的时候,当凑满一个写入单元PU的逻辑块号码后,判断该写入单元的数据是连续写入或是随机写入。以连续写入为例,凑满后会更新第二层映射表的连续存取映射表的写入单元所对映到物理地址并将数据写入NAND中。
再更新的部分,随机写入则将随机写入的逻辑块号码记录在第一层映射表,凑满一个写入单元的逻辑块号码后,更新第二层随机存取映射表的写入单元所对映到的物理地址,再将数据写入NAND中。等到第一层映射表纪录满随机写入的逻辑块号码后,算出最多逻辑块号码被随机写入的写入单元后,依照该写入单元的连续存取映射表的物理地址将数据读取出来,依据随机存取映射表,更新随机写入此写入单元内逻辑块号码的数据,再将更新后的数据写入NAND中,并把该写入单元的物理地址更新至第二层映射表的连续存取映射表,最后将该写入单元的逻辑块号码从第一层映射表释放掉。
在读取的时候,首先会去第一层映射表查取是否有对映的逻辑块号码存在,若有就能够从第二层映射表的随机存取映射表得到其物理地址。假设第一层映射表没有查到,则到第二层映射表的连续存取映射表得到其物理地址,使用此方法不需置换逻辑对物理映射表L2P,因此可以提升随机存取的效能。
图2是本发明一种固态硬盘的内存转换层对映方法的流程示意图。
具体的,本发明中的固态硬盘包括Non-DRAM固态硬盘,固态硬盘的控制器包含多个信道,每个信道支持多颗闪存内存。本发明以写入单元(Program Unit,PU)作为映射最小单位,写入单元为控制器一次同时对闪存内存写入的单位。例如,控制器有N(N为正整数)个信道,每一信道可支持M(M为正整数)颗闪存内存,闪存内存一次写入的最小单位为Page,则一次写入的写入单元的大小就是Page*M*N。
该固态硬盘的内存转换层对映架构包括:第一层映射表和第二层映射表,其中,第二层映射表包括连续存取映射表和随机存取映射表。第一层映射表和第二层映射表存放在静态随机存储内存中。
该方法应用于上述的固态硬盘的内存转换层对映架构,包括数据写入过程:
S11:在固态硬盘写入数据过程中,第一层映射表记录写入的逻辑块号码。
具体的,写入单元为基本映射单位,一个写入单元包含多个逻辑块号码。第一层映射表记录随机写入的逻辑块号码,当逻辑块号码的数量写满一个写入单元后,将该写入单元写入闪存内存(NAND)中,并更新第二层映射表的随机存取映射表中写入单元所对映到的物理地址。因为静态随机存取内存(SRAM)存储空间有限,一般无法在SRAM上记录太多逻辑块号码,而必须更新逻辑对物理映射表(从闪存内存置换上需要被更新的逻辑对物理映射表)。然后因为写入单元映射的关系,缩小了逻辑对物理映射表的大小,这样就可节省空间来存放更多的逻辑块号码,并只需记录开始写入的实***置即可。
S12:在逻辑块号码写满一个写入单元后,判断写入单元为连续写入还是随机写入。
S13:若为连续写入,则更新第二层映射表的连续存取映射表内写入单元所对映的物理地址,并将写入单元的数据写入闪存内存中。
具体的,a、连续存取映射表存放在静态随机存取内存(SRAM)上,用于记录写入单元的对映关系。例如,一个写入单元PU有16个逻辑块号码LBN,则会在第二层映射表的连续存取映射表的写入单元的第一个位置记录0到15的逻辑块号码所对映的物理地址,根据该连续存取映射表,可推出PU0记录LBN0-LBN15、PU1记录LBN16-LBN31·······,依次类推,该连续存取映射表可记录全部的写入单元所对映到的物理地址,而不用另外记录LBNX、LBN Y····的实***置,从而使以往的逻辑对物理映射表变为原来的1/PU倍,从而大大节省SRAM空间。
S14:若为随机写入,则将写入单元的数据写入闪存内存中,并更新第二层映射表的随机存取映射表中写入单元所对映的物理地址。
具体的,随机存取映射表用于记录随机存取写入单元所对映的物理地址。第一层映射表记录随机写入的逻辑块号码,当逻辑块号码写满一个写入单元后,就将该写入单元写入NAND中,并更新第二层映射表中随机存取映射表的写入单元所对映的物理地址。
图3是本发明一种固态硬盘的内存转换层对映方法中数据更新过程的流程示意图。
优选地,本发明的固态硬盘的内存转换层对映方法,还包括数据更新过程:
S21:在固态硬盘更新数据过程中,第一层映射表记录随机写入的逻辑块号码;
S22:在逻辑块号码写满一个写入单元后,更新第二层映射表的随机存取映射表内写入单元对映的物理地址,并将写入单元的数据写入闪存内存中。
优选地,本发明的固态硬盘的内存转换层对映方法,数据更新过程还包括:
S23:第一层映射表写满逻辑块号码后,选择包含逻辑块号码最多的写入单元;
S24:按照写入单元的连续存取映射表对映的物理地址读取数据,并更新随机写入该写入单元内逻辑块号码的数据;
S25:将更新后的数据写入闪存内存中,并将写入单元的物理地址更新至第二层映射表的连续存取映射表;
S26:释放第一层映射表内写入单元的逻辑块号码。
综上,随机写入则将随机写入的逻辑块号码记录在第一层映射表,凑满一个写入单元的逻辑块号码后,更新第二层随机存取映射表的写入单元所对映到的物理地址,再将数据写入NAND中。等到第一层映射表纪录满随机写入的逻辑块号码后,算出最多逻辑块号码被随机写入的写入单元后,依照该写入单元的连续存取映射表的物理地址将数据读取出来,依据随机存取映射表,更新随机写入此写入单元内逻辑块号码的数据,再将更新后的数据写入NAND中,并把该个写入单元的物理地址更新至第二层映射表的连续存取映射表,最后将该写入单元的逻辑块号码从第一层映射表释放掉。
图4是本发明一种固态硬盘的内存转换层对映方法中数据读取过程的流程示意图。
具体的,数据读取过程包括:
S31:在第一层映射表查找逻辑块号码是否存在;
S32:若存在,则从第二层映射表的随机存取映射表得到逻辑块号码的物理地址;
S33:若不存在,则在第二层映射表的连续存取映射表中得到逻辑块号码的物理地址。
综上,在读取的时候,首先会去第一层映射表查取是否有对映的逻辑块号码存在,若有就能够从第二层映射表的随机存取映射表得到其物理地址。假设第一层映射表没有查到,则到第二层映射表的连续存取映射表得到其物理地址,使用此方法不需置换逻辑对物理映射表L2P,因此可以提升随机存取的效能。
现举例说明本发明的有益效果:
1、缩小内存转换层中映射表的大小以节省SRAM的使用。
例如,假设4plane 256GB大小的SSD,一个写入单元(PU)的大小是16KB(page大小)*4(plane大小)=64KB。假设使用这种方法的第一层映射表能记录512笔逻辑块号码(LBN),其大小是512*4byte=2KB;第二层连续存取逻辑对物理映射表(L2P)大小是(256GB/64KB)*4byte=16MB,第二层随机存取L2P映射表大小是(512/16)*4byte=128byte。由此可见,该发明大幅减少了L2P映射表的大小,能够减少使用静态随机存取内存(SRAM)的空间。
2、因为使用两层L2P映射表的架构,一定能在静态随机存取内存SRAM中查询到逻辑地址(LA)相对映的物理地址(PA),不需要到NAND中查询逻辑对物理映射表(L2P)。其他方法在SRAM中因为大小的限制,只有部分的L2P在SRAM中,如果没有查询到的话,则需要从NAND中置换其他部分的L2P。因此,本发明使用两层L2P映射表能减少映射表频繁的置换,且在随机存取的情况下的增加映射表的命中率,进而提升了随机读取的效能。
以上实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据此实施,并不能限制本发明的保护范围。凡跟本发明权利要求范围所做的均等变化与修饰,均应属于本发明权利要求的涵盖范围。