The ant colony optimization meta-heuristic
New ideas in optimization
Profile guided selection of ARM and thumb instructions
Proceedings of the joint conference on Languages, compilers and tools for embedded systems: software and compilers for embedded systems
ARM System Architecture
Bi-Criterion Optimization with Multi Colony Ant Algorithms
EMO '01 Proceedings of the First International Conference on Evolutionary Multi-Criterion Optimization
An Efficient Compiler Technique for Code Size Reduction Using Reduced Bit-Width ISAs
Proceedings of the conference on Design, automation and test in Europe
Using gene deletion and gene duplication in evolution strategies
GECCO '05 Proceedings of the 7th annual conference on Genetic and evolutionary computation
Solving multi-criteria optimization problems with population-based ACO
EMO'03 Proceedings of the 2nd international conference on Evolutionary multi-criterion optimization
Evolving defence strategies by genetic programming
EuroGP'05 Proceedings of the 8th European conference on Genetic Programming
Hi-index | 0.00 |
In the embedded domain, not only performance, but also memory and energy are important concerns. A dual instruction set ARM processor, which supports a reduced Thumb instruction set with a smaller instruction length in addition to a full instruction set, provides an opportunity for a flexible tradeoff between these requirements. For a given program, typically the Thumb code is smaller than the ARM code, but slower than the latter, because a program compiled into the Thumb instruction set executes a larger number of instructions than the same program compiled into the ARM instruction set. Motivated by this observation, we propose a new Multi-objective Ant Colony Optimization (MOACO) algorithm that can be used to enable a flexible tradeoff between the code size and execution time of a program by using the two instruction sets selectively for different parts of a program. Our proposed approach determines the instruction set to be used for each function using a subset selection technique, and the execution time is the total one based on the profiling analyses of the dynamic behavior of a program. The experimental results show that our proposed technique can be effectively used to make the tradeoff between a program's code size and execution time and can provide much flexibility in code generation for dual instruction set processors in general.