[发明专利]对预处理微指令发生异常多层嵌套进行处理的设备及方法有效
申请号: | 200610011927.0 | 申请日: | 2006-05-18 |
公开(公告)号: | CN101075184A | 公开(公告)日: | 2007-11-21 |
发明(设计)人: | 段振中;范东睿 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F9/318 | 分类号: | G06F9/318;G06F9/38 |
代理公司: | 中科专利商标代理有限责任公司 | 代理人: | 周国城 |
地址: | 100080北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 预处理 指令 发生 异常 多层 嵌套 进行 处理 设备 方法 | ||
技术领域
本发明涉及复杂指令集计算机内部异常处理技术,尤其涉及一种对预处理微指令发生异常多层嵌套进行处理的设备及方法。
背景技术
基于复杂指令集的计算机(Complex Instruction Set Computer,CISC)是指以微程序为基础、具有复杂指令系统的计算机。在CISC系统中,一条复杂指令一般需要被翻译为多条微指令,被翻译的多条微指令被保存在CPU的只读存储器(ROM)中,处理器中的指令流水线处理的是这些微指令,而不是翻译前的操作系统可见的复杂指令。
微指令通常可以比复杂指令操作更多的寄存器资源。例如,复杂指令集一般可以操作8个可见通用寄存器,而微指令集可以操作32或64个以上的可见通用寄存器。以32个可见的通用寄存器为例,其中的8个可以作为复杂指令集的通用寄存器,而剩下的24个则保留给微指令集的译码器作为临时寄存器或用作其它用途。
处理器中的指令流水线在处理由一条复杂指令翻译成的多条微指令时经常发生异常。在发生异常后,现有技术中存在的处理机制首先转入一段预处理微指令,执行这段预处理微指令能够保存寄存器现场,并从内存中获取跳转的目标地址或通过执行微指令动态生成跳转的目标地址,然后根据目标地址跳转到操作系统可见的异常处理程序,执行异常处理程序可以实现对异常的修复。上述跳转的目标地址通常存放在系统内存的某一固定区域中。
上述处理机制存在一个问题,即在异常发生后执行预处理微指令时又可能发生异常,进而形成预处理微指令的异常多层嵌套。此时,处理器应当及时对预处理微指令发生的异常多层嵌套进行处理,在保证这些异常得以正确修复的同时,又不至于导致指令流程的混乱甚至进入异常的死循环。
但是,目前还不存在对预处理微指令发生异常多层嵌套进行处理的技术,如何对预处理微指令发生异常多层嵌套进行处理是目前急需解决的重要问题。
发明内容
(一)要解决的技术问题
针对上述现有技术存在的不足,本发明的一个主要目的在于提供一种对预处理微指令发生异常多层嵌套进行处理的设备,使发生的异常得以有序和正确的修复。
本发明的另一个主要目的在于提供一种对预处理微指令发生异常多层嵌套进行处理的方法,使发生的异常得以有序和正确的修复。
(二)技术方案
为达到上述目的,本发明的技术方案是这样实现的:
一种对预处理微指令发生异常多层嵌套进行处理的设备,该设备包括:
取指部件,用于从指令高速缓冲内存中取出指令,并将取出的指令发送给译码部件;
译码部件,用于对缓存的异常信息进行译码,按译码产生的微指令地址索引微指令存储器获取异常预处理微指令,并将获取的异常预处理微指令发送给发射部件和指令重排序缓冲器;
发射部件,用于将接收的异常预处理微指令中数据已准备好的指令发送给执行部件;
执行部件,用于执行接收自发射部件的指令,并将执行的结果写回到指令重排序缓冲器;
指令重排序缓冲器,用于保存计算机指令流水线中每条指令的状态信息,并保证指令的精确异常,在指令发生异常时将异常信息输出给取指部件、译码部件、发射部件和执行部件;
所述指令重排序缓冲器在指令发生异常时将异常信息输出给取指部件、译码部件、发射部件和执行部件,取指部件在接收到这个异常信息后将其指令地址寄存器和指令输出总线置为无效,译码部件将其指令寄存器置为无效,并把这个异常信息缓冲在异常缓冲器中,并对缓冲的异常信息进行译码产生微指令地址,译码部件按产生的微指令地址索引微指令存储器获取异常预处理微指令,并将获取的异常预处理微指令送给后端部件,该后端部件包括发射部件、执行部件和指令重排序缓冲器,后端部件在执行接收的异常预处理微指令时如果再次发生异常,则后端部件刷空计算机的指令流水线,译码部件缓存再次发生的异常信息,并执行上述异常处理过程,直至无异常发生;后端部件跳转并执行异常处理程序,按异常发生的时间顺序由后到先逐一对异常进行修复。
所述译码部件包括:
异常缓冲器,用于缓存接收自指令重排序缓冲器的异常信息,并根据接收自微码地址生成器的选择信号将缓存的异常信息发送给微码地址生成器;
指令寄存器,用于存放当前正在执行指令的操作码字节;
微码地址生成器,用于从异常缓冲器和指令寄存器中选择信息,并对选择获取的信息进行译码产生微指令地址,按产生的微指令地址索引微指令存储器获取微指令;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200610011927.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:防流体拉链
- 下一篇:剂量器中或与剂量器相关的改进