第七章 计算机输入输出系统与 接口技术
本章主要内容 计算机的输入输出系统 微型计算机的外部设备 微型计算机的总线技术 基本输入/输出接口 微型计算机的中断技术 微型计算机中的DMA通道
计算机的输入/输出系统 输入输出系统的基本组成 适配器电路 接口管理程序 输入/输出设备 适配器电路及其相应的程序称为接口 将用户编制的程序(或数据)输入主机内 将运算结果返回给用户 实现I/O系统与主机之间协调地工作 输入/输出设备
计算机 I/O 系统结构图 外存设备接口 硬盘、磁盘、磁带、光盘 显示/声音设备接口 显示器、音箱 工业控制接口 数/模、模/数转换器 通信设备接口 输入设备控制器 输出设备控制器 CPU 和 主存 硬盘、磁盘、磁带、光盘 显示器、音箱 数/模、模/数转换器 调制解调器、网卡 键盘、鼠标、光笔 激光打印机、针式打印机 计算机 I/O 系统结构图
设备编码的方法 统一编址 用主存的低地址中256个字节作为设备访问的地址,采用一般的访存指令LDA,STA就可以实现对设备的访问 特点 占用一部分存储空间,减少了用户使用主存的范围 不需要专用的I/O指令 I/O独立编址 主存的地址和I/O的地址是分开的,需要专门的指令进行访问,如IN,OUT 不占用主存空间 但需要专用的I/O指令
I/O接口电路 I/O接口电路的作用 实现设备的辨识和选择 实现主机和设备之间的速度匹配 实现串 -- 并格式的转换 实现电平的转换 计算机对设备的使用是通过接口发送命令实现的,接口需支持系统的命令 接口监视设备的工作状态,并保存状态信息,供CPU查询
总线连接方式的接口电路 数据线:是I/O与主机之间数据代码的传送线,根数一般等于存储字长的位数或字符的位数 设备选择线:又称为地址线(设备号可以看作是地址号),可以有一组,也可以有两组,一组用于主机向设备发送设备码,另一组用于设备向主机回送设备码。 控制线:包括命令线和状态线 命令线:用以传输CPU向设备发送的各种命令 状态线:I/O设备的状态报告给主机。
I/O接口 设备 …………. I/O总线 I/O总线和接口部件 :数据线 :状态线 :地址线 :命令线
接口的功能和组成 识别设备 将命令通过接口送到设备 CPU发送一个设备码,各设备的接口电路将该设备码和自身的设备码进行比较,如果一致的话,向CPU回送该设备码,然后系统总线由该设备占用。 一般来讲,一次只能选择一个设备,该设备被选择后,系统总线由该设备占用 将命令通过接口送到设备 CPU发送命令,接口中设有命令缓冲寄存器和命令译码器。
传送数据的功能 反映设备工作状态的功能 接口处于主机和外部设备之间,通过接口才能实现主给与外部设备之间的数据传送 接口中设置有数据缓冲寄存器,用以将数据暂存在接口内 反映设备工作状态的功能 接口内设置一些反映设备工作状态的触发器,将设备的运行情况及时地反馈到系统
接口电路的数据传送方式 接口的分类—按传输二进制位数进行分类 并行接口 一次传送一个字节或一个字 例如:打印机 串行接口 一次传送一位二进制代码 主要用于驱动传输距离较远的设备
接口的分类 – 按I/O与主机信息传送的控制方式 程序查询方式 传输方式简单 工作中一直要占用CPU,极大地影响了CPU的工作效率 中断 消除了程序查询方式中CPU”踏步”的现象,提高了CPU的工作效率 CPU相应中断后,必须要停止现在运行的程序,转入中断服务程序 为了完成I/O与主存之间交换信息,还要占用CPU内部的一些寄存器,也是对CPU资源的浪费
DMA CPU工作效率近一步提高 实现了主存和I/O设备之间的直接数据传输。 通道 用来负责管理I/O设备以及实现主存与I/O设备之间交换信息的部件,它可视为一种具有特殊功能的处理器 通道有专用的通道指令,它能独立地址行用通道指令编写的输入输出程序 不是一个完全独立的处理器,受CPU的I/O指令启动、停止或改变其工作状态,是从属于CPU的一个专用处理器
程序查询的工作方式 保存寄存器的内容 进行初始化的设置:如主机和设备之间交换数据的数目,设置欲传输数据在主存中的首地址 取设备状态标记,看设备是否准备就绪 CPU执行I/O指令,将数据送入到设备接口中的数据缓冲区内,同时将设备的输出状态标记复位 修改内存缓冲区地址计数器 判断数据是否传送完毕,未完成,则重新启动设备继续传输 结束打印传输,执行其它的程序
微型计算机的外部设备 键盘 鼠标 打印机 显示器 多媒体外部设备
微型计算机的总线技术 总线:CPU、主存、I/O各大部件之间的数据传输线 系统总线的组成 数据总线:双向,用于传送数据,一般为8位、16位、32位 地址总线:单向,指定数据所在存储单元的地址或I/O地址 控制总线:主要用于发出各种控制命令,如存储器的读/写命令
总线的分类 数据传输线:包括地址线、数据线、控制线 中断信号线:中断请求线、中断认可线 总线仲裁信号线:总线请求线、总线请求允许线 系统线:电源线、地线、复位线 待扩充线:用于一些特殊的功能,系统扩展或保留给用户使用
总线性能指标 总线带宽:数据总线的根数,体现了总线本身能达到的最高数据传输率 总线的传输率:总线上每秒能传输的最大字节数,用MB/s来表示。 例如:总线的工作频率为33MHz,假设总线的宽度为32位,则总线的传输率为 33M * 32 = 132 MB/s 时钟同步/异步:总线上的数据与时钟同步工作的总线,称为同步总线,否则为异步总线 总线复用:地址总线和数据总线共用一组线路,某一时刻传输地址信号,另一时刻传送数据。
信号线数:地址总线、数据总线、控制总线的总和 总线控制方式:包括并发工作方式、仲裁工作方式 其它:如总线是否能扩展到64位,电源电压是5V还是3.3V
总线的连接方式 单总线结构 多总线结构 CPU、主存和I/O设备都在一组总线上,所有设备共享总线,造成计算机系统的数据传输瓶颈 I/O设备可以和主存之间交换信息而不影响CPU的工作,CPU可以和主存之间交换信息
I/O接口1 I/O接口2 I/O接口n 主存 CPU …… 单总线结构框图 I/O接口 双总线结构框图
总线标准中的 “即插即用” 技术 “即插即用” 技术是自动设置总线的技术,当外部接口卡插到主即接口电路板后立即可用 工作过程 查询过程:BIOS初始化所有的接口,搜索每个接口卡的卡号和所需要的资源 汇总过程:操作系统检查所有的接口的编号和需要的系统资源,进行汇总 分配过程:对汇总的结果,操作系统的资源仲裁程序进行资源的分配,并尽可能地避免冲突 设置过程:将资源配置的结果提供给每个接口卡
几种常用的总线标准 ISA总线标准(工业标准总线结构) 又称AT总线标准。IBM公司为286计算机指定的工业总线标准 特点 总线宽度16位 总线频率为8MHz,最大传输速率为16MB/s 总线没有支持总线仲裁的硬件逻辑,因此它不能支持多台主设备(具有申请总线控制权的设备)
EISA(Extended Industrial Standard Architecture) 在ISA总线基础上扩充开放的总线标准,与ISA总线可以完全兼容。 它从CPU总分离出了总线控制权,是一种具有智能化的总线 时钟频率:8MHz,最大传输速率33MB/s,数据总线为32位,地址总线为32位
PCI局部总线标准 SIG(美国计算机协会专业集团)提出的新一代64为总线标准。与EISA、ISA总线完全兼容 有多级缓冲,可以把一批数据块写入缓冲器中。在这些数据不断写入PCI设备过程中,CPU可执行其它操作 数据线为32位,可扩充到64位,数据传输率达132MB/s~246MB/s。
USB总线标准 特点 可双向传输数据 支持即插即用 传输速度高:12MB/s 内置的电源供给 提供对电话的双路数据支持 高保真音频
基本输入输出接口 80X86系列微机中的I/O接口 I/O指令 OUT DX, AX 向I/O设备传送信息的命令 IN AX, DX 从I/O设备读出信息的命令 AX 用来存放于I/O设备传送的信息 DX 用来存放访问的端口地址 指令中的I/O地址,称为端口。8位端口地址是优先使用的,这样可以减少译码电路的数量。
独立编址I/O INTEL系列的PC机中,I/O传送技术采用的是存储器独立编址 8位端口地址用于驱动主板上的设备,如时钟、键盘 16位端口地址用于驱动串行口、并行口、视频、磁盘驱动器等等 0000H ~ 03FFH为INTEL微机中的系统保留区 0400H ~ FFFFH之间的端口地址一般由用户使用新的外部设备
基本输入输出端口 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 A0 A1 A2 A3 A4 A5 A6 A7 1G 2G GND 电 阻 电 阻 VCC 片选 数据总线
Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 D0 D1 D2 D3 D4 D5 D6 D7 OC CLK 数据总线 VCC GND 片选
8位I/O端口的译码 A B C Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 G1 G2A G2B A0 A1 A2 A3 A4 A5 0E8H 0E9H 0EAH 0EBH 0ECH 0EDH 0EEH 0EFH
16位I/O端口的译码 A B C Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 G1 G2A G2B A0 A1 A2 系统控制线 A7 … A3 0FFF8H 0FFF9H 0FFFAH 0FFFBH 0FFFCH 0FFFDH 0FFFEH 0FFFFH A15 A8 16位I/O端口的译码
设计一个I/O端口译码器,使用一个3-8译码器给出8位I/O端口地址20H、22H、24H、26H、28H、2AH、2CH、2EH的译码信号。 A Y0 B Y1 C Y2 Y3 Y4 G1 Y5 G2A Y6 G2B Y7 A1 A2 A3 A5 + 20H 22H 24H 26H 28H 2AH 2CH 2EH A0 A4 A6 A7
微型计算机的中断技术 中断的概念 计算机在执行程序的过程中,当出现异常情况或特殊请求时,计算机停止现行程序的运行,转向对这些异常情况或特殊请求的处理,处理结束后再返回到现行程序的间断处,这就是中断 把实现中断所需要的软硬件技术称为中断技术
中断接口电路的组成 基本概念 接口电路的组成 中断源:凡能向CPU提出中断请求的各种因素,同称为中断源 中断请求触发器和中断屏蔽触发器 完成触发器D:当设备欲提出中断请求时,设备本身准备就绪,也即完成触发器D必须为“1” 中断请求触发器:发出中断请求信号 中断屏蔽触发器:屏蔽优先级较低设备的中断请求
……………… 排队器 只能有一个输出为1 中断向量地址形成部件 中断向量位数与计算机可以处理中断源的个数有关,即一个中断源对应一个向量地址 排队电路 INTP1 INTP2 INTP3 INTP4 中断源1 中断源2 中断源3 中断源4 中断向量地址形成部件 中断向量 ……………… INTP1 INTPn
………………… 服务程序入口1 服务程序入口2 服务程序入口3 打印机服务程序 声卡服务程序 键盘服务程序 向量地址1 向量地址2 向量地址3 通过向量地址寻找入口地址
中断的处理过程 中断请求 中断判优 中断响应 中断源向CPU发出中断的要求 将中断源信号经过排队电路,通过优先级选出中断的优先排序 CPU中的允许中断触发器EINT为1(该触发器用开中断指令置位,用关中断指令或硬件使其复位) CPU响应中断的时间一定是在每条指令执行阶段的结束时刻
中断服务程序流程 保护现场 中断服务 恢复现场 中断返回 保存程序的断点(中断隐指令) 保存通用寄存器和状态寄存器的内容(中断服务程序) 中断服务程序的主体部分,不同的中断请求源的中断服务操作内容是不同的 恢复现场 退出服务程序前,将原程序中断时的“现场”恢复到原来的寄存器中 中断返回 返回到原程序的断点处,以便继续执行原程序
取指令 执行指令 中断否? 中断响应 程序断点进栈 关中断 向量地址PC 保护现场 设备服务 恢复现场 开中断 中断返回 取指令 执行指令 是 中断服务程序 中断周期 取指令 执行指令 中断否? 中断响应 程序断点进栈 关中断 向量地址PC 保护现场 设备服务 恢复现场 中断返回 否 是 中断服务程序 中断周期 开中断
DMA(Direct Memory Access直接存储器存取)方式 主 存 ACC 中断接口 DMA接口 I/O 设 备 输入指令 输出指令 DMA和程序中断两种方式的数据通路
DMA与主存交换数据的方式 停止CPU访问主存 工作过程 当外设要求传送一批数据时,由DMA接口向CPU发一个停止信号,要求CPU放弃地址线、数据线和有关控制线的使用权。 DMA接口获得总线控制权后,开始进行数据传送。 在数据传送结束后,DMA接口通知CPU可以使用主存,并把总线控制权交给CPU 特点 控制简单 DMA接口访存时,CPU基本处于不工作状态或保持原状态
周期挪用(周期窃取) 工作方式 每当I/O设备发出DMA请求时,I/O设备便挪用或窃取总线占用权一个或几个主存周期;DMA不请求时,CPU仍继续访问主存 I/O设备要求DMA传送会遇到三种情况: 1 CPU不需要访问主存 2 I/O要求DMA传送时,CPU正在访存 3 I/O设备要求访存时,CPU也要求访存 特点 实现了I/O传送,有较好的发挥了主存与CPU的效率,是广泛采用的一种方法
DMA与CPU交替访存 工作方式 适合于CPU的工作周期比主存存取周期长的情况。 例如:CPU的工作周期为1.2us,主存的存取周期小于0.6us。那么可将CPU周期分为C1、C2两个分周期,C1供DMA访存,C2供CPU访存 特点 不需要总线使用权的申请和归还的过程 CPU既不停止主程序的运行也不进入等待状态
DMA接口的功能和组成 功能 组成 向CPU申请DMA传送 在CPU允许DMA工作时,处理总线控制权的转交 确定数据传送的起始地址和数据长度,修正数据传送过程中的数据地址和数据长度 在数据块传送结束时,给出DMA操作完成的信号 组成 主存地址寄存器AR:用于存放主存中要交换数据的地址
字计数器:记录传送数据的总字节数,通常以交换字数的补码值预置。在DMA传送过程中,每传送一个字,字计数器加1,直到计数器为0,表示数据传送完毕。DMA接口向CPU发出中断请求信号 数据缓冲寄存器:暂存每次传送的数据 DMA控制逻辑:负责管理DMA的传送过程。包括对主存地址寄存器、字计数器的修改,指定传送类型(输入/输出)等等 中断机构:数据传送完毕,DMA向CPU发送中断请求,报告这一批数据传送结束。 设备地址寄存器DAR:存放设备的设备码或设备信息存取的寻址信息。如判断数据所在的区号、盘号、煮面号等等
DMA的数据传送过程 预处理 数据传送 – DMA是以块为单位传送数据的 DMA控制逻辑指明数据传送方向是输入还是输出 设备地址寄存器送入设备号,并启动设备 DMA主存地址寄存器送入交换数据的主存起始地址 对字计数器赋以交换数据的个数 数据传送 – DMA是以块为单位传送数据的 从设备读入一个字到DMA接口的数据缓冲寄存器 设备向DMA接口发请求 DMA接口向CPU申请总线控制权 CPU返回HLDA信号,允许将总线控制权交给DMA接口
后处理 将DMA主存地址寄存器中的主存地址送地址总线 通知设备已被赋予一个DMA周期,并为交换下一个字做准备 命令存储器做写操作 修改主存地址和字计数值 判断数据块是否传送结束,若未结束,继续传送。若已结束,向CPU发中断请求,标志数据块传送结束 后处理 DMA中断请求得到相应后,CPU停止源程序的执行,转去执行中断服务程序,做一些DMA结束工作。包括:教研送入主存的数据是否正确、是否继续用DMA传送其它数据块,测试传送过程中是否发生错误,若出错,则转入错误诊断及处理错误程序。