2013 m. sausio 10 d., ketvirtadienis

11.3. Konvejeriai superskaliariniuose procesoriuose



Š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:

Galima būtų manyti, kad “Intel” ir “AMD” inžinieriai viename CPU gali sukurti daugiau lygiagrečių konvejerių ir darbas tikriausiai turėtų padvigubėti? Deja, tai nėra taip paprasta. Atminties sistema dar nėra pajėgi vienu metu daugybės konvejerių prikimšti duomenų. Net ir šiuolaikiniuose konvejeriuose išeikvojama gausybė taktų. Tiesiog procesoriaus branduolys duomenų efektyviai nesunaudoja, nes jie tiekiami nepakankamai sparčiai.
Kita 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 išrinktų 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į.
“Intel” mėgino išspręsti šią problemą su šakos numatymo elementu, kuris nuolatos bando atspėti teisingą komandų eilės tvarką.

Komentarų nėra:

Rašyti komentarą

Tinklaraščio archyvas

Etiketės