Fifty years ago, John William Mauchly and John Eckert were hard at work completing the ENIAC, the world's first electronic computing machine. It was built using electron tubes (lots of them) and it was quite large. No doubt its inventors would have had a hard time believing that all of that computing power would someday easily fit into a shirt pocket.We've progressed quite a lot since 1946; but in other ways, we haven't. If Mr. Mauchly and Mr. Eckert were both looking over our shoulders today, they probably would not be surprised to see that, on long signal connections, ringing and overshoot are still a problem. Sure, our systems are MUCH smaller, which makes our problem that much easier. But on the other hand, clock rates have skyrocketed. That makes the problem more difficult. On balance, system performance is still limited by the physical propagation of signals from point A to point B. In the ENIAC, points A and B were on opposite sides of a room. Today, our circuits may only be on opposite sides of a motherboard, but they are still physically separated, and signal propagation remains a significant factor. Physics hasn't changed. As we go faster, physical considerations will force us to develop even smaller physical packaging. Fast logic is great, but it's also a curse.
In the last couple of decades, the speed problem has gotten worse. We have been blessed with much faster chips, but our logic packaging hasn't kept up. As a result, interconnection difficulties are absorbing a larger and larger percentage of each processor cycle. Just look at what's happened in the world of desktop computing. The original Intel 8080 processor had a clock speed of only 400 KHz. New Intel Pentium processors now run at least 133 MHz. That's more than a three-hundred-to-one speedup.
In the same period of time, what has happened to the size of desktop computers? They certainly haven't been shrinking much, if at all. Are we headed for trouble? You bet. Three bad things will happen to desktop-sized devices as we try to go faster.
- A greater and greater percentage of PCB traces in new designs will likely require terminators. Terminators help control ringing and overshoot on transmission lines. As we go faster in speed, more and more of our PCB traces will begin to take on aspects of transmission line behavior, and thus will require terminators. Unfortunately, terminators occupy precious space on every printed circuit board. They also dissipate a lot of power.
- The delay of individual traces will become more and more important. Already CAD manufacturers are beginning to incorporate features useful for matching trace lengths, and for matching overall circuit delays (including chip delays). At very high speeds, such features are crucial to system operation.
- Crosstalk will begin to overwhelm many systems. Every time the clock rate is doubled, crosstalk will go up by at least a factor of two. This effect will hit some systems like a ton of bricks. And when it does happen,, the affected systems will experience some of the following symptoms--flaky or data dependent logic errors, sudden system crashes, software branches to nowhere, impossible state transitions, and unexplained interrupts.
If this does indeed happen to you, you should be consoled with the idea that signal propagation was a problem on the ENIAC project, too. At least you are in good company.