Escolar Documentos
Profissional Documentos
Cultura Documentos
NIVELUL FIZIC
La baza structurii ierarhice a oricrui calculator se afl nivelul fizic. El
constituie fundamentul calculatorului si are ca suport circuitele si porile logice.
Deoarece portile utilizeaz numere binare, functionarea calculatoarelor se bazeaz
pe algebra boolean. Functionarea circuitelor logice se conduce dup principiul
unui tranzistor care se comport ca un ntreruptor electronic foarte rapid.
Portile logice sunt realizate n diferite tehnologii: tehnologie bipolar si
tehnologie unipolar sau MOS (Metal Oxide Semiconductor). n cadrul tehnologiei
bipolare se poate remarca familia TTL (Transistor-Transistor Logic) foarte
utilizat si ECL (Emitter Coupled Logic) folosit n aplicatii care necesit o
mare rapiditate de executie.
Portile realizate n tehnologie MOS sunt de 10 ori mai lente dect cele n
tehnologie TTL si de 100 de ori mai lente dect cele din tehnologia ECL. n cadrul
tehnologiei MOS se disting cteva familii clasice: PMOS, NMOS si CMOS. Asa
cum s-a mai spus, functionarea portilor logice se bazeaz pe algebra boolean. O
functie boolean este asociat uneia sau mai multor variabile si furnizeaz un
rezultat care depinde n mod unic de valorile variabilelor binare aplicate la intrare.
Exemplu. O functie f a unei variabile oarecare A poate fi definit ca fiind
f(A) = 1 dac A = 0 si f(A) = 0 dac A = 1. Aceasta este functia NON.
O functie boolean de n variabile prezint 2
n
stri posibile. A descrie
complet aceste stri sub forma unui tabel care contine 2
n
linii nseamn a construi
tabela de adevr a functiei respective. Fiecare linie a acestui tabel indic valoarea
functiei pentru configuratia binar de n variabile.
Prin combinarea unor porti logice si ncapsularea lor ntr-un circuit sau
capsul au rezultat circuitele integrate logice. Ele sunt realizate cu diverse densitti
de integrare (numrul de porti sau de tranzistoare interne pentru circuit sau pe
milimetru ptrat). Exist mai multe categorii de integrare:
SSI (Small Scale Integration) circuite cu integrare redus (sub 64
porti/circuit);
MSI (Medium Scale Integration) circuite cu densitate medie de
integrare (sub 1024 porti/circuit);
LSI (Large Scale Integration) circuite cu nalt densitate de integrare
(sub 65.000 porti/circuit);
VLSI (Very Large Scale Integration) circuite cu nalt densitate de
integrare (peste 65.000 porti/circuit);
SVLSI (Super Very Large Scale Integration) circuite cu foarte nalt
densitate de integrare (peste 500.000 porti/circuit).
ARHITECTURA SISTEMELOR DE CALCUL
172
Limita de integrare a ajuns la cteva milioane de tranzistoare pentru circuitele
modeste sau chiar la cteva zeci de milioane n cazul procesoarelor puternice.
Exemplu. Din cadrul tehnologiei SSI fac parte circuitele logice simple,
dintre care cele mai cunoscute sunt cele din familia 74xx dezvoltate initial de Texas
Instruments si distribuite astzi de numerosi fabricanti de circuite logice. Din cadrul
tehnologiei MSI fac parte circuitele logice combinationale, dintre care se pot aminti:
multiplexorul, demultiplexorul, comparatorul, registrele logice programabile.
Exist unele circuite logice cu memorie. Pentru un calculator, memoria este
un dispozitiv esential. Ea este utilizat pentru stocarea instructiunilor si a datelor
programului n curs de executie. Pentru a obtine memorarea unui bit, este necesar
s se utilizeze un dispozitiv care se substituie valorii pe care a nregistrat-o. Un astfel
de circuit poate fi realizat simplu cu porti logice, de exemplu cu porti logice SI-NU.
4.1. Microprocesorul
Microprocesorul reprezint inima unui sistem de calcul. Privit din punct de
vedere fizic, el este un circuit care prezint cteva zeci sau chiar sute de terminale.
Semnalele de comunicatie asociate acestora i permit microprocesorului s fac
schimb de informatii cu mediul extern, n principal cu circuite de memorie sau cu
circuite de intrare-iesire. O analiz detaliat a acestor semnale determin diversele
moduri de functionare logic si electric a procesorului si posibilittile sale de
interfat. Exist trei categorii de semnalele electrice externe ale microprocesorului:
de adres;
de date;
de comand.
Fiecrui tip de semnal i sunt asociate linii de comunicare care formeaz o
magistral. De cele mai multe ori, n limbajul de specialitate se vor ntlni cteva
notiuni specifice precum: magistrala de adrese, care reprezint totalitatea liniilor pe
care circul adresele, magistrala de date, corespunztoare liniilor de date si
magistrala de comenzi, specific liniilor de comenzi.
Fig. 4.1. Schema unui microprocesor tipic.
Structura unui calculator
173
Pentru obtinerea unei instructiuni a programului care este executat,
microprocesorul ncepe prin plasarea adresei acestei instructiuni pe magistrala de
adrese. Se activeaz un semnal pe magistrala de comand pentru specificarea unei
actiuni de citire din memorie. Ca rspuns la aceast cerere, memoria plaseaz
instructiunea pe magistrala de date, trimite un semnal ctre microprocesor prin care
acesta este atentionat c operatiunea este terminat si activeaz un semnal specific
de validare a magistralei de comenzi. n timp ce microprocesorul primeste
semnalul de validare de memorie, el citeste informatia (instructiunea) prezent pe
magistrala de date si o plaseaz ntr-unul din registrele interne.
Exist doi parametri principali asociati performantelor unui microprocesor:
numrul de linii ale magistralei de adrese si numrul de linii ale magistralei de date.
Observaie. Ambii parametri se refer la imea magistralelor si se msoar
n numr de linii (sau de biti). A nu se confunda cu rgimea (de band) a
magistralelor, care se exprim n termenii vitezei de transfer (multipli de
octeti/secund.)
Un microprocesor care are m linii de adres poate adresa pn la 2
m
cuvinte
de memorie. Valorile curente pentru m sunt: 16, 20, 24, 32 sau 64. De asemenea,
dac dispune de n linii de date poate scrie/citi un cuvnt de memorie de n biti ntr-o
singur operatie. Valorile curente pentru n sunt: 8, 16, 32 sau 64.
Exemplu. Un microprocesor care dispune de opt linii de adres necesit
patru operatii de citire pentru citirea unui cuvnt de 32 de biti. Dac
microprocesorul ar avea 32 de linii de adres, citirea aceluiasi cuvnt s-ar face ntr-
un singur tact, de unde rezult c un procesor este cu att mai rapid cu ct are mai
mare numrul de linii de date.
n afara liniilor de adres si de date, microprocesorul dispune de linii de
comand. Acestea permit asigurarea sincronizrii, reglrii si comandrii
schimburilor pe magistral ntre microprocesor si mediul extern.
Semnalele de ntrerupere sunt semnale de intrare pentru un microprocesor.
Ele provin n principal de la circuitele de intrare-iesire.
Exemplu. Un microprocesor cere unui circuit de intrare-iesire (de fapt
perifericului cruia i este asociat) s efectueze o anumit sarcin, dup care si
continu activitatea. n acest timp, perifericul realizeaz operatia cerut la viteza sa
proprie de executie. Dup ce sarcina este ndeplinit, perifericul previne circuitul
de I/O (intrare-iesire) care activeaz un semnal de ntrerupere prin care i se cere
microprocesorului o cerere de comunicare. O astfel de cerere de ntrerupere poate fi
activat, de exemplu, la terminarea unei sarcini sau la aparitia unei erori. Urmeaz
apoi o secvent de tratare a acestei cereri de ntrerupere.
Semnalele care gestioneaz accesul la magistral servesc la fluidizarea
traficului pe magistral prin evitarea unor blocri care pot rezulta din utilizarea
simultan de ctre dou circuite a magistralei.
Unele procesoare au linii speciale de comunicare cu alte procesoare sau cu
procesorul secundar (coprocesorul), atunci cnd situatia o cere. Acest lucru se
poate ntmpla, de exemplu, atunci cnd este nevoie de un calcul matematic, prin
cedarea controlului coprocesorului matematic.
ARHITECTURA SISTEMELOR DE CALCUL
174
4.2. ntreruperile
ntreruperile sunt schimburi n fluxul de control, care nu sunt cauzate de
programul care se execut, ci de alte cauze, aflate de obicei n legtur cu operatiile I/O.
Exemplu. Un program poate comanda discului s porneasc transferul
informatiei si i cere acestuia s furnizeze o ntrerupere imediat ce transferul s-a
terminat. Microprocesorul ntrerupe programul ce se execut si transfer controlul
unei proceduri de tratare a ntreruperii, care execut cteva actiuni corespunztoare.
Cnd se termin, rutina de tratare a ntreruperilor ntoarce controlul ctre
programul ntrerupt. Microprocesorul trebuie s reporneasc procesul ntrerupt
exact din aceeasi stare n care era cnd a aprut ntreruperea, ceea ce nseamn
refacerea tuturor registrelor interne n starea de dinainte de ntrerupere.
Un concept cheie al ntreruperilor este transparena. Cnd apare o
ntrerupere, se execut cteva actiuni si un fragment de cod anumit, dar cnd
servirea ntreruperii s-a terminat, calculatorul trebuie s se ntoarc n aceeasi stare
pe care a avut-o nainte de ntrerupere. O procedur de tratare a ntreruperii cu
aceast proprietate se spune c este transparent.
Dac un calculator are mai multe dispozitive de I/O care pot lucra n paralel,
exist o probabilitate diferit de zero s apar simultan dou cereri de ntrerupere
sau s apar o astfel de cerere atunci cnd se execut deja una. Pentru a se putea
face o departajare ntre toate aceste ntreruperi, acestea vor avea atasat cte un nivel
de prioritate. Cnd un dispozitiv cu prioritatea n genereaz o ntrerupere, rutina de
tratare a ntreruperii trebuie, de asemenea, s fie executat cu prioritatea n.
n timp ce se execut o procedur de tratare a ntreruperii cu prioritatea n,
orice ncercare de a cauza o ntrerupere de ctre un dispozitiv cu o prioritate mai
mic este ignorat pn cnd rutina ntreruperii se termin si UCP se ntoarce la
programul utilizatorului. Pe de alt parte, tratarea ntreruperilor de la un dispozitiv
cu o prioritate mai mare trebuie validat fr nici o ntrziere.
4.2.1. Gestionarea ntreruperilor
Dac unitatea central (UC) a cerut unui circuit de I/O efectuarea unei
operatii, aceasta anunt sfrsitul operatiei printr-o ntrerupere. De asemenea, un
dispozitiv care doreste s foloseasc resursele procesorului semnalizeaz acest
lucru ctre procesor printr-o cerere de ntrerupere. O ntrerupere implic n
majoritatea cazurilor o cerere de magistral.
ntr-un sistem real, mai multe dispozitive pot cere simultan ntreruperi. Este
deci necesar un sistem de gestionare a cererilor de ntrerupere (apare aceeasi
problem ca n cazul accesului la magistral, si anume care dintre dispozitivele ce au
emis cererea urmeaz s fie servit). O modalitate curent de solutionare a cererilor
simultane de ntrerupere este de a asigna niveluri de prioritate diferite pentru
diversele dispozitive si de a utiliza un circuit arbitru pentru gestionarea acestor cereri.
Structura unui calculator
175
Exemplu. Un astfel de circuit este Intel 8259A (controler de ntreruperi
utilizat n calculatoarele IBM PC/AT si PS/2).
INT IR 0 Ceas de sistem
INTA IR 1 Tastatur
RD IR 2 Controler IRQ2
WR IR 3 COM2/COM4
A0 IR 4 Mouse serial
CS IR 5 Placa de sunet
D0-D7 IR 6 Floppy disc
IR 7 Imprimant
Fig. 4.2. Schema controlerului de ntreruperi 8259A.
O cerere de ntrerupere se traduce prin activarea intrrii asociate
perifericului. Cnd una sau mai multe ntreruperi ajung la controlerul de
ntreruperi, acesta anunt UC prin linia special INT (Interrupt), care este legat la
intrarea de ntrerupere a UC. Aceasta rspunde de obicei printr-un semnal de
validare a ntreruperii (de exemplu, INTA = Interrupt Acknowledge). Ca urmare,
controlerul de ntreruperi informeaz UC pe magistrala de date despre dispozitivul
care a cerut ntreruperea. Unitatea central utilizeaz acest numr pentru a obtine
dintr-o tabel de pointer-i indexat adresa rutinei de ntrerupere corespunztoare.
Controlerul de ntreruperi contine un numr de registre interne care pot fi
citite sau scrise de ctre UC cu ajutorul semnalelor RD (Read), WR (Write), CS
(Chip Select) si A0 (linia 0 de adres). Toate aceste semnale, la fel ca INT si INTA,
sunt active pe zero. Prin intermediul registrelor, UC comunic controlerului de
ntreruperi disponibilitatea de a trata o nou cerere de ntrerupere sau poate
programa controlerul s functioneze ntr-un mod particular, de exemplu s
mascheze ntreruperile pe o anumit intrare. Dac se dispune de mai multe
controlere de ntrerupere, acestea se pot conecta n cascad. Rezult un avantaj:
dac sunt necesare mai mult de opt linii de ntrerupere, atunci se poate crea o
structur pe dou niveluri, care contine un 8259A la ale crui intrri sunt legate
iesirile de ntreruperi ale altor opt circuite 8259A. Se creeaz astfel posibilitatea
tratrii a 64 de linii de ntrerupere.
4.3. Magistrala
4.3.1. Conceptul de magistral
n modelul masinii von Neumann, comunicatia dintre componentele
sistemului se realizeaz prin legturi dedicate ntre perechi de componente. Aceast
UC
8259A
controler
de
ntreruperi
ARHITECTURA SISTEMELOR DE CALCUL
176
abordare este relativ rigid, limitnd drastic scalabilitatea (posibilitatea de
extindere) a sistemului.
Adugarea de noi componente este dificil si implic modificarea celor deja
existente. Proiectarea unei noi componente implic cunoasterea n detaliu a
functionrii celorlalte elemente deja prezente. Solutionarea acestei probleme a
venit din partea firmei Digital Equipment Corporation (DEC), care la sfrsitul
anilor '60 a lansat pe piat primul calculator (PDP 11), construit n jurul unei
magistrale magistrala UniBus.
Conceptual, magistrala este un mediu comun de comunicatie ntre
componentele unui sistem de calcul; fizic este alctuit dintr-un set de linii de
semnal care faciliteaz transferul de date si realizeaz sincronizarea ntre
componentele sistemului.
Introducerea conceptului de magistral a revolutionat modul de concepere si
proiectare a noilor sisteme de calcul. Modelul de calculator bazat pe magistral a
fost preluat mai ales de familiile de calculatoare mini si micro. Prin standardizarea
magistralelor, sistemele de calcul au devenit deschise, n sensul c un numr mai
mare de productori au avut posibilitatea s realizeze componente pentru o anumit
structur de calculator (module de memorie, interfete I/O, echipamente periferice),
bazndu-se numai pe specificatiile magistralei.
n decursul timpului au fost dezvoltate diferite standarde de magistral, care
au urmrit evolutia procesoarelor (a unittilor centrale) si a necesittilor de
comunicatie ale acestora (vitez, mod de transfer, necesitti de sincronizare si
control etc.). S-au dezvoltat, de asemenea, magistrale specializate pentru anumite
tipuri de echipamente periferice (SCSI si EIDE pentru unitti de disc, console
grafice, interfete de msur si control). Din acest punct de vedere, n momentul
actual se pot distinge dou clase de magistrale:
magistrale de sistem dezvoltate mai ales pentru conectarea unittii
centrale la celelalte componente de baz ale sistemului (de exemplu:
MultiBus, ISA, EISA, PCI);
magistrale specializate care ncearc s optimizeze transferul de date
cu un anumit tip de echipamente periferice (VESA, AGP, SCSI, GPIB).
Aparitia si evolutia ulterioar a microprocesoarelor a consacrat modelul de
calculator bazat pe magistral. Configuratia semnalelor unui microprocesor este
astfel conceput nct s permit conectarea usoar la o magistral de sistem. n
general, fiecare familie de microprocesoare (Intel 8086, Z80, MC 68000) a impus o
anumit structur si un anumit standard de magistral. Exist ns anumite
caracteristici comune acestor magistrale (principii de transfer, tipuri de semnale),
astfel nct modulele proiectate pentru un tip de magistral s poat fi, prin
modificri minime, conectabile altor magistrale.
S-au introdus noi principii de transfer care compenseaz ntr-o oarecare
msur limitrile de vitez impuse de legile fizicii de transmitere a semnalelor
electrice. Cele mai reprezentative dintre acestea sunt transferul concurent prin
tranzactii si prelucrarea pipe-line a cererilor de transfer.
Structura unui calculator
177
4.3.2. Elemente definitorii ale magistralei
O magistral se compune dintr-un set de semnale si un set de reguli
constituite ntr-un protocol, care guverneaz transferul de informatii si accesul la
mediul de comunicatie. Informatiile transferate pot fi: date, instructiuni si
informatii de control si sincronizare.
Protocolul se refer la:
caracteristicile mecanice: tip de conectori, numr de conectori alocati pentru
un slot, formatul modulelor de extensie atasabile, sertar si fund de sertar
(rack si cablajul din spatele acestuia aceast structur fiind specific
magistralelor industriale);
caracteristicile electrice ale componentelor conectate pe magistral: niveluri
de tensiune, curenti, ncrcare, frecvent de lucru, rat de transfer;
secventa de generare a semnalelor necesare pentru efectuarea unui transfer;
timpii limit pentru diferitele faze ale unui transfer si timpii de mentinere a
unui anumit semnal;
interconditionrile functionale si temporale ntre diferitele tipuri de semnale.
n acceptiunea clasic, o magistral se compune din urmtoarele tipuri de
semnale.
Semnale de date sunt semnale bidirectionale utilizate pentru transferul de
date si instructiuni. La un moment dat doar un singur dispozitiv poate s emit pe
liniile de date; numrul liniilor de date (8, 16, 32, 64) determin dimensiunea
maxim a cuvntului de date care poate fi transferat la un moment dat si, implicit,
viteza medie de transfer a magistralei.
Semnale de adres sunt utilizate pentru specificarea adresei modulului
destinatie sau surs de date, numrul de linii de adres determinnd spatiul maxim
de adresare permis de magistral (de exemplu, 24 linii de adres determin un
spatiu de adresare de 2
24
=16 Mlocatii).
Semnale de comand sunt semnale unidirectionale generate de CPU (sau
de ctre alt dispozitiv master), utilizate pentru specificarea directiei de transfer (de
exemplu, semnale de citire sau scriere pentru CPU) si a tipului de modul adresat
(de memorie sau modul I/O, de memorie program, controler de ntrerupere etc.).
Semnale de control sunt semnale de utilizate pentru reglarea conditiilor de
transfer al datelor (temporizarea deschiderii si nchiderii amplificatoarelor de
magistral pentru semnalele vehiculate pe aceasta).
Semnale de ntrerupere sunt generate de un controler dedicat, permit
semnalizarea unor evenimente interne sau externe si implicit determin
ntreruperea executiei programului curent.
Semnale de tact (de ceas) sunt generate de un oscilator cu cuart, fiind
folosite pentru sincronizare si pentru generarea unor semnale de frecvent
programabil.
Linii de alimentare sun generate de sursa de tensiune a sistemului, fiind
folosite pentru alimentarea modulelor sistemului.
ARHITECTURA SISTEMELOR DE CALCUL
178
Semnale de control al accesului sunt utilizate pentru arbitrajul si
controlul accesului pe magistral (n cazul magistralelor multimaster), fiind
generate de un circuit specializat (arbitru de magistral).
Numrul si semnificatia particular a semnalelor depind de tipul si destinatia
magistralei. Anumite grupe de semnale din cele prezentate pot s lipseasc (de
exemplu, semnalele de control) sau altele noi pot fi adugate (semnalele de eroare,
semnalele de control al ltimii datelor transferate pe 8 sau pe 16 biti etc.).
Magistralele pot fi clasificate n functie de mai multe criterii.
I. modul de lucru (n raport cu semnalul de tact):
magistrale sincrone la care ciclurile de transfer sunt direct corelate cu
semnalul de tact. Viteza de transfer este mai mare, ns rata de transfer a
magistralei este limitat de frecventa tactului. Datorit vitezei limitate de
propagare a semnalului electric, cresterea ratei ar duce la diferente de
faz la capetele magistralei.
magistrale asincrone la care nu exist o legtur direct ntre evolutia
n timp a unui ciclu de transfer si tactul sistemului. Majoritatea
magistralelor actuale lucreaz pe acest principiu (de exemplu, ISA,
EISA, MultiBus etc.).
II. numrul de module master conectate pe magistral:
magistrale unimaster exist un singur modul master pe magistral.
Nu necesit mecanisme de arbitraj al magistralei (un modul master poate
initia un ciclu de transfer, pe cnd un modul slave poate fi comandat n
timpul unui ciclu de transfer, neavnd elementele necesare pentru a
prelua controlul magistralei).
magistrale multimaster permit conectarea mai multor module master
pe acelasi tronson de magistral. Magistrala trebuie s contin semnale
de arbitraj si un protocol de transfer al controlului pe magistral (de
exemplu, MultiBus, VME).
III. modul de realizare al transferului de date:
magistrale cu transfer prin cicluri (magistrale secveniale) regula
de baz: ciclurile de transfer se desfsoar secvential, la un moment dat
cel mult un ciclu de transfer fiind n curs de desfsurare. Majoritatea
magistralelor folosesc acest principiu de transfer. n functie de directia
de transfer se disting sase cicluri semnificative:
cicluri de citire (respectiv scriere) din/n memorie;
cicluri de citire (respectiv scriere) de la/la un port intrare-iesire;
cicluri de acces direct la memorie (citire/scriere);
magistrale tranzacionale transferul de date se efectueaz prin
tranzactii. O tranzactie este divizat n mai multe faze. Mai multe
tranzactii se pot desfsura simultan, cu conditia ca tranzactiile s fie n
faze diferite; aceast restrictie provine din faptul c fiecare faz a unei
tranzactii foloseste un subset din multimea semnalelor magistralei.
Teoretic, la aceste magistrale factorul de crestere a vitezei (n comparatie
Structura unui calculator
179
cu o magistral secvential) este egal cu numrul de faze n care se
divide o tranzactie (de exemplu, magistrala procesoarelor post-Pentium).
IV. numrul semnalelor utilizate n transferul de date:
magistrale seriale se utilizeaz ca mijloc de comunicatie ntre
componentele de baz ale unui calculator (CPU, memorie, interfete de
I/O etc.). Se folosesc, de asemenea, n anumite sisteme dedicate bazate
pe microcontrolere, la care costul si dimensiunea redus sunt parametri
definitorii. Cu toate c viteza de lucru este mai mic dect la
magistralele paralele, n ultimul timp sunt tot mai utilizate (de exemplu,
magistralele USB, SATA, SAS, PCIExpress etc.).
magistrale paralele sunt folosite datorit vitezei de lucru ridicate,
transferurile de date realizndu-se la nivel de octet si nu de bit.
4.3.3. Tipuri, familii i standarde de magistral
Tipurile uzuale de magistrale sunt:
I. Magistrale procesor-memorie:
ntre procesor si memorie;
specializate;
scurte;
rapide.
II. Magistrale I/O:
pot avea multe dispozitive I/O conectate (direct sau prin canale I/O
supervizate de procesoare specializate);
universale;
lungi;
mai lente dect magistralele procesor-memorie;
nu sunt legate direct la memorie, ci prin magistrale procesor-memorie
ori magistrale de fundal (backplane)
III. Magistrale backplane(originar folosite la placa de baz):
permit acces simultan la procesor, memorie, dispozitive I/O;
sunt reutilizabile (bune pentru diverse configuratii);
Magistralele I/O necesit o interfat simpl, pe cnd cele backplane
necesit o logic suplimentar la interfat. n schimb, avantajul magistralelor
backplane este c acestea contin singure toate conexiunile. Se pot crea conexiuni
complexe, ca n figura 4.3 (n cazul folosirii unor tipuri multiple de magistrale,
trebuie utilizate adaptoare de magistrale pentru interconectare). Figura 4.3 contine
configuratii cu magistrale pentru comunicarea procesor-memorie si trafic I/O:
(a) o singur magistral backplane: folosit la PC-urile vechi;
(b) o magistral procesor-memorie de tip PCI (bus backplane), care are
conexiuni SCSI cu magistrale I/O: folosit la PC-urile noi;
(c) ca la (b), plus o magistral separat pentru traficul procesor-memorie:
folosit la sistemele multiprocesor SiliconGraphics.
ARHITECTURA SISTEMELOR DE CALCUL
180
Fig. 4.3. Configuratii cu magistrale pentru comunicarea procesor-memorie si trafic I/O:
a. doar magistrala backplane; b. magistrala de tip procesor-memorie + magistrale I/O; c. toate tipurile.
Caracteristicile constructive ale unei magistrale sunt influentate de cerintele si
particularittile functionale ale procesorului pentru care a fost conceput. Acest fapt
vine n contradictie cu ideea de sistem deschis, conform creia mediul de
comunicatie ntre componentele unui sistem trebuie s fie independent de productor.
Firmele dominante n domeniul constructiei de calculatoare si-au dezvoltat propriile
standarde de magistral adaptate familiilor de procesoare pe care le produc.
Exemple. DEC UniBus, Intel MultiBus, IBM PC Bus HP GPIB etc.
Unele din aceste magistrale sunt deschise, n sensul c standardul este
accesibil si utilizabil liber de orice productor; altele au fost patentate si au
restrictii de utilizare, de exemplu magistrala MicroChannel (MCA) a firmei IBM,
folosit n constructia calculatoarelor PS/2. Exist si standarde dezvoltate de
grupuri de productori cu interese apropiate. Astfel au aprut standardele Camac,
FastBus, FutureBus, NuBus, Can etc.
n cazul acestor magistrale se pune problema asigurrii interoperabilittii si
compatibilittii ntre module realizate de diversi productori. Metoda de eliminare
a unor astfel de probleme este supunerea componentelor la teste de conformant.
Cele mai cunoscute foruri internationale de standardizare care au activitate n
domeniul magistralelor sunt IEEE, ANSI si IEC.
Cteva din cele mai cunoscute tipuri de magistrale sunt prezentate n tabelul 4.1.
Structura unui calculator
181
Tabelul 4.1
Tipuri de magistrale
Standard
IEEE
Nume
uzual
Domenii
de utilizare
488 GPIB Instrumente de laborator
583, 596, 683 Camac Achizitie de date si instrumentatie
696 S 100 Microsisteme de dimensiune medie
796, P1296 MultiBus I, II Microsisteme de dimensiune medie
P896 FutureBus Sisteme multiprocesor
P996 PC Bus Calculatoare personale
P1014 VME Bus Sisteme microprocesor performante
(cu Motorola 68000)
P1196 NuBus Sisteme multiprocesor
UniBus Minicalculatoare PDP 11
QBus Minicalculatoare VAX
SCSI Periferice (HD, band, CD-ROM)
n cadrul unui sistem de calcul pot s coexiste mai multe tipuri de standarde,
specializate pe transferul de date ntre anumite tipuri de componente de sistem.
Astfel, se poate utiliza o magistral de mare vitez pentru transferul ntre procesor
si memorie, o magistral cu acces multiplu (multimaster) pentru unele periferice de
mare vitez (disc, interfat video) si o magistral de mic vitez pentru perifericele
lente. n aplicatiile de control se mai poate aduga si o magistral de
instrumentatie, adaptat pentru culegerea datelor de proces.
Pentru a satisface o gam larg de cerinte, s-au dezvoltat familii de
magistrale care cuprind mai multe variante ale unei magistrale de baz si sunt
compatibile ntre ele ntr-o oarecare msur (interfetele dezvoltate pentru aceste
variante necesit modificri minore pentru compatibilizare).
n prezent exist mai multe astfel de familii de magistrale:
magistrale dezvoltate pentru calculatoare DEC UniBus, QBus si VAXBI;
magistrale dezvoltate pentru procesoarele Intel MultiBus I, MultiBus II
si extensii ale acestora;
magistrale inspirate de structura seriei de procesoare Motorola
magistralele VME;
magistrale de instrumentatie familia GPIB (dezvoltat de Hewlett
Packard), IEEE488 si Camac.
ARHITECTURA SISTEMELOR DE CALCUL
182
n domeniul PC-urilor, s-au dezvoltat mai multe magistrale care au devenit
standarde de facto nainte ca acestea s fie propuse pentru standardizare formal:
ISA, EISA, VESA, PCI, SCSI, AGP etc.
Dup cum s-a artat, o magistral (bus) este o structur de interconectare (un
ansamblu de linii de comunicatii) ntre mai multe circuite sau unitti ale unui
calculator. Un PC are diferite tipuri de magistrale, ntre care se afl urmtoarele:
magistrala procesorului, magistrala de adrese, magistrala memoriei, magistrala I/O.
Exemple. Camac (fizic nuclear), FastBus (fizica energetic), OmniBus
(PDP-8), UniBus (PDP-11), MassBus (VAX si PDP-11), MegaBus (Moneywell),
MicroChannel (PS/2), NuBus (MacIntosh 2), VersaBus (Motorola), VME
(Motorola 680x0), MultiBus 1 (INTEL 8086), MultiBus 2 (INTEL 80386), ISA sau
ATBus (INTEL 80286), EISA (INTEL 80386), MCA (IBM, 80386), VLBus
(VESA, 80486), PCI (Pentium), FireWire (IEEE 1394) etc.
4.3.4. Magistrala procesorului
Magistrala procesorului este calea de comunicatie ntre CPU si cipurile cu
care lucreaz direct. Aceast magistral este folosit pentru a transfera date, de
exemplu ntre CPU si memoria cache extern. Cele mai multe sisteme au un cache
extern pentru CPU; aceste memorii cache sunt n general folosite n toate sistemele
care utilizeaz cipuri 486, Pentium, Pentium Pro sau ulterioare.
Deoarece scopul magistralei procesorului este transmiterea si primirea
datelor de la CPU cu cea mai mare vitez posibil, aceast magistral lucreaz la o
vitez mult mai mare dect orice alt magistral din sistem: aici nu exist
strangulri. Magistrala este compus din linii de semnal utilizate pentru date,
pentru adrese si pentru comenzi.
Exemple.
1. ntr-un sistem 486, magistrala procesorului este compus din 32 de linii
de adrese, 32 de linii de date si cteva linii de comand.
2. Magistrala procesorului dintr-un sistem Pentium are 64 de linii de date,
32 de linii de adrese si linii de comand asociate.
3. Sistemul Pentium Pro are 36 de linii de adrese, iar n rest are o magistral
similar cu cea a sistemului Pentium.
Magistrala procesorului lucreaz la aceeasi frecvent cu cea a ceasului de
baz ca CPU n exterior. Acest lucru poate conduce la concluzii gresite deoarece
cele mai multe procesoare actuale utilizeaz o frecvent de lucru intern mult mai
mare dect a oricrei magistrale din sistem.
Exemplu. Un sistem Pentium 100 are un procesor Pentium care lucreaz
intern la 100 MHz, dar n exterior lucreaz la numai 66,6 MHz. Aceeasi frecvent
extern de lucru (66,6 MHz) o au si procesoarele Pentium 133, Pentium 166 si
chiar Pentium Pro 200. n cele mai multe dintre noile sisteme, frecventa real de
lucru a procesorului este un multiplu (de 1,5 ori, de 2 ori, de 2,5 ori, de 3 ori etc.) al
frecventei magistralei procesorului.
Structura unui calculator
183
Magistrala procesorului este legat la pinii procesorului si poate transfera un
bit de date pe o linie de date la fiecare perioad sau la dou perioade ale ceasului.
Astfel, un sistem 486 poate transfera 32 biti de date simultan, n timp ce un sistem
Pentium sau Pentium II poate transfera 64 biti de date la un moment dat.
Pentru a determina viteza de transfer pe magistrala procesorului se
multiplic ltimea datelor (32 de biti pentru 486 sau 64 de biti pentru Pentium si
Pentium II) cu frecventa ceasului magistralei (aceeasi cu frecventa ceasului de baz
al procesorului).
Exemplu. Un cip Pentium de 66/100/133/166/200 MHz care ruleaz la 66
MHz poate transfera un lot de date la fiecare perioad de ceas pe fiecare linie de
date. Se obtine astfel o vitez maxim instantanee de transfer de 528 MB pe
secund. Acest rezultat deriv din urmtoarea formul:
66 MHz 64 biti = 4.224 megabiti/secund;
4.224 megabiti/secund : 8 = 528 MB/secund.
Aceast vitez de transfer, adesea numit rgime de band a magistralei,
reprezint o valoare maxim. Ca toate valorile maxime, aceast vitez nu reprezint
lrgimea de band n functionarea normal; va rezulta o valoare medie mai sczut
a vitezei transferului de date. Alti factori de limitare, cum ar fi proiectarea setului
de cipuri, viteza memoriei si altele, contribuie la scderea lrgimii de band
efective.
ntre unittile sau circuitele conectate la magistral se disting unitti de tip
master, care au initiativa comunicrii pe magistral, si unitti de tip slave, care
rspund la initiativa de comunicare a masterului.
Exemple. Perechi master-slave: UC memorie (acces la instructiuni si la
date); UC port I/O (transfer de date); UC coprocesor (tratarea instructiunilor n
virgul mobil ); dispozitive I/O memorie (accesul la operanzi) etc.
n cazul procesoarelor moderne, comunicatia cu cipurile externe procesorului
a introdus notiunile de magistrale FSB, BSB si PSB
a) n cazul procesoarelor cu memorie cache L2 (L3, n cazul procesoarelor K6-
2+ si K6-3) care nu se afl n interiorul procesorului (exemple tipice fiind
procesoarele pe socket 7, slot 1 si slot A), legtura dintre acesta si northbridge poart
denumirea de magistral FSB (Front Side Bus), iar frecventa de baz a acesteia
nmultit cu multiplicatorul d frecventa de lucru a procesorului. ntre procesor si
memoria cache L2 conexiunea se face prin magistrala BSB (Back Side Bus), o
magistral de memorie care functioneaz fie la frecventa FSB (la procesoarele pe
socket 7), fie la jumtate din frecventa procesorului (la procesoarele Intel pe slot 1),
fie ntre 1/3 si 1/2 din frecventa procesorului (la procesoarele AMD pe slot A).
Exemplu. Un FSB pe 32 de biti, opernd la o frecvent de 100 MHz si care
realizeaz 4 transferuri pe ciclu, are o lrgime de band de 1.600 MB/s.
Productorii specific viteza FSB-ului n MT/s (Mega Transfers per second). Dac
o plac de baz are un FSB cu frecventa de tact de 266 MHz si realizeaz 4
transferuri pe ciclu de ceas, FSB-ul certificat este de 1.066 MT/s.
ARHITECTURA SISTEMELOR DE CALCUL
184
b) n cazul procesoarelor cu cache L2 integrat n procesor (Intel P3 si
Celeron pe socket 370 si P4 toate variantele, respectiv, AMD Athlon pe socket A,
754, 939, 940), BSB-ul a disprut, nemaifiind necesar.
Combinnd a) si b), rezult c nu este corect s se foloseasc termenul de
FSB n cazul procesoarelor actuale, termenul mai potrivit fiind Processor Side Bus
(PSB) sau System Side Bus (SSB), iar n cazul procesoarelor Opteron/Athlon64
nici mcar termenul PSB nu este corect, legtura dintre procesor si northbridge
fiind de tip punct-la-punct (point-to-point).
4.3.4.1. Conectarea la magistral
Majoritatea circuitelor logice nu dispun la iesire de amplificatoare capabile s
furnizeze puterea necesar transmiterii unui semnal binar pe liniile magistralei
(datorit capacittii magistralei, pe de o parte, si a ncrcrii intrrii cu alte sarcini).
Pentru transmitere se utilizeaz circuitele amplificatoare de putere numite driver-e.
La receptie este necesar utilizarea unui receptor de tip Trigger-Schmidt care
reface semnalul degradat din cauza capacittii limitate a liniei de transmisiune sau
a eventualelor zgomote. De multe ori, un circuit poate s transmit si n acelasi
timp s fie receptor, rezultnd c pentru interfatarea cu magistrala sistemului
trebuie utilizate circuite mixte numite transceiver-e (transmitter + receiver).
Din punctul de vedere al strilor logice, circuitele de conectare la magistral
sunt circuite cu trei stri, n care a treia stare (stare flotant) permite acestora s fie
deconectate logic cnd se afl n repaus. Un alt tip de circuit de conectare este
circuitul cu colectorul n gol (realizeaz functia SAU-cablat).
4.3.4.2. Magistralele sincrone
Din punctul de vedere al cadentei schimbului de date care are loc pe
magistral exist arhitecturi sincrone si asincrone.
Magistrala sincron dispune de o linie de ceas comandat de un oscilator cu
cuart. Toate operatiile de pe o magistral sincron sunt efectuate ntr-un numr
ntreg de perioade de ceas.
Exemplu. n figura 4.4 este prezentat modul de lucru al magistralei sincrone
n cazul operatiei de citire a unui cuvnt din memorie.
Notatii folosite:
semnal de ceas real (un ciclu de ceas T
C
= 250 ns);
MREQ cerere acces memorie (Memory Request);
RD citire (Read);
T
ML
timp de stabilire a adreselor nainte de MREQ (> 60 ns; la o frecvent de ceas
4 MHz se accept un timp de crestere de 10 ns);
T
M
activarea semnalului MREQ fat de frontul descresctor n ciclul T
1
(< 85 ns);
T
RL
activarea semnalului RD fat de frontul descresctor n ciclul T
1
(< 85 ns);
T
DS
date disponibile nainte de frontul descresctor n ciclul T
3
(> 50 ns);
T
MH
tranzitia semnalului MREQ dup frontul descresctor n ciclul T
3
(< 85 ns);
T
RH
tranzitia semnalului RD fat de frontul descresctor n ciclul T
3
(< 85ns);
T
DH
mentinerea datelor dup ridicarea semnalului de date (dup comutarea lui RD, > 0).
Structura unui calculator
185
T
1
T
2
T
3