Issue No. 03 - May/June (2000 vol. 20)
Traditionally, IEEE Micro has devoted special issues to topics such as hot chips, buses, interconnection technology, DSP, and memory systems. This issue is different because it focuses on computer architecture education in universities and colleges.
In the past two decades we've seen immense strides in this field. If the next generation of computer scientists and engineers are to build on these foundations, this progress must be reflected in the way we teach computer architecture.
In 1973 Gordon Moore observed that the number of transistors on a single silicon chip was doubling every 18 months. This empirical observation became known as Moore's law, even though it has no physical proof. However, it does make sense at a conceptual level because of the effects of positive feedback on the microprocessor system design process.
Improvements in semiconductor technology lead to better optics, more precise production equipment, and better software. These improvements help engineers design faster and more powerful microprocessors. In turn, better microprocessors and their allied peripherals make it easier to construct better production equipment and so on.
The student is every bit as much a component in this feedback loop as semiconductor physics or photolithography. A thriving computer industry requires new engineers and scientists to maintain momentum. Students themselves are both components of Moore's law and subject to it. Even though their IQs are not doubling every 18 months, their productivity may well be. Like their counterparts in industry, computer science students can achieve far more today than ever before. This increased productivity is partially due to students' use of high-performance computers, but it is also due to the educational software now available and the easy access to information via the Internet.
This special issue looks at today's computer architecture education in universities. In the first article, I give a personal account of the development of undergraduate-level computer architecture education in a computer science department. The article discusses some of the historical trends and highlights certain influences that have shaped the curriculum.
While the knowledge base academics must teach is continually expanding, only a fraction of that knowledge can be taught during a student's time at a university. Consequently, academics must continually examine and update the curriculum, raising the level of abstraction. For example, the generation of students studying electronics in the 1950s learned about the behavior of electrons in magnetic fields. The next generation studied transistor circuits, and the one after that studied integrated circuits.
The traditional digital logic course changes rapidly. Less emphasis is being placed on device characteristics and the traditional methods of digital circuit design. Hyde's article on teaching design describes the use of industrial hardware-design languages such as Verilog to specify digital systems at a much higher level of abstraction than was possible a few years ago.
When I started teaching in the late 1970s, 8-bit microprocessors were just appearing, and students were introduced to digital systems via TTL and LSI logic elements. A typical project might have involved a couple of crudely wired patch boards with 20 or so logic elements. Hamblen looks at ways of combining design tools and programmable hardware to provide students with the opportunity to construct complex digital systems. Undergraduates can employ cut-down versions of immensely powerful CAD tools that enable them to construct systems that their predecessors could not even imagine.
Hamblen describes how his students design, simulate in software, and debug a basic 32-bit CPU, then implement it with a complex programmable logic device. Such progress demonstrates the effect of what might be called the educational version of Moore's law. Students who have learned high-level design skills at university put them to very good use in graduate programs and in industry.
The advent of powerful PCs, the Internet, and Java contributed to an educational environment in which teachers no longer employ only chalk-and-talk methods. Web pages, animated presentations, and simulators are now widely used in and out of the classroom. The Internet has had a tremendous impact on education. Students can access a vast volume of information on computer architecture. However, much time is wasted sifting through vast amounts of useless data, and students are often not able to authenticate what they read.
One of the ways the Internet is likely to have a growing impact on computer architecture education is via the sharing of software tools. Kapadia and colleagues describe a project that enables students and researchers to share their software tools over the Internet. They discuss mechanisms that allow users to access software tools on distributed resources via Web browsers. Such tools increase student and researcher productivity by eliminating the time they once spent finding, downloading, and configuring a tool.
One of industry's legitimate concerns about the academic world is the scale of projects undertaken by students. Industrial projects are frequently very large and involve a lot of people over a long time span. Because of the structure of university education, students frequently carry out projects over the relatively short duration of a semester. Uht's article describes a longer-term project implemented at the University of Rhode Island.
This integrated computer engineering design curriculum provides the framework for a project that lasts two to three years. It gives the student an opportunity to design and construct a complete computer system, from CPU to compiler. Over the span of the course, students become familiar with professional development tools and many design processes that they will eventually encounter during their working lives.
One of the most important developments in computer architecture education is the processor simulator. Some simulators allow students to model a processor and run cross-software on a platform such as the PC. Students study computer architectures by observing the execution of a program instruction by instruction.
Several modern processor simulators are reconfigurable, meaning that students can do more than simply observe the behavior of a real machine. They can study computer architecture by actually defining their own machine. Ibbett discusses the Simjava simulation environment, which enables students to construct user-defined architectures. He describes how students can construct a simulator for the popular DLX synthetic architecture. The simulator can model the pipeline that is at the heart of modern RISC processors.
The CPU is not the computer system. Milenkovic and his colleagues describe a comprehensive integrated educational environment that simulates the CPU down to the register level. This environment allows students to construct cache memories, interleaved memory units, buses (synchronous and asynchronous), and even DMA controllers.
All these improvements in computer architecture education let students operate at a much higher level of abstraction than they once did. A generation ago, a student might have designed and constructed a display controller with the use of Boolean algebra and Karnaugh maps. Now, students can design a pipelined processor using a simulator, specify it in a high-level design language, simulate it, and then program a device to implement it.
Moore's law continues to describe progress in the computer industry. One day it will stop working because physical barriers to progress exist—the fundamental properties of matter limit the minimum feature size of structures on silicon. Of course, new technologies (for example, biological or quantum computers) could still emerge and revitalize Moore's law for another generation. For now, computer science education continues to play an important role in keeping Moore's law on track. Further improvements in the way computer architecture is taught will help to sustain growth in the computer industry for a few more years.
Alan Clements, a professor in the School of Computing and Mathematics at the University of Teesside, England, teaches courses on computer architecture. He also carries out work for the European Commission, Britain's Department of Trade and Industry, Hitachi, and Sega. His interests include curriculum design, the future of computer architecture in the curriculum, harmonizing curricula to enable the exchange of students between countries, developing Internet use in distance learning, and working on the IEEE Computer Society/ACM 2001 project. Clements graduated in electronics at the University of Sussex and obtained a PhD in data transmission at Loughborough University. In 1993 he was awarded a personal Chair sponsored by Motorola. He has written 12 textbooks on computer architecture and microprocessor system design and is currently writing a computing curriculum textbook. He is a member of the IEEE Computer Society's Educational Activities Board.