问题标签 [intel-tsx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
assembly - 英特尔 TSX 前缀是否在 AMD 上作为 NOP 执行(安全)?
我有一个在 Intel 和 AMD x86 机器上运行的应用程序的 MASM 同步代码。
我想使用 Intel TSX 前缀来增强它,特别是 XACQUIRE 和 XRELEASE。
如果我为 Intel 正确修改我的代码,当我尝试在 AMD 机器上运行它时会发生什么?英特尔表示,这些设计是为了向后兼容,大概意味着它们在没有 TSX 的英特尔 CPU 上什么都不做。
我知道 AMD 还没有实现 TSX。但是这些前缀在 AMD CPU 上运行安全吗?这种行为是否记录在 AMD 手册中的某个地方,或者假设这是安全的并且永远是安全的,是在玩火吗?
c++ - 如何将 Intel TSX 与 C++ 内存模型一起使用?
我认为 C++ 还没有涵盖任何类型的事务内存,但 TSX 仍然可以以某种方式使用“好像规则”来适应由 C++ 内存模型管理的东西。
那么,成功的 HLE 操作或成功的 RTM 事务会发生什么?
说“存在数据竞争,但没关系”并没有多大帮助,因为它没有阐明“好的”是什么意思。
使用 HLE 可能可以将其视为“先前的操作发生在后续操作之前。就好像该部分仍然被被省略的锁所保护”。
RTM 是什么?因为甚至没有省略的锁,只有(可能是非原子的)内存操作,可以是加载、存储、两者,或无操作。什么与什么同步?在什么之前会发生什么?
c - Intel-TSX:为什么 rtm 失败了?
我是使用 Intel-TSX 的新手。所以,请纠正我的任何术语/概念错误。
我正在尝试使用此处的 polarssl 库编写自定义 rsa 引擎(我知道它很旧,但我发现它很容易理解)。我有以下代码,
rtm 块内的代码不起作用。但是,相同的代码在 rtm 块之外工作。运行代码后,我得到以下输出,
关于如何解决它的任何帮助/建议?
c - Intel-TSX:为什么 rtm 表现得很奇怪?
我有以下使用 Intel-rtm 的代码,
rtmCheck.c:
如果我用下面的 Makefile1 编译,它总是失败。我想这是意料之中的。我没关系。
生成文件1
输出:
但我有另一个 Makefile2。如果我用这个(Makefile2)编译我的代码,这每次都有效。只是不明白为什么?
生成文件2:
输出:
上面的 Make 文件使用了一些静态库。但我没有使用图书馆的任何东西。有人可以告诉我为什么会这样吗?