Improving binary compatibility in VLIW machines through compiler assisted dynamic rescheduling

M. Biglari-Abhari, K. Eshraghian, M. Liebelt
{"title":"Improving binary compatibility in VLIW machines through compiler assisted dynamic rescheduling","authors":"M. Biglari-Abhari, K. Eshraghian, M. Liebelt","doi":"10.1109/EURMIC.2000.874657","DOIUrl":null,"url":null,"abstract":"One of the main problems that prevents extensive use of VLIW architectures for non-numeric programs is lack of object code (or binary) compatibility among different implementations of the same architecture. This is due to exposing all architectural features to generate code at compile time. New features of a VLIW machine may lead to incorrect results by executing the code compiled for the older machine. In this paper, a new approach to overcome this problem is presented, which we call dynamic VLIW generation (DVG). It is performed with the help of code annotation provided by the compiler, to reduce the complexity of the required hardware. In the DVG technique, operations are rescheduled for the new machine at the time of instruction cache miss repair. In this way, the rescheduler hardware is not located in the execution pipeline engine avoiding potentially longer cycle times. To simplify the dependency checking hardware, dependency information is encoded for each operation at compile time. This information can be combined into the final binary code, or may be provided as a separate file, which can be loaded into memory at execution time by the OS loader. In this technique operations can be rescheduled speculatively and a mechanism is presented to prevent destroying the contents of live registers. Experimental results show that the performance of rescheduled code using the DVG technique is about 10% worse than code compiled directly for the target processor.","PeriodicalId":138250,"journal":{"name":"Proceedings of the 26th Euromicro Conference. EUROMICRO 2000. Informatics: Inventing the Future","volume":"173 2","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2000-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 26th Euromicro Conference. EUROMICRO 2000. Informatics: Inventing the Future","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/EURMIC.2000.874657","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

One of the main problems that prevents extensive use of VLIW architectures for non-numeric programs is lack of object code (or binary) compatibility among different implementations of the same architecture. This is due to exposing all architectural features to generate code at compile time. New features of a VLIW machine may lead to incorrect results by executing the code compiled for the older machine. In this paper, a new approach to overcome this problem is presented, which we call dynamic VLIW generation (DVG). It is performed with the help of code annotation provided by the compiler, to reduce the complexity of the required hardware. In the DVG technique, operations are rescheduled for the new machine at the time of instruction cache miss repair. In this way, the rescheduler hardware is not located in the execution pipeline engine avoiding potentially longer cycle times. To simplify the dependency checking hardware, dependency information is encoded for each operation at compile time. This information can be combined into the final binary code, or may be provided as a separate file, which can be loaded into memory at execution time by the OS loader. In this technique operations can be rescheduled speculatively and a mechanism is presented to prevent destroying the contents of live registers. Experimental results show that the performance of rescheduled code using the DVG technique is about 10% worse than code compiled directly for the target processor.
通过编译器辅助的动态重调度改进VLIW机器中的二进制兼容性
阻碍在非数字程序中广泛使用VLIW体系结构的主要问题之一是同一体系结构的不同实现之间缺乏目标代码(或二进制代码)兼容性。这是由于在编译时公开所有架构特性以生成代码。VLIW机器的新特性可能会通过执行为旧机器编译的代码而导致不正确的结果。本文提出了一种新的方法来克服这个问题,我们称之为动态VLIW生成(DVG)。它是在编译器提供的代码注释的帮助下执行的,以减少所需硬件的复杂性。在DVG技术中,在指令缓存缺失修复时,对新机器重新调度操作。通过这种方式,重调程序硬件不位于执行管道引擎中,避免了可能更长的周期时间。为了简化依赖项检查硬件,在编译时为每个操作编码依赖项信息。这些信息可以合并到最终的二进制代码中,也可以作为一个单独的文件提供,在执行时由操作系统加载器加载到内存中。在这种技术中,操作可以推测地重新安排,并提出了一种机制来防止破坏活动寄存器的内容。实验结果表明,使用DVG技术的重调度代码的性能比直接在目标处理器上编译的代码差10%左右。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信