zoukankan      html  css  js  c++  java
  • arm体系结构

    arm体系结构主要有五个部分:

    1、arm的工作状态,工作模式,寄存器组

    2、流水线

    3、存储结构

    4、指令系统(指令集)

    5、异常处理结构

    ----------------------------------------------------------------------

    1、arm的工作状态,工作模式,寄存器组

    包含:ARM状态:执行32位字对齐的arm指令,

    Thumb状态:执行16位半字节对齐的指令,

    注意:两种状态可以相互切换

    启动后开始执行开始执行代码时,工作状态处于arm态。

    -------------------------------------------------------------

    工作模式:(共有7中)

    管理模式(suv)保护模式:(系统调用,arm复位启动后,还有就是u-boot引导内核启动时,arm板所处的状态)

    用户模式(usr):执行普通应用程序时;

    系统模式(sys):超级用户执行指令时

    中止模式(abt):运行出错时进入

    未定义模式(udn):未定义指令运行出错时进入

    快速中断模式:

    外部中断模式:

    注意:工作模式的切换可通过:软件实现,也可以通过中断来实现。

    -----------------------------------------------------------------------------

    寄存器组:

    总共有37个寄存器,31个通用寄存器,6个状态寄存器。

    通用寄存器包括:R0-R15

    分为:未分组寄存器:r0-r7

    分组寄存器:r8-r14

    程序计数器:r15(program count)pc;

    各个寄存器的作用:

    R0-R12:用于存放局部变量,其中R0-R3还可以用于存放参数(参数传递),在c与汇编混合编程时可用到,如果超过四个参数,其他参数放到栈中。

    R13(sp Stack point):用于存放栈的地址,

    R14(lr link register ):用于存放子程序的返回地址,也称子程序链接返回地址。

    R15(程序计数器pc):用于存放当前工作模式下取指的指令的地址,指向当前执行的那条指令的地址,保存了下一条指令的地址。

    CPSR(current program statue register):1、用来保存当前程序状态的寄存器,2、所有处理器模式下都可以访问当前程序状态寄存器(意味可以读写CPSR寄存器来修改处理器模式)。

    SPSR(saved program statue register):异常发生时用于保存CPSR的值,从异常返回时,将CPSR_mode复制到CPSR中,恢复原来处理器的模式。(用于切换模式时保存CPSR的值)。

    arm状态寄存器的格式:

    通过修改前5位可切换处理器模式(即工作模式位)。

    工作模式位:

    条件码标记位:(通常只读取,不修改)

    控制位:(会修改)

    --------------------------------------------------------------------------------------------

    2、arm流水线结构(使cpu从串行工作变为并行工作)

    冯诺依曼结构:只使用一条总线来进行取指令和数据;

    哈弗结构:含有两天总线,一条总线用于取指令,另一条指令用于取数据。

    流水线的过程:把一个重复的过程分解成诺干个子过程,每个子过程可以与其他子过程同时进行。

    即此时pc是指向指令SUB的。

    一般讲一个指令的处理过程分成三个步骤

    1.  取指.-à读取指令(机器码)

    2.  译码  --》

    3.  执行à执行指令.

    -------------------------------------------------------------------------------------------

    3、arm存储结构:

    3.存储结构

           --ARM数据类型

                  1.8位  (字节)

                  2.16位 (半字)

                         3.32位  (字)

                  --ARM存储器特点:

                          字节:字节数据可以随意存放

                          半字:  半字对齐(地址最低为0);

                          字:  地址最低为00;

                  --ARM格式:

                         大端模式

                         小端模式

                  --ARM存储器层次.

                         Arm处理器,希望存储器容量大,速度快.容量大,速度慢。速度快,容量小.

    --------------------------------------------------------------------------------------

    arm指令系统:

  • 相关阅读:
    go语言基础之闭包捕获外部变量特点
    go语言基础之基匿名函数本语法和闭包
    go语言基础之回调函数
    go语言基础之函数类型
    go语言基础之递归实现数字累加
    go语言基础之递归函数的调用流程
    go语言基础之普通函数的调用流程
    maven install 打包 报错 Cannot run program "gpg.exe": CreateProcess error
    ELK&H3c监控篇
    机房监控中的网络设备监控到底是怎样的?
  • 原文地址:https://www.cnblogs.com/defen/p/5367643.html
Copyright © 2011-2022 走看看