N‐Bit‐Binärzahlen
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 11
N‐Bit‐Binärzahlen, Beispiel 16‐Bit:
Stelle: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Binär-Digit: 0 0 1 0 1 0 0 1 1 1 0 0 1 0 0 0
Least‐Significant‐Bit (LSB) und Most‐Significant‐Bit (MSB) Nibble (4‐Bit):
1010
Byte (8‐Bit):
1001 1000
Halfword (16‐Bit):
1111 1100 1001 1100 Word (32‐Bit):
0110 1101 0010 1010 1111 1100 1001 1100
Hexadezimaldarstellung
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 12
Hex Bin Hex Bin Hex Bin Hex Bin
0 0000 4 0100 8 1000 c 1100
1 0001 5 0101 9 1001 d 1101
2 0010 6 0110 a 1010 e 1110
3 0011 7 0111 b 1011 f 1111
1100 1001 0001 1111
Binär nach Hexadezimal
Hexadezimal nach Binär
AFFE
hexPhysikalischer Speicher
Grundlagen der Rechnerarchitektur ‐Assembler 13
Adresse Inhalt 0x00000000 : 10011001 0x00000001 : 01010111 0x00000002 : 00110011 0x00000003 : 10110100 0x00000004 : 10101111 0x00000005 : 10001000 0x00000006 : 11111000 0x00000007 : 10001101 ...
...
...
0xfffffffd : 10101111 0xfffffffe : 10111011 0xffffffff : 11111000
Wie viele Bytes können hier
insgesamt adressiert werden?
Speichergrößen
Grundlagen der Rechnerarchitektur ‐Einführung 14
Bezeichnung Anzahl Bytes Gelegentlich für Sekundärspeicher Kilobyte (KB) 210 Bytes
Megabyte (MB) 220 Bytes 106 Bytes Gigabyte (GB) 230 Bytes 109 Bytes Terabyte (TB) 240 Bytes 1012 Bytes Petabyte (PB) 250 Bytes 1015 Bytes Exabyte (EB) 260 Bytes 1018 Bytes
Größenordnungen sind ab MB bis auf kleinen Fehler vergleichbar, z.B.:
Speichern von längeren Datenblöcken
• Beispiel: ein Word umfasst 4 Byte
• Wie legt man ein Word in den Speicher ab?
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 15
Word:
345455 543453 453543 22325 byte4 byte3 byte2 byte1
base+0 base+1 base+2 base+3 Little‐
Endian Big‐
Endian
ASCII‐Zeichen
Grundlagen der Rechnerarchitektur ‐Assembler 16
Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012
Unicode
Grundlagen der Rechnerarchitektur ‐Assembler 17
Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012
Zeichenketten (Strings)
Grundlagen der Rechnerarchitektur ‐Assembler 18
H a l l o W e l t ! @ + ^ a ° % % | } } @ @
Speicher
Niedrigere Adresse Höhere Adresse
Wann ist der Text zu Ende? Beispiele:
(1) Erste String‐Position speichert die String‐Länge
(2) String‐Länge ist in einer separaten Variable gespeichert
(3) String‐Ende wird mit einem speziellen Character markiert (z.B. \0)
Grundbegriffe
Verarbeiten von Daten
Grundlagen der Rechnerarchitektur ‐Einführung 19
Maschinensprache
Grundlagen der Rechnerarchitektur ‐Einführung 20
Berechne 0^2 + 1^2 + 2^2 + 3^2 + ... + 100^2
Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012
Dasselbe Programm in Assembler
Grundlagen der Rechnerarchitektur ‐Einführung 21
Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012
Assembler
Instruction‐Set‐Architecture (ISA)
• Schnittstelle zwischen Hardware und Software
• ISA bestimmt
– Art der Speicherzugriffe
– Verfügbare arithmetische und logische Operationen – Typ und Größe der Operanden der Berechnungen – Arten von Programmsprüngen
– Die Art wie ISA‐Instruktionen in Maschinensprache codiert werden
• Wesentliche Klassifikaiton
– CISC (Complex‐Instruction‐Set‐Computer) – RISC (Reduced‐Instruction‐Set‐Computer)
• Moderne Prozessoren sind RISC (selbst x86 intern)
Grundlagen der Rechnerarchitektur ‐Einführung 22
Grundbegriffe
Integrierte Schaltungen
Grundlagen der Rechnerarchitektur ‐Einführung 23
Beispiel eines Mikroprozessors
Grundlagen der Rechnerarchitektur ‐Einführung 24
AMD Barcelona
Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012
Grundlagen der Rechnerarchitektur ‐Einführung 25 Bildquellen: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012;
de.wikipedia.org/wiki/Relais; de.wikipedia.org/wiki/Elektronenröhre; de.wikipedia.org/wiki/Transistor;
de.wikipedia.org/wiki/Integrierte_Schaltung; upload.wikimedia.org/wikipedia/commons/9/94/VLSI_Chip.jp
Technologien zum Bau von Prozessor und Speicher
Der Chip‐Herstellungsprozess
Grundlagen der Rechnerarchitektur ‐Einführung 26
Beispiel: 300mm AMD Opteron Wafer
Grundlagen der Rechnerarchitektur ‐Einführung 27
Der Chip‐Herstellungsprozess
Grundlagen der Rechnerarchitektur ‐Einführung 28
Performance
Grundlagen der Rechnerarchitektur ‐Einführung 29
Definition von Performance
Grundlagen der Rechnerarchitektur ‐Einführung 30
Response‐Time (oder Execution‐Time) – Gesamtzeit zur Abarbeitung einer Aufgabe Throughput(oder Bandwidth) – Anzahl Aufgaben pro Zeiteinheit
Performance p eines Computers mit Execution‐Time x:
Performance‐Ratio n zwischen zwei Computern mit Performance p1 und p2 bzw. Execution‐
Times x1 und x2:
Beispiel: Computer A braucht 10 Sekunden und Computer B braucht 15 Sekunden. Die Performance‐Ratio nAB zwischen A und B ist:
Messen von Zeit und Frequenz
Grundlagen der Rechnerarchitektur ‐Einführung 31
CPU‐Execution‐Time (oder CPU‐Time) – Zeit die die CPU für die Aufgabe beansprucht wird
System‐Performance – Performance auf der Basis von Execution‐Time CPU‐Performance – Performance auf der Basis von CPU‐Time
Bezeichnung Anzeil einer Sekunde Millisekunde (ms) 10‐3 Sekunden
Mikrosekunde (µs) 10‐6 Sekunden Nanosekunde (ns) 10‐9 Sekunden Pikosekunden 10‐12 Sekunden
Zeit Frequenz
Bezeichnung 1/Sekunde
Hz 1
KHz 10^3
MHz 10^6
GHz 10^9
Maschinentakt zur Zeitmessung
Grundlagen der Rechnerarchitektur ‐Einführung 32
Clock‐Cycle Zeit
Clock‐Rate [Hz] bei Clock‐Periode [s]: Beispiel Clock‐Rate bei bei 250 ps Clock‐
Periode?
Zusammenhang zwischen CPU‐Time, Clock‐Cycles für ein Programm und Clock‐Periode bzw. Clock‐Rate:
Instruktionsperformance
Grundlagen der Rechnerarchitektur ‐Einführung 33
Instruktion 1 Instruktion 2 Inst 3 Instruktion 4
…
ZeitClock Cycles per Instruction (CPI) – Mittlere Anzahl Cycles pro Instruktion für ein gegebenes Programm oder Programmfragment.
Instruction‐Count – Anzahl benötigter Instruktionen für ein gegebenes Programm oder Programmfragment.
Zusammenhang zwischen CPU‐Time, CPI, Instruction‐Count und Clock‐Periode bzw. Clock‐
Rate:
Zeitmessung zusammengefasst
Grundlagen der Rechnerarchitektur ‐Einführung 34
Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012
Hardware‐ oder Software‐Komponente Beeinflusst bzw. kann beeinflussen
Algorithmus Instruction‐Count, CPI
Programmiersprache Instruction‐Count, CPI
Compiler Instruction‐Count, CPI
Instruction‐Set‐Architektur Instruction‐Count, Clock‐Rate, CPI Grundlegende Messgrößen
Einflussfaktoren
Performance‐Messung mittels MIPS?
Grundlagen der Rechnerarchitektur ‐Einführung 35
MIPS – Millionen Instruktionen pro Sekunde
Also für ein Programm mit gegebener Execution‐Time und Instruction‐Count:
MIPS ist abhängig vom CPI‐Wert:
SPEC CPU Benchmark
Grundlagen der Rechnerarchitektur ‐Einführung 36
Was ist das Geometrische Mittel g von x1, …, xn?
Beispiel: SPEC CINT 2006 Benchmarks für einen AMD Opteron X4 Model 2356 (Barcelona)