I've written before about the great articles authored by my good friend Jack Ganssle. He's a very popular engineer/writer with a better handle on embedded software issues than anyone else in the business. His latest article in Embedded Software Programmaing magazine,
Subtract Software Costs by Adding CPUs, provides real meat in the form of quantitative substantiation to a gut feel that I've had for a while. Specifically, Ganssle's numbers show that you can get a system-level project out the door a lot faster by chopping the software into manageable pieces and assigning the pieces to a number of independent, intercommunicating processors.
There are many advantages to this approach. First, each piece of software can be written by a much smaller design team with much less communications overhead between team members. Second, you don't need one monster processor running at multiple gigahertz to execute all the code. Several smaller, slower processors can do the job in a less costly IC fab process and at much lower power. And third, this approach seems to cut the bug rate on embedded code.