Unterlagen
Vorlesungsunterlagen, eine Literaturliste und diverse Links - thematisch sortiert. Die Liste wird im Verlauf der Veranstaltung ergänzt.Vorlesungsunterlagen | Literatur | Links | Software | VM
Vorlesungsunterlagen
Die Folien zur Vorlesung werden während des Semesters aktualisiert, bei Bedarf kann aber auch auf die Folien des WS 2014/2015 zurückgegriffen werden. Ab Semesterbeginn werden auf dieser Webseite die einzelnen Themen sukzessive zum Download bereitgestellt.- Kapitel 17: VLSI (optional) (pdf)
- Kapitel 16: Speicherhierarchie (pdf)
- Kapitel 15: Parallelrechner (pdf)
- Kapitel 14: Pipelining (pdf)
- Kapitel 13: Assembler (pdf)
- Kapitel 12: Rechnerarchitektur (pdf)
- Kapitel 11: RT-Ebene (pdf)
- Kapitel 10: Schaltwerke (pdf)
- Kapitel 9: Schaltnetze (pdf)
- Kapitel 8: Schaltfunktionen (pdf)
- Kapitel 7: Codes (pdf)
- Kapitel 6: Logische und bitweise Operationen (pdf)
- Kapitel 5: Zeichen (pdf)
- Kapitel 4: Arithmetik (pdf)
- Kapitel 3: Zahlen (pdf)
- Kapitel 2: Information (pdf)
- Kapitel 1: Digitalrechner (8MB pdf) Einführung, von-Neumann Konzept, Historie.
- Info zur Organisation
Literatur
- Die Vorlesung basiert in weiten Teilen auf dem exzellenten Buch Computer Systems - A Programmer's Perspective von R.E. Bryant und D. O'Hallaron. Die zweite Auflage wurde gerade dieses Jahr noch einmal überarbeitet, aber auch die älteren Versionen behandeln alle relevanten Themen.
- Als zweite Quelle dient das Buch Rechnerarchitektur - Von der digitalen Logik zum Parallelrechner, bzw. Structured Computer Organization von A.S. Tanenbaum und T. Austin. Anm.: die vorherige Auflage heißt noch Computerarchitektur - Strukturen, Konzepte, Grundlagen. Wegen des (vergleichsweise) moderaten Preises ist das Buch eine Kaufempfehlung.
- Siehe das KVV / STiNE für die gesamte Liste der empfohlenen Bücher. Oder hier klicken, um direkt zur Katalogabfrage dieser Bücher im virtuellen Bücherregal der Informatik Bibliothek (WS 2014/2015) zu gelangen.
- Für die Assemblerprogrammierung ist das Buch Art of Assembly Language Programming von Randy Hyde sehr empfehlenswert und gratis zum Download verfügbar. Es gibt separate Versionen, sowohl für Linux, als auch für Windows.
Externe Links
- CS.APP Webseite und Materialien zum Buch Computer Systems - A Programmer's Perspective.
- ITRS Homepage (International Technolgoy Roadmap for Semiconductors).
- First Draft of a Report on the EDVAC (PDF). Der Originalreport zum von-Neumann Rechner.
- The Complexity of Boolean Functions aka "The Blue Book" by Ingo Wegener (PDF, Postscript).
- Statecharts: A visual formalism for complex systems (David Harel 1984).
- Art of Assembly Language Programming (Randy Hyde).
Instruction Set Architecture Examples
- Java Virtual Machine Specification (Java version 8.1), PDF on Oracle website.
- Intel
64-bit and 32-bit Software Developer Manuals
Volume 1: basic architecture
Volume 2: instruction set reference A-Z (complete list of machine instructions)
Volume 3: system programming reference
- MIPS 32-bit Instruction Set Reference (Developer resources Imagination Technologies)
- ...
Software
- HADES - HAmburg DEsign System.
- Hades Simulator Software (Jar archive, java -jar hades.jar)
- Hades Schaltungsbeispiele für RS (tar.gz Archiv), Zugriff nur von informatik.uni-hamburg.de oder via VPN.
- KV-Diagramm Simulation.
- Interaktives Skript Technische Informatik 1 (Matlab wünschenswert, alternativ Matlab-Runtime zum Download verfügbar)
- Jasmin (TU München) Graphische Umgebung mit Assembler und eingebautem Simulator für x86 Assemblerprogrammierung.
- Cygwin Homepage
Assembler - Kapitel 15
- Auf den meisten Linux-Systemen sind die benötigten Werkzeuge zur Assemblerprogrammierung bereits vorinstalliert. Ansonsten bitte die Packages binutils sowie den C-Compiler gcc und Debugger gdb nachinstallieren. Es gibt diverse graphische Frontends für den gdb, gegebenfalls einfach ausprobieren, welches Werkzeug einem am besten gefällt.
- Auf Windows-Systemem empfiehlt sich der Download und die Installation der Cygwin-Tools, mit denen man ein (fast) komplettes Unix-System bekommt. Im ersten Schritt das Setup-Tool herunterladen und ausführen, dann im Menü die benötigten Pakete auswählen und nachinstallieren. Achtung: Das Setup als Administrator aufrufen, sonst funktioniert hinterher einiges nicht richtig. Hier geht es zur Cygwin Homepage.
- Achtung:
Da aktuelle Rechner in der Regel mit 64-bit Systemen laufen, in den Beispielen und Übungen aber 32-bit Assembler benutzt wird, ist dabei besonders zu beachten, dass zusätzlich auch die 32-bit Versionen der Bibliotheken installiert und die Werkzeuge mit den entsprechenden Parametern (z.B.: -m32) benutzt werden müssen. - Eine weitere (komfortable) Möglichkeit zur Nutzung der gcc Werkzeuge ist eine Virtuelle Maschine. Dazu habe ich ein aktuelles, kleines Linux (Ubuntu 14.10 mit LXDE Fenstermanager) in einer 32-bit Version aufgesetzt. In der VM sind alle HADES-Beispiele und alle notwendigen Werkzeuge zur Assembler Programmierung installiert...
Virtuelle Maschine
- Die folgenden drei Dateien beinhalten die vorbereitete virtuelle Maschine;
der Download ist auf die Informatik-Domäne beschränkt.
- Lubuntu-14.10-32.mf Manifest
- Lubuntu-14.10-32.ovf VM Definition (Open Virtualization Format), 6,2KiB
- Lubuntu-14.10-32-disk1.vmdk Virtuelle Festplatte, 2,2GiB
- Diese VM kann mit VMware (Player) oder VirtualBox benutzt werden. Dazu ist zuerst die Virtualisierungsumgebung zu installieren, anschließend müssen alle drei Dateien heruntergeladen werden. Nach dem Start von VirtualBox bzw. vmplayer kann die virtuelle Maschine importiert werden...
- Es empfiehlt sich außerdem die Linux-Gasterweiterungen in der
virtuellen Maschine zu installieren, um höhere Auflösungen
zu erhalten, Mauszeiger und Eingabefokus automatisch zu wechseln etc.
Dazu muss man
- die VM um ein CD-Laufwerk erweitern (aus Kompatibilitätsgründen musste es aus der virtuellen Maschine rausgenommen werden)
- das jeweilige ISO-Image (/usr/lib/vmware/isoimages/...iso bzw. /usr/share/virtualbox/VBoxGuestAdditions.iso) mit dem Laufwerk verbinden
- dann kann man (in der virtuellen Maschine) die Erweiterungen installieren