Mikroprozessorprojekt am Gymnasium Flöha im Schuljahr 2006 - The Making Of history menue Letztmalig dran rumgefummelt: 05.11.07 10:11:00
  • Zusammenwirken bereits bekannter Fakten
  • Selbststudium und Beschreibung realer Prozesse
  • Teamarbeit - sinnvolle Arbeitsteilung - Teilen von Verantwortung und auch dem Ergebnis
  • komplexes Projekt-Management
  • Theoretische Untermauerung ganz praktischer Applikationen
  • es ist schwer, in all dem Wust von Aufgaben auch noch Sinn für ein im Umfang nicht fest geschriebenes Projekt zu finden - es soll anspruchsvoll, auch noch realistisch, optimistisch und aussagekräftig in der Wirkung sein

Das offizielle Logo ...

... und das inoffizielle Logo ;-)

hier auch im CorelDraw 11.0-Format

Projekt Mikroprozessor/PIO-Programmierung 2006
1. Projektidee
2. technische Grundlagen
3. Die Arbeiten am Projekt
4. Die Ergebnispräsentationen
5. Verwandte Projekte


1. Grundidee des Projektes history menue scroll up

Bereits bekannte Hardware-Strukturen wie zum Beispiel Addierer, Vergleicher, logische Funktionen (AND, OR,NOT usw.), Decoder, Multiplexer sowie Registerfunktionen in einem Bauelement komplex zusammen zu fassen und softwaretechnisch zu organisieren - dies entspricht hardwaremäßig einer ALU. Kommt noch eine Befehls- und Ablaufsteuerung hinzu,  so sprechen wir von einer CPU. Wird diese dann via Mechanik oder Elektronik  und/oder Software dargestellt, so nennen wir das Emulator oder ein Simulationssystem. Das wiederum ist ein Modell und damit ein Ausschnitt aus der realen Umwelt. Nicht zuletzt sollte man einen Prozessor mit seinem Befehlssatz ziemlich genau kennen sowie auch schon einmal maschinennah programmiert haben - so etwas nennt man Assembler - und auch sein eigenes Software-Werkzeug sollte man in Daten- und Ablaufstruktur umfassend beherrschen. Prozessoren benötigen für ihre Programme und Daten einen Speicher  mit Leitungstreibern - also wird auch ein Grundverständnis ihrer Funktion vorausgesetzt.
Da kein Prozessor ohne Peripherie-Bausteine (also
PIO, CTC, SIO und DMAC) mit der Umwelt kommunizieren kann, sollte man auch hier schon einmal Witterung im fachlichen Sinne aufgenommen haben. Richtig heftig werden dann allerdings eigenständig programmierbare Schnittstellen mit der Umwelt (so genannte intelligente Interfaces) - im einfachsten Falle sind das A/D- und D/A-Wandler. Und auch diese sind im einfachsten Falle nicht programmierbar, enthalten dafür jedoch eine äußerst komplexe Logik.
Übrigens: wenn wir schon mal bei
Signalwandlungen sind, haben wir eigentlich auch schon die Codes erreicht - und: nimmt man's ganz streng, dann auch schon die Chiffres ;-)

Und so kommt's, dass wir den Oberhammer dieses Projektes definieren können (oder besser: wir müssen dies tun): wer an einen Mikroprozessor herangeht, hat die Grundwelt der Informatik bereits erfasst.
Selbstverständlich muss selbiger am Ende auch in einer definierten Sprache und mit seinem Befehlssatz programmierbar sein.
wie ein Projekt theoretisch zu managen ist, bzw., wie wir das handhaben (oder handhaben wollen), steht hier ;-)
in diesem Projekt laufen aus Sicht der Informatik zusammen:
  • Programmierungstechnik - hier sollten Datentypen, Grundstrukturen und Algorithmen in der Theorie gefestigt sein
  • Programmierungskenntnisse in Assembler (der Rechnerbefehlssatz ist Basiswissen)
  • Simulationstechnik
  • man muss echt parallel arbeiten (also mal nicht nur der Prozessor) lernen, wie die einzelnen Komponenten funktionieren und dies auch noch in ein Programm gießen
Lerne, um die Ecke zu denken, denn: das Leben ist anders (und meist voller Überraschungen)
  • Zahlensysteme
  • relatives Denken (und damit auch rechnen)
  • mathematisches Korrigieren und Auswerten von Überläufen


2. Technische Grundlagen history menue scroll up

Mikroprozessoren sind die Zusammenfassung von lang bekannten arithmetischen Grundfunktionen sowie einer entsprechenden Datensteuerung auf einem Chip. Die ersten Prozessoren kamen 1969 auf den Markt und waren nicht so leistungsfähig, wie entsprechend verfügbare Elektronik - aber: sie zeigten sehr schnall, dass der Weg richtig war. Auf Grundlage eines Taktprotokolls war es möglich, Programme mit allen benötigten Grundfunktionen, genau so, wie wie wir sie heut' noch immer benutzen, sehr schnell  im Speicher eines Rechners zusammen zu fassen.

Ideen-Basis - oder: wie macht man so was eigentlich - bzw. - wie kommt man überhaupt erst mal auf so 'ne bescheuerte Idee???

Hardware-Simulationen an der TU-Chemnitz

Der Mikroprozessor aus dem Berufsschulzentrum Aue/Schwarzenberg

 

Der Z80-Simulator in seiner Bedienkonsole

Der Z80-Simulator in seiner Bedienkonsole

  • die Programmierung auf Maschinen-Ebene ist und bleibt ein rotes Tuch für wohl fast alle Informatiker
  • kaum jemand tut sich so etwas freiwillig an (das hat auch schon etwas mit dem Ingenieur-Mangel in Deutschland zu tun)
  • wir tun es trotzdem - und siehe: es geht, man muss es nur müssen ;-)
  • jeder redet über Taktfrequenzen und BUS-Breiten, aber kaum jemand weiß, was das eigentlich ist - und: welche konkreten Auswirkungen dies wo hat
  • wir bieten Lösungen sowie tausend neue Fragen (es gilt der Problemerhaltungssatz der Informatik)
  • wer durch diese Qualen erfolgreich gegangen ist, weiß etwas mehr darüber, wie ein Computer funktioniert


3. Die Arbeit am Projekt history menue scroll up

Was aber ist denn nun die Basis-Elektronik eines Mikroprozessors? Es sind alle logischen sowie auch sequentiellen Schaltungen in eins mit sehr viel Sinn zusammengefasst. Ein Prozessor ist ein extrem komplexes Werk aufgebaut aus eigentlich nur logischen Grundschaltungen. Diese wiederum bestehen ausschließlich aus Transistoren. Und genau so wurde auch bei der Entwicklung des Prozessor-Projektes über ein Jahr lang vorgegangen.

  • alle in der Folge aufgezeigten Techniken, Schaltungen sowie Überlegungen mussten als Schaltungsentwurf aber auch als Delphi-Programm ablauftechnisch und logisch fehlerfrei vorgelegt werden
  • dabei kommt kaum jemand ohne kleine Kompromisse in der Logik aus (z. B. die Startbedingungen eines FlipFlops
  • keiner hat alles vollständig und fehlerfrei (ich auch nicht)
da wären als erstes die logischen Grundschaltungen zu nennen, aus denen sich alles nachfolgende überhaupt erst ergibt

Was zu den logischen Grundschaltungen sonst noch zu sagen wäre:

  • logisches AND

  • logisches OR

  • logisches NOT

  • logisches NAND

  • logisches NOR

  • logische Antivalenz (EXOR)

Logische Grundschaltungen

Logische Grundschaltungen im Web

ohne Multiplexer wäre eine sinnvolle Steuerung von Rechnerarchitekturen nicht möglich

Was zu den Multiplexern sonst noch zu sagen wäre:

  • Abgekürzt mit MUX

  • schalten viele Eingänge adressierbar auf eine Ausgangsleitung

  • das wiederum ist die Basis jeder Telefonverbindung (auch die von Funkstrecken)

  • praktisch gefertigt mit max. 16 Bit Breite

Multiplexer

Multiplexer im Web

Decoder spleißen ein Eingangssignal wieder auf mehrer Ausgangskanäle auf

Was zu den Demultiplexern sonst noch zu sagen wäre:

  • sie werden auch als Decoder bezeichnet

  • DEMUX (Decoder)

  • werden mehr als eine Leitung pro Adresse aufdecodiert, so spricht man von Code-Umsetzern

  • Sieben-Segment-Decoder sind solche Umsetzer

  • sie bilden Spezialfälle der Demultiplexer

 

Demultiplexer oder auch Decoder

Demultiplexer oder auch Decoder im Web

Addier-Logiken sind die Mutter aller Rechenprozesse in Computern

Was zu den Addierern sonst noch zu sagen wäre:

  • einfachste mathematische Funktion, welche auch auf Bit-Ebene möglich ist

  • gilt auch schon in sich für negative Zahlen unter Nutzung des höchsten Bits als Vorzeichen

 

Voll-Addierer

Die Addierlogik im Web

Subtraktionslogiken sind die Ergänzungen vieler Rechenprozesse in Computern

Was zu den Addierern sonst noch zu sagen wäre:

  • sind in realen Prozessoren nicht unbedingt implementiert, da sich die Subtraktion auf eine Addition zurückführen lässt

  • die negativen Zahlen sehen aus wie positive - das kann in der Interpretation sehr leicht zu Verwechslungen führen - wir sprechen von Relativzahlen

  • das entspricht im Konzept etwa einem polaren Koordinatensystem

Voll-Subtrahierer

Die Subtraktionslogik im Web

Parity-Generatoren sind die Mutter aller Prüfverfahren in Computern

Was zu den Parity-Generatoren sonst noch zu sagen wäre:

  • sie stellen die Möglichkeit für intelligente Elektronik dar, auf Bit-Ebene über Echtheit und Unversehrtheit zu entscheiden

  • in der Rechenpraxis werden Fehlererkennung und teilweise auch Reparaturen vorgenommen

  • sie sind die Basis von Datenübertragungsprotokollen

Parity-Generator

Der Parity-Generator im Web

Comparatoren sind die Mutter aller Entscheidungen in Computern

Was zu den Parity-Generatoren sonst noch zu sagen wäre:

  • sie stellen die Möglichkeit für intelligente Elektronik dar, auf Bit-Ebene über die Größenverhältnisse zu entscheiden

  • in der Rechenpraxis werden jeweils Bits (Flags) gesetzt und/oder rückgesetzt

  • sie sind die Basis von Entscheidungen in Programmabläufen

  • sie unterscheiden zwischen größer als, kleiner als und gleich

Comparator-Logik

Der Comparator im Web

Flip Flop sind "unlogisch" - ihr Anfangszustand ist unbestimmt - nur ihr Folgezustand gehorcht der Logik

Was zu den Flip Flop sonst noch zu sagen wäre:

  • das RS-Flip Flop ist einfachste aber auch instabilste Speicherschaltung

  • D-Flip Flop sind die Basis aller Schieberegister

  • das statische Fangen von Inforrmationen auf Bitebene wird ebenfalls über D-Flip Flop realisiert - man spricht von Fangregistern

  • JK-Flip Flop sind getaktete Informationsspeicher

  • sie sind stabil gegen Fehlfunktion und erreichen je nach Beschaltung sehr hohe Taktraten

  • sie sind die Basis vieler Zählerschaltungen, denn ihr Fortschalten gehorcht genau der Binärfolge

  • zufällig arbeiten sie auch als Frequenzteiler - keine Zeitschaltungen ist ohne ohne interne Zähler möglich

 

Flip Flop Schaltungen

Die Flip Flops im Web

Zähler

Was zu den Zählern sonst noch zu sagen wäre:

  • die Ausgangsfreuquenz eines Zählers entspricht genau dem Teiler der darin auf Bitbene eingebauten Zählerstufen bezüglich seiner Eingangsfrequenz um jeweils die Hälfte

  • das benutzt zum Beispiel jede Quartz-Uhr

  • zusätzlich ergibt das Ausgangsbild des Weiterschaltens der einzelnen Bitstufen genau das Bitmuster der Binärzahlen

  • in Computern übernehmen sie das Hochzählen der Programmabläufe oder das Herunterzählen von Stackpointern

  • in CTCs zählen sie Ereignisse und/oder genau definierbare Zeiteinheiten (sie zählen hier immer nach 0 zu und lösen dort ein Ereignis aus, welches softwaretechnisch ausgewertet werden kann)

Zähler und Frequenzteiler

Die Zähler im Web

Fang- und Schieberegister

Was zu den Registern sonst noch zu sagen wäre:

  • hier nun können bitweise organisierte Informationen zwischengespeichert werden, bis sie einer Verarbeitung unterzogen werden können

  • jede Prozessorarchitektur verwendet Fangregister, diese unterschieden sich bis heute nur durch die Bitbreite ihrer internen Organisation (waren das anfangs 8 Bit, so arbeitet man heute intern durchaus mit 128 binären Entscheidungsstellen)

  • wird ein Bitmuster nach rechts verschoben sowie an der nunmehr freien Stelle eine 0 eingefügt, so entspricht das Ergebnis genau einer Multiplikation mit zwei

  • wird ein Bitmuster nach links verschoben sowie an der nunmehr freien Stelle eine 0 eingefügt, so entspricht das Ergebnis genau einer Modulo-Division durch zwei mit zwei

Schiebe- und Fangregister

Die Register im Web

in einer Arithmetic-Logical Unit nu läuft alles zusammen

Was zu den ALUs sonst noch zu sagen wäre:

  • ALUs sind die einzigen Stellen innerhalb eines Computersystems, in welchen wirklich gerechnet wird

  • unverändert ist das hauptsächlich die CPU, die aber auch alle Steuerungsaufgaben für die Peripherie mit verwalten muss

  • in der Zeit, in der sie sich um externe Komponenten kümmern muss, kann die CPU keine Rechenaufgaben wahr nehmen

  • Grund genug, zu definieren, dass die externen Geräte eigene Intelligenz bekommen sollten

  • man nennt solche Geräte sowie deren Verwaltung SCSII

Arithmetic-Logical-Unit

Arithmetic-Logical-Unit im Web

was wir nun noch benötigen, ist ein Speicherbaustein

Was zu den Speichern sonst noch zu sagen wäre:

  • grundsätzlich unterscheiden wir zwischen "Nur-Lese-Speichern" (Read Only Memory - kurz ROM) und Speichern mit Schreib/Lese-Eigenschaften (Random Access Memory - kurz: RAM)

  • dabei werden durch moderne Technologien die Grenzen immer weicher

  • so können heute viele ROMs mit Tricks auch geschrieben werden (MP3-Plyer beispielsweise tun das ja)

RAM-Funktionsweise

Der RAM im Web


4. Die Ergebnis-Präsentation des Projektes history menue scroll up

Insgesamt eine beeindruckende Bilanz der dargstellten Varianten und Werkzeuge. Egal, für welche Programmieroberfläche man sich entschieden hat - in diesen Projekten läuft schon so ziemlich alles zusammen, was Informatik ausmacht.
Patrick, Philipp und Robert haben eine eigene kleine Rechnerarchitektur aufgebaut. diese ist in sich sehr schlüssig und lässt sich für kleine Steuerprogramme durchaus einsetzen - in der Abschlussversion ist enthalten:
  • PIO
  • CTC
  • Hexeingabe
  • HALT-Tester
  • es gibt bedingte sowie unbedingte Sprünge und CALL's
  • parallel eingelesene Bytemuster lassen sich bitweise austesten

Website von Patrick, wenngleich zum Projekt noch Robert und Phillip dazu gehören

Prozessorpräsentation von Patrick Rudolph im Intranet

 
Stefanie, Sven und Andreas sind den Weg eines eigenspezifizierten Prozessors gegangen - auch dieser ist für einfache Steuerungen sowie numerische Abläufe hinreichend geeignet

Website von Patrick, wenngleich zum Projekt weitere Schüler gehören

Prozessorpräsentation von Stephanie Herrmann im Intranet

   

Website von Anne-Kristin, wenngleich zum Projekt noch Anne2 sowie Jan gehören

Ampelprogrammierung von Anne-Kristin Werner im Intranet

   
unser "Ein-Mann-Projekt": Martin Schmidt mit seinem Z-80 Simulator - geschrieben in JAVA und ein ganz heißer Tipp für hardwarenahes Programmieren - das geht damit nämlich schon und zwar richtig  ;-)

Prozessorpräsentation von Martin Schmidt

Prozessorpräsentation von Martin Schmidt im Intranet

Download
Microprocessor.jar (Executable Java Archive)
Microprocessor.zip (kompletter Java-Sourcecode)
start.bat (Stapelverarbeitungsdatei (öffnet Microprocessor.jar))


5. Verwandte Projekte history menue scroll up

Hier sind in eigentlich allen Fällen nach schweißtreibender Arbeit Spitzenleistungen erzielt worden, deren Umfang nur erahnen kann, wer sich in die Materie begibt und versucht, nur ein paar einfache Logikaufgaben anzugehen sowie eindeutige Lösungen zu finden. Unsere Aufgabe war komplexer: Finde die Lösung - beschreibe Wege sowie Modell, diese Lösung evtl. zu vereinfachen, entwickle den logischen Schaltplan!

Informatik-Projekte am Gymnasium Flöha

Das Kombinatorik-Projekt

Projekt Roboking mit dem Team Rabbi Loew

 

Projekt Kryptoanalyse

Projekt Bundeswettbewerb für Informatik

Projekt ENIGMA

Projekt Assemblerprogrammierung

Projekt Problemlösungsstrategien

   



zur Hauptseite
© Samuel-von-Pufendorf-Gymnasium Flöha © Frank Rost im Mai 2006

... dieser Text wurde nach den Regeln irgendeiner Rechtschreibreform verfasst - ich hab' irgendwann einmal beschlossen, an diesem Zirkus nicht mehr teilzunehmen ;-)

„Dieses Land braucht eine Steuerreform, dieses Land braucht eine Rentenreform - wir schreiben Schiffahrt mit drei „f“!“

Diddi Hallervorden, dt. Komiker und Kabarettist

Diese Seite wurde ohne Zusatz irgendwelcher Konversationsstoffe erstellt ;-)