Summary
The realization of a control unit can be done either using a complex circuitry or microprogramming. The latter may be considered as an alternative method of implementation of machine instructions that can reduce the complexity and increase the flexibility of the control unit. Microcode efficiency and speed are of vital importance for the computer to execute machine instructions fast. This is a difficult task and it requires expert knowledge. It would be interesting and helpful to have automated tools that, given a machine instruction description, could generate an efficient and correct microprogram. A good option is to use evolutionary computation techniques, which have been proved effective in the evolution of computer programs. We have developed a microarchitecture simulator of a real machine in order to evaluate every individual and to assign it a fitness value (to determine whether this candidate solution correctly implements the instruction machine). Proposed method is successful in generating correct solutions, not only for the machine code instruction set, but also for new machine instructions not included in such set. We show that our approach can generate microprogramms to execute (to schedule microinstructions) the machine level instructions for a real machine. Moreover this evolutive method could be applied to any microarchitecture just by changing the microinstruction set and pre-conditions of each machine instruction to guide evolution.
Supported by projects TIN2007-68083-C02-01, P06-TIC-02025 and PIUGR 9/11/06.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Das, S.R., Nayak, A.R.: A survey on bit dimension optimization strategies of microprograms. In: MICRO 23: Proceedings of the 23rd annual workshop and symposium on Microprogramming and microarchitecture, pp. 281–291. IEEE Computer Society Press, Los Alamitos (1990)
Andrews, M.: Principles of firmware engineering. Computer Science Press, Rockville (1980)
Wilkes, M.V.: The growth of interest in microprogramming: a literature survey. ACM Computing Surveys 1, 139–145 (1969)
Hennessy, J.L., Jouppi, N.P.: Computer Technology and Architecture: An Evolving Interaction 24(9), 18–29 (1991)
Patterson, D.A., Hennessy, J.L.: Computer Organization and Design: The Hardware Software Interface, 2nd edn., San Francisco, California, EE, UU (1997)
Hennessy, J., Patterson, D.: Computer Architecture. A Quantitative Approach, 3rd edn., San Francisco, California, EE, UU (2003)
Stallings, W.: Computer Organization and Architecture: Designing for Performance, 6th edn. Prentice-Hall, Englewood Cliffs (2003)
Miller, S., Srivas, M.: Formal verification of the AAMP5 microprocessor: A case study in the industrial use of formal methods. In: Proc. Workshop Ind.-Strength Formal Specif. Tech (WIFT 1995), Boca Raton, FL, pp. 2–16 (1995)
Greve, D.: Symbolic simulation of the JEM1 microprocessor. In: Gopalakrishnan, G.C., Windley, P. (eds.) FMCAD 1998. LNCS, vol. 1522, pp. 321–333. Springer, Heidelberg (1998)
Landskov, D., Davidson, S., Shriver, B.D., Mallett, P.W.: Local Microcode Compaction Techniques. ACM Computing Surveys 12(3), 261–294 (1980)
Beaty, S., Whitley, D., Johnson, G.: Motivation and framework for using genetic algorithms for microcode compaction. In: Proceedings of the 23rd Annual Workshop and Symposium, MICRO 23. Microprogramming and Microarchitecture, Number IEEE Cat. No. 90TH0341-8, Orlando, FL, pp. 117–124. IEEE Computer Society Press, Los Alamitos (1990)
Kleir, R.L., Ramamoorthy, C.V.: Optimization strategies for microprograms. IEEE Trans. Computers C-20, 783–794 (1971)
Tabendeh, M., Ramamoorthy, C.V.: Execution time (and memory) optimization in microprograms. In: 7th Annual Workshop on Microprogramming Preprints Supplement, pp. 19–27 (1974)
Koza, J.R., Bennett-III, F.H., Andre, D., Keane, M.A., Dunlap, F.: Automated synthesis of analog electrical circuits by means of genetic programming. IEEE Trans. Evol. Comput. 1, 109–128 (1997)
Thompson, A., Layzell, P., Zebulum, R.S.: Explorations in design space: Unconventional electronics design through artificial evolution. IEEE Trans. Evol. Comput. 3, 167–196 (1999)
Miller, J.F., Job, D., Vassilev, V.K.: Principles in the evolutionary design of digital circuits Part I. Genetic Program. Evolvable Mach. 1, 7–35 (2000)
Torresen, J.: A scalable approach to evolvable hardware. Genetic Program. Evolvable Mach. 3, 259–282 (2002)
Schnier, T., Yao, X., Liu, P.: Digital filter design using multiple pareto fronts. Soft Comput. 8(5), 332–343 (2004)
Koza, J.R.: Genetic programming: On the programming of computers by means of natural selection. MIT Press, Cambridge (1992)
O’Neill, M., Ryan, C.: Evolving multiline compilable C programs. In: Langdon, W.B., Fogarty, T.C., Nordin, P., Poli, R. (eds.) EuroGP 1999. LNCS, vol. 1598, pp. 83–92. Springer, Heidelberg (1999)
Nordin, P.: A compiling genetic programming system that directly manipulates the machine code. In: Kinnear Jr., K.E. (ed.) Advances in Genetic Programming, pp. 311–331. MIT Press, Cambridge (1994)
Ahmad, I., Dhodhi, M.K., Saleh, K.A.: An evolutionary technique for local microcode compaction. Microprocess. Microsyst. 19(8), 467–474 (1995)
Nordin, P., Banzhaf, W., Francone, F.D.: Efficient evolution of machine code for CISC architectures using instruction blocks and homologous crossover. In: Spector, L., et al. (eds.) Advances in Genetic Programming, vol. 3, pp. 275–299. MIT Press, Cambridge (1999)
Kuhling, F., Wolff, K., Nordin, P.: A brute-force approach to automatic induction of machine code on CISC architectures. In: Foster, J.A., Lutton, E., Miller, J., Ryan, C., Tettamanzi, A.G.B. (eds.) EuroGP 2002. LNCS, vol. 2278, pp. 288–297. Springer, Heidelberg (2002)
Jackson, D.: Automatic synthesis of instruction decode logic by genetic programming. In: Keijzer, M., O’Reilly, U.-M., Lucas, S.M., Costa, E., Soule, T. (eds.) EuroGP 2004. LNCS, vol. 3003, pp. 318–327. Springer, Heidelberg (2004)
Jackson, D.: Evolution of processor microcode. IEEE Transactions On Evolutionary Computation 9(1), 44–54 (2005)
Tanenbaum, A.S.: Structured Computer Organization, 3rd edn. Prentice-Hall, Englewood Cliffs (1990)
Prieto, A., Pelayo, F., Lloris, A., Gomez-Mula, F.: Description and use of a simple didactic computer. EC Newsletter (Education in Computing Computers in Education) 2(1), 17–29 (1990)
Eiben, A., Smith, J.: Introduction to Evolutionary Computing. Springer, Heidelberg (2003)
Merelo, J.J.: Algorithm: Evolutionary (2006), http://opeal.sourceforge.net
Merelo, J.J.: Evolutionary computation in Perl. In: Münich Perl Mongers, YAPC: Europe: 2002, 2–22 (2002)
Whitley, D.: The GENITOR Algorithm and Selection Presure: Why rank-based allocation of reproductive trials is best. In: Schaffer, J.D. (ed.) Proceedings of The Third International Conference on Genetic Algorithms, pp. 116–121. Morgan Kauffmann Publishers, San Francisco (1989)
Koza, J.R.: Genetic Programming II: Automatic Discovery of Reusable Programs. MIT Press, Cambridge (1994)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Castillo, P.A. et al. (2009). Evolving Machine Microprograms: Application to the CODE2 Microarchitecture. In: Corchado, J.M., Rodríguez, S., Llinas, J., Molina, J.M. (eds) International Symposium on Distributed Computing and Artificial Intelligence 2008 (DCAI 2008). Advances in Soft Computing, vol 50. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-85863-8_54
Download citation
DOI: https://doi.org/10.1007/978-3-540-85863-8_54
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-85862-1
Online ISBN: 978-3-540-85863-8
eBook Packages: EngineeringEngineering (R0)