處理器並行設計

2022-06-15 18:24:13 字數 2028 閱讀 7511

處理器就是處理一系列指令和資料的裝置,因此,從指令和資料這兩個維度,可以對處理器的系統結構分類。2023年, flynn將處理器系統結構分成了如下4類:

sisd( single instruction single data),一次處理一條指令,一條指令處理乙份資料,早期的處理器都是這種形式。

simd( single instruction multiple data),-次處理一條指令,一條指令能處理多份資料,這種方式稱為資料並行,現在效能稍微強一點的處理器都具備這種功能。

misd( multiple instruction single data),一次處理多條指令,多條指令處理乙份資料,這種結構沒有實際意義。

mimd( multiple instruction multiple data),一次處理多條指令,多條指令能處理多條資料,這種方式稱為指令並行,高效能處理器都具備這個功能。

下圖描述了指令並行性、資料並行性的示例:

並行,是提高處理器效能的不二法門,下面,我們就來詳細介紹處理器的各種並行性。

程式是由一系列指令組成的,如果要節省執行的時間,最直接的方法就是將指令並行起來執行。在處理器內部通常有很多的執行單元,如加法單元、乘法單元、記憶體訪問單元、浮點運算單元等,每種執行單元負責一類具體的指令。在前面介紹的亂序執行核心中,每個cycle最多隻發射一條指令,即使有時很多指令並行執行,平均的指令執行效率也最多只有每個cycle一條指令。如果發射單元一次能發射多條指令,那麼就有更多指令能並行處理了,因此指令並行也稱為multi-issue(多發射)。

哪些指令需要並行處理,這需要做判決,根據判決的地方不同,multi-issue又分成了兩個陣營:superscalar和vliw.

世上沒有無緣無故的愛,也沒有無緣無故的恨,沒有無緣無故的superscalar,也沒有無緣無故的vlw.superscalar和vliw也是隨著歷史趨勢慢慢發展起來的。

superscalar是由 super(超)+ scalar(標量)組成,標量處理器時代的指令都是序列執行的,處理器為了相容原有的程式,但同時又要提高程式執行效率,就在處理器內部做了指令的並行化處理。這就是超標量處理器的基本原型。

如果將指令的並行化顯示的宣告在指令格式中,處理器只是傻呼呼的執行,這種方式稱為vliw( very long instruction word)。指令的並行化可由編譯器完成,也可以由程式設計師手工寫並行彙編**實現.

vliw的典型代表是dsp。 ti dsp所使用的彙編**格式如下:

指令前面的「||」表示這條指令和上條指令在同乙個cycle執行,如果沒有「||」,則表示這條指令在下乙個cycle執行。在機器碼中,每條指令佔32bit,「‖」在第0bit表示,處理器只需按照指令規則執行即可。

早期的組合語言都沒有單獨的字段描述當前指令是否和其他指令並行執行,處理器在發展時,為了保證指令集的相容性,都採用了superscalar結構,如x86、mips、arm等。superscalar的代價是處理器內部有不少的資源用於將序列的指令序列轉換成可以並行的指令序列,這大大的增加了處理器的功耗和面積。而後來產生的新的指令集的處理器,大都採用了ⅴliw結構,如 tilera和tensilica公司的處理器。

在 multi-issue結構中,不亂序也能實現一定程度的並行。例如,處理器內部有兩條執行路徑,一條路徑執行浮點指令,一條路徑執行整數指令,由於浮點指令和整數指令分別使用不同的暫存器,它們沒有相關性,可以並行執行。不過,亂序執行的結構,更能提高指令的並行性,當然也需要更多的硬體資源。

處理器的並行設計思想

並行執行是提公升處理器效能的基本思想。vliw處理器實現並行依賴於編譯器的優化功力,比起 superscalar,vliw處理器結構更簡單。指令的並行化需要特定的編譯器來分析程式的語法樹結構,通過 的行為分析指令的相關性,實現指令的亂序排程。處理器要對迴圈結構進行展開,軟體流水執行。從底層來看,採用...

物理處理器與邏輯處理器

記錄解決方案,自己實際處理過,方案可用,在自己的部落格中記錄一下。cpu central processing unit 是 處理單元,本文介紹物理cpu,物理cpu核心,邏輯cpu,以及他們三者之間的關係。乙個物理cpu可以有1個或者多個物理核心,乙個物理核心可以作為1個或者2個邏輯cpu。物理c...

處理器核心

處理器核心 cache 寫緩衝器 主存 輔助儲存器 寫操作,對核心而言非迫切,所以加乙個寫緩衝器很好。cache可放在處理器核心與mmu之間 邏輯 cache,主流 也可放在mmu與主存之間 物理 cache 對儲存器中相同或相鄰資料和 的反覆使用,是cache改善效能的主要原因。cache同時使用...