“There is nothing new about the Raspberry Pi. It’s just smaller,” said its creator, Welshman Eben Upton, to a room full of wide-eyed schoolchildren. He was right, of course. The hardware at the heart of the Pi, a low-cost device originally released for students to learn how to program, follows a processor architecture that is now some sixty years old. Its two key components — a central unit for arithmetic processing and a memory store — are familiar elements of many computing devices, from mobile phones to mainframes. And they have been around for over seventy years, since first being mentioned in a 1945 report1, written by John von Neumann. The Hungarian-born polymath was explaining EDVAC, the Electronic Discrete Variable Automatic Computer that had been built at the University of Pennsylvania. To understand its architectural significance, we need only to look at Von Neumann’s own words about its “considerable” memory requirement: “It is… tempting to treat the entire memory as one organ,” he wrote of its use of computer memory for both programming instructions and for data, which has become a design constant in just about every computer built since.
EDVAC was a joint initiative between the University and the United States Army ordnance department; it is no coincidence that von Neumann came to the field of computing through his work on the hydrogen bomb. Indeed, EDVAC’s predecessor2, the Electronic Numerical Integrator And Computer (ENIAC — you can see where computer people’s love of acronyms was born) was used to perform calculations on the H-bomb itself. Both computers were, however, reliant on valves. Not only were these a factor in its of its not considerable weight — with 6,000 in total, the computer weighed almost 8 tonnes. But also they placed a constraint on what was feasible for the computer to do. Simply put, it was as big as it could affordably be, and was therefore only able to run programs that could fit in the computers memory and run in an appropriate time.
For computers to become smaller, cheaper and indeed faster required semiconductors. The ability for substances other than metal to conduct electricity (albeit at a level inferior to metal, hence the term semi-conductor) had been known since Faraday’s time. It was known that substances could be treated to increase their conductivity: so, for example, selenium became more conductive if it was lit; lead sulphide responded to microwave radiation; and indeed, silicon and germanium were better able to conduct electricity if they were given an electrical charge of their own. It wasn’t long after this discovery that scientists realised that a chunk of silicon could be used as an electrical switch, with the on/off feature being controlled by electricity as well. Thus, shortly after the war, and independently in Paris and New Jersey, the transistor was born.
It would take a further seven years for Gordon Teal, MIT graduate and employee at Texas Instruments, to produce silicon crystals of sufficient quality to produce the first commercially viable transistors. The diffidence of his peers was in part responsible for the slow progress. “I grew crystals at a time when they were an urgent but only dimly-perceived need,” he was to remark3 of his 1954 achievement. “Most of my associates continued to believe that single crystals were of only limited scientific importance and would never be of any major use in devices that had to be produced on a large scale.”
Clearly, Teal’s colleagues had not thought of the potential for using transistors in computing. A computer essentially consists of a massive array of switches, turning on or off based in that inputs they are given. They use mathematical logic — for example, if two inputs are on, then an output will be switched on — and they can build up such logical steps to do simple arithmetic, with which they can perform more complex maths, and so on. When we talk these days about having millions of transistors on a chip, we are talking about millions of microscopic switches, linked together in such a way to make such operations possible. Rather than being manufactured, the transistors are etched onto a layer of pure silicon using stunningly advanced photographic techniques.
All of this is why, while the Raspberry Pi may be ‘nothing new’, it remains nothing short of miraculous. Weight for weight, today’s computers are thousands of times more powerful than those of twenty years ago, and are millions of times cheaper. To put this in context, the Pi can run the same software as a 1980s mainframe but while the latter cost 2 million dollars, the cheapest Pi will set you back less than a fiver[^4]. Equally, the Pi is no larger than a tortilla chip, whereas the mainframe filled a room.
The phenomenon of computer shrinkage is known as ‘Moore’s Law’ after Gordon Moore, one of the founders of chip manufacturer Intel. In 1957 Moore put forward a thesis, based on advances in photographic etching, that the number of transistors on a chip would double every year for ten years. “That meant going from 60 elements on an integrated circuit to 60,000 – a thousandfold extrapolation. I thought that was pretty wild,” he later remarked4. In fact it was not enough — a decade later he had to revise this figure to doubling every 24 months, and later to 18 months. Whether through sheer luck, amazing foresight or simply a knack at creating self-fulfilling prophecies (word is that it has been used to set the research and development programmes at a number of companies, including Intel), the industry has thus far managed to follow this version of Moore’s Law pretty closely.
A familiar corollary of the law, of course, is that the costs of computer processors and other silicon-based integrated circuits have also been falling. In part, this is direct maths: if the cost of a chip remains constant, then the more transistors you can fit, the less you will spend per transistor. Additional factors, such as improved manufacturing quality and ‘supply and demand’ also have an effect. Quality means you can create bigger processors without throwing too many away, and the more people want, the more companies create, pushing costs down.
Moore’s Law isn’t just making things smaller and cheaper — imagine what you can do if you keep things big? That’s exactly what’s happening at the other end of the scale. Today’s supercomputers do not rely on a single processor but rely on hundreds, or even thousands of processors to tackle a single programming task – such as predicting the weather or running aerodynamic simulations in Formula 1 (we shall return to both of these later). Indeed, boffins at the University of Southampton in the UK have even used the lowly Raspberry Pi to create5 a supercomputer, with an aim to6 “inspire the next generation of scientists and engineers,” explains Professor Simon J. Cox, who oversaw the project. The initiative has achieved just that: “Since we published the work, I have received hundreds of mails from individuals, school groups and other Universities reproducing what we have done.”
The end result of such phenomenal innovation in electronics is, simply, that we can do more with the computers that result — we can do more complex maths or run bigger programs. To whit, let us now turn our attention to software, the stuff which runs on computers. While the separation of hardware from software may appear to be a fait accompli today, it did not come about by accident, but with some hard thinking about exactly how it would work. We can trace the furrowed-browed origins of software back to the midst of the Industrial Revolution and the founding father of computing itself, Charles Babbage. Inspired, or rather troubled by the painstaking, error-prone efforts it required to construct astronomical tables by hand7, he was heard to declare, “I wish to God these calculations had been executed by steam!” Babbage set out to build a mechanical device that would be able to conduct arithmetic with the “unerring certainty of machinery.” His designs for the Difference Engine, while complex — they required some 25,000 complex parts to be hand-made — were sufficient to generate both interest from the Royal Society and grants from the UK Government.
As well as being an initiator of what we know today, Babbage was also responsible for the world’s first IT project overrun. As the months of development turned to years, the powers that were became increasingly reticent to put more good money after bad. Above all, the Difference Engine was a one-trick pony, “Can’t we have something more generally useful?” he was asked. Eventually and sadly, a dispute over a single payment to his engineering team caused production to cease, never to be restarted. “Babbage failed to build a complete machine despite independent wealth, social position, government funding, a decade of design and development, and the best of British engineering,” says historian Doron Swade at the Computer History Museum.
With no machine to show, Charles Babbage was undaunted. Turning his frustrations into creative energy, he set about solving exactly the problem that had surfaced — the need to create a more general purpose machine. “Three consequences have … resulted from my subsequent labours, to which I attach great importance,” he wrote8. Not only did he manage to specify just such a creation, which he termed the Analytical Engine. But also he devised a way of specifying mechanical calculation machines and, to cap it all, he came up with a vastly simplified version of the Difference Engine, which he reduced to only 6,000 parts. It was this latter device that he proposed to make for the government, rather than the Analytical Engine which he knew would be a step too far. As a (perhaps ill-advised) rebuke to those in the corridors of power, he suggested that the new machine might even be able to unpick the vagaries of the government’s own finances.
Babbage was not acting in isolation but was in constant contact with academic establishments across Europe. In 1840 he was invited to Turin to present to a number of eminent individuals, including the young, yet “profound analyst” M. Menabrea, who wrote a detailed review on the proposed device. As the review was in Italian, Babbage turned to a mathematically trained linguist, who he had met some years previous at a party. Her name was Ada Lovelace, daughter of Lord Byron.
Menabrea’s review of the Analytical Engine design was excellent; but the notes written by Ada Lovelace on her translation were nothing short of stunning. Taking nine months to complete the translation and accompanying notes, Lovelace “had entered fully into almost all the very difficult and abstract questions connected with the subject,” wrote Babbage. Not least9 the notion of separating data values from mathematical operations, which is a precept of modern computing. Or as she put it: “The peculiar and independent nature of the considerations which in all mathematical analysis belong to operations, as distinguished from the objects operated upon and from the results of the operations performed upon those objects, is very strikingly defined.” Dividing operations from objects was tantamount to inventing programming as we know it today. “Whether the inventor of this engine had any such views in his mind while working out the invention, or whether he may subsequently ever have regarded it under this phase, we do not know; but it is one that forcibly occurred to ourselves on becoming acquainted with the means through which analytical combinations are actually attained by the mechanism.”
It was Ada Lovelace’s explanation of how the device might be used to calculate Bernoulli numbers, that has earned her the distinction of being the world’s first computer programmer. She saw such creations as things of beauty: “We may say most aptly, that the Analytical Engine weaves algebraical patterns just as the Jacquard-loom weaves flowers and leaves.” Not only this but she also discerned the potential for software bugs — “Granted that the actual mechanism is unerring in its processes, the cards may give it wrong orders.”
Both Babbage and Lovelace saw the potential for such a device not just to solve the mathematical problems of the day, but as a means to extend knowledge. “As soon as an Analytical Engine exists, it will necessarily guide the future course of science,” said Babbage. And concurred Lovelace, “The relations and the nature of many subjects in that science are necessarily thrown into new lights, and more profoundly investigated.” The pair were understandably excited, but tragically it was never to be: the costs of producing such a device were simply too great, and the financial benefits of doing so still too small, for sufficient funding to become available. This relationship, between cost and perceived benefit, is of such fundamental importance to the history of computing that we should perhaps give it a name: the Law of Diminishing Thresholds, say. Babbage paid the ultimate price for his failure to deliver on the law, in that his designs remained unaffordable in his lifetime. When Babbage died much of his and Lovelace’s impetus was lost, and its continuation had to wait until the advent of more affordable electrical switching before their spark of innovation could be re-ignited.
One of the first to perceive the potential of electrical switches — as were already being used in telephone exchanges — was young German engineer Konrad Zuse. While he had little knowledge of history[^11] when he started his work in the early 1930’s — “I hadn't even heard of Charles Babbage when I embarked,” he was to remark10 — he realised that the ability of telephone switches to maintain an ‘on’ or an ‘off’ state meant that they could also be used to undertake simple arithmetic. As a simple example, the binary number 10 represents decimal 2, and 01 represents 1; by creating a certain arrangement of switches, it’s straightforward to take both as ‘inputs’ and generate an output which adds them together, in this case to make 11 which equates to decimal 3. From such little acorns… given that complex maths is ‘merely’ lots of simple maths put together, one can create a bigger arrangement of switches to do addition, multiplication, differentiation…
Like Babbage before him, Zuse’s real breakthrough was to extrapolate such ideas into a general purpose computing device, keeping software separate from hardware, and data from mathematical operations. “I recognised that computing could be seen as a general means of dealing with data and that all data could be represented through bit patterns,” he said. “I defined "computing" as: the formation of new data from input according to a given set of rules.” Zuse was an engineer, not a mathematician, and as such worked on his Z1 computer in ignorance of such esoteric principles as mathematical logic, which he worked out from scratch. Given the state of Europe at the time, he also worked unaware of progress being made in other countries — for example, the UK academic Alan Turing’s work. “It is possible to invent a single machine which can be used to compute any computable sequence,” Turing wrote11 in 1936, in his seminal paper about the “universal computing machine.”
History does seem inclined to repetition, however. As the war started Zuse found his requests for project funding from the authorities fell on deaf ears. “Although the reaction was initially sympathetic towards the project we were asked simply, "How much time do you think you need for it?". We replied, “Around two years. The response to this was, “And just how long do you think it'll take us to win the war?”” Zuse pressed on regardless, developing the Z2, Z3 and eventually the Z4, for which he defined the Plankalkül programming language — but progress was understandably hampered. “1945 was a hard time for the Germans,” he remarked. “Our Z4 had been transported with incredible difficulty to the small Alpine village of Hinterstein in the Allgäu. All of us who had managed to get out of Berlin were happy just to have survived the inferno there. Work on Plankalkül now continued in wonderful countryside, undisturbed by bomber attacks, telephone calls, visitors and so on. Within about a year we were able to set up a "revamped" Z4 in full working order in what had once been a stable.”
Meanwhile of course, work in the UK and USA had continued with better funding and less danger of falling bombs. In the UK, Tommy Flowers had designed the clanking, groundbreaking Colossus computer based on Turing’s principles. But it would be across the Atlantic, with the ENIAC then the EDVAC, that Von Neumann and his colleagues set the architecture and direction for computing as we know it. But all the same, the Law of Diminishing Thresholds — the notion that the balance was tipping between costs and effectiveness of computer processing, driven by advances in both electronics and programming — held true. While the Second World War was a tragedy of unprecedented scale, it is possibly no coincidence that the ideas emerged in the preceding decade led to an explosion of innovation almost immediately afterwards. The rest, as Turing had foretold, consists solutions waiting for problems. The overall consequence, simply put, is that as the number of transistors increases, costs of processing fall, many previously unsolvable problems have moved into the domain of the solvable.
For example, when the Human Genome Project was first initiated back in 1990, its budget was set at a staggering $3 Billion and the resulting analysis took over four years. In 1998, a new initiative was launched at one tenth of the cost – $300 Million. Just over a decade later, a device costing just $50,000 was used, aptly, to sequence Gordon Moore’s DNA in a matter of hours. By 2015 the costs for a ‘full’ sequence had dropped to $1,000 — and services to analyse DNA for certain markers (ancestral or medical or to establish paternity) have become commonplace, costing mere tens of dollars.
Of course all this processing would be nothing if we didn’t have the mechanisms and the routes to shift the data, both inside data centres and around the world. To see just what an important factor this is, we need to go back to Ancient Greece.
[^11] "Many of the principles embodied in his work were reinvented by the pioneers of the electronics era, largely in ignorance of his work," says Swade. ↩