A High-Speed Dynamic Instruction Scheduling Scheme for Superscalar Processors

Masahiro Goshima, Kengo Nishino, Yasuhiko Nakashima, Shin-ichiro Mori, Toshiaki Kitamura, Shinji Tomita


The wakeup logic is a part of the issuing window and is responsible to manage the ready flags of the operands for dynamic instruction scheduling. The conventional wakeup logic is based on association, and composed of a RAM and a CAM. Since the logic is not pipelinable and the delays of these memories are dominated by the wire delays, the logic will be more critical with deeper pipelines and smaller feature sizes. This paper describes a new scheduling scheme not based on the association but on matrices which represent the dependences between instructions. Since the update logic of the matrices detects the dependencies between instructions as the register renaming logic does, the wakeup operation is realized by just reading the matrices. This paper also describes a technique to reduce the effective size of the matrices at the cost of small IPC penalties. We actually designed the layouts of the logics guided by a 0.18um CMOS design rule provided by Fujitsu Limited, measured the areas, and calculated the delays. We also evaluated the penalties by cycle-level simulation. The evaluation results show that our scheme achieves 2.7GHz clock speed for the IPC degradation of about 1%.