Arhitectura Sistemelor de Calcul-ASC

131

Click here to load reader

description

Arhitectura Sistemelor de CalculArhitectura Sistemelor de CalculArhitectura Sistemelor de CalculArhitectura Sistemelor de CalculArhitectura Sistemelor de CalculArhitectura Sistemelor de CalculArhitectura Sistemelor de CalculArhitectura Sistemelor de CalculArhitectura Sistemelor de CalculArhitectura Sistemelor de Calcul

Transcript of Arhitectura Sistemelor de Calcul-ASC

Page 1: Arhitectura Sistemelor de Calcul-ASC

1. INTRODUCERE

Lucrarea de fa trateaz aspecte func ionale, constructive i rela ionale aleblocurilor unui sistem de calcul numeric. Aplica iile derulate pe calculatoare sunt:

prelucr rile de date; prelucr rile de informa ii; prelucr rile de cuno tin e; prelucr rile inteligente (inteligen a artificial ).

Fig. 1.1. Structura piramidal a tipurilor de prelucr ri.

Spa iul datelor. Materialul prelucrat la baza piramidei este considerat un spa iude date din care fac parte numere reprezentate în diverse formate. Datele prelucratesunt considerate mutual independente în spa iul lor. Spa iul datelor este cel mai marespa iu al obiectelor prelucrate cu sistemul de calcul, incluzând caractere, simbolurii/sau reprezent ri multidimensionale ale acestora, numere în diverse formate.

Spa iul informa iilor. Termenul de informa ie reprezint o colec ie de datelegate între ele printr-o anumit rela ie sau structur sintactic . El se prezint ca unsubspa iu al spa iului de date. Prin sintax se în elege un set de reguli careguverneaz alc tuirea propozi iilor dintr-un limbaj.

Spa iul cuno tin elor. Formeaz un subspa iu în cadrul spa iului informa iilor.Informa iile sunt legate între ele printr-o structur semantic . Semantica reprezintun set de reguli care extrag în elesul propozi iilor dintr-un limbaj.

Spa iul prelucr rilor de tip inteligen artificial . Lucreaz cu baze decuno tin e, reguli de inferen (ra ionament) sau cu alte mijloace specificedomeniului de inteligen artificial . Calculatoarele de ast zi au devenit suficientde rapide. Cu toate acestea, nici un calculator actual nu este un sistem inteligentcare gânde te independent.

ARHITECTURA SISTEMELOR DE CALCUL10

Un calculator este o ma in capabil de a rezolva probleme aplicândinstruc iuni definite în prealabil. Circuitele electronice ale fiec rui calculator nu potrecunoa te i executa direct decât un num r limitat de instruc iuni. Ansamblul deinstruc iuni executate direct de un calculator formeaz un limbaj care permiteoamenilor s comunice cu calculatorul. Este ceea ce se nume te limbajul ma in .Problema care se pune în acest caz este c limbajele ma in sunt atât de primitiveîncât este extrem de greoi a le utiliza. Sunt dou lucruri de rezolvat în privin aacestei probleme, ambele vizând construirea unui nou set de instruc iuni maipractic de utilizat decât limbajul ma in . În ansamblu, aceste noi instruc iuniformeaz un nou limbaj care va fi numit L2, în timp ce ansamblul instruc iunilorcorespunz toare limbajului ma in formeaz nivelul L1.

Prima sarcin de executat a unui program scris în limbajul L2 este de aînlocui fiecare instruc iune a programului cu instruc iunile corespunz toarelimbajului L1 care îi sunt echivalente. Calculatorul va executa deci noul program înlimbajul L1 i nu vechiul program care a fost scris în limbajul L2. Se poate spune

are loc o conversie de limbaj, aceast tehnic numindu-se traducere.Al doilea lucru este de a scrie un program în limbajul L1 capabil, dup

examinarea fiec rei instruc iuni a programului din L2, s execute direct secven a deinstruc iuni în limbajul L1 echivalent. Aceast tehnic , cu ajutorul c reia nu maieste nevoie s se genereze un program echivalent în L1 care va examina i executafiecare instruc iune din L2, poart denumirea de interpretare.

Traducerea i interpretarea se aseam mult. În fiecare caz, toateinstruc iunile în L2 sunt convertite în final într-o suit echivalent de instruc iunicorespunz toare lui L1. Dar trebuie notat c în fiecare caz al traducerii, programulscris în L2 este mai întâi convertit într-un program scris în L1; apoi programul înL2 dispare i programul în L1 va fi cel executat. În replic , interpretarea const înanalizarea i apoi executarea imediat a fiec rei instruc iuni din limbajul L2.Aceste dou metode sunt foarte utilizate în propor ii aproximativ identice.

Pentru a simplifica lucrurile, este mai u or de imaginat existen a unuicalculator virtual, al c rui limbaj ma in este L2. Dac se poate construi aceastma in la un pre rezonabil nu va mai fi nevoie de limbajul L1 i nici de o ma incapabil s execute acest limbaj. Utilizatorii vor scrie tot mai simplu programelelor în limbajul L2 i calculatorul va executa direct aceste programe.

1.1. Limbaje i ma ini virtuale

Limbajul i ma ina virtual sunt într-o rela ie foarte limitat . Orice ma in prinlimbajul s u formeaz un ansamblu de instruc iuni de baz pe care le poate executa. Sepoate spune deci c o ma in define te un limbaj. Reciproc, un limbaj define te oma in i, mai precis, un limbaj define te o ma in care poate executa toate programelescrise în acel limbaj. Bineîn eles, ma ina definit printr-un limbaj oarecare poate fiextraordinar de complex i cu un cost prohibitiv. Dar, cu toate acestea, ea poate exista.

Page 2: Arhitectura Sistemelor de Calcul-ASC

Introducere 11

Un calculator alc tuit din n nivele poate fi v zut ca n ma ini virtuale distincte,fiecare ma in virtual având propriul s u limbaj. Programele scrise în limbajele L2,L3, …, Ln trebuie s fie interpretate de un interpretor având un nivel mai mic sau sfie traduse într-un limbaj inferior. Programatorul care are programele scrise pentru oma in virtual de nivelul n nu este interesat de compilatoare i nici deinterpretoarele aflate la un nivel inferior. Pentru acesta nu este interesant de tiut înacest caz dac programele sunt traduse într-un limbaj cunoscut de calculator sau dacele sunt executate direct de c tre circuitele aflate la nivelul fizic. În ambele cazuri seva ajunge la acela i rezultat: programele sunt executate, indiferent de metod .

1.2. Calculatoarele actuale – calculatoare multinivel

Cea mai mare parte a calculatoarelor actuale au mai mult de dou nivele.Predomin foarte mult calculatoarele care au curent 6 nivele. La primul nivel –nivelul 0 – se afl logica cablat .

Fig. 1.2. Prezentarea nivelelor unui calculator.

ARHITECTURA SISTEMELOR DE CALCUL12

Nivelul 0, primul nivel care intr în alc tuirea unui calculator, poartdenumirea de nivel fizic. Obiectele utilizate la acest nivel sunt por i, care prindefini ie pot fi privite ca ni te componente logice interconectate între ele. Fiecarepoart dispune de una sau mai multe intr ri logice i întoarce ca rezultat o func iesimpl ob inut conform semnifica iei de la intrare (de exemplu I, SAU, NU). Opoart este realizat cu ajutorul tranzistorilor. Acest nivel execut instruc iunilelimbajului microprogramat (urm torul nivel ierarhic), care ac ioneaz asupranivelului 0 ca ni te comenzi. De re inut este faptul c nivelul 0 poate s nu fienivelul cel mai sc zut, sub el putând exista un alt nivel care poart denumirea denivel component , i care de regul nu apare în schema nivelurilor unui calculator.

Nivelul urm tor este nivelul 1 sau nivelul microprogramat. El este nivelullimbajului intern al ma inii. Aici exist un microprogram care interpreteazinstruc iunile de nivel 2 i care este realizat cu un set restrâns de instruc iuni simple(în medie cam 20 de instruc iuni), de transfer i teste simple ale unor condi ii. Estescris într-o memorie ROM intern , la ea având acces numai produc torul.

Deasupra nivelului 1 se afl nivelul 2 sau nivelul ma inii tradi ionale.Fiecare procesor define te în mod implicit un limbaj de nivel 2 i o ma in virtualal c rei limbaj ma in este interpretat de un microprogram. Denumirea de nivel alma inii tradi ionale este dat deoarece componentele au caracteristici comune.Aceea i structur fizic poate corespunde la dou sau mai multe ma ini dacmicroprogramul de pe nivelul 1 este scris în mod adecvat i aceea i ma intradi ional se poate implementa prin diverse structuri fizice. Exist i excep ii:unele calculatoare nu dispun de nivelul microprogramat (nivelul 1), în acest cazinstruc iunile de pe nivelul 2 fiind tratate direct de nivelul 0.

Al treilea nivel este un nivel hibrid, în sensul c cea mai mare parte ainstruc iunilor care definesc limbajul 3 sunt de tip ma in . Se g sesc aici sarcinispecifice privind gestionarea memoriei i capacitatea de executare a mai multorprograme în paralel. Acest nivel poart denumirea de nivelul sistemului de operare.

De remarcat c nivelele 1 i 2 nu sunt accesibile programatorului mediu. Elesunt necesare pentru interpretarea nivelului inferior i sunt scrise de c tre speciali ti.Limbajele de nivel 1, 2 i 3 sunt orientate c tre modul numeric, iar începând cunivelul 4 apar limbaje formate din simboluri i cuvinte, care au o sintax .

Nivelul 4 este nivelul limbajului de asamblare. Este un nivel care nu poate slipseasc . Aici compilatorul genereaz cod direct pentru nivelul 3. Exist ocaracteristic specific acestui nivel: nivelurile inferioare (nivelul 2, nivelul 3) suntîntotdeauna interpretate, iar nivelurile superioare au asociate programe traduc toare.Programele realizate în limbaj de asamblare sunt mai întâi traduse în limbaje pentrunivelurile 1, 2 i 3 i apoi interpretate de ma inile reale sau virtuale corespondente.

Urm torul nivel ierarhic este nivelul 5, numit nivelul limbajului de aplica ie.Aici se afl limbaje concepute pentru a fi utilizate de c tre programatorii deaplica ii. Ele mai sunt adesea denumite i limbaje de nivel înalt i sunt extrem denumeroase. Printre cele mai cunoscute pot fi amintite: Basic, C, Cobol, Pascal,Fortran etc. Programele scrise în unul din aceste limbaje sunt adesea traduse pentrunivelele 3 sau 4 de c tre programe traduc toare specializate numite compilatoare.

Page 3: Arhitectura Sistemelor de Calcul-ASC

Introducere 13

Nivelul 6, care este i cel mai de sus nivel, este reprezentat de un ansamblude programe. Ele con in numeroase date pentru aplica ii care pot ine de domeniidiferite de lucru.

În concluzie, se poate spune c un calculator poate fi v zut ca o suit denivele, fiecare nivel înglobând toate nivelele precedente. Un nivel reprezint ungrad oarecare de abstractizare i con ine diverse obiecte i opera ii cu acesteobiecte. În sens ascendent cre te complexitatea prelucr rii, iar în sens descendentcre te volumul materialului prelucrat.

Ansamblul tipurilor de date, opera iilor i caracteristicilor fiec rui nivelpoart denumirea de arhitectura nivelului. În particular, arhitectura calculatoarelori structura lor semnific aproape acela i lucru.

1.3. Etapele evolu iei arhitecturii calculatoarelor

Cea mai mare parte a vechilor calculatoare utilizate au ie it ast zi din uz,ajungând piese de muzeu. Cu toate acestea, au existat câteva ma ini care au avut unrol important în evolu ia calculatoarelor. Pentru acestea se vor analiza în continuarecâteva din principalele caracteristici.

1.3.1. Genera ia 0: calculatoarele mecanice (1642-1945)

Meritul de a fi realizat prima ma in de calcul îi revine lui Blaise Pascal. Înonoarea sa a fost denumit i primul limbaj de programare care a fost inventat.Acest prim calculator a fost în întregime un calculator mecanic, bazat pe angrenajulunor ro i din ate ac ionate manual, principalele opera ii care puteau fi efectuatefiind adun ri i sc deri. Treizeci de ani mai târziu acestei ma ini de calcul i-au fostad ugate de c tre Leibnitz alte dou noi opera ii: înmul irea i împ irea.

Au urmat apoi alte asemenea ma ini, dintre care poate fi amintit primama in analitic . Aceasta cuprindea patru p i: memoria (magazia), unitatea decalcul, intrarea (cititorul de cartele perforate) i ie irea. Memoria dispunea de 1000de cuvinte de 50 de cifre zecimale care puteau fi utilizate pentru stocareavariabilelor i rezultatelor. Unitatea de calcul prelua operanzii proveni i dinmemorie, f cea diverse opera ii asupra lor (adunare, sc dere, înmul ire, împ ire)i întorcea rezultatul tot în memorie. Toate aceste blocuri erau în întregime

mecanice. Marea noutate a acestei ma ini consta în faptul c putea citi instruc iunide pe cartelele perforate i apoi le putea trata. Unele instruc iuni puteau comandama inii s preia doi operanzi din memorie, s efectueze o opera ie asupra lor i strimit rezultatul în memorie. Procesul continu pân în anul 1944 când a fostconstruit prima ma in , Mark I, care avea 72 cuvinte a 23 cifre i un ciclu ma inde 6 secunde. A urmat îndeaproape succesoarea sa Mark II. Se poate afirma c ,practic, era electronicii începuse.

ARHITECTURA SISTEMELOR DE CALCUL14

1.3.2. Prima genera ie: tuburile cu vid (1945-1955)

Se poate spune c al doilea r zboi mondial a gr bit apari ia apari iei primelorcalculatoare echipate cu componente electronice, chiar dac acestea aveau s fietuburile cu vid. Primul calculator construit i folosit a fost ENIGMA, folosit pentrucriptarea mesajelor care urmau a fi trimise de c tre armata german prin radiosubmarinelor. Nici armata britanic nu a stat cu mâinile în sân, ea reu ind s punla punct un calculator numit COLOSSUS, folosit pentru decodarea mesajelor,deoarece erau foarte multe calcule de f cut. P rintele lui COLOSSUS a fost omulde tiin englez Alan Turing. Urmeaz apoi un nou model numit ENIAC. Acest

a zis calculator cuprindea 18000 tuburi cu vid i 1500 de relee; cânt rea peste 30de tone i consuma 150 kW. Din punct de vedere al unit ii de calcul dispunea de20 registre a 10 cifre zecimale. La foarte pu in timp dup aceasta î i face apari iaun nou calculator, al c rui realizator, John von Neumann, va intra în istorie, putândfi considerat pe drept cuvânt p rintele calculatoarelor actuale. Schema unei ma inivon Neumann este redat în figura 1.3.

Fig. 1.3. Schema unei ma ini von Neumann.

Ma ina von Neumann era alc tuit din 5 p i: memoria, unitatea aritmetici logic , unitatea de control, dispozitivele de intrare i cele de ie ire. Memoria

dispunea de 4096 cuvinte, fiecare cuvânt având 40 de bi i (0 sau1). Instruc iunilecuprindeau dou câmpuri: 8 bi i pentru tipul instruc iunii i 12 bi i pentru adres .Unitatea aritmetic i logic con inea un registru intern special numit acumulator.Ma ina nu dispunea de capacitate de calcul în virgul mobil .

când un salt peste timp se ajunge la modelul IBM 704 care avea aceea istructur cu 4 K de memorie, instruc iuni de 36 de bi i i dispozitive speciale decalcul în virgul mobil .

1.3.3. A doua genera ie: tranzistorii (1955-1965)

Primul calculator echipat cu tranzistori a fost realizat în laboratoareleLincoln, fiind denumit TX 0 (Transistorized eXperimental Computer 0). În 1961apare PDP-1, o ma in de 4 K cuvinte de 18 bi i, având ciclul ma in de 5 ms. Încompara ie cu IBM 7090, care avea un pre exorbitant, calculatorul PDP-1 costa

Page 4: Arhitectura Sistemelor de Calcul-ASC

Introducere 15

120.000 de dolari, fapt care a determinat vânzarea sa de c tre firma DEC i deciparticiparea la na terea unei industrii mini-informatice.

În 1964 apare pe pia modelul 6600 al firmei CDC, o ma in aproape de 10ori mai rapid decât b trânul IBM 7094. Impactul asupra publicului a fost unulfoarte puternic, numeroase firme exprimându- i dorin a de a cump ra un astfel decalculator. Diferen a fa de modelul IBM: o arhitectur paralel . În concluzie,dispunea de mai multe unit i func ionale capabile s execute simultan diverseopera ii. Acest model putea executa 10 instruc iuni în acela i timp.

1.3.4. A treia genera ie: circuitele integrate (1965-1980)

Inventarea circuitului integrat a permis plasarea de numeroase tranzistoareîntr-o singur capsul de siliciu, cea ce a condus la calculatoare mai mici, mairapide i mai ieftine.

În anul 1965, firma IBM, num rul unu în domeniul informaticii, scoate pepia modelul IBM 360, acesta fiind primul calculator capabil de a simula un altcalculator. Apari ia circuitelor integrate a dus la dezvoltarea industrieimicroinformaticii, prin apari ia unor noi modele, dintre care pot fi amintitecalculatorul PDP-11 realizat de firma DEC. El este asem tor cu modelul 360 alfirmei IBM, dar cu un raport performan /cost mult mai bun.

1.3.5. A patra genera ie: circuitele VLSI (1980-1990)

Aceast etap este cea în care încep s apar primele calculatoare personale,acest lucru fiind posibil datorit unor factori decisivi:

perfec ionarea tehnologiei de fabrica ie; dezvoltarea re elelor de calculatoare; diversitatea mare de modele de arhitecturi; apari ia conceptelor de multimedia i de programare orientat pe obiecte.Un pas important în aceast etap a fost reprezentat de apari ia primelor

calculatoare personale realizate de firma IBM în colaborare cu Intel. Au rezultatcâteva modele care au avut o mare priz la public, dintre care IBM PS1, PS2. Unalt mare consor iu format din Apple i Motorola scoate pe pia modeleleMacIntosh 68000, 68040. Trebuie remarcat faptul c toate aceste modele eraucalculatoare personale, deci accesibile ca pre persoanelor fizice.

1.3.6. A cincia genera ie: prelucrarea masiv paralel (dup 1990)

Începutul genera iei a cincia este marcat de dezvoltarea calculatoarelor cuprelucrare masiv paralel , de exemplu CM 2 i CM 5 de la Thinking Machines Co.

ARHITECTURA SISTEMELOR DE CALCUL16

Un alt element esen ial este apari ia i dezvoltarea serviciului www (WorldWide Web) ini iat de Laboratorul CERN din Geneva în colaborare cu mai multeuniversit i americane.

În 1993, firma Intel construie te microprocesorul cu structur superscalar –Pentium. Apar sistemele masiv paralele cu memorie partajat i distribuit(Cray/MPP). Interactivitatea serviciului www este asigurat prin introducereatehnologiei Java.

Evolu ia procesoarelor a luat apoi un avânt puternic, frecven ele de lucrucrescând în numai opt ani de la 100 MHz la peste 3 GHz, înregistrându-se înacela i timp i o îmbun ire a arhitecturii microprocesoarelor prin specializare,memorie cache, paralelism (pipe-line), optimizarea algoritmilor

Este prezentat în continuare un scurt istoric al dezvolt rii domeniului.

AN NUME SUBIECT

1642 Blaise Pascal Prima ma in de calculat mecanic1834 C. Babbage Ma ina analitic de la Cambridge cu instruc iuni

pe cartel perforat1904 J.A. Flemming Dioda1906 L. De Forest Trioda1936 K. Zuse Primul calculator cu relee – Berlin1943 Guvernul britanic,

cu concursul lui A. TuringPrimul calculator electronic cu tuburi cu vid –

Colossus1944 H. Aiken Primul calculator american – Mark 1 (72 cuvinte a

23 cifre, ciclu ma in de 6 sec.); începutul ereielectronicii

1946 J. Mauchly i J.P. Eckert Debutul genera iei I de calculatoare – Eniac, Univ.Pennsylvania (18.000 tuburi electronice, 1.500

relee, 600 comutatoare, 30 tone, 150 KW)1948 J. Bardeen, W. Shockley,

W. BrattainTranzistorul

1948 N. Wiener Cibernetica1949 M. Wilkes, cu arhitectur

propus de J. von NeumannPrimul calculator cu program înregistrat, EDSAC

1951 MIT Primul calculator în timp real, Whirlwind1951 J. Mauchly i J.P. Eckert Primul calculator comercializat – Univac 11952 J. von Neumann Calculatorul IAS (Princeton) r spânde te

arhitectura de baz von Neumann1955 Laboratoarele Lincoln Primul calculator echipat cu tranzistoare – TX 01956 Firma IBM Calculatorul IBM 7041960 Circuite integrate

1960-61 Firma DEC Primul minicalculator, PDP-1, practic începutulgenera iei a doua de calculatoare (tranzistorizate)

i a miniinformaticii1961 Firma IBM Ma ina de gestiune 14011962 Firma IBM Primul calculator tiin ific puternic

(pe 36 de bi i) – IBM 7094

Page 5: Arhitectura Sistemelor de Calcul-ASC

Introducere 17

1963 Firma Borroughs Calculatorul B 5000 – primul calculator dedicatunui limbaj de programare: Algol 60

1964 Firma IBM Prima familie de calculatoare, IBM 360; firmaIBM preia suprema ia în informatic ;

multiprogramare; începutul genera iei a treia(cu circuite integrate)

1964 Firma CDC Primul calculator paralel – 66001965 Firma DEC Primul calculator cu produc ie de mas

(pe 12 bi i), PDP-81970 Firma DEC Minicalculatorul PDP-11, firma DEC

preia suprema ia în miniinformatic1970 Circuite integrate pe scar larg1971 Firma Intel Primul microprocesor de 4 bi i – 40041972 Firma Intel Primul microprocesor de 8 bi i – 80081974 Firma Cray Primul supercalculator: Cray-11974 Firma Intel Microprocesorul 8080:

prima unitate central pe un cip1978 Firma Intel Primul microprocesor de 16 bi i – 80861978 Firma DEC Primul superminicalculator de 32 bi i – VAX1979 Firma Motorola Primul procesor al familiei 680x0 – 680001980 Firma IBM Începutul genera iei a patra de calculatoare (cu

circuite VLSI); era calculatoarelor personale, PC1982 Firma Intel Microprocesorul de 16 bi i – 802861983 S.U.A. Tehnologia LAN (Local Area Network) este

folosit pe scar larg1984 Firma Motorola Primul microprocesor de 32 bi i – 680201985 Firma Intel Microprocesorul de 32 bi i – 803861987 Firma Motorola Microprocesorul de 32 bi i cu unitate de gestiune a

memoriei – 680301989 Firma Intel Microprocesorul de 32 bi i cu coprocesor i

memorie cache – 80486 1990 -1991

Thinking Machines Co.CM 2 i CM 5

Începutul genera iei a cincia de calculatoare(prelucrare masiv paralel )

1992 Laboratorul CERN, Geneva Serviciul de informa ii www(World Wide Web) oferit pe Internet

1993 Firma Intel Microprocesorul cu structur superscalar –Pentium

1993 Firma Cray Research Cray/MPP – Sistem masiv paralelCu memorie partajat distribuit

1995 Firma Sun Microsystems Tehnologia JAVA asigur interactivitateaserviciului www

1996 Firma Cyrix Microprocesorul în arhitectur superpipe-line –686 P200+

1997 Firma AMD Microprocesoarele RISC – K5, K61998 Firma AMD Microprocesorul K6-2 3D1998 Firma Intel Microprocesorul Mendocino/333 MHz1999 Firma Intel Microprocesorul Pentium III/600 MHz1999 Firma AMD Microprocesorul Athlon/K72000 Firma AMD Microprocesorul Sharptooth /K6-3

ARHITECTURA SISTEMELOR DE CALCUL18

2002 Firma Intel Microprocesorul Pentium 4 (> 3 GHz)2002 Firma AMD Microprocesorul AMD Athlon XP 2600+2003 Firma AMD Microprocesorul AMD Opteron (64 bi i)2005 Firma AMD Microprocesorul AMD Opteron (2)2005 Firma Intel Microprocesorul Intel Pentium D2006 Firma Intel Microprocesorul Intel Core (1, 2)2007 Firma AMD Microprocesorul AMD Phenom (2, 3, 4)2007 Firma Intel Microprocesorul Intel Dual Core2007 Firma Intel Microprocesorul Intel Core 2 (1, 2, 4)2008 ... ... ... ... ... ...

Page 6: Arhitectura Sistemelor de Calcul-ASC

2. TIPURI DE ARHITECTURI

2.1. Clasificarea arhitecturii sistemelor de calcul

2.1.1. Clasificarea Flynn

Clasificarea Flynn se face dup gradul de multiplicitate al irurilor formatedin secven e de instruc iuni i secven e de date care pot fi tratate simultan din punctde vedere hardware. Prin secven de date se în elege un ir de date de intrare,rezultate par iale sau rezultate temporare care sunt apelate de c tre o secven deinstruc iuni. Conform acestei clasific ri exist patru tipuri de arhitecturi:

SISD (Single Instruction Stream – Single Data Stream); SIMD (Single Instruction Stream – Multiple Data Stream); MISD (Multiple Instruction Stream – Single Data Stream); MIMD (Multiple Instruction Stream – Multiple Data Stream).Pentru aceste arhitecturi exist trei tipuri de componente de sistem: UC

(unitatea central ), UP (unitatea de prelucrare) i MM (modulul de memorie).De i sunt diferite între ele, toate schemele urm toare respect succesiunea

evenimentelor din arhitectura Von Neumann: instruc iunile i datele sunt extrasedin memorie, instruc iunile sunt decodate de UC care trimite secven a deinstruc iuni c tre UP pentru execu ie, datele circul între memorie i procesor pe ocale bidirec ional .

În continuare se va nota irul de date cu SD i cel de instruc iuni cu SI.

2.1.1.1. Arhitectura SISD

Fig. 2.1. Structura arhitecturii SISD.

Caracteristici: instruc iunile sunt executate serial, îns pot exista suprapuneri în

execu ie (pipeline). Majoritatea structurilor SISD r mase ast zi în uzfolosesc structuri pipeline.

ARHITECTURA SISTEMELOR DE CALCUL20

un calculator cu structur SISD poate avea mai multe elemente deprelucrare (func ii definite), toate g sindu-se sub supervizarea aceleia iunice UC.

Exemple: IBM 7090, VAX 11/780, CDC 6600, IBM 360/91, CRAY.Limit rile arhitecturii SISDLa acest tip de arhitecturi, viteza calculatorului este determinat de perioada

ceasului. Dac perioada ceasului scade, calculatorul devine în consecin mai rapid.Pentru a ob ine un ceas mai rapid exist dou posibilit i: calea de semnal s fie mai scurt ; tranzistorii folosi i s fie mai rapizi.Din nefericire, se pare c ambele au atins o anumit limitare din punct de

vedere tehnologic.Scurtarea c ii de semnal ar costa foarte mult. Cre terea num rului de

tranzistori pe unitatea de arie ar duce la cre terea dramatic a c ldurii disipate înexterior. Sistemele suplimentare de r cire ar costa i ele foarte mult.

Se lucreaz în prezent la fabricarea unor cipuri de joas putere (Low PowerChips) care ar duce la sc derea c ldurii generate. Aceasta se poate realiza prinmen inerea constant a densit ii de energie în timp ce num rul de tranzistori peunitatea de arie a cipurilor ar cre te.

Realizarea de tranzistori mai rapizi este, de asemenea, foarte costisitoare. Înacest scop se lucreaz la sc derea rezisten ei firelor prin care trece curentul.Aluminiul este elementul folosit în 1998, dar recent s-a reu it construc ia unui cipcu fire din cupru. Concomitent cu sc derea rezisten ei firelor se lucreaz i laîmbun irea izola iei dintre fire.

Este evident c perioada ceasului nu poate fi f cut egal cu 0. În consecin ,modul secven ial de tratare a opera iilor impus de arhitectura von Neumanndistruge orice speran într-o viitoare cre tere a vitezei calculatoarelor. Aceastsitua ie este cunoscut sub denumirea de gâtul sticlei lui Neumann (NeumannBottleneck). Pentru a sparge aceast limitare, trebuie introdus o arhitectur de tipneserial. Alternativa este reprezentat de arhitecturile de calcul paralele.

2.1.1.2. Arhitectura SIMDCaracteristici: exist mai multe UP datorit irului de date multiplu, preluat din memoria

partajat (memoria împ it în mai multe memorii); corespunde matricelor de microprocesoare: UP identice i supervizate de

o singur UC; toate UP primesc instruc iunile (setul unic de instruc iuni) care ac ioneaz

asupra unor seturi de date diferite, provenite din iruri diferite de dateSD1, ..., SDn;

ma inile SIMD pot efectua dou tipuri de prelucr ri: pe cuvânt (word-slice) i pe bit (bit-slice).

Page 7: Arhitectura Sistemelor de Calcul-ASC

Tipuri de arhitecturi 21

Fig. 2.2. Structura arhitecturii SIMD.

Aceste tipuri de ma ini lucreaz foarte bine pe seturi de date formate dematrice de dimensiuni foarte mari atunci când este necesar s se execute asupra loraceea i opera ie. Ma inile SIMD sunt eficiente i în cazul proces rii re elelor neurale.

Exemplu: CM (Connection Machine) fabricat de Thinking MachinesCompany din Cambridge (Massachusetts).

Limit rile arhitecturii SIMDAceste tipuri de ma ini sunt destul de scumpe în ceea ce prive te costurile de

produc ie, deoarece bancurile de procesoare nu sunt componente standard. Chiardac num rul celor care au nevoie de astfel de ma ini este în continu cre tere,ace tia nu sunt destul de numero i pentru a justifica existen a unor fabrici dedicateexclusiv produc iei de SIMD-uri. În consecin , aceste ma ini sunt în general

cute la comand i cost foarte mult.

1.4.1.3. Arhitectura MISDDe i aceast ma in este posibil de realizat din punct de vedere teoretic, nu a

fost niciodat fabricat în scop comercial. A fost construit în laboratoare decercetare, dar nu au existat clien i dornici s investeasc într-o astfel de arhitectur ,deoarece nu se adreseaz nici uneia dintre aplica iile de baz .

Fig. 2.3. Structura arhitecturii MISD.

Caracteristici: fiecare UC lucreaz cu irul de instruc iuni propriu SI1, ..., SIn; fiecare UP lucreaz cu acela i ir de date, care suport mai multe prelucr ri; partajare pe orizontal (un singur ir de date, mai multe iruri de instruc iuni);

ARHITECTURA SISTEMELOR DE CALCUL22

ie irea de la UP1 devine intrare pentru UP2 .a.m.d.Structura se nume te macro-pipeline (are doar o valoare teoretic ).

2.1.1.3. Arhitectura MIMDAceste tipuri de calculatoare sunt cunoscute sub denumirea de

multiprocesoare, chiar dac i ma inile SIMD sunt tot multiprocesor. Încalculatoarele MIMD paralelismul este realizat prin lansarea în execu ie a maimultor instruc iuni în acela i timp pe diferite seturi de date. Este evident c suntnecesare elemente adi ionale de control pentru a trimite instruc iunea corect idata care trebuie la procesorul ales, toate în acela i timp. Cele mai multe sistememultiprocesor intr în aceast clas .

Fig. 2.4. Structura arhitecturii MIMD.

Avantajele arhitecturii MIMD sunt: vitez mare de prelucrare, dac prelucrarea poate fi descompus în fire

paralele, toate procesoarele prelucrând simultan; întrucât procesoarele i blocurile de memorie sunt resurse de tip general,

defectarea unei unit i se poate compensa prin alocarea sarcinii deprelucrare altei unit i (grad ridicat de toleran la defect ri);

se poate utiliza reconfigurarea dinamic pentru a face fa gradelorvariabile de înc rcare a procesoarelor.

Exemple de sisteme MIMD: C.mmp, Cm* (Carnegie Mellon University),Ultracomputer (New York University), Cedar (University of Illinois), BBNButterfly, Alliant FX, CM-5 (Thinking Machine Corporation), seria Intel iPSc etc.

Sistemele MIMD se mai numesc intrinseci (propriu-zise) dac au UPinteractive: toate irurile de date provin din acela i spa iu de memorie adresat decele n procesoare (dac nu se întâmpl acest lucru – spa ii disjuncte ale memoriei –se spune c exist un set de n sisteme SISD independente).

Cele dou tipuri de sisteme prezentate mai sus se mai numesc sharedmemory (memoria este accesat de toate procesoarele) i shared nothing (fiecareprocesor are propria memorie, propriul disc i propriul sistem de comunica ii).

Dac la un sistem MIMD intrinsec interac iunea între microprocesoare esteputernic , sistemul se nume te cu cuplaj strâns. Leg tura procesor – memorie seface prin intermediul unor magistrale de interconectare. Comunica ia i sincronizareaîntre procesoare se realizeaz prin zone comune de memorie. Avantaj: comoditatede programare oferit de spa iul comun de adrese (shared address space).

Page 8: Arhitectura Sistemelor de Calcul-ASC

Tipuri de arhitecturi 23

În caz contrar, sistemul se nume te cu cuplaj slab. Leg tura procesor –memorie se face prin conexiuni seriale punct-la-punct (de tip re ea). Comunica iaîntre procesoare se face prin mesaje (message passing). Fiecare procesor dispunede memorie proprie (private memory). Avantaj: scalabilitate (posibilitate comodde expandare). Cele mai multe sisteme comerciale sunt cu cuplaj slab.

Exemple: IBM 370/168 – cuplaj slab, CRAY 2 – cuplaj strâns.

2.1.1.4. Sisteme cu memorie partajat (shared memory)În cazul ma inilor cu memorie partajat , ma ina original von Neumann a

fost extins prin includerea a ceea ce se nume te memorie cache. Aceasta este omemorie local ata at fiec rui procesor în parte, care îi permite procesorului saib acces rapid la propriile seturi de instruc iuni i date, dar s poat accesa încontinuare memoria principal prin magistrala de memorie. Acest tip de ma in semai nume te arhitectur cu multiprocesare simetric i este prezentat în figura 2.5.

Fig. 2.5. Arhitectura sistemelor shared memory.

Dintre sistemele mai vechi, în aceast categorie se înscrie seria IBMRS/6000: J40, J50, R40 i R50. Modelul J40 are dou nivele de cache în loc deunul singur. În loc s foloseasc o magistral pentru a lega diferitele procesoare cumemoria principal , IBM a dezvoltat un a a-numit crossbar care, spre deosebire demagistrala conven ional , permite pân la patru transferuri simultane cu memoria.

Limit rile arhitecturilor MIMD cu memorie partajat

Fig. 2.6. Limit rile calculatoarelor cu memorie partajat .

ARHITECTURA SISTEMELOR DE CALCUL24

La aceste arhitecturi, „gâtul sticlei” (bottleneck) îl reprezint magistrala dememorie. Toate instruc iunile i datele fiec rui procesor trebuie s treac prinaceast magistral . Când procesoarele care folosesc aceea i memorie sunt pu ine,performan ele depind liniar de num rul procesoarelor. Pe m sur ce acesta cre te,

rirea performan elor este din ce în ce mai slab , a a cum rezult din figura 2.6.Exist dou tipuri de sisteme MIMD cu memorie partajat : cu resurse globale (Global Shared Memory):

o arhitectura UMA (Uniform Memory Access);o arhitectura UMA cu memorii cache locale;

cu resurse distribuite (Distributed Shared Memory):o arhitectura NUMA (Non-Uniform Memory Access);o arhitectura COMA (Cache-Only Memory Access);o arhitectura CC-NUMA (Cache Coherent Non-Uniform Memory Access).

A. Arhitecturile GSM (Global Shared Memory)Calculatoarele MIMD cu spa iu unic de memorie au un cost relativ sc zut i din

acest motiv se bucur de o popularitate ridicat . Acestea sunt considerate a fi sistemecu cuplaj strâns, datorit gradului ridicat de partajare a resurselor. Func ionareaîntregului sistem paralel este coordonat de c tre un singur sistem de operare, carese ocup de planificarea în execu ie a proceselor pe procesoarele disponibile însistem, în condi iile în care se dore te o înc rcare cât mai echilibrat a acestora.

Arhitectura UMA (Uniform Memory Access)Memoria fizic a calculatoarelor de tip UMA este compus din mai multe

blocuri care formeaz un spa iu unic de adresare. Procesoarele acceseaz blocurilede memorie prin intermediul re elei de interconectare (vezi figura 2.7), care poate fistatic (format din conexiuni fixe, punct-la-punct, între nodurile re elei) saudinamic (format din conexiuni variabile în timp, de tip crossbar).

Fig. 2.7. Arhitectura UMA.

Principala caracteristic a calculatoarelor UMA este c toate procesoarele autimp de acces egal la memoria partajat . Îns , tocmai de aceea, num rulprocesoarelor utilizate în cadrul sistemului paralel nu poate fi foarte mare, deoarececre terea num rului de procesoare din sistem atrage dup sine o probabilitate maimare de conflict în ceea ce prive te accesarea concurent a aceleia i zone dememorie. Într-un astfel de caz, se vor înregistra timpi de a teptare care vor conducela o utilizare ineficient a procesoarelor i la o înc rcare neechilibrat a acestora.

Page 9: Arhitectura Sistemelor de Calcul-ASC

Tipuri de arhitecturi 25

În plus, pentru ob inerea unor performan e deosebite, re eaua de comunica ieva trebui s ofere o l rgime de band suficient de mare, deoarece fiecare procesorpoate necesita accesul la memoria partajat , ceea ce presupune transportul datelorsolicitate din memoria comun c tre procesorul care a formulat cererea.

Arhitectura UMA cu memorii cache localeO îmbun ire adus modelului UMA o reprezint utilizarea memoriilor

cache la nivelul elementelor de procesare (vezi figura 2.8). Fiecare procesor vaavea asociat o astfel de memorie. Atunci când un procesor solicit date, mai întâise verific dac aceste date se g sesc deja în memoria cache local . În cazafirmativ, acestea se transfer foarte rapid procesorului, f a accesa memoriapartajat . Astfel, problema conflictelor de acces concurent la spa iul unic dememorie se rezolv , cel pu in, par ial. Mult mai pu ine cereri vor ajunge sacceseze memoria partajat i, din acest motiv, probabilitatea de apari ie aconflictelor devine mult mai mic .

Fig. 2.8. Arhitectura UMA cu memorii cache locale.

Utilizarea memoriilor cache presupune îns i asigurarea consisten eiacestora. În momentul în care anumite date stocate în memoria global se modific ,aceste modific ri trebuie s fie semnalate tuturor memoriilor cache care stocheazcópii ale datelor respective. Mai mult chiar, atunci când se schimb con inutuldatelor de la nivelul unei memorii cache este nevoie ca modific rile s fie efectuateîn toate memoriile cache care con in cópii ale datelor actualizate. Men inereacoeren ei memoriei cache se poate realiza atât prin mecanisme software, cât i prinmecanisme hardware. Modelele cu acces neuniform la memorie încearc s evitedezavantajele întâlnite la calculatoarele de tip UMA.

B. Arhitecturile DSM (Distributed Shared Memory)Reprezint sisteme cu memorie partajat , dar care este distribuit din punct

de vedere fizic. Astfel, procesoarele au asociate memorii locale care formeazîmpreun o memorie global care poate fi accesat direct de c tre toate elementelede procesare. Timpul de acces la loca iile de memorie nu mai este uniform, eldepinzând de localizarea fizic a datelor care se doresc a fi transferate.

ARHITECTURA SISTEMELOR DE CALCUL26

Arhitectura NUMA (Non-Uniform Memory Access)În cazul acestui model, memoria partajat este distribuit fizic procesoarelor

din sistem (vezi figura 2.9). Astfel, fiecare element de procesare are asociat omemorie local . Toate aceste memorii locale formeaz un spa iu unic de adres .Din acest motiv, timpul de acces la memorie este neuniform, deoarece accesul ladatele aflate în memoria local este foarte rapid în timp ce accesul la datele aflateîn memoria local a altor elemente de procesare va fi mult mai lent, datoritfaptului c datele respective vor fi transportate prin re eaua de comunica ie.

Fig. 2.9. Arhitectura NUMA.

Observa ie. Sistemele NUMA sunt foarte asem toare sistemelor distribuite,din moment ce fiecare procesor dispune de o memorie local , iar toate acestemodule locale formeaz un spa iu unic de adresare.

O caracteristic important pentru ma inile NUMA este factorul NUMA.Acest factor arat diferen ele de laten pentru accesarea datelor din memorialocal comparativ cu accesarea dintr-o zon care nu este local . În func ie deconexiunile sistemului, factorul NUMA poate diferi pentru diverse p i alema inii: accesarea datelor dintr-un nod vecin este mai rapid decât accesareadatelor dintr-un nod mai îndep rtat pentru care este necesar traversarea unuinum r mai mare de etaje crossbar. A adar, atunci când este men ionat, factorulNUMA se refer de obicei la cele mai îndep rtate dou procesoare ale unei re ele.

Arhitectura COMA (Cache-Only Memory Access)În cazul modelului COMA, spa iul global de adrese este format din memorii

cache locale fiec rui procesor. Atunci când un procesor are nevoie de anumite date,acestea sunt mai întâi aduse în memoria cache de c tre controlerul de memorie,dup care acestea vor fi accesate foarte rapid (vezi figura 2.10).

Fig. 2.10. Arhitectura COMA.

Page 10: Arhitectura Sistemelor de Calcul-ASC

Tipuri de arhitecturi 27

Observa ie. Dispare conceptul de memorie global , controlerul de memorieavând responsabilitatea de a înc rca în memoriile cache locale datele ce urmeaz afi accesate de c tre procesoare. Înc rcarea datelor presupune localizarea itransportul acestora prin intermediul re elei de interconectare. Prin folosireamemoriilor cache locale, probabilitatea ca un procesor s acceseze majoritar datenumai din memoria local creste foarte mult.

Totu i, folosirea memoriilor cache pe post de memorii locale atrage dupsine i o serie de probleme. Atunci când se încearc aducerea unui bloc de dateîntr-o memorie cache integral ocupat , apare necesitatea mut rii unui alt bloc dedate pentru a se crea spa iul necesar memor rii noului bloc care va fi accesat de

tre procesor. Îns , datorit faptului c nu mai exist o memorie global în care sse scrie acest bloc, va fi nevoie ca datele con inute s fie mutate în memoria cachea unui alt procesor. Aceste date îns nu vor fi niciodat accesate de c tre procesorulcare folose te memoria respectiv , ceea ce conduce la o sc dere a eficien ei deutilizare a sistemului.

În plus, opera ia de transfer a blocului de date dintr-o memorie cache în altaeste i ea consumatoare de timpi de procesare, din moment ce datele trebuie scircule prin re eaua de interconectare. Ace ti timpi mor i atrag dup sine o utilizareineficient i o înc rcare neechilibrat a procesoarelor.

O alt problem o reprezint asigurarea coeren ei memoriilor cache, încontextul în care opera iile de mutare a blocurilor devin din ce în ce maicomplicate, atunci când num rul de procesoare din sistem este din ce în ce maimare. Controlerul de memorie trebuie s asigure gestiunea nu numai a datelor carevor fi aduse în memoriile cache, ci i a blocurilor care au fost mutate dintr-o memorielocal în alta. Din aceste motive, arhitectura COMA este tot mai rar folosit .

Arhitectura CC-NUMA (Coherent Cache NUMA)Modelul CC-NUMA combin modul în care este construit spa iul unic de

adres la calculatoarele de tip NUMA i la cele de tip COMA. Fiecare element deprocesare al unui calculator de tip CC-NUMA dispune atât de o memorie local .cât i de o memorie cache asociat (vezi figura 2.11).

Fig. 2.11. Arhitectura CC-NUMA.

ARHITECTURA SISTEMELOR DE CALCUL28

Ca i în cazul modelului NUMA, accesul la datele stocate în memoria localproprie este foarte rapid. Accesarea unor date aflate în memoria local a unui altprocesor implic aducerea acestora în memoria local proprie. Transferul de datefolosind re eaua de comunica ie atrage dup sine întârzieri, deoarece nu este la felde rapid precum accesarea memoriilor locale.

Existen a memoriilor cache are ca efect reducerea traficului prin re eaua decomunica ie. Datele solicitate de c tre un procesor sunt mai întâi c utate înmemoriile locale, dup care sunt aduse în memoria cache, în cazul în care acestease g sesc în memoria local a unui alt procesor. La acces rile ulterioare, se vafolosi copia datelor respective stocat în memoria cache, deci nu va mai fi nevoieca datele s fie din nou transferate prin re eaua de interconectare.

Utilizarea memoriile cache implic necesitatea implement rii unormecanisme software sau hardware care s asigure consisten a memoriilor cache. Lamodificarea unor date aflate în memoria local a unui procesor, este nevoie s seactualizeze toate copiile acestor date aflate în memoriile cache. Aceste mecanismecare asigur coeren a memoriilor cache contribuie la cre terea traficului efectuat încadrul re elei de interconectare.

Arhitectura CC-NUMA este utilizat de o serie de supercalculatoare foartecunoscute: Bull NovaScale, HP Superdome i SGI Altix.

Dezavantajele arhitecturilor DSMPrincipalul dezavantaj al arhitecturilor MIMD cu memorie distribuit i cu

spa iu individual de adresare (NUMA, COMA, CC-NUMA) îl reprezintîntârzierile care pot s apar atunci când un procesor dore te s acceseze date aflateîn memoria local a unui alt element de procesare. Aceste întârzieri se datoreazfaptului c procesorul respectiv va a tepta ca datele solicitate s fie transportate înmemoria sa local . Pentru minimizarea timpilor de inactivitate, procesorul în cauzpoate efectua o comutare de procese, atunci când procesul activ este blocat în

teptarea datelor solicitate. În general comutarea proceselor este o opera iunecomplex , implicând costuri importante, ce pot influen a performan ele sistemului.

Eficien a opera iei de comutare poate fi substan ial îmbun it prinutilizarea firelor de execu ie (thread-uri). Un proces poate fi împ it în mai multefire de execu ie, care comunic între ele prin accesul la spa iul de adres alocatprocesului, pe care îl partajeaz . Din acest motiv, firele de execu ie reprezint unmecanism eficient de exploatare a concuren ei programelor.

Un fir de execu ie reprezint cea mai mic entitate de planificare în sistemelebazate pe thread-uri. Comutarea între dou fire de execu ie care apar in aceluia iproces este o opera ie foarte rapid , care nu atrage dup sine costuri suplimentaresemnificative. Astfel, procesul activ este suspendat pân în momentul în care datelesolicitate au fost aduse în memoria local . În acest timp, este executat un alt fir deexecu ie al aceluia i proces. Aceast comutare între fire de execu ie apar inândaceluia i proces conduce la sc derea timpilor de inactivitate i, implicit, la cre tereaeficien ei cu care este utilizat sistemul paralel.

Calculatoarele MIMD cu memorie distribuit se numesc multicalculatoare ireprezint sisteme cu cuplaj slab, datorit gradului redus de partajare a resurselor.

Page 11: Arhitectura Sistemelor de Calcul-ASC

Tipuri de arhitecturi 29

Principalul avantaj al acestor sisteme îl reprezint scalabilitatea, adic ,posibilitatea extinderii prin conectarea unor noi procesoare. Cre terea num rului deprocesoare nu atrage dup sine probleme legate de accesul concurent la memorie,deoarece majoritatea apelurilor sunt c tre memoria local . Îns transferul de mesajepresupune schimburi de date care pot aglomera re eaua. Transferul de date întredou procesoare este o opera ie mare consumatoare de timp. Din acest motiv,performan ele re elei de interconectare pot influen a în mod hot râtor eficien a cucare este utilizat sistemul paralel. În plus, este foarte greu ca sarcina de calculdistribuit procesoarelor s fie echilibrat . Sistemul de operare ruleaz în fiecarenod i, din acest motiv, întregul sistem poate fi v zut ca fiind format din sta ii delucru care comunic prin transfer de mesaje. Complexitatea acestor sisteme estefoarte mare, datorit faptului c într-un nod de procesare individual se poate g siun simplu procesor sau un întreg sistem de tip UMA.

Exemple de arhitecturi MIMD cu memorie partajatDin perspectiv istoric , ma inile paralele cu memorie partajat sunt de trei

categorii: bazate pe magistral (Pentium SMP, nodul IBM SP), bazate pe directoarede tip CC-NUMA (Origin 2000) i cu spa iu de adresare global (Cray T3D, T3E).

Ma inile multiprocesor din anii '60 ai secolului trecut aveau structura dinfigura 2.12.a. Capacitatea de memorare sau posibilitatea de comunicare I/O seputeau ameliora prin ad ugarea de module de memorie i de dispozitive I/O.

Fig. 2.12. a. Arhitectura sistemelor multiprocesor. b. Arhitectura re elei crossbar (multistage).

Cre terea capacit ii de procesare se putea realiza prin ad ugarea deprocesoare. Ap rea deja necesitatea unei interconect ri a modulelor de memorie, aprocesoarelor i a leg turilor cu canalele I/O. Se foloseau re ele multietajate de tipcrossbar sau multistage (vezi figura 2.12.b). Memoriile cache, marea lovitur aanilor '70, au fost de natur a influen a puternic structurile de memorare. Sistemelede memorie scalate prin ad ugarea de module suplimentare aveau nevoie decapacitate, dar i de vitez ridicat . Memoria era o surs de strangul ri (bottleneck).Introducerea memoriilor cache a schimbat aproape radical datele problemei.

2.1.1.5. Sisteme f memorie partajat (shared nothing)În acest caz, fiecare procesor are propria lui memorie. Aceste ma ini sunt

practic calculatoare independente legate într-o re ea. Fiecare calculator se mainume te i nod (al re elei). Arhitectura shared nothing se mai nume te cumultiprocesare asimetric i este prezentat în figura 2.13.

ARHITECTURA SISTEMELOR DE CALCUL30

Fig. 2.13. Arhitectura sistemelor shared nothing.

Pentru ca aceste calculatoare s lucreze bine trebuie s existe un protocolbun de transmitere a mesajelor între ele. Acest protocol trebuie s fie foarte rapid i

erori. IBM folose te în acest scop protocolul Message Passing Interface (MPI)i mai multe c i redundante care formeaz un switch de mare vitez .

Aceste noduri sunt conectate i printr-o re ea conven ional Ethernet dinmotive de management al sistemului.

2.1.2. Clasificarea Wang

Criteriul de clasificare este în acest caz gradul de paralelism în procesareacuvintelor, respectiv bi ilor de date. Datele pot fi configurate într-o matrice (vezifigura 2.14).

Se noteaz cu n lungimea unui cuvânt i cu m num rul de cuvinte procesatela un moment dat.

Fig. 2.14. Organizarea datelor într-o matrice.

Conform acestei clasific ri, exist patru tipuri de arhitecturi: WSBS (Word Serial – Bit Serial). Se lucreaz pe un singur cuvânt,

fiecare cuvânt fiind prelucrat bit cu bit: n = 1, m = 1; WSBP (Word Serial – Bit Parallel): n > 1, m = 1; WPBS (Word Parallel – Bit Serial): n = 1, m > 1; WPBP (Word Parallel – Bit Parallel): n > 1, m > 1.În cazul tipului WPBP, structura paralel este complet , corespunz toare

prelucr rii pe matrice m n.În cazul tipului WSBP, prelucrarea este pe orizontal , iar în cazul tipului

WPBS, prelucrarea este pe vertical .

Page 12: Arhitectura Sistemelor de Calcul-ASC

Tipuri de arhitecturi 31

2.2. Structura fizic a unui calculator secven ial

Calculatorul numeric – sistem fizic, care prelucreaz automat informa iacodificat sub form de valori discrete, conform unui program, ce indic osuccesiune determinat de opera ii aritmetice i logice. Sistemul de calcul estecompus din dou subsisteme principale:

subsistemul hardware (echipamente fizice componente); subsistemul software (programele i structurile de date).Structura de baz a calculatorului secven ial, cu program memorat, stabilit

de von Neumann în 1945, este reprezentat în figura 2.15 i cuprinde cinci unit ifunc ionale: unitatea de intrare (UI), unitatea de memorare (M), unitatea de ie ire(UE), unitatea aritmetico-logic (UAL) i unitatea de comand (UCd).

Fig. 2.15. Ma ina von Neumann.

Linia continu reprezint fluxul de date i instruc iuni, iar linia întrerupt ,fluxul de comenzi i st ri.

Unitatea de comand (UCda) controleaz activitatea tuturor componentelordin sistem pe baza unei secven e de instruc iuni, reprezentând programul memorat.

Caracterul secven ial al calculatorului rezult din modul de execu ie alprogramului. Sunt necesare urm toarele etape majore (vezi figura 2.16):

înc rcarea instruc iunii IF (instruction fetch); decodificarea instruc iunii ID (instruction decoding); înc rcarea (din memorie) a operanzilor OF (operand fetch); execu ia opera iilor impuse de instruc iune EX (execution).Dup terminarea unei instruc iuni, se trece la urm toarea instruc iune. Astfel,

programul este executat secven ial, instruc iune cu instruc iune.

ARHITECTURA SISTEMELOR DE CALCUL32

Fig. 2.16. Etapele execu iei secven iale a unei instruc iuni.

Unitatea aritmetico-logic (ALU) realizeaz prelucrarea informa iei preluatedin memorie, iar rezultatele se depun din nou în memorie sau sunt furnizate înexterior. ALU realizeaz dou categorii de opera ii:

aritmetice: adunare, sc dere, înmul ire, împ ire; logice: I, SAU, SAU-EXCLUSIV, NEGA IE.Unitatea de comand , i cea aritmetico-logic , împreun cu memoria,

formeaz unitatea central (UC sau CPU) a calculatorului.Datele i programele sunt introduse în calculator prin intermediul unit ii de

intrare, fiind apoi depuse în memorie.

2.2.1. Structuri de calculatoare paralele

Calculatoarele paralele se clasific în trei configura ii arhitecturale: calculatoare pipeline (CPL); calculatoare (procesoare) matriceale (CM); calculatoare (sisteme) multiprocesor (CMP).Un calculator pipeline utilizeaz paralelismul temporar. Procesoarele

matriceale se bazeaz pe mai multe unit i ALU sincronizate pentru a atingeparalelismul spa ial. Un sistem multiprocesor este caracterizat de paralelismasincron, în sensul c setul de procesoare din structura sa interac ioneaz i î iîmpart resursele (memorii, baze de date). În acela i timp, procesoarele matricealeapeleaz la paralelism sincron (blocuri comandate printr-un unic semnal de ceas).

Cele patru tipuri de paralelism enun ate nu se exclud reciproc. Cele maimulte dintre procesoarele actuale au structura intern bazat pe tehnologia pipelinei multe dintre acestea pot fi organizate în sisteme matriceale sau multiprocesor.

Diferen a de baz dintre un procesor matriceal i un sistem multiprocesor esteaceea c unit ile func ionale din procesorul matriceal opereaz sincron, în timp ceprocesoarele sistemului multiprocesor func ioneaz asincron. Tendin ele indicutilizarea calculatoarelor controlate prin flux de date cu procesoare algoritmiceVLSI. Aceste tipuri de calculatoare sunt caracterizate printr-o cre tere masiv ahardware-ului pentru a atinge paralelismul.

Page 13: Arhitectura Sistemelor de Calcul-ASC

Tipuri de arhitecturi 33

2.2.1.1. Calculatoare pipelineExecu ia unei instruc iuni presupune patru faze majore: înc rcarea

instruc iunii – IF, decodarea instruc iunii – ID, înc rcarea operanzilor – OF iexecu ia efectiv – EX. În procesoarele non-pipeline, aceste faze se desf oarsecven ial, iar în procesoarele pipeline se desf oar cu paralelism temporal.

Pentru procesoare complexe, faza de execu ie a instruc iunii poate fipartajat în subopera ii organizate dup principiul pipeline. Problemele care apar încalculatoarele pipeline sunt datorate conflictelor de acces la memorie, salturilor iîntreruperilor.

Datorit suprapunerii opera iilor, calculatoarele pipeline (CPL) suntoptimizate pentru a efectua opera ii de acela i tip. Ori de câte ori se modific tipulopera iei (instruc iunii), registrele pipeline trebuie terse i reînc rcate i, caurmare, se consum timp suplimentar. Proiectarea CPL include: secven ializareasarcinilor (task-urilor), prevenirea conflictelor de acces (coliziunilor), controlulcongestiei i controlul salturilor în program.

O schem func ional a unui CPL este ilustrat în figura 2.17.

Fig. 2.17. Structura func ional a unui calculator pipeline.

În schema de mai sus, exist dou structuri pipeline: una pentru date scalarei una pentru date vectoriale. Faza de înc rcare a opera iilor este împ it în dou

subfaze independente, corespunz toare oper rii cu scalari sau cu vectori. Faza deexecu ie se desf oar în dou procesoare distincte, asociate scalarilor sauvectorilor.

ARHITECTURA SISTEMELOR DE CALCUL34

Tehnica pipelineExecu ia unei instruc iuni este privit ca fiind alc tuit din mai multe faze

(sau stagii), care se succed una dup alta i care pot fi tratate de unit i specializate,într-un mod asem tor func ion rii unei linii de asamblare (de ex.: de automobile).

Exemplu. Fie un ir de procese care are loc la execu ia unei instruc iuni.

P1 1 2 3 4 5 6 7 P2 1 2 3 4 5 6 P3 1 2 3 4 5 P4 1 2 3 4 P5 1 2 3

t

Fig. 2.18. Exemplu de ir de procese la execu ia unei instruc iuni i desf urarea lor în timp.

Se presupune c de fiecare din aceste procese se ocup o unitate specializat .Când se atinge al cincilea impuls de ceas, la toate cele cinci procese se lucreaz înparalel; astfel se m re te de cinci ori viteza de execu ie. În faza încadrat ,instruc iunea 5 este în faza de înc rcare, instruc iunea 4 în faza de decodare etc.

Problema este c în faza P5 poate s apar fenomenul de strangulare, pentru una sau mai multe instruc iuni aflate între P1 i P5 pot s nu fie instruc iuni utile

(de ex.: salt). De i exist un paralelism în execu ia instruc iunilor, aceasta este oma in pipeline de tip SISD.

2.2.1.2. Calculatoare matricealeUn procesor matriceal tipic este prezentat în figura 2.19. Exist dou unit i

func ionale distincte: o unitate de control i sincronizare a elementelor de procesare(care are ca sarcin suplimentar efectuarea opera iilor cu scalari) i o unitate deprelucrare matriceal . Fiecare element de prelucrare (EP) reprezint un elementpasiv, adic , f posibilitatea de a decodifica instruc iuni.

Înc rcarea instruc iunilor i decodarea lor (fazele IF i ID) pentru unitatea deprelucrare matriceal este efectuat de c tre unitatea de control, prin intermediulunei re ele de interconectare între EP. Fiecare element de prelucrare este alc tuitdintr-o unitate ALU, registre i memorie local , iar conexiunea dintre elemente esterealizat într-o arhitectur de tip NUMA.

Pentru o sesiune de lucru specific , unitatea de control stabile te func iaALU pentru fiecare EP, dup care transfer operanzi din exterior c tre memoriilelocale ale EP i rezultatele de la un EP spre alt EP (utilizând re eaua deinterconectare). Programarea CM este mult mai dificil decât programarea CPL.

Page 14: Arhitectura Sistemelor de Calcul-ASC

Tipuri de arhitecturi 35

Fig. 2.19. Structura func ional a unui calculator matriceal.

2.2.1.3. Calculatoare multiprocesorStructur de baz a unui CMP este prezentat în figura 2.20.

Fig. 2.20. Calculator multiprocesor.

ARHITECTURA SISTEMELOR DE CALCUL36

Nota iile din figura 2.20 sunt urm toarele: P1 … Pn – procesoare; ML1 … MLn – memorii locale.Sistemul este alc tuit din mai multe procesoare care împart resurse comune

(memorie), dar posed i resurse proprii (private), într-o arhitectur de tip UMA cumemorii (cache) locale. Procesoarele func ioneaz independent (asincron), dartrebuie s comunice între ele.

Structura de interconectare între procesoare i între procesoare i resurselecomune determin organizarea sistemului multiprocesor. Exist trei mari categoriide interconect ri:

1. partajarea unei magistrale comune (bus);2. utilizarea unei re ele de interconectare total (crossbar);3. utilizarea unei memorii multiport (ca memorie comun , dual ).CMP pot fi centralizate sau distribuite. Sistemele centralizate con in toate

procesoarele în acela i sistem de calcul, spre deosebire de sistemele distribuite, încare procesoarele pot fi fizic plasate în subsisteme diferite. Pentru sistemeledistribuite este necesar o re ea de comunica ie rapid , flexibil (adaptabil ) ifiabil .

2.2.2. Mecanisme de prelucrare paralel

Aceste solu ii de implementare a prelucr rii paralele sunt corelate cuarhitecturile clasific rii Flynn în privin a solu iilor hardware, solu iile softwarefiind specifice sistemelor de operare care gestioneaz intervalele de timp alocatediferitelor aplica ii i speculând, astfel, posibilitatea prelucr rilor paralele.

2.2.2.1. Solu ii hardware de prelucrare paralelMultiplicarea i specializarea unit ilor aritmetico-logice (ALU)Procesoarele clasice aveau o singur unitate de tip ALU. În acest fel, nu se

efectua decât o singur opera ie la un moment dat. Prin multiplicarea ALU,majoritatea func iilor pot fi distribuite între unit ile specializate pe o anumitfunc ie aritmetic sau logic i pot func iona în paralel. În unele procesoare existdou ALU care pot lucra în paralel (o unitate pentru aritmetica în virgul fix ialta pentru aritmetica în virgul mobil ). Ideea specializ rii func ionale i adistribuirii i multiplic rii ALU (numite i unit i func ionale) poate fi extins atâtla sistemele multiprocesor, cât i la cele matriceale. Acest mecanism constituie, defapt, implementarea paralelismului la sistemele SISD.

În figura 2.21 se prezint un exemplu de schem pentru figurarea acesteisolu ii. Unitatea central con ine 5 unit i ALU specializate pe diferite opera ii,care pot lucra în paralel.

În timp ce o instruc iune este executat de o anumit unitate ALU, unitateade comand încarc i decodific o alt instruc iune pe care o încredin eaz uneialte unit i ALU .a.m.d.

Page 15: Arhitectura Sistemelor de Calcul-ASC

Tipuri de arhitecturi 37

Fig. 2.21. Multiplicarea ALU prin specializarea pe opera ii.

Sistemul este eficient dac timpul de execu ie de c tre ALU a unei opera iieste mult mai mare decât timpul de înc rcare i decodificare a unei instruc iuni.Aceast condi ie este, în general, îndeplinit .

Exprimarea algebric a condi iei de eficien pentru multiplicarea ispecializarea ALU este:

tEX(ALU) >> tIF + tID.

Paralelism i structur pipeline în CPUPrimele genera ii de microprocesoare utilizau ALU (în special, sumatoare)

care operau cu flux de bi i (serial).Introducerea unui ALU care opereaz în paralel, pe flux de 8, 16, 32 sau 64

bi i simultan (cu sumatoare, cu transport anticipat sau multiplicatoare matriceale)duce la cre terea vitezei de prelucrare.

Arhitectura superscalarÎn arhitectura superscalar , iruri de instruc iuni diferite (de obicei dou ,

eventual mai multe), utilizeaz resurse diferite în acelea i stadii de execu ie ainstruc iunilor de pe fiecare ir.

Un exemplu particular de arhitectur superscalar este prezentat în figura 2.22.

ARHITECTURA SISTEMELOR DE CALCUL38

Fig. 2.22. Arhitectura superscalar .

Structura superscalar cu tehnic de burst (citire în rafale) este folositîncepând cu microprocesorul 80486 i este corelat cu momentul introducerii încapsula procesorului a memoriei cache de nivel 1.

Tehnica burst folose te aceast memorie pentru a citi blocuri de instruc iunidin memoria cache, instruc iuni care au fost înc rcate acolo din memoria principal(MP) în mod secven ial (vezi figura 2.23). În acest mod, se citesc dintr-o dat fiedou , fie patru cuvinte, în func ie de dimensiunea instruc iunii (pe 32 sau 16 bi i).S-a folosit ini ial o magistral intern între cache i decodificatorul de instruc iunide 64 bi i, ajungându-se în prezent la 128 de bi i.

Fig. 2.23. Arhitectura superscalar cu tehnic de burst (citire în rafale).

Page 16: Arhitectura Sistemelor de Calcul-ASC

Tipuri de arhitecturi 39

Exemplu. Schema din figura 2.24 reprezint o arhitectur superscalar cutrei iruri de instruc iuni diferite. Se execut în acela i timp o opera ie cu numerereale i dou opera ii cu numere întregi. Fiecare unitate este de tip pipeline i poateexecuta câteva opera ii în diferite stagii pipeline.

Fig. 2.24. Exemplu de arhitectur superscalar cu trei unit i pipeline în paralel.

Arhitectura superpipelineSe bazeaz pe divizarea stagiului pipeline în substagii i, deci, pe cre terea

num rul de instruc iuni care sunt procesate de pipeline la un moment dat. Divizândfiecare stagiu în dou substagii, perioada ciclului de ceas va fi redus la jum tate:/2.

La capacitate maxim , structura pipeline produce un rezultat la fiecare /2secunde. Pentru o arhitectur dat i setul de instruc iuni aferent ei, exist un num roptim de stagii pipeline. Dac num rul de stagii pipeline cre te peste aceast limit ,se va reduce performan a global . O solu ie pentru a cre te viteza f a facecompromisuri este arhitectura superscalar , prezentat anterior.

În figura 2.25, este prezentat un exemplu de execu ie pipeline (a),superpipeline (b) i superscalar (c) a unei instruc iuni.

Suprapunerea opera iilor CPU cu opera iile I/OUtilizarea unor controlere I/O separate permite efectuarea în paralel a

opera iilor interne ale CPU cu opera ii de transfer de date pe canalele I/O.Exemple de controlere I/O: controlere DMA (Direct Memory Access), care permit transferul direct de

date: memorie – memorie sau memorie – canale I/O, bazat pe principiulcererii de magistral (aceasta reprezint una dintre tehnicile evoluate detransfer de date, vezi paragraful 3.4.4.2);

procesoare specializate I/O, care lucreaz pe canale I/O cu sarcini specifice.

ARHITECTURA SISTEMELOR DE CALCUL40

a

b

c

Fig. 2.25. Modul de operare al tehnicilor pipeline (a), superpipeline (b) i superscalar (c).

Unitate ALU vectorial

Fig. 2.26. Arhitectur SIMD cu unitate ALU vectorial .

Este o solu ie de paralelism pentru sistemele SIMD, prezentat în figura 2.26.

Page 17: Arhitectura Sistemelor de Calcul-ASC

Tipuri de arhitecturi 41

Utilizarea unui sistem ierarhizat de memorieMemoria unui sistem de calcul trebuie s satisfac mai multe cerin e, adesea

contradictorii: capacitate mare, timp de acces mic, cost rezonabil i dimensiunireduse. Aceste cerin e nu pot fi îndeplinite simultan de un singur tip de memorie.Cu tehnologia actual se pot realiza memorii de mare vitez , dar de capacitate mic(RAM static), memorii de capacitate mare, dar de vitez medie (variante dememorii DRAM) sau memorii de capacitate foarte mare, dar cu timp de accesridicat (memorii externe pe suport magnetic sau optic).

În sistemele de calcul performante, spa iul de memorare este ierarhizat pemai multe nivele, cu scopul de a beneficia de avantajele oferite de diverse tipuri dememorii. Un sistem de calcul cu memorie organizat ierarhizat poate echilibradiferen ele de vitez între componentele sistemului (CPU, memorie, discuri) .

Într-o astfel de arhitectur , memoria este organizat pe patru niveluri: registrele CPU; memoria cache (MC); memoria principal sau operativ (MP); memoria virtual (MV).Registrele CPU sunt direct adresabile de c tre ALU.Memoria cache (rapid ) este cea mai apropiat de CPU, ceea ce impune ca

timpul de acces s fie mic, capacitatea fiind limitat . Aici sunt p strate instruc iunilei datele cu probabilitatea cea mai mare de a fi utilizate într-o proximitate de timp.

Memoria cache reprezint un tampon între memoria principal i CPU.Memoria principal sau operativ p streaz programele i datele aferente

în curs de execu ie. Ea poate fi adresat în mod aleatoriu de un program utilizator.Are o capacitate medie-mare i un timp de acces mediu. Este un tampon întrememoria virtual i CPU.

Memoria virtual este un concept arhitectural prin care memoria operativeste extins peste spa iul de adresare al memoriei externe (hard disk, bandmagnetic ). Prin tehnicile de implementare, numite segmentare i paginare (vezicapitolul 6), se urm resc dou aspecte esen iale:

cre terea resurselor de memorare disponibile pentru programele utilizator; protejarea zonelor de memorie alocate modulelor de program.Memoria virtual este util în cazul sistemelor de operare multitasking i

multiuser (Windows, Unix).În general, tehnicile de implementare a MC i a MV sunt transparente pentru

programele utilizator. Aparent, programele de aplica ie lucreaz numai cu memoriaprincipal . Transferul de informa ii între diferitele nivele de memorie se realizeazîn mod automat, fie de c tre componente hardware specializate (unitatea de gestiunea memoriei, MMU), fie de c tre sistemul de operare. Procesoarele recente ofersuport hardware pentru implementarea memoriei cache i a memoriei virtuale.

Eficien a utiliz rii unei arhitecturi ierarhizate de memorie se bazeaz pecâteva principii legate de modul de utilizare a informa iilor con inute în memorie.

Astfel, conform principiului localiz rii referin ei, adresarea loca iilor dememorie se realizeaz într-o secven repetitiv . Exist o probabilitate mare ca o

ARHITECTURA SISTEMELOR DE CALCUL42

loca ie adresat de curând s fie adresat i într-un timp imediat – localizaretemporar – i, similar, este previzibil ca i loca iile adiacente s fie accesate încurând – localizare spa ial . Principiile localiz rii temporale i spa iale sunt oconsecin a modului uzual de execu ie a secven elor de program.

Exemple: un program con ine bucle care presupun execu ia repetitiv a aceleia i

secven e de instruc iuni; execu ia instruc iunilor este, în majoritatea cazurilor, secven ial

(succesiunea în execu ie), excep ie f când instruc iunile de salt; secven a de program (procedura) utilizeaz repetitiv aceea i variabil sau

adreseaz repetat elemente ale unei structuri de date (tablouri, înregistr ri).Concluzie. Statistic s-a constatat c pentru majoritatea programelor este

valabil urm toarea regul : 90% din timpul afectat unui program este utilizatpentru execu ia a numai 10% din codul acestuia. Pe baza acestor observa ii,informa iile pot fi amplasate în mod dinamic pe diferite niveluri ierarhice alememoriei, în func ie de probabilitatea de a fi utilizate.

2.2.2.2. Solu ii software de prelucrare paralelPrelucrarea pe loturiPrelucrarea pe loturi (batch processing) presupune formarea unui fi ier cu

extensia .bat i lansarea lui. Procesele au loc succesiv, iar CPU (care executopera iile de calcul) nu este folosit în mod eficient.

Fig. 2.19. a. Prelucrarea pe loturi. b. Multiprogramarea.

Page 18: Arhitectura Sistemelor de Calcul-ASC

Tipuri de arhitecturi 43

Exemplu. Fie trei procese paralele, P1, P2 i P3, fiecare fiind v zut în timpca o succesiune de trei etape: intrare (i), calcul (c), ie ire (o) (vezi figura 2.27.a).

MultiprogramareaÎn acela i interval de timp pot exista mai multe programe (procese) active în

sistemul de calcul, concurând pentru memorie, I/O i CPU. Totu i, unele programesunt orientate c tre calcule (utilizând intens CPU), în timp ce altele sunt orientate

tre citirea/scrierea dispozitivelor I/O. Se pot astfel organiza (intercala) cele douclase de programe pentru a ob ine un timp de prelucrare global cât mai bun. Înfigura 2.27.b, câ tigul de timp este notat cu .

Intercalarea programelor permite utilizarea mai eficient a resurselorcalculatorului prin suprapunerea opera iilor I/O cu opera iile CPU. Acest mod deorganizare este gestionat de sistemul de operare (programul de supervizare). Astfel,multiprogramarea se poate defini ca intercalarea opera iilor CPU cu opera ii I/Opentru mai multe programe.

Observa ii.1. P1, P2 i P3 pot apar ine aceluia i program sau unor programe diferite.2. În cadrul multiprogram rii, se poate întâmpla ca un proces cu prioritate

mare s ocupe CPU un timp îndelungat i în acest fel se împiedicexecu ia altor procese. Neajunsul se poate înl tura folosind un sistem deoperare cu divizare în timp.

Diviziunea în timp (time sharing)Diviziunea în timp reprezint împ irea timpului de execu ie al CPU între

toate procesele (task-urile) active din sistemul de calcul. Cuantele de timp alocatefiec rui proces pot fi inegale de la un proces la altul. Viteza de prelucrare poatecre te astfel mai mult decât în cazul multiprogram rii (vezi cazul particular dinfigura 2.28).

Fig. 2.28. Repartizarea în timp a desf ur rii proceselor (time sharing).

ARHITECTURA SISTEMELOR DE CALCUL44

Procesul de calcul se împarte în mai multe etape. În func ie de divizarea înintervale de timp, se poate face ca procesele s se termine aproximativ în acela iinterval de timp (nu exist un proces dominant).

Diviziunea în timp constituie o atribu ie a sistemului de operare (numit, înacest caz, sistem de operare cu diviziune în timp). Utilizarea diviziunii în timp aprogramelor (sau a proceselor) în sistemele uniprocesor creeaz conceptul deprocesor virtual.

Exemplu: sisteme de calcul cu un singur procesor i mai multe terminale.Pentru subiectul uman, r spunsul unicului procesor este suficient de rapid astfelîncât s se considere c fiecare terminal opereaz independent, ca i cum ar posedael însu i procesor (utilizatorul are impresia c lucreaz singur pe calculator).

Conceptul de diviziune în timp poate fi extins în mod similar la sistemelemultiprocesor.

Observa ii.1. În cazul multiprogram rii, procesele î i termin faza de calcul (în CPU),

ap rând suprapunere doar între opera ii CPU i opera ii I/O.2. În cazul diviziunii în timp, procesele nu î i termin faza de calcul înainte

de a se executa alt proces; procesele pot fi intercalate, astfel încât s secâ tige timp de execu ie în raport cu multiprogramarea (suprapuneri întreopera ii CPU i opera ii I/O, respectiv între diferite opera ii I/O).

No iunea de multithreadingTermenul de multithreading reprezint un aspect important al proiect rii

software, care necesit aten ie special în construc ia sistemelor mari i, în deosebi,atunci când se pune problema eficien ei (exprimate în termeni de vitez asistemului) i a performan ei (exprimate în termeni de corectitudine în func ionarea sistemului). Folosind adecvat instruc iunile de multithreading, se pot realizaaplica ii optimizate.

Fiecare aplica ie sau program care ruleaz pe sistemul de operare este unproces alc tuit din unul sau mai multe fire (thread-uri). Un thread este un set deinstruc iuni sau o parte anume a aplica iei, care se execut independent în cadrulprogramului sau sistemului. Thread-urile sunt entit i responsabile cu multitasking-ul în cadrul unei singure aplica ii. De obicei, sistemul de operare (SO) se ocup cuprogramarea i executarea thread-urilor.

Multithreading-ul presupune execu ia în paralel a mai multor procese, pentrua îmbun i eficien a sistemului. Thread-urile sunt implementate în situa iile încare trebuie îndeplinite mai multe sarcini simultan.

Avantajele threading-ului sunt urm toarele: sarcinile care cer mai mult timp de execu ie pot fi rulate în background; interfa a aplica iei poate fi realizat mai atr tor i mai simplu de

utilizat (de ex.: dup ap sarea unui buton se afi eaz o bar de progres); viteza aplica iei poate cre te; thread-urile pot fi folositoare în situa iile în care exist decalaje între

anumite evenimente, putându-se astfel elibera anumite resurse care nusunt necesare la un moment dat.

Page 19: Arhitectura Sistemelor de Calcul-ASC

Tipuri de arhitecturi 45

Modelele de threading suportate de sistemele win32 sunt:1. Modelul thread-ului unic (Single Thread Model). Acest tip de thread

presupune rularea unui singur thread la un moment dat. Restul thread-urilor trebuie a tepte. Principalul dezavantaj al acestui tip de thread îl reprezint timpii lungi

de execu ie pentru sarcini mici. Corespunde din punct de vedere conceptualprelucr rii pe loturi (batch processing).

2. Modelul Apartment Thread (Single Thread Apartment Model – STA). Înacest model, pot exista mai multe thread-uri care se execut în cadrul aplica iei. ÎnSTA, fiecare thread este izolat într-un „apartament” separat în cadrul procesului.Fiecare proces poate avea mai multe apartamente, care pot partaja date între ele. Înacest caz, aplica ia este r spunz toare pentru stabilirea duratei fiec rui thread dincadrul fiec rui apartament. Toate cererile sunt ordonate folosind Windows MessageQueue, astfel încât un singur apartament poate fi accesat la un moment dat.Avantajul acestui model fat de modelul thread-ului unic este c se pot procesasimultan mai multe cereri ale utilizatorului. Totu i, nu este atins înc eficien amaxim , deoarece sarcinile se vor executa una dup alta. Corespunde din punct devedere conceptual multiprogram rii.

3. Modelul Multithread Apartment (Free Thread Apartment Model – FTA).Modelul Multithread Apartment presupune existen a unui singur apartament. Nueste nevoie de ordonare, deoarece toate thread-urile apar in aceluia i apartament ipot partaje resursele. Aceste aplica ii se execut mai rapid decât cele careimplementeaz modelul unic sau STA, deoarece sistemul este mai pu in solicitat ipoate fi optimizat s elimine timpii mor i. Corespunde din punct de vedereconceptual diviziunii în timp (time sharing).Aceste tipuri de aplica ii sunt foartecomplexe, deoarece trebuie s se asigure c thread-urile nu acceseaz simultanacelea i resurse (principiul pipeline). Este, astfel, absolut necesar s se furnizeze unsistem de blocare a resurselor. Acesta trebuie implementat cu aten ie, deoarecepoate conduce la blocarea total a sistemului.

Prin natura i arhitectura sa, mediul de programare Microsoft .NETFramework este un mediu de tip multithreading.

Evaluarea performan elor. Utilizând de n ori mai multe resurse în paralel,un algoritm nu va rula de n ori mai repede, datorit fenomenului de timpsuplimentar (overhead), indus prin aplicarea paralelismului. Acest timpsuplimentar apare din urm toarele cauze:

interac iunea între procese (transmiterea rezultatelor intermediare saupar iale) i sincronizarea proceselor;

inactivitatea temporar (idling), care înseamn c exist procese inactivepe anumite perioade de timp, datorit înc rc rii inegale i a a tept riisincroniz rii;

calculele suplimentare, care nu apar în formularea serial a algoritmului.Parametrii de intrare care contribuie la calculul performan elor sunt: timpul de execu ie secven ial sau serial, TS (timpul m surat de la

începutul i pân la sfâr itul execu iei algoritmului pe un calculatorsecven ial);

ARHITECTURA SISTEMELOR DE CALCUL46

timpul de execu ie paralel, TP (timpul m surat de la începutul execu ieii pân la terminarea ultimului subtask paralel);

num rul de procesoare, p.Cu ajutorul acestora, se pot calcula urm torii parametri de ie ire: suprasarcina, TO (Total Parallel Overhead) = diferen a dintre timpul

total de lucru însumat al tuturor procesoarelor i timpul necesar celui mairapid algoritm secven ial;

accelerarea, S (Speedup) = raportul dintre timpul necesar rezolv rii uneiprobleme pe un procesor i timpul necesar rezolv rii aceleia i problemeîn paralel pe p procesoare identice;

eficien a utiliz rii calculatorului paralel, E = S / p; costul, C = TP p, care reflect timpul total de lucru însumat al

procesoarelor.

2.3. Categorii de calculatoare

Calculatoarele pot fi grupate în 5 categorii, în func ie de structur ,dimensiuni, vitez , putere de calcul i destina ie:

microcalculatoare (ex.: computerele Apple i toate modelele de PC); minicalculatoare (ex.: serverele IBM, SGI, Sun Microsystems etc.); superminicalculatoare (ex.: Norsk Data Nord, Interdata, DEC VAX etc.); mainframe-uri; supercalculatoare.

2.3.1. Mainframe-uri

Un mainframe este un computer mare, folosit de institu ii guvernamentale icompanii pentru procesarea datelor importante în statistic , recens minte, cercetarei dezvoltare, proiectare, prognoz , planificarea produc iei, tranzac ii financiare etc.

Ca aspect exterior, primele mainframe-uri ar tau ca ni te dulapuri uria e de metal.Cu trecerea anilor, tehnologiile de fabrica ie s-au dezvoltat, m rimea fizic amainframe-urilor a sc zut, iar viteza lor de calcul a crescut foarte mult.

La nivelul anului 2008, prin mainframe se în elege un calculator compatibilcu modelele de tip IBM System/360 (1965). Actualmente, cel mai modern modelde la IBM este System z10. Sunt considerate mainframe-uri calculatoarele actualede tip: Nova (Fujitsu-Siemens), DPS (Groupe Bull), NonStop (Hewlett-Packard),ClearPath (Unisys) i cele compatibile IBM System z9 (Hitachi, Platform Solutions).

Un mainframe poate rula sau g zdui mai multe sisteme de operare simultan,func ionând ca mai multe ma ini virtuale. Un mainframe poate înlocui astfel chiari câteva sute de servere de dimensiuni mici (de exemplu, în aplica ii web),

reducând costurile de între inere, dar men inând un nivel ridicat de siguran .

Page 20: Arhitectura Sistemelor de Calcul-ASC

Tipuri de arhitecturi 47

2.3.2. Supercalculatoare

Un supercalculator este un calculator complex cu destina ie special , compusdin mai multe procesoare care acceseaz aceea i memorie central i carefunc ioneaz concomitent i coordonat, în cooperare strâns , astfel încâtsupercalculatorul poate atinge o performan total de calcul foarte ridicat . Modulde operare al supercalculatoarelor este calculul paralel. Num rul de procesoareinterconectate ale unui supercalculator dep te la anumite modele chiar i100.000.

Pentru a men ine costul unui asemenea supercalculator la un nivel rezonabil,exist arhitecturi care fac uz de procesoare mai ieftine i mai lente, dar foartenumeroase, grupate în a a-numite cluster-e.

Printre primele firme care au produs supercalculatoare pentru pia s-anum rat firma Cray (modelul Cray-1 din 1976 a atins viteza de calcul de 130Mflops). În acest domeniu, exist o list (actualizat de dou ori de an) a celor mairapide 500 de supercalculatoare din lume (Top 500), care se bazeaz pe testulstandardizat numit Linpack. Pe lâng supercalculatoarele comerciale, exist i liniasupercalculatoarelor militare.

Exemplu: arhitectura supercalculatorului bazat pe IBM BlueGene/L.Modelele IBM BlueGene de in momentan (2008) primele dou locuri în Top

500. Calculatorul se bazeaz pe un nou concept, care renun la cre terea frecven eide ceas în favoarea mic or rii componentelor, cre terii densit ii acestora ireducerii consumului de putere. Reducerea frecven ei de ceas este compensat prin

rirea gradului de paralelism, folosind un num r mai ridicat de procesoare.Procesorul de baz este un PowerPC 440 la 700 MHz. Dou astfel de

procesoare sunt amplasate pe un cip împreun cu o memorie cache L3 de 4 MBpartajat i 2 KB memorie cache L2 pentru fiecare procesor. Fiecare procesor aredou porturi de înc rcare i unul de stocare c tre memoriile cache L2, func ionândcu 8 bi i/ciclu. Aceasta este jum tate din banda necesar celor dou unit i devirgul mobil (FPU). Procesoarele au o memorie cache L1 de 32 KB pentruinstruc iuni i date, în situa ii favorabile atingând performan e de 2,8 Gflops/2. Seobserv c memoria cache L1 este mai mare decât L2, un lucru neobi nuit, carepermite îns atingerea unor viteze de procesare mai mari.

Arhitectura modelului IBM BlueGene/L este reprezentat în figura 2.29.Sistemul este alc tuit astfel: sunt introduse dou cipuri pe o plac cu o

memorie de 512 MB, aisprezece asemenea pl ci sunt plasate pe o alt plac nod,iar 32 de pl ci nod sunt introduse într-un a a-numit cabinet. A adar, un cabinetcon ine 1024 cipuri (2048 CPU). Pentru configura ia maxim , se folosesc 64 decabinete cuplate, care formeaz un sistem cu 65.356 cipuri i 130.712 CPU.

În modul normal de operare, o unitate de procesare a unui cip este folositpentru calcule, iar cealalt , pentru sarcinile de comunicare. În acest fel,performan a de vârf teoretic a sistemului este de 183,5 Tflops. Dac necesit ilede comunicare sunt mici, se pot folosi ambele procesoare pentru calcule, dublândviteza de vârf, ajungând la 360 Tflops.

ARHITECTURA SISTEMELOR DE CALCUL48

Fig. 2.29. Arhitectura IBM BlueGene/L.

Din punct de vedere al interconect rii, BlueGene/L posed mai multe re ele:dou re ele pentru conectarea procesoarelor, o re ea inel 3D i o re ea arbore.Re eaua inel este folosit pentru comunica ii generale, iar cea arbore pentrucomunica ii colective: broadcast, opera ii de reducere etc. L rgimea de band are elei arbore este de dou ori mai mare decât a re elei inel, ajungând la 350 MB/s(fa de 175 MB/s).

Performan ele sistemului ajung la 280,6 Tflops pentru testul Linpack. Înurma testului, s-a efectuat rezolvarea unui sistem liniar de N = 1.769.471 ecua ii.Eficien a rezultat a fost de 76%.

Supercalculatoarele care au la baz modelul IBM BlueGene/Limplementeaz arhitectura masiv paralel .

Aceasta const într-un num r de procesoare (de obicei, foarte mare – deordinul miilor) interconectate i controlate de un singur computer central. FiecareCPU are memoria sa i spa iul de date propriu, care con ine i o copie a sistemuluide operare. Toate blocurile CPU comunic între ele cu ajutorul unor interconect ride foarte mare vitez .

Page 21: Arhitectura Sistemelor de Calcul-ASC

Tipuri de arhitecturi 49

2.4. Exemple de arhitecturi

2.4.1. Arhitecturi uniprocesor

Se bazeaz pe cele trei componente majore: UCP, memoria, subsistemul I/O.VAX 11/780 (superminicalculator)Sistemul a fost produs de firma DEC. Schema de arhitectur general este

prezentat în figura 2.30. Aceasta con ine: CPU – unitatea central de prelucrare, care include:

o R0, ..., R15 = 16 registre generale a câte 32 bi i fiecare;o PC = contorul de program (program counter);o ALU = unitatea aritmetic i logic ;o ML = memoria local ;

MD = memorie de diagnoz ; CVM = coprocesor de virgul mobil ; MP = memoria principal (maxim 232 cuvinte); C = consol ; F = floppy disk; SBI = interfa a cu magistrala sincron (Synchronous Bus Interface); AU = adaptor unibus, cu (U) = magistral unibus; AMB = adaptor masterbus, cu (M) = magistral masterbus.

CPU mai con ine un registru de stare, care indic starea curent amicroprocesorului, a programului care se execut i a memoriei cache.

Fig. 2.30. Schema arhitecturii generale pentru VAX 11/780.

ARHITECTURA SISTEMELOR DE CALCUL50

IBM 370/168

Fig. 2.31. Schema arhitecturii generale pentru IBM 370/168.

Schema de principiu (vezi figura 2.31) con ine: MP = memoria principal ; LSU = local storage unit (unitate de memorie local ); CM = controller memory (leg tur multiport CPU – memorie); SS I/O = subsisteme de intrare-ie ire (mai multe canale asincrone).IBM RS/6000 model 250Arhitectura simplificat este prezentat în figura 2.32.

Fig. 2.32. Schema arhitecturii generale pentru IBM RS/6000-250.

Schema de principiu con ine: PPC = PowerPC – Processor Optimized With Enhanced RISC

Performance Chip; SIMM = Small In-line Memory Modules (module de memorie); CTRL = controler; MCA = magistral de control i adres ; Ethernet = controler de re ea.

Page 22: Arhitectura Sistemelor de Calcul-ASC

Tipuri de arhitecturi 51

2.4.2. Arhitecturi multiprocesor

Arhitecturile multiprocesor sunt cel mai bun exemplu al tentativei de aparaleliza un sistem de calcul. Acestea sunt de dou tipuri: cele care folosescprocesoare multiple, discrete, pe o plac de baz sau sisteme hardware speciale icele care folosesc mai multe nuclee în interiorul unui singur procesor fizic.

2.4.2.1. Arhitecturi cu procesoare multipleArhitecturile cu procesoare multiple pot fi de dou feluri: cu multiprocesare simetric ; cu multiprocesare asimetric .Multiprocesarea simetric utilizeaz mai multe procesoare fizice legate

printr-o magistral de memorie partajat i suportul magnetic aferent (veziparagrafele 2.1.1.4 i 2.2.1.3, referitoare la sisteme cu memorie partajat – sharedmemory i calculatoare multiprocesor).

În cazul sistemelor cu arhitecturi de multiprocesare asimetric , fiecareprocesor are alt task. Exemple: cipseturile 3D din pl cile grafice moderne icluster-ele de calculatoare personale (Beowulf), în care fiecare procesor are accesnumai la memoria calculatorului din care face parte (vezi paragraful 2.1.1.5,referitor la sisteme f memorie partajat – shared nothing).

IBM RS/6000 model F50Sistemul cuprinde între 1 i 4 procesoare Power PC cu cache extern i are o

magistral de 64 de bi i. Memoria cache se nume te 8-way (cu 8 c i) pentru c datelesunt grupate în seturi de câte 8 64 bi i. Memoria folose te date de 72 bi i: 64 pentrudate i 8 pentru codul corector de erori (ECC = Erorr Correction Code). Procesorulare o arhitectur de tip superscalar i poate executa pân la 4 instruc iuni pe ciclu.

Caracteristici (vezi figura 2.33): frecven a de tact: 166–332 MHz, 87 MHz pentru magistrala de memorie; 32 KB cache de date, 32 KB cache de instruc iuni; magistral de date de 64 de bi i i magistral de adrese de 32 de bi i; memorie de pân la 4 GB i memorie virtual de pân la 4 PB (1P = 252).Arhitectura Intel multiprocesorArhitectura multiprocesor propus de firma Intel este reprezentat prin

schema din figura 2.34.Nota iile din schem au urm toarele semnifica ii: BSP = Bootstrap Processor,

AP = Application Processor, APIC = Advanced Programmable Integrated Circuit,ICC Bus = Interrupt Controller Communications Bus.

2.4.2.2. Arhitecturi biprocesorUn sistem care suport dou procesoare trebuie s aib o plac de baz

adaptat pentru a servi dou CPU. În acest scop, placa de baz este dotat cu omagistral special , a c rei construc ii depinde de la produc tor la produc tor, darcare se conformeaz unor reguli generale.

ARHITECTURA SISTEMELOR DE CALCUL52

Fig. 2.33. Schema arhitecturii generale pentru IBM RS/6000-F50.

Fig. 2.34. Schema arhitecturii Intel multiprocesor.

Astfel, cele dou CPU sunt servite de dou interfe e paralele cu magistralaprincipal a sistemului, iar arbitrarea traficului pe aceasta este efectuat de uncontroler specializat. Accesul la magistral este multiplexat, astfel c la un anumitmoment de timp i pentru o durat bine stabilit (fix sau adaptat sarcinii curente)accesul la magistral îl are doar un singur procesor. Aceste tipuri de scheme potcuprinde zone de memorie cache comune (integral sau par ial), iar magistrala poatefi cu l ime variabil sau cu adaptare dinamic la cereri.

Page 23: Arhitectura Sistemelor de Calcul-ASC

Tipuri de arhitecturi 53

Pentium II biprocesor

Fig. 2.34. Arhitectura unui sistem biprocesor cu Pentium II.

AMD Athlon biprocesorEste un exemplu de arhitectur biprocesor construit pe baza cipsetului 760 al

firmei AMD (vezi figura 2.35).

Fig. 2.35. Arhitectura unui sistem biprocesor cu AMD Athlon.

ARHITECTURA SISTEMELOR DE CALCUL54

Cre terea performan elor este realizat prin utilizarea magistralei punct-la-punct (Point-to-Point) i a modului snoop. Modul snoop permite citirea datelor de

tre un procesor din cel lalt procesor (prin intermediul Northbridge-ului),nemaifiind necesar accesarea memoriei. Acest mod elimin tehnica prin caredatele necesare unuia din cele dou procesoare erau înscrise în memorie de c treprimul procesor i apoi citite de c tre al doilea.

AMD K7 biprocesorMicroprocesorul AMD K7 lucreaz pe magistrala ultrarapid EV6 la

frecven a de 200 MHz. Astfel, K7 poate folosi memorii foarte rapide i cu l rgimede band mare, cum este Rambus DRAM. Datorit suportului multiprocesor alprotocolului de magistral EV6, sistemele AMD pot fi folosite în domeniul sta iilorde lucru i al serverelor. Arhitectura EV6 permite o flexibilitate ridicat , cufacilit i de tipul topologiei punct-la-punct i clock-forwarding. Magistralele dedate i de adrese sunt decuplate, procesorul putând s emit cereri în timp ceprime te date i comenzi de la logica de sistem. Tot aici sunt gestionatetransferurile cu sistemul, c tre memorie sau c tre magistralele AGP i PCI.

Schema bloc a acestei arhitecturi este prezentat în figura 2.36.

Fig. 2.36. Arhitectura unui sistem biprocesor cu AMD K7 pe magistrala EV6.

Sun SPARC IV biprocesorArhitectura biprocesor Sun SPARC IV este prezentat în figura 2.37.

Nota iile din schem au urm toarele semnifica ii: ECC = Error Checking/CorrectionCode (cod de verificare/corec ie de erori), DCSS = Dual Chip Data Switch (bloc dealegere a cipului), SIU = System Interface Unit (unitatea de interfa cu sistemul),MCU = Memory Control Unit (unitate de comand a memoriei).

Page 24: Arhitectura Sistemelor de Calcul-ASC

Tipuri de arhitecturi 55

Fig. 2.37. Arhitectura Sun SPARC IV biprocesor.

Se observ c cele dou procesoare au atât memorie cache comun , cât iindividual . Accesul la memoria comun se realizeaz prin intermediul unuimultiplexor, care nu permite lucrul simultan celor dou CPU cu aceasta, pentru apreveni blocajele i erorile ce pot ap rea în urma unor acces ri simultane. Schemaeste capabil s ruleze dou fire de execu ie (thread-uri) cu laten e foarte mici descriere a cache-ului. De asemenea, accesul la magistrala principal este multiplexat,pentru a preveni congestiile i erorile de transmisie. Strategia de gestiune amemoriei cache este de tipul LRU (Least Recently Used – cel mai pu in recentutilizat), ceea ce duce la mai multe anse de a g si în cache informa ia necesar laurm toarea procesare (cache hit). Memoria acestui sistem este de tipul SDRAM.

Exist scheme care aduc îmbun iri suplimentare legate de administrareaeficient a magistralei (prin repartizarea dinamic a duratelor de acces bazat pepredic ii i pe comport ri anterioare ale proceselor care se repet la fiecare CPU etc.).

Intel Xeon biprocesorSistemul este echipat cu dou procesoare Intel Xeon instalate pe o plac de

baz de tipul Supermicro P4DC6+. Aceast plac de baz este dotat cu cipsetuli860, constituit din trei componente principale: Intel 82806AA PCI 64 Hub (IntelP64H din figura 2.38), Intel 82860 Memory Controller Hub (MCH din figura 2.38)i Intel 82801BA I/O Controller Hub (ICH2 din figura 2.38). Aceste blocuri

asigur un transfer foarte rapid de date atât între procesoare, cât i între acestea imemorie sau dispozitive periferice.

ARHITECTURA SISTEMELOR DE CALCUL56

Fig. 2.38. Arhitectura sistemului Xeon biprocesor.

Pentru aceasta, arhitectura pune la dispozi ie componentelor sistemului(controlerul SCSI, sloturile PCI pe 32 sau 64 de bi i) magistrale distincte, careasigur separarea fluxurilor de date. Acest lucru este vital într-un server în careschimbul de date dintre componente este realizat în flux continuu. Tot pentru osporire a vitezei de lucru, s-a recurs la utilizarea memoriei de tip RDRAM.

AMD Opteron biprocesorSistemul cu dou procesoare AMD Opteron 250 la 2,4 GHz folose te o plac

de baz dotat cu cipsetul NVIDIA nForce Professional 2200. Noutatea acesteiconfigura ii este c procesoarele nu împart aceea i magistral pentru a accesamemoria, ca la sistemele tradi ionale. În acel caz, magistrala reprezenta „gâtulsticlei” (bottleneck) sistemului, fiind un obstacol în calea proces rii la poten ialulmaxim al CPU-urilor. Pentru a evita aceast limitare, AMD a recurs la o arhitecturcu memorie cache neuniform , de tip ccNUMA (vezi figura 2.39).

Fiecare procesor dispune de un controler de memorie, care poate accesa opor iune de memorie rezervat doar lui. Sunt evitate astfel suprapunerile de date ialterarea reciproc a datelor provenite de la procesoare diferite. În plus, cele douCPU sunt interconectate printr-o magistral de mare vitez , de tipul HyperTransport(tehnologie patentat de AMD), care nu are leg tur direct cu memoria (spredeosebire de un sistem clasic) i care asigur un dialog eficient între componente.

Cele dou procesoare pot accesa memoriile proprii cu laten e foarte mici (multmai mici decât la sisteme tradi ionale), precum i memoria care nu le apar ine direct,dar cu laten e mari. Aceasta nu constituie un dezavantaj, deoarece un CPU lucreazîn mod normal doar în zona de memorie care îi este repartizat . Totu i aceasttehnologie are i un punct slab: organizarea corect a memoriei este crucial . Astfel,arhitectura NUMA trebuie suportat atât de sistemul de operare, cât i de aplica ii.

Page 25: Arhitectura Sistemelor de Calcul-ASC

Tipuri de arhitecturi 57

Fig. 2.39. Arhitectura sistemului AMD Opteron biprocesor.

Sistemele de operare Windows XP i Windows server 2003 suport înîntregime aceast tehnologie, op iunea activându-se automat la detectarea unuisistem de acest tip.

Calculatoarele biprocesor se preteaz pentru diverse aplica ii complexe, carenecesit putere de calcul. Aici intr aplica iile grafice de modelare 3D, aplica iilede re ea (mai ales dac sistemul este unul de tip nod coordonator de trafic sauserver pentru subre ele de diverse dimensiuni) i aplica iile specifice de prelucrarea semnalelor în timp real. Tot ce au acestea în comun este faptul c sunt createastfel încât s lucreze cu mai multe fire de execu ie simultan, conform principiilorde calcul paralel. Aceste tipuri de algoritmi sunt create pentru a minimiza timpul deexecu ie foarte mare pe care îl implic acele aplica ii în situa ii normale.

În ultima vreme, câ tig popularitate un nou tip de aplica ii care pot folosiarhitectura biprcocesor, anume sistemele embedded. În esen , este vorba despreconectarea în paralel, pe aceea i plac , a dou (sau mai multe) procesoarespecializate, cu un scop bine definit, spre deosebire de calculatoarele personale,care au scopuri multiple. De exemplu: prelucrarea unui semnal audio (codare idecodare) i, eventual, transmiterea lui mai departe. Din aceast clas fac parteprocesoarele DSP de la firma Texas Instruments. Premisa acestor aplica ii este cprocesorul este adaptat s realizeze un num r restrâns de opera ii cu scopuri binedeterminate. În plus, DSP-ul este capabil s ruleze aplica ii de sine st toare, care

ofere interfa cu utilizatorul i suport pentru memorare i transmitere c tre altecomponente conectate la acesta. De exemplu: un subsistem care, conectat la un PC,

codeze/decodeze fi iere audio în format mp3.

ARHITECTURA SISTEMELOR DE CALCUL58

2.4.2.3. Arhitecturi multinucleuUn procesor multinucleu combin dou sau mai multe nuclee într-un singur

cip fizic, care con ine fie un circuit integrat cu toate nucleele, fie mai multe circuiteintegrate interconectate. Un procesor cu mai multe nuclee implementeaz oarhitectur de multiprocesare într-un singur pachet fizic. Un procesor cu toatenucleele pe acela i circuit integrat se nume te procesor multinucleu monolitic.

Nucleele pot partaja un singur cache de nivel înalt (de ex.: cache-ul L2pentru procesoarele Core 2 de la Intel) sau pot avea câte un cache separat pentrufiecare nucleu (de ex.: linia de procesoare dual-core de la AMD). Fiecare nucleuimplementeaz separat optimiz ri hardware, cum sunt: sisteme pipeline, execu iesuperscalar , extensii SSE, multithreading etc.

Un sistem cu n nuclee este eficient atunci când pe acesta se ruleaz n procese(sau fire de execu ie) concurente i independente. Cele mai cunoscute procesoaremultinucleu sunt cele de pe pia a calculatoarelor personale (Intel i AMD), precumi cele folosite în consolele de jocuri pe televizor (de ex.: procesorul Cell folosit la

PlayStation 3 are 8 nuclee, iar Xenon folosit la Xbox360 are 3 nuclee).Avantajele sistemelor cu procesoare multinucleu sunt: Nucleele sunt apropiate fizic, ceea ce înseamn c semnalele trebuie s

parcurg o distan mai mic . Acestea permit procesoarelor sinterac ioneze cu o frecven mai mare decât dac ele ar fi fost separate(dou procesoare pe o placa de baz ).

Procesoarele multinucleu ofer designerilor posibilitatea de a face pl cilede baz mai mici decât pentru dou sau mai multe procesoare.

Un procesor cu dou nuclee consum mai pu in decât dou procesoarecu câte un singur nucleu, deoarece acestea necesit mai mult putere stransmit acelea i semnale în afara cipului,

Pre ul produsului este mai redus, pachetul fizic fiind de un singurprocesor în loc de mai multe.

Dezavantajele sistemelor cu procesoare multinucleu sunt: De i, teoretic, dou procesoare pot dubla viteza de calcul, software-ul

trebuie optimizat pentru a beneficia de acest lucru, în func ie deposibilitatea aplica iilor i a sistemului de operare de a crea fire deexecu ie (thread-uri) paralele i independente.

Integrarea a înc unui nucleu în acela i circuit integrat pune problemedeosebite din punct de vedere termic, deoarece, practic, acela i pachetfizic trebuie s disipeze de dou ori mai mult putere. Intel a rezolvataceast problem prin integrarea a dou nuclee dual-core i a unui cacheunificat în locul unui nucleu quad-core cu memorii cache separate. Astfel,se for eaz lucrul numai al unuia dintre cele dou nuclee, în loc de toatepatru deodat , mic orând puterea instantanee disipat de întregul procesor.

Din punct de vedere al arhitecturii, procesoarele cu un singur nucleufolosesc mai eficient resursele de tranzistori de pe cip. Astfel, ocompanie care produce procesoare trebuie tot timpul s aib o linie deprocesoare cu un singur nucleu în paralel cu cele multinucleu.

Page 26: Arhitectura Sistemelor de Calcul-ASC

Tipuri de arhitecturi 59

Exist mai mul i factori care limiteaz performan a real a unui sistemmultinucleu. În primul rând, magistralele de sistem i de memorie suntpartajate, astfel încât devin „gâtuiri” (bottlenecks) care limiteaz fluxulde date c tre nucleele multiple ale procesoarelor, în acela i mod în care oosea cu prea pu ine benzi de circula ie produce uneori blocaje.

Intel Core 2Procesoarele Intel Core 2 Duo sunt produse folosind tehnologia de fabricare

Intel pe 65 nm. Versiunea pentru desktop-uri a procesoarelor furnizeaz o cre terede 40% a performan ei i este cu peste 40% mai eficient din punct de vedere alconsumului de energie, în compara ie cu cel mai bun procesor Intel anterior.Potrivit anali tilor independen i, procesoarele câ tig 9 din cele 10 teste majore deperforman pentru desktop-uri, servere i calculatoare destinate jocurilor.

Familia de procesoare Intel Core 2 Duo este format din 5 procesoare pentruplatforme desktop destinate afacerilor, utiliz rii individuale i entuzia tilor pentrutehnologie, precum i din 5 procesoare pentru notebook-uri.

Familia de procesoare Intel Core 2 Duo este bazat pe micro-arhitectura IntelCore. Prin intermediul celor dou nuclee de execu ie, procesoarele pot executa cuvitez un num r mai mare de instruc iuni. De asemenea, procesoarele pot operamai rapid la lansarea simultan în execu ie a mai multor aplica ii, de exemplu,scrierea unui e-mail în acela i timp cu desc rcarea de muzic i scanarea antivirus.Procesoarele Dual-core contribuie la îmbun irea execu iei programelor, deexemplu, în cazul vizion rii unor clipuri high-definition sau al protej rii PC-ului întimpul tranzac iilor financiare pe Internet, crescând, de asemenea, autonomiabateriei în cazul notebook-urilor, care pot deveni astfel mai sub iri i mai u oare.

Inova iile aduse de Intel prin introducerea arhitecturii Intel Core 2 (Duo iExteme) sunt urm toarele:

Intel Wide Dynamic Execution – îmbun te performan a i eficien a,întrucât fiecare nucleu de execu ie poate realiza pân la 4 instruc iuni simultan,folosind un pipeline eficient în 14 stagii.

Intel Smart Memory Access – îmbun te performan a sistemului,diminuând laten a cipurilor de memorie i optimizând astfel utilizarea l rgimii deband disponibile pentru furnizarea datelor c tre procesor când i unde este nevoie.

Intel Advanced Smart Cache – include o memorie cache L2 comun ,proiectat pentru a reduce consumul de energie prin mic orarea traficului dememorie, i m re te performan a, permi ând unui nucleu de execu ie s utilizezeîntreg cahe-ul atunci când cel lalt nucleu nu este folosit. Aceast func ie esteasigurat pentru toate segmentele de pia : server, desktop i notebook.

Intel Advanced Digital Media Boost – dubleaz efectiv viteza de execu ie ainstruc iunilor folosite cu prec dere în aplica iile grafice i multimedia.

Intel 64 Technology – aceast îmbun ire adus arhitecturii Intel pe 32 debi i ofer suport pentru procesarea pe 64 de bi i i permite procesorului s accesezeo cantitate mai mare de memorie.

Nucleul de execu ie al procesorului Intel Core este reprezentat în figura 2.40.Caracteristicile func ionale ale acestei arhitecturi sunt expuse în cele ce urmeaz .

ARHITECTURA SISTEMELOR DE CALCUL60

Fig. 2.40. Nucleul de execu ie al procesorului Intel Core.

Unit ile de execu ie cu numere întregiIntel Core are trei asemenea unit i pe 64 bi i, fiecare dintre ele putând

realiza opera ii pe 64 bi i într-un singur ciclu. Exist i o unitate pe 64 bi i denumere complexe (CIU – Complex Integer Unit), care realizeaz în mare parteaceea i munc precum cea din P6, i dou unit i simple de numere întregi (SIU –Simple Integer Unit), pentru opera iile uzuale, cum ar fi adunarea. Una din unit ileSIU împarte portul 2 cu BEU (Branch Execution Unit), pe care Intel o nume teunitatea de salt în execu ie). Pe acest port, SIU este capabil s lucreze în tandem cuBEU pentru a executa instruc iuni macro (compara ii sau teste +jcc).

Posibilitatea de a realiza calcule pe 64 bi i într-un singur ciclu este opremier în arhitectura Intel 86 i aceasta îl pune înaintea IBM, cu al s u PowerPC970, care are o laten de dou cicluri pentru opera ii cu numere întregi. În plus,datorit unit ilor ALU pe 64 bi i care sunt pe porturi separate, Intel Core poatemen ine un total de trei opera ii pe 64 bi i per ciclu.

Unit ile de execu ie în virgul mobilIntel Core are dou unit i de execu ie în virgul mobil , care se ocup de

ambele tipuri de opera ii aritmetice: scalare i vectoriale.Unitatea de execu ie de pe portul 1 se ocup cu adun ri sau cu alte opera ii

simple în virgul mobil , dup cum urmeaz : scalar: simpl precizie (32 bi i) i dubl precizie (64 bi i); vector: simpl precizie (4) i dubl precizie (2).

Page 27: Arhitectura Sistemelor de Calcul-ASC

Tipuri de arhitecturi 61

Unitatea de execu ie în virgul mobil de pe portul 2 se ocup cu înmul iri iîmp iri cu vectori i scalari în formatele listate mai sus.

Procesarea vectorial real pe 128 bi iArhitectura Intel Core asigur laten a de un ciclu pentru opera iile vectoriale

pe 128 bi i. Intel realizeaz acest lucru f când magistrala pentru virgul mobil icea intern de date cu l imea de 128 bi i, facilitate care înseamn c este necesardoar o singur micro-opera ie (care trebuie generat , trimis , programat irealizat ) pentru fiecare opera ie vectorial pe 128 bi i. De aceea, noul design nunumai c elimin dezavantajul generat de laten , dar în acela i timp îmbun tedecodarea i programarea l rgimii de band , pentru c jum tate din micro-opera iisunt generate pentru instruc iuni vectoriale de 128 bi i (vezi figura 2.41).

Fig. 2.41. Configura ia de procesare vectorial real pe 128 bi i.

Pipeline-ulIntel Core are un pipeline realizat în 14 stagii, la fel de lung ca la Power PC

970, aproximativ jum tate din cel de la Pentium 4 Prescott (~ 30 etape) i pu in mailung decât cel de la P6 (12 etape). Aceasta înseamn c Intel Core este proiectatpentru o cre tere lent a vitezei de ceas i nu scaleaz la fel de rapid ca Pentium 4.

Fereastra de instruc iuniDeoarece partea din spate este mult mai lat decât a predecesorilor, buffer-ul

de reorganizare (Reorder Buffer, ROB) a crescut la 96 de intr ri, de la 40 cât aveaPentium M, iar sta ia de rezervare (Reservation Station, RS) a fost m rit .

Fereastra de instruc iuni din Intel Core a fost m rit nu numai fizic (ROB +RS), ci i virtual. Macro-fuziunea i micro-opera iile (descrise anterior), permit luiIntel Core s re in mai multe instruc iuni cu un num r mai mic de resursehardware.

ARHITECTURA SISTEMELOR DE CALCUL62

Deoarece l imea execu iei a fost m rit considerabil, vechiul hardware dedecodare al lui P6 ar fi fost inadecvat pentru a ine restul procesorului ocupat cumicro-opera ii. Intel a trebuit s m reasc rata de decodare, în a a fel încât mai multemicro-opera ii/ciclu s ajung la final. Primul lucru pe care l-a f cut a fost s adaugeînc un decodor simplu i rapid, ceea ce înseamn c decodorul hardware poatetrimite pân la 7 instruc iuni pe ciclu în coada de a teptare ROB (vezi figura 2.42).

Fig. 2.42. Structura hardware pentru decodarea instruc iunilor din arhitectura Intel Core.

AMD Opteron Dual-coreÎn figura 2.43 este reprezentat arhitectura simplificat a procesorului

Opteron Dual-core.

Fig. 2.43. Arhitectura AMD Opteron Dual-core.

Page 28: Arhitectura Sistemelor de Calcul-ASC

Tipuri de arhitecturi 63

Tehnologic vorbind, AMD nu a realizat doar o simpl alipire a unei perechide nuclee K8 pe o bucat de siliciu, ci a efectuat o integrare la nivelul de baz ,astfel încât cele dou nuclee s poat ac iona împreun mai eficient. Fiecare dintrenucleele K8 are propriul s u cache L2, independent, încorporat, dar cele dounuclee împart o coad comun a cererilor de sistem, un controler de memorie DDRde tip dual-channel i un set de leg turi HyperTransport cu mediul exterior.

Accesul la resursele I/O este adjudecat printr-o re ea crossbar sau printr-unswitch, astfel încât fiecare CPU poate comunica direct i eficient cu memoria saucu dispozitivele I/O. În unele privin e, Opteron Dual-core se comport foarteasem tor unui sistem cu multiprocesare simetric on-chip, transferând date internîntre cele dou nuclee. Cu toate acestea, pentru restul infrastructurii I/O asistemului, Opteron Dual-core pare asemenea versiunii mononucleu.

Arhitectura de sistem pentru Opteron este foarte diferit de cea acompetitorului s u principal, Intel Xeon. Arhitectura AMD Direct Connect a fostsupra-dimensionat pentru procesorul Opteron mononucleu, anticipând viitoruldual-core. Fiecare procesor (mono- sau binucleu) are propriul s u controler dememorie DDR local de tip dual-channel, iar procesoarele comunic între ele i cucipurile I/O prin leg turi HyperTransport punct-la-punct, la frecven a de 1 GHz.

rgimea total de band posibil prin cei 940 de pini ai procesorului Opteron 875este de 30,4 GB/s. Cu o leg tur HyperTransport mai pu in, procesorul Opteron275 poate atinge, teoretic, viteza de 22,4 GB/s.

Prin contrast, procesoarele Xeon actuale au o magistral front-side (FSB)partajat , pe care lucreaz cipul Northbridge (cu controler de memorie) i ambeleprocesoare. La frecven a de 800 MHz, l rgimea total de band este de 6,4 GB/s,ceea ce poate fi un bottleneck în anumite situa ii.

AMD Phenom Triple-coreAMD are în produc ie un procesor cu trei motoare de procesare, proiectul

numindu-se AMD Phenom 3 chip (vezi figura 2.44).

Fig. 2.44. Arhitectura AMD Phenom Triple-core.

ARHITECTURA SISTEMELOR DE CALCUL64

Noul microprocesor triple-core prezint propriul design i nu este un cipquad-core cu un core dezactivat. Totu i, cipurile includ 2 MB de cache L3 partajati beneficiaz de caracteristicile micro-arhitecturii K10, cum sunt setul de

instruc iuni SSE4A i unit ile de prelucrare în virgul mobil (FPU) de 128 bi i.Evident, cipurile dispun de posibilit i avansate de gestiune a puterii.

Potrivit unor estim ri ale laboratoarelor X-bit, fiecare motor al procesoarelorquad-core AMD Opteron/Phenom ocup aproximativ 13% din aria fizic acapsulei. Date fiind întreaga dimensiune de 285 mm² i num rul de aproximativ218 cipuri candidate ob inute din fiecare bucat de 300 mm, este neobi nuit faptul

AMD a decis dezvoltarea unui design triple-core cu aria fizic de 247 mm² i250 de cipuri candidate ob inute de pe o bucat de 300 mm. Tehnic, AMD poaterealiza u or microprocesoare cu un num r impar de motoare de procesare datoritarhitecturii sale Direct Connect. Cu versiunile sale Phenom i Athlon 64 2, AMDare de comb tut procesoarele Intel Core 2 (dual-core i quad-core).

Intel i AMD Quad-coreCa replic la lansarea CPU-urilor quad-core de la Intel, AMD a lansat

propria platform , Quad FX. Aceast platform este un sistem de multiprocesaresimetric , utilizând dou CPU-uri Athlon 64 FX dual-core. De aceea, un calculatorpersonal Quad FX are dou procesoare fizice dual-core care lucreaz în paralel,având în total, în sistem, patru nuclee CPU. Aceste dou CPU-uri suntinterconectate printr-o magistral coerent dedicat tehnologiei HyperTransport.

În CPU-urile quad-core de la Intel, nucleele sunt organizate în perechi.Nucleele fiec rei perechi pot interschimba informa ii direct (la fel se întâmpl laAMD dual-core i la Intel Core 2 Duo), dar pentru a schimba informa ii cu unuldintre nucleele localizate în cealalt pereche trebuie s acceseze magistrala externa CPU, ceea ce se întâmpl pe platforma Quad FX, unde CPU-urile comunic întreele folosind magistrala extern coerent HyperTransport.

Diferen a dintre platforma Quad FX i arhitectura utilizat de c treprocesoarele Intel quad-core se poate remarca în figurile 2.45 i 2.46.

Comparând cele dou arhitecturi, se poate observa c platforma Quad FXde ine un avantaj în ceea ce prive te accesul la memorie. Magistrala extern aCPU-ului Intel quad-core (Front Side Bus, FSB) este utilizat pentru a accesamemoria RAM i alte dispozitive prezente pe PC, precum i pentru comunicareaîntre perechile de nuclee, cu viteze de pân la 8 GB/s.

Pe platforma Quad FX, CPU-urile folosesc un canal de comunica ie dedicat(magistrala coerent HyperTransport), care transfer date cu pân la 4 GB/s înfiecare direc ie. Magistrala HyperTransport ofer dou canale de comunica ie, câteunul pentru fiecare direc ie. În procesoarele AMD, controlerul de memorie esteîncorporat în CPU i, ca urmare, memoria este accesat utilizând o magistraldedicat , separat de canalul folosit de c tre CPU pentru a accesa restul PC-ului.

Datorit faptului c platforma Quad FX folose te o arhitectur demultiprocesare simetric , fiecare CPU î i acceseaz propria memorie RAM.Procesoarele utilizate pe platforma Quad FX pot accesa, de asemenea, memoriacontrolat de un alt CPU.

Page 29: Arhitectura Sistemelor de Calcul-ASC

Tipuri de arhitecturi 65

Fig. 2.45. Arhitectura Intel quad-core

Fig. 2.46. Arhitectura AMD Quad FX.

În ultima vreme, câ tig popularitate sistemele de tip embedded. Este vorbadespre conectarea în paralel a mai multor procesoare specializate, pe aceea i plac ,cu un scop bine definit. De exemplu, prelucrarea unui semnal audio (codare idecodare) în format mp3. Procesorul este adaptat s realizeze un num r restrâns deopera ii specifice, iar DSP-urile sunt capabile s ruleze aplica ii de sine st toare,care s ofere interfa cu utilizatorul, suport pentru memorare i transmitere.

3. STRUCTURA UNUI CALCULATOR

3.1. Unitatea central (procesorul)

Unitatea central (UC) este creierul calculatorului. Rolul UC este de execu iea programelor stocate în memoria principal , execu ie realizat în trei etape:

extragerea instruc iunilor; decodificarea instruc iunilor; execu ia lor propriu-zis .

Fig. 3.1. Schema bloc a unui calculator.

Unitatea de comand i control urm re te ordinea de execu ie a instruc iunilorunui program i controleaz întreaga activitate a unit ii centrale, astfel:

interpreteaz instruc iunile programului din memoria intern i comandcircuitele s execute instruc iunile;

comand i controleaz transferul de date dintre memoria intern idispozitivele periferice.

Unitatea aritmetic i logic (ALU) implementeaz func iile logice, iexecut opera iile aritmetice elementare: adunare, sc dere, înmul ire, împ ire.

Registrele interne pot fi: de uz general; cu destina ie specific .

Page 30: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 67

Registrele de uz general stocheaz valorile intermediare ale calculelor.Registrele cu destina ie specific – contorul de program (program counter, PC)indic adresa noii instruc iuni care urmeaz a fi executat precum i adresainstruc iunii curente care se execut .

3.1.1. Execu ia unei instruc iuni

Timpul necesar execu iei unei instruc iuni se nume te ciclu instruc iune.Etapele în execu ia unei instruc iuni sunt:1. înc rcarea instruc iunii din memorie în registrul de instruc iuni (fetch);2. actualizarea PC pentru a indica urm toarea instruc iune care va fi executat ;3. decodificarea instruc iunii din registrul de instruc iuni;4. localizarea în memorie a eventualelor date utilizate de instruc iune;5. înc rcarea datelor (dac este necesar) în registrele interne ale UC;6. execu ia efectiv a instruc iunii;7. stocarea rezultatelor la destina ia corespunz toare;8. întoarcerea la etapa nr. 1 pentru a executa urm toarea instruc iune.

3.1.2. Tipuri de unit i centrale

Criteriul dup care se clasific unit ile centrale este cel al setului deinstruc iuni:

procesoare CISC (Complex Instruction Set Computer); procesoare RISC (Reduced Instruction Set Computer).În ultimul timp, s-a produs migrarea de la CISC la RISC.

3.1.2.1. Performan a unit ii centralePerforman a UC se refer întotdeauna la o aplica ie dat , existând mai multe

moduri de evaluare a performan ei: mips (mega instructions per second): milioane de instruc iuni pe secund ; flops (floating point operations per second): opera ii în virgul mobil

executate pe secund (exprimat uzual în Mflops sau Gflops); timpul în care un anumit procesor poate s rezolve o anumit secven

de program (o sarcin particular ).Performan a este produsul a trei factori: num rul de instruc iuni executate în cazul unei aplica ii date (Ni); num rul mediu de perioade de ceas necesare pentru execu ia unei

instruc iuni (Np); durata unei perioade de ceas (Tc).Valoarea Np se exprim în cicluri de ceas/instruc iune, iar Tc se exprim în

timp/ciclu de ceas.

ARHITECTURA SISTEMELOR DE CALCUL68

Rezult c :

P(t) = Ni Np Tc (sec). (3.1)

Reducerea num rului de instruc iuni Ni se face optimizând compilatorul iutilizând o arhitectur adecvat acestui compilator.

Np se reduce fie optimizând compilatorul, aceasta însemnând utilizarea unorinstruc iuni de durat mai scurt , fie utilizând o arhitectur paralel , deci utilizareamai multor instruc iuni simultan. La optimizarea Np, apar limit ri tehnologice legatede implementarea procesorului.

Durata Tc ine exclusiv de o tehnologie avansat .

3.1.2.2. Indici de performanPân în 1992, se utiliza urm toarea pereche de m rimi: Whetstones i

Dhrystones, care ar tau practic viteza UC. Începând din 1992, s-a trecut la al iindici de m surare a performan ei, i anume indicii SPEC, cu care s-a înlocuitperechea anterioar .

Standard Performance Evaluation Corporation (SPEC) este o organiza ienon-profit care a luat na tere în 1988 i are ca scop asigurarea testelor corecte iutile pentru a face diferen între sistemele de pe pia . Testele SPEC sunt largfolosite actualmente în evaluarea performan ei calculatoarelor, rezultatele fiindafi ate pe site-ul SPEC. Acestea poart denumirea de note SPEC (SPECmarks).

Testele sunt concepute pentru a realiza situa ii din via a real . De exemplu,SPECweb2005, realizeaz un test al performan ei serverului de web prin mai multetipuri de cereri paralele HTTP. Performan a microprocesorului este testat prinrularea câtorva programe (de exemplu, compilatoare gcc) sau printr-un joc de ah.Diverse cerin e sunt atribuite în func ie de importan a perceput , pentru a rezultaun singur rezultat final. Testele SPEC au fost actualizate în repetate rânduri.

Aceste teste sunt scrise pe o platform de limbaj de programare neutr (deobicei, C sau Fortran), iar p ile interesate pot compila codul folosind metodadorit , dar f a schimba codul. Produc torii au lucrat la îmbun ireacompilatoarelor pentru a realiza o cât mai bun acurate e a diferitelor teste SPEC.

Teste SPEC actuale sunt: SPEC CPU2006 – combin performan ele microprocesorului, memoriei

i compilatorului; CINT2006 sau SPECint – testeaz aritmetica numerelor întregi, folosind

compilatoare, interpretoare, procesoare de text, programe de ah; CFP2006 sau SPECfp, testeaz performan a în virgul mobil , cu

simul ri fizice, grafic 3D, procesare de imagine, chimie computa ional ; SPECjms2007 – testeaz performan a serviciului de mesaje Java; SPECweb2005 – testeaz performan a în PHP/JSP; SPECviewperf – testeaz performan a unui sistem 3D OpenGL, cu

ajutorul diferitelor sarcini de randare din aplica ii reale; SPECapc – testeaz performan a aplica iilor 3D cunoscute unui sistem dat;

Page 31: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 69

SPEC OMP2001 V3.2 – evalueaz performan elor sistemului paralel,folosind aplica ii OpenMP;

SPEC MPI2007 – evalueaz performan ele sistemelor paralele, folosindaplica ii MPI (Message Passing Interface);

SPECjvm98 – evalueaz performan a unui sistem client, care ruleaz oma in virtual Java;

SPECjAppServer2004 – evalueaz performan a aplica iilor bazate peJava 2 Enterprise Editition (J2EE);

SPEC jbb2005 – evalueaz performan a serverului Java, prin emulareaunui sistem client-server;

SPEC MAIL 2001 – evalueaz performan a unui server de mail, cutestarea protocoalelor POP i SMTP;

SPECimap2003 – evalueaz performan a unui server de mail la nivel deîntreprindere, testând protocoalele IMAP4 i SMTP;

SPECpower_ssj2008 – testeaz eficien a energetic a sistemelor server; SPEC SFS97_R1 – evalueaz viteza de transfer a serverului de fi iere

NFS i timpul de r spuns; SPECappPlatform – evalueaz performan a platformelor web (Java EE

i NET). Nota ob inut de sistemul testat se ob ine în modul urm tor.

Pentru SPECint, se ruleaz 6 programe care folosesc numere întregi i seob in astfel 6 note, din care nota final rezult prin mediere geometric .

Pentru SPECfp, se ruleaz 12 programe care folosesc virgul mobil (12programe în Fortran i dou programe în C), din care se ob in 14 note. Nota finalse ob ine tot prin media geometric .

3.1.3. Organizarea unit ii centrale

Datele care trebuie prelucrate sunt aduse din registrele interne în registrele deintrare ale ALU, unde acestea r mân în timpul în care ALU face opera iunea decalcul aritmetic i logic. Rezultatul calculului preluat de registrele de ie ire ale ALUeste stocat într-unul din registrele de uz general.

Exist trei tipuri de instruc iuni (vezi figura 3.2): instruc iuni registre-memorie: se încarc date din memorie în registre

i viceversa. Datele pot fi folosite mai departe de alte instruc iuni sauchiar de instruc iunile respective. În acest ultim caz, rezultatul este depusîn registre;

instruc iuni registre-registre: mut operanzii din registrul de la intrareaALU, execut asupra lor o anumit opera ie i depun din nou operanziiîn registru;

instruc iuni memorie-memorie: preiau operanzii din memorie, îiplaseaz în registrul de intrare ALU, se execut o anumit opera ie i sestocheaz rezultatul în memorie.

ARHITECTURA SISTEMELOR DE CALCUL70

Fig. 3.2. Schema unit ii centrale.

3.2. Memoria

Memoria reprezint acea parte a calculatorului în care sunt stocateprogramele i datele. Practic, de aici procesorul preia datele de care are nevoie itot aici scrie rezultatul. Unitatea de memorie este o cifr binar care poate luanumai dou valori: 0 sau 1.

Microprocesorul are capacitatea de a memora atât datele care urmeaz a fiprelucrate, cât i rezultatele intermediare. Se observ c rolul s u principal este de aprelucra i transmite datele. Capacitatea de memorare este mic , neputând stoca, deexemplu, programe.

Sistemul de memorie al unui calculator reprezint ansamblul unit ilor dememorie, împreun cu algoritmii necesari pentru controlul transferurilor imemorarea datelor, algoritmi care pot fi implementa i hardware sau software.Sistemul de memorie include atât loca iile de memorie propriu-zise, cât i circuitelenecesare pentru adresarea loca iilor i controlul opera iilor de citire i scriere. Oparte din aceste circuite se g sesc în unitatea de memorie respectiv , altele suntexterne, fiind de obicei integrate în controlerul unit ii de memorie.

Obiectivul principal în proiectarea oric rui sistem de memorie este realizareaunei capacit i de memorare adecvate sistemului de calcul, cu un nivel acceptabilde performan e, la un cost rezonabil. Trebuie subliniat faptul c nu întotdeaunaobiectivul este acela de a ob ine o capacitate de memorare cât mai mare.

Page 32: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 71

3.2.1. Caracteristicile unit ilor de memorie

Capacitatea de memorare reprezint num rul loca iilor (celulelor) dememorie con inute de o unitate de memorie. Aceasta depinde de tehnologia defabrica ie i se exprim în num r de cuvinte de informa ie memorat (cuv),dimensiunea cuvântului fiind diferit de la un calculator la altul.

Timpul de acces la o unitate de memorie (tA) este timpul necesar localiz riiunei celule de memorie pentru transferul de date la/de la loca ia de memorierespectiv . Acesta reprezint intervalul de timp calculat din momentul în care ounitate master lanseaz o comand c tre o unitate de memorie i pân în momentulîn care informa ia este transferat în sensul dorit.

Rata de acces (rA) este inversa timpului de acces, fiind exprimat în cuvintepe secund :

rA =At1

[cuv/s]. (3.2)

Timpul de ciclu la o unitate de memorie (tC) este timpul minim între douaccese succesive i reprezint timpul din momentul în care o unitate masterlanseaz o comand spre unitatea de memorie i pân când poate lansa o noucomand la aceea i unitate de memorie. Uzual, tC > tA, diferen a lor numindu-setimp de revenire (tR = tC – tA). Acesta reprezint timpul minim necesar pentruinactivarea primei comenzi, pân la activarea celei de-a doua.

Rata de transfer (rT) este inversa timpului de ciclu i reprezint cantitateamaxim de informa ie (exprimat în cuvinte pe secund ) care poate fi transferatla/de la memorie într-o secund :

rT =Ct1

[cuv/s]. (3.3)

Costul total al unit ii de memorie (CT) include, pe lâng costul celulelorde memorie propriu-zise, costul circuitelor de acces la aceste celule. Pentrucompararea diverselor unit i de memorie între ele, se utilizeaz costul unitar(CU), care reprezint costul de memorare a unui cuvânt de informa ie. Costul unitarse determin prin raportarea costului total (CT) la capacitatea de memorare (CM):

CU =CMCT [cost/cuv]. (3.4)

Cu cât memoria este mai rapid , cu atât costul unitar este mai mare.Modul de acces la loca iile unit ii de memorie arat ordinea în care

informa ia memorat poate fi accesat . Acesta poate fi serial sau paralel.

ARHITECTURA SISTEMELOR DE CALCUL72

Dac loca iile de memorie pot fi accesate în orice ordine, iar timpul de acceseste independent de loca ia accesat , atunci accesul este aleator, iar unitatea dememorie se nume te memorie cu acces aleator (Random Access Memory, RAM).În general, memoriile semiconductoare sunt memorii cu acces aleator.

Prin ierarhizarea unit ilor de memorie, blocurile de date cu probabilitateacea mai mare de accesare sunt aduse pe niveluri superioare, mai aproape deunitatea central (localizare spa ial ). Dintre acestea, datele cele mai recentaccesate sunt p strate în apropierea procesorului (localizare temporal ).

3.2.2. Ierarhizarea memoriei

Pornind de la func iile realizate de fiecare tip de memorie, de la rolul i loculocupat în sistemul de calcul, se pot distinge mai multe categorii de memorii,ilustrate în figura 3.3.

Fig. 3.3. Ierarhizarea memoriei.

3.2.2.1. Registrele de memorieReprezint dispozitivele de memorie cele mai rapide, dar i cele mai scumpe.

Sunt utilizate de procesor, fiind de dou feluri: cu destina ie specific i de uzgeneral.

Registrele cu destina ie specific au un rol precis i memoreaz numaianumite tipuri de informa ie (de exemplu, contorul de program). Din acest motiv,pentru ca procesorul s realizeze o anumit opera ie, este accesat un anumitregistru, i anume, acela care memoreaz tipul de informa ie dorit. În acest fel, nueste necesar ca registrul s fie accesat prin adres , fapt care m re te viteza de accesla informa ia memorat în registre.

Registrele de uz general sunt registre nespecializate, care pot fi utilizateexplicit prin instruc iuni-program. Capacitatea registrului depinde de tipulprocesorului i nu dep te de obicei lungimea cuvântului de memorie. Num rulde registre de memorie este mic, utilizându-se de regul 16–20 registre.

3.2.2.2. Memoria internCon ine programele i datele pentru toate procesele în curs de execu ie în

sistemul de calcul. Cât timp func ioneaz procesorul, el cite te i scrie date din/în

Page 33: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 73

aceasta memorie. Memoria intern este o memorie read-write cu acces direct(RAM). Ea trebuie s aib un timp de acces redus, pentru a nu întârzia activitateaprocesorului. Tipurile de memorie din aceast categorie sunt:

Memoriile DRAM (Dynamic Random Access Memory) sunt memoriiRAM dinamice, în care, pentru a se p stra informa ia, trebuie restabilitperiodic sarcina electric cu care a fost înc rcat condensatorul circuituluide memorie. Pentru aceasta, este necesar un circuit de reîmprosp tare amemoriei (refresh).

Memoriile SRAM (Static Random Access Memory) sunt memorii RAMstatice, realizate cu circuite basculante bistabile de memorie, care

streaz informa ia atât timp cât sistemul este sub tensiune.La calculatoarele PC, cipurile de memorie sunt asamblate pe pl ci de

memorie organizate în bancuri de memorie. Aceste bancuri se instaleaz în placade baz a PC-ului, în soclurile rezervate memoriei interne. Acest mecanism permitemodificarea dimensiunii memoriei interne a PC-ului, prin ad ugarea de noi bancuride memorie în locurile disponibile sau prin schimbarea bancurilor cu altele decapacitate mai mare.

Memoria principal sau memoria primar reprezint memoria de lucru asistemului de calcul, fiind realizat cu circuite integrate de memorie DRAM iavând o capacitate de memorare relativ mare (sute de MB). Memoria principal

streaz datele active, care vor fi apelate de c tre procesor, dar care nu suntimediat necesare acestuia. Datele devin active prin transferarea lor din memoriasecundar în memoria principal , fiind memorate sub form de blocuri de date, înzone de memorie, proprii fiec rui program. Viteza de lucru a memoriei principaleeste mult mai mic decât cea a registrelor procesorului (cu 2–3 ordine de m rime),având timpi de acces aleator de zeci pân la sute de ns.

Memoria nevolatil cu acces aleatoriu (NVRAM) este cea care stocheazdate atunci când calculatorul este închis sau nu mai are energie. Memoria NVRAMeste utilizat pentru a men ine informa iile privind configura ia calculatorului, cumar fi data, ora i alte op iuni de pornire care pot fi setate de utilizator.

Memoria cache este o memorie specializat , utilizat în scopul sc deriitimpului de acces la datele din memoria intern . Are capacitate mic i vitez mare,fiind inserat logic între procesor i memoria principal . Constructiv, este o memoriemai rapid decât memoria principal , construit , de regul , din circuite SRAM.

Memoria cache are timpul de acces de 2–10 ori mai mic (ns) decât cel almemoriei primare, fiind îns i de câteva ori mai scump . Se urm re te ca procesorul

lucreze cât mai mult timp cu memoria cache, i nu cu memoria principal .Pentru o memorie cache bine implementat , procesorul lucreaz cu aceasta circa70–90 % din timpul total de lucru cu memoria. i acest tip de memorie poate fiextins prin ad ugarea de cipuri suplimentare. Utilizarea memoriei cache se bazeazpe dou caracteristici ale execu iei programelor în sistemele de calcul clasice:

1. programele tind s utilizeze date i instruc iuni situate unele lâng altelesau în zone apropiate (principiul vecin ii);

2. programele folosesc în mod repetat adresarea acelora i blocuri de memorie.

ARHITECTURA SISTEMELOR DE CALCUL74

Plecând de la aceste constat ri, memoria cache con ine la un moment datcópii ale unor date din memoria principal . Înainte de orice acces la memoriaprincipal , se verific dac nu cumva informa ia c utat se g se te în memoriacache. Dac aceasta exist , se preia de acolo cu o vitez superioar .

Memoria intermediar , numit i memorie cache pentru supor i externi saumemorie cache de disc (Disk-Cached Memory), este plasat între memoriaprincipal i memoria secundar , ac ionând într-o manier similar memorieicache. Are rol de memorie tampon, care p streaz blocurile de date cel mai recentaccesate de un program, duplic ri ale celor din memoria secundar .

3.2.2.3. Memoria externPentru a utiliza datele memorate în memoria extern , acestea trebuie aduse

mai întâi în memoria principal . Prin compara ie cu memoria intern , memoriaextern se caracterizeaz prin vitez de acces mai sc zut , cost mai redus,capacitate mai mare, având rolul de a m ri spa iul de memorare al unui sistem decalcul. În memoria extern sunt stocate i programele cu ajutorul c rora se realizeazprelucrarea datelor. Accesul la memoria extern nu se face direct, ci prin intermediulmemoriei interne. În compara ie cu memoria intern , memoria extern este:

nevolatil , cu acces pozi ional i timp de acces mai mare, cu vitez de transfer mai mic , cu cost mai redus, cu capacitate mult mai mare, de tip read-write, cu densitate de memorare variabil de la un echipament la altul i de la

un suport la altul (magnetic, optic, semiconductor).Memoria secundar este organizat pe un suport extern de memorie, de

regul disc magnetic, i are rolul de a realiza o extindere a memoriei principale,conform conceptului de memorie virtual , care se refer la capacitatea procesoruluide a utiliza un spa iu de memorie extern pentru a simula o capacitate mai mare amemoriei interne disponibile. Altfel spus, este vorba de capacitatea procesorului de aaccesa un spa iu de adrese care dep te spa iul de adrese al memoriei principale.Acest concept a ap rut înc din anul 1960, iar la PC este disponibil începând cu seria 286.

Memoria suplimentar poate fi de mai multe tipuri: memorie expandat ,memorie extins i memorie de arhivare sau ter iar .

Memoria expandat este o memorie suplimentar la calculatoarele de tipulPC, pe care utilizatorul o acceseaz prin intermediul mecanismului EMS (ExtendedMemory Specification). Este alc tuit din bancuri de memorie de 64 KB RAM ieste gestionat de un program-sistem specializat. numit EMM386.EXE (în sistemulde operare MS-DOS).

Memoria extins este memoria suplimentar accesibil utilizatorului prinmecanismul XMS (eXtended Memory Specification), care poate fi implementat peprocesoare având cuvinte de adres de 32 bi i. Programele trebuie scrise cautilizând special aceste mecanisme. Programul-sistem care gestioneaz acest tip dememorie în sistemul de operare MS-DOS este HIMEM.SYS.

Page 34: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 75

Memoria de arhivare este acea parte a memoriei externe care asigurstocarea datelor preluate din mediul extern pe o perioad de timp nedeterminat iîn volume semnificative.

Memoria de arhivare sau memoria ter iar este o memorie nevolatil dedimensiuni foarte mari, dar i cu timpi de acces foarte mari (zeci de secunde).

streaz date pasive, stocate doar în scop de arhivare, pe o perioad de timpnedeterminat i în volume semnificative. Accesul la aceste date se face foarte rar.Memoria ter iar este realizat cu unit i de memorare pe suport deta abil, optic(CD-ROM, DVD-ROM), magnetic (band sau caset magnetic ) sausemiconductor (stick-uri i card-uri de memorie). Trebuie subliniat faptul cmemoria ter iar reprezint colec ia de discuri i casete existente, i nu unit ile dememorie propriu-zise.

3.2.3. Memoria RAM

Circuitele integrate de memorie sunt memorii semiconductoare, realizate îndiverse tehnologii de fabrica ie (bipolare sau MOS). Acestea sunt de mai multetipuri, cu diferite raporturi performan e/cost, având domenii specifice de utilizare:memoriile cu acces aleator (RAM) i memoriile cu acces pentru citire (ROM).

O memorie cu acces aleator (RAM = Random Access Memory) este aceamemorie la care loca iile de memorie pot fi accesate în orice ordine, iar timpul deacces nu depinde de loca ia accesat . Memoriile RAM pot fi de dou tipuri: SRAM(Static RAM) i DRAM (Dynamic RAM).

3.2.3.1. Memoria SRAMMemoria SRAM (Static RAM) este o memorie în care informa ia se

memoreaz într-un mod stabil, pe ambele niveluri logice, atât timp cât memoria estealimentat . Este realizat în tehnologii rapide (bipolare sau CHMOS =Complementary High-density MOS), cu timpi de acces foarte mici (ns). Fiind omemorie care poate fi i citit i scris , SRAM are magistrala bidirec ional de datei dou cicluri diferite de memorie: ciclul de citire i ciclul de scriere, identificate de

semnalul WE , activ pe 0L. Simbolul memoriei SRAM este ilustrat în figura 3.4.

Fig. 3.4. Simbolul memoriei SRAM

ARHITECTURA SISTEMELOR DE CALCUL76

Memoria SRAM poate fi de dou tipuri: Memoria SRAM asincron nu necesit semnal de ceas pentru

sincronizarea cu unitatea master. Memoriile asincrone sunt mai lentedecât cele sincrone, dar sunt mai ieftine i au un consum de energie mic.Aceste memorii sunt realizate într-o gam foarte divers de performan e,cu timpi de acces care variaz de la 50–70 ns, pân la 10–15 ns.

Memoria SRAM sincron necesit un semnal de ceas pentru validareasemnalelor de control. Ceasul primit din exterior permite operareamemoriei, sincron cu unitatea master. Memoriile sincrone sunt foarterapide, cu timp de acces sub 10 ns, pot func iona la tensiuni dealimentare mici, dar sunt scumpe. Ele pot fi de mai multe tipuri: PBS(Pipelined Burst Synchronous), FTS (Flow Through Synchronous) sauZBT (Zero Bus Turnaround) SRAM.

În general, sistemele de calcul simple au memoria RAM de lucru formatdoar din circuite de memorie SRAM asincron , cu capacit i mici, de zeci-sute deKB, i care memoreaz cuvinte de 8 bi i. Sistemele performante, care necesitviteze i capacit i de memorare mari, folosesc memorii SRAM rapide pentruimplementarea memoriei cache.

Din punct de vedere constructiv, cele dou tipuri de memorii SRAM suntsimilare. Ele difer doar prin algoritmul de transfer al datelor i, implicit, prinperforman e. De aceea, în cele ce urmeaz vor fi analizate elementele comune,definitorii pentru SRAM, iar exemplific rile vor fi realizate pentru memoriaasincron .

Schema bloc a memoriei SRAM este ilustrat în figura 3.5.

Fig. 3.5. Schema bloc a memoriei SRAM.

Page 35: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 77

3.2.3.2. Memoria DRAMMemoria DRAM (Dynamic RAM) este o memorie volatil cu acces aleator,

care memoreaz informa ia în mod dinamic. Este realizat în tehnologie CMOS(Complementary MOS), cu consum de energie foarte mic. Datoritparticularit ilor constructive ale celulelor de memorie, informa ia 0L estememorat stabil, dar informa ia 1L se pierde în timp i necesit împrosp tareaperiodic a memoriei, de unde i denumirea acesteia.

Indiferent de modul de realizare, memoria DRAM este mult mai lent decâtmemoria SRAM, din cauza mecanismului specific de memorare a datelor. Timpulde acces la DRAM este de 2–10 ori mai mare decât la SRAM, i variaz în func iede tipul accesului la memorie.

Astfel, în acces aleator, timpul de acces este mare (zeci de ns), îns scadefoarte mult (în func ie de tipul memoriei DRAM), dac se restric ioneaz accesul înmodul pagin (vezi paragraful 3.2.9 – FPM), putând ajunge la doar de dou ori maimare decât cel al memoriei SRAM.

Celula de memorie este mult mai mic decât la memoria SRAM, ceea cepermite realizarea unor densit i mari de integrare. Circuitele de memorie DRAMau, prin urmare, capacit i de memorare mari, i, implicit, un num r mare de liniide adres . Simbolul memoriei DRAM este ilustrat în figura 3.6.

Fig. 3.6. Simbolul memoriei DRAM.

Memorarea datelor se bazeaz pe stocarea i transferul de sarcini electrice, inu pe mecanisme de comutare, ca în cazul memoriilor SRAM. Fiecare bit deinforma ie este memorat prin înc rcarea sau desc rcarea unui condensator. Cândcondensatorul este înc rcat, se spune c se memoreaz valoarea 1L, iar când acestaeste desc rcat, valoarea memorat este 0L. Fa de celula SRAM, mecanismul dememorare nu presupune consum de curent de la sursa de alimentare.

Schema bloc de baz a memoriei DRAM este trasat în figura 3.7.Celulele de memorie sunt dispuse într-o arie p trat sau dreptunghiular de

loca ii de memorie, fiecare loca ie memorând un cuvânt de m bi i, Semnalele decomand ac ioneaz prin intermediul logicii de control. Eventual, memoria DRAMpoate avea circuit intern de împrosp tare, care presupune un num tor de adresede rând i un ceas de timp real. În func ie de tipul memoriei DRAM, ciclurile deîmprosp tare pot fi realizate în trei moduri:

ARHITECTURA SISTEMELOR DE CALCUL78

Fig. 3.7. Schema bloc de baz a memoriei DRAM.

ROR (RAS Only Refresh) este o metod de împrosp tare din exterior,prin care se transmit memoriei adresa de rând (AR) i semnalul RAS ,

a se activa semnalul CAS. Unitatea master extern este anun atperiodic s fac refresh de c tre un ceas de timp real, care esteprogramat software de c tre sistemul de operare.

CBR (CAS Before RAS) este tot o metod de împrosp tare din exterior,prin care se transmit semnalele CAS i RAS , activate în aceastordine. În acest caz, memoria dispune de un num tor de adrese intern,pentru indicarea liniei care trebuie împrosp tat , f a fi nevoie detransmiterea adresei din exterior. De asemenea, perioada de repeti ie aciclurilor de refresh este determinat de un ceas de timp real extern.

Auto-împrosp tare cu ajutorul circuitelor interne memoriei DRAM. Îninterior, memoria con ine un num tor de adrese de rând, un ceas detimp real i o logic de control pentru generarea semnalelor CAS iRAS , conform metodei CBR.

Memoria DRAM poate fi de dou tipuri: asincron i sincron .Memoria DRAM asincron nu necesit semnal de ceas pentru

sincronizarea cu unitatea master apelant . Ca i la SRAM, memoriile DRAMasincrone sunt mai lente decât cele sincrone, dar sunt mai ieftine i au un consumde energie mai mic. Dintre memoriile DRAM asincrone, se pot enumera: FPM(Fast Page Mode), EDO (Extended Data Out) i BEDO (Burst EDO) DRAM. Latoate memoriile, accesul aleator este lent. În acces aleator, timpul de acces fa deRAS (tRAC) este de 50–70 ns, iar timpul de ciclu (tC) este de 90–120 ns.

Page 36: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 79

O alt categorie de memorii DRAM este cea care utilizeaz o interfasincron . Prin implementarea unei interfe e sincrone, s-au eliminat perioadele de

teptare de c tre procesor, ob inându-se, de asemenea, unele avantajesuplimentare. În cazul func ion rii sincrone, se memoreaz anumite date de laprocesor în circuitele latch ale memoriei DRAM, sub controlul ceasului de sistem.Aceste circuite p streaz adresele, datele i semnalele de control, ceea ce permiteprocesorului s execute alte opera ii. Dup un num r specific de cicluri de ceas,datele devin disponibile i procesorul le poate citi de pe liniile de ie ire.

Un alt avantaj al unei interfe e sincrone este c ceasul sistemului estesingurul semnal de sincronizare care trebuie furnizat memoriei DRAM. Aceastaelimin necesitatea propag rii semnalelor multiple de sincronizare. Intr rile sunt deasemenea simplificate, deoarece semnalele de control, adresele i datele pot fimemorate f temporiz rile de setare i men inere monitorizate de procesor.Avantaje similare se ob in i pentru opera iile de ie ire.

O alt categorie este reprezentat de memoriile DRAM bazate peprotocoale. Categoriile precedente de memorii au linii separate de adrese, date icontrol, ceea ce limiteaz viteza la care poate func iona circuitul cu tehnologiacurent . Pentru eliminarea acestui dezavantaj, au fost proiectate memorii DRAMbazate pe protocoale, care implementeaz toate aceste semnale pe aceea imagistral . Cele mai cunoscute memorii din aceast categorie sunt DRDRAM(Direct Rambus) i SLDRAM (SyncLink) DRAM.

Memoria DRAM sincron necesit un semnal de ceas pentru validareasemnalelor de control. Ceasul primit din exterior permite operarea memorieisincron cu unitatea master. De i accesul aleator este comparativ cu cel almemoriilor asincrone, accesul în mod pagin este mult mai rapid.

Memoriile sincrone pot fi de mai multe tipuri: SDRAM (SynchronousDRAM), DDR SDRAM (Double Data Rate SDRAM), RDRAM (RambusDRAM), DRDRAM (Direct Rambus DRAM) etc. Accesul aleator este, deasemenea, lent, fiind pu in mai rapid decât la memoriile asincrone, datorittehnologiei (memoriile sincrone au ap rut ulterior). În acces aleator, tRAC este de40–60 ns, iar tC este de 80–110 ns. Accesul în mod pagin este mult mai rapid decâtla memoriile asincrone i depinde de frecven a semnalului de ceas de sincronizare.

3.2.4. Accesul la loca iile de memorie

În sistemele cu microprocesoare, modulele de memorie se conecteaz pemagistrala sistemului. Accesul la loca iile de memorie se realizeaz prin cicluri detransfer (cicluri ma in ), folosindu-se semnalele magistralei (de adres , date icomenzi). Modul de desf urare a diferitelor tipuri de cicluri de transfer sereprezint prin diagrame de timp (evolu ia în timp a semnalelor de pe magistralimplicate în transfer). Parametrii de timp ai unui ciclu de transfer depind de tipulprocesorului, de regulile de comunica ie pe magistral i de tipul circuitelor dememorie utilizate.

ARHITECTURA SISTEMELOR DE CALCUL80

Ciclu de citire din memorie Semnale de adres Adresa valid

S. de c-d MEMR\ (citire memorie) (înalt impedan ) Semnale de date Date valide (citite)

tAR

tMEMR

tC

Ciclu de scriere în memorie

Semnale de adres Adresa valid

S. de c-d MEMW\ (scriere memorie) (înalt impedan ) Semnale de date Date valide (scrise)

tAW tMEMW

tC

Fig. 3.8. Diagrame de citire/scriere memorie.

În figura 3.8, s-au reprezentat diagramele de transfer pentru un ciclu de citiredin memorie i un ciclu de scriere în memorie.

La proiectarea unui modul de memorie, trebuie s se in cont de urm toriiparametri de timp:

timpul de acces la citire (tAR) – intervalul de timp între momentul apari ieiadresei valide i momentul în care data citit este prezent pe liniile dedate. Uneori, timpul de acces se m soar în raport cu momentul apari ieisemnalului de comand MEMR\. Dac timpul de acces al circuitului dememorie folosit este mai mare decât timpul permis pe magistral , atunciinterfa a modulului de memorie trebuie s prelungeasc ciclul de transfer,prin dezactivarea pe un timp limitat a semnalului READY c tre procesor.

timpul de men inere a semnalului de comand MEMR\ activ (tMEMR). durata unui ciclu complet de citire sau scriere (tC). timpul de acces la scriere (tAW) – intervalul de timp între momentul în care

adresa este valid i momentul de generare a comenzii de scriere; înacela i mod ca la citire, dac circuitul de memorie folosit are un timp deacces mai mare, atunci interfa a modulului trebuie s dezactiveze temporarsemnalul READY pentru prelungirea ciclului de transfer. Momentulactiv rii semnalului de scriere se m soar i în raport cu momentul în caredata este prezent pe magistral .

timpul de men inere a semnalului de scriere (tMEMW), de obicei < tMEMR.

Page 37: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 81

Observa ii:1. la citire, data este generat dup apari ia semnalelor de adres i de

comand i se men ine un timp scurt dup dezactivarea acestora;2. la scriere, data trebuie s apar pe magistral înaintea semnalului de scriere

i s fie valid pe toat durata de activare a semnalului de comand ;3. timpul de acces acoper întârzierile care apar într-un modul de memorie

datorit circuitelor de decodificare a adresei i de selec ie aamplificatoarelor de intrare sau de ie ire;

4. proiectantul trebuie s aleag circuite de memorie cu parametri de timpacoperitori pentru restric iile impuse pe magistral i s ia în calculîntârzierile produse de circuitele de amplificare din interfa i de pemagistral .

Exist dou moduri de organizare a octe ilor în memorie, i anume:a) Big Endian;b) Little Endian.Exemplu. Se consider c se lucreaz pe cuvinte de 32 bi i. Cele dou

moduri de organizare a octe ilor sunt reprezentate în figura 3.9.

Fig. 3.9. Modurile de organizare a memoriei de tip Big Endian (a) i Little Endian (b).

Microprocesoarele PowerPC, Motorola 6800 i HP, folosesc o organizare aocte ilor în memorie de tip Big Endian, iar microprocesoarele DEC i Intel folosescmodul Little Endian.

ARHITECTURA SISTEMELOR DE CALCUL82

3.2.5. Metodologia de proiectare a memoriilor statice

Proiectarea unui modul de memorie se face pe baza unor parametrilor deproiectare impu i:

capacitatea memoriei; modul de organizare (unitatea elementar de acces la memorie: octet,

cuvânt, cuvânt dublu); tipul de magistral pe care se conecteaz (num rul semnalelor de date i

de adres , tipurile semnalelor de comand , parametrii de timp pentruciclurile de transfer);

amplasarea modulului de memorie în spa iul de adresare al procesorului,exprimat prin adresa sa de început (trebuie s fie un multiplu alcapacit ii modulului);

tipul de circuit de memorie disponibil (poate fi un parametru impus sauunul ales de proiectant);

alte cerin e speciale (de exemplu: accesul dual de pe dou magistrale,reîmprosp tarea controlat centralizat, implementarea unor mecanismede detec ie a erorilor etc.)

3.2.6. Metodologia de proiectare a memoriilor dinamice

Proiectarea memoriilor dinamice este, în principiu, similar proiect riimemoriilor statice, cu urm toarele amendamente:

trebuie s se adauge un mecanism de reîmprosp tare periodic amemoriei (refresh);

adresele trebuie multiplexate (generarea secven ial pe acelea i semnalea adresei de linie i a adresei de coloan );

trebuie s se genereze semnalul de validare a adresei de linie (RAS –Row Address Select) i semnalul de validare a adresei de coloan (CAS– Column Address Select);

selec ia circuitelor se face cu semnalele RAS i CAS (excep ie faccircuitele tip EDO-DRAM, cu semnal separat pentru selec ia circuitului).

Pentru circuitele RAM dinamice, multiplexarea în timp a adreselor a fostnecesar pentru a reduce num rul de pini ai circuitului de memorie i, implicit,dimensiunea acestuia. De notat c circuitele dinamice au o capacitate relativ mare,ceea ce impune un num r mare de linii de adres pentru selec ie. Organizareaintern a unei memorii dinamice este sub forma unei matrice, cu linii i coloane, iarselec ia unei loca ii se face prin specificarea adresei sale de linie i de coloan .

Reîmprosp tarea periodic a memoriei este necesar deoarece informa iaeste p strat un timp limitat dup ultima opera ie de citire sau scriere(condensatorul care stocheaz informa ia se descarc în timp).

În figurile 3.10, 3.11, 3.12 s-au reprezentat diagramele de timp pentru ciclurilede citire din memorie, scriere în memorie i, respectiv, reîmprosp tare a memoriei.

Page 38: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 83

Adrese Adres linie Adres coloan

RAS\

CAS\

WR\

Date Date cititetRAS CAS tCAS

tacces

tciclu

Fig. 3.10. Ciclu de citire din memorie.

Adrese Adres linie Adres coloan

RAS\

CAS\

WR\

Date Date de scristRAS CAS tCAS

tacces

tciclu

Fig. 3.11. Ciclu de scriere în memorie.

Adrese Adres linie

RAS\

CAS\

WR\

Fig. 3.12. Ciclu de reîmprosp tare a memoriei.

ARHITECTURA SISTEMELOR DE CALCUL84

Controlul procesului de reîmprosp tare poate s se fac la nivelul modululuide memorie sau centralizat la nivelul întregului sistem. Indiferent de metoda aleas ,proiectantul trebuie s se asigure c ciclurile de reîmprosp tare nu se suprapunpeste ciclurile obi nuite de citire sau scriere. Reîmprosp tarea se face simultan lanivelul unei linii întregi din matricea de memorie.

3.2.7. Modulele de memorie

Modulele de memorie sunt pl cu e cu circuite integrate care includ conectoriexterni, pentru a fi introduse în soclurile disponibile pe placa de baz . Modulele dememorie sunt prev zute cu conectori CELP (Card Edge Low Profile), având 30–83contacte pe fiecare parte a modulului. Conectorii afla i la baza modulelor de memoriepermit ad ugarea sau scoaterea lor de pe placa de baz f instrumente speciale.

În ceea ce prive te necesarul de memorie într-un sistem de calcul, este demnde re inut c prin cre terea dimensiunii acesteia sistemul devine mai rapid,deoarece microprocesorul cite te datele din RAM foarte repede, nea teptând citireade pe hard disk-ul mult mai lent, f a mai lua în considera ie drumul pe care l-aravea de parcurs datele pe magistralele la fel de lente. Acest aspect nu are îns uncaracter imperativ, deoarece s-a demonstrat c , începând de la 16–32 MB instala i,performan ele sistemului r mân aproape constante.

Totu i exist anumite aplica ii care cer resurse deosebite i îndeosebi RAM.Este cazul profesioni tilor care lucreaz mai ales în domeniul graficii (atât static –proiectare CAD, fotografie, design, cât i dinamic – anima ii, spoturi publicitare,filme, aplica ii tiin ifice, simul ri etc.), fiind necesari peste 256 MB de RAM. Unalt caz deosebit este al serverelor de re ea, unde necesarul de RAM este uria ipoate atinge valori peste 512 MB.

Privitor la modul în care microprocesorul opereaz fizic cu memoriainstalat , aceasta se plaseaz pe placa de baz în dou sau mai multe segmentefizice numite bancuri de memorie. Acestea sunt segmentele minime de memoriecare pot fi accesate de microprocesor, numerotate începând cu 0, fiecare bancavând unul sau mai multe sloturi pentru pl cu ele de memorie. Toate aceste bancurisunt v zute ca ni te por i spre memoria fizic instalat i au dimensiuni date de

imea magistralei microprocesorului (inclusiv bi ii de paritate), de exemplu, de 72de bi i pentru Pentium.

În sloturile aceluia i banc, se introduc întotdeauna memorii de acela i tip(având în special timpi de acces identici) i aceea i dimensiune, pentru a nuprovoca acces ri gre ite de memorie sau chiar blocarea sistemului de calcul.

Exemplu. Pentru un banc cu dou sloturi: 2 pl ci 1 MB sau 2 pl ci 2 MB.În bancuri diferite, se pot monta (teoretic) memorii diferite (ex.: 2 1 MB în

bancul 0 i 2 4 MB în bancul 1), dar, practic, este bine s se utilizeze valori pare.Exemplu. În loc de 2 4 MB + o pl cu de 1 MB ar trebui montate 2 4

MB + o pl cu de 2 MB), pentru a evita unele nepl ceri.În figura 3.13 este prezentat dispunerea bancurilor pe placa de baz .

Page 39: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 85

Fig. 3.13. Dispunerea bancurilor pe placa de baz .

Arhitectura dual-channelMotivul care a dus la dezvoltarea acestei arhitecturi a fost apari ia unui

bottleneck între procesor i memorie. Arhitectura dual-channel presupune otehnologie prin care se poate dubla transferul dintre RAM i controlerul dememorie. Controlerele de memorie care suport dual-channel utilizeaz pentrutransfer dou canale de date de 64 bi i, rezultând o l ime a c ii de date de 128 bi i.

Pentru a putea beneficia de avantajele arhitecturii dual-channel, este nevoie dedou sau mai multe module de memorie instalate în bancurile corespunz toare. Deobicei, aceste bancuri sunt colorate diferit pe placa de baz . Cele dou canale permitaccesul fiec rui modul de memorie la controler, crescând astfel l rgimea de band .Teoretic, nu este absolut necesar ca cele dou module de memorie s fie identice, daracest lucru este recomandat pentru a evita eventualele probleme de compatibilitate.De asemenea, se pot folosi un modul single-sided i unul double-sided, dar câ tigulde performan i fiabilitate depind foarte mult de controlerul de memorie.

În cazul în care pe o plac de baz exist dou perechi de socket-uri DIMMdin bancuri diferite (în general, culoarea socket-ului identific bancul c ruia acestaapar ine), se poate instala o pereche de dou module în bancul 0 i o pereche dealt capacitate în bancul 1, atât timp cât acestea func ioneaz la aceea i vitez . Înacest mod, sistemul va folosi arhitectura dual-channel.

Chiar i module care func ioneaz la frecven e diferite pot fi folosite înmodul dual-channel, dar, în acest caz, toate modulele vor rula la frecven a celuimai lent modul. De i arhitectura permite – cel pu in teoretic – toate acestecombina ii, foarte multe pl ci de baz au probleme cu anumite module de memoriedac urmeaz s le foloseasc în mod dual-channel. Tocmai din acest motiv esterecomandat s se utilizeze perechi identice de module.

Merit re inut faptul c arhitectura dual-channel este o tehnologie care inede pl cile de baz , i nu de memorii. Cu alte cuvinte, orice dou module dememorii compatibile vor suporta atât opera ii single-channel, cât i dual-channel.

ARHITECTURA SISTEMELOR DE CALCUL86

3.2.8. Formatele fizice de memorie

Pl cu e cu cipuri de memorie exist sub urm toarele tipuri de încapsul ri:DIP (Dual In-line Package)Este varianta clasic de încapsulare, în care cipul este prev zut cu un num r

de pini pe partea sa inferioar (de ambele p i), pini care vor fi introdu i în soclurispeciale (vezi figura 3.14). Dezavantajul este c , din cauza rezisten ei reduse pinii,se pot rupe destul de u or. Acest tip de încapsulare este prezent pe sisteme (i80286)i pl ci video vechi.

Fig. 3.14. Modul de memorie DIP.

SOJ (Small Outline J Lead)Este o metod de încapsulare mai modern , reg sit la modulele SIMM i

cipurile BIOS (uneori). Se aseam cu DIP-ul, cu diferen a c , în loc de pini, suntfolosite ni te terminale în form de J, care se prind prin îndoire (vezi figura 3.15).

Fig. 3.15. Modul de memorie SOJ.

TSOP (Thin Small Outline Package)Este o încapsulare de tip SMD (Surface Mounted Devices), dar care necesit

o suprafa foarte redus i, de aceea, este folosit pe pl ci PCMCIA, notebook-urii unele pl ci video (vezi figura 3.16).

Fig. 3.16. Modul de memorie TSOP.

Page 40: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 87

BGA (Ball Grid Array)Este o metod mai nou de încapsulare, în care cipurile sunt ata ate cu

ajutorul unor bilu e din cositor, plasate sub cip. Acestea sunt destul de ieftine iprezint propriet i bune de conductivitate electric i termic (permit o mai bundisipare a c ldurii, în special în versiunea cu suport ceramic). Exist mai multevariante ale încapsul rii BGA (Fine BGA i Tiny BGA), folosite în majoritateamodulelor de memorie de azi, inclusiv memoriile Rambus (vezi figura 3.17).

Fig. 3.17. Modul de memorie BGA.

SIMM (Single In-line Memory Module)Este o pl cu de memorie care se introduce în sloturi pe placa de baz .

Elimin problemele de compatibilitate, datorit standardiz rii ei de c treproduc torii pl cilor de baz . Memoriile SIMM folosesc o magistral de memoriepe 32 de bi i i exist în dou variante (vezi figurile 3.18 i 3.19):

cu 30 de pini – pentru cantit i mici de memorie (< 8 MB); cu 72 de pini – pentru cantit i mai mari de memorie (> 8 MB).Memoriile SIMM pot fi atât single sided (cu cipuri de memorie pe o singur

parte), cât i double sided (cipurile sunt dispuse pe ambele fe e). SIMM-uriledouble sided sunt realizate din dou SIMM-uri single sided, conectate împreun peacela i modul din fibr de sticl .

Fig. 3.18. Modul de memorie SIMM cu 30 de pini.

Fig. 3.19. Modul de memorie SIMM cu 72 de pini.

ARHITECTURA SISTEMELOR DE CALCUL88

SODIMM (Small Outline Dual In-line Memory Module)SIMM-urile de 72 de pini sunt convenabile pentru calculatoare desktop, dar

sunt prea mari pentru laptop-uri. În consecin , produc torii de calculatoareminiaturizate au transformat SIMM-urile cu 72 de pini, astfel încât, în loculconect rii la un loc a pinilor de pe cele dou p i ale modulului, au introdus ni tespa ii pe fiecare parte, pentru a avea dou semnale separate. Astfel, lungimeamodulului s-a redus la jum tate, rezultatul fiind Small Outline Dual In-lineMemory Module, numit astfel datorit dimensiunilor reduse ale modulului i a celordou linii de conectori independen i de pe fiecare parte a modulului (vezi figura3.20). Un SODIMM cu 72 de pini are lungimea jum tate fa de SIMM-ul cu 72 depini (2,35 inci), fiind echivalent unui SIMM 72 cu conectorii pe ambele p i alemodulului.

Fig. 3.20. Modul de memorie SODIMM.

SIPP (Single In-line Pin Package)De i SIPP-urile sunt identice cu SIMM-urile de 30 de pini din punct de

vedere electric, din punct de vedere fizic sunt mai mici (vezi figura 3.21).Dimensiunile standard sunt de 3,23 inci lungime i 1 inci în ime. De i din punctde vedere func ional SIMM-urile i SIPP-urile pot avea acelea i cipuri de memorie,aceea i tehnologie i aceea i capacitate, între ele exist diferen e care le facincompatibile. Dac se dore te instalarea unei noi extensii de memorie sau înlocuireauneia existente, trebuie specificat tipul de memorie folosit: SIMM sau SIPP.

Fig. 3.21. Modul de memorie SIPP.

Page 41: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 89

DIMM (Double In-line Memory Modules)Sunt module de memorie cu l imea magistralei de 64 de bi i, folosite la

implementarea memoriilor SDRAM i DDR SDRAM (vezi figura 3.22). DIMM-urile SDRAM folosesc 168 de pini, pe când cele DDR SDRAM au 184 de pini. Elemai difer i prin num rul fantelor de pe partea inferioar , cele SDRAM având dou ,iar cele DDR, numai una. Din punct de vedere al designului i al tensiunii dealimentare, exist 4 variante de DIMM-uri: de 3,3V sau 5V i cu buffer (buffered)sau f buffer (unbuffered). Cele mai des întâlnite sunt de tipul 3,3V, f buffer.

Fig. 3.22. Modul de memorie DIMM.

RIMM (Rambus In-line Memory Modules)Este tipul de încapsulare folosit la memorii Rambus (vezi figura 3.23). Este

foarte asem tor DIMM-ului, dar folose te set ri diferite ale pinilor. Se remarcprin prezen a de radiatoare pe ambele fe e ale modulului de memorie, pentru apreveni înc lzirea excesiv a acestuia. Se prezint i în varianta XDIMM (veziparagraful 3.2.9 – XDR DRAM)

Fig. 3.23. Modul RIMM Rambus.

3.2.9. Formatele logice de memorie

Înc rcarea cipurilor de memorie prin adresarea liniilor i coloanelor consumtimp de ordinul nanosecundelor, ceea ce provoac întârzieri la r spunsurilefurnizate microprocesoarelor. Dac se adaug i timpul necesar reîmprosp rii, seob in limitele performan ei cipului de memorie. Pentru a m ri performan elememoriei, proiectan ii au dezvoltat o serie de tehnologii care s dep easc acestelimite, orientându-se asupra modului în care sunt procesate datele intern – moduricare constituie formatele logice ale memoriilor interne: s-a încercat memoria de tipcoloan static , apoi s-a trecut la FPM, care s-a dovedit a fi mai performant prinanul 1995, ulterior tehnologia EDO preluând suprema ia. Toate formatele logice,au acela i mod de adresare a celulelor i aceea i tehnologie la baz , diferind prinanumite semnale i cuante de timp alocate.

ARHITECTURA SISTEMELOR DE CALCUL90

SCRAM (Static Column RAM)Primele memorii au folosit tehnologia Static Column RAM, care efectua

citirea unei coloane de memorie i scrierea adresei pe linia de adres a cipului,transmi ând apoi semnalul CAS. Odat ce coloana a fost înregistrat , se poatetrimite un nou set de adrese, prin care se va indica o linie, activând RAS. În totacest timp, semnalul CAS este men inut deschis, pentru a indica faptul c aceacoloan a r mas constant .

FPM (Fast Page Mode)Tehnologiile FPM folosesc tot o variant a acestei strategii. Controlerul de

memorie transmite mai întâi o linie de adrese, apoi activeaz semnalul RAS. Câttimp semnalul RAS este activ, se transmite o adres a semnalului CAS, pentru aindica o anumit celul . Dac semnalul RAS este men inut activ, controlerul poatetrimite una sau mai multe adrese, urmate de un impuls al semnalului CAS, pentru aindica celule din cadrul aceleia i linii.

În terminologia de adresare a memoriei, linia este numit pagin , iar tipurile decipuri care permit aceste opera ii sunt numite mod pagin (page mode RAM).Calculatorul poate astfel accesa mai rapid mai multe celule dintr-o pagin de memorie,asigurând un timp de acces de 25–30 ns. Pentru a accesa mai multe pagini, va trebui sse schimbe ambele adrese ale liniei i coloanei, ceea ce va genera întârzieri.

EDO (Extended Data Out)O alt tehnologie utilizat este numit EDO (Extended Data Out) i este

destul de rapid pentru calculatoarele actuale. Memoria EDO lucreaz cel mai bineîn combina ie cu o memorie cache. În esen , EDO este o variant a memorie FastPage Mode (care permite accesul repetat la bi ii din cadrul unei pagini de memorie,

a genera întârzieri).În timp ce memoria conven ional se descarc dup fiecare opera ie de citire

i necesit timp de reînc rcare înainte de a fi citit din nou, EDO p streaz datelepân când prime te un alt semnal. Memoria EDO modific cuanta de timp alocatpentru semnalul CAS. Linia de date mai r mâne activ un interval scurt de timp,dup ce linia CAS este dezactivat . Se elimin , astfel, timpul de a teptare necesarpentru un ciclu separat de citire/scriere, deci, se pot citi sau scrie date la viteza cucare cipul poate s selecteze adresele.

La cele mai multe cipuri, este cerut în mod normal o a teptare de 10 ns întreemiterea adreselor de coloan . Modelul EDO elimin aceast întârziere, permi ândmemoriei s furnizeze mai repede datele solicitate. Teoretic, EDO poate s creascperforman ele cu 50–60%, dar, la modelele mai recente de calculatoare, cele maibune implement ri au condus la o cre tere a performan elor cu 10–20%.

Fizic, cipurile EDO i SIMM par identice, dar, pentru a implementa EDO,este necesar un sistem complet diferit de gestiune (management) a memoriei, care

se potriveasc cu tehnologia memoriei (BIOS-ul, în special). Astfel, se potinstala SIMM-uri EDO în majoritatea calculatoarelor, dar vor func iona camemorie obi nuit , i nu vor contribui la o cre tere a performan ei.

Page 42: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 91

În aplica iile multimedia, diferen a între memoria cache i EDO nu estenotabil , astfel c EDO poate fi considerat ca o alternativ la memoria cachesecundar . La sfâr itul anului 1995, înlocuirea memoriei FPM cu EDO devenisecea mai comun form de reducere a timpului de acces la memorie. Diferen adintre cele dou memorii este mic , astfel încât multe calculatoare create pentrumemoria FPM accept i memoria EDO, de i nu câ tig în performan . Cu toate

FPM nu poate imita EDO, calculatoarele actuale pot determina ce fel dememorie s-a instalat, lucrând cu ea în mod adecvat. Pentru o rat de transfer dat ,memoria EDO va fi cu 30% mai rapid decât memoria FPM.

Exemplu. Acolo unde un cip page mode de 70 ns are starea de a teptare zerola o frecven a magistralei de 25 MHz, un cip EDO poate opera la stare de

teptare zero pentru o frecven a magistralei de 33 MHz.

BEDO DRAM (Burst Extended Data Out DRAM)Pentru a câ tiga mai mult vitez cu EDO, Micron Technology a ad ugat

circuite cipului, pentru a-l face compatibil cu modul burst folosit demicroprocesoarele Intel, începând cu 486. Noul cip, numit Burst EDO DRAM,realizeaz toate opera iile de citire i scriere în serii de câte patru cicluri, numite burst.Aceea i tehnologie este reg sit sub numele generic de pipeline nibble mode DRAM,pentru c transferul datelor se realizeaz în serii de câte patru cicluri pe pipeline.

Cipul func ioneaz ca un EDO sau ca un page mode DRAM atunci cândlinia CAS devine activ , dar, în loc s transfere un octet de date, un num torbinar transmite un semnal de patru ori în interiorul cipului, fiecare semnaltransferând un octet de date.

BEDO este relativ u or de fabricat, pentru c necesit un minim deschimb ri fa de memoria EDO sau page mode DRAM. Cipul de siliciu con ine unfuzibil care determin dac cipul func ioneaz ca EDO sau BEDO. Cipul î i poateschimba starea în mod ireversibil, prin arderea fuzibilului. Tehnologia BEDO estecapabil s opereze la o vitez a magistralei de 66 MHz cu st ri de a teptare zero,la un timp de transfer de 52 ns.

SDRAM (Sychronous DRAM)Datorit multiplex rii, cipurile de memorie nu pot opera simultan cu

microprocesoarele. Adresarea normal cere cicluri alternante, dar, prinreproiectarea interfe ei de baz , cipurile de memorie pot accesa date la fiecare ciclude ceas. Modific rile cipurilor de interfa au f cut ca cipurile de memorie s poatopera sincron cu microprocesoarele: acestea se numesc DRAM sincron.

De i schimbarea interfe ei cipului poate evita bloc rile sistemului, ea nu arenicio contribu ie la cre terea vitezei. Ca i microprocesoarele superscalare, cipurileSDRAM sunt realizate cu stagii de operare multiple i independente, astfel încât cipulpoate s acceseze o a doua adres înainte de a încheia procesarea primei adrese.Extinderea pipeline se refer doar la adresarea coloanelor unei anumite pagini.

Cipurile SDRAM au rata de transfer foarte ridicat . Interfa a i pipeline-uldetermin timpi de transfer de ordinul nanosecundelor, ceea ce le permite utilizarea

ARHITECTURA SISTEMELOR DE CALCUL92

pentru magistrale de memorie de 100 MHz. Cipurile actuale au anumite limite, carereduc viteza la aproape 66 MHz. SDRAM-urile nu pot opera la viteze mai mari de100 MHz, pentru c sloturile SIMM-urilor devin nesigure la frecven e mai mari.

Memoriile SDRAM sunt adaptate noului standard de magistralsincron introdus de microprocesoarele familiei Intel P6 (Pentium Pro,Pentium II i III). În figura 3.24 este prezentat structura unei memorii organizatepe 4 blocuri, care sunt accesibile în mod concurent.

Fig. 3.24. Structura intern a unei memorii SDRAM de 8 MB.

Structura favorizeaz opera iile în regim burst. Se poate programa num rulde loca ii dintr-un burst la valorile de 1, 2, 4, 8 octe i sau o pagin de memorie.Accesul începe la o adres specificat i continu cu adresele succesive, pân lanum rul de loca ii programate. Circuitul de memorie accept mai multe tipuri decomenzi, fiecare fiind specificat printr-o combina ie a semnalelor de intrare.

Ratele de transfer cerute de diverse tehnologii de memorie pentru starea deteptare zero la o vitez de transfer dat pe magistral sunt prezentate în tabelul 3.1.

Page 43: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 93

Tabelul 3.1Ratele de transfer la o vitez dat a magistralei locale

Viteza magistralei de memorie FPM EDO BEDO SDRAM

25 MHz 70 ns 70 ns 70 ns 12 ns

33 MHz 52 ns 70 ns 70 ns 15 ns

50 MHz N/A 52 ns 70 ns 12 ns

66 MHz N/A N/A 52 ns 10 ns

Dintre versiunile rapide de SDRAM dezvoltate în ultimii ani, se pot aminti: PC 100 RAM – timp de acces 8 ns, rat de transfer 500-800 MB/s; PC 133 RAM – timp de acces 7,5 ns, rat de transfer 800 MB/s; PC 2100/2700/3200 – la frecven ele de 266/333/400 MHz.EDRAM (Enhanced DRAM)Memoriile de tip EDRAM sunt mai rapide i se ob in din DRAM-urile

obi nuite prin ad ugarea unor blocuri mici de memorie cache static pe fiecare cip.Cache-ul opereaz la vitez înalt (în mod obi nuit, 1 ns), astfel încât pot s

acopere cererile de date ale microprocesorului f a ad uga st rile de a teptaregenerate de opera ia de reîmprosp tare. Produc torul tehnologiei EDRAM(Ramtron) descrie patru avantaje ale acestui tip de memorie:

legarea cache-ului SRAM cu DRAM-ul pe acela i cip presupune folosireaunei magistrale de l ime mare pentru conectare (Ramtron folose te omagistral de 16.384 bi i), care poate determina o rat de umplere amemoriei cache de aproximativ 60 Gb/s, comparativ cu 110 Mb/s lacache page mode DRAM. Timpul de umplere este de aproape apte orimai mic (35 ns) la EDRAM fa de cache page mode DRAM (250 ns);

modelul Ramtron folose te o structur de control diferit fa de DRAM-ul conven ional, ceea ce permite ca memoria s fie preînc rcat în timpce sistemul realizeaz transferul în mod burst din cache, preînc rcareadeterminând reducerea timpului de acces;

de i cache-ul EDRAM folose te proiectarea write through (veziparagraful 3.2.12), scrierea în memoria principal poate fi f cut cu timpde a teptare zero. Prima opera ie de scriere necesit 7 ns, iar ciclul descriere pentru o pagin normal este de 15 ns;

proiectarea EDRAM permite accesul separat la bancurile de cache, ceeace reduce timpul de acces la sistemele care lucreaz în multitasking.

CDRAM (Cached DRAM)Memoria CDRAM, realizat de Mitsubishi, adaug o memorie cache pe

fiecare cip, utilizând un model de tip asociat. Cipul ini ial de 4 MB are încorporato memorie cache de 2 KB, folosind dou buffer-e de câte un cuvânt (16 bi i) pentrutransferul dintre cache i circuitele externe.

ARHITECTURA SISTEMELOR DE CALCUL94

Spre deosebire de EDRAM, p ile CDRAM asociaz atât cache-ului, cât iDRAM-ului principal, aceea i adres , astfel încât acestea opereaz independent unafa de cealalt , putând fi adresate separat.

Memoria cache este suficient de rapid pentru a transfera date în mod burst,la o frecven de 100 MHz. Cipul permite celor dou buffer-e s func ionezeindependent, deci, pot lucra în flux continuu.

MDRAM (Multibanc DRAM)Principiul de lucru este urm torul: în locul unui bloc de celule, fiecare celul

este adresat prin num rul liniei i al coloanei. Memoria DRAM produs de MoSysInc. desparte informa ia stocat într-un num r de bancuri de memorie separate.

În modelul MDRAM ini ial de 4 MB, fiecare din cele 16 bancuri de memoriestreaz 256 KB, ele fiind legate printr-o magistral central de date, care

acceseaz fiecare banc individual. Acest model permite unui banc de memorie strimit sau s primeasc o serie de date printr-un singur ciclu de ceas i s comutela un alt banc pentru un alt transfer. Deoarece fiecare banc de memorie dispune deo interfa de 32 bi i care lucreaz la fel ca SDRAM, cipurile MDRAM opereaz laviteze de transfer de pân la 1 GB/s.

RDRAM (Rambus DRAM)Modelul Rambus folose te un cache RAM static de 2.048 octe i, care se

leag la memoria dinamic printr-o magistral de l ime foarte mare, permi ândtransferul unei pagini de memorie în cache într-un singur ciclu. Cache-ul estedestul de rapid, furnizând date la un timp de acces de 15 ns.

Memoria Rambus nu este implementat pe calculator ca o memorie standard.Ea folose te o magistral special de înalt vitez . Indiferent de leg tura cumicroprocesorul, l imea magistralei dintre controlerul de memorie i cipulRambus este de 1 octet. Rambus opereaz la frecven e între 250 i 800 MHz,modelul permi ând transferul a doi octe i la fiecare ciclu de ceas: unul pe frontulcresc tor, iar al doilea pe frontul descresc tor al impulsului de ceas.

Accesul la memorie se face în mod inteligent, incluzând func ia de pre-înc rcare a datelor, iar citirea acestora se face în pachete mici, la viteze ridicate alesemnalului de ceas. Viteza Rambus este izolat de microprocesor i r mâneconstant indiferent de viteza microprocesorului. Rata de transfer maxim poateatinge 1,6 GB/s. Viteza ridicat a Rambus-ului impune limite în proiectarea unuisistem de memorie: magistrala trebuie s fie scurt i poate suporta doar 32 decipuri sau 10 module de memorie Rambus, un modul con inând 32 de cipuriRambus. O vitez de peste 500 MB/s a magistralei poate s induc interferen e;pentru a le minimiza, Rambus func ioneaz la 2 V, cu oscila ii de 300 mV.

Rambus opereaz ca o mic re ea, trimi ând date în pachete cu o lungime depân la 256 octe i. Modelul este schimbat radical i cere o modificare important atipului de calculator pe care se instaleaz , fiind deocamdat util pentru sisteme careinclud integrare video. O colaborare între Intel i Rambus s-a materializat în 1999printr-un DRAM care opereaz la 100 MHz, pe calculatoare de 64 de bi i.

În figura 3.25 este prezentat arhitectura unui cip de memorie RDRAM cucapacitatea de 32 MB.

Page 44: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 95

Fig. 3.25. Cip de memorie RDRAM de 32 MB.

a cum se observ din figur , unul din atu-urile memoriei RDRAM este cfiecare cip de memorie poate con ine pân la 32 de bancuri de memorie. Acestebancuri sunt individuale i apar in riguros aceluia i cip, spre deosebire de bancurileSDRAM, care sunt împr tiate printre mai multe cipuri de memorie. Revenind ladiagram , fiecare banc de memorie are dimensiunea de 1 MB, ceea ce face caîntregul cip s aib o capacitate de 32 MB.

Fiecare banc reprezint o matrice DRAM organizat în 512 linii a câte128 dualoc i (dualoctul este cea mai mic unitate de memorie adresabil de c treRDRAM). Fiecare dualoct con ine 16 octe i i, deci, dimensiunea total a liniilormatricei este de 2 KB. În mod ideal, se poate p stra activ câte o linie din fiecaredin cele 32 de bancuri, pentru a maximiza ansele de a primi datele dintr-o linieactiv . În realitate, îns , pot exista numai 16 bancuri deschise simultan sau, maiprecis, doar jum tate din bancurile existente pe cip.

Figura 3.26 prezint dou opera ii: una de citire i cealalt de scriere din/înmemorie, pentru a ilustra lucrul simultan cu doar jum tate din bancurile disponibile.

Modul de func ionare este urm torul. Atunci când procesorul cite te un dualoctde 16 octe i dintr-un banc, datele respective p sesc bancul i p trund înamplificatoarele de semnal (numerotate), care sunt plasate de o parte i de alta abancurilor de memorie. Data A i Data B reprezint dou jum i ale unui dualoct (cu8 octe i fiecare), care p sesc bancul de memorie pe c i separate, a a cum se observîn figura 3.26. Cele dou magistrale care încadreaz bancurile de memorie au fiecare o

ime de 8 octe i, deci jum tatea dualoctului reprezentat de Data A se va transfera pemagistrala din dreapta, iar cea reprezentat de Data B pe magistrala din stânga.

De i pe diagram pare c fiecare banc este conectat la 4 amplificatoare desemnal, de fapt, fiecare pereche de c su e cu aceea i etichet (0/1, 1/2 etc.) plasatla stânga i la dreapta unui banc constituie un singur amplificator de semnal.

ARHITECTURA SISTEMELOR DE CALCUL96

Fig. 3.26. O opera ie de citire i o opera ie de scriere din/în memoria RDRAM.

Deoarece un num r prea mare de amplificatoare ar m ri considerabilsuprafa a pastilei de memorie, fiecare banc de memorie împarte cele douamplificatoare adiacente cu bancurile vecine lui. De exemplu, amplificatoarele 0/1i 1/2 sunt conectate la bancurile 0, 1 i 2. În acest fel, se mic oreaz suprafa a

cipului, ceea ce duce la o reducere a costului.Exist i excep ii, iar acestea sunt bancurile 0, 15, 16 i 31, care sunt conectate

fiecare la câte un singur amplificator dedicat i, ca atare, trebuie s a tepte ca unsingur banc vecin s î i termine activitatea pentru a deveni active. Faptul c doubancuri de memorie ajung s împart un singur amplificator de semnal (sense amp)reprezint motivul pentru care numai jum tate din bancurile unui cip pot fi activesimultan. Chiar i a a, num rul bancurilor de memorie active ale unui modulRDRAM este mult mai mare fa de cel al unui modul SDRAM. De exemplu, pentruun singur modul RIMM cu 4 cipuri, exist 32 de bancuri pe cip i, deci, 128 debancuri, dintre care 64 active simultan pentru întregul modul. Acest num r ridicat debancuri de memorie reprezint explica ia pentru l rgimea de band i frecven elefoarte mari (400 MHz, 533 MHz) cu care opereaz memoriile SDRAM.

Referitor la ultima diagram prezentat , mai trebuie f cute dou preciz ri: fiecare amplificator de semnal are i o capacitate proprie de stocare de

1024 de octe i, el fiind un buffer între bancul de memorie i magistralasistemului;

cele dou magistrale de 8 octe i amintite anterior sunt divizate numaiconceptual, în realitate formând o singur magistral cu l imea de 16 octe i.

Schema din figura 3.27 ilustreaz diferen ele dintre un sistem de memoriebazat pe RDRAM i unul bazat pe SDRAM. Se observ c la RDRAM cipurilesunt ata ate unor module de memorie RIMM, a a cum memoria SDRAM esteorganizat în module DIMM.

Page 45: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 97

Fig. 3.27. Diferen ele dintre sistemele de memorie RDRAM i SDRAM.

Diferen a const în faptul c RIMM-urile sunt ata ate pl cii de baz în modserial, neputând exista sloturi de memorie goale. Dac nu exist suficiente modulede memorie RIMM propriu-zise, sloturile de memorie de pe placa de baz r maselibere vor trebui completate cu module de continuitate, pentru a permite canaluluiRambus s i ating rezisten a de sarcin (termina ia). Din punct de vedere teoretic,pot exista oricâte canale Rambus independente într-un sistem, fiecare cu o l rgimede band de 1,6 GB/s, dar, în practic , num rul canalelor este limitat dinconsiderente de design al pl cilor de baz .

Un alt factor care complic designul unui subsistem de memorie Rambuseste dat de faptul c semnalului de ceas provenit de la controlerul de memorie îieste necesar un timp atât de ridicat pentru a ajunge la cel mai dep rtat modulRIMM din sistem, încât poate fi defazat de mai multe ori, fa de semnalul ajuns laprimul modul RIMM.

Din acest motiv, canalul Rambus suport pân la cinci domenii pentrusemnalul de ceas, doar pentru a putea p stra o sincronizare între transferurile pemagistrala de memorie. Aceste schimb ri ale domeniilor de tact complic îns imai mult arhitectura sistemului de memorie Rambus, prezentat în figura 3.28.

ARHITECTURA SISTEMELOR DE CALCUL98

Fig. 3.28. Elementele de baz ale unui sistem de memorie RDRAM.

DDR SDRAM (Double Data Rate Synchronous DRAM)Acest tip de memorie transfer date pe ambele fronturi (cresc tor i

descresc tor) al semnalului de ceas. În felul acesta, viteza rezultat în transferuldatelor este dubl (Double Data Rate) fa de o memorie SDRAM. DDR SDRAMse monteaz pe acela i tip de socluri, dar are nevoie de un nou cip-set.

Fa de RDRAM, DDR SDRAM prezint urm torul dezavantaj: dac datelesolicitate nu exist în cache, con inutul curent al acestuia este v rsat în DRAM-ulintegrat pe cip, este accesat o alt pagin i abia apoi are loc citirea din memorie.

Avantajele DDR SDRAM fa de RDRAM sunt pre ul i faptul c rata detransfer RDRAM este aproximativ 60–70% din rata DDR SDRAM (datoritfaptului c lucreaz pe 16 bi i, fa de DDR SDRAM, care lucreaz pe 64 de bi i).

Deoarece memoria DDR SDRAM este o variant evoluat a SDRAM-ului,felul în care interac ioneaz cu magistrala de memorie este foarte asem tor celuial predecesoarei sale, cu excep ia faptului c la DDR SDRAM se transfer doucuvinte de date într-o perioad de ceas.

Figura 3.29 prezint func ionarea unui sistem de memorie format din 3DIMM-uri, fiecare cu 4 bancuri de memorie pe 64 de bi i.

În figur sunt marcate blocurile de date de 64 de bi i (alc tuite din 4 pachetede câte 16 bi i), blocuri trimise de bancurile de memorie c tre procesor în timpulunei opera ii de citire. S ge ile indic sensul parcurs de date pe magistrala dememorie la care sunt conectate DIMM-urile. În cazul unei opera ii de scriere,sensul ar fi, evident, invers (CPU–memorie).

Evaluarea modulelor DDR SDRAM se face într-un mod diferit de SDRAM,principalul criteriu nemaifiind frecven a, ci l rgimea de band maxim oferitteoretic i care se exprim în MB/s.

Standardele uzuale actuale sunt PC1600, PC2100 i PC2400. Primul are ofrecven de 2100 MHz (datorit transmisiei datelor pe ambele fronturi alesemnalului). L rgimea de band de 1600 MB/s se ob ine înmul ind l imea c ii dedate (64 de bi i) cu frecven a memoriei (200 MHz) i împ ind la num rul de bi idintr-un octet (8).

Similar, pentru PC2100 frecven a este 2133MHz, adic , 266 MHz, iarpentru PC2700, frecven a este de 333 MHz.

Page 46: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 99

Fig. 3.29. Sistem de memorie DDR SDRAM cu 3 DIMM-uri a câte 4 bancuri pe 64 de bi i.

DDR2 SDRAM (Double Data Rate Two Synchronous DRAM)Memoriile DDR2 fac parte din familia memoriilor SDRAM, reprezentând o

îmbun ire a memoriilor DDR SDRAM. Unul dintre principalele avantaje aleDDR2-ului este abilitatea acestuia de a opera cu magistrala de date extern de douori mai repede decât DDR. Acest lucru este ob inut prin îmbun irea semnaliz riimagistralei i prin operarea celulelor de memorie la jum tate din frecven a de ceas(un sfert din rata de transfer a datelor).

Dac memoria DDR2 ar opera la aceea i frecven de ceas ca DDR, arasigura aceea i l rgime de band , dar ar avea o întârziere semnificativ mai mare.Ca i în cazul DDR, datele din memoriile DDR2 sunt transferate atât pe frontulcresc tor, cât i pe frontul descresc tor al ceasului. Diferen a principal dintre DDRi DDR2 este aceea c în cazul DDR2 magistrala este sincronizat la de dou ori

frecven a la care lucreaz celulele de memorie, astfel încât pot fi transfera i 4 bi i dedate într-un ciclu al celulei de memorie, conform diagramei de timp din figura 3.30.

Frecven a magistralei DDR2 este crescut prin unele îmbun iri lainterfa a electric , folosirea tehnologiei on-die termination sau folosirea unorbuffer-e de preînc rcare. Buffer-ul de preînc rcare în cazul DDR2 are o adâncimede 4 bi i, spre deosebire de doi bi i în cazul DDR. Din p cate, implementareatuturor acestor tehnologii au dus la o cre tere a întârzierilor. Dac în cazul DDRapare o întârziere între dou i trei cicluri ale magistralei de date, DDR2 poate aveaîntârzieri de 4 pân la 6 cicluri. Acesta este motivul care a f cut necesar camagistrala s lucreze la o frecven de dou ori mai mare.

ARHITECTURA SISTEMELOR DE CALCUL100

Fig. 3.30. Citirea în rafale la DDR2 SDRAM.

Un alt cost cauzat de cre terea vitezei este necesitatea încapsul rii cipurilorîn capsule mai scumpe i mai dificil de asamblat, cum ar fi BGA (Ball Grid Array).Schimbarea capsulelor a fost necesar pentru a men ine integritatea semnalului laviteze mai mari.

Din punct de vedere al consumului de energie, DDR2 a mai f cut un pasînainte, necesitând numai 1,8 V fa de 2,5 V, cât era necesar pentru DDR.Consumul de energie poate fi redus chiar i mai mult, prin reducerea frecven ei însitua iile în care nu este necesar o rat de transfer foarte mare. Tensiunea maximrecomandat este 1,9 V, fiind chiar interzis dep irea acesteia în situa iile în carestabilitatea memoriei este un factor cheie. Totu i, modulele de memorie ar trebui sreziste pân la 2,3 V, înainte ca memoria s fie complet distrus .

Pentru folosirea în calculatoarele personale, memoriile DDR2 vin sub formaunor module DIMM cu 240 de pini, identificate, de obicei, dup rata maxim detransfer. Cele ase standarde pentru modulele DDR2 sunt prezentate în tabelul 3.2.

Tabelul 3.2Standardele pentru modulele de memorie DDR2

Numelestandardului

Frecven amemoriei

(MHz)

Perioadaceasului

(ns)

Frecven amagistraleiI/O (MHz)

Transferuride date pesec. (mil.)

Numelemodu-lului

Rata max.de transfer

(MB/s)

DDR-400 100 10 200 400 PC-3200 3200

DDR-533 133 7,5 266 533 PC-4200 4266

DDR-667 166 6 333 667 PC-5300 5333

DDR-800 200 5 400 800 PC-6400 6400

DDR-1066 266 3,75 533 1066 PC-8500 853

DDR-1300 325 3,1 650 1300 PC-10400 10400

Page 47: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 101

DIMM-urile DDR2 nu au fost proiectate s fie compatibile cu moduleleDDR. Cheia de siguran la DDR2 se afl în alt pozi ie, iar densitatea pinilor (240pentru desktop, 200 pentru notebook) este u or mai mare decât în cazul DDR(184). Modulele DDR2 mai rapide sunt compatibile cu modulele DDR2 mai lente,îns magistrala va func iona la viteza celui mai lent modul.

DDR3 SDRAM (Double Data Rate Three Synchronous DRAM)Memoriile DDR3 sunt o îmbun ire a modelului precedent de memorii,

DDR2. Principala diferen între cele dou const în faptul c magistrala I/ODDR3 func ioneaz la o frecven de patru ori mai mare decât celulele de memorie.În plus, DDR3 permite cipuri de capacitate de la 512 Mb pân la 8 Gb, ceea ceduce la posibilitatea ob inerii de module de pân la 16 GB. Memoriile DDR3promit o reducere a consumului de energie cu 17%, tehnologia de 90 nm folosit înfabricarea cipurilor DDR3 având nevoie de o tensiune de 1,5 V (fa de 1,8Vpentru DDR2 sau 2,5 V pentru DDR). Unii produc tori propun utilizareatranzistorilor dual-gate, tehnologie care ar permite reducerea i mai mare ascurgerilor de curent. Tensiunea maxim recomandat pentru DDR3 este 1,575 V.În mod normal, memoriile ar trebui s reziste pân la 1,975 V, f a suferi odistrugere total , de i, cel mai probabil, nu vor func iona corect la acest nivel.

Principalul avantaj al memoriilor DDR3 este dat de l rgimea de band .Cre terea acesteia a fost posibil i datorit buffer-ului de preînc rcare, a c ruiadâncime a fost m rit de la 4 bi i, cât era în cazul DDR2, la 8 bi i. Aceast dublarea dimensiunii buffer-ului este spectaculoas , în compara ie cu celelalte miciincrement ri ale dimensiunii care au avut loc anterior. Redimensionarea buffer-uluiare un cuvânt greu de spus în ceea ce prive te întârzierea semnalului CAS.

Teoretic, modulele DDR3 pot transfera date la o frecven de 800–1600 MHz,folosind ambele fronturi ale tactului I/O, cu frecven a de 400–800MHz.

DIMM-urile DDR3 au acela i num r de pini ca modulele DDR2 (240),având i acelea i dimensiuni, dar, cu toate acestea, sunt incompatibile din punct devedere electric, iar cheia de securitate este situat în alt pozi ie.

Cele patru standarde pentru modulele DDR3 sunt prezentate în tabelul 3.3.

Tabelul 3.3Standardele pentru modulele de memorie DDR3

Numelestandardului

Frecven amemoriei

(MHz)

Perioadaceasului

(ns)

Frecven amagistraleiI/O (MHz)

Transferuride date pesec. (mil.)

Numelemodu-lului

Rata max.de transfer

(MB/s)

DDR3-800 100 10 400 800 PC-6400 6400

DDR3-1066 133 7,5 533 1066 PC-8500 8533

DDR3-1333 166 6 667 1333 PC-10600 10667

DDR3-1600 200 5 800 1600 PC-12800 12800

ARHITECTURA SISTEMELOR DE CALCUL102

O tehnologie complet nou , folosit pentru prima dat în cazul DDR3, estetopologia Fly-By. Genera iile anterioare de SDRAM, inclusiv DDR2, utilizau otopologie stea pentru a împ i datele spre mai multe c i de semnal. Topologia Fly-By utilizeaz o singur leg tur direct c tre toate componentele DRAM, ceea cepermite un r spuns mult mai rapid din partea sistemului.

Motivul pentru care DDR2 nu s-a putut dezvolta mai mult decât a f cut-o nuse datoreaz atât procesului de fabrica ie, care ar fi trebuit rafinat mai mult, câtunor limit ri mecanice. În esen , DDR2 nu este preg tit s ating viteze mai mari.Teoretic, acest lucru ar fi posibil, dar, practic, tehnologia mecanic dezvoltat pânazi nu permite acest lucru. La frecven e mai mari, DIMM-ul începe s întâmpineprobleme în ceea ce prive te integritatea semnalului. În cazul topologiei steafolosite de DDR2, aceast problem s-ar rezolva dac s-ar reu i echilibrarea tuturorramurilor. Din p cate, efortul necesar pentru a face acest lucru este peste limitelefizice din ziua de azi.

Pentru DDR3, integritatea semnalului este rezolvat la nivelul fiec rui modulDRAM, în locul încerc rii unei echilibr ri la nivelul întregii platforme de memorie.Acum, atât adresele, cât i semnalele de control, sunt transmise pe aceea i cale.Practic, topologia Fly-By elimin limit rile cauzate de echilibrarea mecanicfolosit în DDR2, înlocuind-o cu un semnal automat de întârziere, generat de c trecontrolerul de memorie. O alt inova ie prezent la DDR3 const în apari ia unuipin de reset. Acest pin permite resetarea unui modul de memorie f resetareaîntregului sistem, ceea ce duce la o sc dere a timpului i a energiei pierdute.

De remarcat este i prezen a unui senzor de temperatur , pentru prima datla memoriile DDR, senzor care detecteaz momentul în care modulul se apropie deun anumit prag de temperatur i, în consecin , poate scurta intervalele de refresh.Acest sistem de siguran permite i el o reducere a consumului de energie.

Un alt element caracteristic DDR3 este sistemul XMP (eXtended MemoryProfile). Acest sistem, implementat pe placa de baz , permite utilizatorului uneiconfigura ii alc tuite dintr-un procesor Intel i o memorie DDR3 s realizeze unoverclocking foarte simplu. Doar prin selectarea unei anumite op iuni, sistemul vadecide singur factorii de multiplicare, tensiunile i frecven ele pân la care poate fifor at ceasul pentru a câ tiga un plus de performan .

XDR DRAM (eXtreme Data Rate DRAM)Memoriile XDR-RAM sunt considerate ca fiind succesorul memoriilor

Rambus (RDRAM), fiind în concuren direct cu DDR2, SDRAM i GDDR4(memoriile grafice pentru pl cile grafice din familia GeForce FX). XDR-ul a fostproiectat în special pentru sisteme mici, care necesit o l rgime de band ridicat ,i pentru sisteme GPU (Graphical Processing Unit) de top. Aceast tehnologie

elimin problemele cauzate de întârzierile ridicate, prezente la primele modeleRDRAM. De asemenea, XDR DRAM permite o l rgime de band per pin mult maimare, ceea ce duce la sc derea costurilor de produc ie a pl cilor de circuiteintegrate. Sc derea costurilor este posibil datorit faptului c sunt necesare maipu ine c i de transmisie a datelor pentru aceea i l rgime de band .

Page 48: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 103

Dispozitivele XDR DRAM folosesc un nucleu DRAM cu 8 bancuri,implementate în tehnologie CMOS, având momentan o densitate de 512 Mb. Spredeosebire de alte dispozitive DRAM, dispozitivele 16 XDR DRAM implementeazo l rgime programabil i suport magistrale de 8, 4 sau chiar 2 bi i.

Elementele cheie ale arhitecturii XDR care permit performan e ridicate sunt: XDR DRAM este un circuit integrat de memorie de mare vitez , cu o interfa

care lucreaz la 4 GHz, asigurând o l rgime de band de pân la 8GB/s; Controlerul I/O, numit XIO în cazul XDR DRAM, asigur aceea i vitez

ridicat ca la DRAM, aducând i unele îmbun iri (tehnologia FlexPhase); Controlerul de memorie XMS este optimizat pentru a profita de inova iile

aduse de XDR, cum ar fi tehnologia Dynamic Point-to-Point, carepermite o extindere a capacit ii, p strând în acela i timp i integritatearidicat a semnalului, caracteristic modelului Point-to-Point;

Generatorul de tact, XCG, asigur patru ie iri programabile, caregaranteaz semnalele de tact pentru XIO i alte dispozitive XDR DRAM.

Celula XIO este un controler I/O performant cu întârzieri reduse, carefolose te un sistem de semnalizare pe 8 bi i, la o frecven de pân la 4 GHz,permi ând o l rgime de band de pân la 8 GB/s de la un singur dispozitiv XDRDRAM. XIO poate fi configurat s suporte mai multe dispozitive, asigurând astfel

rgimea de band necesar aplica iilor grafice sau altor aplica ii.XIO este compus din unul pân la 12 blocuri de cerere a magistralei (RQ –

ReQuest bus block), un bloc de control (CTL) i un num r variabil de blocuri de datede 8 sau 9 bi i – în cazul memoriilor cu cod corector de erori (DQ). Blocul RQ asigursubsistemelor memoriei informa iile referitoare la adrese i control. Blocul CTLasigur accesul la registre, ini ializarea, între inerea i testarea func iilor sistemului. Unbloc DQ este capabil s primeasc i s transmit date cu o frecven de pân la 4 GHz.

Memoriile XDR DRAM vin sub forma unor module XDIMM, specificeRambus (vezi figura 3.31). Acestea ofer flexibilitate în ceea ce prive te upgrade-ul, o capacitate ridicat i performan ridicat , esen ial în cazul serverelor, deexemplu. Datorit tehnologiei Dynamic Point-to-Point, XDIMM-urile pot fiinstalate atât în configura ie single-channel, cât i în configura ie dual-channel,

strând întreag l rgimea de band a sistemului i conservând integritateasemnalului, caracteristic topologiei Point-to-Point.

O alt inova ie tehnologic adus de XDR este tehnologia DRSL(Differential Rambus Signaling Level). Aceast tehnologie presupune un standardde semnalizare de joas tensiune, joas putere, diferen ial, care permite omagistral scalabil , multi-GHz, bidirec ional , de tip Point-to-Point, careconecteaz celula XIO la dispozitivele XDR DRAM.

XDR folose te i standardul RSL (Rambus Signaling Level), dezvoltatini ial pentru RDRAM, standard care permite conectarea a pân la 36 dedispozitive într-un mod sincron, adresate prin intermediul unei magistrale icomandate prin ni te semnale. Sistemul de memorie Rambus XDR satisfacenevoile computa ionale din numeroase domenii, cum ar fi computere grafice,servere, re elistic sau electronic de larg consum.

ARHITECTURA SISTEMELOR DE CALCUL104

Fig. 3.31. Modul de memorie XDIMM.

eDRAM (embedded DRAM)eDRAM reprezint o memorie dinamic cu acces aleator, capacitiv ,

integrat în mod uzual în acela i pachet cu procesorul, spre deosebire de moduleleDRAM externe i SRAM-urile utilizate tipic pentru memorii cache.

Împachetarea permite folosirea de magistrale mult mai mari i o vitezsporit a opera iilor. Datorit unei densit i mult crescute pentru DRAM încompara ie cu SRAM, pot fi utilizate cantit i mai mari de memorie. Diferen a înprocesul de fabrica ie determin dificultatea integr rii pe aria cipului procesorului,astfel încât mai multe circuite integrate de pe arie trebuie împachetate într-un chip,ridicând costul. Cele mai recente dezvolt ri surmonteaz aceast limitare, utilizândprocesarea CMOS standard pentru a fabrica eDRAM, ca în formatul de memorie1T-SRAM (vezi paragraful urm tor).

Memoria eDRAM este folosit într-o larg varietate de console de jocuri.Atât celula microprocesoare utilizat în PlayStation 3, cât i cea pentru IBMPower, folosesc eDRAM la cache-ul L2, în nodul de procesare de 45 nm al IBM.

1T-SRAM (1 Transistor Static RAM)Tehnologia de fabricare a memoriilor 1T-SRAM, introdus de c tre MoSys,

ofer o alternativ la memoriile SRAM tradi ionale, permi ând o capacitate maimare. Principala utilizare a memoriilor 1T-SRAM este în cazul sistemelorembedded (sisteme dedicate). MoSys a implementat o celul de memorare cu unsingur tranzistor, ca în cazul DRAM, dar aceast celul este sus inut de o re ea decircuite care fac func ionarea memoriei s fie echivalent celei a memoriilorSRAM (controlerul ascunde toate opera iile specifice memoriilor DRAM, cum ar fipreînc rcarea sau reactualizarea). În consecin , memoriile 1T-SRAM au ointerfa standard SRAM de un ciclu i sunt percepute de restul logicii sistemuluiexact ca orice alt memorie SRAM.

Datorit celulei de memorare cu un tranzistor, varianta 1T-SRAM este maimic decât SRAM-ul clasic, bazat pe celule de 6 tranzistori, fiind mai apropiat deeDRAM (embedded DRAM) în ceea ce prive te dimensiunea i densitatea (vezifigura 3.32).

În acela i timp, 1T-SRAM ofer performan e comparabile cu SRAM, consummai pu in decât eDRAM i este realizat în tehnologie CMOS, ca SRAM-ul clasic.

Page 49: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 105

Fig. 3.32. Compara ie între celula 1T-SRAM i celula SRAM cu 6 tranzistori.

MoSys prezint 1T-SRAM ca fiind solu ia ideal pentru aplica iile bazate peSOC-uri (System-On-a-Chip – se încearc integrarea tuturor componentelor unuicomputer sau a unui sistem electronic într-un singur circuit integrat), cum ar fimicrocontrolere, DSP-uri, blocuri de memorie, timer-e, regulatoare de tensiune etc.

Memoriile 1T-SRAM sunt organizate sub forma unei matrice de micibancuri de memorie (în general, 128 linii a câte 256 de bi i fiecare, rezultând untotal de 32 Kb) conectate la o memorie cache de dimensiunea unui banc i la uncontroler de memorie.

Chiar dac , în compara ie cu DRAM, 1T-SRAM este ineficient în ceea ceprive te spa iul, lungimea mai mic a cuvintelor permite atingerea unor viteze multmai mari, reu indu-se astfel realizarea unui ciclu RAS la fiecare acces. Fiecareacces se face la câte un banc, permi ând astfel bancurilor nefolosite s fiereactualizate în acela i timp. În plus, fiecare linie citit este copiat i în memoriacache. În eventualitatea unor acces ri repetate la acela i banc, exist dou variante:fie sunt accesate linii diferite, caz în care toate liniile vor fi reactualizate automat,fie aceea i linie este accesat de mai multe ori. În cazul celei de-a doua variante,urm toarele citiri se vor face din memoria cache, acordându-se astfel timpulnecesar pentru realizarea reîmprosp rii.

Pân în prezent (mai 2008), au fost lansate patru genera ii de memoriiSRAM cu un tranzistor:

1. 1T-SRAM original, care are o dimensiune de dou ori mai mic decât6T-SRAM i consum mai pu in de 50% fa de acesta.

2. 1T-SRAM-M, care este o variant cu un consum mult mai mic în modulstand-by, fiind proiectat pentru uzul în sisteme portabile, de genultelefoanelor mobile.

ARHITECTURA SISTEMELOR DE CALCUL106

3. 1T-SRAM-R, care încorporeaz un sistem de corec ie a erorilor (ECC).Celulele de memorie sunt mai mici, ceea ce duce automat la o rat maimare de apari ie a erorilor. Totu i, sistemul ECC rezolv aceast problem .

4. 1T-SRAM-Q, care este o versiune quad-density, folosind un procesnestandard de fabricare a condensatoarelor, care permite înjum ireadimensiunilor memoriei înc o dat fa de 1T-SRAM-R.

Memoriile 1T-SRAM func ioneaz la viteze comparabile cu 6T-SRAM isunt semnificativ mai rapide decât eDRAM, modelul quad-density fiind cu doar10–15% mai mare. În majoritatea proceselor de fabricare a memoriei eDRAM estenecesar parcurgerea unor pa i suplimentari i costisitori, dep ind astfel destul demult costul de produc ie al memoriei 1T-SRAM.

Memoriile 1T-SRAM sunt disponibile i sub form de circuite integrate.Nintendo GameCube a fost prima platform care a folosit 1T-SRAM ca sistemprincipal de stocare a datelor. De asemenea, memoria 1T-SRAM a fost folosit înurma ul lui GameCube, consola Nintendo’s Wii.

QDR II SRAM (Quad Data Rate II Static Random Access Memory)QDR este o memorie SRAM echipat cu un pin pentru intrarea datelor i un

pin separat pentru ie irea datelor, spre deosebire de SRAM standard, în care cei doipini sunt comuni. QDR permite introducerea i extragerea datelor pe ambelefronturi (DDR – Double Data Rate), ducând astfel la ob inerea unor viteze foartemari pentru opera iile de scriere i de citire, care se pot desf ura simultan. În felulacesta, se poate realiza un transfer de pân la patru cuvinte la fiecare ciclu de ceas,cu o laten foarte mic . Acest tip de memorie este ideal pentru sistemele decomunica ii i re elistic , cum ar fi router-e sau switch-uri. Pentru a veni înîntâmpinarea tendin elor din acest domeniu, QDRII SRAM utilizeaz porturi I/O lao vitez foarte ridicat prin tehnologia HSTL (High Speed Transceiver Logic),suportat de toate sistemele de networking de nou genera ie (vezi figura 3.33).

Din punct de vedere al consumului de energie, memoriile QDR se situeazfoarte bine, necesitând doar 1,8 V pentru nucleul memoriei i 1,4 V pentru pinii deintrare/ie ire. Acest aspect este extrem de important în domeniul pentru care suntconcepute s func ioneze aceste memorii.

Fig. 3.33. Arhitectura QDR II SRAM.

Page 50: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 107

Memoriile QDR II sunt prev zute cu dou generatoare de semnale de ceas,unul pentru intrare, cel lalt pentru ie ire. Astfel, intrarea i ie irea pot fi foarte u ordefazate. Memoriile QDR II vin sub forma unor FPGA-uri de 13 15 1 mm.

O memorie QDR II hot te dac va efectua o opera ie de scriere sau decitire, în func ie de starea în care se afl pinii de citire (R#) i de scriere (W#) lamomentul în care ceasul se afl pe front cresc tor. Pentru a da o comand de citire,R# trebuie s fie la nivelul 0 (vezi figura 3.34), iar pentru a da o comand descriere, R# trebuie s fie la nivelul 1 i W# la nivelul 0 (vezi figura 3.35).

Fig. 3.34. Opera ia de citire la QDR II.

Fig. 3.35. Opera ia de scriere la QDR II.

SGRAM (Synchronous Graphics RAM)Func ionarea memoriei SGRAM este asem toare celei de la memoria

SDRAM. Func ia principal a memoriei SGRAM este aceea de a stoca i citi datesimultan în zona de memorie. Deoarece este o memorie de tip DRAM, trebuie sdispun de o reîmprosp tare periodic , pentru a citi i a scrie date eficient i rapid.Astfel, au fost introduse func ii speciale, care specific adresele grafice necesareaplica iilor. Aceste func ii sunt selectate prin folosirea unor registre speciale, dar iprin folosirea unor pini speciali.

ARHITECTURA SISTEMELOR DE CALCUL108

Fig. 3.36. Formatul ciclic al diagramei de timp pentru memoria SGRAM.

La fel ca în cazul memoriei SDRAM, toate semnalele de intrare suntînregistrate pe frontul cresc tor al semnalului de ceas (vezi figura 3.36). FormatulSGRAM conceput de IBM poate citi sau scrie un num r de loca ii dintr-un burst de1, 2, 4, 8 octe i sau chiar o pagin de memorie. Odat ce un rând este activ, maieste necesar doar adresa coloanei.

Exist un contor în structura sa intern , care num fiecare loca ie dememorie, dup ce au fost introduse datele. Dac parametrii de citire i scriere suntînregistra i, memoria continu s introduc date pân când toate spa iile suntcompletate sau pân când apar secven e de întrerupere. Pentru a face trecerea pe unnou rând, acesta trebuie s fie preg tit i astfel va deveni activ.

VRAM (Video RAM)Problemele de acces la memorie apar cu prec dere în sistemele video la care

memoria este folosit ca un buffer de cadru pentru imaginea de pe ecran, aceastafiind înmagazinat sub form digital i alocat pentru fiecare element al imaginii.Întregul con inut al buffer-ului este citit de la 44 la 75 de ori pe secund . Între timp,calculatorul poate încerca s scrie o nou informa ie în buffer, pentru ca aceasta sapar pe ecran.

Cu memorii DRAM obi nuite, aceste opera ii de citire i scriere nu potap rea simultan, una trebuie s o a tepte pe cealalt , timpul de a teptare afectând înmod negativ performan ele video, viteza sistemului i r bdarea utilizatorului.

teptarea poate fi evitat prin introducerea unui cip special de memorie,care s aib dou c i (dual ported) pentru accesul fiec rei loca ii. O astfel dememorie permite scrierea i citirea simultan . Cipurile de memorie video VRAMpermit citirea i scrierea aleatorie la un port, în timp ce la cel lalt port se permitedoar citirea secven ial , care corespunde nevoilor de scanare a unei imagini video.

Dezavantajul principal al tehnologiei VRAM este c aceasta este maiscump . Folosind îns memorii VRAM, se poate m ri viteza sistemului video cuaproximativ 40%.

Page 51: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 109

Pentru a trimite iruri de date c tre monitor cu o vitez ridicat , memoriaVRAM include o serie de registre numite SAM (Serial Access Memory), legate laun port serial. Acest port este conectat la un controler D/A de vitez foarte mare.

Memoria VRAM are o interfa DRAM complet separat de portul serial. Întimp ce unele date sunt citite cu ajutorul portului serial, altele sunt citite sau stocatedin aria DRAM printr-un port DRAM. Formatul VRAM prezint câtevacaracteristici realizate special pentru a cre te flexibilitatea în aplica iile grafice.

WRAM (Windows RAM)Un model VRAM cu dou porturi este WRAM (elaborat de Samsung), util

în sistemele video proiectate s asiste o interfa grafic gen Windows.Cipul de baz WRAM p streaz 1 MB aranjat în plane de 32 de bi i, fiecare

fiind compus din 512 512 celule. Trei cipuri asigur memoria necesar pentru aafi a o rezolu ie de 1024 768, 1024 1024 i pentru operare în True Color pe 24bi i. Intern, o magistral de date de 256 de bi i leag fiecare plan de bi i cucontrolerul logic intern al cipului care multiplexeaz datele pe 32 de bi i,compatibile cu circuitele din calculator. Pentru a furniza date în scopul scan riivideo, cipul con ine dou registre serie. Cipul încarc unul din registre, iar dincel lalt extrage datele, comutând între ele în momentul în care registrul al doilea segole te. Cipul con ine patru registre de 32 de bi i, dou pentru înmagazinare ipentru culorile de fundal, iar celelalte dou pentru control i m ti.

Cu o rat de transfer de pân la 640 MB/s, modelul WRAM poate m riviteza sistemului cu 50 % în compara ie cu VRAM.

Observa ie. Formatul Windows RAM nu are leg tur cu Microsoft Windows.

3.2.10. Verificarea prin controlul parit ii

Revenind la caracteristicile generale ale memoriei, pe majoritatea pl cu elorde memorie se afl instalate 9 cipuri (pentru memoriile paritare), primele opt avândrol de memorie efectiv de lucru (8 bi i – de la 0 la 7), iar cel de-al 9-lea fiindnumit cip de paritate (parity cip), cu rol de testare a st rii de func ionare acelorlalte 8 cipuri, prin verificarea parit ii memoriei.

Paritatea memoriei este de dou tipuri: par i impar .Exemplu. Fie cazul unei memorii impare. Un rând de bi i con ine un num r

impar de 1 (num r re inut în câmpul 9). Datele sunt cuprinse pe 8 bi i (1 bit/cip).Când o dat este impar , bitul de paritate este 1.

La pornirea sistemului, când se ajunge la etapa de verificare a memoriei, severific i paritatea rândurilor de bi i (parity check). Memoria fiind, conformexemplului, impar , trebuie s existe un num r impar de bi i, în caz contrarsistemul semnalând o eroare de paritate (parity error) i deci un cip (sau maimulte) este (sunt) defect(e). În cazul memoriei pare, procesul este identic cu celanterior, doar c un rând de bi i con ine un num r par de 1.

ARHITECTURA SISTEMELOR DE CALCUL110

Memoriile SIMM se prezint constructiv cu 8 sau 9 cipuri pe pl cu , dupcum sunt cipuri paritare sau nu. Nu toate pl cile SIMM folosesc verificareaparit ii, dar toate pl cile DIMM sunt prev zute cu aceasta facilitate.

Exemplu. SIMM-urile paritare pe 8 bi i folosesc un bit de paritate (modulepe 9 bi i), iar cele pe 32 de bi i folosesc 4 bi i de paritate (module pe 36 bi i, 8 4= 32 bi i + 4 1 = 4 bi i de paritate).

Exist i module de memorie care folosesc cipuri compuse, pe o pl cufiind prezente doar 2 sau 4 circuite integrate. În acest caz, în aceea i capsul suntprezente patru sau dou cipuri de memorie. În cazul în care se folosesc module dememorie neparitare, va trebui dezactivat din CMOS op iunea de verificare aparit ii memoriei, în caz contrar ap rând erori. În nici un caz nu se pot folosicombina ii de module paritare cu module neparitare.

În timpul func ion rii sistemului, la detectarea unei erori de paritate esteemis o cerere de întrerupere (de c tre cipul specializat), care va avea ca rezultatfinal oprirea procesului aflat în execu ie i reluarea unei rutine BIOS care va afi aun mesaj specific. Unele variante de microprocesoare au integrat un modul specialde evaluare i verificare a parit ii memoriei.

Anumi i produc tori ai cipurilor de RAM au abandonat verificarea parit ii,deoarece cre tea pre ul memoriei cu 10–15 %, la aceasta ad ugându-se iposibilitatea unei compact ri a cipurilor util la calculatoare de tip notebook.

Exist îns i calculatoare care au implementat o paritate fals (fakeparity), care emite un semnal ce atest paritatea f s realizeze o verificareefectiv . Datorit faptului c cipurile care genereaz paritate fals sunt mai ieftine,acestea sunt utile la calculatoarele care au implementat mecanismul de detectare aparit ii. În general, modulele de memorie cu paritate fals apar identice modulelorcu paritate.

Singurul mod de a le identifica este folosind un tester pentru module dememorie. Deoarece modulele cu paritate fals lucreaz la nivel hard, programeleobi nuite de testare nu pot s le detecteze (conform cu Kingston Tehnologies,cipurile cu paritate fals sunt marcate cu una din urm toarele inscrip ii: BP, GSM,MPEC sau VT).

Exist îns procedee care pot efectua atât detec ia, cât i corec ia unor erori.Un exemplu îl constituie procedeul ECC (Error Correction Code), care necesitbi i suplimentari pentru fiecare octet memorat. Procedeul poate s localizeze bitulcare este eronat, iar eroarea poate fi remediat (se mai nume te tehnologie ErrorDetection And Correction – EDAC). Firma IBM folose te tehnologia ECC pecalculatoarele proiectate pentru a func iona ca servere.

Acest cod poate corecta automat orice eroare de 1 bit care apare într-uncuvânt de 64 de bi i. În acest scop, memoria folose te cuvinte de cod de 72 de bi i(64 bi i de date + 8 bi i de control). Aceast schem are aceea i eficien cu ceaparitar (8/9 = 64/72), dar ofer corec ie cu o robuste e mai mic , pentru c poatecorecta o eroare la 64 de bi i, spre deosebire de cealalt schem , care poate detectao eroare la 8 bi i.

Page 52: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 111

Procedeul ECC nu este mai costisitor de implementat, datorit cre teriidimensiunilor magistralelor; astfel, pentru microprocesoarele Pentium i post-Pentium, care au magistrala de date de 64 bi i, costul unei memorii cu verificare aparit ii i corec ie este acela i.

La fiecare acces la memorie, hardware-ul verific dac cuvântul de cod estecorect; dac nu, calculeaz automat cel mai apropiat cuvânt de cod, pe care apoi îldecodific . Aceste opera ii sunt destul de complicate, astfel încât un sistem cumemorii ECC merge cu aproximativ 5% mai lent decât unul cu memorii paritare.

3.2.11. Metodele de acces la memorie

Un alt aspect care trebuie luat în considerare este timpul de acces almemoriei RAM folosite. Dup cum s-a mai spus, acesta sunt de ordinul zecilor denanosecunde (cu excep ia memoriilor SDRAM, care pot ajunge pân la câtevananosecunde), timp destul de mare, având în vedere vitezele de tact la care lucreazazi diversele procesoare. Pentru a sc dea timpul de acces al memoriei RAM, sefolosesc diverse metode de acces la memorie prin paginarea acesteia sau între esere(Paging Mode sau Interleaving).

Paginarea asigur o citire mai rapid , datorit faptului c în cazul unei cereride date din partea microprocesorului, acesta transmite cipului de memorie nu adresadatei cerute, ci adresa unei pagini care con ine informa ia dorit i, în cadrul paginii,adresa datei solicitate (vezi capitolul 6). Automat, spa iul de c utare a informa iei estemic orat prin paginarea memoriei, iar timpul în care este accesat o informa ie scade.

Între eserea presupune c procesorul desf oar o activitate paralel deaccesare pentru dou bancuri de memorie (memoria este împ it , dup cum s-amai spus, în cel pu in dou bancuri, bancul 0 i bancul 1, care nu sunt accesatesimultan). Timpul de citire din bancul 0 este folosit de memoria instalat în bancul1 pentru opera ia de reîmprosp tare, apoi timpul în care procesorul cite te dinbancul 1 este folosit de bancul 0 pentru aceea i opera ie de reîmprosp tare.

Acest lucru este posibil datorit faptului c microprocesorul acceseaz date,în general, de la adrese apropiate sau învecinate cu adresa citit anterior. Cumcitirea este un proces secven ial, dup citirea de la adresa k din bancul 0 urmeazcitirea de la adresa k+1 din bancul 1, citire care se efectueaz foarte rapid (practic,instantaneu), deoarece opera ia de refresh a bancului 1 a fost deja realizat . Seasigur astfel citirii o fluen aproape perfect .

Aceast metod are un dezavantaj: în cazul citirii din loca ii succesive, doarpare sau doar impare (la citiri succesive din acela i banc datele sunt scrise – celepare în primul banc, cele impare în cel de-al doilea banc), nu mai este timp derefresh între dou citiri consecutive i se vor introduce una sau dou st ri de

teptare ale procesorului (wait states), ceea ce determin încetinirea general avitezei sistemului. Plasarea pl cilor de memorie în bancuri separate este foarte utili uneori obligatorie, existând modele de plac de baz care nici nu func ioneaz cu

o singur pl cu de memorie.

ARHITECTURA SISTEMELOR DE CALCUL112

3.2.12. Memoria cache

Datorit vitezei foarte mari cu care lucreaz microprocesoarele, implicit ifluxul de date i informa ii cerute de acestea va fi foarte intens. Dar, deoarece unelecomponente din lan ul de transmisie a datelor sunt mai lente, în spe memoria delucru RAM (prin necesitatea de a fi reîmprosp tat ) i magistralele calculatorului(lente din principiu), acest flux de date cerut de procesor este mai pu in rapid decâtar fi necesar (de exemplu, memoria RAM asigur un timp de acces de 60–120 ns,ceea ce este foarte mult fa de nivelul de câteva nanosecunde, timp cu carelucreaz de obicei procesoarele pentru un anumit proces).

Ca atare, între posibilit ile de prelucrare a datelor de c tre microprocesor icapacitatea RAM-ului i magistralelor de a pune la dispozi ia microprocesoruluiaceste date a ap rut un decalaj foarte mare, ceea ce a dus în procesul de lucru alunui microprocesor la introducerea st rilor de pauz (wait states), astfel încât, prinexecu ia a unuia, a dou sau chiar a patru cicluri de a teptare, datele solicitate saib timp s ajung la procesor. Practic, se întâmpl urm torul lucru: microprocesorullucreaz fie cu datele necesare calculelor, fie cu comenzi. Cum datele i informa iilenecesare sunt cuprinse în memoria de lucru, microprocesorul cite te memoria RAM,preluând anumite date, i realizeaz calculele i procesele cerute.

Cum memoria este mult mai lent în livrarea datelor fa de viteza cu care lepoate prelucra microprocesorul, în func ionarea procesorului se introduc ciclurilede a teptare despre care s-a vorbit anterior; cât timp aceste cicluri se execut , sepermite datelor solicitate de procesor s fie localizate i „extrase“ din RAM,depuse pe magistrala de date i „transportate“ c tre microprocesor. În final, dac seva înmul i timpul cât dureaz un ciclu de a teptare cu milioanele de opera ii pesecund ale unui microprocesor, va rezulta o pierdere de timp substan ial .

Deci, era nevoie de o memorie de lucru ceva „mai aproape demicroprocesor“ i mult mai rapid (ideal f s necesite opera ii dereîmprosp tare). De aceea, între microprocesor i memoria de lucru a mai fostintrodus o component i anume memoria cache, realizat din celule de tipSRAM, cu rol de memorie tampon. La rândul s u, memoria cache a fost divizatfizic în dou niveluri i anume (vezi figura 3.37):

memoria cache primar sau intern (primary level cache, L1) memoria cache secundar sau extern (secundary level cache, L2 / L3).Memoria cache intern este plasat chiar în capsula microproceso-rului, dar

este de dimensiuni foarte mici, în general de la 8 KB (Pentium) pân la 1 MB (Xeon).Memoria cache secundar este exterioar microprocesorului i se monteaz

pe placa de baz a sistemului. Este sub form de cipuri (DIP) care se introduc însoclurile aferente, existând i aici, ca i la memoria RAM, 8 socluri pentrumemoria cache de lucru i un al 9-lea soclu pentru cipul de control al memorieicache. Tipurile mai noi de cache sunt oferite sub form de plachete asemeneaSIMM-urilor. Pl cile de baz actuale au uzual cel mult 2 MB de memorie cache.

Memoria cache este subordonat în activitatea ei unui controler de memoriecache (de exemplu, controlerul i82385) care va realiza gestiunea adreselor icontrolul opera iilor de citire/scriere.

Page 53: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 113

Fig. 3.37. Schema unei memorii cache într-un sistem Pentium:1. microprocesor;2. cache intern (un bloc de 8 KB);3. cache intern (al doilea bloc de 8 KB);4. cache extern;5. cip de marcare a zonelor de memorie cache (TAG RAM);6. memorie RAM.

Memoria cache internPrimul nivel de memorie cache (L1) se afl integrat în microprocesor i are o

por iune destinat datelor i instruc iunilor (codului) i o alta destinat comenzilor.Cele dou module de câte sunt complet separate i lucreaz independent.Dimensiunea memoriei cache interne cre te la procesoarele moderne.

Acest tip de memorie îmbun te mult performan ele, deoarece – fiind îninteriorul procesorului – transmisia de date este foarte rapid , nefolosindu-se înacest caz magistralele externe, foarte lente. În plus, fiind o memorie de tip SRAM,nu necesit reîmprosp tare i dispune de un timp de acces extrem de scurt. Maimult, la unele microprocesoare, cache-ul de date este împ it în blocuri, iarcontrolerul de cache va g si foarte rapid datele necesare, folosind o tabel index,alegând exact blocul de memorie care le con ine.

Memoria cache externDatorit dimensiunilor mici ale memoriei cache interne (limitele fiind

impuse din considerente tehnice de construc ie a microprocesoarelor) i pentru ari i mai mult performan ele sistemelor de calcul, mai ales pentru a cre te

ansele ca procesorul s g seasc datele necesare în cache (cache hit) i nu în RAMsau, mai r u, pe hard disk (cache miss), a fost introdus înc un nivel de memoriecache (L2 sau L3), de data aceasta în exteriorul microprocesorului, memorie careeste ca dimensiuni cu mult mai mare decât memoria cache intern (de ordinulmegaocte ilor).

Memoria cache extern este implementat pe placa de baz a sistemului.Este format din cipuri de memorie de tip SRAM, foarte rapide, cu timpi de accesextrem de mici (4–15 ns).

Exemplu. Pentru un procesor cu frecven a intern de 166 MHz, va fi nevoiede o memorie cache cache cu timp de acces de 100/166 = 6,02 ns.

Principiul de func ionare al unei memorii cache este sintetizat în figura 3.38.

ARHITECTURA SISTEMELOR DE CALCUL114

Fig. 3.38. Principiul memoriei cache.

3.2.12.1. Maparea memoriei cacheFigura 3.39 prezint schema logic a algoritmului de citire a memoriei cache.

Fig. 3.39. Opera ia de citire a memoriei cache.

Page 54: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 115

O caracteristic de baz a memoriei cache este func ia de mapare (detranslatare), care atribuie loca ii din memoria cache blocurilor din memoriaprincipal . Se pot utiliza patru tehnici:

maparea direct ; maparea asociativ ; maparea asociativ pe seturi; maparea pseudo-asociativ .Cu ajutorul politicilor de înlocuire se afl care loca ie din memorie poate fi

depozitat în cache i în care loca ie anume. Dac politicile de înlocuire au libertateade a alege orice loca ie din cache pentru a p stra copia, cache-ul se nume te(complet) asociativ. La extrema cealalt , dac fiecare por iune din memoriaprincipal poate merge într-o singur loca ie din cache, procedeul se nume te maparedirect . Cele mai multe memorii cache implementeaz un compromis între celedou , numit mapare asociativ pe seturi.

Exemplu. Se consider o memorie cache de 1024 B (1 KB). Datele se transferîntre memoria principal i cache în blocuri de câte 8 octe i. Înseamn c memoriacache are 128 de linii a câte 8 octe i fiecare. Memoria principal const din 64 KB,fiecare octet fiind direct adresabil printr-o adres de 16 bi i. Se poate considera cmemoria principal const din 8 Kblocuri de câte 8 octe i fiecare. Deoarece exist unnum r mai mic de linii ale memoriei cache fa de num rul blocurilor memorieiprincipale, este necesar un algoritm pentru plasarea blocurilor memoriei principaleîn liniile memoriei cache. În plus, este necesar un mijloc de a determina care blocal memoriei principale ocup la un moment dat o linie a memoriei cache.

Memoria cache cu mapare directÎn cazul tehnicii celei mai simple, numit mapare direct , fiecare bloc al

memoriei principale poate ocupa o singur linie posibil a memoriei cache, a acum este reprezentat în figura 3.40.

Maparea este:

C = A mod L, (3.5)

unde:C = num rul liniei din memoria cache;A = adresa din memoria principal ;L = num rul de linii din memoria cache.Pentru exemplul considerat, L = 128 i C = A mod128. Func ia de mapare

poate fi implementat simplu, utilizând adresa de 16 bi i. Cei 3 bi i mai pu insemnificativi, câmpul cuvânt (offset), identific un cuvânt (octet) unic în cadrulunui bloc al memoriei principale. Restul de 13 bi i specific unul din cele 213 = 8Kblocuri ale memoriei principale.

Câmpul de 7 bi i, numit linie sau index (slot), indic num rul blocului,modulo128. Astfel, blocurile 0, 128, 256, …, 8064 vor fi amplasate în linia 0;blocurile 1, 129, …, 8065 vor fi amplasate în linia 1, i a a mai departe, pân lablocurile 127, 255, …, 8191, care vor fi amplasate în linia 127.

ARHITECTURA SISTEMELOR DE CALCUL116

Fig. 3.40. Memorie cache cu mapare direct .

Câmpul de 6 bi i, numit marcaj sau etichet (tag), are rolul de a identificaîn mod unic blocul din linie. Astfel, blocurile 0, 128, 256, …, 8064 au numerele demarcaj 0, 1, 2, …, respectiv 63.

Considerând din nou figura 3.40, o opera ie de citire are loc astfel. Memorieicache i se prezint o adres de 16 bi i. Num rul liniei de 7 bi i este utilizat ca unindex în memoria cache pentru accesul la o anumit linie. Dac marcajul de 6 bi ieste egal cu marcajul liniei respective, atunci num rul de 3 bi i al cuvântului esteutilizat pentru a selecta unul din cei 8 octe i ai liniei respective. În caz contrar,marcajul i num rul liniei (în total 13 bi i) se utilizeaz pentru a înc rca un bloc dinmemoria principal .

Memoria cache cu mapare asociativMaparea direct este o tehnic care se poate implementa simplu. Principalul

dezavantaj al acesteia este c exist o loca ie fix în memoria cache pentru oricarebloc dat. Deci, dac un program face referire în mod repetat la cuvinte din doublocuri diferite care se mapeaz în aceea i linie, blocurile vor fi interschimbate înmod continuu în memoria cache i rata de succes va fi redus .

O metod care elimin dezavantajul map rii directe este maparea asociativ ,reprezentat în figura 3.41. În acest caz, adresa memoriei principale const dintr-unmarcaj de 13 bi i i un num r al cuvântului de 3 bi i. Un bloc din memoria principalse poate înc rca în oricare linie, iar marcajul s u de 13 bi i se memoreaz împreuncu blocul. Pentru a determina dac un bloc se afl în memoria cache, sunt necesarecircuite pentru a compara simultan marcajul s u cu marcajele fiec rei linii.

Page 55: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 117

Fig. 3.41. Memorie cache cu mapare asociativ .

În cazul map rii asociative, exist o flexibilitate în privin a înlocuirii unuibloc atunci când un nou bloc este înc rcat în memoria cache. Algoritmii deînlocuire a blocurilor din memoria cache, prezenta i în continuare, au rolul de acre te eficien a. Principalul dezavantaj al acestei metode îl reprezint circuitelecomplexe necesare pentru a examina marcajele tuturor liniilor din memoria cache.

Memoria cache cu mapare asociativ pe seturiMaparea asociativ pe seturi reprezint un compromis care re ine avantajele

map rii directe i ale celei asociative. În acest caz, memoria cache este împ it înI seturi, iar fiecare din acestea con ine J linii, a a cum rezult din figura 3.42.

Rezult :

L = I J, (3.6)

K = A mod I, (3.7)

unde K este num rul setului.Cu aceast metod , blocul con inând adresa A poate fi mapat în oricare din

liniile setului I.Observa ie. În cazul extrem, în care I = L i J = 1, maparea asociativ pe seturi

se reduce la maparea direct , iar dac I = 1 i J = L, se ob ine maparea asociativ .Utilizarea a dou linii pe set (J = 2) este cea mai utilizat organizare asociativ

pe seturi, care îmbun te semnificativ rata de succes fa de maparea direct .Exemplu. Cache-ul de nivel 1 din AMD Athlon este asociativ pe dou seturi,

adic orice loca ie din memoria principal poate fi depozitat în 2 loca ii din L1.

ARHITECTURA SISTEMELOR DE CALCUL118

Fig. 3.42. Memorie cache cu mapare asociativ pe seturi.

Memoria cache cu mapare pseudo-asociativMemoria cache asociativ pe seturi testeaz simultan toate c ile posibile,

folosind un mecanism asem tor con inutului adresabil al memoriei. Memoriacache pseudo-asociativ testeaz fiecare cale posibil o singur dat . În cele maimulte cazuri, când g se te un bloc din prima testare (succes), memoria cache pseudo-asociativ este la fel de rapid ca în cazul map rii directe, dar are o rat de e ec maisc zut decât în cazul map rii directe i mai aproape de cea a map rii asociative.

Analize i compara iiAsociativitatea poate fi privit ca un fel de schimb. Dac sunt zece unit i,

politica de înlocuire le trateaz ca o singur intrare, dar va trebui s caute în toatepentru un cache hit. A verifica mai multe loca ii consum mai mult putere, spa iui timp. Pe de alt parte, depozitarea folosind asociativitatea are câteva minusuri,

de aceea viteza procesorului scade. Regula ,,degetului mare” are rolul de a dublaasociativitatea de la maparea direct la cea asociativ pe dou c i i de la ceaasociativ pe dou c i la cea pe patru c i etc., având acela i efect ca în cazul unuicache hit. M rirea asociativit ii la peste patru c i are un efect mai slab decât încazul unui cache hit i este realizat , în general, pentru alte motive.

Dac fiecare loca ie din memoria principal poate fi depozitat în alte douloca ii din memoria cache, se pune întrebarea care din cele dou va fi folosit . Ceamai simpl i cea mai folosit schem utilizeaz LSB-ul câmpului linie (index) alloca iei de memorie ca index pentru memoria cache i are dou intr ri pentrufiecare linie. Avantajul acestei scheme este c etichetele stocate în cache nu trebuie

Page 56: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 119

includ acea parte a adreselor din memoria principal care sunt implicate încâmpul linie (index) al memoriei cache.

Atât timp cât etichetele cache reprezint doar câ iva bi i, ocup spa iu pu in,putând fi citite i comparate rapid. Unul dintre avantajele map rii directe este acela

las loc specula iilor rapide i simple. Atunci când o adres a fost calculat , i s-aata at index cache unic, care ar putea con ine datele. Noua intrare în cache poate ficitit , iar procesorul î i continu lucrul cu acele date pe care le avea înainte de atermina procesul de verificare, dac adresa cerut se potrive te cu eticheta actual .

Ideea ca procesorul s foloseasc date depozitate în cache înainte ca eticheta se potriveasc complet poate fi aplicat i la cache-ul asociativ. O parte din

etichet , numit cheie (hint), poate fi folosit pentru a alege una din adreselecerute, aflate posibil în harta cache. Aceste date pot fi folosite în paralel cuverificarea întregii etichete. Tehnica hint lucreaz excelent când este folosit încontextul translat rii adreselor.

Alte tehnici propun un cache „oblic” (skewed cache), unde indexul c ii 0este direct, dar indexul c ii 1 este format cu o func ie hash. O func ie hash decalitate are proprietatea c adresele care intr în conflict cu maparea direct tind snu mai aib conflicte când sunt mapate cu func ia hash i este mai nepl cut ca unprogram s sufere din cauza unui num r nea teptat de mare de conflicte. Pe de altparte, exist laten în implementarea func iei hash. În plus, când trebuie înc rcato nou linie i exclus una veche, ar putea deveni dificil s se determine care dintreliniile existente a fost ultima folosit , deoarece noua linie intr în conflict cu datelede la diferi i indec i ai fiec rei c i. Metoda LRU (vezi paragraful 3.2.12.3)urm re te principiul vecin ii (cache nears) într-un cache non-oblic (non-skewed),împ indu-l pe seturi. A adar, asociativitatea complet are un avantaj major fade asociativitatea pe seturi.

3.2.12.2. Eficien a i localizarea datelor în memoria cacheO memorie cache este util numai dac anumite informa ii sunt folosite

frecvent i mult timp. Atunci, acele informa ii merit s fie p strate în memoriacache. Din fericire, s-a constatat experimental c acest lucru este adesea adev rat.Aceast observa ie poate fi formulat în mai multe moduri, unul dintre acesteafiind principiul localiz rii (locality principle). Exist dou feluri de localizare:

localizare spa ial – dac este nevoie de unele date, în curând va finevoie probabil de date aflate în apropierea lor în memorie;

localizare temporal – când s-au g sit anumite date, foarte adeseaacestea vor fi folosite de mai multe ori.

Acestea sunt doar observa ii, dar se potrivesc destul de bine programelor, a acum func ioneaz acestea în calculatoarele actuale. Validitatea observa iilorpermite folosirea de memorii cache. Acesta nu înseamn c nu exist programecare folosesc prost memoriile cache; dimpotriv , se poate scrie destul de u or unastfel de program (este o metod „eficient ” de a încetini calculatorul). Programeleobi nuite îns nu se comport astfel.

ARHITECTURA SISTEMELOR DE CALCUL120

Eficien a unei memorii cache se m soar în procentajul de g siri ale datelor,numit rat de succes, H (hit rate). Opusul acestei valori este procentajul de rat ri,numit rat de e ec, M (miss rate). Procentajele acestea se m soar rulândnumeroase programe i f când media.

Rela ia în aceste dou valori este:

H = 1 – M. (3.8)

Dac timpul de citire din memoria cache este TH (hit time), iar timpul pierdutpân se rateaz este TM (miss time), atunci se poate m sura timpul mediu de accesla memoria cache cu urm toarea formul :

T = TH H + TM M. (3.9)

Se observ c timpul unei rat ri (TM) nu este neap rat egal cu timpul de citiredin memoria lent , Tl, deoarece, în cazul unei rat ri, întâi trebuie constatat dacdatele sunt în memoria cache, iar, dac nu sunt, se acceseaz memoria lent .Memoria cache va fi eficient dac T < Tl. Parametrul H depinde de m rimeamemoriei cache: pentru o memorie cache de dimensiunea memoriei lente (cazlimit ), toate datele pot fi inute în memoria rapid i se va ob ine H = 1. Pentru omemorie cache de dimensiune 0, H = 0, pentru c niciodat datele nu se g sesc înaceast memorie.

Rela ia între m rimea memoriei cache, a memoriei lente i parametrul H nueste o linie dreapt , ci cre te rapid la început, a a cum se observ în figura 3.43.Din cauza aceasta, o memorie cache relativ redus ca m rime are o importanmare ca eficien .

Fig. 3.43. Performan a memoriei cache.

Eficien a depinde i de raportul dintre TH i TM. În anumite cazuri, TM este deordinul a 104TH, deci chiar un parametru H de valoare redus poate însemna mult.

Exemplu. Procesorul Intel Xeon la frecven a de 3,06 GHz are o memorie cacheL3 de 1 MB, cu magistrala de sistem la 533 MHz, i contribuie la cre terea nivelului deperforman cu peste 15%.

Page 57: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 121

3.2.12.3. Reînnoirea con inutului memoriilor cacheÎn ceea ce prive te reînnoirea con inutului memoriilor cache, pentru

tergerea datelor curente i aducerea altora noi, sunt folosite mai multe metode: metoda RW (Random Write) sau de rescriere aleatorie: datele con inute

sunt rescrise aleator, f a folosi un anumit criteriu sau algoritm care sdetermine care bloc de date va fi rescris;

metoda FIFO (First In First Out): primul intrat – primul ie it, adic ,primele blocuri de date scrise în memorie sunt rescrise primele;

metoda LRU (Least Recently Used): datele folosite cel mai pu in recent;blocurile de date care, temporal, nu au fost folosite timp de cel mai lunginterval sunt rescrise primele, cele accesate de curând fiind p strate;

metoda LFU (Least Frequently Used): datele folosite cel mai pu infrecvent; blocurile de date care, statistic, au fost folosite cel mai rar suntrescrise primele, cele folosite mai des fiind p strate.

Alte metode sunt: politica circular (round robin), politica setului de lucru(working set), politica optim (optimal), politica ceasului (clock), politica celei de-adoua anse (second chance) etc. Metoda cea mai folosit este LRU; de aceea, celde-al 9-lea cip de memorie cache (TAG RAM) va juca i rol de contor al frecven eide apelare a datelor din cache, determinându-se datele care vor fi rescrise.

Modul de lucru general al microprocesoarelor cu memoria cache esteurm torul: programul va c uta datele, prin intermediul controlerului de cache, încache-ul intern. Dac datele solicitate nu se afl la acest nivel (cache miss), vamerge mai departe cu c utarea în cache-ul extern i apoi, în cazul neg sirii acestoranici aici, în memoria principal RAM. Probabilitatea ca procesorul s g seascdatele necesare într-unul din cele dou niveluri cache este îns destul de mare.Totodat , magistrala memoriei care, în lipsa cache-ului, ar fi fost solicitat pentruopera ii cu RAM-ul, este disponibilizat pentru alte procese.

3.2.12.4. Conectarea memoriei cache la microprocesorMemoria cache este conectat cu microprocesorul i memoria RAM în

sistem serial sau paralel.Conectarea serial (look through) – vezi figura 3.44 – presupune ca

dialogul microprocesor–RAM s se desf oare prin intermediul cache-ului. Acestsistem are dezavantajul c cererile procesorului sunt întârziate de intermediarulcache, dar are avantajul c magistrala memoriei nu este ocupat la fiecare cerere aprocesorului. Dac datele solicitate se afl în cache (cache hit), interogareamemoriei RAM nu se mai efectueaz , iar magistrala memoriei r mâne liber .

Conectarea paralel (look aside) – vezi figura 3.45 – presupune camicroprocesorul s se adreseze, în paralel, atât memoriei cache cât i memorieiRAM. În cazul în care ecoul din partea cache-ului este pozitiv, adresarea c treRAM este abandonat . De aici rezult , fa de metoda anterioar , avantajul vitezei,evitându-se c utarea secven ial : întâi în cache, apoi în RAM. Dezavantajul apareprin faptul c magistrala memoriei este tot timpul folosit i, astfel, nu mai estedisponibil – în momentele de scanare a memoriei – altor acces ri din parteaperifericelor. Mai ales în modul multitasking, acest lucru se reflect în întârzierisemnificative ale vitezei de execu ie a diferitelor sarcini.

ARHITECTURA SISTEMELOR DE CALCUL122

Fig. 3.44. Organigrama conect rii seriale (look through).

Fig. 3.45. Organigrama conect rii paralele (look aside).

3.2.12.5. Depunerea în memorie a rezultatelorIndiferent de tipul func iei de mapare, fiec rui bloc din memoria cache îi

sunt asocia ii doi bi i de comand , numi i V i D.Bitul V este un bit de validare a blocului, V = 1 fiind o condi ie necesar a

ob inerii unui cache hit. Bitul V este util îndeosebi în sistemele multiprocesor, învederea men inerii coeren ei memoriilor cache locale, datorit redundan eiinforma ionale. Mai precis, aici apare necesitatea citirii din cache-ul propriu aultimei cópii modificate a datei respective. Când un procesor modific o copielocal a unei date, toate blocurile care con in acea dat din cadrul celorlalteprocesoare trebuie invalidate prin resetarea V = 0.

Necesitatea invalid rii blocurilor (V = 0) apare chiar i în sistemeleuniprocesor. Imediat dup resetarea sistemului, uzual, procesorul execut unprogram înc rc tor rezident în memoria EPROM. Cum imediat dup ini ializareasistemului con inutul cache-ului este, practic, aleator, pentru a evita falsele situa iide cache hit, la citirea programului înc rc tor din EPROM, se ini ializeaz bi ii Vcu zero. La prima înc rcare a unei date (instruc iuni) în cache, bitul V aferent se vaseta pe 1, validând astfel situa ia de cache hit.

Page 58: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 123

Bitul D (dirty data) este pus pe 0 la înc rcarea ini ial a blocului în cache. Laprima scriere a acelui bloc, bitul se pune pe 1. Evacuarea propriu-zis a blocului seface doar dac bitul D = 1. Practic, prin acest bit se minimizeaz evacu rile deblocuri în memoria principal , pe baza principiului c un bloc trebuie evacuatnumai dac a fost scris în cache. În acest sens, din punct de vedere al acces rilor descriere de c tre procesor (depunerea în memorie a rezultatelor), exist trei posibilit i:

metoda Write Through vezi figura 3.46 , în care se utilizeaz traseulinvers al citirii datelor, blocurile fiind depuse mai întâi în memoria cacheintern , apoi în cache-ul extern i în final în memoria RAM;

Fig. 3.46. Schema metodei Write Through.

metoda Write Back figura 3.47 , în care scrierea se face în cache, încazul în care adresa de memorie la care se face scrierea exist i ea încache (de fapt, dac blocul de date de la acea adres se afl înc rcat încache). În cazul în care blocul de date localizat de acea adres nu maiexist în cache, scrierea se face direct în RAM;

Fig. 3.47. Schema metodei Write Back.

metoda Posted Write, prin care din memoria cache este rezervat oanumit por iune care va juca un rol de buffer i în care vor fi memorateblocuri de date pân când magistrala memoriei devine disponibil ,moment în care buffer-ul î i transfer con inutul în RAM.

În vederea men inerii coeren ei memoriilor cache, cu prec dere în sistemelemultiprocesor, exist dou posibilit i, în func ie de procesul de scriere:

Write Invalidate, prin care CPU care scrie determin ca toate copiile dincelelalte memorii cache s fie invalidate înainte ca ea s i modificeblocul din cache-ul propriu;

Write broadcast, prin care CPU care scrie pune data de scris pe magistralacomun , spre a fi actualizate toate copiile din celelalte cache-uri.

Ambele strategii de men inere a coeren ei pot fi asociate cu oricare dintremetodele de scriere, dar de cele mai multe ori se prefer Write Back cu invalidare.

ARHITECTURA SISTEMELOR DE CALCUL124

3.2.12.6. Cache hit i cache missÎntr-o memorie cache, apar posibile patru procese distincte, ca în tabelul 3.4.

Tabelul 3.4Tipuri de acces în memoria cache

tip acces situa ie în cache ac iune în cache

citire miss evacuarea blocului i înc rcarea unuibloc nou

citire hit compararea marcajelor/etichetelor(tag)

scriere miss evacuarea blocului, înc rcarea unuibloc nou i scrierea datei în bloc

scriere hit scrierea datei în blocul din cache(Write Back)

adar, memoriile cache îmbun esc performan a, îndeosebi pe citirile cucache hit, iar, în cazul utiliz rii scrierii tip Write Back, i pe scrierile cu cache hit.Îmbun irea accesului la memorie pe citirile CPU este normal , având în vedere

acestea sunt mult mai frecvente decât scrierile (orice instruc iune implic celpu in o citire din memorie pentru înc rcarea sa; statistic, cca. 75 % din acces rile lamemorie sunt citiri, unii autori sus inând c raportul real citiri/scrieri este de 9/1).

Cache miss se refer la încercarea nereu it de a citi sau scrie o parte dindate în memoria cache, ceea ce rezult în scrierea/citirea în memoria principal culaten e mai mari. Explica iile pentru cauzele situa iilor de cache miss, conformliteraturii de specialitate, sunt de trei tipuri:

la citirea instruc iunilor; la citirea datelor; la scrierea datelor. Un cache miss la citirea instruc iunilor cauzeaz , în general, întârzieri,

deoarece procesorul sau ultimul fir de execu ie trebuie s a tepte pân cândinstruc iunile sunt aduse din memorie.

Un cache miss la citirea datelor cauzeaz întârzieri mai mici, deoareceinstruc iunile nu depind de citirea cache-ului, putând fi evitate, pân când datelesunt preluate din memoria principal i instruc iunile care depind de acestea î icontinu execu ia.

Un cache miss la scrierea datelor cauzeaz întârzieri mici, deoarece scriereapoate fi pus într-o coad de a teptare i sunt câteva limit ri în execu iainstruc iunilor. Procesul poate continua pân când coada este plin .

Secven e de referin e din memorie trecute prin benchmark-uri sunt salvate caurme de adrese. Ulterior, analizele simulate au ar tat posibile diferen e întrelungimile urmelor de adrese, în func ie de designul memoriei cache. Cercet torulMark Hill a separat situa iile de cache miss în trei categorii:

Page 59: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 125

Rat ri obligatorii (compulsory misses) – sunt acele pierderi cauzate deprimele referiri la date. M rimea i asociativitatea memoriei cache nu facnicio diferen între num rul de rat ri obligatorii. Aducerea timpurile aoperanzilor din memorie nu este util în acest caz.

Rat ri de capacitate (capacity misses) – sunt acele pierderi care privescasociativitatea sau m rimea blocurilor, f cute numai de blocurile finitedin cache. Curba ratei pentru rat rile de capacitate în func ie decapacitatea memoriei cache d m sura localiz rii temporale a unui irtemporar de referin e. Informa iile care indic dac memoria cache esteplin , goal sau aproape plin nu sunt utile în acest caz.Observa ie. Cache-ul procesorului are aproape mereu fiecare linieumplut cu o copie a unei linii din memoria principal i de fiecare datalocarea unei noi linii necesit tergerea uneia vechi.

Rat rile de conflict (conflict misses) – sunt acele pierderi care ar puteafi evitate dac cache-ul n-ar elimina o intrare mai târziu. Rat rile deconflict pot fi puse într-o hart de rat ri (miss map), care este inevitabili care ofer un detaliu particular asociativit ii i politicii de înlocuire.

Fig. 3.48. Rata de pierderi (miss rate) în func ie de capacitatea memoriei cache.

Graficul din figura 3.48 ilustreaz performan ele memoriei cache, ob inutepe un benchmark pentru întregi din SPEC2000. Aceste benchmark-uri reprezintgradul de înc rcare al unei sta ii de lucru. Rata de pierderi în cazul asociativit iieste sensibil superioar celei pentru mapare direct . Diferen ele ob inute se explicprin utilizarea algoritmului de înlocuire LRU. Se observ , de asemenea, c pentrumemorii cache de dimansiune foarte mare, decalajele devin nesemnificative.

3.2.12.7. Tipuri de celule cache

În func ie de modul de citire a cuvintelor, celulele memoriei cache pot fi: asincrone, la care opera ia de citire a unui cuvânt se face în dou etape:

se depune adresa, apoi se transfer datele, pentru fiecare cuvânt fiindnecesar acela i ritual. Aceste cipuri se livreaz sub form DIP.

ARHITECTURA SISTEMELOR DE CALCUL126

sincrone, pentru care accesul se face în mod burst (se depune o singuradres , iar transferul se face pentru patru cuvinte simultan, primul cuvântcu adresa indicat de controlerul de cache i urm toarele trei). Timpul deacces scade destul de mult, ajungând pân la 9 ns. Cipurile sincrone suntimplementate direct prin lipire pe placa de baz a sistemului.

pipe-line burst cache, care este prev zut la ie ire cu registre speciale, încare datele citite sunt stocate temporar. Astfel, este posibil o nouadresare, practic, în acela i timp cu preluarea datelor de c tremicroprocesor din registrele de stocare (latch). Timpul de acces scadefoarte mult (chiar la 4 ns), fapt care duce la performan e deosebite pentrusistemele dotate cu astfel de celule de memorie cache.

3.2.12.8. Memorii cache specializateAccesul la memoriile din procesor cu tehnica pipeline, cu stagii multiple ale

pipeline-ului, presupune: aducerea instruc iunilor din memorie (instruction fetch); translatarea adresei virtuale în adres fizic (Translation Look-aside Buffer); aducerea datelor din memorie (data fetch)Designul natural tinde s utilizeze diferite adrese fizice din cache pentru

fiecare dintre aceste stagii, astfel încât nicio resurs fizic nu trebuie programat sserveasc simultan dou stagii diferite din pipeline.

Astfel de pipeline-uri se termin cu cel pu in trei memorii cache separate(pentru instruc iuni, TLB i date), fiecare fiind specializat pe un anumit rol. Dacpipeline-urile au instruc iunile i datele separate în memoria cache, se poate spune

este emulat o arhitectur de tip Harvard. Ini ial, aceast faz s-a reg sit lama inile cu instruc iuni i date separate în memorie. Dar cele mai multe dintrecalculatoarele moderne sunt concepute în arhitectur von Neumann.

Cache victim (victim cache)Cache-ul victim este o memorie cache folosit pentru a re ine blocurile

terse din cache-ul procesorului, datorate unui conflict sau unei rat ri. Cache-ulvictim se afl între cache-ul principal i zona de reumplere, de inând numaiblocuri care au fost eliminate din cauza unui cache miss. Aceast tehnic esteutilizat pentru a reduce penaliz rile suportate de memoria cache la o ratare.

Exemple. Cache-ul victim original de pe HP PA 7200 a fost mic i completasociativ. Mai târziu, procesoare precum AMD K7 i K8 au folosit mult memoriecache secundar pe post de cache victim , pentru a evita duplicatele de stocare.

Cache de urm rire (trace cache)Unul dintre exemplele cele mai extreme de specializare a memoriei cache

este cache-ul de urm rire, g sit în microprocesoarele Intel Pentium 4. Trace cacheeste un mecanism destinat cre terii gradului de aducere din memorie ainstruc iunilor (instruction fetch) i l rgimii de band , precum i reduceriiconsumului de putere (în cazul lui P4), prin stocarea urmelor (traces)instruc iunilor care au fost aduse din memorie i decodate.

Page 60: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 127

Un trace cache stocheaz instruc iuni chiar i dup ce acestea au fostdepozitate sau retrase. În general, instruc iunile sunt ad ugate în trace cache îngrupuri care reprezint blocuri individuale de baz sau urme dinamice (dynamictraces). Un bloc de baz const dintr-un grup de instruc iuni neramificate,terminate cu ramifica ii. O urm dinamic include numai instruc iuni ale c rorrezultate sunt utilizate efectiv i elimin urm toarele instruc iuni luate caramifica ii (atât timp cât acestea nu sunt executate), o urm dinamic putând fi oconcatenare de mai multe blocuri de baz . Acesta permite unit ii de fetch a unuiprocesor s aduc din memorie câteva blocuri de baz f s se preocupe deramifica iile aflate în execu ie.

Liniile de urm rire sunt stocate în cache pe baza unui num tor de programaflat în prima instruc iune a urmei. Aceasta permite depozitarea pentru diferite c i aurmelor care încep de la aceea i adres , fiecare reprezentând rezultate diferite aleramifica iei. În etapa de aducere din memorie (fetch) a unui pipeline, num torulde program curent, împreun cu un set de predic ii ale instruc iunilor ramificate(branch prediction), este pus în memoria cache, mai exact, în trace cache, pentru ositua ie de cache hit. Dac apare un cache miss, începe construc ia unei noi urme.

Cache-ul victim este folosit în procesorul P4, pentru a stoca micro-opera iideja decodate sau transla ii ale instruc iunilor de pe sisteme 86, astfel încât, atuncicând va fi necesar o instruc iune, aceasta nu va mai trebui decodat din nou.

Cache multinivel (multilevel cache)O alt problem este schimbul între laten a memoriei cache i rata de succes

(cache hit). Memoriile cache mari au o rat de succes mai bun , dar laten e mari.Pentru a rezolva aceast problem , în majoritatea calculatoarelor se folosesc maimulte nivele de cache, cu blocuri de cache mai mici i rapide, grupate într-unul maimare i lent.

Un cache multinivel opereaz c utând prima dat în nivelul cel mai de jos(L1) i, în cazul unui cache hit, viteza de procesare cre te. Dac apare cache missîn module cache mici, atunci se caut în cache-ul cel mare (L2) i, mai departe, înmemoria principal . Diferen a de laten între memoria principal i memoriacache a devenit mai important . Unele memorii cache au început s utilizeze maimult de 3 nivele pe un chip.

Exemplu. În 2003, procesorul Itanium 2 a început s fie livrat cu 6 MB decache L3 pe cip. Sistemele IBM Power 4 aveau 256 MB de cache L3 pe cip,partajat între mai multe procesoare. Procesorul AMD Phenom folose te 2 MB decache L2 în schimbul celui L3.

Scratch PadFolosirea eficient a spa iului de memorie integrat în cipul procesorului (on-

chip) este extrem de important în aplica iile moderne ale sistemelor dedicate(embedded systems), bazate pe nucleele procesoarelor. În completarea memorieicache de date, care realizeaz interfa a cu memoria mai lent din afara cipuluiprocesorului (off-chip), în diverse aplica ii se folose te adesea o memorie SRAMrapid , de tip on-chip, numit memorie scratch pad (vezi schema din figura 2.29)

ARHITECTURA SISTEMELOR DE CALCUL128

Cache integrat i cache divizatMemoria cache multinivel introduce un nou design al deciziilor.Exemple. În unele procesoare, toate datele din cache-ul L1 trebuie s se

seasc undeva în cache-ul L2. Aceste memorii sunt numite cache strict inclusiv.Alte procesoare (cum ar fi AMD Athlon) au un cache exclusiv: datele suntgarantate a fi în cel mult unul dintre nivelele L1 sau L2, nu în amândou . Totodat ,alte procesoare, precum Intel PII, PIII i P4, nu solicit ca datele din cache-ul L1 sse g seasc i în L2, de i ar putea face acest lucru.

Nu sunt acceptate nume universale pentru aceast politic intermediar , de itermenul inclusiv a fost deja folosit. Avantajul cache-ului exclusiv este acela cdepoziteaz mai multe date. Acest avantaj este cu atât mai mare, cu cât cache-ul L1exclusiv este compatibil cu L2, caz în care se diminueaz memoria L2, aceastafiind mai mare decât L1. Când apare o situa ie de cache miss în L1 i cache hit înL2 la un acces, linia din cache-ul L2 pe care se afl blocul cu hit este schimbat cuo linie din L1. Acest schimb implic ceva mai mult munc decât copierea linieidin L2 în L1, ceea ce o face doar cache-ul inclusiv.

Un avantaj al cache-ului strict inclusiv este c atunci când dispozitiveleexterne sau alte procesoare într-un sistem multiprocesor doresc s tearg o liniecache, nu au decât s caute în L2. În memoria cache, ierarhiile care nu au pus înaplicare mecanismele includerii trebuie s verifice i cache-ul L1. În schimb, existo corela ie între asociativitatea cache-ului L1 i cea a cache-ului L2: dac cache-ulL2 nu are cel pu in atâtea c i ca L1, asociativitatea cache-ului L1 esterestric ionat .

Cache-ul strict inclusiv folose te linii de dimensiuni mari în cache, ceea cereduce m rimea etichetelor din cache-ul secundar (cache-ul exclusiv necesit caambele cache-uri s aib linii de aceea i dimensiune, pentru a le putea schimbacând în L1 apare cache miss i în L2, cache hit). Dac cache-ul secundar este cu unordin de m rime mai mare i datele sunt tot cu un ordin de m rime mai mari decâtetichetele, aceast zon poate fi etichetat ca zon de salvare i poate fiincrementat comparabil pân la dimensiunile zonei de care au nevoie L1 i L2 sdepoziteze date.

Dup cum s-a mai spus, calculatoarele puternice au un alt cache între L2 imemoria principal , numit cache de nivel trei (L3). Acest cache poate fiimplementat pe un chip separat de procesor i, începând din 2004, poate varia ca

rime de la 2 la 250 MB. Beneficiile unui chip L3 depind de cererea de acces aaplica iilor. Sta iile de lucru high-end i serverele au memoria de tip L3implementat în procesor, ceea ce duce la m rirea vitezei i reducerea costurilor.

Exemplu. Intel Xeon MP, produs numit Tulsa, are un cache L3 încorporatde 16 MB, partajat între cele dou nuclee ale procesorului.

În cele din urm , la cel lalt cap t al ierarhiei (în cazul sta iilor de lucru low-end), registrul de fi iere al procesorului poate fi considerat drept cel mai mic i celmai rapid cache din sistem, cu caracteristica de a fi programat software de uncompilator, ca i cum ar aloca registre pentru a p stra valori primite din memoriaprincipal .

Page 61: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 129

Studiu de caz: memoria cache la procesorul AMD Athlon 64 (K8)Pentru a exemplifica specializ rile cache-ului multinivel, integrat i divizat, se

folose te ierarhia din nucleul K8 al procesorului AMD Athlon 64 (vezi figura 3.49).

Fig. 3.49. Structura nucleului K8 al procesorului AMD Athlon 64.

Nucleul K8 are patru memorii cache: una pentru instruc iuni, una pentrublocul TLB, una pentru datele TLB-ului i una pentru date. Fiecare dintre acestecache-uri este specializat:

1. Cache-ul pentru instruc iuni p streaz cópii ale celor 64 de linii alememoriei i aduce din memorie 16 B la fiecare ciclu. Fiecare octet din acest cacheeste depozitat în 10 bi i în loc de 8, cu un marcaj suplimentar de bit al limitelorinstruc iunilor (acesta este un exemplu de precodare). Cache-ul are doar protec iede paritate, mai degrab decât ECC, deoarece informa ia de paritate ocup spa iumai pu in, iar datele avariate pot fi înlocuite de date proaspete aduse din memorie.

2. Instruc iunile blocului TLB p streaz cópii ale intr rilor din tabelulpaginilor (PTE). Fiecare ciclu de instruc iuni adus din memorie are propria saadres virtual , translatat cu ajutorul TLB-ului într-o adres fizic . Fiecare intrareare 4 sau 8 octe i în memorie, iar fiecare TLB este împ it în dou sec iuni: unapentru a p stra PTE-urile care ocup 4 KB din hart i alta pentru a p stra PTE-urile care ocup 2 sau 4 MB din hart . Împ irea permite o potrivire a circuituluiîn fiecare sec iune în mod complet asociativ. Sistemul de operare mapeaz sec iunidiferite ale spa iului de adrese virtuale cu diferite m rimi ale PTE-urilor.

3. Datele TLB-ului au dou cópii, care con in intr ri identice. Cele dou cópiipermit accesul la dou date per ciclu, pentru a translata adresele virtuale în adresefizice. Ca i instruc iunile TLB-ului, i aceasta este împ it în dou tipuri de intr ri.

4. Datele cache-ului p streaz cópii ale celor 64 de linii ale memoriei. Esteîmp it în 8 bancuri (fiecare depozitând câte 8 KB de date) i poate aduce dinmemorie doi octe i de date pe ciclu.

ARHITECTURA SISTEMELOR DE CALCUL130

Nucleul K8 are, de asemenea, un cache multinivel. Exist instruc iuni denivel 2 i date ale TLB-ului care depoziteaz numai PTE-uri mapate pe 4 KB.Ambele cache-uri, de instruc iuni i de date, pot fi umplute din cache-ul L2. Acestcache este exclusiv, atât pentru instruc iunile cât i pentru datele din L1, ceea ceînseamn c orice linie de 1 octet se poate g si numai într-o singur instruc iunedat cache-ului L1 sau în cache-ul L2. Cu toate acestea, este posibil ca o linie dedate în cache s aib un PTE care este într-unul din TLB-uri – sistemul de operareeste responsabil cu p strarea TLB-ului coerent.

3.2.12.9. ConcluziiSe poate spune c introducerea în practic a conceptului de memorie cache

ca memorie tampon a adus o serie de îmbun iri sistemelor de calcul, m rindfoarte mult viteza de procesare, desigur în func ie i de dimensiunea memorieicache instalate în sistem. Totu i, se poate pune i aici o întrebare: pân unde poatemerge memoria cache ca dimensiune i cât de folositoare este m rimea acesteia?

În ultimul timp se construiesc sisteme care pot avea pe placa de baz pân lacâ iva megaocte i de cache extern. Dar o supradimensionare a memoriei cacheexterne f a se ine seama de scopul în care va fi folosit calculatorul nu va ducedecât la înc rcarea notei de plat (memoria cache, fiind o memorie static , este cumult mai scump decât RAM-ul), deoarece avantajele ob inute vor fi insesizabile.

Datorit faptului c procesorul execut programele pe segmente, bucle deprogram de maximum 64 KB, un astfel de segment poate fi cuprins în primii 64 KBai memoriei cache. Deci, un spor de vitez de circa 90–95% (din totalul sporului adusde o memorie cache montat ) se va ob ine folosind doar 64 KB de memorie cache.Ridicând dimensiunea cache-ului la 256 KB se va ob ine o cre tere doar de 2–3 %.

Se consider c o memorie cache de 256 KB este suficient pentru un procesorPentium, în timp ce pentru Pentium Pro este nevoie de 512 KB cache în condi ii delucru deosebite, iar pentru procesoarele actuale valorile de ordinul MB au devenit dejacomune. Problema care se pune este atunci când se lucreaz în mod multitaskingsau în re ea, i unde cei 64 KB cache de date ai unei sarcini sunt înlocui i de cei 64KB ai altei sarcini, la viteze foarte mari. În acest caz, este evident c procesorul vaavea nevoie de mai multe „depozite“ de 64 KB, pentru fiecare sarcin cel pu indou , astfel încât s creasc probabilitatea ca procesorul s i g seasc datelenecesare într-unul din aceste „depozite“ cache, f s fie nevoit s mai accesezeRAM-ul. De aceea, în cazul în care calculatorul va juca rol de file server sau va fifolosit în activit i multitasking, este necesar mult mai mult memorie cache.

3.2.4. Memoria ROM

Un alt tip de memorie folosit în construc ia calculatoarelor i a unorechipamente periferice este memoria ROM (Read Only Memory). Spre deosebirede memoria RAM, aceast memorie, odat scris prin procedee industriale, nu maipoate fi tears prin metode aflate la îndemâna utilizatorului; în plus, la decuplareade sub tensiune a calculatorului, informa iile din ROM r mân intacte.

Page 62: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 131

tergerea anumitor memorii ROM, de construc ie special (PROM,EPROM, EEPROM) se poate face prin lansarea unui spot de radia ii ultravioleteasupra ferestrei de cuar cu care este prev zut cipul de memorie. Scriereamemoriilor ROM presupune un atac distructiv i ireversibil asupra diodelor itranzistoarelor, prin „arderea” jonc iunilor interne. Rezultatul acestei ac iuni deardere se observ prin modificarea con inutului informa iei binare.

În prezent, exist pl ci de baz dotate cu astfel de circuite care permitrevitalizarea rutinelor BIOS prin copierea în ROM, cu ajutorul unui softspecializat, a unor versiuni mai noi i mai performante. Deci, ca o concluzie debaz , datele scrise în memoria ROM au un caracter permanent i au o importanvital în ini ializarea i func ionarea oric rui sistem de calcul.

Memoria ROM are aspectul unui circuit integrat cu dou rânduri de pini (DIP)i este montat de placa de baz a calculatorului prin intermediul unui soclu. Intern,

memoriile de acest tip sunt realizate din re ele rectangulare de microtranzistoaresau microdiode. Accesarea memoriei ROM se face la fel ca la RAM.

O celul de memorie este alc tuit dintr-un circuit basculant bistabil (CBB).Pentru a realiza mai multe celule, se aranjeaz CBB-urile sub forma unui tablou cuun num r de coloane i rânduri. În general num rul rândurilor este egal cu cel alcoloanelor. Fiecare celul se afl la intersec ia unei anumite linii X i a uneianumite coloane Y (vezi figura 3.50).

Fig. 3.50. Organizarea memoriei RAM.

Organizarea memoriei sub form de matrice permite reducerea num ruluiintr rilor de adrese la un num r mai mic decât num rul liniilor i al coloaneloraferente informa iei stocate. Num rul terminalelor de adresare poate fi mic oratprin adresarea în cod binar i utilizarea decodificatoarele binar-zecimale. Acestmod de adresare în cod binar este utilizat i în cazul memoriei RAM.

Exemplu. Fie o memorie ROM care con ine 8 cuvinte de câte 4 bi i (vezifigura 3.51.a). O combina ie binar care se aplic pe cele 3 intr ri de adres (A2,A1, A0) selecteaz unul din cele 8 cuvinte, iar cei 4 bi i de date ai cuvântuluiselectat sunt disponibili la ie iri (O0, O1, O2, O3), cu condi ia ca semnalul devalidare a ie irii, OE (Output Enable) s fie activ (activarea se face pe 0 logic).

ARHITECTURA SISTEMELOR DE CALCUL132

Dac OE = 1, ie irile memoriei sunt în starea de impedan înalt (high Z). Tabelulde adev r din figura 3.51.b este un exemplu care arat o posibilitate de implementarea 4 func ii binare de câte 3 variabile.

Fig. 3.51.a. Memorie ROM cu 8 cuvinte de 4 bi i; b. Tabelul de adev r asociat.

Structura intern a unui cip de memorie ROM organizat pe 1024 cuvinte acâte 8 bi i, adic 1 K 8, este prezentat în figura 3.52. Matricea de memorie seconstruie te sub o form cât mai apropiat de cea a unui p trat. Liniile matriceisunt selectate cu ajutorul decodificatorului cu 7 intr ri de selec ie, iar coloanele, cuajutorul celor 8 multiplexoare a câte 3 intr ri de selec ie. Intrarea suplimentar , CS(Chip Select), activ pe 0 logic, preg te te cipul de memorie în vederea uneiopera ii de citire a datelor. Prin dezactivare, ac ioneaz asupra circuitelor dinstructur în scopul reducerii consumului. Schema con ine i aspectul unui elementdin matricea de memorie, dac aceasta este realizat în tehnologia MOS.

Fig. 3.52. Structura intern a unui cip de memorie ROM cu 1024 cuvinte de 8 bi i.

Pentru realizarea memoriei ROM, sunt utilizate tehnologii bipolare (TTL,TTL-Schottky, ECL), tehnologii metal-oxid-semiconductor (MOS) cu canal N (N-MOS), cu canal P (P-MOS), cu simetrie complementar (CMOS), cu canal negativ(NMOS) sau tehnologii cu logic integrat de injec ie (I2L).

Page 63: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 133

Ca urmare, performan ele poart amprenta caracteristicilor tehnologice: bipolar – vitez de procesare mare, putere disipat ridicat , densitate de

integrare sc zut ; MOS – densitate de integrare ridicat , vitez de procesare mai sc zut

decât la bipolar , putere disipat relativ sc zut ; CMOS – putere disipat foarte sc zut i vitez de procesare mare.În alegerea unui circuit integrat de memorie, trebuie s se aib în vedere: tensiunea de alimentare; capacitatea; modul de organizare (lungimea cuvântului, semnalele de control i adres ); puterea disipat (în regim de func ionare sau în regim de rezerv stand-by); timpul de acces; timpul de ciclu memorie; disponibilitatea; pre ul de cost.Orice sistem de calcul folose te o memorie ROM care con ine urm toarele

sisteme software:1. Sistemul cu program starter sau ROM-ul de start, adic microcodul cu

rol de asistare i control al pornirii sistemului. Aici se afl înscrise mici rutine carerealizeaz urm toarele ac iuni:

execut testele de func ionalitate ale tuturor componentelor ata ate hardware; ini ializeaz toate componentele ata ate calculatorului; ini ializeaz tabela vectorilor de întrerupere; verific alte extensii sau periferice ata ate sistemului de calcul; încarc în memorie, de pe disc, sistemul de operare.Testele de verificare, care formeaz a a-numitul POST (Power On Self

Test), dureaz foarte pu in pentru verificarea pl cii de baz , a controlerului de disc,a pl cii video, a unit ilor de disc, i ceva mai mult pentru memoria RAM, care esteverificat kilooctet cu kilooctet. Automat, în cazul în care se detecteaz anumiteerori i disfunc ii pentru oricare din componentele hardware, se va lansa un mesajde avertizare. Sistemul de operare, odat înc rcat în RAM, va prelua conducerea igestiunea sistemului de calcul.

2. ROM-BIOS (Basic Input Output System) este o parte a memoriei ROMcare va asigura toate procesele i serviciile necesare activit ii calculatorului, precumi gestiunea perifericelor, prin intermediul rutinelor con inute. BIOS-ul con inut de

ROM este elementul de leg tur sau interfa a direct între partea hardware i ceasoftware, prin care se realizeaz hard cererile soft ale programelor, folosindîntreruperile cu serviciile aferente. Practic, orice program acceseaz partea hardwareprin intermediul BIOS. Rutinele con inute vor activa canalele de comunica ie dintrecomponentele sistemului i un sistem de operare sub care lucreaz acesta.

3. ROM-Basic este un program op ional, care con ine nucleul limbajului Basic.4. Extensiile ROM reprezint un sistem care con ine anumite rutine

necesare gestiunii dispozitivelor ata ate.

ARHITECTURA SISTEMELOR DE CALCUL134

Întreaga memorie ROM este activ pe tot parcursul lucrului cu calculatorul.Înc de la pornirea i ini ializarea calculatorului (la înc rcarea sistemului de

operare), în situa iile ap rii tastei Delete, BIOS-ul va furniza o interfa de dialogcu utilizatorul, prin care va oferi o serie de informa ii privind starea func ional istructura sistemului de calcul. Prin intermediul unor meniuri, se poate modifica oserie de parametri pentru a se ob ine un mod de lucru optim i rapid.

Fig. 3.53. Modul de organizare al memoriei.

Page 64: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 135

Ultimii 128 KB rezerva i din zona de memorie superioar (vezi figura 3.53)sunt utiliza i de componenta BIOS de pe placa de baz . Componenta BIOS este, deobicei, memorat în cipuri de memorie ROM. Programele din componenta ROMBIOS controleaz sistemul pe durata pornirii (pân la preluarea controlului de c tresistemul de operare) i r mân ca driver-e pentru subsistemele hard pe duratafunc ion rii normale a sistemului. Deoarece aceste programe trebuie s fiedisponibile imediat, la pornirea sistemului ele nu pot fi înc rcate de pe discuri (saualte dispozitive de memorare).

Principalele func ii ale programelor de pe placa de baz sunt: autotestarea la punerea sub tensiune (POST); rutina de înc rcare a sistemului de operare (bootstrap loader) – ini iaz

utarea sistemului de operare pe discurile disponibile; sistemul de baz pentru opera ii de intrare-ie ire (BIOS) – este interfa a

soft sau programul principal de control pentru toate componentele hardale sistemului.

Acest sistem con ine un prim meniu – Standard CMOS Setup –, unde sestabilesc tipul i parametrii unit ilor de disc, tastaturii sau pl cii video, ora i datacurent a sistemului.

Un al doilea meniu – Advanced CMOS Setup – cuprinde o serie de parametrireglabili pentru a ob ine maximul de performan . În acest meniu, se pot activa saudezactiva memoria cache intern i extern , se poate stabili o parol de intrare însistem, ordinea de c utare a sistemului de operare pe disc etc.

Al treilea meniu – Advanced Chip-set Setup – con ine reglaje foarte fine deoptimizare, cum ar fi configurarea magistralelor sau a st rilor de a teptare alemicroprocesorului.

Datorit u urin ei cu care se poate accesa BIOS-ul, parametrii care definescfunc ionarea general a calculatorului pot fi modifica i foarte simplu, darconfigurarea arbitrar a parametrilor BIOS poate produce deregl ri ale sistemului.

Tot aici se poate men iona unitatea special MMU (Memory ManagementUnit), care se ocup cu transferul con inutului memoriei ROM (cel de pe placa debaz : ROM-ul de sistem, ROM-ul video, segmentele ROM ale unor adaptoare sauextensii) în memoria de lucru RAM. Este un dispozitiv integrat în microprocesor.

Aceast posibilitate de transfer a rutinelor i datelor ROM în RAM ridicfoarte mult performan ele sistemului, deoarece timpul de acces al memoriei ROMeste foarte mare (150–200 ns) i opera iile care implic folosirea con inutului ROMse desf oar lent. Activarea op iunilor de transfer (shadowing) se face din meniulBIOS Features Setup din CMOS, prin activarea punctelor de Shadow definite deadrese specificate (System Shadow, Video Shadow etc.). MMU va dezactivaautomat toate cartu ele ROM al c ror con inut a fost citit i scris apoi în RAM, iarîn continuare va marca aceste zone de memorie RAM în care s-a transferatcon inutul ROM, protejându-le.

Leg tura memoriei ROM cu exteriorul se face prin magistrala de adrese,corespunz toare pinilor nota i cu A0÷Am (pentru detectarea loca iei care con ineinforma ia cerut ) i magistrala de date, pentru transferul datelor, prin pinii nota icu D0÷An, în func ie de num rul de pini al cipului respectiv.

3.3. Organizarea dispozitivelor de intrare-ie ire (I/O)

Arhitectura calculatoarelor moderne presupune dou moduri de organizare adispozitivelor I/O:

pentru arhitectura calculatoarelor mari; pentru arhitectura microcalculatoarelor.

3.3.1. Organizarea dispozitivelor I/O la calculatoare mari

În figura 2.31 se prezint organizarea dispozitivelor I/O la calculatoarele mari.

Fig. 3.54. Organizarea dispozitivelor I/O la calculatoarele mari.

Semnifica ia nota iilor din figur este urm toarea: MP – memoria principal ; UC – unitatea central ; Proc. I/O – procesoare I/O sau de canal; CT – controler terminale; T – terminale; Impr. – imprimant ; UD – unit i de disc (D).Magistrale:

Page 65: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 137

MM – magistrala memoriei; MD – magistrala de date; MI/O – magistrala de I/O.Când microprocesorul central trebuie s efectueze o opera ie I/O cu un

anumit periferic, el cedeaz aceast opera ie procesorului asociat perifericului;microprocesorul central transmite canalului informa ia necesar pentru realizareaopera iei de I/O i îi cere acestuia s o execute.

Canalul realizeaz opera ia I/O în mod complet i autonom: procesorul I/Oexecut un program de transfer al datelor cu parametrii primi i de lamicroprocesorul central; când transferul între periferic i memorie a fost încheiat,procesorul I/O anun microprocesorul central despre efectuarea transferului. Acestmod de lucru degreveaz microprocesorul central de opera iile I/O, care, de regul ,sunt mult mai lente decât viteza de lucru a microprocesorului central. În timpulacestui transfer, microprocesorul central execut alte instruc iuni. Existposibilitatea execut rii mai multor transferuri I/O în acela i timp, astfel rezultândcre terea performan elor sistemului.

Observa ie. Prezen a celor trei magistrale este specific calculatoarelormari. MM permite canalelor I/O s citeasc sau s scrie date direct din sau înmemorie, MI/O asigur comunica ia între microprocesorul central i canalele I/O,iar MD permite microprocesorului central s schimbe informa ii cu memoria(citirea/scrierea datelor, execu ia programelor etc.).

3.3.2. Organizarea dispozitivelor I/O la microcalculatoare

Microcalculatoarele sunt construite dintr-o plac de baz pe care se aflmicroprocesorul, circuitele de memorie i circuitele de I/O (vezi figura 3.55).

Fig. 3.55. Organizarea dispozitivelor I/O la microcalculatoare.

Semnifica ia nota iilor din figur este urm toarea:UC – unitate central ;M – memorie;MON. – monitor;KBD – tastatur ;UDM/O – unitate disc magnetic / optic.

ARHITECTURA SISTEMELOR DE CALCUL138

Cu ajutorul conectorilor, la aceast plac de baz se pot lega circuitesuplimentare (pl ci adi ionale), de exemplu pl ci de comunica ie. Conectoriireprezint ie iri ale magistralei unice a sistemului.

Fiecare unitate periferic are urm toarele p i: circuite electronice de control a unit ii (controler – dispozitiv hard care

realizeaz interfa a calculator-periferic, guvernat de un program special,numit driver);

unitate periferic propriu-zis (unit i de disc, tastatur , mouse, joystick,tablet digitizoare, imprimant , camer digital , scanner, modem etc.).

Controlerul de periferic se prezint sub forma unei pl ci adi ionale conectatela magistrala sistemului prin conectorii de magistral . Exist îns i unele excep ii,aceasta nefiind o regul general .

Exemplu. Controlerul de tastatur se afl pe placa de baz .Rolul controlerului de periferic este de a transmite perifericului instruc iunea i

informa ia necesar i de a superviza accesul perifericului la magistrala sistemului.Exemplu. Dac un program necesit informa ie de pe disc, microprocesorul

transmite o comand controlerului de disc; controlerul va trimite unit ii de disc unansamblu de comenzi necesare g sirii i transferului informa iei respective. Dup

sirea informa iei, aceasta ajunge la controler sub form binar (bi i). Controlerulde disc formeaz din acest ir de bi i cuvinte, pe care le scrie succesiv în memorie.

Un controler poate scrie sau citi în/din memorie f interven iamicroprocesorului (acesta realizeaz o opera ie DMA – Direct Memory Access).

Mai exist arbitrul de magistral (bus arbitrer), necesar în situa ia în careapar procese concurente. Astfel, când microprocesorul cere acces la magistralsimultan cu alte cereri de magistral , apare o problem : pe magistral se poatetransmite un singur cuvânt la un moment dat. Arbitrul de magistral analizeazcererile i acord accesul doar unui singur dispozitiv (stabile te priorit ile). Îngeneral, accesul la magistral se acord mai întâi perifericelor, i numicroprocesorului (microprocesorul are o flexibilitate mai mare decât perifericele).

Exemplu. Nu se opre te hard disk-ul în timpul rota iei pentru a servimicroprocesorul; se trateaz mai întâi cererea hard disk-ului.

3.4. Conectarea perifericelor la sistem

Dup cum s-a v zut, majoritatea calculatoarelor de tip PC compatibile IBMcon in o plac de baz dotat cu sloturi (puncte de conectare la magistralelesistemului) prin care se cupleaz pl cile de extensie, respectiv, porturile seriale sauparalele, pentru conectarea altor dispozitive (memorii secundare sau ter iare,echipamente de intrare-ie ire, de achizi ie, de afi are, de comunica ie etc.). Îngeneral, în categoria perifericelor cu cuplare intern în sloturi intr placa video sauacceleratorul grafic, controlerul de disc, placa de sunet, placa de re ea, plachetele dememorie RAM, pl cile pentru digitizarea imaginilor i afi area acestora pe ecran etc.

Page 66: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 139

Leg tura dintre toate aceste componente se asigur prin intermediultransmisiunilor de semnale (instruc iuni, comenzi, date), pe baza unor protocoale iseturi de reguli standardizate.

Sistemele de calcul sunt ma ini care lucreaz numai în sistem de numera iebinar, acesta fiind sistemul de numera ie optim folosit la o ma in de calcul ideal ,deoarece se folosesc numai dou cifre (0 i 1) pentru reprezentarea oric reiinforma ii, de orice natur i form . Aceste numere au coresponden în douniveluri de tensiune, în general, de valori 0 Vcc (low level) i 5 Vcc (high level) înlogica pozitiv sau niveluri inverse pentru logica negativ .

Dup cum se tie, entitatea elementar purt toare de informa ie este digitulbinar, care poate lua dou valori logice: 0L sau 1L. Dac aceste valori suntechiprobabile, cantitatea de informa ie purtat de un digit binar este de 1 bit. Deaceea, printr-un abuz de limbaj, se confund uneori no iunile de bit (ca m sur ainforma iei) i digit binar (ca semnal purt tor de informa ie).

Un grup de 8 bi i succesivi formeaz o structur numit octet sau byte. Suntfolosi i, de asemenea, multiplii acestuia: kiloocte ii, megaocte ii, gigaocte ii iteraocte ii (KB, MB, GB, TB).

Din punct de vedere fizic, leg tura între sistemul de calcul i periferice esterealizat prin interfa a de intrare-ie ire (I/O).

Dispozitivele de intrare-ie ire sau echipamentele periferice (EP) au, îngeneral, o structur proprie, independent de structura calculatorului la care seconecteaz (de exemplu: disc magnetic sau optic, imprimant , plotter etc.)Cuplarea acestor echipamente la un sistem de calcul presupune adaptareasemnalelor specifice fiec rui echipament la semnalele de pe magistral i reglareafluxului de date între calculator i periferic.

Rolul interfe elor I/O este de adapta particularit ile unui dispozitiv I/O lacerin ele unui anumit sistem de calcul. Sub acest aspect, o interfa I/O estestructurat pe dou niveluri:

un nivel adaptat semnalelor i modului de func ionare al magistralei; un nivel adaptat particularit ilor func ionale ale dispozitivului I/O.Primul nivel con ine registre I/O (porturi) pentru date, comenzi i stare,

direct adresabile de CPU.Al doilea nivel este responsabil cu generarea semnalelor de comand i cu

achizi ia semnalelor de stare specifice unui anumit tip de dispozitiv periferic.Structura acestui nivel difer mult de la un dispozitiv I/O la altul, în func ie de tipulperifericului.

O interfa I/O con ine urm toarele blocuri componente: registre de date (de intrare i/sau de ie ire); registre de comenzi; registre de stare; bloc de selec ie a registrelor (decodificator); dispozitiv de comand .Interfa a I/O este prezentat în figura 3.56.

ARHITECTURA SISTEMELOR DE CALCUL140

Registrele de dateO interfa poate asigura transferul de date într-un singur sens sau în ambele.

Pot exista mai multe canale de intrare, de ie ire sau bidirec ionale. Pentru fiecarecanal i pentru fiecare sens, se aloc un port (registru) de date, care ocup oanumit adres în spa iul de adrese I/O al CPU.

Registrele de comenziAu rolul de a genera semnalele specifice unui anumit echipament (de

exemplu, pentru hard disk se face selec ia capului de citire, selec ia unit ii deactivare a scrierii etc.). Prin registrele de comand pot fi selectate modurile de lucruale interfe ei sau se pot fixa parametrii de transfer (transfer pe octet sau pe bloc,frecven a de transmisie, formatul datelor transmise etc.).

Registrele de stareOfer informa ii despre starea echipamentului i a interfe ei (de exemplu,

dispozitiv ocupat/defect, dat recep ionat , registru de ie ire gol etc.). Acesteinforma ii sunt testate în timpul programului, pentru detectarea eventualelor eroride transfer sau a defectelor i pentru reglarea vitezei de transfer.

Fig. 3.56. Schema de principiu a unei interfe e I/O.

Blocul de selec ieGenereaz semnalele de validare a porturilor pentru opera iile de scriere i

citire. La selec ie, se utilizeaz semnalele de comand pentru citire/scriere de la/laperiferic (de exemplu, semnalele IOR/ IOW/ în sistemele Intel).

Page 67: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 141

Dispozitivul de comandEste un circuit secven ial sau combina ional, utilizat în cazul unor interfe e mai

complexe, care controleaz func ionarea celorlalte componente ale interfe ei. Pentruanumite tipuri de interfe e exist circuite specializate de control, numite controlere.

Exemple: controler de disc flexibil i8272; controler DMA i8237-5; controler video MC6845.Interfa a poate s con in i o memorie ROM sau RAM.Memoria ROM p streaz driver-ul de interfa , care este identificat la

ini ializarea sistemului i este inclus în rutinele sistemului de operare.Memoria RAM este utilizat ca buffer între memoria principal i periferic.

Necesitatea acesteia apare în cazul fluxurilor mari de date, situa ie în caresincronizarea perifericului cu frecven a de transfer de pe magistral devine dificil(de exemplu, interfa a de disc sau interfa a video).

Toate transferurile de informa ii i date, între diverse componente alesistemului de calcul sau între dou sau mai multe sisteme legate într-o re ea,transferuri care se realizeaz de-a lungul i cu ajutorul magistralelor, se desf oarla nivel de bit, octet, cuvânt sau bloc de octe i. Aceste transferuri de bi i se potefectua în dou moduri:

prin transmisie paralel ; prin transmisie serial .

3.4.1. Transmisia paralel

Transmisia paralel este mai eficient , prin faptul c se desf oar simultanpentru 8 bi i, pe 8 c i diferite (vezi figura 3.57).

Fig. 3.57. Realizarea unei transmisii paralele.

ARHITECTURA SISTEMELOR DE CALCUL142

Transferul unui grup de octe i are loc cu o vitez considerabil , dar aredezavantajul costului ridicat al instala iei fizice, care presupune existen a a 8 fire ia unei interfe e paralele aparte. De aceea, aceast transmisie se folose te laechipamentele care vehiculeaz volume mari de date într-un interval de timp foarte scurt.

Porturile paralele sunt folosite, în general, la comunica ia unidirec ional(dar nu în sens strict) i dispun de 25 de pini (vezi figura 3.58).

Fig. 3.58. Dispunerea pinilor pentru transmisia paralel .

3.4.1.1. Configura ia porturilor paraleleConfigura ia porturilor paralele nu este tot atât de complicat ca aceea a

porturilor seriale. Chiar i calculatorul original IBM PC are suport BIOS pentru treiporturi LPT, iar sistemul DOS l-a avut, de asemenea, întotdeauna. Deoarece BIOSi DOS au definit de la început trei porturi paralele, problemele cu sistemele mai

vechi sunt pu in frecvente. Acestea pot totu i s apar din lipsa disponibilit ii unorporturi comandate prin întreruperi la sistemele cu magistral ISA.

Tabelul 3.5Semnifica ia pinilor portului paralel

Nr. pin Semnifica ie

1 strobe

2...9 bit0...bit7

10 confirmare (ACK)

11 busy

12 lips hârtie (paper feed)

13 selec ie

14 line feed (LF) automat dup CR

15 eroare

16 ini ializare display

17 selec ie intrare

18...25 mas

În mod normal, un port comandat prin întreruperi nu este absolut necesarpentru opera iile de imprimare; de fapt, multe programe nu folosesc posibilitatea decomand prin întreruperi. Întreruperea este totu i folosit de multe aplica ii, cumsunt programele de tip rire din re ea i alte tipuri de tip rire în paralel sau de tip

Page 68: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 143

spooler (din fi iere de tip rire). De asemenea, orice program utilitar pentru oimprimant laser rapid ar folosi des posibilitatea de întrerupere pentru a permiteimprimarea. Dac se folose te acest tip de aplica ii în cazul unui port care nu estecomandat prin întreruperi, imprimarea se va face foarte lent sau se va opri.

Singura solu ie este s se foloseasc un port comandat prin întreruperi.Datorit faptului c sistemele PS/2 cu magistral MCA pot folosi în comunîntreruperile, ele nu au aceste probleme i toate porturile paralele din aceste sistemesunt comandate prin întreruperi pe IRQ7.

Pentru a configura porturile paralele în sistemele cu magistral ISA, trebuie se pozi ioneze câteva jumper-e i comutatoare. Deoarece fiecare plac de pe

pia este diferit , trebuie s se consulte manualul pentru a ti cum trebuieconfigurat . IBM include aceste informa ii în documenta ia fiec rei pl ci i ofermanuale tehnice pentru op iuni i adaptoare, ca i manuale de service i între inerehard, care descriu în detaliu pozi iile jumper-elor i comutatoarelor pl ciloradaptoare IBM. Al i produc tori ofer pur i simplu pe lâng plac un manual caredescrie placa i include informa iile de configurare. Sistemele cu magistral MCAsau PCI i toate sistemele actuale au configurarea automat (plug play) saucomandat soft.

3.4.2. Transmisia serial

Transmisia serial este mult mai simpl (vezi figura 3.59), deoarece nunecesit decât o cale de transmisie, un octet transmi ându-se bit cu bit (de aceeaeste folosit la comunica iile între diverse sisteme de calcul obi nuite). În plus,costurile echipamentelor sunt foarte mici.

Fig. 3.59. Realizarea unei transmisii seriale.

ARHITECTURA SISTEMELOR DE CALCUL144

Dezavantajul rezid în viteza de transmisie, practic de zece ori mai mic fade cea paralel . Este totu i transmisia folosit cel mai des, fiind fiabil , ieftin isimplu de între inut.

Porturile seriale sunt folosite la transmisia bidirec ional i dispun de 9 pini.Dispunerea pinilor este prezentat în figura 3.60, iar semnifica ia lor, în tabelul 3.6.

Pentru ambele tipuri de transmisiuni, aceea i m rime fizic caracterizeaznum rul de unit i binare transmise în unitatea de timp, i anume, viteza detransmisie sau debitul de informa ie.

Fig. 3.60. Dispunerea pinilor pentru transmisia serial .

Unit ile de m sur folosite sunt: la transmisiunea paralel : B/s (octe i pe secund ); la transmisiunea serial : b/s (bi i pe secund ) i baud (num rul de

semnale electrice pe secund sau num rul de schimb ri ale tensiunii într-o secund – transmisia cifrelor 0 i 1 înseamn , de fapt, transmisia unortrenuri de semnale electrice cu dou niveluri extreme, corespunz toarecelor dou simboluri binare).

Tabelul 3.6Semnifica ia pinilor la portul serial

Nr. pin Semnifica ie Denumire

1 intrare – detec ie de und purt toare DCD

2 intrare – recep ie date RD

3 ie ire – transmisie date TD

4 ie ire – stare ready la dispozitivul cuplat DTR

5 mas de protec ie GND

6 intrare – stare ready la transmisie DSR

7 ie ire – cerere de transmisie RTS

8 intrare – confirmare transmisie la dispozitivul cuplat CTS

9 intrare – indicator de apel RI

3.4.2.1. Configura ia porturilor serialeDe fiecare dat când un port serial prime te un caracter, el trebuie s

aten ioneze calculatorul activând o linie de întrerupere (IRQ). Sistemele cumagistral ISA pe 8 bi i au 8 asemenea linii, iar cele cu magistral ISA pe 16 bi i

Page 69: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 145

au 16 linii. Controlerul i8259A manipuleaz de regul aceste cereri de aten ionare.Într-o configura ie standard, COM1 folose te IRQ4, iar COM2 utilizeaz IRQ3.

Atunci când elementul ROMBIOS conecteaz aceste porturi, este posibil sapar o problem . Dac autotestul POST nu g se te portul serial 3F8, dardetecteaz în schimb 2F8, el este atribuit eronat portului serial COM1. Linia IRQrezervat pentru COM1 este IRQ4, dar acest port serial folose te adresa portuluiCOM2, adic folose te linia IRQ3 în locul liniei IRQ4.

O alt problem este aceea c IBM nu a introdus suportul BIOS pentruCOM3 în sistemele sale originale cu magistral ISA. Prin urmare, comanda DOSMODE nu poate lucra cu porturile seriale aflate dincolo de COM2, deoarece DOSprime te datele de intrare-ie ire de la BIOS, care, în timpul rul rii autotestuluiPOST, detecteaz ce este instalat în sistem i unde.

Pentru a evita aceast problem , cele mai multe programe de comunica ii iunele periferice seriale (ca mouse-ul) accept porturile COM cu num r de ordinemai mare, adresându-le direct i nu apelând func ii DOS. Porturile suplimentaretrebuie s utilizeze întreruperi separate. Dac se folosesc simultan dou porturiCOM, acestea trebuie s aib întreruperi opuse. Iat care sunt posibilit ile deoperare simultan în configura ia standard de porturi i întreruperi:

COM1 (IRQ4) i COM2 (IRQ3) COM1 (IRQ4) i COM4 (IRQ3) COM3 (IRQ4) i COM2 (IRQ3) COM3 (IRQ4) i COM4 (IRQ3).

3.4.2.2. Standarde pentru transmisii serialePentru a conecta între ele prin intermediul porturilor seriale dou sau mai

multe calculatoare aflate la distan e destul de mari, nu mai este indicat s sefoloseasc un cablu de re ea, deoarece ar rezulta un pre destul de mare i ar ap reaprobleme de transmisie a semnalelor. Conectarea se poate realiza totu i cu ajutorulliniilor telefonice sau a cablului optic. În cazul primei solu ii, este nevoie de undispozitiv care s realizeze adaptarea la linia de telefon, i anume, de un modem.

Laboratoarele Bell i CCITT au stabilit standardele pentru protocoalelemodemurilor. Un protocol este o metod prin care dou entit i diferite se în eleg

comunice. Standardele modemurilor se pot împ i în urm toarele trei grupuri,în func ie de facilitatea oferit :

standarde de modula ie: Bell 103, 212A, CCITT V.21, 22bis, 29, 32, 32bis etc.; standarde de corec ie a erorilor: CCITT V.42 etc.; standarde de compresie a datelor: CCITT V.42bis, MNP etc.Standarde de modula ieModula ia este metoda electronic de semnalare folosit de modemuri.

Acestea trebuie s utilizeze aceea i metod de modula ie pentru a se în elege întreele. Cele mai r spândite metode de modula ie digital sunt (vezi figura 3.61):

modula ia în amplitudine (MA) – Amplitude Shift Keying (ASK); modula ia în frecven (MF) – Frequency Shift Keying (FSK);

ARHITECTURA SISTEMELOR DE CALCUL146

modula ia în faz (MP) – Phase Shift Keying (PSK); modula ia binar – Binary Phase/BiPhase Shift Keying (BPSK); modula ia în cuadratur (MQ) – Quadrature Phase Shift Keying (QPSK); MA în cuadratur – Quadrature Amplitude Modulation (QAM); modula ia impusurilor în cod (MIC) – Pulse Code Modulation (PCM).

Fig. 3.61. Tipuri comune de modula ie digital (de impulsuri): ASK, FSK, PSK, BPSK.

Fig. 3.62. Modula ia QPSK f zgomot (stânga) i cu zgomot (dreapta).

Fig. 3.63. Constela iile pentru modula iile QAM-16 (stânga) i QAM-128 (dreapta).

Page 70: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 147

La QPSK, zgomotul prezent pe canal poate fi mare, f s influen eze preamult prin apari ia erorilor (vezi figura 3.62). Nu se poate spune acela i lucru i despreQAM-16 sau QAM-128, care sunt mult mai susceptibile la zgomot pe canal, undechiar i un nivel de zgomot redus poate duce la erori multiple (vezi figura 3.63).

Pentru a reduce rata erorilor, se introduce posibilitatea corect rii erorilor prinad ugarea de bi i suplimentari fiec rui e antion. Astfel de modul ri sunt cunoscutesub numele de TCM (Trellis Coding Modulation – modula ie prin codificarematriceal ), iar reprezent rile lor se numesc constela ii.

Standarde de corec ie a erorilorCorec ia erorilor se refer la posibilitatea pe care o au unele modemuri

evoluate de a identifica erori în timpul transmisiei (EDC – Error Detection Codes)i de a retransmite automat datele care par a se fi deteriorat în tranzit (tehnici ARQ

– Automatic Repetition reQuest). Ca opera ia de corec ie s func ioneze, ambelemodemuri trebuie s adere la acela i protocol de corec ie a erorilor (ECC – ErrorCorrection Codes).

Standardele de compresie a datelorCompresia datelor se refer la o posibilitate intrinsec a unor modemuri

moderne de a comprima datele pe care le transmit, f când astfel economie de timp,spa iu de stocare i costuri pentru utilizatorii de modemuri afla i la distan e mari.Algoritmii de compresie utiliza i fac parte din familia metodelor f pierderi(lossless data compression).

3.4.3. Tipuri de transmisii

Dup modul de folosire a liniei de comunica ie, transmisiile se clasific în: transmisii simplex, la care partenerii de comunica ie au rolurile fixe de

emi tor i receptor (de exemplu: transmisia radio, transmisia TV); transmisii semiduplex, care se efectueaz pe aceea i linie de leg tur

între dou componente, în ambele direc ii, dar nu concomitent (deexemplu: transmisia prin walkie-talkie);

transmisie duplex, la care partenerii de pe aceea i linie de transmisie potfolosi simultan linia la propriile transmisii, în ambele direc ii, solu iemult mai eficient decât cea anterioar (de exemplu: linia telefonic ).

Diferen ele între modurile semiduplex i duplex sunt vizibile: transmisiaduplex este mai rapid , deoarece dou mesaje pot folosi linia simultan, nefiindnevoie de st ri de a teptare pentru eliberarea liniei.

Având în vedere c pe o linie este necesar transmisia unor grupuri de bi i(evident, octe i) i nu a unor trenuri de bi i succesivi, trebuie introdus un mecanismde separare logic a octe ilor transporta i. De aceea, în construc ia interfe elor sefolose te o alt clasificare a transmisiilor i anume:

transmisia sincron (vezi figura 3.64), în care grupurile de 8 bi i setransmit f folosirea unor bi i fanion sau a unor pauze de transmisieinteroctet, fiind cel mai rapid i eficient mod de transmisie;

ARHITECTURA SISTEMELOR DE CALCUL148

Fig. 3.64. Realizarea unei transmisii sincrone.

transmisia asincron (vezi figura 3.65), un mod mai simplu, deoareceîntre octe ii transmi i sunt intercalate pauze sau se folosesc bi i fanion(unul sau doi), care indic începutul unui octet (bi i de start) i sfâr itulacestuia (bi i de stop). La recep ie, semnalul este cur at de ace ti bi ifanion, r mânând doar bi ii care semnific informa ia propriu-zis .Comunica ia asincron nu este gestionat printr-o secven de tact sau unsemnal adiacent de sincronizare a transmisiei.

Fig. 3.65. Realizarea unei transmisii asincrone.

La fel ca la memorii, i aici se folose te no iunea de paritate pentrudeterminarea corectitudinii transmisiei de date (paritate par – num rul total de bi i1 transmi i este par i paritate impar – num rul total de bi i 1 transmi i esteimpar). Importan a i eficien a folosirii acestei tehnici de securizare a transmisiiloreste deosebit , prin faptul c în orice moment poate fi semnalat o eventual eroarede transmisie, recurgându-se la corec ii hard i soft. Toate modemurile modernedispun de astfel de metode de corec ie. Dup ce microprocesorul proceseaz datele,acestea pot fi transmise c tre un dispozitiv periferic, într-un anumit format digital,fiind necesar o interfa care s converteasc semnalul transmis de surs în semnalcare poate fi interpretat de dispozitivul periferic destina ie, adic , un format digitalinterpretabil de c tre dispozitivul periferic destina ie.

Page 71: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 149

Sistemele de calcul nu pot exista f comunica ia cu mediul înconjur tor,comunica ie care presupune primire de la mediu (returnare c tre mediu) de date sauinforma ii. Cum acest mediu este alc tuit la rândul s u din sisteme interdependentecare comunic la rândul lor, este nevoie de un sistem de comunica ie, de un limbajuniversal, care, chiar dac nu folose te acelea i no iuni, utilizeaz m car acelea isemne. Toate aceste semne alc tuiesc un limbaj de tip analogic, recunoscut de oricefiin vie (lumina, sunetul, impulsurile electrice neuronale, radia iile calorice etc.).În concluzie, este necesar un mecanism care s integreze lumea digital asistemelor de calcul în acest univers analogic.

a cum în contextul analogic componentele comunic între ele prin semnaleintegral analogice, în acela i mod exist comunica ie la nivel intern, în contextuldigital, între sisteme de calcul sau, în cadrul aceluia i sistem, între subsistemelecare îl alc tuiesc (vezi figura 3.66). Comunica ia se realizeaz în format binar.

Fig. 3.66. Tipuri de interfe e-translator.

Privind aceast problem de comunica ie intersisteme, se constat c suntnecesare trei tipuri de interfe e-translator care pot asigura comunica ia între doulumi diferite (cea analogic i cea digital ) sau în cadrul aceleia i lumi.

Aceste interfe e traduc semnalele astfel: analog-digital. Este interfa a clasic , utilizat ca poart de intrare a

informa iilor din mediul înconjur tor în mediul digital. Ca exempleimediate, se specific toat gama echipamentelor de intrare carecomunic cu un sistem de calcul: tastatura, mouse-ul, ecranul senzitiv,scanerul, tableta digitizoare, camera video, modemul etc.

digital-analog. Este complementar interfe ei analog-digitale, venind încompletarea sistemului de comunica ie i asigurând bidirec ionalitateaschimbului de informa ii cu mediul. Aceast interfa reprezint poarta deie ire din lumea digital c tre cea analogic . Ca exemple, se pot men ionaDAC-ul sau monitorul digital, imprimanta, modemul, placa de sunet etc.

ARHITECTURA SISTEMELOR DE CALCUL150

digital-digital. Interfe ele standard utilizate în cadrul unui sistem de calculsau între sisteme sunt de tip digital-digital. Ele primesc/transmit acela i tipde semnal, digital, i au ca scop sincronizarea dispozitivelor care comunic ,prin transformarea semnalului transmis într-un semnal corect interpretabilde c tre dispozitivul receptor. Aceast adaptare este efectuat din punctul devedere al frecven elor de tact, al nivelurilor de tensiune pentru semnaleleemise/recep ionate, al formatelor de date etc. Spre deosebire de primeledou tipuri de interfe e, care pur i simplu translateaz semnalul digitalîn semnal analogic i invers, interfa a digital-digital nu face decât saduc la aceia i parametri comunica ia între dou componente digitale.

3.4.4. Standarde de interfe e

3.4.4.1. Interfe e serialeRS-232Una dintre cele mai uzuale interfe e seriale asincrone folosite este RS-232

(Reference Standard 232). Activitatea esen ial a acesteia este adaptarea semnaluluitransportat la cerin ele receptorului, activitate denumit comunica ie asincron .

În interfa a RS-232, datele sunt trimise sub form de iruri de bi i, fiindsuportat atât modul sincron cât i cel asincron. Pe lâng circuitele de date,standardul define te un num r de circuite de control care supervizeaz conexiuneadintre DTE (Data Terminal Equipment, dispozitivul de la cap tul îndep rtat alconexiunii, de obicei, un calculator sau un terminal) i DCE (Data Circuit-terminating Equipment, dispozitivul cel mai apropiat de conexiune, de obicei, unmodem), conform reprezent rii din figura 3.67.

Fig. 3.67. Conexiunile interfe ei seriale RS-232 C.

Fiecare circuit de date sau control func ioneaz doar într-o singur direc ie.Pentru c datele transmise i datele recep ionate folosesc fiecare câte un circuitseparat, interfa a poate func iona în mod duplex. În cadrul standardului, nu suntdefinite formatul caracterelor din irul de date sau tipul de codare a lor.

Standardele RS-232 utilizeaz pentru niveluri de semnal (0 i 1), în afaraintervalului +3Vcc … –3Vcc (semnalele cuprinse în acest interval sunt ignorate),

Page 72: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 151

urm toarele conven ii: orice tensiune peste +3Vcc este considerat corespunz toareunui bit de 0, iar sub –3Vcc este considerat corespunz toare unui bit de 1.

Standardul prevede un conector DB25 de tip tat (sau fi ) pentru DTE i unconector DB25 de tip mam (sau priz ) pentru DCE. Din cei 25 de pini aiconectorilor, doar 22 sunt folosi i pentru semnale i mas . Deoarece majoritateadispozitivelor folosesc doar 9 semnale, sunt folosi i adesea conectori mai mici.

Protocolul RS-232 se bazeaz pe tehnica acordului confirmat (handshake),iar semnifica ia celor mai uzuale semnale, relativ la DTE, este (vezi tabelul 3.6):

Transmitted Data (TD) – transmisia datelor de la DTE la DCE; Received Data (RD) – recep ia datelor de la DCE; Request To Send (RTS) – setat pe 0 de c tre DTE, preg te te DCE-ul

pentru recep ionarea datelor; Ready To Receive (RTR) – setat pe 0 de c tre DTE, indic DCE-ului

faptul c DTE-ul este preg tit s recep ioneze date; Clear To Send (CTS) – setat pe 0 de c tre DCE ca r spuns la RTS,

permite DTE-ului s transmit date; Data Terminal Ready (DTR) – setat pe 0 de c tre DTE, indic faptul c

acesta este gata s fie conectat (dac DCE-ul este un modem, atunciaceast comand îl activeaz );

Data Set Ready (DSR) – setat pe 0 de c tre DCE, indic faptul c acestaeste pornit i preg tit s recep ioneze comenzi sau date de la DTE (încazul unui modem, DSR-ul este setat pe 0 de îndat ce acesta este gata sprimeasc comenzi);

Data Carrier Detect (DCD) – setat pe 0 de c tre DCE, indic faptul c s-a stabilit o conexiune cu echipamentul partener;

Ring Indicator (RI) – setat pe 0 de c tre DCE, arat c s-a detectatsemnalul corespunz tor apelului (soneriei) telefonice.

Standardele mai noi (RS-422, RS-485 etc.) dezvolt RS-232, urm rindoptimizarea acestuia.

UARTCircuitele integrate folosite ca interfa asincron pentru transmisia serial

sunt denumite UART (Universal Asynchronous Receiver Transmitter). Încomponen a lor intr registre de deplasare (shift, vezi figura 3.68), prin intermediul

rora datele în format serial/paralel pot fi convertite în format invers(paralel/serial).

Un UART tipic are trei sec iuni: un modul receptor, care prime te de la periferic un semnal serial i îl

converte te paralel, dup care îl depune pe magistrala de date; un modul emi tor, care prime te semnal paralel de pe magistrala de

date i îl converte te în semnal serial pentru periferic; un controler de interfa , care gestioneaz activitatea modulelor

receptor i emi tor (vezi figura 3.69). Se folosesc cipurile UART 8251,16450 (mai vechi) sau UART 16550 i 16550A, mult mai rapide.

ARHITECTURA SISTEMELOR DE CALCUL152

Fig. 3.68. Intrare serial – ie ire paralel (A); intrare paralel – ie ire serial (B).

Fig. 3.69. Al treilea modul UART: controlerul de interfa .

ACIAUn model similar de interfa universal asincron este ACIA (Asynchronous

Communication Interface Adapter), instalat în blocul de mapare a memoriei i carerecep ioneaz 4 linii de adrese, 3 selec ii de cip i o selec ie de registru. Cipul standardfolosit este MC 6850, cu 24 de pini. Comanda ACIA se realizeaz prin dou perechide registre, prima fiind de stare, iar cel de-a doua, de control (vezi figura 3.70).

Page 73: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 153

Fig. 3.70. Registrul de stare i registrul de control pentru comanda ACIA.

Func ionarea ACIA are la baz dou registre de deplasare (unul de tip read-only i cel lalt, write-only) pentru convertirea semnalelor paralel/serial iserial/paralel. Comunica ia cu magistrala de date se face prin intermediul unuibuffer de date, cuplat direct la aceasta. Un exemplu tipic de interfa ACIA estemodemul (vezi figura 3.71).

Fig. 3.71. Modemul ca exemplu de interfa ACIA.

ARHITECTURA SISTEMELOR DE CALCUL154

USBInterfa a USB (Universal Serial Bus) a înlocuit interfe ele RS-232 i paralel

în multe situa ii. Astfel, USB este acum cea mai folosit interfa în conectareaimprimantei, mouse-ului sau scanerului la calculator. USB a fost proiectat pentrua permite conectarea dispozitivelor periferice printr-un conector standardizat, care

înlocuiasc multitudinea de conectori ai unui calculator, i s îmbun eascfunc ionalitatea plug play, permi ând dispozitivelor s fie conectate ideconectate f a fi necesar repornirea calculatorului. De asemenea, dispozitivelecare consum pu in pot fi alimentate direct prin interfa a USB.

Versiunile standardului USB sunt urm toarele: USB 1.0, lansat în 1996, define te dou viteze de transfer: 1,5 Mb/s

(Low Speed) i 12 Mb/s (Full Speed); USB 1.1 , lansat în 1998, define te acelea i viteze de transfer i are dou

tipuri de conectori: seria A i seria B; USB 2.0, lansat în 2000, define te o a treia vitez : 480 Mb/s (High Speed); USB 3.0, anun at pentru 2008, va defini viteze de pân la 10 ori mai

mari fa de versiunea anterioar , ajungând la aproximativ 4,8 Gbit/s.De i toate calculatoarele actuale sunt echipate cu porturi USB, acestea nu au

înlocuit complet conectorii standard existen i. Monitorul, tastatura, porturileparalele i cele seriale utilizeaz , în continuare, conectori separa i. Un motiv arputea fi arhitectura mai complex a magistralei USB, care trebuie s permitconectarea unor tipuri variate de periferice. Un alt motiv ar fi c perifericele caretrebuie s con in un distribuitor, cum este monitorul sau tastatura, devin maicomplexe i mai costisitoare.

USB conecteaz mai multe dispozitive la un HCI (Host Controller Interface),prin intermediul unor hub-uri. USB este complet controlat de HCI. Nu poate existadecât un singur host pe o magistral la un moment de timp. Un adaos la standardulUSB introduce un protocol (Host Negociation Protocol) care permite negocierea dehost între dou dispozitive USB.

Fig. 3.72. Arhitectura interfe ei USB.

Page 74: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 155

Orice topologie necesit cel pu in un hub, numit root-hub, ata at direct la HCI.Un host comunic cu dispozitivele prin intermediul unor canale logice (pipes), careau ni te terminale logice pe dispozitive numite endpoints (vezi figura 3.72). Uneorieste folosit termenul endpoint pentru a identifica i canalul logic respectiv.

Exist 16 endpoint-uri [0-15] i pipe-uri corespunz toare în fiecare direc ie(in/out, referindu-se la host), deci un periferic poate avea 32 de pipe-uri activesimultan. Fiecare endpoint poate transfera date într-o singur direc ie, deci, fiecarepipe este unidirec ional. Endpoint-urile 0 pentru in i out sunt întotdeauna active,fiind folosite pentru management.

Comunica iile între periferice i host se execut prin conexiuni dispozitiv-host i host-dispozitiv. Conexiunea de la host la dispozitiv se nume tedownstream, iar conexiunea de la dispozitiv la host se nume te upstream.Conectorii USB sunt diferi i pentru upstream i downstream i nu pot fiinterschimba i. O comunica ie (transfer de date) nu se poate efectua decât întreporturi diferite de upstream i downstream.

Exist dou tipuri de conectori principali: tip A i tip B. Conectorii de tipul Ase folosesc pentru host-uri sau hub-uri i se reg sesc cel mai des pe pl cile de bazale PC-urilor. Conectorii de tipul B se g sesc numai la dispozitivele periferice. Nupot exista leg turi de cabluri decât de la tipul A de conector la tipul B, dar se pot

si i cabluri care nu respecte aceste specifica ii, numite cabluri directe.Alte tipuri de conectori sunt mini-USB de tip A i B (mai frecvent utiliza i)

sau AB i micro-USB, folosi i în special pentru dispozitive de dimensiune maimic , fiind mai u or de integrat.

Conectorii USB de diferite tipuri sunt reprezenta i în figura 3.73.

Fig. 3.73. Configura ia pinilor conectorilor USB de tip A, B, mini-A, B i micro-A, B.

Cablul USB folose te 4 fire (vezi figura 3.74): dou pentru putere: (tensiuneaVBUS i masa) i dou pentru semnalele de date (pinii D+ i D–). Alimentarea VBUSeste, în general, de 5V (cu o toleran prestabilit ), iar modul de transmisie adatelor este diferen ial. Modul de codare al datelor este NRZI (Non Return to ZeroInverted), folosit pentru a trimite date sincronizate i pentru a sincroniza host-ul cusemnalul de ceas. D+ i D– sunt semnale transmise împreun . În cazul micro-USB,exist 5 pini (apare în plus un pin de identificare, ID).

Fig. 3.74. Cablul USB.

ARHITECTURA SISTEMELOR DE CALCUL156

Semnifica ia pinilor conectorilor USB cu 4 pini este prezentat în tabelul 3.7.

Tabelul 3.7Semnifica ia pinilor conectorilor USB

Pin Descriere

1 VBUS (4,35–5,25 V)

2 D–

3 D+

4 GND (0 V)

Exist trei tipuri de alimentare posibile, în func ie de diversele dispozitiveata ate:

de putere mic (low power) – pot lua un curent de 100 mA de la sursa dealimentare (pinul VBUS);

de putere mare (high power) – pot lua un curent între 100 mA i 500 mAde la VBUS;

cu auto-alimentare (self power) – pot lua un curent de 100 mA de pemagistral i se mai pot alimenta de la o surs extern .

IEEE 1394 (FireWire)FireWire este numele înregistrat de Apple pentru standardul IEEE1394, fiind

o specifica ie de magistral serial , care asigur comunica ii de mare vitez iservicii de date în timp real.

S-a impus mai ales în domeniul conexiunilor externe, datorit costurilor micide fabrica ie i a unui sistem simplu de cablare. De asemenea, a devenit interfa astandard pentru conectarea componentelor de comunica ii i control în domeniulaudio-vizual. FireWire este disponibil i în versiunile wireless, fibr optic icablu coaxial, folosind protocoale simultane.

Interfa a FireWire suport conectarea simultan a 63 de periferice. FireWireeste bazat pe comunica ia punct-la-punct, ceea ce permite, de exemplu, ca oimprimant i un scaner s comunice între ele f a înc rca suplimentar procesoruli magistrala sistemului. De asemenea, la fel ca interfa a USB, FireWire suport

tehnologia plug'n'play i conectarea dispozitivelor la magistral f a fi necesarrepornirea calculatorului. Interfa a FireWire poate alimenta cu energie dispozitivecare au un consum mai mic de 45 W i o tensiune mai mic de 30 V.

Standardul fizic de conectare se prezint în dou forme – o muf de 6 pini iuna de 4 pini (vezi figura 3.75). Singura diferen între acestea este faptul c doarmufa de 6 pini poate alimenta dispozitive externe, mufei de 4 pini lipsindu-iconexiunile necesare pentru aceasta.

Page 75: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 157

Cablul FireWire con ine 6 fire de cupru (vezi figura 3.76): dou transportenergie, iar celelalte patru sunt grupate în câte dou perechi. Fiecare pereche esteecranat , ca i întregul cablu.

Fig. 3.75. Conectorii interfe ei FireWire. Fig. 3.76. Cablul FireWire.

Cablurile de alimentare transport tensiuni între 8 i 40 V c.c. i amperajepân la 1,5 A i sunt folosite pentru men inerea continuit ii stratului fizic al unuiechipament, când apar c deri de tensiune sau defec iuni, i pentru alimentareaechipamentelor conectate la magistral . Deci, cablul FireWire transport atât date,cât i energie, ceea ce constituie un mare avantaj pentru utilizator.

Standardul FireWire se prezint în dou versiuni: FireWire 400 i FireWire 800.FireWire 400 suport rate de transfer de 100, 200 i 400 Mbit/s. Lungimea maxim aunui cablu este de 4,5 metri, îns aceste cabluri pot fi legate între ele folosindu-serepetoare sau hub-uri pân la o lungime maxim de 72 m sau echivalentul a 16 cabluriinterconectate. FireWire 800 (2003) i S800T (2007) suport o rat maxim de transferde 800 Mb/s i o lungime mai mare a cablurilor (100 m), fiind compatibil la nivellogic cu FireWire 400 îns la nivel fizic conectorii nu sunt compatibili, fiind necesar unconvertor. Viitoarele versiuni de FireWire inten ioneaz s aduc o cre tere de vitezde pân la 6,4 Gb/s i conectori suplimentari, cum sunt interfe ele multimedia mici.

Fig. 3.77. Conectorul RJ45 al interfe ei Ethernet.

3.4.4.2. Interfe e paraleleCel de-al doilea tip de interfa , indiscutabil mai rapid , este interfa a

paralel . Din p cate, este utilizabil pentru transmisii la distan e foarte mici, încompara ie cu cei 30 m la care se poate comunica prin interfe e seriale, motivulfiind nivelurile energetice foarte sc zute la care se lucreaz . Este cunoscut i caport imprimant sau port Centronics.

ARHITECTURA SISTEMELOR DE CALCUL158

IEEE 1284În 1994, mai vechile interfe ele Bitronics i Centronics au dat na tere

standardului IEEE 1284. Interfa a paralel nu a fost folosit doar pentruimprimante, ci i pentru alte dispozitive (chei dongle pentru protec ia la copiere,unit i ZIP, scanere, modemuri externe, pl ci de sunet i camere web externe,gamepad-uri, joystick-uri, hard disk-uri i CD-ROM-uri externe, programatoareEPROM sau controlere hardware etc.). Azi, interfa a paralel a fost înlocuit deinterfa a USB i chiar de cea Ethernet, în unele cazuri (vezi figura 3.77).

Mul i produc tori de calculatoare personale i laptopuri nici nu mai includ unport paralel, considerându-l învechit, dar i pentru c exist convertoare USB-paralel, care pot fi folosite în cazul imprimantelor care au numai port paralel.

Standardul IEEE 1284 define te o comunica ie paralel bidirec ional întrecalculatoare sau alte dispozitive, oferind o band maxim teoretic de 4 Mb/s, ipoate func iona în cinci moduri:

Compatibility Mode (Centronics) – foarte asem tor moduluiunidirec ional original Centronics;

Nibble Mode – folose te liniile de stare pentru a recep iona date de laimprimant (pentru transferul extins de stare al imprimantei);

Byte Mode – se transmit 8 bi i concomitent, folosind liniile de date; Enhanced Parallel Port (EPP) – este o arhitectur semiduplex

bidirec ional , care permite dispozitivelor s transmit cantit i mari dedate (pentru scanere sau dispozitive de stocare);

Extended Capability Port (ECP) – similar EPP-ului, poate oferi o bandde pân la 2,5 Mb/s (pentru a m ri viteza, folose te RLE – Run LengthEncoding –, o compresie simpl a secven elor lungi care con in acela icaracter repetitiv, folosind un cod de doar doi octe i).

Calculatoarele recente cu port paralel îl pot folosi în modurile EPP, ECP sauîn mod mixt.

PIACel mai uzual model de interfa utilizat este PIA (Peripheral Interface

Adapter). Cipul standard folosit este 6821 PIA cu 40 de pini. Interfa a folose tedou registre, unul pentru datele transmise de la periferic la microprocesor icel lalt pentru sensul opus. Când perifericul transmite un octet de date de-a lungulcelor opt linii c tre sistem, datele sunt depuse într-un registru PIA unde vor a teptapân când microprocesorul este preg tit pentru preluarea lor. Dup efectuarea citiriiacestui octet stocat, procesul se repet pentru urm torul octet.

Pentru transmisii în sens invers, procesorul va transmite un octet de-a lungulmagistralei de date c tre cipul I/O, care le va depozita într-unul din aceste registre.Când perifericul este în stare ready, va transmite un semnal c tre PIA, care îi vapune la dispozi ie datele, apoi procesul se reia.

În plus fa de aceste registre, este disponibil un registru de stare ai c rui bi i,folosi i ca fanioane, indic microprocesorului care coordoneaz activit ile I/Ostarea registrelor amintite, validitatea octetului de date transferat sau, în general,

Page 76: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 159

starea interfe ei paralele PIA. Toate aceste registre – programabile – sunt cuplate lamagistrala de date a sistemului, prin aceasta fiind adresate direct de c tre procesor.

Faptul c , prin intermediul registrelor interne, aceste cipuri-interfe e suntprogramabile le face deosebit de practice, deoarece fiecare port al unei linii detransmisie (din cele opt existente) poate fi programat i controlat individual înprivin a direc iei de transfer a datelor. Astfel, anumite linii pot fi programate pentrutransmisie într-un sens, în timp ce celelalte ac ioneaz în sens opus. Un exempluclasic de folosire a comunica iilor paralele este imprimanta.

În figura 3.78 este reprezentat o implementare fizic a interfe ei PIA, principul W65C21S, compatibil cu microprocesoarele din familia Motorola 68• • .Interfa a prezint dou porturi I/O bidirec ionale (A i B) pe câte 8 bi i, cu comandindividual a sensului datelor. Transferul datelor se face folosind un protocolautomat de tip handshake. Interfa a este prev zut cu dou ie iri de întreruperecomandate software. Portul A, prin ie irea CA2, asigur transferuri de mare vitez ,pentru opera ii statice sau cu o frecven de pân la 14 MHz.

Fig. 3.78. Conexiunile interfe ei PIA pentru microprocesoarele din familia Motorola 68• • .

3.4.4.3. Interfe e wirelessBluetoothTehnologia Bluetooth reprezint un set de specifica ii bazate pe undele radio,

pentru o re ea wireless personal , PAN (Personal Area Network).Documenta ia acestui standard a fost creat în anul 1994 de c tre Jaap

Haartsen i Sven Mattisso, angaja i ai diviziei Mobile Platforms din cadrulcompaniei Ericsson.

Astfel, standardul dezvoltat de ace tia se baza pe tehnologia de transmisie cusalt în frecven i spectru distribuit, FHSS (Frequency-Hopping SpreadSpectrum).

Specifica iile platformei Bluetooth au fost formalizate de c tre BluetoothSpecial Interest Group (SIG). Aceasta organiza ie a fost fondat în data de 20 mai1998 de c tre Ericsson, IBM, Intel, Toshiba, Sony Ericsson i Nokia, urmând cade-a lungul timpului peste 7.000 de companii s adere la acest grup.

ARHITECTURA SISTEMELOR DE CALCUL160

Tehnologia Bluetooth creeaz o cale prin care se poate face schimb deinforma ii între aparate precum telefoane mobile, laptopuri, calculatoare personale,imprimante, camere digitale i console video, printr-o frecven radio sigur i deraz mic . Aparatele Bluetooth comunic între ele atunci când acestea se afl înaceea i raz de ac iune. Ele folosesc un sistem de comunica ii radio, astfel încât nueste nevoie s fie aliniate fa în fa pentru a transmite, putând fi plasate chiar încamere diferite dac transmisia este suficient de puternic .

Clasele de emisie definite prin tehnologia Bluetooth sunt prezentate întabelul 3.8.

Tabelul 3.8Clasele de emisie Bluetooth

Clasa Puterea maxim permis(mW)

Puterea maxim permis(dBm)

Raza aproximativ(m)

Clasa 1 100 20 ~ 100

Clasa 2 2,5 4 ~ 10

Clasa 3 1 0 ~ 1

Protocolul Bluetooth func ioneaz în banda de frecven 2,4–2,4835 GHz.Pentru a preveni interferen ele cu alte dispozitive care opereaz în banda de 2,45GHz, protocolul Bluetooth împarte banda în 79 de canale (fiecare cu o l ime deband de 1 MHz) i schimb permanent canalele de 1.600 de ori pe secund .

Implement rile Bluetooth din versiunile 1.1 i 1.2 func ioneaz la viteza de723,1 kb/s, iar versiunea 2.0 folose te modul EDR (Enhanced Data Rate), pentru aatinge o vitez de 2,1 Mb/s. Din punct de vedere tehnic, versiunea 2.0 are unconsum de energie mai ridicat, îns la o vitez de transfer de peste 3 ori mai mare.Astfel, în mod practic este redus consumul de energie fa de variantele anterioarecu peste 50%.

Standarde Bluetooth sunt:a) Bluetooth 1.0 i 1.0B. Versiunile 1.0 i 1.0B au avut multe probleme,

care au f cut produc torii s întâmpine dificult i în a face produsele func ionale.b) Bluetooth 1.1. Multe din erorile manifestate la versiunea 1.0B au fost

reparate în versiunea 1.1. De asemenea, aceasta versiune oferea suport pentrucanale necriptate i avea ad ugat un indicator al puterii semnalului de transmisie.

c) Bluetooth 1.2. Aceast versiune este compatibil cu 1.1. Principalelesale îmbun iri sunt:

vitez mai mare de descoperire i de conectare la alte dispozitive; vitez practic de transfer îmbun it (de i maximul teoretic r mâne 721 kb/s); îmbun irea rezisten ei la interferen cu alte dispozitive radio, prin

implementarea mecanismului AFHSS (Adaptive Frequency-HoppingSpread Spectrum).

Page 77: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 161

d) Bluetooth 2.0. Este compatibil la nivel de comunica ie cu versiunile 1.• .Principala îmbun ire este introducerea modului EDR (Enhanced Data Rate), carepermite o vitez de 3 Mb/s. Trecerea la versiunea 2.0 a vizat urm toarele optimiz ri:

vitez de transmisie de 3 ori mai mare; consum de energie mai mic; rat a erorilor de transmisie, BER (Bit Error Ratio), mai mic .Un dispozitiv Bluetooth de tip master poate comunica simultan cu alte

maximum 7 dispozitive. Acest grup de 8 dispozitive se nume te re ea de tippiconet. Astfel, piconetul poate fi definit ca o re ea de tip ad-hoc, care folose teprotocoalele Bluetooth pentru a permite unui dispozitiv master s se interconectezecu alte 7 dispozitive Bluetooth active. Pe lâng acestea, pot exista pân la un num rde maximum 255 de dispozitive inactive, pe care dispozitivul master le poateactiva în orice moment.

La un moment dat, prin intermediul protocolului Bluetooth, dispozitivulmaster nu poate comunica decât cu un singur alt echipament. Pentru a combateacest aspect negativ, dispozitivele î i pot schimba rolul în cadrul piconetului înorice moment i astfel orice dispozitiv slave poate deveni master i viceversa. Maimult decât atât, specifica iile standardului Bluetooth permit interconectarea a dousau mai multe piconeturi pentru a forma un scatternet. Astfel, unele echipamente voravea rolul de master într-un piconet i de slave în alt piconet. Acest lucru este util,deoarece se permite interconectarea a mai mult de 8 dispozitive active simultan.

Orice dispozitiv Bluetooth va transmite la cerere altui dispozitiv urm toareleseturi de informa ii: numele i clasa dispozitivului, lista de servicii i specifica iiletehnice (capabilit ile dispozitivului, fabricantul etc.). De asemenea, orice dispozitivBluetooth poate executa o c utare pentru a vedea ce alte echipamente compatibileexist în proximitate i, de asemenea, orice dispozitiv poate fi configurat s

spund la c utarea executat de alt echipament. Totu i, dac dispozitivul caredore te s se conecteze la alt echipament cunoa te adresa exact a acestuia, se vaputea conecta la el indiferent de set rile de vizibilitate ale echipamentului accesat.

Fiecare dispozitiv Bluetooth are o adres unic pe 48 de bi i. Aceste adrese nusunt totu i folosite în mod direct de c tre utilizatori, optându-se pentru utilizarea unornume care pot fi definite. Aceste nume sunt afi ate atunci când un dispozitivBluetooth le scaneaz pe cele din proximitatea sa. Dispozitivele Bluetooth seconecteaz prin intermediul unui proces numit pairing. Astfel, se stabile te o leg turîntre dispozitive pe baza unei parole (passkey). De asemenea, datele transferate întredispozitivele Bluetooth pot fi criptate, pentru a preveni mai eficient interceptarea lor.Arhitectura Bluetooth, care eviden iaz protocoalele legate de modelul OSI, inclusivde setul comenzilor AT (vezi paragraful 2.7) este reprezentat în figura 3.79.

Wi-FiO re ea wireless WLAN (Wireless Local Area Networks) este o re ea f fir,

local , extins pe arii limitate, în func ie de echipamentele folosite i de putereaacestora, prin care se poate face transfer de date i internet folosind undele radio.Raza de acoperire poate fi de la câteva zeci de metri pân la 20 km, prin folosireasolu iilor iDirect, care au implementat interfa a de administrare pentru 200 de utilizatori.

ARHITECTURA SISTEMELOR DE CALCUL162

Fig. 3.79. Arhitectura Bluetoooth.

Wi-Fi, prescurtarea de la Wireless Fidelity, reprezint o categorie deproduse compatibile cu standardele WLAN, bazate pe protocoale IEEE 802.11.Noile standarde, bazate pe specifica iile 802.11 (cum este 802.16 WiMAX), facparte din re elele actuale i ofer multe îmbun iri, de la arii mari de acoperirepân la viteze mari de transfer.

Diferen ele între o re ea terestr i o re ea wireless radio sunt multiple ireprezint beneficii în favoarea re elelor wireless:

Spre deosebire de alte sisteme radio, Wi-Fi folose te un spectru defrecven e radio care nu are nevoie de licen , deci, nu necesit aprobarepentru utilizare.

Se permite dezvoltarea variat a unei re ele locale WLAN futilizarea cablurilor, reducând costurile necesare dezvolt rii re elei ievitând diferite obstacole în implementarea re elei (locuri inaccesibile,care nu pot fi cablate).

Multe re ele Wi-Fi suport roaming, permi ând unui client s se mutedintr-un punct de acces în altul în aceea i cl dire sau zon geografic .Wi-Fi este un standard global, clien ii Wi-Fi putând lucra în diferite

ri de pe glob. Exist posibilit i variate de conectare a utilizatorului final, prin

intermediul pl cilor Wi-Fi PCMCIA, PCI, USB sau a sistemelor Wi-Fi802.11b sau 802.11g integrate în majoritatea notebook-urilor moderne.

Exist posibilit i alternative sau combinate de antene Wi-Fiunidirec ionale sau bidirec ionale, sectoriale, direc ionale,omnidirec ionale, punct la punct, punct la multi-punct, sisteme debridge (interconectarea a dou re ele wireless), puncte de acces dediferite puteri, cu diferite câ tiguri etc.

Arhitectura unui sistem de comunica ie care folose te tehnologia Wi-Fieste prezentat în figura 3.80.

Page 78: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 163

Fig. 3.80. Arhitectura unui sistem de comunica ie Wi-Fi.

3.4.5. Gestionarea tranzac iilor I/O

În ceea ce prive te conectarea pl cilor de extensie-periferice într-unul dinsloturile libere de pe placa de baz , simpla cuplare fizic a acestora este suficientdin punct de vedere hardware, dac dispozitivele sunt de tipul plug'n'play.

Exist i o integrare de tip software, pe baza driver-elor care înso esc, deobicei, pl cile de extensie i, de asemenea, este posibil par ial configurarea pe bazaset rilor din CMOS, solu ii care îns nu rezolv integral problema interconect rii.

Pentru a integra complet un dispozitiv periferic într-un sistem de calcul,indiferent de rolul acestuia, este nevoie de a defini i a asigura comunica iageneral , prin care se va semaforiza i controla, la comanda microprocesorului,activitatea total a dispozitivului în cauz , respectiv, de a-l cupla în sistemulgeneral al transferurilor de date.

Este vorba, pe de-o parte, de a stabili i rezerva un canal de comunica ieDMA (Direct Memory Access), iar, pe de alt parte, de a stabili i rezerva anumitecanale de întrerupere IRQ (Interrupt Request) i, în final, de a seta adresele deintrare-ie ire (adrese I/O), la nivelul c rora se efectueaz transmiterea datelor,comenzilor i parametrilor necesari proceselor executate de periferic.

3.4.5.1. Transferurile DMA (Direct Memory Access)

Folosirea DMA duce la cre terea vitezei sistemului prin degrevareamicroprocesorului de controlul transferurilor de date, accesul la memorie fiindefectuat de c tre placa de extensie respectiv , f supraveghere continu .

În esen , când este vorba despre DMA, se face practic referire latransferurile de date ( i la controlul acestora) între memorie i porturile I/O (carepot fi definite i ca puncte de cuplare a extensiilor periferice la sistem).

ARHITECTURA SISTEMELOR DE CALCUL164

Dar dac procesorul nu mai este interogat asupra acelor activit i, atunci decontrolul i securitatea lor se ocup un dispozitiv numit controler DMA (în generalde tipul i8237), care suport , în cazul PC-XT, patru canale (DMA0• DMA3), putândgestiona pân la patru procese simultane de transfer de date. Calculatoarele dotate cuprocesoare de la 80386 în sus dispun de înc patru canale DMA pe 16 bi i (numiteHDMA), gestionate de un al doilea controler de tipul i8237A-5 (vezi figura 3.81).

Fig. 3.81. Conectarea controlerului DMA în sistem.

Un transfer DMA const din urm toarele faze:1. ini ializarea transferului;2. transferul efectiv de date;3. verificarea termin rii i a corectitudinii transferului.În faza de ini ializare, CPU înscrie în registrele interne ale controlerului

DMA adresa de început a blocului de memorie implicat în transfer i num rul deocte i transfera i, precizând sensul de transfer (citire din memorie i scriere laperiferic sau citire de la periferic i scriere în memorie).

La lansarea unui transfer DMA de c tre o interfa de intrare-ie ire,succesiunea evenimentelor din faza de ini ializare este urm toarea:

interfa a genereaz un semnal de cerere, DRQ (DMA ReQuest), c trecontrolerul DMA;

controlerul DMA solicit prin linia HOLD accesul la magistral ; dup terminarea ultimului ciclu în execu ie, CPU suspend temporar

activitatea pe magistral prin dezactivarea amplificatoarelor de date,adrese i comenzi (magistrala trece în starea de impedan înalt );

Page 79: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 165

CPU r spunde controlerului DMA prin generarea unui semnal, HLDA(HoLD Acknowledge), prin care anun acceptarea cererii de cedare amagistralei;

controlerul DMA preia controlul magistralei prin generarea semnalelorde comand i a celor de adrese pentru efectuarea transferului,

spunzând interfe ei I/O prin semnalul DACK (DMA ACKnowledge)în momentul în care transferul poate începe.

În faza de transfer al datelor au loc mai multe cicluri de transfer subsupervizarea controlerului DMA. În cadrul unui ciclu se transfer un cuvânt de date.

În faza de verificare se realizeaz un control de paritate sau CRC.Pentru a realiza func iile prezentate, un controler DMA trebuie s con in

urm toarele componente: registre pentru generarea adreselor de memorie; num toare pentru contorizarea cuvintelor de date transferate pe fiecare canal; un registru de stare pentru marcarea configura iei curente; registre de comand pentru programarea modului de transfer; un circuit de arbitrare pentru solu ionarea cererilor multiple de acces; circuite pentru controlul magistralei (amplificatoare de adrese, date, comenzi); un dispozitiv de comand secven ial pentru derularea ciclurilor DMA

i pentru preluarea/cedarea magistralei.Situa iile în care este necesar acest dispozitiv de comand secven ial sunt

cele în care viteza de transfer impus de echipamentul periferic este relativ mare iCPU nu reu te s execute instruc iunile con inute în ciclul de transfer în perioadadintre dou solicit ri succesive.

În cazul PC-urilor, transferul DMA se utilizeaz pentru interfa a de floppydisk i pentru transferul serial pe bloc. Un canal DMA (canalul 0) este utilizatpentru opera ia de reîmprosp tare (refresh) a memoriei dinamice. Sunt simulateperiodic cicluri de citire a memoriei.

Referitor la primele patru canale DMA, dintre acestea canalele 0, 2 i 3sunt rezervate pentru activitatea intern a sistemului de calcul (0 – RAM refresh, 2– opera ii cu floppy disk-ul i 3 – opera ii cu hard disk-ul). R mâne disponibilcanalul 1 pentru dispozitive periferice. Sunt disponibile înc 3 canale HDMA: 5, 6,7, în general, canalul 4 fiind folosit pentru func ionarea controlerului HDMA,cuplat în cascad cu primul controler.

Utiliz rile tipice ale canalelor DMA se pot observa în tabelul 3.9.În momentul în care o setare DMA a fost f cut gre it (de exemplu, mai

multe dispozitive folosesc acela i canal DMA), placa nou montat nu va maifunc iona sau sistemul se va bloca. Concluzia este c nu trebuie folosite, practic,acelea i canale DMA pentru dou dispozitive periferice diferite.

3.4.5.2. Canalele IRQ (Interrupt Request)

În ceea ce prive te cel de-al doilea parametru, canalul IRQ, i acesta poatecauza, la set ri defectuoase, func ion ri gre ite i bloc ri de sistem.

ARHITECTURA SISTEMELOR DE CALCUL166

Tabelul 3.9Utiliz rile tipice ale canalelor DMA

DMA magistral utilizare tipic alte utiliz ri uzuale

0 – RAM refresh –1 8/16 bi i Plac de sunet

(low DMA)Adaptoare SCSI, porturi paralele, pl ci de re ea,

modemuri de voce2 8/16 bi i Controler

floppy disk–

3 8/16 bi i Liber Adaptoare SCSI, porturi paralele, pl ci de sunet(low DMA), de re ea, voice modem, controler HD

4 – Redirectat pentrunivelele DMA 0• 3

5 16 bi i Plac de sunet(high DMA)

Adaptoare SCSI, pl ci de re ea

6 16 bi i Liber Plac de sunet (high DMA), pl ci de re ea7 16 bi i Liber Plac de sunet (high DMA), pl ci de re ea

Întreruperile hardware sunt gestionate de un cip de genul i8259. Logicaprocesului de cerere de întrerupere (Interrupt Request) const din conectareafunc ional la sistem a unei extensii (cu rolul i scopul s u bine definit) ioptimizarea transferurilor de date i informa ii c tre/de la microprocesordinspre/spre acele extensii. În acest mod, se elibereaz microprocesorul de sarcinacronofag de a urm ri activitatea perifericului în cauz .

Un canal IRQ este sistemul de transmisiune folosit de componentelesistemului pentru a semnala o cerere de intrare în ac iune.

Exemplu. O plac de sunet nu va func iona oricum, ci va avea nevoie de ocomand din partea microprocesorului pentru a îndeplini sarcina trasat la unmoment dat de o cerin soft. În func ie de nivelul de întrerupere (gradul deprioritate) alocat, controlerul de întrerupere va stabili oportunitatea interven ieipl cii de sunet în func ie de celelalte cereri de întrerupere primite de la alteperiferice. Dac nivelul de prioritate este superior celorlalte cereri existente, placa

i va îndeplini activitatea pe baza acceptului primit de la microprocesor.Alocarea nivelurilor de întrerupere este prezentat în tabelul 3.10.Func ionarea unui canal IRQ este urm toarea: placa periferic instalat lanseaz c tre microprocesor un semnal

Interrupt Request (o cerere de întrerupere, desemnat de un anumitnum r-cod);

imediat, microprocesorul abandoneaz temporar ac iunea pe care oîntreprinde la acel moment i transmite perifericului un mesaj de recep ie,denumit Interrupt Acknowledge, în cazul în care nivelul de prioritate alprocesului solicitant este superior celui în curs de desf urare;

Page 80: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 167

Tabelul 3.10Nivelurile IRQ i asignarea corespunz toare fiec rui dispozitiv

nivel întrerupere utilizare

IRQ0 Ceas de sistem (nu se poate defini de c tre utilizator)

IRQ1 Tastatur

IRQ2 Al doilea controler IRQ

IRQ3 Liber (standard pentru COM2/COM4)

IRQ4 Liber (standard pentru COM1/COM3 – conectarea mouse-ului serial)

IRQ5 Liber (standard pentru placa de sunet); placa de re ea i LPT2 suntdeseori setate la IRQ5, dac nu este alocat pl cii de sunet

IRQ6 Floppy disk (nu se poate defini de c tre utilizator)

IRQ7 LPT1 (dac nu se folose te un port paralel, atunci IRQ7 poate fi asignatunui alt dispozitiv)

IRQ8 Ceas de timp real (nu se poate defini de c tre utilizator)

IRQ9 Redirectat de IRQ2 (de obicei, folosit pentru placa grafic )

IRQ10 Liber (dac placa de sunet folose te IRQ5, atunci IRQ10 poate fi folositpentru placa de re ea)

IRQ11 Liber (de obicei, folosit pentru controlerul SCSI)

IRQ12 Liber (de obicei, folosit pentru PS2)

IRQ13 Coprocesor matematic (nu se poate defini de c tre utilizator)

IRQ14 Controlerul IDE1 (Hard disk, CD-ROM); al doilea dispozitiv IDE de peacela i cablu folose te acela i IRQ

IRQ15 Controlerul IDE2

sistemul de operare execut o rutin special , care are ca sarcin salvareast rii microprocesorului (salvarea con inutului registrelor curente);

se cite te din tabela vectorilor de întrerupere (TVI) o adres la carese afl num rul canalului de întrerupere cerut;

prin citirea adresei din TVI, se poate da controlul rutinei-driver aflatela adresa citit , rutin care r spunde de activitatea dispozitivului care aemis semnalul IRQ;

rolul final al rutinei sistemului de operare este s refac stareamicroprocesorului, înc rcând registrele salvate anterior, moment dincare sistemul revine la starea i procesul desf urate anteriorsemnalului IRQ.

Cum într-un sistem de calcul exist mai multe componente care pot ceresimultan permisiunea microprocesorului de a intra în ac iune, este foarte probabil

ARHITECTURA SISTEMELOR DE CALCUL168

ca cel pu in dou cereri de întrerupere s fie lansate c tre microprocesor în acela itimp. De aceea, magistrala IRQ (traseul urmat de semnalele de întrerupere la/de lamicroprocesor) a fost dotat cu dou controlere de întrerupere înseriate, fiecareavând opt intr ri i o ie ire, cel de-al doilea având intrarea 2 conectat la ie ireaprimului, m rindu-se astfel num rul nivelurilor de întrerupere care pot fi utilizate.

Pl cilor de extensie (perifericelor) le vor fi asignate anumite numere deordine (coduri), prin care vor fi recunoscute de controlerul de întrerupere i, maideparte, de microprocesor. Corespunz tor celor 28 intr ri, vor rezulta 16 niveluri(canale) de întrerupere, multe dintre acestea fiind rezervate unor perifericeinstalate, f de care sistemul nu ar putea func iona (placa grafic – canalul 9, harddisk-ul – canalul 14, tastatura – canalul 1, ceasul de timp real – canalul 8 etc.,conform tabelului 3.10).

Cel mai important nivel IRQ este IRQ0, apoi urmeaz IRQ1, IRQ2/9,IRQ10–IRQ15 i IRQ3–IRQ8.

Similar alegerii canalelor DMA, i pentru nivelurile de întrerupere folositeeste valabil acela i principiu: este necesar alocarea nivelurilor de întreruperediferite pentru pl ci de extensie diferite, pentru a nu intra în conflict diversele cererisimultane ale extensiilor, adresate aceluia i nivel de întrerupere.

Cipul 8210A asigur un nivel de priorit i pentru cererile simultane deîntrerupere, în scopul elimin rii conflictelor. Pentru sistemele de tip XT exist optniveluri de priorit i (IRQ0• IRQ7), iar pentru sistemele AT, 16 niveluri. Se potfolosi i diversele canale de întrerupere prealocate (de exemplu, IRQ5 pentruLPT2, dac placa de sunet nu exist ).

3.4.5.3. Adresa de intrare-ie ire

Cel de-al treilea parametru care trebuie avut în vedere la instalarea unuidispozitiv periferic este adresa de intrare-ie ire. Microprocesoarele din seria • 86 audisponibil un spa iu de memorie special pentru stocarea adreselor de intrare-ie ire,respectiv, pentru instruc iunile de transfer al informa iei dintre microprocesor ipl cile de extensie conectate. Aceast memorie este nesegmentat i poate depozitaîn total 64 KB (pentru porturi de 8 bi i) sau 32 KB (pentru porturi de 16 bi i) de date.

Cum sec iunea de memorie pus la dispozi ia unei pl ci de extensie pentrutransferul de date la/de la microprocesor este de dimensiune relativ mic (16 octe i),va fi nevoie de alocarea mai multor spa ii de memorie pentru ca o extensie s poatfi cuplat în sistemul de comunica ie. Practic, aceste spa ii de memorie reprezintmici por i de memorie folosite ca „pun i” de comunica ie, acelea i por i fiindfolosite întotdeauna de aceea i plac de extensie.

Toate aceste adrese (date în sistem hexazecimal) sunt indicate în c iletehnice care înso esc pl cile de extensie i trebuie setate cu mare grij pentru a nuse suprapune cu alte adrese, alocate altor dispozitive.

În acest scop, se analizeaz adresele I/O pentru toate celelalte dispozitive iabia dup aceea se seteaz cele noi. În caz contrar, func ionarea sistemului va fiobstruc ionat de conflictele de comunica ie care apar la suprapunerea adreselor de

Page 81: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 169

intrare-ie ire. Orice port este definit de o asemenea adres , care va accesa o zon dememorie din partea inferioar a memoriei de lucru.

Referitor la dificult ile generate de setarea acestor parametri, semen ioneaz ca solu ie deosebit de avantajoas i rapid folosirea arhitecturii PCI,care, prin intermediul setului de cipuri inteligente, permite sistemului s seautoconfigureze, instalarea noii pl ci decurgând f probleme (plug'n'play).

Practic, dup cuplarea fizic , în slotul PCI liber urmeaz instalarea driver-uluipl cii respective (o ac iune software), cu aceasta încheindu-se dotarea sistemului.Sistemul va recunoa te automat la pornire placa nou instalat , configurând totodati canalele DMA, IRQ i adresele I/O necesare.

3.4.6. Proiectarea unui sistem I/O

Arta proiect rii unui sistem I/O const în a g si solu ia care sîndeplineasc obiectivele de cost, dependen e i varietate ale dispozitivelor, i, înacela i timp, s se evite sc derea performan ei I/O. Pentru a evita sc dereaperforman ei, componentele trebuie s fie echilibrate între memoria principal idispozitivele I/O.

Arhitectul trebuie s pl nuiasc o extindere, atât în ceea ce prive tenum rul, cât i tipurile dispozitivelor I/O, astfel încât clien ii s poat proiectare eaua I/O conform necesit ilor aplica iilor lor, a a cum rezult din figura 3.82.De exemplu, discurile de stocare trebuie s fie dependente de limit rile care se potimpune proiectului.

Fig. 3.82. Exemplu de organizare a unui sistem I/O.

ARHITECTURA SISTEMELOR DE CALCUL170

În continuare, sunt prezenta i pa ii care trebuie urma i pentru proiectareaunui sistem I/O. Solu iile pentru fiecare pas în parte sunt dictate de cerin elepie ei, cost, performan sau de posibilitatea îndeplinirii obiectivelor.

1. enumerarea diferitelor tipuri de dispozitive I/O care se vor conecta lasistem sau enumerarea magistralelor standard pe care le suportsistemul;

2. enumerarea cerin elor fizice pentru fiecare dispozitiv I/O, cerin eleincluzând dimensiunea, puterea, conectorii, sloturile disponibile pemagistral etc.;

3. luarea în calcul a costului fiec rui dispozitiv I/O, incluzând costulcontrolerului necesar pentru dispozitivul respectiv;

4. luarea în calcul a fiabilit ii fiec rui dispozitiv I/O, precum i acerin elor de memorie i de ocupare a magistralei I/O de c tre fiecaredispozitiv I/O în parte;Observa ie: i atunci când CPU nu folose te memoria, dimensiuneamemoriei principale i a magistralei I/O este limitat ;

5. estimarea performan ei i a disponibilit ii diferitelor modalit i deorganizare a dispozitivelor I/O, pentru ca în final s se aleag cea maibun organizare;

6. înregistrarea cererii de acces a fiec rui dispozitiv I/O la resursele CPU: num rul necesar de cicluri de ceas pentru instruc iunile de

ini ializare a dispozitivului I/O; suportarea opera iilor unui dispozitiv I/O (de exemplu, întreruperile); evitarea bloc rii CPU cauzate de a teptarea eliber rii memoriei,

magistralei sau memoriei cache, care sunt folosite de dispozitivele I/O.

Page 82: Arhitectura Sistemelor de Calcul-ASC

4. NIVELUL FIZIC

La baza structurii ierarhice a oric rui calculator se afl nivelul fizic. Elconstituie fundamentul calculatorului i are ca suport circuitele i por ile logice.Deoarece por ile utilizeaz numere binare, func ionarea calculatoarelor se bazeazpe algebra boolean . Func ionarea circuitelor logice se conduce dup principiulunui tranzistor care se comport ca un întrerup tor electronic foarte rapid.

Por ile logice sunt realizate în diferite tehnologii: tehnologie bipolar itehnologie unipolar sau MOS (Metal Oxide Semiconductor). În cadrul tehnologieibipolare se poate remarca familia TTL (Transistor-Transistor Logic) – foarteutilizat – i ECL (Emitter Coupled Logic) – folosit în aplica ii care necesit omare rapiditate de execu ie.

Por ile realizate în tehnologie MOS sunt de 10 ori mai lente decât cele întehnologie TTL i de 100 de ori mai lente decât cele din tehnologia ECL. În cadrultehnologiei MOS se disting câteva familii clasice: PMOS, NMOS i CMOS. A acum s-a mai spus, func ionarea por ilor logice se bazeaz pe algebra boolean . Ofunc ie boolean este asociat uneia sau mai multor variabile i furnizeaz unrezultat care depinde în mod unic de valorile variabilelor binare aplicate la intrare.

Exemplu. O func ie f a unei variabile oarecare A poate fi definit ca fiindf(A) = 1 dac A = 0 i f(A) = 0 dac A = 1. Aceasta este func ia NON.

O func ie boolean de n variabile prezint 2n st ri posibile. A descriecomplet aceste st ri sub forma unui tabel care con ine 2n linii înseamn a construitabela de adev r a func iei respective. Fiecare linie a acestui tabel indic valoareafunc iei pentru configura ia binar de n variabile.

Prin combinarea unor por i logice i încapsularea lor într-un circuit saucapsul au rezultat circuitele integrate logice. Ele sunt realizate cu diverse densit ide integrare (num rul de por i sau de tranzistoare interne pentru circuit sau pemilimetru p trat). Exist mai multe categorii de integrare:

SSI (Small Scale Integration) – circuite cu integrare redus (sub 64por i/circuit);

MSI (Medium Scale Integration) – circuite cu densitate medie deintegrare (sub 1024 por i/circuit);

LSI (Large Scale Integration) – circuite cu înalt densitate de integrare(sub 65.000 por i/circuit);

VLSI (Very Large Scale Integration) – circuite cu înalt densitate deintegrare (peste 65.000 por i/circuit);

SVLSI (Super Very Large Scale Integration) – circuite cu foarte înaltdensitate de integrare (peste 500.000 por i/circuit).

ARHITECTURA SISTEMELOR DE CALCUL172

Limita de integrare a ajuns la câteva milioane de tranzistoare pentru circuitelemodeste sau chiar la câteva 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 ini ial de TexasInstruments i distribuite ast zi de numero i fabrican i de circuite logice. Din cadrultehnologiei MSI fac parte circuitele logice combina ionale, dintre care se pot aminti:multiplexorul, demultiplexorul, comparatorul, registrele logice programabile.

Exist unele circuite logice cu memorie. Pentru un calculator, memoria esteun dispozitiv esen ial. Ea este utilizat pentru stocarea instruc iunilor i a datelorprogramului în curs de execu ie. Pentru a ob ine memorarea unui bit, este necesar

se utilizeze un dispozitiv care se substituie valorii pe care a înregistrat-o. Un astfelde circuit poate fi realizat simplu cu por i logice, de exemplu cu por i logice I-NU.

4.1. Microprocesorul

Microprocesorul reprezint inima unui sistem de calcul. Privit din punct devedere fizic, el este un circuit care prezint câteva zeci sau chiar sute de terminale.Semnalele de comunica ie asociate acestora îi permit microprocesorului s facschimb de informa ii cu mediul extern, în principal cu circuite de memorie sau cucircuite de intrare-ie ire. O analiz detaliat a acestor semnale determin diverselemoduri de func ionare logic i electric a procesorului i posibilit ile sale deinterfa . Exist trei categorii de semnalele electrice externe ale microprocesorului:

de adres ; de date; de comand .Fiec rui tip de semnal îi sunt asociate linii de comunicare care formeaz o

magistral . De cele mai multe ori, în limbajul de specialitate se vor întâlni câtevano iuni specifice precum: magistrala de adrese, care reprezint totalitatea liniilor pecare circul adresele, magistrala de date, corespunz toare liniilor de date imagistrala de comenzi, specific liniilor de comenzi.

Fig. 4.1. Schema unui microprocesor tipic.

Page 83: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 173

Pentru ob inerea unei instruc iuni a programului care este executat,microprocesorul începe prin plasarea adresei acestei instruc iuni pe magistrala deadrese. Se activeaz un semnal pe magistrala de comand pentru specificarea uneiac iuni de citire din memorie. Ca r spuns la aceast cerere, memoria plaseazinstruc iunea pe magistrala de date, trimite un semnal c tre microprocesor prin careacesta este aten ionat c opera iunea este terminat i activeaz un semnal specificde validare a magistralei de comenzi. În timp ce microprocesorul prime tesemnalul de validare de memorie, el cite te informa ia (instruc iunea) prezent pemagistrala de date i o plaseaz într-unul din registrele interne.

Exist doi parametri principali asocia i performan elor unui microprocesor:num rul de linii ale magistralei de adrese i num rul de linii ale magistralei de date.

Observa ie. Ambii parametri se refer la imea magistralelor i se m soarîn num r de linii (sau de bi i). A nu se confunda cu rgimea (de band ) amagistralelor, care se exprim în termenii vitezei de transfer (multipli deocte i/secund .)

Un microprocesor care are m linii de adres poate adresa pân la 2m cuvintede 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 cuvânt de memorie de n bi i într-osingur opera ie. Valorile curente pentru n sunt: 8, 16, 32 sau 64.

Exemplu. Un microprocesor care dispune de opt linii de adres necesitpatru opera ii de citire pentru citirea unui cuvânt de 32 de bi i. Dacmicroprocesorul ar avea 32 de linii de adres , citirea aceluia i cuvânt s-ar face într-un singur tact, de unde rezult c un procesor este cu atât mai rapid cu cât are maimare num rul de linii de date.

În afara liniilor de adres i de date, microprocesorul dispune de linii decomand . Acestea permit asigurarea sincroniz rii, regl rii i comand riischimburilor pe magistral între microprocesor i mediul extern.

Semnalele de întrerupere sunt semnale de intrare pentru un microprocesor.Ele provin în principal de la circuitele de intrare-ie ire.

Exemplu. Un microprocesor cere unui circuit de intrare-ie ire (de faptperifericului c ruia îi este asociat) s efectueze o anumit sarcin , dup care î icontinu activitatea. În acest timp, perifericul realizeaz opera ia cerut la viteza saproprie de execu ie. Dup ce sarcina este îndeplinit , perifericul previne circuitulde I/O (intrare-ie ire) care activeaz un semnal de întrerupere prin care i se ceremicroprocesorului o cerere de comunicare. O astfel de cerere de întrerupere poate fiactivat , de exemplu, la terminarea unei sarcini sau la apari ia unei erori. Urmeazapoi o secven de tratare a acestei cereri de întrerupere.

Semnalele care gestioneaz accesul la magistral servesc la fluidizareatraficului pe magistral prin evitarea unor bloc ri care pot rezulta din utilizareasimultan de c tre dou circuite a magistralei.

Unele procesoare au linii speciale de comunicare cu alte procesoare sau cuprocesorul secundar (coprocesorul), atunci când situa ia o cere. Acest lucru sepoate întâmpla, de exemplu, atunci când este nevoie de un calcul matematic, princedarea controlului coprocesorului matematic.

ARHITECTURA SISTEMELOR DE CALCUL174

4.2. Întreruperile

Întreruperile sunt schimburi în fluxul de control, care nu sunt cauzate deprogramul care se execut , ci de alte cauze, aflate de obicei în leg tur cu opera iile I/O.

Exemplu. Un program poate comanda discului s porneasc transferulinforma iei i îi cere acestuia s furnizeze o întrerupere imediat ce transferul s-aterminat. Microprocesorul întrerupe programul ce se execut i transfer controlulunei proceduri de tratare a întreruperii, care execut câteva ac iuni corespunz toare.Când se termin , rutina de tratare a întreruperilor întoarce controlul c treprogramul întrerupt. Microprocesorul trebuie s reporneasc procesul întreruptexact din aceea i stare în care era când a ap rut întreruperea, ceea ce înseamnrefacerea tuturor registrelor interne în starea de dinainte de întrerupere.

Un concept cheie al întreruperilor este transparen a. Când apare oîntrerupere, se execut câteva ac iuni i un fragment de cod anumit, dar cândservirea întreruperii s-a terminat, calculatorul trebuie s se întoarc în aceea i starepe care a avut-o înainte de întrerupere. O procedur de tratare a întreruperii cuaceast 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 întreruperesau s apar o astfel de cerere atunci când se execut deja una. Pentru a se puteaface o departajare între toate aceste întreruperi, acestea vor avea ata at câte un nivelde prioritate. Când un dispozitiv cu prioritatea n genereaz o întrerupere, rutina detratare 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 c tre un dispozitiv cu o prioritate maimic este ignorat pân când rutina întreruperii se termin i UCP se întoarce laprogramul utilizatorului. Pe de alt parte, tratarea întreruperilor de la un dispozitivcu o prioritate mai mare trebuie validat f nici o întârziere.

4.2.1. Gestionarea întreruperilor

Dac unitatea central (UC) a cerut unui circuit de I/O efectuarea uneiopera ii, aceasta anun sfâr itul opera iei printr-o întrerupere. De asemenea, undispozitiv care dore te s foloseasc resursele procesorului semnalizeaz acestlucru c tre procesor printr-o cerere de întrerupere. O întrerupere implic înmajoritatea cazurilor o cerere de magistral .

Într-un sistem real, mai multe dispozitive pot cere simultan întreruperi. Estedeci necesar un sistem de gestionare a cererilor de întrerupere (apare aceea iproblem ca în cazul accesului la magistral , i anume care dintre dispozitivele ce auemis cererea urmeaz s fie servit). O modalitate curent de solu ionare a cererilorsimultane de întrerupere este de a asigna niveluri de prioritate diferite pentrudiversele dispozitive i de a utiliza un circuit arbitru pentru gestionarea acestor cereri.

Page 84: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 175

Exemplu. Un astfel de circuit este Intel 8259A (controler de întreruperiutilizat în calculatoarele IBM PC/AT i 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 intr rii asociateperifericului. Când una sau mai multe întreruperi ajung la controlerul deîntreruperi, acesta anun UC prin linia special INT (Interrupt), care este legat laintrarea de întrerupere a UC. Aceasta r spunde de obicei printr-un semnal devalidare a întreruperii (de exemplu, INTA = Interrupt Acknowledge). Ca urmare,controlerul de întreruperi informeaz UC pe magistrala de date despre dispozitivulcare a cerut întreruperea. Unitatea central utilizeaz acest num r pentru a ob inedintr-o tabel de pointer-i indexat adresa rutinei de întrerupere corespunz toare.

Controlerul de întreruperi con ine un num r de registre interne care pot ficitite sau scrise de c tre UC cu ajutorul semnalelor RD (Read), WR (Write), CS(Chip Select) i A0 (linia 0 de adres ). Toate aceste semnale, la fel ca INT i INTA,sunt active pe zero. Prin intermediul registrelor, UC comunic controlerului deîntreruperi disponibilitatea de a trata o nou cerere de întrerupere sau poateprograma controlerul s func ioneze într-un mod particular, de exemplu smascheze întreruperile pe o anumit intrare. Dac se dispune de mai multecontrolere 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 ostructur pe dou niveluri, care con ine un 8259A la ale c rui intr ri sunt legateie irile de întreruperi ale altor opt circuite 8259A. Se creeaz astfel posibilitateatrat rii a 64 de linii de întrerupere.

4.3. Magistrala

4.3.1. Conceptul de magistral

În modelul ma inii von Neumann, comunica ia dintre componentelesistemului se realizeaz prin leg turi dedicate între perechi de componente. Aceast

UC

8259A

controlerde

întreruperi

ARHITECTURA SISTEMELOR DE CALCUL176

abordare este relativ rigid , limitând drastic scalabilitatea (posibilitatea deextindere) a sistemului.

Ad ugarea de noi componente este dificil i implic modificarea celor dejaexistente. Proiectarea unei noi componente implic cunoa terea în detaliu afunc ion rii celorlalte elemente deja prezente. Solu ionarea acestei probleme avenit din partea firmei Digital Equipment Corporation (DEC), care la sfâr itulanilor '60 a lansat pe pia primul calculator (PDP 11), construit în jurul uneimagistrale – magistrala UniBus.

Conceptual, magistrala este un mediu comun de comunica ie întrecomponentele unui sistem de calcul; fizic este alc tuit dintr-un set de linii desemnal care faciliteaz transferul de date i realizeaz sincronizarea întrecomponentele sistemului.

Introducerea conceptului de magistral a revolu ionat modul de concepere iproiectare a noilor sisteme de calcul. Modelul de calculator bazat pe magistral afost preluat mai ales de familiile de calculatoare mini i micro. Prin standardizareamagistralelor, sistemele de calcul au devenit deschise, în sensul c un num r maimare de produc tori au avut posibilitatea s realizeze componente pentru o anumitstructur de calculator (module de memorie, interfe e I/O, echipamente periferice),bazându-se numai pe specifica iile magistralei.

În decursul timpului au fost dezvoltate diferite standarde de magistral , careau urm rit evolu ia procesoarelor (a unit ilor centrale) i a necesit ilor decomunica ie ale acestora (vitez , mod de transfer, necesit i de sincronizare icontrol etc.). S-au dezvoltat, de asemenea, magistrale specializate pentru anumitetipuri de echipamente periferice (SCSI i EIDE pentru unit i de disc, consolegrafice, interfe e de m sur i control). Din acest punct de vedere, în momentulactual se pot distinge dou clase de magistrale:

magistrale de sistem – dezvoltate mai ales pentru conectarea unit iicentrale la celelalte componente de baz ale sistemului (de exemplu:MultiBus, ISA, EISA, PCI);

magistrale specializate – care încearc s optimizeze transferul de datecu un anumit tip de echipamente periferice (VESA, AGP, SCSI, GPIB).

Apari ia i evolu ia ulterioar a microprocesoarelor a consacrat modelul decalculator bazat pe magistral . Configura ia semnalelor unui microprocesor esteastfel conceput încât s permit conectarea u oar la o magistral de sistem. Îngeneral, fiecare familie de microprocesoare (Intel 8086, Z80, MC 68000) a impus oanumit structur i un anumit standard de magistral . Exist îns anumitecaracteristici comune acestor magistrale (principii de transfer, tipuri de semnale),astfel încât modulele proiectate pentru un tip de magistral s poat fi, prinmodific ri minime, conectabile altor magistrale.

S-au introdus noi principii de transfer care compenseaz într-o oarecaresur limit rile de vitez impuse de legile fizicii de transmitere a semnalelor

electrice. Cele mai reprezentative dintre acestea sunt transferul concurent printranzac ii i prelucrarea pipe-line a cererilor de transfer.

Page 85: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 177

4.3.2. Elemente definitorii ale magistralei

O magistral se compune dintr-un set de semnale i un set de reguliconstituite într-un protocol, care guverneaz transferul de informa ii i accesul lamediul de comunica ie. Informa iile transferate pot fi: date, instruc iuni iinforma ii de control i sincronizare.

Protocolul se refer la: caracteristicile mecanice: tip de conectori, num r de conectori aloca i pentru

un slot, formatul modulelor de extensie ata abile, sertar i fund de sertar(rack i cablajul din spatele acestuia – aceast structur fiind specificmagistralelor industriale);

caracteristicile electrice ale componentelor conectate pe magistral : niveluride tensiune, curen i, înc rcare, frecven de lucru, rat de transfer;

secven a de generare a semnalelor necesare pentru efectuarea unui transfer; timpii limit pentru diferitele faze ale unui transfer i timpii de men inere a

unui anumit semnal; intercondi ion rile func ionale i temporale între diferitele tipuri de semnale.

În accep iunea clasic , o magistral se compune din urm toarele tipuri desemnale.

Semnale de date – sunt semnale bidirec ionale utilizate pentru transferul dedate i instruc iuni. La un moment dat doar un singur dispozitiv poate s emit peliniile de date; num rul liniilor de date (8, 16, 32, 64) determin dimensiuneamaxim a cuvântului de date care poate fi transferat la un moment dat i, implicit,viteza medie de transfer a magistralei.

Semnale de adres – sunt utilizate pentru specificarea adresei modululuidestina ie sau surs de date, num rul de linii de adres determinând spa iul maximde adresare permis de magistral (de exemplu, 24 linii de adres determin unspa iu de adresare de 224 =16 Mloca ii).

Semnale de comand – sunt semnale unidirec ionale generate de CPU (saude c tre alt dispozitiv master), utilizate pentru specificarea direc iei de transfer (deexemplu, semnale de citire sau scriere pentru CPU) i 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 condi iilor detransfer al datelor (temporizarea deschiderii i închiderii amplificatoarelor demagistral pentru semnalele vehiculate pe aceasta).

Semnale de întrerupere – sunt generate de un controler dedicat, permitsemnalizarea unor evenimente interne sau externe i implicit determinîntreruperea execu iei programului curent.

Semnale de tact (de ceas) – sunt generate de un oscilator cu cuar , fiindfolosite pentru sincronizare i pentru generarea unor semnale de frecvenprogramabil .

Linii de alimentare – sun generate de sursa de tensiune a sistemului, fiindfolosite pentru alimentarea modulelor sistemului.

ARHITECTURA SISTEMELOR DE CALCUL178

Semnale de control al accesului – sunt utilizate pentru arbitrajul icontrolul accesului pe magistral (în cazul magistralelor multimaster), fiindgenerate de un circuit specializat (arbitru de magistral ).

Num rul i semnifica ia particular a semnalelor depind de tipul i destina iamagistralei. Anumite grupe de semnale din cele prezentate pot s lipseasc (deexemplu, semnalele de control) sau altele noi pot fi ad ugate (semnalele de eroare,semnalele de control al l imii datelor transferate pe 8 sau pe 16 bi i etc.).

Magistralele pot fi clasificate în func ie 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 amagistralei este limitat de frecven a tactului. Datorit vitezei limitate depropagare a semnalului electric, cre terea ratei ar duce la diferen e defaz la capetele magistralei.

magistrale asincrone – la care nu exist o leg tur direct între evolu iaîn timp a unui ciclu de transfer i tactul sistemului. Majoritateamagistralelor actuale lucreaz pe acest principiu (de exemplu, ISA,EISA, MultiBus etc.).

II. num rul 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 poateini ia un ciclu de transfer, pe când un modul slave poate fi comandat întimpul unui ciclu de transfer, neavând elementele necesare pentru aprelua controlul magistralei).

magistrale multimaster – permit conectarea mai multor module masterpe acela i tronson de magistral . Magistrala trebuie s con in semnalede arbitraj i un protocol de transfer al controlului pe magistral (deexemplu, MultiBus, VME).

III. modul de realizare al transferului de date: magistrale cu transfer prin cicluri (magistrale secven iale) – regula

de baz : ciclurile de transfer se desf oar secven ial, la un moment datcel mult un ciclu de transfer fiind în curs de desf urare. Majoritateamagistralelor folosesc acest principiu de transfer. În func ie de direc iade transfer se disting ase cicluri semnificative: cicluri de citire (respectiv scriere) din/în memorie; cicluri de citire (respectiv scriere) de la/la un port intrare-ie ire; cicluri de acces direct la memorie (citire/scriere);

magistrale tranzac ionale – transferul de date se efectueaz printranzac ii. O tranzac ie este divizat în mai multe faze. Mai multetranzac ii se pot desf ura simultan, cu condi ia ca tranzac iile s fie înfaze diferite; aceast restric ie provine din faptul c fiecare faz a uneitranzac ii folose te un subset din mul imea semnalelor magistralei.Teoretic, la aceste magistrale factorul de cre tere a vitezei (în compara ie

Page 86: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 179

cu o magistral secven ial ) este egal cu num rul de faze în care sedivide o tranzac ie (de exemplu, magistrala procesoarelor post-Pentium).

IV. num rul semnalelor utilizate în transferul de date: magistrale seriale – se utilizeaz ca mijloc de comunica ie între

componentele de baz ale unui calculator (CPU, memorie, interfe e deI/O etc.). Se folosesc, de asemenea, în anumite sisteme dedicate bazatepe microcontrolere, la care costul i dimensiunea redus sunt parametridefinitorii. Cu toate c viteza de lucru este mai mic decât lamagistralele 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 realizându-se la nivel de octet i nu de bit.

4.3.3. Tipuri, familii i standarde de magistral

Tipurile uzuale de magistrale sunt:I. Magistrale procesor-memorie: între procesor i 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 decât 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 configura ii);

Magistralele I/O necesit o interfa simpl , pe când cele backplanenecesit o logic suplimentar la interfa . În schimb, avantajul magistralelorbackplane este c acestea con in singure toate conexiunile. Se pot crea conexiunicomplexe, ca în figura 4.3 (în cazul folosirii unor tipuri multiple de magistrale,trebuie utilizate adaptoare de magistrale pentru interconectare). Figura 4.3 con ineconfigura ii cu magistrale pentru comunicarea procesor-memorie i 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 CALCUL180

Fig. 4.3. Configura ii cu magistrale pentru comunicarea procesor-memorie i 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 influen ate de cerin ele iparticularit ile func ionale ale procesorului pentru care a fost conceput . Acest faptvine în contradic ie cu ideea de sistem deschis, conform c reia mediul decomunica ie între componentele unui sistem trebuie s fie independent de produc tor.Firmele dominante în domeniul construc iei de calculatoare i-au dezvoltat propriilestandarde 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 i utilizabil liber de orice produc tor; altele au fost patentate i aurestric ii de utilizare, de exemplu magistrala MicroChannel (MCA) a firmei IBM,folosit în construc ia calculatoarelor PS/2. Exist i standarde dezvoltate degrupuri de produc tori cu interese apropiate. Astfel au ap rut standardele Camac,FastBus, FutureBus, NuBus, Can etc.

În cazul acestor magistrale se pune problema asigur rii interoperabilit ii icompatibilit ii între module realizate de diver i produc tori. Metoda de eliminarea unor astfel de probleme este supunerea componentelor la teste de conforman .Cele mai cunoscute foruri interna ionale de standardizare care au activitate îndomeniul magistralelor sunt IEEE, ANSI i IEC.

Câteva din cele mai cunoscute tipuri de magistrale sunt prezentate în tabelul 4.1.

Page 87: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 181

Tabelul 4.1Tipuri de magistrale

StandardIEEE

Numeuzual

Domeniide utilizare

488 GPIB Instrumente de laborator

583, 596, 683 Camac Achizi ie de date i instrumenta ie

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 procesori memorie, o magistral cu acces multiplu (multimaster) pentru unele periferice de

mare vitez (disc, interfa video) i o magistral de mic vitez pentru perifericelelente. În aplica iile de control se mai poate ad uga i o magistral deinstrumenta ie, adaptat pentru culegerea datelor de proces.

Pentru a satisface o gam larg de cerin e, s-au dezvoltat familii demagistrale care cuprind mai multe variante ale unei magistrale de baz i suntcompatibile între ele într-o oarecare m sur (interfe ele dezvoltate pentru acestevariante necesit modific ri minore pentru compatibilizare).

În prezent exist mai multe astfel de familii de magistrale: magistrale dezvoltate pentru calculatoare DEC – UniBus, QBus i VAXBI; magistrale dezvoltate pentru procesoarele Intel – MultiBus I, MultiBus II

i extensii ale acestora; magistrale inspirate de structura seriei de procesoare Motorola –

magistralele VME; magistrale de instrumenta ie – familia GPIB (dezvoltat de Hewlett

Packard), IEEE488 i Camac.

ARHITECTURA SISTEMELOR DE CALCUL182

În domeniul PC-urilor, s-au dezvoltat mai multe magistrale care au devenitstandarde de facto înainte ca acestea s fie propuse pentru standardizare formal :ISA, EISA, VESA, PCI, SCSI, AGP etc.

Dup cum s-a ar tat, o magistral (bus) este o structur de interconectare (unansamblu de linii de comunica ii) între mai multe circuite sau unit i ale unuicalculator. Un PC are diferite tipuri de magistrale, între care se afl urm toarele: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 i PDP-11), MegaBus (Moneywell),MicroChannel (PS/2), NuBus (MacIntosh 2), VersaBus (Motorola), VME(Motorola 680x0), MultiBus 1 (INTEL 8086), MultiBus 2 (INTEL 80386), ISA sauATBus (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 comunica ie între CPU i cipurile cucare lucreaz direct. Aceast magistral este folosit pentru a transfera date, deexemplu între CPU i memoria cache extern . Cele mai multe sisteme au un cacheextern pentru CPU; aceste memorii cache sunt în general folosite în toate sistemelecare utilizeaz cipuri 486, Pentium, Pentium Pro sau ulterioare.

Deoarece scopul magistralei procesorului este transmiterea i primireadatelor de la CPU cu cea mai mare vitez posibil , aceast magistral lucreaz la ovitez mult mai mare decât orice alt magistral din sistem: aici nu existstrangul ri. Magistrala este compus din linii de semnal utilizate pentru date,pentru adrese i pentru comenzi.

Exemple.1. Într-un sistem 486, magistrala procesorului este compus din 32 de linii

de adrese, 32 de linii de date i câteva linii de comand .2. Magistrala procesorului dintr-un sistem Pentium are 64 de linii de date,

32 de linii de adrese i 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 aceea i frecven cu cea a ceasului de

baz ca CPU în exterior. Acest lucru poate conduce la concluzii gre ite deoarececele mai multe procesoare actuale utilizeaz o frecven de lucru intern mult maimare decât a oric rei magistrale din sistem.

Exemplu. Un sistem Pentium 100 are un procesor Pentium care lucreazintern la 100 MHz, dar în exterior lucreaz la numai 66,6 MHz. Aceea i frecvenextern de lucru (66,6 MHz) o au i procesoarele Pentium 133, Pentium 166 ichiar Pentium Pro 200. În cele mai multe dintre noile sisteme, frecven a real delucru a procesorului este un multiplu (de 1,5 ori, de 2 ori, de 2,5 ori, de 3 ori etc.) alfrecven ei magistralei procesorului.

Page 88: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 183

Magistrala procesorului este legat la pinii procesorului i poate transfera unbit de date pe o linie de date la fiecare perioad sau la dou perioade ale ceasului.Astfel, un sistem 486 poate transfera 32 bi i de date simultan, în timp ce un sistemPentium sau Pentium II poate transfera 64 bi i de date la un moment dat.

Pentru a determina viteza de transfer pe magistrala procesorului semultiplic l imea datelor (32 de bi i pentru 486 sau 64 de bi i pentru Pentium iPentium II) cu frecven a ceasului magistralei (aceea i cu frecven a ceasului de bazal procesorului).

Exemplu. Un cip Pentium de 66/100/133/166/200 MHz care ruleaz la 66MHz poate transfera un lot de date la fiecare perioad de ceas pe fiecare linie dedate. Se ob ine astfel o vitez maxim instantanee de transfer de 528 MB pesecund . Acest rezultat deriv din urm toarea formul :

66 MHz 64 bi i = 4.224 megabi i/secund ;4.224 megabi i/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

rgimea de band în func ionarea normal ; va rezulta o valoare medie mai sc zuta vitezei transferului de date. Al i factori de limitare, cum ar fi proiectarea setuluide cipuri, viteza memoriei i altele, contribuie la sc derea l rgimii de bandefective.

Între unit ile sau circuitele conectate la magistral se disting unit i de tipmaster, care au ini iativa comunic rii pe magistral , i unit i de tip slave, care

spund la ini iativa de comunicare a masterului.Exemple. Perechi master-slave: UC – memorie (acces la instruc iuni i la

date); UC – port I/O (transfer de date); UC – coprocesor (tratarea instruc iunilor învirgul mobil ); dispozitive I/O – memorie (accesul la operanzi) etc.

În cazul procesoarelor moderne, comunica ia cu cipurile externe procesoruluia introdus no iunile de magistrale FSB, BSB i PSB

a) În cazul procesoarelor cu memorie cache L2 (L3, în cazul procesoarelor K6-2+ i K6-3) care nu se afl în interiorul procesorului (exemple tipice fiindprocesoarele pe socket 7, slot 1 i slot A), leg tura dintre acesta i northbridge poartdenumirea de magistral FSB (Front Side Bus), iar frecven a de baz a acesteiaînmul it cu multiplicatorul d frecven a de lucru a procesorului. Între procesor imemoria cache L2 conexiunea se face prin magistrala BSB (Back Side Bus), omagistral de memorie care func ioneaz fie la frecven a FSB (la procesoarele pesocket 7), fie la jum tate din frecven a procesorului (la procesoarele Intel pe slot 1),fie între 1/3 i 1/2 din frecven a procesorului (la procesoarele AMD pe slot A).

Exemplu. Un FSB pe 32 de bi i, operând la o frecven de 100 MHz i carerealizeaz 4 transferuri pe ciclu, are o l rgime de band de 1.600 MB/s.Produc torii specific viteza FSB-ului în MT/s (Mega Transfers per second). Daco plac de baz are un FSB cu frecven a de tact de 266 MHz i realizeaz 4transferuri pe ciclu de ceas, FSB-ul certificat este de 1.066 MT/s.

ARHITECTURA SISTEMELOR DE CALCUL184

b) În cazul procesoarelor cu cache L2 integrat în procesor (Intel P3 iCeleron pe socket 370 i P4 toate variantele, respectiv, AMD Athlon pe socket A,754, 939, 940), BSB-ul a disp rut, nemaifiind necesar.

Combinând a) i b), rezult c nu este corect s se foloseasc termenul deFSB în cazul procesoarelor actuale, termenul mai potrivit fiind Processor Side Bus(PSB) sau System Side Bus (SSB), iar în cazul procesoarelor Opteron/Athlon64nici m car termenul PSB nu este corect, leg tura dintre procesor i northbridgefiind de tip punct-la-punct (point-to-point).

4.3.4.1. Conectarea la magistralMajoritatea circuitelor logice nu dispun la ie ire de amplificatoare capabile s

furnizeze puterea necesar transmiterii unui semnal binar pe liniile magistralei(datorit capacit ii magistralei, pe de o parte, i a înc rc rii intr rii cu alte sarcini).Pentru transmitere se utilizeaz circuitele amplificatoare de putere numite driver-e.

La recep ie este necesar utilizarea unui receptor de tip Trigger-Schmidt carereface semnalul degradat din cauza capacit ii limitate a liniei de transmisiune saua eventualelor zgomote. De multe ori, un circuit poate s transmit i în acela itimp s fie receptor, rezultând c pentru interfa area cu magistrala sistemuluitrebuie utilizate circuite mixte numite transceiver-e (transmitter + receiver).

Din punctul de vedere al st rilor logice, circuitele de conectare la magistralsunt circuite cu trei st ri, în care a treia stare (stare flotant ) permite acestora s fiedeconectate logic când se afl în repaus. Un alt tip de circuit de conectare estecircuitul cu colectorul în gol (realizeaz func ia SAU-cablat).

4.3.4.2. Magistralele sincroneDin punctul de vedere al caden ei schimbului de date care are loc pe

magistral exist arhitecturi sincrone i asincrone.Magistrala sincron dispune de o linie de ceas comandat de un oscilator cu

cuar . Toate opera iile de pe o magistral sincron sunt efectuate într-un num rîntreg de perioade de ceas.

Exemplu. În figura 4.4 este prezentat modul de lucru al magistralei sincroneîn cazul opera iei de citire a unui cuvânt din memorie.

Nota ii folosite:Ø – semnal de ceas real (un ciclu de ceas TC = 250 ns);MREQ – cerere acces memorie (Memory Request);RD – citire (Read);TML – timp de stabilire a adreselor înainte de MREQ (> 60 ns; la o frecven de ceas4 MHz se accept un timp de cre tere de 10 ns);TM – activarea semnalului MREQ fa de frontul descresc tor în ciclul T1 (< 85 ns);TRL – activarea semnalului RD fa de frontul descresc tor în ciclul T1 (< 85 ns);TDS – date disponibile înainte de frontul descresc tor în ciclul T3 (> 50 ns);TMH – tranzi ia semnalului MREQ dup frontul descresc tor în ciclul T3 (< 85 ns);TRH – tranzi ia semnalului RD fa de frontul descresc tor în ciclul T3 (< 85ns);TDH – men inerea datelor dup ridicarea semnalului de date (dup comutarea lui RD, > 0).

Page 89: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 185

T1 T2 T3

Ø

ADDR ADRES CUVÂNT

DATE DATE

TM TDS

MREQ TML

TMH

RDTRL TRH

TDH

Fig. 4.4. Schema accesului la magistrala sincron .

Începutul ciclului T1 este marcat de frontul cresc tor al semnalului Ø. Înprima parte a ciclului T1 procesorul plaseaz pe magistrala de adrese adresa care sedore te a fi citit din memorie. Pozi ionarea adresei pe magistral corespundeactiv rii mai multor semnale binare care formeaz adresa. Dup stabilirea adreseipe magistral , devin active semnalele MREQ i RD. MREQ indic prin activareasa c se efectueaz un acces la memorie i nu un acces la dispozitivele I/O. RDdefine te prin activarea sa o opera ie de citire din memorie.

În timpul ciclului T2 nu are loc nici o modificare pe magistral pentru apermite memoriei decodificarea adresei de pe magistrala de adrese i pozi ionareainforma iei cerute pe magistrala de date.

În timpul ciclului T3, pe frontul descresc tor al semnalului de ceas,microprocesorul capteaz i înregistreaz într-un registru intern informa ia prezentpe magistral . Odat terminat aceast opera iune, procesorul pune în repaussemnalele MREQ i RD (le ridic în 1).

Dac este nevoie mai departe de o alt opera ie de citire sau scriere, aceastapoate începe pe frontul cresc tor al urm torului ciclu de ceas. Dac memoria nueste capabil s plaseze datele pe magistral în timpul cerut (s fie respectat TDS),atunci memoria activeaz un semnal de wait, prin care cere prelungirea timpului de

ARHITECTURA SISTEMELOR DE CALCUL186

citire. St rile de wait, care sunt generate de surplusul de vitez a procesorului încompara ie cu viteza memoriei, încetinesc viteza calculatorului.

Avantaj: func ionare relativ simpl .Dezavantaje:1. orice opera ie pe magistral corespunde unui num r întreg de perioade

de ceas, ceea ce conduce la o func ionare suboptimal din punct devedere al vitezei de lucru, datorat faptului c o opera ie care dureaz 3,1perioade de ceas va fi realizat în 4 perioade de ceas, chiar dacmemoria poate s r spund mai repede;

2. magistrala sincron evolueaz dificil odat cu procesul tehnologic derealizare a componentelor, datorit faptului c prin utilizarea unormemorii de vitez mai mare nu se poate reduce durata unei opera ii decitire-scriere pân când nu este modificat frecven a ceasului careguverneaz magistrala.

Concluzie. Pentru a conecta în mod optim un ansamblu de circuite lamagistral , este preferat arhitectura asincron .

4.3.4.3. Magistralele asincrone

În acest caz, nu este necesar existen a unui semnal de ceas care ssupervizeze transferul. Deci, durata unei opera iuni pe magistral este variabil , înfunc ie de performan ele circuitelor utilizate.

Exemplu. În figura 4.5 este prezentat modul de lucru al magistraleiasincrone în cazul opera iei de citire a unui cuvânt din memorie.

ADDR ADRES CUVÂNT

MREQ

RD

MSYN

DATE DATE

SSYN

Fig. 4.5. Schema accesului la magistrala asincron .

Page 90: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 187

MSYN (Master Synchronisation) i SSYN (Slave Synchronisation) suntsemnalele de sincronizare care asigur respectarea ordinii diverselor momente dinopera iunea de citire. De obicei, master este UC i slave este memoria.

Dup ce adresa cuvântului este depus pe magistrala de adrese de c tre UC idup ce semnalele MREQ i RD devin active, UC activeaz semnalul MSYN carecomunic memoriei începerea opera iei de citire.

Memoria efectueaz citirea la vitez proprie, iar dup depunerea pemagistral a informa iei cerute activeaz semnalul SSYN. Acest semnal informeazprocesorul c datele cerute sunt valide pe magistral . Procesorul încarc datele înregistrele interne, dup care dezactiveaz semnalele MREQ, RD i MSYN.Dezactivarea lui MSYN este sesizat de memorie, care pune în repaus SSYN ielibereaz magistrala de date. Astfel s-a ajuns din nou la starea ini ial i rezult cpoate începe o alt opera ie pe magistral .

Ansamblul semnalelor de mai sus, cu ajutorul c rora se efectueaz transferuldatelor, corespunde tehnici full handshake (tehnica acordului confirmat), careinclude urm toarele opera ii:

activarea lui MSYN; activarea lui SSYN ca r spuns la MSYN; dezactivarea lui MSYN ca r spuns la SSYN; dezactivarea lui SSYN ca r spuns la MSYN.Observa ie. Aceast tehnic este total independent de timp. Fiecare

eveniment din succesiune este cauzat de evenimentul precedent. De aceeadispozitivele conectate la o magistral asincron pot fi u or înlocuite cu altele maiperformante, pe m sur ce tehnologia avanseaz . În consecin , avantajul folosiriimagistralei asincrone apare evident în compara ie cu magistrala sincron .

Pe o magistral sincron UC î i pozi ioneaz semnalele, iar memoria saucircuitele I/O nu fac altceva decât s r spund solicit rilor UC f a fi necesar osincronizare cu aceasta. Astfel, simplitatea magistralei sincrone const în lipsasemnalelor MSYN i SSYN.

4.3.4.4. Transferul datelor pe magistrala local a procesorului (PLB)Tranzac iile pe magistrala local a procesorului, PLB (Processor Local Bus),

constau în mai multe faze de adresare i date. În func ie de nivelul de activitate amagistralei i capacitatea slave PLB, acestea pot dura unul sau mai multe cicluri demagistral PLB. De asemenea, pipeline-ul de adresare i livrarea datelor iadreselor separate sunt îmbun ite prin modul în care aceste faze sunt gestionate.Tranzac ia de adresare con ine 3 faze: cerere, transfer i confirmare de adresare. Otranzac ie PLB începe când un master adun adresele sale i transfer semnalele învedere ob inerii dreptului asupra magistralei în timpul fazei de cerere. Odat cearbitrul PLB ofer dreptul asupra magistralei, adresa masterului este prezentat ladispozitivele slave în timpul fazei de transfer. Ciclul de adresare se termin când unslave încheie adresa masterului i transfer datele în timpul fazei de confirmare aadresei.

ARHITECTURA SISTEMELOR DE CALCUL188

Figura 4.6 ilustreaz dou pipeline-uri de adresare de citire i scriere, împreuncu fazele de citire i scriere a datelor. Master A i B reprezint starea fiec rei adresemaster. PLB arbitreaz între aceste cereri i trimite cererea masterului selectat lamagistrala de adrese a PLB slave. Urma cu eticheta „faza de adresare” arat stareamagistralei de adrese a slave-ului PLB de-a lungul fiec rui tact PLB.

Fig. 4.6. Exemplu de protocol de transfer PLB.

a cum se arat în figura 4.6, specifica iile PLB accept implement rile încare aceste trei faze pot solicita numai un singur ciclu de ceas PLB. Acest lucru seîntâmpl atunci când masterului solicitant îi este acordat imediat accesul lamagistrala slave i unitatea slave confirm adresa de-a lungul aceluia i ciclu. Dacun master trimite o cerere care nu poate fi imediat trimis la magistrala slave, fazade cerere poate dura unul sau mai multe cicluri.

Procesorul de magistral local de 128 de bi i a ap rut în mai 2007.PLB ofer o interfa standard între nucleele procesorului i controlerele

integrate ale magistralei. Cu PLB, poate fi dezvoltat o bibliotec a nucleelorprocesorului i controlerelor magistralei pentru utilizare i aplicare în nucleu, subform de circuite integrate specifice (numite Core + ASIC) i modele system-on-a-chip (SOC).

În plus, PLB este o magistral de mare performan on-chip care este folositîn sistemele integrate Core + ASIC. PLB sprijin citirea i scrierea, transferuri dedate între dispozitivele master i slave care sunt dotate cu o interfa de magistralPLB i sunt conectate prin semnale ale PLB.

Fiecare master PLB este anexat prin magistrale de adresare diferite,magistrale de citire de date, magistrale de scriere de date i semnale de transfer.Slave-urile PLB sunt ata ate la PLB prin magistrale de adrese puse în comun, dardecuplate, magistrale de citire, magistrale de scriere, control al transferului i stareasemnalelor pentru fiecare magistral de date.

PLB este o magistral complet sincron . O singur surs de ceas prevedetiming-ul pentru toate semnalele de PLB. Toate unit ile master i slave care suntanexa i la PLB folosesc acest ceas ca surs .

PLB se diferen iaz prin urm toarele caracteristici de performan :

Page 91: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 189

transferurile de citire i scriere se suprapun pentru a permite doutransferuri de date per ciclu pentru maximizarea folosirii magistralei;

magistrale decuplate pentru adresare i date sus in capacitatea dedivizare a tranzac iilor pentru o l ime de band mai bun ;

protocolul de suprapunere a cererii de magistralei i protocolul de oferirea dreptului magistralei reduc întârzierile cauzate de arbitraj;

PLB este o magistral complet sincron .

4.3.4.5. Arbitrajul magistraleiPân acum s-a considerat c exist un singur master pe magistral . În

realitate, în cele mai multe cazuri exist mai multe dispozitive I/O care pot ceresimultan accesul la memorie, ceea ce conduce la necesitatea introducerii unorreguli de arbitraj.

Arbitrajul magistralei se poate realiza în dou variante: structura centralizat , în care exist fizic un arbitru; structura descentralizat , în care fizic nu exist un arbitru de magistral ,

dar care implementeaz func iile acestuia.Structura centralizatAlgoritmul cu priorit i statice (daisy chain). Se presupune existen a a

cinci dispozitive de I/O care cer simultan accesul la magistral prin linia de BUSREQUEST, iar arbitrul le r spunde prin linia de acordare a magistralei (BUSGRANT).

Circuitele I/O care pot deveni master sunt legate printr-un SAU cablat lalinia de cerere de magistral BUS REQUEST. Când cel pu in unul dintre circuitecere accesul la magistral , arbitrul este sesizat, iar când este posibil (cândmagistrala este liber ) acesta acord accesul la magistral printr-o linie de acordarea magistralei (BUS GRANT), astfel încât arbitrul nu vede decât o singur cerere,chiar dac mai multe circuite cer accesul (vezi figura 4.7).

BUS REQUEST

BUS GRANT Dispozitive I/O

Fig. 4.7. Algoritmul cu priorit i statice (daisy chain).

arbitru

1 2 3 4 5

ARHITECTURA SISTEMELOR DE CALCUL190

Linia de acordare a magistralei traverseaz în serie cele cinci circuite de I/O(pe aceast linie dispozitivele I/O sunt a ezate în cascad ). Când primul circuit I/Orecep ioneaz acordarea magistralei, el cunoa te dac are sau nu nevoie demagistral , adic dac a formulat cererea de acces sau nu. Dac are nevoie, el acceptmagistrala i preia controlul ei, iar dac nu, permite propagarea semnalului deacordare mai departe, c tre circuitul urm tor. Prioritatea scade de la stânga spredreapta (prioritatea este direct propor ional cu apropierea de arbitru).

În cele ce urmeaz se va prezenta o variant care permite existen a maimultor niveluri de prioritate. Aceasta va cuprinde dou niveluri de ierarhizare:primul cuprinde circuitele 1 i 2, iar cel de-al doilea cuprinde circuitele 3, 4 i 5.Astfel, rezult dou linii de acordare a magistralei.

Pentru fiecare nivel de prioritate exist o linie de cerere de magistral i olinie de acordare de magistral . Dispozitivele I/O pot fi repartizate în diferitemoduri pe nivelurile de prioritate (fig. 4.8).

BUS REQUEST 1BUS REQUEST 2

BUS GRANT 1 BUS GRANT 2

Fig. 4.8. Repartizarea dispozitivelor I/O pe nivele de prioritate.

O alt variant ar fi urm toarea: în unele scheme de arbitraj poate fi folosit olinie care specific starea BUS BUSY (ocuparea magistralei), activat de unitatea cepreia controlul magistralei. Odat ce linia de ocupare a magistralei a fost activat , sedezactiveaz cererea de acces la magistral , aceasta permi ând altor unit i s cearaccesul în timpul transferului de date pe magistral i, mai mult chiar, permi ândarbitrului de magistral s fac o preselec ie a unit ii care are prioritate. Astfel, odatce transferul de date pe magistral a luat sfâr it, magistrala este eliberat i unitateapreselectat preia controlul magistralei (aceast tehnic este mai eficient ). De obicei,aceast variant cu preselec ie i BUS BUSY este folosit la magistralele Motorola.

Algoritmul cu cereri independente. Acest algoritm reprezint cel maigeneral caz de arbitraj al magistralei, dar din punct de vedere hardware este greu deimplementat. Fiecare dispozitiv emite o cerere de bus independent c tre arbitru.Acesta r spunde pe linii separate dispozitivelor. Dispozitivul care prime te r spunsafirmativ poate folosi magistrala. Logica de acordare a magistralei esteimplementat în arbitru.

Figura 4.9. prezint un exemplu de schem de arbitraj cu cereri independente.

arbitru

1 2 3 4 5

Page 92: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 191

Fig. 4.9. Algoritmul cu cereri independente.

Nota iile folosite:BR = linia de cerere de magistral (BUS REQUEST);BG = linia de acordare a magistralei (BUS GRANT);ACK = linia de confirmare (ACKnowledge)BUS = magistrala.

Algoritmul cu interogare ciclic (polling). Exist log2m linii de interogarepentru cele m dispozitive. Dispozitivele sunt prev zute cu câte un decodor pentru arecupera codul de interogare. Dispozitivul care î i recunoa te codul de interogareactiveaz semnalul de confirmare ACK (acknowledge) i preia controlulmagistralei.

Arbitrul întrerupe ciclul de interogare pân când dispozitivul c ruia i s-aacordat magistrala î i încheie opera iile pe magistral (vezi figura 4.10). Prioritateafiec rui dispozitiv este setat în codul de interogare.

În majoritatea sistemelor de calcul, unitatea central trebuie s negociezeaccesul la magistral în acela i mod cu celelalte unit i. În general, unitateacentral are prioritatea cea mai sc zut ; ea utilizeaz magistrala doar când nici unalt circuit nu are nevoie de ea. Aceasta permite circuitelor I/O s realizeze transferulde date atunci când este necesar, f s apar pericolul de pierdere a datelor.

Pentru fiecare nivel de prioritate exist o linie de cerere de magistral i olinie de acordare de magistral .

BUS

ACK

BG 1

BG 2

BG m

BR m

BR 2

BR 1

arbitru

1 2 m

ARHITECTURA SISTEMELOR DE CALCUL192

Fig. 4.10. Algoritmul cu interogare ciclic (polling).

În majoritatea sistemelor de calcul, unitatea central trebuie s negociezeaccesul la magistral în acela i mod cu celelalte unit i. În general, unitatea centralare prioritatea cea mai sc zut ; ea utilizeaz magistrala doar când nici un alt circuitnu are nevoie de ea. Aceasta permite circuitelor I/O s realizeze transferul de dateatunci când este necesar, f s apar pericolul de pierdere a datelor.

Structura descentralizatÎn aceast structur nu exist un arbitru veritabil de magistral (circuit fizic),

ci fiecare unitate î i gestioneaz singur accesul la magistral realizând o parte dinfunc iile arbitrului.

Exemplu. La sistemele VAX, exist 16 niveluri de prioritate i fiec ruia îieste asociat o linie de cerere de magistral (sistemul poate accepta maximum 16unit i, poten iali master de magistral ).

Când o unitate dore te s utilizeze magistrala, ea activeaz propria linie decerere de magistral ; la finele transferului de date curent de pe magistral , fiecareunitate examineaz cererile de acordare a magistralei. Circuitele logice de pe fiecareunitate permit accesul la magistral doar unit ii cu cea mai mare prioritate, iar pentrucelelalte unit i accesul nu este permis.

Avantajul este c permite o implementare simpl , iar dezavantajul, cnecesit mai multe linii, deoarece fiecare unitate recep ioneaz cele 16 linii.

Exemplu. Pentru sistemele Intel se folose te schema de arbitraj din figura 4.11.Pentru gestiunea magistralei sunt utilizate: linia de cerere de magistral BUS REQUEST (SAU cablat); linia care semnific ocuparea magistralei BUS BUSY, activat de

circuitele ce ocup magistrala (de masterul magistralei); linia de arbitraj ARBITRATION LINE, pe care unit ile sunt a ezate în

cascad (conform structurii centralizate);

log2m liniide interogare

confirmareACK

BUS REQUEST

BUS

arbitru

1 2 m

Page 93: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 193

BUS REQUEST BUS BUSYARBITRATION LINE

+ 5V

Fig. 4.11. Structura descentralizat de arbitraj al magistralei.

conexiunea la +5V (1 logic). Acest +5V înseamn nivelul activ al liniei:dac nici un circuit nu cere accesul pe magistral , poten ialul de +5V sepropag pe toat linia de arbitraj (toate unit ile în repaus pleac de la oprioritate egal ).

Pentru a ob ine accesul la magistral , o unitate trebuie s verifice:1. dac magistrala este liber ;2. dac semnalul BUS BUSY este dezactivat;3. dac linia de arbitraj prezent la intrarea sa este liber .Dac aceste trei condi ii sunt îndeplinite, unitatea pune în 0 ie irea sa, ceea

ce are ca efect propagarea st rii de 0 pe linia de arbitraj pentru toate unit ile careurmeaz .

În acest moment exist o singur unitate care are intrarea activ (în +5V) iie irea inactiv (în 0), ceea ce face ca aceast unitate s devin masterulmagistralei; ea activeaz linia de BUS BUSY i este liber s efectueze transferulpe magistral .

Lan ul de priorit i la structura descentralizat este, deci, urm torul: o unitateob ine accesul la magistral înaintea unit ii de la dreapta sa, dar dup cele de lastânga.

Avantajele schemei fa de structura cu arbitru sunt simplitatea (arbitrul demagistral lipse te i sunt trei teste de efectuat pentru unit i) i rapiditatea.

Algoritmul cu priorit i dinamice (rotating daisy chain). Acest algoritmreprezint varianta descentralizat a algoritmului cu priorit i statice (daisy chain).Pentru algoritmul cu priorit i dinamice nu mai exist arbitru de magistral . Acestbloc este divizat în subblocuri descentralizate (vezi figura 4.12).

Semnalul de acordare de magistral este conectat în bucl închis întresubblocurile de control ale magistralei.

Subblocul conectat cu dispozitivul care a preluat controlul magistralei devinemaster, modificând astfel „distan a” dintre dispozitive i subblocul de arbitraj.Dispozitivul care a preluat controlul magistralei va avea la urm toarea cerere demagistral prioritatea minim .

Subblocurile de arbitraj comunic între ele pentru a arbitra cererea demagistral prin semnalele BUS REQUEST i ACK. De asemenea, exist leg turielectrice pentru dialog între fiecare subbloc de control al magistralei i dispozitivulasociat.

1 2 3 4 5

ARHITECTURA SISTEMELOR DE CALCUL194

Fig. 4.12. Algoritmul cu priorit i dinamice (rotating daisy chain).

4.3.4.6. Magistrala VMEMagistrala VME (Versa Module Eurocard) este un exemplu de magistral

asincron , de înalt performan , proiectat pentru utilizarea intensiv în mediulindustrial; ea con ine 32 de linii de adrese i 32 de linii de date. Pe lâng aplica iileindustriale, este utilizat i în minicalculatoare. Magistrala VME a fost dezvoltat din magistrala Versa Bus a firmeiMotorola, iar specifica iile pentru magistrala VME sunt con inute în norma IEEEP1014. Spre deosebire de magistrala IBM PC, magistrala VME a fost proiectaturm rind trei scopuri: interoperabilitatea, performan a i fiabilitatea. Magistrala VME se prezint sub trei forme: VSB, VMS i VME. Acestemagistrale specifice sunt bine adaptate la realizarea unor sisteme de calcul variate,de la scheme de dezvoltare i pân la sisteme multiprocesor. Fiecare procesor dispune de o memorie local , legat prin VSB, care este omagistral local proprie magistralei VME. În memoria local se afl toateprogramele i datele asociate unui procesor. Instruc iunile referitoare la memoriaglobal sunt singurele care necesit utilizarea magistralei VME, celelalteinstruc iuni merg pe magistrala VSB. În consecin , performan a global a sistemului este superioar limitei de40MB/s impuse de tehnologia VME. Exemplu. La sistemele cu 16 procesoare care fac acces la cuvinte de 32 debi i, cu un ciclu de magistral de 200 ns, l rgimea de band calculat este de 320MB/s. Dac se face presupunerea c 90% din accesele la memorie sunt efectuate înmemoriile locale (ipotez realist ), rezult c magistrala VME va fi înc rcat doar lavaloarea de 32MB/s (adic restul de 10%), ceea ce este mai pu in de 40MB/s(valoare impus de tehnologia VME).

1 2 m

BUSGRANT

ACK

BUSREQUEST

BUS

Page 94: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 195

Familia VME cuprinde o magistral serie pe care comunica iile se realizeazprin transmisiuni seriale (VMS). Magistrala VMS este independent de celelaltedou i ofer o l rgime de band de 30Mb/s (la transmisia serial banda se exprimîn megabi i pe secund , nu în megaocte i pe secund ). Ea corespunde necesit ilorde comunica ie cu debit sc zut sau transferului informa iilor de sincronizare întreprocesoare. Magistrala VMS este asem toare unei re ele locale, ea fiind bazatpe un cablu coaxial. Exemplul 1: sistem cu trei pl ci VME: procesor, memorie, controler I/O.

Fig. 4.13. Exemplu simplu de magistral VME.

Exemplul 2: sistem multiprocesor.

VSB BUS

VME BUS

VMS BUS

ML = memorie local MP = memorie partajat

Fig. 4.14. Exemplu complex de magistral VME.

Magistralele VME, VSB i VMS sunt magistrale pe care comunica iile auloc independent i simultan, nefiind sincronizate.

Magistralele VME cuprind patru grupe de linii: liniile de date, liniile dearbitraj al magistralei, liniile de întreruperi i liniile de comand .

În ceea ce prive te unit ile implicate în transferul de pe liniile de date,exist , pe lâng modulele master i slave, înc dou tipuri de unit i func ionalecare particip la schimbul de date pe magistral : monitorul de urm rire isupervizorul de magistral .

UC M I/O

Magistral VME

ML MLML

UC UC MPUC

ARHITECTURA SISTEMELOR DE CALCUL196

Monitorul de urm rire analizeaz traficul de pe magistral i genereaz oîntrerupere atunci când detecteaz o ac iune sau o adres anormal (are rolul de asemnaliza o ac iune nepermis ). Exemplu. O tentativ de scriere în memorie într-o zon protejat esterecunoscut de monitorul de urm rire i oprit prin cererea de întrerupere aprocesorului). Monitorul de urm rire înregistreaz în memorie într-un spa iu cu n pozi iisemnalele care tranziteaz magistrala. Aceasta înseamn c este posibilvizualizarea ultimelor cicluri de magistral care au precedat cererea de întrerupere,de unde rezult c utilizatorul poate detecta eventualele anomalii de pe magistral .

Supervizorul de magistral îndepline te func ia de urm rire temporal asemnalelor de pe magistral . Exemplu. Dac un ciclu de magistral este prea lung, rezult o eroare deadresare, recunoscut prin faptul c nu exist nici un element care s r spundacestei adres ri. Rolul supervizorului de magistral este important datorit faptului

f interven ia acestuia exist posibilitatea ca ciclul de magistral s seprelungeasc un timp nedefinit, ceea ce ar duce la blocarea magistralei.

Pe liniile de arbitraj, magistrala VME suport mai multe scheme de lucru,dintre care, în general, sunt recomandate trei: arbitrajul simplu, arbitrajul cupriorit i fixe i arbitrajul cu priorit i circulare.

Arbitrajul simplu presupune existen a unui lan de unit i pe un singur nivel.Arbitrajul cu priorit i fixe permite existen a mai multor niveluri de

prioritate, între care se stabile te o anumit ordine.Arbitrajul cu priorit i circulare implic înl uirea ciclic a unit ilor,

existând astfel posibilitatea unui transfer continuu al priorit ilor. El presupuneexisten a unor linii de cerere de magistral cu aceea i prioritate; la magistrala VMEexist patru astfel de linii de cerere de magistral . Acestea func ioneaz astfel: laprimul ciclu de magistral este servit cererea sosit pe linia 0, la ciclul urm torcererea sosit pe linia 1 .a.m.d. Dac nu exist nici o cerere pe linia considerat ,atunci se analizeaz linia urm toare. Unit ile care pot deveni master sunt legate înlan la cele patru linii. Oricare ar fi schema de arbitraj utilizat , o unitate master care dore teaccesul la magistral transmite o cerere în acest sens c tre arbitru pe o liniecorespunz toare; când cererea este satisf cut i se ob ine magistrala, acea unitatemaster transmite arbitrului un semnal de ocupare a magistralei i anuleaz cerereasa. În acest mod, devine posibil alocarea anticipat a magistralei unei alte unit icare o solicit . Noua unitate master care a adresat cererea de magistral ocupmagistrala imediat dup eliberarea acesteia. Aceast facilitate de alocare anticipat ,care provine din modul de lucru al procesoarelor Motorola, permite o îmbun irenet a performan elor magistralei. În plus, la magistrala VME arbitrului de magistral îi este permissuspendarea activit ii unui master de prioritate sc zut angajat într-o secvenlung pe magistral (de exemplu, într-un transfer de blocuri de date). Acest lucru seîntâmpl atunci când un master cu prioritate mare face o cerere de magistral .

Page 95: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 197

4.3.5. Magistrala memoriei

Magistrala memoriei este utilizat pentru transferul informa iilor între CPUi memoria principal – memoria RAM a sistemului. Aceast magistral este o

parte din magistrala procesorului sau, de cele mai multe ori, este implementatseparat cu un set special de cipuri care este responsabil de transferul informa iilorîntre magistrala procesorului i memorie.

Sistemele cu frecven mare a pl cii de baz lucreaz la viteze care dep escuneori posibilit ile cipurilor DRAM standard. În astfel de sisteme este utilizat un setde cipuri, controlerul memoriei, care realizeaz interfa a între magistrala rapid aprocesorului i memoria principal , mai lent (vezi figura 4.15). Acest set de cipurieste în general acela i cu setul de cipuri responsabil cu gestionarea magistralei I/O.

Fig. 4.15. Schema de interconectare a magistralelor unui calculator.

Informa ia care circul prin magistrala memoriei este transferat la o vitezmult mai mic decât viteza de transfer a informa iei pe magistrala procesorului.

imea magistralei de memorie este întotdeauna egal cu cea a magistraleiprocesorului. Dac procesorul are 32/64 bi i, magistrala memoriei are tot 32/64 bi i.

Procesoarele mai noi aduc o nou arhitectur a pl cii de baz , cu dou cipseturi:northbridge i southbridge, între care sarcinile sunt împ ite (vezi figura 4.16 i 4.17).Chipul northbridge, cunoscut ca Memory Controller Hub (MCH), se ocup decomunica iile între CPU, memorie, grafic , interfe e i southbridge. Unele northbridge-uri con in controlere video integrate, numite Graphics and Memory Controller Hub(GMCH). Deoarece diversele procesoare i RAM-ul necesit semnale diferite, unnorthbridge va func iona doar cu una sau dou clase de CPU i cu un singur tip de RAM.

Magistrala memoriei

Magistrala principal asistemului

Magistrala procesorului

CPU Cache extern

Cipurilecontroleruluide memorie

RAM

Magistrala principal asistemului

ARHITECTURA SISTEMELOR DE CALCUL198

Fig. 4.16. Arhitectura northbridge-southbridge.

Fig. 4.17. Arhitectura northbridge-southbridge la procesoare dual-core în sisteme server.

În forma sa cea mai simpl , southbridge integreaz controlere I/O, furnizeazinterfa a cu perifericele i magistralele i transfer date din/în northbridge, fie prinmagistrala PCI la modelele mai vechi (care creeaz efectul de gâtuire – bottleneck),fie prin interconexiunea proprie (o interfa de înalt performan ), la cipurile mairecente. Southbridge este cunoscut ca I/O Controller Hub (ICH). Spre deosebire denorthbridge, southbridge nu este conectat direct la CPU, având în responsabilitatedispozitivele mai lente. Un anumit southbridge va func iona cu mai multe tipuri denorthbridge, dar aceste cipuri trebuie proiectate s lucreze împreun .

Page 96: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 199

4.3.6. Magistrala de adrese

Magistrala de adrese este o parte a magistralei procesorului i a celei dememorie. Magistrala unui sistem Pentium are 64 de linii de date, 32 linii de adresei câteva linii de comand . Aceste linii de adrese constituie magistrala de adrese; în

multe scheme bloc este inclus în magistrala procesorului i în cea a memoriei.Magistrala de adrese este folosit pentru a indica adresa de memorie sau

adresa de pe magistrala sistemului care va fi utilizat în cadrul opera iei de transferal datelor. Magistrala de adrese indic precis locul în care va avea loc urm torultransfer în memorie sau pe magistral . Dimensiunea magistralei de memoriedetermin m rimea memoriei pe care unitatea central o poate adresa direct.

4.3.7. Magistrala I/O

Magistrala I/O permite procesorului s comunice cu dispozitivele periferice.Magistrala i sloturile sale de extensie asociate sunt necesare pentru c nu esteposibil ca sistemele de baz s satisfac toate necesit ile tuturor celor care leachizi ioneaz . Magistrala I/O permite ad ugarea de dispozitive calculatoruluipentru a-i extinde posibilit ile. Componentele de baz ale calculatorului, cum ar ficontrolerele de hard disk i pl cile adaptoare video, pot fi ata ate sistemului prinintermediul sloturilor de extensie; de asemenea, se pot ata a dispozitive maispecializate, cum ar fi adaptoarele de re ea etc.

De la apari ia primului PC, s-au introdus mai multe tipuri de magistrale I/O(ISA, MCA, EISA etc.). Îmbun irea performan elor vizeaz trei domenii principale:

procesoare mai rapide; cerin e software sporite; cerin e video mai mari.Fiecare dintre aceste trei cerin e impune ca magistrala I/O s fie cât mai

rapid posibil. Aproape toate sistemele PC livrate în prezent folosesc înc aceea iarhitectur de magistral ca la modelul IBM PC/AT din 1984. Dar, cele mai multedintre aceste sisteme con in acum i o magistral local de mare vitez , cum esteVLBus sau PCI, care ofer un nivel de performan mai ridicat pentru adaptoarelecare solicit a a ceva. Standardizarea este una dintre caracteristicile care audeterminat succesul sistemelor PC.

Aceste tipuri de magistrale se deosebesc prin volumul datelor transferatesimultan i prin viteza cu care se realizeaz acest transfer. Arhitectura magistraleieste realizat cu un set de cipuri care este conectat la magistrala procesorului. Îngeneral, aceste cipuri controleaz i magistrala memoriei.

4.3.7.1. Serial ATASATA (Serial Advanced Technology Attachment) este o magistral construit

în mod special pentru transferul de date între calculator i echipamente de stocare, cumar fi hard disk-ul sau unit ile optice. Principalele avantaje fa de vechile interfe e

ARHITECTURA SISTEMELOR DE CALCUL200

Parallel ATA sunt transferurile de date mai rapide, abilitatea de a deconecta sauinstala echipamente în timp ce calculatorul este func ional (hot swapping), cablurimai sub iri care permit sistemului de r cire cu aer s func ioneze mai eficient iopera ii mai sigure cu verific ri de integritate ale datelor mai riguroase.

Interfa a standard pentru controlerele SATA este AHCI (Advanced HostController Interface), care permite s fie folosite specifica iile avansate ale SATAcum ar fi hot plug sau NCQ (Native Command Queuing). Dac interfa a AHCI nueste implementat pe placa de baz , controlerele SATA ruleaz într-un mod careemuleaz interfa a IDE, dar în acest mod nu se pot beneficia de nici una dincaracteristicile SATA enumerate mai sus. Driver-ele native din sistemul de operareWindows XP nu suport interfa a AHCI, în timp ce sistemul de operare WindowsVista i versiunile curente din Mac OS ofer acest suport.

Valorile ratei de transfer a genera iilor interfe ei SATA sunt de 1,5 Gb/s i3,0 Gb/s. Exist planuri de viitor pentru un standard de 6 Gb/s, care ar fi înmomentul de fa folositor în tandem cu multiplicatori de porturi, pentru a permitemai multor discuri s fie conectate la un singur port SATA, împ ind l rgimea deband a portului între respectivele discuri.

SATA este o arhitectur de tip punct-la-punct (point-to-point), iarconexiunea între controler (H – host) i echipamentele de stocare (D – device,maximum 8 porturi) este una direct (vezi figura 4.18).

Fig. 4.18. Topologia SATA.

În PC-urile actuale, controlerul SATA este de cele mai multe ori plasat peplaca de baz sau instalat pe un slot PCI. Unele controlere SATA au mai multeporturi SATA i pot fi astfel conectate la mai multe echipamente, acestea având unidentificator unic pe 64 de bi i. Exist , de asemenea, i porturi de expansiune (M)care permit conectarea prin cabluri (C, lungime 2 m) a mai multor echipamente(maximum 16) la un singur controler de port SATA.

Protocoalele de transmisie de mare vitez folosesc o codare de tip 8b/10b, iarsemnalul este trimis folosind algoritmul NRZ (Non Return to Zero), cu semnale devoltaj mic, diferen iale (LVDS). În codarea de tip 8b/10b, semnalul de sincronizareeste inclus în secven a de date. Aceast tehnic este numit clock data recovery(recuperarea ceasului cu ajutorul datelor), deoarece nu folose te un semnal desincronizare separat. În schimb, are nevoie de o tranzi ie de la 0 la 1 în irul de dateserial pentru a face sincronizarea.

Varianta extern la magistralei SATA se nume te eSATA (introdus în 2004).

Page 97: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 201

4.3.7.2. Magistrala SCSISmall Computer System Interface (SCSI) este un standard al industriei

calculatoarelor ce are rolul de a conecta computerele cu dispozitivele periferice ca:hard disk-uri, driverele CD-ROM, imprimante, scanere i orice alt dispozitiv caretrebuie s transfere cantit i mari de date într-un timp foarte scurt.

Standardul SCSI specific interfa a hardware i software la un nivel careminimizeaz subordonarea fa de orice alt implementare hardware. Specifica iapermite conectarea unei mari variet i de periferice la multe tipuri de calculatoare.

O magistral SCSI este un tip de magistral care se conformeaz cerin elorfizice i electrice ale standardului SCSI standard. Un dispozitiv SCSI ( int ) sesupune oric rei unit i conectate la magistrala SCSI, fie c este vorba despre unechipament periferic sau un calculator. Fiec rui dispozitiv SCSI îi este atribuit unID SCSI (o valoare întreag , care identific unic dispozitivul în timpul opera iilor).

Fazele magistralei SCSI sunt intervale de timp de-a lungul c rora, princonven ie, anumite semnale de control sunt permise, iar altele nu sunt. MagistralaSCSI nu poate fi în mai mult de o faz la un anumit moment de timp.

Pentru fiecare dintre fazele magistralei, exist un set de faze permise care opot urma. De exemplu, faza de magistral liber poate fi urmat numai de faza dearbitraj sau de orice alt faz de magistral liber . O faz de date poate fi urmat deo comand , o stare, un mesaj sau de o faz de magistral liber . Semnalele decontrol direc ioneaz tranzi ia de la o faz la alta. De exemplu, semnalul de resetareinvoc faza de magistral liber , în timp ce semnalul de aten ie invoc faza de mesaj. Standardul SCSI specific opt faze distincte pentru magistrala SCSI :

1. Magistrala liber : aceast faz indic faptul c nici un dispozitiv SCSInu folose te magistrala i c magistrala este liber pentru orice alt opera ie SCSI.

2. Arbitrajul: aceast faz este precedat de faza de magistral liber ipermite unui dispozitiv SCSI s câ tige control asupra magistralei. În timpulacestei faze, toate dispozitivele care doresc s foloseasc magistrala î i pun ID-ulpe magistral (folosind semnalele de date). Semnalul cu cel mai mare ID câ tig .

3. Selec ia: aceast faz urmeaz fazei de arbitraj. Dispozitivul care acâ tigat faza anterioar folose te aceast etap pentru a selecta un alt dispozitiv cucare s comunice.

4. Reselec ia: aceast faz , op ional , este folosit de sisteme care permitechipamentelor periferice s se deconecteze i s se reconecteze (de) la magistralîn timpul opera iilor îndelungate.

5. Comanda: de-a lungul acestei faze, inta cere o comand de la ini iator.6. Datele: faza de date are loc când inta cere un transfer de date (de) la ini iator.7. Starea: aceast faz are loc când inta cere ca informa ia de stare s fie

trimis la ini iator.8. Mesajul: faza de mesaj are loc când inta cere transferul unui mesaj.

Mesajele sunt mici blocuri de date care transport informa ia sau cererea întreini iator i int . În aceast faz , pot fi trimise mesaje multiple.

Împreun , ultimele patru faze (comand , date, stare, mesaj) sunt cunoscuteca fazele de transfer al informa iei.

ARHITECTURA SISTEMELOR DE CALCUL202

Fig. 4.19. Fazele magistralei SCSI i tranzac iile permise.

Figura 4.19 arat leg tura dintre fazele magistralei SCSI.Varianta serial a magistralei SCSI se nume te Serial Attached SCSI (SAS),

care este un protocol de tip punct-la-punct (cu vitez de transfer de 6 Gb/s în 2009).

4.3.8. Magistrala local

Magistralele I/O prezentate au o latur comun : viteza relativ sc zut . Întimp ce viteza magistralei procesorului a crescut, magistrala I/O a cunoscut doarajust ri ale vitezei nominale, în principal prin cre terea l imii de band .

Solu iile bazate pe magistrala local nu înlocuiesc standardele existente, cisunt proiectate pentru a le îmbun i. De aceea, un sistem uzual este bazat pestandardele I/O i, în acela i timp, este dotat cu unul sau mai mul i conectori LocalBus. Un exemplu de magistral local la Intel 80486 este VLBus (VESA Local Bus).

4.3.8.1. Magistrala PCIMagistrala PCI (Peripheral Component Interconnect) este numit adesea i

magistral mezanin, oarece ea adaug un alt nivel configura iei de magistral .PCI ocole te magistrala standard I/O, folosind magistrala sistemului (pentru acre te viteza ceasului) i toate avantajele c ilor de date (vezi figura 4.20).

La magistrala PCI standard, informa iile se transfer la 33 MHz, utilizândtoat l imea cuvântului. L rgimea de band este de 132 MB/s. Când magistralaeste folosit cu o unitate CPU pe 64 bi i, l rgimea de band se dubleaz , aceastaînsemnând c datele se pot transfera la viteze de pân la 264 MB/s. În realitate,vitezele de transfer ale datelor vor fi în mod necesar mai mici, dar ele r mân încontinuare mult mai mari decât la orice alt variant anterioar .

Una dintre cauzele acestui transfer mai rapid este faptul c magistrala PCIlucreaz în paralel cu magistrala procesorului, f s o înlocuiasc . Unitatea CPUpoate procesa date în memoria cache extern , în timp ce magistrala PCI esteocupat cu transferarea informa iilor între alte elemente ale sistemului, ceea ceconstituie un avantaj major al magistralei PCI.

Page 98: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 203

Fig. 4.20. Schema de principiu a magistralei PCI.

Activitatea magistralei se manifest sub forma unor transferuri între unini iator (master) i o int (slave). Dup ce un master a ob inut controlulmagistralei, determin tipul transferului care va urma. În timpul fazei de adresareliniile C/BE informeaz despre tipul ciclului de magistral .

Ciclurile de magistral sunt:1. Acceptare întrerupere. Este un ciclu de citire conceput pentru dispozitivele

care func ioneaz cu rol de controler de întreruperi PCI. Liniile de adres nu suntfolosite în faza de adresare, iar în faza de date este indicat vectorul de întrerupere.

2. Ciclu special. Este folosit de ini iator pentru a emite mesaje c tre una saumai multe inte.

3. Citire I/O. Este un ciclu de transfer de date între ini iator i un dispozitivI/O. Fiecare dispozitiv I/ O are alocat un spa iu propriu de adresare.

4. Scriere I/O.5. Citire din memorie. Citirile din memorie se pot executa în salv , pe

blocuri, func ie de modul în care controlerul de memorie gestioneaz transferurileîntre memorie i cache. Se cite te o jum tate de linie de cache sau mai pu in, însalv fiind unul sau dou cicluri de citire.

6. Citire o linie din memorie. Se cite te mai mult de o jum tate de linie decache, dar mai pu in de trei linii, în salv fiind între 3 i 12 cicluri de citire.

7. Citire multipl din memorie. Se citesc mai mult de 3 linii de cache, însalv fiind mai mult de 12 cicluri de citire.

8. Scriere în memorie

ARHITECTURA SISTEMELOR DE CALCUL204

9. Scriere în memorie i invalidare. Scrierea se poate face, de asemenea, însalv . Se respect modul Write Back pentru scrierea din cache în memorie.

10. Citire configura ie. Fiecare dispozitiv PCI include un set de 256 deregistre interne, care se folosesc în faza de configurare. În acest tip de ciclu,dispozitivul master poate citi registrele de configurare.

11. Scriere configura ie. În acest tip de ciclu, dispozitivul master poatemodifica registrele de configurare.

12. Ciclu de adresare dual. Este folosit de ini iator pentru a ar ta c apare oadresare pe 64 de bi i.

Orice transfer de date pe magistrala PCI const într-o faz de adresare i unasau mai multe faze de date. În figura 4.21 este reprezentat un transfer de citire.

Fig. 4.21. Fazele unui transfer de citire pe magistrala PCI.

Linii implicate în acest transfer sunt:CLK – tactul de magistral PCI, 33MHz-133MHz;AD – liniile multiplexate pentru adrese i date;C/BE – liniile multiplexate pentru comenzi de magistral sau Byte Enable. În

timpul fazei de date, arat care din cei 4 octe i de date poart date semnificative;FRAME – semnalul generat de ini iatorul curent, pentru a indica startul unui

transfer. Este dezactivat când ini iatorul începe faza final de date.IRDY – ini iator preg tit, generat de masterul curent. La citire, indic faptul c

masterul este gata s accepte date, iar, la scriere, c pe AD sunt prezente date valide.TRDY – int preg tit , generat de modulul selectat ( int ). La citire, pe AD

sunt prezente date valide, iar la scriere indic faptul c inta este gata s accepte date.DEVSEL – semnalul activat de int când î i recunoa te adresa.Func ionarea este urm toarea:

Page 99: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 205

1. De îndat ce masterul are controlul magistralei, poate începe transferulactivând FRAME. Linia r mâne activ pân ini iatorul termin ultima faz de date.Ini iatorul pune adresa pe AD i comanda de citire pe liniile C/BE.

2. inta î i recunoa te adresa pe liniile AD.3. Ini iatorul cedeaz magistrala intei (începând cu tactul 3). Ini iatorul

schimb informa ia pe liniile C/BE, pentru a indica pe care dintre liniile AD se vortransmite datele de la int (1 pân la 4 octe i).

4. inta selectat activeaz DEVSEL, pentru a semnaliza c a recunoscutadresa, apoi pune datele pe liniile AD (primul octet) i activeaz TRDY.

5. inta are nevoie de timp pentru a preg ti urm torul octet de date.6. inta dezactiveaz TRDY, pentru a informa ini iatorul c pe urm torul

tact nu vor exista date valide. Ca urmare, ini iatorul nu va citi datele la începutultactului 5, ci la începutul tactului 6. S-a inserat astfel o stare de WAIT.

7. Dup tactul 6, inta pune pe magistral al treilea octet de date. Sepresupune de data aceasta c ini iatorul nu este gata s preia datele (are, deexemplu, buffer-ul plin). Ini iatorul dezactiveaz IRDY, ceea ce are ca efectmen inerea datelor de c tre int un tact suplimentar (datele nu se citesc laînceputul tactului 7, ci la începutul tactului 8).

8. Ini iatorul dezactiveaz semnalul FRAME i activeaz semnalul IRDY,pentru a semnala c este gata s finalizeze transferul.

9. Ini iatorul dezactiveaz IRDY, permi ând magistralei s treac în starea ini ial .inta a detectat dezactivarea semnalului FRAME i dezactiveaz TRDY i DEVSEL.

4.3.8.2. Magistrala AGPAGP (Accelerated Graphics Port) este o magistral dedicat comunic rii cu

display-ul, accesibil prin intermediul unui slot special, aflat pe placa de baz , în carese monteaz placa grafic . AGP a fost introdus pentru a degreva magistrala PCI decomunica ia cu display-ul i pentru a m ri banda transferurilor de date c tre acesta.

AGP a fost ap rut în 1997, odat cu procesorul Pentium II i cipsetul62440LX. Acest cipset, primul care a implementat controlul comunica iei pe AGP,intermedia transferul de date între procesorul Pentium II, aflat împreun cumemoria cache L2 în modulul SECC (Single Edge Contact Cartridge), memoriaprincipal , magistrala PCI i placa grafic montat în slotul AGP (vezi figura 4.22).

AGP d pl cii grafice posibilitatea de a accesa direct memoria principal ,printr-o procedur numit DIME (Direct Memory Execute). Cu DIME, adresareamemoriei se face în pipeline, mod care const în a lansa mai multe cereri pe durataunui acces la memorie (spre deosebire de PCI, care lanseaz o nou cerere numaicând cea anterioar a fost satisf cut ). Cererile formeaz o coad de a teptare,printr-un proces denumit SBA (Sideband Addressing).

Magistrala AGP are la baz standardul PCI versiunea 2.1. AGP are 32 de liniii lucreaz la 66 MHz, spre deosebire de PCI, a c rei frecven este de 33 MHz.

Banda primei magistrale AGP era de 264 MB/s (dubl fa de PCI). Ulterior, auap rut pl ci grafice care suportau transferul de date pe ambele fronturi ale semnaluluide ceas (2-mode transfer) i banda s-a dublat ajungând la 528 MB/s (AGP 2).

ARHITECTURA SISTEMELOR DE CALCUL206

Fig. 4.22. Configura ia magistralelor la PC-urile cu procesor Pentium II.

Versiunea AGP 2.0, cunoscut i ca AGP 4, define te un nou mod detransfer – 4x-mode transfer – constând în patru transferuri de date pe o perioad deceas, banda fiind de 1,066 GB/s. O nou versiune, lansat în 2001, AGP 8,dubleaz înc o dat banda de transfer, care dep te, astfel, valoarea de 2 GB/s.

4.3.9. Magistrala serial

4.3.9.1. Magistrala USBAcest tip de magistral a ap rut în toamna anului 1995. La crearea lui au

contribuit mai multe firme de renume, cum ar fi DEC, Compaq, IBM, NEC,Northern Telecom. Odat cu apari ia USB, dispare multitudinea de cabluri iconectori necesar conect rii diverselor periferice: tastatur , mouse, imprimant ,joystick, scaner sau modem extern. În partea din spate a calculatorului exist unsingur conector de la care pornesc datele spre tastatur , periferice i monitor.Aceste aparate func ioneaz ca distribuitori (hub) pentru alte aparate. De asemenea,calculatorul preia rolul de gazd (host), gestionând diversele comunica ii.Magistrala USB este dirijat exclusiv de calculatorul gazd .

Practic, la aceast magistral poate fi conectat orice periferic echipat cu uncontroler USB, dar, datorit ratei de transfer de 12 Mb/s, sunt vizate în primul rândechipamentele audio-video, telefonia digital , modemurile, tastaturile, tableteledigitizoare, unit ile CD i DVD, unit ile HDD externe etc.

Dup cum s-a ar tat în paragraful 3.4.4.1, un host USB comunic cudispozitivele conectate prin intermediul unor canale logice (pipes), care au ni teterminale logice pe dispozitive numite endpoints.

Page 100: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 207

Pipe-urile se împart în patru categorii, dup tipurile de transfer folosite: modul control – folosit, de obicei, pentru comenzi simple c tre

dispozitive, primind ca r spuns starea dispozitivului periferic la unmoment dat (de exemplu, pipe-urile de management 0);

modul izocron – garanteaz o vitez (nu neap rat cea maxim ), dar cuposibilit i de a pierde date (de exemplu, aplica ii audio-video în timp real);

modul întrerupere – pentru periferice care au nevoie de r spuns rapid(cu laten e limitate) (de exemplu, mouse, tastatur etc.);

modul bulk – transferuri mari i lungi de date, folosind toat bandaliber , f a garanta banda (de exemplu, transferuri de fi iere).

Când un dispozitiv periferic este activ, ata at host-ului, acesta prime te oadres de 7 bi i de la host. Host-ul interogheaz dispozitivele pentru trafic, astfelîncât nici un dispozitiv nu poate transfera date pe magistral f a face o cerere

tre host. Întreruperile efectuate asupra endpoint-urilor corespunz toare nu întreruppractic traficul de date, ci sunt programate doar pentru a fi interogate mai des de

tre host, primind o prioritate mai mare.Accesarea unui endpoint se face printr-o configura ie ierarhic . Un dispozitiv

conectat la magistral are un descriptor de dispozitiv (device descriptor), care, larândul s u, are mai mul i descriptori de configura ie (configuration descriptors).Configura iile corespund, de obicei, cu starea la un moment dat (de exemplu, activsau în mod putere sc zut – low power). Fiecare descriptor de configura ie are, larândul s u, un descriptor de interfa (interface descriptor), care descrie diferitefunc ionalit i ale dispozitivului, în func ie de tipul acestuia (de exemplu, o camervideo poate avea descriptor de interfa video i descriptor de interfa audio).

Structura ierarhic este prezentat în figura 4.23.

Fig. 4.23. Structura ierarhic a descriptorilor USB.

ARHITECTURA SISTEMELOR DE CALCUL208

Fiecare descriptor de interfa are ni te set ri implicite i este posibil s aibset ri alternative de interfa (alternate interface settings), care, la rândul lor, audescriptori de enpoint-uri (endpoint descriptors). Un endpoint poate fi totu i folositpentru mai multe interfe e sau set ri alternative de interfe e.

Hub-urile sunt elemente cheie în arhitectura plug’n’play a USB, u urândconectivitatea din punct de vedere al utilizatorului i asigurând o robuste e maimare. Punctele de conexiune ale hub-urilor se numesc porturi. Un hub are un portupstream i mai multe porturi downstream (vezi figura 4.24). Portul upstreamconecteaz hub-ul cu gazda (host) sau cu un hub mai apropiat de gazd . Portuldownstream conecteaz hub-ul cu alt hub sau cu un dispozitiv func ional. Hub-ulpoate detecta conectarea i deconectarea dispozitivelor la fiecare port downstreami permite alimentarea cu energie a dispozitivelor din aval.

Fig. 4.24. Structura unui hub USB.

Un hub USB 2. 0 se compune din trei por iuni: controlerul hub-ului: este un comutator controlat de protocol între portul

upstream i porturile downstream, care are suport hardware pentru reseti semnalizare suspend/resume;

repetorul hub; translatorul de tranzac ii: asigur mecanismul de vitez medie/mic în

aval de hub, în timp ce în amonte transmisia se face la vitez mare.Calculatorul (host) i aparatul (hub) sunt împ ite în niveluri (layer)

distincte. S ge ile verticale indic starea actual de comunica ie la gazd . Interfa acorespunz toare a aparatului are o implementare specific . Toate comunica iiledintre gazd i aparat au loc prin cablul fizic USB. Exist interfe e gazd -aparat lafiecare nivel orizontal. Comunica ia între clientul de in tor al software-ului ifunc iile provenite de la aparat sunt reglementate de un contract bazat pe nevoiaaplica iei curente de a folosi aparatul i posibilit ile oferite. Aceast interac iuneclient-func ie creeaz cereri pentru toate nivelurile i interfe ele lor.

Nivelul gazdei pune la dispozi ie urm toarele posibilit i: detectarea ata rii sau deconect rii unui aparat USB; managementul fluxului standard de control între gazd i aparat; managementul fluxului de date între gazd i aparat; colectarea informa iei statistice de stare a activit ii; controlul electric al interfe elor între controlerul gazd i aparatul USB.

Page 101: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 209

Fig. 4.25. Arhitectura stratificat a comunica iei USB.

Fluxul de date de baz i rela iile dintre modulele USB sunt prezentate înfigura 4.25, iar comunica ia între calculator (host) i aparate (hub) se face pe bazaunui protocol descris în figura 4.26.

Câmp desincronizare

(8 bi i)

Identificator alpachetului

(8 bi i)

Date(0 … 1032 octe i)

Controlerori CRC(16 bi i)

Fig. 4.26. Structura pachetului de date.

Controlul erorilor este realizat cu ajutorul unui cod redundant ciclic, CRC(Cyclic Redundancy Code), care asigur transmisia corect a informa iei.Mecanismul CRC asigur o rat de eroare a transmisiei de un bit eronat la 10miliarde. Dup terminarea transferului de date, are loc confirmarea transmisieidatelor i verificarea corectitudinii transmisiei lor (handshake).

Datorit modulelor soft plug’n’play, la conectarea fizic a unui periferic lacomputer, acesta este autodetectat, iar datorit unor registre interne ale perifericului(care furnizeaz sistemului de operare informa ia necesar ) sunt înc rcate exactdriver-ele necesare func ion rii acestuia, care poate fi i dezinstalat când sehot te îndep rtarea perifericului respectiv din configura ie.

Dup instalarea driver-ului aferent, acesta face o cerere de alocare de band .Banda se aloc în mod dinamic, în func ie de necesit ile fiec rui periferic.Informa iile se transfer sincron sau asincron pe magistral , în format de pachete.

ARHITECTURA SISTEMELOR DE CALCUL210

4.3.9.2. Magistrala FireWire (standardul IEEE 1394)Aceast magistral a fost creat în 1986 de c tre firma Apple i a fost

adoptat ca standard în 1994. În prezent ea este sprijinit de numeroase firme cumar fi Adaptec, AMD, Cirrus Logic, Compaq, HP, Hitachi, Matsushita, IBM,Maxtor, Microsoft, NEC, Philips, Sun, Sony, Texas Instruments.

Magistrala FireWire este de fapt o interfa serial de mare vitez : ea permiterate de transfer de 400 Mb/s … 1 Gb/s. Este v zut ca magistrala viitorului, pentruconectarea tuturor echipamentelor electrocasnice: TV, DVD, scanner, camer web, PC.

Acest tip de magistral a ap rut datorit cerin elor tot mai mari în ceea ceprive te calitatea transmisiei audio-video, dar i din necesitatea interconect riituturor echipamentelor electrocasnice. Cu ajutorul unui suport software adecvat sepoate crea un nou tip de aplica ii multimedia: conferin e de calitate full-motion,jocuri i multimedia de calitate cinematografic , video-mail, editare video etc.

Toate transmisiile de date FireWire sunt de tip pachet i pot fi clasificate îndou categorii: asincrone i isocrone, magistrala fiind de tip tranzac ional.

Transmisiile asincrone sunt garantate la recep ie i au nevoie de un semnalde confirmare de la receptor. Ele sunt transmisiuni unipunctuale (unicast).

Transmisiile isocrone sunt garantate în timp, cu o l rgime de band specific ,rezervat pentru ele în magistrala serial . Pân la 80% din banda magistralei poate fialocat pentru transmisiile isocrone. L rgimea de band este alocat în intervale de125μs, numite cicluri. Transmisiile isocrone au o natur multipunctual (multicast),fiind adresate unuia sau mai multor noduri, pe baza unui num r de canal. FireWiresuport i un alt tip de transmisii, numite fluxuri asincrone (asyncronous streaming).Acestea pot fi unipunctuale sau multipunctuale. Pachetele de date FireWire audimensiune variabil . Dimensiunea maxim a înc rc turii de date depinde de tipulde transmisiune i l rgimea de band a magistralei FireWire (1001000 Mb/s).

Figurile 4.27 i 4.28 reprezint formate de pachete FireWire isocrone i,respectiv, asincrone. Fluxurile asincrone i pachetele isocrone au acela i format.

Fig. 4.27. Formatul pachetelor isocrone i a fluxurilor asincrone FireWire.

Page 102: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 211

Semnifica ia nota iilor din figura 4.27 este urm toarea:tag – formatul datelor (specific protocolului);channel – adresa de canal;tcode – codul tranzac iei (asincron, isocron, pachet de date, de control etc.);sy – codul de sincronizare (specific aplica iei).

Fig. 4.28. Formatul pachetelor asincrone FireWire.

Semnifica ia nota iilor din figura 4.28 este urm toarea:destination id – include 6 bi i pentru ID-ul nodului (63 de noduri) i 10 bi i

pentru ID-ul magistralei (1024 magistrale);tcode – tipul tranzac iei;pri – prioritate (câmp neutilizat);destination offset – loca ia de adres din interiorul nodului int (target);celelalte câmpuri depind de tipul protocolului.Arhitectura FireWire este constituit ca o stiv cu un protocol de patru

nivele. Nivelul fizic determin arbitrajul magistralei, define te semnalele electricepentru transmisia de date i interfa a mecanic pentru cabluri i conectori. Nivelulde conexiuni asigur adresa i decodificarea num rului de canal, precum igenerarea CRC-ului i verificarea pachetelor de date transmise i recep ionate.Nivelul de tranzac ii asigur servicii de interogare-r spuns pentru transmisiileasincrone. Transmisiile isocrone opereaz independent fa a de acest nivel. Nivelulde gestiune a magistralei asigur suportul pentru diferite activit i de gestiune iconfigurare a magistralei.

ARHITECTURA SISTEMELOR DE CALCUL212

FireWire necesit trei noduri primare pentru gestionarea magistralei la ooperare normal . Acestea sunt: cycle master, IRM (Isochonous Resource Manager)i BM (Bus Manager), conform figurii 4.29.

Fig. 4.29. Structura stratificat a protocolului FireWire.

Cycle master genereaz i transmite pachete de ini ializare ciclice la fiecare125 μs. Un pachet de ini ializare ciclic reprezint începutul intervalului periodic de125 μs. Nodul r cin joac rolul de cycle master.

IRM gestioneaz l rgimea de band a magistralei de date seriale isocrone ialoc numerele de canale generate multinodal.

BM gestioneaz distribu ia de putere pe cabluri i afi eaz harta topologici diagrama de vitez pentru magistrala serial . Diagrama de vitez este necesar

deoarece FireWire poate suporta noduri/cabluri de l rgimi de band diferite într-osingur re ea. În general, toate nodurile sunt capabile s efectueze activit ile degestionare a magistralei. Totu i, nodurile opera ionale de gestionare a magistraleisunt cele alese în etapa configur rii magistralei.

FireWire utilizeaz un mecanism de arbitraj cerere/acceptare pentrucontrolul accesului în re eaua shared-medium. O schem de arbitraj simplfunc ioneaz dup cum urmeaz :

nodurile care doresc s transmit un pachet cer permisiunea de lamanagerul de magistral ;

managerul selecteaz cererea optim , bazat pe anumite criterii, i emiteun semnal de acceptare pentru nodul corespunz tor;

numai nodul acceptat î i transmite pachetul de date, celelalte noduricontinuând s cear permisiunea pân când o primesc de la manager.

Page 103: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 213

4.3.9.3. Magistrala I2CMagistrala I2C (Inter-Integrated Circuits) a fost dezvoltat de firma Philips

pentru comunica ia între diferite microcontrolere i controlere I/O. Este omagistral bidirec ional simpl , care utilizeaz dou fire, unul pentru dateleseriale, SDA (Serial Data), i unul pentru ceasul serial, SCL (Serial Clock), dupcum arat în figura 4.30. Exist un mare num r de circuite integrate compatibile cumagistrala I2C, care a devenit un standard industrial pentru magistralele de control.

Fig. 4.30. Circuite conectate printr-o magistral I2C.

Fiecare dispozitiv conectat la magistral este recunoscut printr-o adresunic i poate func iona fie ca receptor (de exemplu, un afi aj cu cristale lichide),fie ca transmi tor i receptor (de exemplu, o memorie). Transmi toarele ireceptoarele pot func iona în modul master sau în modul slave, dup cum acesteapot ini ia un transfer de date sau sunt doar adresate. Un dispozitiv master poatetransmite/recep iona semnale la sau de la un dispozitiv slave sau poate controlatransferurile între dou dispozitive slave, dintre care unul este transmi tor, iarcel lalt este receptor. Pot exista mai multe dispozitive master pe magistral . Încazul în care mai multe dispozitive master încearc simultan s controlezemagistrala, o procedur de arbitraj decide care din dispozitive este prioritar.

În sistemele cu mai multe dispozitive master, în cazul în care mai multeasemenea dispozitive doresc accesul la magistral , are loc o procedur de arbitraj.Dac un dispozitiv master transmite un semnal 1 logic pe linia de date, iar un altdispozitiv master transmite un semnal 0 logic, acesta din urm va preluamagistrala, iar primul dispozitiv master va elibera magistrala. Acest arbitraj poatecontinua pe durata mai multor bi i. Pentru arbitraj, se utilizeaz bi ii de adres i ceide date.

Mai recent, în versiunea 2.1 a specifica iilor magistralei, a fost inclusfacilitatea de deplasare a nivelelor de tensiune (level shifting), care permiteconectarea la magistral a dispozitivelor care func ioneaz cu tensiuni dealimentare diferite, de exemplu, la 5 V i 3,3 V. De asemenea, specifica iile au fostextinse pentru dispozitivele care func ioneaz la tensiuni de sub 2,7 V. A fostad ugat un mod de transfer de vitez ridicat (high speed), care asigur rate detransfer de pân la 3,4 Mbit/s i permite conectarea unor memorii EEPROM. Cuajutorul unei pun i (bridge), se asigur comunica ia bidirec ional cu dispozitivelecare utilizeaz modul de transfer rapid sau cel standard.

ARHITECTURA SISTEMELOR DE CALCUL214

4.3.9.4. Magistrala Fibre ChannelCre terea performan elor sta iilor de lucru, a procesoarelor i a perifericelor,

ca i cre terea ponderii arhitecturilor distribuite de tip client/server, au ridicatcerin ele pentru aplica iile cu rate de transfer ridicate. Interconexiunile dintre acestesisteme i dispozitivele I/O necesit un nou nivel al performan elor în ceea ceprive te fiabilitatea, viteza i distan a. Fibre Channel reprezint o tehnologie deinterconectare cu fiabilitate ridicat , care permite comunica ii concurente între sta ii delucru, servere, sisteme de stocare a datelor i alte periferice care utilizeaz protocoaleca SCSI, IP, HPPI-FP sau audio-video. Aceast tehnologie asigur interconectareapentru topologii multiple cu o rat de transfer total scalabil pân la 1 Tbit/s.

Fibre Channel reprezint un standard pentru un canal de comunica ie caredispune de facilit i de re ea i asigur astfel conectivitatea i distan a necesar ,permi ând utilizarea diferitelor protocoale de comunica ie. De asemenea, FibreChannel are caracteristicile unui canal de comunica ie tradi ional, cu avantajelesimplit ii, a performan elor repetabile i a furniz rii garantate a datelor.

În termenii arhitecturii Fibre Channel, comutatorul care leag dispozitivele esteo re ea de tip fabric. Leg tura este reprezentat de dou fibre unidirec ionaletransmi ând în sensuri opuse fa de emi torul i receptorul asociate acestora. Fiecarefibr este ata at unui emi tor al unui port la unul dintre terminale i unui receptor alaltui port la cel lalt terminal. Dac re eaua de tip fabric este prezent în configura ie,fibra poate fi ata at unui port al unui nod (N_Port) i unui port al re elei (F_Port).

Deoarece sistemul de canale se bazeaz pe porturi comunicând între ele i cure eaua de tip fabric, nu este esen ial dac re eaua este un comutator de circuit, unhub activ sau o bucl . Topologia poate fi selectat în func ie de cerin ele deperforman ale sistemului sau de op iunile de pachete. Topologiile posibile alemagistralei Fibre Channel (vezi figura 4.31) sunt cele de tip punct-la-punct (jos),crosspoint cu comutare (stânga) sau bucl arbitrat (dreapta).

Fig. 4.31. Topologii Fibre Channel.

Page 104: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 215

Arhitectura Fibre Channel reprezint , a adar, integrarea unei re ele cu ointerconexiune inteligent între dispozitive. Magistrala Fibre Channel opereaz la omare varietate de viteze (133 Mbit/s, 266 Mbit/s, 530 Mbit/s, 1 Gbit/s) i pe treitipuri de medii electrice i optice. Distan ele de transmisiune variaz în func ie decombina iile între vitez i mediu. Mediul optic de fibre unimodale utilizând sursede lumin laser cu lungime de und mare ofer cea mai înalt performan (distan amaxim de 10 km la 1 Gbit/s).

4.3.9.5. Magistrala InfiniBandArhitectura InfiniBand rezolv limit rile de l rgime de band i suprasarcin

ale magistralei PCI prin trecerea de la tradi ionala arhitectur partajat a magistraleila o arhitectur cu comutare de re ea de tip fabric (switched fabric architecture).Figura 4.32 ilustreaz cea mai simpl configura ie a unui sistem InfiniBand, în caredou sau mai multe noduri sunt conectate prin re eaua InfiniBand Fabric. Un nodreprezint fie un dispozitiv gazd (server), fie un dispozitiv I/O (subsistem RAID).Re eaua InfiniBand Fabric poate consta dintr-un singur comutator (în cel maisimplu caz) sau dintr-un set de comutatoare interconectate i router-e.

Fig. 4.32. Arhitectura InfiniBand Fabric.

Fiecare conexiune dintre noduri, comutatoare i router-e este o leg turserial , punct-la-punct. Aceast deosebire esen ial aduce anumite beneficii:

1. Fiind o conexiune serial , necesit doar patru leg turi, fa deconexiunea deosebit de complex a magistralei PCI.

2. Natura punct-la-punct a conexiunii ofer capacitatea maxim a leg turiiîntre dou puncte, fiind dedicat celor dou puncte finale. Astfel, se eliminconcuren a la magistral , precum i întârzierea rezultat în condi iile uneisuprasarcini în arhitectura magistralei partajate.

3. Canalul InfiniBand este proiectat pentru conexiuni între gazde idispozitive I/O în cadrul unui centru de date (Data Centre). Datorit lungimii binedefinite i relativ scurte a conexiunilor, poate fi atins o l rgime de band mult maimare decât în cazurile în care este nevoie de lungimi mult mai mari.

Specifica iile InfiniBand definesc l rgimea de band brut a conexiunii debaz 1 la 2,5 Gb/s i specific dou l rgimi de band adi ionale, referite ca 4 i12, ca multipli ai ratei pentru leg tura de baz .

ARHITECTURA SISTEMELOR DE CALCUL216

4.3.9.6. Magistrala PCI Express

Necesitatea schimb rii magistralei a ap rut ca o cerin fireasc , având învedere c vechiul PCI, cu limita sa de vitez de transfer de 133 MB/s, nu mai puteaface fa necesit ilor actuale ale calculatoarelor. Chiar i portul AGP 8, cu vitezasa teoretic maxim de 2 GB/s nu face fa noilor cipuri video ap rute. În acestecondi ii, o grupare a liderilor în domeniu, numit PCI-SIG (Intel, NVidia, Dell etc.)au lucrat la dezvoltarea magistralei PCI Express, cu scopul de a înlocui PCI i AGP.

Tehnologia din în spatele magistralei PCI Express nu este complet nou .Cunoscut sub numele Arapahoe sau 3GIO, a fost ratificat ca standard în aprilie2002. Aceast magistral a fost gândit pentru a prelua munca pentru urm torii 10 ani,deci nu este vorba despre un standard de tranzi ie. Din punct de vedere tehnic, PCIExpress este o magistral serial bidirec ional (cu versiunile 1.0, 2.0 i 3.0), caretransfer informa iile sub form de pachete, aproape la fel cu o conexiune Ethernet.

Arhitectura PCI ExpressFiecare dintre cele dou conexiuni unidirec ionale în parte poate transporta

2,5 Gbit/s. Un semnal de tact poate fi integrat în transferuri, pentru a regla viteza detransfer. Arhitectura acestei genera ii de magistral se bazeaz pe straturi (layer),ca i cele utilizate de protocolului TCP/IP (vezi figura 4.33).

Fig. 4.33. Arhitectura PCI Express.

Nivelul fizic define te specifica ii electrice, mecanice, procedurale ifunc ionale pentru activarea, men inerea i dezactivarea leg turilor fizice întresisteme i este alc tuit dintr-o interfa serial de mare vitez , numit Low-VoltageDifferential Signaling (LVDS), pentru a transfera 2,5 GHz. Cuprinde componentelefizice necesare pentru a configura i men ine conexiunile. Include mecanismepentru preg tirea conexiunii, citirea semnalelor, codarea 8b/10b, crearea de frame-uri& pachete i transmiterea datelor pe conexiune.

Page 105: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 217

Nivelul leg turilor de date este responsabil cu transmiterea corect adatelor printr-o leg tur fizic existent , între dou puncte conectate direct prinaceast leg tur fizic . Nivelul fizic nu poate realiza acest lucru, deoarece aici nuse opereaz cu de date, ci numai cu bi i i, mai exact, cu reprezentarea fizic aacestora (niveluri de tensiune, intensitate a luminii etc.). Nivelul leg turilor de datese ocup cu adresarea fizic , topologia re elei, accesul la re ea, detec ia &anun area erorilor (CRC pe 32 de bi i) i controlul fluxului fizic (flow control);

Nivelul transport este responsabil cu crearea pachetelor care vor fiexpediate i cu citirea pachetelor primite. Se ocup cu controlul fluxului de date icu managementul puterii consumate. Acest nivel ofer un serviciu de transport dedate izoleaz nivelurile superioare de orice specificit i legate de modul în care esteexecutat transportul datelor. Are un caracter redundant, realizat de ECRC (End-to-end Cycling Redundancy Check), mecanism pe 32 bi i cu rolul de a asiguratransportul între dou sta ii separate de una sau mai multe entit i. De i toatetranzac iile PCI Express sunt separate, unele nu necesit r spuns (avantaj).

Nivelul software (aplica ie) este situat cel mai aproape de utilizator, oferindservicii de re ea aplica iilor utilizator. Nivelul aplica ie stabile te disponibilitateaunui calculator cu care se dore te ini ierea unei conexiuni, stabile te procedurilecare vor fi urmate în cazul unor erori i verific integritatea datelor.

PCI Express vs PCIrgimea de band disponibil între dou puncte nu este partajat , astfel

încât, atât la un singur periferic PCI Express cât i la trei, fiecare are la dispozi ieaceea i l rgime de band . La nivelul cipsetului, magistrala PCI Express estegestionat de un switch care gestioneaz conexiunile punct-la-punct, înainte de ainterac iona cu restul sistemului (vezi figura 4.34).

Fig. 4.34. Topologia de magistral partajat la PCI i topologia punct la punct la PCI Express.

Observa ie. În cazul PCI Express, fiecare dispozitiv are o cale direct iexclusiv c tre switch. Switch-ul analizeaz datele în func ie de prioritatea aplica iilor.

rgimea mare de band reprezint o alt noutate adus de PCI Express. Osingur cale este capabil s transmit 250 MB/s în fiecare direc ie simultan (500MB/s pentru ambele direc ii). PCI Express este alc tuit din dou c i, a adar, poatetransmite 500 Mb/s pentru o singura direc ie i 1000 MB/s pentru ambele direc ii.PCI Express în variantele 4, 8, 16 nu se fabric pentru calculatoarele desktop,ci pentru servere, iar PCI Express 16 este creat pentru a înlocui slotul VGA 8x.

ARHITECTURA SISTEMELOR DE CALCUL218

Din punct de vedere al compatibilit ii, produc torii au gândit PCI Expresspentru a r mâne compatibil din punct de vedere software cu toate sistemele deoperare i programele actuale. Cu alte cuvinte, nu este nevoie de un updatesoftware pentru a putea beneficia de avantajele aduse de PCI Express. Un alt lucruimportant este c PCI Express r mâne compatibil cu pl cile PCI actuale nu ofersuport simultan pentru AGP i PCI Express, din cauza constrângerilor. Deci,adoptând o platform cu PCI Express, trebuie înlocuit vechea plac video.

În plus, PCI Express diminueaz consumul de energie când slotul nu este activ,ofer suport pentru traficul în timp real, încorporeaz func iile hot plug i hot swap,furnizeaz performan e scalabile i caracteristici avansate, QoS (Quality of Service).

Comparativ cu PCI, PCI Express are semnale de leg tur minime, iar ceasuli adresarea informa iei sunt incluse în date. Figura 4.35 compar l rgimea de

band per pin la PCI, PCI-X, AGP8 i PCI Express.

Fig. 4.35. Compara ie a l rgimilor de band .

Exemple de arhitecturi PCI ExpressNenum ra i factori duc la alegerea cardurilor PCI Express în func ie de

necesit ile clientului, serverului sau a platformei portabile: carduri standard i cu profil mic: desktop, sta ii de lucru i servere; minicarduri: calculatoare portabile; ExpressCard: calculatoare portabile i desktop; Server I/O Module (SIOM).Figura 4.36 exemplific implementarea PCI Express într-un sistem client. Ini ial,

conexiunea PCI Express 16 înlocuie te slotul AGP dintre subsistemele grafice inorthbridge. O variant de PCI Express poate înlocui conexiunea dintre northbridge isouthbridge, rezolvând incompatibilit ile dintre componente i nothbridge.

Figura 4.37 exemplific structura unui sistem portabil. La fel ca la sistemeledesktop, PCI Express înlocuie te placa AGP, fiind o alternativ la conexiuneadintre nothbridge i southbridge. Magistrala PCI dintre northbridge i sta ia delucru poate migra, de asemenea, spre PCI Express. Un slot ExpressCard 1 carefolose te o conexiune USB 2.0 poate înlocui cardul PC.

Figura 4.38 exemplific modul în care poate fi implementat PCI Expressîntr-o arhitectur de server dual-core. PCI Express face leg tura dintre componentei sloturi plasate direct pe northbridge.

Page 106: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 219

Fig. 4.36. Exemplu de arhitectur desktop PCI Express.

Fig. 4.37. Exemplu de arhitectur de sistem portabil PCI Express.

Aceast abordare are urm toarele avantaje: vitez mult mai mare pentru genera iile viitoare (10-Gps Ethernet); costuri mai mici – mai multe sloturi i componente se pot conecta la

cipul sistemului; laten mic – laten a transmisiei dintre componente, CPU i memorie

poate fi redus , eliminând puntea PCI-X.

ARHITECTURA SISTEMELOR DE CALCUL220

Fig. 4.38. Exemplu de arhitectur server PCI Express.

4.3.10. Compara ii între magistrale

Figura 4.39 este o sintez de tip roadmap i arat evolu ia în timp a vitezeimagistralelor, exprimat prin valoarea ratei de transfer (benzii), iar tabelul 4.2prezint comparativ caracteristicile, parametrii i performan ele câtorva dintre celemai r spândite standarde de magistrale seriale din ultimii ani.

Fig. 4.39. Evolu ia ratei de transfer a magistralelor.

Page 107: Arhitectura Sistemelor de Calcul-ASC

Structura unui calculator 221

Tabelul 4.2Compara ie între magistrale

Nume

rgimede bandefectiv(Mb/s)

Vitezde

transfer(MB/s)

Lungimemaximde cablu

(m)

Putere/tensiunenecesare(W/V)

Num rde echipamente

per canal

SAS 3.000 375 8 - 4

eSATA 3.000 300 2 - 1 (15 cu multiplicator de port)

SATA 300 3.000 300 1 - 1 (15 cu multiplicator de port)

SATA 150 1.500 150 1 - 1

PATA 133 1.064 133 0,46 - 2

FireWire3200 3.144 393 100 15/12–25 63 (cu hub)

FireWire 800 786 98,25 100 15/12–25 63 (cu hub)

FireWire 400 393 49,13 4,5 15/12–25 63 (cu hub)

USB 2.0 480 60 5 2,5/5 127 (cu hub)

UltraSCSI 320 2.560 320 12 - 16

Fiber Channelcablu cupru 4.000 400 12 - 126 (16.777.216 cu switch-uri)

Fiber Channelfibr optic 10.520 2.000 2–50.000 - 126 (16.777.216 cu switch-uri)

Infiniband12 Quad-rate 120.000 12.000 5 - 1 (punct-la-punct)

5. NIVELUL MICROPROGRAMAT

Sistemele de calcul sunt implementate folosind diferite concepte care leapropie de gândirea uman . Se disting astfel mai multe niveluri de programareale unui calculator. În acest capitol se va studia nivelul microprogramat. Func ionarea microprocesorului i a oric rui bloc dintr-un sistem cumicroprocesor necesit date i semnale de comand i control. Succesiuneadorit a evenimentelor din sistem (care conduce la executarea unei sarciniutile) se produce prin ac ionarea corect , secven ial , a semnalelor decontrol, acestea conducând la transferul corect de date, prelucrarea acestorai luarea de decizii. În general, îns , datorit multitudinii acestor semnale i

a leg turii lor intime cu structura intern a fiec rui bloc nu se lucreaz directcu semnale simple ci cu grupuri ale lor care au un efect mai u or de sesizatdin exterior. Astfel de grupuri de semnale sunt numite instruc iuni i elesunt caracteristice logicii programate. Din cele men ionate rezult c executarea unei instruc iunipresupune efectuarea într-o anumit ordine a unor pa i elementari care senumesc microopera ii i microinstruc iuni. Primele procesoare executaucodul direct la nivel hardware. Execu ia era destul de rapid (se accesadirect nivelul 0 din nivelul 2), dar conceptul era lipsit de flexibilitate.Aceasta se datora imposibilit ii ad ug rii de instruc iuni noi.

Fig. 5.1. Structur par ial a nivelurilor unui calculator.

Page 108: Arhitectura Sistemelor de Calcul-ASC

223

Practic s-a constatat c pentru execu ia oric rei instruc iuni din setulmicroprocesorului se execut o succesiune bine definit de pa i. Microprogramarea este un concept care formeaz de fapt interfa a întrelimbajul de asamblare i structurile fizice ale procesorului. Microinstruc iunilesunt practic semnalele de comand adresate de unitatea de control c tre unitateade execu ie a procesorului. Apari ia nivelului microprogramat presupuneasocierea fiec rei instruc iuni cu o succesiune de microinstruc iuni.

5.1. Exemplu de ma in microprogramat

În figura 5.2 se prezint structura unei ma ini microprogramate.

Fig. 5.2. Structura unei ma ini microprogramate de tip A (mA).

224

Nota iile folosite în figura 5.2: R1 … R16: 16 registre generale de tip latch, fiecare de 16 bi i, care

au func ii diferite, registre inaccesibile utilizatorului; ele suntutilizate doar de ma ina microprogramat . Fiecare registru poatedepune date pe magistralele A, B i poate fi înc rcat de pemagistrala C.

ALU: circuit logic combina ional care realizeaz patru opera iiaritmetice i logice selectate de F0 i F1. Cele patru opera ii suntA+B, AB, A, nonA. La ie ire mai sunt disponibili doi bi i nota i cuN i Z. Semnifica ia lor este: rezultatul din ALU este negativ N = 1; rezultatul ALU este zero Z = 1.

registrul shift: este un circuit de deplasare a c rui intrare estelegat la ie irea ALU i care poate executa urm toarele opera ii: deplasare cu un bit la stânga/dreapta; livrare direct la ie ire a cuvântului aflat la intrare (stare

inactiv ). Aceste opera ii sunt selectate de liniile de comand S0 i S1. magistralele A i B sunt legate la ALU prin registrele tampon de

tip latch RTA i RTB (ALU este un circuit logic combina ional, iarintr rile lui trebuie inute constante pe timpul unei opera ii).Registrele tampon sunt înc rcate prin liniile de comand L0 i L1.Observa ii: Registrele tampon permit modificarea magistralelor A i B în

timpul unei opera ii executate de c tre ALU. Rezult c pot avealoc opera ii între registre de tipul R1 R1 + R2, R2 R1 + R2etc.;

Dac registrele R1 … R16 ar fi de tip flip-flop, atunci nu ar maifi nevoie de registrele tampon.

RDA, RAD: registre care realizeaz conexiunea cu magistrala dedate, respectiv de adrese. RAD este înc rcat cu date de pemagistrala B în acela i timp cu efectuarea unei opera ii de c treALU. RDA este înc rcat de pe magistrala C atunci când seactiveaz semnalul M1. Semnalele M2 i M3 comand pozi ionareacon inutului lui RDA pe magistrala de date (scriere în memorie) irespectiv înregistrarea datelor de pe magistral în RDA (citire dinmemorie). Datele înc rcate în RDA pot fi utilizate la o intrare aunit ii ALU prin semnalul de comand A0 care se aplicmultiplexorului.

Page 109: Arhitectura Sistemelor de Calcul-ASC

225

5.2. Microinstruc iunile

În exemplul prezentat anterior, microinstruc iunile reprezint setulde semnale care sunt primite de componentele unit ii de execu ie a ma iniimicroprogramate. În total sunt 61 de linii de comand , dispuse în nougrupe func ionale, care execut comanda i controlul c ii de date a ma inii.Aceste grupe sunt:

16 semnale pentru transferul de date din registrele R1 … R16 pemagistrala A, la un moment dat putând fi selectat un singur registru(în figura 5.2 nu au fost reprezentate aceste semnale);

16 semnale pentru transferul de date din registrele R1 … R16 pemagistrala B cu men iunile anterioare;

16 semnale pentru transferul de date de pe magistrala C într-unuldin registrele R1 … R16 (nici aceste semnale nu au fostreprezentate pe schem din motive de spa iu);

dou semnale de comand a înc rc rii registrelor tampon RTA iRTB, notate în figur cu L0 i L1;

dou semnale care selecteaz opera iile executate de ALU (F0 iF1);

dou semnale de comand a registrului shift (S0 i S1); patru semnale de comand a registrelor RDA i RAD (M0, M1, M2

i M3); dou semnale care indic opera iile de scriere/citire în/din memoria

principal ; un semnal de comand pentru AMUX (A0).

Ma ina func ioneaz secven ial, fiind necesar un registru decomand de 61 bi i. Acest num r al semnalelor de comand este prea mare.S-a încercat reducerea lui prin selectarea registrelor R1 … R16 cu ajutorulunei linii de comand de 4 bi i pentru fiecare magistral . Semnalele se ob inapoi prin trei decodoare 4/16 care genereaz cele trei grupe de 16 semnale.În felul acesta se economisesc 3 12 = 36 bi i. Procedând astfel, la fiecare pas trebuie înc rcat un registru. Situa ianu este mereu avantajoas . De exemplu, este posibil executarea uneiopera ii ALU doar pentru setarea semnalelor N i Z. De aceea se utilizeazun semnal suplimentar de validare a înc rc rii, VALC. Acesta ia valoarea 1când valideaz înc rcarea i 0 când o interzice. VALC este legat de intrareade CS (Chip Select) a decodorului. Semnalele M2 i M3 pot informa înexterior tipul opera iei (citire/scriere din/în memorie). În acest fel seeconomisesc înc 2 bi i.

226

Semnalele L0 i L1 sunt identice i sunt generate de ceasul intern alsistemului. În fiecare perioad , L0 i L1 permit stocarea datelor pemagistralele A i B. În concluzie, nu este necesar specificarea lor îninstruc iuni. R mân 61 – 36 – 2 – 2 + 1 = 22 bi i suficien i pentru comanda

ii de date a microma inii. În structura microinstruc iunii vor intra astfel 22bi i de comand plus al i bi i descri i în continuare.

5.2.1. Structura unei microinstruc iuni

O microinstruc iune cuprinde mai multe p i, numite câmpuri,fiecare câmp definind o func ie proprie. Reprezentarea din figura 5.3 aratstructura unei microinstruc iuni.

1 2 2 2 1 1 1 1 1 4 4 4 8

AM

UX

CO

ND

*

ALU

DEP

L

RD

A

RA

D

RD

WR

VA

LC C B A

AD

DR

*

Fig. 5.3. Structura unei microinstruc iuni (câmpuri i num r de bi i alocat); * neprezentat.

Rezult un total de 22 + 2 + 8 = 32 bi i. Semnifica ia acestor bi i este: AMUX (1 bit) 0 – intrare din RTA; 1 – intrare din RDA. ALU (2 bi i) 0 – A+B; 1 – AB; 2 – A; 3 – nonA. DEPL (2 bi i) 0 – f deplasare; 1 – deplasare la dreapta; 2 – deplasare la stânga; 3 – neutilizat. RDA (1 bit) indic înc rcarea RDA cu cuvântul de pe magistrala C; RAD (1 bit) indic înc rcarea RAD cu cuvântul din RTB; RD (1 bit) indic citirea din memoria central ; WR (1 bit) indic scrierea în memoria central ; VALC (1bit) autorizeaz înc rcarea registrelor generale: 0 – interdic ie; 1 – validare. înc rcare/depunere de pe magistrala C/pe magistrala A sau B

(semnal pe 3 4 bi i).

Page 110: Arhitectura Sistemelor de Calcul-ASC

227

5.2.2. Execu ia unei microinstruc iuni

O instruc iune cuprinde patru subcicluri de execu ie (este folosit unceas cu patru faze):

1. înc rcarea microinstruc iunii care trebuie executat într-un registruparticular denumit registru microinstruc iune RMI;

2. transferul con inutului registrelor selec ionate pe magistralele A, Bi înc rcarea datelor în RTA i RTB;

3. realizarea opera iilor ALU i ale registrului shift; dac este necesar,RAD este înc rcat de la ie irea registrului tampon B;

4. înc rcarea datelor de la ie irea registrului shift în registrulselec ionat i/sau în registrul RDA.

Pân acum s-a prezentat calea de date a ma inii. În cele ce urmeazse va analiza blocul care genereaz semnalele de comand(microinstruc iunile) pentru calea de date.

Schema ceasului i fazele semnalului de ceas sunt reprezentate înfigura 5.4.

Fig. 5.4. Fazele semnalului de ceas.

228

5.2.3. Unitatea de comand

Schema bloc a sistemului microprogramat este prezentat în figura5.5. Unitatea de comand preia codul în limbaj de asamblare i comand caleade date prezentat anterior. Componentele sale sunt descrise în continuare. Memoria de microprogram se mai nume te memorie de comand(exist îns diferen e între memoria de program i cea de microprogram).Memoria de microprogram este o memorie foarte rapid care con ineinstruc iuni microprogramate. Pentru majoritatea microma inilor, memoriade microprogram este de tip read-only; exist i posibilitatea utiliz riimemoriei de tip read-write, ceea ce confer posibilitatea modific riidinamice a programului.

Fig. 5.5. Schema bloc a unit ii de comand .

În exemplul anterior. microinstruc iunile sunt de 32 de bi i. Exist256 de microinstruc iuni, ceea ce necesit 8 bi i de adres (a a se expliccâmpul ADDR de 8 bi i în structura câmpurilor microinstruc iunii). Cele256 de microinstruc iuni cer o memorie de 8192 bi i (256 instruc iuni 32bi i). Fiecare microinstruc iune execut dou func ii:

controleaz func ionarea c ii de date; genereaz adresa pentru microinstruc iunea urm toare.

A a cum s-a ar tat, formatul microinstruc iunilor con ine câmpuri decontrol pentru fiecare resurs hardware a ma inii. Secven iatorul de microprogram prime te de pe calea de datestarea curent a acesteia prin bi ii de stare (starea este dat de semnalele N iZ). Secven iatorul de microprogram are rolul de a adresa urm toarea

Control adres urm toare

Adres microprogram

Secven iator demicroprogram

Memorie demicroprogram

Calea de date

Stare Control

Page 111: Arhitectura Sistemelor de Calcul-ASC

229

microinstruc iune, în func ie de starea c ii de date i de bi ii de control aiadresei urm toare, care sunt da i la rândul lor de câmpurile COND i ADDRdin microinstruc iune. Prin linia de adres a microprogramului se selecteazinstruc iunea care este depus pe intrarea de control a c ii de date. Astfel, semnifica ia câmpului COND este urm toarea:

COND (2 bi i) 0 – se execut urm toarea microinstruc iune;1 – salt la adresa specificat de ADDR dac N = 1;2 – salt la adresa specificat de ADDR dac Z = 1;3 – salt necondi ionat la ADDR.

Schema general a microma inii este dat în figura 5.6. Nota iilefolosite sunt urm toarele:

MCO = microcontor (registru de adresare a memoriei demicroprogram);

INCR = circuit de incrementare (INCR = MCO + 1); MMUX = multiplexor care lucreaz în concordan cu decizia

provenit de la microsecven iator; el va alege pentrumicroinstruc iunea urm toare fie adresa MCO + 1, fieadresa specificat în ADDR.

Fig. 5.6. Schema bloc a unei microma ini (schema modificat pentru mA).

230

Înc rcarea datelor de pe magistrala C într-unul din cele 16 registregenerale nu este posibil decât atunci când se îndeplinesc urm toarele condi ii:

1. VALC = 1;2. subciclul curent de ceas este 4 ( 4 activ);3. registrul este indicat de câmpul C al microinstruc iunii.

5.2.4. Modul de lucru al microsecven iatorului

Ecua ia logic a microsecven iatorului este:

O(s) = DN + SZ + SD,unde:

O s) = ie irea microsecven iatorului;D = bitul dreapta al câmpului COND;S = bitul stânga al câmpului COND;N, Z = semnale de stare generate de ALU (negativ i zero).

Când O s) = 1 are loc schimbarea adresei microinstruc iuniiurm toare cu adresa dat de câmpul ADDR din instruc iunea curent .

5.3. Microprogramarea orizontal i vertical

Diferen a major între aceste dou tehnici de microprogramare estedat de modul de codare a microinstruc iunii. Se presupune c pentru comanda ma inii mA sunt necesare nsemnale. Când microinstruc iunile con in n bi i, câte un bit pentru fiecaremicrocomand , ele sunt denumite microinstruc iuni în format orizontal. Exemplu. În cazul microma inii mA s-ar fi putut renun a lautilizarea decodoarelor pentru magistralele A, B sau C. De asemenea, ALUar fi putut s nu con in un decodor intern pentru cele patru opera iiexecutate. În acest caz, pentru fiecare înc rcare de pe/pe magistral ar fi fostnevoie de 16 bi i în loc de 4, iar la ALU ar fi fost nevoie de 4 bi i în loc de 2(vezi câmpul ALU în formatul de microinstruc iune prezentat). Deci la una din extremit ile formatului microinstruc iunilor se aflformatul orizontal, în care fiecare bit semnific o microcomand . Înconsecin , microinstruc iunea con ine mul i bi i. La cealalt extremitate se afl formatul vertical, în caremicroinstruc iunile con in un num r mic de bi i ( n), îns câmpurilemicroinstruc iunii sunt puternic codate. Dac în microprogramarea orizontal

Page 112: Arhitectura Sistemelor de Calcul-ASC

231

un microprogram necesit pu ine instruc iuni cu mul i bi i, în programareavertical acela i microprogram necesit multe instruc iuni cu pu ini bi i. În practic se întâlnesc formate mixte, cum este cel prezentat înexemplul microma inii mA, situat între cele dou extremit i. Astfel, laformatul prezentat se întâlnesc câmpuri asociate direct microcomenzilor (deexemplu, RAD, RDA, AMUX, RD, WR), care au un efect imediat asupracircuitelor microma inii. Îns se întâlnesc, de asemenea, i câmpuri de bi icodate (de exemplu, ALU, A, B, C), care necesit utilizarea unui decodorînainte de aplicarea pe circuitele corespunz toare.

5.3.1. Microma ina cu format vertical

Microinstruc iunea vertical tipic con ine un câmp numit codulopera iei (care poate fi v zut ca o generalizare a câmpului ALU) i maimulte câmpuri de operanzi, de exemplu: A, B, C. Pentru a clarifica distinc iaîntre microprogramul orizontal i cel vertical, se va revizui microma inamA, utilizând de aceast dat microinstruc iuni verticale. Fiecare noumicroinstruc iune va cuprinde trei câmpuri de 4 bi i, deci un total de 12 bi ifa de 32 de bi i la versiunea precedent . Primul câmp este codul opera iei (COP) care arat ce trebuie s facmicroinstruc iunea. Celelalte câmpuri sunt registrele R1 i R2.Microinstruc iunile de salt regrupeaz registrele R1 i R2 pentru a forma uncâmp de 8 bi i (fie acesta R). În tabelul 5.1 este prezentat codul opera iei (fiecare tip demicroinstruc iune). Se observ c fiecare microinstruc iune nu realizeaz decât o singuropera ie i c cei 12 bi i ai microinstruc iunii sunt suficien i pentru aspecifica o opera ie la un moment dat. Corespunz tor, ma ina se modific irezult microma ina mB, în conformitate cu schema din figura 5.7. Se constat c la cele dou scheme c ile de date sunt identice. Înschimb, la microma ina cu format vertical nu sunt utilizate decât doudecodoare 4 la 16 pentru R1 i R2 în locul celor trei decodoare A, B, C dinschema anterioar . De asemenea, în schem apar trei elemente noi: blocul

I, blocul NZ i decodorul COP. Blocul I con ine 16 por i I care permit câmpului R1, duptraversarea decodorului R1, s comande golirea unui registru pe magistralaA i înc rcarea sa pe magistrala C. Desigur c aceste opera ii nu pot fisimultane. De aici necesitatea por ilor I care determin în timpulsubciclului 4 înc rcarea unui registru când aceast opera ie este validat dedecodorul COP.

232

Tabelul 5.1Codul opera iei pentru microinstruc iunile în format vertical

Binar Simbol Descriere Opera ie

0000 ADD adunare R1 = R1 + R20001 AND I logic R1 = R1 R20010 MOVE deplasare R1 = R20011 COMPL complement R1 = inv(R2)0100 SHIFTL deplasare stânga R1 = shiftleft(R2)0101 SHIFTR deplasare dreapta R1 = shiftright(R2)0110 GETRDA înc rcare R1 cu RDA R1 = RDA0111 TEST test registru if R2 < 0 then N = true

if R2 = 0 then Z = true

1000 BEGRD început RD RAD = R1; RD1001 BEGWR început WR RAD = R1; RDA = r2; WR1010 CONRD continuare RD RD1011 CONWR continuare WR WR1100 LIBER – –1101 NJUMP salt dac N = 1 if N then go to R1110 ZJUMP salt dac Z = 1 if Z then go to R1111 UJUMP salt necondi ionat go to R

Observa ie: R = l6R1 + R2.

Blocul NZ este un registru de 2 bi i care înregistreaz semnalele N iZ la ie irea ALU, când aceast înregistrare este ordonat de decodor. Acestartificiu este utilizat deoarece pe microma ina B nu este realizat decât osingur opera ie în timpul unei microinstruc iuni. Astfel, testarea iutilizarea bi ilor N i Z se face doar în microinstruc iunea urm toare, decieste necesar o p strare a lor în registru.

Decodorul COP reprezint elementul central al microma inii.Acesta analizeaz codul opera iei i precizeaz ac iunile care se vorîntreprinde. Decodorul COP distribuie 13 microcomenzi distincte c treblocul I, microsecven iator, registrul NZ, AMUX, ALU, circuitul shift,RAD i RDA. Pentru fiecare din cele 16 coduri de opera ii posibile trebuiedeterminat care dintre cele 13 microcomenzi sunt active (1) i care sunt înrepaus (0).

Page 113: Arhitectura Sistemelor de Calcul-ASC

233

Fig. 5.7. Structura microma inii cu format vertical (mB).

Rezult astfel un tablou 16 13, prezentat în tabelul 5.2. Dac se numeroteaz cei patru bi i care codeaz microinstruc iuneacu A, B, C i D, atunci se pot ob ine, dup minimizare, urm toarele func iilogice (ideal pentru implementare este un PLA cu 4 intr ri i 13 ie iri):

ALUA = A’B’CD’ + A’B’CD + A’BC’D’+ A’BC’D + A’BCD’ + A’BCD ++ AB’C’D’ + AB’C’D +ABC’D + ABCD’ + ABCD == C + AB’ + A’B + AD

ALUB = A’B’C’D + A’B’CD = A’B’DSHIFTA = A’BC’D’SHIFT B = A’BC’DNZ = A’B’C’D’ + A’B’C’D + A’B’CD’ + A’B’CD + A’BC’D’ + A’BC’D +

+ A’BCD’ + A’BCD = A’

234

AMUX = A’BCD’I = A’B’C’D’ + A’B’C’D + A’B’CD’ + A’B’CD + A’BC’D’ + A’BC’D +

+ A’BCD’ = A’B’ + A’C’ + A’D’RAD = AB’C’D’ + AB’C’D = AB’C’RDA = AB’C’DRD = AB’C’D’ + AB’CD’ = AB’D’WR = AB’C’D + AB’CD = AB’DMSA = ABCD’ + ABCD = ABCMSB = ABC’D + ABCD = ABD

Tabelul 5.2

Coresponden a microinstruc iuni-microcomenzi la microma ina cu format vertical

in-struc-

iuni com

enzi

ALU

A

ALU

B

SHIF

TA

SHIF

TB

NZ

AM

UX

I

RA

D

RD

A

RD

WR

MSA

MSB

0 ADD + +

1 AND + + +

2 MOVE + + +

3 COMPL + + + +

4 SHIFTL + + + +

5 SHIFTR + + + +

6 GETRDA + + + +

7 TEST + +

8 BEGRD + + +

9 BEGWR + + + +

10 CONRD + +

11 CONWR + +

12 LIBER

13 NJUMP + +

14 ZJUMP + +

15 UJUMP + + +

Page 114: Arhitectura Sistemelor de Calcul-ASC

235

5.3.2. Compara ie între cele dou microprograme

Microma ina mA are un format mixt, con inând atât câmpuriverticale cât i câmpuri orizontale, pe când microma ina mB are un formatvertical. Exemplu. În cazul în care microprogramul ar fi utilizat pentruinterpretarea unui num r de 23 de tipuri de macroinstruc iuni, atuncimicroprogramul microma inii mA ar trebui s aib 79 microinstruc iuni acâte 32 bi i, rezultând 2528 de bi i în memoria de microprogram. În schimb,microprogramul microma inii mB con ine 160 microinstruc iuni a 12 bi i,rezultând în total 1920 de bi i. Se ob ine astfel un câ tig de 24% încapacitate de memorie, deci o diminuare a costului de implementare pentrual doilea caz (microma ina mB cu structur vertical ). Inconvenientul major al formatului vertical este dat de num rulimportant de microinstruc iuni care trebuie executate pentru interpretareaunei macroinstruc iuni. Aceasta se traduce într-o diminuare net a vitezeimicroma inii. Din acest motiv, calculatoarele mari i rapide utilizeazmicroprogramarea orizontal . În schimb, ma inile mai modeste utilizeazmicroprogramarea vertical pentru simplitate i pre de cost mai mic. Într-adev r, microprogramarea vertical permite scrierea u oar amicroprogramului, deoarece fiecare linie de microprogram reprezint osingur opera ie. Microprogramul este mult mai lizibil decât lamicroprogramarea orizontal , unde o microinstruc iune reprezint opera iimultiple. În ultimul timp, când competi ia dintre arhitecturile RISC i CISC afost eliminat , se poate spune acela i lucru i despre formatele vertical iorizontal pentru microinstruc iuni.

5.3.3. Analiza comparativ a sistemelor microprogramateMicrocod vs VLIW (Very Long Instruction Word) i RISC

Procesoarele proiectate propice, microcodate puternic cu instruc iunicomplexe au luat na tere la începutul anilor 1960 i au continuat pân lamijlocul anilor 1980. La acel punct, filozofia proiect rii RISC-ului a început

devin mai proeminent . Aceasta a inclus punctele: Analiz arat c instruc iunile complexe sunt folosite rar, întrucât

resursele ma inilor necesare lor sunt risipite foarte mult. Programarea s-a îndep rtat foarte mult de nivelul de asamblare, deci

nu se mai merit s furnizezi instruc iuni complexe din motive deproductivitate.

236

Resursele ma inilor necesare pentru instruc iunile complexe, rarfolosite, sunt utilizate mai bine pentru accelerarea performan eiinstruc iunilor simple (folosite în mod obi nuit).

Instruc iunile complexe microcodate, care necesit multe i diversecicluri ceas, sunt dificil de actualizat pentru cre terea performan ei.

Seturile de instruc iuni simple permit execu ii directe ale hardware-ului, evitând penalizarea performan ei a execu iei microcodate.

Ar trebui men ionat c exist la fel de bine i puncte-contor: Instruc iunile complexe din implement rile dificil microcodate pot

nu ia multe extra-resurse ale ma inilor (cu excep ia spa iuluimicrocodului); de exemplu, aceea i ALU este utilizat des pentru acalcula adrese efective precum i s calculeze rezultatele operanziloractuali.

Instruc iunile non-RISC, care implic operanzi direc i de memorie,sunt folosite frecvent de c tre compilatorii moderni, chiar i stivelede opera ii aritmetice (ex. rezultatul memoriei) sunt de obiceiîntrebuin ate. De i asemenea opera ii de memorie, de multe ori cudecod ri cu lungimi variate, sunt mai greu de actualizat, este pedeplin fezabil, exemplificându-se în mod limpede prin Intel 486,Cyrix 6x86 etc.

Instruc iunile non-RISC îndeplinesc, în mod firesc, mai mult muncpe instruc iune (în medie) i de asemenea de obicei sunt extrem decodate; a a c permit dimensiuni exterioare mai mici ale aceluia iprogram, iar astfel o utilizare mai bun a memoriilor cache limitate.

Implement rile CISC (Complex Instruction Set Computer) moderne– cel mai remarcabil x86 – îndeplinesc cele mai multe instruc iuni itoate modurile de adresare “în hardware”; microcodul este încfolosit, pentru câteva instruc iuni extrem de complexe sau foartespeciale (precum CPUID – CPU Identification) precum i pentruhousekeeping intern.

Multe procesoare RISC i VLIW sunt proiectate s execute fiecareinstruc iune (cât timp este în cache) într-un singur ciclu. Acesta este foartesimilar modului în care CPU-urile cu microcod execut o microinstruc iunepe ciclu. Procesoarele VLIW au instruc iuni care se comport similarmicrocodului orizontal, cu toate c nu au un asemenea controlmicrogranular asupra hardware-ului precum asigur microcodul.Instruc iunile RISC sunt uneori similare limitatului microcod vertical.

Page 115: Arhitectura Sistemelor de Calcul-ASC

237

5.4. Nanoprogramarea

Pân acum, discutând despre microprograme, s-a presupus existen aunei memorii principale (care con ine instruc iunile nivelului 2) i a uneimemorii de comand (care con ine microprogramul).

O a treia memorie, denumit nanomemoria, permite în unele cazurio asociere optim între microprogramul orizontal i cel vertical Astfel,nanoprogramarea corespunde unei optimiz ri statistice a microprogramului,în cazul în care un set de instruc iuni este mai des solicitat. În figura 5.8 estereprezentat (prin compara ie cu microprogramarea) conceptul denanoprogramare.

În cazul a), microprogramul con ine n microinstruc iuni a câte w bi i,rezultând capacitatea unei memorii de comand de nw bi i. Se presupune co analiz detaliat a microprogramului arat c dintre cele 2w posibilit i dereprezentare sunt utilizate doar m << n instruc iuni.

În cazul b) s-a construit o nanomemorie de m cuvinte a câte w bi icare con ine cele m microinstruc iuni mai des utilizate. Atunci fiecaremicroinstruc iune a microprogramului original poate fi înlocuit în memoriade comand prin adresa cuvântului din nanomemorie care con inenanoinstruc iunea corespunz toare, rezultând l imea cuvântului în memoriade comand de log2m bi i.

w log2m

nw

m

a) b)

Fig. 5.8. a) Microprogramare conven ional ; b) microprogramare i nanoprogramare.

Exemplu. Fie un microprogram de nw = 4096 100 bi i cu m = 128de instruc iuni diferite folosite mai frecvent. Rezult o nanomemorie având

nanoprogram

micro-programmicroprogram

238

mw = 128 100 bi i i o memorie de comand de n log2m = 4096 7 bi i.Câ tigul fa de microprogramarea conven ional este de:

(4096 100) – (4096 7) – (128 100) = 368 128 bi i.

Economia de memorie este realizat în contextul unei reducerisensibile de vitez . Datorit faptului c un ciclu de extragere amicroinstruc iunii necesit dou accese la memorie (memoria de comand inanomemorie), ma ina nanoprogramat este mai lent decât ma inamicroprogramat . Din acest considerent, în ultimul timp s-a folosit din ce înce mai rar conceptul de nanoprogramare.

5.5. Exemplu de sistem microprogramat AMD

5.5.1. Unit i de execu ie integrate

Unitatile de executie se prezinta sub forma unor circuite integrate pe scaramedie/larga. De regula ele sunt structurate transe de biti astfel incat, princoncatenare si prin utilizarea unor circuite aditionale, se pot construi sisteme deprelucrare pentru date organizate pe 4, 8, 16, 24, 32, 48 sau 64 de biti. Unit ile deexecu ie integrate s-au comercializat în asocia ie cu unit ile de comandcorespunz toare i cu o serie de circuite adi ionale, formând ceea ce se cheammicroprocesoare pe tran e de bi i, microprocesoare bit-slice, microprocesoaremulti-chip etc. Printre cele mai r spândite familii de microprocesoare bit-slice s-au aflat icele produse de compania Advanced Micro Devices, sub numele de AMD 2900.Unitatea de execu ie AMD 2901 este organizat pe tran e de 4 bi i/circuit i esteprev zut cu elementele necesare cupl rii în cascad . Semnalele de comand seaplic sub forma unor vectori binari la terminalele circuitului, fiind, de regul ,preluate sub controlul unui circuit micro-secven iator integrat (AMD 2909, 2911)de la o memorie cu con inut permanent. In cele ce urmeaza va fi prezentata unitatea de executie AMD 2901 subaspect structural i functional.

5.5.2. Unitatea de execu ie AMD 2901

Unitatea de executie AMD 2901 este organizata pe transe de 4 biti/circuitsi este prevazuta cu elementele necesare cuplarii in cascada.

Semnalele de comanda se aplica sub forma unor vectori binari laterminalele circuitului, fiind, de regula, preluate sub controlul unui circuit micro-secventiator integrat (AMD 2909, 2911) de la o memorie cu continut permanent.

Page 116: Arhitectura Sistemelor de Calcul-ASC

239

Aceasta solutie se foloseste in cazul unitatilor de comanda microprogramate.Uneori, pentru a mari viteza de operare, in locul unitatii de comandamicroprogramate se utilizeaza automate conventionale cu porti, bistabile si registre.

Unitatea de executie AMD 2901 dispune de urmatoarele resurse:- un ansamblu de 16 registre generale de cite 4 biti, organizate sub forma unei memoriiRAM biport, cu doua intrari de adrese, o intrare de date si doua iesiri de date;- o unitate aritmetica-logica, cu transport anticipat, capabila sa efectueze 3 operatiiaritmetice binare si 5 operatii logice si sa genereze, atit indicatorii de conditii:depasire, zero, semn, transport (Cn+4), cat si conditiile de propagare (P) sigenerare(G) ale transportului, la nivelul intregului circuit;- un selector de date pentru cele doua intrari ale unitatii aritmeticelogice, care potreprezenta combinatii intre iesirile memoriei biport (A,B), o intrare externa de date(D), constanta "zero" si iesirea unui registru su plimentar-extensie (Q);- un selector de iesire din circuit, care furnizeaza prin intermediul unor tampoaneTS fie datele de la iesirea A, a memoriei biport, fie datele de la iesirea UAL;- un registru auxiliar-extensie (Q), care poate fi incarcat fie cu datele de la iesireaUAL, fie cu propriul sau continut deplasat stanga/dreapta prin intermediul uneiretele logice de deplasare-multiplexor QSHIFT;- o retea de deplasare-multiplexor RAMSHIFT, plasata pe intrarea B a memorieiRAM biport.

Indicatorii de conditii trebuie stocati intr-un registru dupa fiecare operatieefectuata de UAL.

Intrarile R si S ale UAL sunt preluate de la iesirile unui circuit selector(Selector sursa UAL), care sub controlul semnalelor I0:2, din intrarile D (Dateexterne), A, B, 0 si Q, poate furniza combinatiile AB;AD; AQ; A0; DQ; D0; Q0;BD; BQ; B0. In tabelul 5.3 se prezinta selectia surselor de operanzi pentru UAL.

Tabelul 5.3. Selectia surselor de operanzi pentru UAL

Microcod SursaMnemonica

I2 I1 I0

Coduloctal R S

AQABZQZBZADADQDZ

0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1

01234567

A QA B0 Q0 B0 AD AD QD Z

Figura 5.9 prezinta schema bloc a circuitului AMD 2901. Unitateaaritmetica-logica poate efectua sub controlul semnalelor I3:5 trei operatii aritmeticebinare si cinci operatii logice asupra operanzilor aplicati la intrarile R si S.

240

Fig. 5.9. Schema bloc a circuitului AMD 2901.

Intrarea directa D este folosita pentru a introduce date in circuit, in RAM siin registrul Q. Registrul Q este utilizatin operatiilede inmultire si impartire, caextensie sau ca acumulator/registru in unele aplicatii.

9 biti

I8:6 I5:3 I2:0

Destinatie UAL Functie UAL Sursa UAL8 7 6 5 4 3 2 1 0

Fig. 5.10. Structura vectorului de comanda (Microcodul I8:0).

Page 117: Arhitectura Sistemelor de Calcul-ASC

241

Campul "Destinatie UAL" din vectorul de comanda are o semnificatiecomplexa prin faptul ca specifica:

- operarea RAM (deplasare/incarcare/inactiv);- operarea registrului Q (deplasare/incarcare/inactiv);- conexiunile la RAMSHIFT (RAM0 si RAM3);- conexiunile la QSHIFT (Q0 si Q3);- iesirea Y.Cuvantul (microinstructiunea) de comanda al unitatii de executie va avea

structura din figura 5.11.

23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0I8 I7 I6 I2 I1 I0 Cn I5 I4 I3 A3A2A1A0 B3B2B1B0 C3C2C1C0M

UX1

Selectiedestinatie

MUX2

Selectiesursa

OperatieUAL

Adresa“A”

Adresa“B”

Adresa“C”

Fig. 5.11. Cuvântul de comand al unit ii de execu ie.

Se poate observa ca microinstructiunea care controleaza unitatea deexecutie poseda 24 de biti. Bitii 0,..,3 au aparut ca urmare a inglobarii datei inmicroinstructiune (microinstructiune cu operand imediat). Campul D se va extindein incrementi de 4 biti odata cu extinderea lungimii cuvantului prelucrat de catreunitatea de executie. Campul Cn este asociat cu transportul in rangul cel mai putinsemnificativ al unitatii de executie, fiind la latitudinea celui care scriemicroprogramul.

5.5.3. Unitatea de comanda integrata. Secventiatorul de microprogramAMD 2909

Secventiatorul de microprogram AMD 2909 face parte din familia decircuite AMD2900 si constituie elementul de baza in jurul caruia este organmizataunitatea de comanda microprogramata.

Dupa cum s-a aratat in paragraful anterior, atat unitatea de executie AMD2901, cat si circuitele asociate acesteia sunt controlate cu ajutorul unui vector decomanda constituit din campuri de biti, cu functii bie precizate. Un asemeneavector controleaza operatii aritmetice elementare, care se pot efectua pe durata uneiperioade de ceas. Vectorul semnalelor de comanda poate fi generat cu ajutorul unuicircuit secvential, in cazul unitatilor de comanda conventionale, sau extras dintr-omemorie cu continut permanent, in cazul unitatilor de comanda microprogramate.

Operatiile cu caracter complex, printre care se numara si instructiunilecalculatoarelor conventionale, se implementeaza sub forma unor secvente devectori de comanda. In sistemele microprogramate aceste secvente sunt stocateintr-o memorie de control sau memorie de microprograme.

242

Un cuvant al memoriei de control reprezinta un vector de comanda sau omicroinstructiune. Secventiatorul de microprogram, structurat pe transe de cate 4biti, este destinat generarii adreselor de microinstructiuni si asigurarii inlantuiriiacestora. Secventiatorul, prezentat mai jos, are ca resurse hardware:

- Contorul de MicroProgram (CMP);- Registrul de Ramificare (RR);- Indicatorul de Stiva (IS);- STiVa (STV) cu capacitate de 4 cuvinte x 4 biti;- INCrementatorul (INC);- MultipleXorul (MUX) 4 x (4 : 1);

Fig. 5.12. Unitatea de comanda (schema bloc)

Schema bloc a unitatii de comanda va contine, pe langa microsecventiator,si elementele necesare realizarii unei unitati de comanda:

- Memoria de Microprogram (MM);- Registrul MicroInstrucriunii (RMI);- un Comutator de Adrese (CA);- o memorie de tip PROM.

Page 118: Arhitectura Sistemelor de Calcul-ASC

243

Secventierea microinstructiunilor este realizata prin controlul circuitului2909 cu ajutorul semnalelor preluate din campurile de control alemicroinstructiunii si de la conditiile externe.

Fig. 5.13. Schema bloc AMD 2909.

Se poate observa, in schema bloc din figura 5.13, faptul ca intrarea R amicrosecventiatorului este preluata direct de la iesirea memoriei de comanda, fara amai fi stocat in prealabil in registrul microinstructiunii RMI.

6. NIVELUL SISTEMULUI DE OPERARE

Acest nivel are un caracter hibrid, cea mai mare parte a instruc iunilor caredefinesc limbajul fiind de tip ma in . Exist i instruc iuni specifice, care necesitinterpretare pentru a fi trecute pe nivelul 2. Nivelul sistemului de exploatare are sarcini particulare în ceea ce prive tegestionarea memoriei (lucrul cu memoria virtual prin conceptele de paginare isegmentare) i organizarea execu iei în paralel a mai multor programe. Atât nivelulmicroprogramat cât i nivelul sistemului de operare (exploatare) sunt necesarepentru interpretarea nivelurilor inferioare. Acestea sunt scrise de speciali ti i suntorientate c tre numeric. Începând cu nivelul imediat superior (limbajul deasamblare) apare orientarea c tre simboluri, cuvinte, toate acestea având o anumitsintax .

6.1. Conceptul de paginare

Paginarea este procedeul de realizare în memorie a unor blocuri fixenumite pagini, care pot fi utilizate în mecanismul interschimb rii proceselor(transferul blocurilor între memoria intern i cea extern ). Tehnica pagin rii estelarg folosit i poate fi independent de gestionarea memoriei. Exist procesoarecare creeaz pagini în memoria fizic , sau, ca în cazul familiei Intel, în memoriavirtual . Ideea este de a face distinc ia între capacitatea de adresare fizic asistemului care define te un spa iu de memorie (denumit memorie virtual ) icapacitatea de memorie instalat în sistem (denumit memorie fizic sau real ).

Exemplu. Fie un sistem cu 16 linii (64 KB) i o memorie instalat de 4linii (fig. 6.1). În prezent, denumirea de memorie virtual se folose te cu dou accep iuni:

a) spa iu virtual care poate fi accesat (ini ial);b) zon de memorie plasat nu în memoria principal , ci pe un dispozitiv de

memorare secundar sau extern, cel mai adesea pe hard disk. O singur pagin de 4 KB se poate afla la un moment dat în memoriaprincipal (MP) sau fizic . Dac programul con ine mai multe pagini, restulpaginilor se afl undeva în memoria secundar (pe floppy disk sau pe hard disk).

Page 119: Arhitectura Sistemelor de Calcul-ASC

245

Când programul trebuie s execute o instruc iune din pagina urm toare,sistemul de gestiune al memoriei virtuale (care face parte din sistemul de operare)execut urm toarele opera ii:

1. salveaz con inutul memoriei periferice în memoria secundar ;2. localizeaz pagina respectiv în memoria secundar ;3. încarc aceast pagin în MP;4. asociaz adreselor absolute adresa de memorie fizic de la 0 la 4095;5. continu execu ia programului.

Fig. 6.1. Exemplu de paginare.

Observa ie. Spre deosebire de procesul de segmentare, paginarea este transparentprogramatorului, fiind realizat de sistemul de operare.

Memorie fizic i memorie virtual (fig. 6.2). Accep iunile termenului de memorie fizic sunt urm toarele:

1. linii fizice de adresare pe care le are procesorul în afar ;2. spa iu de memorie fizic instalat (existent ) în sistemul de calcul.Accep iunile termenului de memorie virtual sunt urm toarele:1. prima defini ie de la memoria fizic ;2. spa iu de memorie pe care îl creeaz sistemul de operare i care con ine

un model al memoriei i al adreselor de memorie pe care le are programulla dispozi ie (poate fi mai mare decât 1);

3. suportul fizic, de obicei hard disk-ul, pe care sistemul de operare salveazzone din memoria total disponibil programului pentru a asigura spa iilibere în zona de memorie fizic , destinate zonelor de cod sau de date cucare programul lucreaz la momentul respectiv.

0

4096

8192

12287

65536

0

15

spa iul virtual o pagin de 4 KB

0

4095

spa iul fizic

246

Tabelul 6.1Compara ie între capacit ile de adresare a memoriei fizice i a memoriei virtuale

Procesor Memoria maxim fizic adresabil Memoria virtual maxim

8086 1 MB (20 linii) –

80286 16 MB (24 linii) 1 GB

80386 4 GB (32 linii) 64 TB

80486 4 GB (32 linii) 64 TB

Pentium 4 GB (32 linii) 64 TB

Fig. 6.2. Leg tura între memoria fizic i memoria virtual .

6.1.1 Realizarea unei pagin ri simple

În mod normal, în memoria fizic instalat se pot afla mai multe paginiactive (fig. 6.3.) Dimensiunea paginii cu care opereaz procesorul Intel, echivalentde fapt cu dimensiunea blocurilor de memorie cu care se lucreaz , este de obicei de4 KB. Se presupune c exist o capacitate de adresare fizic de 64 KB (adic 16linii de adres ). Se împarte acest spa iu în pagini de câte 4 KB (blocuri), rezultândastfel 16 pagini. Se mai presupune c memoria fizic instalat este de 32 KB.

Program careutilizeazmemoriavirtual

Disc carestocheazi din memoria

virtual

Memoriavirtual

Memoria real care p streaz p i din memoria virtual

Page 120: Arhitectura Sistemelor de Calcul-ASC

247

Fig. 6.3. Exemplu de paginare simpl .

Adresa fizic este pe 16 bi i i dac se urm re te folosirea memoriei paginatese poate considera c cei mai semnificativi 4 bi i reprezint num rul paginii, iar ceimai pu in semnificativi 12 bi i reprezint deplasamentul în cadrul paginii. Pentru a realiza gestiunea memoriei fizice instalate se va folosi un tabel depagini cu 16 intr ri a câte 4 bi i fiecare (fig. 6.4.). Din cei 4 bi i, un bit va indicadac pagina fizic adresabil se afl sau nu în memoria principal , restul de 3 bi i(acest num r este dat de fapt de num rul de bi i cu care poate fi codificat num rulde pagini aflate în memoria instalat ) indic pagina din memoria instalat în care seafl pagina din memoria fizic adresabil la care se face referire.

1 1 1 0

Fig. 6.4. Gestiunea memoriei fizice folosind tabelul de pagini.

0

4096

8192

61440

65536

pagina 0 pagina 1

pagina 15

pagina 0 pagina 1

pagina 5 pagina 7

0

4096

8192

28672

32678

64 KB (16 linii)

memoria fizicadresabil

32 KB

memoria fizicinstalat

4 KB4 KB

0123

15

memorie fizic adresabil deplasament

124

0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0

1 1 0 0 0 0 0 0 0 0 1 0 1 1 0

248

Avantajele pagin rii pot fi rezumate astfel: rimea fix a paginilor intr corect într-un sector al unui disc; un obiect în memorie nu trebuie s fie continuu: pagina poate constitui o

nou „cuant ” de informa ie; mecanismul pagin rii i, implicit, întreaga tehnic de a schimba continuu

blocuri fixe de informa ii între memoria intern i cea extern nu suntvizibile utilizatorului.

În concluzie, mecanismul pagin rii are urm toarele elemente esen iale: se realizeaz dou niveluri de adresare indirect a memoriei, astfel încât

pân s se ajung la pagina propriu-zis se face o referin într-undirector din care se selecteaz o tabel a paginilor;

toate obiectele din memorie implicate (directorul i tabelele) sunt tratatela rândul lor ca ni te pagini speciale; deci toate au m rimea fix de 4 KB.Se p streaz astfel principiul coeren ei informa iei în memorie (ca i încazul segmentelor);

atât directorul cât i tabelele de pagini au structura uniform , fiindformate din 1 K „elemente” a câte 4 octe i. Aici se g se te adresa bazeitabelei i respectiv a paginii selectate;

orice adres a bazei unei tabele sau a unei pagini este dat pe un num r de20 bi i, ace tia constituind partea mai semnificativ a adresei fizicevizate. Blocurile în memorie sunt aliniate din 4 KB în 4 KB, deci automatcei mai pu in semnificativi 12 bi i ai adreselor fizice ale bazelor sunt 0;

adresa fizic a bazei directorului se afl în unul din cele patru registre decontrol al microprocesoarelor.

6.1.2. Politica de înlocuire a paginilor

Într-un sistem care folose te memoria virtual , sistemul de operare trebuie sstabileasc urm toarele politici de gestionare:

politica fetch: stabile te când o pagin trebuie adus în memorie; paginarea la cerere: aduce o pagin în memorie doar ca rezultat al

excep iei page fault; pre-paginarea: încearc s anticipeze abloane de utilizare a memoriei în

viitor i s aduc paginile în memorie înainte ca cererile de accesare sfie emise. Scopul pre-pagin rii este de a reduce consecin ele opera iilorde citire/scriere, programând ca acestea s se desf oare în paralel cuprocesarea desf urat de unitatea central .

politica de plasament: unde s fie puse paginile sau segmentele aduse înmemorie. Aceast politic este folosit în cazul segmentelor fpaginare. În caz contrar, o pagin nu conteaz unde este plasat(excep ia este reprezentat de arhitecturile NUMA, unde este avantajosca o pagin s fie stocat cât mai aproape de procesorul care o va folosi).

Page 121: Arhitectura Sistemelor de Calcul-ASC

249

politica de înlocuire: dac memoria este complet ocupat , când intervineo excep ie page fault, o pagin sau un segment de memorie trebuie s fieevacuate. Politicile de înlocuire stabilesc care pagini sau segmente s fieînlocuite.

Algoritmii de înlocuire intr în ac iune atunci când sistemul de operareprime te semnalul de page fault, prin care se în elege c pagina solicitat nu se aflîn memoria fizic , ci pe disc. La primirea acestui semnal, algoritmul de înlocuire apaginii are sarcina de a muta o pagin existent în memoria fizic pentru a face locpaginii care va fi copiat de pe disc.

Decizia corect asupra paginii care va fi mutat este crucial pentru viteza cucare va rula aplica ia. Deoarece lucrul cu discul este lent, este de preferat s serealizeze cât mai pu ine opera ii cu acesta. Cu cât un algoritm p streaz paginile decare va fi nevoie în memorie mai mult timp, cu atât acesta este mai eficient.

Obiectivul unei politici de înlocuire este de a determina o rat de apari ie aexcep iei page fault cât mai mic . Situa ia ideal ar fi ca o pagin care esteeliminat s fie o pagin care nu va mai fi folosit niciodat . Dac acest lucru nueste posibil, urm toarea op iune este ca pagina înlocuit s fie una care nu va mai fifolosit pentru o lung perioad de timp. Întrebarea care se pune este: ce factori potfi folosi i pentru a stabili ce pagin trebuie înlocuit ? Câ iva dintre ace ti factorisunt urm torii:

durata perioadei în care o pagin a fost situat în memorie: principiullocalit ii temporale enun faptul c o pagin aflat de mult timp înmemorie poate s nu mai fie necesar ;

cât de recent a fost apelat o pagin : acela i principiu al localit iitemporale enun faptul c probabilitatea ca o pagin care a fostapelat de curând s fie apelat din nou în viitorul apropiat este mare;

frecven a cu care a fost apelat o pagin : acest factor nu este la fel deimportant ca cei doi descri i mai sus, dar exist totu i o probabilitaterelativ ridicat ca o pagin care a fost des apelat s fie apelat din noudestul de curând;

proprietatea unei pagini de a fi fost modificat sau nu: dac to i factoriisunt egali, se alege a fi înlocuit o pagin care nu a fost modificat .Acest fapt nu va cauza o opera ie de citire/scriere;

eventualitatea ca un cadru s fie blocat: unele cadre sunt blocate –aceasta înseamn c paginile din interiorul lor nu pot fi înlocuite,aceast proprietate prevenind situa ia ca pagini din kernel sau dinbuffer-ele I/O sa fie evacuate.

Pa ii care sunt parcur i pentru tratarea excep iei page fault sunt:1. aplica ia acceseaz o pagin care nu este prezent în memoria virtual ;2. apare excep ia page fault;3. este aleas o pagin goal ;4. dac nu este g sita nicio pagin goal , este aleas una care urmeaz a

fi evacuat din memoria virtual , aceast alegere fiind f cut în bazaunor politici de înlocuire;

250

5. dac pagina a fost modificat , aceast pagin este întâi scris pe disc;6. pagina necesar este citit de pe disc;7. pagina este mapat spa iului de adrese al aplica iei;8. este reluat execu ia aplica iei.

Algoritmii de înlocuire pot fi locali sau globali. Când apare semnalul depage fault, algoritmii de înlocuire locali selecteaz pagini care apar in aceluia iproces, în timp ce algoritmii globali pot selecta orice pagin din memorie.

Algoritmul optim de înlocuire (Belady)

Algoritmul optim de înlocuire, cunoscut i sub numele de algoritmul luiBelady, este un algoritm de înlocuire ce func ioneaz dup urm torul principiul:când o pagin trebuie copiat de pe disc în memorie, sistemul de operare mutcon inutul paginii care va fi folosit în proces cel mai târziu, din memorie pe disc,

cându-i loc noii pagini. De exemplu, o pagin care nu va fi folosit înurm toarele 10 secunde va fi mutat din memorie pe disc înaintea unei pagini careva fi folosit în urm toarele 2 secunde. Acest algoritm este unul teoretic, el neputând fi implementat pe sistemelede operare deoarece nu se poate ti exact cât va dur pân când o pagin dinmemorie va fi folosit .

Not Recently Used (NRU)

Algoritmul NRU (nefolosit recent) este un procedeu de înlocuire apaginilor care au fost folosite recent. Acest algoritm func ioneaz pe urm torulprincipiu: când o pagin este referit , un bit de referin este setat la valoarea 1pentru acea pagin , aceasta este acum marcat ca fiind referit . Când o pagin estescris , un alt bit, de scriere a paginii, este setat la valoarea 1. La un anumit intervalde timp se reseteaz bi ii de referin a paginilor folosite recent. Sistemul de operare distinge 4 clase de pagini:

clasa 0: nereferite, nemodificate; clasa 1: nereferite, modificate; clasa 2: referite, nemodificate; clasa 3: referite, modificate.

First-In First-Out (FIFO)

Algoritmul de înlocuire FIFO (primul intrat, primul ie it) elimin paginacare a fost înc rcat prima, indiferent de momentul în care aceast pagin a fostreferit ultima dat . Fiecare pagin are un contor care este ini ial egal cu 0 pentrufiecare cadru de pagin . Pagina care tocmai a fost adus în memorie va aveavaloarea contorului egal mereu cu 0, urm toarea va avea valoarea 1 (înainte capagina cu indexul 0 s fie adus în memorie pagina aceasta avea contorul egal cuzero, dar a fost incrementat cu 1) .a.m.d. Practic, se creeaz un fenomen deîmb trânire a paginilor, cea mai “tân ” pagin având contorul cu valoarea 0.Când o pagin trebuie eliminat , se va alege mereu cea cu contorul cel mai mare.

Page 122: Arhitectura Sistemelor de Calcul-ASC

251

Algoritmul FIFO este foarte ieftin, îns are performan e slabe comparativcu al i algoritmi. Din aceast cauz este rar folosit. Un exemplu de sistem deoperare care folose te algoritmul FIFO este VAX/VMS.

Second Chance (SC)

Second Chance (a doua ans ) este un algoritm de înlocuire a paginilorinspirat din FIFO, dar care are performan e mult mai bune decât acesta din urm ,diferen a de pre fiind una foarte mic . Func ioneaz verificând pagina cu contorulavând cea mai mare valoare (cea mai b trân pagin ), dar în loc de a o extrage caîn algoritmul FIFO, Second Chance îi acord o a doua ans paginii verificând dacare sau nu fixat bitul de referin . Dac acesta nu este setat, algoritmul func ioneazca i FIFO în continuare, mutând pagina din memorie. Dac bitul de referin estesetat, atunci contorul paginii este resetat la valoarea 0, pagina fiind practic inseratdin nou în coad ca i cum ar fi o pagin nou .

Clock (C)

Clock este un algoritm cu performan e mai bune decât Second Change,care merge tot pe principiul FIFO. La fel ca i Second Change, Clock folose te bi ide referin pentru a da o “a doua ans ” paginii. Îmbun irea adus de Clockconst în faptul c nu mai este nevoit s „împing ” paginile în coad , algoritmulfolosind un pointer (indicator) i un sistem circulat al paginilor în loc de o coad .Pointer-ul arat care pagin este cea mai veche i poate fi înlocuit

Least Recently Used (LRU)

Algoritmul Least Recently Used (LRU) – cel mai pu in frecvent utilizatpagin , de i similar în terminologie cu NRU, difer prin faptul c LRU urm re tepaginile într-o perioad scurt de timp, în timp ce NRU urm re te paginile într-uninterval de ceas. LRU func ioneaz pe ideea c paginile folosite cel mai mult întrecutul apropiat vor fi cel mai probabil folosite i în viitorul apropiat, în cadrulurm toarelor câtorva instruc iuni. De i în teorie LRU se descurc foarte bine,acesta este foarte scump de implementat. Exist câteva implement ri ale LRU careîncearc s reduc costul acestuia dar s men in în acela i timp performan eleridicate. Cea mai costisitoare variant a LRU este cea de tip coad . Aceasta implicrealizarea unei liste cu toate paginile din memorie. La sfâr itul listei se afl cea maipu in utilizat recent pagin iar în vârful listei se afl cea mai des recent utilizatpagin . Intr rile din list trebuie rearanjate la fiecare accesare a listei, ceea ce faceaceast metod foarte lent . O alt metod are nevoie de suport hardware i func ioneaz pe baza unuicounter (num tor). De fiecare dat când o pagin este accesat prime te ovaloarea egal cu a counter-ului la momentul acces rii. Când o pagin trebuiemutat sistemul de operare selecteaz pagina cu counter-ul cel mai mic i o mut .Costul implement rii acestei metode este unul foarte ridicat datorit tehnologieinecesare realiz rii counter-ului.

252

Din cauza costurilor mari se folosesc de obicei algoritmii similari cu LRU,care ofer o implementare mai ieftin . În unele situa ii, LRU e ueaz lamentabil. De exemplu, în cazul folosiriiciclurilor care se întind pe mai multe pagini. În aceste cazuri, algoritmul MRU(Most Recently Used) este mult mai eficient. Majoritatea implement rilor LRUîncearc s detecteze aceste cicluri i s le trateze corespunz tor cu algoritmulMRU. Variante ale LRU sunt:

LRU-K, cunoscut i sub numele de LRU-2, LRU-1 fiind identic cu LRU; ARC.

Random (R)

Algoritmul de tip Random înlocuie te aleator o pagin din memorie cu unade pe disc. Acest procedeu elimin costurile suplimentare legate de realizarea unuisistem de monitorizare a referin elor c tre o pagin . De obicei, are rezultate maibune decât FIFO i în cazul ciclurilor chiar rezultate mai bune decât LRU, de i îngeneral în practic LRU se descurc mai bine. Sistemul de operare OS/390construit pentru mainframe-urile de la IBM folose te, de exemplu, algoritmul LRU,iar când performan ele acestuia scad trece la algoritmul Random.

Not Frequently Used (NFU)

Algoritmul NFU (pagini nefolosite frecvent) genereaz mai pu ine semnalede tip eroare de pagin (page fault) decât algoritmul LRU când tabelul de paginicon ine mul i pointer-i cu valori nule. Acest algoritm folose te un counter(num tor), fiecare pagin având un astfel de counter de sine st tor. La fiecareinterval de ceas toate paginile referite în acel interval vor avea counter-ulincrementat cu 1. Astfel, cu ajutorul counter-ului se poate determina cât de frecventa fost folosit o anumit pagin . Pagina cu valoarea cea mai mic a counter-ului vafi selectat pentru a fi mutat pe disc. Viteza acestui algoritm este mic datoritnum torului.

Aging (A)

Algoritmul Aging (îmb trânire) este o versiune îmbun it a NFU, avândo vitez de lucru mult mai mare. Modific rile care îl fac s in cont i de factorul„interval de timp”. În loc ca doar s incrementeze contoarele paginilor apelate,nef când nici o discriminare din punct de vedere al intervalului de timp în carenum rul de apeluri a contribuit la contorul de frecven , contorul de apel al uneipagini este întâi deplasat c tre dreapta (împ it la 2), înainte ca bitul de referin sfie ad ugat în partea stâng a num rului binar. De exemplu, dac o pagin are bi iide referin : 1, 0, 0, 1, 1, 0 cu 6 perioade de ceas înainte, contorul de referin vaar ta în modul urm tor: 10000000, 01000000, 00100000, 10010000, 11001000,01100100. Dup cum se poate observa, apelurile mai apropiate de momentulprezent au un impact mai mare decât apelurile care au avut loc mai demult. Aceastaasigur faptul c paginile care au fost apelate mai pu in, dar mai recent, s aib o

Page 123: Arhitectura Sistemelor de Calcul-ASC

253

prioritate mai mare decât paginile care au fost apelate mai mult, dar în trecut. Înacest fel, când o pagin trebuie s fie înlocuit , vor fi alese paginile cu contorul celmai sc zut.

Observa ie. Algoritmul Aging difer de algoritmul LRU, în sensul în carepoate ine eviden a apelurilor în ultimele 16/32/64 intervale de timp (depinzând denum rul de bi i pe care poate lucra procesorul). În consecin , se poate spune cmodul în care au decurs apelurile în memorie în ultimele 16 intervale de ceas estesuficient pentru a lua o decizie corect asupra c rei pagini trebuie înlocuite.

adar, algoritmul Aging poate oferi performan e foarte apropiate de cele alealgoritmului optim (Belady), la un pre moderat.

Algoritmul Working Set

Fig. 6.5. Dimensiunea setului de pagini utilizate de ultimele k apeluri de memorie în func iede timp (t).

Este un algoritm cu grad mare de generalitate. Working Set reprezint setulde pagini utilizate de ultimele k apeluri de memorie, iar func ia w(k,t) estedimensiunea acestui set la momentul de timp t.

Compara ie între algoritmi

În figura 6.6 este reprezentat un grafic care red comparativ performan a(raportat la num rul de excep ii page fault ap rute la 1000 de referin e) în func iede num rul de cadre apelate, pentru 4 dintre algoritmi: FIFO, Clock, optim i LRU.

Fig. 6.6. Compara ie între algoritmi.

254

6.2 Conceptul de segmentare

Fie, de exemplu, un compilator care poate avea mai multe tabele,construite pe m sur ce decurge compilarea, incluzând:

tabela de simboluri, con inând numele i atributele variabilelor; textul surs , memorat pentru tip rirea unui listing; o tabel cu toate constantele întregi i în virgul mobil folosite; arborele de analiz sintactic a programului; stiva folosit pentru apelurile de func ii ale compilatorului.

Se analizeaz ce se întâmpl dac un program are un num r deosebit demare de variabile. Por iunea din spa iul de adrese alocat pentru tabela desimboluri se va umple, chiar dac mai este suficient spa iu în celelalte tabele.Compilatorul ar putea, fire te, s afi eze un mesaj prin care s anun eimposibilitatea continu rii compil rii din cauza num rului mare de variabile, lucrucare nu este corect atunci când mai exist spa iu nefolosit în celelalte tabele. O solu ie imediat este de a furniza mai multe spa ii de adreseindependente, numite segmente. Fiecare segment const dintr-o secven liniar deadrese, de la valoarea 0 la valoarea maxim . Lungimea fiec rui segment poate fioricât de mare între 0 i valoarea maxim . Segmente diferite pot s aib , i, deregul , au lungimi diferite. Mai mult chiar, lungimea unui segment se poatemodifica în timpul execu iei. Lungimea unui segment de stiv poate cre te ori decâte ori se pune ceva în stiv i poate sc dea ori de câte ori se ia ceva din stiv . Deoarece fiecare segment reprezint un spa iu de adrese separat, segmentediferite vor cre te i vor sc dea independent, f s se influen eze reciproc. Dac ostiv dintr-un anumit segment are nevoie de un spa iu suplimentar pentru a cre te,îl poate avea, neexistând nimic peste care s se suprapun . Evident, un segment sepoate umple, dar deoarece segmentele sunt de obicei mari, aceast situa ie estedeosebit de rar . Pentru a preciza o adres în aceast memorie segmentat saubidimensional , programul trebuie s furnizeze o adres cu dou componente: unnum r de segment i o adres în cadrul segmentului. Un segment este, deci, o entitate logic unic de care programatorul estecon tient i pe care o folose te ca atare. Un segment poate con ine:

procedur , un vector, o stiv , o colec ie de variabile scalare.

Observa ie. În general, un segment nu con ine elemente de tip diferit. Segmentarea permite i partajarea de date sau cod între diferite programe.Dac un calculator are mai multe programe care ruleaz în paralel i care folosescanumite proceduri de bibliotec , ar fi o risip de memorie dac fiecare program aravea copia sa proprie. Segmentele pot avea diferite niveluri de protec ie:

Page 124: Arhitectura Sistemelor de Calcul-ASC

255

un segment procedur poate fi marcat ca accesibil doar pentru execu ie,interzicând accesul pentru citirea din sau scrierea în el;

un segment care con ine un vector de numere în virgul mobil poate fimarcat ca accesibil pentru citire/scriere, dar nu pentru execu ie, oriceîncercare de a fi executat fiind interceptat (o astfel de protec ie ajut deobicei la depistarea erorilor de programare).

Exemplu. Procesorul 80286 utilizeaz 16 linii de adresare, putând slucreze fie în modul real, ceea ce înseamn c func ioneaz cu un spa iu deadresare liniar de 1 MB, fie în modul protejat. Pentru procesorul 80386, în modulde lucru protejat pot fi adresate 16 K segmente, fie de 64 KB (286), fie de 4 GB(386) fiecare. Spre deosebire de cazul lui 80286, registrele segment pentru 80386 nu maispecific adresa unui segment, ci indic o intrare într-unul din cele dou tabele deadrese în care se afl zone ce con in descriptorii segmentului. Memoria virtual este gestionat cu ajutorul a dou tabele:

1. LDT (Local Descriptor Table) de 8 K intr ri fiecare;2. GDT (Global Descriptor Table).

Fiecare program are propriul s u tabel LDT, în timp ce tabelul GDT esteutilizat în comun de toate programele prin intermediul sistemului de operare. LDT descrie segmentele locale ale fiec rui program, cum ar fi cele de cod,date, stiv etc., în timp ce GDT descrie segmentele utilizate de sistemul de operare. Registrul segment obi nuit este înlocuit în acest caz de un registru selectorpe 16 bi i, care con ine urm toarele informa ii (fig. 6.7).

Fig. 6.7. Informa iile con inute în registrul selector.

Descriptorul este format din 4 octe i (fig. 6.8).

Fig. 6.8. Structura descriptorului.

index 0/1

13 1 2

num rul de intr ri într-unul dintablourile GDT i LDT

GDTsau

LDT

0 ÷ 3 nivelul deprotec ie alsegmentului

respectiv

32 bi i

adresa de baz m rime adresa de segment 24 ÷ 31 G D 0 X segment 16 ÷ 19 P Pr Tip baz 16 ÷ 23

adresa de baz segment 0 ÷ 15 m rimea segmentului 0 ÷ 15

256

Semnifica iile nota iilor folosite sunt: G = bit care indic dac m rimea segmentului este dat în octe i sau în pagini:

G = 0 – f paginare, m rimea este dat în octe i i rezultdimensiunea maxim de 8 MB;

G = 1 – m rimea este dat în pagini de câte 4 octe i i rezultdimensiunea maxim de 4 MB;

D = indicator al tipului de cuvinte cu care se lucreaz în interiorul segmentului:D = 0 – cuvinte de 16 bi i; D = 1 – cuvinte de 32 bi i;

P = bit care indic prezen a în memoria principal (MP): P = 0 – segmentul nu se g se te în MP; P = 1 – segmentul se g se te în MP;

Pr = 2 bi i care indic nivelul de prioritate în execu ie al programului dincare face parte segmentul (între 0 i 3);

Tip = 5 bi i care indic tipul segmentului (cod, date, stiv , extra segmentetc.) i nivelul s u de protec ie în modul protejat.

Acest tabel de descriptori folose te la ob inerea adresei fizice (fig. 6.9),respectând urm torul algoritm:

1. se pleac de la registrul selector i se ajunge într-unul din tabelele undesesc descriptorii de segment (care joac rolul tabelei de paginare):

adres , m rime i alte câmpuri;2. folosind aceast informa ie, sistemul de operare utilizeaz o zon MSB

pentru adres la care adaug deplasamentul din program;3. rezult 32 de bi i (o adres liniar folosit ca adres fizic ).

Fig. 6.9. Utilizarea tabelului de descriptori în ob inerea adresei fizice.

Adresa liniar poate fi interpretat în dou feluri:a) dac nu exist paginare, adresa liniar este interpretat ca adres fizic ,

spunându-se în acest caz c se folose te o schem de memorie cu segmentare pur ; Observa ie. Segmentele se pot suprapune spa iul de adresare liniar dacprogramatorul nu ine o eviden clar a lor la scrierea programului. Ar fi fost preacomplicat pentru sistemul de operare s verifice dac aceste segmente sunt disjuncte.

adresa liniar – 32 bi i

Selector

Adresa de baz

rimea

Altecâmpuri

MSB LSB

Deplasament

LDT(GDT)

Page 125: Arhitectura Sistemelor de Calcul-ASC

257

Fig. 6.10. Separarea nivelurilor de tabele.

b) dac exist paginare, adresa liniar este folosit pentru tabelele depaginare (înc o treapt ) i de abia apoi ajung la adresa fizic . A adar, dac existpaginare adresa liniar este interpretat ca adres virtual (adres din spa iul fizicadresabil) i transformat în adres fizic (real ) prin intermediul tabelei de pagini(vezi figura 6.10). Deoarece un segment poate avea 1 M de pagini de 4 K, metodade paginare la microprocesorul 80386 i urm toarele cuprinde dou niveluri detabele pentru a reduce din aceste tabele. Observa ie. Pot exista 1024 de tabele de tip Page. Nivelurile de protec ie (03) sunt reprezentate în figura 6.11.

Fig. 6.11. Nivelurile de protec ie.

1024linii

1024linii

0/1 0/1

121010

Dir Page Deplasament

MSB Deplasament

Adresa deintrare întabelulPage

258

Dac toate registrele selector trimit c tre un acela i descriptor (aflat înLDT sau în GDT) cu adresa de baz 0 i m rimea maxim (1 M sau 4 G), se vaob ine un sistem numit cu paginare pur , care face adresare liniar pe 32 de bi i. În concluzie, procesoarele Intel începând cu 80386 asigur trei scheme defolosire a memoriei:

1. cu segmentare pur ;2. cu paginare pur ;3. superpozi ie între segmentare i paginare (paginare segmentat ).

Exemplu. Paginarea segmentelor folose te avantajul elimin rii fragment riiexterne creat de c tre paginare (pentru alocare poate fi folosit oricare dintre cadreledisponibile). Deosebirea dintre aceast metod i segmentare este aceea c intrareatabelei de segment nu con ine adresa de baz a segmentului ci adresa de baz a uneitabele de pagin asociat acestui segment.

Segmentul este format dintr-un num r de pagini de aceea i dimensiune.Deplasarea în cadrul segmentului se exprim prin num r de pagin i deplasare înpagin . Cu num rul de pagin folosit ca index în tabela de pagin a segmentului, seob ine num rul cadrului care, în final, se combin cu deplasarea în pagin iformeaz adresa fizic (vezi figura 6.12). Deoarece ultima pagin a fiec ruisegment nu este întotdeauna complet ocupat , metoda introduce totu i o cantitateredus de fragmentare extern (în realitate, atunci când se lucreaz cu tabele desegment de dimensiuni mari, mecanismul este ceva mai complicat).

Fig. 6.12. Exemplu de paginare segmentat .

Page 126: Arhitectura Sistemelor de Calcul-ASC

259

6.2.1 Implementarea segment rii

Implementarea segment rii difer într-un mod esen ial de paginare:paginile au dimensiuni fixe, pe când segmentele nu. Exemplu. Se consider o memorie fizic care con ine ini ial 5 segmente(fig. 6.12.a). Se analizeaz ce se întâmpl dac segmentul 1 este eliminat i înlocuitcu segmentul 7, care este mai mic.

Se ob ine configura ia de memorie prezentat în figura 6.12.b. Întresegmentul 7 i segmentul 2 exist o zon nefolosit , adic o gaur . Apoi segmentul4 este înlocuit cu segmentul 5, ca în figura 6.12.c, iar segmentul 3 este înlocuit desegmentul 6, ca în figura 6.10.d. Dup ce sistemul ruleaz o vreme, memoria va fiîmp it într-un num r de por iuni, unele con inând segmente, unele g uri. Acestfenomen se nume te fragmentare extern . Se analizeaz ce s-ar întâmpla dac programul ar referi segmentul 3 dupce a ap rut fragmentarea extern , ca în figura 6.10., d. Spa iul total disponibil în

uri este de 10 K, mai mult decât suficient pentru segmentul 3, dar deoareceurile sunt distribuite în buc ele mici, nefolositoare, segmentul 3 pur i simplu nu

poate fi înc rcat. Pentru a o face totu i, trebuie mai întâi eliminat din memorie unalt segment.

6.2.2 Algoritmi de înlocuire a segmentelor

I. O modalitate de a elimina fragmentarea extern este compactarea: ori decâte ori apare o gaur , toate segmentele de dup ea vor fi mutate cât mai aproape deloca ia de memorie 0, eliminând acea gaur i l sând o singur gaur , mare, lasfâr itul memoriei. Alternativ, se poate a tepta ca fragmentarea extern s devinserioas (adic mai mult de un anume procent din memorie este pierdut în g uri),înainte de a se face compactarea (eliminarea g urilor).

Figura 6.10.e prezint memoria din figura 6.10.d dup compactare(defragmentare). Scopul compact rii este colectarea tuturor g urilor mici i inutilizabileîntr-una singur , mare, în care pot fi plasate unul sau mai multe segmente. Compactareaare dezavantajul evident al pierderii de timp cu realizarea ei. Compactarea dup apari iafiec rei g uri este de obicei mult prea cronofag . Dac timpul necesar compact rii memoriei este inacceptabil de mare, estenevoie de un algoritm care s stabileasc ce gaur se va folosi pentru un anumitsegment. Aceast gestiune a g urilor necesit men inerea unei liste cu adresele idimensiunile g urilor. II. Un algoritm des întâlnit, numit best fit (cea mai bun potrivire) alegecea mai mic gaur în care segmentul dorit va înc pea. Ideea este de a g si potriviriîntre segmente i g uri, evitându-se astfel preluarea unei por iuni dintr-o gaurmare, care ar putea fi necesar ulterior pentru un segment mare. III. Alt algoritm frecvent utilizat este first fit (prima potrivire), careparcurge circular lista de g uri i alege prima gaur suficient de mare pentru a

stra segmentul.

260

Segment 4(7k)

Segment 4(7k)

Gaur(3 k)

Segment 3(8 k)

Segment 3(8 k)

Segment 5(4 k)

Segment 2(5 k)

Segm. 1 Segm. 7

Segment 2(5 k)

Segm. 4 Segm. 5

Segment 3(8 k)

Segment 1(8 k)

Gaur(3 k)

Segment 2(5 k)

Segment 0(4 k)

Segment 7(5 k)

Gaur(3 k)

Segment 0(4 k)

Segment 7(5 k)

(a) (b) (c) Segment 0(4 k)

Gaur(3 k)

Gaur unic(10 k)

Segment 5(4 k)

Segment 5(4 k)

Segm. 3 Segm. 6

Gaur(4 k)

Compactare

Segment 6(4 k)

Segment 6(4 k)

Segment 2(5 k)

Segment 2(5 k)

Segment 7(5 k)

Gaur(4 k)

Segment 0(4 k)

Segment 7(5 k)

Segment 0(4 k)(d) (e)

Fig. 6.12. Exemplu de implementare a segment rii.

Procedând astfel, este evident c timpul de c utare necesar este mai micdecât în cazul c ut rii în întreaga list a celei mai bune potriviri, ceea ce reprezintun avantaj al acestui algoritm. Ace ti ultimi doi algoritmi au tendin a de a reducedimensiunea medie a g urilor. Ori de câte ori un segment este plasat într-o gaur maimare decât dimensiunea sa, ceea ce se întâmpl aproape întotdeauna (potrivirile exactefiind rare), gaura este divizat în dou p i. O parte este ocupat de segment, cealaltdevine noua gaur , care bineîn eles este mai mic decât gaura ini ial . Dac nu exist un proces de compensare care s creeze g uri mai mari prinunificarea celor mici, ace ti ultimi doi algoritmi vor duce în cele din urm , laumplerea memoriei cu g uri mici, nefolositoare. În concluzie, ace ti algoritmitrebuie utiliza i în conjunc ie cu compactarea, aplicat rar.

Page 127: Arhitectura Sistemelor de Calcul-ASC

261

6.3. Exemple de gestionare a memoriei

Se define te gestionarea memoriei ca fiind translatarea adreselor virtuale(folosite de programator) în adrese fizice identificabile în structura fizic , concret ,a calculatorului. Primul reprezentant al familiei Intel care folose te acest mecanismeste 80286. De remarcat este faptul c Intel 80286 i succesorii s i au mecanismulde gestionare implementat pe cip. Gestionarea memoriei bazate pe principiile segment rii încurajeazmultiprocesarea, protec ia adreselor, protec ia proceselor a c ror izolare rezult înmod natural din definirea segmentelor i atributelor, precum i interschimbarealocului proceselor între memoria intern i cea extern .

Tabelul 6.2Compara ie între paginare i segmentare

Considera ie Paginare Segmentare

Programatorul tie de existen a sa? Nu DaCâte spa ii liniare de adres exist ? 1 Mai multe

Spa iul de adrese virtuale poate dep idimensiunea memoriei?

Da Da

Tabelele de dimensiune variabil potfi gestionate u or?

Nu Da

De ce a fost inventat tehnica? Pentru simulareamemoriilor mari

Pentru a furniza maimulte spa ii de adrese

Paginarea introduce i o nou no iune legat de adrese: adresa liniar .Acest tip de adres rezult în urma translat rii adresei virtuale i urmeaz , la rândulei, s fie translatat în adresa fizic . În cazul familiei Intel, adresa liniar coincidecu cea fizic dac G = 0 (vezi figura 6.8). Se impun câteva observa ii preliminare:

pentru familia Intel, mecanismul pagin rii se aplic numai începând de la80386 i apoi la descenden ii familiei (80486, familia Pentium). PentruIntel 386/486 paginarea este op ional , în func ie de bitul de granularitatedin descriptorii de segmente;

adresa virtual , alc tuit din selector i adresa efectiv , este translatat înadresa liniar i apoi în cea fizic . La fel ca adresa fizic , adresa liniar(AL) este de 32 de bi i;

Intel 386/486 adaug modurilor de adresare cunoscute de la ascenden iifamiliei un nou tip: adresarea la care, al turi de baz i deplasament,exist un index care poate fi înmul it cu un factor de scal 1, 2, 4 sau 8;

dimensiunea maxim a unui segment în memoria virtual se ob ine numaipentru G = 1. În acest caz, un segment poate avea:

220 pagini 212 B/pagin = 232 B = 4 GB.

262

6.3.1. Memoria virtual la Multics

Sistemul de operare Multics rula pe ma inile Honeywell 6000 i pe urma iiacesteia si asigura fiec rui program o memorie de pân la 218 segmente, fiecaredintre ele putând avea o lungime de pân la 65.536 cuvinte (de 36 bi i).

Pentru a combina avantajele pagin rii (dimensiunea uniform a paginii sineobligativatea inerii în memorie a unui segment întreg dac numai o parte dinacesta este folosit) cu avantajele segment rii (u urin a în programare, modularitate,protec ia si partajarea), sistemul de operare Multics trateaz fiecare segment ca pe omemorie virtual i astfel fiecare segment se pagineaz .

Fiecare program Multics are un tabel de segmente, cu câte un descriptorpentru fiecare segment. Deoarece exist mai bine de un sfert de milion de intr ri întabel, acesta este el însu i un segment i este paginat la rândul lui. Descriptorul desegment con ine o indica ie care atest , sau nu, apartenen a segmentului lamemoria principal . Dac vreo parte din segment se afl în memorie, atunci seconsider c segmentul i tabelul s u de pagini se afl în memorie. Daca segmentuleste în memorie, descriptorul s u con ine un pointer de 18 bi i c tre tabelul s u depagini dup cum se poate vedea din figura 6.13.

Fig. 6.13. Descriptorul de segment i indicarea tabelelor de pagini.

Deoarece adresele fizice au 24 de bi i i paginile sunt aliniate la limite de 64de octe i sunt necesari numai 18 bi i în descriptor pentru a stoca adresa tabelului depagini. Descriptorul con ine de asemenea dimensiunea segmentului, bi ii deprotec ie i alte câteva elemente. În figura 6.14 se poate observa un descriptor desegment Multics.

Adresa segmentului în memoria secundar nu este în descriptorul desegment, ci într-un alt tabel care este folosit de agentul de tratare a defectelor alsegmentului.

Page 128: Arhitectura Sistemelor de Calcul-ASC

263

Fig. 6.14. Ilustrarea unui descriptor de sistem.

Trebuie specificat c fiecare segment este un spa iu de adrese obi nuit iastfel i paginarea se face la fel ca la paginarea memoriei nesegmentate.Dimensiunea normal a paginii este de 1024 de cuvinte. O observa ie pertinenteste c exist segmente nepaginate sau paginate în unit i de 64 de cuvinte deobicei segmente mici i astfel se economise te memorie fizic .

O adres în Multics const din dou p i: segmentul i adresa în cadrulsegmentului. Adresa din cadrul segmentului este mai departe divizat între un num rde pagin i un cuvânt în cadrul paginii. În figura 6.15 se observ aceast divizare.

Fig. 6.15. O adres virtual Multics de 34 de bi i.

Când are loc o referire la memorie, se urm re te urm torul algoritm:1. Num rul de segment este folosit pentru a g si descriptorul de segment;2. Se verific dac tabelul de pagini al segmentului se afl în memorie. Dac

tabelul de pagini este în memorie, i se stabile te loca ia. Dac nu este în memorie, areloc un defect de segment. Dac are loc o înc lcare a protec iei, se genereaz o capcan .

3. Se examineaz intrarea din tabelul de pagini pentru pagina virtual cerut .Dac pagina nu este în memorie, are loc un defect de pagin . Dac este înmemorie, adresa de memorie principal a începutului paginii este extras dinintrarea tabelului de pagini.

4. Se adaug deplasarea la originea paginii pentru a furniza adresa dememorie principal la care se afl cuvântul.

5. Are loc citirea sau scrierea în memorie (vezi figura 6.16).

264

Fig. 6.16. Conversia unei adrese Multics.

Pentru simplitate, a fost omis faptul c însu i descriptorul de segment estepaginat. De fapt, este folosit un registru (registrul de baz al segmentului) pentru alocaliza descriptorul tabelului de pagini al segmentului, care la rândul s u indicspre paginile descriptorului de segment. Îndat ce este g sit descriptorul pentrusegmentul dorit, se continu adresarea dup cum este ar tat în figura 6.17.

Dac algoritmul precedent ar fi fost rulat de c tre sistemul de operare la fiecareinstruc iune, evident programul nu ar fi rulat foarte rapid. Pentru a nu exista aceastproblem hardul Multics con ine o tabel TLB de vitez mare pe 16 cuvinte, carepoate c uta în paralel o anumit cheie prin toate intr rile sale. Aceasta este ilustratîn figura 6. Când o adres este prezentat calculatorului, hardul de adresare verificîntâi dac adresa virtual se afl în TLB. Dac adresa se afl în TLB, num rulcadrului de pagin se ob ine direct din TLB i se formeaz adresa efectiv acuvântului referit f a se consulta descriptorul de segment sau tabelul de pagini.

Fig. 6.17. Tabela TLB Multics simplificat .

Page 129: Arhitectura Sistemelor de Calcul-ASC

265

Adresele celor 16 cele mai recent referite pagini sunt salvate în TLB.Programele ale c ror seturi de lucru sunt mai mici decât dimensiunea tabelei TLBvor ajunge la echilibru cu adresele întregului set de lucru din TLB i prin urmarevor rula eficient. Dac pagina nu este în TLB, descriptorul i tabelele de pagini suntreferite efectiv pentru a se g si adresa cadrului de pagin i tabela TLB esteactualizat prin includerea acestei pagini, fiind eliminat pagina utilizat cel maipu in recent. Câmpul de vârst ine eviden a intr rilor utilizate cel mai pu in recent.Tabela TLB este folosit pentru a compara în paralel segmentele i numerele depagin ale tuturor intr rilor.

6.3.2. Memoria virtual la Intel

Din multe puncte de vedere, memoria virtual de la Pentium se aseam cucea de la MULTICS, incluzând prezen a atât a segment rii cât i a pagin rii. Întimp ce MULTICS are 256K segmente independente, fiecare de pân la 64Kcuvinte de 36 de bi i, Pentium are 16K segmente independente, fiecare inând pânla 1 miliard de cuvinte de 32 de bi i. Cu toate c sunt mai pu ine segmente,dimensiunea mai mare a segmentului este de departe mult mai important , întrucâtpu ine programe au nevoie de mai mult de 1000 de segmente i multe programenecesit segmente mari.

Inima sistemului de memorie virtual de Ia Pentium este format din doutabele: LDT (tabela descriptorilor locali) i GDT (tabela descriptorilor globali).Fiecare program are propria sa tabel LDT, îns exist o singur copie a tabeleiGDT, partajat de toate programele de pe calculator. Tabela LDT descrie segmentelelocale fiec rui program, cuprinzând codul, datele, stiva i a a mai departe, în timp ceGDT descrie segmentele sistem, inclusiv cele ale sistemului de operare.

Pentru a accesa un segment, un program de pe Pentium încarc mai întâi unselector pentru segmentul respectiv, într-unul din cele 6 registre de segment alema inii. În timpul execu iei, CS p streaz selectorul pentru segmentul de cod i DSpentru cel de date. Celelalte registre de segment sunt mai pu in importante. Fiecareselector este un num r pe 16 bi i, a a cum se vede în figura 6.18.

Fig. 6.18. Selector Pentium.

266

Unul dintre bi ii selectorului indic dac este vorba despre un segment localsau global (adic segmentul este în LDT sau în GDT). Al i treisprezece bi iprecizeaz num rul intr rii în LDT sau GDT, astfel încât aceste tabele nu pot p stradecât 8K descriptori de segmente. Ceilal i doi bi i se refer la protec ie i vor fidiscuta i mai târziu. Descriptorul 0 este invalid. El poate fi îns înc rcat într-unuldin registrele de segment, pentru a indica faptul c registrul segment nu estemomentan disponibil. Folosirea lui declan eaz o capcan .

În momentul în care un selector este înc rcat într-un registru de segment,descriptorul corespunz tor este preluat din LDT sau GDT i memorat în registreleinterne ale MMU, pentru a putea fi accesat mai rapid. Un descriptor const din 8octe i, cuprinzând pe lâng alte informa ii i adresa de baz a segmentului, a a cumse observ în figura 6.19.

Fig. 6.19. Descriptor de segment de cod pentru Pentium.

Formatul selectorului a fost ales în mod inteligent, pentru a u ura localizareadescriptorului. Se selecteaz mai întâi fie LDT, fie GDT, în func ie de bitul 2 dinselector. Apoi selectorul este copiat într-un registru de lucru (scratch) intern alMMU, iar cei mai pu in semnificativi 3 bi i sunt seta i la 0. în final, adresa LDTsau GDT este adunat , ob inându-se un pointer direct spre descriptor. De exemplu,selectorul 72 se refer la intrarea 9 în GDT, care se afl la adresa GDT+72.

Sunt prezenta i pa ii prin care o pereche (selector, deplasare) este convertitîntr-o adres fizic . De îndat ce microprogramul tie ce registru de segment estefolosit, el poate g si descriptorul complet al segmentului corespunz tor selectoruluiîn registrele sale interne. Dac segmentul nu exist (selector 0) sau nu estemomentan în memorie, se declan eaz o capcan .

Apoi se verific dac deplasarea este dincolo de grani a segmentului, caz încare se declan eaz alt capcan . Logic, în descriptor ar trebui s existe un câmp de32 de bi i, pentru a preciza dimensiunea segmentului, dar deoarece sunt disponibilidoar 20 de bi i, trebuie folosit o alt metod .

Page 130: Arhitectura Sistemelor de Calcul-ASC

267

Dac în câmpul G (granularitate) este valoarea 0, câmpul limit (Limit)reprezint atunci dimensiunea exact a segmentului, pân la valori de 1MB. Dacvaloarea este 1, atunci câmpul limit con ine dimensiunea segmentului în pagini inu în octe i. Dimensiunea paginii la Pentium este fixat la 4KB, astfel încât 20 debi i ajung pentru segmente de pân la 212 octe i.

Presupunând c segmentul este în memorie i c deplasarea este corect ,Pentium adun apoi la deplasare câmpul baz (Base) de 32 de bi i din descriptor,pentru a forma ceea ce se nume te o adres liniar (linear address), a a cum sevede i în figura 6.20. Câmpul baz este divizat în trei componente i distribuit spredescriptor, pentru compatibilitate cu 286, care avea un câmp baz de doar 24 de bi i.Ca o consecin , câmpul baz permite fiec rui segment s înceap în orice loc dinspa iul liniar de adrese pe 32 de bi i.

Fig. 6.20. Conversia unui selector i a unei deplas ri într-o adres liniar .

Dac paginarea este dezactivat (printr-un bit într-un registru global decontrol), atunci adresa liniar este interpretat ca adres fizic i trimis sprememorie pentru citire sau scriere. De aceea, cu paginarea dezactivat are o schemde segmentare pur , adresa de baz a fiec rui segment aflându-se în descriptorulasociat. Segmentele se pot suprapune, din întâmplare, probabil deoarece ar fi preamare efortul i timpul pentru a verifica dac ele sunt sau nu disjuncte.

Pe de alt parte, dac paginarea este activat , adresa liniar este interpretatca adres virtual i pus în coresponden cu o adres fizic folosind tabele depagini. Singura complica ie ce poate ap rea este c o adres virtual pe 32 de bi i io pagin de 4K permit unui segment s con in 1 milion de pagini, astfel încât sefolose te o punere în coresponden pe dou niveluri, pentru a reduce dimensiuneatabelei de pagini pentru segmente mici.

Fiecare program în rulare are asociat un catalog de pagini (page directory),format din 1024 intr ri de 32 bi i. El este localizat la o adres memorat într-unregistru global. Fiecare intrare în acest catalog indic spre un tabel de pagini carecon ine de asemenea 1024 intr ri de 32 bi i Intr rile din tabelul de pagini indicspre cadrele de pagin .

Schema este prezentat în figura 6.22.

268

Fig. 6.21. Adresa liniar .

În figura 6.21 se prezint o adres liniar divizat în trei câmpuri: Dir(catalog), Pagin (page) i Deplasare (offset). Câmpul Dir este utilizat primul caindex în catalogul de pagini, pentru a localiza pointer-ul c tre tabelul de paginicorespunz tor. Apoi câmpul Pagin este folosit ca index în tabelul de pagini, pentrua afla adresa fizic a cadrului de pagin . Câmpul Deplasare este adunat la adresacadrului de pagin pentru a ob ine adresa fizic a octetului sau cuvântului adresat.

Intr rile în tabelul de pagini sunt de 32 de bi i fiecare, din care 20 de bi icon in un num r de cadru de pagin . Ceilal i bi i reprezint bi i pentru controlulaccesului i bi i pentru a indica modificarea regiunii, seta i de c tre hard pentrusistemul de operare, bi i de protec ie i al i bi i utilitari.

Fiecare tabel de pagini are 1024 de intr ri pentru cadre de pagin de 4K,astfel încât o singur tabel de pagini gestioneaz 4MB de memorie. Un segmentmai mic de 4M va avea un catalog de pagini cu o singur intrare, un pointer c tresingura i unica lui tabel de pagini. Astfel, consumul suplimentar de memorieindus de segmentele scurte este doar de dou pagini, în loc de milioane de paginidac s-ar fi folosit tabele de pagini pe un singur nivel.

Pentru a evita accesul repetat la memorie, Pentium, ca i Multics, are o mictabel TLB pentru a reg si repede cele mai recent folosite combina ii Dir-Pagin ia Ie pune în coresponden cu adresa fizic corespunz toare cadrului de pagin .Doar pentru acele combina ii care nu au fost folosite recent se urmeaz pa ii descri iîn figura 6.22. Atâta timp cât lipsurile TLB sunt rare, performan a este bun .

Fig. 6.22. Coresponden a între o adres liniar i o adres fizic .

Este important de men ionat c dac o anumit aplica ie nu necesitsegmentare, ci se mul ume te cu un spa iu de adresare unic de 32 de bi i, paginat,acest lucru se poate ob ine foarte u or. Toate registrele segment pot fi înc rcate cuaceea i valoare a selectorului, care are un descriptor cu baz = 0 i limit devaloare maxim permis . Deplasarea instruc iunii va fi adresa liniar , cu un singur

Page 131: Arhitectura Sistemelor de Calcul-ASC

269

spa iu de adrese folosit, adic paginare tradi ional . De fapt, toate sistemele deoperare pentru Pentium func ioneaz în acest mod. OS/2 a fost singurul care s-afolosit de toat puterea arhitecturii MMU de la Intel.

Proiectarea sistemului de memorie virtual la Intel Pentium, date fiindscopurile contradictorii de implementare a pagin rii pure, a segment rii pure i asegmentelor paginate, este un real succes. Faptul c s-a p strat compatibilitatea cu286 i c s-au reu it toate acestea într-un mod atât de eficient este un real succesdin punct de vedere al proiect rii.

6.3.3. Memoria virtual la Motorola

Din punct de vedere conceptual, utilizarea memoriei virtuale este mai simplla microprocesorul Motorola 68030, utilizând doar scheme de paginare pur . Cutoate acestea, datorit faptului c schemele Motorola folosesc un num r variabil deniveluri de tabelare (între 0 i 4), sistemul de operare ar avea de îndeplinit opera iidestul de elaborate, de aceea majoritatea sarcinilor de gestionare a memoriei suntpreluate de un controler de tip MMU (Memory Management Unit), care începândcu 68030, este integrat în aceea i capsul cu cipul care reprezint nucleul procesor.

Observa ie. La microprocesoarele Pentium exist unitatea de pagin (Page Unit).În locul împ irii fixe a adreselor liniare în zonele Dir, Page i Deplasare (vezi

figura 6.21), num rul zonelor de tabelare i num rul de bi i ai fiec rui nivel sunt specificateîn câmpurile unui registru global, denumit TCR (Translation Control Register).

12 4 3 2 11

Fig. 6.23. Structura adresei liniare la Motorola 68030.

C

ignora i A B C deplasament

X 10 7 0 6

4 bi i

MSB deplasament

B

8intr ri

16intr ri

A

32 bi i (adres liniar )

270

Adresa liniar va fi împ it conform figurii 6.23.Având în vedere c majoritatea programelor utilizeaz o memorie virtual

mult mai mic de 4 GB (232), în registrul TCR este prev zut i un câmp în care sepoate preciza num rul MSB al adresei la care se renun .

Exemplu. Prin intermediul TCR, se poate preciza c : 12 bi i MSB sunt ignora i; 4 bi i reprezint nivelul de tabelare A; 3 bi i reprezint nivelul de tabelare B; 2 bi i reprezint nivelul de tabelare C; 11 bi i reprezint deplasamentul (deplasament în pagin de 2 K).