Hardware/Software Coevolution of Genome Programs and Cellular Processors
The application of evolutionary techniques to the design of custom processing elements bears a strong relation to the natural process that led to the co-evolution of cells and genomes in biological organisms. As such, it is an interesting avenue for an effective application of evolutionary approaches in the domain of hardware design. The architecture of conventional non-configurable processors, however, is ill-adapted to this kind of approach, as evolution can operate exclusively on the software (the genome) and not on the hardware that executes it, leading to scalability issues that seem very difficult to overcome. Building on a family of configurable processors we developed in the past years, in this article we introduce a design methodology that allows the architecture of the processor to co-evolve together with the code to be executed.