當前位置:首頁 > 嵌入式 > 嵌入式硬件
[導讀]摘要:介紹嵌式32位CPU在編譯器中解決64位運算的方法,并列舉一個加法運算的例子,給出可供參考的指令模板。包括32位RISC體系嵌入式CPU層次結構和編譯器后端結構。 關鍵詞

摘要:介紹嵌式32位CPU在編譯器中解決64位運算的方法,并列舉一個加法運算的例子,給出可供參考的指令模板。包括32位RISC體系嵌入式CPU層次結構和編譯器后端結構。 關鍵詞:RTL 指令模板 編譯優(yōu)化 1 概述 在信息化飛速發(fā)展的今天,計算機已成為人們學習和工作不可缺少的工具,我國業(yè)已取得了電腦生產(chǎn)大國的地位;但是,作為計算機的核心——CPU的設計與制造,卻成了幾代計算機工作者的未了習愿,也給國家的安全帶來了隱憂。順應潮流,中芯微系統(tǒng)公司于2001年推出了國內(nèi)第一顆實用化的32位CPU(方舟一號),主頻達到166MHz。下一代方舟CPU將采用0.18μm工藝,超流水結構,主頻能達到600MHz以上,在嵌入式CPU領域走到國際前列。 傳統(tǒng)的32位計算機處理64位運算通常是設計具體的邏輯電路實現(xiàn)。隨著SoC(System on Chip)的出現(xiàn),芯片上集成各種功能部件越來越多,特別對于嵌入式系統(tǒng),片上能利用的空間就列加有限,這也要求將部分功能用軟件來實現(xiàn)。對于64位長字運算軟件實現(xiàn)的方法通常有兩種:一是設計系統(tǒng)軟件供操作系統(tǒng)內(nèi)核調(diào)用;二是在相關的編譯器中設計指令模板來解決。前者執(zhí)行效率高,但每使用一次就要編譯一次;后者只需編譯一次,總的效率要高于前者。因此,實際采用在編譯器中設計指令模板予以解決。 2 32位RISC體系嵌入式CPU層次結構描述 圖1是一個集成了DSP(數(shù)字信號處理器)嵌入式CPU的層次圖。

從圖1可看到,編譯器在整個CPU結構中處于ASIC硬件電路之下和操作系統(tǒng)之上,擔負著將高級的、抽象的表達式轉(zhuǎn)化為相對低級的表達式,最終生成系統(tǒng)指令集。 3 CPU編譯器后端結構 CPU編譯器分為前端和后端:前端主要完成詞法/語法分析并生成語法樹,這里不再論述;后端是編譯的主體部分,它將語法樹轉(zhuǎn)換成不間語言,在此不間語言基礎上進行各種編譯優(yōu)化,最終生成匯編指令代碼。編譯后端在進行優(yōu)化的過程中要跟具體的目標機的機器描述文件多次匹配,生成RTL語言(Register Transfer Language)—GNU CC的中間語言。 機器描述文件由各種與目標機有關的指令模板、功能模板、C語言形式的預處理函數(shù)等構成。本文涉及到的64位運算就是由RTL和指令模板多次匹配后生成匯編指令來解決的,過程如圖2所示。 限于篇幅,這里僅舉64位加法運算的部分例子,其它運算與此類似。 4 64位加法運算指令板 ① RTL識別指令模板,第一次匹配。 (define_insn “adddi3”) [(set(match_operand:DI 0 "register_operand" "=r") (plus:DI (match_operand:DI 1“register_operand”“0”) (match_operand:DI 2 "register_operand"“r”))) (clobber(reg:SI 6))]//6號寄存器作進位使用 "") ② 將64位加法分解成高32位和低32位運算,第二次匹配。 (define_split [(set(match_operand:DI 0 "register_operand"“=r”) (plus:DI (match_operand:DI 1“register_operand”“0”) (match_operand:DI 2 “register_operand”“r”))) (clobber(reg:SI 6))] "reload_complete" “{ [(const_int 0)] //寄存器使用前清零 rtx low[3],high[3]; //rtx為一種處理表達式的數(shù)據(jù)類型 low[0]=gen_lowpart(Simode,operands[0]); low[1]=gen_lowpart(Simode,operands[1]); low[2]=gen_lowpart(Simode,operands[2]); high[0]=gen_rtx(REG,Simode,REGNO(operands[0]-1); high[1]=gen_rtx(REG,Simode,REGNO(operands[1]-1); high[2]=gen_rtx(REG,Simode,REGNO(operands[2]-1); //由于方舟CPU地址存儲方式采用的是Big-Endian,即字節(jié)中的最高有效位具有最低序號,所以高位硬寄存器號要減1。 emit_insn(gen_addsi3_set_carry(low[0],low[1],low[2])) //低32位加并設置進位 emit_insn(gen_addsi3_use_carry(high[0],high[1],high[2])); //高32位加并處理進位 DONE;

} ③ 處理低32位加。 (define_insn "addsi_set_carry" [(set(match_operand:SI 0 (match_operand:SI1 "register_operand" "r") (match_operand:SI 2 "register_operand"“r”))) (clobber(reg:SI6))] //以下判斷是否有進位。有,則6號寄存器置1(set(reg:SI6) (itu:SI(plus:SI(match_dup 1)match_dup 2))(match_dup 1)))] "" "addt%0,%1,%2" //生成低32位匯編模板 ) ④處理高32位加。 (define_insn "addi3_use_carry" (define_insn "adddi3_use_carry" [(set(match_operand:SI 0 "register_operand"“=r”) (plus:SI(plus:SI(match_operand:SI 1 "register_operand" "r")) (reg:SI 6))) (clobber(reg:SI 6))] “” "add%0,%1,%2;addt%0,%0,r6" //生成高32位帶進位加匯編模板 ) 在機器描述文件中,DI為64位機器方式,SI為32位方式。該文件由機器描述處理程序進行格式轉(zhuǎn)換,它將調(diào)用編譯內(nèi)部一套專門的函數(shù)和數(shù)據(jù)結構作為接口,生成gen_開頭的預處理函數(shù)對指令模板作進一步的處理,再生成由insn_開頭的函數(shù)對模板作匹配后生成匯編代碼。 結語 在方舟二號CPU上測試的結果達到了64運算的要求,相關的指令代碼如下: …… 132 r18,[r15,4] 132 r19,[r15,8] add r16,r16,r18 add r17,r17,r19 add r17,r17,r6 …… 用SPEC95進行定點運算測試,可達280MIPS以上,收到了較好的預期結果。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉