Zilog Z8000 - Zilog Z8000

Zilog Z8000
Designer Zilog
Bits 16-Bit
Eingeführt 1979 ; Vor 42 Jahren ( 1979 )
Design CISC
Typ Register-Speicher
Verzweigung Zustandsregister
Vorgänger Z80
Nachfolger Z80000
Register
16× 16-Bit-Allzweck-
24-Bit-PC
16-Bit-Status
Zilog Z8000
M20 MB CPU.jpg
Z8001 auf dem Motherboard eines Olivetti M20-Computers
Leistung
Datenbreite 16 Bit
Adressbreite 23 Bit
Physikalische Spezifikationen
Pakete)

Der Z8000 (" zee- or zed-eight-thousand ") ist ein 16-Bit- Mikroprozessor , der Anfang 1979 von Zilog eingeführt wurde . Die Architektur wurde von Bernard Peuto entworfen, während die logische und physikalische Implementierung von Masatoshi Shima mit Unterstützung eines kleinen Gruppe von Leuten. Im Gegensatz zu den meisten Designs der Ära verwendete der Z8000 keinen Mikrocode , wodurch er in nur 17.500 Transistoren implementiert werden konnte.

Der Z8000 war nicht Z80- kompatibel, obwohl er viele der gut aufgenommenen Designnotizen enthielt, die den Z80 populär gemacht haben. Dazu gehörte die Möglichkeit, seine Register zu kombinieren und als einzelnes größeres Register zu verwenden - während der Z80 die Verwendung von zwei 8-Bit-Registern als einzelnes 16-Bit-Register ermöglichte, erweiterte der Z8000 dies um zwei 16-Bit-Register um als 32-Bit-Register zu arbeiten, oder vier, um als 64-Bit-Register zu arbeiten. Diese kombinierten Register waren besonders nützlich für mathematische Operationen.

Obwohl es für seine Zeit ein attraktives Design war und in den frühen 1980er Jahren einige Verwendung fand, war es nie so beliebt wie das Z80. Federico Faggin , der damalige CEO von Zilog, sieht einen Grund dafür darin, dass Zilog hauptsächlich im Besitz eines einzigen Investors war, Exxon Enterprises, der Ambitionen hatte, mit IBM zu konkurrieren . Als IBM das IBM PC- Projekt begann, sahen sie Zilog als Konkurrenten und wählten den Intel 8088 gegenüber dem Z8000, da Intel auf dem Computermarkt nicht als Konkurrenz angesehen wurde. Das Startdatum des Z8000 lag jedoch zwischen dem Intel 8086 (April 1978) und dem Motorola 68000 (September 1979), wobei letzteres eine 32-Bit- Befehlssatzarchitektur hatte und ungefähr doppelt so schnell war.

Der Zilog Z80000 war ein 32-Bit-Nachfolgemodell, das 1986 auf den Markt kam.

Merkmale

Z8000-Register
1 5 1 4 1 3 1 2 1 1 1 0 0 9 0 8 0 7 0 6 0 5 0 4 0 3 0 2 0 1 0 0 (Bitposition)
  Gruppierung
Hauptregister 16-Bit 32-Bit 64-Bit
RH0 RL0 R0 RR0 RQ0
RH1 RL1 R1
RH2 RL2 R2 RR2
RH3 RL3 R3
RH4 RL4 R4 RR4 RQ4
RH5 RL5 R5
RH6 RL6 R6 RR6
RH7 RL7 R7
  R8 RR8 RQ8
  R9
  R10 RR10
  R11
  R12 RR12 RQ12
  R13
  R14 RR14
  R15
Statusregister
S S N E V m - - - C Z S P O D ich h - F lags
Programm zähler
0 Segment 0 0 0 0 0 0 0 0 P rogram C ounter
Adresse

Der Z8000 wurde ursprünglich in zwei Versionen ausgeliefert; der Z8001 mit einem vollständigen 24-Bit-externen Adressbus , um auf bis zu 8 Megabyte Speicher zuzugreifen, und der Z8002 , der nur 16-Bit-Adressierung unterstützt, um 64 Kilobyte Speicher zu ermöglichen. Dadurch konnte der Z8002 acht Pins weniger haben und wurde in einem kleineren 40-Pin- DIP- Format geliefert , was die Implementierung kostengünstiger machte. Wie beim Zilog Z80 verfügt auch der Z8000 über eine integrierte DRAM- Refresh-Schaltung.

Die Serie wurde später um die Z8003 und Z8004 erweitert , aktualisierte Versionen der Z8001 bzw. Z8002. Diese Versionen wurden entwickelt, um eine verbesserte Unterstützung für virtuellen Speicher bereitzustellen , neue Statusregister hinzuzufügen, um Segmentierungsfehler (Test und Set) anzuzeigen und eine Abbruchfähigkeit bereitzustellen.

Der Registersatz bestand aus sechzehn 16-Bit-Universalregistern, die mit R0 bis R15 bezeichnet sind. Die Register können in acht 32-Bit-Register mit der Bezeichnung RR0/RR2/../RR14 oder in vier 64-Bit-Register mit der Bezeichnung RQ0/RQ4/RQ8/RQ12 verkettet werden. Die ersten acht Register können auch in sechzehn 8-Bit-Register unterteilt werden, die mit RL0 bis RL7 für das untere Byte und RH0 bis RH7 für das obere (hohe) Byte bezeichnet sind. Register R15 wird als Designated Stapelzeiger . Beim Z8001 wird das Register R14 verwendet, um dem Stapelzeiger einen festen Offset hinzuzufügen, und der Programmzähler wird auf 32 Bit erweitert, um einen ähnlichen Offset zu enthalten.

Es gab sowohl einen Benutzermodus ("normal") als auch einen Überwachungsmodus , ausgewählt durch Bit 14 im Merkerregister. Im Supervisor-Modus zeigen die Stack-Register auf den System-Stack und alle privilegierten Befehle sind verfügbar. Im Benutzermodus zeigen die Stack-Register auf den normalen Stack und alle privilegierten Befehle erzeugen einen Fehler.

Die von Zilog Z8002

Speicherhandling

Der Z8000 verwendet eine segmentierte Speicherkarte mit einer 7-Bit-"Segmentnummer" und einem 16-Bit-Offset. Beide Nummern wurden beim Z8001 durch Pins dargestellt, was bedeutet, dass er einen 23-Bit-Speicher oder 8 MB direkt adressieren konnte. Intern konnten Befehle jedoch nur innerhalb des 16-Bit-Offsets direkt auf Daten zugreifen. Dadurch konnte das Anweisungsformat kleiner sein; ein System mit direktem Zugriff auf eine 23-Bit-Adresse müsste für jede im Code genannte Adresse drei Bytes (24-Bit) aus dem Speicher lesen, was also zwei Lesevorgänge auf einem 16-Bit-Bus erfordert. Bei Segmenten benötigten die Adressen nur einen einzigen 16-Bit-Lesevorgang und die Segmentnummer musste nur aktualisiert werden, wenn die Daten die 16-Bit/64-KB-Grenzen überschritten. Dies kann die Gesamtleistung verbessern, wenn die Daten innerhalb von 64-KB-Spannweiten angeordnet werden können.

Die optionale 48-Pin Z8010 Memory Management Unit (MMU) erweiterte die Speicherzuordnung auf 16 MB, indem sie die 23-Bit-Adresse von der CPU in eine 24-Bit-Adresse übersetzte. Intern enthielt es eine Liste von 64 Segmenten und einen 8-Bit-Zeiger auf die physische Position dieses Segments im RAM. Wenn die CPU versuchte, auf ein bestimmtes Segment zuzugreifen, übersetzte der Z8010 dies in eine 8-Bit-Adresse auf dem Adressbus und gab dann den 16-Bit-Offset unverändert weiter. Dies ermöglichte es, mehrere Programme im physischen RAM zu verteilen, wobei jedes seinen eigenen Arbeitsraum erhielt, während man glaubte, auf die gesamten 8 MB RAM zuzugreifen. Die Segmente waren variabel lang und wurden auf bis zu 64 KB erweitert, um den Zugriff auf den gesamten Speicher von 64 Segmenten aus zu ermöglichen. Wenn mehr als 64 Segmente benötigt werden, können mehrere Z8010 verwendet werden. Der Z8010 war zum Zeitpunkt der Markteinführung nicht verfügbar und kam schließlich neun Monate bis zu einem Jahr zu spät.

Mit der Veröffentlichung des Z8003/Z8004 wurde der Z8015 in die Produktpalette aufgenommen und bietet Unterstützung für ausgelagerten Speicher . Der Hauptunterschied besteht darin, dass der Z8015 den Speicher in 64 2-KB-Blöcke aufteilt, während der Z8010 den Speicher in 64 Blöcke variabler Größe mit jeweils bis zu 64 KB aufteilt. Darüber hinaus erweitert der Z8015 die Segmentnummer von 7 auf 12 Bit und verwendet diese dann als höchstwertige Bits der 23-Bit-Gesamtadresse, wobei die oberen Bits des ursprünglichen 16-Bit-Offsets überschrieben werden. Der Vorteil dieses Zugriffsschemas besteht darin, dass es einfach ist, 2-KB-Blöcke auf eine Festplatte zu lesen oder zu schreiben , sodass dieses Muster eher dem entspricht, was letztendlich bei einem Segfault passiert.

Z8000 CPU-basierte Systeme

In den frühen 1980er Jahren war die Zilog Z8000 CPU für Unix- Rechner in Desktop-Größe beliebt . Diese kostengünstigen Unix-Systeme ermöglichten es kleinen Unternehmen, ein echtes Mehrbenutzersystem zu betreiben und Ressourcen (Festplatte, Drucker) gemeinsam zu nutzen, bevor Netzwerke üblich waren. Sie hatten normalerweise nur serielle RS232- Ports (4-16) und parallele Druckerports anstelle von eingebauten Grafiken, wie es für Server der damaligen Zeit typisch war.

Zu den Z8000-basierten Computersystemen gehörten Zilogs eigene System 8000-Serie sowie andere Hersteller:

  • Januar 1980: C8002 von Onyx Systems verwendet den Z8001, lief unter Unix System III , kam mit C- und FORTRAN 77-Compilern und hatte auch einen verfügbaren COBOL-Compiler. Es hatte 8 serielle Ports, 1 QIC-Bandlaufwerk, eine einzelne 8-Zoll-Festplatte und kostete etwa 25.000 US-Dollar. Der Hauptprozessor lagerte die Festplatten-, Band- und seriellen E/A-Operationen an einen Z80-Prozessor auf einem zweiten Board aus.
  • 1982: Olivetti M20 , ein nicht IBM-kompatibler PC, auf dem Olivetti PCOS, ein Derivat von COSMOS oder CP/M, ausgeführt wurde.
  • 1980-1986: Olivetti Linea 1 S1000, S6000, M30, M40, M50, M60, M70. Diese Minicomputer von Olivetti liefen alle mit BCOS/COSMOS.
  • 1985: das abgebrochene Commodore 900- Computerprojekt
  • 1987–1989: Die ostdeutschen EAW ( Elektro-Apparate-Werke ) produzierten das Workstation/Multiuser System P8000 basierend auf dem ostdeutschen U8000-Klon des Z8000.

Der Zilog S8000- Computer wurde mit einer Unix-Version namens ZEUS (Zilog Enhanced Unix System) herausgebracht. ZEUS war eine Portierung von Unix Version 7 und beinhaltete die sogenannten "Berkeley Enhancements". ZEUS enthielt eine Version von COBOL namens RM/COBOL (Ryan McFarland COBOL). Die Verfügbarkeit von RM/COBOL ermöglichte die schnelle Portierung vieler kommerzieller Anwendungen auf den S8000-Computer, was jedoch dem langfristigen Erfolg nicht zuträglich war. Der S8000 hatte einige Erfolge beim IRS und bei den Steuererstellern in den Vereinigten Staaten, die das Modell zur Verarbeitung elektronisch eingereichter Steuererklärungen verwendeten.

Es gab eine Z8000-Version des Xenix- Betriebssystems. Namco verwendet die Z8000-Serie in seinen Pole Position und Pole Position II Arcade-Spielen. Die Maschinen verwendeten zwei Z8002, die 64-KB-Versionen des Z8000.

Die gemeldete Aufnahme des Geräts in militärische Designs liefert vielleicht eine Erklärung für das weitere Überleben des Z8000 heute in Form der Z16C01/02 Serial Communication Controller (SCC). Auch der Standard Central Air Data Computer (SCADC) nutzte den Z8002. Die End-of-Life-Mitteilung von Zilog wurde 2012 verschickt.

Begrenzter Erfolg

Während der Z8000 in den frühen 1980er Jahren eine gewisse Verwendung fand, wurde er relativ schnell für andere Designs übergangen.

Federico Faggin , der damalige CEO von Zilog, schlug später vor, dass dies auf Zilogs Finanzierungsvereinbarung mit Exxons Risikokapitalarm Exxon Enterprises zurückzuführen sei. Unternehmen hatten eine Reihe von Investitionen im Computerbereich getätigt und positionierten sich Anfang der 1980er Jahre als Konkurrent von IBM im Bereich der großen Systeme. Faggin weist darauf hin, dass IBM Zilog daher als Konkurrenten sah und sich weigerte, den Z8000 daher in Betracht zu ziehen.

Eine Untersuchung der Wahlmöglichkeiten, die Designern in den frühen 1980er Jahren zur Verfügung standen, legt jedoch nahe, dass es eher prosaische Gründe gibt, warum die Z8000 nicht beliebter war:

Beim Vergleich der Assemblersprachversionen des Byte Sieve sieht man, dass die 1,1 Sekunden des 5,5 MHz Z8000 beeindruckend sind im Vergleich zu den 8-Bit-Designs, die es ersetzt hat, einschließlich Zilogs 4 MHz Z80 mit 6,8 Sekunden und dem beliebten 1 MHz MOS 6502 mit 13,9. Selbst das neuere 1-MHz- Motorola 6809 war mit 5,1 Sekunden deutlich langsamer. Auch gegen den 8-MHz- Intel 8086 mit einer Zeit von 1,9 Sekunden oder den günstigeren 5-MHz- Intel 8088 mit 4 Sekunden schneidet es gut ab.

Während die Intel-Prozessoren vom Z8001 leicht übertroffen wurden, waren sie in 40-Pin-DIPs verpackt, was ihre Implementierung kostengünstiger machte als die 48-Pin-Z8001. Der Z8002 verwendete ebenfalls ein 40-Pin-Gehäuse, hatte jedoch einen 16-Bit-Adressbus, der nur auf 64 KB RAM zugreifen konnte, während die Intel-Prozessoren einen 20-Bit-Bus hatten, der auf 1 MB RAM zugreifen konnte. Intern waren die 23-Bit-Adressen des Z8000 auch komplexer zu verarbeiten als das einfachere System von Intel, das 16-Bit-Basisadressen und separate Segmentregister verwendet. Für diejenigen, die nach einer kostengünstigen Option suchen, die auf (damals) große Speichermengen zugreifen kann, waren die Intel-Designs wettbewerbsfähig und über ein Jahr zuvor erhältlich.

Für diejenigen, die auf der Suche nach reiner Leistung waren, war die Z8000 Anfang 1979 die schnellste verfügbare CPU. Dies galt jedoch nur für einen Zeitraum von wenigen Monaten. Das 16/32-Bit 8 Mhz Motorola 68000 kam noch im selben Jahr auf den Markt und dreht in einer Zeit von 0,49 Sekunden im gleichen Siebtest mehr als doppelt so schnell wie der Z8000. Obwohl es ein noch größeres 64-Pin-DIP-Layout verwendete, war dies für diejenigen, die bereit waren, auf mehr als 40-Pin umzusteigen, ein geringer Preis für den bei weitem schnellsten Prozessor seiner Ära. Seine 32-Bit-Befehle und -Register, kombiniert mit einem 24-Bit-Adressbus mit flacher 16-MB-Adressierung, machten ihn auch für Designer viel attraktiver, was Faggin zugibt.

Um die Probleme noch zu verstärken, enthielt der Z8000 bei seiner ersten Veröffentlichung eine Reihe von Fehlern. Dies lag an seinem komplexen Befehlsdecoder, der im Gegensatz zu den meisten Prozessoren der damaligen Zeit keinen Mikrocode verwendete und von einer direkt in der CPU implementierten Logik abhängig war. Dies ermöglichte es dem Design, den Mikrocodespeicher und die zugehörige Decodierungslogik zu eliminieren, was die Transistorzahl auf 17.500 reduzierte. Im Gegensatz dazu verwendete der zeitgenössische Intel 8088 29.000 Transistoren, während das Motorola 68000 einige Monate später 68.000 verwendete.

Zweite Quellen

Mehrere Drittanbieter stellten das Z8000 her, darunter AMD , SGS-Ates , Toshiba und Sharp .

Verweise

Weiterlesen