(1) 第一问。程序定时向缓存端口...
(1) 第一问。程序定时向缓存端口查询数据,由于缓存端口大小有限,必须在传输完端口大小的数据时访问端口,以防止部分数据没有被及时读取而丢失。设备A的数据传输率为2MBps,设备A准备32位数据所用时间为32bit/2MBps=4B/2MBps=2μs,所以最多每隔2μs必须查询一次。
第二问。
方法一:通过时间计算
因为计算机的主频为500MHz,时钟周期为2ns,CPI为4,平均执行一条指令需要2ns×4=8ns,每次输入/输出都至少执行10条指令,所以每次输入/输出需要CPU时间为8ns×10=80ns,又因为根据第一问,设备A最多每隔2μs必须查询一次,所以CPU用于设备A输入输出的时间占CPU总时间的百分比至少是80ns/2μs=4%。
方法二:通过频率计算
因为计算机CPI为4,每次输入/输出都至少执行10条指令,所以每次输入/输出都至少需要4×10=40个时钟周期,又因为根据第一问,设备A最多每隔2μs必须查询一次,即每秒的查询次数至少是1s/2μs=0.5M,所以CPU每秒用于设备A输入/输出的时钟周期数至少为40×0.5M=20M,又因为计算机的主频为500MHz,即每秒有500M个时钟周期,所以CPU用于设备A输入输出的时间占CPU总时间的百分比至少是20M/500M=4%。
(2) 方法一:通过时间计算
因为计算机的主频为500MHz,时钟周期为2ns,在中断I/O方式下,若每次中断响应和中断处理的总时钟周期数至少为400,则每次中断响应和中断处理的时间至少为2ns×400=800ns。这时只需判断设备B准备32位数据要多久,如果准备数据的时间小于中断响应和中断处理的时间,那么数据就会被刷新、造成丢失。设备B的数据传输率为40MBps,设备B准备32位数据所用时间为32bit/40MBps=4B/40MBps=100ns<800ns。因此,设备B不适合采用中断I/O方式。
方法二:通过频率计算
因为计算机的主频为500MHz,即每秒有500M个时钟周期,在中断I/O方式下,若每次中断响应和中断处理的总时钟周期数至少为400,计算机的处理中断的频率至多为500MHz/400=1.25MHz。这时只需计算设备B可以多少次将数据送入32位数据缓冲寄存器的频率。如果设备B可以多少次将数据送入32位数据缓冲寄存器的频率大于计算机的处理中断的频率,那么数据就会被刷新、造成丢失。设备B的数据传输率为40MBps,设备B可以多少次将数据送入32位数据缓冲寄存器的频率为40MBps/32bit=40MBps/4B=10MHz>1.25MHz。因此,设备B不适合采用中断I/O方式。
(3) 在DMA方式中,只有预处理和后处理需要CPU处理,数据的传送过程是由DMA控制。
方法一:通过时间计算
因为计算机的主频为500MHz,时钟周期为2ns,CPU用于DMA预处理和后处理的总时钟周期数为500,所以每次DMA预处理和后处理的时间为2ns×500=1μs。设备B每次DMA传送的数据块大小1000B,设备B的数据传输率为40MBps,设备每次DMA传送的时间(包含DMA预处理和后处理的时间)为1000B/40MBps=25μs,CPU用于设备B输入/输出的时间占CPU总时间的百分比最大是1μs/25μs=4%。
方法二:通过频率计算
设备B每次DMA传送的数据块大小1000B,设备B的数据传输率为40MBps,设备B每秒DMA次数至多为40MB/1000B=0.04M,CPU用于DMA预处理和后处理的总时钟周期数为500,CPU每秒用于设备B输入/输出的时钟周期至多为0.04M×500=20M,因为计算机的主频为500MHz,即每秒有500M个时钟周期,CPU用于设备B输入/输出的时间占CPU总时间的百分比最大是20M/500M=4%。
登录后提交答案
暂无评论,来抢沙发