Abstract
We describe a set of remarkably simple algebraic laws governing microarchitectural components. We apply these laws to incrementally transform a pipeline containing forwarding, branch speculation and hazard detection so that all pipeline stages and forwarding logic are removed. The resulting unpipelined machine is much closer to the reference architecture, and presumably easier to verify.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Aagaard, M., and Leeser, M. Reasoning about pipelines with structural hazards. In Second International Conference on Theorem Provers in Circuit Design Bad Herrenalb, Germany, Sept. 1994).
Bird, R., and Wadler, P. Introduction to Functional Programming. Prentice Hall International Series in Computer Science. Prentice Hall, 1988.
Bird, R. S., and Moor, O. D. Algebra of Programming. Prentice Hall, 1996.
Cook, B., Launchbury, J., and Matthews, J. Specifying superscalar microprocessors in Hawk. In FTH’98, Workshop on Formal Techniques for Hardware and Hardware-like Systems (Marstrand, Sweden, June 1998).
Gill, A., Launchbury, J., and Peyton Jones, S. L. A Short Cut to Deforestation. In FPCA’93, Conference on Functional Programming Languages and Computer Architecture (Copenhagen, Denmark, June 1993), ACM Press, pp. 223–232.
Halbwachs, N. Synchronous programming of reactive systems. Kluwer Academic Pub., 1993.
Halbwachs, N., Lagnier, F., and Ratel, C. Programming and verifying realtime systems by means of the synchronous data-flow programming language Lustre. IEEE Transactions on Software Engineering, Special Issue on the Specification and Analysis of Real-Time Systems (September 1992).
Hudak, P., Peterson, J., and Fasel, J. A gentle introduction to Haskell. Available at www.haskell.org, Dec. 1997.
Johnson, S. D. Synthesis of Digital Systems from Recursive Equations. ACM Distinguished Dissertation Series. MIT Press, 1984.
Jones, G., and Sheeran, M. Collecting butterflies. Tech. rep., Oxford University Computing Laboratory, 1991.
Jones, G., and Sheeran, M. Designing arithmetic circuits by refinement in ruby. In Mathematics of Program Construction (1993), vol. 669 of LNCS, Springer Verlag.
Jones, S. L. P., and Santos, A. L. M. A transformation-based optimiser for Haskell. Science of Computer Programming 32, 1-3 (Sept. 1998), 3–47.
Launchbury, J. Graph algorithms with a functional flavour. Lecture Notes in Computer Science 925 (1995).
Leiserson, C. E., and Saxe, J. B. Retiming synchronous circuitry. Algorithmica 6 1991), 5–35.
Levitt, J., and Olukotun, K. A scalable formal verification methodology for pipelined microprocessors. In 33rd Design Automation Conference (DAC’96) (New York, June 1996), Association for Computing Machinery, pp. 558–563.
Matthews, J., and Launchbury, J. Elementary microarchitecture algebra: Toplevel proof of pipelined microarchitecture. Tech. Rep. CSE-99-002, Oregon Graduate Institute, Computer Science Department, Portland, Oregon, Mar. 1999.
Matthews, J., Launchbury, J., and Cook, B. Specifying microprocessors in Hawk. In IEEE International Conference on Computer Languages (Chicago, Illinois, May 1998), pp. 90–101.
O’donnell, J. From transistors to computer architecture: Teaching functional circuit specification in Hydra. In Symposium on Functional Programming Languages in Education (July 1995).
Önder, S., and Gupta, R. Automatic generation of microarchitecture simulators. In IEEE International Conference on Computer Languages (Chicago, Illinois, May 1998), pp. 80–89.
Paulson, L. Isabelle: A Generic Theorem Prover. Springer-Verlag, 1994.
Peterson, J., et al. Report on the programming language Haskell: A non-strict, purely functional language, version 1.4. Available at http://www.haskell.org, Apr. 1997.
Sawada, J., and Hunt, W. A. Processor verification with precise exceptions and speculative execution. Lecture Notes in Computer Science 1427 (1998), 135–146.
Saxe, J., and Garland, S. Using Transformations and Verifications in Circuit Design. Formal Methods in System Design 4, 1 (1994), 181–210.
Sharp, R., and Rasmussen, O. An introduction to Ruby. Teaching Notes ID-U: 1995-80, Dept. of Computer Science, Technical University of Denmark, October 1995.
Sheeran, M. µFP, an Algebraic VLSI Design Language. PhD thesis, Programming Research Group, University of Oxford, 1983.
Sheeran, M. Retiming and slowdown in Ruby. In The Fusion of Hardware Design and Verification (Glasgow, Scotland, July 1988), G.J. Milne, Ed., IFIP WG 10.2, North-Holland, pp. 289–308.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Matthews, J., Launchbury, J. (1999). Elementary Microarchitecture Algebra. In: Halbwachs, N., Peled, D. (eds) Computer Aided Verification. CAV 1999. Lecture Notes in Computer Science, vol 1633. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48683-6_26
Download citation
DOI: https://doi.org/10.1007/3-540-48683-6_26
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66202-0
Online ISBN: 978-3-540-48683-1
eBook Packages: Springer Book Archive