同一个子空间,不可能跳出它本身所在的256MB的子空间,所以跳转目标地址范围的大小是256M,也即,假定跳转指令地址的高4位为X,则跳转目标地址范围是X0000000H~XFFFFFFCH。
(6)单周期处理器的时钟周期最小为200+50+100+200+50=600ps;多周期处理器的时钟周期最小为200ps。对于单周期数据通路中的10次循环执行,第1~4条指令执行了10次,第5~6条指令执行了9次,因此,共用了(4×10+2×9)×600=34800ps=34.8ns。对于多周期数据通路中的10次循环执行,sll、add和addi指令都需要4个时钟周期,bne和j指令需要3个时钟周期,lw指令需要5个时钟周期,因此,一共用了(4+4+5+3)×10×200+(4+3)×9×200=44600ps=44.6ns。
(7)第1和2、2和3、5和1条指令之间的数据相关可以被消除,但不能消除第3和4条指令之间的load-use冒险。
10次循环共有10个时钟的load-use阻塞;此外,对于bne控制(分支)冒险,第1次和最后1次预测错误,所以有2次需要对预取执行的指令进行冲刷。因为条件检测和转移目标地址修改都在“执行(Ex)”阶段进行,因此,分支延迟损失时间片(分支延迟槽)为2,也即每次冲刷掉2条指令。因此,2次共被冲刷掉4条指令,使流水线阻塞了4个时钟周期;对于最后一条jump指令,因为在“译码(ID)”阶段进行跳转目标地址修改,所以每次有一个时钟阻塞,10次循环jump指令共执行了9次,因而有9个时钟周期的阻塞。综上可知,10次循环总共有10+4+9=23次阻塞,且第1~4条指令各执行了10次,第5~6条指令各执行了9次,因此,10次循环所用的时钟周期数为4×10+2×9+23=81,总时间为81×200ps=16.2ns。执行上述程序段时,流水线处理器的速度大约是单周期处理器速度的34.8/16.2=2.15倍;大约是多周期处理器速度的44.6/16.2=2.75倍。
3.(10分)某计算机CPU主频为1GHz,所连接的某外设的最大数据传输率为40kBps,该外设接口中有一个32位的数据缓存器,相应的中断服务程序的执行时间为500个时钟周期。请回答下列问题:
(1)是否可用中断方式进行该外设的输入输出?若能的话,在该设备持续工作期间,CPU用于该设备进行输入/输出的时间占整个CPU时间的百分比大约为多少?
(2)若该外设的最大数据传输率提高到4MBps,则可否用中断方式进行输入输出?若此时采用周期挪用DMA方式进行输入/输出,每挪用一个周期传送一个32位数据,一次DMA传送完成1000字节的数据传送,DMA初始化和后处理的时间为2000个时钟周期,不考虑访存冲突,则CPU用于该设备进行输入/输出的时间占整个CPU时间的百分比大约为多少?
参考答案:
(1)因为该外设接口中有一个32位数据缓存器,所以,若用中断方式进行输入/输出的话,可以每32位数据进行一次中断请求,因此,中断请求的时间间隔为106×4B/40kB=100μs。
对应的中断服务程序的执行时间为(1/1GHz)×500×106=0.5μs,因为中断响应过程就是执行一条隐指令的过程,所用时间相对于中断处理时间(即执行中断服务程序的时间)而言,几乎可以忽略不计,因而整个中断响应并处理的时间大约1μs多一点,远远小于中断请求的间隔时间。因此,可以用中断方式进行该外设的输入输出。
若用中断方式进行该设备的输入/输出,则该设备持续工作期间,CPU用于该设备进行输入/输出的
时间占整个CPU时间的百分比大约为0.5/100=0.5%(也可以通过考察1秒钟内500M个时钟周期中有多少时钟周期用于中断来计算百分比,其计算公式为(106/100×500)/500M=1%)。
(2)若外设的最大传输率为4MBps,则中断请求的时间间隔为106×4B/4MB=1μs。而整个中断响应并处理的时间大约0.5μs多一点,中断请求的间隔时间和中断响应处理时间太接近,虽然可以用中断方式进行该外设的输入输出,但不太合适
若用周期挪用DMA方式,则一秒钟内产生的DMA次数为4MB/1000B=4000;每次DMA传送前都需要2000个时钟周期进行DMA初始化和DMA结束处理,所以,CPU用于DMA处理的总开销为4000?2000=8000000=8M个时钟周期;而CPU的时钟频率为1GHz,即CPU每秒钟内产生1000M个时钟周期,故CPU用于该外设I/O的时间占整个CPU时间的百分比8M/1000M=0.8%(也可通过考察相邻两次
DMA请求间隔时间内
CPU用于该外设
I/O的时间来计算,即
(2000×1/1GHz)/(1000B/4MB)=0.8%)。 得分 五、简答题(共16分,答案写在答题纸上)
1. 假定某一个高级语言源程序P中有乘、除运算,但机器M中不提供乘、除运算指令,
则程序P能否在机器M上运行?为什么?(3分)
2. 为什么要考虑cache的一致性问题?读操作时是否要考虑cache的一致性问题?为什么?(3分) 3. 简述虚拟地址到物理地址的转换过程。(2分)
4. 微程序控制器的特点是什么?适合于实现哪种类型的指令?(3分) 5. 各流水段寄存器的宽度是否一样?为什么?(2分) 6. 什么是I/O端口?有哪两种I/O端口编址方式?(3分)
相关推荐: