Intel 8008 -Intel 8008

Intel8008
KL Intel C8008-1.jpg
Eine Intel C8008-1-Prozessorvariante mit violetter Keramik, vergoldetem Metalldeckel und Pins.
allgemeine Informationen
Gestartet Mitte 1972
Abgesetzt 1983
Entworfen von Computer Terminal Corporation (CTC)
Gängige Hersteller
Leistung
max. CPU -Taktrate 200kHz bis 800kHz
Datenbreite 8 Bit
Adressbreite 14 Bit
Architektur und Klassifikation
Anwendung Computerterminals , Taschenrechner , Abfüllmaschinen, ASEA- Industrieroboter aus den 1970er Jahren (IRB 6), einfache Computer usw.
Technologieknoten 10 µm
Befehlssatz 8008
Physikalische Spezifikationen
Transistoren
Pakete)
Steckdosen)
Geschichte
Nachfolger Intel 8080
Support-Status
Nicht unterstützt

Der Intel 8008 („ achttausendacht “ oder „ achtundachtzig “) ist ein früher Byte-orientierter Mikroprozessor , der von der Computer Terminal Corporation (CTC) entwickelt , von Intel implementiert und hergestellt und im April 1972 eingeführt wurde eine 8-Bit-CPU mit einem externen 14-Bit-Adressbus, der 16 KB Speicher adressieren könnte. Ursprünglich als 1201 bekannt , wurde der Chip von der Computer Terminal Corporation (CTC) in Auftrag gegeben, um einen Befehlssatz ihres Designs für ihr programmierbares Terminal Datapoint 2200 zu implementieren . Da der Chip verzögert wurde und die Leistungsziele von CTC nicht erfüllte, verwendete der 2200 stattdessen CTCs eigene TTL -basierte CPU. Eine Vereinbarung erlaubte Intel, den Chip an andere Kunden zu vermarkten, nachdem Seiko Interesse bekundet hatte, ihn für einen Taschenrechner zu verwenden .

Geschichte

CTC wurde 1968 in San Antonio unter der Leitung von Austin O. „Gus“ Roche und Phil Ray, beide NASA- Ingenieure, gegründet. Vor allem Roche war in erster Linie daran interessiert, einen Desktop-Computer herzustellen. Angesichts der Unreife des Marktes erwähnte der Geschäftsplan des Unternehmens jedoch nur einen Teletype Model 33 ASR-Ersatz, der als Datapoint 3300 ausgeliefert wurde . Das Gehäuse wurde bewusst so gestaltet, dass es in den gleichen Raum wie eine IBM Selectric -Schreibmaschine passt, und es wurde ein Videobildschirm verwendet, der so geformt war, dass er das gleiche Seitenverhältnis wie eine IBM- Lochkarte hatte . Obwohl der 3300 kommerziell erfolgreich war, hatte er aufgrund der Menge an Schaltkreisen, die auf so kleinem Raum untergebracht waren, anhaltende Hitzeprobleme.

Um die Erwärmung und andere Probleme anzugehen, wurde mit einem Redesign begonnen, bei dem der CPU-Teil der internen Schaltung auf einem einzigen Chip neu implementiert wurde. Auf der Suche nach einem Unternehmen, das in der Lage war, ihr Chipdesign zu produzieren, wandte sich Roche an Intel, damals hauptsächlich ein Anbieter von Speicherchips. Roche traf sich mit Bob Noyce , der seine Besorgnis über das Konzept zum Ausdruck brachte; John Frassanito erinnert sich: „Noyce sagte, es sei eine faszinierende Idee, und dass Intel es tun könnte, aber es wäre ein dummer Schachzug. Er sagte, wenn Sie einen Computerchip haben, können Sie nur einen Chip pro Computer verkaufen, während Sie Speicher haben , können Sie Hunderte von Chips pro Computer verkaufen." Ein weiteres großes Problem war, dass der bestehende Kundenstamm von Intel ihre Speicherchips zur Verwendung mit ihren eigenen Prozessordesigns kaufte. Wenn Intel einen eigenen Prozessor einführen würde, könnten sie als Konkurrenten angesehen werden, und ihre Kunden könnten woanders nach Speicher suchen. Trotzdem stimmte Noyce Anfang 1970 einem Entwicklungsvertrag über 50.000 USD zu. Texas Instruments (TI) wurde ebenfalls als zweiter Lieferant hinzugezogen.

TI konnte auf der Grundlage von Intel-Zeichnungen Muster des 1201 herstellen, diese erwiesen sich jedoch als fehlerhaft und wurden abgelehnt. Intels eigene Versionen wurden verzögert. CTC beschloss, die neue Version des Terminals mit diskretem TTL neu zu implementieren , anstatt auf eine Single-Chip-CPU zu warten. Das neue System wurde im Frühjahr 1970 als Datapoint 2200 veröffentlicht , mit dem ersten Verkauf an General Mills am 25. Mai 1970. CTC stellte die Entwicklung des 1201 nach der Veröffentlichung des 2200 ein, da es nicht mehr benötigt wurde. Sechs Monate später wandte sich Seiko an Intel und bekundete Interesse an der Verwendung des 1201 in einem wissenschaftlichen Rechner, wahrscheinlich nachdem er den Erfolg des einfacheren Intel 4004 gesehen hatte , der von Busicom in seinen Geschäftsrechnern verwendet wurde. Unter der Leitung von Federico Faggin , dem Designer des 4004, jetzt Projektleiter des 1201, folgte eine kleine Neugestaltung, die von einem 16-Pin- auf ein 18-Pin-Design erweitert wurde, und der neue 1201 wurde Ende 1971 an CTC geliefert .

Zu diesem Zeitpunkt war CTC wieder weitergezogen, diesmal zum schnelleren Datapoint 2200 II . Der 1201 war für das neue Modell nicht mehr stark genug. CTC stimmte dafür, ihre Beteiligung am 1201 zu beenden, und überließ das geistige Eigentum des Designs Intel, anstatt den Vertrag über 50.000 US-Dollar zu bezahlen. Intel benannte es in 8008 um und nahm es im April 1972 zum Preis von 120 US-Dollar in seinen Katalog auf. Mit dieser Umbenennung wurde versucht, den Erfolg des 4004-Chips zu untermauern, indem der 8008 einfach als 4-zu-8-Port dargestellt wurde, der 8008 jedoch nicht auf dem 4004 basiert. Der 8008 war weiterhin ein kommerziell erfolgreiches Design. Darauf folgte der Intel 8080 und dann die äußerst erfolgreiche Intel x86- Familie.

Eines der ersten Teams, das ein komplettes System um den 8008 herum baute, war das Team von Bill Pentz an der California State University, Sacramento . Der Sac State 8008 war möglicherweise der erste echte Mikrocomputer mit einem Festplattenbetriebssystem, das mit der IBM Basic-Assemblersprache im PROM erstellt wurde und alle ein Farbdisplay, eine Festplatte, eine Tastatur, ein Modem, einen Audio- / Papierbandleser und einen Drucker ansteuerte. Das Projekt begann im Frühjahr 1972 und mit maßgeblicher Hilfe von Tektronix war das System ein Jahr später voll funktionsfähig. Bill unterstützte Intel mit dem MCS-8- Kit und leistete wichtige Beiträge zum Intel 8080 -Befehlssatz, der dazu beitrug, ihn für die Industrie und Bastler nützlich zu machen.

In Großbritannien baute ein Team von SE Laboratories Engineering (EMI) unter der Leitung von Tom Spink 1972 einen Mikrocomputer auf der Grundlage eines Vorabmusters des 8008. Joe Hardman erweiterte den Chip um einen externen Stapel. Dies ermöglichte unter anderem das Speichern und Wiederherstellen bei Stromausfall. Joe entwickelte auch einen direkten Siebdrucker. Das Betriebssystem wurde unter Verwendung eines Meta-Assemblers geschrieben, der von L. Crawford und J. Parnell für einen PDP-11 der Digital Equipment Corporation entwickelt wurde . Das Betriebssystem wurde in ein PROM gebrannt. Es war unterbrechungsgesteuert, in eine Warteschlange eingereiht und basierte auf einer festen Seitengröße für Programme und Daten. Ein funktionsfähiger Prototyp wurde für das Management vorbereitet, das sich entschied, das Projekt nicht fortzusetzen.

Der 8008 war die CPU für die allerersten kommerziellen PCs ohne Taschenrechner (mit Ausnahme des Datapoint 2200 selbst): das US- SCELBI- Kit und das vorgefertigte französische Micral N und das kanadische MCM/70 . Es war auch der steuernde Mikroprozessor für die ersten Modelle der Computerterminalfamilie 2640 von Hewlett-Packard.

Intel bot einen Befehlssatzsimulator für den 8008 mit dem Namen INTERP/8 an. Es wurde in FORTRAN geschrieben .

Design

i8008 Mikroarchitektur
Intel 8008 registriert
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)
Hauptregister
  A Ein Akkumulator
  B B- Register
  C C -Register
  D D registrieren
  E E registrieren
  H H - Register (indirekt)
  L L- Register (indirekt)
Programm zähler
PC Programmzähler _ _ _
Pushdown-Adress-Call-Stack
ALS Anrufebene 1
ALS Anrufebene 2
ALS Anrufebene 3
ALS Anrufebene 4
ALS Anrufebene 5
ALS Anrufebene 6
ALS Anrufebene 7
Flaggen
  C P Z S Flaggen

Der 8008 wurde in 10-  μm -Silizium-Gate-Anreicherungsmodus- PMOS-Logik implementiert . Erste Versionen konnten mit Taktfrequenzen von bis zu 0,5 MHz arbeiten. Dies wurde später im 8008-1 auf ein bestimmtes Maximum von 0,8 MHz erhöht. Anweisungen nehmen zwischen 5 und 11 T-Zustände ein, wobei jeder T-Zustand 2 Taktzyklen ist. Register-Register-Ladevorgänge und ALU-Operationen benötigen 5 T (20 μs bei 0,5 MHz), Register-Speicher 8 T (32 μs), während Aufrufe und Sprünge (wenn ausgeführt) 11 T-Zustände (44 μs) benötigen. Der 8008 ist etwas langsamer in Bezug auf Anweisungen pro Sekunde (36.000 bis 80.000 bei 0,8 MHz) als der 4-Bit- Intel 4004 und der Intel 4040 . Da der 8008 jedoch 8-Bit-Daten gleichzeitig verarbeitet und auf erheblich mehr RAM zugreifen kann, hat er in den meisten Anwendungen einen erheblichen Geschwindigkeitsvorteil gegenüber diesen Prozessoren. Der 8008 hat 3.500 Transistoren .

Der Chip (begrenzt durch seinen 18-Pin- DIP ) hat einen einzigen 8-Bit-Bus und erfordert eine erhebliche Menge an externer Unterstützungslogik. Beispielsweise muss die 14-Bit-Adresse, die auf „16 K × 8 Bit Speicher“ zugreifen kann, durch einen Teil dieser Logik in einem externen Speicheradressenregister (MAR) zwischengespeichert werden. Der 8008 kann auf 8 Eingangsports und 24 Ausgangsports zugreifen.

Für die Verwendung als Controller und CRT-Terminal ist dies ein akzeptables Design, aber für die meisten anderen Aufgaben ist es ziemlich umständlich zu verwenden, zumindest im Vergleich zu den nächsten Generationen von Mikroprozessoren. Einige frühe Computerdesigns basierten darauf, aber die meisten verwendeten stattdessen den späteren und stark verbesserten Intel 8080 .

Verwandte Prozessordesigns

Der nachfolgende 40-polige NMOS Intel 8080 erweiterte die 8008-Register und den Befehlssatz und implementiert eine effizientere externe Busschnittstelle (unter Verwendung der 22 zusätzlichen Stifte). Trotz einer engen architektonischen Beziehung wurde der 8080 nicht binärkompatibel mit dem 8008 gemacht, sodass ein 8008-Programm nicht auf einem 8080 laufen würde. Da jedoch zu dieser Zeit zwei verschiedene Assembler-Syntaxen von Intel verwendet wurden, konnte der 8080 in einem verwendet werden 8008-Assemblersprache abwärtskompatibel.

Der Intel 8085 ist eine elektrisch modernisierte Version des 8080, die Verarmungstransistoren verwendet und außerdem zwei neue Befehle hinzugefügt hat.

Der Intel 8086 , der ursprüngliche x86-Prozessor, ist eine nicht strikte Erweiterung des 8080, sodass er auch dem ursprünglichen Datapoint 2200-Design ähnelt. Fast jeder Datapoint 2200- und 8008-Befehl hat ein Äquivalent nicht nur im Befehlssatz des 8080, 8085 und Z80 , sondern auch im Befehlssatz moderner x86- Prozessoren (obwohl die Befehlscodierungen unterschiedlich sind).

Merkmale

Die 8008-Architektur umfasst die folgenden Merkmale:

  • Sieben 8-Bit-Notizblockregister: Der Hauptakkumulator (A) und sechs weitere Register (B, C, D, E, H und L).
  • 14-Bit-Programmzähler (PC).
  • Siebenstufiger Pushdown-Adress- Call-Stack . Tatsächlich werden acht Register verwendet, wobei das oberste Register der PC ist.
  • Vier Bedingungscode-Statusflags: Übertrag (C), gerade Parität (P), Null (Z) und Vorzeichen (S).
  • Indirekter Speicherzugriff unter Verwendung der H- und L-Register (HL) als 14-Bit-Datenzeiger (die oberen zwei Bits werden ignoriert).

Beispielcode

Der folgende 8008- Assembler- Quellcode ist für eine Unterroutine mit dem Namen MEMCPY, die einen Block von Datenbytes einer bestimmten Größe von einer Stelle an eine andere kopiert.

                   
                   
                   
                   
                   
                   
                   
                   
                   
001700  000        
001701  000        
001702  000        
001703  000        
001704  000        
001705  000        
                   
                   
002000  066 304    
002002  056 003    
002004  327        
002005  060        
002006  317        
002007  302        
002010  261        
002011  053        
002012  302        
002013  024 001    
002015  320        
002016  301        
002017  034 000    
002021  310        
002022  066 300    
002024  056 003    
002026  302        
002027  207        
002030  340        
002031  060        
002032  301        
002033  217        
002034  350        
002035  364        
002036  337        
002037  066 302    
002041  056 003    
002043  302        
002044  207        
002045  340        
002046  060        
002047  301        
002050  217        
002051  350        
002035  364       
002052  373        
002053  104 007 004
002056             
; MEMCPY --
; Copy a block of memory from one location to another.
;
; Entry parameters
;       SRC: 14-bit address of source data block
;       DST: 14-bit address of target data block
;       CNT: 14-bit count of bytes to copy
 
            ORG     1700Q       ;Data at 001700q
SRC         DFB     0           ;SRC, low byte
            DFB     0           ;     high byte
DST         DFB     0           ;DST, low byte
            DFB     0           ;     high byte
CNT         DFB     0           ;CNT, low byte
            DFB     0           ;     high byte
 
            ORG     2000Q       ;Code at 002000q
MEMCPY      LLI     CNT+0       ;HL = addr(CNT)
            LHI     CNT+1
            LCM                 ;BC = CNT
            INL
            LBM
LOOP        LAC                 ;If BC = 0,
            ORB
            RTZ                 ;Return
DECCNT      LAC                 ;BC = BC - 1
            SUI     1
            LCA
            LAB
            SBI     0
            LBA
GETSRC      LLI     SRC+0       ;HL = addr(SRC)
            LHI     SRC+1
            LAC                 ;HL = SRC + BC
            ADM                 ;E = C + (HL)
            LEA                 ;(lower sum)
            INL                 ;point to upper SRC
            LAB
            ACM                 ;H = B + (HL) + CY
            LHA                 ;(upper sum)
            LLE                 ;L = E
            LDM                 ;Load D from (HL)
GETDST      LLI     DST+0       ;HL = addr(DST)
            LHI     DST+1
            LAC                 ;HL = DST + BC
            ADM                 ;ADD code same as above
            LEA
            INL 
            LAB
            ACM
            LHA
            LLE
            LMD                 ;Store D to (HL)
            JMP     LOOP        ;Repeat the loop
            END

Im obigen Code werden alle Werte in Oktal angegeben. Die Positionen SRC, DSTund CNTsind 16-Bit-Parameter für die Unterroutine mit dem Namen MEMCPY. Tatsächlich werden nur 14 Bit der Werte verwendet, da die CPU nur einen 14-Bit adressierbaren Speicherplatz hat. Die Werte werden im Little-Endian- Format gespeichert, obwohl dies eine willkürliche Wahl ist, da die CPU nicht in der Lage ist, mehr als ein einzelnes Byte gleichzeitig in den Speicher zu lesen oder zu schreiben. Da es keine Anweisung gibt, ein Register direkt von einer bestimmten Speicheradresse zu laden, muss das HL-Registerpaar zuerst mit der Adresse geladen werden, und das Zielregister kann dann vom Operanden M geladen werden, was ein indirektes Laden von der Speicherstelle ist im HL-Registerpaar. Das BC-Registerpaar wird mit dem CNTParameterwert geladen und am Ende der Schleife dekrementiert, bis es Null wird. Beachten Sie, dass die meisten der verwendeten Anweisungen einen einzelnen 8-Bit-Opcode belegen.

Designer

  • CTC ( Befehlssatz und Architektur ): Victor Poor und Harry Pyle .
  • Intel ( Implementierung in Silizium ):
    • Ted Hoff , Stan Mazor und Larry Potter (IBM Chief Scientist) schlugen eine Ein-Chip-Implementierung der CTC-Architektur vor, die RAM-Registerspeicher anstelle von Schieberegisterspeichern verwendet, und fügten auch einige Befehle und Interrupt-Einrichtungen hinzu. Das Chipdesign des 8008 (ursprünglich 1201 genannt) begann vor der Entwicklung des 4004. Hoff und Mazor konnten und haben jedoch kein "Siliziumdesign" entwickelt, da sie weder Chipdesigner noch Prozessentwickler waren, und außerdem die notwendige Silizium-Gate-basierte Designmethodik und Schaltungen, die von Federico Faggin für den 4004 entwickelt wurden, waren noch nicht vorhanden.
    • Nachdem Federico Faggin das Design des 4004 fertiggestellt hatte, war er von Januar 1971 bis zu seinem erfolgreichen Abschluss im April 1972 Leiter des Projekts, nachdem es wegen mangelnder Fortschritte etwa sieben Monate lang ausgesetzt worden war.
    • Hal Feeney , Projektingenieur, führte das detaillierte Logikdesign, das Schaltungsdesign und das physische Layout unter Faggins Aufsicht durch, wobei er dieselbe Designmethodik verwendete, die Faggin ursprünglich für den Intel 4004-Mikroprozessor entwickelt hatte, und die grundlegenden Schaltungen verwendete, die er für den 4004 entwickelt hatte. Ein kombiniertes "HF"-Logo wurde etwa in der Mitte zwischen den D5- und D6-Bondpads auf den Chip geätzt.

Zweite Quellen

Siehe auch

  • Mark-8 und SCELBI , 8008-basierte Computer-Kits
  • MCM/70 und Micral , wegweisende Mikrocomputer
  • PL/M , die erste Programmiersprache für einen Mikroprozessor, den Intel 8008, entwickelt von Gary Kildall

Verweise

Externe Links