介绍

I/O通道是DMA的进一步发展,进一步减少CPU的干预,DMA是每次对一个数据块进行操作,通道是一次对一组数据块进行操作。
通道实质是简单的处理器。拥有命令寄存器,地址寄存器,有通道程序,指令单一,但是没有专有的内存

执行过程

CPU中
1.用户进程提出I/O请求,唤醒设备驱动进程(参考 其他文章,我后续会写专门文章介绍)
2.设备驱动进程根据请求参数组织和生成通道程序(是自动生成,不是人工写的)
3.通道程序起始地址送入通道地址寄存器CAW
4.启动通道,开始步骤6
5.设备驱动程序阻塞,CPU调度执行其他进程。
通道中
6.根据CAW值从内存提取一条通道指令送入通道命令寄存器CCW,CAW加一指向下一条通道指令。
7.执行CCW指向的指令执行。
8.若不是最后一条通道指令,返回6继续执行。若是的话发出中断请求。

通道程序与通道指令

通道程序是由一组通道指令构成
下面举出一个简单通道程序

操作码 通道程序结束标志 记录结束标志 数据读写字节计数 内存地址
WRITE 0 0 80 2680
WRITE 0 0 140 1034
WRITE 1 1 250 720

该通道程序由三条通道指令构成,将数据写到磁盘上
操作码WRITE表示写操作
通道结束标志,0表示不是最后一条,1表示是最后一条通道指令
记录结束标志,前两个为0,后一个为1,表示三条指令操作的数据写到一个
记录上
内存地址,该条指令要操作的内存首址

要结合上面执行过程进行理解。
有问题留言提问

通道控制方式,通道指令与通道程序相关推荐

  1. 【Computer Organization笔记25】I/O:程序直接控制,程序中断方式,直接存储访问(DMA),通道控制方式

    本次笔记内容: P49 计算机组成原理(49) P50 计算机组成原理(50) 我的计组笔记汇总:计算机组原理成笔记 视频地址:计算机组成原理 清华大学刘卫东 全58讲 国家精品课程 1080P 更完 ...

  2. 操作系统之I/O管理:1、I/O控制器、I/O控制方式(程序直接控制方式、中断驱动方式、DMA方式、通道控制方式)

    1.I/O设备的概念.分类 基础知识 思维导图 什么是I/O设备? 分类 I/O控制器 思维导图 I/O控制器功能 I/O控制器的组成 内存映像I/O vs 寄存器独立编址 I/O控制方式 1.程序直 ...

  3. 操作系统|DMA控制方式与中断控制方式/通道控制方式的区别

    DMA控制方式与中断控制方式的区别 ❀中断控制方式在每个数据传送完成后中断CPU ❀DMA方式在传送一批数据结束时中断CPU ☆中断控制方式的数据传送在中断处理时由CPU控制器完成 ☆DMA控制方式则 ...

  4. IO控制器 IO控制方式(程序直接控制、中断驱动、DMA方式、通道控制方式)

    DMA方式 解决中断驱动方式必须经过CPU的问题.每次只读/写一个字问题 一个通道可以控制多个IO控制器,一个IO控制器可以控制多个设备.

  5. 5.1.3 OS控制I/O设备的几种方式?(程序直接控制方式、中断驱动方式、DMA、通道控制)

    文章目录 0.思维导图 1.程序直接控制方式 2.中断驱动方式 3.DMA方式 4.通道控制方式 5.四种方式总结一下 0.思维导图 1.程序直接控制方式 key word : 轮询 完成一次读/写操 ...

  6. 18 操作系统第五章 设备管理 IO设备的基本概念和分类 IO控制器 IO控制方式 IO软件层次结构 IO核心子系统 假脱机技术 设备的分配与回收 缓冲区管理

    文章目录 1 IO设备的基本概念和分类 1.1 什么是I/O设备 1.2 I/O设备分类 2 IO控制器 2.1 I/O设备组成 2.2 I/O控制器功能 2.3 I/O控制器的组成 2.4 寄存器编 ...

  7. I/O设备的概念和分类、I/O控制器及其I/O控制方式

    一.I/O设备的基本概念与分类 (一)什么是I/O设备? "I/O" 就是 "输入/输出"(Input/Output) I/O 设备就是可以将数据输入到计算机, ...

  8. 了解一下IO控制器与控制方式

    IO控制器 CPU无法直接控制IO设备的机械部件,因此IO设备还要有个电子部件作为CPU和IO设备机械部件之间的"中介",用于实现CPU对设备的控制. 这个电子部件就是IO控制器, ...

  9. 操作系统I/O控制方式详解

    操作系统I/O控制方式详解 一.导读 二.I/O控制方式 1.直接程序控制方式 2.中断驱动控制方式 3.直接存储器访问(DMA)控制方式 4.通道控制方式 I/O控制方式有几种?分别适用何种场合? ...

最新文章

  1. 学习Python编程,推荐最好的五本参考书,必读~~~
  2. IDEA中pom.xml中导入spring-boot-starter-thymeleaf报错的解决方案
  3. grep、egrep、fgrep的用法与特性详解
  4. OkHttp 3.x 源码解析之Interceptor 拦截器
  5. future.cancel不能关闭线程_多线程与高并发笔记
  6. PHP 函数:intval()
  7. 关于VC中的时间函数讨论
  8. pyspark的用法
  9. 字体的基础知识:中文字体的特征
  10. java ffmpge转换,java调用ffmpeg实现视频转换的方法
  11. 什么是现汇买入价、现钞买入价、卖…
  12. 苹果的移动设备上跑flash
  13. 【Golang】Go 语言 XML 的序列与反序列化实践
  14. 数字集成电路设计系列学习总结
  15. mapbox,使用maptalks绘制3D建筑图形
  16. 快速上首页的五大技巧
  17. MIMIC-III 数据集处理 | OverflowError: Overflow in int64 addition 解决方法
  18. 2022年 前端web 面试题(笔试真题)(5)
  19. uniapp 实现富文本编辑器【小程序端】
  20. 【应用】Python调用百度AI实现图片上表格识别

热门文章

  1. C++|Java混合实验-java搭建get方法靶场,Qt发送请求获取数据
  2. VS2012生成C的dll并调用以及Python调用C的DLL
  3. C/C++ OpenCV方框滤波
  4. python在多个组中选一组_python-使用 pandas 在每个groupby组的列中选择最大的N
  5. 地图上如何量方位角_楼承板厂家揭秘:压型钢板采购的7个坑之第2个坑_压型钢板如何在镀锌量上偷工减料?...
  6. python鸭制作类代码_Python动态语言与鸭子类型详解
  7. 全局唯一递增的id_生成全局唯一id的几种方式
  8. python for循环九九乘法表_python3:使用for循环打印九九乘法表
  9. cookie跨域_跨域问题的复现与整理
  10. LeetCode:226. 翻转二叉树