习 题 五
1. 接口电路与外部设备之间传送的信号有哪几种?传输方向怎样?
数据信号:对于输入设备,数据信号从外设通过接口送往总线,对于输出设备,数据信号从总线通过接口发往外部设备。
状态信号:状态信号表明外部设备当前的工作状态,用来协调CPU与外部设备之间的操作。状态信号总是从外部设备通过接口发往总线。
控制信号 :控制信号是CPU向外设发出的命令,它指定设备的工作方式,启动或停止设备。控制信号从CPU通过接口发往外部设备。
2. 接口电路有哪些功能?哪些功能是必需的?
接口电路可以具备:设备选择功能、信息传输功能、数据格式转换功能、联络功能、中断管理功能、复位功能、可编程功能和错误检测等功能。其中设备选择功能和信息传输功能是每一个接口电路所必备的。其他的功能是否需要则由设备的特点和工作方式决定。
3. I/O端口的编址有哪几种方法?各有什么利弊?80X86系列CPU采用哪种方法?
I/O端口的编址有两种不同的方式。
I/O端口与内存统一编址:把内存的一部分地址分配给I/O端口,一个8位端口占用一个内存单元地址。已经用于I/O端口的地址,存储器不能再使用。
I/O端口与内存统一编址后,访问内存储器单元和I/O端口使用相同的指令,这有助于降低CPU电路的复杂性,并给使用者提供方便。但是,I/O端口占用内存地址,相对减少了内存可用范围。而且,由于难以区分访问内存和I/O的指令,降低了程序的可读性和可维护性。
I/O端口与内存独立编址:这种编址方法中,内存储器和I/O端口各自有自己独立的地址空间。访问I/O端口需要专门的I/O指令。
80x86 CPU采用I/O端口独立编址方式。
4. 按照传输信号的种类,I/O端口有几种?它们信号的传输方向怎样?
按照传输信号的种类,I/O端口有三种:
数据端口:数据信息从端口输入CPU(输入设备接口),或者从CPU写入端口(输出设备接口);
状态端口:外设状态信息从端口输入CPU;
控制端口:命令信息从CPU写入端口。
5. I/O端口译码电路的作用是什么?在最小模式和最大模式下分别有哪些输入信号?
I/O端口译码电路用于产生端口的读写选择信号。在最小模式下,译码电路接受来自总线的地址信号(16位),(= 0),或者信号。最大模式下,译码电路接受地址信号(16位),或者信号。
6. 外部设备数据传送有哪几种控制方式?从外部设备的角度,比较不同方式对外部设备的响应速度。
外部设备数据传送有以下四种控制方式。
直接传送方式(也称为无条件传送方式、同步传送方式):这种情况下,外部端口完全被
动地等待CPU的访问,没有确定的响应速度,响应时间取决于CPU忙碌的程度以及程序对外部设备控制采取的策略。
查询方式:如果CPU在某一时刻只对一个外设采用查询方式进行数据传输,CPU的响应延迟约为3~10个指令周期。响应速度快于中断方式,慢于DMA方式。
中断方式:CPU的响应延迟平均为几十个指令周期,慢于查询方式,但是这种方式可以同时管理多个外部设备。
DMA方式:外部端口的传输请求由DMA控制器响应,由于DMAC是一个专用于传输控制的电路,任务单一,不发生DMA传输竞争时,响应延迟仅为1~2个DMAC使用的时钟周期,远快于中断方式和查询方式。
7. 叙述一次查询式输出过程中,接口内各电路、信号的状态变化过程。
一个数据的查询式输出过程由二个阶段组成:
CPU从接口反复读取状态字:由地址译码电路产生状态端口选择信号,该信号不影响接口
内部的状态。外部设备输出完成后,返回“确认”信号,该信号将状态寄存器相关位(READY)置位。
如状态字表明外设已处于“就绪”状态,则向数据端口传送数据。由地址译码电路产生的数据端口选通信号一方面将数据总线上的数据写入数据寄存器,同时清除状态寄存器中的相关位(READY),向输出设备发出输出启动信号。
有的输出接口设有控制端口,输出启动信号通过写控制端口产生。
8. 比较程序中断方式和查询方式的区别,根据比较,指出中断工作方式的优缺点。
中断方式:外部设备工作完成后,通过“中断请求”信号“主动”向CPU“报告”。
查询方式:外部设备工作完成后,状态信号储存在接口电路内,被动地等待CPU来读取。
根据上述比较,可以得到中断工作方式的如下特点:
优点:
1) CPU能够及时了解外部设备的状态,从而对外部设备IO请求进行及时处理。
2) 由于CPU“被动”地等待外部设备的“中断请求”,外部设备进行输入/输出操作时,CPU可以同时执行其他的程序,CPU和外部设备“并行”工作。
3) 由于同样的原因,在中断方式下,CPU可以同时管理多台外部设备,CPU的效率得到提高。
缺点:
1) 用中断方式需要CPU增加相应的管理逻辑,增加了CPU电路的复杂性。
2) 由于CPU“被动”地接收“中断请求”信号,CPU必须通过与外部的一个联络过程才能知道是那一个设备在申请中断,这增加了响应时间。为了从当前任务转移到中断服务,CPU必须保护原有的运行环境,进行“任务”的“切换”,这也会增加响应时间。
3) 有较多的设备使用中断方式时,会产生“中断申请”的“竞争”。这一方面降低了响应速度,另一方面增加了管理的复杂性。
9. 比较DMA方式和程序中断方式的区别,根据比较,指出DMA工作方式的优缺点。
中断方式:外部设备每进行一个数据的输入/输出,都要通过“中断申请”要求CPU进行处理。CPU通过执行一段“中断服务程序”完成数据的传输。
DMA方式:CPU通过对DMAC的初始化,启动一个数据块的传输操作。之后的数据传输通过信号的联络,在外设接口和存储器之间进行,CPU只需简单地让出总线,而无需其他操作。
根据上述比较,可以得到DMA工作方式的如下特点:
优点:
1) 对于CPU而言,它的任务仅仅是在一个数据块传输之前对DMAC进行初始化,CPU用于传输控制的操作达到最小(不考虑与通道/IO处理器方式的比较),CPU的效率最高。CPU与外设“并行”工作。
2) 外部设备一个数据输入/输出完成后,向DMAC申请进行数据传输,响应时间仅为DMAC的1~3个时钟周期。响应速度达到最快,可以满足高速传输的需要。
缺点:
1) 实现DMA控制需要增加DMA控制器和总线控制逻辑,增加了系统的复杂性。
2) DMA传输需要占用总线,并且具有较高的“优先级”。这使得系统对其他设备的响应速度不能得到明确的保证。
10. 某输入设备接口数据端口、状态端口、控制端口地址分别为70H, 71H, 72H。状态端口D5=1表示输入完成,控制端口D7=1表示启动设备输入(输入完成后由设备清除该位)。从该设备输入100个字节数据,存入以BUFFER为首地址的缓冲区。如果启动该设备1秒后仍未完成一次输入,则视为超时错,显示出错信息后返回。分别用8086汇编语言和C语言编写完成上述功能的I/O程序。
汇编语言程序:
DATA SEGMENT
BUFFER DB 100 DUP(?)
ERROR DB 13, 10, “OVER TIME !”, 13, 10, “$”
DATA ENDS
;
CODE SEGMENT
ASSUME CS: CODE, DS: DATA
START:
MOV AX, DATA
MOV DS, AX
MOV CX, 100
LEA BX, BUFFER
ONE: XOR DX, DX ;DX用作响应计时器,初值0
MOV AL, 80H
OUT 72H, AL ;启动输入
W: IN AL, 71H
INC DX ;记录延迟时间
TEST AL, 00100000B ;测试完成位
JNZ READ ;输入完成,转READ读取数据
CMP DX, 50000 ;假设循环50000次时间为1秒
JB W ;未超时,继续测试
JMP OVERTIME ;超过1秒,报告出错
READ: IN AL, 70H ;读入数据
MOV [BX], AL ;数据存入缓冲区
INC BX ;修改指针
LOOP ONE ;100个数据尚未输入完成,转ONE继续
JMP DONE ;100个数据输入完成,转DONE结束程序
OVERTIME: LEA DX, ERROR
MOV AH, 9
INT 21H ;响应超时,显示出错信息
DONE: MOV AX, 4C00H
INT 21H ;返回OS
>计算机的工作原理
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论