Embedded programming is kind of different than the kind that made your web browser. The programmer is constrained to much smaller limits. The programmer is not executing it in the same environment that the program is written with. (Most embedded computers don't even have screens!) As a result, they have developed all kinds of interesting tools to make their process far less headache inducing.
For one, embedded computers are often completely redesigned by the electronics expert, in order to accommodate some new requested feature, or because better hardware has been invented. (Desktop computers use slots, so you can just remove obsolete parts and pop in the replacement. No such luck in the embedded world -- the parts are permanently soldered together.) If this doesn't work, then the cost of fabricating it is wasted. So the circuit is first designed completely in simulation, so no silicon is ever wasted. They're not manufactured until proven to match the standards given perfectly. When it runs perfectly in simulation, then the real thing is made and compared. If they don't match, lots of research goes into why not.
I think I want to use this with genetic programming to invent the perfect laptop. We apply genetic programming to circuits. The fitness function calls for a laptop that runs a fixed OS image, with the minimum amount of electricity, at the maximum possible speed. So laptops that evolve with, say, no CPU, will be selected against. (The OS doesn't run with no CPU.) I similarly plan to have it eliminate devices that have no input, no output, or no sound. Circuits will also have genetic components for various types of CPU, various makers of sound chips, ram chips, north and south bridges, video chips, and wiring to connect them. I predict a very good design will emerge within 1 billion generations.
I will want to have this design studied. Did it evolve one CPU, or several? Did it use a video chip, or expect the CPU to handle all video rendering? (That's common with microcontrollers that have video-output. A video chip costs extra, so they make the CPU do it instead.) What manufacturers did it select? How long can I run it on this cheap lawnmower battery? What is it using for storage? (Traditional hard drive? If so, SATA or IDE? Flash chips? SSD? Something different altogether?) Did it skimp on any particular feature to save power? (Maybe it's sparse on RAM chips, as those have to be kept powered continuously so as not to lose their signal.)
My last question will be: "What would it cost to manufacture?" Quite possibly, it could prove...profitable.
No comments:
Post a Comment