Grundlagen der Rechnerarchitektur
Einführung
Grundlagen der Rechnerarchitektur ‐Einführung 2
Unsere erste Amtshandlung:
Wir schrauben einen Rechner auf
Vorlesungsinhalte
• Binäre Arithmetik
• MIPS Assembler
• ARM, x86 und ISA‐Prinzipien
• Querschnittsthemen
• Prozessor
• Speicher
• Ein‐Ausgabe
• Parallelität
Übersicht dieses Vorlesungsabschnitts
• Grundbegriffe
• Performance
• Meilensteine der Rechnerarchitektur
• Trends
Grundlagen der Rechnerarchitektur ‐Einführung 4
Grundbegriffe
Rechnertypen
• Personal Mobile Device (PMD)
– Mobiltelefon, Tablet‐Computer
– Schwerpunkte sind Energie‐Effizienz und Echtzeit
• Desktop‐Computing
– Schwerpunkt Preis‐Performance
• Server
– Schwerpunkt Verfügbarkeit, Skalierbarkeit, Durchsatz
• Cluster/Warehouse‐Scale‐Computer
– Verwendung für “Software as a Service (SaaS)”
– Schwerpunkt Preis‐Performance
– Subklasse: Supercomputer, Schwerpunkt: Floating‐Point‐Performance schnelle interne Netze; abarbeiten von Batch‐Jobs
• Embedded‐Computer
– Schwerpunkt : Preis
Grundlagen der Rechnerarchitektur ‐Einführung 6
Standard‐Organisation eines Rechners
Bildquelle: David A. Patterson und John L. Hennessy. “Computer Organization And Design”.3rd Edition
Verarbeitet Daten
Speichert Daten Eingabe von Daten
Ausgabe von Daten
Computer‐Schichtenmodell
Geometrie Transistoren Logikschaltungen
Mikroarchitektur (Register‐Transfer Ebene) Instruktionssatz‐Architektur
Betriebssystem Assemblersprache
Höhere Programmiersprachen
Software
Hardware Grundlagen der Digitaltechnik
Grundlagen der Rechnerarchitektur
Grundlagen der Rechnerarchitektur ‐Einführung
Bildquelle: Vorlesung „Grundlagen der Rechnernetze“, Prof. Platzner, (Version 10.09.10)
8
Grundbegriffe
Darstellen und Speichern von Daten
Binäre Zahlendarstellung
Grundlagen der Rechnerarchitektur ‐Logik und Arithmetik 10
Darstellung einer Zahl zu einer beliebigen Basis b:
Dezimalwert dieser Zahl zur Basis b:
Binärzahlen‐Beispiel : 1101 two . Was ist der Dezimalwert?
Was ist die Binärzahl zu 11 ten ?
N‐Bit‐Binärzahlen
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 hex
Physikalischer Speicher
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) 2
10Bytes
Megabyte (MB) 2
20Bytes 10
6Bytes Gigabyte (GB) 2
30Bytes 10
9Bytes Terabyte (TB) 2
40Bytes 10
12Bytes Petabyte (PB) 2
50Bytes 10
15Bytes Exabyte (EB) 2
60Bytes 10
18Bytes
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?
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
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
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
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