免费智能真题库 > 历年试卷 > 程序员 > 2016年下半年 程序员 上午试卷 综合知识
  第9题      
  知识点:   CPU与外设之间交换数据的方式   中断
  关键词:   中断向量   中断        章/节:   硬件基础知识       

 
中断向量提供(9)。
 
 
  A.  外设的接口地址
 
  B.  待传送数据的起始和终止地址
 
  C.  主程序的断点地址
 
  D.  中断服务程序入口地址
 
 
 

 
  第20题    2009年下半年  
   57%
接口是连接外围设备与计算机主机之间的桥梁,以下关于接口功能的叙述中,错误的是(20)。
  第24题    2009年上半年  
   40%
打印质量好、速度快,且工作原理与复印机相似的打印机是(24) 。
  第22题    2009年上半年  
   60%
若指令系统中设置了专用I/O操作指令,则I/O接口(22) 。
   知识点讲解    
   · CPU与外设之间交换数据的方式    · 中断
 
       CPU与外设之间交换数据的方式
        1)直接程序控制
        .程序查询方式:在这种方式下,CPU通过执行程序查询外设的状态,判断外设是否准备好进行数据传送。程序查询方式的传输过程如下图所示。
        
        程序查询方式的传输过程
        .立即程序传送方式:在这种方式下,I/O接口总是准备好接收来自主机的数据,或
        随时准备向主机输入数据,CPU无须查看接口的状态,就执行输入/输出指令进行数据传送。这种方式又称为无条件传送或同步传送。
        2)中断方式
        中断是在发生了一个外部事件时调用相应的处理程序(或称服务程序)的过程。中断服务程序与中断时CPU正在运行的程序是相互独立的,相互不传递数据。
        中断处理中要解决以下问题。
        .中断处理程序入口地址的形成(称为中断响应过程):由硬件中断机构根据中断源引出中断向量表,其步骤是:关中断(屏蔽中断)→保存现场→识别中断→形成服务程序入口地址→执行服务程序→恢复现场→开中断。
        .中断屏蔽:由硬件中断屏蔽寄存器实现多重中断(中断嵌套),即中断服务程序也可以被中断。多重中断的过程如下图所示。
        
        中断嵌套示意图
        实现中断屏蔽的方法有以下两种。
        .在CPU内设置一个中断屏蔽寄存器,通过指令设置该寄存器关(或开),用以屏蔽(或不屏蔽)对外部所有的中断请求,常在保存(或恢复)现场时使用。
        .采用中断屏蔽寄存器,每位对应一个中断源,用软件灵活地设置屏蔽寄存器的内容就可改变优先级,其原理如下图所示。
        
        中断屏蔽的原理
        中断的类型分为以下三种。
        .内部中断(异常处理):算术操作异常、非法指令、越权指令。
        .外部中断(可屏蔽,不可屏蔽):键盘、鼠标、电源。
        .软件中断:系统功能调用。
        3)DMA方式
        目的:减少大批量数据传输时CPU的开销。
        方法:采用专用部件生成访存地址并控制访存过程。
        传输过程:预处理,数据传输,后处理。
        DMA方式用于高速外围设备与内存之间批量数据的传输,其使用一个专门的DMA控制器来完成内存与设备之间的直接数据传送,而不用CPU干预。当本次DMA传送的数据全部完成时,才产生中断,请求CPU进行结束处理。DMA控制器与其他部件的关系如下1图所示。其控制流程如下2图所示。
        
        DMA控制器与其他部件的关系
        
        DMA控制器的控制流程
        因为CPU与DMA都要访问内存,所以会出现访存冲突,一般有以下解决方法。
        .CPU等待DMA。
        .DMA在存储器空闲时访问存储器(周期挪用)。
        .CPU与DMA交替访问存储器(透明方式)。
        4)通道方式
        通道是一个用来控制外围设备工作的专用处理机。它对外围设备实现统一管理,代替CPU对I/O操作进行控制,从而使I/O操作可以与CPU并行工作。通道是实现计算和传输并行的基础,通道的应用可以提高整个系统的效率。
        通道的类型包括:选择通道、数组多路通道、字节多路通道。
        通道的功能包括:接受CPU的指令;读取并执行通道程序;控制数据传送;读取外设的状态信息,提供给CPU;发出中断请求。
 
       中断
        中断是异步发生的,是来自处理器外部的I/O设备的信号的结果。硬件中断不是由任何一条专门的指令造成的,从这个意义上来说它是异步的。硬件中断的异常处理程序常常被称为中断处理程序(interrupt handler)。
               硬中断与软中断
               硬中断是由硬件产生的,例如磁盘、网卡、键盘、时钟等。每个设备或设备集都有它自己的IRQ(中断请求)。基于IRQ,CPU可以将相应的请求分发到对应的硬件驱动上。
               软中断是一组静态定义的下半部分接口,可以在所有的处理器上同时执行,即使两个类型相同也可以。但是一个软中断不会抢占另外的一个软中断,唯一可以抢占软中断的是硬中断。
               可屏蔽中断与不可屏蔽中断
               可屏蔽中断和不可屏蔽中断都属于外部中断,是由外部中断源引起的。不可屏蔽中断源一旦提出请求,CPU必须无条件响应,而对可屏蔽中断源的请求,CPU可以响应,也可以不响应。
               CPU一般设置两根中断请求输入线:可屏蔽中断请求INTR(Interrupt Require)和不可屏蔽中断请求NMI(Non Maskable Interrupt)。对于可屏蔽中断,除了受本身的屏蔽位控制外,还都要受一个总的控制,即CPU标志寄存器中的中断允许标志位IF(Interrupt Flag)的控制,IF位为1,可以得到CPU的响应,否则,得不到响应。IF位可以由用户控制,指令STI或Turbo C的Enable()函数,将IF位置1(开中断),指令CLI或Turbo_c的Disable()函数,将IF位清0(关中断)。
               中断优先级
               当多个中断源同时请求中断时,而CPU一次只能响应其中的一个中断,同时为了能响应所有中断,就引入中断优先级来处理。系统会根据引起中断事件的重要性和紧迫程度,将中断源分为若干个级别,称作中断优先级。中断优先级有两种:查询优先级和执行优先级。
               查询优先级是不可以更改和设置的,在该方式下当多个中断源同时产生中断信号时,中断仲裁器会选择中断源优先处理的顺序,此过程与是否发生中断服务程序的嵌套毫不相干。当CPU查询各个中断标志位的时候,会依照优先级顺序依次查询,当数个中断同时请求的时候,会优先查询到高查询优先级的中断标志位,但并不代表高查询优先级的中断可以打断已经并且正在执行的低查询优先级的中断服务。
               由于可屏蔽的中断源很多,故需要对其进行管理,如区分是哪个中断源发出的中断信号?哪个中断源最优先及怎样处理多级中断嵌套等。为此,可使用中断控制器对多个可屏蔽中断源进行管理。
               中断控制器能够对中断进行排队管理,避免中断信号的丢失,同时支持对不同中断进行优先级的配置,使高优先级中断能够中断低优先级中断,满足系统中具有更高时间约束特性功能的需要。
               中断嵌套
               当处理器正在处理一个中断时,有比该中断优先级高的中断源发出中断请求时,如果处理器正在执行中断处理程序,那么处理器会对高优先级的中断进行立即处理,处理完之后再返回到低优先级的中断服务程序继续执行。这样就形成了中断服务程序中套用中断服务程序的情况,即中断嵌套。可嵌套中断的处理流程和中断服务框图如下图所示。
               
               可嵌套中断处理流程
   题号导航      2016年下半年 程序员 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第9题    在手机中做本题