目录
1.ARM处理器简介及RISC特点
1.1ARM处理器简介
ARM(Advanced RISC Machines)是一个32位RISC(精简指令集)处理器架构,ARM处理器则是ARM架构下
的微处理器。ARM处理器广泛的使用在许多嵌入式系统。ARM处理器的特点有指令长度固定,执行效率高,低成本等。
1.2 RISC设计主要特点
(1)指令集——RISC减少了指令集的种类,通常一个周期一条指令,采用固定长度的指令格式,编译器或程序员通过几条指令完成一个复杂的操作。而CISC指令集的指令长度通常不固定;
(2)流水线——RISC采用单周期指令,且指令长度固定,便于流水线操作执行;
(3)寄存器——RISC的处理器拥有更多的通用寄存器,寄存器操作较多。例如ARM处理器具有37个寄存器;
(4)Load/Store结构——使用加载/存储指令批量从内存中读写数据,提高数据的传输效率;
(5)寻址方式简化,指令长度固定,指令格式和寻址方式种类减少。
2. Arm的基本数据类型
双字节(DoubleWord):64位
字(Word):在ARM体系结构中,字的长度为32位。
半字(Half-Word):在ARM体系结构中,半字的长度为16位。
字节(Byte):在ARM体系结构中,字节的长度为8位。
3. ARM处理器存储格式
ARM体系结构将存储器看作是从0地址开始的字节的线性组合。作为32位的微处理器,ARM体系结构所支持的
最大寻址空间为4GB。ARM体系结构可以用两种方法存储字数据,分别为大端模式和小端模式。
大端模式(高地高低):字的高字节存储在低地址字节单元中,字的低字节存储在高地址字节单元中。
小端模式(高高低低):字的高字节存储在高地址字节单元中,字的低字节存储在低地址字节单元中。
4. 内核的工作模式
1、用户模式(user):正常程序执行模式;
2、快速中断模式(FIQ):高优先级的中断产生会进入该种模式,用于高速通道传输;
3、外部中断模式(IRQ):低优先级中断产生会进入该模式,用于普通的中断处理;
4、特权模式(Supervisor):复位和软中断指令会进入该模式;
5、数据访问中止模式(Abort):当存储异常时会进入该模式;
6、未定义指令中止模式(Undefined):执行未定义指令会进入该模式;
7、系统模式(System):用于运行特权级操作系统任务;
8、监控模式(Monitor):可以在安全模式和非安全模式之间切换;
5. ARM9的5级流水线
5.1 流水线的执行顺序
取指令->译码->执行->缓冲/数据->回写
(1)取指令(Fetch):从存储器读取指令;
(2)译码(Decode):译码以鉴别它是属于哪一条指令;
(3)执行(Execute):将操作数进行组合以得到结果或存储器地址;
(4)缓冲/数据(Buffer/data):如果需要,则访问存储器以存储数据;
(5)回写:(Write-back):将结果写回到寄存器组中;
5.2 影响流水线性能的因素
(1)互锁:
不同的指令顺序也会造成时钟周期的不同,比如一条指令的执行需要前一条指令执行的结果,如果这时结果
还没出来,那就需要等待,这就是流水线互锁:
LDR r1, [r2, #4]
ADD r0, r0, r1 //r1的值需要等到LDR的结果
(2)跳转指令:
跳转指令也会破坏流水线的行为,后续指令的取值步骤受到跳转目标的影响。
5.3 寄存器组织
(1)ARM Cortex-A8处理器有40个32位长的寄存器:
a、32个通用寄存器
b、7个状态寄存器:1个CPSR(当前程序状态寄存器)
6个SPSR(备份程序状态寄存器)
c、1个PC(程序计数器)
(2)每一种处理器模式有一组响应的寄存器组,如下对应方式:
(3)通用寄存器包括R0-R15,可以分为3类:
A、未分组寄存器R0 – R7:
在所有运行模式下,未分组寄存器都指向同一个物理寄存器,他们未被系统用作特殊的用途。因此在中断或异常
处理进行异常模式转换时,由于不同的处理器运行模式均使用相同的物理寄存器,所以可能造成寄存器中数据的破坏。
B、分组寄存器R8 – R14:
对于分组寄存器,他们每次所访问的物理寄存器都与当前的处理器运行模式相关。
R13常用作存放堆栈指针,用户也可以使用其他寄存器存放堆栈指针,称为SP;
R14称为链接寄存器(LR),当执行子程序时,R14可得到R15(PC)的备份,执行完子程序后,又将R14的值
复制回PC,即使用R14保存返回地址。
C、程序计数器PC(R15):
寄存器R15用作程序计数器(PC),在ARM状态下,位[1:0]为0,位[31:2]用于保存PC;在Thumb状态下,位[0]为0,
位[31:1]用于保存PC。对于ARM指令集而言,PC总是指向当前指令的下两条指令的地址,即PC的值为当前指令的
地址值加8个字节。
(4)程序状态寄存器:
CPSR(Current Program Status Register,当前程序状态寄存器),CPSR可在任何运行模式下被访问,它包括
条件标志位、中断禁止位、当前处理器模式标志位以及其他一些相关的控制和状态位。包含以下内容:
ALU状态标志的备份;
当前的处理模式
中断使能标志;
设置处理的状态;
每一种运行模式下都有一个专用的物理状态寄存器,称为SPSR(Saved Program Status Register,备份的程序
状态寄存器),当异常发生时,SPSR用于保存当前CPSR的值,从异常退出时则可由SPSR来恢复CPSR。
由于用户模式和系统模式不属于异常模式,这两种状态下没有SPSR,因此在这两种状态下访问SPSR,结果是未知的。
今天的文章ARM学习-ARM架构基本内容分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/75032.html