Documente Academic
Documente Profesional
Documente Cultură
Proiect de an
Disciplina: Arhitectura Calculatoarelor
Tema: Conectarea memoriei de tip ROM i RAM la microprocesorul Intel 8086
Chiinu 2016
Sarcina
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.
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).
ale
instruciunilor
si
variabilele
programelor)
este
necesar
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.
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
RES
Funciile pinilor:
-
OE
OE
OE
OE
=1-
T/
direcia B
A);
B, T/ =0
OE
OE
n starea z);
-
sunt trecute
MX
pinilor, denumirile n parantez corespunznd conectrii pinului 33 la mas, iar n tabelul 1.2,
funciile i tipul semnalelor.
Semnale comune
Funcie
AD15-AD0
A19/S6A16/S3
Address/Status-Adrese/Stare
BHE
/S7
Tip
Bidirect., 3state
Ieire, 3state
Ieire, 3state
MX
MN/
RD
Intrare
Ieire, 3state
TEST
Intrare
READY
RESET
NMI
INTR
CLK
Vcc
GND
Nume
HOLD
HLDA
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
BHE
S3
0
1
0
1
Segment
ES
SS
CS
DS
microprocesorului, nedefinit.
BHE
BHE
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
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
M / IO
M / IO
- 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
TEST
TEST
. Dac
TEST
=0,
=1 , microprocesorul introduce
MX
13
MX
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
15
DEN
, ALE,
M / IO
RD WR
) si, in plus,
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,
petrece schimbul. Pe frontul descresctor al semnalului ALE, care este format in starea T1, adresa i
semnalul
16
=1,
DE
RD
=1) se transfera pe magistrala de sistem de date. Expunerea datelor este sincronizata cu setarea
17
semnalului
semnalul
WR
WR
A0
Octet transferat
Ambii octei
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
18
BHE
=0.
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.
BHE
Funcie
Nume
20
22
28
1
14
UCC
UPR
0V
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
Funcie
Nume
A6 - A3, A0 A2,
A9 - A7
11 - 14
DIO3 DIO0
CS
10
Write/Read - Scriere/Citire
/R
W
18
9
Tensiunea de alimentare
Comun (mas)
UCC
0V
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.
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