MikroSim
Encyclopedia
The program MikroSim is an educational software
Educational software
Educational software is computer software, the primary purpose of which is teaching or self-learning.-Early History, 1940s - 1970s:The use of computer hardware and software in education and training dates to the early 1940s, when American researchers developed flight simulators which used analog...

 for hardware-non-specific explanation of the general functioning and behaviour of a virtual processor
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...

, running on the operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

 Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

. With this e-learning
E-learning
E-learning comprises all forms of electronically supported learning and teaching. The information and communication systems, whether networked learning or not, serve as specific media to implement the learning process...

 tool, devices like miniaturized calculator
Calculator
An electronic calculator is a small, portable, usually inexpensive electronic device used to perform the basic operations of arithmetic. Modern calculators are more portable than most computers, though most PDAs are comparable in size to handheld calculators.The first solid-state electronic...

s, microcontroller
Microcontroller
A microcontroller is a small computer on a single integrated circuit containing a processor core, memory, and programmable input/output peripherals. Program memory in the form of NOR flash or OTP ROM is also often included on chip, as well as a typically small amount of RAM...

, microprocessors
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...

, and computer can be explained didactically on own-developed instruction code on register transfer level
Register transfer level
In integrated circuit design, register-transfer level is a level of abstraction used in describing the operation of a synchronous digital circuit...

, which are controlled by program sequences of micro instructions (microcode
Microcode
Microcode is a layer of hardware-level instructions and/or data structures involved in the implementation of higher level machine code instructions in many computers and other processors; it resides in special high-speed memory and translates machine instructions into sequences of detailed...

). Based on this, on higher level of abstraction it is possible to develop an instruction set
Instruction set
An instruction set, or instruction set architecture , is the part of the computer architecture related to programming, including the native data types, instructions, registers, addressing modes, memory architecture, interrupt and exception handling, and external I/O...

 being able to control a virtual application board.

General

Initially, MikroSim was developed with the intention to be a processor simulation software, which is available manifold in educational areas. Since MikroSim operability starts on the basis of microcode development defined as a sequence of micro instructions (microcoding) for a virtual control unit
Control unit
A control unit in general is a central part of the machinery that controls its operation, provided that a piece of machinery is complex and organized enough to contain any such unit. One domain in which the term is specifically used is the area of computer design...

, the software’s intention is on first approach a microcode simulator with various levels of abstractions including the ability of CPU simulators and instruction set emulators. In the current software revision, even a microcode controlled virtual application is feasible to operate on own coded instruction sets. With MikroSim typical and well known concepts in the area of computer engineering
Computer engineering
Computer engineering, also called computer systems engineering, is a discipline that integrates several fields of electrical engineering and computer science required to develop computer systems. Computer engineers usually have training in electronic engineering, software design, and...

 like computer architecture
Computer architecture
In computer science and engineering, computer architecture is the practical art of selecting and interconnecting hardware components to create computers that meet functional, performance and cost goals and the formal modelling of those systems....

 and instruction set architecture are unspecifically treated, which have been established since the early days of the information era and being still valid. In this fashion the simulation software gains a timeless, free didactical benefit without being restricted on special developments of the past and in the future. The detailed documentation and the bilingual application’s graphical user interface (GUI
Gui
Gui or guee is a generic term to refer to grilled dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients. The term derives from the verb, "gupda" in Korean, which literally...

) in German and English, as well as the software’s upward compatibility given to some extend by MicroSoft’s operating system Windows, are reasons for being a well established valuable e-learning tool in field of computer engineering since 1992 for educational use.

History of development

The software bases on a revision written under Turbo-Pascal compiled for MS-DOS
MS-DOS
MS-DOS is an operating system for x86-based personal computers. It was the most commonly used member of the DOS family of operating systems, and was the main operating system for IBM PC compatible personal computers during the 1980s to the mid 1990s, until it was gradually superseded by operating...

 operating systems, which has been used for educational use in computer engineering and computer science
Computer science
Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...

 at the Philipps-University Marburg (Germany) until 1992. The didactical concept has been picked up by Martin Perner during his study of physics (1990–1995) in summer 1992, revised and converted into a windows application compiled with Microsoft Visual Basic
Visual Basic
Visual Basic is the third-generation event-driven programming language and integrated development environment from Microsoft for its COM programming model...

 and running on Windows 3.1x
Windows 3.1x
Windows 3.1x is a series of 16-bit operating systems produced by Microsoft for use on personal computers. The series began with Windows 3.1, which was first sold during March 1992 as a successor to Windows 3.0...

. In doing so, at this time a simulator with huge conceptual improvements arose by exploiting the novel functionality and utilisation of Windows’ GUI for supporting the composition of microcode and the traceability of its instructional influence. The enhancements of the e-learning tool under Windows has been supported and promoted by the Fachbereich Mathematik/Informatik of the University of Marburg by Heinz-Peter Gumm until end 1995.

The Simulator has been awarded with the ‘’European Academic Software Award 1994’’ in the category computer science in Heidelberg (Germany) in November 1994. In March 1995 the simulator has been presented at the computer exhibition CeBIT
CeBIT
CeBIT is the world's largest and most international computer expo. CeBIT is held each year on the world's largest fairground in Hanover, Germany, and is a barometer of the state of the art in information technology...

’95 in Hannover at the stand of the ‘’Hessischen Hochschulen’’. Between 1995 until the year 2000 the simulator has been published as ‘’Mikrocodesimulator MikroSim 1.2’’ without any significant improvements. At this time the tool has been awarded by the European Union in the context of the ‘’European Year of Livelong Learning 1996’’ with 1000 ECU.
In 1997, the software has been presented at the contest ‘’Multimedia Transfer’97’’ in connection to the exhibition ‘’LearnTec’97’’. In its penultimate revision, the simulator has been published under ‘’Mikrocodesimulator MikroSim2000’’, optimized for Windows95’s 32-bit operation.

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. Since January 2010, the simulator is distributed as ‘’Mikrocodesimulator MikroSim 2010’’ by 0/1-SimWare.

Compatibility

MikroSim is compiled and optimized for sake of unrestricted compatibility and for widest distribution possible for Windows XP as a 32-bit version. The program runs on all 32 - and 64-bit operating systems of the Windows Vista and Windows 7. Thereby, no special XP compatibility mode is needed.

Licensing and distribution

The MikroSim can be used as freely distributable demo version with only few limitations in some in special functionalities negligible for private use and demonstration purpose. Most of the features are unlocked for private study and personal interests on crash course level. The demo version’s limitations concern educational aspects getting useful when using the tool extensively on long term. However, the software can be activated anonymously online without complicated registration process for a testing period of 10 days. For unlimited functionality, 0/1-SimWare offers several licensing models for single and multi user registration for private users, high schools, vocational schools, colleges, and universities. The training software is available as download under 'www.mikrocodesimulator.de'.

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
Control store
A control store is the part of a CPU's control unit that stores the CPU's microprogram. It is usually accessed by a microsequencer. Early control stores were implemented as a diode-array accessed via address decoders, a form of read-only memory. This tradition dates back to the program timing...

. 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 interpreter, that is programmed in microcode as well allows the implementation of individual micro-operation
Micro-operation
In computer central processing units, micro-operations are detailed low-level instructions used in some designs to implement complex machine instructions .Various forms of μops have long been the basis for traditional microcode routines used to simplify the implementation of a...

 sequences, known as machine instructions. The microcode can be regarded as firmware
Firmware
In electronic systems and computing, firmware is a term often used to denote the fixed, usually rather small, programs and/or data structures that internally control various electronic devices...

 for MikroSim, that can be modified, and stored in and reloaded from a microcode-ROM-file.

Within a micro instruction execution cycle, the CPU as well as an input / output controller is connected to an external 16 kByte huge random access memory device (RAM). Via the input-output controller device, communication with virtual input and output devices is supported by Direct Memory Access
Direct memory access
Direct memory access is a feature of modern computers that allows certain hardware subsystems within the computer to access system memory independently of the central processing unit ....

 mode (DMA), Inter-Integrated Circuit Connection (I2C), and Interrupt
Interrupt
In computing, an interrupt is an asynchronous signal indicating the need for attention or a synchronous event in software indicating the need for a change in execution....

 request functionality (IRQ). A output port, a display, a timer, an event trigger, a digital-analog converter, a keyboard and data input / output channel is provided as virtual IC device for explaining didactically the communication with external devices.

The microcode simulator uses eight freely usable register each 32-bit wide connected with a 32-bit arithmetic logic unit
Arithmetic logic unit
In computing, an arithmetic logic unit is a digital circuit that performs arithmetic and logical operations.The ALU is a fundamental building block of the central processing unit of a computer, and even the simplest microprocessors contain one for purposes such as maintaining timers...

 (ALU). The register content can be regarded as signed or unsigned integer values, or as 32-bit floating point
Floating point
In computing, floating point describes a method of representing real numbers in a way that can support a wide range of values. Numbers are, in general, represented approximately to a fixed number of significant digits and scaled using an exponent. The base for the scaling is normally 2, 10 or 16...

 numbers. The register content can be easily viewed, interpreted, and modified bitwise an integrated system number editor.

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
Konrad Zuse
Konrad Zuse was a German civil engineer and computer pioneer. His greatest achievement was the world's first functional program-controlled Turing-complete computer, the Z3, which became operational in May 1941....

, 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 floating-point operations per second (FLOPS
FLOPS
In computing, FLOPS is a measure of a computer's performance, especially in fields of scientific calculations that make heavy use of floating-point calculations, similar to the older, simpler, instructions per second...

) and instructions per second
Instructions per second
Instructions per second is a measure of a computer's processor speed. Many reported IPS values have represented "peak" execution rates on artificial instruction sequences with few branches, whereas realistic workloads typically lead to significantly lower IPS values...

 (IPS).

With the so-called ’’Basic Assembler Tool for MikroSim’’ MikroBAT, simple programs can be developed in assembler programming language
Assembly language
An assembly language is a low-level programming language for computers, microprocessors, microcontrollers, and other programmable devices. It implements a symbolic representation of the machine codes and other constants needed to program a given CPU architecture...

. Here, all supported mnemonic
Mnemonic
A mnemonic , or mnemonic device, is any learning technique that aids memory. To improve long term memory, mnemonic systems are used to make memorization easier. Commonly encountered mnemonics are often verbal, such as a very short poem or a special word used to help a person remember something,...

s 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
Machine code
Machine code or machine language is a system of impartible instructions executed directly by a computer's central processing unit. Each instruction performs a very specific task, typically either an operation on a unit of data Machine code or machine language is a system of impartible instructions...

 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
    Computer architecture simulator
    In computer science, a computer architecture simulator, or an architectural simulator, is a piece of software to model computer devices to predict outputs and performance metrics on a given input...

  • Cycle Accurate Simulator
    Cycle Accurate Simulator
    A Cycle Accurate Simulator is a computer program that simulates a microarchitecture cycle-accurate. In contrast an instruction set simulator simulates an Instruction Set Architecture usually faster but not cycle-accurate to a specific implementation of this architecture. They are often used when...

  • Educational programming language
    Educational programming language
    An educational programming language is a programming language that is designed primarily as a learning instrument and not so much as a tool for writing programs for real-world work.-Learning paths:...

  • Full system simulator
  • Instruction set simulator
    Instruction Set Simulator
    An instruction set simulator is a simulation model, usually coded in a high-level programming language, which mimics the behavior of a mainframe or microprocessor by "reading" instructions and maintaining internal variables which represent the processor's registers.Instruction simulation is a...

  • Instrumentation (computer programming)
    Instrumentation (computer programming)
    In context of computer programming, instrumentation refers to an ability to monitor or measure the level of a product's performance, to diagnose errors and to write trace information. Programmers implement instrumentation in the form of code instructions that monitor specific components in a system...

  • von Neumann architecture
    Von Neumann architecture
    The term Von Neumann architecture, aka the Von Neumann model, derives from a computer architecture proposal by the mathematician and early computer scientist John von Neumann and others, dated June 30, 1945, entitled First Draft of a Report on the EDVAC...


Literature

  • H.P.Gumm, M.Sommer: Einführung in die Informatik, 8. Edition. Oldenbourg, Munich 2009, ISBN 978-3-486-58724-1, (Regarding MikroSim especially chapter 5.6, Pages 470-485)
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK