Introducing control-flow inclusion to support pipelining in custom instruction set extensions

Marcela Zuluaga, Theo Kluter, Philip Brisk, Nigel Topham, Paolo Ienne
2009 2009 IEEE 7th Symposium on Application Specific Processors  
Multi-cycle Instruction set extensions (ISE) can be pipelined in order to increase their throughput; however, typical program traces seldom contain consecutive calls to the same ISE that would allow this temporal parallelism. Often, there are intermittent calls to branch instructions, at a minimum, that prevent the pipelined execution of subsequent calls to the same ISE within a loop. What is needed is ISEs that cover an entire loop body, which can create a stream of repeated calls to the same
more » ... SE during program execution; this, in turn, permits the use of hardware pipelining. To address this concern, we introduce a new type of ISE that borrows ideas from zero-overhead loop instructions to permit pipelined execution of loops. To further expose instruction-level parallelism, the ISE supports loops whose bodies form hyperblocks, which are regions of program control flow that have multiple exits (including loop iterations and break points within loops). These ISEs broaden the scope of instructionlevel parallelism and obtain higher speed ups compared to traditional ISEs, primarily through pipelining, the exploitation of spatial parallelism, and reducing the overhead of control flow statements and branches.
doi:10.1109/sasp.2009.5226328 dblp:conf/sasp/ZuluagaKBTI09 fatcat:a3vola3qvzd45ljm2jobnrelj4