Tartalomjegyzék:
Meghatározás - Mit jelent a processzor emuláció?
A processzor emuláció egy virtualizációs folyamat és technológia, amely lehetővé teszi egy adott processzorhoz vagy operációs rendszerhez (OS) összeállított szoftverek futtatását egy másik rendszeren, amely eltérő processzorral és operációs rendszerrel rendelkezik. Ezt úgy végezzük, hogy a processzor utasításait és a program összes kapcsolódó operációs rendszerhívását dinamikusan lefordítják a processzor és az operációs rendszer utasításaira, ahol fut.
A Techopedia magyarázza a processzor-emulációt
A processzor emulációja lehetővé teszi az egyik processzor számára írt programok végrehajtását egy másik processzoron, eltérő architektúrával és utasításkészlettel. Jó alapvető példa a játékkonzol-emulátor, amely lehetővé teszi a felhasználók számára, hogy a PC-n konzoljátékokat, például a Nintendo Entertainment System és a PlayStation játékot játsszák. A játékkonzol által használt processzor nagyon különbözik a PC-től, így a konzolos játékok PC-n történő lejátszásához a játékkonzol processzort emulálni kell.
Az alapötlet az, hogy a futtatni kívánt program minden egyes műveletét és viselkedését át kell alakítani a gazdarendszer egyenértékű utasításkészletére és / vagy az operációs rendszer hívására. A fő cél a processzor állapotát módosító és a hardverrel kölcsönhatásba lépő kód végrehajtása, és ezt a futó program minden utasításához meg kell tenni.
A processzor-emuláció kezelésének módjai:
- Dinamikus újrafordítás - A kód futtatásával létrejön egy műveleti lista, és ha eléri az ág utasítást, a listát a gazdaplatform utasításkódjába állítják össze. Ezután a gyorsítótárba kerül a későbbi felhasználásra. Alternatív megoldásként minden kódot egyszerűen össze lehet állítani menet közben, de ezt a megközelítést nehéz optimalizálni.
- Statikus újrafordítás - ezt statikus bináris fordításnak is nevezik, ahol a kódot először a célgép vagy architektúra kódjává alakítják át a kód futtatása nélkül, ahogy ezt a dinamikus újrafordításban végzik. Problémák merülhetnek fel azonban azzal, hogy a fordító nem minden célkódot határoz meg a fordító során, mivel néhányuk csak közvetett ágakban található meg, amelyeket viszont csak futási időben lehet meghatározni.
- Értelmezés - Mindegyik kódot a memória elolvassa az utasításmutató segítségével, majd a gazdagép CPU utasításkészlete szerint hajtja végre. Más szavakkal, az utasításokat lefordítják egyre, majd natívan végrehajtják. A legnagyobb hátrány itt a teljesítmény.
