Pflichtenheft

Mikroprogrammierung-Projekt 2.20 - Gruppe 4
Aufgabenstellung
IST-Analyse
     Aufbau des mikroprammierbaren TGI-Rechners
     Maschinenregister
     Befehlsformat
     Adressierungsarten
     Simulator der mikroprogrammierten Maschine
SOLL-Analyse
     move imm,RB
     add RA,RB
     cmp RA,RB
     jmpc RA
     bmove RB
     Test
Arbeits- und Zeitplan
 
Navigation: Projekthauptseite

Aufgabenstellung

Blocktransport-Befehl

Zu realisieren sind folgende Maschinenbefehle mit den angegebene Adressierungsarten:

Befehl: move add cmp bmove jmpc
Adr.art: imm,RB RA,RB RA,RB RB RA
Hinweis:
Mit den zusätzlich zu bmove zu realisierenden Befehlen können Sie im Maschinenprogramm abprüfen, ob sich Quell- und Zielbereich unzulässig überlappen.
Anfang

IST-Analyse

Aufbau des mikroprammierbaren TGI-Rechners

Der mikroprogrammierbare TGI-Rechner besteht aus folgenden Komponenten:

Anfang

Maschinenregister

Jedes Mikroprogramm kann einen Maschinenbefehl einer virtuellen Zielmaschine darstellen. Dem Programmierer der Mikrobefehle, sowie dem Benutzer der Maschinenbefehle stehen folgende Maschinenregister zur Verfügung:

Anfang

Befehlsformat

Maschinenbefehle werden über ein Zweiadreß-Befehlsformat aufgerufen.
Einwort-Befehle
  15 8 7 6 4 3 2 0
Opcode 0 RA 0 RB
Zweiwort-Befehle
  15 8 7 6 4 3 2 0   15 0
Opcode 0 RA 0 RB
Konstantenfeld (imm,adr,disp)
Anfang

Adressierungsarten

Folgende Adressierungsarten werden für die Maschinenbefehle benötigt.

  1. Registeradressierung (RA/RB)
  2. Der Operand befindet sich hier in einem der Allzweckregister.
    Die Nummer des Registers ist im Feld RA (Quelloperand) bzw. RB (Zieloperand) enthalten.
  3. Unmittelbare Adressierung (imm)
  4. Der Operand befindet sich im Konstantenfeld
  5. Basisrelative (indizierte) Adressierung (disp[RA]/disp[RB])
  6. Der Operand befindet sich in einem Speicherfeld. Die Adresse wird gebildet mit der Summe aus dem Inhalt des Konstantenfelds und dem Wert des Registers RA bzw. RB.

Hinweis:
RA oder RB bezeichnet ein Register im Rechenwerksbaustein, das mit dem Inhalt des RA-Adreßfeld bzw. RB-Adreßfeld adressiert wird.
Das RA-Adreßfeld wird üblicherweise für den Quelloperanden und das RB-Adreßfeld für den Zieloperanden verwendet.
Anfang

Simulator der mikroprogrammierten Maschine

Auf den Praktikumsrechner oder zum Herunterladen auf der Seite von Roland Wismüller steht der Simulator mic 4.0 zur Verfügung. Er erlaubt die Eingabe von Mikroinstruktionen über ein Dialogfenster, die Anzeige und das Verändern des Hauptspeichers und der ALU-Register, sowie die simulierte Ausführung von Mikroprogrammen. Außerdem kann man Mikroprogramme und Ablaufprotokolle im HTML-Format erstellen lassen.
Anfang

SOLL-Analyse

move imm,RB

Verwendungszweck: Datentransport

src dst Opcode Funktion
imm RB 10 dst=src
Der Befehl move kopiert ein 16-Bit Wort von src nach dst.
In diesem Fall wird eine Konstante (src), in das durch RB adressierte Zielregister (dst) geschrieben.

Hinweis:
Normalerweise wird das Mikroprogramm move imm,RB über den Opcode 00 angesprochen, hier wurde dieser jedoch auf 10 verändert, weil das Mikroprogramm i-fetch den Opcode 00 im Simulator zugewiesen bekommt.
i-fetch ist für das Laden der Mikroprogramme verantwortlich.
Anfang

add RA,RB

Verwendungszweck: Ganzzahlige Addition

src dst Opcode Funktion
RA RB 0C dst=dst+src
Der Befehl add addiert die 16-Bit Zahlen in src und dst und schreibt das Ergebnis nach dst. Die Statusflags im Maschinenstatusregister werden entsprechend dem Ergebnis der Operation gesetzt.
Anfang

cmp RA,RB

Verwendungszweck: Arithmetischer Vergleich

src dst Opcode Funktion
RA RB 34 dst-src
Der Befehl cmp subtrahiert die 16-Bit Zahl in src von dst und setzt die Statusflags im Maschinenstatusregister entsprechend dem Ergebnis der Operation. Das Ergebnis der Opertion wird verworfen, dst also nicht verändert.
Anfang

jmpc RA

Verwendungszweck: Verzweigung wenn Carry gesetzt

src dst Opcode Funktion
RA - 8A if Carry=1 then PC=src
Wenn das Carry-Flag gesetzt ist, wird der Befehlszähler mit src geladen, also die Programmausführung an einer anderen Adresse fortgesetzt, andernfalls wird der auf jmpc folgende Befehl ausgeführt.
Anfang

bmove RB

Verwendungszweck: Blocktransport

src dst Opcode
RB - F1

Funktion:

do
[r1]=[r0]
r0=r0+1
r1=r1+1
dst=dst-1
while (dst!=0)
Der Befehl bmove dient zum Kopieren großer Speicherblöcke. Beim Aufruf muß das r0 Register die Adresse des zu kopierenden Speicherblocks enthalten, Register RB dessen Länge und r1 die Zieladresse.
Anfang

Test

Alle Mikroprogramme werden im Simulator mic 4.0 implementiert.
Um den Blocktransportbefehl bmove schließlich testen zu können, soll ein Maschinenprogramm geschrieben und im Simulator ausgeführt werden. Dieses soll vor dem Ausführen von bmove überprüfen, ob der angegebene Zielbereich im Quellbereich beginnt. Ist dies der Fall wird bmove nicht ausgeführt, andernfalls wird der Speicherblock kopiert. Eine Überprüfung ist deshalb notwendig, damit noch nicht kopierte Daten aus dem Quellbereich nicht überschrieben werden.
Anfang

Arbeits- und Zeitplan

Arbeitspaket Verantwortliche Zeitaufwand
Vorbereitung und Besprechung alle 4 Std.
Pflichtenheft Saca 1 Std.
Spezifikation
move,add Saca 1 Std.
add, cmp Wutzke 1 Std.
cmp,jmpc Layer 1 Std.
bmove alle 1 Std.
Implementierung alle 1 Std.
Test alle 1 Std.
Dokumention Wutzke 9 Std.
Vortrag-Vorbereitung Saca 2 Std.

Anfang
zu den TGI-SeitenZu den TGI-Seiten der TUM

01.07.98