Skip to Main Content
The control unit of many modern computer processors is implemented using microcode. Because of its low level and high complexity, writing microcode that is not only correct but efficient is extremely challenging. An interesting question is whether evolutionary computing techniques could be used to generate microprograms that are of the necessary quality. To answer this, a genetic programming system has been built that evolves microprograms for an architecture that incorporates many of the features common to real microprogrammed systems. Fitness is assessed via simulated execution to determine whether candidate solutions effect the correct machine state changes. The system has been used to evolve microprograms that emulate a range of machine code instructions, of varying complexity. It has been found that, provided appropriate evolutionary guidance is extracted from operational specifications of those instructions, the approach is largely successful in generating solutions that are both correct and optimal.