1. CPU緩存
cpu高速緩存的由來
- 在CPU的全部取指令週期中(程序計算),至少需要訪問一次存儲器(也就是我們所說物理內存上的數據)
- 通常需要多次訪問存儲器的取操作數或者保存結果,CPU處理計算的速度明顯受限於訪問存儲器的限制
- 因此解決方案就是利用局部性原理,在CPU與物理內存之間提供一個容量小並且速度快的存儲器,稱爲高速緩存
高速緩存概述
- 緩存是分“段”(line)的,一個段對應一塊存儲空間,大小是 32(較早的 ARM、90 年代 /2000 年代早期的 x86 和 PowerPC)、64(較新的 ARM 和 x86)或 128(較新的 Power ISA 機器)字節
- 高速緩存包含物理內存部分數據副本
- cpu讀取數據時將會先檢查高速緩存中的數據是否存在,存在就返回,不存在就讀取物理內存數據
高速緩存和內存
高速緩存分爲L1-L3 Cache
- L1 Cache: 一級緩存是CPU第一層高速緩存,分爲指令緩存和數據緩存,一般服務器的CPU的L1緩存容量在32-4096kb,現在的L1 Cache都不能直接與內存直連傳輸數據
- L2 Cache: 由於L1級別高速緩存容量的限制,爲了再次提高CPU的運算速度,在CPU外部放置一個高速存儲器,即二級緩存
- L3 Cache: 現在的L3緩存都是內置的,主要是進