1. Grundlagen der Informatik Organisation und Architektur von Rechnern

1. Grundlagen der Informatik Organisation und Architektur von Rechnern Inhalt  Grundlagen digitaler Systeme  Boolesche Algebra / Aussagenlogik  Org...
Author: Eva Graf
34 downloads 2 Views 406KB Size
1. Grundlagen der Informatik Organisation und Architektur von Rechnern Inhalt  Grundlagen digitaler Systeme  Boolesche Algebra / Aussagenlogik  Organisation und Architektur von Rechnern  Algorithmen, Darstellung von Algorithmen mit Struktogrammen und Programmablaufplänen  Zahlensysteme und interne Informationsdarstellung

Peter Sobe

1

Rechneraufbau: Hardware-Struktur CPU Systembus

Memory RAM

E/A Bridge

GPU E/A-Bus

Netzwerk

Peter Sobe

DiskController



2

Rechneraufbau: CPU-Struktur Spezialregister

Datenregister

Rechenwerk

Steuerwerk

Lade-/SpeicherEinrichtung

CPU

Systembus Memory RAM Peter Sobe

Hier ist nicht alles gezeigt! Eine reale CPU ist wesentlich komplexer. 3

Schichtenmodell  Strukturierung des Rechensystems (Hardware und Software) in mehrere aufeinander liegende Schichten.  Höhere Schichten benutzen darunter liegende über Schnittstellen  Nur die Schnittstellen sind nach oben sichtbar, die Implementierung der zugehörigen Schicht bleibt verborgen (’information hiding’).  Schichten können ausgetauscht werden (unter Beibehaltung ihrer Schnittstelle), ohne dass die darüber liegenden Schichten geändert werden müssen. Beispiel: Verschiedene Sprachschichten

High-level language level (C): A = B + C;

Peter Sobe

Assembly language level (MC68020): MOVE.W B, D1 ADD.W C, D1 MOVE.W D1, A 4

Beispiel Machine language level (MC68020) (in bits): 1000:

MOVE.W

(0x2002).W,D1

0011 0010

0010 0000

0011 0000

1000 0010

1004:

ADD.W

(0x2004).W,D1

1101 0010

0010 0000

0111 0000

1000 0100

1008:

MOVE.W

D1,(0x2000).W

0011 0010

0001 0000

1100 0000

0001 0000

2000:

A

2002:

B

2004:

C

Peter Sobe

5

Schichten  Schnittstellen zwischen den Schichten  Einzelne Schichten können ausgetauscht werden, sofern die Schnittstellen zu den benachbarten Schichten beibehalten werden.

ausführbares Programm Laufzeitsystem, Bibliotheken, Dienste

Schnittstelle für ausführbare Programme

Betriebssystem Befehlssatz und Speicherarchitektur

Mikroarchitektur Digitale Logik Elektrische Schaltung Peter Sobe

6

x86-Architektur (1) Betrachtet ausgehend vom äußeren Erscheinungsbild: Registersatz: Anzahl der Register, Freiheiten bzw. Beschränkungen bei deren Verwendung Befehlssatz: Befehlsliste und evtl. verschiedene Varianten der Befehle, wenn unterschiedliche Adressierungsarten zugelassen sind.

Alles andere betrifft die Implementierung und Realisierung

Peter Sobe

7

x86-Architektur (2) Intel 80x86-Familie 80186

8086

Co-Proz. Busbreite Daten/Adress. (Bit) 16/20 8087

80188 80286

80287

80386DX

80386SX

80387

80486DX

80486SX

80487

Pentium

Verbesserung der Implementierung der Architektur von 12 CPI beim 8086 auf 1.5 - 3 CPI beim Pentium (CPI = Cycles Per Instruction). Peter Sobe

Große Bedeutung durch Einsatz in IBM-kompatiblen PCs. Aufgrund der hohen 16/24 Stückzahlen ‚Mainstream’ der 16/24 (SX) derzeitigen 32/32 (DX) Rechnerentwicklung. 32/32 64/32

CISC-Prozessoren aus historischen Gründen „binär abwärtskompatibel“ zum ‚Urahnen’ 8086 Stetige Verbesserung der Technologie (Taktfrequenz von 4.77 bis 10 MHz beim 8086/8088 auf über 3 GHz beim Pentium). 8

x86-Architektur (3) Allgemeine Register AX – Akkumulator-Register, Ziel und Quelle für Rechenoperationen Teilung in hohes Byte (AH) und niedriges Byte (AL) BX - Basis-Register für Anfangsadressen, Teilung in hohes Byte (BH) und niedriges Byte (BL) CX – Count Register, Teilung in hohes Byte (CH) und niedriges Byte (CL), allgemein verwendbar, spezielle Bedeutung bei Schleifen DX - Daten-Register , Teilung in hohes Byte (DH) und niedriges Byte (DL)

EAX EAX

RAX (bei x86-64)

AX AX

AH AH 64 Bit Peter Sobe

32 Bit

16 Bit

ALAL 8 Bit 9

x86-Architektur (4) Pointer-Register SP Stack-Pointer: zur Adressierung des Stacks verwendet BP Base-Pointer: zur Adressierung des Stacks verwendet IP Instruction-Pointer: Offset des nächsten Befehls

Index-Register SI Source-Index: Unterstützung von Adressierungen esi Quelle (eng: source) für Stringoperationen DI Destination-Index: Unterstützung von Adressierungen edi Ziel (eng: destination) für Stringoperationen

Segment-Register CS Code-Segment: zeigt auf aktuelles Codesegment DS Daten-Segment: zeigt auf aktuelles Datensegment SS Stack-Segment: zeigt auf aktuelles Stapelsegment ES Extra-Segment: zeigt auf weiteres Datensegment Peter Sobe

10

x86-Architektur (5)

Statusflags CF Carry-Flag Übertragflag AF Auxiliary Carry-Flag Hilfsübertragflag ZF Zero-Flag Nullflag SF Sign-Flag Vorzeichenflag PF Parity-Flag Paritätsflag OF Overflow-Flag Überlaufflag Kontrollflags TF Trap-Flag Einzelschrittflag IF Interrupt Enable-Flag Interruptflag

Peter Sobe

11

x86-Architektur (6) V

Exponent Signifikant

R0 R1

8 x 80-Bit-Gleitkommaregister (internes IEEE-Format)

R2 R3 R4 R5 R6 R7 79 78

64 63

0

Gleitkomma-Register dienen zur kurzfristigen Speicherung Fließkomma-Variablenwerten, um vom Fließkomma-Rechenwerk verknüpft zu werden Peter Sobe

12

x86: Datentypen und Befehle

CISC-Befehlsformat (variable Länge)

Adressierungsarten - unmittelbar - Register indirekt - direkt - indiziert - Register Peter Sobe

13

x86-Befehlssatz ohne Gleitkommabefehle Transferoperationen (s.g. Moves) MOV DST, SRC

Move SRC to DST

PUSH SRC

Push SRC onto Stack

POP DST

Pop value from Stack to DST

XCHG DS1, DS2

Exchange DS1 and DS2

Diese Befehle werden benutz, um Variablenwerte vor deren Verwendung in Rechenoperationen in die Register zu holen, oder von den Registern wieder zurück in den Hauptspeicher zu kopieren. Oben ist nur eine Auswahl der gebräuchlichsten Befehle angegeben. Peter Sobe

14

x86-Befehlssatz ohne Gleitkommabefehle Arithmetische Operationen ADD DST,SRC

Add SRC to DST

SUB DST,SRC

Subtract SRC from DST

MUL SRC

Multiply EAX by SRC (unsigned)

IMUL SRC

Multiply EAX by SRC (signed)

DIV SRC

Divide EDX-EAX by SRC (unsigned)

IDIV SRC

Divide EDX-EAX by SRC (signed)

INC DST

Add 1 to DST

DEC DST

Subtract 1 from DST

NEG DST

Negate DST (subtract it from 0)

Peter Sobe

15

x86-Befehlssatz ohne Gleitkommabefehle Steuerfluss JMP ADDR

Jump to ADDR

Jxx ADDR

Conditional Jump to ADDR (xx zzum Beispiel NE für ‚NOT Equal‘ als Ergebnis des letzten Vergleichs mit CMP (Compare)

CALL ADDR

Call Procedure at ADDR

RET

Return from Procedure

LOOPxx

Loop until Condition is met

Peter Sobe

16

x86-Befehlssatz ohne Gleitkommabefehle Boolean AND DST,SRC

Boolean AND SRC into DST

OR DST,SRC

Boolean OR SRC into DST

XOR DST,SRC

Boolean Exclusive OR SRC to DST

NOT DST

Replace DST with 1‘s complement

Shift/Rotate SAL/SAR DST,#

Shift DST left/right # of Bits

SHL/SHR DST,#

Shift logical DST left/right # of Bits

ROL/ROR DST,#

Rotate DST left/right # of Bits

RCL/RCR DST,#

Rotate DST through carry # of Bits

Vergleichsoperationen TST SRC1,SRC2

Boolean AND Operands, Set Flags

CMP SRC1,SRC2

Set Flags based on SRC1-SRC2

Peter Sobe

17

Mikroarchitektur Pentium 4  Umsetzung der IA-32 CISC-Befehle in 1 bis 4 Ops (interne RISC-Befehle) durch Decoder.  Ausführung in supersklarer RISCArchitektur  Trace Execution Cache (TEC) für Ops mit eigener Sprungvorhersage,  3 Ops pro Takt wie PentiumIII  Verbesserte Sprungvorhersage für x86Befehle mit größerem BTB  20-stufige I-Pipe, Taktraten bis über 3 GHz  13 Funktionseinheiten, davon max. 6 gleichzeitig aktivierbar  8 KB Datencache (klein, aber schnell); Hardware-Prefetching mit Quad Pumped Speicherschnittstelle (3,2 GByte/s)  Befehlssätze (MMX, SSE, SSE2)  Optional: Hyperthreading (SMT)

Peter Sobe

18

Hyperthreading Intels Implementierung von SMT: 2-fach Hyper-Threading für den P4, auch für Atom CPUs, Verhält sich für das Betriebssystem wie zwei logische Prozessoren, d. h. Multiprozessor-Software ist ohne Änderung lauffähig.

P4-Pipeline mit SMT Pipeline-Register (Queues) und einige Pipelinestufen verdoppelt, die meisten Stufen werden abwechselnd von beiden Threads genutzt. Verdoppelung der Register durch RegisterRenaming implementiert. Nur 5% zusätzliche Chipfläche. Konflikte beim Nutzen der gemeinsamen Caches (Cache Aliase) können Leistung einschränken.

Peter Sobe

19