第7章 输入/输出系统
7.2 I/O接口
7.2.1 I/O接口的功能
- 进行地址译码和设备选择
- 实现主机和外设的通信联络控制
- 实现数据缓冲
- 信号格式的转换
- 传送控制命令和状态信息
7.2.2 I/O接口的基本结构
7.2.4 IO端口及其编址
1.统一编制
把IO端口当做存储器的单元进行地址分配,用统一的访存指令就可以访问I/O端口,又称存储器映射方式。
靠不同的地址码区分主存和IO设备,IO地址要求相对固定在地址的某部分。
例:系统总线中地址线共10根,则可以访问的存储单元个数为2^10=1024个,假设要给10个IO端口编址:
(1)0-9表示IO地址,10-1023表示为主存单元地址
(2)0-1013为主存单元地址,1014-1023为IO地址
(3)10-19为IO地址,0-9,20-1023为主存单元地址
优点:
不需要专门的输入/输出指令,所有访存指令都可以直接访问端口,程序设计灵活性高。
端口有较大的编址空间
读写控制逻辑电路简单
缺点:
端口占用了主存地址空间,使主存地址空间变小,外设寻址时间长(地址位数多,地址译码速度慢)
2.独立编址
I/O端口和存储器地址无关,独立编址CPU需要设置专门的输入/输出指令访问端口,又称I/O映射方式。
靠不同的指令区分内存和I/O设备。
优点:
使用专门的I/O指令,指令编址清晰
I/O端口地址位数少,地址译码速度快
I/O端口的地址不占用主存地址空间
缺点:
I/O指令类型少,一般只能对端口进行传送操作。
程序设计灵活性差
需要CPU提供存储器读/写,I/O设备读/写两组控制信号,增加了控制逻辑电路的复杂性。
做题总结
- 磁盘驱动器向盘片磁道记录数据时采用串行方式写入
- 程序员进行系统调用访问设备使用的是逻辑地址
- 在I/O总线的数据线上传输的信息包括(I/O接口中的命令字,I/O接口中的状态字,中断类型号)
数据缓冲寄存器和命令/状态寄存器的内容都是通过数据线来传送的;地址线用以传送与CPU交换数据的端口地址;而控制线用以给I/O端口发送读/写信号,只是用来对端口进行读/写控制的。 - I/O指令实现的数据传送通常发生在(通用寄存器和I/O端口之间)
I/O端口是指I/O接口中用于缓冲信息的寄存器,由于主机和I/O设备的工作方式和工作速度有很大差异,I/O端口应运而生。在执行一条指令时,CPU使用地址总线选择所请求的I/O端口,使用数据总线在CPU寄存器和端口之间传送数据。 - 不属于I/O接口的是(磁盘驱动器)
打印机适配器,网络控制器,可编程中断控制器都属于I/O接口
7.3 I/O方式
7.3.1 程序查询方式
主要特点:CPU有“踏步”等待现象,CPU与I/O串行工作。接口设计简单,设备量少。
例题:
在程序查询方式的输入/输出系统中,假设不考虑处理时间,每一个查询操作需要100个时钟周期,CPU时钟频率为50MHz。现有鼠标和硬盘两个设备,而且CPU必须每秒对鼠标进行30次查询,硬盘以32为字长为单位传送数据,即每32位被CPU查询一次,传输率为2×2^20B/s。求CPU对这两个设备查询所花费的时间比率,由此可得出什么结论?
时间的角度:
一个时钟周期=1/50MHz=20ns
一个查询耗时为100×20ns=2000ns
1)鼠标
每秒查询鼠标时间为 30×2000ns=60000ns
时间比率为60000ns/1s=0.006%
所以对鼠标的查询基本不影响CPU的性能
2)硬盘
每32位查询一次,传输率为2×2^20B/s
每秒需要查询的次数为2×220B/4B=219次
查询硬盘耗时=219×2000ns=1.05×109ns
查询硬盘所花费的时间比率=1.05×10^9ns/1s=105%
即使CPU将全部时间都用于对硬盘的查询也不能满足对磁盘传输的需求
频率的角度:
时钟频率为50MHz,故每秒的时钟周期数为5×10^6个时钟周期
1)鼠标
总共所需的时钟周期数为30×100=3000个时钟周期
比率为3000/(5×10^6)=0.006%
2)键盘
每秒需要查询的次数为2×220B/4B=219次
比率为219×100/5×106≈105%
独占查询
CPU100%的时间都在查询I/O状态,完全串行
定时查询
在保证数据不丢失的情况下,每隔一段时间CPU就查询一次I/O状态,查询的间隔内CPU可以执行其他程序
7.3.2 程序中断方式
工作流程:
1.中断请求
中断源向CPU发送中断请求信号。
2.中断响应
响应中断的条件
中断判优:在多个中断源同时提出请求时,通过硬件排队器来选择优先响应哪个中断
1)硬件故障中断属于最高级,其次是软件中断;
2)非屏蔽中断优于可屏蔽中断;
3)DMA请求优于I/O设备传送的中断请求
4)高速设备优于低速设备
5)输入设备优于输出设备
6)实时设备优于普通设备
3.中断处理
中断隐指令(关中断,保存断点,引出中断服务程序)
中断服务程序(1保护现场 2中断服务(设备服务)3恢复现场(中间可能还有开中断) 4中断返回)
中断向量:中断服务程序的地址
向量地址(中断类型号):是这个中断向量的地址
向量地址->中断向量->中断服务程序
#4.中断处理过程(多重中断)
多重中断也称中断嵌套
1)关中断
2)保存断点
3)中断服务程序寻址
4)保存现场和屏蔽字
5)开中断(\)
6)执行中断服务程序
7)关中断
8)恢复现场和屏蔽字
9)开中断、中断返回
5.中断类型
外部中断:是指CPU执行指令以外的事件产生的中断,通常来自CPU与内存以外的中断。
6.中断响应优先级和中断处理优先级的区别
中断响应优先级是由硬件排队线路或中断查询程序的查询顺序决定的,不可动态改变;而中断处理优先级可以由中断屏蔽字来改变,反映的正是正在处理的中断是否比新的中断的处理优先级低(若对新中断的屏蔽位为“0”,则让新中断先处理)处理完后再回到刚才被中止的中断继续处理。
7.中断向量和向量地址
中断向量中的内容是中断服务程序的地址
向量地址中的内容是中断向量的地址
向量地址->中断向量->中断服务程序
7.3.3 DMA方式
在DMA传送方式中,由外部设备向DMA控制器发出DMA请求,再由DMA控制器向CPU发出总线请求信号。在DMA方式中,DMA控制器在传送期间有总线控制权,这时CPU不能响应I/O中断。
CPU和DMA控制器同时要求使用存储器总线时,DMA请求的优先级更高。因为DMA请求得不到及时响应,I/O传输的数据可能会丢失。
DMA方式和中断方式的区别
中断 | DMA | |
---|---|---|
数据传送 | 程序控制 程序的切换->保存和恢复现场 |
硬件控制 CPU只需进行预处理和后处理 |
中断请求 | 传送数据 | 后处理 |
响应 | 指令执行周期结束后响应中断 | 每个机器周期结束均可,总线空闲时即可响应DMA请求 |
适用场景 | CPU控制,低速设备(字符型设备) | DMA控制器控制,高速设备 |
优先级 | 优先级低于DMA | 优先级高于中断 |
异常处理 | 能处理异常事件 | 仅传送数据 |
做题总结
1.外部中断是指CPU执行指令以外的事件产生的中断。
键盘输入属于外部事件,能引起外部中断;
除数为0,属于异常,异常属于内中断,发生在CPU内部;
浮点数运算下溢将按机器零处理,不会产生中断。
访存缺页属于内部异常
定时器到时描述的是时钟中断,属于外部中断;
网络数据包到达描述的也是CPU执行指令以外的事件,也属于外部中断。
2.中断优先级由中断屏蔽字决定
3.中断服务程序在内核态下执行
4.一个扇区的平均访问时间=寻道时间+延迟时间+传输时间
延迟时间一般为转速的一半,传输时间为转速÷扇区数(记得要把单位统一)
寻道时间就是平均寻道时间
例:若转速为7200转/分,扇区数为500
则延迟时间=60÷7200×1000÷2≈8.33÷2ms
传输时间=8.33ms÷500
标签:DMA,中断,端口,输入输出,系统,查询,地址,CPU From: https://www.cnblogs.com/Jinx8823/p/17357248.html