分享

缓冲、中断和DMA技术

 yunlei041 2010-07-30

2.3 缓冲、中断和DMA技术

http://book.51cto.com  2010-03-12 11:02  陆松年  电子工业出版社
 
1.2.3  缓冲、中断和DMA技术

1.缓冲技术

脱机、批处理还没有完全解决CPU与外部设备速度的匹配问题,无论是从读卡机还是从磁带中读入,相对于CPU来说,读入数据的速度总嫌慢。进一步的解决方法是采用缓冲技术。缓冲技术的原理是将数据存放到一个特定的缓冲区中,当CPU从缓冲区中取得了数据,在对它进行运算之前,再启动输入设备以输入下一个数据至缓冲区。这样在CPU进行运算时,外部设备的输入工作也在同时进行。同样,输出也可采用缓冲技术。采用了带缓冲的输入/输出技术后,CPU与外部设备就能做到并行操作,减少了互相等待的时间,极大地提高了CPU与各种外部设备的使用效率。

2.中断技术

具有缓冲的输入输出也带来了新的问题。一个问题是处理机要知道I/O设备什么时候已完成了输入操作,以便处理输入数据并启动下一个I/O。如果要靠CPU反复地查询输入设备的状态,就会浪费很多CPU的时间。中断技术的出现解决了这个难题。只要I/O设备一旦完成了输入/输出操作,它会自动地向CPU发出中断信号。CPU收到中断信号后,就暂停当前的处理工作,在做了一些必要的现场保护、中断处理工作后,转入中断服务程序。中断服务程序读出缓冲区数据,然后启动下一个I/O操作。从中断服务程序返回后,操作系统恢复被中断的运算过程。

中断处理机构需要在系统栈上保存中断返回地址,还要保护中断时的其他现场,如累加器和其他寄存器的值。在完成了中断服务之后,中断程序要恢复原先的中断现场,取得断口地址以使计算机继续原先的处理工作。CPU在处理一个中断事务时,如果又收到另一个优先级更高的中断请求,就会暂停当前的中断服务,转而去处理更为紧迫的操作,这样就形成了中断的嵌套。

3.DMA技术

对于慢速的I/O设备(如键盘、串行口等),CPU在执行有关的中断服务程序后,还可利用剩下的大部分时间来执行其他的计算工作。但对于像磁带、磁盘或高速网络通信接口,CPU响应中断和处理数据所费的时间可以比数据到达的时间间隔更长。这样,即使处理机的时间全部用于处理中断和接收输入数据,也仍然会发生数据丢失的情况。

为了解决这个难题,产生了直接存储器存取(DMA)技术。一旦收到了DMA发来的中断请求后,CPU在设置了缓冲区、指针和计数器后,DMA就可以不需要CPU干预,在内存和设备之间传送整块数据。这样,通过DMA每传送一个数据块仅需要一次中断处理,而不是像低速设备那样每传送一个数据都需要一次中断处理。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多