Wiederholungsklausur. Einführung in die Rechnerarchitektur

Ähnliche Dokumente
Klausur Einführung in die Rechnerarchitektur

Klausur. Technische Grundlagen der Informatik Prof. Dr. Arndt Bode

Klausur. Technische Grundlagen der Informatik Prof. Dr. Arndt Bode

Abbildung 4.1: Blockschaltbild des mikroprogrammierbaren Beispielrechners

Klausur. Technische Grundlagen der Informatik Prof. Dr. Arndt Bode

FAKULTÄT FÜR INFORMATIK

FAKULTÄT FÜR INFORMATIK

Tutorübung 7: Mikroprogrammierung I

Midterm-Klausur Technische Grundlagen der Informatik

"Organisation und Technologie von Rechensystemen 4"


Klausur zur Vorlesung

Versuchsreihe 7. Registerfile. Registerfile + Programmzähler. HaPra Versuchsreihe 7 - Registerfile + Programmzähler. 32 Register à 32 Bit

Klausur zur Vorlesung. Grundlagen der Technischen Informatik (GTI) und. Grundlagen der Rechnerarchitektur (GRA)

Die Mikroprogrammebene eines Rechners

Informationen zur Klausur

Übungen für die Einführung in die Assemblerprogrammierung mit dem Prozessor c515c

Zusammenfassung der Assemblerbefehle des 8051

Klausur "Informationstechnische Grundlagen" WS 2012/2013

Ein ROM soll aus mehreren ROMs (vgl. Abbildung rechts: Enable-Leitung EN, Adressleitungen ADDR, Datenleitungen DATA) aufgebaut werden.

Name: Vorname: Matr.-Nr.: 4. a) RISC-Architekturen müssen zur Decodierung von Maschinenbefehlen stets ein mikroprogrammierbares Steuerwerk verwenden.

Daniel Betz Wintersemester 2011/12

9. Assembler: Der Prozessor Motorola 68000

Grundlagen der Technische Informatik / Digitaltechnik (GTI/DT)

Steuerwerk einer CPU. Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck

Kap.2 Befehlsschnittstelle. Prozessoren, externe Sicht

Musterlösungen Technische Informatik 2 (T2) Prof. Dr.-Ing. D. P. F. Möller

Bearbeitungszeit: 120 Minuten. Kommentare kosten Zeit; kommentieren Sie ihr Programm nur da, wo der Code alleine nicht verständlich wäre.

Struktur der CPU (1) Die Adress- und Datenpfad der CPU: Befehl holen. Vorlesung Rechnerarchitektur und Rechnertechnik SS Memory Adress Register

Grundlagen der Technischen Informatik / Digitaltechnik (GTI/DT)

Prozessorarchitektur. Kapitel 1 - Wiederholung. M. Schölzel

Laborübung 4. Zustandsautomaten (Finite State Machines)

Lösungsvorschlag 9. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Klausur über den Stoff der Vorlesung Grundlagen der Informatik II (90 Minuten)

Vorlesung Objektorientierte Programmierung Klausur

Praktikum Grundlagen von Hardwaresystemen Sommersemester Versuch 6: Computergrafik und Sprites

Die Befehle mit dem Ziel IP sind nichts anderes als Sprungbefehle, sie sind unten noch mal aufgeführt.

Rechnergrundlagen SS Vorlesung

Technische Informatik II Rechnerarchitektur

Diplomvorprüfung. Technische Grundlagen der Informatik

Durch das Borgen steht an der Zehner-Stelle jetzt nur noch eine 1 statt einer 2

Computational Engineering I

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Übungsblatt 10 (Block C 2) (16 Punkte)

1. Inhaltsverzeichnis

Der Toy Rechner Ein einfacher Mikrorechner

Grundlagen der Digitaltechnik GD. Aufgaben und Musterlösungen

Befehlssatz der Mikrocontroller der 51er -Familie

Tutorium Rechnerorganisation

Assembler Kontrollstrukturen

Befehlssatz der Mikrocontroller der 51er -Familie

Prinzipieller Aufbau und Funktionsweise eines Prozessors

Durch das Borgen steht an der Zehner-Stelle jetzt nur noch eine 1 statt einer 2

FAKULTÄT FÜR INFORMATIK

Mikrocomputertechnik. Adressierungsarten

MOP: Befehlsliste für den Mikrocontroller 8051

Aufgabe 7.2: Mikroprogramm-Steuerwerk analysieren

Prozessor HC680 fiktiv

Integrierte Schaltungen

Geräteentwurf mit Mikroprozessoren 1

Klausur "ADP" SS 2015

Klausur Technische Informatik 1 WS 2015/2016 Prüfer: Sutter Hilfsmittel: keine

15 Einführung in den Entwurf von Zustandsautomaten

Fachhochschule Südwestfalen Prof. Dr.-Ing. G. Klinge Prof. Dr.rer.nat. W. Rohde

Assembler Integer-Arithmetik

Laborübung 2. Teil 1: Latches, Flipflops, Counter. Abbildung 1: Schaltkreis eines Gated D-Latch

Klausur zur Vorlesung Technische Informatik 1 im WS 06/07 Donnerstag, den von Uhr Uhr, HS 5

HC680 PROGRAMMER'S REFERENCE MANUAL

FAKULTÄT FÜR INFORMATIK

Aufgabe 1 Minimieren Sie mit den Gesetzen der Booleschen Algebra 1.1 f a ab ab 1 = + + Aufgabe 2. Aufgabe 3

Assembler-Programmierung

Semestralklausur Einführung in Computer Microsystems

DuE-Tutorien 16 und 17

Einführung in die Informatik

DuE-Tutorien 4 und 6. Tutorien zur Vorlesung Digitaltechnik und Entwurfsverfahren Christian A. Mandery. WOCHE 11 AM

Fach: Elektrotechnik

Übungsklausur Mikroprozessortechnik und Eingebettete Systeme I

Stack, Stackpointer, Unterprogramm HP: 0 * 1 * 2 * 3 CAL UP1 4 * 5 * 6 CAL UP2 7 *... UP1: 30 * 33 RET UP2: 40 * 41 CAL UP1 42 * 43 RET

Datentechnik. Prinzipieller Aufbau eines Schnittstellenbausteins

Multiplexer und Schieberegister

Rechnerstrukturen 1: Der Sehr Einfache Computer

RO-Tutorien 3 / 6 / 12

Fachhochschule Kaiserslautern Fachbereich Angewandte Ingenieurwissenschaften WS2010/11. Zeitpunkt der Prüfung: Beginn: 10.

FAKULTÄT FÜR INFORMATIK

Arbeitsblatt Logische Verknüpfungen Schaltnetzsynthese

18 Schieberegister. Serieller Serieller Eingang 5 Stufen Ausgang. 1. Takt. 2. Takt

D.5 Versuchsreihe 5: Arithmetisch-Logische Einheit

Technischen Informatik I, WS 2004/05

GTI Bonus VHDL - EXTRA

FAKULTÄT FÜR INFORMATIK

Rechnerarchitektur. Inhaltsverzeichnis. M. Jakob. 1. Februar Aufbau eines Computersystems Praktische Grundlagen Von-Neumann-Rechner

Hinweise zur Bearbeitung der Klausur zum Kurs Einführung in die imperative Programmierung

Versuch D3: Busse, Speicher und Ampelsteuerung mit Speicher

Rechnerarchitektur. M. Jakob. 1. Februar Gymnasium Pegnitz

Klausur über den Stoff der Vorlesung Grundlagen der Informatik II (90 Minuten)

B1 Stapelspeicher (stack)

, 2014W Übungsgruppen: Mo., Mi.,

Assembler (NASM) Crashkurs von Sönke Schmidt

Teil 1: Prozessorstrukturen

Versuch 3: Sequenzielle Logik

Transkript:

Wiederholungsklausur Einführung in die Rechnerarchitektur Prof. Dr. Arndt Bode Wintersemester 2012/2013 3. April 2013 Name: Vorname: Matrikelnummer: Geburtsdatum: Hörsaal: Platz: Unterschrift: Ergebnis: Aufgabe 1 2 3 4 Ges. Note Punkte Korrektur 1

Hinweise zu den Aufgaben: Die Bearbeitungszeit beträgt 120 Minuten. Es sind keinerlei Hilfsmittel zugelassen, auch keine Taschenrechner. Versehen Sie dieses Angabenblatt auf der Titelseite mit Ihrem Namen, Vornamen und Matrikelnummer. Diese Angabe umfasst 24 bedruckte Seiten (inklusive Deckblatt). Außerdem erhalten Sie die folgende Merkblätter: Anlage I: Die wichtigsten 80386 Befehle und ihre Operanden Anlage II: Mikroprogrammierung Anlage III: Die wichtigsten VHDL Konstrukte Alle Lösungen sind in dieses Heft einzutragen. Sollte der vorgesehene Platz nicht ausreichen, so finden Sie am Ende weitere Blätter. Sollten auch diese nicht ausreichen, so wenden Sie sich bitte an die Aufsichten. Notizpapier wird auf Ihre Anfrage ausgegeben. Die Verwendung von eigenem Papier ist nicht gestattet. Lösungen auf Notizpapier werden NICHT gewertet! 2

Aufgabe 2 - Maschinennahe Programmierung 2.1 Suche in einer verketteten Liste Eine verkettete Liste besitzt als Grundelement eine Datenstruktur mit zwei aufeinanderfolgenden 32Bit-Doppelworten. Das erste ist die Adresse der nächsten Datenstruktur, das zweite speichert den eigentlichen Wert. Ist die Adresse 0, ist der Wert der Letzte in der Liste. Schreiben Sie ein 80386-Unterprogramm, das die Anzahl der negativen Werte in einer Liste zählt. Die Adresse des ersten Listenelements wird im Register EB übergeben. Ist schon EB 0, enthält die Liste keine Werte. Die gefundene Anzahl soll im Register EA zurückgegeben werden. Nach der Ausführung soll außer EA kein Register verändert sein. 5

2.2 Multiplikation ohne MUL Erstellen Sie ein 80386-Unterprogramm, das eine vorzeichenlose Multiplikation von zwei 16Bit-Werten mit 32Bit-Ergebnis realisiert. MUL bzw. IMUL dürfen dabei nicht verwendet werden! Als Eingabe sollen die beiden 16Bit-Multiplikanten in den Registern A und B stehen. Das 32Bit-Ergebnis soll nach der Ausführung im Register ED zurückgegeben werden. Andere Register können verändert werden. Hinweis: Ihre Lösung soll effizient sein. Nur B-faches aufaddieren von A ist NICHT effizient! 6

7

8

2.3 Symmetrische Registerrotation Ergänzen Sie die Lücken in folgendem 80386-Unterprogramm, das das Register EA symmetrisch zu den Bits 15 und 16 um eine Bitstelle nach außen rotiert. Das bedeutet die Bits 15 bis 0 werden nach rechts rotiert, die Bits 31 bis 16 nach links. Beispiel: EA vorher: 0x88124805 = 1000 1000 0001 0010 0100 1000 0000 0101 2 EA nachher: 0x1025a402 = 0001 0000 0010 0101 1010 0100 0000 0010 2 sym_rot : R A, MOV EB, EA,16 B,1, AND RET EA, EA,EB 9

Aufgabe 3 - Mikroprogrammierung In der Anlage befindet sich ein Merkblatt mit einer Kurzbeschreibung der mikroprogrammierbaren Maschine, in der Sie alle zur Lösung der Aufgabe notwendigen Angaben finden, z.b. die Beschreibung des Mikroinstruktionsformats und die Funktionstabellen der Bausteine. Das Mikroprogramm IFETCH, abgelegt ab Adresse 0x000 des Mikroprogrammspeichers, kann als gegeben betrachtet werden. Es holt den nächsten Maschinenbefehl aus dem Hauptspeicher in das Instruktionsregister, inkrementiert den Befehlszähler und springt das dem Befehls-Opcode zugehörige Mikroprogramm an. IFETCH benötigt 3 Takte zur Ausführung. Mikroprogramme müssen am Ende wieder zum Anfang des Mikroprogramms IFETCH zurückspringen. Hexadezimale Zahlen werden in Java- bzw. C-Schreibweise dargestellt und beginnen mit der Buchstabenkombination 0x, z.b: 0x1234, 0x011A oder 0xBEEF. Gegeben sind folgende Maschinenbefehle: Opc. Befehl Beschreibung 0x10 INC RB Inkrementiert RB um 1 (RB = RB + 1). Die Flags des Maschinenstatusregisters werden entsprechend des Ergebnisses gesetzt. 0x11 DEC RB Dekrementiert RB um 1 (RB = RB - 1). Die Flags des Maschinenstatusregisters werden entsprechend des Ergebnisses gesetzt. 0x20 JZ adr Bedingter Sprung nach adr, wenn das Zero-Flag im Maschinenstatusregister gesetzt ist. 0x21 JNZ adr Bedingter Sprung nach adr, wenn das Zero-Flag im Maschinenstatusregister nicht gesetzt ist. 0x25 JL adr Bedingter Sprung nach adr, wenn das Maschinenstatusregister so gesetzt ist, dass ein vorhergehender Vergleich CMP A,B ergeben hat, dass A < B ( Jump if Lower ). 0x40 CMP [RA], RB Führt die Subtraktion [RA] minus RB durch. Dabei bezeichnet [RA] den Wert, der an der Adresse RA im Hauptspeicher liegt. Die Flags des Maschinenstatusregisters werden entsprechend des Ergebnisses gesetzt. Das Ergebnis wird verworfen. 0x41 CMP imm, RB Führt die Subtraktion imm minus RB durch. Die Flags des Maschinenstatusregisters werden entsprechend des Ergebnisses gesetzt. Das Ergebnis wird verworfen. 0x51 SWP [RA], RB Führt eine Vertauschung der Werte durch, die im Hauptspeicher an Adresse RA und im Register RB gespeichert sind. 10

Anmerkung: Die Bezeichnung RA (bzw. RB ) steht hier abkürzend für das durch das A-Registeradressfeld (bzw. B-Registeradressfeld) des Maschinenbefehlswortes adressierte Register. 3.1 Welche der in der Tabelle angegebenen Befehle belegen a) 16 Bit b) 32 Bit im Hauptspeicher? Bitte geben Sie die jeweiligen Opcodes an. 3.2 Wieviele Speicherzugriffe müssen von den Implementierungen folgender Maschinenbefehle mindestens durchgeführt werden, wenn die Speicherzugriffe durch IFETCH nicht gezählt werden? a) JZ adr b) CMP imm, RB c) SWP [RA], RB 3.3 Wie müssen die Flags des Maschinenstatusregisters gesetzt sein, damit der Maschinenbefehl JL einen Sprung durchführt? 11

3.4 Gegeben ist folgendes Assemblerprogramm: schleife1: schleife2: ende: CMP [r1], r0 JL schleife2 INC r1 DEC r2 JNZ schleife1 JZ ende SWP [r1], r0 CMP 0, r0 JZ ende INC r1 DEC r2 JNZ schleife2 3.4.1 Es sei der folgende Hauptspeicherinhalt gegeben: Adresse 0x1000 0x1001 0x1002 0x1003 Wert 10 5 0 0 Außerdem sei die Anfangsbelegung r0=15, r1=0x1000 und r2=4 gegeben. Damit wird gleich auf schleife2 gesprungen. Welche Belegung haben die Speicherzellen 0x1000 bis 0x1003 am Ende des Programms? 3.4.2 Welche Aufgabe erfüllt folglich das Programm ab schleife2? 3.4.3 Es sei der selbe Hauptspeicherinhalt wie in Aufgabe 3.4.1 gegeben. Das Programm wird nun mit r0=8, r1=0x1000 und r2=4 aufgerufen. Welche Belegung haben die Speicherzellen 0x1000 bis 0x1003 am Ende? 3.4.4 Wenn mit r1/r2 (Start/Länge) ein Feld mit positiven absteigenden Werten gegeben ist, welche Aufgabe erfüllt das Programm dann insgesamt? 12

3.4.5 Geben Sie das Assemblerprogramm in hexadezimaler Codierung an. Adresse Inhalt Befehl 0x0100 schleife1: CMP [r1], r0 JL INC DEC JNZ JZ schleife2 r1 r2 schleife1 ende schleife2: SWP [r1], r0 CMP JZ INC DEC JNZ 0, r0 ende r1 r2 schleife2 ende: 3.5 Folgende Befehle sollen nun durch ein Mikroprogramm durch Vervollständigen der Tabelle auf den Seiten 14/15 realisiert werden: JL adr SWP [RA], RB Die Tabelle enthält Zeilen für einen zweiten Lösungsversuch. Bitte streichen Sie falsche Lösungen deutlich durch! Bitte tragen Sie keine binären Werte ein, sondern verwenden Sie die Abkürzungen aus dem Merkblatt MI (in der Anlage). 13

79 78 77 76 75 74 73 72 71 70 68 69 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 IE I3 I2 I1 I0 KMU K15 K14 K13 K12 K11 K10 K9 K8 K7 K6 K5 K4 K3 K2 K1 K0 I2 I1 I0 I5 I4 I3 I8 I7 I6 A3 A2 A1 A0 ASEL B3 B2 B1 B0 BSEL Interrupt Konstante Src Func Dest RA Addr RB Addr Adr. JL adr DIS DIS DIS NOP NOP NOP DIS NOP SWP [RA],RB DIS DIS DIS DIS DIS Adr. JL adr DIS DIS DIS NOP NOP NOP DIS NOP SWP [RA],RB DIS DIS DIS DIS DIS 14

38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ABUS* DBUS* I12 I11 I9 I8 I7 I6 CEMUE* CEM* I5 Y- CIN Schiebe- Statusregister AM2910 MU MU steuerung Test Befehle I4 I3 I2 I1 I0 CCEN* I3 I2 I1 I0 D11 D10 D9 D8 D7 D6 D5 D4 D3 Direktdaten D2 D1 D0 BZ_LD* BZ_ED* BZ_INC* BZ_EA* IR_LD* MWE* H H H H H H H H H H CONT H H CONT H H CONT H H CONT H H P CJP IFETCH S H H H H H H H H H H CONT H H CONT H H CONT H H CONT P H H CJP IFETCH S 15

Aufgabe 4 - Rechnergestützter Schaltungsentwurf 4.1 Dekoder Im Folgenden soll ein Schaltkreis entwickelt werden, der bestimmte Bitmuster innerhalb einer Folge von 4 Bits a,b,c und d erkennt. Das Muster, das erkannt werden soll, wird folgendermassen bestimmt: Es gibt mindestens zwei unmittelbar aufeinanderfolgende Bits mit demselben Wert. Liegt ein solches Bitmuster an, soll der Ausgang x den Wert 1 annehmen, ansonsten den Wert 0. 4.1.1 Ergänzen Sie die Wertetabelle für x. a b c d x 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 4.1.2 Welche der beiden Normalformen für boolsche Ausdrücke ist für die Beschreibung von x besser geeignet? 4.1.3 Erstellen Sie die in der vorherigen Aufgabe gewählte Normalform für x. 16

4.1.4 Berechnen Sie x nur mit NOR- und OR-Funktionen. 4.1.5 Erstellen Sie eine VHDL-Architecture, die die Berechnung von x als Concurrent Statement implementiert. Als Eingänge sind wieder a,b,c und d definiert, das Ausgangssignal soll x heißen. Alle Signale sind vom Typ std_logic. 17

4.2 Sequentielle Bitmustersuche Das zu suchende Muster soll jetzt aus mindestens 5 identischen Bitwerten hintereinander bestehen. Zu suchen ist dieses Muster in einer beliebig langen Sequenz von Einzelbitwerten E, die mit der steigenden Flanke eines Taktes CLK gelesen werden können. Wenn das Bitmuster gefunden wurde, soll ein Ausgang solange 1 werden und 1 bleiben, bis ein veränderter Bitwert anliegt. Ansonsten soll den Wert 0 haben. 4.2.1 Erstellen Sie die VHDL-Entity des Bausteins. Halten Sie sich an die vorgegebenen Signalnamen. 4.2.2 Wieviele interne Zustände hat der Baustein mindestens? Begründung? Hinweis: Die gesuchte Anzahl ist völlig unabhängig von möglichen Optimierungen oder auch der Zustandskodierung! 4.2.3 Zeichnen Sie das Zustandsübergangsdiagramm ( Blasendiagramm ) des Bausteins. Kennzeichnen Sie auch die Ausgabe von. Führen Sie noch keine Optimierung durch. Die Zustandsübergänge dürfen nur vom aktuellen Eingabewert E abhängen. 18

25 20 15 10 5 0 gray 0 5 10 15 20 25 30 35 4.2.4 Wie kann man die Zustände vereinfachen, wenn man ein gesondertes Bit zur Speicherung des letzten Eingangswertes benutzt? 4.2.5 Erstellen Sie die VHDL-Architecture des Bausteins. 19

20

21

Zusätzlicher Platz für Lösungen - Bitte immer Aufgabennummer angeben! Lösung für Aufgabe... 22

Lösung für Aufgabe... 23

Lösung für Aufgabe... 24