
並行系統中的處理器
在80年代,一種名為Transputer的專用處理器在構建多計算機方面很流行。Transputer包含一個核心處理器、一小塊SRAM記憶體、一個DRAM主存介面和四個通訊通道,所有這些都整合在一個晶片上。為了實現平行計算機通訊,通道連線起來形成一個Transputer網路。但它缺乏計算能力,因此無法滿足並行應用日益增長的需求。這個問題透過開發RISC處理器得到了解決,而且成本也比較低廉。
現代平行計算機使用微處理器,這些微處理器在指令級並行和資料級並行等多個級別上利用並行性。
高效能處理器
RISC和RISCy處理器主導著當今的平行計算機市場。
傳統RISC的特點包括:
- 定址模式較少。
- 指令格式固定,通常為32位或64位。
- 具有專用的載入/儲存指令,用於將資料從記憶體載入到暫存器以及將資料從暫存器儲存到記憶體。
- 算術運算始終在暫存器上執行。
- 使用流水線技術。
如今大多數微處理器都是超標量的,即在平行計算機中使用多個指令流水線。因此,超標量處理器可以同時執行多條指令。超標量處理器的有效性取決於應用程式中可用的指令級並行性(ILP)。為了保持流水線的滿負荷執行,硬體級別上的指令執行順序與程式順序不同。
許多現代微處理器採用超級流水線方法。在超級流水線中,為了提高時鐘頻率,減少流水線階段內完成的工作量,並增加流水線階段的數量。
超長指令字(VLIW)處理器
這些處理器源於水平微程式設計和超標量處理。VLIW處理器中的指令非常長。單條指令內的操作並行執行,並轉發到相應的函式單元進行執行。因此,在獲取VLIW指令後,對其操作進行解碼。然後,將操作排程到函式單元,在其中並行執行。
向量處理器
向量處理器是通用微處理器的協處理器。向量處理器通常是暫存器-暫存器或記憶體-記憶體的。獲取並解碼向量指令,然後對運算元向量的每個元素執行特定操作,而在普通處理器中,向量操作需要程式碼中的迴圈結構。為了提高效率,向量處理器將多個向量操作連結在一起,即一個向量操作的結果作為另一個操作的運算元。
快取
快取是高效能微處理器的重要組成部分。每18個月,微處理器的速度就會翻一番,但主存的DRAM晶片無法與之匹敵。因此,引入快取來彌合處理器和記憶體之間的速度差距。快取是一種快速的小型SRAM記憶體。許多現代處理器中應用了更多快取,例如轉換旁路緩衝區(TLB)快取、指令快取和資料快取等。
直接對映快取
在直接對映快取中,使用“模”函式將主存中的地址一對一對映到快取位置。由於相同的快取條目可能對映多個主存塊,因此處理器必須能夠確定快取中的資料塊是否確實是所需的資料塊。透過將標籤與快取塊一起儲存來完成此標識。
全相聯快取
全相聯對映允許將快取塊放置在快取中的任何位置。透過使用某種替換策略,快取確定儲存快取塊的快取條目。全相聯快取具有靈活的對映,可最大限度地減少快取條目衝突。由於全相聯實現成本很高,因此從未大規模使用。
組相聯快取
組相聯對映是直接對映和全相聯對映的組合。在這種情況下,快取條目細分為快取組。與直接對映一樣,記憶體塊到快取中組的對映是固定的。但在快取組內,記憶體塊以全相聯的方式對映。
快取策略
除了對映機制外,快取還需要一系列策略來指定在某些事件發生時應採取的操作。對於(組)相聯快取,快取必須確定哪個快取塊應被進入快取的新塊替換。
一些眾所周知的替換策略包括:
- 先進先出 (FIFO)
- 最近最少使用 (LRU)