首页 文章

与TSX相关的Skylake勘误表SKL-105的状态如何?

提问于
浏览
5

众所周知,英特尔不得不通过微代码更新来禁用Haswell系列处理器中的TSX . 这是由于TSX实现中的一个错误,如果使用这些指令可能会产生错误的结果 .

似乎不太为人所知的是,在新的架构Skylake上,显然还有一个影响TSX的勘误表 . 特别是这里提到的勘误表“SKL-105”:

http://www.intel.com/content/www/us/en/processors/core/desktop-6th-gen-core-family-spec-update.html

它明确指出使用TSX会导致不可预测的系统行为 . 但是,它还指出BIOS可以进行修复 . 然而,问题是这个修复需要什么 . 是否像Haswell微码“修复”那样完全禁用TSX?谷歌搜索“SKL105”没有结果,所以社区似乎通常没有意识到它?

一些用户注意到TSX功能被“瘫痪”禁用(但似乎没有意识到上面的勘误表):

https://www.reddit.com/r/hardware/comments/44k218/intel_disables_tsx_transactional_memory_again_in/

奇怪的是,如果只有某些CPU的变体受到影响,因为人们会认为它们都会共享相同的微体系结构,因此同样会受到这个bug的影响 .

顺便说一句这样的微码“修复”的另一种方式可以操作,甚至可能更隐蔽:我认为有可能进行仍然暴露TSX存在的微代码更新(使得它似乎仍然启用了功能)但是会覆盖新的TSX指令的实现,其中“虚拟实现”实际上永远不会忽略锁,实际上只是以老式的方式执行代码,从而避免了错误,但也提到了TSX可以提供的性能改进 . 确定是否发生这种情况的唯一方法是通过性能测量 .

任何人都有关于Skylake TSX状态的更多信息?在任何情况下,奇怪的是,没有更多的信息发布,人们必须猜测受影响的是什么,什么不是 . 事实上,如果该功能使用安全 .

我有一个6700K,功能仍在那里 . 但这也取决于BIOS制造商是否采用了微码更新,而且我还没有实际测量性能,所以我不能排除它仍然可能已被禁用cf.上一段 .

1 回答

  • 5

    据我所知,它应该是2016-07-14最新的公共微代码更新包 . 对于Skylake,这将是Skylake基本微码的修订版0x9d / 0x9e(处理器签名0x406e3和0x506e3) .

    这个新的TSX错误似乎也出现在Broadwell上 . 我认为它也是通过随新的Skylake微码更新发布的新一批Broadwell- *微码更新得到修复的 .

    对于Linux,它通过引导加载程序发送的数据更新微码,应用更新是微不足道的,它已经在大多数(严重)发行版中可用 . 对于Windows,您需要检测系统供应商以获取EFI / BIOS更新 .

    对不起,我没有办法在最新的Skylake / Broadwell微码中测试TSX,以检查它是否是锁定或"always failing" . 至于禁用TSX,您必须了解它对L3有效性(它不是免费的!)和功耗有实际影响,在具有较小L3的任何东西上使BIOS禁用TSX会很有意义 .

    有趣的是,TSX“鸡位”上的信息不公开,我们不知道如何禁用(或重新启用)它 .

相关问题