当前位置: 澳门新濠3559 > 服务器运维 > 正文

进一步扩大ARM在高性能与低功耗领域的领先地位

时间:2019-11-22 14:55来源:服务器运维
ARM公司一直致力于设计先进的数字产品核心应用技术,应用领域从无线、网络和消费娱乐解决方案到影像、汽车电子、安全应用及存储装置等,而对于新发布的ARMv8处理器相信有很多人

ARM公司一直致力于设计先进的数字产品核心应用技术,应用领域从无线、网络和消费娱乐解决方案到影像、汽车电子、安全应用及存储装置等,而对于新发布的ARMv8处理器相信有很多人还有很多疑问,下面笔者为大家一一解开谜团。

arm11(s3c6410)                  533/667M

Arm 持续拓宽专用芯片产品线,押宝机器学习。10月23日消息,Arm 在北京举办年度技术研讨会,推出三款全新处理器 IP 设计,包括 Ethos-N57/Ethos-N37 NPUs,Mail-G57 GPU、最小面积的 Mali-D37 DPU。

          // use non-NEON fallback routinesinstead

近日,ARM公司宣布推首款64位的ARMv8架构的处理器,这对于ARM公司是一个足以载入芯片发展史册的日子,其在全球三地同时宣布将推出公司首款64位的ARMv8架构处理器,进一步扩大ARM在高性能与低功耗领域的领先地位。ARM公司在原有的生态系统中以前所未有的创新速度推动多元化平台,开启计算技术的转型时代。

arm A8                                 600M~1G

三款 IP 采用 Arm AI 平台和最新的机器学习技术,面向数字电视的图形处理和显示需求,以及主流和入门级的移动设备处理。过去一年里,Arm 推出了数个从网络终端到云端的全新解决方案,包括 Arm Project Trillium、Arm Neoverse、两个具有安全功能的全新 Automotive Enhanced 汽车强化处理器,以及专为安全管理物联网装置的 Pelion 物联网平台。

版权声明:本文为博主原创文章,未经博主允许不得转载。

澳门新濠3559 1

新款ARMv8架构ARMCortex-A50处理器系列产品,进一步扩大ARM在高性能与低功耗领域的领先地位。该系列率先推出的是Cortex-A53与Cortex-A57处理器以及最新节能64位处理技术与现有32位处理技术的扩展升级。该处理器系列的可扩展性使ARM的合作伙伴能够针对智能手机、高性能服务器等各类不同市场需求开发系统级芯片(SoC)

2)采用新架构满足高清游戏高性能的 Mail-G77 GPU;

    # define a static library containing ourNEON code

此次发布64位处理器标志着ARM公司从移动设备进军基础设施与服务器,全面支持消费者移动互联的生活方式。这将为ARM公司的市场扩展与用户体验革新提供无限商机。

arm9

自 Arm 推出 Cortex-A73 以来,Arm 逐步提高了机器学习的性能,希望大幅扩展机器学习在 CPU 中的使用。

 

近年来,智能手机与平板电脑已成为人们主要的计算设备,移动设备的计算的能力已经成为带动整个计算领域的关键要素。ARM公司在过去五年间中,举得了令人瞩目的成绩,其将智能手机性能提高了15倍之多,并改变了用户使用设备的方式。此次发布的Cortex-A50处理器系列产品能够从32位无缝转换至64位执行状态,依然能够支持现有的32位应用程序,并且提供了64位的高可扩展性,以满足移动计算终端客户与未来智能手机的发展需求。

s3c2410                               266M

为了应对 AI 边缘的变革,Arm 宣布推出 Project Cassini:这是一个专注于在多元与安全的边缘生态系统,确保云端原生体验的业界提案。

      {

澳门新濠3559 2

arm A53                               2.2G                                          8核

作为 Total Compute 的一部分,Arm 和 Unity Technologies 正在扩展战略合作伙伴关系,以进一步提高性能。

从ARMv7开始ARM提供高级单指令多数据(SIMD)扩展亦称NEON技术,它是一种由ARM开发的64/128位混合SIMD体系结构,可以提升多媒体和信号处理应用程序的性能。

...

常见arm主频:

Ethos 系列是专门针对 AI 计算性能提升的 NPU,Ethos-N77 将作为机器学习专用处理器,为 AI 应用程序的关键性能提供保障;Ethos-N57 和 Ethos-N37,定位于推理处理器,用于视觉、语音等适用于家庭和移动场景。此外,Arm 还发布了配套的 arm NN 开发软件。

    基于ARMv7-A架构的ARM Cortex-A系列处理器(Cortex-A5,Cortex-A7,Cortex-A8,Cortex-A9,Cortex-A15)的基本特性,基本上都可以支持ARM、Thumb-2、Thumb指令集,支持Java加速扩展的Jazelle技术、ThustZone的安全扩展以及针对浮点FPU的VFP硬件扩展和并行多数据的SIMD的NEON多媒体处理器扩展、支持主流的嵌入式OS(Symbian、Linux、Android、WindowsMobile、Windows Phone)、支持分支预测branchprediction.但各处理器在VFP/NEON的类型、半精度浮点(16-bit half precision floating-point)的支持、多核MPcore、流水线pipeline、单MHz处理性能、L1/L2cache控制器、乱序执行、指令dual-issue并发等方面略有不同。

移动计算促使数据爆炸增长

s3c2440                               400M

Arm Cortex-A77 CPU,拥有比 Cortex-A76 设备高出 20% 的 IPC 性能提升,可带来先进的 ML 与 AR/VR 体验。

Neon内联函数包括:加法、乘法、取整、减法、比较、绝对差、最大、最小、逻辑运算、获取lane值、设置lane值、合并、分离、类型转换、查表、Load、Store等运算,总共近1900条指令。

另一方面,移动计算的发展使得云服务与网络互联的基础架构发生改变。智能移动设备的爆炸性增长,应用服务的层出不穷,使得数据内容的产生与消费大量增加,数据成倍增加,预计将于2020年达到120艾字节(为现今八倍以上 )。如果企业继续沿用现有技术,无缝式移动生活方式将对网络及数据中心基础设施带来极大考验,Cortex-A50处理器系列针对这些难题所设计,将提供未来基础设施所需的节能解决方案。经过强化的32位执行能力将有益于32位云端服务器应用,而64位执行能力则扩展了ARM解决方案的适用性,进而促成网络互联、服务器及高性能计算方面的新商机。

arm A9                                 1.2~1.5G                                  单核或者双核

Arm 还将在整个 CPU 内核和缓存中添加新的安全措施。这些安全扩展将能够控制指针授权,并提供分支目标标识符和内存标记扩展。Arm 计划提供另一种符合这些新功能的平台安全架构EL2。

        LOCAL_ARM_NEON  := true

型号                                       主频                                        单核/多核

在今天的活动上,ARM 中国 CEO 吴雄昂补充表示,ARM 通过法务及相关的调整,使得 ARM V8 及后续架构将可不受限制的继续支持中国的合作伙伴。

Neon libraries:(1)、projectne10;(2)、OpenMAX;(3)、ffmpeg;(4)、Eigen3;(5)、Pixman;(6)、x264;(7)、Math-neon;(8)、libjpeg-turbo;(9)、Android Skia.

1)面向移动市场的 Cortex-A77 CPU;

          (android_getCpuFeatures() &ANDROID_CPU_ARM_FEATURE_NEON) != 0)

针对美国实体清单对于华为的限制,此前 Arm 全球负责芯片授权的 IP 产品事业群总裁热内·哈斯曾明确表示,华为和海思是 Arm 的长期合作伙伴,后续的芯片架构都可以授权给华为海思。

    NEON技术只适用于ARM Cortex-A系列处理器。Cortex-A系列处理器:ARMCortex-A系列的CPU处理器内核包括ARMCortex-A5、ARM-A7、ARM Cortex-A8、ARM Cortex-A9 MPCore、ARM Cortex-A9 单核处理器、ARM Cortex-A15 MPCore。ARM Cortex-A系列是一系列用于复杂操作系统和用户应用程序的应用程序处理器。Cortex-A系列处理器支持ARM、Thumb和Thumb-2指令集。

ARM Mail-G57 GPU 主要针对游戏的高能效计算需求和复杂的机器学习,能效提升了 30%,性能提升了 30%,机器学习性能提升了 60%。

用gcc编译器编译带有neon的文件(ARM NEON Intrinsics),需要添加 -mfpu=neon。

自从去年宣布推出 Project Trillium 后,Arm 已经针对 ML 处理器进行强化,包括超过两倍的功耗效率,达到 5 TOPs/W、存储器压缩技术提升达三倍,以及将新一代性能提升至最多可达八核、最高可达 32 TOP/s。

      #include <cpu-features.h>

目前,美国尚未将华为从实体清单中移除,但全球各家科技企业已纷纷宣布将继续与华为合作。

7、

在今年的国际计算机展 (COMPUTEX 2019) 上,Arm 院士、副总裁暨机器学习事业部总经理 Jem Davies 说明了 Arm 对 ML 市场发展的看法和策略,强调 Arm 是市场上唯一拥有广泛 CPU、GPU 和 NPU 产品组合的供应商,以及强大的生态系统支持。

NEON指令只适用于支持NEON的系统。ARMv7-M不支持NEON。

1 ARM V8 不受清单限制

          ...

Mali-G77 GPU 利用全新的 Valhall 构架迎接这一挑战,与用在当前设备中的上一代 Mali-G76 GPU 相比,具有近 40% 的性能提升。Mali-G77 同时也在关键的微构架上进行强化,包括引擎、texture pipes 和 load store caches,并将功耗效率以及性能密度分别提升 30%。

    Cortex-A5 ARM核处理器:Cortex-A5处理器支持ARMv7-A架构的特性,包括TrustZone安全扩展NEON多媒体处理引擎,芯片面积和功耗特性很好,但处理性能性对于其他Cortex-A略差,如只相当于Cortex-A8的80%性能,Cortex-A15的一半性能。Cortex-A5可以支持多核。Cortex-A5处理器支持双发dual issue以及分支预测branch prediction。NEON和VFP的硬件可选。Cortex-A5支持ARM和Thumb指令集,并可以包含Jazelle-DBX和Jazelle-RCT的Java加速技术。Cortex-A5 处理器是尺寸最小、功耗最低(可以低至0.08mw~0.12mw/MHz)的 ARM 多核处理器,能够向最广泛的设备提供 Internet 访问:包括超低成本手机、特色手机和智能移动终端以及普遍采用的嵌入式、消费类和工业设备。Cortex-A5 处理器的应用与 Cortex-A8、Cortex-A9 和 Cortex-A15 处理器完全兼容,能够立即访问已得到认可的开发平台和软件体系,包括 Android、Adobe Flash、Java Platform Standard Edition (Java SE)、JavaFX、Linux、Microsoft Windows Embedded、Symbian 和 Ubuntu。Cortex-A5与 Cortex-A8、Cortex-A9 和 Cortex-A15 处理器的完全应用兼容性, 为大量现有 ARM926EJ-S和 ARM1176JZ-S处理器授权使用方提供了高价值的迁移途径。Cortex-A5功耗和面积只有 Cortex-A9 的 1/3,且具有完全的指令集兼容性。特性关键字:VFP, NEON, Jazelle RCT, Thumb/Thumb-2, 1–4 cores,Variable (L1+L2)Cache, MMU+TrustZone。

4 扩展边缘算力,强调安全需求

        LOCAL_SRC_FILES := mylib-neon.c

基于该解决方案,开发人员将借助软件开发套件编写他们的软件,从而可以找出在 CPU、GPU 或机器学习硬件上处理该软件的最佳方法,了解如何优化以获得最佳渲染和性能。Arm 的客户小组副总裁 Paul Williamson 表示,这取决于在给定的功率范围内处理软件的最佳方法。

NEON指令可处理:(1)、由以下内容构成的双字向量:八个8位元素、四个16位元素、两个32位元素、一个64位元素;(2)、由以下内容构成的四字向量:十六个8位元素、八个16位元素、四个32位元素、两个64位元素。

Arm 方面认为,利用 AI 边缘的应用程序的成功部署,关键在于提供能够覆盖各种功耗与性能需求的多元解决方案。单一厂商的解决方案,并无法满足所有需求。除了变成以 AI 为中心,AI 边缘必须是云端原生的、虚拟化 (VM 或 containers) 的,同时支持多用户。最重要的是,它必须是安全的。

      if (android_getCpuFamily() ==ANDROID_CPU_FAMILY_ARM &&

目前构成基础架构边缘的解决方案来自一个极度多元化的生态系统,而这个生态系统也在迅速变革,以满足这些新产生的需求。

     ...

3)满足高清显示效果面向 VR 应用的 Mail-D77;

    Cortex-A9 ARM核处理器:Cortex-A9 MPCore或者单核处理器单MHz性能比Cortex-A5 或者Cortex-A8高,支持ARM, Thumb, Thumb-2, TrustZone, JazelleRCT,Jazelle DBX技术。L1的cache控制器提供了硬件的cache一致性维护支持多核的cache一致性。核外的L2 cache控制器(L2C-310, or PL310) 支持最多8MB的cache。Cortex-A9的L1cache行宽度为32byte,L2 cache因为多核的原因在核外集成,即通过SCU来访问多核共享的L2 cache。特性关键字:Application profile, VFPv3 FPU, NEON, Thumb-2, Jazelle RCT/DBX,out-of-order speculative issue superscalar, 1–4 core SMP, 32KB/32KB L1, up to4MB L2, MMU+TrustZone。使用Cortex-A9的设备:包括nVidia's 双核Tegra-2, 以及TI's OMAP4平台,Apple的ipad2(appleA5处理器),LG Optimus 2X(nVidiaTegra-2),Samsung Galaxy S II(Samsung Exynos 4210),Sony NGP PSP2,PandaBoard(TI OMAP4430 or TIOMAP 4460),Motorola Atrix 4G,Motorola DROID BIONIC,Motorola Xoom。

Arm 于 2011 年发布 V8 架构,并在此架构的基础上发布了 Cortex A76、Cortex-A77 等芯片核,华为等芯片设计企业再在这些芯片核的基础上,设计出最终的手机芯片。

    ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)

根据最新的数据显示,Arm 在中国的合作伙伴已经超过 200 家,中国合作伙伴出货的基于 ARM 架构的芯片已超过了 160 亿颗,国产 SoC 芯片 95% 都是基于 ARM 架构的。吴雄昂强调,ARM 是唯一非源于美国的主流计算架构。

      else

3 下一代押宝机器学习

    Cortex-A15ARM核处理器:Cortex-A15 MPCore处理器是目前Cortex-A系列中性能最高的处理器,一个突出的特性是其硬件的虚拟化技术(Hardware virtualization)以及大物理内存的扩展(Large Physical Address Extension(LPAE), 能寻址到1TB的内存)。特性关键字:Application profile, VFPv4 FPU,NEON, Thumb-2, Jazelle RCT/DBX, out-of-order speculative issue superscalar, LargePhysical Address Extensions(LPAE), Hardware virtualization, 1–4 SMP cores,32KB/32KB L1, up to 4MB L2, MMU+TrustZone。使用Cortex-A15的设备:目前集成Cortex-A15的处理器量产的只有Samsung的Exynos 5系列处理器,但TI的OMAP5系列处理器也采用Cortex-A15的核。

Arm 方面认为,Arm Total Compute 代表了一种 IP 设计的新方法,重点是用例驱动的优化系统解决方案。

The ARMv8 architectural architecture extends theNEON support, and provides backwards compatibility with ARMv7 implementations.

可以预见的是,无论是用于 VR 头显还是可穿戴设备,智能手机或 DTV,Total Compute 都将扮演重要的作用,采用全面计算方法,简化安全性,提高性能和效率,并为开发人员提供整个 Arm 生态系统更多的性能访问机会,最终实现真正的数字沉浸式体验。

    Cortex-A7 ARM核处理器:Cortex-A7 处理器的功耗和面积与超高效 Cortex-A5 相似,但性能提升 15~20%,Cortex-A7是ARM的大小核设计中的小核部分,并且与高端 Cortex-A15 CPU 体系结构完全兼容。Cortex-A7处理器包括了高性能处理器Cortex-A15的一切特性,包括虚拟化(virtualization)、大容量物理内存地址扩展(Large Physical Address Extensions (LPAE),可以寻址到1TB的存储空间)、NEON、VFP以及AMBA 4 ACE coherency(AMBA4 CacheCoherent Interconnect (CCI))。Cortex-A7支持多核MPCore的设计以及Big+Little的大小核设计。小型高能效的 Cortex-A7 是最新低成本智能手机和平板电脑中独立 CPU 的理想之选,并可在big.LITTLE 处理配置中与 Cortex-A15 结合。特性关键字:VFPv4 FPU, NEON, Thumb-2, JazelleRCT/DBX, out-of-order speculative issue superscalar, Large Physical AddressExtensions(LPAE), Hardware virtualization, 1–4 SMP cores, 32KB/32KB L1, up to4MB L2, MMU+TrustZone。

2 全面运算时代到来!

NEON的寄存器:有16个128位四字寄存器Q0-Q15,32个64位双字寄存器D0-D31,两个寄存器是重叠的,在使用的时候需要特别注意,不小心就会被覆盖掉。

今年五月,Arm 已经推出旗舰 IP 方案,定义 2020 年高端智能手机性能,提供新一代的人工智能体验,分别包括:

1、《NEON Programmer’s Guide》

4)Arm ML 处理器。

转自:

与此同时,Arm 还通过加强与新思科技的合作促进最新高级移动处理器早期采用者流片。

There is no support for NEON instructions inarchitectures before ARMv7.

Mali-D37 DPU 被 Arm 定义为最小面积的 DPU,首次采用 Komeda 架构,小于 1mm²面积可提供 2K 和全高清视频,系统的功耗和内存管理需求降低了 30%。

      ...

Arm 发布 Cassini 计划,通过多元化和安全的边缘生态系统确保云原生计算的体验,包括开放平台标准和参考系统设计,以及云生态软件堆栈,用于边缘安全基础架构设计的 PSA 架构。

澳门新濠3559,The NDK supports the compilation of modules or evenspecific source files with support for NEON. What this means is that a specificcompiler flag will be used to enable the use of GCC ARM Neon intrinsics andVFPv3-D32 at the same time.

Arm 首席执行官 Simon Segars 曾介绍,Matterhorn 中添加了 Matrix Multiply通用矩阵乘,从而使其机器学习性能比 Cortex-A77 提高了一倍。

ARM ENON技术可加速多媒体和信号处理算法(如视频编码/解码、2D/3D图形、游戏、音频和语音处理、图像处理技术、电话和声音合成),其性能至少为ARMv5性能的3倍,为ARMv6 SIMD性能的2倍。NEON技术是ARM Cortex-A系列处理器的128位SIMD架构扩展,旨在为消费性多媒体应用程序提供灵活、强大的加速功能。

而在本月 Arm TechCon 2019 活动上,Arm 宣布与 Unity 合作,以确保 3D 应用程序在使用 Arm 架构的硬件上流畅运行,作为全面计算协作方法的一部分,开发人员可以轻松访问除 CPU 内核之外的其他内核。

NEON注意事项:(1)、load数据的时候,第一次load会把数据放在cache里面,只要不超过cache的大小,下一次load同样数据的时候,则会比第一次load要快很多,会直接从cache中load数据;(2)、在做NEON乘法指令的时候会有大约2个clock的阻塞时间,如果你要立即使用乘法的结果,则就会阻塞在这里。乘法的结果不能立即使用,可以将一些其它的操作插入到乘法后面而不会有时间的消耗;(3)、使用饱和指令的时候,如乘法饱和的时候,在做乘法后会再去做一次饱和,所用时间要比直接做乘法要慢;(4)、在对16位数据进行load或者store操作的时候,需要注意的是字节移位。

藉由采用全面运算 (Total Compute) 方式,Arm 将能够提供最佳的集成解决方案,以因应现今的挑战并实现 ML 应用的庞大潜能。

3、 

Arm ML 处理器对应的是 Project Trillium,是一个异构 ML 运算平台,包括 Arm ML 处理器以及开源的 Arm NN 软件框架,目前已搭载在超过 2.5 亿台 Android 设备上。随着机器学习使用案例的需求越来越高,开发人员也对专属神经处理器也更为渴望。

Neon support only works when targeting the'armeabi-v7a' ABI, otherwise the NDK build scripts will complain and abort. Itis important to use checks like the following in your Android.mk:

ARM 还宣布在未来更新一代的 Matterhorn CPU,Matterhorn 是下一代 Cortex-A 内核的代号。

endif #TARGET_ARCH_ABI == armeabi-v7a

澳门新濠3559 3

NOT ALL ARMv7-BASED ANDROID DEVICES WILL SUPPORT NEON ! Itis thus crucial to perform runtime detection to know if the NEON-capablemachine code can be run on the target device.To do that, use the 'cpufeatures'library that comes with this NDK.You should explicitly check thatandroid_getCpuFamily() returns ANDROID_CPU_FAMILY_ARM, and thatandroid_getCpuFeatures() returns a value that has theANDROID_CPU_ARM_FEATURE_NEON flag set, as in:

新思科技解决方案支持使用了 Arm 最新处理器的智能手机、笔记本电脑、其他移动设备、5G、增强现实 (AR) 和机器学习 (ML) 产品的优化设计,该解决方案包括新思科技 Fusion Design Platform、Verification Continuum 平台和 DesignWare 接口 IP。

          ...

Project Cassini 将专注于基础设施边缘,开发平台标准与参考系统,并以它们为基础,在目前已延展到基础设施边缘的标准化平台安全架构 (PSA) 框架内,无缝部署云端原生的软件堆栈。两年前 Arm 推出 PSA,让企业得以依据一套通用的需求设计安全功能,以降低打造产品级 IoT 安全性相关的成本、时间与风险。现在,Project Cassini 将 PSA 延展至基础设施边缘,目标是让所有最基本的安全需求标准化。

 

Android 版本不同,arm_neon.h也略有不同,版本越高,包含的内联函数有可能越多。

    Define LOCAL_ARM_NEONto 'true' in your module definition, and theNDK will build all its source files with NEON support. This can be useful ifyou want to build a static or shared library that specifically contains NEONcode paths.

4、

      {

“ARM Advanced SIMD”,nick-named “NEON”, it provides:(1)、A set of interesting scalar/vectorinstructions and registers(the latter are mapped to the same chip area as theFPU ones), comparable to MMX/SSE/3DNow! in the 86 world;(2)、VFPv3-D32 as a requirement(i.e 32 hardware FPU 64-bit registers,instead of the minimum of 16).

          // use NEON-optimized routines

When you compile a file, the compiler must know  what processor you want the code to runon.The primary option for doing this is –mcpu=cpu-name,where cpu-name is the nameof the processor.If you do not specify the processor to use,GCC will use itsbuilt-in default. The default can vary depending on how the compiler wasoriginally built and the generated code might not execute or might executeslowly on the CPU that you have.

    NEON的流水线在Cortex-A8和Cortex-A9的处理器上不同,NEON的指令一般都是在一个周期内发出,但是执行结果可能若干个周期才能有效,只有简单的如VSUB、VADD和VMOV指令才能在下一个周期可以用。从NEON的寄存器把数据保存到ARM寄存器非常耗时,需要至少20个周期的延时,因而尽量避免这类操作。尽量避免ARM和NEON处理器访问相同的数据区域。

参考文献:

Not all ARMv7-based Android devices will support NEON.

{0,1}上的多项式算法:使用布尔算法规则处理系数0和1:(1)、0+0=1+1+0;(2)、0+1=1+0=1;(3)、0*0=0*1=1*0=0;(4)、1*1=1. 也就是说,将两个{0,1}上的多项式相加与按位异或的运算相同,而将两个{0,1}上的多项式相乘则与整乘的运算相同,但部分积执行的是异或运算,而不是相加运算。

    Cortex-A处理器共性:(1)、ARMv7-A体系结构;(2)、对所有操作系统的支持:A、Linux完整分配----Android、Chrome、Ubuntu和Debian;B、Linux第三方----MontaVista、QNX、Wind River;C、Symbian;D、Windows CE;F、需要使用内存管理单元的其它操作系统支持;(3)、指令集支持:ARM、Thumb-2(提供最佳代码密度和性能混用)、Thumb、Jazelle、DSP;(4)、TrusZone安全扩展;(5)、VFP高级单精度和双精度浮点支持;(6)、NEON媒体处理引擎;(7)、支持分支预测branch prediction。

2、 

Load and store addresses must be aligned to cachelines to allow more efficient memory access. This requires at least 16-wordalignment on Cortex-A8. If it is not possible to align the start of the inputand output arrays, then it is better to process the unaligned elements assingle elements. This means some of the elements at the beginning of the arrayand some of the elements at the end of the array can be processed as singleelements.

NEON technology as it is used on ARM Cortex-A seriesprocessors that implement the ARMv7-A or ARMv7-R architectures profiles.

NEON的数据类型:无符号整数、有符号整数、未指定类型的整数、浮点数、{0,1}上的多项式。数据类型针对的是操作数,而不是目标数。NEON中的数据类型说明符由一个指示数据类型的字母构成,该字母通常后跟一个指示宽度的数字。

      ...

    ARM Cortex系列处理器核包括Cortex-A系列(高性能、具备MMU、可以允许如Symbian、Linux、Android、Windows CE等操作系统)、Cortex-R系列(高端嵌入式满足高性能高可靠性的实时需求)、Cortex-M(嵌入式单片机、低功耗、低成本)。

    Cortex-A8 ARM核处理器:Cortex-A8处理器是第一个使用ARMv7-A架构的处理器。很多应用处理器以Cortex-A8为核心,如S5PC100(Samsung),OMAP3530(TI,Texas Instruments),i.MX515(Freescale)。Cortex-A8 处理器是一个双指令执行的有序超标量处理器,针对高度优化的能效实现可提供 2.0 Dhrystone MIPS(每 MHz),这些实现可提供基于传统单核处理器的设备所需的高级别的性能。Cortex-A8在市场中构建了ARMv7体系结构,可用于不同应用,包括智能手机、智能本、便携式媒体播放器以及其他消费类和企业平台。分开的L1指令和数据cache大小可以为16KB或者32KB,指令和数据共享L2 cache,容量可以到1MB。L1和L2 cache的cache数据宽度为128比特,L1cache是虚拟索引,物理上连续,而L2完全使用物理地址。Cortex-A8的L1 cache行宽度为64byte,L2cache在片内集成。另外和Cortex-A9相比,由于Cortex-A8支持的浮点VFP运算非常有限,其VFP的速度非常慢,往往相同的浮点运算,其速度是Cortex-A9的1/10。Cortex-A8能并发某些NEON指令(如NEON的load/store和其他的NEON指令),而Cortex-A9因为NEON位宽限制不能并发。Cortex-A8的NEON和ARM是分开的,即ARM核和NEON核的执行流水线分开,NEON访问ARM寄存器很快,但是ARM端需要NEON寄存器的数据会非常慢。特性关键字:VFP, NEON, Jazelle RCT, Thumb-2, 13-stage superscalarpipeline,Variable(L1+L2)Cache, MMU+TrustZone。使用Cortex-A8的设备:包括Apple的ipad1(apple A4处理器),BeagleBoard (TI OMAP3530 or TI DM 3730)。HTCDesire, SBM7000, Oregon State University OSWALD, Gumstix Overo Earth, Pandora,Apple iPhone 3GS, Apple iPod touch (3rd and 4th Generation), Apple iPad (A4),Apple iPhone 4 (A4), Archos 5, BeagleBoard, Motorola Droid, Motorola Droid X,Motorola Droid 2, Motorola Droid R2D2 Edition, Palm Pre, Samsung Omnia HD,Samsung Wave S8500, Samsung i9000 Galaxy S, Sony Ericsson Satio, Touch Book,Nokia N900, Meizu M9, Google Nexus S, Sharp PC-Z1 "Netwalker。

    NEON的指令集只是ARM和THUMB指令集中的子集。NEON的指令都是以V字母开头。使用intrinsics(内联函数)不如使用汇编优化效率高。这些函数在编译的时候会直接转化成NEON的汇编指令。为了支持这些内联函数必须要包含头文件arm_neon.h , 使用NEON技术还要通过在编译的时候加入-mfpu=neon才能起到效果。使用intrinsics没法控制寄存器分配和内存对齐等。

      }

        LOCAL_MODULE    := mylib-neon

        include $(CLEAR_VARS)

        include $(BUILD_STATIC_LIBRARY)

      }

6、

NEON中的正常指令、宽指令、窄指令、饱和指令、长指令:(1)、正常指令:生成大小相同且类型通常与操作数向量相同的结果向量;(2)、长指令:对双字向量操作数执行运算,生成四字向量的结果。所生成的元素一般是操作数元素宽度的两倍,并属于同一类型;(3)、宽指令:一个双字向量操作数和一个四字向量操作数执行运算,生成四字向量结果。所生成的元素和第一个操作数的元素是第二个操作数元素宽度的两倍;(4)、窄指令:四字向量操作数执行运算,并生成双字向量结果,所生成的元素一般是操作数元素宽度的一半;(5)、饱和指令:当超过数据类型指定的范围则自动限制在该范围内。

NEON C/C++ intrinsics are available in armcc, GCC/g++,and llvm.

Intel Atom processor可以应用到Android,为x86,支持TBB,支持SSE2、SSE3等。

NEON标量:有些NEON指令可处理与向量组合使用的标量。NEON标量可以为8位、16位、32位或64位。除乘法指令之外,访问标量的指令也可访问寄存器组中的任何元素。指令语法通过在双字向量中使用索引来引用标量,从而使Dm[x]表示Dm中的第x个元素。乘法指令仅允许使用16位或32位标量,并且只能访问寄存器组中的前32个标量。这在乘法指令中意味着:(1)、16位标量限定为寄存器D0-D7,其中x位于范围0-3内;(2)、32位标量限定为寄存器D0-D15,其中x为0或1。

5、《ARM NEON support in the ARM compiler》

编辑:服务器运维 本文来源:进一步扩大ARM在高性能与低功耗领域的领先地位

关键词: