New Immissions/Updates:
boundless - educate - edutalab - empatico - es-ebooks - es16 - fr16 - fsfiles - hesperian - solidaria - wikipediaforschools
- wikipediaforschoolses - wikipediaforschoolsfr - wikipediaforschoolspt - worldmap -

See also: Liber Liber - Libro Parlato - Liber Musica  - Manuzio -  Liber Liber ISO Files - Alphabetical Order - Multivolume ZIP Complete Archive - PDF Files - OGG Music Files -

PROJECT GUTENBERG HTML: Volume I - Volume II - Volume III - Volume IV - Volume V - Volume VI - Volume VII - Volume VIII - Volume IX

Ascolta ""Volevo solo fare un audiolibro"" su Spreaker.
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Explicitly Parallel Instruction Computing - Wikipedia

Explicitly Parallel Instruction Computing

Da Wikipedia, l'enciclopedia libera.

Explicitly Parallel Instruction Computing (EPIC) è un paradigma di architettura per microprocessori sviluppata verso al fine degli '90.Questo paradigma è stata sviluppato da Intel e HP e ha portato allo sviluppo dell'architettura dell'Intel IA-64 utilizzata nei processori Itanium e Itanium 2. L'obiettivo di EPIC è lo sviluppo di processori in grado di eseguire in modo nativo ed efficiente codice parallelo senza dover utilizzare complesse strutture hardware all'interno del processore ma demandando la maggior parte dei problemi di parallelizzazione al compilatore. Questo permette di ottenere un aumento regolare e costante delle prestazioni senza innalzare eccessivamente la frequenza di funzionamento dei processori evitando consumi eccessivi e problemi di dissipazione.

Indice

[modifica] VLIW

L'esecuzione fuori ordine e l'esecuzione speculativa ha permesso negli anni passati di incrementare significativamente le prestazioni dei processori. Tuttavia queste tecniche hanno presto mostrato i loro limiti, richiedono unità funzionali sempre più costose e complesse per ottenere aumenti prestazionali sempre più ridotti. Nella meta degli anni 90 si svilupparono diverse ricerche per arginare o eliminare il problema e le ricerche portarono allo sviluppo di set di istruzioni ove il parallelismo delle singole istruzioni fosse dichiarato in modo esplicito in modo da eliminare le unità di esecuzione fuori ordine e di analisi speculativa del codice. Questi set di istruzioni portarono alle architetture VLIW.

Nelle architetture VLIW le istruzioni sono impacchettate in gruppi che vengono eseguiti in parallelo. In ogni gruppo la dipendenza tra le varie istruzioni è già stata analizzata e risolta dal compilatore e quindi il processore deve solo prendere il gruppo di istruzioni, separare le singole operazioni ed eseguile in parallelo senza dover utilizzare complesse unità di analisi del codice. Tutta l'analisi del codice per ottenerne un versione parallela è stata effettuata dal compilatore che avendo molto più tempo del microprocessore effettua analisi molto più approfondite e performanti.

Le architetture VLIW però anno diversi difetti che attualmente ne limitano la diffusione, le principali sono:

  • I programmi VLIW non sono totalmente retrocompatibili. Codice scritto per un processore non risulta compatibile con le generazioni precedenti del processore dato che le generazioni precedenti hanno meno unità funzionali della generazione attuale. Il processore è invece in grado di eseguire codice compilato per generazioni precedenti sebbene con una riduzione delle prestazioni.
  • Le moderne architetture basate su DRAM e cache rendono il tempo di accesso alla memoria non predicibile e quindi molte delle ottimizzazioni applicate dal compilatore vengono vanificate.

[modifica] Superare i limite del VLIW

EPIC introduce diverse innovazioni all'architettura VLIW classica per superarne i limiti, le principali innovazioni sono:

  • Ogni gruppo di istruzioni viene chiamato bundle. Ogni bundle contiene al suo interno oltre alle istruzioni anche delle informazioni aggiuntive che specificano se i risultati del bundle servono a un bundle successivo. Queste informazioni sono utilizzate del processore per gestire in parallelo i vari bundle. Le dipendenze dei bundle sono calcolate dal compilatore in modo da non occupare transistor del processore.
  • L'analisi speculativa dei dati viene utilizzata anche per precaricare i dati nelle cache. Questo incrementa la possibilità di trovare i dati già in cache e quindi riduce i lenti accessi alla memoria.
  • Il precaricamento dei dati inoltre aiuta l'esecuzione speculativa verificando in anticipo se vi siano delle dipendenze da precedenti caricamenti.

L'architettura EPIC inoltre prevede una serie di flag utilizzati per mantenere le pipeline cariche.

  • L'esecuzione predicativa serve per ridurre l'incidenza dei salti sulle prestazioni delle pipeline e aumentare l'esecuzione speculativa. Il processore converte la condizione di salto in un predicato che viene utilizzato per decidere quali istruzioni vadano eliminate dato che il processore esegue entrambi i cammini e poi deve eliminare le istruzioni del ramo non eseguito.
  • L'esecuzione ritardata viene utilizzata per migliorare l'esecuzione speculativa e su appoggia a dei registri di uso generale del processore.
  • Il processore è dotato di moltissimi registri (diverse centinaia) in modo da non dover utilizzare tecniche di ridenominazione dei registri.
  • Istruzioni di salto a più vie.

L'architettura IA-64 inoltre aggiunge la rotazione dei registri, una tecnica utilizzata nei DSP che permette di utilizzare subroutine senza dover effettuare continui salvataggi dello stack ma appoggiandosi a una serie di registri che vengono fatti vedere alle subroutine tramite una specie di finestra scorrevole che mostra alla subroutine solo i registri di sua competenza. Il processore inoltre provvede al salvataggio in memoria dei registri impegnati da subroutine lontane da quella in esecuzione, in modo da aver sempre registri pronti per le subroutine.

[modifica] Ricerca e sviluppo continuo

Il progetto EPIC si basa su ricerche prodotte da molti gruppi, tra le più influenti segnaliamo:

  • IMPAC, un progetto dalla University of Illinois at Urbana-Champaign gestito da Wen-mei Hwu che ha prodotto molte idee e tecniche utilizzate da EPIC
  • L'architettura PlayDoh prodotta da HP nei suoi laboratori.
  • Gelato.org un progetto open source che mira a sviluppare una comunità di aziende e università per creare compilatori ad alte prestazioni per i processori Itanium su piattaforma Linux

[modifica] EPIC nel mercato

L'architettura EPIC dopo un avvio molto stentato ha raggiunto un certo successo in alcuni segmenti di mercato, dove i server ad alte prestazioni la fanno da padrona. Secondo un'analisi di IDC i server basati su Itanium hanno generato un giro d'affari di 2.2 miliardi di dollari statunitensi e lo studio stima che il giro d'affari raggiunga i 7 miliardi di dollari nel 2010. [1] L'architettura EPIC si sta diffondendo ma se questa architettura dominerà il futuro è tutto da vedere.

[modifica] Voci correlate

[modifica] Collegamenti esterni

Informatica
Progetto Informatica Portale Informatica BarCode

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu