Kap. 2 - Aufbau von Prozessoren 3. November 2005 Kap. 2 - Aufbau von Prozessoren 2.1 Prozessoren 2.1.1 Aufbau der CPU 2.1.2 Ausführung von Instruktionen 2.1.3 RISC kontra CISC 2.1.4 Designprinzipien moderner Computer 2.1.5 Parallelität auf Instruktionsebene 2.1.6 Parallelität auf Prozessorebene 2.2 Primäre Speicher Bits, Speicheradressen, Byteanordnung, Fehlerkorrekturcodes, Cache-Speicher, Speicherbaueinheiten und -typen Nicht behandelt in dieser Vorlesung: 2.3 Sekundäre Speicher Speicherhierarchien, Magnetplatten, Disketten, IDE-Festpaltten, SCSI-Festplatten, RAID, CD, DVD 2.4 Eingabe / Ausgabe (E/A) Busse, Terminals, Mäuse, Drucker, Modems, Zeichencodes nfnfdnfnfn
2.1 Prozessoren nfnfdnfnfn
2.1.1 Aufbau der CPU nfnfdnfnfn
2.1.2 Ausführung von Instruktionen (1/2) 1. Hole die nächste Instruktion aus dem Speicher in das Instruktionsregister 2. Aendere den Befehlszähler, damit er auf die nächste Instruktion zeigt 3. Bestimme den Typ der geradene eingelesenen Instruktion 4. Wenn die Instruktion ein Wort im Speicher benutzt, bestimme die Position des Wortes 5. Lies bei Bedarf das Wort in ein CPU-Register ein 6. Führe die Instruktion aus 7. Gehe zu Schritt 1 und beginne die Ausführung der nächsten Instruktion nfnfdnfnfn
2.1.2 Ausführung von Instruktionen (2/2) nfnfdnfnfn
2.1.3 RISC kontra CISC Komplexe vs einfache Instruktionen RISC = Reduced Instruction Set Computer CISC = Complex Instruction Set Computer Herrschender Trend bis 1980: CISC Intel, DEC VAX, IBM-Grossrechner Ab 1980: RISC (durch IBM initiert !!!) John Coke (IBM !) David Petterson und Carlo Séquin (Berkeley) Hennessy (Stanford): MIPS und SPARC (Sun !) Heute CISC: Pentium (Intel), … RISC: PowerPC (Motorola, IBM, Apple), Alpha (DEC), … nfnfdnfnfn
2.1.4 Designprinzipien moderner Computer Alle Instruktionen werden direkt von der Hardware ausgeführt Maximieren der Rate, mit der Instruktionen ausgegeben werden MIPS = Million Instruction Per Second (!) Die Befehle müssen leicht zu dekodieren sein Nur LOAD- und STORE-Instruktionen sollen auf den Speicher verweisen Stelle Register in Hülle und Fülle bereit nfnfdnfnfn
2.1.5 Parallelität auf Instruktionsebene: Pipelining (Fliessbandverarbeitung) Latenzzeit (= Abarbeitungszeit einer Instruktion) vs Prozessorbandbreite (= Anzahl MIPS) nfnfdnfnfn
2.1.5 Parallelität auf Instruktionsebene: Superskalare Architekturen (1/2) nfnfdnfnfn
2.1.5 Parallelität auf Instruktionsebene: Superskalare Architekturen (2/2) nfnfdnfnfn
2.1.6 Parallelität auf Prozessorebene (1/2) nfnfdnfnfn
2.1.6 Parallelität auf Prozessorebene (2/2) nfnfdnfnfn
2. Primäre Speicher 2.2.1 Bits Definition Die Grundeinheit des Speichers ist die binäre Ziffer, genannt Bit Eine Kuriosität: Binary Coded Decimal (BCD) Die Zahlen 0 bis 9 werden mit vier bits dargestellt, die 6 verbleidende Kombinationen werden nicht benutzt! Beispiel für die Zahl 91: BCD: 1001 0001 Noch kurioser: man hat solche Computer gebaut ! Z.B. gewisse IBM-Grossrechnern nfnfdnfnfn
2.2.2 Speicheradressen (1/2) Ein Speicher besteht aus einer Reihe von Zellen Alle Zellen enthalten die gleiche Anzahl von Bits Jeder Zelle wird eine Nummer (ihre Adresse) zugeordnet nfnfdnfnfn
2.2.2 Speicheradressen (2/2) Bedeutung einer Zelle Standard Sie ist die kleinste adressierbare Einheit Standard 1 Byte = 8 bits 1 Wort = n Bytes (~1975: n=1, ~1985: n=2, ~1995: n=4 und ~2005: n=8) nfnfdnfnfn
2.2.3 Byteanordnung (1/2) Big-Endian: von links nach rechts Beispiel: Intel (80x00, Pentium), SPARC, IBM-Grossrechnern Little-Endian: von rechts nach links Beispiel: Motorola (680x0), PowerPC (IBM, Motorola, Apple) nfnfdnfnfn
2.2.3 Byteanordnung (2/2) Ein Beispiel nfnfdnfnfn
2.2.4 Fehlerkorrekturcodes (1/6) Einige Definitionen Ein n-Bit-CodeWort besteht aus m Daten- und r Prüfbits Hamming-Abstand w zweier Codewörter = Anzahl Bitstellen in denen sich die beiden Codewörter unterscheiden Beispiel: w=1 für die Codewörter 000 und 010 Hamming-Abstand c eines Codes = minimaler Hamming-Abstand zweier zulässigen Codewörter Eigenschaften (für d Einzelbitfehler) Fehlererkennung: möglich für c = d + 1 (d.h. c > d) Fehlerkorrektur: theoretisch möglich für c = 2d + 1 (d.h. c > 2d) Beispiel: Paritätsbit Jedem m Datenbit wird ein einzelnes Paritätsbit angehängt Für ein solcher Code gilt c = 2 (oder anders ausgedrückt : es sind 2 Einzelbitfehler erforderlich, um von einem gültigen Codewort zu einem anderen gültigen Codewort zu gelangen) und es lassen sich Einzelbitfehler erkennen nfnfdnfnfn
2.2.4 Fehlerkorrekturcodes (2/6) Lemma (Richard Hamming, 1950) Um einen 1-bitfehler in einem m=2k-datenbit : (a) zu erkennen (b) zu korrigieren braucht man 1 beziehungsweise k+1 Prüfbits (für k≥2) Beweis (a) Paritätsbit ! Beweis (b) 1) es gibt 2m gültige Muster 2) mit r-prüfsbits gibt es 2m+r verschiedene Codewörter 3) Für jedes gültige Muster gibt es m+r ungültige mit einem Abstand von 1 (man bildet sie, indem man systematisch jedes der m+r bits invertiert) Aus (1) - (3) folgt : (m+r+1) * 2m ≤ 2m+r, d.h. m+r+1 ≤ 2r, d.h. k +1 ≤ r nfnfdnfnfn
2.2.4 Fehlerkorrekturcodes (3/6) nfnfdnfnfn
2.2.4 Fehlerkorrekturcodes (4/6) Hamming Algorithmus Kodierung des 4-Bit-Speicherwort 1100 in den Mengen AB, ABC, AC und BC mit je einem Bit je Menge (in alphabetischer Reihenfolge) nfnfdnfnfn
2.2.4 Fehlerkorrekturcodes (5/6) A A A Fehler error 1 1 1 C 1 1 C C 1 error 1 1 B B Paritätsbit B Hamming Algorithmus (wiederbesucht) Kodierung des 4-Bit-Speicherwort 1100 in den Mengen AB, AC, BC und ABC mit je einem Bit nfnfdnfnfn
2.2.4 Fehlerkorrekturcodes (6/6) Das gleiche in einer anderer Darstellung A B C : Mengen 0 1 1 1 1 0 0 : Codewort 1 2 4 : Stellenposition (2k, k=0,1,2,…) Position 3 ist durch A und B geprüft (3=1+2 !) Position 5 ist durch A und C geprüft (5=1+4 !) Position 6 ist durch B und C geprüft (6=2+4 !) Position 7 ist durch A, B und c geprüft (7=1+2+4 !) d.h. Position 1 prüft 3, 5 und 7 Position 2 prüft 3, 6 und 7 Position 4 prüft 5, 6 und 7 Verallgemeinerung (Hamming Algorithmus) 1) Die k+1 Prüfungsbits belegen die Positionen einer 2er Potenz (1,2,..2K) 2) Bit b wird durch die Paritätsbits bj geprüft, wobei b = b1 + b2 + … + bi 3) Indem man die Positionen der Paritätsbits addiert die versagen erhält man die Position des falschen Bits !!! nfnfdnfnfn
2.2.5 Cache-Speicher Lokalitätsprinzip Trefferquote (Hit Ratio), Fehlschlagrate (Miss Ratio) nfnfdnfnfn
2.2.6 Speicherbaueinheiten und -typen SIMM (Single Inline Memory Module) DIMM (Dual Inline Memory Module) nfnfdnfnfn
Kap. 2 - Aufbau von Prozessoren Aufbau der CPU, Ausführung von Instruktionen, RISC kontra CISC, Designprinzipien moderner Computer, Parallelität auf Instruktionsebene und Prozessorebene 2.2 Primäre Speicher Bits, Speicheradressen, Byteanordnung, Fehlerkorrekturcodes, Cache-Speicher, Speicherbaueinheiten und -typen 2.3 Sekundäre Speicher 2.3.1 Speicherhierarchien 2.3.2 Magnetplatten 2.3.3 Disketten 2.3.4 IDE-Festpaltten 2.3.5 SCSI-Festplatten 2.3.6 RAID 2.3.7-10 CD, DVD 2.4 Eingabe / Ausgabe (E/A) Busse, Terminals, Mäuse, Drucker, Modems, Zeichencodes nfnfdnfnfn
2.3.1 Speicherhierarchien nfnfdnfnfn
2.3.2 Magnetplatten (1/2) Die formatierte Kapazität ist meist etwa 15 Prozent geringer als die unformatierte nfnfdnfnfn
2.3.2 Magnetplatten (2/2) - Winchester Platten - Sektoren, Zylinder, - Positionierung (seek), Drehverzug (Rotational Delay) nfnfdnfnfn
2.3.3 Disketten (Floppy Disk) nfnfdnfnfn
2.3.4 IDE-Festplatten IDE EIDE Bemerkung Integrated Drive Electronics Extended IDE Bemerkung IDE- und EIDE-Festplatten gab es ursprünglich nur für Systeme auf Intel-Basis, weil die Schnittstelle eine exakte Kopie des IBM-PC Bus ist. nfnfdnfnfn
2.3.5 SCSI-Festplatten SCSI Bemerkung Small Computer System Interface (ANSI Standard, 1986) Bemerkung SCSI-Festplatten waren bis ~1998 Standard in den meisten Unix-Workstations von Sun, HP, SGI und anderen Anbietern (wie z. B. Apple) Heute sind sie durch USB- und Firewire-Festplatten ueberholt (IEEE Standards) nfnfdnfnfn
2.3.6 RAID RAID: Redundant Array of Inexpensive Disks (Patterson, 1988) SLED: Single large Expensive Disk nfnfdnfnfn
2.3.7-9 CD (1/3) CD-ROM, CD-R, CD-RW nfnfdnfnfn
2.3.7-9 CD (2/3) nfnfdnfnfn
2.3.7-9 CD (3/3) nfnfdnfnfn
2.3.10 DVD nfnfdnfnfn
Kap. 2 - Aufbau von Prozessoren 14. November 2001 Kap. 2 - Aufbau von Prozessoren 2.1 Prozessoren Aufbau der CPU, Ausführung von Instruktionen, RISC kontra CISC, Designprinzipien moderner Computer, Parallelität auf Instruktionsebene und Prozessorebene 2.2 Primäre Speicher Bits, Speicheradressen, Byteanordnung, Fehlerkorrekturcodes, Cache-Speicher, Speicherbaueinheiten und -typen 2.3 Sekundäre Speicher Speicherhierarchien, Magnetplatten, Disketten, IDE-Festpaltten, SCSI-Festplatten, RAID, CD, DVD 2.4 Eingabe / Ausgabe (E/A) 2.4.1 Busse 2.4.2 Terminals 2.4.3 Mäuse 2.4.4 Drucker 2.4.5 Modems 2.4.6 Zeichencodes nfnfdnfnfn
2.4.1 Busse (1/3) nfnfdnfnfn
2.4.1 Busse (2/3) nfnfdnfnfn
2.4.1 Busse (3/3) nfnfdnfnfn
2.4.2 Terminals (1/4) nfnfdnfnfn
2.4.2 Terminals (2/4) nfnfdnfnfn
2.4.2 Terminals (3/4) nfnfdnfnfn
2.4.2 Terminals (4/4) nfnfdnfnfn
2.4.3 Mäuse nfnfdnfnfn
2.4.4 Drucker (1/3) nfnfdnfnfn
2.4.4 Drucker (2/3) nfnfdnfnfn
2.4.4 Drucker (3/3) nfnfdnfnfn
2.4.5 Modems (1/2) nfnfdnfnfn
2.4.5 Modems (2/2) nfnfdnfnfn