1. How to update Pmiss efficiently? Most allocations should be fast, so it shouldn't be update with every call to allocate(). What I have now is I update every K calls.
Have you measured whether it actually makes a difference? I would expect memory access latency to dominate, at least in some scenarios.