[发明专利]一种指令调度方法及装置有效
| 申请号: | 201410829197.X | 申请日: | 2014-12-26 |
| 公开(公告)号: | CN105786448B | 公开(公告)日: | 2019-02-05 |
| 发明(设计)人: | 周峰;安康;王志忠;刘衡祁 | 申请(专利权)人: | 深圳市中兴微电子技术有限公司 |
| 主分类号: | G06F9/38 | 分类号: | G06F9/38 |
| 代理公司: | 北京派特恩知识产权代理有限公司 11270 | 代理人: | 张颖玲;蒋雅洁 |
| 地址: | 518085 广*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 指令 调度 方法 装置 | ||
本发明实施例公开了一种指令调度方法及装置,该方法包括:预取并缓存各线程预设数量的指令;根据线程状态及所述缓存的预取指令进行指令调度。本发明实施例首先执行指令预取,再根据预取的指令进行调度,从而能够避免指令空拍,提高指令调度效率及ME的整体性能;此外,如果进一步进行指令优先级调度,还可以减轻乱序程度,进一步提高指令调度效率及ME的整体性能。
技术领域
本发明涉及网络处理器技术,尤其涉及一种指令调度方法及装置。
背景技术
为了满足未来网络发展的需要,提高路由器的性能,处于因特网(Internet)骨干位置的核心路由器进行了一个又一个的技术变革。尤其在高端路由器市场,网络处理器以其杰出的报文处理性能及可编程性已经成为构成路由转发引擎不可替代的部分。
在网络处理器系统中,微引擎(ME,Micro Engine)是网络处理器的核心部件,负责根据微码指令(Microcode Instructions)完成对报文的解析与处理。微码指令是ME工作的必要条件,因此,ME取指及指令的调度影响着ME整体的性能,取指及指令的调度效率不高将会使ME没有足够的指令来执行而处于初始状态。因此需要设计一个合理高效的方案来实现ME取指及指令的调度,同时使ME有较高的处理性能。
传统的多线程网络处理器都采用了高速缓存(cache)来存储微码指令,由于cache的访问有一定几率的不命中,对于粗粒度多线程结构的ME在取指及指令的调度方法不高效时,指令的空拍会造成内核流水线的空闲,从而导致ME性能的下降。
另外,虽然细粒度多线程结构的ME可以利用线程切换来隐藏取指空拍的问题,但是由于线程频繁的切换,在一定程度上会加重ME处理报文的乱序程度。这种乱序程度会越来越大,最终导致报文进出ME的乱序程度加大,从而对网络处理器后续的保序模块造成较大的压力,导致系统整体性能的下降。
发明内容
有鉴于此,为解决现有存在的技术问题,本发明实施例提供:
一种指令调度方法,包括:
预取并缓存各线程预设数量的指令;
根据线程状态及所述缓存的预取指令进行指令调度。
一具体实施例中,所述预取指令,包括:
向指令缓存模块发送取指请求,所述取指请求至少携带取指地址;
接收来自指令缓存模块的响应消息,确定所述响应消息携带取指成功信息和指令内容时,获取所述指令内容以进行本地缓存;确定所述响应消息携带取指失败信息和取指地址时,将所述取指地址重新加入取指队列,根据调度重新取指。
一具体实施例中,所述取指地址包括以下一种或多种:新包取指地址、分支取指地址、重新取指地址和顺序取指地址。
一具体实施例中,该方法还包括:
确定线程缓存的指令数量不大于预设值时,启动新一轮对所述线程的指令预取,即预取并缓存所述线程预设数量的指令。
一具体实施例中,线程状态包括:初始状态、等待状态和准备状态,
所述根据线程状态及所述缓存的预取指令进行指令调度,包括:
根据近期最少使用算法LRU及线程的进包先后顺序,对线程状态为准备状态的线程进行调度。
本发明实施例还提供一种指令调度装置,包括:取指模块、指令寄存器模块、控制状态机模块和指令调度模块;其中,
所述取指模块,用于预取各线程的指令;
所述指令寄存器模块,用于缓存预取的各线程预设数量的指令;
所述控制状态机模块,用于进行线程状态控制;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市中兴微电子技术有限公司,未经深圳市中兴微电子技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410829197.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:生成图面的方法及装置
- 下一篇:一种音频处理的方法、服务器、用户设备及系统





