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.