+ All Categories
Home > Documents > Laborator UTM UCC

Laborator UTM UCC

Date post: 05-Jul-2018
Category:
Upload: cebotari-ion
View: 225 times
Download: 0 times
Share this document with a friend

of 21

Transcript
  • 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

     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


Recommended