处理器架构 (四) ARM指令集

发布者:星光小狐狸最新更新时间:2022-09-29 来源: csdn关键字:处理器架构  ARM  指令集 手机看文章 扫描二维码
随时随地手机看文章

ARM 命名规则——指令架构、CPU的历史回顾

arm指令集版本和arm版本

arm有多少指令集_官网

arm的指令集有 ARM64指令集 ARM(32)指令集 THUMB指令集 THUMB-2指令集 NEON指令集 VFP指令集 DSP指令集  Jazelle instruction


// 实际上他们都属于 ARM指令集, 也可以说是 ARM指令集 的扩展


自从armv1 开始,ARM指令集一直就在,且跟随版本变化而不断升级.

从armv4中的 ARM7E 系列开始就支持增强型DSP指令集,后续命名只要有符号E,就代表支持增强型DSP指令集.

从armv4中的 ARM7TDMI 开始就支持 thumb指令集(命名中带T就表示支持thumb指令集)

armv5 已经支持vfp

从armv6(ARM11系列) 开始就支持(armv5不支持)SIMD,且支持 vfpv2(不知道哪个版本先支持的vfp,应该命名中带有F,就支持VFP)

从armv7(cortex-a系列) 开始就支持(armv6不支持)NEON(高级SIMD),且支持vfpv3(a7)和vfpv4(a15),不再有SIMD术语,NEON只适用于 ARM Cortex-A 类处理器

从armv6-m 开始就支持(armv6-ar不支持)(之前版本不支持)Thumb-2 , 向后不再有thumb术语


Jazelle instruction 不开放

For the Jazelle instruction set, contact ARM Limited


下图为 ARM官网文档 中的图,与上述有出入,待验证

在这里插入图片描述

ARM指令集与armv8


ARM指令具有固定宽度的4字节编码,需要4字节对齐。 


ARMv8指令集分为Aarch64和Aarch32。


Aarch32与ARMv7基本相同,不同处的比较

多了一些vfp的指令

armv7的软件模拟实现改为Aarch32的硬件支持,可以说是靠着后者实现对Aarch32的向前兼容。


Aarch64是升级的那一部分,相较于Aarch32比较,总体来说Aarch64更规整了,也更简单。

指令编码不同(虽然也是32位)

寄存器多了

寄存器变宽了(64位)

功能寄存器和通用寄存器分开(除了x30也是rl)

没有THUMB

架构上的变化:如exception level,stack alignment 等。


THUMB指令集 & THUMB-2指令集

ARM,Thumb和Thumb 2指令编码有什么区别?

THUMB指令集 2-4 字节

Thumb指令具有可变长度(2或4字节,现在称为“窄”和“宽”)编码,需要2字节对齐 – 大多数指令具有2字节编码,但bl和blx始终具有4字节编码*


Thumb-2 是Thumb 指令集的增强指令集,并且由ARMv6T2 和ARMv7M体系 结构定义。 

Thumb-2 提供的功能包含几乎与ARM指令集(32位指令集)所有的功能

thumb-2 包含thumb(16位指令集)的功能.

16位指令首次与32位指令并存.

在Thumb状态下支持thumb-2(arm指令集和thumb指令集的综合版本)无需烦心地把处理器状态在Thumb和ARM之间来回的切换了。


VFP指令集

VFP–ARM浮点体系结构机介绍

浮点生成选项

浮点指令

ARM架构big.LITTLE、Thumb、Jazelle、TrustZone、VFP、SIMD、NOEN等常用术语解析

ARMv8比ARMv7升级在哪?

armv6 是有 VFP的 , 负责  标量浮点运算 , 向量浮点运算  // SIMD 负责 向量整数运算

armv7 有FP , 且 FP  只 负责 标量浮点运算  //  Advanced SIMD(又称NEON) 负责 向量(浮点与整数)运算  // SIMD  升级成了 Advanced SIMD

armv8 有FP , 且 FP  只 负责 标量浮点运算  //  Advanced SIMD(又称NEON) 负责 向量(浮点与整数)运算 

image.png

DSP指令集 & SIMD指令集 & NEON指令集

DSP & SIMD & NEON

ARM DSP & SIMD技术简介

NEON-Advanced SIMD vs. SIMD

ARM NEON常用函数总结

ARM平台NEON指令的编译和优化

arm neon 指令集

ARM Neon 指令 解释

ARM NEON 编程系列2 - 基本指令集

ARM NEON 基本指令集介绍

armv6  SIMD 负责 向量整数运算 //  VFP的 , 负责  标量浮点运算 , 向量浮点运算

armv7 Advanced SIMD(又称NEON) 负责 向量(浮点与整数)运算  // SIMD  升级成了 Advanced SIMD // FP  只 负责 标量浮点运算  

armv8 Advanced SIMD(又称NEON) 负责 向量(浮点与整数)运算  // FP  只 负责 标量浮点运算 


image.png

armv-8

armv8 异常模型

armv8 内存管理

armv8内存模型

armv8指令集架构

armv8.x扩展

指令集应该包括什么内容

*指令* 是操作方法

指令处理的数据在 *寄存器* 和 *内存* 里面.

指令执行的时候会出现一些非正常情况,叫做 *异常*

异常发生之后硬件怎么做动作,我们需要知道.

硬件给我们相应的接口(将要运行的地址(PC寄存器的值)和其他寄存器(包括出错的状态)),然后我们用软件来弥补

执行执行过程中会有一个 译码的过程. 确定操作对象所在位置 会涉及到 *寻址方式*

1.分解指令操作(确定操作内容) 2.确定操作对象(操作数)所在位置(寄存器,存储器,输出输出设备)


寄存器

指令

异常处理

汇编

汇编有什么用途

许多在应用程序级别编写代码的程序员几乎没有理由使用汇编语言编写代码。

但是,下面的情况下必须要用到汇编

1. 需要高度优化的代码 , 例如编写编译器时

2. 需要低层次地使用 C 语言中没有直接可用的特性的情况下

3. 在引导代码的部分、设备驱动程序或执行操作系统开发时

4. 在调试 C 程序时能够读取分解的代码是很有用的,特别是理解汇编指令和 C 语句之间的映射


汇编怎么用

可以参考 

1.ARM 编译器工具链汇编器参考手册(ARM Compiler Toolchain Assembler Reference )

2.ARM 架构参考手册(ARM Architecture Reference Manual)。


关键字:处理器架构  ARM  指令集 引用地址:处理器架构 (四) ARM指令集

上一篇:处理器架构 (五) armv4v5v6 架构参考手册(1) 总介及cpu架构
下一篇:ARM cortex-M4 DAP 访问 方法总结

推荐阅读最新更新时间:2024-11-20 10:19

ARM Linux:usr模式转为svc模式的实现原理
大家都知道linux的应用程序要想访问内核必须使用系统调用从而实现从usr模式转到svc模式。下面咱们看看它的实现过程。 系统调用是os操作系统提供的服务,用户程序通过各种系统调用,来引用内核提供的各种服务,系统调用的执行让用户程序陷入内核,该陷入动作由swi软中断完成。 at91rm9200处理器对应的linux2.4.19内核系统调用对应的软中断定义如下: #if defined(__thumb__) //thumb模式 #define __syscall(name) / “push {r7}/n/t” / “mov r7, #” __sys1(__NR_##name) “/n/t” / “swi 0/n/t” / “
[单片机]
​全新合作联盟:IAR与Edge Impulse联手为全球客户提供AI与ML整合功能
Edge Impulse的先进技术已成功与市场领先的开发解决方案IAR Embedded Workbench集成,助力全球嵌入式开发者将ML和AI融入工作流程 中国上海– 2023 年 10 月 26 日 – 嵌入式开发软件和服务的全球领导者 IAR 宣布与 领先的 人工智能( AI ) 平台供应商 Edge Impulse 达成商业合作伙伴关系。这一合作基于 Edge Impulse 平台与 IAR Embedded Workbench 的 集成 ,旨在进一步促进双方产品在工作流程中的紧密整合。 工程师们,特别是那些渴望在嵌入式开发工作流程中高效地融合机器学习 ( M L ) 与人工智能技术的
[嵌入式]
原子操作--ARM架构
说明:内核版本号为3.10.101 一、ARM架构中的原子操作实现   在原子操作(一)中我们已经提到,各个架构组织为“复仇者”联盟,统一了基本的原子变量操作,这里我们就拿atomic_dec(v)来看看通天ARM的实现。 首先是atomic_dec(v)原子减一操作的宏定义。这个宏的定义在文件arch/arm/include/asm/atomic.h中: #define atomic_dec(v) atomic_sub(1, v)   对于ARM架构不同的版本,stomic_sub(i,v)的实现是不一样的。具体而言,在ARMv6之前的版本定义如下: #define atomic_sub(i, v)
[单片机]
嵌入式ARM如何中断调试
嵌入式软件开发流程 参照嵌入式软件的开发流程。第一步:工程建立和配置。第二步:编辑源文件。第三步:工程编译和链接。第四步:软件的调试。第五步:执行文件的固化。 在整个流程中,用户首先需要建立工程并对工程做初步的配置,包括配置处理器和配置调试设备。编辑工程文件,包括自己编写的汇编和C语言源程序,还有工程编译时需要编写的链接脚本文件,调试过程中需要编写存储区映像文件和命令脚本文件,以及上电复位时的程序运行入口的启动程序文件。 对后四种文件的理解很重要,其作用解释如下。 (1) 链接脚本文件:在程序编译时起作用。该文件描述代码链接定位的有关信息,包括代码段,数据段,地址段等,链接器必须使用该文件对整个系统的代码做正确的定位。在S
[单片机]
嵌入式<font color='red'>ARM</font>如何中断调试
英伟达收购arm没那么容易,英政府将介入
英国政府可能将介入英伟达对Arm发起的收购案,并存在阻止这笔交易的可能。上个月,英伟达正式宣布将收购Arm,预计这笔交易会在18个月完成。需要重要的是,这笔交易仍需经过美国、英国、中国和欧盟在内的许多国家监管机构的批准。值得一提的是,包括英特尔、高通、特斯拉均反对此次收购。事实上,除了前面提及的三家公司外,包括苹果、博通、NXP、意法半导体与联发科等大厂都是Arm的授权客户,这些企业都视NVIDIA为竞争对手... 据Thisismoney报道,随着反对声浪越来越大,英国政府近日正审慎评估因英伟达收购芯片设计公司Arm后可能带来的影响。反对这一交易的人士认为,该交易存在潜在的就业风险,还有可能威胁Arm在全球的地位。
[半导体设计/制造]
英伟达收购<font color='red'>arm</font>没那么容易,英政府将介入
Arm助力韩国电力Behind the Meter智慧公用事业项目
北京 – 2018年5月17日 – Arm今日宣布公司已成为韩国最大的公用事业公司——韩国电力(KEPCO)的合作伙伴,推动韩国电力旗下的计量系统进行改造。作为多年合作协议的一部分,Arm将提供物联网软件及设备管理、硬件IP和咨询服务,助力韩国电力推出全新的智能公用事业用例。 Arm正在与韩国电力合作,拓展公司现有的计量系统。目前,该系统主要通过有线网络连接家用智能电表。Arm®Mbed™物联网设备管理平台可提供安全连接、无线配置和设备管理。无论是公有云还是私有云,本地环境还是混合环境,该解决方案能为各类机构提供管理所有物联网设备所需的灵活性。  “物联网复杂性是各类机构面临的主要挑战,他们需要能够在硬件和软件两方面提供安
[半导体设计/制造]
32位ARM嵌入式处理器的调试技术
摘要:针对32位ARM处理器开发过程中调试技术的研究,分析了目前比较流行的基于JTAG的实时调试技术,介绍了正在发展的嵌入式调试标准,并展望期趋势。 关键词:嵌入式 调试 处理器 JTAG Nexus ARM 随着对高处理能力、实时多任务、网络通信、超低功耗需求的增长,传统8位机已远远满足不了新产品的要求,高端嵌入式处理器已经进入了国内开发人员的视野,并在国内得到了普遍的重视和应用。ARM内核系列处理器是由英国ARM公司开发授权给其他芯片生产商进行生产的系统级芯片。目前在嵌入式32位处理器市场中已经达到70%的份额。笔者在对三星公司的ARM7芯片技术调试的过程中,对这些高端嵌入式系统的调试技术进行了总结。 传统的调试工具及方法存在过
[嵌入式]
基于ARM的嵌入式工业控制器的研究
本论文以嵌入式控制系统中的GUI系统为研究对象,从理论、技术、设计与应用三个层次进行研究,并将重点放在Qt/Embedded系统之上。从实际应用角度出发,分析了当前几种比较流行的嵌入式操作系统,介绍了各自的特点。重点介绍了Linux嵌入式操作系统。文中以嵌入式Linux下的q图形编程为主线。详细介绍了q开发环境的搭建,q设计原理,信号与槽机制,以及Qt Designer的设计开发流程。
[模拟电子]
基于<font color='red'>ARM</font>的嵌入式工业控制器的研究
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved