IT世界|JDK 国产化CPU架构支持分享,Tencent
GIAC(GLOBALINTERNETARCHITECTURECONFERENCE)是长期关注互联网技术与架构的高可用架构技术社区和msup推出的 , 面向架构师、技术负责人及高端技术从业人员的年度技术架构大会 , 是中国地区规模最大的技术会议之一 。
今年的第六届GIAC大会上 , 在大数据架构进化中的JAVA专题 , 腾讯高级工程师傅杰博士发表了《TencentJDK国产化CPU架构支持分享》的主题演讲 。 以下为嘉宾演讲实录:
寄存器、操作数和指令描述都完成后 , JVM对CPU架构的支持已接近尾声了 。 此时 , 大家千万不要忘记了还有之前提到的CPU原子操作和内存屏障 。 如下页PPT所示 , HotSpot中定义了非常清晰的原子操作和内存屏障接口 , 大家只需根据处理器特性逐一实现即可 。 原子操作大家都很熟悉 , 那什么是内存屏障呢?下一节我会为大家详细介绍 。
处理器内存模型存在强弱之分 。 强内存模型以X86为代表;弱内存模型以ARM和PowerPC架构为代表 。 那么处理器内存模型的强弱是如何定义的呢?下面这张PPT展示了内存模型强弱划分的依据:按处理器允许访存指令重排序的多少来划分 。 一般地 , 允许访存指令重排序的情形越多 , 处理器内存模型越弱 , 反之越强 。 访存指令分为读(Load)和写(Store)两种操作 。 因此 , 可能的重排序情形包括读读(Load/Load)、读写(Load/Store)、写读(Store/Load)和写写(Store/Store)重排序 。 X86架构处理器仅允许写读(Store/Load)重排序 , 而ARM和PowerPC对上述四种重排序均允许 。 故X86通常被认为是强内存模型 , 而ARM和PowerPC被认为是弱内存模型 。
推荐阅读