Intel 8008
Intel 8008 ime je za rani bit-orijentirani mikroprocesor kojeg je dizajnirala i prozvodila tvrtka Intel. Na tržištu se pojavilo na travnju 1972. godine. Intel 8008 pripada porodici 8-bitnih mikroprocesora s 14-bitnim adresnom sabirnicom koja je omogućavala pristupu ukupno 16 KB memorije. Intel je prvotno nazvao svoj prozvod 1201, jer je ovaj mikroprocesor bio razvijen za klijenta Computer Terminal Corporation (CTC) koji su htjeli imati minijaturni sklop koji bi sadržavao instrukcijski skup za svoj novi programbilni zaslon Datapoint 2200. Razvoj ovog integriranog kruga zaostajao je u vremenu i kada je bio završen proizvod nije zadovoljavao potrebama tvrtke CTC. Zbog loših performansi, CTC je razvio svoj vlastiti procesor rabeći diskretne TTL krugove. Zbog neekluzivnog ugovora s tvrtkom CTC, Intel je kasnije počeo prodavati procesor 1201 koji je bio preimenovan u Intel 8008 za široko tržište. Intel 8008 ugrađen je u prva mikroračunala kao US SCELBI kit, francuski Micral N, kanadski MCM/70 te u prvim Hewlett-Packardovim zaslonima iz obitelji 2640. Intel 8008 otvorio je tržište mikroprocesora, i Intel je iz svog znanja u razvijanju Intela 8008 uspio stvoriti nasljednike kao Intel 8080.
13 | 12 | 11 | 10 | 09 | 08 | 07 | 06 | 05 | 04 | 03 | 02 | 01 | 00 | (bit position) |
Glavni egistri | ||||||||||||||
A | Akumulator | |||||||||||||
B | B registar | |||||||||||||
C | C registar | |||||||||||||
D | D registar | |||||||||||||
E | E registar | |||||||||||||
H | H registar (indirect) | |||||||||||||
L | L registar (indirektni) | |||||||||||||
Programski brojač | ||||||||||||||
PC | Programski Counter | |||||||||||||
Push-down adreasa pozivnog stoga | ||||||||||||||
AS | Poziv nivo 1 | |||||||||||||
AS | Poziv nivo 2 | |||||||||||||
AS | Poziv nivo 3 | |||||||||||||
AS | Poziv nivo 4 | |||||||||||||
AS | Poziv nivo 5 | |||||||||||||
AS | Poziv nivo 6 | |||||||||||||
AS | Pozvi level 7 | |||||||||||||
Statusni registar | ||||||||||||||
C | P | Z | S | Zastavice |
Intel 8008 izveden je u 10 μm poboljšanjem silicijskim vratima u tzv. PMOS logici. Prve inačice Intela 8008 mogle su raditi na frekvencijama do 0.5 MHz. U kasnijim izvedbama Intela 8008 (8008-1) brzina rada se povećala na maksimum do 0.8 MHz. Naredbama je trebalo između 5 and 11 T-koraka, a svaki T-korak trajao u dužini od dva otkucaja untrašnjeg sata[1]
Prebacivanje podataka iz registara u registar i operaacije ALU trajale su 5 (20 μs at 0.5 MHz), prebacivanje podataka iz registera u memoriju trajale su 8T (32 μs), dok pozivi i skokovi su trošili 11 T-koraka (44 μs).[2]
Intel 8008 bio je malo sporiji po broju istrukcija u sekudi (36.000 do 80.000 pri 0.8 MHz) nego četverobitni Intel 4004 ili Intel 4040.[3] No činjanica da je Intel 8008 mogao obraditi 8 bita u jedno vrijeme, te je mogao pristupiti većoj količini RAMa davalo je veću prednost 8008 za mnoge aplikacije. Intel 8008 imao je 3.500 tranzistora[4][5][6]
Sledeće je primjer u asembleru za Intel 8008 koji sadrži izvorni kod za rutinu MEMKOPI
(kopiranje odnosno presliku) memorijskog bloka neke zadane veličine s jednog mjesta na drugo mjesto. Asemblerski program je napisan u NASM stilu.
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 347 002027 060 002030 337 002031 302 002032 206 002033 360 002034 301 002035 215 002036 350 002037 307 002040 066 302 002042 056 003 002044 347 002045 060 002046 337 002047 364 002050 353 002051 330 002052 302 002053 206 002054 360 002055 301 002056 215 002057 350 002060 373 002061 104 007 004 002064 |
; MEMKOPI --
; Preskikaj blok memorije s izvora na odredište u memoriju
;
; Ulazni parametri
; IZV: 14-bit adresa početka memorijskog bloka
; ODR: 14-bit adresa odredišta memorijskog bloka
; BRJ: 14-bit brojač preslikanih bajtova
ORG 1700Q ;Podatci na 001700q
IZV DFB 0 ;IZV, niži bajt
DFB 0 ; viši bajt
ODR DFB 0 ;ODR, niži bajt
DFB 0 ; viši bajt
BRJ DFB 0 ;BRJ, niži bajt
DFB 0 ; viši bajt
ORG 2000Q ;Program je na 002000q
MEMKOPI LLI BRJ+0 ;HL = addr(BRJ)
LHI BRJ+1
LCM ;BC = BRJ
INL
LBM
PETLJA LAC ;Ako je BC = 0,
ORB
RTZ ;Vrati se nazad u Operacijski sustav
DECCNT LAC ;BC = BC - 1
SUI 1
LCA
LAB
SBI 0
LBA
GETIZV LLI SRC+0 ;HL = addr(IZV)
LHI SRC+1
LEM ;DE = IZV
INL
LDM
LAC ;HL = DE + BC
ADE
LLA
LAB
ACD
LHA
LAM ;Učitaj A od (HL)
GETODR LLI ODR+0 ;HL = addr(ODR)
LHI ODR+1
LEM ;DE = ODR
INL
LDM
LLE ;HL = DE
LHD
LDA ;D = A
LAC ;HL = HL + BC
ADL
LLA
LAB
ACH
LHA
LMD ;Spremi D u (HL)
JMP PETLJA ;Ponovi petlju
END
|
- ↑ MCS-8 Micro Computer Set Users Manual (PDF). Intel Corporation. 1972. Inačica izvorne stranice (PDF) arhivirana 27. rujna 2007. Pristupljeno 4. prosinca 2010.
- ↑ Intel 8008 Opcodes. Pristupljeno 4. prosinca 2010.
- ↑ Intel 8008 (i8008) microprocessor family. CPU World. 2003–2010. Pristupljeno 4. prosinca 2010.
- ↑ Intel. Gordon Moore and Moore's Law. Inačica izvorne stranice arhivirana 4. rujna 2009. Pristupljeno 28. lipnja 2009.
- ↑ Intel (2012). "Intel Chips: timeline poster".
- ↑ Intel (2008). "Microprocessor Quick Reference Guide".