ARM指令集和单纯的RISC的区别
2016-05-20 22:40
447 查看
ARM内核不是一个纯粹的RISC体系结构,这是为了使它能更好地适应其主要应用领域——嵌入式系统。ARM指令集和单纯的RISC定义有以下几方面的不同。
一些特定指令的周期数可变——并不是所有的ARM指令都是单周期的。例如:多寄存器转载/存储的load/store指令的执行周期就是不确定的,须根据被传送的寄存器个数而定。如果是访问连续的寄存器地址,就可以改善性能,因为连续的内存访问通常比随机访问要快。同时,代码密度也得到了提高,因为在函数的起始和结尾,多个寄存器的传输是很常用的操作。
内嵌桶形移位器产生了更为复杂的指令——内嵌桶形移位器是一个硬件部件,在一个输入寄存器被一条指令使用之前,内嵌桶形移位器可以处理该寄存器中的数据。它扩展了许多指令的功能,以此改善了内核的性能,提高了代码密度。
Thumb 16位指令集——ARM内核增加了一套称之为Thumb指令的16位指令集,使得内核既能够执行16位指令,也能够执行32位指令,从而增强了ARM内核的功能。16位指令与32位的定长指令相比较,代码密度可以提高约30%。
条件执行——只有当某个特定条件满足时指令才会被执行。这个特性可以减少分支指令的数目,从而改善了性能,提高了代码密度。
增强指令——一些功能强大的数字信号处理器(DSP)指令被加入到标准的ARM指令之中,以支持快速的16X16位乘法操作及饱和运算。在某些应用中,传统的方法需要微处理器加上DSP才能实现。ARM的这些增强指令,使得ARM处理器也能够满足这些应用的需要。
一些特定指令的周期数可变——并不是所有的ARM指令都是单周期的。例如:多寄存器转载/存储的load/store指令的执行周期就是不确定的,须根据被传送的寄存器个数而定。如果是访问连续的寄存器地址,就可以改善性能,因为连续的内存访问通常比随机访问要快。同时,代码密度也得到了提高,因为在函数的起始和结尾,多个寄存器的传输是很常用的操作。
内嵌桶形移位器产生了更为复杂的指令——内嵌桶形移位器是一个硬件部件,在一个输入寄存器被一条指令使用之前,内嵌桶形移位器可以处理该寄存器中的数据。它扩展了许多指令的功能,以此改善了内核的性能,提高了代码密度。
Thumb 16位指令集——ARM内核增加了一套称之为Thumb指令的16位指令集,使得内核既能够执行16位指令,也能够执行32位指令,从而增强了ARM内核的功能。16位指令与32位的定长指令相比较,代码密度可以提高约30%。
条件执行——只有当某个特定条件满足时指令才会被执行。这个特性可以减少分支指令的数目,从而改善了性能,提高了代码密度。
增强指令——一些功能强大的数字信号处理器(DSP)指令被加入到标准的ARM指令之中,以支持快速的16X16位乘法操作及饱和运算。在某些应用中,传统的方法需要微处理器加上DSP才能实现。ARM的这些增强指令,使得ARM处理器也能够满足这些应用的需要。
相关文章推荐
- Linux内核移植
- 使用 stylelint找出你的CSS样式表里的错误和问题
- Java数据类型转换(自动转换和强制转换)
- 【Arduino官方教程第零辑】基础部分-目录
- shell script中创建函数
- shell学习-循环
- android:ListView下拉刷新上拉加载(SwipeRefreshLayout+滑动监听加载更多)
- hadoop 安装
- css的一些选择器以及优先级的比较
- C++第六次实验-矩阵求和
- 进程的阻塞和挂起的区别
- MapReduce YARN Memory Parameters
- Redis的基本操作二
- Android ADT——快速更新API
- Servlet中文乱码问题解决办法
- xml中DOM4J的使用
- LDAP服务器的概念和原理简单介绍
- Using cURL to automate HTTP jobs
- 数据结构----简单选择排序
- Java面向对象--封装private