
This is less a blog and more an irregular musing on topics that interest me, either personally, or as CTO of ThoughtWorks. I hope you find it of similar interest, and welcome your feedback.
Back in 1965, Gordon Moore of Intel observed that the complexity of chips, as measured by the number of transistors, that yields the minimum cost per component on the chip was doubling every year and that this trend looked likely to continue for a time anyway. The actual statement made by Moore in the original paper is as follows:
The complexity for minimum component costs has increased at a rate of roughly a factor of two per year […]. Certainly over the short term this rate can be expected to continue, if not increase. Over the longer term, the rate of increase is a bit more uncertain, although there is no reason to believe it will not remain nearly constant for at least 10 years.
This observation was termed Moore's Law by Carver Mead. In a general sense, the law continues to hold, much longer than anyone thought possible at the time. Over time, the Law has been both re-stated and mis-stated. Different time frames have been quoted; Moore himself decided two years was more realistic as time went on and claims that he'd never said eighteen months, another oft quoted time frame. The quantity described also varies across interpretations, including density, cost, clock cycle time, and overall computing power. The demise of Moore's Law has been discussed for almost as long as it has existed, but the semi-conductor industry continues to improve the transistor density of chips and the efficiency of the chip fabrication process although not quite a the rate quoted.
Moore's Law is not a physical law like the law of gravity. Instead, it was an observation of a trend that was then predicted to continue for a time. However, it came to be used as a target for innovation in the industry, and thus became something of a self-fulfilling prophesy. While the statement actually addresses issues of density of transistors on chips, the interpretation of Moore's Law has often been more around a vague notion of computational power for a given cost.
The current discussions of the end of Moore's Law focus on the physical limits of the current fabrication processes. Specifically, sometime in the next ten years or so, the heat generated by the chips coupled with the size will make further reductions in transistor size (and thus increases in chip density) impractical. In addition, improvements in yields are more challenging to achieve. In this context, the demise of Moore's Law has more impact on the currently semi-conductor industry than on the consumers of chips.
The massive growth in the computing power of devices affordable by individuals and small businesses (as opposed to huge companies, governments and research labs alone) has fundamentally changed the world. Thomas .J. Watson, chairman of the board of IBM said in 1943 that the worldwide demand for computers was probably around 5. Many families and even individuals have that number of computer processors now, when you consider personal computers, PDAs, smart phones, calculators, intelligent thermostats, GPS devices, MP3 players, etc. Nicholas Negroponte is even working on a system that would allow remote villages without access to reliable electrical power to reap the benefits of computing.
There's also been an explosion of application functionality. Software applications and the businesses that sell them have proliferated. The increase in functionality available to individuals is astounding. The proliferation of computer and communication technology has allowed individuals access to tax preparation; research; electronic forums for discussions with government officials and candidates; communities of like-minded individuals or support groups; and location aware applications to name just a few.
Moore's Law addresses purely the hardware aspects of computing technology. Without appropriate systems and applications software, the hardware itself is meaningless to the vast majority of people. The time since Moore's Law was first stated has seen a shift in the cost equations for organizations. Early in computing history, programs were incredibly difficult to write. All programs were written in machine code and even had to be manually entered into the computer's memory. Computing resources from the perspective of the programmer were scarce. With the increased efficiency and decreased costs of hardware, software could be created more readily and with practically no concern for the size of the program or its efficiency. This shift initially led to the spread of software to areas that were too large or complex to be addressed with such a primitive programming model. As the breadth of applications grew, the need for software businesses to make money and differentiate themselves created pressures to add new features to programs, regardless of the relative usefulness of the programs without those features.
There are at least two different near term prospects for a continuation of Moore's Law: the advent of optical computing and increased use of multi-core technology. Both admittedly change the processes underlying Moore's Law.
Optical computing devices have different physical properties supporting their manufacture and operation. Research in optical computing devices has been progressing for many years and is showing promise for commercial viability within the next five to ten years. Optical components rely on light rather than electro-magnetic signals. Research in both hybrid electro-optical components as well as purely optical components is underway with advances being made in optical computational components and storage.
Multi-core technology changes the computing resources available at a given point in time. The degree of parallelism in computer systems has been increasing steadily even without the inclusion of explicit parallel processing. Instruction pipelines, overlapping memory/compute cycles, and separate graphics processors to name a few have been in common use since the 1980s. Until quite recently, however, only specialized computer systems have taken advantage of explicit parallel processing. Applications such as financial risk analysis, reservoir modeling, global climate models, fraud detection, stock prediction, and even simulation of semi-conductor processes and designs are examples of application areas where explicit parallel programs have been written to exploit multiple processors. However, wide-spread availability of multi-core processors in personal computers has arrived. Exploitation of multi-core technology will extend the practical limits of the computational power of the personal computer. If one views Moore's Law through the lens of the cost of computing power, multi-core technology provides an avenue for significant increases in the baseline for computational power.
Biological computing devices such as protein based memory and DNA-based computational devices are being researched; the practical application of these technologies is still quite far out. Quantum computing devices have been studied for even longer, but those also are far from ready for wide spread applicability.
The growth of computational power at steady or even declining prices and the rapid advance in the uses of computers and in the user base have been mutually reinforcing in many ways. Increases in the computational ability of basic personal computers have created a market for myriad applications. Developers of these systems do not have to worry much about performance or resource utilization. The software industry's business model has been based on maintenance revenue and upgrades. This business model pressures software companies to constantly add features to products to keep the revenue coming. Without changes in hardware or new features, there is little impetus for users to purchase new versions of software. However, as seen above, advances in other approaches to chip creation likely mean that the growth in computational capabilities will continue to occur.
The most profound impact of the end of Moore's Law is to those who currently manufacture chips. If fundamental changes are needed to the way chips are manufactured to get continued improvements, significant capital investments in plants, equipment, research and training will need to be undertaken to re-tool for the new processes.
Considering the broader interpretation of Moore's Law, the trend predicted can continue in different ways. Computers using optical components would, from a user's and programmer's perspective, behave much the same. Greater exploitation of concurrency would, however, changes the way programmers must think about their applications, at least in the near term. Since the computational model for so long in the personal computing world has been based on a single processor, many applications and libraries are not developed such that they perform correctly in a multi-core environment. Correct programming in a multi-core environment is more difficult, particularly while libraries are still not yet developed to operate properly in this environment. Additionally, testing in a concurrent environment is much more difficult, since computational events can now occur in multiple sequences. A test that was reproducible in a single processor environment is not necessarily reproducible in a concurrent environment. Our development methodology must be altered to account for this change in the computational environment. In particular, manual testing, which was already past the limits of practicality in many respects, is virtually useless since a small team of testers will not be able to create the timing and load scenarios necessary to uncover timing issues in applications.
Moore's Law has driven the semi-conductor industry and has been a short hand for talking about the growth of computing power in the hands of individuals. Continued exponential increases are almost by definition unlikely. Regardless of the precise degree of growth, innovation in the design of computing devices and in the software that runs on those devices is likely to continue at a rapid pace.
ThoughtWorks is a global IT consultancy. We deliver bespoke applications, no-nonsense consulting and help organisations become agile.
ThoughtWorks Inc, 200 E. Randolph, 25th floor, Chicago, IL 60601-6501
T +1 312 373 1000 F +1 312 373 1001 E info-us@thoughtworks.com