Moving beyond 8MHz with standard ICs
Posted: Thu Feb 15, 2024 3:20 pm
It looks like all commercialy available 6502/65816 SBCs, like Commander X16, Foenix or even those offered directly by WDC (W65C816SXB) are clocked at 8MHz or less, as if there was some hard limit. On the other hand there are reports on this Forum of SBCs running at 14MHz or even more - without any help from FPGA. I would like to start a conversation about the 8Mhz limit and methods to overcome it to utilise the full oficial speed of W65C02 and W65C186 (14MHz). I'm aware that this knowledge is scattered across the Forums in various threads, including the pinned one Techniques for reliable high-speed digital circuits, but I would like to focus specifically on that problem - crossing the 8MHz barrier. That may be helpful to those (like me) who built their own 1-4MHz computers and are looking for new challenges.
At first, let's assume a simplest possible computer, used for computation only (no I/O), consisting of CPU, RAM and ROM only. If it may be neccessary to rule out the ROM (I'am not aware of any that can run at 14MHz), that's fine too - but then I'd be curious about your techniques to prepopulate RAM / intialize such system. And, as a bonus, would be great to know what techniques you use to make your system to communicate with other devices.
In my, most likely very naive way of thinking, I see two possible solutions:
- dual-processor system with one CPU responsible for I/O, initialization, IRQ's, etc and other just paired with RAM, running at full speed. I wouldn't call it a properly parallel system, as - due to RAM sharing - in most cases it would be only one active CPU.
- variable-speed (dual clock) solution, which is perhaps a cheaper/simpler variant of the one above (full-speed for RAM access, limited speed for anything else).
I am sure there must be some more clever solutions than my straight-forward ideas.
Thanks,
David
At first, let's assume a simplest possible computer, used for computation only (no I/O), consisting of CPU, RAM and ROM only. If it may be neccessary to rule out the ROM (I'am not aware of any that can run at 14MHz), that's fine too - but then I'd be curious about your techniques to prepopulate RAM / intialize such system. And, as a bonus, would be great to know what techniques you use to make your system to communicate with other devices.
In my, most likely very naive way of thinking, I see two possible solutions:
- dual-processor system with one CPU responsible for I/O, initialization, IRQ's, etc and other just paired with RAM, running at full speed. I wouldn't call it a properly parallel system, as - due to RAM sharing - in most cases it would be only one active CPU.
- variable-speed (dual clock) solution, which is perhaps a cheaper/simpler variant of the one above (full-speed for RAM access, limited speed for anything else).
I am sure there must be some more clever solutions than my straight-forward ideas.
Thanks,
David