3.¨Ubungsblatt - next-internet.com
3.¨Ubungsblatt - next-internet.com
3.¨Ubungsblatt - next-internet.com
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