bachelorpr fung modul computertechnik · vertrauens rztliches attest - ausgestellt am pr fungstag -...

20
Hiermit bestätige ich, dass ich vor Prüfungsbeginn darüber in Kenntnis gesetzt wurde, dass ich im Falle einer plötzlich während der Prüfung auftretenden Erkrankung das Aufsichtspersonal umgehend informieren muss. Dies wird im Prüfungsprotokoll vermerkt. Danach muss unverzüglich ein Rücktritt von der Prüfung beim zuständigen Prüfungsausschuss beantragt werden. Ein vertrauensärztliches Attest - ausgestellt am Prüfungstag - ist unverzüglich nachzureichen. Wird die Prüfung hingegen in Kenntnis der gesundheitlichen Beeinträchtigung dennoch regulär beendet, kann im Nachhinein kein Prüfungsrücktritt aufgrund von Krankheit beantragt werden. Wird die Prüfung wegen Krankheit abgebrochen, wird die Klausur mit der Note "5,0 - nicht erschienen" gemeldet und - unabhängig von einem Rücktrittsantrag - nicht bewertet. Name: Hörsaal: Reihe: Platz: Bachelorprüfung Modul Computertechnik Computersysteme 1 Hier Etikett einkleben (Prüfungsaufsicht): Prüfungsfähigkeit: Weitere Hinweise: Die Prüfungsdauer beträgt 60 Minuten. Es sind keine Hilfsmittel erlaubt, auch keine Taschenrechner! Heftung nicht öffnen - keine Blätter abtrennen! Lösungen bitte immer nur in den dafür vorgesehenen Abschnitt eintragen. An anderen Stellen eingetragene Lösungen werden nicht bewertet. Ggf. zweiten Angabebogen anfordern. Verwenden Sie zum Schreiben bitte einen dunklen Stift - die Prüfungen werden eingescannt! Die Prüfung besteht inkl. Anhang und Konzeptpapier aus 20 Seiten - bitte überprüfen! Die angegebene Anzahl zu erreichender Punkte ist als vorläufig zu betrachten. Die mit einem Stern (*) gekennzeichneten Aufgaben sind unabhängig von der Lösung vorangegangener Aufgaben lösbar. Vorangegangene Angaben können benötigt werden. - - - - - - - - Fakultät: EI EDU BWL INF Matrikel-Nr.: Vorname: Unterschrift: Bitte ausfüllen: Aufg. 1 Punkte: Aufg. 2 Aufg. 3 Aufg. 4 Aufg. 5 Aufg. 6 Summe Probeklausur 2

Upload: others

Post on 13-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Bachelorpr fung Modul Computertechnik · vertrauens rztliches Attest - ausgestellt am Pr fungstag - ist unverz glich nachzureichen. Wird die Pr fung hingegen in Kenntnis der gesundheitlichen

Hiermit bestätige ich, dass ich vor Prüfungsbeginn darüber in Kenntnis gesetzt wurde, dass ich im Falle einer plötzlich während der Prüfung auftretenden Erkrankung das Aufsichtspersonal umgehend informieren muss. Dies wird im Prüfungsprotokoll vermerkt. Danach muss unverzüglich ein Rücktritt von der Prüfung beim zuständigen Prüfungsausschuss beantragt werden. Ein vertrauensärztliches Attest - ausgestellt am Prüfungstag - ist unverzüglich nachzureichen. Wird die Prüfung hingegen in Kenntnis der gesundheitlichen Beeinträchtigung dennoch regulär beendet, kann im Nachhinein kein Prüfungsrücktritt aufgrund von Krankheit beantragt werden. Wird die Prüfung wegen Krankheit abgebrochen, wird die Klausur mit der Note "5,0 - nicht erschienen" gemeldet und - unabhängig von einem Rücktrittsantrag - nicht bewertet.

Name:

Hörsaal: Reihe: Platz:

Bachelorprüfung Modul ComputertechnikComputersysteme 1

Hier Etikett einkleben (Prüfungsaufsicht):

Prüfungsfähigkeit:

Weitere Hinweise:

Die Prüfungsdauer beträgt 60 Minuten.Es sind keine Hilfsmittel erlaubt, auch keine Taschenrechner!

Heftung nicht öffnen - keine Blätter abtrennen!

Lösungen bitte immer nur in den dafür vorgesehenen Abschnitt eintragen. An anderen Stellen eingetragene Lösungen werden nicht bewertet. Ggf. zweiten Angabebogen anfordern. Verwenden Sie zum Schreiben bitte einen dunklen Stift - die Prüfungen werden eingescannt!Die Prüfung besteht inkl. Anhang und Konzeptpapier aus 20 Seiten - bitte überprüfen!Die angegebene Anzahl zu erreichender Punkte ist als vorläufig zu betrachten.Die mit einem Stern (*) gekennzeichneten Aufgaben sind unabhängig von der Lösung vorangegangener Aufgaben lösbar. Vorangegangene Angaben können benötigt werden.

----

----

Fakultät: EI EDU BWL INF

Matrikel-Nr.:

Vorname:

Unterschrift:

Bitte ausfüllen:

Aufg. 1Punkte:

Aufg. 2

Aufg. 3

Aufg. 4

Aufg. 5

Aufg. 6

Summe

Probeklausur 2

Page 2: Bachelorpr fung Modul Computertechnik · vertrauens rztliches Attest - ausgestellt am Pr fungstag - ist unverz glich nachzureichen. Wird die Pr fung hingegen in Kenntnis der gesundheitlichen

Übersicht

1 Komponenten Computer-Systeme (5 Punkte) 3

2 Zahldarstellung (4 Punkte) 3

3 MMIX (26 Punkte) 4

3.1 Assembler- und Loaderbefehle (2 Punkte) . . . . . . . . . . . . . . . . 4

3.2 MMIX Befehlsformat (2 Punkte) . . . . . . . . . . . . . . . . . . . . . . 4

3.3 Lade- und Speicherbefehle – Alignment (4 Punkte) . . . . . . . . . . . 5

3.4 Arithmetische Befehle (6 Punkte) . . . . . . . . . . . . . . . . . . . . . 6

3.5 Logische Operationen, Spezialregister (3 Punkte) . . . . . . . . . . . 7

3.6 Verzweigungen (4 Punkte) . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.7 Funktionsaufrufe/Stack (5 Punkte) . . . . . . . . . . . . . . . . . . . . 8

4 Mikroarchitektur (22 Punkte) 9

4.1 MMIX-Datenpfad (8 Punkte) . . . . . . . . . . . . . . . . . . . . . . . . 9

4.2 Datenpfad- und Steuerungsentwurf (14 Punkte) . . . . . . . . . . . . . 10

Entwurf eines Moore-Automaten (9 Punkte) . . . . . . . . . . . . . . . . 10

ROM basierte Steuerung (5 Punkte) . . . . . . . . . . . . . . . . . . . . 12

5 Pipelining (6 Punkte) 14

6 Cache (7 Punkte) 15

Page 3: Bachelorpr fung Modul Computertechnik · vertrauens rztliches Attest - ausgestellt am Pr fungstag - ist unverz glich nachzureichen. Wird die Pr fung hingegen in Kenntnis der gesundheitlichen

3

1 Komponenten Computer-Systeme (5 Punkte)

∗a) Was ist eine Festplatten-Spur? (2 Punkte)

∗b) Welche der Busse Adressbus, Datenbus, Steuerbus sind unidirektional, welche

bidirektional? (DMA wird nicht betrachtet.) (3 Punkte)

2 Zahldarstellung (4 Punkte)

∗a) Kodieren Sie 17.25 als 64 Bit breite Gleitkommazahl und tragen Sie das Bitmuster

in die vorgegebene Abbildung ein. (4 Punkte)

63 62 52 51 0

Page 4: Bachelorpr fung Modul Computertechnik · vertrauens rztliches Attest - ausgestellt am Pr fungstag - ist unverz glich nachzureichen. Wird die Pr fung hingegen in Kenntnis der gesundheitlichen

4 3 MMIX

3 MMIX (26 Punkte)

Hinweis: Sie können in allen Aufgaben buf, buf1, ... als Pufferregister verwenden.

3.1 Assembler- und Loaderbefehle (2 Punkte)

∗a) Geben Sie die Anweisungen an, mit denen Sie den Namensraum Daten: anlegen

und in diesem Namensraum die Register 1 und 2 durch die Namen x und y

ansprechbar machen. (2 Punkte)

3.2 MMIX Befehlsformat (2 Punkte)

Betrachten Sie die rechts angegebene Übersetzungs-Tabelle.

Gegeben ist folgender Programmcode:

Start DIV $1,$2,3

SUB $1,$1,3

BZ $1,Ende

SUB i,i,1

JMP Start

∗a) Geben Sie hexadezimal das Befehlswort an, in das der Befehl JMP Start übersetzt

wird. (2 Punkte)

Page 5: Bachelorpr fung Modul Computertechnik · vertrauens rztliches Attest - ausgestellt am Pr fungstag - ist unverz glich nachzureichen. Wird die Pr fung hingegen in Kenntnis der gesundheitlichen

53.3 Lade- und Speicherbefehle – Alignment

! "#$%

!"#"$% &'()*+,-.%(*/%012'(*/%!&'(!)*+*,-(#.*-/!01234/*5!67*8434/*9!:;</!=*8>((!7'3,+4-=*7/*<!?'@*--*!A@*<(*BCBD!!

0x..0 0x..1 0x..2 0x..3 0x..4 0x..5 0x..6 0x..7

TRAP 5! FCMP ! FUN ! FEQL ! FADD 4! FIX 4! FSUB 4! FIXU 4!

FMUL 4! FCMPE 4! FUNE ! FEQLE 4! FDIV 40! FSQRT 40! FREM 4! FINT 4!

SETH ! SETMH ! SETML ! SETL ! INCH ! INCHM ! INCML ! INCL !ORH ! ORMH ! ORML ! ORL ! ANDNH ! ANDNMH ! ANDNML ! ANDNL !

POP 3! RESUME 5! SYNC ! SWYM ! GET ! TRIP 5!0x..8 0x..9 0x..A 0x..B 0x..C 0x..D 0x..E 0x..F

SUB[I] !

CSNP[I] !ZSP[I] !

SUBU[I] !16ADDU[I] !NEGU[I] !SRU[I]!

BOD[B] !+"BEV[B] !+"PBOD[B] 3!-"

CMPU[I] !SLU[I] !BZ[B] !+"BNZ[B] !+"PBZ[B] 3!-"

CSNZ[I] !ZSZ[I] !

ADD[I] !

CSNN[I] !ZSN[I] !

ADDU[I] !4ADDU[I] !

PBNZ[B] 3!-"CSZ[I] !

0x0.. 0x0..FLOT[I] 4! FLOTU[I] 4! SFLOT[I] 4! SFLOTU[I] 4!

PUSHJ[B] ! GETA[B] ! PUT[I] ![UN]SAVE 20µ+!

XOR[I] !NXOR[I] !ODIF[I] !MXOR[I] !

STWU[I] µ+!STOU[I] µ+!STUNC[I] µ+!PUSHGO[I] 3!

LDWU[I] µ+!LDOU[I] µ+!LDUNC[I] µ+!GO[I] 3!

CSOD[I] !PBEV[B] 3!-"

ZSEV[I] !

CSEV[I] !ZSOD[I] !

NAND[I] !TDIF[I] !MOR[I] !

STO[I] µ+!STCO[I] µ+!SYNCID[I] !NOR[I] !

LDO[I] µ+!CSWAP[I] 2µ+2!PREGO[I] !STW[I] µ+!

PBNP[B] 3!-"CSP[I] !

ZSNP[I] !LDW[I] µ+!

BNP[B] !+"PBP[B] 3!-"

8ADDU[I] !NEG[I] !SR[I] !BP[B] !+"

ORN[I] !ANDN[I] !WDIF[I] !SADD[I] !

STBU[I] µ+!STTU[I] µ+!STHT[I] µ+!PREST[I] !

LDBU[I] µ+!LDTU[I] µ+!LDHT[I] µ+!PRELD[I] !

ZSNZ[I] !

BDIF[I] !MUX[I] !

JMP[B] !

STSF[I] µ+!SYNCD[I] !OR[I] !AND[I] !

LDSF[I] µ+!LDVTS[I] !STB[I] µ+!STT[I] µ+!

BNN[B] !+"PBN[B] 3!-"PBNN[B] 3!-"CSN[I] !

ZSNN[I] !LDB[I] µ+!LDT[I] µ+!

2ADDU[I] !CMP[I] !SL[I] !BN[B] !+"

0xC..

0xD..

0xE..

0xF..

0x8..

0x9..

0xA..

0xB..

0xD..

0xE..

0xF..

0x1..

0x2..

0x3..

0x4..

0x5..

0x6..

0x7..

0x9..

0xA..

0xB..

0xC..

0x5..

0x6..

0x7..

0x8..

0x1..

0x2..

0x3..

0x4..

MUL[I] 10! MULU[I] 10! DIV[I] 60! DIVU[I] 60!

!!!&'(!*<(B*!E;@@-*!0F!);B#G*<B9!/*(!1234/*(!*7B(2<;3,B!/*<!&422*-C*;-*!0H!@;(!IJ95! ;7!/*<!(;3,!/*<!)*#+*,-(34/*!@*+;7/*BD!!!&'(!C:*;B*!E;@@-*!/*(!1234/*(!*<=;@B!(;3,!:;*!+4-=BK!!

#! 6L)!0);B!E<D!"9!/*(!C:*;B*7!E;@@-*(!+! H5!:*77!(;3,!/*<!)*+*,-!;8!4@*<*7!?*;-!/*<!&422*-!"#$"!@*+;7/*B!+! I5!:*77!(;3,!/*<!)*+*,-!;8!M7B*<*7!?*;-!/*<!&422*-!"#$"!@*+;7/*B!!

!#! );B(!$5!I!M7/!H!/*(!C:*;B*7!E;@@-*(!*7B(2<*3,*7!/*<!%&'$("!0H!@;(!%95!;7!/*8!(;3,!/*<!)*+*,-(#34/*!@*+;7/*B!

![I]!@*/*MB*BK!N88*/;'B*#O'<;'7B*!/*(!)*+*,-(!

#! ;88*/;'B*!$!&;<*PB42*<'7/!#! ADD $1,$2,$3K!7;3,B!;88*/;'B*5!/'!/*<!"D!12*<'7/!*;7!Q*=;(B*<!;(B!M7/!P*;7*!R',-!#! ADD $1,$2,3K!;88*/;'B*5!/'!'-(!"D!12*<'7/!*;7*!R',-!'7=*=*@*7!;(B!M7/!P*;7!Q*=;(B*<!#! /*<! 1234/*! /*<! ;88*/;'B*#O'<;'7B*! *;7*(! )*+*,-(! ;(B! ;88*<! M8! I! ,S,*<! '-(! /;*! 7;3,B#;88*/;'B*#O'<;'7B*!/*(!)*+*,-(!0(B*,B!;7!/*<!&422*-)&'$("!'-(4!<*3,B(9!

#! *;7*! ;88*/;'B*#O'<;'7B*!/*(!)*+*,-(!:;</!T48!U((*8@-*<!'MB48'B;(3,!'7,'7/!/*(! +*,-*7/*7!&4--'<#R*;3,*7(! 0$9! *<P'77B5! :*(,'-@! ;8! V<4=<'88! 7;3,B! *W2-;C;B!ADDI! =*(3,<;*@*7! :*</*7!8M((!!!

3.3 Lade- und Speicherbefehle – Alignment (4 Punkte)Nehmen Sie folgende Speicherbelegung an:

LOC Data_Segment

GREG @ $254 ← @

TETRA #800328BC

OCTA #A300CD8BD765BAD8

∗a) Geben Sie hexadezimal alle 64 Bit des Registers 0 nach Ausführung der nachfol-

gend angegebenen Befehle an. (2 Punkte)

LDW $0,$254,11:

LDTU $0,$254,15:

Page 6: Bachelorpr fung Modul Computertechnik · vertrauens rztliches Attest - ausgestellt am Pr fungstag - ist unverz glich nachzureichen. Wird die Pr fung hingegen in Kenntnis der gesundheitlichen

6 3 MMIX

In folgendem Programmcode wird XXX XXXXXXXX als Platzhalter für einen einzelnen

Befehl verwendet:

LOC Data_Segment

GREG @ $254 ← Data_Segment

A TETRA #0000 0000

B WYDE #8765

C TETRA #ABCD 0123

LOC #100

Main LDW $0,C

XXX XXXXXXXX

TRAP 0,Halt,0

∗b) Geben Sie für das gezeigte Programm den Inhalt des 32 Bit breiten Wortes an,

welches durch die Marke A adressiert wird, wenn XXX XXXXXXXX jeweils durch

folgenden Befehl ersetzt wird: (2 Punkte)

STBU $0,A:

STTU $0,$254,3:

3.4 Arithmetische Befehle (6 Punkte)Es soll das Volumen einer Kugel mittels V = 4

3 · r3 · π berechnet werden. r und π liegen

bereits als Gleitkommazahlen in Register r und pi.

a) Geben Sie den MMIX-Code an, mit dem Sie das Volumen berechnen und im

Speicher als Gleitkommazahl an der lokalen Marke V ablegen. (6 Punkte)

Page 7: Bachelorpr fung Modul Computertechnik · vertrauens rztliches Attest - ausgestellt am Pr fungstag - ist unverz glich nachzureichen. Wird die Pr fung hingegen in Kenntnis der gesundheitlichen

73.6 Verzweigungen

3.5 Logische Operationen, Spezialregister (3 Punkte)

∗a) Geben Sie den MMIX-Code an, mit dem Sie in Spezialregister rA das Bit Nr. 9 auf

1 setzen. (3 Punkte)

3.6 Verzweigungen (4 Punkte)

∗a) Verwenden Sie MMIX Verzweigungs-Befehle den nachfolgend angegebenen C-

Code zu implementieren. (4 Punkte)

Hinweis: Register x ist bereits angelegt, Sie können es direkt verwenden.

C-code: int x;

...

if(x <= 0){

x = 0;}else{

x = 1;}

MMIX-Code:

Page 8: Bachelorpr fung Modul Computertechnik · vertrauens rztliches Attest - ausgestellt am Pr fungstag - ist unverz glich nachzureichen. Wird die Pr fung hingegen in Kenntnis der gesundheitlichen

8 3 MMIX

3.7 Funktionsaufrufe/Stack (5 Punkte)Nachfolgende Abbildung zeigt, wie einer Funktion Parameter übergeben wurden und

wie die Funktion die verwendeten Register auf den Stack gesichert hat. Die Funktion hat

ein Ergebnis berechnet und soll nun beendet werden.

:SP Gesichertes Register $1

Gesichertes Register $2

Gesichertes Register $3

Parameter 1

Parameter 2

a) Geben Sie den MMIX-Code an, mit dem Sie

• das im Register 1 befindliche Ergebnis auf dem Stack ablegen,

• die Register 1, 2 und 3 wiederherstellen,

• den Stackpointer anpassen und

• zurück zum Funktionsaufrufer springen (Rücksprungadr. in Reg. 0).

(5 Punkte)

Page 9: Bachelorpr fung Modul Computertechnik · vertrauens rztliches Attest - ausgestellt am Pr fungstag - ist unverz glich nachzureichen. Wird die Pr fung hingegen in Kenntnis der gesundheitlichen

94.2 Datenpfad- und Steuerungsentwurf

4 Mikroarchitektur (22 Punkte)

4.1 MMIX-Datenpfad (8 Punkte)

∗a) Erweitern Sie nachfolgende Schaltung so, dass beim Befehl GO $0,$253,0 die

Rücksprungadresse in Register 0 abgelegt werden kann. (4 Punkte)

Befehls- Speicher

Adresse

Befehl32

64

BZ

BR

Schrei- ben

Schreib- Daten $X

Allzw.-Reg.

64 64

X

Y

Z

$X

$Y

$Z

OR

o1

o2

23...16

15...8

7...0

10

23

∗b) Erweitern Sie nachfolgende Schaltung so, dass in der AF-Phase aus o2 und o3 die

Sprungziel-Adresse des BZ-Befehls für den Fall $X = 0 berechnet werden kann.

(4 Punkte)

Befehls- Speicher

Adresse

Befehl 32

64

BZ

BR

Schreiben

Schreib- Daten $X

Allzweck- Registerblock

64

8

8

8

64

64

64

X

Y

Z

$X

$Y

$Z

OR

o1

o2

o3

23...16

15...8

7...032

10

23

10

23

Page 10: Bachelorpr fung Modul Computertechnik · vertrauens rztliches Attest - ausgestellt am Pr fungstag - ist unverz glich nachzureichen. Wird die Pr fung hingegen in Kenntnis der gesundheitlichen

10 4 Mikroarchitektur

4.2 Datenpfad- und Steuerungsentwurf (14 Punkte)

Entwurf eines Moore-Automaten (9 Punkte)

Für nachfolgend angegebenen Datenpfad soll eine Steuerung entwickelt werden.

64

64

64

6464

64

Steuerung

864

Basisadresse x

64

1

64

64

Offset

ADD1

0

Schreiben

Adresse

Daten

clk_mem

reset

D64

64Fertig?

0 1

0 BADD

clk_offset

Sum- me

Zähler

0 1

0

ADD

clk_mw

a / b

r/wr/w

null

1

64

Off- set

fertig

Offset

a

b

Ergebnisadresse

0 1ADD

0

1

Speicher

Die Steuerung soll wie folgt funktionieren:

• In den Zuständen 0 und 1 sollen Register Summe, Zähler und Offset mit 0

initialisiert werden. (1 Punkt)

• In Zustand 1 soll die Speicheradresse Basisadresse x + Offset ausgelesen

werden. Hat das ausgelesene Datum den Wert 0, soll in Zustand 2 verzweigt

werden. Anderenfalls soll in Zustand 4 verzweigt werden. (1,5 Punkte)

• Beim Übergang von Zustand 2 auf 3 soll der in Register Offset gespeicherte

Wert um 8 erhöht werden. (1 Punkt)

• In Zustand 3 soll das im Speicher an Adresse Basisadresse x + Offset abgelegte

Datum zur Generierung des Signals null bereitgestellt werden. (0,5 Punkte)

• Hat in Zustand 3 das Signal null den Wert 0, soll in Zustand 4 verzweigt werden.

Anderenfalls in Zustand 2, falls fertig = 0 bzw. Zustand 6, falls fertig = 1.

(1,5 Punkte)

• Beim Übergang von Zustand 4 in den Zustand 5 soll Register Summe um den

an Speicheradresse Basisadresse x + Offset stehenden Wert erhöht werden.

(1,5 Punkte).

Page 11: Bachelorpr fung Modul Computertechnik · vertrauens rztliches Attest - ausgestellt am Pr fungstag - ist unverz glich nachzureichen. Wird die Pr fung hingegen in Kenntnis der gesundheitlichen

114.2 Datenpfad- und Steuerungsentwurf

• Ist in Zustand 5 fertig = 0, soll in Zustand 2 verzweigt werden. Anderenfalls in

Zustand 6. (1 Punkt)

• Beim Übergang von Zustand 6 in den Zustand 7 soll der im Register Summe

stehende Wert durch den im Register Zähler stehenden Wert dividiert werden

und das Ergebnis im Speicher an der Ergebnisadresse abgelegt werden.

(1 Punkt)

∗a) Vervollständigen Sie den nachfolgendenMoore-Automat so, dass er die Hardware-

Schaltung in gewünschter Weise steuert. Legen Sie Leitungen, deren Pegel ‘‘egal’’

ist auf 0. (9 Punkte)

Initialisierung

0

r/w

clk_offset

clk_mem

reset

clk_mw

Initialisierung

1

r/w

clk_offset

clk_mem

reset

clk_mw

Nächster

2

r/w

clk_offset

clk_mem

reset

clk_mw

Nächster

3

r/w

clk_offset

clk_mem

reset

clk_mw

Mittelwert

4

r/w

clk_offset

clk_mem

reset

clk_mw

Mittelwert

5

r/w

clk_offset

clk_mem

reset

clk_mw

Schreiben

6

r/w

clk_offset

clk_mem

reset

clk_mw

Schreiben/Ende

7

r/w

clk_offset

clk_mem

reset

clk_mw

immer

Page 12: Bachelorpr fung Modul Computertechnik · vertrauens rztliches Attest - ausgestellt am Pr fungstag - ist unverz glich nachzureichen. Wird die Pr fung hingegen in Kenntnis der gesundheitlichen

12 4 Mikroarchitektur

ROM basierte Steuerung (5 Punkte)

Nachfolgende Abbildung zeigt einen anderen Moore-Automaten.

00 10

01 11

immer

null = 1

fertig = 1

0

0

1

1

0

1

0

0

1

0

0

1

0

1

0

1

0

1

0

1

0

1

1

1

1

1

0

1

1

1

0

null = 0

1

xy/res

clk_offset

reset

x/y

clk_mem

clk_x

clk_y

clk_res

xy/res

clk_offset

reset

x/y

clk_mem

clk_x

clk_y

clk_res

xy/res

clk_offset

reset

x/y

clk_mem

clk_x

clk_y

clk_res

xy/res

clk_offset

reset

x/y

clk_mem

clk_x

clk_y

clk_res

fertig

= 0

imm

er

Page 13: Bachelorpr fung Modul Computertechnik · vertrauens rztliches Attest - ausgestellt am Pr fungstag - ist unverz glich nachzureichen. Wird die Pr fung hingegen in Kenntnis der gesundheitlichen

134.2 Datenpfad- und Steuerungsentwurf

Der abgebildete Moore-Automat soll mit folgender ROM-basierten Steuerung imple-

mentiert werden:

D2

D0

Q2

Q0

clk

null

D1

Q1

ROM Speicher012345678

012

9

x/y

xy/resclk_offsetreset

clk_memclk_xclk_yclk_res

fert

ig

3

∗a) Tragen Sie in nachstehendes ROM binär die Daten ein, die an den angegebenen

Adressen abgelegt sein müssen, damit die Steuerung den gezeigten Moore-

Automaten realisiert. (5 Punkte)

Hinweis: Die links angegebene Zustands-Codierung entspricht den Bits 0 und 1

des ROM-Speichers.

0000

1001

0010

Adresse Daten

3 2 1 0 9 8 7 6 5 4 3 2 1 0

0100

1101

Page 14: Bachelorpr fung Modul Computertechnik · vertrauens rztliches Attest - ausgestellt am Pr fungstag - ist unverz glich nachzureichen. Wird die Pr fung hingegen in Kenntnis der gesundheitlichen

14 5 Pipelining

5 Pipelining (6 Punkte)

Gegeben ist der bekannte Pipelining-Datenpfad.

Befehls-Speicher

32 Lesen $Z

Lesen $Y

Schreiben/Lesen $X

Schreib-Daten $X

Lese-Daten $Z

Lese-Daten $Y

Registerblock

0..7

8..15Daten

ALU64

BZ64

Adresse

Add64

4

64

Schreiben

640

1

24..31

32

64BR

64

64

0

1

2

64

64

64

ES

ALU-Funktion

64

Daten-Speicher

Adr.

Lese-Daten $X

64Schreib-Daten

SP

AFDirektoperand

ES

SP ES

2Zugriffs-Art

Zugriffs-Art

Lese-Daten

Ergebnisauswahl

16..23

Reg.-Schreiben

8 8

8

8

Sp.-Schreiben

Schrei-ben

0

1

32

64

Steuerung

8

8Clk1

Clk2Clk3

Clk4

Reg.-Puls

Sp.-Puls

X-A

usw

ahl

16..23 $X

$Y

$Z

DirOp.

X X X

ErgALU

$X

ErgALU

LeseDat.

648

056

∗a) Welche Anforderung muss man an die relativen Ausführungsgeschwindigkeiten

der einzelnen Stufen stellen, damit der Durchsatz maximal wird? (2 Punkte)

Betrachten Sie folgenden Ausschnitt aus einem MMIX-Programm:

DIV $2,$2,$1 Zeile_1

SUB $1,$2,20 Zeile_2

MUL $3,$2,$1 Zeile_3

STO $1,:Erg Zeile_4

∗b) Geben Sie alle auftretenden Datenkonflikte an. (4 Punkte)

Page 15: Bachelorpr fung Modul Computertechnik · vertrauens rztliches Attest - ausgestellt am Pr fungstag - ist unverz glich nachzureichen. Wird die Pr fung hingegen in Kenntnis der gesundheitlichen

15

6 Cache (7 Punkte)

Nachfolgende Abbildung zeigt den bekannten Direktabgebildeten MMIX-Cache.

Byte-AuswahlRahmen-Nr.Schlüssel

0

1

2 - 1f

bfk

k Bits

b Bitsf Bitsk Bits

Rahmen (frame)

v

v

v

v

v

v

v

v

∗a) Geben Sie in richtiger Reihenfolge die zwei Aktionen an, die durchgeführt werden

müssen, bevor mit der Byte-Auswahl ein Byte aus einem Rahmen ausgewählt

werden kann. (2 Punkte)

b) Wie groß ist k, wenn jeder Rahmen 4 kByte groß ist und der Cache insgesamt

2 MB an Daten aufnehmen kann? (3 Punkte)

∗c) Welcher Rahmen wird bei Adresse 0x0123012301230123 ausgewählt, wenn k = 36

und b = 12? Geben Sie den Wert hexadezimal an. (2 Punkte)

Page 16: Bachelorpr fung Modul Computertechnik · vertrauens rztliches Attest - ausgestellt am Pr fungstag - ist unverz glich nachzureichen. Wird die Pr fung hingegen in Kenntnis der gesundheitlichen

16

2.3

MMIX

Befehle

47

Lade-undSpeicherbefehle

Datenvom

Speicherin

ein

Registerladen

Befehl

Operanden

Name/Aktion

Definition

LDB

$X,$

Y,$Z

Loadbyte

$X

s0 64(s

(M1[u

($Y)

+u($Z)

]))

$X,$

Y,Z

Loadbyteim

mediate

$X

s0 64(s

(M1[u

($Y)

+u(Z

)]))

LDBU

$X,$

Y,$Z

Loadbyteunsigned

$X

u0 64(u

(M1[u

($Y)

+u($Z)

]))

$X,$

Y,Z

Loadbyteuns.im

med.

$X

u0 64(u

(M1[u

($Y)

+u(Z

)]))

LDW

$X,$

Y,$Z

Loadwyde

$X

s0 64(s

(M2[u

($Y)

+u($Z)

]))

$X,$

Y,Z

Loadwydeim

mediate

$X

s0 64(s

(M2[u

($Y)

+u(Z

)]))

LDWU

$X,$

Y,$Z

Loadwydeunsigned

$X

u0 64(u

(M2[u

($Y)

+u($Z)

]))

$X,$

Y,Z

Loadwydeuns.im

med.

$X

u0 64(u

(M2[u

($Y)

+u(Z

)]))

LDT

$X,$

Y,$Z

Loadtetra

$X

s0 64(s

(M4[u

($Y)

+u($Z)

]))

$X,$

Y,Z

Loadtetraim

mediate

$X

s0 64(s

(M4[u

($Y)

+u(Z

)]))

LDTU

$X,$

Y,$Z

Loadtetraunsigned

$X

u0 64(u

(M4[u

($Y)

+u($Z)

]))

$X,$

Y,Z

Loadtetrauns.im

med.

$X

u0 64(u

(M4[u

($Y)

+u(Z

)]))

LDO

$X,$

Y,$Z

Loadocta

$X

M8[u

($Y)

+u($Z)

]

$X,$

Y,Z

Loadocta

immediate

$X

M8[u

($Y)

+u(Z

)]

LDOU

$X,$

Y,$Z

Loadocta

unsigned

$X

M8[u

($Y)

+u($Z)

]

$X,$

Y,Z

Loadocta

uns.

immed.

$X

M8[u

($Y)

+u(Z

)]

54

2Assemblerprogrammierung

Adress

enin

einReg

isterladen

Befehl

Operanden

Name/Aktion

Definition

LDA

$X,$

Y,$Z

Getaddress(abso

lute)

$X

u0 64(u

($Y)

+u($Z)

)

$X,$

Y,Z

Getaddressim

med.(absolute)

$X

u0 64(u

($Y)

+u(Z

))

GETA

$X,Y

ZGetaddress(relativ)

$X

u0 64(u

(@)+

4·s

(YZ)

)

a)

WasistderUnterschiedzw

ischendem

BefehlLDA

unddenLadebefehlenLD

B,...?

DieLadebefehleLD

B,...ladenDatenwortevom

SpeicherineinRegister.DerBefehl

LDAlädteineAdresse

inein

Register.

NehmenSie

die

folgendenBefehle

an:

LOC

Data

_Seg

ment

GREG

@$2

54

@

ABY

TE#1

2

LOC

#100

Main

LDA

$0,A

TRAP

0,Ha

lt,0

b)

InwelcheshexadezimaleBefehlswortwirdderBefehlLDA

$0,A

übersetzt?

Warum?

0x23

00FE

00.DerAssemblerlöst

die

MarkeAin

$254

+0aufund

ersetztden

BefehlLD

A$0

,AdurchAD

DUI

$0,$

254,

0.DerBefehlAD

DUIaddiert

denWert

im

Basisregister254unddenOffset0undspeichertdasErgebnisinRegister0.Damit

enthältRegister0danndie

AdressederMarkeA.

c)

Inwelcheshexadezimale

Befehlswort

sollte

derBefehlLD

A$0

,Mai

nübersetzt

werden?

0x23

00FF

00

56

2Assemblerprogrammierung

Datenvom

Registerin

denSpeicherschreiben(speichern)

Befehl

Operanden

Name/Aktion

Definition

STB

$X,$

Y,$Z

Store

byte;withove

rflow

M1[u

($Y)

+u($Z)

]

($X)

7...0

s($X

)�

27)

rA

rA|u

0 64(2

6)

s($X

)<�

27)

rA

rA|u

0 64(2

6)

$X,$

Y,Z

Store

byteim

med.;ovf.

M1[u

($Y)

+u(Z

)]

($X)

7...0

s($X

)�

27)

rA

rA|u

0 64(2

6)

s($X

)<�

27)

rA

rA|u

0 64(2

6)

STBU

$X,$

Y,$Z

Store

byteunsigned

M1[u

($Y)

+u(Z

)]

($X)

7...0

$X,$

Y,Z

Store

byteuns.im

m.

M1[u

($Y)

+u(Z

)]

($X)

7...0

STW

$X,$

Y,$Z

Store

wyd

e;withove

rflow

M2[u

($Y)

+u(Z

)]

($X)

15...0

s($X

)�

215)

rA

rA|u

0 64(2

6)

s($X

)<�

215)

rA

rA|u

0 64(2

6)

$X,$

Y,Z

Store

wyd

eim

med.;ovf.

M2[u

($Y)

+u(Z

)]

($X)

15...0

s($X

)�

215)

rA

rA|u

0 64(2

6)

s($X

)<�

215)

rA

rA|u

0 64(2

6)

STWU

$X,$

Y,$Z

Store

wyd

eunsigned

M2[u

($Y)

+u(Z

)]

($X)

15...0

$X,$

Y,Z

Store

wyd

euns.

imm.

M2[u

($Y)

+u(Z

)]

($X)

15...0

STT

$X,$

Y,$Z

Store

tetra;withove

rflow

M4[u

($Y)

+u(Z

)]

($X)

31...0

s($X

)�

231)

rA

rA|u

0 64(2

6)

s($X

)<�

231)

rA

rA|u

0 64(2

6)

$X,$

Y,Z

Store

tetraim

med.;ovf.

M4[u

($Y)

+u(Z

)]

($X)

31...0

s($X

)�

231)

rA

rA|u

0 64(2

6)

s($X

)<�

231)

rA

rA|u

0 64(2

6)

STTU

$X,$

Y,$Z

Store

byteunsigned

M4[u

($Y)

+u(Z

)]

($X)

31...0

$X,$

Y,Z

Store

byteuns.im

m.

M4[u

($Y)

+u(Z

)]

($X)

31...0

STO

$X,$

Y,$Z

Store

octa

M8[u

($Y)

+u(Z

)]

$X

$X,$

Y,Z

Store

octa

immediate

M8[u

($Y)

+u(Z

)]

$X

STOU

$X,$

Y,$Z

Store

octa

unsigned

M8[u

($Y)

+u(Z

)]

$X

$X,$

Y,Z

Store

octa

uns.

imm.

M8[u

($Y)

+u(Z

)]

$X

La

de

n a

us S

pe

ich

er

Sc

hre

ibe

n in

Sp

eic

he

r

72

2Assemblerprogrammierung

Sch

iebe-Befeh

le

Befehl

Operanden

Name/Aktion

Definition

SL

$X,$

Y,$Z

Shiftleft;withove

rflow

$X

u0 64(u($Y⌧

u($Z)

))

u($Y)

·2u($Z)�

264)

rA

rA|u

0 64(2

5)

$X,$

Y,Z

Shiftleftim

mediate;withovf.

$X

u0 64(u($Y⌧

u(Z

)))

u($Y)

·2u(Z

)�

264)

rA

rA|u

0 64(2

5)

SLU

$X,$

Y,$Z

Shiftleftuns.,noove

rflow

$X

u0 64(u($Y⌧

u($Z)

))

$X,$

Y,Z

Shiftleftuns.

immed.;noovf.

$X

u0 64(u($Y⌧

u(Z

)))

SR$X

,$Y,

$ZShiftright;fillwithsign

$X

$Y�

su($Z)

$X,$

Y,Z

Shiftrightim

m.;fillwithsign

$X

$Y�

su(Z

)

SRU

$X,$

Y,$Z

Shiftrightunsigned;fillwith0

$X

$Y�

uu($Z)

$X,$

Y,Z

Shiftrightuns.

imm.;fillw.0

$X

$Y�

uu(Z

)

Sc

hie

be

n

Ma

rke

n a

ufl

öse

n/A

dre

sse

n la

de

n

Page 17: Bachelorpr fung Modul Computertechnik · vertrauens rztliches Attest - ausgestellt am Pr fungstag - ist unverz glich nachzureichen. Wird die Pr fung hingegen in Kenntnis der gesundheitlichen

17

64

2Assemblerprogrammierung

UmwandlungGleitkommazahl$

Festkommazahl

Befehl

Operanden

Name/Aktion

Definition

FLOT

$X,$

ZConvertfixedto

floating

$X

f0 64(s($Z

))

$X,Z

Conv.fixedto

float.im

m.

$X

f0 64(u(Z

))

FLOT

U$X

,$Z

Conv.uns.

fixedto

floating

$X

f0 64(u($Z)

)

$X,Z

Conv.uns.

fixedto

float.

imm.

$X

f0 64(u(Z

))

FIX

$X,$

ZConvertfloatingto

fixed

withoverflow

$X

s0 64(r(

f 64($Z)

))

f 64($Z)

<�

263)

rA

rA|u

0 64(2

5)

f 64($Z)

>26

3�

1)

rA

rA|u

0 64(2

5)

FIXU

$X,$

ZConvertfloatingto

fixed

withoutove

rflow

$X

s0 64(r(

f 64($Z)

))

a)

WelcheAktionführtderOperatorr(

)aus?

r()rundeteineGleitkommazahlineineFestkommazahl.DasRundenerfolgtwiein

SpezialregisterrA

eingestellt.

b)

Geben

Sie

den

Befehlan,mit

dem

Sie

Register0

die

Gleitkommazahl15,0

zuweisen.

FLOT

$0,1

5

c)

GebenSie

denBefehlan,mitdem

Sie

eineGleitkommazahlin

Register1in

eine

Festkommazahlu

mwandeln.

FIX

$1,$

1

2.3

MMIX

Befehle

65

ArithmetischeBefehle

ArithmetischeBefehle

aufFestkommazahlen

BefehlO

peranden

Name/Aktion

Definition

ADD

$X,$

Y,$Z

Add;signed,withove

rflow

$X

s0 64(s

($Y)

+s($Z

))

(s($Y)

+s($Z

)<�

263)

||(s

($Y)

+s($Z

)�

263))

rA

rA|u

0 64(2

5)

$X,$

Y,Z

Addim

mediate;signed,withove

rflow

$X

s0 64(s

($Y)

+u(Z

))

(s($Y)

+s(Z)

<�

263)

||(s

($Y)

+s(Z)�

263))

rA

rA|u

0 64(2

5)

ADDU

$X,$

Y,$Z

Addunsigned;noove

rflow

$X

u0 64(u

($Y)

+u($Z)

)

$X,$

Y,Z

Addunsigned;noove

rflow

$X

u0 64(u

($Y)

+u(Z

))

SUB

$X,$

Y,$Z

Subtract;signed,withove

rflow

$X

s0 64(s

($Y)�

s($Z

))

(s($Y)�

s($Z

)<�

263)

||(s

($Y)�

s($Z

)�

263))

rA

rA|u

0 64(2

5)

$X,$

Y,Z

Subtractim

mediate;signed,withove

rflow

$X

s0 64(s

($Y)�

u(Z

))

(s($Y)�

s(Z)

<�

263)

||(s

($Y)�

s(Z)�

263))

rA

rA|u

0 64(2

5)

SUBU

$X,$

Y,$Z

Subtractunsigned;noove

rflow

$X

u0 64(u

($Y)�

u($Z)

)

$X,$

Y,Z

Subtractunsignedim

med.;noovf.

$X

u0 64(u

($Y)�

u(Z

))

NEG

$X,Y

,$Z

Negate;signed,withove

rflow

$X

s0 64(u

(Y)�

s($Z

))

u(Y

)�

s($Z�

263))

rA

rA|u

0 64(2

5)

$X,Y

,ZNegate

immediate;signed,withove

rflow

$X

s0 64(u

(Y)�

s(Z)

)

NEGU

$X,Y

,$Z

Negate

unsigned;noove

rflow

$X

s0 64(u

(Y)�

s($Z

))

$X,Y

,ZNegate

unsignedim

med.;noove

rflow

$X

s0 64(u

(Y)�

u(Z

))

MUL

$X,$

Y,$Z

Multiply;signed,withove

rflow

$X

s0 64(s

($Y)

·s($Z)

)

$X,$

Y,Z

Multiplyim

mediate;signed,withovf.

$X

s0 64(s

($Y)

·u(Z

))

MULU

$X,$

Y,$Z

Multiplyunsigned;rH

($Y

·$Z)

127...6

4rH

$X

u0 128(u

($Y)

·u($Z)

)

$X,$

Y,Z

Multiplyuns.

imm.;rH

($Y

·Z) 1

27...6

4rH

$X

u0 128(u

($Y)

·u(Z

))

66

2Assemblerprogrammierung

DIV

Divide;signed,withoverflow

$X

s0 64(b

s($Y

)/s($Z

)c)

$X,$

Y,$Z

(case

$Z6=

0)rR

s0 64(s($Y

)%

s($Z

))

$X,$

Y,Z

Divideim

mediate;signed,withovf.

$X

u0 64(0

)

(case

$Z=

0)rR

$Y

DIVU

$X,$

Y,$Z

Divideunsigned;nooverflow;

$X

u0 128(bu

(rD$

Y)/u($Z)c)

(case

u($Z)

>u(rD)

)rR

u0 128(u(rD$

Y)%

u($Z)

)

Divideunsigned;nooverflow;

$X

rD

noove

rflow

(case

u($Z)

u(rD)

)rR

$Y

$X,$

Y,Z

Divideunsignedim

mediate;

$X

u0 128(bu

(rD$

Y)/u

(Z)c

)

noove

rflow;(case

u(Z

)>

u(rD)

)rR

u0 128(u(rD$

Y)%

u(Z

))

Divideunsignedim

medediate;

$X

rD

noove

rflow

(case

u(Z

)

u(rD)

)rR

$Y

a)

Inwelchem

Wertebereich

können

die

Direktoperanden

beiden

Arithmetischen

Befehlenliegen?

0...2

55so

wohlfürvo

rzeichenlosealsauchfürvorzeichenbehaftete

Operationen.

b)

Kannmitdem

ADDBefehl3

+5in

einereinzigenCodezeile

berechnetwerden?

Nein,daderAD

D-Befehlnureine

nDirektoperandenunterstützt,muss

derzw

eite

Operandzu

vorin

ein

Allzweckregistergeladenwerden.

c)

Wie

kannman

5�

3in

einereinzigenCodezeile

berechnen?

NEG

$0,5

,3

d)

WasistderUnterschiedzw

ischendenBefehlenMU

LundMU

LU?

•MU

L:Quell-

undZieloperandenhabenjeweils

64Bit

•MU

LU:Die

Quelloperandenhabenjeweils

64Bit,derZieloperandhat128

Bit.Die

oberen

64

BitdesErgebnisse

swerden

imSpezialregisterrH

abgelegt.

68

2Asse

mblerprogrammierung

ArithmetischeBefehle

aufGleitkommazahlen

Befehl

Operanden

Name/Aktion

Definition

FADD

$X,$

Y,$Z

Floatingpointadd

$X

f0 64(f 6

4($Y)

+f 6

4($Z)

)

FSUB

$X,$

Y,$Z

Floatingpointsu

btract

$X

f0 64(f 6

4($Y)�

f 64($Z)

)

FMUL

$X,$

Y,$Z

Floatingpointmultiplication

$X

f0 64(f 6

4($Y)

·f64($Z)

)

FDIV

$X,$

Y,$Z

Floatingpointdivide

$X

f0 64(f 6

4($Y)

/f 6

4($Z)

)

FSQR

T$X

,$Z

Square

root

$X

f0 64(p

f 64($Z)

)

a)

GebenSie

MMIX-B

efehle

an,die

⇡=

3.14

15in

Registeraablegen.

SET

a,31

415

FLOT

a,a

SET

buf,

1000

0

FLOT

buf,

buf

FDIV

a,a,

buf

2.3

MMIX

Befehle

79

Zug

riffau

fSpez

ialreg

ister

Befehl

Operanden

Name/Aktion

Definition

GET

$X,Z

Getva

lueofsp

ecialp

urposeregister

$X

r[Z]

PUT

X,$Z

Putva

lueto

specialp

urposeregister

r[X]

$Z

X,Z

Putim

med.va

lueto

spec.purp.reg.

r[X]

u0 64(u

(Z))

a)

TragenSie

innachfolgenderBefehlsse

quenzBefehle

zurBerechnungderFest-

kommadivisionidi

vide

nd/d

ivis

orein

und

speichern

Sie

dasErgebnis

an

der

MarkeQu

otie

ntunddenDivisionsrest

anderMarkeRe

main

derab.

LOC

Data

_Seg

ment

GREG

@

Divi

dend

OCTA

7

Divi

sor

OCTA

3

Quot

ient

OCTA

Rema

inde

rOC

TA

divi

dend

IS$0

divi

sor

IS$1

quot

ient

IS$2

rema

inde

rIS

$3

LOC

#100

Main

LDO

divi

dend

,Div

iden

d

LDO

divi

sor,

Divi

sor

DIV

quot

ient

,div

iden

d,di

viso

r

GET

rema

inde

r,rR

STO

quot

ient

,Quo

tien

t

STO

rema

inde

r,Re

main

der

TRAP

0,Ha

lt,0

66

2Assemblerprogrammierung

DIV

Divide;signed,withove

rflow

$X

s0 64(b

s($Y

)/s($Z

)c)

$X,$

Y,$Z

(case

$Z6=

0)rR

s0 64(s($Y

)%

s($Z

))

$X,$

Y,Z

Divideim

mediate;signed,withovf.

$X

u0 64(0

)

(case

$Z=

0)rR

$Y

DIVU

$X,$

Y,$Z

Divideunsigned;noove

rflow;

$X

u0 128(bu

(rD$

Y)/u($Z)c)

(case

u($Z)

>u(rD)

)rR

u0 128(u(rD$

Y)%

u($Z)

)

Divideunsigned;noove

rflow;

$X

rD

noove

rflow

(case

u($Z)

u(rD)

)rR

$Y

$X,$

Y,Z

Divideunsignedim

mediate;

$X

u0 128(bu

(rD$

Y)/u

(Z)c

)

noove

rflow;(case

u(Z

)>

u(rD)

)rR

u0 128(u(rD$

Y)%

u(Z

))

Divideunsignedim

medediate;

$X

rD

noove

rflow

(case

u(Z

)

u(rD)

)rR

$Y

a)

Inwelchem

Wertebereich

können

die

Direktoperanden

beiden

Arithmetischen

Befehlenliegen?

0...2

55so

wohlfürvo

rzeichenlose

alsauchfürvo

rzeichenbehaftete

Operationen.

b)

Kannmitdem

ADDBefehl3

+5in

einereinzigenCodezeile

berechnetwerden?

Nein,daderAD

D-Befehlnureine

nDirektoperandenunterstützt,muss

derzw

eite

Operandzu

vorin

ein

Allzweckregistergeladenwerden.

c)

Wie

kannman

5�

3in

einereinzigenCodezeile

berechnen?

NEG

$0,5

,3

d)

WasistderUnterschiedzw

ischendenBefehlenMU

LundMU

LU?

•MU

L:Quell-

undZieloperandenhabenjeweils

64Bit

•MU

LU:Die

Quelloperandenhabenjeweils

64Bit,derZieloperandhat128

Bit.Die

oberen

64

BitdesErgebnisse

swerden

imSpezialregisterrH

abgelegt.

Ari

thm

eti

sc

he

Be

feh

le (

Fe

stk

om

ma

)

Ari

thm

eti

sc

he

Be

feh

le (

Gle

itk

om

ma

)

Um

wa

nd

lun

g F

estk

om

ma

<->

Gle

itk

om

ma

Sp

ezia

lre

gis

ter

Page 18: Bachelorpr fung Modul Computertechnik · vertrauens rztliches Attest - ausgestellt am Pr fungstag - ist unverz glich nachzureichen. Wird die Pr fung hingegen in Kenntnis der gesundheitlichen

18

2.3

MMIX

Befehle

61

Direktoperandin

Registerschreiben

Befehl

Operanden

Name/Aktion

Definition

SETL

$X,Y

ZSetto

low

wyde

$X

u0 64(u

(YZ)

)

SETM

L$X

,YZ

Setto

med.low

wyd

e$X

u0 64(u

(YZ⌧

16))

SETM

H$X

,YZ

Setto

med.highwyde

$X

u0 64(u

(YZ⌧

32))

SETH

$X,Y

ZSetto

highwyde

$X

u0 64(u

((YZ⌧

48))

INCL

$X,Y

ZIncrease

bylow

wyde

$X

u0 64(u

($X)

+u(YZ)

)

INCM

L$X

,YZ

Inc.bymed.low

wyde

$X

u0 64(u

($X)

+u(YZ⌧

16))

INCM

H$X

,YZ

Inc.bymed.highwyd

e$X

u0 64(u

($X)

+u(YZ⌧

32))

INCH

$X,Y

ZIncrease

byhighwyd

e$X

u0 64(u

($X)

+u(YZ⌧

48))

a)

GebenSiedieBefehlean,mitdenenSieausschließlichdurchdieVerw

endungvon

Direktoperandendie

Zahl0x0

12345

6789

ABCD

EFin

Register$0

schreiben.

SETH

$0,#

123

INCM

H$0

,#45

67

INCM

L$0

,#89

AB

INCL

$0,#

CDEF

74

2Assemblerprogrammierung

LogischeOperationenaufBit-E

bene

Befehl

Operanden

Name/Aktion

Definition

AND

$X,$

Y,$Z

BitwiseAND

$X

$Y&$Z

$X,$

Y,Z

BitwiseANDim

mediate

$X

$Y&

u0 64(u(Z

))

ANDN

$X,$

Y,$Z

BitwiseANDNOT

$X

$Y&⇠

$Z

$X,$

Y,Z

Bitww

ANDNOTim

med.

$X

$Y&⇠

u0 64(u(Z

))

ANDN

L$X

,YZ

Bitw.ANDNOTlow

wyd

e$X

$X&⇠

u0 64(u(YZ)

)

ANDN

ML$X

,YZ

Bw.ANDNOTmed.l.wd.

$X

$X&⇠

(u0 64(u(YZ)

)⌧

16)

ANDN

MH$X

,YZ

Bw.ANDNOTmed.h.wd.

$X

$X&⇠

(u0 64(u(YZ)

)⌧

32)

ANDN

H$X

,YZ

Bw.ANDNOThighwyd

e$X

$X&⇠

(u0 64(u(YZ)

)⌧

48)

NAND

$X,$

Y,$Z

BitwiseNOTAND

$X ⇠

($Y

&$Z

)

$X,$

Y,Z

BitwiseNOTANDim

med.

$X ⇠

($Y

&u0 64(u(Z

)))

OR$X

,$Y,

$ZBitwiseOR

$X

$Y|$

Z

$X,$

Y,Z

BitwiseORim

mediate

$X

$Y|u

0 64(u(Z

))

ORL

$X,Y

ZBitwiseORlow

wyd

e$X

$X|u

0 64(u(YZ)

)

ORML

$X,Y

ZBitw.ORmed.low

wyd

e$X

$X|(

u0 64(u(YZ)

)⌧

16)

ORMH

$X,Y

ZBitw.ORmed.highwyd

e$X

$X|(

u0 64(u(YZ)

)⌧

32)

ORH

$X,Y

ZBitwiseORhighwyd

e$X

$X|(

u0 64(u(YZ)

)⌧

48)

ORN

$X,$

Y,$Z

BitwiseORNOT

$X

$Y|⇠

$Z

$X,$

Y,Z

BitwiseORNOTim

mediate

$X

$Y|⇠

u0 64(u(Z

))

NOR

$X,$

Y,$Z

BitwiseNOTOR

$X ⇠

($Y

|$Z)

$X,$

Y,Z

BitwiseNOTORim

mediate

$X ⇠

($Y

|u0 64(u(Z

)))

XOR

$X,$

Y,$Z

BitwiseXOR

$X

$Y⌦$Z

$X,$

Y,Z

BitwiseXORim

mediate

$X

$Y⌦

u0 64(u(Z

))

NXOR

$X,$

Y,$Z

BitwiseNOTXOR

$X ⇠

($Y⌦$Z

)

$X,$

Y,Z

Bitw.NOTXORim

mediate

$X ⇠

($Y⌦

u0 64(u(Z

)))

2.3

MMIX

Befehle

81

Verzw

eigun

gsb

efeh

le

Unb

edingte

Verzw

eigun

g

Befehl

Operanden

Name/Aktion

Definition

JMP

XYZ

Jump

@

u0 64(u(@

)+

4·s

(XYZ

))

Bed

ingte

Verzw

eigun

gen

Befehl

Operanden

Name/Aktion

Definition

BZ$X

,YZ

Branchifzero

s($X

)=

0)

@

u0 64(u(@

)+

4·s

(YZ)

)

PBZ

$X,Y

ZProbable

br.ifzero

s($X

)=

0)

@

u0 64(u(@

)+

4·s

(YZ)

)

BNZ

$X,Y

ZBranchifnonzero

s($X

)6=

0)

@

u0 64(u(@

)+

4·s

(YZ)

)

PBNZ

$X,Y

ZProb.br.ifnonzero

s($X

)6=

0)

@

u0 64(u(@

)+

4·s

(YZ)

)

BN$X

,YZ

Branchifnegative

s($X

)<

0)

@

u0 64(u(@

)+

4·s

(YZ)

)

PBN

$X,Y

ZProb.br.ifnegative

s($X

)<

0)

@

u0 64(u(@

)+

4·s

(YZ)

)

BNN

$X,Y

ZBranchifnonneg.

s($X

)�

0)

@

u0 64(u(@

)+

4·s

(YZ)

)

PBNN

$X,Y

ZProb.br.ifnonneg.

s($X

)�

0)

@

u0 64(u(@

)+

4·s

(YZ)

)

BP$X

,YZ

Branchifpositive

s($X

)>

0)

@

u0 64(u(@

)+

4·s

(YZ)

)

PBP

$X,Y

ZProb.br.ifpositive

s($X

)>

0)

@

u0 64(u(@

)+

4·s

(YZ)

)

BNP

$X,Y

ZBranchifnonpositive

s($X

)

0)

@

u0 64(u(@

)+

4·s

(YZ)

)

PBNP

$X,Y

ZProb.br.ifnonpos.

s($X

)

0)

@

u0 64(u(@

)+

4·s

(YZ)

)

BEV

$X,Y

ZBranchifeve

ns($X

)%

2=

0)

@

u0 64(u(@

)+4·s(

YZ))

PBEV

$X,Y

ZProb.branchifeve

ns($X

)%

2=

0)

@

u0 64(u(@

)+4·s(

YZ))

BOD

$X,Y

ZBranchifodd

s($X

)%

2=

1)

@

u0 64(u(@

)+4·s(

YZ))

PBOD

$X,Y

ZProb.branchifodd

s($X

)%

2=

1)

@

u0 64(u(@

)+4·s(

YZ))

84

2Assemblerprogrammierung

Befehle

fürFunktionsaufrufe

Befehl

Operanden

Name/Aktion

Definition

GO

$X,$

Y,$Z

Goto

location

$X

u0 64(u(@

)+

4));

@

u0 64(u($Y)

+u($Z)

)

$X,$

Y,Z

Goto

locationim

mediate

$X

u0 64(u(@

)+

4));

@

u0 64(u($Y)

+u(Z

))

a)

WasistderHaupt-Unterschiedzw

ischendem

JMP-Befehlu

nddem

GO-B

efehl?

•JM

PbenutztRelative

Adressierung,währendGO

Abso

lute

Adressierung

verw

endet.

•GO

speichertdie

Rücksp

rungadresseab,JM

Pnicht.

b)

Wosp

eichern

GO-B

efehle

die

Rücksp

rungadresseab?

Die

Rücksp

rungadressewirdin

RegisterXabgelegt.

c)

Wasistdie

‘‘Rücksp

rungadresse’’?

Die

Rücksp

rungadresseistdie

AdressedesnächstenBefehlsworts.

WennGO

an

einerdurchvierteilb

arenAdresse

asteht,dannistdie

Rücksp

rungadresse

a+

4.

d)

WennGO

Abso

lute

Adressierungve

rwendet:Wie

wirddie

Abolute

Adresse(64Bit)

im32BitbreitenBefehlswortabgelegt?

Genauso

wie

esallgemein

beiM

arkengemachtwird:DerAsse

mblertransform

iert

die

AdressederMarkein

eineBasisa

dresse,die

inRegisterYgesp

eichertwird,

undeinem

Offse

t,derin

RegisterZoderim

DirektoperandenZgesp

eichertwird.

e)

GebenSie

denBefehlan,mitdem

Sie

die

Funktionfk

taufrufenunddie

Rück-

sprungadressein

Register0ablegen.

GO$0

,fkt

66

2Assemblerprogrammierung

DIV

Divide;signed,withove

rflow

$X

s0 64(b

s($Y

)/s($Z

)c)

$X,$

Y,$Z

(case

$Z6=

0)rR

s0 64(s($Y

)%

s($Z

))

$X,$

Y,Z

Divideim

mediate;signed,withovf.

$X

u0 64(0

)

(case

$Z=

0)rR

$Y

DIVU

$X,$

Y,$Z

Divideunsigned;noove

rflow;

$X

u0 128(bu

(rD$

Y)/u($Z)c)

(case

u($Z)

>u(rD)

)rR

u0 128(u(rD$

Y)%

u($Z)

)

Divideunsigned;noove

rflow;

$X

rD

noove

rflow

(case

u($Z)

u(rD)

)rR

$Y

$X,$

Y,Z

Divideunsignedim

mediate;

$X

u0 128(bu

(rD$

Y)/u

(Z)c

)

noove

rflow;(case

u(Z

)>

u(rD)

)rR

u0 128(u(rD$

Y)%

u(Z

))

Divideunsignedim

medediate;

$X

rD

noove

rflow

(case

u(Z

)

u(rD)

)rR

$Y

a)

Inwelchem

Wertebereich

können

die

Direktoperanden

beiden

Arithmetischen

Befehlenliegen?

0...2

55so

wohlfürvo

rzeichenlose

alsauchfürvo

rzeichenbehaftete

Operationen.

b)

Kannmitdem

ADDBefehl3

+5in

einereinzigenCodezeile

berechnetwerden?

Nein,daderAD

D-Befehlnureine

nDirektoperandenunterstützt,muss

derzw

eite

Operandzu

vorin

ein

Allzweckregistergeladenwerden.

c)

Wie

kannman

5�

3in

einereinzigenCodezeile

berechnen?

NEG

$0,5

,3

d)

WasistderUnterschiedzw

ischendenBefehlenMU

LundMU

LU?

•MU

L:Quell-

undZieloperandenhabenjeweils

64Bit

•MU

LU:Die

Quelloperandenhabenjeweils

64Bit,derZieloperandhat128

Bit.Die

oberen

64

BitdesErgebnisse

swerden

imSpezialregisterrH

abgelegt.

Lo

gis

ch

e O

pe

rati

on

en

Ve

rzw

eig

un

ge

n

Fu

nk

tio

nsa

ufr

uf

2.3

MMIX

Befehle

81

Verzw

eigun

gsb

efeh

le

Unb

edingte

Verzw

eigun

g

Befehl

Operanden

Name/Aktion

Definition

JMP

XYZ

Jump

@

u0 64(u(@

)+

4·s

(XYZ

))

Bed

ingte

Verzw

eigun

gen

Befehl

Operanden

Name/Aktion

Definition

BZ$X

,YZ

Branchifzero

s($X

)=

0)

@

u0 64(u(@

)+

4·s

(YZ)

)

PBZ

$X,Y

ZProbable

br.ifzero

s($X

)=

0)

@

u0 64(u(@

)+

4·s

(YZ)

)

BNZ

$X,Y

ZBranchifnonzero

s($X

)6=

0)

@

u0 64(u(@

)+

4·s

(YZ)

)

PBNZ

$X,Y

ZProb.br.ifnonzero

s($X

)6=

0)

@

u0 64(u(@

)+

4·s

(YZ)

)

BN$X

,YZ

Branchifnegative

s($X

)<

0)

@

u0 64(u(@

)+

4·s

(YZ)

)

PBN

$X,Y

ZProb.br.ifnegative

s($X

)<

0)

@

u0 64(u(@

)+

4·s

(YZ)

)

BNN

$X,Y

ZBranchifnonneg.

s($X

)�

0)

@

u0 64(u(@

)+

4·s

(YZ)

)

PBNN

$X,Y

ZProb.br.ifnonneg.

s($X

)�

0)

@

u0 64(u(@

)+

4·s

(YZ)

)

BP$X

,YZ

Branchifpositive

s($X

)>

0)

@

u0 64(u(@

)+

4·s

(YZ)

)

PBP

$X,Y

ZProb.br.ifpositive

s($X

)>

0)

@

u0 64(u(@

)+

4·s

(YZ)

)

BNP

$X,Y

ZBranchifnonpositive

s($X

)

0)

@

u0 64(u(@

)+

4·s

(YZ)

)

PBNP

$X,Y

ZProb.br.ifnonpos.

s($X

)

0)

@

u0 64(u(@

)+

4·s

(YZ)

)

BEV

$X,Y

ZBranchifeve

ns($X

)%

2=

0)

@

u0 64(u(@

)+4·s(

YZ))

PBEV

$X,Y

ZProb.branchifeve

ns($X

)%

2=

0)

@

u0 64(u(@

)+4·s(

YZ))

BOD

$X,Y

ZBranchifodd

s($X

)%

2=

1)

@

u0 64(u(@

)+4·s(

YZ))

PBOD

$X,Y

ZProb.branchifodd

s($X

)%

2=

1)

@

u0 64(u(@

)+4·s(

YZ))

Dir

ek

top

era

nd

en

Page 19: Bachelorpr fung Modul Computertechnik · vertrauens rztliches Attest - ausgestellt am Pr fungstag - ist unverz glich nachzureichen. Wird die Pr fung hingegen in Kenntnis der gesundheitlichen

19

Konzeptpapier

Verwenden Sie dieses Blatt für Notizen. Falls Inhalte dieses Blatts bewertet werden

sollen, müssen Sie das auf diesem Blatt und bei der jeweiligen Teilaufgabe kenntlich

machen.

Page 20: Bachelorpr fung Modul Computertechnik · vertrauens rztliches Attest - ausgestellt am Pr fungstag - ist unverz glich nachzureichen. Wird die Pr fung hingegen in Kenntnis der gesundheitlichen

20 Konzeptpapier

Konzeptpapier

Verwenden Sie dieses Blatt für Notizen. Falls Inhalte dieses Blatts bewertet werden

sollen, müssen Sie das auf diesem Blatt und bei der jeweiligen Teilaufgabe kenntlich

machen.