Information Technology Reference
In-Depth Information
To run software built for one instruction set on a hardware system with a different
instruction set means that the software needs to be converted to contain instruction
for the new hardware (instruction sets, and hence binary application files, are not
usually compatible between different hardware systems). This conversion is usu-
ally what is meant by emulation, and there are a variety of methods for doing this
conversion (types of emulation).
7.9.3 Types of Emulation
Emulation comes in several forms. These relate to the level of detail and accu-
racy to which the emulator software reproduces the functionality and behaviour of
the original computer hardware system (and some peripheral hardware) [ 83 ]. The
basic forms of Emulation we shall discuss are, Hardware Simulation, Instruction
Emulation, Virtualisation, Binary Translation, and Virtual Machines.
The aim of Hardware Simulation (and confusingly sometimes also referred to as
just emulation) is to reproduce the behaviour of the computer hardware system and
peripheral hardware perfectly. This is achieved by using mathematical and empiri-
cal models of the components of the computer system (electronic and mechanical
engineering simulation). Inevitably such an approach is difficult to accomplish and
also produces emulators that run very slowly.
A typical application of these emulators is to test the behaviour of real hardware,
i.e. as a diagnostic tool, and also as a design tool for creating the electronics for
computer hardware [ 84 , 85 ]. Hardware simulation is very little used in terms of
emulation for running software, but does provide a specification for the functions
and behaviour of hardware that potentially could be used as a source of information
in the future for writing other forms of emulators. Problematically, such informa-
tion about the design of the hardware is not usually available from the companies
producing the hardware.
Characterising some aspects of the behaviour of the hardware can be done, and
proves to be useful, even if the full simulation is unavailable. The reproduction
of the accuracy of the output of a given CPU instruction can easily be defined
(and usually is in the specification of the CPU instruction set [ 86 ]). Also the time
the instructions take to execute can be measured. These two characteristics can be
used when producing Instruction Emulators that faithfully reproduce the “feel” of
the original system when software executes as well as producing accurate results
from execution of the instructions. The down side of this reproduction of timing
and accuracy is usually a significant loss in speed of the emulator (all instructions
have accurate timing relative to one another but are scaled relative to the original
system).
Instruction Emulation is one of the most common forms of emulation. This
involves the instructions for the CPU and other hardware being emulated in soft-
ware such that binary software (including operating systems) will run on systems
with different instruction sets without the need for the source code to be recompiled
Search WWH ::




Custom Search