Loading ...
Sorry, an error occurred while loading the content.

RE: [midatlanticretro] Emulators

Expand Messages
  • Dave
    ... In general 99% of emululators only use a single core. The main exception I know of is the Hercules mainframe emulator which will use multiple cores to
    Message 1 of 6 , Dec 2, 2012
    • 0 Attachment
      > -----Original Message-----
      > From: midatlanticretro@yahoogroups.com
      > [mailto:midatlanticretro@yahoogroups.com] On Behalf Of Douglas
      > Sent: 02 December 2012 08:06
      > To: midatlanticretro@yahoogroups.com
      > Subject: [midatlanticretro] Emulators
      >
      >
      > Been looking around at various emulators of systems.
      > I would like to put together my own comprehensive set,
      > probably on a multi-core PC. (suggestions as to what versions
      > ya'll like best of the various platforms welcome!)
      >

      In general 99% of emululators only use a single core. The main exception I
      know of is the Hercules mainframe emulator which will use multiple cores to
      emulate a multiple CPU mainframe. The problem is that the Operating Systems
      that are freely available don't support multiple cores well. There is also a
      special port of SIMH to emulate multiple CPU Vaxen.

      > Has there ever been an effort to see how many systems can be
      > emulated inside of one another... like a chronological order
      > of systems emulated within other systems...

      I don't think so.

      > Say, in the micro realm: An Altair emulator running on an
      > Apple II emulator running on a TRS-80 emulator running on a
      > C64 emulator running on a mac emulator... running on a real
      > *insert fast computer* here. Would like to jam an 1802 in
      > there somewhere too.

      The problem is which way round do you run them? I have an Atari ST which
      will emulate an IBM PC and the IBM PC would also emulate an Atari...... I
      also found that the PC emulator does not run well on most of the Atari ST
      emulators I have tried. (there are around five I think)

      > You get the idea. Couldn't find
      > anything like this searching... but didn't feel I came up
      > with good search terms to describe it. I guess the last
      > emulated system would crawl and it would be be a challenge to
      > assemble all the file systems onto the first host machine.
      > It has to have been attempted...
      >

      The only time I know this type of thing has been tried and the results
      published was on mainframes. So you can run Hercules emulator under zVM or
      zOS and then run zOS within the emulator. This used to allow these OS's to
      be legally tested under Hercules as they are still running on the hardware
      for which they are licensed...

      >
      >
      Dave Wade G4UGM
      Illegitimi Non Carborundum
    • Douglas
      ... Thanks for the perspective. I guess the order they would run would be dictated by the order which they are known to run best. Could be tough to fit a
      Message 2 of 6 , Dec 2, 2012
      • 0 Attachment
        --- In midatlanticretro@yahoogroups.com, "Dave" <dave.g4ugm@...> wrote:
        >
        >
        > > -----Original Message-----
        > > From: midatlanticretro@yahoogroups.com
        > > [mailto:midatlanticretro@yahoogroups.com] On Behalf Of Douglas
        > > Sent: 02 December 2012 08:06
        > > To: midatlanticretro@yahoogroups.com
        > > Subject: [midatlanticretro] Emulators
        > >
        > >
        > > Been looking around at various emulators of systems.
        > > I would like to put together my own comprehensive set,
        > > probably on a multi-core PC. (suggestions as to what versions
        > > ya'll like best of the various platforms welcome!)
        > >
        >
        > In general 99% of emululators only use a single core. The main exception I
        > know of is the Hercules mainframe emulator which will use multiple cores to
        > emulate a multiple CPU mainframe. The problem is that the Operating Systems
        > that are freely available don't support multiple cores well. There is also a
        > special port of SIMH to emulate multiple CPU Vaxen.
        >
        > > Has there ever been an effort to see how many systems can be
        > > emulated inside of one another... like a chronological order
        > > of systems emulated within other systems...
        >
        > I don't think so.
        >
        > > Say, in the micro realm: An Altair emulator running on an
        > > Apple II emulator running on a TRS-80 emulator running on a
        > > C64 emulator running on a mac emulator... running on a real
        > > *insert fast computer* here. Would like to jam an 1802 in
        > > there somewhere too.
        >
        > The problem is which way round do you run them? I have an Atari ST which
        > will emulate an IBM PC and the IBM PC would also emulate an Atari...... I
        > also found that the PC emulator does not run well on most of the Atari ST
        > emulators I have tried. (there are around five I think)
        >
        > > You get the idea. Couldn't find
        > > anything like this searching... but didn't feel I came up
        > > with good search terms to describe it. I guess the last
        > > emulated system would crawl and it would be be a challenge to
        > > assemble all the file systems onto the first host machine.
        > > It has to have been attempted...
        > >
        >
        > The only time I know this type of thing has been tried and the results
        > published was on mainframes. So you can run Hercules emulator under zVM or
        > zOS and then run zOS within the emulator. This used to allow these OS's to
        > be legally tested under Hercules as they are still running on the hardware
        > for which they are licensed...
        >
        > >
        > >
        > Dave Wade G4UGM
        > Illegitimi Non Carborundum
        >

        Thanks for the perspective. I guess the order they would run would
        be dictated by the order which they are known to run best. Could be
        tough to fit a chain of emulators in an order where the one is known
        to run well with the other. Of course all the emulators would actually be running
        on one host machine which has emulators written for each old platform.

        There would be some hope that multi cores would somehow come to bear on
        helping the execution of the various machines... if the different emulators could
        be separated into processes that could migrate to other cores. I don't have any
        real experience here to know if that could be arranged. I hoping but intuitively I'm
        think the whole chain would be in one process without mods to the emulators, which
        would would be a big pain. Otherwise it would seem to me the layers of emulators
        would seem to have to interprocess communicate.

        Well it is a curiosity. I hope there might be some interesting thoughts expressed.
      • Jeffrey Brace
        From: Douglas Sent: Sunday, December 02, 2012 3:05 AM ... The best Commodore 64 (and other Commodore computers) is Vice. It is available on many platforms PC
        Message 3 of 6 , Dec 2, 2012
        • 0 Attachment
          From: Douglas
          Sent: Sunday, December 02, 2012 3:05 AM

          >(suggestions as to what versions ya'll like best of the various platforms
          >welcome!)

          The best Commodore 64 (and other Commodore computers) is Vice. It is
          available on many platforms PC etc.

          Jeff B
        • Bob Applegate
          ... The focus is really on whether you can do this in multiple threads, not which cores they are running on. Unless you re simulating a multi-core machine to
          Message 4 of 6 , Dec 3, 2012
          • 0 Attachment
            > There would be some hope that multi cores would somehow come to bear on
            > helping the execution of the various machines... if the different emulators could
            > be separated into processes that could migrate to other cores. I don't have any
            > real experience here to know if that could be arranged. I hoping but intuitively I'm
            > think the whole chain would be in one process without mods to the emulators, which
            > would would be a big pain. Otherwise it would seem to me the layers of emulators
            > would seem to have to interprocess communicate.

            The focus is really on whether you can do this in multiple threads, not which cores they are running on. Unless you're simulating a multi-core machine to start with, I don't see how using threads would make this any easier except for possibly emulating hardware. Ie, your 6502 thread writes to a simulated I/O location that sends a byte to the serial port on the emulated target; the output to a window emulating a VT-100 might be a good candidate for another thread.

            Simply splitting each simulated processor into a separate thread is counter-intuitive since the early microprocessors were all single core anyway. Ie, using multiple threads to run my 6502 emulator even faster works how? Every other 6502 instruction is executed by two different threads? Emulating a 2 MHz 8 bit processor on a 3 GHz 32 bit processor will run plenty fast without doing instructions in parallel. Each thread has to be synchronized so as not to run ahead of the other... it wouldn't work too well to do a conditional branch on one thread while another thread hasn't completed the previous compare instruction.

            If you're running a Z80 simulator on a 6502 simulator on top of an 1802 simulator, where would you split the threads? Going multi-threaded works where you want to run many things in parallel, but I'm not seeing much advantage for this application since you're trying to emulate single-threaded systems.

            Maybe I'm not understanding what you're trying to accomplish.

            Bob - K2UT
          • Bob Schwier
            Parallel processing was a dream.  Most machines were von Neuman serial processing machines.  Multiple processes were handled sequentially by the machine. 
            Message 5 of 6 , Dec 3, 2012
            • 0 Attachment
              Parallel processing was a dream.  Most machines were von Neuman serial processing machines.  Multiple processes were handled sequentially by the machine.  Inputs had to be separately cached to their users.  That's funny, the machine
              that controlled my life in college would have been weaker than the laptop I am doing this on.  Theoretically, this computer would have 256 potential inputs if the operating system kept certain legacy abilities.  It would be possible to emulate a
              seventies computer lab from a more modern machine.
              bs



              From: Bob Applegate <bob@...>
              To: midatlanticretro@yahoogroups.com
              Sent: Monday, December 3, 2012 5:54 AM
              Subject: [midatlanticretro] Re: Emulators

               
              > There would be some hope that multi cores would somehow come to bear on
              > helping the execution of the various machines... if the different emulators could
              > be separated into processes that could migrate to other cores. I don't have any
              > real experience here to know if that could be arranged. I hoping but intuitively I'm
              > think the whole chain would be in one process without mods to the emulators, which
              > would would be a big pain. Otherwise it would seem to me the layers of emulators
              > would seem to have to interprocess communicate.

              The focus is really on whether you can do this in multiple threads, not which cores they are running on. Unless you're simulating a multi-core machine to start with, I don't see how using threads would make this any easier except for possibly emulating hardware. Ie, your 6502 thread writes to a simulated I/O location that sends a byte to the serial port on the emulated target; the output to a window emulating a VT-100 might be a good candidate for another thread.

              Simply splitting each simulated processor into a separate thread is counter-intuitive since the early microprocessors were all single core anyway. Ie, using multiple threads to run my 6502 emulator even faster works how? Every other 6502 instruction is executed by two different threads? Emulating a 2 MHz 8 bit processor on a 3 GHz 32 bit processor will run plenty fast without doing instructions in parallel. Each thread has to be synchronized so as not to run ahead of the other... it wouldn't work too well to do a conditional branch on one thread while another thread hasn't completed the previous compare instruction.

              If you're running a Z80 simulator on a 6502 simulator on top of an 1802 simulator, where would you split the threads? Going multi-threaded works where you want to run many things in parallel, but I'm not seeing much advantage for this application since you're trying to emulate single-threaded systems.

              Maybe I'm not understanding what you're trying to accomplish.

              Bob - K2UT



            Your message has been successfully submitted and would be delivered to recipients shortly.