arhitecturi paralele - curs

Upload: diananegrea82

Post on 30-May-2018

258 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/14/2019 Arhitecturi Paralele - Curs

    1/14

    1. Introducere n problematica microarhitecturilor cu execuiespeculativSpecialitii opineaz c 65% din aceast cretere exploziv a performanei se datoreaz progreselor arhitecturale i doar 35% celortehnologice.Din punct de vedere arhitectural i n special dup modul de prelucrare a instruciunilor, se consider c pn la ora actual au existat3 generaii de (micro)procesoare comerciale de uz general, dup cum urmeaz: generaia I caracterizat n principal prin execuia secvenial a fazelor (ciclilor main) aferente instruciunilor - main.Pionierii acestei generaii sunt desigur inventatorii calculatorului numeric, ingineriiEckertiMauchly, alturi de cel care ulterior ateoretizat i a mbogit conceptul, n persoana marelui om de ti in americanJohn von Neumann generaia a II-a de procesoare, care exploata n principal paralelismul temporal aferent instruciunilor main prinsuprapunerea fazelor acestora (pipelining, overlapping). Primul reprezentant comercial a fost sistemul CDC-6600 (Control Data

    Company - 1964) proiectat de ctre cel mai mare creator de calculatoare de nalt performan i totodat unul dintre pionieriisupercalculatoarelor, Seymour Cray. nc de la nceputurile anilor '80, microprocesoarele RISC(Reduced Instruction Set Computers)scalare au reprezentat aceast generaie (J. Cocke de la IBM,D. Patterson de la Univ. Berkeley iJ. Hennessy de la Univ. Stanford,fiind doar trei dintre pionierii promotori ai acestor idei). n plus, aceste microprocesoare au optimizat setul de instruciuni main nvederea implementrii optimale a aplicaiilor de nivel nalt. generaia a III-a, cea curent, este caracterizat de procesarea mai multor instruciuni independente simultan, prin exploatareaunui paralelism spaial la nivelul diverselor uniti funcionale de procesare (Multiple Instruction Issues). Execuia instruciunilor seface out of order, utiliznd deci tehnici de reorganizare, dinamic sau static, a instruciunilor n vederea minimizrii timpului globalde execuie [Hen02]. Pionierul comercial un adevrat arhetip al acestei generaii - a fost sistemul anilor '60 IBM-360/91 (printreproiectaniAnderson, Sparacio, Tomasulo,Goldschmidt, Earle etc.), care, prin algoritmul lui Tomasulo implementat n unitatea devirgul mobil, a pus bazele execuiei out of ordera instruciunilor. De remarcat totui c procesul de dispatch (lansare ainstruciunilor din buffer-ul de prefetch n staiile de rezervare) era de tip in order. La ora actual generaia aceasta este reprezentatprin microprocesoarele superscalare n special, dar i prin cele care optimizeaz prin compilator fluxul de instruciuni, adic cele detip VLIW (Very Long Instruction Word), EPIC (Explicitly Parallel Instruction Computers) etc.

    De civa ani, n laboratoarele de cercetare se ntrezresc cteva soluii privind caracteristicile majore ale urmtoarei generaiiarhitecturale, cea de a IV-a, Din multitudinea realizrilor existente, le-am ales pe acelea care mi s-au prut c mbin doucaracteristici oarecum opuse: revoluionarismul (performana agresiv) cu evoluionismul (compatibilitatea cu paradigma actual amicroprocesorului de uz general). Dintre acestea, cele bazate pe reutilizarea dinamic a instruciunilor precum i cele bazate pepredicia valorilor i deci pe o execuie super-speculativ a instruciunilor. Astzi, accentul principal nu se mai pune pe implementareahardware, ci pe proiectarea arhitecturii. Se pornete de la o arhitectur de baz, care este modificat i mbuntit dinamic, pri nsimulri laborioase pe benchmark-uri reprezentative (pentru procesoarele de uz general Stanford, SPEC etc.).

    O idee interesant bazat pe descentralizarea resurselor are n vedere implementarea mai multor aa numite "Instruction Windows"(IW) - un fel de buffer-e de prefetch i staii de rezervare multiple. Lansarea n execuie a instruciunilor se face pe baza determinriicelor independente din fiecare IW. Desigur c trebuie determinate i dependenele inter - IW- uri. Ideea principal const n execuiaparalel a mai multor secvene de program aflate n IW - uri diferite, bazat pe mai multe uniti funcionale (multithreading). n esenun procesor cu execuii multiple ale instruciunilor este compus din dou mecanisme decuplate: mecanismul de aducere (fetch) ainstruciunilor, pe post de productor i respectiv mecanismul de execuie a instruciunilor, pe post de consumator. Separarea ntrecele dou mecanisme (arhitectur decuplat) se face prin buffer-ele de instruciuni i staiile de rezervare, ca n figura 1.2.Instruciunile de ramificaie i predictoarele hardware aferente acioneaz printr -un mecanism de reacie ntre consumator iproductor.Astfel, n cazul unei predicii eronate, buffer-ul de prefetch trebuie s fie golit mcar parial iar adresa de acces la cache-ulde instruciuni trebuie i ea modificat n concordan cu adresa la care se face saltul.

    1

  • 8/14/2019 Arhitecturi Paralele - Curs

    2/14

    Pe baze statistice se arat c un basic-blockconine, pe programele de uz general, doar 4-6 instruciuni n medie, ceea ce nseamn crata defetch a instruciunilor este limitat la cca. 6, aducerea simultan a mai multor instruciuni fiind inutil ( fetch bottlenecksauFlynns bottleneck).Desigur, aceast limitare fundamental ar avea consecine defavorabile i asupra consumatorului,care ar limita principial i rata mediede execuie a instruciunilor (IR -Issue Rate) la aceast valoare. Progresele semnificative n algoritmii de lansare n execuie impunns depirea acestei bariere. n acest sens, cercetrile actuale insist pe mbuntirea mecanismelor de aducere a instruciunilor prinurmtoarele tehnici: predicia simultan a mai multor ramificaii / tact rezultnd deci rate IR sporite posibilitatea accesrii i aducerii simultane a mai multorbasic- block-uri din cache, chiar dac acestea sunt nealiniate, prin utilizareaunor cache-uri multiport pstrarea unei latene reduse a procesului de aducere a instruciunilor, n contradicie cu cele 2 cerine anterioare

    Ali factori care determin limitarea ratei de fetch a instruciunilor (FR- Fetch Rate) sunt:lrgimea de band limitat a interfeei procesor - cache, miss-urile n cache, prediciile eronate aleramificaiilor etc.n contextul urmtoarei generaii arhitecturale de microprocesoare de nalt performan, cea de a 4-a, se ntrevede de asemeneaimplementarea unor mecanisme de aducere de tip out of ordera instruciunilor, n plus fa de cele deja existente n execuiainstruciunilor. Aceste instruciuni fiind independente de condiia de salt, pot fi chiar lansate n execuie. Cnd predicia se va firealizat sau pur i simplu cnd adresa destinaie a ramificaiei va fi cunoscut, procesorul va relua aducerea instruciunilor de la adresadestinaie a ramificaiei. Aadar o rafinare a conceptelor de execuie speculativ a instruciunilor main, bazat pe predicie sau peconcepte avansate de tip multiflow.Evident, execuia instruciunilor se va face out of order, pe baza dezvoltrii unor algoritmi de tip Tomasulo, mult mai agresivi ns.Staiile de rezervare aferente unitilor de execuie, vor trebui s aib capaciti de peste 2000 de instruciuni.Pentru a evita falsele dependene de date (WAR Write After Read, WAW Write After Write),procesoarele vor avea mecanisme deredenumire dinamic a regitrilor logici. Desigur, tehnicile de schedulingstatic vor trebui mbuntite radical pentru a putea oferiacestor structuri hardware complexe suficient paralelism Se estimeaz atingerea unor rate medii de procesare de 12 -14 instr. /tact,

    considernd c se pot lansa n execuie maximum 32 instr. / tact. La ora actual, cele mai avansate procesoare, cu un potenial teoreticde 6 instr. / tact, ating n realitate doar 1.2 -2.3 instr. /tact .Aceste rate mari de procesare, impun execuia paralel a cca. 8 instruciuniLoad/ Store.Aceasta implic un cache de date primar de tip multiport i unul secundar, de capacitate mai mare dar cu porturi mai puine. Miss-urile pe primul nivel, vor accesa cel de al 2 -lea nivel. Pentru a nu afecta perioada de tact a procesorului, este posibil ca memoria cachedin primul nivel s fie multiplicat fizic n vederea accesrilor paralele. Aadar paralelismul la nivel de instruciuni (ILP -InstructionLevel Parallelism) va fi nlocuit cu unul mai masiv, constituit la nivelul thread-urilor unei aplicaii (TLP - Thread Level Parallelism).n acest scop, arhitectura va trebui s conin mai multe uniti de procesare a trace-urilor, interconectate. La aceasta, se adaug ounitate de control "high-level", n vederea partiionrii programului n thread-uri de instruciuni independente. Se poate ajunge astfella o rat de procesare de mai multe trace-uri / tact fa de instruciuni / tact, metrica de performan obinuit a procesoarelorsuperscalare actuale. E posibil ca aceste TLP-uri s acopere "semanticgap"- ul existent ntre paralelismul la nivel de instruciuni irespectiv cel situat la nivelul programelor, mult mai masiv .1.1 Probleme actuale n predicia branch-urilorDomeniul prediciei branch-urilor n arhitecturile superscalare este unul deosebit de necesar, mai ales din punct de vedere al execuiei

    speculative i paralele a instruciunilor aparinnd mai multorbasic-block-uri. Saltul se predicioneaz n general pe durata fazei deaducere a instruciunilor, permind astfel structurilorpipeline de procesare a instruciunilor s-i continue activitile fr ateptri.Fr predictoare de ramificaii performana microprocesoarelor superscalare ar scdea dramatic avnd n vedere c practic la 1-2 ciclide execuie apare cte un branch. Solutia de tip BTB -Branch Target Buffers a aprut n 1984 (implementat laIntel PentiumIabia n 1995) i a ajuns la apogeu din punct de vedere al performanelor comunicate n 1993,obinnd acuratei ale prediciilor decca. 93% pe benchmark-urile SPEC int . n literatura de specialitate recent se propune o structur de predicie numit "target cache"special dedicat salturilor indirecte prin registru. n acest caz predicia adresei de salt nu se mai face pe baza ultimei adrese int asaltului indirect, ca n schemele de predicie clasice, ci pe baza alegerii uneia dintre ultimele adrese int ale respectivului salt,memorate n structur. Aadar, n acest caz structura de predicie, memoreaz pe parcursul execuiei programului pentru fiecare saltindirect ultimele N adrese int. Predicia se va face deci n acest caz pe baza urmatoarelor informaii: PC-ul saltului, istoria acestuia,precum i ultimele N adrese int nregistrate n structura cache de predicie. O linie din acest cache conine ultimele N adrese int alesaltului mpreun cu tag-ul aferent, semnificnd un context (comprimat) de activare a unei anumite adrese int. Aceste dou/trei sursede informaie binar sunt n general prelucrate prin intermediul unei funcii de dispersie (XOR), rezultnd indexul de adresare ncache i tag-ul (contextul) de verificare aferent. Dup ce adresa int a saltului devine efectiv cunoscut, se va introduce n liniacorespunztoare din cache mpreun cu tag-ul aferent, reprezentnd de fapt contextul de apariie al acelui salt indirect. Principiulprediciei este n acest caz simplu: la acelai pattern de context, aceeai adres int. Prin astfel de scheme, msurat pe benchmark-urile SPEC int'95, acurateea prediciei salturilor indirecte crete i ca urmare, cstigul global asupra timpului de execuie este de cca4.3% - 9%. Problema salturilor indirecte este de mare actualitate, cu precdere n contextul programelor obiectuale, legat mai ales deimplementarea polimorfismelor. n acest caz, adresele de nceput ale diferitelor obiecte vizate sunt nscrise dinamic n registrul deindirectare al saltului care implementeaz polimorfismul. Practic, aici problema prediciei direciei saltului este nlocuit cu una multmai dificil, anume cu aceea a prediciei valorii adresei acestuia.Tot n cadrul problematicii prediciei ramificaiilor de program, se menioneaz faptul c autorul acestei lucrri a propus pentru primadat o idee complet nou, constnd ntr-un predictor neural (PN), destinat prediciei dinamice a branch-urilor, bazat pe un anumit tipde reea neural (LVQ-Learning Vector Quantization, MLP Multilayer Perceptron cu algoritm de nvare de tip backpropagationetc.) [Vin99, Gal93]. Ulterior, ideea a fost preluat i d ezvoltat i de ali cercettori (spre ex. Daniel Jimenez de la UniversitateaAustin, Texas). Aceast abordare face o legatur, aparent surprinztoare, ntre domeniul procesoarelor avansate i cel al recunoateriiformelor utiliznd reele neurale. Ulterior am dezvoltat predictorul neural de branch-uri n sensul nglobrii sale n compilator, prinurmare propunnd un predictor static de ramificaii.

  • 8/14/2019 Arhitecturi Paralele - Curs

    3/14

    Scopul final const aici ntr-o "pre-predicie" realizat prin compilator, care eventual s ajute mai apoi procesele de predicie dinamic(run-time). Firete c utilitatea unui asemenea predictor static este una deosebit avnd n vedere dezideratul optimizrii globale aprogramelor, unde se dorete s se determine trace-urile de program cele mai mari consumatoare de timp, pentru a fi optimizate cudeosebire.PN se bazeaz n esen, n prima sa abordare, pe utilizarea unei reele neuronale (RN) de tip feedforwardcu un strat ascuns, pe postde predictor global al tuturor salturilor din program. n RN de predicie vor intra, ca i n predictoarele clasice, cele 3 informaii cvasi-ortogonale de predicie (PC pe ibii, HRl pe lbii i HRg pe kbii), eventual mpreun cu PC-urile aferente fiecrui bit din HRgpentru ca informaia de predicie s fie una mai complet .Pe baza procesrii acestor informaii binare, reeaua va prediciona printr-unbit de ieire, comportamentul viitor al saltului (taken / not taken).

    1.2 Execuia speculativ i predicativ a instruciunilorExist n esen 2 tipuri de speculaii: de control (cnd o instruciune aflat n program dup un salt condiionat se execut nainteaacestuia cu influen benefic asupra timpului de execuie) i respectiv de date (spre exemplu, cnd o instruciune tip load situat nprogram dup o instruciune tip store se execut naintea acesteia, cu beneficii asupra timpului de execuie datorate mascrii lateneiinstruciunii de ncrcare). Pentru a exemplifica n mod concret o speculaie de control se consider secvena de program aferentprocesorului pe 64 de biiIntel Ithanium:n continuare se prezint un exemplu sugestiv n legtur cu avantajele/dezavantajele execuiei predicative a instruciunilor ncadrul arhitecturiiIntel Ithanium. Se consider secvena if then else ca mai jos :if (r4)r3 = r2 + r1 ; 2 ciclielser3 = r2 r1utilizare r3 ; ; 18 cicliS-a considerat deci c ramificaia if are latena de 2 cicli procesor iar ramificaia else de 18 cicli procesor. Secvena va fi

    compilat prin instruciuni gardate, eliminndu-se instruciunile de ramificaie, ca mai jos:cmpne p1,p2 = r4,r0 ;0/0 compar pe diferit(p1) add r3 =r2,r1 ;1/1 adunare ntregi(p2) setff1=r1 ;1/1 conversie ntreg flotant(p2) setff2=r2 ;1/1(p2) xma.l f3=f1,f2 ;9/2 nmulire f1xf2 (flotant)(p2) getfr3=f3 ;15/3 conversie flotant ntreg(p2) utilizare r3 ;17/4n comentariu, imediat dup semnul ;, sunt scrise 2 cifre: prima semific numrul ciclului n care instruciunea respectiv va filansat n execuie dac variabila de gard p1 = 1 (true) iar a 2a acelai lucru n cazul contrar p1 = 0 (implicit p2 = 1). Considerndacum c instruciunea setf dureaz 8 cicli, getf 2 cicli, xma 6 cicli i c o predicie incorect a branch-ului cost procesorul 10cicli (pt. restaurarea strii), se pot analiza 2 cazuri complementare sugestive.Cazul ISe presupune c ramura if se execut 70% din timp iar acurateea prediciei branch-ului din codul iniial (nepredicativ) este 90%.

    Timpul de execuie al secvenei iniiale este:(2 cicli x 70%) + (18 cicli x 30%) + (10 cicli x 10%) = 7.8 cicliTimpul de execuie al secvenei compilate prin predicare este:

    (5 cicli x 70%) + (18 cicli x 30%) = 8.9 ciclin acest caz execuia predicativ este neeficient.Cazul IISe presupune c ramura if se execut 30% din timp i c acurateea prediciei branch-uluieste acum de doar 70%. Timpul de execuie al secvenei iniiale este:

    (2 cicli x 30%) + (18 cicli x 70%( + (10 cicli x 30%) = 16.2 cicliTimpul de execuie al secvenei compilate prin predicare este:

    (5 cicli x 30%) + (18 cicli x 70%) = 14.1 ciclin acest al 2-lea caz execuia predicativ este mai eficient, micornd timpul mediu de execuie cu mai mult de 2 cicli.Dup cum sepoate observa, instruciunile din al 2-lea basic-block(ADD i SUB) au migrat n primul. A stfel, ele se execut speculativ curepercursiuni favorabile asupra timpului de execuie. Totodat, migrarea instruciunilor spre basicblock-uri precedente, conduce la

  • 8/14/2019 Arhitecturi Paralele - Curs

    4/14

    mrirea acestorbasic-block-uri i deci la creterea gradului de paralelism prin posibila execuie paralel a unor instruciuni aparinnd,iniial, unorbasic-block-uridiferite. De remarcat c o instruciune poate migra teoretic peste k basic-block-uri precedente prin gardarea sa cu un produs de tip Ilogic peste kvariabile de gard (astfel, optimizatoarele de cod determin instruciunile s migreze n sus, precum bulele de sifon, cas folosesc o comparaie plastic). Astfel de tehnici de optimizare static numite n literatur i percolation scheduling techniques -caracterizeaz microprocesoarele generaiei urmtoare n ciuda unor dezavantaje legate de evalurile grzilor instruciunilorcondiionate, prezentate nSUB R1, R2, R3 SUB R1, R2, R3LT B8, R1, #10 LT B8, R1, #10BT B8, Adr FB8 ADD R7,R8, R1; speculativADD R7, R8, R1 FB8 SUB R10, R7, R4; speculativ

    SUB R10, R7, R4 BT B8, Adr1.3 Reutilizarea instruciunilor prin procesoare de tip trace-cacheO paradigm interesant, situat n prelungirea conceptului de superscalaritate i care poate constitui o soluie inedit fa de limitrileanterior menionate ale arhitecturilor superscalare, de tip fetch bottleneck, o constituie trace-procesorul, adic un procesorsuperscalar avnd o memorie trace-cache (TC). Ca i cache-urile de instruciuni (IC), TC este accesat cu adresa de nceput a nouluibloc de instruciuni ce trebuie executat, n paralel cu IC. n caz de miss n TC, instruciunea va fi adus din IC sau - n caz de miss iaici - din memoria principal. Spre deosebire ns de IC, TC memoreaz instruciuni contigue din punct de vedere al secvenei lor deexecuie, n locaii contigue de memorie. O linie din TC memoreaz un segment de instruciuni executate dinamic i secvenial nprogram (trace-segment). Evident, un tracepoate conine mai multe basic-block-uri (uniti secveniale de program). Aadar, o linieTC poate conine N instruciuni sau M basicblock-uri, N>M, nscrise pe parcursul execuiei lor.

    Memoria TC este accesat cu adresa de nceput a basic-block-ului A, n paralel cu predictorul multiplu de salturi (vezi figura 1.7).Acesta, spre deosebire de un predictor simplu, predicioneaz nu doar adresa de nceput a urmtorului basic- blockce trebuie executatci toate cele (M-1) adrese de nceput aferente urmtoarelor (M-1) basic- block-uri care urmeaz dup blocul A. Cei (M -1) bii generaide ctre predictorul multiplu (taken/ not taken) selecteaz spre logica de execuie doar acele blocuri din linia TC care suntpredicionate c se vor executa (n cazul acesta doar blocurile A i B ntruct predictorul a selectat c se vor executa blocurile ABD, ntimp ce n linia TC erau memorate blocurile ABC).O linie din TC conine n principiu:- N instruciuni n form decodificat, fiecare avnd specificat blocul creia i aparine.- cele 2M-1 posibile adrese destinaie aferente celor M blocuri stocate n linia TC.- un cmp care codific numrul i "direciile" salturilor memorate n linia TC.nainte de a fi memorate n TC, instruciunile pot fi pre -decodificate n scopul nscrierii n TC a unor informaii legate dedependenele de date ce caracterizeaz instruciunile din linia TC curent. Aceste informaii vor facilita procese precum bypassing-uldatelor ntre unitile de execuie, redenumirea dinamic a regitrilor cauzatori de dependene WAR (Write After Read) sau WAW(Write After Write) ntre instruciuni etc., utile n vederea procesrii out of ordera instruciunilor. O linie din TC poate avea diferite

    grade de asociativitate n sensul n care ea poate conine mai multe pattern-uri de blocuri, toate avnd desigur aceeai adres denceput (A), ca n figura 1.8.

    Aadar, n acest caz, segmentele ncepnd de la aceeai adres (A), sunt memorate n aceeai linie asociativ din TC. Ca i nstructurile TC neasociative, verificarea validitii liniei selectate se face prin compararea (cutarea) dup tag. Deosebirea de esenconst n faptul c aici este necesar selectarea - n conformitate cu pattern-ul generat de ctre predictorul multiplu - trace-ului celmai lung dintre cele coninute n linia respectiv. Este posibil ca aceast selecie complex s dureze mai mult dect n cazulneasociativ i prin urmare s se repercuteze negativ asupra duratei procesului de aducere a instruciunilor (fetch). Avantajul principalns, dup cum se observ i n figura 1.8,const n faptul c este probabil s se furnizeze procesorului un numr de blocuri "mai lung"dect un TC simplu. Astfel de exemplu, dac pattern-ul real de blocuri executate este ABD, structura TC l va furniza fr probleme,n schimb o structur TC neasociativ ce conine doarpattern-ul ABC, evident va furniza n aceast situaie doar blocurile AB.Pe msur ce un grup de instruciuni este procesat, el este ncrcat ntr -o aa-numit "fill unit"(FU-unitate de pregtire). Rolul FU estede a asambla instruciunile dinamice, pe msur ce acestea sunt executate, ntr-un trace-segment. Segmentele astfel obinute suntmemorate n TC. Dup cum am mai subliniat, este posibil ca nainte de scrierea segmentului n TC, FU s analizeze instruciunile din

  • 8/14/2019 Arhitecturi Paralele - Curs

    5/14

    cadrul unui segment spre a marca explicit dependenele dintre ele. Acest lucru va uura mai apoi lansarea n execuie a acestorinstruciuni ntruct ele vor fi aduse din TC i introduse direct n staiile de rezervare aferente unitilor funcionale. Unitatea FU seocup deci de colectarea instruciunilor lansate n execuie, asamblarea lor ntr -un grup de N instruciuni (sau M blocuri) i nscriereaunui asemenea grup ntr-o anumit linie din TC. Exist desigur cazuri cnd FU poate crea copii multiple ale unor blocuri n TC.Aceast redundan informaional poate implica degradri ale performanei, dar pe de alt parte, lipsa redundanei ar degradavaloarea ratei defetch a instruciunilor deci i performana global.

    Se poate deci afirma c un TC exploateaz reutilizarea eficient a secvenelor dinamice de instruciuni, reprocesate frecvent n baza a2 motive de principiu: localizarea temporal a trace-ului i respectiv comportarea predictibil a salturilor, determinabil n virtuteacomportrii lor anterioare. Aadar, TC memoreaz trace-uri n scopul eficientizrii execuiei programului i nu doar n scopuleficientizrii procesului de aducere a instruciunilor. Aceasta, pe motiv c un segment din trace conine numai instruciuni care se vorexecuta.La ora actual, procesorulIntel Pentium IVreprezint primul procesor comercial care nlocuiete nivelul L1 de cache clasic cu un

    Execution Trace Cache. De asemenea, alte caracteristici arhitecturale pentru respectivul procesor constituie: integrarea a 42 milioanede tranzistori, un pipeline ce poate funciona pe 20 de nivele, expedierea simultan spre execuie a 4 instruciuni per perioad de tactprocesor, o magistral ce va funciona la frecvena de 400 MHz, rata de transfer la memorie ajungnd astfel la 3,2 Gb/s .O extensie a reutilizrii dinamice a instruciunilor, focalizat ns pe rezolvarea limitrilor de execuie ale procesoarelor superscalare(issue bottleneck), este prezentat n capitolul 2 al acestei cri, mpreun cu legturile ntre conceptul de reutilizare i respectiv acelade predicie a valorilor instruciunilor, acesta din urm att de util n implementarea execuiilor speculative.Se definete i se analizeaz conceptul localitii (vecintii) valorilor i se dovedete c gradul de vecintate este unulsemnificativ. Pe aceast baz apare ca natural ideea prediciei valorilor instruciunilor i se prezint, n urma unei bogate cercetribibliografice a articolelor tiinifice importante din ultimii ani, n mod sistematizat, schemele importante de predicie a valorilor.Predicia valorilor instruciunilor determin execuia speculativ a acestor instruciuni, grbindu-se astfel procesarea n modsemnificativ. n fond, problema prediciei valorilor reprezint o generalizare a celei a prediciei branch-urilor, prezentat succint chiarn cadrul acestui capitol. n esen, punctul comun al arhitecturilor cu reutilizare dinamic a instruciunilor i respectiv celor cupredicie a valorilor, const n reducerea timpului de execuie aferent cii critice a programului, cea care consum cel mai mult timp.Revoluionarismul acestor tehnici const n faptul c ele acioneaz eficient asupra celei mai importante limitri a procesrii

    numerice actuale i anume aceea dat de secvenialitatea intrinsec a instruciunilor programului. Evoluionarismul tehnicilorprezentate succint const n faptul c ele se grefeaz cu naturalee n cadrul modelului superscalar, dominant la ora actual ndomeniul microprocesoarelor comerciale de uz general i nu afecteaz cerinele de compatibilitate cerute de tradiie.Practic procesarea multithreada migrat prin aceste microprocesoare, din software nspre hardware. Procesarea speculativ este

    prezent i aici pentru c pe aceast baz se determin n mod dinamic firele speculative de execuie din cadrul programului. Acestefire sunt executate apoi multiplexat n timp, de ctre o microarhitectur care trebuie s fie adaptat special la acest tip de procesare.Performanele obinute n urma simulrilor sunt remarcabile. Se arat c predicia valorilor instruciunilor poate fi integrat n modsinergic n cadrul acestor microarhitecturi de tip multithread.2.1 Reutilizarea dinamic a instruciunilorIat deci cum un concept fundamental i fecund n actuala inginerie a calculatoarelor, anume acela de reutilizare, migreaz practic din

    software i nspre hardware (vertical migration). O instruciune dinamic este reutilizabil dac ea opereaz asupra acelorai intrrii produce aceleai rezultate precum o instan anterioar a aceleiai instruc iuni. Ideea de baz este c dac o secven de instruciunise reia n acelai context de intrare, atunci execuia sa nu mai are sens, fiind suficient o simpl actualizare a contextului de ieire,n concordan cu unul precedent memorat n anumite structuri de date hardware. Se reduce astfel numrul de instruciuni executate

    dinamic, putndu-se aciona direct chiar asupra dependenelor de date ntre instruciuni. Aadar, instruciunile reutilizate nu se vor maiexecuta din nou, ci pur i simplu contextul procesorului va fi actualizat n conformitate cu aciunea acestor instruciuni, bazat peistoria lor memorat.Mai puin de 20% din numrul instruciunilor statice care sunt repetate genereaz peste 90% dintre instruciunilor dinamice repetate.n medie armonic, msurat pe benchmark-urile SPEC 95 (Standard Performance Evaluation Corporation), 26% dintre instruciuniledinamice sunt reutilizabile.Pentru o mai bun nelegere a fenomenului de repetiie a instruciunilor, execuia dinamic a programelor este analizat pe treiniveluri: global, al funciei i respectiv local (n interiorul funciei). n analiza global, pattern-urile de date utilizate n programesunt reinute ca entiti ntregi i determinate sursele de repetiie ale instruciunilor ( intrri externe, iniializri globale de date sauvalori interne ale programelor). ntruct repetiia instruciunilor se datoreaz n mare msur ultimelor dou surse de repetiie, seimpune concluzia n virtutea creia fenomenul de repetiie este mai mult o proprietate a modului n care calculul este exprimat prinprogram i mai puin o proprietate a datelor de intrare. Concluziile generate n urma analizei la nivel de funcie,sunt c de foartemulte ori funciile sunt invocate repetat cu exact aceleai valori ale parametrilor de intrare i c relativ puine apeluri de funcii nu auargumente repetate. Chiar i n cazul unor apeluri repetate ale unei funcii cu parametrii de intrare diferii, procentajul de instruciuni

  • 8/14/2019 Arhitecturi Paralele - Curs

    6/14

    dinamice reutilizabile poate fi unul semnificativ. La nivelul analizei locale, instruciunile funciilor/procedurilor sunt clasificate nfuncie de sursa valorilor folosite (ex: argumentele funciei, date globale, valori returnate de alte funcii etc.) i n funcie de sarcinarealizat (ex: salvare - restaurare regitri, prolog - epilog, calcul adrese globale etc.). Majoritatea repetiiei instruciunilor se datoreazvalorilor globale sau argumentelor funciei dar i funciilor prolog i epilog.Bazat n principal pe premisele anterior expuse, cercettorii americani A. Sodanii G. Sohidezvolt 3 scheme de reutilizare dinamica instruciunilor, primele dou la nivel de instruciune iar ultima, la nivel de lan de instruciuni dependente RAW (Read After Write).Instruciunile deja executate, se memoreaz ntr-un mic cache numit buffer de reutilizare (Reuse Buffer - RB). Acesta poate fi adresatcu PC-ul (Program Counter) pe timpul fazei de aducere a instruciunilor (IF Instruction Fetch) avnd i un mecanism pentruinvalidarea selectiv a unor intrri bazat pe aciunile anumitor evenimente. Desigur c acest RB trebuie s permit i un mecanism detestare a reutilizabilitii instruciunii selectate. Testul de reutilizare verific dac informaia accesat din RB reprezint un rezultatreutilizabil sau nu. Detaliile de implementare ale testului depind de fiecare schem de reutilizare folosit. De asemenea, trebuie tratate

    dou aspecte privind managementul RB:stabilirea instruciunii care va fi plasat n buffer i meninerea consistenei buffer -ului de reutilizare.

    Considernd un procesor superscalar care poate aduce, decodifica i executa maximum 4 instruciuni / ciclu,secvena anterioar se proceseaz ca n cele dou figuri urmtoare (figurile 2.5, 2.6).

    Rezumnd, se desprind cteva avantaje introduse de tehnica de reutilizare dinamic a instruciunilor i anume: Scurtcircuitarea unor nivele din structura pipe de ctre instruciunile reutilizate, reducnd presiunea asupra resurselor (staii derezervare, uniti funcionale, porturi ale cache-urilor de date etc.) necesare altor instruciuni aflate n ateptare.

    La reutilizarea unei instruciuni rezultatul su devine cunoscut mai devreme dect n situaia n care s-ar procesa normal, permindn consecin altor instruciuni dependente de aceste rezultate s fie executate mai rapid. Reduce penalitatea datorat prediciei eronate a adreselor destinaie n cazul instruciunilor de salt, prin reutilizarea, fie i parial,codului succesor punctului de convergen (squash reuse). Comprimarea dependenelor de date determin mbuntirea timpului de execuie al instruciunilor crescnd gradul de paralelism alarhitecturii. Procentajul de reutilizare al instruciunilor dinamice, calculat pe benchmark-urile SPEC 95, este semnificativ, ajungndu-se lavalori maxime de 76%. Accelerarea obinut fa de modelul superscalar pe aceleai programe de test nu este la fel de pronunat ca i procentajul dereutilizare (medii de 7-15%), valoarea maxim atins fiind de 43%.

  • 8/14/2019 Arhitecturi Paralele - Curs

    7/14

    2.2 Localitatea (vecintatea) i predicia valoriiO alt tehnic hardware, i ea relativ recent dezvoltat (1996, 1997), care urmrete, oarecum similar cu tehnica anterioar,exploatarea redundanei existente n programe prin comprimarea dinamic a dependenelor de date, o reprezint predicia valorilorinstruciunilor (Value Prediction). Dei ambele tehnici urmresc reducerea timpului de execuie al programelor prin eliminareaconstrngerilor legate de dependenele de date ale fluxului de instruciuni, exist totui diferene, chiar majore privind unele aspecte,legate de modul de interaciune al fiecrei tehnici n parte cu celelalte caracteristici microarhitecturale. De asemenea, se pun problemerelativ la modul de determinare speculativ (predicia valorii) sau non-speculativ (reutilizarea instruciunilor) aredundanei n programele de uz general, avantajele i dezavantajele implicate de fiecare tehnic, cantitatea de redundan captat defiecare tehnic n parte etc. nainte de a face cunoscute i a nelege diferenele existente ntre predicia valorilor i reutilizareainstruciunilor se vor descrie cteva caracteristici i aspecte legate de conceptul de localitate a valorii i respectiv predicie a valorilor.Localitatea (vecintatea) valorii reprezint o a treia dimensiune a conceptului de localitate (pe lng cea temporal i respectiv

    spaial, frecvent ntlnite n programele de uz general), descriind probabilitatea statistic de referire a unei valori anterior folosite istocat n aceeai locaie de memorie sau registru. Conceptul de localitate a valorii introdus n premier deM. Lipastiet co. n[Lip96a] este strns legat de calculul redundant (repetarea execuiei unei operaii cu aceiai operanzi). Diferena de esen ntrelocalitile temporale i spaiale i respectiv localitatea valorilor const n faptul c primele dou sunt focalizate pe adrese, n timp ceultima este centrat pe rezultatele produse. Mai precis, localitatea temporal se refer la probabilitatea ca oanumit adres coninnd o instruciune sau o dat s fie referit din nou n viitorul apropiat, n timp ce localitatea valoriise refer la faptul c rezultatul unei instruciuni care este din nou procesat, s se repete. Exploatarea localitilor spaiale itemporale se face n principal prin sisteme ierarhizate de memorii cache care reduc latena memoriilor principale, n timp celocalitatea valorilor implic predicia acestora n vederea execuiilor speculative a instruciunilor.Avnd n vedere semnificaia i tradiia noiunii de vecintate n literatura romneasc dedicat analizei matematice i teorieimulimilor, exprimm i noi opinia c aceasta ar fi poate mai potrivit dect termenul de localitate care s-a cam impus din pcate lanoi, datorit traducerii nu tocmai potrivite n acest context cuvntului englezesc locality .Convingerea c "vecintatea valorilor"exist, are la baz rezultate statistice obinute prin simulare la nivel de execuie a instruciunilor pe benchmark-urile SPEC 95.Conceptul de localizare a valorilor se refer practic la o corelaie dinamic ntre numele unei resurse (registru, locaie de memorie,

    port I/O) i valoarea stocat n acea resurs.Dac memoriile cache convenionale se bazeaz pe localitatea temporal i spaial a datelor pentru a reduce timpul mediu de acces lamemoria principal, tehnica LVP exploateaz vecintatea valorii prin predicia acestei valori, reducnd att timpul mediu de acces lamemorie ct i necesarul de lrgime de band al memoriei (se efectueaz mai puine accese la memoria central), asigurnd astfel unctig de performan considerabil. Desigur c toate aceste avantaje se obin simultan cu reducerea considerabil a presiunii asupramemoriilor cache. Ca i consecin a prediciei valorilor se reduc i efectele defavorabile ale dependenelor RAW, prin reducereaateptrilor instruciunilor dependente ulterioare. Dac instruciunile predicionate se afl pe calea critic a programului, cea mai mareconsumatoare de timp, execuia acesteia se comprim n mod considerabil.Predicia dinamic a valorilor instruciunilor reprezint o tehnic relativ recent, care permite execuia speculativ a instruciunilordependente RAW, prin predicia rezultatelor acestora, reducndu-se astfel n mod semnificativ latena de execuie a cii critice aprogramului.Localitatea valorilor este justificat de cteva observaii empirice desprinse din programele de uz general, medii i sisteme de operarediverse: Redundana datelor seturile de intrri de date pentru programele de uz general sufer mici modificri (Ex: matrici rare, fiiere textcu spaii goale i oricum cu multe simboluri repetitive). Verificarea erorilor tehnica LVP poate fi benefic n gestionarea tabelelor de erori ale compilatoarelor, n cazul apariiei unor erorirepetate. Constante n program deseori este mult mai eficient ca programele s ncarce constante situate n structuri de date din memorie,ceea ce este exploatat favorabil prin tehnica LVP. Calcululul adreselor instruciunilor de salt n situaia instruciunilorcase (switch n C)compilatorul trebuie s genereze cod carencarc ntr-un registru adresa de baz pentru branch,care este o constant (predicia adreselor destinaie pentru instruciunile de salt). Apelul funciilor virtuale n acest caz compilatorul trebuie s genereze cod care ncarc un pointer de funcie, care este o constantn momentul rulrii.Iat deci c problematica prediciei (n latin prae nainte, dicere a spune) n microprocesoarele avansate, tinde s devinuna general i ca urmare implementat pe baza unor principii teoretice mai generale i mai elevate. Aceasta are drept scop principali imediat, execuia speculativ agresiv a instruciunilor, cu beneficii evidente n creterea gradului mediu de paralelism.

  • 8/14/2019 Arhitecturi Paralele - Curs

    8/14

    TehnicaLoad Value Prediction, spre deosebire de alte tehnici speculative, cum ar fi mecanismul de aducere anticipat ainstruciunilor sau predicia ramificaiilor de program, reduce i nu crete necesarul de lrgime de band al memoriei. De asemenea,disponibilitatea foarte devreme (la nceputul fazei de aducere a instruciunii IF) a indecilor de accesare a tabelelor LVPT i LCT(accesul la respectivele tabele putnd fi pipeline-izat peste dou sau mai multe niveluri), complexitatea relativ redus n proiectare irealizarea de tabele relativ mari fr a afecta perioada de tact a procesorului, sunt caracteristici care fac tehnica LVP atractiv pentruproiectanii de viitoare microarhitecturi. Primele cercetri au artat o cretere de performan medie de cca. 6% datorat implementriiacestei tehnici.

    A. Last Value PredictorsUn tip relativ ntlnit de astfel de predictoare sunt aa numitele last value predictors,caracterizate prin faptul c predicioneaz nouavaloare ca fiind aceiai cu ultima valoare produs de ctre instruciunea respectiv.

    B. Predictoare incrementalen acest caz, considernd c vn-1 i vn-2 sunt cele mai recente valori produse, noua valoare vn va fi calculat dup formula derecuren: vn = vn-1 + (vn-1 - vn-2), unde (vn-1 - vn-2) este pasul secvenei.Desigur c pasul ar putea fi i variabil, nu neaprat constant tot timpul (constant doar pe anumite intervale de timp). n aceast idee sepropun i n acest caz scheme de actualizare a pasului bazate pe histerezis. Astfel, pasul memorat n tabelele de predicie estemodificat numai atunci cnd numrtorul saturat asociat, memoreaz o valoare situat peste un prag stabilit. Firete, ac est numrtor

  • 8/14/2019 Arhitecturi Paralele - Curs

    9/14

    este incrementat/decrementat n cazul unei predicii corecte/incorecte, respectiv. n figura urmtoare (Fig.2.12) se prezint o structurtipic de predictor incremental (pas constant).

    O aciune important n cadrul unui predictor incremental este constituit de detecia pasului.Prima dat cnd o instruciune va fi procesat, va rezulta un miss n tabela de predicie VHT i evident c nu se va face nici opredicie. Cnd o instruciune produce un rezultat atunci: (1) rezultatul este memorat n cmpul Val din VHT i (2) automatul trecen starea iniial Init (vezi figura 2.13). Att timp ct eventuale urmtoare instane succesive ale aceleiai instruciuni produc acelairezultat (pas=0), automatul va ramne n starea iniial. Dac ns o instan urmtoare a instruciunii produce un rezultat (R1) diferitde precedentul, atunci se calculeaz pasul S1=R1-Val VHT i R1 VHT. Totodat automatul trece n starea intermediarTranziie. Dac n aceast stare apare o nou instan dinamic a instruciunii, nu se va genera nici o predicie.n schimb S2=R2-Val VHT i R2 VHT. Dac S1 = S2 atunci automatul trece n starea Stabil, altfel rmne n stareaTranziie. n starea stabil, valoarea prezis = R2 +S2. Cu alte cuvinte, acest automat de stare implementeaz un anumit grad dencredere asociat prediciei. Predicia nu se face dect n cazul n care pragul de ncredere (Confidence Threshold) depete oanumit valoare, apriori determinat.2.2.2.2 Predictoare contextualeO clas important a predictoarelor contextuale sunt cele care implementeaz algoritmul Prediction byPartial Matching (PPM),

    care conine un set de predictoare markoviene ca n figura urmtoare (Figura 2.14). Ideea originar aparine lui Trevor Mudge cel carea folosit-o pentru prima dat n scopul dezvoltrii unor predictoare de branch-uri care generalizau binecunoscutele predictoare de tipadaptiv pe dou niveluri (Two Level Adaptive Branch Predictors) i care sunt reprezentate n capitolul precedent, figura 1.4

    Desigur c valoarea predicionat este aceea care a urmat cu cea mai mare frecven contextului considerat. Dup cum se observ nfigura 2.14, ea este funcie i de contextul considerat, un context mai bogat (lung) conducnd adeseori la o acuratee mai ridicata prediciei (nu ntotdeauna ns: dup cum am mai subliniat, cteodat contextul se poate comporta ca zgomot.n se definesc dou caracteristici importante n nelegerea comportrii unui predictor.Prima, este perioada de nvare (Learning Time- LT), care reprezint numrul de valori din secvena de intrare, generate naintea primei predicii corecte. A 2-a este dat de gradul denvare sau acurateea prediciei (Learning Degree - LD), care reprezint procentajul de predicii corecte generate dup perioada denvare a predictorului.

  • 8/14/2019 Arhitecturi Paralele - Curs

    10/14

    2.2.2.4 Predictoare hibrideDin acest motiv a aprut ca natural ideea prediciei hibride, adic dou sau mai multe predictoare de valori s conlucreze n moddinamic n procesul de predicie. Spre exemplificare, n se prezint un interesant predictor hibrid compus dintr -un predictor pe 2niveluri i respectiv un predictor incremental (v. Fig. 2.20). Ideea de baz este simpl: dac predictorul pe 2 niveluri genereaz opredicie, aceasta este cea generat de ctre predictorul hibrid, n caz contrar, se selecteaz valoarea generat de ctre predictorulincremental (dac acesta genereaz vreuna).

    2.3 Cteva concluziiDup prezentarea celor dou tehnici de exploatare a redundanei din program prin eliminarea dependenelor de date, IR (instructionreuse) i VP (value prediction), evideniem succint diferenele existente precum i modalitile diferite de abordare a problemeireducerii cii critice de execuie a instruciunilor ntr-un program.VP este o tehnic speculativ care predicioneaz rezultatele instruciunilor bazat pe rezultatele cunoscute anterior, efectueazoperaiile folosind valorile prezise iar execuia speculativ este confirmat la un moment ulterior - late validation - cnd valorilecorecte devin disponibile,deci dup execuia instruciunii. n cazul unei predicii corecte, calea critic este redus ntructinstruciunile care s-ar executa secvenial n mod normal, pot fi executate n paralel. n caz contrar, instruciunile executate cu intrrieronate trebuiesc reexecutate, cu penalizrile corespunztoare de timp. Utilizarea prediciei i speculaiei necesit mecanismededicate pentru: Verificarea corectitudinii prediciei Refacerea contextului CPU n urma unei predicii eronate ( recovery) Informarea urmtoarelor secvene de instruciuni dependente asupra valorilor speculative pe care acestea le vor folosi. Aceste valorisunt memorate ntr-o structur special numitPrediction RegisterFile .

    IR este o tehnic nespeculativ care recunoate un lan de instruciuni dependente executat anterior i nu-l mai execut din nou - earlyvalidation - actualiznd doar diferite date (rezultatele) n tabelele hardware aferente. Astfel, IR comprim un lan de instruciuni dincalea critic de execuie a programului, ca i VP de altfel, dar ntr -un mod diferit.Figura 2.22 prezint comparativ implementarea nstructura pipeline a unei microarhitecturi a celor dou mecanisme: (a) - Value Prediction i respectiv (b) -Instruction Reuse.

    VP capteaz mai mult redundan din program dect IR. Deoarece IR valideaz rezultatele devreme n structura pipe, bazat pe intrri,pot apare urmtoarele situaii dezavantajoase: dac intrrile unei instruciuni nu sunt disponibile n momentul realizrii testului dereutilizare atunci respectiva instruciune nu va fi reutilizat. Din pcate, o instruciune care produce un rezultat identic cu unulanterior, dar cu intrri diferite (operaii logice, instruciuni Load etc.), nu va fi reutilizat. n schimb, VP poate realiza predicii corecten ambele situaii prezentate mai sus ntruct valorile prezise nu depind de disponibilitatea intrrilor n structura pipe i nici deimportana faptului ca ele s fie sau nu identice cu instanele anterioare ale aceleiai instruciun i.Cele dou tehnici interacioneaz diferit cu mecanismul de predicie a branch-urilor. IR reduce penalitatea datorat unei prediciigreite a salturilor din dou motive. n primul rnd, cnd un branch (salt condiionat) predicionat greit este reutilizat, predicia

  • 8/14/2019 Arhitecturi Paralele - Curs

    11/14

    eronat este detectat mai devreme (n faza de decodificare) dect s-ar realiza dac saltul s-ar executa. Al doilea motiv l constituieposibila convergen a codului n programe. Astfel prin posibila reutilizare a codului existent dup punctul de convergen a cilor deexecuie, i care n cazul superscalar este evacuat n cazul unei predicii eronate n mod ironic, tehnica IR mbuntete timpul deexecuie al programelor. Pe de alt parte, VP poate crete penalitatea introdus de un branch greit predicionat din urmtoarelemotive: cauzeaz predicii eronate suplimentare i prin ntrzierea rezolvrii saltului respectiv (ateptndu-se ca operanzii si sdevin disponibili - dup calculul i verificarea acestora).VP i IR influeneaz concurena asupra resurselor prin schimbarea att a pattern-ului n care resursele sunt folosite ct i a cereriiefectuate. Prin comprimarea dependenelor de date, cele dou tehnici determin execuia mai devreme a instruciunilor. ntruct oinstruciune reutilizat nu se execut, IR tinde s reduc concurena la resurse. Sunt eliberate astfel resurse i puse la dispoziia altorinstruciuni concurente. VP determin creterea cererii de resurse ntruct instruciunile care se execut cu operanzi eronai se vorreexecuta. Execuia acestor instruciuni poate fi reluat de mai multe ori dac valorile sunt predicionate greit n mod repetat.

    Impactul tehnicilor IR i VP asupra latenei de execuie a instruciunilor este de asemenea antagonist. IR scade latena de execuie aoperaiilor individuale de la mai muli cicli la doar un singur ciclu (latena de reutilizare a unei instruciuni). n schimb, VP nuscurtcircuiteaz execuia - instruciunile trebuind s se execute pentru a verifica ulterior predicia. Timpul total de execuie a uneiinstruciuni va fi limitat astfel de latena sa de execuie i verificare. Ctigul aici const n faptul c se deblocheaz instruciunidependente prin procesul de predicie a valorii. n opinia mea, ambele tehnici sunt extrem de atractive pentru microprocesoarelegeneraiei urmtoare pentru c, dei sunt foarte performante acionnd asupra unor secvenialiti considerate imuabile, se grefeazfavorabil pe actuala paradigm superscalar a microprocesoarelor de uz general.

    3.5 Cteva concluziiEvalurile arhitecturilor propuse s-au realizat folosind un simulator de tip execution-driven,instrument indispensabil oricreiinvestigaii constructive n domeniul arhitecturilor de calcul. Am artat modul principial de dezvoltare a unui asemenea simulator,provenit din modificarea unuia aparinnd setului SimpleScalar. S-a ajuns la concluzia c cele mai performante tabele de prediciesunt cele asociative i c dimensiunea optim a acestora, n contextul utilizat, este de 512 locaii. S a continuat apoi cu evaluareaarhitecturilor care folosesc istoria valorilor: predictoare incrementale, contextuale i respectiv hibride. S-a determinat prin simulare, cdimensiunea optim a ferestrei de cutare pentru predictoarele contextuale este de 4 valori (ultimele produse). S-a prezentat apoi ocomparaie a celor patru tehnici de predicie utilizate (figurile 3.19 i 3.20). Cu cele maiperformante predictoare, cele hibride, s-a obinut o acuratee medie a prediciei de 65% atunci cnd s-a folosit adresa instruciunii irespectiv o acuratee de 69% atunci cnd s-a folosit adresa datei.

    Predictoarele hibride sunt sinergice i exploateaz cel mai eficient conceptul de localitate a valorilor.n tabelul urmtor (Tab. 3.6) se prezint rezultatele obinute cu cele patru tipuri de predictoare studiate, n sensul acurateilor depredicie. Aceste valori reprezint mediile aritmetice ale acurateilor de predicie.

    Tabelul 3.7 prezint creterea relativ a performanei obinut cu predictorul incremental,contextual i cel hibrid fa de predictorul detip last value.

    Se poate observa, c adunnd creterea adus de predictorul incremental cu creterea adus de predictorul contextual, se obine ovaloare mai mare dect creterea adus de predictorul hibrid,indiferent de tipul adresei utilizate. Acest lucru se poate datora i faptuluic predictorul hibrid implementat acord ntotdeauna prioritate predictorului contextual, cel incremental fiind folosit doar atunci cndacesta nu poate genera o predicie. Evident, soluia aceasta este lipsit de flexibilitate. O posibil soluie mai bun pentru rezolvareaacestei probleme ar fi s se implementeze dou automate n fiecare locaie a tabelei de predicie, unul pentru predictorul incremental inc unul pentru cel contextual. Va avea prioritate predictorul al crui numrtor asociat (grad de ncredere) are valoarea mai mare, laun moment dat. n cazul n care cele dou valori sunt egale, predictorului contextual i se acord prioritate.De asemenea s-a propus ideea novatoare a prediciei valorilor la nivel de registru general,artndu-se pe baz de simulare c existanumii regitri prefereniali, cu un grad ridicat de vecintate a valorilor i implicit cu posibiliti mari de predicionare a acestora.

  • 8/14/2019 Arhitecturi Paralele - Curs

    12/14

  • 8/14/2019 Arhitecturi Paralele - Curs

    13/14

    prin ntreeserea instruciunilor n fiecare ciclu ("cycle by cycle interleaving"), adic n fiecare ciclu CPU o instruciune dintr-un altthread este adus i lansat n structura pipeline. prin ntreeserea blocurilor de instruciuni, adic instruciunile dintr-un thread sunt,executate pn cnd apare un hazard ce produce olaten. Acest eveniment implic o comutare de context, deci sunt activate instruciunile din alt bloc (blockinterleaving ). multithreading simultan ("simultaneous multithreading"), care const ntr-o combinare a multithreading-ului cu procesareasuperscalar. Instruciunile - aparinnd sau nu unor fire de execuie diferite - sunt lansate nspre unitile funcionale aferenteprocesorului superscalar n mod simultan, n vederea ocuprii optimale a resurselor acestuia.De menionat c o problem criticabil a MMT-urilor const n faptul c n general proceseaz mai puin performant dect unprocesor superscalar un program de tip "monofir".

    4.1 Modelul cu ntreesere la nivel de ciclun cadrul acestui model, numit n literatura de specialitate i "fine-grain multithreading",procesorul comut pe un alt thread dupfiecare aducere de instruciune. n principiu, prin multiplexarea instruciunilor aparinnd unor thread-uri diferite, pot fi anulatehazardurile RAW (Read After Write), hazardurile de ramificaie, latenele etc. De asemenea, comutarea de context are n acest caz

    laten nul. Modelul necesit un numr de thread-uri cel puin egal cu numrul de nivele ale structurii pipeline, pentru a fi certanularea hazardurilor mai sus-amintite. De remarcat totui c multiplexrile instruciunilor din cadrul mai multor thread -uri limiteazviteza de procesare a unui singur thread. Exist n esent 2 modaliti de a limita aceast deficien :a) O tehnic static integrat n schedulercare permite lansarea succesiv n structura pipe a unor instruciuni din cadrul aceluiaithread, dac acestea nu sunt dependente de instruciuni anterioare aflate n curs de procesare n structur. Aceast tehnic implicmodificarea structuriiISA (Instruction Set Architecture) a microprocesorului n sensul adugrii ctorva bii fiecrui format deinstruciune. Aceti bii vor informa cte instruciuni din acelai thread o vor urmasuccesiv pe cea lansat n structur. Firete, tehnicaaceasta (numit "dependence lookahead") se preteaz a fi utilizat atunci cnd numrul de thread-uri este insuficient.b) O tehnic hardware, prin care se adaug structurii pipeline o logic suplimentar de detecie i rezolvare a hazardurilor, atunci cndse proceseaz un singur thread, deci un hibrid ntre un CPU clasic i unul de tip multithreading cu ntreesere.4.2 Modelul cu ntreeserea blocurilorAcest model numit i "coarse grain multithreading", execut un singur thread pn n momentul n care apare un eveniment cedeclaneaz comutarea de context. Uzual, asemenea evenimente apar atunci cnd fluxul de instruciuni din structura pipeline seblocheaz datorit unei operaii avnd o laten relativ mare. Comparnd cu modelul anterior, se remarc faptul c n acest caz estenecesar un numr mai mic de thread-uri distincte; de asemenea performana procesrii unui singur thread este comparabil cu ceaobtenabil pe un procesor clasic (superscalar) echivalent d. p.d. v. logic (al ISA Instruction Set Architecture).Exist principial 2 modaliti de comutare a thread-urilor n cadrul acestui model: static i respectiv dinamic. n continuare sevor explicita sumar fiecare dintre aceste tehnici de comutare a blocurilor.a. Comutare staticn acest caz comutarea este dictat prin program (compilator) printr -o instruciune special dedicat. n principiu, timpul de comutareeste aici de un tact avnd n vedere c dup aducerea i decodificarea instruciunii care comut thread-ul, aceasta trebuie evacuat dinstructura pipe. n schimb, performana n cazul "monofir" este drastic diminuat n acest caz.Totui, aceast modalitate este eficient n cazul blocurilor cu branch-uri dificil de predicionat (ex.branch-uri indirecte generate depolimorfismele din programarea obiectual etc.)b. Comutarea dinamicn acest caz comutarea blocurilor se declaneaz datorit unui eveniment dinamic, aprut deci pe parcursul procesrii hardware. ngeneral, comutarea dinamic implic timpi mai mari de comutare dect cea static datorit necesitii evacurii tuturor instruciunilordin structura pipe,anterioare stagiului care a declanat comutarea. i aici, ca i n cazul comutrii statice, putem avea cteva modalitidistincte de comutare. Astfel se poate comuta blocul pe un miss n cache. Din pcate acesta este detectat relativ trziu n structurapipeline, implicnd astfel timpi de comutare considerabili. O alt modalitate poate comuta pe activarea unui semnal specific ("switch-onsignal"),dat de o ntrerupere, derut ori recepionarea unui mesaj. n fine, se ntlnesc i modele de comutare hibride de gen"conditional switch", n care comutarea se realizeaz printr-o instruciune special (caracter static), ns numai n cazul n care aceastantlnete un anumit context dinamic (instan hardware). Astfel de exemplu o instruciune tip "switch" poate fi introdus de ctrecompilator dup un grup de instruciuni LOAD/STORE. Dac grupul a generat "miss" -uri comutarea se face, altfel nu.

    Principiul prediciei ntr-un proces Markov

    Considernd un proces Markov de ordinul unu aflat n starea )(tSi , se predicioneaz starea urmtoare ca fiind )1( tSl

    dac litji aaMax ,, }{ ! , unde }.,...,2,1{,, Nlji

    Observaie: Probabilitile ija se modific n fiecare instan, n acord cu predicia. Astfel, dac predicia este corect )( lS

    atunci ai,l crete corespunztor iar celelalte probabiliti de tranziie scad corespunztor; altfel (starea urmtoare e mS , ml) atunci

  • 8/14/2019 Arhitecturi Paralele - Curs

    14/14

    1S 1S 1S

    1S

    2S

    3S

    3S 3S 3S

    mia , crete corespunztor iar celelalte probabiliti scad corespunztor. Prin urmare modelul se antreneaz continuu n vederea

    prediciei dinamice.

    Exemplu:

    Se consider urmtoarea secven de stri observabile:

    ...,,,,,,,,,,,, 1113211132111 SSSSSSSSSSSSS Se pune problema ce stare urmeaz?

    Un model Markov de ordinul unu, pentru a da rspunsul va trebui s calculeze probabilitile 11a , 12a i 13a . Din secven

    rezult c frecvenele aferente sunt:

    611 !f , 212 !f , 013 !f deci4311 !a ,

    4112 !a , 013 !a .

    Prin urmare, predicia este 1S (greit, conform corelaiei stabilite n secven ar trebui s fie 2S ). Considernd secvena

    generat printr-un proces Markov de ordinul 2 se predicioneaz tot 1S (analog, se caut n ir ce urmeaz de fiecare dat dup

    secvena 11SS ). Abia un proces Markov de ordinul 3 sau superior va prediciona corect (S2) ntruct:

    0],,[

    1],,[

    0],,[

    1113

    1112

    1111

    !

    !

    !

    SSSSP

    SSSSP

    SSSSP

    (frecvena 2)

    Aadar n procesul de predicie printr-un proces Markov simplu, ordinul procesului este esenial. Cu ct ordinul procesului esteconsiderat mai mare, cu att este posibil detecia unor corelaii mai adnci n cadrul secvenei de stri observabile, crescnd deci

    viziunea semantic asupra procesului. Pe de alt parte depistarea frecvent a unor corelaii determin creterea frecvenelor aferente(deci, ale gradelor de ncredere) i n cazul unor ulterioare schimbri radicale ale comportamentului procesului, adaptarea la noulcomportament va fi una greoaie, consumatoare de timp i posibil tardiv.

    1: ,,jia 27,1!i , 3,1!j

    27:

    Figura 2. Reprezentarea unui proces Markov cu 3 stri, de ordinul 3

    Un proces Markov de ordinul k cu N stri distincte are kN combinaii posibile de lungime k ale celor N stri. n acest caz,

    principiul prediciei este acelai considernd superstarea curent format din ultimele k stri fiind i, },...,2,1{ kNi se calculeaz

    Maxilij aa !}{ , )( lSNj },...,2,1{ este starea predicionat. n cazul n care superscalarea curent nu este gsit n

    memoria memorat a strilor se poate reduce ordinul predictorului (k-1) i relua n mod interactiv algoritmul de predicie; n caz denevoie se poate apela chiar i la un predictor Markov de ordinul 0, implementndu-se astfel conceptul de predictor PPM (Predictionby Partial Matching) complet format din (k+1) predictoare Markov de la ordinul k la ordinul 0. Un proces Markov este ergodic dac

    dintr-o anumit stare poate tranzita n orice alt stare ntr-un numr finit de pai ( 0"ija ). ntr-un sens mai restrns, proprietatea deergodicitate are loc dac dintr-o anumit stare se poate tranzita n orice alt stare a modelului ntr-un singur pas(graf complet

    conectat).