Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3519939.3523455acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article
Open access

PDL: a high-level hardware design language for pipelined processors

Published: 09 June 2022 Publication History

Abstract

Processors are typically designed in Register Transfer Level (RTL) languages, which give designers low-level control over circuit structure and timing. To achieve good performance, processors are pipelined, with multiple instructions executing concurrently in different parts of the circuit. Thus even though processors implement a fundamentally sequential specification (the instruction set architecture), the implementation is highly concurrent. The interactions of multiple instructions—potentially speculative—can cause incorrect behavior.
We present PDL, a novel hardware description language targeted at the construction of pipelined processors. PDL provides one-instruction-at-a-time semantics; the first language to enforce that the generated pipelined circuit has the same behavior as a sequential specification. This enforcement facilitates design-space exploration. Adding or removing pipeline stages, moving operations across stages, or otherwise chang ing pipeline structure normally requires careful analysis of bypass paths and stall logic; with PDL, this analysis is handled by the PDL compiler. At the same time, PDL still offers designers fine-grained control over performance-critical microarchitectural choices such as timing of operations, data forwarding, and speculation. We demonstrate PDL’s expressive power and ease of design exploration by implementing several RISC-V cores with differing microarchitectures. Our results show that PDL does not impose significant performance or area overhead compared to a standard HDL.

References

[1]
Sam Ainsworth. 2021. GhostMinion: A strictness-ordered cache system for Spectre mitigation. In MICRO-54: 54th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO ’21). Association for Computing Machinery, 592–606. https://doi.org/10.1145/3466752.3480074
[2]
Jonathan Bachrach, Huy Vo, Brian Richards, Yunsup Lee, Andrew Waterman, Rimas Avižienis, John Wawrzynek, and Krste Asanović. 2012. Chisel: constructing hardware in a Scala embedded language. In DAC Design Automation Conference 2012. 1212–1221. https://doi.org/10.1145/2228360.2228584
[3]
Gregor V Bochmann. 1982. Hardware specification with temporal logic: An example. IEEE Transactions on Computers, 31, 03 (1982), 223–231. https://doi.org/10.1109/TC.1982.1675978
[4]
Thomas Bourgeat, Clément Pit-Claudel, and Adam Chlipala. 2020. The Essence of Bluespec: A core language for rule-based hardware design. In Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation. 243–257. https://doi.org/10.1145/3385412.3385965
[5]
Joonwon Choi, Muralidaran Vijayaraghavan, Benjamin Sherman, and Adam Chlipala. 2017. Kami: A platform for high-level parametric hardware specification and its modular verification. In Int’l Conf on Functional Programming (ICFP). 1–30. https://doi.org/10.1145/3110268
[6]
Cong, Jason and Liu, Bin and Neuendorffer, Stephen and Noguera, Juanjo and Vissers, Kees and Zhang, Zhiru. 2011. High-level synthesis for FPGAs: From prototyping to deployment. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 30, 4 (2011), 473–491. https://doi.org/10.1109/TCAD.2011.2110592
[7]
Embedded Microprocessor Benchmark Consortium. 2021. EEMBC. https://www.eembc.org/coremark/index.php Accessed: 2021-08-01.
[8]
Leonardo de Moura and Nikolaj Bjørner. 2008. Z3: an efficient SMT solver. In Proceedings of the Theory and Practice of Software, 14th Int’l Conf. on Tools and Algorithms for the Construction and Analysis of Systems. Springer-Verlag, Berlin, Heidelberg. 337–340. isbn:3540787992 https://doi.org/10.1007/978-3-540-78800-3_24
[9]
David Durst, Matthew Feldman, Dillon Huff, David Akeley, Ross Daly, Gilbert Louis Bernstein, Marco Patrignani, Kayvon Fatahalian, and Pat Hanrahan. 2020. Type-directed scheduling of streaming accelerators. In Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation. 408–422. https://doi.org/10.1145/3385412.3385983
[10]
Charles Antony Richard Hoare. 1969. An axiomatic basis for computer programming. Commun. ACM, 12, 10 (1969), 576–580. https://doi.org/10.1145/363235.363259
[11]
Steven F Hoover. 2017. Timing-abstract circuit design in transaction-level Verilog. In 2017 IEEE Int’l Conf. on Computer Design (ICCD). 525–532. https://doi.org/10.1109/ICCD.2017.91
[12]
Lana Josipović, Radhika Ghosal, and Paolo Ienne. 2018. Dynamically scheduled high-level synthesis. In 2018 ACM/SIGDA Int’l Symp. on Field-Programmable Gate Arrays (FPGA). 127–136. https://doi.org/10.1145/3174243.3174264
[13]
Roope Kaivola, Rajnish Ghughal, Naren Narasimhan, Amber Telfer, Jesse Whittemore, Sudhindra Pandav, Anna Slobodová, Christopher Taylor, Vladimir Frolov, and Erik Reeber. 2009. Replacing testing with formal verification in Intel ® CoreTM i7 processor execution engine validation. In Int’l Conf. on Computer Aided Verification (CAV). 414–429. https://doi.org/10.1007/978-3-642-02658-4_32
[14]
Daniel Kroening and Wolfgang J. Paul. 2001. Automated pipeline design. In 38th annual Design Automation Conf. (DAC). 810–815. https://doi.org/10.1145/378239.379071
[15]
Gai Liu, Joseph Primmer, and Zhiru Zhang. 2019. Rapid generation of high-quality RISC-V processors from functional instruction set specifications. In 2019 56th ACM/IEEE Design Automation Conference (DAC). 1–6. https://doi.org/10.1145/3316781.3317890
[16]
Rachit Nigam, Sachille Atapattu, Samuel Thomas, Zhijing Li, Theodore Bauer, Yuwei Ye, Apurva Koti, Adrian Sampson, and Zhiru Zhang. 2020. Predictable accelerator design with time-sensitive affine types. In Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation. 393–407. https://doi.org/10.1145/3385412.3385974
[17]
R. Nikhil. 2004. Bluespec System Verilog: Efficient, correct RTL from high level specifications. In ACM and IEEE Int’l Conf. on Formal Methods and Models for Co-Design (MEMOCODE). 69–70. https://doi.org/10.1109/MEMCOD.2004.1459818
[18]
Eriko Nurvitadhi, James C Hoe, Timothy Kam, and Shih-Lien L Lu. 2011. Automatic pipelining from transactional datapath specifications. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 30, 3 (2011), 441–454. https://doi.org/10.1109/TCAD.2010.2088950
[19]
Brandon Reagen, Robert Adolf, Yakun Sophia Shao, Gu-Yeon Wei, and David Brooks. 2014. MachSuite: Benchmarks for accelerator design and customized architectures. In Proceedings of the IEEE International Symposium on Workload Characterization. Raleigh, North Carolina. https://doi.org/10.1109/IISWC.2014.6983050
[20]
Alastair Reid, Rick Chen, Anastasios Deligiannis, David Gilday, David Hoyes, Will Keen, Ashan Pathirane, Owen Shepherd, Peter Vrabel, and Ali Zaidi. 2016. End-to-end verification of processors with ISA-Formal. In Int’l Conf. on Computer Aided Verification (CAV). 42–58. https://doi.org/10.1007/978-3-319-41540-6_3
[21]
Berkeley Architecture Research. 2021. Sodor Core. https://chipyard.readthedocs.io/en/dev/Generators/Sodor.html Accessed: 2021-08-01.
[22]
Martin C. Rinard, Daniel J. Scales, and Monica S. Lam. 1993. Jade: A high-level, machine-independent language for parallel programming. Computer, 26, 6 (1993), 28–38. https://doi.org/10.1109/2.214440
[23]
Simon Rokicki, Davide Pala, Joseph Paturel, and Olivier Sentieys. 2019. What you simulate is what you synthesize: Designing a processor core from C++ specifications. In 2019 IEEE/ACM International Conference on Computer-Aided Design (ICCAD). 1–8. https://doi.org/10.1109/ICCAD45719.2019.8942177
[24]
Mostafa Sayahkarajy, E Supriyanto, MH Satria, and Hasri Samion. 2017. Design of a microcontroller-based artificial pacemaker: An internal pacing device. In 2017 International Conference on Robotics, Automation and Sciences (ICORAS). 1–5. https://doi.org/10.1109/ICORAS.2017.8308062
[25]
James E Stine, Ivan Castellanos, Michael Wood, Jeff Henson, Fred Love, W Rhett Davis, Paul D Franzon, Michael Bucher, Sunil Basavarajaiah, and Julie Oh. 2007. FreePDK: An open-source variation-aware design kit. In 2007 IEEE international conference on Microelectronic Systems Education (MSE’07). 173–174. https://doi.org/10.1109/MSE.2007.44
[26]
Robert E. Strom and Shaula Yemini. 1986. Typestate: A Programming Language Concept for Enhancing Software Reliability. IEEE Transactions on Software Engineering (TSE), 12, 1 (1986), Jan., 157–171. https://doi.org/10.1109/TSE.1986.6312929
[27]
Donald Thomas and Philip Moorby. 2008. The Verilog® hardware description language. Springer Science & Business Media.
[28]
Robert M Tomasulo. 1967. An efficient algorithm for exploiting multiple arithmetic units. IBM Journal of research and Development, 11, 1 (1967), 25–33. https://doi.org/10.1147/rd.111.0025
[29]
Andrew Waterman and Krste Asanović. 2017. The RISC-V instruction set manual, volume I: User-level ISA, Version 2.2.
[30]
Steven JE Wilton and Norman P Jouppi. 1996. CACTI: An enhanced cache access and cycle time model. IEEE Journal of solid-state circuits, 31, 5 (1996), 677–688. https://doi.org/10.1109/4.509850
[31]
F. Zaruba and L. Benini. 2019. The Cost of application-class processing: Energy and performance analysis of a Linux-ready 1.7-GHz 64-Bit RISC-V core in 22-nm FDSOI technology. IEEE Transactions on Very Large Scale Integration (VLSI) Systems, 27, 11 (2019), Nov, 2629–2640. issn:1557-9999 https://doi.org/10.1109/TVLSI.2019.2926114
[32]
Danfeng Zhang, Yao Wang, G. Edward Suh, and Andrew C. Myers. 2015. A Hardware Design Language for Timing-Sensitive Information-Flow Security. In Int’l Conf. on Architectural Support for Programming Languages and Operating Systems (ASPLOS). 503–516. http://www.cs.cornell.edu/andru/papers/asplos15
[33]
Hongce Zhang, Weikun Yang, Grigory Fedyukovich, Aarti Gupta, and Sharad Malik. 2020. Synthesizing environment invariants for modular hardware verification. In International Conference on Verification, Model Checking, and Abstract Interpretation. 202–225. https://doi.org/10.1007/978-3-030-39322-9_10

Cited By

View all
  • (2024)Wavefront Threading Enables Effective High-Level SynthesisProceedings of the ACM on Programming Languages10.1145/36564208:PLDI(1066-1090)Online publication date: 20-Jun-2024
  • (2024)Modular Hardware Design of Pipelined Circuits with HazardsProceedings of the ACM on Programming Languages10.1145/36563788:PLDI(28-51)Online publication date: 20-Jun-2024
  • (2024)PipeGen: Automated Transformation of a Single-Core Pipeline into a Multicore Pipeline for a Given Memory Consistency ModelProceedings of the 2024 International Conference on Parallel Architectures and Compilation Techniques10.1145/3656019.3676889(1-13)Online publication date: 14-Oct-2024

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PLDI 2022: Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation
June 2022
1038 pages
ISBN:9781450392655
DOI:10.1145/3519939
  • General Chair:
  • Ranjit Jhala,
  • Program Chair:
  • Işil Dillig
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 09 June 2022

Permissions

Request permissions for this article.

Check for updates

Badges

Author Tags

  1. Computer architecture
  2. Language design

Qualifiers

  • Research-article

Conference

PLDI '22
Sponsor:

Acceptance Rates

Overall Acceptance Rate 406 of 2,067 submissions, 20%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)371
  • Downloads (Last 6 weeks)47
Reflects downloads up to 17 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Wavefront Threading Enables Effective High-Level SynthesisProceedings of the ACM on Programming Languages10.1145/36564208:PLDI(1066-1090)Online publication date: 20-Jun-2024
  • (2024)Modular Hardware Design of Pipelined Circuits with HazardsProceedings of the ACM on Programming Languages10.1145/36563788:PLDI(28-51)Online publication date: 20-Jun-2024
  • (2024)PipeGen: Automated Transformation of a Single-Core Pipeline into a Multicore Pipeline for a Given Memory Consistency ModelProceedings of the 2024 International Conference on Parallel Architectures and Compilation Techniques10.1145/3656019.3676889(1-13)Online publication date: 14-Oct-2024

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media