The left half of the 556 dual timer IC is used as a fixed frequency square wave oscillator. The oscillator signal is fed into the right half of the 556 which is configured as a variable pulse width one-shot monostable multivibrator (pulse stretcher). The output of the one-shot is a variable width square wave pulse, the pulse width is set with the speed control pot on the control voltage input. The variable width output pulse switches the IRF521 MOSFET transistor on and off. The MOSFET amplifies the current of this signal so that it is powerful enough to control a small DC motor. The 311 comparator is used to cut off the one-shot via the reset pin when the control voltage is below a certain threshold, the 311 is also controlled by the speed control pot. The cut off circuit is necessary because the 556 one-shot circuit will always put out a small pulse, even when the control voltage is at zero.
Read more Source: