計算機體系結構中的並行型別有哪些?
計算機體系結構中存在各種型別的並行性,如下所示:
- 可用並行性和已利用並行性
並行性是計算中最重要的主題之一。幾十年來,體系結構、編譯器和作業系統框架一直在努力提取和利用盡可能多的可用並行性來加速計算。
- 可用並行性和已利用並行性
並行性是計算中最重要的主題之一。幾十年來,體系結構、編譯器和作業系統框架一直在努力提取和利用盡可能多的可用並行性來加速計算。
**函式式並行性**是從問題解決方案的邏輯中產生的那種並行性。它或多或少地出現在所有形式的問題解決方案描述中,例如程式流程圖、資料流圖、程式等等。
**資料並行性**僅存在於有限的問題集中,例如科學或工程計算或影像處理。這種型別的並行性為計算的資料並行元素提供了大規模並行執行的增長。
- 可用函式式並行性的級別
用命令式語言編寫的程式可以在不同級別表示函式式並行性,即在多個粒度級別。在這種方法中,我們可以識別以下四個級別和相應的粒度大小:
指令級並行性表示程式的特定指令可以並行執行。指令可以是彙編(機器級)指令或高階語言指令。
並行性也可以在**迴圈級別**訪問。因此,連續的迴圈迭代是並行執行的申請者。後續迴圈迭代之間的資料依賴性(稱為遞迴)可以縮短它們的並行執行。
並行性以並行可執行方法的形式在**過程級別**訪問。
並行性也可以在**使用者級別**訪問,我們將其視為粗粒度並行性。
- 函式式並行性的利用
可用的並行性可由與加速計算相關的體系結構、編譯器和作業系統框架利用。讓我們首先考慮函式式並行性的利用。函式式並行性可以在四個不同的粒度級別使用,例如指令、執行緒、程序和使用者級別。
透過並行執行指令,充分利用傳統順序程式中基本的可用函式式並行性,在指令級別是完全普通的。這可以使用能夠並行執行指令的體系結構來管理。這種體系結構定義為**指令級函式並行體系結構或簡稱為指令級並行體系結構**,通常縮寫為**ILP 體系結構**。
- 併發執行模型
執行緒級併發執行定義為多執行緒。在這種方法中,可以為每個程序建立多執行緒,並且這些執行緒在作業系統的監督下在一個處理器上一起執行。
多執行緒通常被解釋為執行緒級別的併發執行。多執行緒假定一個程序具有多個執行緒,即程序執行緒模型可以描述和排程處理器的作業單元。
程序級併發執行通常稱為多工處理。多工處理定義了程序的併發執行。多個準備執行的程序可以由單個使用者生成(如果允許程序複製),也可以由在多程式設計或分時中執行的多個使用者生成。
- 資料並行性的利用
資料並行性可以透過兩種不同的方法利用,一種情況是透過允許對稱為資料並行體系結構的資料元件進行並行或流水線操作的專用體系結構來精確地利用資料並行性。