Documente Academic
Documente Profesional
Documente Cultură
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.
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 –
686 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
Î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ă
Î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ă.
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
Fig. 2.18. Exemplu de úir de procese la execuĠia unei instrucĠiuni úi desfăúurarea lor în timp.
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).
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
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.
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.
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.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.
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
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
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.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
Î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
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
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
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.
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.
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.
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
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
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).
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
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.
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.
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
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).
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 28 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.
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
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
Î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
1 2 3 4 5
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
Cipurile
controlerului
de memorie
Magistrala principală a
Magistrala principală a sistemului
sistemului Magistrala memoriei
RAM
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
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
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).
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).
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
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.
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
Infiniband
120.000 12.000 5 - 1 (punct-la-punct)
12 Quad-rate
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, AB, 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.
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
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 – AB;
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
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
Calea de date
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ă.
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 + +
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.
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
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ă.
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
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ă
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
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
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.
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