Home Computer x86 Prozessoren Site Map counter

Der Intel 8080 - der Vater der PC Revolution

Einleitung

Als im Jahre 1973 die High-Voltage NMOS Technologie für die 4K-DRAM produktionsreif war und Intel an neuen Gehäusen für eine neue Chipgeneration arbeitete, überlegte man ob man den 8008 Prozessor überarbeiten sollte. Der 8008 war im April 1972 erschienen. Die PMOS Technologie limitierte die Taktfrequenz auf 0,5 MHz und da Prozessoren als ein "Low-Volume" Artikel galten (und das traf bisher auch zu) wollte man für sie kein neues Gehäuse konstruieren sondern verwendete das größte das für andere Chips gerade in der Produktion war. Dies war bei 8008 ein 18 Pin Gehäuse. Da der Chip aber (bei herkömmlicher Auslegung) 14 Adressleitungen und 8 Datenleitungen benötigt hätte, mussten alle Daten und Adressen nacheinander über nur acht Leitungen eines kombinierten Daten- und Adressbusses transferiert werden. Das größere Gehäuse hatte auch den Vorteil das es bis zu 1,2 Watt an Verlustleistung abgeben konnte, damit konnte man mehr Transistoren in den Prozessor packen.

Shima machte fünf Schwächen des 8008 aus:

8080AEine Untersuchung zeigte, das man nicht einfach die Masken von PMOS nach NMOS übernehmen konnte, wenn man also ein neues Design machen musste, dann wäre es folgerichtig den Prozessor zu verbessern. Intel untersuchte auch, in wie weit man den Prozessor modernisieren und leistungsfähiger machen konnte. Die Technologie versprach eine Verkleinerung der Strukturen und damit mehr Transistoren auf der gleichen Fläche. Zur Option standen drei Varianten:

Die dritte Variante war zwar die leistungsfähigste Variante, aber sie hatte zwei entscheidende Nachteile. Das eine war das sie nicht kompatibel zu den bisherigen Programmen war. Die beiden anderen Erweiterungen erweiterten den Befehlssatz, aber bisherige 8008 Programm liefen weitgehend wenn man den Assemblertext neu kompilierte. Aufgrund der zusätzlichen Instruktionen, die nun auch ohne Adressen zwei Byte lange Befehle ergaben war der 8080 nicht binärkompatibel zum 8008, aber der Assemblerquelltext war identisch. Die Einführung von Displacement-Adressen in Befehle die vorher keine Adressen enthielten wie Mov A,M war anders als die ersten beiden Lösungen aber nicht kompatibel zum Assembercode des 8008.

Die zweite Problematik war die Indizierungsberechnung der Adressen und eine normale 16 Bit Adressierungsberechnung sich gegenseitig ausschlossen, zumindest mit der Transistorzahl, die man auf der gegebenen Fläche unterbringen konnte. Diese war aber für Datenmanipulation noch gewünscht.

So setzte man die mittlere Lösung um. Ziel war, das der neue Prozessor durch höheren Takt aber auch das Wegfallen des Übertragen der Daten und Adressen über nur einen 8-Bit Bus und leistungsfähigere Befehle um den Faktor 10 bis 20 schneller war als sein Vorgänger.

Architektur

8080 ArchitekturIntel bezeichnet den 8080 als eine "unsymmetrische Erweiterung des 8008". Das bedeutet, dass der 8080 alle Fähigkeiten des 8008 hat, aber darüber hinaus einige Spezialfeatures, die Architektur aber nicht durchgehend erweitert wurde. So ist der 8080 nach wie vor ein Prozessor der vor allem 8-Bit Werte (Byte) verarbeitet. Man hat ihn aber um einige 16 Bit Operationen erweitert. Symmetrisch wäre, wenn nicht nur einige, sondern alle Operationen nun auch mit 16 Bits möglich wären.

Intel nutzte erstmals die Erfahrungen der Kunden. So gab man 400 Abnehmern des 8008 unter Abgabe eine Verschwiegenheitserklärung die Spezifikationen des neuen Chips mit der Bitte um Rückmeldung. 100 Antworteten und es kristallisierte sich heraus, das zusätzlich zu den schon bekannten Mängeln des 8008 die es abzustellen galt für die Kunden die Komptabilität zu ihrer schon entwickelten Software wichtig war. Daher enthielt der 8080 alle Befehle des 8008.

Übernommen wurde der Registersatz und deren Bedeutung. So gibt es 7 x 8 Bit breite Register. Eines, der Akkumulator A hat nach wie vor eine besondere Bedeutung. In ihm landen alle Ergebnisse von 8 Bit Rechnungen und er ist immer auch ein Operand bei 8-Bit Register-Register Rechnungen. Die anderen sechs Register (B,C,D,E,H,L) dienen primär als Zwischenspeicher in der CPU.

Der Programmzähler wurde von 14 auf 16 Bits erweitert, da nun der Adressbereich 64 anstatt 16 KByte betrug. Das war intern keine große Änderung da bisher der Speicher über das Register "M" angesprochen wurde (M für Memory). Dieses stand für die Adresse die in den Register H und L lag (L: Lower Byte, H: Higher Byte). Nur konnte man diese 16 Bit Adressierung bisher nicht nützten weil man in den Opcodes noch zwei Kontrollbits im zweiten und dritten Byte brauchte. Dies ergab sich aus dem gemultiplexten Bus. Da schon in den frühen siebziger Jahren die Kapazitäten der RAM-Chips rasch anstiegen, war klar, dass der Adressbereich von 16 Kbyte nicht mehr ausreichen würde, selbst 64 KByte erschienen als nicht sehr viel. Als der Prozessor erschien hatten die größten Speicherchip 4 KBit Größe, man brauchte 128 dieser für 64 KByte. Mit den 1979 erschienen 64 KBit Chips waren es nur acht (weniger ging aufgrund der internen Architektur mit 64 K x 1 Bit meistens nicht, da man für ein Byte acht Speicherchips eines für jedes Bit brauchte).

Es gab ein weiteres Bit im Flagregister, das Auxilary Bit. Man benötigte es für die damals noch wichtige BCD Rechnung. Es signalisierte einen Überlauf von Bit 4 nach Bit 5.

Die größte Änderung gab es beim Stack. Der 8008 hatte einen internen Stack von nur 8 Einträgen. Einer davon war der Programmcounter. der Stackpointer war daher nur 3 Bits breit. Der 8080 erhielt einen 16 Bit breiten, seperaten Programmcounter und Stackpointer. Instruktionen erlaubten es nun erstmals beide Zeiger programmtechnisch zu beeinflussen, So war es möglich an Adressen zu springen die nicht direkt im Code abgelegt waren und den Stack im Arbeitsspeicher zu verschieben.

Die 16-Bit Erweiterung funktionierte dahingehend, dass man die schon beim HL genutzte Zusammenfassung von zwei 8 Bit Registern zu einem 16 Bit Register nun auch beim BC und DE Register funktionierte. Die 16-Bit breiten Daten bezeichnete man als Wort. Allgemeine 16 Bit Operationen umfassen das Dekrementieren/Inkrementieren eines Worts. Das schon beim 8008 mit einer besonderen Bedeutung versehenen Register HL behielt diese bei und sie wurde sogar noch ausgebaut. So arbeiteten alle 16-Bit-Additionen mit HL als einer Quelle und Zielregister. HL konnte dem Stackpointer und Programmzähler zugewiesen werden Ein Befehl vertauschte DE und HL.Register. Für das BC Register gab es diesen Spezialbefehl nicht.

Die 8-Bit Befehle hatten sich nicht geändert. Nach wie vor konnte man mit 8 Bit Operanden addieren, subtrahieren (jeweils mit oder ohne Carry), Und, Oder, XOR Verknüpfungen und Vergleiche durchführen. Bei diesen Zwei-Operanden Befehlen war jeweils ein Operand das A-Register und dort landete auch das Ergebnis. Inkrement und Dekrementbefehle arbeiteten mit jedem 8-Bit Register. Die Sonderstellung von A zeigte sich auch das die vier Rotationsbefehle (jeweils nach links und rechts mit und ohne Carry) nur mit Register A gingen. Ebenso konnte nur der Akkumulator A Zahlen aus dem Speicher (Register M) mit A verknüpfen (Addition, Subtraktion, Logische Operationen, Vergleich).

8080 Die FotoDie Adressierungsmodi waren:

Die 16 Bit Ladebefehle, wie auch die neuen 16 Bit Artithmetikbefehle hatten nun einen Bruch in der Benennung. Beim 8008 war das HL-Register herausragend, weil nur darüber der Speicher adressiert werden konnte. Intel hatte beim 8008 dafür die Bezeichnung "M" für "Memory" eingeführt. Nun konnte dies auch durch DE und BC geschehen, doch die Mnemonics waren nun unterschiedlich:

ebenso ging es bei den anderen Befehlen zu sodass sich unter den Mnemonics Mov, MVI, LDAX, LDA,STA, STAX,LHLD,SHLD,LXI,SPHL alles Ladeopertationen verbargen. Der Zilog Z80 beseitigte dieses Durcheinander durch eine saubere Schreibweise:

LD Ziel,Quelle

wobei Ziel ein 8-Bit Register oder 16-Bit Register oder eine Adresse war, Quelle ein Register, eine Konstante, eine Adresse (in runden Klammern um sie von Konstanten zu unterscheiden) oder eine Adresse die in einem Register stand (auch hier runde Klammern, z.B. LD A,(HL) - Lade A mit dem Inhalt der Speicherstelle deren Adresse in HL steht. Insgesamt findet der Autor die Intel Mnemonics wegen ihrer recht komischen Kürzel wenig einprägsam.

Ein Manko des 8080 waren die bescheidenen Interruptfähigkeiten. Der 8008 hatte gar keine richtigen Interruptfähigkeiten. Interrupts können überall passieren und neben der Fähigkeit, das unterbrochene Programm wiederaufnehmen zu können, muss man dafür auch die Register sichern. Dies konnte der 8080 genauso wenig wie der 8008. Als Ersatz für Interruptroutinen bot Intel beim 8008 8 Restartroutinen an, das waren Calls zu 8 festen Adressen in den ersten 64 Bytes des Adressraumes jeweils um 8 Byte auseinander. Als neue Befehle gab es die Möglichkeit externe Interruptsignale zuzulassen (EI - enable Interrupts) und zu sperren DI (Disable Interrupts). Dies galt nur für Signale die über en Interrupt Pin hereinkamen. Ein nichtmaskierbarer Interrupt der durch ein Signal am NMI Port ausgelöst wurde bewirkte das die CPU das Programm abbrach und ein Unterprogramm an Adresse 56 (RST 7) ausführte.

Deutlich erweitert wurden die IN/Out Fähigkeiten. Der 8008 konnte acht Eingabe und 24 Ausgabeports ansprechen. Der 8080 erweiterte dies auf 256 Ports. Die Portnummer stand nun im zweiten Byte anstatt direkt im Opcode, das hatte auch den Vorteil dass so 30 Opcodes für neue Befehle frei wurden.

Die Sprung und Verzweigungsbefehle waren die gleichen wie beim 8008. Hier wurde das neue Auxilary Flag nicht ausgewertet.

Dazu kamen noch einige Spezialbefehle, die alle mit den Flagregister zu tun hatten CMA bildete das Komplement von A, CMC invertierte das Carryflag, STC setzte es und DAA passte den Inhalts eines Akkumulators an. Er wurde für die BCD Addition benötigt. (BCD Rechnungen wurden als Datenformat nicht unterstützt, aber mit DAA konnte der Inhalt in eine BCD Ziffer umgewandelt werden).

Neben den extern sichtbaren Registern gab es ein internes Registerpaar WZ zum temporären Speichern von Daten.

Wie beim Vorgänger lag bei Adressen das niedrigwertige Byte bei der ersten Adresse und das höherwertige ein Byte höher. Diese "falsche" Anordnung hatte man vom 8008 übernommen der sie wiederum einführte weil er einen bitseriellen Prozessor in einem Terminal einsetzen sollte. Auch der Stackpointer wuchs nach unten, man gab also beim Anlegen des Stacks dessen höchste Adresse an. Bis heute hat jeder x86-kompatible Prozessor diese Anordnung geerbt und sogar inzwischen auf 32 und 64 Bit lange Daten ausgedehnt. Die meisten anderen Architekturen legen das höherwertige Byte zuerst ab, so wie wir auch Zahlen schreiben.

Die schnellsten Befehle waren einfache Rechenoperationen sie brauchten 4 Takte (ebenso der Befehl NOP), ein 8-Bit Registertransfer dauerte komischerweise länger, nämlich 5 Takte. Der langsamste Befehl war XTHL - tausche den Wert auf dem Stack mit HL. Er brauchte 18 Takte. Ein Maschinenzyklus bestand aus 3 bis 5 Takten und es gab die Maschinenzyklen Fetch - Memory Write/read - Memory Read/werite. Im Fetch waren auch Dekodierung und Ausführung reiner Register/Registeroperationen enthalten. Diese Befehle dauerten daher nur 4-5 Takte. Wurden Daten geladen oder gespeichert so dauerte dies 7/10 Takte (je nachdem ob es ein Byte oder zwei Byte waren, pro Byte Transfer ein Maschinenzyklus. Die längsten Befehle die einen Fetch und zwei 16 Bit Transfers umfassten dauerten 18 Takte oder 5 Maschinenzyklen.

Einsatz

Altair8800Der 8008 war nicht einfach einzusetzen. Der multiplexte 8-Bit Bus machte einige Zusatzbausteine nötig um die Signale wieder zu entwirren. Ein Minimalsystem mit einem RAM und ROM Baustein und einem I/O Baustein benötigte beim 8008 etwa 20 Chips.

Der 8080 war hier eine deutliche Verbesserung aber er war noch nicht so weit, das der Mikroprozessor keine Unterstützung brauchte. Der 8080 brauchte natürlich wie jeder andere Prozessor RAM, ROM und einen Ein/Ausgabebaustein. Darüber hinaus brauchte der 8080 aber noch einen Clockgenerator und einen Buscontroller. So brauchte er für ein Minimalstem sechs Chips. Andere Mikroprozessoren wie der Z80 kamen mit vier Chips aus (Prozessor, I/O Baustein, RAM, ROM).

Der Taktgenerator musste den zweiphasigen Takt für den 8080 generieren. Durch diese zwei Phasen konnte man nicht einen Oszillatorkristall direkt anschließen. Der Taktgenerator 8224 generierte aus einem 20 MHz Takt über einen 4 Bit Zähler die beiden Synchronisationpulse, die sich nicht überlappen dürften. Daneben konnte er externe DMA, WAIT und SYNC Signale so verknüpfen, dass sie an die entsprechenden CPU Pins übergeben werden konnten ohne das man ein Und/Oder Gatter brauchte. Daneben akzeptierte die 8080A bei ihren Taktsignalen keine Standard TTL-Pegel. Der 8224 lieferte die Pegel, welche die CPU benötigte.

Der zweite Baustein, der 8228 Buscontroller, war nötig weil das Ready Signal eine komplexe Set-up and Hold Sequence brauchte. Dies würde normalerweise durch ein internes Flip-Flop gelöst werden. Das die CPU in MOS Bauweise erstellt wurde, wählte Intel aber eine andere Lösung. Die Implementation des 8228 erfolgte in der Schottky Bipolar-Technik, die schneller ist. So gewann man 200 ns bis, man wusste ob die CPU auf ein Signal warten musste oder nicht. Weiterhin erlaubte es den Anschluss von anderen Bausteinen direkt ohne weitere Schaltungen. Da die CPU minimal 3,3 V für Eingangssignale brauchte, war es zudem nicht möglich gängige RM-Bausteine die 2 bis 2,8 V maximal für High-Signale erzeugten direkt anzuschließen. Darüber hinaus war der Strom gerade noch ausreichend für einige Bausteine, aber nicht für ein größeres System. Der Buscontroller 8228 verstärkte Input Signale auf mindestens 3,3 V und verstärkte Ausgangssignale und erlaubte so mehr Bausteine am Systembus ohne Pufferung.

Diese Folgen kamen auch durch die Wahl der Eingangsspannungen. Der 8080 benötigte drei Spannungen: -5 V, +5 V und 12 V. er war daher auch für die damalige Zeit ein Baustein der ein relativ aufwendiges Umfeld brauchte. Die kurz darauf erschienen Konkurrenten 6800 und 6502 waren da nicht so zimperlich. Sie basierten auf einer neuen NMOS Technologie die keine so hohen Spannungen benötigte. So betrug die Wärmeabgabe der 6800 CPU auch nur maximal 1 Watt, beim 8080A waren es 1,5 Watt.

Geschichte

DatamasterGeschaffen wurde die Architektur von Federico Faggin. Faggin war schon bei dem früheren Prozessor 4004 beteiligt. Bei dem 4004 stellte er das Design fertig, das Ted Hoff anfing. Doch der 8080 war "seine Architektur". Er bekam die Erlaubnis des Managements im Sommer 1972 und hatte im November 1972 das Design fertiggestellt. Das Management sah damals die Prozessoren nicht als besonders dring an. Es wären "Low Volume" Bausteine, die man eigentlich nur weiter verfolgte, weil jeder Mikroprozessor noch eine Nachfrage nach weiteren Bausteinen generierte. Vor allem RAM und ROM, allerdings der 8008 nach ungefähr 20 weiteren Bausteinen die man brauchte um Adress- und Datenbus zu entwirren. Man verlor während der Entwicklung des 8080 viel Zeit. Den 8008 hatte Intel eineinhalb Jahre vor dem nächsten Konkurrenten herausgebracht, der 6800 als zweiter 8-Bit Prozessor folgte dagegen schon ein halbes Jahr nach dem 8080. Das besserte sich auch später nicht. Faggin wurde befördert, damit aber von der Entwicklung abgeschnitten. Er resignierte und verließ Intel im November 1974 und gründete Zilog. Diese Firma sollte Intels stärkster Konkurrent im 8 Bit Bereich werden. Das Design bis zur Generierung der Masken wurde in 16 Monaten vom Sommer 1972 bis Januar 1974 fertiggestellt. Dann übernahm die Gruppe welche das Design in die Serienproduktion überführte,

Im Dezember 1973 liefen die ersten 8080 nach Intels eigenen Angaben von der Produktionsstraße. Praktisch alle Angaben, die man heute im Web findet beziehen sich aber auf den 8080A, der nur wenig später im April 1974 ausgeliefert wurde. Nach Intels Angaben unterscheidet er sich durch die Fähigkeit TTL-Level zu erzeugen und ein verbessertes Timing. Der ursprüngliche 8080 konnte nur TTL-Bausteine mit einer sehr niedrigen Stromaufnahme ansprechen. Der 8080A wurde daher nachgeschoben und soweit dem Autor bekannt, basieren alle Computer die mit dem 8080 gebaut wurden auf dem 8080A.

Der 8080A war ausgelegt für einen Takt von 0,32 bis 2 MHz. Der ursprüngliche 8080 scheint nirgendwo verwendet worden sein, selbst Bilder die man im Web findet zeigen alle den 8080A, selbst aus Boards aus dem Jahr 1974. Es scheint so als hätte Intel erst 1974 die ersten Prozessoren an Kunden ausgeliefert und dann gleich den 8080A. Später folgte noch der 8080A-1 mit einer Maximaltaktfrequenz von 3,125 MHz und der 8080A-2 mit einer maximalen Taktfrequenz. Der 8080 wurde anders als sein Vorgänger sofort zum Verkaufsschlager innerhalb von 5 Monaten hatte er die Entwicklungskosten wieder hereingespielt.

Mit dem 8080 begann die Mikrocomputerrevolution. Er steckte im Januar 1975 angekündigten Altair 8800. Bis MITS die ersten Rechner ausliefern konnte war es jedoch Mai 1975. Diese Frist von über einem Jahr von der Ankündigung der ersten Prozessoren bis zu den ersten Produkten wäre heute wohl undenkbar, manches Prozessormodell ist heute nicht mal so lange auf dem Markt. MITS hatte neben dem kleinen Personalstand auch mit einigen Eigenheiten des Prozessors zu kämpfen. So brauchten sie Monate, bis sie Erweiterungskarten mit dynamischen RAM stabil zum Laufen bekamen. Es zeigte sich das der 8080 mit seinen Zusatzbausteinen Probleme hatte den Refreshtakt für die Bausteine zuverlässig zu erzeugen. Erst die 8080A-1/-2 lösten dieses Problem.

Sehr schnell griffen viele Firmen die Idee von MITS auf, und bauten eigene Mikrocomputer. Einige als Klone des Altair, andere waren eigene Entwicklungen. 1975/76 erschienen dann auch die ersten Konkurrenten. So der Motorola 6800 und etwas später der 6501/6502, ein Klon des 6800. Von diesen sollte vor allem der 6502 zu einem vitalen Konkurrenten werden, weil er sehr viel billiger angeboten wurde. MOS hatte auf einige Teile des 6800 verzichtet um die Ausbeute zu erhöhen und bot den Chip für 25 Dollar an. Das war damals enorm günstig, denn der Intel kostete bei Einführung 360 Dollar und zwei Jahre später als MOS den Markt betrat immer noch 175 Dollar. Die 360 Dollar waren für einige CPU Generationen immer der Einstiegspreis für den neusten Intel-Prozessor. der Preis lehnte sich an die IBM 360 an, den Verkaufsschlager von IBM. (Angeblich soll er deswegen gewählt worden sein, weil die "gefühlte" Rechenleistung die gleiche wie an einem Terminal an einer IBM 360 war. Die 6800/6502 kamen ohne Zusatzbausteine und mit nur einer Spannung aus. Da beide Prozessoren bei jeder Taktflanke einen Takt auslösten kamen sie auch mit einem halb so großen Takt aus (Bei 1 MHz führte ein 6800 in etwa gleich viele Instruktionen wie ein 8080 bei 2 MHz aus). Faggin hielt den wenige Monate nach dem 8080 erschienen 6800 für die bessere Architektur, doch die erste Generation war in einer Technologie hergestellt die sie langsamer als der 8080 machte.

Gelernt hatte man auch aus den Erfahrungen des Verkaufs der bisherigen Prozessoren. Intel war damals ein reiner Halbleiterproduzent. Das lief bei den einfacheren Bausteinen die es bisher gab so: Es gab ein Datenblatt und bei Interesse auch einige Probeexemplare. Es handelte sich bisher um einfache Gates, Flip-Flops oder RAMs oder ROMS. Bausteine die für einige Dollar verkauft wurden. Die Prozessoren wurden für 120, 180 oder 360 Dollar verkauft. Probeexemplare gab es daher nicht. Mit dem Prozessor alleine konnte man nichts anfangen, man konnte ihn aber auch nicht wie einen RAM Baustein in ein bestehendes System integrieren. Der Prozessor selbst war der Kern eines neuen Systems. So bemerkte Intel das man weitaus mehr Handbücher verkaufte (sie wurden erstmals nicht mehr kostenlos abgegeben) als Prozessoren. Potentielle Kunden hielten sich also zurück und studierten die Handbücher. Um den Verkauf anzukurbeln entwickelte man daher ein System das den Prozessor, die nötigsten Peripheriebausteine und etwas RAM und ein EPROM. Ein potentieller Kunde konnte das System kaufen und darauf Software entwickeln. Das wirkte sich sehr positiv auf den Verkauf aus. Zudem stellte man ein einfaches Board für den 8080 vor, während die bisherigen Entwicklungssysteme komplette Computer mit Bildschirm, Floppy Disks und Erweiterungsmöglichkeiten waren, die 25.000 bis 30.000 Dollar kosteten - was eine ziemliche Preisbarriere war.

Ein Vorteil von Intel bei dem 8080 insbesondere gegenüber Motorola war, dass man sich frühzeitig der Umgebung des 8080 angenommen hatte. Es gab auch DMA (direkter Speicherzugriff von anderen Bausteinen), Bausteine mit den Protokollen für die serielle und parallele Schnittstelle, Interruptcontroller und Zähler/Zeitgeber. Es gab also alle Systeme für ein Komplettsystem selbst mit hohen Anforderungen (so brauchten die meisten 8080 Systeme von diesen Bausteinen eigentlich nur die 8255, den Baustein für die parallele Ein/Ausgabe. Der Baustein war sogar bei Z80 Systemen sehr populär. Motorola hatte dagegen beim Start nur den nakten Prozessor verfügbar und musste hier nachbessern.

Schon 1976 erschien der 8085. Der 8085 war kein neuer Prozessor, er war vielmehr konzipiert worden um die offensichtlichen Nachteiles des 8080 auszugleichen:

Damit benötigte man die Zusatzbausteine 8228 und 8224 nicht mehr und nur noch eine Versorgungsspannung. Intel hatte sich gegen mehr Befehle entscheiden, da zwei Jahre später der 8086 geplant war und dieser sollte sourcecodekompatibel zu dem 8080 sein. Neue Befehle hätte man dann auch in den 8086 übernehmen müssen.

Anders als der 8080 konnte der 8085 nicht an die Erfolge anknüpfen. Der Grund war ein von den ehemaligen Konstrukteuren Faggin und Mazor des 8080 designter Chip, der Zilog Z80. Er zog auch die Lehren aus den Fehlern aber noch konsequenter. Neben den Vorteilen des 8085 bot er eine verbesserte Interruptunterstützung durch einen zweiten Registersatz, zwischen dem man wechseln konnte. So konnte man in einer Interruptserviceroutine die Register wechseln und beim Ende zurück. Es gab auch neue Befehle um von Interruptroutinen zurückzukehren. Dabei war der Z80 (interner Name: Super 80) maschinencodekompatibel zum 8080, konnte also dessen Software ohne Neuübersetzung ausführen.

Dies waren nicht die einzigen Befehle je nach Zählweise waren es 80 bis 600 neue Instruktionen, die möglich waren weil man drei Opcodes als Prefixe nutzte. Damit konnte man bei jedem dieser Opcodes in einem zweiten Byte 256 neue Instruktionen dekodieren. Dies umfasste eine Gleichbehandlung aller 16 Bit Register bei allen Operationen, Bitmanipulationen, Schiebe und Rotationsbefehle für alle Register, Blockbewege, Block I/O und Bytesuchoperationen, I/O Ausgabe über die Adresse im BC Register und sehr wichtig: ein eingebauter Refreshmechanismus mit einem eigenen Register das herunterzählte und bei Erreichen von 0 den Refreshimpuls abgab. Eher weniger wichtig waren die beiden neu eingeführten Indexregister IX und IY. Der Zugriff auf sie war langsam und eine indizierte Adressierung war nur über ein festes Displacement möglich. Eventuell wollte man über diese Weise die Indizierte Adressierung einführen, doch durch bis zu 5 Bytes lange Opcodes waren diese recht langsam.

Viele der kurzen Befehle konnte der Z80 schneller ausführen, so den Befehl LD Reg,Reg (8-Bit Register) in 4 anstatt 5 Takten. Die längeren Befehle dauerten dagegen meist länger so, XTHL als längster des 8080 brauchte beim Z80 19 anstatt 18 Takte. Zilog kündete ihn stolz mit einer anzeige ab die mit "The Battle of the 80-ties" überschrieben ist. Das erschien damals übertrieben. War Zilog doch nur eine kleine neue Firma, während Intel Marktführer war und schon die vierte Prozessorgeneration auf den Markt brachte. Zudem war eine Prognose auf die Achtziger (die sich ja bis 1989 erstreckten und dies 1976. Bei der Geschwindigkeitssteigerung die man in den Siebzigern noch erreichte (zwischen dem 8008 der 1972 erschien und dem 1978 erschienen 8086 lag der Geschwindigkeitsfaktor 60 bis 100) war es 1976 verwunderlich wenn jemand in den Achtzigern noch 8-Bit Prozessoren nutzen würde.

Damit war der Z80 für Hardwarebauer leichter in ein System mit dynamischem Speicher zu integrieren und war zudem noch billiger. Für Softwareentwickler bot er weitere Möglichkeiten der Programmierung. Der 8080 starb nach Erscheinen des Z80 nicht aus, verlor aber deutlich an Marktanteilen. Auffällig ist, das Mikrocomputer die von schon etablierten Herstellern auf den Markt kamen den 8080 verwendeten, so Computer von IBM (System/23 Datamaster), HP 2647, Triumph-Adler (Alpha PC), Wang. Die vielen Rechner von "neuen" firmen dagegen auf den Z80 setzten so der Tandy TRS-80, Sinclair XL, Spectrum, Armstrad CPC, MSX Serie, Osborne, Capyro und in Videospielen wie dem Sega System. Der Z80 heute wird er in Texas Instruments Tischrechner eingesetzt. Er war auch bald in einem höheren Takt verfügbar. Schon die erste Version war für 2,5 MHz Takt ausgelegt, bald folgte die Z80A die bis zu 4 MHz getaktet werden konnte. Sie war die erfolgreichste Version. Die höher getakteten Z80B (bis 8 MHz) und Z80C (bis 16 MHz9) wurden selten eingesetzt, da die Z80 anders als 16-Bit CPUs keinen Prefetch und keinen Inputbuffer hatte. Das bedeutet man benötigte RAM-Bausteine mit niedrigen Zugriffszeiten. 166 ns für die 6 MHz Version waren z.B. damals sehr teuer. Intel brachte nach dem 8080A-1 keine Versionen mit höherem Takt heraus und konzentrierte sich auf den 16-Bit Markt.

Während die Produktion des 8080 eingestellt wurde und auch des 8085 wird der Z80 im Jahre 2015 immer noch produziert. Beiden Prozessoren half es das Gary Kildall mit CP/M das erste Standard-Betriebssystem für Microcomputer entwickelte. Es trug dieser Geräteklasse Rechnung indem es aus einem Teil mit standardisierten Betriebssystemaufrufen bestand der überall gleich war und einem davon abgeteilten an die jeweilige Maschine anzupassenden Teil der die Hardware unterstützte, das BIOS bestand. Damit war es erstmals möglich Software zu entwickeln die unabhängig von einem Modell war und auf vielen Rechnern lief. Den Prozessorherstellern nützte es dadurch, dass eine Firma die einen neuen Computer konstruierte, wenn sie einen 8080 oder Z80 einsetzte mit einem Schlag auf alle CP/M Programme zurückgreifen konnte. Damit war das Henne-Ei Problem elegant umschifft (In diesem Fall: ohne verfügbare Software kauft kein Interessent das Gerät, ist das Gerät aber nicht weit verbreitet, dann schreibt auch keiner Software für es - ein Zwickmühle). Gary Kildall bot sein Betriebssystem CP/M Intel übrigens zum Kauf an. Man lehnte dort ab. Intel hatte bis weit in die siebziger Jahre als es schon Microcomputer gab deren Bedeutung nicht verstanden. So drängten auch eigene Ingenieure Moore einen PC zu entwickeln - er fragte nur (wie viele andere IT-Firmen Bosse damals auch) "wofür soll der gut sein?". Selbst Steve Jobs ließ Intel abblitzen - der Apple wäre eben doch nur eine von 100 anderen Anwendungen eines Mikroprozessors.

Auch nachdem Intel den 8086 einführte verkaufte sich der 8080A gut, 1979 war sein Preis auf 3 bis 4 Dollar pro Stück (bei Abnahme großer Stückzahlen) gefallen, es wurden aber monatlich 500.000 Exemplare verkauft - mehr als 8008 während seiner ganzen Produktionszeit hergestellt wurden. Erst als 1982/83 die IBM-PC und IOBM-PC kompatiblen sich auf dem Markt durchsetzten überholte der Intel 8088 den 8080 in den Verkaufszahlen. Der 8085 konnte niemals an den Erfolg des 8085 anknüpfen.

Wie viele andere frühe Prozessoren wurde auch der 8080 in Lizenz gefertigt, so von AMD, Siemens, Harris. Als Intel die Produktion einstellte, begannen einige Lizenznehmer erst mit der Produktion, da die Nachfrage immer noch da war. Wie viele andere frühe CPUs wurde auch der 8080 durch Reverse Engineering im Ostblock vor allem in Russland aber auch Polen und Rumänien nachgebaut. Russland fertigte sogar eine Version mit nur eienr Spannungsversorgung (die beiden Pins für +/- 5 V waren noch vorhanden, wurden aber auf Masse gelegt).

Die wesentliche geschichtliche Bedeutung des 8080 ist die, dass das Nachfolgemodell 8086 die Abwärtskompabilität behalten sollte. Der 8086 war befehlskompatibel, das bedeutet er kannte alle 8080/85 Befehle, aber sie hatten andere Opcodes und diesmal auch andere Mnemonics. Ein einfaches Programm konnte aber 8080 Asemblerfiles in 8086 Assembler Files übersetzen. Das gilt übrigens bis heute selbst auf 64-Bit Prozessoren. Auch diese starten im 16 Bit Modus des 8086.

Das hatte einige Folgen. So gab es dieselben Register die nun einfach AX,BX,CX und DX hießen. Ebenso gab es byteorientiere Zugriffe und Rechenoperationen. Die Register waren nur 16 Bit breite, ein größerer adressraum wurde über Segmentregister erreicht, die dann zwar 1 MByte ermöglichten, aber den Zugriff auf maximal 64 KByte nur zuließen. So gab es als der IBM PC erschien nicht nur einen Klon des 8080 Betriebssystems CP/M namens MS-DOS sondern auch zahlreiche CP/M Programme die man einfach durch einen solchen Translator übersetzte. Diese erste DOS Version war auch wie ein 8080 auf nur 64 KByte genutztes RAM beschränkt. Als weitere Analogie hatte auch der 8086 obwohl er ein 16 Bit Prozessor war nur ein 40 Pin Gehäuse wie der 8080.

Technische Daten

Wert 8080 8085 Z80
Veröffentlicht: Dezember 1973 (8080), April 1974 (8080A) April 1976 Juli 1976
Technologie (Erstexemplar) 6 µm NMOS 3 µm NMOS 4 µm NMOS
Transistoren: 4.800 (8080) 5.000 (8080A) 6.500 8.200
Gehäuse 18 Pin CDIP 40 Pin 40 Pin
Taktfrequenz: 2 MHz (8080/8080A)
2,67 MHz (8080A-1)
3,125 MHz (8080A-2)
3 MHz (8085)
5 MHz (8085A)
6 MHz
2,5 MHz (Z80)
4 MHz (Z80A)
6 MHz (Z80B)
8 MHz (Z80H)
heute: CMOS Version 4-20 MHz, embedded Version eZ80 bis 50 MHz
adressierbares RAM 64 KB 64 KB 64 KB
Stack: 256 Byte 256 Byte 256 Byte
Register: 7 8-Bit-Register A,B,C,D,E,H,L
2 16-Bit-Register  PC, SP
5 Flag Bits
7 8-Bit-Register A,B,C,D,E,H,L
2 16-Bit-Register  PC, SP
1 8-Bit-Interruptmaskregister
5 Flag Bits
14 8-Bit-Register A,B,C,D,E,H,L (zwei Sätze)
4 16-Bit-Register  PC, SP, IX, IY
1 8-Bit-Interruptmaskregister
1 8-Bit-Refrehsregister
Flagregister mit 8 Bits, davon zwei unbenutzt
Adressierungsdaten:
(nur eine Richtung angegeben)
Register - Register
Register - direkt
Register - indirekt
Register-Register
Register-direkt
Register-indirekt
Register-Register
Register-direkt
Register-indirekt
Register-indiziert
Ein/Ausgabeports: 256 Eingabeports
256 Ausgabeports
256 Eingabeports
256 Ausgabeports
256 Eingabeports
256 Ausgabeports
Besonderheiten: keine Unterstützung maskierter Interrupts
zweiphasiger Takt
drei Versorgungsspannungen
benötigt Zwei Bausteine für den Takt und Buskontrolle der Signale
Nur eine Versorgungsspannung, einphasiger Takt, maskierbarer Interrupt, keine Zusatzbausteine möglich wie 8085, nur Erzeugung des Refreshzyklus von DRAM intern, erweiterte Interruptbehandlungsmöglichkeiten
Befehle: 158 (alle Oppcodevarianten)
78 (ohne Opcodevarianten)
160 (alle Opcodevarianten)
80 (ohne Opcodevarianten)
696 (alle Opcodevarianten)
244 (ohne Opcodevarianten)
Produktionszeitraum 1974 bis 1990 1976 - 2000 1976 - heute
Geschwindigkeit: > 290.000 Instruktionen/s > 400.000 Instruktionen/s > 500.000 Instruktionen/s

Links:

http://www.z80.info/zip/z80cpu_um.pdf

http://altairclone.com/downloads/manuals/8080%20Programmers%20Manual.pdf

http://bitsavers.trailing-edge.com/pdf/intel/MCS80/98-153B_Intel_8080_Microcomputer_Systems_Users_Manual_197509.pdf

http://archive.computerhistory.org/resources/text/Oral_History/Intel_8080/102658123.05.01.pdf

Artikel erstellt am 11.6.2015

Zum Thema Computer ist auch von mir ein Buch erschienen. "Computergeschichte(n)" beinhaltet, das was der Titel aussagt: einzelne Episoden aus der Frühzeit des PC. Es sind Episoden aus den Lebensläufen von Ed Roberts, Bill Gates, Steve Jobs, Stephen Wozniak, Gary Kildall, Adam Osborne, Jack Tramiel und Chuck Peddle und wie sie den PC schufen.

Das Buch wird abgerundet durch eine kurze Erklärung der Computertechnik vor dem PC, sowie einer Zusammenfassung was danach geschah, als die Claims abgesteckt waren. Ich habe versucht ein Buch zu schreiben, dass sie dahingehend von anderen Büchern abhebt, dass es nicht nur Geschichte erzählt sondern auch erklärt warum bestimmte Produkte erfolgreich waren, also auf die Technik eingeht.

Die 2014 erschienene zweite Auflage wurde aktualisiert und leicht erweitert. Die umfangreichste Änderung ist ein 60 Seiten starkes Kapitel über Seymour Cray und die von ihm entworfenen Supercomputer. Bedingt durch Preissenkungen bei Neuauflagen ist es mit 19,90 Euro trotz gestiegenem Umfang um 5 Euro billiger als die erste Auflage. Es ist auch als e-Book für 10,99 Euro erschienen.

Mehr über das Buch auf dieser eigenen Seite.

Hier geht's zur Gesamtübersicht meiner Bücher mit direkten Links zum BOD-Buchshop. Die Bücher sind aber auch direkt im Buchhandel bestellbar (da ich über sehr spezielle Themen schreibe, wird man sie wohl kaum in der Auslage finden) und sie sind natürlich in den gängigen Online-Plattformen wie Amazon, Libri, Buecher.de erhältlich.


© des Textes: Bernd Leitenberger. Jede Veröffentlichung dieses Textes im Ganzen oder in Auszügen darf nur mit Zustimmung des Urhebers erfolgen.
Sitemap Kontakt Impressum / Datenschutz Neues Hier werben / advertisment here Buchshop Bücher vom Autor Top 99