Re: [理工] [計組] 2-bit predictor

看板Grad-ProbAsk作者時間14年前 (2011/08/22 13:12), 編輯推噓5(5028)
留言33則, 5人參與, 最新討論串3/3 (看更多)
※ 引述《blackZ2 (BB)》之銘言: : ※ 引述《mqazz1 (無法顯示)》之銘言: : assume that the breakdown of dynamic instructions into various instruction : categories is as follows: : R-type 50%, beq 15%, jump 10%, lw 15%, sw 10% : branch predictor accuracies: always-taken 40%, always not-taken 60%, 2-bit 80% : (1) with the 2-bit prdictor, what speed-up would be achieved if we could : convert half of the branch instructions in a way that replaces a branch : instruction with an ALU instruction? : assume that correctly and incorrectly predicted instructions have the same : chance of being replaced : 1 + 3*(1-0.8)*0.15 : -------------------------------- : 1 + 3*(1-0.8)*0.15*0.5 : 請問這題為什麼要加1? : 因為理想CPI為1,然後加上branches penalty 就是實際CPI : (2)同上,把黃字改成two ALU : 1 + 3*(1-0.8))*0.15 : -------------------------------- : 1 + (1 + 3*(1-0.8))*0.15*0.5 : 請問為什麼還要再加1? : 因為這各式子化簡了,所以看起來很怪 : 請想成 1 + 0.15*0.5*0.2*3 + 0.15*0.5*1 : 理想CPI 沒有轉換的一半branch 一半branch轉成兩個ALU,指令會變多 : 化簡之後就是 1+(1+0.2*3)*0.15*0.5 : 這是我自己的想法,希望是對的 這樣說好精簡,我來幫你多做補充。 1      + 0.15*0.5*0.2*3 + 0.15*0.5*1     理想CPI, 猜錯的branch中   猜對和猜錯的branch轉成兩個ALU 已經包含猜對的branch  未轉換的一半branch  的部分,若把它拆成  中未轉換成ALU的部分。             0.15*0.5*0.8*1+ 0.15*0.5*0.2*1將會更清楚。                         對於猜對的部分,原本只需花一次                         執行,但轉成ALU後要花兩次執行                         這一項就是指多做的那一次。                         原本花的那一次已經包含在理想                         的CPI裡面。                         對於猜錯的部分,原本要有3的                         penalty,但是轉成ALU後可以想為                         執行兩次ALU即可取代penalty, 而原本就需要做一次了,剩下的那                         次是多做的,整體來看就跟上面那                         段是一樣的。 其實這題答案有問題,因為一個branch轉換成兩個ALU, 勢必會造成指令的比例改變,所以真正的答案應該是: 1 + 1*(0.15/1.075)*0.5 + 3*0.2*(0.15/1.075)*0.5 因為現在所有指令加起來是107.5%,所以原本比例要除掉1.075做修正, 我有把上面這個想法寄信跟張凡說過,張凡也拿去問同事後最後的結論還是, "照課本吧XD" 所以就當我沒說過這段吧XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.249.12.39 ※ 編輯: wheels 來自: 111.249.12.39 (08/22 13:34)

08/23 00:48, , 1F
"照課本吧XD" 張凡每次都很無奈的講這一句
08/23 00:48, 1F

08/23 01:11, , 2F
白算盤的錯誤率真的還滿高的感覺@_@
08/23 01:11, 2F

08/24 01:08, , 3F
這題可改成3個ALU嗎 如果可以的話那公式是怎麼算?
08/24 01:08, 3F

08/25 00:38, , 4F
如果改成3個ALU取代的話就是多做兩次,所以最後那邊改成
08/25 00:38, 4F

08/25 00:39, , 5F
0.15*0.5*2就可以了
08/25 00:39, 5F

08/25 00:57, , 6F
當然也是忽略掉比例有變的情況下啦!
08/25 00:57, 6F

08/25 22:47, , 7F
有個地方想再請問 為何一個alu取代時 只把原式*0.5
08/25 22:47, 7F

08/25 22:48, , 8F
然後 兩個ALU才多加一個 0.15*0.5*1 ?
08/25 22:48, 8F

08/25 22:53, , 9F
不是不是,原式是0.15*0.5*1,是把最後乘1改成乘2,因為變
08/25 22:53, 9F

08/25 22:53, , 10F
成多作兩次了!
08/25 22:53, 10F

08/25 22:59, , 11F
唉呀我看錯你的問題了,我以為你問的是是3個ALU
08/25 22:59, 11F

08/25 22:59, , 12F
用一個alu取代時,因為原本就需要作一次啦,已經算在理想
08/25 22:59, 12F

08/25 23:00, , 13F
CPI裡面了,後面有加的都是額外的
08/25 23:00, 13F

08/26 00:08, , 14F
原本ALU需要做一次? 是指跑過5個stage? 還是在哪裡的ALU?
08/26 00:08, 14F

08/26 01:14, , 15F
在0.15*0.5*0.2*3裡面最後乘上的那個3是因為如果wrong的時
08/26 01:14, 15F

08/26 01:15, , 16F
候將造成管線空了三個clock cycle time,而在0.15*0.5*1裡
08/26 01:15, 16F

08/26 01:16, , 17F
最後乘上那個1是因為管線裡原本預測對的話一個clock cycle
08/26 01:16, 17F

08/26 01:17, , 18F
time將完成一個指令,但是branch因為置換的關係會讓這個指
08/26 01:17, 18F

08/26 01:17, , 19F
令實際上要兩個clock cycle time才能跑完,所以多一次。
08/26 01:17, 19F

08/26 01:18, , 20F
因為pipeline裡面在指令數很多的時候每一個clock cycle
08/26 01:18, 20F

08/26 01:19, , 21F
time都會有一個指令完成才能這樣看的。
08/26 01:19, 21F

08/26 01:35, , 22F
第三部份 0.15*0.5* 1(=0.8*1+.02*1) 是說換成ALU 所以沒有
08/26 01:35, 22F

08/26 01:36, , 23F
pently 這樣嗎?
08/26 01:36, 23F

08/26 01:37, , 24F
只是單純把 猜對和猜錯的 加起來
08/26 01:37, 24F

08/26 20:21, , 25F
因為已經整個用兩個ALU取代了,你可以想成已經沒有penalty
08/26 20:21, 25F

08/26 20:22, , 26F
這個概念在裡面,只有多做一次所以才造成要多加的部分。
08/26 20:22, 26F

08/26 20:22, , 27F
我發現你可能卡在為啥換過去就沒有penalty了這個想法裡,
08/26 20:22, 27F

08/26 20:23, , 28F
想乘換過去就只有多做一次,管線內沒有需要停的時候,這樣
08/26 20:23, 28F

08/26 20:24, , 29F
可能會比較清楚,而0.15*0.5*0.2*3後面乘上3是因為wrong將
08/26 20:24, 29F

08/26 20:24, , 30F
造成管線要清空後面三個指令,才會有所謂的penalty的概念!
08/26 20:24, 30F

08/26 20:25, , 31F
希望有幫助到你。
08/26 20:25, 31F

01/01 20:47, , 32F
看完推!!!
01/01 20:47, 32F

09/11 14:29, , 33F
希望有幫助到你。 https://daxiv.com
09/11 14:29, 33F
文章代碼(AID): #1EKULO7J (Grad-ProbAsk)
文章代碼(AID): #1EKULO7J (Grad-ProbAsk)