设备控制器

设备控制器是CPU 与 I/O 设备之间的接口,它接收 CPU 发来的命令,去控制 I/O 设备工作,使 CPU 从繁杂的设备控制事务中解放出来。

当 CPU 要操作 I/O 设备时,首先要启动这个设备,一方面将启动命令发送给设备控制器,另一方面通过地址线将 I/O 设备的地址发给设备控制器,设备控制器的 I/O 逻辑对收到的地址进行译码,再根据所译出的命令对相应的设备进行操作。

由此看来,I/O 设备控制器的作用是 译码器+执行器

CPU 对 I/O 的操作命令并不是只有一条,而是多条的,因此操作一次 I/O 设备,首先 CPU 向设备控制器发送一条条命令,设备控制器接收到一条条命令,然后译码、执行。因此设备控制器一定程度上使 CPU 从 I/O 控制上解脱了出来,但并未完全解脱。这就有了 I/O 通道的产生。

I/O通道

关于 I/O 通道的工作流程详见这篇博文

I/O 通道实际上是一种特殊的处理机,并且其与 CPU 共享内存。

当 CPU 要操作某个 I/O 设备时,它并不需要一条条将 I/O 指令(称为通道程序)发送给设备控制器,只需要向通道发出 I/O 指令,指明这一条条指令在内存的什么地方,并且指明要操作的是哪个设备,然后 CPU 就可以去忙别的事情了。

I/O 通道接收要 CPU 发送来的这些信息之后,就可以从内存中找到并执行这个通道程序,即发送启动命令和一条条 I/O 命令给设备控制器;当对 I/O 设备的操作完成之后,通道向 CPU 发出中断信号,告诉 CPU 相应的操作已经完成。

由此看出,I/O 通道作为一种特殊的处理机(实际上就相当于早期的外围机),承担了原来 CPU 处理 I/O 操作的一部分功能,使得 CPU 从 I/O 操作种解放出来,CPU 和对 I/O 操作可以并行。

在引入 I/O 通道之后,I/O 系统结构形成了四级结构:

  • 最低级为I/O设备,
  • 次低级为设备控制器,
  • 次高级为I/O通道,
  • 最高级是 CPU。

最新文章

  1. [Django]用户权限学习系列之Permission权限基本操作指令
  2. [PDO绑定参数]使用PHP的PDO扩展进行批量更新操作
  3. function与感叹号
  4. Swagger使用总结
  5. WCF安全3-Transport与Message安全模式
  6. saltstack故障解决
  7. RFID Hacking①:突破门禁潜入FreeBuf大本营
  8. Part 53 to 55 Talking about Reflection in C#
  9. AMQ学习笔记 - 10. Spring-JmsTemplate之浏览
  10. error: dst ref refs/heads/zhCN_v0.13.1 receives from more than one src.
  11. C#的提交表单方式WebClient
  12. 在win7上建立本地FTP站点详细步骤
  13. C++学习(二)
  14. 获取Map API Key
  15. centos 挂载windows共享目录
  16. 从注册流程 分析如何安全退出多个Activity 多种方式(附DEMO)
  17. 服务器开发之CGI后门
  18. Cookie、sessionStorage、localStorage的区别
  19. swiftmailer时没有设置https的选项,才可以发送成功。在linux下面
  20. 用条件属性而不是#if

热门文章

  1. 短视频正当时,如何让你的App快速构建视频创作能力?
  2. C++构造函数语义学(一)(基于C++对象模型)
  3. qt之线程
  4. HttpServletRequest类介绍
  5. && || 区别
  6. 【webpack4.0】---webpack的基本使用(三)
  7. iGear 用了这个小魔法,模型训练速度提升 300%
  8. Vue.js之计算属性(computed)、属性监听(watch)与方法选项(methods)
  9. jsp 中的绝对路径和相对路径 ./ 和 ../的区别?
  10. Ubuntu 18.04 安装教程