This is just an idea that i had:
This computer would use not one, but 4 z80 CPUs. Each CPU would have 32k of local ram (0x8000-0xFFFF range), as well as 32k of global ram (0x0000 - 0x7FFF). (all IO is also global.) Some system made from TTL logic gates would need to be employed to make sure two CPUs don't access global at the same time. Cores would have to request access to global; when the CPU sends an IO request, or a MEM request with the MSB of address low, the core will know the CPU want access to global. The controller would detect this, and set the ~WAIT (active low) low. Once it is the turn of that CPU to have access to global, the controller will enable the data buffer between that core and global, and set ~WAIT high again. Once the CPU is done, the controller should shut off the data buffer for that CPU and give the next CPU access.
I am thinking about how to implement such a controller with TTL logic, i am not sure how to detect when the CPU is done reading/writing to global memory.
Another thing is that when the computer first starts, all but one core should be disabled so that they all don't run the bootstrap at the same time
Edit: Ideally there should also be a (software) controlled switch in the controller that when would instruct the controller to give priority to a single core. Other cores should still be able to access global, that core should just have "priority".
This computer would use not one, but 4 z80 CPUs. Each CPU would have 32k of local ram (0x8000-0xFFFF range), as well as 32k of global ram (0x0000 - 0x7FFF). (all IO is also global.) Some system made from TTL logic gates would need to be employed to make sure two CPUs don't access global at the same time. Cores would have to request access to global; when the CPU sends an IO request, or a MEM request with the MSB of address low, the core will know the CPU want access to global. The controller would detect this, and set the ~WAIT (active low) low. Once it is the turn of that CPU to have access to global, the controller will enable the data buffer between that core and global, and set ~WAIT high again. Once the CPU is done, the controller should shut off the data buffer for that CPU and give the next CPU access.
I am thinking about how to implement such a controller with TTL logic, i am not sure how to detect when the CPU is done reading/writing to global memory.
Another thing is that when the computer first starts, all but one core should be disabled so that they all don't run the bootstrap at the same time
Edit: Ideally there should also be a (software) controlled switch in the controller that when would instruct the controller to give priority to a single core. Other cores should still be able to access global, that core should just have "priority".