 |
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
|
 |
►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???
|
 |
-
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
|
 |
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)
|
 |
|
 |
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
|
 |
Addier-Logiken sind die Mutter
aller Rechenprozesse in Computern
|
 |
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 |
|
 |
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
|
 |
|
 |
|
 |
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 ;-)
|