Turinys:
Apibrėžimas - ką reiškia procesoriaus emuliacija?
Procesoriaus emuliacija yra virtualizacijos procesas ir technologija, leidžianti programinę įrangą, kuri buvo sudaryta konkrečiam procesoriui ar operacinei sistemai (OS), paleisti kitoje sistemoje, turinčioje skirtingą procesorių ir OS. Tai atliekama dinamiškai paverčiant procesoriaus instrukcijas ir visus susijusius operacinės sistemos kvietimus į procesoriaus ir OS, kur ji veikia, instrukcijas.
„Techopedia“ paaiškina procesoriaus emuliaciją
Procesoriaus emuliacija leidžia vykdyti programas, parašytas vienam procesoriui, vykdyti kitam procesoriui su skirtinga architektūra ir instrukcijų rinkiniu. Geras pagrindinis pavyzdys yra žaidimų konsolių emuliatorius, leidžiantis vartotojams žaisti konsolinius žaidimus, tokius kaip „Nintendo Entertainment System“ ir „PlayStation“ žaidimai savo kompiuteryje. Žaidimų pulte naudojamas procesorius labai skiriasi nuo kompiuterio, todėl norint žaisti konsolinius žaidimus kompiuteryje, žaidimų konsolės procesorius turi būti emuliuojamas.
Pagrindinė idėja yra ta, kad kiekvienas atskiras programos veiksmas ir elgesys, kurį reikia paleisti, turi būti pakeistas į lygiavertį pagrindinės sistemos komandų rinkinį ir (arba) operacinės sistemos skambučius. Pagrindinis tikslas yra vykdyti kodą, modifikuojantį procesoriaus būsenas ir sąveikaujantį su aparatine įranga, ir tai turi būti padaryta kiekvienai vykdomos programos instrukcijai.
Procesoriaus emuliacijos tvarkymo būdai:
- Dinaminis perkompiliavimas - vykdant kodą sudaromas operacijų sąrašas, o kai pasiekiama šakos instrukcija, sąrašas sudaromas į pagrindinės platformos instrukcijos kodą. Tada jis bus išsaugotas talpykloje ateityje naudoti. Kaip alternatyva, kiekvieną kodą būtų galima paprasčiausiai sudaryti, bet šį požiūrį sunku optimizuoti.
- Statinis perkompiliavimas - tai dar vadinama statiniu dvejetainiu vertimu, kai kodas pirmiausia paverčiamas tikslinės mašinos kodu arba architektūra, nevykdant kodo, kaip tai daroma atliekant dinaminį kompiliavimą. Problemų vis dėlto gali kilti, nes vertėjas kompiliavimo metu gali nustatyti ne visus tikslinius kodus, nes kai kuriuos iš jų galima rasti tik netiesioginėse šakose, kurios, savo ruožtu, gali būti nustatomos tik vykdymo metu.
- Aiškinimas - kiekvienas kodas yra nuskaitomas iš atminties, naudojant instrukcijos rodyklę, ir tada vykdomas pagal pagrindinio kompiuterio CPU komandų rinkinį. Kitaip tariant, instrukcijos yra išverstos į vieną, tada vykdomos savaime. Didžiausias trūkumas čia yra našumas.
