Skip to content

Latest commit

 

History

History
executable file
·
392 lines (250 loc) · 24.3 KB

01_HistorischerUeberblick.md

File metadata and controls

executable file
·
392 lines (250 loc) · 24.3 KB

LiaScript

Historischer Überblick

Parameter Kursinformationen
Veranstaltung: @config.lecture
Semester @config.semester
Hochschule: Technische Universität Freiberg
Inhalte: Übersicht der historischen Entwicklung von Rechentechnik
Link auf GitHub: https://github.com/TUBAF-IfI-LiaScript/VL_EingebetteteSysteme/blob/master/00_Einfuehrung.md
Autoren @author


Fragen an die Veranstaltung

  • Worin lag der „große Wurf“ des Intel 4004?
  • Was bedeutet die Angabe 8bit, 16bit usw. ?
  • Erklären Sie die Schichten der Rechnerstruktur.
  • Worin unterschieden sich ENIAC und die Z3?
  • ...

Weiterführende Literaturhinweise



                Abstraktionsebenen

           +----------------------------+ -.
  Ebene 6  | Problemorientierte Sprache |  |
           +----------------------------+  |
                                           ⎬ Anwendungssoftware
           +----------------------------+  |
  Ebene 5  | Assemblersprache           |  |
           +----------------------------+ -.

           +----------------------------+
  Ebene 4  | Betriebssystem             |     Systemsoftware
           +----------------------------+

           +----------------------------+
  Ebene 3  | Instruktionsset            |     Maschinensprache
           +----------------------------+

           +----------------------------+  -.
  Ebene 2  | Mikroarchitektur           |   |
           +----------------------------+   |
                                            ⎬ Automaten, Speicher, Logik
           +----------------------------+   |
  Ebene 1  | Digitale Logik             |   |
           +----------------------------+  -.

           +----------------------------+
  Ebene 0  | E-Technik, Physik          |     Analoge Phänomene
           +----------------------------+                                      .

Reflexion Ihrer Fragen

Partizipative Materialentwicklung mit den Informatikern ...

Format Informatik Studierende Nicht-Informatik Studierende
Verbesserungsvorschlag 1 0
Fragen 0 0
generelle Hinweise 0 0

Die Informatik wird gewinnen!!!

Begrifflichkeiten

Ein Computer oder Digitalrechner ist eine Maschine, die Probleme für den Menschen lösen kann, indem sie die ihr gegebenen Befehle ausführt. (Tannenbaum, Computerarchitektur)

Ein Computer oder Rechner ist ein Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet. (Wikipedia)

Rechenanlage (Computer) ... Die Gesamtheit der Baueinheiten, aus denen ein Datenverarbeitungssystem aufgebaut ist. (DIN 44300)

Welche Gemeinsamkeiten und Unterschiede sehen Sie in diesen Definitionen?

Rechenmaschinen

{{0-1}} Ausgangspunkt für die Vereinfachung des Rechnens ist das Konzept des Stellenwertsystems. In einer positionsunabhängigen Darstellung bedarf es immer neuer Symbole um größere Zahlen auszudrücken. Im römischen Zahlensystem sind dies die bekannten Formate MDCCLXV. Können Sie den Zahlenwert rekonstruieren - es ist das Gründungsjahr der Bergakademie.

{{0-1}}

Die Idee, den Wert einer Ziffer von ihrer Position innerhalb der ganzen Zahl abhängig zu machen, geht auf den indischen Kulturkreis zurück. Die sogenannten "arabischen" Zahlen integrieren dafür einen zentrale Voraussetzung, die "0". Ohne die Null ist es nicht möglich, den Wert einer einzelnen Ziffer zu vervielfachen.

{{1-2}} Der Abakus greift diesen Ansatz auf und strukturiert den Rechenprozess. Dabei unterscheidet man verschiedene Systeme. Es exisitieren Vorgehensmuster für die Umsetzung der Grundrechenarten und des Wurzelziehens.

{{1-2}} Abakus

{{2-3}} Eine weitreichendere Unterstützung beim eigentlichen Rechenprozess bieten die Napierschen Rechenstäbe (John Napier 1550 - 1617), die insbesondere die Multiplikation einer Ziffer mit einer beliebig großen Zahl unterstützen.

{{2-3}} !?Napirsche Rechenstäbe

{{3-4}} Die notwendige manuelle Addition bei größeren Faktoren löste die Rechenmaschine von Wilhelm Schickard. Die Automatisierung der Addition ist mechanisch gelöst und zum Beispiel unter Link beschrieben.

{{3-4}} Schickard

{{3-4}} !?Wilhelm Schickards Rechenmaschine

{{4-5}} Blair Pascal, Gottfried Wilhelm Leibniz und andere Entwickler trieben die Entwicklung weiter, erweiterten die Stellensysteme, integrierten weitere Rechenarten hatten aber insgesamt mit den mechanischen Herausforderungen und fehlender Fertigungsgenauigkeit zu kämpfen.

{{4-5}}

Es ist unwürdig, die Zeit von hervorragenden Leuten mit knechtischen Rechenarbeiten zu verschwenden, weil bei Einsatz einer Maschine auch der Einfältigste die Ergebnisse sicher hinschreiben kann. (Gottfried Wilhelm Leibniz)

Abstraktere Konzepte

Bisher stand die Berechnung von einzelnen Ergebnissen auf der Basis einer Sequenz von Eingaben im Vordergrund. Ende des 18. Jahrhunderts entwarfen Visionäre neue Konzepte, die allgemeingültige Lösungen integrierten.

Diesen Aspekt kann man auf technischer und theoretischer Ebene betrachten.

Die Grundlagen moderner Rechner legten die Arbeiten von Georg Boole (1815 - 1864), der eine boolesche Algebra (oder einen booleschen Verband) definierte, die die Eigenschaften der logischen Operatoren UND, ODER, NICHT sowie die Eigenschaften der mengentheoretischen Verknüpfungen Durchschnitt, Vereinigung, Komplement verallgemeinert. Gleichwertig zu booleschen Algebren sind boolesche Ringe, die von UND und ENTWEDER-ODER (exklusiv-ODER) beziehungsweise Durchschnitt und symmetrischer Differenz ausgehen.

Boole

Joseph-Marie Jacquard (1752 - 1834) - Automatischer Webstuhl

Jacquards "Musterwebstuhl" realisierte die Ansteuerung der Webmechanik durch eine Lochkartensteuerung. Im Jahr 1805 wurde das Verfahren erstmals vorgestellt. Dadurch konnten endlose Muster von beliebiger Komplexität mechanisch hergestellt werden.

Jacquard

Auf den Karte waren Informationen über das in einem Schritt zu webende Muster enthalten. Ein Loch bedeutete Fadenhebung, kein Loch eine Fadensenkung. Dabei konnten die Lochkarten in einer Endlosschleife gekoppelt werden, um wiederkehrende Strukturen umzusetzen.

Charles Babbage (1791 - 1871) - Analytical Engine

Ausgangspunkt war die Konstruktion einer Rechenmaschine für die Lösung polynomialer Funktionen. Dabei entstand die Vision einer universellen Rechenapperatur, die auf der Basis eines programmierbaren Systems Berechnungen löst. Die erste Beschreibung wurde 1837 veröffentlicht.

  • Energiebereitstellung über eine Dampfmaschine
  • 8000 mechanische Komponenten
  • Eingabe der Daten und Befehle über Lochkarten
  • Nutzerinterface: Drucker, ein Kurvenplotter und eine Glocke
  • Zahlendarstellung: dezimale Festkommazahlen, pro Stelle ein Zahnrad
  • Arbeitsspeicher zwischen 1,6 und 20 kB (umstritten)

_The result of my reflections has been that numbers containing more than thirty places of figures will not be required for a long time to come. _

Die Maschine wurde zu Lebzeiten von Babbage nicht realisiert und nur in Teilen durch seinen Sohn implementiert. Aktuell exisitieren in verschiedenen Museen unterschiedliche Neubauten.

Analytical Engine

!?Analytical Engine

!?Analytical Engine

Eine der zentralen Persönlichkeiten, die die Möglichkeiten der Analytical Engine erkannte, war Ada Lovelace.

„[Die Analytical Engine] könnte auf andere Dinge als Zahlen angewandt werden, wenn man Objekte finden könnte, deren Wechselwirkungen durch die abstrakte Wissenschaft der Operationen dargestellt werden können und die sich für die Bearbeitung durch die Anweisungen und Mechanismen des Gerätes eignen.“

Ada Lovelace legte in den Notes zu einem Vortrag von Babbage einen schriftlichen Plan zur Berechnung der Bernoulli-Zahlen in Diagrammform vor, welcher als das erste veröffentlichte formale Computerprogramm gelten kann.

Es werde Licht ... elektrische Systeme

{{0-1}}


Der Verfügbarkeit des elektrischen Stromes als Energiequelle löste einige der technischen Hürden bei den mechanischen Rechenmaschinen, eröffnete aber auch neue Möglichkeiten bei der Eingabe von Daten.

Herman Hollerith (1860 - 1929) interpretierte die Lochkarten als Medium neu. Sein Konzept für die Lösung/Auswertung von organisatorischen Problemstellungen sah diese als Basis für die Datenerfassung.

Das System für die Erfassung von Daten auf Lochkarten bestand aus der Tabelliermaschine, dem Lochkartensortierer, dem Lochkartenlocher und dem Lochkartenleser. Damit konnte die Volkszählung in den USA 1890 innerhalb von 2 Jahren ausgewertet werden.

1924 wurde die von ihm gegründete Firma schließlich in International Business Machines Corporation (IBM) umbenannt.

Holerit

!?Holerith


  {{1-2}}

Nicht nur auf der Ebene der Datenerfassung, sondern auch für die Datenspeicherung eröffnete sich auf der Basis des elektrischen Stromes eine Revolution. Relais konnten Zustände nun speichern und logische Operationen abbilden. Damit manifestierte sich aber auch die Festlegung auf eine binäre Informationsdarstellung - An, Aus (1 und 0).

instruction-set

instruction-set


  {{2-3}}

Bis in die 80er Jahre bildeten Analogrechner einen alternativen Ansatz. Anders als bei den diskret arbeitenden Digitalrechnern wurde hier im Werte- und Zeitverlauf kontinuierlich gearbeitet. Dabei wurde das Systemverhalten von komplexen Systemen mit elektrischen Schaltungen nachgebildet.

AnalogRechner


Zuse Z3

Die Z3 war der erste funktionsfähige Digitalrechner weltweit und wurde 1941 von Konrad Zuse in Zusammenarbeit mit Helmut Schreyer in Berlin gebaut. Die Z3 wurde in elektromagnetischer Relaistechnik mit 600 Relais für das Rechenwerk und 1400 Relais für das Speicherwerk ausgeführt.

  • 10 Hertz Taktfrequenz
  • basierend auf 2200 Relais
  • 22-stellige Binärzahlen (im Gleitkomma-Format !)
  • dezimale Ein-/Ausgabe
  • Speicher mit 64 Worten
  • Steuereinheit mit Sequenzer
  • Addition in 3 Takten, Multiplikation in 16 Takten
  • keine Sprungoperationen!

!?ZuseZ3 Deutsches Museum

Bereits Vorwegname der Kernelemente moderner Architekturen:

  • Gleitkommaformat
  • Mikroprogrammierung
  • Pipeline-Konzept
  • Carry-Look-Ahead Addierer

Z3Pipeline

Eniac

Electronic Numerical Integrator and Computer (ENIAC)

  • 18000 Röhren, 1500 Relais
  • 130 $m^2$, 30 Tonnen, 140 kW
  • dezimale Kodierung
  • ca. 5000 Additionen je Sek.
  • 20 Akkumulatoren, 1 Multiplizierer, 3 Funktionstabellen
  • programmiert durch Kabel-Verbindungen
  • E/A mittels Lochkarten
  • gebaut für ballistische Berechnungen

ENIAC

Ein großes Problem bei der Entwicklung des ENIAC war die Fehleranfälligkeit der Elektronenröhren. Wenn nur eine der 17.468 Röhren ausfiel, rechnete die gesamte Maschine fehlerhaft.

Konzeptionelle Entwürfe

In seinem Papier First Draft on the Report of EDVAC beschreibt John von Neumann 1945 die Basiskomponenten eines Rechners:

  • ALU (Arithmetic Logic Unit) – Rechenwerk für die Durchführung mathematischer/logischer Operationen
  • Control Unit – Steuerwerk für die Interpretation der Anweisungen eines Programmes
  • BUS – Bus System, dient zur Kommunikation zwischen den einzelnen Komponenten (Steuerbus, Adressbus, Datenbus)
  • Memory – Speicherwerk sowohl für Programme als auch für Daten
  • Ein-/Ausgabe – Nutzerinterface

Neumann

Die Transistor-Ära

1948 stellen Shockley, Bardeen und Brattain den ersten Transistor an den Bell Labs her. Dafür erhalten sie 1956 den Nobelpreis für Physik. Der Transistor verdrängt langsam die Röhre als Verstärker und Schalter. Die neue Technik ermöglicht die Erstellung integrierter Schaltungen.

!?NPN Transistor

Und wie wird daraus nun ein Rechner? Die intelligente Verschaltung mehrerer Transistoren ermöglicht die Umsetzung von logischen Schaltungen wie AND, OR usw.

TransistorAND

Diese wiederum fassen wir nun in entsprechenden ICs zusammen. Wir haben die elektrische Ebene verlassen und sind endgültig auf der logischen Ebene angekommen.

AND-IC

Intel 4004

Beispiel: Intel 4004-Architektur (1971)

intel

  • Anzahl Transistoren: 2300
  • Taktfrequenz: 500 bis 740 kHz
  • Zyklen pro Instruktion: 8
  • Daten-Adressraum: 5120 Bit (Harvard-Architektur)
  • Anzahl Befehle: 46
  • Bauform: 16 Pin (DIP)

Halten Sie nach der GoldCap-Variante Ausschau!

Unterstützung für die Interpretation aus dem Nutzerhandbuch, dass das Instruction set beschreibt:

instruction-set

Weitere Entwicklung

Jahr Entwicklung Beschreibung
1971 Intel 4004 Erste kommerzielle CPU auf einem einzigen Chip (4-Bit).
1978 Intel 8086 16-Bit-Architektur und Grundlage für die x86-Architektur.
1979 Motorola 68000 mit 32-Bit interner Architektur
1985 RISC-Architektur Einführung der RISC (Reduced Instruction Set Computer)-Architektur für effizientere CPU-Designs.
1989 Intel i860 und erste GPUs Erste Grafikprozessoren (GPUs) für 3D-Beschleunigung und spezielle Berechnungen.
1993 Intel Pentium Einführung von Super-Skalaren und schnellerer Rechenleistung bei x86-Prozessoren.
1999 Nvidia GeForce 256 Erste „GPU“ zur Hardware-Beschleunigung von 3D-Grafikberechnungen.
2000 AMD Athlon 64 Erste 64-Bit-Desktop-CPU.
2006 Mehrkernprozessoren (Intel Core, AMD Athlon X2) Einführung von Mehrkernprozessoren für verbesserte Leistung und parallele Verarbeitung.
2010 Nvidia Fermi-Architektur CUDA-Architektur für Parallelverarbeitung und GPGPU (General Purpose GPU Computing).
2011 Intel Sandy Bridge Einführung der integrierten Grafik mit CPU und GPU auf demselben Chip für höhere Effizienz.
2015 AMD HBM (High Bandwidth Memory) Einführung von HBM für schnelle und effiziente Speichernutzung bei GPUs.
2016 Nvidia Pascal-Architektur und Deep Learning GPUs mit optimierter Leistung für KI und Deep Learning (Tesla P100).
2020 Apple M1 SoC Erster ARM-basierter Desktop-Prozessor von Apple
2022 Nvidia Ada Lovelace-Architektur Fortschrittliche Architektur für Raytracing und KI-Beschleunigung mit DLSS 3-Technologie.

Moore

Und warum ist das nun alles für uns wichtig?

  • Die historische Entwicklung der Rechentechnik ist eine Übersicht über erfolgreiche und vergangene Trends oder korrekte und weniger korrekte Prognosen.

    I think there is a world market for about five computers. (Thomas J. Watson Jr., chairman of IBM, 1943)

    Where a calculator as the ENIAC is equipped with 18000 vacuum tubes and weighs 30 tons, computers in the future may have only 1000 vaccum tubes and weigh 1 1/2 tons. (Popular Mechanics, 1949)

    640 KBytes [of main memory] ought to be enough for anybody. (Bill Gates, Microsoft, 1981)

  • Eine Einordnung der vielzitierten Pioniere einer Wissenschaft ist für deren objektive Bewertung zwingend notwendig.

  • Entwicklungen wiederholen sich ...

Hausaufgabe

  • Setzen Sie sich mit den Unterschieden zwischen der Z1 und der Z3 auseinander.

  • Woher stammt der Begriff "Bug" in Bezug auf die Programmierung?