560 likes | 798 Views
第 11 章. 输入输出系统. 本章主要内容. 计算机输入输出系统概述 计算机总线的功能与组成 计算机输入输出接口概述 常用的输入输出方式概述. 计算机输入输出系统概述. 输入输出系统的作用 连通计算机的各个功能部件和设备,并在它们之间实现数据交换 输入输出系统的组成 硬件部分主要由计算机总线和输入输出接口两部分组成,软件方面需要操作系统的支持 系统复杂多变的原因 太多的 CPU 系列和型号:运行速度、处理功能、接口逻辑各不相同;更多的外围设备:运行原理、提供的功能、读写速度、接口逻辑千差万别
E N D
第11章 输入输出系统
本章主要内容 • 计算机输入输出系统概述 • 计算机总线的功能与组成 • 计算机输入输出接口概述 • 常用的输入输出方式概述
计算机输入输出系统概述 • 输入输出系统的作用 • 连通计算机的各个功能部件和设备,并在它们之间实现数据交换 • 输入输出系统的组成 • 硬件部分主要由计算机总线和输入输出接口两部分组成,软件方面需要操作系统的支持 • 系统复杂多变的原因 • 太多的CPU系列和型号:运行速度、处理功能、接口逻辑各不相同;更多的外围设备:运行原理、提供的功能、读写速度、接口逻辑千差万别 • 不同的用户、不同的应用场合提出众多不同的使用要求,无法使用一种方式、一套方法全面解决问题
计算机输入输出系统概述 • 解决问题的途径 • 建立公用的交换信息的通路,提供各部件协调使用通路的规则,这个通路就是计算机总线 • 在众多不同的CPU和各种不同的外围设备之间设置功能电路,解决二者之间的连接、沟通、匹配、缓冲等,这个功能电路就是设备接口卡(输入输出接口) • 支持多个I/O设备并发执行输入输出操作,降低输入输出操作对CPU干预的需求,采用多种不同的输入输出方式,例如中断方式、DMA方式等
本章主要内容 • 计算机输入输出系统概述 • 计算机总线的功能与组成 • 计算机输入输出接口概述 • 常用的输入输出方式概述
事务协议 时序和信号规范 一组导线 电气信号规范 接口的物理/机械特性 计算机总线概述 • 总线是计算机各个部件之间传输信息的公共通路,包括传输数据信号的逻辑电路、管理信息传输协议的逻辑线路和物理连线。
计算机总线概述 • 在任何时刻,只可以有一个部件向总线上发送信息,但却可以有一个或多个部件同时接收信息。控制向总线发送信息通常用带有高阻态输出的选通门实现。 总线 低 高 高 A B C
地址总线 AB CPU I/O 接 口 输 出 设 备 I/O 接 口 存 储 器 输 入 设 备 数据总线 DB 控制总线 CB 计算机总线概述 • 承担不同功能的三种总线 • 数据总线:传输数据信息,频率与宽度正比于吞吐量 • 地址总线:传输地址信息,宽度决定了内存寻址空间 • 控制总线:给出总线周期类型、I/O操作完成时刻、DMA周期、中断等有关的控制信号等
计算机总线概述 • 总线周期以及相关概念 • 总线周期:通过总线完成一次内存读写操作或者完成一次I/O设备读写操作所需的时间,一般由地址时间和数据时间两个时间段组成 • 地址时间:CPU向内存或IO设备送出地址信息到地址总线 • 数据时间:CPU完成数据读写 • 周期类型:一般分为内存读周期、内存写周期、 I/O读周期、 I/O写周期四种类型 • 总线的等待状态:由于被读写的部件或设备速度慢,一次数据时间内不能完成读写操作,就要增加一个或多个数据时间继续完成读写操作,在这增加的数据时间里,称总线处于等待状态。它影响系统的运行效率,降低系统的性能。
地址线 地址 数据线 数据 寻址 信息传送 总线占用期间 单周期数据传输方式 地址线 无效 地址 ... 数据线 数据1 数据2 数据3 数据n 寻址 信息传送 总线占用期间 猝发数据传输方式 计算机总线概述 • 正常总线周期:每次数据传输都由一次地址时间和一次数据时间组成。(单周期数据传输方式) • Burst总线周期:数据传输由一次地址时间和多次数据时间组成,即给出一次地址信息,连续传送多个数据。(猝发数据传输方式)
计算机总线的结构 • 单总线结构:早期的计算机,如美国 DEC 公司PDP-11 机只使用一组总线,所有的部件和设备都接在这唯一的总线上,包括数据总线,地址总线,控制总线,其优点是结构简单,成本低廉,缺点是运行效率低。 总线 输出 设备 输入 设备 CPU 主存
计算机总线的结构 • 总线性能(数据输入/输出的吞吐量)对计算机系统总体性能有重大的影响,提高总线性能,一是尽量提高CPU总线本身的速度,二是从总线结构多提供几组总线(铁路可以修复线,公路可以有多条,计算机当然也可以提供几组总线)。 • 多总线结构 • 双总线:是指是指在计算机中配置两组总线,即在处理机总线上通过一块扩展总线的控制线路,提供出另外一组总线,称为输入/输出总线,比较常用的有工业标准总线(ISA)和扩展的工业标准总线(EISA),主要用于连接一般的输入/输出设备。 • 三总线:是指在计算机中配置3组总线,即在处理机总线上通过一块被称为PCI桥的控制线路,提供出一组高性能的局部总线,称为PCI总线,而把原来的ISA总线和EISA总线从处理机总线上断开,并通过IO控制线路连接到这里的PCI总线上。把一些慢速的输入/输出设备接到EISA(ISA)总线上。
计算机总线的结构 • 几种常用的标准总线 • ISA(Industrial Standard Architecture)总线:工业标准结构总线,8位(后来16位)数据线,20位(后来24位)地址线,工作频率8.33MHz。 • EISA(Extended Industrial Standard Architecture )总线:扩展工业标准结构总线,16或32位数据线,32位地址线,工作频率8.33MHz,支持Burst方式传输数据。 • VESA(Video Electronics Standard Association)总线:32位局部总线,连接显卡、网卡等,最高工作频率33MHz。没有严格标准,各厂家产品兼容性差,针对80486。 • PCI( Peripheral Component Interface)总线:外围部件互连总线(局部总线),V1.0支持33MHz工作频率,32位地址和数据线互用;V2.1支持66MHz工作主频,64位地址和数据线互用。
计算机总线的结构 处理机总线 CPU 主存 4B~8B 33MHz 双总线结构 扩展总线 控制线路 8.33MHz 1 , 2 , 4 B ISA / EISA . . . I/O设备1 I/O设备2
三总线结构 处理机总线 主存 CPU 66MHz 4B~8B PCI桥 33MHz 4B PCI BUS 接快速设备 I/O设备3 I/O设备4 扩展总线 控制线路 8.33MHz 1 , 2 , 4 B ISA / EISA 接慢速设备 . . . I/O设备1 I/O设备2 计算机总线的结构
并口连接器 鼠标键盘 USB 接口 串口连接器 ROM BIOS CPU插槽 主板 电源 插座 ISA插 槽 北桥 芯片组 PCI插槽 AGP插 槽 内存插槽 南桥 芯片组 软驱接口 IDE接口 现代PC机的结构
Pentium III L2 Cache 550MHz 550MHz L1 Cache 处理机总线 100MHz 显 示 器 100MHz 内存条 AGP 北桥 440BX 显卡 66MHz PCI 插槽 PCI 总线 33MHz USB IDE1 MODEM 硬盘 光驱 软驱 键盘鼠标 打印机 南桥 PIIX4E IDE2 CMOS & RTC ISA总线 8MHz ISA 插槽 COM1 超级I/O COM2 LPT1 ROM BIOS
总线仲裁与数据传输控制 • 总线主设备与从设备 • 总线主设备(bus master) :申请总线使用权并发出命令控制总线运行的设备,如CPU等。 • 总线从设备(bus slave):只能响应主设备发出的命令并执行读写操作的设备,如内存等。 • 总线控制器(总线仲裁器) • 执行总线仲裁功能,解决多个总线主设备竞争使用总线的管理问题,它是通过判别主设备使用总线的优先级(bus priority)来完成的,决定多个申请使用总线的主设备中哪个获取总线的使用权,保证任何时刻只有一个总线主设备使用总线传输数据。 • 总线仲裁方式 • 集中式控制:总线控制逻辑集中在一个部件上(如CPU) • 分布式控制:总线控制逻辑分散在多个总线部件上
总线仲裁与数据传输控制 • 集中式仲裁之一:串行链式查询方式,优点是结构简单、易于扩展;缺点是优先级固定,链式线路故障会损害系统运行质量。
总线仲裁与数据传输控制 • 集中式仲裁之二:独立请求方式,可以采用多种仲裁策略,优先级灵活、响应速度快、结构复杂。
总线仲裁与数据传输控制 • 分布式仲裁:(1)各主模块有自己的仲裁号和仲裁逻辑。(2)以优先级仲裁策略为基础。(3)过程:首先把自己的仲裁号发送到仲裁总线上,仲裁逻辑将仲裁总线上的仲裁号与自己的仲裁号比较,若自己的优先级低,则请求失败,撤除自己的仲裁号,仲裁总线上最终保留优先级最高的仲裁号。
总线仲裁与数据传输控制 • 数据传输控制方式:解决的是通信双方交换数据过程中在时间上的配合关系,也就是同步问题。可以分为同步通信与异步通信 • 同步通信 • 是指在总线上传送数据时,通信双方使用同一个时钟信号进行同步,这个时钟信号通常可以由CPU的总线控制逻辑部件提供,称为总线时钟。此种方式逻辑简单,可以有比较高的数据传输率。 • 异步通信 • 是指在总线上传送数据时,允许通信双方各自使用自己的时钟信号,采用“应答方式”(握手方式)解决数据传输过程中的时间配合关系,而不是共同使用同一个时钟信号进行同步。此种方式便于实现不同速度部件之间的数据传送。
时钟 同步传送时序图 读 地址 应答 数据 总线仲裁与数据传输控制 • 同步通信步骤:(1)主设备在第1个时钟周期开始处发出地址和读信号,地址和控制信号有效,(2)从设备接收后在下一个时钟周期开始处把数据信号及应答信号放到总线上,(3)在下一个时钟周期到来时,各信号恢复,完成总线周期。
读 异步传送时序图 地址 MSYN 数据 SSYN 总线仲裁与数据传输控制 • 异步通信步骤:(1)主设备先发出地址和读信号,待稳定后再发出主同步信号MSYN,表示地址和控制信号有效,(2)从设备检测到同步信号后发出数据,待数据稳定后再发出从同步信号SSYN,表示数据信号有效,(3)主设备接收数据。
总线参数选择 选择 提高性能 降低成本 总线宽度 将地址和数据线分开 互用地址和数据线 数据宽度 越宽越快(32位) 越窄越廉价(8位) 传送大小 多字可减少总线开销 单字传送简单 主设备 多主设备(仲裁) 单主设备 时钟 同步 异步
本章主要内容 • 计算机输入输出系统概述 • 计算机总线的功能与组成 • 计算机输入输出接口概述 • 常用的输入输出方式概述
输入输出接口基本功能 • 提供主机识别(指定、找到)要用的I/O设备的支持,为每个设备规定几个地址码或编号。 • 对计算机的主存储器与I/O设备按统一的格式和方法来分配与安排地址编码,指令访问的到底是主存储器还是I/O设备,是由用到的地址范围决定的; • 设置并使用专用的输入(IN)输出(OUT)指令访问I/O设备。由于I/O设备的数量比较少,就可以用比较少的地址为他们编址,该地址被称为I/O端口地址。这种方案被大部分计算机普遍采用。 • 建立主机和设备之间的控制与通信机制,接收处理器(主设备)的命令,并提交给外部设备,同时,为主设备提供外部设备的状态。 • 提供主机和设备之间信息交换过程中的数据缓冲机构,如输入数据缓冲寄存器和输出数据缓冲寄存器等。 • 提供主机和设备之间信息交换过程中的其他特别需求支持,屏蔽外部设备的差异。(例如,当主机和设备的信号幅度不同时的信号电平转换功能,数据传送中的格式(并行、串行)转换功能 )
通用可编程接口 • 通用性 • 能有多种用法与输入输出功能,能适用于多种外设 • 可编程 • 能通过指令指定接口的功能和运行控制参数 • 接口内部组成 • 设备识别电路:对指令中给出的I/O端口地址译码 • 命令寄存器:存CPU发送的控制命令 • 状态寄存器:设备设置其值,CPU读取 • 数据缓冲寄存器:I/O数据缓冲,解决速度匹配 • 中断电路:处理中断请求、屏蔽和判优等 • 其他电路:电平转换及串行/并行转换电路等
常用接口概述 • 串行接口 • 只需要一对信号线来传输数据,主要用于传输速度不高,传输距离较长的场合。典型芯片Intel 8251(详细介绍见教材) • 目前几乎所有的计算机都采用EIA RS-232C作为串行接口标准,包括按位串行传输的电气和机械方面的规定。RS-232C接口有25根线,数据传输率在50、75至19200bps之间。 • 对串行接口的使用是通过对其命令寄存器和状态寄存器进行设置工作的。工作时先对接口命令寄存器发命令,设置工作方式;然后再发命令使之开始工作;工作期间通过状态寄存器了解串口工作状态。 • 并行接口 • 串行接口按位传送数据,速度慢,而且主机是按字或者字节处理数据,使用串行接口需要进行并串的转换。对速度较高的设备,采用并行数据传输方式比较合适。典型芯片Intel 8255
常用接口概述 • USB接口 • USB:通用串行总线(Universal Serial Bus) • USB由一个插在PCI总线上的根集线器组成,它的电缆接口可以连接I/O设备或者扩展集线器。 • USB中有4根导线,两根数据线,一根电源,一根地线。V1.1总线带宽12Mbps,V2.0总线带宽400Mbps。 • USB接口特点 • 不必打开机箱来安装新的输入输出设备 • 只需要一根电缆线就可以将所有设备连接起来 • 输入/输出设备可以从电缆上得到电源 • 单台计算机最多可以连接127个设备 • 系统能支持实时设备(声卡、电话) • 可在计算机运行时安装设备 • 安装设备不必重新启动计算机
常用接口概述 • IDE(Integrated Drive Electronics)、EIDE接口 • 广泛应用于PC机中,IDE最多连接2个IDE设备,EIDE最多连接4个IDE设备; • IDE读写磁盘的数据传输率一般不超过1.5MB/s,EIDE可达12~18MB/s; • IDE接口连接的磁盘设备容量不超过528M,EIDE无此限制。 • EIDE接口通常接在PCI总线上,数据传送带宽由IDE的8位扩展到32位。 • SCSI(Small Computer System Interface)接口 • 应用于工作站和PC服务器中,成为主机和智能外设连接的统一I/O接口,可以控制磁盘驱动器、磁带机、光盘、打印机、扫描仪等外设 • SCSI的发展以及相关标准见下页列表
常用接口概述 • IEEE 1394串行接口 • 高速率,实时性好:1394-1995规定200Mbps ~ 400Mbps,1394b规定800Mbps ~ 3.2Gbps; • 最多可以连接63个设备,即插即用,支持热插拔。 • AGP 接口 • 把主存和显存通过芯片组(北桥)直接连接,提高数据传输率;总线宽度为32位,时钟频率为66MHz,最高传输率为528Mbps • PCMCIA接口 • 广泛应用于笔记本电脑的接口,I、II、III三种类型插槽(厚度不同,长宽相同)。 • 通常用来插上存储器(Flash Memory)卡或Fax/Modem/Network卡等。
本章主要内容 • 计算机输入输出系统概述 • 计算机总线的功能与组成 • 计算机输入输出接口概述 • 常用的输入输出方式概述
常用的输入输出方式 • 基本概念 • 在计算机主机和I/O设备之间采用不同的控制方式进行数据传送,各种方式的性能、价格、解决问题的重点不同。 • 常用的控制方式 • 程序直接控制方式 • 程序中断传送方式 • 直接存储器存取方式 • I/O通道控制方式 • 外围处理机方式
程序直接控制方式 • 基本概念 • 用户程序直接使用I/O指令完成输入输出操作,由CPU查询设备的运行状态来控制数据传送过程 • 控制过程 • 开始传送数据前CPU检测设备是否准备好(通过读取接口中的状态寄存器内容实现),若设备已经准备好则启动这次传送;若没有准备好,则重复检测设备 • 存在问题 • 缺点是严重影响系统性能,CPU与外设只能串行工作,CPU资源浪费,降低系统效率 • 如果设备出现故障,CPU无法获取正确的设备状态信息,则计算机将可能进入“死机”局面
程序直接控制方式 A 2000 2000: MVRD R2, 000A MVRD R0, 0030 2004: OUT 80 DEC R2 JRZ 200E PUSH R0 2008: IN 81 SHR R0 JRNC 2008 POP R0 INC R0 JR 2004 200E: RET CPU方: 往接口送出要输出的字符 查询接口状态(循环等待) 直到外设已经输出该字符 输出下一个字符 外设方: 接收接口中的字符往外设中输出字符 处理完后,置状态寄存器 接收下一个字符
程序中断传送方式 • 基本概念 • 通常在程序中安排一条指令,启动外设,然后CPU继续执行程序。当外设完成数据传送准备后,向CPU发“中断”请求信号,CPU接到这一信号,在结束一条指令执行过程、下一条指令尚未开始的时刻,停下正在运行的程序,保存好运行的现场信息,转去完成数据传送工作,通常传送一个字节或字,传送完毕之后返回原来的程序继续执行。 • 工作特点 • 系统在启动外设后到数据准备完成这段时间内CPU一直在执行程序,而不是处于等待状态,一定程度上实现了CPU与外设的并行工作。 • 多台外设启动后可以同时进行数据交换的准备工作,若多台外设同时发出中断请求信号,CPU可以按照一定的优先顺序进行处理,从而实现了外设的并行工作。
直接存储器存取方式 • 主要用于快速设备和主存储器成批交换数据的场合。在这种应用中,处理问题的出发点集中到两点:一是不能丢失快速设备提供出来的数据,二是进一步减少快速设备入出操作过程中对CPU的打扰。 • 数据的传输过程可以交由一块专用的DMA接口卡来控制,让DMA卡代替CPU控制在快速设备与主存储器之间直接传输数据,每传输一个数据只需一个总线周期即可。 • 从共同使用总线的角度看,DMA和CPU成为竞争对手关系。当完成一批数据传输之后,快速设备还是要向CPU发一次中断请求,报告本次传输结束的同时,“请示”下一步的操作要求。
I/O通道控制方式 • 基本概念 • I/O通道是计算机系统中代替CPU管理控制外设的独立部件,是一种能执行有限I/O指令集合——通道命令的I/O处理机。 • 一对多的连接关系,适应不同速度、不同种类的外部设备,可并行工作。 • 通道功能 • 根据CPU要求选择某一指定外设与系统相连,向该外设发出操作命令,进行初始化 • 指出外设读/写信息的位置以及与外设交换信息的主存缓冲区地址 • 控制外设与主存之间的数据交换 • 指定数据传送结束时的操作内容,检查外设状态
外围处理机方式 • 主要应用于大型高性能计算机系统中,使用微小型通用计算机协助主处理机完成输入输出操作。 • 不但可以完成前面讲的I/O通道的I/O控制功能,还可以完成更加复杂多样的附加操作功能,例如码制转换、格式处理、数据块的检错纠错处理,承担I/O系统与设备的诊断维护、人机交互处理等处理功能。
程序中断输入输出方式 • 中断的概念 • 是由I/O设备或其他非预期的急需处理的事件引起的,它使CPU暂时中断现在正在执行的程序,而转至另一服务程序去处理这些事件,处理完成后再返回原程序。 • 中断的作用 • CPU 与 I/O 设备并行工作 • 硬件故障报警与处理 • 实现人机交互联系 • 实现多道程序分时运行 • 实现实时处理
程序中断输入输出方式 • 中断源 • 能引起中断的事件或能发出中断请求的设备 • 中断源分类 • 硬件中断:由各种输入/输出设备、一些接口卡等引起的中断被称为外(部)中断,而由处理机硬件故障、程序运行出错等引起的中断被称为内(部)中断,例如非法指令、算术运算溢出、校验错、电源故障等都会产生内中断。 • 软件中断:由写在程序中的语句(例如用户程序中的系统调用指令,trap指令等)引起的一段程序的执行过程,它很类似于一次中断处理过程。 • 软件中断是严格的与程序运行过程同步的,而硬件中断则是随机发生的。
程序中断输入输出方式 • 中断触发器 • 当中断源发生引起中断的事件时,先将它保存在设备控制器的“中断触发器”中,即将“中断触发器”置“1”,向CPU发出“中断请求”信号。每个中断源有一个中断触发器,全机的多个中断触发器构成中断寄存器。 • 中断屏蔽 • 当产生中断请求后,用程序方式有选择的封锁部分中断,而允许其他部分中断仍得到响应,称为中断屏蔽。实现方法是为每个中断源设置一个中断屏蔽触发器来屏蔽该设备的中断请求。 • 从CPU要不要接收中断请求,从能不能限制某些中断发生的角度,可以把中断分成可屏蔽中断和不可屏蔽中断。可以被CPU通过指令限制其发出中断请求的中断属于可屏蔽中断,例如对某些外围设备就可以在一段时间里执行中断屏蔽;一些中断是不允许执行屏蔽中断的,例如电源掉电中断,称这类中断为不可屏蔽中断。
程序中断输入输出方式 • 禁止中断 • 如果由于某种事件的存在,在很短的一小段时间内,不允许CPU接收任何一个中断请求(禁止中断),通常是在CPU内部设置一个“中断允许”触发器,只有该触发器被置为“1”状态,才允许CPU响应中断请求,该触发器被置为“0”状态,则禁止CPU响应中断请求。为此,在指令系统中,要给出“开中断”指令(置“1”中断允许触发器)和“关中断”指令(清“0”中断允许触发器)。 • 中断优先级 • 为了管理众多的中断请求,需要按每个(类)中断处理的急迫程度,对中断进行分级管理。在有多个中断请求时,总是首先响应与处理优先级最高的一个中断请求。
程序中断输入输出方式 • 中断嵌套 • 是指在处理中断的过程中又可以响应更高优先级中断的办法。如果CPU正在处理优先级低的一个中断,又来了优先级更高的一个中断请求,则停止低优先级的中断处理过程,以便及时响应更高优先级的中断请求,在该高优先级中断处理完成之后,接下来再继续处理低优先级的中断,在该低优先级中断处理完成之后,返回去接着执行主程序。
程序中断输入输出方式 • 中断请求 • 中断源给CPU发控制信号,通过中断源的中断触发器完成(但受中断屏蔽触发器的制约) • 中断响应 • 允许中断、CPU结束一条指令执行、中断优先级比当前处理任务高 • 中断处理
程序中断输入输出方式 • 判别中断源的方法 • 多个中断源发出中断请求时,首先需要找出其中中断优先级最高的那个中断源 • 采用软件方案时,是用程序检查中断字的内容实现。全部的中断触发器构成中断寄存器,其内容称为中断字。当中断源数量很多时,中断字也就很长,为了管理方便,通常把所有中断按不同类别、性质取分为若干个中断优先级,每个中断优先级中安排多个中断源,在确定中断优先次序时,先查最高中断优先级,再到这一中断优先级中找出中断优先次序最高的中断源。 • 采用硬件方案时,一般选用串行链式排队法,需要有比较、判断中断的优先级的逻辑线路(见书上例子)
程序中断输入输出方式 • 定位中断服务程序入口地址 • 一是在中断总控程序中用专用的INTA指令接收中断设备编码,再用该设备编码到指定的内存区中找到中断服务程序的入口地址。 • 另外一种是中断向量法,由每个中断源直接提供中断向量,用这一中中断向量为地址到中断向量表中取出中断服务程序的入口地址。中断向量表是由每个中断源的中断服务程序的入口地址组成的一张列表,通常被存放在内存中的指定的一片区域中。