『壹』 RISC的關鍵技術都有哪些謝謝
ARM11系列微處理器是ARM公司近年推出的新一代RISC處理器,它是ARM新指令架構——ARMv6的第一代設計實現。該系列主要有ARM1136J,ARM1156T2和ARM1176JZ三個內核型號,分別針對不同應用領域。本文將對全新的ARMv6架構進行介紹,並深入分析ARM11處理器的先進特點和關鍵技術。ARMv6結構體系實現新一代微處理器的第一步就是訂立一個新的結構體系。這里所說的結構體系只是對處理器行為進行描述,並不包括具體地指定處理器是如何被建造的。結構體系的定義提供了處理器和外界(操作系統,應用程序和調試支持)的介面,從細節上說,處理器結構體系定義了指令集、編程模式和最近的存儲器之間的介面。最新的ARM處理器架構—ARMv6,發布於2001年10月,它建立於過去十年ARM許多成功的結構體系基礎上。同處理器的授權相似,ARM也向客戶授權它的結構體系。比如,Intel的XScale就是基於ARMv5TE的處理器。本文也會就ARM11和Intel XScale的特點作一比較。 目標應用ARMv6架構是根據下一代的消費類電子、無線設備、網路應用和汽車電子產品等需求而制定的。ARM11的媒體處理能力和低功耗特點,特別適用於無線和消費類電子產品;其高數據吞吐量和高性能的結合非常適合網路處理應用;另外,也在實時性能和浮點處理等方面ARM11可以滿足汽車電子應用的需求。可以預言,基於AMRv6體系結構的ARM11系列處理器將在上述領域發揮巨大的作用。主要特點對於各種無線移動應用,毫無節制的提供高性能處理器是無用的。同成本控制類似,功耗的控制也是一個重要因素。ARM11系列處理器展示了在性能上的巨大提升,首先推出350M~500MHz時鍾頻率的內核,在未來將上升到1GHz時鍾頻率(如圖2)。 ARM11處理器在提供高性能的同時,也允許在性能和功耗間做權衡以滿足某些特殊應用。通過動態調整時鍾頻率和供應電壓,開發者完全可以控制這兩者的平衡。在0.13um工藝,1.2v條件下,ARM11處理器的功耗可以低至0.4mW/MHz。ARM11處理器同時提供了可綜合版本和半定製硬核兩種實現。可綜合版本可以讓客戶根據自己的半導體工藝開發出各有特色的處理器內核,並保持足夠靈活性。ARM實現的硬核則是為了滿足那些極高性能和速度要求的應用,同時為客戶節省實現的成本和時間。為了讓客戶更方便地走完實現流程,ARM11處理器採用了易於綜合的流水線結構,並和常用的綜合工具以及RAM compiler良好結合,確保了客戶可以成功並迅速的達到時序收斂。目前已有的ARM11處理器在不包含Cache的情況下面積小於2.7mm2,對於當前復雜的SoC設計來說,如此小的die size對晶元成本的降低是極其重要的。ARM11處理器在很多方面為軟體開發者帶來便利。一方面,它包含了更多的多媒體處理指令來加速視頻和音頻處理;另一方面,它的新型存儲器系統進一步提高了操作系統的性能;此外,還提供了新指令來加速實時性能和中斷的響應。再次,目前有很多應用要求多處理器的配置(多個ARM內核,或ARM+DSP的組合),ARM11處理器從設計伊始就注重更容易地與其他處理器共享數據,以及從非ARM的處理器上移植軟體。此外,ARM還開發了基於ARM11系列的多處理器系統——MPCORE(由二個到四個ARM11內核組成)。優秀的性能ARM11處理器的超強性能是由一系列的架構特點所決定的。ARMv6—決定性能的基礎ARMv6架構決定了可以達到高性能處理器的基礎。總的來說,ARMv6架構通過以下幾點來增強處理器的性能:多媒體處理擴展使MPEG4編碼/解碼加快一倍音頻處理加快一倍增強的Cache結構實地址Cache減少Cache的刷新和重載減少上下文切換的開銷增強的異常和中斷處理使實時任務的處理更加迅速= 支持Unaligned和Mixed-endian數據訪問使數據共享、軟體移植更簡單,也有利於節省存儲器空間對絕大多數應用來說,ARMv6保持了100%的二進制向下兼容,使用戶過去開發的程序可以進一步繼承下去。ARMv6 保持了所有過去架構中的T(Thumb指令)和E(DSP指令)擴展,使代碼壓縮和DSP處理特點得到延續;為了加速Java代碼執行速度的ARM Jazalle技術也繼續在ARMv6架構中發揮重要作用。ARM11處理器的內核特點ARM11處理器是為了有效的提供高性能處理能力而設計的。在這里需要強調的是,ARM並不是不能設計出運行在更高頻率的處理器,而是,在處理器能提供超高性能的同時,還要保證功耗、面積的有效性。ARM11優秀的流水線設計是這些功能的重要保證。 相近文章: · 中芯國際牽手飛索投產武漢12英寸廠 · 整合資源比亞迪接手寧波中緯半導體資產 · 東芝追加投資 通過SD卡擴大數字媒體交付 · IBM支持32nm/28nm ARM片上系統晶元 · 海力士關閉200mm晶圓「M7」DRAM工廠 編輯:潘爭本文引用地址: http://www.eeworld.com.cn/others/hotclick/200807/article_17973.html
『貳』 編譯器的組成及各部分的功能及作用
1. 詞法分析 詞法分析器根據詞法規則識別出源程序中的各個記號(token),每個記號代表一類單詞(lexeme)。源程序中常見的記號可以歸為幾大類:關鍵字、標識符、字面量和特殊符號。詞法分析器的輸入是源程序,輸出是識別的記號流。詞法分析器的任務是把源文件的字元流轉換成記號流。本質上它查看連續的字元然後把它們識別為「單詞」。 2. 語法分析 語法分析器根據語法規則識別出記號流中的結構(短語、句子),並構造一棵能夠正確反映該結構的語法樹。 3. 語義分析 語義分析器根據語義規則對語法樹中的語法單元進行靜態語義檢查,如果類型檢查和轉換等,其目的在於保證語法正確的結構在語義上也是合法的。 4. 中間代碼生成 中間代碼生成器根據語義分析器的輸出生成中間代碼。中間代碼可以有若干種形式,它們的共同特徵是與具體機器無關。最常用的一種中間代碼是三地址碼,它的一種實現方式是四元式。三地址碼的優點是便於閱讀、便於優化。 5. 中間代碼優化 優化是編譯器的一個重要組成部分,由於編譯器將源程序翻譯成中間代碼的工作是機械的、按固定模式進行的,因此,生成的中間代碼往往在時間和空間上有很大浪費。當需要生成高效目標代碼時,就必須進行優化。 6. 目標代碼生成 目標代碼生成是編譯器的最後一個階段。在生成目標代碼時要考慮以下幾個問題:計算機的系統結構、指令系統、寄存器的分配以及內存的組織等。編譯器生成的目標程序代碼可以有多種形式:匯編語言、可重定位二進制代碼、內存形式。 7 符號表管理 符號表的作用是記錄源程序中符號的必要信息,並加以合理組織,從而在編譯器的各個階段能對它們進行快速、准確的查找和操作。符號表中的某些內容甚至要保留到程序的運行階段。 8 出錯處理用戶編寫的源程序中往往會有一些錯誤,可分為靜態錯誤和動態錯誤兩類。所謂動態錯誤,是指源程序中的邏輯錯誤,它們發生在程序運行的時候,也被稱作動態語義錯誤,如變數取值為零時作為除數,數組元素引用時下標出界等。靜態錯誤又可分為語法錯誤和靜態語義錯誤。語法錯誤是指有關語言結構上的錯誤,如單詞拼寫錯、表達式中缺少操作數、begin和end不匹配等。靜態語義錯誤是指分析源程序時可以發現的語言意義上的錯誤,如加法的兩個操作數中一個是整型變數名,而另一個是數組名等。
『叄』 編譯器程序的組成部分分別是什麼
編譯器是由詞法分析器,語法分析器,語義分析器,中間代碼生成,代碼優化和目標代碼生成。謝謝。
『肆』 VC編譯器中「優選大小或速度」和「優化」選項的設置區別在哪裡
VC中的優化裡面的 按大小優化 與 按速度優化 是分開選的,不能同時選擇兩者
『伍』 含有代碼優化的編譯器的執行效率高這句話對不對
優化方式理論上跟編譯器和硬體都有關聯。代碼級別的優化,要看所使用的編譯器實現,Xcode用的是clang,VS用的是windows自己的編譯器。。。
匯編級別(指令級別)的優化,要根據硬體對應的指令集實現,指令集根據CPU類型的不同而不同。。。
『陸』 RISC的指令集使編譯優化工作更____
哪裡說RISC更復雜了?
『柒』 通信工程,嵌入式系統,汽車電子,選哪個
首先說通信工程,隨著中國3G時代的到來,通信工程方面的人才肯定是必不可少的,但現在通信工程找工作的范圍不是很寬,主要是一些大的企業,比喻移動,中國電信等,而一般都沒有小企業做這方面的,因為這些技術是一般小企業做不來的,在加上通信工程知識都是比較難學的,要學好不容易,他要求有很好的數學基礎,不過真正學的很好的話,那高薪是不用愁的,我就是因為學不來像《信號與系統》這樣的課程而未走這條路的。
再說嵌入式系統(是我現在在學的),就像樓上說的那樣,現在中國的嵌入式行業真正是處在飛速發展的階段,其發展的前景是很廣闊的,而且這方面的人才現在還很缺,所以一般學這個專業的找到一份工作室不用愁的。上次我們學校過來招聘的就開出了3000--5000的起薪,現在都是這個行情。如果能上研究生的話,那工資水平就更高了,我在網上看過的招聘 :具有研究生學歷,三年以上工作經驗的年薪在10萬-15萬之間。
嵌入式一般有偏硬體和偏軟體之分,基礎課也較多,電信方面的如 電路、模數電、微機、單片機、匯編等,計算機方面的如 計算機原理、C/C++、數據結構、操作系統、軟體基礎等,真正難的是後面以這些為基礎的 ARM嵌入式系統、運行在這硬體上的操作系統 如LINUX、WINDOWS CE等、基於以上基礎的 應用程序的開發,內核的開發、驅動程序的開發。
要學好嵌入式不容易,但我相信只要多花時間,什麼問題都能搞定。呵呵
以上是我了解的,給你作參考。至於汽車電子我了解不多。
『捌』 編譯器能夠完成的工作是
1. 詞法分析詞法分析器根據詞法規則識別出源程序中的各個記號(token),每個記號代表一類單詞(lexeme)。源程序中常見的記號可以歸為幾大類:關鍵字、標識符、字面量和特殊符號。詞法分析器的輸入是源程序,輸出是識別的記號流。詞法分析器的任務是把源文件的字元流轉換成記號流。本質上它查看連續的字元然後把它們識別為「單詞」。
2. 語法分析語法分析器根據語法規則識別出記號流中的結構(短語、句子),並構造一棵能夠正確反映該結構的語法樹。
3. 語義分析語義分析器根據語義規則對語法樹中的語法單元進行靜態語義檢查,如果類型檢查和轉換等,其目的在於保證語法正確的結構在語義上也是合法的。
4. 中間代碼生成中間代碼生成器根據語義分析器的輸出生成中間代碼。中間代碼可以有若干種形式,它們的共同特徵是與具體機器無關。最常用的一種中間代碼是三地址碼,它的一種實現方式是四元式。三地址碼的優點是便於閱讀、便於優化。
5. 中間代碼優化
優化是編譯器的一個重要組成部分,由於編譯器將源程序翻譯成中間代碼的工作是機械的、按固定模式進行的,因此,生成的中間代碼往往在時間和空間上有很大浪費。當需要生成高效目標代碼時,就必須進行優化。
6. 目標代碼生成
目標代碼生成是編譯器的最後一個階段。在生成目標代碼時要考慮以下幾個問題:計算機的系統結構、指令系統、寄存器的分配以及內存的組織等。編譯器生成的目標程序代碼可以有多種形式:匯編語言、可重定位二進制代碼、內存形式。
7 符號表管理
符號表的作用是記錄源程序中符號的必要信息,並加以合理組織,從而在編譯器的各個階段能對它們進行快速、准確的查找和操作。符號表中的某些內容甚至要保留到程序的運行階段。
8 出錯處理用戶編寫的源程序中往往會有一些錯誤,可分為靜態錯誤和動態錯誤兩類。所謂動態錯誤,是指源程序中的邏輯錯誤,它們發生在程序運行的時候,也被稱作動態語義錯誤,如變數取值為零時作為除數,數組元素引用時下標出界等。靜態錯誤又可分為語法錯誤和靜態語義錯誤。語法錯誤是指有關語言結構上的錯誤,如單詞拼寫錯、表達式中缺少操作數、begin和end不匹配等。靜態語義錯誤是指分析源程序時可以發現的語言意義上的錯誤,如加法的兩個操作數中一個是整型變數名,而另一個是數組名等。
『玖』 keil c51優化等級介紹
一般用優化等級8,其它的別用,容易出事。
編譯完之後多留意data,xdata,看有沒超出晶元的最大值,
特別是data,不能超過128,甚至太接近128有時也會出問題。
如果data 需要使用到256,則另外的128用idata定義
『拾』 編譯器具體實現中比較巧妙的思想有哪些
要說編譯器實現的巧妙思想,很多都是用來解決工程性問題的,跟編譯原理中的演算法(解決抽象概念問題 / 學術問題)未必有直接關系。
題主是更想知道某個演算法在具體實現中的特點或者說應用方式呢,還是更想了解工程方面的問題呢?
我覺得前者應該有很多人會給出非常有趣的回答,我就主要回答後者的方面吧。解決工程性問題的巧妙技巧也挺吸引人的,而且有非常大量的素材…根本無法列舉完。
LLVM
說到編譯器實現,不得不落個俗套說說LLVM編譯器套件。不用介紹LLVM是啥了,感覺是「地球人都知道」系列。
1、一套IR,三種表現形式:運行時表現形式(llvm/IR,內存中)、序列化表現形式(bitcode,用於存儲)、文本表現形式(「LLVM匯編」,便於人閱讀和編輯)。三種形式間可以無損變換是LLVM非常非常強大的實現特點之一。
實際使用時能否真的達到無損變換很大程度上取決於要實現的語言有多少東西無法用LLVM IR表達。
例如說如果有語言實現基於LLVM來實現JIT編譯器,並且想把一個運行時的對象指針當作常量嵌入生成的代碼里,它可以把這個常量構造成LLVM IR,但如果把這個常量序列化到bitcode或生成文本形式,等「下一次編譯」再讀出來用的話,那個常量指針可能已經不對了。這跟生成PIC(position-independent code)的問題類似,但LLVM沒辦法幫語言解決這種問題。
也有可能有些語言實現偷懶,有些嵌入LLVM IR的metadata無法無損轉換為文本形式,這也不能怪LLVM IR不好,但確實是使用中要頭疼的問題…
這種一套IR三種表現形式的設計非常實用,一些新的語言實現項目受其影響也採用了類似的設計。