[发明专利]乱序执行NVM命令的方法与装置有效
申请号: | 201810380329.3 | 申请日: | 2018-04-25 |
公开(公告)号: | CN108628759B | 公开(公告)日: | 2020-09-01 |
发明(设计)人: | 孙明浩;王祎磊;薛立成 | 申请(专利权)人: | 贵阳忆芯科技有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F3/06 |
代理公司: | 北京卓特专利代理事务所(普通合伙) 11572 | 代理人: | 段宇 |
地址: | 550081 贵州省贵阳市观山*** | 国省代码: | 贵州;52 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 执行 nvm 命令 方法 装置 | ||
1.一种优化NVM接口命令执行顺序的方法,其特征在于,包括:
检测是否可优化NVM接口命令执行顺序;
响应于可优化NVM接口命令执行顺序,识别读指针的偏移值是否大于0;响应于偏移值大于0,使偏移值递增;以及根据基地址与偏移值的和得到读指针,并根据读指针获取NVM接口命令并处理;响应于偏移值不大于0,使偏移值与基地址都递增,并根据基地址与偏移值的和作为读指针获取NVM接口命令并处理;
响应于不可优化NVM接口命令执行顺序,识别偏移值是否大于0;响应于偏移值大于0,将基地址更新为使基地址递增并与偏移值求和作为基地址的新值,并将偏移值设置为0,根据单独的基地址作为读指针获取NVM接口命令并处理;响应于偏移值不大于0,使基地址递增,以及根据基地址与偏移值的和作为读指针获取NVM接口命令并处理。
2.如权利要求1所述的方法,其特征在于,
响应于偏移值不大于0,使偏移值与基地址都递增。
3.如权利要求1所述的方法,其特征在于,
响应于无法优化NVM接口命令执行顺序,识别读指针的偏移值是否大于0;
响应于偏移值大于0,根据基地址作为读指针获取NVM接口命令并处理;
使基地址递增并与偏移值求和作为基地址的新值,并将偏移值设置为0;
以及根据基地址与偏移值的和得到读指针,并根据读指针获取NVM接口命令并处理。
4.如权利要求3所述的方法,其特征在于,
响应于偏移值不大于0,使基地址递增。
5.如权利要求1至4任一项所述的方法,其特征在于,
执行完第一NVM接口命令后,识别是否可优化NVM接口命令的执行顺序;
比较第一NVM接口命令与与其相邻的第二NVM接口命令,识别是否满足优化条件;
响应于第一NVM接口命令与第二NVM接口命令不满足优化条件,且第一NVM接口命令与与其不相邻的第三NVM接口命令满足优化条件,而识别出可优化NVM接口命令执行顺序。
6.如权利要求5所述的方法,其特征在于,优化条件包括:
第三NVM接口命令指示读取同第一NVM接口命令相同或相近的地址,或者由于执行了第一NVM接口命令,使得第三NVM接口命令读取的数据位于NVM芯片的页缓存中,或者第一NVM接口命令与第三NVM接口命令访问同一逻辑单元的不同平面,且第一NVM接口命令与第三NVM接口命令可由单一的多平面命令来替代,或者第三NVM接口命令有较高的处理优先级,或者第三NVM接口命令有较高的处理优先级且消息队列中第一NVM接口命令与第三NVM接口命令之间的NVM接口命令具有较长处理时间。
7.如权利要求6所述的方法,其特征在于,
执行完第一NVM接口命令后,识别是否可优化NVM接口命令的执行顺序;
响应于第一NVM接口命令与与其相邻的第二NVM接口命令满足优化条件,获取偏移值的值;
响应于偏移值大于0,识别出可优化NVM接口命令执行顺序。
8.如权利要求7所述的方法,其特征在于,
响应于偏移值大于0,使偏移值递增,基地址不变;
以及根据基地址与偏移值的和得到读指针,并根据读指针获取NVM接口命令并处理。
9.一种介质接口控制器,其特征在于,包括:消息队列和NVM命令处理单元,消息队列与NVM命令处理单元耦合,NVM命令处理单元还与多个NVM芯片耦合;消息队列用于接收访问NVM芯片的消息,NVM命令处理单元从消息队列获取信息,并根据消息的指示生成NVM接口命令并发送给NVM芯片;NVM命令处理单元改变发送NVM接口命令的顺序;
NVM命令处理单元执行根据权利要求1-8之一所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于贵阳忆芯科技有限公司,未经贵阳忆芯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810380329.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种选择垃圾回收目标块的方法及固态硬盘
- 下一篇:原子写命令的方法与装置