How to make a difference in computer architecture
An epilogue to the past few posts, also published as chapter 16: “What now?” Who will constructs computers of the future, and how? I’m not sure yet, but we can start with a few statements.
Innovation in computer architecture, while necessary, is not a task that can be carried out in isolation. Practitioners must associate with their peers in software engineering and systems engineering to define platforms that contextualize the individual components and bring them to the scrutiny of audiences external to the field. This contextualization cannot be carried out by one architect, or even a small group. Individual, human creators have separate personal interests and fields of expertise; the diversity of expertise needed to create entire computing platforms exceeds the management and organizational capacity of a small research group.
Historically, innovation in computer architecture occurred first in public organizations funded by governmental and corporate organizations. As computers became commercial products and their audiences widened, innovation was then carried out in partnership between academic and corporate organizations, the latter being responsible for carrying the financial and human effort necessary for manufacturing and commercialization. This transition occurred across all uses of computers, from small embedded systems to datacenters. Meanwhile, the definition of general-purpose computing platforms was instrumental to power the IT industry, in particular the industry of software engineering, and decouple the production of software from the production of hardware.
Since the turn of the 21st century, powerful market forces are at play to redefine the place of general-purpose computers. Before the last decade, users could define the function of their computing devices separately from form. They could do so by acquiring software, but also by writing their own software, separately from the acquisition of the platform. In contrast, the last decade has then seen the advent of smart terminals and entertainment platforms, whose form and function are bundled by the manufacturer and not separable by the user. These devices have displaced commodity general-purpose platforms. They progressively erase the incentive to educate non-technical audiences about the benefits of carrying out their own innovation in the software domain.
On December 27th, 2011, famous technology activist Cory Doctorow addressed the 28th Chaos Communication Congress in Berlin with his keynote titled `The coming war on general computation: the copyright war was just the beginning <http://www.youtube.com/watch?v=HUEvRyemKSg>`__. He summarized the essence of his message thus:
The problem is twofold: first, there is no known general-purpose computer that can execute all the programs we can think of except the naughty ones; second, general-purpose computers have replaced every other device in our world. There are no airplanes, only computers that fly. There are no cars, only computers we sit in. […] Consequently anything you do to “secure” anything with a computer in it ends up undermining the capabilities and security of every other corner of modern human society.
And general purpose computers can cause harm–whether it’s printing out AR15 components, causing mid-air collisions, or snarling traffic. So the number of parties with legitimate grievances against computers are going to continue to multiply, as will the cries to regulate PCs.
The primary regulatory impulse is […] to create computers that run programs that users can’t inspect or terminate, that run without users’ consent or knowledge, and that run even when users don’t want them to.
The upshot: a world […] where everything we do to make things better only makes it worse, where the tools of liberation become tools of oppression.
Our duty and challenge is to devise systems for mitigating the harm of general purpose computing without recourse to spyware, first to keep ourselves safe, and second to keep computers safe from the regulatory impulse.
On the one hand, we could simply acknowledge the evolution denounced by Doctorow as a natural effect of a free market where consumers have decided, through their purchasing power, their preference for pre-programmed functions and corporate control over features. On the other hand, we could worry about an opportunity loss, that of educating a larger number of individuals to the power of generality.
This loss is especially relevant today. The diversity of types of basic building blocks found in commercial computing systems since the late 1980’s has barely changed: beyond pipelines and registers (1950’s), caches (1960’s), virtual memory (1970’s), and RISC and programmable logic (1980’s), later computers have merely become different combinations of these blocks, with upgraded semantics (e.g. out-of-order execution); meanwhile, the entire industry is currently facing fundamental technology challenges. It seems that a large diversity of creative approaches by individuals empowered to innovate will be needed to overcome these challenges. Also, to guarantee equal opportunity and chance in the dynamics of innovation, it seems to us unwise to rely on private corporations and let them capture innovative types behind closed doors. An alternate route seems tractable today, because the advent of mass-manufactured generic FPGA substrates makes it affordable for individuals and small research groups to innovate in computer architecture and demonstrate their inventions at a low cost.
These considerations are, of course, an essentially political comment about the human dynamics around computing science. Yet we must acknowledge these dynamics to make informed technological and scientific choices around efforts towards innovation.