Content 232 THE MICROARCHITECTURE LEVEL CHAP. 4 have often been implemented through microprogramming, as discussed in Chap. 1. Although IJVM is small, it is a good starting point for describing the control and sequencing of instructions. Our microarchitecture will contain a microprogram (in ROM), whose job is to fetch, decode, and execute IJVM instructions. We cannot use the Sun JVM inter- preter for the microprogram because we need a tiny microprogram that drives the individual gates in the actual hardware efficiently. In contrast, the Sun JVM interpreter was written in C for portability, and cannot control the hardware at the level of detail we need. Since the actual hardware used consists only of the basic components described in Chap. 3, in theory, after fully understanding this chapter, the reader should be able to go out and buy a large bag full of transistors and build this subset of the JVM machine. Students who successfully accomplish this task will be given extra credit (and a complete psychiatric examination).