下列指令序列用來對兩個數(shù)組進行處理,并產生結果存放在$v0中。假定每個數(shù)組有2500個字,其數(shù)組下標為0到2499。兩個數(shù)組的基地址分別存放在$a0和$a1中,數(shù)組長度分別存放在$a2和$a3中。要求為以下MIPS指令序列加注釋,并簡單說明該過程的功能。假定該指令序列運行在一個時鐘頻率為2GHz的處理器上,add、addi和sll指令的CPI為1;lw和bne指令的CPI為2,則最壞情況下運行所需時間是多少秒?
以下指令序列中,哪些指令對發(fā)生數(shù)據相關?假定采用“取指、譯碼/取數(shù)、執(zhí)行、訪存、寫回”五段流水線方式,那么不用“轉發(fā)”技術的話,需要在發(fā)生數(shù)據相關的指令前加入幾條nop指令才能使這段程序避免數(shù)據冒險?如果采用“轉發(fā)”是否可以完全解決數(shù)據冒險?不行的話,需要在發(fā)生數(shù)據相關的指令前加入幾條nop指令才能使這段程序不發(fā)生數(shù)據冒險?