Read, use, simulate, experiment and build: an integrated approach for teaching computer architecture

In this paper we present an integrated approach for teaching undergraduates Computer Architecture. Our approach consists of five steps: "read", which corresponds to studying the textbook theory, "use", which corresponds to using a simulator with appropriate graphical features to visualise the application of the theory, "simulate", which corresponds to developing an architectural simulation, "experiment", which corresponds to modifying the architectural simulation and observing the impact that changes make to performance, and finally "build", which corresponds to developing a low-level hardware model in a standard Hardware Description Language. In our experience, going down to the gate-level is of great importance, as students often find difficult to visualise how different architectural approaches affect the actual hardware (both datapath and control). By following this five-step approach in our teaching we observed a significant increase in both student performance and interest in Computer Architecture and hardware design.