ARM内核:嵌入式时代的核心引擎

news2025/2/4 1:09:37

引言

在当今智能设备无处不在的时代,ARM(Advanced RISC Machines)处理器凭借其高性能、低功耗的特性,成为智能手机、物联网设备、汽车电子等领域的核心引擎。作为精简指令集(RISC)的典范,ARM核通过独特的架构设计和技术创新,重塑了芯片产业的格局。

本文将从技术特点、工作模式、发展历程等方面,全面解析ARM核的核心竞争力

CPU内核概述

CPU(Central Processing Unit,中央处理器)是计算机或其他电子设备的核心部件,主要负责执行程序指令、处理数据和控制计算机的其他硬件部件。

CPU的主要组成部分

控制单元(Control Unit, CU)控制单元负责从内存中读取指令,并将其解码为一系列控制信号,以指导其他部件完成相应的操作。它还负责管理指令的执行顺序和流程。

算术逻辑单元(Arithmetic Logic Unit, ALU)ALU是CPU的核心部分,负责执行所有算术运算(如加法、减法、乘法、除法)和逻辑运算(如与、或、非、异或)。它的性能直接影响CPU的整体处理能力。

寄存器组(Registers)寄存器是CPU内部的高速存储单元,用于暂存指令、数据和地址。常见的寄存器包括:

  • 状态寄存器(如CPSR、SPSR):存储CPU的状态信息。
  • 程序计数器(PC):存储下一条要执行的指令的地址。
  • 指令寄存器(IR):存储当前正在执行的指令。
  • 通用寄存器(如R0-R15):用于存储用户数据和中间结果。

缓存(Cache)缓存是位于CPU和主内存之间的高速存储器,用于减少CPU访问内存的延迟。缓存通常分为一级缓存(L1 Cache)和二级缓存(L2 Cache),有些CPU还配备了三级缓存(L3 Cache)。缓存的大小和速度对CPU的性能有重要影响。

总线接口单元(Bus Interface Unit, BIU)BIU负责管理CPU与外部设备(如内存、输入输出设备)之间的数据传输。它通过总线与这些设备通信,确保数据的高效传输。

CPU的分类:

按字长分类

  • 8位微处理器:早期的微处理器,例如Intel 8080,主要用于简单的嵌入式系统。
  • 16位微处理器:例如Intel 8086,是早期个人计算机(如IBM PC)的核心部件。
  • 32位微处理器:例如Intel Pentium系列、ARM Cortex-A系列,广泛应用于现代计算机和移动设备。
  • 64位微处理器:例如Intel Core系列、AMD Ryzen系列、苹果M系列芯片,支持更大的内存寻址空间和更高的性能,是当前主流的处理器架构。

按架构分类

  • CISC(Complex Instruction Set Computer):复杂指令集计算机,指令集庞大且复杂,单条指令可执行多步操作(如内存存取、算术运算、逻辑判断等),直接支持高级语言操作。
  • RISC(Reduced Instruction Set Computer):精简指令集计算机,指令集简洁且长度固定,通过组合简单指令完成复杂任务,强调硬件流水线优化和单周期指令执行。

CPU的主要性能指标

  • 主频(Clock Speed)

主频是指CPU的时钟频率,单位是赫兹(Hz)。主频越高,CPU在单位时间内可以执行的指令数量越多。例如,3.5 GHz的CPU每秒可以执行35亿次时钟周期。

  • 核心数(Cores)

现代CPU通常包含多个核心(多核处理器),每个核心都可以独立执行指令。多核处理器可以提高多任务处理能力和并行计算能力。例如,四核处理器可以同时处理四个任务,而八核处理器可以处理更多任务。

  • 缓存大小(Cache Size)

缓存的大小直接影响CPU访问数据的速度。较大的缓存可以减少CPU访问主内存的次数,从而提高性能。例如,L1缓存通常为几十KB,L2缓存为几百KB到几MB,L3缓存为几MB到几十MB。

  • 功耗(Power Consumption)

CPU的功耗是衡量其能效的重要指标。低功耗的CPU更适合移动设备和嵌入式系统,而高性能的CPU通常功耗较高,适合桌面计算机和服务器。

CPU架构

ARM架构:

ARM架构的特点:

  • 指令简单高效:ARM架构采用精简指令集,指令数量少且简单,大多数指令在一个时钟周期内完成,提高了处理器的执行效率。
  • 低功耗设计:ARM架构注重低功耗,特别适合移动设备、嵌入式系统和物联网设备,能够在较低功耗下提供较高的计算性能。
  • 高集成度:ARM芯片通常采用SoC(System on Chip)设计,将CPU、GPU、通信模块、存储控制器等多种功能集成在同一芯片上,降低了成本和设备尺寸。

ARM架构的形成:

ARM架构最初由Acorn计算机公司在1985年开发,用于其个人计算机。1990年,Acorn与苹果和VLSI Technology合作成立了ARM公司(Advanced RISC Machines)。1991年,ARM公司推出了第一款商业化的ARM架构处理器——ARM6。

发展:

  • Cortex系列:2005年,ARM公司推出了Cortex系列处理器,分为A、R和M三个系列,分别针对不同的市场:

    • Cortex-A系列:应用程序型处理器,适用于智能手机、平板电脑和服务器。

    • Cortex-R系列:实时型处理器,适用于嵌入式系统和实时应用。

    • Cortex-M系列:微控制器型处理器,适用于微控制器和物联网设备。

  • ARMv8架构:2011年,ARM公司推出了ARMv8架构,支持64位计算,进一步提升了性能和能效。

  • ARMv9架构:2021年,ARM公司推出了ARMv9架构,支持人工智能、机器学习和安全特性,为未来的高性能计算和物联网应用奠定了基础。

ARM公司不直接生产芯片,而是将其架构授权给其他公司,允许它们在ARM架构基础上设计和制造处理器。这种模式使得ARM架构能够快速扩展到多个领域,并形成了丰富的生态系统。

SoC(System on Chip)

SOC(System on Chip,片上系统)是一种超大规模集成电路,它将整个信息处理系统集成到一块芯片上。简单来说,SOC芯片是在中央处理器(CPU)的基础上,扩展了多种专用接口和功能模块,形成了一个完整的系统级芯片。它相当于一个微型的“计算机”,能够完成复杂的任务和功能。
SOC(System on Chip)是现代电子设备的核心部件,它将多个功能模块集成到一块芯片上,实现了高性能、低功耗、小尺寸和高集成度的设计。

MIPS架构

MIPS(Million Instructions Per Second)是由美国MIPS技术公司开发的RISC(精简指令集)架构,专注于高性能32/64位处理器设计,强调指令效率与低功耗。

技术特点:
  • 高效流水线:支持5级流水线,优化指令吞吐量。
  • 可扩展性:提供MIPS32(32位)与MIPS64(64位)版本,适应不同计算需求。
  • 多线程支持:部分型号支持多线程技术(如MIPS MT),提升并行处理能力。

IP授权模式:与ARM类似,授权处理器内核设计给第三方厂商(如龙芯、联发科)。

PowerPC架构

PowerPC(Performance Optimization With Enhanced RISC)是IBM联合苹果、摩托罗拉开发的RISC架构,源自IBM POWER系列,强调高性能与实时性。

技术特点
  • 超标量设计:支持多指令并行发射,提升计算效率。
  • 高可靠性:内置ECC校验与冗余设计,适用于关键任务场景。
  • 灵活扩展:支持AltiVec向量指令集(类似SIMD),加速多媒体处理。
代表厂商
  • IBM:Power系列处理器主导高端服务器市场。
  • 恩智浦(NXP):QorIQ T系列用于汽车网络与网关控制器。

Intel x86架构

x86是Intel主导的CISC(复杂指令集)架构,以高复杂度指令与向后兼容性著称,长期统治PC与服务器市场。

技术特点
  • 复杂指令集:单指令可完成内存操作、算术运算等多步任务。
  • 微指令转换:现代x86处理器将CISC指令拆解为类RISC微指令(μops),提升执行效率。
  • 多核与超线程:支持多核并行与超线程技术(如Intel Hyper-Threading)。

RISC-V架构

RISC-V是加州大学伯克利分校开发的第五代开源RISC架构,以模块化设计打破专利壁垒,允许自由定制与免授权费使用。

技术特点
  • 模块化指令集:基础指令集(RV32I/RV64I) + 可选扩展(如浮点、向量、加密)。
  • 精简高效:固定长度指令(32/64位)与单周期执行,适合低功耗场景。
  • 开放生态:全球社区协作推动工具链(GCC、LLVM)与OS(Linux、FreeRTOS)适配。
代表厂商

平头哥半导体:玄铁系列芯片赋能阿里云IoT与AI基础设施。

SiFive:提供RISC-V IP核定制服务,客户包括NASA与SK海力士。

ARM架构版本及特点 

内核版本

  • ARMv1: 最早的ARM架构版本,主要用于简单的32位设备。

  • ARMv2: 增加了乘法指令,改进了性能。

  • ARMv3: 支持32位内存地址空间,增加了长乘法指令。

  • ARMv4: 引入了Thumb指令集,优化了代码密度。

  • ARMv5: 增加了Jazelle DBX技术,支持Java字节码执行。

  • ARMv6: 支持SIMD指令,改进了多媒体处理能力。

  • ARMv7: 引入了TrustZone技术,增强了安全性。

  • ARMv8: 支持64位计算,提升了性能和内存寻址能力。

  • ARMv9: 最新版本,增强了安全性和AI处理能力。

ARMv7-A/R:

  • TrustZone 安全扩展:一种安全技术,提供了硬件级别的安全隔离,用于保护敏感数据和代码,支持安全支付和设备管理等应用。

  • VFPv3/v4 浮点运算:向量浮点处理器的第三版和第四版,提供了更高性能的浮点运算能力。

  • NEON SIMD 加速:NEON(New Embedded Operating Narrow)是ARM的SIMD扩展,用于加速多媒体和信号处理任务。

  • A32/T32 指令集:A32是ARM的32位指令集,T32是Thumb-2指令集的32位版本,两者都旨在提高代码密度和性能。

  • Scalar FP (SP/DP):标量浮点运算,支持单精度(SP)和双精度(DP)浮点数。

ARMv8-A:

  • AArch64 (64位支持):ARM的64位架构,提供了更大的地址空间和更高的性能。

  • A64 指令集:ARMv8-A的64位指令集,支持更复杂的计算任务。

  • Adv SIMD (SP+DP Float):高级SIMD扩展,支持单精度和双精度浮点运算,用于高性能计算。

  • 虚拟化扩展 (Hyp模式):提供了虚拟化支持,允许在单个物理处理器上运行多个操作系统实例。

  • CRYPTO 加密指令集:提供了硬件加密和解密指令,增强了数据安全性。

ARMv9:

  • SVE2 向量扩展:可扩展向量扩展(Scalable Vector Extensions)的第二版,提供了更高性能的向量处理能力,适用于高性能计算和机器学习。

  • 机密计算架构:增强了安全性,提供了保护数据和代码免受未授权访问的机制。

  • 增强AI加速:针对人工智能和机器学习工作负载进行了优化,提高了AI应用的性能。

Thumb技术

  • Thumb模式ARM处理器的一种16位指令模式,旨在提高编码密度,减少内存占用,特别是在内存带宽有限的嵌入式系统中。ARM指令集是32bit的指令集,在Thumb模式执行的指令集是16bit的Thumb指令集不是完整的指令集,它是ARM指令集的子集。但是Thumb 指令具有更高的代码密度,即占用存储空间小,仅为ARM代码规格的65%,但其性能却下降的很少。所 以,Thumb指令集使ARM处理器能应用到有限的存储带宽,并且,代码密度要求很高的嵌入式系统中去。

  • ARM7TDMI:首款支持Thumb技术的处理器。

  • ARM9及后续系列:包括XScale,都集成了Thumb技术。

Thumb-2技术

  • ARM1156核心:Thumb-2技术首次出现,扩展了Thumb指令集,增加了32位指令,提高了性能。

  • 目标:结合Thumb的编码密度和ARM指令集的性能。

Jazelle技术

Jazelle是ARM体系结构的一种相关技术,用于在处理器指令层次对JAVA加速。ARM的Jazelle技术使 Java加速得到比基于软件的Java虚拟机(JVM)高得多的性能,和同等的非Java加速核相比功耗降低80%。
  • ARM926EJ-S:首款支持Jazelle技术的处理器,以字母'J'标示。

NEON (Advanced SIMD)技术

SIMD,即 single instruction multiple data,单指令流多数据流,也就是说一次运算指令可以执行多个数据流,从而提高程序的运算速度,实质是通过 数据并行 来提高执行效率
  • 进阶SIMD扩展集:提供64和128位的SIMD指令集,加速多媒体和信号处理。

ARMv7之后,将SIMD升级为 NEON技术 相当于扩展了浮点运算向量表 有一个VFS的二维向量表,将数 据存放到这个表中,cpu可以一次性取某个区域进行执行,NEON就是SIMD的升级 相当于将上面SIMD执 行指令的表格长度与宽度进行扩展,提升了数据集的压缩算法。 NENO可以进行指令扩展来实现相关功 能,但我们一般不使用,如果做一些GPU相关的工作就需要利用NENO的浮点运算特性。 可用于加速多 媒体和信号处理算法(如视频编码/解码)、2D/3D图形、游戏、音频和语音处理、图像处理技术、电话 和声音合成,其性能至少为ARMv5的3倍,为ARMv6 SIMD性能的两倍 在SIMD的基础上提升了两倍效 率 所以运算速度的加快不是单纯的提升CPU的频率 通过这两个技术提升指令执行的方式,还有其他的 方法(比如增加二级缓存)

 VFP (Vector Floating-point Coprocessor for ARM)技术

ARM架构中用于增强浮点运算能力的协处理器。它提供单精度和双精度浮点运算能力,完全兼容ANSI/IEEE Std 754-1985二进制浮点算术标准。VFP技术主要应用于需要浮点运算的领域,如PDA、智能手机、语音压缩与解压、3D图像处理、数字音效、打印机、机顶盒和汽车应用等。

  • SIMD支持:有助于降低编码大小并提高效率。

  • VFPv2是针对ARMv5TE、ARMv5TEJ和ARMv6体系结构中ARM指令集的可选扩展。VFPv3则是对ARMv7-A和ARMv7-R配置文件中ARM、Thumb和ThumbEE指令集的可选扩展,实现了32个或16个双字长寄存器。VFPv4或VFPv4-D32在Cortex-A12和A15 ARMv7处理器上实现,并且Cortex-A7可选地在具有Neon的FPU情况下拥有VFPv4-D32。VFPv4增加了半精度支持作为存储格式以及融合乘加指令。

安全性扩展TrustZone

TrustZone是ARM针对消费电子设备设计的一种硬件架构,其目的是为消费电子产品构建一个安全框架来抵御各种可能的攻击。
TrustZone在概念上将SoC的硬件和软件资源划分为安全(Secure World)和非安全(Normal World)两个世界,所有需要保密的操作在安全世界执行(如指纹识别、密码处理、数据加解密、安全认证等)其余操作在非安全世界执行(如用户操作系统、各种应用程序等)。

ARM核工作模式 

Privilege level(权限级别) 

 安全状态(Secure State)
  • 特权级别划分

    • PL0:仅 User模式(运行非特权应用程序)。

    • PL1:除User模式外的 所有其他模式(如FIQ、IRQ、Supervisor等)

非安全状态(Non-secure State)
  • 特权级别划分

    • PL0User模式(非特权应用程序)。

    • PL1除User和Hyp外的所有模式(如FIQ、IRQ、Supervisor等)。

    • PL2Hyp模式(需支持虚拟化扩展,Hypervisor专用)。

 ARM 处理器核的工作模式(Processor Modes)是其架构的重要特性之一,用于支持不同的权限级别和异常处理机制。

FIQ(快速中断模式)

IRQ(普通中断模式)

Supervisor(管理模式)

Monitor(监视器模式)

Abort(中止模式)

Hyp(虚拟机管理模式)

With Security Extensions(需要安全扩展)

With Virtualization Extensions(需要虚拟化扩展) 

正常模式(Normal Modes)
  • 用途:处理常规任务或中断。

    • User模式(usr)

      • 特点

        • 运行应用程序的非特权代码,无法直接访问硬件资源。

        • 通过系统调用(SVC指令)切换到特权模式(如Supervisor模式)。

        • 支持安全(Secure)和非安全(Non-secure)状态。

    • System模式(sys)

    • 特点

      • 使用与User模式相同的寄存器组,但运行特权级代码(如操作系统内核任务)。

      • 适用于需要低权限但需访问特权资源的场景。

 异常模式(Exception Modes)
  • 用途:处理硬件异常、中断或安全扩展功能。

    • FIQ模式(fiq)

      • 特点

        • 处理高优先级中断(Fast Interrupt Request),响应速度最快。

        • 拥有专用寄存器(R8-R14),减少上下文保存开销。

        • 适用于实时性要求高的外设(如DMA控制器)。

    • IRQ模式(irq)

      • 特点

        • 处理普通中断(Interrupt Request),优先级低于FIQ。

        • 自动保存部分寄存器状态,便于快速恢复执行流。

    • Supervisor模式(svc)

      • 特点

        • 默认的复位启动模式,处理系统调用(SVC指令)。

        • 操作系统内核的核心运行环境,可访问所有系统资源。

    • Abort模式(abt)

      • 特点

        • 处理内存访问异常(如缺页、非法地址访问)。

        • 保存异常地址和状态寄存器(如FAR、IFSR/DFSR)。

  • Undefined模式(und)

    • 特点

      • 处理未定义指令异常(如执行未知操作码)。

      • 通常用于软件仿真或动态指令扩展。

  • Monitor模式(mon)

    • 特点

      • 管理安全与非安全状态的切换(通过SMC指令触发)。

      • 隔离敏感操作(如加密、密钥管理)与普通应用程序。

  • Hyp模式(hyp)

    • 特点

      • 虚拟机监控程序(Hypervisor)的专用模式。

      • 管理虚拟机的创建、调度和资源隔离。

(1)User mode
An operating system runs applications in User mode to restrict the use of system resources.
Software executing in User mode executes at PL0. Execution in User mode is sometimes described as unprivileged execution.
操作系统在用户模式下运行应用程序以限制系统资源的使用。在用户模式下执行的软件在PL0执行。在用户模式下执行有时被描述为非特权执行。
Application programs normally execute in User mode, and any program executed in User mode:
Makes only unprivileged accesses to system resources, meaning it cannot access protected system resources.
Makes only unprivileged access to memory.
Cannot change mode except by causing an exception,
应用程序通常在用户模式下执行,而在用户模式下执行的任何程序:
仅对系统资源进行非特权访问,这意味着它无法访问受保护的系统资源。
仅对内存进行非特权访问。
除非引起异常,否则无法更改模式,
用户模式是用户程序的工作模式,它运行在操作系统的用户态,它没有权限去操作其它硬件资源,只能执行处理自己的数据,也不能切换到其它模式下,要想访问硬件资源或切换到其它模式只能通过软中断或产生异常。
(2)System mode
Software executing in System mode executes at PL1. System mode has the same registers available as User mode, and is not entered by any exception.
在系统模式下执行的软件在PL1上执行。系统模式具有与用户模式相同的寄存器,并且不能通过任何异常进入系统模式是特权模式,不受用户模式的限制。用户模式和系统模式共用一套寄存器,操作系统模式下可以方便的访问用户模式的寄存器,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。
(3)Supervisor mode
Supervisor mode is the default mode to which a Supervisor Call exception is taken. Executing a SVC (Supervisor Call) instruction generates a Supervisor Call exception, that is taken to Supervisor mode. A processor enters Supervisor mode on Reset.
Supervisor模式是采取Supervisor Call异常的默认模式。执行SVC(Supervisor Call)指令会生成 Supervisor Call异常,该异常被带到Supervisor模式。处理器在复位时进入Supervisor模式。
管理模式是CPU上电后默认模式,因此在该模式下主要用来做系统的初始化,软中断处理也在该模式下。当用户模式下的用户程序请求使用硬件资源时,通过软件中断进入该模式。
(4)Abort mode
Abort mode is the default mode to which a Data Abort exception or Prefetch Abort exception is taken.
中止模式是数据中止异常或预取中止异常的默认模式。
中止模式用于支持虚拟内存或存储器保护,当用户程序访问非法地址,没有权限读取的内存地址时,会进入该模式,linux下编程时经常出现的segment fault通常都是在该模式下抛出返回的。
(5)Undefined mode
Undefined mode is the default mode to which an instruction-related exception, including any attempt to execute an UNDEFINED instruction, is taken.
未定义模式是与指令相关的异常(包括任何执行未定义指令的尝试)采取的默认模式。
(6)FIQ mode
FIQ mode is the default mode to which an FIQ interrupt is taken.
FIQ模式是采用FIQ中断的默认模式。
快速中断模式是相对一般中断模式而言的,它是用来处理对时间要求比较紧急的中断请求,主要用于高速数据传输及通道处理中。
(7)IRQ mode
IRQ mode is the default mode to which an IRQ interrupt is taken.
IRQ模式是采用IRQ中断的默认模式。
一般中断模式也叫普通中断模式,用于处理一般的中断请求,通常在硬件产生中断信号之后自动进入该模式,该模式为特权模式,可以自由访问系统硬件资源。
(8)Hyp mode
Hyp mode is the Non-secure PL2 mode, implemented as part of the Virtualization Extensions. Hyp mode is entered on taking an exception from Non-secure state that must be taken to PL2
Hyp模式是作为虚拟化扩展的一部分实现的非安全PL2模式。Hyp模式在从非安全状态获取必须带到PL2的异常时进入
The Hypervisor Call exception and Hyp Trap exception are exceptions that are implemented as part of the Virtualization Extensions, and that are always taken in Hyp mode.
Hypervisor Call异常和Hyp Trap异常是作为虚拟化扩展的一部分实现的异常,并且始终在Hyp模式下执行。
In a Non-secure PL1 mode, executing a HVC (Hypervisor Call) instruction generates a Hypervisor Call exception.
在非安全PL1模式下,执行HVC(Hypervisor Call)指令会生成Hypervisor Call异常
(9)Monitor mode
Monitor mode is the mode to which a Secure Monitor Call exception is taken. In a PL1 mode, executing an SMC (Secure Monitor Call) instruction generates a Secure Monitor Call exception.
监视器模式是采用安全监视器调用异常的模式。在PL1模式下,执行SMC(安全监视器调用)指令会生成安全监视器调用异常。
Monitor mode is a Secure mode, meaning it is always in the Secure state, regardless of the value of the SCR(secure config register).NS bit. Software running in Monitor mode has access to both the Secure and Non-secure copies of system registers. This means Monitor mode provides the normal method of changing between the Secure and Non-secure security states.
监视器模式是一种安全模式,这意味着无论SCR.NS位的值如何,它都始终处于安全状态。在监视器模式下运行的软件可以访问系统寄存器的安全和非安全副本。这意味着监视器模式提供了在安全和非安全安全状态之间更改的正常方法。

ARM核寄存器介绍

通用寄存器

ARM处理器通常有16个32位的通用寄存器,编号从R0到R15

  • R0-R10:普通的通用寄存器,用于存放用户的数据。在函数调用和日常计算中使用。

  • R11 (fp: frame pointer):帧指针寄存器,用于记录当前函数调用的栈帧的起始地址。在访问局部变量和执行函数调用时非常有用。

  • R12 (ip: intra-procedure-call scratch register):在函数内部调用过程中用作临时寄存器,可以用来临时存储数据,如保存sp(栈指针)。

  • R13 (sp: stack pointer):栈指针寄存器,指向当前栈顶的位置。栈是用于存储函数调用信息、局部变量和临时数据的数据结构。

  • R14 (lr: link register):链接寄存器,在函数调用时用来保存返回地址。当一个函数被调用时,调用该函数的指令地址会被存储在lr中,以便在函数执行完毕后能够返回到正确的位置继续执行。

  • R15 (pc: program counter):程序计数器,指向CPU接下来要执行的指令的地址。每次指令执行完毕后,pc会自动更新为下一条指令的地址。

程序状态寄存器

  • CPSR(Current Program Status Register)  当前程序状态(模式、中断使能等)

CPSR是一个32位的寄存器,用于存储处理器的状态信息和控制信息

N、Z、C、V,最高4位称为条件码标志。ARM的大多数指令可以条件执行的,即通过检测这些条件码标志来决定程序指令如何执行。

各个条件码的含义如下:

N:在结果是有符号的二进制补码情况下,如果结果为负数,则N=1;如果结果为非负数,则N=0。

Z:如果结果为0,则Z=1;如果结果为非零,则Z=0。

C:其设置分一下几种情况:

               对于加法指令(包含比较指令CMN),如果产生进位,则C=1;否则C=0。

               对于减法指令(包括比较指令CMP),如果产生借位,则C=0;否则C=1。

               对于有移位操作的非法指令,C为移位操作中最后移出位的值。

               对于其他指令,C通常不变。

V:对于加减法指令,在操作数和结果是有符号的整数时,如果发生溢出,则V=1;如果无溢出发生,则V=0;对于其他指令,V通常不发生变化。

  • SPSR(Saved Program Status Register)   异常发生时保存的CPSR值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2291529.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Airflow:选择合适执行器扩展任务执行

Apache Airflow是面向开发人员使用的,以编程方式编写、调度和监控的数据流程平台。可伸缩性是其关键特性之一,Airflow支持使用不同的执行器来执行任务。在本文中,我们将深入探讨如何利用这些执行器在Airflow中有效地扩展任务执行。 理解Airfl…

CoRAG 来自微软与人大的创新RAG框架技术

微软与人大合作开发的CoRAG(Chain-of-Retrieval Augmented Generation)是一种创新的检索增强生成(RAG)框架,旨在通过模拟人类思考方式来提升大语言模型(LLM)在复杂问题上的推理和回答能力。以下是对CoRAG的深度介绍: 1. CoRAG的核心理念 CoRAG的核心思想是通过动态调…

Qt Creator 中使用 vcpkg

Qt Creator 中使用 vcpkg Qt Creator 是一个跨平台的轻量级 IDE,做 Qt 程序开发的同学们肯定对这个 IDE 都比较属于。这个 IDE 虽然没有 Visual Stdio 功能那么强,但是由于和 Qt 集成的比较深,用来开发 Qt 程序还是很顺手的。 早期&#xf…

mysql中in和exists的区别?

大家好,我是锋哥。今天分享关于【mysql中in和exists的区别?】面试题。希望对大家有帮助; mysql中in和exists的区别? 在 MySQL 中,IN 和 EXISTS 都是用于子查询的操作符,但它们在执行原理和适用场景上有所不…

智慧园区管理系统推动企业智能运维与资源优化的全新路径分析

内容概要 在当今快速发展的商业环境中,园区管理的数字化转型显得尤为重要。在这个背景下,快鲸智慧园区管理系统应运而生,成为企业实现高效管理的最佳选择。它通过整合互联网、物联网等先进技术,以智能化的方式解决了传统管理模式…

物联网 STM32【源代码形式-使用以太网】连接OneNet IOT从云产品开发到底层MQTT实现,APP控制 【保姆级零基础搭建】

物联网(IoT)‌是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器等装置与技术,实时采集并连接任何需要监控、连接、互动的物体或过程,实现对物品和过程的智能化感知、识别和管理。物联网的核心功能包括数据采集与监…

谭浩强C语言程序设计(4) 8章(下)

1、输入三个字符串按照字母顺序从小到大输出 #include <cstdio> // 包含cstdio头文件&#xff0c;用于输入输出函数 #include <cstring> // 包含cstring头文件&#xff0c;用于字符串处理函数#define N 20 // 定义字符串的最大长度为20// 函数&#xff1a;…

使用朴素贝叶斯对散点数据进行分类

本文将通过一个具体的例子&#xff0c;展示如何使用 Python 和 scikit-learn 库中的 GaussianNB 模型&#xff0c;对二维散点数据进行分类&#xff0c;并可视化分类结果。 1. 数据准备 假设我们有两个类别的二维散点数据&#xff0c;每个类别包含若干个点。我们将这些点分别存…

【Pytorch和Keras】使用transformer库进行图像分类

目录 一、环境准备二、基于Pytorch的预训练模型1、准备数据集2、加载预训练模型3、 使用pytorch进行模型构建 三、基于keras的预训练模型四、模型测试五、参考 现在大多数的模型都会上传到huggface平台进行统一的管理&#xff0c;transformer库能关联到huggface中对应的模型&am…

Python 深拷贝与浅拷贝:数据复制的奥秘及回溯算法中的应用

引言 在 Python 编程领域&#xff0c;数据复制是极为常见的操作。而深拷贝和浅拷贝这两个概念&#xff0c;如同紧密关联却又各具特色的双子星&#xff0c;在数据处理过程中扮演着重要角色。深入理解它们&#xff0c;不仅有助于编写出高效、准确的代码&#xff0c;还能避免许多…

简单易懂的倒排索引详解

文章目录 简单易懂的倒排索引详解一、引言 简单易懂的倒排索引详解二、倒排索引的基本结构三、倒排索引的构建过程四、使用示例1、Mapper函数2、Reducer函数 五、总结 简单易懂的倒排索引详解 一、引言 倒排索引是一种广泛应用于搜索引擎和大数据处理中的数据结构&#xff0c;…

初级数据结构:栈和队列

目录 一、栈 (一)、栈的定义 (二)、栈的功能 (三)、栈的实现 1.栈的初始化 2.动态扩容 3.压栈操作 4.出栈操作 5.获取栈顶元素 6.获取栈顶元素的有效个数 7.检查栈是否为空 8.栈的销毁 9.完整代码 二、队列 (一)、队列的定义 (二)、队列的功能 (三&#xff09…

阿里云 - RocketMQ入门

前言 云消息队列 RocketMQ 版产品具备异步通信的优势&#xff0c;主要应用于【异步解耦】、【流量削峰填谷】等场景对于同步链路&#xff0c;需要实时返回调用结果的场景&#xff0c;建议使用RPC调用方案阿里云官网地址RocketMQ官网地址 模型概述 生产者生产消息并发送至服务…

Agentic Automation:基于Agent的企业认知架构重构与数字化转型跃迁---我的AI经典战例

文章目录 Agent代理Agent组成 我在企业实战AI Agent企业痛点我构建的AI Agent App 项目开源 & 安装包下载 大家好&#xff0c;我是工程师令狐&#xff0c;今天想给大家讲解一下AI智能体&#xff0c;以及企业与AI智能体的结合&#xff0c;文章中我会列举自己在企业中Agent实…

列表标签(无序列表、有序列表)

无序列表 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head><…

每天学点小知识之设计模式的艺术-策略模式

行为型模式的名称、定义、学习难度和使用频率如下表所示&#xff1a; 1.如何理解模板方法模式 模板方法模式是结构最简单的行为型设计模式&#xff0c;在其结构中只存在父类与子类之间的继承关系。通过使用模板方法模式&#xff0c;可以将一些复杂流程的实现步骤封装在一系列基…

AI开发学习之——PyTorch框架

PyTorch 简介 PyTorch &#xff08;Python torch&#xff09;是由 Facebook AI 研究团队开发的开源机器学习库&#xff0c;广泛应用于深度学习研究和生产。它以动态计算图和易用性著称&#xff0c;支持 GPU 加速计算&#xff0c;并提供丰富的工具和模块。 PyTorch的主要特点 …

SAP HCM insufficient authorization, no.skipped personnel 总结归纳

导读 权限:HCM模块中有普通权限和结构化权限。普通权限就是PFCG的权限&#xff0c;结构化权限就是按照部门ID授权&#xff0c;颗粒度更细&#xff0c;对分工明细化的单位尤其重要&#xff0c;今天遇到的问题就是结构化权限的问题。 作者&#xff1a;vivi&#xff0c;来源&…

机器学习算法在网络安全中的实践

机器学习算法在网络安全中的实践 本文将深入探讨机器学习算法在网络安全领域的应用实践&#xff0c;包括基本概念、常见算法及其应用案例&#xff0c;从而帮助程序员更好地理解和应用这一领域的技术。"> 序言 网络安全一直是信息技术领域的重要议题&#xff0c;随着互联…

java-抽象类注意点

ChinesePerson 类 public class ChinesePerson extends Person{public ChinesePerson(){}public ChinesePerson(String name, int age){super(name, age);}Overridepublic void greet() {System.out.println("你好&#xff0c;我的名字叫" this.getName());} }Engl…