2012-11-06 41 views
-1

我有一個關於我不是很理解哪個緩存對性能更重要?

  • 考慮所有你能在一個典型的高性能找到緩存 處理器緩存的問題。哪一個可以提高程序的性能,哪個 只是簡單地將數據從一個位置複製到另一個位置?哪些人有 很少或沒有影響?添加一個簡短的解釋。

我可以想到的唯一緩存是L1,L2,L3高速緩存。據我瞭解,L1緩存的目的是延遲最低,但是失敗率最高。 L2/L3緩存速度較慢但缺失率較低。所有這些都提高了程序的性能。如果其中任何一個被取出,則命中時間將增加,或者失敗率將增加。他們都沒有「很少或沒有影響」。因此我不確定要寫什麼。

編輯:這實際上是我在修訂期間遇到的一個過去的考試問題,如果它是任何澄清,在這之前問題問:「您可以在典型的高性能處理器中找到多少緩存。解釋每個人如何爲績效提升做出貢獻。「

也許寄存器也算作緩存?或者也許是主要的記憶呢?但我不明白這是如何改變的。

任何幫助將不勝感激。

謝謝

+0

的「從一個地方到另一個簡單的拷貝數據」你錯過了TLB緩存,並且也是事實,即L1常被分成I-cache和d-緩存。但無論如何,你的作業問題幾乎是無意義的。 –

+0

@PaulR我不得不同意你關於非感性的問題。不幸的是,作爲一個過去的考試問題意味着這樣的事情可能會出現在我今年即將舉行的考試中。 – Synia

+0

這個問題至少有三個錯誤的前提:「哪一個增加了程序的性能」,「它只是簡單地將數據從一個位置複製到另一個位置」以及「哪些只有很少或沒有效果」 - 所有這三個是無意義的。 –

回答

0

有專門的緩存,可能是你的任務的目標。例如,受害者緩存由於衝突而採用從L1,L2和L3緩存中彈出的關聯。這個緩存對於程序來說並不是非常有用,但是如果刪除會增加缺失率。除此之外,我可以想到「高性能處理器」意思是多核,其中緩存共享成爲問題,而L1緩存不應該是共享資源,共享的L2或L3緩存可能會變成

http://en.wikipedia.org/wiki/CPU_cache