在設計程式或並行系統時,需要考慮不同的系統和記憶體架構風格。 這是非常必要的,因為一個系統和記憶體風格可能適合於一項任務,但可能會出錯以適應其他任務。
支援並行的計算機系統體系結構
1972年,邁克爾弗林(Michael Flynn)給出了用於分類不同風格計算機系統體系結構的分類法。 該分類法定義了以下四種不同的樣式 -
顧名思義,這種型別的系統將有一個連續的輸入資料流和一個處理單元來執行資料流。 它們就像具有平行計算體系結構的單處理器系統一樣。 以下是SISD的架構 -
SISD的優點
SISD架構的優點如下 -
SISD的缺點
SISD架構的缺點如下 -
顧名思義,這種型別的系統會有多個輸入資料流和多個處理單元,這些單元可以在任何給定時間作用於單條指令。 它們就像具有平行計算架構的多處理器系統。 以下是SIMD的架構 -
SIMD最好的例子就是顯示卡。顯示卡擁有數百個單獨的處理單元。 如果要談論SISD和SIMD之間的計算差異,那麼對於新增陣列[5,15,20]
和[15,25,10]
,SISD架構將不得不執行三種不同的新增操作。 另一方面,通過SIMD體系結構,我們可以新增一個單獨的新增操作。
SIMD的優點
SIMD架構的優點如下 -
SIMD的缺點
SIMD架構的缺點如下 -
具有MISD流的系統通過在同一資料集上執行不同指令來執行不同操作的處理單元數量。 以下是MISD的架構 -
MISD體系結構尚未商業化。
在使用MIMD體系結構的系統中,多處理器系統中的每個處理器可以並行地在不同的一組資料集上獨立地執行不同的指令集。 與SIMD體系結構相反,單一操作在多個資料集上執行。 以下是MIMD的架構 -
普通的多處理器使用MIMD體系結構。 這些架構基本上應用於許多應用領域,如計算機輔助設計/計算機輔助製造,模擬,建模,通訊交換機等。
在處理並行性和並行性等概念的同時,始終需要加速這些程式。 計算機設計人員發現的一個解決方案是建立共用記憶體多計算機,即具有單個實體地址空間的計算機,該計算機可以被處理器擁有的所有核心存取。 在這種情況下,可以有多種不同風格的架構,但以下是三種重要的架構風格 -
UMA(統一記憶體存取)
在此模型中,所有處理器均勻分享實體記憶體。 所有處理器對所有記憶體字都有相同的存取時間。 每個處理器可以有一個私有快取儲存器。 外圍裝置遵循一套規則。
當所有的處理器對所有的外圍裝置有相同的存取許可權時,系統被稱為對稱多處理器。 當只有一個或幾個處理器可以存取外圍裝置時,系統稱為非對稱多處理器。
非均勻記憶體存取(NUMA)
在NUMA多處理器模型中,存取時間隨記憶體字的位置而變化。 這裡,共用儲存器物理地分布在所有處理器中,稱為本地儲存器。 所有本地儲存器的集合形成一個全域性地址空間,所有處理器都可以存取它。
僅快取記憶體體系結構(COMA)
COMA模型是NUMA模型的專用版本。 這裡,所有分配的主記憶體儲器都被轉換成高速緩衝儲存器。