0 Daumen
1,7k Aufrufe

Aufgabe:

A) Gegeben sei folgende Mikroinstruktion in Binärdarstellung:

0010 0001 0000 0011 1100 1000 0001 0100 0111

Geben Sie die Mikroinstruktion in MAL-Notation an. Welche Operation wird jeweils durch das Programm ausgeführt? Geben Sie Ihren Lösungsweg an!

B) Gegeben sei das Mikroprogramm ifeq in MAL-Notation:

if_icmpeq1 MAR = SP = SP -1; rd
  // Lies nächstes oberstes Stapelwort ein
if_icmpeq2 MAR = SP = SP -1
  // Setze MAR für das Einlesen der neuen Stapeloberseite
if_icmpeq3 H = MDR; rd
  // Kopiere zweites Stapelwort in H
if_icmpeq4 OPC = TOS
  // Speichere TOS vorübergehend in OPC
if_icmpeq5 TOS = MDR
  // Lege neue Stapeloberseite in TOS ab
if_icmpeq6 Z = OPC - H; if(Z) goto T; else goto F
  // Falls beide Wörter gleich sind, goto T, sonst goto F

Geben Sie die Binärdarstellung des Mikroprogramms analog zu der von iadd in der Vorlesung an. Gehen Sie davon aus, dass T an der Adresse 0x10A liegt und der ISA Befehl selbst bei 0x9f beginnt.

Avatar von

1 Antwort

0 Daumen

Antwort mit KI erzeugt

A) Umwandlung der Mikroinstruktion in MAL-Notation

Die gegebene Binärdarstellung für die Mikroinstruktion lautet:

\(0010 0001 0000 0011 1100 1000 0001 0100 0111\)

Um diese Mikroinstruktion in MAL-Notation umzuwandeln, müssen wir zunächst verstehen, wie sich die Bits auf die verschiedenen Teile der Mikroinstruktion verteilen. Ich werde die übliche Einteilung für Mikroinstruktionen annehmen, da du keine spezifische Aufteilung vorgegeben hast. Eine typische Einteilung könnte so aussehen:

- Die ersten paar Bits könnten den Opcode darstellen.
- Die nächsten Bits könnten für Adressen oder spezifische Register verwendet werden.
- Weitere Bits könnten für Operationen wie Addition, Subtraktion oder Datenübertragungen stehen.
- Die letzten Bits könnten für Flags, Sprünge oder andere Steuerlogik verwendet werden.

Ohne spezifische Kenntnis der Architektur oder des Mikroinstruktionsformats ist eine genaue Zuordnung zu MAL-Befehlen oder Operationen nicht möglich. Normalerweise würde man in einem Mikroarchitektur-Handbuch nachschlagen, um die genaue Bedeutung dieser Bits zu finden.

Trotz dieser Einschränkungen versuche ich, eine allgemeine Interpretation zu geben:

- Operanden und Zielregister könnten in den mittleren Bits codiert sein, wobei spezifische Register oder Speicheradressen als Quelle und Ziel für Daten genutzt werden.
- Operationen wie Lese- oder Schreibbefehle, arithmetische oder logische Operationen könnten durch bestimmte Bitmuster in dieser Sequenz repräsentiert werden.
- Steuerflags oder Bedingungen für Sprünge könnten in den letzten Bits enthalten sein, um den Fluss des Mikroprogramms zu steuern.

Aufgrund der fehlenden Architekturspezifikation ist eine genauere Dekodierung und Umwandlung in eine spezifische Operation nicht möglich. In der Praxis würde man ein Architekturmanual zu Rate ziehen, um die genaue Funktion jeder Bitgruppe zu bestimmen.

B) Binärdarstellung des Mikroprogramms analog zu 'iadd'

Die Konvertierung der MAL-Notation des ifeq-Mikroprogramms in eine Binärdarstellung erfordert, dass wir die Operationen und Adressen, die in der MAL-Notation angegeben sind, in die entsprechenden Binärcodes umwandeln. Ohne spezifische Kenntnis des Mikroinstruktionsformats und der Op-Codes können wir nur ein generisches Format anbieten.

Im Mikroprogramm ifeq haben wir folgende Befehle:

1. Dekrementieren von SP und Laden von der Adresse auf dem Stack in MAR und das oberste Wort in MDR.
2. Das oberste Wort in H kopieren.
3. TOS in OPC speichern.
4. Neue Stapeloberseite in TOS laden.
5. Vergleich zwischen OPC und H durchführen und bedingt zu T oder F springen.

Um eine Binärdarstellung zu erstellen, müssten wir:

- Opcode für jede Operation (wie rd, -1, Vergleich, Verzweigung) in einem spezifischen Binärformat angeben.
- Adressen und Register in das entsprechende Binärformat umwandeln, das im Mikroprogramm erwähnt wird.

Da die spezifischen Binärcodes für Operationen und Register abhängig von der Mikroarchitektur sind, kann ohne diese Information keine genaue Binärdarstellung erstellt werden. Jedoch würde der Ansatz folgende Schritte umfassen:

1. Ermitteln des Binärcodes für jede Operation und Zuordnung (z.B. rd, -1).
2. Adressumwandlung für spezifische Sprungziele und Register (z.B. T auf 0x10A).
3. Zusammenstellung der Mikroinstruktionen unter Berücksichtigung der spezifischen Bitbreite für Opcodes, Adressen, und so weiter.

Die resultierende Binärdarstellung würde ähnlich wie im gegebenen Beispiel in Sequenzen von 0en und 1en für jede Zeile des Mikroprogramms geordnet.
Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community