xScale应用程序性能的优化策略
发布时间:2007/4/23 0:00:00 访问次数:922
关键词: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)选择高效算法
如果算法效率低下,再快的处理器也会显得不够