Do you have multiprocessing?

Jordan
2007-02-11
2013-05-14
  • Jordan
    Jordan
    2007-02-11

    I'm making an emulator and thinking it'd be kinda neat to support multiprocessing for the 8086.
    The only problem is I can't find ANY code or docs for how multiprocessing on the 8086 works.

    I quickly skimmed through the CVS code and didn't see anything on multiprocessing, but just to be sure I'm asking if you have ANY code for 8086 multiprocessing

     
  • Jody Bruchon
    Jody Bruchon
    2011-04-12

    In short, no, because no such hardware exists.

    I am unaware of any 8086 platforms that support multiple processors, and if they exist, they are very likely to be proprietary systems with inaccessible programming documentation.  AFAIK multiprocessing on x86 didn't start to gain any serious ground until the era of the 80486.

     
  • Ronald Wochner
    Ronald Wochner
    2012-11-14

    If I may seriously necro-post:
    First, I am just an amatuer hobbyist, so if anything I say is horridly wrong, let me know (gently please!)
    I collect (my wife would say 'am obsessed with') old computers, and one area I am starting to expand into, is the S100 bus systems. This is what the Altair 8800 and IMSAI8080 used, and was eventually known as IEEE969  (though I think it got dropped before the standard was made official.) Anyway, the s100 bus is just a bus system, much like PCI, or the ISA bus on a PC, except that EVERYTHING plugged into it. The motherboard is just a backplane, with seperate processor cards, ram cards, etc etc. Now what is cool is that it is DESIGNED to be a multiprocessor system- sort of. You have a dedicated 'master' processor, which runs the system. The 'slave' processors can send signals requesting control of the bus- IE in order to access a floppy, or the ram, or whatever. Depending on the setup, the master chooses to hand over control or not. If it DOES, then it goes through a handover sequence, relinquishing control of the bus to the 'temporary master' IE the slave that requested control.
    This is a horrible summary by someone just learning the details, but an EXCELLENT source of info is www.s100computers.com
    NOW, that said, there were a bunch of diy kits, etc. Also, many companies produced complete S100 systems, but they were almost exclusively of the above design. They may have come with processor, memory, disk controller boards, etc, but all were daughter cards that plugged into the bus.
    The 3 exceptions that I *know* of, were the SOL 20, the Excidy Sorcerer, and the Zenith Data Systems/Heath Z/H 110/120. Zenith owned Heathkit, and produced fully assembled computers, the Heath versions were identical, but sold as a kit for the buyer to assemble themselves.
    I don't know anything about the SOL or the Exidy, other than that they existed, and I believe both used an external s100 card cage as an expansion box. But I don't know for sure.
    The Zenith/Heath systems, (Zenith for simplicity) I have only recently begun investigating in depth. They were, however, VERY well documented, and the technical manual (and service manual!) with schematics, can be found online in pdf form with some searching. As well as several excellent sites that offer info, history, and a few programs.
    BUT to get back on topic, this machine came used a 5 slot s100 bus as an expansion bus, tied into the rest of the computer. The only pieces that were actually IN the s100 cage, were the floppy disk controller card, the HDD controller card, (optional!) and the optional network card, which was it's own strange beast. Anyway, the rest of the system, including rom, ram, and disk drives, were all 'built in'. Though you could access any memory on the s100 bus, just as you would on a 'normal' s100 computer. The Z-120 model also included a built in monitor!
    So anyway, the computer could switch between the onboard 8085/8088 processors, and also hand off control to any processor in the s100 bus. HOWEVER, as far as I know, this was accomplished EXCLUSIVELY or nearly so, in hardware. Also, they were not 'parallel' processing, that is, NOT working on the same thing at once, rather, they were passing external resources back and forth, while each doing their own thing. More like having seperate computers that shared ram, floppy drives, etc. So I doubt it is helpful to the OP, but thought I would share, and hope that it was at least interesting/useful to someone.