Skip to main content

From processor timing specifications to static instruction scheduling

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 864))

Abstract

We show how to derive a static instruction scheduler from a formal specification of an instruction-level parallel processor. The mathematical formalism used is SCCS, a synchronous process algebra for specifying timed, concurrent systems. We illustrate the technique by specifying a hypothetical processor that shares many properties of commercial processors (such as the MIPS or SuperSparc) including delayed loads and branches, interlocked floating-point instructions, resource constraints, and multiple instruction issue.

We derive parameters necessary for instruction scheduling by developing algorithms that operate on the labeled transition systems generated by the operational semantics of SCCS. From the labeled transition system we also employ a modal logic, the modal μ-calculus to determine whether there are any illegal instruction sequences or instruction sequences that could be executed in parallel.

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Alfred V. Aho, Mahadevan Ganapathi, and Steven W.K. Tjiang. Code generation using tree matching and dynamic programming. ACM Transactions on Programming Languages and Systems, 11(4):491–516, October 1989.

    Article  Google Scholar 

  2. David Bradlee, Robert Henry, and Susan Eggers. The Marion system for retargetable instruction scheduling. In ACM SIGPLAN '91 Conference on Programming Language Design and Implementation, pages 229–240. ACM, June 1991.

    Google Scholar 

  3. Todd A. Cook, Paul D. Franzon, Ed A. Harcourt, and Thomas K. Miller. System-level specification of instruction sets. In ICCD 93, Proceedings of the International Conference on Computer Design, 1993.

    Google Scholar 

  4. Todd A. Cook and Ed Harcourt. A functional specification language for instruction set architectures. In ICCL: Proceedings of the International Conference on Computer Languages, 1994.

    Google Scholar 

  5. Rance Cleaveland, Joachim Parrow, and Bernhard Steffen. The Concurrency Workbench: A semantics-based tool for the verification of concurrent systems. ACM Transactions on Programming Languages and Systems, 15(1):36–72, January 1993.

    Article  Google Scholar 

  6. Juanito Camilleri and Glynn Winskel. CCS with priority choice. In LICS 91: IEEE Symposium on Logic in Computer Science, pages 246–255, 1991.

    Google Scholar 

  7. Jack W. Davidson. A retargetable instruction reorganizer. In Proceedings of the SIGPLAN '86 Symposium on Compiler Construction, pages 234–241, 1986.

    Google Scholar 

  8. Christopher W. Fraser. A language for writing code generators. In ACM SIGPLAN '89 Conference on Programming Language Design and Implementation, pages 238–245, 1989.

    Google Scholar 

  9. Robert Giegerich. On the structure of verifiable code generator specifications. In ACM SIGPLAN '90 Conference on Programming Language Design and Implementation, pages 1–8, 1990.

    Google Scholar 

  10. Ed Harcourt, Jon Mauney, and Todd Cook. Specification of instruction-level parallelism. In Proceedings of NAPAW'93, the North American Process Algebra Workshop, 1993.

    Google Scholar 

  11. Ed Harcourt, Jon Mauney, and Todd Cook. Formal specification and simulation of instruction-level parallelism. In Proceedings of the 1994 European Design Automation Conference.IEEE Computer Society Press, 1994.

    Google Scholar 

  12. Ed Harcourt, Jon Mauney, and Todd Cook. Functional specification and simulation of instruction set architectures. In Proceedings of the International Conference on Simulation and Hardware Description Languages. SCS Press, 1994.

    Google Scholar 

  13. Gerry Kane and Joe Heinrich. MIPS RISC Architecture. Prentice Hall, 1992.

    Google Scholar 

  14. Robin Milner. Calculi for synchrony and asynchrony. Journal of Theoretical Computer Science, 25:267–310, 1983.

    Article  Google Scholar 

  15. Robin Milner. Communication and Concurrency. Prentice Hall, 1989.

    Google Scholar 

  16. Todd Proebsting and Chris Fraser. Detecting pipeline structural hazards quickly. In POPL'94, Proceedings of the 21st annual symposium on principles of programming languages, 1994.

    Google Scholar 

  17. Glynn Winskel. The Formal Semantics of Programming Languages. MIT Press, 1993.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Baudouin Le Charlier

Rights and permissions

Reprints and permissions

Copyright information

© 1994 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Harcourt, E., Mauney, J., Cook, T. (1994). From processor timing specifications to static instruction scheduling. In: Le Charlier, B. (eds) Static Analysis. SAS 1994. Lecture Notes in Computer Science, vol 864. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-58485-4_36

Download citation

  • DOI: https://doi.org/10.1007/3-540-58485-4_36

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-58485-8

  • Online ISBN: 978-3-540-49005-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics