How does BA6220 motor speed controller actually work?
To understand how this IC works, consider the equivalent circuit of a DC motor:-







simulate this circuit &ndash; Schematic created using CircuitLab

Rm is the total series resistance of the windings, commutator and brushes etc. Vm is the voltage the motor generates as it spins. If the motor had zero internal resistance then when power was applied it would instantly speed up until generator voltage (back-emf) equaled the supply voltage, and the speed would stay constant no matter what the load.  

However a real motor does have some resistance. The motor has to draw current to produce torque, which causes a voltage drop in the resistance so it slows down. In my example the motor produces 1,000rpm per volt, so to get 5,500rpm it needs 5.5V. However at 0.1A it needs an extra 0.5V across the terminals (6V total) to account for voltage drop in Rm. 

This would be fine if the load was constant, but if the load varies then motor speed also varies depending on current draw. One way to improve speed 
regulation is to produce a 'negative resistance' that cancels out the positive resistance in the motor, leaving only the back-emf (in practice only partial cancellation is possible because if the total resistance becomes even slightly negative the circuit will go unstable).       

The BA6220 takes an adjustable proportion of motor voltage as positive feedback pin 4, and negative feedback direct from the motor on pin 8. The positive feedback creates a 'negative resistance' which cancels the internal resistance of the motor, allowing it to 'measure the back-emf'. Motor voltage is then regulated by comparing it to Vref, creating an almost constant internal motor voltage (terminal voltage actually rises as motor current increases, as it attempts to compensate for voltage drop across Rm).

I don't know of any equivalent modern chips, but the TD7274 is another IC that works on the same principle.