Re: [理工] [計系] 101 台大電機丙

作者: galapous (墨)   2015-01-18 16:04:21
※ 引述《kather (Kather)》之銘言:
: ※ 引述《winnie48 (winnie)》之銘言:
: : 先附上題目連結:
: : http://exam.lib.ntu.edu.tw/sites/default/files/exam/graduate/101/101404.pdf
: : 想要問第7題和第18題(答案分別是AD及CE)
: 第7
: 首先沒有stall時CPI是1
: 題目說系統執行指令是假定j跟beq都不會更改原有流程
: 直接把剩下的指令都拿進pipeline跑
: => 如果流程有變(jump換了位置 beq成立換了位置)
: => 原本吃進來的指令都是錯的
: => 系統就要stall 把錯誤的指令清出pipeline
: 先了解一下清除這些指令的所需花費
: j =>一定要清除 j是在第二個時脈就跳走了
: =>pipeline的IF階段是個錯誤的指令
: =>stall一個
: beq =>第三階段跳
: =>stall兩個
: 這台機器上的程式有
: 5%jump 20%branch,其中的60%會跳
: 5%的指令 (j)會stall 1個cycle=>多 5%的cycle在stall上
: 12%的指令(br)會stall 2個cycle=>多24%的cycle在stall上
: 總cycle129%
: 又指令數不變,CPI => 129%
: 原本的執行時間就是(Ins指令數先不管它 反正執行的都一樣多)
: CPI * Ins * CycleTime
: 129% * ins * 10ns
: 看看後來
: 把第一個階段改成兩階段,stall多一個cycle了
: j的stall變成2個cycle=>多10% cycle
: b的stall變成3個cycle=>多36% cycle
: 總cycle:146%
: 後來的執行時間
: CPI * Ins * CycleTime
: 146% * Ins * 8ns
: 就是1290%ins vs 1168%ins(時間)(ins是指令數)
: 速度差異是1.1倍,後來的較快
: 第8
: TLB找到了=>知道他在mem中的哪個位置,直接去那個位置找
: =>1次TLB,1次mem
: TLB找不到=>先去查表,表幾層就查幾次
: =>例如one-level:
: =>一次查TLB 一次查表(mem) 最後一次知道在哪了去拿(mem)
: =>1次TLB,2次mem
: 存取的花費=>TLB:50ns , Mem:300ns
: (A)90%hit , one-level
: 90%*(50+300) +
: 10%*(50+300+300)
: = 380
: 題目說390,錯
: (B)99%hit , one-level
: 99%*(50+300) +
: 1% *(50+300+300)
: = 353
: 題目說356,錯
: (C)90%hit , two-level
: 90%*(50+300) +
: 10%*(50+300+300+300)
: =410 對
: (D)一樣的算式...
: 356
: (E)99%hit , three-level
: 359
: : 遇到這種計算都不太會算(但是好像蠻常考...)
: : 拜託能給我詳細的解法,謝謝大家!!
剛寫完這年,
想問一下這串討論到的第18題,
在計算tlb miss時間時為何要把tlb存取時間跟查表時間相加呢?
印象中計組裡好像是說tlb跟查表是同時進行不是嗎?
這樣查表時間跟tlb查詢時間應該是重疊的?
作者: galapous (墨)   2015-01-18 16:29:00
還有想問c-scan跟c-look回程時間大家都有算嗎?感謝
作者: maque (Roadside)   2015-01-18 17:42:00
自己是都有算進去,因為想到look是電梯演算法,如果題目有說回程是快速定位話,才覺得不用算
作者: galapous (墨)   2015-01-18 21:26:00
3Q

Links booklink

Contact Us: admin [ a t ] ucptt.com