ARM体系结构与编程(篇一):ARM体系特点

文章目录

  • 一、一些概念
    • 1、IO与内存统一编址
    • 2、CPU可编程原理
    • 3、指令集和CPU关系
    • 4、哈佛结构与冯诺依曼结构
    • 5、CISC与RISC
    • 6、流水线
    • 7、统一编址和独立编址
  • 二、ARM体系特点介绍
    • 1、ARM处理器简介
    • 2、ARM处理器特点
    • 3、ARM芯片特点
    • 4、ARM体系结构特点
  • 三、问题与解答


一、一些概念

1、IO与内存统一编址

  1. ARM32位CPU支持少于4G内存,因为有一部分地址线分配给了外部设备。CPU通过地址总线访问内在。
  2. SOC(“System-on-a-Chip” ,即“片上系统 ”)中的各种内部外设通过地址操作外设中的特殊功能寄存器。也就是为每个外设中的特殊功能寄存器分配一个特定地址,然后像操作内存一样去操作来实现编程控制这些外部设备。
  3. SOC中的各种内部外设是通过各自的SFR编程访问,这些SFR的访问类似于访问普通内存,区别在于这个地址是内存还是寄存器,这叫IO与内存统一编址

2、CPU可编程原理

  1. CPU是有运算控制能力的芯片,没有预先制定功能,只设计了指令集,功能预留给编程人员改变的。
  2. 固定频率的时钟控制下有节奏运行,(通过总线读、解、执行)
  3. CPU可以通过总线读取外部存储器设备中的二进制指令集,然后解码执行。
  4. 这些可以被CPU解码执行的二进制指令集是CPU设计的时候确定的,是CPU设计者定义的。

3、指令集和CPU关系

  1. 汇编实质就是机器指令的助记符。
  2. 指令集是一款CPU的特征。
  3. 不同CPU指令集不同。
  4. 用汇编写代码可以充分发挥CPU效率。

4、哈佛结构与冯诺依曼结构

  1. 哈佛结构:程序的数据段与程序段分开存储。(安全)
    (1)哈佛结构特性保证了CPU运行稳定性和安全性。因此非常适合嵌入式、单片尤其是物联网领域。而服务器等高性能领域目前主导还是因特。
    (2)哈佛结构决定了裸机程序使用实地址即物理地址。因此链接比较麻烦,必须使用复杂的链接脚本告知链接器如何组织程序。对于OS上的应用是工作在虚似地址中,则不需要考虑这么多。

  2. 冯诺依曼结构:程序的数据段和程序段存在一起。(处理简单)

5、CISC与RISC

  1. CISC(“Complex Instruction Set Computer”,即“复杂指令集计算机”)用叠加内部电路的方式,让一条指令完成多个功能。功耗大。

  2. RISC(“Reduced Instruction Set Computer”,即“精简指令集计算机”)只提供简单的基本指令,目标功能留给编程人员来完成。灵活、功耗小。其主要特点如下:
    (1)指令集——RISC减少了指令集的种类,通常一个周期一条指令,采用固定长度的指令格式,编译器或程序员通过几条指令完成一个复杂的操作。而CISC指令集的指令长度通常不固定。
    (2)流水线——RISC采用单周期指令,且指令长度固定,便于流水线操作执行。
    (3)寄存器——RISC的处理器拥有更多的通用寄存器,寄存器操作较多。例如ARM处理器具有37个寄存器。
    (4)Load/Store结构——使用加载/存储指令批量从内存中读写数据,提高数据的传输效率。
    (5)寻址方式简化,指令长度固定,指令格式和寻址方式种类减少。

6、流水线

以3级流水线为例,指令分3个阶段执行:

  1. 取指(Fetch) 从存储器装载一条指令
  2. 译码(Decode) 识别将要被执行的指令
  3. 执行(Excute) 处理指令并将结果写会寄存器

  流水线是 RISC处理器执行指令时采用的机制,流水线处理时实际是这样的:ARM正在执行第1条指令的同时对第2条指令进行译码,并将第3条指令从存储器中取出。所以,只有在取第4条指令时,第1条指令才算完成执行。

7、统一编址和独立编址

  1. 统一编址:该情况下访问外部设备就像访问内存一样,不需要专门指令(RISC)去操作外部设备。
  2. 独立编址:访问外部设备要用专用指令来实现(CISC多一个设备增加一条指令)。

二、ARM体系特点介绍

1、ARM处理器简介

  ARM(Advanced RISC Machines)是一个32位RISC(精简指令集)处理器架构,ARM处理器则是ARM架构下的微处理器。ARM处理器广泛的使用在许多嵌入式系统。ARM处理器的特点有指令长度固定,执行效率高,低成本等。

2、ARM处理器特点

  1. ARM指令都是32位定长的;
  2. 寄存器数量丰富(37个寄存器);
  3. 普通的Load/Store指令;
  4. 多寄存器的Load/Store指令;
  5. 指令的条件执行;
  6. 单时钟周期中的单条指令完成数据移位操作和ALU(Arithmetic Logic Unit,算术逻辑单元)操作;
  7. 通过变种和协处理器来扩展ARM处理器的功能;
  8. 扩展了16位的Thumb指令来提高代码密度。

3、ARM芯片特点

ARM芯片具有RISC体系的一般特点,如:

  • 具有大量的寄存器;
  • 绝大多数操作都在寄存器中进行,通过Load/Store(基于字节、字和多字的读取和写入指令)的体系结构在内存和寄存器之间传递数据;
  • 寻址方式简单;
  • 采用固定长度的指令格式;

除此之外,ARM体系采用了一些特别的技术,在保证高性能的同时尽量减少芯片体积,减低芯片的功耗。这些技术包括:

  • 在同一条数据处理指令中包含算术逻辑处理单元处理和移位处理;
  • 使用地址自动增加(减少)来优化程序中循环处理;
  • Load/Store指令可以批量传输数据,从而提高数据传输的效率;
  • 所有指令都可以根据前面指令执行结果,决定是否执行,以提高指令执行的效率。

4、ARM体系结构特点

  1. CPU采用RISC架构;
  2. 常用汇编指令二三十条;
  3. 功耗低;
  4. ARM实际上有一些ARM是哈佛结构,而另一些ARM是冯诺依曼结构(或者更准确说是混合结构)。

三、问题与解答

1、ARM处理器扩展了16位的Thumb指令来提⾼代码密度,代码密度怎么理解?

Thumb指令具有16位的代码宽度。与等价的32位代码相比较,thumb指令集在保留32位代码优势的同时,大大的节省了系统的存储空间。

2、对于ARM v6之前处理器的命名规则,有很多不好的地方,具体有哪些?

早期的处理器命名规则分为很多类,这样就导致了不同板子之间移植性比较差,在这块板子上能用的放到另一块板上很多功能就无法兼容,所以v6以后ARM采用新的命名方式。

你可能感兴趣的:(ARM,arm)