The instruction "wbinvd" writes back modified cache content and marks the caches empty. It executes a bus cycle to make external chaches flush their data. Unfortunatly, it is a priveleged instruction. But if it is possible to run the test program under something like DOS, this is the way to go. This has the advantage of keeping the cache footprint of the "OS" very small.