COMP: A DPA of VPU's to replace CPU's?
Thu, 21 Aug 1997 13:54:31 -0400 (EDT)

I had this idea about 5 minutes ago, so forgive me if I've overlooked
something embarrassingly obvious, made any number of grammatical errors, or
it's just crap...

I recently noticed that things like sound, graphics, 3D, etc. are migrating
in to a single chip on new computers (Intel and MS have rival solutions for
this!). And also the release of the software modem, eventually we could have
software soundcards, graphics adapters, etc. all running on a universal
architecture. After all this you end up with computers consisting of a
processor and some memory. But that's two thing, wouldn't it be better to
have only one?

A British company called _Division_ uses memory chips as processors, each
chip contains lots of virtual processors (one per pixel) which are used for
creating 3D graphics in Divisions VR simulators. The _University Of North
Carolina_ originally conceived the idea. A central processor controls the
array of memory chips; I don't know how it functions exactly so my idea is a
bit speculative. Here it is anyway:

Move some of the CPU processing power on to the memory chips, just enough so
they can take care of themselves and communicate with each other. What you
get is a Versatile Processing Unit (VPU) that can switch between the
functions of RAM, ROM, Flash RAM and Processor. Put a thousand of these
chips in parallel and you get a Distributed Processing Array (DPA). It has
no CPU, no FPU, no graphics card, and no sound card - just a bunch of similar


Many reasons (other than I'm obsessed with the notion of distribution):

Economies of Scale - A VPU will never be as powerful as purpose built
silicon, but it could be cheaper. If you're mass-producing the same chip in
thousands per system then the cost will keep falling. Eventually you could
end up with a higher price/performance ration than custom hardware.

Security - How about duplicating calculations across two processors at any
one time, on the fly backup of not only information but of actually
processing. The two processors could then compare results for error
checking. You could also have two processors doing the same calculation in
different ways and then crosscheck them to make sure all areas are function
correctly. And then there's redundancy; one chip goes down another takes

Economics - If you have custom hardware for graphics and you're not using it,
it goes to waste. If you're using VPU's nothing goes to waste. You're using
all the hardware all the time.

Obviously there would have to be built-in security against people turning ROM
into RAM and deleting its contents (and I'm sure you could come up with some
great viruses for this architecture!). And you would need an OS that could
abstract the system so programmers don't have to worry about all those
parallel VPU's (Taos?).

Now I need to know:

Has it been done before?
And will it work?