What's the difference between simulation and emulation

  • I frequently see Simulation and Emulation in computer science. These two terms seem synonymous. Is there any difference between Simulation and Emulation?

  • S.Robins

    S.Robins Correct answer

    9 years ago

    Yes, the concepts are different.


    A simulation is a system that behaves similar to something else, but is implemented in an entirely different way. It provides the basic behaviour of a system, but may not necessarily adhere to all of the rules of the system being simulated. It is there to give you an idea about how something works.


    Think of a flight simulator as an example. It looks and feels like you are flying an airplane, but you are completely disconnected from the reality of flying the plane, and you can bend or break those rules as you see fit. For example, fly an Airbus A380 upside down between London and Sydney without breaking it.


    An emulation is a system that behaves exactly like something else, and adheres to all of the rules of the system being emulated. It is effectively a complete replication of another system, right down to being binary compatible with the emulated system's inputs and outputs, but operating in a different environment to the environment of the original emulated system. The rules are fixed, and cannot be changed, or the system fails.


    The M.A.M.E. system is built around this very premise. All those old arcade systems that have been long forgotten, that were implemented almost entirely in hardware, or in the firmware of their hardware systems can be emulated right down to the original bugs and crashes that would occur when you reached the highest possible score.

    "behave exacly like ..." may be not necessary. The important thing is that it "reproduce the same exact external behavior" in respect to what uses it.

    Note that it depends on what is being simulated/emulated. For example, something that emulates a PC compatible computer may be far less accurate and a lot less realistic than something that simulates the digital circuitry of a PC compatible computer. In this case, the simulator may behave "exactly like" a real PC while the emulator doesn't (because the simulator is simulating something at a much lower level).

License under CC-BY-SA with attribution

Content dated before 6/26/2020 9:53 AM