·        
Discuss the overhead of branching and why the
most common case should be tested first in the (if – else) if construct to
speed up execution. 
o  
Modern processors use pipelining.
![]()  | 
| From Wikipedia | 
o  
This means that multiple commands are served in
parallel
o  
Ex:  in
clock cycle 4
§  Cmd1: Fetch from memory
§  Cmd 2: Decode to the ALU
§  Cmd 3: Execute
§  Cmd 4: Write the result to the register or the
memory
o  
This requires that the CPU know the next
commands to execute
o  
If we have conditional branches, then, the CPU
will not be able to know the next commands, and then it will not be able to
utilize the pipelining.
o  
Hence, it is recommended that the most common condition
be the first condition in if-else statement, so we do not have a lot of
conditional branching.

No comments:
Post a Comment