MikroSim
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
|
Original author(s) | Dr. Martin Perner of 0/1-SimWare |
---|---|
Initial release | 1992, 31–32 years ago |
Stable release | 3.0.13
/ June 20, 2012 |
Written in | Visual Basic |
Operating system | Microsoft Windows |
Available in | English, German |
Type | Computer simulation, Computer architecture |
License | Freeware, Shareware |
Website | www.mikrocodesimulator.de |
MikroSim is an
General
Initially MikroSim was developed to be a processor simulation software to be widely available in educational areas. Since MikroSim operability starts on the basis of microcode development, defined as a sequence of micro instructions (microcoding) for a virtual
History of development
The software is based on a version written under
The Simulator has been awarded with the European Academic Software Award 1994 in the computer science category in Heidelberg (Germany) in November 1994. In March 1995 the simulator was presented at the computer exhibition
Between 2008 and 2009, the simulator concept has been revised, reworked, and thoughtful extended. So it has received wide-ranging improvements and extensions without touching the successful conceptual aspects of the microcode simulation abilities in the core. For this purpose, advantage is taken of today’s computing system’s performance determined by operating system and underlying computational power to extend MikroSim’s simulation possibilities up to the stage of a virtual application board. MikroSim is compiled and optimized for sake of unrestricted compatibility and for widest distribution possible for
Functionality
The Windows application allows for the gradual establishment of a virtual application that is predetermined and such unchangeable in its functionality.
In exploration mode, the operating principle and control of newly added components influenced by one microcode instruction within a cycle can be evaluated. The width of MikroSim’s micro instructions is 49 bits. A single micro instruction is executed in three phases of a 3-phase clock. The partial phases are referred to as "GET", "CALCULATE" and "PUT" phase, causing to fetch some register value, to execute a 32-bit calculation, and to store the calculation result into a CPU's internal register, finally.
In simulation mode, seamlessly executed micro instructions control the central processing unit of the simulator in subsequent cycles. Therefore, the intrinsic ability of one micro instruction is utilized to address the next micro instruction in the control store. The control store holding the micro instruction set (commonly referred as "microcode") comprises 1024 micro instructions words each 49-bit wide.
Using structuring opportunities of the control store for addressable scheduling of the microcode and the implementation of a cyclically operating machine code
Within a micro instruction execution cycle, the CPU as well as an input / output controller is connected to an external 16 KB huge random access memory device (RAM). Via the input-output controller device, communication with virtual input and output devices is supported by
The microcode simulator uses eight freely usable register each 32-bit wide connected with a 32-bit
The 32-bit ALU is the key unit of the central processing unit. It supports 128 different basic arithmetic operations for integer operation, interrupt control, and for floating point arithmetic.
The didactical approach to floating point calculations, which has been introduced in a comparable manner already in the early 1940s by Konrad Zuse, is introduced by using elemental sublevel operations for exponent and mantissa involved in the key operations of addition/subtraction and multiplication/division. A set of powerful 32-bit floating point arithmetic commands in mantissa and exponent for the basic operations and elementary analytical functions are provided, as they are realized in today's mathematical coprocessors. Here, in the simulation with MikroSim it is ideally assumed that the execution of each supported ALU arithmetic operation requires only a distinct computing duration independent of circuit complexity realistically needed in practice.
The execution of micro instructions can be operated on various simulation levels with different temporal resolution:
- In the lowest simulation level, the simulator supports the phased wise execution of GET, CALCULATE, and PUT phase. The processing of the partial phases is possible with an adjustable delay for better traceability.
- In next upper level, the current micro instruction is executed in a complete three-phase clock without time delay. A continuous execution of several 3-phase clock cycles is supported within a so-called “Load Increment Execute” (LIE) cycle. The LIE cycle regarded as an interpreter written in microcode has the function to load machine instructions coded as byte value from the external RAM and to let branch the micro instruction sequence to the referenced microcode subroutine for execution given by the opcode and returning to the LIE back to retrieve the next machine instruction.
- One execution level higher, a sequence of several machine instructions are executable until a user-defined break point is reached, which is placed in the machine code sequence. It is possible to measure run times between break points. So it is possible to benchmark execution performance on machine and microcode level.
- In the top most simulation level the microcode simulator continuously executes micro instructions without interrupt. In this level, machine instruction by machine instruction is loaded. So, it is possible to focus on the interaction of the CPU with external devices.
With various additional options, visual CPU activities can be suppressed for the benefit of increasing the processing speed when the control of the application by machine programming is put forward. The performance index monitor provided with the simulator enables the user to benchmark the processing performance of MikroSim and setting it into relation with computing power of the simulator's hardware, measurable in
With the "Basic Assembler Tool for MikroSim" MikroBAT, simple programs can be developed in assembler programming language. Here, all supported mnemonics of the assembler programming language are determined by the user's self-created machine's instruction set on micro instruction level. The add-on tool is able to translate the assembly language program into machine code and data and transferring the binary code into the external RAM for subsequent simulations. Together with MikroBAT the microcode simulator MikroSim supports the didactical introduction of teaching aspects in technical computer science from a switch-controlled calculating machine to an assembler programmable application.
See also
- Computer architecture simulator
- Cycle Accurate Simulator
- Educational programming language
- Full system simulator
- Instruction set simulator
- Instrumentation (computer programming)
- von Neumann architecture
Literature
- Gumm, HP; Sommer, M (2009), "5.6", Einführung in die Informatik (in German) (8 ed.), Munich: Oldenbourg, pp. 470–85, ISBN 978-3-486-58724-1.
References
- ^ Mikrocodesimulator – Awards and Honours, DE: MikroSim, retrieved 5 December 2010.
External links
- Media related to MikroSim at Wikimedia Commons
- "Mikrocodesimulator MikroSim 2010" (official Website). 0/1-SimWare.