2017-07-07 325 views
0

如果有2個高速緩存L1和L2,其中L1是第一級高速緩存,而L2是低級高速緩存。 假設L1有一個失誤,L2有一個命中。 現在,我們是否需要將所需的塊從L2傳送到L1,然後從L1訪問所需的字節,或者我們是否可以直接從L2訪問所需的字節?多級高速緩存訪​​問時間

平均存取時間可被給定爲: - H1(T1)+(1-H1)(H2)(T1 + T2),其中

H1:擊中L1高速緩存的比率, T1:的存取時間L1, h2:L2緩存的命中率, t2:L2的訪問時間。

回答

1

我們可以直接從L2訪問它,但是我們也會將它放到L1中,以便下次更快地訪問它。

+0

那麼爲什麼我們再次添加時間t1,當我們嘗試在L1未命中L2時訪問?它應該是隻有t2正確,因爲我們可以直接從L2 – Zephyr

+0

訪問那麼,這取決於體系結構。較新的體系結構會同時進入各級緩存,因此您不必支付那段時間的懲罰,而只需應用t2。在較老的體系結構中,首先檢查L1,如果不在那裏,則檢查L2。因此你必須爲兩者付出時間的懲罰。 – GreatA1exander

+0

t1這裏不是我猜測的檢查時間。這是讀取一個字節所需的時間。 – Zephyr