4.3 Adressierungsarten 4.3 Adressierungsarten - next-internet.com
4.3 Adressierungsarten 4.3 Adressierungsarten - next-internet.com
4.3 Adressierungsarten 4.3 Adressierungsarten - next-internet.com
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>4.3</strong> <strong>Adressierungsarten</strong><br />
Ablauf der Adressberechnung:<br />
Adresse im Programm<br />
Effektive, logische Adresse<br />
Physikalische Adresse<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
Dynamische Adressberechnung<br />
(explizite, durch den Befehl<br />
verlangte Adressrechnung)<br />
Speicherverwaltungseinheit<br />
(virtuelle Speicherverwaltung)<br />
Direkte Adressierung (direct addressing)<br />
Der Befehl enthält im Speicherwort nach dem OpCode<br />
die logische Adresse des Operanden, aber keine weiteren<br />
Vorschriften zu deren Manipulation, z.B. durch die<br />
Addition mit einem Registerinhalt<br />
Assemblerschreibweise: <br />
Effektive Adresse: EA = ((PC) + 1)<br />
Zwei Fälle können unterschieden werden:<br />
Absolute Adressierung<br />
Seiten-Adressierung<br />
Beispiel:<br />
Register-indirekte Adressierung<br />
Befehlsregister Prozessor<br />
OpCode<br />
AReg<br />
(Stackpointer)<br />
+ / -<br />
Registersatz<br />
Adresse<br />
Index- oder<br />
Basisregister,<br />
(Stackpointer)<br />
LD R1, (A0) (load)<br />
(Lade das Register R1 mit dem Inhalt des durch das Adressregister<br />
A0 gegebenen Speicherwortes)<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
Speicher<br />
Operand<br />
Indizierte Adressierung (indexed addressing)<br />
Speicher-relative Adressierung<br />
(memory relative addressing)<br />
Der Basiswert wird als absolute Adresse im Befehl<br />
vorgegeben<br />
Assemblerschreibweise: (Ii)<br />
Effektive Adresse: EA = ((PC) + 1) + (Ii)<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
7-1<br />
7-5<br />
7-9<br />
7-13 13<br />
<strong>4.3</strong> <strong>Adressierungsarten</strong><br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
Absolute Adressierung (extended direct addressing)<br />
Der Befehl enthält im Speicherwort, das dem OpCode<br />
folgt, die absolute, d. h. vollständige Adresse des<br />
Operanden im (logischen) Adressraum<br />
Speicher<br />
Befehlsregister<br />
Operand<br />
OpCode<br />
Prozessor<br />
Adresse<br />
Adresspufferregister<br />
Beispiel:<br />
JMP $07FE (jump) (Springe zur Adresse $07FE)<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
Register-indirekte Adressierung<br />
Bei der im Register stehenden Adresse handelt es sich oft<br />
um die Anfangs- oder Endadresse eines Tabellenbereichs im<br />
Speicher Registerinhalt automatisch modifizieren<br />
• postincrement: Nach der Ausführung des Befehls<br />
wird der Inhalt des Registers (um 1) erhöht und zeigt<br />
danach auf die nachfolgende Speicherzelle<br />
- Assemblerschreibweise: (Ri)+<br />
- Effektive Adresse: EA = (Ri)<br />
- Beispiel: INC (R0)+ (increment)<br />
(Inkrementiere zunächst den Inhalt des Speicherwortes, das<br />
durch das Register R0 adressiert wird, und danach den Inhalt<br />
von R0)<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
Speicher-relative Adressierung<br />
Befehlsregister<br />
Adresspufferregister<br />
OpCode I-Reg<br />
Adresse<br />
Prozessor<br />
Beispiel:<br />
ST R1,$A704(R0) (store)<br />
(Speichere den Inhalt von R1 in das Speicherwort, dessen Adresse<br />
sich durch Addition des Inhaltes von R0 zur Basis $A704 ergibt)<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
+<br />
Index-<br />
Register<br />
Speicher<br />
Operand<br />
7-2<br />
7-6<br />
7-10 10<br />
7-14 14<br />
<strong>4.3</strong>.2 Einstufige Speicher-Adressierung<br />
<strong>4.3</strong>.1 Register-Adressierung<br />
Operand steht bereits im Register<br />
kein Speicherzugriff erforderlich<br />
<strong>4.3</strong>.2 Einstufige Speicher-Adressierung<br />
Eine Adressberechnung zur Ermittlung der effektiven<br />
Adresse notwendig, d. h. keine mehrfachen<br />
Speicherzugriffe zur Adressermittlung<br />
<strong>4.3</strong>.3 Zweistufige Speicher-Adressierung<br />
Mehrere sequentielle Adressberechnungen und<br />
Speicherzugriffe. Ergebnis der ersten Berechnung liefert<br />
die Adresse einer Speicherzelle, deren Inhalt wieder eine<br />
Adresse oder ein Offset zur weiteren Berechnung ist<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
Seiten-Adressierung (direct page addressing)<br />
Im Befehl steht als Kurz-Adresse nur der niederwertige<br />
Teil der Operandenadresse (Low-Adresse)<br />
Zero-page-Adressierung:<br />
der höherwertige Adressteil wird durch die entsprechende<br />
Anzahl von '0'-Bits ersetzt. Dadurch wird im Adressraum<br />
nur die "unterste Seite" (zero page) angesprochen<br />
Seiten-Register-Adressierung („direct“pageregister<br />
addressing):<br />
der höherwertige Adressteil wird in einem Register des<br />
Prozessors (DP-Register, direct page register) zur Verfügung<br />
gestellt<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
Register-indirekte Adressierung<br />
• predecrement: Vor der Ausführung des Befehls wird<br />
der Inhalt des Registers erniedrigt und zeigt danach<br />
auf die vorhergehende Speicherzelle<br />
- Assemblerschreibweise: -(Ri)<br />
- Effektive Adresse: EA = (Ri) – 1<br />
- Beispiel: CLR -(R0) (clear)<br />
(Dekrementiere zuerst den Inhalt des Registers R0 und lösche<br />
danach das Speicherwort, das durch R0 adressiert wird)<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
Indizierte Adressierung (indexed addressing)<br />
Register-relative Adressierung<br />
(register relative addressing, based mode)<br />
Der Basiswert befindet sich in einem Basisregister, auf<br />
das durch das BReg-Feld im OpCode verwiesen wird. Im<br />
Befehl wird ein Offset angegeben, der zum Inhalt des<br />
Basisregisters addiert wird.<br />
Assemblerschreibweise: (Bi)<br />
Effektive Adresse: EA = (Bi) + ((PC) + 1)<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
7-3<br />
7-7<br />
7-11 11<br />
7-15 15<br />
<strong>4.3</strong>.2 Einstufige Speicher-Adressierung<br />
<strong>4.3</strong>.2 Einstufige Speicher-Adressierung<br />
Eine Adressberechnung zur Ermittlung der effektiven Adresse<br />
notwendig, d. h. keine mehrfachen Speicherzugriffe zur<br />
Adressermittlung<br />
Unmittelbare Adressierung (immediate addressing)<br />
Direkte Adressierung (direct addressing)<br />
• Absolute Adressierung<br />
• Seiten-Adressierung<br />
Register-indirekte Adressierung (register indirect addressing)<br />
Indizierte Adressierung (indexed addressing)<br />
• Speicher-relative Adressierung (memory relative addressing)<br />
• Register-relative Adressierung (register relative addressing)<br />
• Register-relative Adressierung mit Index (Based indexed mode)<br />
Befehlszähler-relative Adressierung (PC relative addressing)<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
Register-indirekte Adressierung<br />
Register-indirekte Adressierung<br />
(register indirect addressing)<br />
Hier enthält das durch seine Nummer im Register-Feld<br />
des OpCodes angegebene Adressregister die Adresse des<br />
Operanden (pointer, “Zeiger”, deshalb auch:<br />
Zeigeradressierung)<br />
Assemblerschreibweise: (Ri)<br />
Effektive Adresse: EA = (Ri)<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
Indizierte Adressierung (indexed addressing)<br />
Die effektive Adresse wird durch die Addition des Inhalts<br />
eines Registers zu einem angegebenen Basiswert<br />
berechnet. (Adressdistanz zu einem Basiswert,<br />
Tabellenverarbeitung)<br />
Je nachdem, in welcher Form der Basiswert vorgegeben<br />
wir, kann man unterscheiden zwischen:<br />
Speicher-relative Adressierung (memory relative addressing)<br />
Register-relative Adressierung (register relative addressing)<br />
Register-relative Adressierung mit Index (Based iondexed mode)<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
Register-relative Adressierung<br />
Befehlsregister<br />
OpCode BReg Offset<br />
Prozessor<br />
+ / -<br />
Datenbuspuffer<br />
Adresse<br />
Basisregister<br />
Beispiel:<br />
CLR $A7(B0) (clear)<br />
(Lösche das Speicherwort, dessen Adresse sich durch die<br />
Addition des hexadezimalen Offsets $A7 zum Inhalt des<br />
Basisregisters B0 ergibt)<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
+<br />
Speicher<br />
Operand<br />
7-4<br />
7-8<br />
7-12 12<br />
7-16 16
Indizierte Adressierung (indexed addressing)<br />
Register-relative Adressierung mit Index<br />
(based index mode)<br />
der Basiswert wird in einem Basisregister übergeben.<br />
Dazu wird der Inhalt eines Indexregisters addiert. Für<br />
dieses Indexregister kann wieder die automatische<br />
Veränderung „autoincrement/autodecrement“ gewählt<br />
werden. Zusätzlich kann häufig im Befehl ein Offset<br />
angegeben werden, der hinzuaddiert wird.<br />
Assemblerschreibweise: (Bi)(Ii)<br />
Effektive Adresse: EA = (Bi) + (Ii) + ((PC) + 1)<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
Visualisierung<br />
Register-Adressierung und<br />
Einstufige Speicher-Adressierung<br />
Siehe TI-Homepage<br />
http://i61www.ira.uka.de/users/asfour/TI/<strong>Adressierungsarten</strong>/<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
Programmiermodell der Intel 80x86<br />
Register des 8086:<br />
Alle Register jetzt 16 Bit Register<br />
(AX, DX, CX, BX, SP, IP)<br />
zusätzliche 16 Bit Register BP, SI, DI<br />
zusätzliche 16 Bit Register CS, DS, SS<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
7-17 17<br />
7-21 21<br />
Aus Kompatibilitätsgründen und zur Unterstützung Byte-<br />
Orientierter Probleme sind die Register AX, DX, CX und BX<br />
weiterhin byteweise ansprechbar<br />
Die zusätzlichen 16 Bit Register CS, DS und SS dienen als<br />
Segmentregister zusammen mit SP und IP, sowie CX und DX<br />
zur Erweiterung des Adressraums auf 20 Bit (1Mbyte)<br />
Befehlsaufbau der Intel-x-86-Prozessoren<br />
Byte 7<br />
1a<br />
1b<br />
2a<br />
2b<br />
3a<br />
3b<br />
3c<br />
3d<br />
4a<br />
4b<br />
4c<br />
4d<br />
6<br />
5<br />
4<br />
3<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
2<br />
1<br />
D WL<br />
Mod Reg<br />
R/M<br />
SC IReg BReg<br />
0 Bit<br />
Operationscode<br />
(1 oder 2 Bytes)<br />
Register- und Adressierungsart-<br />
Auswahl (1 oder 2 Bytes)<br />
Leeres Feld (0 Byte) oder<br />
Adress-Offset mit<br />
8, 16, 32 bit<br />
Leeres Feld (0 Byte) oder<br />
Daten mit<br />
8, 16, 32 bit<br />
7-25 25<br />
7-29 29<br />
Register-relative Adressierung mit Index<br />
Befehlsregister<br />
OpCode BReg IReg Offset<br />
+/-<br />
Prozessor<br />
Indexregister<br />
+ /<br />
-<br />
Datenbuspuffer<br />
Beispiel:<br />
DEC $A7(B0)(I0)+ (decrement)<br />
(Dekrementiere das Speicherwort, dessen Adresse sich durch<br />
Addition der Inhalte der Register I0 und B0 zum Offset $A7 ergibt,<br />
und erhöhe danach den Inhalt des Registers I0)<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
+<br />
Adresse<br />
Basisregister<br />
4.4 RISC & CISC<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
Speicher<br />
Operand<br />
CISC<br />
Complex Instruction Set Computers<br />
RISC<br />
Reduced Instruction Set Computers<br />
Programmiermodell der Intel 80x86<br />
Erweiterung aller Register auf 32 Bit<br />
Allgemeine Register: Daten- und Adressregister,aber<br />
teilweise mit Spezialfunktionen<br />
Akkumulator (EAX)<br />
Datenregister für Ein-/Ausgabe (EDX)<br />
Zählregister für Schleifen (ECX)<br />
Basisregister (EBX, EBP)<br />
Indexregister (ESI, EDI)<br />
Stackregister (ESP)<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
Befehlsaufbau der Intel-x-86-Prozessoren<br />
Ein Befehl besteht aus maximal 12 Bytes.<br />
Der Opcode belegt je nach Befehlstyp 1 oder 2 Bytes<br />
Das WL-Bit (Word Length) bestimmt die Länge eines im Befehl<br />
„unmittelbar“ angegeben Datum oder eines Offsets<br />
Die folgenden beiden Bytes dienen zur Auswahl der<br />
Adressierungsart und der dabei benutzten Register<br />
Falls ein Offset für die Adressberechnung erforderlich ist,<br />
wird dieser in den folgenden 1 bis 4 Bytes angegeben<br />
In den nächsten Bytes kann ein „unmittelbar<br />
adressiertes“ Datum mit einer Länge von 1, 2, 4 byte<br />
auftreten.<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
7-18 18<br />
7-22 22<br />
7-26 26<br />
7-30 30<br />
Indizierte Adressierung (indexed addressing)<br />
Befehlszähler-relative Adressierung<br />
(program counter relative addressing)<br />
Die effektive Adresse entsteht durch die Addition eines<br />
im Befehl angegebenen Offsets zum aktuellen<br />
Befehlszählerstand.<br />
Diese Adressierungsart erlaubt es, Programme im<br />
Hauptspeicher “frei” zu verschieben<br />
Assemblerschreibweise:<br />
(PC) oder nur<br />
<br />
Effektive Adresse: EA = (PC) + 2 + ((PC) + 1)<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
Programmiermodell der Intel 80x86<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
Programmiermodell der Intel 80x86<br />
Spezialregister:<br />
Segment-Register zur virtuellen Adressverwaltung<br />
(logische → physikalische Adresse) sowie aus<br />
Kompatibilitätsgründen zu 8086<br />
Code-Segment Register (CS)<br />
Stack-Segment Register (SS)<br />
Daten-Segment Register (DS - GS)<br />
Programmzähler (EIP)<br />
32 Bit ( 4 Gbyte Adressraum)<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
CISC & RISC<br />
Zwei Techniken zur Implementierung von Befehlen im<br />
Rechner<br />
Direkt durch Hardware<br />
• aufwendige Schaltnetze und Schaltwerke bei<br />
größer Anzahl von Befehlen (200-300)<br />
Mikroprogramme als Befehlsinterpreter<br />
• Mikroprogrammspeicher im Steuerwerk,<br />
der neu geladen werden kann<br />
• verschiedene Befehlssätze können implementiert werden<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
7-19 19<br />
7-23 23<br />
7-27 27<br />
7-31 31<br />
Befehlszähler-relative Adressierung<br />
Befehlsregister<br />
Datenbuspuffer<br />
OpCode Offset<br />
Prozessor<br />
+ /<br />
-<br />
Adresse<br />
Befehlszähler<br />
Beispiel:<br />
LBRA $7FFF (long branch always)<br />
(Verzweige “unbedingt” zu der Speicherzelle, deren Adressdistanz<br />
zum aktuellen Programmzähler $7FFF ist)<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
+<br />
Speicher<br />
Operand/ OpCode<br />
Programmiermodell der Intel 80x86<br />
Der Registersatz ist eine Aufwärts-Entwicklung der<br />
Registersätze von 8080 und 8086:<br />
Register des 8080: 8 Bit Register 16 Bit Register<br />
AL,<br />
DL, DH (DX)<br />
CL, CH (CX)<br />
BL, BH (BX)<br />
SP, IP<br />
Einige 8 Bit Register zusammengefaßt zu 16 Bit Registern<br />
(DX, CX, BX)<br />
AL mit dem Statusregister zu einem 16 Bit Register<br />
zusammengefaßt (PSW, Processor Status Word)<br />
Programmiermodell der Intel 80x86<br />
Spezialregister:<br />
Statusregister (EFR): Flags, wie CF, PF, AF und DF<br />
Steuerregister (CR0, Control Register 0): enhält<br />
Flags, die den Prozessorzustand beschreiben<br />
• PG: Paging Enable (Speicherverwaltung mit Seitenwechsel)<br />
• ET: Processor Extention (Art der Coprozessorsteuerung)<br />
• TS: Task Switch (Prozesswechsel)<br />
• EM: Emulate Coprozessor (Coprozessor-Emulation)<br />
• MP: Monitor Coprozessor (Coprozessor-Überwachung)<br />
• PE: Protection Enable (virtuelle (protected) oder reale (real)<br />
Speicherverwaltung)<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
Mima-Architektur (Übungsblatt 3)<br />
Mikroprogrammierte<br />
Minimalmaschine (von-<br />
Neumann-Prinzip)<br />
SW mit 10 Meldesignale,<br />
18 Steuersignale und<br />
Mikroprogrammspeicher<br />
für maximal 256<br />
Mikrobefehle<br />
Befehlsabarbeitung:<br />
• Lese-Phase<br />
• Dekodierphase<br />
• Ausführungsphase<br />
3 Taktzyklen für Leseund<br />
Schreibzugriffe<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
7-20 20<br />
7-24 24<br />
7-28 28<br />
7-32 32
Mikroprogrammsteuerwerke<br />
Mikrobefehlsformat:<br />
A r A w X Y Z E Pr P w I r I w D r D w S C2 C 1 C 0 R W 0 0 Folgeadresse F<br />
27<br />
24<br />
20<br />
Jedes Bit des Mikrobefehls entspricht einem Steuersignal<br />
• Horizontale Mikroprogrammierung:<br />
Steuerungsfeld im Mikrobefehl für jedes Steuersignal<br />
im Rechner Kein Dekoder<br />
• Vertikale Mikroprogrammierung:<br />
Zusammenfassung von Steuersignalen zu Feldern.<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
16<br />
12<br />
9<br />
8<br />
0<br />
7-33 33<br />
Mikroprogrammsteuerwerke<br />
Fetch-Phase bei der MIMA:<br />
1. Takt: IAR -> SAR; IAR -> X; R = 1<br />
2. Takt: Eins -> Y; ALU auf addieren; R = 1<br />
3. Takt: ALU auf addieren; R = 1<br />
4. Takt: Z -> IAR<br />
5. Takt: SDR -> IR<br />
Mikroprogramm der Fetch Phase<br />
0010 0001 0000 1000 1000 0000 0001<br />
0001 0100 0000 0000 1000 0000 0010<br />
0000 0000 0000 0001 1000 0000 0011<br />
0000 1010 0000 0000 0000 0000 0100<br />
0000 0000 1001 0000 0000 0000 0101<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
7-34 34<br />
Prinzip der Mikroprogrammierung<br />
Hauptspeicher<br />
CPU<br />
Steuerwerk<br />
add r1,r2,r3<br />
sub r4,r2,r5<br />
bnez r4,label<br />
lw r2,0x10(r1)<br />
…<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
Assemblerprogramm<br />
Mikroprogramm-<br />
Speicher<br />
7-35 35<br />
Steuereingänge<br />
Implementierung des Steuerwerks<br />
Sprungspeicher<br />
Ablaufsteuerung<br />
MUX<br />
µPC<br />
Institut für Prozessrechentechnik, Automation und Robotik<br />
Prof. Dr. U. Brinkschulte & Dr.-Ing. Dr. Ing. T. Asfour, SS 2005<br />
Mikrobefehlszähler<br />
Mikroprogrammspeicher<br />
Dekoder<br />
Steuerausgänge<br />
7-36 36