Changes

Jump to: navigation, search

AArch64 Emulation

49 bytes added, 10:47, 13 October 2023
no edit summary
Processor emulation is the use of software to emulate (act like) hardware which is not present. It may be used in two different ways:
1. '''Full processor emulation ''' - If the target architecture (the architecture for which the code was compiled) is completely different from the host architecture (the architecture of the machine on which the code will be executed), then full processor emulation is required. In this case, registers are represented by variables, and the operation of every machine language instruction is handled in software. This is very slow, typically running at less than 3% of the speed of native code (code compiled for the host architecture), but it is very flexibledoes not require equipment of the target architecture.
2. '''Partial processor emulation ''' - If the target architecture is a newer or more advanced version of the host architecture, it is possible to execute most instructions directly on the host processor. An instruction which is not supported by the host will cause an exception (like a software interrupt) which would normally cause the process to be aborted. In partial processor emulation, the emulator handles the exception, processing the unsupported instruction using software emulation, and then returning control to the CPU. This is much faster than full processor emulation, because the majority of instructions are handled directly by the CPU. The performance varies according to the ratio of instructions which may be directly executed to instructions which must be handled in emulation.
Both of these techniques may be used in a virtual machine (VM), which simulates a full standalone computer of the emulated architecture, or for userspace emulation, which supports a specific processes (and possibly child processes) on a system which is otherwise natively running on the host system (for example, running an aarch64 process on a system which is otherwise running x86_64 processes).

Navigation menu