问答

汇集网友智慧,解决技术难题

21ic问答首页 - CPU和I/O设备数据交换方式是什么

CPU和I/O设备数据交换方式是什么

anheqiao2021-01-12
CPU和I/O设备数据交换方式是什么
回答 +关注 1
130人浏览 1人回答问题 分享 举报
1 个回答
  • CPU通过内存映射的方式和I/O设备交换数据,但是对于CPU来说,无论是从内存还是I/O设备读取数据,都需要把地址放到地址总线上,然后在向控制总线传递一个READ信号,还要用一条信号线来表示是从内存还是I/O读取数据。因为I/O映射的内存区域是特定的,所以不存在无法区分是内存还是I/O操作。目前一共有3种方式进行操作:
    程序控制I/O: CPU在向I/O设备发出指令后,通过程序查询方式检查I/O设备是否完成工作,如果完成就读取数据,这种方式缺点是CPU在I/O设备工作时被占用。
    中断驱动I/O: CPU是稀缺资源,所以为了提高利用率,减少I/O等待。在I/O设备工作时CPU不再等待,而是进行其他的操作,当I/O设备完成后,通过一个硬件中断信号通知CPU。CPU在来处理接下来的工作,比如读取数据存放到内存。但是每次只能请求一个字节,效率很低。
    DMA: Direct Memory Access利用一种特性的芯片存在于CPU和I/O设备之间。CPU需要操作I/O设备时只需要发送消息给DMA芯片,后面的事情全部内又DMA来完成,当把所需要数据放入内存后在通知CPU进行操作,整个过程DMA直接和内存总线打交道,而CPU也只需要和DMA芯片和内存交互,大大提高了速度。


您需要登录后才可以回复 登录 | 注册