Nothing Special   »   [go: up one dir, main page]

skip to main content
10.5555/956417.956545acmconferencesArticle/Chapter ViewAbstractPublication PagesmicroConference Proceedingsconference-collections
Article

LLVA: A Low-level Virtual Instruction Set Architecture

Published: 03 December 2003 Publication History

Abstract

A virtual instruction set architecture (V-ISA) implementedvia a processor-specific software translation layercan provide great flexibility to processor designers. Recentexamples such as Crusoe and DAISY, however, haveused existing hardware instruction sets as virtual ISAs,which complicates translation and optimization. In fact,there has been little research on specific designs for a virtualISA for processors. This paper proposes a novel virtualISA (LLVA) and a translation strategy for implementingit on arbitrary hardware. The instruction set is typed,uses an infinite virtual register set in Static Single Assignmentform, and provides explicit control-flow and dataflowinformation, and yet uses low-level operations closelymatched to traditional hardware. It includes novel mechanismsto allow more flexible optimization of native code,including a flexible exception model and minor constraintson self-modifying code. We propose a translationstrategy that enables offline translation and transparent offlinecaching of native code and profile information, whileremaining completely OS-independent. It also supports optimizationsdirectly on the representation at install-time,runtime, and offline between executions. We show experimentallythat despite its rich information content,virtual object code is comparable in size to native machinecode, virtual instructions expand to only 2-4 ordinaryhardware instructions on average, and simple translationcosts under 1% of total execution time except for veryshort runs.

References

[1]
{1} A.-R. Adl-Tabatabai, et al. Fast and effective code generation in a just-in-time Java compiler. In PLDI, May 1998.
[2]
{2} T. Austin, et al. The pointer-intensive benchmark suite. Available at www.cs.wisc.edu/~austin/ptrdist.html, Sept. 1995.
[3]
{3} A. Ayers, S. de Jong, J. Peyton, and R. Schooler. Scalable cross-module optimization. ACM SIGPLAN Notices, 33(5):301-312, 1998.
[4]
{4} V. Bala, E. Duesterwald, and S. Banerjia. Dynamo: A transparent dynamic optimization system. In PLDI, pages 1-12, June 2000.
[5]
{5} D. Burger and J. R. Goodman. Billion-transistor architectures. Computer, 30(9):46-49, Sept. 1997.
[6]
{6} M. G. Burke, J.-D. Choi, S. Fink, D. Grove, M. Hind, V. Sarkar, M. J. Serrano, V. C. Sreedhar, H. Srinivasan, and J. Whaley. The Jalapeño Dynamic Optimizing Compiler for Java. In Java Grande, pages 129-141, 1999.
[7]
{7} J. Chen, D. Wu, A. W. Appel, and H. Fang. A provably sound TAL for back-end optimization. In PLDI, San Diego, CA, Jun. 2003.
[8]
{8} A. Chernoff, et al. FX!32: A profile-directed binary translator. IEEE Micro, 18(2):56-64, 1998.
[9]
{9} B. E. Clark and M. J. Corrigan. Application system/400 performance characteristics. IBM Systems Journal, 28(3):407- 423, 1989.
[10]
{10} R. Cytron, J. Ferrante, B. K. Rosen, M. N. Wegman, and F. K. Zadeck. Efficiently computing static single assignment form and the control dependence graph. TOPLAS, pages 13(4):451-490, October 1991.
[11]
{11} J. C. Dehnert, et al. The Transmeta Code Morphing Software: Using speculation, recovery and adaptive retranslation to address real-life challenges. In Proc. 1st IEEE/ACM Symp. Code Generation and Optimization, San Francisco, CA, Mar. 2003.
[12]
{12} A. S. Dhodapkar and J. E. Smith. Managing multiconfiguration hardware via dynamic working set analysis. In ISCA, Alaska, May 2002.
[13]
{13} D. Dhurjati, S. Kowshik, V. Adve, and C. Lattner. Memory safety without runtime checks or garbage collection. In LCTES, San Diego, CA, Jun. 2003.
[14]
{14} K. Ebcioglu and E. R. Altman. DAISY: Dynamic compilation for 100% architectural compatibility. In ISCA, pages 26-37, 1997.
[15]
{15} J. Fisher. Walk-time techniques: Catalyst for architectural change. Computer, 30(9):46-42, Sept. 1997.
[16]
{16} R. Ghiya, D. Lavery, and D. Sehr. On the importance of points-to analysis and other memory disambiguation methods for C programs. In PLDI. ACM Press, 2001.
[17]
{17} J. Gosling, B. Joy, G. Steele, and G. Bracha. The Java Language Specification, 2nd Ed. Addison-Wesley, Reading, MA, 2000.
[18]
{18} D. Griswold. The Java HotSpot Virtual Machine Architecture, 1998.
[19]
{19} T. H. Heil and J. E. Smith. Relational profiling: enabling thread-level parallelism in virtual machines. In MICRO, pages 281-290, Monterey, CA, Dec. 2000.
[20]
{20} IBM Corp. XL FORTRAN: Eight Ways to Boost Performance. White Paper, 2000.
[21]
{21} Intel Corp. Special Issue on Intel HyperThreading Technology in Pentium 4 Processors. Intel Technology Journal, Q1, 2002.
[22]
{22} H.-S. Kim and J. E. Smith. An instruction set and microarchitecture for instruction level distributed processing. In ISCA, Alaska, May 2002.
[23]
{23} A. Klaiber. The Technology Behind Crusoe Processors, 2000.
[24]
{24} S. Kowshik, D. Dhurjati, and V. Adve. Ensuring code safety without runtime checks for real-time control systems. In CASES, Grenoble, France, Oct. 2002.
[25]
{25} C. Lattner and V. Adve. Automatic Pool Allocation for Disjoint Data Structures. In Proc. ACM SIGPLAN Workshop on Memory System Performance, Berlin, Germany, Jun. 2002.
[26]
{26} C. Lattner and V. Adve. LLVM: A Compilation Framework for Lifelong Program Analysis and Transformation. Tech. Report UIUCDCS-R-2003-2380, Computer Science Dept., Univ. of Illinois at Urbana-Champaign, Sept. 2003.
[27]
{27} M. C. Merten, A. R. Trick, E. M. Nystrom, R. D. Barnes, and W. m. W. Hwu. A hardware mechanism for dynamic extraction and relayout of program hot spots. In ISCA, pages 59-70, Jun. 2000.
[28]
{28} G. Morrisett, D. Walker, K. Crary, and N. Glew. From System F to typed assembly language. TOPLAS, 21(3):528-569, May 1999.
[29]
{29} P. Oberoi and G. S. Sohi. Parallelism in the front-end. In ISCA, June 2003.
[30]
{30} S. J. Patel and S. S. Lumetta. rePLay: A Hardware Framework for Dynamic Optimization. IEEE Transactions on Computers, Jun. 2001.
[31]
{31} K. Sankaralingam, R. Nagarajan, H. Liu, C. Kim, and J. Huh. Exploiting ILP, TLP, and DLP with the Polymorphous TRIPS Architecture. In ISCA, June 2003.
[32]
{32} J. E. Smith, T. Heil, S. Sastry, and T. Bezenek. Achieving high performance via co-designed virtual machines. In International Workshop on Innovative Architecture (IWIA), 1999.
[33]
{33} J. M. Tendler, J. S. Dodson, J. S. Fields, Jr., H. Le, and B. Sinharoy. The POWER4 system microarchitecture. IBM Journal of Research and Development, 46(1):5-26, 2002.
[34]
{34} D. Ungar and R. B. Smith. Self: The power of simplicity. In OOPSLA, 1987.
[35]
{35} C. Zilles and G. Sohi. A programmable coprocessor for profiling. In HPCA, Jan. 2001.

Cited By

View all
  • (2019)SYMACProceedings of the 2nd International Conference on Computer Science and Software Engineering10.1145/3339363.3339379(126-131)Online publication date: 24-May-2019
  • (2019)Secure guest virtual machine support in apparitionProceedings of the 15th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments10.1145/3313808.3313809(17-30)Online publication date: 14-Apr-2019
  • (2018)Datalog-based scalable semantic diffing of concurrent programsProceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering10.1145/3238147.3238211(656-666)Online publication date: 3-Sep-2018
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
MICRO 36: Proceedings of the 36th annual IEEE/ACM International Symposium on Microarchitecture
December 2003
412 pages
ISBN:076952043X

Sponsors

Publisher

IEEE Computer Society

United States

Publication History

Published: 03 December 2003

Check for updates

Qualifiers

  • Article

Conference

MICRO-36
Sponsor:

Acceptance Rates

MICRO 36 Paper Acceptance Rate 35 of 134 submissions, 26%;
Overall Acceptance Rate 484 of 2,242 submissions, 22%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)0
Reflects downloads up to 10 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2019)SYMACProceedings of the 2nd International Conference on Computer Science and Software Engineering10.1145/3339363.3339379(126-131)Online publication date: 24-May-2019
  • (2019)Secure guest virtual machine support in apparitionProceedings of the 15th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments10.1145/3313808.3313809(17-30)Online publication date: 14-Apr-2019
  • (2018)Datalog-based scalable semantic diffing of concurrent programsProceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering10.1145/3238147.3238211(656-666)Online publication date: 3-Sep-2018
  • (2017)Modular verification of interrupt-driven softwareProceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering10.5555/3155562.3155592(206-216)Online publication date: 30-Oct-2017
  • (2017)DESCRY: reproducing system-level concurrency failuresProceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering10.1145/3106237.3106266(694-704)Online publication date: 21-Aug-2017
  • (2017)Thread-modular static analysis for relaxed memory modelsProceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering10.1145/3106237.3106243(337-348)Online publication date: 21-Aug-2017
  • (2016)An approach to error correction in program code using dynamic optimization in a virtual execution environmentThe Journal of Supercomputing10.1007/s11227-015-1616-472:3(845-873)Online publication date: 1-Mar-2016
  • (2015)Assertion guided symbolic execution of multithreaded programsProceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering10.1145/2786805.2786841(854-865)Online publication date: 30-Aug-2015
  • (2014)Incremental symbolic execution for automated test suite maintenanceProceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering10.1145/2642937.2642961(271-276)Online publication date: 15-Sep-2014
  • (2013)Using likely invariants for automated software fault localizationACM SIGPLAN Notices10.1145/2499368.245113148:4(139-152)Online publication date: 16-Mar-2013
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media