• 【科普】ARM架构


    参考链接:
    ARM、单片机、stm32、51单片机、和开发板的概念、区别
    内核cortex和ARM的关系
    arm 架构_详谈ARM架构与ARM内核发展史

    ARM架构简述

    ARM目前总共发布了8种架构:ARMv1、ARMv2、ARMv3、ARMv4、ARMv5、ARMv6、ARMv7、ARMv8。
    基于不同架构设计出来的内核处理器在硬件方面可能不同,但是架构的指令集都基于RISC指令集而设计的。

    ARM各架构的区别

    ARM版本Ⅰ:V1版架构

    该版架构只在原型机ARM1出现过,只有26位的寻址空间,没有用于商业产品。其基本性能有:

    • 基本的数据处理指令(无乘法)
    • 基于字节、半字和字的Load/Store指令;
    • 转移指令,包括子程序调用及链接指令;
    • 供操作系统使用的软件中断指令SWI;
    • 寻址空间:64MB(226)。

    ARM版本Ⅱ:V2版架构

    该版架构对V1版进行了扩展,例如ARM2和ARM3(V2a)架构。包含了对32位乘法指令和协处理器指令的支持。

    版本2a是版本2的变种,ARM3芯片采用了版本2a,是第一片采用片上Cache的ARM处理器。同样为26位寻址空间,现在已经废弃不再使用。V2版架构与版本V1相比,增加了以下功能:

    • 乘法和乘加指令
    • 支持协处理器操作指令;
    • 快速中断模式;
    • SWP/SWPB的最基本存储器与寄存器交换指令;
    • 寻址空间:64MB。

    ARM版本Ⅲ: V3版架构

    ARM作为独立的公司,在1990年设计的第一个微处理器采用的是版本3的ARM6。它作为IP核、独立的处理器、具有片上高速缓存、MMU和写缓冲的集成CPU

    变种版本有3G和3M。版本3G是不与版本2a向前兼容的版本3,版本3M引入了有符号和无符号数乘法和乘加指令,这些指令产生全部64位结果。V3版架构( 目前已废弃 )对ARM体系结构作了较大的改动:

    • 寻址空间增至32位(4GB)
    • 当前程序状态信息从原来的R15寄存器移到当前程序状态寄存器CPSR中(Current Program Status Register);
    • 增加了程序状态保存寄存器SPSR(SavedProgram Status Register);
    • 增加了两种异常模式,使操作系统代码可方便地使用数据访问中止异常、指令预取中止异常和未定义指令异常。;
    • 增加了MRS/MSR指令,以访问新增的CPSR/SPSR寄存器;
    • 增加了从异常处理返回的指令功能。

    ARM版本Ⅳ: V4版架构

    V4版架构在V3版上作了进一步扩充,V4版架构是目前应用最广的ARM体系结构,ARM7、ARM8、ARM9和StrongARM都采用该架构。

    V4不再强制要求与26位地址空间兼容,而且还明确了哪些指令会引起未定义指令异常。指令集中增加了以下功能:

    • 符号化和非符号化半字及符号化字节的存/取指令;
    • 增加了T变种,处理器可工作在Thumb状态,增加了16位Thumb指令集;
    • 完善了软件中断SWI指令的功能;
    • 处理器系统模式引进特权方式时使用用户寄存器操作;
    • 把一些未使用的指令空间捕获为未定义指令

    ARM版本Ⅴ: V5版架构

    V5版架构是在V4版基础上增加了一些新的指令,ARM10和Xscale都采用该版架构。这些新增命令有:

    • 带有链接和交换的转移BLX指令;
    • 计数前导零CLZ指令;
    • BRK中断指令;
    • 增加了数字信号处理指令(V5TE版); 为协处理器增加更多可选择的指令
    • 改进了ARM/Thumb状态之间的切换效率;
    • E—增强型DSP指令集,包括全部算法操作和16位乘法操作;
    • J----支持新的JAVA,提供字节代码执行的硬件和优化软件加速功能。

    ARM版本Ⅵ: V6版架构

    V6版架构是2001年发布的,首先在2002年春季发布的ARM11处理器中使用。在降低耗电量地同时,还强化了图形处理性能。通过追加有效进行多媒体处理的SIMD (Single Instruction, Multiple Data,单指令多数据 )功能,将语音及图像的处理功能提高到了原型机的4倍。此架构在V5版基础上增加了以下功能:

    • THUMBTM:35%代码压缩;
    • DSP扩充:高性能定点DSP功能;
    • JazelleTM:Java性能优化,可提高8倍;
    • Media扩充:音/视频性能优化,可提高4倍

    ARM内核型号与产品

    在这里插入图片描述
    Cortex-A:即A-Profile,面向尖端的基于虚拟内存的操作系统和用户应用
    Cortex-R:即R-Profile,针对实时系统
    Cortex-M:即M-Profile,针对微控制器单片机方面的场合
    在这里插入图片描述
    MMU(内存处理单元)会在程序调用时陷入内核态并保存现场资源和进行额外处理。运行诸如Linux、WinCE等多用户多进程操作系统,都需要MMU,才能为每个用户进程分配独立的地址空间。而运行类似于ucOS、ucLinux的精简实时RTOS则不需要MMU。

    ARM命令规则

    • x:序列
    • y:2:带MMU, 4带MPU,6没有
    • z:0:标准cache,2:减小的cache, 6可变的cache
    • T:处理器支持Thumb指令集
    • D:支持JTAG调试器
    • M:支持长乘法指令
    • I:有嵌入式跟踪宏单元
    • E:支持增强指令(基于TDMI)
    • J:支持JAVA硬件加速(Jazelle)
    • F:支持向量浮点单元
    • S:可综合版本
  • 相关阅读:
    Linux网络编程:使用UDP和TCP协议实现网络通信
    vue.js实现自定义tab滑动切换效果
    手把手,完整的从0搭建vite-vue3-ts项目框架:配置less+svg+pinia+vant+axios
    分类算法系列④:朴素贝叶斯算法
    云端部署AI换脸开源工具FaceFusion【超详细教程】
    微信小程序实现课程表
    2022主流技术 Appium+IOS 自动化测试环境搭建
    什么是DevOps
    【Python零基础入门笔记 | 12】程序员为什么自嘲面向Bug编程?
    C# Onnx Yolov8 Detect 涉黄检测
  • 原文地址:https://blog.csdn.net/weixin_45005811/article/details/125532989