Sunteți pe pagina 1din 14

Sisteme cu procesoare multiple

Capitolul 3
Sisteme multiprocessor cu module funcţionale distribuite
Un sistem multi(micro)procesor în varianta distribuită presupune utilizarea
unui număr limitat de module standard de tip UCP, RAM, EPROM, I/E,
interschimbabile, care pot fi conectate fie pe magistralele interne (MI) ale
procesoarelor, ca resurse locale, fie pe magistrala externă (ME), ca resurse
comune (Fig.1).

Pi
I/E
UCP RAM ROM
serială
Pi-1 Pi+1
Magistrala
Internă (MI)
Interfaţa de
magistrală IM

Magistrala
Externă (ME)
RAM ROM I/E
(comună) (comună) (comune)

Fig.1. Structura internă a unui sistem multi(micro)processor

ME1
ME2

Pi-1 Pi Pi+1
Pj-1 Pj Pj+1

MEn

Pk-1 Pk Pk+1

Fig.2. Extinderea sistemelor multi(micro)procesor


1
Sisteme cu procesoare multiple

Creşterea numărului de procesoare duce la supraîncărcarea magistralei externe.

O soluţie este utilizarea de către fiecare procesor a uneia sau mai multor
interfeţe de comunicaţie serială, cu ajutorul căreia se poate comunica cu un alt
procesor, plasat pe o altă magistrală externă.

3.1. Comunicaţia interprocesor

Implementarea hardware a unui sistem multi(micro)procesor în varianta


distribuită se reduce la proiectarea unui sistem de comunicaţie între
magistralele interne ale procesoarelor şi magistrala externă.

ADDRE DATAE

BREQ BACK
Driver
bidirecţional
de magistrală
DCD
adrese

DATAI
ME1
ADDRI WRI RDI

Fig.3. Modulul de interfaţă cu magistrala (IM)

2
Sisteme cu procesoare multiple

MC

BACKA BACKB
PB
PA (WAIT)

Arbitru
de
BREQA magistrală BREQB

Fig.4. Arbitrarea accesului la magistrala comună

PA

ME

Port E
DCD
adrese RAM dublu
port (MID)
WAIT Port I

MI
UCP în WAIT
PB

Fig.5. Memorie distribuită de tip RAM dublu port

3
Sisteme cu procesoare multiple

PA

WAIT ME

HR
DCD
adrese

HR
HOLD HLDA
MI
UCP în HOLD

RAM
(MID)
PB

Fig.6. Memorie distribuită conectată numai pe magistrala locală

3.2. Organizarea memoriei sistemelor multi(micro)procesor

Fiecare procesor i, i = 1,n , vede întreaga memorie împărţită în două zone:

- Memoria internă (MIi) – conectată fizic la magistrala sa internă, fiind la rândul


ei formată din două părţi:

- memoria internă privată (MIPi), care nu este accesibilă din exterior, ci


doar de pe magistrala internă a procesorului i;

- memoria internă distribuită (MIDi), accesibilă şi din exterior, tuturor


celorlalte n-1 procesoare, pe magistrala externă.

Astfel, memoria fizică asociată fiecărui procesor, MFi, este:

M Fi = M Ii = M IPi + M IDi , i = 1,n .

4
Sisteme cu procesoare multiple

- Memoria externă (MEi) – conectată fie pe magistrala externă, fie pe


magistralele interne ale celorlalte n-1 procesoare.

- memoria externă concentrată (MEC), conectată fizic la magistrala externă a


sistemului multi(micro)procesor;

- memoria externă distribuită (MED) la celelalte n-1 procesoare din sistem


sub forma a n-1 zone de tip MIDj, j = 1,n , j ≠ i .

Rezultă că memoria externă este:


n
M Ei = M EC + M EDi = M EC + ∑ M IDj , i = 1,n .
j =1
j ≠i

În fig.7 se prezintă configuraţia memoriei întregului sistem multi(micro)procesor.

MEi
MEC
MIP1

Memoria virtuală (MV)

MID1 MIDi MIDn

... ...
MIP1 MIPi MIPn

1 i n

Memoria fizică totală (MT)

Fig.7. Organizarea memoriei sistemelor multi(micro)processor

Considerând o partiţionare egală a zonelor de memorie în raport cu cele n


procesoare din sistem, adică

MIPi = MIPj = MIP


MIDi = MIDj = MID, ∀i, j = 1,n .

5
Sisteme cu procesoare multiple

Rezultă: MFi = MFj = MF


M V = n ⋅ M ID
M E = n ⋅ M ID + M EC

Partiţionarea optimă a spaţiului de adresabilitate al procesoarelor vizează


respectarea unuia sau mai multora dintre următoarele aspecte:

a) raportul dintre zonele MIP şi ME, cu maximizarea memoriei fizice totale (MT);

b) raportul dintre MIP şi MID, adică raportul dintre necesarul de memorie de lucru
şi necesarul de memorie de comunicaţie (distribuită);

c) stabilirea numărului n de procesoare din sistem, pentru maximizarea MT, dar


fără supraîncărcarea magistralei externe;

d) raportul dintre MEC şi MV în cadrul memoriei externe totale, cu considerarea


traficului pe magistrală, precum şi a cantităţii de informaţie necesare a fi
vehiculate între sistemul multi(micro)procesor şi un sistem ierarhic superior.

Studiu de caz: sistem multiprocesor realizat cu microprocesoare de 8 biţi

Considerându-se memoria adresabilă (MA) a fiecărui procesor ca fiind de 64 KB,


dacă se ţine cont de criteriul (a):
M T (M F ,n ) = n ⋅ M F + M EC = max . ,
cu restricţiile:

- de tip egalitate: M A = M F + (n − 1)M ID + M EC


M A − M EC
- de tip inegalitate: M ID ≤ M F ≤ M A − M EC şi 1 ≤ n ≤
M ID

Alegând, spre exemplu, MEC = MID şi stabilind dimensiunea segmentului de


memorie MID, în funcţie de dimensiunea circuitelor RAM disponibile: 2/4/8/16 KB
rezultă:

MID Configuraţii posibile (MEC = MID)


[KB] n MIP [KB] MEC [KB] MT [KB]
8 4 24 8 136
4 8 28 4 260
2 16 30 2 514

Se observă că pentru MEC = MID, zona MF este fixă (32KB), în schimb


dimensiunea MT şi numărul de procesoare depind puternic, invers proporţional în
raport cu dimensiunea MID.

6
Sisteme cu procesoare multiple

Câmpul de adresabilitate pentru memoria fizică a fiecărui procesor (MI) este de


la 0000h la 7FFFh, în timp ce pentru adresarea zonei de memorie externă (ME),
fiecare procesor utilizează câmpul de adrese 8000h÷FFFFh.

3.3. Interfaţa cu magistrala

Specificaţii hardware

• să permită conectarea oricărui procesor activ din sistemul


multi(micro)procesor la magistrala externă (linii de ADRESA, DATE şi
CONTROL), conform specificaţiilor standard de magistrală (MULTIBUS, VME,
AMS, MPST etc.);

• să ofere accesul din exterior, pe magistrala internă a fiecărui procesor la


memoria internă distribuită, fie prin acces direct la memorie (DMA), fie prin
mecanismul de asteptare (WAIT);

• să decodifice adresele prezente pe magistrala internă pentru a detecta când


un procesor intenţionează să se conecteze la magistrala externă;

• să decodifice adresele prezente pe magistrala externă pentru a detecta când


este cerut un acces către interior şi deci când să ceară accesul direct (DMA)
la memoria sa internă distribuită;

• să conţină o structură sau o parte dintr-o structură de arbitrare care să


asigure:
• rezolvarea conflictelor atunci când mai multe procesoare intenţionează să
ocupe magistrala externă şi să garanteze că în orice moment există un
singur procesor care are accesul pe ME;
• ansamblul structurii de arbitrare trebuie să ofere tuturor procesoarelor pe
termen mediu şi lung aceleaşi şanse de a câştiga accesul la magistrala
externă;
• să garanteze că ocuparea magistralei de către un procesor are loc pe o
durată finită, adică sa garanteze tuturor procesoarelor un interval maxim de
timp de aşteptare pentru accesul la magistrală (acces determinist).

Specificaţii software

• care zonă de memorie internă distribuită (MID) sa fie făcută accesibilă, pentru
simplificarea transferurilor de blocuri mari de date între procesoare;

• la ce adresă pe magistrala externă va apare un asemenea segment accesibil,


opţiune utilă în faza de autoconfigurare la iniţializarea sistemului
multi(micro)procesor;

7
Sisteme cu procesoare multiple

• posibilitatea de a împiedica orice acces din exterior (izolarea oricărui procesor


faţă de magistrala externă);

• posibilitatea de a monopoliza magistrala externă în exclusivitate pentru un


anumit număr de operaţii succesive, utilă la transferul de blocuri mari de date
sau pentru alte operaţii protejate cum ar fi cele de testare, de înscriere de
mesaje de sincronizare etc.

Interfaţa cu magistrala este formată din două unităţi funcţionale (Fig.8):

• unitatea operativă (UO) – o interfaţă bidirecţională pentru magistralele de


adresă, date şi control interne, care asigură compatibilitatea cu magistrala
externă standard;
• unitatea de control (UC) - pe baza semnalelor de control de la procesor şi
de la magistrala externă, decide când să activeze UO, ce sens să atribuie
comunicaţiei şi trebuie să rezolve conflictele de acces acordând o prioritate
ciclică.
Magistrala externă (ME)

CE AE, DE, CE

Unitatea de Unitatea
IM control operativă
(UC) Selecţie (UO)
Sens
CI Sincronizare AI, DI,CI

Magistrala internă (MI)


Fig.8. Interfaţa cu magistrala – schema bloc

3.3.1. Unitatea de control (UC)

• logica de acces la magistrala externă (AME);

• logica de acces la magistrala internă (AMI);

• logica de arbitrare a magistralei (LAM).

8
Sisteme cu procesoare multiple

Condiţii ce trebuie realizate la iniţializarea sistemului multi(micro)procesor:

• fiecare procesor trebuie să opereze în mod izolat, fără acces din exterior, deci
trebuie dezactivat accesul de pe magistrala externă;

• se înscriu registrele de adrese externe şi interne ale segmentelor de memorie


internă distribuită, accesibilă fiecărui procesor;

• se inhibă linia de blocare a magistralei externe (bus lock), pentru a împiedica


apariţia unei eventuale blocări a sistemului multi(micro)procesor, dacă vreunul
din procesoare iese din eroare pe magistrala externă, înainte să fi efectuat
programarea corectă şi completă a propriei interfeţe de magistrală;

• la RESET un singur modul IM (sau un circuit central în raport cu


procesoarele) trebuie să iniţializeze lanţul de priorităţi înaintea primei operaţii
externe de sistem.

3.3.1.1. Logica de acces la magistrala externă (AME)

Principiul de funcţionare

Blocul AME (Fig.9) execută, în ordine, următoarele operaţii:

BBSY

CEX Logică CS
de
control DIR

Decodificator
de
adrese
RDYI

A15I MREQI

Fig.9. Logica de acces la magistrala externă – schema bloc

9
Sisteme cu procesoare multiple

• decodifică adresele prezente pe magistrala internă;


• le detectează pe cele corespunzătoare memoriei comune, accesibile pe
magistrala externă (de exemplu > 8000h);
• informează arbitrul de magistrală externă dacă există o cerere de acces;
• plasează în WAIT procesorul local până când apare confirmarea de acces la
magistrala externă;
• activează buffer-ele bidirecţionale ale unităţii operative în sensul
corespunzător;
• deblochează procesorul local din WAIT;
• aşteaptă ca operaţia să se termine pentru a dezactiva buffer-ele unităţii
operative.

Schema logică şi funcţionarea AME (Fig.10)


• se testează dacă există o cerere de acces la magistrala externă, CEX. Dacă
da (CEX=1), se memorează această cerere într-un bistabil, BCEX (CEXM=1).
Apariţia CEX active plasează procesorul local în starea de aşteptare (WAIT)
prin linia RDYI = 0.
• pentru arbitrarea priorităţilor de acces se utilizează o logică de tip “daisy
chain”, pe linii de tip HI-HE, deci se forţează HE = 0 şi se aşteaptă ca HE=0
să se propage în lanţul serial pentru toate modulele de prrioritate mai joasă;
• se testeaza dacă magistrala sistemului este liberă ( BBSY =1) şi dacă intrarea
proprie este activă (HI=1), adică dacă nu exista o cerere de acces de
prioritate mai înaltă. Se intră într-o buclă de aşteptare până la îndeplinirea
celor două condiţii.
• când BBSY ⋅HI=1, este resetat un bistabil de confirmare a accesului la
magistrala externă, BCFE=0, ceea ce marchează ocuparea magistralei,
BBSY =0;
• de asemenea, se activează pentru scurt timp linia de confirmare selectată de
acces, CSA = 0, se eliberează lanţul de priorităţi, se termină starea de
aşteptare pentru procesorul local (RDYI=1) şi se activează buffer-ele
separatoare între magistrala externă şi cea internă ( SEL =0) în sensul
operaţiei de citire sau înscriere (DIRA=1, DIRD=WRI).
• Logica AME asteaptă încheierea operaţiei de acces la segmentul de memorie
externă (concentrată sau distribuită) prin testarea liniei MREQ . Pe frontul
crescător al acestei linii se testează starea liniei de blocare a magistralei (BL),
în funcţie de care magistrala rămâne ocupată în continuare ( BBSY =0) sau
este eliberată ( BBSY =1).

10
Sisteme cu procesoare multiple

• Eliberarea magistralei externe este însoţită de dezactivarea cererii memorate


de acces (CEXM=0) şi dezactivarea buffer-elor de magistrală ( SEL =1).

0 CEX 1

BCEX=1
RDYI=0
HE=0

Perioadă de aşteptare
pentru stabilizarea
lanţului de priorităţi

1 BBSY· HI 0

BCFE ← 0
BBSY ← 0
CSA =
HE ← 1
RDYI ← 1
SEL←0, DIRA = 1, DIRD = WRI

BCFE = 0
0 MREQI BBSY = 0
BCEX=1
SEL=0
0 BL 1

BCFE ← 1
BBSY ← 1
BCEX ← (CEXM=0)
SEL ← 1

Fig.10. AME - schema logică de funcţionare


11
Sisteme cu procesoare multiple

Implementarea AME

În continuare se exemplifică implementarea AME pentru o unitate centrală de


prelucrare de 8 biţi (Fig.11), care execută un acces la o zonă de memorie
comună la adrese mai mari de 8000h.

Este necesar un decodificator de adresă pentru a obţine cererea de acces la


magistrala externă, CEX. La apariţia acestei cereri, procesorul trebuie pus în
starea de aşteptare şi menţinut până la apariţia semnalului de confirmare de
acces, CFE.

RDYE
MREQI
A15I

+5V

* R
* *

(α) C

* - ieşiri cu CEXM
D S Q
colectorul în gol
BCEX
T R Q
*
(β) (γ)

RDYI CFE INIT

Fig.11. Implementarea logicii de acces la magistrala externă

Generarea semnalului RDYI

• la apariţia unui acces la memoria externă ( MREQ I = 0, A15=1), CEX=1 şi


linia RDYI trebuie să treacă imediat în 0 ( CFE =1);
• când CFE =0, linia RDYI ar trebui să treacă în “1”, dar este posibil ca să mai
apară şi alte cereri de aşteptare, de pe magistrala externă:
• de la memoria comună concentrată (daca este mai lentă);

12
Sisteme cu procesoare multiple

• de la blocul IM adresat, pentru a da timp procesorului să intre în starea


HOLD şi să permită accesul la magistrala sa internă şi, eventual, de la
blocul de memorie MID, dacă aceasta este mai lentă.

În punctul α trebuie să sosească de pe magistrala externă toate semnalele


RDYE=0, întârziate cu maximum ∆T (DELRDY) faţă de frontul căzător al
semnalului CFE , pentru ca linia RDYI să fie menţinută în “0” şi pe durata cât
RDYE=0. Semnalele RDYE trebuie să ajungă în punctul α în momentul în care s-
a activat deja semnalul CEX, deci RDYI este deja în “0”.

Cererea de acces extern este memorată în BCEX până la terminarea ciclului de


acces la memoria externă, când CEXM=0, odată cu frontul crescător al
semnalului CFE .

Generarea semnalului CFE (Fig.12)

HI
HE CSA BBSY

* *

CEXM

Delay: CFE
R BL D R Q
(n-1)TC C
BCFE
CFE = BUSACK
MREQI T Q
S

INIT

Fig.12. Logica de generare a semnalului de confirmare

Când se activează cererea memorată de acces (CEXM=1), HE este forţat pe “0”,


blocând lanţul în aval. Se aşteaptă un timp de propagare a zeroului în lanţul DC
(daisy chain) folosind circuitul de întârziere DELAY, se testează apoi liniile HI şi
BBSY : dacă acestea sunt active, toate cele 4 intrări ale porţii NAND de tip trigger
13
Sisteme cu procesoare multiple

Schmitt sunt “1” şi bistabilul BCFE este resetat şi apare confirmarea de acces
extern, CFE =0. În acelaşi timp, linia BBSY trece în “0”, marcând ocuparea
magistralei externe şi este emis un impuls de confirmare selectată de acces,
CSA =0, care informează despre atribuirea magistralei unui procesor în sistemul
multi(micro)procesor.

CFE=1 va permite ulterior buffer-elor cu trei stări din unitatea operativă să


cupleze magistrala externă la magistrala internă a procesorului care a obţinut
accesul extern. Sensul liniilor de adresă şi control este către ME, în timp ce
pentru date depinde de WRI.

Semnalul CSA poate fi utilizat pentru implementarea unei scheme de rotire


circulară a priorităţilor.

Dacă semnalul MREQ E (identic în acest caz cu MREQ I), care marchează
terminarea operaţiei cu resursa externă accesată, găseşte linia BL activă
( BL =0), linia BBSY continuă să rămână activată, procesorul ocupând în
continuare magistrala externă, prin mijloace software. Funcţia de blocare permite
astfel înscrierea sau citirea de blocuri de date.

Linia INIT E este linia de resetare a sistemului multi(micro)procesor, care


poziţionează într-o stare cunoscută toţi bistabilii din structura IM şi plasează
lanţul de priorităţi în starea iniţială (prin atribuirea de priorităţi iniţiale
procesoarelor).

14

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