Gil Tene:了解硬件事务内存

简介:

2016年纽约QCon上,Gil Tene在其演讲“了解硬件事务内存”中介绍了硬件事务内存(hardware transactional memory,HTM)。虽然HTM概念不是新的,现在终于有商业硬件支持了。HTM的目的是能够支持在内存中原子的进行多地址写入,以避免与其他合作线程产生不一致的情况。

Tene首先从解释内存缓存的四个状态开始:

无效 共享 排他 修改
同时他指出,考虑到硬件事务内存,还有两个额外的状态:

缓存行在操作中被读取 缓存行在操作中被修改
如果发送下列情况,事务必须被终止:其他CPU希望写入数据、读取已经被修改的数据和CPU希望失效其缓存。

根据Tene说法,硬件事务内存最大优势是摆脱串行块。最终目的是完全并行执行,并且仅在实际访问数据产生实际冲突时进行回滚。这和阿姆达尔定律有关,即当CPU核数越多,对运行速度的实际提升越少。如果应用程序中有10%的串行代码,10核CPU最多只能提速5倍。要实际达到提速10倍,可能需要使用将近100核CPU。

Tene然后介绍了锁竞争和数据竞争。例如当处理大型散列集合时,可能在读写完全不同的区域,但是整个散列集合都需要被加锁。通常锁竞争影响范围会比数据竞争大很多,但是只有数据竞争才会影响CPU的并行工作。因此,仅仅终止产生数据竞争的事务,可以彻底降低阿姆达尔定律影响,加速并行运算。

对于Java同步块,Tene解释了没有竞争的代码库可以和之前运行的速度相同。仅当发生实际数据冲突的地方,将会产生事务回滚,并且让代码并行的重新运行。对于Java应用程序,一旦Java虚拟机使用HTM,该过程是完全透明的,代码上不需要做任何修改。这在Hotspot 8 Java虚拟机的40更新之后实现。Tene页展示了简单的基准测试数据,可视化的展示了硬件事务内存的效果:即使散列集合中又5%的写比例,在增加更多CPU时,性能也能线性增加。

Gil Tene总结指出虽然对于开发者来说HTM使用是透明的,他们还是需要开始考虑应用程序中的数据竞争。多线程不应该修改一个变量,因为这样会导致数据竞争,并因HTM的优势无法被利用而无法提高运行速度。

请注意大部分QCon演讲材料会在会议结束后的几周后免费提供,演示文档可以在大会网站进行下载。同时,您也可以在InfoQ网站上观看关于这一主题对Gil Tene进行的采访。
本文转自d1net(转载)

相关文章
|
Linux
|
缓存 安全 Linux
Linux内存管理宏观篇(一):不同角度去看内存(硬件)
Linux内存管理宏观篇(一):不同角度去看内存(硬件)
157 0
|
存储 缓存 Java
Java中的缓冲流提升I/O性能,通过内存缓冲区减少对硬件访问
【6月更文挑战第22天】Java中的缓冲流提升I/O性能,通过内存缓冲区减少对硬件访问。`BufferedInputStream`和`BufferedOutputStream`用于字节流,缓存数据批量读写。`BufferedReader`和`BufferedWriter`处理字符流,支持按行操作。使用后务必关闭流。
183 3
|
12月前
|
传感器 人工智能 物联网
C 语言在计算机科学中尤其在硬件交互方面占据重要地位。本文探讨了 C 语言与硬件交互的主要方法,包括直接访问硬件寄存器、中断处理、I/O 端口操作、内存映射 I/O 和设备驱动程序开发
C 语言在计算机科学中尤其在硬件交互方面占据重要地位。本文探讨了 C 语言与硬件交互的主要方法,包括直接访问硬件寄存器、中断处理、I/O 端口操作、内存映射 I/O 和设备驱动程序开发,以及面临的挑战和未来趋势,旨在帮助读者深入了解并掌握这些关键技术。
307 6
|
安全
计算机硬件升级增加内存(RAM)
【8月更文挑战第5天】
1518 3
|
Linux 调度
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间
部署02-我们一般接触的是Mos和Wimdows这两款操作系统,很少接触到Linux,操作系统的概述,硬件是由计算机系统中由电子和机械,光电元件所组成的,CPU,内存,硬盘,软件是用户与计算机接口之间
|
存储 缓存 安全
从软件和硬件角度去看内存
从软件和硬件角度去看内存
259 0
|
缓存
计算机硬件之硬盘和内存条
计算机硬件之硬盘和内存条
701 0
|
缓存 内存技术
硬件 - CPU 缓存 SRAM 与内存 DRAM 的区别
硬件 - CPU 缓存 SRAM 与内存 DRAM 的区别
724 0
|
存储 Java Apache
Apache ZooKeeper - ZK的内存数据 + 持久化事务日志 + 数据快照 初探
Apache ZooKeeper - ZK的内存数据 + 持久化事务日志 + 数据快照 初探
480 0

热门文章

最新文章