Due to the growing complexity of processors, architecture design space exploration has always been more an art than a systematic process. The architect usually applies a trial-and-error process where intuition and experience often drive the creation and selection of appropriate designs. The widespread use of multi-cores only further increases the design space by adding the number of cores, their communications means, memory coherence issues, and a wealth of associated software issues. Therefore, a more systematic design approach could help streamline the process and thus keep design cycles reasonable, or at the very least, it could help the designer focus on the design areas with the best potential. The purpose of our research work is to extend systematic design space exploration beyond simple components parameterization by allowing the automatic and systematic selection of architectural components themselves.