Sunteți pe pagina 1din 26

Ministerul Educaiei al Republicii Moldova

Universitatea Tehnic a Moldovei


Facultatea Calculatoare, Informatic i Microelectronic

Proiect de an
Disciplina: Arhitectura Calculatoarelor
Tema: Conectarea memoriei de tip ROM i RAM la microprocesorul Intel 8086

A efectuat: st. gr. TI


A verificat: lect. sup. Olaru Valentin

Chiinu 2016
Sarcina

De elaborat proectul de conectare a memoriilor de tip ROM i RAM la microprocesorul Intel


8086 conform variantei 10. De utilizat circuitul 57481A pentru a asigura o capacitate de 32
kW pentru memoria ROM i circuitul 1329 pentru a asigura o capacitate de 4 kW pentru
memoria RAM.

1. Consideraii teoretice
1.1 Descrierea microprocesorului Intel 8086
Microprocesorul este o unitate central de prelucrare (CPU) realizat ntr-un singur circuit
integrat. Un sistem digital de prelucrare realizat cu ajutorul unui microprocesor este numit
microcalculator. Microcalculatorul are trei functii principale: prelucrarea informaiilor n CPU,
stocarea informaiilor n memoriesi transferul informaiilor n interior i cu mediul exterior.
Prin intermediul unor interfee, numite porturi de intrare/ieire (IO), microcalculatorul transfer
informaii cu elementele mediului exterior, numite echipamentele periferice (tastatura, monitor,
imprimanta, disc hard, cititor de CD-ROM, etc.).
ncepnd cu microprocesorul 80286 s-au introdus dou moduri de funcionare diferite: modul
real (Real Address Mode) n care microprocesorul poate adresa ca i 80806 un spaiu de memorie
de 1Mo i modul protejat (Protected Virtual Address Mode) n care spaiul adreselor fizice a crescut
la 16Mo iar cel al adreselor virtuale la 1Go.
Microprocesorul 80286 a fost proiectat pentru a permite (n mod protejat) sisteme multitasking,
oferind cte un segment de stare ataat fiecrui task, care sunt structuri manevrate hardware i
conin strile curente (incluznd toi regitrii) ale taskurilor. Selectoarele acestor segmente de stare
identific unic taskul ataat. De asemenea, este facilitat i comutarea taskurilor, care poate fi
invocat printr-o singur instruciune. Fiecare task din sistem poate avea propriul lui spaiu de
adrese logice. Microprocesorul 80286 ofer i un mecanism evoluat pentru comunicarea ntre
taskuri, sincronizarea lor i partajarea memoriei.
Microprocesorul Intel 8086 lucreaz cu date de 16 bii. Transferurile ntre
unitatea de execuie i unitatea de interfee, se face n general sub form de
cuvinte de 16 bii. De aceea magistrala prin care comunic unitatea de
execuie i unitatea de interfee al microprocesorului Intel 8086 este de 16 biti.
Microprocesorul Intel 8086 comunic cu exteriorul (memoria i IO) prin 3 magistrale:
- magistrala de date, care are 16 bii ;
- magistrala de adrese, care are 20 bii ;
- magistrala de control.

1.2 Structura microprocesorului Intel 8086


Structura microprocesorului Intel 8086 este de tip "pipe-line" (prezint

paralelism temporal) permind efectuarea n acelai timp a doua operaii


diferite de catre cele doua uniti diferite ale sale UE (unitatea de execuie)
decodific instruciunile i efectueaz calculele, n timp ce UI (unitatea de
interfee) calculeaza adresele si efectueaza transferurile.
Astfel, cele doua uniti ce compun CPU efectueaz autonom secvene de

operaii proprii, transferndu-i n acelai timp informaii. Secventele de


operaii efectuate de cele doua uniti ale microprocesorului pentru a executa
instruciunile sunt numite cicluri de instruciune, pentru UE i cicluri maina

de bus, pentru UI.

Fig.1.1 Arhitectura interna a microprocesorului Intel 8086


Unitatea de executie (UE) se compune din:
1. Unitatea aritmetica-logica(ALU), care execut operaii aritmetice, logice,
deplasri i rotaii.

2. Registrele temporare (RT), care preiau operanzii de pe bus-ul intern i i


ofera unitii ALU. mpreuna cu ALU formeaza un automat RALU.
3. Registrul de flag-uri F (biti indicatori de stare a ultimei operatii ALU),
actualizat de catre ALU.
4. Blocul de comanda, care:
- decodifica codul instructiunii curente (preluat din coada de instructiuni
Q);
- da comenzi interne catre celelalte blocuri ale UE pentru:
- calculul adreselor efective ale operanzilor din MP sau IO (daca este
cazul),
- executia operatiei (ALU, transfer, etc.);
- da comenzi externe (informatii / cereri) catre UI pentru:
- calculul adreselor fizice a operandului din MP sau IO (daca este cazul),
- transferul operanzilor dinspre/catre MP sau IO (daca e cazul),
- transferul (citirea) operanzilor de tip imediat din coada de asteptare a UI
(daca e cazul),
- calculul adresei urmatoarei instructiuni.
Unitatea de interfata cu bus-urile (UI) se compune din:
1. Blocul de interfata intre bus-uri, care face toate transferurile la cererea
UE:
- cicluri de scriere in MP sau IO (dinspre UCP catre exterior);
- cicluri de citire din MP sau IO (dinspre exterior catre UCP).
2. Coada de asteptare a codurilor de instructiune (Q), care:
- este incarcata cu coduri de instructiune (ciclu FETCH) de catre blocul de
interfata atunci
cind UE nu cere transferuri de date;
- este inactiva (UCP executa cicluri inactive de bus) daca este plina si nu
se cer transferuri;
- este stearsa complet (resetata) daca instructiunea curenta este de salt.
3. Blocul de calcul al adreselor fizice incluzand:
- registrele segment, care contin componenta sement a adresei locatiei
MP accesate;
- registrul indicator al instructiunii curente (IP), care contine componenta
offset a adresei
instructiunii curente;
- unitatea de deplasare-adunare pentru calculul adresei fizice din
componentele segment si
3

offset.
Toate registrele sunt de 16 bii. O serie de registre (AX, BX, CX, DX) sunt disponibile i la
nivel de octet, prile mai semnificative fiind AH, BH, CH i DH, iar cele mai puin semnificative,
AL, BL, CL i DL. Denumirile registrelor sunt:
AX - registru acumulator
BX - registru de baz general
CX - registru contor
DX - registru de date
BP - registru de baz pentru stiv (base pointer)
SP - registru indicator de stiv (stack pointer)
SI - registru index surs
DI - registru index destinaie
Denumirile registrelor de segment sunt:
CS - registru de segment de cod (code segment);
DS - registru de segment de date (data segment);
SS - registru de segment de stiv (stack segment);
ES - registru de segment de date suplimentar (extra segment).

1.3 Prile componente


Microprocesorul Intel 8086 este o unitate centrala de prelucrare care este
formata din 2 componente:
1. Unitatea de executie (UE) decodific instruciunile numerice, da comenzi
interne pentru efectuarea calculelor i comenzi externe ctre cea de-a doua
unitate. UE conine 8 locaii de memorie intern numite registre de uz general.
Registrele ofera o capacitate de memorare mic dar i un acces (citire sau
scriere) foarte rapid. Pentru a stoca o cantitate mai mare de date (codurile
numerice

ale

instruciunilor

si

variabilele

programelor)

este

necesar

conectarea microprocesorului cu o memorie de capacitate mare, numit


memorie principal (MP). Desigur ca accesul la MP este mult mai lent.
2. Unitatea de interfa cu bus-urile (UI) calculeaz adresele MP i IO,
transfer datele ntre UE i MP sau ntre UE i I/O, i transfera catre UE codurile
numerice ale instruciunilor citite din MP.
4

1.4 Funcionarea microprocesorului Intel 8086


Modul Minim
Se instaleaz dac intrarea de mod este la nivel ridicat, MN/MX =1.
M / IO: ieire cu trei stri (Memory / Input-Output); determin o operaie de citire sau scriere asupra
memoriei sau porturilor.Dac este 1 logic, se execut un ciclu de main de acces la memorie iar
dac este 0 logic se execut un ciclu main de transfer cu porturile de intrare / ieire.
WR: ieire cu trei stri (Write) activ n 0 logic; determin o operaie de scriere n memorie sau
n porturi.
INTA: ieire cu trei stri (Interrupt Acknowledge), activ n 1 logic, cnd microprocesorul
execut un ciclu main de acceptare ntrerupere.
ALE: ieire activ n 1 (Adress Load Enable ) care se activeaz cnd pe multiplexat este
ncrcat o adres.
DT / R: ieire cu trei stri (Data Transmission Reception), care indic sensul transferului pe
magistrala de date. Dac este 0 logic, magistrala este orientat ctre microprocesor (Reception)
iar n caz contrar, ctre sistem (Transmission).
DEN: ieire cu trei stri (Data Enable) care valideaz transferul datelor ctre microprocesor.
HOLD: intrare pentru cereri de cedare magistrale. Un dispozitiv inteligent extern solicit controlul
total asupra magistralelor n vederea accesului direct la memorie (tehnic DMA-Direct Access
Memory).
HLDA: ieire, rspuns la cererea HOLD, confirmnd acceptarea acestei cereri, dup trecerea
magistralelor de adrese, date i control n starea SIR(starea de nalt impendan sau starea a
treia).
Ultimele opt terminale prezentate au alte funcii n modul maxim.

Modul MAXIM
Se instaleaz dac intrarea de M / IO este la nivel cobort, MN / MX =0.
RQ / GT0, RQ / GT1 (Request / Grant Lines) : linii bidirecionale utilizate pentru cedarea
magistralelor n urma unui dialog cerere acceptare renunare.
n modul maxim, semnalele HOLD i HLDA evolueaz n dou semnale mai complexe,
RQ / GT0, RQ / GT1, ce pot servi utilizrii n comun a magistralelor de ctre 8086 / 8088 i alte
dou procesoare.
5

Cererea i cedarea magistralelor necesit trei faze distincte: cererea, alocarea, eliberarea. Un
procesor cere pe o linie RQ / GT controlul magistralelor i pe aceeai linie CPU 8086 confirm
trecerea lor n starea SIR, deci cedarea lor. n aceast situaie, unitatea BIU este deconectat de la
magistrale iar EU execut instruciuni din fiierul intern pn la golirea acestuia sau pn cnd o
instruciune necesit acces la magistrale.Cnd procesorul extern termin opera iile cu magistralele,
transmite pe aceeai linie, RQ / GT = 1, cu semnificaia c CPU 8086 poate s preia controlul
asupra magistralelor.
Linia RQ / GT0 are prioritate fa de RQ / GT1, n cazul n care apar cereri simultane pe
cele dou linii.
S2, S1, S0 : ieiri cu trei stri care exprim codificat tipul de ciclu main ce va fi executat,
conform tabelului; semnalele se aplic circuitului specializat Intel 8288 care genereaz semnale de
comand pentru memorie i porturi I / O, corespunztoare ciclului de main curent.

LOCK: ieire cu trei stri, activ n 0 , cu semnificaia c magistralele nu pot fi cedate pe durata
LOCK = 0 , deoarece se afl n execuie o instruciune care nu poate fi ntrerupt. Semnalul este
activat de prefixul LOCK al unei instruciuni oarecare i rmne activ pe toat durata execuiei
instruciunii. Prefixul const ntr-un octet plasat naintea octeilor ce definesc instruciunea.
QSO, QS1 : ieiri (Queue Status Lines), care indic dispozitivelor externe tipul de informaie
preluat de unitatea de execuie din fiierul de ateptare n starea anterioar. Informaia este util
pentru un coprocesor, n cadrul instruciunii ESC, n vederea utilizrii magistralelor la extragerea
unui operand din memorie.

1.5 Generator de impulsuri(ceas)


Genneratorul de ceas (8284) (figura 2) este destinat formrii semnalelor de sincronizare a
microprocesorului i a echipamentelor periferice. Generatorul include scheme pentru formarea
frecvenei (impulsurilor) de sincronizare CLK, semnalului de resetare RESET i a semnalului
C

READY. n dependen de nivelul conectat la intrarea F/ , semnalele pot fi formate din oscilaiile
C

rezonatorului din cuar, conectat la intrrile X1, X2 (F/ =0), sau de la un generator extern conectat
C

la intrarea EFI (dac F/ =1).

Figura 1.2 a reprezentarea grafic a generatorului;


b conectarea rezonatorului la generator

La intrarea

RES

se conecteaz o schem din RC componente, ce asigur formarea semnalului

la conectarea tensiunii de alimentare.

1.6 Registre buffer


1.6.1

Registre-buffere 8282, 8283

Destinaia registrelor-buffere 8282, 8283 ntr-un sistem cu microprocesor i8086 este de a


memora temporar adresele i de a amplifica semnalele de pe liniile de adrese/date ale
microprocesorului in cazul unui numar mare de circuite conectate pe magistrala de adrese
demultiplexat (figura 1.3).
7

Funciile pinilor:
-

DI7-DI0 linii intrri de date;

DO7-DO0 linii ieiri de date;

STB semnal de validare, intrare;

OE

- activarea liniilor de ieire, intrare;

Ucc, GND intrri de alimentare.

La trecerea semnalului din 1 n 0 pe intrarea STB, informaia de pe liniile DI7-DI0 sunt


memorate n buffer i se expun pe liniile DO7-DO0.

Figura 1.3 Reprezentarea grafic a registrelor-buffere 8282, 8283


Semnalul

OE

activeaz liniile de ieire: cnd

OE

=0 liniile de ieire sunt n stare activ,

OE

=1-

ieirile n starea z (nalt impedan). n circuitul 8283 ieirile sunt inversate.


1.6.2

Registre-buffere 8286, 8287

Destinaia registrelor-buffere 8286, 8287 ntr-un sistem cu microprocesor i8086 este de a


memora temporar datele, de a amplifica semnalele i de a organiza o magistral bidirecional de
date (figura 1.4).
Funciile pinilor:
R

A7-A0 linii intrri/ieiri de date (T/ =1-intrri, T/ =0-ieiri);

B7-B0 linii intrri/ieiri de date (T/ =0-intrri, T/ =1-ieiri);;

T/

semnal ce indic direcia transferului, intrare (T/ =1 direcia A

direcia B

A);

B, T/ =0

Figura 1.4 Reprezentarea grafic a registrelor-buffere 8286, 8287


-

OE

- activarea liniilor de ieire, intrare (Cnd

OE

=1, ieirile selectate de T/

n starea z);
-

Ucc, GND intrri de alimentare. n circuitul 8287 ieirile sunt inversate.

2. Circuitul microprocesorului Intel 8086


2.1 Reprezentarea grafic a microprocesorului Intel 8086

Fig. 2.1 Circuitul microprocesorului Intel 8086

sunt trecute

Fig. 2.2 Reprezentarea grafic a microprocesorului Intel 8086

2.2 Definirea pinilor


Microprocesorul 8086 are o magistral de date i adrese multiplexat n timp (la nceputul
ciclului main informaia prezent pe magistrala multiplexat reprezint o adres, ulterior ea
schimbndu-se i reprezentnd data implicat n transferul efectuat la adresa respectiv) ceea ce
permite unui numr de pini s ndeplineasc funcii duale i n consecin microprocesorul s poat
fi ncorporat ntr-o singur capsul cu 40 de pini. Deasemenea, aa cum se va arta ulterior, un
numr de pini de control ai microprocesorului sunt definii diferit n funcie de cum este conectat un
singur pin de intrare, pinul 33 (MN/

MX

), la mas sau la Vcc. n figura 1.1 este prezentat asignarea

pinilor, denumirile n parantez corespunznd conectrii pinului 33 la mas, iar n tabelul 1.2,
funciile i tipul semnalelor.

2.3 Funciile pinilor


Tabelul 2.1 Funciile i tipul semnalelor microprocesorului 8086
Nume

Semnale comune
Funcie

AD15-AD0

Address/Data Bus- Magistrala de adrese/date

A19/S6A16/S3

Address/Status-Adrese/Stare

BHE

/S7

Byte High Enable/Status-Activare octet


superior pe magistral/Stare
10

Tip
Bidirect., 3state
Ieire, 3state
Ieire, 3state

MX
MN/
RD

Minimum/Maximum Mode Control-Control


mod min/max

Intrare

Read control-Control citire

Ieire, 3state

TEST

Wait on Test control-Test ateptare

Intrare

READY
RESET
NMI
INTR
CLK
Vcc
GND

Nume
HOLD
HLDA

Wait state control-Sincronizare transfer pe


magistrala de date
System Reset-Iniializare sistem
Non-Maskable Interrupt request-Cerere
ntrerupere nemascabil
Interrupt Request-Cerere ntrerupere
mascabil
System Clock-Ceas de sistem
+5V
Ground-Mas
MX
Semnale pentru modul minim (MN/
=Vcc)
Funcie
Hold Request-Cerere magistral
Hold Acknowledge-Acceptare cerere
magistral

WR
M/

IO

R
DT/
DEN

Write-Control scriere
Memory/IO Control-Control selecie
memorie/Port de I/E
Data Transmit/Receive-Control sens transfer
date pe magistral
Data Enable-Activare date pe magistral

Intrare
Intrare
Intrare
Intrare
Intrare
Intrare

Tip
Intrare
Ieire
Ieire, 3state
Ieire, 3state
Ieire, 3state
Ieire, 3state

Address Latch Enable-Activare adrese pe


Ieire
magistral
Interrupt Acknowledge-Acceptare cerere de
INTA
Ieire
ntrerupere
MX
Semnale pentru modul maxim (MN/
=GND)
Nume
Funcie
Tip
Request/Grant Bus Access Control-Cerere/
Bidireciona
RQ GT 1,0
acceptare acces magistral
l
/
Bus
priority
Lock
control-Control
acces
pe
Ieire,
3LOCK
magistral
state
Bus Cycle Status-Specificare stare ciclu de
Ieire, 3S2 S0
magistral
state
Instruction Queue Status-Specificare stare
QS1,QS0
Ieire
coada de instruciuni
ALE

Semnificaiile pinilor in mod minim sunt urmtoarele:


-AD15-AD0 magistrala multiplexat de adrese i date, adrese in starea T1 i date in T2, T3, TW,
T4. E necesar ca adresele A15-A0 i datele D15-D0 s fie memorate temporar n registre-buffere
pentru a fi citite de dispozitivele externe mai lente;
- A19/S6-A16/S3 linii de adrese/semnale de stare a microprocesorului n T2-4. n starea T1 pe
aceste linii se expun adresele A19-A16.
Semnificaia semnalelor de stare:
11

S6=0 - indica ocuparea magistralelor de ctre microprocesor;


S5=IF - starea flag-ului de ntrerupere (0 - nhibat,1- validat)
S4, S3 - indic registrul segment curent utilizat pentru adresare:
S4
0
0
1
1

BHE

S3
0
1
0
1

Segment
ES
SS
CS
DS

/S7- semnal ce valideaz magistrala superioar ("High") de date D15-D8/semnal de stare a

microprocesorului, nedefinit.
BHE

se seteaz n starea T1 concomitent cu adresele. Se activeaz cnd pe magistrala AD15-AD8

sunt plasai 8 bii de date. Semnalul

BHE

se memoreaz n registre-buffere mpreun cu adresa i

este folosit ca o linie suplimentar de adres ce valideaz accesul la blocul (bank) superior de date;
- A0 valideaz magistrala inferioar ("Low") de date D7-D0;
Utilizarea acestor semnale

BHE

i A0 pentru decodificarea adreselor permit transferuri de octei i

cuvinte (doi octei) pe magistrala AD.


BHE

A0 Transfer
0
0 D15-D0
0
1 D15-D8
1
0
D7-D0
1
1
Inhibat
- ALE validarea adresei (memorarea adresei A19-A0 n registre-buffere), este setat la nceputul
fiecrui ciclu de magistral i este destinat demultiplexrii magistralei AD;
-

DEN
RD

WR

(sau

DE

) validarea datelor (memorarea datelor n registre-buffere);

- semnal ce indic comanda de citire de pe magistrala de date (0 - activ);


- semnal ce indic comanda de scriere pe magistrala de date (0 - activ). Indic dispozitivelor

(circuite de memorie, dispozitive periferice) s expun datele pe magistrala de date;


-

M / IO

- comanda de selecte memorie/porturi (1-memorie, 0-porturi). Servete pentru partajarea

spaiului de memorie de spaiul de Intrare/Ieire. Valoarea


instruciunilor IN i OUT;
12

M / IO

=0 apare numai la executarea

- DT/ - comanda sensului transferului datelor pe magistrala AD: DT/ =1- transmisia datelor din
R

CPU spre RAM sau periferice, DT/ =0 recepia datelor de CPU din RAM sau periferice;
- HOLD - cerere de cedare a magistralelor de la alt subsistem extern (echipament periferic sau
controler DMA);
- HLDA - confirmare a acceptrii cedrii magistralelor de ctre CPU. Se activeaz ca confirmare la
cererea HOLD dup stoparea temporar a activitii CPU i trecerea magistralei AD n starea z.
Cnd HLDA=1 subsistemul, ce a iniiat cererea, devine master pe magistral. La trecerea
HOLD=0, CPU seteaz HLDA=0 i i continu activitatea conform programului;
- NMI- cerere de ntrerupere nemascabila (1- cerere de ntrerupere). Cererea de ntrerupere
nemascabila este utilizata, de obicei, pentru a semnala microprocesorului apariia unui eveniment
"catastrofal" ce semnifica existenta unui pericol major pentru buna funcionare a sistemului.
Exemple tipice sunt iminenta cdere a tensiunii de alimentare, apariia unei erori de memorie sau a
unei erori de paritate pe magistrala;
- INTR - cerere de ntrerupere mascabila. La apariia semnalului INTR=1 i IF=1 (IF-indicator de
condiie de activare a ntreruperii mascabile) microprocesorul termin execuia instruciunii curente
i proceseaz cererea de ntrerupere. Dac IF=0, microprocesorul ignor cererea de ntrerupere i
continua cu execuia urmtoarei instruciuni;
- INTA confirmare cerere de ntrerupere mascabila;
- READY - semnalarea strii "gata" de transfer a memoriei sau a echipamentului periferic
(READY=1- ncheierea strii de ateptare TW ("WAIT"));
-

TEST

- testare (sincronizare), se utilizeaz mpreun cu comanda de ateptare WAIT, executnd

comanda WAIT microprocesorul controleaz nivelul semnalului


microprocesorul execut urmtoarea instruciune, iar dac

TEST

TEST

. Dac

TEST

=0,

=1 , microprocesorul introduce

stri de ateptare TI;


- CLK - semnal de tact (ceas) necesar operaiilor interne secveniale;
- RESET - comanda de resetare a circuitului microprocesorului;
- MN/
MX

MX

- selecia modului de funcionare a microprocesorului (MN/

=0- mod maxim).

13

MX

=1- mod minim, MN/

2.4 Funcionarea magistralei multiplexate


Schema structural a microprocesorului este divizat n dou pri logice unitatea de execuie
(EU) i unitatea de interfa cu magistrala (BIU). Pentru a nelege modul de operare pe magistrala
multiplexat n timp, trebuie analizat ciclul de magistral al BIU. S observm c, n esen, un
ciclu de magistral este un eveniment asincron care ncepe prin apariia adresei unui port de I/E
sau a unei locaii de memorie, urmat fie de un semnal de control de citire (pentru a captura sau "a
citi" data de la echipamentul accesat), fie de un semnal de control de scriere mpreun cu data
asociat (pentru a transmite sau "a scrie" data in echipamentul adresat). La rndul lui, echipamentul
selectat - memorie sau port - accept data de pe magistral pe durata ciclului de scriere sau plaseaz
data cerut pe magistral n timpul ciclului de citire. La terminarea ciclului, echipamentul respectiv
memoreaz data care a fost scris (uzual prin intermediul unor circuite de tip latch pe ntrare), sau
ndeprteaz de pe magistral data citit de microprocesor (trecndu-i circuitele buffere de ieire pe
magistral in stare de nalt impedan).
Aa cum se arata in figura 1.2, toate ciclurile de magistrala constau din cel puin patru
perioade de ceas(stri) sau T-states identificate ca T1, T2, T3 i T4. Microprocesorul plaseaz pe
magistrala adresa locaiei de memorie sau portului cu care dorete sa efectueze un transfer pe durata
strii T1. In cazul unui ciclu de scriere, data este plasata pe magistrala de microprocesor din starea
T2 pana in starea T4. In cazul unui ciclu de citire, microprocesorul accepta data prezenta pe
magistrala pe perioada strilor T3 i T4, iar magistrala multiplexata de adrese/date este in stare
flotanta in T2 pentru a permite microprocesorului sa fac trecerea din modul de scriere (ieirea
adreselor) in modul de citire (intrarea datelor).

Figura 1.2 - Cicluri tipice de magistral


Un ciclu de magistrala (deci un acces in afara microprocesorului) are loc doar atunci cnd este
cerut de EU pentru execuia unei instruciuni sau cnd BIU trebuie sa realimenteze coada de
instruciuni. Prin urmare, intre ciclurile de magistrala ce corespund acestor situaii vor exista
perioade de ceas in care magistrala este neutilizat de microprocesor. Aceste perioade de ceas de
inactivitate a microprocesorului pe magistrala se numesc idle states - TI.
Referindu-ne la figura 1.3, sa observam ca 8086 plaseaz o adresa de 20 de bii pe magistrala
multiplexata pe durata strii T1. Pe durata T2, aceasta adresa este ndeprtata de pe magistrala
14

pentru a permite trecerea celor mai puin semnificative 16 linii fie in stare de nalta impedan
pentru efectuarea unei operaii de citire, fie in stare de ieire a datei furnizate in cazul unei operaii
de scriere. In acelai timp, cele 4 linii A19/S6-A16/S3 ale magistralei i schimba semnificata din
linii de adresa (AD19-AD16) in linii de stare (S6-S3) a ciclului de magistrala (S3 i S4 indica in
care din cele 4 segmente de memorie este localizata data ce intervine in transfer; S5 reflecta starea
indicatorului de condiie IF; S6 = 0 indica faptul ca 8086 este pe magistrala). Aceste linii se menin
i pe perioada T3 in care pe cele 16 linii D15-D0 fie este prezenta in continuare data scrisa, fie este
eantionata (strobata) data citita. Daca nu se solicita de ctre echipamentul selectat inserarea unei
stri TW , dup T3 urmeaz T4 in care ciclul de magistrala se termina, liniile de control sunt
dezactivate i magistrala trece in stare de nalta impedana.
Una din facilitile oferite de 8086 este posibilitatea de a selecta hardware configuraia de
baza a mainii prin simpla conectare la masa sau alimentare a pinului 33 (MN/

MX

), prin care se

definete modul de lucru(vezi figura 1.4). Pentru a configura microprocesorul in modul minim,
intrarea MN/

MX

trebuie conectata la +5V. In acest mod de operare, microprocesorul este optimizat

sa funcioneze in sisteme mici, monoprocesor, genernd

a) Ciclul de citire de pe magistral (RD)

15

b) Ciclul de scriere pe magistral (WR)


Figura 1.3
R

singur toate semnalele de control pe magistrala (DT/ ,

DEN

, ALE,

M / IO

RD WR

) si, in plus,

furniznd un mecanism pentru funcia de acceptare cerere de magistrala compatibil cu un


echipament de tip DMA (exemplu: controlerul DMA INTEL8257). n figura 1.4 se prezint un
exemplu de sistem cu microprocesor 8086 funcionnd n modul minim.
In microprocesorul 8086 liniile de adrese/date sunt multiplexate. Conform figurii 1.3,
informaia despre adrese/date este expusa pe magistrala pe

durata a cteva stri T, ce este

insuficient pentru schimbul normal cu memoria sau periferice. Pentru memorarea temporara a
adreselor/datelor sunt folosite registre-buffere de tip latch (8282/8283, 8286/8287). Cu ajutorul
acestor circuite se realizeaz magistrale separate de adrese i date (vezi figura 1.4).
Semnalul CLK, ce sincronizeaz funcionarea microprocesorului, este format de generatorul
de ceas ce sincronizeaz i semnalele externe READY i RESET.
Fiecare ciclu de magistrala consta din patru stri T1, T2, T3 i T4, cu durata ce coincide cu
perioada CLK. Daca memoria sau perifericul nu sunt gata pentru transfer, intre strile T3 i T4 se
nsereaz stri TW (stri de ateptare a dispozitivului mai lent).
n perioada T1 pe liniile A/D, A/S,

/S se expune adresa celulei de memorie cu care se

petrece schimbul. Pe frontul descresctor al semnalului ALE, care este format in starea T1, adresa i
semnalul

sunt scrise in registre-buffere (vezi figura 1.3, 1.4).

16

In perioada T1 se formeaz i semnalul DT/


registre-buffere (DT/

, ce determina directa transferului de date prin

=0, ciclu de citire-in buffere se scriu datele din memorie/periferic; DT/

=1,

ciclu de scriere-in buffere se scriu datele din microprocesor).


In perioada T2 semnalul

DE

este setat in 0 ce semnaleaz transferul datelor (interconectnd

magistralele de date locala, poziionata in figura 1.4 intre microprocesor i registrele-buffer, i de


sistem (magistrala ce conecteaz registrele -buffer cu memoria i perifericele). n ciclul citire, n
perioada T2 starea magistralei locale este trecuta in stare de nalt impedan. Concomitent,
microprocesorul seteaz

Figura 1.4 Configuraia sistemului in mod minim


semnalul

RD

in 0, ce este folosit ca semnal de citire pentru circuitele de memorie. Practic, recepia

codului de microprocesor se petrece la nceputul perioadei T4 pe frontul negativ al semnalului de


ceas CLK.
In ciclul scriere, perioada T2, pe magistrala locala sunt expuse datele, care prin buffere (DT/

=1) se transfera pe magistrala de sistem de date. Expunerea datelor este sincronizata cu setarea
17

semnalului
semnalul

WR

WR

, ce este folosit ca semnal de scriere pentru circuitele de memorie. Datele i

sunt stabile pn la sfritul perioadei T4.

Sincronizarea funcionrii microprocesorului cu schemele lente de memorie sau cu


dispozitivele de intrare/ieire se petrece cu ajutorul semnalului RDY. Valoarea semnalului RDY se
testeaz in perioada T2 al fiecrui ciclu. Daca valoarea este 1, urmeaz strile T3 i T4 in mod
obinuit. Daca nivelul este 0, dup starea T3 se insereaz strile de ateptare T W, in care toate
semnalele microprocesorului rmn neschimbate i numai cnd valoarea RDY=1, dup TW va
urma starea T4 i ciclul se termina.
Spaiul de memorie de un megabyte este divizat fizic in doua zone (numite bank) a cate 512
KB fiecare. Una din ele (lower bank) este asociata prii inferioare a magistralei de date (biii D 7D0), iar cealalt (upper bank) este conectata pe biii cei mai semnificativi ai magistralei de date
(D15-D8).
Tabelul 1.3 Mecanismul de transfer cu memoria
BHE

A0

Octet transferat

Ambii octei

Octetul high la/de la adresa impar

Octetul low la/de la adresa par

Nici unul

Liniile de adres A19-A1 se utilizeaz pentru a adresa o locaie de un octet n mod simultan,
att in lower bank cat i in upper bank, in timp ce linia A0 nu se folosete pentru adresarea locaiei
in cadrul unui bank, ci pentru selecia bank-ului. Bank-ul inferior, care conine octei aflai la adrese
pare, este selectat cnd A0=0. Bank-ul superior, coninnd octei situai la adrese impare, este
selectat de semnalul

BHE

(semnifica transferul unui octet pe liniile D15-D8), n condiia

Acest mecanism de selecie este ilustrat in tabelul 1.3 i in figura 1.5.

18

BHE

=0.

Figura 1.5 Selecia bank-urilor de memorie


Cnd se acceseaz un octet la o adresa para, acesta este transferat pe liniile inferioare ale
magistralei, D7-D0. In aceasta situaie, nivelul activ al liniei de adresa A0 (A0=0) permite selecia
locaiei aflata in bank-ul inferior; in acelasi timp, nivelul inactiv al semnalului (

BHE

=1) impiedica

selectia locatiei aflata in bank-ul superior. In mod similar, cand se acceseaza un octet la o adresa
impara, acesta este transferat pe liniile superioare ale magistralei, D 15-D8. Acum nivelul activ al lui
BHE

BHE

=0 ) permite selectia locatiei aflata in bank-ul superior, in timp ce nivelul inactiv al liniei

de adresa A0 (A0=1) impiedica selectia bank-ului inferior. Asa cum se arata in tabelul 1.3, 8086
poate accesa o locatie din lower bank simultan cu una din upper bank pentru a efectua transferul
unei date de tip word. Cand octetul low al cuvintului ce trebuie transferat se afla la o adresa para
(deci se afla in lower bank), cuvantul este aliniat i poate fi transferat intr-un singur ciclu de
magistrala. Liniile A19-A1 adreseaza locatia corespunzatoare din ambele bank-uri, bank-uri care
sunt amandoua selectate simultan, cel inferior prin A0=0 iar cel superior prin

19

BHE

=0.

3. Conectarea memoriei de tip ROM i RAM la microprocesorul Intel 8086


3.1 Decodificarea adreselor memoriei principale i selecia circuitelor de
memorie la microprocesorul Intel 8086
Memoria principal n sistemele cu microprocesor este realizat cu circuite de memorie (ROM,
RAM), conectarea acestora facindu-se prin intermediul magistralelor de adrese, de control i de
date.
Microprocesorul Intel 8086 are 16 linii (16 biti) pe magistrala de date i 20 linii (20biti) pe
magistrala de adrese. Spaiul adreselor conine 220-elemente.
Organizarea memoriei ca o succesiune de octei este utilizat din cauza ca octetul (byte-ul)
reprezint (si din considerente tehnologice) unitatea unanim acceptata de reprezentare a informa iei
numerice. n acest caz accesul la memorie trebuie s permit un transfer flexibil (pe octe i sau pe
cuvinte de 16 bii). Formarea semnalului

BHE

i transferurile cu memoria, pe byte sau cuvinte de 16

bii, este realizat de microprocesor n mod automat.

3.2 Caracteristicile tehnice ale circuitelor de memorie de tip ROM


3.2.1 Circuitul de memorie (reprezentare grafic)
Circuitul de memorie 57381
20

3.2.2 Funciile pinilor


Numarul
pinului
2,3-10,
21,23, 24,
25, 26, 27
11-13,
15-19

Funcie

Nume

Address - Adrese intrri


Data Input/Output - Date
intrare/iesire
Chip select Selectarea
circuitului
Chip Enable Output
Activare ieiri date
Tensiunea de alimentare
Tensiunea de programare
Comun (mas)

20
22
28
1
14

A12, A7-A0, A10,


A11,
A9, A8, A13, A14
DIO0-DIO2,
DIO3-DIO7
CS
CEO

UCC
UPR
0V

3.2.3 Tabelul de adevr


CS

CEO

H
L
L

X
L
H

A0UPR
A13
X
UCC
A
UCC
A 180,5V

DIO0-DIO7
Roff
Date ieiri
Date intrri

Mod
funcionare
Pstrare
Citire
Scriere

3.3 Caracteristicile tehnice ale circuitelor de memotie de tip RAM


3.3.1 Circuitul de memorie (reprezentare grafic)
21

3.3.2 Funciile pinilor


Numrul
pinului

Funcie

Nume

1-4, 5-7, 1517

Address - Adrese intrri

A6 - A3, A0 A2,
A9 - A7

11 - 14

Data Input/Output - Date


intrare/iesire

DIO3 DIO0

Chip select -Selectarea curcuitului

CS

10

Write/Read - Scriere/Citire

/R
W

18
9

Tensiunea de alimentare
Comun (mas)

UCC
0V

3.3.3 Tabel de adevr

CS

/R
W

A0 - A9

DIO0 DIO3

H
L
L
L

X
L
L
H

X
A
A
A

Roff
L
H
Date in cod direct

4.Calcul circuitului
4.1 Calcului circuitului pentru memoria ROM
22

Mod
funcionare
Pstrare
Scriere 0
Scriere 1
Citire

Un circuit de memorie ROM 57381 are capacitatea de 214 x 8b = 16k x 8b. Deoarece
circuitul dispune de 8 pinuri pentru datele I/O, pentru a complecta un bloc de memorie ROM sunt
necesare 16/8 = 2 circuite. Un bloc de memorie ROM va asigura 16 kW, ns capacitatea memoriei
ROM necesar este de 32 kW, vom avea nevoie, deci, de 32/16 = 2 blocuri de memorie ROM care
va conine 4 circuite unite n paralel, pentru a asigura func ionarea magistralei de date a
microprocesorului.

4.2 Calculul circuitului pentru memoria RAM


Un circuit de memorie RAM 1329A are capacitatea de 210 x 4b = 1k x 4b. Circuitul
dispune de 4 pinuri pentru datele I/O, pentru a completa un bloc de memorie ROM sunt necesare 4
circuite. Pentru a asigura capacitatea 4kW vom avea nevoie 4 blocuri a ctee 4 circuite fiecare unite
n paralel, pentru a asigura funcionarea magistralei de date a microprocesorului.

4.3 Tabelul de decodificare al memoriei ROM i RAM


A19A18A17A1
6
0000
1100

A15A12
0000
0111

A11-A8

A7-A4

A3-A0

0000
1111

0000
1111

0000
1111

Adresele
blocului
00000H C7FFFH

0000
1100

1000
1111

0000
1111

0000
1111

0000
1111

08000H CFFFFH

ROM2

0001
1101

0000
0111

0000
1111

0000
1111

0000
1111

10000H D7FFFH

RAM1

0001
1101

1000
1111

0000
1111

0000
1111

0000
1111

18000H DFFFFH

RAM2

0010
1110

0000
0111

0000
1111

0000
1111

0000
1111

20000H E7FFFH

RAM3

0010
1110

1000
1111

0000
1111

0000
1111

0000
1111

28000H EFFFFH

RAM4

ROM1

Concluzia
n cadrul efecturii proiectului de an, am studiat micoprocesorul Intel 8086 ct i modul de
conectare al lui cu memoria ROM i RAM. Acest tip de procesor este etalonul arhitecturii 80x86.
Scopul lucrrii era de a efectua o conectare n modul minim a memoriilor de tip ROM i RAM la
microprocesorul Intel 8086 conform variantei propuse i anume: circuitul 57481A pentru a asigura
o capacitate de 32 kW pentru memoria ROM i circuitul 1329 pentru a asigura o capacitate de 4
23

kW pentru memoria RAM. Circuitele date au fost mpr ite n 2 zone fizice numite Lower-Bank i
Upper-Bank. Pentru accesarea prii inferioare a magistralei de date i biii cei mai semnificativi ai
magistralei de date, pe lng utilizarea unui decoder pentru accesarea blocurilor de RAM i ROM , am
introdus un circuit logic combinaional adaugtor, pentru a nu se crea ambiguitate la scrierea i citirea
datelor.

Bibliografia
1. Mihaela Ioni. Arhitectura Microprocesoarelor.
http://add-at-work.com/electronica/Arhitectura-Microprocesoarelor/
2. 1810, . , ,
, 1990
3. Liviu Kreindler, Radu Giuclea. Sisteme cu microprocesare. Microprocesorul
INTEL 8086.
http://lees.amotion.pub.ro/micro/carte/mp_c4.pdf /
4. Arhitectura microprocesorului Intel 8086.
http://authorstream.com/presentation/dansimaster-157885-Arhitecturamicroprocesorului-Intel-8086-mic-Science-Technology/
5. , .
, , , 1990
6. Gheorghe Musca. Programare n limbaj de asamblare (Bucureti, Ed. Teora,
1998).
7. Adrian Basalic. Arhitectura procesorului 8086.
24

http://amotion.pub.ro/cercetare/laboratoare/up

25