1.一种基于计算的FTL地址映射写方法,其特征在于,固态硬盘内部的FTL通过逻辑组号计算函数计算上层应用或主机下发给固态硬盘的LPN,得到该LPN对应的逻辑组号;如果该逻辑组号对应的逻辑组内存在空闲的物理页,则将该空闲的物理页在逻辑组内的偏移作为该LPN对应的映射表项;
不存储逻辑组号,只将空闲的物理页在逻辑组内的偏移作为LPN对应的映射表项存储于映射表;
对于同一个LPN的写操作,通过逻辑组号计算函数,允许得到相同或不同的逻辑组号;
对于同一个LPN的读操作,通过逻辑组号计算函数,必须得到与最近一次写操作相同的逻辑组号;
当FTL设置多个逻辑组,则所有物理块允许被分配至任意逻辑组;
空闲的物理块组成待分配资源池,每次分配时,选取擦写次数最少的物理块至逻辑组;
当物理块被分配至逻辑组之后,该物理块不允许再被分配;而在该物理块被垃圾回收之后,该物理块允许再次分配至其他逻辑组;
基于计算的FTL地址映射机制,步骤如下:
1)将上层应用或主机下发给固态硬盘的LPN运算得到对应写入的逻辑组号;
2)判断当前逻辑组内是否有空闲的物理页以供写入;如果有,则跳转步骤6),否则执行步骤3);
3)判断当前逻辑组内的物理块数是否达到上限;如果未达上限,则跳转步骤5),否则执行步骤4);
4)对当前逻辑组进行垃圾回收操作;回收的物理块放入待分配资源池,并从待分配资源池中选取一个空闲物理块加入到该逻辑组内被回收的物理块的位置,更新逻辑组索引表对应内容;跳转步骤6);
5)从待分配资源池中选取擦写次数最少的物理块加入该逻辑组内;更新逻辑组索引表对应内容;执行步骤6);
6)当前有空闲的物理页以供该LPN的内容进行写入,FTL分配空闲的物理页供写入,同时将该物理页在逻辑组内的偏移作为映射表项在映射表中存储或更新;
7)写操作完成。
2.根据权利要求1所述的基于计算的FTL地址映射写方法,其特征在于,每个逻辑组允许拥有的物理块数量有限并相同;逻辑组内的物理块按照一定顺序组织,并通过逻辑组索引表记录每个逻辑组内所有的物理块地址。
3.一种基于计算的FTL地址映射读方法,其特征在于,固态硬盘内部的FTL通过逻辑组号计算函数计算上层应用或主机下发给固态硬盘的LPN,得到该LPN对应的逻辑组号;如果该逻辑组号对应的逻辑组内存在空闲的物理页,则将该空闲的物理页在逻辑组内的偏移作为该LPN对应的映射表项;
不存储逻辑组号,只将空闲的物理页在逻辑组内的偏移作为LPN对应的映射表项存储于映射表;
对于同一个LPN的写操作,通过逻辑组号计算函数,允许得到相同或不同的逻辑组号;
对于同一个LPN的读操作,通过逻辑组号计算函数,必须得到与最近一次写操作相同的逻辑组号;
当FTL设置多个逻辑组,则所有物理块允许被分配至任意逻辑组;
空闲的物理块组成待分配资源池,每次分配时,选取擦写次数最少的物理块至逻辑组;
当物理块被分配至逻辑组之后,该物理块不允许再被分配;而在该物理块被垃圾回收之后,该物理块允许再次分配至其他逻辑组;基于计算的FTL地址映射机制,步骤如下:
1)将上层应用或主机下发给固态硬盘的LPN运算得到对应写入的逻辑组号;
2)在映射表中搜索LPN对应的映射表项,并得到在逻辑组内的偏移;
3)通过逻辑组号和偏移,在逻辑组索引表内查找所需物理页所在的PBN;
4)通过逻辑组号和偏移,以及步骤3)中找出的PBN,得到需要访问的PPN;
5)通过步骤4)得到PPN,FTL对该物理页进行读操作,并将读出的数据送回给上层应用或主机;
6)读操作完成。
4.根据权利要求3所述的基于计算的FTL地址映射读方法,其特征在于,步骤3)具体包括:首先通过逻辑组号找到该逻辑组在逻辑组索引表的起始地址;然后通过i=逻辑组号/偏移,找到该逻辑组内第i块物理块的PBN;
步骤4)具体为:通过j=逻辑组号%偏移,以该PBN的j偏移查找得到所需物理页,进而得到需要访问的PPN。