系統和記憶體架構

在設計程式或併發系統時,需要考慮不同的系統和記憶體架構風格。 這是非常必要的,因為一個系統和記憶體風格可能適合於一項任務,但可能會出錯以適應其他任務。

支持併發的電腦系統體系結構

1972年,邁克爾弗林(Michael Flynn)給出了用於分類不同風格電腦系統體系結構的分類法。 該分類法定義了以下四種不同的樣式 -

  • 單指令流,單數據流(SISD)
  • 單指令流,多數據流(SIMD)
  • 多指令流,單數據流(MISD)
  • 多指令流,多數據流(MIMD)。

1. 單指令流,單數據流(SISD)

顧名思義,這種類型的系統將有一個連續的輸入數據流和一個處理單元來執行數據流。 它們就像具有並行計算體系結構的單處理器系統一樣。 以下是SISD的架構 -

SISD的優點
SISD架構的優點如下 -

  • 它需要更少的電力。
  • 多核之間沒有複雜的通信協議問題。

SISD的缺點
SISD架構的缺點如下 -

  • SISD架構的速度與單核處理器一樣有限。
  • 它不適合更大的應用程式。

2. 單指令流,多數據流(SIMD)

顧名思義,這種類型的系統會有多個輸入數據流和多個處理單元,這些單元可以在任何給定時間作用於單條指令。 它們就像具有並行計算架構的多處理器系統。 以下是SIMD的架構 -

SIMD最好的例子就是顯卡。顯卡擁有數百個單獨的處理單元。 如果要談論SISD和SIMD之間的計算差異,那麼對於添加數組[5,15,20][15,25,10],SISD架構將不得不執行三種不同的添加操作。 另一方面,通過SIMD體系結構,我們可以添加一個單獨的添加操作。

SIMD的優點
SIMD架構的優點如下 -

  • 多個元素的相同操作只能使用一條指令執行。
  • 通過增加處理器的核心數量可以增加系統的吞吐量。
  • 處理速度高於SISD架構。

SIMD的缺點
SIMD架構的缺點如下 -

  • 處理器的核心數量之間存在複雜的通信。
  • 成本高於SISD架構。

3. 多指令單數據(MISD)流

具有MISD流的系統通過在同一數據集上執行不同指令來執行不同操作的處理單元數量。 以下是MISD的架構 -

MISD體系結構尚未商業化。

4. 多指令多數據(MIMD)流

在使用MIMD體系結構的系統中,多處理器系統中的每個處理器可以並行地在不同的一組數據集上獨立地執行不同的指令集。 與SIMD體系結構相反,單一操作在多個數據集上執行。 以下是MIMD的架構 -

普通的多處理器使用MIMD體系結構。 這些架構基本上應用於許多應用領域,如電腦輔助設計/電腦輔助製造,仿真,建模,通信交換機等。

記憶體架構支持併發

在處理併發性和並行性等概念的同時,始終需要加速這些程式。 電腦設計人員發現的一個解決方案是創建共用記憶體多電腦,即具有單個物理地址空間的電腦,該電腦可以被處理器擁有的所有內核訪問。 在這種情況下,可以有多種不同風格的架構,但以下是三種重要的架構風格 -

UMA(統一記憶體訪問)
在此模型中,所有處理器均勻分享物理記憶體。 所有處理器對所有記憶體字都有相同的訪問時間。 每個處理器可以有一個私有緩存記憶體。 週邊設備遵循一套規則。

當所有的處理器對所有的週邊設備有相同的訪問許可權時,系統被稱為對稱多處理器。 當只有一個或幾個處理器可以訪問週邊設備時,系統稱為非對稱多處理器。


非均勻記憶體訪問(NUMA)

在NUMA多處理器模型中,訪問時間隨記憶體字的位置而變化。 這裏,共用記憶體物理地分佈在所有處理器中,稱為本地記憶體。 所有本地記憶體的集合形成一個全局地址空間,所有處理器都可以訪問它。

僅緩存記憶體體系結構(COMA)
COMA模型是NUMA模型的專用版本。 這裏,所有分配的主記憶體都被轉換成高速緩衝記憶體。


上一篇: 併發vs並行 下一篇: 線程