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ų tipai. Jų 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ą