【问题标题】:How hardware thread-level-speculation supported in modern cpus?现代 cpu 如何支持硬件线程级推测?
【发布时间】:2022-01-07 08:36:41
【问题描述】:

我只发现IBM尝试在Blue Gen/Q计算系统中支持它,但之后似乎放弃了。同时,Power 8 仍然支持硬件事务内存,如 tsuspend 指令,intel 也制作了他们的 TSX 指令。

那么,为什么在当前的cpu设计中似乎没有其他的努力去做tls,而只停留在学术研究上呢?

任何人都可以提供帮助,谢谢:)

【问题讨论】:

  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: multithreading architecture transactions cpu heterogeneous


【解决方案1】:

不幸的是,TSX很少被应用程序使用。部分原因是主流库和语言实现不使用它或不提供事务性内存功能。编译器内置也有少量支持,并非所有处理器都实现了这一点(它也开始成为主流)。这也是因为开发人员对(硬件)TSX 的存在也缺乏了解(遗憾的是,更普遍的是缺乏并行计算方法/算法方面的知识)。

此外,几年前有几个重要的漏洞与主要针对 Intel 硬件的 TSX 推测相关(ZombieLoad 1&2 和之前的侧信道定时攻击)。出于安全原因,人们可以禁用此功能。修复此类漏洞的补丁会在不使用此功能的应用程序中引入开销

在硬件支持方面,这远非完美。事实上,AFAIK、英特尔 Comet Lake 和 Ice Lake CPU 不再支持 TSX(但在 Sapphire Rapids 处理器中添加了新的事务内存指令),AMD 从未支持过,并且 POWER 10 删除了它们在以前的处理器版本中实现的类似功能(可能是由于由于上述原因)。 TSX 的受限事务内存 (RTM) 不向后兼容。必须在 x86/x64 代码中只考虑少数特定支持的处理器是很棘手的(需要实施后备解决方案)。更不用说包括限制在内的几个事务性内存指令集存在一些差异。

利用宝贵的晶体管和处理器工程师的时间来开发应用程序几乎不使用的硬件单元并不是很有效(除非大量使用它,包括基准测试)。但是,如果硬件功能不值得,至少在性能方面(尤其是引入额外可维护性开销的不可移植的低级功能),人们不会使用硬件功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多