Konvejeris – speciali loginė schema, leidžianti optimizuoti procesoriaus darbą, vykdant nepriklausomus veiksmus lygiagrečiai.
Tipiškas procesorius bet kurią komandą vykdo keliais etapais:
- Komanda išrenkama iš atminties (pasiunčiama užklausa į atmintį, sulaukiama, kol atmintis procesoriui perduos komandos kodą)
- Komanda identifikuojama (nustatoma, kaip ir kokius duomenis komanda naudos)
- Iš atminties išrenkami komandos naudojami duomenys (pasiunčiama užklausa į atmintį, sulaukiama, kol atmintis procesoriui perduos komandos naudojamus duomenis)
- Komanda įvykdoma
- Į atmintį perkeliami komandos apdirbti duomenys (į atmintį pasiunčiami duomenys, sulaukiama, kol jie bus įrašyti)
- Apskaičiuojamas kitos komandos adresas
Visi šie etapai vykdomi gana nepriklausomai vienas nuo kito, todėl vykdant vieną iš šių veiksmų, už kitus veiksmus atsakingos procesoriaus dalys stovi be darbo. Naudojant konvejerį, visi šie darbai vykdomi lygiagrečiai, pvz., kol viena procesoriaus dalis identifikuoja naujai gautą komandą, kita dalis išrinkinėja iš atminties kitai komandai reikalingus duomenis.
Kai kurie sudėtingesni konvejeriai būna sujungti su kešavimo schemomis, ilgiau trunkančius veiksmus (komandų išrinkimą, jų duomenų išrinkimą) leidžia vykdyti iš anksto. 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), adresacijos būdų ribojimo, RISC procesoriuose esančių konvejerių darbą galima efektyviai prognozuoti, atitinkamai – ir smarkiai optimizuoti.
Nuorodos
|
Šiame straipsnyje naudojami diskutuotini terminai. Daugiau apie kompiuterinius terminus skaitykite žodynėlyje.
|