Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Prüfungen im Bachelor-Studium (1. - 5. Semester) » gra » Aufgabe 1: Allgemein
Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Aufgabe 1: Allgemein
1. Speicher
wahr | falsch (nicht alle) | wahr | falsch (nicht bit sondern Byte)
2. Assemblerprogrammierung
wahr | flasch(Flag register bedingt) | wahr | wahr | falsch(.date auch möglich) | falsch
3. Speicherschutz
falsch(mischform möglich) | wahr | wahr | falsch (mmu nur paging) | falsch | falsch (gilt nur für phy.A.) | wahr | falsch
Aufgabe 2: Mikroprogrammierung
1)
Pseudocode:
if(eingabe < 0) goto SPEICHER ZEROCHECK: if(eingabe-1 < 0) goto ENDE SPEICHER: speicher = eingabe
MicroCode:
START: eingabe -> D D-> B | D -> E B->C if(C>=0) goto ZEROCHECK SPEICHER: E-> Speicher goto START ZEROCHECK: B-1 -> C if(C>=0) goto SPEICHER ENDE:
2)
Bei der Festverdrahteten sind die Befehle alle gleich Gross und können daher in einem Takt Decodiert werden. Bei der Microprogrammierung dauert das länger und es muss auch erst das Microprogramm geladen werden.
3)
Da Macro auf Micro abgebildet wird. Bei Macro gibt es ja die Sprünge.
Aufgabe 3: Speicherverwaltung
1)
Page tabels Malen
2)
Page fault. da das pressend bit nicht gesetzt ist
3)
Valid | Virtuelle Adresse | Physikalische Adresse | Write enable | Cache disable
4)
Bei Segmentierung denn da wird die adresse berrechnet ( Segments anfangs adresse + Offset)
wobei
bei paging nur zusammengesetzt wird aus Basis & offset.
5)
2^N * 1 Byte
6)
Aufgabe 4: Cache
1)
hort ist schneller weil dadurch die vertikal liegenden Blocke die im Cache stehen besser genutzt werden können bevor ein Cache Miss eintritt
2)
Da Befehle und Daten sich nicht gegenseitig verdrängen
Befehle und Daten werden bei Räumlicher und Zeitlicher Lokalität anderes gemappt
3)
Dann müsste man 2 Speicherblöcke auslesen um 1 Datum zu erhalten was zeit kostet
4)
#blocke = s / b #menge = (#blocke / n) f(addr_i) = (addr_i / b) % #menge
5)
Voll assoziatic denn es gibt für jeden cache eintrag ein vergleicher
und
es gibt kein index
Aufgabe 5: Umformung
1)
Code umformen auf ALU operation achten
int test (int x , int n){ int akku = 0; int ret = 0; int i = 0; akku = i; goto LCOND LOOP: int diff2 = 0; akku = wert[i]; akku = akku - x; akku = akku * akku; diff2 = akku; if(akku > 100){ ret = 1; goto END } akku = i; akku = akku + 1; i = akku; LCOND: if(akku < n) goto LOOP END:
Aufgabe 6: Assembler
1)
* Sprungmarken(Labels)
Sprungadresse
* Funktionsaufrufe mit Parametern
call
* Globale Variablen
Liegen im .daten segment
* Lokale Variablen (auf dem Stack)
Stack reservierung Push Pop
* Kommentare
Keine
2)
ebp: er zeigt auf denn den befehl nach dem call befehl und weis damit auf den Letzten Stack Frame wo das Programm wieder zurück springt
3)
Memory Mapped IO: Damit kann mann ganz normal auf die IO Geräte mit z.b. Mov zugreifen
Isolatet IO: Mann kann nur mit Speziellen Load befehlen auf die IO zugreifen
4)
Bei RISC ist die Code Dichte geringer da Festverdrahtet
Bei CISC ist sie höher wegen der Microprogrammierung
5)
Bei Rekursion: da es dort sehr viele Rücksprung adressen gibt
Aufgabe 7: Prozessorarchitekturen
1)
Speedup = T1/ Tk = (n*s*t) / (s+(n-1))*t = n*s / s+(n-1) = lim n→inf n*s/s+(n-1) = s
Speedup = s
2)
VLIW muss die Hardware für den Compiler bekannt sein und damit die anzahl der ALUS damit die programme laufen können Superskalar wird komplet vom Prozessor gehändelt und die programme müssen nicht speziel für geschrieben werden(compiler).
3)
Zeitscheiben MT: Jeder Prozess hat immer genau gleich viel zeit zu arbeiten keiner verhungert
Erreignis gesteuerte MT: Wenn der prozessor auf etwas warten muss bis etwas fertig ist dann kann er so lange einen anderen Prozess abarbeiten.
Simultanes MT: es werden Prozesse ausgewahlt die gerade ausgeführt werden (was abgearbeitet werden kann wird abgearbeitet)
4)
Er muss Threads Erstellen
5)
index | BHBD | OH | AS | RS |
---|---|---|---|---|
0 | movl(1) | - | - | - |
1 | movl(2) | movl(1) | - | - |
2 | movl(3) | movl(2) | mov(1) | - |
3 | addl(4) | movl(3) | movl(2) | movl(1) |
4 | addl(4) | - | movl(3) | movl(2) |
5 | addl(4) | - | - | movl(3) |
6 | addl(5) | add(4) | - | |
7 | addl(5) | - | add(4) | - |
8 | addl(5) | - | - | add(4) |
9 | - | add(5) | - | - |
10 | - | - | add(5) | - |
11 | - | - | - | add(5) |
12 | - | - | - | - |
Speed up daher
4(Stufen) * 5(befehle) / 12 (ausführungschritte)
6)
da das programm auf abhängigkeiten warten muss
FORUM
Falls ihr fehler findet oder fragen zu habt hier ist der thread im forum dazu zum Forum