高级检索

    一种监测函数语义信息访存地址序列的方法

    An Approach for Monitoring Memory Address Traces with Functional Semantic Information

    • 摘要: 准确地获取应用程序在真实系统上运行的访存地址序列(traces)是进行内存系统调度及结构优化的基础.HMTT是自主研发的软硬件结合的内存监测分析系统,能够实时获取完整的全系统访存traces.但是得到的traces与应用程序上层事件之间存在语义鸿沟问题,比如上层函数执行流与访存traces的同步问题.针对该问题提出了一种软硬件结合获取包含函数级别语义信息访存traces的方法,软件方面通过二进制插桩的方式,直接修改内存中的进程映像,在目标函数的入口及出口各插入标记tag访存指令,进而能够被HMTT卡监测并识别.采用二进制插桩不需要程序的源代码,不需要对程序重新编译链接,而且引入的运行开销很小.实验表明采用软硬件结合的方式能够有效地获取包含函数级别语义信息的访存traces,对于SPECCPU2006中的访存密集型程序引入的性能开销只是原程序的62%,而使用Pin工具的纯软件方式获取访存traces将导致至少10.4倍的性能开销.

       

      Abstract: Accurate monitoring memory traces of applications running on real systems is the basis of memory system scheduling and architecture optimization. HMTT is a hybrid hardware/software memory traces tracker system, which is able to track full-system memory traces in real time. But there exists a semantic gap between memory traces and high level application events, such as synchronization problem between upper functional execution flow and memory traces. In this paper, we propose a hybrid hardware/software approach for monitoring memory traces with functional level semantic information. It directly modifies the process image in memory with binary instrumentation at the beginning of a process, by respectively inserting an extra tag memory access instruction at the entry and exit of each target function, which will be tracked and identified by HMTT. With binary instrumentation, there is no need to require source code of applications, no need to re-compile or re-link applications, and the run time overhead is quite low. The experimental results show that our hybrid hardware/software approach can effectively track memory traces with functional semantic information. For memory intensive applications in SPECCPU2006, the average run time overhead is 62%, and the pure software approach run time overhead with Pin is at least 10.4 times, compared with the original run time.

       

    /

    返回文章
    返回