Einführung in die Systemprogrammierung
|
|
- Johann Kneller
- vor 7 Jahren
- Abrufe
Transkript
1 Einführung in die Systemprogrammierung Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 17. April 2013
2 Veranstaltungsübersicht Kontakt: Prof. Dr. Christoph Reichenbach Homepage: creichen/2013-ss/b-sysp/index.de.html OLAT: Paßwort ist mips Veranstaltung besteht aus: Vorlesung (Di) Übungen (Mo, Fr) Klausur am 23.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: ab 2. Übung
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 Grundlagenverständnis der Quellen von Ineffizienzen bei der Programmausführung Verständnis der Systemabläufe bei Ausführung eines Programmes Grundlagen der C-Programmierung Grundlagen moderner Laufzeitsysteme Fähigkeit zur Fehlersuche und -Behebung in Systemprogrammen
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 Java, Python, Haskell, Scala, SML, PHP, C#, awk, Scheme, ADA, OCaml,... Integrierte Schaltkreise
9 Geplante Struktur Grundlagen der Rechnerarchitektur Assembler-Programmierung Performanz Grundlagen der Programmierung in C Grundlagen der Betriebssysteme Grundlagen moderner Laufzeitsysteme
10 Grundkonzepte der Rechnerarchitektur
11 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.
12 Funktionale Komponenten des Nexus 7-Mainboards SDRAM-Speicher Prozessor GPU GPU-Recheneinheit GPU-Grafikausgabe WLan-Adapter WLan-Sender WLan-Empfänger NFC-Chip NFC-Sender NFC-Empfänger GPS-Empfänger Gyroskop Beschleunigungssensor
13 Grundkonzepte der Rechnerarchitektur Speicher SDRAM-Speicher Eingabegeräte WLan-Empfänger NFC-Empfänger GPS-Empfänger Gyroskop Beschleunigungssensor Prozessorsystem Prozessor GPU-Recheneinheit Ausgabegeräte GPU-Grafikausgabe WLan-Sender NFC-Sender
14 Grundkonzepte der Rechnerarchitektur Speicher Eingabegeräte Prozessor- System Ausgabegeräte Rest der Welt
15 Beispiel: Programmierbare Blinkanlage Steuerung für Lampe Speicherzustand: 0: aus 1: an Kodierung eines Programmes: an 1 aus 0 an 1 Speicher Prozessor
16 Programmierbare Blinkanlage Speicher Wert: Adresse: Prozessor Programmzähler = 0
17 Programmierbare Blinkanlage Speicher Wert: Adresse: Prozessor Programmzähler = 1
18 Programmierbare Blinkanlage Speicher Wert: Adresse: Prozessor Programmzähler = 2
19 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
20 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
21 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
22 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.
23 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
24 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
25 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
26 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
27 Ein Programm in der Taschenrechnersprache Wir schreiben (x + 2)x in Assemblersprache: Maschinensprache eingabe $ li $1, add $1, $1, $ mul $1, $1, $ ausgabe $
28 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
29 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
30 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
31 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
32 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
33 Berechnung im Programmierbaren Taschenrechner Addr Maschinencode 0: : : : : Eingabe 5 Prozessor Programmzähler = 20 $0 = 5 $1 = 35 $2 = 0 $3 = 012 Ausgabe 35
34 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
35 Der Speicher Bisher haben wir nur als Programmspeicher genutzt Speicher 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
36 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
37 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.
38 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
39 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
40 Bytereihenfolge = 3E8 Zwei übliche Bytereihenfolgen: 03 E8 (big endian: SPARC, PowerPC, m68k) E8 03 (little endian: x86, Alpha) Die vom Prozessor bevorzugte Bytereihenfolge kann in einem Befehl gelesen bzw. geschrieben werden Die andere Bytereihenfolge braucht mehrere Befehle
41 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)
42 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
43 Daten-Repräsentation: Zeichen ASCII: American Standard Code for Information Interchange Zahlen : 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
44 Daten-Repräsentation: Sonderzeichen Umlaute, Sonderzeichen etc. oft in gepackt codepages definieren unterschiedliche Bedeutungen. Zeichenketten (strings): Bytefolgen, pro Byte ein Zeichen Unicode: mehr als 110,000 Zeichen UTF-32: 32 Bit pro Zeichen. UTF-16: 16 Bit für häufige Zeichen, andere 32 Bit. UTF-8: wie ASCII, in diesem Fall nur ein Byte. Sonst mehrere Bytes möglich.
45 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
46 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
47 Speicherarchitektur Speicher Firmware / BIOS Allzweckspeicher Gerätespeicher Eingabegeräte Prozessor- System Ausgabegeräte
48 Rechnerarchitektur: Speicher Firmware / BIOS Allzweckspeicher Grafikspeicher Northbridge Eingabegeräte Prozessor- System Ausgabegeräte
49 Übliche Speicherarten Kürzel Verwendung Beispiel RAM Schreiben/Lesen Arbeitsspeicher ROM Nur Lesen CD-ROM, DVD EEPROM Lesen, selten schreiben Firmware, BIOS Heutige RAM-Technologie (SDRAM) verliert ihren Zustand ohne stetige Stromzufuhr. Heutige ROM/EEPROM-Technologie hält den Zustand. RAM = Random Access Memory ROM = Read Only Memory EEPROM = Electronically Erasable Programmable Read Only Memory
50 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
51 Bootvorgang Beim Einschalten des Rechners ist das RAM leer Programmzähler zeigt auf festverdrahtete Adresse in BIOS/Firmware BIOS/Firmware entscheidet, von wo der Bootlader geladen werden soll: Festplatte USB Netzwerk BIOS/Firmware kopiert Bootlader in Arbeitsspeicher BIOS/Firmware springt in Anfang des Bootladers Bootlader läd Betriebssystem oder weiteren Bootlader (z.b. auf IA32)
52 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. April 2014 Veranstaltungsübersicht Kontakt: Prof. Dr. Christoph Reichenbach (reichenbach@cs.uni-frankfurt.de)
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)
Arithmetik, 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
Grundlagen 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
Grundlagen 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
Assembler 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.
Motivation 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
Aufbau 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
Kap.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
ERA-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
Datenpfad 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:
Fachbereich Medienproduktion
Fachbereich Medienproduktion Herzlich willkommen zur Vorlesung im Studienfach: Grundlagen der Informatik Themenübersicht Rechnertechnik und IT Sicherheit Grundlagen der Rechnertechnik Prozessorarchitekturen
Grundlagen 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
Einfü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:
RO-Tutorien 3 / 6 / 12
RO-Tutorien 3 / 6 / 12 Tutorien zur Vorlesung Rechnerorganisation Christian A. Mandery WOCHE 10 AM 01./02.07.2013 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft
Microcomputertechnik
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
ARM-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
Mikrocomputertechnik
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
Datenpfad 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:
Mikrocontroller. 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
Assembler 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
Ram/Rom/EPRom WIRTSCHAFTSINGENIEURSWESEN. Ausbildungsschwerpunkte: BETRIEBSMANAGEMENT LOGISTIK. Xaver Schweitzer. Jahr: 2011/12
Name: Klasse: Xaver Schweitzer 1BHWI Jahr: 2011/12 Ram/Rom/EPRom Abb. 1 Abb. 2 Abb. 3 Ram Rom EPRom 22.09.2011 1 von 10 Inhaltsverzeichnis INHALTSVERZEICHNIS... 2 EINLEITUNG... 3 RAM... 4 SRAM - Static
Betriebssysteme Vorstellung
Am Anfang war die Betriebssysteme Vorstellung CPU Ringvorlesung SE/W WS 08/09 1 2 Monitor CPU Komponenten eines einfachen PCs Bus Holt Instruktion aus Speicher und führt ihn aus Befehlssatz Einfache Operationen
Mikroprozessortechnik Grundlagen 1
Grundlagen - Grundbegriffe, Aufbau, Rechnerarchitekturen, Bus, Speicher - Maschinencode, Zahlendarstellung, Datentypen - ATMELmega28 Progammierung in C - Vergleich C und C++ - Anatomie eines µc-programmes
Datenpfad 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:
Mikroprozessoren 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)
Einführung in die Systemprogrammierung
Einführung in die Systemprogrammierung Caches in der Praxis Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 17. Juli 2015 Cache-Architektur Mehrere Cache-Stufen, z.b.: Speicherplatz
Rechnerorganisation 5. Vorlesung
Rechnerorganisation 5. Vorlesung Mathematische Grundlagen (1) Boolesche Algebren: BMA, BAA (2,3) Kombinatorische Schaltungen (4,5) Automaten (6,7) Sequentielle Schaltungen (8) Programmierbare Strukturen
Datenpfad 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:
Einfü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:
Prinzipieller 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
Aufbau 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)
Grundlagen 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
N 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)
Wissenschaftliches Rechnen I
Wissenschaftliches Rechnen I Vorlesung im WS 06/07 von Prof. Dr. Nicolas Gauger Humboldt Universität zu Berlin Institut für Mathematik Zimmer 2.403 Email: gauger@mathematik.hu-berlin.de Tel.: 030 2093-5833
2. 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
Elektrizitätslehre und Elektronik. Halbleiterspeicher
1/5 Halbleiterspeicher Ein Halbleiterspeicher ist ein Datenspeicher, der aus einem Halbleiter besteht, in dem mittels der Halbleitertechnologie integrierte Schaltkreise realisiert werden. Die Daten werden
Von 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
Ü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
Programmiersprachen 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
Klausuraufgaben: Hardware (1.) Notieren Sie die Namen der Schnittstellen!
Klausuraufgaben: Hardware - Seite 1 Klausuraufgaben: Hardware (1.) Notieren Sie die Namen der Schnittstellen! (2.) Beschriften Sie die Namen der Komponenten im PC! 9 Klausuraufgaben: Hardware - Seite 2
Teil 2: Rechnerorganisation
Teil 2: Rechnerorganisation Inhalt: Zahlendarstellungen Rechnerarithmetik schrittweiser Entwurf eines hypothetischen Prozessors mit Daten-, Adreß- und Kontrollpfad Speicherorganisation Mikroprogrammierung
Strings. 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
Wie 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
Grundlagen 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
Selbststudium 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
Vorlesung 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,
Einfü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
Grundlagen 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
Zentraleinheit (CPU) Arbeitsspeicher. Ausgabegeräte
2 Zusammenspiel der Hardware mit der Software ( auf dem PC) 2.1. Hardware Etwas zur Historie: Serienproduktion von Computern begann in den 60er Jahren ab etwa 1966 Einsatz von integrierten Schaltungen,
Organisatorisches (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
Wie ist ein Computer aufgebaut?
Wie ist ein Computer aufgebaut? Auch wenn die meisten Computer unterschiedlich aussehen und die Entwicklung in der Computertechnik mit einer rasanten Geschwindigkeit voranschreitet, jeder Computer besitzt
Ü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
Grundlagen der Informatik
Grundlagen der Informatik Einführung in die Programmiersprache C Teil 2 Ein- und Ausgabe in C-Programmen Prof. Dr.-Ing. Thomas Wiedemann Fachgebiet Informatik / Mathematik Überblick zur Vorlesung Ein-
Rechner- 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
» ASCII = American Standard Code for Information Interchange.» ASCII ist Standard in Windows und Unix (und Unix-Derivaten).» ASCII ist eigentlich ein
1 2 » ASCII = American Standard Code for Information Interchange.» ASCII ist Standard in Windows und Unix (und Unix-Derivaten).» ASCII ist eigentlich ein 7-Bit-Zeichensatz, d. h. das erste Bit jedes Bytes
Grundlegendes zum PC
Grundlegendes zum PC Grundsätzlicher Aufbau eines PC Bild eines PC Beschreibung Eingabegeräte Ausgabegeräte Speicher Sonstige Bild eines PC Beschreibung Sind alle gleich die PC Sind in 3 bereiche eingeteilt:
Einfü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
Der 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$
Grundlagen 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
FAKULTÄ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
Rü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
Zentraleinheit (CPU) Arbeitsspeicher. Ausgabegeräte
2 Zusammenspiel der Hardware mit der Software ( auf dem PC) 2.1. Hardware Etwas zur Historie: Serienproduktion von Computern begann in den 60er Jahren ab etwa 1966 Einsatz von integrierten Schaltungen,
Speicher: RAMs, ROMs PROMS, EPROMs, EEPROMs, Flash EPROM
Speicher: RAMs, ROMs PROMS, EPROMs, EEPROMs, Flash EPROM RAMs (Random Access Memory) - Schreib-Lese-Speicher RAMs sind Speicher mit der Aufgabe, binäre Daten für eine bestimmte Zeit zu speichern. Diese
Wie 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
Systemprogrammierung (37-023)
Systemprogrammierung (37-023) Assemblerprogrammierung Betriebssystemgrundlagen Maschinenmodelle Dozent: Prof. Thomas Stricker Unterrichtssprache: Deutsch Textbuch: R. Paul: Sparc Architecture, Assembly
Grundlagen der Informatik 0
Technische Universität Darmstadt 01.07.2013 Grundlagen der Informatik 0 Vorlesung 0 Java ist eine Programmiersprache Ilkay Baytekin Douglas Crockford http://media.smashingmagazine.com/wp-content/uploads/2012/04/doug-crockford-image.jpg
Organisatorisches. 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
Name: ES2 Klausur Thema: ARM Name: Punkte: Note:
Name: Punkte: Note: Hinweise für das Lösen der Aufgaben: Zeit: 75 min. Name nicht vergessen! Geben Sie alle Blätter ab. Die Reihenfolge der Aufgaben ist unabhängig vom Schwierigkeitsgrad. Erlaubte Hilfsmittel
Schreiben 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
Hardware & Kernel-Module
Hardware & Kernel-Module Linux-Kurs der Unix-AG Zinching Dang 09. Juli 2013 Hardwarekomponenten Mainboard CPU RAM Grafikkarte Festplatte Optische und Wechsel-Datenträger Peripherie Zinching Dang Hardware
Rechnerstrukturen 1: Der Sehr Einfache Computer
Inhaltsverzeichnis 1: Der Sehr Einfache Computer 1 Komponenten.................................... 1 Arbeitsweise..................................... 1 Instruktionen....................................
Institut für Computational Science Prof. Dr. H. Hinterberger. Praxismodul 1. Einführung in die Programmierung Erste Programme
Institut für Computational Science Prof. Dr. H. Hinterberger Praxismodul 1 Einführung in die Programmierung Erste Programme Einführung in die Programmierung 2 Institut für Computational Science, ETH Zürich,
Rechnerstrukturen. 5. Speicher. Inhalt. Vorlesung Rechnerstrukturen Wintersemester 2002/03. (c) Peter Sturm, Universität Trier 1.
Rechnerstrukturen 5. Speicher 5.1 Motivation Speichertypen RAM / ROM Dynamisches RAM Inhalt Cache-Speicher Voll Assoziativ n-wege Assoziativ Direct Mapping 5.2 (c) Peter Sturm, Universität Trier 1 Der
Rechnerstrukturen Winter EINFÜHRUNG. (c) Peter Sturm, University of Trier 1
1. EINFÜHRUNG (c) Peter Sturm, University of Trier 1 Teilnehmer Vorlesung für Bachelor- Informatik Vorlesungszeiten Montags, 12.30 14.00 Uhr, Hörsaal HS13 Übungen und Übungsblätter Wöchentlich Blog Asysob
Computergrundlagen Programmiersprachen, Interpreter, Compiler, Linker
Computergrundlagen Programmiersprachen, Interpreter, Compiler, Linker Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2010/11 Was sind Programme? In dieser Vorlesung: Python,
Informatik 12 Kapitel 3 - Funktionsweise eines Rechners
Fachschaft Informatik Informatik 12 Kapitel 3 - Funktionsweise eines Rechners Michael Steinhuber König-Karlmann-Gymnasium Altötting 9. Februar 2017 Folie 1/36 Inhaltsverzeichnis I 1 Komponenten eines PCs
Datenspeicher oder Speichermedien. Lisa C.
Datenspeicher oder Speichermedien Lisa C. Datenträger und Massenspeichermedien Begriffserklärung : Speichermedien sind Gegenstände, die als Datenspeicher dienen: für Musik, Bilder, Sprache, Schrift, Film
Computergrundlagen Programmiersprachen, Interpreter, Compiler, Linker
Computergrundlagen Programmiersprachen, Interpreter, Compiler, Linker Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2010/11 Was sind Programme? In dieser Vorlesung: Python,
######################### 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,
Klausur ü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)
In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher
Speicherhierarchie In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher Register Speicherzellen, direkt mit der Recheneinheit verbunden Cache-Speicher Puffer-Speicher
Technische Informatik - Eine Einführung
Martin-Luther-Universität Halle-Wittenberg Fachbereich Mathematik und Informatik Lehrstuhl für Technische Informatik Prof. P. Molitor Technische Informatik - Eine Einführung Rechnerarchitektur Aufgabe
Einführung in die Systemprogrammierung
Einführung in die Systemprogrammierung Dynamische Programmbibliotheken Prof. Dr. Christoph Reichenbach Fachbereich 12 / Institut für Informatik 28. Mai 2015 Dynamische Programmbibliotheken Idee: Programm
Teil 1: Prozessorstrukturen
Teil 1: Prozessorstrukturen Inhalt: Mikroprogrammierung Assemblerprogrammierung Motorola 6809: ein einfacher 8-Bit Mikroprozessor Mikrocontroller Koprozessoren CISC- und RISC-Prozessoren Intel Pentium
Grundlagen 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
Einfü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
Rechnernetze 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
Die Programmiersprache C Eine Einführung
Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert
1 Rechnerstrukturen 1: Der Sehr Einfache Computer
David Neugebauer, Informationsverarbeitung - Universität zu Köln, Seminar BIT I Inhaltsverzeichnis 1 Rechnerstrukturen 1: Der Sehr Einfache Computer 1 1.1 Komponenten................................. 1
8. SPS Komponenten: Beschreibung der Hardware-Komponenten einer SPS samt deren Eigenschaften
8. SPS Komponenten: Beschreibung der Hardware-Komponenten einer SPS samt deren Eigenschaften Automatisierungsgerät: Zentralbaugruppe mit Prozessor Kommunikationsbaugruppe (Feldbusanschaltung) Bussysteme
1 Mikrocontroller. 1.1 Speicherarchitekturen bei uc. 1.2 Externer Speicher (Programm/Daten) Mikroprozessortechnik MFB. Speicher, Programmübertragung
1 Mikrocontroller... 1 1.1 Speicherarchitekturen bei uc... 1 1.2 Externer Speicher (Programm/Daten)... 1 2 Speichertechnologien... 2 2.1 RAM... 2 2.2 ROM... 2 2.3 PROM... 2 2.4 EEPROM... 2 2.5 Flash...
"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
Einfü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
RAM - Random Access Memory
RAM - Random Access Memory Random Access Memory (dt. Speicher mit wahlfreiem Zugriff), abgekürzt RAM, ist ein Speicher, der besonders bei Computern als Arbeitsspeicher Verwendung findet. RAMs werden als