Ciclurile masina ale microprocesorului 8086
|
Ciclurile masina descriu transferurile de date între microprocesor si memorii / porturi în cele doua moduri de functionare caracteristice, minim si maxim. Pentru analiza ciclurilor matina este necesara denumirea unei stari (starilor) a ciclului.Starea unui ci 919i84j clu este intervalul de timp egal cu perioadasemnalului de tact CLK. Ciclul minim al unui microprocesor 8086 are o durata de 4 stari, denumite si numerotate T1,T2, T 3, T4, reprzentate grafic ca în figura 2.03. Conform acesteia, starile T1, T2 si T3 se deruleaza într-o succesiune neîntrerupta, în timp ce între starea T3 si T4 se poate însera o stare de asteptare notata Tw.
|
Înserarea se produce prin actiunea semnalului READY, în cazul în care memoria sau porturile sunt prea lente. Din punctul de vedere al actiunii BIU deosebim stari active si stari inactive. În sensul celor de mai sus ne situam într-o stare activa adica BIU executa o activitate cu exteriorul, adica:
- executa cicluri la magistrala la solicitarea EU
- aduce anticipat instructiuni.
În toate celelalte situatii ne aflam în stari inactive. Succesiunea starilor active si inactive nu este apriori stabilita, între doua stari active putându-se însera una sau mai multe inactive sau invers.
Exemplu:
Sa consideram cazul în care o instructiune de salt - JMP - este urmata de executia unei alte instructiuni pe un total de 70 - 77 stari, asa cum rezulta din figura 2.04. Succesiunea activitatilor desfasurate de BIU si EU sau notat cu:
|
1. S-a executat o instructiune de salt. EU initializeaza sirul de instructiuni. (registru) care se goleste (devine gol).
2. BIU executa doua cicluri (de citire date si intrare) si încarca 4 octeti.(2x2 octeti) în sirul de instructiuni.
3. EU preia instructiunea urmatoare (pe doi octeti) si declanseaza executia ei. BIU încarca 2 octeti (Continut 4 octeti= 2 instructiuni)
4. BIU încarca înca doi octeti (Continut 6 octeti - este plin sirul de instructiuni)
5. EU executa instructiunea si BIU este în stari inactive
6. EU preia urmatoarea instructiune din sirul de instructiuni, în care mai ramân 4 octeti, adica 2 instructiuni.
7. BIU încarca doi octeti în sirul de instructiuni completându-i continutul la 6 octeti.
Asa cum s-a mai aratat ciclurile masina depind de modul în care functioneaza microprocesorul.
Semnificative pentru modul minim sunt:
Ciclul de citire date si intrare
Ciclul de scriere date si iesire
1. Ciclul de citire date si intrare
este prezentat prin diagramele de semnal din figura 2.05.El se deruleaza pe durata a patru stari,T1÷T4. Începutul unei stari se considera a fi constituit de frontul descrescator al precedentei. Prin urmare intr o stare oarecare succesiunea nivelelor logice este 0, 1.
T1
Este prima stare la inceputul ei semnalele
(memory/input output control)
(data transmit/receive), au nivelele corespunzatoare ciclului dupa cum urmeaza:
a) - transfer cu memoria
- transfer cu porturile
b) - se transmit date de la microprocesor
- microprocesorul receptioneaza date. Pe liniile A19- A16 si A15- A0 regasim informatii de adrese.
T2
Pe liniile - apar informatiile de stare, cu semnificatiile urmatoare:
a. S3, S4 - codifica registrul de segment din adresa fizica - putând sa fie ultilizate (prin decodificare) pentru selectia unui segment sau protectia unui segment fata de accesul neautorizat
b. AD0- AD15 - trec in a treia stare
c. - (Read Control) se activeaza aratând ca microprocesorul executa cu cilclu de citire
d. DEN barat (Data Enable) - se activeaza semnalând catre exteriorul microprocesorului ca este permisa plasarea datelor pe magistrala.
e. plasarea datelor pe magistrala.
|
T3
a. S6- S3 - reprezentând informatiile de stare ramân nemodificate
b. READ - trebuie sa soseasca o cerere de citire, adica:
READY= 1 înainte de frontul ridicator al tactului din T3.
Pe frontal ridicator al tactului CLK (din T3) se verifica intrarea READY.
-Daca READY= 0 (inactivata) microprocesorul intra in stare de asteptare pâna când READY devine 1.
Daca:
READY= 1 (activata) se poate trece la starea T4.
Înainte însa microprocesorul preia datele de pe magistrala.
T4
a. S3- S6 - informatia de stare ramâne nemodificata.
b. - se dezactiveaza la începutul starii (înaintea frontului crescator al CLK)
c. - se dezactiveaza împreuna cu . Ambele indica sfarsitul ciclului.
d. M / si DT/ se pozitioneaza la nivele corespunzatoare ciclului urmator (la sfarsitul starii )
2. Ciclul de scriere date si iesire in modul minim
Acest ciclu se deruleaza conform diagramelor de semnal din figura 2.06.
T1
a. A16- A19 - Pe aceste linii de adrese apare informatia de adrese
b. A15- A0 - Sunt linii multiplexate de adrese si date sunt prezentate informatii de adresa
c. - este înca inactiva
T2
a. A19/S6- A16/S2 - pe aceste linii regasim informatii de stare. Trecerea de la informatia de adresa la cea de stare se produce direct (fara a trece prin a treia stare)
b. DT/ - se va pozitiona în timp util pe 1 ?
c. (Write Control) - se activeaza
d. (Data Enable) - se activeaza chiar la începutul starii
T3
a. S3 - S6 - sunt iesiri multiplexate pe care se prezinta informatii de stare
b. AD15- AD0sunt intrari de adrese si date la care se prezinta date generale
c. - este activ. Se produce scrierea.
d. - este activ
T4
se va incheia ciclul:
a. - se dezactiveaza
b. -se dezactiveaza
c. DT/ - trece în 0 Etapele a, b si c se succed obligatoriu în aceasta ordine.
d. M / - trece în starea corespunzatoare urmatorului ciclu.
Unitate centrala cu microprocesorul 8086
în modul minim
Pentru realizarea unei unitati centrale (UC) cu microprocesorul 8086 este necesara "înconjurarea" sa cu câteva circuite specifice, asa cum se prezinta în figura 2.07.
Schema pune în evidenta doar fluxul informational, de date, adrese, stari, comenzi, fara a face referire la cai/linii, magistrale, multiplexate sau nu.
Dintre circuitele prezente în schema bloc nu au fost prezentate pâna acum:
- generatorul de tact GT
- generatorul semnalelor de comanda (pentru porturi si memorii) GSC
Celelalte circuite prezentate prin blocuri au fost studiate atât la curs cât si la lucrarile practice.
Vizavi de structura prezentata, amplificatoarele separatoare de pe magistrala de date pot lipsi.
Generatorul de tact
Este circuitul care genereaza semnalele de conducere a functionarii ciclului microprocesorul 8086.
El furnizeaza catre microprocesor semnalele:
CLK - semnalul de tact utilizat si de circuitele de interfata;
READY - catre microprocesor si sincronizat cu semnalul de tact;
RESET - semnalul de initializare catre microprocesor, sincronizat cu tactul.
Generatorul de tact poate fi realizat atât în foma discreta (cu porti si bistabile) cât si în forma unui circuit specializat. Desigur, forma cu circuit specializat este preferata în majoritatea covârsitoare a aplicatiilor.
Un generator de tact specific microprocesorului 8086 este circuitul 8284A.
Configuratia functionala a terminalelor (pinilor) se prezinta în figura 2.08.
Asa cum se observa, pe lânga cele 3 semnale strict necesare functionarii microprocesorului (CLK, READY, RESET), GT genereaza si semnale auxiliare PCLK si OSC vând urmatoarele semnificatii si utilizari:
PCLK - tact auxiliar cu frecvente egale cu jumatate din frecventa tactului CLK,
- factor de umplere ˝;
- utilizat pentru circuit specializat de interfata
OSC - iesire de tact, având :
- frecventa egala cu cea a cuartului sau egala cu a semnalului aplicat din exterior la EFI;
nivele TTL.
În ce priveste cele trei semnale de baza pentru microprocesor ele au urmatoarele semnificatii si roluri:
- CLK - semnal de tact pentru microprocesor;
- factor de umplere 1/3;
- frecvente , unde
= frecventa semnalului de intrare (cuart sau exterior);
RESET - semnal de initializare a microprocesorului.
READY - semnal de cerere a inserarii unei stari de asteptare.
Semnificatia notatiilor utilizate pentru pinii aferenti semnalelor de intrare este urmatoarea:
RES -(reset) cerere de initializare a sistemului (UC) cu microprocesor;
- activ la 0 logic;
- conectat la un circuit RC si un comutator de initializare.
X1, X2 - conexiuni pentru cuart
F/C - selectia semnalului folosit pentru generarea tactului;
semnificatie Frecvency/Crystal;
- 1 - tactul este generat prin utilizarea unui semnal exterior aplicat la EFI;
- 0 - tactul este generat pe baza semnalului furnizat de oscilatorul cu cristal de cuart.
EFI - External Frecvency Input - intrare pentru tactul extern (daca exista).
RDY1, RDY2 (Bus Ready) - intrari pentru cereri externe de stari de asteptare.
AEN1, AEN2 (Adress Enable) - intrari de validare a cererilor externe de stari de asteptare. Pot fi utilizate si cu functiile lui RDY1 si RDY2, caz în care acestea devin intrari de validare.
CSYNC - (Clock Syncronization) - intrare pentru sincronizarea divizoarelor care genereaza semnalele de tact;
se utilizeaza la sincronizarea circuitelor cu altele GT, în sistemele multiprocesor.
ASYNC - (Ready Syncronization Select) - intrare de selectie. Se selecteaza una sau doua nivele de sincronizare a cererilor externe RDY (pentru stari de asteptare);
se utilizeaza în cazurile în care circuitele sistemului sunt prea lente pentru a genera stari de asteptare cu viteza impusa de microprocesor.
Trebuie retinut faptul ca: RDY1 este validat de AEN1 si RDY2 este validat de AEN2, fiind posibila si inversarea functiilor în sensul ca: AEN1 este validat de RDY1 si AEN2 este validat de RDY2 atunci când cererile externe de stari de asteptare sosesc la AEN1 si AEN2.
Generatorul semnalelor de comanda
Acest circuit este cel care comanda transferurile dintre microprocesor si porturi, respectiv memorii.El genereaza semnalele de comanda ale citirii si scrierii din/în memorii si porturi. Solicitarile microprocesorului se exprima prin semnalele de intrare transmise GSC .
1. RD - comanda citire (din memorie sau port)
2.WR - comanda scriere (în memorie sau port)
3. M/IO - selectia originii (destinatiei) de citire (scriere).
Semnalele generate sunt distincte pentru porturi:
IOR - citire din port
IOW - scriere în port
Sau pentru memorii:
MEMR - citire din memorie
MEMW - scriere în memorie
Conform celor enumerate GSC are o schema de principiu ca cea din figura urmatoare:
Functionarea sa - simpla de altfel - se prezinta la lucrarile practice.
|