Symmetric multiprocessing...

Nagging hardware related question? Post here!
User avatar
Dave
SandySuperQDave
Posts: 2765
Joined: Sat Jan 22, 2011 6:52 am
Location: Austin, TX
Contact:

Symmetric multiprocessing...

Post by Dave »

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?)


User avatar
Pr0f
QL Wafer Drive
Posts: 1298
Joined: Thu Oct 12, 2017 9:54 am

Re: Symmetric multiprocessing...

Post by Pr0f »

This reminds me of the propeller a little bit, which might be an interesting way to realise this ;-)

So you have 8 equally powerful cpu's sharing some common ROM / RAM and having some private RAM. One would arbitrarily manage the startup of the system, then each could be engaged or disengaged as needed. Any code written to run on the system could run anywhere or even multiple times.

Something similar was also done with the raspberry pi - several pi zero's sitting on a hat on top of a larger pi, acting as 'compute' modules.

The main problem as always is getting someone to write code for this sort of thing...


User avatar
NormanDunbar
Forum Moderator
Posts: 2251
Joined: Tue Dec 14, 2010 9:04 am
Location: Leeds, West Yorkshire, UK
Contact:

Re: Symmetric multiprocessing...

Post by NormanDunbar »

Dave wrote:What might people do with something loosely based on those types of ideas?
Personally, I can't think of anything I could do with this sort of setup. But then again, I could never see that email would catch on, nor did I think that selling pizzas on the High Streets of the UK was a great idea. It's probably best I don't try to predict the future! ;)

Cheers,
Norm.


Why do they put lightning conductors on churches?
Author of Arduino Software Internals
Author of Arduino Interrupts

No longer on Twitter, find me on https://mastodon.scot/@NormanDunbar.
User avatar
dilwyn
Mr QL
Posts: 2753
Joined: Wed Dec 01, 2010 10:39 pm

Re: Symmetric multiprocessing...

Post by dilwyn »

NormanDunbar wrote:
Dave wrote:What might people do with something loosely based on those types of ideas?
Personally, I can't think of anything I could do with this sort of setup. But then again, I could never see that email would catch on, nor did I think that selling pizzas on the High Streets of the UK was a great idea. It's probably best I don't try to predict the future! ;)

Cheers,
Norm.
He he :D

I agree, I can't foresee a use for it myself, but watching this thread with interest to see if some good ideas appear.


User avatar
RalfR
Aurora
Posts: 871
Joined: Fri Jun 15, 2018 8:58 pm

Re: Symmetric multiprocessing...

Post by RalfR »

NormanDunbar wrote:nor did I think that selling pizzas on the High Streets of the UK was a great idea.
Just don't ask Dilwyn to go with you to an Indian restaurant. It may give problems the next morning... :D


4E75 7000
User avatar
Dave
SandySuperQDave
Posts: 2765
Joined: Sat Jan 22, 2011 6:52 am
Location: Austin, TX
Contact:

Re: Symmetric multiprocessing...

Post by Dave »

Discussions on the FB group have added the following fleshing out:

The QL has an expansion card. The card has 16K of addressable space, divided into 2Kx8 dual port RAMs. These are accessed as 2Kx8.

The 'B' port is organized as 1Kx16. The CPU also has 16MB of DRAM or 1MB of SRAM as private workspace. Each CPU can have a loader loaded onto it then be reset. The loader allows the CPU to construct a ROM or executable image or both inside the private RAM. It can then be reset again. Each CPU can be reset individually. This is a bit of a grind because the external CPUs need the DP SRAM at their $0 to boot, but need the DP SRAM elsewhere to not be filled by vectors. That can be solved later.

Multiply this arrangement x8, and you have 8x 40MHz 16-bit 68SEC000s, each with a 2K dual port window mapped into the QL's expansion area plus 1 or 16MB of private RAM.

So, 320MHz of clock speed plus 8MB or 128MB of distributed private memory per card.

8 cards could be installed in a stock QL, just using the standard expansion area.

So, 2,560 MHz of clock speed plus 64MB or 1GB of distributed private memory per system.


User avatar
Pr0f
QL Wafer Drive
Posts: 1298
Joined: Thu Oct 12, 2017 9:54 am

Re: Symmetric multiprocessing...

Post by Pr0f »

you can use the FC0-FC2 to signal a fetch of restart vector - as it's different to other vector fetches - and could remap the dual port ram when a reset is done on the off board processor, but otherwise leaving it alone.


User avatar
Dave
SandySuperQDave
Posts: 2765
Joined: Sat Jan 22, 2011 6:52 am
Location: Austin, TX
Contact:

Re: Symmetric multiprocessing...

Post by Dave »

Each CPU block would be voltage level shifter <> DP SRAM <> CPU <> private RAM, with a GAL or two in there for refresh if DRAM, plus assorted glue logic. I think 8 CPU blocks would fit on a half Eurocard (160x100mm).

A backplane to provide the power needed would use SP0-3 for position info, so 16 cards could co-exist.

In an alternate system like Issue 8 which has a much larger address range, each CPU could have a much more reasonable 64Kx16 DP SRAM for very minimal extra cost. One CPU could be a dedicated video processor.


User avatar
dilwyn
Mr QL
Posts: 2753
Joined: Wed Dec 01, 2010 10:39 pm

Re: Symmetric multiprocessing...

Post by dilwyn »

Ralf R. wrote:
NormanDunbar wrote:nor did I think that selling pizzas on the High Streets of the UK was a great idea.
Just don't ask Dilwyn to go with you to an Indian restaurant. It may give problems the next morning... :D
Hey Ralf, with that comment we'll have to change the thread title to something like "Assymmetric mis-processing" ... :mrgreen:


User avatar
RalfR
Aurora
Posts: 871
Joined: Fri Jun 15, 2018 8:58 pm

Re: Symmetric multiprocessing...

Post by RalfR »

dilwyn wrote:
Ralf R. wrote:
NormanDunbar wrote:nor did I think that selling pizzas on the High Streets of the UK was a great idea.
Just don't ask Dilwyn to go with you to an Indian restaurant. It may give problems the next morning... :D
Hey Ralf, with that comment we'll have to change the thread title to something like "Assymmetric mis-processing" ... :mrgreen:
Good, that I have taken sharpness=3, though I'd like to eat very sharp. But this was a new experience :D


4E75 7000
Post Reply