新闻详情

新闻详情

首页 / 资讯中心 / 详情

【嵌入式学习笔记】ARM的总线和流水线

发布时间:2026/10/2 13:55:38来源:尧图网络
【嵌入式学习笔记】ARM的总线和流水线
ARM总线AMBAAdvanced Microcontroller Bus Architecture高级微控制器总线架构AMBA 不是单一总线而是一个分层的协议家族主要包含这三种AXIAdvanced eXtensible Interface高级可扩展接口目前的高性能主力。特点是读写通道分离可以同时读和写支持乱序完成、突发传输。它连接的是对带宽要求最高的部件比如 CPU 核心、DDR 控制器、高速 DMA。AHBAdvanced High-performance Bus高级高性能总线定位是中高速、低延迟。主要连接处理器、片上 RAM、DMA 控制器这些需要快速响应的模块。它在一些较老的 ARM 设计比如 Cortex-M 系列里非常常见。APBAdvanced Peripheral Bus高级外设总线这是低速、低功耗的“小路”。专门用来连接那些对速度要求不高的外设比如 UART、I2C、SPI、定时器、GPIO。它通过“桥”挂在 AHB 或 AXI 上把低速设备隔离出去避免拖慢主干道。典型的AMBA系统图AM64x/AM243x多级分层架构它不是一根大总线而是由多层交换机SCR组成的树状网络。高层负责高带宽底层接入低速外设实现了流量的物理隔离。确定性低延迟路径为了工业实时性芯片内为 R5F、PRU 等实时核心规划了专用低延迟路径。这样即使 A53 在疯狂跑 Linux 任务也不会干扰到 R5F 精确控制电机所需的实时数据流。可配置的内存分区芯片内部的 2MB SRAM带 ECC可以灵活切分。A53 独占 DDR 跑 Linux内部 SRAM 则按需分给多个 R5F 核独立或共享使用从物理上隔离了不同核心的内存访问。ARM流水线流水线技术通过多个功能部件并行工作来缩短程序执行的时间提高处理器核的效率和吞吐率从而成为微处理器设计中最为重要的技术之一。ARM7三级流水线冯诺依曼结构采用了典型的三级流水线。取指 - 译码 - 执行指令-----MOV取指译码执行--ADD-取指译码执行-SUB--取指译码执行时钟周期--T1T2T3ARM9五级流水线哈佛结构采用五级流水线。取指 IF- 译码ID - 执行EX - 访存MEM - 回写WB但是五级流水线会有其缺点即数据冒险Data Hazard以下面两条指令为例ADD R0, R1, R2 ; R0 R1 R2写 R0SUB R3, R0, R4 ; R3 R0 - R4读 R0SUB需要读R0但R0是ADD的结果。问题在于ADD在执行阶段才算完R0的新值SUB在译码阶段就要读R0当 SUB 进入 译码 阶段时ADD 还在 执行 阶段R0 的新值还没写回寄存器堆。SUB 读到的还是旧的 R0结果就错了。ARM118级流水线预取 - 预取 - 发送 - 译码 - 转换 - 执行 - 访存 - 写入AM64x/AM243xCortex-A538级顺序双发射流水线ARMv8-A 架构整数流水线为 8 级NEON 和浮点处理会在此基础上多出 2 级。Cortex-R5F8 级流水线。Cortex-M4F3 级流水线取指、译码、执行。流水线操作当指令都是单周期执行时三级流水线PC的值超前预取了两条指令因此当发生异常时LR的值如下异常或入口返回指令当前LR的值BL子程序调用MOV PC,R14PC 4SWI软中断MOVS PC,R14_svcPC 4未定义MOVS PC,R14_undPC 4预取中止MOVS PC,R14_abt,#4PC 8快速中断MOVS PC,R14_fiq,#4PC 8中断MOVS PC,R14_irq,#4PC 8数据终止MOVS PC,R14_abt,#8PC 8复位--
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Qt动态库加载:pro文件与QLibrary两种方式深度对比 2026/10/2 16:06:41

Qt动态库加载:pro文件与QLibrary两种方式深度对比

1. 动态库在Linux下的工作方式:先搞懂链接器在干什么在正式对比pro工程文件与QLibrary两种加载方式之前,我建议先把Linux下动态库的基本机制过一遍。因为很多人在使用过程中遇到的"编译过了但运行报错""加载失败"这类问题&#xff0…

阅读更多 →
【FDE系列】阶段2:Day 35:Python + SQL — 工单接入 MySQL + 本周收官 2026/10/2 16:06:41

【FDE系列】阶段2:Day 35:Python + SQL — 工单接入 MySQL + 本周收官

📚前言 📒FDE系列内容总纲: 【大纲】FDE 前沿部署工程师学习系列教程-CSDN博客 🚄前置课程列表: 见文档结尾附录。 🚀阶段2Day 35:Python SQL — 工单接入 MySQL 本周收官 FDE 学习系列教…

阅读更多 →
【FDE系列】阶段2:Day 36:Linux 入门与文件操作 — 扔掉鼠标的第一天 2026/10/2 16:06:41

【FDE系列】阶段2:Day 36:Linux 入门与文件操作 — 扔掉鼠标的第一天

📚前言 📒FDE系列内容总纲: 【大纲】FDE 前沿部署工程师学习系列教程-CSDN博客 🚄前置课程列表: 见文档结尾附录。 🚀阶段2Day 36:Linux 入门与文件操作 — 扔掉鼠标的第一天 FDE 学习系列教…

阅读更多 →
DOCA 的模块、作用与依赖关系 2026/10/2 16:06:41

DOCA 的模块、作用与依赖关系

1. DAKI、IBGDA,GPUDirectRDMA、gpunetio,GIN,GDA,GDR 这几个词分属三个不同层次:技术理念、库/SDK、通信框架特性。下面按层次梳理。1.1. 理念层:GPUDirect 家族(技术,不是库&#…

阅读更多 →
Auto.js安卓自动化脚本入门:安装、权限配置与首个脚本实战 2026/10/2 16:06:33

Auto.js安卓自动化脚本入门:安装、权限配置与首个脚本实战

我最早接触 Auto.js 是在一年多前,当时被一批每天重复点击手机屏幕的机械动作折磨得够呛。后来发现这个叫 Auto.js 的安卓自动化脚本框架,可以把我那些重复性的点击、滑动、输入操作直接用 JavaScript 写出来,运行一次就自动跑完。从那之后&a…

阅读更多 →
齿轮箱故障数据拆解:从振动信号到诊断模型落地 2026/10/2 16:06:20

齿轮箱故障数据拆解:从振动信号到诊断模型落地

简介:用于齿轮箱故障诊断的完整数据集「齿轮箱故障数据.zip」,主要面向机械故障预测、机器学习和数据建模学习者,可用于振动、声音、温度等多类信号分析,帮助实现齿轮磨损、断齿等异常状态的早期识别与预防性维护。压缩包共15个文…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉