MICROPROCESORUL MOTOROLA 6800
Descriere

Comparatie dintre 6800 si 8080 Microprocesorul 6800 a fost introdus de firma MOTOROLA pe piata americana la citeva luni de la aparitia microprocesorului 8080. Proiectanti acestui procesor au avut la dispozitie pe parcursul proiectari pentru analiza si apreciere primul microprocesor comercializat INTEL8008. Astazi microprocesorul 6800 mai este produs sub licenta ,de AMI si SESCOSEM, iar cifra de afaceri ,se situeaza imediat dupa 8080. Ambele microprocesoare INTEL 8080 si MOTOROLA 6800 apartin aceleeasi clase valorice(se foloseste termenul de microprocesoare din generatia a 2-a) totusi prin unele caracteristici 6800 este mai bine cotat ca de pilda
-setul de instructiuni mai bine ales
> -are instructiuni care admit 6 moduri dee adresare
-magistralele de adrese,date si control apar in mod explicit in exterior (nu se multiplexeaza pe aceiasi magistrala semnale diferite)
-nu necesita amplificatoare de magistralla pentru sisteme mici realizate cu componente din familia microprocesorului.
-salvarea starii masinii(continutul regiistrelor ACCA,ACCB,IX,PC,SP si CCR) se face automat pe timpul unei intreruperi
Refacerea starii initiale a masinii dupa iesireadin subrutina de servire a intreruperi se realizeaza folosind o singura instructiune.
Performantele din domeniul vitezelor sint egale Procesorul 6800 are un singur spatiu de memorie si intrare/iesire El priveste toate componentele,memoriile si D I/E ca simple locatii de memorie Acest fapt conduce pe de o parte la simplificarea busului de control si la un numar mai mare de periferice,iar pe de alta parte impune o atentie sporita la adresare componentelor printr-o decodificare complecta a spatiului de adresa pentru evitarea adresarii simultane a mai multor dispozitive
Faptul ca magistralele de control a sistemului necesita numai 6 semnale la care se adauga faptul ca microprocesorul are numai o tensiune de alimentare explica reusita proiectantului de a pune in exterior cele trei magistrale
Magistrala de adrese A0-A15 este formata din semnale TTL cu facilitatea SIR, generate de microprocesor.
Magistrala de date D0-D7 este bidirectionala ,fiind folosita pentru schimbul de date intre microprocesor si celelalte componente in ambele sensuri.
Semnalele acestei magistrale sint nivele TTL.
Semnalele generate de microprocesor pe magistrala pot conduce o sarcina TTL si au facilitatea SIR.
Semnalele magistralei de control a sistemului sint:
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