Why the personal computer diverged from the embedded computer

It may surprise you “young” readers to hear that for many years there was no difference between a computer used for dedicated applications and one that could run different programs at different times! When Intel’s 8-bit 8008 gave way to the 16-bit 8086 they also produced the 8-bit-interface 8088; the next step had the 80286 but still had the (I believe 8-bit-interface) 80186; the 80286 led to the 386, and the 486. after “4” the marketing folks substituted “Pentium” for “5”; since then the non-dedicated program market has moved out of sight.

Even today’s processors start up ‘knowing’ nothing (with a set of instruction decoders built in and more and more internal registers and RAM–cache, etc.). The first few instructions for a personal computer still come from a Read-Only Memory called the boot ROM (even if it may now be on the main processor chip)  whereas, with no start-up, a dedicated processor begins running directly from the dedicated program.

Why did early processors come with 8-bit interface versions? Basically it had to do with packaging. If you had to bring in 16 bits at a time, it took 8 more pins around the edge of the (DIP) dual in-line package, and even 36 pins was a lot. By multiplexing the data bus you could save pins and make the packages less expensive; you also took up less board space which could matter for a dedicated application. What happened to change this? Surface mount packaging allowed an immense increase in connections around (or under) the integrated circuit package. Now you can have 50 or 100 connections so data can all come in and go out in parallel to memory devices that can do the same.

Why have the two areas diverged?

Immense speed and data handling capability are unnecessary for most dedicated applications. Waiting for a person to push a button can be easily done even by a 4-bit processor with a slow clock. Most embedded applications are not processing intensive–a little logic and slow speeds can go a long way. Some low-end micro-controllers can cost a few 10’s of cents per device–cheap enough to put into children’s toys, throw-away devices, and even greeting cards.

While programmers for embedded applications may still write the entire program, for general-purpose computers that has become impossible. Programmers seldom even write in low-level language any more, and interfacing to hard drives, USB ports, the Internet, and display screens is so complex it has become a matter of combining prewritten modules and adding program ‘glue’ between the pieces. I suppose somewhere there are a handful of programmers who polish and tune those modules and write new ones as new technologies come up, but most Information Technology programmers are completely out of touch with the actual throbbing pulse of the processor.

So, if you are writing applications for embedded micro-controllers, know you are much closer to the heart of the computer than any of the high-level programmers will ever be!

 

 

Related posts: