How the delay locked loop (DLL) align the clock?
The DLL takes the input clock and feeds it to the clock distribution network through a programmable delay line. Then it feeds back the output of the clock distribution net back to the controller, which adjusts the actual delay amount needed to line up the clock edges at the output with the clock edges at the input.  

The end result is minimal clock skew across the chip through the clock distribution network. 

Usually the delay line is not infinitely adjustable, but is adjustable in discrete steps, and the controller will have to choose between one position or the other as it tries to align the clock edges. So the final clock will have some small skew still remaining, but the use of the DLL is still helpful to minimize the amount of skew.