Computer-Architektur – Ein Überblick · Computer-Architektur – Ein Überblick Johann...

Preview:

Citation preview

Computer-Architektur – Ein Überblick

Johann Blieberger

Institut für Rechnergestützte Automation

Computer-Architektur – Ein Uberblick – p.1/27

Computer-Aufbau: Motherboard

Computer-Architektur – Ein Uberblick – p.2/27

Computer-Aufbau: Prozessorkuhler

Computer-Architektur – Ein Uberblick – p.3/27

Computer-Aufbau: Central Processing Unit (CPU)

Computer-Architektur – Ein Uberblick – p.4/27

Computer-Aufbau: Speicher

Computer-Architektur – Ein Uberblick – p.5/27

Computer-Aufbau: Tastatur

Computer-Architektur – Ein Uberblick – p.6/27

Computer-Aufbau: Maus

Computer-Architektur – Ein Uberblick – p.7/27

Computer-Aufbau: Festplattenbestandteile

Computer-Architektur – Ein Uberblick – p.8/27

Computer-Aufbau: Festplattenskizze

Computer-Architektur – Ein Uberblick – p.9/27

Computer-Aufbau

Bussystem

WerkEin/Ausgabe

EinheitenSteuer−

Speicher Prozessor

Computer-Architektur – Ein Uberblick – p.10/27

Speicher (Memory)

InstruktionBefehl

Adresse Inhalt

0815 add +1

4711 25 Datum

Computer-Architektur – Ein Uberblick – p.11/27

Speicher-Operationen

• Welche?

Computer-Architektur – Ein Uberblick – p.12/27

Speicher-Operationen

• Welche?

• Lies den Inhalt der Speicherzelle mit der Adresse adr

Computer-Architektur – Ein Uberblick – p.12/27

Speicher-Operationen

• Welche?

• Lies den Inhalt der Speicherzelle mit der Adresse adr

• Schreib ein Datum in die Speicherzelle mit der Adresse adr

Computer-Architektur – Ein Uberblick – p.12/27

Speicher-Operationen

• Welche?

• Lies den Inhalt der Speicherzelle mit der Adresse adr

• Schreib ein Datum in die Speicherzelle mit der Adresse adr

• Woher lesen und wohin schreiben?

Computer-Architektur – Ein Uberblick – p.12/27

Speicher-Operationen

• Welche?

• Lies den Inhalt der Speicherzelle mit der Adresse adr

• Schreib ein Datum in die Speicherzelle mit der Adresse adr

• Woher lesen und wohin schreiben?

• Lies den Inhalt der Speicherzelle mit der Adresse adr, diesich im MAR (Memory Address Register) befindet, in das MBR(Memory Buffer Register)

Computer-Architektur – Ein Uberblick – p.12/27

Speicher-Operationen

• Welche?

• Lies den Inhalt der Speicherzelle mit der Adresse adr

• Schreib ein Datum in die Speicherzelle mit der Adresse adr

• Woher lesen und wohin schreiben?

• Lies den Inhalt der Speicherzelle mit der Adresse adr, diesich im MAR (Memory Address Register) befindet, in das MBR(Memory Buffer Register)

• Schreib ein Datum (MBR) in die Speicherzelle mit derAdresse adr (MAR)

Computer-Architektur – Ein Uberblick – p.12/27

Prozessor (CPU)

A

R Ergebnis

ALU

B Register

MBR

MAR

A−Bus B−Bus

Arithmetic Logic Unit

R−Bus

Computer-Architektur – Ein Uberblick – p.13/27

Prozessor - Befehle

A

R Ergebnis

ALU

B Register

MBR

MAR

A−Bus B−Bus

Arithmetic Logic Unit

R−Bus

• Welche?

Computer-Architektur – Ein Uberblick – p.14/27

Prozessor - Befehle

A

R Ergebnis

ALU

B Register

MBR

MAR

A−Bus B−Bus

Arithmetic Logic Unit

R−Bus

• Welche?

• Inhalt B → MAR

Computer-Architektur – Ein Uberblick – p.14/27

Prozessor - Befehle

A

R Ergebnis

ALU

B Register

MBR

MAR

A−Bus B−Bus

Arithmetic Logic Unit

R−Bus

• Welche?

• Inhalt B → MAR

• Inhalt MBR → A

Computer-Architektur – Ein Uberblick – p.14/27

Prozessor - Befehle

A

R Ergebnis

ALU

B Register

MBR

MAR

A−Bus B−Bus

Arithmetic Logic Unit

R−Bus

• Welche?

• Inhalt B → MAR

• Inhalt MBR → A

• Ergebnis → MBR

Computer-Architektur – Ein Uberblick – p.14/27

Prozessor - Befehle

A

R Ergebnis

ALU

B Register

MBR

MAR

A−Bus B−Bus

Arithmetic Logic Unit

R−Bus

• Welche?

• Inhalt B → MAR

• Inhalt MBR → A

• Ergebnis → MBR

• Lies!

Computer-Architektur – Ein Uberblick – p.14/27

Prozessor - Befehle

A

R Ergebnis

ALU

B Register

MBR

MAR

A−Bus B−Bus

Arithmetic Logic Unit

R−Bus

• Welche?

• Inhalt B → MAR

• Inhalt MBR → A

• Ergebnis → MBR

• Lies!• Schreib!

Computer-Architektur – Ein Uberblick – p.14/27

Prozessor - Micro-Code

A

R Ergebnis

ALU

B Register

MBR

MAR

A−Bus B−Bus

Arithmetic Logic Unit

R−Bus

• Load (Lesen)

Computer-Architektur – Ein Uberblick – p.15/27

Prozessor - Micro-Code

A

R Ergebnis

ALU

B Register

MBR

MAR

A−Bus B−Bus

Arithmetic Logic Unit

R−Bus

• Load (Lesen)

• B→MAR

Computer-Architektur – Ein Uberblick – p.15/27

Prozessor - Micro-Code

A

R Ergebnis

ALU

B Register

MBR

MAR

A−Bus B−Bus

Arithmetic Logic Unit

R−Bus

• Load (Lesen)

• B→MAR

• Lies!

Computer-Architektur – Ein Uberblick – p.15/27

Prozessor - Micro-Code

A

R Ergebnis

ALU

B Register

MBR

MAR

A−Bus B−Bus

Arithmetic Logic Unit

R−Bus

• Load (Lesen)

• B→MAR

• Lies!• MBR → A

Computer-Architektur – Ein Uberblick – p.15/27

Prozessor - Micro-Code

A

R Ergebnis

ALU

B Register

MBR

MAR

A−Bus B−Bus

Arithmetic Logic Unit

R−Bus

• Load (Lesen)

• B→MAR

• Lies!• MBR → A• Store (Schreiben)

Computer-Architektur – Ein Uberblick – p.15/27

Prozessor - Micro-Code

A

R Ergebnis

ALU

B Register

MBR

MAR

A−Bus B−Bus

Arithmetic Logic Unit

R−Bus

• Load (Lesen)

• B→MAR

• Lies!• MBR → A• Store (Schreiben)

• B→MAR

Computer-Architektur – Ein Uberblick – p.15/27

Prozessor - Micro-Code

A

R Ergebnis

ALU

B Register

MBR

MAR

A−Bus B−Bus

Arithmetic Logic Unit

R−Bus

• Load (Lesen)

• B→MAR

• Lies!• MBR → A• Store (Schreiben)

• B→MAR

• Ergebnis → MBR

Computer-Architektur – Ein Uberblick – p.15/27

Prozessor - Micro-Code

A

R Ergebnis

ALU

B Register

MBR

MAR

A−Bus B−Bus

Arithmetic Logic Unit

R−Bus

• Load (Lesen)

• B→MAR

• Lies!• MBR → A• Store (Schreiben)

• B→MAR

• Ergebnis → MBR

• Schreib!

Computer-Architektur – Ein Uberblick – p.15/27

Prozessor - Befehle

• Transfer-Operationen (Load, Store)

Computer-Architektur – Ein Uberblick – p.16/27

Prozessor - Befehle

• Transfer-Operationen (Load, Store)• I/O-Operationen (Ein-, Ausgabe) ähnlich Load/Store

Computer-Architektur – Ein Uberblick – p.16/27

Prozessor - Befehle

• Transfer-Operationen (Load, Store)• I/O-Operationen (Ein-, Ausgabe) ähnlich Load/Store• Arithmetische Operationen

Computer-Architektur – Ein Uberblick – p.16/27

Prozessor - Befehle

• Transfer-Operationen (Load, Store)• I/O-Operationen (Ein-, Ausgabe) ähnlich Load/Store• Arithmetische Operationen• Logische Operationen

Computer-Architektur – Ein Uberblick – p.16/27

Prozessor - Befehle

• Transfer-Operationen (Load, Store)• I/O-Operationen (Ein-, Ausgabe) ähnlich Load/Store• Arithmetische Operationen• Logische Operationen• unbedingte Sprünge

Computer-Architektur – Ein Uberblick – p.16/27

Prozessor - Befehle

• Transfer-Operationen (Load, Store)• I/O-Operationen (Ein-, Ausgabe) ähnlich Load/Store• Arithmetische Operationen• Logische Operationen• unbedingte Sprünge• bedingte Sprünge

Computer-Architektur – Ein Uberblick – p.16/27

Beispielprogramm

• Voraussetzungen:

Computer-Architektur – Ein Uberblick – p.17/27

Beispielprogramm

• Voraussetzungen:

• Speicheraddresse 0815: 25

Computer-Architektur – Ein Uberblick – p.17/27

Beispielprogramm

• Voraussetzungen:

• Speicheraddresse 0815: 25• Speicheraddresse 4711: 19

Computer-Architektur – Ein Uberblick – p.17/27

Beispielprogramm

• Programm:

Computer-Architektur – Ein Uberblick – p.18/27

Beispielprogramm

• Programm:

• Load(0815)

Computer-Architektur – Ein Uberblick – p.18/27

Beispielprogramm

• Programm:

• Load(0815)• A → R

Computer-Architektur – Ein Uberblick – p.18/27

Beispielprogramm

• Programm:

• Load(0815)• A → R• Load(4711)

Computer-Architektur – Ein Uberblick – p.18/27

Beispielprogramm

• Programm:

• Load(0815)• A → R• Load(4711)• R := R - A

Computer-Architektur – Ein Uberblick – p.18/27

Beispielprogramm

• Programm:

• Load(0815)• A → R• Load(4711)• R := R - A• Store(0815)

Computer-Architektur – Ein Uberblick – p.18/27

Beispielprogramm

• Programm:

• Load(0815)• A → R• Load(4711)• R := R - A• Store(0815)• Load(4711)

Computer-Architektur – Ein Uberblick – p.18/27

Beispielprogramm

• Programm:

• Load(0815)• A → R• Load(4711)• R := R - A• Store(0815)• Load(4711)• R := R + A

Computer-Architektur – Ein Uberblick – p.18/27

Beispielprogramm

• Programm:

• Load(0815)• A → R• Load(4711)• R := R - A• Store(0815)• Load(4711)• R := R + A• Store(4711)

Computer-Architektur – Ein Uberblick – p.18/27

Beispielprogramm

• Programm:

• Load(0815)• A → R• Load(4711)• R := R - A• Store(0815)• Load(4711)• R := R + A• Store(4711)• Load(0815)

Computer-Architektur – Ein Uberblick – p.18/27

Beispielprogramm

• Programm:

• Load(0815)• A → R• Load(4711)• R := R - A• Store(0815)• Load(4711)• R := R + A• Store(4711)• Load(0815)• R := R - A

Computer-Architektur – Ein Uberblick – p.18/27

Beispielprogramm

• Programm:

• Load(0815)• A → R• Load(4711)• R := R - A• Store(0815)• Load(4711)• R := R + A• Store(4711)• Load(0815)• R := R - A• Store(0815)

Computer-Architektur – Ein Uberblick – p.18/27

Frage

• Programm-Code

Computer-Architektur – Ein Uberblick – p.19/27

Frage

• Programm-Code• Wo ist das Programm gespeichert?

Computer-Architektur – Ein Uberblick – p.19/27

Frage

• Programm-Code• Wo ist das Programm gespeichert?• Im Speicher!

Computer-Architektur – Ein Uberblick – p.19/27

Frage

• Programm-Code• Wo ist das Programm gespeichert?• Im Speicher!• von Neumann-Architektur

Computer-Architektur – Ein Uberblick – p.19/27

Frage

• Programm-Code• Wo ist das Programm gespeichert?• Im Speicher!• von Neumann-Architektur• John von Neumann (1903–1957)

Computer-Architektur – Ein Uberblick – p.19/27

Frage

• Programm-Code• Wo ist das Programm gespeichert?• Im Speicher!• von Neumann-Architektur• John von Neumann (1903–1957)• Programm und Daten

im selben Speicher

Computer-Architektur – Ein Uberblick – p.19/27

Frage

• Programm-Code• Wo ist das Programm gespeichert?• Im Speicher!• von Neumann-Architektur• John von Neumann (1903–1957)• Programm und Daten

im selben Speicher• Speicher ist langsam

Computer-Architektur – Ein Uberblick – p.19/27

Frage

• Programm-Code• Wo ist das Programm gespeichert?• Im Speicher!• von Neumann-Architektur• John von Neumann (1903–1957)• Programm und Daten

im selben Speicher• Speicher ist langsam• von Neumannscher Flaschenhals

Computer-Architektur – Ein Uberblick – p.19/27

Instruction Register

• zusätzliches Register (IR)

Computer-Architektur – Ein Uberblick – p.20/27

Instruction Register

• zusätzliches Register (IR)• beinhaltet den Befehl

Computer-Architektur – Ein Uberblick – p.20/27

Programm Counter

• zusätzliches Register (PC)

Computer-Architektur – Ein Uberblick – p.21/27

Programm Counter

• zusätzliches Register (PC)• beinhaltet die Adresse, wo Befehl gespeichert ist

Computer-Architektur – Ein Uberblick – p.21/27

Programm Counter

• zusätzliches Register (PC)• beinhaltet die Adresse, wo Befehl gespeichert ist• PC wird nach Abarbeitung des Befehls um eins erhöht

Computer-Architektur – Ein Uberblick – p.21/27

Programm Counter

• zusätzliches Register (PC)• beinhaltet die Adresse, wo Befehl gespeichert ist• PC wird nach Abarbeitung des Befehls um eins erhöht• Immer?

Computer-Architektur – Ein Uberblick – p.21/27

Programm Counter

• zusätzliches Register (PC)• beinhaltet die Adresse, wo Befehl gespeichert ist• PC wird nach Abarbeitung des Befehls um eins erhöht• Immer?• Nein!

Computer-Architektur – Ein Uberblick – p.21/27

Programm Counter

• zusätzliches Register (PC)• beinhaltet die Adresse, wo Befehl gespeichert ist• PC wird nach Abarbeitung des Befehls um eins erhöht• Immer?• Nein!• Sprung-Befehle

Computer-Architektur – Ein Uberblick – p.21/27

Programm-Codierung

• Platzersparnis

Computer-Architektur – Ein Uberblick – p.22/27

Programm-Codierung

• Platzersparnis• Codierung als 0/1-Folgen

Computer-Architektur – Ein Uberblick – p.22/27

Beispielprogramm (noch einmal. . . )

• Voraussetzungen:

Computer-Architektur – Ein Uberblick – p.23/27

Beispielprogramm (noch einmal. . . )

• Voraussetzungen:

• Speicheradresse 0815: 25

Computer-Architektur – Ein Uberblick – p.23/27

Beispielprogramm (noch einmal. . . )

• Voraussetzungen:

• Speicheradresse 0815: 25• Speicheradresse 4711: 19

Computer-Architektur – Ein Uberblick – p.23/27

Beispielprogramm (noch einmal. . . )

• Voraussetzungen:

• Speicheradresse 0815: 25• Speicheradresse 4711: 19• Programm gespeichert ab Adresse: 1704

Computer-Architektur – Ein Uberblick – p.23/27

Beispielprogramm (noch einmal. . . )

• Voraussetzungen:

• Speicheradresse 0815: 25• Speicheradresse 4711: 19• Programm gespeichert ab Adresse: 1704• PC = 1704

Computer-Architektur – Ein Uberblick – p.23/27

Beispielprogramm

• Programm:

Computer-Architektur – Ein Uberblick – p.24/27

Beispielprogramm

• Programm:

• Load(0815)

Computer-Architektur – Ein Uberblick – p.24/27

Beispielprogramm

• Programm:

• Load(0815)• A → R

Computer-Architektur – Ein Uberblick – p.24/27

Beispielprogramm

• Programm:

• Load(0815)• A → R• Load(4711)

Computer-Architektur – Ein Uberblick – p.24/27

Beispielprogramm

• Programm:

• Load(0815)• A → R• Load(4711)• R := R - A

Computer-Architektur – Ein Uberblick – p.24/27

Beispielprogramm

• Programm:

• Load(0815)• A → R• Load(4711)• R := R - A• Store(0815)

Computer-Architektur – Ein Uberblick – p.24/27

Beispielprogramm

• Programm:

• Load(0815)• A → R• Load(4711)• R := R - A• Store(0815)• Load(4711)

Computer-Architektur – Ein Uberblick – p.24/27

Beispielprogramm

• Programm:

• Load(0815)• A → R• Load(4711)• R := R - A• Store(0815)• Load(4711)• R := R + A

Computer-Architektur – Ein Uberblick – p.24/27

Beispielprogramm

• Programm:

• Load(0815)• A → R• Load(4711)• R := R - A• Store(0815)• Load(4711)• R := R + A• Store(4711)

Computer-Architektur – Ein Uberblick – p.24/27

Beispielprogramm

• Programm:

• Load(0815)• A → R• Load(4711)• R := R - A• Store(0815)• Load(4711)• R := R + A• Store(4711)• Load(0815)

Computer-Architektur – Ein Uberblick – p.24/27

Beispielprogramm

• Programm:

• Load(0815)• A → R• Load(4711)• R := R - A• Store(0815)• Load(4711)• R := R + A• Store(4711)• Load(0815)• R := R - A

Computer-Architektur – Ein Uberblick – p.24/27

Beispielprogramm

• Programm:

• Load(0815)• A → R• Load(4711)• R := R - A• Store(0815)• Load(4711)• R := R + A• Store(4711)• Load(0815)• R := R - A• Store(0815)

Computer-Architektur – Ein Uberblick – p.24/27

Performance

• MIPS (Million Instructions per Second)

Computer-Architektur – Ein Uberblick – p.25/27

Performance

• MIPS (Million Instructions per Second)

Intel 8080 0,640 MIPS bei 2 MHz 1974Motorola 68000 1 MIPS bei 8 MHz 1979ARM 7500FE 35,9 MIPS bei 40 MHz 1996Intel 486DX 54 MIPS bei 66 MHz 1992Zilog eZ80 80 MIPS bei 50 MHz 1998ARM10 400 MIPS bei 300 MHz 1999Athlon 64 8400 MIPS bei 2,8 GHz 2005

Computer-Architektur – Ein Uberblick – p.25/27

Frage

• Was wäre, wenn Datum statt unter 0815unter Adresse 1709 stehen würde?

Computer-Architektur – Ein Uberblick – p.26/27

Frage

• Was wäre, wenn Datum statt unter 0815unter Adresse 1709 stehen würde?

• Das Programm ändert seinen eigenen Programm-Code!

Computer-Architektur – Ein Uberblick – p.26/27

Frage

• Was wäre, wenn Datum statt unter 0815unter Adresse 1709 stehen würde?

• Das Programm ändert seinen eigenen Programm-Code!• selbstmodifizierendes Programm

Computer-Architektur – Ein Uberblick – p.26/27

Frage

• Was wäre, wenn Datum statt unter 0815unter Adresse 1709 stehen würde?

• Das Programm ändert seinen eigenen Programm-Code!• selbstmodifizierendes Programm• nicht erwünscht

Computer-Architektur – Ein Uberblick – p.26/27

Frage

• Was wäre, wenn Datum statt unter 0815unter Adresse 1709 stehen würde?

• Das Programm ändert seinen eigenen Programm-Code!• selbstmodifizierendes Programm• nicht erwünscht• Wer überprüft das?

Computer-Architektur – Ein Uberblick – p.26/27

Frage

• Was wäre, wenn Datum statt unter 0815unter Adresse 1709 stehen würde?

• Das Programm ändert seinen eigenen Programm-Code!• selbstmodifizierendes Programm• nicht erwünscht• Wer überprüft das?• Hardware (Prozessor)?

Computer-Architektur – Ein Uberblick – p.26/27

Frage

• Was wäre, wenn Datum statt unter 0815unter Adresse 1709 stehen würde?

• Das Programm ändert seinen eigenen Programm-Code!• selbstmodifizierendes Programm• nicht erwünscht• Wer überprüft das?• Hardware (Prozessor)?• Betriebssystem

Computer-Architektur – Ein Uberblick – p.26/27

Noch ein Beispiel

• Load(0815)

Computer-Architektur – Ein Uberblick – p.27/27

Noch ein Beispiel

• Load(0815)• A → R

Computer-Architektur – Ein Uberblick – p.27/27

Noch ein Beispiel

• Load(0815)• A → R• Load(4711)

Computer-Architektur – Ein Uberblick – p.27/27

Noch ein Beispiel

• Load(0815)• A → R• Load(4711)• if A < R goto 1715

Computer-Architektur – Ein Uberblick – p.27/27

Noch ein Beispiel

• Load(0815)• A → R• Load(4711)• if A < R goto 1715• Store(0815)

Computer-Architektur – Ein Uberblick – p.27/27

Noch ein Beispiel

• Load(0815)• A → R• Load(4711)• if A < R goto 1715• Store(0815)• Load(4711)

Computer-Architektur – Ein Uberblick – p.27/27

Noch ein Beispiel

• Load(0815)• A → R• Load(4711)• if A < R goto 1715• Store(0815)• Load(4711)• R := R + A

Computer-Architektur – Ein Uberblick – p.27/27

Noch ein Beispiel

• Load(0815)• A → R• Load(4711)• if A < R goto 1715• Store(0815)• Load(4711)• R := R + A• Store(4711)

Computer-Architektur – Ein Uberblick – p.27/27

Noch ein Beispiel

• Load(0815)• A → R• Load(4711)• if A < R goto 1715• Store(0815)• Load(4711)• R := R + A• Store(4711)• Load(0815)

Computer-Architektur – Ein Uberblick – p.27/27

Noch ein Beispiel

• Load(0815)• A → R• Load(4711)• if A < R goto 1715• Store(0815)• Load(4711)• R := R + A• Store(4711)• Load(0815)• R := R - A

Computer-Architektur – Ein Uberblick – p.27/27

Noch ein Beispiel

• Load(0815)• A → R• Load(4711)• if A < R goto 1715• Store(0815)• Load(4711)• R := R + A• Store(4711)• Load(0815)• R := R - A• Store(0815)

Computer-Architektur – Ein Uberblick – p.27/27

Noch ein Beispiel

• Load(0815)• A → R• Load(4711)• if A < R goto 1715• Store(0815)• Load(4711)• R := R + A• Store(4711)• Load(0815)• R := R - A• Store(0815)• NOP

Computer-Architektur – Ein Uberblick – p.27/27

Recommended