Sunteți pe pagina 1din 131

10 ARHITECTURA SISTEMELOR DE CALCUL

Un calculator este o maúină capabilă de a rezolva probleme aplicând


1. INTRODUCERE instrucĠiuni definite în prealabil. Circuitele electronice ale fiecărui calculator nu pot
recunoaúte úi executa direct decât un număr limitat de instrucĠiuni. Ansamblul de
instrucĠiuni executate direct de un calculator formează un limbaj care permite
oamenilor 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Ġa
acestei probleme, ambele vizând construirea unui nou set de instrucĠiuni mai
Lucrarea de faĠă tratează aspecte funcĠionale, constructive úi relaĠionale ale practic de utilizat decât limbajul maúină. În ansamblu, aceste noi instrucĠiuni
blocurilor unui sistem de calcul numeric. AplicaĠiile derulate pe calculatoare sunt: formează un nou limbaj care va fi numit L2, în timp ce ansamblul instrucĠiunilor
 prelucrările de date; corespunzătoare limbajului maúină formează nivelul L1.
 prelucrările de informaĠii; Prima sarcină de executat a unui program scris în limbajul L2 este de a
 prelucrările de cunoútinĠe; înlocui fiecare instrucĠiune a programului cu instrucĠiunile corespunzătoare
 prelucrările inteligente (inteligenĠa artificială). limbajului L1 care îi sunt echivalente. Calculatorul va executa deci noul program în
limbajul L1 úi nu vechiul program care a fost scris în limbajul L2. Se poate spune
Fă 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 de
instrucĠiuni în limbajul L1 echivalent. Această tehnică, cu ajutorul căreia nu mai
este nevoie să se genereze un program echivalent în L1 care va examina úi executa
fiecare instrucĠiune din L2, poartă denumirea de interpretare.
Traducerea úi interpretarea se aseamăQă mult. În fiecare caz, toate
instrucĠiunile în L2 sunt convertite în final într-o suită echivalentă de instrucĠiuni
corespunzătoare lui L1. Dar trebuie notat că în fiecare caz al traducerii, programul
scris în L2 este mai întâi convertit într-un program scris în L1; apoi programul în
Fig. 1.1. Structura piramidală a tipurilor de prelucrări. L2 dispare úi programul în L1 va fi cel executat. În replică, interpretarea constă în
SpaĠiul datelor. Materialul prelucrat la baza piramidei este considerat un spaĠiu analizarea úi apoi executarea imediată a fiecărei instrucĠiuni din limbajul L2.
de date din care fac parte numere reprezentate în diverse formate. Datele prelucrate Aceste două metode sunt foarte utilizate în proporĠii aproximativ identice.
sunt considerate mutual independente în spaĠiul lor. SpaĠiul datelor este cel mai mare Pentru a simplifica lucrurile, este mai uúor de imaginat existenĠa unui
spaĠiu al obiectelor prelucrate cu sistemul de calcul, incluzând caractere, simboluri calculator virtual, al cărui limbaj maúină este L2. Dacă se poate construi această
úi/sau reprezentări multidimensionale ale acestora, numere în diverse formate. maúină la un preĠ rezonabil nu va mai fi nevoie de limbajul L1 úi nici de o maúină
SpaĠiul informaĠiilor. Termenul de informaĠie reprezintă o colecĠie de date capabilă să execute acest limbaj. Utilizatorii vor scrie tot mai simplu programele
legate între ele printr-o anumită relaĠie sau structură sintactică. El se prezintă ca un lor în limbajul L2 úi calculatorul va executa direct aceste programe.
subspaĠiu al spaĠiului de date. Prin sintaxă se înĠelege un set de reguli care
guvernează alcătuirea propoziĠiilor dintr-un limbaj.
SpaĠiul cunoútinĠelor. Formează un subspaĠiu în cadrul spaĠiului informaĠiilor. 1.1. Limbaje úi maúini virtuale
InformaĠiile sunt legate între ele printr-o structură semantică. Semantica reprezintă
un set de reguli care extrag înĠelesul propoziĠiilor dintr-un limbaj.
SpaĠiul prelucrărilor de tip inteligenĠă artificială. Lucrează cu baze de Limbajul úi maúina virtuală sunt într-o relaĠie foarte limitată. Orice maúină prin
cunoútinĠe, reguli de inferenĠă (raĠionament) sau cu alte mijloace specifice limbajul său formează un ansamblu de instrucĠiuni de bază pe care le poate executa. Se
domeniului de inteligenĠă artificială. Calculatoarele de astăzi au devenit suficient poate spune deci că o maúină defineúte un limbaj. Reciproc, un limbaj defineúte o
de rapide. Cu toate acestea, nici un calculator actual nu este un sistem inteligent maúinăúi, mai precis, un limbaj defineúte o maúină care poate executa toate programele
care gândeúte independent. scrise în acel limbaj. BineînĠeles, maúina definită printr-un limbaj oarecare poate fi
extraordinar de complexăúi cu un cost prohibitiv. Dar, cu toate acestea, ea poate exista.
Introducere 11 12 ARHITECTURA SISTEMELOR DE CALCUL

Un calculator alcătuit din n nivele poate fi văzut ca n maúini virtuale distincte, Nivelul 0, primul nivel care intră în alcătuirea unui calculator, poartă
fiecare maúină virtuală având propriul său limbaj. Programele scrise în limbajele L2, denumirea de nivel fizic. Obiectele utilizate la acest nivel sunt porĠi, care prin
L3, …, Ln trebuie să fie interpretate de un interpretor având un nivel mai mic sau să definiĠie pot fi privite ca niúte componente logice interconectate între ele. Fiecare
fie traduse într-un limbaj inferior. Programatorul care are programele scrise pentru o poartă dispune de una sau mai multe intrări logice úi întoarce ca rezultat o funcĠie
maúină virtuală de nivelul n nu este interesat de compilatoare úi nici de simplă obĠinută conform semnificaĠiei de la intrare (de exemplu ùI, SAU, NU). O
interpretoarele aflate la un nivel inferior. Pentru acesta nu este interesant de útiut în poartă este realizată cu ajutorul tranzistorilor. Acest nivel execută instrucĠiunile
acest caz dacă programele sunt traduse într-un limbaj cunoscut de calculator sau dacă limbajului microprogramat (următorul nivel ierarhic), care acĠionează asupra
ele sunt executate direct de către circuitele aflate la nivelul fizic. În ambele cazuri se nivelului 0 ca niúte comenzi. De reĠinut este faptul că nivelul 0 poate să nu fie
va ajunge la acelaúi rezultat: programele sunt executate, indiferent de metodă. nivelul cel mai scăzut, sub el putând exista un alt nivel care poartă denumirea de
nivel componentă, úi care de regulă nu apare în schema nivelurilor unui calculator.
Nivelul următor este nivelul 1 sau nivelul microprogramat. El este nivelul
limbajului intern al maúinii. Aici există un microprogram care interpretează
1.2. Calculatoarele actuale – calculatoare multinivel instrucĠ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. Este
Cea mai mare parte a calculatoarelor actuale au mai mult de două nivele. scris într-o memorie ROM internă, la ea având acces numai producătorul.
Predomină foarte mult calculatoarele care au curent 6 nivele. La primul nivel – Deasupra nivelului 1 se află nivelul 2 sau nivelul maúinii tradiĠionale.
nivelul 0 – se află logica cablată. Fiecare procesor defineúte în mod implicit un limbaj de nivel 2 úi o maúină virtuală
al cărei limbaj maúină este interpretat de un microprogram. Denumirea de nivel al
maúinii tradiĠionale este dată deoarece componentele au caracteristici comune.
Aceeaúi structură fizică poate corespunde la două sau mai multe maúini dacă
microprogramul de pe nivelul 1 este scris în mod adecvat úi aceeaúi maúină
tradiĠională se poate implementa prin diverse structuri fizice. Există úi excepĠii:
unele calculatoare nu dispun de nivelul microprogramat (nivelul 1), în acest caz
instrucĠ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 a
instrucĠiunilor care definesc limbajul 3 sunt de tip maúină. Se găsesc aici sarcini
specifice privind gestionarea memoriei úi capacitatea de executare a mai multor
programe în paralel. Acest nivel poartă denumirea de nivelul sistemului de operare.
De remarcat că nivelele 1 úi 2 nu sunt accesibile programatorului mediu. Ele
sunt 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 cu
nivelul 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 să
lipsească. Aici compilatorul generează cod direct pentru nivelul 3. Există o
caracteristică 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 pentru
nivelurile 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 de
aplicaĠii. Ele mai sunt adesea denumite úi limbaje de nivel înaltúi sunt extrem de
numeroase. Printre cele mai cunoscute pot fi amintite: Basic, C, Cobol, Pascal,
Fortran etc. Programele scrise în unul din aceste limbaje sunt adesea traduse pentru
nivelele 3 sau 4 de către programe traducătoare specializate numite compilatoare.
Fig. 1.2. Prezentarea nivelelor unui calculator.
Introducere 13 14 ARHITECTURA SISTEMELOR DE CALCUL

Nivelul 6, care este úi cel mai de sus nivel, este reprezentat de un ansamblu 1.3.2. Prima generaĠie: tuburile cu vid (1945-1955)
de programe. Ele conĠin numeroase date pentru aplicaĠii care pot Ġine de domenii
diferite de lucru. Se poate spune că al doilea război mondial a grăbit apariĠia apariĠiei primelor
În concluzie, se poate spune că un calculator poate fi văzut ca o suită de calculatoare echipate cu componente electronice, chiar dacă acestea aveau să fie
nivele, fiecare nivel înglobând toate nivelele precedente. Un nivel reprezintă un tuburile cu vid. Primul calculator construit úi folosit a fost ENIGMA, folosit pentru
grad oarecare de abstractizare úi conĠine diverse obiecte úi operaĠii cu aceste criptarea mesajelor care urmau a fi trimise de către armata germană prin radio
obiecte. În sens ascendent creúte complexitatea prelucrării, iar în sens descendent submarinelor. Nici armata britanică nu a stat cu mâinile în sân, ea reuúind să pună
creúte volumul materialului prelucrat. la punct un calculator numit COLOSSUS, folosit pentru decodarea mesajelor,
Ansamblul tipurilor de date, operaĠiilor úi caracteristicilor fiecărui nivel deoarece erau foarte multe calcule de făcut. Părintele lui COLOSSUS a fost omul
poartă denumirea de arhitectura nivelului. În particular, arhitectura calculatoarelor de útiinĠă englez Alan Turing. Urmează apoi un nou model numit ENIAC. Acest
úi structura lor semnifică aproape acelaúi lucru. Dúa zis calculator cuprindea 18000 tuburi cu vid úi 1500 de relee; cântărea peste 30
de tone úi consuma 150 kW. Din punct de vedere al unităĠii de calcul dispunea de
20 registre a 10 cifre zecimale. La foarte puĠin timp după aceasta îúi face apariĠia
un nou calculator, al cărui realizator, John von Neumann, va intra în istorie, putând
1.3. Etapele evoluĠiei arhitecturii calculatoarelor fi considerat pe drept cuvânt părintele calculatoarelor actuale. Schema unei maúini
von Neumann este redată în figura 1.3.
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 un
rol important în evoluĠia calculatoarelor. Pentru acestea se vor analiza în continuare
câ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. În


onoarea sa a fost denumit úi primul limbaj de programare care a fost inventat. Fig. 1.3. Schema unei maúini von Neumann.
Acest prim calculator a fost în întregime un calculator mecanic, bazat pe angrenajul
unor roĠi dinĠate acĠionate manual, principalele operaĠii care puteau fi efectuate Maúina von Neumann era alcătuită din 5 păUĠi: memoria, unitatea aritmetică
fiind adunări úi scăderi. Treizeci de ani mai târziu acestei maúini de calcul i-au fost úi logică, unitatea de control, dispozitivele de intrare úi cele de ieúire. Memoria
adăugate de către Leibnitz alte două noi operaĠii: înmulĠirea úi împăUĠirea. dispunea de 4096 cuvinte, fiecare cuvânt având 40 de biĠi (0 sau1). InstrucĠiunile
Au urmat apoi alte asemenea maúini, dintre care poate fi amintită prima cuprindeau două câmpuri: 8 biĠi pentru tipul instrucĠiunii úi 12 biĠi pentru adresă.
maúină analitică. Aceasta cuprindea patru păUĠi: memoria (magazia), unitatea de Unitatea aritmeticăúi logică conĠinea un registru intern special numit acumulator.
calcul, intrarea (cititorul de cartele perforate) úi ieúirea. Memoria dispunea de 1000 Maúina nu dispunea de capacitate de calcul în virgulă mobilă.
de cuvinte de 50 de cifre zecimale care puteau fi utilizate pentru stocarea )ăcând un salt peste timp se ajunge la modelul IBM 704 care avea aceeaúi
variabilelor úi rezultatelor. Unitatea de calcul prelua operanzii proveniĠi din structură cu 4 K de memorie, instrucĠiuni de 36 de biĠi úi dispozitive speciale de
memorie, făcea diverse operaĠii asupra lor (adunare, scădere, înmulĠire, împăUĠire) calcul în virgulă mobilă.
ú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Ġiuni
de pe cartelele perforate úi apoi le putea trata. Unele instrucĠiuni puteau comanda 1.3.3. A doua generaĠie: tranzistorii (1955-1965)
maúinii să preia doi operanzi din memorie, să efectueze o operaĠie asupra lor úi să
trimită rezultatul în memorie. Procesul continuă până în anul 1944 când a fost Primul calculator echipat cu tranzistori a fost realizat în laboratoarele
construită prima maúină, Mark I, care avea 72 cuvinte a 23 cifre úi un ciclu maúină Lincoln, fiind denumit TX 0 (Transistorized eXperimental Computer 0). În 1961
de 6 secunde. A urmat îndeaproape succesoarea sa Mark II. Se poate afirma că, apare PDP-1, o maúină de 4 K cuvinte de 18 biĠi, având ciclul maúină de 5 ms. În
practic, era electronicii începuse. comparaĠie cu IBM 7090, care avea un preĠ exorbitant, calculatorul PDP-1 costa
Introducere 15 16 ARHITECTURA SISTEMELOR DE CALCUL

120.000 de dolari, fapt care a determinat vânzarea sa de către firma DEC úi deci Un alt element esenĠial este apariĠia úi dezvoltarea serviciului www (World
participarea la naúterea unei industrii mini-informatice. Wide Web) iniĠiat de Laboratorul CERN din Geneva în colaborare cu mai multe
În 1964 apare pe piaĠă modelul 6600 al firmei CDC, o maúină aproape de 10 universităĠi americane.
ori mai rapidă decât bătrânul IBM 7094. Impactul asupra publicului a fost unul În 1993, firma Intel construieúte microprocesorul cu structură superscalară –
foarte puternic, numeroase firme exprimându-úi dorinĠa de a cumpăra un astfel de Pentium. Apar sistemele masiv paralele cu memorie partajată úi distribuită
calculator. DiferenĠa faĠă de modelul IBM: o arhitectură paralelă. În concluzie, (Cray/MPP). Interactivitatea serviciului www este asigurată prin introducerea
dispunea de mai multe unităĠi funcĠionale capabile să execute simultan diverse tehnologiei Java.
operaĠii. Acest model putea executa 10 instrucĠiuni în acelaúi timp. EvoluĠia procesoarelor a luat apoi un avânt puternic, frecvenĠele de lucru
crescând în numai opt ani de la 100 MHz la peste 3 GHz, înregistrându-se în
acelaúi timp úi o îmbunăWăĠire a arhitecturii microprocesoarelor prin specializare,
1.3.4. A treia generaĠie: circuitele integrate (1965-1980) memorie cache, paralelism (pipe-line), optimizarea algoritmilor
Este prezentat în continuare un scurt istoric al dezvoltării domeniului.
Inventarea circuitului integrat a permis plasarea de numeroase tranzistoare
într-o singură capsulă de siliciu, cea ce a condus la calculatoare mai mici, mai AN NUME SUBIECT
rapide úi mai ieftine.
În anul 1965, firma IBM, numărul unu în domeniul informaticii, scoate pe 1642 Blaise Pascal Prima maúină de calculat mecanică
piaĠă modelul IBM 360, acesta fiind primul calculator capabil de a simula un alt 1834 C. Babbage Maúina analitică de la Cambridge cu instrucĠiuni
calculator. ApariĠia circuitelor integrate a dus la dezvoltarea industriei pe cartelă perforată
1904 J.A. Flemming Dioda
microinformaticii, prin apariĠia unor noi modele, dintre care pot fi amintite 1906 L. De Forest Trioda
calculatorul PDP-11 realizat de firma DEC. El este asemăQător cu modelul 360 al 1936 K. Zuse Primul calculator cu relee – Berlin
firmei IBM, dar cu un raport performanĠă/cost mult mai bun. 1943 Guvernul britanic, Primul calculator electronic cu tuburi cu vid –
cu concursul lui A. Turing Colossus
1944 H. Aiken Primul calculator american – Mark 1 (72 cuvinte a
1.3.5. A patra generaĠie: circuitele VLSI (1980-1990) 23 cifre, ciclu maúină de 6 sec.); începutul erei
electronicii
Această etapă este cea în care încep să apară primele calculatoare personale, 1946 J. Mauchly úi J.P. Eckert Debutul generaĠiei I de calculatoare – Eniac, Univ.
acest lucru fiind posibil datorită unor factori decisivi: Pennsylvania (18.000 tuburi electronice, 1.500
 perfecĠionarea tehnologiei de fabricaĠie; relee, 600 comutatoare, 30 tone, 150 KW)
1948 J. Bardeen, W. Shockley, Tranzistorul
 dezvoltarea reĠelelor de calculatoare; W. Brattain
 diversitatea mare de modele de arhitecturi; 1948 N. Wiener Cibernetica
 apariĠia conceptelor de multimedia úi de programare orientată pe obiecte. 1949 M. Wilkes, cu arhitectură Primul calculator cu program înregistrat, EDSAC
Un pas important în această etapă a fost reprezentat de apariĠia primelor propusă de J. von Neumann
calculatoare personale realizate de firma IBM în colaborare cu Intel. Au rezultat 1951 MIT Primul calculator în timp real, Whirlwind
câteva modele care au avut o mare priză la public, dintre care IBM PS1, PS2. Un 1951 J. Mauchly úi J.P. Eckert Primul calculator comercializat – Univac 1
alt mare consorĠiu format din Apple úi Motorola scoate pe piaĠă modelele 1952 J. von Neumann Calculatorul IAS (Princeton) răspândeúte
MacIntosh 68000, 68040. Trebuie remarcat faptul că toate aceste modele erau arhitectura de bază von Neumann
1955 Laboratoarele Lincoln Primul calculator echipat cu tranzistoare – TX 0
calculatoare personale, deci accesibile ca preĠ persoanelor fizice. 1956 Firma IBM Calculatorul IBM 704
1960 Circuite integrate
1960-61 Firma DEC Primul minicalculator, PDP-1, practic începutul
1.3.6. A cincia generaĠie: prelucrarea masiv paralelă (după 1990) generaĠiei a doua de calculatoare (tranzistorizate)
úi a miniinformaticii
Începutul generaĠiei a cincia este marcată de dezvoltarea calculatoarelor cu 1961 Firma IBM Maúina de gestiune 1401
prelucrare masiv paralelă, de exemplu CM 2 úi CM 5 de la Thinking Machines Co. 1962 Firma IBM Primul calculator útiinĠific puternic
(pe 36 de biĠi) – IBM 7094
Introducere 17 18 ARHITECTURA SISTEMELOR DE CALCUL

1963 Firma Borroughs Calculatorul B 5000 – primul calculator dedicat 2002 Firma Intel Microprocesorul Pentium 4 (> 3 GHz)
unui limbaj de programare: Algol 60 2002 Firma AMD Microprocesorul AMD Athlon XP 2600+
1964 Firma IBM Prima familie de calculatoare, IBM 360; firma 2003 Firma AMD Microprocesorul AMD Opteron (64 biĠi)
IBM preia supremaĠia în informatică; 2005 Firma AMD Microprocesorul AMD Opteron (2)
multiprogramare; începutul generaĠiei a treia 2005 Firma Intel Microprocesorul Intel Pentium D
(cu circuite integrate) 2006 Firma Intel Microprocesorul Intel Core (1, 2)
1964 Firma CDC Primul calculator paralel – 6600 2007 Firma AMD Microprocesorul AMD Phenom (2, 3, 4)
1965 Firma DEC Primul calculator cu producĠie de masă 2007 Firma Intel Microprocesorul Intel Dual Core
(pe 12 biĠi), PDP-8 2007 Firma Intel Microprocesorul Intel Core 2 (1, 2, 4)
1970 Firma DEC Minicalculatorul PDP-11, firma DEC 2008 ... ... ... ... ... ...
preia supremaĠia în miniinformatică
1970 Circuite integrate pe scară largă
1971 Firma Intel Primul microprocesor de 4 biĠi – 4004
1972 Firma Intel Primul microprocesor de 8 biĠi – 8008
1974 Firma Cray Primul supercalculator: Cray-1
1974 Firma Intel Microprocesorul 8080:
prima unitate centrală pe un cip
1978 Firma Intel Primul microprocesor de 16 biĠi – 8086
1978 Firma DEC Primul superminicalculator de 32 biĠi – VAX
1979 Firma Motorola Primul procesor al familiei 680x0 – 68000
1980 Firma IBM Începutul generaĠiei a patra de calculatoare (cu
circuite VLSI); era calculatoarelor personale, PC
1982 Firma Intel Microprocesorul de 16 biĠi – 80286
1983 S.U.A. Tehnologia LAN (Local Area Network) este
folosită pe scară largă
1984 Firma Motorola Primul microprocesor de 32 biĠi – 68020
1985 Firma Intel Microprocesorul de 32 biĠi – 80386
1987 Firma Motorola Microprocesorul de 32 biĠi cu unitate de gestiune a
memoriei – 68030
1989 Firma Intel Microprocesorul de 32 biĠi cu coprocesor úi
memorie cache – 80486
1990 - Thinking Machines Co. Începutul generaĠiei a cincia de calculatoare
1991 CM 2 úi CM 5 (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 paralel
Cu memorie partajată distribuită
1995 Firma Sun Microsystems Tehnologia JAVA asigură interactivitatea
serviciului www
1996 Firma Cyrix Microprocesorul în arhitectură superpipe-line –
686 P200+
1997 Firma AMD Microprocesoarele RISC – K5, K6
1998 Firma AMD Microprocesorul K6-2 3D
1998 Firma Intel Microprocesorul Mendocino/333 MHz
1999 Firma Intel Microprocesorul Pentium III/600 MHz
1999 Firma AMD Microprocesorul Athlon/K7
2000 Firma AMD Microprocesorul Sharptooth /K6-3
20 ARHITECTURA SISTEMELOR DE CALCUL

 un calculator cu structură SISD poate avea mai multe elemente de


2. TIPURI DE ARHITECTURI prelucrare (funcĠii definite), toate găsindu-se sub supervizarea aceleiaúi
unice UC.
Exemple: IBM 7090, VAX 11/780, CDC 6600, IBM 360/91, CRAY.
Limitările arhitecturii SISD
La 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:
2.1. Clasificarea arhitecturii sistemelor de calcul  calea de semnal să fie mai scurtă;
 tranzistorii folosiĠi să fie mai rapizi.
2.1.1. Clasificarea Flynn Din nefericire, se pare că ambele au atins o anumită limitare din punct de
vedere tehnologic.
Clasificarea Flynn se face după gradul de multiplicitate al úirurilor formate Scurtarea căii de semnal ar costa foarte mult. Creúterea numărului de
din secvenĠe de instrucĠiuni úi secvenĠe de date care pot fi tratate simultan din punct tranzistori pe unitatea de arie ar duce la creúterea dramatică a căldurii disipate în
de vedere hardware. Prin secvenĠă de date se înĠelege un úir de date de intrare, exterior. Sistemele suplimentare de răcire ar costa úi ele foarte mult.
rezultate parĠiale sau rezultate temporare care sunt apelate de către o secvenĠă de Se lucrează în prezent la fabricarea unor cipuri de joasă putere (Low Power
instrucĠiuni. Chips) care ar duce la scăderea căldurii generate. Aceasta se poate realiza prin
Conform acestei clasificări există patru tipuri de arhitecturi: menĠinerea constantă a densităĠii de energie în timp ce numărul de tranzistori pe
 SISD (Single Instruction Stream – Single Data Stream); unitatea de arie a cipurilor ar creúte.
 SIMD (Single Instruction Stream – Multiple Data Stream); Realizarea de tranzistori mai rapizi este, de asemenea, foarte costisitoare. În
 MISD (Multiple Instruction Stream – Single Data Stream); acest scop se lucrează la scăderea rezistenĠei firelor prin care trece curentul.
 MIMD (Multiple Instruction Stream – Multiple Data Stream). Aluminiul este elementul folosit în 1998, dar recent s-a reuúit construcĠia unui cip
Pentru aceste arhitecturi există trei tipuri de componente de sistem: UC cu fire din cupru. Concomitent cu scăderea rezistenĠei firelor se lucrează úi la
(unitatea centrală), UP (unitatea de prelucrare) úi MM (modulul de memorie). îmbunăWăĠirea izolaĠiei dintre fire.
Deúi sunt diferite între ele, toate schemele următoare respectă succesiunea Este evident că perioada ceasului nu poate fi făcută egală cu 0. În consecinĠă,
evenimentelor din arhitectura Von Neumann: instrucĠiunile úi datele sunt extrase modul secvenĠial de tratare a operaĠiilor impus de arhitectura von Neumann
din memorie, instrucĠiunile sunt decodate de UC care trimite secvenĠa de distruge orice speranĠă într-o viitoare creútere a vitezei calculatoarelor. Această
instrucĠiuni către UP pentru execuĠie, datele circulă între memorie úi procesor pe o situaĠie este cunoscută sub denumirea de gâtul sticlei lui Neumann (Neumann
cale bidirecĠională. Bottleneck). Pentru a sparge această limitare, trebuie introdusă o arhitectură de tip
În continuare se va nota úirul de date cu SD úi cel de instrucĠiuni cu SI. neserial. Alternativa este reprezentată de arhitecturile de calcul paralele.

2.1.1.1. Arhitectura SISD 2.1.1.2. Arhitectura SIMD


Caracteristici:
 există mai multe UP datorităúirului de date multiplu, preluat din memoria
partajată (memoria împăUĠită în mai multe memorii);
 corespunde matricelor de microprocesoare: UP identice úi supervizate de
Fig. 2.1. Structura arhitecturii SISD. o singură UC;
 toate UP primesc instrucĠiunile (setul unic de instrucĠiuni) care acĠionează
Caracteristici:
asupra unor seturi de date diferite, provenite din úiruri diferite de date
 instrucĠiunile sunt executate serial, însă pot exista suprapuneri în SD1, ..., SDn;
execuĠie (pipeline). Majoritatea structurilor SISD rămase astăzi în uz
 maúinile SIMD pot efectua două tipuri de prelucrări: pe cuvânt (word-
folosesc structuri pipeline.
slice) úi pe bit (bit-slice).
Tipuri de arhitecturi 21 22 ARHITECTURA SISTEMELOR DE CALCUL

 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 MIMD


Aceste tipuri de calculatoare sunt cunoscute sub denumirea de
multiprocesoare, chiar dacă úi maúinile SIMD sunt tot multiprocesor. În
calculatoarele MIMD paralelismul este realizat prin lansarea în execuĠie a mai
multor instrucĠiuni în acelaúi timp pe diferite seturi de date. Este evident că sunt
necesare elemente adiĠionale de control pentru a trimite instrucĠiunea corectă úi
Fig. 2.2. Structura arhitecturii SIMD. data care trebuie la procesorul ales, toate în acelaúi timp. Cele mai multe sisteme
multiprocesor intră în această clasă.
Aceste tipuri de maúini lucrează foarte bine pe seturi de date formate de
matrice de dimensiuni foarte mari atunci când este necesar să se execute asupra lor
aceeaúi operaĠie. Maúinile SIMD sunt eficiente úi în cazul procesării reĠelelor neurale.
Exemplu: CM (Connection Machine) fabricată de Thinking Machines
Company din Cambridge (Massachusetts).
Limitările arhitecturii SIMD
Aceste 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. Chiar Fig. 2.4. Structura arhitecturii MIMD.
dacă 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 dedicate Avantajele arhitecturii MIMD sunt:
exclusiv producĠiei de SIMD-uri. În consecinĠă, aceste maúini sunt în general  viteză mare de prelucrare, dacă prelucrarea poate fi descompusă în fire
Iăcute la comandăúi costă foarte mult. paralele, toate procesoarele prelucrând simultan;
 întrucât procesoarele úi blocurile de memorie sunt resurse de tip general,
1.4.1.3. Arhitectura MISD defectarea unei unităĠi se poate compensa prin alocarea sarcinii de
Deúi această maúină este posibil de realizat din punct de vedere teoretic, nu a prelucrare altei unităĠi (grad ridicat de toleranĠă la defectări);
fost niciodată fabricată în scop comercial. A fost construită în laboratoare de  se poate utiliza reconfigurarea dinamică pentru a face faĠă gradelor
cercetare, dar nu au existat clienĠi dornici să investească într-o astfel de arhitectură, variabile de încărcare a procesoarelor.
deoarece nu se adresează nici uneia dintre aplicaĠiile de bază. Exemple de sisteme MIMD: C.mmp, Cm* (Carnegie Mellon University),
Ultracomputer (New York University), Cedar (University of Illinois), BBN
Butterfly, Alliant FX, CM-5 (Thinking Machine Corporation), seria Intel iPSc etc.
Sistemele MIMD se mai numesc intrinseci (propriu-zise) dacă au UP
interactive: toate úirurile de date provin din acelaúi spaĠiu de memorie adresat de
cele 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 shared
memory (memoria este accesată de toate procesoarele) úi shared nothing (fiecare
procesor are propria memorie, propriul disc úi propriul sistem de comunicaĠii).
Dacă la un sistem MIMD intrinsec interacĠiunea între microprocesoare este
Fig. 2.3. Structura arhitecturii MISD.
puternică, sistemul se numeúte cu cuplaj strâns. Legătura procesor – memorie se
Caracteristici: face prin intermediul unor magistrale de interconectare. ComunicaĠia úi sincronizarea
 fiecare UC lucrează cu úirul de instrucĠiuni propriu SI1, ..., SIn; între procesoare se realizează prin zone comune de memorie. Avantaj: comoditate
de programare oferită de spaĠiul comun de adrese (shared address space).
 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);
Tipuri de arhitecturi 23 24 ARHITECTURA SISTEMELOR DE CALCUL

În caz contrar, sistemul se numeúte cu cuplaj slab. Legătura procesor – La aceste arhitecturi, „gâtul sticlei” (bottleneck) îl reprezintă magistrala de
memorie se face prin conexiuni seriale punct-la-punct (de tip reĠea). ComunicaĠia memorie. Toate instrucĠiunile úi datele fiecărui procesor trebuie să treacă prin
între procesoare se face prin mesaje (message passing). Fiecare procesor dispune această magistrală. Când procesoarele care folosesc aceeaúi memorie sunt puĠine,
de memorie proprie (private memory). Avantaj: scalabilitate (posibilitate comodă performanĠele depind liniar de numărul procesoarelor. Pe măsură ce acesta creúte,
de expandare). Cele mai multe sisteme comerciale sunt cu cuplaj slab. Părirea performanĠelor este din ce în ce mai slabă, aúa cum rezultă din figura 2.6.
Exemple: IBM 370/168 – cuplaj slab, CRAY 2 – cuplaj strâns. Există două tipuri de sisteme MIMD cu memorie partajată:
 cu resurse globale (Global Shared Memory):
2.1.1.4. Sisteme cu memorie partajată (shared memory) o arhitectura UMA (Uniform Memory Access);
În cazul maúinilor cu memorie partajată, maúina originală von Neumann a o arhitectura UMA cu memorii cache locale;
fost extinsă prin includerea a ceea ce se numeúte memorie cache. Aceasta este o  cu resurse distribuite (Distributed Shared Memory):
memorie locală ataúată fiecărui procesor în parte, care îi permite procesorului să o arhitectura NUMA (Non-Uniform Memory Access);
aibă acces rapid la propriile seturi de instrucĠiuni úi date, dar să poată accesa în o arhitectura COMA (Cache-Only Memory Access);
continuare memoria principală prin magistrala de memorie. Acest tip de maúină se o arhitectura CC-NUMA (Cache Coherent Non-Uniform Memory Access).
mai numeúte arhitectură cu multiprocesare simetricăúi este prezentat în figura 2.5.
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 sisteme
cu 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, care
se ocupă de planificarea în execuĠie a proceselor pe procesoarele disponibile în
sistem, î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ă blocurile
de memorie prin intermediul reĠelei de interconectare (vezi figura 2.7), care poate fi
Fig. 2.5. Arhitectura sistemelor shared memory. statică (formată din conexiuni fixe, punct-la-punct, între nodurile reĠelei) sau
dinamică (formată din conexiuni variabile în timp, de tip crossbar).
Dintre sistemele mai vechi, în această categorie se înscrie seria IBM
RS/6000: J40, J50, R40 úi R50. Modelul J40 are două nivele de cache în loc de
unul singur. În loc să folosească o magistrală pentru a lega diferitele procesoare cu
memoria principală, IBM a dezvoltat un aúa-numit crossbar care, spre deosebire de
magistrala convenĠională, permite până la patru transferuri simultane cu memoria.
Limitările arhitecturilor MIMD cu memorie partajată

Fig. 2.7. Arhitectura UMA.

Principala caracteristică a calculatoarelor UMA este că toate procesoarele au


timp de acces egal la memoria partajată. Însă, tocmai de aceea, numărul
procesoarelor utilizate în cadrul sistemului paralel nu poate fi foarte mare, deoarece
creúterea numărului de procesoare din sistem atrage după sine o probabilitate mai
mare de conflict în ceea ce priveúte accesarea concurentă a aceleiaúi zone de
memorie. Într-un astfel de caz, se vor înregistra timpi de aúteptare care vor conduce
Fig. 2.6. Limitările calculatoarelor cu memorie partajată. la o utilizare ineficientă a procesoarelor úi la o încărcare neechilibrată a acestora.
Tipuri de arhitecturi 25 26 ARHITECTURA SISTEMELOR DE CALCUL

În plus, pentru obĠinerea unor performanĠe deosebite, reĠeaua de comunicaĠie Arhitectura NUMA (Non-Uniform Memory Access)
va trebui să ofere o lărgime de bandă suficient de mare, deoarece fiecare procesor În cazul acestui model, memoria partajată este distribuită fizic procesoarelor
poate necesita accesul la memoria partajată, ceea ce presupune transportul datelor din sistem (vezi figura 2.9). Astfel, fiecare element de procesare are asociată o
solicitate din memoria comună către procesorul care a formulat cererea. memorie locală. Toate aceste memorii locale formează un spaĠiu unic de adresă.
Arhitectura UMA cu memorii cache locale Din acest motiv, timpul de acces la memorie este neuniform, deoarece accesul la
O îmbunăWăĠire adusă modelului UMA o reprezintă utilizarea memoriilor datele aflate în memoria locală este foarte rapid în timp ce accesul la datele aflate
cache la nivelul elementelor de procesare (vezi figura 2.8). Fiecare procesor va în memoria locală a altor elemente de procesare va fi mult mai lent, datorită
avea asociată o astfel de memorie. Atunci când un procesor solicită date, mai întâi faptului că datele respective vor fi transportate prin reĠeaua de comunicaĠie.
se verifică dacă aceste date se găsesc deja în memoria cache locală. În caz
afirmativ, acestea se transferă foarte rapid procesorului, făUă a accesa memoria
partajată. Astfel, problema conflictelor de acces concurent la spaĠiul unic de
memorie se rezolvă, cel puĠin, parĠial. Mult mai puĠine cereri vor ajunge să
acceseze memoria partajată úi, din acest motiv, probabilitatea de apariĠie a
conflictelor devine mult mai mică.

Fig. 2.9. Arhitectura NUMA.

ObservaĠie. Sistemele NUMA sunt foarte asemăQătoare sistemelor distribuite,


din moment ce fiecare procesor dispune de o memorie locală, iar toate aceste
module 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 memoria
locală comparativ cu accesarea dintr-o zonă care nu este locală. În funcĠie de
conexiunile sistemului, factorul NUMA poate diferi pentru diverse păUĠi ale
maúinii: accesarea datelor dintr-un nod vecin este mai rapidă decât accesarea
datelor dintr-un nod mai îndepărtat pentru care este necesară traversarea unui
Fig. 2.8. Arhitectura UMA cu memorii cache locale. număr mai mare de etaje crossbar. Aúadar, atunci când este menĠionat, factorul
NUMA se referă de obicei la cele mai îndepărtate două procesoare ale unei reĠele.
Utilizarea memoriilor cache presupune însă úi asigurarea consistenĠei
acestora. În momentul în care anumite date stocate în memoria globală se modifică, Arhitectura COMA (Cache-Only Memory Access)
aceste modificări trebuie să fie semnalate tuturor memoriilor cache care stochează În cazul modelului COMA, spaĠiul global de adrese este format din memorii
cópii ale datelor respective. Mai mult chiar, atunci când se schimbă conĠinutul cache locale fiecărui procesor. Atunci când un procesor are nevoie de anumite date,
datelor de la nivelul unei memorii cache este nevoie ca modificările să fie efectuate acestea sunt mai întâi aduse în memoria cache de către controlerul de memorie,
în toate memoriile cache care conĠin cópii ale datelor actualizate. MenĠinerea după care acestea vor fi accesate foarte rapid (vezi figura 2.10).
coerenĠei memoriei cache se poate realiza atât prin mecanisme software, cât úi prin
mecanisme hardware. Modelele cu acces neuniform la memorie încearcă să evite
dezavantajele î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 elementele
de procesare. Timpul de acces la locaĠiile de memorie nu mai este uniform, el
depinzând de localizarea fizică a datelor care se doresc a fi transferate.
Fig. 2.10. Arhitectura COMA.
Tipuri de arhitecturi 27 28 ARHITECTURA SISTEMELOR DE CALCUL

ObservaĠie. Dispare conceptul de memorie globală, controlerul de memorie Ca úi în cazul modelului NUMA, accesul la datele stocate în memoria locală
având responsabilitatea de a încărca în memoriile cache locale datele ce urmează a proprie este foarte rapid. Accesarea unor date aflate în memoria locală a unui alt
fi accesate de către procesoare. Încărcarea datelor presupune localizarea úi procesor implică aducerea acestora în memoria locală proprie. Transferul de date
transportul acestora prin intermediul reĠelei de interconectare. Prin folosirea folosind reĠeaua de comunicaĠie atrage după sine întârzieri, deoarece nu este la fel
memoriilor cache locale, probabilitatea ca un procesor să acceseze majoritar date de rapid precum accesarea memoriilor locale.
numai din memoria locală creste foarte mult. ExistenĠa memoriilor cache are ca efect reducerea traficului prin reĠeaua de
Totuúi, folosirea memoriilor cache pe post de memorii locale atrage după comunicaĠie. Datele solicitate de către un procesor sunt mai întâi căutate în
sine úi o serie de probleme. Atunci când se încearcă aducerea unui bloc de date memoriile locale, după care sunt aduse în memoria cache, în cazul în care acestea
într-o memorie cache integral ocupată, apare necesitatea mutării unui alt bloc de se găsesc în memoria locală a unui alt procesor. La accesările ulterioare, se va
date pentru a se crea spaĠiul necesar memorării noului bloc care va fi accesat de folosi copia datelor respective stocată în memoria cache, deci nu va mai fi nevoie
Fătre procesor. Însă, datorită faptului că nu mai există o memorie globală în care să ca datele să fie din nou transferate prin reĠeaua de interconectare.
se scrie acest bloc, va fi nevoie ca datele conĠinute să fie mutate în memoria cache Utilizarea memoriile cache implică necesitatea implementării unor
a unui alt procesor. Aceste date însă nu vor fi niciodată accesate de către procesorul mecanisme software sau hardware care să asigure consistenĠa memoriilor cache. La
care foloseúte memoria respectivă, ceea ce conduce la o scădere a eficienĠei de modificarea unor date aflate în memoria locală a unui procesor, este nevoie să se
utilizare a sistemului. actualizeze toate copiile acestor date aflate în memoriile cache. Aceste mecanisme
În plus, operaĠia de transfer a blocului de date dintr-o memorie cache în alta care asigură coerenĠa memoriilor cache contribuie la creúterea traficului efectuat în
este úi ea consumatoare de timpi de procesare, din moment ce datele trebuie să cadrul reĠelei de interconectare.
circule prin reĠeaua de interconectare. Aceúti timpi morĠi atrag după sine o utilizare Arhitectura CC-NUMA este utilizată de o serie de supercalculatoare foarte
ineficientăúi o încărcare neechilibrată a procesoarelor. cunoscute: Bull NovaScale, HP Superdome úi SGI Altix.
O altă problemă o reprezintă asigurarea coerenĠei memoriilor cache, în Dezavantajele arhitecturilor DSM
contextul în care operaĠiile de mutare a blocurilor devin din ce în ce mai Principalul dezavantaj al arhitecturilor MIMD cu memorie distribuită úi cu
complicate, atunci când numărul de procesoare din sistem este din ce în ce mai spaĠiu individual de adresare (NUMA, COMA, CC-NUMA) îl reprezintă
mare. Controlerul de memorie trebuie să asigure gestiunea nu numai a datelor care întârzierile care pot să apară atunci când un procesor doreúte să acceseze date aflate
vor fi aduse în memoriile cache, ci úi a blocurilor care au fost mutate dintr-o memorie în memoria locală a unui alt element de procesare. Aceste întârzieri se datorează
locală în alta. Din aceste motive, arhitectura COMA este tot mai rar folosită. faptului că procesorul respectiv va aútepta ca datele solicitate să fie transportate în
Arhitectura CC-NUMA (Coherent Cache NUMA) memoria sa locală. Pentru minimizarea timpilor de inactivitate, procesorul în cauză
Modelul CC-NUMA combină modul în care este construit spaĠiul unic de poate efectua o comutare de procese, atunci când procesul activ este blocat în
adresă la calculatoarele de tip NUMA úi la cele de tip COMA. Fiecare element de Dúteptarea datelor solicitate. În general comutarea proceselor este o operaĠiune
procesare al unui calculator de tip CC-NUMA dispune atât de o memorie locală. complexă, implicând costuri importante, ce pot influenĠa performanĠele sistemului.
cât úi de o memorie cache asociată (vezi figura 2.11). EficienĠa operaĠiei de comutare poate fi substanĠial îmbunăWăĠită prin
utilizarea firelor de execuĠie (thread-uri). Un proces poate fi împăUĠit în mai multe
fire de execuĠie, care comunică între ele prin accesul la spaĠiul de adresă alocat
procesului, pe care îl partajează. Din acest motiv, firele de execuĠie reprezintă un
mecanism eficient de exploatare a concurenĠei programelor.
Un fir de execuĠie reprezintă cea mai mică entitate de planificare în sistemele
bazate pe thread-uri. Comutarea între două fire de execuĠie care aparĠin aceluiaúi
proces este o operaĠie foarte rapidă, care nu atrage după sine costuri suplimentare
semnificative. Astfel, procesul activ este suspendat până în momentul în care datele
solicitate au fost aduse în memoria locală. În acest timp, este executat un alt fir de
execuĠie al aceluiaúi proces. Această comutare între fire de execuĠie aparĠinând
aceluiaúi proces conduce la scăderea timpilor de inactivitate úi, implicit, la creúterea
eficienĠei cu care este utilizat sistemul paralel.
Calculatoarele MIMD cu memorie distribuită se numesc multicalculatoare úi
Fig. 2.11. Arhitectura CC-NUMA. reprezintă sisteme cu cuplaj slab, datorită gradului redus de partajare a resurselor.
Tipuri de arhitecturi 29 30 ARHITECTURA SISTEMELOR DE CALCUL

Principalul avantaj al acestor sisteme îl reprezintă scalabilitatea, adică,


posibilitatea extinderii prin conectarea unor noi procesoare. Creúterea numărului de
procesoare nu atrage după sine probleme legate de accesul concurent la memorie,
deoarece majoritatea apelurilor sunt către memoria locală. Însă transferul de mesaje
presupune schimburi de date care pot aglomera reĠeaua. Transferul de date între
două 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 cu
care este utilizat sistemul paralel. În plus, este foarte greu ca sarcina de calcul
distribuită procesoarelor să fie echilibrată. Sistemul de operare rulează în fiecare
nod úi, din acest motiv, întregul sistem poate fi văzut ca fiind format din staĠii de Fig. 2.13. Arhitectura sistemelor shared nothing.
lucru care comunică prin transfer de mesaje. Complexitatea acestor sisteme este
Pentru ca aceste calculatoare să lucreze bine trebuie să existe un protocol
foarte mare, datorită faptului că într-un nod de procesare individual se poate găsi
bun de transmitere a mesajelor între ele. Acest protocol trebuie să fie foarte rapid úi
un simplu procesor sau un întreg sistem de tip UMA.
IăUă erori. IBM foloseúte în acest scop protocolul Message Passing Interface (MPI)
Exemple de arhitecturi MIMD cu memorie partajată úi mai multe căi redundante care formează un switch de mare viteză.
Din perspectivă istorică, maúinile paralele cu memorie partajată sunt de trei Aceste noduri sunt conectate úi printr-o reĠea convenĠională Ethernet din
categorii: bazate pe magistrală (Pentium SMP, nodul IBM SP), bazate pe directoare motive de management al sistemului.
de 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 din
figura 2.12.a. Capacitatea de memorare sau posibilitatea de comunicare I/O se 2.1.2. Clasificarea Wang
puteau ameliora prin adăugarea de module de memorie úi de dispozitive I/O.
Criteriul de clasificare este în acest caz gradul de paralelism în procesarea
cuvintelor, respectiv biĠilor de date. Datele pot fi configurate într-o matrice (vezi
figura 2.14).
Se notează cu n lungimea unui cuvânt úi cu m numărul de cuvinte procesate
la un moment dat.

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 de


procesoare. Apărea deja necesitatea unei interconectări a modulelor de memorie, a
procesoarelor úi a legăturilor cu canalele I/O. Se foloseau reĠele multietajate de tip Fig. 2.14. Organizarea datelor într-o matrice.
crossbar sau multistage (vezi figura 2.12.b). Memoriile cache, marea lovitură a
anilor '70, au fost de natură a influenĠa puternic structurile de memorare. Sistemele Conform acestei clasificări, există patru tipuri de arhitecturi:
de memorie scalate prin adăugarea de module suplimentare aveau nevoie de  WSBS (Word Serial – Bit Serial). Se lucrează pe un singur cuvânt,
capacitate, dar úi de viteză ridicată. Memoria era o sursă de strangulări (bottleneck). fiecare cuvânt fiind prelucrat bit cu bit: n = 1, m = 1;
Introducerea memoriilor cache a schimbat aproape radical datele problemei.  WSBP (Word Serial – Bit Parallel): n > 1, m = 1;
 WPBS (Word Parallel – Bit Serial): n = 1, m > 1;
2.1.1.5. Sisteme făUă memorie partajată (shared nothing)  WPBP (Word Parallel – Bit Parallel): n > 1, m > 1.
În acest caz, fiecare procesor are propria lui memorie. Aceste maúini sunt În cazul tipului WPBP, structura paralelă este completă, corespunzătoare
practic calculatoare independente legate într-o reĠea. Fiecare calculator se mai prelucrării pe matrice m  n.
numeúte úi nod (al reĠelei). Arhitectura shared nothing se mai numeúte cu În cazul tipului WSBP, prelucrarea este pe orizontală, iar în cazul tipului
multiprocesare asimetricăúi este prezentată în figura 2.13. WPBS, prelucrarea este pe verticală.
Tipuri de arhitecturi 31 32 ARHITECTURA SISTEMELOR DE CALCUL

2.2. Structura fizică a unui calculator secvenĠial

Calculatorul numeric – sistem fizic, care prelucrează automat informaĠia


codificată sub formă de valori discrete, conform unui program, ce indică o
succesiune determinată de operaĠii aritmetice úi logice. Sistemul de calcul este
compus 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ăĠi Fig. 2.16. Etapele execuĠiei secvenĠiale a unei instrucĠiuni.
funcĠionale: unitatea de intrare (UI), unitatea de memorare (M), unitatea de ieúire
(UE), unitatea aritmetico-logică (UAL) úi unitatea de comandă (UCd). Unitatea aritmetico-logică (ALU) realizează prelucrarea informaĠiei preluate
din memorie, iar rezultatele se depun din nou în memorie sau sunt furnizate în
exterior. ALU realizează două categorii de operaĠii:
 aritmetice: adunare, scădere, înmulĠire, împăUĠ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).
Fig. 2.15. Maúina von Neumann. Un calculator pipeline utilizează paralelismul temporar. Procesoarele
Linia continuă reprezintă fluxul de date úi instrucĠiuni, iar linia întreruptă, matriceale se bazează pe mai multe unităĠi ALU sincronizate pentru a atinge
fluxul de comenzi úi stări. paralelismul spaĠial. Un sistem multiprocesor este caracterizat de paralelism
Unitatea de comandă (UCda) controlează activitatea tuturor componentelor asincron, în sensul că setul de procesoare din structura sa interacĠionează úi îúi
din sistem pe baza unei secvenĠe de instrucĠiuni, reprezentând programul memorat. împart resursele (memorii, baze de date). În acelaúi timp, procesoarele matriceale
Caracterul secvenĠial al calculatorului rezultă din modul de execuĠie al apelează la paralelism sincron (blocuri comandate printr-un unic semnal de ceas).
programului. Sunt necesare următoarele etape majore (vezi figura 2.16): Cele patru tipuri de paralelism enunĠate nu se exclud reciproc. Cele mai
multe dintre procesoarele actuale au structura internă bazată pe tehnologia pipeline
 încărcarea instrucĠiunii IF (instruction fetch);
úi multe dintre acestea pot fi organizate în sisteme matriceale sau multiprocesor.
 decodificarea instrucĠiunii ID (instruction decoding);
DiferenĠa de bază dintre un procesor matriceal úi un sistem multiprocesor este
 încărcarea (din memorie) a operanzilor OF (operand fetch); aceea că unităĠile funcĠionale din procesorul matriceal operează sincron, în timp ce
 execuĠia operaĠiilor impuse de instrucĠiune EX (execution). procesoarele sistemului multiprocesor funcĠionează asincron. TendinĠele indică
După terminarea unei instrucĠiuni, se trece la următoarea instrucĠiune. Astfel, utilizarea calculatoarelor controlate prin flux de date cu procesoare algoritmice
programul este executat secvenĠial, instrucĠiune cu instrucĠiune. VLSI. Aceste tipuri de calculatoare sunt caracterizate printr-o creútere masivă a
hardware-ului pentru a atinge paralelismul.
Tipuri de arhitecturi 33 34 ARHITECTURA SISTEMELOR DE CALCUL

2.2.1.1. Calculatoare pipeline Tehnica pipeline


ExecuĠia unei instrucĠiuni presupune patru faze majore: încărcarea ExecuĠia unei instrucĠiuni este privită ca fiind alcătuită din mai multe faze
instrucĠiunii – IF, decodarea instrucĠiunii – ID, încărcarea operanzilor – OF úi (sau stagii), care se succed una după alta úi care pot fi tratate de unităĠi specializate,
execuĠia efectivă – EX. În procesoarele non-pipeline, aceste faze se desfăúoară într-un mod asemăQător funcĠionării unei linii de asamblare (de ex.: de automobile).
secvenĠial, iar în procesoarele pipeline se desfăúoară cu paralelism temporal. Exemplu. Fie un úir de procese care are loc la execuĠia unei instrucĠiuni.
Pentru procesoare complexe, faza de execuĠie a instrucĠiunii poate fi
partajată în suboperaĠii organizate după principiul pipeline. Problemele care apar în
calculatoarele pipeline sunt datorate conflictelor de acces la memorie, salturilor úi
întreruperilor.
Datorită suprapunerii operaĠiilor, calculatoarele pipeline (CPL) sunt
optimizate pentru a efectua operaĠii de acelaúi tip. Ori de câte ori se modifică tipul
operaĠiei (instrucĠiunii), registrele pipeline trebuie úterse úi reîncărcate úi, ca
urmare, se consumă timp suplimentar. Proiectarea CPL include: secvenĠializarea P1 1 2 3 4 5 6 7
sarcinilor (task-urilor), prevenirea conflictelor de acces (coliziunilor), controlul P2 1 2 3 4 5 6
congestiei úi controlul salturilor în program. P3 1 2 3 4 5
O schemă funcĠională a unui CPL este ilustrată în figura 2.17. 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ă în
paralel; 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
Fă 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 o
maúină pipeline de tip SISD.

2.2.1.2. Calculatoare matriceale


Un 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 de
prelucrare matriceală. Fiecare element de prelucrare (EP) reprezintă un element
pasiv, adică, făUă posibilitatea de a decodifica instrucĠiuni.
Încărcarea instrucĠiunilor úi decodarea lor (fazele IF úi ID) pentru unitatea de
prelucrare matriceală este efectuată de către unitatea de control, prin intermediul
Fig. 2.17. Structura funcĠională a unui calculator pipeline. unei reĠele de interconectare între EP. Fiecare element de prelucrare este alcătuit
dintr-o unitate ALU, registre úi memorie locală, iar conexiunea dintre elemente este
În schema de mai sus, există două structuri pipeline: una pentru date scalare realizată într-o arhitectură de tip NUMA.
úi una pentru date vectoriale. Faza de încărcare a operaĠiilor este împăUĠită în două Pentru o sesiune de lucru specifică, unitatea de control stabileúte funcĠia
subfaze independente, corespunzătoare operării cu scalari sau cu vectori. Faza de ALU pentru fiecare EP, după care transferă operanzi din exterior către memoriile
execuĠie se desfăúoară în două procesoare distincte, asociate scalarilor sau locale ale EP úi rezultatele de la un EP spre alt EP (utilizând reĠeaua de
vectorilor. interconectare). Programarea CM este mult mai dificilă decât programarea CPL.
Tipuri de arhitecturi 35 36 ARHITECTURA SISTEMELOR DE CALCUL

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 cu
memorii (cache) locale. Procesoarele funcĠionează independent (asincron), dar
trebuie să comunice între ele.
Structura de interconectare între procesoare úi între procesoare úi resursele
comune determină organizarea sistemului multiprocesor. Există trei mari categorii
de 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, în
care procesoarele pot fi fizic plasate în subsisteme diferite. Pentru sistemele
distribuite este necesară o reĠea de comunicaĠie rapidă, flexibilă (adaptabilă) úi
fiabilă.

2.2.2. Mecanisme de prelucrare paralelă


Fig. 2.19. Structura funcĠională a unui calculator matriceal.
Aceste soluĠii de implementare a prelucrării paralele sunt corelate cu
2.2.1.3. Calculatoare multiprocesor
arhitecturile clasificării Flynn în privinĠa soluĠiilor hardware, soluĠiile software
Structură de bază a unui CMP este prezentată în figura 2.20.
fiind specifice sistemelor de operare care gestionează intervalele de timp alocate
diferitelor aplicaĠii úi speculând, astfel, posibilitatea prelucrărilor paralele.

2.2.2.1. SoluĠii hardware de prelucrare paralelă


Multiplicarea ú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 anumită
funcĠie aritmetică sau logicăúi pot funcĠiona în paralel. În unele procesoare există
două ALU care pot lucra în paralel (o unitate pentru aritmetica în virgulă fixă úi
alta pentru aritmetica în virgulă mobilă). Ideea specializării funcĠionale úi a
distribuirii úi multiplicării ALU (numite úi unităĠi funcĠionale) poate fi extinsă atât
la sistemele multiprocesor, cât úi la cele matriceale. Acest mecanism constituie, de
fapt, implementarea paralelismului la sistemele SISD.
În figura 2.21 se prezintă un exemplu de schemă pentru figurarea acestei
soluĠ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, unitatea
de comandă încarcă úi decodifică o altă instrucĠiune pe care o încredinĠează unei
alte unităĠi ALU ú.a.m.d.
Fig. 2.20. Calculator multiprocesor.
Tipuri de arhitecturi 37 38 ARHITECTURA SISTEMELOR DE CALCUL

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 în
capsula procesorului a memoriei cache de nivel 1.
Tehnica burst foloseúte această memorie pentru a citi blocuri de instrucĠiuni
din memoria cache, instrucĠiuni care au fost încărcate acolo din memoria principală
Fig. 2.21. Multiplicarea ALU prin specializarea pe operaĠii. (MP) în mod secvenĠial (vezi figura 2.23). În acest mod, se citesc dintr-o dată fie
două, fie patru cuvinte, în funcĠie de dimensiunea instrucĠiunii (pe 32 sau 16 biĠi).
Sistemul este eficient dacă timpul de execuĠie de către ALU a unei operaĠii S-a folosit iniĠial o magistrală internă între cache úi decodificatorul de instrucĠiuni
este mult mai mare decât timpul de încărcare úi decodificare a unei instrucĠiuni. de 64 biĠi, ajungându-se în prezent la 128 de biĠi.
Această condiĠie este, în general, îndeplinită.
Exprimarea algebrică a condiĠiei de eficienĠă pentru multiplicarea úi
specializarea ALU este:

tEX(ALU) >> tIF + tID.

Paralelism úi structură pipeline în CPU


Primele 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 a
instrucĠiunilor de pe fiecare úir. Fig. 2.23. Arhitectura superscalară cu tehnică de burst (citire în rafale).
Un exemplu particular de arhitectură superscalară este prezentat în figura 2.22.
Tipuri de arhitecturi 39 40 ARHITECTURA SISTEMELOR DE CALCUL

Exemplu. Schema din figura 2.24 reprezintă o arhitectură superscalară cu


trei úiruri de instrucĠiuni diferite. Se execută în acelaúi timp o operaĠie cu numere
reale úi două operaĠii cu numere întregi. Fiecare unitate este de tip pipeline úi poate
executa câteva operaĠii în diferite stagii pipeline.

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

Arhitectura superpipeline
Se bazează pe divizarea stagiului pipeline în substagii úi, deci, pe creúterea c
numărul de instrucĠiuni care sunt procesate de pipeline la un moment dat. Divizând
Fig. 2.25. Modul de operare al tehnicilor pipeline (a), superpipeline (b) úi superscalară (c).
fiecare stagiu în două substagii, perioada ciclului de ceas IJ va fi redusă la jumătate:
IJ/2. Unitate ALU vectorială
La capacitate maximă, structura pipeline produce un rezultat la fiecare IJ/2
secunde. Pentru o arhitectură datăúi setul de instrucĠiuni aferent ei, există un număr
optim 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ăUă a face
compromisuri 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/O
Utilizarea 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 principiul
cererii de magistrală (aceasta reprezintă una dintre tehnicile evoluate de
transfer de date, vezi paragraful 3.4.4.2); Fig. 2.26. Arhitectură SIMD cu unitate ALU vectorială.
 procesoare specializate I/O, care lucrează pe canale I/O cu sarcini specifice.
Este o soluĠie de paralelism pentru sistemele SIMD, prezentată în figura 2.26.
Tipuri de arhitecturi 41 42 ARHITECTURA SISTEMELOR DE CALCUL

Utilizarea unui sistem ierarhizat de memorie locaĠie adresată de curând să fie adresată úi într-un timp imediat – localizare
Memoria unui sistem de calcul trebuie să satisfacă mai multe cerinĠe, adesea temporară – úi, similar, este previzibil ca úi locaĠiile adiacente să fie accesate în
contradictorii: capacitate mare, timp de acces mic, cost rezonabil úi dimensiuni curând – localizare spaĠială. Principiile localizării temporale úi spaĠiale sunt o
reduse. Aceste cerinĠe nu pot fi îndeplinite simultan de un singur tip de memorie. consecinĠă a modului uzual de execuĠie a secvenĠelor de program.
Cu tehnologia actuală se pot realiza memorii de mare viteză, dar de capacitate mică Exemple:
(RAM static), memorii de capacitate mare, dar de viteză medie (variante de  un program conĠine bucle care presupun execuĠia repetitivă a aceleiaúi
memorii DRAM) sau memorii de capacitate foarte mare, dar cu timp de acces secvenĠe de instrucĠiuni;
ridicat (memorii externe pe suport magnetic sau optic).  execuĠia instrucĠiunilor este, în majoritatea cazurilor, secvenĠială
În sistemele de calcul performante, spaĠiul de memorare este ierarhizat pe (succesiunea în execuĠie), excepĠie făcând instrucĠiunile de salt;
mai multe nivele, cu scopul de a beneficia de avantajele oferite de diverse tipuri de  secvenĠa de program (procedura) utilizează repetitiv aceeaúi variabilă sau
memorii. Un sistem de calcul cu memorie organizată ierarhizat poate echilibra adresează repetat elemente ale unei structuri de date (tablouri, înregistrări).
diferenĠele de viteză între componentele sistemului (CPU, memorie, discuri) . Concluzie. Statistic s-a constatat că pentru majoritatea programelor este
Într-o astfel de arhitectură, memoria este organizată pe patru niveluri: valabilă următoarea regulă: 90% din timpul afectat unui program este utilizat
 registrele CPU; pentru execuĠia a numai 10% din codul acestuia. Pe baza acestor observaĠii,
 memoria cache (MC); informaĠiile pot fi amplasate în mod dinamic pe diferite niveluri ierarhice ale
 memoria principală sau operativă (MP); memoriei, în funcĠie de probabilitatea de a fi utilizate.
 memoria virtuală (MV).
Registrele CPU sunt direct adresabile de către ALU. 2.2.2.2. SoluĠii software de prelucrare paralelă
Memoria cache (rapidă) este cea mai apropiată de CPU, ceea ce impune ca Prelucrarea pe loturi
timpul de acces să fie mic, capacitatea fiind limitată. Aici sunt păstrate instrucĠiunile Prelucrarea pe loturi (batch processing) presupune formarea unui fiúier cu
úi datele cu probabilitatea cea mai mare de a fi utilizate într-o proximitate de timp. extensia .bat úi lansarea lui. Procesele au loc succesiv, iar CPU (care execută
Memoria cache reprezintă un tampon între memoria principalăúi CPU. operaĠiile de calcul) nu este folosită în mod eficient.
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 între
memoria virtualăúi CPU.
Memoria virtuală este un concept arhitectural prin care memoria operativă
este extinsă peste spaĠiul de adresare al memoriei externe (hard disk, bandă
magnetică). Prin tehnicile de implementare, numite segmentare úi paginare (vezi
capitolul 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 memoria
principală. Transferul de informaĠii între diferitele nivele de memorie se realizează
în mod automat, fie de către componente hardware specializate (unitatea de gestiune
a memoriei, MMU), fie de către sistemul de operare. Procesoarele recente oferă
suport hardware pentru implementarea memoriei cache úi a memoriei virtuale.
EficienĠa utilizării unei arhitecturi ierarhizate de memorie se bazează pe
câteva principii legate de modul de utilizare a informaĠiilor conĠinute în memorie.
Astfel, conform principiului localizării referinĠei, adresarea locaĠiilor de
memorie se realizează într-o secvenĠă repetitivă. Există o probabilitate mare ca o Fig. 2.19. a. Prelucrarea pe loturi. b. Multiprogramarea.
Tipuri de arhitecturi 43 44 ARHITECTURA SISTEMELOR DE CALCUL

Exemplu. Fie trei procese paralele, P1, P2 úi P3, fiecare fiind văzut în timp Procesul de calcul se împarte în mai multe etape. În funcĠie de divizarea în
ca o succesiune de trei etape: intrare (i), calcul (c), ieúire (o) (vezi figura 2.27.a). intervale de timp, se poate face ca procesele să se termine aproximativ în acelaúi
Multiprogramarea interval de timp (nu există un proces dominant).
În acelaúi interval de timp pot exista mai multe programe (procese) active în Diviziunea în timp constituie o atribuĠie a sistemului de operare (numit, în
sistemul de calcul, concurând pentru memorie, I/O úi CPU. Totuúi, unele programe acest caz, sistem de operare cu diviziune în timp). Utilizarea diviziunii în timp a
sunt orientate către calcule (utilizând intens CPU), în timp ce altele sunt orientate programelor (sau a proceselor) în sistemele uniprocesor creează conceptul de
Fătre citirea/scrierea dispozitivelor I/O. Se pot astfel organiza (intercala) cele două procesor virtual.
clase de programe pentru a obĠine un timp de prelucrare global cât mai bun. În Exemplu: sisteme de calcul cu un singur procesor úi mai multe terminale.
figura 2.27.b, câútigul de timp este notat cu ǻ. Pentru subiectul uman, răspunsul unicului procesor este suficient de rapid astfel
Intercalarea programelor permite utilizarea mai eficientă a resurselor încât să se considere că fiecare terminal operează independent, ca úi cum ar poseda
calculatorului prin suprapunerea operaĠiilor I/O cu operaĠiile CPU. Acest mod de el însuúi procesor (utilizatorul are impresia că lucrează singur pe calculator).
organizare este gestionat de sistemul de operare (programul de supervizare). Astfel, Conceptul de diviziune în timp poate fi extins în mod similar la sistemele
multiprogramarea se poate defini ca intercalarea operaĠiilor CPU cu operaĠii I/O multiprocesor.
pentru mai multe programe. ObservaĠii.
ObservaĠii. 1. În cazul multiprogramării, procesele îúi termină faza de calcul (în CPU),
1. P1, P2 úi P3 pot aparĠine aceluiaúi program sau unor programe diferite. apărând suprapunere doar între operaĠii CPU úi operaĠii I/O.
2. În cadrul multiprogramării, se poate întâmpla ca un proces cu prioritate 2. În cazul diviziunii în timp, procesele nu îúi termină faza de calcul înainte
mare să ocupe CPU un timp îndelungat úi în acest fel se împiedică de a se executa alt proces; procesele pot fi intercalate, astfel încât să se
execuĠia altor procese. Neajunsul se poate înlătura folosind un sistem de câútige timp de execuĠie în raport cu multiprogramarea (suprapuneri între
operare cu divizare în timp. operaĠii CPU úi operaĠii I/O, respectiv între diferite operaĠii I/O).

Diviziunea în timp (time sharing) NoĠiunea de multithreading


Diviziunea în timp reprezintă împăUĠirea timpului de execuĠie al CPU între Termenul de multithreading reprezintă un aspect important al proiectării
toate procesele (task-urile) active din sistemul de calcul. Cuantele de timp alocate software, care necesită atenĠie specială în construcĠia sistemelor mari úi, în deosebi,
fiecărui proces pot fi inegale de la un proces la altul. Viteza de prelucrare poate atunci când se pune problema eficienĠei (exprimate în termeni de viteză a
creúte astfel mai mult decât în cazul multiprogramării (vezi cazul particular din sistemului) úi a performanĠei (exprimate în termeni de corectitudine în funcĠionare
figura 2.28). a sistemului). Folosind adecvat instrucĠiunile de multithreading, se pot realiza
aplicaĠii optimizate.
Fiecare aplicaĠie sau program care rulează pe sistemul de operare este un
proces alcătuit din unul sau mai multe fire (thread-uri). Un thread este un set de
instrucĠiuni sau o parte anume a aplicaĠiei, care se execută independent în cadrul
programului 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ă cu
programarea úi executarea thread-urilor.
Multithreading-ul presupune execuĠia în paralel a mai multor procese, pentru
a îmbunăWăĠi eficienĠa sistemului. Thread-urile sunt implementate în situaĠiile în
care 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ăJă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 nu
Fig. 2.28. Repartizarea în timp a desfăúurării proceselor (time sharing).
sunt necesare la un moment dat.
Tipuri de arhitecturi 45 46 ARHITECTURA SISTEMELOR DE CALCUL

Modelele de threading suportate de sistemele win32 sunt:  timpul de execuĠie paralel, TP (timpul măsurat de la începutul execuĠiei
1. Modelul thread-ului unic (Single Thread Model). Acest tip de thread úi până la terminarea ultimului subtask paralel);
presupune rularea unui singur thread la un moment dat. Restul thread-urilor trebuie  numărul de procesoare, p.
Vă aútepte. Principalul dezavantaj al acestui tip de thread îl reprezintă timpii lungi Cu ajutorul acestora, se pot calcula următorii parametri de ieúire:
de execuĠie pentru sarcini mici. Corespunde din punct de vedere conceptual  suprasarcina, TO (Total Parallel Overhead) = diferenĠa dintre timpul
prelucrării pe loturi (batch processing). total de lucru însumat al tuturor procesoarelor úi timpul necesar celui mai
2. Modelul Apartment Thread (Single Thread Apartment Model – STA). În rapid algoritm secvenĠial;
acest model, pot exista mai multe thread-uri care se execută în cadrul aplicaĠiei. În  accelerarea, S (Speedup) = raportul dintre timpul necesar rezolvării unei
STA, fiecare thread este izolat într-un „apartament” separat în cadrul procesului. probleme pe un procesor úi timpul necesar rezolvării aceleiaúi probleme
Fiecare proces poate avea mai multe apartamente, care pot partaja date între ele. În în paralel pe p procesoare identice;
acest caz, aplicaĠia este răspunzătoare pentru stabilirea duratei fiecărui thread din  eficienĠa utilizării calculatorului paralel, E = S / p;
cadrul fiecărui apartament. Toate cererile sunt ordonate folosind Windows Message  costul, C = TP  p, care reflectă timpul total de lucru însumat al
Queue, astfel încât un singur apartament poate fi accesat la un moment dat. procesoarelor.
Avantajul acestui model fată de modelul thread-ului unic este că se pot procesa
simultan mai multe cereri ale utilizatorului. Totuúi, nu este atinsă încă eficienĠa
maximă, deoarece sarcinile se vor executa una după alta. Corespunde din punct de
vedere conceptual multiprogramării. 2.3. Categorii de calculatoare
3. Modelul Multithread Apartment (Free Thread Apartment Model – FTA).
Modelul Multithread Apartment presupune existenĠa unui singur apartament. Nu Calculatoarele pot fi grupate în 5 categorii, în funcĠie de structură,
este nevoie de ordonare, deoarece toate thread-urile aparĠin aceluiaúi apartament úi
dimensiuni, viteză, putere de calcul úi destinaĠie:
pot partaje resursele. Aceste aplicaĠii se execută mai rapid decât cele care
 microcalculatoare (ex.: computerele Apple úi toate modelele de PC);
implementează modelul unic sau STA, deoarece sistemul este mai puĠin solicitat úi
 minicalculatoare (ex.: serverele IBM, SGI, Sun Microsystems etc.);
poate fi optimizat să elimine timpii morĠi. Corespunde din punct de vedere
conceptual diviziunii în timp (time sharing).Aceste tipuri de aplicaĠii sunt foarte  superminicalculatoare (ex.: Norsk Data Nord, Interdata, DEC VAX etc.);
complexe, deoarece trebuie să se asigure că thread-urile nu accesează simultan  mainframe-uri;
aceleaúi resurse (principiul pipeline). Este, astfel, absolut necesar să se furnizeze un  supercalculatoare.
sistem de blocare a resurselor. Acesta trebuie implementat cu atenĠie, deoarece
poate conduce la blocarea totală a sistemului.
Prin natura úi arhitectura sa, mediul de programare Microsoft .NET 2.3.1. Mainframe-uri
Framework este un mediu de tip multithreading.
Evaluarea performanĠelor. Utilizând de n ori mai multe resurse în paralel, Un mainframe este un computer mare, folosit de instituĠii guvernamentale úi
un algoritm nu va rula de n ori mai repede, datorită fenomenului de timp companii pentru procesarea datelor importante în statistică, recensăminte, cercetare
suplimentar (overhead), indus prin aplicarea paralelismului. Acest timp úi dezvoltare, proiectare, prognoză, planificarea producĠiei, tranzacĠii financiare etc.
suplimentar apare din următoarele cauze: Ca aspect exterior, primele mainframe-uri arătau ca niúte dulapuri uriaúe de metal.
 interacĠiunea între procese (transmiterea rezultatelor intermediare sau Cu trecerea anilor, tehnologiile de fabricaĠie s-au dezvoltat, mărimea fizică a
parĠiale) úi sincronizarea proceselor; mainframe-urilor a scăzut, iar viteza lor de calcul a crescut foarte mult.
 inactivitatea temporară (idling), care înseamnă că există procese inactive La nivelul anului 2008, prin mainframe se înĠelege un calculator compatibil
cu modelele de tip IBM System/360 (1965). Actualmente, cel mai modern model
pe anumite perioade de timp, datorită încărcării inegale úi a aúteptării
de la IBM este System z10. Sunt considerate mainframe-uri calculatoarele actuale
sincronizării;
de tip: Nova (Fujitsu-Siemens), DPS (Groupe Bull), NonStop (Hewlett-Packard),
 calculele suplimentare, care nu apar în formularea serială a algoritmului.
ClearPath (Unisys) úi cele compatibile IBM System z9 (Hitachi, Platform Solutions).
Parametrii de intrare care contribuie la calculul performanĠelor sunt:
Un mainframe poate rula sau găzdui mai multe sisteme de operare simultan,
 timpul de execuĠie secvenĠial sau serial, TS (timpul măsurat de la
funcĠionând ca mai multe maúini virtuale. Un mainframe poate înlocui astfel chiar
începutul úi până la sfârúitul execuĠiei algoritmului pe un calculator úi câteva sute de servere de dimensiuni mici (de exemplu, în aplicaĠii web),
secvenĠial); reducând costurile de întreĠinere, dar menĠinând un nivel ridicat de siguranĠă.
Tipuri de arhitecturi 47 48 ARHITECTURA SISTEMELOR DE CALCUL

2.3.2. Supercalculatoare

Un supercalculator este un calculator complex cu destinaĠie specială, compus


din mai multe procesoare care accesează aceeaúi memorie centrală úi care
funcĠionează concomitent úi coordonat, în cooperare strânsă, astfel încât
supercalculatorul poate atinge o performanĠă totală de calcul foarte ridicată. Modul
de operare al supercalculatoarelor este calculul paralel. Numărul de procesoare
interconectate ale unui supercalculator depăúHúte la anumite modele chiar úi
100.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 foarte
numeroase, grupate în aúa-numite cluster-e.
Printre primele firme care au produs supercalculatoare pentru piaĠă s-a
numărat firma Cray (modelul Cray-1 din 1976 a atins viteza de calcul de 130
Mflops). În acest domeniu, există o listă (actualizată de două ori de an) a celor mai
rapide 500 de supercalculatoare din lume (Top 500), care se bazează pe testul
standardizat numit Linpack. Pe lângă supercalculatoarele comerciale, existăúi linia
supercalculatoarelor 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Ġei
de ceas în favoarea micúorării componentelor, creúterii densităĠii acestora úi
reducerii consumului de putere. Reducerea frecvenĠei de ceas este compensată prin
Pă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 MB
Fig. 2.29. Arhitectura IBM BlueGene/L.
partajatăúi 2 KB memorie cache L2 pentru fiecare procesor. Fiecare procesor are
două porturi de încărcare úi unul de stocare către memoriile cache L2, funcĠionând Din punct de vedere al interconectării, BlueGene/L posedă mai multe reĠele:
cu 8 biĠi/ciclu. Aceasta este jumătate din banda necesară celor două unităĠi de două reĠele pentru conectarea procesoarelor, o reĠea inel 3D úi o reĠea arbore.
virgulă mobilă (FPU). Procesoarele au o memorie cache L1 de 32 KB pentru ReĠeaua inel este folosită pentru comunicaĠii generale, iar cea arbore pentru
instrucĠiuni úi date, în situaĠii favorabile atingând performanĠe de 2,8 Gflops/2. Se comunicaĠii colective: broadcast, operaĠii de reducere etc. Lărgimea de bandă a
observă că memoria cache L1 este mai mare decât L2, un lucru neobiúnuit, care reĠelei arbore este de două ori mai mare decât a reĠelei inel, ajungând la 350 MB/s
permite însă atingerea unor viteze de procesare mai mari. (faĠă de 175 MB/s).
Arhitectura modelului IBM BlueGene/L este reprezentată în figura 2.29. PerformanĠele sistemului ajung la 280,6 Tflops pentru testul Linpack. În
Sistemul este alcătuit astfel: sunt introduse două cipuri pe o placă cu o urma testului, s-a efectuat rezolvarea unui sistem liniar de N = 1.769.471 ecuaĠii.
memorie de 512 MB, úaisprezece asemenea plăci sunt plasate pe o altă placă nod, EficienĠa rezultată a fost de 76%.
iar 32 de plăci nod sunt introduse într-un aúa-numit cabinet. Aúadar, un cabinet Supercalculatoarele care au la bază modelul IBM BlueGene/L
conĠine 1024 cipuri (2048 CPU). Pentru configuraĠia maximă, se folosesc 64 de implementează arhitectura masiv paralelă.
cabinete cuplate, care formează un sistem cu 65.356 cipuri úi 130.712 CPU. Aceasta constă într-un număr de procesoare (de obicei, foarte mare – de
În modul normal de operare, o unitate de procesare a unui cip este folosită ordinul miilor) interconectate úi controlate de un singur computer central. Fiecare
pentru calcule, iar cealaltă, pentru sarcinile de comunicare. În acest fel, CPU are memoria sa úi spaĠiul de date propriu, care conĠine úi o copie a sistemului
performanĠa de vârf teoretică a sistemului este de 183,5 Tflops. Dacă necesităĠile de operare. Toate blocurile CPU comunică între ele cu ajutorul unor interconectări
de comunicare sunt mici, se pot folosi ambele procesoare pentru calcule, dublând de foarte mare viteză.
viteza de vârf, ajungând la 360 Tflops.
Tipuri de arhitecturi 49 50 ARHITECTURA SISTEMELOR DE CALCUL

2.4. Exemple de arhitecturi IBM 370/168

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); Fig. 2.31. Schema arhitecturii generale pentru IBM 370/168.
o ALU = unitatea aritmeticăúi logică;
Schema de principiu (vezi figura 2.31) conĠine:
o ML = memoria locală;
 MP = memoria principală;
 MD = memorie de diagnoză;
 LSU = local storage unit (unitate de memorie locală);
 CVM = coprocesor de virgulă mobilă;
 CM = controller memory (legătură multiport CPU – memorie);
 MP = memoria principală (maxim 232 cuvinte);
 SS I/O = subsisteme de intrare-ieúire (mai multe canale asincrone).
 C = consolă;
 F = floppy disk; IBM RS/6000 model 250
 SBI = interfaĠa cu magistrala sincronă (Synchronous Bus Interface); Arhitectura simplificată este prezentată în figura 2.32.
 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ă a
microprocesorului, a programului care se executăúi a memoriei cache.

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ă;
Fig. 2.30. Schema arhitecturii generale pentru VAX 11/780.  Ethernet = controler de reĠea.
Tipuri de arhitecturi 51 52 ARHITECTURA SISTEMELOR DE CALCUL

2.4.2. Arhitecturi multiprocesor

Arhitecturile multiprocesor sunt cel mai bun exemplu al tentativei de a


paraleliza un sistem de calcul. Acestea sunt de două tipuri: cele care folosesc
procesoare multiple, discrete, pe o placă de bază sau sisteme hardware speciale úi
cele care folosesc mai multe nuclee în interiorul unui singur procesor fizic.

2.4.2.1. Arhitecturi cu procesoare multiple


Arhitecturile 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 (vezi
paragrafele 2.1.1.4 úi 2.2.1.3, referitoare la sisteme cu memorie partajată – shared
memoryúi calculatoare multiprocesor).
În cazul sistemelor cu arhitecturi de multiprocesare asimetrică, fiecare
procesor are alt task. Exemple: cipseturile 3D din plăcile grafice moderne úi
cluster-ele de calculatoare personale (Beowulf), în care fiecare procesor are acces Fig. 2.33. Schema arhitecturii generale pentru IBM RS/6000-F50.
numai la memoria calculatorului din care face parte (vezi paragraful 2.1.1.5,
referitor la sisteme făUă memorie partajată – shared nothing).
IBM RS/6000 model F50
Sistemul 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ă datele
sunt grupate în seturi de câte 8  64 biĠi. Memoria foloseúte date de 72 biĠi: 64 pentru
date úi 8 pentru codul corector de erori (ECC = Erorr Correction Code). Procesorul
are 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 multiprocesor
Arhitectura 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,
Fig. 2.34. Schema arhitecturii Intel multiprocesor.
AP = Application Processor, APIC = Advanced Programmable Integrated Circuit,
ICC Bus = Interrupt Controller Communications Bus. Astfel, cele două CPU sunt servite de două interfeĠe paralele cu magistrala
principală a sistemului, iar arbitrarea traficului pe aceasta este efectuată de un
2.4.2.2. Arhitecturi biprocesor
controler specializat. Accesul la magistrală este multiplexat, astfel că la un anumit
Un sistem care suportă două procesoare trebuie să aibă o placă de bază
moment de timp úi pentru o durată bine stabilită (fixă sau adaptată sarcinii curente)
adaptată pentru a servi două CPU. În acest scop, placa de bază este dotată cu o
accesul la magistrală îl are doar un singur procesor. Aceste tipuri de scheme pot
magistrală specială, a cărei construcĠii depinde de la producător la producător, dar
cuprinde zone de memorie cache comune (integral sau parĠial), iar magistrala poate
care se conformează unor reguli generale.
fi cu lăĠime variabilă sau cu adaptare dinamică la cereri.
Tipuri de arhitecturi 53 54 ARHITECTURA SISTEMELOR DE CALCUL

Pentium II biprocesor 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
Fătre un procesor din celălalt procesor (prin intermediul Northbridge-ului),
nemaifiind necesară accesarea memoriei. Acest mod elimină tehnica prin care
datele necesare unuia din cele două procesoare erau înscrise în memorie de către
primul procesor úi apoi citite de către al doilea.
AMD K7 biprocesor
Microprocesorul AMD K7 lucrează pe magistrala ultrarapidă EV6 la
frecvenĠa de 200 MHz. Astfel, K7 poate folosi memorii foarte rapide úi cu lărgime
de bandă mare, cum este Rambus DRAM. Datorită suportului multiprocesor al
protocolului de magistrală EV6, sistemele AMD pot fi folosite în domeniul staĠiilor
de lucru úi al serverelor. Arhitectura EV6 permite o flexibilitate ridicată, cu
facilităĠi de tipul topologiei punct-la-punct úi clock-forwarding. Magistralele de
date úi de adrese sunt decuplate, procesorul putând să emită cereri în timp ce
primeúte date úi comenzi de la logica de sistem. Tot aici sunt gestionate
transferurile 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.34. Arhitectura unui sistem biprocesor cu Pentium II.

AMD Athlon biprocesor


Este un exemplu de arhitectură biprocesor construit pe baza cipsetului 760 al
firmei AMD (vezi figura 2.35).

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

Sun SPARC IV biprocesor


Arhitectura biprocesor Sun SPARC IV este prezentată în figura 2.37.
NotaĠiile din schemă au următoarele semnificaĠii: ECC = Error Checking/Correction
Code (cod de verificare/corecĠie de erori), DCSS = Dual Chip Data Switch (bloc de
alegere a cipului), SIU = System Interface Unit (unitatea de interfaĠă cu sistemul),
Fig. 2.35. Arhitectura unui sistem biprocesor cu AMD Athlon. MCU = Memory Control Unit (unitate de comandă a memoriei).
Tipuri de arhitecturi 55 56 ARHITECTURA SISTEMELOR DE CALCUL

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, care
asigură separarea fluxurilor de date. Acest lucru este vital într-un server în care
Fig. 2.37. Arhitectura Sun SPARC IV biprocesor.
schimbul de date dintre componente este realizat în flux continuu. Tot pentru o
Se observă că cele două procesoare au atât memorie cache comună, cât úi sporire a vitezei de lucru, s-a recurs la utilizarea memoriei de tip RDRAM.
individuală. Accesul la memoria comună se realizează prin intermediul unui AMD Opteron biprocesor
multiplexor, care nu permite lucrul simultan celor două CPU cu aceasta, pentru a Sistemul cu două procesoare AMD Opteron 250 la 2,4 GHz foloseúte o placă
preveni blocajele úi erorile ce pot apărea în urma unor accesări simultane. Schema de bază dotată cu cipsetul NVIDIA nForce Professional 2200. Noutatea acestei
este capabilă să ruleze două fire de execuĠie (thread-uri) cu latenĠe foarte mici de configuraĠii este că procesoarele nu împart aceeaúi magistrală pentru a accesa
scriere a cache-ului. De asemenea, accesul la magistrala principală este multiplexat, memoria, ca la sistemele tradiĠionale. În acel caz, magistrala reprezenta „gâtul
pentru a preveni congestiile úi erorile de transmisie. Strategia de gestiune a sticlei” (bottleneck) sistemului, fiind un obstacol în calea procesării la potenĠialul
memoriei cache este de tipul LRU (Least Recently Used – cel mai puĠin recent maxim al CPU-urilor. Pentru a evita această limitare, AMD a recurs la o arhitectură
utilizat), ceea ce duce la mai multe úanse de a găsi în cache informaĠia necesară la cu memorie cache neuniformă, de tip ccNUMA (vezi figura 2.39).
următoarea procesare (cache hit). Memoria acestui sistem este de tipul SDRAM. Fiecare procesor dispune de un controler de memorie, care poate accesa o
Există scheme care aduc îmbunăWăĠiri suplimentare legate de administrarea porĠiune de memorie rezervată doar lui. Sunt evitate astfel suprapunerile de date úi
eficientă a magistralei (prin repartizarea dinamică a duratelor de acces bazată pe alterarea reciprocă a datelor provenite de la procesoare diferite. În plus, cele două
predicĠii úi pe comportări anterioare ale proceselor care se repetă la fiecare CPU etc.). CPU sunt interconectate printr-o magistrală de mare viteză, de tipul HyperTransport
Intel Xeon biprocesor (tehnologie patentată de AMD), care nu are legătură directă cu memoria (spre
Sistemul este echipat cu două procesoare Intel Xeon instalate pe o placă de deosebire de un sistem clasic) úi care asigură un dialog eficient între componente.
bază de tipul Supermicro P4DC6+. Această placă de bază este dotată cu cipsetul Cele două procesoare pot accesa memoriile proprii cu latenĠe foarte mici (mult
i860, constituit din trei componente principale: Intel 82806AA PCI 64 Hub (Intel mai mici decât la sisteme tradiĠionale), precum úi memoria care nu le aparĠine direct,
P64H din figura 2.38), Intel 82860 Memory Controller Hub (MCH din figura 2.38) dar cu latenĠe mari. Aceasta nu constituie un dezavantaj, deoarece un CPU lucrează
úi Intel 82801BA I/O Controller Hub (ICH2 din figura 2.38). Aceste blocuri în mod normal doar în zona de memorie care îi este repartizată. Totuúi această
asigură un transfer foarte rapid de date atât între procesoare, cât úi între acestea úi tehnologie are úi un punct slab: organizarea corectă a memoriei este crucială. Astfel,
memorie sau dispozitive periferice. arhitectura NUMA trebuie suportată atât de sistemul de operare, cât úi de aplicaĠii.
Tipuri de arhitecturi 57 58 ARHITECTURA SISTEMELOR DE CALCUL

2.4.2.3. Arhitecturi multinucleu


Un 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 circuite
integrate interconectate. Un procesor cu mai multe nuclee implementează o
arhitectură de multiprocesare într-un singur pachet fizic. Un procesor cu toate
nucleele pe acelaúi circuit integrat se numeúte procesor multinucleu monolitic.
Nucleele pot partaja un singur cache de nivel înalt (de ex.: cache-ul L2
pentru procesoarele Core 2 de la Intel) sau pot avea câte un cache separat pentru
fiecare nucleu (de ex.: linia de procesoare dual-core de la AMD). Fiecare nucleu
implementează separat optimizări hardware, cum sunt: sisteme pipeline, execuĠie
superscalară, 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 procesoare
multinucleu sunt cele de pe piaĠa calculatoarelor personale (Intel úi AMD), precum
úi 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 să
interacĠioneze cu o frecvenĠă mai mare decât dacă ele ar fi fost separate
Fig. 2.39. Arhitectura sistemului AMD Opteron biprocesor.
(două procesoare pe o placa de bază).
Sistemele de operare Windows XP úi Windows server 2003 suportă în  Procesoarele multinucleu oferă designerilor posibilitatea de a face plăcile
întregime această tehnologie, opĠiunea activându-se automat la detectarea unui de bază mai mici decât pentru două sau mai multe procesoare.
sistem de acest tip.  Un procesor cu două nuclee consumă mai puĠin decât două procesoare
cu câte un singur nucleu, deoarece acestea necesită mai multă putere să
Calculatoarele biprocesor se pretează pentru diverse aplicaĠii complexe, care
transmită aceleaúi semnale în afara cipului,
necesită putere de calcul. Aici intră aplicaĠiile grafice de modelare 3D, aplicaĠiile
de reĠea (mai ales dacă sistemul este unul de tip nod coordonator de trafic sau  PreĠul produsului este mai redus, pachetul fizic fiind de un singur
server pentru subreĠele de diverse dimensiuni) úi aplicaĠiile specifice de prelucrare procesor în loc de mai multe.
a semnalelor în timp real. Tot ce au acestea în comun este faptul că sunt create Dezavantajele sistemelor cu procesoare multinucleu sunt:
astfel încât să lucreze cu mai multe fire de execuĠie simultan, conform principiilor  Deúi, teoretic, două procesoare pot dubla viteza de calcul, software-ul
de calcul paralel. Aceste tipuri de algoritmi sunt create pentru a minimiza timpul de trebuie optimizat pentru a beneficia de acest lucru, în funcĠie de
execuĠie foarte mare pe care îl implică acele aplicaĠii în situaĠii normale. posibilitatea aplicaĠiilor úi a sistemului de operare de a crea fire de
În ultima vreme, câútigă popularitate un nou tip de aplicaĠii care pot folosi execuĠie (thread-uri) paralele úi independente.
arhitectura biprcocesor, anume sistemele embedded. În esenĠă, este vorba despre  Integrarea a încă unui nucleu în acelaúi circuit integrat pune probleme
conectarea în paralel, pe aceeaúi placă, a două (sau mai multe) procesoare deosebite din punct de vedere termic, deoarece, practic, acelaúi pachet
specializate, cu un scop bine definit, spre deosebire de calculatoarele personale, fizic trebuie să disipeze de două ori mai multă putere. Intel a rezolvat
care au scopuri multiple. De exemplu: prelucrarea unui semnal audio (codare úi această problemă prin integrarea a două nuclee dual-core úi a unui cache
decodare) úi, eventual, transmiterea lui mai departe. Din această clasă fac parte unificat în locul unui nucleu quad-core cu memorii cache separate. Astfel,
procesoarele DSP de la firma Texas Instruments. Premisa acestor aplicaĠii este că se forĠează lucrul numai al unuia dintre cele două nuclee, în loc de toate
procesorul este adaptat să realizeze un număr restrâns de operaĠii cu scopuri bine patru deodată, micúorând puterea instantanee disipată de întregul procesor.
determinate. În plus, DSP-ul este capabil să ruleze aplicaĠii de sine stăWătoare, care  Din punct de vedere al arhitecturii, procesoarele cu un singur nucleu
Vă ofere interfaĠă cu utilizatorul úi suport pentru memorare úi transmitere către alte folosesc mai eficient resursele de tranzistori de pe cip. Astfel, o
componente conectate la acesta. De exemplu: un subsistem care, conectat la un PC, companie care produce procesoare trebuie tot timpul să aibă o linie de
Vă codeze/decodeze fiúiere audio în format mp3. procesoare cu un singur nucleu în paralel cu cele multinucleu.
Tipuri de arhitecturi 59 60 ARHITECTURA SISTEMELOR DE CALCUL

 Există mai mulĠi factori care limitează performanĠa reală a unui sistem
multinucleu. În primul rând, magistralele de sistem úi de memorie sunt
partajate, astfel încât devin „gâtuiri” (bottlenecks) care limitează fluxul
de date către nucleele multiple ale procesoarelor, în acelaúi mod în care o
úosea cu prea puĠine benzi de circulaĠie produce uneori blocaje.
Intel Core 2
Procesoarele Intel Core 2 Duo sunt produse folosind tehnologia de fabricare
Intel pe 65 nm. Versiunea pentru desktop-uri a procesoarelor furnizează o creútere
de 40% a performanĠei úi este cu peste 40% mai eficientă din punct de vedere al
consumului 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 de
performanĠă pentru desktop-uri, servere úi calculatoare destinate jocurilor.
Familia de procesoare Intel Core 2 Duo este formată din 5 procesoare pentru
platforme desktop destinate afacerilor, utilizării individuale úi entuziaútilor pentru
tehnologie, precum úi din 5 procesoare pentru notebook-uri.
Familia de procesoare Intel Core 2 Duo este bazată pe micro-arhitectura Intel
Core. Prin intermediul celor două nuclee de execuĠie, procesoarele pot executa cu
viteză un număr mai mare de instrucĠiuni. De asemenea, procesoarele pot opera
mai 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ăWăĠirea execuĠiei programelor, de
Fig. 2.40. Nucleul de execuĠie al procesorului Intel Core.
exemplu, în cazul vizionării unor clipuri high-definition sau al protejării PC-ului în
timpul tranzacĠiilor financiare pe Internet, crescând, de asemenea, autonomia UnităĠile de execuĠie cu numere întregi
bateriei în cazul notebook-urilor, care pot deveni astfel mai subĠiri úi mai uúoare. Intel Core are trei asemenea unităĠi pe 64 biĠi, fiecare dintre ele putând
InovaĠiile aduse de Intel prin introducerea arhitecturii Intel Core 2 (Duo úi realiza operaĠii pe 64 biĠi într-un singur ciclu. Există úi o unitate pe 64 biĠi de
Exteme) sunt următoarele: numere complexe (CIU – Complex Integer Unit), care realizează în mare parte
Intel Wide Dynamic Execution – îmbunăWăĠHúte performanĠa úi eficienĠa, aceeaúi muncă precum cea din P6, úi două unităĠi simple de numere întregi (SIU –
întrucât fiecare nucleu de execuĠie poate realiza până la 4 instrucĠiuni simultan, Simple Integer Unit), pentru operaĠiile uzuale, cum ar fi adunarea. Una din unităĠile
folosind un pipeline eficient în 14 stagii. SIU împarte portul 2 cu BEU (Branch Execution Unit), pe care Intel o numeúte
Intel Smart Memory Access – îmbunăWăĠHúte performanĠa sistemului, unitatea de salt în execuĠie). Pe acest port, SIU este capabil să lucreze în tandem cu
diminuând latenĠa cipurilor de memorie úi optimizând astfel utilizarea lărgimii de BEU pentru a executa instrucĠiuni macro (comparaĠii sau teste +jcc).
bandă disponibile pentru furnizarea datelor către procesor când úi unde este nevoie. Posibilitatea de a realiza calcule pe 64 biĠi într-un singur ciclu este o
Intel Advanced Smart Cache – include o memorie cache L2 comună, premieră în arhitectura Intel 86 úi aceasta îl pune înaintea IBM, cu al său Power
proiectată pentru a reduce consumul de energie prin micúorarea traficului de PC970, care are o latenĠă de două cicluri pentru operaĠii cu numere întregi. În plus,
memorie, úi măreúte performanĠa, permiĠând unui nucleu de execuĠie să utilizeze datorită unităĠilor ALU pe 64 biĠi care sunt pe porturi separate, Intel Core poate
întreg cahe-ul atunci când celălalt nucleu nu este folosit. Această funcĠie este menĠine un total de trei operaĠii pe 64 biĠi per ciclu.
asigurată pentru toate segmentele de piaĠă: server, desktop úi notebook. UnităĠile de execuĠie în virgulă mobilă
Intel Advanced Digital Media Boost – dublează efectiv viteza de execuĠie a Intel Core are două unităĠi de execuĠie în virgulă mobilă, care se ocupă de
instrucĠiunilor folosite cu precădere în aplicaĠiile grafice úi multimedia. ambele tipuri de operaĠii aritmetice: scalare úi vectoriale.
Intel 64 Technology – această îmbunăWăĠire adusă arhitecturii Intel pe 32 de Unitatea de execuĠie de pe portul 1 se ocupă cu adunări sau cu alte operaĠii
biĠi oferă suport pentru procesarea pe 64 de biĠi úi permite procesorului să acceseze simple în virgulă mobilă, după cum urmează:
o cantitate mai mare de memorie.
 scalar: simplă precizie (32 biĠi) úi dublă precizie (64 biĠi);
Nucleul de execuĠie al procesorului Intel Core este reprezentat în figura 2.40.
 vector: simplă precizie (4) úi dublă precizie (2).
Caracteristicile funcĠionale ale acestei arhitecturi sunt expuse în cele ce urmează.
Tipuri de arhitecturi 61 62 ARHITECTURA SISTEMELOR DE CALCUL

Unitatea de execuĠie în virgulă mobilă de pe portul 2 se ocupă cu înmulĠiri úi Deoarece lăĠimea execuĠiei a fost mărită considerabil, vechiul hardware de
împăUĠiri cu vectori úi scalari în formatele listate mai sus. decodare al lui P6 ar fi fost inadecvat pentru a Ġine restul procesorului ocupat cu
Procesarea vectorială reală pe 128 biĠi micro-operaĠii. Intel a trebuit să mărească rata de decodare, în aúa fel încât mai multe
Arhitectura Intel Core asigură latenĠa de un ciclu pentru operaĠiile vectoriale micro-operaĠii/ciclu să ajungă la final. Primul lucru pe care l-a făcut a fost să adauge
pe 128 biĠi. Intel realizează acest lucru făcând magistrala pentru virgulă mobilăúi încă un decodor simplu úi rapid, ceea ce înseamnă că decodorul hardware poate
cea internă de date cu lăĠimea de 128 biĠi, facilitate care înseamnă că este necesară trimite până la 7 instrucĠiuni pe ciclu în coada de aúteptare ROB (vezi figura 2.42).
doar o singură micro-operaĠie (care trebuie generată, trimisă, programată úi
realizată) pentru fiecare operaĠie vectorială pe 128 biĠi. De aceea, noul design nu
numai că elimină dezavantajul generat de latenĠă, dar în acelaúi timp îmbunăWăĠHúte
decodarea úi programarea lărgimii de bandă, pentru că jumătate din micro-operaĠii
sunt generate pentru instrucĠiuni vectoriale de 128 biĠi (vezi figura 2.41).

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.41. ConfiguraĠia de procesare vectorială reală pe 128 biĠi.

Pipeline-ul
Intel 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 mai
lung decât cel de la P6 (12 etape). Aceasta înseamnă că Intel Core este proiectat
pentru o creútere lentă a vitezei de ceas úi nu scalează la fel de rapid ca Pentium 4.
Fereastra de instrucĠiuni
Deoarece 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 avea
Pentium 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 lui
Intel Core să reĠină mai multe instrucĠiuni cu un număr mai mic de resurse
hardware. Fig. 2.43. Arhitectura AMD Opteron Dual-core.
Tipuri de arhitecturi 63 64 ARHITECTURA SISTEMELOR DE CALCUL

Tehnologic vorbind, AMD nu a realizat doar o simplă alipire a unei perechi Noul microprocesor triple-core prezintă propriul design úi nu este un cip
de nuclee K8 pe o bucată de siliciu, ci a efectuat o integrare la nivelul de bază, quad-core cu un core dezactivat. Totuúi, cipurile includ 2 MB de cache L3 partajat
astfel încât cele două nuclee să poată acĠiona împreună mai eficient. Fiecare dintre úi beneficiază de caracteristicile micro-arhitecturii K10, cum sunt setul de
nucleele K8 are propriul său cache L2, independent, încorporat, dar cele două instrucĠiuni SSE4A úi unităĠile de prelucrare în virgulă mobilă (FPU) de 128 biĠi.
nuclee împart o coadă comună a cererilor de sistem, un controler de memorie DDR Evident, cipurile dispun de posibilităĠi avansate de gestiune a puterii.
de tip dual-channelúi un set de legături HyperTransport cu mediul exterior. Potrivit unor estimări ale laboratoarelor X-bit, fiecare motor al procesoarelor
Accesul la resursele I/O este adjudecat printr-o reĠea crossbar sau printr-un quad-core AMD Opteron/Phenom ocupă aproximativ 13% din aria fizică a
switch, astfel încât fiecare CPU poate comunica direct úi eficient cu memoria sau capsulei. Date fiind întreaga dimensiune de 285 mm² úi numărul de aproximativ
cu dispozitivele I/O. În unele privinĠe, Opteron Dual-core se comportă foarte 218 cipuri candidate obĠinute din fiecare bucată de 300 mm, este neobiúnuit faptul
asemăQător unui sistem cu multiprocesare simetrică on-chip, transferând date intern Fă AMD a decis dezvoltarea unui design triple-core cu aria fizică de 247 mm² úi
între cele două nuclee. Cu toate acestea, pentru restul infrastructurii I/O a 250 de cipuri candidate obĠinute de pe o bucată de 300 mm. Tehnic, AMD poate
sistemului, Opteron Dual-core pare asemenea versiunii mononucleu. realiza uúor microprocesoare cu un număr impar de motoare de procesare datorită
Arhitectura de sistem pentru Opteron este foarte diferită de cea a arhitecturii sale Direct Connect. Cu versiunile sale Phenom úi Athlon 64 2, AMD
competitorului său principal, Intel Xeon. Arhitectura AMD Direct Connect a fost are de combătut procesoarele Intel Core 2 (dual-core úi quad-core).
supra-dimensionată pentru procesorul Opteron mononucleu, anticipând viitorul
Intel úi AMD Quad-core
dual-core. Fiecare procesor (mono- sau binucleu) are propriul său controler de
Ca replică la lansarea CPU-urilor quad-core de la Intel, AMD a lansat
memorie DDR local de tip dual-channel, iar procesoarele comunică între ele úi cu
propria platformă, Quad FX. Această platformă este un sistem de multiprocesare
cipurile I/O prin legături HyperTransport punct-la-punct, la frecvenĠa de 1 GHz.
simetrică, utilizând două CPU-uri Athlon 64 FX dual-core. De aceea, un calculator
/ărgimea totală de bandă posibilă prin cei 940 de pini ai procesorului Opteron 875
personal Quad FX are două procesoare fizice dual-core care lucrează în paralel,
este de 30,4 GB/s. Cu o legătură HyperTransport mai puĠin, procesorul Opteron
având în total, în sistem, patru nuclee CPU. Aceste două CPU-uri sunt
275 poate atinge, teoretic, viteza de 22,4 GB/s.
interconectate printr-o magistrală coerentă dedicată tehnologiei HyperTransport.
Prin contrast, procesoarele Xeon actuale au o magistrală front-side (FSB)
În CPU-urile quad-core de la Intel, nucleele sunt organizate în perechi.
partajată, pe care lucrează cipul Northbridge (cu controler de memorie) úi ambele
Nucleele fiecărei perechi pot interschimba informaĠii direct (la fel se întâmplă la
procesoare. La frecvenĠa de 800 MHz, lărgimea totală de bandă este de 6,4 GB/s,
AMD dual-core úi la Intel Core 2 Duo), dar pentru a schimba informaĠii cu unul
ceea ce poate fi un bottleneck în anumite situaĠii.
dintre nucleele localizate în cealaltă pereche trebuie să acceseze magistrala externă
AMD Phenom Triple-core a CPU, ceea ce se întâmplă pe platforma Quad FX, unde CPU-urile comunică între
AMD are în producĠie un procesor cu trei motoare de procesare, proiectul ele folosind magistrala externă coerentă HyperTransport.
numindu-se AMD Phenom 3 chip (vezi figura 2.44). DiferenĠa dintre platforma Quad FX úi arhitectura utilizată de către
procesoarele Intel quad-core se poate remarca în figurile 2.45 úi 2.46.
Comparând cele două arhitecturi, se poate observa că platforma Quad FX
deĠine un avantaj în ceea ce priveúte accesul la memorie. Magistrala externă a
CPU-ului Intel quad-core (Front Side Bus, FSB) este utilizată pentru a accesa
memoria 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 în
fiecare direcĠie. Magistrala HyperTransport oferă două canale de comunicaĠie, câte
unul pentru fiecare direcĠie. În procesoarele AMD, controlerul de memorie este
încorporat în CPU úi, ca urmare, memoria este accesată utilizând o magistrală
dedicată, separat de canalul folosit de către CPU pentru a accesa restul PC-ului.
Datorită faptului că platforma Quad FX foloseúte o arhitectură de
multiprocesare simetrică, fiecare CPU îúi accesează propria memorie RAM.
Procesoarele utilizate pe platforma Quad FX pot accesa, de asemenea, memoria
Fig. 2.44. Arhitectura AMD Phenom Triple-core. controlată de un alt CPU.
Tipuri de arhitecturi 65

3. STRUCTURA UNUI CALCULATOR

3.1. Unitatea centrală (procesorul)

Unitatea centrală (UC) este creierul calculatorului. Rolul UC este de execuĠie


a programelor stocate în memoria principală, execuĠie realizată în trei etape:
 extragerea instrucĠiunilor;
 decodificarea instrucĠiunilor;
 execuĠia lor propriu-zisă.
Fig. 2.45. Arhitectura Intel quad-core

Fig. 3.1. Schema bloc a unui calculator.

Unitatea de comandăúi control urmăreúte ordinea de execuĠie a instrucĠiunilor


unui program úi controlează întreaga activitate a unităĠii centrale, astfel:
 interpretează instrucĠiunile programului din memoria internăúi comandă
circuitele să execute instrucĠiunile;
Fig. 2.46. Arhitectura AMD Quad FX.  comandă úi controlează transferul de date dintre memoria internă úi
dispozitivele periferice.
În ultima vreme, câútigă popularitate sistemele de tip embedded. Este vorba
Unitatea aritmetică úi logică (ALU) implementează funcĠiile logice, úi
despre conectarea în paralel a mai multor procesoare specializate, pe aceeaúi placă,
execută operaĠiile aritmetice elementare: adunare, scădere, înmulĠire, împăUĠire.
cu un scop bine definit. De exemplu, prelucrarea unui semnal audio (codare úi
Registrele interne pot fi:
decodare) în format mp3. Procesorul este adaptat să realizeze un număr restrâns de
operaĠii specifice, iar DSP-urile sunt capabile să ruleze aplicaĠii de sine stăWătoare,  de uz general;
care să ofere interfaĠă cu utilizatorul, suport pentru memorare úi transmitere.  cu destinaĠie specifică.
Structura unui calculator 67 68 ARHITECTURA SISTEMELOR DE CALCUL

Registrele de uz general stochează valorile intermediare ale calculelor. Rezultă că:


Registrele cu destinaĠie specifică – contorul de program (program counter, PC)
indică adresa noii instrucĠiuni care urmează a fi executată precum úi adresa P(t) = Ni  Np  Tc (sec). (3.1)
instrucĠiunii curente care se execută.
Reducerea numărului de instrucĠiuni Ni se face optimizând compilatorul úi
utilizând o arhitectură adecvată acestui compilator.
3.1.1. ExecuĠia unei instrucĠiuni Np se reduce fie optimizând compilatorul, aceasta însemnând utilizarea unor
instrucĠiuni de durată mai scurtă, fie utilizând o arhitectură paralelă, deci utilizarea
Timpul necesar execuĠiei unei instrucĠiuni se numeúte ciclu instrucĠiune. mai multor instrucĠiuni simultan. La optimizarea Np, apar limitări tehnologice legate
Etapele în execuĠia unei instrucĠiuni sunt: de implementarea procesorului.
1. încărcarea instrucĠiunii din memorie în registrul de instrucĠiuni (fetch); Durata TcĠine exclusiv de o tehnologie avansată.
2. actualizarea PC pentru a indica următoarea instrucĠiune care va fi executată;
3. decodificarea instrucĠiunii din registrul de instrucĠiuni; 3.1.2.2. Indici de performanĠă
4. localizarea în memorie a eventualelor date utilizate de instrucĠiune; Până în 1992, se utiliza următoarea pereche de mărimi: Whetstones úi
5. încărcarea datelor (dacă este necesar) în registrele interne ale UC; Dhrystones, care arătau practic viteza UC. Începând din 1992, s-a trecut la alĠi
6. execuĠia efectivă a instrucĠiunii; indici de măsurare a performanĠei, úi anume indicii SPEC, cu care s-a înlocuit
7. stocarea rezultatelor la destinaĠia corespunzătoare; perechea anterioară.
8. întoarcerea la etapa nr. 1 pentru a executa următoarea instrucĠiune. Standard Performance Evaluation Corporation (SPEC) este o organizaĠie
non-profit care a luat naútere în 1988 úi are ca scop asigurarea testelor corecte úi
utile pentru a face diferenĠă între sistemele de pe piaĠă. Testele SPEC sunt larg
3.1.2. Tipuri de unităĠi centrale folosite actualmente în evaluarea performanĠei calculatoarelor, rezultatele fiind
afiúate pe site-ul SPEC. Acestea poartă denumirea de note SPEC (SPECmarks).
Criteriul după care se clasifică unităĠile centrale este cel al setului de Testele sunt concepute pentru a realiza situaĠii din viaĠa reală. De exemplu,
instrucĠiuni: SPECweb2005, realizează un test al performanĠei serverului de web prin mai multe
 procesoare CISC (Complex Instruction Set Computer); tipuri de cereri paralele HTTP. PerformanĠa microprocesorului este testată prin
 procesoare RISC (Reduced Instruction Set Computer). rularea câtorva programe (de exemplu, compilatoare gcc) sau printr-un joc de úah.
În ultimul timp, s-a produs migrarea de la CISC la RISC. Diverse cerinĠe sunt atribuite în funcĠie de importanĠa percepută, pentru a rezulta
un singur rezultat final. Testele SPEC au fost actualizate în repetate rânduri.
3.1.2.1. PerformanĠa unităĠii centrale Aceste teste sunt scrise pe o platformă de limbaj de programare neutră (de
PerformanĠa UC se referă întotdeauna la o aplicaĠie dată, existând mai multe obicei, C sau Fortran), iar păUĠile interesate pot compila codul folosind metoda
moduri de evaluare a performanĠei: dorită, dar făUă a schimba codul. Producătorii au lucrat la îmbunăWăĠirea
 mips (mega instructions per second): milioane de instrucĠiuni pe secundă; compilatoarelor pentru a realiza o cât mai bună acurateĠe a diferitelor teste SPEC.
 flops (floating point operations per second): operaĠii în virgulă mobilă Teste SPEC actuale sunt:
executate pe secundă (exprimat uzual în Mflops sau Gflops);  SPEC CPU2006 – combină performanĠele microprocesorului, memoriei
 timpul în care un anumit procesor poate să rezolve o anumită secvenĠă úi compilatorului;
de program (o sarcină particulară).  CINT2006 sau SPECint – testează aritmetica numerelor întregi, folosind
PerformanĠa este produsul a trei factori: compilatoare, interpretoare, procesoare de text, programe de úah;
 CFP2006 sau SPECfp, testează performanĠa în virgulă mobilă, cu
 numărul de instrucĠiuni executate în cazul unei aplicaĠii date (Ni);
simulări fizice, grafică 3D, procesare de imagine, chimie computaĠională;
 numărul mediu de perioade de ceas necesare pentru execuĠia unei
 SPECjms2007 – testează performanĠa serviciului de mesaje Java;
instrucĠiuni (Np);
 SPECweb2005 – testează performanĠa în PHP/JSP;
 durata unei perioade de ceas (Tc).
 SPECviewperf – testează performanĠa unui sistem 3D OpenGL, cu
Valoarea Np se exprimă în cicluri de ceas/instrucĠiune, iar Tc se exprimă în
ajutorul diferitelor sarcini de randare din aplicaĠii reale;
timp/ciclu de ceas.
 SPECapc – testează performanĠa aplicaĠiilor 3D cunoscute unui sistem dat;
Structura unui calculator 69 70 ARHITECTURA SISTEMELOR DE CALCUL

 SPEC OMP2001 V3.2 – evaluează performanĠelor sistemului paralel,


folosind aplicaĠii OpenMP;
 SPEC MPI2007 – evaluează performanĠele sistemelor paralele, folosind
aplicaĠii MPI (Message Passing Interface);
 SPECjvm98 – evaluează performanĠa unui sistem client, care rulează o
maúină virtuală Java;
 SPECjAppServer2004 – evaluează performanĠa aplicaĠiilor bazate pe
Java 2 Enterprise Editition (J2EE);
 SPEC jbb2005 – evaluează performanĠa serverului Java, prin emularea
unui sistem client-server;
 SPEC MAIL 2001 – evaluează performanĠa unui server de mail, cu
testarea 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;
Fig. 3.2. Schema unităĠii centrale.
 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 se 3.2. Memoria
obĠin astfel 6 note, din care nota finală rezultă prin mediere geometrică.
Pentru SPECfp, se rulează 12 programe care folosesc virgulă mobilă (12 Memoria reprezintă acea parte a calculatorului în care sunt stocate
programe în Fortran úi două programe în C), din care se obĠin 14 note. Nota finală programele úi datele. Practic, de aici procesorul preia datele de care are nevoie úi
se obĠine tot prin media geometrică. tot aici scrie rezultatul. Unitatea de memorie este o cifră binară care poate lua
numai două valori: 0 sau 1.
3.1.3. Organizarea unităĠii centrale Microprocesorul are capacitatea de a memora atât datele care urmează a fi
prelucrate, cât úi rezultatele intermediare. Se observă că rolul său principal este de a
Datele care trebuie prelucrate sunt aduse din registrele interne în registrele de prelucra úi transmite datele. Capacitatea de memorare este mică, neputând stoca, de
intrare ale ALU, unde acestea rămân în timpul în care ALU face operaĠiunea de exemplu, programe.
calcul aritmetic úi logic. Rezultatul calculului preluat de registrele de ieúire ale ALU Sistemul de memorie al unui calculator reprezintă ansamblul unităĠilor de
este stocat într-unul din registrele de uz general. memorie, împreună cu algoritmii necesari pentru controlul transferurilor úi
Există trei tipuri de instrucĠiuni (vezi figura 3.2): memorarea datelor, algoritmi care pot fi implementaĠi hardware sau software.
 instrucĠiuni registre-memorie: se încarcă date din memorie în registre Sistemul de memorie include atât locaĠiile de memorie propriu-zise, cât úi circuitele
úi viceversa. Datele pot fi folosite mai departe de alte instrucĠiuni sau necesare pentru adresarea locaĠiilor úi controlul operaĠiilor de citire úi scriere. O
chiar de instrucĠiunile respective. În acest ultim caz, rezultatul este depus parte din aceste circuite se găsesc în unitatea de memorie respectivă, altele sunt
în registre; externe, fiind de obicei integrate în controlerul unităĠii de memorie.
 instrucĠiuni registre-registre: mută operanzii din registrul de la intrarea Obiectivul principal în proiectarea oricărui sistem de memorie este realizarea
ALU, execută asupra lor o anumită operaĠie úi depun din nou operanzii unei capacităĠi de memorare adecvate sistemului de calcul, cu un nivel acceptabil
în registru; de performanĠe, la un cost rezonabil. Trebuie subliniat faptul că nu întotdeauna
 instrucĠiuni memorie-memorie: preiau operanzii din memorie, îi obiectivul este acela de a obĠine o capacitate de memorare cât mai mare.
plasează în registrul de intrare ALU, se execută o anumită operaĠie úi se
stochează rezultatul în memorie.
Structura unui calculator 71 72 ARHITECTURA SISTEMELOR DE CALCUL

3.2.1. Caracteristicile unităĠilor de memorie Dacă locaĠiile de memorie pot fi accesate în orice ordine, iar timpul de acces
este independent de locaĠia accesată, atunci accesul este aleator, iar unitatea de
Capacitatea de memorare reprezintă numărul locaĠiilor (celulelor) de memorie se numeúte memorie cu acces aleator (Random Access Memory, RAM).
memorie conĠinute de o unitate de memorie. Aceasta depinde de tehnologia de În general, memoriile semiconductoare sunt memorii cu acces aleator.
fabricaĠie úi se exprimă în număr de cuvinte de informaĠie memorată (cuv), Prin ierarhizarea unităĠilor de memorie, blocurile de date cu probabilitatea
dimensiunea cuvântului fiind diferită de la un calculator la altul. cea mai mare de accesare sunt aduse pe niveluri superioare, mai aproape de
Timpul de acces la o unitate de memorie (tA) este timpul necesar localizării unitatea centrală (localizare spaĠială). Dintre acestea, datele cele mai recent
unei celule de memorie pentru transferul de date la/de la locaĠia de memorie accesate sunt păstrate în apropierea procesorului (localizare temporală).
respectivă. Acesta reprezintă intervalul de timp calculat din momentul în care o
unitate master lansează o comandă către o unitate de memorie úi până în momentul
în care informaĠia este transferată în sensul dorit. 3.2.2. Ierarhizarea memoriei
Rata de acces (rA) este inversa timpului de acces, fiind exprimată în cuvinte
pe secundă: Pornind de la funcĠiile realizate de fiecare tip de memorie, de la rolul úi locul
ocupat în sistemul de calcul, se pot distinge mai multe categorii de memorii,
1 ilustrate în figura 3.3.
rA = [cuv/s]. (3.2)
tA

Timpul de ciclu la o unitate de memorie (tC) este timpul minim între două
accese succesive úi reprezintă timpul din momentul în care o unitate master
lansează o comandă spre unitatea de memorie úi până când poate lansa o nouă
comandă la aceeaúi unitate de memorie. Uzual, tC > tA, diferenĠa lor numindu-se
timp de revenire (tR = tC – tA). Acesta reprezintă timpul minim necesar pentru
inactivarea primei comenzi, până la activarea celei de-a doua.
Rata de transfer (rT) este inversa timpului de ciclu úi reprezintă cantitatea
maximă de informaĠie (exprimată în cuvinte pe secundă) care poate fi transferată
Fig. 3.3. Ierarhizarea memoriei.
la/de la memorie într-o secundă:
3.2.2.1. Registrele de memorie
1 Reprezintă dispozitivele de memorie cele mai rapide, dar úi cele mai scumpe.
rT = [cuv/s]. (3.3)
tC Sunt utilizate de procesor, fiind de două feluri: cu destinaĠie specifică úi de uz
general.
Costul total al unităĠii de memorie (CT) include, pe lângă costul celulelor Registrele cu destinaĠie specifică au un rol precis úi memorează numai
de memorie propriu-zise, costul circuitelor de acces la aceste celule. Pentru anumite tipuri de informaĠie (de exemplu, contorul de program). Din acest motiv,
compararea diverselor unităĠi de memorie între ele, se utilizează costul unitar pentru ca procesorul să realizeze o anumită operaĠie, este accesat un anumit
(CU), care reprezintă costul de memorare a unui cuvânt de informaĠie. Costul unitar registru, úi anume, acela care memorează tipul de informaĠie dorit. În acest fel, nu
se determină prin raportarea costului total (CT) la capacitatea de memorare (CM): este necesar ca registrul să fie accesat prin adresă, fapt care măreúte viteza de acces
la informaĠia memorată în registre.
CT Registrele de uz general sunt registre nespecializate, care pot fi utilizate
CU = [cost/cuv]. (3.4) explicit prin instrucĠiuni-program. Capacitatea registrului depinde de tipul
CM
procesorului úi nu depăúHúte de obicei lungimea cuvântului de memorie. Numărul
de registre de memorie este mic, utilizându-se de regulă 16–20 registre.
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 3.2.2.2. Memoria internă
informaĠia memorată poate fi accesată. Acesta poate fi serial sau paralel. ConĠ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
Structura unui calculator 73 74 ARHITECTURA SISTEMELOR DE CALCUL

aceasta memorie. Memoria internă este o memorie read-write cu acces direct Plecând de la aceste constatări, memoria cache conĠine la un moment dat
(RAM). Ea trebuie să aibă un timp de acces redus, pentru a nu întârzia activitatea cópii ale unor date din memoria principală. Înainte de orice acces la memoria
procesorului. Tipurile de memorie din această categorie sunt: principală, se verifică dacă nu cumva informaĠia căutată se găseúte în memoria
 Memoriile DRAM (Dynamic Random Access Memory) sunt memorii cache. Dacă aceasta există, se preia de acolo cu o viteză superioară.
RAM dinamice, în care, pentru a se păstra informaĠia, trebuie restabilită Memoria intermediară, numităúi memorie cache pentru suporĠi externi sau
periodic sarcina electrică cu care a fost încărcat condensatorul circuitului memorie cache de disc (Disk-Cached Memory), este plasată între memoria
de memorie. Pentru aceasta, este necesar un circuit de reîmprospătare a principală úi memoria secundară, acĠionând într-o manieră similară memoriei
memoriei (refresh). cache. Are rol de memorie tampon, care păstrează blocurile de date cel mai recent
 Memoriile SRAM (Static Random Access Memory) sunt memorii RAM accesate de un program, duplicări ale celor din memoria secundară.
statice, realizate cu circuite basculante bistabile de memorie, care
Săstrează informaĠia atât timp cât sistemul este sub tensiune. 3.2.2.3. Memoria externă
La calculatoarele PC, cipurile de memorie sunt asamblate pe plăci de Pentru a utiliza datele memorate în memoria externă, acestea trebuie aduse
memorie organizate în bancuri de memorie. Aceste bancuri se instalează în placa mai întâi în memoria principală. Prin comparaĠie cu memoria internă, memoria
de bază a PC-ului, în soclurile rezervate memoriei interne. Acest mecanism permite externă se caracterizează prin viteză de acces mai scăzută, cost mai redus,
modificarea dimensiunii memoriei interne a PC-ului, prin adăugarea de noi bancuri capacitate mai mare, având rolul de a mări spaĠiul de memorare al unui sistem de
de memorie în locurile disponibile sau prin schimbarea bancurilor cu altele de calcul. În memoria externă sunt stocate úi programele cu ajutorul cărora se realizează
capacitate mai mare. prelucrarea datelor. Accesul la memoria externă nu se face direct, ci prin intermediul
Memoria principală sau memoria primară reprezintă memoria de lucru a memoriei interne. În comparaĠie cu memoria internă, memoria externă este:
sistemului de calcul, fiind realizată cu circuite integrate de memorie DRAM úi  nevolatilă,
având o capacitate de memorare relativ mare (sute de MB). Memoria principală  cu acces poziĠional úi timp de acces mai mare,
Săstrează datele active, care vor fi apelate de către procesor, dar care nu sunt  cu viteză de transfer mai mică,
imediat necesare acestuia. Datele devin active prin transferarea lor din memoria  cu cost mai redus,
secundară în memoria principală, fiind memorate sub formă de blocuri de date, în  cu capacitate mult mai mare,
zone de memorie, proprii fiecărui program. Viteza de lucru a memoriei principale  de tip read-write,
este mult mai mică decât cea a registrelor procesorului (cu 2–3 ordine de mărime),  cu densitate de memorare variabilă de la un echipament la altul úi de la
având timpi de acces aleator de zeci până la sute de ns. un suport la altul (magnetic, optic, semiconductor).
Memoria nevolatilă cu acces aleatoriu (NVRAM) este cea care stochează Memoria secundară este organizată pe un suport extern de memorie, de
date atunci când calculatorul este închis sau nu mai are energie. Memoria NVRAM regulă disc magnetic, úi are rolul de a realiza o extindere a memoriei principale,
este utilizată pentru a menĠine informaĠiile privind configuraĠia calculatorului, cum conform conceptului de memorie virtuală, care se referă la capacitatea procesorului
ar fi data, ora úi alte opĠiuni de pornire care pot fi setate de utilizator. de a utiliza un spaĠiu de memorie externă pentru a simula o capacitate mai mare a
Memoria cache este o memorie specializată, utilizată în scopul scăderii memoriei interne disponibile. Altfel spus, este vorba de capacitatea procesorului de a
timpului de acces la datele din memoria internă. Are capacitate micăúi viteză mare, accesa un spaĠiu de adrese care depăúHúte spaĠiul de adrese al memoriei principale.
fiind inserată logic între procesor úi memoria principală. Constructiv, este o memorie Acest concept a apărut încă din anul 1960, iar la PC este disponibil începând cu seria 286.
mai rapidă decât memoria principală, construită, de regulă, din circuite SRAM. Memoria suplimentară poate fi de mai multe tipuri: memorie expandată,
Memoria cache are timpul de acces de 2–10 ori mai mic (ns) decât cel al memorie extinsăúi memorie de arhivare sau terĠiară.
memoriei primare, fiind însăúi de câteva ori mai scumpă. Se urmăreúte ca procesorul Memoria expandată este o memorie suplimentară la calculatoarele de tipul
Vă lucreze cât mai mult timp cu memoria cache, úi nu cu memoria principală. PC, pe care utilizatorul o accesează prin intermediul mecanismului EMS (Extended
Pentru o memorie cache bine implementată, procesorul lucrează cu aceasta circa Memory Specification). Este alcătuită din bancuri de memorie de 64 KB RAM úi
70–90 % din timpul total de lucru cu memoria. ùi acest tip de memorie poate fi este gestionată de un program-sistem specializat. numit EMM386.EXE (în sistemul
extins prin adăugarea de cipuri suplimentare. Utilizarea memoriei cache se bazează de operare MS-DOS).
pe două caracteristici ale execuĠiei programelor în sistemele de calcul clasice: Memoria extinsă este memoria suplimentară accesibilă utilizatorului prin
1. programele tind să utilizeze date úi instrucĠiuni situate unele lângă altele mecanismul XMS (eXtended Memory Specification), care poate fi implementat pe
sau în zone apropiate (principiul vecinăWăĠii); procesoare având cuvinte de adresă de 32 biĠi. Programele trebuie scrise ca
2. programele folosesc în mod repetat adresarea aceloraúi blocuri de memorie. utilizând special aceste mecanisme. Programul-sistem care gestionează acest tip de
memorie în sistemul de operare MS-DOS este HIMEM.SYS.
Structura unui calculator 75 76 ARHITECTURA SISTEMELOR DE CALCUL

Memoria de arhivare este acea parte a memoriei externe care asigură Memoria SRAM poate fi de două tipuri:
stocarea datelor preluate din mediul extern pe o perioadă de timp nedeterminatăúi  Memoria SRAM asincronă nu necesită semnal de ceas pentru
în volume semnificative. sincronizarea cu unitatea master. Memoriile asincrone sunt mai lente
Memoria de arhivare sau memoria terĠiară este o memorie nevolatilă de decât cele sincrone, dar sunt mai ieftine úi au un consum de energie mic.
dimensiuni foarte mari, dar úi cu timpi de acces foarte mari (zeci de secunde). Aceste memorii sunt realizate într-o gamă foarte diversă de performanĠe,
3ăstrează date pasive, stocate doar în scop de arhivare, pe o perioadă de timp cu timpi de acces care variază de la 50–70 ns, până la 10–15 ns.
nedeterminatăúi în volume semnificative. Accesul la aceste date se face foarte rar.  Memoria SRAM sincronă necesită un semnal de ceas pentru validarea
Memoria terĠiară este realizată cu unităĠi de memorare pe suport detaúabil, optic semnalelor de control. Ceasul primit din exterior permite operarea
(CD-ROM, DVD-ROM), magnetic (bandă sau casetă magnetică) sau memoriei, sincron cu unitatea master. Memoriile sincrone sunt foarte
semiconductor (stick-uri úi card-uri de memorie). Trebuie subliniat faptul că rapide, cu timp de acces sub 10 ns, pot funcĠiona la tensiuni de
memoria terĠiară reprezintă colecĠia de discuri úi casete existente, úi nu unităĠile de alimentare mici, dar sunt scumpe. Ele pot fi de mai multe tipuri: PBS
memorie propriu-zise. (Pipelined Burst Synchronous), FTS (Flow Through Synchronous) sau
ZBT (Zero Bus Turnaround) SRAM.
În general, sistemele de calcul simple au memoria RAM de lucru formată
3.2.3. Memoria RAM doar din circuite de memorie SRAM asincronă, cu capacităĠi mici, de zeci-sute de
KB, úi care memorează cuvinte de 8 biĠi. Sistemele performante, care necesită
Circuitele integrate de memorie sunt memorii semiconductoare, realizate în viteze úi capacităĠi de memorare mari, folosesc memorii SRAM rapide pentru
diverse tehnologii de fabricaĠie (bipolare sau MOS). Acestea sunt de mai multe implementarea memoriei cache.
tipuri, cu diferite raporturi performanĠe/cost, având domenii specifice de utilizare: Din punct de vedere constructiv, cele două tipuri de memorii SRAM sunt
memoriile cu acces aleator (RAM) úi memoriile cu acces pentru citire (ROM). similare. Ele diferă doar prin algoritmul de transfer al datelor úi, implicit, prin
O memorie cu acces aleator (RAM = Random Access Memory) este acea performanĠe. De aceea, în cele ce urmează vor fi analizate elementele comune,
memorie la care locaĠiile de memorie pot fi accesate în orice ordine, iar timpul de definitorii pentru SRAM, iar exemplificările vor fi realizate pentru memoria
acces nu depinde de locaĠia accesată. Memoriile RAM pot fi de două tipuri: SRAM asincronă.
(Static RAM) úi DRAM (Dynamic RAM). Schema bloc a memoriei SRAM este ilustrată în figura 3.5.
3.2.3.1. Memoria SRAM
Memoria 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 este
alimentată. Este realizată în tehnologii rapide (bipolare sau CHMOS =
Complementary High-density MOS), cu timpi de acces foarte mici (ns). Fiind o
memorie care poate fi úi citităúi scrisă, SRAM are magistrala bidirecĠională de date
úi 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.5. Schema bloc a memoriei SRAM.


Fig. 3.4. Simbolul memoriei SRAM
Structura unui calculator 77 78 ARHITECTURA SISTEMELOR DE CALCUL

3.2.3.2. Memoria DRAM


Memoria 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. Datorită
particularităĠilor constructive ale celulelor de memorie, informaĠia 0L este
memorată stabil, dar informaĠia 1L se pierde în timp úi necesită împrospătarea
periodică a memoriei, de unde úi denumirea acesteia.
Indiferent de modul de realizare, memoria DRAM este mult mai lentă decât
memoria SRAM, din cauza mecanismului specific de memorare a datelor. Timpul
de acces la DRAM este de 2–10 ori mai mare decât la SRAM, úi variază în funcĠie
de tipul accesului la memorie.
Astfel, în acces aleator, timpul de acces este mare (zeci de ns), însă scade
foarte mult (în funcĠie de tipul memoriei DRAM), dacă se restricĠionează accesul în
modul pagină (vezi paragraful 3.2.9 – FPM), putând ajunge la doar de două ori mai
mare decât cel al memoriei SRAM.
Celula de memorie este mult mai mică decât la memoria SRAM, ceea ce
permite realizarea unor densităĠi mari de integrare. Circuitele de memorie DRAM
au, prin urmare, capacităĠi de memorare mari, úi, implicit, un număr mare de linii Fig. 3.7. Schema bloc de bază a memoriei DRAM.
de adresă. Simbolul memoriei DRAM este ilustrat în figura 3.6.
 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 ,
IăUă a se activa semnalul CAS . Unitatea master externă este anunĠată
periodic să facă refresh de către un ceas de timp real, care este
programat 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 această
ordine. În acest caz, memoria dispune de un număUător de adrese intern,
pentru indicarea liniei care trebuie împrospătată, făUă a fi nevoie de
transmiterea adresei din exterior. De asemenea, perioada de repetiĠie a
Fig. 3.6. Simbolul memoriei DRAM. ciclurilor de refresh este determinată de un ceas de timp real extern.
 Auto-împrospătare cu ajutorul circuitelor interne memoriei DRAM. În
Memorarea datelor se bazează pe stocarea úi transferul de sarcini electrice, úi
interior, memoria conĠine un număUător de adrese de rând, un ceas de
nu pe mecanisme de comutare, ca în cazul memoriilor SRAM. Fiecare bit de
informaĠie este memorat prin încărcarea sau descărcarea unui condensator. Când timp real úi o logică de control pentru generarea semnalelor CAS  úi
condensatorul este încărcat, se spune că se memorează valoarea 1L, iar când acesta RAS , conform metodei CBR.
este descărcat, valoarea memorată este 0L. FaĠă de celula SRAM, mecanismul de Memoria DRAM poate fi de două tipuri: asincronăúi sincronă.
memorare nu presupune consum de curent de la sursa de alimentare. Memoria DRAM asincronă nu necesită semnal de ceas pentru
Schema bloc de bază a memoriei DRAM este trasată în figura 3.7. sincronizarea cu unitatea master apelantă. Ca úi la SRAM, memoriile DRAM
Celulele de memorie sunt dispuse într-o arie pătrată sau dreptunghiulară de asincrone sunt mai lente decât cele sincrone, dar sunt mai ieftine úi au un consum
locaĠii de memorie, fiecare locaĠie memorând un cuvânt de m biĠi, Semnalele de de energie mai mic. Dintre memoriile DRAM asincrone, se pot enumera: FPM
comandă acĠionează prin intermediul logicii de control. Eventual, memoria DRAM (Fast Page Mode), EDO (Extended Data Out) úi BEDO (Burst EDO) DRAM. La
poate avea circuit intern de împrospătare, care presupune un număUător de adrese toate memoriile, accesul aleator este lent. În acces aleator, timpul de acces faĠă de
de rând úi un ceas de timp real. În funcĠie de tipul memoriei DRAM, ciclurile de RAS (tRAC) este de 50–70 ns, iar timpul de ciclu (tC) este de 90–120 ns.
împrospătare pot fi realizate în trei moduri:
Structura unui calculator 79 80 ARHITECTURA SISTEMELOR DE CALCUL

O altă categorie de memorii DRAM este cea care utilizează o interfaĠă Ciclu de citire din memorie
sincronă. Prin implementarea unei interfeĠe sincrone, s-au eliminat perioadele de Semnale de adresă Adresa validă
Dúteptare de către procesor, obĠinându-se, de asemenea, unele avantaje
suplimentare. În cazul funcĠionării sincrone, se memorează anumite date de la S. de c-dă MEMR\
procesor în circuitele latch ale memoriei DRAM, sub controlul ceasului de sistem. (citire memorie) (înaltă impedanĠă)
Aceste circuite păstrează adresele, datele úi semnalele de control, ceea ce permite Semnale de date Date valide (citite)
procesorului să execute alte operaĠii. După un număr specific de cicluri de ceas,
tAR
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 este tMEMR
singurul semnal de sincronizare care trebuie furnizat memoriei DRAM. Aceasta tC
elimină necesitatea propagării semnalelor multiple de sincronizare. Intrările sunt de
asemenea simplificate, deoarece semnalele de control, adresele úi datele pot fi Ciclu de scriere în memorie
memorate făUă temporizările de setare úi menĠinere monitorizate de procesor. Semnale de adresă Adresa validă
Avantaje similare se obĠin úi pentru operaĠiile de ieúire.
O altă categorie este reprezentată de memoriile DRAM bazate pe
S. de c-dă MEMW\
protocoale. Categoriile precedente de memorii au linii separate de adrese, date úi (scriere memorie) (înaltă impedanĠă)
control, ceea ce limitează viteza la care poate funcĠiona circuitul cu tehnologia Semnale de date Date valide (scrise)
curentă. Pentru eliminarea acestui dezavantaj, au fost proiectate memorii DRAM
bazate pe protocoale, care implementează toate aceste semnale pe aceeaúi tAW tMEMW
magistrală. Cele mai cunoscute memorii din această categorie sunt DRDRAM tC
(Direct Rambus) úi SLDRAM (SyncLink) DRAM.
Memoria DRAM sincronă necesită un semnal de ceas pentru validarea
Fig. 3.8. Diagrame de citire/scriere memorie.
semnalelor de control. Ceasul primit din exterior permite operarea memoriei
sincron cu unitatea master. Deúi accesul aleator este comparativ cu cel al În figura 3.8, s-au reprezentat diagramele de transfer pentru un ciclu de citire
memoriilor asincrone, accesul în mod pagină este mult mai rapid. din memorie úi un ciclu de scriere în memorie.
Memoriile sincrone pot fi de mai multe tipuri: SDRAM (Synchronous La proiectarea unui modul de memorie, trebuie să se Ġină cont de următorii
DRAM), DDR SDRAM (Double Data Rate SDRAM), RDRAM (Rambus parametri de timp:
DRAM), DRDRAM (Direct Rambus DRAM) etc. Accesul aleator este, de  timpul de acces la citire (tAR) – intervalul de timp între momentul apariĠiei
asemenea, lent, fiind puĠin mai rapid decât la memoriile asincrone, datorită adresei valide úi momentul în care data citită este prezentă pe liniile de
tehnologiei (memoriile sincrone au apărut ulterior). În acces aleator, tRAC este de date. Uneori, timpul de acces se măsoară în raport cu momentul apariĠiei
40–60 ns, iar tC este de 80–110 ns. Accesul în mod pagină este mult mai rapid decât semnalului de comandă MEMR\. Dacă timpul de acces al circuitului de
la memoriile asincrone úi depinde de frecvenĠa semnalului de ceas de sincronizare. memorie folosit este mai mare decât timpul permis pe magistrală, atunci
interfaĠa modulului de memorie trebuie să prelungească ciclul de transfer,
prin dezactivarea pe un timp limitat a semnalului READY către procesor.
3.2.4. Accesul la locaĠiile de memorie  timpul de menĠinere a semnalului de comandă MEMR\ activ (tMEMR).
În sistemele cu microprocesoare, modulele de memorie se conectează pe  durata unui ciclu complet de citire sau scriere (tC).
magistrala sistemului. Accesul la locaĠiile de memorie se realizează prin cicluri de  timpul de acces la scriere (tAW) – intervalul de timp între momentul în care
transfer (cicluri maúină), folosindu-se semnalele magistralei (de adresă, date úi adresa este validă úi momentul de generare a comenzii de scriere; în
comenzi). Modul de desfăúurare a diferitelor tipuri de cicluri de transfer se acelaúi mod ca la citire, dacă circuitul de memorie folosit are un timp de
reprezintă prin diagrame de timp (evoluĠia în timp a semnalelor de pe magistrală acces mai mare, atunci interfaĠa modulului trebuie să dezactiveze temporar
implicate în transfer). Parametrii de timp ai unui ciclu de transfer depind de tipul semnalul READY pentru prelungirea ciclului de transfer. Momentul
procesorului, de regulile de comunicaĠie pe magistrală úi de tipul circuitelor de activării semnalului de scriere se măsoarăúi în raport cu momentul în care
memorie utilizate. data este prezentă pe magistrală.
 timpul de menĠinere a semnalului de scriere (tMEMW), de obicei < tMEMR.
Structura unui calculator 81 82 ARHITECTURA SISTEMELOR DE CALCUL

ObservaĠii: 3.2.5. Metodologia de proiectare a memoriilor statice


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; Proiectarea unui modul de memorie se face pe baza unor parametrilor de
2. la scriere, data trebuie să apară pe magistrală înaintea semnalului de scriere proiectare impuúi:
úi să fie validă pe toată durata de activare a semnalului de comandă;  capacitatea memoriei;
3. timpul de acces acoperă întârzierile care apar într-un modul de memorie  modul de organizare (unitatea elementară de acces la memorie: octet,
datorită circuitelor de decodificare a adresei úi de selecĠie a cuvânt, cuvânt dublu);
amplificatoarelor de intrare sau de ieúire;  tipul de magistrală pe care se conectează (numărul semnalelor de date úi
4. proiectantul trebuie să aleagă circuite de memorie cu parametri de timp de adresă, tipurile semnalelor de comandă, parametrii de timp pentru
acoperitori pentru restricĠiile impuse pe magistrală úi să ia în calcul ciclurile de transfer);
întârzierile produse de circuitele de amplificare din interfaĠă úi de pe  amplasarea modulului de memorie în spaĠiul de adresare al procesorului,
magistrală. exprimată prin adresa sa de început (trebuie să fie un multiplu al
Există două moduri de organizare a octeĠilor în memorie, úi anume: capacităĠii modulului);
a) Big Endian;  tipul de circuit de memorie disponibil (poate fi un parametru impus sau
b) Little Endian. unul ales de proiectant);
Exemplu. Se consideră că se lucrează pe cuvinte de 32 biĠi. Cele două  alte cerinĠe speciale (de exemplu: accesul dual de pe două magistrale,
moduri de organizare a octeĠilor sunt reprezentate în figura 3.9. reîmprospătarea controlată centralizat, implementarea unor mecanisme
de detecĠie a erorilor etc.)

3.2.6. Metodologia de proiectare a memoriilor dinamice

Proiectarea memoriilor dinamice este, în principiu, similară proiectării


memoriilor statice, cu următoarele amendamente:
 trebuie să se adauge un mecanism de reîmprospătare periodică a
memoriei (refresh);
 adresele trebuie multiplexate (generarea secvenĠială pe aceleaúi semnale
a 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 fac
circuitele tip EDO-DRAM, cu semnal separat pentru selecĠia circuitului).
Pentru circuitele RAM dinamice, multiplexarea în timp a adreselor a fost
necesară 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. Organizarea
internă a unei memorii dinamice este sub forma unei matrice, cu linii úi coloane, iar
selecĠia unei locaĠii se face prin specificarea adresei sale de linie úi de coloană.
Fig. 3.9. Modurile de organizare a memoriei de tip Big Endian (a) úi Little Endian (b).
Reîmprospătarea periodică a memoriei este necesară deoarece informaĠia
Microprocesoarele PowerPC, Motorola 6800 úi HP, folosesc o organizare a este păstrată un timp limitat după ultima operaĠie de citire sau scriere
octeĠilor în memorie de tip Big Endian, iar microprocesoarele DEC úi Intel folosesc (condensatorul care stochează informaĠia se descarcă în timp).
modul Little Endian. În figurile 3.10, 3.11, 3.12 s-au reprezentat diagramele de timp pentru ciclurile
de citire din memorie, scriere în memorie úi, respectiv, reîmprospătare a memoriei.
Structura unui calculator 83 84 ARHITECTURA SISTEMELOR DE CALCUL

Adrese Adresă linie Adresă coloană Controlul procesului de reîmprospătare poate să se facă la nivelul modulului
de memorie sau centralizat la nivelul întregului sistem. Indiferent de metoda aleasă,
RAS\ proiectantul trebuie să se asigure că ciclurile de reîmprospătare nu se suprapun
peste ciclurile obiúnuite de citire sau scriere. Reîmprospătarea se face simultan la
CAS\ nivelul unei linii întregi din matricea de memorie.

WR\
3.2.7. Modulele de memorie
Date Date citite Modulele de memorie sunt plăcuĠe cu circuite integrate care includ conectori
tRAS±CAS tCAS externi, pentru a fi introduse în soclurile disponibile pe placa de bază. Modulele de
memorie sunt prevăzute cu conectori CELP (Card Edge Low Profile), având 30–83
tacces contacte pe fiecare parte a modulului. Conectorii aflaĠi la baza modulelor de memorie
tciclu permit adăugarea sau scoaterea lor de pe placa de bază făUă instrumente speciale.
În ceea ce priveúte necesarul de memorie într-un sistem de calcul, este demn
de reĠinut că prin creúterea dimensiunii acesteia sistemul devine mai rapid,
Fig. 3.10. Ciclu de citire din memorie. deoarece microprocesorul citeúte datele din RAM foarte repede, neaúteptând citirea
de pe hard disk-ul mult mai lent, făUă a mai lua în consideraĠie drumul pe care l-ar
Adrese Adresă linie Adresă coloană avea de parcurs datele pe magistralele la fel de lente. Acest aspect nu are însă un
caracter imperativ, deoarece s-a demonstrat că, începând de la 16–32 MB instalaĠi,
RAS\ performanĠele sistemului rămân aproape constante.
Totuúi există anumite aplicaĠii care cer resurse deosebite úi îndeosebi RAM.
CAS\ 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,
WR\
filme, aplicaĠii útiinĠifice, simulări etc.), fiind necesari peste 256 MB de RAM. Un
alt caz deosebit este al serverelor de reĠea, unde necesarul de RAM este uriaú úi
poate atinge valori peste 512 MB.
Date Date de scris
Privitor la modul în care microprocesorul operează fizic cu memoria
tRAS±CAS tCAS
instalată, aceasta se plasează pe placa de bază în două sau mai multe segmente
fizice numite bancuri de memorie. Acestea sunt segmentele minime de memorie
tacces care pot fi accesate de microprocesor, numerotate începând cu 0, fiecare banc
tciclu având unul sau mai multe sloturi pentru plăcuĠele de memorie. Toate aceste bancuri
sunt văzute ca niúte porĠi spre memoria fizică instalată úi au dimensiuni date de
Fig. 3.11. Ciclu de scriere în memorie. OăĠimea magistralei microprocesorului (inclusiv biĠii de paritate), de exemplu, de 72
de biĠi pentru Pentium.
Adrese Adresă linie Î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 nu
RAS\ provoca 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.
CAS\ Î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.
WR\ 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.
Fig. 3.12. Ciclu de reîmprospătare a memoriei. În figura 3.13 este prezentată dispunerea bancurilor pe placa de bază.
Structura unui calculator 85 86 ARHITECTURA SISTEMELOR DE CALCUL

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ăUĠi), pini care vor fi introduúi în socluri
speciale (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.13. Dispunerea bancurilor pe placa de bază.


Fig. 3.14. Modul de memorie DIP.
Arhitectura dual-channel
Motivul care a dus la dezvoltarea acestei arhitecturi a fost apariĠia unui SOJ (Small Outline J Lead)
bottleneck între procesor úi memorie. Arhitectura dual-channel presupune o Este o metodă de încapsulare mai modernă, regăsită la modulele SIMM úi
tehnologie prin care se poate dubla transferul dintre RAM úi controlerul de cipurile BIOS (uneori). Se aseamăQă cu DIP-ul, cu diferenĠa că, în loc de pini, sunt
memorie. Controlerele de memorie care suportă dual-channel utilizează pentru folosite niúte terminale în formă de J, care se prind prin îndoire (vezi figura 3.15).
transfer 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 de
două sau mai multe module de memorie instalate în bancurile corespunzătoare. De
obicei, aceste bancuri sunt colorate diferit pe placa de bază. Cele două canale permit
accesul 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, dar
acest 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âútigul Fig. 3.15. Modul de memorie SOJ.
de 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 DIMM TSOP (Thin Small Outline Package)
din bancuri diferite (în general, culoarea socket-ului identifică bancul căruia acesta Este o încapsulare de tip SMD (Surface Mounted Devices), dar care necesită
aparĠine), se poate instala o pereche de două module în bancul 0 úi o pereche de o suprafaĠă foarte redusăúi, de aceea, este folosită pe plăci PCMCIA, notebook-uri
altă capacitate în bancul 1, atât timp cât acestea funcĠionează la aceeaúi viteză. În úi unele plăci video (vezi figura 3.16).
acest mod, sistemul va folosi arhitectura dual-channel.
Chiar úi module care funcĠionează la frecvenĠe diferite pot fi folosite în
modul dual-channel, dar, în acest caz, toate modulele vor rula la frecvenĠa celui
mai lent modul. Deúi arhitectura permite – cel puĠin teoretic – toate aceste
combinaĠii, foarte multe plăci de bază au probleme cu anumite module de memorie
dacă urmează să le folosească în mod dual-channel. Tocmai din acest motiv este
recomandat să se utilizeze perechi identice de module.
Merită reĠinut faptul că arhitectura dual-channel este o tehnologie care Ġine
de plăcile de bază, úi nu de memorii. Cu alte cuvinte, orice două module de
memorii compatibile vor suporta atât operaĠii single-channel, cât úi dual-channel. Fig. 3.16. Modul de memorie TSOP.
Structura unui calculator 87 88 ARHITECTURA SISTEMELOR DE CALCUL

BGA (Ball Grid Array) SODIMM (Small Outline Dual In-line Memory Module)
Este o metodă mai nouă de încapsulare, în care cipurile sunt ataúate cu SIMM-urile de 72 de pini sunt convenabile pentru calculatoare desktop, dar
ajutorul unor biluĠe din cositor, plasate sub cip. Acestea sunt destul de ieftine úi sunt prea mari pentru laptop-uri. În consecinĠă, producătorii de calculatoare
prezintă proprietăĠi bune de conductivitate electricăúi termică (permit o mai bună miniaturizate au transformat SIMM-urile cu 72 de pini, astfel încât, în locul
disipare a căldurii, în special în versiunea cu suport ceramic). Există mai multe conectării la un loc a pinilor de pe cele două păUĠi ale modulului, au introdus niúte
variante ale încapsulării BGA (Fine BGA úi Tiny BGA), folosite în majoritatea spaĠii pe fiecare parte, pentru a avea două semnale separate. Astfel, lungimea
modulelor de memorie de azi, inclusiv memoriile Rambus (vezi figura 3.17). modulului s-a redus la jumătate, rezultatul fiind Small Outline Dual In-line
Memory Module, numit astfel datorită dimensiunilor reduse ale modulului úi a celor
două linii de conectori independenĠi de pe fiecare parte a modulului (vezi figura
3.20). Un SODIMM cu 72 de pini are lungimea jumătate faĠă de SIMM-ul cu 72 de
pini (2,35 inci), fiind echivalent unui SIMM 72 cu conectorii pe ambele păUĠi ale
modulului.

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ătre
producătorii plăcilor de bază. Memoriile SIMM folosesc o magistrală de memorie
pe 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); Fig. 3.20. Modul de memorie SODIMM.
 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ă SIPP (Single In-line Pin Package)
parte), cât úi double sided (cipurile sunt dispuse pe ambele feĠe). SIMM-urile Deúi SIPP-urile sunt identice cu SIMM-urile de 30 de pini din punct de
double sided sunt realizate din două SIMM-uri single sided, conectate împreună pe vedere electric, din punct de vedere fizic sunt mai mici (vezi figura 3.21).
acelaúi modul din fibră de sticlă. Dimensiunile standard sunt de 3,23 inci lungime úi 1 inci înăOĠime. Deúi din punct
de 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 fac
incompatibile. Dacă se doreúte instalarea unei noi extensii de memorie sau înlocuirea
uneia existente, trebuie specificat tipul de memorie folosit: SIMM sau SIPP.

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

Fig. 3.19. Modul de memorie SIMM cu 72 de pini. Fig. 3.21. Modul de memorie SIPP.
Structura unui calculator 89 90 ARHITECTURA SISTEMELOR DE CALCUL

DIMM (Double In-line Memory Modules) SCRAM (Static Column RAM)


Sunt module de memorie cu lăĠimea magistralei de 64 de biĠi, folosite la Primele memorii au folosit tehnologia Static Column RAM, care efectua
implementarea memoriilor SDRAM úi DDR SDRAM (vezi figura 3.22). DIMM- citirea unei coloane de memorie úi scrierea adresei pe linia de adresă a cipului,
urile SDRAM folosesc 168 de pini, pe când cele DDR SDRAM au 184 de pini. Ele transmiĠând apoi semnalul CAS. Odată ce coloana a fost înregistrată, se poate
mai diferăúi prin numărul fantelor de pe partea inferioară, cele SDRAM având două, trimite un nou set de adrese, prin care se va indica o linie, activând RAS. În tot
iar cele DDR, numai una. Din punct de vedere al designului úi al tensiunii de acest timp, semnalul CAS este menĠinut deschis, pentru a indica faptul că acea
alimentare, există 4 variante de DIMM-uri: de 3,3V sau 5V úi cu buffer (buffered) coloană a rămas constantă.
sau făUă buffer (unbuffered). Cele mai des întâlnite sunt de tipul 3,3V, făUă buffer.
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ât
timp semnalul RAS este activ, se transmite o adresă a semnalului CAS, pentru a
indica o anumită celulă. Dacă semnalul RAS este menĠinut activ, controlerul poate
trimite una sau mai multe adrese, urmate de un impuls al semnalului CAS, pentru a
Fig. 3.22. Modul de memorie DIMM.
indica celule din cadrul aceleiaúi linii.
În terminologia de adresare a memoriei, linia este numită pagină, iar tipurile de
RIMM (Rambus In-line Memory Modules) cipuri care permit aceste operaĠii sunt numite mod pagină (page mode RAM).
Este tipul de încapsulare folosit la memorii Rambus (vezi figura 3.23). Este Calculatorul poate astfel accesa mai rapid mai multe celule dintr-o pagină de memorie,
foarte asemăQător DIMM-ului, dar foloseúte setări diferite ale pinilor. Se remarcă asigurând un timp de acces de 25–30 ns. Pentru a accesa mai multe pagini, va trebui să
prin prezenĠa de radiatoare pe ambele feĠe ale modulului de memorie, pentru a se schimbe ambele adrese ale liniei úi coloanei, ceea ce va genera întârzieri.
preveni încălzirea excesivă a acestuia. Se prezintă úi în varianta XDIMM (vezi EDO (Extended Data Out)
paragraful 3.2.9 – XDR DRAM) 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 Fast
Page Mode (care permite accesul repetat la biĠii din cadrul unei pagini de memorie,
IăUă 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ă datele
Fig. 3.23. Modul RIMM Rambus. până când primeúte un alt semnal. Memoria EDO modifică cuanta de timp alocată
pentru 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 necesar
3.2.9. Formatele logice de memorie pentru un ciclu separat de citire/scriere, deci, se pot citi sau scrie date la viteza cu
care cipul poate să selecteze adresele.
Încărcarea cipurilor de memorie prin adresarea liniilor úi coloanelor consumă
La cele mai multe cipuri, este cerută în mod normal o aúteptare de 10 ns între
timp de ordinul nanosecundelor, ceea ce provoacă întârzieri la răspunsurile
emiterea adreselor de coloană. Modelul EDO elimină această întârziere, permiĠând
furnizate microprocesoarelor. Dacă se adaugăúi timpul necesar reîmprospăWării, se
memoriei să furnizeze mai repede datele solicitate. Teoretic, EDO poate să crească
obĠin limitele performanĠei cipului de memorie. Pentru a mări performanĠele
performanĠele cu 50–60%, dar, la modelele mai recente de calculatoare, cele mai
memoriei, proiectanĠii au dezvoltat o serie de tehnologii care să depăúească aceste
bune implementări au condus la o creútere a performanĠelor cu 10–20%.
limite, orientându-se asupra modului în care sunt procesate datele intern – moduri
Fizic, cipurile EDO úi SIMM par identice, dar, pentru a implementa EDO,
care constituie formatele logice ale memoriilor interne: s-a încercat memoria de tip
este necesar un sistem complet diferit de gestiune (management) a memoriei, care
coloană statică, apoi s-a trecut la FPM, care s-a dovedit a fi mai performantă prin
Vă se potrivească cu tehnologia memoriei (BIOS-ul, în special). Astfel, se pot
anul 1995, ulterior tehnologia EDO preluând supremaĠia. Toate formatele logice,
instala SIMM-uri EDO în majoritatea calculatoarelor, dar vor funcĠiona ca
au acelaúi mod de adresare a celulelor úi aceeaúi tehnologie la bază, diferind prin
memorie obiúnuită, úi nu vor contribui la o creútere a performanĠei.
anumite semnale úi cuante de timp alocate.
Structura unui calculator 91 92 ARHITECTURA SISTEMELOR DE CALCUL

În aplicaĠiile multimedia, diferenĠa între memoria cache úi EDO nu este pentru magistrale de memorie de 100 MHz. Cipurile actuale au anumite limite, care
notabilă, astfel că EDO poate fi considerat ca o alternativă la memoria cache reduc viteza la aproape 66 MHz. SDRAM-urile nu pot opera la viteze mai mari de
secundară. La sfârúitul anului 1995, înlocuirea memoriei FPM cu EDO devenise 100 MHz, pentru că sloturile SIMM-urilor devin nesigure la frecvenĠe mai mari.
cea mai comună formă de reducere a timpului de acces la memorie. DiferenĠa Memoriile SDRAM sunt adaptate noului standard de magistrală
dintre cele două memorii este mică, astfel încât multe calculatoare create pentru sincronă introdus de microprocesoarele familiei Intel P6 (Pentium Pro,
memoria FPM acceptăúi memoria EDO, deúi nu câútigă în performanĠă. Cu toate Pentium II úi III). În figura 3.24 este prezentată structura unei memorii organizate
Fă FPM nu poate imita EDO, calculatoarele actuale pot determina ce fel de pe 4 blocuri, care sunt accesibile în mod concurent.
memorie 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 zero
la o frecvenĠă a magistralei de 25 MHz, un cip EDO poate opera la stare de
Dú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 de
microprocesoarele 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ând
linia CAS devine activă, dar, în loc să transfere un octet de date, un număUător
binar transmite un semnal de patru ori în interiorul cipului, fiecare semnal
transferând un octet de date.
BEDO este relativ uúor de fabricat, pentru că necesită un minim de
schimbări faĠă de memoria EDO sau page mode DRAM. Cipul de siliciu conĠine un
fuzibil care determină dacă cipul funcĠionează ca EDO sau BEDO. Cipul îúi poate
schimba starea în mod ireversibil, prin arderea fuzibilului. Tehnologia BEDO este
capabilă 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, prin
reproiectarea interfeĠei de bază, cipurile de memorie pot accesa date la fiecare ciclu
de ceas. Modificările cipurilor de interfaĠă au făcut ca cipurile de memorie să poată
opera sincron cu microprocesoarele: acestea se numesc DRAM sincron. Fig. 3.24. Structura internă a unei memorii SDRAM de 8 MB.
Deúi schimbarea interfeĠei cipului poate evita blocările sistemului, ea nu are
Structura favorizează operaĠiile în regim burst. Se poate programa numărul
nicio contribuĠie la creúterea vitezei. Ca úi microprocesoarele superscalare, cipurile
de locaĠii dintr-un burst la valorile de 1, 2, 4, 8 octeĠi sau o pagină de memorie.
SDRAM sunt realizate cu stagii de operare multiple úi independente, astfel încât cipul
Accesul începe la o adresă specificată úi continuă cu adresele succesive, până la
poate să acceseze o a doua adresă înainte de a încheia procesarea primei adrese. numărul de locaĠii programate. Circuitul de memorie acceptă mai multe tipuri de
Extinderea pipeline se referă doar la adresarea coloanelor unei anumite pagini. comenzi, fiecare fiind specificată printr-o combinaĠie a semnalelor de intrare.
Cipurile SDRAM au rata de transfer foarte ridicată. InterfaĠa úi pipeline-ul Ratele de transfer cerute de diverse tehnologii de memorie pentru starea de
determină timpi de transfer de ordinul nanosecundelor, ceea ce le permite utilizarea Dúteptare zero la o viteză de transfer dată pe magistrală sunt prezentate în tabelul 3.1.
Structura unui calculator 93 94 ARHITECTURA SISTEMELOR DE CALCUL

Tabelul 3.1 Spre deosebire de EDRAM, păUĠile CDRAM asociază atât cache-ului, cât úi
Ratele de transfer la o viteză dată a magistralei locale DRAM-ului principal, aceeaúi adresă, astfel încât acestea operează independent una
faĠă de cealaltă, putând fi adresate separat.
Viteza magistralei de memorie FPM EDO BEDO SDRAM
Memoria cache este suficient de rapidă pentru a transfera date în mod burst,
25 MHz 70 ns 70 ns 70 ns 12 ns la o frecvenĠă de 100 MHz. Cipul permite celor două buffer-e să funcĠioneze
independent, deci, pot lucra în flux continuu.
33 MHz 52 ns 70 ns 70 ns 15 ns
MDRAM (Multibanc DRAM)
50 MHz N/A 52 ns 70 ns 12 ns
Principiul de lucru este următorul: în locul unui bloc de celule, fiecare celulă
66 MHz N/A N/A 52 ns 10 ns este adresată prin numărul liniei úi al coloanei. Memoria DRAM produsă de MoSys
Inc. desparte informaĠia stocată într-un număr de bancuri de memorie separate.
Dintre versiunile rapide de SDRAM dezvoltate în ultimii ani, se pot aminti: În modelul MDRAM iniĠial de 4 MB, fiecare din cele 16 bancuri de memorie
 PC 100 RAM – timp de acces 8 ns, rată de transfer 500-800 MB/s; Săstrează 256 KB, ele fiind legate printr-o magistrală centrală de date, care
accesează fiecare banc individual. Acest model permite unui banc de memorie să
 PC 133 RAM – timp de acces 7,5 ns, rată de transfer 800 MB/s;
trimită sau să primească o serie de date printr-un singur ciclu de ceas úi să comute
 PC 2100/2700/3200 – la frecvenĠele de 266/333/400 MHz.
la un alt banc pentru un alt transfer. Deoarece fiecare banc de memorie dispune de
EDRAM (Enhanced DRAM) o interfaĠă de 32 biĠi care lucrează la fel ca SDRAM, cipurile MDRAM operează la
Memoriile de tip EDRAM sunt mai rapide úi se obĠin din DRAM-urile viteze de transfer de până la 1 GB/s.
obiúnuite prin adăugarea unor blocuri mici de memorie cache statică pe fiecare cip.
RDRAM (Rambus DRAM)
Cache-ul operează la viteză înaltă (în mod obiúnuit, 1 ns), astfel încât pot să
Modelul Rambus foloseúte un cache RAM static de 2.048 octeĠi, care se
acopere cererile de date ale microprocesorului făUă a adăuga stările de aúteptare
leagă la memoria dinamică printr-o magistrală de lăĠime foarte mare, permiĠând
generate de operaĠia de reîmprospătare. Producătorul tehnologiei EDRAM
transferul unei pagini de memorie în cache într-un singur ciclu. Cache-ul este
(Ramtron) descrie patru avantaje ale acestui tip de memorie:
destul de rapid, furnizând date la un timp de acces de 15 ns.
 legarea cache-ului SRAM cu DRAM-ul pe acelaúi cip presupune folosirea Memoria Rambus nu este implementată pe calculator ca o memorie standard.
unei magistrale de lăĠime mare pentru conectare (Ramtron foloseúte o Ea foloseúte o magistrală specială de înaltă viteză. Indiferent de legătura cu
magistrală de 16.384 biĠi), care poate determina o rată de umplere a microprocesorul, lăĠimea magistralei dintre controlerul de memorie úi cipul
memoriei cache de aproximativ 60 Gb/s, comparativ cu 110 Mb/s la Rambus este de 1 octet. Rambus operează la frecvenĠe între 250 úi 800 MHz,
cache page mode DRAM. Timpul de umplere este de aproape úapte ori modelul permiĠând transferul a doi octeĠi la fiecare ciclu de ceas: unul pe frontul
mai mic (35 ns) la EDRAM faĠă de cache page mode DRAM (250 ns); crescător, iar al doilea pe frontul descrescător al impulsului de ceas.
 modelul Ramtron foloseúte o structură de control diferită faĠă de DRAM- Accesul la memorie se face în mod inteligent, incluzând funcĠia de pre-
ul convenĠional, ceea ce permite ca memoria să fie preîncărcată în timp încărcare a datelor, iar citirea acestora se face în pachete mici, la viteze ridicate ale
ce sistemul realizează transferul în mod burst din cache, preîncărcarea semnalului de ceas. Viteza Rambus este izolată de microprocesor úi rămâne
determinând reducerea timpului de acces; constantă indiferent de viteza microprocesorului. Rata de transfer maximă poate
 deúi cache-ul EDRAM foloseúte proiectarea write through (vezi atinge 1,6 GB/s. Viteza ridicată a Rambus-ului impune limite în proiectarea unui
paragraful 3.2.12), scrierea în memoria principală poate fi făcută cu timp sistem de memorie: magistrala trebuie să fie scurtă úi poate suporta doar 32 de
de aúteptare zero. Prima operaĠie de scriere necesită 7 ns, iar ciclul de cipuri sau 10 module de memorie Rambus, un modul conĠinând 32 de cipuri
scriere pentru o pagină normală este de 15 ns; Rambus. O viteză de peste 500 MB/s a magistralei poate să inducă interferenĠe;
 proiectarea EDRAM permite accesul separat la bancurile de cache, ceea pentru a le minimiza, Rambus funcĠionează la 2 V, cu oscilaĠii de 300 mV.
ce reduce timpul de acces la sistemele care lucrează în multitasking. Rambus operează ca o mică reĠea, trimiĠând date în pachete cu o lungime de
CDRAM (Cached DRAM) până la 256 octeĠi. Modelul este schimbat radical úi cere o modificare importantă a
Memoria CDRAM, realizată de Mitsubishi, adaugă o memorie cache pe tipului de calculator pe care se instalează, fiind deocamdată util pentru sisteme care
fiecare cip, utilizând un model de tip asociat. Cipul iniĠial de 4 MB are încorporată includ integrare video. O colaborare între Intel úi Rambus s-a materializat în 1999
o memorie cache de 2 KB, folosind două buffer-e de câte un cuvânt (16 biĠi) pentru printr-un DRAM care operează la 100 MHz, pe calculatoare de 64 de biĠi.
transferul dintre cache úi circuitele externe. În figura 3.25 este prezentată arhitectura unui cip de memorie RDRAM cu
capacitatea de 32 MB.
Structura unui calculator 95 96 ARHITECTURA SISTEMELOR DE CALCUL

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


Fig. 3.26. O operaĠie de citire úi o operaĠie de scriere din/în memoria RDRAM.
$úa cum se observă din figură, unul din atu-urile memoriei RDRAM este că
Deoarece un număr prea mare de amplificatoare ar mări considerabil
fiecare cip de memorie poate conĠine până la 32 de bancuri de memorie. Aceste
suprafaĠa pastilei de memorie, fiecare banc de memorie împarte cele două
bancuri sunt individuale úi aparĠin riguros aceluiaúi cip, spre deosebire de bancurile
amplificatoare adiacente cu bancurile vecine lui. De exemplu, amplificatoarele 0/1
SDRAM, care sunt împrăútiate printre mai multe cipuri de memorie. Revenind la
úi 1/2 sunt conectate la bancurile 0, 1 úi 2. În acest fel, se micúorează suprafaĠa
diagramă, fiecare banc de memorie are dimensiunea de 1 MB, ceea ce face ca
cipului, ceea ce duce la o reducere a costului.
întregul cip să aibă o capacitate de 32 MB.
Existăúi excepĠii, iar acestea sunt bancurile 0, 15, 16 úi 31, care sunt conectate
Fiecare banc reprezintă o matrice DRAM organizată în 512 linii a câte
fiecare la câte un singur amplificator dedicat úi, ca atare, trebuie să aútepte ca un
128 dualocĠi (dualoctul este cea mai mică unitate de memorie adresabilă de către
singur banc vecin să îúi termine activitatea pentru a deveni active. Faptul că două
RDRAM). Fiecare dualoct conĠine 16 octeĠi úi, deci, dimensiunea totală a liniilor
bancuri de memorie ajung să împartă un singur amplificator de semnal (sense amp)
matricei este de 2 KB. În mod ideal, se poate păstra activă câte o linie din fiecare
reprezintă motivul pentru care numai jumătate din bancurile unui cip pot fi active
din cele 32 de bancuri, pentru a maximiza úansele de a primi datele dintr-o linie
simultan. Chiar úi aúa, numărul bancurilor de memorie active ale unui modul
activă. În realitate, însă, pot exista numai 16 bancuri deschise simultan sau, mai
RDRAM este mult mai mare faĠă de cel al unui modul SDRAM. De exemplu, pentru
precis, doar jumătate din bancurile existente pe cip.
un singur modul RIMM cu 4 cipuri, există 32 de bancuri pe cip úi, deci, 128 de
Figura 3.26 prezintă două operaĠii: una de citire úi cealaltă de scriere din/în
bancuri, dintre care 64 active simultan pentru întregul modul. Acest număr ridicat de
memorie, pentru a ilustra lucrul simultan cu doar jumătate din bancurile disponibile.
bancuri de memorie reprezintă explicaĠia pentru lărgimea de bandă úi frecvenĠele
Modul de funcĠionare este următorul. Atunci când procesorul citeúte un dualoct
foarte mari (400 MHz, 533 MHz) cu care operează memoriile SDRAM.
de 16 octeĠi dintr-un banc, datele respective păUăsesc bancul úi pătrund în
Referitor la ultima diagramă prezentată, mai trebuie făcute două precizări:
amplificatoarele de semnal (numerotate), care sunt plasate de o parte úi de alta a
bancurilor de memorie. Data Aúi Data B reprezintă două jumăWăĠi ale unui dualoct (cu  fiecare amplificator de semnal are úi o capacitate proprie de stocare de
8 octeĠi fiecare), care păUăsesc bancul de memorie pe căi separate, aúa cum se observă 1024 de octeĠi, el fiind un buffer între bancul de memorie úi magistrala
în figura 3.26. Cele două magistrale care încadrează bancurile de memorie au fiecare o sistemului;
OăĠime de 8 octeĠi, deci jumătatea dualoctului reprezentată de Data A se va transfera pe  cele două magistrale de 8 octeĠi amintite anterior sunt divizate numai
magistrala din dreapta, iar cea reprezentată de Data B pe magistrala din stânga. conceptual, în realitate formând o singură magistrală cu lăĠimea de 16 octeĠi.
Deúi pe diagramă pare că fiecare banc este conectat la 4 amplificatoare de Schema din figura 3.27 ilustrează diferenĠele dintre un sistem de memorie
semnal, de fapt, fiecare pereche de căsuĠe cu aceeaúi etichetă (0/1, 1/2 etc.) plasată bazat pe RDRAM úi unul bazat pe SDRAM. Se observă că la RDRAM cipurile
la stânga úi la dreapta unui banc constituie un singur amplificator de semnal. sunt ataúate unor module de memorie RIMM, aúa cum memoria SDRAM este
organizată în module DIMM.
Structura unui calculator 97 98 ARHITECTURA SISTEMELOR DE CALCUL

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 transferul
datelor este dublă (Double Data Rate) faĠă de o memorie SDRAM. DDR SDRAM
se 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ă datele
solicitate nu există în cache, conĠinutul curent al acestuia este vărsat în DRAM-ul
integrat 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 de
transfer RDRAM este aproximativ 60–70% din rata DDR SDRAM (datorită
faptului 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ăQător celui
al predecesoarei sale, cu excepĠia faptului că la DDR SDRAM se transferă două
Fig. 3.27. DiferenĠele dintre sistemele de memorie RDRAM úi SDRAM. cuvinte de date într-o perioadă de ceas.
Figura 3.29 prezintă funcĠionarea unui sistem de memorie format din 3
DiferenĠa constă în faptul că RIMM-urile sunt ataúate plăcii de bază în mod
DIMM-uri, fiecare cu 4 bancuri de memorie pe 64 de biĠi.
serial, neputând exista sloturi de memorie goale. Dacă nu există suficiente module
În figură sunt marcate blocurile de date de 64 de biĠi (alcătuite din 4 pachete
de memorie RIMM propriu-zise, sloturile de memorie de pe placa de bază rămase
de câte 16 biĠi), blocuri trimise de bancurile de memorie către procesor în timpul
libere vor trebui completate cu module de continuitate, pentru a permite canalului
unei operaĠii de citire. SăgeĠile indică sensul parcurs de date pe magistrala de
Rambus săúi atingă rezistenĠa de sarcină (terminaĠia). Din punct de vedere teoretic,
memorie la care sunt conectate DIMM-urile. În cazul unei operaĠii de scriere,
pot exista oricâte canale Rambus independente într-un sistem, fiecare cu o lărgime
sensul ar fi, evident, invers (CPU–memorie).
de bandă de 1,6 GB/s, dar, în practică, numărul canalelor este limitat din
Evaluarea modulelor DDR SDRAM se face într-un mod diferit de SDRAM,
considerente de design al plăcilor de bază.
principalul criteriu nemaifiind frecvenĠa, ci lărgimea de bandă maximă oferită
Un alt factor care complică designul unui subsistem de memorie Rambus
teoretic úi care se exprimă în MB/s.
este dat de faptul că semnalului de ceas provenit de la controlerul de memorie îi
Standardele uzuale actuale sunt PC1600, PC2100 úi PC2400. Primul are o
este necesar un timp atât de ridicat pentru a ajunge la cel mai depărtat modul
frecvenĠă de 2100 MHz (datorită transmisiei datelor pe ambele fronturi ale
RIMM din sistem, încât poate fi defazat de mai multe ori, faĠă de semnalul ajuns la
semnalului). Lărgimea de bandă de 1600 MB/s se obĠine înmulĠind lăĠimea căii de
primul modul RIMM.
date (64 de biĠi) cu frecvenĠa memoriei (200 MHz) úi împăUĠind la numărul de biĠi
Din acest motiv, canalul Rambus suportă până la cinci domenii pentru
dintr-un octet (8).
semnalul de ceas, doar pentru a putea păstra o sincronizare între transferurile pe
magistrala de memorie. Aceste schimbări ale domeniilor de tact complică însă úi Similar, pentru PC2100 frecvenĠa este 2133MHz, adică, 266 MHz, iar
mai mult arhitectura sistemului de memorie Rambus, prezentată în figura 3.28. pentru PC2700, frecvenĠa este de 333 MHz.
Structura unui calculator 99 100 ARHITECTURA SISTEMELOR DE CALCUL

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 la
viteze 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 în
situaĠiile în care nu este necesară o rată de transfer foarte mare. Tensiunea maximă
Fig. 3.29. Sistem de memorie DDR SDRAM cu 3 DIMM-uri a câte 4 bancuri pe 64 de biĠi. recomandată este 1,9 V, fiind chiar interzisă depăúirea acesteia în situaĠiile în care
stabilitatea memoriei este un factor cheie. Totuúi, modulele de memorie ar trebui să
DDR2 SDRAM (Double Data Rate Two Synchronous DRAM) reziste până la 2,3 V, înainte ca memoria să fie complet distrusă.
Memoriile DDR2 fac parte din familia memoriilor SDRAM, reprezentând o Pentru folosirea în calculatoarele personale, memoriile DDR2 vin sub forma
îmbunăWăĠire a memoriilor DDR SDRAM. Unul dintre principalele avantaje ale unor module DIMM cu 240 de pini, identificate, de obicei, după rata maximă de
DDR2-ului este abilitatea acestuia de a opera cu magistrala de date externă de două transfer. Cele úase standarde pentru modulele DDR2 sunt prezentate în tabelul 3.2.
ori mai repede decât DDR. Acest lucru este obĠinut prin îmbunăWăĠirea semnalizării
magistralei úi prin operarea celulelor de memorie la jumătate din frecvenĠa de ceas Tabelul 3.2
(un sfert din rata de transfer a datelor). Standardele pentru modulele de memorie DDR2
Dacă memoria DDR2 ar opera la aceeaúi frecvenĠă de ceas ca DDR, ar FrecvenĠa Perioada FrecvenĠa Transferuri Numele Rata max.
asigura aceeaúi lărgime de bandă, dar ar avea o întârziere semnificativ mai mare. Numele
memoriei ceasului magistralei de date pe modu- de transfer
Ca úi în cazul DDR, datele din memoriile DDR2 sunt transferate atât pe frontul standardului
(MHz) (ns) I/O (MHz) sec. (mil.) lului (MB/s)
crescător, cât úi pe frontul descrescător al ceasului. DiferenĠa principală dintre DDR
úi DDR2 este aceea că în cazul DDR2 magistrala este sincronizată la de două ori DDR-400 100 10 200 400 PC-3200 3200
frecvenĠa la care lucrează celulele de memorie, astfel încât pot fi transferaĠi 4 biĠi de DDR-533 133 7,5 266 533 PC-4200 4266
date într-un ciclu al celulei de memorie, conform diagramei de timp din figura 3.30.
FrecvenĠa magistralei DDR2 este crescută prin unele îmbunăWăĠiri la DDR-667 166 6 333 667 PC-5300 5333
interfaĠa electrică, folosirea tehnologiei on-die termination sau folosirea unor DDR-800 200 5 400 800 PC-6400 6400
buffer-e de preîncărcare. Buffer-ul de preîncărcare în cazul DDR2 are o adâncime
de 4 biĠi, spre deosebire de doi biĠi în cazul DDR. Din păcate, implementarea DDR-1066 266 3,75 533 1066 PC-8500 853
tuturor acestor tehnologii au dus la o creútere a întârzierilor. Dacă în cazul DDR DDR-1300 325 3,1 650 1300 PC-10400 10400
apare 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 ca
magistrala să lucreze la o frecvenĠă de două ori mai mare.
Structura unui calculator 101 102 ARHITECTURA SISTEMELOR DE CALCUL

DIMM-urile DDR2 nu au fost proiectate să fie compatibile cu modulele O tehnologie complet nouă, folosită pentru prima dată în cazul DDR3, este
DDR. Cheia de siguranĠă la DDR2 se află în altă poziĠie, iar densitatea pinilor (240 topologia Fly-By. GeneraĠiile anterioare de SDRAM, inclusiv DDR2, utilizau o
pentru desktop, 200 pentru notebook) este uúor mai mare decât în cazul DDR topologie stea pentru a împăUĠi datele spre mai multe căi de semnal. Topologia Fly-
(184). Modulele DDR2 mai rapide sunt compatibile cu modulele DDR2 mai lente, By utilizează o singură legătură directă către toate componentele DRAM, ceea ce
însă magistrala va funcĠiona la viteza celui mai lent modul. permite un răspuns mult mai rapid din partea sistemului.
DDR3 SDRAM (Double Data Rate Three Synchronous DRAM) Motivul pentru care DDR2 nu s-a putut dezvolta mai mult decât a făcut-o nu
Memoriile DDR3 sunt o îmbunăWăĠire a modelului precedent de memorii, se datorează atât procesului de fabricaĠie, care ar fi trebuit rafinat mai mult, cât
DDR2. Principala diferenĠă între cele două constă în faptul că magistrala I/O unor limitări mecanice. În esenĠă, DDR2 nu este pregătit să atingă viteze mai mari.
DDR3 funcĠionează la o frecvenĠă de patru ori mai mare decât celulele de memorie. Teoretic, acest lucru ar fi posibil, dar, practic, tehnologia mecanică dezvoltată până
În plus, DDR3 permite cipuri de capacitate de la 512 Mb până la 8 Gb, ceea ce azi nu permite acest lucru. La frecvenĠe mai mari, DIMM-ul începe să întâmpine
duce la posibilitatea obĠinerii de module de până la 16 GB. Memoriile DDR3 probleme în ceea ce priveúte integritatea semnalului. În cazul topologiei stea
promit o reducere a consumului de energie cu 17%, tehnologia de 90 nm folosită în folosite de DDR2, această problemă s-ar rezolva dacă s-ar reuúi echilibrarea tuturor
fabricarea cipurilor DDR3 având nevoie de o tensiune de 1,5 V (faĠă de 1,8V ramurilor. Din păcate, efortul necesar pentru a face acest lucru este peste limitele
pentru DDR2 sau 2,5 V pentru DDR). Unii producători propun utilizarea fizice din ziua de azi.
tranzistorilor dual-gate, tehnologie care ar permite reducerea úi mai mare a Pentru DDR3, integritatea semnalului este rezolvată la nivelul fiecărui modul
scurgerilor de curent. Tensiunea maximă recomandată pentru DDR3 este 1,575 V. DRAM, în locul încercării unei echilibrări la nivelul întregii platforme de memorie.
În mod normal, memoriile ar trebui să reziste până la 1,975 V, făUă a suferi o Acum, atât adresele, cât úi semnalele de control, sunt transmise pe aceeaúi cale.
distrugere totală, deúi, cel mai probabil, nu vor funcĠiona corect la acest nivel. Practic, topologia Fly-By elimină limitările cauzate de echilibrarea mecanică
Principalul avantaj al memoriilor DDR3 este dat de lărgimea de bandă. folosită în DDR2, înlocuind-o cu un semnal automat de întârziere, generat de către
Creúterea acesteia a fost posibilă úi datorită buffer-ului de preîncărcare, a cărui controlerul de memorie. O altă inovaĠie prezentă la DDR3 constă în apariĠia unui
adâncime a fost mărită de la 4 biĠi, cât era în cazul DDR2, la 8 biĠi. Această dublare pin de reset. Acest pin permite resetarea unui modul de memorie făUă resetarea
a dimensiunii buffer-ului este spectaculoasă, în comparaĠie cu celelalte mici întregului sistem, ceea ce duce la o scădere a timpului úi a energiei pierdute.
incrementări ale dimensiunii care au avut loc anterior. Redimensionarea buffer-ului De remarcat este úi prezenĠa unui senzor de temperatură, pentru prima dată
are un cuvânt greu de spus în ceea ce priveúte întârzierea semnalului CAS. la memoriile DDR, senzor care detectează momentul în care modulul se apropie de
Teoretic, modulele DDR3 pot transfera date la o frecvenĠă de 800–1600 MHz, un anumit prag de temperaturăúi, în consecinĠă, poate scurta intervalele de refresh.
folosind ambele fronturi ale tactului I/O, cu frecvenĠa de 400–800MHz. Acest sistem de siguranĠă permite úi el o reducere a consumului de energie.
DIMM-urile DDR3 au acelaúi număr de pini ca modulele DDR2 (240), Un alt element caracteristic DDR3 este sistemul XMP (eXtended Memory
având úi aceleaúi dimensiuni, dar, cu toate acestea, sunt incompatibile din punct de Profile). Acest sistem, implementat pe placa de bază, permite utilizatorului unei
vedere electric, iar cheia de securitate este situată în altă poziĠie. configuraĠii alcătuite dintr-un procesor Intel úi o memorie DDR3 să realizeze un
Cele patru standarde pentru modulele DDR3 sunt prezentate în tabelul 3.3. overclocking foarte simplu. Doar prin selectarea unei anumite opĠiuni, sistemul va
decide singur factorii de multiplicare, tensiunile úi frecvenĠele până la care poate fi
Tabelul 3.3 forĠat ceasul pentru a câútiga un plus de performanĠă.
Standardele pentru modulele de memorie DDR3 XDR DRAM (eXtreme Data Rate DRAM)
Memoriile XDR-RAM sunt considerate ca fiind succesorul memoriilor
FrecvenĠa Perioada FrecvenĠa Transferuri Numele Rata max.
Numele
memoriei ceasului magistralei de date pe modu- de transfer Rambus (RDRAM), fiind în concurenĠă directă cu DDR2, SDRAM úi GDDR4
standardului
(MHz) (ns) I/O (MHz) sec. (mil.) lului (MB/s) (memoriile grafice pentru plăcile grafice din familia GeForce FX). XDR-ul a fost
proiectat în special pentru sisteme mici, care necesită o lărgime de bandă ridicată,
DDR3-800 100 10 400 800 PC-6400 6400 úi pentru sisteme GPU (Graphical Processing Unit) de top. Această tehnologie
DDR3-1066 133 7,5 533 1066 PC-8500 8533
elimină problemele cauzate de întârzierile ridicate, prezente la primele modele
RDRAM. De asemenea, XDR DRAM permite o lărgime de bandă per pin mult mai
DDR3-1333 166 6 667 1333 PC-10600 10667 mare, ceea ce duce la scăderea costurilor de producĠie a plăcilor de circuite
integrate. Scăderea costurilor este posibilă datorită faptului că sunt necesare mai
DDR3-1600 200 5 800 1600 PC-12800 12800
puĠine căi de transmisie a datelor pentru aceeaúi lărgime de bandă.
Structura unui calculator 103 104 ARHITECTURA SISTEMELOR DE CALCUL

Dispozitivele XDR DRAM folosesc un nucleu DRAM cu 8 bancuri,


implementate în tehnologie CMOS, având momentan o densitate de 512 Mb. Spre
deosebire de alte dispozitive DRAM, dispozitivele 16 XDR DRAM implementează
o 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ăWăĠ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, care Fig. 3.31. Modul de memorie XDIMM.
permite o extindere a capacităĠii, păstrând în acelaúi timp úi integritatea
ridicată a semnalului, caracteristică modelului Point-to-Point; eDRAM (embedded DRAM)
 Generatorul de tact, XCG, asigură patru ieúiri programabile, care eDRAM reprezintă o memorie dinamică cu acces aleator, capacitivă,
garantează semnalele de tact pentru XIO úi alte dispozitive XDR DRAM. integrată în mod uzual în acelaúi pachet cu procesorul, spre deosebire de modulele
Celula XIO este un controler I/O performant cu întârzieri reduse, care DRAM externe úi SRAM-urile utilizate tipic pentru memorii cache.
foloseúte un sistem de semnalizare pe 8 biĠi, la o frecvenĠă de până la 4 GHz, Împachetarea permite folosirea de magistrale mult mai mari úi o viteză
permiĠând o lărgime de bandă de până la 8 GB/s de la un singur dispozitiv XDR sporită a operaĠiilor. Datorită unei densităĠi mult crescute pentru DRAM în
DRAM. XIO poate fi configurat să suporte mai multe dispozitive, asigurând astfel comparaĠie cu SRAM, pot fi utilizate cantităĠi mai mari de memorie. DiferenĠa în
Oărgimea de bandă necesară aplicaĠiilor grafice sau altor aplicaĠii. procesul de fabricaĠie determină dificultatea integrării pe aria cipului procesorului,
XIO este compus din unul până la 12 blocuri de cerere a magistralei (RQ – astfel încât mai multe circuite integrate de pe arie trebuie împachetate într-un chip,
ReQuest bus block), un bloc de control (CTL) úi un număr variabil de blocuri de date ridicând costul. Cele mai recente dezvoltări surmontează această limitare, utilizând
de 8 sau 9 biĠi – în cazul memoriilor cu cod corector de erori (DQ). Blocul RQ asigură procesarea CMOS standard pentru a fabrica eDRAM, ca în formatul de memorie
subsistemelor memoriei informaĠiile referitoare la adrese úi control. Blocul CTL 1T-SRAM (vezi paragraful următor).
asigură accesul la registre, iniĠializarea, întreĠinerea úi testarea funcĠiilor sistemului. Un Memoria eDRAM este folosită într-o largă varietate de console de jocuri.
bloc DQ este capabil să primeascăúi să transmită date cu o frecvenĠă de până la 4 GHz. Atât celula microprocesoare utilizată în PlayStation 3, cât úi cea pentru IBM
Memoriile XDR DRAM vin sub forma unor module XDIMM, specifice Power, folosesc eDRAM la cache-ul L2, în nodul de procesare de 45 nm al IBM.
Rambus (vezi figura 3.31). Acestea oferă flexibilitate în ceea ce priveúte upgrade-
1T-SRAM (1 Transistor Static RAM)
ul, o capacitate ridicată úi performanĠă ridicată, esenĠială în cazul serverelor, de Tehnologia de fabricare a memoriilor 1T-SRAM, introdusă de către MoSys,
exemplu. Datorită tehnologiei Dynamic Point-to-Point, XDIMM-urile pot fi
oferă o alternativă la memoriile SRAM tradiĠionale, permiĠând o capacitate mai
instalate atât în configuraĠie single-channel, cât úi în configuraĠie dual-channel, mare. Principala utilizare a memoriilor 1T-SRAM este în cazul sistemelor
Săstrând întreagă lărgimea de bandă a sistemului úi conservând integritatea embedded (sisteme dedicate). MoSys a implementat o celulă de memorare cu un
semnalului, caracteristică topologiei Point-to-Point.
singur tranzistor, ca în cazul DRAM, dar această celulă este susĠinută de o reĠea de
O altă inovaĠie tehnologică adusă de XDR este tehnologia DRSL circuite care fac funcĠionarea memoriei să fie echivalentă celei a memoriilor
(Differential Rambus Signaling Level). Această tehnologie presupune un standard SRAM (controlerul ascunde toate operaĠiile specifice memoriilor DRAM, cum ar fi
de semnalizare de joasă tensiune, joasă putere, diferenĠial, care permite o preîncărcarea sau reactualizarea). În consecinĠă, memoriile 1T-SRAM au o
magistrală scalabilă, multi-GHz, bidirecĠională, de tip Point-to-Point, care
interfaĠă standard SRAM de un ciclu úi sunt percepute de restul logicii sistemului
conectează celula XIO la dispozitivele XDR DRAM. exact ca orice altă memorie SRAM.
XDR foloseúte úi standardul RSL (Rambus Signaling Level), dezvoltat Datorită celulei de memorare cu un tranzistor, varianta 1T-SRAM este mai
iniĠial pentru RDRAM, standard care permite conectarea a până la 36 de
mică decât SRAM-ul clasic, bazat pe celule de 6 tranzistori, fiind mai apropiată de
dispozitive într-un mod sincron, adresate prin intermediul unei magistrale úi eDRAM (embedded DRAM) în ceea ce priveúte dimensiunea úi densitatea (vezi
comandate prin niúte semnale. Sistemul de memorie Rambus XDR satisface figura 3.32).
nevoile computaĠionale din numeroase domenii, cum ar fi computere grafice, În acelaúi timp, 1T-SRAM oferă performanĠe comparabile cu SRAM, consumă
servere, reĠelistică sau electronică de larg consum. mai puĠin decât eDRAM úi este realizată în tehnologie CMOS, ca SRAM-ul clasic.
Structura unui calculator 105 106 ARHITECTURA SISTEMELOR DE CALCUL

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ă mai
mare de apariĠie a erorilor. Totuúi, sistemul ECC rezolvă această problemă.
4. 1T-SRAM-Q, care este o versiune quad-density, folosind un proces
nestandard de fabricare a condensatoarelor, care permite înjumăWăĠirea
dimensiunilor memoriei încă o dată faĠă de 1T-SRAM-R.
Memoriile 1T-SRAM funcĠionează la viteze comparabile cu 6T-SRAM úi
sunt semnificativ mai rapide decât eDRAM, modelul quad-density fiind cu doar
10–15% mai mare. În majoritatea proceselor de fabricare a memoriei eDRAM este
necesară parcurgerea unor paúi suplimentari úi costisitori, depăúind astfel destul de
mult 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 sistem
principal de stocare a datelor. De asemenea, memoria 1T-SRAM a fost folosită în
urmaú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
Fig. 3.32. ComparaĠie între celula 1T-SRAM úi celula SRAM cu 6 tranzistori. pin separat pentru ieúirea datelor, spre deosebire de SRAM standard, în care cei doi
pini sunt comuni. QDR permite introducerea úi extragerea datelor pe ambele
MoSys prezintă 1T-SRAM ca fiind soluĠia ideală pentru aplicaĠiile bazate pe fronturi (DDR – Double Data Rate), ducând astfel la obĠinerea unor viteze foarte
SOC-uri (System-On-a-Chip – se încearcă integrarea tuturor componentelor unui mari pentru operaĠiile de scriere úi de citire, care se pot desfăúura simultan. În felul
computer sau a unui sistem electronic într-un singur circuit integrat), cum ar fi acesta, se poate realiza un transfer de până la patru cuvinte la fiecare ciclu de ceas,
microcontrolere, DSP-uri, blocuri de memorie, timer-e, regulatoare de tensiune etc. cu o latenĠă foarte mică. Acest tip de memorie este ideal pentru sistemele de
Memoriile 1T-SRAM sunt organizate sub forma unei matrice de mici comunicaĠii úi reĠelistică, cum ar fi router-e sau switch-uri. Pentru a veni în
bancuri de memorie (în general, 128 linii a câte 256 de biĠi fiecare, rezultând un întâmpinarea tendinĠelor din acest domeniu, QDRII SRAM utilizează porturi I/O la
total de 32 Kb) conectate la o memorie cache de dimensiunea unui banc úi la un o viteză foarte ridicată prin tehnologia HSTL (High Speed Transceiver Logic),
controler de memorie. suportată de toate sistemele de networking de nouă generaĠie (vezi figura 3.33).
Chiar dacă, în comparaĠie cu DRAM, 1T-SRAM este ineficient în ceea ce Din punct de vedere al consumului de energie, memoriile QDR se situează
priveúte spaĠiul, lungimea mai mică a cuvintelor permite atingerea unor viteze mult foarte bine, necesitând doar 1,8 V pentru nucleul memoriei úi 1,4 V pentru pinii de
mai mari, reuúindu-se astfel realizarea unui ciclu RAS la fiecare acces. Fiecare intrare/ieúire. Acest aspect este extrem de important în domeniul pentru care sunt
acces se face la câte un banc, permiĠând astfel bancurilor nefolosite să fie concepute să funcĠioneze aceste memorii.
reactualizate în acelaúi timp. În plus, fiecare linie citită este copiatăúi în memoria
cache. Î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 timpul
necesar pentru realizarea reîmprospăWării.
Până în prezent (mai 2008), au fost lansate patru generaĠii de memorii
SRAM cu un tranzistor:
1. 1T-SRAM original, care are o dimensiune de două ori mai mică decât
6T-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 modul
stand-by, fiind proiectată pentru uzul în sisteme portabile, de genul
telefoanelor mobile.
Fig. 3.33. Arhitectura QDR II SRAM.
Structura unui calculator 107 108 ARHITECTURA SISTEMELOR DE CALCUL

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úor
defazate. Memoriile QDR II vin sub forma unor FPGA-uri de 13  15  1 mm.
O memorie QDR II hotăUăúte dacă va efectua o operaĠie de scriere sau de
citire, în funcĠie de starea în care se află pinii de citire (R#) úi de scriere (W#) la
momentul î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ă de
scriere, R# trebuie să fie la nivelul 1 úi W# la nivelul 0 (vezi figura 3.35).

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). Formatul
SGRAM conceput de IBM poate citi sau scrie un număr de locaĠii dintr-un burst de
1, 2, 4, 8 octeĠi sau chiar o pagină de memorie. Odată ce un rând este activ, mai
este necesară doar adresa coloanei.
Fig. 3.34. OperaĠia de citire la QDR II. Există un contor în structura sa internă, care număUă fiecare locaĠie de
memorie, 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 sunt
completate sau până când apar secvenĠe de întrerupere. Pentru a face trecerea pe un
nou 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, aceasta
fiind î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 să
apară pe ecran.
Cu memorii DRAM obiúnuite, aceste operaĠii de citire úi scriere nu pot
Fig. 3.35. OperaĠia de scriere la QDR II.
apărea simultan, una trebuie să o aútepte pe cealaltă, timpul de aúteptare afectând în
mod negativ performanĠele video, viteza sistemului úi răbdarea utilizatorului.
SGRAM (Synchronous Graphics RAM) $úteptarea poate fi evitată prin introducerea unui cip special de memorie,
FuncĠionarea memoriei SGRAM este asemăQătoare celei de la memoria care să aibă două căi (dual ported) pentru accesul fiecărei locaĠii. O astfel de
SDRAM. FuncĠia principală a memoriei SGRAM este aceea de a stoca úi citi date memorie permite scrierea úi citirea simultană. Cipurile de memorie video VRAM
simultan în zona de memorie. Deoarece este o memorie de tip DRAM, trebuie să permit citirea úi scrierea aleatorie la un port, în timp ce la celălalt port se permite
dispună de o reîmprospătare periodică, pentru a citi úi a scrie date eficient úi rapid. doar citirea secvenĠială, care corespunde nevoilor de scanare a unei imagini video.
Astfel, au fost introduse funcĠii speciale, care specifică adresele grafice necesare Dezavantajul principal al tehnologiei VRAM este că aceasta este mai
aplicaĠiilor. Aceste funcĠii sunt selectate prin folosirea unor registre speciale, dar úi scumpă. Folosind însă memorii VRAM, se poate mări viteza sistemului video cu
prin folosirea unor pini speciali. aproximativ 40%.
Structura unui calculator 109 110 ARHITECTURA SISTEMELOR DE CALCUL

Pentru a trimite úiruri de date către monitor cu o viteză ridicată, memoria Memoriile SIMM se prezintă constructiv cu 8 sau 9 cipuri pe plăcuĠă, după
VRAM include o serie de registre numite SAM (Serial Access Memory), legate la cum sunt cipuri paritare sau nu. Nu toate plăcile SIMM folosesc verificarea
un port serial. Acest port este conectat la un controler D/A de viteză foarte mare. parităĠii, dar toate plăcile DIMM sunt prevăzute cu aceasta facilitate.
Memoria VRAM are o interfaĠă DRAM complet separată de portul serial. În Exemplu. SIMM-urile paritare pe 8 biĠi folosesc un bit de paritate (module
timp ce unele date sunt citite cu ajutorul portului serial, altele sunt citite sau stocate pe 9 biĠi), iar cele pe 32 de biĠi folosesc 4 biĠi de paritate (module pe 36 biĠi, 8  4
din aria DRAM printr-un port DRAM. Formatul VRAM prezintă câteva = 32 biĠi + 4  1 = 4 biĠi de paritate).
caracteristici realizate special pentru a creúte flexibilitatea în aplicaĠiile grafice. Există úi module de memorie care folosesc cipuri compuse, pe o plăcuĠă
WRAM (Windows RAM) fiind prezente doar 2 sau 4 circuite integrate. În acest caz, în aceeaúi capsulă sunt
Un model VRAM cu două porturi este WRAM (elaborat de Samsung), util prezente patru sau două cipuri de memorie. În cazul în care se folosesc module de
în sistemele video proiectate să asiste o interfaĠă grafică gen Windows. memorie neparitare, va trebui dezactivată din CMOS opĠiunea de verificare a
Cipul de bază WRAM păstrează 1 MB aranjat în plane de 32 de biĠi, fiecare parităĠii memoriei, în caz contrar apărând erori. În nici un caz nu se pot folosi
fiind compus din 512  512 celule. Trei cipuri asigură memoria necesară pentru a combinaĠii de module paritare cu module neparitare.
afiúa o rezoluĠie de 1024  768, 1024  1024 úi pentru operare în True Color pe 24 În timpul funcĠionării sistemului, la detectarea unei erori de paritate este
biĠi. Intern, o magistrală de date de 256 de biĠi leagă fiecare plan de biĠi cu emisă o cerere de întrerupere (de către cipul specializat), care va avea ca rezultat
controlerul logic intern al cipului care multiplexează datele pe 32 de biĠi, final oprirea procesului aflat în execuĠie úi reluarea unei rutine BIOS care va afiúa
compatibile cu circuitele din calculator. Pentru a furniza date în scopul scanării un mesaj specific. Unele variante de microprocesoare au integrat un modul special
video, cipul conĠine două registre serie. Cipul încarcă unul din registre, iar din de evaluare úi verificare a parităĠii memoriei.
celălalt extrage datele, comutând între ele în momentul în care registrul al doilea se AnumiĠi producători ai cipurilor de RAM au abandonat verificarea parităĠii,
goleúte. Cipul conĠine patru registre de 32 de biĠi, două pentru înmagazinare úi deoarece creútea preĠul memoriei cu 10–15 %, la aceasta adăugându-se úi
pentru culorile de fundal, iar celelalte două pentru control úi măúti. posibilitatea unei compactări a cipurilor utilă la calculatoare de tip notebook.
Cu o rată de transfer de până la 640 MB/s, modelul WRAM poate mări Există însă úi calculatoare care au implementată o paritate falsă (fake
viteza sistemului cu 50 % în comparaĠie cu VRAM. parity), care emite un semnal ce atestă paritatea făUă să realizeze o verificare
ObservaĠie. Formatul Windows RAM nu are legătură cu Microsoft Windows. efectivă. Datorită faptului că cipurile care generează paritate falsă sunt mai ieftine,
acestea sunt utile la calculatoarele care au implementat mecanismul de detectare a
parităĠii. În general, modulele de memorie cu paritate falsă apar identice modulelor
3.2.10. Verificarea prin controlul parităĠii cu paritate.
Singurul mod de a le identifica este folosind un tester pentru module de
Revenind la caracteristicile generale ale memoriei, pe majoritatea plăcuĠelor memorie. Deoarece modulele cu paritate falsă lucrează la nivel hard, programele
de memorie se află instalate 9 cipuri (pentru memoriile paritare), primele opt având obiúnuite de testare nu pot să le detecteze (conform cu Kingston Tehnologies,
rol de memorie efectivă de lucru (8 biĠi – de la 0 la 7), iar cel de-al 9-lea fiind cipurile cu paritate falsă sunt marcate cu una din următoarele inscripĠii: BP, GSM,
numit cip de paritate (parity cip), cu rol de testare a stării de funcĠionare a MPEC sau VT).
celorlalte 8 cipuri, prin verificarea parităĠii memoriei. Există însă procedee care pot efectua atât detecĠia, cât úi corecĠia unor erori.
Paritatea memoriei este de două tipuri: pară úi impară. Un exemplu îl constituie procedeul ECC (Error Correction Code), care necesită
Exemplu. Fie cazul unei memorii impare. Un rând de biĠi conĠine un număr biĠi suplimentari pentru fiecare octet memorat. Procedeul poate să localizeze bitul
impar de 1 (număr reĠinut în câmpul 9). Datele sunt cuprinse pe 8 biĠi (1 bit/cip). care este eronat, iar eroarea poate fi remediată (se mai numeúte tehnologie Error
Când o dată este impară, bitul de paritate este 1. Detection And Correction – EDAC). Firma IBM foloseúte tehnologia ECC pe
La pornirea sistemului, când se ajunge la etapa de verificare a memoriei, se calculatoarele proiectate pentru a funcĠiona ca servere.
verifică úi paritatea rândurilor de biĠi (parity check). Memoria fiind, conform Acest cod poate corecta automat orice eroare de 1 bit care apare într-un
exemplului, impară, trebuie să existe un număr impar de biĠi, în caz contrar cuvânt de 64 de biĠi. În acest scop, memoria foloseúte cuvinte de cod de 72 de biĠi
sistemul semnalând o eroare de paritate (parity error) úi deci un cip (sau mai (64 biĠi de date + 8 biĠi de control). Această schemă are aceeaúi eficienĠă cu cea
multe) este (sunt) defect(e). În cazul memoriei pare, procesul este identic cu cel paritară (8/9 = 64/72), dar oferă corecĠie cu o robusteĠe mai mică, pentru că poate
anterior, doar că un rând de biĠi conĠine un număr par de 1. corecta o eroare la 64 de biĠi, spre deosebire de cealaltă schemă, care poate detecta
o eroare la 8 biĠi.
Structura unui calculator 111 112 ARHITECTURA SISTEMELOR DE CALCUL

Procedeul ECC nu este mai costisitor de implementat, datorită creúterii 3.2.12. Memoria cache
dimensiunilor magistralelor; astfel, pentru microprocesoarele Pentium úi post-
Pentium, care au magistrala de date de 64 biĠi, costul unei memorii cu verificare a Datorită vitezei foarte mari cu care lucrează microprocesoarele, implicit úi
parităĠii úi corecĠie este acelaúi. fluxul de date úi informaĠii cerute de acestea va fi foarte intens. Dar, deoarece unele
La fiecare acces la memorie, hardware-ul verifică dacă cuvântul de cod este componente din lanĠul de transmisie a datelor sunt mai lente, în speĠă memoria de
corect; dacă nu, calculează automat cel mai apropiat cuvânt de cod, pe care apoi îl lucru RAM (prin necesitatea de a fi reîmprospătată) úi magistralele calculatorului
decodifică. Aceste operaĠii sunt destul de complicate, astfel încât un sistem cu (lente din principiu), acest flux de date cerut de procesor este mai puĠin rapid decât
memorii ECC merge cu aproximativ 5% mai lent decât unul cu memorii paritare. ar 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 care
lucrează de obicei procesoarele pentru un anumit proces).
3.2.11. Metodele de acces la memorie Ca atare, între posibilităĠile de prelucrare a datelor de către microprocesor úi
capacitatea RAM-ului úi magistralelor de a pune la dispoziĠia microprocesorului
Un alt aspect care trebuie luat în considerare este timpul de acces al aceste date a apărut un decalaj foarte mare, ceea ce a dus în procesul de lucru al
memoriei RAM folosite. După cum s-a mai spus, acesta sunt de ordinul zecilor de unui microprocesor la introducerea stărilor de pauză (wait states), astfel încât, prin
nanosecunde (cu excepĠia memoriilor SDRAM, care pot ajunge până la câteva execuĠia a unuia, a două sau chiar a patru cicluri de aúteptare, datele solicitate să
nanosecunde), timp destul de mare, având în vedere vitezele de tact la care lucrează aibă timp să ajungă la procesor. Practic, se întâmplă următorul lucru: microprocesorul
azi diversele procesoare. Pentru a scădea timpul de acces al memoriei RAM, se lucrează fie cu datele necesare calculelor, fie cu comenzi. Cum datele úi informaĠiile
folosesc diverse metode de acces la memorie prin paginarea acesteia sau întreĠesere necesare sunt cuprinse în memoria de lucru, microprocesorul citeúte memoria RAM,
(Paging Mode sau Interleaving). preluând anumite date, úi realizează calculele úi procesele cerute.
Paginarea asigură o citire mai rapidă, datorită faptului că în cazul unei cereri Cum memoria este mult mai lentă în livrarea datelor faĠă de viteza cu care le
de date din partea microprocesorului, acesta transmite cipului de memorie nu adresa poate prelucra microprocesorul, în funcĠionarea procesorului se introduc ciclurile
datei cerute, ci adresa unei pagini care conĠine informaĠia dorităúi, în cadrul paginii, de aúteptare despre care s-a vorbit anterior; cât timp aceste cicluri se execută, se
adresa datei solicitate (vezi capitolul 6). Automat, spaĠiul de căutare a informaĠiei este permite datelor solicitate de procesor să fie localizate úi „extrase“ din RAM,
micúorat prin paginarea memoriei, iar timpul în care este accesată o informaĠie scade. depuse pe magistrala de date úi „transportate“ către microprocesor. În final, dacă se
ÎntreĠeserea presupune că procesorul desfăúoară o activitate paralelă de va înmulĠi timpul cât durează un ciclu de aúteptare cu milioanele de operaĠii pe
accesare pentru două bancuri de memorie (memoria este împăUĠită, după cum s-a secundă ale unui microprocesor, va rezulta o pierdere de timp substanĠială.
mai spus, în cel puĠin două bancuri, bancul 0 úi bancul 1, care nu sunt accesate Deci, era nevoie de o memorie de lucru ceva „mai aproape de
simultan). Timpul de citire din bancul 0 este folosit de memoria instalată în bancul microprocesor“ úi mult mai rapidă (ideal făUă să necesite operaĠii de
1 pentru operaĠia de reîmprospătare, apoi timpul în care procesorul citeúte din reîmprospătare). De aceea, între microprocesor úi memoria de lucru a mai fost
bancul 1 este folosit de bancul 0 pentru aceeaúi operaĠie de reîmprospătare. introdusă o componentă úi anume memoria cache, realizată din celule de tip
Acest lucru este posibil datorită faptului că microprocesorul accesează date, SRAM, cu rol de memorie tampon. La rândul său, memoria cache a fost divizată
în general, de la adrese apropiate sau învecinate cu adresa citită anterior. Cum fizic în două niveluri úi anume (vezi figura 3.37):
citirea este un proces secvenĠial, după citirea de la adresa k din bancul 0 urmează  memoria cache primară sau internă (primary level cache, L1)
citirea de la adresa k+1 din bancul 1, citire care se efectuează foarte rapid (practic,  memoria cache secundară sau externă (secundary level cache, L2 / L3).
instantaneu), deoarece operaĠia de refresh a bancului 1 a fost deja realizată. Se Memoria cache internă este plasată chiar în capsula microproceso-rului, dar
asigură astfel citirii o fluenĠă aproape perfectă. este de dimensiuni foarte mici, în general de la 8 KB (Pentium) până la 1 MB (Xeon).
Această metodă are un dezavantaj: în cazul citirii din locaĠii succesive, doar Memoria cache secundară este exterioară microprocesorului úi se montează
pare sau doar impare (la citiri succesive din acelaúi banc datele sunt scrise – cele pe placa de bază a sistemului. Este sub formă de cipuri (DIP) care se introduc în
pare în primul banc, cele impare în cel de-al doilea banc), nu mai este timp de soclurile aferente, existând úi aici, ca úi la memoria RAM, 8 socluri pentru
refresh între două citiri consecutive úi se vor introduce una sau două stări de memoria cache de lucru úi un al 9-lea soclu pentru cipul de control al memoriei
Dúteptare ale procesorului (wait states), ceea ce determină încetinirea generală a cache. Tipurile mai noi de cache sunt oferite sub formă de plachete asemenea
vitezei sistemului. Plasarea plăcilor de memorie în bancuri separate este foarte utilă SIMM-urilor. Plăcile de bază actuale au uzual cel mult 2 MB de memorie cache.
úi uneori obligatorie, existând modele de placă de bază care nici nu funcĠionează cu Memoria cache este subordonată în activitatea ei unui controler de memorie
o singură plăcuĠă de memorie. cache (de exemplu, controlerul i82385) care va realiza gestiunea adreselor úi
controlul operaĠiilor de citire/scriere.
Structura unui calculator 113 114 ARHITECTURA SISTEMELOR DE CALCUL

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.
Fig. 3.38. Principiul memoriei cache.
Memoria cache internă
Primul nivel de memorie cache (L1) se află integrat în microprocesor úi are o 3.2.12.1. Maparea memoriei cache
porĠiune destinată datelor úi instrucĠiunilor (codului) úi o alta destinată comenzilor. Figura 3.39 prezintă schema logică a algoritmului de citire a memoriei cache.
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ăWăĠHúte mult performanĠele, deoarece – fiind în
interiorul procesorului – transmisia de date este foarte rapidă, nefolosindu-se în
acest 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. Mai
mult, la unele microprocesoare, cache-ul de date este împăUĠit în blocuri, iar
controlerul 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 externă
Datorită dimensiunilor mici ale memoriei cache interne (limitele fiind
impuse din considerente tehnice de construcĠie a microprocesoarelor) úi pentru a
Pări ú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 RAM
sau, mai rău, pe hard disk (cache miss), a fost introdus încă un nivel de memorie
cache (L2 sau L3), de data aceasta în exteriorul microprocesorului, memorie care
este ca dimensiuni cu mult mai mare decât memoria cache internă (de ordinul
megaocteĠ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 acces
extrem de mici (4–15 ns).
Exemplu. Pentru un procesor cu frecvenĠa internă de 166 MHz, va fi nevoie
de 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. Fig. 3.39. OperaĠia de citire a memoriei cache.
Structura unui calculator 115 116 ARHITECTURA SISTEMELOR DE CALCUL

O caracteristică de bază a memoriei cache este funcĠia de mapare (de


translatare), care atribuie locaĠii din memoria cache blocurilor din memoria
principală. 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 libertatea
de 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 memoria
principală poate merge într-o singură locaĠie din cache, procedeul se numeúte mapare
directă. Cele mai multe memorii cache implementează un compromis între cele
două, 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ă memoria
cache 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 că
memoria principală constă din 8 Kblocuri de câte 8 octeĠi fiecare. Deoarece există un
număr mai mic de linii ale memoriei cache faĠă de numărul blocurilor memoriei
principale, este necesar un algoritm pentru plasarea blocurilor memoriei principale Fig. 3.40. Memorie cache cu mapare directă.
în liniile memoriei cache. În plus, este necesar un mijloc de a determina care bloc
al memoriei principale ocupă la un moment dat o linie a memoriei cache. 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 de
Memoria cache cu mapare directă marcaj 0, 1, 2, …, respectiv 63.
În cazul tehnicii celei mai simple, numită mapare directă, fiecare bloc al Considerând din nou figura 3.40, o operaĠie de citire are loc astfel. Memoriei
memoriei principale poate ocupa o singură linie posibilă a memoriei cache, aúa cache i se prezintă o adresă de 16 biĠi. Numărul liniei de 7 biĠi este utilizat ca un
cum este reprezentat în figura 3.40. index în memoria cache pentru accesul la o anumită linie. Dacă marcajul de 6 biĠi
Maparea este: este egal cu marcajul liniei respective, atunci numărul de 3 biĠi al cuvântului este
utilizat pentru a selecta unul din cei 8 octeĠi ai liniei respective. În caz contrar,
C = A mod L, (3.5) marcajul úi numărul liniei (în total 13 biĠi) se utilizează pentru a încărca un bloc din
unde: memoria principală.
C = numărul liniei din memoria cache; Memoria cache cu mapare asociativă
A = adresa din memoria principală; Maparea directă este o tehnică care se poate implementa simplu. Principalul
L = numărul de linii din memoria cache. dezavantaj al acesteia este că există o locaĠie fixă în memoria cache pentru oricare
Pentru exemplul considerat, L = 128 úi C = A mod128. FuncĠia de mapare bloc dat. Deci, dacă un program face referire în mod repetat la cuvinte din două
poate fi implementată simplu, utilizând adresa de 16 biĠi. Cei 3 biĠi mai puĠin blocuri diferite care se mapează în aceeaúi linie, blocurile vor fi interschimbate în
semnificativi, câmpul cuvânt (offset), identifică un cuvânt (octet) unic în cadrul mod continuu în memoria cache úi rata de succes va fi redusă.
unui bloc al memoriei principale. Restul de 13 biĠi specifică unul din cele 213 = 8 O metodă care elimină dezavantajul mapării directe este maparea asociativă,
Kblocuri ale memoriei principale. reprezentată în figura 3.41. În acest caz, adresa memoriei principale constă dintr-un
Câmpul de 7 biĠi, numit linie sau index (slot), indică numărul blocului, marcaj de 13 biĠi úi un număr al cuvântului de 3 biĠi. Un bloc din memoria principală
modulo128. Astfel, blocurile 0, 128, 256, …, 8064 vor fi amplasate în linia 0; se poate încărca în oricare linie, iar marcajul său de 13 biĠi se memorează împreună
blocurile 1, 129, …, 8065 vor fi amplasate în linia 1, úi aúa mai departe, până la cu blocul. Pentru a determina dacă un bloc se află în memoria cache, sunt necesare
blocurile 127, 255, …, 8191, care vor fi amplasate în linia 127. circuite pentru a compara simultan marcajul său cu marcajele fiecărei linii.
Structura unui calculator 117 118 ARHITECTURA SISTEMELOR DE CALCUL

Fig. 3.41. Memorie cache cu mapare asociativă.


Fig. 3.42. Memorie cache cu mapare asociativă pe seturi.
În cazul mapării asociative, există o flexibilitate în privinĠa înlocuirii unui
bloc atunci când un nou bloc este încărcat în memoria cache. Algoritmii de Memoria cache cu mapare pseudo-asociativă
înlocuire a blocurilor din memoria cache, prezentaĠi în continuare, au rolul de a Memoria cache asociativă pe seturi testează simultan toate căile posibile,
creúte eficienĠa. Principalul dezavantaj al acestei metode îl reprezintă circuitele folosind un mecanism asemăQător conĠinutului adresabil al memoriei. Memoria
complexe necesare pentru a examina marcajele tuturor liniilor din memoria cache. cache pseudo-asociativă testează fiecare cale posibilă o singură dată. În cele mai
Memoria cache cu mapare asociativă pe seturi multe cazuri, când găseúte un bloc din prima testare (succes), memoria cache pseudo-
Maparea asociativă pe seturi reprezintă un compromis care reĠine avantajele asociativă este la fel de rapidă ca în cazul mapării directe, dar are o rată de eúec mai
mapării directe úi ale celei asociative. În acest caz, memoria cache este împăUĠită în scăzută decât în cazul mapării directe úi mai aproape de cea a mapării asociative.
I seturi, iar fiecare din acestea conĠine J linii, aúa cum rezultă din figura 3.42. Analize úi comparaĠii
Rezultă: Asociativitatea 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 toate
L = I  J, (3.6) pentru un cache hit. A verifica mai multe locaĠii consumă mai multă putere, spaĠiu
K = A mod I, (3.7) úi timp. Pe de altă parte, depozitarea folosind asociativitatea are câteva minusuri,
de aceea viteza procesorului scade. Regula ,,degetului mare” are rolul de a dubla
unde K este numărul setului. asociativitatea de la maparea directă la cea asociativă pe două căi úi de la cea
Cu această metodă, blocul conĠinând adresa A poate fi mapat în oricare din asociativă pe două căi la cea pe patru căi etc., având acelaúi efect ca în cazul unui
liniile setului I. cache hit. Mărirea asociativităĠii la peste patru căi are un efect mai slab decât în
ObservaĠie. În cazul extrem, în care I = Lúi J = 1, maparea asociativă pe seturi cazul unui cache hitúi este realizată, în general, pentru alte motive.
se reduce la maparea directă, iar dacă I = 1 úi J = L, se obĠine maparea asociativă. Dacă fiecare locaĠie din memoria principală poate fi depozitată în alte două
Utilizarea a două linii pe set (J = 2) este cea mai utilizată organizare asociativă locaĠii din memoria cache, se pune întrebarea care din cele două va fi folosită. Cea
pe seturi, care îmbunăWăĠHúte semnificativ rata de succes faĠă de maparea directă. mai simplăúi cea mai folosită schemă utilizează LSB-ul câmpului linie (index) al
Exemplu. Cache-ul de nivel 1 din AMD Athlon este asociativ pe două seturi, locaĠiei de memorie ca index pentru memoria cache úi are două intrări pentru
adică orice locaĠie din memoria principală poate fi depozitată în 2 locaĠii din L1. fiecare linie. Avantajul acestei scheme este că etichetele stocate în cache nu trebuie
Structura unui calculator 119 120 ARHITECTURA SISTEMELOR DE CALCUL

Vă includă acea parte a adreselor din memoria principală care sunt implicate în EficienĠa unei memorii cache se măsoară în procentajul de găsiri ale datelor,
câmpul linie (index) al memoriei cache. numit rată de succes, H (hit rate). Opusul acestei valori este procentajul de ratări,
Atât timp cât etichetele cache reprezintă doar câĠiva biĠi, ocupă spaĠiu puĠin, numit rată de eúec, M (miss rate). Procentajele acestea se măsoară rulând
putând fi citite úi comparate rapid. Unul dintre avantajele mapării directe este acela numeroase programe úi făcând media.
Fă lasă loc speculaĠiilor rapide úi simple. Atunci când o adresă a fost calculată, i s-a RelaĠia în aceste două valori este:
ataúat index cache unic, care ar putea conĠine datele. Noua intrare în cache poate fi
citită, iar procesorul îúi continuă lucrul cu acele date pe care le avea înainte de a H = 1 – M. (3.8)
termina procesul de verificare, dacă adresa cerută se potriveúte cu eticheta actuală.
Ideea ca procesorul să folosească date depozitate în cache înainte ca eticheta Dacă timpul de citire din memoria cache este TH (hit time), iar timpul pierdut
Vă se potrivească complet poate fi aplicată úi la cache-ul asociativ. O parte din până se ratează este TM (miss time), atunci se poate măsura timpul mediu de acces
etichetă, numită cheie (hint), poate fi folosită pentru a alege una din adresele la memoria cache cu următoarea formulă:
cerute, aflate posibil în harta cache. Aceste date pot fi folosite în paralel cu
T = TH  H + TM  M. (3.9)
verificarea întregii etichete. Tehnica hint lucrează excelent când este folosită în
contextul translatării adreselor. Se observă că timpul unei ratări (TM) nu este neapărat egal cu timpul de citire
Alte tehnici propun un cache „oblic” (skewed cache), unde indexul căii 0 din memoria lentă, Tl, deoarece, în cazul unei ratări, întâi trebuie constatat dacă
este direct, dar indexul căii 1 este format cu o funcĠie hash. O funcĠie hash de datele sunt în memoria cache, iar, dacă nu sunt, se accesează memoria lentă.
calitate are proprietatea că adresele care intră în conflict cu maparea directă tind să Memoria cache va fi eficientă dacă T < Tl. Parametrul H depinde de mărimea
nu mai aibă conflicte când sunt mapate cu funcĠia hashúi este mai neplăcut ca un memoriei cache: pentru o memorie cache de dimensiunea memoriei lente (caz
program să sufere din cauza unui număr neaúteptat de mare de conflicte. Pe de altă limită), toate datele pot fi Ġinute în memoria rapidăúi se va obĠine H = 1. Pentru o
parte, există latenĠă în implementarea funcĠiei hash. În plus, când trebuie încărcată memorie cache de dimensiune 0, H = 0, pentru că niciodată datele nu se găsesc în
o nouă linie úi exclusă una veche, ar putea deveni dificil să se determine care dintre această memorie.
liniile existente a fost ultima folosită, deoarece noua linie intră în conflict cu datele RelaĠia între mărimea memoriei cache, a memoriei lente úi parametrul H nu
de la diferiĠi indecúi ai fiecărei căi. Metoda LRU (vezi paragraful 3.2.12.3) este o linie dreaptă, ci creúte rapid la început, aúa cum se observă în figura 3.43.
urmăreúte principiul vecinăWăĠii (cache nears) într-un cache non-oblic (non-skewed), Din cauza aceasta, o memorie cache relativ redusă ca mărime are o importanĠă
împăUĠindu-l pe seturi. Aúadar, asociativitatea completă are un avantaj major faĠă mare ca eficienĠă.
de asociativitatea pe seturi.

3.2.12.2. EficienĠa úi localizarea datelor în memoria cache


O 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 memoria
cache. 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 acestea
fiind principiul localizării (locality principle). Există două feluri de localizare:
 localizare spaĠială – dacă este nevoie de unele date, în curând va fi
nevoie probabil de date aflate în apropierea lor în memorie;
 localizare temporală – când s-au găsit anumite date, foarte adesea
acestea vor fi folosite de mai multe ori.
Acestea sunt doar observaĠii, dar se potrivesc destul de bine programelor, aúa
cum funcĠionează acestea în calculatoarele actuale. Validitatea observaĠiilor Fig. 3.43. PerformanĠa memoriei cache.
permite folosirea de memorii cache. Acesta nu înseamnă că nu există programe
care folosesc prost memoriile cache; dimpotrivă, se poate scrie destul de uúor un EficienĠa depinde úi de raportul dintre THúi TM. În anumite cazuri, TM este de
astfel de program (este o metodă „eficientă” de a încetini calculatorul). Programele ordinul a 104TH, deci chiar un parametru H de valoare redusă poate însemna mult.
obiúnuite însă nu se comportă astfel. Exemplu. Procesorul Intel Xeon la frecvenĠa de 3,06 GHz are o memorie cache
L3 de 1 MB, cu magistrala de sistem la 533 MHz, úi contribuie la creúterea nivelului de
performanĠă cu peste 15%.
Structura unui calculator 121 122 ARHITECTURA SISTEMELOR DE CALCUL

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ăUă a folosi un anumit criteriu sau algoritm care să
determine 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 lung
interval sunt rescrise primele, cele accesate de curând fiind păstrate;
 metoda LFU (Least Frequently Used): datele folosite cel mai puĠin
frecvent; blocurile de date care, statistic, au fost folosite cel mai rar sunt Fig. 3.44. Organigrama conectării seriale (look through).
rescrise 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-a
doua úanse (second chance) etc. Metoda cea mai folosită este LRU; de aceea, cel
de-al 9-lea cip de memorie cache (TAG RAM) va juca úi rol de contor al frecvenĠei
de apelare a datelor din cache, determinându-se datele care vor fi rescrise.
Modul de lucru general al microprocesoarelor cu memoria cache este
următorul: programul va căuta datele, prin intermediul controlerului de cache, în
cache-ul intern. Dacă datele solicitate nu se află la acest nivel (cache miss), va
merge mai departe cu căutarea în cache-ul extern úi apoi, în cazul negăsirii acestora
nici aici, în memoria principală RAM. Probabilitatea ca procesorul să găsească
datele 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ă pentru Fig. 3.45. Organigrama conectării paralele (look aside).
operaĠii cu RAM-ul, este disponibilizată pentru alte procese.
3.2.12.5. Depunerea în memorie a rezultatelor
3.2.12.4. Conectarea memoriei cache la microprocesor Indiferent de tipul funcĠiei de mapare, fiecărui bloc din memoria cache îi
Memoria cache este conectată cu microprocesorul úi memoria RAM în sunt asociaĠii doi biĠi de comandă, numiĠi V úi D.
sistem serial sau paralel.
Bitul V este un bit de validare a blocului, V = 1 fiind o condiĠie necesară a
Conectarea serială (look through) – vezi figura 3.44 – presupune ca
obĠinerii unui cache hit. Bitul V este util îndeosebi în sistemele multiprocesor, în
dialogul microprocesor–RAM să se desfăúoare prin intermediul cache-ului. Acest
sistem are dezavantajul că cererile procesorului sunt întârziate de intermediarul vederea menĠinerii coerenĠei memoriilor cache locale, datorită redundanĠei
cache, dar are avantajul că magistrala memoriei nu este ocupată la fiecare cerere a informaĠionale. Mai precis, aici apare necesitatea citirii din cache-ul propriu a
procesorului. Dacă datele solicitate se află în cache (cache hit), interogarea ultimei cópii modificate a datei respective. Când un procesor modifică o copie
memoriei RAM nu se mai efectuează, iar magistrala memoriei rămâne liberă. locală a unei date, toate blocurile care conĠin acea dată din cadrul celorlalte
Conectarea paralelă (look aside) – vezi figura 3.45 – presupune ca procesoare trebuie invalidate prin resetarea V = 0.
microprocesorul să se adreseze, în paralel, atât memoriei cache cât úi memoriei Necesitatea invalidării blocurilor (V = 0) apare chiar úi în sistemele
RAM. În cazul în care ecoul din partea cache-ului este pozitiv, adresarea către uniprocesor. Imediat după resetarea sistemului, uzual, procesorul execută un
RAM este abandonată. De aici rezultă, faĠă de metoda anterioară, avantajul vitezei, program încărcător rezident în memoria EPROM. Cum imediat după iniĠializarea
evitându-se căutarea secvenĠială: întâi în cache, apoi în RAM. Dezavantajul apare sistemului conĠinutul cache-ului este, practic, aleator, pentru a evita falsele situaĠii
prin faptul că magistrala memoriei este tot timpul folosită úi, astfel, nu mai este de cache hit, la citirea programului încărcător din EPROM, se iniĠializează biĠii V
disponibilă – în momentele de scanare a memoriei – altor accesări din partea cu zero. La prima încărcare a unei date (instrucĠiuni) în cache, bitul V aferent se va
perifericelor. Mai ales în modul multitasking, acest lucru se reflectă în întârzieri seta pe 1, validând astfel situaĠia de cache hit.
semnificative ale vitezei de execuĠie a diferitelor sarcini.
Structura unui calculator 123 124 ARHITECTURA SISTEMELOR DE CALCUL

Bitul D (dirty data) este pus pe 0 la încărcarea iniĠială a blocului în cache. La 3.2.12.6. Cache hitúi cache miss
prima scriere a acelui bloc, bitul se pune pe 1. Evacuarea propriu-zisă a blocului se Într-o memorie cache, apar posibile patru procese distincte, ca în tabelul 3.4.
face doar dacă bitul D = 1. Practic, prin acest bit se minimizează evacuările de
blocuri în memoria principală, pe baza principiului că un bloc trebuie evacuat Tabelul 3.4
numai dacă a fost scris în cache. În acest sens, din punct de vedere al accesărilor de Tipuri de acces în memoria cache
scriere de către procesor (depunerea în memorie a rezultatelor), există trei posibilităĠi:
tip acces situaĠie în cache acĠiune în cache
 metoda Write Through ± vezi figura 3.46±, în care se utilizează traseul
invers al citirii datelor, blocurile fiind depuse mai întâi în memoria cache evacuarea blocului úi încărcarea unui
citire miss
internă, apoi în cache-ul extern úi în final în memoria RAM; bloc nou
compararea marcajelor/etichetelor
citire hit
(tag)
evacuarea blocului, încărcarea unui
scriere miss
bloc nou úi scrierea datei în bloc
scrierea datei în blocul din cache
scriere hit
(Write Back)
Fig. 3.46. Schema metodei Write Through.

 metoda Write Back ± figura 3.47±, în care scrierea se face în cache, în $úadar, memoriile cache îmbunăWăĠesc performanĠa, îndeosebi pe citirile cu
cazul în care adresa de memorie la care se face scrierea există úi ea în cache hit, iar, în cazul utilizării scrierii tip Write Back, úi pe scrierile cu cache hit.
cache (de fapt, dacă blocul de date de la acea adresă se află încărcat în ÎmbunăWăĠirea accesului la memorie pe citirile CPU este normală, având în vedere
cache). În cazul în care blocul de date localizat de acea adresă nu mai Fă acestea sunt mult mai frecvente decât scrierile (orice instrucĠiune implică cel
există în cache, scrierea se face direct în RAM; puĠin o citire din memorie pentru încărcarea sa; statistic, cca. 75 % din accesările la
memorie 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 din
date în memoria cache, ceea ce rezultă în scrierea/citirea în memoria principală cu
latenĠe mai mari. ExplicaĠiile pentru cauzele situaĠiilor de cache miss, conform
literaturii de specialitate, sunt de trei tipuri:
 la citirea instrucĠiunilor;
 la citirea datelor;
Fig. 3.47. Schema metodei Write Back.  la scrierea datelor.
Un cache miss la citirea instrucĠiunilor cauzează, în general, întârzieri,
 metoda Posted Write, prin care din memoria cache este rezervată o deoarece procesorul sau ultimul fir de execuĠie trebuie să aútepte până când
anumită porĠiune care va juca un rol de buffer úi în care vor fi memorate instrucĠiunile sunt aduse din memorie.
blocuri de date până când magistrala memoriei devine disponibilă, Un cache miss la citirea datelor cauzează întârzieri mai mici, deoarece
moment în care buffer-ul îúi transferă conĠinutul în RAM. instrucĠiunile nu depind de citirea cache-ului, putând fi evitate, până când datele
În vederea menĠinerii coerenĠei memoriilor cache, cu precădere în sistemele sunt preluate din memoria principală úi instrucĠiunile care depind de acestea îúi
multiprocesor, există două posibilităĠi, în funcĠie de procesul de scriere: continuă execuĠia.
 Write Invalidate, prin care CPU care scrie determină ca toate copiile din Un cache miss la scrierea datelor cauzează întârzieri mici, deoarece scrierea
celelalte memorii cache să fie invalidate înainte ca ea săúi modifice poate fi pusă într-o coadă de aúteptare úi sunt câteva limitări în execuĠia
blocul din cache-ul propriu; instrucĠiunilor. Procesul poate continua până când coada este plină.
 Write broadcast, prin care CPU care scrie pune data de scris pe magistrala SecvenĠe de referinĠe din memorie trecute prin benchmark-uri sunt salvate ca
comună, spre a fi actualizate toate copiile din celelalte cache-uri. urme de adrese. Ulterior, analizele simulate au arătat posibile diferenĠe între
Ambele strategii de menĠinere a coerenĠei pot fi asociate cu oricare dintre lungimile urmelor de adrese, în funcĠie de designul memoriei cache. Cercetătorul
metodele de scriere, dar de cele mai multe ori se preferă Write Back cu invalidare. Mark Hill a separat situaĠiile de cache miss în trei categorii:
Structura unui calculator 125 126 ARHITECTURA SISTEMELOR DE CALCUL

 Ratări obligatorii (compulsory misses) – sunt acele pierderi cauzate de  sincrone, pentru care accesul se face în mod burst (se depune o singură
primele referiri la date. Mărimea úi asociativitatea memoriei cache nu fac adresă, iar transferul se face pentru patru cuvinte simultan, primul cuvânt
nicio diferenĠă între numărul de ratări obligatorii. Aducerea timpurile a cu adresa indicată de controlerul de cache úi următoarele trei). Timpul de
operanzilor din memorie nu este utilă în acest caz. acces scade destul de mult, ajungând până la 9 ns. Cipurile sincrone sunt
 Ratări de capacitate (capacity misses) – sunt acele pierderi care privesc implementate direct prin lipire pe placa de bază a sistemului.
asociativitatea sau mărimea blocurilor, făcute numai de blocurile finite  pipe-line burst cache, care este prevăzut la ieúire cu registre speciale, în
din cache. Curba ratei pentru ratările de capacitate în funcĠie de care datele citite sunt stocate temporar. Astfel, este posibilă o nouă
capacitatea memoriei cache dă măsura localizării temporale a unui úir adresare, practic, în acelaúi timp cu preluarea datelor de către
temporar de referinĠe. InformaĠiile care indică dacă memoria cache este microprocesor din registrele de stocare (latch). Timpul de acces scade
plină, goală sau aproape plină nu sunt utile în acest caz. foarte mult (chiar la 4 ns), fapt care duce la performanĠe deosebite pentru
ObservaĠie. Cache-ul procesorului are aproape mereu fiecare linie sistemele dotate cu astfel de celule de memorie cache.
umplută cu o copie a unei linii din memoria principalăúi de fiecare dată
alocarea unei noi linii necesităútergerea uneia vechi. 3.2.12.8. Memorii cache specializate
 Ratările de conflict (conflict misses) – sunt acele pierderi care ar putea Accesul la memoriile din procesor cu tehnica pipeline, cu stagii multiple ale
fi evitate dacă cache-ul n-ar elimina o intrare mai târziu. Ratările de pipeline-ului, presupune:
conflict pot fi puse într-o hartă de ratări (miss map), care este inevitabilă  aducerea instrucĠiunilor din memorie (instruction fetch);
úi care oferă un detaliu particular asociativităĠii úi politicii de înlocuire.  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ă să
servească 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. Dacă
pipeline-urile au instrucĠiunile úi datele separate în memoria cache, se poate spune
Fă este emulată o arhitectură de tip Harvard. IniĠial, această fază s-a regăsit la
maúinile cu instrucĠiuni úi date separate în memorie. Dar cele mai multe dintre
calculatoarele moderne sunt concepute în arhitectură von Neumann.
Cache victimă (victim cache)
Cache-ul victimă este o memorie cache folosită pentru a reĠine blocurile
Fig. 3.48. Rata de pierderi (miss rate) în funcĠie de capacitatea memoriei cache. úterse din cache-ul procesorului, datorate unui conflict sau unei ratări. Cache-ul
victimă se află între cache-ul principal úi zona de reumplere, deĠinând numai
Graficul din figura 3.48 ilustrează performanĠele memoriei cache, obĠinute blocuri care au fost eliminate din cauza unui cache miss. Această tehnică este
pe un benchmark pentru întregi din SPEC2000. Aceste benchmark-uri reprezintă utilizată pentru a reduce penalizările suportate de memoria cache la o ratare.
gradul de încărcare al unei staĠii de lucru. Rata de pierderi în cazul asociativităĠii Exemple. Cache-ul victimă original de pe HP PA 7200 a fost mic úi complet
este sensibil superioară celei pentru mapare directă. DiferenĠele obĠinute se explică asociativ. Mai târziu, procesoare precum AMD K7 úi K8 au folosit multă memorie
prin utilizarea algoritmului de înlocuire LRU. Se observă, de asemenea, că pentru cache secundară pe post de cache victimă, pentru a evita duplicatele de stocare.
memorii cache de dimansiune foarte mare, decalajele devin nesemnificative.
Cache de urmărire (trace cache)
Unul dintre exemplele cele mai extreme de specializare a memoriei cache
3.2.12.7. Tipuri de celule cache
este cache-ul de urmărire, găsit în microprocesoarele Intel Pentium 4. Trace cache
este un mecanism destinat creúterii gradului de aducere din memorie a
În funcĠie de modul de citire a cuvintelor, celulele memoriei cache pot fi:
instrucĠiunilor (instruction fetch) úi lărgimii de bandă, precum úi reducerii
 asincrone, la care operaĠia de citire a unui cuvânt se face în două etape: consumului de putere (în cazul lui P4), prin stocarea urmelor (traces)
se depune adresa, apoi se transferă datele, pentru fiecare cuvânt fiind instrucĠiunilor care au fost aduse din memorie úi decodate.
necesar acelaúi ritual. Aceste cipuri se livrează sub formă DIP.
Structura unui calculator 127 128 ARHITECTURA SISTEMELOR DE CALCUL

Un trace cache stochează instrucĠiuni chiar úi după ce acestea au fost Cache integrat úi cache divizat
depozitate sau retrase. În general, instrucĠiunile sunt adăugate în trace cache în Memoria cache multinivel introduce un nou design al deciziilor.
grupuri care reprezintă blocuri individuale de bază sau urme dinamice (dynamic Exemple. În unele procesoare, toate datele din cache-ul L1 trebuie să se
traces). Un bloc de bază constă dintr-un grup de instrucĠiuni neramificate, Jăsească undeva în cache-ul L2. Aceste memorii sunt numite cache strict inclusiv.
terminate cu ramificaĠii. O urmă dinamică include numai instrucĠiuni ale căror Alte procesoare (cum ar fi AMD Athlon) au un cache exclusiv: datele sunt
rezultate sunt utilizate efectiv úi elimină următoarele instrucĠiuni luate ca garantate a fi în cel mult unul dintre nivelele L1 sau L2, nu în amândouă. Totodată,
ramificaĠii (atât timp cât acestea nu sunt executate), o urmă dinamică putând fi o alte procesoare, precum Intel PII, PIII úi P4, nu solicită ca datele din cache-ul L1 să
concatenare de mai multe blocuri de bază. Acesta permite unităĠii de fetch a unui se găseascăúi în L2, deúi ar putea face acest lucru.
procesor să aducă din memorie câteva blocuri de bază făUă să se preocupe de Nu sunt acceptate nume universale pentru această politică intermediară, deúi
ramificaĠiile aflate în execuĠie. termenul inclusiv a fost deja folosit. Avantajul cache-ului exclusiv este acela că
Liniile de urmărire sunt stocate în cache pe baza unui număUător de program depozitează mai multe date. Acest avantaj este cu atât mai mare, cu cât cache-ul L1
aflat în prima instrucĠiune a urmei. Aceasta permite depozitarea pentru diferite căi a exclusiv este compatibil cu L2, caz în care se diminuează memoria L2, aceasta
urmelor care încep de la aceeaúi adresă, fiecare reprezentând rezultate diferite ale fiind mai mare decât L1. Când apare o situaĠie de cache miss în L1 úi cache hit în
ramificaĠiei. În etapa de aducere din memorie (fetch) a unui pipeline, număUătorul L2 la un acces, linia din cache-ul L2 pe care se află blocul cu hit este schimbată cu
de program curent, împreună cu un set de predicĠii ale instrucĠiunilor ramificate o linie din L1. Acest schimb implică ceva mai multă muncă decât copierea liniei
(branch prediction), este pus în memoria cache, mai exact, în trace cache, pentru o din L2 în L1, ceea ce o face doar cache-ul inclusiv.
situaĠie de cache hit. Dacă apare un cache miss, începe construcĠia unei noi urme. Un avantaj al cache-ului strict inclusiv este că atunci când dispozitivele
Cache-ul victimă este folosit în procesorul P4, pentru a stoca micro-operaĠii externe sau alte procesoare într-un sistem multiprocesor doresc să úteargă o linie
deja decodate sau translaĠii ale instrucĠiunilor de pe sisteme 86, astfel încât, atunci cache, nu au decât să caute în L2. În memoria cache, ierarhiile care nu au pus în
când va fi necesară o instrucĠiune, aceasta nu va mai trebui decodată din nou. aplicare mecanismele includerii trebuie să verifice úi cache-ul L1. În schimb, există
o corelaĠie între asociativitatea cache-ului L1 úi cea a cache-ului L2: dacă cache-ul
Cache multinivel (multilevel cache)
L2 nu are cel puĠin atâtea căi ca L1, asociativitatea cache-ului L1 este
O altă problemă este schimbul între latenĠa memoriei cache úi rata de succes
restricĠionată.
(cache hit). Memoriile cache mari au o rată de succes mai bună, dar latenĠe mari.
Cache-ul strict inclusiv foloseúte linii de dimensiuni mari în cache, ceea ce
Pentru a rezolva această problemă, în majoritatea calculatoarelor se folosesc mai
reduce mărimea etichetelor din cache-ul secundar (cache-ul exclusiv necesită ca
multe nivele de cache, cu blocuri de cache mai mici úi rapide, grupate într-unul mai
ambele cache-uri să aibă linii de aceeaúi dimensiune, pentru a le putea schimba
mare úi lent.
când în L1 apare cache missúi în L2, cache hit). Dacă cache-ul secundar este cu un
Un cache multinivel operează căutând prima dată în nivelul cel mai de jos
ordin de mărime mai mare úi datele sunt tot cu un ordin de mărime mai mari decât
(L1) úi, în cazul unui cache hit, viteza de procesare creúte. Dacă apare cache miss
etichetele, această zonă poate fi etichetată ca zonă de salvare úi poate fi
în module cache mici, atunci se caută în cache-ul cel mare (L2) úi, mai departe, în
incrementată comparabil până la dimensiunile zonei de care au nevoie L1 úi L2 să
memoria principală. DiferenĠa de latenĠă între memoria principală úi memoria
depoziteze date.
cache a devenit mai importantă. Unele memorii cache au început să utilizeze mai
După cum s-a mai spus, calculatoarele puternice au un alt cache între L2 úi
mult de 3 nivele pe un chip.
memoria principală, numit cache de nivel trei (L3). Acest cache poate fi
Exemplu. În 2003, procesorul Itanium 2 a început să fie livrat cu 6 MB de
implementat pe un chip separat de procesor úi, începând din 2004, poate varia ca
cache L3 pe cip. Sistemele IBM Power 4 aveau 256 MB de cache L3 pe cip,
Părime de la 2 la 250 MB. Beneficiile unui chip L3 depind de cererea de acces a
partajat între mai multe procesoare. Procesorul AMD Phenom foloseúte 2 MB de
aplicaĠiilor. StaĠiile de lucru high-end úi serverele au memoria de tip L3
cache L2 în schimbul celui L3.
implementată în procesor, ceea ce duce la mărirea vitezei úi reducerea costurilor.
Scratch Pad Exemplu. Intel Xeon MP, produs numit Tulsa, are un cache L3 încorporat
Folosirea eficientă a spaĠiului de memorie integrat în cipul procesorului (on- de 16 MB, partajat între cele două nuclee ale procesorului.
chip) este extrem de importantă în aplicaĠiile moderne ale sistemelor dedicate În cele din urmă, la celălalt capăt al ierarhiei (în cazul staĠiilor de lucru low-
(embedded systems), bazate pe nucleele procesoarelor. În completarea memoriei end), registrul de fiúiere al procesorului poate fi considerat drept cel mai mic úi cel
cache de date, care realizează interfaĠa cu memoria mai lentă din afara cipului mai rapid cache din sistem, cu caracteristica de a fi programat software de un
procesorului (off-chip), în diverse aplicaĠii se foloseúte adesea o memorie SRAM compilator, ca úi cum ar aloca registre pentru a păstra valori primite din memoria
rapidă, de tip on-chip, numită memorie scratch pad (vezi schema din figura 2.29) principală.
Structura unui calculator 129 130 ARHITECTURA SISTEMELOR DE CALCUL

Studiu de caz: memoria cache la procesorul AMD Athlon 64 (K8) Nucleul K8 are, de asemenea, un cache multinivel. Există instrucĠiuni de
Pentru a exemplifica specializările cache-ului multinivel, integrat úi divizat, se nivel 2 úi date ale TLB-ului care depozitează numai PTE-uri mapate pe 4 KB.
foloseúte ierarhia din nucleul K8 al procesorului AMD Athlon 64 (vezi figura 3.49). Ambele cache-uri, de instrucĠiuni úi de date, pot fi umplute din cache-ul L2. Acest
cache 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Ġiune
dată cache-ului L1 sau în cache-ul L2. Cu toate acestea, este posibil ca o linie de
date în cache să aibă un PTE care este într-unul din TLB-uri – sistemul de operare
este responsabil cu păstrarea TLB-ului coerent.

3.2.12.9. Concluzii
Se poate spune că introducerea în practică a conceptului de memorie cache
ca memorie tampon a adus o serie de îmbunăWăĠiri sistemelor de calcul, mărind
foarte mult viteza de procesare, desigur în funcĠie úi de dimensiunea memoriei
cache instalate în sistem. Totuúi, se poate pune úi aici o întrebare: până unde poate
merge 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ă la
câĠiva megaocteĠi de cache extern. Dar o supradimensionare a memoriei cache
externe făUă a se Ġine seama de scopul în care va fi folosit calculatorul nu va duce
decât la încărcarea notei de plată (memoria cache, fiind o memorie statică, este cu
mult mai scumpă decât RAM-ul), deoarece avantajele obĠinute vor fi insesizabile.
Fig. 3.49. Structura nucleului K8 al procesorului AMD Athlon 64. Datorită faptului că procesorul execută programele pe segmente, bucle de
program de maximum 64 KB, un astfel de segment poate fi cuprins în primii 64 KB
Nucleul K8 are patru memorii cache: una pentru instrucĠiuni, una pentru
ai memoriei cache. Deci, un spor de viteză de circa 90–95% (din totalul sporului adus
blocul TLB, una pentru datele TLB-ului úi una pentru date. Fiecare dintre aceste
de o memorie cache montată) se va obĠine folosind doar 64 KB de memorie cache.
cache-uri este specializat:
Ridicând dimensiunea cache-ului la 256 KB se va obĠine o creútere doar de 2–3 %.
1. Cache-ul pentru instrucĠiuni păstrează cópii ale celor 64 de linii ale
Se consideră că o memorie cache de 256 KB este suficientă pentru un procesor
memoriei úi aduce din memorie 16 B la fiecare ciclu. Fiecare octet din acest cache
este depozitat în 10 biĠi în loc de 8, cu un marcaj suplimentar de bit al limitelor Pentium, în timp ce pentru Pentium Pro este nevoie de 512 KB cache în condiĠii de
lucru deosebite, iar pentru procesoarele actuale valorile de ordinul MB au devenit deja
instrucĠiunilor (acesta este un exemplu de precodare). Cache-ul are doar protecĠie
comune. Problema care se pune este atunci când se lucrează în mod multitasking
de paritate, mai degrabă decât ECC, deoarece informaĠia de paritate ocupă spaĠiu
mai puĠin, iar datele avariate pot fi înlocuite de date proaspete aduse din memorie. sau în reĠea, úi unde cei 64 KB cache de date ai unei sarcini sunt înlocuiĠi de cei 64
KB ai altei sarcini, la viteze foarte mari. În acest caz, este evident că procesorul va
2. InstrucĠiunile blocului TLB păstrează cópii ale intrărilor din tabelul
avea nevoie de mai multe „depozite“ de 64 KB, pentru fiecare sarcină cel puĠin
paginilor (PTE). Fiecare ciclu de instrucĠiuni adus din memorie are propria sa
două, astfel încât să crească probabilitatea ca procesorul săúi găsească datele
adresă virtuală, translatată cu ajutorul TLB-ului într-o adresă fizică. Fiecare intrare
are 4 sau 8 octeĠi în memorie, iar fiecare TLB este împăUĠit în două secĠiuni: una necesare într-unul din aceste „depozite“ cache, făUă să fie nevoit să mai acceseze
RAM-ul. De aceea, în cazul în care calculatorul va juca rol de file server sau va fi
pentru a păstra PTE-urile care ocupă 4 KB din hartă úi alta pentru a păstra PTE-
folosit în activităĠi multitasking, este necesară mult mai multă memorie cache.
urile care ocupă 2 sau 4 MB din hartă. ÎmpăUĠirea permite o potrivire a circuitului
în fiecare secĠiune în mod complet asociativ. Sistemul de operare mapează secĠiuni
diferite 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ópii
3.2.4. Memoria ROM
permit accesul la două date per ciclu, pentru a translata adresele virtuale în adrese
Un alt tip de memorie folosit în construcĠia calculatoarelor úi a unor
fizice. Ca úi instrucĠiunile TLB-ului, úi aceasta este împăUĠită în două tipuri de intrări.
echipamente periferice este memoria ROM (Read Only Memory). Spre deosebire
4. Datele cache-ului păstrează cópii ale celor 64 de linii ale memoriei. Este
de memoria RAM, această memorie, odată scrisă prin procedee industriale, nu mai
împăUĠită în 8 bancuri (fiecare depozitând câte 8 KB de date) úi poate aduce din
poate fi útearsă prin metode aflate la îndemâna utilizatorului; în plus, la decuplarea
memorie doi octeĠi de date pe ciclu.
de sub tensiune a calculatorului, informaĠiile din ROM rămân intacte.
Structura unui calculator 131 132 ARHITECTURA SISTEMELOR DE CALCUL

ùtergerea anumitor memorii ROM, de construcĠie specială (PROM, Dacă OE = 1, ieúirile memoriei sunt în starea de impedanĠă înaltă (high Z). Tabelul
EPROM, EEPROM) se poate face prin lansarea unui spot de radiaĠii ultraviolete de adevăr din figura 3.51.b este un exemplu care arată o posibilitate de implementare
asupra ferestrei de cuarĠ cu care este prevăzut cipul de memorie. Scrierea a 4 funcĠii binare de câte 3 variabile.
memoriilor ROM presupune un atac distructiv úi ireversibil asupra diodelor úi
tranzistoarelor, prin „arderea” joncĠiunilor interne. Rezultatul acestei acĠiuni de
ardere se observă prin modificarea conĠinutului informaĠiei binare.
În prezent, există plăci de bază dotate cu astfel de circuite care permit
revitalizarea rutinelor BIOS prin copierea în ROM, cu ajutorul unui soft
specializat, a unor versiuni mai noi úi mai performante. Deci, ca o concluzie de
bază, datele scrise în memoria ROM au un caracter permanent úi au o importanĠă
vitală î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 microtranzistoare Fig. 3.51.a. Memorie ROM cu 8 cuvinte de 4 biĠi; b. Tabelul de adevăr asociat.
sau microdiode. Accesarea memoriei ROM se face la fel ca la RAM.
O celulă de memorie este alcătuită dintr-un circuit basculant bistabil (CBB). Structura internă a unui cip de memorie ROM organizat pe 1024 cuvinte a
Pentru a realiza mai multe celule, se aranjează CBB-urile sub forma unui tablou cu câte 8 biĠi, adică 1 K  8, este prezentat în figura 3.52. Matricea de memorie se
un număr de coloane úi rânduri. În general numărul rândurilor este egal cu cel al construieúte sub o formă cât mai apropiată de cea a unui pătrat. Liniile matricei
coloanelor. Fiecare celulă se află la intersecĠia unei anumite linii X úi a unei sunt selectate cu ajutorul decodificatorului cu 7 intrări de selecĠie, iar coloanele, cu
anumite coloane Y (vezi figura 3.50). ajutorul 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 unei
operaĠii de citire a datelor. Prin dezactivare, acĠionează asupra circuitelor din
structură în scopul reducerii consumului. Schema conĠine úi aspectul unui element
din matricea de memorie, dacă aceasta este realizată în tehnologia MOS.

Fig. 3.50. Organizarea memoriei RAM.

Organizarea memoriei sub formă de matrice permite reducerea numărului


intrărilor de adrese la un număr mai mic decât numărul liniilor úi al coloanelor
aferente informaĠiei stocate. Numărul terminalelor de adresare poate fi micúorat
prin adresarea în cod binar úi utilizarea decodificatoarele binar-zecimale. Acest
mod de adresare în cod binar este utilizat úi în cazul memoriei RAM. Fig. 3.52. Structura internă a unui cip de memorie ROM cu 1024 cuvinte de 8 biĠi.
Exemplu. Fie o memorie ROM care conĠine 8 cuvinte de câte 4 biĠi (vezi
figura 3.51.a). O combinaĠie binară care se aplică pe cele 3 intrări de adresă (A2, Pentru realizarea memoriei ROM, sunt utilizate tehnologii bipolare (TTL,
A1, A0) selectează unul din cele 8 cuvinte, iar cei 4 biĠi de date ai cuvântului TTL-Schottky, ECL), tehnologii metal-oxid-semiconductor (MOS) cu canal N (N-
selectat sunt disponibili la ieúiri (O0, O1, O2, O3), cu condiĠia ca semnalul de MOS), cu canal P (P-MOS), cu simetrie complementară (CMOS), cu canal negativ
validare a ieúirii, OE (Output Enable) să fie activ (activarea se face pe 0 logic). (NMOS) sau tehnologii cu logică integrată de injecĠie (I2L).
Structura unui calculator 133 134 ARHITECTURA SISTEMELOR DE CALCUL

Ca urmare, performanĠele poartă amprenta caracteristicilor tehnologice: Întreaga memorie ROM este activă pe tot parcursul lucrului cu calculatorul.
 bipolară – viteză de procesare mare, putere disipată ridicată, densitate de Încă de la pornirea úi iniĠializarea calculatorului (la încărcarea sistemului de
integrare scăzută; operare), în situaĠiile apăVării tastei Delete, BIOS-ul va furniza o interfaĠă de dialog
 MOS – densitate de integrare ridicată, viteză de procesare mai scăzută cu utilizatorul, prin care va oferi o serie de informaĠii privind starea funcĠionalăúi
decât la bipolară, putere disipată relativ scăzută; structura sistemului de calcul. Prin intermediul unor meniuri, se poate modifica o
 CMOS – putere disipată foarte scăzutăúi viteză de procesare mare. serie de parametri pentru a se obĠine un mod de lucru optim úi rapid.
Î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 care
realizează 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 este
verificată kilooctet cu kilooctet. Automat, în cazul în care se detectează anumite
erori úi disfuncĠii pentru oricare din componentele hardware, se va lansa un mesaj
de avertizare. Sistemul de operare, odată încărcat în RAM, va prelua conducerea úi
gestiunea sistemului de calcul.
2. ROM-BIOS (Basic Input Output System) este o parte a memoriei ROM
care va asigura toate procesele úi serviciile necesare activităĠii calculatorului, precum
úi 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 cea
software, prin care se realizează hard cererile soft ale programelor, folosind
întreruperile cu serviciile aferente. Practic, orice program accesează partea hardware
prin intermediul BIOS. Rutinele conĠinute vor activa canalele de comunicaĠie dintre
componentele 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. Fig. 3.53. Modul de organizare al memoriei.
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, de
obicei, memorată în cipuri de memorie ROM. Programele din componenta ROM
BIOS controlează sistemul pe durata pornirii (până la preluarea controlului de către 3.3. Organizarea dispozitivelor de intrare-ieúire (I/O)
sistemul de operare) úi rămân ca driver-e pentru subsistemele hard pe durata
funcĠionării normale a sistemului. Deoarece aceste programe trebuie să fie Arhitectura calculatoarelor moderne presupune două moduri de organizare a
disponibile imediat, la pornirea sistemului ele nu pot fi încărcate de pe discuri (sau dispozitivelor I/O:
alte dispozitive de memorare).  pentru arhitectura calculatoarelor mari;
Principalele funcĠii ale programelor de pe placa de bază sunt:  pentru arhitectura microcalculatoarelor.
 autotestarea la punerea sub tensiune (POST);
 rutina de încărcare a sistemului de operare (bootstrap loader) – iniĠiază
Făutarea sistemului de operare pe discurile disponibile; 3.3.1. Organizarea dispozitivelor I/O la calculatoare mari
 sistemul de bază pentru operaĠii de intrare-ieúire (BIOS) – este interfaĠa
soft sau programul principal de control pentru toate componentele hard În figura 2.31 se prezintă organizarea dispozitivelor I/O la calculatoarele mari.
ale sistemului.
Acest sistem conĠine un prim meniu – Standard CMOS Setup –, unde se
stabilesc tipul úi parametrii unităĠilor de disc, tastaturii sau plăcii video, ora úi data
curentă a sistemului.
Un al doilea meniu – Advanced CMOS Setup – cuprinde o serie de parametri
reglabili pentru a obĠine maximul de performanĠă. În acest meniu, se pot activa sau
dezactiva memoria cache internăúi externă, se poate stabili o parolă de intrare în
sistem, ordinea de căutare a sistemului de operare pe disc etc.
Al treilea meniu – Advanced Chip-set Setup – conĠine reglaje foarte fine de
optimizare, cum ar fi configurarea magistralelor sau a stărilor de aúteptare ale
microprocesorului.
Datorită uúurinĠei cu care se poate accesa BIOS-ul, parametrii care definesc
funcĠionarea generală a calculatorului pot fi modificaĠi foarte simplu, dar
configurarea arbitrară a parametrilor BIOS poate produce dereglări ale sistemului.
Tot aici se poate menĠiona unitatea specială MMU (Memory Management
Unit), care se ocupă cu transferul conĠinutului memoriei ROM (cel de pe placa de
bază: ROM-ul de sistem, ROM-ul video, segmentele ROM ale unor adaptoare sau
extensii) în memoria de lucru RAM. Este un dispozitiv integrat în microprocesor.
Această posibilitate de transfer a rutinelor úi datelor ROM în RAM ridică
foarte mult performanĠele sistemului, deoarece timpul de acces al memoriei ROM Fig. 3.54. Organizarea dispozitivelor I/O la calculatoarele mari.
este foarte mare (150–200 ns) úi operaĠiile care implică folosirea conĠinutului ROM
se desfăúoară lent. Activarea opĠiunilor de transfer (shadowing) se face din meniul SemnificaĠia notaĠiilor din figură este următoarea:
BIOS Features Setup din CMOS, prin activarea punctelor de Shadow definite de  MP – memoria principală;
adrese specificate (System Shadow, Video Shadow etc.). MMU va dezactiva  UC – unitatea centrală;
automat toate cartuúele ROM al căror conĠinut a fost citit úi scris apoi în RAM, iar  Proc. I/O – procesoare I/O sau de canal;
în continuare va marca aceste zone de memorie RAM în care s-a transferat  CT – controler terminale;
conĠinutul ROM, protejându-le.  T – terminale;
Legătura memoriei ROM cu exteriorul se face prin magistrala de adrese,
 Impr. – imprimantă;
corespunzătoare pinilor notaĠi cu A0÷Am (pentru detectarea locaĠiei care conĠine
 UD – unităĠi de disc (D).
informaĠia cerută) úi magistrala de date, pentru transferul datelor, prin pinii notaĠi
cu D0÷An, în funcĠie de numărul de pini al cipului respectiv. Magistrale:
Structura unui calculator 137 138 ARHITECTURA SISTEMELOR DE CALCUL

 MM – magistrala memoriei; Cu ajutorul conectorilor, la această placă de bază se pot lega circuite
 MD – magistrala de date; suplimentare (plăci adiĠionale), de exemplu plăci de comunicaĠie. Conectorii
 MI/O – magistrala de I/O. reprezintă ieúiri ale magistralei unice a sistemului.
Când microprocesorul central trebuie să efectueze o operaĠie I/O cu un Fiecare unitate periferică are următoarele păUĠi:
anumit periferic, el cedează această operaĠie procesorului asociat perifericului;  circuite electronice de control a unităĠii (controler – dispozitiv hard care
microprocesorul central transmite canalului informaĠia necesară pentru realizarea realizează interfaĠa calculator-periferic, guvernat de un program special,
operaĠiei de I/O úi îi cere acestuia să o execute. numit driver);
Canalul realizează operaĠia I/O în mod complet úi autonom: procesorul I/O  unitate periferică propriu-zisă (unităĠi de disc, tastatură, mouse, joystick,
execută un program de transfer al datelor cu parametrii primiĠi de la tabletă digitizoare, imprimantă, cameră digitală, scanner, modem etc.).
microprocesorul central; când transferul între periferic úi memorie a fost încheiat, Controlerul de periferic se prezintă sub forma unei plăci adiĠionale conectate
procesorul I/O anunĠă microprocesorul central despre efectuarea transferului. Acest la magistrala sistemului prin conectorii de magistrală. Există însăúi unele excepĠii,
mod de lucru degrevează microprocesorul central de operaĠiile I/O, care, de regulă, aceasta nefiind o regulă generală.
sunt mult mai lente decât viteza de lucru a microprocesorului central. În timpul Exemplu. Controlerul de tastatură se află pe placa de bază.
acestui transfer, microprocesorul central execută alte instrucĠiuni. Există Rolul controlerului de periferic este de a transmite perifericului instrucĠiunea úi
posibilitatea executării mai multor transferuri I/O în acelaúi timp, astfel rezultând informaĠia necesarăúi de a superviza accesul perifericului la magistrala sistemului.
creúterea performanĠelor sistemului. Exemplu. Dacă un program necesită informaĠie de pe disc, microprocesorul
ObservaĠie. PrezenĠa celor trei magistrale este specifică calculatoarelor transmite o comandă controlerului de disc; controlerul va trimite unităĠii de disc un
mari. MM permite canalelor I/O să citească sau să scrie date direct din sau în ansamblu de comenzi necesare găsirii úi transferului informaĠiei respective. După
memorie, MI/O asigură comunicaĠia între microprocesorul central úi canalele I/O, Jăsirea informaĠiei, aceasta ajunge la controler sub formă binară (biĠi). Controlerul
iar MD permite microprocesorului central să schimbe informaĠii cu memoria de disc formează din acest úir de biĠi cuvinte, pe care le scrie succesiv în memorie.
(citirea/scrierea datelor, execuĠia programelor etc.). Un controler poate scrie sau citi în/din memorie făUă intervenĠia
microprocesorului (acesta realizează o operaĠie DMA – Direct Memory Access).
Mai există arbitrul de magistrală (bus arbitrer), necesar în situaĠia în care
apar procese concurente. Astfel, când microprocesorul cere acces la magistrală
3.3.2. Organizarea dispozitivelor I/O la microcalculatoare
simultan cu alte cereri de magistrală, apare o problemă: pe magistrală se poate
transmite un singur cuvânt la un moment dat. Arbitrul de magistrală analizează
Microcalculatoarele sunt construite dintr-o placă de bază pe care se află
cererile úi acordă accesul doar unui singur dispozitiv (stabileúte priorităĠile). În
microprocesorul, circuitele de memorie úi circuitele de I/O (vezi figura 3.55).
general, accesul la magistrală se acordă mai întâi perifericelor, úi nu
microprocesorului (microprocesorul are o flexibilitate mai mare decât perifericele).
Exemplu. Nu se opreúte hard disk-ul în timpul rotaĠiei pentru a servi
microprocesorul; 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 IBM


Fig. 3.55. Organizarea dispozitivelor I/O la microcalculatoare. conĠin o placă de bază dotată cu sloturi (puncte de conectare la magistralele
sistemului) prin care se cuplează plăcile de extensie, respectiv, porturile seriale sau
SemnificaĠia notaĠiilor din figură este următoarea: paralele, pentru conectarea altor dispozitive (memorii secundare sau terĠiare,
UC – unitate centrală; echipamente de intrare-ieúire, de achiziĠie, de afiúare, de comunicaĠie etc.). În
M – memorie; general, în categoria perifericelor cu cuplare internă în sloturi intră placa video sau
MON. – monitor; acceleratorul grafic, controlerul de disc, placa de sunet, placa de reĠea, plachetele de
KBD – tastatură; memorie RAM, plăcile pentru digitizarea imaginilor úi afiúarea acestora pe ecran etc.
UDM/O – unitate disc magnetic / optic.
Structura unui calculator 139 140 ARHITECTURA SISTEMELOR DE CALCUL

Legătura dintre toate aceste componente se asigură prin intermediul Registrele de date
transmisiunilor de semnale (instrucĠiuni, comenzi, date), pe baza unor protocoale úi O interfaĠă poate asigura transferul de date într-un singur sens sau în ambele.
seturi de reguli standardizate. Pot exista mai multe canale de intrare, de ieúire sau bidirecĠionale. Pentru fiecare
Sistemele de calcul sunt maúini care lucrează numai în sistem de numeraĠie canal úi pentru fiecare sens, se alocă un port (registru) de date, care ocupă o
binar, acesta fiind sistemul de numeraĠie optim folosit la o maúină de calcul ideală, anumită adresă în spaĠiul de adrese I/O al CPU.
deoarece se folosesc numai două cifre (0 úi 1) pentru reprezentarea oricărei Registrele de comenzi
informaĠii, de orice natură úi formă. Aceste numere au corespondenĠă în două Au rolul de a genera semnalele specifice unui anumit echipament (de
niveluri de tensiune, în general, de valori 0 Vcc (low level) úi 5 Vcc (high level) în exemplu, pentru hard disk se face selecĠia capului de citire, selecĠia unităĠii de
logica pozitivă sau niveluri inverse pentru logica negativă. activare a scrierii etc.). Prin registrele de comandă pot fi selectate modurile de lucru
După cum se útie, entitatea elementară purtătoare de informaĠie este digitul ale interfeĠei sau se pot fixa parametrii de transfer (transfer pe octet sau pe bloc,
binar, care poate lua două valori logice: 0L sau 1L. Dacă aceste valori sunt frecvenĠa de transmisie, formatul datelor transmise etc.).
echiprobabile, cantitatea de informaĠie purtată de un digit binar este de 1 bit. De
aceea, printr-un abuz de limbaj, se confundă uneori noĠiunile de bit (ca măsură a Registrele de stare
informaĠiei) úi digit binar (ca semnal purtător de informaĠie). Oferă informaĠii despre starea echipamentului úi a interfeĠei (de exemplu,
Un grup de 8 biĠi succesivi formează o structură numită octet sau byte. Sunt dispozitiv ocupat/defect, dată recepĠionată, registru de ieúire gol etc.). Aceste
folosiĠi, de asemenea, multiplii acestuia: kiloocteĠii, megaocteĠii, gigaocteĠii úi informaĠii sunt testate în timpul programului, pentru detectarea eventualelor erori
teraocteĠii (KB, MB, GB, TB). de transfer sau a defectelor úi pentru reglarea vitezei de transfer.
Din punct de vedere fizic, legătura între sistemul de calcul úi periferice este
realizată prin interfaĠa de intrare-ieúire (I/O).
Dispozitivele de intrare-ieúire sau echipamentele periferice (EP) au, în
general, o structură proprie, independentă de structura calculatorului la care se
conectează (de exemplu: disc magnetic sau optic, imprimantă, plotter etc.)
Cuplarea acestor echipamente la un sistem de calcul presupune adaptarea
semnalelor specifice fiecărui echipament la semnalele de pe magistralăúi reglarea
fluxului de date între calculator úi periferic.
Rolul interfeĠelor I/O este de adapta particularităĠile unui dispozitiv I/O la
cerinĠele unui anumit sistem de calcul. Sub acest aspect, o interfaĠă I/O este
structurată 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 tipul
perifericului.
O interfaĠă I/O conĠine următoarele blocuri componente:
 registre de date (de intrare úi/sau de ieúire);
Fig. 3.56. Schema de principiu a unei interfeĠe I/O.
 registre de comenzi;
 registre de stare; Blocul de selecĠie
 bloc de selecĠie a registrelor (decodificator); Generează semnalele de validare a porturilor pentru operaĠiile de scriere úi
 dispozitiv de comandă. citire. La selecĠie, se utilizează semnalele de comandă pentru citire/scriere de la/la
InterfaĠa I/O este prezentată în figura 3.56. periferic (de exemplu, semnalele IOR/ IOW/ în sistemele Intel).
Structura unui calculator 141 142 ARHITECTURA SISTEMELOR DE CALCUL

Dispozitivul de comandă Transferul unui grup de octeĠi are loc cu o viteză considerabilă, dar are
Este un circuit secvenĠial sau combinaĠional, utilizat în cazul unor interfeĠe mai dezavantajul costului ridicat al instalaĠiei fizice, care presupune existenĠa a 8 fire úi
complexe, care controlează funcĠionarea celorlalte componente ale interfeĠei. Pentru a unei interfeĠe paralele aparte. De aceea, această transmisie se foloseúte la
anumite tipuri de interfeĠe există circuite specializate de control, numite controlere. echipamentele care vehiculează volume mari de date într-un interval de timp foarte scurt.
Exemple: Porturile paralele sunt folosite, în general, la comunicaĠia unidirecĠională
 controler de disc flexibil i8272; (dar nu în sens strict) úi dispun de 25 de pini (vezi figura 3.58).
 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. Fig. 3.58. Dispunerea pinilor pentru transmisia paralelă.
Necesitatea acesteia apare în cazul fluxurilor mari de date, situaĠie în care
sincronizarea perifericului cu frecvenĠa de transfer de pe magistrală devine dificilă 3.4.1.1. ConfiguraĠia porturilor paralele
(de exemplu, interfaĠa de disc sau interfaĠa video). ConfiguraĠia porturilor paralele nu este tot atât de complicată ca aceea a
Toate transferurile de informaĠii úi date, între diverse componente ale porturilor seriale. Chiar úi calculatorul original IBM PC are suport BIOS pentru trei
sistemului de calcul sau între două sau mai multe sisteme legate într-o reĠea, porturi LPT, iar sistemul DOS l-a avut, de asemenea, întotdeauna. Deoarece BIOS
transferuri care se realizează de-a lungul úi cu ajutorul magistralelor, se desfăúoară úi DOS au definit de la început trei porturi paralele, problemele cu sistemele mai
la nivel de bit, octet, cuvânt sau bloc de octeĠi. Aceste transferuri de biĠi se pot vechi sunt puĠin frecvente. Acestea pot totuúi să apară din lipsa disponibilităĠii unor
efectua în două moduri: porturi comandate prin întreruperi la sistemele cu magistrală ISA.
 prin transmisie paralelă;
Tabelul 3.5
 prin transmisie serială. SemnificaĠia pinilor portului paralel

Nr. pin SemnificaĠie


3.4.1. Transmisia paralelă
1 strobe
Transmisia paralelă este mai eficientă, prin faptul că se desfăúoară simultan 2...9 bit0...bit7
pentru 8 biĠi, pe 8 căi diferite (vezi figura 3.57). 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 necesar


pentru operaĠiile de imprimare; de fapt, multe programe nu folosesc posibilitatea de
comandă prin întreruperi. Întreruperea este totuúi folosită de multe aplicaĠii, cum
Fig. 3.57. Realizarea unei transmisii paralele. sunt programele de tipărire din reĠea úi alte tipuri de tipărire în paralel sau de tip
Structura unui calculator 143 144 ARHITECTURA SISTEMELOR DE CALCUL

spooler (din fiúiere de tipărire). De asemenea, orice program utilitar pentru o Dezavantajul rezidă în viteza de transmisie, practic de zece ori mai mică faĠă
imprimantă laser rapidă ar folosi des posibilitatea de întrerupere pentru a permite de cea paralelă. Este totuúi transmisia folosită cel mai des, fiind fiabilă, ieftină úi
imprimarea. Dacă se foloseúte acest tip de aplicaĠii în cazul unui port care nu este simplu de întreĠinut.
comandat prin întreruperi, imprimarea se va face foarte lent sau se va opri. Porturile seriale sunt folosite la transmisia bidirecĠionalăúi dispun de 9 pini.
Singura soluĠie este să se folosească un port comandat prin întreruperi. Dispunerea pinilor este prezentată în figura 3.60, iar semnificaĠia lor, în tabelul 3.6.
Datorită faptului că sistemele PS/2 cu magistrală MCA pot folosi în comun Pentru ambele tipuri de transmisiuni, aceeaúi mărime fizică caracterizează
întreruperile, ele nu au aceste probleme úi toate porturile paralele din aceste sisteme numărul de unităĠi binare transmise în unitatea de timp, úi anume, viteza de
sunt comandate prin întreruperi pe IRQ7. transmisie sau debitul de informaĠie.
Pentru a configura porturile paralele în sistemele cu magistrală ISA, trebuie
Vă 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 trebuie
configurată. IBM include aceste informaĠii în documentaĠia fiecărei plăci úi oferă
manuale tehnice pentru opĠiuni úi adaptoare, ca úi manuale de service úi întreĠinere
hard, care descriu în detaliu poziĠiile jumper-elor úi comutatoarelor plăcilor Fig. 3.60. Dispunerea pinilor pentru transmisia serială.
adaptoare IBM. AlĠi producători oferă pur úi simplu pe lângă placă un manual care
descrie placa úi include informaĠiile de configurare. Sistemele cu magistrală MCA UnităĠile de măsură folosite sunt:
sau PCI úi toate sistemele actuale au configurarea automată (plug¶Q¶play) sau  la transmisiunea paralelă: B/s (octeĠi pe secundă);
comandată soft.  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 unor
3.4.2. Transmisia serială trenuri de semnale electrice cu două niveluri extreme, corespunzătoare
celor două simboluri binare).
Transmisia serială este mult mai simplă (vezi figura 3.59), deoarece nu
necesită decât o cale de transmisie, un octet transmiĠându-se bit cu bit (de aceea Tabelul 3.6
este folosită la comunicaĠiile între diverse sisteme de calcul obiúnuite). În plus, SemnificaĠia pinilor la portul serial
costurile echipamentelor sunt foarte mici.
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 seriale


De 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 cu
Fig. 3.59. Realizarea unei transmisii seriale. magistrală ISA pe 8 biĠi au 8 asemenea linii, iar cele cu magistrală ISA pe 16 biĠi
Structura unui calculator 145 146 ARHITECTURA SISTEMELOR DE CALCUL

au 16 linii. Controlerul i8259A manipulează de regulă aceste cereri de atenĠionare.  modulaĠia în fază (MP) – Phase Shift Keying (PSK);
Într-o configuraĠie standard, COM1 foloseúte IRQ4, iar COM2 utilizează IRQ3.  modulaĠia binară – Binary Phase/BiPhase Shift Keying (BPSK);
Atunci când elementul ROMBIOS conectează aceste porturi, este posibil să  modulaĠia în cuadratură (MQ) – Quadrature Phase Shift Keying (QPSK);
apară o problemă. Dacă autotestul POST nu găseúte portul serial 3F8, dar  MA în cuadratură – Quadrature Amplitude Modulation (QAM);
detectează în schimb 2F8, el este atribuit eronat portului serial COM1. Linia IRQ  modulaĠia impusurilor în cod (MIC) – Pulse Code Modulation (PCM).
rezervată pentru COM1 este IRQ4, dar acest port serial foloseúte adresa portului
COM2, adică foloseúte linia IRQ3 în locul liniei IRQ4.
O altă problemă este aceea că IBM nu a introdus suportul BIOS pentru
COM3 în sistemele sale originale cu magistrală ISA. Prin urmare, comanda DOS
MODE nu poate lucra cu porturile seriale aflate dincolo de COM2, deoarece DOS
primeúte datele de intrare-ieúire de la BIOS, care, în timpul rulării autotestului
POST, detectează ce este instalat în sistem úi unde.
Pentru a evita această problemă, cele mai multe programe de comunicaĠii úi
unele periferice seriale (ca mouse-ul) acceptă porturile COM cu număr de ordine
mai mare, adresându-le direct úi nu apelând funcĠii DOS. Porturile suplimentare
trebuie să utilizeze întreruperi separate. Dacă se folosesc simultan două porturi Fig. 3.61. Tipuri comune de modulaĠie digitală (de impulsuri): ASK, FSK, PSK, BPSK.
COM, acestea trebuie să aibă întreruperi opuse. Iată care sunt posibilităĠile de
operare 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 seriale


Pentru 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ă se
folosească un cablu de reĠea, deoarece ar rezulta un preĠ destul de mare úi ar apărea
probleme de transmisie a semnalelor. Conectarea se poate realiza totuúi cu ajutorul
liniilor telefonice sau a cablului optic. În cazul primei soluĠii, este nevoie de un
Fig. 3.62. ModulaĠia QPSK făUă zgomot (stânga) úi cu zgomot (dreapta).
dispozitiv care să realizeze adaptarea la linia de telefon, úi anume, de un modem.
Laboratoarele Bell úi CCITT au stabilit standardele pentru protocoalele
modemurilor. Un protocol este o metodă prin care două entităĠi diferite se înĠeleg
Vă comunice. Standardele modemurilor se pot împăUĠ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Ġie
ModulaĠia este metoda electronică de semnalare folosită de modemuri.
Acestea trebuie să utilizeze aceeaúi metodă de modulaĠie pentru a se înĠelege între
ele. Cele mai răspândite metode de modulaĠie digitală sunt (vezi figura 3.61):
 modulaĠia în amplitudine (MA) – Amplitude Shift Keying (ASK);
Fig. 3.63. ConstelaĠiile pentru modulaĠiile QAM-16 (stânga) úi QAM-128 (dreapta).
 modulaĠia în frecvenĠă (MF) – Frequency Shift Keying (FSK);
Structura unui calculator 147 148 ARHITECTURA SISTEMELOR DE CALCUL

La QPSK, zgomotul prezent pe canal poate fi mare, făUă să influenĠeze prea


mult prin apariĠia erorilor (vezi figura 3.62). Nu se poate spune acelaúi lucru úi despre
QAM-16 sau QAM-128, care sunt mult mai susceptibile la zgomot pe canal, unde
chiar ú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 prin
adăugarea de biĠi suplimentari fiecărui eúantion. Astfel de modulări sunt cunoscute
sub numele de TCM (Trellis Coding Modulation – modulaĠie prin codificare
matriceală), iar reprezentările lor se numesc constelaĠii. Fig. 3.64. Realizarea unei transmisii sincrone.
Standarde de corecĠie a erorilor  transmisia asincronă (vezi figura 3.65), un mod mai simplu, deoarece
CorecĠia erorilor se referă la posibilitatea pe care o au unele modemuri între octeĠii transmiúi sunt intercalate pauze sau se folosesc biĠi fanion
evoluate de a identifica erori în timpul transmisiei (EDC – Error Detection Codes) (unul sau doi), care indică începutul unui octet (biĠi de start) úi sfârúitul
úi de a retransmite automat datele care par a se fi deteriorat în tranzit (tehnici ARQ acestuia (biĠi de stop). La recepĠie, semnalul este curăĠat de aceúti biĠi
– Automatic Repetition reQuest). Ca operaĠia de corecĠie să funcĠioneze, ambele fanion, rămânând doar biĠii care semnifică informaĠia propriu-zisă.
modemuri trebuie să adere la acelaúi protocol de corecĠie a erorilor (ECC – Error ComunicaĠia asincronă nu este gestionată printr-o secvenĠă de tact sau un
Correction Codes). semnal adiacent de sincronizare a transmisiei.
Standardele de compresie a datelor
Compresia 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ăUă 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 (de
exemplu: transmisia prin walkie-talkie); Fig. 3.65. Realizarea unei transmisii asincrone.
 transmisie duplex, la care partenerii de pe aceeaúi linie de transmisie pot
folosi simultan linia la propriile transmisii, în ambele direcĠii, soluĠie La fel ca la memorii, úi aici se foloseúte noĠiunea de paritate pentru
mult mai eficientă decât cea anterioară (de exemplu: linia telefonică). determinarea corectitudinii transmisiei de date (paritate pară – numărul total de biĠi
DiferenĠele între modurile semiduplex úi duplex sunt vizibile: transmisia 1 transmiúi este par úi paritate impară – numărul total de biĠi 1 transmiúi este
duplex este mai rapidă, deoarece două mesaje pot folosi linia simultan, nefiind impar). ImportanĠa úi eficienĠa folosirii acestei tehnici de securizare a transmisiilor
nevoie de stări de aúteptare pentru eliberarea liniei. este deosebită, prin faptul că în orice moment poate fi semnalată o eventuală eroare
Având în vedere că pe o linie este necesară transmisia unor grupuri de biĠi de transmisie, recurgându-se la corecĠii hard úi soft. Toate modemurile moderne
(evident, octeĠi) úi nu a unor trenuri de biĠi succesivi, trebuie introdus un mecanism dispun de astfel de metode de corecĠie. După ce microprocesorul procesează datele,
de separare logică a octeĠilor transportaĠi. De aceea, în construcĠia interfeĠelor se acestea pot fi transmise către un dispozitiv periferic, într-un anumit format digital,
foloseúte o altă clasificare a transmisiilor úi anume: fiind necesară o interfaĠă care să convertească semnalul transmis de sursă în semnal
 transmisia sincronă (vezi figura 3.64), în care grupurile de 8 biĠi se care poate fi interpretat de dispozitivul periferic destinaĠie, adică, un format digital
transmit făUă folosirea unor biĠi fanion sau a unor pauze de transmisie interpretabil de către dispozitivul periferic destinaĠie.
interoctet, fiind cel mai rapid úi eficient mod de transmisie;
Structura unui calculator 149 150 ARHITECTURA SISTEMELOR DE CALCUL

Sistemele de calcul nu pot exista făUă comunicaĠia cu mediul înconjurător,  digital-digital. InterfeĠele standard utilizate în cadrul unui sistem de calcul
comunicaĠie care presupune primire de la mediu (returnare către mediu) de date sau sau între sisteme sunt de tip digital-digital. Ele primesc/transmit acelaúi tip
informaĠii. Cum acest mediu este alcătuit la rândul său din sisteme interdependente de semnal, digital, úi au ca scop sincronizarea dispozitivelor care comunică,
care comunică la rândul lor, este nevoie de un sistem de comunicaĠie, de un limbaj prin transformarea semnalului transmis într-un semnal corect interpretabil
universal, care, chiar dacă nu foloseúte aceleaúi noĠiuni, utilizează măcar aceleaúi de către dispozitivul receptor. Această adaptare este efectuată din punctul de
semne. Toate aceste semne alcătuiesc un limbaj de tip analogic, recunoscut de orice vedere al frecvenĠelor de tact, al nivelurilor de tensiune pentru semnalele
fiinĠă vie (lumina, sunetul, impulsurile electrice neuronale, radiaĠiile calorice etc.). emise/recepĠionate, al formatelor de date etc. Spre deosebire de primele
În concluzie, este necesar un mecanism care să integreze lumea digitală a două tipuri de interfeĠe, care pur úi simplu translatează semnalul digital
sistemelor de calcul în acest univers analogic. în semnal analogic úi invers, interfaĠa digital-digital nu face decât să
$úa cum în contextul analogic componentele comunică între ele prin semnale aducă la aceiaúi parametri comunicaĠia între două componente digitale.
integral analogice, în acelaúi mod există comunicaĠie la nivel intern, în contextul
digital, între sisteme de calcul sau, în cadrul aceluiaúi sistem, între subsistemele
care îl alcătuiesc (vezi figura 3.66). ComunicaĠia se realizează în format binar. 3.4.4. Standarde de interfeĠe

3.4.4.1. InterfeĠe seriale


RS-232
Una dintre cele mai uzuale interfeĠe seriale asincrone folosite este RS-232
(Reference Standard 232). Activitatea esenĠială a acesteia este adaptarea semnalului
transportat la cerinĠele receptorului, activitate denumită comunicaĠie asincronă.
În interfaĠa RS-232, datele sunt trimise sub formă de úiruri de biĠi, fiind
suportat 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ă conexiunea
dintre DTE (Data Terminal Equipment, dispozitivul de la capătul îndepărtat al
conexiunii, de obicei, un calculator sau un terminal) úi DCE (Data Circuit-
terminating Equipment, dispozitivul cel mai apropiat de conexiune, de obicei, un
modem), conform reprezentării din figura 3.67.
Fig. 3.66. Tipuri de interfeĠe-translator.

Privind această problemă de comunicaĠie intersisteme, se constată că sunt


necesare trei tipuri de interfeĠe-translator care pot asigura comunicaĠia între două
lumi 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 exemple
imediate, se specifică toată gama echipamentelor de intrare care
comunică cu un sistem de calcul: tastatura, mouse-ul, ecranul senzitiv, Fig. 3.67. Conexiunile interfeĠei seriale RS-232 C.
scanerul, tableta digitizoare, camera video, modemul etc.
Fiecare circuit de date sau control funcĠionează doar într-o singură direcĠie.
 digital-analog. Este complementară interfeĠei analog-digitale, venind în Pentru că datele transmise úi datele recepĠionate folosesc fiecare câte un circuit
completarea sistemului de comunicaĠie úi asigurând bidirecĠionalitatea separat, interfaĠa poate funcĠiona în mod duplex. În cadrul standardului, nu sunt
schimbului de informaĠii cu mediul. Această interfaĠă reprezintă poarta de definite formatul caracterelor din úirul de date sau tipul de codare a lor.
ieúire din lumea digitală către cea analogică. Ca exemple, se pot menĠiona Standardele RS-232 utilizează pentru niveluri de semnal (0 úi 1), în afara
DAC-ul sau monitorul digital, imprimanta, modemul, placa de sunet etc. intervalului +3Vcc … –3Vcc (semnalele cuprinse în acest interval sunt ignorate),
Structura unui calculator 151 152 ARHITECTURA SISTEMELOR DE CALCUL

următoarele convenĠii: orice tensiune peste +3Vcc este considerată corespunzătoare


unui 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 un
conector DB25 de tip mamă (sau priză) pentru DCE. Din cei 25 de pini ai
conectorilor, doar 22 sunt folosiĠi pentru semnale úi masă. Deoarece majoritatea
dispozitivelor 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, atunci
această comandă îl activează);
 Data Set Ready (DSR) – setat pe 0 de către DCE, indică faptul că acesta
este pornit úi pregătit să recepĠioneze comenzi sau date de la DTE (în
cazul unui modem, DSR-ul este setat pe 0 de îndată ce acesta este gata să
Fig. 3.68. Intrare serială – ieúire paralelă (A); intrare paralelă – ieúire serială (B).
primească 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 detectat
semnalul corespunzător apelului (soneriei) telefonice.
Standardele mai noi (RS-422, RS-485 etc.) dezvoltă RS-232, urmărind
optimizarea acestuia.
UART
Circuitele integrate folosite ca interfaĠă asincronă pentru transmisia serială
sunt denumite UART (Universal Asynchronous Receiver Transmitter). În
componenĠa lor intră registre de deplasare (shift, vezi figura 3.68), prin intermediul
Fărora datele în format serial/paralel pot fi convertite în format invers
(paralel/serial). Fig. 3.69. Al treilea modul UART: controlerul de interfaĠă.
Un UART tipic are trei secĠiuni:
 un modul receptor, care primeúte de la periferic un semnal serial úi îl ACIA
converteúte paralel, după care îl depune pe magistrala de date; Un model similar de interfaĠă universală asincronă este ACIA (Asynchronous
 un modul emiĠător, care primeúte semnal paralel de pe magistrala de Communication Interface Adapter), instalată în blocul de mapare a memoriei úi care
date úi îl converteúte în semnal serial pentru periferic; recepĠionează 4 linii de adrese, 3 selecĠii de cip úi o selecĠie de registru. Cipul standard
folosit este MC 6850, cu 24 de pini. Comanda ACIA se realizează prin două perechi
 un controler de interfaĠă, care gestionează activitatea modulelor
de registre, prima fiind de stare, iar cel de-a doua, de control (vezi figura 3.70).
receptor úi emiĠător (vezi figura 3.69). Se folosesc cipurile UART 8251,
16450 (mai vechi) sau UART 16550 úi 16550A, mult mai rapide.
Structura unui calculator 153 154 ARHITECTURA SISTEMELOR DE CALCUL

USB
InterfaĠ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 conectarea
imprimantei, mouse-ului sau scanerului la calculator. USB a fost proiectată pentru
a permite conectarea dispozitivelor periferice printr-un conector standardizat, care
Vă înlocuiască multitudinea de conectori ai unui calculator, úi să îmbunăWăĠească
funcĠionalitatea plug¶Q¶play, permiĠând dispozitivelor să fie conectate úi
deconectate făUă a fi necesară repornirea calculatorului. De asemenea, dispozitivele
care 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
Fig. 3.70. Registrul de stare úi registrul de control pentru comanda ACIA. înlocuit complet conectorii standard existenĠi. Monitorul, tastatura, porturile
paralele úi cele seriale utilizează, în continuare, conectori separaĠi. Un motiv ar
FuncĠionarea ACIA are la bază două registre de deplasare (unul de tip read- putea fi arhitectura mai complexă a magistralei USB, care trebuie să permită
only úi celălalt, write-only) pentru convertirea semnalelor paralel/serial úi conectarea unor tipuri variate de periferice. Un alt motiv ar fi că perifericele care
serial/paralel. ComunicaĠia cu magistrala de date se face prin intermediul unui trebuie să conĠină un distribuitor, cum este monitorul sau tastatura, devin mai
buffer de date, cuplat direct la aceasta. Un exemplu tipic de interfaĠă ACIA este complexe úi mai costisitoare.
modemul (vezi figura 3.71). USB conectează mai multe dispozitive la un HCI (Host Controller Interface),
prin intermediul unor hub-uri. USB este complet controlat de HCI. Nu poate exista
decât un singur host pe o magistrală la un moment de timp. Un adaos la standardul
USB introduce un protocol (Host Negociation Protocol) care permite negocierea de
host între două dispozitive USB.

Fig. 3.72. Arhitectura interfeĠei USB.


Fig. 3.71. Modemul ca exemplu de interfaĠă ACIA.
Structura unui calculator 155 156 ARHITECTURA SISTEMELOR DE CALCUL

Orice topologie necesită cel puĠin un hub, numit root-hub, ataúat direct la HCI. SemnificaĠia pinilor conectorilor USB cu 4 pini este prezentată în tabelul 3.7.
Un host comunică cu dispozitivele prin intermediul unor canale logice (pipes), care
au niúte terminale logice pe dispozitive numite endpoints (vezi figura 3.72). Uneori Tabelul 3.7
este folosit termenul endpoint pentru a identifica úi canalul logic respectiv. SemnificaĠia pinilor conectorilor USB
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 active Pin Descriere
simultan. Fiecare endpoint poate transfera date într-o singură direcĠie, deci, fiecare 1 VBUS (4,35–5,25 V)
pipe este unidirecĠional. Endpoint-urile 0 pentru inúi out sunt întotdeauna active,
fiind folosite pentru management. 2 D–
ComunicaĠiile între periferice úi host se execută prin conexiuni dispozitiv-
3 D+
host úi host-dispozitiv. Conexiunea de la host la dispozitiv se numeúte
downstream, iar conexiunea de la dispozitiv la host se numeúte upstream. 4 GND (0 V)
Conectorii USB sunt diferiĠi pentru upstream úi downstream úi nu pot fi
interschimbaĠi. O comunicaĠie (transfer de date) nu se poate efectua decât între
Există trei tipuri de alimentare posibile, în funcĠie de diversele dispozitive
porturi diferite de upstreamúi downstream.
ataúate:
Există două tipuri de conectori principali: tip A úi tip B. Conectorii de tipul A
 de putere mică (low power) – pot lua un curent de 100 mA de la sursa de
se folosesc pentru host-uri sau hub-uri úi se regăsesc cel mai des pe plăcile de bază
alimentare (pinul VBUS);
ale PC-urilor. Conectorii de tipul B se găsesc numai la dispozitivele periferice. Nu
pot exista legături de cabluri decât de la tipul A de conector la tipul B, dar se pot  de putere mare (high power) – pot lua un curent între 100 mA úi 500 mA
Jăsi úi cabluri care nu respecte aceste specificaĠii, numite cabluri directe. de la VBUS;
Alte tipuri de conectori sunt mini-USB de tip A úi B (mai frecvent utilizaĠi)  cu auto-alimentare (self power) – pot lua un curent de 100 mA de pe
sau AB úi micro-USB, folosiĠi în special pentru dispozitive de dimensiune mai magistralăúi se mai pot alimenta de la o sursă externă.
mică, fiind mai uúor de integrat. IEEE 1394 (FireWire)
Conectorii USB de diferite tipuri sunt reprezentaĠi în figura 3.73. FireWire este numele înregistrat de Apple pentru standardul IEEE1394, fiind
o specificaĠie de magistrală serială, care asigură comunicaĠii de mare viteză úi
servicii de date în timp real.
S-a impus mai ales în domeniul conexiunilor externe, datorită costurilor mici
de fabricaĠie úi a unui sistem simplu de cablare. De asemenea, a devenit interfaĠa
standard pentru conectarea componentelor de comunicaĠii úi control în domeniul
Fig. 3.73. ConfiguraĠia pinilor conectorilor USB de tip A, B, mini-A, B úi micro-A, B. audio-vizual. FireWire este disponibilă úi în versiunile wireless, fibră optică úi
cablu coaxial, folosind protocoale simultane.
Cablul USB foloseúte 4 fire (vezi figura 3.74): două pentru putere: (tensiunea InterfaĠa FireWire suportă conectarea simultană a 63 de periferice. FireWire
VBUSúi masa) úi două pentru semnalele de date (pinii D+úi D–). Alimentarea VBUS este bazată pe comunicaĠia punct-la-punct, ceea ce permite, de exemplu, ca o
este, în general, de 5V (cu o toleranĠă prestabilită), iar modul de transmisie a imprimantăúi un scaner să comunice între ele făUă a încărca suplimentar procesorul
datelor este diferenĠial. Modul de codare al datelor este NRZI (Non Return to Zero úi magistrala sistemului. De asemenea, la fel ca interfaĠa USB, FireWire suportă
Inverted), folosit pentru a trimite date sincronizate úi pentru a sincroniza host-ul cu tehnologia plug'n'playúi conectarea dispozitivelor la magistrală făUă a fi necesară
semnalul de ceas. D+úi D– sunt semnale transmise împreună. În cazul micro-USB, repornirea calculatorului. InterfaĠa FireWire poate alimenta cu energie dispozitive
există 5 pini (apare în plus un pin de identificare, ID). care 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 úi
una de 4 pini (vezi figura 3.75). Singura diferenĠă între acestea este faptul că doar
mufa de 6 pini poate alimenta dispozitive externe, mufei de 4 pini lipsindu-i
conexiunile necesare pentru aceasta.

Fig. 3.74. Cablul USB.


Structura unui calculator 157 158 ARHITECTURA SISTEMELOR DE CALCUL

Cablul FireWire conĠine 6 fire de cupru (vezi figura 3.76): două transportă IEEE 1284
energie, iar celelalte patru sunt grupate în câte două perechi. Fiecare pereche este În 1994, mai vechile interfeĠele Bitronics úi Centronics au dat naútere
ecranată, ca úi întregul cablu. standardului IEEE 1284. InterfaĠa paralelă nu a fost folosită doar pentru
imprimante, 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, programatoare
EPROM sau controlere hardware etc.). Azi, interfaĠa paralelă a fost înlocuită de
interfaĠ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 un
port paralel, considerându-l învechit, dar úi pentru că există convertoare USB-
Fig. 3.75. Conectorii interfeĠei FireWire. Fig. 3.76. Cablul FireWire. paralel, care pot fi folosite în cazul imprimantelor care au numai port paralel.
Cablurile de alimentare transportă tensiuni între 8 úi 40 V c.c. úi amperaje Standardul IEEE 1284 defineúte o comunicaĠie paralelă bidirecĠională între
până la 1,5 A úi sunt folosite pentru menĠinerea continuităĠii stratului fizic al unui calculatoare sau alte dispozitive, oferind o bandă maximă teoretică de 4 Mb/s, úi
echipament, când apar căderi de tensiune sau defecĠiuni, úi pentru alimentarea poate funcĠiona în cinci moduri:
echipamentelor conectate la magistrală. Deci, cablul FireWire transportă atât date,  Compatibility Mode (Centronics) – foarte asemăQător modului
cât úi energie, ceea ce constituie un mare avantaj pentru utilizator. unidirecĠional original Centronics;
Standardul FireWire se prezintă în două versiuni: FireWire 400 úi FireWire 800.  Nibble Mode – foloseúte liniile de stare pentru a recepĠiona date de la
FireWire 400 suportă rate de transfer de 100, 200 úi 400 Mbit/s. Lungimea maximă a imprimantă (pentru transferul extins de stare al imprimantei);
unui cablu este de 4,5 metri, însă aceste cabluri pot fi legate între ele folosindu-se  Byte Mode – se transmit 8 biĠi concomitent, folosind liniile de date;
repetoare sau hub-uri până la o lungime maximă de 72 m sau echivalentul a 16 cabluri  Enhanced Parallel Port (EPP) – este o arhitectură semiduplex
interconectate. FireWire 800 (2003) úi S800T (2007) suportă o rată maximă de transfer bidirecĠională, care permite dispozitivelor să transmită cantităĠi mari de
de 800 Mb/s úi o lungime mai mare a cablurilor (100 m), fiind compatibilă la nivel date (pentru scanere sau dispozitive de stocare);
logic cu FireWire 400 însă la nivel fizic conectorii nu sunt compatibili, fiind necesar un  Extended Capability Port (ECP) – similar EPP-ului, poate oferi o bandă
convertor. Viitoarele versiuni de FireWire intenĠionează să aducă o creútere de viteză de până la 2,5 Mb/s (pentru a mări viteza, foloseúte RLE – Run Length
de până la 6,4 Gb/s úi conectori suplimentari, cum sunt interfeĠele multimedia mici. Encoding –, o compresie simplă a secvenĠelor lungi care conĠin acelaúi
caracter 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.
PIA
Cel mai uzual model de interfaĠă utilizat este PIA (Peripheral Interface
Adapter). Cipul standard folosit este 6821 PIA cu 40 de pini. InterfaĠa foloseúte
două registre, unul pentru datele transmise de la periferic la microprocesor úi
celălalt pentru sensul opus. Când perifericul transmite un octet de date de-a lungul
celor opt linii către sistem, datele sunt depuse într-un registru PIA unde vor aútepta
până când microprocesorul este pregătit pentru preluarea lor. După efectuarea citirii
acestui octet stocat, procesul se repetă pentru următorul octet.
Fig. 3.77. Conectorul RJ45 al interfeĠei Ethernet. Pentru transmisii în sens invers, procesorul va transmite un octet de-a lungul
magistralei de date către cipul I/O, care le va depozita într-unul din aceste registre.
3.4.4.2. InterfeĠe paralele Când perifericul este în stare ready, va transmite un semnal către PIA, care îi va
Cel de-al doilea tip de interfaĠă, indiscutabil mai rapidă, este interfaĠa pune la dispoziĠie datele, apoi procesul se reia.
paralelă. Din păcate, este utilizabilă pentru transmisii la distanĠe foarte mici, în În plus faĠă de aceste registre, este disponibil un registru de stare ai cărui biĠi,
comparaĠie cu cei 30 m la care se poate comunica prin interfeĠe seriale, motivul folosiĠi ca fanioane, indică microprocesorului care coordonează activităĠile I/O
fiind nivelurile energetice foarte scăzute la care se lucrează. Este cunoscută úi ca starea registrelor amintite, validitatea octetului de date transferat sau, în general,
port imprimantă sau port Centronics.
Structura unui calculator 159 160 ARHITECTURA SISTEMELOR DE CALCUL

starea interfeĠei paralele PIA. Toate aceste registre – programabile – sunt cuplate la Tehnologia Bluetooth creează o cale prin care se poate face schimb de
magistrala de date a sistemului, prin aceasta fiind adresate direct de către procesor. informaĠii între aparate precum telefoane mobile, laptopuri, calculatoare personale,
Faptul că, prin intermediul registrelor interne, aceste cipuri-interfeĠe sunt imprimante, camere digitale úi console video, printr-o frecvenĠă radio sigurăúi de
programabile le face deosebit de practice, deoarece fiecare port al unei linii de rază mică. Aparatele Bluetooth comunică între ele atunci când acestea se află în
transmisie (din cele opt existente) poate fi programat úi controlat individual în aceeaúi rază de acĠiune. Ele folosesc un sistem de comunicaĠii radio, astfel încât nu
privinĠa direcĠiei de transfer a datelor. Astfel, anumite linii pot fi programate pentru este nevoie să fie aliniate faĠă în faĠă pentru a transmite, putând fi plasate chiar în
transmisie într-un sens, în timp ce celelalte acĠionează în sens opus. Un exemplu camere diferite dacă transmisia este suficient de puternică.
clasic de folosire a comunicaĠiilor paralele este imprimanta. Clasele de emisie definite prin tehnologia Bluetooth sunt prezentate în
În figura 3.78 este reprezentată o implementare fizică a interfeĠei PIA, prin tabelul 3.8.
cipul W65C21S, compatibil cu microprocesoarele din familia Motorola 68• • .
Tabelul 3.8
InterfaĠa prezintă două porturi I/O bidirecĠionale (A úi B) pe câte 8 biĠi, cu comandă Clasele de emisie Bluetooth
individuală a sensului datelor. Transferul datelor se face folosind un protocol
automat de tip handshake. InterfaĠa este prevăzută cu două ieúiri de întrerupere Puterea maximă permisă Puterea maximă permisă Raza aproximativă
Clasa
comandate software. Portul A, prin ieúirea CA2, asigură transferuri de mare viteză, (mW) (dBm) (m)
pentru operaĠii statice sau cu o frecvenĠă de până la 14 MHz.
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,45
GHz, protocolul Bluetooth împarte banda în 79 de canale (fiecare cu o lăĠime de
bandă 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 de
723,1 kb/s, iar versiunea 2.0 foloseúte modul EDR (Enhanced Data Rate), pentru a
atinge o viteză de 2,1 Mb/s. Din punct de vedere tehnic, versiunea 2.0 are un
Fig. 3.78. Conexiunile interfeĠei PIA pentru microprocesoarele din familia Motorola 68• • . consum 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 anterioare
3.4.4.3. InterfeĠe wireless cu peste 50%.
Bluetooth Standarde Bluetooth sunt:
Tehnologia Bluetooth reprezintă un set de specificaĠii bazate pe undele radio, a) Bluetooth 1.0 úi 1.0B. Versiunile 1.0 úi 1.0B au avut multe probleme,
pentru o reĠea wireless personală, PAN (Personal Area Network). care au făcut producătorii să întâmpine dificultăĠi în a face produsele funcĠionale.
DocumentaĠia acestui standard a fost creată în anul 1994 de către Jaap b) Bluetooth 1.1. Multe din erorile manifestate la versiunea 1.0B au fost
Haartsen úi Sven Mattisso, angajaĠi ai diviziei Mobile Platforms din cadrul reparate în versiunea 1.1. De asemenea, aceasta versiune oferea suport pentru
companiei Ericsson. canale necriptate úi avea adăugat un indicator al puterii semnalului de transmisie.
Astfel, standardul dezvoltat de aceútia se baza pe tehnologia de transmisie cu c) Bluetooth 1.2. Această versiune este compatibilă cu 1.1. Principalele
salt în frecvenĠă úi spectru distribuit, FHSS (Frequency-Hopping Spread sale îmbunăWăĠiri sunt:
Spectrum).  viteză mai mare de descoperire úi de conectare la alte dispozitive;
SpecificaĠiile platformei Bluetooth au fost formalizate de către Bluetooth  viteză practică de transfer îmbunăWăĠită (deúi maximul teoretic rămâne 721 kb/s);
Special Interest Group (SIG). Aceasta organizaĠie a fost fondată în data de 20 mai  îmbunăWăĠirea rezistenĠei la interferenĠă cu alte dispozitive radio, prin
1998 de către Ericsson, IBM, Intel, Toshiba, Sony Ericsson úi Nokia, urmând ca implementarea mecanismului AFHSS (Adaptive Frequency-Hopping
de-a lungul timpului peste 7.000 de companii să adere la acest grup. Spread Spectrum).
Structura unui calculator 161 162 ARHITECTURA SISTEMELOR DE CALCUL

d) Bluetooth 2.0. Este compatibilă la nivel de comunicaĠie cu versiunile 1.• .


Principala îmbunăWăĠire este introducerea modului EDR (Enhanced Data Rate), care
permite 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 tip
piconet. Astfel, piconetul poate fi definit ca o reĠea de tip ad-hoc, care foloseúte
protocoalele Bluetooth pentru a permite unui dispozitiv master să se interconecteze
cu alte 7 dispozitive Bluetooth active. Pe lângă acestea, pot exista până la un număr
de maximum 255 de dispozitive inactive, pe care dispozitivul master le poate
activa în orice moment.
La un moment dat, prin intermediul protocolului Bluetooth, dispozitivul
master nu poate comunica decât cu un singur alt echipament. Pentru a combate Fig. 3.79. Arhitectura Bluetoooth.
acest aspect negativ, dispozitivele îúi pot schimba rolul în cadrul piconetului în
orice moment úi astfel orice dispozitiv slave poate deveni master úi viceversa. Mai Wi-Fi, prescurtarea de la Wireless Fidelity, reprezintă o categorie de
mult decât atât, specificaĠiile standardului Bluetooth permit interconectarea a două produse compatibile cu standardele WLAN, bazate pe protocoale IEEE 802.11.
sau mai multe piconeturi pentru a forma un scatternet. Astfel, unele echipamente vor Noile standarde, bazate pe specificaĠiile 802.11 (cum este 802.16 WiMAX), fac
avea rolul de master într-un piconet úi de slave în alt piconet. Acest lucru este util, parte din reĠelele actuale úi oferă multe îmbunăWăĠiri, de la arii mari de acoperire
deoarece se permite interconectarea a mai mult de 8 dispozitive active simultan. până la viteze mari de transfer.
Orice dispozitiv Bluetooth va transmite la cerere altui dispozitiv următoarele DiferenĠele între o reĠea terestră úi o reĠea wireless radio sunt multiple úi
seturi de informaĠii: numele úi clasa dispozitivului, lista de servicii úi specificaĠiile reprezintă beneficii în favoarea reĠelelor wireless:
tehnice (capabilităĠile dispozitivului, fabricantul etc.). De asemenea, orice dispozitiv  Spre deosebire de alte sisteme radio, Wi-Fi foloseúte un spectru de
Bluetooth poate executa o căutare pentru a vedea ce alte echipamente compatibile frecvenĠe radio care nu are nevoie de licenĠă, deci, nu necesită aprobare
există în proximitate úi, de asemenea, orice dispozitiv poate fi configurat să pentru utilizare.
Uăspundă la căutarea executată de alt echipament. Totuúi, dacă dispozitivul care  Se permite dezvoltarea variată a unei reĠele locale WLAN făUă
doreúte să se conecteze la alt echipament cunoaúte adresa exactă a acestuia, se va utilizarea cablurilor, reducând costurile necesare dezvoltării reĠelei úi
putea conecta la el indiferent de setările de vizibilitate ale echipamentului accesat. evitând diferite obstacole în implementarea reĠelei (locuri inaccesibile,
Fiecare dispozitiv Bluetooth are o adresă unică pe 48 de biĠi. Aceste adrese nu care nu pot fi cablate).
sunt totuúi folosite în mod direct de către utilizatori, optându-se pentru utilizarea unor  Multe reĠele Wi-Fi suportă roaming, permiĠând unui client să se mute
nume care pot fi definite. Aceste nume sunt afiúate atunci când un dispozitiv dintr-un punct de acces în altul în aceeaúi clădire sau zonă geografică.
Bluetooth le scanează pe cele din proximitatea sa. Dispozitivele Bluetooth se Wi-Fi este un standard global, clienĠii Wi-Fi putând lucra în diferite
conectează prin intermediul unui proces numit pairing. Astfel, se stabileúte o legătură Ġări de pe glob.
între dispozitive pe baza unei parole (passkey). De asemenea, datele transferate între  Există posibilităĠi variate de conectare a utilizatorului final, prin
dispozitivele Bluetooth pot fi criptate, pentru a preveni mai eficient interceptarea lor. intermediul plăcilor Wi-Fi PCMCIA, PCI, USB sau a sistemelor Wi-Fi
Arhitectura Bluetooth, care evidenĠiază protocoalele legate de modelul OSI, inclusiv 802.11b sau 802.11g integrate în majoritatea notebook-urilor moderne.
de setul comenzilor AT (vezi paragraful 2.7) este reprezentată în figura 3.79.  Există posibilităĠi alternative sau combinate de antene Wi-Fi
Wi-Fi unidirecĠionale sau bidirecĠionale, sectoriale, direcĠionale,
O reĠea wireless WLAN (Wireless Local Area Networks) este o reĠea făUă fir, omnidirecĠionale, punct la punct, punct la multi-punct, sisteme de
locală, extinsă pe arii limitate, în funcĠie de echipamentele folosite úi de puterea bridge (interconectarea a două reĠele wireless), puncte de acces de
acestora, prin care se poate face transfer de date úi internet folosind undele radio. diferite puteri, cu diferite câútiguri etc.
Raza de acoperire poate fi de la câteva zeci de metri până la 20 km, prin folosirea Arhitectura unui sistem de comunicaĠie care foloseúte tehnologia Wi-Fi
soluĠiilor iDirect, care au implementată interfaĠa de administrare pentru 200 de utilizatori. este prezentată în figura 3.80.
Structura unui calculator 163 164 ARHITECTURA SISTEMELOR DE CALCUL

Dar dacă procesorul nu mai este interogat asupra acelor activităĠi, atunci de
controlul úi securitatea lor se ocupă un dispozitiv numit controler DMA (în general
de tipul i8237), care suportă, în cazul PC-XT, patru canale (DMA0• DMA3), putând
gestiona până la patru procese simultane de transfer de date. Calculatoarele dotate cu
procesoare de la 80386 în sus dispun de încă patru canale DMA pe 16 biĠi (numite
HDMA), gestionate de un al doilea controler de tipul i8237A-5 (vezi figura 3.81).

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 din


sloturile libere de pe placa de bază, simpla cuplare fizică a acestora este suficientă
din 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, de
obicei, plăcile de extensie úi, de asemenea, este posibilă parĠial configurarea pe baza
setă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, Fig. 3.81. Conectarea controlerului DMA în sistem.
indiferent de rolul acestuia, este nevoie de a defini úi a asigura comunicaĠia
generală, prin care se va semaforiza úi controla, la comanda microprocesorului, Un transfer DMA constă din următoarele faze:
activitatea totală a dispozitivului în cauză, respectiv, de a-l cupla în sistemul 1. iniĠializarea transferului;
general al transferurilor de date. 2. transferul efectiv de date;
Este vorba, pe de-o parte, de a stabili úi rezerva un canal de comunicaĠie 3. verificarea terminării úi a corectitudinii transferului.
DMA (Direct Memory Access), iar, pe de altă parte, de a stabili úi rezerva anumite În faza de iniĠializare, CPU înscrie în registrele interne ale controlerului
canale de întrerupere IRQ (Interrupt Request) úi, în final, de a seta adresele de DMA adresa de început a blocului de memorie implicat în transfer úi numărul de
intrare-ieúire (adrese I/O), la nivelul cărora se efectuează transmiterea datelor, octeĠi transferaĠi, precizând sensul de transfer (citire din memorie úi scriere la
comenzilor úi parametrilor necesari proceselor executate de periferic. periferic sau citire de la periferic úi scriere în memorie).
La lansarea unui transfer DMA de către o interfaĠă de intrare-ieúire,
3.4.5.1. Transferurile DMA (Direct Memory Access) succesiunea evenimentelor din faza de iniĠializare este următoarea:
 interfaĠa generează un semnal de cerere, DRQ (DMA ReQuest), către
Folosirea DMA duce la creúterea vitezei sistemului prin degrevarea controlerul DMA;
microprocesorului de controlul transferurilor de date, accesul la memorie fiind  controlerul DMA solicită prin linia HOLD accesul la magistrală;
efectuat de către placa de extensie respectivă, făUă supraveghere continuă.  după terminarea ultimului ciclu în execuĠie, CPU suspendă temporar
În esenĠă, când este vorba despre DMA, se face practic referire la activitatea pe magistrală prin dezactivarea amplificatoarelor de date,
transferurile de date (úi la controlul acestora) între memorie úi porturile I/O (care adrese úi comenzi (magistrala trece în starea de impedanĠă înaltă);
pot fi definite úi ca puncte de cuplare a extensiilor periferice la sistem).
Structura unui calculator 165 166 ARHITECTURA SISTEMELOR DE CALCUL

 CPU răspunde controlerului DMA prin generarea unui semnal, HLDA Tabelul 3.9
(HoLD Acknowledge), prin care anunĠă acceptarea cererii de cedare a Utilizările tipice ale canalelor DMA
magistralei;
DMA magistrală utilizare tipică alte utilizări uzuale
 controlerul DMA preia controlul magistralei prin generarea semnalelor
de comandă úi a celor de adrese pentru efectuarea transferului, 0 – RAM refresh –
Uăspunzând interfeĠei I/O prin semnalul DACK (DMA ACKnowledge) 1 8/16 biĠi Placă de sunet Adaptoare SCSI, porturi paralele, plăci de reĠea,
în momentul în care transferul poate începe. (low DMA) modemuri de voce
În faza de transfer al datelor au loc mai multe cicluri de transfer sub 2 8/16 biĠi Controler –
supervizarea controlerului DMA. În cadrul unui ciclu se transferă un cuvânt de date. floppy disk
În faza de verificare se realizează un control de paritate sau CRC. 3 8/16 biĠi Liber Adaptoare SCSI, porturi paralele, plăci de sunet
Pentru a realiza funcĠiile prezentate, un controler DMA trebuie să conĠină (low DMA), de reĠea, voice modem, controler HD
următoarele componente:
4 – Redirectat pentru –
 registre pentru generarea adreselor de memorie;
nivelele DMA 0• 3
 număUătoare pentru contorizarea cuvintelor de date transferate pe fiecare canal;
 un registru de stare pentru marcarea configuraĠiei curente; 5 16 biĠi Placă de sunet Adaptoare SCSI, plăci de reĠea
(high DMA)
 registre de comandă pentru programarea modului de transfer;
 un circuit de arbitrare pentru soluĠionarea cererilor multiple de acces; 6 16 biĠi Liber Placă de sunet (high DMA), plăci de reĠea
 circuite pentru controlul magistralei (amplificatoare de adrese, date, comenzi); 7 16 biĠi Liber Placă de sunet (high DMA), plăci de reĠea
 un dispozitiv de comandă secvenĠial pentru derularea ciclurilor DMA
úi pentru preluarea/cedarea magistralei. Întreruperile hardware sunt gestionate de un cip de genul i8259. Logica
SituaĠiile în care este necesar acest dispozitiv de comandă secvenĠial sunt procesului de cerere de întrerupere (Interrupt Request) constă din conectarea
cele în care viteza de transfer impusă de echipamentul periferic este relativ mare úi funcĠională la sistem a unei extensii (cu rolul úi scopul său bine definit) úi
CPU nu reuúHúte să execute instrucĠiunile conĠinute în ciclul de transfer în perioada optimizarea transferurilor de date úi informaĠii către/de la microprocesor
dintre două solicitări succesive. dinspre/spre acele extensii. În acest mod, se eliberează microprocesorul de sarcina
În cazul PC-urilor, transferul DMA se utilizează pentru interfaĠa de floppy cronofagă de a urmări activitatea perifericului în cauză.
disk úi pentru transferul serial pe bloc. Un canal DMA (canalul 0) este utilizat Un canal IRQ este sistemul de transmisiune folosit de componentele
pentru operaĠia de reîmprospătare (refresh) a memoriei dinamice. Sunt simulate sistemului pentru a semnala o cerere de intrare în acĠiune.
periodic cicluri de citire a memoriei. Exemplu. O placă de sunet nu va funcĠiona oricum, ci va avea nevoie de o
Referitor la primele patru canale DMA, dintre acestea canalele 0, 2 úi 3 comandă din partea microprocesorului pentru a îndeplini sarcina trasată la un
sunt rezervate pentru activitatea internă a sistemului de calcul (0 – RAM refresh, 2 moment dat de o cerinĠă soft. În funcĠie de nivelul de întrerupere (gradul de
– operaĠii cu floppy disk-ul úi 3 – operaĠii cu hard disk-ul). Rămâne disponibil prioritate) alocat, controlerul de întrerupere va stabili oportunitatea intervenĠiei
canalul 1 pentru dispozitive periferice. Sunt disponibile încă 3 canale HDMA: 5, 6, plăcii de sunet în funcĠie de celelalte cereri de întrerupere primite de la alte
7, în general, canalul 4 fiind folosit pentru funcĠionarea controlerului HDMA, periferice. Dacă nivelul de prioritate este superior celorlalte cereri existente, placa
cuplat în cascadă cu primul controler. vúi va îndeplini activitatea pe baza acceptului primit de la microprocesor.
Utilizările tipice ale canalelor DMA se pot observa în tabelul 3.9. Alocarea nivelurilor de întrerupere este prezentată în tabelul 3.10.
În momentul în care o setare DMA a fost făcută greúit (de exemplu, mai FuncĠionarea unui canal IRQ este următoarea:
multe dispozitive folosesc acelaúi canal DMA), placa nou montată nu va mai  placa periferică instalată lansează către microprocesor un semnal
funcĠiona sau sistemul se va bloca. Concluzia este că nu trebuie folosite, practic, Interrupt Request (o cerere de întrerupere, desemnată de un anumit
aceleaúi canale DMA pentru două dispozitive periferice diferite. număr-cod);
 imediat, microprocesorul abandonează temporar acĠiunea pe care o
3.4.5.2. Canalele IRQ (Interrupt Request) întreprinde la acel moment úi transmite perifericului un mesaj de recepĠie,
denumit Interrupt Acknowledge, în cazul în care nivelul de prioritate al
În ceea ce priveúte cel de-al doilea parametru, canalul IRQ, úi acesta poate procesului solicitant este superior celui în curs de desfăúurare;
cauza, la setări defectuoase, funcĠionări greúite úi blocări de sistem.
Structura unui calculator 167 168 ARHITECTURA SISTEMELOR DE CALCUL

Tabelul 3.10 ca cel puĠin două cereri de întrerupere să fie lansate către microprocesor în acelaúi
Nivelurile IRQ úi asignarea corespunzătoare fiecărui dispozitiv timp. De aceea, magistrala IRQ (traseul urmat de semnalele de întrerupere la/de la
microprocesor) a fost dotată cu două controlere de întrerupere înseriate, fiecare
nivel întrerupere utilizare având opt intrări úi o ieúire, cel de-al doilea având intrarea 2 conectată la ieúirea
IRQ0 Ceas de sistem (nu se poate defini de către utilizator) primului, mărindu-se astfel numărul nivelurilor de întrerupere care pot fi utilizate.
Plăcilor de extensie (perifericelor) le vor fi asignate anumite numere de
IRQ1 Tastatură ordine (coduri), prin care vor fi recunoscute de controlerul de întrerupere úi, mai
IRQ2 Al doilea controler IRQ departe, de microprocesor. Corespunzător celor 28 intrări, vor rezulta 16 niveluri
(canale) de întrerupere, multe dintre acestea fiind rezervate unor periferice
IRQ3 Liber (standard pentru COM2/COM4)
instalate, făUă de care sistemul nu ar putea funcĠiona (placa grafică – canalul 9, hard
IRQ4 Liber (standard pentru COM1/COM3 – conectarea mouse-ului serial) disk-ul – canalul 14, tastatura – canalul 1, ceasul de timp real – canalul 8 etc.,
conform tabelului 3.10).
IRQ5 Liber (standard pentru placa de sunet); placa de reĠea úi LPT2 sunt
deseori setate la IRQ5, dacă nu este alocat plăcii de sunet
Cel mai important nivel IRQ este IRQ0, apoi urmează IRQ1, IRQ2/9,
IRQ10–IRQ15 úi IRQ3–IRQ8.
IRQ6 Floppy disk (nu se poate defini de către utilizator) Similar alegerii canalelor DMA, úi pentru nivelurile de întrerupere folosite
IRQ7 LPT1 (dacă nu se foloseúte un port paralel, atunci IRQ7 poate fi asignat este valabil acelaúi principiu: este necesară alocarea nivelurilor de întrerupere
unui alt dispozitiv) diferite pentru plăci de extensie diferite, pentru a nu intra în conflict diversele cereri
simultane ale extensiilor, adresate aceluiaúi nivel de întrerupere.
IRQ8 Ceas de timp real (nu se poate defini de către utilizator) Cipul 8210A asigură un nivel de priorităĠi pentru cererile simultane de
IRQ9 Redirectat de IRQ2 (de obicei, folosit pentru placa grafică) întrerupere, în scopul eliminării conflictelor. Pentru sistemele de tip XT există opt
niveluri de priorităĠi (IRQ0• IRQ7), iar pentru sistemele AT, 16 niveluri. Se pot
IRQ10 Liber (dacă placa de sunet foloseúte IRQ5, atunci IRQ10 poate fi folosit folosi úi diversele canale de întrerupere prealocate (de exemplu, IRQ5 pentru
pentru placa de reĠea)
LPT2, dacă placa de sunet nu există).
IRQ11 Liber (de obicei, folosit pentru controlerul SCSI)
IRQ12 Liber (de obicei, folosit pentru PS2)
3.4.5.3. Adresa de intrare-ieúire

IRQ13 Coprocesor matematic (nu se poate defini de către utilizator) Cel de-al treilea parametru care trebuie avut în vedere la instalarea unui
IRQ14 Controlerul IDE1 (Hard disk, CD-ROM); al doilea dispozitiv IDE de pe dispozitiv periferic este adresa de intrare-ieúire. Microprocesoarele din seria • 86 au
acelaúi cablu foloseúte acelaúi IRQ disponibil un spaĠiu de memorie special pentru stocarea adreselor de intrare-ieúire,
respectiv, pentru instrucĠiunile de transfer al informaĠiei dintre microprocesor úi
IRQ15 Controlerul IDE2 plă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.
 sistemul de operare execută o rutină specială, care are ca sarcină salvarea Cum secĠiunea de memorie pusă la dispoziĠia unei plăci de extensie pentru
stării microprocesorului (salvarea conĠinutului registrelor curente); transferul de date la/de la microprocesor este de dimensiune relativ mică (16 octeĠi),
 se citeúte din tabela vectorilor de întrerupere (TVI) o adresă la care va fi nevoie de alocarea mai multor spaĠii de memorie pentru ca o extensie să poată
se află numărul canalului de întrerupere cerut; fi cuplată în sistemul de comunicaĠie. Practic, aceste spaĠii de memorie reprezintă
 prin citirea adresei din TVI, se poate da controlul rutinei-driver aflate mici porĠi de memorie folosite ca „punĠi” de comunicaĠie, aceleaúi porĠi fiind
la adresa citită, rutină care răspunde de activitatea dispozitivului care a folosite întotdeauna de aceeaúi placă de extensie.
emis semnalul IRQ; Toate aceste adrese (date în sistem hexazecimal) sunt indicate în căUĠile
 rolul final al rutinei sistemului de operare este să refacă starea tehnice care însoĠesc plăcile de extensie úi trebuie setate cu mare grijă pentru a nu
microprocesorului, încărcând registrele salvate anterior, moment din se suprapune cu alte adrese, alocate altor dispozitive.
care sistemul revine la starea úi procesul desfăúurate anterior În acest scop, se analizează adresele I/O pentru toate celelalte dispozitive úi
semnalului IRQ. abia după aceea se setează cele noi. În caz contrar, funcĠionarea sistemului va fi
Cum într-un sistem de calcul există mai multe componente care pot cere obstrucĠionată de conflictele de comunicaĠie care apar la suprapunerea adreselor de
simultan permisiunea microprocesorului de a intra în acĠiune, este foarte probabil
Structura unui calculator 169 170 ARHITECTURA SISTEMELOR DE CALCUL

intrare-ieúire. Orice port este definit de o asemenea adresă, care va accesa o zonă de În continuare, sunt prezentaĠi paúii care trebuie urmaĠi pentru proiectarea
memorie din partea inferioară a memoriei de lucru. unui sistem I/O. SoluĠiile pentru fiecare pas în parte sunt dictate de cerinĠele
Referitor la dificultăĠile generate de setarea acestor parametri, se pieĠei, cost, performanĠă sau de posibilitatea îndeplinirii obiectivelor.
menĠionează ca soluĠie deosebit de avantajoasăúi rapidă folosirea arhitecturii PCI, 1. enumerarea diferitelor tipuri de dispozitive I/O care se vor conecta la
care, prin intermediul setului de cipuri inteligente, permite sistemului să se sistem sau enumerarea magistralelor standard pe care le suportă
autoconfigureze, instalarea noii plăci decurgând făUă probleme (plug'n'play). sistemul;
Practic, după cuplarea fizică, în slotul PCI liber urmează instalarea driver-ului 2. enumerarea cerinĠelor fizice pentru fiecare dispozitiv I/O, cerinĠele
plăcii respective (o acĠiune software), cu aceasta încheindu-se dotarea sistemului. incluzând dimensiunea, puterea, conectorii, sloturile disponibile pe
Sistemul va recunoaúte automat la pornire placa nou instalată, configurând totodată magistrală etc.;
úi canalele DMA, IRQ úi adresele I/O necesare. 3. luarea în calcul a costului fiecărui dispozitiv I/O, incluzând costul
controlerului necesar pentru dispozitivul respectiv;
4. luarea în calcul a fiabilităĠii fiecărui dispozitiv I/O, precum úi a
3.4.6. Proiectarea unui sistem I/O cerinĠelor de memorie úi de ocupare a magistralei I/O de către fiecare
dispozitiv I/O în parte;
Arta proiectării unui sistem I/O constă în a găsi soluĠia care să ObservaĠie: úi atunci când CPU nu foloseúte memoria, dimensiunea
îndeplinească obiectivele de cost, dependenĠe úi varietate ale dispozitivelor, úi, în memoriei principale úi a magistralei I/O este limitată;
acelaúi timp, să se evite scăderea performanĠei I/O. Pentru a evita scăderea 5. estimarea performanĠei úi a disponibilităĠii diferitelor modalităĠi de
performanĠei, componentele trebuie să fie echilibrate între memoria principală úi organizare a dispozitivelor I/O, pentru ca în final să se aleagă cea mai
dispozitivele I/O. bună organizare;
Arhitectul trebuie să plănuiască o extindere, atât în ceea ce priveúte 6. înregistrarea cererii de acces a fiecărui dispozitiv I/O la resursele CPU:
numărul, cât úi tipurile dispozitivelor I/O, astfel încât clienĠii să poată proiecta  numărul necesar de cicluri de ceas pentru instrucĠiunile de
reĠeaua I/O conform necesităĠilor aplicaĠiilor lor, aúa cum rezultă din figura 3.82. iniĠializare a dispozitivului I/O;
De exemplu, discurile de stocare trebuie să fie dependente de limitările care se pot  suportarea operaĠiilor unui dispozitiv I/O (de exemplu, întreruperile);
impune proiectului.  evitarea blocării CPU cauzate de aúteptarea eliberării memoriei,
magistralei sau memoriei cache, care sunt folosite de dispozitivele I/O.

Fig. 3.82. Exemplu de organizare a unui sistem I/O.


172 ARHITECTURA SISTEMELOR DE CALCUL

Limita de integrare a ajuns la câteva milioane de tranzistoare pentru circuitele


4. NIVELUL FIZIC modeste 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 Texas
Instruments úi distribuite astăzi de numeroúi fabricanĠi de circuite logice. Din cadrul
tehnologiei 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 este
La baza structurii ierarhice a oricărui calculator se află nivelul fizic. El un dispozitiv esenĠial. Ea este utilizată pentru stocarea instrucĠiunilor úi a datelor
constituie fundamentul calculatorului úi are ca suport circuitele úi porĠile logice. programului în curs de execuĠie. Pentru a obĠine memorarea unui bit, este necesar
Deoarece porĠile utilizează numere binare, funcĠionarea calculatoarelor se bazează Vă se utilizeze un dispozitiv care se substituie valorii pe care a înregistrat-o. Un astfel
pe algebra booleană. FuncĠionarea circuitelor logice se conduce după principiul de circuit poate fi realizat simplu cu porĠi logice, de exemplu cu porĠi logice ùI-NU.
unui tranzistor care se comportă ca un întrerupător electronic foarte rapid.
PorĠile logice sunt realizate în diferite tehnologii: tehnologie bipolară úi
tehnologie unipolară sau MOS (Metal Oxide Semiconductor). În cadrul tehnologiei
bipolare se poate remarca familia TTL (Transistor-Transistor Logic) – foarte 4.1. Microprocesorul
utilizată – úi ECL (Emitter Coupled Logic) – folosită în aplicaĠii care necesită o
mare rapiditate de execuĠie. Microprocesorul reprezintă inima unui sistem de calcul. Privit din punct de
PorĠile realizate în tehnologie MOS sunt de 10 ori mai lente decât cele în vedere fizic, el este un circuit care prezintă câteva zeci sau chiar sute de terminale.
tehnologie TTL úi de 100 de ori mai lente decât cele din tehnologia ECL. În cadrul Semnalele de comunicaĠie asociate acestora îi permit microprocesorului să facă
tehnologiei MOS se disting câteva familii clasice: PMOS, NMOS úi CMOS. Aúa schimb de informaĠii cu mediul extern, în principal cu circuite de memorie sau cu
cum s-a mai spus, funcĠionarea porĠilor logice se bazează pe algebra booleană. O circuite de intrare-ieúire. O analiză detaliată a acestor semnale determină diversele
funcĠie booleană este asociată uneia sau mai multor variabile úi furnizează un moduri de funcĠionare logică úi electrică a procesorului úi posibilităĠile sale de
rezultat care depinde în mod unic de valorile variabilelor binare aplicate la intrare. interfaĠă. Există trei categorii de semnalele electrice externe ale microprocesorului:
Exemplu. O funcĠie f a unei variabile oarecare A poate fi definită ca fiind  de adresă;
f(A) = 1 dacă A = 0 úi f(A) = 0 dacă A = 1. Aceasta este funcĠia NON.  de date;
O funcĠie booleană de n variabile prezintă 2n stări posibile. A descrie  de comandă.
complet aceste stări sub forma unui tabel care conĠine 2n linii înseamnă a construi Fiecărui tip de semnal îi sunt asociate linii de comunicare care formează o
tabela de adevăr a funcĠiei respective. Fiecare linie a acestui tabel indică valoarea magistrală. De cele mai multe ori, în limbajul de specialitate se vor întâlni câteva
funcĠiei pentru configuraĠia binară de n variabile. noĠiuni specifice precum: magistrala de adrese, care reprezintă totalitatea liniilor pe
Prin combinarea unor porĠi logice úi încapsularea lor într-un circuit sau care circulă adresele, magistrala de date, corespunzătoare liniilor de date úi
capsulă au rezultat circuitele integrate logice. Ele sunt realizate cu diverse densităĠi magistrala de comenzi, specifică liniilor de comenzi.
de integrare (numărul de porĠi sau de tranzistoare interne pentru circuit sau pe
milimetru pătrat). Există mai multe categorii de integrare:
 SSI (Small Scale Integration) – circuite cu integrare redusă (sub 64
porĠi/circuit);
 MSI (Medium Scale Integration) – circuite cu densitate medie de
integrare (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 de
integrare (peste 65.000 porĠi/circuit);
 SVLSI (Super Very Large Scale Integration) – circuite cu foarte înaltă
densitate de integrare (peste 500.000 porĠi/circuit). Fig. 4.1. Schema unui microprocesor tipic.
Structura unui calculator 173 174 ARHITECTURA SISTEMELOR DE CALCUL

Pentru obĠinerea unei instrucĠiuni a programului care este executat, 4.2. Întreruperile
microprocesorul începe prin plasarea adresei acestei instrucĠiuni pe magistrala de
adrese. Se activează un semnal pe magistrala de comandă pentru specificarea unei
acĠiuni de citire din memorie. Ca răspuns la această cerere, memoria plasează Întreruperile sunt schimburi în fluxul de control, care nu sunt cauzate de
instrucĠiunea pe magistrala de date, trimite un semnal către microprocesor prin care programul care se execută, ci de alte cauze, aflate de obicei în legătură cu operaĠiile I/O.
acesta este atenĠionat că operaĠiunea este terminatăúi activează un semnal specific Exemplu. Un program poate comanda discului să pornească transferul
de validare a magistralei de comenzi. În timp ce microprocesorul primeúte informaĠiei úi îi cere acestuia să furnizeze o întrerupere imediat ce transferul s-a
semnalul de validare de memorie, el citeúte informaĠia (instrucĠiunea) prezentă pe terminat. Microprocesorul întrerupe programul ce se executăúi transferă controlul
magistrala de date úi o plasează într-unul din registrele interne. unei proceduri de tratare a întreruperii, care execută câteva acĠiuni corespunzătoare.
Există doi parametri principali asociaĠi performanĠelor unui microprocesor: Când se termină, rutina de tratare a întreruperilor întoarce controlul către
numărul de linii ale magistralei de adrese úi numărul de linii ale magistralei de date. programul întrerupt. Microprocesorul trebuie să repornească procesul întrerupt
ObservaĠie. Ambii parametri se referă la OăĠimea magistralelor úi se măsoară exact din aceeaúi stare în care era când a apărut întreruperea, ceea ce înseamnă
în număr de linii (sau de biĠi). A nu se confunda cu Oărgimea (de bandă) a refacerea tuturor registrelor interne în starea de dinainte de întrerupere.
magistralelor, care se exprimă în termenii vitezei de transfer (multipli de Un concept cheie al întreruperilor este transparenĠa. Când apare o
octeĠi/secundă.) întrerupere, se execută câteva acĠiuni úi un fragment de cod anumit, dar când
Un microprocesor care are m linii de adresă poate adresa până la 2m cuvinte servirea întreruperii s-a terminat, calculatorul trebuie să se întoarcă în aceeaúi stare
de memorie. Valorile curente pentru m sunt: 16, 20, 24, 32 sau 64. De asemenea, pe care a avut-o înainte de întrerupere. O procedură de tratare a întreruperii cu
dacă dispune de n linii de date poate scrie/citi un cuvânt de memorie de n biĠi într-o această proprietate se spune că este transparentă.
singură operaĠie. Valorile curente pentru n sunt: 8, 16, 32 sau 64. Dacă un calculator are mai multe dispozitive de I/O care pot lucra în paralel,
Exemplu. Un microprocesor care dispune de opt linii de adresă necesită există o probabilitate diferită de zero să apară simultan două cereri de întrerupere
patru operaĠii de citire pentru citirea unui cuvânt de 32 de biĠi. Dacă sau să apară o astfel de cerere atunci când se execută deja una. Pentru a se putea
microprocesorul ar avea 32 de linii de adresă, citirea aceluiaúi cuvânt s-ar face într- face o departajare între toate aceste întreruperi, acestea vor avea ataúat câte un nivel
un singur tact, de unde rezultă că un procesor este cu atât mai rapid cu cât are mai de prioritate. Când un dispozitiv cu prioritatea n generează o întrerupere, rutina de
mare numărul de linii de date. tratare a întreruperii trebuie, de asemenea, să fie executată cu prioritatea n.
În afara liniilor de adresă úi de date, microprocesorul dispune de linii de În timp ce se execută o procedură de tratare a întreruperii cu prioritatea n,
comandă. Acestea permit asigurarea sincronizării, reglării úi comandării orice încercare de a cauza o întrerupere de către un dispozitiv cu o prioritate mai
schimburilor pe magistrală între microprocesor úi mediul extern. mică este ignorată până când rutina întreruperii se termină úi UCP se întoarce la
Semnalele de întrerupere sunt semnale de intrare pentru un microprocesor. programul utilizatorului. Pe de altă parte, tratarea întreruperilor de la un dispozitiv
Ele provin în principal de la circuitele de intrare-ieúire. cu o prioritate mai mare trebuie validată făUă nici o întârziere.
Exemplu. Un microprocesor cere unui circuit de intrare-ieúire (de fapt
perifericului căruia îi este asociat) să efectueze o anumită sarcină, după care îúi
continuă activitatea. În acest timp, perifericul realizează operaĠia cerută la viteza sa 4.2.1. Gestionarea întreruperilor
proprie de execuĠie. După ce sarcina este îndeplinită, perifericul previne circuitul
de I/O (intrare-ieúire) care activează un semnal de întrerupere prin care i se cere Dacă unitatea centrală (UC) a cerut unui circuit de I/O efectuarea unei
microprocesorului o cerere de comunicare. O astfel de cerere de întrerupere poate fi operaĠii, aceasta anunĠă sfârúitul operaĠiei printr-o întrerupere. De asemenea, un
activată, de exemplu, la terminarea unei sarcini sau la apariĠia unei erori. Urmează dispozitiv care doreúte să folosească resursele procesorului semnalizează acest
apoi o secvenĠă de tratare a acestei cereri de întrerupere. lucru către procesor printr-o cerere de întrerupere. O întrerupere implică în
Semnalele care gestionează accesul la magistrală servesc la fluidizarea majoritatea cazurilor o cerere de magistrală.
traficului pe magistrală prin evitarea unor blocări care pot rezulta din utilizarea Într-un sistem real, mai multe dispozitive pot cere simultan întreruperi. Este
simultan de către două circuite a magistralei. deci necesar un sistem de gestionare a cererilor de întrerupere (apare aceeaúi
Unele procesoare au linii speciale de comunicare cu alte procesoare sau cu problemă ca în cazul accesului la magistrală, úi anume care dintre dispozitivele ce au
procesorul secundar (coprocesorul), atunci când situaĠia o cere. Acest lucru se emis cererea urmează să fie servit). O modalitate curentă de soluĠionare a cererilor
poate întâmpla, de exemplu, atunci când este nevoie de un calcul matematic, prin simultane de întrerupere este de a asigna niveluri de prioritate diferite pentru
cedarea controlului coprocesorului matematic. diversele dispozitive úi de a utiliza un circuit arbitru pentru gestionarea acestor cereri.
Structura unui calculator 175 176 ARHITECTURA SISTEMELOR DE CALCUL

Exemplu. Un astfel de circuit este Intel 8259A (controler de întreruperi abordare este relativ rigidă, limitând drastic scalabilitatea (posibilitatea de
utilizat în calculatoarele IBM PC/AT úi PS/2). extindere) a sistemului.
Adăugarea de noi componente este dificilăúi implică modificarea celor deja
INT IR 0 Ceas de sistem existente. Proiectarea unei noi componente implică cunoaúterea în detaliu a
INTA 8259A IR 1 Tastatură funcĠionării celorlalte elemente deja prezente. SoluĠionarea acestei probleme a
RD IR 2 Controler IRQ2 venit din partea firmei Digital Equipment Corporation (DEC), care la sfârúitul
UC WR controler IR 3 COM2/COM4 anilor '60 a lansat pe piaĠă primul calculator (PDP 11), construit în jurul unei
A0 de IR 4 Mouse serial magistrale – magistrala UniBus.
întreruperi Conceptual, magistrala este un mediu comun de comunicaĠie între
CS IR 5 Placa de sunet
D0-D7 IR 6 Floppy disc componentele unui sistem de calcul; fizic este alcătuită dintr-un set de linii de
semnal care facilitează transferul de date úi realizează sincronizarea între
IR 7 Imprimantă
componentele sistemului.
Fig. 4.2. Schema controlerului de întreruperi 8259A. Introducerea conceptului de magistrală a revoluĠionat modul de concepere úi
proiectare a noilor sisteme de calcul. Modelul de calculator bazat pe magistrală a
O cerere de întrerupere se traduce prin activarea intrării asociate fost preluat mai ales de familiile de calculatoare mini úi micro. Prin standardizarea
perifericului. Când una sau mai multe întreruperi ajung la controlerul de magistralelor, sistemele de calcul au devenit deschise, în sensul că un număr mai
întreruperi, acesta anunĠă UC prin linia specială INT (Interrupt), care este legată la mare de producători au avut posibilitatea să realizeze componente pentru o anumită
intrarea de întrerupere a UC. Aceasta răspunde de obicei printr-un semnal de structură de calculator (module de memorie, interfeĠe I/O, echipamente periferice),
validare a întreruperii (de exemplu, INTA = Interrupt Acknowledge). Ca urmare, bazându-se numai pe specificaĠiile magistralei.
controlerul de întreruperi informează UC pe magistrala de date despre dispozitivul În decursul timpului au fost dezvoltate diferite standarde de magistrală, care
care a cerut întreruperea. Unitatea centrală utilizează acest număr pentru a obĠine au urmărit evoluĠia procesoarelor (a unităĠilor centrale) úi a necesităĠilor de
dintr-o tabelă de pointer-i indexată adresa rutinei de întrerupere corespunzătoare. comunicaĠie ale acestora (viteză, mod de transfer, necesităĠi de sincronizare úi
Controlerul de întreruperi conĠine un număr de registre interne care pot fi control etc.). S-au dezvoltat, de asemenea, magistrale specializate pentru anumite
citite sau scrise de către UC cu ajutorul semnalelor RD (Read), WR (Write), CS tipuri de echipamente periferice (SCSI úi EIDE pentru unităĠi de disc, console
(Chip Select) úi A0 (linia 0 de adresă). Toate aceste semnale, la fel ca INT úi INTA, grafice, interfeĠe de măsură úi control). Din acest punct de vedere, în momentul
sunt active pe zero. Prin intermediul registrelor, UC comunică controlerului de actual se pot distinge două clase de magistrale:
întreruperi disponibilitatea de a trata o nouă cerere de întrerupere sau poate  magistrale de sistem – dezvoltate mai ales pentru conectarea unităĠii
programa controlerul să funcĠioneze într-un mod particular, de exemplu să centrale la celelalte componente de bază ale sistemului (de exemplu:
mascheze întreruperile pe o anumită intrare. Dacă se dispune de mai multe MultiBus, ISA, EISA, PCI);
controlere de întrerupere, acestea se pot conecta în cascadă. Rezultă un avantaj:  magistrale specializate – care încearcă să optimizeze transferul de date
dacă sunt necesare mai mult de opt linii de întrerupere, atunci se poate crea o cu un anumit tip de echipamente periferice (VESA, AGP, SCSI, GPIB).
structură pe două niveluri, care conĠine un 8259A la ale cărui intrări sunt legate ApariĠia úi evoluĠia ulterioară a microprocesoarelor a consacrat modelul de
ieúirile de întreruperi ale altor opt circuite 8259A. Se creează astfel posibilitatea calculator bazat pe magistrală. ConfiguraĠia semnalelor unui microprocesor este
tratării a 64 de linii de întrerupere. astfel concepută încât să permită conectarea uúoară la o magistrală de sistem. În
general, fiecare familie de microprocesoare (Intel 8086, Z80, MC 68000) a impus o
anumită structură úi un anumit standard de magistrală. Există însă anumite
caracteristici comune acestor magistrale (principii de transfer, tipuri de semnale),
4.3. Magistrala astfel încât modulele proiectate pentru un tip de magistrală să poată fi, prin
modificări minime, conectabile altor magistrale.
4.3.1. Conceptul de magistrală S-au introdus noi principii de transfer care compensează într-o oarecare
Păsură limitările de viteză impuse de legile fizicii de transmitere a semnalelor
În modelul maúinii von Neumann, comunicaĠia dintre componentele electrice. Cele mai reprezentative dintre acestea sunt transferul concurent prin
sistemului se realizează prin legături dedicate între perechi de componente. Această tranzacĠii úi prelucrarea pipe-line a cererilor de transfer.
Structura unui calculator 177 178 ARHITECTURA SISTEMELOR DE CALCUL

4.3.2. Elemente definitorii ale magistralei Semnale de control al accesului – sunt utilizate pentru arbitrajul úi
controlul accesului pe magistrală (în cazul magistralelor multimaster), fiind
O magistrală se compune dintr-un set de semnale úi un set de reguli generate de un circuit specializat (arbitru de magistrală).
constituite într-un protocol, care guvernează transferul de informaĠii úi accesul la Numărul úi semnificaĠia particulară a semnalelor depind de tipul úi destinaĠia
mediul de comunicaĠie. InformaĠiile transferate pot fi: date, instrucĠiuni úi magistralei. Anumite grupe de semnale din cele prezentate pot să lipsească (de
informaĠii de control úi sincronizare. exemplu, semnalele de control) sau altele noi pot fi adăugate (semnalele de eroare,
Protocolul se referă la: semnalele de control al lăĠimii datelor transferate pe 8 sau pe 16 biĠi etc.).
 caracteristicile mecanice: tip de conectori, număr de conectori alocaĠi pentru Magistralele pot fi clasificate în funcĠie de mai multe criterii.
un slot, formatul modulelor de extensie ataúabile, sertar úi fund de sertar I. modul de lucru (în raport cu semnalul de tact):
(rack úi cablajul din spatele acestuia – această structură fiind specifică  magistrale sincrone – la care ciclurile de transfer sunt direct corelate cu
magistralelor industriale); semnalul de tact. Viteza de transfer este mai mare, însă rata de transfer a
 caracteristicile electrice ale componentelor conectate pe magistrală: niveluri magistralei este limitată de frecvenĠa tactului. Datorită vitezei limitate de
de tensiune, curenĠi, încărcare, frecvenĠă de lucru, rată de transfer; propagare a semnalului electric, creúterea ratei ar duce la diferenĠe de
 secvenĠa de generare a semnalelor necesare pentru efectuarea unui transfer; fază la capetele magistralei.
 timpii limită pentru diferitele faze ale unui transfer úi timpii de menĠinere a  magistrale asincrone – la care nu există o legătură directă între evoluĠia
unui anumit semnal; în timp a unui ciclu de transfer úi tactul sistemului. Majoritatea
 intercondiĠionările funcĠionale úi temporale între diferitele tipuri de semnale. magistralelor actuale lucrează pe acest principiu (de exemplu, ISA,
EISA, MultiBus etc.).
În accepĠiunea clasică, o magistrală se compune din următoarele tipuri de II. numărul de module master conectate pe magistrală:
semnale.  magistrale unimaster – există un singur modul master pe magistrală.
Semnale de date – sunt semnale bidirecĠionale utilizate pentru transferul de Nu necesită mecanisme de arbitraj al magistralei (un modul master poate
date úi instrucĠiuni. La un moment dat doar un singur dispozitiv poate să emită pe iniĠia un ciclu de transfer, pe când un modul slave poate fi comandat în
liniile de date; numărul liniilor de date (8, 16, 32, 64) determină dimensiunea timpul unui ciclu de transfer, neavând elementele necesare pentru a
maximă a cuvântului de date care poate fi transferat la un moment dat úi, implicit, prelua controlul magistralei).
viteza medie de transfer a magistralei.  magistrale multimaster – permit conectarea mai multor module master
Semnale de adresă – sunt utilizate pentru specificarea adresei modulului pe acelaúi tronson de magistrală. Magistrala trebuie să conĠină semnale
destinaĠie sau sursă de date, numărul de linii de adresă determinând spaĠiul maxim
de arbitraj úi un protocol de transfer al controlului pe magistrală (de
de adresare permis de magistrală (de exemplu, 24 linii de adresă determină un exemplu, MultiBus, VME).
spaĠiu de adresare de 224 =16 MlocaĠii). III. modul de realizare al transferului de date:
Semnale de comandă – sunt semnale unidirecĠionale generate de CPU (sau
 magistrale cu transfer prin cicluri (magistrale secvenĠiale) – regula
de către alt dispozitiv master), utilizate pentru specificarea direcĠiei de transfer (de
de bază: ciclurile de transfer se desfăúoară secvenĠial, la un moment dat
exemplu, semnale de citire sau scriere pentru CPU) úi a tipului de modul adresat
cel mult un ciclu de transfer fiind în curs de desfăúurare. Majoritatea
(de memorie sau modul I/O, de memorie program, controler de întrerupere etc.).
magistralelor folosesc acest principiu de transfer. În funcĠie de direcĠia
Semnale de control – sunt semnale de utilizate pentru reglarea condiĠiilor de
de transfer se disting úase cicluri semnificative:
transfer al datelor (temporizarea deschiderii úi închiderii amplificatoarelor de
 cicluri de citire (respectiv scriere) din/în memorie;
magistrală pentru semnalele vehiculate pe aceasta).
 cicluri de citire (respectiv scriere) de la/la un port intrare-ieúire;
Semnale de întrerupere – sunt generate de un controler dedicat, permit
 cicluri de acces direct la memorie (citire/scriere);
semnalizarea unor evenimente interne sau externe úi implicit determină
 magistrale tranzacĠionale – transferul de date se efectuează prin
întreruperea execuĠiei programului curent.
tranzacĠii. O tranzacĠie este divizată în mai multe faze. Mai multe
Semnale de tact (de ceas) – sunt generate de un oscilator cu cuarĠ, fiind
folosite pentru sincronizare úi pentru generarea unor semnale de frecvenĠă tranzacĠii se pot desfăúura simultan, cu condiĠia ca tranzacĠiile să fie în
faze diferite; această restricĠie provine din faptul că fiecare fază a unei
programabilă.
tranzacĠii foloseúte un subset din mulĠimea semnalelor magistralei.
Linii de alimentare – sun generate de sursa de tensiune a sistemului, fiind
folosite pentru alimentarea modulelor sistemului. Teoretic, la aceste magistrale factorul de creútere a vitezei (în comparaĠie
Structura unui calculator 179 180 ARHITECTURA SISTEMELOR DE CALCUL

cu o magistrală secvenĠială) este egal cu numărul de faze în care se


divide 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 de
I/O etc.). Se folosesc, de asemenea, în anumite sisteme dedicate bazate
pe microcontrolere, la care costul úi dimensiunea redusă sunt parametri
definitorii. Cu toate că viteza de lucru este mai mică decât la
magistralele paralele, în ultimul timp sunt tot mai utilizate (de exemplu,
magistralele USB, SATA, SAS, PCIExpress etc.).
 magistrale paralele – sunt folosite datorită vitezei de lucru ridicate,
transferurile de date 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: Fig. 4.3. ConfiguraĠii cu magistrale pentru comunicarea procesor-memorie úi trafic I/O:
 pot avea multe dispozitive I/O conectate (direct sau prin canale I/O a. doar magistrala backplane; b. magistrala de tip procesor-memorie + magistrale I/O; c. toate tipurile.
supervizate de procesoare specializate);
 universale; Caracteristicile constructive ale unei magistrale sunt influenĠate de cerinĠele úi
 lungi; particularităĠile funcĠionale ale procesorului pentru care a fost concepută. Acest fapt
 mai lente decât magistralele procesor-memorie; vine în contradicĠie cu ideea de sistem deschis, conform căreia mediul de
 nu sunt legate direct la memorie, ci prin magistrale procesor-memorie comunicaĠie între componentele unui sistem trebuie să fie independent de producător.
ori magistrale de fundal (backplane) Firmele dominante în domeniul construcĠiei de calculatoare úi-au dezvoltat propriile
III. Magistrale backplane (originar folosite la placa de bază): standarde de magistrală adaptate familiilor de procesoare pe care le produc.
 permit acces simultan la procesor, memorie, dispozitive I/O; Exemple. DEC – UniBus, Intel – MultiBus, IBM – PC Bus HP – GPIB etc.
 sunt reutilizabile (bune pentru diverse configuraĠii); Unele din aceste magistrale sunt deschise, în sensul că standardul este
Magistralele I/O necesită o interfaĠă simplă, pe când cele backplane accesibil úi utilizabil liber de orice producător; altele au fost patentate úi au
necesită o logică suplimentară la interfaĠă. În schimb, avantajul magistralelor restricĠii de utilizare, de exemplu magistrala MicroChannel (MCA) a firmei IBM,
backplane este că acestea conĠin singure toate conexiunile. Se pot crea conexiuni folosită în construcĠia calculatoarelor PS/2. Există úi standarde dezvoltate de
complexe, ca în figura 4.3 (în cazul folosirii unor tipuri multiple de magistrale, grupuri de producători cu interese apropiate. Astfel au apărut standardele Camac,
trebuie utilizate adaptoare de magistrale pentru interconectare). Figura 4.3 conĠine FastBus, FutureBus, NuBus, Can etc.
configuraĠii cu magistrale pentru comunicarea procesor-memorie úi trafic I/O: În cazul acestor magistrale se pune problema asigurării interoperabilităĠii úi
(a) o singură magistrală backplane: folosită la PC-urile vechi; compatibilităĠii între module realizate de diverúi producători. Metoda de eliminare
(b) o magistrală procesor-memorie de tip PCI (bus backplane), care are a unor astfel de probleme este supunerea componentelor la teste de conformanĠă.
conexiuni SCSI cu magistrale I/O: folosită la PC-urile noi; Cele mai cunoscute foruri internaĠionale de standardizare care au activitate în
(c) ca la (b), plus o magistrală separată pentru traficul procesor-memorie: domeniul magistralelor sunt IEEE, ANSI úi IEC.
folosită la sistemele multiprocesor SiliconGraphics. Câteva din cele mai cunoscute tipuri de magistrale sunt prezentate în tabelul 4.1.
Structura unui calculator 181 182 ARHITECTURA SISTEMELOR DE CALCUL

Tabelul 4.1 În domeniul PC-urilor, s-au dezvoltat mai multe magistrale care au devenit
Tipuri de magistrale standarde de facto înainte ca acestea să fie propuse pentru standardizare formală:
ISA, EISA, VESA, PCI, SCSI, AGP etc.
Standard Nume Domenii După cum s-a arătat, o magistrală (bus) este o structură de interconectare (un
IEEE uzual de utilizare
ansamblu de linii de comunicaĠii) între mai multe circuite sau unităĠi ale unui
488 GPIB Instrumente de laborator calculator. Un PC are diferite tipuri de magistrale, între care se află următoarele:
583, 596, 683 Camac AchiziĠie de date úi instrumentaĠie
magistrala procesorului, magistrala de adrese, magistrala memoriei, magistrala I/O.
Exemple. Camac (fizică nucleară), FastBus (fizica energetică), OmniBus
696 S 100 Microsisteme de dimensiune medie (PDP-8), UniBus (PDP-11), MassBus (VAX úi PDP-11), MegaBus (Moneywell),
796, P1296 MultiBus I, II Microsisteme de dimensiune medie MicroChannel (PS/2), NuBus (MacIntosh 2), VersaBus (Motorola), VME
(Motorola 680x0), MultiBus 1 (INTEL 8086), MultiBus 2 (INTEL 80386), ISA sau
P896 FutureBus Sisteme multiprocesor ATBus (INTEL 80286), EISA (INTEL 80386), MCA (IBM, 80386), VLBus
P996 PC Bus Calculatoare personale (VESA, 80486), PCI (Pentium), FireWire (IEEE 1394) etc.
P1014 VME Bus Sisteme microprocesor performante
(cu Motorola 68000)
4.3.4. Magistrala procesorului
P1196 NuBus Sisteme multiprocesor
Magistrala procesorului este calea de comunicaĠie între CPU úi cipurile cu
– UniBus Minicalculatoare PDP 11
care lucrează direct. Această magistrală este folosită pentru a transfera date, de
– QBus Minicalculatoare VAX exemplu între CPU úi memoria cache externă. Cele mai multe sisteme au un cache
– SCSI Periferice (HD, bandă, CD-ROM) extern pentru CPU; aceste memorii cache sunt în general folosite în toate sistemele
care utilizează cipuri 486, Pentium, Pentium Pro sau ulterioare.
Deoarece scopul magistralei procesorului este transmiterea úi primirea
În cadrul unui sistem de calcul pot să coexiste mai multe tipuri de standarde, datelor de la CPU cu cea mai mare viteză posibilă, această magistrală lucrează la o
specializate pe transferul de date între anumite tipuri de componente de sistem. viteză mult mai mare decât orice altă magistrală din sistem: aici nu există
Astfel, se poate utiliza o magistrală de mare viteză pentru transferul între procesor strangulări. Magistrala este compusă din linii de semnal utilizate pentru date,
úi memorie, o magistrală cu acces multiplu (multimaster) pentru unele periferice de pentru adrese úi pentru comenzi.
mare viteză (disc, interfaĠă video) úi o magistrală de mică viteză pentru perifericele Exemple.
lente. În aplicaĠiile de control se mai poate adăuga úi o magistrală de 1. Într-un sistem 486, magistrala procesorului este compusă din 32 de linii
instrumentaĠie, adaptată pentru culegerea datelor de proces. de adrese, 32 de linii de date úi câteva linii de comandă.
Pentru a satisface o gamă largă de cerinĠe, s-au dezvoltat familii de 2. Magistrala procesorului dintr-un sistem Pentium are 64 de linii de date,
magistrale care cuprind mai multe variante ale unei magistrale de bază úi sunt 32 de linii de adrese úi linii de comandă asociate.
compatibile între ele într-o oarecare măsură (interfeĠele dezvoltate pentru aceste 3. Sistemul Pentium Pro are 36 de linii de adrese, iar în rest are o magistrală
variante necesită modificări minore pentru compatibilizare). similară cu cea a sistemului Pentium.
În prezent există mai multe astfel de familii de magistrale: Magistrala procesorului lucrează la aceeaúi frecvenĠă cu cea a ceasului de
 magistrale dezvoltate pentru calculatoare DEC – UniBus, QBus úi VAXBI; bază ca CPU în exterior. Acest lucru poate conduce la concluzii greúite deoarece
 magistrale dezvoltate pentru procesoarele Intel – MultiBus I, MultiBus II cele mai multe procesoare actuale utilizează o frecvenĠă de lucru internă mult mai
úi extensii ale acestora; mare decât a oricărei magistrale din sistem.
 magistrale inspirate de structura seriei de procesoare Motorola – Exemplu. Un sistem Pentium 100 are un procesor Pentium care lucrează
magistralele VME; intern la 100 MHz, dar în exterior lucrează la numai 66,6 MHz. Aceeaúi frecvenĠă
 magistrale de instrumentaĠie – familia GPIB (dezvoltată de Hewlett externă de lucru (66,6 MHz) o au úi procesoarele Pentium 133, Pentium 166 úi
Packard), IEEE488 úi Camac. chiar Pentium Pro 200. În cele mai multe dintre noile sisteme, frecvenĠa reală de
lucru a procesorului este un multiplu (de 1,5 ori, de 2 ori, de 2,5 ori, de 3 ori etc.) al
frecvenĠei magistralei procesorului.
Structura unui calculator 183 184 ARHITECTURA SISTEMELOR DE CALCUL

Magistrala procesorului este legată la pinii procesorului úi poate transfera un b) În cazul procesoarelor cu cache L2 integrat în procesor (Intel P3 úi
bit de date pe o linie de date la fiecare perioadă sau la două perioade ale ceasului. Celeron pe socket 370 úi P4 toate variantele, respectiv, AMD Athlon pe socket A,
Astfel, un sistem 486 poate transfera 32 biĠi de date simultan, în timp ce un sistem 754, 939, 940), BSB-ul a dispărut, nemaifiind necesar.
Pentium sau Pentium II poate transfera 64 biĠi de date la un moment dat. Combinând a) úi b), rezultă că nu este corect să se folosească termenul de
Pentru a determina viteza de transfer pe magistrala procesorului se FSB în cazul procesoarelor actuale, termenul mai potrivit fiind Processor Side Bus
multiplică lăĠimea datelor (32 de biĠi pentru 486 sau 64 de biĠi pentru Pentium úi (PSB) sau System Side Bus (SSB), iar în cazul procesoarelor Opteron/Athlon64
Pentium II) cu frecvenĠa ceasului magistralei (aceeaúi cu frecvenĠa ceasului de bază nici măcar termenul PSB nu este corect, legătura dintre procesor úi northbridge
al procesorului). fiind de tip punct-la-punct (point-to-point).
Exemplu. Un cip Pentium de 66/100/133/166/200 MHz care rulează la 66
MHz poate transfera un lot de date la fiecare perioadă de ceas pe fiecare linie de 4.3.4.1. Conectarea la magistrală
date. Se obĠine astfel o viteză maximă instantanee de transfer de 528 MB pe Majoritatea circuitelor logice nu dispun la ieúire de amplificatoare capabile să
secundă. Acest rezultat derivă din următoarea formulă: 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).
66 MHz  64 biĠi = 4.224 megabiĠi/secundă; Pentru transmitere se utilizează circuitele amplificatoare de putere numite driver-e.
4.224 megabiĠi/secundă : 8 = 528 MB/secundă. La recepĠie este necesară utilizarea unui receptor de tip Trigger-Schmidt care
reface semnalul degradat din cauza capacităĠii limitate a liniei de transmisiune sau
Această viteză de transfer, adesea numită Oărgime de bandă a magistralei, a eventualelor zgomote. De multe ori, un circuit poate să transmită úi în acelaúi
reprezintă o valoare maximă. Ca toate valorile maxime, această viteză nu reprezintă timp să fie receptor, rezultând că pentru interfaĠarea cu magistrala sistemului
Oărgimea de bandă în funcĠionarea normală; va rezulta o valoare medie mai scăzută trebuie utilizate circuite mixte numite transceiver-e (transmitter + receiver).
a vitezei transferului de date. AlĠi factori de limitare, cum ar fi proiectarea setului Din punctul de vedere al stărilor logice, circuitele de conectare la magistrală
de cipuri, viteza memoriei úi altele, contribuie la scăderea lărgimii de bandă sunt circuite cu trei stări, în care a treia stare (stare flotantă) permite acestora să fie
efective. deconectate logic când se află în repaus. Un alt tip de circuit de conectare este
Între unităĠile sau circuitele conectate la magistrală se disting unităĠi de tip circuitul cu colectorul în gol (realizează funcĠia SAU-cablat).
master, care au iniĠiativa comunicării pe magistrală, úi unităĠi de tip slave, care
Uăspund la iniĠiativa de comunicare a masterului. 4.3.4.2. Magistralele sincrone
Exemple. Perechi master-slave: UC – memorie (acces la instrucĠiuni úi la Din punctul de vedere al cadenĠei schimbului de date care are loc pe
date); UC – port I/O (transfer de date); UC – coprocesor (tratarea instrucĠiunilor în magistrală există arhitecturi sincrone úi asincrone.
virgulă mobilă ); dispozitive I/O – memorie (accesul la operanzi) etc. Magistrala sincronă dispune de o linie de ceas comandată de un oscilator cu
În cazul procesoarelor moderne, comunicaĠia cu cipurile externe procesorului cuarĠ. Toate operaĠiile de pe o magistrală sincronă sunt efectuate într-un număr
a introdus noĠiunile de magistrale FSB, BSB úi PSB întreg de perioade de ceas.
a) În cazul procesoarelor cu memorie cache L2 (L3, în cazul procesoarelor K6- Exemplu. În figura 4.4 este prezentat modul de lucru al magistralei sincrone
2+ úi K6-3) care nu se află în interiorul procesorului (exemple tipice fiind în cazul operaĠiei de citire a unui cuvânt din memorie.
procesoarele pe socket 7, slot 1 úi slot A), legătura dintre acesta úi northbridge poartă NotaĠii folosite:
denumirea de magistrală FSB (Front Side Bus), iar frecvenĠa de bază a acesteia Ø – semnal de ceas real (un ciclu de ceas TC = 250 ns);
înmulĠită cu multiplicatorul dă frecvenĠa de lucru a procesorului. Între procesor úi MREQ – cerere acces memorie (Memory Request);
memoria cache L2 conexiunea se face prin magistrala BSB (Back Side Bus), o RD – citire (Read);
magistrală de memorie care funcĠionează fie la frecvenĠa FSB (la procesoarele pe TML – timp de stabilire a adreselor înainte de MREQ (> 60 ns; la o frecvenĠă de ceas
socket 7), fie la jumătate din frecvenĠa procesorului (la procesoarele Intel pe slot 1), 4 MHz se acceptă un timp de creútere de 10 ns);
fie între 1/3 úi 1/2 din frecvenĠa procesorului (la procesoarele AMD pe slot A). TM – activarea semnalului MREQ faĠă de frontul descrescător în ciclul T1 (< 85 ns);
Exemplu. Un FSB pe 32 de biĠi, operând la o frecvenĠă de 100 MHz úi care TRL – activarea semnalului RD faĠă de frontul descrescător în ciclul T1 (< 85 ns);
realizează 4 transferuri pe ciclu, are o lărgime de bandă de 1.600 MB/s. TDS – date disponibile înainte de frontul descrescător în ciclul T3 (> 50 ns);
Producătorii specifică viteza FSB-ului în MT/s (Mega Transfers per second). Dacă TMH – tranziĠia semnalului MREQ după frontul descrescător în ciclul T3 (< 85 ns);
o placă de bază are un FSB cu frecvenĠa de tact de 266 MHz úi realizează 4 TRH – tranziĠia semnalului RD faĠă de frontul descrescător în ciclul T3 (< 85ns);
transferuri pe ciclu de ceas, FSB-ul certificat este de 1.066 MT/s. TDH – menĠinerea datelor după ridicarea semnalului de date (după comutarea lui RD, > 0).
Structura unui calculator 185 186 ARHITECTURA SISTEMELOR DE CALCUL

T1 T2 T3 citire. Stările de wait, care sunt generate de surplusul de viteză a procesorului în


comparaĠ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 de
ADDR ADRESĂ CUVÂNT vedere al vitezei de lucru, datorată faptului că o operaĠie care durează 3,1
perioade de ceas va fi realizată în 4 perioade de ceas, chiar dacă
memoria poate să răspundă mai repede;
2. magistrala sincronă evoluează dificil odată cu procesul tehnologic de
realizare a componentelor, datorită faptului că prin utilizarea unor
DATE DATE memorii de viteză mai mare nu se poate reduce durata unei operaĠii de
citire-scriere până când nu este modificată frecvenĠa ceasului care
TM TDS guvernează magistrala.
Concluzie. Pentru a conecta în mod optim un ansamblu de circuite la
magistrală, este preferată arhitectura asincronă.
MREQ TML
TMH 4.3.4.3. Magistralele asincrone

În acest caz, nu este necesară existenĠa unui semnal de ceas care să


RD supervizeze transferul. Deci, durata unei operaĠiuni pe magistrală este variabilă, în
TRL TRH funcĠie de performanĠele circuitelor utilizate.
TDH Exemplu. În figura 4.5 este prezentat modul de lucru al magistralei
asincrone în cazul operaĠiei de citire a unui cuvânt din memorie.
Fig. 4.4. Schema accesului la magistrala sincronă.

Începutul ciclului T1 este marcat de frontul crescător al semnalului Ø. În ADDR ADRESĂ CUVÂNT
prima parte a ciclului T1 procesorul plasează pe magistrala de adrese adresa care se
doreúte a fi citită din memorie. PoziĠionarea adresei pe magistrală corespunde
activării mai multor semnale binare care formează adresa. După stabilirea adresei MREQ
pe magistrală, devin active semnalele MREQ úi RD. MREQ indică prin activarea RD
sa că se efectuează un acces la memorie úi nu un acces la dispozitivele I/O. RD
defineúte prin activarea sa o operaĠie de citire din memorie.
În timpul ciclului T2 nu are loc nici o modificare pe magistrală pentru a MSYN
permite memoriei decodificarea adresei de pe magistrala de adrese úi poziĠionarea
informaĠiei cerute pe magistrala de date.
În timpul ciclului T3, pe frontul descrescător al semnalului de ceas, DATE DATE
microprocesorul capteazăúi înregistrează într-un registru intern informaĠia prezentă
pe magistrală. Odată terminată această operaĠiune, procesorul pune în repaus
semnalele MREQ úi RD (le ridică în 1). SSYN
Dacă este nevoie mai departe de o altă operaĠie de citire sau scriere, aceasta
poate începe pe frontul crescător al următorului ciclu de ceas. Dacă memoria nu Fig. 4.5. Schema accesului la magistrala asincronă.
este 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
Structura unui calculator 187 188 ARHITECTURA SISTEMELOR DE CALCUL

MSYN (Master Synchronisation) úi SSYN (Slave Synchronisation) sunt Figura 4.6 ilustrează două pipeline-uri de adresare de citire úi scriere, împreună
semnalele de sincronizare care asigură respectarea ordinii diverselor momente din cu fazele de citire úi scriere a datelor. Master A úi B reprezintă starea fiecărei adrese
operaĠiunea de citire. De obicei, master este UC úi slave este memoria. master. PLB arbitrează între aceste cereri úi trimite cererea masterului selectat la
După ce adresa cuvântului este depusă pe magistrala de adrese de către UC úi magistrala de adrese a PLB slave. Urma cu eticheta „faza de adresare” arată starea
după ce semnalele MREQ úi RD devin active, UC activează semnalul MSYN care magistralei de adrese a slave-ului PLB de-a lungul fiecărui tact PLB.
comunică memoriei începerea operaĠiei de citire.
Memoria efectuează citirea la viteză proprie, iar după depunerea pe
magistrală a informaĠiei cerute activează semnalul SSYN. Acest semnal informează
procesorul că datele cerute sunt valide pe magistrală. Procesorul încarcă datele în
registrele interne, după care dezactivează semnalele MREQ, RD úi MSYN.
Dezactivarea lui MSYN este sesizată de memorie, care pune în repaus SSYN úi
eliberează magistrala de date. Astfel s-a ajuns din nou la starea iniĠialăúi rezultă că
poate începe o altă operaĠie pe magistrală.
Ansamblul semnalelor de mai sus, cu ajutorul cărora se efectuează transferul
datelor, corespunde tehnici full handshake (tehnica acordului confirmat), care
include următoarele operaĠii:
 activarea lui MSYN;
 activarea lui SSYN ca răspuns la MSYN; Fig. 4.6. Exemplu de protocol de transfer PLB.
 dezactivarea lui MSYN ca răspuns la SSYN;
 dezactivarea lui SSYN ca răspuns la MSYN. $úa cum se arată în figura 4.6, specificaĠiile PLB acceptă implementările în
ObservaĠie. Această tehnică este total independentă de timp. Fiecare care aceste trei faze pot solicita numai un singur ciclu de ceas PLB. Acest lucru se
eveniment din succesiune este cauzat de evenimentul precedent. De aceea întâmplă atunci când masterului solicitant îi este acordat imediat accesul la
dispozitivele conectate la o magistrală asincronă pot fi uúor înlocuite cu altele mai magistrala slave úi unitatea slave confirmă adresa de-a lungul aceluiaúi ciclu. Dacă
performante, pe măsură ce tehnologia avansează. În consecinĠă, avantajul folosirii un master trimite o cerere care nu poate fi imediat trimisă la magistrala slave, faza
magistralei asincrone apare evident în comparaĠie cu magistrala sincronă. de cerere poate dura unul sau mai multe cicluri.
Pe o magistrală sincronă UC îúi poziĠionează semnalele, iar memoria sau Procesorul de magistrală locală de 128 de biĠi a apărut în mai 2007.
circuitele I/O nu fac altceva decât să răspundă solicitărilor UC făUă a fi necesară o PLB oferă o interfaĠă standard între nucleele procesorului úi controlerele
sincronizare cu aceasta. Astfel, simplitatea magistralei sincrone constă în lipsa integrate ale magistralei. Cu PLB, poate fi dezvoltată o bibliotecă a nucleelor
semnalelor MSYN úi SSYN. procesorului úi controlerelor magistralei pentru utilizare úi aplicare în nucleu, sub
formă de circuite integrate specifice (numite Core + ASIC) úi modele system-on-a-
4.3.4.4. Transferul datelor pe magistrala locală a procesorului (PLB) chip (SOC).
TranzacĠiile pe magistrala locală a procesorului, PLB (Processor Local Bus), În plus, PLB este o magistrală de mare performanĠă on-chip care este folosită
constau în mai multe faze de adresare úi date. În funcĠie de nivelul de activitate a în sistemele integrate Core + ASIC. PLB sprijină citirea úi scrierea, transferuri de
magistralei úi capacitatea slave PLB, acestea pot dura unul sau mai multe cicluri de date între dispozitivele master úi slave care sunt dotate cu o interfaĠă de magistrală
magistrală PLB. De asemenea, pipeline-ul de adresare úi livrarea datelor úi PLB úi sunt conectate prin semnale ale PLB.
adreselor separate sunt îmbunăWăĠite prin modul în care aceste faze sunt gestionate. Fiecare master PLB este anexat prin magistrale de adresare diferite,
TranzacĠia de adresare conĠine 3 faze: cerere, transfer úi confirmare de adresare. O magistrale de citire de date, magistrale de scriere de date úi semnale de transfer.
tranzacĠie PLB începe când un master adună adresele sale úi transferă semnalele în Slave-urile PLB sunt ataúate la PLB prin magistrale de adrese puse în comun, dar
vedere obĠinerii dreptului asupra magistralei în timpul fazei de cerere. Odată ce decuplate, magistrale de citire, magistrale de scriere, control al transferului úi starea
arbitrul PLB oferă dreptul asupra magistralei, adresa masterului este prezentată la semnalelor pentru fiecare magistrală de date.
dispozitivele slave în timpul fazei de transfer. Ciclul de adresare se termină când un PLB este o magistrală complet sincronă. O singură sursă de ceas prevede
slave încheie adresa masterului úi transferă datele în timpul fazei de confirmare a timing-ul pentru toate semnalele de PLB. Toate unităĠile master úi slave care sunt
adresei. anexaĠi la PLB folosesc acest ceas ca sursă.
PLB se diferenĠiază prin următoarele caracteristici de performanĠă:
Structura unui calculator 189 190 ARHITECTURA SISTEMELOR DE CALCUL

 transferurile de citire úi scriere se suprapun pentru a permite două Linia de acordare a magistralei traversează în serie cele cinci circuite de I/O
transferuri de date per ciclu pentru maximizarea folosirii magistralei; (pe această linie dispozitivele I/O sunt aúezate în cascadă). Când primul circuit I/O
 magistrale decuplate pentru adresare úi date susĠin capacitatea de recepĠionează acordarea magistralei, el cunoaúte dacă are sau nu nevoie de
divizare a tranzacĠiilor pentru o lăĠime de bandă mai bună; magistrală, adică dacă a formulat cererea de acces sau nu. Dacă are nevoie, el acceptă
 protocolul de suprapunere a cererii de magistralei úi protocolul de oferire magistrala úi preia controlul ei, iar dacă nu, permite propagarea semnalului de
a dreptului magistralei reduc întârzierile cauzate de arbitraj; acordare mai departe, către circuitul următor. Prioritatea scade de la stânga spre
 PLB este o magistrală complet sincronă. dreapta (prioritatea este direct proporĠională cu apropierea de arbitru).
În cele ce urmează se va prezenta o variantă care permite existenĠa mai
4.3.4.5. Arbitrajul magistralei multor niveluri de prioritate. Aceasta va cuprinde două niveluri de ierarhizare:
Până acum s-a considerat că există un singur master pe magistrală. În primul cuprinde circuitele 1 úi 2, iar cel de-al doilea cuprinde circuitele 3, 4 úi 5.
realitate, în cele mai multe cazuri există mai multe dispozitive I/O care pot cere Astfel, rezultă două linii de acordare a magistralei.
simultan accesul la memorie, ceea ce conduce la necesitatea introducerii unor Pentru fiecare nivel de prioritate există o linie de cerere de magistrală úi o
reguli de arbitraj. linie de acordare de magistrală. Dispozitivele I/O pot fi repartizate în diferite
Arbitrajul magistralei se poate realiza în două variante: moduri pe nivelurile de prioritate (fig. 4.8).
 structura centralizată, în care există fizic un arbitru;
 structura descentralizată, în care fizic nu există un arbitru de magistrală, BUS REQUEST 1
dar care implementează funcĠiile acestuia. arbitru BUS REQUEST 2
Structura centralizată
Algoritmul 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 BUS
REQUEST, iar arbitrul le răspunde prin linia de acordare a magistralei (BUS 1 2 3 4 5
GRANT).
Circuitele I/O care pot deveni master sunt legate printr-un SAU cablat la BUS GRANT 1
linia de cerere de magistrală BUS REQUEST. Când cel puĠin unul dintre circuite BUS GRANT 2
cere accesul la magistrală, arbitrul este sesizat, iar când este posibil (când
Fig. 4.8. Repartizarea dispozitivelor I/O pe nivele de prioritate.
magistrala este liberă) acesta acordă accesul la magistrală printr-o linie de acordare
a magistralei (BUS GRANT), astfel încât arbitrul nu vede decât o singură cerere, O altă variantă ar fi următoarea: în unele scheme de arbitraj poate fi folosită o
chiar dacă mai multe circuite cer accesul (vezi figura 4.7). linie care specifică starea BUS BUSY (ocuparea magistralei), activată de unitatea ce
preia controlul magistralei. Odată ce linia de ocupare a magistralei a fost activată, se
BUS REQUEST
dezactivează cererea de acces la magistrală, aceasta permiĠând altor unităĠi să ceară
arbitru accesul în timpul transferului de date pe magistrală úi, mai mult chiar, permiĠând
arbitrului de magistrală să facă o preselecĠie a unităĠii care are prioritate. Astfel, odată
ce transferul de date pe magistrală a luat sfârúit, magistrala este eliberatăúi unitatea
preselectată preia controlul magistralei (această tehnică este mai eficientă). De obicei,
această variantă cu preselecĠie úi BUS BUSY este folosită la magistralele Motorola.
1 2 3 4 5
Algoritmul cu cereri independente. Acest algoritm reprezintă cel mai
general caz de arbitraj al magistralei, dar din punct de vedere hardware este greu de
implementat. Fiecare dispozitiv emite o cerere de bus independentă către arbitru.
Acesta răspunde pe linii separate dispozitivelor. Dispozitivul care primeúte răspuns
BUS GRANT Dispozitive I/O afirmativ poate folosi magistrala. Logica de acordare a magistralei este
Fig. 4.7. Algoritmul cu priorităĠi statice (daisy chain). implementată în arbitru.
Figura 4.9. prezintă un exemplu de schemă de arbitraj cu cereri independente.
Structura unui calculator 191 192 ARHITECTURA SISTEMELOR DE CALCUL

1 2 m 1 2 m

BG 1 log2m linii
BR 1 de interogare

confirmare
BG 2 arbitru
ACK
BR 2
arbitru
BUS REQUEST

BG m BUS
BR m
ACK
Fig. 4.10. Algoritmul cu interogare ciclică (polling).

BUS
În majoritatea sistemelor de calcul, unitatea centrală trebuie să negocieze
accesul la magistrală în acelaúi mod cu celelalte unităĠi. În general, unitatea centrală
are prioritatea cea mai scăzută; ea utilizează magistrala doar când nici un alt circuit
Fig. 4.9. Algoritmul cu cereri independente. nu are nevoie de ea. Aceasta permite circuitelor I/O să realizeze transferul de date
atunci când este necesar, făUă să apară pericolul de pierdere a datelor.
NotaĠiile folosite:
BR = linia de cerere de magistrală (BUS REQUEST); Structura descentralizată
BG = linia de acordare a magistralei (BUS GRANT); În această structură nu există un arbitru veritabil de magistrală (circuit fizic),
ACK = linia de confirmare (ACKnowledge) ci fiecare unitate îúi gestionează singură accesul la magistrală realizând o parte din
BUS = magistrala. funcĠiile arbitrului.
Exemplu. La sistemele VAX, există 16 niveluri de prioritate úi fiecăruia îi
Algoritmul cu interogare ciclică (polling). Există log2m linii de interogare este asociată o linie de cerere de magistrală (sistemul poate accepta maximum 16
pentru cele m dispozitive. Dispozitivele sunt prevăzute cu câte un decodor pentru a unităĠi, potenĠiali master de magistrală).
recupera codul de interogare. Dispozitivul care îúi recunoaúte codul de interogare Când o unitate doreúte să utilizeze magistrala, ea activează propria linie de
activează semnalul de confirmare ACK (acknowledge) úi preia controlul cerere de magistrală; la finele transferului de date curent de pe magistrală, fiecare
magistralei. unitate examinează cererile de acordare a magistralei. Circuitele logice de pe fiecare
Arbitrul întrerupe ciclul de interogare până când dispozitivul căruia i s-a unitate permit accesul la magistrală doar unităĠii cu cea mai mare prioritate, iar pentru
acordat magistrala îúi încheie operaĠiile pe magistrală (vezi figura 4.10). Prioritatea celelalte unităĠi accesul nu este permis.
fiecărui dispozitiv este setată în codul de interogare. Avantajul este că permite o implementare simplă, iar dezavantajul, că
În majoritatea sistemelor de calcul, unitatea centrală trebuie să negocieze necesită mai multe linii, deoarece fiecare unitate recepĠionează cele 16 linii.
accesul la magistrală în acelaúi mod cu celelalte unităĠi. În general, unitatea Exemplu. Pentru sistemele Intel se foloseúte schema de arbitraj din figura 4.11.
centrală are prioritatea cea mai scăzută; ea utilizează magistrala doar când nici un Pentru gestiunea magistralei sunt utilizate:
alt circuit nu are nevoie de ea. Aceasta permite circuitelor I/O să realizeze transferul  linia de cerere de magistrală BUS REQUEST (SAU cablat);
de date atunci când este necesar, făUă să apară pericolul de pierdere a datelor.  linia care semnifică ocuparea magistralei BUS BUSY, activată de
Pentru fiecare nivel de prioritate există o linie de cerere de magistrală úi o circuitele ce ocupă magistrala (de masterul magistralei);
linie de acordare de magistrală.  linia de arbitraj ARBITRATION LINE, pe care unităĠile sunt aúezate în
cascadă (conform structurii centralizate);
Structura unui calculator 193 194 ARHITECTURA SISTEMELOR DE CALCUL

BUS REQUEST BUS BUSY


ARBITRATION LINE 1 2 m
+ 5V

1 2 3 4 5

Fig. 4.11. Structura descentralizată de arbitraj al magistralei.


BUS
 conexiunea la +5V (1 logic). Acest +5V înseamnă nivelul activ al liniei: GRANT
dacă nici un circuit nu cere accesul pe magistrală, potenĠialul de +5V se
propagă pe toată linia de arbitraj (toate unităĠile în repaus pleacă de la o ACK
prioritate egală).
Pentru a obĠine accesul la magistrală, o unitate trebuie să verifice: BUS
1. dacă magistrala este liberă; REQUEST
2. dacă semnalul BUS BUSY este dezactivat;
3. dacă linia de arbitraj prezentă la intrarea sa este liberă. BUS
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 care Fig. 4.12. Algoritmul cu priorităĠi dinamice (rotating daisy chain).
urmează.
În acest moment există o singură unitate care are intrarea activă (în +5V) úi 4.3.4.6. Magistrala VME
ieúirea inactivă (în 0), ceea ce face ca această unitate să devină masterul Magistrala VME (Versa Module Eurocard) este un exemplu de magistrală
magistralei; ea activează linia de BUS BUSY úi este liberă să efectueze transferul asincronă, de înaltă performanĠă, proiectată pentru utilizarea intensivă în mediul
pe magistrală. industrial; ea conĠine 32 de linii de adrese úi 32 de linii de date. Pe lângă aplicaĠiile
LanĠul de priorităĠi la structura descentralizată este, deci, următorul: o unitate industriale, este utilizatăúi în minicalculatoare.
obĠine accesul la magistrală înaintea unităĠii de la dreapta sa, dar după cele de la Magistrala VME a fost dezvoltată din magistrala Versa Bus a firmei
stânga. Motorola, iar specificaĠiile pentru magistrala VME sunt conĠinute în norma IEEE
Avantajele schemei faĠă de structura cu arbitru sunt simplitatea (arbitrul de P1014. Spre deosebire de magistrala IBM PC, magistrala VME a fost proiectată
magistrală lipseúte úi sunt trei teste de efectuat pentru unităĠi) úi rapiditatea. urmărind trei scopuri: interoperabilitatea, performanĠa úi fiabilitatea.
Magistrala VME se prezintă sub trei forme: VSB, VMS úi VME. Aceste
Algoritmul cu priorităĠi dinamice (rotating daisy chain). Acest algoritm magistrale specifice sunt bine adaptate la realizarea unor sisteme de calcul variate,
reprezintă varianta descentralizată a algoritmului cu priorităĠi statice (daisy chain). de la scheme de dezvoltare úi până la sisteme multiprocesor.
Pentru algoritmul cu priorităĠi dinamice nu mai există arbitru de magistrală. Acest Fiecare procesor dispune de o memorie locală, legată prin VSB, care este o
bloc este divizat în subblocuri descentralizate (vezi figura 4.12). magistrală locală proprie magistralei VME. În memoria locală se află toate
Semnalul de acordare de magistrală este conectat în buclă închisă între programele úi datele asociate unui procesor. InstrucĠiunile referitoare la memoria
subblocurile de control ale magistralei. globală sunt singurele care necesită utilizarea magistralei VME, celelalte
Subblocul conectat cu dispozitivul care a preluat controlul magistralei devine instrucĠiuni merg pe magistrala VSB.
master, modificând astfel „distanĠa” dintre dispozitive úi subblocul de arbitraj. În consecinĠă, performanĠa globală a sistemului este superioară limitei de
Dispozitivul care a preluat controlul magistralei va avea la următoarea cerere de 40MB/s impuse de tehnologia VME.
magistrală prioritatea minimă. Exemplu. La sistemele cu 16 procesoare care fac acces la cuvinte de 32 de
Subblocurile de arbitraj comunică între ele pentru a arbitra cererea de biĠi, cu un ciclu de magistrală de 200 ns, lărgimea de bandă calculată este de 320
magistrală prin semnalele BUS REQUEST úi ACK. De asemenea, există legături MB/s. Dacă se face presupunerea că 90% din accesele la memorie sunt efectuate în
electrice pentru dialog între fiecare subbloc de control al magistralei úi dispozitivul memoriile locale (ipoteză realistă), rezultă că magistrala VME va fi încărcată doar la
asociat. valoarea de 32MB/s (adică restul de 10%), ceea ce este mai puĠin de 40MB/s
(valoare impusă de tehnologia VME).
Structura unui calculator 195 196 ARHITECTURA SISTEMELOR DE CALCUL

Familia VME cuprinde o magistrală serie pe care comunicaĠiile se realizează Monitorul de urmărire analizează traficul de pe magistralăúi generează o
prin transmisiuni seriale (VMS). Magistrala VMS este independentă de celelalte întrerupere atunci când detectează o acĠiune sau o adresă anormală (are rolul de a
douăúi oferă o lărgime de bandă de 30Mb/s (la transmisia serială banda se exprimă semnaliza o acĠiune nepermisă).
în megabiĠi pe secundă, nu în megaocteĠi pe secundă). Ea corespunde necesităĠilor Exemplu. O tentativă de scriere în memorie într-o zonă protejată este
de comunicaĠie cu debit scăzut sau transferului informaĠiilor de sincronizare între recunoscută de monitorul de urmărire úi oprită prin cererea de întrerupere a
procesoare. Magistrala VMS este asemăQătoare unei reĠele locale, ea fiind bazată procesorului).
pe un cablu coaxial. Monitorul de urmărire înregistrează în memorie într-un spaĠiu cu n poziĠii
Exemplul 1: sistem cu trei plăci VME: procesor, memorie, controler I/O. semnalele care tranzitează magistrala. Aceasta înseamnă că este posibilă
vizualizarea ultimelor cicluri de magistrală care au precedat cererea de întrerupere,
UC M I/O de unde rezultă că utilizatorul poate detecta eventualele anomalii de pe magistrală.
Supervizorul de magistrală îndeplineúte funcĠia de urmărire temporală a
semnalelor de pe magistrală.
Exemplu. Dacă un ciclu de magistrală este prea lung, rezultă o eroare de
adresare, recunoscută prin faptul că nu există nici un element care să răspundă
acestei adresări. Rolul supervizorului de magistrală este important datorită faptului
Magistrală VME Fă făUă intervenĠia acestuia există posibilitatea ca ciclul de magistrală să se
prelungească un timp nedefinit, ceea ce ar duce la blocarea magistralei.
Fig. 4.13. Exemplu simplu de magistrală VME. Pe liniile de arbitraj, magistrala VME suportă mai multe scheme de lucru,
dintre care, în general, sunt recomandate trei: arbitrajul simplu, arbitrajul cu
Exemplul 2: sistem multiprocesor. priorităĠ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
ML ML ML
prioritate, între care se stabileúte o anumită ordine.
Arbitrajul cu priorităĠi circulare implică înlăQĠuirea ciclică a unităĠilor,
VSB BUS
existând astfel posibilitatea unui transfer continuu al priorităĠilor. El presupune
existenĠa unor linii de cerere de magistrală cu aceeaúi prioritate; la magistrala VME
UC UC UC MP
există patru astfel de linii de cerere de magistrală. Acestea funcĠionează astfel: la
VME BUS
primul ciclu de magistrală este servită cererea sosită pe linia 0, la ciclul următor
cererea 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 în
lanĠ la cele patru linii.
VMS BUS
Oricare ar fi schema de arbitraj utilizată, o unitate master care doreúte
accesul la magistrală transmite o cerere în acest sens către arbitru pe o linie
ML = memorie locală MP = memorie partajată corespunzătoare; când cererea este satisfăcutăúi se obĠine magistrala, acea unitate
master transmite arbitrului un semnal de ocupare a magistralei úi anulează cererea
Fig. 4.14. Exemplu complex de magistrală VME. sa. În acest mod, devine posibilă alocarea anticipată a magistralei unei alte unităĠi
care o solicită. Noua unitate master care a adresat cererea de magistrală ocupă
Magistralele VME, VSB úi VMS sunt magistrale pe care comunicaĠiile au magistrala imediat după eliberarea acesteia. Această facilitate de alocare anticipată,
loc independent úi simultan, nefiind sincronizate. care provine din modul de lucru al procesoarelor Motorola, permite o îmbunăWăĠire
Magistralele VME cuprind patru grupe de linii: liniile de date, liniile de netă a performanĠelor magistralei.
arbitraj al magistralei, liniile de întreruperi úi liniile de comandă. În plus, la magistrala VME arbitrului de magistrală îi este permisă
În ceea ce priveúte unităĠile implicate în transferul de pe liniile de date, suspendarea activităĠii unui master de prioritate scăzută angajat într-o secvenĠă
există, pe lângă modulele master úi slave, încă două tipuri de unităĠi funcĠionale lungă pe magistrală (de exemplu, într-un transfer de blocuri de date). Acest lucru se
care participă la schimbul de date pe magistrală: monitorul de urmărire úi întâmplă atunci când un master cu prioritate mare face o cerere de magistrală.
supervizorul de magistrală.
Structura unui calculator 197 198 ARHITECTURA SISTEMELOR DE CALCUL

4.3.5. Magistrala memoriei

Magistrala memoriei este utilizată pentru transferul informaĠiilor între CPU


úi memoria principală – memoria RAM a sistemului. Această magistrală este o
parte din magistrala procesorului sau, de cele mai multe ori, este implementată
separat 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ăúesc
uneori posibilităĠile cipurilor DRAM standard. În astfel de sisteme este utilizat un set
de cipuri, controlerul memoriei, care realizează interfaĠa între magistrala rapidă a
procesorului úi memoria principală, mai lentă (vezi figura 4.15). Acest set de cipuri
este în general acelaúi cu setul de cipuri responsabil cu gestionarea magistralei I/O.

CPU Cache extern


Fig. 4.16. Arhitectura northbridge-southbridge.
Magistrala procesorului

Cipurile
controlerului
de memorie

Magistrala principală a
Magistrala principală a sistemului
sistemului Magistrala memoriei

RAM

Fig. 4.15. Schema de interconectare a magistralelor unui calculator.

InformaĠia care circulă prin magistrala memoriei este transferată la o viteză


mult mai mică decât viteza de transfer a informaĠiei pe magistrala procesorului. Fig. 4.17. Arhitectura northbridge-southbridge la procesoare dual-core în sisteme server.
/ăĠimea magistralei de memorie este întotdeauna egală cu cea a magistralei
procesorului. Dacă procesorul are 32/64 biĠi, magistrala memoriei are tot 32/64 biĠi. În forma sa cea mai simplă, southbridge integrează controlere I/O, furnizează
Procesoarele mai noi aduc o nouă arhitectură a plăcii de bază, cu două cipseturi: interfaĠa cu perifericele úi magistralele úi transferă date din/în northbridge, fie prin
northbridge úi southbridge, între care sarcinile sunt împăUĠite (vezi figura 4.16 úi 4.17). magistrala PCI la modelele mai vechi (care creează efectul de gâtuire – bottleneck),
Chipul northbridge, cunoscut ca Memory Controller Hub (MCH), se ocupă de fie prin interconexiunea proprie (o interfaĠă de înaltă performanĠă), la cipurile mai
comunicaĠiile între CPU, memorie, grafică, interfeĠe úi southbridge. Unele northbridge- recente. Southbridge este cunoscut ca I/O Controller Hub (ICH). Spre deosebire de
uri conĠin controlere video integrate, numite Graphics and Memory Controller Hub northbridge, southbridge nu este conectat direct la CPU, având în responsabilitate
(GMCH). Deoarece diversele procesoare úi RAM-ul necesită semnale diferite, un dispozitivele mai lente. Un anumit southbridge va funcĠiona cu mai multe tipuri de
northbridge va funcĠiona doar cu una sau două clase de CPU úi cu un singur tip de RAM. northbridge, dar aceste cipuri trebuie proiectate să lucreze împreună.
Structura unui calculator 199 200 ARHITECTURA SISTEMELOR DE CALCUL

4.3.6. Magistrala de adrese Parallel ATA sunt transferurile de date mai rapide, abilitatea de a deconecta sau
instala echipamente în timp ce calculatorul este funcĠional (hot swapping), cabluri
Magistrala de adrese este o parte a magistralei procesorului úi a celei de mai subĠiri care permit sistemului de răcire cu aer să funcĠioneze mai eficient úi
memorie. Magistrala unui sistem Pentium are 64 de linii de date, 32 linii de adrese operaĠii mai sigure cu verificări de integritate ale datelor mai riguroase.
úi câteva linii de comandă. Aceste linii de adrese constituie magistrala de adrese; în InterfaĠa standard pentru controlerele SATA este AHCI (Advanced Host
multe scheme bloc este inclusă în magistrala procesorului úi în cea a memoriei. Controller Interface), care permite să fie folosite specificaĠiile avansate ale SATA
Magistrala de adrese este folosită pentru a indica adresa de memorie sau cum ar fi hot plug sau NCQ (Native Command Queuing). Dacă interfaĠa AHCI nu
adresa de pe magistrala sistemului care va fi utilizată în cadrul operaĠiei de transfer este implementată pe placa de bază, controlerele SATA rulează într-un mod care
al datelor. Magistrala de adrese indică precis locul în care va avea loc următorul emulează interfaĠa IDE, dar în acest mod nu se pot beneficia de nici una din
transfer în memorie sau pe magistrală. Dimensiunea magistralei de memorie caracteristicile SATA enumerate mai sus. Driver-ele native din sistemul de operare
determină mărimea memoriei pe care unitatea centrală o poate adresa direct. Windows XP nu suportă interfaĠa AHCI, în timp ce sistemul de operare Windows
Vista ú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 úi
4.3.7. Magistrala I/O 3,0 Gb/s. Există planuri de viitor pentru un standard de 6 Gb/s, care ar fi în
momentul de faĠă folositor în tandem cu multiplicatori de porturi, pentru a permite
Magistrala I/O permite procesorului să comunice cu dispozitivele periferice. mai multor discuri să fie conectate la un singur port SATA, împăUĠind lărgimea de
Magistrala úi sloturile sale de extensie asociate sunt necesare pentru că nu este bandă a portului între respectivele discuri.
posibil ca sistemele de bază să satisfacă toate necesităĠile tuturor celor care le SATA este o arhitectură de tip punct-la-punct (point-to-point), iar
achiziĠionează. Magistrala I/O permite adăugarea de dispozitive calculatorului conexiunea între controler (H – host) úi echipamentele de stocare (D – device,
pentru a-i extinde posibilităĠile. Componentele de bază ale calculatorului, cum ar fi maximum 8 porturi) este una directă (vezi figura 4.18).
controlerele de hard disk úi plăcile adaptoare video, pot fi ataúate sistemului prin
intermediul sloturilor de extensie; de asemenea, se pot ataúa dispozitive mai
specializate, 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ăWăĠ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 Fig. 4.18. Topologia SATA.
rapidă posibil. Aproape toate sistemele PC livrate în prezent folosesc încă aceeaúi
arhitectură de magistrală ca la modelul IBM PC/AT din 1984. Dar, cele mai multe În PC-urile actuale, controlerul SATA este de cele mai multe ori plasat pe
dintre aceste sisteme conĠin acum úi o magistrală locală de mare viteză, cum este placa de bază sau instalat pe un slot PCI. Unele controlere SATA au mai multe
VLBus sau PCI, care oferă un nivel de performanĠă mai ridicat pentru adaptoarele porturi SATA úi pot fi astfel conectate la mai multe echipamente, acestea având un
care solicită aúa ceva. Standardizarea este una dintre caracteristicile care au identificator unic pe 64 de biĠi. Există, de asemenea, úi porturi de expansiune (M)
determinat succesul sistemelor PC. care permit conectarea prin cabluri (C, lungime  2 m) a mai multor echipamente
Aceste tipuri de magistrale se deosebesc prin volumul datelor transferate (maximum 16) la un singur controler de port SATA.
simultan úi prin viteza cu care se realizează acest transfer. Arhitectura magistralei Protocoalele de transmisie de mare viteză folosesc o codare de tip 8b/10b, iar
este realizată cu un set de cipuri care este conectat la magistrala procesorului. În semnalul este trimis folosind algoritmul NRZ (Non Return to Zero), cu semnale de
general, aceste cipuri controleazăúi magistrala memoriei. voltaj mic, diferenĠiale (LVDS). În codarea de tip 8b/10b, semnalul de sincronizare
este inclus în secvenĠa de date. Această tehnică este numită clock data recovery
4.3.7.1. Serial ATA (recuperarea ceasului cu ajutorul datelor), deoarece nu foloseúte un semnal de
SATA (Serial Advanced Technology Attachment) este o magistrală construită sincronizare separat. În schimb, are nevoie de o tranziĠie de la 0 la 1 în úirul de date
în mod special pentru transferul de date între calculator úi echipamente de stocare, cum serial pentru a face sincronizarea.
ar fi hard disk-ul sau unităĠile optice. Principalele avantaje faĠă de vechile interfeĠe Varianta externă la magistralei SATA se numeúte eSATA (introdusă în 2004).
Structura unui calculator 201 202 ARHITECTURA SISTEMELOR DE CALCUL

4.3.7.2. Magistrala SCSI


Small 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 care
trebuie să transfere cantităĠi mari de date într-un timp foarte scurt.
Standardul SCSI specifică interfaĠa hardware úi software la un nivel care
minimizează subordonarea faĠă de orice altă implementare hardware. SpecificaĠia
permite conectarea unei mari varietăĠi de periferice la multe tipuri de calculatoare.
O magistrală SCSI este un tip de magistrală care se conformează cerinĠelor
fizice úi electrice ale standardului SCSI standard. Un dispozitiv SCSI (Ġintă) se
supune oricărei unităĠi conectate la magistrala SCSI, fie că este vorba despre un
echipament periferic sau un calculator. Fiecărui dispozitiv SCSI îi este atribuit un
Fig. 4.19. Fazele magistralei SCSI úi tranzacĠiile permise.
ID SCSI (o valoare întreagă, care identifică unic dispozitivul în timpul operaĠiilor).
Fazele magistralei SCSI sunt intervale de timp de-a lungul cărora, prin Figura 4.19 arată legătura dintre fazele magistralei SCSI.
convenĠie, anumite semnale de control sunt permise, iar altele nu sunt. Magistrala Varianta serială a magistralei SCSI se numeúte Serial Attached SCSI (SAS),
SCSI nu poate fi în mai mult de o fază la un anumit moment de timp. care este un protocol de tip punct-la-punct (cu viteză de transfer de 6 Gb/s în 2009).
Pentru fiecare dintre fazele magistralei, există un set de faze permise care o
pot urma. De exemplu, faza de magistrală liberă poate fi urmată numai de faza de
arbitraj sau de orice altă fază de magistrală liberă. O fază de date poate fi urmată de 4.3.8. Magistrala locală
o comandă, o stare, un mesaj sau de o fază de magistrală liberă. Semnalele de
control direcĠionează tranziĠia de la o fază la alta. De exemplu, semnalul de resetare Magistralele I/O prezentate au o latură comună: viteza relativ scăzută. În
invocă faza de magistrală liberă, în timp ce semnalul de atenĠie invocă faza de mesaj. timp ce viteza magistralei procesorului a crescut, magistrala I/O a cunoscut doar
Standardul SCSI specifică opt faze distincte pentru magistrala SCSI : ajustări ale vitezei nominale, în principal prin creúterea lăĠimii de bandă.
1. Magistrala liberă: această fază indică faptul că nici un dispozitiv SCSI SoluĠiile bazate pe magistrala locală nu înlocuiesc standardele existente, ci
nu foloseúte magistrala úi că magistrala este liberă pentru orice altă operaĠie SCSI. sunt proiectate pentru a le îmbunăWăĠi. De aceea, un sistem uzual este bazat pe
2. Arbitrajul: această fază este precedată de faza de magistrală liberăúi standardele I/O úi, în acelaúi timp, este dotat cu unul sau mai mulĠi conectori Local
permite unui dispozitiv SCSI să câútige control asupra magistralei. În timpul Bus. Un exemplu de magistrală locală la Intel 80486 este VLBus (VESA Local Bus).
acestei faze, toate dispozitivele care doresc să folosească magistrala îúi pun ID-ul
pe magistrală (folosind semnalele de date). Semnalul cu cel mai mare ID câútigă. 4.3.8.1. Magistrala PCI
3. SelecĠia: această fază urmează fazei de arbitraj. Dispozitivul care a Magistrala PCI (Peripheral Component Interconnect) este numită adesea úi
câútigat faza anterioară foloseúte această etapă pentru a selecta un alt dispozitiv cu magistrală mezanin, oarece ea adaugă un alt nivel configuraĠiei de magistrală.
care să comunice. PCI ocoleúte magistrala standard I/O, folosind magistrala sistemului (pentru a
4. ReselecĠia: această fază, opĠională, este folosită de sisteme care permit creúte viteza ceasului) úi toate avantajele căilor de date (vezi figura 4.20).
echipamentelor periferice să se deconecteze úi să se reconecteze (de) la magistrală La magistrala PCI standard, informaĠiile se transferă la 33 MHz, utilizând
în timpul operaĠiilor îndelungate. toată lăĠimea cuvântului. Lărgimea de bandă este de 132 MB/s. Când magistrala
5. Comanda: de-a lungul acestei faze, Ġinta cere o comandă de la iniĠiator. este folosită cu o unitate CPU pe 64 biĠi, lărgimea de bandă se dublează, aceasta
6. Datele: faza de date are loc când Ġinta cere un transfer de date (de) la iniĠiator. însemnând că datele se pot transfera la viteze de până la 264 MB/s. În realitate,
7. Starea: această fază are loc când Ġinta cere ca informaĠia de stare să fie vitezele de transfer ale datelor vor fi în mod necesar mai mici, dar ele rămân în
trimisă la iniĠiator. continuare mult mai mari decât la orice altă variantă anterioară.
8. Mesajul: faza de mesaj are loc când Ġinta cere transferul unui mesaj. Una dintre cauzele acestui transfer mai rapid este faptul că magistrala PCI
Mesajele sunt mici blocuri de date care transportă informaĠia sau cererea între lucrează în paralel cu magistrala procesorului, făUă să o înlocuiască. Unitatea CPU
iniĠiator úi Ġintă. În această fază, pot fi trimise mesaje multiple. poate procesa date în memoria cache externă, în timp ce magistrala PCI este
Împreună, ultimele patru faze (comandă, date, stare, mesaj) sunt cunoscute ocupată cu transferarea informaĠiilor între alte elemente ale sistemului, ceea ce
ca fazele de transfer al informaĠiei. constituie un avantaj major al magistralei PCI.
Structura unui calculator 203 204 ARHITECTURA SISTEMELOR DE CALCUL

9. Scriere în memorie úi invalidare. Scrierea se poate face, de asemenea, în


salvă. Se respectă modul Write Back pentru scrierea din cache în memorie.
10. Citire configuraĠie. Fiecare dispozitiv PCI include un set de 256 de
registre 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 poate
modifica registrele de configurare.
12. Ciclu de adresare dual. Este folosit de iniĠiator pentru a arăta că apare o
adresare pe 64 de biĠi.
Orice transfer de date pe magistrala PCI constă într-o fază de adresare úi una
sau mai multe faze de date. În figura 4.21 este reprezentat un transfer de citire.

Fig. 4.20. Schema de principiu a magistralei PCI.

Activitatea magistralei se manifestă sub forma unor transferuri între un


iniĠiator (master) úi o Ġintă (slave). După ce un master a obĠinut controlul
magistralei, determină tipul transferului care va urma. În timpul fazei de adresare
liniile 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 sunt
folosite în faza de adresare, iar în faza de date este indicat vectorul de întrerupere. Fig. 4.21. Fazele unui transfer de citire pe magistrala PCI.
2. Ciclu special. Este folosit de iniĠiator pentru a emite mesaje către una sau Linii implicate în acest transfer sunt:
mai multe Ġinte. CLK – tactul de magistrală PCI, 33MHz-133MHz;
3. Citire I/O. Este un ciclu de transfer de date între iniĠiator úi un dispozitiv AD – liniile multiplexate pentru adrese úi date;
I/O. Fiecare dispozitiv I/ O are alocat un spaĠiu propriu de adresare. C/BE – liniile multiplexate pentru comenzi de magistrală sau Byte Enable. În
4. Scriere I/O. timpul fazei de date, arată care din cei 4 octeĠi de date poartă date semnificative;
5. Citire din memorie. Citirile din memorie se pot executa în salvă, pe FRAME – semnalul generat de iniĠiatorul curent, pentru a indica startul unui
blocuri, funcĠie de modul în care controlerul de memorie gestionează transferurile transfer. Este dezactivat când iniĠiatorul începe faza finală de date.
între memorie úi cache. Se citeúte o jumătate de linie de cache sau mai puĠin, în IRDY – iniĠiator pregătit, generat de masterul curent. La citire, indică faptul că
salvă fiind unul sau două cicluri de citire. masterul este gata să accepte date, iar, la scriere, că pe AD sunt prezente date valide.
6. Citire o linie din memorie. Se citeúte mai mult de o jumătate de linie de TRDY – Ġintă pregătită, generat de modulul selectat (Ġintă). La citire, pe AD
cache, dar mai puĠin de trei linii, în salvă fiind între 3 úi 12 cicluri de citire. sunt prezente date valide, iar la scriere indică faptul căĠinta este gata să accepte date.
7. Citire multiplă din memorie. Se citesc mai mult de 3 linii de cache, în DEVSEL – semnalul activat de Ġintă când îúi recunoaúte adresa.
salvă fiind mai mult de 12 cicluri de citire. FuncĠionarea este următoarea:
8. Scriere în memorie
Structura unui calculator 205 206 ARHITECTURA SISTEMELOR DE CALCUL

1. De îndată ce masterul are controlul magistralei, poate începe transferul


activâ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 vor
transmite datele de la Ġintă (1 până la 4 octeĠi).
4. ğinta selectată activează DEVSEL, pentru a semnaliza că a recunoscut
adresa, 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 începutul
tactului 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. Se
presupune de data aceasta că iniĠiatorul nu este gata să preia datele (are, de
exemplu, buffer-ul plin). IniĠiatorul dezactivează IRDY, ceea ce are ca efect
menĠ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, Fig. 4.22. ConfiguraĠia magistralelor la PC-urile cu procesor Pentium II.
pentru a semnala că este gata să finalizeze transferul.
9. IniĠiatorul dezactivează IRDY, permiĠând magistralei să treacă în starea iniĠială. Versiunea AGP 2.0, cunoscută úi ca AGP 4, defineúte un nou mod de
ğinta a detectat dezactivarea semnalului FRAME úi dezactivează TRDY úi DEVSEL. transfer – 4x-mode transfer – constând în patru transferuri de date pe o perioadă de
ceas, banda fiind de 1,066 GB/s. O nouă versiune, lansată în 2001, AGP 8,
4.3.8.2. Magistrala AGP dublează încă o dată banda de transfer, care depăúHúte, astfel, valoarea de 2 GB/s.
AGP (Accelerated Graphics Port) este o magistrală dedicată comunicării cu
display-ul, accesibilă prin intermediul unui slot special, aflat pe placa de bază, în care
4.3.9. Magistrala serială
se montează placa grafică. AGP a fost introdus pentru a degreva magistrala PCI de
comunicaĠ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 cipsetul 4.3.9.1. Magistrala USB
62440LX. Acest cipset, primul care a implementat controlul comunicaĠiei pe AGP, Acest tip de magistrală a apărut în toamna anului 1995. La crearea lui au
intermedia transferul de date între procesorul Pentium II, aflat împreună cu contribuit mai multe firme de renume, cum ar fi DEC, Compaq, IBM, NEC,
memoria cache L2 în modulul SECC (Single Edge Contact Cartridge), memoria Northern Telecom. Odată cu apariĠia USB, dispare multitudinea de cabluri úi
principală, magistrala PCI úi placa grafică montată în slotul AGP (vezi figura 4.22). conectori necesară conectării diverselor periferice: tastatură, mouse, imprimantă,
joystick, scaner sau modem extern. În partea din spate a calculatorului există un
AGP dă plăcii grafice posibilitatea de a accesa direct memoria principală,
printr-o procedură numită DIME (Direct Memory Execute). Cu DIME, adresarea singur conector de la care pornesc datele spre tastatură, periferice úi monitor.
memoriei se face în pipeline, mod care constă în a lansa mai multe cereri pe durata Aceste aparate funcĠionează ca distribuitori (hub) pentru alte aparate. De asemenea,
calculatorul preia rolul de gazdă (host), gestionând diversele comunicaĠii.
unui acces la memorie (spre deosebire de PCI, care lansează o nouă cerere numai
când cea anterioară a fost satisfăcută). Cererile formează o coadă de aúteptare, Magistrala USB este dirijată exclusiv de calculatorul gazdă.
printr-un proces denumit SBA (Sideband Addressing). Practic, la această magistrală poate fi conectat orice periferic echipat cu un
Magistrala AGP are la bază standardul PCI versiunea 2.1. AGP are 32 de linii controler USB, dar, datorită ratei de transfer de 12 Mb/s, sunt vizate în primul rând
úi lucrează la 66 MHz, spre deosebire de PCI, a cărei frecvenĠă este de 33 MHz. echipamentele audio-video, telefonia digitală, modemurile, tastaturile, tabletele
Banda primei magistrale AGP era de 264 MB/s (dublă faĠă de PCI). Ulterior, au digitizoare, unităĠile CD úi DVD, unităĠile HDD externe etc.
apărut plăci grafice care suportau transferul de date pe ambele fronturi ale semnalului După cum s-a arătat în paragraful 3.4.4.1, un host USB comunică cu
dispozitivele conectate prin intermediul unor canale logice (pipes), care au niúte
de ceas (2-mode transfer) úi banda s-a dublat ajungând la 528 MB/s (AGP 2).
terminale logice pe dispozitive numite endpoints.
Structura unui calculator 207 208 ARHITECTURA SISTEMELOR DE CALCUL

Pipe-urile se împart în patru categorii, după tipurile de transfer folosite: Fiecare descriptor de interfaĠă are niúte setări implicite úi este posibil să aibă
 modul control – folosit, de obicei, pentru comenzi simple către setări alternative de interfaĠă (alternate interface settings), care, la rândul lor, au
dispozitive, primind ca răspuns starea dispozitivului periferic la un descriptori de enpoint-uri (endpoint descriptors). Un endpoint poate fi totuúi folosit
moment dat (de exemplu, pipe-urile de management 0); pentru mai multe interfeĠe sau setări alternative de interfeĠe.
 modul izocron – garantează o viteză (nu neapărat cea maximă), dar cu Hub-urile sunt elemente cheie în arhitectura plug’n’play a USB, uúurând
posibilităĠi de a pierde date (de exemplu, aplicaĠii audio-video în timp real); conectivitatea din punct de vedere al utilizatorului úi asigurând o robusteĠe mai
 modul întrerupere – pentru periferice care au nevoie de răspuns rapid mare. Punctele de conexiune ale hub-urilor se numesc porturi. Un hub are un port
(cu latenĠe limitate) (de exemplu, mouse, tastatură etc.); upstream úi mai multe porturi downstream (vezi figura 4.24). Portul upstream
 modul bulk – transferuri mari úi lungi de date, folosind toată banda conectează hub-ul cu gazda (host) sau cu un hub mai apropiat de gazdă. Portul
liberă, făUă a garanta banda (de exemplu, transferuri de fiúiere). downstream conectează hub-ul cu alt hub sau cu un dispozitiv funcĠional. Hub-ul
Când un dispozitiv periferic este activ, ataúat host-ului, acesta primeúte o poate detecta conectarea úi deconectarea dispozitivelor la fiecare port downstream
adresă de 7 biĠi de la host. Host-ul interoghează dispozitivele pentru trafic, astfel úi permite alimentarea cu energie a dispozitivelor din aval.
încât nici un dispozitiv nu poate transfera date pe magistrală făUă a face o cerere
Fătre host. Întreruperile efectuate asupra endpoint-urilor corespunzătoare nu întrerup
practic traficul de date, ci sunt programate doar pentru a fi interogate mai des de
Fă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, la
râ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, activ
sau în mod putere scăzută – low power). Fiecare descriptor de configuraĠie are, la Fig. 4.24. Structura unui hub USB.
rândul său, un descriptor de interfaĠă (interface descriptor), care descrie diferite
funcĠionalităĠi ale dispozitivului, în funcĠie de tipul acestuia (de exemplu, o cameră Un hub USB 2. 0 se compune din trei porĠiuni:
video poate avea descriptor de interfaĠă video úi descriptor de interfaĠă audio).  controlerul hub-ului: este un comutator controlat de protocol între portul
Structura ierarhică este prezentată în figura 4.23. upstreamúi porturile downstream, care are suport hardware pentru reset
úi 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ăUĠite în niveluri (layer)
distincte. SăgeĠile verticale indică starea actuală de comunicaĠie la gazdă. InterfaĠa
corespunzătoare a aparatului are o implementare specifică. Toate comunicaĠiile
dintre gazdăúi aparat au loc prin cablul fizic USB. Există interfeĠe gazdă-aparat la
fiecare nivel orizontal. ComunicaĠia între clientul deĠinător al software-ului úi
funcĠiile provenite de la aparat sunt reglementate de un contract bazat pe nevoia
aplicaĠiei curente de a folosi aparatul úi posibilităĠile oferite. Această interacĠiune
client-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.
Fig. 4.23. Structura ierarhică a descriptorilor USB.
Structura unui calculator 209 210 ARHITECTURA SISTEMELOR DE CALCUL

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 cum
ar 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 permite
rate de transfer de 400 Mb/s … 1 Gb/s. Este văzută ca magistrala viitorului, pentru
conectarea tuturor echipamentelor electrocasnice: TV, DVD, scanner, cameră web, PC.
Acest tip de magistrală a apărut datorită cerinĠelor tot mai mari în ceea ce
priveúte calitatea transmisiei audio-video, dar úi din necesitatea interconectării
tuturor echipamentelor electrocasnice. Cu ajutorul unui suport software adecvat se
poate 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 în
două categorii: asincroneúi isocrone, magistrala fiind de tip tranzacĠional.
Transmisiile asincrone sunt garantate la recepĠie úi au nevoie de un semnal
de 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 fi
alocată pentru transmisiile isocrone. Lărgimea de bandă este alocată în intervale de
Fig. 4.25. Arhitectura stratificată a comunicaĠiei USB. 125μs, numite cicluri. Transmisiile isocrone au o natură multipunctuală (multicast),
fiind adresate unuia sau mai multor noduri, pe baza unui număr de canal. FireWire
Fluxul de date de bază úi relaĠiile dintre modulele USB sunt prezentate în suportăúi un alt tip de transmisii, numite fluxuri asincrone (asyncronous streaming).
figura 4.25, iar comunicaĠia între calculator (host) úi aparate (hub) se face pe baza Acestea pot fi unipunctuale sau multipunctuale. Pachetele de date FireWire au
unui protocol descris în figura 4.26. dimensiune variabilă. Dimensiunea maximă a încărcăturii de date depinde de tipul
de transmisiune úi lărgimea de bandă a magistralei FireWire (1001000 Mb/s).
Câmp de Identificator al Control
Figurile 4.27 úi 4.28 reprezintă formate de pachete FireWire isocrone úi,
Date
sincronizare pachetului erori CRC
(8 biĠi) (8 biĠi)
(0 … 1032 octeĠi)
(16 biĠi)
respectiv, asincrone. Fluxurile asincrone úi pachetele isocrone au acelaúi format.

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 10
miliarde. După terminarea transferului de date, are loc confirmarea transmisiei
datelor úi verificarea corectitudinii transmisiei lor (handshake).
Datorită modulelor soft plug’n’play, la conectarea fizică a unui periferic la
computer, acesta este autodetectat, iar datorită unor registre interne ale perifericului
(care furnizează sistemului de operare informaĠia necesară) sunt încărcate exact
driver-ele necesare funcĠionării acestuia, care poate fi úi dezinstalat când se
hotăUăú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. Fig. 4.27. Formatul pachetelor isocrone úi a fluxurilor asincrone FireWire.
Structura unui calculator 211 212 ARHITECTURA SISTEMELOR DE CALCUL

SemnificaĠia notaĠiilor din figura 4.27 este următoarea: FireWire necesită trei noduri primare pentru gestionarea magistralei la o
tag – formatul datelor (specific protocolului); operare normală. Acestea sunt: cycle master, IRM (Isochonous Resource Manager)
channel – adresa de canal; úi BM (Bus Manager), conform figurii 4.29.
tcode – codul tranzacĠiei (asincron, isocron, pachet de date, de control etc.);
sy – codul de sincronizare (specific aplicaĠiei).

Fig. 4.29. Structura stratificată a protocolului FireWire.

Cycle master genereazăúi transmite pachete de iniĠializare ciclice la fiecare


125 μs. Un pachet de iniĠializare ciclic reprezintă începutul intervalului periodic de
Fig. 4.28. Formatul pachetelor asincrone FireWire. 125 μs. Nodul răGăcină joacă rolul de cycle master.
IRM gestionează lărgimea de bandă a magistralei de date seriale isocrone úi
SemnificaĠia notaĠiilor din figura 4.28 este următoarea:
alocă numerele de canale generate multinodal.
destination id – include 6 biĠi pentru ID-ul nodului (63 de noduri) úi 10 biĠi
BM gestionează distribuĠia de putere pe cabluri úi afiúează harta topologică
pentru ID-ul magistralei (1024 magistrale);
úi diagrama de viteză pentru magistrala serială. Diagrama de viteză este necesară
tcode – tipul tranzacĠiei;
deoarece FireWire poate suporta noduri/cabluri de lărgimi de bandă diferite într-o
pri – prioritate (câmp neutilizat);
singură reĠea. În general, toate nodurile sunt capabile să efectueze activităĠile de
destination offset – locaĠia de adresă din interiorul nodului Ġintă (target);
gestionare a magistralei. Totuúi, nodurile operaĠionale de gestionare a magistralei
celelalte câmpuri depind de tipul protocolului.
sunt cele alese în etapa configurării magistralei.
Arhitectura FireWire este constituită ca o stivă cu un protocol de patru
FireWire utilizează un mecanism de arbitraj cerere/acceptare pentru
nivele. Nivelul fizic determină arbitrajul magistralei, defineúte semnalele electrice
controlul accesului în reĠeaua shared-medium. O schemă de arbitraj simplă
pentru transmisia de date úi interfaĠa mecanică pentru cabluri úi conectori. Nivelul
funcĠionează după cum urmează:
de conexiuni asigură adresa úi decodificarea numărului de canal, precum úi
generarea CRC-ului úi verificarea pachetelor de date transmise úi recepĠionate.  nodurile care doresc să transmită un pachet cer permisiunea de la
Nivelul de tranzacĠii asigură servicii de interogare-răspuns pentru transmisiile managerul de magistrală;
asincrone. Transmisiile isocrone operează independent faĠa de acest nivel. Nivelul  managerul selectează cererea optimă, bazată pe anumite criterii, úi emite
de gestiune a magistralei asigură suportul pentru diferite activităĠi de gestiune úi un semnal de acceptare pentru nodul corespunzător;
configurare a magistralei.  numai nodul acceptat îúi transmite pachetul de date, celelalte noduri
continuând să ceară permisiunea până când o primesc de la manager.
Structura unui calculator 213 214 ARHITECTURA SISTEMELOR DE CALCUL

4.3.9.3. Magistrala I2C 4.3.9.4. Magistrala Fibre Channel


Magistrala I2C (Inter-Integrated Circuits) a fost dezvoltată de firma Philips Creúterea performanĠelor staĠiilor de lucru, a procesoarelor úi a perifericelor,
pentru comunicaĠia între diferite microcontrolere úi controlere I/O. Este o ca úi creúterea ponderii arhitecturilor distribuite de tip client/server, au ridicat
magistrală bidirecĠională simplă, care utilizează două fire, unul pentru datele cerinĠele pentru aplicaĠiile cu rate de transfer ridicate. Interconexiunile dintre aceste
seriale, SDA (Serial Data), úi unul pentru ceasul serial, SCL (Serial Clock), după sisteme úi dispozitivele I/O necesită un nou nivel al performanĠelor în ceea ce
cum arată în figura 4.30. Există un mare număr de circuite integrate compatibile cu priveúte fiabilitatea, viteza úi distanĠa. Fibre Channel reprezintă o tehnologie de
magistrala I2C, care a devenit un standard industrial pentru magistralele de control. interconectare cu fiabilitate ridicată, care permite comunicaĠii concurente între staĠii de
lucru, servere, sisteme de stocare a datelor úi alte periferice care utilizează protocoale
ca SCSI, IP, HPPI-FP sau audio-video. Această tehnologie asigură interconectarea
pentru 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 care
dispune de facilităĠi de reĠea úi asigură astfel conectivitatea úi distanĠa necesară,
permiĠând utilizarea diferitelor protocoale de comunicaĠie. De asemenea, Fibre
Channel are caracteristicile unui canal de comunicaĠie tradiĠional, cu avantajele
simplităĠii, a performanĠelor repetabile úi a furnizării garantate a datelor.
În termenii arhitecturii Fibre Channel, comutatorul care leagă dispozitivele este
Fig. 4.30. Circuite conectate printr-o magistrală I2C.
o reĠea de tip fabric. Legătura este reprezentată de două fibre unidirecĠionale
Fiecare dispozitiv conectat la magistrală este recunoscut printr-o adresă transmiĠând în sensuri opuse faĠă de emiĠătorul úi receptorul asociate acestora. Fiecare
unicăúi poate funcĠiona fie ca receptor (de exemplu, un afiúaj cu cristale lichide), fibră este ataúată unui emiĠător al unui port la unul dintre terminale úi unui receptor al
fie ca transmiĠător úi receptor (de exemplu, o memorie). TransmiĠătoarele úi altui port la celălalt terminal. Dacă reĠeaua de tip fabric este prezentă în configuraĠie,
receptoarele pot funcĠiona în modul master sau în modul slave, după cum acestea fibra poate fi ataúată unui port al unui nod (N_Port) úi unui port al reĠelei (F_Port).
pot iniĠia un transfer de date sau sunt doar adresate. Un dispozitiv master poate Deoarece sistemul de canale se bazează pe porturi comunicând între ele úi cu
transmite/recepĠiona semnale la sau de la un dispozitiv slave sau poate controla reĠeaua de tip fabric, nu este esenĠial dacă reĠeaua este un comutator de circuit, un
transferurile între două dispozitive slave, dintre care unul este transmiĠător, iar hub activ sau o buclă. Topologia poate fi selectată în funcĠie de cerinĠele de
celălalt este receptor. Pot exista mai multe dispozitive master pe magistrală. În performanĠă ale sistemului sau de opĠiunile de pachete. Topologiile posibile ale
cazul în care mai multe dispozitive master încearcă simultan să controleze magistralei Fibre Channel (vezi figura 4.31) sunt cele de tip punct-la-punct (jos),
magistrala, o procedură de arbitraj decide care din dispozitive este prioritar. crosspoint cu comutare (stânga) sau buclă arbitrată (dreapta).
În sistemele cu mai multe dispozitive master, în cazul în care mai multe
asemenea 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 alt
dispozitiv master transmite un semnal 0 logic, acesta din urmă va prelua
magistrala, iar primul dispozitiv master va elibera magistrala. Acest arbitraj poate
continua pe durata mai multor biĠi. Pentru arbitraj, se utilizează biĠii de adresăúi cei
de date.
Mai recent, în versiunea 2.1 a specificaĠiilor magistralei, a fost inclusă
facilitatea de deplasare a nivelelor de tensiune (level shifting), care permite
conectarea la magistrală a dispozitivelor care funcĠionează cu tensiuni de
alimentare diferite, de exemplu, la 5 V úi 3,3 V. De asemenea, specificaĠiile au fost
extinse pentru dispozitivele care funcĠionează la tensiuni de sub 2,7 V. A fost
adăugat un mod de transfer de viteză ridicată (high speed), care asigură rate de
transfer de până la 3,4 Mbit/s úi permite conectarea unor memorii EEPROM. Cu
ajutorul unei punĠi (bridge), se asigură comunicaĠia bidirecĠională cu dispozitivele
care utilizează modul de transfer rapid sau cel standard.
Fig. 4.31. Topologii Fibre Channel.
Structura unui calculator 215 216 ARHITECTURA SISTEMELOR DE CALCUL

Arhitectura Fibre Channel reprezintă, aúadar, integrarea unei reĠele cu o 4.3.9.6. Magistrala PCI Express
interconexiune inteligentă între dispozitive. Magistrala Fibre Channel operează la o
mare varietate de viteze (133 Mbit/s, 266 Mbit/s, 530 Mbit/s, 1 Gbit/s) úi pe trei Necesitatea schimbării magistralei a apărut ca o cerinĠă firească, având în
tipuri de medii electrice úi optice. DistanĠele de transmisiune variază în funcĠie de vedere că vechiul PCI, cu limita sa de viteză de transfer de 133 MB/s, nu mai putea
combinaĠiile între vitezăúi mediu. Mediul optic de fibre unimodale utilizând surse face faĠă necesităĠilor actuale ale calculatoarelor. Chiar úi portul AGP 8, cu viteza
de lumină laser cu lungime de undă mare oferă cea mai înaltă performanĠă (distanĠa sa teoretică maximă de 2 GB/s nu face faĠă noilor cipuri video apărute. În aceste
maximă de 10 km la 1 Gbit/s). condiĠ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.
4.3.9.5. Magistrala InfiniBand Tehnologia din în spatele magistralei PCI Express nu este complet nouă.
Arhitectura InfiniBand rezolvă limitările de lărgime de bandăúi suprasarcină Cunoscută sub numele Arapahoe sau 3GIO, a fost ratificată ca standard în aprilie
ale magistralei PCI prin trecerea de la tradiĠionala arhitectură partajată a magistralei 2002. Această magistrală a fost gândită pentru a prelua munca pentru următorii 10 ani,
la o arhitectură cu comutare de reĠea de tip fabric (switched fabric architecture). deci nu este vorba despre un standard de tranziĠie. Din punct de vedere tehnic, PCI
Figura 4.32 ilustrează cea mai simplă configuraĠie a unui sistem InfiniBand, în care Express este o magistrală serială bidirecĠională (cu versiunile 1.0, 2.0 úi 3.0), care
două sau mai multe noduri sunt conectate prin reĠeaua InfiniBand Fabric. Un nod transferă informaĠiile sub formă de pachete, aproape la fel cu o conexiune Ethernet.
reprezintă fie un dispozitiv gazdă (server), fie un dispozitiv I/O (subsistem RAID).
ReĠeaua InfiniBand Fabric poate consta dintr-un singur comutator (în cel mai Arhitectura PCI Express
simplu caz) sau dintr-un set de comutatoare interconectate úi router-e. Fiecare 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 de
transfer. 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.32. Arhitectura InfiniBand Fabric.

Fiecare conexiune dintre noduri, comutatoare úi router-e este o legătură


serială, punct-la-punct. Această deosebire esenĠială aduce anumite beneficii:
1. Fiind o conexiune serială, necesită doar patru legături, faĠă de
conexiunea 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 elimină
concurenĠa la magistrală, precum úi întârzierea rezultată în condiĠiile unei Fig. 4.33. Arhitectura PCI Express.
suprasarcini în arhitectura magistralei partajate.
3. Canalul InfiniBand este proiectat pentru conexiuni între gazde úi Nivelul fizic defineúte specificaĠii electrice, mecanice, procedurale úi
dispozitive I/O în cadrul unui centru de date (Data Centre). Datorită lungimii bine funcĠionale pentru activarea, menĠinerea úi dezactivarea legăturilor fizice între
definite úi relativ scurte a conexiunilor, poate fi atinsă o lărgime de bandă mult mai sisteme úi este alcătuit dintr-o interfaĠă serială de mare viteză, numită Low-Voltage
mare decât în cazurile în care este nevoie de lungimi mult mai mari. Differential Signaling (LVDS), pentru a transfera 2,5 GHz. Cuprinde componentele
SpecificaĠiile InfiniBand definesc lărgimea de bandă brută a conexiunii de fizice necesare pentru a configura úi menĠine conexiunile. Include mecanisme
bază 1 la 2,5 Gb/s úi specifică două lărgimi de bandă adiĠionale, referite ca 4úi pentru pregătirea conexiunii, citirea semnalelor, codarea 8b/10b, crearea de frame-uri
12, ca multipli ai ratei pentru legătura de bază. & pachete úi transmiterea datelor pe conexiune.
Structura unui calculator 217 218 ARHITECTURA SISTEMELOR DE CALCUL

Nivelul legăturilor de date este responsabil cu transmiterea corectă a Din punct de vedere al compatibilităĠii, producătorii au gândit PCI Express
datelor printr-o legătură fizică existentă, între două puncte conectate direct prin pentru a rămâne compatibil din punct de vedere software cu toate sistemele de
această legătură fizică. Nivelul fizic nu poate realiza acest lucru, deoarece aici nu operare úi programele actuale. Cu alte cuvinte, nu este nevoie de un update
se operează cu de date, ci numai cu biĠi úi, mai exact, cu reprezentarea fizică a software pentru a putea beneficia de avantajele aduse de PCI Express. Un alt lucru
acestora (niveluri de tensiune, intensitate a luminii etc.). Nivelul legăturilor de date important este că PCI Express rămâne compatibil cu plăcile PCI actuale nu oferă
se ocupă cu adresarea fizică, topologia reĠelei, accesul la reĠea, detecĠia & suport simultan pentru AGP úi PCI Express, din cauza constrângerilor. Deci,
anunĠarea erorilor (CRC pe 32 de biĠi) úi controlul fluxului fizic (flow control); adoptând o platformă cu PCI Express, trebuie înlocuită vechea placă video.
Nivelul transport este responsabil cu crearea pachetelor care vor fi În plus, PCI Express diminuează consumul de energie când slotul nu este activ,
expediate úi cu citirea pachetelor primite. Se ocupă cu controlul fluxului de date úi oferă suport pentru traficul în timp real, încorporează funcĠiile hot plugúi hot swap,
cu managementul puterii consumate. Acest nivel oferă un serviciu de transport de furnizează performanĠe scalabile úi caracteristici avansate, QoS (Quality of Service).
date izolează nivelurile superioare de orice specificităĠi legate de modul în care este Comparativ cu PCI, PCI Express are semnale de legătură minime, iar ceasul
executat transportul datelor. Are un caracter redundant, realizat de ECRC (End-to- úi adresarea informaĠiei sunt incluse în date. Figura 4.35 compară lărgimea de
end Cycling Redundancy Check), mecanism pe 32 biĠi cu rolul de a asigura bandă per pin la PCI, PCI-X, AGP8úi PCI Express.
transportul între două staĠii separate de una sau mai multe entităĠi. Deúi toate
tranzacĠiile PCI Express sunt separate, unele nu necesită răspuns (avantaj).
Nivelul software (aplicaĠie) este situat cel mai aproape de utilizator, oferind
servicii de reĠea aplicaĠiilor utilizator. Nivelul aplicaĠie stabileúte disponibilitatea
unui calculator cu care se doreúte iniĠierea unei conexiuni, stabileúte procedurile
care vor fi urmate în cazul unor erori úi verifică integritatea datelor.
PCI Express vs PCI
/ărgimea 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Ġie
aceeaúi lărgime de bandă. La nivelul cipsetului, magistrala PCI Express este
gestionată de un switch care gestionează conexiunile punct-la-punct, înainte de a Fig. 4.35. ComparaĠie a lărgimilor de bandă.
interacĠiona cu restul sistemului (vezi figura 4.34).
Exemple de arhitecturi PCI Express
Nenumă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 úi
Fig. 4.34. Topologia de magistrală partajată la PCI úi topologia punct la punct la PCI Express. northbridge. O variantă de PCI Express poate înlocui conexiunea dintre northbridgeúi
southbridge, rezolvând incompatibilităĠile dintre componente úi nothbridge.
ObservaĠie. În cazul PCI Express, fiecare dispozitiv are o cale directă úi Figura 4.37 exemplifică structura unui sistem portabil. La fel ca la sistemele
exclusivă către switch. Switch-ul analizează datele în funcĠie de prioritatea aplicaĠiilor. desktop, PCI Express înlocuieúte placa AGP, fiind o alternativă la conexiunea
/ărgimea mare de bandă reprezintă o altă noutate adusă de PCI Express. O dintre nothbridge úi southbridge. Magistrala PCI dintre northbridge úi staĠia de
singură cale este capabilă să transmită 250 MB/s în fiecare direcĠie simultan (500 lucru poate migra, de asemenea, spre PCI Express. Un slot ExpressCard 1 care
MB/s pentru ambele direcĠii). PCI Express este alcătuit din două căi, aúadar, poate foloseúte o conexiune USB 2.0 poate înlocui cardul PC.
transmite 500 Mb/s pentru o singura direcĠie úi 1000 MB/s pentru ambele direcĠii. Figura 4.38 exemplifică modul în care poate fi implementat PCI Express
PCI Express în variantele 4, 8, 16 nu se fabrică pentru calculatoarele desktop, într-o arhitectură de server dual-core. PCI Express face legătura dintre componente
ci pentru servere, iar PCI Express 16 este creat pentru a înlocui slotul VGA 8x. úi sloturi plasate direct pe northbridge.
Structura unui calculator 219 220 ARHITECTURA SISTEMELOR DE CALCUL

Fig. 4.38. Exemplu de arhitectură server PCI Express.

Fig. 4.36. Exemplu de arhitectură desktop 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 vitezei
magistralelor, exprimată prin valoarea ratei de transfer (benzii), iar tabelul 4.2
prezintă comparativ caracteristicile, parametrii úi performanĠele câtorva dintre cele
mai răspândite standarde de magistrale seriale din ultimii ani.

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.
Fig. 4.39. EvoluĠia ratei de transfer a magistralelor.
Structura unui calculator 221

Tabelul 4.2
ComparaĠie între magistrale 5. NIVELUL MICROPROGRAMAT
/ărgime Viteză Lungime Putere/
Număr
de bandă de maximă tensiune
Nume de echipamente
efectivă transfer de cablu necesare
per canal
(Mb/s) (MB/s) (m) (W/V)
SAS 3.000 375 8 - 4

eSATA 3.000 300 2 - 1 (15 cu multiplicator de port)


Sistemele de calcul sunt implementate folosind diferite concepte care le
apropie de gândirea umană. Se disting astfel mai multe niveluri de programare
SATA 300 3.000 300 1 - 1 (15 cu multiplicator de port) ale unui calculator. În acest capitol se va studia nivelul microprogramat.
FuncĠionarea microprocesorului úi a oricărui bloc dintr-un sistem cu
SATA 150 1.500 150 1 - 1 microprocesor necesită date úi semnale de comandăúi control. Succesiunea
dorită a evenimentelor din sistem (care conduce la executarea unei sarcini
PATA 133 1.064 133 0,46 - 2 utile) se produce prin acĠionarea corectă, secvenĠială, a semnalelor de
control, acestea conducând la transferul corect de date, prelucrarea acestora
FireWire
3.144 393 100 15/12–25 63 (cu hub) úi luarea de decizii. În general, însă, datorită multitudinii acestor semnale úi
3200
a legăturii lor intime cu structura internă a fiecărui bloc nu se lucrează direct
FireWire 800 786 98,25 100 15/12–25 63 (cu hub) cu semnale simple ci cu grupuri ale lor care au un efect mai uúor de sesizat
din exterior. Astfel de grupuri de semnale sunt numite instrucĠiuni úi ele
FireWire 400 393 49,13 4,5 15/12–25 63 (cu hub) sunt caracteristice logicii programate.
Din cele menĠionate rezultă că executarea unei instrucĠiuni
USB 2.0 480 60 5 2,5/5 127 (cu hub)
presupune efectuarea într-o anumită ordine a unor paúi elementari care se
UltraSCSI 320 2.560 320 12 - 16 numesc microoperaĠii úi microinstrucĠiuni. Primele procesoare executau
codul direct la nivel hardware. ExecuĠia era destul de rapidă (se accesa
Fiber Channel direct nivelul 0 din nivelul 2), dar conceptul era lipsit de flexibilitate.
4.000 400 12 - 126 (16.777.216 cu switch-uri)
cablu cupru Aceasta se datora imposibilităĠii adăugării de instrucĠiuni noi.
Fiber Channel
10.520 2.000 2–50.000 - 126 (16.777.216 cu switch-uri)
fibră optică

Infiniband
120.000 12.000 5 - 1 (punct-la-punct)
12 Quad-rate

Fig. 5.1. Structură parĠială a nivelurilor unui calculator.


223 224

Practic s-a constatat că pentru execuĠia oricărei instrucĠiuni din setul NotaĠiile folosite în figura 5.2:
microprocesorului se execută o succesiune bine definită de paúi.  R1 … R16: 16 registre generale de tip latch, fiecare de 16 biĠi, care
Microprogramarea este un concept care formează de fapt interfaĠa între au funcĠii diferite, registre inaccesibile utilizatorului; ele sunt
limbajul de asamblare úi structurile fizice ale procesorului. MicroinstrucĠiunile utilizate doar de maúina microprogramată. Fiecare registru poate
sunt practic semnalele de comandă adresate de unitatea de control către unitatea depune date pe magistralele A, B úi poate fi încărcat de pe
de execuĠie a procesorului. ApariĠia nivelului microprogramat presupune magistrala C.
asocierea fiecărei instrucĠiuni cu o succesiune de microinstrucĠiuni.  ALU: circuit logic combinaĠional care realizează patru operaĠii
aritmetice úi logice selectate de F0 úi F1. Cele patru operaĠii sunt
A+B, AB, A, nonA. La ieúire mai sunt disponibili doi biĠi notaĠi cu
5.1. Exemplu de maúină microprogramată N úi Z. SemnificaĠia lor este:
 rezultatul din ALU este negativ  N = 1;

În figura 5.2 se prezintă structura unei maúini microprogramate.  rezultatul ALU este zero  Z = 1.

 registrul shift: este un circuit de deplasare a cărui intrare este


legată 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, iar
intră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 avea


loc operaĠii între registre de tipul R1 R1 + R2, R2 R1 + R2
etc.;
 Dacă registrele R1 … R16 ar fi de tip flip-flop, atunci nu ar mai

fi nevoie de registrele tampon.


 RDA, RAD: registre care realizează conexiunea cu magistrala de
date, respectiv de adrese. RAD este încărcat cu date de pe
magistrala B în acelaúi timp cu efectuarea unei operaĠii de către
ALU. RDA este încărcat de pe magistrala C atunci când se
activează semnalul M1. Semnalele M2 úi M3 comandă poziĠionarea
conĠinutului lui RDA pe magistrala de date (scriere în memorie) úi
respectiv înregistrarea datelor de pe magistrală în RDA (citire din
memorie). Datele încărcate în RDA pot fi utilizate la o intrare a
unităĠii ALU prin semnalul de comandă A0 care se aplică
multiplexorului.
Fig. 5.2. Structura unei maúini microprogramate de tip A (mA).
225 226

5.2. MicroinstrucĠiunile Semnalele L0 úi L1 sunt identice úi sunt generate de ceasul intern al


sistemului. În fiecare perioadă, L0 úi L1 permit stocarea datelor pe
magistralele A úi B. În concluzie, nu este necesară specificarea lor în
În exemplul prezentat anterior, microinstrucĠiunile reprezintă setul
instrucĠiuni. Rămân 61 – 36 – 2 – 2 + 1 = 22 biĠi suficienĠi pentru comanda
de semnale care sunt primite de componentele unităĠii de execuĠie a maúinii Făii de date a micromaúinii. În structura microinstrucĠiunii vor intra astfel 22
microprogramate. În total sunt 61 de linii de comandă, dispuse în nouă biĠi de comandă plus alĠi biĠi descriúi în continuare.
grupe 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 pe 5.2.1. Structura unei microinstrucĠiuni
magistrala A, la un moment dat putând fi selectat un singur registru
(în figura 5.2 nu au fost reprezentate aceste semnale); O microinstrucĠiune cuprinde mai multe păUĠi, numite câmpuri,
 16 semnale pentru transferul de date din registrele R1 … R16 pe fiecare câmp definind o funcĠie proprie. Reprezentarea din figura 5.3 arată
magistrala B cu menĠiunile anterioare; structura unei microinstrucĠiuni.
 16 semnale pentru transferul de date de pe magistrala C într-unul 1 2 2 2 1 1 1 1 1 4 4 4 8
din registrele R1 … R16 (nici aceste semnale nu au fost
reprezentate pe schemă din motive de spaĠiu);

COND*

ADDR*
AMUX

VALC
DEPL

RDA
RAD
ALU

WR
RD
 două semnale de comandă a încărcării registrelor tampon RTA úi

A
C

B
RTB, notate în figură cu L0 úi L1;
 două semnale care selectează operaĠiile executate de ALU (F0 úi
F1); Fig. 5.3. Structura unei microinstrucĠiuni (câmpuri úi număr de biĠi alocat); * neprezentat.
 două semnale de comandă a registrului shift (S0 úi S1);
 patru semnale de comandă a registrelor RDA úi RAD (M0, M1, M2 Rezultă un total de 22 + 2 + 8 = 32 biĠi. SemnificaĠia acestor biĠi este:
úi M3);  AMUX (1 bit) 0 – intrare din RTA;
 două semnale care indică operaĠiile de scriere/citire în/din memoria 1 – intrare din RDA.
principală;  ALU (2 biĠi) 0 – A+B;
 un semnal de comandă pentru AMUX (A0). 1 – AB;
Maúina funcĠionează secvenĠial, fiind necesar un registru de 2 – A;
comandă de 61 biĠi. Acest număr al semnalelor de comandă este prea mare. 3 – nonA.
S-a încercat reducerea lui prin selectarea registrelor R1 … R16 cu ajutorul  DEPL (2 biĠi) 0 – făUă deplasare;
unei linii de comandă de 4 biĠi pentru fiecare magistrală. Semnalele se obĠin 1 – deplasare la dreapta;
apoi prin trei decodoare 4/16 care generează cele trei grupe de 16 semnale. 2 – deplasare la stânga;
3 – neutilizat.
În felul acesta se economisesc 3  12 = 36 biĠi.
Procedând astfel, la fiecare pas trebuie încărcat un registru. SituaĠia  RDA (1 bit) indică încărcarea RDA cu cuvântul de pe magistrala C;
nu este mereu avantajoasă. De exemplu, este posibilă executarea unei  RAD (1 bit) indică încărcarea RAD cu cuvântul din RTB;
operaĠii ALU doar pentru setarea semnalelor N úi Z. De aceea se utilizează  RD (1 bit) indică citirea din memoria centrală;
un semnal suplimentar de validare a încărcării, VALC. Acesta ia valoarea 1  WR (1 bit) indică scrierea în memoria centrală;
când validează încărcarea úi 0 când o interzice. VALC este legat de intrarea  VALC (1bit) autorizează încărcarea registrelor generale:
de CS (Chip Select) a decodorului. Semnalele M2 úi M3 pot informa în 0 – interdicĠie;
exterior tipul operaĠiei (citire/scriere din/în memorie). În acest fel se 1 – validare.
economisesc încă 2 biĠi.  încărcare/depunere de pe magistrala C/pe magistrala A sau B
(semnal pe 3  4 biĠi).
227 228

5.2.2. ExecuĠia unei microinstrucĠiuni 5.2.3. Unitatea de comandă

O instrucĠiune cuprinde patru subcicluri de execuĠie (este folosit un Schema bloc a sistemului microprogramat este prezentată în figura
ceas cu patru faze): 5.5. Unitatea de comandă preia codul în limbaj de asamblare úi comandă calea
1. încărcarea microinstrucĠiunii care trebuie executată într-un registru de date prezentată anterior. Componentele sale sunt descrise în continuare.
particular denumit registru microinstrucĠiune RMI; Memoria de microprogram se mai numeúte memorie de comandă
2. transferul conĠinutului registrelor selecĠionate pe magistralele A, B (există însă diferenĠe între memoria de program úi cea de microprogram).
úi încărcarea datelor în RTA úi RTB; Memoria de microprogram este o memorie foarte rapidă care conĠine
3. realizarea operaĠiilor ALU úi ale registrului shift; dacă este necesar, instrucĠiuni microprogramate. Pentru majoritatea micromaúinilor, memoria
RAD este încărcat de la ieúirea registrului tampon B; de microprogram este de tip read-only; există úi posibilitatea utilizării
4. încărcarea datelor de la ieúirea registrului shift în registrul memoriei de tip read-write, ceea ce conferă posibilitatea modificării
selecĠionat úi/sau în registrul RDA. dinamice a programului.
Până acum s-a prezentat calea de date a maúinii. În cele ce urmează
se va analiza blocul care generează semnalele de comandă Adresă microprogram
(microinstrucĠiunile) pentru calea de date.
Schema ceasului úi fazele semnalului de ceas sunt reprezentate în
figura 5.4.
SecvenĠiator de Memorie de
microprogram microprogram

Control adresă următoare


Stare Control

Calea de date

Fig. 5.5. Schema bloc a unităĠii de comandă.

În exemplul anterior. microinstrucĠiunile sunt de 32 de biĠi. Există


256 de microinstrucĠiuni, ceea ce necesită 8 biĠi de adresă (aúa se explică
câmpul ADDR de 8 biĠi în structura câmpurilor microinstrucĠiunii). Cele
256 de microinstrucĠiuni cer o memorie de 8192 biĠi (256 instrucĠiuni  32
biĠ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 de
control pentru fiecare resursă hardware a maúinii.
Fig. 5.4. Fazele semnalului de ceas. SecvenĠiatorul de microprogram primeúte de pe calea de date
starea curentă a acesteia prin biĠii de stare (starea este dată de semnalele N úi
Z). SecvenĠiatorul de microprogram are rolul de a adresa următoarea
229 230

microinstrucĠiune, în funcĠie de starea căii de date úi de biĠii de control ai Încărcarea datelor de pe magistrala C într-unul din cele 16 registre
adresei următoare, care sunt daĠi la rândul lor de câmpurile COND úi ADDR generale nu este posibilă decât atunci când se îndeplinesc următoarele condiĠii:
din microinstrucĠiune. Prin linia de adresă a microprogramului se selectează 1. VALC = 1;
instrucĠiunea care este depusă pe intrarea de control a căii de date. 2. subciclul curent de ceas este 4 (ĭ4 activ);
Astfel, semnificaĠia câmpului COND este următoarea: 3. registrul este indicat de câmpul C al microinstrucĠiunii.
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; 5.2.4. Modul de lucru al microsecvenĠiatorului
3 – salt necondiĠionat la ADDR.
Schema generală a micromaúinii este dată în figura 5.6. NotaĠiile EcuaĠia logică a microsecvenĠiatorului este:
folosite sunt următoarele: O(s) = DN + SZ + SD,
MCO = microcontor (registru de adresare a memoriei de
microprogram); unde:
INCR = circuit de incrementare (INCR = MCO + 1); O ȝs) = ieúirea microsecvenĠiatorului;
MMUX = multiplexor care lucrează în concordanĠă cu decizia D = bitul dreapta al câmpului COND;
provenită de la microsecvenĠiator; el va alege pentru S = bitul stânga al câmpului COND;
microinstrucĠiunea următoare fie adresa MCO + 1, fie N, Z = semnale de stare generate de ALU (negativ úi zero).
adresa specificată în ADDR. Când O ȝs) = 1 are loc schimbarea adresei microinstrucĠiunii
urmă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 este


dată de modul de codare a microinstrucĠiunii.
Se presupune că pentru comanda maúinii mA sunt necesare n
semnale. Când microinstrucĠiunile conĠin n biĠi, câte un bit pentru fiecare
microcomandă, ele sunt denumite microinstrucĠiuni în format orizontal.
Exemplu. În cazul micromaúinii mA s-ar fi putut renunĠa la
utilizarea decodoarelor pentru magistralele A, B sau C. De asemenea, ALU
ar fi putut să nu conĠină un decodor intern pentru cele patru operaĠii
executate. În acest caz, pentru fiecare încărcare de pe/pe magistrală ar fi fost
nevoie 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 află
formatul orizontal, în care fiecare bit semnifică o microcomandă. În
consecinĠă, microinstrucĠiunea conĠine mulĠi biĠi.
La cealaltă extremitate se află formatul vertical, în care
microinstrucĠiunile conĠin un număr mic de biĠi ( n), însă câmpurile
microinstrucĠiunii sunt puternic codate. Dacă în microprogramarea orizontală
Fig. 5.6. Schema bloc a unei micromaúini (schema modificată pentru mA).
231 232

un microprogram necesită puĠine instrucĠiuni cu mulĠi biĠi, în programarea Tabelul 5.1


verticală acelaúi microprogram necesită multe instrucĠiuni cu puĠini biĠi. Codul operaĠiei pentru microinstrucĠiunile în format vertical
În practică se întâlnesc formate mixte, cum este cel prezentat în Binar Simbol Descriere OperaĠie
exemplul micromaúinii mA, situat între cele două extremităĠi. Astfel, la
formatul prezentat se întâlnesc câmpuri asociate direct microcomenzilor (de 0000 ADD adunare R1 = R1 + R2
exemplu, RAD, RDA, AMUX, RD, WR), care au un efect imediat asupra 0001 AND ùI logic R1 = R1  R2
circuitelor micromaúinii. Însă se întâlnesc, de asemenea, úi câmpuri de biĠi 0010 MOVE deplasare R1 = R2
codate (de exemplu, ALU, A, B, C), care necesită utilizarea unui decodor 0011 COMPL complement R1 = inv(R2)
înainte de aplicarea pe circuitele corespunzătoare.
0100 SHIFTL deplasare stânga R1 = shiftleft(R2)
0101 SHIFTR deplasare dreapta R1 = shiftright(R2)
5.3.1. Micromaúina cu format vertical 0110 GETRDA încărcare R1 cu RDA R1 = RDA
0111 TEST test registru if R2 < 0 then N = true
MicroinstrucĠiunea verticală tipică conĠine un câmp numit codul if R2 = 0 then Z = true
operaĠiei (care poate fi văzut ca o generalizare a câmpului ALU) úi mai
1000 BEGRD început RD RAD = R1; RD
multe câmpuri de operanzi, de exemplu: A, B, C. Pentru a clarifica distincĠia
între microprogramul orizontal úi cel vertical, se va revizui micromaúina 1001 BEGWR început WR RAD = R1; RDA = r2; WR
mA, utilizând de această dată microinstrucĠiuni verticale. Fiecare nouă 1010 CONRD continuare RD RD
microinstrucĠiune va cuprinde trei câmpuri de 4 biĠi, deci un total de 12 biĠi 1011 CONWR continuare WR WR
faĠă de 32 de biĠi la versiunea precedentă. 1100 LIBER – –
Primul câmp este codul operaĠiei (COP) care arată ce trebuie să facă 1101 NJUMP salt dacă N = 1 if N then go to R
microinstrucĠiunea. Celelalte câmpuri sunt registrele R1 úi R2.
1110 ZJUMP salt dacă Z = 1 if Z then go to R
MicroinstrucĠiunile de salt regrupează registrele R1úi R2 pentru a forma un
câmp de 8 biĠi (fie acesta R). 1111 UJUMP salt necondiĠionat go to R
În tabelul 5.1 este prezentat codul operaĠiei (fiecare tip de ObservaĠie: R = l6R1 + R2.
microinstrucĠiune).
Se observă că fiecare microinstrucĠiune nu realizează decât o singură Blocul NZ este un registru de 2 biĠi care înregistrează semnalele N úi
operaĠie úi că cei 12 biĠi ai microinstrucĠiunii sunt suficienĠi pentru a Z la ieúirea ALU, când această înregistrare este ordonată de decodor. Acest
specifica o operaĠie la un moment dat. Corespunzător, maúina se modificăúi artificiu este utilizat deoarece pe micromaúina B nu este realizată decât o
rezultă micromaúina mB, în conformitate cu schema din figura 5.7. singură operaĠie în timpul unei microinstrucĠiuni. Astfel, testarea úi
Se constată că la cele două scheme căile de date sunt identice. În utilizarea biĠilor N úi Z se face doar în microinstrucĠiunea următoare, deci
schimb, la micromaúina cu format vertical nu sunt utilizate decât două este necesară o păstrare a lor în registru.
decodoare 4 la 16 pentru R1 úi R2 în locul celor trei decodoare A, B, C din
schema anterioară. De asemenea, în schemă apar trei elemente noi: blocul Decodorul COP reprezintă elementul central al micromaúinii.
ùI, blocul NZ úi decodorul COP. Acesta analizează codul operaĠiei úi precizează acĠiunile care se vor
Blocul ùI conĠine 16 porĠi ùI care permit câmpului R1, după întreprinde. Decodorul COP distribuie 13 microcomenzi distincte către
traversarea decodorului R1, să comande golirea unui registru pe magistrala blocul ùI, microsecvenĠiator, registrul NZ, AMUX, ALU, circuitul shift,
A úi încărcarea sa pe magistrala C. Desigur că aceste operaĠii nu pot fi RAD úi RDA. Pentru fiecare din cele 16 coduri de operaĠii posibile trebuie
simultane. De aici necesitatea porĠilor ùI care determină în timpul determinat care dintre cele 13 microcomenzi sunt active (1) úi care sunt în
subciclului 4 încărcarea unui registru când această operaĠie este validată de repaus (0).
decodorul COP.
233 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’D
RD = AB’C’D’ + AB’CD’ = AB’D’
WR = AB’C’D + AB’CD = AB’D
MSA = ABCD’ + ABCD = ABC
MSB = ABC’D + ABCD = ABD

Tabelul 5.2
CorespondenĠa microinstrucĠiuni-microcomenzi la micromaúina cu format vertical

comenzi
in-

SHIFTA

SHIFTB

AMUX
ALUA

ALUB

MSA
RAD

RDA

MSB
WR
RD
NZ

ùI
struc-
Ġiuni

0 ADD + +
1 AND + + +

2 MOVE + + +

3 COMPL + + + +

4 SHIFTL + + + +

5 SHIFTR + + + +
6 GETRDA + + + +
Fig. 5.7. Structura micromaúinii cu format vertical (mB).
7 TEST + +
Rezultă astfel un tablou 16  13, prezentat în tabelul 5.2. 8 BEGRD + + +
Dacă se numerotează cei patru biĠi care codează microinstrucĠiunea
cu A, B, Cúi D, atunci se pot obĠine, după minimizare, următoarele funcĠii 9 BEGWR + + + +
logice (ideal pentru implementare este un PLA cu 4 intrări úi 13 ieúiri): 10 CONRD + +

ALUA = A’B’CD’ + A’B’CD + A’BC’D’+ A’BC’D + A’BCD’ + A’BCD + 11 CONWR + +


+ AB’C’D’ + AB’C’D +ABC’D + ABCD’ + ABCD = 12 LIBER
= C + AB’ + A’B + AD
ALUB = A’B’C’D + A’B’CD = A’B’D 13 NJUMP + +
SHIFTA = A’BC’D’ 14 ZJUMP + +
SHIFT B = A’BC’D
15 UJUMP + + +
NZ = 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’
235 236

5.3.2. ComparaĠie între cele două microprograme  Resursele maúinilor necesare pentru instrucĠiunile complexe, rar
folosite, sunt utilizate mai bine pentru accelerarea performanĠei
Micromaúina mA are un format mixt, conĠinând atât câmpuri instrucĠiunilor simple (folosite în mod obiúnuit).
verticale cât úi câmpuri orizontale, pe când micromaúina mB are un format  InstrucĠiunile complexe microcodate, care necesită multe úi diverse
vertical. cicluri ceas, sunt dificil de actualizat pentru creúterea performanĠei.
Exemplu. În cazul în care microprogramul ar fi utilizat pentru  Seturile de instrucĠiuni simple permit execuĠii directe ale hardware-
interpretarea unui număr de 23 de tipuri de macroinstrucĠiuni, atunci
ului, evitând penalizarea performanĠei a execuĠiei microcodate.
microprogramul micromaúinii mA ar trebui să aibă 79 microinstrucĠiuni a
câte 32 biĠi, rezultând 2528 de biĠi în memoria de microprogram. În schimb,
Ar trebui menĠionat că există la fel de bine úi puncte-contor:
microprogramul micromaúinii mB conĠine 160 microinstrucĠiuni a 12 biĠi,
 InstrucĠiunile complexe din implementările dificil microcodate pot
rezultând în total 1920 de biĠi. Se obĠine astfel un câútig de 24% în
capacitate de memorie, deci o diminuare a costului de implementare pentru Vă nu ia multe extra-resurse ale maúinilor (cu excepĠia spaĠiului
al doilea caz (micromaúina mB cu structură verticală). microcodului); de exemplu, aceeaúi ALU este utilizată des pentru a
Inconvenientul major al formatului vertical este dat de numărul calcula adrese efective precum úi să calculeze rezultatele operanzilor
important de microinstrucĠiuni care trebuie executate pentru interpretarea actuali.
unei macroinstrucĠiuni. Aceasta se traduce într-o diminuare netă a vitezei  InstrucĠiunile non-RISC, care implică operanzi direcĠi de memorie,
micromaúinii. Din acest motiv, calculatoarele mari úi rapide utilizează sunt folosite frecvent de către compilatorii moderni, chiar úi stivele
microprogramarea orizontală. În schimb, maúinile mai modeste utilizează de operaĠii aritmetice (ex. rezultatul memoriei) sunt de obicei
microprogramarea verticală pentru simplitate úi preĠ de cost mai mic. întrebuinĠate. Deúi asemenea operaĠii de memorie, de multe ori cu
Într-adevăr, microprogramarea verticală permite scrierea uúoară a decodări cu lungimi variate, sunt mai greu de actualizat, este pe
microprogramului, deoarece fiecare linie de microprogram reprezintă o deplin fezabil, exemplificându-se în mod limpede prin Intel 486,
singură operaĠie. Microprogramul este mult mai lizibil decât la Cyrix 6x86 etc.
microprogramarea orizontală, unde o microinstrucĠiune reprezintă operaĠii  InstrucĠiunile non-RISC îndeplinesc, în mod firesc, mai multă muncă
multiple. pe instrucĠiune (în medie) úi de asemenea de obicei sunt extrem de
În ultimul timp, când competiĠia dintre arhitecturile RISC úi CISC a codate; aúa că permit dimensiuni exterioare mai mici ale aceluiaúi
fost eliminată, se poate spune acelaúi lucru úi despre formatele vertical úi program, iar astfel o utilizare mai bună a memoriilor cache limitate.
orizontal pentru microinstrucĠiuni.  Implementările CISC (Complex Instruction Set Computer) moderne
– cel mai remarcabil x86 – îndeplinesc cele mai multe instrucĠiuni úi
5.3.3. Analiza comparativă a sistemelor microprogramate toate modurile de adresare “în hardware”; microcodul este încă
Microcod vs VLIW (Very Long Instruction Word) úi RISC folosit, pentru câteva instrucĠiuni extrem de complexe sau foarte
speciale (precum CPUID – CPU Identification) precum úi pentru
Procesoarele proiectate propice, microcodate puternic cu instrucĠiuni housekeeping intern.
complexe au luat naútere la începutul anilor 1960 úi au continuat până la
mijlocul anilor 1980. La acel punct, filozofia proiectării RISC-ului a început Multe procesoare RISC úi VLIW sunt proiectate să execute fiecare
Vă devină mai proeminentă. Aceasta a inclus punctele: instrucĠiune (cât timp este în cache) într-un singur ciclu. Acesta este foarte
 Analiză arată că instrucĠiunile complexe sunt folosite rar, întrucât similar modului în care CPU-urile cu microcod execută o microinstrucĠiune
resursele maúinilor necesare lor sunt risipite foarte mult. pe ciclu. Procesoarele VLIW au instrucĠiuni care se comportă similar
 Programarea s-a îndepărtat foarte mult de nivelul de asamblare, deci microcodului orizontal, cu toate că nu au un asemenea control
nu se mai merită să furnizezi instrucĠiuni complexe din motive de microgranular asupra hardware-ului precum asigură microcodul.
productivitate. InstrucĠiunile RISC sunt uneori similare limitatului microcod vertical.
237 238

5.4. Nanoprogramarea 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:
Până acum, discutând despre microprograme, s-a presupus existenĠa
unei memorii principale (care conĠine instrucĠiunile nivelului 2) úi a unei (4096  100) – (4096  7) – (128  100) = 368 128 biĠi.
memorii de comandă (care conĠine microprogramul).
O a treia memorie, denumită nanomemoria, permite în unele cazuri Economia de memorie este realizată în contextul unei reduceri
o asociere optimă între microprogramul orizontal úi cel vertical Astfel, sensibile de viteză. Datorită faptului că un ciclu de extragere a
nanoprogramarea corespunde unei optimizări statistice a microprogramului, microinstrucĠiunii necesită două accese la memorie (memoria de comandăúi
în cazul în care un set de instrucĠiuni este mai des solicitat. În figura 5.8 este nanomemorie), maúina nanoprogramată este mai lentă decât maúina
reprezentat (prin comparaĠie cu microprogramarea) conceptul de microprogramată. Din acest considerent, în ultimul timp s-a folosit din ce în
nanoprogramare. ce mai rar conceptul de nanoprogramare.
Î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 că
o analiză detaliată a microprogramului arată că dintre cele 2w posibilităĠi de 5.5. Exemplu de sistem microprogramat AMD
reprezentare sunt utilizate doar m << n instrucĠiuni.
În cazul b) s-a construit o nanomemorie de m cuvinte a câte w biĠi 5.5.1. UnităĠi de execuĠie integrate
care conĠine cele m microinstrucĠiuni mai des utilizate. Atunci fiecare
microinstrucĠiune a microprogramului original poate fi înlocuită în memoria Unitatile de executie se prezinta sub forma unor circuite integrate pe scara
de comandă prin adresa cuvântului din nanomemorie care conĠine medie/larga. De regula ele sunt structurate transe de biti astfel incat, prin
nanoinstrucĠiunea corespunzătoare, rezultând lăĠimea cuvântului în memoria concatenare si prin utilizarea unor circuite aditionale, se pot construi sisteme de
de comandă de log2m biĠi. prelucrare pentru date organizate pe 4, 8, 16, 24, 32, 48 sau 64 de biti. UnităĠile de
execuĠie integrate s-au comercializat în asociaĠie cu unităĠile de comandă
w log2m corespunzătoare úi cu o serie de circuite adiĠionale, formând ceea ce se cheamă
microprocesoare pe tranúe de biĠi, microprocesoare bit-slice, microprocesoare
multi-chip etc.
Printre cele mai răspândite familii de microprocesoare bit-slice s-au aflat úi
cele 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 este
n micro- prevăzută cu elementele necesare cuplării în cascadă. Semnalele de comandă se
microprogram program w aplică 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.
nanoprogram In cele ce urmeaza va fi prezentata unitatea de executie AMD 2901 sub
m aspect structural úi functional.

5.5.2. Unitatea de execuĠie AMD 2901


a) b)
Unitatea de executie AMD 2901 este organizata pe transe de 4 biti/circuit
Fig. 5.8. a) Microprogramare convenĠională; b) microprogramare úi nanoprogramare. si este prevazuta cu elementele necesare cuplarii in cascada.
Semnalele de comanda se aplica sub forma unor vectori binari la
Exemplu. Fie un microprogram de nw = 4096  100 biĠi cu m = 128 terminalele circuitului, fiind, de regula, preluate sub controlul unui circuit micro-
de instrucĠiuni diferite folosite mai frecvent. Rezultă o nanomemorie având secventiator integrat (AMD 2909, 2911) de la o memorie cu continut permanent.
239 240

Aceasta solutie se foloseste in cazul unitatilor de comanda microprogramate.


Uneori, pentru a mari viteza de operare, in locul unitatii de comanda
microprogramate 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 memorii
RAM 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 operatii
aritmetice binare si 5 operatii logice si sa genereze, atit indicatorii de conditii:
depasire, zero, semn, transport (Cn+4), cat si conditiile de propagare (P) si
generare(G) ale transportului, la nivelul intregului circuit;
- un selector de date pentru cele doua intrari ale unitatii aritmeticelogice, care pot
reprezenta 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 tampoane
TS 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 iesirea
UAL, fie cu propriul sau continut deplasat stanga/dreapta prin intermediul unei
retele logice de deplasare-multiplexor QSHIFT;
- o retea de deplasare-multiplexor RAMSHIFT, plasata pe intrarea B a memoriei
RAM biport.
Indicatorii de conditii trebuie stocati intr-un registru dupa fiecare operatie
efectuata 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 (Date
externe), 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


Fig. 5.9. Schema bloc a circuitului AMD 2901.
Microcod Codul Sursa
Mnemonica octal Intrarea directa D este folosita pentru a introduce date in circuit, in RAM si
I2 I1 I0 R S
in registrul Q. Registrul Q este utilizatin operatiilede inmultire si impartire, ca
AQ 0 0 0 0 A Q
extensie sau ca acumulator/registru in unele aplicatii.
AB 0 0 1 1 A B
ZQ 0 1 0 2 0 Q
9 biti
ZB 0 1 1 3 0 B
ZA 1 0 0 4 0 A
DA 1 0 1 5 D A
DQ 1 1 0 6 D Q
I8:6 I5:3 I2:0
DZ 1 1 1 7 D Z
Destinatie UAL Functie UAL Sursa UAL
8 7 6 5 4 3 2 1 0
Figura 5.9 prezinta schema bloc a circuitului AMD 2901. Unitatea
aritmetica-logica poate efectua sub controlul semnalelor I3:5 trei operatii aritmetice
Fig. 5.10. Structura vectorului de comanda (Microcodul I8:0).
binare si cinci operatii logice asupra operanzilor aplicati la intrarile R si S.
241 242

Campul "Destinatie UAL" din vectorul de comanda are o semnificatie Un cuvant al memoriei de control reprezinta un vector de comanda sau o
complexa prin faptul ca specifica: microinstructiune. Secventiatorul de microprogram, structurat pe transe de cate 4
- operarea RAM (deplasare/incarcare/inactiv); biti, este destinat generarii adreselor de microinstructiuni si asigurarii inlantuirii
- operarea registrului Q (deplasare/incarcare/inactiv); acestora. Secventiatorul, prezentat mai jos, are ca resurse hardware:
- conexiunile la RAMSHIFT (RAM0 si RAM3); - Contorul de MicroProgram (CMP);
- conexiunile la QSHIFT (Q0 si Q3); - Registrul de Ramificare (RR);
- iesirea Y. - Indicatorul de Stiva (IS);
Cuvantul (microinstructiunea) de comanda al unitatii de executie va avea - STiVa (STV) cu capacitate de 4 cuvinte x 4 biti;
structura din figura 5.11. - INCrementatorul (INC);
- MultipleXorul (MUX) 4 x (4 : 1);
23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7654 3210
M I8 I7 I6 M I2 I1 I0 Cn I5 I4 I3 A3A2A1A0 B3B2B1B0 C3C2C1C0
U U
Selectie Selectie Operatie Adresa Adresa Adresa
X X
destinatie sursa UAL “A” “B” “C”
1 2

Fig. 5.11. Cuvântul de comandă al unităĠii de execuĠie.

Se poate observa ca microinstructiunea care controleaza unitatea de


executie poseda 24 de biti. Bitii 0,..,3 au aparut ca urmare a inglobarii datei in
microinstructiune (microinstructiune cu operand imediat). Campul D se va extinde
in incrementi de 4 biti odata cu extinderea lungimii cuvantului prelucrat de catre
unitatea de executie. Campul Cn este asociat cu transportul in rangul cel mai putin
semnificativ al unitatii de executie, fiind la latitudinea celui care scrie
microprogramul.

5.5.3. Unitatea de comanda integrata. Secventiatorul de microprogram


AMD 2909

Secventiatorul de microprogram AMD 2909 face parte din familia de


circuite AMD2900 si constituie elementul de baza in jurul caruia este organmizata
unitatea de comanda microprogramata.
Dupa cum s-a aratat in paragraful anterior, atat unitatea de executie AMD
2901, cat si circuitele asociate acesteia sunt controlate cu ajutorul unui vector de
comanda constituit din campuri de biti, cu functii bie precizate. Un asemenea
vector controleaza operatii aritmetice elementare, care se pot efectua pe durata unei
perioade de ceas. Vectorul semnalelor de comanda poate fi generat cu ajutorul unui Fig. 5.12. Unitatea de comanda (schema bloc)
circuit secvential, in cazul unitatilor de comanda conventionale, sau extras dintr-o
memorie cu continut permanent, in cazul unitatilor de comanda microprogramate. Schema bloc a unitatii de comanda va contine, pe langa microsecventiator,
Operatiile cu caracter complex, printre care se numara si instructiunile si elementele necesare realizarii unei unitati de comanda:
calculatoarelor conventionale, se implementeaza sub forma unor secvente de - Memoria de Microprogram (MM);
vectori de comanda. In sistemele microprogramate aceste secvente sunt stocate - Registrul MicroInstrucriunii (RMI);
intr-o memorie de control sau memorie de microprograme. - un Comutator de Adrese (CA);
- o memorie de tip PROM.
243

Secventierea microinstructiunilor este realizata prin controlul circuitului


2909 cu ajutorul semnalelor preluate din campurile de control ale
6. NIVELUL SISTEMULUI DE OPERARE
microinstructiunii si de la conditiile externe.

Acest nivel are un caracter hibrid, cea mai mare parte a instrucĠiunilor care
definesc limbajul fiind de tip maúină. Existăúi instrucĠiuni specifice, care necesită
interpretare pentru a fi trecute pe nivelul 2.
Nivelul sistemului de exploatare are sarcini particulare în ceea ce priveúte
gestionarea memoriei (lucrul cu memoria virtuală prin conceptele de paginare úi
segmentare) úi organizarea execuĠiei în paralel a mai multor programe. Atât nivelul
microprogramat cât úi nivelul sistemului de operare (exploatare) sunt necesare
pentru interpretarea nivelurilor inferioare. Acestea sunt scrise de specialiúti úi sunt
orientate către numeric. Începând cu nivelul imediat superior (limbajul de
asamblare) apare orientarea către simboluri, cuvinte, toate acestea având o anumită
sintaxă.

6.1. Conceptul de paginare

Paginarea este procedeul de realizare în memorie a unor blocuri fixe


numite pagini, care pot fi utilizate în mecanismul interschimbării proceselor
(transferul blocurilor între memoria internăúi cea externă). Tehnica paginării este
larg folosită úi poate fi independentă de gestionarea memoriei. Există procesoare
care creează pagini în memoria fizică, sau, ca în cazul familiei Intel, în memoria
virtuală.
Ideea este de a face distincĠia între capacitatea de adresare fizică a
sistemului care defineúte un spaĠiu de memorie (denumit memorie virtuală) úi
capacitatea de memorie instalată în sistem (denumită memorie fizică sau reală).
Exemplu. Fie un sistem cu 16 linii (64 KB) úi o memorie instalată de 4
linii (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.
Fig. 5.13. Schema bloc AMD 2909. O singură pagină de 4 KB se poate afla la un moment dat în memoria
principală (MP) sau fizică. Dacă programul conĠine mai multe pagini, restul
Se poate observa, in schema bloc din figura 5.13, faptul ca intrarea R a paginilor se află undeva în memoria secundară (pe floppy disk sau pe hard disk).
microsecventiatorului este preluata direct de la iesirea memoriei de comanda, fara a
mai fi stocat in prealabil in registrul microinstructiunii RMI.
245 246

Când programul trebuie să execute o instrucĠiune din pagina următoare, Tabelul 6.1
sistemul de gestiune al memoriei virtuale (care face parte din sistemul de operare) ComparaĠie între capacităĠile de adresare a memoriei fizice úi a memoriei virtuale
execută următoarele operaĠii:
Procesor Memoria maximă fizic adresabilă Memoria virtuală maximă
1. salvează conĠinutul memoriei periferice în memoria secundară; 8086 1 MB (20 linii) –
2. localizează pagina respectivă în memoria secundară;
3. încarcă această pagină în MP; 80286 16 MB (24 linii) 1 GB
4. asociază adreselor absolute adresa de memorie fizică de la 0 la 4095; 80386 4 GB (32 linii) 64 TB
5. continuă execuĠia programului.
80486 4 GB (32 linii) 64 TB
spaĠiul virtual o pagină de 4 KB Pentium 4 GB (32 linii) 64 TB

0 0
Memoria reală care păstrează păUĠi din memoria virtuală
spaĠiul fizic
4096 0

8192

12287 Memoria
4095 virtuală
65536 15
Program care
utilizează
Fig. 6.1. Exemplu de paginare. memoria
virtuală
ObservaĠie. Spre deosebire de procesul de segmentare, paginarea este transparentă Disc care
programatorului, fiind realizată de sistemul de operare. stochează
SăUĠi din memoria
Memorie fizicăúi memorie virtuală (fig. 6.2). virtuală
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. Fig. 6.2. Legătura între memoria fizicăúi memoria virtuală.
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 6.1.1 Realizarea unei paginări simple
un model al memoriei úi al adreselor de memorie pe care le are programul
la dispoziĠie (poate fi mai mare decât 1);
3. suportul fizic, de obicei hard disk-ul, pe care sistemul de operare salvează În mod normal, în memoria fizică instalată se pot afla mai multe pagini
zone din memoria totală disponibilă programului pentru a asigura spaĠii active (fig. 6.3.) Dimensiunea paginii cu care operează procesorul Intel, echivalentă
libere în zona de memorie fizică, destinate zonelor de cod sau de date cu de fapt cu dimensiunea blocurilor de memorie cu care se lucrează, este de obicei de
care programul lucrează la momentul respectiv. 4 KB. Se presupune că există o capacitate de adresare fizică de 64 KB (adică 16
linii de adresă). Se împarte acest spaĠiu în pagini de câte 4 KB (blocuri), rezultând
astfel 16 pagini. Se mai presupune că memoria fizică instalată este de 32 KB.
247 248

memoria fizic memoria fizic Avantajele paginării pot fi rezumate astfel:


adresabilă instalată  Părimea fixă a paginilor intră corect într-un sector al unui disc;
64 KB (16 linii) 32 KB  un obiect în memorie nu trebuie să fie continuu: pagina poate constitui o
0 0 nouă „cuantă” de informaĠie;
4096 pagina 0 4096 pagina 0 4 KB  mecanismul paginării úi, implicit, întreaga tehnică de a schimba continuu
pagina 1 pagina 1 blocuri fixe de informaĠii între memoria internă úi cea externă nu sunt
8192 4 KB 8192
vizibile 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-un
pagina 5 director din care se selectează o tabelă a paginilor;
28672
pagina 7  toate obiectele din memorie implicate (directorul úi tabelele) sunt tratate
32678
la rândul lor ca niúte pagini speciale; deci toate au mărimea fixă de 4 KB.
61440 Se păstrează astfel principiul coerenĠei informaĠiei în memorie (ca úi în
pagina 15 cazul segmentelor);
65536
 atât directorul cât úi tabelele de pagini au structura uniformă, fiind
Fig. 6.3. Exemplu de paginare simplă. formate din 1 K „elemente” a câte 4 octeĠi. Aici se găseúte adresa bazei
tabelei úi respectiv a paginii selectate;
Adresa fizică este pe 16 biĠi úi dacă se urmăreúte folosirea memoriei paginate  orice adresă a bazei unei tabele sau a unei pagini este dată pe un număr de
se poate considera că cei mai semnificativi 4 biĠi reprezintă numărul paginii, iar cei 20 biĠi, aceútia constituind partea mai semnificativă a adresei fizice
mai puĠin semnificativi 12 biĠi reprezintă deplasamentul în cadrul paginii. vizate. Blocurile în memorie sunt aliniate din 4 KB în 4 KB, deci automat
Pentru a realiza gestiunea memoriei fizice instalate se va folosi un tabel de cei mai puĠin semnificativi 12 biĠi ai adreselor fizice ale bazelor sunt 0;
pagini cu 16 intrări a câte 4 biĠi fiecare (fig. 6.4.). Din cei 4 biĠi, un bit va indica  adresa fizică a bazei directorului se află în unul din cele patru registre de
dacă pagina fizică adresabilă se află sau nu în memoria principală, restul de 3 biĠi control al microprocesoarelor.
(acest număr este dat de fapt de numărul de biĠi cu care poate fi codificat numărul
de pagini aflate în memoria instalată) indică pagina din memoria instalată în care se
află pagina din memoria fizică adresabilă la care se face referire. 6.1.2. Politica de înlocuire a paginilor

memorie fizic adresabilă deplasament Într-un sistem care foloseúte memoria virtuală, sistemul de operare trebuie să
stabilească următoarele politici de gestionare:
0011 0000 0001 0110
 politica fetch: stabileúte când o pagină trebuie adusă în memorie;
 paginarea la cerere: aduce o pagină în memorie doar ca rezultat al
4 12
excepĠiei page fault;
0  pre-paginarea: încearcă să anticipeze úabloane de utilizare a memoriei în
1 viitor úi să aducă paginile în memorie înainte ca cererile de accesare să
fie emise. Scopul pre-paginării este de a reduce consecinĠele operaĠiilor
2 de citire/scriere, programând ca acestea să se desfăúoare în paralel cu
1 1 1 0
3 procesarea desfăúurată de unitatea centrală.
 politica de plasament: unde să fie puse paginile sau segmentele aduse în
memorie. Această politică este folosită în cazul segmentelor făUă
110 0000 0001 0110 paginare. În caz contrar, o pagină nu contează unde este plasată
15
(excepĠia este reprezentată de arhitecturile NUMA, unde este avantajos
ca o pagină să fie stocată cât mai aproape de procesorul care o va folosi).
Fig. 6.4. Gestiunea memoriei fizice folosind tabelul de pagini.
249 250

 politica de înlocuire: dacă memoria este complet ocupată, când intervine 5. dacă pagina a fost modificată, această pagină este întâi scrisă pe disc;
o excepĠie page fault, o pagină sau un segment de memorie trebuie să fie 6. pagina necesară este citită de pe disc;
evacuate. Politicile de înlocuire stabilesc care pagini sau segmente să fie 7. pagina este mapată spaĠiului de adrese al aplicaĠiei;
înlocuite. 8. este reluată execuĠia aplicaĠiei.
Algoritmii de înlocuire intră în acĠiune atunci când sistemul de operare Algoritmii de înlocuire pot fi locali sau globali. Când apare semnalul de
primeúte semnalul de page fault, prin care se înĠelege că pagina solicitată nu se află page fault, algoritmii de înlocuire locali selectează pagini care aparĠin aceluiaúi
în memoria fizică, ci pe disc. La primirea acestui semnal, algoritmul de înlocuire a proces, în timp ce algoritmii globali pot selecta orice pagină din memorie.
paginii are sarcina de a muta o pagină existentă în memoria fizică pentru a face loc Algoritmul optim de înlocuire (Belady)
paginii care va fi copiată de pe disc.
Decizia corectă asupra paginii care va fi mutată este crucială pentru viteza cu Algoritmul optim de înlocuire, cunoscut úi sub numele de algoritmul lui
care va rula aplicaĠia. Deoarece lucrul cu discul este lent, este de preferat să se Belady, este un algoritm de înlocuire ce funcĠionează după următorul principiul:
realizeze cât mai puĠine operaĠii cu acesta. Cu cât un algoritm păstrează paginile de când o pagină trebuie copiată de pe disc în memorie, sistemul de operare mută
care va fi nevoie în memorie mai mult timp, cu atât acesta este mai eficient. conĠinutul paginii care va fi folosită în proces cel mai târziu, din memorie pe disc,
Obiectivul unei politici de înlocuire este de a determina o rată de apariĠie a Iăcându-i loc noii pagini. De exemplu, o pagină care nu va fi folosită în
excepĠiei page fault cât mai mică. SituaĠia ideală ar fi ca o pagină care este următoarele 10 secunde va fi mutată din memorie pe disc înaintea unei pagini care
eliminată să fie o pagină care nu va mai fi folosită niciodată. Dacă acest lucru nu va fi folosită în următoarele 2 secunde.
este posibil, următoarea opĠiune este ca pagina înlocuită să fie una care nu va mai fi Acest algoritm este unul teoretic, el neputând fi implementat pe sistemele
folosită pentru o lungă perioadă de timp. Întrebarea care se pune este: ce factori pot de operare deoarece nu se poate úti exact cât va dură până când o pagină din
fi folosiĠi pentru a stabili ce pagină trebuie înlocuită? CâĠiva dintre aceúti factori memorie va fi folosită.
sunt următorii: Not Recently Used (NRU)
 durata perioadei în care o pagină a fost situată în memorie: principiul
localităĠii temporale enunĠă faptul că o pagină aflată de mult timp în Algoritmul NRU (nefolosit recent) este un procedeu de înlocuire a
memorie poate să nu mai fie necesară; paginilor care au fost folosite recent. Acest algoritm funcĠionează pe următorul
 cât de recent a fost apelată o pagină: acelaúi principiu al localităĠii principiu: când o pagină este referită, un bit de referinĠă este setat la valoarea 1
temporale enunĠă faptul că probabilitatea ca o pagină care a fost pentru acea pagină, aceasta este acum marcată ca fiind referită. Când o pagină este
apelată de curând să fie apelată din nou în viitorul apropiat este mare; scrisă, un alt bit, de scriere a paginii, este setat la valoarea 1. La un anumit interval
 frecvenĠa cu care a fost apelată o pagină: acest factor nu este la fel de de timp se resetează biĠii de referinĠă a paginilor folosite recent.
important ca cei doi descriúi mai sus, dar există totuúi o probabilitate Sistemul de operare distinge 4 clase de pagini:
relativ ridicată ca o pagină care a fost des apelată să fie apelată din nou  clasa 0: nereferite, nemodificate;
destul de curând;  clasa 1: nereferite, modificate;
 clasa 2: referite, nemodificate;
 proprietatea unei pagini de a fi fost modificată sau nu: dacă toĠi factorii
 clasa 3: referite, modificate.
sunt egali, se alege a fi înlocuită o pagină care nu a fost modificată.
Acest fapt nu va cauza o operaĠie de citire/scriere; First-In First-Out (FIFO)
 eventualitatea ca un cadru să fie blocat: unele cadre sunt blocate –
Algoritmul de înlocuire FIFO (primul intrat, primul ieúit) elimină pagina
aceasta înseamnă că paginile din interiorul lor nu pot fi înlocuite,
care a fost încărcată prima, indiferent de momentul în care această pagină a fost
această proprietate prevenind situaĠia ca pagini din kernel sau din
referită ultima dată. Fiecare pagină are un contor care este iniĠial egal cu 0 pentru
buffer-ele I/O sa fie evacuate.
fiecare cadru de pagină. Pagina care tocmai a fost adusă în memorie va avea
Paúii care sunt parcurúi pentru tratarea excepĠiei page fault sunt:
valoarea contorului egală mereu cu 0, următoarea va avea valoarea 1 (înainte ca
1. aplicaĠia accesează o pagină care nu este prezentă în memoria virtuală;
pagina cu indexul 0 să fie adusă în memorie pagina aceasta avea contorul egal cu
2. apare excepĠia page fault;
zero, dar a fost incrementat cu 1) ú.a.m.d. Practic, se creează un fenomen de
3. este aleasă o pagină goală;
îmbătrânire a paginilor, cea mai “tânăUă” pagină având contorul cu valoarea 0.
4. dacă nu este găsita nicio pagină goală, este aleasă una care urmează a
Când o pagină trebuie eliminată, se va alege mereu cea cu contorul cel mai mare.
fi evacuată din memoria virtuală, această alegere fiind făcută în baza
unor politici de înlocuire;
251 252

Algoritmul FIFO este foarte ieftin, însă are performanĠe slabe comparativ Din cauza costurilor mari se folosesc de obicei algoritmii similari cu LRU,
cu alĠi algoritmi. Din această cauză este rar folosit. Un exemplu de sistem de care oferă o implementare mai ieftină.
operare care foloseúte algoritmul FIFO este VAX/VMS. În unele situaĠii, LRU eúuează lamentabil. De exemplu, în cazul folosirii
ciclurilor care se întind pe mai multe pagini. În aceste cazuri, algoritmul MRU
Second Chance (SC)
(Most Recently Used) este mult mai eficient. Majoritatea implementărilor LRU
Second Chance (a doua úansă) este un algoritm de înlocuire a paginilor încearcă să detecteze aceste cicluri úi să le trateze corespunzător cu algoritmul
inspirat din FIFO, dar care are performanĠe mult mai bune decât acesta din urmă, MRU.
diferenĠa de preĠ fiind una foarte mică. FuncĠionează verificând pagina cu contorul Variante ale LRU sunt:
având cea mai mare valoare (cea mai bătrână pagină), dar în loc de a o extrage ca  LRU-K, cunoscut úi sub numele de LRU-2, LRU-1 fiind identic cu LRU;
în algoritmul FIFO, Second Chance îi acordă o a doua úansă paginii verificând dacă  ARC.
are sau nu fixat bitul de referinĠă. Dacă acesta nu este setat, algoritmul funcĠionează
ca úi FIFO în continuare, mutând pagina din memorie. Dacă bitul de referinĠă este Random (R)
setat, atunci contorul paginii este resetat la valoarea 0, pagina fiind practic inserată Algoritmul de tip Random înlocuieúte aleator o pagină din memorie cu una
din nou în coadă ca úi cum ar fi o pagină nouă. de pe disc. Acest procedeu elimină costurile suplimentare legate de realizarea unui
Clock (C) sistem de monitorizare a referinĠelor către o pagină. De obicei, are rezultate mai
bune decât FIFO úi în cazul ciclurilor chiar rezultate mai bune decât LRU, deúi în
Clock este un algoritm cu performanĠe mai bune decât Second Change, general în practică LRU se descurcă mai bine. Sistemul de operare OS/390
care merge tot pe principiul FIFO. La fel ca úi Second Change, Clock foloseúte biĠi construit pentru mainframe-urile de la IBM foloseúte, de exemplu, algoritmul LRU,
de referinĠă pentru a da o “a doua úansă” paginii. ÎmbunăWăĠirea adusă de Clock iar când performanĠele acestuia scad trece la algoritmul Random.
constă în faptul că nu mai este nevoit să „împingă” paginile în coadă, algoritmul
folosind un pointer (indicator) úi un sistem circulat al paginilor în loc de o coadă. Not Frequently Used (NFU)
Pointer-ul arată care pagină este cea mai veche úi poate fi înlocuită Algoritmul NFU (pagini nefolosite frecvent) generează mai puĠine semnale
Least Recently Used (LRU) de tip eroare de pagină (page fault) decât algoritmul LRU când tabelul de pagini
conĠine mulĠi pointer-i cu valori nule. Acest algoritm foloseúte un counter
Algoritmul Least Recently Used (LRU) – cel mai puĠin frecvent utilizată (număUător), fiecare pagină având un astfel de counter de sine stăWător. La fiecare
pagină, deúi similar în terminologie cu NRU, diferă prin faptul că LRU urmăreúte interval de ceas toate paginile referite în acel interval vor avea counter-ul
paginile într-o perioadă scurtă de timp, în timp ce NRU urmăreúte paginile într-un incrementat cu 1. Astfel, cu ajutorul counter-ului se poate determina cât de frecvent
interval de ceas. LRU funcĠionează pe ideea că paginile folosite cel mai mult în a fost folosită o anumită pagină. Pagina cu valoarea cea mai mică a counter-ului va
trecutul apropiat vor fi cel mai probabil folosite úi în viitorul apropiat, în cadrul fi selectată pentru a fi mutată pe disc. Viteza acestui algoritm este mică datorită
următoarelor câtorva instrucĠiuni. Deúi în teorie LRU se descurcă foarte bine, număUătorului.
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Ġele Aging (A)
ridicate. Algoritmul Aging (îmbătrânire) este o versiune îmbunăWăĠită a NFU, având
Cea mai costisitoare variantă a LRU este cea de tip coadă. Aceasta implică o viteză de lucru mult mai mare. Modificările care îl fac săĠină cont úi de factorul
realizarea unei liste cu toate paginile din memorie. La sfârúitul listei se află cea mai „interval de timp”. În loc ca doar să incrementeze contoarele paginilor apelate,
puĠin utilizată recent pagină iar în vârful listei se află cea mai des recent utilizată nefăcând nici o discriminare din punct de vedere al intervalului de timp în care
pagină. Intrările din listă trebuie rearanjate la fiecare accesare a listei, ceea ce face numărul de apeluri a contribuit la contorul de frecvenĠă, contorul de apel al unei
această metodă foarte lentă. pagini este întâi deplasat către dreapta (împăUĠit la 2), înainte ca bitul de referinĠă să
O altă metodă are nevoie de suport hardware úi funcĠionează pe baza unui fie adăugat în partea stângă a numărului binar. De exemplu, dacă o pagină are biĠii
counter (număUător). De fiecare dată când o pagină este accesată primeúte o de referinĠă: 1, 0, 0, 1, 1, 0 cu 6 perioade de ceas înainte, contorul de referinĠă va
valoarea egală cu a counter-ului la momentul accesării. Când o pagină trebuie arăta în modul următor: 10000000, 01000000, 00100000, 10010000, 11001000,
mutată sistemul de operare selectează pagina cu counter-ul cel mai mic úi o mută. 01100100. După cum se poate observa, apelurile mai apropiate de momentul
Costul implementării acestei metode este unul foarte ridicat datorită tehnologiei prezent au un impact mai mare decât apelurile care au avut loc mai demult. Aceasta
necesare realizării counter-ului. asigură faptul că paginile care au fost apelate mai puĠin, dar mai recent, să aibă o
253 254

prioritate mai mare decât paginile care au fost apelate mai mult, dar în trecut. În 6.2 Conceptul de segmentare
acest fel, când o pagină trebuie să fie înlocuită, vor fi alese paginile cu contorul cel
mai scăzut.
ObservaĠie. Algoritmul Aging diferă de algoritmul LRU, în sensul în care Fie, de exemplu, un compilator care poate avea mai multe tabele,
poate Ġine evidenĠa apelurilor în ultimele 16/32/64 intervale de timp (depinzând de construite pe măsură ce decurge compilarea, incluzând:
numărul de biĠi pe care poate lucra procesorul). În consecinĠă, se poate spune că  tabela de simboluri, conĠinând numele úi atributele variabilelor;
modul în care au decurs apelurile în memorie în ultimele 16 intervale de ceas este  textul sursă, memorat pentru tipărirea unui listing;
suficient pentru a lua o decizie corectă asupra cărei pagini trebuie înlocuite.  o tabelă cu toate constantele întregi úi în virgulă mobilă folosite;
$úadar, algoritmul Aging poate oferi performanĠe foarte apropiate de cele ale  arborele de analiză sintactică a programului;
algoritmului optim (Belady), la un preĠ moderat.  stiva folosită pentru apelurile de funcĠii ale compilatorului.
Se analizează ce se întâmplă dacă un program are un număr deosebit de
Algoritmul Working Set
mare de variabile. PorĠiunea din spaĠiul de adrese alocată pentru tabela de
simboluri 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Ġe
imposibilitatea continuării compilării din cauza numărului mare de variabile, lucru
care 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 adrese
independente, numite segmente. Fiecare segment constă dintr-o secvenĠă liniară de
adrese, de la valoarea 0 la valoarea maximă. Lungimea fiecărui segment poate fi
oricât de mare între 0 úi valoarea maximă. Segmente diferite pot să aibă, úi, de
regulă, au lungimi diferite. Mai mult chiar, lungimea unui segment se poate
Fig. 6.5. Dimensiunea setului de pagini utilizate de ultimele k apeluri de memorie în funcĠie modifica în timpul execuĠiei. Lungimea unui segment de stivă poate creúte ori de
de timp (t). câ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, segmente
Este un algoritm cu grad mare de generalitate. Working Set reprezintă setul
diferite vor creúte úi vor scădea independent, făUă să se influenĠeze reciproc. Dacă o
de pagini utilizate de ultimele k apeluri de memorie, iar funcĠia w(k,t) este stivă dintr-un anumit segment are nevoie de un spaĠiu suplimentar pentru a creúte,
dimensiunea acestui set la momentul de timp t. îl poate avea, neexistând nimic peste care să se suprapună. Evident, un segment se
ComparaĠie între algoritmi poate umple, dar deoarece segmentele sunt de obicei mari, această situaĠie este
deosebit de rară. Pentru a preciza o adresă în această memorie segmentată sau
În figura 6.6 este reprezentat un grafic care redă comparativ performanĠa
bidimensională, programul trebuie să furnizeze o adresă cu două componente: un
(raportată la numărul de excepĠii page fault apărute la 1000 de referinĠe) în funcĠie
număr de segmentúi o adresă în cadrul segmentului.
de numărul de cadre apelate, pentru 4 dintre algoritmi: FIFO, Clock, optim úi LRU.
Un segment este, deci, o entitate logică unică de care programatorul este
conú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 folosesc
anumite proceduri de bibliotecă, ar fi o risipă de memorie dacă fiecare program ar
avea copia sa proprie.
Segmentele pot avea diferite niveluri de protecĠie:
Fig. 6.6. ComparaĠie între algoritmi.
255 256

 un segment procedură poate fi marcat ca accesibil doar pentru execuĠie, SemnificaĠiile notaĠiilor folosite sunt:
interzicând accesul pentru citirea din sau scrierea în el;  G = bit care indică dacă mărimea segmentului este dată în octeĠi sau în pagini:
 un segment care conĠine un vector de numere în virgulă mobilă poate fi  G = 0 – făUă paginare, mărimea este dată în octeĠi úi rezultă

marcat ca accesibil pentru citire/scriere, dar nu pentru execuĠie, orice dimensiunea maximă de 8 MB;
încercare de a fi executat fiind interceptată (o astfel de protecĠie ajută de  G = 1 – mărimea este dată în pagini de câte 4 octeĠi úi rezultă

obicei la depistarea erorilor de programare). dimensiunea maximă de 4 MB;


Exemplu. Procesorul 80286 utilizează 16 linii de adresare, putând să  D = indicator al tipului de cuvinte cu care se lucrează în interiorul segmentului:
lucreze fie în modul real, ceea ce înseamnă că funcĠionează cu un spaĠiu de D = 0 – cuvinte de 16 biĠi;
adresare liniar de 1 MB, fie în modul protejat. Pentru procesorul 80386, în modul  D = 1 – cuvinte de 32 biĠi;

de lucru protejat pot fi adresate 16 K segmente, fie de 64 KB (286), fie de 4 GB  P = bit care indică prezenĠa în memoria principală (MP):
(386) fiecare.  P = 0 – segmentul nu se găseúte în MP;
Spre deosebire de cazul lui 80286, registrele segment pentru 80386 nu mai  P = 1 – segmentul se găseúte în MP;
specifică adresa unui segment, ci indică o intrare într-unul din cele două tabele de  Pr = 2 biĠi care indică nivelul de prioritate în execuĠie al programului din
adrese în care se află zone ce conĠin descriptorii segmentului. care face parte segmentul (între 0 úi 3);
Memoria virtuală este gestionată cu ajutorul a două tabele:  Tip = 5 biĠi care indică tipul segmentului (cod, date, stivă, extra segment
1. LDT (Local Descriptor Table) de 8 K intrări fiecare; etc.) úi nivelul său de protecĠie în modul protejat.
2. GDT (Global Descriptor Table). Acest tabel de descriptori foloseúte la obĠinerea adresei fizice (fig. 6.9),
Fiecare program are propriul său tabel LDT, în timp ce tabelul GDT este respectând următorul algoritm:
utilizat în comun de toate programele prin intermediul sistemului de operare. 1. se pleacă de la registrul selector úi se ajunge într-unul din tabelele unde
LDT descrie segmentele locale ale fiecărui program, cum ar fi cele de cod, Jăsesc descriptorii de segment (care joacă rolul tabelei de paginare):
date, stivă etc., în timp ce GDT descrie segmentele utilizate de sistemul de operare. adresă, mărime úi alte câmpuri;
Registrul segment obiúnuit este înlocuit în acest caz de un registru selector 2. folosind această informaĠie, sistemul de operare utilizează o zonă MSB
pe 16 biĠi, care conĠine următoarele informaĠii (fig. 6.7). pentru adresă la care adaugă deplasamentul din program;
1 2
3. rezultă 32 de biĠi (o adresă liniară folosită ca adresă fizică).
13
Selector
index 0/1
Adresa de bază Deplasament

numărul de intrări într-unul din 0 ÷ 3 nivelul de


GDT 0ărimea
tablourile GDT úi LDT protecĠie al
sau LDT
segmentului
LDT (GDT)
respectiv Alte
câmpuri
Fig. 6.7. InformaĠiile conĠinute în registrul selector. MSB LSB

Descriptorul este format din 4 octeĠi (fig. 6.8). adresa liniară – 32 biĠi
Fig. 6.9. Utilizarea tabelului de descriptori în obĠinerea adresei fizice.
adresa de bază segment 0 ÷ 15 mărimea segmentului 0 ÷ 15
Adresa liniară poate fi interpretată în două feluri:
adresa de bază mărime adresa de
a) dacă nu există paginare, adresa liniară este interpretată ca adresă fizică,
segment 24 ÷ 31 G D 0 X segment 16 ÷ 19 P Pr Tip bază 16 ÷ 23
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 dacă
32 biĠi programatorul nu Ġine o evidenĠă clară a lor la scrierea programului. Ar fi fost prea
complicat pentru sistemul de operare să verifice dacă aceste segmente sunt disjuncte.
Fig. 6.8. Structura descriptorului.
257 258

10 10 12 Dacă toate registrele selector trimit către un acelaúi descriptor (aflat în


LDT sau în GDT) cu adresa de bază 0 úi mărimea maximă (1 M sau 4 G), se va
Dir Page Deplasament obĠ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 de
folosire a memoriei:
1. cu segmentare pură;
2. cu paginare pură;
3. superpoziĠie între segmentare úi paginare (paginare segmentată).
1024 1024 Exemplu. Paginarea segmentelor foloseúte avantajul eliminării fragmentării
linii linii
Adresa de
externe creat de către paginare (pentru alocare poate fi folosit oricare dintre cadrele
intrare în disponibile). Deosebirea dintre această metodăúi segmentare este aceea că intrarea
tabelul tabelei de segment nu conĠine adresa de bază a segmentului ci adresa de bază a unei
Page MSB Deplasament tabele 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 în
0/1 0/1 pagină. Cu numărul de pagină folosit ca index în tabela de pagină a segmentului, se
Fig. 6.10. Separarea nivelurilor de tabele. obĠine numărul cadrului care, în final, se combină cu deplasarea în pagină úi
formează adresa fizică (vezi figura 6.12). Deoarece ultima pagină a fiecărui
b) dacă există paginare, adresa liniară este folosită pentru tabelele de segment nu este întotdeauna complet ocupată, metoda introduce totuúi o cantitate
paginare (încă o treaptă) úi de abia apoi ajung la adresa fizică. Aúadar, dacă există redusă de fragmentare externă (în realitate, atunci când se lucrează cu tabele de
paginare adresa liniară este interpretată ca adresă virtuală (adresă din spaĠiul fizic segment de dimensiuni mari, mecanismul este ceva mai complicat).
adresabil) ú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, metoda
de paginare la microprocesorul 80386 úi următoarele cuprinde două niveluri de
tabele pentru a reduce din aceste tabele.
ObservaĠie. Pot exista 1024 de tabele de tip Page.
Nivelurile de protecĠie (03) sunt reprezentate în figura 6.11.

Fig. 6.11. Nivelurile de protecĠie.


Fig. 6.12. Exemplu de paginare segmentată.
259 260

6.2.1 Implementarea segmentării Segment 4 Segment 4 Gaură


(7k) (7k) (3 k)
Implementarea segmentării diferă într-un mod esenĠial de paginare: Segment 3 Segment 3 Segment 5
paginile au dimensiuni fixe, pe când segmentele nu. (8 k) (8 k) (4 k)
Exemplu. Se consideră o memorie fizică care conĠine iniĠial 5 segmente Segment 2 Segm. 1  Segment 2 Segm. 4  Segment 3
(fig. 6.12.a). Se analizează ce se întâmplă dacă segmentul 1 este eliminat úi înlocuit (5 k) Segm. 7 (5 k) Segm. 5 (8 k)
cu segmentul 7, care este mai mic. Segment 1 Gaură Segment 2
Se obĠine configuraĠia de memorie prezentată în figura 6.12.b. Între (8 k) (3 k) (5 k)
segmentul 7 úi segmentul 2 există o zonă nefolosită, adică o gaură. Apoi segmentul Segment 0 Segment 7 Gaură
4 este înlocuit cu segmentul 5, ca în figura 6.12.c, iar segmentul 3 este înlocuit de (4 k) (5 k) (3 k)
segmentul 6, ca în figura 6.10.d. După ce sistemul rulează o vreme, memoria va fi Segment 0 Segment 7
împăUĠită într-un număr de porĠiuni, unele conĠinând segmente, unele găuri. Acest (4 k) (5 k)
fenomen se numeúte fragmentare externă. (a) (b) (c) Segment 0
Se analizează ce s-ar întâmpla dacă programul ar referi segmentul 3 după
(4 k)
ce a apărut fragmentarea externă, ca în figura 6.10., d. SpaĠiul total disponibil în
Jăuri este de 10 K, mai mult decât suficient pentru segmentul 3, dar deoarece Gaură Gaură unică
Jăurile sunt distribuite în bucăĠele mici, nefolositoare, segmentul 3 pur úi simplu nu (3 k) (10 k)
poate fi încărcat. Pentru a o face totuúi, trebuie mai întâi eliminat din memorie un Segment 5 Segment 5
alt segment. (4 k) (4 k)
Segm. 3  Gaură Compactare Segment 6
Segm. 6 (4 k)  (4 k)
6.2.2 Algoritmi de înlocuire a segmentelor Segment 6 Segment 2
(4 k) (5 k)
I. O modalitate de a elimina fragmentarea externă este compactarea: ori de Segment 2 Segment 7
câte ori apare o gaură, toate segmentele de după ea vor fi mutate cât mai aproape de (5 k) (5 k)
locaĠia de memorie 0, eliminând acea gaură úi lăsând o singură gaură, mare, la Gaură Segment 0
sfârúitul memoriei. Alternativ, se poate aútepta ca fragmentarea externă să devină (4 k) (4 k)
serioasă (adică mai mult de un anume procent din memorie este pierdut în găuri), Segment 7
înainte de a se face compactarea (eliminarea găurilor). (5 k)
Figura 6.10.e prezintă memoria din figura 6.10.d după compactare Segment 0
(defragmentare). Scopul compactării este colectarea tuturor găurilor mici úi inutilizabile (4 k)
într-una singură, mare, în care pot fi plasate unul sau mai multe segmente. Compactarea (d) (e)
are dezavantajul evident al pierderii de timp cu realizarea ei. Compactarea după apariĠia
fiecărei găuri este de obicei mult prea cronofagă. Fig. 6.12. Exemplu de implementare a segmentării.
Dacă timpul necesar compactării memoriei este inacceptabil de mare, este
Procedând astfel, este evident că timpul de căutare necesar este mai mic
nevoie de un algoritm care să stabilească ce gaură se va folosi pentru un anumit
decât în cazul căutării în întreaga listă a celei mai bune potriviri, ceea ce reprezintă
segment. Această gestiune a găurilor necesită menĠinerea unei liste cu adresele úi
un avantaj al acestui algoritm. Aceúti ultimi doi algoritmi au tendinĠa de a reduce
dimensiunile găurilor.
dimensiunea medie a găurilor. Ori de câte ori un segment este plasat într-o gaură mai
II. Un algoritm des întâlnit, numit best fit (cea mai bună potrivire) alege
mare decât dimensiunea sa, ceea ce se întâmplă aproape întotdeauna (potrivirile exacte
cea mai mică gaură în care segmentul dorit va încăpea. Ideea este de a găsi potriviri
fiind rare), gaura este divizată în două păUĠi. O parte este ocupată de segment, cealaltă
între segmente úi găuri, evitându-se astfel preluarea unei porĠiuni dintr-o gaură
devine noua gaură, care bineînĠeles este mai mică decât gaura iniĠială.
mare, care ar putea fi necesară ulterior pentru un segment mare.
Dacă nu există un proces de compensare care să creeze găuri mai mari prin
III. Alt algoritm frecvent utilizat este first fit (prima potrivire), care
parcurge circular lista de găuri úi alege prima gaură suficient de mare pentru a unificarea celor mici, aceúti ultimi doi algoritmi vor duce în cele din urmă, la
Săstra segmentul. umplerea memoriei cu găuri mici, nefolositoare. În concluzie, aceúti algoritmi
trebuie utilizaĠi în conjuncĠie cu compactarea, aplicată rar.
261 262

6.3. Exemple de gestionare a memoriei 6.3.1. Memoria virtuală la Multics

Sistemul de operare Multics rula pe maúinile Honeywell 6000 úi pe urmaúii


Se defineúte gestionarea memoriei ca fiind translatarea adreselor virtuale acesteia si asigura fiecărui program o memorie de până la 218 segmente, fiecare
(folosite de programator) în adrese fizice identificabile în structura fizică, concretă, dintre ele putând avea o lungime de până la 65.536 cuvinte (de 36 biĠi).
a calculatorului. Primul reprezentant al familiei Intel care foloseúte acest mecanism Pentru a combina avantajele paginării (dimensiunea uniformă a paginii si
este 80286. De remarcat este faptul că Intel 80286 úi succesorii săi au mecanismul neobligativatea Ġinerii în memorie a unui segment întreg dacă numai o parte din
de gestionare implementat pe cip. acesta este folosit) cu avantajele segmentării (uúurinĠa în programare, modularitate,
Gestionarea memoriei bazate pe principiile segmentării încurajează protecĠia si partajarea), sistemul de operare Multics tratează fiecare segment ca pe o
multiprocesarea, protecĠia adreselor, protecĠia proceselor a căror izolare rezultă în memorie virtualăúi astfel fiecare segment se paginează.
mod natural din definirea segmentelor úi atributelor, precum úi interschimbarea Fiecare program Multics are un tabel de segmente, cu câte un descriptor
locului proceselor între memoria internăúi cea externă. pentru fiecare segment. Deoarece există mai bine de un sfert de milion de intrări în
Tabelul 6.2 tabel, acesta este el însuúi un segment úi este paginat la rândul lui. Descriptorul de
ComparaĠie între paginare úi segmentare segment conĠine o indicaĠie care atestă, sau nu, apartenenĠa segmentului la
ConsideraĠie Paginare Segmentare memoria principală. Dacă vreo parte din segment se află în memorie, atunci se
consideră că segmentul úi tabelul său de pagini se află în memorie. Daca segmentul
Programatorul útie de existenĠa sa? Nu Da este în memorie, descriptorul său conĠine un pointer de 18 biĠi către tabelul său de
Câte spaĠii liniare de adresă există? 1 Mai multe pagini după cum se poate vedea din figura 6.13.
SpaĠiul de adrese virtuale poate depăúi Da Da
dimensiunea memoriei?
Tabelele de dimensiune variabilă pot Nu Da
fi gestionate uúor?
Pentru simularea Pentru a furniza mai
De ce a fost inventată tehnica?
memoriilor mari multe 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ândul
ei, să fie translatată în adresa fizică. În cazul familiei Intel, adresa liniară coincide
cu 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 la
80386 úi apoi la descendenĠii familiei (80486, familia Pentium). Pentru
Intel 386/486 paginarea este opĠională, în funcĠie de bitul de granularitate
din descriptorii de segmente;
Fig. 6.13. Descriptorul de segment úi indicarea tabelelor de pagini.
 adresa virtuală, alcătuită din selector úi adresa efectivă, este translatată în
adresa liniarăúi apoi în cea fizică. La fel ca adresa fizică, adresa liniară Deoarece adresele fizice au 24 de biĠi úi paginile sunt aliniate la limite de 64
(AL) este de 32 de biĠi; de octeĠi sunt necesari numai 18 biĠi în descriptor pentru a stoca adresa tabelului de
 Intel 386/486 adaugă modurilor de adresare cunoscute de la ascendenĠii pagini. Descriptorul conĠine de asemenea dimensiunea segmentului, biĠii de
familiei un nou tip: adresarea la care, alături de bază úi deplasament, protecĠie úi alte câteva elemente. În figura 6.14 se poate observa un descriptor de
există un index care poate fi înmulĠit cu un factor de scală 1, 2, 4 sau 8; segment Multics.
 dimensiunea maximă a unui segment în memoria virtuală se obĠine numai Adresa segmentului în memoria secundară nu este în descriptorul de
pentru G = 1. În acest caz, un segment poate avea: segment, ci într-un alt tabel care este folosit de agentul de tratare a defectelor al
220 pagini  212 B/pagină = 232 B = 4 GB. segmentului.
263 264

Fig. 6.14. Ilustrarea unui descriptor de sistem.

Trebuie specificat că fiecare segment este un spaĠiu de adrese obiúnuit úi


Fig. 6.16. Conversia unei adrese Multics.
astfel úi paginarea se face la fel ca la paginarea memoriei nesegmentate.
Dimensiunea normală a paginii este de 1024 de cuvinte. O observaĠie pertinentă Pentru simplitate, a fost omis faptul că însuúi descriptorul de segment este
este că există segmente nepaginate sau paginate în unităĠi de 64 de cuvinte de paginat. De fapt, este folosit un registru (registrul de bază al segmentului) pentru a
obicei segmente mici úi astfel se economiseúte memorie fizică. localiza descriptorul tabelului de pagini al segmentului, care la rândul său indică
O adresă în Multics constă din două păUĠi: segmentul úi adresa în cadrul spre paginile descriptorului de segment. Îndată ce este găsit descriptorul pentru
segmentului. Adresa din cadrul segmentului este mai departe divizată între un număr segmentul dorit, se continuă adresarea după cum este arătat în figura 6.17.
de paginăúi un cuvânt în cadrul paginii. În figura 6.15 se observă această divizare. Dacă algoritmul precedent ar fi fost rulat de către sistemul de operare la fiecare
instrucĠiune, evident programul nu ar fi rulat foarte rapid. Pentru a nu exista această
problemă hardul Multics conĠine o tabelă TLB de viteză mare pe 16 cuvinte, care
poate 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ărul
cadrului de pagină se obĠine direct din TLB úi se formează adresa efectivă a
cuvântului referit făUă a se consulta descriptorul de segment sau tabelul de pagini.

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, are
loc 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 în
memorie, adresa de memorie principală a începutului paginii este extrasă din
intrarea tabelului de pagini.
4. Se adaugă deplasarea la originea paginii pentru a furniza adresa de
memorie principală la care se află cuvântul.
5. Are loc citirea sau scrierea în memorie (vezi figura 6.16). Fig. 6.17. Tabela TLB Multics simplificată.
265 266

Adresele celor 16 cele mai recent referite pagini sunt salvate în TLB. Unul dintre biĠii selectorului indică dacă este vorba despre un segment local
Programele ale căror seturi de lucru sunt mai mici decât dimensiunea tabelei TLB sau global (adică segmentul este în LDT sau în GDT). AlĠi treisprezece biĠi
vor ajunge la echilibru cu adresele întregului set de lucru din TLB úi prin urmare precizează numărul intrării în LDT sau GDT, astfel încât aceste tabele nu pot păstra
vor rula eficient. Dacă pagina nu este în TLB, descriptorul úi tabelele de pagini sunt decât 8K descriptori de segmente. CeilalĠi doi biĠi se referă la protecĠie úi vor fi
referite efectiv pentru a se găsi adresa cadrului de pagină úi tabela TLB este discutaĠi mai târziu. Descriptorul 0 este invalid. El poate fi însă încărcat într-unul
actualizată prin includerea acestei pagini, fiind eliminată pagina utilizată cel mai din registrele de segment, pentru a indica faptul că registrul segment nu este
puĠin recent. Câmpul de vârstăĠine evidenĠa intrărilor utilizate cel mai puĠin recent. momentan disponibil. Folosirea lui declanúează o capcană.
Tabela TLB este folosită pentru a compara în paralel segmentele úi numerele de În momentul în care un selector este încărcat într-un registru de segment,
pagină ale tuturor intrărilor. descriptorul corespunzător este preluat din LDT sau GDT úi memorat în registrele
interne ale MMU, pentru a putea fi accesat mai rapid. Un descriptor constă din 8
octeĠi, cuprinzând pe lângă alte informaĠii úi adresa de bază a segmentului, aúa cum
6.3.2. Memoria virtuală la Intel se observă în figura 6.19.

Din multe puncte de vedere, memoria virtuală de la Pentium se aseamăQă cu


cea de la MULTICS, incluzând prezenĠa atât a segmentării cât úi a paginării. În
timp ce MULTICS are 256K segmente independente, fiecare de până la 64K
cuvinte de 36 de biĠi, Pentium are 16K segmente independente, fiecare Ġinând până
la 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ât
puĠine programe au nevoie de mai mult de 1000 de segmente úi multe programe
necesită segmente mari.
Inima sistemului de memorie virtuală de Ia Pentium este formată din două
tabele: LDT (tabela descriptorilor locali) úi GDT (tabela descriptorilor globali).
Fiecare program are propria sa tabelă LDT, însă există o singură copie a tabelei
GDT, partajată de toate programele de pe calculator. Tabela LDT descrie segmentele
locale fiecărui program, cuprinzând codul, datele, stiva úi aúa mai departe, în timp ce
GDT descrie segmentele sistem, inclusiv cele ale sistemului de operare. Fig. 6.19. Descriptor de segment de cod pentru Pentium.
Pentru a accesa un segment, un program de pe Pentium încarcă mai întâi un
selector pentru segmentul respectiv, într-unul din cele 6 registre de segment ale Formatul selectorului a fost ales în mod inteligent, pentru a uúura localizarea
maúinii. În timpul execuĠiei, CS păstrează selectorul pentru segmentul de cod úi DS descriptorului. Se selectează mai întâi fie LDT, fie GDT, în funcĠie de bitul 2 din
pentru cel de date. Celelalte registre de segment sunt mai puĠin importante. Fiecare selector. Apoi selectorul este copiat într-un registru de lucru (scratch) intern al
selector este un număr pe 16 biĠi, aúa cum se vede în figura 6.18. MMU, iar cei mai puĠin semnificativi 3 biĠi sunt setaĠi la 0. în final, adresa LDT
sau 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 este
folosit, el poate găsi descriptorul complet al segmentului corespunzător selectorului
în registrele sale interne. Dacă segmentul nu există (selector 0) sau nu este
momentan în memorie, se declanúează o capcană.
Apoi se verifică dacă deplasarea este dincolo de graniĠa segmentului, caz în
care se declanúează altă capcană. Logic, în descriptor ar trebui să existe un câmp de
32 de biĠi, pentru a preciza dimensiunea segmentului, dar deoarece sunt disponibili
doar 20 de biĠi, trebuie folosită o altă metodă.
Fig. 6.18. Selector Pentium.
267 268

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. Dacă
valoarea este 1, atunci câmpul limită conĠine dimensiunea segmentului în pagini úi
nu în octeĠi. Dimensiunea paginii la Pentium este fixată la 4KB, astfel încât 20 de
biĠi ajung pentru segmente de până la 212 octeĠi. Fig. 6.21. Adresa liniară.
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, În figura 6.21 se prezintă o adresă liniară divizată în trei câmpuri: Dir
pentru a forma ceea ce se numeúte o adresă liniară (linear address), aúa cum se (catalog), Pagină (page) úi Deplasare (offset). Câmpul Dir este utilizat primul ca
vede úi în figura 6.20. Câmpul bază este divizat în trei componente úi distribuit spre index în catalogul de pagini, pentru a localiza pointer-ul către tabelul de pagini
descriptor, pentru compatibilitate cu 286, care avea un câmp bază de doar 24 de biĠi. corespunzător. Apoi câmpul Pagină este folosit ca index în tabelul de pagini, pentru
Ca o consecinĠă, câmpul bază permite fiecărui segment să înceapă în orice loc din a afla adresa fizică a cadrului de pagină. Câmpul Deplasare este adunat la adresa
spaĠiul liniar de adrese pe 32 de biĠi. cadrului 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Ġi
conĠin un număr de cadru de pagină. CeilalĠi biĠi reprezintă biĠi pentru controlul
accesului úi biĠi pentru a indica modificarea regiunii, setaĠi de către hard pentru
sistemul 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 segment
mai mic de 4M va avea un catalog de pagini cu o singură intrare, un pointer către
singura úi unica lui tabelă de pagini. Astfel, consumul suplimentar de memorie
indus de segmentele scurte este doar de două pagini, în loc de milioane de pagini
Fig. 6.20. Conversia unui selector úi a unei deplasări într-o adresă liniară. dacă s-ar fi folosit tabele de pagini pe un singur nivel.
Pentru a evita accesul repetat la memorie, Pentium, ca úi Multics, are o mică
Dacă paginarea este dezactivată (printr-un bit într-un registru global de tabelă TLB pentru a regăsi repede cele mai recent folosite combinaĠii Dir-Paginăúi
control), atunci adresa liniară este interpretată ca adresă fizică úi trimisă spre a Ie pune în corespondenĠă cu adresa fizică corespunzătoare cadrului de pagină.
memorie pentru citire sau scriere. De aceea, cu paginarea dezactivată are o schemă Doar pentru acele combinaĠii care nu au fost folosite recent se urmează paúii descriúi
de segmentare pură, adresa de bază a fiecărui segment aflându-se în descriptorul în figura 6.22. Atâta timp cât lipsurile TLB sunt rare, performanĠa este bună.
asociat. Segmentele se pot suprapune, din întâmplare, probabil deoarece ar fi prea
mare efortul úi timpul pentru a verifica dacă ele sunt sau nu disjuncte.
Pe de altă parte, dacă paginarea este activată, adresa liniară este interpretată
ca adresă virtuală úi pusă în corespondenĠă cu o adresă fizică folosind tabele de
pagini. Singura complicaĠie ce poate apărea este că o adresă virtuală pe 32 de biĠi úi
o pagină de 4K permit unui segment să conĠină 1 milion de pagini, astfel încât se
foloseúte o punere în corespondenĠă pe două niveluri, pentru a reduce dimensiunea
tabelei 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-un
registru global. Fiecare intrare în acest catalog indică spre un tabel de pagini care
conĠine de asemenea 1024 intrări de 32 biĠi Intrările din tabelul de pagini indică Fig. 6.22. CorespondenĠa între o adresă liniarăúi o adresă fizică.
spre cadrele de pagină.
Schema este prezentată în figura 6.22. Este important de menĠionat că dacă o anumită aplicaĠie nu necesită
segmentare, 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 cu
aceeaúi valoare a selectorului, care are un descriptor cu bază = 0 úi limită de
valoare maximă permisă. Deplasarea instrucĠiunii va fi adresa liniară, cu un singur
269 270

spaĠiu de adrese folosit, adică paginare tradiĠională. De fapt, toate sistemele de Adresa liniară va fi împăUĠită conform figurii 6.23.
operare pentru Pentium funcĠionează în acest mod. OS/2 a fost singurul care s-a Având în vedere că majoritatea programelor utilizează o memorie virtuală
folosit de toată puterea arhitecturii MMU de la Intel. mult mai mică de 4 GB (232), în registrul TCR este prevăzut úi un câmp în care se
Proiectarea sistemului de memorie virtuală la Intel Pentium, date fiind poate preciza numărul MSB al adresei la care se renunĠă.
scopurile contradictorii de implementare a paginării pure, a segmentării pure úi a Exemplu. Prin intermediul TCR, se poate preciza că:
segmentelor paginate, este un real succes. Faptul că s-a păstrat compatibilitatea cu  12 biĠi MSB sunt ignoraĠi;
286 úi că s-au reuúit toate acestea într-un mod atât de eficient este un real succes  4 biĠi reprezintă nivelul de tabelare A;
din punct de vedere al proiectării.  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).
6.3.3. Memoria virtuală la Motorola

Din punct de vedere conceptual, utilizarea memoriei virtuale este mai simplă
la microprocesorul Motorola 68030, utilizând doar scheme de paginare pură. Cu
toate acestea, datorită faptului că schemele Motorola folosesc un număr variabil de
niveluri de tabelare (între 0 úi 4), sistemul de operare ar avea de îndeplinit operaĠii
destul de elaborate, de aceea majoritatea sarcinilor de gestionare a memoriei sunt
preluate de un controler de tip MMU (Memory Management Unit), care începând
cu 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ăUĠ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).
32 biĠi (adresă liniară)

12 4 3 2 11

ignoraĠi A B C deplasament

X 10 7 0 6

A B
C

16
intrări 4 biĠi

MSB deplasament
8
intrări

Fig. 6.23. Structura adresei liniare la Motorola 68030.

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