Mikroarchitektur Flashcards
Mikroarchitektur
Liste die Level 0 bis 5 auf
- Level 0: Digital logic level
- Level 1: Microarchitecture level
- Level 2: Instruction set architecture level
- Level 3: Operating System machine level
- Level 4: Assembly Language level
- Level 5: Problem-oriented Language level
Speicherverwaltung
Zu der Speicherverwaltung gehört der Programmtext: Java Byte Code und statische Daten wie Strings Tabellen. Zudem gehören auch dynamische Daten (Heap) dazu. Wie werden Objekte auf dem Heap erzeugt?
Zum Beispiel der Befehl “new MyObject” erzeugt ein Objekt auf dem Heap
Speicherverwaltung
Was enthält der Stack?
Er enthält die lokalen Parameter einer Funktion
Beispiel zu Level 3
Der Assembler erzeugt Byte Code (Level 3).
Sei ILOAD -> 0x15 0x02 das Beispiel.
Was ist der Opcode, der ILOAD als Befehl angibt und was gibt an wo auf dem Stack sich die Variable j befindet?
0x15 ist der Opcode, der ILOAD als Befehl angibt und 0x02 gibt an wo auf dem Stack sich die Variable j befindet
Der Assembler erzeugt Byte Code (Level 3).
Sei ILOAD -> 0x15 0x02 das Beispiel.
0x15 ist der Opcode, der ILOAD als Befehl angibt und 0x02 gibt an wo auf dem Stack sich die Variable j befindet.
Was bedeutet jetzt IADD -> 0x60?
0x60 ist der Opcode und es werden die obersten zwei Worte auf dem Stack addiert
Word-Alignment bei Speicheradressen
Was kann der PC im Speicher adressieren?
Er kann beliebige Bytes adressieren
Word-Alignment bei Speicheradressen
Das MAR gibt nur Vielfache von 4 Byte an und kann nur Wortgrenzen lesen. Was resultiert daraus?
Es werden immer 4 Byte auf einmal gelesen, also Bytes 0-3, 4-7, 8-11, 12-15
N-Bit und Z-Bit
Wofür steht N = Negative?
Es gibt an ob das letzte Ergebnis der ALU negativ war, d.h. MSB war 1
N-Bit und Z-Bit
Wofür steht Z = Zero?
Es gibt an ob das letzte der Ergebnis der ALU 0 war, d.h. alle Bits waren null
N-Bit und Z-Bit
Z-Bit und Subtraktion ergibt einen Vergleich. Rechne a-b wenn Z-Bit 1 und wenn Z-Bit 0.
- Wenn Z-Bit 1 -> a = b
- Wenn Z-Bit 0 -> a! = b
N-Bit und Z-Bit
N-Bit und Subtraktion ergibt einen Vergleich. Rechne a-b wenn N-Bit 1 und wenn N-Bit 0.
- N-Bit 1 -> a < b
- N-Bit 0 -> a >= b
N-Bit und Z-Bit
N-Bit und Z-Bit und Subtraktion ergibt einen Vergleich. Rechne a - b wenn N-Bit 1 oder Z-Bit 1.
N-Bit 1 oder Z-Bit 1 -> a <= b
Shifter
Was passiert bei einem Logical (Left or Right) Shift?
Die Bits werden verschoben
Shifter
Was passiert mit den freigewordenen Bits?
Freigewordene Bits werden mit 0 gefüllt
Shifter
Was für Multiplikationen kann der Logical Shift rechnen?
Er kann extrem schnelle Multiplikationen mit 2er-Potenzen rechnen
Shifter
Was passiert mit dem Vorzeichenbit beim Arithmetic Right Shift?
Das Vorzeichenbit wird an die freigewordene Stelle kopiert
Shifter
Kann der Arithmetic Right Shift Multiplikationen mit 2er Potenzen rechnen?
Ja, wenn die Zahl ein Vorzeichen hat
Shifter
Wie funktioniert der Arithmetic Left Shift?
Er funktioniert wie der Logical Left Shift
Sprünge mit Microcode-Befehlen
Die MIC-1 spring nach jedem Microcode Befehl. Option 1 springt an die angegebene Adresse. Option 2 springt in Abhängigkeit des N-Bit. Wann ist Option 2 nützlich?
Es ist nützlich nach einem Vergleich wie < oder >=
Sprünge mit Microcode-Befehlen
Die MIC-1 spring nach jedem Microcode Befehl. Option 1 springt an die angegebene Adresse. Option 3 springt in Abhängigkeit des Z-Bit. Wann ist Option 3 nützlich?
Nach einem Vergleich = oder !=
Sprünge mit Microcode-Befehlen
Die MIC-1 spring nach jedem Microcode Befehl. Option 1 springt an die angegebene Adresse. Option 4 springt in Abhängigkeit von beiden Bits. Wann setzt Option 4 ein?
Wenn N-Bit oder Z-Bit gesetzt ist
Sprünge mit Microcode-Befehlen
Die MIC-1 spring nach jedem Microcode Befehl. Option 1 springt an die angegebene Adresse. Was macht Option 5?
Springt an die angegebene Adresse + MBR
Sprünge mit Microcode-Befehlen
Bedingte Sprünge sind limitiert und man kann nicht überall hinspringen. Was passiert wenn die Bedingung nicht erfüllt ist?
Man springt an die angegebene Adresse und hat eine freie Wahl unter den ersten 256 Adressen
Sprünge mit Microcode-Befehlen
Bedingte Sprünge sind limitiert und man kann nicht überall hinspringen. Was passiert wenn die Bedingung erfüllt ist?
Man springt an die angegebene Adresse + 256
Sprünge mit Microcode-Befehlen
Was ist der Vorteil des Micro-Codes?
Der Vorteil des Micro-Codes liegt in seiner Kompaktheit
Sprünge mit Microcode-Befehlen
Was ist der Nachteil des Micro-Codes?
Micro-Codes Schreiben ist nicht einfach