ch5 总线与 I/O 子系统¶
1. I/O 子系统概述¶
【总线】一种用来连接各功能部件并承当部件之间信息传送任务的信息公共通路。
【I/O 接口】主机和外设的衔接部分,位于总线和外部设备之间。基本功能包括设备寻址、数据缓冲、预处理功能、控制逻辑功能。
【编址方式】
- 单独编址:为接口中的每个寄存器(I/O 端口)分配独立的端口地址(可与主存地址重叠,设置标志区分访问对象)。需要用专用的 I/O 指令(显式 I/O 指令)实现 I/O 操作。
- 与主存统一编址:把接口中的寄存器(I/O 端口)当成特殊的主存单元,并与其它主存单元统一编址。I/O 端口地址将占据主存的部分地址空间。可用普通访存指令(隐式 I/O 指令)实现 I/O 操作。
【I/O 接口的分类】
- 按数据传送格式划分:并行接口:接口两侧均并行传输数据;串行接口:接口与外设一侧串行传送。
- 按时序控制方式划分:同步接口;异步接口。
- 按 I/O 操作的控制方式:
- PIO 接口(程控方式):主 CPU 执行 I/O 程序实现主 - 外的数据 I/O。硬件开销小,实时处理能力差,并行程度低。
- 中断接口:在程序运行过程中,如果发生某种随机事态,CPU 暂停当前程序(被中断),转而执行该事态对应的服务程序,结束后再恢复原程序的执行。
- DMA 接口:直接依靠硬件系统来控制主存与外设之间的数据传送,传送期间无需 CPU 干预,传送结束后通常用中断方式通知 CPU。
- IOP/PPU 接口:
2. 计算机总线¶
【总线特性】
- 物理特性:几何尺寸、形状、引脚数、排列等
- 功能特性:规定信号线的功能
- 电气特性:信号方向,电平范围
- 时间特性:何时有效,持续时间、时序约定
【总线结构】
- 单总线结构:是部件之间信息交互的唯一通路。竞争激烈,响应慢。
- 多总线结构:有多组总线,分摊负载,传输效率高。
【总线分类】
- 按功能分类:内总线;局部总线;系统总线;外总线。
- 按数据传送格式分类:并行总线;串行总线。
- 按时序控制方式分类
- 同步总线:由统一的时序信号控制总线上的传送操作。在固定时钟周期内完成传送,由同步脉冲定时打入。
- 异步总线:无固定的时钟周期划分;总线周期由传送的实际需要决定;以异步应答方式控制总线传送操作。
【总线仲裁】多个主设备提出总线控制请求时,一般采用优先级或公平策略进行仲裁。
- 集中式仲裁:每个模块有两条线连到中央仲裁器,一条是送往仲裁器的总线请求(BR)信号线;一条是仲裁器送出的总线授权(BG)信号线。
- 分布式仲裁:设备需要控制总线时,发请求信号,并监听其它请求信号,各设备能判别自己的优先级、以及能否在下一周期控制总线。缺点:信号线复杂;优点:防止总线时间浪费。
3. 中断模式¶
【中断与子程序调用的区别】
- 子程序的执行由程序员事先安排,而中断服务程序的执行则是由随机中断事件触发。
- 子程序的执行受主程序或上层程序控制,而中断服务程序一般与被中断的现行程序无关。
- 一般不存在同时调用多个子程序,但可能发生多个外设同时向 CPU 发出中断服务请求的情况。
【中断分类】
- 硬中断:由硬件请求信号引发的中断
- 软中断:由软件触发的中断
- 内中断:中断源来自主机内部
- 外中断:中断源来自主机外部
- 强迫中断:由故障和外部源引起,非程序中的安排
- 自愿中断:自中断或软中断,在程序中有意安排的
- 可屏蔽中断:可以通过屏蔽字屏蔽该类请求,关中断时不响应该类请求。
- 非屏蔽中断:该类请求与屏蔽字无关;请求的响应与开 / 关中断无关。
- 向量中断:由硬件方式来确定服务程序入口地址
- 非向量中断:由软件查询确定服务程序入口地址
【中断响应】
- 响应条件:有未屏蔽中断请求到达;CPU 处于开中断模式;中断源优先级比当前程序的优先级更高;CPU 刚执行完一条指令。
- 非向量中断:将所有中断源的中断服务程序入口地址组织在公共查询程序中;CPU 响应时执行此查询程序,确定中断源对应的服务程序入口地址。
- 向量中断:将所有中断源的中断服务程序入口地址(中断向量)组织在中断向量表中;CPU 响应时由硬件产生向量地址,据此查中断向量表确定服务程序入口地址。
- 中断向量:中断服务程序的入口地址 + 状态字 PSW
- 中断向量表:用来存放中断向量的表
- 向量地址:用来访问向量表的地址,也叫中断指针