[发明专利]复杂指令系统中TLBR内部例外的处理方法和处理器有效
申请号: | 200610088937.4 | 申请日: | 2006-07-27 |
公开(公告)号: | CN101114216A | 公开(公告)日: | 2008-01-30 |
发明(设计)人: | 龙国平;袁楠;范东睿 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/22 |
代理公司: | 中科专利商标代理有限责任公司 | 代理人: | 朱进桂 |
地址: | 100080北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 复杂 指令系统 tlbr 内部 例外 处理 方法 处理器 | ||
1.一种复杂指令系统中TLBR内部例外的处理方法,包括:
从内存中获取复杂指令流,对指令流进行长度划分和基本译码;
缓存指令流中的复杂指令及所述复杂指令的长度及部分译码信息;
根据缓存的复杂指令及所述复杂指令的长度及部分译码信息,产生与复杂指令相对应的微码;以及
在检测到一微码在执行时发生TLBR内部例外时,保持例外以前已经完成的部分微码的执行结果,并取消例外微码之后的所有微码,并进行TLB替换,在TLB替换成功之后,重新生成发生例外的微码及其后面的微码并从发生例外的微码处开始执行。
2.根据权利要求1所述的方法,其特征在于所述进行TLB替换的步骤包括:
生成并执行用于TLB替换的微码序列;
如果用于TLB替换的微码序列中的微码发生TLBR内部例外而形成嵌套时,先处理内层的TLBR内部例外。
3.根据权利要求1所述的方法,其特征在于如果TLB替换不成功,则触发外部例外以便由系统程序员处理。
4.根据权利要求1所述的方法,其特征在于所述TLBR内部例外包括TLB MISS。
5.一种复杂指令系统中TLBR内部例外的处理器,包括:
取指和部分译码模块,用于从内存中获取复杂指令流,对指令流进行长度划分和基本译码并传送到指令队列;
指令队列,用于缓存取指和部分译码模块传送来的已经取指和部分译码的复杂指令及所述复杂指令的长度及部分译码信息;
微码生成部件,根据从指令队列获取的复杂指令及所述复杂指令的长度及部分译码信息,产生与复杂指令相对应的微码并发送到微码执行单元;
微码执行单元,在ROQ队列的控制下,执行微码生成部件发送来的微码,以及
ROQ队列,在检测到一微码在微码执行单元中执行时发生TLBR内部例外时,保持例外以前已经完成的部分微码的执行结果,并取消例外微码之后的所有微码,并控制微码生成部件进行TLB替换,并在TLB替换成功之后,由微码生成部件重新生成发生例外的微码及其后面的微码并发送到微码执行单元执行。
6.根据权利要求5所述的处理器,其特征在于所述ROQ队列通过例外总线通知微码生成部件发送用于TLB替换的微码序列,并将所述微码序列发送到微码执行单元执行。
7.根据权利要求5所述的处理器,其特征在于所述ROQ队列在TLB替换不成功的情况下,触发外部例外以便由系统程序员处理。
8.根据权利要求5所述的处理器,其特征在于所述TLBR内部例外包括TLB MISS。
9.根据权利要求5所述的处理器,其特征在于所述指令队列为先入先出队列,并由三个指针head_dec、head_cmt和tail_dec来维护,其中,
指针head_dec指向正在译码的复杂指令;
指针head_cmt指向正在执行中但是还没有提交的复杂指令;以及
指针tail_dec指向队列中的第一个空项。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200610088937.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:磁套筒喷砂后去尖点工艺
- 下一篇:基底与其布局的方法