(一) I/O系统基本概念
(二) 外部设备
1. 输入设备:键盘、鼠标
2. 输出设备:显示器、打印机
3. 外存储器:硬盘存储器、磁盘阵列、光盘存储器
(三) I/O接口(I/O控制器)
1. I/O接口的功能和基本结构
2. I/O端口及其编址
3.I/O地址空间及其编码
(四) I/O方式
1. 程序查询方式
2. 程序中断方式
中断的基本概念;中断响应过程;中断处理过程;多重中断和中断屏蔽的概念。
3. DMA方式
DMA控制器的组成;DMA传送过程。
4. 通道方式
(2009)
22. 下列选项中,能引起外部中断的事件是
A. 键盘输入 B. 除数为0
C. 浮点运算下溢出 D. 访存缺页
答案:A
考点:内部中断和外部中断的区别
外中断:I/O设备等来自主机外部设备的中断。
内中断:CPU内部的异常、例外、陷入内中断
(2010)
21、单级中断系统中,中断服务程序执行顺序是()
I保护现场
II开中断
III关中断
IV保存断点
V中断事件处理
VI恢复现场
VII中断返回
A、I->V->VI->II->VII
B、III->I->V->VII
C、III->IV->V->VI->VII
D、IV->I->V->VI->VII
答案:A
考点:单级中断的概念
该题的一个特点是单级中断,不会出现多重中断的中断嵌套问题,由于是单级中断,断点也不需要保存了,CPU直接返回中断前的位置就可以了!
同时关中断是由硬件自动实现的,并不属于中断服务程序。
而恢复断点、恢复现场之后需要开中断才能返回断点!!!
这里给出一般的中断处理的过程:
22、假定一台计算机的显示存储器用DRAM芯片实现,若要求显示分辨率为1600*1200,颜色深度为24位,帧频为85HZ,现实总带宽的50%用来刷新屏幕,则需要的显存总带宽至少约为( )
A、245Mbp B、979Mbps
C、1958Mbps D、7834Mbps
答案:D
考点:1600*1200*24*85/0.5
1M约为106
(2010)
21.某计算机有五级中断L4 ~ L0,中断屏蔽字为M4M3M2M1M0,Mi=1(0≤i≤4)表示对Li级中断进行屏蔽。若中断响应优先级从高到低的顺序是L0→L1→L2→L3→L4,且要求中断处理优先级从高到低的顺序为L4→L0→L2→L1→L3,则L1的中断处理程序中设置的中断屏蔽字是
A.11110 B.01101 C.00011 D.01010
答案:D
考点:中断相应次序和中断处理次序,只需要将优先级在自己前面及本身的那些设置为0屏蔽掉即可。
L4的中断屏蔽字11111
L0的中断屏蔽字11110
L2的中断屏蔽字01101
L1的中断屏蔽字01010
L3的中断屏蔽字00001
(2011)
22.某计算机处理器主频为50 MHz,采用定时查询方式控制设备A的I/O,查询程序运行一次所用的时钟周期数至少为500。在设备A工作期间,为保证数据不丢失,每秒需对其查询至少200次,则CPU用于设备A的I/O的时间占整个CPU时间的百分比至少是
A.0.02% B.0.05% C.0.20% D.0.50%
答案:C
考点:500*200/50M
主频50MHz就是一秒内有50M个时钟周期
(2012)
22.响应外部中断的过程中,中断隐指令完成的操作,除保护断点外,还包括
I. 关中断
II.保存通用寄存器的内容
III.形成中断服务程序入口地址并送 PC
A. 仅 I、II B. 仅 I、III
C. 仅 II、III D. I、II、III
答案:B
考点:保存通用寄存器的内容用一般指令就可完成
中断隐指令:进入中断时执行的关中断、保存断点等操作一般由硬件实现,它类似于一条指令,但不能被编写在程序中。
22. 下列关于中断 I/O 方式和 DMA方式比较的叙述中,错误 的是
A. 中断 I/O方式请求的是 CPU处理时间,DMA方式请求的是总线使用权
B. 中断响应发生在一条指令执行结束后,DMA响应发生在一个总线事务完成后
C. 中断 I/O方式下数据传送通过软件完成,DMA方式下数据传送由硬件完成
D. 中断 I/O方式适用于所有外部设备,DMA方式仅适用于快速外部设备
答案:D
中断处理方式:在I/O设备输入每个数据的过程中,由于无需CPU干预,因而可使CPU与I/O设备并行工作。仅当输完一个数据时,才需CPU花费极短的时间去做些中断处理。因此中断申请使用的是CPU处理时间,发生的时间是在一条指令执行结束之后,数据是在软件的控制下完成传送。而DMA方式与之不同。DMA方式:数据传输的基本单位是数据块,即在CPU与I/O设备之间,每次传送至少一个数据块;DMA方式每次申请的是总线的使用权,所传送的数据是从设备直接送入内存的,或者相反;仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在控制器的控制下完成的。答案D的说法不正确。
(2014)
22. 某设备中断请求的响应和处理时间为100ns,每400ns发出一次中断请求,中断响应所容许的最长延迟时间为50ns,则在该设备持续工作过程中CPU用于该设备的I/O时间占整个CPU时间百分比至少是
A.12.5% B.25% C.37.5% D.50%
答案:B
解析:每400ns发出一次中断请求,不管怎么延长,400ns还是发出一次,也就是每400ns要有100ns的中断处理时间,所以是B。
至于最长延迟什么的并不会影响每400ns发出一次中断请求,并且这个中断请求一定会被响应、处理。
(2015)
22.内部异常(内中断)可分为故障(fault)、陷阱(trap)和终止(abort)三类。下列有关内部异常的叙述中,错误的是 ()。
A.内部异常的产生与当前执行指令相关
B.内部异常的检测由CPU 内部逻辑实现
C.内部异常的响应发生在指令执行过程中
D.内部异常处理后返回到发生异常的指令继续执行
答案:D
解析:故障(Faults): 故障通常是可以纠正的,当中断返回时, 将重新执行引起故障的那条指令.
陷阱(Traps):当此异常发生时, 在转入异常处理程序之前, 处理器在栈中压入陷阱截获指令的下一条指令的地址.
终止(Aborts):终止标志着最严重的错误,继续执行引起此异常已相当困难, 操作系统通常只能把该任务从系统中抹去.
综合计算题
(2012)
43假设某计算机的 CPU 主频为 80MHz,CPI 为 4,并且平均每条指令访存 1.5 次,主存与 Cache 之间交换的块大小为 16B,Cache 的命中率为 99%,存储器总线宽度为 32 位。请问:
(1)该计算机的 MIPS 数是多少?平均每秒 Cache 缺失的次数是多少?在不考虑 DMA 传送的情况下,主存带宽至少达到多少才能满足 CPU 的访存要求?
答:
平均每秒CPU执行的指令数为80M/4=20M,故MIPS数为20
平均每秒Cache缺失的次数=20M×1.5× (1-99%)=3×105
当Cache 缺失时, CPU 访问主存,主存与Cache 之间以块为单位传送数据,此时,主存带宽=16×3×105=4.8MB/s。在不考虑 DMA 传送的情况下,主存带宽至少达到4.8MB/s才能满足 CPU 的访存要求。
(2)假定在 Cache 缺失的情况下访问主存时,存在 0.0005%的缺页率,则 CPU 平均每秒产生多少次缺页异常?若页面大小为 4KB,每次缺页都需要访问磁盘,访问磁盘时 DMA 传送采用周期挪用方式,磁盘 I/O 接口的数据缓冲寄存器为 32 位,则磁盘 I/O 接口平均每秒发出的 DMA 请求次数至少是多少?
答:
周期挪用:DMA与主存之间传送一个数据,占用一个CPU周期。
CPU平均每秒产生缺页异常的次数=3×105×0.0005%=1.5次
每页数据从磁盘传输至主存的DMA次数=4KB/4B。
磁盘I/0接口平均每秒发出的DMA请求次数=1.5×4KB/4B=1.5K=1536.
(3)CPU 和 DMA 控制器同时要求使用存储器总线时,哪个优先级更高?为什么?
答:
CPU和DMA控制器同时要求使用存储器总线时DMA控制器优先级更高
因磁盘在高速运转过程中,如果不及时响应DMA请求,有可能造成数据丢失。而CPU延迟仅仅会降低CPU运行速度,不会造成灾难性后果.
(4)为了提高性能,主存采用 4 体低位交叉存储器,工作时每 1/4 周期启动一个存储体,每个存储体传送周期为50ns,则主存能提供的最大带宽是多少?
答:
在连续不断地访问交叉存储体的情况下,该主存能达到最大带宽。
故连续读出4个字的信息总量=4字节×4=16字节
连续读出4个字所需的时间为50ns
故带宽=16/(50×10-9)=3.2×108=320MB/s
(2013)
43 某 32 位机,主频为 800MHz,Cache 命中时的 CPI 为 4,Cache 块大小为32 字节;主存采用 8 体交叉存储方式,每个体的存储字长为 32 位、存储周期为 40 ns;存储器总线宽度为 32 位,总线时钟频率为 200 MHz,支持突发传送总线事务。每次读突发传送总线事务的过程包括:送首地址和命令、存储器准备数据、传送数据。每次突发传送 32 字节,传送地址或 32 位数据均需要一个总线时钟周期。
(1)CPU和总线的时钟周期各为多少?总线的带宽(即最大数据传输率)为多少?
答 :
CPU的时钟周期为:1/800 MHz = 1.25 ns(1分)
总线的时钟周期为:1/200 MHz = 5 ns(1分)
总线带宽为:4 B×200 MHz = 800 MB/s (1分)
(2)Cache缺失时,需要用几个读突发传送总线事务来完成一个主存块的读取?
答 :
Cache块大小是 32 B,因此Cache缺失时需要一个读突发传送总线事务读取一个主存块。(1分)
(3)存储器总线完成一次读突发传送总线事务所需的时间是多少?
答 :
一次读突发传送总线事务包括一次地址传送和 32 B 数据传送:用 1 个总线时钟周期传输地址;每隔 40 ns/8 = 5 ns 启动一个体工作(各进行 1次存取),第一个体读数据花费 40 ns,之后数据存取与数据传输重叠;用 8-1 个总线时钟周期传输数据。读突发传送总线事务时间:5 ns + 40 ns + 7×5 ns = 80 ns。(2分)
(4)若程序 BP 执行过程中,共执行了 100 条指令,平均每条指令需进行 1.2 次访存, Cache缺失率为 5%,不考虑替换等开销,则 BP 的CPU执行时间是多少?
答 :
BP 的 CPU 执行时间包括 Cache 命中时的指令执行时间和 Cache 缺失时带来的额外开销。命中时的指令执行时间:100×4×1.25 ns×95% = 475 ns。(1 分)
指令执行过程中Cache 缺失时的额外开销:1.2×100×5%×85 ns = 510 ns。BP 的 CPU 执行时间:475 ns+510 ns=985 ns。(2分)