ARM的体系结构

2024-09-06 06:12
文章标签 体系结构 arm

本文主要是介绍ARM的体系结构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、概念:

ARM体系结构是由英国ARM公司设计的一种精简指令集(RISC)架构,它以其低功耗、高性能和低成本的特点,在嵌入式系统、移动设备、服务器等多个领域得到了广泛应用。ARM体系结构主要定义了处理器的指令集、寄存器结构、内存访问方式等关键元素。

2、指令集

  • ARM指令集:所有指令都占用32位存储空间,代码灵活度高,简化了解码复杂度。执行ARM指令集时,程序计数器(PC)的值每次自增4。
  • Thumb指令集:所有指令都占用16位存储空间,是ARM指令集的功能子集。与等价的ARM代码相比,Thumb指令集可以节省30%~40%以上的存储空间,同时保留32位代码的所有优点。执行Thumb指令集时,PC的值每次自增2。

3、寄存器结构

ARM处理器内部包含多个寄存器,用于存储数据和指令执行过程中的临时结果。这些寄存器可以分为通用寄存器和特殊寄存器两大类。

  • 通用寄存器:用于存储数据、地址等,ARM处理器一般包含多个通用寄存器(如R0~R15),其中R15(PC)是程序计数器,用于存储当前指令的地址。
  • 特殊寄存器:用于控制处理器的状态和行为,如程序状态寄存器(CPSR)用于存储处理器的当前状态(如模式、中断屏蔽位等)。

4、内存访问方式

ARM体系结构采用哈佛结构或改进的哈佛结构,将程序和数据分开独立存放在不同的内存块中,提高了处理器的安全性和稳定性。

ARM处理器支持多种内存访问方式,包括直接访问、DMA(直接内存访问)等。

5、工作模式

ARM处理器具有多种工作模式,以适应不同的应用场景和需求。这些模式包括

用户模式(User)、

系统模式(System)、

快速中断模式(FIQ)、

普通中断模式(IRQ)、

管理模式(SVC)、

数据访问终止模式(Abort)、

未定义指令终止模式(Undef)等。

不同模式下,处理器的行为和权限有所不同。

6、微架构

微架构(micro-architecture)是处理器实现的具体细节,它规定了处理器内部各个部件的具体实现方式、工作方式等。ARM公司根据不同的应用需求,开发出了多种基于ARM体系结构的微架构,如Cortex-A系列、Cortex-R系列、Cortex-M系列等。这些微架构在缓存大小、流水线级数、指令执行周期等方面存在差异,以满足不同应用场景的需求。

这篇关于ARM的体系结构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1141221

相关文章

bash: arm-linux-gcc: No such file or directory

ubuntu出故障重装了系统,一直用着的gcc使用不了,提示bash: arm-linux-gcc: No such file or directorywhich找到的命令所在的目录 在google上翻了一阵发现此类问题的帖子不多,后来在Freescale的的LTIB环境配置文档中发现有这么一段:     # Packages required for 64-bit Ubuntu

编译linux内核出现 arm-eabi-gcc: error: : No such file or directory

external/e2fsprogs/lib/ext2fs/tdb.c:673:29: warning: comparison between : In function 'max2165_set_params': -。。。。。。。。。。。。。。。。。。 。。。。。。。。。。。。。 。。。。。。。。 host asm: libdvm <= dalvik/vm/mterp/out/Inte

Cortex-A7:ARM官方推荐的嵌套中断实现机制

0 参考资料 ARM Cortex-A(armV7)编程手册V4.0.pdf ARM体系结构与编程第2版 1 前言 Cortex-M系列内核MCU中断硬件原生支持嵌套中断,开发者不需要为了实现嵌套中断而进行额外的工作。但在Cortex-A7中,硬件原生是不支持嵌套中断的,这从Cortex-A7中断向量表中仅为外部中断设置了一个中断向量可以看出。本文介绍ARM官方推荐使用的嵌套中断实现机

ARM 虚拟化介绍

0.目录 文章目录 0.目录1.概述 1.1 Before you begin 2.虚拟化介绍 2.1 虚拟化为什么重要2.2 hypervisors的两种类型2.3 全虚拟化和半虚拟化2.4 虚拟机和虚拟CPUs 3.AArch64中的虚拟化4.stage 2 转换 4.1 什么是stage 2 转换4.2 VMIDs4.3 VMID vs ASID4.4 属性整合和覆盖4.5模拟

SylixOS ARM平台下内存对齐访问

1.内存对齐 1.1     内存对齐概要 现代计算机中内存空间都是按照byte划分的,从理论上讲对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 1.2     内存对齐作用和原因 各个硬件平台对存储空间的处理上有很大的不同。一些平

【mysql 体系结构】了解MySQL体系结构

mysql 数据库体系结构图: MySQL 由以下几部分组成: 1、Connectors:不同语言中与 SQL 的交互 show VARIABLES like '%connection%' Variable_name Valuecharacter_set_connection utf8collation_connection utf8_general_ciext

ubuntu22.04 qemu 安装windows on arm虚拟机

ubuntu22.04 qemu 安装windows on arm虚拟机 iso: https://uupdump.net/ https://massgrave.dev/windows_arm_links vivo driver: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/

arm linux lua移植

lua: lua home 1.下载lua源码 lua下载 lua-5.3.4.tar.gz 2.解压: tar xvf lua-5.3.4.tar.gz 3.修改makefile and luaconf.h $修改 lua-5.3.4/Makefile #INSTALL_TOP= /usr/local INSTALL_TOP= $(shell pwd)/out #修改安装目录(当前目录/o

正点原子阿尔法ARM开发板-IMX6ULL(二)——介绍情况以及汇编

文章目录 一、裸机开发(21个)二、嵌入式Linux驱动例程三、汇编3.1 处理器内部数据传输指令3.2 存储器访问指令3.3 压栈和出栈指令3.4 跳转指令3.5 算术运算指令3.6 逻辑运算指令 一、裸机开发(21个) 二、嵌入式Linux驱动例程 三、汇编 我们在进行嵌入式 Linux 开发的时候是绝对要掌握基本的 ARM 汇编,因为 Cortex-A 芯片一

ARM架构(五)——MMU①

1.MMU基础 1.1 为什么要用MMU,为什么要用虚拟地址? MMU的作用,主要是完成地址的翻译,即虚拟地址到物理地址的转换,无论是main-memory地址(DDR地址),还是IO地址(设备device地址),在开启了MMU的系统中,CPU发起的指令读取、数据读写都是虚拟地址,在ARM Core内部,会先经过MMU将该虚拟地址自动转换成物理地址,然后在将物理地址发送到AXI总线上,完成真正