2017-02-24 95 views
1

cpu緩存和內存緩存有什麼區別?cpu緩存和內存緩存有什麼區別

[>當數據被緩存在存儲器中也有較高的概率

這個數據也被緩存在執行 線程CPU的CPU的高速緩存。] 1

我們如何將緩存與cpu和內存聯繫起來?

+0

CPU和內存緩存是一樣的...除非你指的是寄存器和緩存。如果是這樣的話...... http://superuser.com/questions/208932/difference-between-cache-memory-and-register – Kenyanke

回答

2

要詳細說明您的問題涉及計算中使用的硬件和軟件。

緩存

這只是用來指代數據集被訪問經常的總稱。

在計算,一個緩存/kæʃ/ KASH,1是存儲數據,以便將來的請求該數據可以更快地服務硬件或軟件組件。

Source

內存高速緩存

很簡單的是,被存儲在一個相當快的介質頻繁訪問的數據,例如的高速緩存在RAM或磁盤驅動器上。

CPU緩存

這是像存儲器RAM一個小塊在物理上的CPU的一部分。它通常沒有很多記憶。

例如英特爾酷睿17-920具有8MB Source

這種緩存的一點是要存儲數據,該CPU是相當經常使用,以加快傳輸時間的高速緩存,因爲CPU緩存是物理上接近處理器則RAM是。

0

「內存緩存」似乎真的只是在談論內存中的任何地方。有時這是存儲在磁盤或外部的數據緩存。這是一個軟件緩存。

CPU緩存是硬件緩存,速度更快,本地化更強,但體積更小。

1

根據Wikipedia;

在計算中,緩存是存儲 數據,因此該數據的未來請求可以更快地服務

所以基本上它是存儲數據,這樣的位置的硬件或軟件組件下一次你想要的數據可以更快地訪問它。這意味着緩存需要位於比原始位置更快的位置。

通常情況下,硬盤用於以持久方式存儲大部分數據。這是計算機系統中最大的數據存儲,速度通常很慢。

所有的「工作」都由CPU完成。因此,爲了處理數據,CPU需要首先讀取數據,然後處理它,然後將其寫出。由於CPU具有非常有限的內存/數據寄存器,因此它可以進行大量的讀寫操作。

理想情況下,您的CPU將有足夠大的數據寄存器來存儲您需要的一切。但CPU上的內存非常昂貴,所以這是不實際的。

因此,您有主存儲器,應用程序在運行時臨時存儲一些數據以使其更快。

應用程序的工作方式意味着您往往會有大量非常頻繁訪問的數據。通常被稱爲熱數據。

因此,緩存的目的是存儲這樣的熱門數據,以便您可以更快,更輕鬆地引用它並在需要時使用它。

所以越接近CPU核心,你的數據越快,它可以被訪問,因此性能提高。但是它更昂貴。

圖形顯示此不同水平連同約。訪問時間 enter image description here

它可以根據CPU架構略有不同(並且隨着時間而改變),但通常每個核心都有一個L1高速緩存L2 &。三級緩存在多個內核之間共享。 L1高速緩存通常也被分成數據高速緩存和指令高速緩存。

因此,您的CPU緩存將包含當時訪問次數最多的數據,因此存在與主存儲器或從中獲取數據的HDD的排序關係。但是因爲它很小,所以如果你做了其他的事情,緩存會很快變成使用其他數據,或者如果在後臺運行,緩存會變成其他數據。

因此,不能真正控制CPU的緩存。另外如果你這樣做,你會有效地減慢其他一切(包括O/S),因爲你拒絕他們使用緩存的能力。

每當您的應用程序在主存儲器中讀取和存儲數據時,它都會有效地創建自己的緩存,假設您隨後從此位置訪問數據,並且不會在每次需要時從磁盤(或其他位置)讀取數據它。

所以這可能意味着它的一部分也在CPU緩存中,但不一定。正如你可以從你的應用程序中獲得主內存中的數據,但是你的應用程序沒有做任何事情,或者很長一段時間沒有訪問這些數據。

還請記住,與主存儲器中的數據相比,CPU高速緩存中的數據非常小。例如Broadwell Intel Xeon芯片有;

  • L1緩存= 64 KB(每個核心)
  • 二級高速緩存= 256 KB(每核心)
  • L3高速緩存= 2 - 6 MB(共享)。
相關問題