2013 m. sausio 9 d., trečiadienis

5.1. Pagrindiniai komandų sistemų tipai



Projektuojant procesorių, pirmiausiai parenkama komandų sistema.
Komandų sistemas galima klasifikuoti pagal šiuos pagrindinius požymius
Ø    Operando saugojimo vieta
Ø    Operandų tipas ir dydis 
Ø    Komandoje aiškiai nurodomų operandų skaičius
Ø    Operacijų tipai
Vidinės CPU atminties tipas yra pagrindinis skiriamasis požymis. Čia yra 3 alternatyvos: dėklas, kaupiklis ir registrų grupė.
Lentelė 5.1. Pagrindiniai komandų sistemų tipai
Vidinės atminties tipas
Pavyzdžiai
Aiškiai nurodomas operandų skaičius ALU komandose
Rezultato talpinimo vieta
Operandų išrinkimo procedūra
Dėklas
B5500
0
Dėklas
PUSH, POP
Kaupiklis
PDP-8,Motorola 6809
1
Kaupiklis
Kaupiklio įkrovimas, įrašymas į atmintį (load, store)
Registrų grupė
IBM  370, DEC VAX
2 arba 3
Registrai arba atmintis
Registrų/atminties įkrovimas, įrašymas (load, store)
Procesorius nebūtinai naudoja vieno tipo architektūros komandas. Dažniausiai jame rasime bent dviejų tipų komandas. Pavyzdžiui, Intel 80x86 procesoriai - kaupiklio ir bendrųjų registrų tipo architektūrų junginys. Dėklo architektūroje operandai yra dėklo viršuje, o kaupiklio tipo komandų sistemose  vienas iš operandų yra kaupiklyje.
Čia paminėti neišreikšti operandai, t.y. žinoma, kad jie ten yra, ir jokių nuorodų į tai komandoje nėra. Tuo tarpu registrų architektūroje visi operandai aiškiai nurodomi komandoje - tai registrai arba atminties ląstelės. Operandai gali būti imami tiesiai iš atminties arba gali būti pirma įkraunami į registrus, jei to reikalauja komandų specifika.
Lentelė 5.2 Pagrindiniai komandų sistemų tipaiJų privalumai ir trūkumai
Tipas
Privalumai
Trūkumai
Dėklo
Trumpos komandos, kompaktiškas kodas. Paprastas išraiškų paskaičiavimo modelis.
Negalimas laisvas išrinkimas iš dėklo, todėl sunku generuoti efektyvų kodą
Kaupiklio
Komandos gana trumpos. Jos minimizuoja vidinį procesoriaus valdymo įtaisą.
Kadangi kaupiklis - laikino saugojimo priemonė, tenka vykdyti nemažai mainų su atmintimi
Bendrųjų registrų
Paprastas kodo generavimas
Visi operandai turi būti įvardyti, todėl komandos ilgesnės
Pirmieji kompiuteriai (įskaitant UNIVAC 1, EDSAC) buvo kaupiklio tipo. Pirmasis bendrosios paskirties registrų tipo kompiuteris buvo Pegasus (Ferranti, 1956 m.). Jame buvo 8 bendrosios paskirties registrai. Šie registrai buvo įkraunami, persiunčiant duomenų bloką iš būgno. Registro R0 turinys visuomet buvo lygus 0.
Pastaruoju metu vyrauja bendrosios paskirties registrų tipo architektūra.Tai paaiškinama tuo, kad:
Ø  Registrai, kaip ir kiti CPU mazgai, greitesni, nei atmintis;
Ø   Kompiliatoriai juos panaudoja kodo generavimui efektyviau, nei kitas vidines CPU atminties formas (pvz., dėklą);
Ø   Saugant operandus ir tarpinius rezultatus registruose, sumažėja kreipinių į atmintį skaičius, tuo atlaisvinant ją kitiems tikslams (pvz., įvedimui ar išvedimui);
Ø   Generuojamas kompaktiškesnis kodas, nes registrams nurodyti reikia mažiau vietos.

Yra dvi pagrindinės charakteristikos, kurios skiria bendrosios paskirties registrų architektūras:
Ø   aritmetinių komandų operandų skaičius - 2 ar 3; pirmu atveju rezultatas talpinamas į vieno iš operandų vietą);
Ø  kiek operandų komandoje gali būti atmintyje; šis skaičius gali būti nuo 0 iki 3.

Lentelė 5.3. Pagrindiniai komandų sistemų tipai. Adresų ir operandų skaičius
Atminties adresų skaičius
 tipinėje ALU komandoje
Maksimalus operandų
skaičius
Pavyzdžiai
0
2
3
IBM RT-PC
SPARC, MIPS
1
2
3
MC68000, dalis IBM 360
dalis IBM 360 (RS)
2
2
3
PDP-11,
dalis IBM 360 (SS)
3
3
VAX
Taigi, yra 7 galimos kombinacijos. Trys iš jų būdingesnės ir naudojamos klasifikuojant daugumą egzistuojančių kompiuterių:
Ø    registras-registras,
Ø    registras-atmintis,
Ø    atmintis-atmintis.
Lentelė 5.4. Pagrindiniai komandų tipai.
Tipas
Privalumai
Trūkumai
Registras-registras(0,3)
Paprastos, fiksuoto ilgio komandos. Paprastas kodo generavimo modelis. Komandų vykdymo trukmė maždaug vienoda
Didesnis komandų skaičius programoje. Trumpų komandų kodavimas perteklinis
Registras-atmintis(1,2)
Duomenis galima panaudoti be išankstinio jų įkrovimo į registrus. Komandų formatai nesudėtingi, pakankamai kompaktiškas kodas
Operandai ne ekvivalentiški. Vienas iš šaltinių pakeičiamas rezultatu, todėl jis prarandamas. Komandų vykdymo trukmė priklauso nuo operandų vietos
Atmintis-atmintis(3,3)
Kompaktiškiausia programa. Nereikia registrų tarpiniams rezultatams saugoti
Labai įvairus komandų ilgis, ypač 3 operandų komandų. Daug kreipinių į atmintį, todėl ji labai apkrauta
Jei komandoje nėra nė vieno adreso, reiškia, kad abu operandai turi būti iš anksto sutartoje vietoje. Paprastai tai būna dvi "viršutinės" dėklo ląstelės, todėl 0 adresų kompiuteris dar vadinamas dėklo tipo architektūros kompiuteriu.

Komentarų nėra:

Rašyti komentarą

Tinklaraščio archyvas

Etiketės