当前位置: 首页 > web >正文

ARM介绍及其体系结构

目录

 一、ARM介绍

(一)公司层面

(二)技术层面

(三)微处理器芯片或产品方面

二、ARM体系结构

(一)指令集

(二)寄存器组织

(三)存储系统

(四)处理器模式

(五)异常处理

(六)架构版本


 一、ARM介绍

        概括起来,ARM具有以下三种含义:

         ARM 是一家公司的名称,1991年成立于英国剑桥,是一个在全球半导体行业技术领先的公司,其主要业务是设计16位和32位嵌入式处理器。

         ARM 是一项技术的名称,是一种Advanced RISC Machines 32位RISC(精简指令集)处理器体系结构,就像8086架构是一种CISC体系结构一样。

         ARM 类微处理器芯片或产品的统称,是采用ARM技术开发的RISC处理器的统称。

(一)公司层面

1、发展历程

        ARM 的历史可以追溯到 1978 年,当时一群工程师在英国剑桥创办了 CPU 公司。

        1985 年,该公司设计出了第一款基于 RISC 架构的处理器 ARM1。1990 年,ARM 公司正式成立,开始专注于芯片设计和知识产权授权业务。此后,ARM 不断推出新的处理器架构和技术,逐渐成为全球领先的半导体知识产权提供商。

2、商业模式

        ARM 公司的核心业务是设计芯片架构和 IP 核,并将其授权给其他半导体公司和电子设备制造商。

        通过这种模式,ARM 无需投入大量资金用于芯片制造,而是专注于技术研发,从而能够以较低的成本推出高性能的芯片设计方案。同时,授权模式也使得 ARM 的技术能够广泛应用于各种领域,实现了快速的市场扩张。

3、市场地位

        在全球芯片市场中,ARM 占据着举足轻重的地位。尤其是在移动设备和物联网领域,ARM 架构的芯片占据了主导地位。

        据统计,全球超过 90% 的智能手机和平板电脑都采用了 ARM 架构的芯片,在物联网设备中,ARM 芯片的市场份额也在不断增长。

(二)技术层面

1、指令集架构

        ARM 采用的是精简指令集计算机(RISC)架构,具有指令集简洁、执行效率高、功耗低等优点。

        与复杂指令集计算机(CISC)架构相比,RISC 架构的指令长度固定,指令格式简单,能够减少处理器的硬件复杂度,提高指令执行速度,同时降低功耗。

2、低功耗设计

        ARM 在低功耗设计方面具有卓越的技术。

        通过采用先进的制程工艺、优化的电路设计和动态电压频率调整(DVFS)等技术,ARM 芯片能够在不同的工作负载下自动调整电压和频率,以实现最佳的功耗性能。这使得 ARM 芯片非常适合用于电池供电的移动设备和物联网设备,能够延长设备的续航时间。

3、多核与并行处理

        为了满足日益增长的计算需求,ARM 不断推出多核处理器架构

        多核处理器可以将多个处理器核心集成在一个芯片上,通过并行处理技术同时执行多个任务,从而提高系统的整体性能。

        此外,ARM 还支持对称多处理(SMP)和非对称多处理(AMP)等多种多核处理技术,能够根据不同的应用场景和任务需求进行灵活配置。

(三)微处理器芯片或产品方面

1、Cortex 系列

        这是 ARM 公司推出的一系列微处理器架构,广泛应用于各种领域。

        Cortex 系列分为多个子系列,如 Cortex - A 系列面向高端应用处理器,用于智能手机、平板电脑、服务器等;Cortex - R 系列则专注于实时应用,如汽车电子、航空航天等;Cortex - M 系列针对微控制器和低功耗应用,如物联网设备、工业控制等。

2、经典 ARM 系列

        在 Cortex 系列之前,ARM 还有一些经典的处理器系列,如 ARM7、ARM9、ARM11 等。

        这些系列的处理器在早期的嵌入式系统和消费电子设备中得到了广泛应用,虽然现在逐渐被 Cortex 系列所取代,但在一些特定的低端应用和 legacy 系统中仍然可见。

3、其他专用处理器

        除了通用的微处理器架构,ARM 还针对一些特定领域推出了专用处理器,如用于数字信号处理的 ARM DSP 处理器,以及用于人工智能和机器学习的 ARM Mali - D 系列处理器等。

        这些专用处理器能够为特定的应用提供更高效的处理能力,满足不同领域的特殊需求。

二、ARM体系结构

        ARM 体系结构是一种精简指令集计算机(RISC)体系结构,具有低功耗低成本高性能等特点,在移动设备、嵌入式系统等领域广泛应用。以下从多个方面对其进行介绍:

(一)指令集

1、特点

        指令长度固定,格式规整,简单且执行效率高。采用 Load - Store 架构,数据处理指令仅对寄存器中的数据进行操作,数据需先从内存加载到寄存器,处理后再存回内存。

2、指令类型

        包括数据处理指令加载存储指令分支指令等。数据处理指令用于算术和逻辑运算;加载存储指令负责在内存和寄存器间传输数据;分支指令用于控制程序流程。

(二)寄存器组织

1、通用寄存器

        数量较多,不同架构有所不同,如 ARMv7 架构有 16 个通用寄存器,用于存储数据和地址,可灵活用于各种操作,提高运算速度和数据处理能力。

2、特殊功能寄存器

        包括程序计数器(PC),指示当前执行指令的地址;状态寄存器(CPSR 和 SPSR),保存处理器状态和标志位,如进位标志、溢出标志等,用于控制程序执行流程和反映运算结果状态。

(三)存储系统

1、内存编址

        采用字节编址方式,可按字节、半字 (16 位)、字 (32 位) 等单位访问内存。通过地址总线和数据总线与内存连接,实现数据的读写操作。

2、缓存机制

        通常包含一级缓存(L1 Cache)和二级缓存(L2 Cache)。

        L1 Cache 分为指令缓存和数据缓存,用于存储近期可能会频繁访问的指令和数据,以减少访问内存的时间,提高处理器性能。

        L2 Cache 则作为 L1 Cache 的补充,容量更大,进一步提高数据访问效率。

(四)处理器模式

1、用户模式

        正常程序执行模式,用户应用程序在此模式下运行,具有有限的访问权限,不能直接访问某些资源和执行特权指令。

2、特权模式

        包括管理模式中止模式未定义模式中断模式快速中断模式等。

        特权模式下处理器可访问所有资源,执行特权指令,用于操作系统内核、中断处理等关键任务。不同特权模式有特定的应用场景和权限,以实现系统的安全和稳定运行。

(五)异常处理

1、异常类型

        包括复位、数据中止、指令预取中止、软件中断、未定义指令、外部中断请求、快速中断请求等。每种异常都有对应的异常向量地址,当异常发生时,处理器会跳转到相应的异常向量地址处执行异常处理程序。

2、处理流程

        首先保存当前程序的状态,将程序计数器(PC)的值保存到相应的寄存器中,然后根据异常类型跳转到对应的异常处理程序入口。异常处理程序执行完毕后,恢复之前保存的程序状态,返回被中断的程序继续执行。

(六)架构版本

        从早期的 ARMv1 发展到现在的 ARMv9 等版本。随着版本的更新,指令集不断扩展和优化,增加了新的指令和功能,如对多媒体处理、浮点数运算、虚拟化技术的支持等;处理器的性能、能效比不断提高,能够满足不同应用场景对计算能力的需求。

        ARM 体系结构凭借其独特的优势,在众多领域取得了巨大的成功,并且不断演进以适应技术发展的需求。

http://www.xdnf.cn/news/3927.html

相关文章:

  • 【Linux我做主】进度条小程序深度解析
  • 浅析AI大模型为何需要向量数据库?【入门基础】
  • 2021年第十二届蓝桥杯省赛B组Java题解
  • KaiwuDB X 遨博智能 | 构建智能产线监测管理新系统
  • Python推导式:简洁高效的数据处理利器
  • PCB实战篇
  • Java 基础语法篇
  • 编程学习思考
  • 基于多策略混合改进哈里斯鹰算法的混合神经网络多输入单输出回归预测模型HPHHO-CNN-LSTM-Attention
  • BUCK电路制作负电源原理
  • Linux网络:bond简介与配置
  • AVL树(2):
  • 0.1 数学错题---基础
  • 嵌入式按键原理、中断过程与中断程序设计(键盘扫描程序)
  • chrome 浏览器怎么不自动提示是否翻译网站
  • C++ STL简介:构建高效程序的基石
  • SwinTransformer 改进:与PSConv结合的创新设计
  • 管理配置信息和敏感信息
  • 前端开发,文件在镜像服务器上不存在问题:Downloading binary from...Cannot download...
  • 在JSP写入Text文件方法指南
  • 【IP101】边缘检测技术全解析:从Sobel到Canny的进阶之路
  • 2023年第十四届蓝桥杯省赛B组Java题解【 简洁易懂】
  • Spark,Idea中编写Spark程序 2
  • 题解:AT_abc245_e [ABC245E] Wrapping Chocolate
  • Go语言中的无锁数据结构与并发效率优化
  • Circular Plot系列(三):【视频教程】复现NCS图表之高大上的单细胞UMAP环形图
  • process terminated with status -1073741515
  • 永久免费的Google Colab 入门指南
  • C语言——寻找子串
  • 动态规划--回文串问题