超长指令字架构和ELI-512
摘要
用激进的称为轨迹调度的技术编译普通的科学应用程序,我们为并行机器生成代码,其运行这些程序将会比等价的顺序机器来得快 – 我们期望是 10 到 30 倍快。
轨迹调度为称为超长指令字架构的机器生成代码。在超长指令字机器中,许多静态调度,紧密耦合,和细粒度的操作都是在单指令流里并行执行的。VLIW 是一些当前架构的并行扩展。
这些现存的架构从未突破基本的性能屏障。它们能从并行中获得的加速比从没有超过 2 到 3 倍。并不是说我们不能建造这种更高并行类型的机器;而是在轨迹调度之前,我们不知道如何为为它们生成代码。轨迹调度会在普通代码中发现足够多的并行性,从而可以证明考虑高并行度的 VLIW 是合理的。
在耶鲁,我们正在建造一个这种类型的机器。我们的机器,ELI-512,有超过 500 位的水平指令字,每个周期会执行 10 到 30 条 RISC 级别的操作 [Patterson 82]。ELI 表示极大长字指令;512 表示我们希望达成的指令字大小。(当前的设计已经有 1200 位指令字了。)
一旦清楚了我们可以为 VLIW 编译代码,一些新的问题就会出现,本文会给出这些问题的答案。我们如何在不使得机器太大的情况下,在每个周期里放入足够多的测试?我们如何在不使得机器太慢的情况下,在每个周期里放入足够多的内存依赖?