CPU架构之ARM优化

1、资源


    ARM开发者官网:

https://developer.arm.com/

http://infocenter.arm.com

    32位ARM优化可以参考文档:

https://developer.arm.com/products/architecture/a-profile/docs/ddi0406/latest/arm-architecture-reference-manual-armv7-a-and-armv7-r-edition

    64位ARM优化可以参考文档:

https://developer.arm.com/products/architecture/a-profile/docs/ddi0487/latest/arm-architecture-reference-manual-armv8-for-armv8-a-architecture-profile

    其他资源(均来源于http://infocenter.arm.com):

RealView编译工具《编译器参考指南》:

http://infocenter.arm.com/help/topic/com.arm.doc.dui0348bc/DUI0348BC_rvct_comp_ref_guide.pdf

RealView编译工具《汇编器指南》:

http://infocenter.arm.com/help/topic/com.arm.doc.dui0204ic/DUI0204IC_rvct_assembler_guide.pdf

RealView编译工具《链接器用户指南》:

http://infocenter.arm.com/help/topic/com.arm.doc.dui0206ic/DUI0206IC_rvct_linker_user_guide.pdf


2、介绍


    ARM是三大CPU架构(X86、ARM、MIPS)之一,是精简指令集计算机的代表,其功耗低、功能强的特点使之广泛应用于移动设备。目前常见的是ARM32和ARM64,下面对其分别简单介绍:

(1)ARM32以ARMv7为主要架构,是32位的,常见的设备有:iphone5、Cortex-A15;

(2)ARM64以ARMv8为主要架构,是64位的,常见的设备有:Cortex-A53、Cortex-A57、iphone5s的A7、iphone6和iphone6Plus的A8等。


    Thumb指令、ARM指令和NEON指令的区别和联系:Thumb指令是ARM指令中一种16位的指令集,具有16bit的代码密度;ARM指令集包含ARM32和ARM64,分别适用于ARM32位优化和ARM64位优化;NEON指令集同样包含NEON32和NEON64,分别适用于ARM32位优化和ARM64位优化。不管ARM指令集还是NEON指令集,虽然都包含适用于ARM32位优化和ARM64位优化的指令集,但是它们的指令名称、个数和使用方法均是不一样的,需要特别注意,尤其是在ARM32位优化改写为ARM64位优化时。


3、ARM32位优化


4、ARM32位优化例子


5、ARM64位优化


6、ARM64位优化例子

相关文章
相关标签/搜索