一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于NandFlashAIPR的命令预处理方法与流程

2022-11-30 09:21:24 来源:中国专利 TAG:

技术特征:
1.一种基于nand flash aipr的命令预处理方法,其特征在于,该基于nand flash aipr的命令预处理方法包括以下步骤:根据fw下发的命令的类型和地址信息对命令进行预处理排序,并传输给硬件模块进行处理;将排序后的命令依次发送给硬件模块,当硬件模块检测到continue number值大于1后,自动向nand flash发送开启aipr功能的命令,并将continue number标记的命令以一个命令组的形式发送给nand flash。2.根据权利要求1所述的基于nand flash aipr的命令预处理方法,其特征在于,一个通道连接k个nand flash芯片,每个nand芯片包括l个target,每个target包含m个lun,每个lun拥有n个plane。3.根据权利要求2所述的基于nand flash aipr的命令预处理方法,其特征在于,一个通道连接k个nand flash芯片中,k,l,m,n均是大于等于1的值,基于nand flash支持独立平面读取。4.根据权利要求1-3任一项所述的基于nand flash aipr的命令预处理方法,其特征在于,所述基于nand flash aipr的命令预处理方法,还包括预排序,预排序的步骤为:检测该命令是否是mp read,若是mp read,则不进行排序处理,直接发送给硬件模块执行;根据需求实时设置进行排序的命令条数p,每p条命令完成一次排序操作;命令分类:sp read命令为read类型,sp/mp write和erase命令为非read类型;获取fw发送的一条命令,若是read类型,则根据其target、lun和plane地址信息插入到相应的位置上,使相邻命令的地址符合aipr的要求或者满足多lun并行执行的要求;若非read类型,则按照它的target、lun地址插入到对应的位置上,使相邻命令的地址符合多lun并行执行的要求;对于符合aipr要求的多个读命令,使用信号进行记录,用于硬件进行识别。5.根据权利要求4所述的基于nand flash aipr的命令预处理方法,其特征在于,read类型的命令具有高优先级,将read类型的命令排在整个命令序列的前半部分,非read类型的命令具有低优先级,将非read类型的命令排在整个命令序列的后半部分。6.根据权利要求5所述的基于nand flash aipr的命令预处理方法,其特征在于,相邻命令的地址符合aipr的要求时,target相同、lun相同、plane不同。7.根据权利要求6所述的基于nand flash aipr的命令预处理方法,其特征在于,基于预排序原则,若每p条指令执行一次排序,对read类型命令(read指令)和非read类型命令(notread指令)进行排序,其中,read类型命令为read指令,非read类型命令为notread指令,包括以下步骤:每条指令包含[target value][lun value][plane value][status[read/notread]];对于p条指令,先进行遍历,得到read指令条数[readnum],以及notread指令条数[p-readnum];创建两个string数组array_read和array_notread,长度分别为readnum和p-readnum,分别记录read指令和notread指令;对于array_read,创建check函数和insert函数;
判断array_read数组中每个元素[target value][lun value]是否与前面所有指令相同,并调整array_read元素位置;创建check_new函数和insert_new函数;调用check_new函数,判断array_read数组中每个元素[target value][lun value][plane value]是否与前面所有指令相同,如果返回值小于当前数组下标,调用insert_new函数调整;计算(readnum-begin)/same_num=k,将begin 1开始的same_num-1个元素分别后移k,2k,...,(same_num-1)k;设置一个continue number和一个链表,链表的每个元素是一个二元组,分别是target-lun以及continue number,循环时如果指令下标为0或者下标的target-lun与前一个元素不同,就设置continue number=1,否则就设置continue number 1;对于array_notread数组,循环判断每个元素[target][lun]是否与前面所有指令相同,调用check函数,若返回值小于当前数组下标,则将该指令移动的array_notread最后;根据实际格式需求,将array_read和array_notread数组以及continue number链表输出至硬件模块。8.根据权利要求7所述的基于nand flash aipr的命令预处理方法,其特征在于,所述check函数包含四个参数:数组、原下标、target和lun;check函数用于检查数组0~src位置之间的指令中与该条指令target和lun相同的指令位置,并返回相同指令在数组中的下标;insert函数包含三个参数:指令、原下标和目标下标;insert函数用于将数组中src位置的指令移动到dest位置,同时原数组中dest到src-1位置的所有指令后移一位。9.根据权利要求8所述的基于nand flash aipr的命令预处理方法,其特征在于,循环调用check函数,若check返回值等于当前数组下标,不进行调整;若check返回值小于当前数组下标,则调用insert函数调整array_read。10.根据权利要求9所述的基于nand flash aipr的命令预处理方法,其特征在于,判断array_read数组中相邻元素[target][lun][plane]相同的个数,通过一个链表输出相邻元素相同的开始下标begin以及相同元素个数same_num。

技术总结
本发明提供了一种基于Nand Flash AIPR的命令预处理方法,一个通道连接K个Nand flash芯片(device),每个Nand芯片包括L个target,每个target包含M个LUN,每个LUN拥有N个plane,其中,K,L,M,N均是大于等于1的值,在本发明中首先根据FW下发的命令的类型和地址信息对命令进行预处理,然后传输给硬件模块进行处理。本发明将sp read命令进行预排序处理,使得多条同target同LUN不同plane的sp read命令能够以一条命令组的形式发送给nand,不仅节省了命令通道资源,而且提高了读速率。本发明对非read类型命令进行预排序处理后,相邻命令的lun地址大概率保持不同,使发送给硬件模块的命令尽可能满足多LUN并行执行的要求,从而提高命令执行的速率,进一步提高SSD性能。进一步提高SSD性能。进一步提高SSD性能。


技术研发人员:马淑香 沈力 周永旺 安阳
受保护的技术使用者:山东云海国创云计算装备产业创新中心有限公司
技术研发日:2022.08.30
技术公布日:2022/11/29
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献