第六章 异常和中断.pptxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章 带有异常和中断 CPU设计主要内容“中断”简介查询中断、向量中断中断返回中断屏蔽、中断嵌套与中断有关的具体设计1.“中断”简介在程序的执行过程当中,有时会出现预想不到的情况,比如计算结果的溢出、用于地址转换的TLB不命中等。另外,外部设备也可能向CPU发出信号,要求CPU为它提供服务。前者称为异常,后者称为中断。本章介绍CPU如何处理异常和中断。异常和中断是两种不可预知的事件。内部同步异常:异常来自于CPU的内部,比如做除法时除数为0外部异步中断:中断来自于CPU的外部,比如键盘中断。当他们出现后,应停止当前程序,执行对应的处理程序异常与中断出现时间不可预知中断响应处理程序完成后返回继续执行当前2.查询中断、向量中断图6.1给出了异常或中断的响应过程。那么一个问题出现了:如何从当前执行的程序跳转到异常或中断处理程序?有两种方法:查询中断、向量中断。查询中断当异常或中断发生时,CPU跳转到一个固定的地址,从那里开始查询到底出了什么状况,再转去执行相应的异常或中断处理程序,这个固定的地址可以用硬布线实现,这样就是真正意义上的固定了,CPU芯片做好以后,想修改这个地址也没有办法了。也可以稍微灵活一些,设置一个入口地址寄存器,当异常或中断发生时,把这个寄存器的内容打入程序计数器PC。CPU可以使用指令往这个寄存器写入不同的内容来修改这个入口地址。但是,无论是硬布线还是使用入口寄存器,入口只有一个。不管现在发生的异常或中断是何种类型,CPU都跳转到同一个地方开始执行程序。那么CPU如何知道已经发生的是什么异常或中断并如何做出相应的处理呢?这就需要有额外的信息。我们可以设置一个专门的寄存器:当有异常或中断发生时,硬件能自动把发生源的信息记录到这个寄存器。CPU可以在入口处读取这个寄存器,立刻就知道了是谁要引起“暴乱”,然后转移到专门的程序去对付它。MIPS CPU采用的基本上就是这种查询中断方式。MIPS称这个寄存器为Cause寄存器,见图6.2。IP, Interrupt Pending hardware source外部未处理中断来源引起异常的描述向量中断在向量中断方式中,引起异常或中断的“暴乱分子”自报家门,告诉CPU我是谁。这个“我是谁”,就是向量中断名称中的“向量”。然后有两种办法转移到异常或中断处理程序。在向量左右填上合适的值(编译器的工作)直接存入PC,响应中断在向量左右填上合适的值(编译器的工作),将该地址的存储器内容当做响应中断的程序地址3.中断返回当中断或者异常的处理程序执行完了以后,CPU要正常运行,需要返回到原来被打断的程序处继续执行,也就是“中断返回”。因此,在处理中断时,要事先保存好返回的地址。有些CPU的作法是把返回地址保存到一个通用寄存器中;有些CPU的作法是设置一个专门的寄存器,用于保存返回地址,比如MIPS CPU的EPC寄存器;有些CPU是把地址保存在堆栈里。异常:返回当前PC,防止该指令需要重新执行中断:完成当前命令,保存下一条命令PC4.中断屏蔽和中断嵌套硬件中断屏蔽位总控位中断嵌套5.与中断有关的具体设计带有异常和中断处理功能的CPU的设计(做了某些简化):1)只有一个外部中断请求;2)只处理3个异常:结果溢出、出现未实现的指令以及系统调用;3)返回地址:异常时保存当前指令的地址,中断时保存下一条指令的地址;4)采用查询中断方式;5)响应异常或中断时把Status寄存器的内容左移4位自动关中断(本书的做法);6)中断返回时寄存器的内容右移4位(恢复原来的内容)。CPU响应一个内部同步异常或外部异步中断时,有以下4件事情要同时做:1)把返回地址保存到EPC寄存器中,以便处理完异常或中断后返回;2)把引起异常或中断的原因自动记录到Cause寄存器ExcCode域;3)把Status寄存器中的中断屏蔽位左移4位(自动关中断);4)把一个固定的地址(异常和中断处理程序的入口地址)写入PC。异常或中断处理程序可以读取Cause寄存器的内容来确认到底发生了什么事件,依此再跳转到相应的程序去对异常或中断进行处理。处理完毕后。CPU要返回到原来被打断的地方继续执行。返回靠执行eret指令实现。该指令要完成的动作有两个:把EPC的内容写回到PC;一与此同时,把Status寄存器的内容右移4位(恢复原来的中断屏蔽设置)。与中断和异常有关的指令:中断时为npc异常为PC响应中断时左移4位中断返回时右移4位EPC寄存器及输入电路State寄存器及输入电路Cause寄存器及输入电路mfc0 r26 EPC举例OP译码,输出控制信号此图有错,读进去的参数请参考书中verilog代码1OP+rdr26EPC

文档评论(0)

别拿青春赌明天 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档