analog_programmer wrote on 2024-12-22, 11:15:
In other words, if FLUSH signal is missing (pin 30 is not connected to chipset or other cache controller) there's absolutely no matter if FLUSH register bit is set to enabled or disabled and the only option for cache control is the one related to BARB register bit. Right? It seems like this is also valid for KEN (cache enable) signal. So, what is doing the "Cyrix cache enable/disable" option in the BIOS, if cache is permanently disabled by internal CPU connection and there is no KEN signal from chipset?
Leaving FLUSH# pin floating and enabling the function in the control register is a bad idea. IIRC that pin has no resistor and thus can randomly read as zero, which is active signal. This will cause the CPU to flush cache and it's not a free operation. It will slow down, possibly quite a lot if the signal ends up being asserted for every instruction executed.
As for KEN, it works in the opposite way. Wih KEN disabled in control register the cache is always enabled, not disabled. So in other words everything is set to cacheable. This is exactly why the CPU has 4 (and later ones even more) special exclusion zones that can be set up to be non-cacheable. To work around lack of proper KEN from mobo side. You just set these zones statically knowing what is and isn't installed in the system.
And for the earlier questions regarding the use of SoundBlaster DMA and BARB - yes, it causes flushes and performance degradation. But it's not terrible on DLC class chips, especially if the mobo has its own cache that won't be affected. The impact on SX/SLC chip with a bare mobo would be greater but then again if you are running a game like Doom on such system it's already crawling, even 10% performance loss is not noticable either way.
The SB (or floppy) DMA is not the worst offender when it comes to BARB setting, the non-hidden memory refresh is.