MICROPROCESORUL 8080 CPU
Descriere
Microprocesorul INTEL 8080 este considerat urmasul primului microprocesor
comercializat,INTEL 8008 si reprezinta a doua generatie de microprocesoare
de uz general.
Prin noutatea lor microprocesoarele au fost acceptate la inceput cu mari retineri.
In afara cauzelor subiective existau si cauze obiective legate de investitiile
in specializare si echipamente,pe durata asimilari unui echipament complect
nou.
Din aceste motive firma INTEL a preferat unui produs complect nou,un produs
compatibil cu 8008 reusind astel sa pastreze piata acestuia,in schimb unele
neajunsuri ale primului microprocesor au fost transferate si la acesta din
urma.
Microprocesorul 8080 a fost cel mai bine vindut intre microprocesoarele de
8 biti de uz general in anii 1976,1977.
Sub acest aspect al cifrei de afaceri microprocesorul 8080 ii urmeaza up
firmei MOTOROLA 6800.
Despre microprocesorul 8080 exista astazi o bogata literatura.
O descriere mai amanutita si mai obiectiva se gaseste acum in viitorea pagina
a acestui site.
In general firma prezinta subliniat avantajele trecind cu vederea neajunsurile
cu toate acestea singura documentatie recomandata utilizatorilor este
documentatia firmei.
In cele ce urmeaza incercam sa prezentam si neajunsurile acestui microprocesor
cit si paralele intre ele si alte microprocesoare.
Registrele interne sint o matrice de memorie RAM static organizata
pe 6 registre a 16 biti fiecare.
Aceste registre sint:
-contorul de programe PC(16 biti)
-indicatorul de stiva SP(16 biti)
-6 registre generale de 8 biti aranjate perechi /B,C/D,E/H,L/
-2 registre temporare /W,Z/
Stiva ce se poate implementa este una software folosind orice zona
din memoria externa.
Baza stivei (sfirsitul zonei de memorie afectate stivei) se depune
in registrul INDICATORUL STIVEI folosind instructiunea LXI SP D16
Indicatorul stivei se incrementeaza si se decrementeaza la o operatie
de restituire si se decrementeaza la o operatie de depunere in mod
automat.
Registrele temporare W,Z nu sint adresabile prin program sint invizibile
pentru utilizator,fiind folosite in fazele interne ale unor instructiuni
(LDA,SHLD,LHLD,JMP).
Registrele W,B,D si H sint conectate printr-un canal la o intrare a
multiplexorului/demultiplexorului (MUX/DEMUX) iar celelalte registre
Z,C,E,L pritr-un alt canal la cea de-a doua intrare/iesire a MUX/DEMUX.
Astfel iesirea MUX sau intrarea DEMUX este de 8 biti corespunzatoare
canalului intern de comunicatie.
De asemenea o astfel de organizare permite inscrierea indicatorului
de stiva ,SP,sau a contorului program PC cu continutul registrului dublu
HL intr-un singur timp.
Registrul de adrese (ADDRESS LATCH) este un registru tampon prin intermediul
caruia se depune pe magistrala de adrese informatia din oricare din
registrele BC,DE,HL,SP sau PC.
Unitatea aritmetico-logica contine in afara UAL propriu zise 4 registre
si anume acumulatorul (8 biti).
-registrul temporar al acumulatorului 8 biti il conditioneaza o intrare
a UAL.
-registrul temporar(8 biti) care conditioneaza a doua intrare a UAL.
-registrul bistabilelor de conditie(5 biti);
zero,transport,semn,paritate si transport la jumatate.
Unitatea de control si comanda a procesorului este formata din registrul
de instructiuni.
De asemenea,UAL contine un circuit de corectie zecimala care lucreaza in
timpul executiei instructiuni DAD (DECIMAL ADJUST) testind bitul de conditie,transport la jumatate si corectind rezultatul din acumulator.
Unitatea de control si comanda a procesorului este formata din registrul
de instructiuni IR,decodificatorul de instructiuni,circuitul secvential
de comanda si circuitul de codificare a starilor si semnalelor de control.
Acest ultim circuit este o particularitate a microprocesorului 8080.
O instructiune(primul octet) este adusa din memorie si depusa prin canalul
de comunicatie interna in registrul de instructiuni.
Iesirea decodificatorului conditioneaza circuitul secvential de control
care va genera semnalele de sincronizare si control necesare atit functionarii interne cit si functionarii sistemului.
Circuitul de codificare a starilor si semnalelor de control apare la acest
microprocesor intrucit el nu are o agistrala de control explicita.
Informatia de stare si control este codificata si depusa pe magistrala de
date la inceputul fiecarui ciclu masina.
In afara semnalelor de control propagate prin magistrala de date,microprocesolul mai are o serie de alte semnale de control,sincronizare
si alimentare care apar la conexiunile externe.
Acestea sint:
-fi_1 si fi_2, doua semnale de tact(ceas sau orologiu) furnizate de un
oscilator extern
-aceste semnale sint defazate si au un nivel de +12v
-SYNC este un semnal emis de microprocesor la inceputul fiecarui ciclu
masina (adica la fiecare apel la memorie sau DI/E)
-DBIN(Data Bus Input)este un semnal generat de microprocesor spre a arata
faptul ca acesta este in situatia de a prelua date din magistrala de date
-/WR(NON WRITE) este generat de microprocesor si este destinat sa anunte
memoria sau DI/E ca o data este disponibila pe magistrala de date.
Semnalul este activ pentru 0 logic
-READY semnalul extern generat de memorie sau de un DI/E pentru sincronizare
lor cu microprocesorul (o memorie cu timp de acces mai mare decit un ciclu
masina trebuie sa traga la masa intrarea READY a microprocesorului pina cind datelememoriei vor fi disponibile pe magitrala de date.
Microprocesorul intra intr-o stare de asteptare WAIT unde ramine atita timp
cit semnalul READY e tinut la masa).
-WAIT este un semnal emis de microprocesor prin care se confirma starea de
asteptare in care se afla acesta la un moment dat.
-HOLD este o cerere de trecere a magistralelor microprocesorului in SIR
(Stare Inpedanta Ridicata) emisa de un dispozitiv extern care solicita
eliberarea magistralelor de date si adrese ,in vederea unui acces direct
la memorie.
-HOLDA(HOLD ACNOWLEDGE)-este un semnal generat de microprocesor(mP),in urma unei cereri HOLD dupa ce acesta a trecut magistrala de adrese si date in SIR
-INT este o cerere de intrerupere emisa de un dispozitiv extern,in vederea
unei tratari prioritare
-INTE(INTERRUPT ENABLE) este generat de mP si indica faptul ca se afla in
situatia de a admite o cerere de intrerupere.
-RESET este un semnal generat din exterior care initializeaza functionarea
mP.Semnalul se genereaza la punerea sub tensiune a montajului sau ori de cite ori se doreste,de la un buton de pe bordul sistemului.
Dupa activarea semnalului,programul va fi reluat din locatia de memorie $0000
,bistabilele corespunzatoare semnalelor de confirmare INTE si HOLDA vor fi
sterse dar registrele A,B,C,D,E,H,L,registrul de stare si indicatorul de stiva vor ramine neschimbate.
A0-A15 -sint semnalele magistralei de adrese generata de mP.
D0-D7 - reprezinta magistrala de date care din punct de vedere al mP este bidirectionala(intrare/iesire) iar ca iesire are facilitatea SIR(stare de impedanta ridicata).
Daca la acestea mai adaugam cele 4 conexiuni pentru alimentare +5v,+12v,-5v
si masa putem vedea modul de utilizare a celor 40 de conexiuni externe astfel.
8 linii-magistrala de date
16 linii-magistrala de adrese
4 linii-alimentarea
2 linii-semnale de tact
4 linii- pentru semnale externe(RESET,READY,HOLD si INT).
6 linii-pentru control si sincronizare.
Aceste linii disponibile pentru magistrala de control a microprocesorului care
trebuie sa adreseze 64 Kocteti de memorie.512 circuite de I/E si sa raspunda
la cererile externe sint insuficiente.
Lipsa conexiunilor externe a obligat proiectantul sa foloseasca magistrala de date multiplexata in timp.Pe durata semnalului SYNC,pe magistrala de date se
afla informatia de stare.
Aceasta informatie reprezinta de fapt o parte din magistrala de control.
Din punct de vedere al sistemului multiplexarea busului de date are 2 aspecte
nedorite
1) timpi relativ mare per instructiune din cauza pierderii de timp cu multiplexarea
2)necesita un circuit suplimentar pentru demultiplexare
Demultiplexarea magistralei de date se poate face folosind un circuit 8212 din
familia microprocesorului.Acesta este un registru tampon care are intrari de selectare,activare si stergere dublata de amplificatoare cu iesire avind facilitatea SIR.
Deasemenea are un CBB(circuit basculant bistabil) pentru preluarea cererilor de intrerupere.
Pe semnalul SYNC informatia de pe magistrala de date este preluata de registrul
tampon al circuitului 8212.Avind in vedere ca mP pe durata semnalului SYNC,tine
pe magistrala informatiile corespunzatoare busului de control la iesirea lui 8212 avem pe durata dintre doua cicluri masina,semnalele corespunzatoare ciclului in desfasurare.
Ulterior familia microprocesorului s-a imbogatit cu circuitul 8228,special destinat demultiplexarii magistralei de date,dar care este in acalasi timp si
amplificator de magistrala de date bidirectionala.
WARNING!
Tot cea fost scris pe pagina de mai sus functioneaza chiar daca este in faza de idee.Probabil trebuiesc aduse citeva corecturi
Paginile care vor fi adaugate in lunile urmatoare vor apare destul de greu
deoarece textele care au fost scrise in anul 1985 trebuiesc corectate
si actualizate la anul 2004