|
|
|
PC Revolution and the Rise of WinTel This section is divided into three parts that all deal with the theme of the personal computer. In the first part we discuss the evolution of Intel’s processors and some of the clones that have attempted to attract part of Intel’s market. In the second part we look at the growth of Microsoft and their domination of the operating system market. In the final part of this section we examine the effect that the personal computer has had on society – the phenomenon of mass computing. Just as Windows has dominated the operating system, Intel architectures have dominated the PC's hardware and architecture. The dominance of the Windows operating system and the Intel family in the PC market let to the coining of the term WinTel to describe the symbiotic relationship between the Microsoft Corporation and Intel. The relationship between Microsoft and Intel is not entirely symbiotic. Although Intel's chips and Microsoft's operating system form the foundations of the personal computer, each of these two organizations views the world from a different perspective. Microsoft is happy to see other semiconductor manufacturers produce clones of Intel processors – if chip prices are driven down, more people can buy computers with Microsoft's software. Similarly, if the freely available Linux operating system becomes more widely available, Intel can sell more chips for Linux boxes. Linux is an open-source operating system, functionally equivalent to Unix, named after Linus Torvalds who created the first version of its kernel (core) while a student at the University of Helsinki in 1991. The success of the first serious computer, the 6502-based Apple II introduced in 1977, demonstrated that there was a potential mass market for personal computers. The development of microprocessor architectures since 1981 has been as much affected by commercial considerations as by improvements in technology because of the inexorable rise of the IBM PC. A cynical observer might suggest that the PC owes an immense debt of gratitude to Apple for failing to capitalize on its 68000-based Macintosh that so many people once regarded as superior to the IBM PC. Apple's commercial failure demonstrates that those in the semiconductor industry must realize that commercial factors are every bit as important as architectural excellence and performance. In short (and with hindsight), IBM adopted open standards. By making the IBM PC non-proprietary, anyone could build a copy or clone of the IBM PC. Hundreds of manufacturers started producing parts of PCs and an entire industry sprang up. You could buy a basic system from one place, a hard disk from another, and a graphics card from yet another supplier. By publishing standards for the PC's bus, anyone could create a peripheral for the PC. What IBM lost in the form of increased competition, they more than made up for in the rapidly expanding market. Finally, IBM’s open standard provided an incentive for software writers to generate software for the rapidly expanding PC market. As we have seen, Apple favored a very different approach. They marketed the computer. And the operating system. And the peripherals. Apple refused to publish detailed hardware specifications or to license their BIOS and operating system. Apple may well have had the better processor and an operating system that was regarded as more user friendly. In particular, non-computer specialists loved the Apple because they found it so easy to use in contrast with the PC. Even though you could buy peripherals for the PC from many sources, getting, say, a video card to work with the operating system could sometimes prove very difficult. As time passed the sheer volume of PCs and their interfaces (plus the software base) pushed PC prices down and down. The Apple was perceived as over priced. Even though Apple adopted the PowerPC, it was too late and Apple's role in the personal computer world was marginalized. By the mid 1990s it was possible to joke "Question: What do you get if you merge Apple with IBM? Answer: IBM". Tredennick points out that the fundamental problem facing anyone who wishes to break into the PC field is amortization [Tredennick96]. A manufacturer has to recover its development costs over its future sales. Intel can spread the cost of a processor like the Pentium over, say, 50 million units. In other words, the amortization cost of each processor is just a few dollars and is well below its manufacturing costs. On the other hand, a competitor attempting to break into the market will have to amortize development costs over a much smaller number of processors. Development of the IA-32 Architecture Due to the inherent complexity of the 86x processors, we can provide only an overview of their development here. In 1975 work started on the 16-bit 8086 that was to be compatible with the 8-bit 8080. The following figure describes the 8086’s internal structure. Intel seemed to get the worst of both worlds when the 8086 carried over some of the 8080's primitive architecture and yet the 8086's object code was not compatible with the 8080. However, because the underlying architectures of the 8080 and 8086 were compatible, the automatic translation of 8080 machine code into 8086 machine code was not difficult.
Structure of the 8086 Intel was the first company to introduce the coprocessor (i.e., an auxiliary external processor that augments the operation of the CPU) to enhance the performance of its processors. Intel added the 8087 coprocessor to 8086-based systems to extend the processor's architecture to include floating point operations. Today’s ability to put very large numbers of components on a silicon chip has largely removed the need for external coprocessors. You could, however, say that some of the graphics engines located on video cards are really coprocessors that take over work that the CPU would have had to do. In order to simplify systems design, Intel introduced a modification of the 8086 called the 8088 that had the same architecture as the 8086 but which communicated with memory via an 8-bit bus. In other words, the 8088 provided 16-bit computing (i.e., architecture) with 8-bit hardware complexity (i.e., organization). In 1981 IBM adopted Intel’s 8088 in its first PC that was clocked at 4.77 MHz. At the beginning of 1982 Intel introduced the 80286, the first of many major upgrades to the 86x family that would span two decades. The 80286 had a 16-bit data bus and operated at 6 MHz – its clock speed gradually rose to 20 MHz over its life span). As well as increasing its speed by using a faster clock than the 8086, the 80286 had a more efficient organization that increased throughput by a factor of about five. This trend of increasing speed via improving a microprocessor’s organization became a feature of the microprocessor industry. IBM's adoption of the 86286 for its PC AT architecture in 1984 ensured the continuing success of Intel's 86x line.
Structure of the 80286 The 80286 had 24 address lines making it possible to access 224 bytes (i.e., 16 Mbytes) of memory (the same as the 68000). It also incorporated a fairly crude on-chip memory management unit that could be used to support multitasking and virtual memory systems where up to 1Gybtes of virtual memory could be accessed. In order to make the 80286 compatible with software written for the 8086, the 80286 operated in two modes – real and protected. In the real mode, the 80286 looked like an 8086 and could address only 1 Mbyte. In the protected mode, the 80286 could access its entire 16 Mbyte memory space. However, because the protected mode still forced you to use segmentation with 64 Kbyte pages and because it was impossible to go from protected to real modes, the protected mode was little used by programmers. The Motorola 68000 and 68200 microprocessors employed a much more sophisticated memory management system by means of an external coprocessor – the MMU (memory management unit). The 80286 was followed by the 80386 in 1985. This processor had 32-bit address and data buses. The 80386 represented a considerable step up from the 80286 and had improved memory management with three operating modes. The 80386’s new operating mode, virtual 8086, made it easier to run 8086 programs. In 1989 Intel introduced the 80486, which was a relatively modest step up from the 80386 with relatively few architectural enhancements. The 80486 was Intel’s first microprocessor to include on-chip floating-point arithmetic and a 4-way set-associative cache. Intel later developed its Pentium in 1993. This was Intel’s 80586, but, because Intel couldn’t patent a number, they chose the name Pentium™ with an initial speed of 60 MHz (rising to 166 MHz in later generations). The Pentium was architecturally largely the same as a 32-bit 80486 but had a 64-bit data bus – a few new instructions were added to the 80486’s instruction set. Performance was enhanced by using parallel processing and a 16K cache memory divided into instruction and data sections. The Pentium family was developed over the years with the introduction of the Pentium II, Pentium Pro, Pentium III, and in 2000 the Pentium IV. Intel kept its classic architecture and literature now refers to the IA-32 architecture, rather than the 80x86 or Pentium families. As it appeared that every drop of performance had been squeezed out of the IA-32 family, Intel announced plans to develop a radically new IA-64 architecture in 1994. Just as Motorola changed direction with the 68K family when it adopted the PowerPC architecture that was largely developed by IBM, Intel’s IA-64 architecture was originally conceived at Hewlett Packard. Since the term IA-64 is hardly an advertising executive’s dream, Intel decided to call its new processor family Itanium, probably because it captures the image and aura of the space age metal Titanium. Intel Clones Just as the IBM PC was copied by other manufacturers to create so-called PC clones, members of the 80x86 family have also been cloned by other semiconductor manufacturers. Of course, it’s not possible to directly copy a microprocessor because that would infringe patents. It is, however, possible to make a functional copy of a microprocessor that behaves like the original and executes the same object. Because microprocessors are so complex, it is impossible to verify that an 80x86 or Pentium clone is exactly functionally equivalent to an actual 80x86/Pentium. For this reason, some users have been reluctant to use 80x86 clones. The first Intel clone was the NextGen Nx586 produced by NextGen (which was later taken over by AMD). This chip provided a similar level of performance to early Pentiums running at about 90 MHz but was sold at a considerably lower price. The Nx586 had several modern architectural features such as superscalar execution (with two integer execution units), pipelining, branch prediction logic, and separate data and instruction caches. At full speed, the Nx586 could execute two instructions per cycle. The Nx586 did not attempt to execute the Intel instruction set directly. Instead, it translated Intel instructions into a simpler from and executed these instructions. Other clones were produced by AMD and Cyrix. The AMD K5 took a similar approach to NexGen by translating Intel’s variable-length instructions into fixed-length RISC instructions before executing them. AMD’s next processor, the K6, built on NexGen’s Nx586 experience by including two instruction pipelines bed by four instruction decoders. By early 1999 some of the clone manufacturers were attempting to improve on Intel’s processors rather than just creating lower cost functionally equivalent copies. Indeed AMD would claim that its K7 or Athlon architecture was better than the corresponding Pentium III; for example, the Athlon boasted 3DNow! technology that boosted graphics performance, an level 1 cache 400% bigger than Intel’s then competing Pentium III, and a system bus that was 200% faster than Intel’s (note that AMD’s processors required a different mother board to Intel’s chips). In 1995 a company called Transmeta was set up specifically to market a processor called Crusoe that would directly compete with Intel’s Pentium family – particularly in the low-power laptop market. Crusoe’s native architecture is nothing like the IA32 family that it emulates. It uses a very long instruction word format to execute instructions in parallel. When IA32 (i.e., x68) instructions are read from memory, they are dynamically translated into Crusoe’s own code (in a process that Transmeta calls “code morphing”). The translated code is saved in a cache memory and the source code need not be translated the next time it is executed. Because Crusoe’s architecture is more efficient than the IA32 family, the first version of Crusoe has about one-quarter the number of transistors of an equivalent Intel processors. Consequently, Transmeta was able to claim that their device was both faster and less power-hungry than Intel’s chips. Although this book is concerned with computer architecture, issues far removed from performance and architectural suitability" affect the practice of computer architecture. One of these influences is the operating system, which, in the PC world, has become dominated by Microsoft's Windows. Users interact with operating systems in one of two ways: via a command language like UNIX or MS-DOS, or via a graphical user interface like Windows. The user interface is, of course, only a means of communication between the human and the operating system—the underlying operating system that manages files and switches between tasks is not directly affected by the user interface. Here we take a brief look at two user interfaces: the command line driven MS-DOS and the Windows graphical user interface. Operating systems have been around for a long time and their history is as fascinating as that of the processor architectures themselves. In the early days of the computer when all machines were expensive mainframes, the major computer companies designed operating systems to run on their own machines. One of the first operating systems that could be used on a variety of different computers was UNIX, which was designed by Ken Thompson and Dennis Richie at Bell Labs. UNIX was written in C; a systems programming language designed by Richie. Originally intended to run on DEC’s primitive PDP-7 minicomputer, UNIX was later rewritten for the popular PDP-11. This proved to be an important move, because, in the 1970s, many university computer science departments used PDP-11s. Bell Labs was able to license UNIX for a nominal fee, and, therefore, UNIX rapidly became the standard operating system in the academic world. UNIX is a very powerful and flexible, interactive, timesharing operating system that was designed by programmers for programmers. What does that mean? If I said that laws are written for lawyers, I think that a picture might be forming in your mind. UNIX is a user-friendly language like a brick is an aerodynamically efficient structure. However, UNIX is probably the most widely used operating system in many universities—this is what Andrew Tanenbaum had to say on the subject, “While this kind of user interface [a user friendly system] may be suitable for novices, it tends to annoy skilled programmers. What they want is a servant, not a nanny.” UNIX is a powerful and popular operating system because it operates in a consistent and elegant way. When a user logs in to a UNIX system, a program called the shell interprets the user’s commands. The commands of UNIX take a little getting used to, because they are heavily abbreviated and the abbreviations are not always what you might expect. Because of UNIX’s immense popularity in the academic world, it influenced the thinking of a generation of programmers and systems designers. The first truly popular command-line operating system was MS-DOS because it was designed to run on IBM’s PC. In 1980 IBM commissioned Bill Gates to produce an operating system for their new PC. IBM was aware of Bill Gates because he had written a version of the language BASIC for the Intel 8080-based Altair personal computer. Because IBM’s original PC had only 64K bytes of RAM and no hard disk, a powerful operating system like UNIX could not be supported. Gates didn’t have time to develop an entirely new operating system, so his company, Microsoft, bought an operating system called 85-DOS. This product was modified and renamed MS-DOS (Microsoft Disk Operating System). Version 1.0 of MS-DOS, which was released in 1981, occupied 12K bytes of memory and supported only a 160 Kbyte 5¼ in diskette. MS-DOS performed all its input and output transactions by calling routines in a read-only memory within the PC. These I/O routines are called the PC’s BIOS (basic input/output system). MS-DOS 1.0 also included a command processor, command.com, like UNIX’s shell. Over the years Microsoft refined MS-DOS to take advantage of the improved hardware of later generations of PCs. MS-DOS 1.0 begat version 1.1, which begat version 2.0, and so on. After much begetting, which made Bill Gates one of the richest men in the World, MS-DOS reached version 6.2 in 1994. New versions of MS-DOS were eagerly awaited, and many PC users purchase the updates as soon as they are released. With so many versions of MS-DOS sold in such a short time, you could be forgiven for making the comment “You don’t buy MS-DOS; you rent it”. MS-DOS shares many of the features of UNIX but it lacks UNIX’s consistency. More importantly, the pressure to maintain backward compatibility with older versions of PCs and PC software has meant that MS-DOS cannot handle programs larger than 640 Kbytes. MS-DOS was designed for the 8086 microprocessor that could address only 1 Mbyte of address space. Unlike UNIX, MS-DOS was not designed as a timesharing system and, therefore, there is no logon procedure. In other words, MS-DOS has no security mechanism and the user can do anything he or she wants. UNIX has a superuser who is protected by a password and who has special privileges. The superuser is able to configure and maintain the operating system. An MS-DOS file name is restricted to eight characters (UNIX file names can be up to 255 characters). UNIX and MS-DOS allow the type of the file to be described by an extension after the filename; for example, the MS-DOS file test.exe indicates a file called test that is in the form of an executable program. Both UNIX and MS-DOS do not enforce the way in which file extensions are used—you can give a file any extension you want. MS-DOS can be configured or tailored to the specific system on which it is to run. When MS-DOS is first loaded into memory, two files called CONFIG.SYS and AUTOEXEC.BAT are automatically executed. These files set up an environment to suit the structure of the computer; they tell the operating system where to find device drivers for the video display, the mouse, the printer, the sound card, and so on. The advantage of MS-DOS’s configuration files is that they allow the system to be tailored to suit the actual software and hardware environment. Many believe that one of the most important factors in encouraging the expansion of computers into non-traditional environments has been the development of intuitive, user-friendly interfaces. On the other hand, every time you install a new package, there is a good chance that it will modify the two configuration files (more if it runs under Windows). After a time, the configuration files become very difficult to understand. Even worse, when you delete an application, the changes it made to the configuration file are left behind. Like UNIX, MS-DOS is, essentially, a programmer’s language. The need to make computers accessible to those who want to employ them as a tool, forced the development of graphical user interfaces like Windows that provide a GUI, or graphical user interface. This type of graphical operating system interface is good because many users can access operating system functions or use applications programs without ever reading the user’s manual. However, some programmers don’t like the GUI environment because they feel that the traditional command language is much more efficient and concise. In many ways this criticism of the Windows environment is valid. Before we discuss the history of Windows, we have to say something about Linux, the popular version of Unix. Essentially, Linux is a public-domain clone of AT&T’s Unix. In 1987 Andrew Tanenbaum designed Minix, an open-source operating system, as a tool for study and modification in operating system courses. Linus Torvalds was a CS student in Finland who was inspired my Minix to create his own operation system, Linux. Version 0.01 of Linux was released in 1991. Torvalds’ operating system steadily grows in popularity and, although in the public domain, numerous companies sell their own versions of it with add-ons and tools to facilitate installation. At the same time, some of the large software vendors begin to write versions of their Windows-based software for Linux. Whether Linux will remain a plaything for enthusiasts or become a real competitor remains to be seen. Many large corporations are wary of adopting an operating system that is in the public domain and that there is no organization that is guaranteed to update and maintain it. Windows Many of today’s computers will be unaware of Microsoft’s early history and its MS-DOS; all they will be aware of is Microsoft’s user-friendly, graphical operating system known as Windows. Graphical interfaces have a long history. Much of the credit for the development of graphical user interfaces is usually given to Xerox for their work at Xerox PARC at the Palo Alto Research Center in the late 1970s. They developed the Alto and the Xerox Star, the first GUI-based computers. Sadly, Xerox’s computers were not commercially successful and the first popular computer to use a GUI interface was Apple’s Lisa and its more famous successor the Apple Macintosh. We should also point out that other GUIs were developed during the 1980s. In 1985 Digital Research introduced its GEM (Graphics Environment Manager) and in 1984 the X Windows graphical interface was created at MIT. The X Window Consortium created this as an open system and it became a popular front-end on Unix-based systems. Windows is the operating system that brought computing to the masses because it is intuitive and relatively easy to use. In many ways, the first versions of Microsoft’s Windows were not really operating systems; they were front-ends that sat between the user and the underlying system. The following table gives a brief chronology of the development of Windows up to 2000.
|