period, silicon integrated-circuit technology has allowed the price of computer performance to fall at a rate of 15 to 25 percent per year. This rapid progress in reducing the cost of computing is what makes computer technology the means to exploit the great growth in communications carrying capacity made possible by satellites and fiber technology.
Advances in the power of the general-purpose processor are easy to see and well understood; workstation speed has more than doubled every 2 years, and memory sizes have grown at equivalent rates. In the more specialized areas of communications, this increased processing power can be exploited in a number of ways—to achieve a simple increase in speed, for example, and to make computers easier to use (simplicity and natural logic in the user interface require very complex processes in software and hardware). Continued rapid progress assures continued advances in both function and usability. But increased processing power can also often be used to greater advantage to increase flexibility and generality, attributes that are key to much of the ongoing transformation of communications technology and thus the communications industry itself. Three specific trends relating to increased flexibility and generality are relevant to the steering committee's assessment: the increasing use of software rather than hardware for implementation of functions, the increasing modularity of design, and the increasing ability to process and transform the data being transported within the communications system.
Implementation of functions in software can reduce cost and permit modification of a function by upgrading the program. Costs can also be reduced by replacing a number of special-purpose or low-level hardware elements with a single integrated processor, which then performs all the same tasks as the multiple hardware elements by executing a program. Continuous cost reduction is central to the current pace of technology advance; it permits rapid technology rollover and restructuring of the hardware base. Implementation in software, however, has the added advantage of permitting the functions of a device to be changed after manufacture, to correct "bugs" or meet evolving user needs, whereas hardware, once manufactured, is frozen. The flexibility to change a product during its lifetime is critical, because of rapidly changing user requirements driven by new applications.
One way to build more generality into a system is to make the design more modular, dividing the system into separable elements that implement different parts of a function. These modules can then be used in different ways to create new services. Adding modularity requires the implementation of interfaces between the elements of the system, and this step adds cost, especially if the modules are physical hardware elements in the design, but to some extent even if the modules are software modules and the interfaces are subroutine calls. However, even though modu-