There are many ways to measure time of an event precisely. Probably the most common way is to use a counter, as for example used in the timer units of micro-controllers. Unfortunately, this approach is limited in precision to the clock at which the counter runs. A micro-controller gets usually to 10-20ns, while high performance systems might get down to 1ns. If higher precision is needed, then a method that runs independent of the system clock is required.