王子淳
摘 要:計算機體系結構是一門連接硬件與軟件的學科,在不斷的深入研究過程中,一直在追求計算機的功能、性能、功率以及花費的高度協(xié)調,以期達到各方面的最佳狀態(tài),在花費、能量、可用性的抑制下,實現計算機的多功能、高性能、低功率、少花費的新時代。本篇綜述主要講述流水線技術,指令系統(tǒng),以及計算機系統(tǒng)結構的發(fā)展趨勢。
關鍵詞:高級計算機系統(tǒng)結構,流水線技術,指令系統(tǒng)
1流水線技術
1.1 流水線的基本概念
計算機系統(tǒng)結構的國際權威美國Stanford大學的John L.Hennessy和UC Berkely大學的 David A.Paterson在其名著《Computer Architecture-- A quantitative approach》一書中特別指出:“流水線過去是,而且將來也很有可能還是提高計算機性能的最有效技術之一”[1]
流水線技術(Pipeline technology)是將一個重復的時序過程分解成為若干個子過程,而每一個子過程都可有效地在其專用功能段上與其他子過程同時執(zhí)行。流水線中的每個子過程及其功能部件稱為流水線的級或段(pipeline stage),流水線的段數稱為流水線的深度(pipeline depth),段與段相互連接形成流水線。
1.2 流水線的分類
從不同的角度和觀點,可以把流水線分成多種不同的種類:
1.單功能流水線(single-function pipeline):只能完成一種固定功能的流水線
2.多功能流水線(multi-function pipeline ):流水線的各段可以進行不同的連接,從而使流水線在不同的時間,或者在同一時間完成不同的功能。
3.靜態(tài)流水線(static pipeline):在同一時間內,流水線的各段只能按同一種功能的連接方式工作。
4.動態(tài)流水線(dynamic pipeline):在同一時間內,當某些段正在實現某種運算時,另一些段卻在實現另一種運算。
5.部件級流水線(component level pipeline):把處理機的算術邏輯部件分段,以便為各種數據類型進行流水操作。
6.處理機級流水線(processor level pipeline):把解釋指令的過程按照流水方式處理。
7.處宏流水線(macro pipeline):由兩個以上的處理機串行地對同一數據流進行處理,每個處理機完成一項任務。
8.標量流水處理機(Scalar pipeline processor):處理機不具有向量數據表示,僅對標量數據進行流水處理。
9.向量流水處理機(vector pipeline processor):處理機具有向量數據表示,并通過向量指令對向量的各元素進行處理。
10.線性流水線(linear pipeline):流水線的各段串行連接,沒有反饋回路。
11.非線性流水線(non-linear pipeline):流水線中除有串行連接的通路
外,還有反饋回路。
12.順序流水線(order pipeline):流水線輸出端任務流出的順序與輸入端任務流入的順序完全相同。每一個任務在流水線的各段中是一個跟著一個順序流動的。
13.亂序流水線(out-order pipeline):流水線輸出端任務流出的順序與輸入端任務流入的順序可以不同,允許后進入流水線的任務先完成(從輸出端流出)。
1.3流水線的相關與沖突
相關(correlation)是指兩條指令之間存在某種依賴關系。如果兩條指令相關,則他們就有可能不能在流水線中重疊執(zhí)行或者只能部分重疊執(zhí)行,
1. 結構相關(structure correlation):當指令在重疊執(zhí)行過程中,硬件資源滿足不了指令重疊執(zhí)行的要求,發(fā)生資源沖突時將產生“結構相關”;
2. 數據相關(data correlation):當一條指令需要用到前面指令的執(zhí)行結果,而這些指令均在流水線中重疊執(zhí)行時,就可能引起“數據相關”;
3. 控制相關(control correlation):當流水線遇到分支指令或其他會改變PC值的指令時就會發(fā)生“控制相關”。
流水線沖突(pipeline conflict)是指對于具體的流水線來說,由于相關的存在,使得指令流中的下一條指令不能在指定的時鐘周期執(zhí)行。流水線沖突有三種類型:
1.結構沖突(structure conflict):因硬件資源滿足不了指令重疊執(zhí)行的要求而發(fā)生的沖突。解決方法:流水化功能單元;資源重復;暫停流水線。
2.數據沖突(data conflict):當指令在流水線中重疊執(zhí)行時,因需要用到前面指令的執(zhí)行結果而發(fā)生的沖突。
3.控制沖突(control conflict):流水線遇到分支指令和其他會改變PC值的指令所引起的沖突。
2.指令系統(tǒng)
2.1 指令系統(tǒng)的基本概念
[2]指令系統(tǒng)(instruction system)是指機器所具有的全部指令的集合 ,它反映了計算機所擁有的基本功能。在計算機系統(tǒng)的設計和使用過程中 ,硬件設計人員采用各種手段實現指令系統(tǒng) ,而軟件設計人員則使用這些指令系統(tǒng)編制各種各樣的系統(tǒng)軟件和應用軟件 ,用這些軟件來填補硬件的指令系統(tǒng)與人們習慣的使用方式之間的語義差距。計算機指令系統(tǒng)分為兩類:復雜指令系統(tǒng)(CISC)和精簡指令系統(tǒng)(RISC)
2.2 復雜指令系統(tǒng) ( CISC )
2.2.1CISC的產生
早期的計算機 ,存儲器是一個很昂貴的資源 ,因此希望指令系統(tǒng)能支持生成最短的程序。此外 ,還希望程序執(zhí)行時所需訪問的程序和數據位的總數越少越好。在微程序出現后 ,將以前由一串指令所完成的功能移到了微代碼中 ,從而改進了代碼密度。此外 ,它也避免了從主存取指令的較慢動作 ,從而提高執(zhí)行效率。在微代碼中實現功能的另一論點是: 這些功能能較好的支持編譯程序。如果一條高級語言的語句能被轉換成一條機器語言指令 ,這可使編譯軟件的編寫變得非常容易。此外 ,在機器語言中含有類似高級語言的語句指令 ,便能使機器語言與高級語言的間隙減少。這種發(fā)展趨向導致了復雜指令系統(tǒng) ( CISC )設計風格的形成 ,即認為計算機性能的提高主要依靠增加指令復雜性及其功能來獲取。
2.2.2 CISC 的主要特點
CISC指令系統(tǒng)的主要特點是:
(1)指令系統(tǒng)復雜,具體表現在以下幾個方面:
①指令數多 ,一般大于 100條。
② 尋址方式多 ,一般大于 4種。
③ 指令格式多 ,一般大于 4種。
(2)絕大多數指令需要多個機器時鐘周期方可執(zhí)行完畢。
(3)各種指令都可以訪問存儲器。
2.3 精簡指令系統(tǒng) (RISC)
2.3.1RISC的產生
由于CISC技術在發(fā)展中出現了問題 ,計算機系統(tǒng)結構設計的先驅者們嘗試從另一條途徑來支持高級語言及適應 VLSI技術特點。1975年IBM公司 John Cocke提出了精簡指令系統(tǒng)(RISC)的設想。到了1979年,[4]美國UC Berkely大學由 Patterson 教授領導的研究組,首先提出了RISC這一術語 ,并先后研制了 RISC-Ⅰ和 RISC-Ⅱ計算機。1981年美國的Stanford大學在Hennessy教授領導下的研究小組研制了MIPSRISC計算機 ,強調高效的流水和采用編譯方法進行流水調度,使得RISC技術設計風格得到很大補充和發(fā)展。到了90年代初,IEEE的Michael Slater 對于RISC的定義作了如下描述:RISC處理器所設計的指令系統(tǒng)應使流水線處理能高效率執(zhí)行 ,并使優(yōu)化編譯器能生成優(yōu)化代碼。
2.3.2 RISC 的主要特點
RISC為使流水線高效率執(zhí)行 ,應具有下述特征:
(1)簡單而統(tǒng)一格式的指令譯碼;
(2)大部分指令可以單周期執(zhí)行完成;
(3)只有 LOAD 和 STORE 指令可以訪問存儲器;
(4)簡單的尋址方式 ;
(5)采用延遲轉移技術 ;
(6)采用 LOAD 延遲技術。
RISC為使優(yōu)化編譯器便于生成優(yōu)化代碼 ,應具有下述特征:
(1)三地址指令格式 ;
(2)較多的寄存器 ;
(3)對稱的指令格式。
2.4 RISC和CISC 的比較
2.4.1不同的實現方式
兩者的實現方式是不一樣的。對于CISC來說,采用的存儲結構是比較易于實現的數據和指令合一的方式。采用這種存儲結構的原因是CISC具有比較高級的指令語義,同時具有比較長的執(zhí)行指令的周期。而對于RISC來說,其采用的存儲結構是數據和指令相互分離的結構,這是因為其采取了邏輯的硬布線方式,同時對于指令的讀取比較頻繁。
2.4.2不同的編譯器要求
如果時鐘頻率相同,同時失去編譯器,那么RISC與CISC的體系結構的計算機的效率其實并沒有差別。而且相對來說,RISC體系結構更加需要編譯器對指令的優(yōu)化。CISC具有很大的市場,同時技術的發(fā)展也已經相當成熟。RISC體系結構并不能夠直接取代CISC的體系結構。固然,RISC體系結構具有很強的競爭力,但是其邏輯硬布線到目前為止并沒有統(tǒng)一的規(guī)定。RISC也并不是傳統(tǒng)意義上的概念,現代的RISC也具有很多明顯的變化,主要表現在:具有分支預測的功能、能夠超標量執(zhí)行,同時還能夠亂序執(zhí)行指令。
3.計算機系統(tǒng)結構的發(fā)展趨勢
3.1多線程體系
所謂的多線程技術(multithreading technology)[5],是一種結合了馮諾依曼的控制流模型以及數據流模型的新興技術。它能夠進行現場的指令級交換以及順序調度。一般說來,在線程中,如果其中一條指令執(zhí)行,那么相應后面的指令都會相繼執(zhí)行。線程可以成為計算機中調度執(zhí)行的基本步驟,同時計算機中可以同時并發(fā)運行許多個線程。這樣做的好處是:提高了并行度的效果,同時又能相互隱藏延遲的操作。多線程有著許多優(yōu)點,同時也有一些不足之處。它的優(yōu)點是能夠在很大程度上提高整個處理器的利用效率,在整體上使計算機的性能提高到一個新的檔次。多線程技術能很好地隱藏幾乎所有的延遲,這是諸如分支預測錯誤延遲技術等其它技術所不具備的。因此,多線程技術能夠在計算機微處理器的結構中具有很高的應用價值。
3.2 高性能計算
[6]高性能計算(high performance computer,HPC)是計算機集群系統(tǒng),它通過各種互聯技術將多個計算機系統(tǒng)連接在一起,利用所有被連接系統(tǒng)的綜合計算能力來處理大型計算問題。高性能計算方法的基本原理就是將問題分為若干部分,而相連的每臺計算機均可同時參與問題的解決,從而顯著縮短了解決整個問題的計算時間。解決大型計算問題需要功能強大的計算機系統(tǒng),隨著高性能計算的出現,使這一類應用從昂貴的大型外部計算機系統(tǒng)演變?yōu)椴捎蒙逃梅掌鳟a品和軟件的高性能計算機集群體。因此,高性能計算系統(tǒng)已經成為解決大型問題計算機系統(tǒng)的發(fā)展方向。其中,混合體系統(tǒng)結構已成為HPC發(fā)展趨勢。
4.結束語
目前計算機的發(fā)展十分迅速,已經在各個方面徹底改變了現代人們的生活方式和工作方式,人們的溝通以及工作的效率得到了很大程度上的提高。本論文簡要介紹了計算機流水線技術,指令系統(tǒng) ,然后提出了兩種指令系統(tǒng)(RISC和CISC)并對比了兩種不同的體系結構,比較了這兩種體系結構中存在的問題,進而提出計算機體系結構的發(fā)展趨勢。
參考文獻:
[1] 鄭煒民 湯志忠等譯John L.Hennessy, David A.Paterson 計算機系統(tǒng)結構:一種定量方法(第二版)[M] 北京:清華大學出版社,2002
[2] 談懷江 計算機指令系統(tǒng)的變化及發(fā)展 孝感學院計算機科學系 [J],2014
[3] 李成錚,魏立津 計算機體系結構的發(fā)展及技術問題探討 華中科技大學文華學院 [J],2008
[4] 劉超.計算機系統(tǒng)結構.[M]中國水利水電出版社,2005.
[5] 吳艷霞.計算機體系結構.[M]北京:清華大學出版社,2010.
[6] 張春元,羅莉等.計算機系統(tǒng)結構.[M]國防科技大學出版社,2002.