This paper is a continuation of the authors’ work in using a model of microinstructions and microoperations to drive a microcode development system. A previous paper [1] described the model in detail. These models have been used in microcode compaction (for which they were developed) and in directing code generation in microcode compilers. The current work describes application of the model to a proposed general microcode simulator.
Their microoperation model for simulation is the same as that for compaction except for a pointer to a description of the microoperation semantics. As in compaction, a data dependency graph is built to help control the order in which the microoperations within a microinstruction are simulated. The case in which a microoperation takes more than one microinstruction time to execute is also handled. Unlike compaction, no table of resource conflicts is needed because conflicts are detected by the simulator.
The description of the models and the data dependency graph is complete, but I would have liked more detail on the simulation algorithm. The simulator is event driven (though the number of events will be low), and a list of busy resources is kept to help in the detection of resource conflicts. None of this, or the proposed simulator structure, is given in any detail. I am looking forward to more information once the simulator is implemented.