Bachelorprüfung Modul Computertechnik
|
|
- Hennie Dresdner
- vor 5 Jahren
- Abrufe
Transkript
1 Prüfungsfähigkeit: Bachelorprüfung Modul Computertechnik Computersysteme Probeklausur 2 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, - nicht erschienen" gemeldet und - unabhängig von einem Rücktrittsantrag - nicht bewertet. Weitere Hinweise: - Die Prüfungsdauer beträgt 6 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 2 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. Bitte ausfüllen: Name: Vorname: Matrikel-Nr.: Unterschrift: Hörsaal: Reihe: Platz: Fakultät: EI EDU BWL INF Hier Etikett einkleben (Prüfungsaufsicht): Punkte: Aufg. Aufg. 2 Aufg. 3 Aufg. 4 Aufg. 5 Aufg. 6 Summe
2 Übersicht Komponenten Computer-Systeme (5 Punkte) 3 2 Zahldarstellung (4 Punkte) 3 3 MMIX (26 Punkte) 4 3. Assembler- und Loaderbefehle (2 Punkte) MMIX Befehlsformat (2 Punkte) Lade- und Speicherbefehle Alignment (4 Punkte) Arithmetische Befehle (6 Punkte) Logische Operationen, Spezialregister (3 Punkte) Verzweigungen (4 Punkte) Funktionsaufrufe/Stack (5 Punkte) Mikroarchitektur (22 Punkte) 9 4. MMIX-Datenpfad (8 Punkte) Datenpfad- und Steuerungsentwurf (4 Punkte)... Entwurf eines Moore-Automaten (9 Punkte) ROM basierte Steuerung (5 Punkte) Pipelining (6 Punkte) 4 6 Cache (7 Punkte) 5
3 3 Komponenten Computer-Systeme (5 Punkte) Was ist eine Festplatten-Spur? (2 Punkte) Kreis, den die Schreib-/Leseköpfe auf der Platte abfahren, wenn sich bei rotierender Platte die Position des Schreib-/Lesekopfs nicht ändert. b) Welche der Busse Adressbus, Datenbus, Steuerbus sind unidirektional, welche bidirektional? (DMA wird nicht betrachtet.) (3 Punkte) unidirektional: Adressbus, Steuerbus bidirektional: Datenbus 2 Zahldarstellung (4 Punkte) Kodieren Sie 7.25 als Bit breite Gleitkommazahl und tragen Sie das Bitmuster in die vorgegebene Abbildung ein. (4 Punkte) 7.25:. =. 2 4 s = e K =4 e = K + 4 = = 27 = f =
4 4 3 MMIX 3 MMIX (26 Punkte) Hinweis: Sie können in allen Aufgaben buf, buf,... als Pufferregister verwenden. 3. Assembler- und Loaderbefehle (2 Punkte) Geben Sie die Anweisungen an, mit denen Sie den Namensraum Daten: anlegen und in diesem Namensraum die Register und 2 durch die Namen x und y ansprechbar machen. (2 Punkte) PREFIX Daten: pro falscher Zeile x IS $ Pkt. Abzug, jedoch y IS $2 mind. Pkt. 3.2 MMIX Befehlsformat (2 Punkte) Betrachten Sie die rechts angegebene Übersetzungs-Tabelle. Gegeben ist folgender Programmcode: Start DIV $,$2,3 SUB $,$,3 BZ $,Ende SUB i,i, JMP Start Geben Sie hexadezimal das Befehlswort an, in das der Befehl JMP Start übersetzt wird. (2 Punkte) xffffffc ( Pkt. auf Opcode, Pkt. auf FFFFFC)
5 3.3 Lade- und Speicherbefehle Alignment 5! x.. x.. x2.. x3.. x4.. x5.. x6.. x7.. x8.. x9.. xa.. xb.. xc.. xd.. xe.. xf..! x.. x.. x..2 x..3 x..4 x..5 x..6 x..7 TRAP 5ν FCMP ν FUN ν FEQL ν FADD 4ν FIX 4ν FSUB 4ν FIXU 4ν FLOT[I] 4ν FLOTU[I] 4ν SFLOT[I] 4ν SFLOTU[I] 4ν FMUL 4ν FCMPE 4ν FUNE ν FEQLE 4ν FDIV 4ν FSQRT 4ν FREM 4ν FINT 4ν MUL[I] ν MULU[I] ν DIV[I] 6ν DIVU[I] 6ν ADD[I] ν 2ADDU[I] ν CMP[I] ν SL[I] ν BN[B] ν+π BNN[B] ν+π PBN[B] 3ν-π PBNN[B] 3ν-π CSN[I] ν ADDU[I] ν 4ADDU[I] ν CMPU[I] ν SLU[I] ν BZ[B] ν+π BNZ[B] ν+π PBZ[B] 3ν-π PBNZ[B] 3ν-π CSZ[I] ν SUB[I] ν 8ADDU[I] ν NEG[I] ν SR[I] ν BP[B] ν+π BNP[B] ν+π PBP[B] 3ν-π PBNP[B] 3ν-π CSP[I] ν SUBU[I] ν 6ADDU[I] ν NEGU[I] ν SRU[I]ν BOD[B] ν+π BEV[B] ν+π PBOD[B] 3ν-π PBEV[B] 3ν-π CSOD[I] ν CSNN[I] ν ZSN[I] ν CSNZ[I] ν ZSZ[I] ν CSNP[I] ν ZSP[I] ν CSEV[I] ν ZSOD[I] ν ZSNN[I] ν ZSNZ[I] ν ZSNP[I] ν ZSEV[I] ν LDB[I] µ+ν LDBU[I] µ+ν LDW[I] µ+ν LDWU[I] µ+ν LDT[I] µ+ν LDTU[I] µ+ν LDO[I] µ+ν LDOU[I] µ+ν LDSF[I] µ+ν LDHT[I] µ+ν CSWAP[I] 2µ+2ν LDUNC[I] µ+ν LDVTS[I] ν PRELD[I] ν PREGO[I] ν GO[I] 3ν STB[I] µ+ν STBU[I] µ+ν STW[I] µ+ν STWU[I] µ+ν STT[I] µ+ν STTU[I] µ+ν STO[I] µ+ν STOU[I] µ+ν STSF[I] µ+ν STHT[I] µ+ν STCO[I] µ+ν STUNC[I] µ+ν SYNCD[I] ν PREST[I] ν SYNCID[I] ν PUSHGO[I] 3ν OR[I] ν ORN[I] ν NOR[I] ν XOR[I] ν AND[I] ν ANDN[I] ν NAND[I] ν NXOR[I] ν BDIF[I] ν WDIF[I] ν TDIF[I] ν ODIF[I] ν MUX[I] ν SADD[I] ν MOR[I] ν MXOR[I] ν SETH ν SETMH ν SETML ν SETL ν INCH ν INCHM ν INCML ν INCL ν ORH ν ORMH ν ORML ν ORL ν ANDNH ν ANDNMH ν ANDNML ν ANDNL ν JMP[B] ν PUSHJ[B] ν GETA[B] ν PUT[I] ν POP 3ν RESUME 5ν [UN]SAVE 2µ+ν SYNC ν SWYM ν GET ν TRIP 5ν x..8 x..9 x..a x..b x..c x..d x..e x..f x.. x.. x2.. x3.. x4.. x5.. x6.. x7.. x8.. x9.. xa.. xb.. xc.. xd.. xe.. xf..! 3.3 Lade- und Speicherbefehle Alignment (4 Punkte) Nehmen Sie folgende Speicherbelegung an: LOC Data_Segment TETRA OCTA #8328BC #A3CD8BD765BAD8 Geben Sie hexadezimal alle Bit des Registers nach Ausführung der nachfolgend angegebenen Befehle an. (2 Punkte) LDW $,$254,: LDTU $,$254,5: xffff FFFF FFFF CD8B x D765 BAD8
6 6 3 MMIX In folgendem Programmcode wird XXX XXXXXXXX als Platzhalter für einen einzelnen Befehl verwendet: LOC Data_Segment $254 Data_Segment A TETRA # B WYDE #8765 C TETRA #ABCD23 LOC # Main LDW $,C XXX XXXXXXXX TRAP,Halt, 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 $,A: xcd STTU $,$254,3: xffff ABCD 3.4 Arithmetische Befehle (6 Punkte) Es soll das Volumen einer Kugel mittels V = 4 3 r 3 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) FLOT buf,4 /2 Pkt. FLOT buf2,3 /2 Pkt. FDIV buf,buf,buf2 Pkt. FMUL buf,buf,r insges. 2 Pkt.; pro FMUL buf,buf,r falscher Zeile - Pkt. FMUL buf,buf,r mind. Punkte FMUL buf,buf,pi Pkt. STO buf,v Pkt.
7 3.6 Verzweigungen Logische Operationen, Spezialregister (3 Punkte) Geben Sie den MMIX-Code an, mit dem Sie in Spezialregister ra das Bit Nr. 9 auf setzen. (3 Punkte) GET buf,ra Pkt. ORL buf,#2 Pkt. PUT ra, buf Pkt. 3.6 Verzweigungen (4 Punkte) 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 <= ) { x = ; } else { x = ; } MMIX-Code: BP x,pos Pkt. SET x, /2 Pkt. JMP Ende /2 Pkt. Pos SET x, /2 Pkt. Ende Marken: /2 Pkt.
8 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 $ Gesichertes Register $2 Gesichertes Register $3 Parameter Parameter 2 a) Geben Sie den MMIX-Code an, mit dem Sie das im Register befindliche Ergebnis auf dem Stack ablegen, die Register, 2 und 3 wiederherstellen, den Stackpointer anpassen und zurück zum Funktionsaufrufer springen (Rücksprungadr. in Reg. ). (5 Punkte) STO $,:SP,4*8 Pkt. LDO $,:SP, von 2 Pkt. ausgehend LDO $2,:SP,*8 für jede falsche Zeile LDO $3,:SP,2*8 - Pkt. ADD :SP,:SP,4*8 Pkt. GO $,$, Pkt.
9 4.2 Datenpfad- und Steuerungsentwurf 9 4 Mikroarchitektur (22 Punkte) 4. MMIX-Datenpfad (8 Punkte) Erweitern Sie nachfolgende Schaltung so, dass beim Befehl GO $,$253, die Rücksprungadresse in Register abgelegt werden kann. (4 Punkte) 4 Add BZ Adresse Befehls- Speicher Befehl 32 BR Allzw.-Reg. Schrei- ben Schreib- Daten X Y Z $Z 2 3 OR o o2 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 = berechnet werden kann. (4 Punkte) BZ Adresse Befehls- Speicher Befehl 32 BR Allzweck- Registerblock Schreiben Schreib- Daten X Y Z $Z 2 3 OR o o o3
10 4 Mikroarchitektur 4.2 Datenpfad- und Steuerungsentwurf (4 Punkte) Entwurf eines Moore-Automaten (9 Punkte) Für nachfolgend angegebenen Datenpfad soll eine Steuerung entwickelt werden. r/w r/w ADD Schreiben Adresse Speicher Daten Basisadresse x Offset Ergebnisadresse 8 Off- set ADD ADD ADD Offset B Fertig? D null clk_mw Sum- me Zähler fertig Steuerung a a / b b Die Steuerung soll wie folgt funktionieren: In den Zuständen und sollen Register Summe, Zähler und Offset mit initialisiert werden. ( Punkt) In Zustand soll die Speicheradresse Basisadresse x + Offset ausgelesen werden. Hat das ausgelesene Datum den Wert, soll in Zustand 2 verzweigt werden. Anderenfalls soll in Zustand 4 verzweigt werden. (,5 Punkte) Beim Übergang von Zustand 2 auf 3 soll der in Register Offset gespeicherte Wert um 8 erhöht werden. ( Punkt) In Zustand 3 soll das im Speicher an Adresse Basisadresse x + Offset abgelegte Datum zur Generierung des Signals null bereitgestellt werden. (,5 Punkte) Hat in Zustand 3 das Signal null den Wert, soll in Zustand 4 verzweigt werden. Anderenfalls in Zustand 2, falls fertig = bzw. Zustand 6, falls fertig =. (,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. (,5 Punkte).
11 4.2 Datenpfad- und Steuerungsentwurf Ist in Zustand 5 fertig =, soll in Zustand 2 verzweigt werden. Anderenfalls in Zustand 6. ( 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. ( Punkt) Vervollständigen Sie den nachfolgenden Moore-Automat so, dass er die Hardware- Schaltung in gewünschter Weise steuert. Legen Sie Leitungen, deren Pegel egal ist auf. (9 Punkte) immer null = immer 2 3 Initialisierung Initialisierung Nächster Nächster r/w r/w r/w r/w clk_mw clk_mw clk_mw clk_mw null = fertig = null= && fertig = null = null = && fertig = Mittelwert Mittelwert Schreiben Schreiben/Ende r/w r/w r/w r/w clk_mw clk_mw clk_mw clk_mw immer fertig = immer immer
12 2 4 Mikroarchitektur ROM basierte Steuerung (5 Punkte) Nachfolgende Abbildung zeigt einen anderen Moore-Automaten. null = xy/res x/y clk_x clk_y clk_res xy/res x/y clk_x clk_y clk_res null = immer fertig = xy/res x/y clk_x clk_y clk_res xy/res x/y clk_x clk_y clk_res fertig = immer
13 4.2 Datenpfad- und Steuerungsentwurf 3 Der abgebildete Moore-Automat soll mit folgender ROM-basierten Steuerung implementiert werden: xy/res x/y clk_x clk_y clk_res ROM Speicher 3 2 D Q D Q D2 Q2 clk fertig null 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 und des ROM-Speichers. Adresse Daten
14 4 5 Pipelining 5 Pipelining (6 Punkte) Gegeben ist der bekannte Pipelining-Datenpfad. Sp.-Puls 4 BZ Add Adresse Befehls- Speicher Daten Clk BR Reg.-Schreiben Ergebnisauswahl ES Sp.-Schreiben Reg.-Puls Zugriffs-Art 2 SP Steuerung ALU-Funktion Direktoperand AF 32 X-Auswahl Schreib- Daten Lese Daten 32 Schreiben/ Lese- Lesen Daten 8..5 Lesen Lesen $Z Registerblock Schreiben 8 Clk2 Lese- Daten $Z $Z Dir Op. Clk3 8 ALU ES SP Erg ALU 2 Zugriffs- Art Schreib- Daten Adr. Clk4 Daten- Speicher Schreiben Lese- Daten ES Lese Dat. Erg ALU X X X Welche Anforderung muss man an die relativen Ausführungsgeschwindigkeiten der einzelnen Stufen stellen, damit der Durchsatz maximal wird? (2 Punkte) Die Stufen müssen alle gleich lang sein. Betrachten Sie folgenden Ausschnitt aus einem MMIX-Programm: DIV $2,$2,$ Zeile_ SUB $,$2,2 Zeile_2 MUL $3,$2,$ Zeile_3 STO $,:Erg Zeile_4 b) Geben Sie alle auftretenden Datenkonflikte an. (4 Punkte). Datenkonflikt zwischen DIV Zeile und SUB Zeile 2 wegen Register $2. 2. Datenkonflikt zwischen DIV Zeile und MUL Zeile 3 wegen Register $2. 3. Datenkonflikt zwischen SUB Zeile 2 und MUL Zeile 3 wegen wegen Register $. 4. Datenkonflikt zwischen SUB Zeile 2 und STO Zeile 4 wegen Register $.
15 5 6 Cache (7 Punkte) Nachfolgende Abbildung zeigt den bekannten Direktabgebildeten MMIX-Cache. k Bits Schlüssel f Bits Rahmen-Nr. b Bits Byte-Auswahl k f Rahmen (frame) b v v v v v v v f 2 - v k Bits 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). Adressierung der Zeile bzw. des Rahmens mit der Rahmen-Nr. 2. Vergleich des Schlüssels mit dem Tag. b) Wie groß ist k, wenn jeder Rahmen 4 kbyte groß ist und der Cache insgesamt 2 MB an Daten aufnehmen kann? (3 Punkte) ld(4k) = 2; ) b = 2. ld(2 MB / 4 kb) = 9; ) f = 9. k = = 43. c) Welcher Rahmen wird bei Adresse x ausgewählt, wenn k = 36 und b = 2? Geben Sie den Wert hexadezimal an. (2 Punkte) x23
16 Load byte unsigned Load byte uns. immed. Load wyde Load wyde immediate Load wyde unsigned Load wyde uns. immed. Load tetra Load tetra immediate Load tetra unsigned Load tetra uns. immed. Load octa Load octa immediate Load octa unsigned Load octa uns. immed.,,$z,,z,,$z,,z,,$z,,z,,$z,,z,,$z,,z,,$z,,z,,$z,,z LDB LDBU LDW LDWU LDT LDTU LDO 72LDOU Shift left immediate; with ovf. Shift left uns., no overflow Shift left uns. immed.; no ovf. Shift right; fill with sign Shift right imm.; fill with sign Shift right unsigned; fill with Shift right uns. imm.; fill w.,,$z,,z,,$z,,z,,$z,,z SLU SR SRU Shift left; with overflow,,z SL,,$Z Befehl Operanden Name/Aktion Schieben Schiebe-Befehle Load byte Load byte immediate,,$z,,z Befehl Operanden Name/Aktion Laden aus Speicher Daten vom Speicher in ein Register laden Lade- und Speicherbefehle M8 [u() + u($z)] M8 [u() + u(z)] u (u(m4 [u() + u($z)])) u (u(m4 [u() + u(z)])) s (s(m4 [u() + u($z)])) s (s(m4 [u() + u(z)])) u (u(m2 [u() + u($z)])) u (u(m2 [u() + u(z)])) s (s(m2 [u() + u($z)])) s (s(m2 [u() + u(z)])) u (u(m [u() + u($z)])) u (u(m [u() + u(z)])) s (s(m [u() + u($z)])) s (s(m [u() + u(z)])) u ( u( u ( u( u($z) u(z) u u u($z) s u(z) s u($z)) ) u(z)) ) u ( u( u($z)) ) u() 2u($Z) 2 ) ra ra u (25 ) u ( u( u(z)) ) u(z) u() 2 2 ) ra ra u (25 ) M8 [u() + u($z)] 2 Assemblerprogrammierung M8 [u() + u(z)] ()3... ()3... a),yz,,$z,,z Get address (relativ) Get address (absolute) Get address immed. (absolute) u (u(@) + 4 s(yz)) u (u() + u($z)) u (u() + u(z)) M8 [u() + u(z)] M8 [u() + u(z)] Was ist der Unterschied zwischen dem Befehl LDA und den Ladebefehlen LDB,...? GETA LDA Befehl Operanden Name/Aktion laden Marken auflösen/adressen STOU M4 [u() + u(z)] M4 [u() + u(z)] ()3... ra u (26 ) ra u (26 ) ()3... ra u (26 ) ra u (26 ) M4 [u() + u(z)] s() 23 ) ra s() < 23 ) ra M4 [u() + u(z)] s() 23 ) ra s() < 23 ) ra,,$z Store octa unsigned Store octa uns. imm. Adressen,,Z in ein Register laden Store byte unsigned Store byte uns. imm. ()5... ()5... ()5... ra u (26 ) ra u (26 ) ()5... ra u (26 ) ra u (26 ) M2 [u() + u(z)] s() 25 ) ra s() < 25 ) ra M2 [u() + u(z)] s() 25 ) ra s() < 25 ) ra M2 [u() + u(z)] M2 [u() + u(z)] ()7... ()7... M [u() + u(z)] M [u() + u(z)] M [u() + u($z)] ()7... s() 27 ) ra ra u (26 ) s() < 27 ) ra ra u (26 ) M [u() + u(z)] ()7... s() 27 ) ra ra u (26 ) s() < 27 ) ra ra u (26 ) M8 [u() + u(z)] 2 Assemblerprogrammierung M8 [u() + u(z)],,$z,,z,,$z,,z Store tetra immed.; ovf. Store tetra; with overflow,,$z,,z Store wyde unsigned Store wyde uns. imm. Store wyde immed.; ovf. Store wyde; with overflow Store byte unsigned Store byte uns. imm. Store byte immed.; ovf.,,$z,,z,,z,,$z,,$z,,z,,z Store byte; with overflow 2 Assemblerprogrammierung Store octa Store octa immediate 54 STO STTU STT STWU STW STBU STB,,$Z Befehl Operanden Name/Aktion Schreiben in Speicher Daten vom Register in den Speicher schreiben (speichern) 56 6
17 ,,Z,,$Z,,Z DIV DIVU,,$Z Divide; signed, with overflow (case $Z = ) Divide immediate; signed, with ovf. (case $Z = ) Divide unsigned; no overflow; (case u($z) > u(rd) ) Divide unsigned; no overflow; no overflow (case u($z) u(rd) ) Divide unsigned immediate; no overflow; (case u(z) > u(rd) ) ( $Z)27... ( Z)27... Multiply unsigned; rh Multiply uns. imm.; rh,,$z,,z MULU s ( s()/s($z) ) s ( s() % s($z) ) u () u28 ( u(rd)/u($z) ) u28 ( u(rd) % u($z) ) rd u28 ( u(rd)/u(z) ) u28 ( u(rd) % u(z) ) u28 (u() u($z)) u28 (u() u(z)) rh rh s (u(y) s($z)) s (u(y) u(z)) s(z)) Multiply; signed, with overflow s (s() s($z)) 2 Assemblerprogrammierung Multiply immediate; signed, with ovf. s (s() u(z)) s (u(y),,$z,,z MUL 66 NEGU s (u(y) s($z)) u(y) s($z 263 ) ) ra ra u (25 ) u (u() u($z)) u (u() u(z)) Negate unsigned; no overflow Negate unsigned immed.; no overflow Negate; signed, with overflow,y,$z,y,$z,y,z Subtract unsigned; no overflow Subtract unsigned immed.; no ovf.,,$z,,z u (u() + u($z)) u (u() + u(z)) s (s() s($z)) (s() s($z) < 263 ) (s() s($z) 263 ) ) ra ra u (25 ) s (s() u(z)) (s() s(z) < 263 ) (s() s(z) 263 ) ) ra ra u (25 ) s (s() + s($z)) (s() + s($z) < 263 ) (s() + s($z) 263 ) ) ra ra u (25 ) s (s() + u(z)) (s() + s(z) < 263 ) (s() + s(z) 263 ) ) ra ra u (25 ) Negate immediate; signed, with overflow Subtract immediate; signed, with overflow,,z Subtract; signed, with overflow Add unsigned; no overflow Add unsigned; no overflow Add immediate; signed, with overflow Add; signed, with overflow Name/Aktion,Y,Z NEG SUBU SUB,,$Z,,$Z ADDU,,Z ADD,,$Z BefehlOperanden Arithmetische Befehle auf Festkommazahlen Arithmetische Befehle (Festkomma) Arithmetische Befehle,,Z,,$Z Divide unsigned; no overflow; (case u($z) > u(rd) ) Divide unsigned; no overflow; no overflow (case u($z) u(rd) ) Divide unsigned immediate; no overflow; (case u(z) > u(rd) ) Divide unsigned immedediate; no overflow (case u(z) u(rd) ) Divide; signed, with overflow (case $Z = ) Divide immediate; signed, with ovf. (case $Z = ) s ( s()/s($z) ) s ( s() % s($z) ) u () f ( f () + f ($Z) ) u28 ( u(rd)/u($z) ) u28 ( u(rd) % u($z) ) rd u28 ( u(rd)/u(z) ) u28 ( u(rd) % u(z) ) 2 Assemblerprogrammierung rd,,$z Floating point add,,$z Floating point divide f ( f ()/f ($Z) ) r [Z] a) nachfolgender Befehlssequenz Befehle zur der Festb) Tragen Geben Sie in den Befehl an, mit dem Sie Register dieberechnung Gleitkommazahl 5, kommadivisioni dividend/divisor ein und speichern Sie das Ergebnis an der zuweisen. Marke Quotient und den Divisionsrest an der Marke Remainder ab. FLOT $,5 X,$Z Put value to special purpose register r [X] $Z PUTr () rundet eine Gleitkommazahl in eine Festkommazahl. Das Runden erfolgt wie in X,Z Put immed. value to spec. purp. reg. r [X] u (u(z)) Spezialregister ra eingestellt. a)getwelche,z Aktion führt Operator r () aus? Getder value of special purpose register Spezialregister Befehl Operanden Name/Aktion FIXU Bit. Die oberenconvert Bit floating des Ergebnisses to fixed werden im Spezialregister rh,$z s ( r ( f ($Z) ) ) abgelegt. Zugriff auf Spezialregister without overflow c) Befehl Operanden Name/Aktion Umwandlung Festkomma <-> Gleitkomma Wie kann man 5 3 in einer einzigen Codezeile berechnen? a) Geben Sie MMIX-Befehle an, die = 3.45 in Register a ablegen.,$z Convert fixed to floating f ( s($z) ) FLOT,Z Conv.NEG fixed to float. imm. f ( u(z) ) $,5,3 SET a,345,$z Conv. uns. floating f ( u($z) ) FLOTfixed toa,a FLOTU,Z Conv. uns. fixed to float. f ( u(z) ) SET buf, imm. d) Was ist der Unterschied zwischen FLOT den Befehlen buf,bufmul und MULU? FDIV a,a,buf s ( r ( f ($Z) ) ) Convert floating to fixed 63 5) 2.3 MMIX Befehle 79 FIX,$Z f ($Z) < 2 ) ra ra u (2 MUL: Quell- undwith Zieloperanden overflow haben jeweils Bit 63 5 ($Z) >2 ) MULU: Die Quelloperanden haben jeweils Bit,fder Zieloperand hatra 28 ra u (2 ) Nein, da der ADD-Befehl nur einen Direktoperanden unterstützt, muss der zweite FSQRT,$Z Square root f ( f ($Z) ) Umwandlung Gleitkommazahl Festkommazahl Operand zuvor in ein Allzweckregister geladen werden. FDIV FSUB,,$Z Floating point subtract f ( f () f ($Z) ) 2 Assemblerprogrammierung,,$Z Floating multiplication f ( f () f ($Z) ) b)fmul Kann mit dem ADD Befehl 3 + point 5 in einer einzigen Codezeile berechnet werden? sowohl für vorzeichenlose als auch für vorzeichenbehaftete Operationen. FADD a)befehl In welchem Wertebereich können die Direktoperanden bei den Arithmetischen Operanden Name/Aktion Befehlen liegen? Arithmetische Befehle (Gleitkomma) Arithmetische Befehle auf Gleitkommazahlen 68 DIVU DIV,,$Z,,Z 7
18 Divide unsigned immedediate; no overflow (case u(z) u(rd) ) XYZ Jump Bitwise AND immediate & u ( u(z) ) if zero Wie kann man 5 Bitwise NOT AND Bitwise NOT AND immed.,,$z,,z NAND & & &,,Z Bitwise OR immediate Bitwise OR NOT Bitwise OR NOT immediate Bitwise NOT OR Bitwise NOT OR immediate Bitwise XOR Bitwise XOR immediate Bitwise NOT XOR Bitw. NOT XOR immediate,,$z,,z,,$z,,z,,$z,,z,,$z,,z ORN NOR $Z u ( u(z) ) 48) ( $Z) ( u ( u(z) ) ) ( u ( u(yz) ),YZ,YZ,YZ,YZ PBNP BP BEV PBP,YZ PBOD a) GO Go to location immediate Go to location JMP benutzt Relative Adressierung, während GO Absolute Adressierung Was ist der Haupt-Unterschied zwischen dem JMP-Befehl und dem GO-Befehl?,,Z,,$Z u ( u(@) + 4) u ( u() + u($z) ) u ( u(@) + 4) u ( u() + u(z) ) Prob. branch if odd,yz Prob. branch if even SETMH SETML SETL PBOD a),yz,yz,yz Increase by high wyde Inc. by med. high wyde Inc. by med. low wyde Increase by low wyde Set to high wyde Set to med. high wyde Set to med. low wyde Set tobranch low wyde Prob. if odd 48)) 32)) 6)) u (u() + u(yz u (u() + u(yz 48)) 32)) 6)) u (u() + u(yz)) u (u((yz u (u(yz u (u(yz u (u(yz)) u ( u(@)+4 s(yz) ) u (u() + u(yz s() % 2 = u ( u(@)+4 s(yz) ) u ( u(@)+4 s(yz) ) uu (( u(@)+4 s(yz) ) u(@)+4 s(yz) ) Geben Sie die Befehle an, mit denen Sie ausschließlich durch die Verwendung von Direktoperanden die Zahl x AB CDEF in Register $ schreiben. INCH INCMH INCML,YZ,YZ,YZ,YZ,YZ,YZ s() % 2 = s() % 2 = s() s() % % 22 = = ) s() % 2 = ))@@ u u ( u(@)+4 s(yz) ) s() ( u(@) + 4 s(yz) ) Prob. br.if ifodd nonpos. s() % 2>= ))@@ u u ( u(@)+4 s(yz) s() ( u(@) + 4 s(yz))) uu ( u(@) + 4 s(yz) ) ( u(@) + 4 s(yz) ) uu ( u(@) + 4 s(yz) ) ( u(@) + 4 s(yz) ) uu ( u(@) + 4 s(yz) ) ( u(@) + 4 s(yz) ) uu ( u(@) + 4 s(yz) ) ( u(@) + 4 s(yz) ) uu ( u(@) + 4 s(yz) ) ( u(@) + 4 s(yz) ) uu ( u(@) + 4 s(yz) ) ( u(@) + 4 s(yz) ) uu ( u(@) + 4 s(yz) ) ( u(@) + 4 s(yz) ) uu u(@) s(yz) s(yz))) (( u(@) uu u(@) s(yz) s(yz))) (( u(@) u ( u(@) + 4 s(yz) ) u ( u(@) + 4 s(yz) ) u ( u(@) + 4 s(yz) ) u ( u(@) + 4 s(xyz) ) u ( u(@) + 4 s(xyz) ) s() % 2 = ))@@ u u ( u(@)+4 s(yz)6 ) s() ( u(@) + 4 s(yz) ) Direktoperanden Befehl Operanden Name/Aktion BOD,YZ if odd PBEV )@ s() s() > ) s() s() > s() > < s() < s() = s() < = s() < = s() = s() = s() = s() @ Prob. branch if even if nonpositive Prob. br.if ifeven positive Prob. br.if ifpositive nonpos. Prob. br.if ifnonpositive nonneg. Prob. br.if ifnonneg. positive Prob. br.if ifpositive negative Prob. br.if ifnegative nonneg. Prob. br.if ifnonneg. nonzero Prob. br.if ifnonzero negative if negative Probable br. if zero Prob. br.if ifzero nonzero Probable br. if zero BEV,YZ if even Direktoperand in Register schreiben,yz,yz BOD PBNP INCL ( $Z) u ( u(z) ) ),YZ BNP PBNN SETH (,YZ PBP BNN 2.3 MMIX Befehle PBEV,YZ BNP,YZ,YZ,YZ,YZ,YZ,YZ,YZ,YZ BP PBN PBNN BN Befehl Operanden Name/Aktion $Z u ( u(z) ) 2 Assemblerprogrammierung 32) 6) u ( u(yz) ) $Z u ( u(z) ) BNN PBNZ PBN BNZ BN PBZ PBZ Funktionsaufruf Befehle für Funktionsaufrufe NXOR XOR 84 Bitwise OR high wyde,yz ORH ORML 48) 32) 6) ( & $Z) ( & u ( u(z) ) ) ( u ( u(yz) ) ( u ( u(yz) ) ( u ( u(yz) ) MULU: Die Quelloperanden haben jeweils Bit, der Zieloperand hat 28,YZ Bitw. OR med. low wyde ( u ( u(yz) ) Bit. Die oberen Bit des Ergebnisses werden im Spezialregister rh ORMH abgelegt.,yz Bitw. OR med. high wyde ( u ( u(yz) ) Quell- undbitwise Zieloperanden ORL MUL:,YZ OR lowhaben wydejeweils Bit OR d) Was ist der Unterschied zwischen,,$z Bitwise OR den Befehlen MUL und MULU? Bw. AND wyde NEG NOT high $,5,3,YZ Bw. AND NOT med. h. wd. 3 in einer einzigen Codezeile berechnen? ANDNH ANDNMH,YZ c) Bw. AND NOT med. l. wd. PBNZ BZ,YZ ANDNML,YZ BZ Bedingte Verzweigungen BNZ,YZ if nonzero Befehl Operanden Name/Aktion ANDN,,$Z Bitwise AND NOT & $Z,,Z Bitww AND NOT immed. & u ( u(z) ) Nein, da der ADD-Befehl nur einen Direktoperanden unterstützt, muss der zweite Operand zuvor in ein Allzweckregister geladen ANDNL,YZ Bitw. AND NOT low wydewerden. & u ( u(yz) ) b) Kann mit dem ADD Befehl in einer einzigen Codezeile berechnet werden?,,z JMP XYZ Jump Befehl Operanden Name/Aktion AND Befehl Operanden Name/Aktion Bedingte Verzweigungen Verzweigungen Unbedingte Verzweigung JMP Befehl Operanden Name/Aktion Verzweigungsbefehle sowohl für vorzeichenlose,,$z Bitwise AND als auch für vorzeichenbehaftete Operationen. & $Z Befehl Operanden Name/Aktion 2 Assemblerprogrammierung rd a) In welchem Wertebereich können die Direktoperanden bei den Arithmetischen Logische Operationen Befehlen liegen? Logische Operationen auf Bit-Ebene 74 8
19 9 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.
20 2 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.
6.5 MMIX Befehle 287. LOC $254 BYTE 1 WYDE #1234 OCTA #56789ABC 0x x x
6.5 MMIX Befehle 287 T q) Tragen Sie in nachfolgende Tabelle den Speicherinhalt ein, der sich nach Ausführung der angegebenen MMIX-Befehle im Falle von Big- und Little-Endian- Adressierung ergeben würde.
MehrT e) Wie unterscheiden sich die Opcodes von vorzeichenlosen und vorzeichenbehafteten Ladebefehlen?
- 282 6 MMIX-Prozessor T e) Wie unterscheiden sich die Opcodes von vorzeichenlosen und vorzeichenbehafteten Ladebefehlen? f) Nehmen Sie an, dass die vorzeichenbehaftete 8 Bit breite Zahl -64 mit dem LDB-Befehl
Mehr0x01? 0x01. 0x12 0x34. 0x34 0x12 0xBC 0x00 0x00 0x9A 0x00 0x78. 0x00 0x56. 0x56 0x00 0x78 0x00 0x9A 0x00 0xBC 0x00. 6.
6.5 MMIX Befehle 287 T q) Tragen Sie in nachfolgende Tabelle den Speicherinhalt ein, der sich nach Ausführung der angegebenen MMIX-Befehle im Falle von Big- und Little-Endian- Adressierung ergeben würde.
MehrÜbungsblätter zur Vorlesung IT-Systeme 1. 1 Zahldarstellung und Codierung
Hochschule für angewandte Wissenschaften (FH) München Wintersemester 2009/2010 Fakultät für Informatik und Mathematik 11. Januar 2010 Prof. Dr. A. Böttcher Übungsblätter zur Vorlesung IT-Systeme 1 1 Zahldarstellung
MehrNachfolgende Tabelle übersetzt MMIX-Opcodes in diejenigen Zahlen, die im Befehlswort in den Bits abgelegt werden müssen.
256 6 MMIX-Prozessor Nachfolgende Tabelle übersetzt MMIX-Opcodes in diejenigen Zahlen, die im Befehlswort in den Bits 3124 abgelegt werden müssen! 0x0 0x1 0x2 0x3 0x4 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 TRAP
MehrT a) Welche Wortgrößen kann der MMIX vom Speicher in Register laden? Die MMIX-Ladebefehle unterstützen Wortbreiten von 8, 16, 32 und 64 Bit.
6.5 MMIX Befehle 265 T a) Welche Wortgrößen kann der MMIX vom Speicher in Register laden Die MMIX-Ladebefehle unterstützen Wortbreiten von 8, 16, 32 und 64 Bit. T b) Was ist der Unterschied zwischen vorzeichenbehaftetem
MehrBachelorprüfung Modul Computertechnik
Prüfungsfähigkeit: Bachelorprüfung Modul Computertechnik Computersysteme 24.7.24 Hiermit bestätige ich, dass ich vor Prüfungsbeginn darüber in Kenntnis gesetzt wurde, dass ich im Falle einer plötzlich
MehrGOP Computertechnik. Computersysteme
Prüfungsfähigkeit: Weitere Hinweise: - - - - - - - - GOP Computertechnik Computersysteme 7.8.27 Hiermit bestätige ich, dass ich vor Prüfungsbeginn darüber in Kenntnis gesetzt wurde, dass ich im Falle einer
MehrGOP Computertechnik. Computersysteme Probeklausur 1
Prüfungsfähigkeit: Weitere Hinweise: - - - - - - - - Die Prüfungsdauer beträgt 75 Minuten. Es sind keine Hilfsmittel erlaubt, auch keine Taschenrechner! Heftung nicht öffnen - keine Blätter abtrennen!
Mehrq) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x initialisieren,
6.4 MMIX-Programme 251 q) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x2000000000000000 initialisieren, an dieser Speicheradresse ein Bit breites Datenwort
MehrGOP Computertechnik. Computersysteme
Prüfungsfähigkeit: Weitere Hinweise: - - - - - - - - GOP Computertechnik Computersysteme 3.7.2 Hiermit bestätige ich, dass ich vor Prüfungsbeginn darüber in Kenntnis gesetzt wurde, dass ich im Falle einer
Mehr276 6 MMIX-Prozessor. Befehl Operanden Name/Aktion Definition. $X,$Y,$Z Bitwise AND $X $Y & $Z $X,$Y,Z Bitwise AND immediate $X $Y & u64 0 ( u(z)) AND
276 6 MMIX-Prozessor Logische Operationen auf Bit-Ebene Befehl Operanden Name/Aktion Definition AND ANDN $X,$Y,$Z Bitwise AND $X $Y & $Z $X,$Y,Z Bitwise AND immediate $X $Y & u64 0 ( u(z)) $X,$Y,$Z Bitwise
MehrGOP Computertechnik. Computersysteme Probeklausur 2
Prüfungsfähigkeit: Weitere Hinweise: - - - - - - - - Die Prüfungsdauer beträgt 75 Minuten. Es sind keine Hilfsmittel erlaubt, auch keine Taschenrechner! Heftung nicht öffnen - keine Blätter abtrennen!
MehrGOP Computertechnik. Computersysteme
Prüfungsfähigkeit: Weitere Hinweise: - - - - - - - - GOP Computertechnik Computersysteme 22.7.26 Hiermit bestätige ich, dass ich vor Prüfungsbeginn darüber in Kenntnis gesetzt wurde, dass ich im Falle
Mehrq) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x initialisieren,
6.4 MMIX-Programme 235 q) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x2000000000000000 initialisieren, an dieser Speicheradresse ein Bit breites Datenwort
MehrAufgabenkatalog. Computersysteme 1 Dr. Michael Zwick. Technische Universität München
Aufgabenkatalog Computersysteme 1 Dr. Michael Zwick Technische Universität München Inhalt 1 Komponenten eines Computer-Systems 5 Netzteil.................................... 5 Grafikkarten.................................
MehrGOP Computertechnik. Computersysteme Probeklausur 2
Prüfungsfähigkeit: Weitere Hinweise: - - - - - - - - Die Prüfungsdauer beträgt 75 Minuten. Es sind keine Hilfsmittel erlaubt, auch keine Taschenrechner! Heftung nicht öffnen - keine Blätter abtrennen!
MehrMMIX Assembler Programmierung Dr. Michael Zwick. Zahldarstellung
MMIX Assembler Programmierung Dr. Michael Zwick Zahldarstellung Festkommazahlen Vorzeichenlose Zahlen n Bit => 2 n verschiedene Werte darstellbar Wertebereich: 0... 2 n - 1 Kodierung: 0... 000, 0... 001,
MehrMMIX Assembler Programmierung. Computersysteme 1 Dr. Michael Zwick
MMIX Assembler Programmierung Computersysteme 1 Dr. Michael Zwick Zahldarstellung Festkommazahlen Vorzeichenlose Zahlen n Bit => 2 n verschiedene Werte darstellbar Wertebereich: 0... 2 n - 1 Kodierung:
Mehrk) Wie kann man beim MMIX auf die Parameter zugreifen? $1 + 8 $
63 Speicher 241 k) Wie kann man beim MMIX auf die Parameter zugreifen? $0 : arge $1 : argv $1 +0 Virtueller Speicher $1 + 8 $1 16 +,, ARGUED Argus argv IZJ - a) Wenn alle Programme an Adresse 0x100 beginnen
Mehr6.3 Speicher 233. Virtueller Speicher dreier Programme. realer Speicher Interrupt-Vektoren. Text-Segment.
6.3 Speicher 233 Virtueller Speicher Die gezeigte Einteilung des Speichers in verschiedene Segmente bezieht sich auf den sog. virtuellen Speicher. Virtueller Speicher meint, dass die Speicheradressen,
MehrT b) Wo findet man den Arbeitsspeicher in einem Computersystem? Auf dem Prozessor-Kern? Auf dem Mainboard? Als externes Gerät?
234 6 MMIX-Prozessor Aufgaben Verständnis Speicher T a) Wozu verwendet ein Computer Arbeitsspeicher? T b) Wo findet man den Arbeitsspeicher in einem Computersystem? Auf dem Prozessor-Kern? Auf dem Mainboard?
Mehrden Loader; der Loader ist derjenige Teil des Betriebssystems, der auszuführende Programme vom der Festplatte/SSD in den Speicher lädt
242 6 MMIX-Prozessor 64 MMIX-Programme MMIX-Programme bzw Assembler-Programme für den MMIX-Prozessor sind Quelltext- Dateien mit Befehlen für den MMIX-Prozessor; die vom MMIX unterstützen Befehle nennt
Mehrq) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x2000000000000000 initialisieren,
At AZOCTA 6.4 MMIX-Programme 235 q) Geben Sie Befehle an, die ein neues globales Register anlegen und dieses mit Speicheradresse 0x2000000000000000 initialisieren, an dieser Speicheradresse ein Bit breites
MehrAufgabenkatalog. Computersysteme 1 Dr. Michael Zwick. Technische Universität München
Aufgabenkatalog Computersysteme 1 Dr. Michael Zwick Technische Universität München Inhalt 1 Komponenten eines Computer-Systems 5 Netzteil.................................... 5 Grafikkarten.................................
MehrAufgabenkatalog. Computersysteme 1 Dr. Michael Zwick. Technische Universität München
Aufgabenkatalog Computersysteme Dr. Michael Zwick Technische Universität München Inhalt Komponenten eines Computer-Systems 5 Netzteil.................................... 5 Grafikkarten.................................
Mehr6.3 Speicher 233. Virtueller Speicher dreier Programme. realer Speicher Interrupt-Vektoren. Text-Segment.
6.3 Speicher 233 Virtueller Speicher Die gezeigte Einteilung des Speichers in verschiedene Segmente bezieht sich auf den sog. virtuellen Speicher. Virtueller Speicher meint, dass die Speicheradressen,
MehrBeim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen:
1 ADRESSIERUNG IN MMIX Beim Programmieren mit MMIX habt ihr vielleicht schon öfter eine der folgenden Fehlermeldungen von MMIXAL bekommen: no base address is close enough to the address A! relative address
MehrMMIX - Crashkurs. TI-II Rechnerarchitektur
MMIX - Crashkurs TI-II Rechnerarchitektur MMIX Einführung Aussprache: em-micks MMIX ist ein virtueller Prozessor, mit eigener Assemblersprache Um MMIX-Programme assemblieren und ausführen zu können, benötigt
MehrIM P label = Bedingte Verzweigungen
298 6 MMIX-Prozessor Verzweigungsbefehle Unbedingte Verzweigung 23 0 opc X 4 z Befehl Operanden Name/Aktion Definition JMP XYZ Jump @ u64 0 ( u(@) + 4 s(xyz)) IM P label = Bedingte Verzweigungen Befehl
MehrSUB $2,$5,10 Zeile 1 LDO $5,$0,2*8 Zeile 2 OR $1,$2,$3 Zeile 3 SRU $1,$5,$1 Zeile 4.
33 7 Pipelining Gegeben ist der folgende Ausschnitt aus einer MMIX Codesequenz: SUB $2,$5, Zeile LDO $5,$,2* Zeile 2 OR $,$2,$3 Zeile 3 SRU $,$5,$ Zeile 4 Zeile und 3 wg b) Geben Sie alle auftretenden
MehrWelche Register werden zur Parameterübergabe verwendet? In welcher Reihenfolge werden die Parameter auf dem Stack bzw. in den Registern abgelegt?
6.5 MMIX Befehle 291 Aufrufkonventionen Eine Aufrufkonvention (engl. calling convention) legt fest, wie einer Funktion Parameter übergeben werden und wie der Rückgabewert zurückgegeben wird. Damit spezifiziert
MehrMMIX: Einführung. Einführung. Ressourcen. Aussprache: em-micks Autor: Donald Knuth
MMIX: Einführung Einführung Aussprache: em-micks Autor: Donald Knuth MMIX ist ein virtueller Prozessor, mit eigener Programmiersprache MMIX-Programme sind maschinennah, d.h. eng an die Prozessorhardware
MehrHinweise. Auswertung. Einführung in die Technische Informatik WS 2007/2008 Bachelor-Klausur (TI) Aachen, 05. März 2008 SWS: V4/Ü2, ECTS: 7
Professor Dr.-Ing. Stefan Kowalewski Dipl.-Inform. Philipp Kranen Dipl.-Inform. Andreas Polzer LEHRSTUHL INFORMATIK XI SOFTWARE FÜR EINGEBETTETE SYSTEME Aachen, 5. März 28 SWS: V4/Ü2, ECTS: 7 Einführung
Mehr4. TÜ-Zusammenfassung zum Modul Computersysteme
4. TÜ-Zusammenfassung zum Modul Computersysteme Kurzzusammenfassung 6. Kapitel MMIX 256 Allzweckregister um Operanden abzuspeichern 32 Spezialregister bilden Schnittstelle zwischen Soft- und Hardware ALU(Arithmetic
MehrTechnische Informatik II Rechnerarchitektur
Technische Informatik II Rechnerarchitektur MMIX-Crashkurs Matthias Dräger, Markus Rudolph E-Mail: mdraeger@mi.fu-berlin.de rudolph@mi.fu-berlin.de www: tinyurl.com/mmix2010 www.matthias-draeger.info/lehre/sose2010ti2/mmix.php
MehrLOC Data_Segment
65 MMIX Befehle 291 In folgendem Programmcode wird XXX XXXXXXXX als Platzhalter für einen einzelnen Befehl verwendet: : LOC Data_Segment a iii GREG @ :;fff ±t A OCTA #FFFFFFFFFFFFFFFF B TETRA #87654321
MehrHinweise. Auswertung. Einführung in die Technische Informatik WS 2006/2007 Bachelor-Klausur. Aachen, 07. März 2007 SWS: V2/Ü2, ECTS: 4
Professor Dr.-Ing. Stefan Kowalewski Dipl.-Inform. Andreas Polzer Dipl.-Inform. Ralf Mitsching LEHRSTUHL INFORMATIK XI SOFTWARE FÜR EINGEBETTETE SYSTEME Aachen, 07. März 2007 SWS: V2/Ü2, ECTS: 4 Einführung
Mehr6 MMIX-Prozessor. 6.1 Programmiermodell. S.219 alles wichtig. 6.2 Register. Allzweckregister
6 MMIXProzessor Modell eines Prozessors (keine LegacyEffekte) RegisterRegister Architektur mit 256 Allzweck Register und 32 Spezialregister Wortbreite der Register, des Rechenwerks, der Daten und AdressBusse:
MehrT e) Welche Eigenschaft müssen Byte-, Wyde-, Tetra- und Octa-Adressen beim MMIX haben?
236 6 MMIX-Prozessor T e) Welche Eigenschaft müssen Byte-, Wyde-, Tetra- und Octa-Adressen beim MMIX haben? Byte : Reine besondere Eigenschaft wyde : durch 2 tutbar eetztesrstto Tetra : dutch 4 teicbar
MehrArithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9
Arithmetik, Register und Speicherzugriff Grundlagen der Rechnerarchitektur Assembler 9 Arithmetik und Zuweisungen Einfache Arithmetik mit Zuweisung C Programm: a = b + c; d = a e; MIPS Instruktionen: Komplexere
MehrNamensräume - der PREFIX-Befehl
65 MMIX Befehle 33 Namensräume - der PREFIX-Befehl Der PREFIX-Befehl ist ein Assembler-Befehl Er wird verwendet um in einem Programm vorkommenden Namen vom Assembler-Präprozessor durch Voranstellen einer
MehrT c) Daten welcher Größenordnung kann ein Register aufnehmen: Byte, kilobytes, megabytes, gigabytes or terabytes?
222 6 MMIXProzessor Verständnisfragen/Aufgaben Allgemein T a) Was ist ein Register? Kleiner aber Schneller Speicher T b) Wo findet man Register in einem ComputerSystem? Prozessor T c) Daten welcher Größenordnung
Mehrstackpointer dentals Basisadresse Arbeitsspeicher, Program mdaten wte Reicksprungadreson ltbergabe parameter Dater warden immeruber stack pointer
322 6 MMIXProzessor T i) Was ist der Stack? Bereich im Program mdaten wte lokale Arbeitsspeicher der lokale Register Reicksprungadreson ltbergabe parameter enthaet T j) Wo beginnt der Stack und in welche
MehrEinführung Programmierpraktikum C Michael Zwick
Einführung Programmierpraktikum C Michael Zwick Vorlesung, Übung & Fragestunde Dr.-Ing. Michael Zwick Raum Z945 zwick@tum.de (089) 289 23609 Tutorium Ab Dienstag: Auswahl Tutoriumsplatz auf www.ldv.ei.tum.de/lehre/computertechnik
MehrLOC Data_Segment A OCTA a) Bestimmen Sie das 32 Bit breite Befehlswort des Befehls JMP Start.
humpl 6.5 MMIX Befehle 299 Betrachten Sie die folgenden Befehle: LOC Data_Segment GREG @ A OCTA 1000 a IS $1 b IS $2 LOC #100 Main LDB aa Start SUB aa1 swathe 2 Befehl OR aa0 BZ aend JMP Start End TRAP
Mehr3.8 Sequentieller Multiplizierer 159
.8 Sequentieller Multiplizierer 59 Nachfolgende Abbildung zeigt den (unvollständigen) Aufbau einer Schaltung zur Implementierung des gezeigten Multiplikationsverfahrens. b) Vervollständigen Sie die Schaltung
MehrZur Multiplikation von Gleitkommazahlen müssen die Mantissen inkl. führender 1, als Festkommazahlen multipliziert werden.
70 Arithmetische Schaltungen Multiplikation vorzeichenbehafteter Zahlen Zur Multiplikation vorzeichenbehafteter Zahlen (er-komplement) kann auf die Schaltung für vorzeichenlose Multiplikation zurückgegriffen
Mehr4 Prozessor-Datenpfad 4.1 Vom zu lösenden Problem abhängige Schaltung
4 ProzessorDatenpfad 4.1 Vom zu lösenden Problem abhängige Schaltung Die Idee ist es nun nicht unflexible Schaltungen, die aus einer großen Anzahl von Komponenten bestehen und nur eine Aufgabe erledigen
Mehr3 Initialisierung. Initialisierung. Addieren clk_mkand= clk_produkt= multiplexer= multiplexer= I0 init/>>1= mon. init/>>1= 0.
u Arithmetische Schaltungen c) Vervollständigen Sie nachfolgend abgebildeten s-automaten so, dass er den Multiplizierer wie gewünscht steuert Nehmen Sie an, dass Sie zur Detektion des Schleifen-Abbruchs
MehrÜbersicht. Quelle: Kapitel 3, 4 und 5 aus Anlauff, Böttcher, Ruckert: Das MMIX-Buch. Springer, 2002
Übersicht Wiederholung: ein einfaches MMIX-Programm Speicherorganisation, Speicherzugriff Zahlen und Arithmetik Zeichenketten und Ein-/Ausgabe Kontrollstrukturen Unterprogramme Quelle: Kapitel 3, 4 und
MehrEinige Teilgebiete der Informatik
Einige Teilgebiete der Informatik Theoretische Informatik Formale Sprachen, Automatentheorie, Komplexitätstheorie, Korrektheit und Berechenbarkeit, Algorithmik, Logik Praktische Informatik Betriebssysteme,
MehrÜbung Praktische Informatik II
Übung Praktische Informatik II FSS 2009 Benjamin Guthier Lehrstuhl für Praktische Informatik IV Universität Mannheim guthier@pi4.informatik.uni-mannheim.de 20.03.09 4-1 Heutige große Übung Ankündigung
Mehr2 Initialisierung clk_mkand= clk_produkt= multiplexer= init/>>1= 6 Schieben clk_mkand= clk_produkt= multiplexer= init/>>1=
Arithmetische Schaltungen c) Vervollständigen Sie nachfolgend abgebildeten Zustands-Automaten so, dass er den Multiplizierer wie gewünscht steuert. Nehmen Sie an, dass Sie zur Detektion des Schleifen-Abbruchs
MehrTechnische Informatik II Rechnerarchitektur
Technische Informatik II Rechnerarchitektur 3.Unterprogramme in MMIX Matthias Dräger E-Mail: www: mdraeger@mi.fu-berlin.de www.matthias-draeger.info/lehre/sose2010ti2/ tinyurl.com/sose2010ti2 Zuletzt bearbeitet:
MehrRechnernetze und Organisation
Arithmetic Logic Unit ALU Professor Dr. Johannes Horst Wolkerstorfer Cerjak, 9.2.25 RNO VO4_alu Übersicht Motivation ALU Addition Subtraktion De Morgan Shift Multiplikation Gleitkommazahlen Professor Dr.
MehrRO.RO, ADD RO, 120,121 MUL 120,120,121 INPUT RO, MUL INPUT 120,0 ADD RO, INPUT 121,1 INPUT R 1,2 INPUT 121,2 RO, IN put 121,1 N RO, ROIRA SET 121,3
6 4 Prozessor-Datenpfad a) Schreiben Sie für den Universalrechner ein Programm in Assembler-Sprache, welches die drei Seiten eines Würfels von den Eingängen, und einliest, das Volumen des Würfels berechnet
MehrAssembler am Beispiel der MIPS Architektur
Assembler am Beispiel der MIPS Architektur Frühere Einsatzgebiete MIPS Silicon Graphics Unix Workstations (z. B. SGI Indigo2) Silicon Graphics Unix Server (z. B. SGI Origin2000) DEC Workstations (z.b.
MehrSelbststudium Informationssysteme - H1102 Christian Bontekoe & Felix Rohrer
Übung RA, Kapitel 1.5 1. Beantworten Sie bitte folgende Repetitionsfragen 1. Beschreiben Sie in eigenen Worten und mit einer Skizze die Schichtung einer Multilevel Maschine. Folie 5, rechte Seite 2. Welche
MehrTechnische Universität München Fakultät für Mathematik Mathematik 1 (Elektrotechnik) Probeklausur Prof. Dr. Anusch Taraz 24.
Note: Name Vorname Lerngruppen-Nummer Tutorübung-Nr. 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
MehrDatenpfad einer einfachen MIPS CPU
Datenpfad einer einfachen MIPS CPU Die Branch Instruktion beq Grundlagen der Rechnerarchitektur Prozessor 13 Betrachten nun Branch Instruktion beq Erinnerung, Branch Instruktionen beq ist vom I Typ Format:
MehrTECHNISCHE HOCHSCHULE NÜRNBERG GEORG SIMON OHM Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl
Mehr1. TÜ-Zusammenfassung zum Modul Computersysteme
1. TÜ-Zusammenfassung zum Modul Computersysteme Kurzzusammenfassung 1. Kapitel Netzteil: Aufbau: Bereitgestellte Spannungen: 12V, -12V, 5V, -5V und 3.3V Leistung: Da bei Transformatoren die übertragbare
MehrT e) Wie wird im Speicher an der Adresse 0x die 32 Bit-Zahl
63 Speicher 237 T e) Wie wird im Speicher an der Adresse 0x2000000000000008 die 32 BitZahl 0x12345678 abgelegt im Falle einer BigEndian und einer LittleEndianMaschine? Adresse Big Endian Little Endian
MehrOffenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab...
0 1 2 0 2 1 1 2 0 2 1 0 Offenbar hängt das Ergebnis nur von der Summe der beiden Argumente ab... 0 1 2 0 1 2 1 1 3 2 2 3 212 Um solche Tabellen leicht implementieren zu können, stellt Java das switch-statement
MehrLösung 5. Übungsblatt
Fakultät Informatik, Technische Informatik, Lehrstuhl für Eingebettete Systeme Lösung 5. Übungsblatt Entwicklung eines Mikroprogrammsteuerwerks und Maschinen-programmierung für einen einfachen Rechner.
MehrTechnische Informatik I - HS 18
Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik I - HS 8 Musterlösung zu Übung 5 Datum : 8.-9. November 8 Aufgabe : MIPS Architektur Das auf der nächsten
MehrSprungbefehle und Kontroll-Strukturen
Sprungbefehle und Kontroll-Strukturen Statusregister und Flags Sprungbefehle Kontrollstrukturen Das Status-Register 1 Register-Satz des ATmega128 Universal-Register (8Bit) R0..R15 16 Bit Program counter
Mehr21. Februar Name:. Vorname. Matr.-Nr:. Studiengang
Klausur 21. Februar 2011 Name:. Vorname Matr.-Nr:. Studiengang Hinweise: Bitte füllen Sie vor dem Bearbeiten der Aufgaben das Deckblatt sorgfältig aus. Zur Klausur zugelassen sind ausschließlich Schreibutensilien,
MehrTechnische Informatik I - HS 18
Institut für Technische Informatik und Kommunikationsnetze Prof. L. Thiele Technische Informatik I - HS 18 Musterlösung zu Übung 3 Datum : 25.-26. Oktober 2018 Aufgabe 1: Wurzelverfahren nach Heron Das
MehrÜbungsblatt 10 (Block C 2) (16 Punkte)
georg.von-der-brueggen [ ] tu-dortmund.de ulrich.gabor [ ] tu-dortmund.de pascal.libuschewski [ ] tu-dortmund.de Übung zur Vorlesung Rechnerstrukturen Wintersemester 2016 Übungsblatt 10 (Block C 2) (16
Mehr"Organisation und Technologie von Rechensystemen 4"
Klausur OTRS-4, 29.09.2004 Seite 1 (12) INSTITUT FÜR INFORMATIK Lehrstuhl für Rechnerarchitektur (Informatik 3) Universität Erlangen-Nürnberg Martensstr. 3, 91058 Erlangen 29.09.2004 Klausur zu "Organisation
MehrDarstellung von Instruktionen. Grundlagen der Rechnerarchitektur Assembler 21
Darstellung von Instruktionen Grundlagen der Rechnerarchitektur Assembler 21 Übersetzung aus Assembler in Maschinensprache Assembler Instruktion add $t0, $s1, $s2 0 17 18 8 0 32 6 Bit Opcode Maschinen
Mehr1 Aufgaben Wie funktioniert ein Computer. a) Welche Spannungen werden von PC-Netzteilen bereitgestellt? 5W, 12W,
81 1 Aufgaben Wie funktioniert ein Computer Netzteil a) Welche Spannungen werden von PCNetzteilen bereitgestellt? 3 BV 5W 12W 5 V 12W b) Warum können PCNetzteile hohe Leistungen liefern obwohl die eingebauten
MehrZusammenfassung der Assemblerbefehle des 8051
Zusammenfassung der Assemblerbefehle des 8051 Seite 1 von 5 Befehl Bezeichnung Syntax Wirkung / Beispiel Befehle zum Datentransfer MOV Move MOV [Ziel],[Quelle] MOV P1,P3 Kopiert den Inhalt von P3 nach
MehrÜbungsblatt 7 Implementierung von Programmsteuerbefehlen in einer Befehlspipeline Abgabefrist: Mittwoch , 14:00 Uhr
Praktikum zur Vorlesung Prozessorarchitektur SS 2017 Übungsblatt 7 Implementierung von Programmsteuerbefehlen in einer Befehlspipeline Abgabefrist: Mittwoch 21.06.2017, 14:00 Uhr 1.1. Einführung Programmsteuerbefehle
Mehr28. März Name:. Vorname. Matr.-Nr:. Studiengang
Klausur 28. März 2011 Name:. Vorname Matr.-Nr:. Studiengang Hinweise: Bitte füllen Sie vor dem Bearbeiten der Aufgaben das Deckblatt sorgfältig aus. Zur Klausur zugelassen sind ausschließlich Schreibutensilien,
MehrARM-Cortex-M4 / Thumb-2-Befehlssatz Adressierungsarten und arithmetische Operationen
ARM-Cortex-M4 / Thumb-2-Befehlssatz Adressierungsarten und arithmetische Operationen Aufgabenstellung: - das beigefügte Assembler-Programm schrittweise ausführen - sich mit der Handhabung der Entwicklungswerkzeuge
MehrComputersysteme. Fragestunde
Computersysteme Fragestunde 1 Dr.-Ing. Christoph Starke Institut für Informatik Christian Albrechts Universität zu Kiel Tel.: 8805337 E-Mail: chst@informatik.uni-kiel.de 2 Kurze Besprechung von Serie 12,
MehrComputersysteme. Serie 11
Christian-Albrechts-Universität zu Kiel Institut für Informatik Lehrstuhl für Technische Informatik Prof.Dr. Manfred Schimmler Dr.-Ing. Christoph Starke M.Sc. Vasco Grossmann Dipl.-Inf. Johannes Brünger
MehrEinführung. Computertechnik Dr. Michael Zwick
Einführung Computertechnik Dr. Michael Zwick Vorlesung, Übung & Fragestunde Dr.-Ing. Michael Zwick Raum Z945 zwick@tum.de (089) 289 23609 Modul Computertechnik und Programmieren Computertechnik V/Ü/P =
MehrMMIX Crashkurs Teil 3 Unterprogramme und Parameterübergabe. Freiling/Wienzek/Mink Vorlesung Rechnerstrukturen RWTH Aachen Sommersemester 2005
MMIX Crashkurs Teil 3 Unterprogramme und Parameterübergabe Freiling/Wienzek/Mink Vorlesung Rechnerstrukturen RWTH Aachen Sommersemester 2005 Unterprogramme Hauptproblem heutiger Softwareentwicklung liegt
MehrKap.3 Mikroarchitektur. Prozessoren, interne Sicht
Kap.3 Mikroarchitektur Prozessoren, interne Sicht 3.1 Elementare Datentypen, Operationen und ihre Realisierung (siehe 2.1) 3.2 Mikroprogrammierung 3.3 Einfache Implementierung von MIPS 3.4 Pipelining Implementierung
MehrLösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009
Fachgebiet Rechnerarchitektur Fachbereich Informatik Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009 Aufgabe 9.1: Dinatos-Algorithmus-Analyse Die folgenden Verilog-Zeilen
MehrKlausur Mikroprozessortechnik 29. März 2010
Klausur Mikroprozessortechnik 29. März 2010 Name:... Vorname:... Matr.-Nr:... Studiengang:... Hinweise: Bitte füllen Sie vor dem Bearbeiten der Aufgaben das Deckblatt sorgfältig aus. Zur Klausur zugelassen
MehrEinführung Programmierpraktikum C Michael Zwick
Einführung Programmierpraktikum C Michael Zwick Vorlesung, Übung & Fragestunde Dr.-Ing. Michael Zwick Raum Z945 zwick@tum.de (089) 289 23609 Programmieren in der Elektrotechnik unverzichtbar VHDL Simulation
Mehr1 Rechnerstrukturen 1: Der Sehr Einfache Computer
David Neugebauer, Informationsverarbeitung - Universität zu Köln, Seminar BIT I Inhaltsverzeichnis 1 Rechnerstrukturen 1: Der Sehr Einfache Computer 1 1.1 Komponenten................................. 1
MehrÜbungsblatt 10 (Block C 2) (16 Punkte)
georg.von-der-brueggen [ ] tu-dortmund.de ulrich.gabor [ ] tu-dortmund.de marco.duerr [ ] tu-dortmund.de Übung zur Vorlesung Rechnerstrukturen Wintersemester 2018 Übungsblatt 10 (Block C 2) (16 Punkte)
MehrDatenpfad einer einfachen MIPS CPU
Datenpfad einer einfachen MIPS CPU Die Branch Instruktion beq Grundlagen der Rechnerarchitektur Prozessor 13 Betrachten nun Branch Instruktion beq Erinnerung, Branch Instruktionen beq ist vom I Typ Format:
MehrKlausur ( ): Technische Grundlagen der Informatik 2 Rechnerorganisation SS 2007
Klausur (27.07.2007): Technische Grundlagen der Informatik 2 Rechnerorganisation SS 2007 Vorname :.............................................. Name :.............................................. Matrikelnummer
MehrMikroprozessor als universeller digitaler Baustein
2. Mikroprozessor 2.1 Allgemeines Mikroprozessor als universeller digitaler Baustein Die zunehmende Integrationsdichte von elektronischen Schaltkreisen führt zwangsläufige zur Entwicklung eines universellen
MehrGrundlagen der Rechnerarchitektur. MIPS Assembler
Grundlagen der Rechnerarchitektur MIPS Assembler Übersicht Arithmetik, Register und Speicherzugriff Darstellung von Instruktionen Logische Operationen Weitere Arithmetik Branches und Jumps Prozeduren 32
MehrDatenpfad einer einfachen MIPS CPU
Datenpfad einer einfachen MIPS CPU Zugriff auf den Datenspeicher Grundlagen der Rechnerarchitektur Prozessor 19 Betrachten nun Load und Store Word Erinnerung, Instruktionen lw und sw sind vom I Typ Format:
MehrMikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen
Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)
MehrRO-Tutorien 15 und 16
Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 5 am 25.05.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft
Mehr24. Februar Name:. Vorname. Matr.-Nr:. Studiengang
Klausur 24. Februar 2012 Name:. Vorname Matr.-Nr:. Studiengang Hinweise: Bitte füllen Sie vor dem Bearbeiten der Aufgaben das Deckblatt sorgfältig aus. Die Klausur besteht aus 6 doppelseitig bedruckten
MehrHeute nur MIPS-Praxis (4 Aufgaben)
Themen heute Heute nur MIPS-Praxis (4 Aufgaben) Hinweis: Diese Aufgaben findet ihr auf den Übungsblättern zu den Tutorien (bei Aufgabe 4 wurde eine Teilaufgabe und im Tutorium #6 bereits geklärte Wissensfragen
MehrVon-Neumann-Architektur
Von-Neumann-Architektur Bisher wichtig: Konstruktionsprinzip des Rechenwerkes und Leitwerkes. Neu: Größerer Arbeitsspeicher Ein- und Ausgabewerk (Peripherie) Rechenwerk (ALU) Steuerwerk (CU) Speicher...ppppp...dddddd..
Mehr