Calcul de instrucțiuni în mod explicit paralel

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Calculul explicativ al instrucțiunilor paralele ( EPIC ) este o paradigmă de arhitectură pentru microprocesoare dezvoltată la sfârșitul anilor nouăzeci . Această paradigmă a fost dezvoltată de Intel și HP și a condus la dezvoltarea arhitecturii Intel IA-64 folosită în procesoarele Itanium și Itanium 2 . Scopul EPIC este dezvoltarea de procesoare capabile să ruleze cod paralel în mod nativ și eficient, fără a fi nevoie să utilizeze structuri hardware complexe în interiorul procesorului, dar lăsând majoritatea problemelor de paralelizare în sarcina compilatorului. Acest lucru permite obținerea unei creșteri regulate și constante a performanței fără creșterea excesivă a frecvenței de funcționare a procesoarelor, evitând consumul excesiv și problemele de disipare.

Istorie

Arhitectura EPIC este un derivat al arhitecturii VLIW și, de fapt, dezvoltarea acestei arhitecturi este indisolubil legată de dezvoltarea arhitecturii VLIW. Principalele inovații au fost [1] :

  • 1981 - Bob Rau dezvoltă proiectul de arhitectură policiclică la TRW / ESL [2]
  • 1983 - Josh Fisher descrie proiectul ELI-512 o mașină VLIW cu compilator care implementează planificarea urmelor [3]
  • 1983-1988 - Rau la Cydrome dezvoltă sistemul Cydra-5, compania va închide în 1998 [4]
  • 1984-1990 - Fisher la Multiflow dezvoltă sisteme Trace, compania va închide în 1990
  • 1988 - Dick Lampman la Hewlett Packard angajează Bob Rau și Mike Schlansker de la Cydrome și achiziționează brevete Cydrome
  • 1989 - Rau și Schlansker încep proiectul de cercetare FAST (Fine-grained Architecture and Software Technologies), dezvoltând ulterior arhitectura HP PlayDoh
  • 1990-1993 - Bill Worley dezvoltă arhitectura PA-WW (Precision Architecture Wide-Word) la laboratoarele Hewlett Packard ca o arhitectură succesivă a celei utilizate de procesoarele PA-RISC , ulterior aceasta va lua numele SP-PA (Super-Parallel Processor) Arhitectură) și va produce SWS (Super WorkStation)
  • Hewlett Packard îl angajează pe Josh Fisher și îl plasează în proiectul PA-WW
  • Hitachi colaborează în proiectul PA-WW, managerul de proiect Hitachi este Yasuyuki Okada
  • Noiembrie 1991 - Hans Mulder se alătură Intel pentru a dezvolta o arhitectură pe 64 de biți
  • Iulie 1992 - Worley sfătuiește conducerea superioară a lui Hewlett Packard să caute un partener pentru fabricarea semiconductoarelor.
  • 1993 - Hewlett Packard începe să dezvolte produse bazate pe PA-WW
  • Decembrie 1993 - Hewlett Packard contactează Intel pentru colaborare
  • Iunie 1994 - Hewlett Packard și Intel anunță colaborarea; proiectul PA-WW va fi folosit ca punct de plecare pentru dezvoltarea produselor comune; John Crawford de la Intel devine director de proiect
  • 1997 - este inventat termenul EPIC
  • Octombrie 1997 - Prezentarea Interl și Hewlett Packard la Forumul microprocesorului
  • Iunie 1998 - Carole Dulong de la Intel publică „The IA-64 Architecture at Work”, IEEE Computer, pp. 24–32.
  • Februarie 1999 - publicarea detaliilor despre ISA IA-64
  • 2001 - Intel redenumeste AI-64 ca Familia de procesoare Itanium în scopuri de marketing
  • Mai 2001 - Itanium (Merced)
  • Iunie 2002 - Itanium 2 (McKinley)

VLIW

Executarea în afara comenzii și execuția speculativă au permis în ultimii ani să crească semnificativ performanța procesorelor. Cu toate acestea, aceste tehnici și-au arătat în curând limitele, necesitând unități funcționale din ce în ce mai scumpe și complexe pentru a obține creșteri din performanță tot mai mici. La mijlocul anilor '90 au fost dezvoltate diverse cercetări pentru a stopa sau elimina problema, iar cercetările au condus la dezvoltarea unor seturi de instrucțiuni în care paralelismul instrucțiunilor individuale a fost declarat explicit pentru a elimina unitățile de execuție în afara ordinii și speculative. analiza.codului. Aceste seturi de instrucțiuni au condus la arhitecturile VLIW .

În arhitecturile VLIW, instrucțiunile sunt împachetate în grupuri care rulează în paralel. În fiecare grup, dependența dintre diferitele instrucțiuni a fost deja analizată și rezolvată de compilator și, prin urmare, procesorul trebuie doar să ia grupul de instrucțiuni, să separe operațiunile individuale și să le execute în paralel, fără a fi nevoie să utilizeze unități complexe de analiză a codului. Toată analiza codului pentru a obține o versiune paralelă a fost efectuată de compilator care, având mult mai mult timp decât microprocesorul, efectuează analize mult mai aprofundate.

Cu toate acestea, arhitecturile VLIW au mai multe defecte care limitează difuzarea lor în prezent, principalele fiind:

  • Programele VLIW nu sunt complet compatibile cu versiunile anterioare. Codul scris pentru un procesor nu este compatibil cu generațiile anterioare ale procesorului, deoarece generațiile anterioare au mai puține unități funcționale decât generația actuală. Procesorul, pe de altă parte, este capabil să execute cod compilat pentru generațiile anterioare, deși cu performanțe reduse.
  • Arhitecturile moderne DRAM și bazate pe cache fac timpul de acces la memorie imprevizibil și, prin urmare, multe dintre optimizările aplicate de compilator sunt anulate.

Depășirea limitelor VLIW

Arhitectura EPIC pentru a rezolva principalele probleme urmează șase principii de bază:

  1. Încărcați în avans instrucțiuni
  2. Execuție predicativă pentru a elimina multe condiții de salt
  3. Număr mare de registre
  4. Independență de arhitectură
  5. Predicția salturilor
  6. Rotirea registrelor

Pentru a respecta principiile de bază, arhitectura EPIC folosește următoarele tehnici:

  • Încărcare în avans:
Arhitectura introduce încărcarea speculativă a instrucțiunilor, înainte de un salt încearcă să prezică rezultatul instrucțiunii și încarcă instrucțiunile aferente în cache. Efectuează încărcări chiar înainte de a finaliza analiza aliasurilor.
  • Execuție predicativă:
Procesorul are 64 de registre utilizate pentru a gestiona executarea predicativă a instrucțiunilor, acest lucru permite eliminarea multor dintre cele mai frecvente sărituri și, prin urmare, permite creșterea semnificativă a instrucțiunilor executate în paralel. Fiecare instrucțiune poate fi executată în mod predicativ.
  • Număr mare de registre
Pentru a nu include structuri de redenumire a registrelor , arhitectura include 128 de registre pentru numere întregi și 128 de registre pentru numere în virgulă mobilă.
  • Independența față de arhitectură:
Pentru a elimina una dintre constrângerile majore ale arhitecturilor VLIW, EPIC este o arhitectură complet VLIW fără cicluri de întârziere. Fiecare grup de instrucțiuni se numește pachet . Fiecare pachet conține pe lângă instrucțiuni și informații suplimentare care specifică dacă rezultatele pachetului sunt utile pentru un pachet ulterior. Aceste informații sunt utilizate de procesor pentru a gestiona diferitele pachete în paralel. Dependențele de pachete sunt compilate pentru a nu ocupa tranzistoarele procesorului. Pachetele sunt de 128 de biți, în timp ce fiecare instrucțiune este de 41 de biți, iar biții de gestionare a pachetelor sunt de 5.
  • Predicția salturilor
Opt registre pentru predicția ramurilor, registrele permit unității să prezică salturi multiple și salturi cuibărite
  • Rotirea registrelor
Arhitectura IA-64 folosește fereastra de înregistrare , o tehnică utilizată în DSP-uri care vă permite să utilizați subrutine fără a fi nevoie să salvați continuu stiva, ci bazându-vă pe o serie de registre care sunt afișate subrutinelor printr-un fel de fereastră glisantă care arată subrutină doar registrele competenței sale. Procesorul prevede, de asemenea, salvarea în memorie a registrelor ocupate de subrutine departe de cel în execuție, astfel încât să aibă întotdeauna registre pregătite pentru subrutine. Arhitectura prevede că cele 48 de registre inferioare utilizate pentru predicare și cele 96 de registre întregi inferioare se pot roti.

Cercetare și dezvoltare continuă

Proiectul EPIC se bazează pe cercetări produse de multe grupuri, printre cele mai influente fiind:

  • IMPAC, un proiect de la Universitatea din Illinois la Urbana-Champaign, condus de Wen-mei Hwu, care a produs multe idei și tehnici utilizate de EPIC.
  • Arhitectura PlayDoh produsă de HP în laboratoarele sale.
  • Gelato.org un proiect open source care își propune să dezvolte o comunitate de companii și universități pentru a crea compilatoare de înaltă performanță pentru procesoarele Itanium pe platforma Linux

EPIC pe piață

Arhitectura EPIC, după un început foarte lent, a obținut un anumit succes în unele segmente de piață, unde serverele de înaltă performanță sunt maeștrii. Conform unei analize realizate de IDC, serverele bazate pe Itanium au generat o cifră de afaceri de 2,2 miliarde USD și studiul estimează că cifra de afaceri va ajunge la 7 miliarde USD în 2010. [5] Arhitectura EPIC pe care o răspândește, dar dacă această arhitectură va domina viitor rămâne de văzut.

Notă

  1. ^ cronologie extrasă din Istoricul istoric pentru HP / Intel EPIC și IA-64 - Mark Smotherman
  2. ^ Câteva tehnici de planificare și o arhitectură orizontală ușor de planificat pentru calcul științific de înaltă performanță Simpozion internațional privind arhiva de microarhitectură Proceedings of the 14th workshop anual on Microprogramming table of contents Chatham, Massachusetts, Statele Unite Pagini: 183 - 198 an: 1981 ISSN 1050-916X ( WC · ACNP )
  3. ^ Arhitecturi Word cu instrucțiuni foarte lungi și ELI-512 IEEE-CS: Computer SoħĒēĕĊČÄÈăĂāĜciety, SIGARCH: ACM Special Interest Group on Computer Architecture Pagini: 140 - 150 an: 1983 ISBN 0-89791-101-6
  4. ^ Supercalculatorul departamental Cydra 5: filozofii de proiectare, decizii și compromisuri Rau, BR; Yen, DWL; Wei Yen; Towle, RA; Computer Volumul 22, Ediția 1, ianuarie 1989 Pagină (e): 12 - 35 Identificator de obiect digital 10.1109 / 2.19820
  5. ^ Intel aduce capacități dual-core cu Montecito la procesorul Itanium 2 Depus la 27 septembrie 2007 în Internet Archive .

Elemente conexe

linkuri externe

  • Articol tehnic , pe lithium.it . Adus la 10 septembrie 2006 (arhivat din original la 9 septembrie 2006) .
Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT