2013-12-15 51 views
1

我真的被困在我的操作系統類的這個問題上,我不想讓別人給我答案,而是如果有人能告訴我如何解決它。尋呼和TLB操作系統

例問題:

該系統使用簡單的尋呼和TLB

  • 每個存儲器訪問需要80ns的

  • TLB存取需要10ns的

  • TLB命中率80%。

由於TLB計算出實際的加速比嗎?

注意:我改變了訪問需要的內存和TLB訪問需要的部分問題,因爲正如我所說我不想要答案,只是一種解決方法。

+0

80%的時間需要10ns,佔用時間的20%採取80ns?計算平均時間爲TLB – James

+0

@James Awesome謝謝,我已經看到了以下示例答案,例如: - 命中率= 80%,TLB訪問時間= 2 ns,內存訪問= 20 ns。 80%* 22納秒+ 20%* 42納秒= 26納秒 我不明白他們從哪裏得到42從 – user3072131

回答

1

如果虛擬地址轉換被高速緩存在TLB中,我們只需要在TLB中進行一次查找,就可以給我們一個物理地址,我們就完成了。有趣的部分是如果我們需要做頁表走。仔細考慮如果系統在TLB中找不到地址(系統已經必須執行TLB查找),系統必須執行哪些操作。內存訪問需要80ns,但您需要實際獲取物理地址的數量是多少?幾乎每個分頁架構都遵循頁表存儲在內存中的模式,只有入口點,指向第一個頁表(根)的基址的地址位於寄存器中。

如果您有足夠的時間通過將其與TLB訪問時間進行比較來計算加速時間。

+0

真棒謝謝,但我想知道如何解決它,我見過這樣的例子答案如: - 問題: - 命中率= 80%,TLB訪問時間= 2 ns,存儲器訪問= 20 ns。 答案: - 80%* 22 ns + 20%* 42 ns = 26 ns 我不明白他們從 – user3072131

+0

得到42的位置我假設42由1個TLB查找(2ns),1個內存查找page-table(20ns)和一個內存查找尋找由page-table walk(20ns)發現的物理地址。 – zgerd

0

在TLB命中80%的訪問時間爲2ns,並訪問該頁面在主存儲器需要20ns的因此一個部分是需要 0.8×(2 + 20)

在TLB未命中即(1-0.8) 20%,因爲你再次檢查TLB,所以需要2ns,當它是TLB未命中時,它將檢查到頁表中,但頁表的基地址是進入主存儲器,因此它需要20ns,當它搜索到PT時,它會得到期望的幀並再次需要從主存儲器訪問數據未命中,從而計算的存儲器存取時間是 0.2×(2 + 20 + 20)

從以上2:

有效訪問時間= 0.8×(2 + 20)+ 0.2×(2 + 20 + 20) = 26ns