【我所認知的BIOS】—>计算机中断系统(1)
LightSeed
2009-6-8
中断有分为硬件中断和软件中断,顾名思义硬件中断是由计算机硬件产生的中断,类推软件中断是由计算机软件产生的中断。举个例子,当键盘有键按下需要CPU处理的时候就会经过8259产生一个中断,这个中断就是硬件中断。键盘是计算机硬件这个是不可否认的哦^.^。DOS中断中的的INT 21H就是软件中断中的一种。一般来说可以这么理解,一切由8259负责产生的中断都是硬件中断。一切硬件中断都是由8259产生。(这里我也存在一个问题,CPU其实也是可以产生中断的,但是这个中断理论上应该不算是硬件中断。所以我也就没有把它规在硬件中断这一类。)鉴于篇幅太长,我分成几个小文章逐一讨论。
1、中断的基础知识
1.1 中断概念
中断是一种发生了一个外部的事件时调用相应的处理程序去处理的过程。见下图
1.2 CPU获取外部设备请求的两种方式
①查询方式
按序依次检查外设对应的状态变化,依据预先设定的规则,判断有请求,有则执行,无则继续。
优点:简单
缺点:加重CPU负担,浪费计算资源
②中断方式
中断是一种发生了一个外部的事件时调用相应的处理程序去处理的过程。
优点:需要用时才找CPU帮忙,能够并行处理多种I/O
缺点:程式设计以及实现过程比较复杂
1.3 早期的中断芯片8259(programable interrupt controller)
关于8259的背景资料以及其他资料不赘述,在此提纲挈领式地说一下它的背景。
编程中断控制器8259A
Intel 8259A是一种可编程中断控制器PIC,它是为管理Intel 8080/8085和Intel 8086/8088CPU的可屏蔽中断而设计的,后来又被用于Intel 80286 CPU。在高档Pc系列机中,它的逻辑被集成到多功能接口芯片中。
8259A具有以下主要功能:
①具有8级优先权控制,通过级联可扩展至64级优先权控制(PC上只扩展到16级);
②每一级中断都可以屏蔽(笔者:来了中断也不汇报给CPU)或允许;
③在中断响应周期,8259A可提供相应的中断类型号(笔者:供CPU计算得到中断向量号),从而能迅速转入中断服务程序;
④8259A有几种中断管理模式,可以通过编程进行选择。
主要谈谈它关于中断请求的这个过程的一个详细论述,首先看看单个8259A对于中断的处理过程。
图1 8259A中断响应流程图解
中断的过程可以简单地描述如下:(假如是KBD发生中断请求)
①