Date post: | 05-Jul-2018 |
Category: |
Documents |
Upload: | cebotari-ion |
View: | 225 times |
Download: | 0 times |
of 21
8/15/2019 Laborator UTM UCC
1/21
Ministerul Educaţiei, Tineretului și Sportului RMUniversitatea Tehnică a Moldovei
Facultatea Calculatoare, Informatică și Microelectronică
Proiect de Curs
La obiectul „Unit
ăţi Centrale ale Calculatoarelor”
„Conectarea cip-urilor ROM șiRAM la microprocesorul Intel
8086”
Executat de: studentul TI-091 F/R
Cebotari Ion
Verificat de: Lector Superior
Colesnic V.
Chișinău 2011
8/15/2019 Laborator UTM UCC
2/21
Conţinut
Conţinut …............................................................................................................................11. Arhitectura microprocesorului Intel 8086 .............................................................. 2
1.1.Memoria............................................................................................................... 2
1.2. Intreruperile ….......................................................................................... 3
1.3. Regiștrii …................................................................................................ 41.4. Setul de instrucţiuni .................................................................................. 71.5. Modurile de adresare a memoriei ............................................................. 7
2. Descrierea și configuraţia pin-urilor microprocesorului 8086 .................................. 82.1. Lucrul magistralei de date ......................................................................... 9
2.2. Descrierea pin-urilor microprocesorului 8086 ................................. 92.3. Lucrul î n mod minim .............................................................................. 112.4. Interfaţa microprocesorului 8086 î n mod minim .................................... 14
3. Implementarea proiectului de curs .......................................................................... 173.1. Conectarea ROM .................................................................................... 18
3.2. Conectarea RAM .................................................................................... 19
Concluzie ................................................................................................................ 22
Anexă: Schema conectării
1
8/15/2019 Laborator UTM UCC
3/21
Arhitectura microprocesorului 8086
Memoria
Blocurile de memorie utilizate pentru program, date și stack ocupă același spaţiu î n
memorie. Memoria total utilizabilă este de 1 MB, dar deoarece majoritatea instrucţiunilor
utilizate de procesor folosesc pointeri de 16 bi ţi, se pot utiliza efectiv doar 64 KB din
memorie. Pentru a utiliza memoria mai mare de 64 KB, microprocesorul utilizează regiștri
speciali de segment, unde segmentele speciale de cod, date și stivă sunt poziţionate î n cadrul
acestor 1 MB de memorie.
Pointer-ele și datele de 16 biţi sunt păstrate î n felul următor:
• Adresă: byte de ordin jos
• Adresă+1: byte de ordin î nalt
Adresele de 32 de biţi se stochează î n formatul „segment:offset”:
• Adresă: Octet de rang jos al segmentului
• Adresă +1:Octet de rang î nalt al segmentului
• Adresă +2: Octet de rang jos al offset-ului
• Adresa+3: Octet de rang î nalt al offset-ului
Adresa fizică adresată prin intermediul utilizării perechii segment:offset se calculează
î n felul următor:
Adresă=(*16)+)
Memoria de program: Programul poate fi localizat oriunde î n memorie. Instrucţiunile
de salt și chemare pot fi utilizate atât pentru salturi scurte î n cadrul acestui segment de cod,
cât și pentru salturi mari pentru a accesa orice adresă din 1 MB de memorie. Toateinstrucţiunile condiţionale de salt pot fi utilizate pentru a sări la aproximativ +127 – 127
octeţi de la instrucţiunea curentă.
Memoria de date: Procesorul poate accesa date î n oricare dintre cele 4 segmente, fapt
ce limitează volumul maxim al memoriei ce poate fi accesată de un program la 256 KB
(dacă toate 4 segmente indică segmente diferite de memorie). Accesarea informaţiei din
segmentele de Date, Cod, Stivă sau cel Extra poate fi efectuată prin prefixarea
2
8/15/2019 Laborator UTM UCC
4/21
instrucţiunilor cu DS:, CS:, SS:, sau ES: (unii regiștri sau unele instrucţiuni pot utiliza unul
dintre segmentele ES sau SS î n loc de DS).
Memoria de stivă: Poate fi plasată oriunde î n cadrul memoriei. Dar nu se recomandă
utilizarea adreselor impare, din motive de performanţă.
Spaţiile rezervate: 5
0000h-03FFh sunt rezervate pentru vectorii de î ntrerupere. Fiecare vector de
î ntrerupere este un pointer de 32 de biţi î n formatul segment:offset.
FFFF0h-FFFFFh – După RESET procesorul î ntotdeauna va î ncepe executarea
programului la adresa FFF0H.
Întreruperile
Procesorul utilizează următoarele î ntreruperi:
INTR este o î ntrerupere hardware, mascabilă. Poate fi activat/dezactivat prin
utilizarea instrucţiunilor STI/CLI sau prin utilizarea unor metode mai complicate ce ţin de
actualizarea registrului FLAGS prin intermediul instrucţiunilor POPF. Când are loc o
î ntrerupere, procesorul stochează registrul FLAGS î n stivă, dezactivează alte î ntreruperi,
extrage de pe magistrala de date octetul care reprezintă tipul î ntreruperii și sare la adresarutinei de procesare a î ntreruperii care este este stocată î n locaţia 4*.
Rutina de procesare a î ntreruperii trebuie să returneze instrucţiunea IRET.
NMI este o î ntrerupere nemascabilă. Ea este procesată la fel ca și î ntreruperea INTR.
Ea este de tipul 2, deci adresa rutinei de procesare NMI este stocată î n adresa 0008h. Acest
tip de î ntrerupere are o prioritate mai î naltă decât î ntreruperea mascabilă.
Întreruperile software pot fi cauzate de:
• Instrucţiunea INT – î ntrerupere de breakpoint. Aceasta este o î ntrerupere de ordinul
3.
• Instrucţiunea INT - Oricare î ntrerupere dintre cele 256 de
î ntreruperi disponibile.
• Instrucţiunea INTO – Întrerupere î n cazul de overflow
• Întreruperea î ntr-o singură etapă – Generată dacă fanionul TF este setat. Reprezintă o
3
8/15/2019 Laborator UTM UCC
5/21
î ntrerupere de gradul 1. Când procesorul procesează această î ntrerupere are loc
curăţirea fanionului TF î nainte de î nceperea rutinei de procesare a î ntreruperii.
• Excepţiile legate de procesor: eroare la diviziune (tip 0), cod opera ţie inutilizat (tip 6)
și cod operaţie de ieșire(tip 7)
Procesarea cererilor software de î ntrerupere se face la fel ca și pentru î ntreruperile hardware.
Regiștrii
Majoritatea regiștrilor conţin offset-uri de date/instrucţiuni din cadrul segmentului de
memorie de 64 KB. Există 4 segmente diferite de memorie pentru instrucţiuni, stivă, date și
date adăugătoare. Pentru a specifica unde î n acest 1 MB de memorie sunt aceste segmente,
se folosesc 4 regiștri de segment:
• Segmentul de Cod (CS) este un registru de 16 biţi, care conţine adresa segmentului
de 64 KB care conţine instrucţiunile destinate procesorului. Procesorul utilizează
segmentul CS pentru toate accesările instrucţiunilor la care se referă registrul IP
(Instruction Pointer). Registrul CS nu poate fi modificat direct. El este actualizat
automat î n cazul unor salturi depărtate î n memorie, invocările instrucţiunilor distante
sau instrucţiunilor care returnează adrese distante.
• Segmentul de stivă (SS) este un registru de 16 biţi care conţine adresa unui segment
de 64 KB ce conţine stiva programului. Implicit, procesorul presupune că toate datele
referite de regiștrii pointerului de stivă (Stack Pointer SP) și pointerului de Bază
(Base Pointer BP) sunt localizate î n segmentul de stivă. Registrul SS poate fi
modificat direct prin intermediul instrucţiunii POP.• Segmentul de date (DS) este un registru de 16 biţi care conţine adresa segmentului de
64 KB cu datele de program. Implicit, procesorul presupune că toată informaţia
referită de regiștrii general (AX,BX,CX,DX) și de indice (SI, DI) e localizată î n
segmentul de date. Registrul DS poate fi modificat direct prin intermediul
instrucţiunilor POP și LDS.
• Segmentul suplimentar (ES) este un registru de 16 biţi care conţine adresa
4
8/15/2019 Laborator UTM UCC
6/21
segmentului de 64 KB, de obicei care conţine informaţii de program. Implicit,
procesorul presupune că registrul DI utilizează segmentul ES pentru manipulări cu
șirurile de caractere. Registrul ES poate fi modificat direct prin intermediul
instrucţiunilor POP și LES.
Este posibilă schimbarea utilizării implicite a unor segmente utilizate de regiștrii
generali și de indice prin prefixarea explicită a instrucţiunii cu CS,SS,DS sau ES. Toţi
regiștrii generali ai microprocesorului 8086 pot fi utilizaţi pentru operaţii logice și de
aritmetică. Regiștrii generali sunt:
• Registrul de acumulator constă din 2 regiștri a câte 8 biţi AL și AH, care pot fi
combinaţi î mpreună și folosiţi ca un singur registru AX. AL î n acest caz conţine bitul
de ordin mai jos al cuvântului, iar AH conţine bitul de ordin î nalt. AX este optimizat
pentru operaţii de intrare/ieșire și manipularea șirurilor de caractere.
• Registru de bază constă din 2 regiștri a câte 8 biţi BL și BH, care pot fi combinaţi
î mpreună și folosiţi ca registrul de 16 biţi BX. In acest caz BL conţine bitul de ordin
mai jos al cuvântului iar BH – bitul de ordin î nalt. Este optimizat pentru a funcţiona
ca indexare pentru șiruri.
• Registrul de numărare este format din 2 regiștri de 8 biţi CL și CH, care pot ficombinaţi î mpreună și utilizaţi ca registrul de 16 biţi CX. În acest caz BL conţine
bitul de ordin mai jos al cuvântului, iar CH – de ordin î nalt. Este optimizat pentru a fi
utilizat ca contor pentru manipularea șirurilor de caractere și instrucţiunile de
deplasare/rotire a numerelor binare.
• Registrul de date este format din 2 regiștri DL și DH, care pot fi combinaţi și folosiţi
ca un singur registru DX. În acest caz DL va conţine bitul de ordin mai jos alcuvântului, iar DH – de ordin î nalt. Este optimizat pentru utilizare î n operaţiile de
intrare/ieșire. La instrucţiunile de î nmulţire și î mpărţire a numerelor î ntregi de 32 de
biţi conţine cuvântul de rang î nalt al numărului rezultat.
Următorii regiștri sunt atât regiștri generali, cât și regiștri de indice:
• Stack Pointer (SP) – este un registru de 16 biţi care indică adresa stivei de program.
• Base Pointer (BP) – Este un registru de 16 biţi care este de obicei utilizat pentru
5
8/15/2019 Laborator UTM UCC
7/21
indicarea adresei cadrului stivei.
• Source index (SI) – este un registru de 16 biţi. SI este utilizat pentru indexări, la fel și
ca adresă-sursă pentru manipulările cu șirurile de date
• Destination Index (DI) - este un registru de 16 biţi. Se utilizează pentru indexare,
plus ca adresă de destinaţie pentru instrucţiunile ce manipulează cu șirurile de
caractere.
Alţi regiștri:
• Instruction Pointer (IP) – este un registru de 16 biţi. Conţine contorul programului,
adică adresa curentă a instrucţiei.
• Registrul de fanioane – este un registru de 16 biţi care conţine 9 fanioane de 1 bit:
◦ Fanion de overflow (OF) – Dacă rezultatul este un număr î ntreg pozitiv prea mare
sau un număr negativ prea mic pentru a fi stocat la destinaţia sa.
◦ Fanion de direcţie (DF) – Dacă este setat, instrucţiunile de manipulare a șirurilor
de caractere vor decrementa automat regiștrii de indice. Dacă e egal cu 0, regiștrii
vor fi autoincrementaţi.
◦ Fanionul de activare a î ntreruperilor (IF) – Setarea acestui fanion activează
î ntreruperile mascabile.
◦ Fanionul Single-Step (TF) – Dacă e setat, atunci î ntreruperea single-step va avea
loc după următoarea instruciune.
◦ Sign Flag (SF) – E setat dacă cel mai semnificativ bit al rezultatului este egal cu
1.
◦ Fanionul Zero (ZF) – E setat dacă rezultatul este zero.
◦ Fanionul Auxiliar de Transport (AF) – Este setat dacă a fost transport de la sau
spre biţii 0-3 î n registrul AL.
◦ Fanionul de Paritate (PF) – E setat dacă paritatea (numărul de biţi egal cu „1”) î n
octetul de rang jos este par.
◦ Fanionul de Transport (CF) – E setat dacă a fost efectuat transportul de la sau spre
bitul de rang î nalt î n rezultatul ultimului calcul efectuat.
6
8/15/2019 Laborator UTM UCC
8/21
Setul de instrucţiuni
Setul de instrucţiuni 8086 constă din următoarele instrucţiuni:
• Instrucţiuni de mișcare a datelor
• Instrucţiuni aritmetice – Adunare, scădere, incrementare, decrementare, comparare,
convertire octet/cuvânt.
• Instrucţiuni logice – Și, sau, sau exclusiv, deplasare, rotire, verificare.
• Manipularea șirurilor de caractere – î ncărcare, stocare, mișcare, comparare și scanare
pentru octet/cuvânt.
• Transferul de control – condiţionat, necondiţionat, invocarea unei subrutine și
returnarea din o subrutină.
• Instrucţiuni de intrare/ieșire.
• Alte – setarea, ștergerea biţilor de fanioane, operaţii cu stiva, î ntreruperi software,
etc.
Moduri de adresare
Modul implicat – Valoarea/Adresa de date este implicit asociată cu instrucţiunea.
Modul Registru – Se referă la datele din cadrul unui registru sau a unei perechi de regiștri.
Modul imediat – Datele sunt oferite î n instrucţiune.
Modul direct – Operandul de instrucţiune specifică adresa î n memorie unde datele sunt
localizate.
Modul indirect prin registru – Instrucţiunea specifică un registru care conţine adresa unde
datele sunt localizate. Lucrează cu regiștrii SI, DI, BX și BP.
Modul bazat – Operandul instrucţiunii de 8 sau 16 biţi este adăugat la conţinutul unui
registru de bază (BX sau BP), valoarea rezultată este un pointer spre locaţia datelor.
Modul indexat – Operandul instrucţiunii este adăugat la conţinutul unui registru de indice
(SI sau DI), valoarea rezultată este un pointer spre locaţia datelor î n memorie.
Modul bazat-indexat – Conţinutul registrului de bază (BX sau BP) se adună la conţinutul
7
8/15/2019 Laborator UTM UCC
9/21
unui registru de indice (SI sau DI), valoarea primită este un pointer spre adresa datelor.
Modul indexat cu deplasare – Operandul instrucţiunii de 8 biţi sau 16 biţi se adună la
conţinutul unui registru de bază (BX sau BP) și registru de indice (SI sau DI). Rezultatul
este un pointer spre adresa datelor.
Descrierea și configuraţia pin-urilor microprocesorului 8086
Microprocesorul 8086, numit oficial iAPX 86, este un procesor de 16 biţi creat de
Intel î n 1978. El a pus bazele arhitecturii x86. Dimensiunile cip-ului sunt de 5,5 x 5,5 mm și
conţine 29000 tranzistori. Are 40 de pini (20 de linii de adrese, 16 dintre care sunt utilizate
și ca linii pentru date, 16 linii de control)
Img. 1 : Denumirea pin-urilor microprocesorului 8086
Funcţiile din paranteze sunt definite pentru modul minim. Pentru modul maxim se
folosesc cele din afara parantezelor.
8
8/15/2019 Laborator UTM UCC
10/21
Lucrul magistralei de date
Microprocesorul are combinate magistralele de date și de adrese, formând o
magistrală multiplexată î n timp. La î nceputul ciclului este emisă adresa necesară, după care
are loc transferul de date prin intermediul aceleiași magistrale. Această tehnică oferă cel mai
eficient mod de utilizare al pin-urilor de pe procesor.
Fiecare ciclul al magistralei procesorului constă din cel puţin 4 cicluri CLK. Acestea
sunt numite T1, T2, T3, T4. Adresa este emisă din procesor î n timpul T1 iar transferul de
date are loc î n T3 și T4. T2 este utilizat mai mult pentru a schimba direcţia magistralei î n
timpul operaţiilor de citire. Dacă dispozitivul nu este „gata”, î ntre T3 și T4 sunt introduse
instrucţiuni Tw (stare de așteptare). Fiecare stare de așteptare introdusă este egală cu un
ciclu CLK. Sunt perioade când nu se mai actualizează ciclurile magistralei. În acest moment
se zice că procesorul se află î n stare de menaj intern.
Img.2: Modul de lucru al procesorului 8086
Descrierea pin-urilor microprocesorului 8086:
AD15 –
AD0
Address Data
Bus
Aceste pin-uri formează magistralele de adrese/date
multiplexate î n timp. A19/S6-
A16/S3
Address/Status Adrese/Semnale de stare ale microprocesorului
7 BHE / S Bus High
Enable
Semnalul de validare a magistralei superioare.
BHE Și A0 sunt utilizate pentru a decodifica
adresa și pentru a permite transmiterea
9
8/15/2019 Laborator UTM UCC
11/21
octeţilor/cuvintelor.
ALE
Address Latch
Enable
E oferită de către procesor pentru a conduce cu
registrele-buffere de tipul 8282/8283. E utilizat
pentru demultiplexarea magistralei AD.
RD ReadIndică că procesorul efectuează un ciclu de citire a
memoriei sau a dispozitivelor de intrare/ieșire
WR Write
Indică că procesorul efectuează un ciclu de scriere
a memoriei sa de scriere î n un dispozitiv de
intrare/ieșire, î n dependenţă de starea semnalului
M / IO .
M / IO Status line Comanda de selectare a memoriei/port-ului
DT / R
DATA
TRANSMIT/R
ECEIVE
Este necesar pentru sistemul minim care trebuie să
utilizeze registrele-buffere 8286/8287. Este utilizat
pentru a controla direcţia fluxului de date prin
registrul-buffer.
DEN
DATA
ENABLE
Activează ieșirea datelor pentru sistemul minimal
care folosește regiștri-buffere 8286/8287
NMI
Non-maskable
interrupt Semnalizează unele situaţii critice.
INTR
Interrupt
request
Este verificat după executarea fiecărei instrucţiuni
pentru a determina dacă î ntreruperile sunt permise
INTA
Interrupt
acknowledge
Este utilizat ca indicator pentru ciclurile de
confirmare a î ntreruperilor.
HOLD HoldIndică că alt dispozitiv are nevoie de o magistrală
locală.
HLDAHold
acknowledge
Comandă de acceptare a transferului de magistrală
spre dispozitiv
CLK Clock
Oferă cronometrarea de bază pentru generator și
controlorul de magistrală. Este creat de generatorul
de ceas 8284A.
READY Ready:
Indică că memoria adresată sau dispozitivul de
intrare/ieșire este gata să efectueze transferul de
date.
10
8/15/2019 Laborator UTM UCC
12/21
RESET Reset: Cauzează oprirea imediată a activităţii procesorului.
Lucrul î n mod minim
MN
MX =1
De la T1 la T4 semnalul M/IO indică o operaţie de lucru cu memoria sau cu
dispozitivele de intrare/ieșire.
În timpul T1 și la î nceputul perioadei T2 liniile A19-A16 și AD15-AD0 conţin
adresele de memorie sau adresele dispozitivului de intrare/ieșire.
Pe durata T1 este generat semnalul BHE . Împreună cu A0, BHE este utilizat
pentru a selecta octeţii necesari din memorie conform următorului tabel:
BHE A0 Data
0 0 Word
0 1 Upper byte (odd address)
1 0 Lower byte (even address)
1 1 none
11
8/15/2019 Laborator UTM UCC
13/21
C L K
M / IO
7
19 16 6 3
BHE / S
A A / S S − −
T 1 T 2 T 3 T 4
19 16 A A
BHE
− S 7 - S 3
A L E
R E A D
A D 1 5 - A D 0 A 1 5 - A 0D a t a o u t
( D 1 5 - D 0 )
RD
DT / R
DEN
W r i t e
A D 1 5 - A D 0
DT / R
WR
A 1 5 - A 0 D a t a i n ( D 1 5 - D 0 )
Img. 3: Activitatea pin-urilor microprocesorului 8086
În același timp are loc revendicarea pin-ului ALE este efectuată de către procesor. El
activează regiștrii-buffer de tip 8282/8283 pentru a trimite adresa necesară. Pe toată
perioada ciclului de magistrală, semnalul eliberat de regiștrii 8282/8283 este valabil.
La î nceputul T2 adresa este ștearsă de către semnalele de statut din magistrala locală.
Ciclul de citire:
În timpul T2 magistrala de date intră î n stare de î naltă impedanţă, p î nă când datele
apar de la dispozitivul de intrare/ieșire sau memorie.
La fel este accesat și semnalul „Read Control” î ncepând cu T2 p î nă la T4. Semnalul
de citire (RD=0) cauzează activarea driverelor ei de magistrală pentru a comunica cu
magistrala locală. După aceasta date valide vor fi accesibile din dispozitiv și el va semnaliza
procesorul prin activarea liniei READY. Când procesorul returnează semnalul de citire la
nivel î nalt, dispozitivul adresat din nou își va setat driverele î n regim tri-state. Dacă un
12
8/15/2019 Laborator UTM UCC
14/21
registru-buffer este necesar pentru a buferiza magistrala locală 8086, semnalele DT/R și
DEN permite transmiterea datelor și DT/R =0 determină direcţia de transmitere a datelor
(de la microprocesor). Când RD=1 ciclul de citire este terminat.
Ciclul de scriere:
Un ciclul de scriere la fel î ncepe cu revendicare ALE și emiterea adresei. Semnalul
M/IO este din nou revendicat pentru a indica o operaţiune de scriere î n memorie sau î n
dispozitivele de intrare/ieșire. În T2 procesorul emite adresa și după ea deodată datele care
necesită să fie scrise î n locaţia dată. Până î n mijlocul T4 aceste date rămân a fi veridice. În
timpul T2, T3 și TW procesorul revendică semnalul de verificare a scrierii. Semnalul de
scriere (WR=0) devine activ la î nceputul T2, î n comparaţie cu ciclul de citire când este un
pic î ntârziat î n T2, pentru a oferi posibilitate magistralei de a se recrea. DEN=0 este activ î n
T1. DT/R=1 modifică direcţia transmiterii de date (spre microprocesor). Când WR=1 î n T4,
ciclul de scriere este terminat.
13
8/15/2019 Laborator UTM UCC
15/21
Interfaţa microprocesorului 8086 î n mod minim
Unitatea centrală de procesare, pe lângă microprocesorul 8086 conţine asemenea elementeadăugătoare ca elementele de interfaţă cu magistrala, generator de ceas (CLK), generator destări de așteptare(WAIT), generator de RESET.
Schema structurală a CPU cu microprocesorul 8086 î n mod minim
Img. 4: Structura CPU cu microprocesor 8086 î n mod minim
14
8/15/2019 Laborator UTM UCC
16/21
Regiștrii-buffer 8282/8283
Circuitele de memorie și dispozitivului de intrare/ieșire au nevoie
de o adresă stabilă î n timpul circuitelor de magistrală. Iată de ce este
necesară demultiplexarea magistralei de adrese/date pentru utilizarea
ulterioară a magistralelor aparte de memorie/date. Pentru aceasta sunt
utilizate semnalele de control ALE. El este generat î n timpul T1 când
magistrala de adrese/memorie conţine adresa. Rezultatul semnalului
va determina păstrarea adreselor î n regiștrii neinversabili 8282 sau cei
inversabili 8283. Așa cum adresa ar trebui să fie pe toată durata ciclului de magistrală, GND
(0) e conectat permanent la pin-ul OE al regiștrilor-buffere
Regiștrii-buffer 8286/8287
Magistrala de date nu poate fi multiplexată pentru că î n timpul
ciclului de scriere data trebuie să fie prezentă pe magistrală mai mult decât
î n timpul citirii din cauza timpurilor diferite de răspuns a circuitelorsemnalului RD. Din această cauză magistrala poate fi utilizată direct sau
poate fi conectată prin intermediul regiștrilor-buffere neinversabili 8286 de
8 biţi (sau regiștrilor-buffere 8287 care sunt inversabili). În acest caz sunt
utilizate următoarele semnale de control:
DEN – Activează magistrala de date (determină intervalul de timp pentru transferul
de date)
DT/R – Determină direcţia transferului de date (1- scrie, 0 – citește)
15
Img. 5 Registrul-Buffer
8282
Img. 6 Registrul-Buffer
8286
8/15/2019 Laborator UTM UCC
17/21
img. 7: Demultiplexarea magistralei de adrese/memorie
Generatorul de ceas 8284
Generatorul de ceas 8284 este un dispozitiv capabil de a
oferi unităţii centrale de procesare posibilitatea de a măsura timpul,
circuit de resetare și circuit de pregătire. Pentru aceasta este utilizat
un oscilator de cristal care trebuie să aibă frecvenţă de trei ori mai
mare decât CPU (cristal de 15 Mhz).
Funcţia de resetare hardware este implementată utilizând un
trigger de tip Schmitt, activizat prin intermediul unui semnal RES.
Când intrarea este egală cu 0, semnalul de resetare se duce spre
procesor. Semnalul ar trebui să fie activ cel puţin 4 cicluri de CLK
16
Img 8: Genert!rul "e#es
8/15/2019 Laborator UTM UCC
18/21
pentru a iniţializa CPU-ul.
Implementarea proiectului de curs
Tema: Conectarea a 32 KW ROM 573РФ81А și 64 KW RAM 132РУ10А la
microprocesorul Intel 8086.
Numărul de circuite necesare ROM și RAM se calculează utilizând formula:
N = NML
t
NMLc
⋅
SMLt
SMLC , unde
NMLt este numărul total al locaţiilor de memorie
NMLc este numărul total al locaţiilor de memorie al unui singur circuit
SMLt este numărul total al locaţiilor de memorie necesare
SMLc este volumul de locaţii de memorie pentru un singur circuit.
Circuitul ROM are 14 linii de adrese și 8 linii de date. Capacitatea unui circuit RAM
se calculează î n felul următor: liniile de adrese: 214=24⋅210=16 K și liniile de date: 8. Deci
capacitatea unui cip ROM 573РФ81А este de 16 K * 8.
Total este necesară conectarea a 32 KW=32 K*16.
Circuitul RAM are 16 linii de adrese și o linie de date. Capacitatea unui circuit RAM
se calculează î n felul următor: Liniile de adrese: 216=210⋅2 6=64 K și o linie de date. Deci
capacitatea unui circuit RAM 132РУ10А este de 64K*1.
Total sunt necesari 64 KW=64 K * 16.
N ROM =32
16⋅16
8 =4 - Sunt necesare 4 circuite ROM
N RAM
=64
64⋅
16
1=16 - Sunt necesare 16 circuite RAM
Ca rezultat vom primi următoarea „hartă” a memoriei:
17
8/15/2019 Laborator UTM UCC
19/21
Conectarea ROM
Circuitul 573РФ81А are 14 linii de adrese și 8 linii de date. Deci
el este organizat ca 16K * 8. Pentru a obţine 32 KW avem nevoie de 4
cip-uri. 2 vor fi situate pe adresa impară (High Bank) și 2 – pe adresa
impară (Low Bank). Așa cum cip-ul de memorie deţine 14 linii de
memorie, pin-urile A1-A14 ale microprocesorului vor fi conectate la el.Semnalul A0 și BHE vor fi utilizate pentru a selecta cip-urile de
memorie de pe adresele pare sau impare. Biţii de ordin î nalt A16-A19 vor
fi utilizaţi pentru selectarea cip-urilor.
Img. 10 Logica de conectare a memoriei
18
Img. 9 Cip-ul RAM
573РФ81А
Zonă Neutilizată(Disponibilă)
RAM
16 circuite
(64K*1)
ROM
4 circuite
(16K * 8)
64 K * 8
00000h
0FFFFh10000h
1FFFFh
128 K * 81 MB
8/15/2019 Laborator UTM UCC
20/21
Semnalele de control M/IO, RD, și WR activează selectarea chip-ului pentru
operaţiuni de scriere/citire.
Conectarea se efectuează î n felul următor: Pinii de adresă A14-A1 sunt conectaţi
direct la fiecare circuit. Semnalul RD permite citirea datelor de pe circuitele de memorie
numai î n cazul operaţiilor de citire și de aceia este conectat la pin-ul OE al fiecărui circuit.
Semnalul WR permite scrierea informaţiei spre circuitele de memorie numai î n cazul
efectuării operaţiilor de scriere, și de aceia este conectat la WE. Ieșirile circuitelor de
memorie pentru adresele pare sunt conectate la magistrala joasă de date (D7-D0), iar pentru
adresele impare – la magistrala î naltă (D14-D8).
Conectarea RAM
Circuitul 132РУ10А are 16 linii de adrese și o linie de date. Deci el este
organizat ca un cip de tipul 64K * 1. Pentru a obţine 64KW de memorie avem
nevoie de 16 cip-uri.
13 linii de adrese vor fi conectate direct spre cip, iar liniile A14-A19 vorfi utilizate pentru selectarea cip-urilor necesare. Semnalul M/IO va desemna
selecţia dintre memorie și dispozitivele de intrare-ieșire.
Semnalele pentru selectarea fiecărui cip aparte se efectuează î n felul
următor:
Circuitul NAND generează un semnal pentru decodificator î n cazul î n care semnalele
A14-A19 sunt egale cu 1 și M/IO la fel este egală cu 1. În acest caz sunt chemate circuitele
de memorie și utilizând semnalele A0 și BHE se trimite cererea spre bancurile de memorie.
Semnalul RAM Ready se activează atunci când este selectată o porţiune din memoria RAM.
MEM READY se activează când este activată sau memoria ROM, sau memoria RAM.
Aceste semnale sunt utilizate pentru a trimite procesorului semnalul READY.
Conecţiunea dintre procesor și cip-uri se efectuează î n felul următor:
Biţii de adresă A1-A16 sunt conectate direct la fiecare cip. Semnalul RD permite
citirea datelor din circuitele de memorie numai î n cazul când se efectuază citirea, și deaceia
19
8/15/2019 Laborator UTM UCC
21/21
este conectat la pin-ul OE al fiecărui circuit. Semnalul WR permite scrierea numai î n timpul
efectuării operaţiilor special, și deaceia este conectat a pinul WE. Cip-urile care fac parte
din bank-ul de jos se conectează la pinii D0-D7, Cip-urile care fac parte din bank-ul de sus
se conectează la pinii D8-D15.
Concluzie: Procesorul, timp de aproape 30 de ani, a devenit un instrument
indispensabil pentru lucrul omului. Începând cu soluţii simple, care ofereau capacităţi
reduse de calcul, și terminând cu mașinile moderne care combină soluţii multi-procesor,
unele având mii de procesoare incorporate, mașinile digitale de calcul au definit î nceputul
unei noi ere î n dezvoltarea umanităţii.
Legea lui Moore zice că numărul de tranzistori disponibili pe un singur cip se
dublează a fiecare 18 luni, iar prezicerea sa s-a dovedit a fi veridică, î ncepând cu anii 70
î ncoace, deci și î n viitor probabil că piaţa mașinilor de calcul va efectua progrese mari.
20