###   Projekte und Informationen rund um den KC85   ### 

Z80 der Pentium-Klasse - gibt's das?

von Jörg Linder

Ein kleiner Blick in die Geschichte...

Anfang der 80er Jahre wurde ein Betriebssystem populär, das aufgrund seines modularen Aufbaus an unterschiedliche Hardware angepaßt werden konnte. Einzige Voraussetzungen waren mindestens 20 kByte RAM und eine i8080 CPU. Die Rede ist von CP/M. Innerhalb kürzester Zeit fand dieses Betriebssystem starke Verbreitung auf den unterschiedlichsten Rechnern.

Kurz darauf trat jedoch eine neue Microprozessorfamilie einen Siegeszug an, dessen Ausmaß alles bis dahin Bekannte in den Schatten stellte. Die Firma ZILOG brachte die Z80-CPU und die Peripherieschaltkreise PIO, CTC, SIO und DMA auf den Markt.

Diese neue Z80 CPU war vollständig abwärtskompatibel zur i8080 CPU, weshalb sie von vielen Herstellern anstelle dieser eingesetzt wurde. Außerdem stellte sie etliche neue Befehle zur Verfügung, mit denen kürzere und leistungsfähigere Programme erstellt werden konnten.

Davon machten die Programmierer dann auch ausgiebig Gebrauch. Es dauerte nicht lange und auf dem Softwaremarkt erschienen speziell für den Z80 geschriebene Programme. Als wahre Klassiker gelten dabei solche Spitzenleistungen, wie Turbo Pascal von BORLAND oder dBase von Ashton Tate. Als Folge dessen gibt es heute nur noch wenige CP/M-Programme, die sich mit einer i8080 CPU begnügen. Selbstverständlich machte dieser Trend auch nicht vor dem Betriebssystem halt. Als Beispiele seien hierzu nur das Z-System und P2DOS genannt.

Doch in diesem Artikel soll der Blick nicht nur auf den Anfang der 80er Jahre gerichtet werden, sondern auch auf die nachfolgenden Entwicklungen aus dem Hause ZILOG.

Der Z80 und seine Nachfolger

Wie bereits erwähnt, erlebte die Z80 CPU einen Aufstieg wie kein anderer Microprozessor zuvor. Dieser Umstand blieb natürlich auch in den Ländern östlich der Elbe nicht unbemerkt. Das eine oder andere Exemplar passierte die Embargo-Schranken und wurde geclont. Das Ergebnis war die U880 CPU, die unter anderem auch unserem KC das Computerleben einhaucht.

Auch Intel war nicht träge und versuchte nachzuziehen. Wegen des Erfolges des Herstellers IBM und des Betriebssystems MS-DOS behielt Intel mit dem i8086 Chip und dessen Nachfolgern jedoch die Nase vorn. Um dieses dunkle Kapitel ranken sich allerdings verschiedene Gerüchte, doch das ist schon wieder eine andere Geschichte...

Trotz (oder gerade wegen) der stark wachsenden Verbreitung von IBM-PCs und Kompatiblen brachte ZILOG einige Nachfolger des Z80 auf den Markt. Logischerweise sind diese größer, schneller, leistungsfähiger. Und damit man die Verwandtschaft zur Z80 CPU erkennt und gleich weiß, mit welcher Größe, Geschwindigkeit und Leistungsfähigkeit man es zu tun hat, wählte ZILOG die Namen: Z80180, Z80280 und Z80380. Doch in einschlägiger Literatur tauchen auch die Kurzbezeichnungen Z180, Z280 und Z380 auf. Diese werde auch ich im folgenden verwenden.

Die Z80 CPU

Auch wenn den meisten der Aufbau der Z80 CPU bzw. der U880 CPU bekannt sein dürfte, kommt er hier nochmal in einer Kurzfassung.

Den eigentlichen Kern des Ganzen bildet die ALU (Arithmetik-Logik-Einheit) zusammen mit den CPU Registern. In letzteren werden die Werte für die Verarbeitung in der ALU bereitgestellt. Über Daten-, Adreß- und Steuerleitungen ist die CPU mit dem Rest des Computers verbunden. Der Datenbus ist 8 Bit breit und der Adreßbus 16 Bit. Somit können 64 kByte Speicher direkt angesprochen werden.

An dieser Stelle taucht eventuell die berechtigte Frage auf: Wieso nur 64 kByte? Mit Aufsätzen und Modulen aufgerüstet kann ich mehrere MByte mit dem KC verwalten! - Dies ist nur bedingt richtig, denn im KC wird der Adreßraum mittels einer PIO künstlich erweitert. Real kann auch der KC nur 64 kByte zur gleichen Zeit adressieren. Alles, was darüber hinaus geht, regeln das Betriebssystem und clevere Programme.

Die obige Abbildung zeigt die Architektur der Z80 CPU in einer Übersicht. Natürlich ist diese Abbildung stark vereinfacht. Sie soll dem besseren Verständnis der folgenden Prozessoren dienen.

Die Z180 MPU

Nein, nein, das ist kein Schreibfehler! ZILOG vereinte auf einem Chip eine Z80 CPU sowie diverse Peripherie, so daß der Begriff "CPU" nicht mehr ausreichend war. "MPU" steht für "Microprozessor Unit" (Microprozessor-Einheit). Neben dem Z80 kompatiblen CPU-Kern befinden sich noch folgende Elemente auf dem Chip:

  • Taktgenerator
    Es kann direkt aus einem externen Quartz der Systemtakt abgeleitet und dem System zur Verfügung gestellt werden.
  • Bus-Status-Kontrolle
    Über diese Einheit werden alle Bus-Aktivitäten der CPU und der Peripheriebausteine auf dem Chip gesteuert.
  • Interrupt-Kontrolle
    Dieses Modul nimmt alle Interrupts und Traps entgegen und gibt sie entsprechend ihrer Priorität an die CPU weiter.
  • MMU - Memory Management Unit
    Die MMU erlaubt der CPU (logisch nur 64 kByte) über verschiedene Bänke bis zu 1 MByte Speicher zu adressieren.
  • DMACs - Direct Memory Access Controllers
    Mit den DMA Controllern wird ein schneller Transfer von Daten zwischen Speicher und I/O Kanälen sowie untereinander ermöglicht. Die DMA Controller können dabei die vollen 1 MByte adressieren.
  • ASCI - Asynchronous Serial Communications Interface
    Durch die ASCI-Kanäle stehen zwei individuelle vollduplex UARTs zur Verfügung. Jeder Kanal enthält einen programierbaren Baudraten-Generator. Außerdem unterstützen die ASCI-Kanäle ein Format zur Kommunikation in Multiprozessorsystemen.
  • PRT - Programmable Reload Timer
    Beide Kanäle enthalten einen 16 Bit Zähler (Zeitgeber). Desweiteren erlaubt der Kanal 1 die Nutzung als Wellenform-Generator.
  • CSIO - Clocked Serial I/O
    Dies ist ein serieller Sender und Empfänger für den Halbduplex-Betrieb.

Auch der CPU-Kern wurde einer Modernisierung unterzogen. Es ist weiterhin die volle Kompatibilität zur Z80 CPU gegeben (legale Befehle). Zusätzlich sind noch ein paar neue Befehle dazugekommen. Außerdem wurde der Microcode verbessert, so daß einige Befehle mit weniger Maschinenzyklen auskommen. Dieser CPU-Kern wird auch als "Enhanced Z80 CPU" bezeichnet.

Ganz neu ist eine Interrupt-Art, die als Trap (Falle) bezeichnet wird. Ein solcher Trap wird ausgelöst, wenn ein illegaler Befehl auftaucht. Das funktioniert in etwa so: Wird bei der Abarbeitung ein unzulässiger Befehl entdeckt, löst dies einen Trap (ähnlich einem NMI) aus. Per Software kann nun geregelt werden, was dann geschehen soll (z. B. Abbruch des Programms und Meldung auf dem Bildschirm).

Dieses Blockschaltbild soll das Innenleben der Z180 MPU verdeutlichen. Der große Kasten oben stellt im wesentlichen die komplette Z80 CPU dar (enhanced).

Die Z280 MPU

So etwa im Jahre 1989 (man möge mir die Ungenauigkeit verzeihen) machte ZILOG mit dieser neuen MPU von sich reden. Mit diesem Chip wurde eine vollkommen neue CPU geschaffen, die die Brücke zwischen der Z80 Familie (8 Bit) und der Z8000 Familie (16 Bit) bilden sollte. Über eine Spannung an einem bestimmten Pin legt man die Arbeitsweise für den Bus fest: Z80 Bus oder Z-Bus (für Z8000 Systeme). Es wurde ein vollkommen neues Schaltkreiskonzept entwickelt, ohne Rücksicht auf die Kompatibilität zur Z180 MPU zu nehmen. Die Z280 MPU ist auch "nur" zur Z80 CPU voll kompatibel (legale Befehle) und nicht zur Z180 MPU.

Wie man schon an der Abbildung erkennen kann, ist kein Z80-Kern im eigentlichen Sinne mehr darauf zu finden. Die Ausführungseinheit enthält eine 16 Bit ALU und getrennte Stacks für einen User- und einen Systemmodus. Desweiteren befinden sich auf dem Chip: 1 Taktgenerator, 3 16-Bit CTCs, 4 16-Bit DMACs, 1 UART, 1 10-Bit Refreshadreß-Generator für DRAMs, 1 MMU, 1 externes Bus-Interface sowie ein 256 Byte großer Cache für Daten und Programm.

Um den Rahmen dieses Artikels nicht zu sprengen, erspare ich mir und Euch eine genauere Betrachtung der einzelnen Komponenten. Nur die interessantesten sollen erwähnt werden. Ebenso wie bei der Z180 MPU kann über die MMU der Speicher gebankt werden. Hier allerdings bis zu 16 MByte. Durch ein Drei-Ebenen-Pipelining wird ein höherer Datendurchsatz erreicht. Mit Hilfe des Cache (wenn auch nur bescheidene 256 Byte) kann die Leistung nochmals gesteigert werden.

Außerdem ist die Z280 MPU bestens für Multiprozessorsysteme vorbereitet. Es steht dazu ein Satz von Befehlen zur Verfügung. Apropos Befehle: Diese sind gegenüber der Z80 CPU gewaltig angestiegen (sowohl Anzahl als auch Leistungsfähigkeit). 16 Bit Multiplikation oder Division sind z. B. Standard. Übrigens werden auch von ihr die Traps unterstützt bzw. erzeugt.

Die Z380 MPU

Auch wenn man es kaum glauben mag: Erst 1994 ist diese MPU erschienen! Offensichtlich hat ZILOG der Absatz von 30 Millionen Z80 Bausteinen dazu bewogen, ihren Klassiker in einer 16 Bit Version mit 32 (!) Bit Registern neu aufzulegen. Das Ganze ist kein Scherz! Wenn auch nicht ganz Pentium-Klasse, so ist die Z380 MPU zumindest dicht dran...

Dieses Teil verfügt über 4 Registersätze und ist voll kompatibel zur Z80 CPU und zur Z180 MPU. Man kann das gute Stück gleich in vier verschiedenen Betriebsmodi laufen lassen. Das Ganze scheint so komplex zu sein, daß man dem Interessierten kein Blockschaltbild zumuten wollte (oder konnte). Daher gibt's auch zu dieser MPU keine Abbildung.

Ein paar Highlights dieses Wunderwerks der Technik möchte ich aber noch erwähnen. Bis zu 4 GByte (ja, ja GIGABYTE!) sind ohne MMU adressierbar. Der interne 16 Bit Datenbus und das Vier-Ebenen-Pipelining sorgen für mehr Leistung. Je nach gewähltem Betriebsmodus hat man jede Menge neuer Befehle zur Verfügung. Und neben den Traps gibt es hier noch eine Neuerung: Interrupts können verschachtelt werden.

Leider sind mir (noch) kein Systeme oder Anwendungen bekannt, die diese MPU verwenden. Das liegt aber sicherlich auch daran, daß es sie noch nicht lange gibt.

Kürzlich wurde allerdings mein Enthusiasmus in Bezug auf die Z380 MPU von Tilmann Reh gedämpft. Ihm verdanke ich meine wunderbare CPU280. In Sachen Z80 und CP/M stellt er in Deutschland gewiß eine Referenz dar. Er äußerte sich folgendermaßen zum Z380:

"Nach meinem Dafürhalten ist der Z380 kein Prozessor, sondern eine Krankheit. Die Hauptkrücke von dem Ding ist die völlig fehlende On-Chip-Peripherie. Keine Timer, keine Schnittstelle, nicht einmal eine MMU ist drauf. Also ist das Ding im Gegensatz zu Z180 und Z280 keine MPU, sondern eine reine CPU, was sie für den Einsatz in Single-Board-Rechnern absolut uninteressant macht.

Weiter ist die Erweiterung der Register und vor allem die Änderung bestimmter Eigenschaften im Protected-Mode inkompatibel zum Z80, so daß für Z80-Betriebssysteme wie CP/M nur der Real-Mode in Betracht kommt. Nicht einmal BIOS-Routinen können im Protected-Mode laufen, weil es keinen Weg zurück in den Real-Mode gibt... Du kannst es glauben: als ich das Datenblatt gelesen habe, habe ich die Hände über dem Kopf zusammengeschlagen!"

Soweit Tilmann Reh. Der Traum vom 32-Bit-CP/M scheint erstmal ausgeträumt. Doch vielleicht stürzt sich ja ein anderer auf den Z380 und macht was schönes draus. Eventuell eine Grafikkarte? Die vielen Register(sätze) machen es bestimmt möglich.

Zusammenfassung

Alles Quatsch! Für mich als KC-User alles nicht machbar! - Nicht so voreilig. Daß der KC, in welcher (Speicher-)Ausbaustufe auch immer, manchmal einfach zu langsam ist, haben ja schon etliche festgestellt. Also warum soll man dann nicht laut über Alternativen nachdenken?

Es muß ja nicht gleich eine Z380 MPU sein. Auch die guten alten Z80 CPUs gibt es schon mit höheren Taktfrequenzen. Allerdings gibt uns der KC aufgrund seines Aufbaus einige Nüsse zu knacken. Wegen der engen Verbindung der Bildschirmansteuerung mit dem Systemtakt kann dieser nicht so einfach "hochgeschraubt" werden.

Vielleicht fühlt sich der eine oder andere durch diesen Artikel angeregt, auf dieser Strecke etwas zu experimentieren. Falls jemand weitere Informationen zu den vorgestellten Schaltkreisen wünscht, kann er sich an mich wenden.

Zum Schluß noch eine Übersicht der Prozessoren. Hierin sind die erhältlichen Gehäuseformen und Taktfrequenzen ersichtlich:

Prozessor  QFP  DIP  PLCC  Cerdip   Takt (in Mhz)
 Z80 CPU    X    X    X      X      4,6,8,10,20
Z180 MPU    X    X    X      -      6,8,10,16*,20* *nur Static Version
Z280 MPU    -    -    X      -      10,12
Z380 MPU    Gehäuseform unbekannt   18