Hello Wang,
it is only EIGRP that can perform load balancing over unequal cost links.
For equal cost links CEF allocates 16 buckets and maps them to the the physical links.
the result of a binary operation is used to associated a packet to an outgoing interface:
Source IP address EXOR DEstination IP Address EXOR hash
the hash is a seed that changes only at every reload.
Actually the last 4 bits are used so that each flow can be classified in one bucket.
then the outgoing interface is the one asscociated to the result of the exor operation.
Another way to see is that m bits are used so that 2^m is equal to N number of links (if N is even)
the rule is simple and pre-established
Hope to help
Giuseppe