19540 V Rechnerarchitektur (3,n) |
|
Zeit
Di, Fr 8:30-10:00
Ort
Takustraße 9, SR049 (ab 18.4.)
Sprechstunde
Do, 10-12
Inhalt
Wir werden das Buch von
Hennessy/Patterson
als Grundlage für die Vorlesung benutzen.
Das Buch ist bei den Vorlesungen beider Autoren
in Stanford und Berkeley entstanden.
Wesentlicher Beitrag von Hennessy und Patterson
in diesem Werk ist,
die Rechnerarchitektur auf quantitativ
meßbare Prinzipien zurückzuführen.
Die zu behandelnden Themen sind:
- Brenchmarking: Admahls Gesetz
- Pipelining: DLX
- Konflikte: Forwarding, Kontrollkonflikte
- Sprungvorhersage
- Superskalares Design und VLIW
- Caching
- Input/Output: Festplatten, RAID
- Networking: Cache
Voraussetzungen
Grundlagen der Rechnerstrukturen und Rechnerorganisation sind von Vorteil.
Literatur
-
Hennessy, J.L.;Patterson, D. A.:
Computer Architecture: A Quantitative Approach,
Morgan Kaufman Publ., 2. Auflage, San Mateo, 1995.
Weitere Literatur wird in der Vorlesung
bekannt gegeben.
Übungen
2-stündig, Fr 12:00-13:30, Raum SR 005.
Scheinkriterien
- 60% der erreichbaren Punkte der Übungszettel.
- Abgabe von n-1 der n Übungszettel.
- Vortrag über einen aktuellen Prozessor oder Programmierung einer Simulation als JAVA-Applet (Themen weiter unten).
- Regelmäßiges Erscheinen in der Vorlesung.
Die Übungen, Programmieraufgaben können und sollten in Zweiergruppen angefertigt werden.
Die Vorträge sind in Einzelarbeit anzufertigen und vorzutragen.
Übungsblätter
- Übung 1 (Ausgabe 28. April 2000, Abgabe 5. Mai 2000)
und die besten Lösungen der Aufgabe 5
- Übung 2 (Ausgabe 5. Mai 2000, Abgabe 12. Mai 2000)
und die besten Lösungen der Aufgabe 5
- Übung 3 (Ausgabe 12. Mai 2000, Abgabe 19. Mai 2000)
- Übung 4 (Ausgabe 19. Mai 2000, Abgabe 26. Mai 2000)
- Übung 5 (Ausgabe 26. Mai 2000, Abgabe 2. Juni 2000)
- Übung 6 (Ausgabe 9. Juni 2000, Abgabe 16. Juni 2000), die strukturelle Beschreibung des AMD2901 sowie Musterlösungen von Kilian Lenz und von mir.
Das Tutorial zum AMD2901 befindet sich im Verzeichnis /import/alliance/share/tutorials/amd2901 (nicht über WWW erreichbar!) und auf der Homepage von Alliance (Zu dem Tutorial gibt es auch noch Back Annotations).
- Übung 7 (Ausgabe 16. Juni 2000, Abgabe 23. Juni 2000)
- Übung 8 (Ausgabe 16. Juni 2000, Abgabe 30. Juni 2000)
- Übung 9 (Ausgabe 30. Juni 2000, Abgabe 7. Juli 2000)
- Übung 10 (Ausgabe 7. Juli 2000, Abgabe 14. Juli 2000)
Mögliche Vorträge über aktuelle Prozessoren
- Pentium III (Xeon)
- AMD Athlon
- MIPS R12000
- Digital Alpha 21264
- Motorola PPC750
- Transmeta Crusoe TM5400
- UltraSPARC III
- Sun picoJava I
- Eigene Vorschläge ... ?
Mögliche Themen für eine Simulation
- Cache interaktiv: Es können die Befehle load adresse und store adresse abgesetzt werden (siehe Abbildung 5.8 im Buch).
- RAID interaktiv: Auch hier sollen die Befehle load adresse und store adresse abgesetzt werden können. Man soll dann sehen, was bei den unterschiedlichen RAID-Levels passiert.
- Wie funktioniert virtueller Speicher?
- Floating Point nach IEEE: Es sollen die vier Grundrechenarten veranschaulicht werden (siehe Anhang A im Buch).
- Schnelle Multiplikation und Division für Integer-Rechnung (siehe Anhang A im Buch).
- Spungvorhersage (siehe Kapitel 4 im Buch)
- Simulation eines Minimalen Computers mit den Befehlen load adresse, save adresse, inc, brz adresse und clear. Es soll zu sehen sein, was im Prozessor passiert. Alles natürlich interaktiv.
- Eine Befehlsfolge kann eingegeben werden und Pipelining soll simuliert werden. Man soll sehen, wo welcher Befehl gerade steckt.
- Wie bleiben in einem Multiprozessorsystem die Daten konsistent, wenn man drei CPUs, für jede CPU einen Cache aber nur einen Hauptspeicher hat?
- Um Probleme beim Pipelinig zu vermeiden benutzt man "forewarding". Was ist das?
- Wie funktioniert Ethernet?
- Turing hat noch eine andere als die bekannte "Turing Maschine" entworfen. Wie funktioniert sie?
- Scoreboarding und Tomasulos Algorithmus sind Möglichkeiten den Code durcheinander zu würfeln, ohne etwas am Ergebnis zu ändern. Wie funktionierts?
- Der "translation look-aside buffer" (kurz TLB) eines Alpha Prozessors ist in Abbildung 5.41 zu sehen. Es fehlt nurnoch die Animation.
- Für eine Gruppe, die es sich und anderen beweisen will, gibt es noch die Möglichkeit der Simulation der gesamten Speicherverwaltung des Alpha APX 21064 Prozessors (siehe Abbildung 5.47).
- Eigene Vorschläge ... ?
Implementierte Simulationen
Ausgearbeitete Vorträge
Mailingliste
Es gibt eine Mailingliste (ra@lists.spline.inf.fu-berlin.de) für die Veranstaltung. Nähere Informationen
gibt es beim Mailinglisten-Server.
Weitere Informationen
Applets
Die Informatik der Uni Hamburg hat einige
Applets
und Java Programme ins Netz gestellt, die sich unter
anderem mit Rechnerarchitektur befassen.
Insbesondere möchte ich den 'Baukasten' empfehlen. Dabei handelt es sich um ein Online-Script über eine Rechnerarchitekturvorlesung,
in der es viele Applets gibt, die die trockenen Stoff veranschaulichen
(zum Beispiel Cache).
HADES
Außerdem gibt es ein umfangreiches Java Programm
mit dem Namen HADES zur Simulation von digitalen Schaltungen. Es kann
auch 'komplexe' Hardware, zum Beispiel ein serielles Terminal, simulieren. Leider ist es kein Applet, so dass einiger Aufwand betrieben werden muß, um mit dem Programm zu arbeiten.
Aber: Eine minimale lokale Installation von HADES
gibt es jetzt!
Zum Starten unter Windows mit der Eingabeaufforderung in das Verzeichnis
h:\lehre\SS00\19540-V
wechseln und dort
c:\Programme\JavaSoft\JRE\1.2\bin\java -cp hades.zip hades.gui.Editor
aufrufen (so funktioniert es jedenfalls bei mir). Eine
Einführung in das Programm
gibt es lokal als Postscript-Datei. Weitere
Information, Beispiele usw., gibt es beim Hersteller.
Alliance
Unter Solaris ist das Alliance VLSI CAD System im Verzeichnis /import/alliance installiert. Dies ist eine komplette Entwicklungsumgebung für das Schaltungsdesign.
VHDL
Links zu Seiten über VHDL (Online-Tutorials, VHDL-Tools, usw.) sind auf der VHDL Resource Page zu finden.
Volladdierer
Die Dateien zur Beispielsitzung in Alliance für den Volladdierer in VHDL (Übung am 23. Juni 2000) gibt es jetzt auch online. Ein kurzer Text fasst das Wesentliche noch einmal zusammen.
letzte Änderung am 7. November 2000 (Alexander Gloye)