zurück ]      [ Stichworte ]      [ Die Hyper-Bibliothek ]      [ Systemtheorie ]         [ Meine Bücher ]


Rolf Todesco

Wie funktioniert ein Computer?

bild

siehe auch: Was ist eine Programmiersprache?
bildComputertechnik


 

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 funktioniert 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 vorausgegesetzt 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. 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.

bild bild

Funktion und Funktionsweise

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 verschiedenene 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 Mechanimus, 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 Motor und einen Prozessor enthalten, der der Steuerung des Systemes dient. Ein typischer Automat ist etwa die thermostatengeregelten Heizung. Als Funktion der Heizung sehe ich die Produktion von Wärme in einem Haus. Sie kann einen Thermostaten enthalten, der keine Wärme produziert, sondern den funktionsorientierten Teil der Maschine, also den Oelbrenner 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 Steuerungsmechanismen 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 Ernergiekreis Oel in Wärme umgesetzt, und im sekundären Energiekreis des Thermostaten wird ekektrischer Strom verbraucht, um die Heizung zu steuern. Bei einem Computer wird im primären Ernergiekreis mit Strom ein Bildschirminhalt angezeigt - weil ich hier eben 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 Strom 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 funktionalen Bestimmungen. 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 zum 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.

Auch in diesem einfachsten Fall muss jemand das Gerät betreiben, also den Schalter beispielsweise von Hand bedienen. Ich befasse mich aber nur mit dem Gerät, das in diesem Fall keinerlei Steuerung hat und deshalb eben von Hand gesteuert wird. Die Glühbirne leuchtet aber natürlich nur, wenn Strom fliesst, wenn also der primäre Kreis geschlossen ist.

bild
 
bildbild

 

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 führe ich einen einfachen Steuerungsmechanismus und mithin einen zweiten Energiekreis ein. 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. Solche Schalter bezeichne ich als Relais. 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.

bild
 
bildbild


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 sehr vielen Relais und einem ebenfalls riesigen Stromverbrauch, auch wenn sie nicht so primitiv waren, wie das hier beschriebene Modell.

bild bild bild


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 oder berechnet.

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 eine 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.

bild bild
bild

 

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, aus einer Bohrmaschine wird beispielsweise eine Trennscheibe. 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 - nebenbei bemerkt - 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.

bild
 
bild


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. Jedesmal 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 Bildschirminhalte generiert werden können.

bild
bild

bild

bild

Die Schallplatten in einer Jukebox entsprechen verschiedenen Lochkarten oder Musikwalzen. Bei der Jukebox ist das Auswechseln der Lochkarten mechanisiert, man muss die Lochkarten also nicht von Hand einschieben, aber man natürtü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.

Die Bezeichnung Software bezieht sich darauf, dass die Funktion des Computers leicht zu ändern ist. EIngebürgert hat sich, Software für Programme zu verwenden. Wie jeder, der schon Programme geändert hat, weiss, lassen sich Programme keineswegs leicht ändern. Aber es ist mit wenig Aufwand verbunden, ein Programm gegen ein anderes auszutauschen. Computer sind Software, die aus Hardware bestehen.
 

Diskretes Steuern

Mein Auto steure ich mit dem Lenkrad, das ich kontinuierlich bewege. Es gibt auch technische Steuerungen, die den primären Energiekreis nicht nur ein- oder ausschalten, sondern kontinuierlich verändern. Mit dem Gaspedal steure ich die Klappenstellung des Vergasers, was den primären Strom in Form von Benzingemisch steuert. Das technische Standardbeispiel ist die Fliehkraftregelung auf der Dampfmaschine von J. Watt.

Von Schaltern spreche ich metaphorisch, wenn ich einen Energiekreis nur öffnen oder schliessen kann, wie das eben bei einem eigentlichen Schalter, etwa bei einem konventionellen Lichtschalter der Fall ist. 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 - kontinuierliche - 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, ist der Schalter eine Art Abtastgerät, das den Stromkreis schliesst, wenn in der Lochkarte ein Loch vorhanden ist.

Die Schalter sind in diesem Sinne diskret. Eigentliche Schalter sind in dem Sinne binär, als sie nur zwei Zustände haben. An meinem Kochherd habe ich "Schalter" mit sechs verschiedenen Stufen, von welchen ich aber immer nur eine konkrete wählen kann.

Schalter sind auch in dem Sinne diskret, als ich deren Zustände nur

Es gibt einen genauen Zeitpunkt, wo der Zeiger eine Schaltstelle schliesst und der Schalter kann nur geschlossen oder offen sein, weil es keine kontinuierlichen Übergänge mehr gibt. In der Umgangssprache nennt man das oft "digital". Mit digital hat das nichts zu tun, aber es ist die technische Form, die sich im Computerbau durchgesetzt hat. Es sind binäre Schalter (Strom/kein Strom) und das Abtasten der Schalter verläuft in diskreten Schritten, was als Takt bezeichnet wird.

Die Schater-Metapher : der Mechanismus operiert in der Zeit: er muss auf der Locharte nachsehen, abtsten, ob er der Kreis schlissen muss. dah er muss imer wieder nachschauen, weil ja eine andere Karte dort sein könnte, deshalb brauch es einen Takt und mithin Zeit. Der Mechanismus Bei modifizierbaren Steuerungen sind die Schalter festgelegt, aber deren Stellung (Strom/kein Strom) wird durch den Mechanismus gesteuert. Die Lochkarte ist ebenfalls festgelegt, man kann sie nicht leicht modifizieren, man kann sie nur leicht ersetzen.

bild
 
bild
 
bild

 
Forts. folgt