skip to main content
article
Free Access

Automatic microcode generation for horizontally microprogrammed processors

Published:01 December 1981Publication History
Skip Abstract Section

Abstract

A procedure is described which permits applications problems coded in a Higher Level Language to be compiled to microcode for horizontally microprogrammed processors. An experimental language has been designed which is suitable for expressing computationally oriented problems for such processors in a distributed processing environment. Source programs are compiled first to a machine independent intermediate language and then to a machine dependent form consisting of elementary microoperations, with optimizations performed during each step. The microoperations are then compacted into executable microinstructions for a specific target machine. The procedure has been implemented for experimental purposes and used to compile several different types of applications programs. The experimental results are presented with an interpretation and analysis, along with recommendations for future study.

References

  1. 1 D. Landskov, et al., "Local Microcode Compaction Techniques", Computing Surveys, Vol. 12, No. 3, September 1980, pp. 261-294. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2 A.K. Agrawala and T.G. Rauscher, Foundation of Microprogramming Architecture Software and Applications, Academic Press, Inc., 1976.Google ScholarGoogle Scholar
  3. 3 A.V. Aho and S.C. Johnson, "Optimal Code Generation for Expression Trees", JACM, Vol. 23, No. 3, pp. 488-501, July 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4 A.V. Aho and S. C. Johnson, and J. D. Ullman "Code Generation for Expressions with Common Subexpressions", JACM, Vol. 24, No. 1, pp. 146-160, January 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5 J. Barth, "A Practical Interprocedural Data Flow Analysis Algorithm", CACM, Vol. 21, No. 9, pp. 724-736, September 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6 J.L. Bruno and R. Sethi, "Code Generation for a One-Register Machine", JACM, Vol. 23, No. 3, pp. 502-510, July 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7 P. Calingaert, Assemblers, Compilers, and Program Translation, Computer Science Press, Potomac, Md. 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8 J. Cocke and K. Kennedy, "An Algorithm for Reduction of Operator Strength", CACM, Vol. 20, No. 11, pp. 850-856, November 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9 S. Dasgupta and J. Tartar "The Identification of Maximal Parallelism in Straight-Line Microprograms", IEEE Trans. Comp, Vol C-25, October 1976, pp. 986-991.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10 C.G. Davis and R. L. Couch, "Ballistic Missile Defense: A Super Computer Challenge" Computer, Vol. 13, No. 11, pp. 37-46, November 1980.Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11 D.J. DeWitt, "A Control Word Model for Detecting Conflicts Between Micro-Operations", Proceedings of the Eighth Annual Workshop on Microprogramming, October 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12 D.J. DeWitt, A Machine Independent Approach to the Production of Optimized Horizontal Microcode, Ph.D. Thesis, University of Michigan, 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13 USA Standard FORTRAN, USAS X3.9-1966, United States of America Standards Institute, New York, 1966.Google ScholarGoogle Scholar
  14. 14 S.L. Graham, "Table Driven Code Generation", Computer, Vol. 13, No. 8, pp. 25-34, August 1980.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15 D. Gries, "Use of Transition Matrices in Compiling". CACM, Vol. 11, No. 1, January 1968. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16 W.H. Harrison, "A New Strategy for Code Generation—The General Purpose Optimizing Compiler", IEEE Transactions on Software Engineering, Vol. SE-5, No. 4, pp. 367-373, July 1979.Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 17 H. Hellerman, Digital Computer System Principles, McGraw-Hill, New York, 1967.Google ScholarGoogle Scholar
  18. 18 S.S. Husson, Microprogramming: Principles and Practices, Prentice-Hall, New Jersey, 1970.Google ScholarGoogle Scholar
  19. 19 Final Report for the Study of Compilers for High Throughput Horizontal Microprocessors, JRS industries, Inc., San Diego, Ca., November 28, 1979.Google ScholarGoogle Scholar
  20. 20 Final Technical Report for Higher Order Language for High Throughput, Horizontal Microprocessors, JRS Industries, Inc., San Diego, Ca., October, 1980.Google ScholarGoogle Scholar
  21. 21 K. Johnsson, An Approach to Global Register Allocation, Carnegie-Mellon University, 1976.Google ScholarGoogle Scholar
  22. 22 H. Katzan, Jr., Advanced Programming, Van Nostrand Reinhold Company, New York 1970.Google ScholarGoogle Scholar
  23. 23 H.W. Lawson, Jr., "Programming - Language-Oriented instruction Streams", IEEE Transactions on Computers, Vol. C-17, No. 5, pp. 476-485, May 1968.Google ScholarGoogle Scholar
  24. 24 T.G. Lewis, et al, Firmware Engineering Using a High-Level Microprogramming System to Implement Virtual Instruction Set Processors, Oregon State University, 1976.Google ScholarGoogle Scholar
  25. 25 E.S. Lowry and C.W. Medlock, "Object Code Optimization", CACM, Vol. 12, No. 1, pp. 13-22, January 1969. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. 26 P-Y. Ma, Optimizing the Microcode Produced by a High-Level Microprogramming Language, Ph. D. Thesis, Oregon State University, 1978.Google ScholarGoogle Scholar
  27. 27 K. Malik and T. Lewis, "Design Objectives for High Level Microprogramming Languages", Proc. Micro-11 Conf., IEEE, 1978 Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. 28 P.W. Mallett, Methods of Compacting Microprograms, Ph.D. Thesis, University of Southwestern Louisiana, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. 29 Advanced Data Processing Subsystem Investigations: Volume XXII, DDP Software Development Facility Key Issue Studies, McDonnell-Douglas Astronautics Company, Huntington Beach, Ca., October 1979.Google ScholarGoogle Scholar
  30. 30 W.M. McKeeman, "Peephole Optimization", CACM, Vol. 8, No. 7, pp. 443-444, July 1965. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. 31 W.M. McKeeman et al, A Compiler Generator, Prentice-Hall, New Jersey, 1970Google ScholarGoogle Scholar
  32. 32 Advanced Data Processing Subsystem Investigations: In-Process Review - 20 February 1980, MDC G8481, McDonnell- Douglas Astronautics Company, Huntington Beach, Ca., February 1980.Google ScholarGoogle Scholar
  33. 33 Advanced Data Processing Subsystem Investigations: Technical Interchange Meeting - 16 May 1980, McDonnell-Douglas Astronautics Company, Huntington Beach, Ca., May 1980Google ScholarGoogle Scholar
  34. 34 Advanced Data Processing Subsystem Investigations: Technical Interchange Meeting - 19 August 1980, McDonnell-Douglas Astronautics Company, Huntington Beach, Ca., August 1980.Google ScholarGoogle Scholar
  35. 35 I. Nakata, "On Compiling Algorithms for Arithmetic Expressions," CACM, Vol. 10, No. 8, pp. 492-494 (August 1967). Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. 36 B.W. Pollack, editor, Compiler Techniques, Auerbach, Princeton, 1972.Google ScholarGoogle Scholar
  37. 37 C.V. Ramamoorthy and M. Tsuchiya, "A High-Level Language for Horizontal Microprogramming," IEEE Transactions on Computers, Vol. C-23, No. 8, pp. 791-801, August 1974.Google ScholarGoogle Scholar
  38. 38 R. Sethi and J. D. Ullman, "The Generation of Optimal Code for Arithmetic Expressions", JACM, Vol. 17, No. 4, pp. 715-728, October 1970. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. 39 H.A. Schutz, "On the Design of a Language for Programming Real-Time Concurrent Processes," IEEE Transactions on Software Engineering, Vol. SE-5, No. 3, pp. 248-255, May 1979.Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. 40 S. Su, "Hardware Description Language Description: An Introduction and Prognosis," IEEE Computer, June 1977.Google ScholarGoogle Scholar
  41. 41 M. Tokoro et al, "A Technique of Global Optimization of Microprograms," IEEE Proceedings of 11th Annual Workshop on Microprogramming, November 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. 42 M. Tsuchiya and M. J. Gonzalez, "Toward Optimization of Horizontal Microprograms," IEEE Transactions on Computers, Vol. C-25 No. 10, October 1976.Google ScholarGoogle Scholar
  43. 43 W. Wulf et al, The Design of an Optimizing Compiler, Elsevier, Amsterdam, 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Automatic microcode generation for horizontally microprogrammed processors

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM SIGMICRO Newsletter
        ACM SIGMICRO Newsletter  Volume 12, Issue 4
        Dec. 1981
        187 pages
        ISSN:1050-916X
        DOI:10.1145/1014192
        Issue’s Table of Contents
        • cover image ACM Conferences
          MICRO 14: Proceedings of the 14th annual workshop on Microprogramming
          December 1981
          214 pages

        Copyright © 1981 Authors

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 1 December 1981

        Check for updates

        Qualifiers

        • article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!