MicroSim

from Wikipedia, the free encyclopedia
MicroSim

Logo from MikroSim 2010
Screenshot MikroSim2010.png
Screenshot of the Windows application MikroSim 2010
Basic data

developer 0/1 SimWare
Publishing year 1992
Current  version 3.0.13
(June 20, 2012)
operating system Windows
programming language Visual Basic
License proprietary ( shareware )
German speaking Yes
www.mikrocodesimulator.de

MikroSim is a learning software for the Windows operating system for non-hardware-specific explanation of the general functionality and control processes of a virtual calculating machine. In a generally understandable way, miniaturized arithmetic units can be explained didactically on the register transfer level , which run in microcontrollers , processors and computers .

General

In the beginning, MikroSim was designed as processor simulation software. However, since MikroSim focuses on the programmability ( microprogramming ) of a microprogram control unit by means of microinstructions , the use as a microcode simulator emphasizes the aspect of microcode simulation. In the current development, the simulator has the status of a virtual application. In doing so, general principles of system and computer architecture are taken up, which were established with the beginning of the information age and which still exist today, without being limited to special hardware aspects. In this way, the simulation tool has a timeless, free didactic benefit without having to commit to specific past and future developments. The detailed documentation and the bilingual user guidance of the e-learning application in German and English, as well as the design of the software for the widely used Windows operating systems, is the reason for the long-term existence of the software in teaching in the field of technical informatics in training and teaching since 1992.

Development history

The software is based on a free program version written under Turbo Pascal for the MS-DOS operating system , which was used until 1992 at the Philipps University of Marburg in the lecture on technical informatics to explain microcode control processes. The didactic lecture concept established by then was taken up in summer 1992 by Martin Perner during his physics diploma studies (1990–1995) and ported to the Windows 3.1 operating system under Visual Basic 1.0 as a freelancer . The simulator was created in a completely new concept for the time with extensive functionality improvements. The further development of the teaching software under Windows was funded by Heinz-Peter Gumm by the Department of Mathematics / Computer Science at the University of Marburg until 1995. The simulator was awarded the European University Software Prize 1994 in the Computer Science category in Heidelberg in November 1994 and was presented to the public in March 1995 at the Cebit computer fair in Hanover at the stand of the Hessian universities.

In the period from the end of 1995 to the beginning of 2000, the simulator was published with a few improvements under the revision MikroSim 1.2. During this period, MikroSim was awarded 1000 ECU as part of the European Year of Lifelong Learning 1996 , and was presented in the Multimedia Transfer'97 competition at the LearnTec'97 trade fair . In its penultimate new edition, the simulator was adapted for Windows 95 under the name “Mikrocodeimulator MikroSim2000” using the MS-Visual Basic 4.0 programming language .

In the period from the beginning of 2008 to 2009, the simulator underwent extensive conceptual enhancements without changing the core capabilities of the microcode simulation. The computing power of today's Windows applications and the hardware used is used to enable simulations through to virtual applications. MikroSim has been compiled as a 32-bit version and optimized for Windows XP . The program can be executed on all 32- and 64-bit operating systems of the Windows Vista and Windows 7 versions without special XP compatibility modes. Since January 2010 the simulator has been marketed by 0/1 SimWare under the name "Mikrocodeimulator MikroSim 2010".

Functionality and scope

The program enables the step-by-step construction of a virtual application whose functionality cannot be changed. In the exploration mode, the functionality and control of newly added components can be learned within a microcode command cycle. The width of the microinstructions supported by MikroSim is 49 bits. A microinstruction is processed in three sub-phases of a 3-phase cycle. The partial phases are referred to as the fetch, compute and bring phase and cause a 32-bit wide register value to be fetched, a 32-bit calculation to be carried out and the final storage of the calculation result in a CPU-internal register .

In the simulation mode, micro-commands executed one after the other can control the central processing unit of the simulator, with each micro-command referring to the address of the next micro-command. The set of microinstructions, commonly referred to as the computing unit “microcode”, comprises 49-bit long microinstructions in the current implementation of MikroSim 1024. Structuring options in the addressable flowchart in the microcode and the development of a cyclical, microcode-programmed interpreter for operation codes ( opcodes for short ) enable the implementation of individual microcode-programmed microinstruction sequences. These can be understood as micro-programmed machine commands . The microcode can be stored as firmware for MikroSim as a microcode ROM file (ROM, read-only memory ), modified and reloaded.

Within one microinstruction cycle, both the CPU and an input / output controller can access an external 16 kB RAM - data memory (RAM, English Random Access Memory ). Communication with connected input and output components with DMA , I²C and IRQ functionality takes place via the input / output controller . An output port, a display, a timer, an event trigger, a digital-to-analog converter, a keyboard and data input-output channels are supported.

The microcode simulator uses eight freely usable 32-bit registers, the contents of which are used for signed and unsigned integer calculations as well as for 32-bit floating point arithmetic. The register contents can be viewed and modified with a clear system number editor.

The central processing unit of the simulator, the 32-bit ALU , supports 128 different, basic arithmetic operations for integers and interrupt control up to floating point arithmetic , which was first introduced in a comparable way by Konrad Zuse . To clarify this arithmetic, elementary arithmetic operations are available for the step-by-step resolvable floating point register operations in mantissa and exponent from the basic calculations of addition / subtraction and multiplication / division. In addition, more powerful 32-bit arithmetic commands of floating point arithmetic in mantissa and exponent are provided for the basic arithmetic operations and elementary analytical functions, as implemented in mathematical coprocessors . It is idealized here that each of the 128 supported ALU arithmetic operations requires only one virtual arithmetic cycle for execution.

The microinstructions can be executed at different simulation levels:

  • In the lowest simulation level, the simulator supports the phased processing of a microinstruction, which is divided into a so-called fetch, compute and bring phase. The processing of the partial phases is possible with an adjustable delay for better tracking.
  • Building on this, the complete processing of a microinstruction is possible in a three-phase cycle without delay. Likewise, the processing of several micro-commands that can be combined into one machine command using a machine code interpreter programmed in microcode. The interpreter has the task of fetching machine language commands, coded as operation codes in a byte value, from the RAM and branching to the corresponding microcode subprogram address for microprogrammed execution.
  • In addition, several machine commands can be processed up to a freely definable breakpoint. The time until the stop point is reached for simulation optimizations can be stopped.
  • At the highest level of simulation, the microcode simulator can process machine language sequences in free-running mode without any interruption, thus bringing the interaction of the application with input and output interfaces to the fore.

With various additional options, visual CPU activities can be suppressed in favor of increasing the processing speed, so that the machine programming of the virtual application comes to the fore. With the performance index monitor, the simulator offers the possibility to determine the processing speed and execution time of designed microinstruction sequences and to compare these in relation to computing power, measured in floating point operations per second (FLOPS, English floating point operations per second ) and machine / Microinstructions per second (MIPs, English Million Instructions per Second ) to set the simulation hardware used.

With the additional program MikroBAT, the so-called "Basic Assembler Tool" for MikroSim, simple programs can be created in assembler . The command scope of supported mnemonics is determined by the set of own microcode-programmed machine commands (opcode). The additional program is able to translate the assembler program into machine code and to transfer it to the external data memory for subsequent simulations. Together with MikroBAT, the microcode simulator deals with teaching aspects of technical informatics in a didactically building-up manner, from switch-controlled calculators to assembler programmable applications.

literature

  • HPGumm, M.Sommer: Introduction to Computer Science , 8th edition. Oldenbourg, Munich 2009, ISBN 978-3-486-58724-1 , (on MikroSim in particular Chapter 5.6, pp. 470-485.)

Web links

Individual evidence

  1. Awards and Accolades on the MikroSim website. (Accessed November 5, 2010.)