小红花·文摘
  • 首页
  • 广场
  • 排行榜🏆
  • 直播
  • FAQ
Dify.AI
条件分支预测器逆向工程(以 Apple M1 Firestorm 为例)

本文以Apple M1 Firestorm为例,详细探讨了条件分支预测器的逆向工程方法,包括分支历史记录和TAGE算法的实现。研究发现,M1最多可记录100条分支历史,揭示了分支地址和目的地址对预测的影响,并成功逆向多个处理器的分支预测器。

条件分支预测器逆向工程(以 Apple M1 Firestorm 为例)

杰哥的小笔记
杰哥的小笔记 · 2025-10-28T00:00:00Z

在高性能计算中,if语句可能导致CPU流水线效率低下,分支预测失败会浪费15-20个时钟周期。无分支编程通过消除条件跳转来优化性能,适用于不可预测的分支情况。文章介绍了无分支编程的基本技巧及其在二分查找和快速排序中的应用,强调了其在特定场景下的优势和局限性。

无分支编程:当 if 成为性能杀手

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2025-07-15T00:00:00Z
AMD Zen 2 的 BTB 结构分析

AMD Zen 2 的 BTB 结构与 Zen 1 相似,但容量有所增加,具有三级 BTB(L0、L1 和 L2),容量分别为 8+8、512 和 7168 条分支。与 ARM Neoverse N1 相比,Zen 2 在 BTB 容量上占优,但延迟更长,且两者均未实现单周期预测两条分支。

AMD Zen 2 的 BTB 结构分析

杰哥的小笔记
杰哥的小笔记 · 2025-07-08T00:00:00Z
ITTAGE间接分支预测器

现代CPU在字节码解释器中的间接跳转预测表现优异,尤其是使用ITTAGE分支预测器。该预测器通过历史数据映射预测分支行为,并动态选择历史长度以提高准确性。TAGE和ITTAGE的设计展示了动态选择历史长度的潜力,可能对覆盖引导模糊测试等领域具有启发意义。

ITTAGE间接分支预测器

Posts on Made of Bugs
Posts on Made of Bugs · 2025-07-04T21:30:00Z
ARM Neoverse V1 (代号 Zeus) 的 BTB 结构分析

ARM Neoverse V1的BTB结构分析显示,具有96条入口的nano BTB和8K条入口的主BTB。测试表明,nano BTB在无条件分支时每周期可预测两条分支,但在条件分支时容量减半,无法同时预测。主BTB在特定条件下存在延迟和性能瓶颈。整体来看,Neoverse V1在不同分支类型下表现复杂,存在遗留问题。

ARM Neoverse V1 (代号 Zeus) 的 BTB 结构分析

杰哥的小笔记
杰哥的小笔记 · 2025-06-23T00:00:00Z
微处理器中的流水线技术是什么?

流水线技术通过重叠执行多条指令来提高微处理器的指令吞吐量,类似于汽车工厂的各个阶段同时处理不同任务。其优点包括更高的吞吐量和更好的CPU性能,但也面临转发、停顿和分支预测等技术带来的限制和风险。

微处理器中的流水线技术是什么?

DEV Community
DEV Community · 2025-05-30T07:10:37Z
分支预测(所有处理器)

现代微处理器利用流水线技术分阶段执行指令,以提高并行处理能力。分支预测用于推测条件语句的执行路径,从而提升性能。投机执行是一种优化技术,但可能导致安全漏洞(如Spectre),需通过硬件和软件手段进行防护。

分支预测(所有处理器)

DEV Community
DEV Community · 2025-05-04T15:11:21Z
浅谈乱序执行 CPU(三:前端)

本文讨论了处理器前端的部分,包括取指令译码和分支预测。通过使用Fetch Buffer来处理指令条数不匹配的情况,并结合分支预测进行优化。分支预测可以使用TAGE等方法,其中TAGE是目前主流的算法。此外,还介绍了Short Forward Branch优化,通过条件执行替代分支指令来提高性能。这种优化可以在硬件层面实现,也可以由编译器支持。

浅谈乱序执行 CPU(三:前端)

杰哥的小笔记
杰哥的小笔记 · 2024-09-12T00:00:00Z
三星 Exynos CPU 微架构学习笔记

本文总结了三星Exynos CPU微架构的演进,重点介绍了分支预测器的设计与优化。Exynos系列采用了多种分支预测技术,如Scaled Hashed Perceptron和多级BTB,提升了预测性能。Exynos M1至M6逐步改进了分支预测器的容量和效率,特别引入了0-bubble预测器和uOP缓存,显著提高了处理速度和能效。同时,论文探讨了分支预测的安全性问题,并提出了防止跨上下文攻击的措施。

三星 Exynos CPU 微架构学习笔记

杰哥的小笔记
杰哥的小笔记 · 2024-09-10T00:00:00Z
现代分支预测:从学术界到工业界

本文讨论了分支预测的发展和应用,介绍了历史发展和现代算法TAGE的设计原理。讨论了分支预测中的挑战和问题,以及工业界关注的因素。提出了一些新的思路和方法来提高准确率和性能。

现代分支预测:从学术界到工业界

Easton Man's Blog
Easton Man's Blog · 2023-12-31T12:51:26Z

MySQL 8.0.29新增了即时添加或删除表中列的功能,但在读取密集的场景中导致了5%至10%的性能回归。回归是由于处理数据解析函数中的row_version信息的额外开销所致。为了解决这个问题,文章建议将某些函数内联,简化get_rec_insert_state函数的逻辑,并将switch语句改为if/else语句以优化编译器的分支预测。这些修改在oltp_read_only场景中实现了3%至5%的性能提升。

\#issue 111538 MySQL 8.0 instant add/drop column 性能回退问题

baotiao
baotiao · 2023-12-10T00:00:00Z
比较不同CPU下的分支预测

本文比较了不同CPU下的分支预测性能,通过测试验证了其对性能的影响。在x86和aarch64架构下,对比了Intel x86 8163、ARM鲲鹏920、M710和Hygon 7260的差异性。开启gcc O3优化后,所有CPU的性能有所提升。

比较不同CPU下的分支预测

plantegg
plantegg · 2023-04-16T04:30:03Z
  • <<
  • <
  • 1 (current)
  • >
  • >>
👤 个人中心
在公众号发送验证码完成验证
登录验证
在本设备完成一次验证即可继续使用

完成下面两步后,将自动完成登录并继续当前操作。

1 关注公众号
小红花技术领袖公众号二维码
小红花技术领袖
如果当前 App 无法识别二维码,请在微信搜索并关注该公众号
2 发送验证码
在公众号对话中发送下面 4 位验证码
小红花技术领袖俱乐部
小红花·文摘:汇聚分发优质内容
小红花技术领袖俱乐部
Copyright © 2021-
粤ICP备2022094092号-1
公众号 小红花技术领袖俱乐部公众号二维码
视频号 小红花技术领袖俱乐部视频号二维码