Cuprins:
Definiție - Ce înseamnă Emulația de procesor?
Emularea procesorului este un proces și o tehnologie de virtualizare care permite software-ului compilat pentru un anumit procesor sau sistem de operare (OS) să ruleze pe un sistem diferit care are un procesor și sistem de operare diferit. Acest lucru se realizează prin traducerea dinamică a instrucțiunilor procesorului și a tuturor apelurilor asociate unui sistem de operare ale unui program în instrucțiunile procesorului și ale sistemului de operare unde se rulează.
Techopedia explică Emularea procesorului
Emularea procesorului permite executarea programelor scrise pentru un procesor pentru a fi executate pe un procesor diferit, cu o arhitectură și set de instrucțiuni diferite. Un bun exemplu de bază este un emulator al consolei de jocuri, care permite utilizatorilor să joace jocuri de consolă, cum ar fi Nintendo Entertainment System și jocuri PlayStation pe computerul lor. Procesorul folosit de o consolă de jocuri este foarte diferit de cel al unui computer, astfel încât pentru a putea juca jocuri pe consolă pe un PC, trebuie să fie emulat procesorul consolei de jocuri.
Ideea de bază este că fiecare acțiune și comportament individual al programului care trebuie să fie rulat trebuie să fie convertite în setul de instrucțiuni echivalent și / sau apelurile de sistem de operare ale sistemului gazdă. Scopul principal este executarea codului care modifică stările procesorului și interacționează cu hardware-ul, iar acest lucru trebuie făcut pentru fiecare instrucțiune a programului care rulează.
Moduri de manipulare a emulării procesorului:
- Recompilare dinamică - O listă de operații este creată prin rularea codului, iar când se ajunge la o instrucțiune de ramură, lista este compilată cu codul de instrucțiune al platformei gazdă. Acesta este apoi pus în cache pentru utilizare viitoare. În mod alternativ, fiecare cod ar putea fi compilat pur și simplu, dar această abordare este greu de optimizat.
- Recompilare statică - Aceasta este cunoscută și sub denumirea de traducere binară statică unde codul este transformat pentru prima dată în codul mașinii sau arhitecturii țintă fără a rula codul, așa cum se face în recompilarea dinamică. Cu toate acestea, pot apărea probleme, deoarece nu toate codurile țintă pot fi determinate de traducător în timpul compilării, deoarece unele dintre ele pot fi găsite doar în ramuri indirecte, care, la rândul lor, pot fi determinate doar în timp de rulare.
- Interpretare - Fiecare cod este citit din memorie folosind indicatorul de instrucțiuni și apoi este executat conform setului de instrucțiuni CPU al computerului gazdă. Cu alte cuvinte, instrucțiunile sunt traduse unul la unu și apoi executate nativ. Cel mai mare dezavantaj aici este performanța.