1、微架構圖
前端:預解碼、解碼、分支預測、L1指令緩存、指令TLB緩存
后端:順序重排緩存器ROB處理依賴,調度器送到執行引擎
執行引擎:8路超標量,每一路可以進行獨立的微操作處理
Port0、1、5、6支持整數、浮點數的加法運算,
Port2、3用于地址生成和加載,
Port4用于存儲操作
緩存:L1、L2、數據TLB緩存
2、CPU核的各個參數
2.1 CPU的工作參數
1、時鐘周期
時鐘頻率(英語:clock rate,又譯:時鐘速度)是指同步電路中時鐘的基礎頻率,它以“每秒時鐘周期”(clock cycles per second)來度量,量度單位采用赫茲(Hz)。在計算機領域當中,其一般指的是由處理器中的時鐘發生器產生的脈沖信號的頻率,該信號用于同步計算機中各部件的工作。時鐘頻率也被用來作為衡量處理器(例如CPU)運行速度的一個指標,稱為處理器的主頻。在單個時鐘周期內(現代計算機中央處理器內的這個時間一般都短于一納秒)邏輯零狀態與邏輯一狀態來回切換
2、基礎頻率和睿頻
如下
基礎頻率: CPU在不忙時,處理器的速度,大概1秒種 29億 Hz
睿頻:服務器CPU比較忙時,頻率可以提高到38億 Hz
3、查看cpu的工作頻率
cat /proc/cpuinfo | grep MHzcpu MHz : 2394.374
2394 MHz = 2.394 GHz = 23.94 億 Hz
4、cpu的各級緩存
- 使用 getconf 命令查看各級緩存信息
getconf -a | grep CACHE#L1指令緩存 ICACHE表示 指令緩存 32768 字節 32768/1024 = 32 KB (32千字節)
LEVEL1_ICACHE_SIZE 32768
LEVEL1_ICACHE_ASSOC 8
LEVEL1_ICACHE_LINESIZE 64# L1數據緩存 DCACHE表示 數據緩存 32768 字節 32768/1024 = 32 KB (32千字節)
LEVEL1_DCACHE_SIZE 32768
LEVEL1_DCACHE_ASSOC 8
LEVEL1_DCACHE_LINESIZE 64# L2緩存 1048576字節 1048576/(1024**2) 1MB
LEVEL2_CACHE_SIZE 1048576
LEVEL2_CACHE_ASSOC 16
LEVEL2_CACHE_LINESIZE 64# L3緩存 37486592 字節 37486592/(1024**2) = 35.75 MB
LEVEL3_CACHE_SIZE 37486592
LEVEL3_CACHE_ASSOC 11
LEVEL3_CACHE_LINESIZE 64
- 使用偽文件查看L1 data、instruction緩存
# cd /sys/devices/system/cpu/
cat cpu0/cache/index0/level # L1緩存 cpu0代表編號為0的cpu
1
cat cpu0/cache/index0/size # 緩存大小為32KB
32K
cat cpu0/cache/index0/type # 緩存類型為數據緩存
Data
cat cpu0/cache/index0/shared_cpu_list #
0,12 # cd /sys/devices/system/cpu/
cat cpu0/cache/index1/level
1
cat cpu0/cache/index1/size
32K
cat cpu0/cache/index1/type # 緩存類型為指令緩存
Instruction
cat cpu0/cache/index1/shared_cpu_list
0,12# cd /sys/devices/system/cpu/
cat cpu0/cache/index2/level # L2緩存
2
cat cpu0/cache/index2/size # 大小為256KB
256K
cat cpu0/cache/index2/type # L2緩存不分指令緩存和數據緩存
Unified
cat cpu0/cache/index2/shared_cpu_list
0,12# cd /sys/devices/system/cpu/
cat cpu0/cache/index3/level # L3緩存
3
cat cpu0/cache/index3/size
12288K
cat cpu0/cache/index3/type
Unified
cat cpu0/cache/index3/shared_cpu_list
0-5,12-17
5、查看CPU的物理核和邏輯核
intel運用了超線程技術,一個物理核 可以 被虛擬出來兩個邏輯核來用
查看物理cpu數量cat /proc/cpuinfo | grep "physical id" | sort | uniq
physical id : 0
physical id : 1查看每個cpu物理核數
cat /proc/cpuinfo| grep "cpu cores"| uniq
cpu cores : 6查看系統中所有的邏輯核
及其對應的物理核
cat /proc/cpuinfo | grep -E "core id|process|physical id"
processor : 0
physical id : 0
core id : 0
......
processor : 12
physical id : 0
core id : 0
......
processor : 23
physical id : 1
core id : 10