当前位置: 首页 > news >正文

计算机组成原理知识总结(八)输入/输出系统

计算机组成原理知识总结

计算机组成原理知识总结(一)计算机概论
计算机组成原理知识总结(二)运算方法和运算器
计算机组成原理知识总结(三)存储系统
计算机组成原理知识总结(四)指令系统
计算机组成原理知识总结(五)中央处理器
计算机组成原理知识总结(六)总线系统
计算机组成原理知识总结(七)外围设备


输入/输出系统

  • 计算机组成原理知识总结
  • 8.1 CPU与外设之间的信息交换方式
    • 8.1.1 输入/输出接口与端口
    • 8.1.2 输入/输出操作的一般过程
    • 8.1.3 I/O接口与外设间的数据传送方式
    • 8.1.4 CPU与I/O接口之间的数据传送
  • 8.2 程序查询方式
  • 8.3 程序中断方式
    • 8.3.1 中断的基本概念
    • 8.3.2 中断服务程序入口地址的获取
    • 8.3.3 程序中断方式的基本I/O接口
    • 8.3.4 单级中断
    • 8.3.5 多级中断
    • 8.3.6 Pentium中断机制
  • 8.4 DMA方式
    • 8.4.1 DMA的基本概念
    • 8.4.2 DMA传送方式
    • 8.4.3 基本的DMA控制器
    • 8.4.4 选择型和多路型DMA控制器
  • 8.5 通 道 方 式
    • 8.5.1 通道的功能
    • 8.5.2 通道的类型
    • 8.5.3 通道结构的发展
  • 8.6 通用I/O标准接口
    • 8.6.1 并行I/O标准接口SCSI
    • 8.6.2 串行I/O标准接口IEEE 1394
    • 8.6.3 I/O系统设计
  • 总结


8.1 CPU与外设之间的信息交换方式

8.1.1 输入/输出接口与端口

外围设备的种类繁多,有机械式和电动式,也有电子式和其他形式。
在这里插入图片描述
为了与CPU交互信息的方便,在接口内部一般要设置一些可以被CPU直接访问的寄存器。这些寄存器称为端口(Port)。
为便于CPU访问端口,也需对端口安排地址。

  1. 统一编址方式:输入/输出设备接口中的控制寄存器、数据寄存器、状态寄存器等和内存单元一样看待,它们和内存单元联合在一起编排地址。
  2. I/O独立编址方式:内存地址和I/O设备地址是分开的,访问内存和访问I/O设备使用不同的指令,即访问I/O设备有专门的I/O指令组。

8.1.2 输入/输出操作的一般过程

输入/输出设备同CPU交换数据的一般过程
如果是输入过程,一般需要以下三个步骤:

  1. CPU把一个地址值放在地址总线上,选择某一输入设备;
  2. CPU等候输入设备的数据成为有效;
  3. CPU从数据总线读入数据,并放在一个相应的寄存器中。

如果是输出过程,一般需要以下三个步骤:

  1. CPU把一个地址值放在地址总线上,选择一个输出设备;
  2. CPU把数据放在数据总线上;
  3. 输出设备认为数据有效,从而把数据取走。

8.1.3 I/O接口与外设间的数据传送方式

根据外设工作速度的不同,I/O接口与外设间的数据传送方式有以下三种。

  1. 速度极慢或简单的外围设备:无条件传送方式
    对这类设备,如机械开关、发光二极管等,在任何一次数据交换之前,外设无需进行准备操作。
  2. 慢速或中速的外围设备:应答方式(异步传送方式)
    由于这类设备的速度和主机的速度并不在一个数量级,或者由于设备(如键盘)本身是在不规则时间间隔下操作的,因此,主机与这类设备之间的数据交换通常采用异步定时方式,接口与外设之间在数据传送信号线之外安排若干条握手(联络、挂钩)信号线,用以在收发双方之间传递控制信息,指明何时能够交换数据。
  3. 高速的外围设备:同步传送方式
    对于中等以上数据传送速率并按规则间隔工作的外部设备,接口以某一确定的时钟速率和外设交换信息。

8.1.4 CPU与I/O接口之间的数据传送

在计算机系统中,CPU管理外围设备有几方式。

  1. 无条件传送方式(简单I/O方式)
    无条件传送方式假设外设始终处于就绪状态,数据传送时,CPU不必通过接口查询外设的状态,而直接执行I/O指令进行数据传输。
  2. 程序查询(轮询)方式
    多数外设每传送完一次数据总要进行一段时间的处理或准备才能传送下一个数据,因此在数据传送之前,CPU需要通过接口对目标设备的状态进行查询:如果外设已准备好传送数据则进行数据传送;如果外设未准备好传送数据,则CPU不断地查询并等待,直到外设准备好信息交互。
  3. 程序中断方式
    中断是外围设备用来“主动”通知CPU,准备送出输入数据或接收输出数据的一种方法。
  4. 直接内存访问(DMA)方式
    用中断方式交换数据,是通过CPU执行程序来实现数据传送的。
  5. 通道和输入/输出处理器
    DMA方式的出现已经减轻了CPU执行I/O操作的压力,使得CPU的效率有显著的提
    高,而通道的出现则进一步提高了CPU的效率。
    在这里插入图片描述

8.2 程序查询方式

  1. 输入/输出指令
    当用程序实现输入/输出传送时,I/O指令一般具有如下功能:
    (1)置“1”或置“0”I/O接口的某些控制触发器,用于控制设备进行某些动作,如启动、关闭设备等。
    (2)测试设备的某些状态,如“忙”“准备就绪”等,以便决定下一步的操作。
    (3)传送数据,当输入数据时,将I/O接口中数据寄存器的内容送到CPU某一寄存器;当输出数据时,将CPU中某一寄存器的内容送到I/O接口的数据寄存器。
  2. 程序查询方式的接口
    由于主机和外部设备之间进行数据传送的方式不同,因而接口的逻辑结构也相应有所不同。
    (1)设备选择电路 接到总线上的每个设备预先都给定了设备地址码。
    (2)数据缓冲寄存器 当输入操作时,用数据缓冲寄存器来存放从外部设备读出的数据,然后送往CPU;当输出操作时,用数据缓冲寄存器来存放CPU送来的数据,以便送给外部设备输出。
    (3)设备状态标志 是接口中的标志触发器,如“忙”“准备就绪”“错误”等,用来标志设备的工作状态,以便接口对外设动作进行监视。一旦CPU用程序询问外部设备时,将状态标志信息取至CPU进行分析。
  3. 程序查询输入/输出方式
    程序查询方式是利用程序控制实现CPU和外部设备之间的数据传送。程序执行的动作
    如下:
    (1)先向I/O设备发出命令字,请求进行数据传送。
    (2)从I/O接口读入状态字。
    (3)检查状态字中的标志,看看数据交换是否可以进行。
    (4)假如这个设备没有准备就绪,则第(2)、第(3)步重复进行,一直到这个设备准备好交换数据,发出准备就绪信号“Ready”。
    (5)CPU从I/O接口的数据缓冲寄存器输入数据,或者将数据从CPU输出至接口的数据缓冲寄存器。与此同时,CPU将接口中的状态标志复位。

8.3 程序中断方式

8.3.1 中断的基本概念

中断是一种程序随机切换的方式,有时也统称为异常。

中断方式的典型应用包括:

  1. 实现CPU与外界进行信息交换的握手联络。
  2. 故障处理。
  3. 实时处理。
  4. 程序调度。
  5. 软中断(程序自愿中断)。

8.3.2 中断服务程序入口地址的获取

现代计算机系统中,中断是频繁发生的,这些引起中断的事件被称为中断源。
向量中断 向量中断是指CPU响应中断后,由中断机构自动将相应中断源的中断向量地址送入CPU,由其指明中断服务程序入口地址并实现程序切换的中断方式。
查询中断 在查询中断方式中,硬件不直接提供中断服务程序的入口地址,而是为所有中断服务程序安排一个公共的中断服务程序。

8.3.3 程序中断方式的基本I/O接口

在这里插入图片描述

  • 准备就绪触发器(RD) 一旦设备做好一次数据的接收或发送,便发出一个设备动作完毕信号,使RD标志置“1”。在中断方式中,该标志用作中断源触发器,简称中断触发器。
  • 允许中断触发器(EI) 可以用程序指令来置位。EI为“1”时,某设备可以向CPU发出中断请求;EI为“0”时,不能向CPU发出中断请求,这意味着某中断源的中断请求被禁止。设置EI标志的目的,就是通过软件来控制是否允许某设备发出中断请求。
  • 中断请求触发器(IR) 它暂存中断请求线上由设备发出的中断请求信号。当IR标志为“1”时,表示设备发出了中断请求。
  • 中断屏蔽触发器(IM) 是CPU是否受理中断或批准中断的标志。IM标志为“0”时,CPU可以受理外界的中断请求,反之,IM标志为“1”时,CPU不受理外界的中断请求。

8.3.4 单级中断

  1. 单级中断的概念
    根据计算机系统对中断处理的策略不同,可分为单级中断系统和多级中断系统。单级中断系统是中断结构中最基本的形式。

  2. 单级中断源的识别
    如何确定中断源,并转入被响应的中断服务程序入口地址,是中断处理首先要解决的问题。 在单级中断中,采用串行排队链法来实现具有公共请求线的中断源判优识别。

  3. 中断向量的产生
    当CPU识别出某中断源时,由硬件直接产生一个与该中断源对应的向量地址,很快便引入中断服务程序。

8.3.5 多级中断

  1. 多级中断的概念
    多级中断系统是指计算机系统中有相当多的中断源,根据各中断事件的轻重缓急程度不同而分成若干级别,每一中断级分配给一个优先权。
  2. 多级中断源的识别
    在多级中断中,每一级均有一根中断请求线送往CPU的中断优先级排队电路,对每一级赋予了不同的优先级。显然这种结构就是独立请求方式的逻辑结构。

8.3.6 Pentium中断机制

  1. 中断类型
    Pentium有两类中断源,即中断和异常。
    中断 通常称为外部中断,它是由CPU的外部硬件信号引发的。
    异常 通常称为异常中断,它是由指令执行引发的。
  2. 中断服务子程序进入过程
    中断服务子程序的入口地址信息存于中断向量号检索表内。实模式为中断向量表IVT,保护模式为中断描述符表IDT。
  3. 中断处理过程
    上面说明了中断向量号的获取方式,也说明了实模式与保护模式下进入中断服务子程序的途径。

8.4 DMA方式

8.4.1 DMA的基本概念

直接内存访问(DMA),是一种完全由硬件执行I/O交换的工作方式。在这种方式中,DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存和I/O设备之间进行。

8.4.2 DMA传送方式

DMA技术的出现,使得外围设备可以通过DMA控制器直接访问内存,与此同时,CPU可以继续执行程序。

  1. 成组连续传送方式
    当外围设备要求传送一批数据时,由DMA控制器发一个停止信号给CPU,要求CPU放弃对地址总线、数据总线和有关控制总线的使用权。
  2. 周期挪用方式
    在这种DMA传送方法中,当I/O设备没有DMA请求时,CPU按程序要求访问内存;一旦I/O设备有DMA请求,则由I/O设备挪用一个或几个内存周期。
  3. 透明DMA方式
    如果CPU的工作周期比内存存取周期长很多,则采用交替访内的方法可以使DMA传送和CPU同时发挥最高的效率。

8.4.3 基本的DMA控制器

  1. DMA控制器的基本组成
    一个DMA控制器,实际上是采用DMA方式的外围设备与系统总线之间的接口电路。
    在这里插入图片描述
    内存地址计数器 用于存放内存中要交换的数据的地址。
    字计数器 用于记录传送数据块的长度(多少字数)。
    数据缓冲寄存器 用于暂存每次传送的数据(一个字)。
    DMA请求标志 每当设备准备好一个数据字后给出一个控制信号,使“DMA请求”标志置“1”。
    控制/状态逻辑 由控制和时序电路以及状态标志等组成,用于修改内存地址计数器和字计数器,指定传送类型(输入或输出),并对“DMA请求”信号和CPU响应信号进行协调和同步。
    中断机构 当字计数器溢出时(全0),意味着一组数据交换完毕,由溢出信号触发中断机构,向CPU提出中断报告。
  2. DMA数据传送过程
    DMA的数据块传送过程可分为三个阶段:传送前预处理;正式传送;传送后处理。
    在这里插入图片描述

8.4.4 选择型和多路型DMA控制器

  1. 选择型DMA控制器
    它在物理上可以连接多个设备,而在逻辑上只允许连接一个设备。

在这里插入图片描述
2. 多路型DMA控制器
选择型DMA控制器不适用于慢速设备。但是多路型DMA控制器却适合于同时为多个慢速外围设备服务。
在这里插入图片描述

8.5 通 道 方 式

8.5.1 通道的功能

  1. 通道的功能
    DMA控制器的出现已经减轻了CPU对数据输入输出的控制,使得CPU的效率有显著的提高。而通道的出现则进一步提高了CPU的效率。

  2. CPU对通道的管理
    CPU是通过执行I/O指令以及处理来自通道的中断,实现对通道的管理。

  3. 通道对设备控制器的管理
    通道通过使用通道指令来控制I/O模块进行数据传送操作,并以通道状态字接收I/O模块反映的外围设备的状态。

8.5.2 通道的类型

  1. 选择通道
    选择通道又称高速通道,在物理上它可以连接多个设备,但是这些设备不能同时工作,在某一段时间内通道只能选择一个设备进行工作。
  2. 多路通道
    多路通道又称多路转换通道,在同一时间能处理多个I/O设备的数据传输。它又分为数组多路通道和字节多路通道。

8.5.3 通道结构的发展

一种是通道结构的I/O处理器,通常称为输入输出处理器(IOP)。IOP可以和CPU并行
工作,提供高速的DMA处理能力,实现数据的高速传送。
另一种是外围处理机(PPU)。PPU基本上是独立于主机工作的,它有自己的指令系统,完成算术/逻辑运算,读/写主存储器,与外设交换信息等。

8.6 通用I/O标准接口

8.6.1 并行I/O标准接口SCSI

SCSI是小型计算机系统接口的简称,其设计思想来源于IBM大型机系统的I/O通道结构,目的是使CPU摆脱对各种设备的繁杂控制。

  1. SCSI接口总线由8条数据线、一条奇偶校验线、9条控制线组成。
  2. 总线时钟频率为5MHz,异步方式数据传输率是2.5MB/s,同步方式数据传输率是5MB/s。
  3. SCSI接口总线以菊花链形式最多可连接8台设备。
    在这里插入图片描述
  4. 每个SCSI设备有自己的唯一设备号ID0~7。
  5. 所谓SCSI设备是指连接在SCSI总线上的智能设备,即除主适配器HBA外,其他SCSI设备实际是外围设备的适配器或控制器。
  6. 由于SCSI设备是智能设备,对SCSI总线以至主机屏蔽了实际外设的固有物理属性(如磁盘柱面数、磁头数等参数),各SCSI设备之间就可用一套标准的命令进行数据传送,也为设备的升级或系统的系列化提供了灵活的处理手段。
  7. SCSI设备之间是一种对等关系,而不是主从关系。

8.6.2 串行I/O标准接口IEEE 1394

  1. 1394性能特点
    随着CPU速度达到上百兆赫,存储器容量达到GB级,以及PC、工作站、服务器对快速I/O的强烈需求,工业界期望能有一种更高速、连接更方便的I/O接口。
    (1)数据传送的高速性。
    (2)数据传送的实时性。
    (3)体积小易安装,连接方便。
  2. 1394配置
    1394采用菊花链式配置,但也允许树形结构配置。
    在这里插入图片描述
  3. 1394协议集
    1394的一个重要特色是,它规范了一个三层协议集,将串行总线与各外围设备的交互动作标准化。
    在这里插入图片描述

8.6.3 I/O系统设计

I/O系统设计要考虑两种主要规范:时延约束和带宽约束。


总结

各种外围设备的数据传输速率相差很大。如何保证主机与外围设备在时间上同步,则涉及外围设备的定时问题。一个计算机系统的性能,不仅取决于CPU,还取决于I/O速度。

相关文章:

  • springboot基于java的康泰小区物业管理系统的设计与实现毕业设计源码101926
  • java查看对象真实地址和哈希值的工具类
  • SOLIDWORKS直播课:解锁3DE协同设计平台的“云端结构设计角色”
  • 简单的 手写 服务器
  • 01 RocketMQ - NameServer 源码分析
  • 【CSS】数据面板
  • 记一次盖茨木马应急响应
  • 兔老大的系统设计(二)定时系统(延时队列)
  • STM32cubeMX详细教学及多个小项目合集(包含RTOS)
  • 车联网白皮书(2021.12)中国信息通信研究院
  • 【中秋征文】使用Python中秋节嫦娥投食小游戏《千里婵娟》
  • OSI网络七层模型和TCP/IP模型
  • 猿创征文|Linux环境Redis部署及最佳实践
  • 猿创征文|C++来时路 _ 重温经典之C++类和对象 | 三大特性之一 - 封装 | 腾讯面试题
  • VueJS面试常见的300道题(英文版)
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 2017-08-04 前端日报
  • css的样式优先级
  • download使用浅析
  • Invalidate和postInvalidate的区别
  • KMP算法及优化
  • Mysql优化
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • react 代码优化(一) ——事件处理
  • Vue.js-Day01
  • 检测对象或数组
  • 讲清楚之javascript作用域
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 用jQuery怎么做到前后端分离
  • 运行时添加log4j2的appender
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • 阿里云移动端播放器高级功能介绍
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​iOS实时查看App运行日志
  • ​插件化DPI在商用WIFI中的价值
  • #pragam once 和 #ifndef 预编译头
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • (LeetCode C++)盛最多水的容器
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (ZT)出版业改革:该死的死,该生的生
  • (差分)胡桃爱原石
  • (二)Linux——Linux常用指令
  • (二开)Flink 修改源码拓展 SQL 语法
  • (理论篇)httpmoudle和httphandler一览
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • ***利用Ms05002溢出找“肉鸡
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .Net - 类的介绍
  • .NET 4.0中的泛型协变和反变
  • .NET 4.0中使用内存映射文件实现进程通讯