微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM Thumb Thumb-2指令集

ARM Thumb Thumb-2指令集

时间:11-10 来源:互联网 点击:

指令地址保存在LR寄存器中,同时将PC中的最低位的值拷贝到CPSR寄存器中的T位,从而改变处理器状态(Exchange)。一般来说,对于调用函数使用BLX指令即可,被调用函数则与V4T架构相同,也是使用BX指令来返回。
ARM/Thumb代码性能比较

前面提到Thumb代码所需的存储空间约为ARM代码的60%~70%;Thumb代码使用的指令数比ARM代码少约30%~40%;若使用32位的存储器,ARM代码比Thumb代码速约40%;若使用16位的存储器,Thumb代码比ARM代码速约40%~50%;与ARM代码相比,使用Thumb代码,存储器的过耗会下降约30%。下面是arm-linux-gcc编译器采用不同的编译选择对armv7-a,、thumb-2 和thumb-1指令集编译CoreMark的测试结果,结果如下:

  • 最好的编译选项:-O3 -funroll-loops -marm -march=armv5te -mtune=cortex-a8
  • armv7-a指令集最好的编译选项:-O3 -funroll-loops -marm -march=armv7-a -mtune=cortex-a8 95.2%
  • Thumb-2指令集最好的编译选项:-O3 -funroll-loops -mthumb -march=armv7-a -mtune=cortex-a888.7%
  • Thumb-1指令集最好的编译选项:-O2 -mthumb -march=armv5te -mtune=cortex-a8 66.4%
  • Cortex-A9是Cortex-A8的tune的99.5%
  • 默认选项-O2 -mthumb -march=armv7-a 性能比为80.8%

Top of Form

Score

Optimisation

Unroll?

ISA

Arch

Tune

% of best

5634.6

-O3

-funroll-loops

-marm

-march=armv5te

-mtune=cortex-a8

100.0%

5607.7

-O3

-funroll-loops

-marm

-march=armv5te

-mtune=cortex-a9

99.5%

5601.5

-O2

-funroll-loops

-marm

-march=armv5te

-mtune=cortex-a9

99.4%

5580.0

-O3

-marm

-march=armv5te

-mtune=cortex-a8

99.0%

5548.6

-O3

-marm

-march=armv5te

-mtune=cortex-a9

98.5%

5505.1

-O2

-marm

-march=armv5te

-mtune=cortex-a8

97.7%

5427.4

-O2

-funroll-loops

-marm

-march=armv5te

-mtune=cortex-a8

96.3%

5386.5

-O3

-funroll-loops

-marm

-march=armv7-a

-mtune=cortex-a9

95.6%

5364.4

-O3

-funroll-loops

-marm

-march=armv7-a

-mtune=cortex-a8

95.2%

5332.3

-O2

-marm

-march=armv5te

-mtune=cortex-a9

94.6%

5330.8

-O3

-marm

-march=armv7-a

-mtune=cortex-a8

94.6%

5283.7

-O3

-marm

-march=armv7-a

-mtune=cortex-a9

93.8%

5253.5

-O2

-funroll-loops

-marm

-march=armv7-a

-mtune=cortex-a9

93.2%

5066.5

-O2

-funroll-loops

-marm

-march=armv7-a

-mtune=cortex-a8

89.9%

4996.6

-O3

-funroll-loops

-mthumb

-march=armv7-a

-mtune=cortex-a8

88.7%

4995.6

-O3

-funroll-loops

-mthumb

-march=armv7-a

-mtune=cortex-a9

88.7%

4947.2

-O3

-mthumb

-march=armv7-a

-mtune=cortex-a8

87.8%

4858.3

-O2

-funroll-loops

-mthumb

-march=armv7-a

-mtune=cortex-a9

86.2%

4774.8

-O2

-funroll-loops

-mthumb

-march=armv7-a

-mtune=cortex-a8

84.7%

4763.8

-O2

-marm

-march=armv7-a

-mtune=cortex-a9

84.5%

4737.8

-Os

-marm

-march=armv5te

-mtune=cortex-a8

84.1%

4731.1

-O2

-marm

-march=armv7-a

-mtune=cortex-a8

84.0%

4688.6

-O3

-mthumb

-march=armv7-a

-mtune=cortex-a9

83.2%

4665.6

-Os

-funroll-loops

-marm

-march=armv5te

-mtune=cortex-a8

82.8%

4630.7

-Os

-marm

-march=armv5te

-mtune=cortex-a9

82.2%

4595.6

-Os

-funroll-loops

-marm

-march=armv5te

-mtune=cortex-a9

81.6%

4562.7

-Os

-funroll-loops

-marm

-march=armv7-a

-mtune=cortex-a8

81.0%

4551.7

-O2

-mthumb

-march=armv7-a

-mtune=cortex-a8

80.8%

4521.5

-Os

-funroll-loops

-marm

-march=armv7-a

-mtune=cortex-a9

80.2%

4519.8

-Os

-marm

-march=armv7-a

-mtune=cortex-a8

80.2%

4500.8

-Os

-marm

-march=armv7-a

-mtune=cortex-a9

79.9%

4237.6

-O2

-mthumb

-march=armv7-a

-mtune=cortex-a9

75.2%

3739.7

-O2

-funroll-loops

-mthumb

-march=armv5te

-mtune=cortex-a8

66.4%

3730.6

-O2

-funroll-loops

-mthumb

-march=armv5te

-mtune=cortex-a9

66.2%

3658.8

-Os

-mthumb

-march=armv7-a

-mtune=cortex-a8

64.9%

3657.0

-Os

-funroll-loops

-mthumb

-march=armv7-a

-mtune=cortex-a8

64.9%

3629.3

-O2

-mthumb

-march=armv5te

-mtune=cortex-a8

64.4%

3585.1

-Os

-mthumb

-march=armv7-a

-mtune=cortex-a9

63.6%

3580.8

-Os

-funroll-loops

-mthumb

-march=armv7-a

-mtune=cortex-a9

63.6%

3522.2

-O3

-mthumb

-march=armv5te

-mtune=cortex-a8

62.5%

3473.0

-O2

-mthumb

-march=armv5te

-mtune=cortex-a9

61.6%

3338.9

-O3

-funroll-loops

-mthumb

-march=armv5te

-mtune=cortex-a8

59.3%

3219.1

-O3

-funroll-loops

-mthumb

-march=armv5te

-mtune=cortex-a9

57.1%

3170.6

-O3

-mthumb

-march=armv5te

-mtune=cortex-a9

56.3%

2753.7

-Os

-mthumb

-march=armv5te

-mtune=cortex-a8

48.9%

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top