• Keine Ergebnisse gefunden

3. Grundlagen der Rechnerarchitektur

N/A
N/A
Protected

Academic year: 2022

Aktie "3. Grundlagen der Rechnerarchitektur"

Copied!
28
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

3. Grundlagen der

Rechnerarchitektur

3.1 Architektur des von - Neumann - Rechners

3.2 Maschinentypen: Einadressmaschine, Zweiadressmaschine

3.3 Befehlsformate und Adressierungstechniken

3.4 Beispiel: Motorola 68 000

3.5 CISC vs. RISC

(2)

3.1 Architektur des

von-Neumann-Rechners

In einem klassischen Digitalrechner werden Programme und Daten in demselben Speicher abgelegt.

Die Grundkomponenten 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

andererseits werden meist durch eine Sammelschiene (Bus) ersetzt. Ein Bus hat Adressleitungen und

Datenleitungen.

Eine Bussteuerung sorgt dafür, dass keine Konflikte durch gleichzeitige Benutzung auftreten und die Daten

(5)

Hauptspeicher

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

• über den Inhalt der Speicherelemente (Assoziativspeicher)

• über Speicheradressen. Dazu wird einem

adressierbaren Element eine Speicheradresse fest zugeordnet. Ein Element ist meist ein Byte (8 Bits) oder ein Wort (16 oder 32 Bits).

Der von - Neumann - Rechner verwendet die zweite Technik. Der Hauptspeicher ist als RAM realisiert. Dazu gibt es ein Adressregister, das das zu lesende bzw. zu schreibende Speicherelement bestimmt.

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

Speicherzyklus.

(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)

entspricht einer elementaren Operation des Rechners.

Alle Anweisungen aus höheren Programmiersprachen müssen auf Maschinenbefehle 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

Speicherelemente, die durch die Operation verknüpft werden sollen.

(7)

3.2 Maschinentypen:

Einadressmaschine, 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:

• Befehle werden sehr lang

• Speicherzugriff für alle drei Operanden zu langsam Besser: Operand(en) in Registern

(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

Operationscode

Adresse des ersten Operanden

Im Beispiel:

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

(201) (* zum Akkumulator *)

Speichere (202) (* aus dem Akkumulator *)

(9)

Zweiadressmaschine

Die erste Adresse bezeichnet zugleich den ersten

Operanden und das Ergebnis. Der erste Operand wird im Speicher überschrieben.

Befehlsformat der Zweiadressmaschine

Operationscode Adresse des ersten Adresse des Operanden

zweiten Operanten

Im Beispiel:

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

(10)

Registermaschine (1)

Mittelding zwischen Akkumulatormaschine und Zweiadressmaschine. Der erste Operand und der Ergebnisort ist stets ein Register. Es gibt nicht nur eines ( = Akkumulator), sondern mehrere, z.B. 16.

Vorteile: - kürzere Adresse (4 Bits) für den ersten Operanden

- schnellere Zugriffszeit

- mehrere Zwischenergebnisse zugleich sehr schnell zugreifbar

(11)

Registermaschine (2)

Operationscode Registeradresse Adresse des zweiten Operanten

Im Beispiel: Lade R1, (200) Addiere R1, (201) Speichere R1, (202) Wichtiger Fall in der Praxis! (z.B. IBM/370, Siemens 7.5 xx, Motorola 68000)

(12)

3.3 Befehlsformate und

Adressierungstechniken

Befehlsformate

Der Operationscode eines Befehls hat feste Länge, meist 8 Bits. Der Operandenteil hängt vom

Maschinentyp ab.

Einfachster Fall:

Alle Operandenteile haben feste Länge. Dadurch haben auch alle Befehle feste Länge. Leichte Handhabung, aber geringe Flexibilität.

Gängiger Fall:

Kombination aus verschiedenen Operandenformaten.

Dadurch unterschiedliche Befehlslängen, z.B. 2 Bytes bis 6 Bytes (IBM / 370).

(13)

Beispiel: Befehlsformate der IBM/370 - Familie

1. Instruktionsformate

(14)

Klassifikation von Befehlen (1)

• Transportbefehle; sie dienen dazu, Daten von einem Ort an einen anderen zu übertragen.

Speicherbefehle schreiben Registerinhalte in den Arbeitsspeicher, Ladebefehle transportieren aus dem Speicher zu lesende Daten in Register.

Register-Register-Transporte werden ebenfalls als Laden bezeichnet, Speicher-Speicher-Transporte als Speichern. Transport mit Sofortoperanden dient zum Initialisieren von Register- oder

Speicherinhalten.

• Arithmetische Befehle; sie dienen dazu, Operanden gemäß den vom Prozessor unterstützten Zahlen - Datentypen zu manipulieren (Betragszahlen, ganze Zahlen, Gleitkommazahlen, Bytes; Addition,

Subtraktion, Multiplikation, Division, Invertierung usw.).

• Vergleichsbefehle; hier werden zwei Operanden gemäß einer Ordnungsrelation und/oder der Bitmustergleichheit miteinander verglichen. Das Ergebnis wird als Anzeige im Statuswort des

(15)

Klassifikation von Befehlen (2)

• Sprungbefehle; der unbedingte Sprung überschreibt den Befehlszähler immer mit einem angegebenen Operanden, der bedingte nur, wenn die Anzeigen im Statuswort des Prozessors einer als Sofortoperand angegebenen Maske entsprechen. Wichtig ist weiter der Unterprogrammsprung, der an die angegebene Programmadresse verzweigt, den alten

Befehlszählerstand und die Rücksprungadresse aber vorher rettet (in ein angegebenes Register, in den Keller). Unter Umständen gibt es auch spezielle Schleifenbefehle, z.B. "dekrementirre und springe wenn größer 0".

• Bitmuster - Befehle; sie dienen dazu, Operanden gemäß einer Bitmusteroperation zu manipulieren (Bitmuster - UND/ODER/XOR/NEGIEREN,

Schieben)

• Bit - Befehle; Transportbefehle zwischen einem Anzeigebit des Statusworts und Bitstellen in

Registern oder Speicher (Bit testen, Bit schreiben) bzw. von Sofortoperand zu Bitstelle (Bit setzen, Bit löschen).

(16)

Klassifikation von Befehlen (3)

• E/A - Befehle; Transportbefehle zwischen E/A - Steuerung und Registern, bzw. Speicher.

• Spezialbefehle; sie beeinflussen die Betriebsart des Prozessors durch Laden spezieller Register (z.B.

Basisadressregister), dienen der

Unterbrechungsbehandlung und stehen i.d.R. nur privilegierten Programmen (z.B. dem

Betriebssystem) 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.

• Register indirekt mit Prädekrement; vor dem

Operandenzugriff wird das im Befehl angegebene Register im Inhalt um 1 vermindert, dann wird der Inhalt als Adresse des Operanden ausgewertet (Hiermit kann gut die Kelleroperation "Push"

(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 68 000

(22)

Registersatz des Motorola 68 000 (1)

Speicheraddressierung

Adressierbares Speicherelement ist ein Byte.

(23)

Registersatz des Motorola 68 000 (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 im Zweierkomplement.

Gleitkommazahlen werden nicht direkt unterstützt.

Allerdings sind Operationscodes reserviert und durch Aufnahme eines separaten Gleitkommaprozessors auf die Prozessorplatine können auch Rechner mit

hardwaremäßig unterstützter Gleitkommarithmetik verwirklicht werden.

(24)

Prozessorstatuswort SR

Dient zur Statusanzeige. Wird von den meisten Befehlen gesetzt und/oder gelesen.

Beispiele:

– Vergleichsbefehle setzen die Bits N und Z

– bedingte Sprungbefehle springen in Abhängigkeit

(25)

Adressierungstechniken des Motorola 68 000

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

Postinkrement (An)+

Adressregister indirekt mit

Prägdekrement -(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)

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

Vereinfacht den Compilerbau.

• Relativ wenige Maschinenbefehle zur Lösung eines Problems

→ kurzer Objektcode (war wichtig bei teurem Kernspeicher!)

• Relativ langsame Ausführung eines

Maschinenbefehls (komplexes Mikroprogramm zur Interpretation eines Befehls)

• Beispiele: Intel 8086 - Familie, Motorola 68 000 - 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)

• Nur sehr elementare Befehle

• Relativ viele Maschinenbefehle zur Lösung eines Problems « langer Objektcode

• Sehr schnelle Ausführung eines Maschinenbefehls durch hochgradig optimierte Prozessorlogik (auch für 32 - Bit - Operanden!). Die meisten

Maschinenbefehle laufen in 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" im IBM RS/6000)

(28)

Vergleich CISC - RISC

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

• (Deswegen wird MIPS auch oft zu "Misleading Indicator for Processing Speed" erweitert)

• Der kürzeren Ausführungszeit einer RISC -

Instruktion steht die größere Pfadlänge zur Lösung desselben Problems gegenüber

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

• komplexe, mächtige Befehlssätze (CISC) waren sinnvoll, als der Mensch noch in Assembler

programmierte. Der Umweg vom hochsprachlichen Programm (z.B. in Pascal) über komplexe Befehle und das Mikroprogramm aus einfachsten, direkt in Hardware implementierten Befehlen wird bei RISC -

Referenzen

ÄHNLICHE DOKUMENTE

Durch die Präsentation einschließlich Fachgespräch soll der Prüfungsteilnehmer zeigen, dass er fachbezogene Probleme und Lösungskonzepte zielgruppengerecht darstellen, den für die

Diskurs und Orientierung (Lacina, Kitzberger, Höller)... 55 4.1 Zusammen leben:

[r]

Theorien und Modelle zur sozial- emotionalen

tourIsmusPoLItIk 134 1 Ziele der Tourismuspolitik 135 2 Träger der Tourismuspolitik 136 3 Die österreichische Tourismusstrategie 137 3.1 Neue Wege im Tourismus 137 3.2

bis 40% etwa gleich, jedoch wird spätestens drei Monate nach Absetzen des Levothyroxins das Ausgangsvolumen der Schilddrüse wieder erreicht, wenn nicht eine Prophylaxe

Bei hoch dosiertem Einsatz von Kortikoidexterno auf ausgedehnten Hautflächen oder ihrer Anwendung über längere Zeit muß daran gedacht werden, daß eine Resorption

1.2.1.1 Managementwissenschaft und Nachbardisziplinen 1.2.1.2 Management als Prozess.. 1.2.1.3 Managementebenen aus institutioneller