skip to main content
10.1145/3656019.3676889acmconferencesArticle/Chapter ViewAbstractPublication PagespactConference Proceedingsconference-collections
research-article
Open access

PipeGen: Automated Transformation of a Single-Core Pipeline into a Multicore Pipeline for a Given Memory Consistency Model

Published: 13 October 2024 Publication History

Abstract

Designing a pipeline for a multicore processor is difficult. One major challenge is designing it such that the pipeline correctly enforces the intended memory consistency model (MCM). We have developed the PipeGen design automation tool to allow architects to start with a single core pipeline that only enforces single-threaded correctness and automatically transform it to enforce a given MCM. Our key innovation is a set of compiler-like transformations that codify three different ways of enforcing memory ordering at the pipeline. We have validated that PipeGen correctly enforces the ARMv8 and x86TSO MCMs on three distinct pipeline implementations, using litmus tests with the Murphi model checker.

References

[1]
2014. Gem5 TSO implemention which permits only one operation in the store buffer. https://gem5-users.gem5.narkive.com/RqRv5GVj/lsq-bottleneck-when-using-x86-tso
[2]
Jade Alglave, Luc Maranget, Susmit Sarkar, and Peter Sewell. 2011. Litmus: Running tests against hardware. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Springer, 41–44.
[3]
Jade Alglave, Luc Maranget, and Michael Tautschnig. 2014. Herding cats: Modelling, simulation, testing, and data mining for weak memory. ACM Transactions on Programming Languages and Systems (TOPLAS) 36, 2 (2014), 1–74.
[4]
Jonathan Bachrach, Huy Vo, Brian C. Richards, Yunsup Lee, Andrew Waterman, Rimas Avizienis, John Wawrzynek, and Krste Asanovic. 2012. Chisel: constructing hardware in a Scala embedded language. In The 49th Annual Design Automation Conference 2012, DAC ’12, San Francisco, CA, USA, June 3-7, 2012, Patrick Groeneveld, Donatella Sciuto, and Soha Hassoun (Eds.). ACM, 1216–1225. https://doi.org/10.1145/2228360.2228584
[5]
Jerry R. Burch and David L. Dill. 1994. Automatic verification of Pipelined Microprocessor Control. In Computer Aided Verification, 6th International Conference, CAV ’94, Stanford, California, USA, June 21-23, 1994, Proceedings(Lecture Notes in Computer Science, Vol. 818), David L. Dill (Ed.). Springer, 68–80. https://doi.org/10.1007/3-540-58179-0_44
[6]
Harold W Cain and Mikko H Lipasti. 2004. Memory ordering: A value-based approach. ACM SIGARCH Computer Architecture News 32, 2 (2004), 90.
[7]
Satish Chandra, Brad Richards, and James R. Larus. 1996. Teapot: Language Support for Writing Memory Coherence Protocols. In Proceedings of the ACM SIGPLAN’96 Conference on Programming Language Design and Implementation (PLDI), Philadephia, Pennsylvania, USA, May 21-24, 1996, Charles N. Fischer (Ed.). ACM, 237–248. https://doi.org/10.1145/231379.231430
[8]
Edsger W. Dijkstra. 1967. A constructive approach to the problem of program correctness. (Aug. 1967). http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD209.PDF circulated privately.
[9]
David L Dill. 1996. The Mur ϕ verification system. In Computer Aided Verification: 8th International Conference, CAV’96 New Brunswick, NJ, USA, July 31–August 3, 1996 Proceedings 8. Springer, 390–393.
[10]
Marco Elver and Vijay Nagarajan. 2016. McVerSi: A test generation framework for fast memory consistency verification in simulation. In 2016 IEEE International Symposium on High Performance Computer Architecture, HPCA 2016, Barcelona, Spain, March 12-16, 2016. IEEE Computer Society, 618–630. https://doi.org/10.1109/HPCA.2016.7446099
[11]
Kourosh Gharachorloo, Anoop Gupta, and John L Hennessy. 1991. Two techniques to enhance the performance of memory consistency models. Computer Systems Laboratory, Stanford University.
[12]
Ravi Hosabettu, Ganesh Gopalakrishnan, and Mandayam K. Srivas. 2000. Verifying Advanced Microarchitectures that Support Speculation and Exceptions. In Computer Aided Verification, 12th International Conference, CAV 2000, Chicago, IL, USA, July 15-19, 2000, Proceedings(Lecture Notes in Computer Science, Vol. 1855), E. Allen Emerson and A. Prasad Sistla (Eds.). Springer, 521–537. https://doi.org/10.1007/10722167_39
[13]
Ravi Hosabettu, Mandayam K. Srivas, and Ganesh Gopalakrishnan. 1998. Decomposing the Proof of Correctness of pipelined Microprocessors. In Computer Aided Verification, 10th International Conference, CAV ’98, Vancouver, BC, Canada, June 28 - July 2, 1998, Proceedings(Lecture Notes in Computer Science, Vol. 1427), Alan J. Hu and Moshe Y. Vardi (Eds.). Springer, 122–134. https://doi.org/10.1007/BFB0028739
[14]
Yao Hsiao, Dominic P Mulligan, Nikos Nikoleris, Gustavo Petri, and Caroline Trippel. 2021. Synthesizing Formal Models of Hardware from RTL for Efficient Verification of Memory Model Implementations. In MICRO-54: 54th Annual IEEE/ACM International Symposium on Microarchitecture. 679–694.
[15]
Daniel Kroening and Wolfgang J. Paul. 2001. Automated Pipeline Design. In Proceedings of the 38th Design Automation Conference, DAC 2001, Las Vegas, NV, USA, June 18-22, 2001. ACM, 810–815. https://doi.org/10.1145/378239.379071
[16]
George Kurian, Omer Khan, and Srinivas Devadas. 2013. The locality-aware adaptive cache coherence protocol. In Proceedings of the 40th Annual International Symposium on Computer Architecture. 523–534.
[17]
Daniel Lustig, Michael Pellauer, and Margaret Martonosi. 2014. PipeCheck: Specifying and verifying microarchitectural enforcement of memory consistency models. In 2014 47th Annual IEEE/ACM International Symposium on Microarchitecture. IEEE, 635–646.
[18]
Daniel Lustig, Caroline Trippel, Michael Pellauer, and Margaret Martonosi. 2015. ArMOR: defending against memory consistency model mismatches in heterogeneous architectures. In Proceedings of the 42nd Annual International Symposium on Computer Architecture, Portland, OR, USA, June 13-17, 2015, Deborah T. Marr and David H. Albonesi (Eds.). ACM, 388–400. https://doi.org/10.1145/2749469.2750378
[19]
Daniel Joseph Lustig. 2015. Specifying, Verifying, and Translating Between Memory Consistency Models. Ph. D. Dissertation. Princeton University.
[20]
Milo MK Martin, Daniel J Sorin, Harold W Cain, Mark D Hill, and Mikko H Lipasti. 2001. Correctly implementing value prediction in microprocessors that support multithreading or multiprocessing. In Proceedings. 34th ACM/IEEE International Symposium on Microarchitecture. MICRO-34. IEEE, 328–337.
[21]
Rishiyur Nikhil. 2004. Bluespec System Verilog: efficient, correct RTL from high level specifications. In Proceedings. Second ACM and IEEE International Conference on Formal Methods and Models for Co-Design, 2004. MEMOCODE’04. IEEE, 69–70.
[22]
Rishiyur S. Nikhil. 2004. Bluespec System Verilog: efficient, correct RTL from high level specifications. In 2nd ACM & IEEE International Conference on Formal Methods and Models for Co-Design (MEMOCODE 2004), 23-25 June 2004, San Diego, California, USA, Proceedings. IEEE Computer Society, 69–70. https://doi.org/10.1109/MEMCOD.2004.1459818
[23]
Eriko Nurvitadhi, James C. Hoe, Timothy Kam, and Shih-Lien Lu. 2011. Automatic Pipelining From Transactional Datapath Specifications. IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 30, 3 (2011), 441–454. https://doi.org/10.1109/TCAD.2010.2088950
[24]
Nicolai Oswald, Vijay Nagarajan, and Daniel J Sorin. 2018. ProtoGen: Automatically generating directory cache coherence protocols from atomic specifications. In 2018 ACM/IEEE 45th Annual International Symposium on Computer Architecture (ISCA). IEEE, 247–260.
[25]
Drew Zagieboylo, Charles Sherk, Gookwon Edward Suh, and Andrew C Myers. 2022. PDL: a high-level hardware design language for pipelined processors. In Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation. 719–732.

Index Terms

  1. PipeGen: Automated Transformation of a Single-Core Pipeline into a Multicore Pipeline for a Given Memory Consistency Model

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    PACT '24: Proceedings of the 2024 International Conference on Parallel Architectures and Compilation Techniques
    October 2024
    375 pages
    ISBN:9798400706318
    DOI:10.1145/3656019
    This work is licensed under a Creative Commons Attribution International 4.0 License.

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 13 October 2024

    Check for updates

    Badges

    Author Tags

    1. Compiler
    2. Computer Architecture
    3. Memory Consistency Model
    4. Microarchitecture
    5. Programming Language

    Qualifiers

    • Research-article
    • Research
    • Refereed limited

    Funding Sources

    Conference

    PACT '24
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 121 of 471 submissions, 26%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • 0
      Total Citations
    • 254
      Total Downloads
    • Downloads (Last 12 months)254
    • Downloads (Last 6 weeks)83
    Reflects downloads up to 17 Feb 2025

    Other Metrics

    Citations

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    HTML Format

    View this article in HTML Format.

    HTML Format

    Login options

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media