Informatikmaterialien |
Startseite | Informatik | Physik | Mathematik | Sonstiges | |
Richard-Wossidlo-Gymnasium
Ribnitz-Damgarten |
---|
1946 stellte der in die USA ausgewanderte Ungar John von Neumann das Konzept für einen universellen, speicherprogrammierbaren Rechner vor. Dieses Konzept schlägt sich auch heute noch in den modernen Computern nieder.
Demnach gelten folgende Prinzipien:
Die Komponenten Rechenwerk und Steuerwerk sowie Grundelemente des Speichers (Register) der Von-Neumann-Architektur werden in der Zentraleinheit (CPU - Central Processing Unit) vereint. Dabei nimmt das Register A (Akkumulator) eine Sonderrolle ein. Alle Rechenoperationen werden im Rechenwerk mit Hilfe der Register vorgenommen.
Ein angeschlossener Taktgeber sorgt für die schrittweise Arbeit in der CPU und im gesamten System. Die Erhöhung der Taktfrequenz ist eine Möglichkeit, die Arbeitsgeschwindigkeit zu verbessern. Allerdings sind hier Grenzen gesetzt, da die Operationen zeitlich aufeinander abgestimmt sind.
Der Datenbus gibt ebenfalls Aufschuss über die Leistungsfähigkeit des Rechners. Je größer er ist, desto mehr Datenbits können auf einmal verarbeitet werden.
Wir unterscheiden drei Busse:
Befehle werden nach ihrer Länge unterschieden. In 8-Bit-CPUs gibt es 1-, 2-, 3- und 4-Byte-Befehle. Diese bestehen stets aus einem Operationsteil der festlegt, was mit welchen Daten zu tun ist und ggf. aus ein oder zwei Operanden. Zur Abarbeitung wird zunächst der Befehl geholt, dann in der CPU dekodiert und schließlich ausgeführt.
Der Polycomputer 880, ein in der DDR erntwickelter Z80-Rechner, ist in der Lage, Programme real im Schrittbetrieb auszuführen und die Bussignale durch Leuchtdioden zu visualisieren.
Jeder Prozessor (CPU) ist in der Lage, bestimmte Grundbefehle abzuarbeiten, wie z. B.:
Beispiel: Programmausschnitt für einen Z80-Prozessor (Übungsmaterial für LC 80 bzw. LC 80-Simulator):
Addresse Maschinencode Mnemonic/Assembler Erläuterungen 2000 3A 40 20 LD A, (2040H)Das Register A wird mit dem Inhalt der Speicherzelle 2040h geladen.
2003 2F CPLDer Inhalt des Register A wird negiert.
2004 32 41 20 LD (2041H), AAuf die Speicherzelle 2041h wird der Inhalt des Registers A geschrieben.
2007 76 HALTProgrammhalt!
2040 6A DEFB 6AHDefiniertes Byte 6Ah (Datenbyte)
Bei den ersten Computern musste der Maschinencode noch bitweise eingegeben werden, wie etwa beim Altair 8080, dem ersten kommerziell erhältlichen Mikrocomputer. Nachfolgemodelle nutzten dann schon die Darstellung der Maschinencodes durch Hexadezimalzahlen, wie der Polycomputer 880 oder der LC 80. Dennoch war das Erstellen von Programmen mühsehlig und so entwickelte sich eine erste maschinennahe Programmiersprache: Assembler, die aus den kryptischen Bit- bzw. Bytefolgen Befehle machte. Auch wenn diese ebenfalls noch kryptisch waren, so gab es doch bereits Programme, die es ermöglichten den Assembler einzugeben und daraus den Maschinencode zu erzeugen. Unter DOS/Windows gibt es den debug-Befehl noch heute und man kann ihn auch noch benutzen!
Lerncomputer LC 80 mit dem o. g. Programm
Ein Programm ist eine Folge von Anweisungen, die dem Computer sagen, was er zu tun hat.
Solche Folgen von Anweisungen sind keine Erfindung des Computerzeitalters. Die Naturwissenschaften und Mathematik leben von Schrittfolgen zur Problemlösung. Allseits bekannt sind etwa:
Im mathematischen Sinne spricht man von Algorithmen. Aber auch außerhalb der Naturwissenschaften bestimmen Schrittfolgen unser Leben: Ausfüllen von Formularen, Waschen von Wäsche, Fahren eines Autos.
Ein (imperativer) Algorithmus ist eine Verarbeitungsvorschrift, die aus einer endlichen Folge von eindeutig ausführbaren Anweisungen besteht, mit dem eine Vielzahl gleichartiger Aufgaben gelöst werden kann.
Der Algorithmus gibt an, wie Eingabegrößen schrittweise in Ausgabegrößen umgewandelt werden.
Dabei müssen folgende Eigenschaften erfüllt sein:
Endlichkeit
Text zum Aufschreiben des Algorithmus ist endlich, bei der Abarbeitung benötigt er endlich viel Platz.Determiniertheit
Unter gleichen Startbedingungen und Parametern liefert des Algorithmus immer das gleiche Ergebnis.Universalität
Algorithmus löst eine Klasse von Problemen; die Auswahl des Problems erfolgt über Parameter.Deterministisch
Zu jedem Zeitpunkt gibt es höchstens eine Möglichkeit der Fortsetzung des Algorithmus.Terminiertheit
Algorithmus liefert nach endlich vielen Schritten ein Ergebnis (gilt nicht für Betriebssysteme)Die Bezeichnung Algorithmus leitet sich übrigens aus der Verstümmelung des Namens des persisch-arabischen Mathematikers Abu Ja'far Muhammad ibn Musa Al-Chwarizmi (787 bis ca. 850), der insbesondere in Bagdad wirkte und in dem Buch Hisab al-jabr w'al-muqabala viele Rechenverfahren beschrieben hat.
Damit ergibt sich folgende Situation:
Die Beschreibung des Algorithmus kann natürlich in Maschinensprache/Assenbler erfolgen. Wie oben gesehen, hat diese aber einige fundamentale Nachteile: sie ist schwer verständlich und prozessorabhängig. Sinnvoll wäre die Beschreibung des Algorithmus (fast) umgangssprachlich bzw. unter Verwendung fester Begriffe/Schlüsselwörter.
Diese Forderung erfüllen höhere Programmiersprachen. Eine der ersten höheren Programmiersprachen war COBOL und wurde von Navycaptain Grace Hopper entwickelt. Auf sie geht übrigens auch der Begriff Debugging und die Ursache des Millenium-Problem zurück.
Noch besser wäre eine prozessor- und programmiersprachenunabhängig Darstellung von Algorithmen, diese bietet dann das Flussdiagramm oder Struktogramm (Nasi-Shneiderman-Diagramm).
zur Startseite |
© Tino Hempel 1997 - 2007 | Im Web vertreten seit 1994. Eine Internet-Seite aus dem Angebot von Tino Hempel. Für alle Seiten gilt der Haftungsausschluss/Disclaimer. |