输入输出系统

5.1 概述

一、输入输出系统的发展概况

  1. 早期
  • 分散连接
  • CPU 和 I/O设备串行工作 程序查询方式
  1. 接口模块和 DMA 阶段
  • 总线连接
  • CPU 和 I/O设备 并行 工作
    • 中断方式
    • DMA 方式
  1. 具有通道结构的阶段
  2. 具有 I/O 处理机的阶段

二、输入输出系统的组成

1. I/O 软件

(1) I/O 指令

CPU 指令的一部分

(2) 通道指令

通道自身的指令

指出数组的首地址、传送字数、操作命令

2. I/O 硬件

设备 I/O 接口
设备 设备控制器 通道

三、I/O 设备与主机的联系方式

1. I/O 设备编址方式

(1) 统一编址 用取数、存数指令
(2) 不统一(单独)编址 有专门的 I/O 指令

2. 设备选址

用设备选择电路识别是否被选中

3. 传送方式

(1) 串行
(2) 并行

4. 联络方式

(1) 立即响应
(2) 异步工作采用应答信号

(3) 同步工作采用同步时标

5. I/O 设备与主机的连接方式

(1) 辐射式连接

(2) 总线连接

便于增删设备

四、I/O设备与主机信息传送的控制方式

1. 程序查询方式

我们来看下图这部分:

CPU运行速度快IO设备运行速度慢,那么CPU大部分时间都会处于一个踏步等待的状态

2. 程序中断方式

CPU发出启动IO设备的指令,IO设备启动工作自身准备,数据准备,在准备的过程中CPU会去干其他的事情,IO设备尊卑完成后向CPU发出中断信息,CPU接受信息中断程序,然后专门去处理IO设备的请求

此方式CPU 和 I/O 部分的并行工作,没有踏步等待现象和中断现行程序

3. DMA 方式

主存和 I/O 之间有一条直接数据通道
不中断现行程序
周期挪用(周期窃取)
CPU 和 I/O 并行工作

与程序中断方式相比,将CPU与IO设备数据传输接到中释放出来

三种方式的 CPU 工作效率比较

5.2 I/O设备(非重点)

一、概述

外部设备大致分三类

  • 人机交互设备 键盘、鼠标、打印机、显示器
  • 计算机信息存储设备 磁盘、光盘、磁带
  • 机—机通信设备 磁盘、光盘、磁带

二、输入设备

  • 键盘

    • 按键
    • 判断哪个键按下
    • 将此键翻译成 ASCII 码 (编码键盘法)
  • 鼠标
    • 机械式 金属球 电位器
    • 光电式 光电转换器
  • 触摸屏

三、输出设备

  • 显示器

    • 字符显示 字符发生器
    • 图形显示 主观图像
    • 图像显示 客观图像
  • 打印机
    • 击打式 点阵式(逐字、逐行)
    • 非击打式 激光(逐页)喷墨(逐字)

四、其他

  • A/D、D/A 模拟/数字(数字/模拟)转换器
  • 终端 由键盘和显示器组成 完成显示控制与存储、键盘管理及通信控制
  • 汉字处理 汉字输入、汉字存储、汉字输出

五、多媒体技术

5.3 I/O接口

一、概述

为什么要设置接口?

  1. 实现设备的选择
  2. 实现数据缓冲达到速度匹配
  3. 实现数据串 并格式转换
  4. 实现电平转换
  5. 传送控制命令
  6. 反映设备的状态(“忙”、“就绪”、 “中断请求”)

二、接口的功能和组成

1.总线连接方式的 I/O 接口电路

  • 设备选择线(单向):参与本次信息交换的设备码,端口号,设备地址
  • 数据线(双向):数据的输入与输出
  • 命令线(单向):传输命令信号
  • 状态线(单向):传输状态信号

2. 接口的功能和组成

功能 组成
选址功能 设备选择电路
设备选择电路 命令寄存器、命令译码器
传送数据的功能 数据缓冲寄存器
反映设备状态的功能 设备状态标记

3. I/O 接口的基本组成

三、接口类型

  1. 按数据 传送方式 分类

    并行接口

    串行接口

  2. 按功能 选择的灵活性 分类

    可编程接口

    不可编程接口

  3. 通用性 分类

    通用接口

    专用接口

  4. 按数据传送的 控制方式 分类

    中断接口

    DMA 接口

5.4 程序查询方式

一、程序查询流程

1. 查询流程

单个设备

多个设备

2. 程序流程

其中设置计数值的目的是控制传输数据量

二、程序查询方式的接口电路

以输入为例

当有多个设备的时候要按优先级进行查询

5.5 程序中断方式

一、中断的概念

CPU在执行程序的过程当中,如果发生意外或特殊事件,CPU要中断当前程序的处理,转而去处理特殊事件,中断结束后要返回之前的断点,继续执行之前的程序

二、I/O 中断的产生

CPU与设备是并行的工作的

三、程序中断方式的接口电路

1. 配置中断请求触发器和中断屏蔽触发器

中断屏蔽触发器的作用是当CPU正在处理一项非常重要的事情时不能被中断,此时中断请求就会被屏蔽

2. 排队器

当有多个设备设,要按优先级进行排队,一般速度快的优先级高,因为一般速度快的存储时间相对较短

排队功能的实现常见的由链式排队器

设备 1#、2#、3#、4# 优先级按 降序排列

INTR = 1 有请求

3. 中断向量地址形成部件

确认了选择哪个中断源的中断请求后,下一步就是找到中断服务程序的入口地址

中断号:中断编号
中断向量:中断服务程序的入口地址,包括中断地址,偏移量,状态信号
向量地址:中断向量的地址

入口地址由硬件产生向量地址再由向量地址找到入口地址

4. 程序中断方式接口电路的基本组成

四、I/O 中断处理过程

1. CPU 响应中断的条件和时间

(1) 条件

允许中断触发器 EINT = 1
用 开中断 指令将 EINT 置 “1”
用 关中断 指令将 EINT 置“ 0” 或硬件 自动复位

(2) 时间

当 D = 1(随机)且 MASK = 0 时
在每条指令执行阶段的结束前
CPU 发 中断查询信号(将 INTR 置“1”)

2. I/O 中断处理过程

五、中断服务程序流程

1. 中断服务程序的流程

(1) 保护现场
  • 程序断点的保护 中断隐指令完成
  • 寄存器内容的保护 进栈指令
(2) 中断服务

对不同的 I/O 设备具有不同内容的设备服务

(3) 恢复现场

出栈指令

(4) 中断返回

中断返回指令

2. 单重中断和多重中断

  • 单重中断 不允许中断现行的中断服务程序
  • 多重中断 允许级别更高的中断源中断现行的中断服务程序

3. 单重中断和多重中断的服务程序流程

中断周期要做三件事:保护断点、幸存中断服务程序的入口地址、关中断
保护现场由入栈指令完成
恢复现场由出栈指令完成

单重与多重的区别在于多次将开中断任务提前了

宏观 上 CPU 和 I/O 并行 工作
微观 上 CPU 中断现行程序 为 I/O 服务

5.6 DMA 方式

直接访问存储器方式

一、DMA 方式的特点

1. DMA 和程序中断两种方式的数据通路

2. DMA 与主存交换数据的三种方式

(1) 停止 CPU 访问主存(哒咩)

控制简单
CPU 处于不工作状态或保持状态
未充分发挥 CPU 对主存的利用率

(2) 周期挪用(或周期窃取)

DMA 访问主存有三种可能
• CPU 此时不访存:DMA可以访存,CPU继续执行不访存的指令
• CPU 正在访存:DMA等待 CPU访存
• CPU 与 DMA 同时请求访存 同时请求访存,DMA优先
此时 CPU 将总线控制权让给 DMA

(3) DMA 与 CPU 交替访问(哒咩)

不需要 申请建立和归还 总线的使用权

二、DMA 接口的功能和组成

1. DMA 接口功能

(1) 向 CPU 申请 DMA 传送
(2) 处理总线 控制权的转交
(3) 管理 系统总线、控制 数据传送
(4) 确定 数据传送的 首地址和长度 修正 传送过程中的数据 地址 和 长度
(5) DMA 传送结束时,给出操作完成信号

2. DMA 接口组成

地址寄存器AR:CPU要告诉DMA接口传输的数据的位置,故用一个地址寄存器来存储

计数器WC:需要知道传输数据的量的多少,由计数器寄存器存储

每完成一个数据的传输AR和WC都会+1

设备地址寄存器DAR:用于存储外部设备的地址

数据缓冲器BR用于暂存外部设备的数据

输入输出过程需要DMA控制逻辑,控制在给定时刻给出给定的信号外部设备如果要进行DMA传输,外部设备向DMA控制器发出请求信号DREQ,DMA向外部设备发出反馈信息DACK,DMA控制器向CPU发出请求信号HRQ,CPU向DMA控制器发出放会信号HCDA

中断机构用于WC=0时中断DMA

三、DMA 的工作过程

1. DMA 传送过程

预处理、数据传送、后处理

(1)预处理

数据传输前需要的一些处理

  • 通知DMA 控制逻辑传送方向(入/出)
  • 设备地址DMA 的DAR
  • 主存地址DMA 的AR
  • 传送字数DMA 的WC
(2)数据传送

数据传送过程以输出为例

  1. 将BR中的数据传入设备当中,此时BR没数据了
  2. 设备发出DREQ信号给DMA控制逻辑,相当于设备对DMA控制逻辑说我BR没数据了,你快点开始干活
  3. DMA控制逻辑通过总线向CPU提出总线和存储器的占用请求HRQ
  4. CPU在允许的情况下给出应答HLDA,CPU放弃总线和存储器的占用权
  5. 进行数据传输就要给出主存的地址,通过AR得到
  6. 由DMA控制器发出DACK通知设备已经可以开始设备传输了
  7. 主存将数据通过数据线存到BR中,AR和WC的数据+1
  8. WC判断数据是否传输完,如果WC计数为0WC向中断机构发出溢出信号
  9. 中断机构向CPU发出中断请求
(5)后处理

校验送入主存的数是否正确
是否继续用 DMA
测试传送过程是否正确,错则转诊断程序
由中断服务程序完成

2. DMA 接口与系统的连接方式(可以类比总线)

(1) 具有公共请求线的 DMA 请求(类比总线判优的链式查询方式)

(2) 独立的 DMA 请求(类比总线判优的独立请求方式)

3. DMA 方式与程序中断方式的比较

中断方式 DMA 方式
数据传送 程序 硬件
响应时间 指令执行结束 存取周期结束
处理异常情况 不能
中断请求 传送数据 后处理
优先级

四、DMA 接口的类型

1. 选择型

物理上 连接 多个 设备

在 逻辑上 只允许连接 一个 设备

2. 多路型

物理上 连接 多个 设备

数据准备阶段 允许连接 多个 设备同时工作

但在 数据传输阶段 还时只能有 一个 设备

计算机组成原理——输入输出系统相关推荐

  1. 计算机组成原理 输入输出系统,计算机组成原理(第七章输入输出系统

    计算机组成原理(第七章输入输出系统 (6页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 第七章输入输出系统第一节基本的输入输出方式一. 外围 ...

  2. 计算机组成原理——输入输出系统(课程笔记)

    说明 博客作为笔记备份,不定时更新 参考内容为<计算机组成原理(第3版)>唐朔飞 高等教育出版社:王道考研<计算机组成原理考研复习指导2023> 文中的例题摘自王道考研< ...

  3. [计算机组成原理]输入输出系统与I/O方式详解

    输入输出系统 概述 I/O系统的演变过程 早期 CPU和I/O串行工作,分散连接 *程序查询方式:*由CPU通过程序不断查询I/O设备是否已做好准备,从而控制I/O设备与主机交换信息. 接口和DMA阶 ...

  4. 计算机组成原理 --- 输入输出系统

    目录 1.IO系统基本概念 2.输入输出设备 3.外存储器 4.I\O接口 5.程序查询方式 6.程序中断方式 7.多重中断 8.程序中断方式 9.DMA方式 1.IO系统基本概念 "I\O ...

  5. 计算机组成原理 — 输入输出系统 — 存储控制器接口类型

    ATA(IDE) ATA(Advanced Technology Attachment, 高级技术附加装置)起源于 IBM,是一个单纯的磁盘驱动器接口,不支持其他的接口设备,适配的是 IDE(Inte ...

  6. cop2000计算机组成原理,COP2000计算机组成原理实验系统

    COP2000计算机组成原理实验系统 3. 万用汇编器 用户可以自定义指令/微指令系统,COP2000软件可以对用户自己定义的汇编助记符进行编译,自动生成代码/微代码.实验系统出厂时提供了完善的指令系 ...

  7. el-jy-ii计算机组成原理实验报告,EL-JY-II型计算机组成原理实验系统

    一.适用范围: EL-JY-II型计算机组成原理实验系统是为<计算机组成原理>课程的教学实验而研制的,涵盖了目前流行教材的主要内容,能完成主要的基本部件实验和整机模拟实验,同时也可供计算机 ...

  8. 计算机组成原理实验tec2000,TEC-2000A计算机组成原理实验系统

        计算机组成原理是大学计算机系的一门重要技术基础课.TEC-2000A计算机组成原理教学机实验系统由清华大学科教仪器厂.清华大学计算机系联合研制.可用于电大.本科.硕士研究生的计算机组成原理课程 ...

  9. 计算机软件属于输入还是输出,计算机基本输入输出系统是什么意思(基本输入输出系统简介)...

    发布时间:2020-06-17 09:49:33 点击:次 作者:风雪 来源:代代SEO 任何使用过电脑的人都知道电脑主板上有一个CMOS芯片.基本输入输出系统程序存储在互补金属氧化物半导体芯片上.b ...

  10. 计算机组成原理——总线系统总结

    计算机组成原理--总线系统总结 一.总线的概念: 总线是构成计算机系统放入互联机构,是多个系统功能部件之间进行数据传送的公共通路.借助于总线连接,计算机在各个系统功能部件之间实现地址.数据和控制信息的 ...

最新文章

  1. 跟小博老师一起学JSP ——连接数据库
  2. 怎么给linux分区,如何合理地给你的Linux分区
  3. 第一批鸿蒙系统手机型号,鸿蒙2.0第一批机型名单正式披露!花粉却感叹:华为不够厚道!...
  4. C++面试知识点汇总
  5. 基于ARM+DSP进行应用开发-经验共享
  6. LeetCode 1551. 使数组中所有元素相等的最小操作数(等差数列)
  7. 【特别版】计算机哲学对学习生活借鉴的几个例子
  8. Atitit 前端性能提升方案 目录 1. 优化分类 2 1.1. ,第一类是页面级别的优化, 2 1.2. 第二类则是代码级别的优化, 2 1.3. 前端性能优化的七大手段,包括减少请求数量、减小
  9. 什么是软件设计模式?
  10. C++ 招聘干部录取系统
  11. 设计模式-单例模式(Singleton)
  12. 进制转换模板——短除法
  13. linux startx xinit
  14. text html叫什么意思,text是什么意思_text是什么意思
  15. 肝进ICU,万字真言点化八大排序——我奶奶都看得懂的算法详解
  16. java web项目混淆
  17. 用Python破解WiFi密码,太刺激了
  18. 东南大学计算机专硕录取分数线,东南大学研究生录取分数线
  19. 快播王欣:我所失去的一切,都要靠区块链双倍奉还!
  20. 资本教不会年轻人喝酒

热门文章

  1. 无线传感网学习笔记(6)—— S-MAC协议 和 Z-MAC协议
  2. python调用nmap_Python调用nmap扫描网段主机信息生成xml
  3. 计算机硬盘容量减少修复,硬盘坏了数据可以恢复吗?教你硬盘数据恢复技巧
  4. 虚拟机装打印服务器,蜗牛矿渣装机教程 篇五:PVE虚拟机下OPENWRT如何安装USB打印机P1106...
  5. Linux系统内核升级
  6. android截屏保存目录,Android实现截屏,将截图文件保存到本地文件夹
  7. 【SSD目标检测】3:训练自己的数据集
  8. informatic从多张表取数、或多表关联
  9. 特斯拉开始发布其汽车的开源Linux软件代码
  10. 桥梁防撞主动预警系统解决方案-广州泛尔维