输入输出系统
-
I/O接口:保证高速的主机和不同速度的外设之间的高效和可靠的交互
-
I/O接口与外设间的数据传送
-
CPU与I/O接口之间的数据传送
-
-
端口Port:接口内部能被CPU直接访问的寄存器
-
命令口(控制命令),状态口,数据口
-
对端口安排地址:统一编址方式、I/O独立编址方式
-
-
输入/输出一般过程
-
数据有效与外围设备的定时问题相关
-
-
I/O接口与外设间的数据传送方式
-
无条件传送方式、应答方式(异步传送方式)、同步传送方式
-
-
CPU与I/O接口之间的数据传送
-
无条件传送方式(简单I/O方式):要求接口和外设之间也采用无条件传送方式
-
主要由程序实现
-
程序查询(轮询)方式
-
完全靠程序控制
-
优点:CPU的操作和外围设备的操作能够同步(同步逻辑清晰),而且软硬件结构简单
-
缺点:CPU忙等,浪费资源,只适用于连接低速外设(可以设置更长的时间间隔,采用定期扫描查询polling)或CPU任务不繁忙的情况
-
-
程序中断方式
-
适用于随机出现的服务请求,适合计算机工作量饱满、而I/O处理实时性要求高的系统
-
硬件软件复杂度提高,中断本身有一定时间开销
-
-
-
主要由硬件实现
-
直接内存访问(DMA)方式
-
高速、成批传送数据
-
完全由硬件执行I/O交换,硬件要求更高
-
适用于内存和高速外围设备之间大批数据交换的场合
-
-
通道和输入/输出处理器(IOP、外围处理器)
-
通道:具有特殊功能的简化版处理器,可以实现对外围设备的统一管理和外围设备与内存之间的数据传送控制
-
-
-
程序查询方式
-
输入/输出指令
-
功能
-
-
程序查询方式的接口
-
设备选址电路:判断CPU在地址总线放的设备地址码和自身是否相同
-
数据缓冲寄存器
-
设备状态标志
-
-
程序查询输入/输出方式
-
改进:以一个查询子程序为整体,该程序内部同时查询多个设备的状态
-
设备服务程序:实现数据传输、修改内存地址(为下一次数据传送做准备)、修改传送字节数、进行状态分析或其他控制功能
-
程序中断方式
-
中断:一种程序随机切换的方式,也称为异常
-
应用:实现CPU与外界进行信息交换的握手联络、故障处理、实时处理、程序调度、软中断(程序自愿中断)
-
示意图
-
和子程序调用类似,但一个区别是中断由外部程序发出(除去软中断如dos调用等)
-
-
过程
-
转入公操作时才受理设备的中断请求,以不干扰当前指令
-
保护断点、保护现场
-
及时开、关中断
-
由硬件实现的“中断周期”,中断处理的隐操作
-
内中断指机器内部原因导致出错引起的中断,外部设备请求服务的中断是外中断
-
-
中断服务程序入口地址的获取
-
中断源:引起中断的事件
-
两种方法:
-
向量中断法:(硬件实现)CPU响应中断后,由中断机构自动将相应中断源的中断向量地址送入CPU,由其指明中断服务程序入口地址并实现程序切换
-
每个中断源对应一个中断服务程序,告知CPU中断向量的地址,再得到中断向量
-
中断向量:中断服务程序的入口地址
-
有的中断向量还包括中断服务程序开始执行时的程序状态字PSW初始值
-
-
中断向量表:在内存指定位置顺序存放系统中所有中断向量
-
-
查询中断法:由公共的中断服务程序软件查询中断源,软件实现
-
-
-
程序中断方式的基本I/O接口
-
各类触发器
-
工作标志触发器BS
-
准备就绪触发器RD
-
允许中断触发器EI (该设备是否被允许)
-
中断请求触发器IR
-
中断屏蔽触发器IM (CPU是否受理中断)
-
-
⑦中CPU受理中断时除了向接口发出中断应答信号外,还会关闭中断
-
-
单级中断
-
所有中断源属于同一级,距离CPU近的优先权高
-
中断服务程序执行过程中,不受理其他中断请求,即便优先级更高
-
CPU以链式查询方式识别中断源
-
采用串行排队链法实现具有公共请求线的中断源判优识别
-
硬件通过编码器产生中断向量(中断服务程序的入口地址)
-
-
多级中断
-
有不同优先级的区分,优先权高的中断级可以打断优先权低的中断服务程序,以程序嵌套方式进行工作
-
一维多级中断:每一级中断只有一个中断源
-
二维多级中断:每一级中断有多个中断源
-
同一级不同中断源不能嵌套
-
有效进行嵌套,中断屏蔽寄存器的内容要保护和修改
-
-
-
多级中断源的识别,优先级排队逻辑
-
若一条请求线上有多个中断源(二维多级中断),还需要进一步使用串行链式方式查询
-
-
Pentium中断机制
-
类型:中断和异常
-
中断,外部中断:可屏蔽中断和非屏蔽中断
-
异常,异常中断:执行异常,执行软件中断指令
-
异常中断优先级高于外部中断
-
-
中断服务子程序进入过程
-
实模式为中断向量表IVT(interrup vector table),保护模式为中断描述符表IDT(interrup description table)
-
-
DMA方式
-
DMA(Direct Memory Access),直接内存访问
-
完全由硬件执行I/O交换,一般用于高速传送成组数据,有速度快的优点,硬件复杂程度接近于CPU
-
-
特点
-
响应随机请求,实现主存与I/O设备间的快速数据传送
-
不影响CPU程序执行状态,CPU不必执行指令,总线控制器下放给DMA,两者可并行工作
-
进行批量的数据交换,如以数据块为单位的磁盘读/写操作
-
DMA仅负责数据传送工作,而数据传送前后的处理由管理程序承担
-
-
DMA传送方式
-
成组传送方式:对CPU发出停止信号
-
优点是控制简单,适用于数据传输率很高的设备进行成组传送
-
缺点是内存效能没有充分发挥,DMA工作时相当一部分内存工作周期是空闲的
-
-
周期挪用方式
-
当I/O设备有DMA请求,则由I/O设备挪用一个或几个内存周期
-
当CPU和DMA发生访内冲突时,I/O设备访内优先
-
-
实现了I/O传送,又较好地发挥了内存和CPU的效率,对CPU影响更小
-
适用于I/O设备读写周期大于内存存储周期的情况
-
每一次周期挪用要申请、建立、归还总线控制权,有一定开销
-
-
透明DMA方式
-
CPU工作周期比内存存取周期长很多时,用交替访内的方法
-
将CPU周期划分为$$c_1$$和$$c_2$$两个周期,分别给DMA和CPU使用
-
-
不需要总线使用权的申请、建立和归还,总线使用权是由两个分周期分时控制的
-
CPU既不停止主程序运行,也不进入等待状态,工作方式高效,但硬件逻辑更加复杂
-
-
-
基本的DMA控制器:采用DMA方式的外围设备与系统总线之间的接口电路(在中断接口的基础上再加DMA机构组成)
-
基本逻辑部件:内存地址计数器、字计数器、数据缓冲寄存器、DMA请求标志、控制/状态逻辑、中断机构
-
HOLD:总线使用权申请信号,HLDA:响应信号
-
传送过程:传送前预处理、正式传送、传送后处理
-
预处理:CPU执行输入输出指令,测试设备状态,送入设备号,启动设备,送入起始地址、交换的数据字个数,之后CPU再继续执行原来的主程序
-
正式传送数据过程(即DMA负责传送数据)
-
后处理:收到DMA中断信号后,CPU停止主程序的执行,转去执行中断服务程序做一些DMA的结束处理工作,如检验送入内存的数据是否正确等
-
-
-
选择型DMA控制器
-
物理上连接多个设备,但逻辑上只允许连接一个设备,某一段时间只能为一个设备服务
-
添加设备号寄存器,I/O指令给出所选择的设备号
-
以较小的硬件代价达到为多个外围设备服务的目的
-
适合数据传输率很高以至于接近内存存取速度的设备,很快传送完一个数据块后又可为其他设备服务
-
-
多路型DMA控制器:允许物理和逻辑上同时为多个设备服务
-
适合于同时为多个慢速外围设备服务
-
多路型DMA通过轮流服务多个设备,确保总线资源得到充分利用
-
字节交叉传输方式
-
各设备以字节交叉方式与DMA控制器进行数据传送(即多个设备按一定顺序轮流传输数据,每次传输一个字节或一个固定大小的数据块)
-
-
-
有多少个设备,控制器内部就有多少组寄存器
-
宏观架构:计算机组成原理
-
-
通道方式
-
通道是一个特殊功能的处理器,有自己的指令和程序专门负责数据输入输出的传输控制,释放CPU专心做数据处理
-
两种总线,可以按各自的时序同时进行工作
-
系统总线:通道与存储器、CPU与存储器之间的数据传送
-
通道总线(I/O总线):外围设备与通道之间的数据传送
-
-
通道总线可以接上若干I/O模块,一个I/O模块(算接口和设备控制器的结合体)可以接若干设备
-
四级连接:
CPU与存储器 - 通道 - I/O模块 - 外围设备
-
通道与I/O模块之间用统一的标准接口,I/O模块与设备之间根据设备要求不同采用专用接口
-
存储管理部件:决定下一个周期由哪个部件使用系统总线访问存储器
-
通道优先级高于CPU,选择通道优先级高于多路通道(前者一般连接高速设备)
-
-
通道基本功能:执行通道指令,组织外围设备和内存进行数据传输,按I/O指令要求启动外围设备,向CPU报告中断等
-
CPU对通道的管理
-
CPU通过执行I/O指令以及处理来自通道的中断,来实现对通道的管理
-
两种中断:数据传送结束中断和故障中断
-
管态:CPU运行操作系统的管理程序的状态
-
目态:CPU执行目的程序时的状态
-
CPU处于管态时,才能运行I/O指令,目态时不能运行I/O指令
-
-
通道对设备控制器的管理
-
通道通过使用通道指令来控制I/O模块进行数据传送操作,并以通道状态字接受I/O模块反映的外围设备的状态
-
I/O模块是通道对I/O设备实现传输控制的执行机构
-
设备控制器和接口
-
设备控制器:数据传输、设备管理、中断处理、缓冲和缓存、错误检测和纠正
-
接口:数据转换,信号传递,标准化
-
-
-
通道的类型
-
选择通道(高速通道):物理连接多个设备,但一段时间内只能选择一个设备进行工作
-
主要用于连接高速外围设备如磁盘、磁带等,以数据块方式高速传输
-
但设备的辅助操作时间过长,降低了通道的利用率
-
-
-
多路通道(多路转换通道)
-
数组多路通道,选择通道的一种改进
-
设备在执行寻址等控制性动作时,通道可以去执行其他设备的通道程序
-
-
多字节多路通道
-
主要用于连接大量的低速设备,如键盘、打印机等
-
传送2字节之间的空闲时间可为其他设备服务
-
-
两种多路通道的区别
-
前者只允许一个设备进行传输型操作,其他设备进行的是控制型操作,传输基本单位为数据块
-
后者允许多个设备进行传输型操作,数据传输基本单位为字节
-
-
-
-
输入输出处理器IOP(Input/Output Processor),主机的一个部件,处理广泛的I/O操作
-
外围处理机PPU(Peripheral Processing Unit),独立于主机工作,处理特定的外围设备,如GPU,NPU(网络处理单元)
通用I/O标准接口
-
标准化是建立开放式系统的基础
-
像通道方式
-
并行I/O标准接口SCSI
-
SCSI,小型计算机系统接口 small computer system interface
-
目的是使CPU摆脱对各种设备的繁杂控制,是一个高速智能接口
-
SCSI接口配置示例
-
SCSI接口总线以菊花链形式最多可连接8台设备
-
每个SCSI设备有唯一的设备号,采用分布式总线仲裁策略
-
SCSI设备实际是外围设备的适配器或控制器
-
主适配器HBA,host bus adaptor,通过SCSI总线管理SCSI设备,以算一个SCSI设备,经过系统总线(如PCI)与CPU相连
-
每个SCSI设备可以连接一台或几台同类型的外围设备
-
-
屏蔽了实际外设的固有物理属性,因此各SCSI设备之间可用一套标准的命令进行数据传送
-
-
SCSI是系统级接口,是处于主适配器和智能设备控制器之间的并行I/O接口
-
设备可以是类型完全不同的设备,但主适配器只占主机的一个槽口
-
-
-
串行I/O标准接口IEEE-firewire 1394
-
三个特点:数据传送的高速性,数据传送的实时性,体积小易按照,连接方便
-
实例
-
主端口:主适配器及其端口
-
节点:各个设备
-
集中式仲裁方式,中央仲裁逻辑在主端口
-
PnP:plug and play,即插即用
-
均等仲裁:总线时间分为均等的间隔,间隔期间各节点竞争,但获得总线访问权后该时间间隔内就不能再竞争总线
-
紧急仲裁:对有高优先权的节点可指派紧急优先权,该节点可在一个间隔期内多次获得总线控制权
-
-
1394协议集:三层协议集,将串行总线与各外围设备的交互动作标准化
-
业务层:定义了完整的请求-响应协议实现总线传输
-
链路层:可为应用程序直接提供数据传送服务
-
异步包传送、等步包传送
-
子动作:一个包的递交过程
-
-
物理层:逻辑信号转化为电信号
-
串行总线管理:提供总线节点所需的标准控制、状态寄存器服务和基本控制功能
-
各被连接装置的关系是平等的,不用PC介入也自称系统
-
-
-
I/O系统设计
-
两种规范:时延约束和带宽约束
-
时延约束:确保完成一次I/O操作的延迟时间被限制在某个数量范围内
-
带宽约束:在给定工作负载的情况下,满足一组带宽约束(要求),即维持该系统预配置部分规定下,可能达到的最大带宽
-
-
I/O系统设计办法(可以不断改进的情景):
-
找出I/O系统中效率最低的连接,它是I/O路径中约束设计的部件
-
配置这个部件以保持所需的带宽
-
研究系统中其他部分的需求,配置它们以支持这个带宽
-
-
-
例题