• 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.

604e versus the G3

johnklos

Well-known member
If it weren't for the fast L2 cache, yes. Depending on what you're doing the 1 meg of L2 on a 604ev card, even though it's slower, might turn out more helpful than 512k of L2 on a G3 card. Compiling, for instance, while not exactly the most common activity on PowerPC Macs, often benefits more from larger caches.

If your G3 card has 1 meg of L2, then it'd be faster in most things.

 

H3NRY

Well-known member
As fas as the G3 being optimized for the way MacOS works, thats sounds like marketing BS.
I asked one of the CPU guys at IBM about that, and he said, yes they did a lot of profiling of MacOS, and common opcodes were given hardware, while seldom used instructions were done in microcode. In other words, the G3 was a 603e tuned for MacOS. The 604 was a mainstream (for IBM) Power processor, with emphasis on FP, multiprocessing, and multitasking in a server environment. One was an engine for a Mustang, the other an engine for a Greyhound bus.

 

Dog Cow

Well-known member
As fas as the G3 being optimized for the way MacOS works, thats sounds like marketing BS.
I asked one of the CPU guys at IBM about that, and he said, yes they did a lot of profiling of MacOS, and common opcodes were given hardware, while seldom used instructions were done in microcode. In other words, the G3 was a 603e tuned for MacOS.
I read a Usenet post about a similar thing in comp.arch, but it was for the older Motorola 68k series.
It was the same thing, though-- you ran a profiler on your Mac which recorded opcodes, sent the data to Motorola, and they used it for further research and enhancement of future products.

 

ChristTrekker

Well-known member
To summarize what's in pieces here, the G3 is an updates 603 core. The 604 is capable of dispatching more instructions per clock than the 603 or G3 and the FPU is definitely faster. The reason that the G3 is generally faster is that the G3 has an L2 cache controller built-in and therefore almost always has fast L2 cache (133 MHz to 200 MHz as opposed to 50 MHz for the 604(e) and 100 MHz for the 604ev) and almost always used a faster SDRAM bus (66 MHz SDRAM as opposed to 50 MHz (typical) FPM).
If you were to put a 604e onto the same speed memory bus with the same amount of L2 cache also running at the same speed as a G3, it'd be faster than the G3 at everything.
Would you say the 604→G4 relationship mirrored the 603→G3 relationship?

One thing I've never really understood about microprocessors is why some are good for MP and others not. Was m68k a MP-capable design? Obviously 604s, G4s, and G5s were.

 

johnklos

Well-known member
Would you say the 604→G4 relationship mirrored the 603→G3 relationship?
One thing I've never really understood about microprocessors is why some are good for MP and others not. Was m68k a MP-capable design? Obviously 604s, G4s, and G5s were.
One could reasonably say that since the G4 brought the CPU feature list back into parity with the 604(e(v)).

Usually there are two factors which make a CPU good for multiprocessing. One, of course, is a fast memory bus. If the memory bus can barely keep up with one CPU, then adding a second CPU isn't going to help except with CPU intensive work which can fit into the caches. Another is the CPU's support for bus snooping and cache coherency. In the old days people had to jump through many hoops or do extra work or make assumptions about what data was in a particular CPU's caches and what was in memory. These days, almost all multiprocessor setups have dedicated hardware, both in the CPU and in the memory controller, to make sure that what's in one CPU's caches waiting to go to memory doesn't get read from memory BEFORE the caches get written, et cetera.

The 604, for instance, was wonderful at multiprocessing, but nobody tried to make a big deal of it because both MacOS had limited support and the memory bus on that generation of Macs was pretty modest. On the other hand, with proper memory access, it was used as one of the world's largest supercomputers for many years:

http://en.wikipedia.org/wiki/ASCI_Blue_Pacific

Although we never saw them in the Amiga, Atari, or Mac world, there were definitely multiprocessor m68k systems. Only the original m68000 and m68008 couldn't do proper multiprocessing, but they could do "honor system" multiprocessing, just like the combination m68k / PowerPC accelerator boards for the Amiga.

 

Gorgonops

Moderator
Staff member
Was there ever any real shared-memory symmetric multiprocessor 68k machines? I know there were several computers that incorporated multiple 68k processors dedicated to separate tasks (or running separate OS kernels in parallel, ala the "Radius Rocket" or multiple-cards-in-one-chassis VME bus boards with dedicated RAM), but I don't know of any shared-image 68k machines offhand. None of the NetBSD 68k port pages mention SMP.

There were a few shared-memory (but not fully symmetric) 80386 machines, like the Compaq SystemPro. It was supported by special versions of SCO Unix and Windows NT. (I think Linux had experimental support for it as well at some point.) That's the slowest "mainstream" multiprocessor "Personal Computer" I can think of. (I'm not counting multi-CPU VAX machines or IBM System/360s from the 1960s and 70's, obviously.)

 

Cory5412

Daring Pioneer of the Future
Staff member
Maybe this is obvious, but in the article the author says something about each of the processors he is evaluating being designed to do a certain number of things at once, and what I"m going to say is that each of these processors was designed to do just one thing at once, at least based on everything I've ever heard before anywhere else, and maybe the 604 has better pipelining, or maybe he messed up his installation of Mac OS on the 603 machine.

So... yeah, does anybody happen to know more about that than me? Because it's my understanding that Mac OS couldn't handle multithreading and that even if it could, that was only something you got if you owned an 8600 or 9500/9600 with an MP processor chip.

 

Dog Cow

Well-known member
Because it's my understanding that Mac OS couldn't handle multithreading and that even if it could, that was only something you got if you owned an 8600 or 9500/9600 with an MP processor chip.
That's not true. Take a look at the ThreadManager extension, which was released around the time of System 7.5, IIRC.
Also, OS 8.6 introduced a nanokernel with threading support built-in.

Was m68k a MP-capable design?
People were running Unix on the 68000 in the 1980's.
 
Top