slide 1 Vorlesung Theorie der Programmiersprachen Prof. Dr. Ulrich Ultes-Nitsche Forschungsgruppe Departement für Informatik Universität Freiburg
slide 2 Heute Komponenten eines Computers Speicher Die Grafiken der heutigen Vorlesung stammen im wesentlichen von W. Stallings.
slide 3 Schematische Struktur Prozessor Hauptspeicher Controller für Peripheriegerät... Controller für Peripheriegerät... B u s
slide 4 Hauptspeicher RAM Random Access Memory flüchtiger Speicher ROM wird der Strom abgeschaltet, geht die Information verloren durch Transistor oder Kondensator werden Bits temporär gespeichert Read-Only Memory residenter Speicher auch nach Abschalten des Stroms bleibt die Information erhalten Bits sind fest verdrahtet
slide 5 Eine elementare Speicherzelle (mit Transistoren realisiert) Takt D Q Q
slide 6 Statische und dynamische Speicher (SRAM und DRAM) Ein mit Transistoren realisierter Speicher (z.b. Flip-Flop) wird als statisch bezeichnet (SRAM): ist ein Bit gespeichert, bleibt es erhalten, solange der Speicher mit Strom versorgt wird und der Speicherinhalt nicht geändert wird Im Gegensatz hierzu gibt es Speicher, deren Inhalt ständig aufgefrischt werden muss (mit Kondensatoren realisiert): diese Speicher heissen dynamische Speicher (DRAM)
slide 7 SRAM versus DRAM SRAM schneller als DRAM Cache relativ teuer keine so hohe Packungsdichte DRAM etwas langsamer als SRAM normaler Hauptspeicher billig herzustellen hohe Packungsdichte, weil sehr einfache Schaltung
slide 8 Aufbau eines DRAM
slide 9 Flip-Flop auf Transistorebene
slide 10 Adressierung bei DRAMs
slide 11 SRAM Adressierung (256 kbyte aus 256 kbit Bausteinen)
slide 12 1 MByte aus 256 kbit Bausteinen
slide 13 Überlegen Sie selbst! Wie viele Adressleitungen brauch man um 16 Blöcke von 1024 1024 Bit Speicherbausteinen zu adressieren? Wie viel mehr Adressleitung braucht man, um einen Hauptspeicher fester Grösse (in Bit) bei einem Computer der Wortlänge 8 Bit zu adressieren, im Vergleich zu einem Computer der Wortlänge 16 Bit?
slide 14 Fehlerbehandlung In Speicherbausteinen können Bits verändert werden. Manche Computerspeicher enthalten daher redundante Information, die nur dazu dient, Fehler zu erkennen oder zu beheben.
slide 15 Speicheraufbau mit Fehlerkorrektur
slide 16 Fehlererkennung auf Bitebene Grundlegende Alternativen Ausnutzung der Distanz zwischen gültigen Codewörtern, d.h. nicht alle möglichen Bitkombinationen sind gültige Codewörter Hinzufügen von Redundanz bei der Übertragung (z.b. Paritätsbits, Prüfsummen) Hamming-Abstand Anzahl unterschiedlicher Bits zweier Codewörter c 1 und c 2, d.h. Anzahl der 1-Bits von c 1 XOR c 2. Beispiel: d(10001001, 10110001) = 3 Hamming-Abstand D von vollständigem Code C : minimaler Abstand zwischen zwei Code-Wörtern.
slide 17 Hamming Codes (I) Hamming-Abstand eines Code bestimmt die Fähigkeit des Codes, Fehler zu erkennen und zu beheben erkennen von e-bit-fehlern: Hamming-Abstand e+1 notwendig beheben von e-bit-fehlern: Hamming-Abstand 2e+1 notwendig
slide 18 Hamming Codes (II) Wieviele Prüfbits r werden benötigt, um 1-Bit- Fehler bei Codewörtern mit m Bits zu beheben? mit m Bits können 2 m Codewörter erzeugt werden pro Codewort c i der Länge n = m + r existieren n illegale Codewörter gleicher Länge mit Hamming-Abstand 1. 2 n ist die Gesamtzahl der Codewörter es müssen also (n+1) 2 m Codewörter mit n Bits darstellbar sein untere Grenze für r berechnet sich zu: ( n + 1)2 fi ( m + m 2 n = r + 1) 2 2 r m+ r
slide 19 Hamming Codes (III) Beispiele Fehlererkennender Code Code mit einem einzigen Paritätsbit Hamming-Abstand des Codes = 2 Erkennung eines 1-Bit-Fehler möglich (allg.: Fehler mit ungerader Anzahl von Bits) Fehlerbehebender Code (vereinfacht) 00000 00000, 00000 11111, 11111 00000, 11111 11111 Hamming-Abstand des Code = 5 Korrektur von 2-Bit-Fehlern möglich Beispiel: 00000 00111 00000 11111 Hamming-Codierung Methode zur Erzeugung fehlerbehebender Codes
slide 20 Hamming Codierung (I) Ziel: Fehlerkorrektur bei 1-Bit Fehlern bei minimaler Redundanz Verfahren: Einfügen von Kontrollbits an alle Positionen, deren Nummer eine Zweierpotenz ist Durchnummerierung aller Bits Kontrollbits werden so gesetzt, dass die Summe aller Bits mit Wert 1, die in ihrer Binärdarstellung die Nummer des Kontrollbits enthalten, gerade ist.
slide 21 Hamming Codierung (II) Beispielcodierung: 0010: 0 _ 0 1 0 0 _ 0 _ 0 1 0 0 I 0 _ 0 1 0 0 1 0 1 0 1 0 Codewort: 0101010
slide 22 Hamming Codierung (III) Kippt bei der Datenübertragung ein Bit, so werden all jene Kontrollbits inkorrekt sein, deren Summe die Position des gekippten Bits angibt. z.b.: 0 1 0 1 0 1 0 letztes Bit kippt: 0 1 0 1 0 1 1 ungültige Kontrollbits: 0 1 0 1 0 1 1 gekipptes Bit an Position 1 + 2 + 4 = 7
slide 23 Ist diese Codierung wirklich optimal? Zeigen Sie, dass für das Beispiel mit der Wortlänge 4 Bit, Codeworte der Länge 7 Bit tatsächlich einen optimalen (d.h. kürzesten) 1-Bit- Fehler korrigierenden Code bilden.
slide 24 Was ist hier passiert? Angenommen ein Speicherinhalt wurde Hamming-codiert. Beim Auslesen einer Speicherzelle erhalten Sie das Ergebnis 1111111001111111. Ist hier ein Fehler aufgetreten? Falls ja, welches Bit ist fehlerhaft verändert worden? (unter der Annahme, dass, falls ein Fehler aufgetreten ist, genau ein Bit verändert wurde)
slide 25 Redundanz durch Paritätsbits Hinzufügen eines Paritätsbits zu einer Dateneinheit Gerade Parität (even parity): Ergänzung mit Paritätsbit auf eine gerade Anzahl von 1 -Bits Ungerade Parität (odd parity): Ergänzung auf ungerade Varianten Vertikale Parität (VRC, vertical redundancy check): Paritätsbit für jedes Zeichen Längsparität (LRC, longitudinal redundancy check; auch BCC genannt, block control character): Paritätsbit für die Bits einer Bitposition in einem Block von Zeichen. Matrixparität: Kombination von VRC und LRC
slide 26 Beispiel für Paritäten Zeichen 1 0 1 0 0 0 0 1 0 Zeichen 2 1 0 0 1 0 1 1 0 Zeichen 3 1 1 0 0 0 0 1 1 VCR (even parity) 0 0 0 1 0 1 1 BCC (even parity)
slide 27 Externe Speichermedien Magnetische Medien Festplatte, Floppy, ZIP-Drive Codierung durch Polarität elementarer Magneten auf dem Medium Getrennte Lese- und Schreibköpfe Optische Medien CDROM, DVD Kleine Löcher in Oberfläche Abtastung durch Laser
slide 28 Beispiel eines magnetischen Mediums
slide 29 Spuren und Sektoren Es gibt zwei Unterteilungen der Oberfläche magnetischer Speichermedien: Spuren (Tracks) konzentrische Ringe getrennt durch dünne unbenutzte Spuren (intertrack gaps) Sektoren (Sectors) Unterteilung der Spuren in einzelne Abschnitte (die Sektoren) getrennt durch dünne unbenutzte Sektoren (intersector gaps) Adressierung durch Track/Sector/Position
slide 30 Schema einer magnetischen Platte
slide 31 Layout magnetische Plattenspeicher Konstante Winkelgeschwindigkeit (CAV; constant angular momentum) Sektoren werden nach aussen breiter Multizonenaufnahme Zonen gleicher Dichte bessere Ausnutzung des Speichermediums
slide 32 Schreib-/Leseköpfe Die Einheit (auf engstem Raum) aus einem System zum Schreiben von Daten und einem weiteren zum Lesen von Daten wird als Schreib-/ Lesekopf bezeichnet. fester Kopf: pro Spur gibt es einen Schreib-/Lesekopf der Kopf bleibt unbeweglich beweglicher Kopf: nur ein Kopf pro Platte der Kopf wird zwischen Spuren hin- und herbewegt
slide 33 Beispiel einer Sektorenaufteilung Gap1 Id Gap2 Data Gap3 Gap1 Id Gap2 Data Gap3 Sync Byte Track Head Sector CRC Sync Byte Data CRC
slide 34 Multidisk-Systeme
slide 35 Zylinder von Spuren in Multidisk-Systemen identisch positionierte Spuren in einem Multidisk- System werden Zylinder genannt.
slide 36 Heute mögliche Datendichten aktuell: 4 Gbyte auf 4.3 cm 3.6 cm 0.5 cm (16g)
slide 37 Das war s für heute. Das ist alles, was ich heute machen wollte. Einen schönen Rest der Woche!