返回

计算机组成原理笔记|07 IO系统

完结撒花。:.゚ヽ(。◕‿◕。)ノ゚.:。+゚

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控制器

主要功能

组成

传送过程

传送方式

特点

与中断方式区别

小结

例题

注:最后一句话中"故"字多余

习题

  1. 磁盘组有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


  1. 设某磁盘由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


  1. 某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


  1. (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


  1. 下图中假设有磁盘、磁带、打印机三个设备同时工作。磁盘以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%

最后更新于 Feb 22, 2022 21:04 UTC
Built with Hugo
Theme Stack designed by Jimmy