ARM处理器是英国Acorn有限公司设计的低功耗成本的第一款RISC微处理器。全称为Advanced RISC Machine。ARM处理器本身是32位设计,但也配备16位Thumb指令集,一般来讲比等价32位代码节省达35%,却能保留32位系统的所有优势。

ARM处理器的三大特点是:耗电少功能强、16位/32位双指令集和合作伙伴众多。

1、体积小、低功耗、低成本、高性能;

2、支持Thumb(16位,2字节对齐)/ARM(32位,4字节对齐)双指令集,能很好的兼容8位/16位器件;

3、大量使用寄存器,指令执行速度更快;

4、大多数数据操作都在寄存器中完成;

5、寻址方式灵活简单,执行效率高;

6、指令长度固定。

CISC与RISC概念

1. CISC(Complex Instruction Set Computer,复杂指令集计算机)

大约有20%的指令会被反复使用,占整个程序代码的80%。而余下的指令却不经常使用,在程序设计中只占20%。

2.  RISC(Reduced Instruction Set Computer,精简指令集计算机)

优先选取使用频最高的简单指令,避免复杂指令;将指令长度固定,指令格式和寻址方式种类减少;以控制逻辑为主,不用或少用微码控制等。

特点:

(1)采用固定长度的指令格式,指令归整、简单、基本寻址方式有2~3种。

(2)使用单周期指令,便于流水线操作执行。

(3)大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率。此外,ARM体系结构还采用了一些特别的技术,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗:

(4)所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。

(5)可用加载/存储指令批量传输数据,以提高数据的传输效率。

(6)可在一条数据处理指令中同时完成逻辑处理和移位处理。

(7)在循环处理中使用地址的自动增减来提高运行效率。

寄存器结构

ARM处理器共有37个寄存器,包括:

(1)30个通用寄存器,均为32位的寄存器。

(2)1个程序计数器(PC指针),也为32位的寄存器。

(3)1个当前程序状态寄存器(cpsr)

(4)5个程序状态保存寄存器 (spsr)

状态寄存器是用以标识CPU的工作状态及程序的运行状态,均为32位,只使用了其中的一部分。

处理器模式

共有7种,包括:

6种特权模式:

(1)终止模式(abort):当处理器访问存储器失败时,进入该模式;

(2)中断模式(interrupt request,IRQ):对ARM普通级别的中断做出响应;

(3)快速中断模式(fast interrupt request,FIQ):对ARM较高级别的中断做出响应,它有自己的r8~r12寄存器,不需要在处理时再对这些寄存器进行压栈,所以速度较快。

(4)管理模式(supervisor,SVC):处理器复位后进入该模式,通常处于该模式的有操作系统内核;

(5)系统模式(system):特殊的用户模式,允许对cpsr的完全读写访问;

(6)未定义模式(undefined,Undef):当处理器遇到没有定义的指令或处理器不支持的指令时进入该模式;

1种非特权模式:

(1)用户模式(user):一般用来运行应用程序;

所有的模式一般都可以访问的寄存器有:

(1)r0 ~ r12

(2)r13 (stack pointer,sp)、r14(link register,lr)

(3)r15 (program counter,pc)

(4)cpsr(current program status register)

除系统模式外的其他特权模式均可访问的寄存器:

(1)spsr(saved program status register)

延伸概念

哈佛结构:采用指令集与数据集分开的设计结构,常见的有ARM7、ARM11等;

冯诺依曼结构:采用指令集与数据集混在一起取用的设计结构

Thumb:

16位指令集,为32位ARM指令集的功能子集,一般仅能访问r0~r7及3个特殊寄存器,访问r8~r12寄存器需特殊指令处理;

r0~r7,又被称为Thumb state Low registers;

r8~r12,又被称为Thumb state High registers;

ARM 异常处理相应操作:

当发生异常情况时,会进行:

(1)程序备份,将CPSR复制到SPSR;

(2)重新设置CPSR的状态位:更改ARM状态位;更改位异常模式;结束中断接收;

(3)将当前的返回地址存储到LR寄存器中;

(4)将PC指针设置指向中断或异常的入口地址;

结束中断执行后,

(5)将程序的备份从SPSR拷贝回CPSR;

(6)还原CPSR的状态位;

(7)将中断发生前指针PC指向的地址从LR中还原;

RISC(精简指令集)与CISC(复杂指令集)的区别:

(1)RISC侧重软件的处理,CISC侧重硬件的处理;

(2)RISC指令仅有少量不同格式,CISC则有大量的不同格式;

(3)RISC使用了更多的寄存器,CISC则仅用了少量寄存器;

(4)  RISC仅用了少量寻址方式,CISC则有大量的寻址方式;

(5)RISC编译器更复杂,CISC则在处理器上扩展运用了微编程;

(6)RISC指令运行仅用一个周期,而CISC则要用多个周期;

(7)RISC流水线更简单,CISC流水线则较为复杂。

一些汇编指令的简写汇总:

(1)EQ,Equal,标志位为Z=1;

(2)NE,Not equal,标志位为Z=0;

(3)CS/HS,Unsigned higher or same,标志位为C=1;

(4)CC/LO,Unsigned lower,标志位为C=0;

(5)MI,Minus,标志位N=1;

(6)PL,Positive or Zero,标志位为N=0;

(7)VS,Overflow,标志位为V=1;

(8)VC,No overflow,标志位为V=0;

(9)HI,Unsigned higher,标志位为C=1&Z=0;

(10)LS,Unsigned lower or same,标志位为C=0&Z=1;

(11)GE,Great or equal,标志位为N=V;

(12)LT,Less than,标志位为N!=V;

(12)GT,Great or equal,标志位为Z=0&N=V;

(13)LE,Less than,标志位为Z=1 or N!=V;

(14)AL,Always

ARM 相关概念及知识随笔相关推荐

  1. Linux virtual filesystem switch I 磁盘相关概念以及知识

    前言:最近一直在研究linux vfs,原本打算写一点心得就行了,我超级懒,结果没想到越写越多.计划一共写5篇: 磁盘相关概念以及知识. FAT文件系统以及EXT2文件系统的概要分析. VFS相关概念 ...

  2. 单片机ARM体系架构知识你知道多少?

    想学习单片机的同学可以关注.私信我或者在评论区回复我要入门.在嵌入式领域中ARM可谓一家独大,所以我们要学习嵌入式开发,一定要了解ARM体系,只有在了解ARM体系的基础上才能理解ARM汇编(GNU汇编 ...

  3. [ARM]GIC相关知识

    ARM GIC GICv2-GICv3 重要变化 cpu interface GICv2架构,cpu interface是实现在gic内部,而且gic的寄存器,都是memory-mapped方式访问. ...

  4. CUDA编程(一) —— 相关概念基础知识

    CUDA(Compute Unified Device Architecture)的中文全称为计算统一设备架构.做图像视觉领域的同学多多少少都会接触到CUDA,毕竟要做性能速度优化,CUDA是个很重要 ...

  5. ARM裸机的知识总结(4) ------- 利用GPIO控制LED

    一.一步步点亮LED1_硬件工作原理及原理图查阅 1.LED物理特性介绍 LED本身有2个接线点,一个是LED的正极,一个是LED的负极.LED这个硬件的功能就是点亮或者不亮,物理上想要点亮一颗LED ...

  6. ARM处理器相关知识

    首先ARM公司是英国的公司! 在传统的桌面电脑,要宣传处理器多么的先进就必谈构架,比如Intel的Haswell.Ivy Bridge.Sandy Bridge构架,AMD的推土机构架.打桩机构架等. ...

  7. 磁盘相关概念以及知识

    http://code.riaos.com/?p=5011676 硬盘按照存储介质分为机械硬盘(HDD)和固硬盘(SSD) 硬盘的数据接口主要分为以下几种 : ATA(IDE):从ATA1 到ATA7 ...

  8. Java 基础知识随笔1

    1,语法错误 运行时错误 逻辑错误 2,类名,方法名,常量,变量名的命名习惯 常量中所有名字大写,类名中每个单词的首字母大写,实用小写字母命名变量和方法 3,回文数 4,使用Math.random() ...

  9. ARM第一天知识梳理

最新文章

  1. AAAI 2021 | 关键词指导的神经对话模型
  2. 移动端分步注册_移动应用程序的可用性测试:分步指南
  3. 【渝粤教育】国家开放大学2018年秋季 8669-21T (1)政治经济学 参考试题
  4. 联想将推出全新系列笔记本
  5. macOS Big Sur应用图标替换教程︳big sur图标包
  6. 35. 脱壳篇-UPX和WinUpack压缩壳的使用和脱法
  7. 通过建站学运维1901-08任务
  8. JavaScript垃圾收集-标记清除和引用计数
  9. 帆软FineMobile 自适应
  10. 所谓的日常 #10 - 勤王室馬騰舉義 報父仇曹操興師
  11. 线性回归--深度学习
  12. macOS编译金山云ksvc ffmpeg,在rtmp flv之上支持hevc h265
  13. windows10 64位 JDK1.8 下载
  14. 卷积码(Convolutional Code)
  15. iPhone6(IOS12.5.5)越狱记录
  16. OpenCV中出现“Microsoft C++ 异常: cv::Exception,位于内存位置 0x0000005C8ECFFA80 处。”的异常
  17. java 控制台聊天昵称_简单的java控制台聊天室实现
  18. Chrome保存整个网页为图片、PDF
  19. 【Gamemaker】YYC1.4编译的程序研究
  20. 云端卫士实战录 React + Redux 前端项目实践

热门文章

  1. Centos7 mysql5.7.28 Unit mysqld.service entered failed state.
  2. DL289西雅图-上海成功回国记录(2021-06-25)
  3. Xcode4.3.2修改默认公司名称
  4. 用实际例子详细探究OpenCV的轮廓绘制函数drawContours()
  5. 最全面的tvOS开发资料
  6. https://github.com/gnustep/
  7. scala学习之scala中一些集合的常用函数
  8. hashmap hash冲突怎么解决_10个HashMap问题搞定面试官
  9. 技术岗的职业规划_《阿里感悟》- 技术人员的职业规划
  10. oracle 280000,续-实例恢复- ORACLE instance shut down