当前位置: X-MOL 学术J. Syst. Archit. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Compiling for time-predictability with dual-issue single-path code
Journal of Systems Architecture ( IF 4.5 ) Pub Date : 2021-07-03 , DOI: 10.1016/j.sysarc.2021.102230
Emad Jacob Maroun 1 , Martin Schoeberl 2 , Peter Puschner 1
Affiliation  

Designed for real-time systems, the Patmos instruction-set architecture’s features ensure a high degree of predictability. One such feature is its dual-issue pipeline, which can issue and execute bundles of up to two instructions at a time. Executing instructions in the second issue slot is a predictable way to increase the throughput of a processor, but without dedicated support from the compiler, this benefit cannot be unlocked. A compiler generates highly predictable programs by generating single-path code. This technique produces code that always follows the same trace of instructions. While Patmos’ compiler can already produce single-path code, it does not assign any instructions to the second issue-slot. This limitation is unfortunate, as single-path code inherently possesses a high degree of instruction-level parallelism. In this paper, we present a single-path code generation technique with support for dual-issue pipelines. It can also support different bundling algorithms, which allows changing algorithms without having to edit other parts of the compiler. We present a simple bundling algorithm plugged into the single-path code generator. It looks for branches and bundles the basic blocks on each path of the branch. While this specific bundling algorithm is too simple to provide a real-world benefit, it highlights the potential that further work on bundling algorithms can unlock.



中文翻译:

使用双问题单路径代码进行时间可预测性编译

Patmos 指令集架构的特性专为实时系统而设计,可确保高度的可预测性。其中一项功能是它的双发布流水线,它可以一次发布和执行多达两条指令的捆绑包。在第二个发布槽中执行指令是增加处理器吞吐量的一种可预测的方式,但如果没有编译器的专门支持,则无法释放这种好处。编译器通过生成单路径代码生成高度可预测的程序。这种技术生成的代码始终遵循相同的指令轨迹。虽然 Patmos 的编译器已经可以生成单路径代码,但它不会为第二个问题槽分配任何指令。这种限制是不幸的,因为单路径代码固有地具有高度的指令级并行性。在本文中,我们提出了一种支持双问题流水线的单路径代码生成技术。它还可以支持不同的捆绑算法,允许更改算法而无需编辑编译器的其他部分。我们提出了一种插入单路径代码生成器的简单捆绑算法。它寻找分支并将基本块捆绑在分支的每条路径上。虽然这种特定的捆绑算法过于简单,无法提供现实世界的好处,但它突出了捆绑算法的进一步工作可以解锁的潜力。我们提出了一种插入单路径代码生成器的简单捆绑算法。它寻找分支并将基本块捆绑在分支的每条路径上。虽然这种特定的捆绑算法过于简单,无法提供现实世界的好处,但它突出了捆绑算法的进一步工作可以解锁的潜力。我们提出了一种插入单路径代码生成器的简单捆绑算法。它寻找分支并将基本块捆绑在分支的每条路径上。虽然这种特定的捆绑算法过于简单,无法提供现实世界的好处,但它突出了捆绑算法的进一步工作可以解锁的潜力。

更新日期:2021-07-04
down
wechat
bug