bakemono wrote on 2025-01-27, 19:12:
IIRC the Cyrix upgrade chips with on-chip cache also snooped IO port access so they could invalidate the cache if it looked like software was doing a DMA transfer.
SRAM has never really been fast+big+cheap all at the same time. Hence it was usually used as cache instead of RAM. The NeoGeo CD console maybe would be an exception, that used a lot of SRAM.
Puting fast memory on a CPU board was pretty common in the Amiga world. In many cases it was DMA-capable, because the CPU slot provided the necessary signals to make that possible. But it was also possible to simply flag memory regions as non-DMA-capable and Amiga OS could deal with that.
Yeh looking into it the Amiga workbench and bios are much more flexible and capable. Amigas can support many different types of ram, accessible in different ways, and CPUs. Terriblefire has quite advanced FPGA doing a lot of work underneath to make everything work as it does. He seemed to make it amiga compatible. When asked about macintoshes he said he would never touch them.
The macintosh accelerators are often very complex, and require a extension in the OS to make them work. This extension is loaded on bootup and basically enables everything and patches the OS to make it work. Some of these have onboard ram and even onboard Simm slots on the accelerator cards. Even then, cache and onboard memory can be problematic with DMA transfers certain software. Also you are limited in OS compatibilities with the extension too.
The Cyrix cpus invalidating their catch is really quite nifty, and the CPU guys have some really good strategies for that, and even then its problematic. But the fact that you can get a 486sxcl with a 16bit bus and 1kb or 8kb cache means that for basically no effort you get quite a good outcome. Its neat, its compact, its simple, its cheap.
The 68030 has 512byes of cache (256+256) built in as well. So while that is pretty small, it's not nothing. I might have to look into the mac thing a bit more. There are a lot of systems hamstrung with slow 16mhz buses and 16bit ram bus. The potential is huge if you can fit sram on the CPU socket board. Lifting it from a 16mhz 68030 on 16bit, to 68030 on 32bit would be a four fold improvement. OC it and you can probably get a 5 or 6 fold improvement in CPU/Memory speed. The Mac LC/Colour classic accelerators already clock doubles the CPU to 33mHz. But that memory speed really limits performance.
Looking at it you would need to unmap probably the first 64kb, and the BIOS. This complicates things, I want simple and simple would be hooking sram straight up to the address lines. That isn't going to work. Not only do you have to have a way of having the memory sit at a different address space, but also have CPU bus signals switch from the onboard ram to the ROM chips on the motherboard, plus the IO device maps ranges for VGA and say EMS. Something is going to have to do a lot of translations.
On a 16bit CPU maybe, but on a 32bit CPU with essentially two 32bit buses, that is a whole lot of pinout. You will need quite a capable FPGA or CPU (like a Pistorm), it would be the size of a motherboard. Plus macs have weird memory management and ROMs that do all sorts of wacky things. 68030 has a dynamic memory bus width capability, so that is going on as well as the Apple ROMs are accessed through 32 bit bus, but the RAM is accessed on a 16bit bus. Im looking at the LC reloaded and other motherboard schematics to get a feel. Looks like the CPU address lines need to go into the chipset so again, without a lot of work it doesn't look easily solvable. Looks like it would be more solvable if you made a proper 32bit motherboard and used the LC parts to make it, even then I'm not sure if it would work at the higher frequency, sure your memory might, but nothing else will, it would be like sticking 60ns simms in and clocking it up, it would just be the motherboard that falls over. But again, 32bit computers already exist, its just reinventing the wheel.
You could probably build a CPU adapter that had SRAM on it, but would operate at the same speed and bus type as the existing setup. You would have to get the OS/ROM to then recognise this new ram, probably doable on x86, but not easily on a mac.
Existing accelerators like the Thunder PDS or a 286 make it 486 type upgrades already do everything pretty efficiently. They have a clock doubled CPU talking to the regular bus.
I get now why things like ThunderCachePro Accelerator were so complex and expensive, and big as a motherboard. They plugged into the PDS and basically replaced the motherboard.
Maybe with the x86 stuff. Maybe doable. But would be expensive and you would need to be smarter and more knowledgeable than me.
TLDR: They don't do it because it gets complicated and expensive and will need to run at the same speed thus gaining no performance.