Cortex指令集相比ARM的优势
来源:互联网 发布:linux删除一个目录 编辑:程序博客网 时间:2024/04/28 01:51
优势一:支持的Thumb-2指令集
Cortex-M3支持的Thumb-2指令集,它是一种16/32位混合编码指令,兼容Thumb指令。对于一个应用程序编译生成的Thumb2代码,以接近Thumb编码的代码尺寸,达到了接近ARM编码的运行性能。Thumb2是一种紧凑、高效的新一代指令集。
Thumb2指令集是面向高级语言的指令集,适合于C语言编程,由编译器生成目标代码。
优势二:支持存储器非对齐访问
基于Cortex-M3的MCU,为提高性能,其内部存储器(Flash、RAM)都是32位编址的。这样当常量、变量是字节或半字类型时,如果处理器只支持对齐访问(以往的处理器都是如此),那么这些字节/半字类型的数据也必须被分配、占用一个32位的存储单元,这样就浪费了部分存储空间。
Cortex-M3支持存储器的非对齐访问,它可以访问存储在一个32位单元中的字节/半字类型数据,这样4个字节类型(或2个半字类型)数据可以被分配在一个32位的单元中,提高了存储器的利用率。这种技术可以节省SRAM使用量,从而可以选择SRAM较小、更廉价的MCU。
优势三:支持分支预测
ARM Cortex-M3与ARM7内核一样,采用适合于微控制器应用的三级流水线,但增加了分支预测功能。现代高性能流水线处理器中一般都加入了分支预测部件,就是在处理器从存储器预取指令时,当遇到分支指令时,能自动预测跳转是否会发生,再从预测的方向进行取指,从而提供给流水线连续的指令流,流水线就可以不断地执行有效指令,保证了其性能的发挥。
ARM Cortex-M3内核的预取部件具有分支预测功能,可以预取分支目标地址的指令,使分支延迟减少到一个时钟周期。
优势四:支持位绑定操作
以前的ARM内核不支持位操作,当需要对一个变量或端口的某一位操作时,先要用逻辑与/或指令屏蔽其他的位,使位操作需要较多的指令和时钟周期。ARM Cortex-M3采用了一种特殊的方法——位绑定:把一个地址单元的32位变量中的每一位,通过一个简单的地址转换算法,映射到另一个地址空间,每一位占用一个地址,对此地址空间的操作,只有数据的最低一位是有效的,其余高31位的值被忽略。这样对新的映射空间操作时,就可以不用屏蔽操作,优化了RAM和I/O寄存器的读写,提高了位操作的速度。
优势五:位硬件除法和单周期乘法
以往的ARM处理器没有除法指令,在某些除法密集型应用中性能不尽如意。Cortex-M3加入了32位除法指令,弥补了这一缺陷,使Cortex-M3可以和其他通用处理器一样,完成各种数学运算操作。
- Cortex指令集相比ARM的优势
- 嵌入式系统作业:简述Cortex指令集相比ARM指令集的优势
- ARM Cortex-M3的优势
- ARM Cortex-M3的优势
- PowerPC架构相比于ARM的优势
- 【Cortex-M0】4 ARM微微控制器的指令集
- ARM 指令 CORTEX-M0
- Cortex-M3的优势
- __cdecl相比__stdcall的优势
- __cdecl相比__stdcall的优势
- mybatis相比Hibernate的优势
- swift相比oc的优势
- Spark相比MapReduce的优势
- ARM CORTEX-3指令小结
- ARM Cortex-M4 指令列表
- ARM Cortex-A平台NEON指令的编译和优化
- log4j相比System.out的优势
- C++相比于其他语言的优势
- 分析小米家庭智能套装
- Android如何高效加载大图
- android NDK实现
- 自行车码表CPU选型
- 【Maven】快速走进Maven的世界
- Cortex指令集相比ARM的优势
- 中断驱动的自行车码表
- KMP算法详解
- 优先级反转
- mybatis二级缓存应用及与ehcache整合
- 我的丑陋计算器1.0
- C#中System.Func<>与System.Action<>的区别
- C/C++内存管理机制
- Git具体问题:如何安全的push文件到工作分支