A radical new idea for teaching computer architecture is to largely replace descriptions of architectures by executable, i.e., simulatable and synthesizable, descriptions. An architectural description that is not executable would be as irrelevant as a computer program that is never run. For different reasons neither software languages like C, C++ or Java, nor RTL languages like Verilog or VHDL are adequate for pliable architectural descriptions. Consequently, learning to read and write architectural descriptions in a language with appropriate concurrency model has to be an integral part of the new approach. Executable descriptions would provide solid foundations to study area/performance/power trade-offs using more advanced tools on one hand and to develop proper testing and verification strategies on the other.
Many people are contributing to this undergraduate curriculum development: Professors Joel Emer, Li-Shiuan Peh and my students notably, Murali Vijayaraghavan, Asif Khan, Myron King at MIT; Prof Jihong Kim at SNU; Prof Derek Chiou at UT Austin and Dr R.S.Nikhil at Bluespec.