Prozessoren

Wie die meisten sicherlich schon tausendmal im Informatikunterricht und in der Hobbythek gehört haben, ist der Prozessor der zentrale Kern eines Computers, der die ganze Arbeit ausführt. Es gibt zahllose Arten von CPUs, ich werde mich hier (wie zu erwarten) auf die beschränken, die in Commo-Rechnern oder Original-Commo-Zubehör verbaut worden sind.

Hier noch ein paar Worte zu den Technischen Angaben die bei CPUs zu finden sind: Man erlebt immer wieder Vergleiche von Daten die man nicht vergleichen kann. Am besten sind Sachen wie "Mein Z80 hat 4 Mhz, dein 6502 nur 1 Mhz, also ist meiner 4 mal schneller, hehehe!!". Die berühmte Megahertz-Zahl, das Hauptverkaufsargument bei Computern heutzutage, hat zwar tatsächlich etwas mit der Rechnergeschwindigkeit zu tun, jedoch sind die Zusammenhänge etwas komplexer.

MIPS vs. Mhz

Jeder Prozessor verfügt über einen bestimmten Befehlssatz. Diese Befehle sind meist äußerst einfache Operationen, man wird hier vergeblich nach PRINT, INPUT und ähnlichen Anweisungen suchen. Stattdessen wird man Befehle wie LDA (Lade Akkumulatorregister mit Wert, 6502), MOVE.B (kopiere ein Byte von A nach B, 68000) und andere ähnlich elementare Sachen finden. Jeder dieser Befehle besteht jetzt noch einmal aus mehreren einzelnen Arbeitsschritten. Nehmen wir den 6502 als Beispiel:

Beim LDA-Befehl in seiner einfachsten Ausführung (Direkte Adressierung) wird das auf den Befehl folgende Byte in das Akkumulatorregister geladen. Dieser Befehl besteht aus zwei Arbeitsschritten: Im ersten wird der Befehl geholt und dekodiert. Dieser Schritt kommt bei jedem Befehl vor. Im zweiten Schritt wird das direkt auf den Befehl folgende Byte geholt und in das Akkumulatorregister kopiert. Die Mindestschrittzahl beim 6502 beträgt 2, die komplexesten Befehle bestehen aus bis zu sieben Schritten. Diese Schritte werden in einem bestimmten Takt abgearbeitet, damit die restliche Hardware mit der CPU synchronisiert werden kann. Dieser Takt wird üblicherweise in Megahertz angegeben.

Nun ist es so, dass verschiedene Prozessortypen verschiedene Befehle besitzen. Diese Befehle benötigen auch unterschiedlich viele Einzelschritte zur Abarbeitung. Ein typischer Z80-Befehl benötigt etwa 3 - 4 Mal so viele Schritte (Taktzyklen) wie ein typischer 6502-Befehl. Daher hat sich noch ein anderer, wesentlich mehr aussagender "Benchmarkwert" etabliert, die MIPS-Angabe (Million Instructions Per Second -> Millionen Befehle pro Sekunde). Man teilt hier einfach die Taktfrequenz in Hertz durch die durchschnittliche Taktzyklenzahl aller Befehle. Aber aufgrund der teilweise sehr unterschiedlichen Prozessorarchitekturen und Aufgabengebiete, von Caches und anderen internen Optimierungen mal ganz zu schweigen, ist dieser Wert auch nicht sonderlich verläßlich.

Busbreiten und Bitzahlen

Man liest immer wieder von 8-Bit/16-Bit/werweißwieviel-Bit Prozessoren/Konsolen/Computern, aber die wenigsten wissen was damit gemeint ist (außer natürlich dass mehr wie immer besser ist). Bei einem Prozessor gibt es üblicherweise diese "Bit-Zahlen":

Der Adreßbus ist zum Ansprechen der einzelnen Speicherzellen des Arbeitsspeichers da. Ist er beispielsweise 16 Bit breit, so können maximal 65536 Speicherzellen (2 hoch 16) angesprochen werden. Das sind üblicherweise 64 KByte bzw. 65536 Byte. Einige ältere Maschinen verwenden 12 Bit Words statt Bytes oder noch wesentlich "krummere" Werte und können daher mehr (oder auch weniger) Speicher ansprechen. Die Gesamtzahl der einzeln ansprechbaren Speicherzellen ändert sich jedoch nicht, nur die Größe der einzelnen Zellen.

Der Datenbus dient zum Übertragen der Daten vom Prozessor zum Speicher oder umgekehrt. Prozessoren mit 16 Bit Datenbus haben beispielsweise gegenüber Prozessoren mit 8 Bit Datenbus einen Geschwindigkeitsvorteil wenn häufig Werte mit 16 Bit verarbeitet werden müssen, da die Daten beim 8 Bit Datenbus auf zwei Übertragungsvorgänge aufgeteilt werden müssen. Dieser Wert wird üblicherweise als "Bit-Klassifizierung" eines Prozessors verwendet, da er sich am ehesten auf die Geschwindigkeit auswirkt. Der 68000er von Motorola besitzt beispielsweise einen 16 Bit Datenbus.

Die Registerbreite wiederum gibt an, mit welchen Datenmengen ein Prozessor intern direkt umgehen kann. Ein 6502 hat 8 Bit breite Register, ein Z80 kann je zwei 8 Bit Register zu einem 16 Bit Register zusammenfassen und hat auch spezielle Befehle, um mit solchen Werten umzugehen. Daher ist es üblicherweise bequemer mit dem Z80 zu arbeiten, jedenfalls bei großen Zahlen.

Die Verwirrung bei diesen Zahlen kommt meist von "Mischprozessoren". Der 68000er von Motorola etwa besitzt einen 16 Bit Datenbus, einen 24 Bit Adreßbus und 32 Bit breite Register. Das heißt er kann: