DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(gmp.info.gz) Assembler Software Pipelining

Info Catalog (gmp.info.gz) Assembler SIMD Instructions (gmp.info.gz) Assembler Coding (gmp.info.gz) Assembler Loop Unrolling
 
 Software Pipelining
 -------------------
 
 Software pipelining consists of scheduling instructions around the
 branch point in a loop.  For example a loop might issue a load not for
 use in the present iteration but the next, thereby allowing extra
 cycles for the data to arrive from memory.
 
    Naturally this is wanted only when doing things like loads or
 multiplies that take several cycles to complete, and only where a CPU
 has multiple functional units so that other work can be done in the
 meantime.
 
    A pipeline with several stages will have a data value in progress at
 each stage and each loop iteration moves them along one stage.  This is
 like juggling.
 
    If the latency of some instruction is greater than the loop time
 then it will be necessary to unroll, so one register has a result ready
 to use while another (or multiple others) are still in progress.
 ( Assembler Loop Unrolling).
 
Info Catalog (gmp.info.gz) Assembler SIMD Instructions (gmp.info.gz) Assembler Coding (gmp.info.gz) Assembler Loop Unrolling
automatically generated byinfo2html