• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Did Apple Ever Support Multiprocessor Macintosh PowerPC Systems During The Early PowerPC Era?

Paralel

Well-known member
Did Apple ever support multiprocessor Macintosh PowerPC systems during the early PowerPC era?

I just came across a piece of Apple software that is meant for a dual processor PowerPC 604 system, it was made in 1996.

 

LaPorta

Well-known member
I believe the 9600s had multiple processors built in (more I'm sure, I just can't remember). There was a Finder extension for running some of the Finder and System code in parallel between the two, but unless you had a special program (like you mention), support was poor to non-existent at the time.

 

AlpineRaven

Well-known member
Yep they did.. yep it was 9600/200MP. It was pretty much useless as the programs wasn't really supported (I think Adobe was the only one that was supported). I have one of those CPU cards somewhere, I've only seen 200mhz dual.

I am curious what kind of software it was?

Cheers

AP

 

Franklinstein

Well-known member
Somebody with more info is welcome to chime in, but this is what I've gathered from reading Apple Dev Notes and User Guides for Motorola chips:

Multiprocessor was weird in early Macs. The first Mac with an MP setup was the 9500/180MP. It's a cooperative multitasking arrangement and requires programs to be specifically multiprocessor aware to take advantage of that second processor, which otherwise sits idle without the first processor explicitly feeding it instructions from those MP-aware programs. Because of the weird hardware arrangement, OS X and Linux have no support for the second processor. The same is true for their followup machine, the 9600/200MP. 

The ANS is a weird beast that I don't have too much experience with. It was designed to run A/UX or other *nix flavor and its MP system may have been implemented conventionally to allow proper SMP operation, but again I can't say for sure because I haven't really touched one.

For cloners, the only other one who really did MP was Umax and any of their sublicensees that used the Tsunami board. Because it was based on the 9500, it operated in the same manner: a CMP system that required MP-aware software. These used basically a mirror-image processor card that fit in a secondary slot with the original processor and the two were connected with a bridge cable.

Daystar Digital actually worked with Apple in the development of the MP system that they both used, though Daystar was the only one to use more than two processors. Because of the limitations of the 9500 it was based on, it too was only CMP.

The primary limitation of these machines with their use of CMP instead of SMP is that the memory controller/PCI bridges Apple used were unable to directly interface with more than one processor. If I had to guess, I'd say they were developed in the same way as Motorola's bridge chips (such as the MPC105 and later MPC106) which shared similar limitations: they could either support two (or later up to four) 60x processors directly, or a single processor with a direct mapped board-level L2 cache. Because Apple designed their machines primarily to support the one processor and L2 cache, the second processor was thus unable to be accessed directly by the memory controller; it had to be fed by the primary processor via specially-programmed applications. Because the primary processor had to manage the secondary, there was a small overhead incurred which resulted in an MP Mac only being about 60% faster than a similarly-clocked single-processor model.

This is why other OSes can't use the CMP system that these machines used: they're not programmed for it either because it's a huge undertaking that's not really worth it or Apple never made the relevant information public.

 

Paralel

Well-known member
Interesting. Thanks for the info. The software I came across was from Apple, "Multiprocessing Software 1.4.1", It was apparently the software the enabled the multiprocessing function on those two systems. That explains why I never heard of it before, it was limited to those two systems and was never really implemented by anyone.

 

Franklinstein

Well-known member
Yeah it sounded impressive in theory but it didn't really pan out in practice and in the end was kind of a waste of effort, but that was mid-90s Apple in a nutshell. 

Generally the only software that's ever mentioned as supporting these systems are certain versions of PhotoShop or perhaps other Adobe programs. Maybe some high-end audio suites? Possibly a couple specially-developed scientific programs that nobody outside of those projects have ever heard of.

 

Danamania

Official 68k Muse
Somebody with more info is welcome to chime in, but this is what I've gathered from reading Apple Dev Notes and User Guides for Motorola chips:

Multiprocessor was weird in early Macs. The first Mac with an MP setup was the 9500/180MP. It's a cooperative multitasking arrangement and requires programs to be specifically multiprocessor aware to take advantage of that second processor, which otherwise sits idle without the first processor explicitly feeding it instructions from those MP-aware programs. Because of the weird hardware arrangement, OS X and Linux have no support for the second processor. The same is true for their followup machine, the 9600/200MP. 


OS X may not, but Linux on my 9500/180MP is perfectly happy to detect and use both CPUs.

 

Gorgonops

Moderator
Staff member
OS X may not, but Linux on my 9500/180MP is perfectly happy to detect and use both CPUs.
Yes. We had almost this exact thread a few months ago and the same claim about the multi-CPU 604s being incapable of SMP was thrown out, but Linux can indeed use them.

There does seem to be a little weirdness about the design compared to, say, Intel's SMP specification because going through the Linux kernel code it kind of reads like one CPU is stuck doing all the interrupt handling. (?) But the systems do have memory coherence hardware, it is *not* an all software arrangement like, say, the dual 603e BeBox.

Apple's pre-OS X *software* set up is indeed completely *not* SMP.

 

trag

Well-known member
NITPICK:    The ANS never shipped a multiprocessor CPU.   There was one out in the wild, which required a special ROM.   I don't know who has it now.  There might have been more than one, but I only ever heard of one.

The primary limitation of these machines with their use of CMP instead of SMP is that the memory controller/PCI bridges Apple used were unable to directly interface with more than one processor.


Depends on what you mean by "directly interface with".

The CPU slot in the X500/X600 machines has two sets of Bus Request, Bus Grant and Interrupt signals.    One labeled P the other S, presumably for Primary and Secondary.    A second CPU on a CPU card properly connected to those signals can request and take over the CPU bus and have all the access to the hardware that primary CPU has.  

I'm not certain how interrupt handling happens under that scheme. I know Grand Central collects interrupts but I'm not sure how they get processed and sent back to the CPUs.   But all the hardware should look identical to the two possible CPUs once one has requested and been granted control of the bus.

I have no idea how Daystar squeezed four CPUs into that scheme.

 

Gorgonops

Moderator
Staff member
I'm not certain how interrupt handling happens under that scheme. I know Grand Central collects interrupts but I'm not sure how they get processed and sent back to the CPUs.   But all the hardware should look identical to the two possible CPUs once one has requested and been granted control of the bus.
Yeah, that's why I put the question mark in my reply. There's some really old traffic on the kernel mailing lists and comments in the kernel code that suggest that either it doesn't do interrupt steering in quite the same way as, for instance, Intel's APIC does, or if it does the kernel developers were having trouble making it work. The word on the street seems to be that the SMP code for the Beige PowerMacs was never particularly reliable, and that problem got worse/was never really solved when the SMP infrastructure in Linux was drastically improved post-2.4, which eliminated most of the "Big Lock", but since I have zero experience with Linux on these machines I don't know how accurate a summation that is.

(Note that this doesn't necessarily tell us that much about how capable the hardware actually is, or at least theoretically is. Apple was *bad* about fully documenting these machines because they never really intended third-party OSes to run on them. BeOS abandoned the Mac platform specifically because they were sick of reverse engineering everything.)

But, yeah, as Trag says on these machines (and with these CPUs) it doesn't take very much glue to do SMP. Most of the CPU's pins are in parallel, they take turns on the bus, and each CPU has some signals it can raise to say "I have writes in my cache that I haven't pushed to main memory, you might want to take this into account" to the other CPU. Intel's P6 family CPUs needed essentially zero glue to do either two or four CPUs (depends on the CPU model), the 604 needs "a little", which the chipset in the X5/600 supplies, at least for two CPUs. (How Daystar did four is a good question, I can only guess that there's some support for cascading those bus arbitration signals that is likewise super-undocumented.)

 

Gorgonops

Moderator
Staff member
FWIW, here's the previous thread where we talked about the SMP Beige machines, including the Daystar Quad:
 





I quoted/extemporized on some chunks of the Linux source code for these things, and here's a couple takeways:

  1. Apple never had even a trace of OpenFirmware support for multi-CPU configurations of these boxes, the only way to even tell it has an additional CPU is doing some potentially unstable probing of the Hammerhead memory controller. This (among others) is a good reason why Apple never ported OS X to these boxes. (And why no hacker has managed it either.)
  2. There's some grumbling about IPI's (Inter-processor-interrupts) being funky on this hardware. So even though it's technically an SMP-capable platform apparently at least the Linux kernel developers had some doubts about its robustness. (Again, this may boil down to a question of whether the hardware is actually lacking or if it's just arcane enough that reverse engineering it successfully eludes everyone who tries.)
So... while it's clearly technically SMP-capable hardware, it might be fair to say that Apple only "certified" it to run with their essentially "just use the extra CPUs as DSPs" software for the classic MacOS.

 
Last edited by a moderator:

Paralel

Well-known member
Well, I certainly have learned quite a bit from this thread, so that's always a good thing. Most of my knowledge is 68k, so it's good to learn some about the early Apple PowerPC era.

 

jessenator

Well-known member
Yep they did.. yep it was 9600/200MP. It was pretty much useless as the programs wasn't really supported (I think Adobe was the only one that was supported). I have one of those CPU cards somewhere, I've only seen 200mhz dual.

I am curious what kind of software it was?

Cheers

AP
I can't find photo examples, but I believe they compiled special versions of Photoshop to take advantage of the MP capabilities around this time (97-98), which would've made it maybe 4.0 but more like 5.0… not sure 100%. I do know the dual G5 had a special version of Photoshop: I remember setting up the MP G5 tower at the broadcast group I worked for and the Photoshop box had a decal on it indicating it was for MP systems. Unless it was all some hallucination…

Premiere 5.x(?) supported MP, and was actually recommended by Adobe. I want to Say AfterEffects, but I have my doubts.

I think even Steinberg Nuendo had the capability for MP. I don't think Logic (emagic or apple) did until v.7

 

Cory5412

Daring Pioneer of the Future
Staff member
I don't believe it was an entire edition of photoshop, if I remember correctly it was MP-aware replacement plugins for certain functions, for example, using a plugin there was an MP-aware Gaussian blur.

A couple more OS 9 titles became MP-aware in the G4 era, but the real point of the duallie G4s was absolutely Mac OS X.

Mac OS X  naturally supported MP in the OS, and any application that had the ability to do multi-threading could take advantage of it, but of course it depends on what's happening. Photoshop tends to do actions in sequence because, say, you're rnning a script to process an image in a certain way, the results of one filter will depend on the results of another. (So, you can't, generally speaking, concurrently Gaussian and unsharpmask an image.)

EDIT: Unless Adobe did something weird with the packaging for, say, Photoshop 7, which I believe supported some speed tricks the G5 had if you ran it under OS X. Again, usually specific plugins.

EDIT 2: I have had Mac versions of CS1, CS2 and CS3 on hand and they greatly simplified the visual design of the packaging in that era and didn't, to my recollection, have any badges or logos for things like multi-processing, however it may have been mentioned that it supported duallie G4/G5/P4HT/PD/Xeons on the respective versions.

 
Last edited by a moderator:

beachycove

Well-known member
Sure did. The System just never made it to market: see Chapter 4 of https://www.pagetable.com/docs/copland_docs/book/Mac OS 8 Revealed.pdf#page1 .

Some of this functionality was apparently rolled into the chewing gum and tape MacOS8.5/8.6 that emerged, and even there it's noticeable. In my experience, an 8600 with a dual 180mhz 604e in it is a revelation (for some things). The kernel in 8.6 is multiprocessor aware, so you can do several things at once with ease in the Finder, for instance. Applications? Not so much, though there were 25-odd multiprocessor-ware applications, Photoshop being the killer. The machines were surely used mainly in publishing/ graphics, after all.

Earlier on, the AV Quadras ran an OS within the MacOS that allowed multiprocessing, e.g., telephony at the same time as CAD work, all without stuttering. The AV cards in the 601PPC Macs couldn't do that, as the software environment was 68k only.

 

CC_333

Well-known member
Sure did. The System just never made it to market: see Chapter 4 of https://www.pagetable.com/docs/copland_docs/book/Mac OS 8 Revealed.pdf#page1 .
Ah, Copland. It's too bad it was so mismanaged, as it was actually a rather promising concept, and had it not been cancelled, what we now know as Mac OS X would probably be based on it instead of NeXTSTEP.

I wonder if the source code still exists anywhere? It would be fascinating if Apple would open source it for educational purposes, and maybe someone could actually make it a workable OS. This is never gonna happen of course, but one can always dream, right?

c

 

CC_333

Well-known member
Huh, I replied to this? I guess that memory got lost down the Pandemic Memory Hole....

Has anyone examined this further since... March 2019?

It would be kind of fun to create some sort of Copland-like enhancement package for the classic Mac OS that adds, among other things, protected memory and better multitasking (along with better, more proper multiprocessor support that non-MP aware applications can take advantage of). Surely by now, there exists enough knowledge of Mac OS's inner workings that something like that might be possible?

Of course, what I said in my last post still stands. It would be very neat if Apple released Copland's source, but they likely never will. However, what about disassembling/decompiling one of the extant Copland developer builds and reverse engineering it? With some of the recent advancements in the classic Mac development scene, maybe that has become a reasonable possibility? That should be fairly doable, since Copland and Mac OS don't seem hugely different, and thus most of the knowledge gained in recent examinations of Mac OS should translate to Copland (particularly since Mac OS >= 8.6, which allegedly incorporates a very Copland-like MP-aware kernel, according to the document @beachycove linked to).

c
 
Last edited:

unity

Well-known member
I owned an 9500/180MP and my work, at the time, had an odd custom 8500/120MP. The CPU card was red and my understanding is it may have been a photo - the card, not the machine. In any case, Photoshop required a plugin as mentioned. Really MacOS was no better at all but at the time, that was really not a deal breaker. Even on the PC side having more than one processor was seen as a way to speed up specific tasks or apps - sorta like the math-coprocessor mentality. It was not really expected to have an overall faster machine, but it was expected to perform certain tasks faster. Today its nothing like that, even if one CPU is dominant it seems all the cores get to play well together and help out with pretty much anything. So looking back, they may seem in way crippled or poorly designed, but they worked as expected and they worked pretty well.
 
Top