Skip to main content

Part of the book series: Advances in Soft Computing ((AINSC,volume 50))

  • 1289 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 259.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 329.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Chapter  Google Scholar 

  2. Andrews, M.: Principles of firmware engineering. Computer Science Press, Rockville (1980)

    MATH  Google Scholar 

  3. Wilkes, M.V.: The growth of interest in microprogramming: a literature survey. ACM Computing Surveys 1, 139–145 (1969)

    Article  Google Scholar 

  4. Hennessy, J.L., Jouppi, N.P.: Computer Technology and Architecture: An Evolving Interaction 24(9), 18–29 (1991)

    Google Scholar 

  5. Patterson, D.A., Hennessy, J.L.: Computer Organization and Design: The Hardware Software Interface, 2nd edn., San Francisco, California, EE, UU (1997)

    Google Scholar 

  6. Hennessy, J., Patterson, D.: Computer Architecture. A Quantitative Approach, 3rd edn., San Francisco, California, EE, UU (2003)

    Google Scholar 

  7. Stallings, W.: Computer Organization and Architecture: Designing for Performance, 6th edn. Prentice-Hall, Englewood Cliffs (2003)

    Google Scholar 

  8. 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)

    Google Scholar 

  9. 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)

    Chapter  Google Scholar 

  10. Landskov, D., Davidson, S., Shriver, B.D., Mallett, P.W.: Local Microcode Compaction Techniques. ACM Computing Surveys 12(3), 261–294 (1980)

    Article  Google Scholar 

  11. 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)

    Chapter  Google Scholar 

  12. Kleir, R.L., Ramamoorthy, C.V.: Optimization strategies for microprograms. IEEE Trans. Computers C-20, 783–794 (1971)

    Article  Google Scholar 

  13. Tabendeh, M., Ramamoorthy, C.V.: Execution time (and memory) optimization in microprograms. In: 7th Annual Workshop on Microprogramming Preprints Supplement, pp. 19–27 (1974)

    Google Scholar 

  14. 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)

    Article  Google Scholar 

  15. 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)

    Article  Google Scholar 

  16. 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)

    Article  MATH  Google Scholar 

  17. Torresen, J.: A scalable approach to evolvable hardware. Genetic Program. Evolvable Mach. 3, 259–282 (2002)

    Article  MATH  Google Scholar 

  18. Schnier, T., Yao, X., Liu, P.: Digital filter design using multiple pareto fronts. Soft Comput. 8(5), 332–343 (2004)

    Google Scholar 

  19. Koza, J.R.: Genetic programming: On the programming of computers by means of natural selection. MIT Press, Cambridge (1992)

    MATH  Google Scholar 

  20. 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)

    Chapter  Google Scholar 

  21. 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)

    Google Scholar 

  22. Ahmad, I., Dhodhi, M.K., Saleh, K.A.: An evolutionary technique for local microcode compaction. Microprocess. Microsyst. 19(8), 467–474 (1995)

    Article  Google Scholar 

  23. 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)

    Google Scholar 

  24. 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)

    Chapter  Google Scholar 

  25. 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)

    Google Scholar 

  26. Jackson, D.: Evolution of processor microcode. IEEE Transactions On Evolutionary Computation 9(1), 44–54 (2005)

    Article  Google Scholar 

  27. Tanenbaum, A.S.: Structured Computer Organization, 3rd edn. Prentice-Hall, Englewood Cliffs (1990)

    MATH  Google Scholar 

  28. 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)

    Google Scholar 

  29. Eiben, A., Smith, J.: Introduction to Evolutionary Computing. Springer, Heidelberg (2003)

    MATH  Google Scholar 

  30. Merelo, J.J.: Algorithm: Evolutionary (2006), http://opeal.sourceforge.net

  31. Merelo, J.J.: Evolutionary computation in Perl. In: Münich Perl Mongers, YAPC: Europe: 2002, 2–22 (2002)

    Google Scholar 

  32. 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)

    Google Scholar 

  33. Koza, J.R.: Genetic Programming II: Automatic Discovery of Reusable Programs. MIT Press, Cambridge (1994)

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Juan M. Corchado Sara Rodríguez James Llinas José M. Molina

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics