Linux-ARM架构

ARM架构
    看一款芯片的思路:公司名-芯片型号-ARM内核-ARM架构
    ARM内核:
        数字递增划分:
            ARM1/2/3/6/7/8/9/10/10
        ARMv6引入后按功能划分:
            Cortex-M Microcontroller    如Cortex-M
            Cortex-R Real-Time
            Cortex-A Application        
    
    ARM架构:
        按照指令集和流水线
        ARMv1 -- ARMv8,数字代表几级流水线。

List of ARM microarchitectures

上图链接: https://en.wikipedia.org/wiki/ARM_architecture

ARM处理器特点
    耗电少功能强、16位/32位双指令集和合作伙伴众多。
    1、体积小、低功耗、低成本、高性能;
    2、支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;
    3、大量使用寄存器,指令执行速度更快;
    4、大多数数据操作都在寄存器中完成;
    5、寻址方式灵活简单,执行效率高;
    6、指令长度固定。

RISC(Reduced Instruction Set Computer,精简指令集计算机)
    RISC结构优先选取使用频最高的简单指令,避免复杂指令;将指令长度固定,指令格式和寻址方式种类减少;以控制逻辑为主,不用或少用微码控制等
    RISC体系结构特点
        1 采用固定长度的指令格式,指令归整、简单、基本寻址方式有2~3种。
        2 使用单周期指令,便于流水线操作执行。
        3 大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率。
        除此以外,ARM体系结构还采用了一些特别的技术,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗:
        4 所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。
        5 可用加载/存储指令批量传输数据,以提高数据的传输效率。
        6 可在一条数据处理指令中同时完成逻辑处理和移位处理。
        7 在循环处理中使用地址的自动增减来提高运行效率。
    
寄存器结构
    ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄存器包括:
    31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器。
    6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位,只使用了其中的一部分。
    
指令结构
    ARM微处理器的在较新的体系结构中支持两种指令集:ARM指令集和Thumb指令集。其中,ARM指令为32位的长度,Thumb指令为16位长度。Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30%~40%以上的存储空间,同时具备32位代码的所有优点。    
    
处理器工作模式
    用户模式(usr) ARM处理器正常的程序执行状态
    系统模式(sys) 运行具有特权的操作系统任务
    快中断模式(fiq) 支持高速数据传输或通道处理
    管理模式(svc) 操作系统保护模式
    数据访问终止模式(abt) 用于虚拟存储器及存储器保护
    中断模式(irq) 用于通用的中断处理
    未定义指令终止模式(und) 支持硬件协处理器的软件仿真

    除用户模式外,其余6种模式称为非用户模式或特权模式;用户模式和系统模式之外的5种模式称为异常模式。ARM处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。    

猜你喜欢

转载自blog.csdn.net/TSZ0000/article/details/82899129