Microsoft E2 Edge Processor
millcomputing.com
millcomputing.com
You keep a list (bitmap) of registers (hazards, really - MMU exceptions are hazards too) to be computed, you issue instructions whenever their hazards are cleared (will be cleared just before they read operands).
It is quite on par with the renaming machinery used in contemporary CPUs and is much, much easier to implement.