發表文章

目前顯示的是 1月, 2018的文章

99 台大電機丙 計算機結構與作業系統 第6題

Suppose we have a deeply pipelined processor, for which we implement a branch target buffer for the conditional branches, which are 15% of the instructions. Assume that the misprediction penalty is always 3 cycles and the buffer miss penalty is always 6 cycles. Assume 90% hit rate in the buffer and 75% accuracy of the buffer prediction. Assume a base CPI without branch stall is 1. Why is the CPI? A. 1 B. 1.09 C. 1.19 D. 1.675 E. None of the above Answer: C 兩種答案: 1: 1 + 0.15 ( 0.1*6 + 0.9*0.25*3 ) = 1.19125 (張帆) 2: 1 + 0.15 ( 0.25*3 + 0.75*0.1*6 ) = 1.18 https://i.imgur.com/GWItF8W.jpg

101成大電機 計算機組織

這有個data space 為32KB的cache, line size =block size=32Bytes = 2^5 Bytes 所以這個cache可以放 32KB/32B = 1K =2^10 blocks 截至目前為止 byte offset = 5 bits Index = 10 bits 選項(a)中表示有4GB的 memory space are cacheable,代表若用byte address表示的話,有2^32 bytes的空間需要被表示,所以需要32bit當作address。 (a) 32bits的address -10 bits index -5 bits offset= 17 (b),(c) index bit 只受cache影響,10bits (d) 1GB =2^30 bytes,需要30bits才能表達這麼大的空間,所以tag佔其中30-10-5=15bits,類似(a) 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1515472052.A.585.html

交大102計算機系統#14 Hoare Monitor

Monitor 中的Process Q被Blocked,進入Monitor的Waiting Queue等待,此時可以讓另一個Process P使用monitor。 若執行的Process P喚醒process Q,Monitor將存在兩個執行中的Process,違反Mutual Exclusive。 Hoare Monitor就是用來解決這個問題。 普通情況下,一個Process進入Monitor中使Procedure,為了確保只有一個Process使用,首先會wait(mutex),封鎖其他Process進入的可能。 執行完畢,離開Procedure,若有的話會優先招喚救命恩人,使救命恩人們優先使用procedure。 若沒有的話,讓出mutex,離開procedure。 假若目前在procedure中的Process Q不幸得進入waiting Queue,他將會執行x.wait:x_cnt++,Waiting Queue中多一個Process。因為被blocked,空出procedure,做其他離開的人都要做的事:招喚救命恩人或直接空出mutex。 接著,使用 semaphor wait(x-sem),將自己正式block起來,停在x.wait中,等待救命恩人的救援。 而此時Procedure被另一個Process P拿去用,Process P還沒做完,但是Process P想當救命恩人,想去看看Waiting Queue中有沒有process需要被救援,使用X.signal,先確認有沒有受難者(x-cnt>0)。 有的話,先去救命恩人表上填上自己的名字next-cnt++,用signal(x-sem)救出卡在wait(x-sem)的Process Q,自己先讓出procedure,將自己block起來(wait(next))。 被救出的Process Q終於能從 x.wait中脫困,執行x.wait最後的 x-cnt--,離開waiting Queue,也完全脫離x.wait,可以繼續執行procedure。 無論下一次Procedure中的Process Q執行完畢或再度進到waiting Queue,只要離開procedure,就會先檢查有沒有救命恩人們待救 或直接空出Mutex,讓其他人可以使用procedure。...