CPU 緩存理解

cpu緩存現在都分兩個級別,一及緩存稱L1 cache,二級緩存稱爲L2 cache.
當然對於不同cpu,兩及緩存的作用是不同的.但總體來說,緩存是儲存cpu急需處理的數據的地方,當cpu要處理東西的時候,緩存中就開始儲存這些數據,由於緩存速度非常之高,所以,cpu讀取這些數據的速度就相當快.

由於緩存容量相當小,但是當緩存中的數據處理完了又沒有來得及重新添滿的時候,或者是緩存中的數據不是cpu馬上要處理的數據的時候,cpu就只有跳過緩存,直接村內存讀取,內存的速度要相對慢得多,所以這個時候cpu整體的速度就下降了.

當然,AMD和intel在緩存上的結構完全不同,這個造成了爲什麼intel的主流處理器的L2 cache緩存在2-4Mb,而AMD的L2 cache只有256kb-512kb.這個我們就要說到他們L1 cache的區別了.

intel的L1中不儲存cpu要處理的實際數據,他儲存的都是L2中數據的目錄,也就是intel的cpu要處理數據的時候先要訪問L1,爲的是瞭解他要儲存的實際數據在L2中具體的位置.這個大大減少了cpu尋找L2數據的時間.比喻起來,intel的L2是一個倉庫,L1關於就是這個倉庫中儲存東西具體位置的目錄.

AMD完全不同,L1中就儲存實際數據,L2也儲存實際數據,當L1中的數據用完了的時候,或者L1不能裝的過大的數據的時候,cpu就直接處理L2中的數據.比喻起來,AMD的L1是個小倉庫,L2是個大倉庫.

然後是爲什麼他們對L2需求不同.

AMD的很好理解,他cpu處理數據的時候是有續處理的,先處理L1,處理完了再處理L2,數據一個接一個.

intel採取的是則是亂處理方式,cpu不會衣順序處理數據,而是隨即挑選數據來處理,當他隨便挑選的數據在L2中時,他就讀取L1瞭解數據在L2的位置,然後處理這個數據,但是當數據不在L2中時,就讀取內存.

這個造就了他們L2大小不同,intel的處理方式像是一個人隨機的在扔飛標,飛標落在標盤每個地方的機率是相同的,標盤內的紅心就是L2的數據,標盤的其他地方是內存.前面說了,L2中數據是高速的,只有處理L2的,才能更快,否則要慢很多。所以,一個隨機扔飛標的人爲了讓飛標落在紅心的機率更大,最好的辦法就是加大紅心的面積,也就是L2.因此爲了提高cpu的速度,intel需要很大的紅心,也就是L2.

AMD則不同,他是一個接一個處理的,不是隨機的扔飛標,他要考慮的只是L1和L2中單個數據的大小,因爲cpu要處理的數據幾乎都在0-2Mb之間,0-128kb的佔了50%,128-256kb佔了25%,256-512的佔了24%,大於512kb的只佔了1%.
因此,512kb就能滿足cpu幾乎所有的需求了,只有處理那些1%的大於512kb的數據的時候AMD纔會訪問內存.因此AMD需求很小的L2.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章