填空题
假定计算机的主频为500MHz,CPI为4。现有设备A和B,其数据传输率分别为2MB/s和40MB/s,对应I/O接口中各有一个32位数据缓冲寄存器。请回答下列问题,要求给出计算过程。
问答题
若设备A采用定时查询I/O方式,每次输入/输出都至少执行10条指令。设备A最多间隔多长时间查询一次才能不丢失数据?CPU用于设备A输入/输出的时间占CPU总时间的百分比至少是多少?
【正确答案】程序定时向缓存端口查询数据,由于缓存端口大小有限,必须在传输完端口大小的数据时访问端口,以防止部分数据没有被及时读取而丢失。设备A准备32位数据所用时间为4B/2MB=2us,所以最多每隔2us必须查询一次,每秒的查询次数至少是1s/2us=5×105,每秒CPU用于设备A输入/输出的时间至少为5×105×10×4=2×107个时钟周期,占整个CPU时间的百分比至少是2×107/500M=4%。
【答案解析】
问答题
在中断I/O方式下,若每次中断响应和中断处理的总时钟周期数至少为400,则设备B能否采用中断I/O方式?为什么?
【正确答案】中断响应和中断处理的时间为400×(1/500M)=0.8us,这时只需判断设备B准备32位数据要多久,如果准备数据的时间小于中断响应和中断处理的时间,那么数据就会被刷新、造成丢失。经过计算,设备B准备32位数据所用时间为4B/40MB=0.1us,因此,设备B不适合采用中断I/O方式。
【答案解析】
问答题
若设备B采用DMA方式,每次DMA传送的数据块大小1000B,CPU用于DMA预处理和后处理的总时钟周期数为500,则CPU用于设备B输入/输出的时间占CPU总时间的百分比最多是多少?
【正确答案】在DMA方式中,只有 处理和后处理需要CPU处理,数据的传送过程是由DMA控制。设备B每秒的DMA次数最多为40MB/1000B=40000,CPU用于设备B输入/输出的时间最多为40000×500=2×107个时钟周期,占CPU总时间的百分比最多为2×107/500M=4%。
【答案解析】