ARM处理器架构----处理器的工作状态

本文介绍了ARM处理器的架构,包括Von Neumann和哈佛结构,以及ARM的load-store体系。重点讲解了处理器的寄存器、工作模式、控制寄存器(cpsr)以及中断和异常处理。ARM拥有37个32位寄存器,并分为用户模式、特权模式等7种工作模式。在异常或中断时,会切换模式并保存状态到spsr。此外,文章还提到了流水线机制和条件执行的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      之前,一直都在看arm的驱动开发,最近看了ucos,同时也开始对arm的架构有了更深入一点的了解。大学学微机原理的时候学的是x86的架构,它和arm还是有挺多区别的。下面就整理一些自己的所学和在网上转载的关于arm架构的内容。有一本很好的讲arm架构的书:《ARM System Developer's Guide》。

      从编程人员的视角来看,arm核是由数据总线连接的功能单元组成,如下图所示:

        

        数据通过数据总线流向处理器核心,这里的数据可以是将要执行的指令,也可以是数据项.上面的图是Von Neumann体系的arm核,数据项和指令共用同一总线.而哈佛结构体系的arm核就会用两个不同的总线.就像所有的RISC处理器,arm采用load-store体系结构.也就是说它含有两条不同的指令类型来出入处理器.load指令将数据从内存拷贝到寄存器,store指令是将数据从寄存器拷贝到内存.没有直接操作内存中数据的数据处理指令.数据的处理离不开寄存器.

        ARM指令一般有两个源寄存器,Rn和Rm,和一个目的寄存器,Rd. ARM的一个重要特性是Rm可以在送入ALU之前被桶型移位器做预处理,这样就会有很多形式的表达式和寻址方式. 后面再写博客记录一下arm中的指令集。

        下面介绍ARM处理器的几个关键分量:寄存器,当前程序状态寄存器和流水线


一、寄存器。

        arm核一共有37个寄存器,有7种工作模式。其中在任一种工作模式下,可见的寄存器通常有18个(在user/system模式下可见的是17个)。另外,某几个寄存器(sp、lr、spsr)在不同的模式下对应的是不同的寄存器,所以总数加起来共有37个。所有的寄存器都是32bit大小.

        18个活动的寄存器包括:16个数据寄存器和2个程序状态寄存器.

      (1)数据寄存器由r0--r15表示. 其中r0-r12是通用寄存器,r13-r15是三个特殊的寄存器。

        r13通常用作栈指针(sp),存储当前处理器工作模式下的栈顶;

        r14被称作链接寄存器(lr),当发生函数调用时存放当前的pc指针,作为子程序的返回地址;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值