xScale應用程序性能的優化策略
發布時間:2007/4/23 0:00:00 訪問次數:907
關鍵詞:XScale 編譯優化 優化策略ARM
引言
XScale體系結構是采用Intel Pentium技術實現的ARM兼容的嵌入式微處理器架構,并對ARM體系結構進行了增強,具有業界領先的高性能和低功耗特性被廣泛應用于消費電子、無線通信、多媒體和網絡交換等嵌入式應用領域。XScale引入了一系列高性能微處理器的設計技術,總體性能顯著地超出同主頻的ARM微處理器。然而,由于受功耗、成本和體積等因素的制約,嵌入式微處理器的處理能力與桌面系統相比仍存在較大差距。通常需要對嵌入式應用程序進行性能優化,以滿足嵌入式應用的性能需求。
業界對嵌入式系統的性能優化進行了很多研究與實踐。文獻為XScale優化編譯器的設計提供了多種優化技術,也可用于一些應用程序的手工優化;文獻從應用程序編程的角度討論了ARM嵌入式系統軟件設計優化技術;文獻討論了提高C/C++嵌入式應用程序性能的一些技巧,其中多數技術可以由優化編譯器中實現。
本文在總結XScale優化編譯器設計和XScale嵌入式系統設計開發工作的基礎上,從系統設計、開發工具選擇、編譯優化和編程開發等角度討論和提出了XScale應用程序的優化策略和技術。
1 XScale體系結構
XScale微架構引入了Pentium處理器工藝和系統結構技術,實現了Pentium微處理器體系結構的一系列高性能技術,達到了高性能、低功耗和小體積等嵌入式系統要求的特性。
(1)超流水線
Xscale的超流水線(SuperPipeline)技術,如圖1所示,由整數處理(integer)、乘加(MAC)和存儲(memory)3條流水線組成。3條流水線的長度是6到9段,前4到5段共享,后面分支部分并行工作可有效提高處理器性能。
(2)高主頻
采用Pentium工藝技術,XScale主頻可以超出普通ARM微處理器主頻數倍,在保持較低能量消耗的前提下,高達600MHz以上。如PXA27X的主頻可高達724MHz。
(3)存儲體系
XScale實現了一個高效的存儲器體系結構,為其超流水線的高效運行提供數據資源。XScale存儲體系功能主要包括32KB D-Cache、32KB I-Cache、2KB Mini Dcache、Fill Buffers、ending Buffers以及4.8GB/s帶寬的存儲總線,使處理器可以高效訪問存儲器。
(4)分支預測
XScale實現了基于統計分析的分支預測功能部件,減少由于分支轉移沖刷指令流水線的次數,也有效地提高了處理器的性能。
(3)指令集體系結構
針對ARM數據處理能力的不足,XScale對ARM的乘加邏輯進行了增強,增加了8條DSP指令。XScale處理器還可集成Flash閃存和無線MMX邏輯功能。這些特性有效地提高了XScale數據處理能力。帶有無線MMX的PXA27X在312MHz主頻運行處理多媒體應用時,其性能與520MHz ARM處理器相當。
(6)省去不常用的邏輯功能
為了節省處理器芯片體積和降低運行功耗,XScale體系結構沒有實現昂貴的浮點運算部件和除法部件。這些是嵌入式應用中不常用的運算。當需要這類運算時,可以通過軟件方法實現。
XScale復雜的體系結構給嵌入式應用程序的優化帶來了更大的困難。
2 性能優化技術
XScale處理器性能的發揮很大程度上依賴于應用程序的優化技術。XScale嵌入式應用系統的性能優化可以下幾個方面考慮。
2.1 算法結構優化
實現某種應用功能通常可采用多種算法或方法,不同算法的復雜度和效率差別很大。選擇一種高效的算法或對算法進行優化,可以使應用程序獲得最大的優化性能。常用的優化技術有以下幾種。
(1)選擇高效算法
如果算法效率低下,再快的處理器也會顯得不夠
關鍵詞:XScale 編譯優化 優化策略ARM
引言
XScale體系結構是采用Intel Pentium技術實現的ARM兼容的嵌入式微處理器架構,并對ARM體系結構進行了增強,具有業界領先的高性能和低功耗特性被廣泛應用于消費電子、無線通信、多媒體和網絡交換等嵌入式應用領域。XScale引入了一系列高性能微處理器的設計技術,總體性能顯著地超出同主頻的ARM微處理器。然而,由于受功耗、成本和體積等因素的制約,嵌入式微處理器的處理能力與桌面系統相比仍存在較大差距。通常需要對嵌入式應用程序進行性能優化,以滿足嵌入式應用的性能需求。
業界對嵌入式系統的性能優化進行了很多研究與實踐。文獻為XScale優化編譯器的設計提供了多種優化技術,也可用于一些應用程序的手工優化;文獻從應用程序編程的角度討論了ARM嵌入式系統軟件設計優化技術;文獻討論了提高C/C++嵌入式應用程序性能的一些技巧,其中多數技術可以由優化編譯器中實現。
本文在總結XScale優化編譯器設計和XScale嵌入式系統設計開發工作的基礎上,從系統設計、開發工具選擇、編譯優化和編程開發等角度討論和提出了XScale應用程序的優化策略和技術。
1 XScale體系結構
XScale微架構引入了Pentium處理器工藝和系統結構技術,實現了Pentium微處理器體系結構的一系列高性能技術,達到了高性能、低功耗和小體積等嵌入式系統要求的特性。
(1)超流水線
Xscale的超流水線(SuperPipeline)技術,如圖1所示,由整數處理(integer)、乘加(MAC)和存儲(memory)3條流水線組成。3條流水線的長度是6到9段,前4到5段共享,后面分支部分并行工作可有效提高處理器性能。
(2)高主頻
采用Pentium工藝技術,XScale主頻可以超出普通ARM微處理器主頻數倍,在保持較低能量消耗的前提下,高達600MHz以上。如A27X的主頻可高達724MHz。
(3)存儲體系
XScale實現了一個高效的存儲器體系結構,為其超流水線的高效運行提供數據資源。XScale存儲體系功能主要包括32KB D-Cache、32KB I-Cache、2KB Mini Dcache、Fill Buffers、ending Buffers以及4.8GB/s帶寬的存儲總線,使處理器可以高效訪問存儲器。
(4)分支預測
XScale實現了基于統計分析的分支預測功能部件,減少由于分支轉移沖刷指令流水線的次數,也有效地提高了處理器的性能。
(3)指令集體系結構
針對ARM數據處理能力的不足,XScale對ARM的乘加邏輯進行了增強,增加了8條DSP指令。XScale處理器還可集成Flash閃存和無線MMX邏輯功能。這些特性有效地提高了XScale數據處理能力。帶有無線MMX的A27X在312MHz主頻運行處理多媒體應用時,其性能與520MHz ARM處理器相當。
(6)省去不常用的邏輯功能
為了節省處理器芯片體積和降低運行功耗,XScale體系結構沒有實現昂貴的浮點運算部件和除法部件。這些是嵌入式應用中不常用的運算。當需要這類運算時,可以通過軟件方法實現。
XScale復雜的體系結構給嵌入式應用程序的優化帶來了更大的困難。
2 性能優化技術
XScale處理器性能的發揮很大程度上依賴于應用程序的優化技術。XScale嵌入式應用系統的性能優化可以下幾個方面考慮。
2.1 算法結構優化
實現某種應用功能通常可采用多種算法或方法,不同算法的復雜度和效率差別很大。選擇一種高效的算法或對算法進行優化,可以使應用程序獲得最大的優化性能。常用的優化技術有以下幾種。
(1)選擇高效算法
如果算法效率低下,再快的處理器也會顯得不夠