我知道高速緩存存儲了常用數據以加速進程執行,而不是從主內存中獲取 - 每次都比較慢,而且它的大小總是比主內存小,因爲它是昂貴的技術因爲一次處理的實際數據總是比主存儲器保存的整個數據處理小得多。高速緩存內存大小限制
但是,在某些CPU速度或某些主內存大小下,緩存內存大小是否存在限制或限制?從理論上講,如果我們將緩存內存增加得太多了,會不會以相反的方式影響?或者只是它會浪費增加?
我知道高速緩存存儲了常用數據以加速進程執行,而不是從主內存中獲取 - 每次都比較慢,而且它的大小總是比主內存小,因爲它是昂貴的技術因爲一次處理的實際數據總是比主存儲器保存的整個數據處理小得多。高速緩存內存大小限制
但是,在某些CPU速度或某些主內存大小下,緩存內存大小是否存在限制或限制?從理論上講,如果我們將緩存內存增加得太多了,會不會以相反的方式影響?或者只是它會浪費增加?
緩存很小,因爲用於構建它們的硅非常昂貴,特別是在CISC類型的CPU上,芯片上可能沒有足夠的空間來容納它們。另外製作芯片的成本更高,並且有可能不適合其插槽,這增加了更多的問題。這不是那麼簡單;)
編輯:
嗯,我還沒有得到這方面有任何的文件,但我會用一個簡單的問題,反正解釋我的觀點:如果一個程序需要X字節的內存,如果緩存的大小是10 * x字節或100 * x,那麼區別是什麼?一旦所有的數據都被加載到緩存中(這完全不取決於它的大小),所有這些差異都在緩存的訪問速度中。並且給定locality of reference,沒有必要將所有內容都放在緩存上。
此外,擁有較大的chaches需要更好的算法來搜索其中所請求的數據。例如,訪問fully associative caches中的數據將比緩存大小增加時訪問主內存慢(這意味着有更多地方查找數據)的速度會更慢。然而,考慮到多任務系統,引入了我其實並不瞭解的其他問題。總之,隨着緩存大小的增加而導致的性能增益變得更小,因爲它接近在給定機器上運行的整個軟件所使用的通常數據量。
事實上,在64KB的高速緩存大小之後,性能增益變得越來越低。 這裏是wikipedia圖顯示,不管組關聯的命中率下降的方法,只有輕微的緩存增加通過您的回覆64KB
謝謝你,我跟你和那個同意所以我說「理論上「如果我們消除成本,製造和兼容因素......理論上會給我們一個適得其反的行爲嗎?或者它會只是一個增長? 在一些文章中,我看到緩存內存大小和主內存大小之間的關係更可能是1到1000,並且緩存大小的任何增加都會導致性能幾乎沒有變化.....有沒有圖形,公式或有關這方面的文章? –