Inhaltsverzeichnis

1 Einleitung1.1 Aufgabenstellung und Inhalt dieser Arbeit1.1.1 Was diese Arbeit umfaßt1.1.2 Was diese Arbeit nicht umfaßt1.2 Aufbau und Gliederung1.2.1 Gliederung1.2.2 Darstellungskonventionen2 Visualisierung und Simulation mit Java2.1 Bestehende Ansätze2.1.1 Lehrbücher: Gedruckte Bücher2.1.2 Intel P6-Demo2.1.3 WinASP2.1.4 PowerPC-Simulator2.2 Didaktische Notwendigkeiten2.2.1 Animationen statt Bilder2.2.2 Begleitende Dokumentation2.3 Simulation mit Java2.3.1 Praxiseignung von Java2.3.2 Multimedia-Dokumentation2.3.3 Zusammenfassung: Vorzüge des Rechner-Baukastens3 Lernmaterialien zur technischen Informatik3.1 Einleitung3.1.1 Was man mit diesen Materialien lernen kann3.1.2 An wen sich diese Materialien richten3.2 Grundlagen der Rechnerarchitektur3.2.1 Komponenten eines einfachen Rechners3.2.1.1 Register3.2.1.1.1 Register (2)3.2.1.2 random access memory (RAM)3.2.1.2.1 random access memory (RAM) (2)3.2.1.3 Bus3.2.1.4 Arithmetisch-logische Einheit (ALU)3.2.1.5 Steuerwerk3.2.2 Computerprinzipien3.2.2.1.1 Die Maschinensprache3.2.2.2 Laden-Verarbeiten-Speichern3.2.2.2.1 Laden3.2.2.2.2 Verarbeiten ("Rechnen")3.2.2.2.3 Speichern3.2.2.3 Fetch/Decode/Execute3.3 Der Von-Neumann-Rechner3.3.1 Von-Neumann-Prinzipien3.3.1.1 Das Steuerwerk3.3.1.2 Das Rechenwerk3.3.1.3 Der Speicher3.3.1.4 Eingabe-/Ausgabewerk3.3.2 Simulation des Von-Neumann-Rechners3.3.2.1 Es geht los - der Befehlszyklus3.3.2.1.1 Es geht los - der Befehlszyklus (Forts.)3.3.2.2 Laden und Speichern3.3.2.2.1 Laden und Speichern (Forts.)3.3.2.2.2 Ersetzen von aufwendigen Befehlen durch einfache mittels selbstmodifizierendem Code3.3.2.3 Rechnen mit dem VNR3.3.2.3.1 Was das Programm in diesem Applet tut:3.3.2.4 Es wird abwechslungsreich: Die Sprungbefehle3.3.2.5 Ohne Einschränkungen: Der Von-Neumann-Rechner3.3.2.6 Opcodes des Von-Neumann-Rechners3.3.3 Nachbetrachtung: Steuerwerk3.4 Erweiterte Konzepte3.4.1 Adressierungsarten3.4.2 Prinzipien der Ein-/Ausgabe3.5 Die Speicherhierarchie3.5.1 Einfacher Zwischenspeicher (Cache) für Lesezugriffe3.5.2 Prinzipien des Zwischenspeicher-Aufbaus3.5.3 Ein Cache mit variablen Parametern - was bringt wieviel?3.6 Konzepte zur Steigerung der Verarbeitungsleistung3.6.1 Die Befehlspipeline3.7 Literaturliste3.8 Glossar4 Der Rechner-Baukasten4.1 Komponenten des Rechner-Baukastens4.2 Das Package ckelling.baukasten4.3 Die Wahl der Basisklasse des Applets4.4 Erzeugung der Komponenten4.4.1 Der Baukasten-Editor4.4.2 Koordinaten der Komponenten4.4.2.1 getCoordinates()4.4.2.2 setCoordinates()4.4.3 Besonderheiten der Komponenten4.4.4 Die zwei Arten von Komponenten4.4.5 Entfernen von Komponenten4.5 Wertzuweisung und Berechnung4.5.1 Berechnungen mit ALU und Addierer4.5.1.1 Lesen aus einem RAM:4.5.1.2 Schreiben in ein RAM:4.5.1.3 Durchführen einer Berechnung mittels einer ALU:4.5.1.4 Simulation eines Cache mit TagMemory4.6 Visualisierung4.6.1 Varianten von activate()4.6.2 deactivate()4.6.3 Varianten von update()4.6.4 Neuzeichnen der Komponenten4.6.4.1 paint()4.6.4.2 paintActivated()4.6.5 Vergrößern/Verkleinern und Verschieben von Komponenten4.6.5.1 reshape()4.7 Zusätzliche Funktionalität4.7.1 Einstellen der Überschrift4.7.2 Hilfetexte am Mauszeiger4.8 Der Simulationsansatz4.8.1 Der Ansatz SI/SS/DS4.8.2 Der Ansatz SI/DS4.8.2.1 lock() und unlock()4.8.2.2 Ein längeres Beispiel: Der Von-Neumann-Rechner4.9 Pfade und benötigte Dateien4.10 Ausführen eines Applets4.10.1 Integration in HTML-Seiten4.10.2 Unterstützte Parameter4.10.3 Beispiel-HTML für den Von-Neumann-Rechner4.11 Demonstrations-Applets4.12 Unterstützungsklassen zur freien Verwendung4.12.1 AboutRechnerDialog4.12.1.1.1 Verwendungszweck4.12.1.1.2 Initialisierung4.12.1.1.3 Gebrauch4.12.1.1.4 Sonstiges4.12.2 ConsoleWindow4.12.2.1.1 Verwendungszweck4.12.2.1.2 Initialisierung4.12.2.1.3 Gebrauch4.12.2.1.4 Sonstiges4.12.3 DemonstrationStep4.12.3.1.1 Verwendungszweck4.12.3.1.2 Initialisierung4.12.3.1.3 Gebrauch4.12.3.1.4 Sonstiges4.12.4 Error_Message4.12.4.1.1 Verwendungszweck4.12.4.1.2 Initialisierung4.12.4.1.3 Gebrauch4.12.4.1.4 Sonstiges4.12.5 RKWrapper4.12.5.1.1 Verwendungszweck4.12.5.1.2 Initialisierung4.12.5.1.3 Gebrauch4.12.5.1.4 Sonstiges4.12.6 RTFTextArea4.12.6.1.1 Verwendungszweck4.12.6.1.2 Initialisierung4.12.6.1.3 Gebrauch4.12.6.1.4 Sonstiges4.12.7 SimControl4.12.7.1.1 Verwendungszweck4.12.7.1.2 Initialisierung4.12.7.1.3 Gebrauch4.12.7.1.4 Sonstiges4.12.8 LoadProgress4.12.8.1.1 Verwendungszweck4.12.8.1.2 Initialisierung4.12.8.1.3 Gebrauch4.12.8.1.4 Sonstiges4.12.9 TimerThread4.12.9.1.1 Verwendungszweck4.12.9.1.2 Initialisierung4.12.9.1.3 Gebrauch4.12.9.1.4 Sonstiges5 Zusammenfassung und Ausblick5.1 Zusammenfassung5.1.1 Eignung von Java für die Visualisierung von Zeitabläufen5.1.2 Die Lernmaterialien zur technischen Informatik5.1.3 Der Rechner-Baukasten5.1.4 Die Simulationsansätze5.2 Ausblick5.2.1 Inhaltliche Fortentwicklung5.2.2 Technische Fortentwicklung5.2.3 Fortentwicklung durch Leser und Programmierer5.3 Bekannte Einschränkungen und Fehler6 Literaturliste6.1.1.1.1 [AP93]6.1.1.1.2 [Duden88]6.1.1.1.3 [Encarta97]6.1.1.1.4 [HennPatt94]6.1.1.1.5 [HennPatt90]6.1.1.1.6 [HTML 3.2]6.1.1.1.7 [HTML1]6.1.1.1.8 [IntelP6]6.1.1.1.9 [JavaTutorial]6.1.1.1.10 [JavaWhitepaper]6.1.1.1.11 [JDK 1.0.2]6.1.1.1.12 [JDK 1.1]6.1.1.1.13 [Lagemann87]6.1.1.1.14 [Lexikon91]6.1.1.1.15 [Motorola86]6.1.1.1.16 [Page91]6.1.1.1.17 [SiSy93]6.1.1.1.18 [VCafe]6.1.1.1.19 [VCafeTutorial]6.1.1.1.20 [WinASP]7 Glossar8 Erklärung9 Danksagung