50 Jahre nach den ersten Computern, immer noch von-Neumann-Architektur
Nach wie vor die Hauptarchitektur. Es gibt Alternativen
Im Detail wurde sehr viel verbessert
Mehrregister Maschinen
Von-Neumann in ursprünglichen Form einen Akkumulator
Zwischenergebnisse müssen in Speicher und zurück gebracht werden ⇒ Mehrere Akkumulatoren sinnvoll
Heute: mehrere Register, die als Akkumulatoren genutzt werden können, in der Regel 8 bis 16
Anstatt Einadressbefehle dann Zweiaddressbefehle
Beispiel: „ADD R1, X“: R1 := R1 + Inhalt(X)
Geschwindigkeits/Kapazitätshierarchie bei Speichern
Externspeicher (geringe Geschwindigkeit, hohe Kapazität)
Arbeitsspeicher (mittlere Geschwindigkeit, mittlere Kapazität)
Registerspeicher (hohe Geschwindigkeit, kleine Kapazität)
Virtualisierung
Virtuelle Maschine
Idee: nicht die tatsächlichen physikalischen Gegebenheiten definieren den Rechner, sondern virtuelle
geht für:
Speicher
Prozessoren
mittlerweile ganze Rechner
Virtuelle Speicher
Idee: Gaukle mehr Hauptspeicher vor, als tatsächlich vorhanden.
Mit was? Plattenspeicher
Wiederholung: Platte langsamer aber größer als Hauptspeicher („Speicherhierarchie“)
Virtueller Speicher:
Platte und Hauptspeicher
Virtueller Speicher > Hauptspeicher
Gesamter Adressraum des VS in Seiten einteilen
Hardware und Betriebssystem wissen, welche Seiten sich im Hauptspeicher befinden und welche nicht
Programm greift auf gesamten Adressraum zu Seite im Hauptspeicher: alles ok
Seite auf Platte: Seite wird von Platte in Hauptspeicher gebracht
zwar aufwändig, lohnt sich aber, da Prozessor oft ohne Arbeit ⇒ Zeit/Platz-Trade-Off, ebenfalls häufig in der Informatik anzutreffen
Cache
zwischen Steuerwerk und Hauptspeicher
sehr klein, sehr schnell
die letzten Daten, letzten Befehle sind dort und können vom Steuerwerk ohne Hauptspeicherzugriff wieder sehr schnell geholt werden
Lohnt sich wann?
Prinzip der Lokalität
Die meisten Programme greifen nicht gleichmäßig auf ihren Code und ihre Daten zu.
Untersuchung dieser Festellung führt zu Prinzip der Lokalität:
räumliche
Nachdem auf eine Adresse zugegriffen wurde, erfolgt wahrscheinlich ein Zugriff auf eine benachbarte Adresse
zeitliche
Nachdem auf eine Adresse zugegriffen wurde, erfolgt wahrscheinlich bald ein weiterer Zugriff auf dieselbe Adresse
Prinzip der Lokalität ist von großer Bedeutung beim Entwurf einer auf unterschiedlichen Geschwindigkeiten und Kapazitäten basierenden Speicherhierarchie.
Speicherhirachie
Organisationsform von Speichern
verschiedene Speicherarten werden in Ebenen aufgeteilt
jede Eben ist schneller kleiner und teurer als die Ebene darunter
alle Daten einer Ebene sind auch in der Ebene darunter enthalten
kleinste Informationseinheit in einer Speicherhirachie nennt man Block
zwischen Ebenen werden immer nur komplette Blöcke verschoben
Ziel:
mit dem großen Speicherbereich einer unteren Ebene zu arbeiten und dieses mit der Geschwindigkeit einer oberen Ebene
BILD
Mikroprogramme
Was passiert bei einem Hardware-Fehler?
Idee: Maschinenbefehle nicht vom Steuerwerk, sondern von einem Mikroprogramm ausführen lassen
virtueller/künstlicher Prozessor
billig/langsam: mehr Mikroprogramm
teuer/schnell: mehr Hardware
Mikroprogrammierung zwischen Hardware und Software, wird auch Firmware genannt
Parallelarbeit in einzelnen Komponenten - Grundidee
bisherige Entwicklung durch schnellere und kleinere Komponenten begründet
es gibt physikalische Grenzen der Miniaturisierung und Übermittlungsgeschwindigkeit
Idee: Parallel arbeitende Rechner!
n Prozessoren schaffen dieselbe Arbeit in 1/n der Zeit ?
Nein! Es muss koordiniert werden und das kostet.
Fest steht aber, dass die Parallelisierung in der Informatik fortschreiten wird
Parallelarbeit in einzelnen Komponenten - 3 Arten
Parallelität in einzelnen Komponenten
parallele Rechnerarchitekturen
Rechnernetze
Prozessoren für E/A
Idee:
Prozessor hat besseres zu tun als z.B. Daten von der Platte zum Hauptspeicher zu schaufeln
Lösung:
Peripherie hat eigene Prozessoren, die direkt auf den Hauptspeicher zugreifen können
Möglich durch Bus-System
DMA (Direct Memory Access)
Einfache oder komplizierte Befehle?
verstärkte Einsatz der Mikroprogrammierung führte zu sehr komplexen Maschinenbefehlen
Befehle wurden unterschiedlich lang und dauerten in ihrer Ausführung unterschiedlich lang ⇒ komplexe Steuerung nötig
Beobachtung:
Verschiedene Befehlsarten kommen unterschiedlich häufig vor, einige komplexe Befehle werden kaum genutzt.
Prozessoren mit wenigen, primitiven und schnellen Befehlen oder Prozessoren mit vielen, mächtigen und langsamen Befehlen.
CISC und RISC
CISC - Complex Instruction Set Computers
komplexe Befehle
RISC - Reduced Instruction Set Computers
mehr Register, einfache Befehle, schnell ausführbar
Aber:
Unterschiede verschwinden bei neueren Generationen
Unterscheidung wird nicht mehr durchgeführt
Parallele Rechnerarchitekturen
Fließband: Parralellisierung in einem Prozess
Jetzt: Parallelisierung mit mehrern Prozessoren
Voraussetzung:
Algorithmus parallelisierbar
oder viele unabhängige Aufgaben laufen auf einem Computer
Bei Vektor- und Matrizenverarbeitung kann man sehr viel parallelisieren
Amdahls Gesetz
Sei 1/n die Anzahl der nicht parallelisierbaren Schritte eines Algorithmus (
d.h. die Schritte, die sequentiell ausgeführt werden müssen)
dann bleiben (n-1)/n Zeitanteile, die parallelisierbar sein können
⇒ Gesamtgeschwindigkeit kann nicht einmal ver-n-facht werden!
Kommunikationsprobleme
Gemeinsamer Speicher
Verbindungsleitungen
Nur ein Schreib/Lesezugriff zur Zeit erlaubt
Sequentialisierung der Zugriffe notwendig
Außerdem Programmierung schwierig
in der Praxis 15 bis 30 Prozessoren
Verbindungleitungen
jeder Prozessor hat eigenen Speicher
jeder mit jedem verbinden ist teuer, daher meist nicht gemacht - andere Topologien
Mehrere autonome Rechner, die normalerweise nicht „zusammengehören“ bearbeiten gemeinsam eine Aufgabe
man unterscheidet:
Homogene und heterogene Netze
Weitverkehrsnetze (WAN, wide area network) und lokale Netze (LAN, local area network)
Protokolle
Aufgabe:
große Datenmengen mit hinreichender Geschwindigkeit und Fehlerfreiheit übertragen
Probleme:
heterogene Netze
versch. Technik: Ethernet, Token Ring, DSL, Kabel, Funk, optisch, ...
-> macht Protokoll notwendig
Legt strukturellen Aufbau und zeitliche Abfolge der Nachrichten fest
Vor Übertragung codieren
Nach Übertragung decodieren
Prüfzeichen zur Fehlererkennung
Steuerinformation
Es gibt sehr viele Protokolle:
einfache und komplizierte, gegen Fehler gesicherte und ungesicherte, für bestimmte Datenformate (Stichwort Streaming), firmenspezifische und Standardprotokolle, ...
Leitungs-und Paketvermittlung
Leitungsvermittlung
Teilnehmer werden durch eine Leitung verbunden, die ausschließlich für diese Kommunikation reserviert ist.
Bei wenig Kommunikation schlechte Ausnutzung.
Beispiel: Telefon.
Paketvermittlung
Kommunikation wird in Pakete aufgeteilt, die mit Empfänger- und Sender-Adresse versehen werden und dann über (viele) Netzknoten vom Sender zum Empfänger geschickt werden.
Probleme?
Pakete können verloren gehen, sich überholen, „hängen“ bleiben.
Routing (Wegwahl) ist schwierig.
Heute: Paketvermittlung auf dem Vormarsch (z.B. VoIP)
Schichtenarchitektur von Rechnernetzen
Abstraktion und Schichting hilft Komplexität zu beherrschen
Unterste Schicht für Übertragung von Bits auf physikalischer Ebene (Draht, Licht, Funk)
Darüber Schichten mit jeweils eigenen Zuständigkeiten und jeweils abstrakteren Protokollen
Programmierung in Schicht n darf nur auf Protokoll der Schicht n-1 zurückgreifen
Paket der Schicht n wird in Schicht n-1 „eingepackt“: D.h. mit den entsprechenden Zusatzinformationen versorgt. Beim Empfänger wieder auspacken.
ISO/OSI - Refenerenzmodell
Anwendungsarten
Datenverbund
Funktionsverbund
Lastverbund
Austausch von Daten
Erwiterung der Möglichkeiten durch Einbeziehung spezieller Rechner und Systeme
Verteilung von Lasten (in Stoßzeiten)
Client-Server-Modell
Server: Auftragnehmer/Anbieter
stellen Dienste zur Verfügung
Clients: Auftraggeber
nutzen Dienste
Rechner kann gleichzeitig CLient und Server sein
neuere Entwicklung: Peer-to-peer
kein zentraler Server, jeder ist Client und Server
Das Internet - Historie
Das World-Wide-Web
HTML
Hypertext Markup Language
Text mit Möglichkeit Multimedia-Daten einzubauen, Verlinkung (Hypertext)
jedes www-Dokument wird eindeutig identifiziert
URL - Uniform Resource Locator
HTML-Seiten werden mit Browser angezeigt
HTTP: Hypertext Transport Protocol
WWW und Internet nicht identisch!
Last changed2 years ago