Innehållsförteckning:
Definition - Vad betyder processoremulering?
Processoremulering är en virtualiseringsprocess och teknik som gör att programvara som har sammanställts för en specifik processor eller operativsystem (OS) kan köras på ett annat system som har en annan processor och operativsystem. Detta görs genom att dynamiskt översätta processorinstruktionerna och alla tillhörande operativsystemsamtal för ett program till instruktionerna för processorn och operativsystemet där den körs.
Techopedia förklarar Processor Emulation
Processoremulering tillåter exekvering av program skrivna för en processor att köra på en annan processor med en annan arkitektur och instruktionsuppsättning. Ett bra grundexempel är en spelkonsolemulator, som gör det möjligt för användare att spela konsolspel som Nintendo Entertainment System och PlayStation-spel på sin PC. Processorn som används av en spelkonsol skiljer sig mycket från den för en dator, så för att kunna spela konsolspel på en PC måste processorn på spelkonsolen emuleras.
Den grundläggande idén är att varje enskild handling och beteende i programmet som måste köras måste konverteras till motsvarande instruktionsuppsättning och / eller operativsystemsamtal i värdsystemet. Huvudmålet är att köra kod som ändrar processortillstånd och interagerar med hårdvaran, och detta måste göras för varje instruktion i det löpande programmet.
Sätt att hantera processoremulering:
- Dynamisk rekompilering - En lista över operationer skapas genom att köra koden, och när en greninstruktion nås sammanställs listan till instruktionskoden för värdplattformen. Detta cachelagras sedan för framtida användning. Alternativt kan varje kod helt enkelt sammanställas, men denna strategi är svår att optimera.
- Statisk rekompilering - Detta är också känt som statisk binär översättning där koden först konverteras till koden för målmaskinen eller arkitekturen utan att köra koden, vilket görs i dynamisk rekompilering. Problem kan emellertid uppstå, eftersom inte alla målkoder kan bestämmas av översättaren under sammanställningstiden, eftersom vissa av dem bara kan hittas i indirekta grenar, som i sin tur endast kan bestämmas vid körtid.
- Tolkning - Varje kod läses från minnet med hjälp av instruktionspekaren och körs sedan enligt CPU-instruktionsuppsättningen på värddatorn. Med andra ord översätts instruktionerna en till en och körs sedan infödda. Den största nackdelen här är prestanda.
