Published on Monday, February 16, 01987 • 37 years, 7 months ago
Written by Danny Hillis for IEEE Spectrum
Optimizing a design always means trading off the performance of different parts to achieve a balance. The question is: What kind of balance? Two principles, equal performance and equal cost, are widely used. A third, equally important principle is equal effectiveness -matching the cost-performance ratios of all modules in a design.
For a serial design-one in which modules are connected in a chain-equal performance is the answer. A serial system can run no faster than its weakest link, so any extra performance in the middle of a chain will be wasted. The money spent on bringing each component to the required speed is essentially irrelevant; if a serial design has any part that runs slower than desired, the system will not do its job.
For a staged design-one in which system performance is proportional to the product of the performance of each module-costs should be allocated equally among t he modules. Since the total cost is equal to the sum of the module costs, this principle will maximize the cost-performance ratio. For example, the optimal design for a two-stage amplifier, where the cost of each stage is proportional to its gain, will specify two amplifiers of equal gain.
Another application of this second principle of balance is found in computer architecture. One computer architect, C. Gordon Bell of the U.S. National Science Foundation, has commented that the power of a computer is essentially proportional to the product of the processing speed and its memory size. A slow processor with a large memory cannot make efficient use of its resources, while a fast processor with a small memory has no place to put all its answers. It follows that about half the cost of an optimal computer should be in processing and the other half in memory.
The third principle of balance is more complex: it applies when module cost is proportional to throughput rate, but the goal of optimization is to save the total time required for an operation. For example, in a digital system with many circuit boards, total communication time depends on the sum of the time required to communicate between chips on a single board and the time to communicate between boards. But the cost of speeding up interboard communication may be 10 times that of speeding intraboard communication-perhaps $1 for a megabit per second on the board, and $10 for a megabit per second off the board. The rule of equal performance would call for spending 10 times as much on interboard communication. This might lead, for example, to a throughput of 1 megabit per second for both parts of the path, and a total time of 2 microseconds to move a single bit from its source to its destination, at a cost of $11.
The rule of equal cost would call for making the intraboard communication 10 times as fast. That hypothetical $11 would be split between the two modules to yield 5.5 megabits per second on the board and 0.55 megabit between the boards. Total time to transmit a bit: 2 microseconds.
The rule of equal effectiveness splits the cost according to the square root of the cost-performance ratios-the square root of 10 in this case. With 3.16 times as much spent for off-board communications as for on-board, the hypothetical $11 is split $8.36 to $2.64, On-board speed is 2.64 megabits per second and off-board speed is 0.836 mega- bit per second, so it takes 1.57 microseconds to transmit a single bit.
This third rule is a geometric mean of the allocations suggested by the equal-performance and equal-cost- rules; it acknowledges the fact that, as one part of a system is speeded up, it accounts for less of the total time to do a given operation, making further increases in speed less and less useful. This rule is also the answer to Amdahl's law, long known in computer science, which states that if a computation has a slow part and a fast one, the performance of the slow part will eventually dominate total performance. While Amdahl's law identifies the problem, the rule of equal effectiveness specifies how engineers should allocate resources to solve it optimally.
First published in IEEE Spectrum in 01987.