16.11.2012 Aufrufe

3.¨Ubungsblatt - next-internet.com

3.¨Ubungsblatt - next-internet.com

3.¨Ubungsblatt - next-internet.com

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Rechnerorganisation im Sommersemester 2011<br />

3. Übungsblatt<br />

Abgabetermin: 12. Mai 2011, 13:15 Uhr<br />

Institut für Technische Informatik (ITEC)<br />

Institut für Anthropomatik (IFA)<br />

Prof. Dr. J. Henkel<br />

Dr.-Ing. T. Asfour<br />

Dipl.-Inform. Ö. Terlemez<br />

Dipl.-Inform. M. Kröhnert<br />

Adenauerring 2, Geb. 50.20<br />

Email: ti@ira.uka.de<br />

Web: http://ti.ira.uka.de<br />

Aufgabe 1 (6 Punkte)<br />

Die MIMA sei eine mikroprogrammierte Minimalmaschine, die nach dem von-Neumann-<br />

Prinzipaufgebautist,d.h.Maschinenbefehle werdensequentiell abgearbeitet(sieheBeiblatt:<br />

Architektur der MIMA). In der Lese-Phase (fetch phase) wird ein über IAR adressierter Befehl<br />

aus dem Speicher gelesen und im IR abgelegt. In der anschließenden Ausführungsphase<br />

(execute phase) wird der Befehl dekodiert und ausgeführt. Dann folgt ein Zugriff auf den<br />

nächsten Befehl.<br />

DieBefehlsbearbeitung wirdvom Steuerwerk SW gesteuert, welches über 10Meldesignale als<br />

Eingänge und 18 Steuersignale als Ausgänge verfügt. Außerdem enthält SW zumindest einen<br />

Mikroprogrammspeicher fürmaximal256MikrobefehleundeinRegisterfürdenausgelesenen<br />

Mikrobefehl. Nehmen Sie an, dass ein Hauptspeicherzugriff (Lesen und Schreiben) drei Takte<br />

dauert und währenddessen R = 1 (bzw. W = 1) sein muss. Eine ALU-Operation sei nach<br />

einem Takt abgeschlossen.<br />

Das Mikroprogramm für die Lese-Phase (fetch phase) besteht aud fünf Mikrobefehlen:<br />

1. Takt: IAR → SAR; IAR → X; R = 1<br />

2. Takt: Eins → Y; R = 1<br />

3. Takt: ALU auf Addieren; R = 1<br />

4. Takt: Z → IAR<br />

5. Takt: SDR → IR<br />

⎫<br />

⎪⎬<br />

⎪⎭<br />

Fetch-Phase


3. Übungsblatt zur Vorlesung ” Rechnerorganisation“ im Sommersemester 2011 2<br />

Kodieren Sie das oben angegebene Mikroprogramm für die Lese-Phase (fetch phase). Das<br />

Mikroprogramm soll bei der 8-Bit-Adresse 0x00 beginnen. Verwenden Sie das folgende 28-<br />

Bit-Mikrobefehlformat:<br />

A r A w X Y Z E P r P w I r I w D r D w S C 2 C 1 C 0 R W 0 0 Folgeadresse F<br />

27<br />

Beispiel:<br />

24<br />

0x77:<br />

0x78:<br />

0x79:<br />

20<br />

7 0 0 0 0 7 9<br />

16<br />

12<br />

9<br />

8<br />

reserviert<br />

A w = X = Y = 1 (Akku -> X; Akku -> Y)<br />

Adresse des nächsten Befehls ist 0x79<br />

Aufgabe 2 (1 Punkte)<br />

Das bisher reservierte 8. Bit im Mikrobefehl sei mit D bezeichnet und wird als Kennzeichen<br />

dafür verwendet, dass die Adresse des nächsten Mikrobefehls aus dem Befehlsteil B23-B16<br />

ermittelt werden muss. Wie sieht dann der Mikrobefehl für die Dekodierung (6. Takt) aus?<br />

Aufgabe 3 (8 Punkte)<br />

Geben Sie die Mikroprogramme für die Ausführungsphasen der folgenden Maschinenbefehle<br />

an (jeweils ab dem 7. Takt, also nach der Fetch-Phase und der Dekodier-Phase):<br />

LDC, LDV, STV, AND, EQL, JMP, JMN, HALT<br />

Verwenden Sie 9. Bit (Bez.: B) entsprechend Aufgabe 2 für den bedingten Sprung (JMN).<br />

Aufgabe 4 (5 Punkte)<br />

Schreiben Sie ein MIMA-Programm, das die in der Speicherzelle 0x00001 liegende Zahl<br />

von der in der Speicherzelle 0x00000 liegenden Zahl subtrahiert und die Differenz in der<br />

Speicherzelle 0x00002 ablegt. Die Zahlen sind in 24-Bit-Zweierkomplementformat. Das<br />

Programm soll bei Adresse 0x00100 beginnen.<br />

Schreiben Sie zu jeder Ihrer Programmzeilen einen Kommentar in Pseudo-Code, der beschreibt,<br />

was Ihr Programm an dieser Stelle tut. Ohne Kommentar keine Punkte!<br />

Beispiel: 0x00100: 087654 entspricht LDC 0x87654,<br />

lädt die Konstante 0x87654 in den Akku<br />

0


3. Übungsblatt zur Vorlesung ” Rechnerorganisation“ im Sommersemester 2011 3<br />

N<br />

A r A w<br />

Akku<br />

E<br />

Eins<br />

S<br />

SAR<br />

20<br />

A 19 -A 0<br />

24<br />

24<br />

interner<br />

Datenbus<br />

Architektur der MIMA<br />

20<br />

24<br />

24<br />

20<br />

24<br />

24<br />

X<br />

P r P w<br />

IAR<br />

Z<br />

ALU<br />

24<br />

X<br />

D r D w<br />

SDR<br />

24<br />

D 23 -D 0<br />

C 2 C 1 C 0 ALU Operation<br />

000 tue nichts ( d.h. Z -> Z )<br />

001 X + Y -> Z<br />

010 rotiere X nach rechts -> Z<br />

011 X AND Y -> Z<br />

100 X OR Y -> Z<br />

101 X XOR Y -> Z<br />

110 Eins-Komplement von X -> Z<br />

111 falls X = Y, -1 -> Z, sonst 0 -> Z<br />

OpCode<br />

0<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

8<br />

9<br />

F0<br />

F1<br />

F2<br />

Mnemonik<br />

LDC c<br />

LDV a<br />

STV a<br />

ADD a<br />

AND a<br />

OR a<br />

XOR a<br />

EQL a<br />

JMP a<br />

JMN a<br />

HALT<br />

NOT<br />

RAR<br />

24<br />

I r I w<br />

IR<br />

8B 23 -B 16<br />

Y<br />

Z<br />

R W<br />

Takt<br />

T<br />

Steuerwerk<br />

SW<br />

C2-C0 Beschreibung<br />

c -> Akku<br />

-> Akku<br />

Akku -> <br />

Akku + -> Akku<br />

Akku AND -> Akku<br />

Akku OR -> Akku<br />

Akku XOR -> Akku<br />

falls Akku = :-1 -> Akku<br />

sonst : 0 -> Akku<br />

a -> IAR<br />

falls Akku < 0 : a -> IAR<br />

stoppt die MIMA<br />

3<br />

Y<br />

Register<br />

bilde Eins-Komplement von Akku -> Akku<br />

rotiere Akku eins nach rechts -> Akku<br />

Akku: Akkumulator<br />

X: 1. ALU Operand<br />

Y: 2. ALU Operand<br />

Z: ALU Ergebnis<br />

Eins: Konstante 1<br />

IAR: Instruktionsadreßregister<br />

IR: Instruktionsregister<br />

SAR: Speicheradreßregister<br />

SDR: Speicherdatenregister<br />

Steuersignale vom SW<br />

– für den internen Datenbus<br />

A r : Akku liest<br />

A w : Akku schreibt<br />

X: X-Register liest<br />

Y: Y-Register liest<br />

Z: Z-Register schreibt<br />

E: Eins-Register schreibt<br />

P r : IAR liest<br />

P w : IAR schreibt<br />

I r : IR liest<br />

I w : IR schreibt<br />

D r : SDR liest<br />

D w : SDR schreibt<br />

S: SAR liest<br />

– für die ALU<br />

C 2 -C 0 : Operation auswählen<br />

– für den Speicher<br />

R: Leseanforderung<br />

W: Schreibanforderung<br />

Meldesignale zum SW<br />

T: Takteingang<br />

N: Vorzeichen des Akku<br />

B 23 -B 16 : OpCode-Feld im IR<br />

Befehlsformate<br />

Op<br />

Code Adresse oder Konstante<br />

23 20 0<br />

OpCode<br />

F<br />

0 0 0 0<br />

23 20 16<br />

0<br />

Abgabeort: Briefkasten im Untergeschoß im Informatikgebäude am Fasanengarten (Geb. 50.34)


Vorlesung Rechnerorganisation Sommersemester 2011<br />

Name, Vorname:<br />

Matrikelnummer:<br />

Studiengang:<br />

Name des Tutors:<br />

- Übungsblatt 3 -<br />

Tutoriumsnummer

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!