2013 m. sausio 11 d., penktadienis

2.5. Temos apibendrinimas



1.       Komanda vadinama skaliarine, jei  jos operandai yra skaičiai (skaliarai).
2.     Komanda vadinama vektorine, jei įvesties operandai ir, dažniausiai, rezultatas yra vektoriai (skaičių masyvai).
3.       Duomenų masyvui (vektoriui ) apdoroti panaudojama vektorinė komanda.
4.       Šiuo metu plačiausiai sutinkam du procesorių architektūrų su lygiagrečiu komandų vykdymu tipai: superskaliarinės architektūros  procesoriai ir procesoriai su ilgu komandos žodžiu.
5. Superskaliarinės architektūros  procesorių komandų sistemoje nėra jokių lygiagretaus duomenų apdorojimo nuorodų.
6.       Procesoriuose su ilgu komandos žodžiu (VLIW) specialiuose komandų laukuose yra nuorodos dėl lygiagretaus duomenų apdorojimo.
7.       Pagrindinės problemos, kurias projektuotojai turi išspręsti  projektuodami superskaliarinius procesorius yra: komandų priklausomybės pagal duomenis  pašalinimas, adresų ir duomenų apdorojimo paskyrimas  atskiriems procesoriams, išankstinis komandų išrinkimas ir nukreipimų nuspėjimas.
8.       Adresų ir duomenų apdorojimo paskyrimas  atskiriems procesoriams įgalina sutapatinti laike adresų ir duomenų apdorojimą. Adresai visada yra tik sveiki skaičiai. Tuo tarpu duomenys gali būti ir slankaus kablelio formos. Parengti adresai ir duomenys sudaro eiles, todėl tik atsilaisvinus techniniams resursams, operacija vykdoma nedelsiant.
9. Nemaža kliūtimi organizuojant lygiagretųjį duomenų apdorojimą yra programoms charakteringi ciklai. Nukreipimo sąlygos formavimas, komandos išrinkimas, dešifravimas ir veiksmų su adresais atlikimas užima nemažai laiko, todėl konvejeriuose atsiranda tušti taktai. To išvengti įmanoma tokiais būdais: nuspėjant nukreipimus, keičiant atliekamų komandų eiliškumą, sąlyginai vykdant tiek nukreipimo, tiek ir kitos programos šakos komandas.
10.   Nuspėjant nukreipimus, nelaukiama kol sąlyga bus patikrinta, o pradedamos vykdyti nukreipimo (dažniausiai tai naujo ciklo) komandos. Jei vėliau išaiškėja, kad nuspėjimas neteisingas, tenka atliktus veiksmus anuliuoti.
11.   Keičiant atliekamų komandų eiliškumą taip pat galima išvengti tuščių taktų, tačiau duomenų tarpusavio priklausomybių šalinimas tuo atveju vėlgi lėtina procesoriaus darbą.
12.   Sąlyginai vykdant tiek nukreipimo, tiek ir kitos programos šakos komandas užimami du konvejeriai, tačiau vieno iš jų darbas gali būti pratęstas po to, kai patikrinama nukreipimo sąlyga.
13.   Kadangi vienu taktu superskaliariniame procesoriuje reikia išrinkti kelias komandas, padidinti reikalavimai keliami procesoriaus – atmintinės magistralei, pirmiausia jos pločiui.
14.   L1 priešatmintinės duomenims ir komandos naudojamos atskiros. Dešifruotos ir parengtos vykdyti komandos perduodamos į buferinius įtaisus ir, atsilaisvinus reikiamiems vykdomųjų įtaisų resursams, jos patenka į atitinkamus vykdymo konvejerius. Apdorojami duomenys perduodami iš atitinkamų registrų.
15.   Svarbu, kad atliktų operacijų rezultatai būtų pertvarkomi ir fiksuojami taip, kaip numatyta programos kode.
16.   Simetrinė multiprocesorinė sistema SMP (Symmetrical Multi Processor system) - tai sistema, kur visi procesorius turi vienodas teisės naudoti operatyvinę atmintinę.
17.   NUMA (Non-Uniform Memory Access system). Sistemose atmintinė tampa sudėtingesnės organizacijos. Kai kurios atmintinės sritys veikia sparčiau, o kai kurios lėčiau.


Komentarų nėra:

Rašyti komentarą

Tinklaraščio archyvas

Etiketės