Multi-dimensional systems containing nested loops are widely used to model scientific applications such as image processing, geophysical signal processing and fluid dynamics. However, branches within these loops may degrade the performance of pipelined architectures. This paper presents the theory, supporting hardware and experiments of a novel technique, based on multi-dimensional retiming, for reducing pipeline hazards caused by branches within nested loops. This technique, called ``Multi-Dimensional Branch Anticipation Scheduling'', is able to achieve near-optimal schedule length for nested loops containing branch instructions. It transforms a multi-dimensional conditional data flow graph representing the problem, carries out conditional resource sharing and reduces additional hardware requirements incurred by propagation of branch control signals along the schedule. Such propagation is accomplished by ``Branch Anticipation Bits'' (babits). We further analyze the intricacies of branch anticipation control logic and show that the incurred hardware complexity is low. Thus we demonstrate the efficiency of the algorithm and feasibility of hardware support through a series of experiments.
Citation:
Ted Zhihong Yu, Edwin H.-M. Sha, Nelson Passos, Roy Dz-ching Ju, "Algorithm and Hardware Support for Branch Anticipation," glsvlsi, pp.163, 7th Great Lakes Symposium on VLSI, 1997