We'll use the average cost if we are not separately modelling contention. Otherwise, use the minimum (base) cost and let the contention or queueing modelling mechanism estimate the remainder.
If we are running with cross-compiled firmware, we do not have accurate instruction stream, so must use bulk estimates, on basic-block basis or coarser.
The value 'p' is the utilisation in the range 0 to 1. From queuing theory, with random arrivals, the queuing delay goes to infinity using a 1/(1-p) shape curve as p approaches unity. For uniform arrival and service times, the queuing delay goes sharply to infinity at unity.