ZILOG läßt die Bytes tanzen
von Jörg Linder
Am 20. September 1999 erlebte ich bei meinem alltäglichen Streifzug durch die News des Heise-Verlages (www.heise.de) eine Überraschung. Die Schlagzeile ,,Z80: nicht totzukriegen`` prangte über einer Meldung, in der es im weiteren hieß, daß ZILOG auf der Grundlage des Z80-Designs einen neuen Prozessor mit dem Namen eZ80 entwickelt und diesen mit Internetfähigkeiten ausgestattet hat. Ein paar Klicks weiter im World Wide Web war bei ZILOG die Präsentation zu sehen:
Dort ist auch die technische Beschreibung zu finden, der ich die folgenden Informationen entnommen habe.
Der eZ80 gehört zu den schnellsten 8-Bit Prozessoren (für die Technikfans: zunächst 80 MIPS), die derzeit erhältlich sind. Bei gleichem Takt führt der implementierte Z80-Kern die Befehle viermal schneller aus als eine originale Z80-CPU. Durch höhere Taktraten ist sogar die 16-fache Leistung möglich. Hinzu kommt der 16 MB große, lineare Adreßraum, der entsprechend des gewählten Betriebsmodus Z80-kompatibel (64 kB), Z180-kompatibel (1 MB MMU) oder vollständig (24 Bit, 16 MB) verwaltet werden kann.
Neben der eigentlichen Recheneinheit (ALU, Arithmetic Logic Unit) verrichtet parallel dazu ein digitaler Signalprozessor in Form des MAC (Multiply and Accumulate Core) sein Werk. Additionen mit 40 Bit sowie 16-mal-16-Bit-Multiplikationen können damit berechnet werden.
Den Aussagen von ZILOG zufolge bildet der eZ80-Prozessor die Grundlage für eine ganze Familie von Microprozessoren. Diese werden mit unterschiedlicher Peripherie ausgestattet sein: UARTs, DMA, Serial I/O, Analog-Modem, Digital-Modem, A/D, D/A, Timer, I2C, MMU, Echtzeituhr usw. Ganz offensichtlich ist der eZ80 somit als Embedded-Chip konzipiert, was ZILOG durch das Angebot eines optimierten TCP/IP-Stacks unterstreicht.
Bis hierhin hört sich alles ganz gut an, aber das tat es bei Erscheinen des Z380 auch. Für die CP/M-Fans war diese CPU jedoch eine herbe Enttäuschung. Zu verlockend schienen die höheren Taktraten und der große Adreßraum zu sein, so daß immer wieder Ideen zur Verwendung in CP/M-Rechnern aufkeimten. Letztendlich scheiterten alle Theorien an der fehlenden Möglichkeit, die Betriebsmodi des Z380 während der Laufzeit beliebig wechseln zu können.
Daher ist es also von besonderem Interesse, wie ZILOG sich beim eZ80 dieser Problematik angenommen hat. Gleich vorweg: Es ist wieder Zeit, neue Ideen für CP/M-Hardware zu entwickeln!
Aber nun im Detail. Mit den verschiedenen Betriebsmodi ist es möglich, unveränderten Z80- und Z180-Code (in sog. virtuellen Z80- bzw. Z180-Bereichen) zusammen mit neuem Code in derselben Anwendung zu benutzen und somit vom 16 MByte großen Adreßraum und dem erweiterten Befehlssatz Gebrauch zu machen.
Vier Faktoren bestimmen den Betriebsmodus:
- ein Statusbit namens ADL (Address and Data Long)
- ein weiteres Statusbit namens mixed ADL
- ein 8-Bit-Register namens MBASE
- der Status der 80180-kompatiblen MMU (Memory Management Unit)
Nativer Z80 Modus: Die Statusbits ADL und mixed ADL sind ebenso wie das MBASE-Register auf 0 gesetzt, und die MMU ist inaktiv geschaltet. Im nativen Z80 Modus stehen 16-Bit-Register und 16-Bit-Adressen zur Verfügung. Der 64 kB große Arbeitsspeicher liegt am Beginn des potentiell 16 MB großen Adreßraumes des eZ80.
Virtueller Z80 Modus: Ist das Statusbit ADL gelöscht und die MMU abgeschaltet, jedoch im MBASE-Register ein von Null verschiedener Wert enthalten, dann umfaßt die Programmumgebung weiterhin 16-Bit-Register und einen 64 kB großen Adreßraum. Dessen Basisadresse wird allerdings vom Wert in MBASE bestimmt. Im virtuellen Z80 Modus können mehrere Tasks jeweils ihren eigenen Z80-Bereich haben.
Nativer Z180 Modus: Sind ADL und MBASE gleich Null, während die MMU aktiv geschaltet ist, dann ist die Programmumgebung vollständig Z80180-kompatibel. In diesem Fall stehen 16-Bit-Register und ein 64 kB großer, logischer Adreßraum zur Verfügung. Die logischen Adressen werden dabei von der MMU in physikalische Adressen von 20 Bit umgesetzt. Die 64 kB logischer Adreßraum können in ein bis drei Bereiche unterteilt werden, von denen zwei innerhalb der ersten 1 MB des maximal 16 MB umfassenden Adreßraum des eZ80 beliebig angeordnet werden können.
Virtueller Z180 Modus: Ist das Statusbit ADL gelöscht, die MMU aktiviert und in MBASE ein von Null verschiedener Wert enthalten, dann verwaltet die MMU die Umsetzung in physikalische Adressen für 1 MB virtuellen Adreßraum, dessen Basisadresse vom Wert in MBASE bestimmt wird. Auf diese Weise können mehrere Tasks jeweils in ihrem eigenen Z180-Bereich laufen.
ADL Modus: Wenn das ADL-Statusbit gesetzt ist, haben weder die MMU noch der Wert in MBASE Einfluß auf die Adressierung des Arbeitsspeichers. In diesem Modus werden der Programmladezähler (PC) sowie die Register BC, DE, HL, IX und IY von 16 auf 24 Bit erweitert. Anstelle des 16 Bit umfassenden Stackpointers (SPS, Stack Pointer Short) wird ein 24 Bit großer Stackpointer (SPL, Stack Pointer Long) benutzt. Erhält der Prozessor in diesem Modus unmittelbar Daten eines anderen Modus oder einen Befehl, der eine 16-Bit Adresse beinhaltet, dann werden diese 16-Bit-Werte automatisch in 24-Bit-Werte umgewandelt. Zur Erzeugung von Programmcode, der im ADL Modus ausgeführt wird, muß ein eZ80-kompatibler Compiler oder Assembler benutzt werden.
Der eZ80 schaltet zwischen dem ADL Modus und den anderen Modi nur über speziell eingeleitete CALL-, JP-, RET- oder RST-Befehle oder Interrupt-/Trap-Operationen um. Das MBASE-Register kann nur im ADL Modus verändert werden. Hingegen kann die MMU in jedem Modus programmiert werden. Allerdings muß der Programmierer darauf achten, daß der Programmladezähler währenddessen nicht verändert wird. Lediglich im ADL Modus muß darauf keine Rücksicht genommen werden.
Soweit zur technischen Beschreibung. Die weiteren Einzelheiten (Interrupt- und Trapbehandlung, Befehlsumfang usw.) möchte ich lieber den Experten überlassen. Alles in allem glaube ich aber, daß uns ZILOG mit dem eZ80 einen sehr interessanten Prozessor beschert hat, der mit Preisen zwischen 3 und 8 Dollar auch noch recht günstig ist.
Wie gesagt, wird es wieder Zeit, neue Ideen für CP/M-Hardware zu entwickeln!