Electronic Design

  
Reprints     Printer-Friendly    Email this Article    RSS        Font Size     What's This?


[Embedded in Electronic Design]
Hardware Directory: Virtual-Machine Series

William Wong  |   ED Online ID #1976  |   October 14, 2002


Dis: The Inferno Virtual Machine
Inferno is a virtual-machine-based development environment akin to Java. Inferno’s virtual machine (VM) is called Dis. The programming language, called Limbo, has a C-like syntax.

Inferno is a conpact system designed for distributed environments. Its Styx protocol (see "Inferno Operating System Burns Its Way Into Embeded Systems," Electronic Design, Aug. 7, 2000, p. 26) is used to link applications together. Connections are secure channels, and the naming system uses a hierarchical directory structure.

Inferno can run on other operating systems, like Windows, Solaris, and Linux, or it can operate as its own multithreaded operating system. The overall system design is compact, making it useful even in low-end embedded applications. The Dis VM supports only the Limbo language, although it could, in theory, support any compiler that generates Dis bytecodes. The VM has been implemented on a wide range of processors, from x86 to the MIPS architecture. It is even available as a browser plug-in similar to the Java Web-based plug-in for running client-side applets.

Dis has many similarieties to a Java VM. It supports garbage collection, and JIT and interpreter versions have been implemented. The Dis architecture makes native-code compilation easier. It uses a memory transfer machine (MTM) virtual machine instead of the more conventional stack-oriented architecture. The MTM architecture uses instructions such as:

Add a,b,c    # c = a + b

Instead of:

  push a  push b  add  store c

An MTM-style intermediate code is often used inside other compilers, and this code is then translated into the stack-oriented bytecodes. Dis eliminates this translation, resulting in a fast and efficient compiler for the VM.

The standard Dis garbage-collection scheme uses reference counting. This has the advantage of reclaiming memory as soon as it is unused, but it cannot collect circular structures. This can lead to memory leaks but not the use of invalid pointers. It is possible to implement Dis using a more conventional garbage collector like those found in most Java VMs but with the higher complexity and larger garbage-collection code size these implementations require. www.vitanuova.com


Reprints   Printer-Friendly  Email this Article  RSS    Font Size   What's This?


  • Network-On-Chip Tools Arrive for The Masses
  • Tackling System Design Challenges Through Early Verification
  • ESL Tools Take Center Stage As Designers Move Up
  • Parasitic Extraction Tool Targets Next-Generation Custom ICs
  • Synopsys Jumps Into ESL-Synthesis Pool
  • Verify Control Systems Before Committing To Hardware
  • You're Using How Many FPGAs?
  • Tool Up For The FPGA Blitz
    1) Build A Smart Battery Charger Using A Single-Transistor Circuit
    (183 views today)
    2) Hot Hands For Some Cool Rock: Motion Sensing Meets Audio Engineering
    (170 views today)
    3) What's All This Transimpedance Amplifier Stuff, Anyhow? (Part 1)
    (92 views today)
    4) GPS-Derived Grandmaster Clock Delivers Ultra-Precise Time And Frequency Sync
    (85 views today)
    5) Downconverting Mixers Lower Power Consumption While Improving Performance
    (67 views today)
    ALL TOP 20



    POST YOUR COMMENTS HERE
    Name:

    Email:
    Your Comments:

    Enter the text from the image below


    Please refresh the page if you have trouble reading this text.

    Search Electronic Design
         
      
     
    Web Seminar
    Sponsored By:
    Title: Read Pacing: A Performance Enhancing Feature of PCI Express Gen 2 Switch Devices
    Speakers: 
    Date: 07/01/08
    Register: 

    Electronic Design Europe Electronic Design China EEPN Power Electronics Auto Electronics Microwaves & RF
    Mobile Dev & Design Schematics Find Power Products Military Electronics EE Events Related Resources