• Keine Ergebnisse gefunden

3. Grundlagen der Rechner- architektur

N/A
N/A
Protected

Academic year: 2022

Aktie "3. Grundlagen der Rechner- architektur"

Copied!
28
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

3. Grundlagen der Rechner- architektur

3.1 Architektur des von-Neumann-Rechners

3.2 Maschinentypen: Einadressmaschine, Zwei- adressmaschine

3.3 Befehlsformate und Adressierungstechniken 3.4 Beispiel: der Prozessor Motorola 68 000

3.5 CISC vs. RISC

(2)

3.1 Architektur des von- Neumann-Rechners

In einem klassischen Digitalrechner werden Program- me und Daten in demselben Speicher abgelegt. Die Grundkomponenten des Rechners sind:

• Prozessor (mit Leitwerk und Rechenwerk)

– Leitwerk (Steuerwerk) zur Ablaufsteuerung.

Enthält z.B. den Taktgeber.

– Rechenwerk für Arithmetik, Vergleiche usw.

• Hauptspeicher (Arbeitsspeicher)

• E/A-Steuerung für die Ein- und Ausgabe.

Ein solcher Rechner wird als von-Neumann-Rechner bezeichnet.

(3)

Komponenten des Rechners

(4)

Bus

Die direkten Verbindungen zwischen Prozessor bzw.

E/A-Steuerung einerseits und Hauptspeicher anderer- seits werden meist durch eine Sammelschiene (Bus) ersetzt. Ein Bus hat Adressleitungen und Datenlei- tungen.

(5)

Hauptspeicher

Grundsätzlich können digitale Speicher auf zwei Arten adressiert werden:

– über den Inhalt der Speicherelemente (Assoziativ- speicher)

– über Speicheradressen. Dazu wird einem adres- sierbaren Element eine Speicheradresse fest

zugeordnet.

Ein adressierbares Element ist meist ein Byte (8 Bits), seltener ein Wort (16, 32 oder 64 Bits).

Der von-Neumann-Rechner verwendet die zweite

Adressierungstechnik. Der Hauptspeicher ist als RAM (Random Access Memory) realisiert. Dazu gibt es ein Adressregister, das das zu lesende bzw. zu schrei- bende Speicherelement bestimmt.

Einen kompletten Lese- bzw. Schreibvorgang für ein Speicherelement bezeichnet man als einen Speicher- zyklus.

(6)

Maschinensprache, Maschinenbefehl

Die wichtigste Schnittstelle zwischen Hardware und Software ist die Maschinensprache. Sie ist definiert durch eine Menge von Maschinenbefehlen. Ein Maschinenbefehl (auch: Maschineninstruktion) ent- spricht einer elementaren Operation des Rechners. Er ist in Hardware realisiert. Alle Anweisungen aus höhe- ren Programmiersprachen müssen auf Maschinen- befehle abgebildet werden.

Ein Maschinenbefehl besteht aus einem Bitmuster, das unmittelbar vom Prozessor interpretiert werden kann.

Ein Teil des Bitmusters beschreibt die gewünschte Operation (Operationscode), ein anderer Teil die Operandenadresse(n), also die Adresse(n) der Spei- cherelemente, die durch die Operation verknüpft wer- den sollen.

(7)

3.2 Maschinentypen: Einadress-

maschine, Zweiadressmaschine

Typischer Maschinenbefehl: Verknüpfung von zwei Operanden, Ergebniswert als dritter Operand.

Beispiele: Addition, bedingter Sprungbefehl

Deshalb müsste ein Maschinenbefehl neben dem Operationscode drei Operandenadressen enthalten.

Beispiel: (202): = (200) + (201)

Zu lesen als: Inhalt der Speicherzelle mit Adresse 202 ergibt sich aus der Addition der Inhalte der Speicherzellen 200 und 201.

Nachteile

• Die Befehle werden sehr lang.

• Der Speicherzugriff für alle drei Operanden wird zu langsam.

Besser

Operand(en) nach Möglichkeit prozessornah in einem oder mehreren Registern halten.

(8)

Einadressmaschine

Vereinbarung eines speziellen Registers, das stets den zweiten Operanden enthält und in das das Ergebnis geschrieben wird. Dieses Register heißt Akkumulator.

Befehlsformat der Einadressmaschine

Beispiel

Lade (200) (* in den Akkumulator *) Addiere (201) (* zum Akkumulator *)

Speichere (202) (* aus dem Akkumulator *)

(9)

Zweiadressmaschine

Die erste Adresse bezeichnet zugleich den ersten Ope- randen und das Ergebnis. Der erste Operand wird im Speicher überschrieben.

Befehlsformat der Zweiadressmaschine

Beispiel

Addiere (200), (201) (* Ergebnis in Speicherzelle 200 *)

(10)

Registermaschine (1)

Mittelding zwischen Akkumulatormaschine und Zwei- adressmaschine. Der erste Operand und der Ergebnis- ort ist stets ein Register. Es gibt nicht nur ein Register (= Akkumulator), sondern mehrere, z.B. 16.

Vorteile

- kurze Adresse (z. B. 4 Bits) für den ersten Operanden

- schnellere Zugriffszeit

- mehrere Zwischenergebnisse zugleich sehr schnell zugreifbar.

(11)

Registermaschine (2)

Beispiel

Lade R1, (200)

Addiere R1, (201) Speichere R1, (202)

Wichtiger Fall in der Praxis! (z.B. IBM/390, Motorola 68000)

Befehlsformat der Registermaschine

(12)

3.3 Befehlsformate und

Adressierungstechniken

Befehlsformate

Der Operationscode eines Befehls hat feste Länge, meist 8 Bits. Der Operandenteil hängt vom Maschinen- typ ab:

Operandenteil mit fester Länge

Alle Operandenteile haben feste Länge. Dadurch haben auch alle Befehle feste Länge. Leichte Hand- habung, effiziente Implementierung in Hardware, aber geringe Flexibilität.

Operandenteile mit verschiedenen Längen

Verschiedene Operandenformate sind möglich. Da- durch unterschiedliche Befehlslängen, z. B. 2 Bytes bis 6 Bytes (IBM/390).

(13)

Beispiel: Befehlsformate der IBM/390-Familie

(14)

Klassifikation von Befehlen (1)

Transportbefehle. Sie dienen dazu, Daten von einem Ort an einen anderen zu übertragen. Spei- cherbefehle schreiben Registerinhalte in den

Arbeitsspeicher, Ladebefehle transportieren aus dem Speicher zu lesende Daten in Register. Regis- ter-Register-Transporte werden ebenfalls als Laden bezeichnet, Speicher-Speicher-Transporte als Spei- chern. Transport mit Sofortoperanden dient zum Initialisieren von Register- oder Speicherinhalten.

Arithmetische Befehle. Sie dienen dazu, Operan- den in den vom Prozessor unterstützten Zahlen- Darstellungen zu manipulieren (ganze Zahlen, Gleitkommazahlen in verschiedenen Längen;

Addition, Subtraktion, Multiplikation, Division, Invertierung usw.).

Vergleichsbefehle. Hier werden zwei Operanden gemäß einer Ordnungsrelation und/oder der Bitmus-

(15)

Klassifikation von Befehlen (2)

Sprungbefehle. Der unbedingte Sprung über- schreibt den Befehlszähler immer mit einem ange- gebenen Operanden, der bedingte Sprung nur, wenn die Anzeigen im Statuswort des Prozessors einer als Sofortoperand angegebenen Maske

entsprechen. Wichtig ist weiter der Unterprogramm- sprung, der an die angegebene Programmadresse verzweigt, den alten Befehlszählerstand und die Rücksprungadresse aber vorher rettet (in ein

angegebenes Register, in den Hauptspeicher oder in einen speziellen Kellerspeicher (stack)). Manche Prozessoren verfügen auch über spezielle Schlei- fenbefehle, z.B. "dekrementiere und springe, wenn größer 0".

Bitmuster-Befehle. Sie dienen dazu, Operanden gemäß einer Bitmusteroperation zu manipulieren (bitweises UND/ODER/XOR/NOT, Schieben nach links oder rechts usw.)

(16)

Klassifikation von Befehlen (3)

Bit-Befehle. Transportbefehle zwischen einem Anzeigebit des Statusworts und Bitstellen in Regis- tern oder im Hauptspeicher (Bit testen, Bit schrei- ben) bzw. von Sofortoperand zu Bitstelle (Bit

setzen, Bit löschen).

E/A-Befehle. Transportbefehle zwischen E/A-

Steuerung und Registern oder dem Hauptspeicher.

Spezialbefehle. Sie beeinflussen die Betriebsart des Prozessors durch Laden spezieller Register (z.

B. Basisadressregister), dienen der Unterbre- chungsbehandlung und stehen in der Regel nur privilegierten Programmen (z.B. dem Betriebs- system) zur Verfügung.

(17)

Adressierungstechniken (1)

• Sofortoperand; im Befehl steht nicht die

Speicheradresse des Orts des Operanden, sondern der Operand selbst. Mit Sofortoperanden können gut Konstanten in eine Berechnung eingebracht werden.

• Kurzer Sofortoperand; der im Befehl stehende Sofortoperand besitzt besonders kurze Bitlänge (z.B. 4 Bit), hiermit können gut die häufigen Konstanten 0, 1 eingebracht werden.

• Register direkt; der Operand steht in dem angegebenen Register.

• Speicher direkt; der Operand steht in der per Adresse angegebenen Speicherzelle.

• Register indirekt; im angegebenen Register findet sich die Speicheradresse des Operanden

• Speicher indirekt; in der per Adresse angegebenen Speicherzelle steht die Speicheradresse des

Operanden

(18)

Adressierungstechniken (2)

• .. mit Distanz; zur Operandenadresse wird eine im Befehl stehende Konstante hinzuaddiert.

• .. indiziert; zur Operandenadresse wird der Inhalt eines zusätzlich angegebenen Indexregisters hinzuaddiert.

• .. Basisregister relativ; zur Operandenadresse wird der Inhalt eines besonderen Registers (des

Basisregisters), das nicht ausdrücklich im Befehl genannt wird, dazuaddiert.

• .. Befehlszähler relativ; zur Operandenadresse wird der momentane Inhalt des Befehlszählers

dazuaddiert.

(19)

Adressierungstechniken (3)

• Register indirekt mit Postinkrement; nach dem Operandenzugriff wird das im Befehl angegebene Register im Inhalt um 1 erhöht (Kelleroperation

"Pop").

(20)

Ablauf der Befehlsausführung

(21)

3.4 Beispiel: Motorola 68000

(22)

Registersatz des Motorola 68000 (1)

(23)

Registersatz des Motorola 68000 (2)

Wortoperanden (16 oder 32 Bits) müssen auf geraden Adressen beginnen.

Arithmetische Operationen sind für 8-Bit-Zahlen, 16-Bit- Zahlen und 32-Bit-Zahlen vorhanden. Negative Zahlen werden im Zweierkomplement dargestellt.

Arithmetik für Gleitkommazahlen wird nicht direkt unterstützt. Allerdings sind Operationscodes dafür reserviert, und durch Aufnahme eines separaten Gleitkommaprozes-sors auf die Prozessorplatine können auch Rechner mit Hardware-Gleitkomma- arithmetik verwirklicht werden.

(24)

Prozessorstatuswort SR

Dient zur Statusanzeige. Wird von den meisten Befeh- len gesetzt und/oder gelesen.

(25)

Adressierungstechniken des Motorola 68000

Datenregister direkt Dn Adressregister direkt An Adressregister indirekt (An) Adressregister indirekt mit

Postinkrement (An)+

Adressregister indirekt mit

Prädekrement -(An)

Adressregister indirekt mit

Distanz gw(An)

Adressregister indirekt mit

Distanz und Index gb(An,Dm) bzw.

gb(An,Am)

Direkt bw bzw. bl

PC relativ mit Distanz gw(PC) PC relativ mit Distanz und

Index gb(PC, Am) bzw.

gb(PC, Dm)

Sofortoperand #Zahl

(26)

3.5 CISC vs. RISC

CISC: Complex Instruction Set Computer

• Großer Befehlsvorrat (ca. 256 Befehle)

• Mächtige Befehle (z.B. Gleitkomma-Multiplikation).

Vereinfacht den Compilerbau.

• Man braucht relativ wenige Maschinenbefehle zur Lösung eines Problems → kurzer Objektcode (war ein wichtiges Argument bei teurem Hauptspeicher!)

• Relativ langsame Ausführung eines Maschinen- befehls (komplexes Mikroprogramm zur Inter- pretation eines Befehls)

• Beispiele: Motorola 68000-Familie, Intel 8086- Familie, IBM/370-Familie, DEC VAX-Familie

• Interessante Beobachtung in der Praxis: 80% aller ausgeführten Maschinenbefehle stammen aus 20%

des Befehlssatzes!

(27)

RISC: Reduced Instruction Set Computer

• Kleiner Befehlsvorrat (z.B. 100 Befehle)

• Nur sehr elementare Befehle

• Man braucht relativ viele Maschinenbefehle zur

Lösung eines Problems → relativ langer Objektcode

• Sehr schnelle Ausführung eines Maschinenbefehls durch hochgradig optimierte Prozessorlogik (auch für 32-Bit-Operanden oder 64-Bit-Operanden!). Die meisten Maschinenbefehle laufen in nur einem Prozessorzyklus ab. Es gibt kein Mikroprogramm.

• Beispiele: R 2000, R 3000 (z.B. DEC Station 2100, DEC System 5500); Sun SPARC (z.B. Sun 4); IBM POWER ("Performance Optimization with Enhanced RISC" in der IBM RS/6000)

(28)

Vergleich CISC-RISC

• Angaben der Prozessorleistung in MIPS (Millionen Instruktionen pro Sekunde) nicht sehr sinnvoll, da eine RISC-Instruktion weniger leistet als eine CISC- Instruktion.

• Der kürzeren Ausführungszeit einer RISC-Instruk- tion steht die größere Pfadlänge zur Lösung des- selben Problems gegenüber.

• RISC-Vorteile hängen in der Praxis sehr von der Qualität des Compilers ab (optimierender Compiler)

• Komplexe, mächtige Befehlssätze (CISC) waren sinnvoll, als der Mensch noch in Assembler pro- grammierte. Der Umweg vom hochsprachlichen Programm (z.B. in Java) über komplexe Befehle und das Mikroprogramm (aus einfachsten, direkt in Hardware implementierten Befehlen) wird bei RISC- Architekturen vermieden.

Referenzen

ÄHNLICHE DOKUMENTE

Eine Gravur durch den Schulhändler ist nicht mehr nötig, um den Rechner eindeutig einem Schüler zuordnen zu können.

Die Funktion sendet ein -Element, das den neuen Wert der Speicherzelle enthält... Spannend ist jetzt nur noch die Implementierung der Zelle selbst:.. Beim Anlegen der Zelle

Rahmen werden für jeden Prädikat-Aufruf erzeugt, enthalten Platz für die Variablen der aktuellen Klausel... Der Heap:.. 0

Färbe den bei C angegebenen

lu lu Lesen von Tastatur nach R1 (falls leer) oder R2 Lesen von Tastatur nach R1 (falls leer) oder R2 ld ld R1 anzeigen R1 anzeigen. pr z pr z Lesen von Speicherzelle z: R1 Lesen

„Die Gesamtheit der Schnittstellen einer Systemkomponente wird als deren Architektur bezeichnet; die Gesamtheit der Architekturen aller Systemkomponenten zusammen mit den

Teil der Programme für Rechensysteme, wobei die Programme zusammen mit den Eigenschaften der Rechensysteme den Betrieb der Rechensysteme, die Nutzung der Rechensysteme zur

Laif ® 900 Balance soll bei Kindern unter 12 Jahren nicht angewendet werden, da für diese Patientengruppe keine ausreichenden Untersuchungen vorliegen?. Nebenwirkungen: Selten