首页 > 其他 > 详细

读书笔记 计算机系统--系统架构与操作系统的高度集成 第四章中断、陷入及异常

时间:2019-03-26 22:43:32      阅读:144      评论:0      收藏:0      [点我收藏+]

本章讨论处理器如何处理执行中的不连续性

    程序执行的不连续性---------------------------一

    体系结构的改进---------------------------------二

    硬件的细节---------------------------------------三

 

一 :程序执行的不连续性

引入同步和异步

    同步,在规定好的时间内发生的事件,如第三章的各个微状态之间的转移。

    异步,系统正在进行的,其他活动相关的,不可预料的时间发生的事情,如中断。

程序执行的不连续性

    中断,设备引起处理器注意的机制,一般指外部设备引起的不连续性。

    异常,内部产生的问题,执行非法指令,要打断原有指令序列的执行然后去处理。

    陷入,当前运行的程序无法处理的一种内部情况,只能调用操作系统来处理。

   技术分享图片

    不连续性是一种工具:

        他允许计算机系统提供输入/输出

        他允许计算机系统为相互竞争的活动管理资源。

        他允许计算机系统帮助程序员开发正确的程序。

    检测不连续性是处理器的责任,引导处理器处理不连续性代码是操作系统的责任。

处理不连续性要做的事

    硬件隐式完成的活动

    操作系统显式完成的活动。

引入处理过程,处理器处理不连续时执行的过程。

处理器在处理不连续性上,与第二章的调用过程基本一样,但是有四个要注意

    1、不连续性可以在指令执行的任意位置发生。

    2、不连续性是计划外的,硬件控制权给处理过程,要保存PC的值。

    3、在检测到不连续性时,硬件需要确定处理过程的地址,以便转交控制权。

    4、硬件隐式保存PC值,需要知道如何如恢复。

引入异常/陷入寄存器ETR,用来保存不连续性的编号。

操作系统和处理器体系结构合作解决

    1、体系结构定义一系列异常和他们对应的编号

    2、操作体统定义一系列异常(中断,陷入)以及他们对应的编号。

    3、在启动操作系统,建立中断向量表IVT,给出处理异常中断陷入的处理过程地址。

    4、在普通程序执行时,硬件检测异常和陷入,将矢量表填入ETR

    5、在普通程序执行时,硬件检测外部中断以及对应编号。

    6、硬件使用矢量值索引IVT,找到处理过程,将控制权交给处理过程。

:体系结构的改进

修改FSM:

    在原来FSM基础上多一个宏状态

    技术分享图片

 

    FSM在指令结束时检查,有中断则到INT宏状态,没有就返回Fetch。

    把当前PC保存在某个寄存器$k0,接受处理过程的地址,装入PC。

    之所以在最后一个检查,因为处理器的寄存器处于干净的状态。

处理级联中断:

    中断中又中断回事去原始程序的PC值。

    为处理级联中断引入:

        禁止中断指令

        允许中断指令

    处理方法:

        技术分享图片

        关闭中断,原始程序的返回地址保存到$k0,

        打开中断,保存寄存器堆,然后执行指令,

        执行处理过程,

        关闭中断,恢复寄存器$k0,返回原程序    

 明天继续写。。。2019-03-26

    

读书笔记 计算机系统--系统架构与操作系统的高度集成 第四章中断、陷入及异常

原文:https://www.cnblogs.com/powerzzjcode/p/10604234.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!