• Keine Ergebnisse gefunden

http://www .icp .uni-stuttgar t.de

N/A
N/A
Protected

Academic year: 2021

Aktie "http://www .icp .uni-stuttgar t.de"

Copied!
53
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

http://www .icp .uni-stuttgar t.de

Computergrundlagen Geschichte des Rechnens

Maria Fyta

Institut für Computerphysik

Universität Stuttgart

Wintersemester 2018/19

(2)

http://www .icp .uni-stuttgar t.de

Computer aus der Antike: Abakus

Chinesischer Abakus

• ein mehr als 3000 Jahre altes einfaches mechanisches Rechenhilfsmittel

• vermutlich um 1100 v. Chr. im indo-chinesischen Kulturraum erfunden

• enthält Kugeln, meist Holz- oder Glasperlen, beim vergleichbaren Rechenbrett kamen auch Münzen oder sogenannte Rechensteine zum Einsatz

• ermöglicht die Durchführung der Grundrechenarten Addition, Subtraktion, Multiplikation und Division sowie das Ziehen von Quadrat- und Kubikwurzeln.

M. Fyta Computergrundlagen 2/52

(3)

http://www .icp .uni-stuttgar t.de

Computer aus der Antike: Mechanismus von Anti- kythera

Fragmente B, A, und C des Mechanismus von Antikythera

• enthält eine Vielzahl von Zahnrädern in ähnlicher Anordnung wie in einer Räderuhr

• diente als Modell für die von der Erde aus beobachtbaren Bewegungen von Sonne und Mond mit Hilfe von Anzeigen auf runden Skalen

• 1900: von Schwammtauchern in einem Schiffswrack gefunden

M. Fyta Computergrundlagen 3/52

(4)

http://www .icp .uni-stuttgar t.de

1624: Rechenmaschine von W. Schickard

Wilhelm Schickard, 1592 - 1635

Nachbau der Rechenmaschine von W. Schickard

• erste mechanische Rechenmaschine

• beherrschte das Addieren und Subtrahieren bis zu sechsstelligen Zahlen

• einen „Speicherüberlauf“ signalisierte sie durch das Läuten einer Glocke

• für komplexere Berechnungen waren Napiersche Rechenstäbchen darauf angebracht

M. Fyta Computergrundlagen 4/52

(5)

http://www .icp .uni-stuttgar t.de

1642: Rechenmaschine von B. Pascal

B. Pascal, 1623 - 1662

Eine Pascaline aus dem Jahr 1652

• mechanische Rechenmaschine

• addierte & subtrahierte ganze Zahlen

• nicht programmierbar

M. Fyta Computergrundlagen 5/52

(6)

http://www .icp .uni-stuttgar t.de

1801: J.M. Jacquard und seine Lochkarten

J.-M. Jacquard, 1752-1834

Die Lochkartensteuerung der Jacquard-Maschine

• Weiterentwicklung des Webstuhls mit Lochkartensteuerung

• es handelt sich nicht um Karten, sondern um lange Lochstreifen und somit um eine frühe Anwendung der Digitaltechnik.

• endlose Muster von beliebiger Komplexität mechanisch hergestellt werden

• Grundstein zur heutigen Automatisierung

• der Webstuhl war die erste „programmierbare“ Maschine, deren Steuerung dauerhaft aufgehoben und später erneut verwendet werden konnte

M. Fyta Computergrundlagen 6/52

(7)

http://www .icp .uni-stuttgar t.de

1837: Analytical Engine von C. Babbage

C. Babbage, 1791 - 1871

• Vorläufer des modernen Computers

• sollte von einer Dampfmaschine angetrieben werden und wäre über 30m lang und 10m breit gewesen

• programmierbare mechanische Rechenmaschine

• 3 Lochkartenleser für Programm, Konstanten und Eingabezahlen

• 4 Grundrechenarten, Sprünge

• nie gebaut; Entwurf korrekt

M. Fyta Computergrundlagen 7/52

(8)

http://www .icp .uni-stuttgar t.de

1837: H. Hollerith

H. Hollerith, 1860-1929

Hollerith Tisch Lochkarte von 1980

• 1880: Hollerithmaschine bei der amerikanischen Volkszählung verwendet

• 1884: Lochkartenpatente: übertrug das Steuerungsverfahren mittels gelochter Karten auf organisatorische Problemstellungen

• Lochkarteneinsatzes zur Massendatenerfassung: Fahrkarten

• 1896: gründete die Tabulating Machine Company, die mit Computing Scale Corporation und der International Time Recording Company fusionierte in 1924 in International Business Machines Corporation (IBM) umbennnant wurde.

M. Fyta Computergrundlagen 8/52

(9)

http://www .icp .uni-stuttgar t.de

Die erste Computergeneration (1940-1959)

Quelle: Wikipedia

Eigenschaften (nicht in allen Rechner der ersten Generation):

• Vakuumröhre

• Ein(Aus)gabe durch Lochkarten

• ca. 1000 Schaltungen pro ft

3

M. Fyta Computergrundlagen 9/52

(10)

http://www .icp .uni-stuttgar t.de

1941: Z3 von K. Zuse

K. Zuse,

1910 - 1995 Zuse Z1 Zuse Z3

Z1, 1937: programmierbare mechanische Rechenmaschine Z3, 1941: elektromechanischer Rechner:

Relais und Kernspeicher

Z4, 1945: der einzige funktionierende Computer in Europa; erster kommerzielle Computer weltweit

• 0,9 / 1,4 Flops (Fliesskomma-Operationen / Sekunde)

• Programm und Daten über eigene Lochkartenleser

• im 2. Weltkrieg zerstört, Rekonstruktion in München

M. Fyta Computergrundlagen 10/52

(11)

http://www .icp .uni-stuttgar t.de

1941: Atanasoff-Berry Computer

• wurde von J.Atanasoff und C. Berry in den Jahren 1937-1941 gebaut

• Röhrencomputer; keine mechanischen Teile zur Durchführung der Berechnungen

• Nutzung des binären Zahlensystems

• Trennung von Berechnungseinheit und Speicher

• könnte gleichzeitig 29 lineare Gleichungen verarbeiten

• Bausteine für binäre Arithmetik wurden für das erste Mal eingesetzt

M. Fyta Computergrundlagen 11/52

(12)

http://www .icp .uni-stuttgar t.de

1943: Colossus

• Colossi früher in England zur Entzifferung von geheimen Nachrichten während des 2. Weltkriegs gebaut

• Röhrencomputer (aus 1500 Röhren in 1943)

• Erlaubte die Entzifferung einer Nachricht innerhalb weniger Stunden

• Der Speicher bestand aus 5 Zeichen die photoelektrisch von einem Lochstreifer gelesen wurden

• 5000 Zeichen/Sekunde konnten bearbeitet werden

M. Fyta Computergrundlagen 12/52

(13)

http://www .icp .uni-stuttgar t.de

1944: Harvard Mark I

H.H. Aiken, 1900-1973

• wurde von der Harvard Universität entwickelt und von IBM gebaut

• vollständig aus elektromechanischen Bauteilen gebauter Computer

• Gewicht von 5 Tonnen; Frontlänge von 16m

• wurde von US-amerikanischen Marine für ballistische Berechnungen genutzt

M. Fyta Computergrundlagen 13/52

(14)

http://www .icp .uni-stuttgar t.de

1946: ENIAC

• Erster rein elektronischer Universalrechner (Mauchly und Eckert)

• 350 Flops (Fließkommasahlrechnungen pro Sekunde)

• Grundrechenarten + Wurzeln [Addition/Subtraktion in 0.2 ms, Multiplikation bis zu 2.8 ms, Division bis zu 24 ms, Quadratwurzel mehr als 300 ms]

• Programmeingabe durch Verdrahtung (einzelnen Komponenten mit Kabeln verbinden und die gewünschten Operationen auf

Drehschaltern einstellen)

• 1948 Einbau eines Befehlsspeichers

• ca. hundert Programmierer (auch Frauen-zuvor ballistische Berechnungen an mechanischen Tischrechnern angestellt)

M. Fyta Computergrundlagen 14/52

(15)

http://www .icp .uni-stuttgar t.de

Von Neumann-Architektur (1945)

J. von Neumann, 1903 - 1957

arithmetic logic

unit control

unit CPU

accumulators

memory

0 1 2 3 4 5 6 7 8 9 10 ...

input/output

• Grundlage aller modernen Rechnerarchitekturen nach ENIAC

• ein linearer Ganzzahl-Speicher für Programme und Daten

• random access memory (RAM) – Speicher mit wahlfreiem Zugriff

• Befehle sind Zahlen im Speicher, können überschrieben werden und werden sequenziell abgearbeitet

• Befehlszähler enthält die Adresse des aktuellen Befehls; wird normalerweise hochgezählt

• Sprünge und Verzweigung sind spezielle Befehle

M. Fyta Computergrundlagen 15/52

(16)

http://www .icp .uni-stuttgar t.de

Die zweite Computergeneration (1960-1964)

Der Transistor (1947, J. Bardeen, W. Brattain, W. Schockley) könnte die Elektronenröhre als Schalt-, Steuer-,Speicher- und Verstärkerelement in

Computeranlagen weitgehend ablösen.

Die Rechengeschwidigkeit wird auch erhöht.

Eigenschaften: Transistoren und ca. 100000 Schaltungen pro ft

3

M. Fyta Computergrundlagen 16/52

(17)

http://www .icp .uni-stuttgar t.de

1960: UNIVAC LARC

LARC in Lawrence Radiation Laboratory

• Der erster Versuch einen Supercomputer zu bauen

• 2 CPUs (eine für die Berechnungen und eine für das Ein/Ausgabe System), 500 kFlops

• Lösung von Differenzielgleichungen

M. Fyta Computergrundlagen 17/52

(18)

http://www .icp .uni-stuttgar t.de

1961: IBM 7030 STRETCH

Die Konsolle

die 33ft Länge

• Langsamer als erwartet, aber von 1961 bis 1964 der schnellste Rechner der Welt

• Im Maximalbau standen 2262.144 Wörter (2MByte) zur Verfügung

• Die Breite der Befehlwörter war schaltbar zwischen 32Bit und 64Bit.

• Erster Vertreter der 64-Bit-Architektur.

M. Fyta Computergrundlagen 18/52

(19)

http://www .icp .uni-stuttgar t.de

Die dritte Computergeneration (1964-1975)

• Fortschreitende Miniaturisierung und Integration der Bauteile von elektronischen Schaltungen

• Transistoren und Dioden werden zusammen mit Kondensatoren und Widerständen zu Funktionsgruppen (Modul)

zusammengefaßt

• 160000 Additionen in eine Sekunde statt 1300 Additionen in der gleichen Zeit von einen Computer der 2. Generation.

Eigenschaften:

• großflächige integrierte Schaltkreise (integrated circuit)

• ca. 10

6

Schaltungen pro ft

3

M. Fyta Computergrundlagen 19/52

(20)

http://www .icp .uni-stuttgar t.de

1964: IBM System/360

Quelle:Computer Pictures Database

• Eine Großrechnerarchitektur

• "General purpose"(360 Rad von Anwendungen)

• 32- oder 64-Bit Gleitkommawerte mit hexadezimaler Basis.

• In den letzten 40 Jahren kontinuierlich weiterentwickelt (zur Zeit die System z Architektur).

M. Fyta Computergrundlagen 20/52

(21)

http://www .icp .uni-stuttgar t.de

1965: RCA Spectra 70 Series

RCA Spectra 70 Model 46

• Viele CPU Modelle

• Speicher Kapazität erstreckt sich von 4,096 bytes (70/15 Model) bis 524,288 bytes (70/55 Model).

• Gleichzeitige Ein- und Aus-gabe möglich.

M. Fyta Computergrundlagen 21/52

(22)

http://www .icp .uni-stuttgar t.de

Die vierte Computergeneration (1975-2000er)

Eingeleitet durch die Entwicklung integrierter Schaltkreise (Integrated Cir- cuit - IC); einzelne Bauteile wurden mit ihren Verbindungsleitungen in das Innere von Siliziumkristallen ’integriert’.

Eigenschaften:

• (sehr) großflächige integrierte Schaltkreise

• kontinuierliche Miniaturisierung

• 10

9

Schaltungen pro ft

3

M. Fyta Computergrundlagen 22/52

(23)

http://www .icp .uni-stuttgar t.de

1976: Apple I / II

• 1976: Apple I, erster „Serien“-PC, 100 Exemplare

• 1977: Apple II, 2 Millionen Exemplare

• 8-bit CPU (6502), 48kB RAM, 1000 Flops

• Massenmarkt: C64 – 30 Millionen Exemplare

• Grund: zahlreiche Computerspiele

• Erst ab ca 1990 setzen sich IBM-kompatible Heim-PCs durch.

M. Fyta Computergrundlagen 23/52

(24)

http://www .icp .uni-stuttgar t.de

1982: Cray X-MP

Konsole von CRAY X-MP/48

CRAY X-MP/24 im Barcelona Supercomputing Center

• Hauptentwickler Steve Chen

• 1983-1985: der schnellste Computer der Welt

• theoretische Rechenleistung von 200 Megaflops pro Prozessor

• 2 oder 4 Prozessoren

• Verbesserte Unterstützung für verkettete Berechnungen, parallele arithmetische Pipelines und Zugriff auf geteilten Speicher über mehrere Pipes.

M. Fyta Computergrundlagen 24/52

(25)

http://www .icp .uni-stuttgar t.de

1984: HP 9000

HP 9000 715

• Ab 1982 baut Hewlett Packard Workstations und Server-Systeme

• 16- und 32bit Workstations.

M. Fyta Computergrundlagen 25/52

(26)

http://www .icp .uni-stuttgar t.de

2008: Intel Nehalem

quadruple associative Instruction Cache 32 KByte, 128-entry TLB-4K, 7 TLB-2/4M per thread

Prefetch Buffer (16 Bytes) Predecode &

Instruction Length Decoder Instruction Queue 18 x86 Instructions Alignment MacroOp Fusion

Complex

Decoder Simple

Decoder Simple Decoder Simple Decoder

Decoded Instruction Queue (28 µOP entries) MicroOp Fusion Loop Stream Decoder

2 x Register Allocation Table (RAT) Reorder Buffer (128-entry) fused 2 x

Retirement Register File

Reservation Station (128-entry) fused

Store Addr.

Unit AGU

Load Addr.

Unit AGU Store Data

Micro Instruction Sequencer

256 KByte 8-way, 64 Byte Cacheline, private L2-Cache

512-entry L2-TLB-4K Integer/

MMX ALU, Branch SSE ADD Move

Integer/

MMX ALU SSE ADD Move FP ADD

Integer/

MMX ALU, 2x AGU SSE MUL/DIV Move FP MUL

Memory Order Buffer (MOB) octruple associative Data Cache 32 KByte,

64-entry TLB-4K, 32-entry TLB-2/4M Branch Prediction global/bimodal, loop, indirect jmp 128

Port 4 Port 3 Port 2 Port 5 Port 1 Port 0

128 128

128 128 128

Result Bus 256

Quick Path Inter- connect

DDR3 Memory Controller

Common L3-Cache 8 MByte Uncore

4 x 20 Bit 6,4 GT/s

3 x 64 Bit 1,33 GT/s

Intel Nehalem microarchitecture

To Input/Output Control unit

To Memory

ALUs + FPUs

• Ein Nehalem-Kern ist auch noch eine von Neumann-CPU

• ... aber mit 50-100 Gigaflops

• Millionen verkaufte Einheiten — pro Jahr

M. Fyta Computergrundlagen 26/52

(27)

http://www .icp .uni-stuttgar t.de

Mooresches Gesetz

Verdopplung (jede 12-24 Monate) der Komplexität intergrierter Schaltkreise (und Integrationsdichte, i.e. Transistoren/Fläche) mit minimalen Komponentenkosten.

M. Fyta Computergrundlagen 27/52

(28)

http://www .icp .uni-stuttgar t.de

Die fünfte Computergeneration (aktuell und Zukunft) Zusammenstellung von charakteristischen Technologien

• extrem großflähige integrierte Schaltkreise

• Parallelverarbeitung integrierter Schlaltkreise

• superschnelle Logic- und Speicherchips

• Integration von Sprache und Daten für wissens-basierte Plattformen

• Erstellung von virtuelle Realität

• Satelliten-Links (Telekommunikationsnetz)

• Ziel: Enwicklung von Geräten die zur natürliche Spracheingabe reaggieren, lernfähig und selbstorganisierend sind

• Zukünftige Entwicklungen

• Biocomputer (Nützung biologischer Systeme)

• Verknüpfung zwischen biologischer und technischer Informationsverarbeitung

• Quantencomputer (optische Signalverarbeitung)

M. Fyta Computergrundlagen 28/52

(29)

http://www .icp .uni-stuttgar t.de

Rechnenarchitekturen in BW

Konfiguration des ForHLR II - SCC Karlsruhe

Quelle: https://www.scc.kit.edu/

M. Fyta Computergrundlagen 29/52

(30)

http://www .icp .uni-stuttgar t.de

Parallelisierung: parallele Programmierung

• Ein Computerprogramm in einzelnen Abschnitten aufteilen, die nebenläufig ausgeführt werden können

• Nebenläufige Programmabschnitte synchronisieren

• Effizienzsteigerung (mehrere Prozessorkerne)

• Programmteile werden in separaten Prozessen oder Threads (Teil eines Prozesses) ausgeführt

• Multi-tasking: Programmteile können auch quasi-parallel ausgeführt werden; mehrere unabhängige Prozesse laufen nebeneinander

M. Fyta Computergrundlagen 30/52

(31)

http://www .icp .uni-stuttgar t.de

Parallelisierung: Effizienz Architekturen

• Computercluster: Anzahl von vernetzten Rechnern

• Mehrere CPUs

• Multicore-Prozessoren (SMP-synmmetric multiprocessing; ≥2 identische Prozessoren besitzen gemeinsamen Adressraum)

• GPUs (Grafikkarten - Daten werden so umgewandelt, dass der Monitor oder Beamer alles als Bild wiedergeben kann)

Protokolle

• Message Passing Interface (MPI): beschreibt den

Nachrichtenaustausch bei parallelen Berechnungen auf verteilten Computersystemen

Implementierungen: C++, C, Fortran, C#, Python, Java, Perl, R

• OpenMPI (C, Fortran), parallel python, ...

Wichtig: Entsprechende Compilers müssen verwendet werden und der Code muss von der Parallelisierung profitieren!

M. Fyta Computergrundlagen 31/52

(32)

http://www .icp .uni-stuttgar t.de

Modernes Rechnen

Grid Computing: virtueller Supercomputer aus Cluster gekoppelten Rechnern ( z.B. Proteinfaltung: Folding@home http://folding.stanford.edu/ )

Cloud Computing: IT-Infrastrukturen (Rechenkapazität, Datenspeicher, Netzwerkkapazitäten, Software) dynamish über einen Netzwerk zu Verfügung zu stellen

Autonomic Computing: Selbstmanagement ( Selbstkonfiguration, Selbstoptimierung, usw. )

Ubiquitous Computing - ubicomp (Rechnerallgegenwart):

Internet mit mobilen Anwendungen über seine klassische Domäne hinaus ausbreiten ( PC sollte als Gerät verschwinden und durch ’intelligente Gegenstände’ ersetzt werden)

Wearable Computing (tragbare Datenverarbeitung):

Entwicklung von tragbaren Computersystemen ( Computersystem, das während der Anwendung am Körper des Benutzers befestigt ist, z.B. Google Glass Projekt )

• ...

M. Fyta Computergrundlagen 32/52

(33)

http://www .icp .uni-stuttgar t.de

Boolesche Logik, Zahlensysteme und

Arithmetik

(34)

http://www .icp .uni-stuttgar t.de

Wie rechnet ein Computer?

Ein Mikroprozessor

• ist ein Netz von Transistoren, Widerständen und Kondensatoren

• Leitungen kennen nur zwei Zustände: Spannung oder nicht

• Interpretation als ja/nein, 0/1, an/aus, richtig/falsch...

• Schaltungen entsprechen logischen Operationen

Die richtige Algebra (das richtige Zahlensystem) musst verwendet werden um damit rechnen zu können.

Computergrundlagen 34/52

(35)

http://www .icp .uni-stuttgar t.de

Aussagenlogik

G. Boole, 1815 - 1864

• erlaubt formale Beweise über logische Aussagen

• Grundlage der Computerlogik

• kann mathematisch als Algebra formalisiert werden (boolesche Algebra)

• Anwendung auch in Computerprogrammieren

• die Operatoren dienen zur Beschreibung der boolschen Funktion digitaler Schaltungen (hohe bzw. niedrige Spannung)

Computergrundlagen 35/52

(36)

http://www .icp .uni-stuttgar t.de

Die zweielementige boolesche Algebra Wir betrachten eine Menge

• mit zwei Elementen 1 („wahr“) und 0 („falsch“)

• mit zwei Verknüpfungen ∨ („oder“) und ∧ („und“)

• mit einer einstelligen Verknüpfung ¬ („nicht“, Negation) Ferner gilt für beliebige a, b, c ∈ {0, 1}:

1. a ∨ (b ∨ c) = (a ∨ b) ∨ c,

a ∧ (b ∧ c) = (a ∧ b) ∧ c (Assoziativität) 2. a ∨ (b ∧ c) = (a ∨ b) ∧ (a ∨ c),

a ∧ (b ∨ c) = (a ∧ b) ∨ (a ∧ c) (Distributivität) 3. a ∨ b = b ∨ a, a ∧ b = b ∧ a (Kommutativität) 4. a ∨ (a ∧ b) = a, a ∧ (a ∨ b) = a (Adsorption) 5. a ∨ ¬a = 1, a ∧ ¬a = 0 (Komplemente)

Computergrundlagen 36/52

(37)

http://www .icp .uni-stuttgar t.de

Abgeleitete Gesetze

• Neutralität:

a ∨ 0 = a, a ∧ 1 = a

• Idempotenz:

a ∨ a = a, a ∧ a = a

• Extremalgesetze:

a ∨ 1 = 1, a ∧ 0 = 0

• Doppelnegation: ¬(¬a) = a

• Dualität:

¬0 = 1, ¬1 = 0

• De Morgansche Gesetze:

¬(a ∨ b) = ¬a ∧ ¬b, ¬(a ∧ b) = ¬a ∨ ¬b

Die zweielementige boolesche Algebra entspricht genau unserem Verständnis von Logik.

Computergrundlagen 37/52

(38)

http://www .icp .uni-stuttgar t.de

Was sind Zahlensysteme?

• Ein Zahlensystem wird zur Darstellung von Zahlen verwendet.

• Jede ganze Zahl B ≥ 2 kann als Basis(B) verwendet werden.

• Die Stelle bestimmt den Wert der Ziffer (die „niederwertigste“

Position steht dabei im Allgemeinen rechts, z.B. die erste 3 in 373 hat einen anderen Wert als die zweite 3 dreihundert nicht drei).

• Der Ziffernvorrat ist 0 bis B-1.

• Die Zifferposition bestimmt den Stellenwert B

n

, entspricht eine Potenz der Basis.

• Zwei benachbarte Stellenwerte unterscheiden sich um den Faktor B.

• Die gängigsten Basen sind 2 (Dualsystem), 8 (Oktalsystem), 10 (Alltags Rechnen) oder 16 (das in der Informatik wichtige Hexadezimalsystem).

Computergrundlagen 38/52

(39)

http://www .icp .uni-stuttgar t.de

Was sind Zahlensysteme?

• Das System zur B=2 enthält nur 0 und 1.und wird für Computerrechnen und Datenspeichern verwendet.

• Die kleinste Informationseinheit (Bit) ist die Information über die Möglichkeiten 1 oder 0.

• In der Computertechnik wird oft das Hexadezimalsystem (Basis B=16) verwendet (0-9,A-F)

• Die Standardeinheit der Informationsgröße ist ein Byte (=8 Bit): die Information über eine aus 256 Möglichkeiten (die je zwei Zustände der acht Bits ermöglichen insgesamt 2

8

=256 Möglichkeiten).

• In dezimaler Darstellung: 0, 1, 2, ... bis 255, im Binärsystem:

00000000, 00000001, 00000010, ... bis 11111111.)

• Mit dem 16er-System (immer genau 2 Ziffern entsprechen einem Byte) viel besser handhaben als mit dem Dezimalsystem.

Computergrundlagen 38/52

(40)

http://www .icp .uni-stuttgar t.de

Zahlensysteme: Eigenschaften

• Wie kann ich mit nur zwei Elementen Zahlen darstellen?

Sei B > 0 eine natürliche Zahl. Dann kann jede natürliche Zahl z eindeutig dargestellt werden als

z =

X

i=0

B

n

z

k

,

wobei für alle k 0 ≤ z

k

< B und nur endliche viele z

k

6= 0.

Beispiel

B = 10 entspricht unserem Dezimalsystem:

1042 = 10

0

· 2 + 10

1

· 4 + 10

3

· 1 = 1042

16

B = 8 ergibt das Oktalsystem:

1042 = 8

0

· 2 + 8

1

· 2 + 8

3

· 2 = 2022

8

Computergrundlagen 39/52

(41)

http://www .icp .uni-stuttgar t.de

Binärsystem

• Wie kann ich mit nur zwei Elementen Zahlen darstellen?

Wir benutzen das Binärsystem mit B = 2 und Ziffern 0 und 1 (Bits)

Beispiele

1042 = 2

10

+ 2

4

+ 2

1

= 10.000.010.010

2

• Umrechnung von Binär- auf Dezimalzahlen ist umständlich

• Binär↔ oktal ist einfach:

10.000.010.010

2

= 2022

8

• Hexadezimal (B = 16, Ziffern 1–9, A–F) auch:

10.000.010.010

2

= 412

16

1010.1111.1111.1110

2

= AFFE

16

Computergrundlagen 40/52

(42)

http://www .icp .uni-stuttgar t.de

Umwandeln von Binär in Hexadezimalzahlen und umgekehrt

• Jeweils 4 Binärstellen entsprechen einer Hexadezimalstelle (16 = 2

4

).

• Umwandlung:

Vom Binär- ins Hexadezimalsystem:

Unterteile die Binärzahl (rechts nach links) in 4er-Päckchen; wandle jedes Päckchen nach nebenstehender Tabelle in die entsprechende Hexadezimalziffer um.

Vom Hexadezimal- ins Binärsystem: Wandle die

Hexadezimalziffern der Reihe nach in die entsprechenden vierstelligen Binärzahlen um.

Quelle:mathe-lexikon.at

Computergrundlagen 41/52

(43)

http://www .icp .uni-stuttgar t.de

Umwandeln von Binär in Oktalzahlen

• Jeweils 3 Binärstellen entsprechen einer Oktalstelle (8 = 2

3

).

• Die Ziffern in Dreierblöcke

gruppieren (von rechts nach links),

• die entsprechenden oktalen Ziffern aus der Tabelle ablesen,

• falls Stellen über bleiben, die keine vollständige Dreier-Gruppe

ergeben, kann man sich statt dessen ’unsichtbare Nullen’

vorstellen (z.B. 10 ist mit 010 gleichbedeutend und umgekehrt die Dreiergruppe 001 ist

gleichbedeutend mit 1).

Quelle:mathe-lexikon.at

Computergrundlagen 42/52

(44)

http://www .icp .uni-stuttgar t.de

Darstellung reeller Zahlen

±1, 23456789 · 10 ± 123

• Eine Fließkommazahl besteht aus:

• Vorzeichen

• Mantisse

• (10er-)Exponent

• Stellen daher nur einen Teil der rationalen Zahlen exakt dar

• Alle anderen Zahlen werden angenähert

• Die Mantissenlänge bestimmt die Genauigkeit der Näherung Binär entsprechend:

±1, 0011110000001100101 · 2 ±1111011

Computergrundlagen 43/52

(45)

http://www .icp .uni-stuttgar t.de

IEEE-Fließkommazahlen

Speicherung einer 64-Bit-Fließkommazahl nach IEEE 754-Standard:

Bit

63 62 ... 5251 ... 0

± Exponent e Mantisse m

• Keine Komplementdarstellung von Mantisse oder Exponent

• Binärsystem: (normalisierte) Mantisse wird ohne führende Stelle gespeichert, die immer 1 ist

• Der 11-bittige Exponent e ist um (Bias=)1023 (127 in 32-Bit-Fließkommazahlen) verschoben gespeichert

und nimmt Werte von -1022 (e = 1) bis 1023 (e = 2046) an

• Der Wert einer Zahl ist also:

±1, m · 2 e 1023

Computergrundlagen 44/52

(46)

http://www .icp .uni-stuttgar t.de

Spezielle Werte

Was ist mit den Exponenten −1023 (e = 0) und 1024 (e = 2047)?

Diese stellen spezielle Werte dar:

e = 0 und m = 0 ±0

e = 0 und m 6= 0 Zahlen der Form ±0, m · 2

−1022

e = 2047 und m = 0 ±∞

e = 2047 und m 6= 0 ±NaN (not a number)

• Da die erste Stelle immer 1 ist, kann 0 nur so dargestellt werden

• ±∞ ergibt sich z.B. bei Berechnung von ±1/0

• ±NaN ergibt sich z.B. bei Berechnung von √

−1

• Python fängt NaNs mit Fehlern ab, nicht aber z.B. C

Computergrundlagen 45/52

(47)

http://www .icp .uni-stuttgar t.de

32-Bit gegen 64-Bit Fließkommazahlen

• 32-Bit: einfach-genaues Format (single precision)

• [Länge des Exponenten=8 Bit, Länge der Mantisse=23 Bit, Bias des Exponenten=127]

• Genauigkeit der Darstellung von ca. 7 Dezimalstellen

• z.B. bei einer Zahl wie 12.345,678 ist die dritte Stelle nach dem Komma schon ungenau

• in numerischen Berechnungen mit mehreren Rechenoperationen sinkt die Genauigkeit sehr stark → einfach genaues Format nicht ausreichent

• 64-Bit: doppelt genaues Format (double precision)

• [Länge des Exponenten=11 Bit, Länge der Mantisse=52 Bit, Bias des Exponenten=1023]

• Genauigkeit der Darstellung von ca. 16 Dezimalstellen.

Speicherplatz und Rechenleistung sind so reichlich vorhanden, dass man nur noch das doppelt genaue Format verwendet kann.

Computergrundlagen 46/52

(48)

http://www .icp .uni-stuttgar t.de

Subtraktion/Addition von Fließkommazahlen Beispiele:

1, 0 · 10

0

+ 1, 0 · 10

−5

= 1, 0 · 10

0

+ 0, 00001 · 10

0

= 1, 00001 · 10

0

1, 000002 · 10

0

− 1, 000001 · 10

0

= 0, 000001 · 10

0

= 1, 0 · 10

−6

• Verschieben der Mantisse der kleineren Zahl, bis beide denselben Exponenten haben

• Dabei gehen Stellen der kleineren Zahl verloren

• Dann gewöhnliche Addition/Subtraktion der Mantissen

• Schließlich den Exponenten verringern, bis die Mantisse keine führenden Nullen hat

Computergrundlagen 47/52

(49)

http://www .icp .uni-stuttgar t.de

Unterlauf/Überlauf

• In der Fließkommadarstellung gibt es eine kleinste(größte) positive Zahl,

• unter(über) diese Zahl kann kein Wert dargestellt werden

• in diesem Bereich wird die Zahl als 0(∞) repräsentiert

• im Falle eines Zwischenergebnisses ist die Information üeber das Ergebnis verloren

Zahlen verschiedener Größenordnung

• Die Addition/Subtraktion einer betragsmäßig viel kleineren Zahl ändert die größere Zahl nicht

in einer vierstelligen Dezimalarithmetik:

1e3 + 1e-2 =1, 000 · 10

3

+ 1, 000 · 10

−2

=1, 000 · 10

3

+ 0, 000|010... · 10

2

=1, 000 · 10

3

+ 0, 000 · 10

3

= 1e3

Computergrundlagen 48/52

(50)

http://www .icp .uni-stuttgar t.de

Auslöschung: falsches Ergebnis bei der Subtraktion fast gleich großer Zahlen

Ist x < 2

−lm

, wobei l

m

die Bitlänge der Mantisse ist, so ist in Fliesskommaarithmetik

x → x + 1 − 1 → (x + 1) − 1 → 1 − 1 → 0

• Auslöschung der vorderen Stellen bei Subtraktion ungefähr gleich großer Zahlen führt zu fehlenden hinteren Stellen im Ergebnis

• Im Beispiel verschwindet die kleinere Zahl x komplett

• Ist x ≈ 2

−lm

, verliert x fast alle signifikanten Stellen

• Formeln muss man umformen so dass keine Auslöschung passieren kann.

Computergrundlagen 49/52

(51)

http://www .icp .uni-stuttgar t.de

Beispiel: quadratische Gleichung

• Lösen der quadratischen Gleichung x

2

+ ax + b = 0:

x

±

= − a 2 ±

r a

2

2

− b

• Bei kleinem b ist q

a 2

2

− b ≈

a2

• a > 0: Auslöschung bei der größeren Nullstelle x

+

• a < 0: Auslöschung bei der kleineren Nullstelle x

• Ausweg: Es gilt x

+

x

= − a

2 + r

a 2

2

− b

!

− a 2 −

r a

2

2

− b

!

= b

• Berechne also nur die stabile Summe (x

bei a > 0, sonst x

+

), und die zweite Nullstelle durch x

+

= b/x

bzw. x

= b/x

+

Computergrundlagen 50/52

(52)

http://www .icp .uni-stuttgar t.de

Multiplikation von Fließkommazahlen Beispiel:

1, 01 · 10

0

× 1, 01 · 10

5

= 1, 0101 · 10

0+5

= 1, 0101 · 10

5

• Multiplikation und Division sind unkritisch, es kann zu keiner Auslöschung kommmen

• Allerdings zu Über- oder Unterläufen des Exponenten

• In diesem Fall ist das Ergebnis ∞ bzw. 0

• Meist kann man dies aber durch geeignete Umformungen auch vermeiden, z.B. durch logarithmisches Rechnen

Computergrundlagen 51/52

(53)

http://www .icp .uni-stuttgar t.de

Fehlerquellen bei numerischen Rechnungen

Numerische Fehler

• Auslöschung

• Über- und Unterläufe

• Rundungsfehler durch endliche Mantissenlänge

Algorithmische (Verfahrens-) Fehler

• Abschneidefehler: Unendliche Summen müssen durch endliche Summen ersetzt werden

• Diskretisierungsfehler: Funktionsauswertung immer nur an endlich vielen Punkten

Modellierungsfehler

Das der Rechnung zugrundeliegende Modell erfasst wesentliche Details des Experiments nicht

Datenfehler

Genauigkeit der Anfangswerte (z.B. aus einem Experiment)

Computergrundlagen 52/52

Referenzen

ÄHNLICHE DOKUMENTE

Speicherbedarf abhängig von Anzahl geometrischer Objekte kann meist auch Rasterdaten effizient speichern. Editor: GIMP,

Zahlreiche Layout-Pakete, Layouts „leicht“ selbst zu erstellen Was man aber besser nicht benutzt. Gute Hilfe mit Tips zur Gestaltung

ls -l &lt;file&gt; Dateirechte ausgeben chmod ugoa[=|+|-]rwx &lt;file&gt; Dateirechte ändern chown &lt;user&gt;:&lt;group&gt; &lt;file&gt; Besitzer/-gruppe ändern Jede Datei

Idea of splitting methods: split potential into fast decaying near field and non-singular far field. Near field can be computed directly ( O (N)) For the far field, other methods can

Für diese Übung brauchst du den Ordner uebung von www.easy4me.info.. So kannst du im Windows Explorer die Anzeige der Dateierweiterung ein-

Studie- rende kombinieren die Hauptstudienrichtung Förderpädagogik mit einem Grundschulfach (Deutsch oder Mathematik) und einem Regel- schulfach (Deutsch, Mathematik oder Englisch),

This gasification technology is employed to treat municipal solid waste, but can also treat various kinds of wastes together and can achieve both the energy and material recovery

– HTML beschreibt die Präsentation eines Dokumentes durch feste Tags – XML beschreibt den Inhalt durch benutzerdefinierte Tags. • Grundidee von XML: Trennung von Inhalt, Struktur und