Was ist eine virtuelle Maschine?
- Eine virtuelle Maschine (VM) ist ein Programm, das wie ein Computer funktioniert. Sie simuliert eine CPU und einige Hardware-Komponenten, um arithmetische Operationen auszuführen, in den Speicher zu lesen und zu schreiben sowie mit I/O-Geräten zu interagieren.
- VMs werden erstellt, um das Verhalten eines bestimmten Computers nachzubilden oder die Softwareentwicklung zu erleichtern.
- Die Java Virtual Machine (JVM) ist ein erfolgreiches Beispiel und ermöglicht die Ausführung von Java-, Kotlin- und Clojure-Programmen auf verschiedenen Geräten.
LC-3-Architektur
- LC-3 ist eine Computerarchitektur für Lehrzwecke, die die wichtigsten Konzepte moderner CPUs zeigt.
- LC-3 verfügt über 65.536 Speicherstellen, von denen jede einen 16-Bit-Wert speichert.
- Es gibt 10 Register: 8 davon sind Allzweckregister, 1 ist der Program Counter (PC) und 1 das Bedingungsflag-Register (COND).
Befehlssatz
- Ein Befehl ist eine Anweisung, die der CPU eine grundlegende Aufgabe vorgibt.
- LC-3 hat 16 Opcodes, und jeder Befehl ist 16 Bit lang.
- Ein Befehl besteht aus dem Opcode und den für die Operation benötigten Parametern.
Bedingungsflags
- Das Register
R_COND speichert Bedingungsflags, die das Vorzeichen der letzten Berechnung angeben.
- LC-3 verwendet 3 Bedingungsflags, um das Vorzeichen des Berechnungsergebnisses darzustellen.
Programmausführung
- Ein Programm lädt Befehle aus dem Speicher, erhöht das PC-Register, prüft den Opcode und führt den Befehl aus.
- Befehle können den PC verändern, um den Ausführungsfluss zu steuern.
Implementierung von Befehlen
- Der Befehl
ADD addiert zwei Zahlen und speichert das Ergebnis in einem Register.
- Der Befehl
LDI lädt einen Wert aus dem Speicher und speichert ihn in einem Register.
- Jeder Befehl wird gemäß der Spezifikation implementiert und muss die Flags aktualisieren.
Trap-Routinen
- LC-3 stellt Trap-Routinen bereit, um allgemeine Aufgaben wie Tastatureingabe oder die Ausgabe von Zeichenketten auszuführen.
- Jede Trap-Routine wird durch einen Trap-Code identifiziert und mit dem Befehl
TRAP ausgeführt.
- Die Trap-Routinen sind in C geschrieben und verbessern die Performance der VM, indem sie die I/O-Routinen des Betriebssystems nutzen.
1 Kommentare
Hacker-News-Kommentare
Ein Nutzer berichtete, dass er in einem Einführungskurs in Informatik am Community College einen einfachen CPU-Befehlssatz entworfen, eine VM und einen Assembler geschrieben und damit Assemblerprogramme ausgeführt habe. Dieser Prozess habe ihm geholfen, vieles über Computer zu verstehen.
Nach dem Ansehen von Ben Eaters Breadboard-CPU-Serie äußerte jemand den Wunsch, eine eigene CPU zu entwerfen und zu emulieren.
Liste empfohlener Bücher:
Es wurde die Meinung geäußert, dass die Lehrarchitekturen Brookshear Machine und Little Computer nicht der Realität entsprechen und Studierenden ein verzerrtes Verständnis vermitteln könnten.
Es wurde angemerkt, dass der Begriff "Virtual Machine" heute üblicherweise eine Umgebung bezeichnet, die Hardware-Virtualisierungsfunktionen nutzt.