On 2011-06-26 06.11, der Mouse wrote:
... the KA630 was designed so that MP systems can be done, it is not in general with shared memory. Instead, each processor has its own memory, and you can share a small window of it.Not all that small a window; the Qbus space is 4M (well, 4M minus 8K), and the most RAM a KA6[23]0 can have is 16M.
Yes, but with 4 CPUs, you'll have (potentially) 4*16MB, which is 64MB. 4MB in that perspective is a little less.
NUMA system, it would seem... :-)Very NUMA! I suppose for DEC's designed-for use case it was fine.
Yes. It would also appear to be the only reasonable way to do it within the restrictions of the Qbus.
I wonder if NetBSD could be tricked into handling such a machine.That would be interesting. It would probably be easiest to do it as one NetBSD instance per CPU, with non-primary CPUs having no Qbus devices, just a fast network interface built atop the doorbell interrupt and shared memory (and perforce running diskless). But that's not really using it as a multiprocessor machine; it's just a way to get the hardware running something.
Guess so. But if you decide to do it with shared memory, you'll limit the machine to less than 4MB. More interesting to go with the NUMA, and have each machine have it's own memory space. Consider each processors memory as just a part of the total physical memory that exist. Costly with cross processor memory access, but that's what NUMA is all about. And while only one processor will deal with interrupts, DMA could potentially go to any memory, and you could even potentially let any processor initiate I/O. All you need is proper synchronization. :-)
And then implement a way for memory contents to migrate from one CPU to another, if needed. But I don't know if/how well NetBSD can deal with NUMA architectures?
Johnny