aarch64 是否有不可缓存(=缓存旁路)加载或存储指令?

2024-01-11

在sparc架构中,有一个ASI(地址空间指示符)被传递给加载、存储指令,因此如果ASI为0x20,则像IO访问一样绕过缓存。即使内存范围在页表中设置为可缓存,缓存也会被绕过。这有时非常方便,例如使用变量在核心之间同步时等。
aarch64架构中有类似的东西吗?我查看了指令内容,但在加载/存储指令列表中找不到任何内容。


ARMv8没有这样的指令。加载/存储指令访问内存取决于映射属性。

提及LDNP and STNP指令无意绕过缓存。

加载/存储非时间对指令提供提示向内存系统表明访问是非临时的或流式的,并且在不久的将来不太可能重复。这意味着不需要数据缓存。但是,根据内存类型,指令可能允许预加载内存读取和内存写入 被聚集以加速批量内存传输。 (Arm架构参考手册)

所以仍然可能涉及缓存。


例如,在 Cortex-A53 TRM 之上,明确指出将涉及缓存。

非时间载荷
由非临时加载指令 (LDNP) 发出的缓存请求是分配给L2缓存仅有的。分配政策使得该线路有可能比其他线路更早更换。

对于核心同步,您可以查看 ARMv8 手册以了解锁实现(又名原子)和自旋锁。

作为旁注,请检查您的芯片文档。许多现代芯片都具有特殊的硬件功能,可以提供基于硬件的缓存一致性接口。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

aarch64 是否有不可缓存(=缓存旁路)加载或存储指令? 的相关文章

随机推荐

  • 从 pandas 数据框索引创建列

    我有一个数据框 我想将索引 第一级 中的数据转换为列 实际上我的 df 看起来像这样 col1 CoI AK 0 1 1 31 2 NaN BB 0 5 1 31 2 NaN 我想把它变成这样 col1 CoI 0 1 AK 1 31 AK
  • 根据特定值创建新变量

    我阅读了正则表达式和 Hadley Wickham 的stringr and dplyr包 但不知道如何让它工作 我在数据框中保存了图书馆流通数据 索书号作为字符变量 我想将最初的大写字母作为一个新变量 并将字母和句点之间的数字作为第二个新
  • 如何使用phonegap javascript获取IP地址

    如何使用phonegap javascript 获取IP 地址 我必须将此 IP 地址作为查询字符串发送到 php 页面 有什么建议吗 干得好 http simonmacdonald blogspot in 2012 08 so you w
  • 如何确定文档是否与查询匹配,例如规范化 elasticsearch 分数?

    Elasticsearch 计算的分数提供了文档之间的排名 但它并不能说明文档是否与请求匹配 目前 第一个文档可以匹配所有字段或仅匹配一个字段 分数提供的唯一信息是它是最佳匹配 是否有可能获得关于查询的标准化分数 例如 得分 1 表示文档与
  • 接口是否有 ISomething / ISomethingable 的既定替代方案?

    在接口名称前添加 I 前缀的 NET 标准似乎正在变得越来越普遍 并且不再仅限于 NET 我遇到过很多使用此约定的 Java 代码 因此 如果 Java 在 C 之前使用它 我不会感到惊讶 Flex 也使用它 等等 不过 在名称开头放置 I
  • 搜索栏取消按钮委托未调用

    我在导航控制器内实现了一个搜索栏 它工作正常 但取消按钮点击委托方法没有被调用 请帮忙 func searchBarCancelButtonClicked searchBar UISearchBar This function is not
  • 以编程方式清除 R 控制台 [重复]

    这个问题在这里已经有答案了 可能的重复 R 中清除控制台的函数 https stackoverflow com questions 14260340 function to clear the console in r Is there a
  • 使用箭头键移动元素

    我在页面上有 2 个 div 我希望用户能够使用箭头键在其中移动 我尝试通过使用焦点来区分它们 但太多的项目 如输入 可以获得焦点 目前 当我单击该 div 时 我正在应用带有虚线的 集中 css 样式 以使其脱颖而出 并从其他 div 中
  • 检查字典中是否有 nil

    我的应用程序中有一个类 用户输入值并将它们设置为该类的实例 然后我将此数据上传到数据库 但我必须将该类转换为数据库接受的内容 并且我要转换为使用镜面反射的字典 我的类中的某些属性可以为零 因为根据设计 并非所有属性都是必需的 但我无法将零值
  • 是否可以在 Windows 7 上构建 WinRT 应用程序?

    使用 Visual Studio 11 是否可以在 Windows 7 上构建 WinRT 应用程序 不 WinRT 仅适用于 Windows 8 据我所知 目前还没有任何消息表明它们将在 Win7 中提供 在 BUILD 上 他们特别表示
  • 如何在Hibernate中设置只读列?

    我不知道如何在 Hibernate 中强制只读列 我想将 idgroup 设置为只读列 即使我设置了insertable false and updatable false 在 hibernate SQL 中我可以读到 Hibernate
  • Firebird 全局临时表(GTT),触摸其他表吗?

    我有一个 Firebird 数据库 v 2 5 由于失去支持 我不允许在数据库中创建过程 视图或表 我的观点太长了 Too many Contexts of Relation Procedure Views Maximum allowed
  • 将 WebGL 非连续线渲染为单个对象

    我有多个 WebGL 线要渲染 它们都具有相同的渲染风格 因此 为了提高性能 我想在一次绘制调用中将它们全部渲染为单个对象 但问题是这些线路并不全部相互连接 请参阅此处的示例 http jsfiddle net b6jgS 6 http j
  • 在 C++ 中打包嵌套结构

    使用 Visual Studio 2017 以下给出 struct AAA 15 bytes double d short s char a1 char a2 char a3 char s4 char s5 struct BBB AAA d
  • 为什么异常处理不好? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 Google 的 Go 语言没有例外作为设计选择 而 Linux 名人 Linus 则称例外为垃圾 为什么 异常使编写代码变得非常容易 其中抛出
  • 如何在 C# 中获取下一个(或上一个)枚举值

    我有一个枚举 其定义如下 public enum eRat A 0 B 3 C 5 D 8 所以给定值eRat B 我想要得到下一个 即eRat C 我看到的解决方案是 没有范围检查 Array a Enum GetValues typeo
  • 如何使用 Salt Stack 执行多个命令?

    我尝试添加 mypack pkg installed pkgs mercurial git cmd run name mkdir p opt mypack cmd run hg pull u R opt mypack hg clone R
  • 为什么 FileInfo 显示额外的文件扩展名?

    我在为下载器创建文件下载列表时遇到问题 并且收到无法解释的 文件不存在 返回 我的 avi 文件返回 但 exe 和 txt 文件不存在 现在 通过拉入整个目录并检查文件内容 我发现我的 exe 文件显示 exe exe 我的 txt 文件
  • 检测 gtk.treeview 中的列何时调整大小

    当列的大小发生变化时 我可以捕获什么信号来检测gtk TreeView 我似乎无法在文档中找到它 gtk TreeViewColumn http library gnome org devel pygtk stable class gtkt
  • aarch64 是否有不可缓存(=缓存旁路)加载或存储指令?

    在sparc架构中 有一个ASI 地址空间指示符 被传递给加载 存储指令 因此如果ASI为0x20 则像IO访问一样绕过缓存 即使内存范围在页表中设置为可缓存 缓存也会被绕过 这有时非常方便 例如使用变量在核心之间同步时等 aarch64架