ARMv8.x-M架构计算能力概览

1.ARMv8.xM架构提供了哪些计算能力?

        ARMv7-M时代,Cortex-M系列CPU以提供通用计算能力为主。ARMv8-M架构提供了更加多样的计算能力。

        首先,提供Thumb2指令集提供整数通用计算能力。

        其次,ARMv8.x-M架构手册明确列出了更多可选的CPU拓展计算能力。

        The Floating-point Extension,浮点计算能力。ARMv8-M架构提供了单精度,双精度浮点计算能力。ARMv8.1-M架构还提供了半精度浮点计算能力。

        The Digital Signal Processing Extension,DSP计算能力。以Cortex-M33为例,该CPU采用ARMv8-M架构,其DSP拥有下面的拓展计算能力。

        M-Profile Vector Extension。ARM对此有另一个品牌ARM Helium。因为ARMv8架构有NEON的SIMD的计算能力。ARMv7-M架构完全没有这方面的计算能力,而ARMv8.1-M提供了适用于Cortex-M系列的SIMD计算能力。这个技术就是MVE。

        The Custom Datapath Extension。ARMv8.x-M架构的CPU内部可能集成一个名字叫做CDE的模块(比如STM32N6使用的Cortex M55)。该模块支持CPU提供用户定义第三方指令。

        总结一下。

计算需求

对应技术

通用整数计算能力

Thumb2

浮点计算能力

The Floating-point Extension

DSP计算能力

The Digital Signal Processing Extension

SIMD计算能力

MVE (Helium)

第三方定制计算能力

CDE

2.部分ARMv8.x-M架构CPU的计算能力分析

        简单统计了一下,可能有误,仅供参考。

CPU

架构

Thumb2

FP

DSP

MVE

CDE

Cortex M23

ARMv8-M

Yes

No

No

No

No

Cortex M33

ARMv8-M

Yes

Yes

Yes

No

Yes

Cortex M55

ARMv8.1-M

Yes

Yes

Yes

Yes

Yes

Cortex M85

ARMv8.1-M

Yes

Yes

Yes

Yes

Yes

3.Cortex M55的实现

        Cortex M55提供了比较完整的计算能力,其对架构的实现代表了目前ARM对ARMv8.x-M架构的实现方式。

        首先,IFU,DPU和LSU是传统CPU最基础的组成部分,执行的是取指,译码,执行,访存,写回的经典流水线步骤。

        IFU负责取指。

        DPU负责译码,执行。

        LSU负责访存。

        DPU更为常见的名称是EXU。印象里ARM以前的CPU也叫EXU,但是现在确实是DPU了。内部包含的是ALU等典型计算单元。

        另一个与计算密切相关的是PDEPU供电的这一部分。显然,这部分的EPU或CDE都是可选实现。但是如果要实现ARMv8.1-M架构完整的浮点向量计算能力,还是要实现EPU的。如果实现用户定义指令,CDE也需要实现。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

20. Excel 自动化:Excel 对象模型

一 Excel 对象模型是什么 Excel对象模型是Excel图形用户界面的层次结构表示,它允许开发者通过编程来操作Excel的各种组件,如工作簿、工作表、单元格等。 xlwings 是一个Python库,它允许Python脚本与Excel进行交互。与一些其他Python库&#x…

大模型GGUF和LLaMA的区别

GGUF(Gigabyte-Graded Unified Format)和LLaMA(Large Language Model Meta AI)是两个不同层面的概念,分别属于大模型技术栈中的不同环节。它们的核心区别在于定位和功能: 1. LLaMA(Meta的大语言…

一周学会Flask3 Python Web开发-SQLAlchemy查询所有数据操作-班级模块

锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 我们来新建一个的蓝图模块-班级模块,后面可以和学生模块,实现一对多的数据库操作。 blueprint下新建g…

STM32学习【5】用按键控制LED亮灭(寄存器)以及对位运算的思考

目录 1. 看原理图2 使能GPIOAGPIOA时钟模块2.2 设置引脚GPIO输入2.3 读取引脚值 3. 关于寄存器操作的思考 写在前面 注意,这篇文章虽然说是用按键控制led亮灭,重点不在代码,而是关键核心的描述。 用寄存器的方式,通过key来控制led…

js,html,css,vuejs手搓级联单选

<!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>级联选择器</title><script src"h…

【Spring】第四弹:基于XML文件注入Bean对象

一、setter 注入Bean对象 1.创建Student对象 public class Student {private Integer id;private String name;private Integer age;private String sex;public Student() {}public Integer getId() {return id;}public void setId(Integer id) {this.id id;}public String …

DeepSeek私有化部署与安装浏览器插件内网穿透远程访问实战

文章目录 前言1. 本地部署OllamaDeepSeek2. Page Assist浏览器插件安装与配置3. 简单使用演示4. 远程调用大模型5. 安装内网穿透6. 配置固定公网地址 前言 最近&#xff0c;国产AI大模型Deepseek成了网红爆款&#xff0c;大家纷纷想体验它的魅力。但随着热度的攀升&#xff0c…

单目3d detection算法记录

1、centernet object as points 这篇文章的核心单目3d检测主要是利用中心点直接回归出3d模型的所有属性&#xff0c;head共享整个backbone&#xff0c;其中3d属性包括&#xff1a;2d目标中心点、2dw和h、2d offsets、3doffsets、3d dimmession、rot还有depth。 其中对应的dep…

MySQL程序

博主主页: 码农派大星. 数据结构专栏:Java数据结构 数据库专栏:数据库 JavaEE专栏:JavaEE 软件测试专栏:软件测试 关注博主带你了解更多知识 1. mysqld (MySQL服务器) mysqld也被称为MySQL服务器&#xff0c;是⼀个多线程程序&#xff0c;对数据⽬录进⾏访问管理(包含数据库…

rust学习笔记17-异常处理

今天聊聊rust中异常错误处理 1. 基础类型&#xff1a;Result 和 Option&#xff0c;之前判断空指针就用到过 Option<T> 用途&#xff1a;表示值可能存在&#xff08;Some(T)&#xff09;或不存在&#xff08;None&#xff09;&#xff0c;适用于无需错误信息的场景。 f…

IIS 服务器日志和性能监控

Internet Information Services &#xff08;IIS&#xff09; 是 Microsoft 提供的一款功能强大、灵活且可扩展的 Web 服务器&#xff0c;用于托管网站、服务和应用程序。IIS 支持 HTTP、HTTPS、FTP、SMTP 和更多用于提供网页的协议&#xff0c;因此广泛用于企业环境。 IIS 的…

基于Netty实现高性能HTTP反向代理

以下将分步骤实现一个基于Netty的高性能HTTP反向代理&#xff0c;支持动态路由、负载均衡和基础鉴权功能。 1. 项目依赖配置&#xff08;Maven&#xff09; 2. 定义路由规则 3. 实现HTTP反向代理服务端 4. 实现反向代理处理器 5. 实现基础鉴权 6. 性能优化策略 连接池管理…

Feedback-Guided Autonomous Driving

Feedback-Guided Autonomous Driving idea 问题设定&#xff1a;基于 CARLA 的目标驱动导航任务&#xff0c;通过知识蒸馏&#xff0c;利用特权智能体的丰富监督信息训练学生传感器运动策略函数 基于 LLM 的端到端驱动模型&#xff1a;采用 LLaVA 架构并添加航点预测头&#…

OpenCV基础【图像和视频的加载与显示】

目录 一.创建一个窗口&#xff0c;显示图片 二.显示摄像头/多媒体文件 三.把摄像头录取到的视频存储在本地 四.鼠标回调事件 五.TrackBar滑动条 一.创建一个窗口&#xff0c;显示图片 import cv2img_path "src/fengjing.jpg" # 自己的图片路径 img cv2.imre…

springboot实现调用百度ocr实现身份识别

一、技术选型 OCR服务&#xff1a;推荐使用百度AI 二、实现 1.注册一个服务 百度智能云控制台https://console.bce.baidu.com/ai-engine/ocr/overview/index?_1742309417611 填写完之后可以获取到app-id、apiKey、SecretKey这三个后面文件配置会用到 2、导入依赖 <!-- …

Linux--内核进程O(1)调度队列

⼀个CPU拥有⼀个runqueue 如果有多个CPU就要考虑进程个数的负载均衡问题 优先级 普通优先级&#xff1a;100〜139&#xff08;我们都是普通的优先级&#xff0c;想想nice值的取值范围&#xff0c;可与之对应&#xff01;&#xff09;实时优先级&#xff1a;0〜99&#xff08…

1.排序算法(学习自用)

1.冒泡排序 算法步骤 相邻的元素之间对比&#xff0c;每次早出最大值或最小值放到最后或前面&#xff0c;所以形象的称为冒泡。 特点 n个数排序则进行n轮&#xff0c;每轮比较n-i次。所以时间复杂度为O(n^2)&#xff0c;空间复杂度为O(1)&#xff0c;该排序算法稳定。 代码…

DiskGenius 硬盘管理工具下载+D盘空间扩容给C盘教程

目录 D盘空间扩容给C盘教程 1、打开DiskGenius软件​编辑 2、右键D盘&#xff08;或需要压缩的磁盘&#xff09;-->调整分区大小 3、调整分区容量 4、点击是/确定后&#xff0c;等待几分钟电脑自行操作&#xff0c;重启后硬盘就重新分好了 5、展示效果 DiskGenius – …

[项目]基于FreeRTOS的STM32四轴飞行器: 六.2.4g通信

基于FreeRTOS的STM32四轴飞行器: 六.2.4g通信 一.Si24Ri原理图二.Si24R1芯片手册解读三.驱动函数讲解五.移植2.4g通讯&#xff08;飞控部分&#xff09;六.移植2.4g通讯&#xff08;遥控部分&#xff09;七.通讯模块的完成&#xff08;遥控部分&#xff09; 一.Si24Ri原理图 S…

springboot集成xxl-job

前言&#xff1a;关于xxl-job的一些简单的介绍就不做过多介绍&#xff0c;本文主要讲一下如何将xxl-job整合到springboot项目中。先贴上项目的两个地址&#xff1a; 1.github&#xff1a; https://github.com/xuxueli/xxl-job 2.码云&#xff1a;http://gitee.com/xuxueli0323/…