xscale xscale xscale-简介,xscale-PXA

Xscale是ARM体系结构的一种内核,基于ARM v5TE,由Intel公司开发,在架构扩展的基础上同时也保留了对于以往产品的向下兼容,因此获得了广泛的应用。相比于ARM处理器,XScale功耗更低,系统伸缩性更好,同时核心频率也得到提高,达到了400Mhz甚至更高。这种处理器还支持高效通讯指令,可以和同样架构处理器之间达到高速传输。其中一个主要的扩展就是无线MMX,这是一种64位的SIMD指令集,在新款的Xscale处理器中集成有SIMD协处理器。这些指令集可以有效的加快视频、3D图像、音频以及其他SIMD传统元素处理。

xscale_xscale -简介


xscale

基于Xscale内核的处理器主要包括:

Intel PXA25x

Intel PXA26X

Intel PXA27X

2006年,被出售给Marvell。

xscale_xscale -PXA

PXA25x

PXA250 (已停产) PXA255

PXA26X

PXA26X

PXA27X

PXA27x系列(内部代号Bulverde)包括了PXA270和PXA271-PXA272几款处理器。这次升级是XScale系列处理器的一次巨大提升。PXA270 有以下几种运行频率: 312 MHz, 416 MHz, 520 MHz 。对于封装内没有内置内存的单独CPU版本,还可以运行在624 MHz的高频率。PXA271 可以运行在 312 MHz 或 416 MHz,在同一个封装内还集成了32 MiB 的 16位 stacked StrataFlash闪存和32 MiB 的 16位SDRAM内存。 PXA272可以运行在312 MHz, 416 MHz 或 520 MHz,并内置 64 MiB 的 32位 stacked StrataFlash闪存。

Intel 还在 PXA27x 系列中加入了如下的新技术:

移动版SpeedStep: 操作系统可以根据运行需要调节CPU频率以节能。移动MMX: 43 条新的 SIMD 指令 包含了 完整的 MMX指令集和一些SSE 指令集中的整数指令。 移动 MMX 提供了16 条额外的 64位寄存器,并可以被当成双重32位的来处理,像四个16位halfwords 或八个 8位 字节。 这项能力可以加速芯片的编码和解码速度,提高多媒体和游戏的性能。

附加的外部设计: 例如USB-Host界面和摄像头界面。

集成 256KBSRAM缓存,降低功耗和延迟。PXA27x系列于2004年4月发布。此外Intel还发布了2700G嵌入式图形协处理器 。

PXA3xx

2005年8月,Intel发布了PXA27X的下一代产品,代号为Monahans的CPU。

xscale xscale xscale-简介,xscale-PXA

2006年11月,Marvell公司发表了PXA300、PXA310、PXA320。

AutoCad

在AutoDesk公司的产品AutoCad中,scale为缩放命令,该命令下的选项“xscale”表示在X轴方向的缩放。

xscale_xscale -体系结构

XScale体系结构按照嵌入式应用要求,采用Pentium系列微处理器设计技术和工艺设计一款性能突出ARM兼容嵌入式微处理器。XScale体系结构引入了多种硬件特性增强处理器性能,但也给应用程序优化带来了挑战。XScale微架构引入了Pentium处理器工艺和系统结构技术,实现了Pentium微处理器体系结构一系列高性能技术,达到了高性能、低功耗和小体积等嵌入式系统要求特性。

存储体系

XScale实现了一个高效存储器体系结构,为其超流水线高效运行提供数据资源。XScale存储体系功能主要包括32KB D-Cache、32KB I-Cache、2KB Mini Dcache、Fill Buffers、ending Buffers以及4.8GB/s带宽存储总线,使处理器可以高效访问存储器。

超流水线

Xscale超流水线(SuperPipeline)技术,如图1所示,由整数处理(integer)、乘加(MAC)和存储(memory)3条流水线组成。3条流水线长度是6到9段,前4到5段共享,后面分支部分并行工作可有效提高处理器性能。

逻辑功能

为了节省处理器芯片体积和降低运行功耗,XScale体系结构没有实现昂贵浮点运算部件和除法部件。这些是嵌入式应用中不常用运算。当需要这类运算时,可以通过软件方法实现。

分支预测

XScale实现了基于统计分析分支预测功能部件,减少由于分支转移冲刷指令流水线次数,也有效地提高了处理器性能。

指令集

针对ARM数据处理能力不足,XScale对ARM乘加逻辑进行了增强,增加了8条DSP指令。XScale处理器还可集成Flash闪存和无线MMX逻辑功能。这些特性有效地提高了XScale数据处理能力。带有无线MMXPXA27X在312MHz主频运行处理多媒体应用时,其性能与520MHz ARM处理器相当。

高主频

采用Pentium工艺技术,XScale主频可以超出普通ARM微处理器主频数倍,在保持较低能量消耗前提下,高达600MHz以上。如PXA27X主频可高达724MHz。

XScale体系结构是采用Intel Pentium技术实现ARM兼容嵌入式微处理器架构,并对ARM体系结构进行了增强,具有业界领先高性能和低功耗特性被广泛应用于消费电子、无线通信、多媒体和网络交换等嵌入式应用领域。XScale引入了一系列高性能微处理器设计技术,总体性能显着地超出同主频ARM微处理器。然而,由于受功耗、成本和体积等因素制约,嵌入式微处理器处理能力与桌面系统相比仍存在较大差距。

xscale_xscale -性能优化

XScale处理器性能的发挥很大程度上依赖于应用程序的优化技术。XScale嵌入式应用系统的性能优化可以下几个方面考虑。

算法结构

实现某种应用功能通常可采用多种算法或方法,不同算法的复杂度和效率差别很大。选择一种高效的算法或对算法进行优化,可以使应用程序获得最大的优化性能。常用的优化技术有以下几种。

(1)选择高效算法

如果算法效率低下,再快的处理器也会显得不够有,而一个高效的算法却可以弥补处理器性能的不足。

考虑从已排序好的n个元素a[0:n-1]中找出某一特定元素x。如果采用顺序搜索方式,从a到a[n-1]逐个比较这n个元素,需要O(n)次比较。而如果采用二分搜索方法,则仅需O(logn)次比较。当n为2 31时,前一算法平均需要比较2 31次,后一算法平均仅需比较31次。两者所需时间相差达10 8倍。

(2)递归算法非递归化

采用递归过程实现算法具有结构清晰、程序简练易读、正确性容易证明的特点;但递归算法通常需要执行大量的过程调用,并在堆栈中保存所有返回过程的局部变量,效率往往较低。当应用程序存在性能问题时,使用循不迭代方法将递归算法转换成非递归算法往往可以使程序性能提高数倍。文献对八皇后问题和Fibonacci数列的递归算法与非递归算法进行了性能比较试验,结果如表1所列。

表1递归算法和非递归算法的性能对比

问题递归算法时间/s非递归算法时间/s加速比/倍八皇后问题(最大栈深度为12)100205Fibonacci数列(n=40)50150

算法优化是首选的优化技术。

编译优化

随着编译技术的成熟,很多编译器都实现了较强的代码优化功能,可在编译过程中自动对应用程序进行优化,改进一些不合理的结构,生成效率较高的目标代码。

多数编译器都可基于数据流分析实现别名分析、常数拆叠、常数传播、公共子表达式消除、冗馀代码和死码删除、循环不变量的移动、循环逆转、循环展开、函数嵌入等与体系结构无关的优化。

GNU gcc、WindRiverdiab、Intl XScale Compiler等常见编译器都针对XScale体系结构进行了优化设计,可以有效地利用XScale/ARM指令的条件执行、条件设置和操作数移位等功能,使一条指令完成多个操作,缩短指令序列的长度;减少跳转指令的数目,减少冲刷流水线的次数;按照XScale超流水线要求,利用3地址指令、多字传送指令、DSP乘加指令和MMX指令等,生成高效的指令序列,提高应用程序的性能。

一些优化编译器可借用并行程序设计技术,进行相关性分析,获得源程序的语义信息,采用软件流水线、数据规划、循环重构等技术,使应用程序呈现更好的局部性,提高Cache命中率,从而提高计算密集型应用程序的性能。对于矩阵计算等计算密集型程序,一些高性能优化编译器生成的代码可以高出普通编译器产生的代码十倍之多。

应用程序开发过程中应该充分利用编译器的代码优化功能,在编码时将主要精力集中在业务逻辑算法流程的设计上,提高编程效率和代码可读性。

编程优化

编译优化是静态优化。优化编译器可以自动完成程序段和代码块范围内的优化问题,但编译器很难获取程序语义信息、算法流程和程序运行状态信息。很多情况下也需要编译人员以某种方式将程序运行状态信息传递给编译器,或进行手工优化。以下是常用的编译优化技术。

(1)使用inline函数

多数编译器支持inline关键字。如果一个函数被设计成一个inline函数,那么在调用它们的地方将会用函数体来替代函数调用语句,这样将会彻底省去函数调用的开销。使用inline的最大缺点是函数在被多处调用时,代码量将增大。

(2)减少函数调用参数

根据ARM过程调用规范,4个以下的形参通过寄存器传递,第5个以上的形参通过存储器栈传递。显然,通过存储器栈传送参数的开销较大。函数调用形参限制在4个以内,可以降低函数调用的开销。

(3)在Switch是一种使用普通的编程技术。编译器为之产生if-else-if嵌套代码,并按照顺序进行比较,发现匹配则跳到满足条件的语句执行。编程时,根据发生的相对频率排序,将最可能发生的情况放在第一位,最不可能的情况放在最后一位,可以提高Switch语句块的执行速度。

实际上,程序中if条件的处理也有类似的特性。

(4)避免使用C++的昂贵功耗

C++在支持软件工程、面向对象程序设计、结构化对C进行卓有成效的改进,但在代码尺寸、执行速度等方面比C语言差一些。C++的类机制与C语言的结构差别不大,但C++的多重继承、虚拟基类、模板和运行类型识别等特性对代码尺寸和运行效率有负面影响。对这些功能要慎重使用,可以通过试验测试其影响的大小。

(5)减少或避免执行耗时的操作

应用程序的主要执行时间通常花费在关键路径代码段或程序模块,关键路径程序模块往往包含循环或嵌套循环。减少循环或内层循环中昂贵操作的执行频率可以显着地提高应用程序的效率。常见的耗时操作有:I/O操作、文件访问、图形界面操作和系统调用等。

表2列出了XScale常见的I/O处理、系统调用和文件访问等昂贵操作的代价。

操作类型代价(时钟周期/个)sprintf828fprintf540fread552fwrite864write216Read216除法112atoi596

对于文件访问等操作,每次读入和写出一个较大的数据块,或使用内存映射技术访问文件,可以减少相关系统调用执行的次数,从而提高程序执行的性能。下面是一个使用这种优化技术的示例。

优化前代码:

int data_in,int data_out;

int file_in,file_out;

for(;;){

read(file_in,data_in,1);

data_out=decode(&data_in);

write(file_out,&data_out,1);

}

优化后代码:

int data_in,

int data_out;

int file_in,file_out;

for(;;){

read(file_in,data_in,1024);

}

(6)用查表代替计算

在处理器资源紧张和存储器资源相对富馀的情况下,可以用牺牲存储空间换取速度的方法。例如需要频繁计算正弦和馀弦等函数数值时,可预先将函数值计算出来,置于内存,供以后查找。

4.高性能开发工具

应用程序的可执行代码通常由编译器编译产生的目标代码和链接程序从系统库提取的库例程两部分组成。

选择一种优化能力强的编译器和开发工具可以生成更加高效的代码。WindRiver Diab、GNU gcc、GNUpro和Intel XScale Compiler都针对XScale体系结构进行了优化。

嵌入式应用程序通常包含大量的系统函数调用。在XScale平台上的测试结果表明:MediaBench的应用程序大约有50%的执行时间花费在系统库函数,选用高效的系统运行库(runtime library)也可使应用程序的运行效率获得提升。如glibc库的缓冲区的大小是newlib的数十倍,所以在处理输入输出操作方面具有更高的效率。

结构优化

(1)避免除法

XScale没有除法部件和整数除法指令,除法是由软件实现的。软件实现的除法效率很低,应该尽可能避免除法和计算馀数等运算。有时可以将除法转变为乘法。下面两侧是除法操作优化的示例。

①用关系运算符两边乘除数消除除法操作

优化前:if((x/y)>z)

优化后:if(x>(y*z))

②将除法转换为乘常数和移位操作

优化前:v.x=(v1.x+v2.x+v3.x)/3

优化后:使用常数乘数0x5555转换成

v.x=(int)(((_int64)(v1.x+v2.x+v3.x)*

(_int64)0x55555)>>16);

(2)避免浮点运算

XScale没有实现浮点部件。浮点运算是通过系统库实现的,代价很高,通常也应该避免,有时可以转换成整数运算。包含浮点运算的库例程有格式化输入输出(scanf/printf)等。XScale中常见浮点运算的代价如表3所列。

表3 XScale常见浮点运算的代价

运算类型代价(时钟周期/个)加法+400乘法*400除法/560

(3)使用GPP和IPP库

XScale的很多硬件特性是针对多媒体嵌入式应用的特点而设计的,很难在编译器中支持这些特性。为此,Intel公司对多媒体处理、图形处理和数值运算的一些典型操作和算法进行了手工优化,设计成程序库,分别称为GPP/IPP库。这些库例程可以很好地发挥XScale硬件的计算潜能,达到很高的执行效率。

xscale_xscale -优化策略

应用程序的性能优化与缩短开发周期、软件工程和OOP的目标之间通常存在矛盾。嵌入式系统需要性能优,但性能优化需要人力物力投入,会增加开发时间,降低程序的可读性,排斥使用新的开发工具和编程语言。而软件工程的目标是使用高效的开发工具。编程语言和编程规范提高程序的可读性、可靠性,缩短开发周期,降低项目成本。为此应该在二者之间寻找一种平衡。通常可以采取以下策略和原则;

①将算法结构优化作为首选优化技术,设计高效的应用程序流程和算法;

②根据功能、性能差异和投资预算选择高效的编译器、系统运行库、图形库、中间件等;

③使用性能监测工具识别占主要执行时间的关键路径程序模块,采用一切优化手段对关键路径代码和程序模块进行优化,挖掘应用程序性能;

④非关键路径的流程控制代码按照软件工程的要求,采用高效率程序语言和开发工具实现,提高设计开发效率。使用编译器进行优化。

  

爱华网本文地址 » http://www.413yy.cn/a/8104100103/177583.html

更多阅读

虫虫大作战简介加攻略 虫虫大作战修改器

虫虫大作战简介加攻略——简介虫虫大作战是一款即时战略塔防类单机游戏,类似于植物大战僵尸,但画面感更强。玩家要控制的是蚂蚁、蜜蜂、甲虫等其它昆虫,而且,此款游戏不仅有剧情模式,还有双人对战模式,可玩性还是挺高的。虫虫大作战简介

思科模拟器:2 入门之界面简介

思科模拟器:[2]入门之界面简介——简介思科模拟器是网络工程师经常使用的网络实验模拟软件,它可以很快捷的模拟网络中的各种设备(交换机、路由器、台式电脑、笔记本电脑、服务器、网络云),搭建各种网络环境,模拟网络拓扑结构等。下面天

驾照科目三考试要求简介 驾照科目一模拟考试

驾照科目三考试要求简介——简介大家都知道现在考驾照是越来越难了,考过一科就已经很是开心了,虽然大家说的科目三挺简单的,但是还要很多方面需要注意的,下面小编就告诉大家一些自己的经验吧驾照科目三考试要求简介——方法/步骤驾照科

股市K线理论简介 中国股市简介

股市K线理论简介——简介K线是一条柱状的线条,由影线和实体组成。影线的实体上方的部分叫上影线,下方的部分叫下影线;实体分阳线和阴线两种。通过K线图,我们能够把一定周期(日、周、月等)的市况变现完全记录下来。K线理论就是研究K线的形

台湾麻将规则及游戏简介 台湾麻将游戏

台湾麻将是民国初年由大陆传入台湾的,慢慢地从广东的十三张玩法演变成台湾的十六张玩法。经过多年发展,台湾麻将在规则、佈局、台数计算方面,已独树一格,与广东麻雀略为不同。下面给大家分享台湾麻将规则及游戏简介!台湾麻将规则及游戏

声明:《xscale xscale xscale-简介,xscale-PXA》为网友我的爱是那么新分享!如侵犯到您的合法权益请联系我们删除