典型的有20%的存儲器指令。假設有5%的數據TLB未命中,每個需要100個週期來處理。假設每個指令需要1個週期來執行,每個存儲器操作在高速緩存1週期中,10%的數據訪問是高速緩存未命中,每個高速緩存未命中是15個週期,因此執行1000條指令需要多長時間。關於TLB和Cache在典型程序中的不同之處
我不知道答案,但我與TLB和緩存的混淆相混淆,我的印象是緩存和TLB是相同的東西?
典型的有20%的存儲器指令。假設有5%的數據TLB未命中,每個需要100個週期來處理。假設每個指令需要1個週期來執行,每個存儲器操作在高速緩存1週期中,10%的數據訪問是高速緩存未命中,每個高速緩存未命中是15個週期,因此執行1000條指令需要多長時間。關於TLB和Cache在典型程序中的不同之處
我不知道答案,但我與TLB和緩存的混淆相混淆,我的印象是緩存和TLB是相同的東西?
他們是兩個完全不同的事情......
足夠簡單,一個TLB只包含地址(需要的TLB加快虛擬地址翻譯),而緩存可以包含任何(即,任何種類的內存,代碼或數據)。
謝謝大家,我做了一些問題,並得到了這個概念。 – SandeepC
開銷上高速緩存未命中= 14cycles上TLB未命中
架空= 99cycles
高速緩存未命中= 1000 * 20%* 10%= 20
TLB未命中= 1000 * 20%* 5%= 10
總週期= 1000個週期+(開銷由於高速緩存未命中)+(開銷由於TLB未命中)
= 1000 + (20 * 14) + (10 * 99) = 1000 + 280 + 990 = 2270 cycles
您是否閱讀過http://en.wikipedia.org/wiki/Translation_lookaside_buffer和http://en.wikipedia.org/wiki/CPU_cache? –