编址方式:
统一编址: I/O 端口和内存单元占用同一块内存单元,即把 I/O 端口当作内存单元对待,从整个内存空间中划出一个子空间给 I/O 端口,每个I/O端口分配一个地址码,用访问存储器的指令对 I/O 端口进行操作。
优点: I/O 端口的数目几乎不受限制;
访问内存指令均适用于 I/O 端口,对 I/O 端口的数据处理能力强。
cpu无需产生区别访问内存操作和 I/O 操作的控制信号,从而可减少引脚。
缺点:程序中 I/O 操作不清晰,难以区分程序中的 I/O操作和存储器操作。
I/O 端口占用了一部分内存空间。
I/O 端口地址译码电路较复杂(因为内存的地址位数较多 20根)
独立编址: I/O 端口编址和存储器的编址相互独立,即 I/O 端口地址空间和存储器地址空间分开设置,互不影响。采用这种编址方式,对 I/O 端口的操作使用输入/输出指令(I/O)指令。
优点:不占用内存空间。
有单独的 I/O 操作指令,程序清晰,很容易看出是 I/O 操作还是存储器操作;
译码电路比较简单(因为 I/O 端口的地址空间一般较小,所以地址线也就较少 16根)
缺点:只能用专门的 I/O 指令,访问端口的方法不如访问存储器的方法多。
外设接口的一般结构
I/O 接口: 接口电路 将外设连接到总线上的一组逻辑电路的总称。用于实现外设与主机之间的信息交换。
CPU和外设的连接通过接口。
CPU 《————》(满足CPU的要求) 接口 (对外设提要求)《————》外设
I/O 端口:端口地址 接口中的寄存器,可以由CPU读或写
数据信息:数字量(二级制信息)、模拟量(实际电压值)、开关量(0/1)
状态信息:表示外设当前所处的工作状态,反馈给CPU
控制信息:由CPU发出,用于控制 I/O接口的工作方式及外设的启动和停止等。
I/O 端口的访问
1、输入指令(input)外设的信息通过端口读入CPU
格式: IN 累加器,端口
功能:把端口中数据读到AL、或AX中。
例:IN AL,32H MOV DX,201H
IN AL,DX
2、输出指令 (output) CPU通过端口输出信息到外设
格式:OUT 端口,累加器
功能:把寄存器AL、或AX中数据输出到端口。
例:OUT 32H,AL MOV DX,201H
OUT DX,AX
CPU与外设交换数据的方式
1、程序控制类传递方式 使用 IN / OUT指令
特点:(1)以CPU为中心,控制来自CPU,通过预先编写好的I/O程序实现数据的传送。
(2)速度较低,传送路径经过CPU内部寄存器,同时数据I/O响应也比较慢。
无条件传送方式(同步传送方式)
特点:适用于总是处于准备好状态的外设。外设的工作时间已知,必须在CPU限定的指令时间内准备就绪,并完成数据接收或发送。
方法:把 I/O 指令插入到程序中,当程序执行到该指令时,外设已做好准备,于是在此指令时间内完成数据传送任务。
优点:软件及接口硬件简单
缺点:CPU效率低,只适用于简单外设,适应范围较窄。
查询传输方式(异步传送方式)
当CPU同外设不同步且不知道外设工作速率时,可采用此方式传送。传送前,CPU必须对外设进行状态检测。
使用场合:外设并不总是准备好。
对传送速率和效率要求不高
对外设及接口的要求:外设应提供设备状态信息
接口应具备状态端口
优点:软件比较简单
缺点:CPU效率低,数据传送的实时性差,速度较慢
完成依次传送过程的步骤如下:
(1)通过执行一条输入指令,读取所选外设的当前状态
(2)根据该设备的状态决定程序去向(CPU主动查询)
外设 ”忙“ 或 ”未准备就绪“ ——> 重复检测外设状态
外设 "空" 或 "准备就绪" ——> 发出I/O指令,进行依次数据传送。
中断传送方式
无条件传送和查询传送的缺点是:CPU和外设只能串行工作。
为了提高系统的工作效率,充分发挥CPU的高速运算能力,引入了 ”中断“ 系统,利用中断来实现CPU与外设之间的数据传送,这就是中断传送方式。
特点:外设在需要时间向CPU提出请求,CPU再去为它服务。服务结束后或在外设不需要时,CPU可执行自己的程序。
中断使CPU和外设之间能够并行工作。
工作过程:
在中断传送方式中,通常在程序中安排好某一时刻启动某一台外设,然后CPU继续执行其主程序,当外设完成数据传送的准备后,向CPU发出中断请求信号,在CPU可以响应中断的条件下,现主程序被 ”中断“ ,转去执行 ”中断服务程序“,在 ”中断服务程序“ 中完成一次CPU与外设之间的数据传送,传送完成后仍返回被中断的主程序,从断点处继续执行。
优点:CPU效率高,实时性好,速度快
缺点:程序编制较为复杂
以上三种 I/O 方式的共性
均需CPU作为中介:
软件:外设与内存之间的数据传送是通过CPU执行程序来完成的
硬件:I/O 接口和存储器的读写控制信号、地址信号都是由CPU发出的
缺点:程序的执行速度限定了传送的最大速度
DMA(直接存储器存取)传递方式
外设和内存之间直接传送数据的方式,即DMA传送方式。在DMA传送方式中,对这一数据传送过程进行控制的硬件成为DMA控制器(DMAC)
特点:外设直接与存储器进行数据交换,不需要CPU干预也不需要软件介入。
总线由DMA控制器(DMAC)进行控制(CPU要放弃总线控制权),内存/外设的地址和读写控制
信号均由DMAC提供。