Wie funktioniert ein Computer?

Aus Mmktagung
Zur Navigation springenZur Suche springen

MMK Home - Hauptseite - Programm - Anmeldungen - Schlussbericht - Ausblick


Diskussionsbeitrag zur AG3_MMK_2014


Rolf Todesco

Wie funktioniert ein Computer?

Funktion und Funktionsweise

Ich könnte die Frage, wie ein Computer funktioniert, direkt angehen. Ich könnte voraussetzen, was ein Computer ist und beispielsweise seine elektronischen Bauteile erläutern, oder erklären, wie er mit bits und bytes rechnet. Wenn ich mit der Frage "wie funktionier ein Computer" google, kriege ich beliebig viele solche Antworten. Ich könnte aber auch zuerst die Frage selbst etwas anschauen, also einen kleinen Umweg machen und mir überlegen, wie ich der Frage gerecht werden könnte. Ich könnte dabei nach dem Sinn der Frage fragen, etwa wer sie wann warum oder wozu stellen könnte. Ich könnte nach Voraussetzungen der Frage fragen, mich also fragen, was in der Beantwortung der Frage vorausgesetzt bleiben und was erläutert werden soll. Ich könnte davon ausgehen, dass klar ist, was ein Computer ist, und dass nur nach dessen Funktionsweise gefragt wird.

        

Blackbox.jpg

Ich will die Frage aber operativ verstehen, also so, dass durch die Beschreibung der Funktionsweise erst geklärt werden soll, was als Computer bezeichnet wird. Ich bestimme also eine Funktion des Computers und zeige, wie diese Funktion realisiert wird. Es geht mir also nicht darum, zu definieren, was ein Computer ist, sondern darum, die zu erläuternde Funktionsweise an eine bestimmte Funktion des Computers zu binden.

Diese von mir gewählte Funktion des Computers bestimme ich operativ ohne mich vom Ausdruck "Rechner" (oder to compute) irreführen zu lassen. Ich beobachte, was ich mit dem Computer mache, wie ich ihn verwende. Ich rechne ganz selten mit dem Computer und selbst dann schaue ich vor allem auf den Bildschirm, wo Zeichen oder Bilder erscheinen. Wenn ich den Computer benutze, geht es mir darum, auf dem Bildschirm Darstellungen zu hervorzubringen, die ich brauchen kann. Ich klicke beispielsweise auf das Icon der Textverarbeitung, damit die Textverarbeitung am Bildschirm erscheint, oder ich tippe einen Text auf der Tastatur, damit der Text am Bildschirm erscheint. Ich frage mich also, wie ich mit dem Computer bestimmte Darstellungen herstellen kann.

Ich will die Inversion nochmals hervorheben, in welcher der Computer konventionellerweise gesehen wird. Üblicherweise erscheint die Funktion des Computers als irgendeine Art des Rechnens - schliesslich heisst der Computer ja so. Dabei wird der Bildschirm lediglich als Peripheriegerät gesehen, das Ergebnisse, die zuvor errechnet wurden, noch anzeigt. Wenn ich mit dieser Vorstellung erklären will, wie ein Computer funktioniert, muss ich erklären, wie der Computer rechnet. Wenn ich dagegen die hier vorgeschlagene, dazu inverse Vorstellung verwende, muss ich erklären, wie die jeweiligen Bildschirmanzeigen zustande kommen. Je nachdem, wie ich den Computer sehe, verschiebt sich die Fragestellung, obwohl der Computer, dessen Funktionsweise ich erkläre, natürlich derselbe bleibt. Meine Erklärung ist also nicht direkt an den Computer gebunden, sondern an eine Sichtweisen auf das, was gemeinhin als Computer bezeichnet wird.

Ich erkläre die Funktion, die ein Computer erfüllt, mit einem Mechanismus, aber nicht, weil ein Computer ein Mechanismus ist, sondern weil ich Erklärungen generell als Beschreibungen von Mechanismen betrachte, mit welchen ein zu erklärendes Phänomen erzeugt werden kann. Wenn ich beispielsweise erkläre, wie ich meine Körpertemperatur konstant halte, beschreibe ich einen Mechanismus, obwohl ich keine Maschine bin. Und wenn ich erklären will, wie ein bestimmter Bildschirminhalt hervorgebracht werden kann, beschreibe ich einen Mechanismus, mit welchem diese Funktion realisierbar ist. Diese erklärenden Mechanismen bezeichne ich als System. Ein konkreter Computer kann anders konstruiert sein - es gibt ja auch sehr verschiedene Computer -, in einer Erklärung beschreibe ich ein bestimmte Möglichkeit. Ich erkläre also einen bestimmten Computer und kann auch deshalb nicht so tun, als ob der Computer unabhängig von meiner Erklärung definiert wäre. Die Erklärung eines Computers erklärt immer auch, was für ein Computer erklärt wird.

Den Mechanismus, den ich für die Erklärung verwende, bezeichne ich als Automaten, dessen In- und Output-Zustände ich als Symbole deute. Als Automaten bezeichne ich das System, weil es bestimmte Dinge quasi automatisch macht. Solch automatische Systeme erklär ich damit, dass sie einen Prozessor enthalten, der der Steuerung des Systems dient. Ein typischer Automat ist etwa die thermostatengeregelten Heizung. Als Funktion der Heizung sehe ich die Produktion von Wärme in einem Haus. Sie enthält aber einen Thermostaten, der keine Wärme produziert, sondern den funktionsorientierten Teil der Maschine, also den Ölbrenner steuert, so dass ich nicht nur Temperatur, sondern eine bestimmte Temperatur im Haus habe. Beim Computer wird die Anzeige auf dem Bildschirm gesteuert, so dass ich die erwartete Anzeige - sei dies nun ein Bild, ein Computerspiel oder ein Rechnungsresultat - erkennen kann. Bei beiden Systemen beschreibe ich den Steuerungsmechanismus als eine eigenständige Konstruktion mit einem eigenen Energiekreis. Ich bezeichne diese Mechanismen als Prozessoren. Automaten haben also immer einen Energiekreis, der der eigentlichen Funktion des Automaten dient, den ich als primären Energiekreis bezeichne, und einen Energiekreis, der der Steuerung des primären Energiekreises dient, den ich als sekundären Energiekreis bezeichne. Bei der thermostatengeregelten Heizung wird im primären Energiekreis Öl in Wärme umgesetzt, und im sekundären Energiekreis des Thermostaten wird Strom verbraucht, um die Heizung zu steuern. Bei einem Computer wird im primären Ernergiekreis mit Strom ein Bildschirminhalt angezeigt (weil ich eben hier die Funktion des Computers so bestimmt habe), und im sekundären Energiekreis des Prozessors wird Strom verbraucht, um die Bildschirmanzeige zu steuern. Die primäre Energie sorgt dafür, dass etwas angezeigt wird, die sekundäre dafür, was angezeigt wird.

Meiner Erläuterung der Funktionsweise des Computers beginne ich also mit der funktionalen Bestimmung. Ich frage mich, wie es möglich ist, dass der Bildschirm zeigt, was er zeigen soll. Ich beginne mit dem funktional primärgesetzten Energiekreis, welcher den Bildschirm zu leuchten bringt und führe schrittweise relativ sekundäre Energiekreise ein, die den primären Energiekreis so steuern, dass die gewünschte Darstellung am Bildschirm erscheint.

Ein ganz einfacher Bildschirm

Die einfachste Form - bei welcher noch fast gar nichts passiert - ist eine Lampe mit einem Schalter zum Ein- und Ausschalten. Die Glühbirne repräsentiert den Bildschirm und der Schalter repräsentiert die Tastatur dieses einfachen Computers. Durch "Eingaben" auf der Tastatur, wird bestimmt, was der Bildschirm zeigt. In diesem Modell ist noch kein Prozessor vorhanden, und deshalb auch nur der primäre Energiekreis, der der Funktion der Lampe dient, also den "Bildschirm" hell macht. S. Morse hat gezeigt, dass man auch mit einem so primitiven "Bildschirm" beliebig differenzierte Darstellungen codieren kann: --- ... --- usw.

        

Lampe.png
Lampe1.png


Ein ganz einfache Steuerung

Nun mache ich die Lampe in einer Analogie zur thermostatengeregelten Heizung etwas komplizierter. Ich will zunächst, dass die Lampe jeweils zwischen 8 Uhr und 2 Uhr brennt, also automatisch ein- und ausgeschaltet wird. Dazu muss ich einen einfachen Steuerungsmechanismus und mithin einen zweiten Energiekreis einführen. Ich verwende dazu eine Uhr, die mit ihrem Zeiger einen Stromkreis schliesst, wenn der Zeiger zwischen 8 Uhr und 2 Uhr steht und andernfalls den Stromkreis unterbricht, indem ich auf dem Zifferblatt eine Stromleiste anbringe und den Stundenzeiger unter Strom setze. Wenn der Zeiger zwischen 8 und 2 Uhr steht, fliesst der Strom, andernfalls nicht. Mit diesem sekundären Energiekreis verbinde ich einen elektromagnetischen Schalter, der den primären Stromkreis schliesst, wenn er unter Strom steht. Der sekundäre Energiekreis trägt also nichts zur Helligkeit der Lampe bei, sondern steuert nur, wann sie brennt und wann nicht. Und ich will hier ausser Acht lassen, dass die Uhr selbst natürlich auch einen Antrieb braucht.

Man kann viele kleine Lampen nebeneinander stellen und so einen Bildschirm bauen, bei welchem verschiedene Pixel zu verschiedenen Zeiten leuchten, so dass man beispielsweise die Uhrzeit am Bildschirm darstellen kann. Dazu muss man sich überlegen, welche Lampen wann brennen müssen und welche nicht und dementsprechend für jede Lampe die zugehörige Uhr entsprechend konfigurieren. Wenn man sich vorstellt, wie man welche Uhren einrichten muss, damit der Bildschirm jeweils die Uhrzeit anzeigt, bekommt man eine erste Ahnung davon, was programmieren - auf so einfachen Maschinen - heissen könnte. Und nur nebenbei: Die ersten Computer, die gebaut wurden, waren in der Tat riesige Ungetüme mit einem ebenfalls riesigen Stromverbrauch, auch wenn sie nicht so primitiv waren, wie das aktuell beschriebene Modell.

Natürlich kann man ohne weiteres noch mehr Bedingungen in den Steuermechanismus einfügen. Man könnte etwa eine Jahresuhr in den Energiekreis der Tagesuhr einfügen und so bewirken, dass die Lampe nur während der Sommermonate brennt. Oder man kann dort auch wieder Tasten einfügen, die von Hand bedient werden, so dass der Benutzer entscheiden kann, wann der Automat in Betrieb ist und wann nicht. Dabei wird der Steuerungsmechanismus immer komplizierter, ich würde allerdings nicht sagen, dass er etwas rechnet.

Wenn man die Jahresuhr so einfügt, wie ich es nebenan gezeichnet habe, kann man sagen, dass die Jahresuhr die Tagesuhr steuert, weil die Tagesuhr ja nur Strom leitet, wenn die Jahresuhr den entsprechenden Stromkreis schliesst. Der Stromkreis der Jahresuhr ist dann sekundär zu jenem der Tagesuhr, deren Stromkreis sekundär zu jenem der Bildschirm-Lampe ist. Diese Art von Verschachtelung ist ein ganz wesentliches Element von Steuerungsmechanismen, die kompliziert genug sind, dass ich sie Prozessoren nenne. So kann man beliebige Kombinationen aufbauen.

In diesem einfachen Modell kann ich sehen, wie die Bildschirmanzeige über einen Mechanismus gesteuert wird. Nun wende ich mich diesem Steuerungsmechanismus zu. Im Beispiel ist ein Uhr, die einen Stromkreis steuert, der einen Magnetschalter steuert. Die Uhr schliesst den Stromkreis zwischen 8 Uhr und 2 Uhr, weil in diesem Bereich der Zeiger eine Stromleiste berührt. Nun kann man diese Stromleiste durch viele kurze Leisten-Punkte ersetzen, beispielsweise jede Minute. Dann kann man für jeden Zeitpunkt einen eigenen Stromkreis anlegen und so für jeden einzelnen Zeitpunkt von weiteren Bedingungen abhängig machen, ob der Stromkreis geschlossen ist oder nicht. So werden beliebig viele Muster möglich.

Eine leicht modifizierbare Steuerung (soft-Ware)

Wenn man den Steuerungsmechanismus modifizierbar macht, kann man mit derselben Maschine verschiedene Funktionen realisieren. Bei meinem Bildschirm-Modell kann man die Verknüpfung der Schalter verändern und so verschiedene Bildschirminhalte generieren. Man kann beispielsweise bei der Uhr die Kontaktstellen anders verdrahten, so dass man beispielsweise zwischen 10 und 12 ein brennende Lampe hat. Diese Modifikationen sind allerdings nicht leicht zu machen, man muss dazu die Maschine umbauen.

Bekannt sind die Maschinen von Black&Decker, bei welchen verschiedene Werkzeuge eingesetzt werden können. Dort wird nicht die Steuerung modifiziert, sondern der Maschinenzweck. Bei Computern bleibt der Maschinenzweck aber immer eine Darstellung am Bildschirm, deren Zweck der Benutzer des Computers realisiert. Verschiedene Zustände der Steuerung bewirken verschiedene Zustände am Bildschirm. Deshalb hätte A. Turing besser von einer universellen Steuerung als von einer universellen Maschine gesprochen.

Bei einer Musikwalze etwa müsste man die Nocken auf der Walze verschieben, um eine neue Melodie zu hören. Praktischer ist es natürlich in diesem Fall, die ganze Walze auszuwechseln. Wenn man anstelle von Musikwalzen Schallplatten nimmt, findet man in der Jukebox eine Möglichkeit das per Knopfdruck zu tun, weil sie genau dafür konstruiert worden ist.

Eine einfache Form von modifizierbaren Steuerungen sind solche, die Lochkarten verwenden. Man steckt eine andere Lochkarte in die Steuerung, und die Maschine zeigt ein anderes Verhalten. In meinem Modell kann man beispielsweise die Kontaktstellen bei der Uhr alle fest verdrahten, aber dann verschiedene Lochkarten auf die Uhr schieben, so dass je nach Lochkarte verschiedene Stellen Kontakt oder eben keinen Kontakt ergeben. Die Webstühle von J. Jacquard webten auf diese Art mit verschiedenen Lochkarten verschiedene Stoffmuster. Jedes Mal bevor das Webschiffchen geschossen wird, werden die Kettfäden durch den Abtastmechanismus der Lochkarten neu in Position gebracht. Man kann - im Rahmen der hier vorgeschlagenen Modellierung - das gewobene Tuch als "Bildschirm" sehen, dessen Muster durch die Webstuhlsteuerung bestimmt wird. Dann kann man erkennen, dass mit einer relativ einfachen Steuerung ziemlich komplizierte "Bildschirme" generiert werden können.

Die Schallplatten in einer Jukebox entsprechen verschiedene Lochkarten oder Musikwalzen. Bei der Jukebox ist das Auswechseln der Lochkarten mechanisiert, man muss die Lochkarten also nicht von Hand einschieben, aber man natürlich wählen, was man hören will. Beim Webstuhl von Jacquard werden die Lochkarten auch mechanisch ausgetauscht. Vor jedem Webfaden wird eine neue Lochkarte eingespannt, aber auch hier muss jemand die Reihenfolge der Karten festlegen.

Diskretes Steuern

Ich spreche im Zusammenhang mit der Steuerung von Schaltern, weil beispielsweise Stromkreise "geschaltet" werden. Das einfachste Bildschirmmodell, mit welchem ich die Erläuterung angefangen habe, hat einen solchen Schalter. Beim durch die Uhr gesteuerten Modell ist im primären Energiekreis der Schalter noch gut zu erkennen. Ich spreche dort aber auch im sekundären Energiekreis von einem Schalter, der eben durch die Bewegung des Uhrzeigers - quasi automatisch - ein- und ausgeschaltet wird. Wenn der Lochkartenmechanismus - wie in meinem Beispiel mit der Uhr - dazu verwendet wird, Energiekreise zu steuern, ....

Forts. folgt