Premium
Using conditional execution to exploit instruction level concurrency
Author(s) -
Adams Rod,
Gray Sue
Publication year - 1995
Publication title -
software: practice and experience
Language(s) - English
Resource type - Journals
SCImago Journal Rank - 0.437
H-Index - 70
eISSN - 1097-024X
pISSN - 0038-0644
DOI - 10.1002/spe.4380250905
Subject(s) - computer science , instruction scheduling , instructions per cycle , parallel computing , scheduling (production processes) , exploit , out of order execution , branch predictor , compiler , concurrency , programming language , operating system , dynamic priority scheduling , schedule , two level scheduling , central processing unit , operations management , computer security , economics
Multiple‐instruction‐issue processors seek to improve performance over scalar RISC processors by providing multiple pipelined functional units in order to fetch, decode and execute several instructions per cycle. The process of identifying instructions which can be executed in parallel and distributing them between the available functional units is referred to as instruction scheduling. This paper describes a simple compile‐time scheduling technique, called conditional compaction, which uses the concept of conditional execution to move instructions across basic block boundaries. It then presents the results of an investigation into the performance of the scheduling technique using C benchmark programs scheduled for machines with different functional unit configurations. This paper represents the culmination of our investigation into how much performance improvement can be obtained using conditional execution as the sole scheduling technique.