Sunteți pe pagina 1din 17

Arhitectura MP I8080

Pentru a putea scri un program in limbajul de asamblare 8080 programatorul trebuie sa cunoasca
structura generala a MP 8080 si a microcalculatorului pe care se lucreaza (realizat pe baza acestuia).

Arhitectura MP 8080 este prezentata in fig.1

Figura 1. Arhitectura interna a microprocesorului I8080

Pe desen prin cifre sînt marcate :

1 - WR

2 - DBIN

3 - INTE

4 - HLDA

5 - WAIT

6 - SYNC

7 - HOLD

8 - INT

9 - READY

A - Ф1

B - Ф2

C - RESET

MP 8080 consta din urmatoarele unitaţi functionale:

1) Zona registrelor de date si adrese;

2) Unitate aritmetică logică (UAL);


3) Registre de instrucţiuni;

4) Unitatea de comanda si temporizare;

5) Magistrala internă de date bidericţională.

Zona registrelor consta dintr-o zona de memorie RAM organizata in 6 registre de catre 16 biti fiecare:

numarator de adrese al programului PC;

pointerul stivei SP;

6 registre generale de lucru (B, C, D, E, H, L), care pot fi adresate ca perechi de registre cu lungimea de
16 biti sau individual ca registre de 8 biti;

un registru pereche temporar (W, Z)

Numaratorul de adrese PC contine adresa instructiunii ce urmeaza a fi executata. Continutul lui este
accesibil si poate fi modificat prin program. Indicatorul de stiva SP contine totdeauna adresa din
memorie(alocata pentru stiva) in care sa depus ultimul cuvint (indica virful stivei). Stiva se construieste
in RAM si creste in jos, adica in sensul de scadere a numarului adresei. SP este accesibuil
programatorului penrtu initializarea zonei din RAM ca stiva.

Registrul temporar W,S nu este accesibil programatorului si este folosit de procesor pentru executia
interna a instructiunilor. O informatie de 1 octet poate fi transferata intre zona de memorie afectata
registrelor si magistrala interna utizind circuitele pentru selectarea unui registru-selectie si
multiplexorul. Operatia de incrimentare (decrementare) a unui dublu registru este realizata cu ajutorul
circuitelor din blocul operator ±1, la iesirea caruia este conectat si registrul de 16 biti servind la
pastrarea adresei de memorie trimisa de procesor pe magistrala externa de adrese cu ajutorul
circuitelor de comanda continute in blocul denumit BUFER ADRESE.

UAL contine un sumator paralel de 8 biti la care sunt atasate:

un acumulator de 8 biti folosit de utilizator;


un acumulator temporar de 8 biti inaccesibil utilizatorului, fiind folosit pentru memorarea primului
operand;

un registru temporar de 8 biti care nu este accesibil utilizatorului fiind folosit pentru memorarea celui
de-al doilea operand;

5 indicatori de conditii;

un circuit de corectie pentru lucrul in fomatul BCD (corectie zecimala).

UAL este legata de registrul temporar, acumulatorul temporar si registrul indicatorilor de conditii si
permite executia operatiilor aritmetice, logice si de deplasare. Rezultatul unei operatii se extrage din
UAL pe magistrala interna de date si se introduce in acumulator,indicatorii de conditie fiind pozitionati in
conformitate cu valoarea rezultatului si cu tipul instructiunii curente.

In timpul executiei unei instructiuni codul instructiunii este transferat in registrul de instructiuni a carui
iesire este transferata cu ajutorul decodificatiei de instructiuni. Iesirea decodificatorului asociata cu
semnalele de cias este expluatata de circuitul de comanda si temporizare care genereaza semnale ce
dirijeaza activitatea interna si externa a procesorului. Circuitul bufer BUS DATE este folosit pentru
izolarea magistralei interne de date a procesorului de magistrala externa (D0-D7). Intr-o operatie de
iesire continutul magistralei interne se afla in zona "tampon" de 8 biti de unde mai departe este
transmisa spre exterior.

Intr-o operatie de intrare datele de pe magistrala externa sunt transferate in zona tampon a magistralei
interne si de aici pe magistrala interna a procesorului.

Semnalele externe
In figura 2 sunt prezentate cele 40 de conexiuni exterioare ale MP I8080.

Semnificatie si functiile acestora sunt descrise in continuare:

A0–A15 – magistrala de adrese de 16 biti . Are iesirea 3 stari (tri-state) si este activa sus. Aceasta poate
adresa o memorie de 64 Kocteti (216) precum si dispozitive periferice de intrare /iesire (I/E).

D0-D7 – magistrala de date are lungimea de 8 biti, este bidirectionala are I/E active sus de tip tri-state.
Aceasta permite schimbul de informatie dintre pocesor si memorie externa respectiv dintre procesor si
dispozitiv I/E.

Q1- Q2 – semnalele de ceas. Sunt intrari active sus.

SYNC – iesire, semnal de sincronizare generat de MP prin care se specifica inceputul fiecarui ciclu-
masina. Pe durata semnalului SYNC MP aplica pe DB (magistrala de date) cuvintul de stare (ce indica
tipul opertiei de efectuat in ciclul-masina respectiv).

DBIN – semnal generat de MP care informeaza ca MP poate prelua datele aplicate pe DB de catre
memorie sau periferice.

WR – (activ in starea 0). Semnal generat de MP care informeaza memoria sau perifericele ca informatia
(bitul) aplicat pe DB poate fi citita.

READY – semnaal extern care prin valoarea READY=»1» informeaza MP ca informatia cerutaa este
accesibila (valida) pe magistrala de date.

WAIT – semnal generat pe MP prin care se indica faptul ca se astepta o data (informatie) de la memorie
sau periferic, prin care se cere ca MP sa elibereze magistralele (buferele de iesire ale MP sunt trecute in
starea de inalta impedanta). In acest caz magistralele sunt administrate de catre periferic in scopul unui
acces direct la memoria DAM (Direct acces memory).

HLDA – semnal emis de MP prin care acesta confirma trecerea buferealor de magistrala in stare de inalta
impedanta.(ca urmare a primirii semnalului HOLD).

INT – semnal emis de catre un periferic prin care acesta cere interventia MP.

INTE – semnal al unui fanion din MP care indica posibilitatea(INTE=1) sau imposibilitatea (INTE=0) de
intrerupere a MP la primirea unei cereri de intrerupere (INT=1) . Fanionul INTE poate fi comandat din
program.

RESET – semnal exterior, semnal de initializare care aduce numaratorul de adrese la »0», deci MP reia
rularea programului de la adresa «0». Tot acest semnal pune pe «0» si semnalele HLDA si INTE.
Algoritmul de functionare a MP I8080

Intervalul de timp necesar procesorului de a schimba informatia cu exteriorul este denumit ciclul-
masina. Intervalul de timp necesar pentru executia unei instructiuni este denumit ciclul-instructiune.
Executarea unei instructiuni (ciclul instructiune) in functie de in functie de complexitatea sa necsita de la
1 pina la 5 cicluri masina (M1-M5). La rindul sau fiecare ciclu masina este compus de la 3 pina la 5 stari
(T1, T2, T3, T4, T5). O stare fiind definita ca o perioada a semnalului de tact 1. In primele 3 stari ale
primului ciclu-masina (M1) primul octet al instructiunii este adus din memorie in registru de instructiuni.
Starea T4 este utilizata pentru decodificarea codului instructiunii. Daca instructiunea este compusa
dintr-un singur octet este necesara si starea T5 pentru executia acesteea (in astfel de cazuri ciclul-
instructiune necesita un singur ciclu-masina ce consuma 5 stari). Daca instructiunea este compusa din 2
sau 3 octets, dupa ciclul FETCH (M1) (aducerea codului instructiunii) mai este necesar si alte cicluri-
masina. Fiecare ciclu masina din cele 5 posibile realizeaza o anumita operatie exprimata prin cuvintul de
stare (citire, inscriere etc.). Aceste operatii sunt inlantuite in cadrul ciclului-instructiune in functie de
tipul instructiunii, dar ca regula se stie ca totdeauna primul ciclu cu care incepe instructiunea este
FETCH. Pentru fiecare ciclu-masina MP genereaza semnalul de sincronizare SYNC din fiecare din cele 5
cicluri-masina posibile MP genereaza un cuvint de stare ce indica spre exterior ce fel de operatii se
realizeaza in ciclul-masina curent. Deci magistrala de date este multiplexata intre cuvintul de stare si
datele de intrare sau iesire din MP. Pentru ciclurile-masina si cicluruile-instructiune se pot scri relatiile
de timp:

CICLU MASINA = T1+T2+Twait+T3+T4+T5

CICLU INSTRUCTIUNE = M1+M2+M3+M4+M5

Figura 1. Microcipul de sincronizare

Pentru generarea semnalelor de tact 2 se utilizeaza un circuit generator de orologiu (integrat separat
de 8080). Acesta este circuitul 8224 KP 580 GF24 care e destinat pentru sincronizarea microsistemelor
pe baza microprocesoarelor in studiu. Generatorul in afara de semnalele 1 si 2 mai produce semnalele
READY si RESET. Totodata mai produce semnalul pentru strobarea cuvintului de stare STSB pe durata
impulsului SYNC. Conectarea genertorului de orologiu este dat in fig. 1. MP are 10 tipuri diferite de
operatii caracterizate fiecare de un cuvint de stare. Realizarea unei instructiuni se reduce la inlantuirea a
maxim 5 din aceste operatii (fiecare operatie executindu-se pe durata unui ciclu masina). Cuvintul de
stare PSW ce corespunde ciclului-masina in curs este generat de MP pe durata semnalului SYNC
multiplexat pe magistrala de date. Deoarecce magistrala de date va fi folosita pentru vehicularea datelor
incepind cu T3 inseamna ca pentru pastrarea cuvintului de stare pe intreaga durata a ciclului-masina,
acest cuvint de stare trebuie introdus intr-un registru. In acest scop microprocesorului i se ataseaza
circuitul integrat 8228 sau KP 580 BK 28, care este un amplificator de bufer de magistrala bidirectional si
latch pentru cuvintul de stare. Deoarece din cuvintul de stare in KP 580 BK 28 se vor obtine anumite
semnale de control, acest circuit este denumit si controler de sistem. MP impreuna cu generatorul de
orologiu , amplificatorul de magistrala si controlerul de sistem formeaza modul de unitate centrala de
procesoare. Pe durata impulsului SYNC cuvintul de stare generat de MP pe magistrala de date este
inscris in controlerul de sistem care este strobat (validat) de catre semnalul de strob STSTB produs de
generatorul de orologiu.

Bit mag. date

Aducerea instr.

Citirea instr.

Scrierea memoriei

Citire stiva

Scriere stva

Citire intrare

Scriere ieşire

Confirmare întrerupere

Confirmare HALT

Confirmare intrare in HALT

5
6

D0

INTA

D1

WO

1
1

D2

STACK

D3

HALTA

1
D4

OUT

D5

M1

D6

INP

0
0

D7

MEMR

INTA
INTA

INTA

I/O W

I/O W

MEM W

MEM R
MEM W

MEM R

MEM R
Tab. 1 Mnemonicele bitilor pentru Processor State Word

Explicatiile pentru mnemonicele bitilor de PSW sunt in Tab. 1. Unul din aceste semnale este INTA. D0.
Este bitul care indica faptul ca o intrerupere prezentata microprocesorului a fost acceptata (numai daca
fanionul intern de autorizare a intreruperii are valoarea 1). Acest bit apare in ciclurile-masina
INTRERUPERE si HALT INTRERUPERE. In cursul acestor tipuri de cicluri prin configurarea lui D0 cu
semnalul DBIN se obtine un semnal cu care se poate incarca in acumultor un cuvint de pe magistrala de
date DBASE. Acest cuvint este generat de catre perifericul ce a solicitat intreruperea fiind considerat o
instructiune RESTART sau CALL. De fapt acest cuvint contine adresa subrutinei necesare perifericului
solicitat;
- WO (WRITE OUTPUT), D1. Acest bit evidentiaza faptul ca ciclul care debuteaza va realiza o operatie de
transfer de informatie de la procesor inspre exterior. Aceste cicluri (cind WO este activ) corespund
inscrierii in memorie (stiva) sau la un periferic.

- STACK, D2. Deorece stiva se realizeaza in memoria externa acest bit diferentiaza intre operatiile
citire/inscriere stiva si operatiile inscriere/citire memorie. In acest ciclu pe magistrala de adresare se afla
adresa virfului stivei.

- HLTA, D3. Acest bit este prezentat in ciclurile de tip HALT INTRERUPERE si semnalizeaza exteriorul ca
MP si-a blocat in urma executarii unei instructiuni HALT. Deblocarea MP se poate face fie printr-o
intrerupere externa (daca INTE=1) fie printr-o comanda de initializare RESET.

- OUT, D4. Este pus acest bit cind se efectuiaza operatiile de iesire la un periferic. Intr-un astfel de ciclu
magistrala de adresare contine adresa perifericului, iar cea de date cuvintul transmis la periferic valid in
momentul cind semnalul WR devine activ.

- M1-D5. Bitul 5 din cuvintul de stare apare totdeauna in primul ciclu de citire a instructiunii (FETCH).
Apare si in ciclurile intrerupere, HALT INTRERUPERE deoarece in acestea se citeste o instructiune
RESTART sau CALL.

- IND-D6.Ca si bitul D4 acest bit indica lucrul cu perifericul, dar sensul informatieieste de la periferic la
procesor, adica de intrare . In acest ciclu magistrala de adrese contine adresa perifericului, iar pe
magistrala de date perifericul trebuie sa plaseze cuvintul care sa fie valid in momentul cind MP activeaza
semnalul DBIN.

- MEMR, D7. Utimul bit al cuvintului de stare identifica un ciclu de citire a memoriei. Informatia din
memorie trebuie sa fie valida pe DP la aparitia semnalului DBIN.

Tabela celor 10 cuvinte de stare generate de MP pe durata semnalului sync precum si semnalele
obtinute pentru magistrala de control vezi figura2.

Pentru cele 10 cuvinte de stare diferite controlerul de sistem produce printr-o logica interna 5 semnale
de control (care formeaza propriul zis semnalele magistralei de control) Aceste semnale de control sunt:
MEM R=D7 * DBIN Este generat prin ecuatia de mai sus si apare in ciclurile cind se efectuiaza o citire la
memorie:

MEM W = D4 * WR Apare in ciclurile de scriere a memoriei.

I/OR = D6 * DBIN Apare in ciclurile de citire a unui periferic

I/OW = D4 * WR Apare in ciclurile de inscriere a unui periferic.

INTA = D0 * DBIN Apare in ciclurile de acceptare a unei intreruperi in scopul fortarii din exterior pe DB a
codului unei instructiuni RESTART sau CALL.

Se observa ca semnalele magistralei de control in contrast cu informatia continuta in cuvintul de stare


inglobeaza atit informatia despre tipul de ciclu cit si relatii de timp selectind acel interval de timp din
cadrul ciclului cre este destinat pentru transmiterea/receptionarea pe magistrala de date a informatiei
catre destinatiile externe sau provnind de la sursele interne. Pe de alta parte informatia continuta in
PSW este mult mai bogata in sensul ca din cele 10 tipuri de cicluri posibile numai 5 sunt prezentate
explicit prin semnalele magistralei de control, unele din ele fiind suprapuse din punct de vedere al
functionarii memoriei/dispozitivelor periferice. Deaceea daca uneori este nevoie de un bit din cuvintul
de stare, acesta trebuie «prins» pe durata semnalului SYNC si memorat intr-un registru.

Fig. 2 Algoritmul de indeplinire a unui ciclu masina tipic.


Pentru o intelegere mai amanuntita a functionarii microprocesorului se va explica algoritmul de
indeplinire a unui ciclu masina tipic (fig.2).

Pe durata starii T1 continutul numaratorului de adrese PC este transmis pe AB (magistrala de adrese)


si se genereaza semnalul SYNC ceea ce determina la rindul sau ca pe DB (magistrala de date) sa se
transmita cuvintul de stare . Acest cuvint de stare este totdeauna FETCH daca ciclul masina este M1.
Sagetile care pornesc din fronturile crescatoare ale lui T2 indica semnalele generate (cu anumite
intirzieri) de acest front. Stare T1 este totdeauna urmata de starea T2 (fig.2), pe parcursul careea se
testeaza semnalele READY, HLTA si HOLD. Daca READY=1, iar HLTA=HOLD=0 se trece in continuare in
starea T3. Pe durata starii T3 informatia extrasa din memorie este accesibila pe DB si transferata in
registrul de instructiuni IR. In dependenta de tipul instructiunii in executie ciclul-masina este complet
dupa starea T3, T4, T5. In starea T4, decodificatorul impreuna cu unitatea de control generaza semnale
necesare transferurilor interne. La sfirsitul starii T4 se testeaza daca ciclul curent este complet. In caz
afirmativ se continua cu starea T1 a ciclului masina urmator M2. Unele cicluri necesita si starea T5 dupa
care se trece la T1 in ciclul M2 inafara situatiei cind ciclul instructiunii a necesitat doar un ciclu-masina.
Pe durata ultimei stari a ultimului ciclu masina al fiecarei instructiuni se testeaza samnalul de cerere
intrerupere INT . Daca INTE=1 si a fost validata posibilitatile de intrerupere, atunci MP trece la
deservirea perifericului, care a cerut intreruperea, printr-un ciclu M1 special. In acest ciclu M1 special se
trimite in stiva adresa din PC, se opreste incrimentarea numaratorului de adrese si la generarea de catre
MP a semnalului de acceptare intrerupere INTA=0, perifericul trebuie sa puna pe magistrala de date
instructiunea RST, care exprima adresa (ce va fi incarcata in PC) unde se afla prin instructiune din
subritina deservirii a perifericului . Daca READY =0 se trece intr-o stare de asteptare WAIT notata prin
Tw. In starea Tw microprocesorul poate ramine un numar multiplu de perioade T nelimitat. Semnalul
READY=0 permite ca MP sa se sincronizeze (sa astepte) cu memorii externe sau perifericele cu functie
mai lenta. MP confirma intrarea in starea Tw prin generarea semnalului WAIT=1. Din starea Tw se iese
odata cu venirea semnalului READY=1. In starea T2, daca semnalul READY=1 si HOLD=1 se stabileste
in»1» un bistabil interior (bistabilul indica la cerere ca MP sa elibereze magistralele). Starea HLDA.
Magistralele vor fi eliberate in stare T3 (daca ciclul curent introduce informatii in MP), in stare T4 (daca
ciclul curent extrage informatii din MP).La preluarea administrarii magistralele MP trece in totdeauna in
starea T1 a urmatorului ciclu masina. In starea de oprire, starea HALT, MP trece daca semnalul HALT (
format in ciclul M2 a instructiunii HLT) este egal cu «1». In aceasta stare magistralele interne de date si
adrese trec in starea de inalta impedanta , semnalul de iesire WAIT=1, iar executarea programului este
oprita. Reluarea executarii programului dupa ce s-a intilnit instructiunea HLT, poate fi facuta doar de
catre o cerere de intrerupere INT=1 sau o reinitializare a MP comandat cu semnalul de initializare RESET.
Insructiunea HLT poate fi privita ca o operatie de asteptare pina cind apare o intrerupere. Dupa
reitoarcerea din subrutina de servire a intreruperii prin care s-a fortat iesirea din starea HALT se reia
executarea programului de la instructiuneaimediat urmatoare instructiunii HLT. Daca intreruperile nu
sunt autorizate prin instructiunea EI inainte de a surveni HLT, MP nu va mai putea iesi din starea HALT
decit printr-o reinitializare a sistemului (semnal RESET cu pornire de la adresa 0000H). Din starea HALT
microprocesorul poate trece in starea HLDA daca semnalul HOLD este egal cu 1. Daca HOLD=0 MP se
reintoarce in starea de oprire HALT. Operatiile care au loc in stare T3 sint determinate de tipul de ciclu
masina in curs de executie. Intr-un ciclu de extragere a instructiunii MP interpreteaza informatia de pe
DB ca o instructiune; iar intr-un ciclu de citire a memoriei sau a stivei, informatia de pe magistrala de
date va fi interpretata ca o data. MP plaseaza datele pe DB in starea T3 a ciclurilor masina de scriere a
memoriei sau a stivei. In fig. 4 sint figurate semnalele DBIN si WR care indica faptul ca informatia de pe
magistrala de date poate fi citita, respectiv inscrisa.

S-ar putea să vă placă și