16 brief history of microprocessors

Upload: godwin

Post on 08-Apr-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/7/2019 16 Brief History of Microprocessors

    1/30

    16 Brief History of MicroprocessorsNote: This is an extract from a book I am currently writing. If you have any comments on this first draft, pleaselet me know.Students of computer architecture all too frequently see the microprocessor in the light of the latest high-performancepersonal computer. To many of them, there is no pastthe computer suddenly burst onto the scene as if it had fallenthrough a time warp. In reality, the computer has a rich and complex history.History is important because it teaches us how the world develops and enables us to understand some of the forces thatcontrol events. Today's computers are not the best possible machines designed by the brightest and best engineers andprogrammers. They are the products of a development path that has relied as much on whim and commercialconsiderations as on good engineering practice. This chapter puts the microprocessor in a historical context and discussessome of the issues related to its development.Moreover, because many of the key events in the development of the computer have taken place over that last 30 years,an author like myself can remember many of the most important milestones in the microprocessor's development takingplace.First, I do have to give a warning. Kaila Katz wrote a stinging criticism of the quality of historical information in typicalcomputer science texts [Katz95]. She commented that many texts provide potted histories of computing that are, at bestgarbled and, at worst, very seriously flawed. In particular, Katz criticizes the many inaccuracies (both technical andhistorical) found in some of the material written about Charles Babbage and Ada King. While we can forgive Hollywood foromanticizing the past, textbooks should attempt to put events in the correct historical context.Instead of just providing a list of "firsts" (e.g., the first mechanical computer, the first electronic computer, the firstmicroprocessor, and so on), I have attempted to include some of the intellectual ideas that spurred the evolution of themicroprocessor and some of the enabling technologies that were necessary for its development (e.g., the watchmaker's arin the 19th century and the growth of telecommunications in the late 1880s).Writing a chapter on computer history was much harder than I had anticipated because it's difficult to separate many of

    the interrelated events. We begin this subject with a description of developments up to the birth of the firstmicroprocessor. We cover some of the reasons that computing developed (i.e., global navigation) and introduce some ofthe early mechanical devices used to facilitate mathematical calculations.It is tempting to begin the modern era of computing with first electromechanical devices that emerged around the time oWorld War 1. However, we have resisted this and provided a section on the "enabling" technology that preceded suchcomputers. The growth of telecommunications in the 19th century (i.e., the telegraph) provided components that could bused to construct computers, networks that can connect computers, and theories that help design computers. The finalpart of the first section briefly describes the first mechanical computers.In the second section of this chapter we look at some of the first electronic mainframe computers that were physicallylarge and unreliable electronic computers. These were the making of some of the major players in the computer industrysuch as IBM. We also introduce the link between the mainframe and the microprocessor, the minicomputer. Minicomputewere developed in the 1960s as low-cost mainframes and many of their architectural features were later incorporated inmicroprocessors.

    We begin the history of the microprocessor with the Intel 4004, the first "CPU on a chip" and then describe thedevelopment of 8-bit microprocessors.The next stage in the history of the microprocessor covers the high-performance 16/32 bit microprocessors and thedevelopment of the RISC processor in the 1980s. Because the IBM PC has had such an effect on the development of themicroprocessor we look at the rise of the Intel family and the development of Windows in greater detail. It is difficult tooverstate the effect that the 80x86 and Windows have had on the microprocessor industry.At the end of this chapter we describe some of the more recent developments in microprocessor architecture and ask howfar the story of the microprocessor can continue.

    16.1 Before the Microprocessor

    Its impossible to cover computer history in a few pageswe could devote a complete text to each of the manymathematicians and engineers that played a role in the development of the computer. In any case, the history ofcomputing extends to prehistory and includes all those disciplines that contributed to the body of knowledge that

    eventually led to what we would now call the computer.Had the computer been invented in 1990 it might well have been called an "Information Processor" or a "SymbolManipulator Machine". It wasnt invented in 1990 and it has a much longer history. The very name computerdescribes therole it originally performedit was a machine created to carry out tedious mathematical operations.Mathematics was invented for two reasons. The most obvious reason was to blight the lives of generations of high-schoolstudents by forcing them to study geometry, trigonometry, and algebra. The second reason is that mathematics is apowerful tool enabling us to describe the world, and, more importantly, to make predictions about it. Long before theancient Greek civilization flowered, humans had devised numbers, the abacus (a primitive calculating device), and algebrThe very word digital is derived from the Latin digitus (finger) and calculate is derived from the Latin calculus (pebble).

  • 8/7/2019 16 Brief History of Microprocessors

    2/30

    Activities from farming to building all require some form of mathematics. The mathematics of measurement and geometrwere developed to enable the construction of larger and more complex buildings. Extending the same mathematics allowepeople to travel reliably from place to place without getting lost.As society developed, trading routes grew and people traveled further and further. Longer journeys required more reliablnavigation techniques and provided an incentive to develop measurement technology. The great advantage of a roundEarth is that you dont fall off the edge after a long sea voyage. On the other hand, a round Earth forces you to developspherical trigonometry to deal with navigation over distances greater than a few miles. You also have to develop thesciences of astronomy and optics to determine your position relative to the sun, moon, and stars. Incidentally, the AncienGreeks measured the diameter of the Earth and, by 150 AD, the Greek cartographer Ptolemy had produced a world atlasthat placed the prime meridian through the Fortunate Islands (now called the Canaries, located off the west coast ofAfrica).

    Even politics plays a role in the development of computing machinery. Derek de Solla Price writes that prior to QueenElizabeth 1's reign, brass was not manufactured in England and cannon had to be imported. After 1580 brass was made inEngland and brass sheet became available for the manufacture of the precision instruments required in navigation[Price84].Price's article highlights how prophetic some of the inventions of the 1580s were. An instrument maker in Augsburg devisea machine that could record the details of a journey on paper tape. The movement of a carriage's wheels advanced a paptape and, once every few turns, a compass needle was pressed onto the surface of the paper to record the direction of thcarriage. By examining the paper tape, you could reconstruct the journey; for example, for the purpose of map making.By the middle of the 17th Century several mechanical aids to calculation had been devised. These werelargely analog devices in contrast to thedigital calculators we discuss in the next section. Analog calculators use movingrods, bars, or disks to perform calculations. You move one engraved scale against another and then read the result of thecalculation. The precision of these calculators depends on how fine the engraving is on the scale and how well you canread the scale. Up to the 1960s, engineers used a modern version of these analog devices called a slide rule. Even today,

    some pilots use a mechanical contraption with a rotating disk and a moving scale to calculate their true airspeed andheading form their indicated airspeed, track, wind speed and direction.

    Navigation and MathematicsIts easy to tell how far north or south of the equator you areyou measure the height of the sun above the horizon atmidday and then use the elevation (plus the date) to work out the latitude. Calculating your longitude relative to theprime meridian through Greenwich in England is very much more difficult. Longitude is determined by comparing your loctime (obtained by observing the angle of the sun) with the time at Greenwich; for example, if you determine that the locatime is 8 am and your chronometer tells you that its 11 am in Greenwich, you are 360 x (11 - 8)/24 = 60 west ofGreenwich.The rush to develop an accurate chronometer in the 18th century that could keep time to an accuracy of a few secondsduring a long voyage was as exciting as the space-race of our own era. The technology used to construct accuratechronometers was later used to make the first mechanical computers. Dava Sobel tells the story of the quest to determin

    longitude in her book "Longitude" [Sobel95].The mathematics of navigation uses trigonometry, which is concerned with the relationship between the sides and theangles of a triangle. In turn, trigonometry requires an accurate knowledge of the sine, cosine and tangent of an angle. Novery long ago, high-school students obtained the sine of an angle in exactly the same way they did hundreds of years agoby looking it up in a book containing a large table of sines. Students now simply punch the angle into a pocket calculatorand hit the button labeled "sin."Those who originally devised these tables of sines and other mathematical functions (e.g., square roots and logarithms)had to do a lot of calculationby hand. If xis expressed in radians (where 2T radians = 360 ), the expression for sin(x) cabe written as an infinite series of the form

    Although the calculation of sin(x) requires the summation of an infinite number of terms, we can obtain a reasonablyaccurate approximation to sin(x) by adding just a handful of terms together.When the tables of values for sin(x) were compiled many years ago, calculators were used to evaluate the successive termin the series. Unfortunately, the calculators were not machines; they were armies of clerks who had to do the math thehard wayby means of pencil and paper. As you can imagine, people looked for a better method of compiling these tableAn important feature of the formula for sin(x) is that it involves nothing more than the repetition of fundamentalarithmetic operations (addition, subtraction, multiplication, and division). The first term in the series is xitself. Thesecond term is -x3/3!, which is derived from the first term by multiplying it by -x 2 and dividing it by 1 x 2 x 3. The thirdterm is +x5/5! which is obtained by multiplying the second term by -x2 and dividing it by 4 x 5, and so on.

  • 8/7/2019 16 Brief History of Microprocessors

    3/30

    The Era of Mechanical Computers

    Lets return to the history of the computer. Although the electronic computer belongs to this century, mechanicalcomputing devices have been around since the seventeenth century (if you include the abacus, mechanical aids tocomputation have been around for a very much longer time). In 1642 the French scientist Blaise Pascal designed a simplemechanical adder and subtracter using gear wheels with ten positions marked on them. One complete rotation of a gearwheel caused the next wheel on its left to move one position (a bit like the odometer used to record an automobilesmileage). Pascals most significant contribution was the use of a ratchet device that detected a carry (i.e., a rotation of awheel from 9 to 0) and nudged the next wheel on the left one digit. In other words, if two wheels show 58 and the right-hand wheel is rotated two positions forward, it moves to the 0 position and advances the 5 to 6 to get 60. This type oftechnology is found in clocks.In fact, Wilhelm Schickard is now generally credited with the invention of the first mechanical calculator. His device,

    created in 1623, was more advanced than Pascal's because it could also perform (partial) multiplication. Schickard died ina plague and his invention did not receive the recognition it merited. Such near simultaneous developments in computerhardware have been a significant feature of the history of computer hardware.Gottfried Wilhelm Leibnitz created a mechanical calculator in 1694 that could perform addition, subtraction,multiplication and division. Later versions of Leibnitz's calculator were used until electronic computers became available the 1940s.Within a few decades, mechanical computing devices advanced to the stage where they could perform addition,subtraction, multiplication and divisionall the operations required by armies of clerks to calculate the trigonometricfunctions we mentioned earlier.By about 1800 the industrial revolution in Europe was well under way. One of the first processes to be mechanized wasweaving. A weaving loom passes a shuttle pulling a horizontal thread to and fro between vertical threads held in a frame.By changing the color of the thread pulled by the shuttle and selecting whether the shuttle passes in front of or behind thvertical threads, you can weave a particular pattern. Controlling the loom manually was tedious and time-consuming. In

    1801 Joseph Jacquard designed a loom that could automatically weave a predetermined pattern. The informationnecessary to control the loom was stored in the form of holes cut in cardsthe presence or absence of a hole at a certainpoint controlled the behavior of the loom. If you think about it, the punched card contains a recipe for a patternor aprogram.The notion of a program appears elsewhere in the mechanical worldconsider the music box that plays a tune when youopen it. A clockwork mechanism rotates a drum whose surface is embedded with spikes or pegs. Several thin metal stripsare located along the side of the drum but dont quite touch the drums surface. As the drum rotates, a peg sticking out othe drum meets one of the strips and drags the strip along with it. Eventually, the peg rotates past the strips end and thestrip falls back with a "twang." By tuning each strip to a suitable musical note, a tune can be played as the drum rotates.The location of the pegs on the surface of the drum determines the sequence of notes played.Randell points out that the pegged drum mechanical programmer has a long history [Randell94]. Heron of Alexandriadescribed a pegged drum control mechanism about 100 AD. A rope is wound round a drum and then hooked around a peg othe drum's surface. Then the rope is wound in the opposite direction. This process can be repeated as many times as you

    like, with one peg for each reversal of direction. If you pull the rope, the drum will rotate. However, when a peg isencountered, the direction of rotation will change. The way in which the string is wound round the drum determines thedrums speed of rotation. This mechanism allows you to predefine a sequence of operations; for example,clockwise/slow/long; counterclockwise/slow/short Such technology could be used to control temple doors.Although Heron's mechanism may seem a long way from the computer, it demonstrates that the intellectual conceptsof control and sequencinghave existed for a very long time.

    Babbage and the ComputerTwo significant advances in computing were made by Charles Babbage, a British mathematician born in 1792 his difference engine and hisanalytical engine. Like other mathematicians of his time, Babbage had to perform allcalculations by hand. Sometime he had to laboriously correct errors in published mathematical tables. Living in the age ofsteam, Babbage wondered whether mechanical means could be applied to arithmetic calculations.Babbage wrote papers on his ideas for mechanical calculators and applied to the British Government for funds to work onhis machines and received the first government grant for computer research. Unfortunately, Babbage did not actually buihis calculating machine (i.e., the difference engine); he and his engineer, Clement, constructed a working model of onlypart of it between 1828 and 1833.Babbages difference engine was to mechanize the calculation of polynomial functions and automatically print the resulThe difference engine was a complex array of interconnected gears and linkages that performed addition and subtractionrather like Pascals mechanical adder. The difference engine was a calculator rather than a computer because it couldcarry out only a set of predetermined operations.Babbages difference engine employed a clever technique called finite differences to calculate trigonometric functions.We will demonstrate how you can use the method of finite differences to create a table of squares without having to usemultiplication. The first column in table 16.1 contains the natural integers 1, 2, 3, ... The second column contains the

  • 8/7/2019 16 Brief History of Microprocessors

    4/30

    squares of these integers (i.e., 1, 4, 9, ...). Column 3 contains the first difference between successive pairs of numbers incolumn 2 (i.e., the difference between consecutive squares). The first value is 4 - 1 = 3; the second value is 9 - 4 = 5, andso on. The final column is the second difference between successive pairs of first differences. Note that the seconddifference is always 2.Suppose we want to calculate the value of 82 using finite differences. We simply use table 16.1 in reverse by starting withthe second difference and working back to the result. If the second difference is 2, the next first difference (after 7 2) is 1+ 2 = 15. Therefore, the value of 82 is the value of 72 plus the first difference; that is 49 + 15 = 64. This technique can beextended to evaluate many other mathematical functions.Table 16.1 The use of finite differences to calculate squares

    Number Number squared First difference Second difference1 12 4 33 9 5 24 16 7 25 25 9 26 36 11 27 49 13 2Charles Babbage went on to design the analytical engine that was to be capable of performing any mathematical operatioautomatically. This truly remarkable and entirely mechanical device was nothing less than a general-purpose computerthat could be programmed. The analytical engine included many of the elements associated with a modern electroniccomputeran arithmetic processing unit that carries out all the calculations, a memory that stores data, and input andoutput devices. Unfortunately, the sheer scale of the analytical engine rendered its construction (at that time) impossible

    Babbage envisaged that the analytical engine would be controlled by the type of punched cards used to control theoperation of the Jacquard loom. Two types of punched card were required. Operation cards specified the sequence ofoperations to be carried out by the analytical engine and variable cards specified the locations in store of inputs andoutputs [Hayes98].One of Babbage's contributions to computing was the realization that it is better to construct one arithmetic unit and shait between other parts of the difference engine than to construct multiple arithmetic units. The part of the differenceengine that performed the calculations was the "mill" (now called the ALU) and the part that held information was calledthe "store" [Randell94]. In the 1970s mainframe computers made by ICL recorded computer time in mills in honor ofBabbage.Babbage also described the conditional operation that enables the operation being carried out to be determined by theresults of the previous operation. Conditional operation is at the heart of all computing. A conditional operation was to beimplemented by testing the sign of a number and then performing one of two operations depending on the sign [Hayes98]Ada Gordon was a mathematician who became interested in the analytical engine when she translated a paper on the

    engine from French to English. When Babbage found out about the paper he asked her to add some notes of her own to thpaper. She added about 40 pages of notes about the machine and provided examples of how the proposed Analytical Engicould be used to solve mathematical problems [Katz95].There is some confusion surrounding Ada's family name. Ada was born Gordon and she married William King. King was latemade the Earl of Lovelace and Ada became the Countess of Lovelace. Her father was the Lord Byron. Consequently, hername is either Ada Gordon or Ada King, but never Ada Lovelace or Ada Byron.Ada closely collaborated with Babbage and (it has been reported) even suggested the use of the binary system rather thanthe decimal system to store data. She noticed that certain groups of operations are carried out over and over again duringthe course of a calculation. She proposed that a conditional instruction be used to force the analytical engine to performthe same sequence of operations many times.Ada devised algorithms to perform mathematical operations (the calculation of Bernoulli numbers) that are now considereto belong to a discipline called numerical computation that combines mathematics and computing. Some regard Ada as thworlds first computer programmer, who was constructing algorithms a century before programming became a recognized

    disciplineand long before any real computers were constructed (remember that Babbages Analytical engine was nevercompleted). In the 1970s the US Department of Defense commissioned a language for both general-purpose computing anfor real-time computing and named it Ada in her honor.Mechanical computing devices continued to be used in compiling mathematical tables and performing the arithmeticoperations used by everyone from engineers to accountants. The practical computer had to await the development of theelectronics industry.Before we introduce the first electromechanical computers, we are going to describe a very important step in the historyof the computer, the growth of the technology that made computers possible; the telegraph and telephone systems.

    Enabling Technology - the Telegraph

  • 8/7/2019 16 Brief History of Microprocessors

    5/30

    One of Kaila Katz's criticisms of the typical brief overview of computer history [Katz95] is that some authors imply thatlittle of importance happened in the development of the computer between Babbage and the 1940's. In fact, very manyimportant technological events took place at the end of the 19th century, all of which were necessary to the developmenof the computer. The most important of these was the telegraph.King Maximilian had seen how the French visual semaphore system had helped Napoleon's military campaigns and in 1809he asked the Bavarian Academy of Sciences to suggest a scheme for high-speed communication over long distances.Smmering designed a crude telegraph that used 35 conductors, one for each character. Smmering's telegraph transmitelectricity from a battery down one of these 35 wires where, at the receiver, the current is passed through a tube of watcontaining a little acid. When a current goes through water, the water breaks down into oxygen and hydrogen. To use theSmmering telegraph you detected the bubbles that appeared in one of the 35 glass tubes and then you wrote down thecorresponding character.

    Smmering's telegraph was impractical. However, in 1819 H. C. Oersted made a major breakthrough in signalingtechnology when he discovered that an electric current creates a magnetic field round a conductor. In 1828 Cookeinvented a telegraph that used the magnetic field round a wire to deflect a compass needle.One of the driving forces behind early telecommunications systems was the growth of the rail network. A system wasrequired to warn stations down the line that a train was arriving. By 1840 a 40-mile stretch between Slough and Paddingtoin London had been linked using the Wheatstone and Cooke telegraph.

    The First Long-distance Data LinksWe take wires and cables for granted. In the early nineteenth century, plastics hadn't been invented and the only materiaavailable for insulation and waterproofing were things like asphaltum. In 1843 a form of rubber called gutta percha wasdiscovered and was used to insulate the signal-carrying path in cables. The Atlantic Telegraph Company created aninsulated cable for underwater use containing a single copper conductor made of seven twisted strands, surrounded bygutta percha insulation and protected by 18 surrounding iron wires coated with hemp and tar.

    Submarine cable telegraphy began with a cable crossing the English Channel to France in 1850. The cable failed after onlya few messages had been exchanged and a more successful attempt was made the following year.Transatlantic cable-laying from Ireland began in 1857 but was abandoned when the strain of the cable descending to theocean bottom caused it to snap under its own weight. The Atlantic Telegraph Company tried again in 1858. Again, thecable broke after only three miles but the two cable-laying ships managed to splice the two ends. After several morebreaks and storm damage, the cable reached Newfoundland in August 185?.It soon became clear that this cable wasn't going to be a commercial success because the signal was too weak to reliablydetect (the receiver used the magnetic field from current in the cable to deflect a magnetized needle). The originalvoltage used to drive a current down the cable was approximately 600 volts. So, they raised the voltage to about 2,000 Vto drive more current along the cable. Such a high voltage burned through the primitive insulation, shorted the cable, anddestroyed the first transatlantic telegraph link after about 700 messages had been transmitted in three months.In England, the Telegraph Construction and Maintenance Company developed a new 2300 mile long cable weighing 9,000tons that was three times the diameter of the failed 1858 cable. Laying this cable required the largest ship in the world.

    After a failed attempt in 1865 a transatlantic link was finally established in 1866.Telegraph Distortion and the Theory of Transmission LinesIn the early days of the telegraph, people soon found that it suffered from a problem caused telegraph distortion thatlimited its efficiency. In overcoming this problem, scientists developed the theories of electronics that describe how signbehave in all circuits. Without these theories, it would be impossible to construct high-speed computers.During the nineteenth century the length of cables increased as technology advanced and it soon became apparent thatsignals suffered distortion during transmission. The 1866 transatlantic telegraph cable could transmit only 8 words perminute. By the way, it cost $100 in gold to transmit 20 words (including the address) across the first transatlantic cable.A sharply rising pulse at the transmitter end of a cable is received at the far end as a highly distorted pulse with long riseand fall times. Figure 16.1 illustrates the effect of this so-called telegraph distortion. The sponsors of the Transatlanticcable project were worried by the effect of this distortion and the problem was eventually handed to William Thomson atthe University of Glasgow.Figure 16.1 Telegraph distortion

  • 8/7/2019 16 Brief History of Microprocessors

    6/30

    Thomson was one of the 19th Century's greatest scientists who published more than 600 papers. He developed the secondlaw of thermodynamics and created the absolute temperature scale. The unit of temperature with absolute zero at 0 K icalled the Kelvin in his honorThomson later became Lord Kelvin. Thomson worked on the dynamical theory of heat andcarried out fundamental work in hydrodynamics. His mathematical analysis of electricity and magnetism covered the basiideas for the electromagnetic theory of light.In 1855 Thomson presented a paper to the Royal Society analyzing the effect of pulse distortion that became thecornerstone of what is now called transmission line theory. The cause of the problems investigated by Thomson lies in thephysical properties of electrical conductors and insulators. At its simplest, the effect of a transmission line is to reduce thspeed at which signals can change state. Thomson's theories enabled engineers to construct data links with much lower

    levels of distortion.Thomson contributed to computing by providing the theory that describes the flow of pulses in circuits, which enabled thdevelopment of the telegraph and telephone networks. In turn, the switching circuits used to route messages throughnetworks were used to construct the first electromechanical computers.

    Later Developments in Communications NetworksIn 1872 Alexander Graham Bell started work on a method of transmitting several signals simultaneously over a single linecalled the harmonic telegraph. This project failed, but it did lead to a spin-off in 1876 called the telephone.Although the first telegraph systems operated from point-to-point, the introduction of the telephone led to thedevelopment of switching centers. The first-generation of switches employed a telephone operator who manually pluggedsubscriber's line into a line connected to the next switching center in the link. By the end of the 19th century, theinfrastructure of computer networks was already in place.In 1897 an undertaker called Strowger invented the automatic telephone exchange that used electromechanical devices troute calls between exchanges. When a number was dialed, a series of pulses were sent down the line to a rotary switch.you dialed, for example "5", the five pulses would move a switch five steps to connect you to line number five that routedyour call to the next switching center. Consequently, when you called someone the number you dialed depended on theroute though the system.By the time the telegraph was well established, radio was being developed. James Clerk Maxwell predicted radio waves in1864 following his study of light and electromagnetic waves. Heinrich Hertz demonstrated the existence of radio waves in1887 and Marconi is credited with being the first to use radio to span the Atlantic in 1901.In 1906 Lee deForest invented the vacuum-tube amplifier. Without a vacuum tube (or transistor) to amplify weak signals,modern electronics would have been impossible (although the first primitive computers using electromechanical deviceswere without electronics).In the late 1930s a Bell Telephone electromechanical calculator was connected to the telephone system and operatedremotely by a Teletype this was, you might say, the first example of remote computing.The telegraph, telephone and vacuum tube were all steps on the path to the development of the computer and, later,computer networks. As each of these practical steps were taken, there was a corresponding development in the

    accompanying theory (in the case of radio, the theory came before the discovery).

    Punched Cards and TabulatorsAnother enabling technology that played a key role in the development of the computer was the tabulating machine adevelopment of the mechanical calculator that processes data on punched cards [Kistermann95]. One of the largest dataprocessing operations is the US census. Because of the shear volume of data involved, people attempted to automate somof the aspects of data processing. In 1872 Colonel Charles W. Seaton invented a device to mechanize some of theoperations involved in processing census data [Kistermann95].

  • 8/7/2019 16 Brief History of Microprocessors

    7/30

  • 8/7/2019 16 Brief History of Microprocessors

    8/30

    In 1945 Bush wrote an essay in Atlantic Monthly proposing an information system he called Memexthat would act as "apersonalized storehouse for books, records, correspondence, receiptsand employ a sophisticated indexing system toretrieve facts on demand." Such a system is not that far removed from today's World Wide Web.Figure 16.3 Disk-and-wheel integrator

    Later analog computers used electronic integrators and were used to simulate complex dynamic systems well into the1970s. In many ways the electric organ was a very sophisticated analog computer that used analog techniques to model thprocesses used by real musical instruments to create sound. Modern electric organs now employ digital techniques.Theoretical Developments

    Much of the early development of early telegraph systems was done by trial and error. However, we have alreadydescribed how Lord Kelvin laid the foundation of transmission line theory when he investigated the performance oftelegraph systems. We are going to mention some of the other intellectual concepts of value to the computer industry thawere developed in the 19th century.In 1854 George Boole described his system for the manipulation of logical variables that provided the foundation for(binary) digital systems and logic design. Booles work was further developed by Claude Shannon at Bell Labs in the 1930sShannon devised the algebra of switching circuits that we use today to design computers.In the late 1930's Alan M. Turing, a British mathematician, provided some of the theoretical foundations of computerscience. In particular, Turing developed the notion of a universal machine (now called a Turing Machine) that couldexecute any algorithm that can be described. The structure of a Turning machine bears no resemblance to any realmachine before or after Turnings time. However, it is a simple device that has memory elements, a processor, and ameans of making decisions. A Turing machine has an infinitely long tape that contains symbols in cells (i.e., the memory).A read/write head reads the symbol, X, in the cell currently under the head and uses a processor to write a new symbol, Y

    in the cell previously occupied by X (note that Y may be the same as X). Having read the symbol, the processor can movethe tape one cell to the left or the right. The processor is a simple finite state machine.Turings work led to the concept of computabilityand the idea that one computer can emulate another computer and,therefore, a problem that can be solved by one computer can be solved by every other computer. A consequence ofTurings work is that a problem that can be shown to be unsolvable by a Turing machine cannot be solved by any futurecomputer no matter what advances in technology take place.Alan Turing played a major role in World War II when he worked on code breaking at Bletchley Park. An early digitalcomputer called Colossus was constructed at Bletchley Park for decrypting intercepted German messages. However, thiswork probably played little role in the development of the computer because of its secrecy.

  • 8/7/2019 16 Brief History of Microprocessors

    9/30

    Neural ComputingSuppose neither analog nor digital computers had been invented. Does that mean we would be without computationaldevices of some type or another? The answer is probably "no". It is quite natural that the human brain has been studied foa long time by medical profession and scientists have attempted to determine how it is constructed and how it operates.In the 1940s scientists began to study the fundamental element of the brain, the neuron. A neuron is a highly specializedcell that is connected to many other neurons to form a complex network of about 10 11 neurons. In 1943, a USneurophysiologist Warren McCulloch worked with Walter Pitts to create a simple model of the neuron from analogelectronic components.The so-called McCulloch and Pitts model has a neuron with n inputs and a single output. The ith input xi is weighted by aconstant wi, so that the ith input is given by xiwi. The neuron sums all inputs to get 7xiwi. This sum of weightedinputs is compared with a threshold T, and the neuron fires if the sum of the weighted inputs is greater than T. A neuron

    programmed by selecting the values of the weights and T.A single neuron is not very interesting. Figure 16.4 shows a simple neural network composed of 9 neurons in three layers.This network is programmed by changing the weights of the inputs at each of the 9 neurons.Figure 16.4 A neural network

    A neural network is very different to digital computer. It does not execute a program step-by-step like a digital computerIt is programmed by means of training when the inputs are applied and the weights adjusted until the output is correct. Arealistic neural net may require thousands of training sessions before the weights have converged to the point at which thoutput is correct for an unknown input. For example, if the inputs come from a digital camera, a neural net can beprogrammed to detect the difference between a happy face and a sad face.Although the neural net is not normally regarded as part of computing history, I am making the point that research intocalculating devices took place on a number of different fronts and that there is more than one way of synthesizingcomputing machines.

    The First Electromechanical Computers

    The forerunner of todays digital computers used electromechanical components called relays, rather than electroniccircuits such as vacuum tubes and transistors. A relay is constructed from a coil of wire wound round a cylinder of iron (sefigure 16.5). When a current flows through the coil, it generates a magnetic field that causes the iron to act like a magneA flat springy strip of iron is located close to the cylinder. When the cylinder is magnetized, the iron strip is attracted,which, in turn, opens or closes a switch. Relays can perform any operation that can be carried out by the logic gates thatmake up todays computers. Unfortunately, you cannot construct effective complex computers from relays because relayare far too slow, bulky and unreliable. However, the relay did bridge the gap between the mechanical calculator and themodern digital computer.Figure 16.5 The relay (simplified arrangement)

  • 8/7/2019 16 Brief History of Microprocessors

    10/30

    In 1914 Torres y Quevedo, a Spanish scientist and engineer, wrote a paper describing how electromechanical technologysuch as relays could be applied to the Babbage's Analytical Engine [Randell94]. Randell comments that Torres could havesuccessfully produced a complete Analytical Engine in the 1920's. Torres was one of the first to appreciate that a key (andnecessary) element of the computer is its conditional behavior its ability to select a future action on the basis of a pastresult. Randell quotes from a paper by Torres:"Moreover, it is essential being the chief objective of Automatics that the automata be capable of discernment; that they can at eac

    moment, take account of the information they receive, or even information they have received beforehand, in controlling the required

    operation. It is necessary that the automata imitate living beings in regulating their actions according to their inputs, and adapt their

    conduct to changing circumstances." [Randell94].One of the first electromechanical computers was built by Konrad Zuse in Germany. Zuses Z2 and Z3 computers were usein the early 1940s to design aircraft in Germany. The heavy bombing at the end of the Second World War destroyed Zusecomputers and his contribution to the development of the computer was ignored for many years. He is mentioned here todemonstrate that the notion of a practical computer occurred to different people in different places.At the same time that Zuse was working on his computer in Germany, Howard Aiken at Harvard University constructed hisHarvard Mark I computer in 1944 with both financial and practical support from IBM. Aiken was familiar with Babbage'swork and his electromechanical computer, which he first envisaged in 1937, operated in a similar way to Babbagesproposed analytical engine. The original name for the Mark I was the "Automatic Sequence Controlled Calculator" which,perhaps, better describes its nature.Aiken's machine was a programmable calculator that was used by the US Navy until the end of World War II. Curiously,Aiken's machine was constructed to compute mathematical and navigational tables exactly like Babbage's' machine.Indeed just like Babbage, the Mark I used decimal counter wheels to implement its main memory consisting of 72 words o

    23 digits. The program was stored on paper table (similar to Babbages punched cards), although operations and addresse(i.e., data) were stored on the same tape.Because the Harvard Mark I treated data and instructions separately (as did several of the other early computers), theterm Harvard Architecture is now applied to any computer that has separate paths (i.e., buses) for data and instructions.Just as Pascals original mechanical calculator was developed and modified by the near simultaneous efforts of otherdesigners, the same is true of the computer. Scientists working in many laboratories between about 1935 and 1945contributed to the development of the computer.

    16.2 The First Mainframes

    Relays have moving parts and cannot operate at high speeds. Consequently, the electromechanical computer had no longterm future. It took the invention of the vacuum tube (called the thermionic valve in the UK) to make possible the designof high-speed electronic computers. A vacuum tube transmits a beam of negatively charged electrons from a heatedcathode to a positively-charge anode in a glass tube. This electron beam can be controlled by the voltage on a wire grid

    located between the cathode and the anode. You can regard the vacuum tube as a type of ultra high-speed version of therelayby applying a small voltage to the grid, you can switch on or off the much larger current flowing between thecathode and anode.Although vacuum tubes were developed for radios, they were used in other applications. In the 1930s and 40s physicistsrequired high-speed circuits such as pulse counters and ring counters in order to investigate cosmic rays [Marcus96]. Thescircuits could later be adapted to use in computers.John V. Atanasoff is now credited with the (partial) construction of the first completely electronic computer. Atanasoffworked with Berry at Iowa State College and their computer was called the ABC (Atanasoff-Berry Computer). The ABC wadesigned to perform a specific task (i.e., the solution of linear equations) and wasnt a general-purpose computer. BothAtanasoff and Berry had to abandon their computer when they were assigned to other duties because of the war.

  • 8/7/2019 16 Brief History of Microprocessors

    11/30

    The first electronic general-purpose digital computer was John W. Mauchlys ENIAC (Electronic Numerical Integrator andCalculator), completed in 1945 at the University of Pennsylvania Moore School of Engineering. ENIAC was intended for useat the Army Ordnance Department to create firing tables (i.e., tables that relate the range of a field gun to its angle ofelevation, wind conditions, shell and charge parameters, etc.).The ENIAC used 17,480 vacuum tubes and weighed about 30 tons. ENICA was a decimal machine capable of storing twenty10-digit decimal numbers. Digits were stored in ring counters that operated rather like the cogwheels of mechanicalcalculators. A ring counter used the encoding

    Number Count0 10000000001 0100000000

    2 00100000003 00010000004 00001000005 00000100006 0000001000

    7 00000001008 00000000109 0000000001

    IBM card readers and punches implemented input and output operations. Many of the fundamental elements of digitaldesign (e.g., timing circuits, logic circuits and control circuits) that are now so commonplace were first implemented withthe construction of ENIAC. Because ENIAC had 20 independent adding circuits, all running in parallel, the ENIAC could alsobe called a parallel processor [Marcus96].Goldstine's report on the ENIAC, published in 1946, refers to one of the features found in most first-generationmicroprocessors the accumulator[Goldstine96]. Goldstine states that the accumulator "receives a number and adds it to number stored in the accumulator or transmits the number or the negative of the number stored in it rtimes in successio(where 1 r 9)". Another interesting feature of ENIAC was its debugging mechanism. In normal operation, ENIAC operateat a 100 kHz rate. However, it was possible for the operator to force ENIAC into a "one addition time" operation thatexecuted a single addition or into a "one pulse time" operation that executed a single cycle each time a button was pusheThe state of the machine was visible from neon lamps on the front of the machine (one neon per flip-flop).ENIAC was programmed by means of a plug board that looked like an old pre-automatic telephone switchboard; that is, aprogram was set up manually by means of wires. In addition to these wires, the ENIAC operator had tp manually set up to6,000 mutiposition mechanical switches. Programming ENIAC was very time consuming and tedious.ENIAC did not support dynamic conditional operations (e.g., IF...THEN or REPEATUNTIL). An operation could be repeateda fixed number of times by hard-wiring the loop counter to an appropriate value [Marcus96]. Since the ability to make adecision depending on the value of a data element is vital to the operation of all computers, the ENIAC was not a computin today's sense of the word. It was an electronic calculator (as was the ABC machine).Eckert and Mauchly left the Moore School and established the first computer company, the Electronic Control CorporationThey planned to build the Universal Automatic Computer (UNIVAC) but were taken over by Remington-Rand before theUNIVAC was completed. Later, UNIVAC was to become the first commercially successful US computer. The first UNIVAC Iwas installed at the US Census Bureau where it replaced earlier IBM equipment.According to Grier, Mauchly was the first to introduce the term "to program" in his 1942 paper on electronic computing[Grier96]. However, Mauchly used "programming" in the sense of setting up a computer by means of plugs, switches andwires, rather than in the modern sense. The modern use of the word "program" first appeared in 1946 when a series oflectures on digital computers were given at a summer class in the Moore School.

    John von Neumann and EDVACAs weve said, a lot of work was carried out on the design of electronic computers from the early 1940s onward and manengineers made significant advances. Of these engineers, one name stands outJohn von Neumann who worked on theENIAC at Princeton University. Before von Neumann, computer programs were stored either mechanically (on cards or eveby wires that connected a matrix of points together in a special pattern like ENIAC) or in separate memories from the dat

    used by the program. Von Neumann introduced the concept of the stored programan idea so commonplace today that wnow take it for granted. In a stored program (or von Neumann) machine, both the program that specifies what operationsare to be carried out and the data used by the program are stored in the same memory. You could say that the storedprogram computer consists of a memory containing instructions coded in binary form. The control part of the computerreads an instruction from memory, carries it out, and then reads the next instruction, and so on.The first US computer to use the stored program concept was the EDVAC (Electronic Discrete Variable AutomaticComputer). The story of the EDVAC is rather complicated because there were three EDVACs the EDVAC that von Neumanplanned, the EDVAC that the original EDVAC team planned, and the EDVAC that was eventually constructed [Williams93].

  • 8/7/2019 16 Brief History of Microprocessors

    12/30

    The EDVAC was designed by some of the same team that designed the ENIAC at the Moore School of Engineering at theUniversity of Pennsylvania. By July 1949?? Eckert and Mauchly appreciated that one of the limitations of the ENIAC was thway in which it was set up to solve a problem. Along with von Neumann, they realized that operating instructions should stored in the same memory device as the numbers.John von Neumann knew about the ENIAC project but it was too late for him to get involved with its design. However, hewas able to participate in the design of EDVAC and wrote the results of various design meeting in a document entitled "FiDraft of a Report on the EDVAC". Although only von Neumann's name appears on this document, other members of theMoore School contributed to the report. Indeed, Williams writes that this document annoyed some members of the designteam so much that they left the Moore School and further development of the EDVAC was delayed [Williams93].The EDVAC described in von Neumann's unpublished report was a binary machine with a 32-bit wordlength. Numbers wererepresented in a 31-bit signed 2's complement format and the rightmost bit was reserved as a tag to indicated a numeric

    a non-numeric value. The EDVAC that was constructed was a 44-bit machine that did not use a tag bit to indicate datatype. There are many other differences between the von Neumann and Moore School EDVACs; for example, the vonNeumann version had 3 registers and instructions were executed sequentially by using a program counter to sequencethem. The Moore School machine had 4 registers and an instruction included a next address field (i.e., every instructionwas a branch instruction). Since the memory space was 1024 words, the instruction format called for 4 x 10-bit addresseswhich left 4 bits for 1 of 16 op codes.Although EDVAC is generally regarded as the first stored program computer, Randell states that this is not strictly true[Randell94]. EDVAC did indeed store data and instructions in the same memory, but data and instructions did not have acommon format and were not interchangeable.EDVAC also helped to promote the design of memory systems. The capacity of EDVAC's mercury delay line memory was1024 words of 44 bits [Williams93]. A mercury delay line operates by converting serial data into pulses that are fed to anultrasonic transducer at one end of a column of mercury in a tube. These pulses travel down the tube in the form ofacoustic vibrations in the mercury. A microphone at the other end of the delay line picks up the pulses and they are

    regenerated into digital form. Finally, the pulses are fed back to the transducer and sent down the delay line again. Thistype of memory stores data as pulses traveling through the mercury. EDVAC's memory was organized as 128 individual 8-word delay lines.Because data is stored in this dynamic or sequential mode, the time to access an instruction depends on where it is in thesequence of pulses. The delay lines were 58 cm long with an end-to-end delay of 384 Qs. At a pulse repetition frequency 1 MHz, each pulse had a duration of 0.3Qs; that is, eight 44-bit words plus eight 4-bit interword gaps occupied 384 Qs.[Williams93]. Because the EDVAC had the instruction formatoperation source1,source2,destination,next_address

    the programmer could write code in such a way that the next instruction was just about to be available from the delayline. Such code optimization techniques are not far removed from those used on RISC processors to minimize the effects odata dependency and branches.Another interesting aspect of EDVAC was the use of test routines to check its hardware; for example the "Leap Frog Test"executed a routine that included all its instructions, and then moved itself one location on in memory before repeating th

    test. EDVAC also implemented a register that kept a copy of the last instruction executed and its address. The operatorcould access this register to aid debugging when the machine crashed. Yes, the Windows "unrecoverable applications errohas a very long history.Sadly, EDVAC was not a great success in practical terms. Its construction was (largely) completed by April 1949, but it didnot run its first applications program until October 1951. Moreover, was not very reliable and suffered a lot of down time[Williams93].Because of its adoption of the stored program concept, EDVAC became a topic in the first lecture courses given oncomputers. These lectures took place before the EDVAC was actually constructed.

    IASAnother early computer was the IAS constructed by von Neumann and his colleagues at the Institute for Advanced Studiesin Princeton. This project began in 1947 and is significant because the IAS is remarkably close to modern computers. TheIAS supported a 40-bit word that represented data in a sign and magnitude fixed point format. The same wordlength wasused to store two packed 20-bit instructions. Main memory was 1K words and a magnetic drum was used to provide 16Kwords of secondary storage.The 20-bit instructions consisted of an 8-bit op-code and a 12-bit address. The IAS implemented a one-address instructionof the format operationoperation address

    where the operation takes place between the contents of the specified memory location and the accumulator. This formais, of course, identical to that of first generation 8-bit microprocessors. A very significant feature of the IAS was its addremodifyinstructions that enable you to compute at 12-bit address and then insert it into the program as an operand. Thisfeature enables you to perform indexed addressing and is required to access all data structures. Modern architecturesprovide an address register or index register to provide variable operand addresses modifying operands in memory the

  • 8/7/2019 16 Brief History of Microprocessors

    13/30

    way the IAS did (self-modifying code) is regarded as bad practice because it is error prone and makes program debuggingdifficult.

    Computers at Manchester and Cambridge UniversitiesOne of the most important centers of computer development in the 1940s was Manchester University in England[Croarken93]. F. C. Williams, one of the team of academics working at Manchester in the late 40s, invented a new meansof data storage using the cathode ray tube, CRT, to store binary data (2,048 bits in 1947).In 1948 T. Kilburn was one of the principal members of the team that turned the William's memory into a prototypecomputer called theManchester Babythat used 32 words of 32 bits. This was a demonstration machine that tested theconcept of the stored program computer and the Williams CRT store. CRTs were also used to implement the accumulatorand logical control. Input was read directly from switches and output had to be read from the William's tube. The first

    program to run on the machine was designed to find the highest factor of an integer. The Manchester Baby was the world'first stored-program computer.Another early British computer was the EDSAC (Electronic Delay Storage Automatic Calculator) that was created by MauriV. Wilkes at the University of Cambridge. EDSAC, which became operational in May 1949, used paper tape input, binarynumbers, mercury delay line storage [Kraft79]. Like the IAS, EDSAC allowed you to modify instructions in order toimplement indexed addressing.Not everyone appreciated the computer's potential. Just as the Astronomer Royal said, "Space travel is bunk", just beforethe USSR launched its first sputnik, not everyone appreciated the potential of the computer in its early years. ProfessorHartree at Cambridge University said at the time, "We have a computer in Cambridge, there is one in Manchester and atthe NPL. I suppose that there ought to be one in Scotland, but that's about all [Tweedale93].A Manchester based firm, Ferranti Ltd., worked with Manchester University to construct Manchester University's firstpractical computer, the Ferranti Mark I.In the late 1940s the Whirlwind computer was produced at MIT for the US Air Force. This was the first computer intended

    for real-time information processing. However, its real significance was that it employed ferrite-core memory (thestandard mainframe memory until the semiconductor IC came along in the late 1960s). The basic operating principle ofcore memory was patented by An Wang at Harvard University in 1949.Cooperation between Ferranti and Manchester University led to the development of the Ferranti Mercury that pioneeredthe use of floating-point arithmetic and replaced the Williams CRT by ferrite core memory. In true British tradition, theFerranti computers had considerable technical merit but lacked many important commercial features required for theireconomic success such as a punched card reader.Ferranti went on to develop their Atlas computer with Manchester University (and with relatively little funding). When itwas first released in 1962, it was the world's most powerful computer. It had 128 24-bit general-purpose registers and itimplemented virtual memory[Tweedale93]. Sadly for Ferranti, the Atlas did not sell and its features were rapidlyincorporated in machines being developed in the USA.Another significant British computer was the Manchester University MU5 that became operational in 1975. This was used athe basis for ICL's 2900 series of large scientific computers. ICL was the UK's largest mainframe manufacturer in the 1970s

    and many students of my generation used ICL 1900 series computers in their postgraduate research. Someone once told mwhere the designations 1900 and 2900 came from: the 1900 computers were so-called because that was when theiroperating systems had been developed, whereas the 2900 series were so call because that was when their hardware woulbe ready.The MU5 implemented several notable architectural features. In particular, it provided support for block-structuredlanguages and recursive procedure calling. These were features of the Algol language that was then popular in Europe(Algol's successor was Pascal).

    Soviet ComputersWestern literature has generally had very little to say about the development of Soviet computing. However, Crow andGoodman [Crowe94] point out that work on computers was also carried out in the Soviet Union after World War II. Inparticular, S. A. Lebedev and his colleagues were discussing the nature of a digital computer as early as 1947 and wereconsidering the advantages and disadvantages of floating-point arithmetic, word length, and different command-addressstructures. Many of the basic components of a digital computer had been constructed by 1949 and the first Sovietcomputer, the MESM, was completed in 1950.Lebedev's background was in high-voltage technologies and the transmission of power from power stations over high-voltage power lines. Work in this area required the solution of systems of nonlinear differential equations. In the 1930'sLebedev was working at the V. I. Lenin All-Union Electrical Engineering Institute (VEI) when he and his colleagues becameinterested in the use of mechanical devices to solve equations. One of his colleagues, I. S. Bruk, who was familiar withVannevar Bush's work at MIT, constructed a differential analyzer [Crowe94].In May 1946 Lebedev became director of the Institute of Energy in Kiev and continued to show an interest in analogcomputing devices. However, in 1947 his interest turned to digital computing. By 1947 Lebedev and his colleagues werediscussing the design of a three-address machine that supported floating-point arithmetic. When the first Soviet digital

  • 8/7/2019 16 Brief History of Microprocessors

    14/30

    computer MESM (Small Electronic Calculating Machine) was constructed between 1949 and 1950, floating-pointrepresentation was dropped in favor of a simpler 17-bit fixed-point representation.The conditions under which Soviet computers were developed were difficult to say the least. In 1949 L. N. Dashevskiiworked on the design of flip-flops at the only table in his one room in a communal apartment. Other people in theapartment had to walk through Dashevskii's room while he was developing the MESM's arithmetic circuits [Crowe94].Even before the MESM project was complete, Lebedev began work on a more ambitious computer, the BESM (High-speedElectronic Calculating Machine). This machine improved on the BESM by increasing the memory size, adding facilities tosupport subroutines, adding hardware to perform rounding, and providing a teletypewriter as an input device.Lebedev's work was delayed because the Soviet authorities in the early 1950s did not regard the digital computer as animportant device worthy of investment. Many scientists in the Soviet Union thought that digital computers would neverprove reliable and analog computing was a better choice.

    Crowe and Goodman [Crowe94] ask the obvious question. To what extent was early Soviet computing influenced bydevelopments in the West? Clearly, a number of computers had been constructed in the USA and Europe by the timeLebedev's BESM was operational. However, relatively little western literature was available in the Soviet Union at thattime. Moreover, Lebedev's pioneering work predates some of the early work carried out in the West. Substantive reports owestern computing became available in the Soviet Union after 1948.

    IBM and Computer HistoryAlthough IBM grew out of the Computing-Tabulating-Recording Company (C-T-R) that was founded in 1911, its origin datesback to the 1880s. The C-T-R company was the result of a merger between the International Time Recording Company(ITR), the Computing Scale Company of America, and Herman Hollerith's Tabulating Machine Company (founded in 1896).ITR was founded in 1875 by clock maker Willard Bundy who designed a mechanical time recorder. C-T-R was a holdingcompany for other companies that produced components or finished products; for example, weighing and measuringmachines, time recorders, tabulating machines with punch cards.

    In 1914 Thomas J Watson, Senior, left the National Cash Register Company to join C-T-R and soon became president. In1917, a Canadian unit of C-T-R called International Business Machines Co. Ltd was set up. Because this name was so wellsuited to C-T-R's business, they adopted this name for the whole organization in 1924.IBM's principal product was punched card processing equipment; although after the 1930's IBM produced calculators in the600 series. In 1928, the capacity of a punched card was increased from 45 to 80 columns. IBM purchased ElectromaticTypewriters in 1933 and the first IBM electric typewriter was marketed two years later. IBMs first contact with computerwas via its relationship with Aiken at Harvard University.In 1948 T.J. Watson Sr. at IBM gave the order to construct the Selective Sequence Control Computer (SSEC). Although thiswas not a stored program computer, it was IBM's first step from the punched card tabulator to the computer.IBM under Thomas J Watson, Senior, did not wholeheartedly embrace the computer revolution in its early days. Indeed itwas T.J. Watson, Jr., who was responsible for building the Type 701 EDPM in 1953 to convince his father that computerswere not a threat to IBM's conventional business. The 700 series was successful and dominated the mainframe market for decade. By the 1960s, IBM was the most important computer manufacturer in the world.

    Although the first 700 series computers were incompatible with the punched card processing equipment, IBM created the650 EDPM that was compatible with the 600 series calculators and used the same card processing equipment. This providean upward compatibility path for existing IBM users a process that was later to become commonplace in the computerindustryIBM created their first mainframe with floating-point hardware, the 704, in 1955??. This was largely designed by GeneAmdahl who later founded his own company to build supercomputers in the 1990s.IBMs most important mainframe was the System/360 that was first delivered in 1965. This series was designed to suit botscientific and business applications. The importance of the 32-bit System/360 is that it was a series of computers with thesame architecture (i.e., programming model) but with different performance; for example the System/360 model 91 was300 times faster than the model 20. Each member of the System/360 was software compatible with all other members ofthe same series. Moreover, IBM developed a common operating system, OS/360, for their series. Other manufactures builttheir own computers that were compatible with System/360 and thereby began the slow process towards standardization the computer industry. Incidentally, prior to the System/360 a byte referred to a 6-bit quantity rather than an 8-bit valueAn interesting feature of the System/360 was its ability to run the operating system in a protected state, calledthe supervisor state. Applications programs running under the operating system ran in the user state. This feature waslater adopted by Motorolas 680x0 microprocessor series.In 1960 the Series/360 model 85 became the first computer to implement cache memory a concept first described byWilkes in 1965 [Wilkes65]. By the early 1970s the Series/360 had evolved to include the virtual memory technology firstused in the Manchester Atlas machine.In the 1970s IBM introduced one of the first computers to use ICs, the System/370. This series could run System/360programs therefore maintained backward compatibility.

  • 8/7/2019 16 Brief History of Microprocessors

    15/30

    In the 1980s IBM became the first major manufacturer to market a personal computer. IBM not only marketed mainframesand personal computers by the end of 1970s IBM had introduced the floppy disk, computerized supermarket checkouts,and the first automatic teller machines.We now take a slight deviation into microprogramming, a technique that had a major impact on the architecture andorganization of computers in the 1960s and 70s. Microprogramming was used to provide members of the System/360 seriewith a common architecture.

    MicroprogrammingThe first mainframes were built on an ad hoc basis with little attempt to use formal design techniques or to create aregular structure for all processors. In 1951 Maurice V. Wilkes first described the fundamental conceptsof microprogramming, that offered a systematic means of constructing all computers.

    Microprogramming is a simple concept whereby a machine-level instruction is decomposed into a sequence of primitiveoperations that, collectively, implement or interpret the machine level instruction. These primitive operations (calledmicro-operations or microinstructions) consist of little more than actions that clock flip-flops, enable tri-state gates, andcontrol memory and the ALU.Figure 16.6 illustrates the concept of a microprogrammed control unit. The microprogram counter provides the address ofthe next microinstruction that is stored in a microprogram ROM. The microinstruction is fetched from the ROM and placedin the microinstruction register where it is decoded. A microinstruction might be 100 or more bits wide. Some of the bits the microinstruction are used for sequencing; that is, they determine the location of the next microinstruction and areable to implement conditional branches.Some of the bits in the microinstruction register are used to control the CPU (i.e., to provide the signals that interpret thmachine level macroinstruction.The "address mapper" in figure 16.6 converts the (often arbitrary) bit pattern of the machine level microinstruction intothe first address of the microprogram that interprets it.

    The architecture of figure 16.6 can be used to implement any digital machine. All that you have to change (to implementthe control unit of any arbitrary architecture) is the microprogram itself and the structure of the "CPU control field".Figure 16.6 The microprogrammed control unit

  • 8/7/2019 16 Brief History of Microprocessors

    16/30

    Without microprogramming, each computer has to be constructed from digital circuits that are specifically designed toexecute the machine code instructions. Such a design is specific to a particular architecture and organization.Microprogramming is a general technique that can be applied to any computer; for example, you could construct amicroprogrammed control unit that is capable of implementing, say, the Intel Pentium instruction set or the Motorola680x0 instruction set.Because the microprogrammed control unit is such a regular structure, it was possible to develop formal methods for thedesign of microprograms and to construct tools to aid the creation, validation, and testing of microprograms.Microprogramming also made it relatively easy to include self-diagnostic tools in the microcode. The body of knowledgeassociated with microprogramming became known as firmware engineering.However, the historical significance of microprogramming was its role in separating architecture and organization. Prior tmicroprogramming, there was no real difference between architecture and organization because a computer was organizto implement its architecture. Microprogramming made it possible to totally divorce architecture from organization. By

    means of a suitable microprogram you could impose any architecture on the simplest of CPUs.In practical terms, a company could design a powerful architecture that, for example, supported high-level languages andoperating systems and then use microprogramming to implement this architecture on a range of machines. Such anapproach allows the end-user to select the most cost-effective system for their specific application. A high-end systemmight use a hardware floating-point unit, whereas a lower cost system might interpret floating-point operations inmicrocode. Both these systems are able to run the same source code, the only difference being the performance of thecomputer.The microprogram store is a read-only memory because the microcode is fixed. In the mid 1970s it because obvious that,by using a writable microprogram control store, users could implement their own instructions or dynamically change the

  • 8/7/2019 16 Brief History of Microprocessors

    17/30

    architecture of the computer. If you changed your architecture you could still run your old programs on the your newmicroprogrammed machine by emulating the old architecture in microcode. Machine emulation was very important at atime when computers cost hundreds of thousands of dollars and the software base was very small. Microprogramming madit possible to close the semantic gap and directly execute high-level languages.By the late 1970s companies like AMD were fabricating integrated circuits that made it relatively easy to constructmicroprogrammed control units. These devices, that also included ALUs and register files, were called bit slice chipsbecause they were 4 bits wide and you could wire several chips together to construct a system with any wordlength thatwas a multiple of 4 bits.In 1980 two engineers at AMD with the improbable names Mick and Brick published "Bit-slice Microprocessor Design"[Mick80]. This impressive book discussed the design of microprogrammed computers using AMDs devices. This book wentinto considerable practical detail about microprogrammed systems and enabled anyone with a modest computer

    engineering background to design their own architecture and implement it. Just as all fiction writers dream of writing the"Great American Novel", all computer engineers dreamt of building their own microprocessor with their own instructionset. I bought a box of AMDs bit slice devices with the intention of building the Clements 1 and putting Intel out ofbusiness.Sadly, the rise of microprogrammed bit slice architectures coincided with the introduction of the 16- and 32-bitmicroprocessors like the 68000. With such affordable computing power, the pressure to build your own microprocessorrapidly diminished. My bit slice components never left their boxes.Although the idea of microprogramming, writable control stores, and bit slice computers was very exciting at the time, itwas horribly impractical. If you create your own architecture, you are denied the software available to those usingmainstream devices. That was not too bad in the early 1970s because very little commercial software was available. Oncecommercial operating systems, compilers, word processors, and spreadsheets etc., became widely available for popularmicroprocessors, the appeal of microprogramming for the masses rapidly diminished.Microprogramming was still used to implement computers and Motorolas 16/32 bit 68000 microprocessor was one of the

    first microprocessors to have a microprogrammed control unit.However, conventional microprogramming was doomed. One of the advantages of microprogrammed architectures is theiflexibility and ease of implementation. Another advantage is their efficient use of memory. In 1970 main store randomaccess memory was both slow and expensive. The typical access times of bulky ferrite core system was 1 Q s. Byimplementing complex-instruction architectures, the size of programs could be reduced to minimize memory requirementControl store was much faster than main memory and it paid to implement machine level instructions in microcode.By the 1980s the cost of memory had dramatically reduced and its access time had dropped to 100 ns. Under suchcircumstances, the microprogrammed architecture lost its appeal. As we have already seen, the new non-microprogrammed architectures were represented by RISC processors. Equally, you could maintain that the RISCarchitectures were really user microprogrammed devices where the instruction set was really a microprogram instructionset rather than a microprogram instruction set. This statement is particular true if you examine the ARMs instruction set.Microprogramming has come and gone. It enabled engineers to implement architectures in a painless fashion and wasresponsible for ranges of computers that shared a common architecture but different organizations and performances. Su

    ranges of computer allowed companies like IBM and DEC to dominate the computer market and to provide stable platformfor the development of software. The tools and techniques used to support microprogramming provided a basis forfirmware engineering and helped expand the body of knowledge that constituted computer science.

    The Birth of Transistors and ICsSince the 1940s computer hardware has become smaller and smaller and faster and faster. The power-hungry and relativeunreliable vacuum tube was replaced by the much smaller and more reliable transistor in the 1950s. A transistor plays thesame role as a thermionic tube; the only real difference is that a transistor switches a current flowing through a crystalrather than a beam of electrons flowing through a vacuum. By the 1960s semiconductor technology was able to put severatransistors on a single silicon chip to create a simple complete functional circuit, called an integrated circuit. By the 1970very complex systems (e.g., microprocessorsentire computers) could be produced on a single silicon chip. The progress oelectronics has been remarkabletoday you can put over 1,000,000,000 transistors in the same space occupied by a tube 1945. If human transport had evolved at a similar rate, and we assume someone could travel at 20 mph in 1900, we wouldbe able to travel at 20,000,000,000 mph today (i.e., 100,000 times the speed of light!).

    Who Did Invent the Computer?So, who invented the computer? By now you should appreciate that this is, essentially, a meaningless question. Over a lonperiod people attempted to design and construct calculating machines. As time passed more and more enablingtechnologies were developed and computer-like machines began to emerge in the 1940s. These machines had some of, bunot all, the attributes of machines that we call "computers" today. Some lacked the stored program concept, some lackedthe ability to handle conditional operations, and so on. It seems to me unfair to declare that any one of these machineswas the first computer.

  • 8/7/2019 16 Brief History of Microprocessors

    18/30

    Had any of these computers not been developed, modern computing might have taken a different path. However, thecomputing industry would probably have ended up not too far from today's current state.Society (i.e., the Patent Office) always likes to associate a specific person with an invention. Since 1950 Mauchly andEckert had shared the original computer patent rights because of their work on the ENIAC [Kraft79]. In 1973 Judge Larsonin Minneapolis was presiding over a suite brought by Sperry Rand against Honeywell Incorporated for patent infringement.Judge Larson ruled that John Atanasoff should be credited with the invention of the computer and ruled that the Mauchlyand Eckert patent was invalid. As we stated earlier, Atanasoff and his graduate student Berry began work on a computer 1939 but did not complete it. However, Atanasoff met John Mauchly at a conference in 1940 and discussed his work at IowState with Mauchly. Furthermore, Mauchly visited Atanasoff and looked at his notes on his work. Consequently, JudgeLawson found in favor of Atanasoff.We are now going to examine the rise of the minicomputer and the microprocessor in more detail.

    16.3 The Minicomputer Era

    The microprocessor was not directly derived from the mainframe computer. Between the mainframe and the micro liesthe minicomputer. Mainframes were very expensive indeed and only large institutions could afford a mainframe computeduring the 1950s and 1960s. Advances in semiconductor technology and manufacturing techniques allowed computercompanies to build cut-down mainframes, called minicomputers, in the 1960s.Minicomputers were affordable at the departmental level rather than the individual level; that is, a department ofcomputer science in the 1960s could afford its own minicomputer. A whole generation of computer science students in th1960s and 70s learned computer science from PDP-11s and NOVAs. Many minicomputers were used in real-timeapplications.The importance of the minicomputer in the history of computer architecture is that it provided a template for itssuccessor, the microprocessor. That is, microprocessor architectures looked much more like minicomputer architecturesthan mainframes.

    One of the first minicomputers was Digital Equipment Corporations PDP-5, which was introduced in 1964. This wasfollowed by the PDP-8 in 1966, which had a 12-bit wordlength and could address 2 12 memory locations. By using two 3-bitsegment registers, the address space could be increased to two sets of 28 = 8 pages of 4 K words. One segment register wused to access program space and one was used to access data space. Later, the Intel 8086 family was to adopt a similarform of segmented addressing.The PDP-8 had a single 12-bit accumulator providing a very basic instruction set including addition, subtraction, datamovement, Boolean operations and shifts. Program control instructions were of the form "skip on condition", where"condition" was limited to negative, positive, zero, and not zero accumulator (plus two skip operations dependent on thestate of the accumulators link bit a carry bit). An important feature of the PDP-8 was its eight 12-bit index registers thawere located in memory. These registers were autoincrementing so that the contents of an index register wereincremented whenever it was used to access data.The principal limitations of the PDP-8 were its lack of registers, its lack of hardware support for a stack pointer, its lack obyte-oriented instructions, and its lack of interrupt prioritization. The PDP-8s relatively primitive architecture led DEC to

    design a more sophisticated successor, the PDP-11, in 1969.Because of its byte-oriented 16-bit architecture, the PDP-11 was better suited to text processing applications than the PD8. The PDP-11 has eight 16-bit general-purpose registers, R0 to R7 and looked very much like the second-generationmicroprocessors that would appear in under a decade. An important feature of the PDP-11 was the UNIBUS, a data highwaused by the CPU to communicate with memory and peripherals. The UNIBUS used an asynchronous protocol to allow datatransfers to take place at a rate determined by the characteristics of the bus slave being accessed. A later model, the PD11/70, implemented a dedicated bus between its cache and CPU because the UNIBUS was too slow for memory traffic.Adding a dedicated bus to get round technology problems when a standard bus began to grow obsolete was also a featureof the development of the IBM PC.Digital built on their success with the PDP-11 series and introduced their VAX architecture in 1978 with the VAX-11/780.The VAX had a 32-bit architecture and was available in a range of models. Microprogramming was used to implement itscontrol unit. The VAX dominated the minicomputer world in the 1980s it was sometimes called a superminicomputer. ThVAX range was replaced by the 64-bit Alpha architecture that we describe later when we look at the RISC revolution.It would be wrong to suggest that DEC was the only minicomputer manufacturer. There were several other major players the minicomputer market. For example, Data General produced its Nova range of computers in the late 1960s andannounced its Eclipse series of minicomputers in 1974. Hewlett-Packards HP2100 series was another significant range ofminicomputers not least because of its use of microprogramming.As a sign of the times, the reader might be interested in the definition of a minicomputer by Kraft and Toy in 1970[Kraft79]:A minicomputer is a small, general-purpose, stored program digital computer that:1. Has a word length ranging from 8 bits to 32 bits.2. Provides at least 4096 words of program memory.

  • 8/7/2019 16 Brief History of Microprocessors

    19/30

  • 8/7/2019 16 Brief History of Microprocessors

    20/30

    Structure of the 4040The 4004 was a 4-bit chip that used BCD arithmetic (i.e., it processed one BCD digit at a time). It had 16 general-purpose4-bit registers, a 4-bit accumulator, and a four-level 12-bit pushdown address stack that held the program counter andthree subroutine return addresses. Its logic included a binary and a BCD ALU. It also featured a pin that can be tested by ajump conditional instruction in order to poll external devices such as keyboards. This pin was replaced by a more general-purpose interrupt request input in later microprocessors.The 4004 was followed, remarkably rapidly, by the 8-bit 8008 microprocessor. In fact, the 8008 was originally intended foa CRT application and was developed concurrently with the 4004. By using some of the production techniques developedfor the 4004, Intel was able to manufacture the 8008 as early as March 1972.However, the invention of the 4004 in 1971 eclipsed an even more important event in personal computing the invention

    of the 8 inch floppy disk drive by IBM. The personal computer revolution could never have taken place without theintroduction of a low-cost means of both storing data and transferring it between computers. The 5 inch floppy disc drifrom Shuggart first appeared at the end of 1976.

    16.5 The Golden Erathe 8-bit Microprocessor

    A golden era is a period of history viewed through rose-colored spectacles when there appeared to be relative stability, liwas good, and the bad things don't seem to matter much now. The 8-bit era between about 1975 and 1980 was goodbecause the first few microprocessors were available at affordable prices and everyone could use them. Before then,computer power was very expensive indeed and only large organizations and university departments could affordmainframe or minicomputers.Intel's 8008 microprocessor didn't last a long time. As the first 8-bit microprocessor it was relatively crude andunsophisticated. It had a poorly implemented interrupt mechanism and multiplexed address and data buses. The first realpopular general-purpose 8-bit microprocessor was Intel's 8080 (in production in early 1974). This had a separate 8-bit data

    bus and 16-bit address bus. This address bus could address up to 216

    = 64K bytes of data (a gigantic memory space in 1975Intel didnt have the market place to itself for very long. Shortly after the 8080 went into production, Motorola created itown competitor, the 8-bit 6800. For a short period, engineers and computer scientists tended to be divided into twogroups, Motorola enthusiasts and Intel enthusiasts. Although the 8080 and 6800 were broadly similar in terms ofperformance, they had rather different architectures.Both the 8080 and 6800 have modified accumulator plus single-address instruction formats. The 6800 was, to some extentmodeled on the PDP 11 and had much a cleaner architecture than the 8080. Frederico Faggin himself said "In many ways,the 6800 was a better product. However, the combination of timing, more aggressive marketing, availability of bettersoftware and hardware tools, and product manufacturability gave Intel the lead [Faggin92]." This was not the first time(nor the last time) that commercial considerations outweighed architectural factors.The division of the world into Intel and Motorola hemispheres continued when small companies developed two other 8-bitmicroprocessors. Frederico Faggin left Intel with Ralph Ungerman in 1994 to found Zilog. Their first processor, the Z80, wmanufactured in 1976. This device represented a considerable advance over the 8080 and was object-code compatible wi

    the 8080. That is, the Z80's architecture was a superset of the 8080's architecture and could execute the 8080's machinecode instructions.Zilog's Z80 was a success because it was compatible with the 8080 and yet incorporated many advances such as extraregisters and instructions. It also incorporated some significant electrical improvements such as an on-chip DRAM refreshmechanism. A lot of Z80's rapidly found their way into the first generation of personal computers.You could also say that the Z80 had a devastating effect on the microprocessor industry the curse of compatibility. Thesuccess of the Z80 demonstrated that it was economically advantageous to stretch an existing architecture, rather than tocreate a new architecture. Clearly, by incorporating the architecture of an existing processor in a new chip you can appeato existing users who do not want to rewrite their programs to suit a new architecture.The down side of backward compatibility is that a new architecture cannot take a radical step forward. Improvements hato be tacked on in an almost random fashion. As time passes, the architecture becomes more and more unwieldy anddifficult to program efficiently.Just as Fagin left Intel to create the Z80, Chuck Peddle left Motorola to join MOS Technology and to create the 6502. The6502's object code was not backward compatible with the 6800. It you wanted to run a 6800 program on the 6502, you hadto recompile it. The relationship between the 8080 and Z80, and the 6800 and the 6502 is not the same. The Z80 is a supe8080, whereas the 6502 is a 6800 with its architecture re-arranged. For example, the 6800 has a 16-bit index register X,that can point at one of 216 memory locations. If you wish to copy data from one place in memory to another usingindexing, you have to execute a loop containing something like

    LDX Source Pick up pointer to source

    LDA A 0,X Get element pointed atINC X Increment pointerSTX Source Save source pointerLDX Dest Pick up pointer to destination

  • 8/7/2019 16 Brief History of Microprocessors

    21/30

    STA A 0,X Store element pointed atINC X Increment pointerSTX Dest Save destination pointer

    As you can see, this is a rather longwinded way of doing things. The 6502 provides two pointers, an X pointer and a Ypointer. The code can now be simplified to

    LDA 0,X Get element pointed at

    INC X Increment pointerSTA 0,Y Store element pointed atINC Y Increment pointer

    However, where the 6800 had a 16-bit X pointer, the 6502 has an 8-bit X pointer and an 8-bit Y pointer.In 1976 Motorola got involved with Delco electronics who were designing an engine control module for General Motors. Th

    controller was aimed at reducing exhaust emissions in order to meet new government regulations [Daniels96]. Motorolacreated a processor (later known as the 6801) that was able to replace a 6800 plus some of the chips required to make asystem. This processor was backward compatible with the 6800 but included new index register instructions and an 8-bit x8-bit multiplier.Daniels describes how he was given the task of taking the 6801 and improving it. They removed instructions that took up lot of silicon area (such as the decimal adjust used in BCD arithmetic) and added more useful instructions. Later, on alarger scale, this process led to the development of RISC architectures. The new processor, the 6805, was introduced in1979 and it and its variants became some of the best selling microprocessors in the history of the industry.