热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

英特尔®事务同步扩展新指令(TSX-NI)与英特尔TSX的区别是什么?

如何解决《英特尔®事务同步扩展新指令(TSX-NI)与英特尔TSX的区别是什么?》经验,为你挑选了1个好方法。

我在英特尔的页面上找到了

https://ark.intel.com/products/97123/Intel-Core-i5-7500-Processor-6M-Cache-up-to-3_80-GHz

该处理器支持TSX-NI技术但我在谷歌上找不到任何关于它的信息.它与英特尔TSX相同.如果它是不同的,那么我如何使用它.

对不起,我的英语不好!:)



1> Margaret Blo..:

这似乎只是一个营销点缀.

我没有找到"TSX-NI",也没有提到互联网,英特尔手册和英特尔ISA扩展手册.

引用英特尔[ 1 ]

英特尔交易同步扩展(英特尔TSX)有两种版本:HLE和RTM.

由于它们的实现,这两个方面是分离的(要么可以与另一个分开支持),只有RTM引入新的指令.
所以他们可能指的是RTM.

我相信首先引入HLE,并且应该有支持HLE但不支持RTM的处理器(相反,虽然可能,但似乎难以置信).

所以,也许,这只是营销正确的说法:"这个CPU支持我们最新的TSX功能!".


作为参考,我在假设"TSX-NI"指的是"TSX RTM"的情况下,对英特尔TSX的两个部分做了简要介绍.
完整的参考资料可以在英特尔手册1 - 第15章中找到.

HLE

HLE(硬件锁定Elision)部分向后兼容.
我们仍然可以使用CPUID.07H.EBX.HLE [bit 4]测试其可用性,但它是通过更改前缀repne/ 语义来repe实现的.

此功能包含两个"新"前缀:xacquirexrelease.CPU现在能够进入事务状态,其中每个读取都被添加到事务的读取集中,并且每个写入都被添加到事务的写入集中,并且不会执行到内存.
粒度是缓存行的大小.

如果线程从读取集读取,或写入另一个线程的读取集或写入集,则中止事务.
CPU恢复在事务开始时的架构状态,并以非事务方式重新执行指令.
如果事务成功完成,则所有已写入的内存将完全原子地提交.

交易由xacquire和分隔xrelease.
它们可以嵌套,但是深度有限制(在此之上事务被中止)以及可以省略的不同锁的数量(超过CPU不会忽略新锁但不会中止事务).
当嵌套事务中止时,CPU将重新启动执行最外层事务.

xacquire(操作码F2,相同repne)用于获取锁定的指令(即写入锁定)并标记事务的开始.
此读取不会添加到写入集中(或者,当每个线程写入锁定并且将立即中止任何后续事务时,不会发生并发).
它被添加到读集中.

xrelease(操作码F3)用于释放锁定并标记事务结束的指令前面.
xrelease必须在与其xacquire配对的同一锁上使用并完成交易.

xacquire只能与lock这些说明的d版本一起使用:ADD, ADC, AND, BTC, BTR, BTS, CMPXCHG, CMPXCHG8B, DEC, INC, NEG, NOT, OR, SBB, SUB, XOR, XADD, XCHG.
xrelease使用相同的指令加上MOV mem, regMOV mem, imm不带lock前缀.

xtest如果存在HLE(或RTM),则可以使用新指令,它设置ZF是处理器不在事务内.

RTM

RTM(受限制的事务性内存)不向后兼容.
可以使用CPUID.07H.EBX.RTM [bit 11]进行测试.

它引入了三个新指令:xbegin,xendxabort.
它们只是已指定且常见的事务执行功能的新接口.

xbegin必须提供,作为一个相对偏移,指针到回退代码路径.
只要事务无法提交,就会执行此代码.
在这种情况下eax持有中止的原因.
xend结束事务并指示CPU提交它.
xabort让程序员使用自定义错误代码显式中止事务.

英特尔不保证处理器成功提交事务的能力.
虽然HLE具有一组非常具体的条件,但RTM是一种"尽力而为"的功能 - 因此需要回退代码.

RTM比HLE更低级,它允许程序员使用事务性内存,无论是否使用锁.

混合HLE和RTM

引用英特尔:

HLE和RTM嵌套在一起的行为-HLE在RTM内部或RTM内的HLE-是特定于实现的.但是,在所有情况下,实现都将保持HLE和RTM语义.当在RTM区域内使用时,实现可以选择忽略HLE提示,并且当在HLE区域内使用RTM指令时可以导致事务中止.在后一种情况下,从事务执行到非事务执行的转换无缝地发生,因为处理器将重新执行HLE区域而不实际进行省略,然后执行RTM指令.


推荐阅读
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 高端存储技术演进与趋势
    本文探讨了高端存储技术的发展趋势,包括松耦合架构、虚拟化、高性能、高安全性和智能化等方面。同时,分析了全闪存阵列和中端存储集群对高端存储市场的冲击,以及高端存储在不同应用场景中的发展趋势。 ... [详细]
  • 应用链时代,详解 Avalanche 与 Cosmos 的差异 ... [详细]
  • Java高并发与多线程(二):线程的实现方式详解
    本文将深入探讨Java中线程的三种主要实现方式,包括继承Thread类、实现Runnable接口和实现Callable接口,并分析它们之间的异同及其应用场景。 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • 本文详细解析了ASP.NET 2.0中的Callback机制,不仅介绍了基本的使用方法,还深入探讨了其背后的实现原理。通过对比Atlas框架,帮助读者更好地理解和应用这一机制。 ... [详细]
  • 三角测量计算三维坐标的代码_双目三维重建——层次化重建思考
    双目三维重建——层次化重建思考FesianXu2020.7.22atANTFINANCIALintern前言本文是笔者阅读[1]第10章内容的笔记,本文从宏观的角度阐 ... [详细]
  • Visual Studio Code (VSCode) 是一款功能强大的源代码编辑器,支持多种编程语言,具备丰富的扩展生态。本文将详细介绍如何在 macOS 上安装、配置并使用 VSCode。 ... [详细]
  • 最详尽的4K技术科普
    什么是4K?4K是一个分辨率的范畴,即40962160的像素分辨率,一般用于专业设备居多,目前家庭用的设备,如 ... [详细]
  • 本章介绍了TCP/IP协议族中的链路层,其主要功能是为IP模块发送和接收IP数据报。链路层还支持一些辅助性协议,如ARP。此外,本文详细探讨了不同类型的链路层技术及其应用。 ... [详细]
  • 本文通过思维导图的形式,深入解析了大型网站技术架构的核心原理与实际案例。首先,探讨了大型网站架构的演化过程,从单体应用到分布式系统的转变,以及各阶段的关键技术和挑战。接着,详细分析了常见的大型网站架构模式,包括负载均衡、缓存机制、数据库设计等,并结合具体案例进行说明。这些内容不仅有助于理解大型网站的技术实现,还能为实际项目提供宝贵的参考。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 本文深入解析了JDK 8中HashMap的源代码,重点探讨了put方法的工作机制及其内部参数的设定原理。HashMap允许键和值为null,但键为null的情况只能出现一次,因为null键在内部通过索引0进行存储。文章详细分析了capacity(容量)、size(大小)、loadFactor(加载因子)以及红黑树转换阈值的设定原则,帮助读者更好地理解HashMap的高效实现和性能优化策略。 ... [详细]
  • 深入解析Java虚拟机的内存分区与管理机制
    Java虚拟机的内存分区与管理机制复杂且精细。其中,某些内存区域在虚拟机启动时即创建并持续存在,而另一些则随用户线程的生命周期动态创建和销毁。例如,每个线程都拥有一个独立的程序计数器,确保线程切换后能够准确恢复到之前的执行位置。这种设计不仅提高了多线程环境下的执行效率,还增强了系统的稳定性和可靠性。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
author-avatar
罂粟花wd2010
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有