06.10.2013 Aufrufe

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!