Symmetric multiprocessing...
Posted: Wed May 29, 2019 11:42 pm
In light of what was shared and learned in the asymmetric multiprocessing thread, I'd like to look at the options from a different angle.
What if a "QL" had a main processor, then a gang of smaller processors, each allocated a few kilobytes of exclusive dual port RAM? Programs on the main processor could load programs and data into the workspace of each CPU, which could then run ongoing programs. This could potentially massively speed up certain types of program by making them very parallel.
For example, a game could have certain figures calculated remotely - eg: a flight simulator could have a CPU just working out motion vectors continuously, without halting the main loop to do so, and another CPU using those results to calculate speed, acceleration, fuel consumption, etc. I imagine there would be plenty of other uses.
One of the more interesting aspects of this is it could be done quite economically using multiple relatively small DP SRAMs and cheap/fast 68000 CPUs running at high speed - 40MHz or more.
I imagine a "QL" with a central CPU plus eight 68SEC000s each with 2KB or 4KB of "private" RAM could get some very impressive throughput with the right programming. Granted, a simple system like this is a brute force approach and would never be 100% efficient.
My 68SEC000s run happily at 56 MHz, so 8x 56MHz is 448MHz of total CPU clock power. If 50% of that was utilized, that would still make a very impressive QL.
If a more advanced arrangement were thought of, much more could be done. The OS could distribute jobs to their own CPU, and then it just becomes a matter of the correct message passing.
It may seem fanciful, but 8 CPUs with 2K each could easily be fitted into a single expansion slot ROM area. Eight cards used side by side could give 64 CPUs. 3,584MHz of CPU throughput.
What might people do with something loosely based on those types of ideas?
(In light of previous responses, this is just a theoretical discussion of what such a system could be used for. We don't need to know if it is unrealistic or stupid or that the beeb Tube would crush it. Just.... What might you use this for?)
What if a "QL" had a main processor, then a gang of smaller processors, each allocated a few kilobytes of exclusive dual port RAM? Programs on the main processor could load programs and data into the workspace of each CPU, which could then run ongoing programs. This could potentially massively speed up certain types of program by making them very parallel.
For example, a game could have certain figures calculated remotely - eg: a flight simulator could have a CPU just working out motion vectors continuously, without halting the main loop to do so, and another CPU using those results to calculate speed, acceleration, fuel consumption, etc. I imagine there would be plenty of other uses.
One of the more interesting aspects of this is it could be done quite economically using multiple relatively small DP SRAMs and cheap/fast 68000 CPUs running at high speed - 40MHz or more.
I imagine a "QL" with a central CPU plus eight 68SEC000s each with 2KB or 4KB of "private" RAM could get some very impressive throughput with the right programming. Granted, a simple system like this is a brute force approach and would never be 100% efficient.
My 68SEC000s run happily at 56 MHz, so 8x 56MHz is 448MHz of total CPU clock power. If 50% of that was utilized, that would still make a very impressive QL.
If a more advanced arrangement were thought of, much more could be done. The OS could distribute jobs to their own CPU, and then it just becomes a matter of the correct message passing.
It may seem fanciful, but 8 CPUs with 2K each could easily be fitted into a single expansion slot ROM area. Eight cards used side by side could give 64 CPUs. 3,584MHz of CPU throughput.
What might people do with something loosely based on those types of ideas?
(In light of previous responses, this is just a theoretical discussion of what such a system could be used for. We don't need to know if it is unrealistic or stupid or that the beeb Tube would crush it. Just.... What might you use this for?)