arm
ARM(Advanced RISC Machine)是一种广泛使用的32位和64位处理器架构,ARM架构以其高能效比、低成本和高效的代码执行而闻名,特别适用于移动设备和嵌入式系统。
-
精简指令集计算(RISC):ARM处理器使用精简的指令集,这意味着它们通常具有更少的指令和更简单的指令集,使得处理器设计更简单,执行效率更高。
-
低功耗:ARM架构的设计注重能效,使其非常适合电池供电的设备,如智能手机、平板电脑和可穿戴设备。
-
可扩展性:ARM架构支持从简单的嵌入式应用到高性能计算的多种配置。
-
多核处理器支持:ARM处理器支持多核配置,允许多个处理器核心在同一芯片上协同工作,提高性能和效率。
-
广泛的生态系统:ARM拥有一个庞大的生态系统,包括各种硬件平台、软件开发工具和支持服务。
-
安全性:ARM架构提供了多种安全功能,包括硬件加密和信任区技术,以保护数据和增强设备安全性。
-
应用广泛:ARM处理器被广泛应用于各种设备,包括智能手机、平板电脑、电视、汽车、游戏机、网络设备等。
ARM处理器的七种工作模式包括:
-
用户模式(USR):这是正常的程序执行模式,用户程序在操作系统的用户态运行,权限最低,不能直接访问某些特定寄存器,也无法执行一些特权指令。
-
系统模式(system):系统模式与用户模式类似,但提供了更多的权限,可以执行更多的特权指令,用于运行操作系统的特权任务。
-
快速中断模式(FIQ):用于处理需要快速响应的中断请求,如实时性要求较高的硬件中断。在这种模式下,处理器拥有独立的寄存器集,以便快速处理中断。
-
外部中断模式(IRQ):用于处理一般的中断请求。当CPU接收到中断信号时,会暂停当前的任务,切换到中断模式处理中断服务程序。
-
管理模式(supervisor):也称为超级用户模式,是操作系统提供软中断的特有模式。它用于系统复位、软件中断处理以及操作系统内核的大部分操作。
-
数据访问终止模式(abort):用于处理数据或指令预取终止的情况,支持虚拟内存和存储器保护,如访问非法内存地址时会进入此模式。
-
未定义指令终止模式(undef):当执行未定义的指令时进入该模式,用于支持硬件协处理器的软件仿真。
AM(Random Access Memory,随机存取存储器)和ROM(Read-Only Memory,只读存储器)是两种不同类型的计算机存储技术,它们在功能、用途和特性上有显著的区别:
-
存储内容的持久性:
- RAM:是易失性存储器,它在电源关闭时会丢失存储的数据。RAM用于存储计算机运行时需要快速访问的数据和程序。
- ROM:是非易失性存储器,即使在电源关闭后,它也能保留存储的数据。ROM通常用于存储固件或系统启动时需要的代码,如BIOS。
-
读写能力:
- RAM:既可以读取数据也可以写入数据,支持无限次的读写操作。
- ROM:主要用于读取操作,写入操作通常受到限制,需要特殊的程序或设备来更新。
-
用途:
- RAM:作为系统的主内存,用于临时存储操作系统、应用程序和当前正在处理的数据。
- ROM:用于存储不经常改变的固件或软件,如系统启动程序、固件更新和某些嵌入式系统中的固定程序。
-
速度:
- RAM:通常比ROM快,因为它设计用于快速读写操作,以支持计算机的高速度运行需求。
- ROM:速度可能较慢,因为它不经常进行读写操作,且设计上更注重数据的持久性。
-
成本:
- RAM:由于其高速和易失性特点,通常成本较高。
- ROM:由于其存储的内容较为固定,成本相对较低。
-
类型:
- RAM:有多种类型,如SRAM(静态RAM)、DRAM(动态RAM)、SDRAM(同步动态RAM)等。
- ROM:也有多种类型,如PROM(可编程ROM)、EPROM(可擦写可编程ROM)、EEPROM(电可擦写可编程ROM)等。
-
更新频率:
- RAM:内容经常更新,因为计算机运行时会不断地读取和写入数据。
- ROM:内容更新不频繁,通常只有在系统升级或修复时才会更新。
ARM架构中常用的寄存器包括:
-
通用寄存器(General-Purpose Registers):
- R0-R14: 用于存储数据和地址,其中R0-R3常用于函数调用时传递参数,R4-R11用于保存局部变量。
- R15: 程序计数器(PC),指向当前执行的指令地址。
-
状态寄存器(Status Register):
- CPSR(Current Program Status Register): 当前程序状态寄存器,包含条件标志位、中断禁止位、处理器模式等信息。
- SPSR(Saved Program Status Register): 备份的程序状态寄存器,用于保存异常发生时的CPSR状态。
-
特殊寄存器:
- SP(Stack Pointer): 堆栈指针,用于管理函数调用时的堆栈操作。
- LR(Link Register): 链接寄存器,用于保存子程序的返回地址。
-
程序计数器(Program Counter):
- PC: 存储下一条指令的地址。
-
系统寄存器(System Registers):
- 包括控制寄存器、状态寄存器等,用于控制处理器的行为和状态。