1 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 3. November 2005
51
Embed
1 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.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
Kap. 2 - Aufbau von Prozessoren2.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 SpeicherBits, 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
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
8
2.1.5 Parallelität auf Instruktionsebene:Pipelining (Fliessbandverarbeitung)
Latenzzeit (= Abarbeitungszeit einer Instruktion) vs Prozessorbandbreite (= Anzahl MIPS)
9
2.1.5 Parallelität auf Instruktionsebene:Superskalare Architekturen (1/2)
10
2.1.5 Parallelität auf Instruktionsebene:Superskalare Architekturen (2/2)
11
2.1.6 Parallelität auf Prozessorebene (1/2)
12
2.1.6 Parallelität auf Prozessorebene (2/2)
13
2. Primäre Speicher2.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
14
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
15
2.2.2 Speicheradressen (2/2)
• Bedeutung einer Zelle 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)
16
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)
17
2.2.3 Byteanordnung (2/2)
• Ein Beispiel
18
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
19
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
20
2.2.4 Fehlerkorrekturcodes (3/6)
21
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)
22
2.2.4 Fehlerkorrekturcodes (5/6)
• Hamming Algorithmus (wiederbesucht) Kodierung des 4-Bit-Speicherwort 1100 in den Mengen AB, AC, BC
und ABC mit je einem Bit
1
11
error
A
B
C1
1
0
0
0
A
B
C1
1
0
0
A
B
C1
0
0
0 error
Fehler
Paritätsbit
23
2.2.4 Fehlerkorrekturcodes (6/6)
Das gleiche in einer anderer Darstellung
A B C : Mengen0 1 1 1 1 0 0 : Codewort1 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 + … + bi3) Indem man die Positionen der Paritätsbits addiert die versagen erhält man die Position des falschen Bits !!!