breviar istoric intel (ii)

luni, 30 apr. 2012, 18:28

În cadrul articolului anterior rămăsesem pe undeva la Pentium, care spuneam că are pipeline superscalar, cache-uri de date și de instrucțiuni și așa mai departe. Să facem o pauză și să explicăm câteva din conceptele astea, pentru că sunt foarte importante pentru ceea ce a urmat după.

Pipeline-ul, adică pe românește banda de asamblare, e pe scurt transpunerea în calculatoare a ideii lui Henry Ford: luăm o problemă, o spargem în probleme seriale mai mici și punem entități separate să lucreze la fiecare (sub)problemă. Astfel soluția subproblemei 0 e transmisă către entitatea care se ocupă de subproblema 1, ieșirea lui 1 către 2 și tot așa. Avantajul acestei soluții e că dacă procesorul are două instrucțiuni consecutive de executat, pipeline-ul va putea executa – în cazul ideal – porțiuni din ele (de exemplu preluarea unei variabile din memorie și o adunare) în paralel.

Abordarea asta aduce cu ea și multe complicații în care nu vom intra aici, însă e interesant aspectul că dacă două instrucțiuni (consecutive sau nu) nu depind între ele, acestea pot ajunge să fie executate într-o ordine aleatoare. Drept urmare dacă există două benzi de asamblare distincte, procesorul va putea planifica instrucțiuni după o politică prestabilită. Ca fapt divers execuția out-of-order n-a fost inventată de Intel, ci de o (fostă) companie care avea în componență și un român, dar în fine, astea-s deja detalii.

Al doilea concept, cache-ul, este analogul memoriei de scurtă durată în domeniul calculatoarelor. Dat fiind faptul că frecvența procesorului a crescut exponențial față de cea a memoriilor și magistralei, anumite instrucțiuni vor ajunge să se execute mai rapid decât altele, fapt ce reprezintă un dezavantaj major pentru performanță. În cazul ideal am dori să punem toată memoria cât mai aproape de procesor, dar abordarea asta e deosebit de scumpă, motiv pentru care memoria cea mai rapidă este și cea mai puțină. E de ajuns să spunem că între RAM (memoria cea mai lentă dacă nu luăm în considerare hard-disk-ul) și registre (memoria cea mai rapidă) se află cache-ul, despre care nici în ziua de azi vânzătorii de calculatoare nu vă spun că e de fapt mai importantă pentru performanță decât frecvența ceasului.

Revenind la Intel, după P5 a urmat evident P6. Îmbunătățirile P6 sunt exact pipeline-ul (care de data asta e out-of-order) și cache-ul, care a tot crescut de la Pentium II și mai apoi la Pentium III. Alte îmbunătățiri au fost transformarea MMX în SSE și un redesign adus microcodului, care transformă încet încet arhitectura de bază din CISC în RISC.

P6 a avut doi succesori, primul din ei fiind NetBurst, care stă la baza procesoarelor Celeron, Pentium 4 și Pentium D. NetBurst a dus super-pipeline-ul într-un design mult îmbunătățit, marcat de tehnologia pe care noi o cunoaștem sub numele de Hyper-Threading – un buzzword de marketing, care în spate se referă la faptul că poți avea două fire de execuție complet independente rulând concurent. Evident, chestia cu pricina avea nevoie de suport în sistemul de operare și așa mai departe.

Problema majoră a microarhitecturii NetBurst, și motivul pentru care s-a renunțat la ea în cele din urmă, a fost consumul de putere. Deși nemulțumirile clienților în ceea ce privește factura de electricitate au fost mai mult sau mai puțin ascultate de Intel, design-ul NetBurst a neglijat atât de mult acest aspect încât întregi linii de producție au ajuns să fie returnate datorită căldurii disipate prea mari. Asta în condițiile în care Intel se aflau în mod constant sub presiunea de a scoate următorul produs cu frecvență mai mare și design și mai complex – eventual pe 64 de biți -, fapt ce se traduce în și mai multe tranzistoare și o căldură disipată numai bună pentru încălzirea casei pe timp de ger [i].

Al doilea succesor al lui P6 a fost și este microarhitectura Intel Core. Core-urile au revenit la principii mai sănătoase de design cum ar fi reducerea/scalarea frecvenței în funcție de încărcare, îmbunătățirea unității de execuție, mărirea cache-ului și introducerea unor stări de sleep care eventual să ducă tensiunea pe procesor la zero volți. În plus Intel au făcut în mod constant cercetări privind reducerea dimensiunii tranzistoarelor [ii], fapt ce le-a permis să facă hardware mai complex la costuri de putere similare.

De remarcat faptul că primele procesoare Core nu au avut Hyper-Threading deoarece seria respectivă a fost dezvoltată în paralel cu NetBurst, urmând ca abia primul Core i7 (Nehalem) să aibă o implementare funcțională. În plus la un anumit punct a fost adăugat cache-ul de nivel 3 inclusiv pe procesoarele destinate desktop-urilor, iar numărul de unități de procesare de pe pastila de siliciu a crescut de la două în sus, astfel că în ziua de astăzi rareori mai vedem desktop-uri sau laptop-uri single-core.

Am neglijat complet să menționez că o mare parte din funcționalitatea deșteaptă a acestor procesoare a fost inspirată din hardware produs de alte companii, dar care nu a ajuns neapărat pe piața utilizatorului de rând. De exemplu primele procesoare multi-core au fost produse de IBM, iar ideea de consum redus de putere aparține ARM. Și dacă IBM au rămas un concurent serios doar pe nișa calculului de înaltă performanță [iii], ARM, care nu produc deloc hardware, le suflă în ceafă celor de la Intel și sunt cu mult înainte pe piața produselor embedded.

Viitorul o să fie foarte interesant, pentru că în timp ce Nvidia își păstrează în continuare locul pe piața GPU-urilor, AMD sunt pe moarte iar producătorii de procesoare bazate pe ARM [iv] încep să scoată hardware care ajunge procesoarele Intel din urmă la capitolul performanță. Iar ARMv8 îi va sufla și mai tare în ceafă seriei Core.

  1. Mi se pare că la vremea respectivă încălzirea cu apă a intrat și pe piața consumatorilor de rând pentru o perioadă scurtă. []
  2. Pentru că Intel și Gordon Moore sunt două nume legate într-un mod intrinsec. []
  3. Istoria e de fapt mai complicată și îi include și pe Sun, care au avut momentele lor de glorie și de inovație în domeniul ăsta. []
  4. Cei mai importanți aș zice că sunt Apple, Nvidia, Texas Instruments și Qualcomm, cu accent pe primul și ultimul din listă. []

Comments

  • […] problema sus-numită. Procesorul ar fi de preferință să fie minim Core i3, având în vedere că Core-urile în general și i-urile în particular au facilități de power management destul de bine […]

  • […] cadrul unui articol trecut spre sfârșit povesteam despre cum ARM pot fi deja considerați un adversar serios al Intel și un […]

  • Comentariile sunt dezactivate.