Sunteți pe pagina 1din 63

2

MICROPROCESORUL
2.1 Microprocesorul, componenta principal a calculatorului Microprocesorul reprezint unitatea central de procesare (UCP) a unui calculator, component ultracompact i de o importan major; alegerea acesteia determin limitele performanei i preul sistemului de calcul. Pentru a nelege performanele i capacitile unui calculator, trebuie cunoscute opiunile existente n materie de microprocesoare. n zilele noastre, majoritatea microprocesoarelor care ruleaz software pentru calculatoare personale (PC - Personal Computer) sunt variante mbuntite ale vechiului procesor 8086 (procesor care n 2003 a mplinit 25 de ani de la apariie!) i au la baz arhitectura x86. Datorit popularitii acestui tip arhitectural, chiar i unele procesoare cu o arhitectur diferit (RISC - Reduced Instruction Set Computer) pot rula software pentru PC, emulnd funciunile procesoarelor Intel x86, sau ncorpornd uniti de execuie a instruciunilor compatibile cu cele de la Intel. De remarcat este faptul c, datorit superioritii evidente a procesoarelor RISC, chiar Intel a preluat pentru ultimile modele de procesoare concepte RISC, pstrnd ns compatibilitatea cu vechea arhitectur x86 (Procesoarele Pentium Pro, Pentium II, Pentium III i Pentium 4, chiar i vechiul Pentium). Dac la nceputul anilor 80 unii ingineri de produse RISC ridiculizau familia x86 i i prevedeau un sfrit apropiat, iat c Intel a contrazis aceste previziuni i, mai mult, confruntarea RISC-CISC s-ar putea foarte probabil s aib un deznodmnt contrar celui anticipat acum 20 de ani. Acesta este un exemplu ilustrativ n sensul c afacerile, pe de o parte, i tehnologia, pe de alta, sunt dou lucruri diferite. Cu toate c tehnologia RISC este superioar tehnic celei CISC, vastele

Elemente de arhitectur a sistemelor de calcul i operare

resurse ale firmei Intel i succesul prelungit al sistemelor de operare DOS i Windows au meninut vechea arhitectur x86 n competiie. Mai mult, acum situaia s-a inversat: noua arhitectur IA-64 elaborat n parteneriat de ctre Hewlett-Packard i Intel, ar putea duce la declinul tehnologiei RISC. Arhitectura IA-64 reprezint o combinaie de caracteristici inovatoare precum: execuie speculativ, paralelism mbuntit, stiv de registre, arhitectur superioar de ramificare i nu numai. Modalitatea de adresare a memoriei a fost mbuntit pentru a satisface cerinele tot mai mari de memorie ale noilor aplicaii de e-business, depozite de date (data warehousing) sau a altor aplicaii performante pentru servere. Arhitectura IA-64 posed i o arhitectur n virgul mobil superioar i alte modificri n scopul de a oferi suport aplicaiilor staiilor de lucru de nalt performan legate de crearea de coninut digital, proiectare inginereasc sau analiz tiinific. Arhitectura IA-64 se dorete a fi extrem de scalabil pentru a satisface cerinele de cretere a performanelor att pe segmentul de pia destinat staiilor de lucru ct i pe cel al serverelor. Arhitectura IA-64 reprezint un concept revoluionar pe 64 de bii (ISA Instruction Set Architecture) ce aplic o arhitectur tehnologic nou, denumit EPIC (Explicit Parallel Instruction Computing). De asemenea, un element de baz pentru IA-64 este acela al compatibilitii cu mulimea de instruciuni IA-32. Procesoarele sunt dispozitive complicate, incredibil de puternice, dar performanele i proprietile acestora din zilele de azi sunt rezultatul unor ani de evoluie i mbuntiri plecnd de la nite nceputuri umile. Primele dispozitive de calcul erau electromecanice, folosind schimbtoare de stare fizice. Acestea erau foarte ncete, nesigure i zgomotoase datorit componentelor mecanice, ceea ce nsemna c ceva se mica atunci cnd un bit i schimba valoarea. Urmtoarea generaie de dispozitive folosea tuburi cu vacuum. Acestea reprezentau o mbuntire major, n sensul c nu mai aveau pri mictoare. Tuburile electronice au permis crearea primelor calculatoare electronice, care aveau ns multiple probleme n funcionare. O dat cu inventarea tranzistorului n 1948 la Bell Laboratories (SUA), tehnologia s-a mbuntit, tranzistorii fiind mult mai mici, mai rapizi i mai ieftini. n continuare, faptul care a permis crearea procesoarelor moderne a fost inventarea circuitului integrat, care este un grup de tranzistori fabricai dintr-o singur bucat de material i conectai intern,

Microprocesorul

fr cablaje externe. Circuitele integrate se mai numesc prescurtat CI sau cipuri. Dintre toate materialele ce conduc curentul electric, doar unele pot s fac acest lucru n anumite condiii. Astfel au aprut semiconductorii. Cel mai folosit semiconductor este siliciul. A aprut astfel tehnologia implantului pe o pastil de siliciu a mai multor tranzistori ce sunt rapizi, siguri i folosesc relativ puin putere. Primul circuit integrat a fost inventat n 1959 de Texas Instruments. El coninea doar ase tranzistori pe o suprafa semiconductoare. Dup inventarea circuitului integrat, a durat puin timp pentru a contientiza imensele beneficii ale miniaturizrii i integrrii unui numr tot mai mare de tranzistori n acelai cip. Tehnica LSI - Large Scale Integration - a nsemnat creearea circuitelor integrate ce au fost construite la nceput din mai multe componente discrete. Aceste dispozitive conineau de regul sute de tranzistori. Primele computere au fost realizate ncorpornd mai multe circuite integrate mici conectate pe circuitul de pe plac. O imagine a unui circuit integrat pe baz de siliciu este prezentat n figura 2.1.

Fig. 2.1 Circuit integrat - microprocesor

O dat cu trecerea timpului, tehnologia LSI s-a mbuntit i cipurile au devenit mai mici, mai rapide i mai ieftine. Bazndu-se pe succesul anterior, inginerii au nvat s ncorporeze mai multe funcii logice ntr-un singur circuit. A aprut astfel VLSI - Very Large Scale Integration tehnologie ce nglobeaz milioane de tranzistori. La nceput, funciile executate de procesor erau implementate folosind cipuri logice diferite. Intel a fost prima companie ce a ncorporat toate aceste componente logice ntr-un singur cip. Acesta a fost primul microprocesor, 4004, produs n 1971. Toate microprocesoarele de astzi sunt descendeni (unii foarte avansai) ai acestui prim cip pe 4 bii.

Elemente de arhitectur a sistemelor de calcul i operare

n viitorul apropiat tehnologia VLSI va deveni tehnologie GSI (GigaScale Integration) i chiar TSI (TeraScale Integration). n acest context, gigascale i terascale semnific existena a mai mult de un miliard de cipuri, respectiv un milion de miliarde de componente integrate ntr-un singur cip. Din perspectiva proiectrii de sistem aceast cretere fantastic a nivelului de integrare este calitativ diferit fa de mbuntirile aprute n trecut. n particular, numrul defectelor de manufacturare vor crete, echipamentele vor deveni mai puin fiabile, vor aprea noi nano-tehnologii iar problemele de administrare a puterii i a semnalelor se vor complica. Este foarte probabil ca noile nano-tehnologii s complementeze sau chiar s nlocuiasc tehnologia CMOS. n zilele noastre, tehnologia CMOS (Complementary Metal-Oxide Semiconductor) reprezint tehnologia dominant pe piaa semiconductorilor pentru microprocesoare, memorii i circuite integrate specializate pe aplicaii (ASIC Application Specific Integrated Circuits).

2.2 Ciclul fetch-decode-execute Funcionarea calculatorului implic n fiecare moment anumite activiti prin care acesta execut diverse comenzi primite de la sistemul de operare sau de la programele utilitare, comenzi ce implic de fiecare dat execuia unor instruciuni. Operaia de baz a unui procesor este reprezentat de aa-numitul ciclu Fetch-Decode-Execute sau, pe scurt, Fetch-Execute. Pe scurt, aceast operaie implic faptul c pentru a executa o instruciune, de fiecare dat, procesorul citete o instruciune de program din memorie, o decodific i apoi o execut. Acest lucru poate prea anevoios dar viteza fantastic la care acioneaz microprocesorul face ca procedeul de aducere din memorie, decodificare i apoi execuie s se desfoare extrem de rapid. Cei trei actori implicai n acest proces, microprocesorul, memoria i magistrala de memorie acioneaz la diferite viteze, de aceea, cu ct una dintre componente are o vitez de acionare mai mare, cu att va contribui mai mult la scurtarea timpului de execuie a unui program. Exist aplicaii ce solicit intens lucrul cu memoria n acest caz memoriile ieftine i rapide prezint un avantaj, n timp ce alte aplicaii pot solicita intens activitatea procesorului desigur c n acest caz un procesor mai rapid va crete performanele de calcul.

Microprocesorul

Din punct de vedere al tipului de memorie principal folosit de ctre calculatoare, exist n principiu dou tipuri de baz: cipuri DRAM (Dynamic Random Access Memory), care nu sunt att de rapide precum procesorul. Un alt tip de memorie este memoria SRAM (Static Random Access Memory), care funcioneaz la viteze mai mari dar are i costuri de producie mult mai ridicate; astfel de cipuri de memorii sunt utilizate la memoriile cache. Memoriile cache sunt utilizate pentru a reduce decalajul dintre viteza microprocesorului i aceea a memoriei principale prin copierea i stocarea instruciunilor i datelor ce vor fi folosite imediat de ctre procesor. Procesoarele RISC i chiar procesoarele CISC (Intel) au introdus o serie de tehnici noi pentru a mri eficiena ciclului Fetch-Execute prin procesarea simultan a mai multor instruciuni; cea mai cunoscut astfel de tehnic fiind tehnica prelucrrii n conduct (pipeline) a instruciunilor. Computerul trebuie s citeasc i s se supun fiecrui program (inclusiv sistemului de operare), instruciune cu instruciune. La prima vedere este un handicap din punct de vedere al performanelor dac este comparat cu organismele vii capabile s desfoare mii de activiti simultan. Operaia de baz pe care o ndeplinete procesorul este operaia fetch-execute, secven n care fiecare instruciune din cadrul unui program este citit din memorie asociat programului n CPU, este decodificat i apoi executat. Doar viteza extraordinar a echipamentelor electronice face ca acest ciclu obositor care se repet ncontinuu s fie de real valoare. n orice faz a dezvoltrii computerelor, una dintre cele trei uniti implicate n acest ciclu memoria, magistrala i CPU a fost factorul limitativ. Acest lucru poate afecta att parametrii cu care trebuie s lucreze inginerii i, de asemenea, selectarea algoritmilor pentru rezolvarea problemelor. De exemplu, exist uneori disponibile metode care solicit mai mult memoria (memory-intensive) sau alteori metode care solicit mai mult capacitatea de procesare (compute-intensive). Dac memoria este rapid i ieftin, atunci primele metode sunt de preferat; n cellalt caz este preferat a doua soluie. n prezent, cipurile DRAM de memorie nu sunt la fel de rapide precum CPU. Exist disponibile i cipuri mai rapide SRAM, dar care sunt mult mai scumpe i de aceea sunt utilizate n mici buffere foarte rapide denumite i memorii cache. Acest tip de memorii poate ajuta ntr-o oarecare msur la reducerea diferenei dintre ntrzierile cauzate de accesul la memorie prin stocarea unor cpii ale instruciunilor i datelor curente.

Elemente de arhitectur a sistemelor de calcul i operare

Pentru a reduce i mai mult gtuirea obinut datorat efectului negativ a structurii secveniale von Neumann, noile procesoare RISC mresc viteza de execuie a ciclului fetch-execute prin execuia simultan a (~5) instruciuni prin intermediul unei metode pipeline. Orict de familiari am fi cu modalitatea de lucru a computerelor, este practic imposibil s nelegem viteza incredibil la care acestea opereaz. Tabelul urmtor (tabelul 2.2) ne prezint diferenele ntre viteze ale operaiunilor uzuale din lumea real. Tabelul 2.2 Exemple de activiti i viteza asociat acestora ns= 1 / 1000 000 000 s Ciclul fetch/execute 10 ns Funcionarea unei pori logice 5 ns Acces la memoria SRAM 15 ns s = 1 / 1 000 000 s Viteza luminii 300 m/s Linie de scan TV 60 s ntrerupere 2-10 s Scnteie la motor 10 s ms = 1 / 1 000 s Viteza de reacie uman 300 ms Cadru TV 20 ms Acces la hard-disk 10 ms Rotaie complet a motorului la main (la 3000 rpm) 20 ms

Din tabel ne putem da seama de diferena existent ntre viteza de operare a calculatorului i diferite viteze din lumea nconjurtoare. Lucrurile ce par extrem de rapide, cum ar fi liniile de scan TV, sunt de sute de ori mai ncete dect un ciclu fetch-execute realizat de ctre microprocesor. Dup cum tim, la cel mai de jos nivel programele n calculator sunt formate din iruri de bii ce reprezint codificarea binar a unor instruciuni, precum: 1000 1011 1110 1100 Acest ir de bii este echivalent cu urmtoarea instruciune a procesorului Pentium: MOV BP , SP Rezultatul instruciunii anterioare este acela de a copia coninutul registrului SP n registrul BP.

Microprocesorul

De asemenea, irul de bii: 1000 1011 0011 0100 0001 0010 este echivalent cu instruciunea urmtoare n limbaj de asamblare (pentru Pentium): MOV AX, 1234H Sau, n limbajul C: x = 4660; Se observ astfel avantajul unui limbaj de programare de nivel nalt (n cazul nostru limbajul C) fa de exprimarea n limbaj cod-main (iruri de bii) sau n limbaj de asamblare. Instruciunea de mai sus va copia valoarea zecimal 4660 (1234 n hexazecimal) n registrul AX (denumit i registrul acumulator).

Fig. 2.3. IP (Pointerul de instruciune) indic ntotdeauna adresa urmtoarei instruciuni ce va fi executat

Ciclul fetch-execute reprezint procesul prin care microprocesorul preia din memoria n care este stocat programul urmtoarea instruciune ce va fi executat, o decodific i execut operaia pe care aceast instruciune o reprezint. n continuare prezentm funcionarea general a acestui proces. n figura 2.3 putem vedea microprocesorul cu registrul pointer de instruciune IP (Instruction Pointer) i registrul acumulator AX (Accumulator Register). Memoria principal stocheaz programul aflat n execuie, n care toate instruciunile de genul: MOV BP,SP sau MOV AX, 1234H se afl reprezentate sub form binar. Un registru de acces la memorie este utilizat

Elemente de arhitectur a sistemelor de calcul i operare

pentru a putea accesa poriunea de memorie de unde sunt preluate datele. Registrul pointer de instruciune indic tot timpul adresa din memorie a urmtoarei instruciuni ce va fi executat. Figurile 2.4 i 2.5 ne nfieaz procesul de preluare a datelor din memorie (etapa fetch). Aceast etap este aproximativ identic pentru toate tipurile de instruciuni. Paii urmai de microprocesor n aceast etap sunt: a) adresa din registrul pointer de instruciune (IP) este copiat pe magistrala de adrese de memorie de unde este transmis n registrul RAM (Registrul de Acces la Memorie); b) pointerul de instruciune este incrementat (IP++), indicnd adresa de memorie a urmtoarei instruciuni ce va fi executat; c) se selecteaz locaia de memorie i se copiaz coninutul acesteia n magistrala de date; d) procesorul copiaz codul instruciunii din magistrala de date n registrul de instruciune; e) ncepe procesul de decodificare a instruciunii.

Fig. 2.4 Ilustrarea pasului a) din ciclul fetch

Microprocesorul

Fig. 2.5 Ilustrarea pailor b), c) i d) din ciclul fetch

Figurile 2.6 i 2.7 ne nfieaz procesul de execuie a instruciunii (etapa execute) n cazul instruciunii Intel MOV AX, 1234H (etapa execute difer de la instruciune la instruciune). Paii urmai de microprocesor n aceast etap sunt: a) coninutul registrului pointer de instruciune (IP) este copiat pe magistrala de adrese de memorie de unde este transmis n registrul RAM (Registrul de Acces la Memorie); b) pointerul de instruciune este incrementat (IP++); c) valoarea selectat din memorie (1234H) este copiat pe magistrala de date; d) procesorul copiaz valoarea de pe magistrala de date n registrul AX.

Elemente de arhitectur a sistemelor de calcul i operare

Fig. 2.6 Ilustrarea pasului a) din ciclul execute

Acest proces reprezint, de fapt, o simplificare a procesului fetch-execute ce se desfoar n cadrul unui microprocesor modern din zilele noastre. Unele instruciuni au nevoie de un ciclu de execuie n plus pentru a citi valoarea unei adrese din memorie, care este mai apoi folosit pentru a accesa valoarea variabilei respective, valoare stocat tot n memorie. Ca o concluzie, ciclul fetch-execute reprezint secvena prin care fiecare instruciune a unui program este citit din memorie, decodificat i apoi executat. Acest proces poate presupune ulterior mai multe subprocese, cum ar fi citirea de date suplimentare din memorie i stocarea rezultatelor operaiei/operaiilor napoi n memorie.

Microprocesorul

Fig. 2.7 Ilustrarea pailor b), c) i d) din ciclul execute

Att sistemul de operare Windows NT/2000 ct i sistemul de operare UNIX ofer instrumente prin care pot fi vizualizate activitile ce se afl n lucru. Pe staiile Sun cu sistemul de operare UNIX (varianta Solaris) exist utilitarul denumit perfmeter, pentru Linux exist xsysinfo i gsysinfo iar pentru Windows NT exist Performance Monitor, care a fost nlocuit n Windows 2000 de System Monitor. Prezentm n continuare caracteristicile acestor aplicaii utilizate pentru monitorizarea utilizrii resurselor calculatorului. UNIX perfmeter Pentru o staie Sun, comanda care ne arat detaliat activitatea microprocesorului este: $ perfmeter t cpu & Linux xsysinfo Conform paginii de manual, utilitarul xsysinfo afieaz parametrii kernelului sub form grafic. Sintaxa complet este urmtoarea: xsysinfo [-help] [-update n] [-[no]title] [-[no]loadavg] [-[no]load] [-[no]mem] [-[no]swap] [-[no]labels]

Pe scurt, xsysinfo este o aplicaie XWindow folosit pentru afiarea unor parametri ai kernelului Linux n format grafic, o combinaie a

Elemente de arhitectur a sistemelor de calcul i operare

comenzilor top, free i xload, cu diferena c valorile afiate (media gradului de utilizare a procesorului, gradul de utilizare a procesorului, dimensiunea de swap) sunt prezentate ntr-o fereastr orizontal. Utilitarul xsysinfo afieaz urmtoarele valori: - gradul mediu de utilizare al UCP valoarea afiat este ntre 0.000 i 8.000. Bara orizontal a afiajului este mprit n segmente, unde fiecare segment reprezint o valoare de 1. - gradul de utilizare al UCP n cazul unui sistem multiprocesor opiunea smp afieaz cte o bar orizontal pentru fiecare procesor n parte. - memoria bara grafic ce corespunde memoriei este mprit n dou segmente ce reprezint dimensiunea fizic a memoriei calculatorului ce este utilizat de procese (n partea stng) i memoria utilizat pentru paginare i memoria cache buffer n partea dreapt. ntreaga lungime a segmentului orizontal ne arat memoria fizic utilizat de ctre sistem la momentul respectiv. - poriunea de swap indic dimensiunea de spaiu swap utilizat de ctre sistem din totalul spaiului swap alocat. Gsysinfo Gsysinfo este un utilitar conceput pentru interfaa grafic Gnome i urmrete utilitatea programului xsysinfo. Gsysinfo este conceput sub licen GNU GPL (General Public Licence). Referitor la numele de GNU, acesta provine de la sintagma GNU Not UNIX i s-a dorit a fi un sistem de operare precum UNIX ce este distribuit cu codul surs i poate fi copiat, modificat i redistribuit. Proiectul GNU a fost iniiat n 1983 de Richard Stallman i alii ce au pus bazele Fundaiei pentru Software Liber (FSF Free Software Foundation). Concepia lui Stallman este aceea c utilizatorii pot face ce doresc cu software-ul achiziionat, putnd face cpii ale acestuia pentru prieteni i modifica codul surs redistribuind-ul la un anumit cost. FSF stipuleaz termenul copyleft care nseamn c oricine redistribuie software free trebuie s lase n continuare libertatea de copiere i redistribuie a programului, asigurndu-se n acest fel c nimeni nu va reclama drepturi de proprietate asupra unor versiuni viitoare i nu va impune restricii la utilizarea acestuia.

Microprocesorul

n acest context, termenul free nseamn libertate i nu neaprat gratis. Fundaia FSF percepe nite costuri iniiale la distribuia GNU. Redistribuitorii pot, de asemenea, s perceap taxe pentru copiile programelor n scopul profitului sau pentru acoperirea costurilor. Ideea de baz a software-ului liber (free software) este aceea c se las libertatea utilizatorilor s modifice i s reasambleze produsul fr nici o restricie n afar de aceea c nici ei, la rndul lor, nu pot impune restricii mai departe. Stallman crede c unul dintre rezultatele filozofiei free software este acela c mai multe programe free vor coexista mpreun provenind din alte programe free. GNU este un exemplu n acest sens; acesta a devenit un sistem de operare cnd n august 1996 i-a fost adugat un kernel (GNU Hurd i Mach). Fundaia FSF continu s dezvolte software free sub form de programe de aplicaii; un program de tip spreadsheet este acum disponibil. Sistemul de operare Linux este conceput cu componente GNU iar kernelul este dezvoltat de Linus Torvalds. Capturi de ecran gsysinfo Prezentm n continuare cteva capturi de ecran gsysinfo. - putem vedea n imaginea de mai jos (figura 2.8) utilitarul gsysinfo situat ntre bara de volum i ceas (ncrcarea sistemului este de aproximativ 1.8):

Fig. 2.8 Ilustrare grafic a utilitarului gsysinfo

GNU s-a vrut iniial s fie o alternativ la versiunile comerciale de UNIX. Acest lucru nu s-a ntmplat nc, dar Richard Stallman i ali programatori muncesc n continuare pentru acest ideal. Paradoxal este c primele succese nregistrate de GNU au fost aplicaii adiionale sistemelor proprietare UNIX. Componente GNU precum GNU Emacs, GCC (GNU C Compiler) i bash (un nlocuitor free pentru Bourne Shell) sunt instalate astzi implicit pe majoritatea variantelor de UNIX existente.

Elemente de arhitectur a sistemelor de calcul i operare

- n continuare (figura 2.9) apare indicatorul sysinfo pentru activitatea n reea. Traficul de date transmise de la calculator spre reea apare n culoarea verde iar traficul de intrare este ilustrat n rou.

Fig. 2.9 Activitatea de reea la gsysinfo

- n figurile 2.10, 2.11 i 2.12 apar ferestrele legate de setarea caracteristicilor programului gsysinfo.

Fig. 2.10 Fereastra de proprieti generale gsysinfo

Microprocesorul

Fig. 2.11 Fereastra de setri pentru gsysinfo indicatori

Windows 2000 - System Monitor

n Windows 2000, cu ajutorul lui System Monitor se pot msura performanele calculatorului local sau ale altor calculatoare din reea. Utilitarul System Monitor asigur urmtoarele funcionaliti: Colecioneaz i vizualizeaz n timp real date legate de performana calculatorului local sau pentru alte calculatoare de la distan; Vizualizeaz datele colectate n timp real sau stocate anterior; Reprezint datele sub form de: grafic, histogram sau raport de vizualizare;

Elemente de arhitectur a sistemelor de calcul i operare

Fig. 2.12 Fereastra de setri pentru gsysinfo Layout

ncorporeaz funcionaliti ale aplicaiei System Monitor n Microsoft Word sau alte aplicaii ale suitei Microsoft Office cu ajutorul caracteristicei denumite Automation; Creeaz pagini HTML pentru vizualizarea performanelor; Creeaz configuraii de monitorizare reutilizabile ce pot fi instalate pe alte calculatoare ce folosesc MMC (Microsoft Management Console). Cu ajutorul lui System Monitor se pot colecta i vizualiza date legate de gradul de utilizare a componentelor hardware precum i date legate de activitile serviciilor de sistem existente pe calculatoarele administrate. n cadrul aplicaiei se poate stabili modalitatea de prezentare a datelor n urmtoarele moduri: Tipul de date pentru a selecta datele ce vor fi colectate, se pot specifica unul sau mai multe instane de contorizare pentru obiecte ale monitorului de performane. Unele obiecte

Microprocesorul

(memoria, spre exemplu) ofer contorizare la nivelul resurselor sistemului; altele ofer posibilitate de contorizare la nivelul execuiei aplicaiilor. Sursa de date Aplicaia System Monitor poate strnge date de pe calculatorul local sau de pe alte calculatoare din reea unde exist aceast permisiune (implicit este nevoie de drepturi de administrator). n plus, se pot include att date culese n timp real ct i date stocate anterior n fiiere speciale de tip log. Parametri de test se ofer posibilitatea de stabilire manual, la cerere sau automat ntr-un interval specificat a unor teste de date. Atunci cnd se vizualizeaz aceste date se poate alege momentul de nceput sau de sfrit astfel nct datele pot fi vizualizate ntre intervale specificate de timp.
Magistrala de sistem

Pentru a coordona i controla ntrega activitate a calculatorului, microprocesorul trimite nite mesaje, denumite semnale, ctre componentele acestuia. Din punct de vedere al tipului acestor semnale, ele se pot clasifica n semnale pentru magistrala de date (de regul cu o dimensiune de 32 sau 64 de bii), magistrala de adrese (de asemenea, pe 32 bii sau mai mult) i magistrala de control (format din aproximativ 15 linii de control ce au rolul de a iniia sau stopa diverse activiti din interiorul computerului). Una dintre liniile de control este reprezentat de ceasul de sistem, care este un oscilator de cristal de nalt frecven (pe placa de baz l identificm ca fiind un mic cilindru argintiu, situat n apropierea microprocesorului). Prin intermediul liniilor de magistral (pentru a controla diversele activiti ale calculatorului), microprocesorul trimite semnale ctre componentele calculatorului, componentele trimind, la rndul lor, un rspuns ctre microprocesor. n unele cazuri o astfel de aciune este controlat de un alt dispozitiv dect microprocesorul, care poate lua controlul asupra liniilor de magistral (n acest mod se elibereaz i procesorul de sarcina respectiv). Secvena semnalelor trimise prin intermediul magistralei trebuie s fie coordonate extrem de precis n timp printr-o aciune de sincronizare. Dac aceast operaie de sincronizare este asigurat n ntregime de ctre ceasul de sistem, atunci magistrala se numete sincron.

Elemente de arhitectur a sistemelor de calcul i operare

2.3 Familia de procesoare x86

Primul microprocesor, 4004, pe 4 bii, a fost realizat de firma Intel n anul 1971. Acesta a fost repede mbuntit, rezultnd microprocesorul 8008. n 1974 Intel realizeaz a doua generaie de microprocesoare al crei reprezentant de baz este 8080. Acesta a fost primul microprocesor de uz general avnd o importan deosebit pentru industria microcalculatoarelor. n iunie 1978 este lansat pe pia microprocesorul Intel 8086 (care reprezint a treia generaie de microprocesoare), cu aproape 3 ani nainte de apariia primului calculator IBM PC, bazat pe designul 8080/8085, cu o mulime similar de registre, dar extins la 16 bii. Acesta este momentul n care ncepe evoluia familiei x86. Unitatea de interfa cu magistrala (Bus Interface Unit) aducea fluxul de instruciuni ctre unitatea de execuie (Execution Unit) printr-o coad de prencrcare, astfel nct aducerea i execuia erau concurente - o form primitiv de pipelining (instruciunile 8086 variau de la 1 la 4 octei). Primul PC lansat pe pia n 1981 avea ns un procesor Intel care lucra la viteza de 4,77 Mhz. Acesta nu era ns primul produs IBM care folosea un procesor x86 - un sistem de prelucrare de texte - IBM Displaywriter, proiectat la Austin, Texas, folosise deja un microprocesor x86 la viteza de 5 Mhz. De altfel, IBM nici nu era nici prima firm, nici singura care utiliza un microprocesor x86 ntr-un PC. O firm mic, Seattle Computer Products, lansase deja un sistem realizat cu un procesor x86. Aceast companie a dezvoltat prima versiune a sistemului de operare PC DOS, achiziionat de Microsoft i denumit ulterior MS-DOS. Pentru primul PC a fost ales microprocesorul 8088, cu performane sczute, datorit necesitii de a menine preul mic al calculatorului. Microprocesorul 8088 admitea o magistral intern pe 16 bii, ns magistrala extern nu avea dect 8 bii. Aceasta l fcea mai uor de conectat la cipurile pe 8 bii ale dispozitivelor periferice i a permis utilizarea unei memorii de dimensiuni mai mici n construcia calculatorului. Printre caracteristici erau 4 registre generale pe 16 bii, ce puteau fi accesate de asemenea ca registre pe 8 bii i 4 registre index pe 16 bii (incluznd pointerul de stiv). Registrele de date erau deseori folosite implicit de instruciuni, alocri complicate ale registrelor pentru valori temporare.

Microprocesorul

Existau de asemenea patru registre segment ce puteau fi setate din registrele index. Registrele de segment permiteau UCP s acceseze 1 megaoctet de memorie folosind tehnica numit segmentare. Instruciunile programului nu puteau adresa n mod direct locaiile de memorie din spaiul de adresare, ci se folosea un proces mprit n dou etape: prima dat se ncrca un registru de segment cu adresa unui bloc de 64 Kb de date sau de instruciuni, care putea fi plasat oriunde n memoria de 1 Mb. n continuare, orice instruciune a microprocesorului avea acces direct la orice dat sau instruciune aflat n blocul de 64 Kb. Pentru a se obine accesul n exteriorul blocului de 64 Kb, registrele de segment erau ncrcate cu o nou adres, folosindu-se cele patru registre de segment: unul pentru accesul la date, al doilea pentru accesul la instruciuni, al treilea pentru accesul la stiv i un registru special extra-segment. Schema bloc a microprocesorului 8088 este prezentat n figura 2.2. Dac pentru construcia lui 8088 au fost necesare 29.000 de tranzistoare ntr-o capsul cu 40 de pini i cu o tehnologie de 3 microni, microprocesoarele Pentium 4 actuale sunt construite cu 55 milioane de tranzistoare cu o tehnologie de 0,13 microni! Cu privire la evoluia numrului de tranzistori integrai pe un cip exist faimoasa lege a lui Gordon Moore (cofondator la Intel) care a prezis acum 30 de ani c numrul de tranzistoare de pe un cip se va dubla la fiecare 18 luni, lege ilustrat n figura 2.3.

Elemente de arhitectur a sistemelor de calcul i operare


Interfata cu memoria

Magistrala 3

Sumator
Magistrala 2 ES

CS DS SS IP

Coada de siruri de octeti de instructiuni

Unitatea de interfata cu magistrala

Unitatea de executie Controlul sistemului

Magistrala 1

AH BH CH DH SP BP SI DI

AL BL CL DL

Unitatea aritmetica logica

Unitatea de interfata cu magistrala


Indicatori de conditie

Fig. 2.2 Schema bloc a microprocesorului 8088

2.3.1 Microprocesorul 80286 (286)

Familia x86 se mrete n 1982 cu microprocesorul 80186, structural identic cu 8086 dar coninnd cteva dispozitive sistem integrate n acelai circuit. n acelai an este introdus i 80286 care are o arhitectur extins fa

Microprocesorul

de 8086. El poate lucra exact ca un 8086 avnd ns unele faciliti n plus. ncepnd cu acest microprocesor au fost introduse mecanismele de memorie virtual, de multitasking i de protecie.

Fig. 2.3 Evoluia numrului de tranzistoare integrate pe un cip

Calculatorul PC-AT (Advanced Tehnology - Tehnologie Avansat) 286 era construit cu 134.000 de tranzistori nglobai ntr-o capsul cu 68 de pini. Cea mai important caracteristic a sa o reprezenta cretere spaiului de adresare la 16 MB, permind lucrul n modul protejat i cu memorie virtual. Despre aceste concepte vom discuta mai pe larg n continuare. Modul protejat de lucru a permis posibilitatea folosirii sistemelor de operare multitasking, cum ar fi UNIX sau diverse variante ale acestuia.
Memoria virtual

Memoria virtual reprezint un tip imaginar de memorie folosit de unele sisteme de operare, precum Windows (dar nu i DOS), prin care deficitul de memorie RAM este suplinit folosindu-se hard disk-ul calculatorului. Memoria virtual poate fi considerat ca o mulime de adrese

Elemente de arhitectur a sistemelor de calcul i operare

de memorie; programele folosesc aceste adrese virtuale n locul celor reale pentru a stoca instruciuni i date. n momentul execuiei programului, adresele virtuale sunt convertite n adrese reale de memorie, fcndu-se transferul datelor din memoria virtual (de pe disc) n memoria real. Scopul folosirii memoriei virtuale este acela de a mri spaiul de adresare, adic mulimea de adrese de memorie pe care un program o poate utiliza. De exemplu, memoria virtual poate conine de dou ori mai multe adrese dect memoria principal. Din aceast cauz, un program ce folosete toat memoria virtual nu poate fi ncrcat n ntregime n memorie n acelai timp; totui, calculatorul poate ncrca n memoria principal doar poriunile din program necesare la un moment dat pe parcursul execuiei. Pentru facilitarea copierii coninutului memoriei virtuale n memoria real, sistemul de operare mparte memoria virtual n pagini ce conin fiecare un numr fix de adrese. Fiecare pagin este stocat pe disc pn n momentul n care este nevoie de ea. n acel moment, sistemul de operare o copiaz de pe disc n memoria real, prin procesul de translatare a adreselor virtuale n adrese reale. Acest proces de translatare se mai numete i mapare, iar mecanismul de copiere a paginilor virtuale de pe disc n memoria principal se numete swapping (uneori i paginare).

2.3.2 Microprocesorul 80386 (386)

Lansat pe pia n octombrie 1985, procesorul 80386 a aprut iniial cu o magistral de sistem pe 32 de bii, apoi o versiune a acestuia cu o magistral pe 16 bii - denumit 386SX, n timp ce modelul pe 32 de bii a fost redenumit 386DX. Procesorul 386SX era foarte popular, deoarece putea folosi arhitecturile 286 deja existente, cu cteva schimbri minore. Concurena acerb a firmei AMD (Advanced Micro Devices), principalul productor de microprocesoare clon a fcut ca preul sistemelor PC complete s scad foarte mult, nregistrndu-se pentru prima dat preuri cu mult sub 1000$. Microprocesoarele 80386DX i 80386SX erau construite folosindu-se iniial o tehnologie CMOS de 1,5 microni, apoi de 1 micron, coninnd 275.000 de tranzistori, n timp ce versiunea 80386SL includea 855.000 de tranzistori.

Microprocesorul

Caracteristici ale procesorului 80386

Microprocesoarele 386 au beneficiat de cteva mbuntiri semnificative fa de microprocesoarele anterioare din familia x86. Posibilitatea prelucrrii informaiei pe 32 de bii i accesul la memorie printr-o magistral de 32 de bii au permis pentru prima dat adresarea a 4 Giga octei de memorie n mod direct i a 64 Tera octei n mod virtual. De asemenea, vitezele procesorului erau limitate de performanele memoriei sistemului, folosindu-se n scopul "alimentrii" microprocesorului cu mai multe instruciuni i date metode ce erau folosite pn atunci doar la calculatoare mainframe sau minicalculatoare. Metodele constau n folosirea bancurilor de memorie intercalat (memoria sistemului era mprit n blocuri ce puteau fi accesate simultan pentru a crete viteza de lucru) i a memoriilor cache rapide. Se permitea, de asemenea, folosirea unui model de adresare complet liniar, fr a se utiliza registrele de segment, precum i folosirea paginrii. Microprocesorul 386 putea fi folosit pentru a simula comportamentul mai multor procesoare 8086 ce lucreaz n mod real, oferind posibilitai de multitasking. Ca i n cazul microprocesorului 286, software-ul nu folosea pe deplin capacitile acestuia, astfel nct abia dup zece ani, o dat cu apariia sistemului de operare pe 32 de bii Windows 95 s-au putut valorifica cu adevrat capacitile procesorului 386. Arhitecturile de sistem bazate pe microprocesoare 386 s-au schimbat radical fa de arhitecturile anterioare. Astfel, subsistemele memoriei s-au conectat la magistrala local a microprocesorului iar folosirea memoriilor cache rapide i a metodelor de intercalare a memoriei au devenit lucruri obinuite. Magistrala AT a devenit doar o magistral de extensie pentru conectarea adaptoarelor echipamentelor periferice, nemailucrnd la frecvena ceasului microprocesorului. Primele cipuri rulau la 12,5 MHz i apoi transformate rapid pentru a rula la frecvene de 16, 20, 25 ,33, 40 i 50 de MHz.
Microprocesorul 80386SL

Versiunea 386SL lansat de Intel era un procesor 386 special ce ngloba 855.000 de tranzistori (de 3,1 ori mai mult dect la un 386 obinuit), fiind proiectat pentru piaa calculatoarelor notebook, aflat n cretere. Acest microprocesor dispunea de un sistem de gestionare a consumului (Power Management), de o memorie cache de 8K, de un controeller DRAM i era capabil s funcioneze la 3,3 voli. Produsul avea un concurent puternic

Elemente de arhitectur a sistemelor de calcul i operare

reprezentat de versiunea 386SX a firmei AMD, nregistrnd un succes limitat, n cele din urm fiind retras de pe pia de firma Intel.

2.3.3 Microprocesorul 80486 (486)

Firma Intel a prezentat n aprilie 1989 procesorul 486, ce dispunea de puine mbuntiri fa de 386. Setul de registre, caracteristicile de gestiune a memoriei i tipurile de date erau aproape neschimbate fa de cele de la 386, n schimb performanele erau crescute semnificativ prin integrarea pe cip a coprocesorului matematic i a unei memorii cache de nivelul 1 de 8K. Tehnologia de fabricaie era de tipul CMOS, nglobnd 1,2 milioane de tranzistori pe cip. Prima versiune, 486DX folosea o tehnologie de fabricaie de 1 micron pentru frecvenele de ceas de 25 i 33 Mhz, scznd apoi la 0,8 microni la 486DX-50. Micorarea dimensiunilor tranzistorilor a prezentat dou avantaje deosebite de care au beneficiat din plin microprocesoarele 486: n primul rnd, fiind mai mici, folosesc mai puin energie, iar n al doilea rnd, pot lucra mai rapid. Alte dimensiuni tehnologice de fabricaie erau: pentru 486DX2 - 0,8 microni (Intel), 0,5 microni (AMD), 0.65 microni (Cyrix), iar pentru 486DX4 - 0,6 microni (Intel - cu 1,6 milioane de tranzistori), 0,5 microni (AMD), 0.65 microni (Cyrix).
Magistrala local a microprocesorului 486

Aceast magistral s-a modificat sensibil fa de cea a microprocesorului 386, permind o cretere a ratelor de transfer pe magistral. n timp ce magistrala veche 386 trimitea o adres pentru fiecare acces la memorie, magistrala 486 transmitea o adres pentru un bloc de pn la 16 octei. S-a permis astfel creterea cu 50% a ratei de transfer fa de rata de transfer de la 386, la aceeai frecven i dimensiune a magistralei. Fcndu-se transferuri de blocuri de date, se trimite doar adresa blocului iniial ctre memorie, aceast tehnic fiind ideal pentru sisteme cu memorie cache, cum este i cel 486. Transferul pe blocuri de date se face la citire ct i la scriere i sunt necesare dou impulsuri de ceas pentru primul transfer pe 32 de bii i cte un impuls de ceas pentru transferurile urmtoare pe 32 de bii. Numrul de transferuri ulteroare pe 32 de bii este de trei, astfel c pentru un procesor la 50 MHz, transferul unui bloc de maxim 16 octei se

Microprocesorul

face pe perioada a cinci perioade de ceas, adic 160 M/secund (fa de o rat maxim de transfer pe magistral de 1M/secund la primul PC !). Deoarece diferena de pre dintre procesorul 486 i clonele 386 rapide erau foarte mari, firma Intel a hotrt s scoat pe pia o versiune mai ieftin a procesorului 486, mai puin performant, denumit 486SX. Diferena esenial fa de microprocesorul 486 obinuit era lipsa funciilor oferite de coprocesorul matematic, iar preul era de pn la o treime fa de acesta, denumit ulterior 486DX. Trebuie fcut o precizare cu privire la titulatura impus de Intel: n timp ce pentru familia procesoarelor 386, SX reprezenta un procesor pe 16 bii, pentru familia procesoarelor 486, SX reprezenta lipsa coprocesorului matematic! Ca i n cazul microprocesorului 386SL, Intel a lansat pe pia i o versiune 486 pentru calculatoarele notebook, denumit 486SL, oferind caracteristici avansate de gestiune a consumului i posibilitatea de a lucra la 3,3 voli; succesul a fost limitat i modelul a fost retras de pe pia n scurt timp.

2.3.4 Microprocesorul Pentium

n anul 1993 i-a fcut apariia procesorul Pentium al firmei Intel, avnd o arhitectur superscalar (se puteau executa n anumite condiii dou instruciuni simultan n acelai ciclu de ceas) i memorii cache de nivelul unu separate pentru instruciuni i pentru date, de cte 8K. O alt mbuntire o reprezenta creterea dimensiunii magistralei locale Pentium la 64 de bii, iar a vitezei de lucru la 60 sau 66 de MHz. Tehnologia de fabricaie era CMOS bipolar, de 0,8 microni (pentru primele Pentium-uri la 60 i 66 MHz), de 0,6 microni (la modelele ce lucrau la frecvene de 75, 90, 100 MHz) i de 0,35 microni (la modelele cu frecvene de 120, 133, 150, 166, 200 MHz) i nglobau de la 3,1 milioane de tranzistoare (La primul Pentium) pn la 3,3 milioane la modelele ulterioare. Referitor la denumire, se impune specificarea c acesta a fost primul microprocesor cu aceeai arhitectur x86, care a renunat la numele de x86 (ar fi trebuit s se denumeasc 586), deoarece firma Intel nu a putut s opreasc alte firme productoare de microprocesoare clon s foloseasc acest nume.

Elemente de arhitectur a sistemelor de calcul i operare

Microprocesorul Pentium Pro ("P6")

Microprocesorul Pentium Pro a fost introdus n 1995 ca succesor al procesorului Pentium, aducnd cteva caracteristici nemaintlnite pn atunci ntr-un microprocesor de PC. Microprocesorul Pentium Pro a fost primul microprocesor ce a schimbat radical modul de execuie al instruciunilor, translatndu-le n microinstruciuni gen RISC i executndu-le apoi mai uor n unitile interne. Disponibil n multiple variante cu frecvene ntre 150 MHz (noiembrie 1995) i 200 de MHz (ianuarie 1997), microprocesoarele Pentium Pro sunt construite folosindu-se o tehnologie de 0,6 pn la 0,35 microni pentru microprocesor i memoria cache integrat de nivel 2. Numrul de tranzistori folosii este de aproximativ 5,5 milioane, iar dimensiunea memoriei cache de nivel 2 variaz de la 256 KB la 1MB pentru microprocesoarele ce ruleaz la fecvene de 200 de MHz. Cu toate c este vechi de mai bine de trei ani, procesorul Pentium Pro este nc folosit n sisteme high-end (servere, n special), cu toate c Pentium II (i mai nou, Pentium III) ncepe s-i ia locul n unele cazuri. Pentru astfel de servere ce dispun de mai multe procesoare Pentium Pro, raportul pre/performan este destul de bun, concurnd n acest sens chiar cu unele procesoare (non Intel) pentru servere ale firmei DEC (Digital Equipment Corporation) Alpha. Principalele caracteristici ale procesorului Pentium Pro sunt urmtoarele:
superpipelining - arhitectur n conduct superioar celei de la Pentium, mrindu-se numrul de stadii n execuie de la 5 la 12; memorie cache de nivelul 2 integrat pe cip - n loc s foloseasc o memorie cache integrat pe placa de baz ce funcioneaz la viteza magistralei de memorie, se folosete o memorie cache integrat n cip, avnd propria magistral i rulnd la ntreaga vitez a microprocesorului, n general de trei ori mai rapid dect la procesoarele Pentium. De asemenea, arhitectura memoriei cache este diferit, de tip non-blocking, ceea ce nseamn c atunci cnd avem de-a face cu un "cache miss" (greeal de memorie cache), procesorul i continu execuia, neateptnd (re)citirea datelor din memoria principal; optimizare pentru 32 de bii: Pentium Pro este optimizat pentru a rula coduri pe 32 de bii (folosite de majoritatea sistemelor de operare i a aplicaiilor), ducnd la mai bune performane fa de Pentium atunci cnd se folosete software de ultimul tip;

Microprocesorul

mai mare adresabilitate a magistralei: datorit faptului c magistrala de adrese este pe 36 de bii, rezult o dimensiune maxim a adreselor de memorie fizic de 64 GB; multiprocesare superioar: exist configuraii de multiprocesare cu pn la patru procesoare Pentium Pro (sisteme quad), fa de maximum dou la Pentium (sisteme duale); ncheierea instruciunilor "out of order" (neordonate), ceea ce nseamn c instruciunile din stadiile n conduct se pot executa n alt ordine dect cea stabilit iniial; previziune superioar a ramificrilor: dimensiunea BTB (Branch Target Buffer - Memorie Buffer pentru Ramificri) este dubl fa de Pentium i acurateea este crescut (BTB este o mic memorie asociativ (de regul cu 128 pn la 512 de intrri) ce urmrete indexul memoriei Icache i ncerc s prezic ce index Icache va fi accesat n continuare, bazndu-se pe istoria ramificrilor. Optimizarea actualului algoritm folosit n acest scop reprezint un domeniu continuu de cercetare, procesorul Pentium Pro folosind o variant a algoritmului lui Yeh - 1991); redenumirea registrelor: aceast performanelor paralele ale conductelor;

faciliate

ofer

creterea

execuie speculativ: un mecanism generalizat ce permite instruciunilor s fie prelucrate "mai devreme", nainte de ordinea de execuie normal. Rezultatele acestor speculaii (previziuni) sunt stocate temporar (n ROB - Re-Order Buffer - Buffer de Reordonare - care este o unitate funcional a procesorului Pentium Pro unde micro instruciunile iniiale ateapt, rezultatele speculative sunt colectate i apoi retrase) deoarece exist posibiliatea s nu fie utilizate datorit unor schimbri n execuia programului. tehnologie de execuie dinamic care poate fi conceput pe scurt ca o ajustare optimal a execuiei instruciunilor prin prevederea desfurrii programului, analiznd graficul desfurtor al programului pentru a alege cea mai bun ordine de execuie a instruciunilor i apoi avnd abilitatea de execuie speculativ a instruciunilor n ordinea preferat. Pentru a nelege mai bine implementarea execuiei dinamice, figura 2.4. ne prezint cele trei poriuni interne de interfa cu subsistemul de memorie.

Elemente de arhitectur a sistemelor de calcul i operare

Apar n aceast figur patru componente ale structurii pipeline ale procesorului Pentium Pro:
Unitatea FETCH/DECODE, care este o component ce preia ca input fluxul de instruciuni al programului utilizatorului din cache-ul de instruciuni i apoi le decodific ntr-o serie de microoperaii (numite uops) ce reprezint ordinea fluxului de instruciuni. Unitatea DISPATCH/EXECUTE este o unitate "out-of-order" ce accept ordinea fluxului, programeaz execuia microoperaiilor n conformitate cu dependena de date, existena resurselor, stocnd temporar rezultatele acestor execuii speculative. Unitatea RETIRE este componenta "in-order" ce tie cum i cnd s aplice ("retire") rezultatele speculative temporare n stri arhitecturale permanente. Unitatea BUS INTERFACE este o component parial ordonat responsabil cu conectarea celor trei uniti interne cu lumea real. Aceast unitatea de interfa cu magistrala comunic direct cu cache-ul L2 i suport pn la patru accesri cache concurente.
System Bus L2 Cache

BUS IN TERFACE UNIT

L1 ICache

L1 DCache

Fetch/Decode Un it

Dispatch/Execute Un it

Retire Un it

Instruction pool

Fig. 2.4 Cele 3 uniti interne de interfa cu subsistemul de memorie ce folosete memorii cache unificate de cte 8K

Microprocesorul

2.3.5 Microprocesorul Pentium MMX

Microprocesorul Pentium MMX (varianta P55C) a fost introdus pentru prima dat n ianuarie 1997 i este primul microprocesor Pentium ce a inclus instruciuni MMX, urmat de AMD K6, Cyrix 686MX i Pentium II. Creterea performanelor fa de procesorul Pentium const n abilitatea deosebit de a opera cu aplicaii multimedia mult mai eficient, fiind disponibil n variante ale frecvenei de ceas de 166, 200 i 233 MHz pentru sistemele desktop i 133, 150, 166, 200 i 233 MHz pentru sistemele mobile. mbuntiri aduse microprocesorului Pentium clasic:
Noi instruciuni. Inginerii firmei Intel au adugat 57 de noi instruciuni proiectate special s manipuleze i s proceseze date video, grafice i audio mai eficient. Aceste instruciuni sunt orientate ctre secvene paralele, repetitive, ce se gsesc deseori n operaii multimedia. SIMD (Single Instruction, Multiple Data). Aplicaiile multimedia i de comunicaie de astzi folosesc uzual cicluri repetitive ce ocup sub 10% din codul total al aplicaiei i folosesc 90% din timpul de execuie al aplicaiei. Procedeul SIMD permite ca o instruciune s se execute pentru mai multe seturi de date simultan. Se reduc astfel ciclurile intens calculatorii referitoare la video, audio, grafic i animaie. De asemenea, mulimea instruciunilor MMX are permite folosirea a dou instrucinui MMX ntr-un singur ciclu de ceas, deci dou instruciuni SIMD pot fi procesate cu date pe 16 bii ntr-un singur ciclu de ceas. Mai mult memorie cache. Firma Intel a dublat memoria cache intern la 32KB (16 KB pentru date, 16 KB pentru instruciuni ), astfel c se pot stoca mai multe date i instruciuni pe cip, reducndu-se numrul de accesri la memoria ami lent din afara microprocesorului. mbuntiri bazate pe caracteristicile altor microprocesoare. Pentium MMX folosete o unitate de predicie a ramificrilor, concept preluat de la Pentium Pro, avnd, de asemenea, o implementare a stivei de rentoarcere ("return stack") concept al microprocesorului IBM/Cyrix 6x86. Alte mbuntiri. Microprocesorul Pentium MMX are patru memorii buffer de scriere fa de dou la Pentium-ul clasic, iar conductele U i V au fost crescute cu un stadiu. A fost mbuntit, de asemenea, capacitatea de procesare paralel a celor dou conducte. Figura 2.5 prezint implementarea tehnologiei Intel MMX. Se pot observa aici cele

Elemente de arhitectur a sistemelor de calcul i operare

dou conducte (MMX U pipe i MMX V pipe) adugate n paralel la structura intern deja existent la Pentium.
Fetch/Decode

ICache

MMX U- pipe

MMX V- pipe

U pipe

V pipe

Floating Point

Bus Interface

DCache

Fig. 2.5. Diagrama implementrii tehnologiei Intel MMX

2.3.6 Microprocesorul Pentium II ("Klamath")

Aprut n luna mai a anului 1997, Pentium II, cu numele de cod "Klamath" (dup numele fluviului din Oregon, SUA), reprezentnd un pas important n evoluia de la Pentium Pro. Se pare c obiectivele firmei Intel pentru crearea procesorului Pentium II au fost, n principal, s reduc costurile deosebit de mari ale memoriei cache integrate de nivel 2, care constituia principala dificultate n construcia Pentium-ului Pro. Din punct de vedere arhitectural, Pentium II nu este foarte diferit de Pentium Pro, cu o parte intern de emulare x86 i nglobnd majoritatea caracteristicilor acestuia. Diferenele sunt, n mare, urmtoarele:
Memorie cache de nivel 1 dubl: mrimea memoriei cache interne a crescut de la 16 KB la 32 KB n total (16 KB instruciuni, 16 KB date); Cache pentru registele de segment: acestea sunt memorii cache speciale folosite pentru a ajuta Pentium II s proceseze codurile pe 16 bii mai eficient, tiindu-se c Pentium Pro a fost optimizat pentru coduri pe 32 de bii, ceea ce nseamn c nu se comport la fel de bine pentru coduri pe 16 bii. Probabil ca rspuns la dominaia sistemului de operare

Microprocesorul

Windows 95 a existat o dorin de mbuntire a performanelor n acest sens.


Buffere de scriere de mrime mai mare: mrimea bufferelor de scriere a crescut, ducnd la o mic mbuntire a performanelor.

Acestea sunt mbuntirile din punct de vedere arhitectural; mbuntiri reale au aprut prin creterea frecvenelor de ceas i prin adugarea extensiilor mulimii de instruciuni MMX. Vitezele de ceas au variat de la 233 MHz la 266 MHz, apoi 300 MHz i 333 MHz. Totui, cea mai mare noutate nu a reprezentat-o cipul n sine, ci modalitatea de prezentare a acestuia. Memoria cache integrat de la Pentium Pro ce rula la viteza de ceas a microprocesorului, constituia o mbuntire major adus arhitecturii x86. Intel a nlocuit la Pentium II aceast memorie cu un circuit special ce conine procesorul i 512 KB de memorie cache secundar ce ruleaz la jumtate din viteza microprocesorului. Acest ansamblu, denumit SEC (Single-Edge Cartridge - cartu cu o singur muchie), a fost conceput s se potriveasc ntr-un soclu cu 242 de pini pe placa de baz Pentium II. Aceast schimbare de proiectare a strnit diverse controverse, accentuate de faptul c noua interfa Slot 1, patentat de Intel, nu va putea fi folosit de companiile rivale AMD i Cyrix pentru noile lor procesoare.

2.3.7 Microprocesorul Pentium III

Iniial, microprocesorul original Pentium III (nume de cod Katmai) nu era foarte diferit de Pentium II. De-abia cu noua variant mbuntit de Pentium III (nume de cod Coppermine) Intel a reuit s produc ceea ce vroia cu adevrat, dar lucru realizat cu ntrziere. Acest microprocesor are o memorie cache L2 de 256 Kb integrai pe plcua de siliciu (aa numita memorie on-die). n combinaie cu noile chipset-uri 810/820/840 ofer suport pentru 4 porturi AGP, 133FSB i memorie RDRAM (Rambus). Procesoarele Pentium III (nume de cod Willamette) au, de regul, viteze cuprinse ntre 800 i 1200 MHz.
2.3.8 Microprocesorul Pentium 4

Cea mai nou arhitectur existent n acest moment, Pentium 4 are cteva avantaje comparativ cu celelalte procesoare x86: o laten mai mic a

Elemente de arhitectur a sistemelor de calcul i operare

memoriilor cache L1 i L2, execuia instruciunii de adunare n jumtate de tact i execuia unui numr de 126 de instruciuni de tip RISC. Pentium 4 poate procesa mai multe instruciuni n paralel datorit unitii aritmetico-logice duble i a memoriilor tampon asociate mai mari. Planificatoarele integrate pot gsi mai multe instruciuni independente, avnd n vedere numrul de 126 de instruciuni ce pot fi derulate. Unitile aritmetico-logice pot executa patru instruciuni ntr-un ciclu de tact. Procesorul Intel Pentium 4 cu tehnologie HT (Hyper Threading) ofer cea mai mare putere de procesare pentru aplicaiile avansate din zilele noastre. Tehnologia Hyper-Threading de la Intel permite procesorului s execute dou fire de execuie n paralel, astfel nct software-ul poate rula mai eficient prin implementarea mai bun a multitasking-ului. Pentium 4 dispune de o magistral de sistem ce acioneaz la 800 MHz iar viteza de ceas este cuprins ntre 2,4 i 3,2 GHz. Micro-arhitectura de la Intel se numete NetBurst, bazat pe tehnologie de 0,13 microni. Procesorul Pentium 4 ofer performane superioare pentru procesare de imagini digitale, video, muzic digital, jocuri 3D sau procesare DVD i format video MPEG4.
2.4 Coprocesoare 2.4.1 Coprocesoare matematice

n general, un coprocesor este o unitate de procesare ce asist CPU n calculul diferitelor tipuri de operaii. De exemplu, un coprocesor matematic poate realiza calcule matematice, n particular operaii n virgul mobil. Coprocesoarele matematice se mai numesc coprocesoare numerice sau coprocesoare n virgul mobil. Istoria microprocesoarelor din familia x86 este strns legat de cea a coprocesoarelor matematice. Coprocesorul matematic a fost denumit n mai multe moduri: pur i simplu coprocesor, coprocesor matematic, procesor de virgul mobil, NPX (Numerical Processor eXtension), aceast denumire din urm fiind cea acceptat (i preferat) de firma Intel. Acesta este un cip special ce poate efectua operaii n virgul mobil, calcula funcii matematice - trigonometrice, logaritmice, .a.m.d - ce a primit codul x87 (8087). De remarcat este faptul c, pentru a benficia de avantajele unui

Microprocesorul

coprocesor trebuie ca programul respectiv s conin instruciuni ale coprocesorului, altfel coprocesorul nu va fi niciodat utilizat. Arhitecturile iniiale ale primelor calculatoare personale aveau un soclu liber unde se putea monta un coprocesor matematic sistemului. Fiecrui microprocesor din aceast familie i-a fost asociat un coprocesor pentru a mbunti performanele sistemului de calcul. Pentru microprocesoarele 8086, 80286 80386 i 80486SX erau folosite coprocesoarele 8087, 80287 80387 i respectiv, 80487. ncepnd cu microprocesorul 486, mai precis versiunea 486DX, acest coprocesor matematic este ncorporat direct n cipul microprocesorului. Dar s explicm mai detaliat rolul coprocesorului matematic n mbuntirea performanelor sistemului de calcul. n esen, procesorul principal din familia x86 lucreaz doar cu numere ntregi, cu sau fr semn. n unele calcule ns, pentru a se executa rapid operaii matematice, de exemplu, trebuie s se foloseasc numere cu un alt format dect cel ntreg. Cu toate c exist software specializat ce emuleaz lucrul cu numere n alt format dect cel ntreg, aceast soluie este lent i consum o mare parte din puterea microprocesorului sistemului. Apare astfel necesitatea folosirii coprocesorului matematic, pentru a spori viteza cu care se execut aceste calcule cu numere n format diferit de cel ntreg. Designerii procesoarelor x86 au elaborat o metod de ataare a coprocesorului matematic la microprocesorul principal, printr-o interfa cu un nivel nalt de generalizare ce admite toate tipurile de coprocesoare specializate, folosit n special pentru coprocesorul NPE x87. Astfel introduse, coprocesoarele matematice sunt capabile s efectueze operaiile numerice de 20-100 de ori mai rapid dect software-ul specializat n emularea acestor operaii. Aplicaiile ce includ calculul tabelar, aplicaiile tiinifice sau tehnice, aplicaiile multimedia sau cele de proiectare asistat de calculator (CAD - Computer Aided Design) i unele jocuri (Quake, spre exemplu) necesit operaii numerice la viteze foarte mari i, de aceea, beneficiaz din plin de facilitile de accelerare a funciilor matematice acordate de introducerea coprocesoarelor matematice. Dup cum am mai spus, ncepnd cu microprocesoarele 486DX, coprocesorul este integrat pe acelai cip cu acesta, n timp ce pn atunci calculatoarele personale erau livrate fr coprocesorul matematic instalat, existnd posibilitatea atarii sale nr-un soclu liber de pe placa de baz. Trebuie menionat, de asemenea, c performanele matematice n virgul mobil ale PC-urilor bazate pe microprocesoare Intel din familia x86 (avnd coprocesor matematic ataat sau integrat n procesorul principal) erau mult

Elemente de arhitectur a sistemelor de calcul i operare

inferioare celor obinute de calculatoarele personale bazate pe procesoare RISC. De aceea, firma Intel a cutat s le mbunteasc, astfel c a reproiectat n ntregime coprocesorul matematic al microprocesorului Pentium, obinnd performane de calcul n virgul mobil de pn la 10 ori mai mari dect la microprocesorul 486, apropiindu-se n acelai timp de performanele coprocesoarelor RISC. Alturi de coprocesoarele matematice, exist, de asemenea, i coprocesoare grafice (microprocesoare proiectate special pentru a realiza calcule grafice) pentru manipularea imaginilor grafice. Acestea sunt adesea numite acceleratoare grafice (accelerator boards).

2.4.2 Tipuri de date admise de ctre un coprocesor matematic

Un coprocesor matematic poate lucra cu numere n virgul mobil, precum i cu date reprezentate n mod ntreg sau cod BCD (Binary Coded Decimal cod n care dou cifre zecimale se reprezint pe un octet). n tabelul 2.6. sunt evideniate tipurile de date numerice, cifrele semnificative i domeniile de definiie admise de coprocesoarele Intel. De asemenea, n tabelul 2.7. sunt ilustrate principalele instruciuni ale coprocesorului matematic, funciile algebrice i transcendente, constantele aritmetice incluse n coprocesor i folosite deseori n calcule din matematica superioar. Calculul datelor numerice n interiorul coprocesorului sunt fcute prin translatarea acestora ntr-o reprezentare intern standard numit reprezentare temporar real (pe 80 de bii). Coprocesorul are n componen un set suplimentar de registre, ce const din opt registre de date reprezentate n mod real pe 80 de bii, care se pot comporta ca o stiv de date sau care pot fi accesate n mod independent. Cu ajutorul instruciunilor coprocesorului se pot realiza calculele i modificrile din aceste opt registre de date.

Microprocesorul

Tabelul 2.6
Tipurile de date cu care lucreaz un coprocesor matematic, numrul de cifre semnificative i domeniul aproximativ de definiie
Tipul de date ntreg tip cuvnt ntreg scurt ntreg lung Zecimal compact Real simplu Real dublu Real extins Numrul de bii 16 32 64 80 32 64 80 Cifre semnificative 4 9 18 18 7 15-16 19 Domeniul aproximativ de definiie -32768 32767 -2109 2109 -91018 91018 -99...99 99...99 (18 cifre) 1.1810-38< x< 3.41038 2.2310-308< x< 1.7910308 3.3710-4932< x< 1.18104932

Tabelul 2.7
Instruciunile coprocesorului matematic
Clasa de instruciuni Transferul datelor Aritmetice Comparri Constante Controlul asupra procesorului Funcii Tipul de instruciuni ncrcare, stocare, schimb Adunare, scdere, nmulire, mprire, scdere/mprire invers, ridicare la putere, radical, calculul restului, calculul prii ntregi, schimbare semn, etc. Comparaie, examinare, testare 0,1,,log102,ln2,log210,log2e ncrcare/stocare cuvnt de control, stare cuvnt de control, ncrcare/stocare mediu, salvare, rencrcare, iniializare, anulare excepie Tangent, arctangent, sinus, cosinus, 2x-1, y*log2x, y*log2(x+1)

Elemente de arhitectur a sistemelor de calcul i operare

Cooperarea dintre microprocesorul principal i coprocesor se face n modul urmtor: pentru activarea coprocesorului matematic, microprocesorul i transmite acestuia un cod special, numit escape. n acest moment se iniiaz cooperarea dintre cele dou procesoare. Dup ce datele trimise coprocesorului au ajuns la acesta, ele ncep s fie prelucrate prin funciile specifice coprocesorului, iar n acelai timp microprocesorul principal pregtete configurarea datelor pentru urmtoarea sesiune de lucru a coprocesorului. Aceste dou operaii se execut simultan, dar sunt distincte n acelai timp.

2.4.3 Procesoare DSP (Digital Signal Processor)

Procesoarele de semnale digitale reprezint unul dintre cele mai importante tipuri de coprocesoare existente ntr-un calculator personal. Acest tip de coprocesor este capabil s prelucreze semnale analogice din mediul real (imagini, sunete, etc.) ce au fost convertite n semnale digitale, coninnd n acest sens instruciuni folosite n manipularea semnalelor analogice i prelucrarea acestora. Astfel, coprocesoarele de tip DSP sunt utilizate n aplicaii de tipul:

sinteza i recunoaterea vorbirii; prelucrarea imaginilor video i fotografice; sinteza sunetelor i a muzicii; comprimarea i decomprimarea audio-video; accelerarea grafic 2D i 3D; funcii de modem.

Au aprut astfel i apar n continuare noi tipuri de interfee ce permit introducerea n sistem a unor coprocesoare DSP. Un exemplu de astfel de interfa este interfaa RMI (Resource Manager Interface - interfa de administrare a resurselor) ce permite transferul unor aplicaii de la microprocesorul principal la un coprocesor DSP care le poate executa n timpul n care microprocesorul este ocupat cu alte operaii. Exist cteva companii furnizoare de plci de extensie dotate cu coprocesoare DSP, n special pentru aplicaii multimedia, ns preul acestora este nc destul de mare.

Microprocesorul

2.5 Extensii MMX (MultiMedia eXtension sau Matrix Math eXtension)

Necesitatea creterii tot mai mari a performanelor microprocesoarelor calculatoarelor personale a dus la ambiia firmei Intel de nglobare n funciunile procesoarelor Pentium a unor funcii de prelucrare a semnalelor ce erau ndeplinite pn acum de coprocesoarele DSP. Au aprut astfel instruciunile MMX ce au reprezentat prima schimbare major n setul de instruciuni x86 n ultimul deceniu. MMX definete 57 de noi instruciuni i un prim gol de compatibilitate de la introducerea microprocesorului 386. Toate noile procesoare ale firmelor Intel, AMD sau Cyrix nglobeaz suport pentru aceste noi instruciuni. Scopul extensiei instruciunilor MMX este ecela de a asigura o performan hardware pentru anumite tipuri de programare multimedia. n particular, instruciunile MMX sunt proiectate s asigure procesarea unei mari cantiti de date ntr-un timp scurt, folosind o singur instruciune. Acest procedeu este deseori referit ca SIMD (Single Instruction Multiple Data), adic execuia unei singure instruciuni pe mai multe seturi diferite de date n acelai timp. Aceasta este de fapt, originea numelui Matrix Math eXtension (Extensie Matricial Matematic), din moment ce aceste instruciuni opereaz asupra unei matrice de date (date multiple). Aceste tipuri de instruciuni sunt n mod special folositoare pentru calcule necesare n procesri grafice, video i audio, ceea ce a condus la cea de-a doua provenien a numelui: MultiMedia eXtensions (Extensii MultiMedia). Din moment ce MMX este o extensie a unui set de instruciuni, aceasta nseamn c procesoarele ce vor suporta aceast extensie vor rula toate aplicaiile software ce ruleaz pe procesoarele anterioare, dar nu i vice-versa: procesoarele MMX sunt compatibile cu cele mai vechi, dar nu i invers. De asemenea, pentru a utiliza avantajul instruciunilor MMX, trebuie ca i software-ul respectiv s fie scris avnd n vedere aceste extensii. n acest sens, software-ul trebuie s detecteze dac procesorul suport MMX, deoarece procesoarele non-MMX nu pot procesa deloc instruciuni MMX, apoi este posibil ca software-ul s fie scris astfel nct s lucreze att cu instruciuni MMX ct i cu instruciuni non-MMX, doar folosind coduri diferite n zonele n care sunt folosite instruciunile MMX. n mod evident, deoarece se refer n mod special la aplicaiile multimedia, celelalte aplicaii vor beneficia foarte puin de avantajele extensiei MMX. Procesrile video, editarea fiierelor audio, prelucrrile grafice, jocurile i software-ul similar cu acestea beneficiaz n mod sigur de performanele crescute sub extensia MMX, n timp ce aplicaiile standard

Elemente de arhitectur a sistemelor de calcul i operare

nu au dect foarte puin de ctigat sau deloc de pe urma avantajelor tehnologiei MMX.
2.6 Elemente de arhitectur intern a procesorului 2.6.1 Registrele

Registrele microprocesorului reprezint suprafee locale de memorare (locaii de memorie) n interiorul microprocesorului, folosite pentru stocarea datelor cu care se lucreaz. Fiecare procesor are un anumit numr de registre, unele dintre acestea dedicate unor funciuni speciale iar altele disponibile pentru uzul general al programatorilor. Registrele reprezint memoria cea mai rapid existent ntr-un PC, chiar mai rapid dect memoria cache de nivelul 1, deoarece ele sunt integrate direct n logica microprocesorului. Cele mai multe operaii se fac asupra registrelor; procesorul nu poate executa o operaie aritmetic, spre exemplu, direct n memorie. Dac dorim s adunm valoarea 1 unei locaii de memorie, procesorul va face acest lucru n mod normal ncrcnd valoarea iniial din memorie ntr-un registru, va aduga 1 n registru i apoi va salva noua valoare obinut napoi n memorie. Aceast complicat "schem" se petrece, evident, foarte repede i transparent fa de programator. Limea n bii a registrelor microprocesorului determin cantitatea de date cu care se pot efectua calcule la un moment dat. Aceast mrime este folosit uneori pentru a eticheta "mrimea" procesorului. De exemplu, putem auzi pe cineva vorbind despre un "procesor pe 16 bii", "procesor pe 32 de bii" sau de un "procesor pe 64 de bii". Acest termen se refer n mod normal la mrimea registrelor din interiorul CPU, ns este deseori greit folosit, atribuirea "mrimii" microprocesorului fcndu-se prin referire la limea magistralei de date. n acest sens este interesant faptul c toate microprocesoarele ncepnd cu 386 i pn la Pentium III sau K7 sunt microprocesoare pe 32 de bii, bazndu-ne pe aceast definiie. Doar ultimile microprocesoare RISC, cu ar fi Alpha-DEC, precum i viitorul Itanium (bazat pe noua arhitectur IA-64 i EPIC*) de la Intel sunt microprocesoare pe 64 de bii. De asemenea, ultima generaie de procesoare
* EPIC (Explicitly Parallel Instruction Computing) reprezint conceptul ce are ca prim obiectiv reducerea complexitii UCP prin optimizarea compilatoarelor.

Microprocesorul

AMD, Athlon 64 3400+ este un procesor pe 64 de bii aflat n competiie cu Pentium 4. Cu ct numrul de registre este mai mare ntr-un microprocesor, programatorii au o mai mare flexibilitate n scrierea unui mai bun cod-main. Totui, aceasta implic creterea complexitii procesorului, pe de o parte, dar i necesitatea compatibilitii cu modelele anterioare de microprocesoare, pe de alt parte.
2.6.2 Unitatea de interfa cu magistrala

Unitatea de interfa cu magistrala (Bus Interface Unit) este partea microprocesorului ce asigur interfaa cu restul calculatorului. Numele su vine de la faptul c se ocup cu manipularea informaiei prin magistrala de date a microprocesorului, condiie primordial pentru transferul datelor de la i ctre CPU. Unitatea de interfa cu magistrala este rspunztoare pentru toate semnalele ce se transmit ctre procesor, precum i pentru generarea tuturor semnalelor ce pleac de la procesor ctre alte componente ale sistemului de calcul.
2.6.3 Unitatea de control

Unitatea de control (Control Unit) reprezint circuitele ce controleaz fluxul de informaii prin procesor i coordoneaz activitile celorlalte componente ale sale. Aceast component poate fi denumit, ntro oarecare msur, "creierul din interiorul creierului", din moment ce controleaz ce se ntmpl n interiorul procesorului, iar acesta din urm controleaz restul calculatorului. Funciunile executate de ctre unitatea de control variaz n mare msur n funcie de arhitectura intern a CPU, din moment ce unitatea de control implementeaz efectiv aceast arhitectur. Pentru un procesor obinuit ce execut (nativ) instruciuni x86, unitatea de control ndeplinete funciunile de aducerea a instruciunilor din memorie, de decodificare a acestora, de control al execuiei i de stocare n memorie. Pentru un microprocesor RISC, unitatea de control are o serie ntreag de funciuni n plus. n acest sens, gestioneaz translatarea instruciunilor x86 n microinstruciuni RISC, coordoneaz planificarea microinstruciunilor ntre diferite uniti de execuie i asigur ca rezultatele obinute de la aceste uniti de execuie diferite s ajung acolo unde trebuie. Pentru unele astfel de microprocesoare unitatea de control se poate

Elemente de arhitectur a sistemelor de calcul i operare

mpri n alte subuniti de control (precum unitatea de planificare ce asigur planificarea i o unitate de ateptare (retirement unit) ce asigur controlul rezultatelor ce vin din pipeline) datorit complexitii deosebite a activitilor ce trebuiesc efectuate i gestionate.
2.6.4 Unitatea de execuie a ntregilor

Unitatea de execuie a ntregilor (Integer Execution Unit) se ocup cu operaii cu numere ntregi. Majoritatea calculelor fcute n interiorul PC-ului sunt fcute cu date n format ntreg. Denumirea de "ntreg" include numere ntregi, caractere (text) sau altfel de date similare. Numerele care nu sunt ntregi se numesc numere "n virgul mobil" (floating point numbers). Acestea sunt tratate diferit, folosindu-se o unitate special dedicat, numit unitate de virgul mobil (FPU - Floating Point Unit). Exist unitai de ntregi care pot manipula operaii cu numere n virgul mobil, dar foarte ncet n comparaie cu unitile n virgul mobil dedicate. Unitatea de execuie a ntregilor este locul n care instruciunile sunt executate i se fac calculele. Procesoarele mai vechi aveau o singur astfel de unitate, iar instruciunile erau procesate secvenial. Modelele mai noi folosesc mai multe uniti de execuie, permind n acest fel ca instruciunile s fie executate simultan, crescnd performanele. Procesoarele construite pe baza acestei concepii se spune c au o arhitectur superscalar. Procesoarele i mai avansate pot dispune de uniti de execuie proiectate special pentru execuia unor tipuri de instruciuni, acest lucru fiind n special valabil la procesoarele ce folosesc emularea x86 cu un nucleu procesor de tip RISC.
2.6.5 Unitatea de prelucrare n virgul mobil

Unitatea de prelucrare n virgul mobil (FPU - Floating Point Unit) este o unitate de execuie dedicat efecturii de calcule n virgul mobil precum i calculelor de funcii matematice. FPU este integrat n toate microprocesoarele ncepnd de la 386DX ncoace (mai puin procesorul 486SX). Primele calculatoare trebuiau s foloseasc unitatea de execuie a ntregilor pentru a desfura operaii n virgul mobil (dar foarte lent), aceasta n cazul n care nu aveau ataate un coprocesor matematic (vezi subcapitolul referitor la coprocesoare). Coprocesorul matematic lucra n colaborare cu procesorul principal pentru a mbunti performanele n cazul rulrii aplicaiilor intensiv orientate pe calcule matematice: calcul tabelar, aplicaii tiinifice, multimedia, jocuri etc.).

Microprocesorul

2.6.6 Memoria cache de nivel 1 i controller-ul de memorie cache

Toate microprocesoarele moderne ncorporeaz o mic memorie de vitez foarte mare aflat direct pe cip, numit memorie cache de nivel 1. Aceast memorie este folosit pentru stocarea datelor i instruciunilor recent folosite sau ce urmeaz a fi utilizate imediat. Un principiu al tiinei calculatoarelor spune c dac un procesor a referit recent o locaie de memorie, este foarte probabil ca s fac referire din nou la acea locaie n viitorul apropiat. Folosind o memorie ultrarapid cache pentru a stoca datele recent folosite absolv procesorul de cutarea n memorie a acelor date i de a le ncrca din nou. Acest lucru are o importan deosebit i mbuntete sensibil performanele, deoarece memoria principal este cu multe ordine de mrime mai lent dect memoria de tip cache a microprocesorului. n mod evident ns, o cretere a performanei impune i un pre de pltit: memoriile cache sunt memorii foarte scumpe. Memoria cache integrat n microprocesor se numete memorie cache de nivel 1 (sau memorie cache primar) deoarece este cea mai apropiat de acesta. De fiecare dat cnd procesorul cere informaii ce se gsesc n memorie, controller-ul de memorie cache (sau, pe scurt, controllerul cache) de pe cip folosete un circuit special prin care n prim faz verific dac datele respective sunt deja n memoria cache. Dac da, atunci sistemul a economisit timpul respectiv de acces la memoria principal. Cele mai multe PC-uri folosesc i o memorie cache de nivel 2 (sau memorie cache secundar, plasat pe placa de baz a PC-ului) pentru stocarea datelor recent folosite ce nu au mai ncput n memoria cache de nivel 1 (mult mai mic). Memoriile cache primare tipice ale microprocesoarelor variaz de la 8KB (la 486) la 32KB (Pentium II) sau la 64KB (AMD K6), putnd avea ns dimensiuni chiar mai mari la microprocesoarele recente de tip RISC, n timp ce microprocesoarele dinainte de 486 nu aveau memorie cache primar. Aceste memorii cache sunt foarte rapide deoarece ruleaz la ntrega vitez a procesorului i sunt integrate direct n acesta. Exist dou modaliti de organizare a memoriei cache primare de ctre un procesor; unele procesoare posed o singur memorie cache pentru a folosi att date ct i instruciuni; o astfel de memorie cache se numete, de obicei, memorie cache unificat. Alte procesoare folosesc dou memorii cache separate: una pentru date i alta pentru instruciuni, iar modalitile de

Elemente de arhitectur a sistemelor de calcul i operare

scriere pot fi diferite n cele dou memorii. De exemplu, la microprocesorul Pentium memoria cache pentru date adopt o politic de tipul "write-back", n timp ce pentru memoria cache de instruciuni este folosit doar metoda "write-through". Politica de scriere a memoriei cache determin modalitatea de scriere n locaiile de memorie ce sunt stocate n memoria cache; din acest punct de vedere exist dou tipuri de memorii cache: - Memorii cache "write-back" (sau cache "copy back"). Acest tip de memorie cache funcioneaz astfel: cnd sistemul scrie ntr-o locaie de memorie ce este n prezent stocat n cache, noua informaie este scris doar n cache, nefiind scris efectiv n memoria sistemului. n continuare, dac alt locaie de memorie trebuie s foloseasc zona de cache unde informaia este stocat, este salvat napoi (write-back) n memoria principal i apoi zona eliberat de cache poate fi folosit de noua adres. Acest tip de cache ofer performane mai bune dect memoria "write-through", deoarece economisete timpul de scriere n memoria principal. - Memorii cache "write-through". n acest caz, de fiecare dat cnd procesorul scrie ntr-o locaie de memorie cache, att memoria cache ct i memoria sistemului sunt reactualizate, avnd loc deci o pierdere de timp pentru scrierea n memoria de sistem. Acest tip de cache are performane mai slabe dect "write-back", dar este mai simplu de implementat.
2.7 Elemente de arhitectur extern a microprocesorului 2.7.1 Procesorul i magistralele de memorie

Modul n care microprocesorul comunic cu celelealte pri ale sistemului este de multe ori un factor de determinare a puterii sistemului precum i a modului de lucru intern. Microprocesorul controleaz ntregul PC i folosete ci dedicate de control al informaiilor denumite magistrale pentru a realiza trimiterea datelor ctre sub-sisteme, cum ar fi sistemul de memorie cache, memoria principal sau alte dispozitive ale calculatorului. Acestea reprezint interfeele externe ale microprocesorului i pot avea structuri diferite chiar i pentru uniti de procesare altfel similare. Exist mai multe tipuri de magistrale ale unui calculator personal modern. Urmtoarea seciune, referitoare la funciile magistralei de sistem ne ofer detalii specifice fiecrui tip de magistral i explicaii generale legate de dimensiunile i limea diverselor tipuri magistrale. Putem gsi

Microprocesorul

aici informaii interesante referitoare la magistrale sistem I/O de tipul PCI sau ISA. La nivelul microprocesorului, magistralele importante sunt magistrala procesorului i cea de memorie, discutate mai n detaliu n seciunea "Magistralele procesorului i magistralele de memorie".
2.7.2 Magistrala sistem - funcii i caracteristici Ierarhia de magistral. Un calculator personal are o ierarhie de magistrale; orice calculator modern are cel puin patru magistrale, considerate ierarhic, deoarece fiecare magistral este, generaliznd, parte a procesorului i fiecare dintre acestea se conecteaz cu nivelul de deasupra, integrnd unitar componentele PC-ului. De asemenea, magistralele respective nu lucreaz la aceeai vitez, ci unele au viteze mai sczute iar altele, n replic, mai mari - astfel, microprocesorul este cel mai rapid dispozitiv din interiorul unui calculator. - Magistrala procesorului: reprezint nivelul cel mai nalt de magistral pe care cipul procesorului l folosete pentru transferul informaiilor de la i nspre processor. - Magistrala cache: arhitectur de nivel nalt, ca cele folosite n construcia Pentium Pro i Pentium II, ce implic o magistral dedicat pentru accesarea memoriei cache. Aceasta este uneori denumit magistrala "din spate" (backside bus). Procesoarele convenionale ce folosesc plci de baz de generaia a 5-a au memoria cache conectat la magistrala standard de memorie. - Magistrala de memorie: este o magistral de nivelul doi ce asigur conexiunea ntre sub-sistemul de memorie i procesor; n unele sisteme magistralele procesor i cea de memorie sunt practic acelai lucru. - Magistrala local I/O: este o magistral de mare vitez de intrare/ieire folosit pentru conectarea perifericelor la memorie i procesor (spre exemplu: plci video, dispozitive de stocare pe disc, interfee rapide de reea, etc.). Cele mai uzuale astfel de magistrale sunt magistralele VESA Local Bus (VL-BUS) i Peripheral Component Interconnect Bus (PCI). - Magistrala standard I/O: conectat cu cele trei tipuri de magistral descrise mai sus, folosindu-se vechiul standard de I/O, pentru periferice de vitez mai redus, cum ar fi: mouse-uri, modemuri, plci de sunet normale, plci de reea de vitez sczut etc. Se folosete, de asemenea, pentru a se asigura compatibilitatea cu dispozitivele mai vechi. Aceast arhitectur este folosit la majoritatea PC-urilor actuale i se numete arhitectur de

Elemente de arhitectur a sistemelor de calcul i operare

magistral ISA (Industry Standard Architecture) sau EISA (Enhanced ISA ISA mbuntit). Unele PC-uri mai noi folosesc un fel de magistral adiional special proiectat pentru comunicaii grafice; n fapt aceasta nu este chiar o magistral, ci un port: portul de accelerare grafic (AGP - Accelerated Graphics Port). n general, diferena dintre un port i o magistral este aceea c magistrala este conceput pentru mai multe dispozitive ce i mpart resursele mediului, n timp ce un port este utilizat doar pentru dou dispozitive.

2.7.3 Magistralele procesorului i magistralele de memorie

Magistrala procesorului este dat de o mulime de circuite menite s transporte informaie de la i nspre procesor, iar activitatea sa este controlat n mod normal de cipul sistemului. Magistrala de memorie asigur conexiunea dintre memoria principal i memoria cache; n practic, aceste dou magistrale pot fi considerate ca un tot unitar. De multe ori referirea se face la magistrala de memorie, care este, de fapt, principala caracteristic legat de date la nivelul de sistem al PC-ului. Toate transferurile de date spre (i de la) procesor au loc folosindu-se aceast magistral.

2.7.4 Magistrala de date dintre procesor i memorie

Fiecare magistral este compus din dou pri distincte: magistrala de date i magistrala de adrese. Magistrala de date reprezint de fapt, ceea ce nelegem de obicei cnd vorbim despre magistrale; aceste "canale" de transmisie ajut practic la transferul datelor n interiorul PC-ului. Cu ct magistrala de date este mai larg, cu att mai multe date se pot transmite simultan, deci magistrale cu lrgimi de band mai mari implic n mod obinuit performane superioare. Viteza magistralei este dat de viteza ceasului de sistem i reprezint o alt component deosebit n stabilirea performanelor unui sistem de calcul. Lrgimea de band a magistralei de date este dat deci de cantitatea de informaii ce se scurge prin aceasta i este n funcie de limea magistralei (n bii) i de viteza ei (n MHz). Ne putem gndi la o magistral ca la o autostrad: limea ei este dat de numrul de benzi, iar viteza este dat de cea a mainilor care circul pe aceasta. Lrgimea de band a

Microprocesorul

magistralei de memorie este extrem de important n PC-urile actuale, deoarece reprezint de multe ori o strangulare a performanelor calculatorului. Deoarece procesoarele de astzi ruleaz la viteze din ce n ce mai mari (de fapt mult mai mari dect alte pri ale sistemului), mrirea vitezei cu care se transfer datele ctre procesor pentru a se prelucra are o importan deosebit asupra performanelor generale ale calculatorului. De aceea, viteza microprocesorului nu mai afecteaz foarte mult performanele globale ale calculatoarelor; spre exemplu, un Pentium 150 nu este cu mult mai rapid dect un Pentium 133 (P150 ruleaz pe o magistral de 60 MHz de memorie iar P133 pe o magistral de 66 MHz), astfel c o mbuntire cu 10% a vitezei magistralei are un efect mult mai mare dect o mbuntire cu 10% a vitezei microprocesorului.

2.7.5 Magistrala de adrese dintre procesor i memorie

Magistrala de adrese reprezint canalele pe care se transport informaia despre locul n memorie unde datele sunt transferate, sau de unde se transfer. Aceast magistral nu conine deci informaie efectiv util, ci practic doar adrese de memorie ce determin locaiile unde datele sunt scrise sau de unde sunt citite. Viteza magistralei de adrese este aceeai cu aceea a magistralei de date, iar limea acesteia determin "adresabilitatea" procesorului, adic cantitatea maxim de memorie ce poate fi accesat de ctre microprocesor. Nu ntotdeauna limea magistralei de adrese coincide cu a celei de date i nici nu se impune vreo restricie n acest sens; totui, calculatoarele actuale dispun de magistrale de date i de adrese de limi suficient de mari pentru a asigura performane sporite de lucru. n general, mrimea magistralei de date nu reprezint un concept foarte uzual atunci cnd vorbim despre caracteristicile unui calculator; poate datorit faptului c nu are un impact direct asupra performanelor i pentru c, de regul, procesoarele pot adresa mult mai mult memorie (RAM) fizic dect folosesc marea majoritate a utilizatorilor de PC-uri. n plus fa de aceasta, plcile de baz ale calculatoarelor limiteaz dimensiunea maxim a memoriei RAM cu mult sub posibilitile de adresare ale procesorului. De exemplu, un procesor Pentium normal poate adresa (teoretic) memorie pn la limita de 4 GB, dar cele mai multe plci de baz limiteaz aceast memorie la maximum un sfert din dimensiunea maxim (maxim 1 GB).

Elemente de arhitectur a sistemelor de calcul i operare

2.7.6 Mrimea magistralei de adrese pentru diverse procesoare

La microprocesoarele din familia x86 limea de 32 de bii este cea mai uzual (i n mod implicit adresarea de maximum 4GB de memorie). Deoarece aceast limit de 4GB de memorie RAM este mai mult dect suficient, dup cum am exemplificat i mai nainte, nu s-au fcut deci eforturi deosebite pentru a se mri. Doar la ultimile tipuri de microprocesoare, Pentium Pro, Pentium II, Pentium III i Pentium IV limea magistralei de adrese a fost mrit la 36 de bii, de unde a rezultat deci o adresabilitate de 64 GB (236 octei).

2.8 Ceasuri de sistem

Toate calculatoarele compatibile IBM-PC dispun de aa numitele ceasuri de sistem sau, pe scurt, ceasuri. Un astfel de ceas este un dispozitiv ce emite impulsuri electrice la intervale regulate de timp, ca un metronom. Aceste impulsurile sunt emise cu o anumit frecven, n mod normal msurat n MHz (mega-hertzi, sau milioane de cicluri pe secund). Pn la apariia procesorului 486, procesoarele calculatoarelor personale erau proiectate s foloseasc un ceas ce funciona la dublul vitezei microprocesorului. Astfel, un procesor 386 la 25 Mhz folosea un ceas ce lucra la 50 MHz (aceast "regul" era valabil la toat familia de procesoare x86, de la Intel 8086 la 386). ncepnd cu 486, procesoarele au nceput s utilizeze aceeai frecven cu cea a ceasului, fr s-o mai mpart la doi. Un "tact" de ceas ("clock tick") reprezint cea mai mic unitate de msur n activitatea de procesare desfurat de microprocesor - acesta se mai numete i "ciclu de ceas"; unele activiti necesit un singur ciclu de ceas pentru a se termina, altele mai multe cicluri, n funcie de complexitatea acestora. Frecvena de tact a ceasului determin, deci, viteza cu care se desfoar activitile n interiorul PC-ului. n acest sens, o vitez mai mare determin o performan mai mare a calculatorului. ncepnd cu anul 1992, Intel a oferit soluii de cretere a vitezei de procesare a unui calculator fr a face modificri asupra plcii de baz: procesoarele cu dublare (de exemplu, 486DX2/66) sau triplare (486DX4/100) a frecvenei ceasului. Codul DX2 nsemna dublarea frecvenei interne a ceasului, adic executarea instruciunilor din setul de baz al microprocesorului la o vitez

Microprocesorul

de dou ori mai mare - n acest caz la 66 MHz fa de 33 MHz, n timp ce DX4 nseamn de fapt triplarea vitezei interne de execuie a instruciunilor (de la 33 MHZ la 100 MHz) i nu cvadruplarea lor, cum am fi tentai s credem la prima vedere. De remarcat n ambele situaii este faptul c funcionarea extern a procesorului - comunicarea cu magistralele, memoria, porturile, discurile etc. nu se modific, ea este fcut la aceeai vitez: 33 MHz. Vechile PC-uri dispuneau de un ceas de sistem unificat; un singur ceas ce rula la frecvene foarte mici, de genul a 8 KHz, conduceau microprocesorul, memoria i magistrala I/O. Cu timpul, calculatoarele s-au modernizat i unele dispozitive au ctigat n vitez fa de altele; a aprut astfel necesitatea apariiei de ceasuri diferite. Un calculator actual are de regul patru sau cinci ceasuri ce ruleaz la viteze diferite (dar corelate). Atunci cnd se face referirea la "ceasul sistem", ne referim la viteza magistralei de memorie de pe placa de baz (i nu la viteza intern a microprocesorului). Calculatoarele folosesc un singur circuit generator de tacturi (aflat pe placa de baz) pentru generarea tacturilor "ceasului sistem" i apoi sunt folosite ceasuri multiplicatoare sau divizatoare pentru a crea alte semnale. Tabelul 2.8 de mai jos reflect setarea ceasurilor ntr-un sistem PC Pentium II 266 MHz i modul n care acestea sunt corelate. Se observ din acest tabel c ntregul sistem este bazat pe viteza ceasului sistem, de aceea creterea vitezei ceasului sistem este mult mai important dect creterea vitezei interne a microprocesorului; de fapt procesorul "pierde timp" n ateptarea informaiilor venite de la dispozitive mult mai ncete, cum ar fi magistralele de sistem. Tabelul 2.8
Setarea ceasului la un sistem Pentium II 266 MHz
Ceas Dispozitiv/Magistral Microprocesor Cache de nivel 2 Magistrala de sistem Magistrale PCI Magistrala ISA Viteza (MHz) 266 133 66 33 8.3 Corelaie Ceas sistem * 4 Ceas sistem * 2 (sau Procesor / 2) Ceas sistem / 2 Magistral PCI / 4

Elemente de arhitectur a sistemelor de calcul i operare

2.9 Noiuni de multiprocesare

Pe scurt, multiprocesarea nseamn folosirea unui sistem de calcul ce conine dou sau mai multe microprocesoare, n sperana c, folosind dou (sau mai multe) procesoare n loc de unul, poi mri performanele. Dar, cum este de ateptat, nu totdeauna cnd se folosesc mai multe procesoare performanele sunt mai bune, ci doar sub anumite condiii. Pentru a beneficia de avantajele multiprocesrii un sistem de calcul trebuie s aib: Plac de baz capabil s suporte mai multe procesoare; Suport din partea procesoarelor - aceasta nseamn c procesoarele trebuie s fie capabile s fie folosite ntr-un sistem multiprocesor. Nu toate procesoarele sunt capabile de acest lucru, unele variante de microprocesoare au suport pentru multiprocesare, altele nu; Suport din partea sistemului de operare - un sistem de operare ce suport multiprocesarea, precum Windows NT/2000 sau UNIX. n plus, multiprocesarea este efectiv eficient atunci cnd aplicaiile software sunt proiectate n mod special pentru aceasta. Multiprocesarea este condus de ctre sistemul de operare, ce aloc diferite sarcini (task-uri) pentru a fi soluionate de diferitele procesoare ale sistemului. Aplicaiile proiectate pentru multiprocesare sunt de regul concepute astfel nct s poat fi divizate n mici subrutine care s poat fi rulate n mod independent. Aceasta permite sistemului de operare s asigure operarea acestor pri ale programului de ctre diferite procesoare n acelai timp, ceea ce reprezint de fapt atuul multiprocesrii. Dac ns aplicaia respectiv nu este conceput special pentru multiprocesare, nu putem beneficia de avantajele existenei a mai multor procesoare, dei sistemul de operare poate face uz de procesoare adiionale atunci cnd rulm mai multe aplicaii n acelai timp (multitasking). Multiprocesarea poate fi simetric sau asimetric, n funcie de modul n care sistemul de operare mparte sarcinile ntre procesoare. Multiprocesarea asimetric este cazul n care unele procesoare execut doar sarcini de sistem iar altele ruleaz doar aplicaii. Acest tip de multiprocesare este evident ineficient n cazuri n care calculatorul trebuie s execute doar task-uri de sistem i nici o aplicaie utilizator, sau invers. Multiprocesarea simetric (SMP - Symmetric MultiProcessing) permite execuia de task-uri de sistem sau utilizator de ctre orice procesor, ceea ce conduce la performane superioare. Acest tip de multiprocesare este folosit pe unele calculatoare personale.

Microprocesorul

Pentru ca un procesor s permit suport pentru multiprocesare, trebuie ca s accepte un protocol de multiprocesare ce va dirija modul n care procesoarele vor comunica unele cu altele n cadrul SMP. Procesoarele Intel Pentium Pro i Pentium II folosesc un protocol SMP numit APIC, iar soclurile Intel ce suport microprocesarea (precum 430HX, 440FX, 450GX/KX) sunt proiectate pentru a lucra cu aceste cipuri. APIC este un standard patentat de Intel, pentru a preveni firmele concurente Cyrix i AMD pentru a implementa APIC, ceea ce nseamn c, dei AMD i Cyrix produc procesoare compatibile Intel, nu pot s le fac s lucreze n configuraii SMP pe plci de baz cu socluri standard Intel; deci din punctul de vedere al multiprocesrii simetrice, Intel i-a rezervat ntreaga pia de calculatoare. Firmele AMD i Cyrix au implementat propriul standard de multiprocesare simetric, numit OpenPIC. AMD ofer suport pentru standardul OpenPIC cu soclul AMD-640 i permite multiprocesare simetric ncepnd cu procesorul K6. Procesorul Intel Pentium Pro a reprezentat cea mai bun soluie la un moment dat pentru multiprocesare simetric deoarece fiecare cip are memorie cache de nivel 2 integrat. ntr-un sistem cu mai mult de un procesor i memorie cache de nivel 2 pe placa de baz, procesoarele trebuie s mpart aceast memorie. Fiecare nou procesor introdus va determina o scdere a memoriei cache pentru celelalte procesoare, ceea ce va scdea performanele. Deoarece fiecare Pentium Pro are memorie cache de nivelul 2 proprie, problema partajrii memoriei cache ntre procesoare dispare i performanele sunt mult mbuntite.

2.10 Funcionarea i operarea ntreruperilor 2.10.1 Generaliti referitoare la ntreruperi

Microprocesorul este un dispozitiv bine reglat pentru a ndeplini (n mod normal) un anumit lucru la un moment dat. Totui, atunci cnd folosim un computer, este necesar ca microprocesorul s fac mai multe lucruri n acelai timp (sau cel puin s lase s par acest lucru). De exemplu, pentru orice utilizator de Windows 9x, NT, 2000, XP (sistem de operare multitasking) este normal ca n timp ce editeaz un document s asculte muzic de la un CD-ROM sau s ncarce un fiier prin modem de pe Internet.

Elemente de arhitectur a sistemelor de calcul i operare

Procesorul este capabil s execute toate aceste sarcini aparent simultan prin mecanismul de "time-sharing", adic mprindu-se ntre diversele dispozitive ce i solicit activitatea. Numai viteza extraordinar a microprocesorului de comutare ntre diferitele sarcini pe care le are de ndeplinit ne d de fapt iluzia c acestea sunt executate n acelai timp. Majoritatea componentelor unui calculator trebuie s schimbe informaii cu microprocesorul i este de ateptat s capteze atenia acestuia atunci cnd este nevoie. Procesorul are astfel rolul de a balansa transferul de informaii de la componentele calculatorului i de a le organiza ntr-o manier eficient. Exist dou ci de baz n ndeplinirea acestor sarcini, i anume: - prin sondare (polling). Procesorul poate trimite mesaje dispozitivelor calculatorului pentru a le "ntreba" dac au nevoie de ceva. Aceast metod nu este ns folosit ntr-un PC, pe baza unor motive ntemeiate. Primul motiv ar fi acela c se face o risip de timp pentru a verifica fiecare dispozitiv n parte dac are nevoie de aciunea procesorului; alt motivaie ar fi aceea c diversele componente ale calculatorului au nevoie de colaborarea procesorului n procente diferite, de exemplu, mouse-ul are nevoie de mult mai puin atenie dect, s spunem, un harddisk ce este n activitate. - prin ntrerupere (interrupting). Cealalt modalitate de balansare a transferului de informaii de la componente este aceea de a le lsa pe acestea s cear "atenia" atunci cnd au nevoie. Astfel au aprut ntreruperile. Atunci cnd un dispozitiv trebuie s transfere date ctre microprocesor, genereaz o ntrerupere ctre acesta, ceea ce este, de fapt, un mesaj de genul: "Am nevoie de atenia dvs., v rog". n acest moment microprocesorul se ntrerupe din activitate i ndeplinete cererea dispozitivului care i-a cerut atenia. Aceste cereri sunt rezolvate pe baza unei liste de prioriti, pentru a se decide care este mai important i deci, care va fi executat prima. Poate prea la prima vedere puin ineficient ca procesorul s fie ntrerupt tot timpul funcionrii calculatorului. Este destul de neplcut s stai de pild la servici i s fii sunat din cinci n cinci minute de ctre cineva i s nu apuci s termini ce ai de lucru. S ne gndim totui, la varianta n care la fiecare 30 de secunde am fi nevoii s sunm pe cineva pe care s-l ntrebm dac are nevoie de noi... Din fericire, microprocesorul nu este o fiin uman i poate fi "deranjat" n acest mod, prin ntreruperi. n afar de ntreruperile hardware despre care discutm aici, exist i ntreruperi software, care sunt folosite de numeroase produse program ca

Microprocesorul

rspuns la diverse evenimente ce apar n timpul rulrii sistemului de operare sau al aplicaiilor. n esen, acestea genereaz ntreruperea microprocesorului de ctre el nsui! Acest lucru face parte din modul n care un procesor este n stare s fac mai multe lucruri o dat. Alt lucru pe care l fac ntreruperile software este acela c permit unui program s acceseze alt program fr s tie unde se afl n memorie. Dup cum am mai spus, procesorul dispune de capacitatea de a fi ntrerupt, dar i de posibilitatea de a conserva activitatea ntrerupt ct timp se prelucreaz cerearea solicitat. n acest sens este folosit stiva microprocesorului, care joac rorlul de depozit pentru toate informaiile curente despre activitile calculatorului. Atunci cnd se execut o subrutin sau se ntrerupe temporar o activitate pentru a se focaliza asupra alteia, informaiile despre locul unde se afla i ce fcea calculatorul sunt depozitate n stiv astfel nct s se poat ntoarce la activitatea ntrerupt. Cnd se trece la o nou activitate, informaiile despre aceasta vor fi plasate n vrful stivei, ndicnd activitatea curent. Cnd activitatea calculatorului se termin, informaiile despre activitatea respectiv sunt eliminate din stiv, iar sarcina anterioar i reia locul n vrful stivei, devenind astfel noua sarcin curent, iar calculatorul revenind n acest mod la operaia anterioar. Viteza procesorului este de asemenea, fascinant, mai ales la calculatoarele ultimelor generaii. Exist astfel termenul de MIPS (Millions of Instructions Per Second - Milioane de Instruciuni pe Secund), care iniial era folosit doar pentru calculatoarele de tip mainframe (de performane net superioare calculatoarelor personale), dar, datorit creterii remarcabile a performanelor PC-urilor, se utilizeaz n prezent i pentru acestea. Dac primele cipuri Intel atingeau o treime de MIPS, procesoarele Pentium actuale depesc 150 MIPS. Alt unitate uzual pentru msurarea vitezei procesorului este MHz, despre care am mai discutat n cursul acestui capitol. Reamintim c primul 8086 rula la o fecven de 4,77 MHz, n timp ce procesoarele actuale Pentium ruleaz pn la o frecven ce depete 3000 MHz. Viteza de procesare a cipului este ntr-adevr fascinant: spre exemplu, un procesor la numai 200 MHz execut 20.000.000 de instruciuni ntre fiecare apsare a tastelor pe care o facem n decursul unei redactri (rapide) de text, iar n cazul transferului de date cu un modem de 28.800 KB/sec procesorul execut n jur de 60.000 de instruciuni ntre doi octei care se transfer.

Elemente de arhitectur a sistemelor de calcul i operare

2.10.2 Controllere de ntreruperi

ntreruperile generate de dispozitivele din interiorul calculatorului sunt aduse la microprocesor folosind o component aparte hardware denumit controller de ntreruperi. Standardul n acest domeniu este controller-ul de ntreruperi Intel 8259 i dateaz de la primele PC-uri. Ca n majoritatea cazurilor legate de controllere dedicate, plcile de baz moderne controllerul 8259 este ncorporat ntr-un cip mai mare ca parte a unui circuit. Controlerul de ntreruperi are opt linii de intrare ce primesc cererile de la unul din cele opt dispozitive diferite, apoi trimite cererea microprocesorului, spunndu-i ce dispozitiv a lansat acea cerere (ce numr de ntrerupere are cererea, de la 0 la 7). Primul PC avea un singur astfel de controller i deci suporta doar ntreruperi de la 0 la 7. ncepnd cu calculatorul IBM-AT a fost adugat al doilea controller de ntreruperi pentru extinderea sistemului, reprezentnd extinderea magistralei sistem ISA (Industry Standard Architecture) de la 8 la 16 bii. Pentru a se pstra ns compatibilitatea cu sistemele mai vechi, proiectanii sistemelor AT nu au nlurat vechea linie de ntreruperi ctre procesor, ci au folosit (n cascad) ambele controllere mpreun. Primul controller de ntreruperi are nc opt intrri i o singur ieire ctre microprocesor, n timp ce al doilea are aceeai schem, dar i se adaug opt noi intrri (dublnd n acelai timp numrul de ntreruperi) iar ieirea sa alimenteaz intrarea numrul 2 a primului controler. Astfel, dac o intrare a celui de-al doilea controller devine activ, ieirea sa declaneaz ntreruperea 2 a primului controller, care trimite un semnal ctre microprocesor. De aceea, aceast modalitatea de funcionare a celor dou controllere se numete funcionare n cascad. Ce se ntmpl atunci cu ntreruperea 2? Aceast linie de ntrerupere (IRQ - Interrupt ReQuest Line) este folosit acum pentru a asigura funcionarea n cascad a celui de-al doilea controller, astfel nct proiectanii sistemului AT au redirecionat circuitul plcii de baz al IRQ2 ctre IRQ9, deci dac vreun dispozitiv al sistemului ncearc s foloseasc IRQ2, el folosete, n realitate, ntreruperea 9 (IRQ9). Dispozitivele proiectate s foloseasc IRQ2 ca setare iniial sunt relativ rare n ziua de astzi, din moment ce ntreruperea 2 a fost scoas din uz de peste zece ani. n cele mai multe cazuri IRQ2 se socotete inutilizabil, n moment ce IRQ9 este o linie de ntreruperi perfect valabil. Exist totui unele modemuri care utilizeaz ntreruperea 2 pentru a ocoli faptul c porturile COM3 i COM4 partajeaz ntreruperi cu COM1 i

Microprocesorul

COM2 n absena altor setri. n cazul existenei ntr-un PC a mai multor dispozitive ce folosesc ntreruperi IRQ1-IRQ8, este necesar s folosim uneori un astfel de modem setat pentru IRQ2, care folosete de fapt IRQ9; n acest caz trebuie s fim ateni pentru a nu a avea alt dispozitiv setat pentru a folosi IRQ9 (ar intra astfel n conflict cu modemul).

2.10.3 Linii IRQ i magistrala sistem

Dispozitivele ce folosesc ntreruperi le semnaleaz prin liniile de ntrerupere ale magistralei ISA. Majoritatea ntreruperilor cu care este nzestrat magistrala de sistem este pentru uzul diverselor dispozitive; totui unele dintre acestea sunt folosite intern de ctre sistem. Din aceast cauz nu exist circuite fizice pe magistral - acestea sunt ntreruperile 0, 1, 2, 3, 8 i 13 i nu sunt disponibile pentru alte dispozitive externe (plci de extensie, modemuri etc.). Toate aceste consideraii sunt valabile pentru plcile ISA i VESA, plcile PCI tratnd ntreruperile n mod diferit, prin propriul sistem de ntreruperi interne. Prioritatea ntreruperilor. Tratarea ntreruperilor n interiorul PC-ului se face corespunztor nivelelor de prioriti asociate acestora. Aceste prioriti sunt n funcie de linia de ntreruperi pe care o folosesc pentru a intra n controller-ul de ntreruperi. Din acest motiv, nivelele de prioriti sunt direct legate de numrul ntreruperii: n cazul vechilor PC-XT, prioritile ntreruperilor sunt 0, 1, 2, 3, 4, 5, 6, 7. n cazul unui PC modern, este un pic mai complicat, avnd n vedere c cel de-al doilea set de ntreruperi este direcionat prin canalul IRQ2 al primului controller. Asta nseamn c primul controller "vede" aceste ntreruperi cu prioritatea ntreruperii doi, ceea ce ne conduce la urmtorul ir de prioriti: 0, 1, (8, 9, 10, 11, 12, 13, 14, 15), 3, 4, 5, 6, 7. n decursul oricrui eveniment, nivelul de prioritate al ntreruperilor nu influeneaz n mare msur performanele (viteza) calculatorului, ele practic exist pentru ca procesorul s tie n ce ordine s le examineze, pentru a nu se genera conflicte.

Elemente de arhitectur a sistemelor de calcul i operare

2.10.4 ntreruperi nemascabile

ntreruperile uzuale pe care le folosim n mod normal i le referim printr-un numr se numesc ntreruperi mascabile. Microprocesorul este capabil s "mascheze" - aceasta nseamn, de fapt, s ignore temporar - o ntrerupere de acest gen, pentru a termina alt proces nceput anterior. Pe lng aceste ntreruperi mascabile, exist i ntreruperile nemascabile (NMI - Non Maskable Interrupts) care nu pot fi "mascate" (ignorate) i se folosesc atunci cnd condiii excepionale necesit atenia imediat a procesorului. ntreruperile nemascabile nu pot fi ignorate de ctre procesor dect dac acest lucru este specificat n mod direct. Atunci cnd este recepionat un semnal NMI, procesorul se oprete din activitate indiferent care ar fi aceasta i acord atenia acestui semnal. Deoarece aceast modalitate de lucru este destul de "dur", n sensul c procesorul trebuie s renune necondiionat la activitatea curent i s se ocupe de ntreruperea NMI, aceste ntreruperi nemascabile sunt folosite doar pentru probleme absolut critice, cum ar fi erorile hardware. Cea mai des uzitat ntrerupere NMI este aceea pentru controlul paritii memoriei; dac se semnaleaz o astfel de eroare trebuie s fie imediat remediat pentru a se preveni eventualele pierderi de date - n acest caz se sisteaz funcionarea calculatorului (halt), pentru a se corecta defeciunea hard aprut. n tabelul 2.9 sunt prezentate o serie dintre cele mai uzuale ntreruperi i rolul acestora. Tabelul 2.9 Un sumar al ntreruperilor i utilizarea lor obinuit
IRQ
0 1 2 3

Linie BUS
8/16 bii

Prioritate
1 2 11

Utilizare obinuit
Timerul sistem Controller-ul de tastatur Nici una; nlocuit de IRQ 9 COM2

Alte utilizri
Modemuri, plci video EGA, COM3, COM4 COM4, modemuri, plci de sunet, plci de reea, plci acceleratoare de band COM3, modemuri, plci de sunet, plci de reea, plci acceleratoare de band LPT2, LPT3, COM3, COM4, modemuri, plci de reea, plci acceleratoare de band, controllere de HD la vechile PC-XT Plci acceleratoare de band

8/16 bii

12

COM1

8/16 bii

13

Placa de sunet

8/16 bii

14

Controller floppy disk

Microprocesorul
IRQ
7

Linie BUS
8/16 bii

Prioritate
15

Utilizare obinuit
LPT1

Alte utilizri
LPT2, COM3, COM4, modemuri, plci de sunet, plci de reea, plci acceleratoare de band Plci de reea, plci de sunet, adaptoare gazd SCSI, dispozitive PCI, dispozitive IRQ2 redirectate Plci de reea, plci de sunet, adaptoare gazd SCSI, canalul IDE secundar, canalul IDE cuaternar, dispozitive PCI Plci de reea, plci de sunet, adaptoare gazd SCSI, plci video VGA, dispozitive PCI, canalul IDE teriar i cuaternar Plci de sunet, de reea, adaptoare gazd SCSI, plci video VGA, canalul IDE teriar, dispozitive PCI Adaptoare gazd SCSI Plci de reea, adaptoare gazd SCSI

8 9

16 bii

3 4

Ceasul n timp real -

10

16 bii

11

16 bii

12

16 bii

PS/2 mouse

13 14 15

16 bii 16 bii

8 9 10

FPU/NPU/Coprocesor matematic Canalul IDE primar Canalul IDE secundar

2.11 Procesoarele RISC 2.11.1 Introducere

Termenul de procesor RISC (Reduced Instruction Set Computer Calculator cu Set Redus de Instruciuni) a mai fost folosit pe parcursul acestui capitol, n comparaie cu procesoarele CISC (Complex Instruction Set Computer - Calculator cu Set Complex de Instruciuni); a sosit momentul s dm mai multe detalii referitoare la acest subiect i s explicm diferenele dintre procesoarele RISC i CISC. Procesoarele RISC, aprute pentru prima oar n anii 80, preau la nceput predestinate s domine industria computerelor n anii 90 i s fac uitate vechile arhitecturi de calculatoare. Practic toi productorii importani din industria calculatoarelor ofer acum sisteme gen RISC; giganii IBM i Hewlett Packard i-au dezvoltat propriile procesoare RISC, n timp ce ali productori, ca DEC sau Siemens, au preferat s cumpere licene ale unor arhitecturi deja existente pentru a ine pasul cu concurena acerb din domeniu.

Elemente de arhitectur a sistemelor de calcul i operare

Conceptul de arhitectur "RISC" este deseori greit utilizat sau definit, de aceea, pentru a fi definit i neles mai bine, trebuie s facem o ntoarcere n timp i s vedem, de asemenea, diferenele eseniale ntre cele dou noiuni: CISC i RISC. Era recunoscut de prin anii 50 faptul c se putea sacrifica din eficiena memoriei la codificarea unui set de instruciuni pentru a ctiga n performan. Instruciunile simple, de lungime fix, erau uor de implementat i se executau mai rapid. Aceast tehnic era folosit pentru implementarea setului de instruciuni al calculatorului IBM 360 de tip mainframe din anii 50-60. Acest set de instruciuni se baza pe o arhitectur clasic CISC, dar mecanismul de microcod ce execut de fapt instruciunile era un procesor RISC mai simplu. Microcodul este de fapt, software-ul de nivel jos care conduce execuia setului de instruciuni, iar procesoarele RISC se numeau controllere orizontale de microcod. Cu toate c erau cunoscute avantajele arhitecturilor RISC, costurile ridicate ale memoriei determinau folosirea n continuare a arhitecturilor CISC, mai eficiente din punct de vedere al capacitii de stocare i care preau c reprezint cea mai bun soluie n acel moment (se utilizau instruciuni capabile s fac mai multe lucruri). Primele inovaii fa de vechile arhitecturi de microprocesor au aprut n cadrul firmei IBM, n cadrul unui proiect nceput n 1975 i care acum se consider a fi pionieratul n domeniul arhitecturii RISC. John Cocke, un inginer de la IBM, a observat c doar o mic parte (aproximativ 10%) a mulimii de instruciuni a calculatorului IBM 360 era folosit n majoritatea timpului, iar aceast submulime concentra cel mai mare procent din timpul de execuie (90%). Membrii echipei IBM i-au propus astfel s simplifice mulimea de instruciuni pentru a obine o medie de o execuie pe ciclu de ceas. Acest obiectiv era realizabil doar dac mulimea de instruciuni era structurat n conduct, salvndu-se n acest mod timpul pierdut pentru aducerea i decodarea instruciunilor din memorie. Dou noi proiecte ce au pornit civa ani mai trziu au adus conceptele RISC n centrul ateniei arhitecturilor de computere. Primul dintre acestea a fost condus de David Patterson de la Universitatea din Berkeley i a culminat cu definiia procesoarelor RISC I i RISC II la nceputul anilor 80. Patterson a conturat, de asemenea, conceptul RISC. Potrivit acestuia, procesoarele RISC au inaugurat o nou mulime de principii arhitecturale. Din aceast cauz, noiunea de RISC a fost considerat mai degrab o filozofie dect o reet arhitectural diferit. Punctele relevante ale filozofiei proiect menionate de Patterson sunt: mulimea de instruciuni trebuie s fie simpl;

Microprocesorul

instruciunile trebuie s ruleze la cea mai mare rat posibil; noiunea de "pipelining" este mai important dect mrimea programului; tehnologia compilatorului este un element critic ntr-un proiect RISC: optimizarea compilatoarelor trebuie s translateze ct mai mult posibil din complexitatea hardware-ului ctre faza de compilare.

Rezultatele acestor cercetri au dat natere unei arhitecturi mai simple, caracterizat de instruciuni mai puine, multe registre, acces simplificat pentru ncrcarea i depozitarea datelor n memoria principal i posibilitatea execuiei instruciunilor ntr-o singur perioad de ceas. Procesorul respectiv era mai mic, cu performane mai mari, dar se folosea cu 20-25% mai mult memorie i erau necesare memorii cache scumpe pentru a ine "ocupat" microprocesorul RISC. Din aceast cauz, costurile ridicate ale arhitecturilor RISC au mpiedicat rspndirea acestora pe piaa consumatorilor medii i a aplicaiilor comerciale. Procesoarele RISC erau ns folosite uzual n staiile de lucru foarte puternice pentru aplicaii tiinifice, tehnice i militare, unde se justificau preurile mari pentru performane nalte. O dat cu evoluia microprocesoarelor RISC, s-a descoperit c avantajul acestora nu cost n micorarea setului de instruciuni, ci n simplitatea acestora. n zilele de astzi majoritatea microprocesoarelor RISC au cam acelai numr de instruciuni ca i cele CISC. Datorit modurilor mai simple de adresare ale instruciunilor RISC, avnd nevoie de un singur acces la memoria principal i putnd fi executate ntr-un singur ciclu de ceas, execuia lor a putut fi foarte uor implementat n structuri de tip pipeline i structuri superscalare ce permit execuia simultan a mai multor instruciuni. Tot evideniind avantajele tehnologiei RISC, se pune n mod evident ntrebarea: De ce s mai folosim procesoare CISC, cnd cele RISC sunt n mod clar mai performante? Pentru a rspunde la aceast ntrebare, s evideniem cteva aspecte ale problemei. n primul rnd, diferenele dintre microprocesoarele CISC i cele RISC nu mai sunt aa de mari odat cu implementrile RISC fcute n ultimii ani de ctre microprocesoarele compatibile Intel. Avantajul major care apare prin folosirea procesoarelor CISC este acela al compatibilitii soft; astfel, cantitatea de software ce ruleaz n prezent pe microprocesoare CISC este imens i deocamdat nu se poate renuna la ea. Sucesul deosebit al sistemului de operare Windows 95 (ce ruleaz pe procesoare CISC) i

Elemente de arhitectur a sistemelor de calcul i operare

faptul c noua sa versiune Windows 98, va rula tot pe platforme cu procesoare CISC, face s se menin nc utilizarea ndeosebi a acestor tipuri de microprocesoare. Dac cineva dorete s achiziioneze un calculator bazat pe un microprocesor RISC, nu va putea beneficia de programele scrise pentru calculatoarele PC, deoarece majoritatea acestui soft este special proiectat pentru calculatoare PC. Dac softul pentru PC va dori s ruleze pe un procesor RISC, vor aprea numeroase probleme, printre care: aplicaiile au fost compilate pentru a lucra doar cu setul de instruciuni x86; softul se ateapt s sesizeze un mediu de operare Microsoft sub care s lucreze; multe aplicaii i jocuri DOS mai vechi trebuie s gseasc mediul hard al calculatorului PC, lucrnd de multe ori direct cu resursele hard ale calculatorului. Pentru prima problem ar putea exista soluia recompilrii aplicaiei astfel nct s poat opera cu setul de instruciuni al microprocesorului RISC. La ora actual, multe aplicaii sunt disponibile n mai multe versiuni, fiind compilate pentru platforme RISC, dar numrul acestora este totui destul de redus i exist reineri n privina firmelor de a elabora mai multe versiuni (din acest punct de vedere) ale aceleiai aplicaii. Reinerile acestor firme sunt ntemeiate, deoarece piaa este prea mic pentru ca ele s-i permite o asemenea dezvoltare i, n al doilea rnd, este greu de meninut un nivel apropiat pentru dou sau mai multe versiuni de program. n concluzie, apare o problem cu dublu sens: nu exist multe calculatoare RISC pentru c nu exist soft pentru ele i nu exist soft pentru c nu exist calculatoare RISC! Pentru a doua problem, s-ar prea c firma Microsoft a rezolvat problema odat cu apariia sistemului de operare NT care ofer portabilitate pentru procesoarele MIPS i ALPHA de tip RISC. Inexistena unui sistem de operare Microsoft este o piedic esenial n calea ptrunderii procesoarelor RISC pe piaa calculatoarelor personale. Dac pentru primele dou probleme prezentate mai sus exist soluii de rezolvare, pentru cea de-a treia nu exist o soluie tehnic general, din moment ce aplicaiile scrise pentru un mediu hardware specific unui PC nu vor putea rula pe procesoare RISC. n acest sens, singura soluie viabil este practic rescrierea aplicaiei pentru noua platform, soluie care nu se impune

Microprocesorul

din aceleai considerente prezentate mai nainte: numrul de staii de lucru ce folosesc microprocesoare RISC este nc redus.

2.11.2 Tipuri de procesoare RISC

Cele mai importante arhitecturi ce conin procesoare RISC sunt: MIPS, folosite n staii de lucru Silicon Graphics; SPARC, folosite n staii de lucru Sun; PA-RISC, folosite n staii de lucru Hewlett-Packard; PowerPC, folosite n calculatoare IBM PC i Apple Macintosh; Alpha, folosite n staii de lucru DEC (Digital Equipment Corporation). Competiia pe piaa microprocesoarelor RISC este foarte mare, tot timpul aprnd noi versiuni de procesoare. Toate aceste arhitecturi evolueaz ns n aceeai direcie: implementare pe 64 de bii; uniti performante de execuie; noi instruciuni pentru aplicaii multimedia i DSP; frecvene de ceas intern foarte mari, superioare procesoarelor CISC; implementri superscalare, putnd s execute mai multe instruciuni simultan; uniti de operare n virgul mobil foarte puternice; memoria cache integrat de dimensiuni mari.

2.11.2.1 Procesoarele din seria MIPS (Silicon Graphics)

La originea acestor microprocesoare se afl nite proiecte experimentale iniiate la Universitatea din Stanford la nceputul anilor 80. Traducerea termenului "MIPS" ne ofer o imagine relevant asupra filozofiei proiectului respectiv: MIPS provine de la Microprocessor without Interlocking Pipeline Stages (Microprocesor fr stadii n conduct blocate). Obiectivul proiectanilor MIPS a fost acela de a produce un procesor RISC cu funcionare n conduct i interblocare pipeline controlate software. Dac o instruciune necesit dou cicluri de ceas pentru a fi executat, este de datoria compilatorului s programeze o instruciune de

Elemente de arhitectur a sistemelor de calcul i operare

tipul NOP (No OPeration) urmtoare. n acest mod singura modalitate prin care se ntrerupe funcionarea normal n timpul execuiei sunt aceste instruciuni NOP controlate software (de compilator), n timp ce partea hardware nu va bloca de fiecare dat execuia pipeline. Aceast caracteristic reduce cantitatea de componente hardware necesare pentru manufacturarea procesorului. Un produs MIPS din anul 1995 a fost MIPS T5 (redenumit apoi R1000), cu o arhitectur superscalar pe 64 de bii nou, compatibil cu cipurile mai vechi Rxxx. Arhitectura scalar dispunea de cinci canale, 64 de registre interne i o memorie cache intern de 32 KB, utilizndu-se o tehnologie de fabricaie de 0,35 de microni. Unele concepte deosebit de interesante cu privire la acest aspect au fost studiate la Universitatea Stanford cu MIPS-X, un produs derivat al arhitecturii MIPS ce avea o serie de caracteristici n plus. Multe dintre acestea au fost mai trziu introduse n procesorul comercial MIPS. Microprocesorul MIPS R2000 este un procesor pe 32 de bii cu o memorie cache de nivel 2, difereniat pentru instruciuni i date. O memorie tampon de scriere ajut la manipularea tututor datelor stocate n memorie. Produsul R2000 folosete o magistral comun pentru memoria cache extern o arhitectur non Harvard (reamintim c arhitectura Harvard presupune utilizarea de magistrale diferite pentru instruciuni i pentru date). Construcia acestui procesor nglobeaz o arhitectur radical de coprocesor. Unitatea de control a ntregilor din UCP este separat de aa numitul Coprocesor de control al sistemului (System Control Coprocessor), care este, de fapt, un controlor de memorie cache integrat direct pe cip. UCP i unitatea de calcul n virgul mobil comunic prin intermediul memoriei. Microprocesorul nglobeaz 32 de regitri generali i 16 regitri (pe 64 de bii) separai pentru calcule n virgul mobil. Coprocesorul pentru calculul n virgul mobil coine o unitate pentru adunare, una pentru mprire i una pentru nmulire. Nu exist bii de testare a condiiilor (indicatori de stare, sau flags, cum sunt denumii la Intel). Programarea regitrilor este controlat software.

2.11.2.2 Procesoarele din seria SPARC (Sun Microsystems)

Procesorul SPARC (Scalable Processor ARChitecture) se poate "luda" ca fiind descendentul unei familii ilustre de microprocesoare, aceea a procesoarelor RISC-I i RISC-II dezvoltate la Universitatea din Berkeley

Microprocesorul

n anii 80. Aceast arhitectur a fost definit de firma Sun Microsystems i actualizat n permanen. Firma Texas Instruments a fost unul dintre principalii furnizori de cipuri ca urmare a unui contract cu firma Sun, unul dintre produsele anului 1995 fiind UltraSPARC, cu o arhitectur pe 64 de bii i o implementare superscalar cu patru canale. O caracteristic important a arhitecturii este adugarea de noi instruciuni pentru accelerarea graficii i a prelucrrilor video; astfel pot fi prelucrai pn la opt pixeli ntr-o singur instruciune sau ciclu de ceas. Dac, n general, arhitectura acestui procesor este o arhitectur de tip RISC, exist dou curioziti ale acesteia, care l disting n familia procesoarelor RISC. n primul rnd, SPARC utilizeaz conceptul de ferestre de registre (register windows) n scopul eliminrii operaiilor de ncrcare i stocare n stiv ce apar la apelurile de proceduri. Acest lucru putea fi ns obinut i prin programarea regitrilor n momentul compilrii. Echipa de la Berkeley a utilizat ns aceste ferestre de registre deoarece nu avea la momentul respectiv expertiza (pentru creearea compilatorului) necesar pentru a implementa alocarea interprocedural a regitrilor cu ajutorul software-ului (compilatorului). n al doilea rnd, o alt curiozitate a arhitecturii SPARC o reprezint existena instruciunilor etichetate (tagged instructions). Se tie c limbaje de programare declarative de genul Lisp sau Prolog folosesc tipuri de date etichetate. Arhitectura SPARC utilizeaz instruciuni ce pot manipula cu uurin o etichet (n englez tag) pe 2 bii n fiecare cuvnt de memorie. Aceast caracteristic putea mri viteza de execuie a unui program Lisp cu cteva procente. Procesoarele UltraSPARC IV sunt procesoare ce suport dou fire de execuie (chip multithreading) pe procesor, bazate pe dou stadii pipeline UltraSPARC III. Alte caracteristici: 66 milioane de tranzistori pe cip; pipeline cu 14 stadii; frecvena de ceas ntre 1.05-1.2 GHz; L1 cache de 64KB pentru date i 32 KB pentru instruciuni, 2KB Write, 2KB Pre-fetch; L2 cache de 16 MB; scalabilitate multiprocesor cu suport arhitectural pn la 1000 de procesoare pe un singur sistem; controller-ul de memorie este capabil s adreseze pn la 16 GB de memorie principal la o vitez de 2,4 GB/s.

Elemente de arhitectur a sistemelor de calcul i operare

Sun Microsystems Inc. este cel mai titrat productor de procesoare ce utilizeaz mulimea de instruciuni SPARC, dar nu este singurul productor. Alt productor important este Fujitsu, ale crui noi procesoare Sparc64 VI cu nume de cod Olympus vor veni pe pia n 2005, la viteze de peste 2,4 GHz, manufacturai n tehnologie de 90 de nm (nanometri). Performana estimat a acestui procesor este de patru ori mai mare dect a generaiei actuale de la Fujitsu, SPARC64 V, ce ruleaz la 1,35 GHz.

2.11.2.3 Procesorul PA-RISC (Hewlett Packard)

Arhitectura PA-RISC (Precision Architecture) a firmei HewlettPackard este destinat staiilor de lucru performante, adoptnd o linie nou i modern. Performanele de operare n virgul mobil ale acesteia sunt excelente fa de majoritatea competitorilor. S-au inclus noi instruciuni pentru funcii de accelerare a graficii i a procesrilor video, similare celor de la SPARC. Numrul de formate de instruciuni este mai mare dect la orice alt procesor RISC: sunt prezente nu mai puin de 12 combinaii diferite de opcode (coduri de operaie) i regitri sau cmpuri pentru constante ntr-un singur cuvnt (spre comparaie, procesoarele SPARC i MIPS pot utiliza doar patru combinaii diferite). Exist n mod normal dou moduri diferite de adresare, precum i nc dou moduri adiionale ce ofer suport pentru operaiile ce au loc nainte sau dup modificarea unui registru index. Acest lucru ofer posibilitatea utilizrii n total a patru modaliti de adresare. Arhitectura PA (Precision Architecture) posed coduri de operaii (opcode) pe 6 bii. Acest lucru reduce numrul de instruciuni posibile la mai puin de 64 (26), dei anumite instruciuni au mai multe variante, folosind bii speciali n cadrul formatului instruciunii. Numrul de regitri generali este de 32, completai cu nc 32 de regitri cu caracter special, utilizai pentru administrarea ntreruperilor, a nivelurilor de protecie etc. Caracteristica atipic a acestui procesor este aceea c implementarea execuiei n pipeline se face pe doar trei nivele, iar funcionarea optim a conductei necesit programare software.
2.11.2.4 Procesoarele PowerPC (IBM i Motorola)

Susinut de firme puternice, ca IBM, Apple i Motorola, PowerPC este concurentul principal al microprocesoarelor bazate pe arhitectura x86.

Microprocesorul

Principalul avantaj const n posibilitatea rulrii software-ului Apple, PC i Unix. Folosind tehnicile de recompilare binar, integrnd i un emulator rapid pentru x86, procesorul PowerPC este capabil s utilizeze majoritatea sistemelor de operare i a software-ului ntr-un singur sistem.
2.11.2.5 Procesoarele Alpha DEC (Digital)

Aceste procesoare se deosebesc de celelalte procesoare RISC prin fecvenele foarte mari ale ceasului intern, arhitectura modern pe 64 de bii a acestora fiind una dintre cele mai performante de pe pia.
2.11.3 Concluzii i viitorul procesoarelor RISC

Fr ndoial, de la apariie i pn n prezent, microprocesoarele RISC au avut performane superioare celor bazate pe arhitectura CISC. n ultimii ani ns, prin apariia microprocesoarelor Intel (i a produselor clon) ce au preluat multe dintre conceptele tehnologiei clasice RISC, diferena dintre performanele celor dou tipuri arhitecturale s-a micorat vizibil, ajungndu-se ca cele mai noi procesoare Pentium III i Pentium 4 s concureze cu succes procesoarele RISC. Se presupune c nu se va renuna foarte uor n viitor la vechea arhitectur CISC (care are ns are i va prelua n continuare dintre beneficiile RISC), ajungndu-se poate la situaia n care vom putea cu greu s spunem diferenele dintre cele dou tipuri arhitecturale ce erau att de diferite n trecut. Urmtoarele microprocesoare x86, precum cele bazate pe nucleele Mustang i Sledgehammer de la AMD sau Pentium 4, Foster i Itanium (ultimul pe 64 de bii) de la Intel vor reduce din ce n ce mai mult "gaura" ce desparte cele dou variante tehnologice.

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