導航:首頁 > 源碼編譯 > 現代體系結構下編譯優化

現代體系結構下編譯優化

發布時間:2022-04-26 07:23:18

『壹』 下面關於計算機系統性能的評估中不妥的是什麼

大部分伺服器廠商都會提供基本的Benchmark數據,如SPECint95, SPECfp95, SPECWeb96, tpmC等,但是這些數據都是廠商用最好的系統、最佳配置,由專家精心優化得到的,常常和用戶實際應用的性能大相徑庭。作為一個普通用戶,如何進行計算機系統的性能評價呢?下面介紹一些評價伺服器性能的基本方法。

三階段評價一般,系統完整的性能評價應分成三個階段,即基本性能參數、核心Benchmark、實際應用。

基本性能參數測試是獲取計算機系統的硬體和系統軟體的重要性能指標,通過這些指標結合應用的特徵可以大致評價出系統的總體性能。核心Benchmark測試是針對具體的應用類以最常用的模式操作計算機系統,評價系統在這類應用下的性能,能較准確地評價出用戶可以得到的具體性能。實際應用測試是在較真實的硬體配置和軟體環境下,用實際應用或簡化的、規模縮小的實際應用評價系統的真實性能。三類測評是相輔相成的,性能評價不僅要獲取系統的性能指標,更重要的是對性能表現能夠進行解釋,從而優化系統以使實際應用獲得較好性能。

基本性能參數測試包括CPU、內存、I/O、網路、操作系統、文件系統、編譯器、資料庫的性能指標。CPU性能指標除主頻、運算部件數、流水線長度、定點性能、浮點性能外,要重視一、二級緩存的大小和帶寬。現代體系結構和編譯器都是針對應用的數據局部性,努力提高cache命中率,二級cache性能尤其重要。標准Benchmark可以測出緩存操作(包括TLB)的延遲。在評測浮點性能時,尤其是RISC結構和向量結構,要關注應用程序能否利用編譯器和優化數學庫將浮點部件充滿。

『貳』 未來計算機體系結構將是什麼樣的發展趨勢

計算機體系結構的現狀及發展趨勢

1.
計算機體系結構現狀概述

計算機體系結構是選擇並相互連接硬體組件的一門科學和藝術,
在人們不斷
探索研究的過程中,
一直在追求計算機的功能、
性能、
功率以及花費的高度協調,
以期達到各方面的最佳狀態,在花費、能量、可用性的抑制下,實現計算機的多
功能、高性能、低功率、少花費的一個新時代。根據當前體系結構的發展現狀,
要實現以上全部要求的一台計算機,
還存在著諸多的限制條件,
包括邏輯上的以
及硬體上的。
計算機的體系結構范圍很廣,
定義也很寬泛,
它包含了指令集的設
計、組織、硬體與軟體的邊界問題等等,同時涉及了應用程序、技術、並行性、
編程語言、介面、編譯、操作系統等很多方面。作為各項技術發展的中心,體系
結構一直在不斷地朝前發展。

縱觀計算機體系結構一路發展的歷史,從
60
年代中期以前,最早的體系結
構發展的早期時代,
計算機系統的硬體發展很快,
通用硬體已經很普遍,
但是軟
件的發展卻很滯後,剛剛起步,還沒有通用軟體的概念。從
60
年代中期到
70
年代中期,
體系結構有了很大進步。
多道程序、
多用戶系統引入了人機交互的新
概念,
開創了計算機應用的新境界,
使硬體和軟體的配合上了一個新的層次,

是此時的軟體由於個體化特性很難維護,出現了「軟體危機」。從
20
世紀
70
年代中期開始,
分布式系統開始出現並流行,
極大地增加了系統的復雜性,
出現
了微處理器並獲得了廣泛應用。如今計算機的體系結構發展已經進入了第四代,
硬體和軟體得到了極大的綜合利用,
迅速地從集中的主機環境轉變成分布的客戶
機/伺服器
(
或瀏覽器/伺服器
)
環境,新的技術不斷涌現出來。盡管如此,計算
機在總體上、功能上需要解決的問題仍然存在。隨著
RISC
技術、
Cache
等創
新技術的發展,不僅僅在專業領域,越來越多的
PC
機也在向此靠攏。在每一次
進步與創新的同時使組件的成本降到最低成為最需要考慮的問題。

本文主要介紹高性能計算機的體系結構中應用的關鍵技術以及高性能計算
機體系結構技術的發展趨勢。

2
高性能計算機體系結構

高性能計算
(high performance compute

HPC)
是一個計算機集群系統,它
通過各種互聯技術將多個計算機系統連接在一起,
利用所有被連接系統的綜合計
算能力來處理大型計算問題。
高性能計算方法的基本原理就是將問題分為若幹部
分,
而相連的每台計算機
(
稱為節點
)
均可同時參與問題的解決,
從而顯著縮短了
解決整個問題所需的計算時間。解決大型計算問題需要功能強大的計算機系統,
隨著高性能計算的出現,
使這一類應用從昂貴的大型外部計算機系統演變為採用
商用伺服器產品和軟體的高性能計算機集群。
因此,
高性能計算系統已經成為解
決大型問題計算機系統的發展方向。

對於伺服器而言,
單純地提高單個處理器的運算能力和處理能力正在變得越
來越難,雖然製造商從材料、工藝和設計等方面進行了不懈的努力,近期內
CPU
保持著高速的增長勢態,
但高頻之下的高功耗所引起的電池容量問題和散熱問題
等負面效應,
以及這些負面效應對整機系統產生的電磁兼容性問題,
又反過來將
CPU
運算能力的提升推到了暮年。顯然,提高單個處理器速度和性能已是強弩之
末。而研發多個
CPU
的並行處理技術,才是真正提高現代伺服器處理能力和運算
速度的有效途徑。目前,由圖
SIMD
技術、
Single
Proc
技術、
Const
技術已經不再
使用,並行處理技術主要有
SMP
技術、
NUMA
技術、集群技術和網格技術等。根據
2006
年對排行前
500
名的機器作
TOP500
統計,
TOP500
中的
Cluster
約占
70

8
%,
MPP(

CC

NUMA)
約占
22
%,而
SMP
約占
7

2
%。

『叄』 C語言文件的編譯與執行的四個階段並分別描述

開發C程序有四個步驟:編輯、編譯、連接和運行。

任何一個體系結構處理器上都可以使用C語言程序,只要該體系結構處理器有相應的C語言編譯器和庫,那麼C源代碼就可以編譯並連接到目標二進制文件上運行。

1、預處理:導入源程序並保存(C文件)。

2、編譯:將源程序轉換為目標文件(Obj文件)。

3、鏈接:將目標文件生成為可執行文件(EXE文件)。

4、運行:執行,獲取運行結果的EXE文件。

(3)現代體系結構下編譯優化擴展閱讀:

將C語言代碼分為程序的幾個階段:

1、首先,源代碼文件測試。以及相關的頭文件,比如stdio。H、由預處理器CPP預處理為.I文件。預編譯的。文件不包含任何宏定義,因為所有宏都已展開,並且包含的文件已插入。我歸檔。

2、編譯過程是對預處理文件進行詞法分析、語法分析、語義分析和優化,生成相應的匯編代碼文件。這個過程往往是整個程序的核心部分,也是最復雜的部分之一。

3、匯編程序不直接輸出可執行文件,而是輸出目標文件。匯編程序可以調用LD來生成可以運行的可執行程序。也就是說,您需要鏈接大量的文件才能獲得「a.out」,即最終的可執行文件。

4、在鏈接過程中,需要重新調整其他目標文件中定義的函數調用指令,而其他目標文件中定義的變數也存在同樣的問題。

『肆』 計算機體系結構的技術革新

計算機體系結構以圖靈機理論為基礎,屬於馮·諾依曼體系結構。本質上,圖靈機理論和馮·諾依曼體系結構是一維串列的,而多核處理器則屬於分布式離散的並行結構,需要解決二者的不匹配問題。
首先,串列的圖靈機模型和物理上分布實現的多核處理器的匹配問題。圖靈機模型意味著串列的編程模型。串列程序很難利用物理上分布實現的多個處理器核獲得性能加速.與此同時,並行編程模型並沒有獲得很好的推廣,僅僅局限在科學計算等有限的領域.研究者應該尋求合適的機制來實現串列的圖靈機模型和物理上分布實現的多核處理器的匹配問題或縮小二者之間的差距,解決「並行程序編程困難,串列程序加速小」的問題。
在支持多線程並行應用方面,未來多核處理器應該從如下兩個方向加以考慮。第一是引入新的能夠更好的能夠表示並行性的編程模型。由於新的編程模型支持編程者明確表示程序的並行性,因此可以極大的提升性能。比如Cell處理器提供不同的編程模型用於支持不同的應用。其難點在於如何有效推廣該編程模型以及如何解決兼容性的問題。第二類方向是提供更好的硬體支持以減少並行編程的復雜性。並行程序往往需要利用鎖機制實現對臨界資源的同步、互斥操作,編程者必須慎重確定加鎖的位置,因為保守的加鎖策略限制了程序的性能,而精確的加鎖策略大大增加了編程的復雜度。一些研究在此方面做了有效的探索。比如,SpeculativeLockElision機制允許在沒有沖突的情況下忽略程序執行的鎖操作,因而在降低編程復雜度的同時兼顧了並行程序執行的性能。這樣的機制使得編程者集中精力考慮程序的正確性問題,而無須過多地考慮程序的執行性能。更激進的,(TCC)機制以多個訪存操作(Transaction)為單位考慮數據一致性問題,進一步簡化了並行編程的復雜度。
主流的商業多核處理器主要針對並行應用,如何利用多核加速串列程序仍然是一個值得關注的問題。其關鍵技術在於利用軟體或硬體自動地從串新程序中派生出能夠在多核處理器上並行執行的代碼或線程。多核加速串列程序主要有三種方法,包括並行編譯器、推測多線程以及基於線程的預取機制等。在傳統並行編譯中,編譯器需要花費很大的精力來保證擬劃分線程之間不存在數據依賴關系。編譯時存在大量模糊依賴,尤其是在允許使用指針(如C程序)的情況下,編譯器不得不採用保守策略來保證程序執行的正確性。這大大限制了串列程序可以挖掘的並發程度,也決定了並行編譯器只能在狹窄范圍使用。為解決這些問題,人們提出推測多線程以及基於線程的預取機制等。然而,從這種概念提出到現在為止,這個方向的研究大部分局限於學術界,僅有個別商業化處理器應用了這種技術,並且僅僅局限於特殊的應用領域。我們認為動態優化技術和推測多線程(包括基於線程的預取機制)的結合是未來的可能發展趨勢。
馮·諾依曼體系結構的一維地址空間和多核處理器的多維訪存層次的匹配問題。本質上,馮·諾依曼體系結構採用了一維地址空間。由於不均勻的數據訪問延遲和同一數據在多個處理器核上的不同拷貝導致了數據一致性問題。該領域的研究分為兩大類:一類研究主要是引入新的訪存層次。新的訪存層次可能採用一維分布式實現方式。典型的例子是增加分布式統一編址的寄存器網路。全局統一編址的特性避免了數據一致性地考慮。同時,相比於傳統的大容量cache訪問,寄存器又能提供更快的訪問速度。TRIPS和RAW都有實現了類似得寄存器網路。另外,新的訪存層次也可以是私有的形式。比如每個處理器和都有自己私有的訪存空間。其好處是更好的劃分了數據存儲空間,已洗局部私有數據沒有必要考慮數據一致性問題。比如Cell處理器為每個SPE核設置了私有的數據緩沖區。另一類研究主要涉及研製新的cache一致性協議。其重要趨勢是放鬆正確性和性能的關系。比如推測Cache協議在數據一致性未得到確認之前就推測執行相關指令,從而減少了長遲訪存操作對流水線的影響。此外,TokenCoherence和TCC也採用了類似的思想。程序的多樣性和單一的體系結構的匹配問題。未來的應用展現出多樣性的特點。一方面,處理器的評估不僅僅局限於性能,也包括可靠性,安全性等其他指標。另一方面,即便考慮僅僅追求性能的提高,不同的應用程序也蘊含了不同層次的並行性。應用的多樣性驅使未來的處理器具有可配置、靈活的體系結構。TRIPS在這方面作了富有成效的探索,比如其處理器核和片上存儲系統均有可配置的能力,從而使得TRIPS能夠同時挖掘指令級並行性、數據級並行性及指令級並行性。
多核和Cell等新型處理結構的出現不僅是處理器架構歷史上具有里程碑式的事件,對傳統以來的計算模式和計算機體系架構也是一種顛覆
2005年,一系列具有深遠影響的計算機體系結構被曝光,有可能為未來十年的計算機體系結構奠定根本性的基礎,至少為處理器乃至整個計算機體系結構做出了象徵性指引。隨著計算密度的提高,處理器和計算機性能的衡量標准和方式在發生變化,從應用的角度講,講究移動和偏向性能兩者已經找到了最令人滿意的結合點,並且有可能引爆手持設備的急劇膨脹。盡管現在手持設備也相對普及,在計算能力、可擴展性以及能耗上,完全起到了一台手持設備應該具備的作用;另一方面,講究性能的伺服器端和桌面端,開始考慮減少電力消耗趕上節約型社會的大潮流。
Cell本身適應這種變化,同樣也是它自己創造了這種變化。因而從它開始就強調了不一樣的設計風格,除了能夠很好地進行多倍擴展外,處理器內部的SPU(SynergisticProcessorUnit協同處理單元)具有很好的擴展性,因而可以同時面對通用和專用的處理,實現處理資源的靈活重構。也就意味著,通過適當的軟體控制,Cell能應付多種類型的處理任務,同時還能夠精簡設計的復雜。

『伍』 計算機組成原理結構

一、計算機的組成及學習大綱
1. 計算機的組成
計算機的三大件 :CPU、內存、主板
(1)CPU,中央處理器,計算機最核心的配件,負責所有的計算。
(2)內存,你編寫的程序、運行的游戲、打開的瀏覽器都要載入到內存中才能運行,程序讀取的數據、計算的結果也都在內存中,內存的大小決定了你能載入的東西的多少。
(3)主板,存放在內存中數據需要被CPU讀取,CPU計算完成後,還要把數據寫入到內存中,然而CPU不能直接插在內存上,這就需要主板出馬了,主板上很多個插槽,CPU和內存都是插在主板上,主板的晶元組和匯流排解決了CPU和內存之間的通訊問題,晶元組控制數據傳輸的流轉,決定數據從哪裡流向哪裡,匯流排是實際數據傳輸的告訴公里,匯流排速度決定了數據的傳輸速度。
(4)輸入/輸出設備,其實有了以上三大件之後,計算機就可以跑起來了。我們日常使用的話還需要鍵盤、滑鼠、顯示器等輸入/輸出設備,而很多雲伺服器通過SSH遠程登錄就可以訪問,就不需要配顯示器、滑鼠、鍵盤這些東西,節省成本且方便維護。
(5)硬碟,有了硬碟數據才能長久的保存下來,大部分還會給自己的機器配上機箱和風扇,解決灰塵和散熱問題,不過這些也不是必須的,用紙板和電風扇替代也一樣可以用。
(6)顯卡,顯卡里有GPU圖形處理器,主要負責圖形渲染,使用圖形界面操作系統的計算機,顯卡是必不可少的。現在的主板都帶了內置的顯卡,如果想玩游戲、做圖形渲染,一般需要一張單獨的顯卡,插在主板上。
2. 馮·諾依曼體系
現代計算機的硬體基礎架構都是依賴於馮諾依曼提出的馮諾依曼體系結構,現代計算機的核心架構可以抽象為五個基礎組件:運算器、控制器、存儲器、輸入設備和輸出設備。
具體到現代計算機,運算器和控制器組成了現代計算機的CPU,存儲器對應著內存和硬碟,主板控制著CPU、內存、硬碟、輸出/輸出設備之間的通訊。
馮諾依曼體系結構也叫做存儲程序計算機,即可編程、可存儲的計算機。
任何一台計算機的任何一個部件都可以歸到運算器、控制器、存儲器、輸入設備和輸出設備中,而所有的現代計算機也都是基於這個基礎架構來設計開發的。
馮諾依曼體系結構確立了我們現代計算機的硬體基礎架構,學習計算機組成原理,就是學習和拆解馮諾依曼體系。

『陸』 哪本"編譯原理"的書比較好

我們學校用的是《編譯原理》與《編譯原理與實踐》這兩本書,這兩本書都是國外的教材。我覺得《編譯原理與實踐》這本書不錯,自學應該能看懂,而且代碼比較多,書最後還有整個小型編譯器的源代碼。
編譯不好學,你就慢慢學吧。

下面的資料請作參考:

當代編譯技術三大聖經級別的教材

1.龍書(Dragon book)
書名是Compilers: Principles,Techniques,and Tools
作者是:Alfred V.Aho,Ravi Sethi,Jeffrey D.Ullman

內容簡介
《編譯原理》作者Alfred V.Aho、Ravi Sethi和Jeffrey D.Ullman是世界著名的計算機 科學家,他們在計算機科學理論、資料庫等很多領域都做出了傑出貢獻。《編譯原理》 是編譯領域無可替代的經典著作,被廣大計算機專業人士譽為「龍書」。《編譯原理》一 直被世界各地的著名高等院校和科研機構(如貝爾實驗室、哥倫比亞大學、普 林斯頓大學和斯坦福大學等)廣泛用作本科生和研究生編譯原理與技術課程的 教材,《編譯原理》對我國計算機教育界也具有重大影響。 書中深入討論了編譯器設計的重要主題,包括詞法分析、語法分析、語法制 導分析、類型檢查、運行環境、中間代碼生成、代碼生成、代碼優化等,並在 最後兩章中討論了實現編譯器的一些編程問題和幾個編譯器實例,而且每章都 提供了大量的練習和參考文獻。

與上一版相比,《編譯原理》第二版進行了全面的修訂,涵蓋了編譯器開發方面的最新進展。每章中都提供了大量的系統及參考文獻。《編譯原理》是編譯原理課程方面的經典教材,內容豐富,適合作為高等院校計算機及相關專業本科生及研究生的編譯原理課程的教材,也是廣大技術人員的極佳參考讀物。

作者簡介
Alfred V.Aho,美國歌倫比亞大學教授,美國國家工程院院士,ACM和IEEE會士,曾獲得IEEE的馮·諾伊曼獎。著有多部演算法、數據結構、編譯器、資料庫系統及計算機科學基礎方面的著作。
Monica S.Lam,斯坦福大學計算機科學系教授,曾任Tensilica的首席科學家,也是Moka5的首任CEO。曾經主持SUIF項目,該項目產生了最流行的研究用編譯器之一。
Ravi Sethi,Avaya實驗室總裁,曾任貝爾實驗室高級副總裁TLucent Technologies通信軟體的CTO。他曾在賓夕法尼亞州立大學、亞利桑那州立大學和普林斯頓大學任教,是ACM會士。
Jeffrey D.Ullman斯坦福大學計算機科學系教授和Gradiance CEO,他的研究興趣包括資料庫理論、資料庫集成、數據挖掘和利用信息基礎設施教學等。他是美國國家工程院院士、IEEE會士,獲得過ACM的KarIstrom傑出教育家獎和Knuth獎。
第一版中文版
第二版中文版

2.鯨書(Whale book)
書名是:Advanced Compiler Design and Implementation
作者是:Steven S.Muchnick

內容簡介
本書迎接現代語言和體系結構的挑戰,幫助讀者作好准備,去應對將來要遇到的編譯器設計的問題。
本書涵蓋現代微處理器編譯器的設計和實現方面的所有高級主題。本書從編譯設計基礎領域中的高級問題開始,廣泛而深入地闡述各種重要的代碼優化技術,分析各種優化之間的相對重要關系,以及實現這些優化的最有效方法。
本書特點
●為理解高級編譯器設計的主要問題奠定了基礎
●深入闡述優化問題
●用Sun的SPARC、IBM的POWER和PowerPC、DEC的Alpha以及Intel的Pentium和相關商業編譯 器作為案例,說明編譯器結構、中間代碼設計和各種優化方法
●給出大量定義清晰的關於代碼生成、優化和其他問題的演算法
●介紹由作者設計的以清晰、簡潔的方式描述演算法的語言ICAN (非形式編譯演算法表示)。

本書是經典的編譯器著作,與「龍書」齊名,稱為鯨書。書中針對現代語言和體系結構全面介紹了編譯器設計與實現的高級論題,從編譯器的基礎領域中的高級問題開始,然後深入討論了各種重要的代碼優化。本書專為編譯器專業人士和計算機專業本科生,研究生編寫,在設計和實現高度優化的編譯器以及確定優化的重要性和實現優化的最有效的方法等方面,為讀者提供了非常有價值的指導。

作者簡介
Steven S.Muchnick,曾是計算機科學教授,後作為惠普的PA-RISC和SUN的SPARC兩種計算機體系結構的核心開發成員,將自己的知識和經驗應用於編譯器設計,並擔任這些系統的高級編譯器設計與實現小組的領導人。他在研究和開發方面的雙重經驗,對於指導讀者作出編譯器設計決策極具價值。

3.虎書(Tiger book)
書名是:Modern Compiler Implementation in C /Java /ML,Second Edition
作者是:Andrew W.Appel,with Jens Palsberg

內容簡介
《現代編譯原理——C語言描述(英文版)/圖靈原版計算機科學系列》全面講述了現代編譯器的各個組成部分,包括:詞法分析、語法分析、抽象語法、語義檢查、中間代碼表示、指令選擇、數據流分析、寄存器分配以及運行時系統等。與大多數編譯原理的教材不同,《現代編譯原理——C語言描述(英文版)/圖靈原版計算機科學系列》採用了函數語言和面向對象語言來描述代碼生成和寄存器分配,對於編譯器中各個模塊之間的介面都給出了實際的 C 語言頭文件。 全書分成兩部分,第一部分是編譯的基礎知識,適用於第一門編譯原理課程(一個學期);第二部分是高級主題,包括面向對象語言和函數語言、垃圾收集、循環優化、 SSA(靜態單賦值)形式、循環調度、存儲結構優化等。
本書是一本著名的編譯原理課程的教材。國際上眾多名校均採用本書作為編譯原理課程的教材,包括美國麻省理工學院、加州大學伯克利分校、普林斯頓大學和英國劍橋大學等。本書在國外享有「虎書」的稱號,與有「龍書」之稱的《編譯原理》(Alfred Aho 等編著)齊名。與編譯原理方面的其他名著相比,本書出版時間晚,內容新。 書中專門為學生提供了一個用 C 語言編寫的實習項目,包括前端和後端設計,學生可以在一學期內創建一個功能完整的編譯器。

作者簡介
Andrew W.Appel,美國普林斯頓大學計算機科學系教授,第26屆ACM SIGPLAN-SIGACT程序設計原理年會大會執行主席,1998-1999年在貝爾實驗室做研究工作。主要研究方向是計算機安全、編譯器設計、程序設計語言等。

『柒』 現在主流計算機體系結構下,資料庫在程序編譯與鏈接過程中是否有作用是怎樣的(大

完全沒有,程序在編譯和鏈接的過程中與資料庫毫無關系,只有運行過程中有關系

『捌』 求計算機體系結構的一些技術描述英語文章

Computer architecture with a focus on the development direction of
I. INTRODUCTION
Computer architecture mainly refers to the systematic computer design and construction,
With the computer architecture apply to different needs and applications. Modern computer
The two main system architecture is CISC and RISC system. One RISC
In the last 20 of the mainstream. With the popularity of computer application, RISC Guitar
Structure and many have appeared to handle multimedia and mobile personal computer as the main
Application of the trend of capacity uncoordinated. In order to eliminate these non-conforming, the next computer
Architecture will develop in the direction of what to do »this paper illustrates these issues
Shu and annotations.

Second, the two main types of computer architecture that

Today's computer architecture, from the traditional command-based interface of
This is divided into two categories: one category is CISC architecture, such as the X86 INTEL
Chips, and the other is a RISC architecture, such as SPARC, MIPS, POWERPC, and so on. Whether or CISC architecture RISC architecture, people
In computer architecture design are pursuing two objectives:

1. Oriented applications (software) described in
The computer system design-oriented applications (software) makes self-described aspects
The directive has a relatively high level of semantics, this CISC more obvious, because of its
Many can command the support of high-level language semantics. The RISC is more implicit
Bi, it is relying on streamlining the command of the compiler optimization (that is, through a number of directives have streamlined
- Portfolio) to support the high-level language semantics.

2. Application-oriented processing
The computer system in the design of application-oriented processing, making their own means
The processing speed has increased, thereby accelerating the speed of processing applications. This RISC
Performance of the more obvious, because it's instructions and hardware decoding to achieve a direct flow
Waterline technology greatly improved its processing speed, and in the CISC in the first place
Increase the hardware resources to support complex high-level semantics to the directive itself Italy
Improve the taste of processing speed.

In the past 20 years, RISC technology development, and graally replace C1SC
Into the mainstream workstation and server technology. RISC computer to superscalar, flow
Waterline, the implementation of arbitrary sequence, prefetch instruction / data, branch prediction and cancelled orders and other hardware
Were based on technology and the corresponding compiler optimization technology as the core, the use of command-level
Parallel, in the field of high-end workstations and servers occupy a position of absolute rule.

Third, the current structure of the computer system problems
More than 60 years, Von Neumann architecture for the world's many fine scientists
Carefully constructed so as to create today's computer world. Von Neumann's Wei
Great inventions, its core are three points: 1) binary 2) storage model, 3)
There is only one moment of a serial operation mechanism.

Although the computer sector, the large number of national experts in research on value theory, but
So far almost no breakthrough in the binary system. People use a lot of storage management
The software technology and methods, trying to one-dimensional model of storage to two-dimensional, but
Has not escaped Feng storage model and register the storage structure, makes the string
Trip mechanism on new breakthroughs will be very difficult. The main problems:
中文意思:計算機體系結構的研究重點與發展方向分析
一、引言
計算機體系結構主要指計算機的系統化設計和構造,不
同的計算機體系結構適用於不同的需求或應用。現代計算機
的兩種主要體系結構是 CISC體系和 RISC體系。其中 RISC
是近 20年的研究主流。而隨著計算機應用的普及,RISC結
構也出現了許多與以多媒體處理和個人移動計算機為主要內
容的應用趨勢的不協調。為了消除這些不協調,未來計算機
體系結構將會向什麼方向發展呢?本文將對這些問題進行闡
述和說明。

二、兩種主要的計算機體系結構說明

當今的計算機體系結構,從傳統意義指令界面上來看基
本劃分成兩大類:一類是 CISC體系結構,如 INTEL的 X86
晶元,另一類是 RISC體系結構,如SPARC、MIPS、 POWERPC、等。不管是 CISC體系結構還是 RISC體系結構,人們
在計算機體系結構的設計上均追求兩方面的目標:

1.面向應用(軟體)描述方面
設計的計算機體系在面向應用(軟體)描述方面使得自
己的指令語義層次比較高,這點 CISC較為明顯,因為它有
許多指令可以直接支持高級語言的語義。而 RISC則比較隱
蔽,它是靠精簡指令的優化編譯(即通過若干條精簡指令有
機組合)來支持高級語言的語義。

2.面向應用處理方面
設計的計算機體系在面向應用處理方面,使得自己的指
令處理速度明顯提高,進而加速應用處理的速度。這點 RISC
表現的比較明顯,因為它的指令硬體解碼直接實現和採用流
水線技術等大大提高了它的處理速度,而在 CISC中,當初
增加硬體的資源支持復雜的高層次的語義的指令,本身就意
味著提高應用的處理速度。

在過去的 20年裡,RISC技術不斷發展,逐漸取代 C1SC
成為工作站和伺服器的主流技術。RISC計算機以超標量、流
水線、亂序執行、預取指令/數據、分支預測和指令取消等硬
件技術和相應的基於編譯器的優化技術為核心,利用指令級
並行,在高端工作站和伺服器領域占據了絕對的統治地位。

三、當前計算機體系結構存在的問題
60多年來,馮 ·諾伊曼體系結構為世界眾多的科學家精
心地構造,從而創造了今天的計算機世界。馮 ·諾伊曼的偉
大發明,其核心有三點:1)二進制;2)存儲模型;3)一
個時刻只有一個操作的串列機制。

雖然在計算機界,眾多的國家專家在研究多值理論,但
至今幾乎沒有突破二進制的體系。人們利用了很多存儲管理
的軟體技術和方法,力圖將一維的存儲模型改為二維的,但
仍然沒有逃出馮氏存儲模型和寄存器存儲的結構,使得在串
行機制上進行新的突破將十分困難。主要表現在:

『玖』 在不考慮編譯器優化等因素下,下面那個運算比較快

下面是在編譯器不優化的情況下的代碼反匯編後的結果
14: if (a > b)//我們看到,只有3條指令,
0040104D mov edx,dword ptr [ebp-4] //將a放入寄存器EDX
00401050 cmp edx,dword ptr [ebp-8] //比較EDX和b的大小
00401053 jle main+3Ch (0040105c) //如果a<b跳轉到0040105c
15: {
16: return 1;
00401055 mov eax,1
0040105A jmp main+4Fh (0040106f)
17: }
18: if (a - b > 0)//我們看到有4條指令
0040105C mov eax,dword ptr [ebp-4]//將a放入EAX
0040105F sub eax,dword ptr [ebp-8]//a-b的差放入EAX
00401062 test eax,eax//比較EAX是否為0
00401064 jle main+4Dh (0040106d)//條件跳轉
19: {
20: return 2;
00401066 mov eax,2
0040106B jmp main+4Fh (0040106f)
21: }
所以我認為if (a > b) {....}
效率更高

閱讀全文

與現代體系結構下編譯優化相關的資料

熱點內容
亞馬遜雲伺服器的選擇 瀏覽:810
單片機頻率發生器 瀏覽:732
備份與加密 瀏覽:623
用什麼app可以看論壇 瀏覽:52
javajdbcmysql連接 瀏覽:473
製作linux交叉編譯工具鏈 瀏覽:751
編程負數除以正數 瀏覽:512
app和aso有什麼區別 瀏覽:326
手機vmap是什麼文件夾 瀏覽:36
塔科夫鎖服如何選擇伺服器 瀏覽:290
消費者生產者問題java 瀏覽:61
程序員筱柒顧默結婚的時候 瀏覽:578
安卓截長屏怎麼弄 瀏覽:475
優信辦理解壓手續怎麼那麼慢 瀏覽:605
私有雲伺服器一體機安全嗎 瀏覽:430
python的tk界面禁用滑鼠 瀏覽:186
怎麼看伺服器mac地址 瀏覽:291
安卓如何將圖鏡像翻轉 瀏覽:325
操作系統設計與實現pdf 瀏覽:547
長虹空調遙控什麼app 瀏覽:739