目录

文章目录

  • 目录
  • ARM
  • ARM 的架构
  • x86 架构与 ARM 架构的区别
  • ARM 的技术实现

ARM

ARM 架构过去称作进阶精简指令集机器(Advanced RISC Machine,更早称作:Acorn RISC Machine),是一个 32 位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。由于节能的特点,ARM 处理器非常适用于移动通讯领域,符合其主要设计目标为低耗电的特性。

在今日,ARM 家族占了所有 32 位嵌入式处理器 75% 的比例,使它成为占全世界最多数的 32 位架构之一。ARM 处理器可以在很多消费性电子产品上看到,从可携式装置(PDA、移动电话、多媒体播放器、掌上型电子游戏,和计算机)到电脑外设(硬盘、桌上型路由器)甚至在导弹的弹载计算机等军用设施中都有他的存在。在此还有一些基于 ARM 设计的派生产品,重要产品还包括 Marvell 的 XScale 架构和德州仪器的 OMAP 系列。

ARM 的架构


ARM 由 32 位 ALU、若干个 32 位通用寄存器以及状态寄存器、8 位乘法器、32 位桶形移位寄存器、指令译码以及控制逻辑、指令流水线和数据/地址寄存器组成。

  • ALU:它有两个操作数锁存器、加法器、逻辑功能、结果以及零检测逻辑构成。
  • 桶形移位寄存器:ARM 采用了 32 位的桶形移位寄存器,这样可以使在左移/右移 N 位、环移 N 位和算术右移 N 位等都可以一次完成。
  • 高速乘法器:乘法器一般采用 “加一移位” 的方法来实现乘法。ARM 为了提高运算速度,则采用两位乘法的方法,根据乘数的 2 位来实现 “加一移位” 运算。ARM 高速乘法器采用 8 位的结构,这样可以降低集成度(其相应芯片面积不到并行乘法器的 1/3)。
  • 浮点部件:浮点部件是作为选件供 ARM 构架使用。FPA10 浮点加速器是作为协处理方式与 ARM 相连,并通过协处理指令的解释来执行。
  • 控制器:ARM 的控制器采用的是硬接线的可编程逻辑阵列 PLA。
  • 寄存器:除了用户模式之外的其他 6 种处理器模式称为特权模式(Privileged Modes)。在这些模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。其中,除系统模式外,其他 5 种特权模式又称为异常模式。

处理器模式可以通过软件控制进行切换,也可以通过外部中断或异常处理过程进行切换。大多数的用户程序运行在用户模式下,这时,应用程序不能够访问一些受操作系统保护的系统资源,应用程序也不能直接进行处理器模式的切换。当需要进行处理器模式的切换时,应用程序可以产生异常处理,在异常处理过程中进行模式的切换。这种体系结构可以使操作系统控制整个系统的资源。

当应用程序发生异常中断时,处理器进入相应的异常模式。在每一种异常模式中都有一组寄存器,供相应的异常处理程序使用,这样就可以保证在进入异常模式时,用户模式下的寄存器(保证了程序运行状态)不被破坏。

系统模式并不是通过异常过程进入的,它和用户模式具有完全一样的寄存器。但是系统模式属于特权模式,可以访问所有的系统资源,也可以直接进行处理器模式的切换。它主要供操作系统任务使用。通常操作系统的任务需要访问所有的系统资源,同时该任务仍然使用用户模式下的寄存器组,而不是使用异常模式下相应的寄存器组,这样可以保证当异常中断发生时任务状态不被破坏。

x86 架构与 ARM 架构的区别

  1. 性能:x86 架构的工业电脑比 ARM 架构的工业电脑在性能方面要快得多、强得多。ARM 的优势在于效率,ARM 采用 RISC 流水线指令集,在完成综合性工作处于劣势,而在任务相对固定的应用场合其优势就能发挥得淋漓尽致。

  2. 扩展能力:x86 架构的工业电脑采用 “桥” 的方式与扩展设备(如:硬盘、内存等)进行连接,且 x86 架构的工业电脑能很容易进行性能扩展,如增加内存、硬盘等。

  3. ARM 架构的工业电脑是通过专用的数据接口使 CPU 与数据存储设备进行连接,所以 ARM 的存储、内存等性能扩展难以进行(一般在产品设计时已经定好其内存及数据存储的容量),所以采用 ARM 架构的工业电脑,一般不考虑扩展。

  4. 操作系统的兼容性:几乎所有 x86 硬件平台都可以直接使用微软的视窗系统及现在流行的几乎所有工具软件,所以 x86 系统在兼容性方面具有无可比拟的优势。ARM 几乎都采用 Linux 的操作系统,而且几乎所有的硬件系统都要单独构建自己的系统,与其他系统不能兼容,这也导致其应用软件不能方便移植,也制约了 ARM 的发展和应用。Android 系统开发后,统一了 ARM 架构电脑的操作系统,使新推出基于 ARM 架构的电脑系统有了统一的、开放式的、免费的操作系统,为 ARM 的发展提供了强大的支持和动力。

  5. 软件开发的方便性及可使用工具的多样性:在软件开发方面, x86 架构比 ARM 架构更容易、更简单、实际成本也更低,同时更容易找到第三方软件(免去自己开发的时间和成本),而且软件移植更容易。

  6. 功耗:在服务器、工作站以及其他高性能运算等应用方面,不考虑功耗和使用环境等条件,x86占了绝对优势;但受功耗、环境等条件制约且工作任务固定的情况下 ARM 就占有很大的优势。

ARM 的技术实现

要想深入理解 ARM 的实现原理是个很大的学习工程,这里一样希望读者读后能对 ARM 起到一个总体的认识,后续可以进一步的深入学习。

汇编语言是机器代码上的一个薄的语法层,它由以二进制编码的指令组成,这是我们的计算机所理解。那么为什么我们不写代码呢?可想而知以二进制来进行 Coding 的话是多么的痛苦,因此我们将编写 ARM 程序集。

但是计算机本身只识别机器码是不能运行汇编代码的,这就需要将汇编代码装到机器代码中的工具 GNU Binutils 项目中的 GNU Assembler。一旦用扩展名 *.s 编写程序就需要把它与其进行组合并与 ld 链接起来: 

我们从最底层来看下,在最底层,电路上有电信号,信号是将电压切换为两个电平来形成的,例如 0 伏(关)或 5 伏(开)。

因为只是我们不能轻易的告诉电路电压,只能选择使用 1/0 来写入开/关的模式,然后我们对 0 和 1 的顺序进行分组,以形成机器码指令,该指令是计算机处理器的最小工作单元,以下是机器语言的示例:

我们知道 ARM 处理器只能对寄存器执行数据处理,所以与存储器的交互有两种:从存储器加载到寄存器,并将值从寄存器存储到存储器,即 ARM 使用加载/存储(LDR 和 STR)模型进行内存访问。

通常 LDR 用于将内存中的内容加载到寄存器中,STR 用于存储寄存器中的内容到存储器地址。我们来举一个基本例子:

第一看的小伙伴或许会一头雾水,下面以一张图来解释下 ARM 是如何和存储器交互的:

计算机组成原理 — ARM 体系结构相关推荐

  1. 太原理工计算机组成原理报告,太原理工《计算机组成原理与体系结构》--实验报告.docx...

    本科实验报告 课程名称:计算机组成原理与体系结构 实验项目: 运算器.移位器.运算存储器. 总线控制.微程序控制器原理 实验地点: 明向计算机学院306实验室 专业班级: 物联1403 学号:2014 ...

  2. 计算机组成原理和体系结构----软考(到处copy)

    计算机组成原理和体系结构 数据的表示 n进制转十进制 十进制转n进制 使用短除法 二进制转八进制和十六进制 原码.反码.补码以及移码 浮点数运算 计算机结构 计算机体系结构分类 - Flynn CIS ...

  3. 【软考系统架构设计师】计算机组成原理与体系结构章节习题集

    [软考系统架构设计师]计算机组成原理与体系结构章节习题集 [计算机组成原理章节习题集第01题:红色] 01.RISC指令系统的特点包括() ①指令数量少 ②寻址方式多 ③指令格式种类少 ④指令长度固定 ...

  4. 【软件设计师】计算机组成原理与体系结构-Flynn分类法

    计算机组成原理与体系结构-Flynn分类法 Flynn分类法 Flynn分类法 Flynn分类法是一种计算机体系结构的分类方法.通过这种分类方法,我们可以把常见的计算机进行分类.分类依据有两个指标,分 ...

  5. 计算机组成原理---冯诺依曼体系结构及性能和功耗

    文章总结摘要自徐文浩老师的<深入浅出计算机组成原理> 文章目录 一.计算机的基本硬件组成 二.冯诺依曼体系结构 性能 计算机的计时单位:CPU 时钟 功耗 并行优化,理解阿姆达尔定律 总结 ...

  6. 【计算机组成原理与体系结构】硬件系统概述

    目录 一.计算机的发展 二.计算机的硬件系统 三.硬件的工作原理 四.计算机系统的层次结构 五.计算机的性能指标 一.计算机的发展 第一代计算机:电子管计算机 第一台电子计算机:ENIAC(1946) ...

  7. 《软件设计师》——计算机组成原理与体系结构

    任何进制转成十进制,使用按权展开法,注意小数点. 十进制转成任意进制,使用短除法. 1个字节有8个位,每位分别用二进制的0和1来表示.分为无符号数和有符号数,下面以有符号数来说明,有符号数最高位是符号 ...

  8. 计算机组成原理 — 冯诺依曼体系结构

    目录 文章目录 目录 世界上第一台专用计算机 - ABC 计算机 图灵完全性 图灵机 穿孔卡和穿孔纸带 香农定理 冯·诺依曼体系结构 冯·诺依曼的瓶颈 世界上第一台专用计算机 - ABC 计算机 历史 ...

  9. 计算机组成原理与体系结构 - 6分

    一.数据的表示 二.计算机结构 三.计算机体系结构分类 四.CISC与RISC 五.流水线 六.存储器

最新文章

  1. ​哪些开发问题最让程序员“头秃”?我们分析了Stack Overflow的11000个问题
  2. 换了你你又会杀了谁(zz)
  3. 【PAT (Advanced Level) Practice】1005 Spell It Right (20 分)
  4. SqlSugar ORM 入门到精通【一】入门篇
  5. ViewTreeObserver简介
  6. IE9下apply的使用方式
  7. 如何创建基本的高级队列之一:创建发送方代码
  8. 掘金浏览器插件安装图文教程
  9. Python数据类型-元组类型
  10. oracle trace详解,Oracle autotrace参数详解
  11. 阶段3 2.Spring_09.JdbcTemplate的基本使用_5 JdbcTemplate在spring的ioc中使用
  12. Layui 表格table自定义每一列的样式
  13. 斐讯手表怎么刷机华为系统_智能手表怎么刷机?
  14. 6-5 统计二叉树叶子结点个数 (10 分)(C语言版)
  15. PCBA方案设计——蓝牙脂肪心率秤方案
  16. Specification查询
  17. 微信小程序ios地图标记点无法点击第二次 markertap
  18. c++#学生平均成绩,学号排序
  19. java 刷新文件夹 代码_UpdateFile.java(更新指定文件夹的文件)作者:阿飞
  20. java 连接teradata_java连接teradata | 学步园

热门文章

  1. node爬取app数据_node爬取拉勾网数据并导出为excel文件
  2. ​厦大等高校研究人员利用卷积神经网络学习脑电地形图表示进行分类
  3. 阿里数学竞赛最年轻金奖得主:15岁读少年班,21岁UC伯克利读博,想毕业就回国...
  4. 不孕不育怎么办?AI帮你提高成功率
  5. 谁是2020年最强Python库?年度Top10出炉
  6. 英伟达RTX 30系列卖得太好,财报业绩创新高,老黄:Arm收购完成时间已确定
  7. 头秃元凶「真面目」首次被揭穿,鹅厂程序员立功了 | Nature子刊
  8. 搜狗听写,现在是录音笔硬件的“操作系统”了
  9. 谷歌砸出10亿美元,要为湾区困难群众,建2万套经适房
  10. vue修改打包后静态资源路径