接口简介
接口
接口是两个系统获两个部件之间的衔接部分,包括硬件接口和软件接口
I/O接口是连接主机与I/O设备之间的中间电路或部件,由硬件电路、相应的控制软件构成。
接口的功能:
- 地址识别和设备选择
- 接收、保存CPU的I/O控制命令
- 反映外设的工作状态
信号转换
端口
端口是I/O电路中可通过编程寻址并进行读/写的寄存器
接口中包含端口数据端口
- 控制端口
- 状态端口
不同场合下“端口”具有不同的含义:- I/O接口中的端口,实际上是指寄存器
- 上网端口
- 网络应用程序的标示
I/O接口的组成与工作原理
I/O接口由数据缓冲寄存器、状态寄存器、命令寄存器、端口寄存器、控制逻辑和中断逻辑组成。
而I/O接口所进行的工作,都是通过接口中用户可见的寄存器————端口的“读写”来实现的。
I/O接口的组成
I/O接口由数据缓冲寄存器DBR、设备选择电路、设备状态标记、命令寄存器和命令译码器、控制逻辑电路五部分组成。
I/O设备的编址方法
- 统一编址
I/O设备地址与内存统一进行编址,即在存储器中单独划定一片空间,存放I/O设备地址。 - 独立编址(不统一编址)
I/O地址与内存有各自独立的地址空间,互不干扰。需要设置专门的I/O指令。
I/O设备与主机信息传送的控制方式
- 程序查询方式
- 程序中断方式
- DMA方式
- 通道方式
- 外围处理机
程序查询方式
由CPU通过程序不断查询I/O设备是否做好准备,从而控制I/O设备与主机交换信息。
特点:
- 由CPU主动查询外设
- CPU和I/O串行工作
- CPU效率低下
程序中断方式
中断
- 中断发生是随机的。
- 程序是否被中断,不影响其运行结果。
- 任何时刻,CPU只能为一个中断源的请求提供服务。
中断处理过程
- 中断请求
- 中断判优
- 中断响应
在CPU的EINT为“1”时,CPU在每条指令执行的末尾,扫描INTR引脚,若有中断请求,则“中断状态”触发器INT置为1,进入中断周期,执行“中断隐指令”。中断隐指令功能:
将程序断点、标志位寄存器压入堆栈
关中断
将中断处理程序的首地址送入PC - 中断服务
由预先编制的中断服务程序完成。
中断服务程序,说到底就是CPU去响应I/O外设的申请了,为中断源服务去了。
中断服务程序的处理流程是:- 保护现场
保护程序断点和CPU内部寄存器的内容 - 中断服务(设备服务,是中断服务程序的主体部分)
- 恢复现场
恢复程序断点和CPU内部寄存器的内容 - (中断返回)
- 保护现场
- 中断返回
形成中断入口地址的方法
- 软件查询法
采用一个中断管理程序,按照优先级从高到低,依次查询每一个中断源是否有中断请求。 - 硬件向量法
有硬件生成一个特定的地址————向量地址,然后将向量地址通过数据总线送给CPU,CPU再依据向量地址转去执行中断服务程序。
中断嵌套
处理中断过程中,可能有新的、优先级更高的中断请求到来。若CPU转去处理新的中断请求,称为多重中断、中断嵌套,否则称为单重中断。
中断屏蔽
CPU根据中断屏蔽字决定屏蔽掉某些级别中断的请求信号,使其不能进入排队器排队,从而间接改变中断响应顺序。
注意,优先级严格来说,包含响应优先级和处理优先级,而我们设置的中断屏蔽字,改变的是中断处理优先级。
DMA技术
DMA,即 Direct Memory Access,直接内存访问,指CPU暂时让出总线的控制权,由专用接口芯片DMAC————DMA控制器,全权控制存储器与I/O之间直接进行高速的数据传送。
在DMA的数据传输过程中,CPU不干预,从而提高了CPU的效率。
DMAC的组成
DMA控制器由如下部件组成:
- 主存地址寄存器(AR)
- 字计数器(WC)
- 数据缓冲寄存器(BR)
- 设备地址寄存器(DAR)
- 中断逻辑
- 控制/状态逻辑
DMA的工作过程
- 预处理
即CPU选择DMAC和I/O接口,将一下信息写入对应的寄存器:- 外设地址————DAR
- 数据块在主存中的首地址————AR
- 数据个数————WC
- 数据传输
以数据块为单位,传送数据。 - 后处理
数据传输结束后,DMA发起中断请求,得到响应,CPU将停止原程序的执行,转去执行中断服务程序,做一些DMA的结束工作。
DMAC的数据传输过程
DMA的数据传送模式包括:
- 单字传送
- 成组传送
- 请求传送
CPU与DMAC分享主存/系统总线的方式
DMAC占用总线的方式,通常有三种:
- 停止CPU使用总线
控制方式简单,但是CPU的工作会受到明显的延误。 - 周期挪用
DMAC在CPU不使用总线时,“窃取”若干个总线周期,来传送一个数据字,几乎不影响CPU工作,应用最为广泛。 - 交替使用
将CPU的工作周期分为两个子周期,由DMAC和CPU分别使用总线。