一、ARM处理器简介及RISC特点
1、ARM处理器简介:
ARM(Advanced RISC Machines)是一个32位RISC(精简指令集)处理器架构,ARM处理器则是ARM架构下
的微处理器。ARM处理器广泛的使用在许多嵌入式系统。ARM处理器的特点有指令长度固定,执行效率高,低成本等。
2、RISC设计主要特点:
(1)指令集——RISC减少了指令集的种类,通常一个周期一条指令,采用固定长度的指令格式,编译器或
程序员通过几条指令完成一个复杂的操作。而CISC指令集的指令长度通常不固定;
(2)流水线——RISC采用单周期指令,且指令长度固定,便于流水线操作执行;
(3)寄存器——RISC的处理器拥有更多的通用寄存器,寄存器操作较多。例如ARM处理器具有37个寄存器;
(4)Load/Store结构——使用加载/存储指令批量从内存中读写数据,提高数据的传输效率;
(5)寻址方式简化,指令长度固定,指令格式和寻址方式种类减少。
二、Arm的基本数据类型:
双字节(DoubleWord):64位
字(Word):在ARM体系结构中,字的长度为32位。
半字(Half-Word):在ARM体系结构中,半字的长度为16位。
字节(Byte):在ARM体系结构中,字节的长度为8位。
三、ARM处理器存储格式:
ARM体系结构将存储器看作是从0地址开始的字节的线性组合。作为32位的微处理器,ARM体系结构所支持的
最大寻址空间为4GB。ARM体系结构可以用两种方法存储字数据,分别为大端模式和小端模式。
大端模式(高地高低):字的高字节存储在低地址字节单元中,字的低字节存储在高地址字节单元中。
小端模式(高高低低):字的高字节存储在高地址字节单元中,字的低字节存储在低地址字节单元中。
四、内核的工作模式:
1、用户模式(user):正常程序执行模式;
2、快速中断模式(FIQ):高优先级的中断产生会进入该种模式,用于高速通道传输;
3、外部中断模式(IRQ):低优先级中断产生会进入该模式,用于普通的中断处理;
4、特权模式(Supervisor):复位和软中断指令会进入该模式;
5、数据访问中止模式(Abort):当存储异常时会进入该模式;
6、未定义指令中止模式(Undefined):执行未定义指令会进入该模式;
7、系统模式(System):用于运行特权级操作系统任务;
8、监控模式(Monitor):可以在安全模式和非安全模式之间切换;
五、ARM9的5级流水线:
1、流水线的执行顺序:取指令->译码->执行->缓冲/数据->回写
(1)取指令(Fetch):从存储器读取指令;
(2)译码(Decode):译码以鉴别它是属于哪一条指令;
(3)执行(Execute):将操作数进行组合以得到结果或存储器地址;
(4)缓冲/数据(Buffer/data):如果需要,则访问存储器以存储数据;
(5)回写:(Write-back):将结果写回到寄存器组中;
2、影响流水线性能的因素:
(1)互锁:
不同的指令顺序也会造成时钟周期的不同,比如一条指令的执行需要前一条指令执行的结果,如果这时结果
还没出来,那就需要等待,这就是流水线互锁:
LDR r1, [r2, #4]
ADD r0, r0, r1 //r1的值需要等到LDR的结果
(2)跳转指令:
跳转指令也会破坏流水线的行为,后续指令的取值步骤受到跳转目标的影响。
3、寄存器组织:
(1)ARM Cortex-A8处理器有40个32位长的寄存器:
a、32个通用寄存器
b、7个状态寄存器:1个CPSR(当前程序状态寄存器)
6个SPSR(备份程序状态寄存器)
c、1个PC(程序计数器)
(2)每一种处理器模式有一组响应的寄存器组,如下对应方式