Plasma
- A Multicore Programming and Simulation Language
Plasma is an experimental programming language whose existence was driven by both a desire to make multicore programming simpler and more robust, and a desire to have a low-cost tool which would allow us to model (simulate) complete systems at various levels of abstraction, including both hardware and software.
Plasma is an extension to C/C++ supporting explicit concurrent programming. This release is the version created at Freescale Semiconductor Inc. It's an early version intended for folk to experiment with the language; it compiles just for uniprocessor x86 Linux systems, using a threads package to emulate concurrency.
An introduction to the language may be obtained from the link below (this paper was presented at the 2005 Microprocessor Test and Verification Conference in Austin in fall 2005). A shorter document in the form of a presentation may be also be downloaded (the actual MTV slides).
The definition of the language has been a joint effort of Brian Kahne and Pete Wilson; the implementation work was done by Brian, who also converted most of the sample software (written by Pete) from another (simpler) language into Plasma, and then added several more complex examples himself.
Plasma could be used (given an industrial-strength implementation) for:
- - writing real, hard-realtime, distributed concurrent software
- - writing models of distributed software running on distributed hardware
- - writing models of distributed hardware at a variety of levels of abstraction.
ADL and µADL
ADL is a language and framework for describing processor cores. This project is composed of two main parts: the ADL language is used to describe a processor's architecture, i.e. the instructions, registers, MMU, etc. The µADL language is used to describe a processor's micro-architecture - that is, its pipeline. An ADL description may be used to generate an ISS, an assembler, documentation, etc. It may also be combined with a µADL description in order to generate a cycle-accurate or cycle-approximate simulator.
ADL was a project prototyped by Pete Wilson and then developed into a product-quality implementation by Brian Kahne with consultation and initial direction by Pete Wilson. µADL was conceived by Pete and Brian and implemented at Freescale.
ADL and plasma are now available from Freescale's open software site. Go to
http://opensource.freescale.com/fsl-oss-projects/
http://opensource.freescale.com/fsl-oss-proj