Intel 8008: Porovnání verzí

Z Wikipedie, otevřené encyklopedie
Smazaný obsah Přidaný obsah
JAnDbot (diskuse | příspěvky)
m robot: automatické nahrazení textu (-CPU +CPU)
+Strojové instrukce
 
(Není zobrazeno 6 mezilehlých verzí od 4 dalších uživatelů.)
Řádek 25: Řádek 25:
| patice = 18 pinů
| patice = 18 pinů
| produkt =
| produkt =
| předchůdce =
| předchůdce =
| nástupce =
| nástupce = [[Intel 8080]]
| proces = 10 μm
| proces = 10 μm
}}
}}
'''Intel 8008''' je první osmibitový [[mikroprocesor]] firmy [[Intel]]. Byl navržen [[1. duben|1. dubna]] [[1972]] v 18-pinovém [[Dual in-line package|DIP]] provedení. Pod původním kódovým označením ''1201'' byl původně vyvinut na zakázku firmou [[Computer Terminal Corporation]] do jejího programovatelného terminálu, ale čip byl dodán pozdě a nesplnil výkonnostní cíle, a proto nebyl k tomuto účelu použit. Díky tomu došlo k dohodě mezi CTC a Intelem, že obvod bude uveden na trh pro ostatní zákazníky.
'''Intel 8008''' je první osmibitový [[mikroprocesor]] firmy [[Intel]]. Byl navržen [[1. duben|1. dubna]] [[1972]] v 18-pinovém [[Dual in-line package|DIP]] provedení. Pod původním kódovým označením ''1201'' byl původně vyvinut na zakázku firmou [[Computer Terminal Corporation]] do jejího programovatelného terminálu [[Datapoint 2200]], ale čip byl dodán pozdě a nesplnil výkonnostní cíle, a proto nebyl k tomuto účelu použit. Díky tomu došlo k dohodě mezi CTC a Intelem, že obvod bude uveden na trh pro ostatní zákazníky.


Původní verze 8008 běžely na 0,5 [[Hertz|MHz]], později se taktovací [[frekvence]] zvýšila na 0,8 MHz. 8008 byl o trochu pomalejší než [[Intel 4004]] a [[Intel 4040]] co do vykonaných instrukcí za sekundu, ale tím, že 8008 zpracovával 8 bitů najednou, mohl přistupovat k mnohem většímu množství paměti [[RAM]] z něj dělaly [[Centrální procesorová jednotka|CPU]] 3–4 × rychlejší než výše zmíněné 4bitové čipy.
Původní verze 8008 běžely na 0,5 [[Hertz|MHz]], později se taktovací [[frekvence]] zvýšila na 0,8 MHz. 8008 byl o trochu pomalejší než [[Intel 4004]] a [[Intel 4040]] co do vykonaných instrukcí za sekundu, ale tím, že 8008 zpracovával 8 bitů najednou, mohl přistupovat k mnohem většímu množství paměti [[RAM]] z něj dělaly [[Centrální procesorová jednotka|CPU]] 3–4 × rychlejší než výše zmíněné čtyřbitové čipy.


[[Instrukční sada]] Intel 8008 a následných procesorů architektury [[CISC]] byly výrazně ovlivněny návrhem stran společnosti CTC.
[[Instrukční sada]] Intel 8008 a následných procesorů architektury [[CISC]] byly výrazně ovlivněny návrhem společnosti CTC.


Čip měl jednoduchou 8bitovou sběrnici a vyžadoval poměrně mnoho podpůrných obvodů. Intel 8008 mohl přistupovat k 8 vstupním a 24 výstupním [[Port (hardware)|portům]].
Čip měl jednoduchou osmibitovou sběrnici a vyžadoval poměrně mnoho podpůrných obvodů. Intel 8008 mohl přistupovat k 8 vstupním a 24 výstupním [[Vstup/výstup|portům]].


Pro využití jako monitorový terminál a obecný řadič byl návrh Intel 8008 přijatelný, ale pro jiné úkoly bylo jeho použití nepraktické. Jeho hlavními nedostatky je omezená hloubka [[zásobník]]u a nemožnost uložit všechny registry při příchodu [[přerušení]]. Několik málo počítačů na něm bylo založeno, ale většina místo toho využila vylepšených vlastností [[Intel 8080]].
Pro využití jako monitorový terminál a obecný řadič byl návrh Intel 8008 přijatelný, ale pro jiné úkoly bylo jeho použití nepraktické. Jeho hlavními nedostatky je omezená hloubka [[Zásobník volání|zásobníku volání]] a nemožnost uložit všechny registry při příchodu [[přerušení]]. Několik málo počítačů na něm bylo založeno, ale většina místo toho využila vylepšených vlastností [[Intel 8080]].


Skupina procesorů okolo 8008 je též někdy nazývána pod označením MCS-8.
Skupina obvodů okolo 8008 je označována MCS-8.


Procesor Intel 8008 navrhli: Victor Pooh, Harry Pyle, Marcian Hoff, Stan Mazor, Frederico Faggin a Hal Feeney.
Procesor Intel 8008 navrhli: Victor Pooh, Harry Pyle, Marcian Hoff, Stan Mazor, Frederico Faggin a Hal Feeney.


* 0,05 MIPS.
* 0,05 [[MIPS]].
* Rozšířená načítací [[PMOS]] logika.
* Rozšířená načítací [[PMOS]] logika.
* 3500 [[tranzistor]]ů. Technologie 10 [[μm]].
* 3500 [[tranzistor]]ů. Technologie 10 [[μm]].
* 16 [[Bajt|KiB]] adresovatelné paměti.
* 16 [[Bajt|KiB]] adresovatelné paměti.
* Původně navržený pro terminál Datapoint 2200
* Původně navržený pro terminál [[Datapoint 2200]]


== Návrháři ==
== Návrháři ==
* CTC ([[Instrukční sada]] a [[architektura]]): Victor Poor a Harry Pyle.
* Návrh [[Instrukční sada|instrukční sady]] a [[Architektura procesoru|architektury]]: Victor Poor a Harry Pyle (CTC).
* Hardwarová implementace: [[Intel]]:
* Intel (Implementation in silicon):
** Jednočipovou implementaci CTC architektury navrhli Marcian „Ted“ Hoff, Stan Mazor a Larry Potter (hlavní vědecký pracovník [[IBM]]), pro registry použili paměť RAM místo [[Posuvný registr|posuvných registrů]], přidali několik instrukcí a systém [[přerušení]]. Návrh čipu 8008 (původně nazývaného 1201) začal ještě před vývojem čipu 4004. Hoff a Mazor však nemohli vyvinout a ani nevyvinuli „křemíkový návrh“, protože nebyli ani návrháři čipů, ani návrháři procesu, a navíc ještě nebyla k dispozici potřebná metodika návrhu založená na křemíkových hradlech a obvodech, kterou pro 4004 vyvíjel Federico Faggin.<ref>{{Citace periodika
** Marcian "Ted" Hoff, Stan Mazor a Larry Potter (IBM hlavní vědci z [[IBM]]) navrhovali jednočipovou implementaci CTC architektury, použili radši RAM paměť pro registry než posuvný (''"shift"'') registr paměti a také přidali pár instrukcí a přerušení zařízení
| příjmení = Faggin
** Federico Faggin se stal vedoucím projektu od ledna [[1971]], potom co byl suspendován kvůli problému s pokrokem projektu, asi na 7 měsíců, až do dokončení projektu v dubnu [[1972]]
| jméno = Federico
** Hal Feeney inženýr projektu udělal detailní logický návrh, obvodový návrh a fyzický rozvržení pod dohleden Faggina, využil stejnou metodu návrhu jako použil Faggin (originál) u Intel 4004 mikročipu a využil obvodů 4004. Poznámka: jeho kombinovaná HF logo je na čipu asi v polovině cesty mezi kontaktními plochami D5 a D6.
| odkaz na autora = Federico Faggin
| příjmení2 = Hoff, Jr.
| jméno2 = Marcian E.
| odkaz na autora2 = Marcian E. Hoff Jr.
| příjmení3 = Mazor
| jméno3 = Stanley
| odkaz na autora3 = Stanley Mazor
| příjmení4 = Shima
| jméno4 = Masatoshi
| odkaz na autora4 = Masatoshi Shima
| titul = The History of the 4004
| periodikum = IEEE Micro
| ročník = 16
| číslo = 6
| strany = 10–19
| vydavatel = IEEE Computer Society
| místo = Los Alamitos, USA
| datum = December 1996
| issn = 0272-1732
| doi = 10.1109/40.546561
| ref = harv
}}</ref><!-- Pochybné; ani Hoff ani Mazor nebyly designéry výrobního procesu, ale Hoff vyvinul dynamickou paměť RAM, takže mohl být designér integrovaných obvodů. Hoff, Mazor, a procesní inženýr (kterým nebyl Faggin) byly odpovědní za NPULS (SPICE-jako) obvodové modely a obvodové simulace. Mazor prováděl simulace architektury. -->
** Poté, co byl projekt pro nedostatek postupu asi na sedm měsíců pozastaven, se od ledna [[1971]] stal vedoucím projektu Federico Faggin, který jej v dubnu [[1972]] dokončil.
** Hal Feeney, inženýr projektu, vytvořil pod dohledem Faggina detailní logický návrh, obvodový návrh a fyzické rozvržení; při tom využil stejnou metodu návrhu , kterou Faggin původně vyvinul pro mikroprocesor Intel 4004, a využil základní obvody vyvinuté pro 4004. Na čipu bylo přibližně v polovině vzdálenosti mezi spojovacími ploškami D5 a D6 vyleptáno kombinované logo „HF“.


== Architektura ==
== Architektura ==
Řádek 157: Řádek 181:
| formát = PDF
| formát = PDF
| datunm přístupu = December 4, 2010
| datunm přístupu = December 4, 2010
| datum přístupu = 2007-06-06
}}</ref>
| url archivu = https://web.archive.org/web/20070927030254/http://www.classiccmp.org/8008/8008UM.pdf
| datum archivace = 2007-09-27
| nedostupné = ano
}}</ref>
Přenos dat mezi registry a aritmeticko-logické operace trvaly 5T (20&nbsp;μs při 0.5&nbsp;MHz), přenosy mezi registry a pamětí 8T (32&nbsp;μs), volání podprogramů a skoky trvaly 11T (44&nbsp;μs).<ref name="pastraiser">{{Citace elektronické monografie
Přenos dat mezi registry a aritmeticko-logické operace trvaly 5T (20&nbsp;μs při 0.5&nbsp;MHz), přenosy mezi registry a pamětí 8T (32&nbsp;μs), volání podprogramů a skoky trvaly 11T (44&nbsp;μs).<ref name="pastraiser">{{Citace elektronické monografie
| titul = Intel 8008 Opcodes
| titul = Intel 8008 Opcodes
Řádek 163: Řádek 191:
| datum přístupu = December 4, 2010
| datum přístupu = December 4, 2010
}}</ref>
}}</ref>
Rychlost mikroprocesoru Intel 8008 vyjádřená v [[instrukce za sekundu|instrukcích za sekundu]] byla poněkud nižší (36 až 80 tisíc při 0,8&nbsp;MHz) než 4bitových [[Intel 4004]] a [[Intel 4040]],<ref>{{Citace elektronické monografie
Rychlost mikroprocesoru Intel 8008 vyjádřená v [[MIPS|instrukcích za sekundu]] byla poněkud nižší (36 až 80 tisíc při 0,8&nbsp;MHz) než čtyřbitových [[Intel 4004]] a [[Intel 4040]],<ref>{{Citace elektronické monografie
| titul = Intel 8008 (i8008) microprocessor family
| titul = Intel 8008 (i8008) microprocessor family
| vydavatel = CPU World
| vydavatel = CPU World
Řádek 169: Řádek 197:
| url = http://www.cpu-world.com/CPUs/8008/index.html
| url = http://www.cpu-world.com/CPUs/8008/index.html
| datum přístupu = December 4, 2010
| datum přístupu = December 4, 2010
}}</ref>, ale díky tomu, že Intel 8008 zpracovával 8bitová data a mohl adresovat podstatně větší paměť, byl ve většině aplikací rychlejší. Intel 8008 obsahoval 3500 [[tranzistor]]ů.<ref>{{Citace elektronického periodika |titul=Archivovaná kopie |url=http://www.intel.com/museum/archives/history_docs/Moore.htm |datum přístupu=28-06-2009 |url archivu=https://web.archive.org/web/20090904175848/http://www.intel.com/museum/archives/history_docs/Moore.htm |datum archivace=04-09-2009 |nedostupné=ano }}</ref><ref>
}}</ref>, ale díky tomu, že Intel 8008 zpracovával osmibitová data a mohl adresovat podstatně větší paměť, byl ve většině aplikací rychlejší. Intel 8008 obsahoval 3500 [[tranzistor]]ů.<ref>{{Citace elektronického periodika |titul=Archivovaná kopie |url=http://www.intel.com/museum/archives/history_docs/Moore.htm |datum přístupu=28-06-2009 |url archivu=https://web.archive.org/web/20090904175848/http://www.intel.com/museum/archives/history_docs/Moore.htm |datum archivace=04-09-2009 |nedostupné=ano }}</ref><ref>
Intel.
Intel.
[http://www.intel.com/content/dam/www/public/us/en/documents/corporate-information/history-intel-chips-timeline-poster.pdf "Intel Chips: timeline poster"].
[http://www.intel.com/content/dam/www/public/us/en/documents/corporate-information/history-intel-chips-timeline-poster.pdf "Intel Chips: timeline poster"].
Řádek 180: Řádek 208:


Intel 8008 měl šířku [[adresní sběrnice]] 14 bitů, což dovolovalo adresovat 16 KB paměti. Obsahoval 7 osmibitových univerzálních registrů (včetně akumulátoru), 14bitový programový čítač a sedmiúrovňový zásobník 14bitových návratových adres.
Intel 8008 měl šířku [[adresní sběrnice]] 14 bitů, což dovolovalo adresovat 16 KB paměti. Obsahoval 7 osmibitových univerzálních registrů (včetně akumulátoru), 14bitový programový čítač a sedmiúrovňový zásobník 14bitových návratových adres.

== Strojové instrukce ==
* Intel 8008 měl interní zásobník o hloubce 7 úrovní. Ve skutečnosti byl zásobník implementován jako soubor 8 registrů o šířce 14 bitů. Aktuální programový čítač byl vždy jedním z nich.
* Neexistovala žádná 16bitová aritmetika. Jediným párem registrů byl HL, který se (pod označením M) používal jako odkaz na paměť.
* Doba trvání instrukce je uvedena v taktech hodin. Existovaly dvě verze 8008. 8008 s rychlostí do 500 kHz a 8008-1 s rychlostí do 800 kHz. Při taktu 500kHz trvala instrukce NOP 20μs a při taktu 800kHz pro 8008-1 trvala 12,5μs.
* Na rozdíl od 8080 neexistoval žádný registr příznaků, proto není uvedena bitová pozice příznaků.
* Adresní sběrnice byla široká 14bitů, takže bylo možné adresovat pouze 16kB RAM.
* 8008 měla jen omezené možnosti přerušení. Neexistovaly instrukce pro zákaz a povolení přerušení, takže přerušení bylo stále povolené. Protože neexistovaly instrukce, které by dokázaly obsah registru uložit na zásobník nebo jej z něj načíst, bylo možné se na paměť odkazovat pouze prostřednictvím dvojice registrů HL, které bylo nutné upravit tak, aby do paměti ukládaly obsah jiných registrů. V rutině obsluhy přerušení nebylo možné uložit a poté obnovit obsah všech registrů, což činilo přerušení téměř nepoužitelným. Existovalo řešení k překonání tohoto problému; obsah registrů mohl uložen na externí port instrukcí OUT a z něj přečten pomocí instrukce IN.<ref>{{Citace elektronické monografie
| url = https://www.pastraiser.com/cpu/i8008/i8008_opcodes.html
| datum přístupu = 2024-04-07
| ref = harv
| jazyk = en
}}</ref>

{| {{chset-tableformat}}
{{chset-table-header|Instrukční sada Intel 8008}}
|-
!{{chset-left|0}}
|{{chset-color-ext-punct}}|{{chset-cell3||<nowiki>*</nowiki>HLT<br/>1 8|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||<nowiki>*</nowiki>HLT<br/>1 8|- - - -}}
|{{chset-color-intl}}|{{chset-cell3||RLC<br/>1 10|- - - C}}
|{{chset-color-intl}}|{{chset-cell3||RFC<br/>1 10/6|- - - -}}
|{{chset-color-digit}}|{{chset-cell3||ADI d8<br/>2 16|S Z P -}}
|{{chset-color-punct}}|{{chset-cell3||RST 0<br/>1 10|- - - -}}
|{{chset-color-digit}}|{{chset-cell3||LAI d8<br/>2 16|- - - -}}
|{{chset-color-intl}}|{{chset-cell3||RET<br/>1 10|- - - -}}
|{{chset-color-intl}}|{{chset-cell3||INB<br/>1 10|S Z P -}}
|{{chset-color-intl}}|{{chset-cell3||DCB<br/>1 10|S Z P -}}
|{{chset-color-intl}}|{{chset-cell3||RRC<br/>1 10|- - - C}}
|{{chset-color-intl}}|{{chset-cell3||RFZ<br/>1 10/6|- - - -}}
|{{chset-color-digit}}|{{chset-cell3||ACI d8<br/>2 16|S Z P -}}
|{{chset-color-punct}}|{{chset-cell3||RST 1<br/>1 10|- - - -}}
|{{chset-color-digit}}|{{chset-cell3||LBI d8<br/>2 16|- - - -}}
|{{chset-color-intl}}|{{chset-cell3||<nowiki>*</nowiki>RET<br/>1 10|- - - -}}
|-
!{{chset-left|1}}
|{{chset-color-intl}}|{{chset-cell3||INC<br/>1 10|S Z P -}}
|{{chset-color-intl}}|{{chset-cell3||DCC<br/>1 10|S Z P -}}
|{{chset-color-intl}}|{{chset-cell3||RAL<br/>1 10|- - - C}}
|{{chset-color-intl}}|{{chset-cell3||RFS<br/>1 10/6|- - - -}}
|{{chset-color-digit}}|{{chset-cell3||SUI d8<br/>2 16|S Z P -}}
|{{chset-color-punct}}|{{chset-cell3||RST 2<br/>1 10|- - - -}}
|{{chset-color-digit}}|{{chset-cell3||LCI d8<br/>2 16|- - - -}}
|{{chset-color-intl}}|{{chset-cell3||<nowiki>*</nowiki>RET<br/>1 10|- - - -}}
|{{chset-color-intl}}|{{chset-cell3||IND<br/>1 10|S Z P -}}
|{{chset-color-intl}}|{{chset-cell3||DCD<br/>1 10|S Z P -}}
|{{chset-color-intl}}|{{chset-cell3||RAR<br/>1 10|- - - C}}
|{{chset-color-intl}}|{{chset-cell3||RFP<br/>1 10/6|- - - -}}
|{{chset-color-digit}}|{{chset-cell3||SBI d8<br/>2 16|S Z P -}}
|{{chset-color-punct}}|{{chset-cell3||RST 3<br/>1 10|- - - -}}
|{{chset-color-digit}}|{{chset-cell3||LDI d8<br/>2 16|- - - -}}
|{{chset-color-intl}}|{{chset-cell3||<nowiki>*</nowiki>RET<br/>1 10|- - - -}}
|-
!{{chset-left|2}}
|{{chset-color-intl}}|{{chset-cell3||INE<br/>1 10|S Z P -}}
|{{chset-color-intl}}|{{chset-cell3||DCE<br/>1 10|S Z P -}}
|{{chset-color-undef}}|{{chset-cell3||&nbsp;|&nbsp;}}
|{{chset-color-intl}}|{{chset-cell3|| RTC<br/>1 10/6|- - - -}}
|{{chset-color-digit}}|{{chset-cell3||NDI d8<br/>2 16|S Z P -}}
|{{chset-color-punct}}|{{chset-cell3||RST 4<br/>1 10|- - - -}}
|{{chset-color-digit}}|{{chset-cell3||LEI d8<br/>2 16|- - - -}}
|{{chset-color-intl}}|{{chset-cell3||<nowiki>*</nowiki>RET<br/>1 10|- - - -}}
|{{chset-color-intl}}|{{chset-cell3||INH<br/>1 10|S Z P -}}
|{{chset-color-intl}}|{{chset-cell3||DCH<br/>1 10|S Z P -}}
|{{chset-color-undef}}|{{chset-cell3||&nbsp;|&nbsp;}}
|{{chset-color-intl}}|{{chset-cell3|| RTZ<br/>1 10/6|- - - -}}
|{{chset-color-digit}}|{{chset-cell3||XRI d8<br/>2 16|S Z P -}}
|{{chset-color-punct}}|{{chset-cell3||RST 5<br/>1 10|- - - -}}
|{{chset-color-digit}}|{{chset-cell3||LHI d8<br/>2 16|- - - -}}
|{{chset-color-intl}}|{{chset-cell3||<nowiki>*</nowiki>RET<br/>1 10|- - - -}}
|-
!{{chset-left|3}}
|{{chset-color-intl}}|{{chset-cell3||INL<br/>1 10|S Z P -}}
|{{chset-color-intl}}|{{chset-cell3||DCL<br/>1 10|S Z P -}}
|{{chset-color-undef}}|{{chset-cell3||&nbsp;|&nbsp;}}
|{{chset-color-intl}}|{{chset-cell3|| RTS<br/>1 10/6|- - - -}}
|{{chset-color-digit}}|{{chset-cell3||ORI d8<br/>2 16|S Z P -}}
|{{chset-color-punct}}|{{chset-cell3||RST 6<br/>1 10|- - - -}}
|{{chset-color-digit}}|{{chset-cell3||LLI d8<br/>2 16|- - - -}}
|{{chset-color-intl}}|{{chset-cell3||<nowiki>*</nowiki>RET<br/>1 10|- - - -}}
|{{chset-color-undef}}|{{chset-cell3||&nbsp;|&nbsp;}}
|{{chset-color-undef}}|{{chset-cell3||&nbsp;|&nbsp;}}
|{{chset-color-undef}}|{{chset-cell3||&nbsp;|&nbsp;}}
|{{chset-color-intl}}|{{chset-cell3|| RTP<br/>1 10/6|- - - -}}
|{{chset-color-digit}}|{{chset-cell3||CPI d8<br/>2 16|S Z P -}}
|{{chset-color-punct}}|{{chset-cell3||RST 7<br/>1 10|- - - -}}
|{{chset-color-digit}}|{{chset-cell3||LMI d8<br/>2 18|- - - -}}
|{{chset-color-intl}}|{{chset-cell3||<nowiki>*</nowiki>RET<br/>1 10|- - - -}}
|-
!{{chset-left|4}}
|{{chset-color-graph}}|{{chset-cell3||JFC w<br/>3 22/18|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||INP 0<br/>1 16|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||CFC w<br/>3 22/18|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||INP 1<br/>1 16|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||JMP w<br/>3 22|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||INP 2<br/>1 16|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||CAL w<br/>3 22|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||INP 3<br/>1 16|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||JFZ w<br/>3 22/18|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||INP 4<br/>1 16|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||CFZ w<br/>3 22/18|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||INP 5<br/>1 16|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||<nowiki>*</nowiki>JMP w<br/>3 22|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||INP 6<br/>1 16|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||<nowiki>*</nowiki>CAL w<br/>3 22|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||INP 7<br/>1 16|- - - -}}
|-
!{{chset-left|5}}
|{{chset-color-graph}}|{{chset-cell3||JFS w<br/>3 22/18|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||OUT 8<br/>1 12|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||CFS w<br/>3 22/18|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||OUT 9<br/>1 12|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||<nowiki>*</nowiki>JMP w<br/>3 22|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||OUT 10<br/>1 12|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||<nowiki>*</nowiki>CAL w<br/>3 22|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||OUT 11<br/>1 12|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||JFP w<br/>3 22/18|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||OUT 12<br/>1 12|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||CFP w<br/>3 22/18|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||OUT 13<br/>1 12|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||<nowiki>*</nowiki>JMP w<br/>3 22|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||OUT 14<br/>1 12|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||<nowiki>*</nowiki>CAL w<br/>3 22|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||OUT 15<br/>1 12|- - - -}}
|-
!{{chset-left|6}}
|{{chset-color-graph}}|{{chset-cell3||JTC w<br/>3 22/18|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||OUT 16<br/>1 12|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||CTC w<br/>3 22/18|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||OUT 17<br/>1 12|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||<nowiki>*</nowiki>JMP w<br/>3 22|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||OUT 18<br/>1 12|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||<nowiki>*</nowiki>CAL w<br/>3 22|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||OUT 19<br/>1 12|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||JTZ w<br/>3 22/18|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||OUT 20<br/>1 12|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||CTZ w<br/>3 22/18|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||OUT 21<br/>1 12|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||<nowiki>*</nowiki>JMP w<br/>3 22|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||OUT 22<br/>1 12|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||<nowiki>*</nowiki>CAL w<br/>3 22|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||OUT 23<br/>1 12|- - - -}}
|-
!{{chset-left|7}}
|{{chset-color-graph}}|{{chset-cell3||JTS w<br/>3 22/18|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||OUT 24<br/>1 12|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||CTS w<br/>3 22/18|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||OUT 25<br/>1 12|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||<nowiki>*</nowiki>JMP w<br/>3 22|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||OUT 26<br/>1 12|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||<nowiki>*</nowiki>CAL w<br/>3 22|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||OUT 27<br/>1 12|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||JTP w<br/>3 22/18|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||OUT 28<br/>1 12|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||CTP w<br/>3 22/18|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||OUT 29<br/>1 12|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||<nowiki>*</nowiki>JMP w<br/>3 22|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||OUT 30<br/>1 12|- - - -}}
|{{chset-color-graph}}|{{chset-cell3||<nowiki>*</nowiki>CAL w<br/>3 22|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||OUT 31<br/>1 12|- - - -}}
|-
!{{chset-left|8}}
|{{chset-color-intl}}|{{chset-cell3||ADA<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||ADB<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||ADC<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||ADD<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||ADE<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||ADH<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||ADL<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||ADM<br/>1 16|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||ACA<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||ACB<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||ACC<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||ACD<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||ACE<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||ACH<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||ACL<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||ACM<br/>1 16|S Z P C}}
|-
!{{chset-left|9}}
|{{chset-color-intl}}|{{chset-cell3||SUA<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||SUB<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||SUC<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||SUD<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||SUE<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||SUH<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||SUL<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||SUM<br/>1 16|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||SBA<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||SBB<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||SBC<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||SBD<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||SBE<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||SBH<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||SBL<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||SBM<br/>1 16|S Z P C}}
|-
!{{chset-left|A}}
|{{chset-color-intl}}|{{chset-cell3||NDA<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||NDB<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||NDC<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||NDD<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||NDE<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||NDH<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||NDL<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||NDM<br/>1 16|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||XRA<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||XRB<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||XRC<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||XRD<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||XRE<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||XRH<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||XRL<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||XRM<br/>1 16|S Z P C}}
|-
!{{chset-left|B}}
|{{chset-color-intl}}|{{chset-cell3||ORA<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||ORB<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||ORC<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||ORD<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||ORE<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||ORH<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||ORL<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||ORM<br/>1 16|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||CPA<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||CPB<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||CPC<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||CPD<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||CPE<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||CPH<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||CPL<br/>1 10|S Z P C}}
|{{chset-color-intl}}|{{chset-cell3||CPM<br/>1 16|S Z P C}}
|-
!{{chset-left|C}}
|{{chset-color-ext-punct}}|{{chset-cell3||NOP<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LAB<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LAC<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LAD<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LAE<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LAH<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LAL<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LAM<br/>1 16|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LBA<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LBB<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LBC<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LBD<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LBE<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LBH<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LBL<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LBM<br/>1 16|- - - -}}
|-
!{{chset-left|D}}
|{{chset-color-alpha}}|{{chset-cell3||LCA<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LCB<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LCC<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LCD<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LCE<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LCH<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LCL<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LCM<br/>1 16|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LDA<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LDB<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LDC<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LDD<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LDE<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LDH<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LDL<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LDM<br/>1 16|- - - -}}
|-
!{{chset-left|E}}
|{{chset-color-alpha}}|{{chset-cell3||LEA<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LEB<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LEC<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LED<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LEE<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LEH<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LEL<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LEM<br/>1 16|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LHA<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LHB<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LHC<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LHD<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LHE<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LHH<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LHL<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LHM<br/>1 16|- - - -}}
|-
!{{chset-left|F}}
|{{chset-color-alpha}}|{{chset-cell3||LLA<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LLB<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LLC<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LLD<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LLE<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LLH<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LLL<br/>1 10|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LLM<br/>1 16|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LMA<br/>1 14|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LMB<br/>1 14|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LMC<br/>1 14|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LMD<br/>1 14|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LME<br/>1 14|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LMH<br/>1 14|- - - -}}
|{{chset-color-alpha}}|{{chset-cell3||LML<br/>1 14|- - - -}}
|{{chset-color-ext-punct}}|{{chset-cell3||HLT<br/>1 8|- - - -}}
|-
{{chset-table-footer}}
|}


== Ukázka kódu ==
== Ukázka kódu ==
Řádek 195: Řádek 530:
ORG 1700Q ;Data na adrese 001700q
ORG 1700Q ;Data na adrese 001700q
001700 000 SRC DFB 0 ;SRC, nižší byte
001700 000 SRC DFB 0 ;SRC, nižší byte
001701 000 DFB 0 ; vyšší byte
001701 000 DFB 0 ; vyšší byte
001702 000 DST DFB 0 ;DST, nižší byte
001702 000 DST DFB 0 ;DST, nižší byte
001703 000 DFB 0 ; vyšší byte
001703 000 DFB 0 ; vyšší byte
001704 000 CNT DFB 0 ;CNT, nižší byte
001704 000 CNT DFB 0 ;CNT, nižší byte
001705 000 DFB 0 ; vyšší byte
001705 000 DFB 0 ; vyšší byte


ORG 2000Q ;Kód na adrese 002000q
ORG 2000Q ;Kód na adrese 002000q
002000 066 304 MEMCPY LLI CNT+0 ;HL = addr(CNT)
002000 066 304 MEMCPY LLI CNT+0 ;HL = addr(CNT)
002002 056 003 LHI CNT+1
002002 056 003 LHI CNT+1
002004 327 LCM ;BC = CNT
002004 327 LCM ;BC = CNT
002005 060 INL
002005 060 INL
002006 317 LBM
002006 317 LBM
002007 302 LOOP LAC ;Jestliže BC = 0,
002007 302 LOOP LAC ;Jestliže BC = 0,
002010 261 ORB
002010 261 ORB
002011 053 RTZ ;Návrat
002011 053 RTZ ;Návrat
002012 302 DECCNT LAC ;BC = BC-1
002012 302 DECCNT LAC ;BC = BC-1
002013 024 001 SUI 1
002013 024 001 SUI 1
002015 320 LCA
002015 320 LCA
002016 301 LAB
002016 301 LAB
002017 034 000 SBI 0
002017 034 000 SBI 0
002021 310 LBA
002021 310 LBA
002022 066 300 GETSRC LLI SRC+0 ;HL = addr(SRC)
002022 066 300 GETSRC LLI SRC+0 ;HL = addr(SRC)
002024 056 003 LHI SRC+1
002024 056 003 LHI SRC+1
002026 347 LEM ;DE = SRC
002026 347 LEM ;DE = SRC
002027 060 INL
002027 060 INL
002030 337 LDM
002030 337 LDM
002031 302 LAC ;HL = DE+BC
002031 302 LAC ;HL = DE+BC
002032 206 ADE
002032 206 ADE
002033 360 LLA
002033 360 LLA
002034 301 LAB
002034 301 LAB
002035 215 ACD
002035 215 ACD
002036 350 LHA
002036 350 LHA
002037 307 LAM ;Načti A z adresy (HL)
002037 307 LAM ;Načti A z adresy (HL)
002040 066 302 GETDST LLI DST+0 ;HL = addr(DST)
002040 066 302 GETDST LLI DST+0 ;HL = addr(DST)
002042 056 003 LHI DST+1
002042 056 003 LHI DST+1
002044 347 LEM ;DE = DST
002044 347 LEM ;DE = DST
002045 060 INL
002045 060 INL
002046 337 LDM
002046 337 LDM
002047 364 LLE ;HL = DE
002047 364 LLE ;HL = DE
002050 353 LHD
002050 353 LHD
002051 330 LDA ;D = A
002051 330 LDA ;D = A
002052 302 LAC ;HL = HL+BC
002052 302 LAC ;HL = HL+BC
002053 206 ADL
002053 206 ADL
002054 360 LLA
002054 360 LLA
002055 301 LAB
002055 301 LAB
002056 215 ACH
002056 215 ACH
002057 350 LHA
002057 350 LHA
002060 373 LMD ;Ulož D na adresu (HL)
002060 373 LMD ;Ulož D na adresu (HL)
002061 104 007 004 JMP LOOP ;Opakovat
002061 104 007 004 JMP LOOP ;Opakovat
002064 END
002064 END
</syntaxhighlight>
</syntaxhighlight>


Řádek 262: Řádek 597:
=== Externí odkazy ===
=== Externí odkazy ===
* {{Commonscat}}
* {{Commonscat}}
* [http://www.classiccmp.org/8008/8008UM.pdf MCS-8 - Uživatelský manuál] se specifikací 8008 (z roku 1972)
* [http://www.classiccmp.org/8008/8008UM.pdf MCS-8 - Uživatelský manuál] {{Wayback|url=http://www.classiccmp.org/8008/8008UM.pdf |date=20070927030254 }} se specifikací 8008 (z roku 1972)
* [https://web.archive.org/web/20080814215757/http://www.computerworld.com/action/article.do?command=printArticleBasic&articleId=9111341 Computer World] PC historie: Pravý originál osobního počítače
* [https://web.archive.org/web/20080814215757/http://www.computerworld.com/action/article.do?command=printArticleBasic&articleId=9111341 Computer World] PC historie: Pravý originál osobního počítače
* [https://web.archive.org/web/20110720142146/http://home.germany.net/nils.eilers/8008/ Intel 8008 podpora] neoficiální
* [https://web.archive.org/web/20110720142146/http://home.germany.net/nils.eilers/8008/ Intel 8008 podpora] neoficiální

Aktuální verze z 7. 4. 2024, 15:32

Intel 8008
Specifikace
Uvedení1. dubna 1972
Výrobní proces10 μm
Počet jader1
Frekvence500/800 kHz
Paměť programu4 KiB
Patice18 pinů
NástupceIntel 8080

Intel 8008 je první osmibitový mikroprocesor firmy Intel. Byl navržen 1. dubna 1972 v 18-pinovém DIP provedení. Pod původním kódovým označením 1201 byl původně vyvinut na zakázku firmou Computer Terminal Corporation do jejího programovatelného terminálu Datapoint 2200, ale čip byl dodán pozdě a nesplnil výkonnostní cíle, a proto nebyl k tomuto účelu použit. Díky tomu došlo k dohodě mezi CTC a Intelem, že obvod bude uveden na trh pro ostatní zákazníky.

Původní verze 8008 běžely na 0,5 MHz, později se taktovací frekvence zvýšila na 0,8 MHz. 8008 byl o trochu pomalejší než Intel 4004 a Intel 4040 co do vykonaných instrukcí za sekundu, ale tím, že 8008 zpracovával 8 bitů najednou, mohl přistupovat k mnohem většímu množství paměti RAM z něj dělaly CPU 3–4 × rychlejší než výše zmíněné čtyřbitové čipy.

Instrukční sada Intel 8008 a následných procesorů architektury CISC byly výrazně ovlivněny návrhem společnosti CTC.

Čip měl jednoduchou osmibitovou sběrnici a vyžadoval poměrně mnoho podpůrných obvodů. Intel 8008 mohl přistupovat k 8 vstupním a 24 výstupním portům.

Pro využití jako monitorový terminál a obecný řadič byl návrh Intel 8008 přijatelný, ale pro jiné úkoly bylo jeho použití nepraktické. Jeho hlavními nedostatky je omezená hloubka zásobníku volání a nemožnost uložit všechny registry při příchodu přerušení. Několik málo počítačů na něm bylo založeno, ale většina místo toho využila vylepšených vlastností Intel 8080.

Skupina obvodů okolo 8008 je označována MCS-8.

Procesor Intel 8008 navrhli: Victor Pooh, Harry Pyle, Marcian Hoff, Stan Mazor, Frederico Faggin a Hal Feeney.

Návrháři[editovat | editovat zdroj]

  • Návrh instrukční sady a architektury: Victor Poor a Harry Pyle (CTC).
  • Hardwarová implementace: Intel:
    • Jednočipovou implementaci CTC architektury navrhli Marcian „Ted“ Hoff, Stan Mazor a Larry Potter (hlavní vědecký pracovník IBM), pro registry použili paměť RAM místo posuvných registrů, přidali několik instrukcí a systém přerušení. Návrh čipu 8008 (původně nazývaného 1201) začal ještě před vývojem čipu 4004. Hoff a Mazor však nemohli vyvinout a ani nevyvinuli „křemíkový návrh“, protože nebyli ani návrháři čipů, ani návrháři procesu, a navíc ještě nebyla k dispozici potřebná metodika návrhu založená na křemíkových hradlech a obvodech, kterou pro 4004 vyvíjel Federico Faggin.[1]
    • Poté, co byl projekt pro nedostatek postupu asi na sedm měsíců pozastaven, se od ledna 1971 stal vedoucím projektu Federico Faggin, který jej v dubnu 1972 dokončil.
    • Hal Feeney, inženýr projektu, vytvořil pod dohledem Faggina detailní logický návrh, obvodový návrh a fyzické rozvržení; při tom využil stejnou metodu návrhu , kterou Faggin původně vyvinul pro mikroprocesor Intel 4004, a využil základní obvody vyvinuté pro 4004. Na čipu bylo přibližně v polovině vzdálenosti mezi spojovacími ploškami D5 a D6 vyleptáno kombinované logo „HF“.

Architektura[editovat | editovat zdroj]

Mikroarchitektura I8008
Registry mikroprocesoru Intel 8008
13 12 11 10 09 08 07 06 05 04 03 02 01 00 (číslo bitu)
Hlavní registry
  A Akumulátor
  B B registr
  C C registr
  D D registr
  E E registr
  H H registr (pro nepřímé adresování)
  L L registr (pro nepřímé adresování)
Programový čítač
PC Program Counter
Zásobník návratových adres
AS Úroveň volání 1
AS Úroveň volání 2
AS Úroveň volání 3
AS Úroveň volání 4
AS Úroveň volání 5
AS Úroveň volání 6
AS Úroveň volání 7
Stavový registr
  C P Z S Příznaky

Intel 8008 byl vyráběn technologií PMOS 10 μm; první verze měly kmitočet hodin do 0,5 MHz, pozdější (8008-1) do 0,8 MHz. Instrukce trvaly 5 až 11 T-stavů a jeden T-stav byly 2 periody hodin.[2] Přenos dat mezi registry a aritmeticko-logické operace trvaly 5T (20 μs při 0.5 MHz), přenosy mezi registry a pamětí 8T (32 μs), volání podprogramů a skoky trvaly 11T (44 μs).[3] Rychlost mikroprocesoru Intel 8008 vyjádřená v instrukcích za sekundu byla poněkud nižší (36 až 80 tisíc při 0,8 MHz) než čtyřbitových Intel 4004 a Intel 4040,[4], ale díky tomu, že Intel 8008 zpracovával osmibitová data a mohl adresovat podstatně větší paměť, byl ve většině aplikací rychlejší. Intel 8008 obsahoval 3500 tranzistorů.[5][6][7]

Intel 8008 měl šířku adresní sběrnice 14 bitů, což dovolovalo adresovat 16 KB paměti. Obsahoval 7 osmibitových univerzálních registrů (včetně akumulátoru), 14bitový programový čítač a sedmiúrovňový zásobník 14bitových návratových adres.

Strojové instrukce[editovat | editovat zdroj]

  • Intel 8008 měl interní zásobník o hloubce 7 úrovní. Ve skutečnosti byl zásobník implementován jako soubor 8 registrů o šířce 14 bitů. Aktuální programový čítač byl vždy jedním z nich.
  • Neexistovala žádná 16bitová aritmetika. Jediným párem registrů byl HL, který se (pod označením M) používal jako odkaz na paměť.
  • Doba trvání instrukce je uvedena v taktech hodin. Existovaly dvě verze 8008. 8008 s rychlostí do 500 kHz a 8008-1 s rychlostí do 800 kHz. Při taktu 500kHz trvala instrukce NOP 20μs a při taktu 800kHz pro 8008-1 trvala 12,5μs.
  • Na rozdíl od 8080 neexistoval žádný registr příznaků, proto není uvedena bitová pozice příznaků.
  • Adresní sběrnice byla široká 14bitů, takže bylo možné adresovat pouze 16kB RAM.
  • 8008 měla jen omezené možnosti přerušení. Neexistovaly instrukce pro zákaz a povolení přerušení, takže přerušení bylo stále povolené. Protože neexistovaly instrukce, které by dokázaly obsah registru uložit na zásobník nebo jej z něj načíst, bylo možné se na paměť odkazovat pouze prostřednictvím dvojice registrů HL, které bylo nutné upravit tak, aby do paměti ukládaly obsah jiných registrů. V rutině obsluhy přerušení nebylo možné uložit a poté obnovit obsah všech registrů, což činilo přerušení téměř nepoužitelným. Existovalo řešení k překonání tohoto problému; obsah registrů mohl uložen na externí port instrukcí OUT a z něj přečten pomocí instrukce IN.[8]
Instrukční sada Intel 8008
_0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F
 
0_
 
*HLT
1 8


- - - -
*HLT
1 8


- - - -
RLC
1 10


- - - C
RFC
1 10/6


- - - -
ADI d8
2 16


S Z P -
RST 0
1 10


- - - -
LAI d8
2 16


- - - -
RET
1 10


- - - -
INB
1 10


S Z P -
DCB
1 10


S Z P -
RRC
1 10


- - - C
RFZ
1 10/6


- - - -
ACI d8
2 16


S Z P -
RST 1
1 10


- - - -
LBI d8
2 16


- - - -
*RET
1 10


- - - -
 
1_
 
INC
1 10


S Z P -
DCC
1 10


S Z P -
RAL
1 10


- - - C
RFS
1 10/6


- - - -
SUI d8
2 16


S Z P -
RST 2
1 10


- - - -
LCI d8
2 16


- - - -
*RET
1 10


- - - -
IND
1 10


S Z P -
DCD
1 10


S Z P -
RAR
1 10


- - - C
RFP
1 10/6


- - - -
SBI d8
2 16


S Z P -
RST 3
1 10


- - - -
LDI d8
2 16


- - - -
*RET
1 10


- - - -
 
2_
 
INE
1 10


S Z P -
DCE
1 10


S Z P -
 

 
RTC
1 10/6


- - - -
NDI d8
2 16


S Z P -
RST 4
1 10


- - - -
LEI d8
2 16


- - - -
*RET
1 10


- - - -
INH
1 10


S Z P -
DCH
1 10


S Z P -
 

 
RTZ
1 10/6


- - - -
XRI d8
2 16


S Z P -
RST 5
1 10


- - - -
LHI d8
2 16


- - - -
*RET
1 10


- - - -
 
3_
 
INL
1 10


S Z P -
DCL
1 10


S Z P -
 

 
RTS
1 10/6


- - - -
ORI d8
2 16


S Z P -
RST 6
1 10


- - - -
LLI d8
2 16


- - - -
*RET
1 10


- - - -
 

 
 

 
 

 
RTP
1 10/6


- - - -
CPI d8
2 16


S Z P -
RST 7
1 10


- - - -
LMI d8
2 18


- - - -
*RET
1 10


- - - -
 
4_
 
JFC w
3 22/18


- - - -
INP 0
1 16


- - - -
CFC w
3 22/18


- - - -
INP 1
1 16


- - - -
JMP w
3 22


- - - -
INP 2
1 16


- - - -
CAL w
3 22


- - - -
INP 3
1 16


- - - -
JFZ w
3 22/18


- - - -
INP 4
1 16


- - - -
CFZ w
3 22/18


- - - -
INP 5
1 16


- - - -
*JMP w
3 22


- - - -
INP 6
1 16


- - - -
*CAL w
3 22


- - - -
INP 7
1 16


- - - -
 
5_
 
JFS w
3 22/18


- - - -
OUT 8
1 12


- - - -
CFS w
3 22/18


- - - -
OUT 9
1 12


- - - -
*JMP w
3 22


- - - -
OUT 10
1 12


- - - -
*CAL w
3 22


- - - -
OUT 11
1 12


- - - -
JFP w
3 22/18


- - - -
OUT 12
1 12


- - - -
CFP w
3 22/18


- - - -
OUT 13
1 12


- - - -
*JMP w
3 22


- - - -
OUT 14
1 12


- - - -
*CAL w
3 22


- - - -
OUT 15
1 12


- - - -
 
6_
 
JTC w
3 22/18


- - - -
OUT 16
1 12


- - - -
CTC w
3 22/18


- - - -
OUT 17
1 12


- - - -
*JMP w
3 22


- - - -
OUT 18
1 12


- - - -
*CAL w
3 22


- - - -
OUT 19
1 12


- - - -
JTZ w
3 22/18


- - - -
OUT 20
1 12


- - - -
CTZ w
3 22/18


- - - -
OUT 21
1 12


- - - -
*JMP w
3 22


- - - -
OUT 22
1 12


- - - -
*CAL w
3 22


- - - -
OUT 23
1 12


- - - -
 
7_
 
JTS w
3 22/18


- - - -
OUT 24
1 12


- - - -
CTS w
3 22/18


- - - -
OUT 25
1 12


- - - -
*JMP w
3 22


- - - -
OUT 26
1 12


- - - -
*CAL w
3 22


- - - -
OUT 27
1 12


- - - -
JTP w
3 22/18


- - - -
OUT 28
1 12


- - - -
CTP w
3 22/18


- - - -
OUT 29
1 12


- - - -
*JMP w
3 22


- - - -
OUT 30
1 12


- - - -
*CAL w
3 22


- - - -
OUT 31
1 12


- - - -
 
8_
 
ADA
1 10


S Z P C
ADB
1 10


S Z P C
ADC
1 10


S Z P C
ADD
1 10


S Z P C
ADE
1 10


S Z P C
ADH
1 10


S Z P C
ADL
1 10


S Z P C
ADM
1 16


S Z P C
ACA
1 10


S Z P C
ACB
1 10


S Z P C
ACC
1 10


S Z P C
ACD
1 10


S Z P C
ACE
1 10


S Z P C
ACH
1 10


S Z P C
ACL
1 10


S Z P C
ACM
1 16


S Z P C
 
9_
 
SUA
1 10


S Z P C
SUB
1 10


S Z P C
SUC
1 10


S Z P C
SUD
1 10


S Z P C
SUE
1 10


S Z P C
SUH
1 10


S Z P C
SUL
1 10


S Z P C
SUM
1 16


S Z P C
SBA
1 10


S Z P C
SBB
1 10


S Z P C
SBC
1 10


S Z P C
SBD
1 10


S Z P C
SBE
1 10


S Z P C
SBH
1 10


S Z P C
SBL
1 10


S Z P C
SBM
1 16


S Z P C
 
A_
 
NDA
1 10


S Z P C
NDB
1 10


S Z P C
NDC
1 10


S Z P C
NDD
1 10


S Z P C
NDE
1 10


S Z P C
NDH
1 10


S Z P C
NDL
1 10


S Z P C
NDM
1 16


S Z P C
XRA
1 10


S Z P C
XRB
1 10


S Z P C
XRC
1 10


S Z P C
XRD
1 10


S Z P C
XRE
1 10


S Z P C
XRH
1 10


S Z P C
XRL
1 10


S Z P C
XRM
1 16


S Z P C
 
B_
 
ORA
1 10


S Z P C
ORB
1 10


S Z P C
ORC
1 10


S Z P C
ORD
1 10


S Z P C
ORE
1 10


S Z P C
ORH
1 10


S Z P C
ORL
1 10


S Z P C
ORM
1 16


S Z P C
CPA
1 10


S Z P C
CPB
1 10


S Z P C
CPC
1 10


S Z P C
CPD
1 10


S Z P C
CPE
1 10


S Z P C
CPH
1 10


S Z P C
CPL
1 10


S Z P C
CPM
1 16


S Z P C
 
C_
 
NOP
1 10


- - - -
LAB
1 10


- - - -
LAC
1 10


- - - -
LAD
1 10


- - - -
LAE
1 10


- - - -
LAH
1 10


- - - -
LAL
1 10


- - - -
LAM
1 16


- - - -
LBA
1 10


- - - -
LBB
1 10


- - - -
LBC
1 10


- - - -
LBD
1 10


- - - -
LBE
1 10


- - - -
LBH
1 10


- - - -
LBL
1 10


- - - -
LBM
1 16


- - - -
 
D_
 
LCA
1 10


- - - -
LCB
1 10


- - - -
LCC
1 10


- - - -
LCD
1 10


- - - -
LCE
1 10


- - - -
LCH
1 10


- - - -
LCL
1 10


- - - -
LCM
1 16


- - - -
LDA
1 10


- - - -
LDB
1 10


- - - -
LDC
1 10


- - - -
LDD
1 10


- - - -
LDE
1 10


- - - -
LDH
1 10


- - - -
LDL
1 10


- - - -
LDM
1 16


- - - -
 
E_
 
LEA
1 10


- - - -
LEB
1 10


- - - -
LEC
1 10


- - - -
LED
1 10


- - - -
LEE
1 10


- - - -
LEH
1 10


- - - -
LEL
1 10


- - - -
LEM
1 16


- - - -
LHA
1 10


- - - -
LHB
1 10


- - - -
LHC
1 10


- - - -
LHD
1 10


- - - -
LHE
1 10


- - - -
LHH
1 10


- - - -
LHL
1 10


- - - -
LHM
1 16


- - - -
 
F_
 
LLA
1 10


- - - -
LLB
1 10


- - - -
LLC
1 10


- - - -
LLD
1 10


- - - -
LLE
1 10


- - - -
LLH
1 10


- - - -
LLL
1 10


- - - -
LLM
1 16


- - - -
LMA
1 14


- - - -
LMB
1 14


- - - -
LMC
1 14


- - - -
LMD
1 14


- - - -
LME
1 14


- - - -
LMH
1 14


- - - -
LML
1 14


- - - -
HLT
1 8


- - - -
_0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F

Ukázka kódu[editovat | editovat zdroj]

Následující zdrojový kód v jazyce symbolických adres Intel 8008 je procedura MEMCPY pro kopírování bloku dat zadané délky z jednoho místa v paměti na jiné.

                    ; MEMCPY --
                    ; Zkopíruje blok paměti z jednoho místa na jiné.
                    ;
                    ; Vstupní parametry
                    ;       SRC: 14bitová adresa začátku zdrojového bloku
                    ;       DST: 14bitová adresa začátku cílového bloku
                    ;       CNT: 14bitová délka bloku v bytech
 
                                ORG     1700Q       ;Data na adrese 001700q
001700  000         SRC         DFB     0           ;SRC, nižší byte
001701  000                     DFB     0           ;     vyšší byte
001702  000         DST         DFB     0           ;DST, nižší byte
001703  000                     DFB     0           ;     vyšší byte
001704  000         CNT         DFB     0           ;CNT, nižší byte
001705  000                     DFB     0           ;     vyšší byte

                                ORG     2000Q       ;Kód na adrese 002000q
002000  066 304     MEMCPY      LLI     CNT+0       ;HL = addr(CNT)
002002  056 003                 LHI     CNT+1
002004  327                     LCM                 ;BC = CNT
002005  060                     INL
002006  317                     LBM
002007  302         LOOP        LAC                 ;Jestliže BC = 0,
002010  261                     ORB
002011  053                     RTZ                 ;Návrat
002012  302         DECCNT      LAC                 ;BC = BC-1
002013  024 001                 SUI     1
002015  320                     LCA
002016  301                     LAB
002017  034 000                 SBI     0
002021  310                     LBA
002022  066 300     GETSRC      LLI     SRC+0       ;HL = addr(SRC)
002024  056 003                 LHI     SRC+1
002026  347                     LEM                 ;DE = SRC
002027  060                     INL
002030  337                     LDM
002031  302                     LAC                 ;HL = DE+BC
002032  206                     ADE
002033  360                     LLA
002034  301                     LAB
002035  215                     ACD
002036  350                     LHA
002037  307                     LAM                 ;Načti A z adresy (HL)
002040  066 302     GETDST      LLI     DST+0       ;HL = addr(DST)
002042  056 003                 LHI     DST+1
002044  347                     LEM                 ;DE = DST
002045  060                     INL
002046  337                     LDM
002047  364                     LLE                 ;HL = DE
002050  353                     LHD
002051  330                     LDA                 ;D = A
002052  302                     LAC                 ;HL = HL+BC
002053  206                     ADL
002054  360                     LLA
002055  301                     LAB
002056  215                     ACH
002057  350                     LHA
002060  373                     LMD                 ;Ulož D na adresu (HL)
002061  104 007 004             JMP     LOOP        ;Opakovat
002064                          END

Všechny hodnoty v kódu jsou v osmičkové soustavě. Lokace SRC, DST, a hodnota CNT jsou 16bitové parametry podprogramu MEMCPY. Ve skutečnosti se používá pouze 14 bitů, protože procesor má velikost adresy 14 bitů. Hodnoty jsou uloženy ve formátu little endian, ale protože procesor není schopen na rozdíl od Intel 8080 číst nebo zapisovat více než 1 byte v jedné instrukci, jedná se o arbitrární volbu. Protože neexistuje instrukce pro načtení registru přímo ze zadané adresy, musí se adresa nejdříve načíst do dvojice registrů HL, která se použije pro nepřímé adresování paměti jako pseudoregistr M. Do dvojice registrů BC je načtena hodnota parametru CNT, která se snižuje o jedničku na konci smyčky, dokud nedosáhne hodnoty 0. Všimněte si, že většina instrukcí zabírá 8 bitů.

Odkazy[editovat | editovat zdroj]

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku Intel 8008 na anglické Wikipedii.

  1. FAGGIN, Federico; HOFF, JR., Marcian E.; MAZOR, Stanley; SHIMA, Masatoshi. The History of the 4004. IEEE Micro. Los Alamitos, USA: IEEE Computer Society, December 1996, roč. 16, čís. 6, s. 10–19. ISSN 0272-1732. DOI 10.1109/40.546561. 
  2. MCS-8 Micro Computer Set Users Manual [PDF]. Intel Corporation, 1972 [cit. 2007-06-06]. Dostupné v archivu pořízeném dne 2007-09-27. 
  3. Intel 8008 Opcodes [online]. [cit. 2010-12-04]. Dostupné online. 
  4. Intel 8008 (i8008) microprocessor family [online]. CPU World, 2003–2010 [cit. 2010-12-04]. Dostupné online. 
  5. Archivovaná kopie. www.intel.com [online]. [cit. 28-06-2009]. Dostupné v archivu pořízeném dne 04-09-2009. 
  6. Intel. "Intel Chips: timeline poster". 2012.
  7. Intel. "Microprocessor Quick Reference Guide". 2008.
  8. [cit. 2024-04-07]. Dostupné online. (anglicky) 

Související články[editovat | editovat zdroj]

Externí odkazy[editovat | editovat zdroj]