IO系统基本概念
IO接口(IO控制器)
IO控制方式
程序查询方式
程序中断方式
数据流必须经过CPU才能到主存
程序中断方式中,对于快速IO设备,比如磁盘,每准备好一个字就给CPU发送一次中断请求,会导致CPU需要花大量时间处理中断服务程序,CPU利用率严重下降。
DMA控制方式
DMA控制方式,直接让高速外设和磁盘传输数据,数据流不用经过CPU。当把一整块数据读到内存后才告诉CPU,看CPU后续如何操作、利用调入主存的这些数据。
对于大型机上接很多个IO设备的情况,CPU难以独自管理,可以用通道控制方式,利用通道对IO设备进行统一管理。
通道控制方式
IO系统基本组成
小结
输入输出设备
分辨率:像素个数
灰度级位数:每个像素点需要多少个比特位表示
显示存储器:也叫刷新存储器
VRAM容量=分辨率×灰度级位数,一帧图像的大小,是显存容量理论最小值
VRAM带宽=分辨率×灰度级位数×帧频,每秒刷新多少帧,也就是VRAM每秒可以写入多少数据
显示字符的方法以点阵为基础。点阵是指由m×n个点组成的阵列。将点阵存入由ROM构成的字符发生器中,需要显示时按照点阵中0和1代码不同控制扫描电子束的开或关,从而在屏幕上显示出字符。对应于每个字符,所显示字符的ASCII代码被存放在显示存储器VRAM中,以备刷新。
外存储器
磁盘存储器
磁记录原理
磁盘设备的组成
磁盘的性能指标⭐
磁盘地址
磁盘阵列RAID
光盘存储器
固态硬盘
小结
IO接口
IO接口的作用
结构和工作原理
CPU与IO接口之间的IO总线包括三条信号线:数据线、地址线、控制线;
数据线用于读写数据、状态字、控制字、中断类型号;
地址线用于指明IO端口
控制线用于读/写IO端口的信号、中断请求信号
控制寄存器、状态寄存器在使用时间上是错开的,因此有的I/O接口中可将二者合二为一
IO控制器中的各种寄存器称为IO端口
IO端口
分类
小结
程序查询方式
例题
中断系统
单重中断
多重中断
例题
程序中断方式⭐
例题
中断小结
DMA方式⭐
用于高速外设(磁盘),以块为单位(多个字)进行读写
DMA控制器
主要功能
组成
传送过程
传送方式
特点
与中断方式区别
小结
例题
注:最后一句话中"故"字多余
习题
- 磁盘组有6 片磁盘,每片有两个记录面,最上最下两个面不用。存储区域内径22cm ,外径33cm ,道密度为40 道/cm ,内层位密度400 位/cm, 转速2400 转/分。问:
(1) 共有多少柱面?
(2) 盘组总存储容量是多少?
(3) 数据传输率多少?
(4) 若有四组磁盘,每组有16 个记录面,每面有256 个磁道,每道有16 个扇区。采用定长数据块记录格式,直接寻址的最小单位是什么? 寻址命令中如何表示磁盘地址?
(5) 如果某文件长度超过一个磁道的容量,应将它记录在同一个存储面上,还是记录在同一个柱面上?
(6) 若找道时间10ms ,则平均寻址时间是什么?
解析:
(1)内径外径指的是直径
(33/2-22/2)×40=220道,220个柱面
(2)400×2×Π×11×220×(6×2)-2=7598800B
(3)2400/60=40转/s;40×400×2×Π×11=13816B/s
(4)采用定长数据块记录格式,直接寻址的最小单位是一个记录块( 一个扇区)
驱动器号2bit、柱面(磁道号)8bit、盘面号4bit、扇区号4bit
(5)如果某文件长度超过一个磁道的容量,应将它记录在同一个柱面上,因为不需要重新找道,数据读/ 写速度快
(6)寻道时间:定位磁道;平均旋转时间:定位扇区
平均寻址时间=寻道时间+平均旋转时间(旋转半圈时间)=10ms+{[1/(2400/60)]×103}/2=22.5ms
- 设某磁盘由8 片盘组成,其中最上面和最下面两面不记录信息,已知该片每个记录面有1024 个磁道,每个磁道有64 个扇区, 每个扇区512字节。盘片转速为6000 转/ 分,平均寻道时间为12ms ,启动延迟1ms。假设磁盘最内圈直径为5cm ,最外圈直径为10cm 。
计算:
(1)磁盘的容量;
(2)磁盘地址需要多少位;
(3)磁盘的数据传输率;
(4)读写一个扇区的数据需要的平均访问时间;
(5)该盘的道密度;
(6)最小位密度和最大位密度。
解析:
(1)512×64×1024×(8×2-2)=44.8MB
(2)驱动器号0bit,柱面(磁道号)10bit,盘面号4bit,扇区号6bit;磁盘地址需要20bit
(3)6000/60=100转/s,64×512×100=3,276,800B/s
(4)读写一个扇区的平均访问时间=启动延迟+寻道时间+平均旋转时间(旋转半圈时间)+数据传输时间+=1ms+12ms+{[1/(6000/60)]/2}×103ms+512/3276800×103ms≈18.16ms
(5)(10-5)/2=2.5cm,1024/2.5=409.6道/cm
(6)R1=10/2=5cm,2ΠR1=31.4cm,(512×64×8/1024)/31.4≈8bit/cm
R2=5/2=2.5cm,2ΠR2=15.7cm,(512×64×8/1024)/15.7≈16bit/cm
3.某磁盘的转速为10 000 转/ 分,平均寻道时间是6ms ,磁盘传输效率是20MB/s ,磁盘控制器延迟为0.2ms ,读取一个4KB 的扇区所需的平均时间约为()
A. 9ms
B. 9.4ms
C. 12ms
D. 12.4ms
解析:
同上题,寻道时间6ms,延迟时间0.2ms,平均旋转时间3ms,数据传输时间0.2ms
所以答案为B
4.(2015-20)若磁盘转速为7200 转/ 分,平均寻道时间为8ms, 每个磁道包含1000 个扇区,则访问一个扇区的平均存取时间大约是( )
A .8.1ms
B .12.2ms
C .16.3ms
D .20.5ms
解析:
同上题,寻道时间8ms,平均旋转时间4.17ms;
所以答案为B
- 某CRT显示器可显示64种ASCII 字符,每帧可显示64字×25排;每个字符字形采用7×8点阵,即横向7点,字间间隔1点,纵向8点,排间间隔6点,采取逐行扫描方式 。水平回归消隐期12 ,垂直回归消隐10.
(1) 缓存容量有多大?
(2) 字符发生器(ROM) 容量有多大?
(3) 缓存中存放的是ASCII代码还是点阵信息?
(4) 缓存地址与屏幕显示位置如何对应?
(5) 设置哪些计数器以控制缓存访问与屏幕扫描之间的同步? 它们的分频关系如何?
解析:
(1)缓存容量为64×25×8=1600字节
(2)ROM容量为64种×8行×8列=512字节
(3)缓存就是显存、刷新存储器、视频存储器,其中存放的是代显示字符的ASCII代码
(4)显示位置自左至右,从上到下,相应地缓存地址由低到高,每个地址码对应一个字符显示位置
(5)水平地址计数器 (字计数器)对一行的显示进行控制;光栅地址计数器制(行计数器)对字符窗口的高度进行控制;垂直地址计数器 (排计数器)控制行的显示
字计数器(64+12):1分频;排计数器(25+10):1分频;点计数器(7+1):1 分频;行计数器(8+6):1分频;
6.刷存的重要性能指标是它的带宽。实际工作时显示适配器的几个功能部分要争用刷存的带宽。假定总带宽的50% 用于刷新屏幕,保留50% 带宽用于其他非刷新功能。
(1) 若显示工作方式采用分辨率为1024 ×768 ,颜色深度为3B ,帧频( 刷新速率)为72Hz,计算刷存总带宽应为多少?
(2) 为达到这样高的刷存带宽,应采取何种技术措施?
解析:
(1)刷新带宽= 分辨率 × 每个像素点颜色深度 × 刷新速率
刷存用于刷新屏幕的带宽=1024×768×72=162MB/s
刷存总带宽=162×2=324MB/s
(2)①使用高速的DRAM 芯片组成刷存;② 刷存采用多体交叉结构;③刷存至显 示控制器的内部总线宽度由32 位提高到64 位,甚至128 位 ;④刷存采用双端 口存储器结构,将刷新端口与更新端口分开。
7.假定一台计算机的显示存储器用DRAM 芯片实现,若要求显示分辨率为1600*1200 ,颜色深度为24 位,帧频为85HZ ,现实总带宽的50% 用来刷新屏幕,则需要的显存总带宽至少约为()
A 、245Mbps
B 、979Mbps
C 、1958Mbps
D 、7834Mbps
解析:
同上题,1600×1200×24×85×2/106=7833.6Mbps
所以答案为D
8.
解析:
系统总线-三总线结构-IO总线连接IO接口和CPU;命令字、状态字、中断类型号都通过数据线传输。
所以答案为D
9.(2014-21)下列关于I/O 接口的叙述中,错误的是()
A. 状态端口和控制端口可以合用同一个寄存器
B. I/O 接口中CPU可以访问的寄存器称为I/O 端口
C. 采用独立编址方式时,I/O 端口地址和主存地址可能相同
D. 采用统一编址方式时,CPU不能用访存指令访问I/O端口
解析:
控制寄存器、状态寄存器在使用时间上是错开的,因此有的I/O接口中可将二者合二为一,A对;
IO控制器(IO接口)中的各种CPU可以访问的寄存器称为IO端口,B对;
统一的话,就是一致的去编码,肯定不会出现重名的情况,而独立的话可能会出现相同的情况,C对;
采用统一编址方式时,CPU可以用访存指令访问I/O 端口,D错。
所以答案为D
(2011年统考)某计算机处理器主频为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%
解析:
CPU时钟周期:1/(50M)s;每秒查询所需时钟周期数:200×500=100000;每秒查询A所需时间:1/(50M)×100000=1/500s
1/500=0.2%
所以答案为C
11.
解析:
采用中断IO方式,不可能交换主存地址,因为数据(要打印的字符)是CPU用主存地址从主存中去取出来的,与IO端口无关
所以答案为B
12.单级中断系统中,中断服务程序执行顺序是()
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
13.异常是指指令执行过程中在处理器内部发生的特殊事件,中断是指来自处理器外部的请求事件。下列关于中断或异常情况的叙述中,错误的是( )
A.“ 访存时缺页”属于中断
B.“ 整数除以0” 属于异常
C.“DMA 传送结束”属于中断
D.“存储保护错”属于异常
解析:
虚存系统的缺页是由CPU内部异常引起的意外事件,属于异常,A错
所以答案为A
14.(2009)下列选项中,能引起外部中断的事件是()。
A 、键盘输入
B 、除数为0
C 、浮点运算下溢
D、访存缺页
解析:
键盘输入是来自处理器外部的请求事件
所以答案为A
15.(2011)某计算机有五级中断L4 ~ L0 ,中断屏蔽字为M4M3M2M1M0 ,Mi=1(0≤i≤4) 表示对Li 级中断进行屏蔽, 且要求中断处理优先级从高到低的顺序为L4→L0→L2→L1→L3 ,则L1 的中断处理程序中设置的中断屏蔽字是
A. 11110
B. 01101
C. 00011
D. 01010
解析:
Mi=1(0≤i≤4) 表示对Li 级中断进行屏蔽,L1只能屏蔽本身和优先级比它低的L3,所以L1的中断屏蔽字为00011(我第一次写错了顺序😢),M4M3M2M1M0=01010
所以答案为D
16.下图所示的二维中断系统。
(1) 在中断情况下,CPU 和设备的优先级如何考虑? 请按降序排列各设备的中断优先级。
(2) 若CPU 现执行设备B的中断服务程序,IM2 ,IM1 ,IM0 的状态是什么? 如果CPU 执行设备D 的中断服务程序,IM2 ,IM1 ,IM0的状态又是什么?
(3) 每一级的IM 能否对某个优先级的个别设备单独进行屏蔽? 如果不能,采取什么办法可达到目的?
(4) 假如设备C 一提出中断请求,CPU 立即进行响应,如何调整才能满足此要求?
解析:
(1)A B C D E F G H I CPU
(2)不屏蔽比它优先级高的,屏蔽为1。CPU 现执行设备B的中断服务程序,IM2IM1IM0=111;CPU 现执行设备D的中断服务程序,IM2IM1IM0=011。、
(3)不能 。可将接口中的EI(中断允许)标志清"0",它禁止设备发出中断请求。
(4)将设备C 从第2级取出来,单独放在第3级上,使第3级的优先级最高,即令IM3=0即可
17.(2014-22)若设备中断请求的响应和处理时间为100ns ,每400ns发出一次中断请求,中断响应所允许的最长延迟时间为50ns ,则在该设备持续工作过程中,CPU 用于该设备的时间占整个CPU 时间的百分是比至少是()
A.12.5%
B.25%
C.37.5%
D.50%
解析:
每400ns发出一次中断请求,而响应和处理时间为100ns,其中允许的延迟为干扰信息,因为在50ns内,无论怎么延迟,每400ns还是要花费100ns处理中断的。题干说明两次请求间隔400ns,意味着响应和处理时间100ns包括在400ns内,所以该设备的I/O时间占整个CPU时间的百分比为100ns/400ns=25%
所以答案为B
下图中假设有磁盘、磁带、打印机三个设备同时工作。磁盘以30μs 的间隔向控制器发DMA 请求,磁带以45μs 的间隔发DMA 请求,打印机以150μs 间隔发DMA 请求。根据传输速率,磁盘优先权最高,磁带次之,打印机最低,图中假设DMA 控制器每完成一次DMA 传送所需的时间是5μs 。若采用多路型DMA 控制器,请画出DMA控制器服务三个设备的工作时间图
解析:
由图看出,T1 间隔中控制器首先为打印机服务,因为此时只有打印机有请求。T2 间隔前沿磁盘、磁带同时有请求,首先为优先权高的磁盘服务,然后为磁带服务,每次服务传送一个字节。在150μs 时间阶段中,为打印机服务只有一次(T1) ,为磁盘服务四次(T2,T4 ,T6 ,T7) ,为磁带服务三次(T3 ,T5 ,T8) 。
从图上看到,在这种情况下DMA 尚有空闲时间,说明控制器还可以容纳更多设备。由于多路型DMA 同时要为多个设备服务 ,因此对应多少个DMA 通路( 设备) ,在控制器内部就有多少组寄存器用于存放各自的传送参数。
19.某计算机的CPU主频为500MHz ,CPI为5(即执行每条指令平均需5个时钟周期)。假定某外设的数据传输率为0.5MB/s,采用中断方式与主机进行数据传送,以32位为传输单位,对应的中断服务程序包含18条指令,中断服务的其他开销相当于2条指令的执行时间。请回答下列问题,要求给出计算过程。
(1)在中断方式下,CPU 用于该外设I/O的时间占整个CPU时间的百分比是多少?
(2)当该外设的数据传输率达到5MB/s 时,改用DMA方式传送数据。假设每次DMA传送大小为5000B ,且DMA 预处理和后处理的总开销为500 个时钟周期,则CPU 用于该外设I/O 的时间占整个CPU 时间的百分比是多少?(假设DMA 与CPU 之间没有访存冲突)
解析:
(1)在中断方式下,CPU每32位(4B)被中断一次,这里是数据传输率,描述速度,所以1MB=106B 。故
每秒中断次数为5×105B/4B=125000;CPU每秒处理中断所需的时钟周期数=125000×(18+2)×5=12.5M;
则CPU 用于该外设I/O 的时间占整个CPU 时间的百分比是12.5M/500M=2.5%
(2)DMA直接访问内存,以块为传输单位,本题块大小为5000B
每秒DMA次数:5MB/5000B=1000次;CPU每秒处理DMA所需的时钟周期数=1000×500=0.5M;
则CPU 用于该外设I/O 的时间占整个CPU 时间的百分比是0.5M/500M=0.1%
20.一个DMA 接口采用周期挪用方式把字符(大小1B)传送到存储器,它支持的最大批量为400 字节。若存取周期 为100ns ,每处理一次中断需5µs ,现有字符设备的传输率为9600bps 。假设字符之间的传输是无间隙的,若忽略预处理所占时间,试问采用DMA 方式每秒因数据需占用CPU 多少时间?如果完全采用中断方式,又需占CPU 多少时间?
解析:
(1)每秒DMA次数:9600/8/400=3;CPU每秒处理DMA所需的时间:3×5μs=15μs
数据存取所需时间:1200×100ns=120000ns
采用DMA 方式每秒因数据需占用CPU时间:15μs+120000ns=135μs
(2)若采用中断方式,每传送一个字符,CPU就处理中断一次,
采用中断方式每秒因数据需占用CPU时间:1200×5μs=6000μs
21.(2013-22)下列关于中断I/O 方式和DMA 方式比较的叙述中,错误的是()
A. 中断I/O 方式请求的是CPU 处理时间,DMA 方式请求总线使用权
B. 中断响应发生在一条指令执行结束后,DMA 响应发生在下一个总线事物完成后
C. 中断I/O 方式下数据传送通过软件完成,DMA 方式下数据传送由硬件完成
D. 中断I/O 方式适用于所有外部设备,DMA 方式仅适用于快速外部设备
解析:
中断处理方式:在IO设备等待输入数据时,CPU去做别的工作。仅当输完一个数据时,才需CPU去中断处理数据,数据流需要经过CPU。因此中断申请使用的是CPU处理时间,发生的时间是在一条指令执行结束之后,数据是在软件的控制下完成传送。
DMA方式:数据传输的基本单位是数据块,即在CPU与IO设备之间,每次传送至少一个数据块,数据流不用经过CPU;DMA方式每次申请的是总线的使用权,所传送的数据是从设备直接送入内存的,仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在IO控制器(硬件)的控制下完成的。
综上,ABC正确;
对于高速外设若采用中断方式,效率低,所以中断I/O 方式不适用于高速外设
在白中英的计算机组成原理(第六版)P265上有介绍:“选择型DMA控制器不适用于慢速设备。但是多路型DMA控制器却适合于同时为多个慢速外围设备服务。”
综上,D错
所以答案为D
22.假定计算机主频为500MHz,CPI为4。现有设备A和B,其数据传输率分别是2MB/s和40MB/s,对应的I/O接口中各有一个32位的数据缓冲寄存器。请回答下列问题,要求给出计算过程。
(1)若设备A采用定时查询I/O方式,每次输入/输出都至少执行10条指令。设备A最多间隔多长时间查询一次才能不丢失数据?CPU用于设备A输入/输出的时间占CPU总时间的百分比是多少?
(2)在中断I/O方式下,若每次中断响应和中断处理的总时钟周期数至少为400,则设备B能否采用中断I/O方式?为什么?
(3)若设备B采用DMA方式,每次DMA传输的数据块大小为1000B,CPU用于DMA预处理和后处理的总时钟周期数为500,则CPU用于设备B的输入/输出时间占CPU总时间的百分比是多少?
解析:
(1)最长间隔时间为32bit数据缓冲寄存器刚好存满就查询,查询间隔时间再长的话还没用的数据会被覆盖。
设备A准备32bit数据所需时间:4B/2MB=2μs,所以设备A最多间隔2μs查询一次才能不丢失数据
每秒查询次数:1s/2μs=5×105,每秒IO所占时钟周期数:5×105×10×4=20M
CPU用于设备A的IO时间占CPU总时间的百分比:20M/500M=4%
(2)每次中断响应和中断处理时间:400×1/500M=0.8μs;
设备B准备32bit数据所需时间:4B/40MB=0.1μs
每次中断响应和中断处理时间大于设备B准备32bit数据所需时间,会造成数据丢失,所以设备B不能采用中断I/O方式
(3)每秒DMA次数:40MB/1000B=4×104,每秒DMA次数所占时钟周期数:4×104×500=20M
CPU用于设备B的IO时间占CPU总时间的百分比:20M/500M=4%