Paralelism la nivel de instruire

Paralelismul la nivel de instrucție ( ILP )  este o  măsură a câte operații într-un program de calculator pot fi efectuate simultan. Suprapunerea potențială în execuția instrucțiunii se numește „ paralelism la nivel de instrucțiune ”.

Descriere

Există două abordări ale extragerii paralelismului la nivel de instruire:

Stratul hardware implementează paralelismul dinamic, în timp ce stratul software implementează paralelismul static. Procesoarele x86 moderne de înaltă performanță ( Intel Pentium 4 , Intel Core ) operează pe o secvență dinamică de execuție paralelă ( Out of Order Execution ). Paralelismul static a fost folosit la procesoarele Itanium (cu toate acestea, Itanium 2 folosește o abordare hibridă).

Luați în considerare următorul program:

  1. e = a + b
  2. f = c + d
  3. m = e*f

Operația 3 depinde de rezultatele operațiunilor 1 și 2, deci nu poate fi evaluată până la finalizarea operațiunilor 1 și 2. Totuși, operațiunile 1 și 2 sunt independente de alte operațiuni, deci pot fi evaluate în același timp. Presupunând că fiecare operație poate fi finalizată într-o unitate de timp, atunci aceste trei instrucțiuni pot fi finalizate în total două unități de timp, oferind paralelism 3/2.

Scopul dezvoltatorilor de compilatoare și procesoare este să identifice paralelismul și să profite la maximum de el. Programele obișnuite sunt de obicei scrise pentru un model de execuție secvențială, în care instrucțiunile sunt executate una după alta în ordinea stabilită de programator. ILP permite compilatorului și/sau procesorului să paralelizeze execuția mai multor instrucțiuni sau chiar să schimbe ordinea în care sunt executate.

Cât de mult ILP este prezent într-un program depinde foarte mult de aplicarea acestuia. În unele domenii, cum ar fi grafica pe computer și calculul științific, numărul poate fi foarte mare. Cu toate acestea, sarcini precum criptografia pot prezenta mult mai puțin paralelism.

Metode hardware pentru detectarea și exploatarea paralelismului:

Arhitecturile de flux sunt o altă clasă de arhitecturi în care ILP-urile sunt specificate în mod explicit, vezi, de exemplu , arhitectura TRIPS.

Implementări

Primele implementări de mainframe ale ILP, cum ar fi IBM System/360 Model 91 , au folosit tehnici ILP pentru a depăși limitările unui fișier registru relativ mic .

Microprocesoarele au folosit diverse forme de paralelism la nivel de instrucțiuni de la sfârșitul anilor 1980. Un exemplu de primele procesoare superscalare este Intel 960CA (1989 [1] ), IBM Power RS/6000 (1990), DEC Alpha 21064 (1992) [2] . Execuția necorespunzătoare a instrucțiunilor și redenumirea registrelor în microprocesoare au fost implementate pentru prima dată în IBM POWER 1 (1990).

Primul procesor IA-32 cu o conductă a fost Intel 80486 (1989); primul procesor superscalar IA-32 a fost Intel Pentium (1993); primul procesor IA-32 cu executarea necorespunzătoare a comenzilor și redenumirea registrelor - Intel Pentium Pro (1995),

Între 1999 și 2005, AMD și Intel au concurat puternic pentru a produce microprocesoare din ce în ce mai performante pentru piețele de consum și servere. În procesoarele lansate în această perioadă, ambele companii au îmbunătățit în mod activ tehnicile de exploatare a paralelismului la nivel de instrucție. De exemplu, în arhitectura NetBurst , Intel a crescut etapele conductei de calcul, aducând numărul acestora în Pentium 4 Prescott la 31. Ambele companii au crescut frecvența de ceas a procesoarelor (așa-numita „ cursă gigahertz ”), au redus tehnica proces pentru a plasa și mai mulți tranzistori pe substratul procesorului pentru a le utiliza pentru a îmbunătăți în continuare eficiența conductelor superscalare .

Până la sfârșitul anului 2005, a devenit clar că toate aceste căi și metode s-au epuizat de la sine. Legea de scalare a lui Dennard a încetat să funcționeze. La o rată constantă de creștere a numărului de tranzistori , performanța procesoarelor în sine a crescut ușor, dar, în același timp, consumul de energie al procesoarelor și disiparea căldurii lor au crescut , apropiindu-se de limitările sistemelor ieftine de radiatoare ( plafonul de putere , perete de putere [3] [4] ).

De la sfârșitul anului 2005, creșterea vitezei de ceas și a performanței cu un singur thread a încetinit semnificativ [5] [6] [7] și industria microprocesoarelor a început să se îndrepte către utilizarea altor niveluri de paralelism , și anume paralelismul la nivelul nivel de fire și sarcini, implementate în multiprocesare , multi-core și hardware multithreading [8] . Acest lucru, la rândul său, s-a reflectat în abordările de programare [9] .

Vezi și

Note

  1. Ron Copeland. Intel este gata să anunțe microprocesorul i960CA cu 66 MIPS  // InfoWorld. - 1989. - T. 11 , Nr. 36 . - S. 19 .  (Engleză)
  2. Kai Hwang, Naresh Jotwani. arhitectură computerizată avansată. - a doua editie. - McGraw-Hill Education, 2011. - P. 152. - 723 p. - ISBN 978-0-07-070210-3 .  (Engleză)
  3. Christopher Mims. De ce CPU-urile nu devin  mai rapid . Revista MIT Technology (12 octombrie 2010). - „power wall (temperatura totală a cipului și consumul de energie). .. probabil limita definitorie a puterii CPU-ului modern.”. Preluat la 3 septembrie 2016. Arhivat din original la 16 septembrie 2016.
  4. Peștele Russell. Viitorul computerelor - Partea 2: The Power Wall  (engleză) . EDN (06 ianuarie 2012). Consultat la 3 septembrie 2016. Arhivat din original pe 6 septembrie 2016.
  5. PROCESAREA DATELOR ÎN SISTEME DE CALCULATE DE CLASA EXASCALE , Chuck Moore (AMD), The Salishan Conference on High Speed ​​​​Computing (LANL / LLNL / SNL) 27 aprilie 2011
  6. Moartea scalării CPU: de la un nucleu la mai multe - și de ce suntem încă blocați Arhivat 7 septembrie 2016 la Wayback Machine , Joel Hruska pe 1 februarie 2012
  7. O privire în urmă la performanța procesorului cu un singur thread Arhivat 14 septembrie 2016 la Wayback Machine , 2012 - după 2004, creșterea performanței cu un singur thread de către SpecInt este de aproximativ 15-20% pe an, în loc de 50% în ultimii zece ani
  8. [1] Arhivat la 7 februarie 2018 la Wayback Machine Intel Developer Forum în 2005 - Președintele Intel Paul Otellini - „Dedicăm toată dezvoltarea viitoare a produselor noastre proiectelor multicore. Credem că acesta este un punct de inflexiune cheie pentru industrie.”
  9. Herb Sutter . Prânzul gratuit s-a terminat: o întorsătură fundamentală către concurența în software Arhivat 10 iulie 2016 la Wayback Machine

Literatură

Link -uri