Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Prüfungen im Bachelor-Studium (1. - 5. Semester) » gra » Aufgabe 1: Mikroprogrammierung

Aufgabe 1: Mikroprogrammierung

1)

Sequencing Logic: Ermittelt die nächste Befehlsadresse aus dem Control Memory und schreibt das Ergebnis in das Control Address Register(CAR).

Control Memory: Speicher der nächsten Mikroinstruktion.

Instruction Register: Adresse des Makrobefehls.

2)

Vertikale Mikroprogrammierung; zu erkennen an Decoder 2.

3)

Bedingte und Unbedingte Sprünge (siehe Leitung 16 / 17)

4)

Pseudocode:

	Speicher nach B
	Schleife:
		B-1
		if(B>=0 ){
			A = A<<1
		}else{
			break
		}

Mikroprogrammierung:

	Speicher → D
	D → B
	goto lcon

Schleife:
	C → B
	A<<1 → C
	C → A

lcon:
	B-1 → C
	C>=0 goto schleife
exit:

Aufgabe 2: Assemblerprogrammierung

1)

Register Memory

2)

Register Register: Load, store Befehle (Speicher muss erst in Register geladen werden), Operationen sind nur zwischen Registern möglich.

Akku: Operationen nur zwischen Akku und Register/Speicher möglich

Stack: Rechenoperationen nur zwischen Werten, welche auf dem Stack liegen, möglich. Zu erkennen an den Befehlen push und pop.

3)

for(int i = 0; i< length; i++){
	for(int j = i ; j <lenght; j++){
		swap1 = value[i]
		swap2 = value[j]
		if(swap1 > swap2){
			temp = value[i]
			value[i] = value[j]
			value[j] = temp
		}
	}
}

Aufgabe 3: Paging

1)

sehr große Seiten: Interne Fragmentierung

sehr kleinen Seiten: Externe Fragmentierung

2)

Cache für Pages: Um das Suchen in den Pages zu beschleunigen (enthält die virtuelle und physikalische Adresse + Flags)

3)

Seitengröße: 4 KiB = 2^12 Byte.

Adressbreite: 48 Bit (36 Bit Tag, 12 Bit Offset).

Größe der Einträge: 8 Byte = 2^3 Byte.

  2^12 Byte / 2^3 Byte  = 2^9  --> 9 Bit Tabellen Index.
  [48 Bit - 12 Bit (Offset)] / 9 Bit = 4  --> 4-stufige Tabellenhierarchie

4)

–TODO–

Aufgabe 4: Peripherie

1)

Eine temporäre Unterbrechung des Programms.(externe)

um zeitkritische und meist kurze abschnitte abzuarbeiten.

z.b. IO Geräte auszulesen

2)

Programmed Input/Output: Aktives Warten der CPU auf entsprechende Eingabe.

Vorteil: Sobald IO antwortet werden die Daten gleich bearbeitet

Interrupt-driven Input/Output: CPU Fordert Daten vom I/O Gerät an

Vorteil: CPU Kann solange andere Sachen machen, I/O meldet, sobald Daten da sind.

DMA: Von der CPU angestoßener Datentransfer, DMA macht den Rest.

Vorteil: CPU wird nach dem Anstoßen nicht mehr benötigt, Transfer von Daten erfolgt ohne weitere Prozesse zu beeinflussen.

3)

Speicheradresse wird im Speicher automatisch erhöht Ohne Direkte Anforderung der CPU werden weitere Daten aus dem Speicher gelesen

Aufgabe 5: Speicherverwaltung

1)

Vorteil: Datenwörter liegen ausgerichtet im Speicher und können daher einfacher und schneller ausgelesen werden.

Nachteil: Nicht alle Speicherbereiche werden ausgenutzt, Speicherplatz wird dadurch verschwendet.

2)

name = 15 Byte + 1 Byte Alignment
vorname = 16 Byte
versuch = 2 Byte + 2 Byte Alignment
matnr. = 4 Byte
geschlecht = 1 Byte + 3 Byte Alignment
note = 4 Byte 
==  48 Byte

3)

48 * 8 = 384
(96 * 1024)/384 = 256

4)

Little-Endian: Das niederwertigste Byte steht an erster Stelle.

Big-Endian: Das höherwertigste Byte steht an erster Stelle.

5)

LE: 0x10 32 54 76

BE: 0x76 54 32 10

Aufgabe 6: Parallelverarbeitung

1)

Das Hochsprachprogramm unterscheidet sich nicht dabei

VLIW Parallele Alu Operationen ← Compiler

Superskalar ist es Pipelining ← Prozessor

2)

S = T1/Ts = n*s*t / [s+(n-1)]*t
lim S (n -> unendlich) = s

S: SpeedUp T1: Ausführungszeit ohne Pipeline Ts: Ausführungszeit mit Pipeline n: Anzahl der Instruktionen t(tau): Zykluszeit s: Stufen

3)

1. Datenhazards: Aktueller Befehl benötigt das Ergebnis des vorherigen Befehls, dessen Ergebnis wiederum noch nicht zurückgeschrieben wurde. Die Pipeline muss warten.

2. Controlhazards (Bedingte Sprünge): Der nächste Befehl ist evtl. nicht der richtige, da gesprungen werden kann.

4)

Die Regel von Pollack

Rechenleistungszuwachs ~ sqrt(Anstieg Komplexität) Doppelt so großer Einzelkern-Prozessor gemäß Regel von Pollack → Verdopplung der Logik, d.h. Komplexität, im Prozessor bringt 40 % mehr Leistung

Doppelte Komplexität = 1.4x Leistungszuwachs

Pollacks Regeln rückwärts angewandt:

Statt einen großen Kern zwei kleinere, halb so große Kerne (Rechen-)Leistung nimmt invers quadratisch ab sqrt(1/2) = 70%

Somit mit halber Fläche 70% der Leistung das größeren Systems pro Kern Aber nur noch halber Leistungsverbrauch pro Kern In der Summe mehr (Rechen-)Leistung als vorher

2*70% = 140%

Bei gleichem Leistungsverbrauch für 2 Kerne wie beim großen System Schlussfolgerung: einfacherer, aber dafür immer mehr Kerne

Aufgabe 7: Cache

1)

Räumliche Lokalität: Nach Zugriffe erfolgt in naher Zukunft erneut Zugriff auf benachbarte Adresse.

Zeitliche Lokalität: Nach Zugriffe erfolgt in naher Zukunft erneut Zugriff auf dieselbe Adresse.

2)

2048 Byte / 64 Byte = 32

Frühestens beim 33. Zugriff findet eine Verdrängung statt (Compulsory Miss).

3)

a)

Tag = 2^16

Index = 2^12

ByteAdr. = 2^4

Anzahl der Blöcke = Cachegröße / Blockgröße =  512 KiB / 2^4 (Byteadr.) = 2^19 / 2^4 = 2^15

n = Cachegröße / Menge = 2^15 / 2^12 (Index) = 2^3 -> 8-fach assoziativer Cache

b)

Anzahl der Blöcke: 2^16 Byte / 2^4 = 2^12

2^12 / 2^12 (Index)= 1 -> direktabbildend

Forum

Falls ihr Fehler findet oder Fragen habt, hier ist der Thread im Forum dazu zum Forum