簡體   English   中英

緩存如何被打敗?

[英]How can caches be defeated?

我這周的作業有這個問題,我不明白緩存是如何被打敗的,或者我如何用匯編程序來展示它。有人能指出我正確的方向嗎?

通過匯編程序示例展示如何擊敗兩種不同的緩存(關聯和直接映射)。 解釋為什么會發生這種情況以及如何解決。 用於破壞緩存的相同程序是否相同?

注意:這是家庭作業。 不要只為我回答問題,它不會幫助我理解材料。

緩存可以提高性能。 因此,擊敗緩存意味着找到一種 memory 訪問模式會降低性能(在緩存存在的情況下)而不是提高性能。

請記住,緩存的大小是有限的(例如,小於主要的 memory),因此通常破壞緩存涉及填充它,以便它在您訪問它之前丟棄您即將訪問的數據。

如果您正在尋找提示,請考慮將數據字拆分為 2 個緩存行。

(如果您也在尋找答案,x264 開發人員遇到了類似的問題 - 更多信息可 在此處此處獲得。這些鏈接信息量很大,我真的建議您即使在找到您的回答。)

要記住的另一件事是您處理的緩存是虛擬的還是物理的索引/標記。 在某些變體中,即使緩存沒有完全填滿,緩存別名也會強制行替換。 在其他變體中,緩存/頁面着色沖突可能會導致驅逐。 最后,在某些工作負載下的多處理器系統中,緩存線遷移(在不同 CPU 的緩存之間)可能會限制 CPU 緩存的有用性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM