news 2026/4/25 19:40:27

ARM 架构 DSB 与 ISB 基础

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ARM 架构 DSB 与 ISB 基础

一、为什么需要 DSB 和 ISB?

在学习 DSB 和 ISB 之前,我们先明白一个前提 ——现代 CPU 会 自行优化,这些优化在普通场景下没问题,但在多核协作、操作硬件时可能出 bug:

  1. 乱序执行:CPU 为了快,会调整无依赖的指令顺序(比如先执行不依赖其他结果的指令);
  1. 缓存异步:CPU 有高速缓存,数据先写缓存再慢慢同步到内存,导致其他设备 / 核心可能读不到最新数据。

DSB 和 ISB 就是用来 “纠正” 这些优化的工具:当我们需要严格的执行顺序或数据同步时,用它们强制 CPU 按我们的要求来。

二、DSB 和 ISB 分别是做什么的?

1. DSB(数据同步屏障)

(1)通俗理解

DSB 就像一个 “交通指挥员”,让屏障前面所有和数据相关的操作(读数据、写数据)都完成后,才允许屏障后面的操作开始。比如:先确保数据写完并同步到内存,再执行下一步读操作。

(2)关键作用
  • 保证 “写数据” 真的写完:比如向硬件寄存器发命令,DSB 能确保命令真的传到硬件,而不是停在 CPU 缓存里;
  • 保证 “读数据” 读的是最新:比如从共享内存读数据,DSB 能确保读到的是其他核心刚写完的最新值。

2. ISB(指令同步屏障)

(1)通俗理解

ISB 就像一个 “刷新按钮”,会清空 CPU 里已经提前准备好的指令(指令流水线),让后续指令重新从内存读取。这样能确保执行的是最新的指令,而不是旧的 “缓存指令”。

(2)关键作用
  • 执行修改后的代码:比如程序自己修改了一段指令(如动态补丁),ISB 能让 CPU 重新读新指令,避免执行旧指令;
  • 切换权限后生效:比如从用户模式切换到内核模式,ISB 能确保后续指令按新权限执行。
(3)和 DSB 的核心区别

对比项

DSB(数据同步屏障)

ISB(指令同步屏障)

管什么

数据的读 / 写顺序和同步

指令的新鲜度(是否是最新)

典型场景

多核数据共享、操作硬件寄存器

修改代码后执行、切换权限

简单记忆

“数据要同步,就用 DSB”

“指令要刷新,就用 ISB”

三、常用场景

1. DSB 的常见场景

(1)多核 CPU 共享数据

比如核心 A 给核心 B 发数据,必须用 DSB 确保核心 B 读到最新值:

  • 核心 A:写完数据后用 DSB 同步到内存,再告诉核心 B “数据好了”;
  • 核心 B:收到通知后用 DSB 刷新,再读数据,确保读到最新的。
(2)操作硬件设备(如传感器、网卡)

比如给硬件发 “启动命令” 后,要读硬件状态,必须用 DSB 确保命令真的传到硬件:

  • 第一步:给硬件寄存器写 “启动命令”;
  • 第二步:用 DSB 同步,确保命令到硬件;
  • 第三步:读硬件状态,判断是否启动成功。

2. ISB 的常见场景

(1)程序自己修改了代码(如动态补丁)

比如程序运行中把一段旧指令改成新指令,必须用 ISB 让 CPU 读新指令:

  • 第一步:修改指令内容;
  • 第二步:用 DSB 确保修改同步到内存;
  • 第三步:用 ISB 刷新指令,再执行修改后的代码。
(2)切换权限(如从用户模式到内核模式)

比如通过系统调用进入内核,ISB 能确保后续指令按内核权限执行,避免权限错误。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 13:23:57

CSP-J教程——第一阶段第九、十课:数组与字符串

课程目标 理解数组的概念和用途掌握一维数组的定义、初始化和访问学会数组遍历和经典应用掌握字符串的基本操作理解批量数据处理的思想为后续算法学习打下基础 第一部分:数组的概念(40分钟) 1.1 什么是数组? 生活比喻&#xff…

作者头像 李华
网站建设 2026/4/18 7:26:41

Windows文件资源管理器美化终极指南:5步实现Mica模糊效果

Windows文件资源管理器美化终极指南:5步实现Mica模糊效果 【免费下载链接】ExplorerBlurMica Add background Blur effect or Acrylic (Mica for win11) effect to explorer for win10 and win11 项目地址: https://gitcode.com/gh_mirrors/ex/ExplorerBlurMica …

作者头像 李华
网站建设 2026/4/23 18:38:59

大数据建模中的模型

在大数据建模中,“模型”一词通常指的是对数据结构、数据关系或数据行为的抽象表示。根据建模目的和应用场景的不同,可以将模型分为多种类型,常见的包括物理模型、概念模型、逻辑模型、理论模型、统计模型、机器学习模型、预测模型、仿真模型…

作者头像 李华
网站建设 2026/4/23 22:22:45

LangGraph入门指南:从零掌握大模型应用的状态管理与流程编排!

简介 文章介绍了LangGraph框架,这是一个专为构建复杂LLM应用设计的低层级编排框架。它通过State(状态)、Node(节点)和Edge(边缘)三个核心组件实现有状态、多步骤、长周期运行的Agent应用。LangGraph提供持久执行、动态控制流和人工介入等特性,支持分支、…

作者头像 李华
网站建设 2026/4/25 12:43:35

C语言中以坐标的方式图解“字母金字塔”的绘制

目录题目题目解析题目理解空格图-坐标解析字母递增图-坐标解析字母递减图-坐标解析代码汇总验证代码汇总终端运行验证坐标图解法的好处建议好处题目 实现字母金字塔,通过键盘输入字符来控制层数,如输入D,则打印下面图形 AABAABCBAABCDCBA题目…

作者头像 李华
网站建设 2026/4/21 5:16:53

Q CLI 助力合合信息实现 Aurora 的升级运营

1. 升级背景 合合信息是一家中国领先的人工智能(AI)产品公司,一直致力于通过AI技术赋能创新,为全球数亿用户和多元化行业提供产品服务。凭借超过18年的AI研究和应用专业知识,合合信息已成为全球多模态大模型文本智能技术的领先者&#xff0c…

作者头像 李华