In contemporary CNC's, Feed mode is selected by G-codes as follows:
G93 – Inverse time
G94 – IPM or mm/min
G95 – Inch or mm per revolution
In the early days of NC inverse time was the only feed format available. Internally the control needs F/L for feed calculations
It was called feed-number, and for circular interpolation it was F/R.
Inverse time unit is 1/min (some controls use 1/sec.).
For example the block:
G1 G93 X__ F1
takes 1 minute to cut, regardless of X length.
F2 takes 30 seconds; F3 takes 20, and so on.
G93 cannot be used with newer G-codes; it was defined for g1 to g3. Also, when tool radius compensation is active the programmer cannot calculate L because a single block may insert a series of motions around corners that have nothing to do with the desired feed for the actual cut.
G94 is used today on all machines for regular 3-axis milling. L is calculated by the control as the square root of the sum of the squares of X,Y,Z. Since F represents vector feed it is most likely to be the same in the next block so F is modal.
G94 can also be used for 5-axis machines if TCP programming is available, because the XYZ data in the program is the actual XYZ on the part.
G95 is used mostly for turning machines. In milling it may be used internally for thread cutting cycles.