Skip to main content

Using EventB to Create a Virtual Machine Instruction Set Architecture

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 5238))

Abstract

A Virtual Machine (VM) is a program running on a conventional microprocessor that emulates the binary instruction set, registers, and memory space of an idealized computing machine, a well-known example being the Java Virtual Machine (JVM). Despite there being many binary Instruction Set Architectures (ISA) in existence, all share a set of core properties which have been tailored to their particular applications. An abstract model may capture these generic properties and be subsequently refined to a particular machine, providing a reusable template for development of formally proven ISAs: this is a task to which the EventB [16,18] notation is well suited. This paper describes a project to use the RODIN tool-set [24] to perform such a process, ultimately producing the MIDAS (Microprocessor Instruction and Data Abstraction System) VM, capable of running binary executables compiled from high-level languages such as C [9]. The abstract model is incrementally refined to a model capable of automatic translation to C source code, and compilation for a hardware platform using a standard compiler. A second C compiler, targeted to the VM itself, allows C programs to be executed on it.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. AMD Inc. 28-Bit SSE5 Instruction Set (2007)

    Google Scholar 

  2. Audsely, N.: Portable Code in Future Avionic Systems, IEE Colloquium on Real-Time Systems (Digest No. 1998/306) (1998)

    Google Scholar 

  3. Beer, I., Ben-David, S.: RuleBase: Model checking at IBM. In: Grumberg, O. (ed.) CAV 1997. LNCS, vol. 1254. Springer, Heidelberg (1997)

    Google Scholar 

  4. Butler, M.: RODIN Deliverable D16 Prototype Plug-in Tools (2006), http://rodin.cs.ncl.ac.uk

  5. Caset, L.: Formal Development of an Embedded Verifier for Java Card Byte Code. In: International Conference on Dependable Systems and Networks (2002)

    Google Scholar 

  6. Evans, N., Butler, M.: A Proposal for Records in Event-B Formal Methods 2006 (2006)

    Google Scholar 

  7. Hennessy, J., Patterson, D.: Computer Architecture, A Quantitive Approach. Morgan Kaufmann, San Francisco (2003)

    Google Scholar 

  8. Hitachi Ltd. SH7707 Hardware Manual (1998)

    Google Scholar 

  9. Kernighan, B., Ritchie, D.: The C Programming Language. Prentice Hall, Englewood Cliffs (1988)

    Google Scholar 

  10. Lapsley, P., Bier, J., Shoham, A., Lee, E.: DSP Processor Fundamentals. IEEE Press, Los Alamitos (1997)

    MATH  Google Scholar 

  11. Lee, E.: Programmable DSP Processors part I and II. IEEE ASSP Mag. (October 1988–January 1989)

    Google Scholar 

  12. Leuschel, M., Butler, M.: ProB: A Model Checker for B. In: FME 2003, SpringerLink (2003)

    Google Scholar 

  13. Lindholm, T., Yellin, F.: The Java Virtual Machine Specification, 2nd edn (1999)

    Google Scholar 

  14. Lowry, H., Mitchell, B.: Mission computer replacement prototype for Special Operations Forces aircraft an application of commercial technology to avionics. In: Proceedings of The 19th Digital Avionics Systems Conference (2000)

    Google Scholar 

  15. Luke, J., Haldeman, D.: Replacement Strategy for Aging Avionics Computers. IEEE Aerospace and Electronic Systems Magazine 14(3) (1999)

    Google Scholar 

  16. Metayer, C., Abrial, J.-R., Voisin, L.: RODIN Deliverable 3.2 Event-B Language (2005), http://rodin.cs.ncl.ac.uk

  17. Moore, J.: A Grand Challenge Proposal for Formal Methods A Verified Stack. In: Formal Methods at the Crossroads From Panacea to Foundational Support, SpringerLink (2003)

    Google Scholar 

  18. Schneider, S.: The B-Method An Introduction. Palgrave (2001)

    Google Scholar 

  19. Shavor, S., D’Anjou, J., Fairbrother, S.: The Java Developer’s Guide to Eclipse. Addison-Wesley, Reading (2003)

    Google Scholar 

  20. Sherridan, F.: Practical Testing of a C99 Compiler Using Output Comparison. Software: Practical and Experience 37(14) (2007)

    Google Scholar 

  21. Stallman, R.: Using and Porting the GNU Compiler Collection, Free Software Foundation (2001)

    Google Scholar 

  22. Stark, R., Schmid, J., Borger, E.: Java and the Java Virtual Machine. Springer, Heidelberg (2001)

    Google Scholar 

  23. Utting, M., Legeard, B.: Practical Model-Based Testing – A Tools Approach. Morgan Kaufmann, San Francisco (2007)

    Google Scholar 

  24. Voisin, L.: A Description of the RODIN Prototype (2006), http://rodin.cs.ncl.ac.uk

  25. Wright, S.: MIDAS Design Document CSTR-06-014, Bristol University (2008), http://www.cs.bris.ac.uk/Publications/Papers/2000543.pdf

  26. http://www.hercules-390.org/

Download references

Author information

Authors and Affiliations

Authors

Editor information

Egon Börger Michael Butler Jonathan P. Bowen Paul Boca

Rights and permissions

Reprints and permissions

Copyright information

© 2008 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Wright, S. (2008). Using EventB to Create a Virtual Machine Instruction Set Architecture. In: Börger, E., Butler, M., Bowen, J.P., Boca, P. (eds) Abstract State Machines, B and Z. ABZ 2008. Lecture Notes in Computer Science, vol 5238. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-87603-8_21

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-87603-8_21

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-87602-1

  • Online ISBN: 978-3-540-87603-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics