基于cortex-a9高性能arm soc —— omap4
单核的Cortex-A9在性能上比已经推出的Cortex-A8处理器更高,并且 A9系列可以提供两个乃至四个内核片上SMP产品,能提供总共超过8,000Dhrystone Mips(DMIPS)的峰值处理性能,这一性能大约是典型arm11处理器(如iphone)的10-15倍,遑论更早的arm9系列。同时Cortex-a8是可综合的,芯片制造商采用速度优化工艺时的时钟频率能够超过1GHz,也可采用低功耗工艺大幅降低耗电。如果要进一步的省电,还可以采用动态减慢时钟或关闭部分内核的方法。
对称多处理(SMP)早已在大型机、服务器以及PC机上使用多年,这种平行技术的确能够有效的提高计算机的性能。如今的半导体技术允许在一个硅片上集成多个处理器核心,这些核心能够执行同样的指令集,拥有同等的存储器配置,IO访问能力和中断,这就是片上SMP。在这种硬件上运行的高级操作系统能够调度使用任意的核心来运行软件线程或执行中断。这一切过去只能够在“大”的计算机上实现,但在不远的将来,你我的手机上也能够拥有这种高级功能。实现片上SMP对于手持设备来说,可以实现目前用单核方案,如arm11不可能实现的应用。因为SMP可以实现非常好的性能和功耗伸缩性,在保持功耗足够低的前提下,能够将性能扩展到非常高的水平,应对现在和未来丰富的应用,如HD VIDEO播放、如PC般毫不缩水的浏览Internet等。如果使用单核方案,就不得不实现极高的速度——采用2GHz甚至更高主频的掌上处理器,那将导致无法接受的发热和耗电。
现在的移动应用越来越复杂,丰富程度直逼桌面应用,多进程、多线程等技术也早已在手持设备上采用,桌面计算机已经普及的多核心技术更是为SMP进入掌上设备指明了前进的方向。ARM处理器中的Cortex-a9是专门为此类应用设计的。Cortex-a9和前一代Cortex-a8一样是超标量设计,能够单周期执行2条指令,比ARM11处理器同频性能提高约一倍。Cortex-a9处理器更改进了流水线,除了增加多处理指令还加入了乱序执行等功能。除了拥有Cortex-a8的特性之外,每核心平均同频性能比Cortex-a8提高了20%。
实现SMP的第一个消费类嵌入式器是TI OMAP4系列,包括OMAP4430和OMAP4440。除了采用Cortex-a9 MP为处理器核心之外,还提供了哪些高级功能呢?让我们来细数一下:
- 45nm芯片工艺,提供高性能的同时只消耗极少的能源
- 专门为移动嵌入式平台设计,在单一芯片上集成了应用处理器(Cortex-a9担任),多媒体处理IVA3,3D图形加速器PVR SGX540以及其他的各种移动接口
- 可以支持full HD 1080p尺寸、各种编解码算法,进行实时编码和解码的硬件多媒体加速器IVA3。它的核心当然是专门硬件加上集成的C64x共同协作的结果,同时拥有硬件加速的高效性和DSP的灵活性,实际上等于把DAVINCI平台塞入到你的手机里面
- 集成高速图形信号处理器,用于处理像素格式变换等。可以支持2千万像素的照相和摄像功能,令OMAP4拥有千万像素数码相机和高清数码DV的功能。
- 集成PowerVR SGX540三维硬件加速器(3D加速显卡),轻松支持3D桌面,游戏以及其他3D应用
- 支持HDMI高清视频输出,支持WUXGA显示,同时支持传统的模拟视频
- 容易与Wifi,Bluetooth,USB HS/OTG,GPS,3G/4G通讯等各种数据接口连接
- 配合TWL60x0芯片,实现高级的电源管理,充分节省电池电力
本文作者:周明 原载于嵌入式技术博客,请尊重作者劳动,欢迎转载但需注明原文链接!
- zhoum's blog
- Login or register to post comments

周老师: 你好!
周老师:
你好!
我最近到网上搜了一下ZIX的视频和使用指南,都下载不了。能否给我提供一个,谢谢。
ZIX1.7版本现在可否下载?
stm32处理器多主配置
周老师你好,我想向您请教一下,stm32处理器的spi总线应用时,怎样配置多主系统,实现互为主从的工作模式,谢谢您了!
Cortex-A9与ARM11的浮点比较
您好。看了您的嵌入式处理器实测性能和这片文章,我想知道单就双精度浮点的能力,同频率、使用未特定优化的库的情况下,Cortex-A9与ARM11哪一个更强一些。谢谢。
关于浮点比较
现在还没有Cortex-A9实测的结论。
你提到使用未特定优化的库,我猜你的意思是仅仅使用VFP指令集,而不使用NEON。ARM11VFP的性能会比Cortex-A更好。
原因是ARM11采用的是VFP标准功能协处理器,Cortex采用的是VFP-lite精简协处理器。
当然如果要求很高的双精度性能,128-bits以上的双精度SIMD指令集最有效,如SSE3, Altivec,或者浮点DSP如TigerSHARK,C67xx。这些平台双精度性能比ARM强上百倍
关于浮点比较
非常谢谢。我的意思就是使用VFP指令集,而且双精度就可以满足要求。不过,您说的浮点DSP的双精度性能比ARM强上百倍让我很吃惊。您能否具体说一下:同频下、C语言实现的双精度运算,C67xx和ARM11的性能有多大差距吗?我现在需要设计一个运动控制系统,算法可能经常修改,使用汇编来编程,后期维护可能比较麻烦,因此比较关心C语言条件下C67xx和ARM11的性能比较。再次表示感谢。
关于浮点比较
依据不同的主频,不同的处理器核心以及不同的应用,上百甚至上千倍的性能差距不足为奇,不带DSP优化指令集的ARM(如ARM9TDMI)尤其慢。当然要指出的是浮点DSP并不比ARM11VFP快那么多(VFP本身并不那么“慢”)
下面是大约估计的同频双精度性能,以广泛应用的ARM926EJS处理器为基准:
ARM9TDMI 0.02-0.05
ARM926EJS 1
ARM11-VFP 1.5-4
C67x 4-10(new C674x maybe faster)
TigerSHARC 5-10
Pentium3 3-6
Core2 10+
加上主频提高并启用多核后,CORE2可以在某些算法中达到非常高的性能,比目前最快的商品DSP都要快很多。
ARM11浮点指令消耗的时钟周期可以参考下面链接
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0274h/Ceg...
这是cache命中时的timing,当cache不命中时会损失一些周期,特别是一般arm不会像dsp一样拥有专门的片上ram。
实际上浮点DSP已经很久没有更高性能的新一代产品出现了,工程现场应用的浮点算法越来越多的被定点取代,而且浮点DSP通常是专为单精度优化的,双精度性能并不是重点。
因为我所接触到的控制类应用定点的居多,比较好奇您提到的运动控制系统,我想一定有非常特殊的需要才要高性能的双精度运算。
如果确实需要非常高的双精度性能(我猜测您认为C67x的性能也不是很足够),以我了解到的目前标准化嵌入式产品都难以达到。Intel Core2处理器可以提供10-20GFLOP的总体性能,将来可能会更高。现在一些专用的ASIC解决方案如NVIDIA可以提供1-2TFLOP双精度性能。相比之下最快的TigerSHARC(600MHz)也只号称4.8GFLOP单精度峰值性能。
关于浮点比较
首先谢谢您提供的数据,对我非常有用。谢谢。使用双精度浮点的原因是编程简单,如果用定点代替,编程会复杂一些。而且算法会经常有变化,每次变化都用定点优化一次,来得麻烦。如果有性能好的处理器,价格又不是贵的离谱,显然从开发和维护角度来说,成本和进度都可控。67xx绝对可以满足目前的需求,但是67xx的外围接口较少,不像ARM的片子接口丰富,比如S3C6410x。使用DSP构件系统,硬件复杂程度较大,不利于可靠性的提高。此外,浮点运算很关键很重要,但是不是所有运算都是浮点的,还有很多的整数和逻辑处理,面对这些运算的时候,主频高一些也有很大优势,同时代、同价位的ARM比DSP的速度还是有很大优势的。新OMAP的ARM+浮点DSP的结构不错,但是怕:1、器件成本高;2、现有软件体系是面向单处理器设计的,改成双处理器,怕有风险,呵呵;3、现在看来,没有那么强力的需求;4、我这个环境没有功耗要求。有这么强力的需要的时候,估计明年的SoC的ATOM也出来了。说到ATOM,我个人感觉SoC的出来以后,会对ARM和DSP产生一定冲击。 从您提供数据来看,还是ARM11-VFP的S3C6410x这类片子合适我一些,浮点性能比较接近同频DSP,频率比67xx高不少,接口丰富,价格公道。Anyway,再次表示感谢。