中断和轮询到底区别在哪?

CPU要和外设进行通信,可以采用轮询和中断两种方式。因为轮询方式需要CPU轮询外设,查询外设是否发生中断,效率不高显而易见。于是增加了如下图的中断系统来减轻CPU负担,但是这样做效率就高了吗?本质上,采用中断系统后,CPU仍然需要每隔一小段时间去查询中断控制寄存器TCON的各位状态,以判断是否有外设中断发生,否则CPU仍旧无法知道外设的当前状态。

如上所述,中断和轮询,好像又没啥区别,CPU仍旧摆脱不了查询的命运。但是你知道让CPU直接和各个外设逐一沟通,和让CPU只与中断控制系统机构沟通,效率是完全不一样的。为了证明我的推断,我们假设,CPU外接20个不同的设备,这20个外设中在某一刻有两个外设同时中断,正好这个时候CPU来查看外设的状态,如果是轮询方式,CPU需要一一遍历20种不同的外设控制器,才能判断哪些外设刚才申请过中断,哪些外设没有申请中断。如果采用中断方式处理呢?CPU只需查询一下中断标志位,处理最高优先级的那个中断,其他的事情全交给中断系统去处理,效率提高了20倍!

从中,我们也可以发现一个现象,不论硬件设计如何巧妙,软件产品如何复杂,在设计原则上仍然是在不断的做加法。

 

图1.  89C51单片机中断系统的硬件框图

备注: 从上图中,我们看到89C51只有五个中断源,外接的设备比较少。现代CPU对中断系统进行了扩展,中断系统的中断寄存器也更加丰富了。

转载于:https://www.cnblogs.com/tomsonggecko/p/interruptsystem.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值