[理工] 計算機結構 CPI

看板Grad-ProbAsk作者 (Water Blue)時間12年前 (2013/09/01 22:35), 編輯推噓0(004)
留言4則, 2人參與, 最新討論串1/1
設有一計算機,若僅考慮中央處理器(CPU),某應用程式執行的情形為:數據處 理(data processing)類指令執行的比例為50%,數據搬移(data movement)類指 令執行的比例為30%,以及控制流向(control flow)類指令執行的比例為20%。理 想情況下,管線化處理時每道指令所花費的時脈數(CPI, Cycles Per Instruction)為 1.0。以下計算結果均請取至小數點後兩位: (一)若僅考慮數據相依性(data dependency)造成的管線停頓,以致於35%的指令需 停頓1 個週期、25%的指令需停頓2 個週期。則此時的CPI 將為若干? (二)若僅考慮控制相依性(control dependency)造成的管線停頓,以致於在20%的控 制流向指令中,有40%因不改變控制流向而不需停頓,另60%因改變控制流向而 需停頓4 個週期。則此時的CPI 將為若干? (三)同時考慮數據相依性及控制相依性時,有1/5 的數據相依造成的管線停頓及1/3 的控制相依造成的管線停頓將與另一種管線停頓重疊。則此時的CPI 將為若干? 答: 假設有100個指令,CPI=指令數/脈波數=100/100=1 (一)CPI=(40+35*(1+1)+25*(2+1))/100=1.85 (二)CPI=(50+30+20*(40%*1+60%*(1+5))=1.6 小弟的疑問為 1.第(一)(二)小題小弟這樣算對嗎? 因為題目提到停頓幾個週期,所以小弟才又再加1個執行週期 請問這樣加1的動作是否正確呢?還是不需再加1呢? 2.第(三)小題請問該如何計算呢?? 以上是小弟的一些疑惑,還勞煩高手指導了,小弟先行謝恩了,萬分感恩。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.235.221.243

09/03 22:59, , 1F
Q1應該對 CPI=0.35*2+0.25*3+0.4*1=1.85
09/03 22:59, 1F

09/03 22:59, , 2F
Q2應該要加4才對 CPI=0.5+0.3+0.2*0.4+0.2*0.6*5=1.48
09/03 22:59, 2F

09/03 22:59, , 3F
Q3不知道是不是1/5*1.85 + 1/3*1.48 + 7/15*1=1.33
09/03 22:59, 3F

09/04 14:18, , 4F
感謝K大的解說,(二)確實是加4才對,小弟眼殘了
09/04 14:18, 4F
文章代碼(AID): #1I8r2e79 (Grad-ProbAsk)