Recommended testbench architecture for comparing implementation specific things to the reference model

I have scoreboard and comparator for tracking cache writes and load data in the design. There are
other things like writing of line fill buffers to the cache and cache arbitration. I want to compare
what the reference model expects to what happens in the design.

What’s the recommended way of doing this. I can do the checking in a monitor and retrieve expected
values from the reference model with a TLM get request. Is that the standard way of doing things?