Yes, distributed computing. Heard about it first when watching Rodney Brooks (roboticist, of late-1990s, MIT fame) on TV, but can't remember the "catch phrase" that he used?
Well, Friday, I am afraid I don't know much about actually rolling up the sleeves and making electronics and computers work. I mostly hack it until I give up, but a few projects have functioned.
Right now I am VERY interested in DMA and can't get enough of it. My ears, literally, perk up when I see the phrase. But, I need a "tool" to get me to the "right answer" on a project I am doing, and for all of the promise of DMA, I am starting to think its not right for my project.
I have been reading about "Shared Bus Architecture" (i.e. parallel computing? multi-processor? I am sure it has many names!) in my (copyright circa 2000) Barry Brey "Intel Microprocessors" textbook, and I think that this model seems more promising for my project.
I have never built a computer from scratch, but I got halfway through and stalled (holiday season? or brain-stumped? I don't know which?). I am making a (anthropomorphic/retinomorphic) robot eye, and stitching together 9 (18 eventually) VGA image sensors. The data load is (seems?) oppressive (for a 65816), but there must be a caching mechanism or bus architecture that will allow me to use it. I'd hate to go "x86" on you guys?
Does DMA implement with anything other than the Intel 8237 chip? How well does it "mesh" with the 65xx family? (I am searching the message board, as we speak/I write!).
The VGA sensors feed the data and are, essentially, microprocessors, in and of themselves (they are just dedicated to high output!). I might be mistaken, but I think the vsync and hsync signals they send out could be utilized to generate some of the WE/, OE/, and/or CS signals. I dunno. I'm speculating. But I need to cache the data, till the 65816 has a chance to "sort through it". (I could collect 30 fps, but analyze only 5, or so frames, so the robot can act in real time, but "remember" recent history too?!)
My robot will sleep for 8 hours, like normal people do. So, 16 hours, 300kp *18 sensors (binocular; 9 sensors per eye), * 30 fps * 60s/min *60 min/hr * 16 waking hours, and well, 1.5 Terabytes/day. Poor, poor '816. Not a very relaxing "REM sleep"! Also, human eye is foveated, so a downsample of periphery is possible (though I think I should resist using this option).
Maybe I need DRAM? Not sure I have the skill to use Asynch. SRAM, nevermind a multiplexed-bus DRAM. Maybe psuedo-SRAM? "Page" SRAM? Ahhh, I dunno. Now I'm just babbling.
I might have to get a separate graphics processor, and maybe THAT could share the main bus with the 65816? That seems reasonable? Well, clearly, I have homework to do. Thanks for tolerating my speculative penchant.
|