Title | FINAL 07 2 Juli Winter 2018/2019, Fragen und Antworten |
---|---|
Course | Rechnerarchitektur |
Institution | Hochschule Darmstadt |
Pages | 15 |
File Size | 1.1 MB |
File Type | |
Total Downloads | 102 |
Total Views | 1,019 |
Warning: TT: undefined function: 32Klausur: Rechnerarchitektur WS 18/19, am 01. 02. 19Prof. A. Müller, Dr. S. BerningerNachname: Vorname: Matr.-Nr.: ___Punkte: (max = 110) Note:Aufgabe 1(7) 2 (16) 3(15) 4(15) 5(20) 6(12) 7(16) 8(9) Summe()PunkteAufgabe 1 (7 Punkte):Grundbegriffe und Verständnisfrage...
Klausur: Rechnerarchitektur WS 18/19, am 01. 02. 19 Prof. A. Müller, Dr. S. Berninger
Nachname:
Vorname:
Punkte: Aufgabe
(max = 110) 1(7)
2 (16)
Matr.-Nr.:
___
Note: 3(15)
4(15)
5(20)
6(12)
7(16)
8(9)
Summe()
Punkte
Aufgabe 1 (7 Punkte): Grundbegriffe und Verständnisfragen zur Rechnerarchitektur Ermitteln Sie die korrekte Antwort (nur eine Antwort pro Frage ist möglich)!
Bsp Beispielaufgabe: 0
Was kennzeichnet ein Register? a) Enthält nur Daten, keine Adressen b) Ermöglicht schnelleren Zugriff als auf Hauptspeicher c) Input und Output werden vom Steuerwerk en- bzw. disabled d) Register sind in einem Prozessor immer in der gleichen Anzahl wie ALUs vorhanden
Antworten: 0.1 alle Antworten sind richtig 0.2 nur a), b) und c) sind richtig 0.3 keine Antwort ist richtig 0.4 nur b) und c) sind richtig 1
Lösung: 0.4
Ordnen Sie die Speicherarten nach ihrer Geschwindigkeit, die schnellste zuerst: a) Hauptspeicher, Level 2 Cache, Level 1 Cache, Register b) Level 2 Cache, Hauptspeicher, Hard disk c) Register, Level 1 Cache, Level 3 Cache, Hauptspeicher Antworten: 1.1 nur b) ist richtig 1.2 nur b) und c) sind richtig 1.3 nur c) ist richtig 1.4 nur a) ist richtig
2
h_da/fbi
Lösung:
Was kennzeichnet die von-Neumann-Architektur?
Klausur_WS18_19_V11_oL
ver: 0.01
1 / 15
Klausur: Rechnerarchitektur am 02.07.18
Nachname:
___
Vorname:
a) Befehle und Daten liegen in einem gemeinsamen Speicher b) Gemeinsamer Daten- und Adressbus c) Während des Befehlsfetch können keine Datenzugriffe im Speicher stattfinden Antworten: 2.1 2.2 2.3 2.4. 3
Lösung:
nur a) und b) sind richtig nur a) ist richtig nur a) und c) sind richtig nur b) und c) sind richtig
Wieviele Takte benötigt die vollständige Abarbeitung von 10 Befehlen bei einer 5-stufigen Pipeline ohne stall? a) 10 b) 14 c) 15 d) 5 Antworten: 3.1 3.2 3.3 3.4
4
Lösung:
nur a) ist richtig nur b) ist richtig nur c) ist richtig nur d) ist richtig
In welcher Reihenfolge entstanden die folgenden Rechner/Prozessoren: Antworten:
Lösung:
4.1 4.2 4.3
Zuse Z3, Babbage engine, Intel 8086, ENIAC, ARM Cortex 53 Babbage engine, Zuse Z3, ENIAC, Intel8086, ARM Cortex 53 Zuse Z3, ENIAC, Intel8086, Babbage engine, ARM Cortex 53
4.4
Babbage engine, Zuse Z3, ENIAC, ARM Cortex 53, Intel8086
h_da/fbi
Klausur_WS18_19_V11_oL
ver: 0.01
2 / 15
Klausur: Rechnerarchitektur am 02.07.18
Nachname:
5
___
Vorname:
Worauf beruhten moderne Prozessoren im Jahr 2018: a) Transistoren b) Elektromechanischen Relais c) Röhren d) Staffelwalzen Antworten:
6
5.1
nur a) und c) sind richtig
5.2 5.3 5.4
nur a) ist richtig nur b) ist richtig nur a) und b) ist richtig
Lösung:
Alle Aktivitäten des Steuerwerks und der CPU folgen einem gemeinsamen __________. Antworten:
7
6.1
Sprungverhalten
6.2
Pipelining
6.3
Takt
6.4
Multithreading
Lösung:
Welche Verdrängungsstrategie(n) verwenden Sie, wenn Sie das Element im Cache ersetzen wollen, das sich bereits am längsten darin befindet? a) Least recently used b) First in first out c) Least frequently used (LFU) d) Random Antworten: 7.1
nur a) und c) sind richtig
7.2 7.3 7.4
nur b) ist richtig alle Antworten sind richtig nur a) ist richtig
h_da/fbi
Lösung:
Klausur_WS18_19_V11_oL
ver: 0.01
3 / 15
Klausur: Rechnerarchitektur am 02.07.18
Nachname:
___
Vorname:
Aufgabe 2 (16 Punkte): ARM Assembler Programmierung Sehen Sie sich die hier angegebene Lösung für die Funktion calc_modulo () für den ARM7 an, und deren Aufruf aus der Testfunktion testfall27_modulo() . int testfall27_modulo () { int test_ok=1; // true int result=0; int a=27; int b=4; result = calc_modulo (a, b); if (3 != result) { test_ok=0; // false } return (test_ok);
calc_modulo: STMDB SP!, {R0-R3, LR} MOV R4, R0 MOV R5, R1 Loop: CMP R4, #0 BGT Dec ADD R4, R4, R5 LDMIA SP!, {R0-R3, LR} Back: BX LR Dec: SUB R4, R4, R5 B Loop
}
a) Welchen (inkorrekten!) Wert hat result in der Funktion testfall27_modulo() nach Rückkehr aus der Funktion calc_modulo()? result = ………….
1 Punkt
Zeigen Sie den Stackinhalt auf unmittelbar vor Verlassen der Funktion calc_modulo() (bei der Marke Back), und zeichnen Sie ein, wohin in diesem Moment der Stackpointer zeigt.. Geben Sie im Stack die Werte und das gespeicherte Register an, nutzen Sie für unbekannte Werte „n.n.“! Stack:
h_da/fbi
6 Punkte
Klausur_WS18_19_V11_oL
ver: 0.01
4 / 15
Klausur: Rechnerarchitektur am 02.07.18
Nachname:
___
Vorname:
b) Benennen Sie die Verstöße gegen die APCS (Procedure Call Standard for ARM Architecture) und geben Sie jeweils einen Korrekturvorschlag an. 4 Punkte
c) Optimieren Sie die gegebene Lösung in Hinsicht Codegröße und Laufzeit. Die Vorgaben der APCS sind auch dabei zu befolgen.
h_da/fbi
Klausur_WS18_19_V11_oL
ver: 0.01
5 / 15
Klausur: Rechnerarchitektur am 02.07.18
Nachname:
___
Vorname:
Aufgabe 3 (15 Punkte): Pipeline, Hazards Betrachten Sie einen Prozessor mit einer fünfstufigen Pipeline (Befehl holen, Befehl dekodieren, ALU, Speicherzugriff, Register schreiben), der Forwarding (Bypassing) unterstützt. Skizzieren Sie für Teilaufgabe a) den Pipelinedurchlauf der jeweiligen Folgebefehle in das Taktraster. Prüfen Sie, ob Forwarding zur Konfliktvermeidung sinnvoll ist, und tragen Sie ggf. das Forwarding-Register an den/die Folgebefehl(e) durch einen Pfeil ein. Sofern die Pipeline angehalten werden muss (stall), skizzieren Sie dies mit einem Kreis. Sie können die Pipeline vereinfacht zeichnen. a)
8 Punkte
SUB R2, R2, R0
ADDS R0, R2, #-4
LDR R2, [R0, #4] !
STR R2, [R0, #4]
b) Nach welchen Pipelinestufen ist bei einer fünfstufigen Pipeline ein Forwarding überhaupt sinnvoll? 2 Punkte
c) Wieviel Bit benötigen Sie für eine Branch History Table, die 100 Programm-Befehle abdeckt? 1 Punkt
d) Welche Informationen enthält ein Branch Target Buffer? 1 Punkt
h_da/fbi
Klausur_WS18_19_V11_oL
ver: 0.01
6 / 15
Klausur: Rechnerarchitektur am 02.07.18
Nachname:
___
Vorname:
e) Womit wird ein Branch Target Buffer adressiert?
f)
1 Punkt
Welche Möglichkeiten haben Sie, die Wahrscheinlichkeit auftretender Steuerungskonflikte zu reduzieren? 2 Punkte
h_da/fbi
Klausur_WS18_19_V11_oL
ver: 0.01
7 / 15
Klausur: Rechnerarchitektur am 02.07.18
Nachname:
___
Vorname:
Aufgabe 4 (15 Punkte): ARM: Condition Code Bits im Statusregister Die Vorbelegung folgender Register ist gegeben: R0 = 79 10 *2 24, R1 = 116 , R2=231, R3 = 232 -1, R4= -110 , NZCV = 0000 Notieren Sie die Condition Code Bits nach Ausführung des jeweiligen Befehls. Vor jedem Befehl gilt die Registerbelegung aus der Angabe, inkl. NZCV.
Befehl
Hexwert des Registers Hex-Wert R5
ADDS R5, R0, R0
R0=
SUB R5, R1, R0
R1=
EORS R5, R2, R2
R2=
TST R3, R3, LSL #1
R3=
CMN R2, R4
R4=
h_da/fbi
Klausur_WS18_19_V11_oL
15 Punkte
NZCV
ver: 0.01
8 / 15
Klausur: Rechnerarchitektur am 02.07.18
Nachname:
___
Vorname:
Aufgabe 5 (20 Punkte): MU1 Mit der MU1 soll eine Stackmachine realisiert werden, vergleichbar dem hp-Taschenrechner mit umgekehrt polnischer Notation (Praktikum 1). Realisieren Sie den Befehl Duplicate (DUP) für den Befehlssatz des MU1-Prozessors. DUP nimmt den obersten Wert des Stacks und schreibt ihn als Top of Stack erneut auf den Stack. höhere Adressen
niedere Adr.
a) Skizzieren Sie den Informationsfluss im Datenpfadmodell für die Ausführung des DUP Befehls einschließlich des Fetch Zyklus. (5 Punkte) b) Geben Sie die Steuerinformationen für die Register sowie Multiplexer, Speicher, Alu etc. sowie den Mikrocode für den Befehl DUP in der nachfolgenden Tabelle an. [Beispiel: Mikrocode für einen Register-Transfer: A = DIN] (10 Punkte, 5 Bits +5 Mikrocode) c) Können Sie den DUP Befehl auch in einer MU1 mit dem bestehenden Standardbefehlssatz abbilden? Falls ja, welche Befehlssequenz der Standard MU1 entspricht dem DUP? (3 Punkte)
d) Welches Performanz-Verhältnis hat die direkte Realisierung des DUP Befehls im Vergleich zur Standard MU1 Befehlen? Bitte in Taktzyklen angeben. (2 Punkte)
h_da/fbi
Klausur_WS18_19_V11_oL
ver: 0.01
9 / 15
Klausur: Rechnerarchitektur am 02.07.18
Nachname:
___
Vorname:
DUP
h_da/fbi
Klausur_WS18_19_V11_oL
ver: 0.01
10 / 15
Klausur: Rechnerarchitektur am 02.07.18
MEMrq RnW
Beschreibung
Opcode /Reset Step (actual) ACCZ / Zero ACC15 / Negativ Step (next) Adress ACCoe ACCie PCoe PCie IRoe IRie SPoe SPie DINoe DINie DOUToe DOUTie
Outputs
Microcode in mathematischer Schreibweise
1001
Instruction
Inputs
DUP
___
Vorname:
ALU Function
Nachname:
Abkürzung Erklärung
Abkürzung
Erklärung
ACCie
Accumulator input enable
ACCoe
Accumulator output enable
IR
Instruction Register
SP
Stackpointer Register
PC
Program Counter Register
/Reset
Eingang um Prozessor zu reseten
DIN
Data-In Register
Opcode
Befehlskodierung
DOUT
Data-Out Register
ACCZ/Zero
Zero Status des Accumulators
Adress
Einstellung des Adressmultiplexers ACC15/Neg (0, 1)
Negativ Bit des Accumulators
ALU
Funktion der ALU
MEMrq
Zugriff auf Speicher 0=nein, 1= ja
Step (next, actual)
Micro Program Counter, sowohl Eingang als auch Ausgang
RnW
Read / not Write: 1 bei Lesen, 0 bei Schreiben, 1 oder x, wenn nicht gebraucht
h_da/fbi
Klausur_WS18_19_V11_oL
ver: 0.01
11 / 15
Klausur: Rechnerarchitektur am 02.07.18
Nachname:
___
Vorname:
Aufgabe 6 (12 Punkte ): ARM Load/Store und Stack In folgender Tabelle ist ein Speicherauszug dargestellt (Endianness: Little). Welchen Inhalt haben die Register nach Ausführung der jeweiligen Befehle? Vor jedem Befehl ist R13 = 0x8000: Adresse
Inhalt
0x8010
0x4711
0x800c
0x5678
0x8008
0x1234
0x8004
0xFF
0x8000
0xEE
0x7ffc
0xDD
0x7ff8
0xCC
0x7ff4
0xBB
0x7ff0
0xAA
a)
c)
LDMIB R13!, {R3, R4, R7}
b)
LDMDB R13, {R3, R4, R7}
R3
R3
R4
R4
R7
R7
R13
R13
POP {R3, R4, R7}
d)
LDRB R3, [R13,#13]
R3
R3
R4
R13
R7 R13
e)
LDR R3, [R13],#-12 R3 R13
f)
LDRSB R3, [R13, #-12]! R3 R13
h_da/fbi
Klausur_WS18_19_V11_oL
ver: 0.01
12 / 15
Klausur: Rechnerarchitektur am 02.07.18
Nachname:
___
Vorname:
Aufgabe 7 (16 Punkte): Cache Gegeben seien die Lesezugriffe in den 2 folgenden Tabellen verschiedener Cachearten (linke Spalte der Tabelle). Der Cache umfasst insgesamt 4 Datenelemente. Dieser Cache ist entweder direkt abgebildet (a), oder satzassoziativ (b) organisiert. Eine Cachezeile entspricht einem einzigen Datenwort. Tragen sie jeweils in die Tabelle den neuen Tagwert hexadezimal ein. Bei Tabelle b) gilt zusätzlich die Ersetzungsstrategie Least Recently Used (LRU). a) (8 Punkte) (jeweils 1 Punkt pro Zeile) hexadezimaler Inhalt des Tagspeichers nach dem Zugriff
Direkt abgebildeter Cache Adresse des Speichers 0x47
binäre Adresse 0100 0111
Treffer (ja/nein) n
Tag/Index 0
Tag/Index 1
Tag/Index 2
Tag/Index 3 0x11
0x17 0x23 0x17 0x10 0xC 0xD 0x10 0x26 b) (8 Punkte) (jeweils 1 Punkt pro Zeile) Satz-assoziativer Cache Adresse des binäre AdSpeichers resse 0x47
0100 0111
hexadezimaler Inhalt des Tagspeichers nach dem Zugriff Treffer (ja/nein)
Tag/Satz 0
Tag/Satz 0
n
Tag/Satz 1
Tag/Satz 1
0x23
0x17 0x23 0x17 0x10 0xC 0xD 0x10 0x26
h_da/fbi
Klausur_WS18_19_V11_oL
ver: 0.01
13 / 15
Klausur: Rechnerarchitektur am 02.07.18
Nachname:
___
Vorname:
Aufgabe 8 (9 Punkte (je 0,5) ): Lückentext Die Flags des Statusregisters werden nur bei den ______ und ________- Befehlsgruppen automatisch gesetzt. Alle anderen Befehle müssen die Statusbits explizit setzen (bleiben ansonsten weiter erhalten). Dazu ist ein __ an den Befehl anzuhängen. Jeder Befehl kann __ ______ ausgeführt werden. Dazu wird die __________ (vorher gesetzte Werte des Statusregisters) als Ergänzung an den Befehl angehängt. Der ARM-Prozessor unterstützt Befehlstypen zur Datenverarbeitung (z.B. ______________, ______________), Ablaufsteuerung (z.B. ___________) und zur Speicheradressierung (z.B. _______/ ________) Laut APCS Konvention sind die Register _____ bis _____ Übergaberegister. Das Register _____ wird als Rückgaberegister (32 Bit) verwendet. Entsprechend sind diese Register sogenannte ________- Register. Zu diesem Registertyp gehört auch noch das Register _____. Alle anderen Register sind sog. ___________-Register. Letztere müssen beim Eintritt in eine Routine auf dem ________ gesichert werden und bei der Rückkehr restauriert werden. Für die Eintritts- und Austrittsroutine kommen in der Regel die Befehle ________ und ________ zum Einsatz.
h_da/fbi
Klausur_WS18_19_V11_oL
ver: 0.01
14 / 15
Klausur: Rechnerarchitektur am 02.07.18
Nachname:
h_da/fbi
___
Vorname:
Klausur_WS18_19_V11_oL
ver: 0.01
15 / 15...