问答题
假设硬盘传输数据以32位的字为单位,传输速率为1MB/s。CPU的时钟频率为50MHz。
问答题
采用程序查询的输入/输出方式,假设查询操作需要100个时钟周期,求CPU为I/O查询所花费的时间比率,假定进行足够的查询以避免数据丢失。
【正确答案】假设采用程序查询方式,则可算出硬盘每秒进行查询的次数为:1MB/4B=250K次,而查询250K次需要的时钟周期数为:250K×100=25000K,则可算出CPU为I/O查询所花费的时间比率为
[*]
【答案解析】
问答题
采用中断方式进行控制,每次传输的开销(包括中断处理)为100个时钟周期。求CPU为传输硬盘数据花费的时间比率。
【正确答案】假设采用中断方法进行控制,每传送一个字需要的时间为[*],而每次传输的开销为100个时钟周期,还得先计算出时钟周期,即[*]。所以,每次传输的开销为2μs,故CPU为传输硬盘数据花费的时间比率为[*]。
【答案解析】
问答题
采用DMA控制器进行输入/输出操作,假定DMA的启动操作需要1000个时钟周期,DMA完成时处理中断需要500个时钟周期。如果平均传输的数据长度为4KB,问在硬盘工作时处理器将用多少时间比率进行输入/输出操作,忽略DMA申请使用总线的影响。
【正确答案】解法一:假设采用DMA控制器进行传输,由于平均传输的数据长度为4KB,因此可以得到传输的时间为:[*]。因为在数据传输的过程中,CPU是不需要管的,只需要启动和完成时的处理(即1500个时钟周期),所以CPU为传输硬盘数据花费的时间比率为
[*]
解法二:传送4KB的数据长度需要的时间为[*]。如果磁盘不断进行传输,每秒所需DMA辅助操作的时钟周期数为
[*]
所以CPU为传输硬盘数据花费的时间比率为
[*]
解法三:可算得每秒传输次数1MB/4KB=250次,所以CPU为传输硬盘数据花费的时间比率为
[*]
【答案解析】
问答题
假设磁盘存储器转速为3000r/min,分8个扇区,每扇区存储1KB,主存与磁盘存储器数据传送的宽度为16位(即每次传送16位)。假设一条指令最长执行时间为25s。
试问:是否可采用一条指令执行结束时响应DMA请求的方案,为什么?若不行,应采用什么方案?
【正确答案】磁盘存储器转速为3000r/min,即50r/s。每转传送的数据为8×1KB=8KB,所以数据传输率为8KB×50r/s=400KB/s。16位数据的传输时间=16位/(400KB/s)=2B/(400KB/s)=5μs。由于5μs远小于25s,因此不能采用一条指令执行结束响应DMA的请求方案。应采用每个CPU机器周期末查询及响应DMA的请求方案。
【答案解析】