• Hello Guest! We're hosting a challenge to welcome vintage Intel macs to the MLA during the month of July! See this thread for more information.
  • We've made some quality of life improvements to the Trading Post. More info here.

Turbo 601 Upgrades: 1MB cache and 120MHZ!

zigzagjoe

68060
@Callan and I had a fantastic weekend of hacking on Turbo 601 cards. We've worked up two fresh ones: how to upgrade it to 1MB of cache (instead of 256K) and also how to switch the CPU to a 4x multiplier.

1) 1MB Cache upgrade

The Turbo 601 has extended pads for larger SRAMs which add two address lines to quadruple the cache size. However, it seems that no cards shipped with 1MB actually installed. This a fairly easy upgrade: Install new 128K x8 SRAMs in SOJ32 package in place of the existing SOJ28 32k x8 SRAMs. I used IDT 71024S15TYGI8, but there should be other chips with the same pinout. Next move the 0 ohm resistors from R130 to R129 and R132 to R131. These are located near the bottom edge of the card between the 31.3344M oscillator and U44 one of the TAG SRAMs.

What these resistors control are two of the address lines on the TAG SRAM, which are disabled (pulled low) by default. This means when the Turbo 601 sizes and initializes its TAG SRAM it sees 8K * 8 instead of the actual 32K capacity of the installed TAG SRAM. 8192 * 32 byte cache line size = 256K of cache. When these jumpers are moved, the 601 ASIC can now address the full 32K capacity which is correct for 1MB of cache. So, it assumes 1MB of cache is present and we're off to the races. A corresponding speed increase is seen - Macbench 3 indicated a Processor score increase from 8 to 11. One thing to note though is the memory benchmarks (especially in System Info) start to be irrelevant as the cache is too large, so this score increase doesn't accurately reflect the real-world improvement. It's certainly there and depends more on workload than anything else.

1784558173599.png1784557807481.png

Second picture is more proof, courtesy of @David Cook's cache test tool. Notice the change @ 32K as this is where the unified L1 32K cache starts handing over to the L2 cache. Then the L2 to main memory transition can be seen at 1MB -> 2MB. On an unmodified card this instead would have occurred at 256K-> 512K.

2) 4x Multiplier

This requires performing the instructions first written up here by @trag (attached as PDF) and then installing a 601v chip as described here. Take care to move R14 (107 ohms) to replace R15 and install a 90.9 ohm resistor in R14 in order to set the correct core voltage! There is no point playing with this without starting with a 100mhz card as the original CPUs can't support any useful clock frequencies with a 4x multiplier.

To change from the 3x multipler (for 100mhz operation @ 33.33mhz 601 local bus speed) to 4x, move R37 to R51. This has the effect of changing the FS0 bit of the 100mhz card's ICS9178-02 PLL from 0 to 1, which selects for 4x multiplication. Datasheet attached for the curious. Next, you'll need to install a 30mhz oscillator in place of the 33.33mhz oscillator: there's no way the 601 (or the PLL) will work at 133mhz :)

Benchmark-o-clock!

TUrbo601 Perf.png

Multiplier changes should be regarded as a beta-quality modification currently, I've found it'll cause the card to fail to initialize about half the time and require the machine to be power cycled on and off (waiting about 5-10s between attempts) until it starts properly. Once running, the machine is stable and reboots correctly. I'll be poking at this to see if I can figure out what's going on. I managed to get the card to come up a couple of times at 125mhz (31.25). I also went a little lower than 30 for the sake of testing but i found initialization issues seem consistent as long as 4x is in place.
 

Attachments

Nice.

We should probably also document the differences between the 601 and 601v cards to see if we can convert a 66MHz card to a 100 or 120MHz, or are you saying that is flat impossible?

I realise the 601v has an additional voltage, but on some Mac logic boards they are designed to take either and there is a strap for selecting the voltage source.

Actually would be sad to convert my 66MHz Turbo though because I think it has one of the early yellow CPUs.
 
Last edited:
Nice.

We should probably also document the differences between the 601 and 601v cards to see if we can convert a 66MHz card to a 100 or 120MHz, or are you saying that is flat impossible?

I realise the 601v has an additional voltage, but on some Mac logic boards they are designed to take either and there is a strap for selecting the voltage source.

Actually would be sad to convert my 66MHz Turbo though because I think it has one of the early yellow CPUs.
Sorry, I was unclear - that's what @trag's instructions are for- all those resistor changes swap around the IO voltage and shunts for the new PLL that has to be installed for the 100M cards. 601v uses 5v IO and 2.5v core instead of 3.6v for both domains but they were already separated on the original 601s. So, if you follow those instructions then install a 601v along with the two resistor changes to set the new lower core voltage, you've turned your 66mhz card into a 100mhz card.
 
Sorry, I was unclear - that's what @trag's instructions are for- all those resistor changes swap around the IO voltage and shunts for the new PLL that has to be installed for the 100M cards. 601v uses 5v IO and 2.5v core instead of 3.6v for both domains but they were already separated on the original 601s. So, if you follow those instructions then install a 601v along with the two resistor changes to set the new lower core voltage, you've turned your 66mhz card into a 100mhz card.
Excellent - good to know. If a second 66MHz Daystar Turbo ever falls out of the sky I'll do the conversion 😆 For now, I'm not brave enough!

I wonder what FPS you get in MDK with 1MB cache and 120MHz? I got about 6 fps in my IIci at 66MHz with 256k.
 
Excellent work @zigzagjoe . My original work was just laying the two cards next to each other and changing the differences. It never occurred to me to change the multiplier from 3X to 4X and I did not know what the resistor changes were actually doing at the time. Your work is a vast improvement.

Now I wonder what I was actually doing to that poor, original CPU. It sounds like I was overvoltaging the IO severely and undervoltaging the core quite a bit.

I can't remember, I think I sent Mike photos to go with the article, but I'm not sure he ever published them. The photos would likely show the exact markings on the PPC601 on my card. I long since sold the card to some fellow in Europe some where.

I think it's been more than 30 years since I wrote that; it was certainly pre-EE degree, so I'm not going to kick myself too much for not being smarter.

BTW, do you have a good source of the 601Vs?
 
Last edited:
Excellent work @zigzagjoe . My original work was just laying the two cards next to each other and changing the differences. It never occurred to me to change the multiplier from 3X to 4X and I did not know what the resistor changes were actually doing at the time. Your work is a vast improvement.

Now I wonder what I was actually doing to that poor, original CPU. It sounds like I was overvoltaging the IO severely and undervoltaging the core quite a bit.

I can't remember, I think I sent Mike photos to go with the article, but I'm not sure he ever published them. The photos would likely show the exact markings on the PPC601 on my card. I long since sold the card to some fellow in Europe some where.

I think it's been more than 30 years since I wrote that; it was certainly pre-EE degree, so I'm not going to kick myself too much for not being smarter.

BTW, do you have a good source of the 601Vs?
That work was foundational for what I did, so I'd say you shouldn't be kicking yourself at all :) The core voltage would have been fine (on a non-V chip), but the IO would have been seeing 5V.

The 601v I used was donated by @Jockelill and came off a 100mhz 7500 CPU card; this route did work but the salvaged CPU presented some difficulties. Desoldering was easy with a hot plate, but a small amount of solder was left on the bottom of the legs and this caused me trouble trying to resolder it by hand until I got it to reflow temps to correct an orientation issue. There was also some adhesive goo under the CPU that thankfully liquefied with heat but also gave me some trouble when resoldering. There's a single seller in the UK that has some NOS 601v chips, it seems, but they don't ship internationally.
 
That work was foundational for what I did, so I'd say you shouldn't be kicking yourself at all :) The core voltage would have been fine (on a non-V chip), but the IO would have been seeing 5V.

The 601v I used was donated by @Jockelill and came off a 100mhz 7500 CPU card;

Thank you for your kindness.

Now that you mention it, I layed in a small supply of those 7500/100 cards a couple of decades ago for exactly that kind of use. I had forgotten I have them. And yes, every single one of them has a blob of glue on the back that makes desoldering and clean up an extra painful exercise.

I think I collected them intending to use them for repair of X100 boards with cracked CPUs and such.
 
Thank you for your kindness.

Now that you mention it, I layed in a small supply of those 7500/100 cards a couple of decades ago for exactly that kind of use. I had forgotten I have them. And yes, every single one of them has a blob of glue on the back that makes desoldering and clean up an extra painful exercise.

I think I collected them intending to use them for repair of X100 boards with cracked CPUs and such.
Thankfully at least on the desoldering I was able to just set my hotplate to an appropriate temperature and wait for it to get there - then lift off with a vacuum tool. Not bad at all. However, with the benefit of hindsight I should have dropped the CPU on the plate for a moment to liquify and flatten the residual solder on the leads. I think the adhesive may have given me a little trouble on reassembling, or perhaps it was the warped PCB? all of these boards seem to have warped with time.

These boards are absolutely lousy with jumpers, I wish there were some documentation which did what. J1-J3 weren't populated and instead have a shunt on the rear, J4 is installed but unclear what it does.

Oddly, we found the cards with the revision F1 main ROM seem unable to boot in an IIvi at all and in IIsi internal video doesn't work. A card with F2 ROM worked fine in both. PatchROM versions were the same across both, didn't verify if thousands of colors worked in the IIvi or not.... very strange.
 
These boards are absolutely lousy with jumpers,

Do you mean the Turbo601 boards?

Oddly, we found the cards with the revision F1 main ROM seem unable to boot in an IIvi at all and in IIsi internal video doesn't work. A card with F2 ROM worked fine in both. PatchROM versions were the same across both, didn't verify if thousands of colors worked in the IIvi or not.... very strange.
Have you browsed the "Unofficial Turbo601 HomePage"? I think it is only available on the wayback machine, now. It was hosted at something like brinhoven or some such. There were a lot of historical comments there as support was added for machines other than the IIci.
 
Do you mean the Turbo601 boards?


Have you browsed the "Unofficial Turbo601 HomePage"? I think it is only available on the wayback machine, now. It was hosted at something like brinhoven or some such. There were a lot of historical comments there as support was added for machines other than the IIci.
Yes, the turbo 601 boards. I gave a quick poke around at 4x - J1 and J3 seem to prevent boot, J2 and J4 don't seem to have an obvious effect. R95 (a pull up present on T601 and not the 100mhz 040 card) didn't do anything either.

I looked through the content there but it didn't seem to have anything about the F1 ROMs.
 
Very cool! Along the same lines I saw this YouTube video by K2s Retro Workshop somewhat recently where they did a 1MB cache upgrade on a DayStar 100 MHz PowerCard 601 (The model that plugs into the 68040 socket on certain Macs).

The key seems to be the PPC upgrade PCB having the extended pads for larger L2 cache SRAMs, and from that video it sounds like while Apple's 68040 socket PPC upgrade may have used a cache daughter card PCB with the extended pads, the main board lacked support for them. As DayStar was the OEM for all? Apple's PPC 601 upgrade cards I wonder if DayStar purposely held higher multipliers and cache capacity for their follow on products?
 
Very cool! Along the same lines I saw this YouTube video by K2s Retro Workshop somewhat recently where they did a 1MB cache upgrade on a DayStar 100 MHz PowerCard 601 (The model that plugs into the 68040 socket on certain Macs).

The key seems to be the PPC upgrade PCB having the extended pads for larger L2 cache SRAMs, and from that video it sounds like while Apple's 68040 socket PPC upgrade may have used a cache daughter card PCB with the extended pads, the main board lacked support for them. As DayStar was the OEM for all? Apple's PPC 601 upgrade cards I wonder if DayStar purposely held higher multipliers and cache capacity for their follow on products?
Hadn't seen that as I don't follow anything on youtube. Interesting! Pity they didn't do a write-up, it'd have saved us some time. I didn't cotton on to the TAG SRAM address line straps until we'd toned out the Apple ASIC 3 times looking for differences between a 100mhz 040 card and the Turbo 601 since both use the same ASIC. It seems like a similar set up except the possible use of an ID resistor instead of just sizing the TAG.

Not sure about the 040 PDS cards, but for the IIci cache slot it was only Daystar since it used the bus translation ASIC from the Turbo 040 and that was Daystar-exclusive. The 100mhz 040 PDS card we looked at was actually Sonnet branded, oddly enough, though it was clearly a Daystar board.
 
I suspect they were all Apple designed, perhaps with small Daystar tweaks. In that era there was a lot of selling Apple-developed hardware to third parties to produce. Especially video cards, but I imagine these were developed to bring up PPC software internally and they decided that there might be a market for them, but perhaps they didn't want to be doing the support and sales.
 
I looked through the content there but it didn't seem to have anything about the F1 ROMs.

They were not sophisticated enough at the time to explicitly discuss ROM versions. If the information is present, one would have to infer ROM versions from the discussion of Daystar sending out different versions of the Turbo601 to support various machines and functions.
 
I am both jealous and impressed. I had one of these cards (inside a Quadra 950!) before my neighbor's kid decided to light our apartment on fire in the 2000s. If I still had it, I'd probably want to do this modification, and put it in the Centris 650 I'm planning to mod out.
 
Thankfully at least on the desoldering I was able to just set my hotplate to an appropriate temperature and wait for it to get there - then lift off with a vacuum tool. Not bad at all. However, with the benefit of hindsight I should have dropped the CPU on the plate for a moment to liquify and flatten the residual solder on the leads. I think the adhesive may have given me a little trouble on reassembling, or perhaps it was the warped PCB? all of these boards seem to have warped with time.

These boards are absolutely lousy with jumpers, I wish there were some documentation which did what. J1-J3 weren't populated and instead have a shunt on the rear, J4 is installed but unclear what it does.

Oddly, we found the cards with the revision F1 main ROM seem unable to boot in an IIvi at all and in IIsi internal video doesn't work. A card with F2 ROM worked fine in both. PatchROM versions were the same across both, didn't verify if thousands of colors worked in the IIvi or not.... very strange.
Oh interesting, I didn't know they had two ROM revisions. What are the checksums on those?
I am both jealous and impressed. I had one of these cards (inside a Quadra 950!) before my neighbor's kid decided to light our apartment on fire in the 2000s. If I still had it, I'd probably want to do this modification, and put it in the Centris 650 I'm planning to mod out.
Has anyone modded the multiplier on the 040 PDS cards? The board layouts are so similar I assume it's the same?
 
Back
Top