當前位置:首頁 > 單片機 > 單片機
[導讀]一.RISC設計思想ARM內核采用RISC體系結構。RISC是一種設計思想,其目標是設計出一套能在高時鐘頻率下單周期執(zhí)行,簡單而有效的指令集。RISC的設計重點在于由硬件執(zhí)行的指令的復雜度,這是因為軟件比硬件容易提供更大

一.RISC設計思想

ARM內核采用RISC體系結構。RISC是一種設計思想,其目標是設計出一套能在高時鐘頻率下單周期執(zhí)行,簡單而有效的指令集。RISC的設計重點在于由硬件執(zhí)行的指令的復雜度,這是因為軟件比硬件容易提供更大的靈活性和更高的智能。因此,RISC設計對編譯器有更高的要求;相反,傳統的復雜指令集的計算機(CISC)則更側重于硬件執(zhí)行指令的功能性,使CISC變得更復雜。

RISC設計思想主要由下面4個設計準則來實現:

▇ 指令集

RISC處理器減少了指令種類,每條指令的長度都是固定的,允許流水線在當前指令譯碼階段去取其下一條指令;而CISC處理器中,指令的長度通常不固定,執(zhí)行也需要多個周期。

▇ 流水線

在理想情況下,流水線每周期前進一步,可獲得最高的吞吐率;而CISC指令的執(zhí)行需要調用微代碼的一個微程序。

▇ 寄存器

RISC處理器擁有更多的通用寄存器,每個寄存器都可存放數據或地址。寄存器可為所有的數據操作提供快速的局部存儲訪問;而CISC處理器都是用于特定目的的專用 處理器。

▇ load-store結構

處理器只能處理寄存器中的數據。獨立的load和store指令用來完成數據在寄存器和外部存儲器之間的傳送。因為訪問存儲器很耗時,所以把存儲器訪問和數據處理分開。這樣有一個好處,那就是可反復地使用保存在寄存器中的數據,而避免多次訪問存儲器。相反,在CISC結構中,處理器能夠直接處理存儲器中的數據。

二.ARM設計思想

為降低功耗,ARM處理器已被特殊設計成較小的核,較高的代碼密度。ARM內核不是一個純粹的RISC體系結構,這是為了使它能夠更好的適應其主要應用領域-嵌入式系統。在某種意義上,甚至可以認為ARM內核的成功,正是因為它沒有在RISC概念上沉入太深。現在系統的關鍵并不在于單純的處理器速度,而在于有效的系統性能和功耗。

面向嵌入式系統的指令集

▇ 一些特定指令的周期數可變

例如:多寄存器裝載/存儲的load/store指令的執(zhí)行周期就是不確定的

▇ 內嵌桶形移位器產生了更為復雜的指令

▇ Thumb 16位指令集

▇ 條件執(zhí)行

▇ 增強指令

三.高效的C編程

1)C數據類型的有效用法

▇ 對于存放在寄存器中的局部變量,除了8位或16位的算術模運算符外,盡量不要使用char和short類型。而要使用有符號或者無符號的int類型。除法運算時使用無符號數執(zhí)行速度更快。

▇ 對于存放在主存儲器中的數組和全局變量,在滿足數據大小的前提下,應盡可能使用小尺寸的數據類型,這樣做可以節(jié)省存儲空間。ARMv4體系結構可以有效的裝載和存儲所有寬度的數據,并可以使用遞增數組的指針來有效的訪問數組。對于short類型數組,要避免使用數組基地址的偏移,因為LDRH指令不支持偏移尋址。

▇ 由于隱式或者顯式的數據類型轉換通常會有額外的指令周期開銷,所以在表達式中應盡量避免使用。load和store指令一般不會產生額外的轉換開銷,因為load和store指令是自動完成數據類型轉換的。

▇ 對于函數參數和返回值應盡量避免使用char和short類型。即使參數范圍比較小,也應該使用int類型,以防止編譯器做不必要的類型轉換。

2)高效的編寫循環(huán)體

▇ 使用減計數到零的循環(huán)結構,這樣編譯器就不需要分配一個寄存器來保存循環(huán)中止值,而且與0比較的指令也可以省略。

▇ 使用無符號的循環(huán)計數值,循環(huán)繼續(xù)的條件為i!=0而不是i>0,這樣可以保證循環(huán)開銷只有兩條指令。

▇ 如果事先知道循環(huán)體至少會執(zhí)行一次,那么使用do-while循環(huán)要比for循環(huán)好,這樣可以使編譯器省去檢查循環(huán)計數值是否為0的步驟。

▇ 展開重要的循環(huán)體可降低循環(huán)開銷,但不要過度展開,如果循壞的開銷對整個程序來說占的比例很小,那么循環(huán)展開反而會增加代碼量并降低cache性能。

▇ 盡量使數組的大小是4或8的倍數,這樣就可以容易地以2,4,8次等多種選擇展開循環(huán),而不需要擔心剩余數組元素的問題。

3)高效的寄存器分配

▇ 應該盡量限制函數內部循環(huán)所用局部變量的數目,最多不超過12個,這樣,編譯器就可以把這些變量都分配給ARM寄存器。

▇ 可以引導編譯器,通過查看是否屬于最內層循環(huán)變量來確定某個變量的重要性

4)高效的調用函數

▇ 盡量限制函數參數不要超過4個,這樣函數調用的效率會更高。也可以將幾個相關的參數組織在一個結構體中,用傳遞結構體指針來代替多個參數。

▇ 把比較小的被調用函數和調用函數放在同一個原文件中,并且要先定義,后調用,編譯器就可以優(yōu)化函數調用或者內聯較小的函數。

▇ 對性能影響較大的重要函數可使用關鍵字_inline進行內聯。

5)避免指針別名

▇ 不要依賴編譯器來消除包含存儲訪問的公共子表達式,而應建立一個新的局部變量來保存這個表達式的值,這樣可以保證只對這個表達式求職一次。

▇ 避免使用局部變量的地址,否則對這個變量的訪問效率會比較低。

6)高效的結構體安排

▇ 結構體元素要按照元素的大小來排列,以最小的元素放在開始,最大的元素安排在最后。

▇ 避免使用很大的結構體,可以使用層次化的小結構體來代替。

▇ 為了提高可移植性,人工對API的結構體添加填充位,這樣,結構體的安排將不會依賴于編譯器。


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

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

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

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

關鍵字: AWS AN BSP 數字化

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

關鍵字: 汽車 人工智能 智能驅動 BSP

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

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

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

關鍵字: 騰訊 編碼器 CPU

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

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

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

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

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

關鍵字: 通信 BSP 電信運營商 數字經濟

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

關鍵字: VI 傳輸協議 音頻 BSP

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

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