Intel 8008 -Intel 8008

Intel 8008
KL Intel C8008-1.jpg
Varianta procesoru Intel C8008-1 s fialovou keramikou, pozlaceným kovovým víkem a kolíky.
Obecná informace
Spuštěno Polovina roku 1972
Přerušeno 1983
Navrhl Computer Terminal Corporation (CTC)
Společní výrobci
Výkon
Max. frekvence procesoru 200 kHz až 800 kHz
Šířka dat 8 bitů
Šířka adresy 14 bitů
Architektura a klasifikace
aplikace Počítačové terminály , kalkulačky , stáčecí stroje, průmyslové roboty ASEA ze 70. let (IRB 6), jednoduché počítače atd.
Technologický uzel 10 um
Instrukční sada 8008
Fyzické specifikace
Tranzistory
Balíčky
Zásuvka(y)
Dějiny
Nástupce Intel 8080
Stav podpory
Nepodporováno

Intel 8008 (" osm-tisícosm " nebo " osmdesát-oh-osm ") je raný bajtově orientovaný mikroprocesor navržený společností Computer Terminal Corporation (CTC), implementovaný a vyrobený společností Intel a představený v dubnu 1972. 8bitový CPU s externí 14bitovou adresovou sběrnicí, která dokáže adresovat 16 KB paměti. Čip, původně známý jako 1201 , byl pověřen společností Computer Terminal Corporation (CTC), aby implementoval instrukční sadu jejich návrhu pro jejich programovatelný terminál Datapoint 2200 . Vzhledem k tomu, že čip byl zpožděn a nesplňoval výkonnostní cíle CTC, 2200 místo toho používal vlastní CPU CTC založený na TTL . Dohoda umožnila Intelu prodávat čip dalším zákazníkům poté, co společnost Seiko projevila zájem o jeho použití pro kalkulačku .

Dějiny

CTC vznikla v San Antoniu v roce 1968 pod vedením Austina O. "Guse" Roche a Phila Raye, obou inženýrů NASA . Zejména Roche se zajímal především o výrobu stolního počítače. Vzhledem k nevyzrálosti trhu však obchodní plán společnosti zmiňoval pouze náhradu Teletype Model 33 ASR, která byla dodávána jako Datapoint 3300 . Pouzdro bylo záměrně navrženo tak, aby se vešlo do stejného prostoru jako elektronický psací stroj IBM a používala videoobrazovka tvarovaná tak, aby měla stejný poměr stran jako děrný štítek IBM . Ačkoli komerčně úspěšný, 3300 měl trvalé problémy s teplem kvůli množství obvodů nacpaných do tak malého prostoru.

Aby bylo možné vyřešit zahřívání a další problémy, byl zahájen nový design, který zahrnoval CPU část vnitřních obvodů znovu implementovanou na jediném čipu. Společnost Roche hledala společnost, která by dokázala vyrobit jejich návrh čipů, a obrátila se na společnost Intel, která byla tehdy především dodavatelem paměťových čipů. Roche se setkal s Bobem Noycem , který vyjádřil znepokojení nad koncepcí; John Frassanito vzpomíná, že "Noyce řekl, že je to zajímavý nápad a že to Intel dokáže, ale byl by to hloupý krok. Řekl, že pokud máte počítačový čip, můžete prodávat pouze jeden čip na počítač, zatímco s pamětí , můžete prodat stovky čipů na jeden počítač." Dalším velkým problémem bylo, že stávající zákaznická základna Intelu zakoupila své paměťové čipy pro použití s ​​vlastními návrhy procesorů; kdyby Intel představil vlastní procesor, mohlo by se na něj pohlížet jako na konkurenta a jejich zákazníci by možná hledali paměti jinde. Přesto Noyce na začátku roku 1970 souhlasil s vývojovou smlouvou v hodnotě 50 000 USD. Jako druhý dodavatel byl přiveden také Texas Instruments (TI).

TI dokázala vyrobit vzorky 1201 na základě výkresů Intel, ale ty se ukázaly jako chybné a byly zamítnuty. Vlastní verze Intelu byly zpožděny. CTC se rozhodlo znovu implementovat novou verzi terminálu pomocí diskrétního TTL namísto čekání na jednočipový CPU. Nový systém byl vydán jako Datapoint 2200 na jaře 1970, s jejich prvním prodejem General Mills 25. května 1970. CTC pozastavila vývoj 1201 po vydání 2200, protože už nebyl potřeba. O šest měsíců později společnost Seiko oslovila Intel a vyjádřila zájem o použití 1201 ve vědecké kalkulačce, pravděpodobně poté, co viděla úspěch jednoduššího Intel 4004 používaného společností Busicom ve svých obchodních kalkulačkách. Následoval malý redesign pod vedením Federica Faggina , konstruktéra 4004, nyní vedoucího projektu 1201, který se rozšířil z 16pinového na 18pinový design, a nový 1201 byl dodán CTC koncem roku 1971. .

V té chvíli se CTC opět posunulo dál, tentokrát k Datapointu 2200 II , který byl rychlejší. 1201 již na nový model nestačila výkonově. CTC hlasovalo pro ukončení své účasti na 1201, přičemž duševní vlastnictví návrhu ponechalo Intelu místo zaplacení smlouvy 50 000 USD. Intel jej přejmenoval na 8008 a zařadil jej do svého katalogu v dubnu 1972 za cenu 120 $. Toto přejmenování se pokusilo překonat úspěch čipu 4004 tím, že představilo 8008 jednoduše jako port 4 až 8, ale 8008 není založeno na 4004. 8008 se stal komerčně úspěšným designem. Následoval Intel 8080 a poté velmi úspěšná rodina Intel x86 .

Jedním z prvních týmů, kteří postavili kompletní systém kolem 8008, byl tým Billa Pentze na California State University, Sacramento . Sac State 8008 byl možná prvním skutečným mikropočítačem s diskovým operačním systémem vytvořeným pomocí jazyka assembleru IBM Basic v PROM, který poháněl barevný displej, pevný disk, klávesnici, modem, čtečku audio/papírových pásek a tiskárnu. Projekt byl zahájen na jaře 1972 a s klíčovou pomocí Tektronix byl systém plně funkční o rok později. Bill asistoval Intelu se sadou MCS-8 a poskytl klíčové vstupy do instrukční sady Intel 8080 , díky čemuž byla užitečná pro průmysl a fandy.

Ve Spojeném království tým v SE Laboratories Engineering (EMI) pod vedením Toma Spinka v roce 1972 postavil mikropočítač založený na vzorku 8008 před vydáním. Joe Hardman rozšířil čip o externí zásobník. To mimo jiné umožnilo uložení a obnovení při výpadku napájení. Joe také vyvinul přímou sítotisk. Operační systém byl napsán pomocí meta-assembleru vyvinutého L. Crawfordem a J. Parnellem pro Digital Equipment Corporation PDP-11 . Operační systém byl vypálen do PROM. Byl řízen přerušením, zařazen do fronty a založen na pevné velikosti stránky pro programy a data. Pro vedení byl připraven provozní prototyp, který se rozhodl v projektu nepokračovat.

8008 byl CPU pro úplně první komerční nekalkulátorové osobní počítače (vyjma samotného Datapoint 2200): US SCELBI kit a předem sestavený francouzský Micral N a kanadský MCM/70 . Byl to také řídící mikroprocesor pro několik prvních modelů v rodině počítačových terminálů Hewlett-Packard 2640 .

Intel nabídl simulátor instrukční sady pro 8008 s názvem INTERP/8. Bylo to napsáno ve FORTRAN .

Design

mikroarchitektura i8008
Registruje se Intel 8008
1 3 1 2 1 1 10 _ 0 9 0 8 0 7 0 6 0 5 0 4 0 3 0 2 0 1 0 0 (bitová pozice)
Hlavní registry
  A Akumulátor _
  B B registr
  C C registr
  D D registr
  E E registr
  H H registr (nepřímý)
  L registr L (nepřímý)
Počítadlo programů
PC P rogram C počítadlo
Výsuvný zásobník adresního volání
TAK JAKO Úroveň volání 1
TAK JAKO Úroveň volání 2
TAK JAKO Úroveň volání 3
TAK JAKO Úroveň volání 4
TAK JAKO Úroveň volání 5
TAK JAKO Úroveň volání 6
TAK JAKO Úroveň volání 7
Vlajky
  C P Z S Vlajky

8008 byl implementován v 10  μm křemíkové hradlo vylepšení-mode PMOS logiky . Počáteční verze mohly pracovat na taktovací frekvenci až 0,5 MHz. To bylo později zvýšeno v 8008-1 na specifikované maximum 0,8 MHz. Instrukce mají 5 až 11 T-stavů, kde každý T-stav má 2 hodinové cykly. Zatížení registr–registr a operace ALU zaberou 5T (20 μs při 0,5 MHz), paměť registru 8T (32 μs), zatímco volání a skoky (když jsou přijaty) trvají 11 T-stavů (44 μs). 8008 je o něco pomalejší, pokud jde o instrukce za sekundu (36 000 až 80 000 při 0,8 MHz), než 4bitové Intel 4004 a Intel 4040 . ale protože 8008 zpracovává data 8 bitů najednou a má přístup k výrazně více RAM, ve většině aplikací má oproti těmto procesorům značnou rychlostní výhodu. 8008 má 3500 tranzistorů .

Čip (omezený svým 18pinovým DIP ) má jedinou 8bitovou sběrnici a vyžaduje značné množství externí logiky podpory. Například 14bitová adresa, která má přístup k „16 K × 8 bitům paměti“, musí být pomocí této logiky zachycena do externího paměťového adresního registru (MAR). 8008 má přístup k 8 vstupním portům a 24 výstupním portům.

Pro použití řadiče a CRT terminálu je to přijatelný návrh, ale použití pro většinu ostatních úloh je poněkud těžkopádné, alespoň ve srovnání s dalšími generacemi mikroprocesorů. Několik časných návrhů počítačů bylo založeno na tom, ale většina by místo toho používala pozdější a výrazně vylepšený Intel 8080 .

Související návrhy procesorů

Následný 40pinový NMOS Intel 8080 se rozšířil o registry 8008 a sadu instrukcí a implementuje efektivnější rozhraní externí sběrnice (pomocí 22 dalších pinů). Přes úzký architektonický vztah nebyl 8080 binárně kompatibilní s 8008, takže program 8008 by na 8080 neběžel. Protože však Intel v té době používal dvě různé syntaxe sestavení, mohl být 8080 použit v 8008 zpětně kompatibilní jazyk pro sestavení.

Intel 8085 je elektricky modernizovaná verze 8080, která využívá tranzistory v režimu vyčerpání a také přidala dvě nové instrukce.

Intel 8086 , původní procesor x86, je nepřísným rozšířením 8080, takže se také volně podobá původnímu designu Datapoint 2200. Téměř každá instrukce Datapoint 2200 a 8008 má ekvivalent nejen v instrukční sadě 8080, 8085 a Z80 , ale také v instrukční sadě moderních x86 procesorů (ačkoli kódování instrukcí je odlišné).

Funkce

Architektura 8008 obsahuje následující funkce:

  • Sedm 8bitových registrů „zápisníku“: Hlavní akumulátor (A) a šest dalších registrů (B, C, D, E, H a L).
  • 14bitový čítač programů (PC).
  • Sedmiúrovňový zásobník volání s push-down adresou . Ve skutečnosti se používá osm registrů, přičemž nejvyšším registrem je počítač.
  • Čtyři stavové příznaky stavového kódu: přenos (C), sudá parita (P), nula (Z) a znaménko (S).
  • Nepřímý přístup do paměti pomocí registrů H a L (HL) jako 14bitového datového ukazatele (horní dva bity jsou ignorovány).

Příklad kódu

Následující zdrojový kód sestavení 8008 je pro podprogram s názvem MEMCPY, který kopíruje blok datových bajtů dané velikosti z jednoho umístění do druhého.

                   
                   
                   
                   
                   
                   
                   
                   
                   
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

Ve výše uvedeném kódu jsou všechny hodnoty uvedeny v osmičkové soustavě. Locations SRC, DSTa CNTjsou 16bitové parametry pro podprogram s názvem MEMCPY. Ve skutečnosti je použito pouze 14 bitů hodnot, protože CPU má pouze 14bitový adresovatelný paměťový prostor. Hodnoty jsou uloženy ve formátu little-endian , i když je to libovolná volba, protože CPU není schopno číst nebo zapisovat více než jeden bajt do paměti najednou. Vzhledem k tomu, že neexistuje žádná instrukce pro načtení registru přímo z dané adresy paměti, musí se nejprve načíst dvojice registrů HL s adresou a cílový registr lze poté načíst z operandu M, což je nepřímé načtení z místa v paměti. v registrovém páru HL. Do dvojice registrů BC se načte CNThodnota parametru a na konci smyčky se sníží, dokud se nestane nulou. Všimněte si, že většina použitých instrukcí zabírá jeden 8bitový operační kód.

Návrháři

  • CTC ( Instrukční sada a architektura ): Victor Poor a Harry Pyle .
  • Intel ( Implementace v křemíku ):
    • Ted Hoff , Stan Mazor a Larry Potter (hlavní vědecký pracovník IBM) navrhli jednočipovou implementaci architektury CTC s použitím paměti RAM registru spíše než paměti posuvného registru a také přidali několik instrukcí a zařízení pro přerušení. Návrh čipu 8008 (původně nazývaný 1201) začal před vývojem 4004. Hoff a Mazor však nemohli a nevyvinuli „křemíkový design“, protože nebyli ani návrháři čipů, ani vývojáři procesů, a navíc nezbytnou metodologii a obvody založené na křemíkové hradle, které vyvinul Federico Faggin pro 4004, ještě nebyly k dispozici.
    • Federico Faggin , který dokončil návrh 4004, se stal vedoucím projektu od ledna 1971 až do jeho úspěšného dokončení v dubnu 1972, poté, co byl – pro nedostatek pokroku – na asi sedm měsíců pozastaven.
    • Hal Feeney , projektový inženýr, provedl pod Fagginovým dohledem detailní logický návrh, návrh obvodů a fyzické rozvržení, přičemž použil stejnou metodologii návrhu, kterou Faggin původně vyvinul pro mikroprocesor Intel 4004, a využil základní obvody, které vyvinul pro 4004. Kombinované logo "HF" bylo vyleptáno na čip asi v polovině vzdálenosti mezi spojovacími podložkami D5 a D6.

Druhé zdroje

Viz také

  • Mark-8 a SCELBI , počítačové sestavy založené na 8008
  • MCM/70 a Micral , průkopnické mikropočítače
  • PL/M , první programovací jazyk zaměřený na mikroprocesor, Intel 8008, vyvinutý Gary Kildallem

Reference

externí odkazy