Sunteți pe pagina 1din 43

Cursul 2

Componentele unui sistem cu microprocesor pentru conducerea proceselor

2.1. Microprocesorul (UCP)

Caracterizare funcţională

Sistem - secvenţial - sincron – complex.


Modelul abstract de automat finit:
A = (I, S, O, f, g, s0)
unde:
− I, S, O - mulţimi finite de intrare, stare şi ieşire;

− f:I × S → S – funcţia de tranziţie – descrie evoluţia internă


− g:I × S → O - funcţia de ieşire – caracterizează evoluţia semnalelor de ieşire
− s0 - starea iniţială.

Automate deterministe:

|f(i, s)| = 1, |g(i, s)| = 1, ∀i ∈ I, ∀s ∈ S - au o evoluţie unică pentru o pereche (i, s) dată.

Realizarea fizică - sinteza structurilor secvenţiale.


Format din unul sau mai multe circuite LSI.
2.1.1. Structura internă a unui microprocesor

Microprocesor = UCP - unitate de comandă şi prelucrare:

− Unitate de prelucrare (UP) - unitate logică şi aritmetică (ULA)


- registre interne (R)
− Unitate de comandă (UC).

XTAL
fanioane

R + ULA UC GT

comenzi CMD. INIT.


(RESET)

µP d a c

MD MA MC

Fig.2.1. Structura internă simplificată a unui microprocesor


Registrele interne (R)

Memorează temporar adrese sau date care urmează a fi prelucrate în ULA.

Asigură un transfer eficient şi o creştere apreciabilă a vitezei de execuţie a instrucţiunilor.

Registrul accumulator (A)


- conţine iniţial operandul sau unul dintre cei doi operanzi de prelucrat
- reţine rezultatul operaţiilor logice şi aritmetice
- este cel mai utilizat pentru manipularea operanzilor
- permite intrarea şi ieşirea datelor în format paralel (sau serie)
- sau serie, prin deplasarea bit cu bit dreapta /stânga

C an-1 . . . . . . a0

Fig.2.2. Schema unui registru acumulator cu o capacitate de n biţi

● Operaţiile de deplasare - un CBB (circuit basculant bistabil) auxiliar - se pot transfera şi


testa biţii an-1, ..., a0 ai cuvântului din acumulator

● Operaţiile aritmetice: bistabilul poate indica o depăşire (engl. carry - C) la adunare sau
un împrumut la scădere.

● Conţinutul lui C poate fi utilizat în operare (al treilea operand).


Unitatea logică şi aritmetică (ULA)
Prelucrarea logică sau aritmetică a operanzilor sub formă de cuvinte binare.
Lungimea cuvântului cu care operează ULA - criteriu de clasificare a microprocesoarelor.

Lc =1, 4, 8, 16, 32 sau 64 de biţi


Lc=1 – µP monobit –automate programabile cu prelucrare pe bit
Lc=4 – µP pentru comanda motoarelor pas cu pas (4 faze)
Lc=8, 16 – µP pentru conducerea proceselor – aplicaţii de complexitate mică – medie
Lc=32, 64 – µP pentru calcul sau conducerea proceselor – aplicaţii de mare complexitate.

Operarea logică - bit cu bit de acelaşi rang - algebra Boole.

A = (an-1 an-2 ... a1 a0 ), B = (bn-1 bn-2 ... b1 b0)


A←A ◊ B = (cn-1 cn-2 ... c1 c0)
unde:
ci = ai ◊ bi
ai, bi, ci ∈ {0, 1}, i= 0, n - 1

◊ = ∨, ∧, ⊕ sau 

Operarea aritmetică - în baza 2: operaţiile: +, - , *, /

Fanioane (engl. Flags) sau indicatori de stare a rezultatului operaţiilor:


- Depăşire sau împrumut (C – carry, AC – auxiliary carry)
- Semn (S – sign)
- Paritate (P – parity)
- Zero (Z – zero)

Cuvântul de stare al programului – PSW (Program Status Word) = A :: fanioane


Unitatea de comandă (UC)
- Coordonează evoluţia microprocesorului:
- Recunoaşte şi decodifică instrucţiunile
- Generează comenzi în vederea execuţiei acestora:
o în interior - spre R+ALU
o în exterior - prin magistralele de adresa (MA), de date (MD) şi de comandă (MC).

2.1.2. Funcţionarea microprocesorului

Funcţionare sincronă – sincronizare cu semnalele furnizate de un generator de tact (GT).

Generatorul de tact:
- oscilator pilotat de un cristal de cuarţ (XTAL)
- formator de semnale de tact.

M1 M1
Φ1 Φ
T1 T2 T3 T1 T2 T3

t t
tCY = T
Φ2 tCY = T

a) semnal de tact cu două faze b) semnal de tact cu o singură fază


Fig.2.3. Semnale de tact pentru microprocesor
Stare maşină. Ciclu maşină. Ciclu instrucţiune

Durata unui ciclu de tact - tCY - unitatea elementară de timp

Starea maşină (T) - durata de timp în care are loc cea mai simplă operaţie internă;
Ti = tCY (i = 1, 2, 3, ...).

Mulţimea stărilor maşină posibile - fixată în structura internă a UC.


Automat algoritmic de stare (algorithmic state machine) - set fix de instrucţiuni.

Ciclul maşină (M) - succesiune finită de stări maşină (T1, T2, ...,Tk);
Corespunde operaţiilor fundamentale de schimb de informaţii în interiorul
microprocesorului sau între microprocesor şi exterior (memorie sau porturi I/E):
- Citire din memorie;
- Scriere în memorie;
- Citire dintr-un port de intrare;
- Scriere într-un port de ieşire.
- Operaţii interne - transfer de informaţii între registrele interne – în paralel cu alte
cicluri

În corespondenţă cu tipul unui ciclu maşină, un microprocesor va avea nevoie pentru


îndeplinirea unei operaţii fundamentale de un anumit număr de stări maşină:
k
Mk = ∑ Ti
i=1

Primul ciclu maşină al unei instrucţiuni - ciclul de aducere a codului instrucţiunii din
memorie (Instruction Fetch Cycle).

Durata unui ciclu maşină – Tc=k×T


Ciclul instrucţiune (CI) - succesiunea de cicluri maşină Mj realizate pe durata execuţiei
complete a unei instrucţiuni.
l l k
CI = ∑Mj = ∑∑Tij
j=1 j=1i=1

Durata de execuţie a unei instrucţiuni – TI=l×k×T

Durata de execuţie a unei secvenţe de program - în funcţie de durata unei stări maşină şi
de durata fiecărei instrucţiuni componente.

Magistralele unui microprocesor

Magistrala de adrese – unidirecţională - conţine un număr a de linii fizice.


a
a - defineşte dimensiunea spaţiului de adresare directă - 2 adrese distincte.

- Adresa unei locaţii de memorie sau un port de I/E.


- Porturile de I/E – număr mai restrâns de linii de adresă
- Spaţii de adresare separate – semnale de control separate – instrucţiuni diferite.
- I/E mapate în memorie – acelaşi semnal de control – aceleaşi instrucţiuni.

Semnal de control asociat - demultiplexare adrese/date.


Magistrala de date – bidirecţională - un număr de linii d - dimensiunea cuvântului de date
care poate fi transferat la un moment dat de către microprocesor.

Microprocesorul controlează sensul de transfer pe MD în corespondenţă cu tipul operaţiei


care urmează a fi efectuată.

La citire date - MD are liniile orientate spre intrare;


La scriere date - MD este orientată spre ieşire.
Semnal de control asociat – precizează sensul – util şi pentru amplificarea magistralei.

Magistrala de comandă - linii de dialog cu dispozitivele externe: memoria şi porturile I/E.

Controlul transferului de date:


- complet decodificate:
- citire din memorie (MEMR - Memory Read)
- scriere în memorie (MEMW - Memory Write)
- citire dintr-un port (I/OR- Input/Output Read)
- scriere într-un port (I/OW - Input/Output Write)
- codificate:
- selecţie memorie / port de I/E (M/IO – Memory / Input Output)
- citire/scriere dispozitiv extern (R /W – Read /Write)

Sincronizare
- tact (CLK – Clock, XTAL)
- sens (DBIN – Data Bus Input, DEN – Data Enable)
- aşteptare (RDY – Ready, WAIT, TEST)
- oprire (HLT – Halt)
Controlul întreruperilor
- cerere întrerupere (INTR – Interrupt Request)
- acceptare întrerupere (INTA – Interrupt Acknowledge)

Controlul accesului la magistrala sistemului


- cerere magistrală (BRQ – Bus Request)
- acceptare cerere magistrală (BACK – Bus Acknowledge)

Iniţializarea microprocesorului

Comportare deterministă – aducerea microprocesorului în starea iniţială.

Iniţializare hardware – RESET - forţează unele registre interne ale microprocesorului într-o
stare bine definită.
Vcc
Resetarea – la alimentare şi la
cerere. D
RESET R
µP
Grupul RC - durata necesară
pentru semnalul RESET.
RESET
Triggerul Schmitt – formează C
frontul semnalului de resetare. trigger
Schmitt

Fig.2.4. Schema de iniţializare a unui microprocesor

Resetare software – comandată prin program – microcontrolere.


Regimuri de funcţionare ale microprocesoarelor

Regimul de execuţie normală a programului

După iniţializare, microprocesorul depune pe MA adresa primei instrucţiuni a programului.

Adresa este conţinută într-un registru numit numărător (contor) de program - PC (Program
Counter) sau IP (Instruction Pointer).

Apoi, contorul de program se incrementează, pregătind următoarea adresă.

După aducerea unei instrucţiuni în registrele interne, UC o decodifică şi generează


succesiunea de microoperaţii în vederea execuţiei (numărul de cicluri maşină şi tipul
acestora).

În acelaşi timp UC generează semnale de comandă în interior, spre R+ULA sau în exterior,
pe MC.

La terminarea unei instrucţiuni se trece la următoarea, ş.a.m.d., urmând o execuţie


secvenţială a programului.

La multe microprocesoare contorul de program are dimensiunea identică cu lărgimea a a


magistralei de adresă.

La resetare, contorul de program se încarcă cu adresa de început a programului (uzual 0).


Regimul de aşteptare (WAIT)
− Sincronizarea microprocesorului cu dispozitive externe mai lente.
− La cererea dispozitivului selectat se pot include stări maşină inactive, numite stări de
aşteptare - TWAIT.
− Circuite de memorie cu timp de răspuns mai mare decât durata unui ciclu procesor (tCY).
Logică de aşteptare – detectează accesul la un circuit mai lent.

Φ
µP Logica
de MEM
WAIT
Ti: µP MEMR
  → MEM, LA aşteptare
R
RESET SEL
LA WAIT
 → µP → starea
WAIT Logica
de decodificare MEMR
şi selecţie
.......... .............

WAIT MA
Ti + kTW : LA  → µP

MD
R ← (MD)
MC

Fig.2.5. Principiul implementării regimului de aşteptare


MEMR (Memory Request) - trecerea microprocesorului în regimul de aşteptare (WAIT).
− După un număr k de cicluri TW, pe MD va exista informaţia corectă.
− Trebuie determinat numărul k de stări TW.
− Sincronizare cu semnalul de tact al microprocesorului (Φ).
− Iniţializarea acestui bloc odată cu microprocesorul.
− Implementare - un lanţ de CBB-uri sincrone de tip D.

Regimul de cedare de magistrale

Trecerea celor trei magistrale ale microprocesorului în starea de înaltă impedanţă.


Se foloseşte pentru accesul direct la memorie (Direct Memory Access).
- dispozitive externe de mare viteză (de exemplu convertoare A/D rapide, interfeţe
seriale) trebuie să aibă acces la locaţii de memorie;
- transferul unui bloc mare de date de la o memorie de masă.

Altă utilizare - realizarea structurilor multi-microprocesor.

Cedarea coordonării resurselor sistemului unui alt dispozitiv (controler, microprocesor).

Linii de comandă specifice (dialog cu confirmare – engl. handshaking):


- solicitare a magistralelor, BRQ (Bus ReQuest)
- acceptare, BACK (Bus ACKnowledge).

Dacă solicitarea este acceptată, UCP îşi suspendă activitatea, permiţând noului coordonator
să controleze resursele sistemului.
În momentul în care controlerul şi-a încheiat activitatea pentru care a solicitat MS,
microprocesorul îşi reia funcţionarea în regim normal din punctul în care a suspendat-o.
Regimul de întreruperi

Tratarea prioritară a unor solicitări externe prin întreruperea temporară a rulării normale a
programului principal şi execuţia unei rutine asociate solicitantului de întrerupere.

Răspuns în timp real la diferite evenimente apărute în procesul condus.

Tipuri de întreruperi:
Întreruperi nemascabile (NMI- Non Maskable Interrupt):

- nu poate fi inhibată prin program;

- rutina de servire a întreruperii are o localizare fixă, prestabilită hardware;

- se foloseşte pentru controlul unor situaţii excepţionale - iminenţa dispariţiei


alimentării.

Întreruperi mascabile (INTR – Interrupt Request):

- au prioritate mai redusă în tratare decât cele nemascabile

- pot fi invalidate (mascate) prin program - instrucţiuni speciale - setarea/resetarea


unui fanion de întreruperi (Interrupt Flag).

- la formularea lor, între solicitantul de întrerupere şi microprocesor are loc un dialog cu


confirmare (INTR – cerere, INTA – confirmare).

- mai multe surse decât linii - sistem de întreruperi – controlere de întreruperi.


Programarea microprocesoarelor

Comenzile microprocesorului – instrucţiuni.

- Succesiune de instrucţiuni – program.

- Programul – implementează un algoritm.

Microprocesoarele – execută instrucţiuni exprimate sub formă binară – limbaj maşină.

La nivelul programatorului – instrucţiuni în formă simbolică – limbaj de programare.

Limbaj de asamblare – nivelul cel mai apropiat de limbaj maşină:


- o instrucţiune în limbaj de asamblare– o instrucţiune în limbaj maşină

Limbaje de nivel înalt – din ce în ce mai îndepărtat de limbajul maşină:


- o instrucţiune în limbaj de nivel înalt – una sau mai multe instrucţiuni în limbaj
maşină.

Ex.: C, Basic, Pascal, Fortran etc.

Limbajul de asamblare - specific fiecărui tip de microprocesor


Fiecărui tip de instrucţiune în limbaj maşină – o expresie simbolică – numele instrucţiunii
(engl. mnemonic).
Numele instrucţiunii = numele operaţiei + numele operandului (dacă există)
+ numele operanzilor (dacă sunt mai mulţi).

Translatarea codului sursă scris în limbaj de asamblare – manual sau automat (asamblor)
Cross-asamblor – asambloare care se execută pe alt tip de microprocesor decât cel pentru
care se generează codul executabil.
Instrucţiuni în limbaj de asamblare:
Executabile – pentru microprocesor
Neexecutabile (pseudoinstructiuni sau directive de asamblare) – pentru asamblor

Organizarea programului sursă:


Definirea modulelor de program şi a legăturilor dintre acestea;
Definirea datelor (constante şi variabile)
Structurarea programului (asamblare condiţionată, macroinstrucţiuni)

Codul generat de asamblor:

cod obiect absolut - cu adrese definitive pentru instrucţiuni şi date – un singur modul
cod obiect relocabil - cu adrese temporare – mai multe module sursă

Modularizarea programelor - formate din mai multe module sau fişiere sursă, scrise în
limbaj de asamblare sau de nivel mai înalt.

Editarea legăturilor – legarea modulele obiect relocabile într-un singur fişier executabil, cu
adrese fixe.

Editorul de legături (linker):


- rezolvă referinţele între modulele obiect;
- stabileşte valorile adreselor din program în funcţie de adresa de încărcare în memorie.
Formatul fişierului sursă: succesiune de linii de text sursă

Formatul liniei de text sursă (notaţia BNF – Backus-Naur Form):

<LINIE SURSA> ::= <ETICHETA> DC <COD> DC <OPERAND> DC <COMENTARIU>

DC – delimitatori de câmp: spaţiu ( ), virgulă (,), două puncte (:), punct şi virgulă (;) etc.

<ETICHETA> ::= <SIMBOL>


<SIMBOL> ::= <LITERA>|<LITERA><CARACTER>|<LITERA><SIMBOL>

<COD> ::= MOV|ADD|ADC|PUSH|....|IN|OUT|HLT|ORG|...|DB|DS

<OPERAND> ::= |<ARGUMENT>|<ARGUMENT>,...,<ARGUMENT>


<ARGUMENT>::= <CONSTANTA>|<SIMBOL>|
<SIMBOL><OP><ARGUMENT>|
<CONSTANTA><OP><ARGUMENT>
<OP> ::= + | - | * | /

<COMENTARIU> ::= |<caracter>|<COMENTARIU>


Formatul instrucţiunilor - specific fiecărui tip de microprocesor.

Instrucţiunile
– formate din unul sau mai multe cuvinte binare
– cuvintele sunt amplasate în locaţii succesive, în sensul crescător al adreselor
– cuvintele sunt grupate în câmpuri, având semnificaţii distincte.

Tipuri de câmpuri:

Codul operaţiei sau opcodul (engl. OPeration CODE)


– primul câmp al unei instrucţiuni
– unul sau mai multe cuvinte
– poate conţine şi informaţii despre operanzi – opcod generalizat

Unul sau mai multe câmpuri de date sau adrese ale operanzilor (literal)

Modul de adresare:
- procedura prin care microprocesorul are acces la operanzi
- un tip de instrucţiune poate folosi unul sau mai multe moduri de adresare
- măsură a capabilităţii şi flexibilităţii unui microprocesor
Moduri de adresare (exemple): Registru Memoria
Index
- Implicită – operandul este într-un
registru implicit (de exemplu
acumulatorul);
Indexată + Data
Numărător de
- La registru – operandul este în unul din program
Instrucţiunea
registrele microprocesorului; următoare

- Imediată - operandul se află imediat Data


după opcod (în câmpul de
Relativă +
literal);

- Directă - adresa operandului se află în


câmpul de literal al OPCOD
instrucţiunii; Instrucţiune
LITERAL Imediată
- Indirectă - câmpul de literal conţine
adresa locaţiei unde se află
adresa operandului;
Directă Data
- Relativă - câmpul de literal conţine un
deplasament faţă de adresa
instrucţiunii următoare, Indirectă Adresă
indicată de numărătorul de
program Data
- Indexată - câmpul de literal conţine un
deplasament faţă de adresa
conţinută într-un registru index Fig.2.6. Principalele moduri de adresare
Setul de instrucţiuni - vocabularul limbajului maşină.
Tipuri de instrucţiuni

Realizarea operaţiilor de prelucrare


– instrucţiuni logice
– instrucţiuni aritmetice.

Operaţii asupra codurilor


- instrucţiuni de transfer între registrele interne şi memorie
- instrucţiuni de deplasare (logică, aritmetică sau ciclică)
Operaţii de comandă
- instrucţiuni de ramificare (salt, apel şi revenire - condiţionate şi necondiţionate)
- instrucţiuni de control al regimului de întrerupere
- instrucţiuni de oprire a microprocesorului (HALT).
Operaţii de I/E
- instrucţiuni de I/E
Operaţii speciale – la microprocesoarele complexe, de 32 sau 64 biţi
- controlul corectitudinii funcţionării blocurilor sistemului
- gestiunea şi protecţia memoriei etc.

Programarea în limbaj de asamblare


– exploatare eficientă a resurselor interne
– dimensiune redusă a codului executabil şi/sau viteză ridicată
– un grad de dificultate mai ridicat (operaţii simple – obiective complexe)
Limbaje de nivel înalt – operaţii mai
Analiza problemei
complexe, mai apropiate de obiectivele
urmărite
O instrucţiune în limbaj înalt – mai multe Organigrama
instrucţiuni în limbaj de asamblare
Limbajul C – limbaj de nivel înalt, dar
extrem de puternic şi de flexibil Proiectare program
– eficienţă apropiată de cea a limbajului
de asamblare
Scriere program
– un efort de programare mult redus
Compilatoare – translatează textul sursă
în cod obiect relocabil, direct sau prin Asamblare / compilare
intermediul limbajului de asamblare.

Editare legături
Etapele realizării unui program

- Analiza problemei - stabilirea Încărcare program Program Monitor


principalelor fluxuri informaţionale

- Reprezentarea algoritmului – Execuţie şi depanare


scheme logice (organigrame).

- Proiectarea modulară – simplificarea Program final


etapelor de scriere, prelucrare şi
testare
Fig.2.7. Etapele principale ale dezvoltării
unui program de aplicaţie
2.2. Memoria sistemelor cu microprocesoare

MA a
Adresa d
UCP
cu MD d 0 cuvânt 1
µP 1
MEMR MEMW cuvânt 2
MC c : :
: :
i-1 cuvânt i
: :
Logică de :
decodificare şi MEMP
M MEMD :
: :
selecţie MEM MEM a
2 -1 cuvânt 2a

Fig.2.9. Spaţiul de adresare


Fig.2.8. Structura subsistemului de memorie a memoriei

a
Spaţiul de adresare a memoriei: A = 2 locaţii

Spaţiul ocupat de memoria sistemului: M ≤ A

Adresarea memoriei:
fT : A → M
2.2.1. Tipuri de memorie utilizate în sistemele cu microprocesoare

Nevolatilă – ROM – read only memory:

- PROM – Programmable ROM (OTP – One Time Programmable)

- EPROM – Eraseable PROM – în afara sistemului – ştergere cu UV, programator de


memorii

- EEPROM – Electrically Eraseable PROM – ştergere şi reprogramare în sistem sau în


afara acestuia

- FLASH – capacităţi mari - ştergere şi programare în sistem sau înafara acestuia

Volatilă – RAM – random access memory

- SRAM – RAM statică – capacitate mică, nu necesită reîmprospătare

- DRAM – RAM dinamică – capacitate mare - necesită reîmprospătarea periodică a


informaţiilor memorate (automat de reîmprospătare)

EEPROM – utilizată pentru date de configurare a sistemului, cu acces:

- paralel

- serial
2.2.2. Transferul de informaţie între memorie şi microprocesor
Scrierea datelor în memorie

n
- n linii de Linii adresă An ÷ A1 A1
adrese DISP.
- m linii de Linii date Dm ÷ D1 An
date D1 MEM.
tDS tDH
- o linie de Linie comandă Dm
comandă a MEMW m
scrierii - WR tWACC TWP t
(Write) MEMW
Fig.2.10. Succesiunea semnalelor la scrierea într-un dispozitiv de memorie

a) pregătirea memoriei
MA ← α - se aplică adresa pe liniile An÷A1;
MD ← (R) - se aplică datele pe liniile Dm÷D1;

b) înscrierea informaţiei
MC ← MEMW - după tDS (Data Set), se activează MEMW , pe durata TWP (Write Pulse);
MEM(α) ← (MD) - după dezactivarea MEMW , datele se menţin un timp tDH (Data Hold)

Timp de acces la scriere - tWACC (Write ACCess time) - intervalul dintre aplicarea adresei şi
activarea semnalului de scriere.

tWACC ≈ 200 ns - memorii CMOS;


tWACC ≈ 30 ns pentru memorii bipolare (TTL).
Citirea datelor din memorie

n
Linii adresă An ÷ A1 A1
DISP.
Linii date Dm ÷ D1 An
D1 MEM.
Linie comandă Dm
RD m
tRACC t
RD
Fig.2.11. Succesiunea semnalelor la citirea dintr-un dispozitiv de memorie
a) pregătirea memoriei
MA ← α - se depune adresa pe liniile An÷A1;
MC ← MEMR - se comandă citirea datei (pe linia RD ), după un timp tRACC
b) citirea propriu-zisă
MD ← MEM (α) - memoria depune data pe liniile Dm÷D1
R ← (MD) – microprocesorul reţine data de pe MD.

Linia de comandă – de tip R / W - se conectează la MEMW .

De regulă tRACC>tWACC, din acest motiv tRACC se ia în consideraţie la proiectarea sistemului.

Transfer corect cu memoria: tACC ≤ tCY.

În caz contrar - logică de aşteptare.


2.2.3. Organizarea memoriei sistemelor cu microprocesoare

Cerinţe specifice:
• Respectarea timpului de acces
• d = LCMEM (când d > LCMEM, se conectează mai multe dispozitive în paralel)
• Numărul de dispozitive care să acopere capacitatea cerută pentru MEMP şi MEMD;
• Selecţia dispozitivelor de memorie.
Exemplul 1. MEMD = 4K×8 biţi (d = 8), folosind dispozitive SRAM 1K×4 biţi (LCMEM = 4).
o d = 2 × LCMEM – câte două dispozitive, selectate simultan şi pentru fiecare 1Ko.
o 4 grupuri (bancuri) de 1Ko fiecare, deci în total 8 dispozitive de 1K×4 biţi.

D7 Magis-
trala 8 biţi
de
date 4 4
D0
1 Ko GRUP 0 CS0
Linie 1 Ko GRUP 1 CS1
selecţie 1 Ko GRUP 2 CS2
D3 D2 D1 D0 D3 D2 D1 D0
1K×4 grup 1 Ko GRUP 3 CS3
1K×4
de 1Ko
R/W CS R/W CS
MEMW

1 Koctet
Fig.2.12. Realizarea unei memorii de 4Ko cu dispozitive de 1K×4 biţi
Selectarea dispozitivelor de memorie:

- selecţia liniară:
o fiecărui circuit de memorie sau grup de circuite → o linie de adresă;
o avantajoasă la realizarea sistemelor cu puţine dispozitive de memorie;
o măsuri suplimentare de precauţie la adresarea memoriei în cadrul aplicaţiei.

- selecţia cu decodificare
o se foloseşte o logică de decodificare/demultiplexare;
o folosire mai judicioasă a spaţiului de adresare ;
o preferată în cazul sistemelor cu mai multe circuite de memorie;
o exclude posibilitatea apariţiei unor conflicte de acces la memorie.

- selecţia combinată - se utilizează simultan, ambele soluţii.

Etapele proiectării subsistemului de memorie:

1. Dimensiunea MEMP (MEMD) – numărul cel mai mic de circuite ROM (RAM) cu tACC ≤ tCY.

2. Harta memoriei – spaţiul de adresare - spaţiul ocupat de fiecare circuit sau grup.
- Adresa primei instrucţiuni executate după resetarea µP – amplasare MEMP.

3. Tabelul de adresare şi selecţie - utilizarea liniilor MA pentru a evita un conflict logic.


- Blocurile de memorie – contiguitate;
- Liniile inferioare ale MA – conectate la liniile de adresă ale circuitelor de memorie;
- Liniile superioare imediat următoare ale MA – selectarea circuitelor de memorie.

4. Sinteza şi implementarea funcţiilor de selecţie individuală a circuitelor de memorie.

5. Schema de conectare a dispozitivelor de memorie la MS.


Exemplul 2. Sistem cu µP de 8 biţi (d=8) , cu tCY = 500ns şi a=16 (A = 64Ko), 12Ko MEMP şi
2Ko MEMD, cu EPROM 4Ko (2732) şi SRAM 2 Ko (6116), cu tACC < 330 ns.
1. Un număr de 3 circuite EPROM 2732 (EPROM 1÷3) şi 1 dispozitiv SRAM 6116.

2. Harta memoriei
ADRESA 8 biţi
Adresa de start după resetarea µP = 0
(valoarea iniţială a numărătorului de program) 0000h EPROM 1
EPROM1: 4 Ko = 4 × 210 octeţi = (4Ko)
12
0FFFh
=2 combinaţii de adresă ⇒ 12 linii de adresă 1000h EPROM 2
(4Ko) MEMP
Adresa primei locaţii = 0000 0000 0000 b = 000h 1FFFh
(combinaţia cu 12 biţi de 0) 2000h EPROM 3
Adresa ultimei locaţii = 1111 1111 1111 b = FFFh (4Ko)
2FFFh
(combinaţia cu 12 biţi de 1) 3000h
37FFh SRAM (2Ko) MEMD
EPROM 2: începe la FFFh + 1 = 1000h 3800h SPAŢIU
LIBER
Adresa ultimei locaţii = 1000h + FFFh = 1FFFh.

EPROM 3: – începe la 1FFFh + 1 = 2000h


Fig.2.13. Harta memoriei
şi se termină la 2000h + FFFh = 2FFFh.

SRAM: 2 Ko = 2 × 210 octeţi = 211 combinaţii de adresă ⇒ 11 linii de adresă ⇒ ultima


combinaţie binară = 111 1111 1111 b = 7FFh.

Adresa ultimei locaţii = 3000h + 7FFh = 37FFh.


3. Tabelul de adresare şi selecţie - modul de utilizare a liniilor de adresă

Numărul de linii de adresă folosite pentru selecţie:

Nlinii ≥ log2NZONE MEM = log24 ⇒ 2 linii

Linii pentru selecţie Linii folosite pentru


Tipul Zona de cu decodificare adresarea internă
memoriei memorie ocupată
A15 A14 A13 A12 A11 A10 . . . . . . A1 A0

EPROM 1 0000 ÷ 0FFFh 0 0 0 0 × × ...... × ×

EPROM 2 1000 ÷ 1FFFh 0 0 0 1 × × ...... × ×

EPROM 3 2000 ÷ 2FFFh 0 0 1 0 × × ...... × ×

SRAM 3000 ÷ 37FFh 0 0 1 1 0 × ...... × ×

4. Harta memoriei de la pasul 2 – impune o selecţie prin decodificare.


Doar A13 şi A12 se modifică în spaţiul de adresare, în funcţie de zonă.
Decodificare - incompletă – DCD 2/4;
- completă - DMUX 2/4.
Separarea spaţiilor de adresare:
- la nivelul semnalelor de control ( MEMR , MEMW / IOR , IOW ).
- la nivelul logicii de decodificare şi selecţie ( M / IO ).
5. Schema de conectare a dispozitivelor de memorie la MS
A15 ÷ A0 A12 A13 A14 A15
A11 MA A12 A13 A0 A10
A0
A0 A1 11
12 A0 A1
DCD 2/4
DMUX 2/4 E1
0 1 2 3 E2
0 1 2 3
D7 ÷ D0 MD
CSEPROM1 CSSRAM
CSEPROM2 CSEPROM3
CS CS CS CS
EPROM EPROM EPROM SRAM b)
1 2 3
R/W A12 A13 A15 M/IO
OE OE OE
MEMR
MEMW A0 A1
a) DMUX 2/4 E1
c) E2
0 1 2 3

CSEPROM1 CSSRAM
CSEPROM2 CSEPROM3

Fig.2.14. Selecţia cu decodificare (a) şi cu demultiplexare (b) a circuitelor de memorie


Selecţia liniară - se pot folosi pentru selecţie cele 4 linii de ADRESA 8 biţi
adresă rămase libere.
0000h
SPAŢIU
0FFFh LIBER
Linii pentru Linii folosite pentru
Tipul Zona de selecţie liniară adresarea internă 1000h EPROM 1
memoriei memorie
1FFFh (4Ko)
A15 A14 A13 A12 A11 A10. . . . . .A1 A0
2000h EPROM 2
EPROM 1 1000 ÷ (4Ko)
0 0 0 1 × ×...... × × 2FFFh
1FFFh
3000h SPAŢIU
EPROM 2 2000 ÷ INTERZIS
0 0 1 0 × ×...... × × 3FFFh
2FFFh
4000h EPROM 3
EPROM 3 4000 ÷ (4Ko)
0 1 0 0 × ×...... × × 4FFFh
4FFFh
5000h
SRAM 8000 ÷
1 0 0 0 0 ×...... × ×
87FFh
SPAŢIU
INTERZIS
Observaţii:
− Spaţiul ocupat de cele 4 circuite nu este contiguu;
− Spaţiu liber – nici un circuit de memorie nu este selectat; 7FFFh
8000h SRAM (2Ko)
− Spaţiu interzis – adrese care generează conflicte pe MD; 87FFh
8800h SRAM (2Ko)
− La resetare – trebuie forţat A12 în „1” logic; 8FFFh
9000h
− CS EPROM 1 = A12 ; CS EPROM 2 = A13 ; CS EPROM 3 = A14 ; CS SRAM = A15 SPAŢIU
INTERZIS
A15 ÷ A0 A11 A12 MA A13 A14 A0 A10 A15
A0
12 11

D7 ÷ D0 MD

CS CS CS CS
EPROM EPROM EPROM SRAM
1 2 3
OE OE OE R/W

MEMR
MEMW
A12
A12µP
MA
D Q
CBB
CTRL T S
R +VCC

Fig.2.15. Selecţia liniară a circuitelor de memorie


2.3. Dispozitive de I/E în sistemele cu microprocesoare

Adresa d
MA a
UCP 0
cu MD d 1
µP : :
IOR IOW
MC c : :
i
: :
:
:
Logică de : :
decodificare PI PE p
2 -1
şi selecţie I/E
Dispozitive de I/E
Fig.2.17. Spaţiul de
adresare a dispozi-
tivelor de I/E

Fig.2.16. Structura subsistemului de I/E


p
Spaţiul de adresare a dispozitivelor de I/E: P = 2 porturi de I/E; p ≤ a (uzual p= a/2).
Spaţiul ocupat de dispozitivele de I/E ale sistemului: IE ≤ P

Adresarea dispozitivelor de I/E:


fT : P → IE
2.3.1. Porturi de I/E

Locaţii prin care se poate realiza un schimb de informaţie între µP şi dispozitivele de I/E.

Transferul de informaţie dintre UCP şi porturile I/E


Scrierea datelor într-un PE

p
- p linii de Linii adresă Ap ÷ A1 A1
adrese Spaţiu de
- m linii de Linii date Dm ÷ D1 Ap adresare
date D1 porturi
tDS tDH
Linie comandă de I/E
- o linie de Dm
comandă a I/OW m
scrierii - I/OW tWACC TWP t
(Write) WR
Fig.2.18. Succesiunea semnalelor la scrierea într-un port de ieşire

a) pregătirea portului
MA ← β - se aplică adresa pe liniile Ap÷A1;
MD ← (R) - se aplică datele pe liniile Dm÷D1;

b) înscrierea informaţiei
MC ← I/OW - după tDS (Data Set), se activează I/OW , pe durata TWP (Write Pulse);
PE(β) ← (MD) - după dezactivarea I/OW , datele se menţin un timp tDH (Data Hold).

Linia de comandă – WR - se conectează la I/OW .


Citirea datelor dintr-un port de intrare

p
Linii adresă Ap ÷ A1 A1
Spaţiu de
Linii date Dm ÷ D1 Ap adresare
D1 porturi
Linie comandă de I/E
Dm
I/OR m
tRACC t
RD
Fig.2.19. Succesiunea semnalelor la citirea dintr-un port de intrare

a) pregătirea portului
MA ← γ - se depune adresa pe liniile Ap÷A1;
MC ← I/OR - se comandă citirea datei, după un timp tRACC

b) citirea propriu-zisă
MD ← MEM (γ) – portul de intrare depune data pe liniile Dm÷D1
R ← (MD) – microprocesorul reţine data de pe MD.

Linia de comandă – RD - se conectează la I/OR .


Conectarea porturilor I/E la magistrala sistemului
Cerinţe specifice:
- selecţie/adresare individuală;
- dimensiune corespunzătoare a cuvintelor transferate de la/spre µP;
- memorarea temporară a informaţiei de la/spre UCP;
- respectarea încărcării electrice a magistralelor (fan in, fan out).

Porturi de I/E cu CBB

MA a
UCP
cu MD d
µP IOR IOW
MC c
Setare
CBB
S
Logică de D Q
decodificare CBB
şi selecţie I/E
Scriere CBB
T Q
Citire CBB R

Resetare CBB

Fig.2.20. Conectarea unui CBB ca port de I/E la magistrala sistemului


Porturi de I/E realizate cu registre de uz general

Port I/E = registru + logică de selecţie şi citire/scriere.

Exemplu: I8212 - port I/E de 8 biţi, de uz general, unidirecţional şi neprogramabil.

Registru tampon - 8 CBB tip D, şters cu CLR


DI8 DO8
Registru Amplif.
DI1 : ieşire : DI1÷DI8 (Data Input) – consumă 250µA;
tampon DO1
(8 biţi) Amplificator de ieşire TS (IOL = 15 mA);
CLR
Flexibilitate funcţională.

STB MD DS1 · DS2 Regim de funcţionare


Logica de 0 0 0 HZ
INT
comandă şi 1 0 0 HZ
selecţie 0 1 0 DATA-LATCH
1 1 0 DATA-LATCH
0 0 1 DATA-LATCH
1 0 1 DATA IN
0 1 1 DATA IN
DS1 DS2 MD STB 1 1 1 DATA IN

Fig.2.21. Structura internă şi tabelul de adevăr al circuitului I8212

MD – MoDe; STB – STroBe; DS1 şi DS2 – Device Select (DS1· DS2=1 ⇔ ambele linii active)

INT - cerere de întrerupere – dacă DS1=0 şi DS2 = 1 (dispozitiv selectat), la apariţia unui
front descrescător pe intrarea STB.
Conectarea ca port de intrare:

- Liniile DO - în stare de înaltă impedanţă atât timp cât nu este selectat (HZ).

- La selecţie - să permită trecerea datei prezente pe liniile DI către liniile DO (DATA IN);

- La deselecţie - liniile DO trebuie să revină în starea de înaltă impedanţă (HZ).

HZ: STB=1, MD=0 şi DS1·DS2=0

DATA-IN: STB=1, MD=0 şi DS1 ·DS2=1.

Conectarea ca port de ieşire:

- Liniile DO – furnizează continuu informaţia memorată în registrul tampon.

- La selecţie – să permită intrarea datei prezente pe DI (DATA-IN)

- La deselecţie – să reţină data în registrul tampon (DATA-LATCH).

DATA-IN: STB=MD=1 şi DS1 ·DS2=1

DATA-LATCH: STB=MD=1 şi DS1·DS2=0


Exemplul 1. Sistem cu µP de 8 biţi (d=8), a=16 şi p=8 (P = 256 I/E), un port de intrare şi
unul de ieşire, realizate cu I8212.
Selecţie liniară: 8212-IN – selectat cu A6, iar 8212-OUT – selectat cu A7.
Linii de selecţie Linii neutilizate 8 biţi
Port I/E Adresa Adresa
A7 A6 A5 A4 A3 A2 A1 A0
00h
8212-IN 40 ÷ 7Fh 0 1 × × × × × ×
8212-OUT 80 ÷ BFh 1 0 × × × × × × SPAŢIU
LIBER
3Fh
A15 ÷ A0 A6 A7 40h 8212-IN
UCP 41h 8212-IN
cu D7 ÷ D0
8212-IN
µP
I/OW 7Fh 8212-IN
I/OR 80h 8212-OUT
VCC 81h 8212-OUT
VCC DS1 DO8÷DO1 DS2 DS1 DI8÷DI1 DS2 8212-OUT
CLR CLR
STB 8212 - IN STB 8212 - OUT BFh 8212-OUT
MD MD C0h
DI8 DI7 . . . DI1 DO8 DO7 . . . DO1 SPAŢIU
INTERZIS

De la dispozitive de intrare Spre dispozitive de ieşire FFh


Fig.2.22. Conectarea porturilor de I/E – selecţie liniară Fig.2.23. Harta spaţiului de I/E
Dispozitive de I/E programabile
Exemplul 2. La sistemul de la exemplul 1, adăugăm un circuit de interfaţă paralelă 8255.
Selecţie cu decodificare: A7 şi A6.

Linii de selecţie Linii neutilizate Adresa 8 biţi


Dispozitiv
Adresa
de I/E A7 A6 A5 A4 A3 A2 A1 A0 00h 8212-IN
8212-IN
8212-IN 00 ÷ 3Fh 0 0 × × × × × ×
8212-OUT 40 ÷ 7Fh 0 1 × × × × × × 8212-IN

8255 80 ÷ BFh 1 0 × × × × × ×
3Fh 8212-IN
40h 8212-OUT
41h 8212-OUT
8212-OUT
7Fh 8212-OUT
80h 8255 - port A
81h 8255 – port B
82h 8255 – port C
83h 8255 – port ctrl.
84h
8255
BFh
C0h
SPAŢIU
LIBER
FFh
A15 ÷ A0 A7 A6 A1 A0

UCP
cu DCD I/E
µP
0 1 2 3

D7 ÷ D0

I/OW
I/OR

VCC

VCC DS2 DO8÷DO1 DS1 DS2 DI8÷DI1 DS1 CS D7÷D0 A1 A0


CLR CLR WR
STB 8212 - IN STB 8212 - OUT 8255
MD MD RD
DI8 DI7 . . . DI1 DO8 DO7 . . . DO1 Port A Port B Port C
8 8 8

De la / spre dispozitive de intrare / ieşire

Fig.2.24. Conectarea porturilor de I/E – selecţie cu decodificare


2.3.2. Tehnici de intrare-ieşire
− Modalităţi de realizare a transferului de date de la /spre dispozitivele de I/E.
− Datele pot fi transferate la momente care depind de dispozitivele de I/E.
− Datele devin disponibile pentru transfer cu o rată care depinde de dispozitivele de I/E.
− Datele trebuie să poată fi transferate cu o rată cel puţin egală cu cea cu care ele devin
disponibile.

Transferul programat I/E


Detectarea momentului în care acestea solicită sau sunt pregătite pentru un transfer I/E.
Rularea periodică, de către µP, a unei secvenţe de program de interogare a stării disp. I/E.

MICRO-
PROCESOR INTEROGARE

I/E 1 DA Transfer solicitat


? de I/E 1
? NU
I/E 1
ROM
I/E 2 DA Transfer solicitat
? ? de I/E 2
I/E 2
NU
RAM

? I/E n DA Transfer solicitat


I/E n
? de I/E n
NU
RETURN

Fig.2.25. Schema simplificată a transferului programat (cu interogare)


Avantaje:
- simplitate;
- nu necesită dispozitive suplimentare;
Dezavantaj:
- timp pierdut cu interogarea dispozitivelor care nu au nimic de transferat.

Transferul I/E cu utilizarea întreruperilor


- µP este atenţionat atunci când un dispozitiv MICRO- INT
doreşte sau permite transferul de date.
PROCESOR
- întrerupe activitatea curentă pentru a INTA
efectua transferul;
IRQ1
Controler
- reia activitatea întreruptă din punctul în
care a rămas. întreruperi
ROM
IRQn
Cereri multiple de transfer - controler de
întreruperi – tratarea solicitărilor multiple. I/E 1

Recunoaşterea sursei – prin interogare sau


printr-o informaţie furnizată de controlerul de RAM
întreruperi - vector de întrerupere.

Vectorul de întrerupere: I/E n


- adresa rutinei de tratare;
- adresa de memorie la care se află stocată
adresa rutinei de tratare.
Fig.2.26. Schema simplificată a transferului
I/E cu utilizarea întreruperilor
Transferul I/E prin acces direct la memorie

RAM

µP
MD
BRQ BACK

Controler I/E 1 I/E n


DMA
BRQn BRQ1

Fig.2.8. Schema transferului I/E prin acces direct la memorie

Trecerea µP în regimul de cedare de magistrale.


Controlerul DMA - gestionează solicitările dispozitivelor de I/E
- arbitrează solicitările simultane pe baza priorităţilor de servire
- lansează o cerere, BRQ, către µP.
Microprocesorul: - îşi suspendă activitatea;
- răspunde prin activarea semnalului BACK
- generează adresele şi semnalele de control pentru memorie şi
dispozitivul I/E solicitant.

Transferul are loc pe magistrala de date, direct între memorie şi dispozitivul I/E.
Tehnica DMA asigură cea mai ridicată rată de transfer I/E.

S-ar putea să vă placă și