Einführung in die Systemprogrammierung
|
|
- Adolf Jaeger
- vor 7 Jahren
- Abrufe
Transkript
1 Einführung in die Systemprogrammierung Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 15. April 2014
2 Veranstaltungsübersicht Kontakt: Prof. Dr. Christoph Reichenbach Homepage: b-sysp/index.de.html Veranstaltung besteht aus: Vorlesung (Di) Übungen (Mi) Klausur am 24.07, 10:00 12:00, Hörsaal V
3 Kompetenzen Jede Vorlesung und Übung behandelt bestimmte Kompetenzen Klausur: 80% reines Kompetenzwissen 20% Synthese (aus zwei oder mehr Kompetenzen) Bonuspunkte sammeln: 4 Testate
4 Literatur Rechnerorganisation und Rechnerentwurf, von David Patterson und John LeRoy Hennessy The C Programming Language, von Brian Kernighan und Dennis Ritchie (auch auf Deutsch in der Bibliothek erhältlich)
5 Warum Systemprogrammierung? Betriebssysteme bauen/erweitern Programmiersprachen bauen/erweitern Hohe Performanz Eingebettete Systeme programmieren Beurteilung des Nutzens von Hardware-Neuerungen Beurteilung der technischen Machbarkeit von Hochleistungsproblemen Systemanalyse
6 Ziele dieser Veranstaltung Fähigkeit, direkt mit Prozessor zu sprechen Grundlagen der Performanzmessung Verständnis der Systemabläufe bei Ausführung eines Programmes Grundlagen der C-Programmierung Grundlagen moderner Laufzeitsysteme Grundlagenverständnis der Quellen von Ineffizienzen bei der Programmausführung Grundlagenverständnis der Quellen von Sicherheitsproblemen in Systemprogrammen Beispiel: Heartbleed
7 Nicht-Ziele dieser Veranstaltung Wir bauen kein Betriebssystem Wir bauen keine Programmiersprache Wir behandeln keine elektronischen Details integrierter Schaltkreise Wir modellieren Systeme nicht vollständig formal
8 Systemprogrammierung im Kontext Programm Bibliotheken Laufzeitsystem Systemprogramm Systembibliotheken Betriebssystem Rechnerarchitektur Integrierte Schaltkreise
9 Systemprogrammierung im Kontext Programm Bibliotheken Laufzeitsystem Systemprogramm Systembibliotheken Betriebssystem Rechnerarchitektur Java, Python, Haskell, Scala, SML, PHP, C#, awk, Scheme, ADA, OCaml,... Integrierte Schaltkreise
10 Systemprogrammierung im Kontext Programm Bibliotheken Laufzeitsystem Systemprogramm Systembibliotheken Betriebssystem Rechnerarchitektur Integrierte Schaltkreise
11 Systemprogrammierung im Kontext Programm Bibliotheken Laufzeitsystem Systemprogramm Systembibliotheken Betriebssystem Rechnerarchitektur Integrierte Schaltkreise
12 Geplante Struktur Grundlagen der Rechnerarchitektur Assembler-Programmierung Performanz Grundlagen der Programmierung in C Grundlagen der Laufzeitsysteme moderner Programmiersprachen
13 Administrativa Einfu hrung Blinkanlage Taschenrechner Grundkonzepte der Rechnerarchitektur Speicher
14 Nexus 7-Mainboard SDRAM-Speicher (Hynix) Prozessor + GPU (Nvidia) Spannungsregulator (Max) WLan-Adapter (AzureWave) NFC-Chip (NXP) GPS-Empfänger (BroadCom) Gyroskop, Beschleunigungssensor (Invensense) Nexus 7 TM (Google, Asus) Mainboard. Bild von ifixit.com.
15 Funktionale Komponenten des Nexus 7-Mainboards SDRAM-Speicher Prozessor Grafikprozessor (GPU) GPU-Recheneinheit GPU-Grafikausgabe WLan-Adapter WLan-Sender WLan-Empfänger NFC-Chip NFC-Sender NFC-Empfänger GPS-Empfänger Gyroskop Beschleunigungssensor
16 Grundkonzepte der Rechnerarchitektur Speicher SDRAM-Speicher Eingabegeräte WLan-Empfänger NFC-Empfänger GPS-Empfänger Gyroskop Beschleunigungssensor Prozessorsystem Zentralprozessor Grafikprozessor Ausgabegeräte GPU-Grafikausgabe WLan-Sender NFC-Sender
17 Grundkonzepte der Rechnerarchitektur Speicher Eingabegeräte Prozessor- System Ausgabegeräte Rest der Welt
18 Beispiel: Programmierbare Blinkanlage Steuerung für Lampe Speicherzustand: 0: aus 1: an Speicher Prozessor
19 Beispiel: Programmierbare Blinkanlage Steuerung für Lampe Speicherzustand: 0: aus 1: an Kodierung eines Programmes: an aus an Speicher Prozessor
20 Beispiel: Programmierbare Blinkanlage Steuerung für Lampe Speicherzustand: 0: aus 1: an Kodierung eines Programmes: an 1 aus 0 an 1 Speicher Prozessor
21 Programmierbare Blinkanlage Speicher Wert: Adresse:
22 Programmierbare Blinkanlage Speicher Wert: Adresse: Prozessor Programmzähler = 0
23 Programmierbare Blinkanlage Speicher Wert: Adresse: Prozessor Programmzähler = 0
24 Programmierbare Blinkanlage Speicher Wert: Adresse: Prozessor Programmzähler = 0
25 Programmierbare Blinkanlage Speicher Wert: Adresse: Prozessor Programmzähler = 1
26 Programmierbare Blinkanlage Speicher Wert: Adresse: Prozessor Programmzähler = 2
27 Frei programmierbare Rechner Programmbefehle im Programmspeicher Programmzähler 1 zeigt auf nächsten Befehl Programmzähler schreitet automatisch vorwärts 1 Auch Instruktionszeiger ; gängige Abkürzungen: PC, IP
28 Frei programmierbare Rechner Programmbefehle im Programmspeicher Programmzähler 1 zeigt auf nächsten Befehl Programmzähler schreitet automatisch vorwärts Programmbefehle können aus mehreren Bits bestehen 1 Auch Instruktionszeiger ; gängige Abkürzungen: PC, IP
29 Beispiel: Programmierbarer Taschenrechner Taschenrechner speichert Berechnungen als Programme z.b.: (x + 2)x
30 Beispiel: Programmierbarer Taschenrechner Taschenrechner speichert Berechnungen als Programme z.b.: (x + 2)x x einlesen
31 Beispiel: Programmierbarer Taschenrechner Taschenrechner speichert Berechnungen als Programme z.b.: (x + 2)x x einlesen Ausrechnen
32 Beispiel: Programmierbarer Taschenrechner Taschenrechner speichert Berechnungen als Programme z.b.: (x + 2)x x einlesen Ausrechnen Ergebnis ausgeben
33 Beispiel: Programmierbarer Taschenrechner Taschenrechner speichert Berechnungen als Programme z.b.: (x + 2)x x einlesen Ausrechnen Ergebnis ausgeben Problem: Wir müssen Rechenergebnisse zwischenspeichern
34 Beispiel: Programmierbarer Taschenrechner Taschenrechner speichert Berechnungen als Programme z.b.: (x + 2)x x einlesen Ausrechnen Ergebnis ausgeben Problem: Wir müssen Rechenergebnisse zwischenspeichern Register: Datenspeicher im Prozessor
35 Prozessor des programmierbaren Taschenrechners Prozessor Programmzähler = 0 $0 = 0 $1 = 0 $2 = 0 $3 = 0 Register $0, $1, $2, $3 speichern Zwischenergebnisse Maschinenbefehle lesen von und schreiben in Register Die Maschinenbefehle drücken die einprogrammierte Berechnung aus
36 Befehle des Taschenrechners Dateneingabe Datenausgabe Addieren Multiplizieren Konstante
37 Befehle des Taschenrechners Dateneingabe eingabe $z $z Datenausgabe Addieren Multiplizieren Konstante $x, $y, $z sind Variablen für Register. Beispiel eines echten Befehls: add $1, $1, $2 ($1 := $1 + $2)
38 Befehle des Taschenrechners Dateneingabe eingabe $z $z Datenausgabe ausgabe $z $z Addieren Multiplizieren Konstante $x, $y, $z sind Variablen für Register. Beispiel eines echten Befehls: add $1, $1, $2 ($1 := $1 + $2)
39 Befehle des Taschenrechners Dateneingabe eingabe $z $z Datenausgabe ausgabe $z $z Addieren add $z, $x, $y $z := $x + $y Multiplizieren Konstante $x, $y, $z sind Variablen für Register. Beispiel eines echten Befehls: add $1, $1, $2 ($1 := $1 + $2)
40 Befehle des Taschenrechners Dateneingabe eingabe $z $z Datenausgabe ausgabe $z $z Addieren add $z, $x, $y $z := $x + $y Multiplizieren mul $z, $x, $y $z := $x $y Konstante $x, $y, $z sind Variablen für Register. Beispiel eines echten Befehls: add $1, $1, $2 ($1 := $1 + $2)
41 Befehle des Taschenrechners Dateneingabe eingabe $z $z Datenausgabe ausgabe $z $z Addieren add $z, $x, $y $z := $x + $y Multiplizieren mul $z, $x, $y $z := $x $y Konstante li $z, v $z := v $x, $y, $z sind Variablen für Register. Beispiel eines echten Befehls: add $1, $1, $2 ($1 := $1 + $2)
42 Befehle des Taschenrechners Dateneingabe eingabe $z $z Datenausgabe ausgabe $z $z Addieren add $z, $x, $y $z := $x + $y Multiplizieren mul $z, $x, $y $z := $x $y Konstante li $z, v $z := v $x, $y, $z sind Variablen für Register. Beispiel eines echten Befehls: add $1, $1, $2 ($1 := $1 + $2) Diese Befehle müssen in Bitmuster kodiert werden, damit der Prozessor sie lesen kann.
43 Befehle des Taschenrechners: Bitmuster Wir folgen den Bitmustern des MIPS-Befehlssatzes Jeder MIPS-Befehl besteht aus 32 Bits
44 Befehle des Taschenrechners: Bitmuster Wir folgen den Bitmustern des MIPS-Befehlssatzes Jeder MIPS-Befehl besteht aus 32 Bits Beispiel: add $z, $x, $y x 1 x 0 000y 1 y 0 000z 1 z
45 Befehle des Taschenrechners: Bitmuster Wir folgen den Bitmustern des MIPS-Befehlssatzes Jeder MIPS-Befehl besteht aus 32 Bits Beispiel: add $z, $x, $y x 1 x 0 000y 1 y 0 000z 1 z Operationscode (Opcode) $x $y $z Funktionscode
46 Vollständige Kodierung des add-befehls add $z, $x, $y : x 1 x 0 000y 1 y 0 000z 1 z Binärkodierung von Register $x (analog für $y, $z): Register x 1 x 0 $0 0 0 $1 0 1 $2 1 0 $3 1 1
47 Vollständige Kodierung des add-befehls add $z, $x, $y : x 1 x 0 000y 1 y 0 000z 1 z add $1, $2, $3 : Binärkodierung von Register $x (analog für $y, $z): Register x 1 x 0 $0 0 0 $1 0 1 $2 1 0 $3 1 1
48 Vollständige Kodierung des li-befehls li $z, v : z 1 z v 15, v 14,..., v 1, v 0
49 Vollständige Kodierung des li-befehls li $z, v : z 1 z v 15, v 14,..., v 1, v 0 Opcode $z Direktoperand v
50 Vollständige Kodierung des li-befehls li $z, v : z 1 z v 15, v 14,..., v 1, v 0 Opcode $z Direktoperand v li $2, 1000 : ?
51 Vollständige Kodierung des li-befehls li $z, v : z 1 z v 15, v 14,..., v 1, v 0 Opcode $z Direktoperand v li $2, 1000 : ? Kodierung von Zahlen im Binärsystem = Auffüllen mit 0
52 Vollständige Kodierung des li-befehls li $z, v : z 1 z v 15, v 14,..., v 1, v 0 Opcode $z Direktoperand v li $2, 1000 : Kodierung von Zahlen im Binärsystem = Auffüllen mit 0
53 Vollständige Kodierung des li-befehls li $z, v : z 1 z v 15, v 14,..., v 1, v 0 Opcode $z Direktoperand v li $2, 1000 : Kodierung von Zahlen im Binärsystem = Auffüllen mit 0 Bei 16 Bits also maximal = 65535
54 Befehle des Taschenrechners: Zusammenfassung Assemblersprache: Menschenlesbar Maschinensprache: Maschinenlesbar Assemblersprache Maschinensprache-Bitmuster eingabe $z z 1 z ausgabe $z z 1 z add $z, $x, $y x 1 x 0 000y 1 y 0 000z 1 z mul $z, $x, $y x 1 x 0 000y 1 y 0 000z 1 z li $z, v z 1 z v 15 v v 1 v 0
55 Ein Programm in der Taschenrechnersprache Wir schreiben (x + 2)x in Assemblersprache: Maschinensprache eingabe $
56 Ein Programm in der Taschenrechnersprache Wir schreiben (x + 2)x in Assemblersprache: Maschinensprache eingabe $ li $1,
57 Ein Programm in der Taschenrechnersprache Wir schreiben (x + 2)x in Assemblersprache: Maschinensprache eingabe $ li $1, add $1, $1, $
58 Ein Programm in der Taschenrechnersprache Wir schreiben (x + 2)x in Assemblersprache: Maschinensprache eingabe $ li $1, add $1, $1, $ mul $1, $1, $
59 Ein Programm in der Taschenrechnersprache Wir schreiben (x + 2)x in Assemblersprache: Maschinensprache eingabe $ li $1, add $1, $1, $ mul $1, $1, $ ausgabe $
60 Berechnung im Programmierbaren Taschenrechner Addr Maschinencode 0: : : : : (eingabe $0) Eingabe 5 Prozessor Programmzähler = 0 $0 = 0 $1 = 0 $2 = 0 $3 = 012 Ausgabe 5
61 Berechnung im Programmierbaren Taschenrechner Addr Maschinencode 0: : : : : (eingabe $0) Eingabe 5 Prozessor Programmzähler = 0 $0 = 0 $1 = 0 $2 = 0 $3 = 012 Ausgabe 5
62 Berechnung im Programmierbaren Taschenrechner Addr Maschinencode 0: : : : : (eingabe $0) (li $1, 2) Eingabe 5 Prozessor Programmzähler = 4 $0 = 5 $1 = 0 $2 = 0 $3 = 012 Ausgabe 5
63 Berechnung im Programmierbaren Taschenrechner Addr Maschinencode 0: : : : : (li $1, 2) (add $1, $1, $0) Eingabe 5 Prozessor Programmzähler = 8 $0 = 5 $1 = 2 $2 = 0 $3 = 012 Ausgabe 5
64 Berechnung im Programmierbaren Taschenrechner Addr Maschinencode 0: : : : : (add $1, $1, $0) (mul $1, $1, $0) Eingabe 5 Prozessor Programmzähler = 12 $0 = 5 $1 = 7 $2 = 0 $3 = 012 Ausgabe 5
65 Berechnung im Programmierbaren Taschenrechner Addr Maschinencode 0: : : : : (mul $1, $1, $0) (ausgabe $1) Eingabe 5 Prozessor Programmzähler = 16 $0 = 5 $1 = 35 $2 = 0 $3 = 012 Ausgabe 5
66 Berechnung im Programmierbaren Taschenrechner Addr Maschinencode 0: : : : : Eingabe 5 Prozessor Programmzähler = 20 $0 = 5 $1 = 35 $2 = 0 $3 = 012 Ausgabe 35
67 Zusammenfassung: Programmierbarer Taschenrechner Register sind (Zwischen)speicher für Berechnungen Prozessorbefehle kontrollieren die Schritte im Prozessor Prozessorbefehle können auf zwei Weisen ausgedrückt werden: Maschinenbefehle (Prozessor-lesbar, Bitfolgen) Assemblerbefehle (Menschen-lesbar) Prozessorbefehle liegen im Programmspeicher Der Programmzähler zeigt immer auf die Adresse des nächsten Befehls
68 Der Speicher Bisher nur als Programmspeicher genutzt Kann auch als Datenspeicher genutzt werden
69 Der Speicher Bisher nur als Programmspeicher genutzt Kann auch als Datenspeicher genutzt werden Harvard-Architektur Programmspeicher Von-Neumann-Architektur Programm- und Datenspeicher Prozessorsystem Prozessorsystem Datenspeicher
70 Der Speicher Bisher nur als Programmspeicher genutzt Kann auch als Datenspeicher genutzt werden Harvard-Architektur Programmspeicher Von-Neumann-Architektur Programm- und Datenspeicher Prozessorsystem Prozessorsystem Datenspeicher IBM Archives, obtained via Encyclopaedia Britannica c University of Manchester
71 Vorteile der Speicherarchitekturen Harvard-Architektur Sicherheit vor versehentlichen Programm-Modifikationen und Viren Kann sequentielle Zugriffe auf Programmspeicher beschleunigen Von-Neumann-Architektur Erlaubt selbstmodifizierende Programme Programme können andere Programme laden Speicher nicht Zweckgebunden
72 Daten im Datenspeicher Typische Elemente des Datenspeichers: Ganze Zahlen (Integer) Kommazahlen Objekte (von objektorientierten Sprachen) Algebraische Werte (von funktionalen Sprachen) Zeichenketten Adressen anderer Stellen im Datenspeicher Maschinensprache-Programme (insbesondere bei Von-Neumann-Architektur) Bytecode-Programme... All diese Daten werden in Bits kodiert.
73 Daten-Repräsentation Daten können fast beliebig komplex kodiert werden Einfache Kodierungen meist effizienter Meist als Bytes: 1 B = 1 Byte = 8 Bits Effiziente Darstellung mit Hexadezimalziffern (Basis 16): A B C D E F 10
74 Daten-Repräsentation Daten können fast beliebig komplex kodiert werden Einfache Kodierungen meist effizienter Meist als Bytes: 1 B = 1 Byte = 8 Bits Effiziente Darstellung mit Hexadezimalziffern (Basis 16): A B C D E F 10 Eine Hexadezimalziffer entspricht genau 4 Bits ( nibble )
75 Daten-Repräsentation Daten können fast beliebig komplex kodiert werden Einfache Kodierungen meist effizienter Meist als Bytes: 1 B = 1 Byte = 8 Bits Effiziente Darstellung mit Hexadezimalziffern (Basis 16): A B C D E F 10 Eine Hexadezimalziffer entspricht genau 4 Bits ( nibble ) Mögliche verschiedene Werte in Byte: 2 8 = = = 0x100 Wir lassen die Basis weg, wenn aus Kontext ersichtlich
76 Daten-Repräsentation: Natürliche Zahlen Kleine natürliche Zahlen in ein Byte: = 0C = 2A
77 Daten-Repräsentation: Natürliche Zahlen Kleine natürliche Zahlen in ein Byte: = 0C = 2A Natürliche Zahlen jenseits 255: = 3E8
78 Daten-Repräsentation: Natürliche Zahlen Kleine natürliche Zahlen in ein Byte: = 0C = 2A Natürliche Zahlen jenseits 255: = 3E8 Werden in mehreren Bytes in Folge gespeichert
79 Daten-Repräsentation: Natürliche Zahlen Kleine natürliche Zahlen in ein Byte: = 0C = 2A Natürliche Zahlen jenseits 255: = 3E8 Werden in mehreren Bytes in Folge gespeichert Komplikationen in der Praxis: Bytereihenfolge Speicherausrichtung
80 Bytereihenfolge = 3E8 Zwei übliche Bytereihenfolgen: 03 E8 (big endian großendig : SPARC, m68k) E8 03 (little endian kleinendig : x86, Alpha)
81 Bytereihenfolge = 3E8 Zwei übliche Bytereihenfolgen: 03 E8 (big endian großendig : SPARC, m68k) E8 03 (little endian kleinendig : x86, Alpha) Die vom Prozessor bevorzugte Bytereihenfolge kann in einem Befehl gelesen bzw. geschrieben werden Die andere Bytereihenfolge braucht mehrere Befehle
82 Speicherzugriffe Adresse: Inhalt:... 2C E Prozessor
83 Speicherzugriffe Adresse: Inhalt:... 2C E Prozessor 300 Zur Beschleunigung: Lesen und Schreiben von mehreren Bytes gleichzeitig
84 Speicherzugriffe Speicherausrichtung Adresse: Inhalt:... 2C E Prozessor Zur Beschleunigung: Lesen und Schreiben von mehreren Bytes gleichzeitig
85 Speicherzugriffe Speicherausrichtung Adresse: Inhalt:... 2C E Prozessor 00 E8 Zur Beschleunigung: Lesen und Schreiben von mehreren Bytes gleichzeitig Zur Vereinfachung der Architektur: Multi-Byte-Operationen nur ausgerichtet möglich
86 Speicherzugriffe Speicherausrichtung Adresse: Inhalt:... 2C E Prozessor 00 E Zur Beschleunigung: Lesen und Schreiben von mehreren Bytes gleichzeitig Zur Vereinfachung der Architektur: Multi-Byte-Operationen nur ausgerichtet möglich
87 Speicherzugriffe Speicherausrichtung Adresse: Inhalt:... 2C E Prozessor 1000 Zur Beschleunigung: Lesen und Schreiben von mehreren Bytes gleichzeitig Zur Vereinfachung der Architektur: Multi-Byte-Operationen nur ausgerichtet möglich
88 Speicherausrichtung Adressenausrichtung (alignment): Adresse a ist k-bit ausrerichtet gdw a mod (k/8) = 0 0xa000 ist 64-Bit (somit 32, 16-Bit) ausgerichtet 0xa001 ist nicht 16-Bit (oder 32, 64-Bit) ausgerichtet 0xa002 ist 16-Bit, aber nicht 32, 64-Bit ausgerichtet Moderne Prozessoren bevorzugen k-bit Zugriff auf k-bit ausgerichtete Daten
89 Speicherausrichtung Adressenausrichtung (alignment): Adresse a ist k-bit ausrerichtet gdw a mod (k/8) = 0 0xa000 ist 64-Bit (somit 32, 16-Bit) ausgerichtet 0xa001 ist nicht 16-Bit (oder 32, 64-Bit) ausgerichtet 0xa002 ist 16-Bit, aber nicht 32, 64-Bit ausgerichtet Moderne Prozessoren bevorzugen k-bit Zugriff auf k-bit ausgerichtete Daten Nicht-ausgerichteter Zugriff: Langsamer (x86), oder Programmfehler (Alpha, MIPS, SPARC, PowerPC; SIGBUS-Ausnahme in UNIX)
90 Beispiel: MIPS-Speicherzugriffbefehle Assemblerbefehl Ausrichtung Wirkung lbu $z, v($x) 8 liest 1 Byte lhu $z, v($x) 16 liest 2 Bytes (Halbwort) lw $z, v($x) 32 liest 4 Bytes (Wort) sb $z, v($x) 8 schreibt 1 Byte sh $z, v($x) 16 schreibt 2 Bytes (Halbwort) sw $z, v($x) 32 schreibt 4 Bytes (Wort) Die verwendete Speicheradresse ist v + $x: li $1, 0x2000 lbu $2, 0x1f($1) ;; liest von 0x201f
91 Daten-Repräsentation: Ganze Zahlen Wie repräsentieren wir ganze Zahlen (inklusive negativer Zahlen) im Speicher?
92 Daten-Repräsentation: Ganze Zahlen Wie repräsentieren wir ganze Zahlen (inklusive negativer Zahlen) im Speicher? Wie immer: Bitmuster!
93 Daten-Repräsentation: Ganze Zahlen Positive Zahlen: wie bisher Negative Zahlen: verschiedene Verfahren: Vorzeichen-Betrag Exzesscode Einerkomplement Zweierkomplement Negative Repräsentierungen verwenden logische Negation (neg bzw. ): b neg(b)
94 Daten-Repräsentation: Ganze Zahlen Positive Zahlen: wie bisher Negative Zahlen: verschiedene Verfahren: Vorzeichen-Betrag Exzesscode Einerkomplement Zweierkomplement Negative Repräsentierungen verwenden logische Negation (neg bzw. ): b neg(b) Im Folgenden betrachten wir 8-Bit Zahlen. Die Konzepte funktionieren analog mit größeren n-bit Zahlen.
95 Vorzeichen-Betrag-Darstellung Beispiel Bitfolge repr( 5) = Betrag Vorzeichen
96 Vorzeichen-Betrag-Darstellung Beispiel Bitfolge repr( 5) = Betrag Vorzeichen Negation x: Oberstes Bit negieren
97 Vorzeichen-Betrag-Darstellung Beispiel Bitfolge repr( 5) = Betrag Vorzeichen Negation x: Oberstes Bit negieren Arithmetik: Benötigt Fallunterscheidung
98 Vorzeichen-Betrag-Darstellung Beispiel Bitfolge repr( 5) = Betrag Vorzeichen Negation x: Oberstes Bit negieren Arithmetik: Benötigt Fallunterscheidung Zwei Nullen: , Zahlenraum: 2 n n 1 1 (symmetrisch)
99 Exzess-N-code-Darstellung Beispiel Bitfolge repr( 5) = = 123 = Hier: Exzess-128-Code (N = 128 = )
100 Exzess-N-code-Darstellung Beispiel Bitfolge repr( 5) = = 123 = Hier: Exzess-128-Code (N = 128 = ) Negation x: 2N x
101 Exzess-N-code-Darstellung Beispiel Bitfolge repr( 5) = = 123 = Hier: Exzess-128-Code (N = 128 = ) Negation x: 2N x Arithmetik: Benötigt Fallunterscheidung
102 Exzess-N-code-Darstellung Beispiel Bitfolge repr( 5) = = 123 = Hier: Exzess-128-Code (N = 128 = ) Negation x: 2N x Arithmetik: Benötigt Fallunterscheidung Eine Null: Zahlenraum: 2 n n 1 (asymmetrisch)
103 Einerkomplement-Darstellung Beispiel Bitfolge repr( 5) = neg(5) = neg( ) =
104 Einerkomplement-Darstellung Beispiel Bitfolge repr( 5) = neg(5) = neg( ) = Negation x: Alle Bits negieren
105 Einerkomplement-Darstellung Beispiel Bitfolge repr( 5) = neg(5) = neg( ) = Negation x: Alle Bits negieren Arithmetik: Ähnlich bei negativ/positiv
106 Einerkomplement-Darstellung Beispiel Bitfolge repr( 5) = neg(5) = neg( ) = Negation x: Alle Bits negieren Arithmetik: Ähnlich bei negativ/positiv Zwei Nullen: , Zahlenraum: 2 n n 1 (symmetrisch)
107 Zweierkomplement-Darstellung Beispiel Bitfolge repr( 5) = neg(5 1) = neg( ) =
108 Zweierkomplement-Darstellung Beispiel Bitfolge repr( 5) = neg(5 1) = neg( ) = Negation x: Benötigt Fallunterscheidung
109 Zweierkomplement-Darstellung Beispiel Bitfolge repr( 5) = neg(5 1) = neg( ) = Negation x: Benötigt Fallunterscheidung Arithmetik: Positive/negative Zahlen sehr ähnlich, nur Vorzeichenerweiterung nötig
110 Zweierkomplement-Darstellung Beispiel Bitfolge repr( 5) = neg(5 1) = neg( ) = Negation x: Benötigt Fallunterscheidung Arithmetik: Positive/negative Zahlen sehr ähnlich, nur Vorzeichenerweiterung nötig Eine Null: Zahlenraum: 2 n n 1 (asymmetrisch) Einfache Arithmetik kleiner Prozessor
111 Zusammenfassung: Zahlen mit Vorzeichen Vorzeichen-Betrag: Vorzeichen-Bit repr( 1) = Exzess-N-code: +N (hier N = 128) repr( 1) = Einerkomplement: Negation repr( 1) = Zweierkomplement: Negation, +1 repr( 1) =
112 Daten-Repräsentation: Zeichen ASCII: American Standard Code for Information Interchange Nummern : Zeichen; 0 31, 127: Kontrollzeichen
113 Daten-Repräsentation: Zeichen ASCII: American Standard Code for Information Interchange Nummern : Zeichen; 0 31, 127: Kontrollzeichen! " # $ % & ( ) * +, -. / A 2B 2C 2D 2E 2F : ; < = >? A 3B 3C 3D 3E A B C D E F G H I J K L M N O A 4B 4C 4D 4E 4F P Q R S T U V W X Y Z [ \ ] ˆ A 5B 5C 5D 5E 5F a b c d e f g h i j k l m n o A 6B 6C 6D 6E 6F p q r s t u v w x y z { } A 7B 7C 7D 7E
114 Daten-Repräsentation: Sonderzeichen Umlaute, Sonderzeichen etc. oft in gepackt codepages definieren unterschiedliche Bedeutungen.
115 Daten-Repräsentation: Sonderzeichen Umlaute, Sonderzeichen etc. oft in gepackt codepages definieren unterschiedliche Bedeutungen. Unicode: mehr als 110,000 Zeichen Als 32-Bit-Nummer (Manchmal 16-Bit-Nummer, bestimmte Zeichen werden dabei ausgeschlossen)
116 Daten-Repräsentation: Sonderzeichen Umlaute, Sonderzeichen etc. oft in gepackt codepages definieren unterschiedliche Bedeutungen. Unicode: mehr als 110,000 Zeichen Als 32-Bit-Nummer (Manchmal 16-Bit-Nummer, bestimmte Zeichen werden dabei ausgeschlossen) Zeichen: ä 電 I Kodierung: E4 96FB 13001
117 Daten-Repräsentation: Sonderzeichen Umlaute, Sonderzeichen etc. oft in gepackt codepages definieren unterschiedliche Bedeutungen. Unicode: mehr als 110,000 Zeichen Als 32-Bit-Nummer (Manchmal 16-Bit-Nummer, bestimmte Zeichen werden dabei ausgeschlossen) Zeichen: ä 電 I Kodierung: E4 96FB Zeichenketten (strings): Bytefolgen, pro Byte ein Zeichen
118 Daten-Repräsentation: Zeichenketten Zeichenkette = mehrere Zeichen in Folge + Längenangabe
119 Daten-Repräsentation: Zeichenketten Zeichenkette = mehrere Zeichen in Folge + Längenangabe Länge der Zeichenkette z.b.: Längenprefix: Länge als Zahl vor dem ersten Zeichen Terminiert mit Terminator (meist 00) Zeichenkette Längenprefix Terminiert "foo" F 6F 66 6F 6F 00
120 Unicode-Zeichenketten Unicode-Zeichenketten werden primär in drei Formaten abgelegt: UTF-32: Wie normale Zeichenkette, aber 32 Bit statt 8 Bit pro Zeichen
121 Unicode-Zeichenketten Unicode-Zeichenketten werden primär in drei Formaten abgelegt: UTF-32: Wie normale Zeichenkette, aber 32 Bit statt 8 Bit pro Zeichen UTF-16: Ein Unicode-Zeichen belegt 2 oder 4 Bytes: Nummer Bitmuster UTF-16 < xxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxx >= uuuuuxxxxxxxxxxxxxxxx wwwwxxxxxx xxxxxxxxxx (wwww = uuuuu - 1) D800 DFFF: keine gültigen Unicode-Zeichen 16/32-Bit-Fassungen unterschiedlich je nach Endigkeit
122 Unicode-Zeichenketten Unicode-Zeichenketten werden primär in drei Formaten abgelegt: UTF-32: Wie normale Zeichenkette, aber 32 Bit statt 8 Bit pro Zeichen UTF-16: Ein Unicode-Zeichen belegt 2 oder 4 Bytes: Nummer Bitmuster UTF-16 < xxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxx >= uuuuuxxxxxxxxxxxxxxxx wwwwxxxxxx xxxxxxxxxx (wwww = uuuuu - 1) D800 DFFF: keine gültigen Unicode-Zeichen 16/32-Bit-Fassungen unterschiedlich je nach Endigkeit UTF-8: Ähnlich UTF-16: 1 4 Bytes pro Zeichen
123 Beispiel: Daten im Datenspeicher $ hexdump -C hallo-welt.o b bf be H ba 0d f 05 b8 3c < bf f c 6c 6f 2c c a 00 e8 03 Hallo, Welt!
124 Beispiel: Daten im Datenspeicher $ hexdump -C hallo-welt.o b bf be H ba 0d f 05 b8 3c < bf f c 6c 6f 2c c a 00 e8 03 Hallo, Welt! Zahl (1000)
125 Beispiel: Daten im Datenspeicher $ hexdump -C hallo-welt.o b bf be H ba 0d f 05 b8 3c < bf f c 6c 6f 2c c a 00 e8 03 Hallo, Welt! Zahl (1000) Maschinensprache
126 Beispiel: Daten im Datenspeicher $ hexdump -C hallo-welt.o b bf be H ba 0d f 05 b8 3c < bf f c 6c 6f 2c c a 00 e8 03 Hallo, Welt! Zahl (1000) Maschinensprache Zeichenkette ( Hallo, Welt!\n )
127 Beispiel: Daten im Datenspeicher $ hexdump -C hallo-welt.o b bf be H ba 0d f 05 b8 3c < bf f c 6c 6f 2c c a 00 e8 03 Hallo, Welt! Zahl (1000) Maschinensprache Zeichenkette ( Hallo, Welt!\n ) Die Bedeutung von Speicherinhalten kann ohne Kontext nicht mit Sicherheit bestimmt werden
128 Speicherarchitektur Speicher Firmware / BIOS Allzweckspeicher Gerätespeicher Eingabegeräte Prozessor- System Ausgabegeräte
129 Rechnerarchitektur: Speicher Firmware / BIOS Allzweckspeicher Grafikspeicher Northbridge Eingabegeräte Prozessor- System Ausgabegeräte
130 Beispiel: IA32-Speicher (Real Mode) BIOS 0x xF0000 Gerätespeicher: RAM, ROM, EPROM, je nach Gerät Arbeitsspeicher: RAM BIOS/Firmware: EEPROM Gerätespeicher Arbeitsspeicher 0xA0000 BIOS 0x7C00 0x400
131 Nächste Woche: Assembler-Programmierung in MIPS
Einführung in die Systemprogrammierung
Einführung in die Systemprogrammierung Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 15. Juli 2014 Veranstaltungsübersicht Kontakt: Prof. Dr. Christoph Reichenbach (reichenbach@cs.uni-frankfurt.de)
MehrEinführung in die Systemprogrammierung
Einführung in die Systemprogrammierung Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 17. April 2013 Veranstaltungsübersicht Kontakt: Prof. Dr. Christoph Reichenbach (reichenbach@cs.uni-frankfurt.de)
MehrArithmetik, Register und Speicherzugriff. Grundlagen der Rechnerarchitektur Assembler 9
Arithmetik, Register und Speicherzugriff Grundlagen der Rechnerarchitektur Assembler 9 Arithmetik und Zuweisungen Einfache Arithmetik mit Zuweisung C Programm: a = b + c; d = a e; MIPS Instruktionen: Komplexere
MehrAufbau und Funktionsweise eines Computers
Aufbau und Funktionsweise eines Computers Thomas Röfer Hardware und Software von Neumann Architektur Schichtenmodell der Software Zahlsysteme Repräsentation von Daten im Computer Praktische Informatik
MehrEinführung in die Systemprogrammierung 01
Einführung in die Systemprogrammierung 01 Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 24. April 2013 Administrativa Ab nächster Woche bitte Laptops in Übungen mitbringen OLAT-Paßwort
MehrGrundlagen der Rechnerarchitektur. MIPS Assembler
Grundlagen der Rechnerarchitektur MIPS Assembler Übersicht Arithmetik, Register und Speicherzugriff Darstellung von Instruktionen Logische Operationen Weitere Arithmetik Branches und Jumps Prozeduren 32
MehrGrundlagen der Rechnerarchitektur. Einführung
Grundlagen der Rechnerarchitektur Einführung Unsere erste Amtshandlung: Wir schrauben einen Rechner auf Grundlagen der Rechnerarchitektur Einführung 2 Vorlesungsinhalte Binäre Arithmetik MIPS Assembler
MehrAssembler am Beispiel der MIPS Architektur
Assembler am Beispiel der MIPS Architektur Frühere Einsatzgebiete MIPS Silicon Graphics Unix Workstations (z. B. SGI Indigo2) Silicon Graphics Unix Server (z. B. SGI Origin2000) DEC Workstations (z.b.
MehrKap.2 Befehlsschnittstelle. Prozessoren, externe Sicht
Kap.2 Befehlsschnittstelle Prozessoren, externe Sicht 2 Befehlsschnittstelle 2.1 elementare Datentypen, Operationen 2.2 logische Speicherorganisation 2.3 Maschinenbefehlssatz 2.4 Klassifikation von Befehlssätzen
MehrMotivation und Überblick
Motivation und Überblick Drei große Bereiche der Vorlesung: Darstellung von Zahlen in Rechnern Verarbeitung von Binärdaten auf der Ebene digitaler Schaltungen Programmierung auf Maschinenebene und relativ
MehrARM-Cortex-M4 / Thumb-2-Befehlssatz Adressierungsarten und arithmetische Operationen
ARM-Cortex-M4 / Thumb-2-Befehlssatz Adressierungsarten und arithmetische Operationen Aufgabenstellung: - das beigefügte Assembler-Programm schrittweise ausführen - sich mit der Handhabung der Entwicklungswerkzeuge
MehrMikroprozessoren Grundlagen AVR-Controller Input / Output (I/O) Interrupt Mathematische Operationen
Mikroprozessoren Grundlagen Aufbau, Blockschaltbild Grundlegende Datentypen AVR-Controller Anatomie Befehlssatz Assembler Speicherzugriff Adressierungsarten Kontrollstrukturen Stack Input / Output (I/O)
MehrN Bit Binärzahlen. Stelle: Binär-Digit:
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)
Mehr2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16
2. Computer (Hardware) K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 14. Okt. 2015 Computeraufbau: nur ein Überblick Genauer: Modul Digitale Systeme (2. Semester) Jetzt: Grundverständnis
MehrDatenpfad einer einfachen MIPS CPU
Datenpfad einer einfachen MIPS CPU Die Branch Instruktion beq Grundlagen der Rechnerarchitektur Prozessor 13 Betrachten nun Branch Instruktion beq Erinnerung, Branch Instruktionen beq ist vom I Typ Format:
MehrAufbau und Funktionsweise eines Computers
Aufbau und Funktionsweise eines Computers Thomas Röfer Hardware und Software von Neumann Architektur Schichtenmodell der Software Zahlsysteme Repräsentation von Daten im Computer Hardware Prozessor (CPU)
MehrMicrocomputertechnik
Microcomputertechnik mit Mikrocontrollern der Familie 8051 Bearbeitet von Bernd-Dieter Schaaf 2. Auflage 2002. Buch. 230 S. Hardcover ISBN 978 3 446 22089 8 Format (B x L): 16 x 22,7 cm Gewicht: 407 g
MehrGrundlagen der Rechnerarchitektur
Grundlagen der Rechnerarchitektur Einführung Unsere erste Amtshandlung: Wir schrauben einen Rechner auf Grundlagen der Rechnerarchitektur Einführung 2 Vorlesungsinhalte Binäre Arithmetik MIPS Assembler
MehrProgrammiersprachen Einführung in C
Programmiersprachen Einführung in C Teil 1: Von der Maschinensprache zu C Prof. Dr. Maschinensprache: MIPS R2000 Was bewirkt folgendes Programm: 00100111101111011111111111100000 10101111101111110000000000010100
MehrGrundlagen der Rechnerarchitektur. Einführung
Grundlagen der Rechnerarchitektur Einführung Unsere erste Amtshandlung: Wir schrauben einen Rechner auf Grundlagen der Rechnerarchitektur Einführung 2 Vorlesungsinhalte Binäre Arithmetik MIPS Assembler
MehrERA-Zentralübung Maschinenprogrammierung
ERA-Zentralübung Maschinenprogrammierung M. Meyer LRR TU München 25.11.2016 Inhalt Aufgabe 4.1 Aufgabe 4.2 Zeichensätze Aufgabe 4.1 Leuchtbandanzeige/Bargraph Bit Nr: 15 14 13 12 11 10 9 8 7 6 5 4 3 2
MehrEinführung in die Programmierung mit Go
Einführung in die Programmierung mit Go Teil 1: Grundlegende Konzepte Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 8. März 2015 Übersicht der Veranstaltung Sonderveranstaltung:
MehrMikrocontroller. eine Einführung. Florian Schmitt - 16.11.2010 1 / 34
Mikrocontroller eine Einführung Florian Schmitt - 16.11.2010 1 / 34 Inhalt Was sind Mikrocontroller, wozu sind sie nützlich? Unterschiede und Gemeinsamkeiten mit dem PC Wie funktionieren Mikrocontroller
MehrMikrocomputertechnik
Mikrocomputertechnik Bernd-Dieter Schaaf Mit Mikrocontrollern der Familie 8051 ISBN 3-446-40017-6 Leseprobe Weitere Informationen oder Bestellungen unter http://www.hanser.de/3-446-40017-6 sowie im Buchhandel
MehrVon Assembler zu Java
Von Assembler zu Java Prof. Dr.-Ing. Thomas Schwotzer 1 Einführung Die erste imperativen Programme wurden in den Urzeiten der IT tatsächlich direkt auf der Hardware der Maschinen geschrieben. Die verfügbaren
MehrAssembler Integer-Arithmetik
Assembler Integer-Arithmetik Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler Integer-Arithmetik 1/23 2008-04-01 Arithmetik
MehrDatenpfad einer einfachen MIPS CPU
Datenpfad einer einfachen MIPS CPU Die Branch Instruktion beq Grundlagen der Rechnerarchitektur Prozessor 13 Betrachten nun Branch Instruktion beq Erinnerung, Branch Instruktionen beq ist vom I Typ Format:
MehrTeil 2: Rechnerorganisation
Teil 2: Rechnerorganisation Inhalt: Zahlendarstellungen Rechnerarithmetik schrittweiser Entwurf eines hypothetischen Prozessors mit Daten-, Adreß- und Kontrollpfad Speicherorganisation Mikroprogrammierung
MehrWie rechnet ein Rechner?
0 Motivation Jörg Roth 2 Wir gehen in dieser Vorlesung der Frage nach Wie rechnet ein Rechner? Als Softwareentwickler könnten wir in einem Programm z.b. folgende Anweisung schreiben: a = a+2*b; Wie wird
MehrAssembler Programmierung Motivation. Informatik II SS 2004 Teil 4: Assembler Programmierung. Assembler vs. Maschinensprache
Assembler Programmierung Motivation Informatik II SS 2004 Teil 4: Assembler Programmierung Was ist ein Programm? Eine Reihe von Befehlen, die der Ausführung einer Aufgabe dient Dazu wird das Programm sequentiell
MehrGrundlagen der Programmierung
Grundlagen der Programmierung 5. Vorlesung 06.11.2018 1 Zahlendarstellungen 2 Speicherinhalte: Bits Hardware Spannung Ladung Magnetisierung Codierung 0V ungeladen unmagnetisiert 0 5V geladen magnetisiert
MehrGrundlagen der Rechnerarchitektur
Grundlagen der Rechnerarchitektur Prozessor Übersicht Datenpfad Control Pipelining Data Hazards Control Hazards Multiple Issue Grundlagen der Rechnerarchitektur Prozessor 2 Datenpfad einer einfachen MIPS
MehrFAKULTÄT FÜR INFORMATIK
FAKULTÄT FÜR INFORMATIK TECHNISCHE UNIVERSITÄT MÜNCHEN Lehrstuhl für Rechnertechnik und Rechnerorganisation Prof. Dr. Arndt Bode Einführung in die Rechnerarchitektur Wintersemester 2016/2017 Tutorübung
MehrEinführung in die Systemprogrammierung
Einführung in die Systemprogrammierung Die Programmiersprache C Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 14. Mai 2015 Hallo, Welt! main() { printf("hallo, Welt!\n"); } main:
MehrRechnerstrukturen, Teil 1. Vorlesung 4 SWS WS 15/16
Rechnerstrukturen, Teil 1 Vorlesung 4 SWS WS 15/16 Prof. Dr Jian-Jia Chen Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-.de http://ls1-www.cs.tu-.de Übersicht
MehrVorlesung 1 Medizininformatik. Sommersemester 2017
Vorlesung 1 Medizininformatik Begrüssung und Einführung Medizininformatik () Vorlesung (2 SWS) Montags 8:30-10:00 Übung (1 SWS) 10:15-11:00 1. 24.4 1.5 2. 8.5 3. 15.5 4. 22.5 Computer Architecture Begrüssung,
MehrEinheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen
Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen Kurs C/C++ Programmierung, WS 2008/2009 Dipl.Inform. R. Spurk Arbeitsgruppe Programmierung FR 6.2 Informatik
MehrRechnerorganisation 12. Vorlesung
Rechnerorganisation 12. Vorlesung Mathematische Grundlagen (1) Boolesche Algebren: BMA, BAA (2,3) Kombinatorische Schaltungen (4,5) Automaten (6,7) Sequentielle Schaltungen (8) Programmierbare Strukturen
MehrRechnerorganisation 2 TOY. Karl C. Posch. co1.ro_2003. Karl.Posch@iaik.tugraz.at 16.03.2011
Technische Universität Graz Institut tfür Angewandte Informationsverarbeitung und Kommunikationstechnologie Rechnerorganisation 2 TOY Karl C. Posch Karl.Posch@iaik.tugraz.at co1.ro_2003. 1 Ausblick. Erste
Mehr"Organisation und Technologie von Rechensystemen 4"
Klausur OTRS-4, 29.09.2004 Seite 1 (12) INSTITUT FÜR INFORMATIK Lehrstuhl für Rechnerarchitektur (Informatik 3) Universität Erlangen-Nürnberg Martensstr. 3, 91058 Erlangen 29.09.2004 Klausur zu "Organisation
Mehr4. Daten. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16
4. Daten K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 19. Okt. 2015 Was ist Informatik? Begriffsbestimmung (Gegenstand): "Informatik ist die Wissenschaft... der maschinellen Verarbeitung,
MehrEinführung in die Systemprogrammierung
Einführung in die Systemprogrammierung Repräsentierung Rationaler Zahlen Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 19. Juni 2015 Rationale Zahlen Wie können wir Rationale
MehrRückblick. Addition in der b-adischen Darstellung wie gewohnt. Informatik 1 / Kapitel 2: Grundlagen
Rückblick Addition in der b-adischen Darstellung wie gewohnt 5 0 C E + D 4 2 D = 44 Rückblick Multiplikation in der b-adischen Darstellung wie gewohnt 1 0 1 0 1 0 1 = 45 Rückblick Darstellung negativer
MehrKlausur über den Stoff der Vorlesung Grundlagen der Informatik II (90 Minuten)
Institut für Angewandte Informatik und Formale Beschreibungsverfahren 15.02.2010 Klausur über den Stoff der Vorlesung Grundlagen der Informatik II (90 Minuten) Name: Vorname: Matr.-Nr.: Semester: (WS 2009/10)
MehrTechnische Informatik 1
Technische Informatik 1 2 Instruktionssatz Lothar Thiele Computer Engineering and Networks Laboratory Instruktionsverarbeitung 2 2 Übersetzung Das Kapitel 2 der Vorlesung setzt sich mit der Maschinensprache
MehrGrundlagen der Informatik II Teil 2: Architektur von Rechensystemen
Grundlagen der Informatik II Teil 2: Architektur von Rechensystemen Friederike Pfeiffer-Bohnen Micaela Wünsche Marlon Braun Lukas König Professor Dr. Hartmut Schmeck KIT Die Forschungsuniversität in der
MehrÜbungsblatt 10 (Block C 2) (16 Punkte)
georg.von-der-brueggen [ ] tu-dortmund.de ulrich.gabor [ ] tu-dortmund.de pascal.libuschewski [ ] tu-dortmund.de Übung zur Vorlesung Rechnerstrukturen Wintersemester 2016 Übungsblatt 10 (Block C 2) (16
MehrSelbststudium Informationssysteme - H1102 Christian Bontekoe & Felix Rohrer
Übung RA, Kapitel 1.5 1. Beantworten Sie bitte folgende Repetitionsfragen 1. Beschreiben Sie in eigenen Worten und mit einer Skizze die Schichtung einer Multilevel Maschine. Folie 5, rechte Seite 2. Welche
MehrÜbung Praktische Informatik II
Übung Praktische Informatik II FSS 2009 Benjamin Guthier Lehrstuhl für Praktische Informatik IV Universität Mannheim guthier@pi4.informatik.uni-mannheim.de 20.03.09 4-1 Heutige große Übung Ankündigung
MehrOrganisatorisches (1)
Organisatorisches (1) Abteilung Echtzeitsysteme und Kommunikation Prof. Dr. Nett nett@ivs.cs.uni-magdeburg.de Sekretariat: Frau Duckstein, Tel. 67-18345 pduckste@ivs.cs.uni-magdeburg.de Gebäude 29/ Etage
MehrRechner- organisa-on 2 TOY. Karl C. Posch.
Rechner- Technische Universität Graz Ins-tut für Angewandte Informa-onsverarbeitung und Kommunika-onstechnologie organisa-on 2 TOY Karl C. Posch Karl.Posch@iaik.tugraz.at co1.ro_2012. Ausblick. Erste HälEe
MehrDatenpfad einer einfachen MIPS CPU
Datenpfad einer einfachen MIPS CPU Zugriff auf den Datenspeicher Grundlagen der Rechnerarchitektur Prozessor 19 Betrachten nun Load und Store Word Erinnerung, Instruktionen lw und sw sind vom I Typ Format:
MehrZum Nachdenken. Welche Eigenschaften einer Vorzeichendarstellung. erreichen? Wie könnte man Vorzeichenzahlen darstellen?
TECHNISCHE HOCHSCHULE NÜRNBERG GEORG SIMON OHM Zum Nachdenken Welche Eigenschaften einer Vorzeichendarstellung könnte man versuchen zu erreichen? Wie könnte man Vorzeichenzahlen darstellen? Grundlagen
MehrEinführung in die Systemprogrammierung
Einführung in die Systemprogrammierung Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 9. Juli 2015 Eine Aufgabe aus der Praxis Gegeben ein bestimmtes Programm: Machen Sie dieses
MehrGrundlagen der Informatik
Grundlagen der Informatik (Wintersemester 2008/2009) Jörg Roth Jörg Roth 2 0 Motivation und Überblick Drei große Bereiche der Vorlesung: Darstellung von Zahlen in Rechnern Verarbeitung von Binärdaten auf
MehrPrinzipieller Aufbau und Funktionsweise eines Prozessors
Prinzipieller Aufbau und Funktionsweise eines Prozessors [Technische Informatik Eine Einführung] Univ.- Lehrstuhl für Technische Informatik Institut für Informatik Martin-Luther-Universität Halle-Wittenberg
Mehr1. TÜ-Zusammenfassung zum Modul Computersysteme
1. TÜ-Zusammenfassung zum Modul Computersysteme Kurzzusammenfassung 1. Kapitel Netzteil: Aufbau: Bereitgestellte Spannungen: 12V, -12V, 5V, -5V und 3.3V Leistung: Da bei Transformatoren die übertragbare
MehrStrings. Daten aus Dateien einlesen und in Dateien speichern.
Strings. Daten aus Dateien einlesen und in Dateien speichern. Strings Ein String ist eine Zeichenkette, welche von MATLAB nicht als Programmcode interpretiert wird. Der Ausdruck 'a' ist ein String bestehend
MehrB: Basis des Zahlensystems 0 a i < B a i є N 0 B є (N > 1) Z = a 0 B 0 + a 1 B 1 + a 2 B a n-1 B n-1
Polyadisches Zahlensystem B: Basis des Zahlensystems 0 a i < B a i є N 0 B є (N > 1) Ganze Zahlen: n-1 Z= a i B i i=0 Z = a 0 B 0 + a 1 B 1 + a 2 B 2 +... + a n-1 B n-1 Rationale Zahlen: n-1 Z= a i B i
MehrLösungsvorschlag zu 1. Übung
Prof. Frederik Armknecht Sascha Müller Daniel Mäurer Grundlagen der Informatik 3 Wintersemester 09/10 Lösungsvorschlag zu 1. Übung 1 Präsenzübungen 1.1 Schnelltest a) Welche der Aussagen treffen auf jeden
MehrTechnische Grundlagen der Informatik 2 SS Einleitung. R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt E-1
E-1 Technische Grundlagen der Informatik 2 SS 2009 Einleitung R. Hoffmann FG Rechnerarchitektur Technische Universität Darmstadt Lernziel E-2 Verstehen lernen, wie ein Rechner auf der Mikroarchitektur-Ebene
MehrDatenpfad einer einfachen MIPS CPU
Datenpfad einer einfachen MIPS CPU Zugriff auf den Datenspeicher Grundlagen der Rechnerarchitektur Prozessor 19 Betrachten nun Load und Store Word Erinnerung, Instruktionen lw und sw sind vom I Typ Format:
MehrÜbungen zur Vorlesung Technische Informatik I, SS 2002 Hauck / Guenkova-Luy / Prager / Chen Übungsblatt 5 Rechenwerke / Scheduling
Übungen zur Vorlesung Technische Informatik I, SS 2002 Hauck / Guenkova-Luy / Prager / Chen Übungsblatt 5 Rechenwerke / Scheduling Aufgabe 1: Sie haben in der Vorlesung einen hypothetischen Prozessor kennen
MehrRechnernetze I SS 2017 Rechnernetze I (1/13) Rechnernetze I SS 2017 Datendarstellung Rechnernetze I (10/13)
Rechnernetze I SS 2017 Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 13. Juli 2017 Betriebssysteme / verteilte Systeme Rechnernetze I (1/13) i Rechnernetze
MehrWie groß ist die Page Table?
Wie groß ist die Page Table? Im vorigen (typischen) Beispiel verwenden wir 20 Bits zum indizieren der Page Table. Typischerweise spendiert man 32 Bits pro Tabellen Zeile (im Vorigen Beispiel brauchten
MehrEinführung. Saalübung Informatik II SS Einführung. Einführung
Saalübung Informatik II SS 2006 SPIM-Assembler Teil 1 Einführung Übung zur SPIM-Assemblerprogrammierung Assembler ist die elementare Sprache eines Prozessors Assemblerbefehle repräsentieren die Basisoperationen
MehrRechnerorganisation 12. Vorlesung
Rechnerorganisation 12. Vorlesung Mathematische Grundlagen (1) Boolesche Algebren: BMA, BAA (2,3) Kombinatorische Schaltungen (4,5) Automaten (6,7) Sequentielle Schaltungen (8) Programmierbare Strukturen
MehrCompilerbau + Virtuelle Maschinen
Helmut Seidl Compilerbau + Virtuelle Maschinen München Sommersemester 2009 1 Organisatorisches Der erste Abschnitt Die Übersetzung von C ist den Vorlesungen Compilerbau und Virtuelle Maschinen gemeinsam
MehrVon-Neumann-Architektur
Von-Neumann-Architektur Bisher wichtig: Konstruktionsprinzip des Rechenwerkes und Leitwerkes. Neu: Größerer Arbeitsspeicher Ein- und Ausgabewerk (Peripherie) Rechenwerk (ALU) Steuerwerk (CU) Speicher...ppppp...dddddd..
MehrERA-Zentralübung Maschinenprogrammierung
ERA-Zentralübung Maschinenprogrammierung M. Meyer LRR TU München 27.10.2017 Arithmetik mit 80386 Inhalt Rechenmodell Register Befehle Beispiele 80386-Rechenmodell Typisches Zwei-Address-Format Ziel :=
MehrDer von Neumann Computer
Der von Neumann Computer Grundlagen moderner Computer Technologie 1 Der moderne Computer ein weites Spektrum Typ Preis Anwendungsbeispiel embeded Computer 10-20 $ in Autos, Uhren,... Spielcomputer 100-200$
MehrRechnerorganisation 12. Vorlesung
Rechnerorganisation 12. Vorlesung Mathematische Grundlagen (1) Boolesche Algebren: BMA, BAA (2,3) Kombinatorische Schaltungen (4,5) Automaten (6,7) Sequentielle Schaltungen (8) Programmierbare Strukturen
MehrRechnerorganisation 12. Vorlesung
Rechnerorganisation 12. Vorlesung Mathematische Grundlagen (1) Boolesche Algebren: BMA, BAA (2,3) Kombinatorische Schaltungen (4,5) Automaten (6,7) Sequentielle Schaltungen (8) Programmierbare Strukturen
Mehr7. Übung zur Vorlesung Grundlagen der Informatik
7. Übung zur Vorlesung Grundlagen der Informatik 13.Interne Darstellung von Daten In der Vorlesung wurde bereits darauf hingewiesen, dass ein Rechner intern lediglich die Zustände 0 (kein Signal liegt
MehrInhaltsangabe 3.1 Zahlensysteme und Darstellung natürlicher Zahlen Darstellung ganzer Zahlen
3 Zahlendarstellung - Zahlensysteme - b-adische Darstellung natürlicher Zahlen - Komplementbildung - Darstellung ganzer und reeller Zahlen Inhaltsangabe 3.1 Zahlensysteme und Darstellung natürlicher Zahlen......
MehrGrundlagen der technischen Informatik
Prof. Dr. Dieter Kranzlmüller Dr. Nils gentschen Felde Dr. Karl Fürlinger Stephan Reiter Christian Straube Grundlagen der technischen Informatik Workshop im Rahmen des Informatik-Probestudiums 2012 1 Überblick/Agenda
MehrAssembler - Adressierungsarten
Assembler - Adressierungsarten Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Adressierungsarten 1/31 2008-04-01
MehrOrganisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download
Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches
MehrEinführung in die Systemprogrammierung
Einführung in die Systemprogrammierung Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 9. Juli 2015 Der MIPS-Prozessor MIPS R2000, von iamretro.gr Kurze Geschichte der MIPS-Architektur
MehrGI Vektoren
Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung
MehrSteuerwerk einer CPU. Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck
Steuerwerk einer CPU Einführung in die Technische Informatik Falko Dressler, Stefan Podlipnig Universität Innsbruck Übersicht Implementierung des Datenpfads Direkte Implementierung Mikroprogrammierung
MehrSchreiben von Pages. Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen).
Schreiben von Pages Schreiben einer Page in den Swap Space ist sehr teuer (kostet millionen von CPU Zyklen). Write Through Strategie (siehe Abschnitt über Caching) ist hier somit nicht sinnvoll. Eine sinnvolle
Mehr######################### Zeichenkette auswerten ###################################
Informatik 3 Übung 06 Georg Kuschk 6.3) MIPS #Aufgabe 6.3) #Georg Kuschk #ACHTUNG : Da laut Forum davon ausgegangen werden soll, dass der Eingabewert, # falls er denn kleiner gleich 10 Stellen besitzt,
MehrFundamentale Ideen der Informatik PH Weingarten Sommersemester 2014 Paul Libbrecht CC-BY
Fundamentale Ideen der Informatik PH Weingarten Sommersemester 2014 Paul Libbrecht CC-BY Vorlesung 6: Repräsentationen Themenkarte Verschlüsselung Netzwerk Versionierung Programmverlauf Java Instruktionen
MehrInformatik I: Einführung in die Programmierung 3. Werte, Typen, Variablen und Ausdrücke
Informatik I: Einführung in die Programmierung 3. Werte,, n und Albert-Ludwigs-Universität Freiburg Peter Thiemann 30. Oktober 2018 1 30. Oktober 2018 P. Thiemann Info I 3 / 39 Bits Der Computer repräsentiert
MehrMikroprozessortechnik Grundlagen 1
Grundlagen - Grundbegriffe, Aufbau, Rechnerarchitekturen, Bus, Speicher - Maschinencode, Zahlendarstellung, Datentypen - ATMELmega28 Progammierung in C - Vergleich C und C++ - Anatomie eines µc-programmes
MehrGrundlagen der Informatik III Wintersemester 2010/ Vorlesung Dr.-Ing. Wolfgang Heenes
Grundlagen der Informatik III Wintersemester 2010/2011 4. Vorlesung Dr.-Ing. Wolfgang Heenes int main() { printf("hello, world!"); return 0; } msg: main:.data.asciiz "Hello, world!".text.globl main la
Mehr3.1 Architektur des von-neumann-rechners. 3. Grundlagen der Rechnerarchitektur
3. Grundlagen der Rechnerarchitektur 3.1 Architektur des von-neumann-rechners 3.1 Architektur des von - Neumann - Rechners 3.2 Maschinentypen: Einadressmaschine, Zweiadressmaschine 3.3 Befehlsformate und
MehrHello World! Eine Einführung in das Programmieren Variablen
Hello World! Eine Einführung in das Programmieren Variablen Görschwin Fey Institute of Embedded Systems Hamburg University of Technology Slide 2 Wie werden Daten in Programmen gespeichert und manipuliert?
MehrFachbereich Medienproduktion
Fachbereich Medienproduktion Herzlich willkommen zur Vorlesung im Studienfach: Grundlagen der Informatik Themenübersicht Rechnertechnik und IT Sicherheit Grundlagen der Rechnertechnik Prozessorarchitekturen
MehrRO-Tutorien 15 und 16
Tutorien zur Vorlesung Rechnerorganisation Tutorienwoche 5 am 25.05.2011 1 Christian A. Mandery: KIT Universität des Landes Baden-Württemberg und nationales Grossforschungszentrum in der Helmholtz-Gemeinschaft
MehrAbschnitt 2: Daten und Algorithmen
Abschnitt 2: Daten und Algorithmen 2. Daten und Algorithmen 2.1 Zeichenreihen 2.2 Datendarstellung durch Zeichenreihen 2.3 Syntaxdefinitionen 2.4 Algorithmen 2 Daten und Algorithmen Einf. Progr. (WS 08/09)
MehrEinführung in die Programmiertechnik
Einführung in die Programmiertechnik Darstellung von Text Plain Text Abstraktion: Text wird durch eine Folge von Symbolen (Buchstaben, Zahlen, Interpunktion) dargestellt Verzicht auf Informationen über
Mehr