2. Scurt istoric al calculatoarelor i procesoarelor (evoluie). 2
Calculatoare
Momentul iniial al istoriei calculatoarelor este, de obicei, legat de numele matematicianului englez Charles Babbage. El a propus n anul 1839 o Main analitic, o fascinant anticipaie a structurii calculatoarelor actuale. Ideile sale au devansat cu peste 100 de ani posibilitile tehnologice ale vremii sale. naintea sa, n acest domeniu, au mai fost ncercrile lui Leibnitz i Pascal (sec. XVII). Astfel, n 1642, Blaise Pascal inventeaz o main de calcul destinat gestiunii (adunri, scderi, conversii ntre monedele europene), denumit Pascalina, ale crei tehnologii erau asemntoare cu acelea ale ceasurilor mecanice din acel timp. n 1694, Wilhelm Leibnitz a realizat o main de calcul, care realiza cele patru operaii aritmetice n mod automat. La nceputul secolului XIX (1801) Joseph Jaquard a proiectat o main de esut (gherghef) care putea ese automat un anumit tipar. Informaia care controla ghergheful era stocat sub forma unor guri date n cartele, astfel nct prezena sau absena gurii ntr-un anumit loc controla comportarea gherghefului. ntr-un fel, acea cartel perforat coninea unul din primele programe scrise vreodat. Urmtorul moment de referin este anul 1937, cnd Howard Aiken, de la Universitatea Harvard, a propus Calculatorul cu secven de comand automat, bazat pe o combinaie ntre ideile lui Babbage i calculatoarele electromecanice produse de firma IBM. Construcia acestuia a nceput n 1939 i s-a terminat n anul 1944, fiind denumit Mark I. El a fost n principal un calculator electromecanic, fiind alctuit din comutatoare i relee. Tot n acea perioad (1943) a fost construit i n Marea Britanie un calculator, Colossus, cu scopul de a sparge faimosul sistem de coduri german Enigma. Ambele calculatoare au fost proiectate la universitatea Harvard, cu sprijinul IBM. nlocuirea releelor cu tuburi electronice a constituit un important pas nainte. n anul 1942 a fost proiectat un calculator pentru calcule numerice generale. Rezultatul a fost calculatorul ENIAC (Electronic Numerical Integrator And Computer), primul calculator electronic digital, proiectat la universitatea statului Pennsylvania, i construit n anii 1945-1946. El coninea circa 18.000 de tuburi electronice i executa 5.000 de adunri/s, avnd o memorie de 20 de numere reprezentate n zecimal. Programarea sa se realiza prin poziionarea a circa 6.000 de comutatoare, cu mai multe poziii. Pentru a introduce date i a obine rezultatele se foloseau cititoare/inscriptoare de cartele perforate. La nceput, primele aplicaii au fost cele de calcul balistic, apoi cele de criptologie, studiul razelor cosmice, meteorologie, ca n final s fie folosit i la proiectarea primei bombe cu hidrogen. O semnificaie aparte o are faptul c n arhitectura calculatoarelor Mark I i ENIAC intrau mai multe elemente de calcul, ce lucrau n paralel la o problem comun, fiind dirijate de o singur unitate de comand. Aceast soluie a fost aleas datorit vitezei reduse a fiecrei uniti de calcul n parte. La versiunea urmtoare s-a renunat la aceast structur paralel de calcul, deoarece s-a considerat c viteza unei uniti de calcul realizat cu ajutorul circuitelor electronice este suficient. Soluia prelucrrii paralele a fost reluat ulterior, dup anii 80, pentru mrirea performanelor unui sistem de calcul; astfel, n 1996 a fost realizat, de ctre firma INTEL, un supercomputer ce utilizeaz peste 7000 de procesoare PENTIUM, utiliznd tehnica de calcul paralel masiv (utilizat pentru simularea de teste nucleare, n cercetri genetice, spaiale, meteorologice). Primul calculator comercializat a fost UNIVAC (UNIVersal Automatic Computer), realizat pe structura calculatorului ENIAC, n anul 1951. Acesta se baza tot pe tuburi catodice, iar 3
informaiile se introduceau pe band magnetic, la o vitez de 40.000 bii/s. n anii urmtori, dezvoltarea calculatoarelor a cptat un ritm exploziv, la mai puin de zece ani intervenind cte o schimbare, care a fost interpretat drept apariia unei noi generaii de calculatoare. Procesoare Istoria microprocesoarelor ncepe n anul 1970, prin producerea primului microprocesor INTEL 4004, un procesor de 4 bii, care realiza calcule n BCD, cu o vitez de lucru de 60.000 operaii/s. Firma INTEL (INTegrated Ellectronics) a fost fondat spre sfritul anilor 60 de Robert Noyce i Gordon Moore, care au plecat de la Fairchild Semiconductor; firma i-a nceput activitatea cu fabricarea de circuite de memorie (RAM static de 64 bii 3101, primul produs). Primul microprocesor pe 4 bii 4004, cu o putere de calcul echivalent cu aceea a calculatorului ENIAC, avea 2.300 tranzistori, avea acces la o memorie de 4 Ko, efectua 60.000 operaii/s., la o frecven de baz de 108 KHz. n anul 1972, firma INTEL produce primul procesor pe 8 bii, 8008, cu un set de 48 de instruciuni, un spaiu de adrese de 16 Koctei i o vitez de operare de 30.000 instr./s. n anul 1974, INTEL produce microprocesorul 8080, cu un set de 72 instruciuni, un spaiu de adrese de 64 Koctei i o vitez de lucru de 300.000 operaii/s. (de zece ori mai mare dect 8008); o parte din circuitele auxiliare utilizate la procesorul 8008 sunt acum incluse n structura intern a versiunii 8080. ncepnd din 1975 se produc i primele calculatoare avnd la baz astfel de procesoare. Odat cu apariia primelor uniti de discuri flexibile (floppy disk), produse de firma Digital Microsystems, este inventat i sistemul de operare pe disc CP/M (Control Program for Microcomputer). Tot n aceast perioad ncep i alte firme s produc diferite microprocesoare, cum ar fi:
Motorola, familia 6800; MOS Technology, procesoarele 6501, 6502, utilizate n calculatoarele Apple II; Zilog, Z80, realizat de aceeai echip care a realizat i 8080 (care a plecat de la INTEL i a constituit noua companie).
Procesorul Z80 este o variant mbuntit a procesorului 8080, mai rapid i care, spre deosebire de acesta, utiliza o singur tensiune de alimentare (8080 era un procesor bipolar). De asemenea, el genera singur semnalele pentru remprosptarea memoriei dinamice. Ulterior i firma INTEL a realizat o variant mbuntit a procesorului 8080, i anume 8085, n anul 1976. De remarcat c, n acea perioad, o a doua surs de procesoare Intel era . . . AMD (Advanced Micro Devices, fondat n 1969). Proiectanii de la INTEL au urmrit dou mari obiective n proiectarea oricrui procesor:
meninerea compatibilitii totale cu procesoarele precedente; folosirea unor noi tehnologii de fabricaie, pentru a produce procesoarele cele mai rapide i cele mai puternice.
n anul 1979 este realizat, de ctre firma INTEL, primul microprocesor de 16 bii (8086). Acesta a pstrat resursele procesorului 8080, pentru a pstra compatibilitatea cu softul deja scris pentru el, dar arhitectura sa intern conine dou uniti, ce lucreaz n paralel: unitatea de execuie EU (Execution Unit), care realizeaz prelucrarea efectiv a datelor, i unitatea de interfa cu magistrala BIU (Bus Interface Unit), care realizeaz comunicaia cu lumea extern. Odat cu acest procesor este produs i procesorul 8088, cu aceeai structur cu 8086, dar care comunic n exterior printr-o magistral de 8 bii, i nu de 16 bii ca la 8086. Aparent 8088, ar 4
trebui s lucreze cu o vitez de dou ori mai mic dect 8086, deoarece magistrala sa fiind de 8 i nu de 16 bii, trebuie s execute dou accese la memorie, fa de 8086, care va executa un singur acces. Lucrurile nu se ntmpl astfel deoarece unitatea BIU gestioneaz o memorie de tip coad n care se gsesc, aproape n permanen, urmtorii 6 octei ai instruciunilor ce urmeaz s se execute. Singurele momente n care coada trebuie reiniializat, i deci EU trebuie s atepte efectiv citirea unei instruciuni, sunt cele care urmeaz dup execuia unei instruciuni de salt. n acest mod diferena de vitez ntre 8086 i 8088 este doar de circa 20%. Aceste procesoare au introdus noiunea de segmentare a memoriei (doar n modul real): registrele de 16 bii sunt folosite ca indici de adres ntr-un segment fizic de memorie de 64 Ko; registrele segment conin adresa de baz efectiv pentru segmentele active. Procesorul care avea 29.000 tranzistori realiza 330.000 operaii/s., la o frecven de 4,77 MHz, i putea avea acces la o memorie fizic de 1 Mo, mprit n 640 Ko disponibili sistemului de operare i programelor (memoria convenional) i 384 Ko pentru ROM-BIOS (memoria superioar). Arhitectura respectiv a fost pstrat mult timp, sistemul MS-DOS fiind special conceput pentru aceasta. Pn la sistemul de operare Windows Millenium (2000), inclusiv, pentru a putea avea acces la ntreaga memorie a fost necesar ncrcarea driver-ului HIMEM.SYS, datorit necesitii de compatibilitate a softului cu programele mai vechi. O dat cu aceste procesoare apare i conceptul de coprocesor, care este un procesor dedicat, legat direct pe magistrala microprocesorului i care extinde domeniul funciilor realizate de microprocesor. Cel mai important coprocesor realizat de firma INTEL pentru 8086/8088 este 8087, care este un coprocesor matematic ce realizeaz calcule n virgul mobil. Primul coprocesor matematic a fost realizat, n 1979, de firma AMD (AMD 9511). Tot n anul 1979, firma MOTOROLA ncepe s produc microprocesorul 68000, primul ce lucreaz intern pe 32 bii, iar n exterior pe 16 bii, i care va echipa calculatoarele Macintosh ncepnd din 1984 (ce vor da natere unui segment aparte de pia). Arhitectura sa difer mult de cea a procesoarelor produse anterior, deoarece a fost proiectat fr nici un fel de restricii referitoare la compatibilitatea cu alte procesoare din aceeai familie; obiectivul principal a fost obinerea unui procesor puternic, care s permit executarea tuturor instruciunilor cu oricare dintre registre, asupra oricror tipuri de date i utiliznd orice mod de adresare. Deoarece efortul de programare a acestui procesor, n limbaj de asamblare, a fost mai mare dect la familia INTEL, cel puin la nceput procesorul 68000 nu a fost prea rspndit. De asemenea, unitatea de comand a procesorului, spre deosebire de cea convenional a lui 8086, este microprogramat, fiind astfel mai uor de testat, dar are dezavantajul c este ceva mai lent. Spre deosebire de firma Motorola, firma Intel a pstrat compatibilitatea cu versiunile anterioare a fiecrui nou procesor realizat, tocmai pentru a utiliza softul deja existent n vederea exploatrii imediate a noului procesor. Din acest motiv, ns, unele neajunsuri de proiectare, iniial au continuat s fie prezente i la modelele urmtoare. n anul 1980, firma Sinclair a realizat calculatorul Zx80, bazat pe microprocesorul Z80, care coninea i un interpretor de BASIC. Acesta a cunoscut o foarte larg rspndire, datorit preului sczut fa de cel al celorlalte microcalculatoare. n anul 1981, firma IBM produce primul calculator IBM PC (Personal Computer), bazat pe procesorul 8088/8086, dotat i cu un disc flexibil de 5 1/4". Impactul mare al acestui calculator s-a datorat i faptului c firma a publicat schemele acestui calculator i un listing al BIOS-ului (singurul protejat de firm). n acest mod, multe firme au realizat echipamente compatibile IBM, fcnd n acest fel reclam, indirect, firmei IBM. Deoarece IBM a devenit un standard n domeniu, i sistemul de operare 5
MS-DOS (MicroSoft Disk Operating System) a devenit un standard pentru microprocesoarele de 16/32 bii, cum era sistemul de operare CP/M, strmoul su, pentru microprocesoarele de 8 bii. n anul urmtor, 1982, sunt realizate microprocesoarele 80186 i 80286. Primul este de fapt un 8086 mai rapid, prevzut cu o serie de circuite auxiliare, care a fost utilizat pentru a realiza calculatoare compatibile cu IBM PC/XT (eXtended Technology). Al doilea a deschis epoca calculatoarelor AT (Advanced Technology). ncepnd din anii 80, termenul de microprocesor a fost substituit (prescurtat) cu cel de procesor, i datorit complexitii din ce n ce mai mari a acestor chip-uri. n schimb, procesorul 80286 reprezint o etap nou n arhitectura microprocesoarelor, ntruct o serie de concepte clasice din domeniul calculatoarelor mari au fost transferate la acesta: multiprelucrare i multiacces, care utilizeaz mecanisme pentru gestiunea memoriei virtuale i pentru protecia memoriei atribuite unui proces. Spaiul de memorie fizic este i el mrit de la 1 Moctet, la 8086, la 16 Moctei, la 286. Pe baza acestui procesor s-a realizat calculatorul IBM PC AT. Odat cu acest procesor, 80286, a aprut termenul de mod protejat. Acest nou mod de lucru utilizeaz coninutul registrului segment (nu ca adres de baz a segmentului, ca n modul real) ci ca un selector (index) ntr-o tabel a descriptorilor de segmente. Un descriptor de segment conine adresa fizic de baz a segmentului (pe 24 de bii, oferind deci un spaiu de memorie de 16 Mo). Mecanismele de protecie a memoriei cuprind:
verificarea depirii limitei adresabile a unui segment; segmente ce pot fi doar citite; segmente ce pot fi doar executate; opiuni (drepturi) de acces ntr-un segment; patru niveluri de protecie a codului sistemului de operare de programele de aplicaie i cele utilizator; mecanismele de comutare de task-uri i tabelele descriptorilor locali, care permit sistemului de operare s protejeze aplicaiile sau programele utilizator unele de altele.
n anul 1983 este realizat i primul mediu de programare, constituit dintr-un editor i compilator aflate n interaciune, adic Turbo Pascal, de ctre firma BORLAND. Primul procesor de 32 bii al firmei INTEL apare n anul 1986, i este numit 80386, pe scurt 386, avnd 275.000 tranzistori i 132 pini. Acesta poate adresa un spaiu de adrese de 4 Goctei, pentru un singur segment, ajungnd pn la 64 Toctei de memorie virtual. Procesorul posed aceleai faciliti ca i 286, dar dispune, suplimentar, de memorii interne rapide, fiind compatibil, la nivel de cod main, cu predecesorii si. Toi urmaii si, de la 486 pn la Pentium 4, se bazeaz pe aceeai arhitectur, numit IA-32. Procesorul a avut dou variante: 386DX i 386SX, diferena fiind c al doilea comunica cu memoria doar pe 16 bii, n rest fiind identic cu primul. Ca i 286, el adreseaz memoria pe 24 bii, spre deosebire de cei 32 ai lui 386DX, deci poate adresa doar 16 Mo, fa de cei 4 Go ai lui 386DX. Procesorul 80386 a introdus registre de 32 de bii pentru folosirea lor att la operanzi, ct i pentru adrese. De fapt ultimii 16 bii din registrele de 32 de bii reprezint registrele de 16 bii, corespunztoare procesoarelor precedente, pentru a asigura o compatibilitate total cu acestea. Setul de instruciuni de baz a fost mbogit cu noile moduri de adresare pe 32 de bii i cu un numr de noi instruciuni. La acest procesor apare implementat conceptul de paginare, pentru adresarea memoriei, cu pagini de dimensiune fix de 4 Ko, care ofer o metod de implementare a memoriei virtuale, mai bun dect segmentarea. n plus, posibilitatea de a defini segmente de lungime egal cu spaiul de adresare, mpreun cu 6
mecanismul de paginare, permit crearea unui sistem de adresare liniar protejat, mod folosit de sistemul de operare UNIX. Pe lng acestea s-au dezvoltat, n arhitectura procesoarelor, tehnici de procesare (prelucrare) paralel. Astfel dac la 8086 erau doar dou uniti funcionale care lucrau n paralel, structura procesorului 286 conine 4 uniti funcionale ce lucreaz n paralel, n timp ce procesorul 386 conine 6 uniti funcionale ce lucreaz n paralel. Cele 6 uniti funcionale sunt:
Unitatea de interfa cu magistrala (BIU-Bus Interface Unit), care realizeaz accesul la memorie i la porturile de intrare/ieire, pentru celelalte uniti; Unitatea de citire n avans a instruciunilor (Code Prefetch Unit), care ia codul obiect (codul instruciunii) din memorie, i l depune ntr-o coad de 16 octei; Unitatea de decodificare a instruciunii (Instruction Decode Unit), care decodific codul obiect din coada de instruciuni n microcod; Unitatea de execuie (Execution Unit), care execut microcodul furnizat de unitatea de decodificare; Unitatea de translatare a adreselor (Segment Unit), care translateaz adresele logice n adrese liniare i realizeaz verificrile de protecie; Unitatea de paginare (Paging Unit), care translateaz adresele liniare n adrese fizice i realizeaz verificrile de protecie legate de pagini. Aceast unitate mai conine un cache cu informaii de lucru pentru cel mult 32 de pagini, cele mai recent accesate.
Coprocesorul lui 386 (387) este i el mbuntit, adugndu-i noi operaii, cum ar fi funciile trigonometrice. O variant mbuntit a acestui procesor este 80486, produs n anul 1989, care este la fel cu 386 dar include n aceeai capsul (chip) i coprocesorul matematic, fiind de cel puin dou ori mai rapid dect un 386, la aceeai frecven. La acest procesor s-a dezvoltat paralelismul execuiei prin expandarea unitilor de decodificare a instruciunii i de execuie ntr-o band de asamblare (pipeline) cu cinci nivele, n care unitatea fiecrui nivel opereaz n paralel fa de celelalte, putndu- se executa, n acest mod, cinci operaii n paralel. Fiecare nivel din banda de asamblare i realizeaz sarcina corespunztoare pentru execuia unei instruciuni pe durata unui impuls de tact (ceas). n plus, fa de 386, procesorul Intel 486 are un cache intern de date i de instruciuni, de nivel L1 (L1 cache) de 8 Ko, pentru a mri procentul instruciunilor care se pot executa la viteza maxim (de o instruciune pe impuls de ceas, incluznd i instruciunile cu acces la memorie, care au operanzii n cache-ul de date). Procesorul 486 a cunoscut i el dou variante: 486DX i 486SX, cea de-a doua mai ieftin, dar fr coprocesor inclus (de fapt, coprocesorul era doar dezactivat sau defect; acest procesor a fost mai degrab un produs de pia dect o nou tehnologie). Procesorul 486DX avea 1.2 milioane tranzistori, cu frecvene ntre 25 i 50 MHz, funcionnd la 5V, 168 de pini. Unele procesoare ncorporeaz caracteristici pentru reducerea consumului sau pentru controlul sistemului, cum ar fi procesoarele Intel 386SL sau 486SL, care sunt specializate pentru sistemele portabile, alimentate de la baterii. Dac la primele procesoare din familia Intel x86 s-a utilizat o arhitectur complex, denumit arhitectur CISC (Complex Instruction Set Computer), ulterior, ncepnd cu procesorul 486, prin utilizarea conceptului de band de asamblare (pipeline), arhitectura acestor procesoare se apropie de o structur RISC. Cercetrile au artat c o suit de instruciuni simple se poate executa mai rapid dect o singur instruciune complex, iar diminuarea numrului de comenzi i a complexitii lor permite reducerea spaiului utilizat de acestea n procesor, avnd ca i consecin creterea vitezei de lucru. 7
Arhitectura RISC (Reduced Instruction Set Computer) a fost dezvoltat ncepnd din anii 70. Setul de instruciuni ntr-o main RISC, dup cum o spune i numele, const doar din instruciuni simple, cu moduri de adresare limitate. Ideea de baz a fost ca, n locul unei sumedenii de operaii, procesorul s ofere un set restrns de operaiuni, pe care le poate executa foarte rapid. Cele mai multe instruciuni se execut ntr-un singur ciclu. Arhitectura unui procesor Pentium este de tip RISC. Compilatoarele genereaz secvene de instruciuni complexe corespunztoare. Pe lng setul redus de instruciuni, procesoarele RISC mai ofer urmtoarele avantaje:
operaii cu registre, minimiznd astfel necesarul de operaii de acces la memorie; memorie cache integrat pe chip, evitndu-se lucrul lent cu memoria; un model pipeline, pentru a permite procesarea mai multor instruciuni ntr-un ciclu.
Dezavantajul procesoarelor RISC este c, posednd un set mai mare de registre, operaiile de multitasking (multiprelucrare) necesit comutri de multe registre.
Ulterior firma INTEL a produs, n anul 1994, i un procesor pe 64 bii, denumit PENTIUM, tocmai pentru a-l deosebi de procesoare cu aceeai structur produse de alte firme, i denumite 586, Intel realiznd c nu va putea niciodat transforma un numr (586) n marc de comer. Acest procesor, care marcheaz nceputurile generaiei P6, a adugat o a doua band de asamblare de execuie pentru a se obine performane superioare (cele dou benzi de asamblare, denumite U i V, pot lucra n paralel, executnd dou instruciuni pe un impuls de tact). De asemenea, a fost dublat i memoria cache intern, avnd acum cte un cache pentru date i unul pentru cod, fiecare de cte 8 Ko.
1994, Pentium, 2 benzi (u,v), cache L1 separat 8Ko date + 8Ko instr., BTB(Branch Target Buffer), mag int 128 bii, APIC (Advanced Programmable Interrupt Controller); P6. 1996, Pentium Pro, superscalar pe 3 ci, execuie dinamic (analiz flux, execuie n orice ordine, predicie salt, execuie speculativ), 5 unit exec, L1 + L2 (256 Ko) 1997, Pentium MMX (8 reg 64 bii, 3 tipuri de date noi mpachetate de 8-16-32 bii), 57 instr. noi, SIMD (Single Instruction Multiple Data), L1 dublat, alg. predicie mb. 1998, Pentium II = Pro + MMX, SECC (Single Edge Contact Cartridge); 1999, Pentium III = II + arh. SSE (Streaming SIMD Extension), 70 instr., 4*32 bii (virgul mobil, simpl precizie)= 128 bii. 2001, Pentium 4, extinde SIMD, SSE 2, pt. real dubl precizie, NetBurst (MP, Hyper- Threading, superband-20 nivele/ fa de 12 la PII/ PIII), L1: 8Ko date + 12 K micro-operaii trace cache. 2001, arhitectura Itanium, extindere a execuiei paralele, predictive i speculative; L3 (2 sau 4 Mo), L2 (96 Ko, linie 64 oct., 6 ci). 2002, Itanium 2 mrete performana de 1.5-2 ori. Procesoare INTEL: familia P6 (1995-1999): Pro, II, III band de asamblare superscalar (2-3 instr/ciclu); extensia SSE, set 8 registre, XMM, pe 128 biti (real-sp) + reg. control/stare de 32 bii; familia Pentium 4 (2000-2006) 8
micro-arh NetBurst (viteza dubla UAL/intregi, executie dinamica avansata, imb alg predictie, expandare reg cu redenumire, dim cache 64 octeti; SSE2, set registre pe 128 biti (real-dp, intregi), instruciunile utiliz. reg. XMM, MMX i reg. gen; procesoarele Xeon i Pentium Extr Ed (2001-2007) micro-arh NetBurst, tehnologia Hyper-Threading, 64 bii; instruciuni SSE3 (virg. mobil, sincronizare multi-thread), SSSE3-Supplemental Streaming SIMD Extensions (instr. accelereaz prel. semnal i MM), SSE4 cu 2 componente: SSE4.1-media, imagine, 3D i SSE4.2-prel text/string, 128 bii. Microarhitectura Intel Core : Execuie dinamic larg fiecare nucleu (core) fetch, decod, execut 4 instr/ciclu; Band asamblare 14 niveluri, 3 UAL, 4 decod, predict av; Cache inteligent avansat rat mare pentru nivel 2 cache: < 4M i asociativitate pe 16 ci; mag intern 256 bii pentru transferul L1-L2; Acces la memorie inteligent reduce cache-miss pentru execuia n orice ordine; hard prefetch ce reduce latena pt cache-miss la L2; hard prefetch ce reduce latena pt cache-miss la L1; mb. prelucrrii de date media digitale execuie pe singur ciclu pt. maj. instr. SIMD pe 128 bii; execuia pn la 8 operaii n virgul mobil/ciclu
Procesoarele iniial dezvoltate ca uni-core Procesor multi- core (Intel Core Duo, cu 2 core-uri, Intel 2010 core, cu 4 core, Intel Core i7 Ultimate, cu 6 core): implementeaz multiprocesarea pot fi puternic sau slab cuplate: partajeaz memorie cache comunicaie prin mesaje sau memorie partajat inter-core Performana limitat de procentul de soft ce poate fi paralelizat s ruleze simultan pe coruri multiple 9
Unele metode de paralelism la nivel instruciune (ILP) precum asamblarea superscalara sunt adecvate Consum mai mic dect dou procesoare single-core cuplate, nemaifiind necesar transmitere semnale n afara procesorului Procesoarele multi- core partajeaz aceleai circuite: cache L2, interfaa cu FSB(Front Side Bus); Necesit ajustri att ale SO ct i ale softului aplicaiilor curente; Softul multi-thread mai greu de depanat, dar tehnicile de programare paralel pot beneficia direct de multiple core-uri. Administrarea concurenei: partiionare/ descompunere problem n taskuri, Comunicare ntre taskuri, Aglomerare versus combinare taskuri pentru a furniza un numr mai mic de taskuri, fiecare de o dimensiune mai mare (replicare date sau calcule, pentru eficien), Maparea specific unde se execut fiecare task