VMA(Valid Memory Address)
-semnal generat de microprocesor pentru a confirma o adresa corecta pe
magistrala de adrese.
Acest semnal este folosit pentru a selecta circuitele de memorie si interfata
Nivelul activ al acestui semnal este nivelul ~1~
R/W(Read/Write)
-semnal generat de microprocesor care inndica starea de citire ~1~ sau de
scriere ~0~.
Starea de repaus a acestui semnal este starea ~1~
IRQ(INTRERUPT REQUEST)
-este o intrare prin care un dispozitiv extern emite o cerere de intrerupere
cind nivelul este tinut la ~0~.
Procesorul va astepta pina la terminarea instructiuni in curs de desfasurare
inainte de a lua in considerare cererea
Aceasta cerere de intrerupere este conditionata de starea bitului de mascare
al intreruperilor,I din registrul de stare CCR
Ca urmare a acestei cereri microprocesorul intra intr-o secventa de intrerupere
in care:
-se salveaza in stiva registrul index,coontorul de program,acumulatoarele si
registrul de stare
-se pune bitul de mascare al intreruperiilor pentru a evita intreruperea care
ar duce la erori daca ar fi acceptate in cursul desfasurarii acestei secvente
-se aduce in memorie ,de la adresele FFFF9,FFF8 o adresa pentru subrutina de
tratare efectiva a intreruperii.
Adresa subrutinei de tratare a intreruperii se depune in locatiile de memorie
FFF9,FFF8,in timpul initializarii semnalului.
/RESET
-semnal extern folosit pentru aducerea mmicroprocesorului in stare initiala
in vederea inceperii functionarii dupa punerea sub tensiune.
Aducerea microprocesorului in starea initiala se face printr-o secventa speciala
in care
-microprocesorul citeste adresele FFFE,FFFFF al caror continut este incarcat cu
contorul program.
In aceste locatii se afla adresa de inceput a programului
-se pozitioneaza bitul de mascare al inttreruperilor I.
Secventa de initializare se declanseaza pe frontul pozitiv al semnalului
/RESET
=din semnalele de control al magistralelor mai face parte si fi2 ca semnal
de tact.
Semnalele de control ale microprocesorului sint:
HALT
-semnal extern prin care se ~ingheata~ ffunctionarea procesorului cind se afla
in starea ~0~.
La aparitia nivelului ~0~ pe aceasta intrare ,microprocesorul trece in starea
de oprire numai dupa terminarea instructiunii in curs
In aceasta stare semnalul ~magistrale disponibile~ (BA) va fi pozitionat la ~1~
iar semnalul VMA este pus la la ~0~ in timp ce magistralele de adrese si date
sint trecute in starea de impedanta ridicata
Prin acest semnal se poate realiza regimul de functionare pas cu pas,necesara
in depanarea sistemelor microprocesor.
Pentru executarea unei secvente pas cu pas linia HALT trebuie tinuta in starea
~1~ pe durata unui tact pentru 1 pas(un ciclu masina).
TSC(Three State Control)
-este o cerere exterioara in urma careiaa liniile magistralei de adrese si linia
semnalului (R/W) sint trecute in starea de impedanta ridicata, iar semnalele VMA
si BA vor fi puse la ~0~.
Aceste 2 semnale se pun la masa pentru a evita citirea sau scrierea parazita
intr-un circuit adresat din greseala.
In timp ce TSC este tinut sus ,semnalul de tact fi1 trebuie tinut la ~1~,respectiv
fi2 la ~0~.
Durata semnalului TSC poate fi de maximum PW0H(>4.5 microsecunde) durata admisa pentru semnalul
de tact.
Procesorul fiind un circuit larg integrat care are in componenta si elemente
dinamice,semnalele de tact nu pot fi oprite pe o durata mai mare de 4.5 microsecunde(PW0H)
fara riscul de a pierde informatii din interiorul acestuia.
Acest semnal se foloseste pentru accesul direct la memorie pe durata scurta.
BA(Bus Vailable)
-semnal generat de microprocesor pentru a arata ca este oprit si busul de adresa
disponibil.
Aceasta se intimpla daca linia de HALT e la ~0~ sau daca microprocesorul este
in stare de asteptare (WAIT) a unei intreruperi.
Starea de asteptare se atinge dupa executia instructiuni WAIT.
Iesirea din starea WAIT se face la receptionarea unei cereri de intrerupere
conditionata (daca bitul I este la ~0~) sau a uneia neconditionata (NMI).
Semnalul BA este activ in starea ~1~.
Cind BA este in ~1~ semnalele generate de microprocesor trec in stare SIR(stare
de inalta impedanta) sau la nivelul in care sint inactive.
DBE(Data Bus Enable)
-semnal extern care joaca rolul lui TSC referind-se in schimb la magistrala
de date (ea este bidirectionala ,pe acest moment ea devine unidirectionala si
anume intrare)
Cind un circuit extern tebuie sa preia controlul magistralei de date,de
exemplu intr-o aplicatie de acces direct la memorie,el va trage la masa ~0~
intrarea DBE a microprocesorului,prin acest semnal realizindu-se deconectarea
iesirilor de date ale microprocesorului de la magistrala de date.
NMI(NON MASKABLE INTERUPT)
-este o intrare a microprocesorului prinn care se cere o intrerupere ,cind
nivelul intrarii este tras la masa.
Spre deosebirede cererea /IRQ care este conditionata de bitul de mascare
al intreruperilor din registrul de stare ,aceasta cerere,NMI nu este conditionata(mascabila)
Tratarea celor 2 intreruperi este asemanatoare cu deosebirea ca fiecare isi
are propria sa adresa unde este pastrat vectorul(adresa de fapt a subrutinei
de intrare).
La aceasta cerere de intrerupere ,in momentul in care incepe tratarea ei,
se pune bitul de mascare pentru a evita eventualele derutari prin prelucrarea
unei intreruperi conditionate.
Registrele interne sint trecute in stiva.
Microprocesorul ia adresa programului de tratare a intreruperii din locatiile de adresa FFFC si FFFD.
Dupa executia programului de tratare a intreruperi printr-o singura instructiune RTI se reface starea procesorului dinaintea acceptarii intreruperii
Cind s-au discutat efectele semnalelor RESET,NMI,IRQ s-au facut referiri si la adresele la care mP isi va relua activitatea in urma receptionarii acestor semnale.
Aceste adrese reprezinta adresa de inceput a unor subprograme prin care se realizeaza initializarea sistemului,tratarea intreruperilor...Intrucit aceste subprograme sint scrise de utilizator functie de nevoile sale si de sistemul hardware pe care-l are la dispozitie adresele acestor programe se stabileste numai in ultima faza a unui proiect.
Tinind cont de aceasta,proiectanti microprocesorului(mP) 6800 ,incheie intreruperile de tipul RESET,NMI,IRQ si SWI cu un salt la o adresa stabilita de
utilizator,care se aduce in contorul program de la o adresa fixa cunoscuta si utilizatorului.
Aceste adrese din motivele enumerate mai sus se numesc si vectori de intrerupere .
Locatiile de memorie in care sint depusi vectorii de intrerupere sint prezentate mai jos:
LOCATIE DE MEMORIE SECVENTA APELATA
FFFE FFFF INITIALIZARE
FFFC FFFD INTRERUPERE NECONDITIONATA(NMI)
FFFA FFFB INTRERUPERE PROGRAMATA(SWI)
FFF8 FFF9 INTRERUPERE CONDITIONATA(IRQ)
In afara intreruperilor hardware(NMI,IRQ) exista si o intrerupere software SWI care are propriul sau vector de intrerupere.Aceasta intrerupere este de fapt o instructiune SWI (COD HEXAZECIMAL 3F).
Executind o instructiune SWI microprocesorul isi salveaza starea,(valoarea contorului program salvata este adresa instructinii SWI+1)inscrie bitul de mascare din registrul de stare si incarca contorul program cu vectorul de intrerupere.La adresa specificata de vectorul de intrerupere se afla subprogramul de tratare al intreruperii software.
Pentru intoarcerea din subprogramul principal exista o instructiune RTI care incheie subrutina.
Prin instructiunea RTI se reface starea masinii din momentul inceperii executiei intreruperi software cu exceptia contorului program care este incrementat.Aceste 2 instructiuni ale lui 6800,tin locul urmatoarelor instructiuni ale microprocesorului 8080:CALL,PUSH B,PUSH D,PUSH H,PUSH PSW respectiv RET,POP B,POP D,POP H,POP PSW.De aici rezulta si utilitatea intreruperii software anume aceea de a ajunge rapid la subrutine complexe si des utilizate
Pentru rapidizarea tratarii intreruperilor hardware ,in cazurile in care ,desi timpul in care se va produce intreruperea se poate determina,aceasta trebuie tratata foarte urgent cu aparitia cererii de intrerupere,proiectanti au prevazut o instructiune speciala WAI,care pregateste microprocesorul in vederea intreruperii.Pregatirea consta in salvarea starii masinii,dupa care microprocesorul intra in starea de asteptare a unei cereri de intrerupere hardware
La sosirea unei cereri microprocesorul sare,functie de tipul acesteia la adresa indicata de vectorul de intrerupere propriu,incepind imediat tratarea efectiva a solicitari,fara a mai pierde timp cu salvarea starii interne a microprocesorului.Microprocesorul 6800 are spre deosebire de mP 8080 doua acumulatoare si un registru de index.
Nu are in schimb setul de registre interne de uz general.Cele doua acumulatoare
de 8 biti sint ambele folosite atit pentru stocarea temporara a operanzilor cit
cit si a rezultatelor UAL(unitate aritmetica logica).Registrul index are o capacitate de 16 biti si poate fi folosit atit pentru transferul de date cit
si a rezultatelor UAL,cit si pentrumodul de adresare indexat.
Registrul de stare CCR(condition codes register) contine 6 biti de stare dintre care 5 indica modul de terminare ale unor operatii UAL.
Acestia sint N(negativ),Z(zero),V(depasire),C(transport) si H(transport la jumatate).
Bitul de pe pozitia a 6-a este rezervat bitului de mascare al intreruperilor
conditionate.
Registrul de stare este folosit in instructiunile de salt conditionat.Bitii din
pozitia 7 si 8 sint neutilizati si au o valoare fixa (1).
Formatul instructiunilor.Microprocesorul 6800 are 72 instructiuni diferite care cuprind aritmetica binara si zecimala,operatii logice,deplasari,rotati,
incarcari salturi conditionate si neconditionate,intreruperi,manipulari de
stiva
Instructiunile sint 1-3 octeti functie de tipul lor si de modul de adresare folosit.De regula primul octet contine informatia asupra tipului de instructiune
,ceilalti 2 octeti fiind diversi operanzi
Totalul instructiunilor,cele 72 de tipuri desfasurate si diferitele moduri de adresare se ridica la 197 din cele 256 posibile.Nu exista instructiuni specifice de I/E
DEOARECE CIRCUITELE DE INTERFATA SINT TRATATE EXACT CA NISTE LOCATII DE MEMORIE
Durata executiei unei instructiuni a fost denumit ciclu instructiune.Acest ciclu instructiune ,functie de tipul fiecarui instructiuni si de modul ei de adresare poate dura intre 2 si 12 perioade de tact(FI_1sau FI_2)
In terminologia firmei o perioada de tact este denumita un ciclu.Pe fiecare ciclu se face un transfer de date cu memoria sau cu un periferic,cea ce inseamna ca un ciclu este echivalentul unui ciclu masina din cazul microprocesorului 8080.
Un ciclu masina al microprocesorului 8080 necesita 4 sau 5 semnale de tact
Acest lucru nu inseamna ,totusi ca 6800 este de 4-5 ori mai rapid decat 8080
deoarece acesta admite pentru semnalul de tact 2 MHZ fata de 1 MHZ cit admite
6800,in variantele standard
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 2003