That is one of my most favorite statements.

The caveat is that hardware is generally (probably always, but that's a dangerous word) faster than software and software is certainly more flexible than hardware (new software can be written to run on old hardware...old hardware will still be old hardware).

I just finished CS433 (Computer Organization) and a couple of the most interesting sections of the course dealt with the implementation of Tomasulo's Algorithm in hardware (with and without speculation) and the Transmeta Crusoe processor.

The implementation of Tomasulo's Algorithm (additional hardware on the chip) makes it possible to extract significant performance gains from an instruction set architecture running on a processor (very simplified description). The Transmeta Crusoe uses Code Morphing Software to translate and reorder x86 instructions to run on a VLIW processor core. Additionally, software replaces parts of the processor package that are traditionally hardware "on the chip."

I've got to go back and check, but I'm also pretty certain that Tomasulo's Algorithm is implemented on the Crusoe as software.

Tomasulo implemented as hardware or software, and the Transmeta Crusoe with software implementations of processor functionality help keep the line between hardware and software blurry. I like that the line is blurry and I hope it stays that way.