[comp.sys.amiga.graphics] Another Idea for a graphics board...

cowgilc@prism.cs.orst.edu (Clayton Cowgill) (06/13/91)

Ok everybody, how about this idea:

	A little while ago, someone suggested splitting up a video screen in a
	lot of different ways for weird real time effects. What if...

	We took a lot of small, quick processors and made a little hacker
	video card using cheap CPU's to get more kick?

	Steve Ciarcia's "8051 Mandelbrot Fractal engine" comes to mind- a LOT
	of EPROMed 8051 microcontrollers each generating just a few scan lines
	of the Mandelbrot set. It didn't take too many before $3 MPU's were
	outperforming thousand dollar CPU/FPU setups...

	Here's an idea (I'm writing off the top of my head now, no timing)-
		256x256 resolution
		24 bit color
		4-8 processors (depending on type)
		   each processor has local RAM for program/display buffer
		Small dual-port RAM to a nice RAMDAC.
		Maybe keep an NTSC clockrate for VCR stuff... 

	6809's are pretty quick, and they have some built in H/W for multi-
	processing... 

	Just an idea, kick it around if you like the general gist.   

						-Clay

##################===============------------===============##################
Clayton Cowgill                                 cowgilc@prism.cs.orst.edu  
Head Consultant                                 Lab: (503) 737-2435 
Oregon State University CS Dept.                Home: (503) 757-7060
Corvallis, OR 97330

m0154@tnc.UUCP (GUY GARNETT) (06/14/91)

In article <1991Jun13.074100.3146@lynx.CS.ORST.EDU> cowgilc@prism.cs.orst.edu (Clayton Cowgill) writes:
>Ok everybody, how about this idea:
>
>	A little while ago, someone suggested splitting up a video screen in a
>	lot of different ways for weird real time effects. What if...
>
>	We took a lot of small, quick processors and made a little hacker
>	video card using cheap CPU's to get more kick?
>
>	Steve Ciarcia's "8051 Mandelbrot Fractal engine" comes to mind- a LOT
>	of EPROMed 8051 microcontrollers each generating just a few scan lines
>	of the Mandelbrot set. It didn't take too many before $3 MPU's were
>	outperforming thousand dollar CPU/FPU setups...
>
>	Here's an idea (I'm writing off the top of my head now, no timing)-
>		256x256 resolution
>		24 bit color
>		4-8 processors (depending on type)
>		   each processor has local RAM for program/display buffer
>		Small dual-port RAM to a nice RAMDAC.
>		Maybe keep an NTSC clockrate for VCR stuff... 
>
>	6809's are pretty quick, and they have some built in H/W for multi-
>	processing... 
>
>	Just an idea, kick it around if you like the general gist.   
>
>						-Clay

How about my all-time favorite 8-bit processor, the Z-80?  They can be
had at very fast speeds these days, if you take the time to look (at
least they were ...).  The nice thing about a Z80 is that it would
require little extra hardware in addition to the processor.

Just a Z80, 2 32kx8 SRAMS and some wait/halt/interrupt/reset logic per
processor.  Provide an Amiga interface circuit, so that the Amiga can
download code and data into the Z80, allow the amiga to reset the
board (all Z80s restart from location 0 on a reset), and the display
generator (scans through RAM generating video, and places the affected
CPU in a wait-state while it is using that one's RAM).

Have you decided if the board is going to be planar or chunky?  If its
planar, assign one processor to each bitplane.  A planar board would
also allow you to fetch each bitplane in parallel (a separate video
data fetch circuit for each plane), and latch 8 pixels worth of data
into a shift register.  If real-estate or finances permitted, a 8-bit
deep planar board could be constructed with 9 or 17 processors (one or
two per bitplane, and one handling master control).  The 8-bit plane
data could be used to lookup a 24 bits of color data (and perhaps use
the top 8 bits for control or transparency flags).  With an additional
processor to peform system control, it would be possible to reload
some or all of the colors every horizontal retrace, perhaps, to get
more than 256 colors on screen.

With 10 planes, it would be possible to run 1024 color registers, and
also to do a "Ham-like" mode (2 control bits and 8 bits of color gun
data).  Such a board would want 11 or 21 processors.

Wildstar
"... I'll see you on the dark side of the Moon!" -- Pink Floyd
PS:  Wait! It just occured to me!  Break the 24-bit color into 8 bits
each of R, G, B and Control (I'll call it C; C specifies transparency
or keying for Genlock/Overlay, perhaps other things).  Assign a pair
of processors to the R, G, and B sections (every other scan line,
perhaps).  Assign another pair to C (and these processors would also
be responsible for talking to the Amiga and controlling varous other
parameters).  Total of 8 processors, 512k SRAM for display data and
programs.  256x256x32 bits is 128k, so a greater horizontal dot rate
would be possible (how about 384hx256v; use the top 48k from each
processors address space for video data, the lower 16k for program). 
Divide each processor's address space between two SRAMS, and
interleave the video access so that as few wait-states as possible are
generated (in other words, at any given time there will be four
processors with half of their address space blocked by video access,
excepting retrace intervals, of course).  Perhaps one additional
processor could be added to load software into the others, control the
video generation, and talk to the Amiga (depends on how much the C
channel is used in normal operations).

Brain Fried, gotta go.