diff --git a/Computer-Organization/6-input-output-system-ex.md b/Computer-Organization/6-input-output-system-ex.md index 1334923..4ef4662 100644 --- a/Computer-Organization/6-input-output-system-ex.md +++ b/Computer-Organization/6-input-output-system-ex.md @@ -84,7 +84,7 @@ $C.$仅Ⅱ、Ⅲ $D.$Ⅰ、Ⅱ、Ⅲ -解:$D$。$I/O$总线分为三类:数据线、控制线和地址线。数据缓冲寄存器和命令/状态寄存器的内容都是通过数据线来传送的。地址线用以传送与$CPU$交换数据的端口地址。而控制线用以给IO端口发送读/写信号,只是用来对端口进行读/写控制的。因此Ⅰ、Ⅱ和Ⅲ均正确。 +解:$D$。$I/O$总线分为三类:数据线、控制线和地址线。数据缓冲寄存器和命令/状态寄存器的内容都是通过数据线来传送的。地址线用以传送与$CPU$交换数据的端口地址。而控制线用以给$I/O$端口发送读/写信号,只是用来对端口进行读/写控制的。因此Ⅰ、Ⅱ和Ⅲ均正确。 ### I/O地址 @@ -214,6 +214,31 @@ $D.$外中断 解:$A$。用户程序需要输入/输出时,需要调用操作系统提供的接口(请求操作系统服务),此时会引起访管中断,系统由用户态转为核心态。$I/O$中断不存在这种中断。 +**例题** 下列关于“自陷”的叙述中,错误的是()。 + +$A.$自陷是通过陷阱指令预先设定的一类外部中断事件 + +$B.$自陷可用于实现程序调试时的断点设置和单步跟踪 +$C.$自陷发生后$CPU$将转去执行操作系统内核相应程序 + +$D.$自陷处理完成后返回到陷阱指令的下一条指令执行 + +解:$A$。本题更是操作系统的考点。自陷是一种内部异常,$A$错误。在$80x86$中,用于程序调试的“断点设置”功能是通过“自陷”方式实现的,$B$正确。执行到自陷指令时,无条件或有条件地自动调出操作系统内核程序进行执行,$C$正确。$CPU$执行“陷阱指令”后,会自动地根据不同“陷阱”类型进行相应的处理,然后返回到“陷阱指令”的下一条指令执行,$D$正确。 + +#### 端口数据类型 + +**例题** 在采用中断$I/O$方式控制打印输出的情况下,$CPU$和打印控制接口中的$I/O$端口之间交换的信息不可能是()。 + +$A.$打印字符 + +$B.$主存地址 + +$C.$设备状态 + +$D.$控制命令 + +解:$B$。在程序中断$I/O$方式中,$CPU$和打印机直接交换,打印字符直接传输到打印机的 $I/O$端口,不会涉及主存地址。而$CPU$和打印机通过$I/O$端口中的状态口和控制口来实现交互。 + #### 中断优先级 **例题** 中断响应由高到低的优先次序宜用()。 @@ -228,6 +253,20 @@ $D.$程序性→$I/O$→访管 解:$B$。硬件故障中断属于最高级,其次是软件中断,所以机器故障最高。重新启动应该等待其他任务全部完成,所以优先级最低。访管指令是软件指令中最紧急的,所以软件中断中优先级最高。程序性中断要高于重新启动。所以次序为机器故障→访管→程序性→重新启动。 +#### 中断过程 + +**例题** 下列关于外部$I/O$中断的叙述中,正确的是()。 + +$A.$中断控制器按所接收中断请求的先后次序进行中断优先级排队 + +$B.CPU$响应中断时,通过执行中断隐指令完成通用寄存器的保护 + +$C.CPU$只有在处于中断允许状态时,才能响应外部设备的中断请求 + +$D.$有中断请求时,$CPU$立即暂停当前指令执行,转去执行中断服务程序 + +解:$C$。中断优先级由屏蔽字而非请求的先后次序决定,$A$错误。中断隐指令完成的工作有:①关中断;②保存断点;③引出中断服务程序,通用寄存器的保护由中断服务程序完成,$B$错误。中断允许状态即开中断后,才能响应中断请求,$C$正确。有中断请求时,如果是关中断的状态,或新中断请求的优先级较低,则不能响应新的中断请求,$D$错误。 + #### 多重中断技术 **例题** 设某机有$4$个中断源$A$、$B$、$C$、$D$,其硬件排队优先次序为$A>B>C>D$,现要求将中断处理次序改为$D>A>C>B$。 @@ -284,6 +323,30 @@ $CPU$进行的操作为:关中断、保存断点、引出中断服务程序。 ### DMA方式 +**例题** 以下有关$DMA$方式的叙述中,错误的是()。 + +$A.$在$DMA$方式下,$DMA$控制器向$CPU$请求的是总线使用权 + +$B.DMA$方式可用于键盘和鼠标的数据输入 + +$C.$在数据传输阶段,不需要$CPU$介入,完全由$DMA$控制器控制 + +$D.DMA$方式要用到中断处理 + +解:$B$。$DMA$方式只能用于数据传输,它不具有对异常事件的处理能力,不能中断现行程序,而键盘和鼠标均要求$CPU$立即响应,因此无法采用$DMA$方式。 + +**例题** 在$DMA$方式下,数据从内存传送到外设经过的路径是()。 + +$A.$内存→数据总线→数据通路→外设 + +$B.$内存→数据总线→$DMAC$→外设 + +$C.$内存→数据通路→数据总线→外设 + +$D.$内存→$CPU$→外设 + +解:$B$。$DMA$方式不经过$CPU$,输出从内存经过数据总线,传送到$DMA$控制器的$DMAC$中,再传送给外设。类似这样的传输路径称为数据通路。 + **例题** 某计算机的$CPU$主频为$500MHz$,$CPI$为$5$(即执行每条指令平均需$5$个时钟周期)。假定某外设的数据传输率为$0.5MB/s$,采用中断方式与主机进行数据传送,以$32$位为传输单位,对应的中断服务程序包含$18$条指令,中断服务的其他开销相当于$2$条指令的执行时间。请回答下列问题,要求给出计算过程。 1)在中断方式下,$CPU$用于该外设$I/O$的时间占整个$CPU$时间的百分比是多少? @@ -310,6 +373,26 @@ $CPU$用于$DMA$处理的总开销为$1000\times500=0.5M$个时钟周期。 $CPU$用于外设$I/O$的时间占整个$CPU$时间的百分比为$0.5M\div500M=0.1\%$。 +**例题** 假定某计算机的$CPU$主频为$80MHz$,$CPI$为$4$,平均每条指令访存$1.5$次,主存与$Cache$之间交换的块大小为$16B$,$Cache$的命中率为$99\%$,存储器总线宽带为$32$位。回答下列问题。 + +1)该计算机的$MIPS$数是多少?平均每秒$Cache$缺失的次数是多少?在不考虑$DMA$传送的情况下,主存带宽至少达到多少才能满足$CPU$的访存要求? + +2)假定在$Cache$缺失的情况下访问主存时,存在$0.0005\%$的缺页率,则$CPU$平均每秒产生多少次缺页异常?若页面大小为$4KB$,每次缺页都需要访问磁盘,访问磁盘时$DMA$传送采用周期挪用方式,磁盘$I/O$接口的数据缓冲寄存器为$32$位,则磁盘$I/O$接口平均每秒发出的$DMA$请求次数至少是多少? + +3)$CPU$和$DMA$控制器同时要求使用存储器总线时,哪个优先级更高?为什么? + +4)为了提高性能,主存采用$4$体低位交叉存储模式,工作时每$1/4$个存储周期启动一个体。若每个体的存储周期为$50ns$,则该主存能提供的最大带宽是多少? + +解: + +1)平均每秒$CPU$执行的指令数为$80M/4=20M$,因此 $MIPS$数为$20$。平均每条指令访存$1.5$次,因此平均每秒$Cache$缺失的次数$=20M\times1.5\times(1-99\%)=300K$。当$Cache$缺失时,要补上缺页的数据量,且$CPU$访问主存,主存与$Cache$之间以块为传送单位,所以要用块的大小来计算,此时主存带宽为$16B\times300k/s=4.8MB/s$。 + +2)题中假定在$Cache$缺失的情况下访问主存,平均每秒产生缺页中断$300000\times0.0005\%=1.5$次。因为存储器总线宽度为$32$位,所以每传送$32$位数据,磁盘控制器发出一次$DMA$请求,因此平均每秒磁盘$DMA$请求的次数至少为$1.5\times4KB\div4B=1.5K=1536$。 + +3)$CPU$和$DMA$控制器同时要求使用存储器总线时,$DMA$请求的优先级更高。因为$DMA$请求得不到及时响应,I/O传输数据可能会丢失。 + +4)最大带宽是四个体在一个存储周期内全部循环运行,四个体的总带宽就是$4\times4B$,$4$体交叉存储模式能提供的最大带宽为$4\times4B\div50ns=320MB/s$。 + ### 程序中断与DMA **例题** 下列说法中,错误的是()。 @@ -330,4 +413,16 @@ $C.$Ⅱ、Ⅳ $D.$Ⅰ、Ⅱ、Ⅲ、Ⅳ -解:$B$。程序中断过程是由硬件执行的中断隐指令和中断服务程序共同完成的,因此Ⅰ正确。每条指令周期结束后,$CPU$会统一扫描各个中断源,然后进行判优来决定响应哪个中断源,而不是在每条指令的执行过程中这样做,因此Ⅱ错误。$CPU$会在每个存储周期结束后检查是否有$DMA$请求,而不是在指令执行过程的末尾这样做,因此Ⅲ错误。中断服务程序的最后指令通常是中断返回指令,该指令在中断恢复后,即$CPU$中的所有寄存器都已恢复到了中断前的状态,因此该指令不需要进行无条件转移,因此IⅣ错误。 +解:$B$。程序中断过程是由硬件执行的中断隐指令和中断服务程序共同完成的,因此Ⅰ正确。每条指令周期结束后,$CPU$会统一扫描各个中断源,然后进行判优来决定响应哪个中断源,而不是在每条指令的执行过程中这样做,因此Ⅱ错误。$CPU$会在每个存储周期结束后检查是否有$DMA$请求,而不是在指令执行过程的末尾这样做,因此Ⅲ错误。中断服务程序的最后指令通常是中断返回指令,该指令在中断恢复后,即$CPU$中的所有寄存器都已恢复到了中断前的状态,因此该指令不需要进行无条件转移,因此Ⅳ错误。 + +**例题** 下列关于中断$I/O$方式和$DMA$方式比较的叙述中,错误的是()。 + +$A.$中断$I/O$方式请求的是$CPU$处理时间,$DMA$方式请求的是总线使用权 + +$B.$中断响应发生在一条指令执行结束后,$DMA$响应发生在一个总线事务完成后 + +$C.$中断$I/O$方式下数据传送通过软件完成,$DMA$方式下数据传送由硬件完成 + +$D.$中断$I/O$方式适用于所有外部设备,$DMA$方式仅适用于快速外部设备 + +解:$D$。$DMA$方式适用于不需要中断的数据传输设备。