什麼是計算機體系結構中的基於匯流排的對稱多處理器?
共享記憶體系統可以使用基於匯流排或基於交換機的互連網路進行設計。共享記憶體系統最簡單的網路是匯流排。匯流排/快取架構消除了對昂貴的多分支儲存器和介面電路的需求,以及在開發應用程式軟體時採用訊息傳遞正規化的需求。
如果多個處理器同時嘗試訪問共享記憶體(透過匯流排),匯流排可能會飽和。典型的基於匯流排的設計使用快取來解決匯流排爭用問題。快取記憶體連線到每一側的處理器和另一側的匯流排,這意味著可以以儘可能高的速度提供指令和資料的本地副本。
如果本地處理器在其本地快取中找到所有指令和資料,我們說命中率為 100%。快取的未命中率是指無法由快取滿足的引用的分數,因此必須從全域性記憶體複製到總線上,再複製到快取中,然後傳遞到本地處理器。
快取的目標之一是在高處理器負載下保持高命中率或低未命中率。高命中率意味著處理器不那麼頻繁地使用匯流排。命中率取決於幾個因素,從正在執行的應用程式程式到快取硬體的實現方式。
處理器經歷一個佔空比周期,在該週期中,它在每個時鐘週期執行一定次數的指令。通常,單個處理器每個週期執行的指令少於一條,從而減少了它需要訪問記憶體的次數。
次標量處理器每個週期執行的指令少於一條,而超標量處理器每個週期執行的指令多於一條。無論如何,我們都希望最大程度地減少每個本地處理器嘗試使用中央匯流排的次數。否則,處理器速度將受到匯流排頻寬的限制。
我們定義以下命中率、處理器數量、處理器速度、匯流排速度和處理器佔空比的變數:
N = 處理器數量
h = 每個快取的命中率,假設所有快取的命中率都相同
(1-h) = 所有快取的未命中率
B = 匯流排頻寬,以週期/秒為單位測量
I = 處理器佔空比,假設所有處理器的佔空比相同,以提取/週期為單位,以及
V = 峰值處理器速度,以提取/秒為單位。
匯流排的有效頻寬為 BI 提取/秒。如果每個處理器以 V 的速度執行,則以 V (1 - h) 的速率生成未命中。對於 N 處理器系統,以 N (1 - h) V 的速率同時生成未命中。
當 N 個處理器同時嘗試訪問匯流排時,這會導致匯流排飽和。也就是說,N (1 - h) V ≤ BI。匯流排可以支援的最大具有快取記憶體的處理器數量由以下關係給出:
$$N\:\leq\:\frac{BI}{(1-h)V}$$
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP