输入输出系统
- 总线
- 指标
- 总线线数/数据通路宽度/总线宽度
- 总线的数据线数量。
- 数据宽度
- 一次分配总线传输数据的总量,其中包括多个时钟周期。
- 分类:
- 单字/单字节:每次传输固定一个字/字节,适合低速设备。
- 定长块:每次传输长度固定的大块,适合高速设备。
- 变长块:每次传输长度可变的大块,适合中高速设备,更灵活。
- 单字加定长块:先传输固定长度块,如果不够,则继续用单字传输。适合速度较低、优先级较高设备。
- 单字加变长块:结合变长块和单字优点,类似单字加定长块方法。
- 总线带宽
- 总线带宽 总线宽度 总线频率。
- 总线线数/数据通路宽度/总线宽度
- 控制方式
- 集中仲裁方式
- 链式查询
-
- 步骤:
- 设备通过 BR 向控制器请求使用总线。
- 控制器通过 BG 发出授权,BG 按照链的方式串联各个设备。
- 每个设备如果受到授权且需要使用,则截获授权,通过 BS 通知控制器总线忙。
- 每个设备如果不需要使用,则把授权传递给下一个设备。
- 优点:控制线少、容易扩充。
- 缺点:故障敏感、高优先级部件饿死低优先级部件。
- 计数器查询
-
- 与链式查询类似,区别在于控制器自行轮询各个设备,通过 个线控制选择哪个设备。
- 优点:优先级方式灵活,可以顺序或循环使用各个部件。
- 缺点:控制线较多,需要 。
- 独立请求
-
- 每个部件独立使用一个 BR 请求使用,请求在控制器排队。
- 控制器按照优先级选择部件,通过单独的 BG 批准此部件。
- 优点:响应速度快、控制最灵活。
- 缺点:控制线多,需要 ,控制电路复杂。- 分布式仲裁方式
- 自举分布式
- 每个设备需要使用总线时发出请求。
- 总线仲裁时,每个设备检测是否有比自己优先级更高的设备请求:
- 没有:发出总线忙,占用总线。
- 有:暂停使用总线。
- 冲突避免分布式
- 类似 CSMA/CD。
- 并行竞争分布式
- 总线上的每个设备都有一个唯一的仲裁号。
- 需要使用总线的设备把自己的仲裁号发送到仲裁线上。
- 每个设备根据并行竞争仲裁算法,决定在一定时间段后占用总线还是撤销仲裁号。
- 自举分布式
- 分布式仲裁方式
- 集中仲裁方式
- 链式查询
-
- 指标
- 中断
- 条件
- CPU 接受到中断请求信号。
- CPU 允许中断。
- 一条指令执行完毕。
- 中断隐指令
- 没有操作码、不能直接调用的操作。
- 主要包括:保存断点、暂不允许中断、引出中断服务程序。
- 允许和禁止
- 中断允许触发器设置 1 时允许中断,0 时禁止中断。
- 需要允许中断的情况:
- 在中断服务程序执行完毕,恢复中断现场之后。
- 在多重中断的情况下,保护中断现场之后。
- 需要禁止中断的情况:
- 当响应某一级中断请求,不再允许被其他中断请求打断时。
- 在中断服务程序的保护和恢复现场之前。
- 屏蔽和升级
- 每个中断源关联一个屏蔽字,每一位为 1 表示屏蔽此中断源,0 表示允许触发。
- 中断响应次序是由硬件排队电路决定的,无法改变。
- 中断处理次序是可以由屏蔽字来改变的,低优先级的在响应后可以立刻被打断。
- 中断响应后不会立刻开始处理,如果存在处理优先级更高的中断,则需要先被打断。
- 如请求 1 和请求 2 同时排队,响应次序 1 先于 2,处理次序 2 先于 1,则先进入处理程序 1,然后立刻打断进入处理程序 2。
- 条件
- DMA
- 定义
- 在主存和外设间开辟专用通道,DMA 控制器自动控制传输,中间无需 CPU 干预。
- 对 DMA 请求的响应可以在任意机器周期。
- 步骤
- 首先由外设向 DMA 控制器发出请求信号 DREQ。
- DMA 控制器向 CPU 发出总线请求信号 HRQ。
- CPU 向 DMA控制器发出总线响应信号 HLDA,此时,DMA 控制器获取了总线的控制权。
- DMA控制器向外设发出 DMA 响应信号 DACK,表示 DMA 控制器已控制了总线,允许外设与主存交换数据。
- 重复,直到字节计数器减到 0 为止:
- DMA控制器按主存地址计数器的内容发出地址信号作为主存地址的选择,同时主存地址计数器的内容加 1 或减 1。
- DMA 控制器发出 IOR 信号到外设,将外设数据读入总线,同时发出 MEMW 信号,将数据总线的数据写入地址总线选中的主存单元。
- 传送长度计数器减 1。
- DMA 控制器的 HRQ 降为低电平,总线控制权交还 CPU。
- 传送方法
- CPU 停止访问主存法:DMA 请求开始传送时,CPU 让出总线和主存,一直到 DMA 传送完全完成才可以继续访问。
- 存储器分时法:主存存取周期划分成两部分,各自分配给 CPU 和 DMA 控制器。
- 周期挪用法:默认 CPU 访问总线和主存,DMA 控制器需要传送一个单位的数据时,CPU 让出一个存取周期。DMA 控制器只在真正需要传送时才占用总线。
- 定义