计算机组成原理(七)-IO,DMA原理与零拷贝机制

什么是IO?

IO是输入输出的意思,也就是Input和Output,这不是重点,重点是IO是相对谁,在我们编写代码的时候也有I/O的概念。以Java为例,InputStream一般都伴随read方法,OutputStream一般对应write方法,也就是说,从哪读,写到哪去?所有的IO都是相对于内存,严格来说是内存的缓冲区。所有的程序都需要加载到内存中才能使用,而普通程序(除操作系统外)都无法直接访问硬件(外设),所有的 外设也没法直接访问用户空间中的用户程序,对于一个普通程序的一次普通IO来说,所有的数据都是先加载到内核空间的缓冲区,然后再被copy到用户空间的缓冲区,我们去read这个缓冲区。

IO接口:IO设备的代言人

大部分的输入输出设备,都有两个组成部分。第一个是它的接口,第二个才是实际的 I/O 设备。我们的硬件设备并不是直接接入到总线上和 CPU 通信的,而是通过接口,用接口连接到总线上,再通过总线和 CPU 通信。

而IO接口标识了设备状态,设立了缓冲区,标识了设备ID,完成了地址转换,甚至可以分析指令。也就是说真实的IO设备根本不会和总线直接交互。

 

 

CPU 是如何控制 I/O 设备的?

CPU不会直接和I/O设备交互,所有的操作都要通过接口,那么这就牵扯出CPU是如何控制接口的?

程序查询方式:由CPU通过程序不断查询I/O设备是否已经做好准备,从而控制I/O设备与主机交换信息。

CPU在和接口交互之前࿰

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值