I/O接口
I/0接口:又称1/0控制器(1/0 Controller)、设备控制器,负责协调主机与外部设备之间的数据传输
I/O接口的作用
数据缓冲:通过数据缓冲寄存器(DBR)达到主机和外设工作速度的匹配
错误或状态监测:通过状态寄存器反馈设备的各种错误、状态信息,供CPU查用
控制和定时:接收从控制总线发来的控制信号、时钟信号
数据格式转换:串-并、并-串等格式转换
与主机和设备通信:实现主机一1/0接口-1/0设备间的通信
I/O接口结构
内部接口:内部接口与系统总线相连,实质上是与内存、CPU相连。
外部接口:外部接口通过接口电缆与外设相连,外部接口的数据传输可能是串行方式,因此I/0接口需具有串/并转换功能。
I/O接口的工作原理
①发命令:发送命令字到I/0控制寄存器,向设备发送命令(需要驱动程序的协助)
②读状态:从状态寄存器读取状态字,获得设备或I/0控制器的状态信息
③读/写数据:从数据缓冲寄存器发送或读取数据,完成主机与外设的数据交换
I/O端口:I/O控制器中的各种存储器
独立编制和统一编制
1.统一编址
把I/0端口当做存储器的单元进行地址分配,用统一的访存指令就可以访问I/0端口,又称存储器映射方式。
靠不同的地址码区分内存和I/O设备,I/0地址要求相对固定在地址的某部分。
优点:不需要专门的输入/输出指令,所有访存指令都可直接访问端口,程序设计灵活性高
端口有较大的编址空间
读写控制逻辑电路简单
缺点:端口占用了主存地址空间,使主存地址空间变小外设寻址时间长(地址位数多,地址译码速度慢)
2.独立编址
IO端口地址与存储器地址无关,独立编址CPU需要设置专门的输入/输出指令访问端口,又称I/0映射方式。
靠不同的指令区分内存和I/0设备。
优点:使用专用I/0指令,程序编制清晰
I/O端口地址位数少,地址译码速度快
I/O端口的地址不占用主存地址空间
缺点:I/O指令类型少,一般只能对端口进行传送操作,程序设计灵活性差
需要CPU提供存储器读/写、I/0设备读/写两组控制信号,增加了控制逻辑电路的复杂性
I/O控制方式
程序查询方式
程序中断方式
中断的作用和原理
程序中断是指在计算机执行现行程序的过程中,出现某些急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对这些异常情况或特殊请求进行处理,在处理完毕后CPU又自动返回到现行程序的断点处,继续执行原程序。
工作流程:
1.中断请求
中断源向CPU发送中断请求信号。
2.中断响应
响应中断的条件。
中断判优:多个中断源同时提出请求时通过中断判优逻辑响应一个中断源。
3.中断处理
中断隐指令。
中断服务程序。
中断请求标记
中断系统对每个中断源设置中断请求标记触发器INTR,当其状态为“1”时,表示中断源有请求
这些触发器可组成中断请求标记寄存器,该寄存器可集中在CPU中,也可以分散在各个中断源中
对于外中断,CPU是在统一的时刻即每条指令执行阶段结束前向接口发出中断查询信号,以获取I/0的中断请求,也就是说,CPU响应中断的时间是在每条指令执行阶段的结束时刻
CPU响应中断必须满足以下3个条件:
1、中断源有中断请求。
2、CPU允许中断即开中断。
3、一条指令执行完毕,且没有更紧迫的任务
中断判优
中断判优既可以用硬件实现,也可用软件实现:硬件实现是通过硬件排队器实现的,它既可以设置在CPU中,也可以分散在各个中断源中
软件实现是通过查询程序实现的。
优先级设定
1.硬件故障中断属于最高级,其次是软件中断
2.非屏蔽中断优于可屏蔽中断
3.DMA请求优于I/0设备传送的中断请求
4.高速设备优于低速设备
5.输入设备优于输出设备
6.实时设备优于普通设备
中断隐指令的主要任务
①关中断。在中断服务程序中,为了保护中断现场(即CPU主要寄存器中的内容)期间不被新的中断所打断,必须关中断,从而保证被中断的程序在中断服务程序执行完毕之后能接着正确地执行下去。
②保存断点。为了保证在中断服务程序执行完毕后能正确地返回到原来的程序,必须将原来程序的断点(即程序计数器(PC)的内容)保存起来。可以存入堆栈,也可以存入指定单元。
③引出中断服务程序。引出中断服务程序的实质就是取出中断服务程序的入口地址并传送给程序计数器(PC)
中断服务程序的主要任务
①保护现场
保存通用寄存器和状态寄存器的内容(eg:保存ACC寄存器的值),以便返回原程序后可以恢复CPU环境。可使用堆栈,也可以使用特定存储单元。
② 中断服务(设备服务)
主体部分,如通过程序控制需打印的字符代码送入打印机的缓冲存储器中(eg:中断服务的过程中有可能修改ACC寄存器的值)
③ 恢复现场
通过出栈指令或取数指令把之前保存的信息送回寄存器中(eg:把原程序算到一般的ACC值恢复原样)
④中断返回
通过中断返回指令回到原程序断点处。
多重中断
中断屏蔽技术
主要用于多重中断,CPU要具备多重中断的功能,须满足下列条件。
①在中断服务程序中提前设置开中断指令。
②)优先级别高的中断源有权中断优先级别低的中断源。
每个中断源都有一个屏蔽触发器,1表示屏蔽该中断源的请求,0表示可以正常申请,所有屏蔽触发器组合在一起,便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字。
屏蔽字设置的规律
1.一般用'1'表示屏蔽,'0'表示正常申请。
2.每个中断源对应一个屏蔽字(在处理该中断源的中断服务程序时,屏蔽寄存器中的内容为该中断源对应的屏蔽字)。
3.屏蔽字中'1'越多,优先级越高。每个屏蔽字中至少有一个'1'(至少要能屏蔽自身的中断)
程序中断方式
DMA方式
CPU向DMA控制器要输入还是输出;要传送多少个数据;数据在主存、外设中的地址
DMA控制器
DMA传送过程
1、接受外设发出的DMA请求(外设传送一个字的请求),并向CPU发出总线请求。
2、CPU响应此总线请求,发出总线响应信号,接管总线控制权,进入DMA操作周期。
3、确定传送数据的主存单元地址及长度,并能自动修改主存地址计数和传送长度计数
4、规定数据在主存和外设间的传送方向,发出读写等控制信号,执行数据传送作。
DMA方式特点
主存和DMA接口之间有一条直接数据通路。
由于DMA方式传送数据不需要经过CPU,因此不必中断现行程序,1/0与主机并行工作,程序和传送并行工作。
DMA方式具有下列特点:
①它使主存与CPU的固定联系脱钩,主存既可被CPU访问,又可被外设访问。
②在数据块传送时,主存地址的确定、传送数据的计数等都由硬件电路直接实现。
③主存中要开辟专用缓冲区,及时供给和接收外设的数据。
④DMA传送速度快,CPU和外设并行工作,提高了系统效率。
⑤DMA在传送开始前要通过程序进行预处理,结束后要通过中断方式进行后处理。
DMA传送方式
主存和DMA控制器之间有一条数据通路,因此主存和1/0设备之间交换信息时,不通过CPU。但当I/O设备和CPU同时访问主存时,可能发生冲突,为了有效地使用主存,DMA控制器与CPU通常采用以下3种方法使用主存。
1、停止CPU访问主存
2、DMA与CPU交替访问
3、周期挪用
DMA方式与中断方式