1.一种固态硬盘读写请求并行处理装置,其特征在于包括地址映射模块、通道分配模块、通道队列模块、待处理队列模块、数据缓冲区和垃圾回收模块;地址映射模块负责实现请求的逻辑地址到物理地址的映射,采用页级映射方式,由地址映射表和页分配模块组成;
通道分配模块负责计算请求中每个页实际需要访问的通道;通道队列模块由每个通道的队列组成,每个通道的队列分为读请求队列和写请求队列,读写访问请求以页为单位插入到通道的读写队列;待处理队列保存通道分配完成、但实际闪存读写未全部完成的请求,按先进先出的方式完成待处理队列的调度;数据缓冲区用来暂存从闪存中读出的数据;垃圾回收模块负责固态硬盘无效块的回收,完成垃圾回收操作。
2.一种固态硬盘读写请求并行处理方法,其特征在于包括预处理、闪存访问和垃圾回收三个过程,且三个过程可并行执行,其具体步骤如下:当有新的读写请求到达,且待处理队列不满时,触发预处理流程;
当待处理队列不为空时,触发闪存访问流程;
垃圾回收过程由垃圾回收模块完成,采用主动垃圾回收和被动垃圾回收相结合的方式;当待处理对列为空且某个通道内空闲块的数量小于阈值TH1时,触发主动垃圾回收操作;当在执行闪存访问操作时,某个通道内空闲块的数量小于阈值TH2时,暂停闪存访问操作,触发被动垃圾回收操作;进一步的,所述的垃圾回收操作的具体方式是选择该通道下包含最多无效页的数据块作为无效块,将无效块中的有效页迁移至同一个通道内的空闲块中,然后将无效块擦除;此外,为尽量少触发被动垃圾回收操作,TH1应该大于TH2。
3.根据权利要求2所述的一种固态硬盘读写请求并行处理方法,其特征在于预处理流程实现步骤如下:P1.判断到达请求类型:若是读请求,执行P2;否则为写请求,执行P4;
P2.调用地址映射模块,访问地址映射表,获取读请求每个逻辑页对应的物理页号PPN;
P3.调用通道分配模块,根据每个页的PPN得到其所在的闪存通道,然后将每个页插入对应闪存通道的读队列的队尾,执行P6;
P4.调用地址映射模块的页分配模块,采用异地更新策略,为写请求的每个页分配新的物理页号PPN,并更新地址映射表,执行P5;
P5.调用通道分配模块,根据每个页的PPN得到其所在的闪存通道,然后将每个页插入对应闪存通道的写队列的队尾,最后执行P6;
P6.将该请求插入到待处理队列的队尾,结束本次预处理。
4.根据权利要求3所述的一种固态硬盘读写请求并行处理方法,其特征在于闪存访问流程实现步骤如下:A1.判断待处理队列队首请求类型:若是读请求,执行A2;否则,执行A5;
A2.判断请求队列队首读请求是否执行完成:若是,执行A4,否则执行A3;
A3.将所有通道读队列队首的页从闪存中读出到数据缓冲区中,然后剔除所有通道读队列的队首,执行A2;
A4.合并数据缓冲区中来自同一请求的读数据,并响应上层文件系统,剔除待处理队列队首请求,结束本次闪存访问操作;
A5.判断请求队列队首写请求是否执行完成:若是,执行A7,否则执行A6;
A6.将所有通道写队列队首的请求写入对应通道下的物理页,同时剔除所有通道写队列的队首,执行A5;
A7.响应上层文件系统,剔除待处理队列队首请求,结束本次闪存访问操作。
5.根据权利要求4所述的一种固态硬盘读写请求并行处理方法,其特征在于预处理流程P4步骤中的写请求的页分配方法的具体流程如下:P41.计算每个通道闪存块的擦除次数,按擦除次数从小到大进行排序;
P42.将写请求需要的物理页数N表示成N=n*C+q的形式,C为通道数,n为N/C的商,q为N/C的余数;
P43.按照擦除次数最小的通道优先分配写和最大化通道并行写的策略,先给每个通道分配n个页写,以实现最大化并行写;然后将q个页写分配给擦除次数最小的前q个通道,以均衡每个通道的磨损程度。
6.根据权利要求3或4或5所述的一种固态硬盘读写请求并行处理方法,其特征在于该方法涉及地址映射模块、通道分配模块、通道队列模块、待处理队列模块、数据缓冲区和垃圾回收模块;地址映射模块负责实现请求的逻辑地址到物理地址的映射,采用页级映射方式,由地址映射表和页分配模块组成;通道分配模块负责计算请求中每个页实际需要访问的通道;通道队列模块由每个通道的队列组成,每个通道的队列分为读请求队列和写请求队列,读写访问请求以页为单位插入到通道的读写队列;待处理队列保存通道分配完成、但实际闪存读写未全部完成的请求,按先进先出的方式完成待处理队列的调度;数据缓冲区用来暂存从闪存中读出的数据;垃圾回收模块负责固态硬盘无效块的回收,完成垃圾回收操作。