MikroSim

MikroSim

Das Programm MikroSim ist eine Lernsoftware für das Betriebssystem Microsoft Windows zur hardware-unspezifischen Erläuterung der allgemeinen Funktionsweise und Steuerabläufe einer virtuellen Rechenmaschine. Es lassen sich in allgemein verständlicher Weise miniaturisierte Rechenwerke didaktisch auf Registertransferebene erläutern, die in Mikrocontrollern, Prozessoren, und Computern ablaufen.

Inhaltsverzeichnis

Allgemeines

Anfänglich wurde MikroSim als Prozessor-Simulationssoftware konzipiert. Da MikroSim allerdings die Programmierbarkeit (Mikroprogrammierung) eines Mikroprogrammsteuerwerks mittels Mikrobefehlen in den Vordergrund stellt, betont die Anwendung als Mikrocodesimulator den Aspekt der Mikrocodesimulation. In der gegenwärtigen Entwicklung erlangt der Simulator den Status einer virtuellen Applikation. Dabei werden allgemeine Prinzipien der System- und Rechnerarchitektur aufgegriffen, die sich mit dem Beginn des Informationszeitalters etabliert haben und noch heute bestand haben, ohne sich auf spezielle Hardwareaspekte zu beschränken. Auf diese Weise erlangt das Simulationswerkzeug einen zeitlosen, freien didaktischen Nutzen, ohne sich auf spezielle vergangene und zukünftige Entwicklungen festzulegen. Die detaillierte Dokumentation und die zweisprachige Benutzerführung der E-Learning-Anwendung in Deutsch und Englisch, sowie die Auslegung der Software für die weithin verbreiteten Windows-Betriebssysteme, ist der Grund für den nachhaltigen Bestand der Software im Lehrbetrieb auf dem Gebiet der technischen Informatik in Ausbildung und Lehre seit 1992.

Entwicklungsgeschichte

Die Software basiert auf einer freien, unter Turbo-Pascal für das Betriebssystem MS-DOS geschriebenen Programmversion, die bis 1992 an der Philipps-Universität Marburg in der Vorlesung zur technischen Informatik für die Erläuterung von Mikrocodesteuerprozessen herangezogen wurde. Das bis dahin etablierte didaktische Vorlesungskonzept wurde im Sommer 1992 von Martin Perner während seines Physik-Diplomstudiums (1990–1995) aufgegriffen und in freier Arbeit auf das Betriebssystem Windows 3.1 unter Visual Basic 1.0 portiert. Dabei entstand der Simulator in einer für damalige Verhältnisse völlig neuartigen Konzeption mit weitreichender Funktionalitätsverbesserung. Die Weiterentwicklung der Lehrsoftware unter Windows wurde bis 1995 von dem Fachbereich Mathematik/Informatik der Universität Marburg durch Heinz-Peter Gumm gefördert. Der Simulator wurde im November 1994 mit dem Europäischen Hochschul-Software-Preis 1994 in der Kategorie Informatik in Heidelberg ausgezeichnet und im März 1995 auf der Computermesse CeBit in Hannover am Stand der hessischen Hochschulen der Öffentlichkeit vorgestellt.

Im Zeitraum Ende 1995 bis Anfang 2000 wurde der Simulator mit wenigen Verbesserungen unter der Revision MikroSim 1.2 veröffentlicht. In diesem Zeitraum wurde MikroSim im Rahmen des Europäischen Jahres des lebensbegleitenden Lernens 1996 mit 1000 ECU prämiert, sowie beim Wettbewerb Multimedia Transfer'97 im Rahmen der Messe LearnTec’97 vorgestellt.[1] In seiner vorletzten Neuauflage wurde der Simulator unter dem Namen „Mikrocodesimulator MikroSim2000“ mittels der Programmiersprache MS-Visual Basic 4.0 für Windows 95 angepasst.

Im Zeitraum Anfang 2008 bis 2009 erfuhr der Simulator weitreichende konzeptionelle Erweiterungen, ohne die Möglichkeiten der Mikrocodesimulation im Kern zu verändern. Dabei wird die Rechenleistung heutiger Windows-Applikationen und der verwendeten Hardware ausgenutzt, um Simulationen bis hin zur virtuellen Applikation zu ermöglichen. Seit Januar 2010 wird der Simulator unter „Mikrocodesimulator MikroSim 2010“ von 0/1-SimWare vertrieben.

Kompatibilität

Die Software ist aus Kompatibilitätsgründen und zum Zweck einer möglichst weiten Verbreitung als 32-Bit-Version kompiliert und für Windows XP optimiert worden. Das Programm kann auf allen 32- und 64-Bit-Betriebssystem der Versionen Windows Vista und Windows 7 ausgeführt werden. Auf spezielle XP-Kompatibilitätsmodi kann hierbei verzichtet werden.

Lizenzierung und Bezug

Die MikroSim kann als frei verteilbare und kostenlose Demoversion mit Einschränkungen in der Funktionalität verwendet werden. Die Software-Limitierungen betreffen den Einsatz im Lehrbetrieb und können für die Dauer von 10 Tagen zu Testzwecke anonym freigeschaltet werden. 0/1-SimWare bietet zahlreiche Lizenzierungsmodelle an, um die Software sowohl als rechnergebundene Einzelplatzversion als auch als verteilbare, rechnerungebundene Vollversion einzusetzen. Die kostenpflichtige Vollversion richtet sich an Privat- und Einzelanwender, Gymnasien, Berufsschulen, Fachhochschulen und Universitäten für den Einsatz in Ausbildung und Lehre, die bereits von einigen deutschen Bildungsinstituten für den Einsatz in der Lehre lizenziert wurde. Die Lehrsoftware liegt unter www.mikrocodesimulator.de zum Download bereit.

Funktionsweise und -umfang

Das Programm ermöglicht den schrittweisen Aufbau einer virtuellen Applikation, die in ihrer Funktionalität unveränderbar vorgegeben ist. Im Erkundungsmodus kann die Funktionsweise und Steuerungsmöglichkeit neu hinzugefügter Komponenten innerhalb eines Mikrocode-Befehlszyklus in Erfahrung gebracht werden. Die Breite der von MikroSim unterstützten Mikrobefehle umfasst 49 Bit. Ein Mikrobefehl wird in drei Teilphasen eines 3-Phasentakts abgearbeitet. Die Teilphasen werden als Hol-, Rechen- und Bringphase bezeichnet und bewirken das Holen eines 32 Bit breiten Registerwerts, das Ausführen einer 32-Bit-Berechnung, und das abschließende Speichern des Rechenergebnisses in einem CPU-internen Register.

Im Simulationsmodus können hintereinander ausgeführte Mikrobefehle die zentrale Recheneinheit des Simulators steuern, wobei jeder Mikrobefehl auf die Adresse des nächsten Mikrobefehls verweist. Der Mikrobefehlssatz, gemeinhin als „Mikrocode“ der Recheneinheit bezeichnet, umfasst in der gegenwärtigen Implementierung von MikroSim 1024 49-Bit-lange Mikrobefehle. Strukturierungsmöglichkeiten im adressierbaren Ablaufplan im Mikrocode und die Entwicklung eines zyklisch arbeitenden, mikrocodeprogrammierten Interpreters für Operationscodes (kurz Opcodes) ermöglichen die Implementierung von einzelnen mikrocodeprogrammierten Mikrobefehlssequenzen. Diese können als mikroprogrammierte Maschinenbefehle aufgefasst werden. Der Mikrocode kann als Firmware für MikroSim als Mikrocode-ROM-Datei (ROM, engl. Read-Only Memory) abgelegt, modifiziert und erneut geladen werden.

Innerhalb eines Mikrobefehlzyklus kann sowohl die CPU als auch ein Ein-Ausgabe-Kontroller auf einen externen 16 kB umfassenden RAM-Datenspeicher (RAM, engl. Random-Access Memory) zurückgreifen. Über den Ein-Ausgabe-Kontroller erfolgt die Kommunikation mit angeschlossenen Ein- und Ausgabekomponenten mit DMA-, I2C- und IRQ-Funktionalität. Unterstützt werden ein Ausgabe-Port, eine Anzeige, ein Zeitgeber, ein Ereignis-Trigger, ein Digital-Analog-Wandler, eine Tastatur und Daten-Ein-Ausgabe-Kanäle.

Der Mikrocodesimulator verwendet acht frei verwendbare 32-Bit-Register, deren Inhalt für vorzeichenbehaftete und vorzeichenlose Ganzzahlberechnungen, sowie für 32-Bit-Gleitkommaarithmetik eingesetzt werden. Mit einem übersichtlichen Systemzahleditor können die Registerinhalte betrachtet und modifiziert werden.

Die zentrale Recheneinheit des Simulators, die 32-Bit-ALU, unterstützt 128 verschiedene, grundlegende Rechenoperationen für Ganzzahlen und Interrupt-Steuerung bis hin zur Gleitkommaarithmetik, die als erstes in vergleichbarer Weise bereits von Konrad Zuse eingeführt wurde. Zur Verdeutlichung dieser Arithmetik stehen elementare Rechenoperationen für die schrittweise auflösbare Gleitkomma-Registeroperationen in Mantisse und Exponent von den Grundberechnungen Addition/Subtraktion und Multiplikation/Division zur Verfügung. Weiterführend werden darauf aufbauend mächtigere 32-Bit-Rechenbefehle der Gleitkommaarithmetik in Mantisse und Exponent für die Grundrechenarten und elementarer analytischer Funktionen bereitgestellt, wie sie in mathematischen Coprozessoren realisiert sind. Dabei wird idealisiert angenommen, dass jede der 128 unterstützten ALU-Rechenoperationen für die Ausführung nur einen virtuellen Rechentakt benötigt.

Die Mikrobefehle können auf verschiedenen Simulationsniveaus ausgeführt werden:

  • In dem niedrigsten Simulationsniveau unterstützt der Simulator die phasenweise Abarbeitung eines Mikrobefehls, der in eine sogenannte Hol-, Rechen- und Bring-Phase unterteilt ist. Die Abarbeitung der Teilphasen ist mit einer einstellbaren Verzögerung zur besseren Nachverfolgung möglich.
  • Darauf aufbauend ist die komplette Abarbeitung eines Mikrobefehls in einem Dreiphasen-Takt ohne Verzögerung möglich. Ebenso die Abarbeitung mehrerer zu einem Maschinenbefehl zusammenfassbarer Mikrobefehle mittels eines in Mikrocode programmierten Maschinencodeinterpreters. Der Interpreter hat die Aufgabe, Maschinensprachebefehle, als Operationscodes in einem Byte-Wert codiert, aus dem RAM zu holen und an die entsprechende Mikrocodeunterprogrammadresse zur mikroprogrammierten Ausführung zu verzweigen.
  • Darüber hinaus ist die Abarbeitung mehrerer Maschinenbefehle bis zu einem frei definierbaren Haltepunkt möglich. Dabei kann die Zeit bis zum Erreichen des Halte-Punkts für Simulationsoptimierungen gestoppt werden.
  • Im höchsten Simulationsniveau kann der Mikrocodesimulator im Freilauf-Modus ohne jegliche Unterbrechung Maschinensprachesequenzen abarbeiten und somit die Interaktion der Applikation mit Ein- und Ausgabeschnittstellen in den Vordergrund rücken.

Mit verschiedenen Zusatzoptionen können visuelle CPU-Aktivitäten zu Gunsten der Steigerung der Abarbeitungsgeschwindigkeit unterdrückt werden, so dass die Maschinenprogrammierung der virtuellen Applikation in den Vordergrund tritt. Mit dem Performance-Index-Monitor bietet der Simulator die Möglichkeit, die Abarbeitungsgeschwindigkeit und Ausführungsdauer entworfener Mikrobefehl-Sequenzen zu bestimmen und diese in Bezug zur Rechenleistung, gemessen in Gleitkommaoperationen pro Sekunde (FLOPS, engl. Floating Point Operations Per Second) und Maschinen-/Mikrobefehle pro Sekunde (MIPs, engl. Million Instructions per Second), der verwendeten Simulationshardware zu setzen.

Mit dem Zusatzprogramm MikroBAT, dem sogenannten „Basic Assembler Tool“ für MikroSim, können einfache Programme in Assembler erstellt werden. Dabei wird der Befehlsumfang unterstützter Mnemonics durch den Satz eigener mikrocodeprogrammierter Maschinenbefehle (Opcode) bestimmt. Das Zusatzprogramm ist in der Lage, das Assembler-Programm in Maschinencodes zu übersetzen und in den externen Datenspeicher für anschließende Simulationen zu übertragen. Zusammen mit MikroBAT behandelt der Mikrocodesimulator in didaktisch aufbauender Weise Lehraspekte der technischen Informatik vom schaltergesteuerten Rechenautomaten bis zur Assembler programmierbaren Applikation.

Literatur

  • H.P.Gumm, M.Sommer: Einführung in die Informatik, 8. Auflage. Oldenbourg, München 2009, ISBN 978-3-486-58724-1, (Zu MikroSim insbesondere Kap. 5.6, S.470-485.)

Weblinks

Einzelnachweise

  1. Preise und Auszeichnungen auf der MikroSim-Website (Abgerufen am 5. November 2010.)

Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • MikroSim — The program MikroSim is an educational software for hardware non specific explanation of the general functioning and behaviour of a virtual processor, running on the operating system Microsoft Windows. With this e learning tool, devices like… …   Wikipedia

  • Microassembler — A microassembler (sometimes called a meta assembler) is a computer program that helps prepare a microprogram to control the low level operation of a computer in much the same way an assembler helps prepare higher level code for a processor. The… …   Wikipedia

  • Computer architecture simulator — In computer science, a computer architecture simulator, or an architectural simulator, is a piece of software to model computer devices (or components) to predict outputs and performance metrics on a given input. An architectural simulator can… …   Wikipedia

  • Mikrocode — Der Mikrocode ist der Binärcode eines Mikrobefehls oder einer Mikrobefehlssequenz eines Mikroprogramms. Der Mikrocode kann als „Maschinensprache“ des Mikroprogrammsteuerwerks zum Steuern des Rechenwerks in einem Prozessor angesehen werden. Die… …   Deutsch Wikipedia

  • Mikroprogramm — Das Mikroprogramm ist der Algorithmus eines Mikroprogrammsteuerwerks in einem Prozessor zum Steuern seines Rechenwerks. Mikroprogramme werden mittels Mikroprogrammierung erstellt. Dazu werden Mikrobefehle eines Mikroprogramms in einer… …   Deutsch Wikipedia

  • Mikroprogrammierung — Als Mikroprogrammierung wird die Methode und das Vorgehen verstanden Schalt , Rechen und Steuerabläufe in einem Rechenwerk, insbesondere einem integrierten Rechenwerk (Mikrocontroller, Mikroprozessor) unterhalb der Ausführungsebene von… …   Deutsch Wikipedia

  • Mikroprogrammsteuerwerk — Ein Mikroprogrammsteuerwerk ist der Teil mikroprogrammierter Prozessoren, der die Ausführung eines Befehls im Prozessor steuert. Das Steuerwerk hat Zugriff auf Mikroprogramme, die in einem Speicher abgelegt sind. Die Mikroprogramme steuern das… …   Deutsch Wikipedia

  • Mikroassembler — Als Mikroassembler wird ein Hilfsmittel bezeichnet, welches in der Lage ist, aus lesbaren symbolhaften Schaltanweisungen eines Mikroprogramms binären Mikrocode zu generieren. Die Vorgehensweise ist ähnlich einem Assembler für… …   Deutsch Wikipedia

  • Mikrobefehl — Der Mikrobefehl ist eine elementare Anweisung zur Steuerung eines Mikroprogrammsteuerwerks, welches zur Steuerung eines Rechenwerks in Mikroprozessoren und Mikrocontrollern integriert ist. Mehrere Mikrobefehle werden zu einem Mikrocodebefehlssatz …   Deutsch Wikipedia

  • Mikrocodesimulator — Ein Mikrocodesimulator ist ein Hilfsmittel zur Simulation mikrocodeprogrammierter Steuerabläufe eines Mikroprogrammsteuerwerks. Mittels der Mikrocodesimulation können mikrocodeprogrammierte Schaltabläufe schrittweise nachvollzogen werden, bevor… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”