6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sun Jun 02, 2024 6:22 am

All times are UTC




Post new topic This topic is locked, you cannot edit posts or make further replies.  [ 45 posts ]  Go to page Previous  1, 2, 3  Next
Author Message
PostPosted: Sun Jun 08, 2014 11:14 am 
Offline

Joined: Sun Apr 10, 2011 8:29 am
Posts: 597
Location: Norway/Japan
> They cannot simply run a program for the end user like emulators can.

That I agree with, if only from a gut feeling. So yes, to me visual6502 seems to be a simulator, although it arguably may be more accurate and complete in its execution of 6502 instructions than just about any 6502 emulator out there.

> Emulators need to be able to run at the speed and provide the same interface as the replaced machine. Everything else is a simulator. It is not an emulator just because it can run binaries!

But that I don't fully agree with - accurate speed should not define if something is an emulator, unless the goal of the particular emulator is to emulate something running at a particular speed. In my opinion it's perfectly fine to define the goal of an emulator as e.g. 'emulate an xxx type of computer executing at about 9MHz'. Even if there never was an actual xxx running a that specific speed. It's still an emulator (IMO), and that's why there are different sub-variants of emulators. People call some of them 'cycle-exact emulators', for example, implying that there are (acceptable) emulators that are not.

-Tor


Top
 Profile  
 
PostPosted: Sun Jun 08, 2014 11:54 am 
Offline
User avatar

Joined: Tue Mar 02, 2004 8:55 am
Posts: 996
Location: Berkshire, UK
Klaus2m5 wrote:
Emulators need to be able to run at the speed and provide the same interface as the replaced machine. Everything else is a simulator. It is not an emulator just because it can run binaries!

No, I disagree.

To 'emulate' is to reproduce the function of something but the reproduction does not have to be 100%. You only have to emulate enough of the function for the result to suit your requirements. As my requirements may not be the same as yours the distinction is subjective.

_________________
Andrew Jacobs
6502 & PIC Stuff - http://www.obelisk.me.uk/
Cross-Platform 6502/65C02/65816 Macro Assembler - http://www.obelisk.me.uk/dev65/
Open Source Projects - https://github.com/andrew-jacobs


Top
 Profile  
 
PostPosted: Sun Jun 08, 2014 4:43 pm 
Offline

Joined: Sat Jul 28, 2012 11:41 am
Posts: 442
Location: Wiesbaden, Germany
O.K., the "able to run at the speed of the replaced machine" argument is weak, because you could specify an emulator to replace a 6502 with any clock speed and cycle accuracy. What I meant was, that this may not be a criteria for a simulator as it does not have to be real time if you are not interested in real time behavior. On an emulator you are definitely interested in real time behavior.

An emulator does not have to be 100% accurate? True. Unfortunately that does not mean a 100% accurate emulator is automatically a simulator. However, if I simulate a program in my IDE I expect it to be 100% accurate even if you call it an emulator.

As it was brought up as an example: A flight simulator is a simulator because you don't actually fly. Put the instrumentation of an Airbus into a Boeing cockpit so an Airbus trained pilot can fly it, it is an Airbus emulator. The instrumentation is the same for both the simulator and the emulator. The usage makes the difference. And the emulator should better be 100% accurate...

see also: http://stackoverflow.com/questions/1584 ... difference

_________________
6502 sources on GitHub: https://github.com/Klaus2m5


Top
 Profile  
 
PostPosted: Tue Jun 10, 2014 5:10 am 
Offline

Joined: Tue Jul 24, 2012 2:27 am
Posts: 672
"My machine can behave like a completely different machine!" == the act of emulation.

This is generally accomplished by software simulating what goes on in the other machine to whatever detail necessary to correctly perform the desired emulation.

Simulation vs emulation is a false dichotomy.

_________________
WFDis Interactive 6502 Disassembler
AcheronVM: A Reconfigurable 16-bit Virtual CPU for the 6502 Microprocessor


Top
 Profile  
 
PostPosted: Tue Jun 10, 2014 5:23 am 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8448
Location: Southern California
White Flame wrote:
"My machine can behave like a completely different machine!" == the act of emulation.

This is generally accomplished by software simulating what goes on in the other machine to whatever detail necessary to correctly perform the desired emulation.

Simulation vs emulation is a false dichotomy.

That's ignoring the problem.  There has to be a way to specify that it can connect to modules or other hardware that may be specific to the particular machine, with certain connectors, voltages, set-up times, hold times, etc..  This is well beyond the scope of software.  Taking away the word "emulator" to use for software-only products takes away the only word we had left to specify this kind of thing.  "In-circuit emulator" is only one type of hardware emulator (the kind that plugs into a socket in your board), and does not cover all types of hardware emulators.

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Top
 Profile  
 
PostPosted: Tue Jun 10, 2014 5:28 am 
Offline
User avatar

Joined: Thu May 28, 2009 9:46 pm
Posts: 8197
Location: Midwestern USA
BitWise wrote:
Time to get hip with the new lingo people.

http://en.wikipedia.org/wiki/Emulator#Emulation_versus_simulation

Emulation is the new simulation (and has been for over 30 years). Time to stop living in the past.

New lingo isn't automatically correct lingo. Also, anything coming from Wikipedia is automatically suspect. :lol:

_________________
x86?  We ain't got no x86.  We don't NEED no stinking x86!


Top
 Profile  
 
PostPosted: Tue Jun 10, 2014 5:48 am 
Offline

Joined: Tue Jul 24, 2012 2:27 am
Posts: 672
I'm not taking away the word "emulator". Plus, I was responding to the thread as a whole, not the most recent posts.

I'm saying that "emulation" is the behavioral act of one machine acting like another. It has nothing to do with the precision or simulation technique involved. Whatever's required to get that behavior to happen is typically called an "emulator". If replication of the experience requires the ability to interface with external hardware, then that's part of the included "emulated" situation.

"Simulation" has a few meanings. One is that instead of just acting like a different machine (emulation), it simulates an human-modeled or human-experienced environment that would typically happen without a machine, like a flight simulator. Another is non-interactive emulation; it behaves like something else, not for the purposes of presenting its outermost behavior to reality, but for discovering & researching internal or system properties and states, often ignoring wall-clock time but tracking modeled time.

But again, a simulator can have varying degrees of accuracy and detail depending on the needs. I don't believe it's sensible to say "emulation is less accurate than simulation" or the converse. It doesn't make sense, especially since emulation software performs simulation. Emulation and simulation are talking about purposes for replicating behavior, not how detailed/accurately the behavior is replicated.

When what's discussed is mocking up a machine interface to another system, I think both terms are equally applicable.

_________________
WFDis Interactive 6502 Disassembler
AcheronVM: A Reconfigurable 16-bit Virtual CPU for the 6502 Microprocessor


Top
 Profile  
 
PostPosted: Wed Jun 11, 2014 8:42 pm 
Offline

Joined: Sun May 08, 2011 7:39 am
Posts: 104
I haven't read all the arguments here but when I first encountered ICE it was referred to as "Hardware Emulation". Nowadays, of course, people rarely use these devices as they have (software) emulation.

You mention ICE to a youngster today and they'll think you mean In Car Entertainment!


Top
 Profile  
 
PostPosted: Sun Apr 05, 2015 9:14 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10816
Location: England
I don't think there's an end to this - those with strong opinions are not likely to change them. My point in starting the thread was to draw away all the sidetracks on this subject which appear in other threads from time to time. We can do without those if we have a central place to talk.

FWIW, the first couple of answers at
http://stackoverflow.com/questions/1584 ... difference
seem quite good to me. (Also at
http://stackoverflow.com/questions/2174 ... simulation
)


Top
 Profile  
 
PostPosted: Sun Apr 26, 2015 10:29 pm 
Offline
User avatar

Joined: Fri Dec 12, 2008 10:40 pm
Posts: 1003
Location: Canada
Not sure if this was covered in the preceding arguments (did not read them all).

It has always been my understanding that in general terms, as simulation has varying degrees of the look and feel of what is being simulated. Some are more accurate and more complete than others. While emulation must actually do what the thing being emulated does. Take an example outside of computers/CPUs. Flight.

A flight simulation of a Spitfire must only respond like a Spitfire and need not even take input as a real Spitfire or actually have a real physical response. Like a software flight simulator as an example. The software flight simulator does not actually fly, or bank when you actuate the simulated ailerons, but it can show you a picture of the simulated horizon banking and tell you the calculated bank angle and roll rate.

However, a Spitfire emulator must actually fly like a Spitfire. You must be able to get in it, start it up, taxi it down the runway, etc...

The difference gets a little fuzzier when it comes to emulating or simulating a CPU, but if you ask me, something like Kowalski's 6502 emulator is actually a simulator. But it's really just semantics. As long as it does what you need it to do you can call it whatever you like.

_________________
Bill


Top
 Profile  
 
PostPosted: Mon Apr 27, 2015 6:24 am 
Offline
User avatar

Joined: Fri Dec 11, 2009 3:50 pm
Posts: 3362
Location: Ontario, Canada
This discussion has removed all doubt from my mind. In future, the term I will use is "semulator" !! :D

_________________
In 1988 my 65C02 got six new registers and 44 new full-speed instructions!
https://laughtonelectronics.com/Arcana/ ... mmary.html


Top
 Profile  
 
PostPosted: Mon Apr 27, 2015 2:34 pm 
Offline
User avatar

Joined: Fri Dec 12, 2008 10:40 pm
Posts: 1003
Location: Canada
Dr Jefyll wrote:
This discussion has removed all doubt from my mind. In future, the term I will use is "semulator" !! :D


Works for me.

_________________
Bill


Top
 Profile  
 
PostPosted: Fri Jun 05, 2015 2:57 pm 
Offline
User avatar

Joined: Thu Dec 11, 2008 1:28 pm
Posts: 10816
Location: England
Possibly interesting historical note: when IBM decided to build the 360 series circa 1964 it was important to protect customers' investment in software for previous machines.
Quote:
Larry Moss of IBM called this ability emulation, implying that it was "as good as" (or even better than) the original, rather than mere "simulation" or worse, "imitation."

- p.149 of A History of Modern Computing, Paul Ceruzzi, 1998

The idea was to be able to run existing binaries, and it seems the emulation could be at microcode level (needs a reboot) or by software in the modern way. Programs written for the 1401 were apparently still running thirty or forty years later. The 360 series was intended to be a long-lived architecture with binary compatibility covering a 25:1 performance range - which held true up to 200:1 in 1970 and for several decades beyond. Part of the trick was to make microcoded CPUs, such that the microarchitecture need not map too closely to the instruction set architecture.


Top
 Profile  
 
PostPosted: Fri Jun 05, 2015 6:46 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8448
Location: Southern California
I'd say he's tunnel-visioned into a narrow idea of computing. I noticed in the 1980's that mainframe people tended to be that way, not giving any credit to embedded-control computers, or even home computers, but somewhat arrogantly holding the opinion that real computers are huge and are for data processing for banks and so on. Real emulation is a rather irrelevant concept in a mainframe or even a calculator with no I/O that has to interface to other modules with the same pinouts, voltages, and timings, whether expansion buses or other type. A calculator that has only a keyboard and display as I/O (which is most of them) can legitimately be said to be emulated on a smartphone; but one like the HP41 can only be truly emulated if the emulator allows plugging in the same physical modules into its ports to test or use them. Same with an Apple II and its slots.

BigDumbDinosaur wrote:
New lingo isn't automatically correct lingo.
So true, just as incorrect grammar or spelling don't become correct just because they're common. When I went to the auto parts store to get a new starter relay for my van, the man behind the counter absolutely insisted that it's called a "solenoid" (probably just because it handles more current than something like a headlight relay), not understanding that a solenoid by itself cannot do the switching, that it has to be connected to a switch, and the two together, the solenoid operating the switch, make up the relay. The repair manual however correctly calls it a relay. I told the man, "I design relays into our aircraft products. I know what a relay is."

_________________
http://WilsonMinesCo.com/ lots of 6502 resources
The "second front page" is http://wilsonminesco.com/links.html .
What's an additional VIA among friends, anyhow?


Top
 Profile  
 
PostPosted: Thu Dec 05, 2019 12:01 pm 
Offline
User avatar

Joined: Sat Dec 01, 2018 1:53 pm
Posts: 727
Location: Tokyo, Japan
BitWise wrote:
Emulation is the new simulation (and has been for over 30 years). Time to stop living in the past.

Right. Because nobody on this forum is living in the past! :-P

_________________
Curt J. Sampson - github.com/0cjs


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic This topic is locked, you cannot edit posts or make further replies.  [ 45 posts ]  Go to page Previous  1, 2, 3  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 8 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: