Intel 8008

Izvor: Hrvatska internetska enciklopedija
Skoči na:orijentacija, traži

Intel 8008 ime je za rani bit-orijentirani mikroobradnik kojeg je dizajnirala i prozvodila tvrtka Intel. Na tržištu se pojavilo na travnju 1972. godine. Intel 8008 pripada porodici 8-bitnih mikroobradnika sa 14-bitnim adresnom sabirnicom koja je omogućavala pristupu ukupno 16 KB memorije. Intel je prvotno nazvao svoj prozvod 1201, jer je ovaj mikroobradnik 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 mikroobradnika, i Intel je iz svog znanja u razvijanju Intela 8008 uspio stvoriti nasljednike kao Intel 8080.

Povijest

Arhitektura

i8008 microarhitektura
Registri u Intel 8008
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]

Primjer programa

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

Izvori