【技术实现步骤摘要】
一种自主分离的NVMePRP获取加速方法
本专利技术涉及存储领域,具体是一种自主分离的NVMePRP获取加速方法。
技术介绍
NVMeSSD是遵循非易失性内存主机控制器接口规范(Non-VolatileMemoryexpress)的固态驱动器(SolidStateDisk)。SSD由控制器和存储器组成。一个优秀的NVMeSSD的控制器,能够充分利用PCIE通道的低延时以及并行性,在可控制的存储成本下,极大地提升固态硬盘的读写性能,降低由于AHCI接口带来的高延时,彻底解放SATA时代固态硬盘的极致性能。在NVMeSSD和主机的数据交互中,PRPEntry和PRPList是不可或缺的关键因素。控制器获取Host的PRPEntry和PRPList的方式决定了SSD的性能。传统的NVMeSSD控制器中,多采用软件获取PRPEntry的方式,此方式对于命令处理有较大的延时。所以PRPEntry和PRPList的获取方式显得尤为重要。PRP是指物理区域页面(PhysicalRegionRange),PRPEntry实质是本质就是一个64位内存物理地址,只不过把这个物理地址分成两部分:页起始地址和页内偏移。最后两bit是0,说明PRP表示的物理地址只能四字节对齐访问。PRP页内偏移可以是0,也可以是个非零的值。PRPEntry描述的是一段连续的物理内存的起始地址。如果需要描述若干个不连续的物理内存,则需要若干个PRPEntry。把若干个PRPEntry链接起来,就成了PRPList。LBA是逻辑区 ...
【技术保护点】
1.一种自主分离的NVMe PRP获取加速方法,其特征在于:包括以下步骤:/nS01)、接收NVMe IO命令;/nS02)、获取NVMe IO命令中的LBA Format、Number LBA、PRP Entry1、PRP Entry2,根据LBA Format和Number LBA计算要传输的数据长度m,m=LBA Format*Number LBA;/nS03)、根据数据长度m和PRP Entry1的偏移量计算需要用到的N个PRP Entry,PRPEntry1的偏移量为0时,N=m/4K,PRP Entry1的偏移量不为0时,N=m/4K+1;/nS04)、判断N≤2是否成立:/n若N≤2不成立,从PRP Entry2中获取PRP List,将PRP Entry2和PRP List中的PRPEntry做拆分后,写入到RAM;/n若N≤2成立,继续判断N≤1是否成立,若N≤1成立,将PRP Entry1写入到RAM中,若N≤1不成立,将PRP Entry1和PRP Entry2写入到RAM中。/n
【技术特征摘要】
1.一种自主分离的NVMePRP获取加速方法,其特征在于:包括以下步骤:
S01)、接收NVMeIO命令;
S02)、获取NVMeIO命令中的LBAFormat、NumberLBA、PRPEntry1、PRPEntry2,根据LBAFormat和NumberLBA计算要传输的数据长度m,m=LBAFormat*NumberLBA;
S03)、根据数据长度m和PRPEntry1的偏移量计算需要用到的N个PRPEntry,PRPEntry1的偏移量为0时,N=m/4K,PRPEntry1的偏移量不为0时,N=m/4K+1;
S04)、判断N≤2是否成立:
若N≤2不成立,从PRPEntry2中获取PRPList,将PRPEntry2和PRPList中的PRPEntry做拆分后,写入到RAM;
若N≤2成立,继续判断N≤1是否成立,若N≤1成立,将PRPEntry1写入到RAM中,若N≤1不成立,将PRPEntry1和PRPEntry2写入到RAM中。
2.根据权利要求1所述的自主分离的NVMePRP获取加速方法,其特征在于:将NVMeIO命令中的PRPEntry1、PRPEntry2分别称为地址P1、地址P2,当P1偏移量为0时:
在m等于4k的情况下,使用P1即可传输完所有数据,将P1传输长度标记为L1,L1=4K,将P1和L1放入RAM队列中,传输数据长度为L1=4K;
在m等于8k的情况下,使用P1和P2即可传输完所有数据,将P1传输长度标记为L1,L1=4K;P2传输长度标记为L2,L2=4K,将P1、L1和P2、L2放入RAM队列中,传输数据长度为L1+L2=4K+4K=8K;
在m大于8k的情况下,使用P1和P2无法传输所有数据,则向PRPEntry2中按照q=(m-4k)/4k的数量获取PRRList,获取下来的PRPList中含有q个PRPEntry,记为P1、P2、···Pq,将各个PRPEntry传输长度都记为Lq,Lq=4K,此时将P1、L1和所有PRPEntry及其传输长度全部写入RAM队列,传输数据长度记为L,。
3.根据权利要求1所述的自主分离的NVMePRP获取加速方法,其特征在于:将NVMeIO命令中的PRPEntry1、PRPEntry2分别称为地址P1、地址P2,当P1偏移量不为0时,将P1偏移量记为O1:
则在m等于4k的情况下,使用P1、P2即可...
【专利技术属性】
技术研发人员:段好强,吴斌,乔子龙,孙中琳,
申请(专利权)人:山东华芯半导体有限公司,
类型:发明
国别省市:山东;37
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。