The em88110: emulating a superscalar processor

Assembly programming is a very important topic to teach computer architecture. Current computers include special techniques to improve performance such as pipeline and multiple instruction issue per cycle. But these kinds of computers are difficult to use in laboratory works because of the great amount of details of the target computer architecture that are not relevant to beginners. Hence, we decided to build a configurable emulator of a superscalar processor to create a wide set of laboratory works, from the simplest one that uses the computer as a serial processor to the most complex that uses the full set of performance improvements of a superscalar computer. Most of the computer parameters can be established by the student or the teacher providing a virtual machine that is easier to use. Students can do their laboratory work without taking into account the additional problems generated by a real computer.