Ideas for a simple, but somewhat extendable computer bus
paulkoning at comcast.net
Fri Nov 17 19:25:32 CST 2017
> On Nov 17, 2017, at 8:11 PM, Jim Brain via cctalk <cctalk at classiccmp.org> wrote:
> I'm currently working on a single board computer system, designing from scratch partially as an education experience, and also as something that might be of interest to others.
> I've laid out the first version of the SBC, and I realize it would cost nothing to add an edge connector on the PCB, allowing expansion options. As well, assuming the design has any merit, I can see creating one of these SBcs for each family (8080/Z80, 65XX, 68XX, and maybe even 16 bit options like TMS9900, 68K, etc.)
> However, as the design is not *for* any purpose, and I've never designed a bus that could be shared among multiple CPUs, I am wondering what bus layout would satisfy the following criteria: ...
You might start with the Unibus and make some small tweaks. If you think of each of the several CPUs as a DMA device, which asks for the bus and gets the grant from a central arbiter, you've got your MP bus right there. Strip out some unneeded stuff, like multiple interrupt levels (if you want).
One key question is whether it should be asynchronous, as the Unibus is, or synchronous. If you put a central clock on the bus also (presumably from the arbiter since there's one of those) everything else gets a whole lot simpler. There are good reasons for the Unibus to be async, but if you can do sync that's a much better choice.
A synchronous version of the Unibus would be quite easy; all the funny one-shot delays would disappear and actions would simply be taken on the clock edge (rising or falling, pick one). Just make the clock period comfortably longer than the worst case propagation delay and you're in business.
I'm assuming it doesn't need to be all that fast. If you clock period > prop delay is an issue, things get vastly more complicated. If so, you might want to stick with something that's already been sorted out, like PCIe.
More information about the cctalk