爲了擴展單核 CPU 的性能,如今的服務器架構多采用多核 CPU 架構。一個比較經典的 CPU 架構就是對稱多處理(Symmetric Multi-Processing,SMP)架構。與之相對應的就是非對稱多處理(Asym-metrical Mulit-Processing)結構。前端
這個對稱是什麼意思?即處理器與處理器的關係,在對稱多處理架構中,處理器之間是相同等級的,全部處理器均可以訪問相同的資源。與之相應的,非對稱多處理架構,各處理器之間造成簡單的主從設備關係,訪問有限的資源。編程
一個 SMP CPU 架構以下所示:緩存
現代的 CPU 通常會有多個核心(Core),咱們這裏是兩個。每一個核心有各自的 L1 Cache,多個核心共享 L2 和 L3 Cache。CPU 經過前端總線(FSB)訪問主內存。多個 CPU 對於內存訪問是基於緩存行的,多個 CPU 對於內存的訪問符合緩存一致性協議(Cache coherency protocol)。SMP 架構中,系統中全部資源都是共享的,因爲多個 CPU 對於同一個前端總線的競爭,致使擴展能力有限。在超過 64 個 CPU 以上的機器中,這個問題會愈發嚴重。在大型服務器中,主流架構通常是 NUMA(Non-Uniform Memory Access,肺非一致存儲訪問)。服務器
微信搜索「個人編程喵」關注公衆號,每日一刷,輕鬆提高技術,斬獲各類offer:微信