Type Information Elimination from Objects on Architectures with Tagged Pointers Support

Type Information Elimination from Objects on Architectures with Tagged Pointers Support
复制标题

使用标记指针支持从体系结构上的对象中消除类型信息

DOI:
--
复制
发表时间:
2018
影响因子:
3.7
通讯作者:
M. Luján
M. Luján
中科院分区:
计算机科学2区
文献类型:
--
作者:
A. Rodchenko;Christos Kotselidis;A. Nisbet;Antoniu Pop;M. Luján

文献摘要

被引文献

相似文献

面向对象编程语言的实现将类型信息与每个对象相关联,以执行各种运行时任务,例如动态分派、类型内省和反射。存储这种关系的常用方法是在每个对象中插入一个指向关联类型信息的指针。然而,与非面向对象语言相比,这种方法引入了内存和性能开销。最近的64位计算机体系结构通过在存储器访问操作期间忽略存储器地址的多个位(标记)来增加对标记指针的支持,并将它们用于其他目的;主要是安全性。本文介绍了第一次调查如何利用这种硬件支持的Java虚拟机删除对象的类型信息。此外,我们提出了新的硬件扩展的地址生成和加载存储单元,以实现低开销类型的信息检索和标记的对象指针压缩-解压缩。评估已进行后,整合的Maxine VM和EQUIPIM微体系结构模拟器。在所有DaCapo基准测试套件中,pseudo-SPECjbb 2005、SLAMBench和GraphChi-PR执行完成后的结果显示,几何平均堆空间节省高达26%和10%,几何平均动态DRAM能耗减少高达50%和12%,几何平均执行时间减少高达49%和3%,而没有显著的性能下降。
Implementations of object-oriented programming languages associate type information with each object to perform various runtime tasks such as dynamic dispatch, type introspection, and reflection. A common means of storing such relation is by inserting a pointer to the associated type information into every object. Such an approach, however, introduces memory and performance overheads when compared with non-object-oriented languages. Recent 64-bit computer architectures have added support for tagged pointers by ignoring a number of bits - tag - of memory addresses during memory access operations and utilize them for other purposes; mainly security. This paper presents the first investigation into how this hardware support can be exploited by a Java Virtual Machine to remove type information from objects. Moreover, we propose novel hardware extensions to the address generation and load-store units to achieve low-overhead type information retrieval and tagged object pointers compression-decompression. The evaluation has been conducted after integrating the Maxine VM and the ZSim microarchitectural simulator. The results, across all the DaCapo benchmark suite, pseudo-SPECjbb2005, SLAMBench and GraphChi-PR executed to completion, show up to 26 and 10 percent geometric mean heap space savings, up to 50 and 12 percent geometric mean dynamic DRAM energy reduction, and up to 49 and 3 percent geometric mean execution time reduction with no significant performance regressions.