2013 m. sausio 10 d., ketvirtadienis

11.6. Temos apibendrinimas



1        Konvejeris - speciali loginė schema, leidžianti optimizuoti procesoriaus darbą, vykdant nepriklausomus veiksmus lygiagrečiai.
2        Šiuolaikiniai procesoriai informaciją apdoroja konvejeriniu (Pipelined) būdu. Taip apdorojant informaciją, ilgai trunkanti operacija suskaidoma į etapus, ir jie nuosekliai sujungtuose įtaisuose vykdomi vienas paskui kitą.
3        Kadangi programos kai kada šakojasi, procesoriuose yra specialus prognozavimo įtaisas (BTB - Branch Target Buffer), nusprendžiantis, kurios programos šakos instrukcijas įrašyti į registrus, nes, apsirikus, tenka gaišti laiką jau įrašytoms instrukcijoms pakeisti kitos šakos instrukcijomis.
4        Konvejerizacija (pipelining) numato kiekvienos instrukcijos skaidymą į kelis etapus, be to kiekvienas etapas vykdomas atskiroje procesoriaus konvejerio pakopoje. Atsilaisvinant kitoms pakopoms, vykdoma instrukcija juda konvejeriu. Tuo būdu, konvejeryje vienu metu gali būti vykdomos kelios iš eilės einančios instrukcijos.
5        Kai kurie sudėtingesni konvejeriai būna apjungti su kešavimo schemomis, ilgiau trunkančius veiksmus (komandų išrinkimą, jų duomenų išrinkimą) leidžia vykdyti iš anksto.
6        Itin efektyviai konvejeriai naudojami RISC procesoriuose: dėl mažo komandų skaičiaus, vienodo komandų (ir duomenų) ilgio, mažo kiekio operandų (dažniausiai - vieno), adresavimo būdų ribojimo, RISC procesoriuose esančius konvejerių darbą galima efektyviai prognozuoti ir smarkiai optimizuoti.
7        Šiuolaikiniai CPU turi ne vieną konvejerį, todėl vienu metu gali apdoroti keletą komandų. Pavyzdžiui, “Pentium 4” ir “Athlon XP” per vieną sinchronizatoriaus taktą gali iššifruoti apie 2,5 komandos. Procesoriuje “Pentium 4” yra keli labai ilgi konvejeriai, leidžiantys procesoriui vienu metu ir skirtingomis stadijomis apdoroti 126 komandas. Todėl CPU gali padaryti daugiau darbo, kai lygiagrečiai veikia keli konvejeriai:
8        Problema su keliais konvejeriais iškyla tada, kai procesorius gali lygiagrečiai iššifruoti keletą komandų – kiekvieną atskiriame konvejeryje. Kartais neįmanoma išvengti neteisingai nuspėtų komandų (netinkama eilės tvarka). Tai vadinama klaidingu numatymu, kuris išeikvoja daugybę laikmačio taktų, nes turi būti išrinkta kita komanda, turinti pereiti per konvejerį.

Komentarų nėra:

Rašyti komentarą

Tinklaraščio archyvas

Etiketės