Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

what is the difference between Emulate and Simulate?

I am asking this question in the context of computers and microcontrollers. I need a concise answer. These words seems to get mixed up, I don't know if they are interchangangeable but have a feeling that they are not. Thanks. I haven't found a distinction between them in my research yet and thus I post the question here.

like image 620
quantum231 Avatar asked Jul 20 '11 15:07

quantum231


2 Answers

Not sure if this is concise enough for you, but my understanding is this:

Emulators - Mimic hardware.
Simulators - Mimic software.

Take a look at this post for a decent discussion on the topic.

And here is a quote from this webpage:

Emulation versus simulation

The word "emulator" was coined in 1963 at IBM[12] during development of the NPL (IBM 360) product line, using a "new combination of software, microcode, and hardware".[13] They discovered that using microcode hardware instead of software simulation, to execute programs written for earlier IBM computers, dramatically speeded up simulation. Earlier in 1957, IBM provided the IBM 709 computer with an interpreter program (software) to execute legacy programs written for the IBM 704 to run on the IBM 709 and later on the IBM 7090[14] In 1963, when microcode was first used to speed up this simulation process, IBM engineers coined the term "emulator" to describe the concept.

It has recently become common to use the word "emulate" in the context of software. However, before 1980, "emulation" referred only to emulation with a hardware or microcode assist, while "simulation" referred to pure software emulation.[15] For example, a computer specially built for running programs designed for another architecture is an emulator. In contrast, a simulator could be a program which runs on a PC, so that old Atari games can be simulated on it. Purists continue to insist on this distinction, but currently the term "emulation" often means the complete imitation of a machine executing binary code.

like image 153
Jason Down Avatar answered Oct 27 '22 09:10

Jason Down


Emulation is when (possibly microcoded) hardware, especially, and perhaps software steps through and processes each input exactly how the microcontroller/processor being emulated would process the instruction.

Simulation is when the software, especially, but perhaps hardware also takes the input and through different processes produces the expected output.

Emulation is extremely precise modelling of the internal operations whereas Simulation is more focused on the input-output black box concept.

like image 44
Tchiak Avatar answered Oct 27 '22 09:10

Tchiak